From c5071f40f2f0b0eec548bd63d46bef0c7c9dcb9b Mon Sep 17 00:00:00 2001 From: Michael Ossmann Date: Sat, 23 Jun 2012 08:22:28 -0600 Subject: [PATCH 01/16] name and date on silkscreen --- hardware/lollipop/lollipop.brd | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/hardware/lollipop/lollipop.brd b/hardware/lollipop/lollipop.brd index 15cb002e..303d371d 100644 --- a/hardware/lollipop/lollipop.brd +++ b/hardware/lollipop/lollipop.brd @@ -1,4 +1,4 @@ -PCBNEW-BOARD Version 1 date Thu Jun 21 19:11:32 2012 +PCBNEW-BOARD Version 1 date Sat Jun 23 08:15:06 2012 # Created by Pcbnew(2011-06-30 BZR 3033)-stable @@ -10,7 +10,7 @@ EnabledLayers 1FFF8007 Links 383 NoConn 53 Di 20440 8924 38560 29076 -Ndraw 12 +Ndraw 14 Ntrack 1423 Nzone 0 BoardThickness 630 @@ -21,7 +21,7 @@ $EndGENERAL $SHEETDESCR Sheet User 6000 4000 Title "" -Date "22 jun 2012" +Date "23 jun 2012" Rev "" Comp "" Comment1 "" @@ -6858,6 +6858,16 @@ Le -1954803976 $EndPAD $EndMODULE GSG-LP0603 $TEXTPCB +Te "23 Jun 2012" +Po 28250 20890 600 800 120 0 +De 21 1 0 Normal +$EndTEXTPCB +$TEXTPCB +Te "lollipop" +Po 30980 22870 600 800 120 0 +De 21 1 0 Normal +$EndTEXTPCB +$TEXTPCB Te "TX-in" Po 37000 16250 300 400 75 0 De 21 1 0 Normal From dfb38a5a5906f1b3e9e459810fa04e207b0875b1 Mon Sep 17 00:00:00 2001 From: TitanMKD Date: Mon, 25 Jun 2012 22:02:55 +0200 Subject: [PATCH 02/16] Fix asm macro --- .../startup_systick.c | 204 +++++++++--------- 1 file changed, 102 insertions(+), 102 deletions(-) diff --git a/firmware/startup_systick_rom_to_ram/startup_systick.c b/firmware/startup_systick_rom_to_ram/startup_systick.c index b80a1b59..a388a241 100644 --- a/firmware/startup_systick_rom_to_ram/startup_systick.c +++ b/firmware/startup_systick_rom_to_ram/startup_systick.c @@ -64,7 +64,7 @@ void systick_setup(void) g_ulSysTickCount = 0; /* Disable IRQ globally */ - asm volatile ("cpsid i"); + __asm__("cpsid i"); /* Set processor Clock as Source Clock */ systick_set_clocksource(STK_CTRL_CLKSOURCE); @@ -90,7 +90,7 @@ void systick_setup(void) nvic_set_priority(NVIC_SYSTICK_IRQ, 0xFF); /* Enable IRQ globally */ - asm volatile ("cpsie i"); + __asm__("cpsie i"); } void scs_dwt_cycle_counter_enabled(void) @@ -166,115 +166,115 @@ u32 test_nb_instruction_per_sec(void) do { - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); + __asm__("nop "); nb_instructions_per_sec += 100; end = sys_tick_get_time_ms(); From 53c7fcf768d1ee8784698b73eb7a7722f08e88d3 Mon Sep 17 00:00:00 2001 From: TitanMKD Date: Mon, 25 Jun 2012 22:15:10 +0200 Subject: [PATCH 03/16] * Fixed linker script form SPIFI and RAM execution. * Added performance checks and results on SPIFI & SRAM code execution. --- firmware/common/LPC4330_M4.ld | 2 +- firmware/startup_systick_perfo/Makefile | 10 + firmware/startup_systick_perfo/README | 17 + firmware/startup_systick_perfo/perf_mips.c | 2220 +++++++++++++++++ .../result_exec_from_SPIFI.txt | 33 + .../startup_systick.c | 190 +- .../startup_systick_perfo_rom_to_ram/Makefile | 11 + .../startup_systick_perfo_rom_to_ram/README | 17 + .../perf_mips.c | 2220 +++++++++++++++++ .../result_exec_from_SRAM.txt | 22 + .../startup_systick.c | 235 ++ 11 files changed, 4836 insertions(+), 141 deletions(-) create mode 100644 firmware/startup_systick_perfo/Makefile create mode 100644 firmware/startup_systick_perfo/README create mode 100644 firmware/startup_systick_perfo/perf_mips.c create mode 100644 firmware/startup_systick_perfo/result_exec_from_SPIFI.txt rename firmware/{startup_systick => startup_systick_perfo}/startup_systick.c (56%) create mode 100644 firmware/startup_systick_perfo_rom_to_ram/Makefile create mode 100644 firmware/startup_systick_perfo_rom_to_ram/README create mode 100644 firmware/startup_systick_perfo_rom_to_ram/perf_mips.c create mode 100644 firmware/startup_systick_perfo_rom_to_ram/result_exec_from_SRAM.txt create mode 100644 firmware/startup_systick_perfo_rom_to_ram/startup_systick.c diff --git a/firmware/common/LPC4330_M4.ld b/firmware/common/LPC4330_M4.ld index d73b4d47..3fb0df8b 100644 --- a/firmware/common/LPC4330_M4.ld +++ b/firmware/common/LPC4330_M4.ld @@ -24,7 +24,7 @@ MEMORY { /* rom is really the shadow region that points to SPI flash or elsewhere */ - rom (rx) : ORIGIN = 0x00000000, LENGTH = 1M + rom (rx) : ORIGIN = 0x14000000, LENGTH = 1M ram (rwx) : ORIGIN = 0x10000000, LENGTH = 128K /* there are some additional RAM regions */ } diff --git a/firmware/startup_systick_perfo/Makefile b/firmware/startup_systick_perfo/Makefile new file mode 100644 index 00000000..b667e1db --- /dev/null +++ b/firmware/startup_systick_perfo/Makefile @@ -0,0 +1,10 @@ +# Hey Emacs, this is a -*- makefile -*- + +BINARY = startup_systick_perfo_SPIFI + +SRC = startup_systick.c \ + perf_mips.c \ + ../common/hackrf_core.c \ + ../common/si5351c.c + +include ../common/Makefile_inc.mk diff --git a/firmware/startup_systick_perfo/README b/firmware/startup_systick_perfo/README new file mode 100644 index 00000000..1014d873 --- /dev/null +++ b/firmware/startup_systick_perfo/README @@ -0,0 +1,17 @@ +This program is an example of the startup sequence for HackRF (Jellybean with +Lemondrop attached). +Test number of instruction per second (MIPS) slow blink ON 1s, OFF 1s +Then after 16s (the 16tests) it blink LED1/2/3 ON/OFF each 250ms. +This example compute the number of instructions per second executed called also MIPS (Millions of Instructions Per Second) + +This example code run from SPIFI (SPI Quad mode) and the tests check different loop size to compute the cache size used with SPIFI and estimated to less than 256Bytes (about 128 instructions in best case and in Thumb2). +See result_exec_from_SPIFI.txt for more details. + +Required Lemondrop -> Jellybean connections: + +SCL: Lemondrop P7 pin 3 -> Jellybean P6 pin 3 +SDA: Lemondrop P7 pin 5 -> Jellybean P6 pin 5 +SDA: Lemondrop P7 pin 6 -> Jellybean P6 pin 6 +VCC: Lemondrop P4 pin 2, 4, or 6 -> Jellybean P17 pin 2, 4, or 6 +1V8: Lemondrop P11 pin 2, 4, or 6 -> Jellybean P16 pin 2, 4, or 6 +GND: Lemondrop P5 -> Jellybean P13 diff --git a/firmware/startup_systick_perfo/perf_mips.c b/firmware/startup_systick_perfo/perf_mips.c new file mode 100644 index 00000000..ef3d1f52 --- /dev/null +++ b/firmware/startup_systick_perfo/perf_mips.c @@ -0,0 +1,2220 @@ +/* + * Copyright 2010 - 2012 Michael Ossmann + * + * This file is part of HackRF. + * + * This program is free software; you can 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, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#include +#include +#include +#include +#include +#include + +#include "hackrf_core.h" + +/* Global counter incremented by SysTick Interrupt each millisecond */ +extern volatile u32 g_ulSysTickCount; +extern u32 g_NbCyclePerSecond; + +extern u32 sys_tick_get_time_ms(void); +extern u32 sys_tick_delta_time_ms(u32 start, u32 end); +extern void sys_tick_wait_time_ms(u32 wait_ms); + + +u32 test_nb_instruction_per_sec_100_nop_asm(void) +{ + register u32 val __asm__("r0"); + + __asm__(" ldr r1, =g_ulSysTickCount"); + __asm__(" ldr r2, [r1]"); /* g_ulSysTickCount */ + __asm__(" push {r4}"); + __asm__(" movs r0, #0"); /* nb_instructions_per_sec = 0; */ + __asm__(" movw r4, #999"); /* wait_ms = 1000; */ + + __asm__("test_nb_instruction_per_sec_loop_100_nop:"); +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + + __asm__(" ldr r3, [r1]"); /* tickms = g_ulSysTickCount */ + __asm__(" adds r0, #108"); /* nb_instructions_per_sec += 108 */ + __asm__(" cmp r2, r3"); + __asm__(" it CS"); /* IF THEN Higher or same */ + __asm__(" addcs r3, #34"); + __asm__(" subs r3, r3, r2"); + __asm__(" cmp r3, r4"); + __asm__(" bls test_nb_instruction_per_sec_loop_100_nop"); /* tickms < wait_ms ? */ + + __asm__(" POP {r4}"); + + return val; +}; + +u32 test_nb_instruction_per_sec_105_nop_asm(void) +{ + register u32 val __asm__("r0"); + + __asm__(" ldr r1, =g_ulSysTickCount"); + __asm__(" ldr r2, [r1]"); /* g_ulSysTickCount */ + __asm__(" push {r4}"); + __asm__(" movs r0, #0"); /* nb_instructions_per_sec = 0; */ + __asm__(" movw r4, #999"); /* wait_ms = 1000; */ + + __asm__("test_nb_instruction_per_sec_loop_105_nop:"); +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 5 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 5 nop */ +/* Total 105 nop */ + + __asm__(" ldr r3, [r1]"); /* tickms = g_ulSysTickCount */ + __asm__(" adds r0, #113"); /* nb_instructions_per_sec += 105+8=113; */ + __asm__(" cmp r2, r3"); + __asm__(" it CS"); /* IF THEN Higher or same */ + __asm__(" addcs r3, #34"); + __asm__(" subs r3, r3, r2"); + __asm__(" cmp r3, r4"); + __asm__(" bls test_nb_instruction_per_sec_loop_105_nop"); /* tickms < wait_ms ? */ + + __asm__(" POP {r4}"); + + return val; +}; + +u32 test_nb_instruction_per_sec_110_nop_asm(void) +{ + register u32 val __asm__("r0"); + + __asm__(" ldr r1, =g_ulSysTickCount"); + __asm__(" ldr r2, [r1]"); /* g_ulSysTickCount */ + __asm__(" push {r4}"); + __asm__(" movs r0, #0"); /* nb_instructions_per_sec = 0; */ + __asm__(" movw r4, #999"); /* wait_ms = 1000; */ + + __asm__("test_nb_instruction_per_sec_loop_110_nop:"); +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 10 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 10 nop */ +/* Total 110 nop */ + + __asm__(" ldr r3, [r1]"); /* tickms = g_ulSysTickCount */ + __asm__(" adds r0, #118"); /* nb_instructions_per_sec += 118; */ + __asm__(" cmp r2, r3"); + __asm__(" it CS"); /* IF THEN Higher or same */ + __asm__(" addcs r3, #34"); + __asm__(" subs r3, r3, r2"); + __asm__(" cmp r3, r4"); + __asm__(" bls test_nb_instruction_per_sec_loop_110_nop"); /* tickms < wait_ms ? */ + + __asm__(" POP {r4}"); + + return val; +}; + +u32 test_nb_instruction_per_sec_115_nop_asm(void) +{ + register u32 val __asm__("r0"); + + __asm__(" ldr r1, =g_ulSysTickCount"); + __asm__(" ldr r2, [r1]"); /* g_ulSysTickCount */ + __asm__(" push {r4}"); + __asm__(" movs r0, #0"); /* nb_instructions_per_sec = 0; */ + __asm__(" movw r4, #999"); /* wait_ms = 1000; */ + + __asm__("test_nb_instruction_per_sec_loop_115_nop:"); +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 15 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 15 nop */ +/* Total 115 nop */ + + __asm__(" ldr r3, [r1]"); /* tickms = g_ulSysTickCount */ + __asm__(" adds r0, #123"); /* nb_instructions_per_sec += 115+8 = 123; */ + __asm__(" cmp r2, r3"); + __asm__(" it CS"); /* IF THEN Higher or same */ + __asm__(" addcs r3, #34"); + __asm__(" subs r3, r3, r2"); + __asm__(" cmp r3, r4"); + __asm__(" bls test_nb_instruction_per_sec_loop_115_nop"); /* tickms < wait_ms ? */ + + __asm__(" POP {r4}"); + + return val; +}; + +u32 test_nb_instruction_per_sec_120_nop_asm(void) +{ + register u32 val __asm__("r0"); + + __asm__(" ldr r1, =g_ulSysTickCount"); + __asm__(" ldr r2, [r1]"); /* g_ulSysTickCount */ + __asm__(" push {r4}"); + __asm__(" movs r0, #0"); /* nb_instructions_per_sec = 0; */ + __asm__(" movw r4, #999"); /* wait_ms = 1000; */ + + __asm__("test_nb_instruction_per_sec_loop_120_nop:"); +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 20 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 20 nop */ +/* Total 120 nop */ + + __asm__(" ldr r3, [r1]"); /* tickms = g_ulSysTickCount */ + __asm__(" adds r0, #128"); /* nb_instructions_per_sec += 128; */ + __asm__(" cmp r2, r3"); + __asm__(" it CS"); /* IF THEN Higher or same */ + __asm__(" addcs r3, #34"); + __asm__(" subs r3, r3, r2"); + __asm__(" cmp r3, r4"); + __asm__(" bls test_nb_instruction_per_sec_loop_120_nop"); /* tickms < wait_ms ? */ + + __asm__(" POP {r4}"); + + return val; +}; + +u32 test_nb_instruction_per_sec_150_nop_asm(void) +{ + register u32 val __asm__("r0"); + + __asm__(" ldr r1, =g_ulSysTickCount"); + __asm__(" ldr r2, [r1]"); /* g_ulSysTickCount */ + __asm__(" push {r4}"); + __asm__(" movs r0, #0"); /* nb_instructions_per_sec = 0; */ + __asm__(" movw r4, #999"); /* wait_ms = 1000; */ + + __asm__("test_nb_instruction_per_sec_loop_150_nop:"); +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 50 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 50 nop */ +/* Total 150 nop */ + + __asm__(" ldr r3, [r1]"); /* tickms = g_ulSysTickCount */ + __asm__(" adds r0, #158"); /* nb_instructions_per_sec += 158; */ + __asm__(" cmp r2, r3"); + __asm__(" it CS"); /* IF THEN Higher or same */ + __asm__(" addcs r3, #34"); + __asm__(" subs r3, r3, r2"); + __asm__(" cmp r3, r4"); + __asm__(" bls test_nb_instruction_per_sec_loop_150_nop"); /* tickms < wait_ms ? */ + + __asm__(" POP {r4}"); + + return val; +}; + +u32 test_nb_instruction_per_sec_200_nop_asm(void) +{ + register u32 val __asm__("r0"); + + __asm__(" ldr r1, =g_ulSysTickCount"); + __asm__(" ldr r2, [r1]"); /* g_ulSysTickCount */ + __asm__(" push {r4}"); + __asm__(" movs r0, #0"); /* nb_instructions_per_sec = 0; */ + __asm__(" movw r4, #999"); /* wait_ms = 1000; */ + + __asm__("test_nb_instruction_per_sec_loop_200_nop:"); +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ +/* Total 200 nop */ + + __asm__(" ldr r3, [r1]"); /* tickms = g_ulSysTickCount */ + __asm__(" adds r0, #208"); /* nb_instructions_per_sec += 208; */ + __asm__(" cmp r2, r3"); + __asm__(" it CS"); /* IF THEN Higher or same */ + __asm__(" addcs r3, #34"); + __asm__(" subs r3, r3, r2"); + __asm__(" cmp r3, r4"); + __asm__(" bls test_nb_instruction_per_sec_loop_200_nop"); /* tickms < wait_ms ? */ + + __asm__(" POP {r4}"); + + return val; +}; + +u32 test_nb_instruction_per_sec_1000_nop_asm(void) +{ + register u32 val __asm__("r0"); + + __asm__(" ldr r1, =g_ulSysTickCount"); + __asm__(" ldr r2, [r1]"); /* g_ulSysTickCount */ + __asm__(" push {r4}"); + __asm__(" movs r0, #0"); /* nb_instructions_per_sec = 0; */ + __asm__(" movw r4, #999"); /* wait_ms = 1000; */ + + __asm__("test_nb_instruction_per_sec_loop_1000nop:"); +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ +/* Total 200 nop */ + + __asm__(" ldr r3, [r1]"); /* tickms = g_ulSysTickCount */ + __asm__(" adds r0, #1008"); /* nb_instructions_per_sec += 1008; */ + __asm__(" cmp r2, r3"); + __asm__(" it CS"); /* IF THEN Higher or same */ + __asm__(" addcs r3, #34"); + __asm__(" subs r3, r3, r2"); + __asm__(" cmp r3, r4"); + __asm__(" bls test_nb_instruction_per_sec_loop_1000nop"); /* tickms < wait_ms ? */ + + __asm__(" POP {r4}"); + + return val; +}; diff --git a/firmware/startup_systick_perfo/result_exec_from_SPIFI.txt b/firmware/startup_systick_perfo/result_exec_from_SPIFI.txt new file mode 100644 index 00000000..4d335b33 --- /dev/null +++ b/firmware/startup_systick_perfo/result_exec_from_SPIFI.txt @@ -0,0 +1,33 @@ +Frequency MCU Core M4 = 204MHz + +"nb_inst_per_sec" 0x10000008 + nb_inst_per_sec[0] 195609816 test_nb_instruction_per_sec_100_nop_asm(); + nb_inst_per_sec[1] 195577462 test_nb_instruction_per_sec_105_nop_asm(); + nb_inst_per_sec[2] 195525410 test_nb_instruction_per_sec_110_nop_asm(); + nb_inst_per_sec[3] 35423508 test_nb_instruction_per_sec_115_nop_asm(); + nb_inst_per_sec[4] 5058688 test_nb_instruction_per_sec_120_nop_asm(); + nb_inst_per_sec[5] 5094868 test_nb_instruction_per_sec_150_nop_asm(); + nb_inst_per_sec[6] 5162144 test_nb_instruction_per_sec_200_nop_asm(); + nb_inst_per_sec[7] 5505696 test_nb_instruction_per_sec_1000_nop_asm(); + + nb_inst_per_sec[8] 195600420 test_nb_instruction_per_sec_100_nop_asm(); + nb_inst_per_sec[9] 195578027 test_nb_instruction_per_sec_105_nop_asm(); + nb_inst_per_sec[10] 195525882 test_nb_instruction_per_sec_110_nop_asm(); + nb_inst_per_sec[11] 35422647 test_nb_instruction_per_sec_115_nop_asm(); + nb_inst_per_sec[12] 5058688 test_nb_instruction_per_sec_120_nop_asm(); + nb_inst_per_sec[13] 5094868 test_nb_instruction_per_sec_150_nop_asm(); + nb_inst_per_sec[14] 5162144 test_nb_instruction_per_sec_200_nop_asm(); + nb_inst_per_sec[15] 5505696 test_nb_instruction_per_sec_1000_nop_asm(); + +Real speed expected from SPIFI without cache (with lot of nop) +Oscilloscope Freq SPIFI SCK = 22.50MHz to 22.83MHz (in reality 22.67MHz => 204/9 => SPIFI_CLK connected to IDIVB & IDIVB default=9) +So worst case 22.50Mbits*4 = 90Mbits/s => 11.25MBytes/s with an overhead of about 50% due to SPIFI protocol addr ... => 5.625MB +1 nop = 2 bytes (THUMB 0x00 0xBF) => Max 5.625 Millions instruction per second + +110 NOP is in fact 110 + 9 (including loop overhead) +119*2 = 238 bytes + +115NOP + 9 => does not enter in cache !! (248bytes) +Internal Cache size is about 256Bytes maybe shared Code/Data. + +SPIFI obtained min=5.05 MIPS, max=195.6 MIPS \ No newline at end of file diff --git a/firmware/startup_systick/startup_systick.c b/firmware/startup_systick_perfo/startup_systick.c similarity index 56% rename from firmware/startup_systick/startup_systick.c rename to firmware/startup_systick_perfo/startup_systick.c index ab7cd9fd..a8be4b05 100644 --- a/firmware/startup_systick/startup_systick.c +++ b/firmware/startup_systick_perfo/startup_systick.c @@ -64,7 +64,7 @@ void systick_setup(void) g_ulSysTickCount = 0; /* Disable IRQ globally */ - asm volatile ("cpsid i"); + __asm__("cpsid i"); /* Set processor Clock as Source Clock */ systick_set_clocksource(STK_CTRL_CLKSOURCE); @@ -90,7 +90,7 @@ void systick_setup(void) nvic_set_priority(NVIC_SYSTICK_IRQ, 0xFF); /* Enable IRQ globally */ - asm volatile ("cpsie i"); + __asm__("cpsie i"); } void scs_dwt_cycle_counter_enabled(void) @@ -153,140 +153,18 @@ void sys_tick_handler(void) g_ulSysTickCount++; } -u32 test_nb_instruction_per_sec(void) -{ - u32 start, end, wait_ms; - u32 tickms; - u32 nb_instructions_per_sec; +u32 nb_inst_per_sec[16]; - nb_instructions_per_sec = 0; - wait_ms = 1000; +extern u32 test_nb_instruction_per_sec_100_nop_asm(); +extern u32 test_nb_instruction_per_sec_105_nop_asm(); +extern u32 test_nb_instruction_per_sec_110_nop_asm(); +extern u32 test_nb_instruction_per_sec_115_nop_asm(); +extern u32 test_nb_instruction_per_sec_120_nop_asm(); +extern u32 test_nb_instruction_per_sec_150_nop_asm(); +extern u32 test_nb_instruction_per_sec_200_nop_asm(); +extern u32 test_nb_instruction_per_sec_1000_nop_asm(); - start = sys_tick_get_time_ms(); - - do - { - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - asm volatile ("nop "); - nb_instructions_per_sec += 108; - - end = sys_tick_get_time_ms(); - tickms = sys_tick_delta_time_ms(start, end); - }while(tickms < wait_ms); - - return nb_instructions_per_sec; -} - - -u32 nb_inst_per_sec0; -u32 nb_inst_per_sec1; +#define LED1_TOGGLE() (gpio_toggle(PORT_LED1_3, (PIN_LED1))) int main(void) { @@ -300,25 +178,57 @@ int main(void) systick_setup(); - /* Test number of instruction per second */ - nb_inst_per_sec0 = test_nb_instruction_per_sec(); - nb_inst_per_sec1 = test_nb_instruction_per_sec(); + gpio_clear(PORT_LED1_3, (PIN_LED1)); /* LED1 off */ - gpio_set(PORT_LED1_3, (PIN_LED1|PIN_LED2|PIN_LED3)); /* LEDs on */ + /* Test number of instruction per second (MIPS) slow blink ON 1s, OFF 1s */ +LED1_TOGGLE(); + nb_inst_per_sec[0] = test_nb_instruction_per_sec_100_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[1]= test_nb_instruction_per_sec_105_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[2]= test_nb_instruction_per_sec_110_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[3]= test_nb_instruction_per_sec_115_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[4] = test_nb_instruction_per_sec_120_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[5] = test_nb_instruction_per_sec_150_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[6] = test_nb_instruction_per_sec_200_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[7] = test_nb_instruction_per_sec_1000_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[8] = test_nb_instruction_per_sec_100_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[9]= test_nb_instruction_per_sec_105_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[10]= test_nb_instruction_per_sec_110_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[11]= test_nb_instruction_per_sec_115_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[12] = test_nb_instruction_per_sec_120_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[13] = test_nb_instruction_per_sec_150_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[14] = test_nb_instruction_per_sec_200_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[15] = test_nb_instruction_per_sec_1000_nop_asm(); +LED1_TOGGLE(); + /* Test finished fast blink */ while (1) { gpio_set(PORT_LED1_3, (PIN_LED1)); /* LED1 on */ gpio_set(PORT_LED1_3, (PIN_LED2)); /* LED2 on */ gpio_set(PORT_LED1_3, (PIN_LED3)); /* LED3 on */ - sys_tick_wait_time_ms(500); + sys_tick_wait_time_ms(250); gpio_clear(PORT_LED1_3, (PIN_LED3)); /* LED3 off */ gpio_clear(PORT_LED1_3, (PIN_LED2)); /* LED2 off */ gpio_clear(PORT_LED1_3, (PIN_LED1)); /* LED1 off */ - sys_tick_wait_time_ms(500); + sys_tick_wait_time_ms(250); } return 0; diff --git a/firmware/startup_systick_perfo_rom_to_ram/Makefile b/firmware/startup_systick_perfo_rom_to_ram/Makefile new file mode 100644 index 00000000..a52531e6 --- /dev/null +++ b/firmware/startup_systick_perfo_rom_to_ram/Makefile @@ -0,0 +1,11 @@ +# Hey Emacs, this is a -*- makefile -*- + +BINARY = startup_systick_perfo_rom_to_ram + +SRC = startup_systick.c \ + perf_mips.c \ + ../common/hackrf_core.c \ + ../common/si5351c.c + +LDSCRIPT = ../common/LPC4330_M4_rom_to_ram.ld +include ../common/Makefile_inc.mk diff --git a/firmware/startup_systick_perfo_rom_to_ram/README b/firmware/startup_systick_perfo_rom_to_ram/README new file mode 100644 index 00000000..4d9af838 --- /dev/null +++ b/firmware/startup_systick_perfo_rom_to_ram/README @@ -0,0 +1,17 @@ +This program is an example of the startup sequence for HackRF (Jellybean with +Lemondrop attached). +Test number of instruction per second (MIPS) slow blink ON 1s, OFF 1s +Then after 16s (the 16tests) it blink LED1/2/3 ON/OFF each 250ms. +This example compute the number of instructions per second executed called also MIPS (Millions of Instructions Per Second) + +This example code run from SRAM so maximum performance expected is 204MIPS. +See result details in result_exec_from_SRAM.txt + +Required Lemondrop -> Jellybean connections: + +SCL: Lemondrop P7 pin 3 -> Jellybean P6 pin 3 +SDA: Lemondrop P7 pin 5 -> Jellybean P6 pin 5 +SDA: Lemondrop P7 pin 6 -> Jellybean P6 pin 6 +VCC: Lemondrop P4 pin 2, 4, or 6 -> Jellybean P17 pin 2, 4, or 6 +1V8: Lemondrop P11 pin 2, 4, or 6 -> Jellybean P16 pin 2, 4, or 6 +GND: Lemondrop P5 -> Jellybean P13 diff --git a/firmware/startup_systick_perfo_rom_to_ram/perf_mips.c b/firmware/startup_systick_perfo_rom_to_ram/perf_mips.c new file mode 100644 index 00000000..ef3d1f52 --- /dev/null +++ b/firmware/startup_systick_perfo_rom_to_ram/perf_mips.c @@ -0,0 +1,2220 @@ +/* + * Copyright 2010 - 2012 Michael Ossmann + * + * This file is part of HackRF. + * + * This program is free software; you can 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, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#include +#include +#include +#include +#include +#include + +#include "hackrf_core.h" + +/* Global counter incremented by SysTick Interrupt each millisecond */ +extern volatile u32 g_ulSysTickCount; +extern u32 g_NbCyclePerSecond; + +extern u32 sys_tick_get_time_ms(void); +extern u32 sys_tick_delta_time_ms(u32 start, u32 end); +extern void sys_tick_wait_time_ms(u32 wait_ms); + + +u32 test_nb_instruction_per_sec_100_nop_asm(void) +{ + register u32 val __asm__("r0"); + + __asm__(" ldr r1, =g_ulSysTickCount"); + __asm__(" ldr r2, [r1]"); /* g_ulSysTickCount */ + __asm__(" push {r4}"); + __asm__(" movs r0, #0"); /* nb_instructions_per_sec = 0; */ + __asm__(" movw r4, #999"); /* wait_ms = 1000; */ + + __asm__("test_nb_instruction_per_sec_loop_100_nop:"); +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + + __asm__(" ldr r3, [r1]"); /* tickms = g_ulSysTickCount */ + __asm__(" adds r0, #108"); /* nb_instructions_per_sec += 108 */ + __asm__(" cmp r2, r3"); + __asm__(" it CS"); /* IF THEN Higher or same */ + __asm__(" addcs r3, #34"); + __asm__(" subs r3, r3, r2"); + __asm__(" cmp r3, r4"); + __asm__(" bls test_nb_instruction_per_sec_loop_100_nop"); /* tickms < wait_ms ? */ + + __asm__(" POP {r4}"); + + return val; +}; + +u32 test_nb_instruction_per_sec_105_nop_asm(void) +{ + register u32 val __asm__("r0"); + + __asm__(" ldr r1, =g_ulSysTickCount"); + __asm__(" ldr r2, [r1]"); /* g_ulSysTickCount */ + __asm__(" push {r4}"); + __asm__(" movs r0, #0"); /* nb_instructions_per_sec = 0; */ + __asm__(" movw r4, #999"); /* wait_ms = 1000; */ + + __asm__("test_nb_instruction_per_sec_loop_105_nop:"); +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 5 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 5 nop */ +/* Total 105 nop */ + + __asm__(" ldr r3, [r1]"); /* tickms = g_ulSysTickCount */ + __asm__(" adds r0, #113"); /* nb_instructions_per_sec += 105+8=113; */ + __asm__(" cmp r2, r3"); + __asm__(" it CS"); /* IF THEN Higher or same */ + __asm__(" addcs r3, #34"); + __asm__(" subs r3, r3, r2"); + __asm__(" cmp r3, r4"); + __asm__(" bls test_nb_instruction_per_sec_loop_105_nop"); /* tickms < wait_ms ? */ + + __asm__(" POP {r4}"); + + return val; +}; + +u32 test_nb_instruction_per_sec_110_nop_asm(void) +{ + register u32 val __asm__("r0"); + + __asm__(" ldr r1, =g_ulSysTickCount"); + __asm__(" ldr r2, [r1]"); /* g_ulSysTickCount */ + __asm__(" push {r4}"); + __asm__(" movs r0, #0"); /* nb_instructions_per_sec = 0; */ + __asm__(" movw r4, #999"); /* wait_ms = 1000; */ + + __asm__("test_nb_instruction_per_sec_loop_110_nop:"); +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 10 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 10 nop */ +/* Total 110 nop */ + + __asm__(" ldr r3, [r1]"); /* tickms = g_ulSysTickCount */ + __asm__(" adds r0, #118"); /* nb_instructions_per_sec += 118; */ + __asm__(" cmp r2, r3"); + __asm__(" it CS"); /* IF THEN Higher or same */ + __asm__(" addcs r3, #34"); + __asm__(" subs r3, r3, r2"); + __asm__(" cmp r3, r4"); + __asm__(" bls test_nb_instruction_per_sec_loop_110_nop"); /* tickms < wait_ms ? */ + + __asm__(" POP {r4}"); + + return val; +}; + +u32 test_nb_instruction_per_sec_115_nop_asm(void) +{ + register u32 val __asm__("r0"); + + __asm__(" ldr r1, =g_ulSysTickCount"); + __asm__(" ldr r2, [r1]"); /* g_ulSysTickCount */ + __asm__(" push {r4}"); + __asm__(" movs r0, #0"); /* nb_instructions_per_sec = 0; */ + __asm__(" movw r4, #999"); /* wait_ms = 1000; */ + + __asm__("test_nb_instruction_per_sec_loop_115_nop:"); +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 15 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 15 nop */ +/* Total 115 nop */ + + __asm__(" ldr r3, [r1]"); /* tickms = g_ulSysTickCount */ + __asm__(" adds r0, #123"); /* nb_instructions_per_sec += 115+8 = 123; */ + __asm__(" cmp r2, r3"); + __asm__(" it CS"); /* IF THEN Higher or same */ + __asm__(" addcs r3, #34"); + __asm__(" subs r3, r3, r2"); + __asm__(" cmp r3, r4"); + __asm__(" bls test_nb_instruction_per_sec_loop_115_nop"); /* tickms < wait_ms ? */ + + __asm__(" POP {r4}"); + + return val; +}; + +u32 test_nb_instruction_per_sec_120_nop_asm(void) +{ + register u32 val __asm__("r0"); + + __asm__(" ldr r1, =g_ulSysTickCount"); + __asm__(" ldr r2, [r1]"); /* g_ulSysTickCount */ + __asm__(" push {r4}"); + __asm__(" movs r0, #0"); /* nb_instructions_per_sec = 0; */ + __asm__(" movw r4, #999"); /* wait_ms = 1000; */ + + __asm__("test_nb_instruction_per_sec_loop_120_nop:"); +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 20 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 20 nop */ +/* Total 120 nop */ + + __asm__(" ldr r3, [r1]"); /* tickms = g_ulSysTickCount */ + __asm__(" adds r0, #128"); /* nb_instructions_per_sec += 128; */ + __asm__(" cmp r2, r3"); + __asm__(" it CS"); /* IF THEN Higher or same */ + __asm__(" addcs r3, #34"); + __asm__(" subs r3, r3, r2"); + __asm__(" cmp r3, r4"); + __asm__(" bls test_nb_instruction_per_sec_loop_120_nop"); /* tickms < wait_ms ? */ + + __asm__(" POP {r4}"); + + return val; +}; + +u32 test_nb_instruction_per_sec_150_nop_asm(void) +{ + register u32 val __asm__("r0"); + + __asm__(" ldr r1, =g_ulSysTickCount"); + __asm__(" ldr r2, [r1]"); /* g_ulSysTickCount */ + __asm__(" push {r4}"); + __asm__(" movs r0, #0"); /* nb_instructions_per_sec = 0; */ + __asm__(" movw r4, #999"); /* wait_ms = 1000; */ + + __asm__("test_nb_instruction_per_sec_loop_150_nop:"); +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 50 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 50 nop */ +/* Total 150 nop */ + + __asm__(" ldr r3, [r1]"); /* tickms = g_ulSysTickCount */ + __asm__(" adds r0, #158"); /* nb_instructions_per_sec += 158; */ + __asm__(" cmp r2, r3"); + __asm__(" it CS"); /* IF THEN Higher or same */ + __asm__(" addcs r3, #34"); + __asm__(" subs r3, r3, r2"); + __asm__(" cmp r3, r4"); + __asm__(" bls test_nb_instruction_per_sec_loop_150_nop"); /* tickms < wait_ms ? */ + + __asm__(" POP {r4}"); + + return val; +}; + +u32 test_nb_instruction_per_sec_200_nop_asm(void) +{ + register u32 val __asm__("r0"); + + __asm__(" ldr r1, =g_ulSysTickCount"); + __asm__(" ldr r2, [r1]"); /* g_ulSysTickCount */ + __asm__(" push {r4}"); + __asm__(" movs r0, #0"); /* nb_instructions_per_sec = 0; */ + __asm__(" movw r4, #999"); /* wait_ms = 1000; */ + + __asm__("test_nb_instruction_per_sec_loop_200_nop:"); +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ +/* Total 200 nop */ + + __asm__(" ldr r3, [r1]"); /* tickms = g_ulSysTickCount */ + __asm__(" adds r0, #208"); /* nb_instructions_per_sec += 208; */ + __asm__(" cmp r2, r3"); + __asm__(" it CS"); /* IF THEN Higher or same */ + __asm__(" addcs r3, #34"); + __asm__(" subs r3, r3, r2"); + __asm__(" cmp r3, r4"); + __asm__(" bls test_nb_instruction_per_sec_loop_200_nop"); /* tickms < wait_ms ? */ + + __asm__(" POP {r4}"); + + return val; +}; + +u32 test_nb_instruction_per_sec_1000_nop_asm(void) +{ + register u32 val __asm__("r0"); + + __asm__(" ldr r1, =g_ulSysTickCount"); + __asm__(" ldr r2, [r1]"); /* g_ulSysTickCount */ + __asm__(" push {r4}"); + __asm__(" movs r0, #0"); /* nb_instructions_per_sec = 0; */ + __asm__(" movw r4, #999"); /* wait_ms = 1000; */ + + __asm__("test_nb_instruction_per_sec_loop_1000nop:"); +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ + +/* Start 100 nop */ + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); + __asm__(" nop"); +/* End 100 nop */ +/* Total 200 nop */ + + __asm__(" ldr r3, [r1]"); /* tickms = g_ulSysTickCount */ + __asm__(" adds r0, #1008"); /* nb_instructions_per_sec += 1008; */ + __asm__(" cmp r2, r3"); + __asm__(" it CS"); /* IF THEN Higher or same */ + __asm__(" addcs r3, #34"); + __asm__(" subs r3, r3, r2"); + __asm__(" cmp r3, r4"); + __asm__(" bls test_nb_instruction_per_sec_loop_1000nop"); /* tickms < wait_ms ? */ + + __asm__(" POP {r4}"); + + return val; +}; diff --git a/firmware/startup_systick_perfo_rom_to_ram/result_exec_from_SRAM.txt b/firmware/startup_systick_perfo_rom_to_ram/result_exec_from_SRAM.txt new file mode 100644 index 00000000..ce4a4299 --- /dev/null +++ b/firmware/startup_systick_perfo_rom_to_ram/result_exec_from_SRAM.txt @@ -0,0 +1,22 @@ +Frequency MCU Core M4 = 204MHz + +"nb_inst_per_sec" 0x10080008 + nb_inst_per_sec[0] 202091544 test_nb_instruction_per_sec_100_nop_asm(); + nb_inst_per_sec[1] 202172820 test_nb_instruction_per_sec_105_nop_asm(); + nb_inst_per_sec[2] 202247988 test_nb_instruction_per_sec_110_nop_asm(); + nb_inst_per_sec[3] 202317165 test_nb_instruction_per_sec_115_nop_asm(); + nb_inst_per_sec[4] 202381696 test_nb_instruction_per_sec_120_nop_asm(); + nb_inst_per_sec[5] 202680030 test_nb_instruction_per_sec_150_nop_asm(); + nb_inst_per_sec[6] 202986160 test_nb_instruction_per_sec_200_nop_asm(); + nb_inst_per_sec[7] 203760144 test_nb_instruction_per_sec_1000_nop_asm(); + + nb_inst_per_sec[8] 202091220 test_nb_instruction_per_sec_100_nop_asm(); + nb_inst_per_sec[9] 202172820 test_nb_instruction_per_sec_105_nop_asm(); + nb_inst_per_sec[10] 202247988 test_nb_instruction_per_sec_110_nop_asm(); + nb_inst_per_sec[11] 202317165 test_nb_instruction_per_sec_115_nop_asm(); + nb_inst_per_sec[12] 202381696 test_nb_instruction_per_sec_120_nop_asm(); + nb_inst_per_sec[13] 202680030 test_nb_instruction_per_sec_150_nop_asm(); + nb_inst_per_sec[14] 202986160 test_nb_instruction_per_sec_200_nop_asm(); + nb_inst_per_sec[15] 203760144 test_nb_instruction_per_sec_1000_nop_asm(); + +SRAM execution, expected 204 MIPS best case obtained min=202 MIPS, max=203.7 MIPS diff --git a/firmware/startup_systick_perfo_rom_to_ram/startup_systick.c b/firmware/startup_systick_perfo_rom_to_ram/startup_systick.c new file mode 100644 index 00000000..a8be4b05 --- /dev/null +++ b/firmware/startup_systick_perfo_rom_to_ram/startup_systick.c @@ -0,0 +1,235 @@ +/* + * Copyright 2010 - 2012 Michael Ossmann + * + * This file is part of HackRF. + * + * This program is free software; you can 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, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#include +#include +#include +#include +#include +#include + +#include "hackrf_core.h" + +/* Global counter incremented by SysTick Interrupt each millisecond */ +volatile u32 g_ulSysTickCount; +u32 g_NbCyclePerSecond; + +void gpio_setup(void) +{ + /* Configure SCU Pin Mux as GPIO */ + scu_pinmux(SCU_PINMUX_LED1, SCU_GPIO_FAST); + scu_pinmux(SCU_PINMUX_LED2, SCU_GPIO_FAST); + scu_pinmux(SCU_PINMUX_LED3, SCU_GPIO_FAST); + + scu_pinmux(SCU_PINMUX_EN1V8, SCU_GPIO_FAST); + + /* Configure all GPIO as Input (safe state) */ + GPIO0_DIR = 0; + GPIO1_DIR = 0; + GPIO2_DIR = 0; + GPIO3_DIR = 0; + GPIO4_DIR = 0; + GPIO5_DIR = 0; + GPIO6_DIR = 0; + GPIO7_DIR = 0; + + /* Configure GPIO2[1/2/8] (P4_1/2 P6_12) as output. */ + GPIO2_DIR |= (PIN_LED1|PIN_LED2|PIN_LED3); + + /* GPIO3[6] on P6_10 as output. */ + GPIO3_DIR |= PIN_EN1V8; +} + +void systick_setup(void) +{ + u32 systick_reload_val; + g_ulSysTickCount = 0; + + /* Disable IRQ globally */ + __asm__("cpsid i"); + + /* Set processor Clock as Source Clock */ + systick_set_clocksource(STK_CTRL_CLKSOURCE); + + /* Get SysTick calibration value to obtain by default 1 tick = 10ms */ + systick_reload_val = systick_get_calib(); + /* + * Calibration seems wrong on LPC43xx(TBC) for default Freq it assume System Clock is 12MHz but it is 12*17=204MHz + * Fix the Calibration value bu multiplication by 17 + */ + systick_reload_val = (systick_reload_val*17); + + /* To obtain 1ms per tick just divide by 10 the 10ms base tick and set the reload */ + systick_reload_val = systick_reload_val/10; + systick_set_reload(systick_reload_val); + + systick_interrupt_enable(); + + /* Start counting. */ + systick_counter_enable(); + + /* Set SysTick Priority to maximum */ + nvic_set_priority(NVIC_SYSTICK_IRQ, 0xFF); + + /* Enable IRQ globally */ + __asm__("cpsie i"); +} + +void scs_dwt_cycle_counter_enabled(void) +{ + SCS_DEMCR |= SCS_DEMCR_TRCENA; + SCS_DWT_CTRL |= SCS_DWT_CTRL_CYCCNTENA; +} + +u32 sys_tick_get_time_ms(void) +{ + return g_ulSysTickCount; +} + +u32 sys_tick_delta_time_ms(u32 start, u32 end) +{ + #define MAX_T_U32 ((2^32)-1) + u32 diff; + + if(end > start) + { + diff=end-start; + }else + { + diff=MAX_T_U32-(start-end)+1; + } + + return diff; +} + +void sys_tick_wait_time_ms(u32 wait_ms) +{ + u32 start, end; + u32 tickms; + + start = sys_tick_get_time_ms(); + + do + { + end = sys_tick_get_time_ms(); + tickms = sys_tick_delta_time_ms(start, end); + }while(tickms < wait_ms); +} + +/* Called each 1ms/1000Hz by interrupt + 1) Count the number of cycle per second. + 2) Increment g_ulSysTickCount counter. +*/ +void sys_tick_handler(void) +{ + if(g_ulSysTickCount==0) + { + /* Clear Cycle Counter*/ + SCS_DWT_CYCCNT = 0; + }else if(g_ulSysTickCount==1000) + { + /* Capture number of cycle elapsed during 1 second */ + g_NbCyclePerSecond = SCS_DWT_CYCCNT; + } + + g_ulSysTickCount++; +} + +u32 nb_inst_per_sec[16]; + +extern u32 test_nb_instruction_per_sec_100_nop_asm(); +extern u32 test_nb_instruction_per_sec_105_nop_asm(); +extern u32 test_nb_instruction_per_sec_110_nop_asm(); +extern u32 test_nb_instruction_per_sec_115_nop_asm(); +extern u32 test_nb_instruction_per_sec_120_nop_asm(); +extern u32 test_nb_instruction_per_sec_150_nop_asm(); +extern u32 test_nb_instruction_per_sec_200_nop_asm(); +extern u32 test_nb_instruction_per_sec_1000_nop_asm(); + +#define LED1_TOGGLE() (gpio_toggle(PORT_LED1_3, (PIN_LED1))) + +int main(void) +{ + gpio_setup(); + + gpio_set(PORT_EN1V8, PIN_EN1V8); /* 1V8 on */ + + cpu_clock_init(); + + scs_dwt_cycle_counter_enabled(); + + systick_setup(); + + gpio_clear(PORT_LED1_3, (PIN_LED1)); /* LED1 off */ + + /* Test number of instruction per second (MIPS) slow blink ON 1s, OFF 1s */ +LED1_TOGGLE(); + nb_inst_per_sec[0] = test_nb_instruction_per_sec_100_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[1]= test_nb_instruction_per_sec_105_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[2]= test_nb_instruction_per_sec_110_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[3]= test_nb_instruction_per_sec_115_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[4] = test_nb_instruction_per_sec_120_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[5] = test_nb_instruction_per_sec_150_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[6] = test_nb_instruction_per_sec_200_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[7] = test_nb_instruction_per_sec_1000_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[8] = test_nb_instruction_per_sec_100_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[9]= test_nb_instruction_per_sec_105_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[10]= test_nb_instruction_per_sec_110_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[11]= test_nb_instruction_per_sec_115_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[12] = test_nb_instruction_per_sec_120_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[13] = test_nb_instruction_per_sec_150_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[14] = test_nb_instruction_per_sec_200_nop_asm(); +LED1_TOGGLE(); + nb_inst_per_sec[15] = test_nb_instruction_per_sec_1000_nop_asm(); +LED1_TOGGLE(); + + /* Test finished fast blink */ + while (1) + { + gpio_set(PORT_LED1_3, (PIN_LED1)); /* LED1 on */ + gpio_set(PORT_LED1_3, (PIN_LED2)); /* LED2 on */ + gpio_set(PORT_LED1_3, (PIN_LED3)); /* LED3 on */ + + sys_tick_wait_time_ms(250); + + gpio_clear(PORT_LED1_3, (PIN_LED3)); /* LED3 off */ + gpio_clear(PORT_LED1_3, (PIN_LED2)); /* LED2 off */ + gpio_clear(PORT_LED1_3, (PIN_LED1)); /* LED1 off */ + + sys_tick_wait_time_ms(250); + } + + return 0; +} From bb12d3f601bc7581fd4196da8e8632550ed71fa3 Mon Sep 17 00:00:00 2001 From: TitanMKD Date: Mon, 25 Jun 2012 22:34:29 +0200 Subject: [PATCH 04/16] Example removed and replaced by startup_systick_perfo_rom_to_ram --- firmware/startup_systick_rom_to_ram/Makefile | 10 - firmware/startup_systick_rom_to_ram/README | 12 - .../startup_systick.c | 325 ------------------ 3 files changed, 347 deletions(-) delete mode 100644 firmware/startup_systick_rom_to_ram/Makefile delete mode 100644 firmware/startup_systick_rom_to_ram/README delete mode 100644 firmware/startup_systick_rom_to_ram/startup_systick.c diff --git a/firmware/startup_systick_rom_to_ram/Makefile b/firmware/startup_systick_rom_to_ram/Makefile deleted file mode 100644 index 8841bd0c..00000000 --- a/firmware/startup_systick_rom_to_ram/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -# Hey Emacs, this is a -*- makefile -*- - -BINARY = startup_systick - -SRC = $(BINARY).c \ - ../common/hackrf_core.c \ - ../common/si5351c.c - -LDSCRIPT = ../common/LPC4330_M4_rom_to_ram.ld -include ../common/Makefile_inc.mk diff --git a/firmware/startup_systick_rom_to_ram/README b/firmware/startup_systick_rom_to_ram/README deleted file mode 100644 index c99ad470..00000000 --- a/firmware/startup_systick_rom_to_ram/README +++ /dev/null @@ -1,12 +0,0 @@ -This program is an example of the startup sequence for HackRF (Jellybean with -Lemondrop attached). -LED1, LED2, and LED3 are blinking at exactly a frequency of 1Hz upon success. - -Required Lemondrop -> Jellybean connections: - -SCL: Lemondrop P7 pin 3 -> Jellybean P6 pin 3 -SDA: Lemondrop P7 pin 5 -> Jellybean P6 pin 5 -SDA: Lemondrop P7 pin 6 -> Jellybean P6 pin 6 -VCC: Lemondrop P4 pin 2, 4, or 6 -> Jellybean P17 pin 2, 4, or 6 -1V8: Lemondrop P11 pin 2, 4, or 6 -> Jellybean P16 pin 2, 4, or 6 -GND: Lemondrop P5 -> Jellybean P13 diff --git a/firmware/startup_systick_rom_to_ram/startup_systick.c b/firmware/startup_systick_rom_to_ram/startup_systick.c deleted file mode 100644 index a388a241..00000000 --- a/firmware/startup_systick_rom_to_ram/startup_systick.c +++ /dev/null @@ -1,325 +0,0 @@ -/* - * Copyright 2010 - 2012 Michael Ossmann - * - * This file is part of HackRF. - * - * This program is free software; you can 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, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, - * Boston, MA 02110-1301, USA. - */ - -#include -#include -#include -#include -#include -#include - -#include "hackrf_core.h" - -/* Global counter incremented by SysTick Interrupt each millisecond */ -volatile u32 g_ulSysTickCount; -u32 g_NbCyclePerSecond; - -void gpio_setup(void) -{ - /* Configure SCU Pin Mux as GPIO */ - scu_pinmux(SCU_PINMUX_LED1, SCU_GPIO_FAST); - scu_pinmux(SCU_PINMUX_LED2, SCU_GPIO_FAST); - scu_pinmux(SCU_PINMUX_LED3, SCU_GPIO_FAST); - - scu_pinmux(SCU_PINMUX_EN1V8, SCU_GPIO_FAST); - - /* Configure all GPIO as Input (safe state) */ - GPIO0_DIR = 0; - GPIO1_DIR = 0; - GPIO2_DIR = 0; - GPIO3_DIR = 0; - GPIO4_DIR = 0; - GPIO5_DIR = 0; - GPIO6_DIR = 0; - GPIO7_DIR = 0; - - /* Configure GPIO2[1/2/8] (P4_1/2 P6_12) as output. */ - GPIO2_DIR |= (PIN_LED1|PIN_LED2|PIN_LED3); - - /* GPIO3[6] on P6_10 as output. */ - GPIO3_DIR |= PIN_EN1V8; -} - -void systick_setup(void) -{ - u32 systick_reload_val; - g_ulSysTickCount = 0; - - /* Disable IRQ globally */ - __asm__("cpsid i"); - - /* Set processor Clock as Source Clock */ - systick_set_clocksource(STK_CTRL_CLKSOURCE); - - /* Get SysTick calibration value to obtain by default 1 tick = 10ms */ - systick_reload_val = systick_get_calib(); - /* - * Calibration seems wrong on LPC43xx(TBC) for default Freq it assume System Clock is 12MHz but it is 12*17=204MHz - * Fix the Calibration value bu multiplication by 17 - */ - systick_reload_val = (systick_reload_val*17); - - /* To obtain 1ms per tick just divide by 10 the 10ms base tick and set the reload */ - systick_reload_val = systick_reload_val/10; - systick_set_reload(systick_reload_val); - - systick_interrupt_enable(); - - /* Start counting. */ - systick_counter_enable(); - - /* Set SysTick Priority to maximum */ - nvic_set_priority(NVIC_SYSTICK_IRQ, 0xFF); - - /* Enable IRQ globally */ - __asm__("cpsie i"); -} - -void scs_dwt_cycle_counter_enabled(void) -{ - SCS_DEMCR |= SCS_DEMCR_TRCENA; - SCS_DWT_CTRL |= SCS_DWT_CTRL_CYCCNTENA; -} - -u32 sys_tick_get_time_ms(void) -{ - return g_ulSysTickCount; -} - -u32 sys_tick_delta_time_ms(u32 start, u32 end) -{ - #define MAX_T_U32 ((2^32)-1) - u32 diff; - - if(end > start) - { - diff=end-start; - }else - { - diff=MAX_T_U32-(start-end)+1; - } - - return diff; -} - -void sys_tick_wait_time_ms(u32 wait_ms) -{ - u32 start, end; - u32 tickms; - - start = sys_tick_get_time_ms(); - - do - { - end = sys_tick_get_time_ms(); - tickms = sys_tick_delta_time_ms(start, end); - }while(tickms < wait_ms); -} - -/* Called each 1ms/1000Hz by interrupt - 1) Count the number of cycle per second. - 2) Increment g_ulSysTickCount counter. -*/ -void sys_tick_handler(void) -{ - if(g_ulSysTickCount==0) - { - /* Clear Cycle Counter*/ - SCS_DWT_CYCCNT = 0; - }else if(g_ulSysTickCount==1000) - { - /* Capture number of cycle elapsed during 1 second */ - g_NbCyclePerSecond = SCS_DWT_CYCCNT; - } - - g_ulSysTickCount++; -} - -u32 test_nb_instruction_per_sec(void) -{ - u32 start, end, wait_ms; - u32 tickms; - u32 nb_instructions_per_sec; - - nb_instructions_per_sec = 0; - wait_ms = 1000; - - start = sys_tick_get_time_ms(); - - do - { - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - __asm__("nop "); - nb_instructions_per_sec += 100; - - end = sys_tick_get_time_ms(); - tickms = sys_tick_delta_time_ms(start, end); - }while(tickms < wait_ms); - - return nb_instructions_per_sec; -} - - -u32 nb_inst_per_sec0; -u32 nb_inst_per_sec1; - -int main(void) -{ - gpio_setup(); - - gpio_set(PORT_EN1V8, PIN_EN1V8); /* 1V8 on */ - - cpu_clock_init(); - - scs_dwt_cycle_counter_enabled(); - - systick_setup(); - - /* Test number of instruction per second */ - nb_inst_per_sec0 = test_nb_instruction_per_sec(); - nb_inst_per_sec1 = test_nb_instruction_per_sec(); - - gpio_set(PORT_LED1_3, (PIN_LED1|PIN_LED2|PIN_LED3)); /* LEDs on */ - - while (1) - { - gpio_set(PORT_LED1_3, (PIN_LED1)); /* LED1 on */ - gpio_set(PORT_LED1_3, (PIN_LED2)); /* LED2 on */ - gpio_set(PORT_LED1_3, (PIN_LED3)); /* LED3 on */ - - sys_tick_wait_time_ms(500); - - gpio_clear(PORT_LED1_3, (PIN_LED3)); /* LED3 off */ - gpio_clear(PORT_LED1_3, (PIN_LED2)); /* LED2 off */ - gpio_clear(PORT_LED1_3, (PIN_LED1)); /* LED1 off */ - - sys_tick_wait_time_ms(500); - } - - return 0; -} From 988b3e3a49f83663a3bc47c370155a5605d51f74 Mon Sep 17 00:00:00 2001 From: TitanMKD Date: Mon, 25 Jun 2012 22:45:18 +0200 Subject: [PATCH 05/16] Fixed simple systick example --- firmware/startup_systick/startup_systick.c | 186 +++++++++++++++++++++ 1 file changed, 186 insertions(+) create mode 100644 firmware/startup_systick/startup_systick.c diff --git a/firmware/startup_systick/startup_systick.c b/firmware/startup_systick/startup_systick.c new file mode 100644 index 00000000..c7c3e01e --- /dev/null +++ b/firmware/startup_systick/startup_systick.c @@ -0,0 +1,186 @@ +/* + * Copyright 2012 Benjamin Vernoux + * + * This file is part of HackRF. + * + * This program is free software; you can 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, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#include +#include +#include +#include +#include +#include + +#include "hackrf_core.h" + +/* Global counter incremented by SysTick Interrupt each millisecond */ +volatile u32 g_ulSysTickCount; +u32 g_NbCyclePerSecond; + +void gpio_setup(void) +{ + /* Configure SCU Pin Mux as GPIO */ + scu_pinmux(SCU_PINMUX_LED1, SCU_GPIO_FAST); + scu_pinmux(SCU_PINMUX_LED2, SCU_GPIO_FAST); + scu_pinmux(SCU_PINMUX_LED3, SCU_GPIO_FAST); + + scu_pinmux(SCU_PINMUX_EN1V8, SCU_GPIO_FAST); + + /* Configure all GPIO as Input (safe state) */ + GPIO0_DIR = 0; + GPIO1_DIR = 0; + GPIO2_DIR = 0; + GPIO3_DIR = 0; + GPIO4_DIR = 0; + GPIO5_DIR = 0; + GPIO6_DIR = 0; + GPIO7_DIR = 0; + + /* Configure GPIO2[1/2/8] (P4_1/2 P6_12) as output. */ + GPIO2_DIR |= (PIN_LED1|PIN_LED2|PIN_LED3); + + /* GPIO3[6] on P6_10 as output. */ + GPIO3_DIR |= PIN_EN1V8; +} + +void systick_setup(void) +{ + u32 systick_reload_val; + g_ulSysTickCount = 0; + + /* Disable IRQ globally */ + __asm__("cpsid i"); + + /* Set processor Clock as Source Clock */ + systick_set_clocksource(STK_CTRL_CLKSOURCE); + + /* Get SysTick calibration value to obtain by default 1 tick = 10ms */ + systick_reload_val = systick_get_calib(); + /* + * Calibration seems wrong on LPC43xx(TBC) for default Freq it assume System Clock is 12MHz but it is 12*17=204MHz + * Fix the Calibration value bu multiplication by 17 + */ + systick_reload_val = (systick_reload_val*17); + + /* To obtain 1ms per tick just divide by 10 the 10ms base tick and set the reload */ + systick_reload_val = systick_reload_val/10; + systick_set_reload(systick_reload_val); + + systick_interrupt_enable(); + + /* Start counting. */ + systick_counter_enable(); + + /* Set SysTick Priority to maximum */ + nvic_set_priority(NVIC_SYSTICK_IRQ, 0xFF); + + /* Enable IRQ globally */ + __asm__("cpsie i"); +} + +void scs_dwt_cycle_counter_enabled(void) +{ + SCS_DEMCR |= SCS_DEMCR_TRCENA; + SCS_DWT_CTRL |= SCS_DWT_CTRL_CYCCNTENA; +} + +u32 sys_tick_get_time_ms(void) +{ + return g_ulSysTickCount; +} + +u32 sys_tick_delta_time_ms(u32 start, u32 end) +{ + #define MAX_T_U32 ((2^32)-1) + u32 diff; + + if(end > start) + { + diff=end-start; + }else + { + diff=MAX_T_U32-(start-end)+1; + } + + return diff; +} + +void sys_tick_wait_time_ms(u32 wait_ms) +{ + u32 start, end; + u32 tickms; + + start = sys_tick_get_time_ms(); + + do + { + end = sys_tick_get_time_ms(); + tickms = sys_tick_delta_time_ms(start, end); + }while(tickms < wait_ms); +} + +/* Called each 1ms/1000Hz by interrupt + 1) Count the number of cycle per second. + 2) Increment g_ulSysTickCount counter. +*/ +void sys_tick_handler(void) +{ + if(g_ulSysTickCount==0) + { + /* Clear Cycle Counter*/ + SCS_DWT_CYCCNT = 0; + }else if(g_ulSysTickCount==1000) + { + /* Capture number of cycle elapsed during 1 second */ + g_NbCyclePerSecond = SCS_DWT_CYCCNT; + } + + g_ulSysTickCount++; +} + +int main(void) +{ + gpio_setup(); + + gpio_set(PORT_EN1V8, PIN_EN1V8); /* 1V8 on */ + + cpu_clock_init(); + + scs_dwt_cycle_counter_enabled(); + + systick_setup(); + + gpio_set(PORT_LED1_3, (PIN_LED1|PIN_LED2|PIN_LED3)); /* LEDs on */ + + while (1) + { + gpio_set(PORT_LED1_3, (PIN_LED1)); /* LED1 on */ + gpio_set(PORT_LED1_3, (PIN_LED2)); /* LED2 on */ + gpio_set(PORT_LED1_3, (PIN_LED3)); /* LED3 on */ + + sys_tick_wait_time_ms(500); + + gpio_clear(PORT_LED1_3, (PIN_LED3)); /* LED3 off */ + gpio_clear(PORT_LED1_3, (PIN_LED2)); /* LED2 off */ + gpio_clear(PORT_LED1_3, (PIN_LED1)); /* LED1 off */ + + sys_tick_wait_time_ms(500); + } + + return 0; +} From a7848121001e4b9f07381b09e0bdc3415e673a22 Mon Sep 17 00:00:00 2001 From: Michael Ossmann Date: Mon, 25 Jun 2012 23:36:09 -0600 Subject: [PATCH 06/16] updated require connections --- firmware/simpletx/README | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/firmware/simpletx/README b/firmware/simpletx/README index 4af76df5..43b2fd91 100644 --- a/firmware/simpletx/README +++ b/firmware/simpletx/README @@ -3,13 +3,21 @@ carrier. Required Lemondrop -> Jellybean connections: -SCK: Lemondrop P3 pin 2 -> Jellybean P9 2 -MOSI: Lemondrop P3 pin 4 -> Jellybean P9 4 -MISO: Lemondrop P3 pin 6 -> Jellybean P9 6 -SSEL: Lemondrop P3 pin 3 -> Jellybean P9 3 -SCL: Lemondrop P7 pin 3 -> Jellybean P6 pin 3 -SDA: Lemondrop P7 pin 5 -> Jellybean P6 pin 5 -SDA: Lemondrop P7 pin 6 -> Jellybean P6 pin 6 -VCC: Lemondrop P4 pin 2, 4, or 6 -> Jellybean P17 pin 2, 4, or 6 -1V8: Lemondrop P11 pin 2, 4, or 6 -> Jellybean P16 pin 2, 4, or 6 -GND: Lemondrop P5 -> Jellybean P13 +SCK: Lemondrop P3 pin 2 -> Jellybean P9 2 +CS_XCVR: Lemondrop P3 pin 3 -> Jellybean P9 3 +MOSI: Lemondrop P3 pin 4 -> Jellybean P9 4 +CS_AD: Lemondrop P3 pin 5 -> Jellybean P9 5 +MISO: Lemondrop P3 pin 6 -> Jellybean P9 6 +ENABLE: Lemondrop P6 pin 12 -> Jellybean P7 pin 12 +RXENABLE: Lemondrop P6 pin 13 -> Jellybean P7 pin 13 +TXENABLE: Lemondrop P6 pin 15 -> Jellybean P7 pin 15 +SCL: Lemondrop P7 pin 3 -> Jellybean P6 pin 3 +SDA: Lemondrop P7 pin 5 -> Jellybean P6 pin 5 +SDA: Lemondrop P7 pin 6 -> Jellybean P6 pin 6 +VCC: Lemondrop P4 pin 2, 4, or 6 -> Jellybean P17 pin 2, 4, or 6 +GND: Lemondrop P5 -> Jellybean P13 + +For now we are running everything at 3.3 V, but in the future we may also +require: + +1V8: Lemondrop P11 pin 2, 4, or 6 -> Jellybean P16 pin 2, 4, or 6 From 80e452954470d816756ed6fd7b1dcd3043f6eec6 Mon Sep 17 00:00:00 2001 From: TitanMKD Date: Tue, 26 Jun 2012 22:12:46 +0200 Subject: [PATCH 07/16] SPIFI Tests with OLS & JellyBean. --- ...6b3_JellyBean_Startup_Dual4_M4_SPIFI_0.olp | Bin 0 -> 55374 bytes ...6b3_JellyBean_Startup_Dual4_M4_SPIFI_0.ols | 16106 ++++++++++++++++ ...yBean_Startup_Dual4_M4_SPIFI_0_Analyze.txt | 127 + 3 files changed, 16233 insertions(+) create mode 100644 doc/SPIFI_Quad_Tests_OLS/SPIFI_QUAD_100MHZ_OLS_0_9_6b3_JellyBean_Startup_Dual4_M4_SPIFI_0.olp create mode 100644 doc/SPIFI_Quad_Tests_OLS/SPIFI_QUAD_100MHZ_OLS_0_9_6b3_JellyBean_Startup_Dual4_M4_SPIFI_0.ols create mode 100644 doc/SPIFI_Quad_Tests_OLS/SPIFI_QUAD_100MHZ_OLS_0_9_6b3_JellyBean_Startup_Dual4_M4_SPIFI_0_Analyze.txt diff --git a/doc/SPIFI_Quad_Tests_OLS/SPIFI_QUAD_100MHZ_OLS_0_9_6b3_JellyBean_Startup_Dual4_M4_SPIFI_0.olp b/doc/SPIFI_Quad_Tests_OLS/SPIFI_QUAD_100MHZ_OLS_0_9_6b3_JellyBean_Startup_Dual4_M4_SPIFI_0.olp new file mode 100644 index 0000000000000000000000000000000000000000..4cc1bccfb3e5096af6eaafb793d1faa3de23b69b GIT binary patch literal 55374 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
SUZ=tI=DH!?oaSnfy{_fV?kVF10RLKb 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 literal 0 HcmV?d00001 diff --git a/doc/SPIFI_Quad_Tests_OLS/SPIFI_QUAD_100MHZ_OLS_0_9_6b3_JellyBean_Startup_Dual4_M4_SPIFI_0.ols b/doc/SPIFI_Quad_Tests_OLS/SPIFI_QUAD_100MHZ_OLS_0_9_6b3_JellyBean_Startup_Dual4_M4_SPIFI_0.ols new file mode 100644 index 00000000..10a760e0 --- /dev/null +++ b/doc/SPIFI_Quad_Tests_OLS/SPIFI_QUAD_100MHZ_OLS_0_9_6b3_JellyBean_Startup_Dual4_M4_SPIFI_0.ols @@ -0,0 +1,16106 @@ +;Size: 16098 +;Rate: 100000000 +;Channels: 8 +;EnabledChannels: 255 +;TriggerPosition: 49585 +;Compressed: true +;AbsoluteLength: 165308 +;CursorEnabled: true +00000000@0 +00000010@45140 +00000000@45141 +0000003c@45145 +00000000@45146 +00000030@45147 +00000000@45148 +0000003c@45150 +00000000@45151 +00000038@45152 +00000000@45153 +0000003c@45155 +00000000@45156 +0000003e@45157 +00000000@45158 +00000010@45159 +00000000@45160 +0000003e@45162 +00000000@45163 +00000030@45164 +00000000@45165 +0000003e@45167 +00000000@45168 +0000003e@45169 +00000000@45170 +00000038@45171 +00000000@45172 +0000003e@45174 +00000000@45175 +00000038@45176 +00000000@45177 +0000003c@45179 +00000000@45180 +0000003e@45181 +00000000@45182 +0000003c@45183 +00000000@45184 +0000003e@45186 +00000000@45187 +0000003c@45188 +00000000@45189 +00000010@45190 +0000003c@45191 +00000000@45192 +0000003e@45193 +00000000@45194 +0000003c@45195 +00000000@45196 +0000003e@45198 +00000000@45199 +0000003e@45200 +00000000@45201 +00000038@45202 +00000008@45203 +00000000@45204 +0000003e@45205 +00000000@45206 +0000003c@45207 +00000000@45208 +00000018@45209 +0000003c@45210 +00000000@45211 +0000003e@45212 +00000000@45213 +00000030@45214 +00000000@45215 +0000003e@45217 +00000000@45218 +0000003c@45219 +00000000@45220 +00000018@45221 +0000003c@45222 +00000000@45223 +0000003e@45224 +00000000@45225 +00000030@45226 +00000000@45227 +0000003e@45229 +00000000@45230 +0000003c@45231 +00000000@45232 +00000038@45233 +00000000@45234 +0000003e@45236 +00000000@45237 +0000003c@45238 +00000000@45239 +00000008@45240 +0000003c@45241 +00000000@45242 +0000003e@45243 +00000000@45244 +00000038@45245 +00000000@45246 +0000003e@45248 +00000000@45249 +0000003c@45250 +00000000@45251 +00000018@45252 +00000038@45253 +00000000@45254 +0000003e@45255 +00000000@45256 +0000003c@45257 +00000000@45258 +0000003c@45260 +00000000@45261 +0000003e@45262 +00000000@45263 +00000030@45264 +00000000@45265 +0000003e@45267 +00000000@45268 +0000003c@45269 +00000000@45270 +00000018@45271 +0000003c@45272 +00000000@45273 +0000003e@45274 +00000000@45275 +00000038@45276 +00000000@45277 +0000003e@45279 +00000000@45280 +0000003e@45281 +00000000@45282 +0000003c@45283 +00000000@45284 +0000003e@45286 +00000000@45287 +0000003c@45288 +00000000@45289 +00000018@45290 +0000003c@45291 +00000000@45292 +0000003e@45293 +00000000@45294 +00000038@45295 +00000000@45296 +0000003e@45298 +00000000@45299 +0000003e@45300 +00000000@45301 +00000038@45302 +00000008@45303 +00000000@45304 +0000003e@45305 +00000000@45306 +0000003c@45307 +00000000@45308 +00000018@45309 +0000003c@45310 +00000000@45311 +0000003e@45312 +00000000@45313 +00000038@45314 +00000000@45315 +0000003e@45317 +00000000@45318 +0000003c@45319 +00000000@45320 +0000001c@45321 +0000000c@45322 +00000000@45323 +0000003e@45324 +00000000@45325 +00000038@45326 +00000000@45327 +00000008@45328 +0000003c@45329 +00000000@45330 +0000003e@45331 +00000000@45332 +0000003c@45333 +00000000@45334 +0000003e@45336 +00000000@45337 +0000003e@45338 +00000000@45339 +00000018@45340 +00000038@45341 +00000000@45342 +0000003e@45343 +00000000@45344 +0000003c@45345 +00000000@45346 +0000003c@45348 +00000000@45349 +0000003e@45350 +00000000@45351 +00000038@45352 +00000000@45353 +0000003e@45355 +00000000@45356 +0000003c@45357 +00000000@45358 +00000018@45359 +0000003c@45360 +00000000@45361 +0000003e@45362 +00000000@45363 +00000038@45364 +00000000@45365 +0000003e@45367 +00000000@45368 +0000003e@45369 +00000000@45370 +0000003c@45371 +00000000@45372 +0000003e@45374 +00000000@45375 +0000003c@45376 +00000000@45377 +00000018@45378 +0000003c@45379 +00000000@45380 +0000003e@45381 +00000000@45382 +00000038@45383 +00000000@45384 +0000003e@45386 +00000000@45387 +0000003e@45388 +00000000@45389 +00000038@45390 +00000000@45391 +0000003e@45393 +00000000@45394 +0000003c@45395 +00000000@45396 +00000018@45397 +0000003c@45398 +00000000@45399 +0000003e@45400 +00000000@45401 +00000038@45402 +00000000@45403 +0000003e@45405 +00000000@45406 +0000003e@45407 +00000000@45408 +0000003c@45409 +00000000@45410 +0000003e@45412 +00000000@45413 +0000003c@45414 +00000000@45415 +00000018@45416 +0000003c@45417 +00000000@45418 +0000003e@45419 +00000000@45420 +00000038@45421 +00000000@45422 +0000003e@45424 +00000000@45425 +0000003e@45426 +00000000@45427 +00000038@45428 +00000000@45429 +0000003e@45431 +00000000@45432 +0000003c@45433 +00000000@45434 +0000001c@45435 +0000003c@45436 +00000000@45437 +0000003e@45438 +00000000@45439 +00000038@45440 +00000000@45441 +0000003e@45443 +00000000@45444 +0000003e@45445 +00000000@45446 +0000003c@45447 +00000000@45448 +0000003e@45450 +00000000@45451 +0000003c@45452 +00000000@45453 +00000018@45454 +0000003c@45455 +00000000@45456 +0000003e@45457 +00000000@45458 +0000003c@45459 +00000000@45460 +0000003e@45462 +00000000@45463 +0000003e@45464 +00000000@45465 +00000038@45466 +00000000@45467 +0000003e@45469 +00000000@45470 +0000003c@45471 +00000000@45472 +00000018@45473 +0000003c@45474 +00000000@45475 +0000003e@45476 +00000000@45477 +00000038@45478 +00000000@45479 +0000003e@45481 +00000000@45482 +0000003e@45483 +00000000@45484 +0000003c@45485 +00000000@45486 +0000003e@45488 +00000000@45489 +0000003c@45490 +00000000@45491 +00000018@45492 +0000003c@45493 +00000000@45494 +0000003e@45495 +00000000@45496 +0000003c@45497 +00000000@45498 +0000003e@45500 +00000000@45501 +0000003e@45502 +00000000@45503 +00000038@45504 +00000000@45505 +0000003e@45507 +00000000@45508 +0000003c@45509 +00000000@45510 +00000018@45511 +0000003c@45512 +00000000@45513 +0000003e@45514 +00000000@45515 +00000038@45516 +00000000@45517 +0000003e@45519 +00000000@45520 +0000003e@45521 +00000000@45522 +0000003c@45523 +00000000@45524 +0000003e@45526 +00000000@45527 +0000003c@45528 +00000000@45529 +00000018@45530 +0000003c@45531 +00000000@45532 +0000003e@45533 +00000000@45534 +0000003c@45535 +00000000@45536 +0000003e@45538 +00000000@45539 +0000003e@45540 +00000000@45541 +00000038@45542 +00000000@45543 +0000003e@45545 +00000000@45546 +0000003c@45547 +00000000@45548 +00000018@45549 +0000003c@45550 +00000000@45551 +0000003e@45552 +00000000@45553 +00000038@45554 +00000000@45555 +0000003e@45557 +00000000@45558 +0000003e@45559 +00000000@45560 +0000003c@45561 +00000000@45562 +0000003e@45564 +00000000@45565 +0000003c@45566 +00000000@45567 +00000018@45568 +0000003c@45569 +00000000@45570 +0000003e@45571 +00000000@45572 +0000003c@45573 +00000000@45574 +00000008@45575 +0000003e@45576 +00000000@45577 +0000003e@45578 +00000000@45579 +00000038@45580 +00000000@45581 +0000003e@45583 +00000000@45584 +0000003c@45585 +00000000@45586 +0000001c@45587 +00000000@45589 +0000003e@45590 +00000000@45591 +0000003c@45592 +00000000@45593 +00000008@45594 +0000003e@45595 +00000000@45596 +0000003e@45597 +00000000@45598 +0000003c@45599 +00000000@45600 +0000003e@45602 +00000000@45603 +0000003e@45604 +00000000@45605 +0000001c@45606 +00000000@45608 +0000003e@45609 +00000000@45610 +0000003c@45611 +00000000@45612 +00000018@45613 +0000003c@45614 +00000000@45615 +0000003e@45616 +00000000@45617 +00000038@45618 +00000000@45619 +0000003e@45621 +00000000@45622 +0000003e@45623 +00000000@45624 +0000003c@45625 +00000004@45626 +00000000@45627 +0000003e@45628 +00000000@45629 +0000003c@45630 +00000000@45631 +00000018@45632 +0000003c@45633 +00000000@45634 +0000003e@45635 +00000000@45636 +0000003c@45637 +00000000@45638 +0000003e@45640 +00000000@45641 +0000003e@45642 +00000000@45643 +0000003c@45644 +0000001c@45645 +00000000@45646 +0000003e@45647 +00000000@45648 +0000003c@45649 +00000000@45650 +00000018@45651 +0000003e@45652 +00000000@45653 +0000003e@45654 +00000000@45655 +0000003c@45656 +00000000@45657 +0000003e@45659 +00000000@45660 +0000003e@45661 +00000000@45662 +0000003c@45663 +0000000c@45664 +00000000@45665 +0000003e@45666 +00000000@45667 +0000003c@45668 +00000000@45669 +00000008@45670 +0000003c@45671 +00000000@45672 +0000003e@45673 +00000000@45674 +0000003c@45675 +00000000@45676 +0000003e@45678 +00000000@45679 +0000003e@45680 +00000000@45681 +0000003c@45682 +0000000c@45683 +00000000@45684 +0000003e@45685 +00000000@45686 +0000003c@45687 +00000000@45688 +0000001c@45689 +0000003e@45690 +00000000@45691 +0000003e@45692 +00000000@45693 +00000038@45694 +00000000@45695 +0000003e@45697 +00000000@45698 +0000003e@45699 +00000000@45700 +0000003c@45701 +00000004@45702 +00000000@45703 +0000003e@45704 +00000000@45705 +0000003c@45706 +00000000@45707 +0000000c@45708 +0000003c@45709 +00000000@45710 +0000003e@45711 +00000000@45712 +0000003c@45713 +00000000@45714 +0000003e@45716 +00000000@45717 +0000003e@45718 +00000000@45719 +0000003c@45720 +0000000c@45721 +00000000@45722 +0000003e@45723 +00000000@45724 +0000003c@45725 +00000000@45726 +0000001c@45727 +0000003e@45728 +00000000@45729 +0000003e@45730 +00000000@45731 +00000038@45732 +00000000@45733 +0000003e@45735 +00000000@45736 +0000003e@45737 +00000000@45738 +0000003e@45739 +00000004@45740 +00000000@45741 +0000003e@45742 +00000000@45743 +0000003c@45744 +00000000@45745 +0000001c@45746 +0000003c@45747 +00000000@45748 +0000003e@45749 +00000000@45750 +0000003c@45751 +00000000@45752 +00000008@45753 +0000003e@45754 +00000000@45755 +0000003e@45756 +00000000@45757 +0000003c@45758 +00000000@45759 +0000003e@45761 +00000000@45762 +0000003c@45763 +00000000@45764 +0000001e@45765 +0000001c@45766 +00000000@45767 +0000003e@45768 +00000000@45769 +0000003c@45770 +00000000@45771 +00000008@45772 +0000003e@45773 +00000000@45774 +0000003e@45775 +00000000@45776 +0000003e@45777 +00000000@45778 +0000003e@45780 +00000000@45781 +0000003e@45782 +00000000@45783 +00000038@45784 +0000000c@45785 +00000000@45786 +0000003e@45787 +00000000@45788 +0000003c@45789 +00000000@45790 +0000001c@45791 +0000003e@45792 +00000000@45793 +0000003e@45794 +00000000@45795 +0000003c@45796 +00000000@45797 +0000003e@45799 +00000000@45800 +0000003e@45801 +00000000@45802 +0000003c@45803 +00000000@45804 +0000003e@45806 +00000000@45807 +0000003c@45808 +00000000@45809 +0000001c@45810 +0000003c@45811 +00000000@45812 +0000003e@45813 +00000000@45814 +0000003c@45815 +00000000@45816 +00000008@45817 +0000003e@45818 +00000000@45819 +0000003e@45820 +00000000@45821 +0000003c@45822 +00000000@45823 +0000003e@45825 +00000000@45826 +0000003c@45827 +00000000@45828 +0000001c@45829 +00000000@45831 +0000003e@45832 +00000000@45833 +0000003c@45834 +00000000@45835 +00000008@45836 +0000003e@45837 +00000000@45838 +0000003e@45839 +00000000@45840 +0000003c@45841 +00000000@45842 +0000003e@45844 +00000000@45845 +0000003c@45846 +00000000@45847 +0000001c@45848 +0000003c@45849 +00000000@45850 +0000003e@45851 +00000000@45852 +0000003c@45853 +00000000@45854 +0000000c@45855 +0000003e@45856 +00000000@45857 +0000003e@45858 +00000000@45859 +0000003c@45860 +00000000@45861 +0000003e@45863 +00000000@45864 +0000003c@45865 +00000000@45866 +0000003e@45867 +0000001e@45868 +00000000@45869 +0000003e@45870 +00000000@45871 +0000003c@45872 +00000000@45873 +0000000c@45874 +0000003c@45875 +00000000@45876 +0000003e@45877 +00000000@45878 +0000003c@45879 +00000000@45880 +0000003e@45882 +00000000@45883 +0000003e@45884 +00000000@45885 +0000003c@45886 +0000000c@45887 +00000000@45888 +0000003e@45889 +00000000@45890 +0000003c@45891 +00000000@45892 +0000001c@45893 +0000003e@45894 +00000000@45895 +0000003e@45896 +00000000@45897 +0000003c@45898 +00000000@45899 +0000003e@45901 +00000000@45902 +0000003e@45903 +00000000@45904 +0000003e@45905 +0000000c@45906 +00000000@45907 +0000003e@45908 +00000000@45909 +0000003c@45910 +00000000@45911 +0000001c@45912 +0000003c@45913 +00000000@45914 +0000003e@45915 +00000000@45916 +0000003e@45917 +00000000@45918 +0000000c@45919 +0000003e@45920 +00000000@45921 +0000003e@45922 +00000000@45923 +0000003c@45924 +00000000@45925 +0000003e@45927 +00000000@45928 +0000003c@45929 +00000000@45930 +0000003e@45931 +0000001c@45932 +00000000@45933 +0000003e@45934 +00000000@45935 +0000003c@45936 +00000000@45937 +0000000c@45938 +0000003c@45939 +00000000@45940 +0000003e@45941 +00000000@45942 +0000003e@45943 +00000000@45944 +0000003e@45946 +00000000@45947 +0000003e@45948 +00000000@45949 +0000003c@45950 +00000000@45951 +0000003e@45953 +00000000@45954 +0000003c@45955 +00000000@45956 +0000001e@45957 +0000003e@45958 +00000000@45959 +0000003e@45960 +00000000@45961 +0000003c@45962 +00000000@45963 +00000008@45964 +0000003e@45965 +00000000@45966 +0000003e@45967 +00000000@45968 +0000003e@45969 +00000000@45970 +0000003e@45972 +00000000@45973 +0000003e@45974 +00000000@45975 +0000001c@45976 +0000000c@45977 +00000000@45978 +0000003e@45979 +00000000@45980 +0000003e@45981 +00000000@45982 +0000001e@45983 +0000003e@45984 +00000000@45985 +0000003e@45986 +00000000@45987 +0000003c@45988 +00000000@45989 +0000003e@45991 +00000000@45992 +0000003e@45993 +00000000@45994 +0000003e@45995 +00000004@45996 +00000000@45997 +0000003e@45998 +00000000@45999 +0000003c@46000 +00000000@46001 +0000001c@46002 +0000003c@46003 +00000000@46004 +0000003e@46005 +00000000@46006 +0000003c@46007 +00000000@46008 +0000000c@46009 +0000003e@46010 +00000000@46011 +0000003e@46012 +00000000@46013 +0000003c@46014 +00000000@46015 +0000003e@46017 +00000000@46018 +0000003e@46019 +00000000@46020 +0000003e@46021 +0000000c@46022 +00000000@46023 +0000003e@46024 +00000000@46025 +0000003c@46026 +00000000@46027 +0000001c@46028 +0000003c@46029 +00000000@46030 +0000003e@46031 +00000000@46032 +0000003e@46033 +00000000@46034 +0000000c@46035 +0000003e@46036 +00000000@46037 +0000003e@46038 +00000000@46039 +0000003c@46040 +00000000@46041 +0000003e@46043 +00000000@46044 +0000003c@46045 +00000000@46046 +0000003e@46047 +0000001e@46048 +00000000@46049 +0000003e@46050 +00000000@46051 +0000003c@46052 +00000000@46053 +0000000c@46054 +0000003e@46055 +00000000@46056 +0000003e@46057 +00000000@46058 +0000003e@46059 +00000000@46060 +0000000c@46061 +0000003e@46062 +00000000@46063 +0000003e@46064 +00000000@46065 +0000003c@46066 +00000004@46067 +00000000@46068 +0000003e@46069 +00000000@46070 +0000003c@46071 +00000000@46072 +0000001e@46073 +0000003e@46074 +00000000@46075 +0000003e@46076 +00000000@46077 +0000003c@46078 +00000000@46079 +00000008@46080 +0000003e@46081 +00000000@46082 +0000003e@46083 +00000000@46084 +0000003e@46085 +00000000@46086 +0000003e@46088 +00000000@46089 +0000003e@46090 +00000000@46091 +0000001c@46092 +0000000c@46093 +00000000@46094 +0000003e@46095 +00000000@46096 +0000003e@46097 +00000000@46098 +0000001e@46099 +0000003e@46100 +00000000@46101 +0000003e@46102 +00000000@46103 +0000003e@46104 +00000000@46105 +0000000c@46106 +0000003e@46107 +00000000@46108 +0000003e@46109 +00000000@46110 +0000003c@46111 +00000000@46112 +0000003e@46114 +00000000@46115 +0000003c@46116 +00000000@46117 +0000001c@46118 +00000000@46120 +0000003e@46121 +00000000@46122 +0000003c@46123 +00000000@46124 +0000001c@46125 +0000003e@46126 +00000000@46127 +0000003e@46128 +00000000@46129 +0000003c@46130 +00000000@46131 +0000003e@46133 +00000000@46134 +0000003e@46135 +00000000@46136 +0000003e@46137 +0000000c@46138 +00000000@46139 +0000003e@46140 +00000000@46141 +0000003e@46142 +00000000@46143 +0000001e@46144 +0000003c@46145 +00000000@46146 +0000003e@46147 +00000000@46148 +0000003c@46149 +00000000@46150 +0000000c@46151 +0000003e@46152 +00000000@46153 +0000003e@46154 +00000000@46155 +0000003c@46156 +00000000@46157 +0000003e@46159 +00000000@46160 +0000003e@46161 +00000000@46162 +0000003e@46163 +0000000e@46164 +00000000@46165 +0000003e@46166 +00000000@46167 +0000003e@46168 +00000000@46169 +0000001e@46170 +0000003c@46171 +00000000@46172 +0000003e@46173 +00000000@46174 +0000003e@46175 +00000000@46176 +0000000c@46177 +0000003e@46178 +00000000@46179 +0000003e@46180 +00000000@46181 +0000003e@46182 +00000000@46183 +0000003e@46185 +00000000@46186 +0000003e@46187 +00000000@46188 +0000003e@46189 +00000004@46190 +00000000@46191 +0000003e@46192 +00000000@46193 +0000003e@46194 +00000000@46195 +0000001e@46196 +0000001c@46197 +00000000@46198 +0000003e@46199 +00000000@46200 +0000003e@46201 +00000000@46202 +0000001e@46203 +0000003e@46204 +00000000@46205 +0000003e@46206 +00000000@46207 +0000003e@46208 +00000000@46209 +0000000c@46210 +0000003e@46211 +00000000@46212 +0000003e@46213 +00000000@46214 +0000003e@46215 +00000000@46216 +0000003e@46218 +00000000@46219 +0000003e@46220 +00000000@46221 +0000003e@46222 +0000000c@46223 +00000000@46224 +0000003e@46225 +00000000@46226 +0000003c@46227 +00000000@46228 +0000001e@46229 +0000003e@46230 +00000000@46231 +0000003e@46232 +00000000@46233 +0000003e@46234 +00000000@46235 +0000000c@46236 +0000003e@46237 +00000000@46238 +0000003e@46239 +00000000@46240 +0000003e@46241 +00000000@46242 +0000000c@46243 +0000003e@46244 +00000000@46245 +0000003e@46246 +00000000@46247 +0000003e@46248 +0000000c@46249 +00000000@46250 +0000003e@46251 +00000000@46252 +0000003e@46253 +00000000@46254 +0000001e@46255 +0000003e@46256 +00000000@46257 +0000003e@46258 +00000000@46259 +0000003e@46260 +00000000@46261 +0000000c@46262 +0000003e@46263 +00000000@46264 +0000003e@46265 +00000000@46266 +0000003e@46267 +00000000@46268 +0000003e@46270 +00000000@46271 +0000003e@46272 +00000000@46273 +0000003e@46274 +0000001c@46275 +00000000@46276 +0000003e@46277 +00000000@46278 +0000003e@46279 +00000000@46280 +0000001e@46281 +0000003e@46282 +00000000@46283 +0000003e@46284 +00000000@46285 +0000003e@46286 +00000000@46287 +0000000c@46288 +0000003e@46289 +00000000@46290 +0000003e@46291 +00000000@46292 +0000003e@46293 +0000000c@46294 +00000000@46295 +0000003e@46296 +00000000@46297 +0000003e@46298 +00000000@46299 +0000001e@46300 +0000001c@46301 +00000000@46302 +0000003e@46303 +00000000@46304 +0000003e@46305 +00000000@46306 +0000001e@46307 +0000003e@46308 +00000000@46309 +0000003e@46310 +00000000@46311 +0000003e@46312 +00000004@46313 +0000000c@46314 +0000003e@46315 +00000000@46316 +0000003e@46317 +00000000@46318 +0000003e@46319 +0000000c@46320 +00000000@46321 +0000003e@46322 +00000000@46323 +0000003e@46324 +00000000@46325 +0000001e@46326 +0000003e@46327 +00000000@46328 +0000003e@46329 +00000000@46330 +0000003e@46331 +00000000@46332 +0000000c@46333 +0000003e@46334 +00000000@46335 +0000003e@46336 +00000000@46337 +0000003e@46338 +0000000c@46339 +00000000@46340 +0000003e@46341 +00000000@46342 +0000003c@46343 +00000000@46344 +0000001e@46345 +0000001c@46346 +00000000@46347 +0000003e@46348 +00000000@46349 +0000003e@46350 +00000000@46351 +0000001c@46352 +0000003e@46353 +00000000@46354 +0000003e@46355 +00000000@46356 +0000003e@46357 +00000004@46358 +0000000c@46359 +0000003e@46360 +00000000@46361 +0000003c@46362 +00000000@46363 +0000001e@46364 +0000001c@46365 +00000000@46366 +0000003e@46367 +00000000@46368 +0000003e@46369 +00000000@46370 +0000001e@46371 +0000003e@46372 +00000000@46373 +0000003e@46374 +00000000@46375 +0000003e@46376 +0000000c@46377 +0000001c@46378 +0000003c@46379 +00000000@46380 +0000003c@46381 +00000000@46382 +0000003e@46383 +00000004@46384 +0000001c@46385 +0000003c@46386 +00000030@46387 +0000003c@46388 +00000000@46389 +0000003e@46390 +00000000@46391 +0000003e@46392 +0000000c@46393 +0000003e@46395 +00000030@46396 +0000003c@46397 +00000020@46398 +0000003c@46399 +00000000@46400 +0000003e@46401 +0000000c@46402 +0000001e@46403 +00000000@46405 +0000003e@46406 +00000000@46407 +0000003c@46408 +00000000@46409 +0000001e@46410 +0000003c@46411 +00000000@46412 +0000003c@46413 +00000030@46414 +0000003c@46415 +00000000@46416 +0000003e@46417 +00000000@46418 +0000003e@46419 +0000000e@46420 +0000001e@46421 +0000003c@46423 +0000001e@46424 +0000003e@46425 +0000000c@46426 +0000003c@46427 +0000000c@46428 +0000003c@46429 +00000004@46430 +0000003e@46431 +0000000c@46432 +0000003e@46433 +0000000c@46434 +0000003e@46435 +0000000c@46436 +0000003c@46437 +00000000@46438 +0000003c@46439 +00000000@46440 +0000003e@46441 +00000004@46442 +0000001e@46443 +0000003c@46444 +00000038@46445 +0000003c@46446 +00000008@46449 +0000003c@46450 +00000000@46451 +0000003c@46452 +00000000@46453 +0000003c@46454 +00000030@46455 +0000003c@46456 +00000000@46457 +0000003e@46458 +00000038@46459 +0000003c@46460 +00000038@46461 +0000003c@46462 +00000038@46465 +0000003c@46466 +0000001c@46468 +0000003c@46469 +0000000c@46470 +0000003c@46471 +0000001c@46472 +0000003e@46473 +0000001c@46474 +0000003e@46475 +00000000@46476 +0000003e@46477 +0000001c@46478 +0000003e@46479 +00000004@46480 +0000003e@46481 +0000000e@46482 +0000003e@46483 +00000006@46484 +0000003e@46485 +0000001e@46486 +0000003e@46487 +0000001e@46488 +0000003e@46489 +0000001c@46491 +0000003e@46492 +0000001c@46493 +0000003e@46494 +0000000c@46495 +0000003e@46496 +0000001c@46497 +0000003e@46498 +0000000c@46499 +0000003e@46500 +0000000c@46501 +0000003e@46502 +0000000c@46503 +0000003e@46504 +0000000c@46505 +0000003e@46506 +0000000c@46507 +0000003e@46508 +0000003c@46509 +0000000c@46511 +0000001c@46512 +0000003c@46513 +0000000c@46519 +0000003c@46521 +0000003e@46522 +0000003c@46523 +0000000c@46529 +0000001c@46530 +0000003c@46531 +00000038@46532 +0000003c@46533 +0000003e@46534 +0000003c@46535 +0000001c@46542 +0000003c@46543 +0000001c@46548 +0000003e@46549 +0000003c@46550 +0000003e@46553 +0000003c@46554 +0000000c@46555 +0000003c@46556 +0000003e@46557 +0000000c@46558 +0000003e@46559 +0000003c@46560 +0000003e@46563 +0000003c@46566 +0000003e@46567 +0000003c@46571 +0000003e@46573 +0000003c@46576 +0000003e@46577 +0000003c@46579 +0000003e@46581 +0000001e@46593 +0000003e@46594 +0000001e@46597 +0000003e@46598 +0000001e@46599 +0000003e@46600 +00000006@46603 +0000003e@46604 +0000001e@46606 +0000003e@46608 +0000000c@46610 +0000003e@46611 +0000001e@46612 +0000003c@46613 +0000003e@46614 +0000000c@46616 +0000003e@46617 +0000001e@46618 +0000001c@46619 +0000003e@46620 +0000000c@46622 +0000003e@46623 +0000001e@46624 +0000003e@46625 +0000000e@46628 +0000003e@46629 +0000001e@46630 +0000003e@46631 +0000001e@46634 +0000003e@46635 +0000001e@46643 +0000003e@46644 +0000001e@46645 +0000003e@46646 +0000001e@46647 +0000003e@46648 +00000006@46649 +0000003e@46650 +0000001e@46651 +0000003e@46653 +0000000e@46655 +0000003e@46656 +0000001e@46658 +0000003e@46659 +0000003c@46661 +0000001c@46662 +0000003e@46663 +0000001e@46665 +0000003e@46666 +0000003c@46667 +0000003e@46668 +0000000e@46676 +0000003e@46677 +0000001e@46680 +0000003e@46681 +0000000c@46682 +0000003e@46683 +0000001e@46688 +0000003e@46689 +0000003c@46692 +0000003e@46693 +0000001e@46701 +0000003c@46702 +0000000e@46703 +0000003e@46704 +0000000c@46707 +0000003e@46708 +0000001e@46709 +0000003e@46710 +0000001e@46713 +0000003e@46714 +0000001e@46719 +0000003e@46720 +00000000@46722 +0000003e@46723 +00000008@46728 +0000003e@46729 +0000003c@46732 +0000003e@46733 +0000001e@46735 +0000003e@46736 +0000001c@46741 +0000003c@46742 +0000003e@46743 +0000001e@46745 +0000003e@46746 +0000000e@46747 +0000003e@46748 +0000000e@46751 +0000003e@46752 +0000001e@46753 +0000003e@46754 +0000000e@46757 +0000003e@46758 +0000000e@46763 +0000003e@46764 +0000001e@46767 +0000003e@46768 +0000001e@46769 +0000003e@46770 +0000000e@46773 +0000003e@46774 +0000001e@46776 +0000003e@46777 +0000000e@46779 +0000003e@46780 +0000001e@46783 +0000003e@46784 +0000001e@46789 +0000003e@46790 +0000001e@46795 +0000003e@46796 +0000001e@46798 +0000003e@46799 +0000001e@46802 +0000003e@46803 +0000001e@46804 +0000003e@46805 +0000000e@46808 +0000003e@46809 +0000001e@46810 +0000003e@46811 +00000006@46814 +0000003e@46815 +0000001e@46818 +0000003e@46819 +0000001e@46820 +0000003e@46821 +0000001e@46824 +0000003e@46825 +0000001e@46827 +0000003e@46828 +0000001e@46833 +0000003e@46834 +0000000e@46839 +0000003e@46840 +0000001e@46845 +0000003e@46846 +0000001e@46849 +0000003e@46850 +0000001e@46858 +0000003e@46859 +0000001e@46860 +0000003e@46861 +0000000e@46864 +0000003e@46865 +00000004@46868 +0000003e@46869 +0000001e@46870 +0000003e@46871 +0000000e@46872 +0000003e@46873 +0000001e@46874 +0000003e@46875 +0000001e@46876 +0000003e@46877 +0000001e@46878 +0000003e@46879 +0000001e@46880 +0000003e@46881 +0000001e@46882 +0000003e@46883 +0000001e@46884 +0000003e@46885 +0000001e@46886 +0000003e@46887 +0000001e@46888 +0000003e@46889 +0000001e@46890 +0000003e@46891 +0000001e@46892 +0000003e@46893 +0000001e@46894 +0000003e@46895 +0000001e@46896 +0000003e@46897 +0000001e@46898 +0000003e@46899 +0000001e@46900 +0000003e@46901 +0000001e@46902 +0000003e@46903 +0000001e@46904 +0000003e@46905 +0000001e@46906 +0000003e@46907 +0000001e@46908 +0000003e@46909 +0000001e@46910 +0000003e@46911 +0000001e@46912 +0000003e@46913 +0000001e@46914 +0000003e@46915 +0000001e@46916 +0000003e@46917 +0000001e@46918 +0000003e@46919 +0000001e@46920 +0000003e@46921 +0000001e@46922 +0000003e@46923 +0000001e@46924 +0000003e@46925 +0000001e@46926 +0000003e@46927 +0000001e@46928 +0000003e@46929 +0000001e@46930 +0000003e@46931 +0000001e@46932 +0000003e@46933 +0000001e@46934 +0000003e@46935 +0000001e@46936 +0000003e@46937 +0000001e@46938 +0000003e@46939 +0000001e@46940 +0000003e@46941 +0000001e@46942 +0000003e@46943 +0000001e@46944 +0000003e@46945 +0000001e@46946 +0000003e@46947 +0000001e@46948 +0000003e@46949 +0000001e@46950 +0000003e@46951 +0000001e@46954 +0000003e@46955 +0000001e@46958 +0000003e@46959 +0000001e@46964 +0000003e@46965 +0000003f@49586 +0000003e@49587 +0000003f@49591 +0000003e@49592 +0000003f@49594 +0000003e@49595 +0000003f@49597 +0000003e@49598 +0000003f@49599 +0000003e@49600 +0000003f@49602 +0000003e@49603 +0000003f@49604 +0000003e@49606 +0000003f@49607 +0000003e@49608 +0000003f@49610 +0000003e@49611 +0000003f@49612 +0000003e@49615 +0000003f@49617 +0000003e@49618 +0000003f@49620 +0000003e@49621 +0000003f@49623 +0000003e@49625 +0000003f@49626 +0000003e@49627 +0000003f@49630 +0000003e@49631 +0000003f@49633 +0000003e@49635 +0000003f@49636 +0000003e@49637 +0000003f@49638 +0000003e@49639 +0000003f@49640 +0000003e@49641 +0000003f@49642 +0000003e@49651 +0000003f@49652 +0000003e@49657 +0000003f@49658 +0000003e@49660 +0000003f@49661 +0000003e@49663 +0000003f@49664 +0000003e@49666 +0000003f@49667 +0000003d@90148 +0000003c@91054 +0000003e@91057 +00000038@91059 +0000003a@91060 +00000038@91062 +0000003a@91063 +0000003c@91065 +0000003e@91066 +0000003c@91068 +0000003e@91069 +0000003c@91071 +0000003e@91072 +0000003c@91074 +0000003e@91076 +0000003c@91077 +0000003e@91079 +0000003c@91080 +00000038@91081 +0000003a@91082 +00000038@91084 +0000003a@91085 +00000038@91087 +0000003a@91088 +00000030@91090 +00000032@91091 +00000038@91093 +0000003a@91094 +00000038@91096 +0000003a@91097 +00000038@91099 +0000003a@91100 +00000038@91102 +0000003a@91104 +00000038@91105 +00000030@91106 +00000032@91107 +00000030@91108 +00000038@91109 +0000003a@91110 +00000038@91111 +00000030@91112 +00000032@91113 +00000030@91115 +00000032@91116 +00000030@91118 +00000032@91119 +00000030@91121 +00000032@91122 +00000030@91124 +00000032@91125 +00000030@91127 +00000032@91128 +00000030@91130 +00000032@91132 +00000030@91133 +00000032@91135 +00000030@91136 +00000032@91138 +00000030@91139 +00000038@91140 +0000003a@91141 +00000030@91143 +00000032@91144 +00000038@91146 +0000003a@91147 +00000030@91149 +00000032@91150 +00000030@91152 +00000032@91153 +00000030@91155 +00000031@91157 +00000030@91524 +00000032@91526 +00000030@91528 +00000032@91529 +00000034@91531 +00000036@91532 +00000034@91534 +00000036@91536 +00000030@91537 +00000032@91539 +00000030@91540 +00000034@91541 +0000003e@91542 +00000034@91543 +00000030@91544 +00000032@91545 +00000034@91547 +0000003e@91548 +00000036@91549 +00000030@91550 +00000032@91551 +00000030@91553 +00000032@91554 +00000030@91556 +00000032@91557 +00000030@91559 +00000032@91560 +00000030@91562 +00000032@91564 +00000030@91565 +00000032@91567 +00000030@91568 +00000038@91569 +0000003a@91570 +00000038@91571 +00000030@91572 +00000032@91573 +00000030@91575 +00000031@91576 +00000030@91744 +00000034@91746 +00000036@91747 +00000030@91749 +00000032@91750 +00000034@91752 +00000036@91753 +00000030@91755 +00000032@91756 +00000030@91758 +00000032@91759 +00000030@91761 +00000032@91762 +00000034@91764 +00000036@91766 +00000034@91767 +00000036@91769 +00000034@91770 +00000030@91771 +00000032@91772 +00000030@91773 +00000032@91775 +00000030@91777 +00000032@91778 +00000030@91780 +00000032@91781 +00000030@91783 +00000032@91784 +00000030@91786 +00000032@91787 +00000030@91789 +00000032@91790 +00000030@91792 +00000032@91794 +00000030@91795 +00000032@91797 +00000030@91798 +00000032@91800 +00000030@91801 +00000032@91803 +00000030@91805 +00000032@91806 +00000030@91808 +00000032@91809 +00000030@91811 +00000032@91812 +00000030@91814 +00000032@91815 +00000030@91817 +00000032@91818 +00000030@91820 +00000032@91822 +00000030@91823 +00000032@91825 +00000030@91826 +00000032@91828 +00000030@91829 +00000032@91831 +00000030@91833 +00000032@91834 +00000030@91836 +00000032@91837 +00000030@91839 +00000032@91840 +00000030@91842 +00000032@91843 +00000030@91845 +00000031@91847 +00000030@92528 +00000034@92529 +00000036@92530 +00000034@92532 +00000036@92533 +00000034@92535 +00000036@92536 +00000030@92538 +00000032@92540 +00000030@92541 +00000034@92542 +0000003e@92543 +00000030@92544 +00000032@92546 +00000030@92547 +00000034@92548 +0000003e@92549 +00000036@92550 +00000034@92551 +00000036@92552 +00000000@92554 +00000002@92555 +00000000@92557 +00000002@92558 +00000000@92560 +00000002@92561 +00000000@92563 +00000002@92564 +00000000@92566 +00000002@92568 +00000000@92569 +00000002@92571 +00000000@92572 +00000028@92573 +0000002a@92574 +00000028@92575 +00000014@92576 +00000016@92577 +00000028@92579 +0000002a@92580 +00000014@92582 +00000016@92583 +00000028@92585 +0000002a@92586 +00000014@92588 +00000016@92589 +00000000@92591 +00000002@92592 +00000000@92594 +00000002@92596 +00000000@92597 +00000002@92599 +00000000@92600 +00000002@92602 +00000000@92603 +00000002@92605 +00000008@92607 +0000000a@92608 +00000004@92610 +00000006@92611 +00000000@92613 +00000002@92614 +0000002c@92616 +0000002e@92617 +00000004@92619 +00000006@92620 +00000000@92622 +00000002@92623 +00000000@92625 +00000004@92626 +00000006@92627 +00000004@92628 +00000000@92629 +00000002@92630 +00000000@92631 +00000002@92633 +00000000@92634 +00000004@92635 +00000006@92636 +00000010@92638 +00000012@92639 +0000001c@92641 +0000001e@92642 +00000024@92644 +00000026@92645 +00000000@92647 +00000002@92648 +00000004@92650 +00000006@92651 +00000004@92653 +00000000@92654 +00000002@92655 +00000000@92656 +00000002@92658 +00000000@92659 +00000004@92660 +00000006@92661 +00000004@92662 +00000010@92663 +00000012@92664 +0000001c@92666 +0000001e@92667 +0000002c@92669 +0000002e@92670 +00000000@92672 +00000002@92673 +00000004@92675 +00000006@92676 +00000000@92678 +00000002@92679 +00000000@92681 +00000002@92683 +00000000@92684 +00000004@92685 +00000006@92686 +00000004@92687 +00000010@92688 +00000012@92689 +00000010@92690 +0000001c@92691 +0000001e@92692 +00000034@92694 +00000036@92695 +00000000@92697 +00000002@92698 +00000004@92700 +00000006@92701 +00000000@92703 +00000002@92704 +00000000@92706 +00000002@92707 +00000000@92709 +00000004@92710 +00000006@92711 +00000004@92712 +00000010@92713 +00000012@92714 +00000010@92715 +0000001c@92716 +0000001e@92717 +0000001c@92718 +0000003c@92719 +0000003e@92720 +00000000@92722 +00000002@92723 +00000004@92725 +00000006@92726 +00000000@92728 +00000002@92729 +00000000@92731 +00000002@92732 +00000004@92734 +00000006@92735 +00000010@92737 +00000012@92739 +00000010@92740 +00000020@92741 +00000021@93087 +00000031@93089 +00000030@93118 +00000000@93120 +00000002@93121 +00000000@93123 +00000002@93124 +00000000@93126 +00000002@93127 +00000004@93129 +00000006@93130 +0000002c@93132 +0000002e@93133 +00000000@93135 +00000002@93136 +00000028@93138 +0000002a@93140 +00000018@93141 +00000014@93142 +00000016@93143 +00000030@93144 +00000028@93145 +0000002a@93146 +00000028@93147 +00000014@93148 +00000016@93149 +00000028@93151 +0000002a@93152 +00000014@93154 +00000016@93155 +00000004@93157 +00000006@93158 +00000000@93160 +00000002@93161 +0000002c@93163 +0000002e@93164 +00000034@93166 +00000014@93167 +00000016@93168 +0000001c@93169 +0000001e@93171 +0000001c@93172 +00000008@93173 +0000000a@93174 +00000008@93175 +0000002c@93176 +0000002e@93177 +0000002c@93178 +00000018@93179 +0000001a@93180 +00000004@93182 +00000006@93183 +00000024@93185 +00000026@93186 +00000010@93188 +00000012@93189 +0000002c@93191 +0000002e@93192 +00000004@93194 +00000006@93195 +0000002c@93197 +00000028@93198 +0000002a@93199 +00000028@93200 +00000010@93201 +00000012@93202 +00000010@93203 +00000028@93204 +0000002a@93205 +00000028@93206 +00000004@93207 +00000006@93208 +00000028@93210 +0000002a@93211 +00000018@93213 +0000001a@93214 +00000000@93216 +00000002@93217 +00000004@93219 +00000006@93220 +00000028@93222 +0000002a@93223 +00000038@93225 +00000010@93226 +00000012@93227 +00000010@93228 +00000028@93229 +0000002a@93230 +00000028@93231 +00000014@93232 +00000016@93233 +00000014@93234 +00000028@93235 +0000002a@93236 +00000018@93238 +0000001a@93239 +00000000@93241 +00000002@93242 +00000004@93244 +00000006@93245 +00000028@93247 +0000002a@93248 +00000010@93250 +00000012@93251 +00000038@93253 +00000028@93254 +0000002a@93255 +00000028@93256 +00000010@93257 +00000012@93258 +00000010@93259 +0000003c@93260 +0000003e@93261 +0000003c@93262 +0000003e@93264 +00000000@93266 +00000002@93267 +0000003c@93269 +0000003e@93270 +0000003c@93272 +0000003e@93273 +0000000c@93275 +0000000e@93276 +0000000c@93278 +0000000e@93279 +00000004@93281 +00000006@93283 +0000000c@93284 +0000000e@93286 +0000000c@93287 +00000018@93288 +0000001a@93289 +00000018@93290 +00000000@93291 +00000002@93292 +00000014@93294 +00000016@93295 +0000000c@93297 +0000000e@93298 +00000018@93300 +0000001a@93301 +00000000@93303 +00000002@93304 +00000024@93306 +00000025@93308 +00000035@93309 +00000034@93339 +00000000@93340 +00000002@93342 +00000000@93343 +00000002@93345 +00000000@93346 +00000002@93348 +00000000@93349 +00000008@93350 +0000000a@93351 +00000004@93353 +00000006@93354 +00000020@93356 +00000022@93357 +00000028@93359 +0000002a@93360 +00000014@93362 +00000016@93363 +00000028@93365 +0000002a@93366 +00000014@93368 +00000016@93370 +00000030@93371 +00000028@93372 +0000002a@93373 +00000028@93374 +00000014@93375 +00000016@93376 +00000014@93377 +0000003c@93378 +0000003e@93379 +00000038@93381 +0000003a@93382 +00000038@93384 +0000003a@93385 +0000001c@93387 +0000001e@93388 +00000040@93390 +00000002@93391 +00000000@93393 +00000002@93394 +0000002c@93396 +0000002e@93397 +0000002c@93399 +0000003c@93400 +0000003e@93401 +0000003c@93402 +00000000@93403 +00000002@93404 +00000000@93405 +00000002@93407 +0000000c@93409 +0000000e@93410 +00000004@93412 +00000006@93413 +00000000@93415 +00000002@93416 +00000014@93418 +00000016@93419 +00000010@93421 +00000012@93422 +00000000@93424 +00000002@93425 +00000000@93427 +00000002@93429 +00000000@93430 +00000002@93432 +00000000@93433 +00000002@93435 +00000000@93436 +00000002@93438 +00000034@93440 +00000036@93441 +0000003c@93443 +0000003e@93444 +00000044@93446 +00000006@93447 +00000000@93449 +00000002@93450 +0000003c@93452 +0000003e@93453 +0000003c@93455 +0000003e@93457 +0000003c@93458 +0000003e@93460 +0000003c@93461 +0000001c@93462 +0000001e@93463 +0000001c@93464 +00000034@93465 +00000036@93466 +0000003c@93468 +0000003e@93469 +00000000@93471 +00000002@93472 +00000004@93474 +00000006@93475 +00000020@93477 +00000022@93478 +00000000@93480 +00000002@93481 +00000038@93483 +0000003a@93485 +00000038@93486 +00000008@93487 +0000000a@93488 +00000008@93489 +00000000@93490 +00000002@93491 +00000000@93492 +00000002@93494 +00000038@93496 +0000003a@93497 +00000000@93499 +00000002@93500 +00000004@93502 +00000006@93503 +00000010@93505 +00000012@93506 +00000000@93508 +00000002@93509 +00000004@93511 +00000006@93513 +00000004@93514 +00000000@93515 +00000002@93516 +00000000@93517 +00000002@93519 +00000000@93520 +00000004@93521 +00000006@93522 +00000010@93524 +00000012@93525 +00000014@93527 +00000015@93528 +00000035@93530 +00000034@93560 +00000000@93561 +00000002@93562 +00000000@93564 +00000002@93565 +00000000@93567 +00000002@93568 +00000004@93570 +00000006@93572 +00000030@93573 +00000032@93575 +00000030@93576 +00000020@93577 +00000022@93578 +00000020@93579 +00000028@93580 +0000002a@93581 +00000014@93583 +00000016@93584 +00000028@93586 +0000002a@93587 +00000014@93589 +00000016@93590 +00000028@93592 +0000002a@93593 +00000014@93595 +00000016@93596 +00000024@93598 +00000026@93600 +00000024@93601 +0000000c@93602 +0000000e@93603 +0000000c@93604 +00000018@93605 +0000001a@93606 +00000018@93607 +00000000@93608 +00000002@93609 +00000034@93611 +00000036@93612 +0000000c@93614 +0000000e@93615 +00000018@93617 +0000001a@93618 +00000000@93620 +00000002@93621 +00000004@93623 +00000006@93624 +0000000c@93626 +0000000e@93628 +0000000c@93629 +00000018@93630 +0000001a@93631 +00000018@93632 +00000004@93633 +00000006@93634 +00000004@93635 +00000014@93636 +00000016@93637 +0000000c@93639 +0000000e@93640 +00000018@93642 +0000001a@93643 +00000004@93645 +00000006@93646 +00000024@93648 +00000026@93649 +0000000c@93651 +0000000e@93652 +00000018@93654 +0000001a@93656 +00000018@93657 +00000004@93658 +00000006@93659 +00000004@93660 +00000034@93661 +00000036@93662 +00000034@93663 +0000000c@93664 +0000000e@93665 +00000018@93667 +0000001a@93668 +00000004@93670 +00000006@93671 +00000018@93673 +0000001a@93674 +00000008@93676 +0000000a@93677 +0000002c@93679 +0000002e@93680 +00000038@93682 +00000018@93683 +0000001a@93684 +00000018@93685 +00000004@93686 +00000006@93687 +00000004@93688 +00000014@93689 +00000016@93690 +00000014@93691 +00000010@93692 +00000012@93693 +00000030@93695 +00000032@93696 +00000000@93698 +00000001@93699 +00000031@93701 +00000030@93731 +00000000@93732 +00000002@93733 +00000000@93735 +00000002@93736 +00000000@93738 +00000002@93739 +00000008@93741 +0000000a@93743 +00000008@93744 +0000000c@93745 +0000000e@93746 +0000000c@93747 +00000000@93748 +00000002@93749 +00000000@93750 +00000028@93751 +0000002a@93752 +00000014@93754 +00000016@93755 +00000028@93757 +0000002a@93758 +00000014@93760 +00000016@93761 +00000028@93763 +0000002a@93764 +00000014@93766 +00000016@93767 +00000014@93769 +00000016@93771 +00000014@93772 +00000000@93773 +00000002@93774 +00000000@93775 +00000002@93777 +00000000@93778 +00000004@93779 +00000006@93780 +00000000@93782 +00000002@93783 +00000000@93785 +00000002@93786 +00000004@93788 +00000006@93789 +00000010@93791 +00000012@93792 +0000001c@93794 +0000001e@93795 +00000030@93797 +00000020@93798 +00000022@93799 +00000020@93800 +00000000@93801 +00000002@93802 +00000000@93803 +00000004@93804 +00000006@93805 +00000004@93806 +00000000@93807 +00000002@93808 +00000000@93810 +00000002@93811 +00000004@93813 +00000006@93814 +00000010@93816 +00000012@93817 +00000000@93819 +00000001@93821 +00000031@93822 +00000030@93852 +00000000@93853 +00000002@93854 +00000000@93856 +00000002@93858 +00000000@93859 +00000002@93861 +00000000@93862 +00000004@93863 +00000006@93864 +00000004@93865 +00000034@93866 +00000036@93867 +00000020@93869 +00000022@93870 +00000028@93872 +0000002a@93873 +00000014@93875 +00000016@93876 +00000028@93878 +0000002a@93879 +00000014@93881 +00000016@93882 +00000028@93884 +0000002a@93886 +00000038@93887 +00000014@93888 +00000016@93889 +00000014@93890 +00000000@93891 +00000002@93892 +00000000@93893 +00000014@93894 +00000016@93895 +00000038@93897 +0000003a@93898 +00000000@93900 +00000002@93901 +00000008@93903 +0000000a@93904 +00000000@93906 +00000002@93907 +00000018@93909 +0000001a@93910 +00000020@93912 +00000022@93914 +00000028@93915 +00000018@93916 +0000001a@93917 +00000018@93918 +00000004@93919 +00000006@93920 +00000004@93921 +00000018@93922 +0000001a@93923 +00000020@93925 +00000022@93926 +00000028@93928 +0000002a@93929 +00000008@93931 +0000000a@93932 +00000018@93934 +0000001a@93935 +00000020@93937 +00000022@93938 +00000020@93940 +00000000@93941 +00000002@93942 +00000000@93943 +00000030@93944 +00000032@93945 +00000030@93946 +0000000c@93947 +0000000e@93948 +0000000c@93949 +00000010@93950 +00000012@93951 +0000003c@93953 +0000003e@93954 +0000003c@93956 +0000003e@93957 +0000003c@93959 +0000003e@93960 +0000001c@93962 +0000001e@93963 +00000034@93965 +00000036@93966 +00000038@93968 +00000008@93969 +0000000a@93970 +00000008@93971 +0000003c@93972 +0000003e@93973 +0000003c@93974 +0000003e@93976 +0000003c@93977 +00000004@93978 +00000006@93979 +00000008@93981 +0000000a@93982 +00000010@93984 +00000012@93985 +0000002c@93987 +0000002e@93988 +00000024@93990 +00000026@93991 +00000030@93993 +00000032@93994 +00000010@93996 +00000012@93997 +00000018@93999 +00000008@94000 +0000000a@94001 +00000008@94002 +0000003c@94003 +0000003e@94004 +0000003c@94005 +00000018@94006 +0000001a@94007 +00000034@94009 +00000036@94010 +0000000c@94012 +0000000e@94013 +00000000@94015 +00000002@94016 +00000010@94018 +00000012@94019 +00000038@94021 +0000003a@94022 +00000000@94024 +00000002@94025 +00000008@94027 +0000000a@94029 +00000008@94030 +00000000@94031 +00000002@94032 +00000000@94033 +00000018@94034 +0000001a@94035 +00000018@94036 +00000020@94037 +00000022@94038 +00000018@94040 +0000001a@94041 +00000004@94043 +00000006@94044 +00000018@94046 +0000001a@94047 +00000020@94049 +00000022@94050 +00000000@94052 +00000002@94053 +00000020@94055 +00000022@94057 +00000020@94058 +0000000c@94059 +0000000e@94060 +0000000c@94061 +00000010@94062 +00000012@94063 +00000010@94064 +0000003c@94065 +0000003e@94066 +0000003c@94068 +0000003e@94069 +0000003c@94071 +0000003e@94072 +0000001c@94074 +0000001e@94075 +00000034@94077 +00000036@94078 +00000008@94080 +0000000a@94081 +0000003c@94083 +0000003e@94084 +0000003c@94086 +0000003e@94088 +0000003c@94089 +00000000@94090 +00000002@94091 +00000000@94092 +00000038@94093 +0000003a@94094 +00000010@94096 +00000012@94097 +0000002c@94099 +0000002e@94100 +00000024@94102 +00000026@94103 +00000030@94105 +00000032@94106 +00000010@94108 +00000012@94109 +00000008@94111 +0000000a@94112 +00000038@94114 +0000003c@94115 +0000003e@94116 +0000003c@94117 +0000001c@94118 +0000001e@94119 +0000001c@94120 +00000034@94121 +00000036@94122 +00000034@94123 +0000000c@94124 +0000000e@94125 +00000034@94127 +00000036@94128 +0000003c@94130 +0000003e@94131 +0000003c@94133 +0000003e@94134 +00000020@94136 +00000022@94137 +00000010@94139 +00000011@94141 +00000031@94142 +00000030@94172 +00000000@94173 +00000002@94175 +00000000@94176 +00000002@94178 +00000000@94179 +00000002@94181 +00000004@94183 +00000006@94184 +00000004@94186 +00000006@94187 +00000000@94189 +00000002@94190 +00000028@94192 +0000002a@94193 +00000014@94195 +00000016@94196 +00000028@94198 +0000002a@94199 +00000018@94201 +00000014@94202 +00000016@94203 +00000030@94204 +00000028@94205 +0000002a@94206 +00000028@94207 +00000014@94208 +00000016@94209 +00000014@94210 +00000028@94211 +0000002a@94212 +00000034@94214 +00000036@94215 +00000000@94217 +00000002@94218 +00000004@94220 +00000006@94221 +00000000@94223 +00000002@94224 +00000000@94226 +00000002@94227 +00000000@94229 +00000004@94230 +00000006@94231 +00000004@94232 +00000010@94233 +00000012@94234 +00000010@94235 +00000000@94236 +00000002@94237 +00000030@94239 +00000032@94240 +00000004@94242 +00000006@94243 +00000038@94245 +0000003a@94246 +00000040@94248 +00000002@94249 +00000000@94251 +00000002@94252 +00000004@94254 +00000006@94255 +00000014@94257 +00000010@94258 +00000012@94259 +00000010@94260 +00000000@94261 +00000002@94262 +00000000@94263 +00000002@94265 +00000000@94266 +00000002@94268 +00000000@94270 +00000002@94271 +00000000@94273 +00000002@94274 +00000000@94276 +00000002@94277 +00000004@94279 +00000006@94280 +00000000@94282 +00000002@94283 +00000010@94285 +00000012@94287 +00000010@94288 +00000020@94289 +00000022@94290 +00000020@94291 +00000000@94292 +00000002@94293 +00000000@94294 +00000002@94296 +00000000@94298 +00000002@94299 +00000000@94301 +00000002@94302 +00000000@94304 +00000002@94305 +00000000@94307 +00000002@94308 +00000014@94310 +00000016@94311 +00000010@94313 +00000000@94314 +00000002@94315 +00000000@94316 +00000004@94317 +00000006@94318 +00000004@94319 +00000028@94320 +0000002a@94321 +00000028@94322 +00000000@94323 +00000002@94324 +00000000@94326 +00000002@94327 +00000004@94329 +00000006@94330 +00000010@94332 +00000012@94333 +00000000@94335 +00000002@94336 +00000000@94338 +00000002@94339 +00000000@94341 +00000002@94343 +00000000@94344 +00000002@94346 +00000000@94347 +00000002@94349 +00000000@94350 +00000020@94351 +00000022@94352 +00000004@94354 +00000006@94355 +00000000@94357 +00000002@94358 +0000002c@94360 +0000002d@94362 +0000003d@94363 +0000003c@94393 +00000040@94394 +00000002@94395 +00000000@94397 +00000002@94398 +00000000@94400 +00000002@94402 +00000000@94403 +00000004@94404 +00000006@94405 +00000004@94406 +00000020@94407 +00000022@94408 +00000020@94410 +00000022@94411 +00000028@94413 +0000002a@94414 +00000014@94416 +00000016@94417 +00000028@94419 +0000002a@94420 +00000014@94422 +00000016@94423 +00000028@94425 +0000002a@94426 +00000010@94428 +00000014@94429 +00000016@94430 +00000014@94431 +0000003c@94432 +0000003e@94433 +0000003c@94434 +00000038@94435 +0000003a@94436 +00000038@94438 +0000003a@94439 +0000001c@94441 +0000001e@94442 +00000004@94444 +00000006@94445 +00000000@94447 +00000002@94448 +0000002c@94450 +0000002e@94451 +00000014@94453 +00000016@94454 +00000014@94456 +00000000@94457 +00000002@94458 +00000000@94459 +00000002@94461 +00000000@94462 +00000008@94463 +0000000a@94464 +00000008@94465 +0000000c@94466 +0000000e@94467 +00000000@94469 +00000002@94470 +00000008@94472 +0000000a@94473 +00000038@94475 +0000003a@94476 +00000040@94478 +00000002@94479 +00000004@94481 +00000006@94482 +00000030@94484 +00000032@94486 +00000030@94487 +00000014@94488 +00000016@94489 +00000014@94490 +00000020@94491 +00000022@94492 +00000020@94493 +00000014@94494 +00000016@94495 +00000030@94497 +00000032@94498 +00000014@94500 +00000016@94501 +00000000@94503 +00000002@94504 +00000000@94506 +00000002@94507 +00000010@94509 +00000012@94510 +0000000c@94512 +0000000e@94514 +0000000c@94515 +0000000e@94517 +0000000c@94518 +00000024@94519 +00000026@94520 +00000024@94521 +0000000c@94522 +0000000e@94523 +00000010@94525 +00000012@94526 +00000008@94528 +0000000a@94529 +0000003c@94531 +0000003e@94532 +00000028@94534 +0000002a@94535 +00000034@94537 +00000036@94538 +0000000c@94540 +0000000e@94542 +0000000c@94543 +00000004@94544 +00000006@94545 +00000004@94546 +00000000@94547 +00000002@94548 +00000000@94549 +0000002c@94550 +0000002e@94551 +0000002c@94552 +00000034@94553 +00000036@94554 +00000000@94556 +00000002@94557 +00000000@94559 +00000002@94560 +00000008@94562 +0000000a@94563 +0000000c@94565 +0000000e@94566 +00000000@94568 +00000002@94569 +00000008@94571 +0000000a@94573 +00000008@94574 +00000038@94575 +0000003a@94576 +00000038@94577 +00000000@94578 +00000002@94579 +00000000@94580 +00000002@94582 +00000000@94584 +00000002@94585 +00000008@94587 +0000000a@94588 +00000008@94590 +0000000a@94591 +00000004@94593 +00000006@94594 +00000028@94596 +0000002a@94597 +00000038@94599 +00000014@94600 +00000016@94601 +00000014@94602 +00000000@94603 +00000002@94604 +00000000@94605 +00000002@94607 +00000000@94608 +00000010@94609 +00000012@94610 +0000000c@94612 +0000000e@94613 +0000000c@94615 +0000000e@94616 +00000020@94618 +00000022@94619 +0000002c@94621 +0000002e@94622 +00000010@94624 +00000012@94625 +00000018@94627 +00000008@94628 +0000000a@94629 +00000008@94630 +0000003c@94631 +0000003d@94632 +0000003c@94663 +00000000@94665 +00000002@94666 +00000000@94668 +00000002@94669 +00000004@94671 +00000006@94672 +00000038@94674 +0000003a@94675 +00000000@94677 +00000002@94678 +00000020@94680 +00000022@94681 +00000028@94683 +0000002a@94684 +00000018@94686 +00000014@94687 +00000016@94688 +00000030@94689 +00000028@94690 +0000002a@94691 +00000028@94692 +00000014@94693 +00000016@94694 +00000014@94695 +00000028@94696 +0000002a@94697 +00000014@94699 +00000016@94700 +00000024@94702 +00000026@94703 +00000034@94705 +00000036@94706 +0000003c@94708 +0000003e@94709 +0000003c@94711 +0000003e@94712 +0000003c@94714 +00000000@94715 +00000002@94716 +00000000@94717 +00000020@94718 +00000022@94719 +00000020@94720 +0000002c@94721 +0000002e@94722 +0000002c@94723 +00000034@94724 +00000036@94725 +00000000@94727 +00000002@94728 +00000000@94730 +00000002@94731 +00000000@94733 +00000002@94734 +00000000@94736 +00000002@94737 +00000000@94739 +00000002@94740 +00000000@94742 +00000002@94744 +00000000@94745 +00000002@94747 +00000000@94748 +00000002@94750 +00000000@94751 +00000002@94753 +00000000@94755 +00000002@94756 +00000004@94758 +00000006@94759 +0000002c@94761 +0000002e@94762 +0000002c@94764 +0000002e@94765 +0000001c@94767 +0000001e@94768 +00000010@94770 +00000000@94771 +00000002@94772 +00000000@94773 +00000002@94775 +00000000@94776 +00000002@94778 +00000000@94779 +00000002@94781 +00000000@94783 +00000002@94784 +00000000@94786 +00000002@94787 +00000000@94789 +00000002@94790 +00000000@94792 +00000002@94793 +00000000@94795 +00000002@94796 +00000000@94798 +00000002@94799 +00000000@94801 +00000001@94803 +00000031@94804 +00000030@94834 +00000000@94836 +00000002@94837 +00000000@94838 +00000002@94840 +00000000@94842 +00000002@94843 +00000004@94845 +00000006@94846 +00000028@94848 +0000002a@94849 +00000020@94851 +00000022@94852 +00000028@94854 +0000002a@94855 +00000014@94857 +00000016@94858 +00000020@94860 +00000028@94861 +0000002a@94862 +00000038@94863 +00000014@94864 +00000016@94865 +00000014@94866 +00000028@94867 +0000002a@94868 +00000014@94870 +00000016@94871 +0000003c@94873 +0000003e@94874 +00000028@94876 +0000002a@94877 +00000034@94879 +00000036@94880 +0000000c@94882 +0000000e@94883 +0000001c@94885 +0000001e@94886 +0000001c@94888 +00000000@94889 +00000002@94890 +00000000@94891 +00000010@94892 +00000012@94893 +00000010@94894 +0000001c@94895 +0000001e@94896 +0000003c@94898 +0000003e@94899 +00000038@94901 +0000003a@94902 +00000038@94904 +0000003a@94905 +0000001c@94907 +0000001e@94908 +00000000@94910 +00000002@94911 +00000000@94913 +00000002@94914 +00000000@94916 +00000002@94918 +00000000@94919 +00000002@94921 +00000000@94922 +00000004@94923 +00000005@94924 +00000035@94926 +00000034@94955 +00000000@94957 +00000002@94958 +00000000@94960 +00000002@94961 +00000004@94963 +00000006@94964 +00000038@94966 +0000003a@94967 +00000004@94969 +00000006@94970 +00000020@94972 +00000022@94974 +00000028@94975 +0000002a@94977 +00000038@94978 +00000014@94979 +00000016@94980 +00000014@94981 +00000028@94982 +0000002a@94983 +00000014@94985 +00000016@94986 +00000028@94988 +0000002a@94989 +00000014@94991 +00000016@94992 +00000000@94994 +00000002@94995 +00000000@94997 +00000002@94998 +00000000@95000 +00000002@95001 +00000000@95003 +00000002@95005 +00000000@95006 +00000002@95008 +00000000@95009 +00000002@95011 +00000000@95012 +00000002@95014 +00000000@95016 +00000002@95017 +00000000@95019 +00000002@95020 +00000000@95022 +00000002@95023 +00000000@95025 +00000002@95026 +00000000@95028 +00000002@95029 +00000000@95031 +00000002@95033 +00000000@95034 +00000002@95036 +00000000@95037 +00000002@95039 +00000000@95040 +00000002@95042 +00000000@95044 +00000002@95045 +00000000@95047 +00000002@95048 +00000000@95050 +00000002@95051 +00000000@95053 +00000002@95054 +00000000@95056 +00000002@95057 +00000000@95059 +00000002@95061 +00000000@95062 +00000002@95064 +00000000@95065 +00000002@95067 +00000000@95068 +00000002@95070 +00000000@95072 +00000002@95073 +00000000@95075 +00000002@95076 +00000000@95078 +00000002@95079 +00000000@95081 +00000002@95082 +00000000@95084 +00000002@95085 +00000000@95087 +00000002@95089 +00000000@95090 +00000002@95092 +00000000@95093 +00000002@95095 +00000000@95096 +00000002@95098 +0000000c@95100 +0000000e@95101 +00000020@95103 +00000022@95104 +00000024@95106 +00000026@95107 +00000030@95109 +00000032@95110 +00000004@95112 +00000006@95113 +00000030@95115 +00000032@95117 +00000030@95118 +00000000@95119 +00000002@95120 +00000000@95121 +00000002@95123 +00000000@95124 +00000002@95126 +00000000@95128 +00000002@95129 +00000000@95131 +00000002@95132 +00000000@95134 +00000002@95135 +00000000@95137 +00000002@95138 +00000000@95140 +00000002@95141 +00000000@95143 +00000002@95145 +00000000@95146 +00000002@95148 +00000000@95149 +00000002@95151 +00000000@95152 +00000002@95154 +00000000@95156 +00000002@95157 +00000000@95159 +00000002@95160 +00000000@95162 +00000002@95163 +00000000@95165 +00000002@95166 +00000000@95168 +00000002@95169 +00000000@95171 +00000002@95173 +00000000@95174 +00000002@95176 +00000000@95177 +00000002@95179 +00000000@95180 +00000002@95182 +00000000@95184 +00000002@95185 +00000000@95187 +00000002@95188 +00000000@95190 +00000002@95191 +00000000@95193 +00000002@95194 +00000000@95196 +00000002@95197 +00000000@95199 +00000002@95200 +00000000@95202 +00000002@95204 +00000000@95205 +00000002@95207 +00000000@95208 +00000002@95210 +00000000@95211 +00000002@95213 +00000000@95215 +00000002@95216 +00000000@95218 +00000002@95219 +00000000@95221 +00000002@95222 +00000000@95224 +00000002@95225 +00000000@95227 +00000002@95228 +00000000@95230 +00000002@95232 +00000000@95233 +00000002@95235 +00000000@95236 +00000002@95238 +00000000@95239 +00000002@95241 +00000000@95243 +00000002@95244 +00000000@95246 +00000002@95247 +00000000@95249 +00000002@95250 +00000000@95252 +00000002@95253 +00000000@95255 +00000002@95256 +00000000@95258 +00000002@95260 +00000000@95261 +00000002@95263 +00000000@95264 +00000002@95266 +00000000@95267 +00000002@95269 +00000000@95271 +00000002@95272 +00000000@95274 +00000002@95275 +00000000@95277 +00000002@95278 +00000000@95280 +00000002@95281 +00000000@95283 +00000002@95284 +00000000@95286 +00000002@95288 +00000000@95289 +00000002@95291 +00000000@95292 +00000002@95294 +00000000@95295 +00000002@95297 +00000000@95299 +00000002@95300 +00000000@95302 +00000002@95303 +00000000@95305 +00000002@95306 +00000000@95308 +00000002@95309 +00000000@95311 +00000002@95312 +00000000@95314 +00000002@95316 +00000000@95317 +00000002@95319 +00000000@95320 +00000002@95322 +00000000@95323 +00000002@95325 +00000000@95327 +00000002@95328 +00000000@95330 +00000002@95331 +00000000@95333 +00000002@95334 +00000000@95336 +00000002@95337 +00000000@95339 +00000002@95340 +00000000@95342 +00000002@95344 +00000000@95345 +00000002@95347 +00000000@95348 +00000004@95349 +00000006@95350 +00000004@95351 +0000002c@95352 +0000002e@95353 +0000002c@95354 +0000002e@95356 +0000001c@95358 +0000001e@95359 +00000000@95361 +00000002@95362 +00000000@95364 +00000002@95365 +0000003c@95367 +0000003e@95368 +0000003c@95370 +0000003e@95371 +0000003c@95373 +0000003e@95375 +0000003c@95376 +0000003e@95378 +0000003c@95379 +0000003e@95381 +0000003c@95382 +0000003e@95384 +0000003c@95386 +0000003e@95387 +0000003c@95389 +0000003e@95390 +0000003c@95392 +0000003e@95393 +0000003c@95395 +0000003e@95396 +0000003c@95398 +0000003e@95399 +0000003c@95401 +0000003e@95403 +0000003c@95404 +0000003e@95406 +0000003c@95407 +0000003e@95409 +0000003c@95410 +0000003e@95412 +0000003c@95414 +0000003e@95415 +0000003c@95417 +0000003e@95418 +0000003c@95420 +0000003e@95421 +0000003c@95423 +0000003e@95424 +0000003c@95426 +0000003e@95427 +0000003c@95429 +0000003e@95431 +0000003c@95432 +0000003e@95434 +0000003c@95435 +0000003e@95437 +0000003c@95438 +0000003e@95440 +0000003c@95442 +0000003d@95443 +0000003c@95474 +00000000@95476 +00000002@95477 +00000000@95479 +00000002@95480 +00000000@95482 +00000002@95483 +00000008@95485 +0000000a@95487 +0000000c@95488 +0000000e@95490 +00000028@95491 +00000020@95492 +00000022@95493 +00000020@95494 +00000028@95495 +0000002a@95496 +00000014@95498 +00000016@95499 +00000028@95501 +0000002a@95502 +00000014@95504 +00000016@95505 +00000028@95507 +0000002a@95508 +00000014@95510 +00000016@95511 +00000000@95513 +00000002@95514 +00000000@95516 +00000002@95518 +00000000@95519 +00000002@95521 +00000000@95522 +00000002@95524 +00000000@95526 +00000002@95527 +00000000@95529 +00000002@95530 +00000004@95532 +00000006@95533 +00000010@95535 +00000012@95536 +00000000@95538 +00000002@95539 +00000020@95541 +00000022@95542 +00000028@95544 +00000038@95545 +0000003a@95546 +00000038@95547 +00000034@95548 +00000036@95549 +00000034@95550 +00000000@95551 +00000002@95552 +00000000@95553 +00000002@95555 +00000038@95557 +0000003a@95558 +00000040@95560 +00000002@95561 +00000020@95563 +00000021@95565 +00000031@95566 +00000030@95596 +00000000@95597 +00000002@95598 +00000000@95600 +00000002@95602 +00000000@95603 +00000002@95605 +00000000@95606 +00000004@95607 +00000006@95608 +00000004@95609 +00000008@95610 +0000000a@95611 +00000000@95613 +00000002@95614 +00000028@95616 +0000002a@95617 +00000014@95619 +00000016@95620 +00000028@95622 +0000002a@95623 +00000014@95625 +00000016@95626 +00000028@95628 +0000002a@95630 +00000038@95631 +00000014@95632 +00000016@95633 +00000014@95634 +00000016@95636 +00000014@95637 +00000000@95638 +00000002@95639 +00000004@95641 +00000006@95642 +00000028@95644 +0000002a@95645 +00000000@95647 +00000002@95648 +00000000@95650 +00000002@95651 +00000004@95653 +00000006@95654 +00000010@95656 +00000012@95658 +00000010@95659 +00000000@95660 +00000002@95661 +00000000@95662 +00000002@95664 +00000000@95665 +00000002@95667 +00000000@95669 +00000002@95670 +00000000@95672 +00000002@95673 +00000020@95675 +00000022@95676 +00000004@95678 +00000006@95679 +00000000@95681 +00000002@95682 +0000002c@95684 +0000002e@95686 +0000002c@95687 +00000030@95688 +00000032@95689 +00000030@95690 +00000000@95691 +00000002@95692 +00000000@95693 +0000000c@95694 +0000000e@95695 +00000000@95697 +00000002@95698 +00000000@95700 +00000002@95701 +00000000@95703 +00000002@95704 +00000000@95706 +00000002@95707 +00000000@95709 +00000002@95710 +00000030@95712 +00000032@95713 +00000030@95715 +00000004@95716 +00000006@95717 +00000004@95718 +00000038@95719 +0000003a@95720 +00000038@95721 +00000000@95722 +00000002@95723 +00000000@95725 +00000002@95726 +00000004@95728 +00000006@95729 +00000010@95731 +00000012@95732 +00000000@95734 +00000002@95735 +00000000@95737 +00000002@95738 +00000000@95740 +00000002@95741 +00000000@95743 +00000002@95745 +00000000@95746 +00000002@95748 +00000000@95749 +00000002@95751 +00000000@95752 +00000008@95753 +0000000a@95754 +00000000@95756 +00000002@95757 +00000000@95759 +00000002@95760 +00000000@95762 +00000002@95763 +00000000@95765 +00000002@95766 +00000000@95768 +00000002@95769 +00000000@95771 +00000002@95773 +00000000@95774 +00000002@95776 +00000000@95777 +00000002@95779 +00000000@95780 +00000002@95782 +00000000@95784 +00000001@95785 +00000031@95787 +00000030@95817 +00000000@95818 +00000002@95819 +00000000@95821 +00000002@95822 +00000004@95824 +00000006@95825 +00000028@95827 +0000002a@95829 +00000038@95830 +00000014@95831 +00000016@95832 +00000014@95833 +00000000@95834 +00000002@95835 +00000000@95836 +00000028@95837 +0000002a@95838 +00000014@95840 +00000016@95841 +00000028@95843 +0000002a@95844 +00000014@95846 +00000016@95847 +00000028@95849 +0000002a@95850 +00000014@95852 +00000016@95853 +00000000@95855 +00000002@95857 +00000000@95858 +00000002@95860 +00000000@95861 +00000008@95862 +0000000a@95863 +00000008@95864 +00000000@95865 +00000002@95866 +00000000@95868 +00000002@95869 +00000024@95871 +00000026@95872 +00000004@95874 +00000006@95875 +00000000@95877 +00000002@95878 +00000000@95880 +00000002@95881 +00000024@95883 +00000026@95885 +00000024@95886 +00000000@95887 +00000002@95888 +00000000@95889 +00000004@95890 +00000006@95891 +00000004@95892 +00000000@95893 +00000002@95894 +00000020@95896 +00000022@95897 +00000004@95899 +00000006@95900 +00000000@95902 +00000002@95903 +00000030@95905 +00000032@95906 +00000034@95908 +00000036@95909 +00000030@95911 +00000002@95912 +00000000@95914 +00000002@95916 +00000000@95917 +00000002@95919 +00000000@95920 +00000020@95921 +00000022@95922 +00000004@95924 +00000006@95925 +00000000@95927 +00000002@95928 +00000034@95930 +00000036@95931 +00000004@95933 +00000006@95934 +00000000@95936 +00000002@95937 +00000000@95939 +00000002@95940 +00000000@95942 +00000002@95944 +00000000@95945 +00000020@95946 +00000022@95947 +00000020@95948 +00000004@95949 +00000006@95950 +00000000@95952 +00000002@95953 +00000000@95955 +00000002@95956 +00000000@95958 +00000002@95959 +00000000@95961 +00000002@95962 +00000000@95964 +00000002@95965 +00000000@95967 +00000002@95968 +00000000@95970 +00000002@95972 +00000000@95973 +00000002@95975 +00000000@95976 +00000002@95978 +00000000@95979 +00000002@95981 +00000000@95983 +00000002@95984 +00000000@95986 +00000002@95987 +00000000@95989 +00000002@95990 +00000000@95992 +00000002@95993 +00000000@95995 +00000002@95996 +00000000@95998 +00000002@96000 +00000000@96001 +00000002@96003 +00000000@96004 +00000001@96006 +00000031@96008 +00000030@96037 +00000000@96039 +00000002@96040 +00000000@96042 +00000002@96043 +00000000@96045 +00000002@96046 +00000004@96048 +00000006@96049 +00000028@96051 +0000002a@96052 +00000020@96054 +00000022@96056 +00000028@96057 +0000002a@96059 +00000038@96060 +00000014@96061 +00000016@96062 +00000014@96063 +00000028@96064 +0000002a@96065 +00000028@96066 +00000014@96067 +00000016@96068 +00000028@96070 +0000002a@96071 +00000014@96073 +00000016@96074 +0000003c@96076 +0000003e@96077 +00000028@96079 +0000002a@96080 +00000034@96082 +00000036@96083 +0000003c@96085 +0000000c@96086 +0000000e@96087 +0000000c@96088 +0000001c@96089 +0000001e@96090 +0000001c@96091 +00000000@96092 +00000002@96093 +00000000@96094 +00000010@96095 +00000012@96096 +0000001c@96098 +0000001e@96099 +0000003c@96101 +0000003e@96102 +00000038@96104 +0000003a@96105 +00000038@96107 +0000003a@96108 +0000001c@96110 +0000001e@96111 +0000001c@96113 +00000000@96114 +00000002@96115 +00000000@96116 +00000002@96118 +00000000@96119 +00000002@96121 +00000000@96122 +00000002@96124 +00000004@96126 +00000005@96127 +00000035@96129 +00000034@96159 +00000000@96160 +00000002@96161 +00000000@96163 +00000002@96164 +00000004@96166 +00000006@96167 +00000028@96169 +0000002a@96171 +00000018@96172 +0000001a@96174 +00000038@96175 +00000020@96176 +00000022@96177 +00000020@96178 +00000028@96179 +0000002a@96180 +00000014@96182 +00000016@96183 +00000028@96185 +0000002a@96186 +00000014@96188 +00000016@96189 +00000028@96191 +0000002a@96192 +00000014@96194 +00000016@96195 +00000000@96197 +00000002@96198 +00000000@96200 +00000002@96202 +00000000@96203 +00000002@96205 +00000000@96206 +00000002@96208 +00000000@96210 +00000002@96211 +00000000@96213 +00000002@96214 +00000000@96216 +00000002@96217 +00000000@96219 +00000002@96220 +00000014@96222 +00000016@96223 +00000024@96225 +00000026@96226 +00000034@96228 +00000036@96230 +00000034@96231 +00000036@96233 +00000034@96234 +00000036@96236 +00000034@96237 +00000038@96238 +0000003a@96239 +0000002c@96241 +0000002e@96242 +0000003c@96244 +0000003e@96245 +00000040@96247 +00000002@96248 +00000000@96250 +00000002@96251 +00000000@96253 +00000002@96254 +00000000@96256 +00000002@96258 +00000000@96259 +00000002@96261 +00000000@96262 +00000002@96264 +00000000@96265 +00000002@96267 +00000000@96269 +00000002@96270 +00000000@96272 +00000002@96273 +00000000@96275 +00000002@96276 +00000000@96278 +00000002@96279 +00000000@96281 +00000002@96282 +00000000@96284 +00000002@96286 +00000000@96287 +00000002@96289 +00000000@96290 +00000002@96292 +00000000@96293 +00000002@96295 +00000000@96297 +00000002@96298 +00000000@96300 +00000002@96301 +00000000@96303 +00000002@96304 +00000000@96306 +00000002@96307 +00000000@96309 +00000002@96310 +00000000@96312 +00000002@96313 +00000000@96315 +00000002@96317 +00000000@96318 +00000002@96320 +00000000@96321 +00000034@96322 +00000036@96323 +00000034@96324 +00000014@96325 +00000016@96326 +00000000@96328 +00000002@96329 +00000000@96331 +00000002@96332 +00000000@96334 +00000002@96335 +00000020@96337 +00000022@96338 +00000004@96340 +00000006@96341 +00000004@96343 +00000000@96344 +00000002@96345 +00000000@96346 +00000002@96348 +00000000@96349 +00000002@96351 +00000000@96352 +00000002@96354 +00000000@96356 +00000002@96357 +00000000@96359 +00000002@96360 +00000000@96362 +00000002@96363 +00000000@96365 +00000002@96366 +00000000@96368 +00000002@96369 +00000000@96371 +00000002@96373 +00000000@96374 +00000002@96376 +00000000@96377 +00000002@96379 +00000000@96380 +00000002@96382 +00000000@96384 +00000002@96385 +00000000@96387 +00000002@96388 +00000000@96390 +00000002@96391 +00000000@96393 +00000002@96394 +00000034@96396 +00000036@96397 +00000024@96399 +00000026@96401 +00000024@96402 +00000000@96403 +00000002@96404 +00000000@96405 +00000002@96407 +00000000@96408 +00000002@96410 +00000020@96412 +00000022@96413 +00000004@96415 +00000006@96416 +00000000@96418 +00000002@96419 +00000034@96421 +00000036@96422 +00000034@96424 +00000036@96425 +00000000@96427 +00000002@96428 +00000000@96430 +00000002@96432 +00000000@96433 +00000002@96435 +00000000@96436 +00000020@96437 +00000022@96438 +00000020@96439 +00000004@96440 +00000006@96441 +00000000@96443 +00000002@96444 +00000000@96446 +00000002@96447 +00000014@96449 +00000016@96450 +00000000@96452 +00000002@96453 +00000004@96455 +00000006@96456 +00000000@96458 +00000002@96460 +00000000@96461 +00000020@96462 +00000022@96463 +00000020@96464 +00000004@96465 +00000006@96466 +00000004@96467 +00000000@96468 +00000002@96469 +00000000@96471 +00000002@96472 +00000014@96474 +00000016@96475 +00000000@96477 +00000002@96478 +00000004@96480 +00000006@96481 +00000000@96483 +00000002@96484 +00000020@96486 +00000022@96487 +00000020@96489 +00000004@96490 +00000006@96491 +00000004@96492 +00000000@96493 +00000002@96494 +00000000@96495 +00000002@96497 +00000000@96498 +00000014@96499 +00000016@96500 +00000000@96502 +00000002@96503 +00000004@96505 +00000006@96506 +00000000@96508 +00000002@96509 +00000020@96511 +00000022@96512 +00000004@96514 +00000006@96515 +00000004@96517 +00000000@96518 +00000002@96519 +00000000@96520 +00000002@96522 +00000000@96523 +00000002@96525 +00000000@96526 +00000002@96528 +00000000@96530 +00000002@96531 +00000000@96533 +00000002@96534 +00000000@96536 +00000002@96537 +00000000@96539 +00000002@96540 +00000000@96542 +00000002@96543 +00000000@96545 +00000002@96547 +00000000@96548 +00000002@96550 +00000000@96551 +00000002@96553 +00000000@96554 +00000002@96556 +00000000@96558 +00000002@96559 +00000000@96561 +00000002@96562 +00000000@96564 +00000002@96565 +00000000@96567 +00000002@96568 +00000000@96570 +00000002@96571 +00000014@96573 +00000016@96574 +00000014@96576 +00000000@96577 +00000002@96578 +00000000@96579 +00000004@96580 +00000006@96581 +00000004@96582 +00000000@96583 +00000002@96584 +00000020@96586 +00000022@96587 +00000004@96589 +00000006@96590 +00000000@96592 +00000002@96593 +00000000@96595 +00000002@96596 +00000014@96598 +00000016@96599 +00000000@96601 +00000002@96602 +00000004@96604 +00000006@96606 +00000004@96607 +00000000@96608 +00000002@96609 +00000000@96610 +00000020@96611 +00000022@96612 +00000020@96613 +00000004@96614 +00000006@96615 +00000000@96617 +00000002@96618 +00000000@96620 +00000002@96621 +00000014@96623 +00000016@96624 +00000000@96626 +00000002@96627 +00000004@96629 +00000006@96630 +00000000@96632 +00000002@96634 +00000000@96635 +00000020@96636 +00000022@96637 +00000020@96638 +00000004@96639 +00000006@96640 +00000004@96641 +00000000@96642 +00000002@96643 +00000000@96645 +00000002@96646 +00000014@96648 +00000016@96649 +00000000@96651 +00000002@96652 +00000004@96654 +00000006@96655 +00000000@96657 +00000002@96658 +00000020@96660 +00000022@96661 +00000020@96663 +00000004@96664 +00000006@96665 +00000004@96666 +00000000@96667 +00000002@96668 +00000000@96669 +00000002@96671 +00000014@96673 +00000016@96674 +00000000@96676 +00000002@96677 +00000004@96679 +00000006@96680 +00000000@96682 +00000002@96683 +00000020@96685 +00000022@96686 +00000004@96688 +00000006@96689 +00000004@96691 +00000000@96692 +00000002@96693 +00000000@96694 +00000002@96696 +00000000@96697 +00000014@96698 +00000016@96699 +00000014@96700 +00000000@96701 +00000002@96702 +00000004@96704 +00000006@96705 +00000000@96707 +00000002@96708 +00000020@96710 +00000022@96711 +00000004@96713 +00000006@96714 +00000000@96716 +00000002@96717 +00000000@96719 +00000002@96721 +00000000@96722 +00000014@96723 +00000016@96724 +00000014@96725 +00000000@96726 +00000002@96727 +00000000@96728 +00000004@96729 +00000006@96730 +00000000@96732 +00000002@96733 +00000020@96735 +00000022@96736 +00000004@96738 +00000006@96739 +00000000@96741 +00000002@96742 +00000030@96744 +00000032@96745 +00000014@96747 +00000016@96749 +00000014@96750 +00000000@96751 +00000002@96752 +00000000@96753 +00000008@96754 +0000000a@96755 +00000008@96756 +00000000@96757 +00000002@96758 +00000020@96760 +00000022@96761 +00000004@96763 +00000006@96764 +00000000@96766 +00000002@96767 +00000000@96769 +00000002@96770 +00000014@96772 +00000016@96773 +00000000@96775 +00000002@96776 +00000004@96778 +00000006@96780 +00000004@96781 +00000000@96782 +00000002@96783 +00000000@96784 +00000020@96785 +00000022@96786 +00000004@96788 +00000006@96789 +00000000@96791 +00000002@96792 +00000000@96794 +00000002@96795 +00000014@96797 +00000016@96798 +00000000@96800 +00000002@96801 +00000004@96803 +00000006@96804 +00000004@96806 +00000000@96807 +00000002@96808 +00000000@96809 +00000020@96810 +00000022@96811 +00000020@96812 +00000004@96813 +00000006@96814 +00000000@96816 +00000002@96817 +00000000@96819 +00000002@96820 +00000000@96822 +00000002@96823 +00000000@96825 +00000002@96826 +00000000@96828 +00000002@96829 +00000000@96831 +00000002@96832 +00000000@96834 +00000002@96836 +00000000@96837 +00000002@96839 +00000000@96840 +00000002@96842 +00000000@96843 +00000002@96845 +00000000@96847 +00000002@96848 +00000000@96850 +00000002@96851 +00000000@96853 +00000002@96854 +00000000@96856 +00000002@96857 +00000000@96859 +00000002@96860 +00000000@96862 +00000002@96864 +00000000@96865 +00000002@96867 +00000000@96868 +00000002@96870 +00000000@96871 +00000014@96872 +00000016@96873 +00000000@96875 +00000002@96876 +00000004@96878 +00000006@96879 +00000000@96881 +00000002@96882 +00000020@96884 +00000022@96885 +00000004@96887 +00000006@96888 +00000000@96890 +00000002@96892 +00000000@96893 +00000002@96895 +00000000@96896 +00000014@96897 +00000016@96898 +00000014@96899 +00000000@96900 +00000002@96901 +00000004@96903 +00000006@96904 +00000000@96906 +00000002@96907 +00000020@96909 +00000022@96910 +00000004@96912 +00000006@96913 +00000000@96915 +00000002@96916 +00000000@96918 +00000002@96919 +00000010@96921 +00000014@96922 +00000016@96923 +00000014@96924 +00000000@96925 +00000002@96926 +00000000@96927 +00000004@96928 +00000006@96929 +00000004@96930 +00000000@96931 +00000002@96932 +00000020@96934 +00000022@96935 +00000004@96937 +00000006@96938 +00000000@96940 +00000002@96941 +00000000@96943 +00000001@96945 +00000031@96946 +00000030@96976 +00000000@96977 +00000002@96979 +00000000@96980 +00000002@96982 +00000000@96983 +00000002@96985 +00000000@96986 +00000004@96987 +00000006@96988 +00000028@96990 +0000002a@96991 +00000020@96993 +00000022@96994 +00000028@96996 +0000002a@96997 +00000014@96999 +00000016@97000 +00000028@97002 +0000002a@97003 +00000014@97005 +00000016@97006 +00000028@97008 +0000002a@97010 +00000038@97011 +00000014@97012 +00000016@97013 +00000014@97014 +0000003c@97015 +0000003e@97016 +00000028@97018 +0000002a@97019 +00000034@97021 +00000036@97022 +0000000c@97024 +0000000e@97025 +0000001c@97027 +0000001e@97028 +00000000@97030 +00000002@97031 +00000010@97033 +00000012@97034 +0000001c@97036 +0000001e@97038 +0000001c@97039 +0000003c@97040 +0000003e@97041 +0000003c@97042 +00000038@97043 +0000003a@97044 +00000038@97046 +0000003a@97047 +0000001c@97049 +0000001e@97050 +00000000@97052 +00000002@97053 +00000000@97055 +00000002@97056 +00000000@97058 +00000002@97059 +00000000@97061 +00000002@97062 +00000000@97064 +00000004@97065 +00000005@97066 +00000035@97067 +00000034@97097 +00000000@97099 +00000002@97100 +00000000@97101 +00000002@97103 +00000004@97105 +00000006@97106 +00000028@97108 +0000002a@97109 +00000038@97111 +0000003a@97112 +00000000@97114 +00000002@97115 +00000028@97117 +0000002a@97118 +00000014@97120 +00000016@97122 +00000030@97123 +00000028@97124 +0000002a@97125 +00000038@97126 +00000014@97127 +00000016@97128 +00000014@97129 +00000028@97130 +0000002a@97131 +00000014@97133 +00000016@97134 +00000000@97136 +00000002@97137 +00000014@97139 +00000016@97140 +00000000@97142 +00000002@97143 +00000004@97145 +00000006@97146 +00000000@97148 +00000002@97150 +00000000@97151 +00000020@97152 +00000022@97153 +00000020@97154 +00000004@97155 +00000006@97156 +00000004@97157 +00000000@97158 +00000002@97159 +00000000@97161 +00000002@97162 +00000014@97164 +00000016@97165 +00000000@97167 +00000002@97168 +00000004@97170 +00000006@97171 +00000000@97173 +00000002@97174 +00000020@97176 +00000022@97177 +00000020@97179 +00000004@97180 +00000006@97181 +00000004@97182 +00000000@97183 +00000002@97184 +00000000@97185 +00000002@97187 +00000014@97189 +00000016@97190 +00000000@97192 +00000002@97193 +00000004@97195 +00000006@97196 +00000000@97198 +00000002@97199 +00000020@97201 +00000022@97202 +00000004@97204 +00000006@97205 +00000004@97207 +00000000@97208 +00000002@97209 +00000000@97210 +00000002@97212 +00000000@97213 +00000014@97214 +00000016@97215 +00000014@97216 +00000000@97217 +00000002@97218 +00000004@97220 +00000006@97221 +00000000@97223 +00000002@97224 +00000020@97226 +00000022@97227 +00000004@97229 +00000006@97230 +00000000@97232 +00000002@97233 +00000000@97235 +00000002@97237 +00000000@97238 +00000014@97239 +00000016@97240 +00000014@97241 +00000000@97242 +00000002@97243 +00000000@97244 +00000004@97245 +00000006@97246 +00000000@97248 +00000002@97249 +00000020@97251 +00000022@97252 +00000004@97254 +00000006@97255 +00000000@97257 +00000002@97258 +00000000@97260 +00000002@97261 +00000014@97263 +00000016@97265 +00000014@97266 +00000000@97267 +00000002@97268 +00000000@97269 +00000004@97270 +00000006@97271 +00000004@97272 +00000000@97273 +00000002@97274 +00000020@97276 +00000022@97277 +00000004@97279 +00000006@97280 +00000000@97282 +00000002@97283 +00000000@97285 +00000002@97286 +00000014@97288 +00000016@97289 +00000000@97291 +00000002@97292 +00000004@97294 +00000006@97296 +00000004@97297 +00000000@97298 +00000002@97299 +00000000@97300 +00000020@97301 +00000022@97302 +00000004@97304 +00000006@97305 +00000000@97307 +00000002@97308 +00000000@97310 +00000002@97311 +00000014@97313 +00000016@97314 +00000000@97316 +00000002@97317 +00000004@97319 +00000006@97320 +00000004@97322 +00000000@97323 +00000002@97324 +00000000@97325 +00000020@97326 +00000022@97327 +00000020@97328 +00000004@97329 +00000006@97330 +00000000@97332 +00000002@97333 +00000000@97335 +00000002@97336 +00000014@97338 +00000016@97339 +00000000@97341 +00000002@97342 +00000004@97344 +00000006@97345 +00000000@97347 +00000002@97348 +00000020@97350 +00000022@97352 +00000020@97353 +00000004@97354 +00000006@97355 +00000004@97356 +00000000@97357 +00000002@97358 +00000000@97359 +00000002@97361 +00000014@97363 +00000016@97364 +00000000@97366 +00000002@97367 +00000004@97369 +00000006@97370 +00000000@97372 +00000002@97373 +00000020@97375 +00000022@97376 +00000024@97378 +00000004@97379 +00000006@97380 +00000004@97381 +00000000@97382 +00000002@97383 +00000000@97384 +0000002c@97385 +0000002e@97386 +0000002c@97387 +00000030@97388 +00000032@97389 +00000000@97391 +00000002@97392 +0000000c@97394 +0000000e@97395 +00000000@97397 +00000002@97398 +00000020@97400 +00000022@97401 +00000004@97403 +00000006@97404 +00000000@97406 +00000002@97408 +00000008@97409 +0000002c@97410 +0000002e@97411 +0000002c@97412 +00000030@97413 +00000032@97414 +00000030@97415 +00000000@97416 +00000002@97417 +0000000c@97419 +0000000e@97420 +00000000@97422 +00000002@97423 +00000020@97425 +00000022@97426 +00000004@97428 +00000006@97429 +00000000@97431 +00000002@97432 +00000000@97434 +00000002@97435 +00000000@97437 +00000002@97439 +00000000@97440 +00000002@97442 +00000000@97443 +00000002@97445 +00000000@97446 +00000002@97448 +00000000@97450 +00000002@97451 +00000000@97453 +00000002@97454 +00000000@97456 +00000002@97457 +0000002c@97459 +0000002e@97460 +00000030@97462 +00000032@97463 +00000030@97465 +00000000@97466 +00000002@97467 +00000008@97468 +0000000c@97469 +0000000e@97470 +0000000c@97471 +00000000@97472 +00000002@97473 +00000000@97474 +00000020@97475 +00000022@97476 +00000004@97478 +00000006@97479 +00000000@97481 +00000002@97482 +00000000@97484 +00000002@97485 +00000020@97487 +00000022@97488 +00000000@97490 +00000002@97491 +00000000@97493 +00000002@97495 +00000000@97496 +00000002@97498 +00000000@97499 +00000002@97501 +00000000@97502 +00000002@97504 +00000000@97506 +00000002@97507 +00000000@97509 +00000002@97510 +00000000@97512 +00000002@97513 +0000002c@97515 +0000002e@97516 +00000014@97518 +00000016@97519 +0000003c@97521 +0000003e@97523 +0000003c@97524 +00000038@97525 +0000003a@97526 +00000038@97527 +0000003a@97529 +00000038@97530 +0000001c@97531 +0000001e@97532 +00000000@97534 +00000002@97535 +00000000@97537 +00000002@97538 +0000002c@97540 +0000002e@97541 +00000014@97543 +00000016@97544 +0000003c@97546 +0000003e@97547 +00000038@97549 +0000003a@97550 +00000038@97552 +0000003a@97554 +00000038@97555 +0000001c@97556 +0000001e@97557 +0000001c@97558 +00000000@97559 +00000002@97560 +00000000@97562 +00000002@97563 +0000002c@97565 +0000002e@97566 +00000014@97568 +00000016@97569 +0000003c@97571 +0000003e@97572 +00000038@97574 +0000003a@97575 +00000038@97577 +0000003a@97578 +00000038@97580 +0000001c@97581 +0000001e@97582 +0000001c@97583 +00000000@97584 +00000002@97585 +00000000@97586 +00000002@97588 +0000002c@97590 +0000002e@97591 +00000014@97593 +00000016@97594 +0000003c@97596 +0000003e@97597 +00000038@97599 +0000003a@97600 +00000038@97602 +0000003a@97603 +0000001c@97605 +0000001e@97606 +0000001c@97608 +00000000@97609 +00000002@97610 +00000000@97611 +00000002@97613 +00000000@97614 +0000002c@97615 +0000002e@97616 +0000002c@97617 +00000014@97618 +00000016@97619 +0000003c@97621 +0000003e@97622 +00000038@97624 +0000003a@97625 +00000038@97627 +0000003a@97628 +0000001c@97630 +0000001e@97631 +00000004@97633 +00000006@97634 +00000000@97636 +00000002@97638 +00000008@97639 +0000002c@97640 +0000002e@97641 +0000002c@97642 +00000014@97643 +00000016@97644 +00000014@97645 +00000000@97646 +00000002@97647 +00000000@97649 +00000002@97650 +00000008@97652 +0000000a@97653 +0000000c@97655 +0000000e@97656 +00000000@97658 +00000002@97659 +00000008@97661 +0000000a@97662 +00000038@97664 +0000003a@97666 +00000038@97667 +00000000@97668 +00000002@97669 +00000000@97670 +00000004@97671 +00000006@97672 +00000004@97673 +00000030@97674 +00000032@97675 +00000014@97677 +00000016@97678 +00000020@97680 +00000022@97681 +00000000@97683 +00000002@97684 +00000010@97686 +00000012@97687 +0000000c@97689 +0000000e@97690 +0000000c@97692 +0000000e@97694 +0000000c@97695 +00000004@97696 +00000006@97697 +00000004@97698 +00000000@97699 +00000002@97700 +00000000@97701 +00000030@97702 +00000032@97703 +00000004@97705 +00000006@97706 +00000024@97708 +00000026@97709 +0000000c@97711 +0000000e@97712 +00000010@97714 +00000012@97715 +00000008@97717 +0000000a@97718 +0000003c@97720 +0000003e@97721 +0000003c@97723 +00000028@97724 +0000002a@97725 +00000028@97726 +00000034@97727 +00000036@97728 +00000034@97729 +0000000c@97730 +0000000e@97731 +00000004@97733 +00000006@97734 +00000000@97736 +00000002@97737 +0000002c@97739 +0000002e@97740 +00000034@97742 +00000036@97743 +00000000@97745 +00000002@97746 +00000000@97748 +00000002@97749 +0000002c@97751 +0000002e@97753 +0000002c@97754 +00000014@97755 +00000016@97756 +00000014@97757 +00000000@97758 +00000002@97759 +00000000@97760 +00000002@97762 +00000008@97764 +0000000a@97765 +0000000c@97767 +0000000e@97768 +00000000@97770 +00000002@97771 +00000008@97773 +0000000a@97774 +00000038@97776 +0000003a@97777 +00000030@97779 +00000000@97780 +00000002@97781 +00000000@97782 +00000002@97784 +00000000@97785 +00000002@97787 +00000000@97788 +00000008@97789 +0000000a@97790 +00000008@97792 +0000000a@97793 +00000000@97795 +00000002@97796 +00000010@97798 +00000012@97799 +00000030@97801 +00000032@97802 +00000000@97804 +00000002@97805 +00000000@97807 +00000002@97809 +00000010@97810 +00000012@97812 +00000010@97813 +0000000c@97814 +0000000e@97815 +0000000c@97816 +0000000e@97818 +00000020@97820 +00000022@97821 +0000002c@97823 +0000002e@97824 +00000010@97826 +00000012@97827 +00000008@97829 +0000000a@97830 +0000003c@97832 +0000003e@97833 +00000028@97835 +0000002a@97836 +00000038@97838 +00000034@97839 +00000036@97840 +00000034@97841 +0000000c@97842 +0000000e@97843 +0000000c@97844 +00000000@97845 +00000002@97846 +00000000@97848 +00000002@97849 +0000002c@97851 +0000002e@97852 +00000034@97854 +00000036@97855 +00000000@97857 +00000002@97858 +00000000@97860 +00000002@97861 +0000002c@97863 +0000002e@97864 +0000003c@97866 +00000014@97867 +00000016@97868 +00000014@97869 +0000003c@97870 +0000003e@97871 +0000003c@97872 +00000038@97873 +0000003a@97874 +00000038@97876 +0000003a@97877 +0000001c@97879 +0000001e@97880 +00000004@97882 +00000005@97883 +00000035@97885 +00000034@97915 +00000000@97916 +00000002@97917 +00000000@97919 +00000002@97920 +00000000@97922 +00000002@97924 +00000004@97925 +00000006@97927 +00000004@97928 +00000028@97929 +0000002a@97930 +00000028@97931 +00000020@97932 +00000022@97933 +00000028@97935 +0000002a@97936 +00000014@97938 +00000016@97939 +00000028@97941 +0000002a@97942 +00000014@97944 +00000016@97945 +00000028@97947 +0000002a@97948 +00000014@97950 +00000016@97952 +00000014@97953 +0000003c@97954 +0000003e@97955 +0000003c@97956 +00000028@97957 +0000002a@97958 +00000028@97959 +00000034@97960 +00000036@97961 +0000000c@97963 +0000000e@97964 +0000001c@97966 +0000001e@97967 +00000000@97969 +00000002@97970 +00000010@97972 +00000012@97973 +0000001c@97975 +0000001e@97976 +0000003c@97978 +0000003e@97980 +0000003c@97981 +00000038@97982 +0000003a@97983 +00000038@97984 +0000003a@97986 +00000038@97987 +0000001c@97988 +0000001e@97989 +00000000@97991 +00000002@97992 +00000000@97994 +00000002@97995 +00000000@97997 +00000002@97998 +00000000@98000 +00000002@98001 +00000004@98003 +00000005@98005 +00000035@98006 +00000034@98036 +00000000@98037 +00000002@98039 +00000000@98040 +00000002@98042 +00000000@98043 +00000004@98044 +00000006@98045 +00000004@98046 +0000002c@98047 +0000002e@98048 +00000014@98050 +00000016@98051 +00000020@98053 +00000022@98054 +00000028@98056 +0000002a@98057 +00000014@98059 +00000016@98060 +00000028@98062 +0000002a@98063 +00000014@98065 +00000016@98067 +00000030@98068 +00000028@98069 +0000002a@98070 +00000028@98071 +00000014@98072 +00000016@98073 +00000014@98074 +00000004@98075 +00000006@98076 +00000000@98078 +00000002@98079 +0000002c@98081 +0000002e@98082 +00000014@98084 +00000016@98085 +00000000@98087 +00000002@98088 +00000034@98090 +00000036@98091 +00000030@98093 +00000010@98094 +00000012@98095 +00000018@98096 +00000028@98097 +0000002a@98098 +00000028@98099 +00000000@98100 +00000002@98101 +00000000@98102 +00000034@98103 +00000036@98104 +00000010@98106 +00000012@98107 +0000002c@98109 +0000002e@98110 +00000000@98112 +00000002@98113 +00000038@98115 +0000003a@98116 +00000050@98118 +00000012@98119 +00000030@98121 +00000032@98123 +00000030@98124 +00000004@98125 +00000006@98126 +00000004@98127 +00000028@98128 +0000002a@98129 +00000028@98130 +00000018@98131 +0000001a@98132 +00000000@98134 +00000002@98135 +00000000@98137 +00000002@98138 +00000014@98140 +00000016@98141 +00000038@98143 +0000003a@98144 +00000040@98146 +00000002@98147 +00000008@98149 +0000000a@98151 +00000008@98152 +00000000@98153 +00000002@98154 +00000000@98155 +00000018@98156 +0000001a@98157 +00000018@98158 +00000020@98159 +00000022@98160 +00000018@98162 +0000001a@98163 +00000004@98165 +00000006@98166 +00000018@98168 +0000001a@98169 +00000020@98171 +00000022@98172 +00000028@98174 +0000002a@98175 +00000008@98177 +0000000a@98178 +00000018@98180 +0000001a@98182 +00000018@98183 +00000020@98184 +00000022@98185 +00000020@98186 +00000000@98187 +00000002@98188 +00000030@98190 +00000032@98191 +0000000c@98193 +0000000e@98194 +00000010@98196 +00000012@98197 +0000003c@98199 +0000003e@98200 +0000003c@98202 +0000003e@98203 +0000003c@98205 +0000003e@98206 +0000003c@98208 +0000001c@98209 +0000001e@98210 +0000001c@98211 +00000038@98212 +0000003a@98213 +00000038@98214 +00000000@98215 +00000002@98216 +00000000@98217 +0000003c@98218 +0000003e@98219 +0000003c@98221 +0000003e@98222 +00000000@98224 +00000002@98225 +00000028@98227 +0000002a@98228 +00000010@98230 +00000012@98231 +0000002c@98233 +0000002e@98234 +00000024@98236 +00000026@98238 +00000034@98239 +00000030@98240 +00000032@98241 +00000030@98242 +00000010@98243 +00000012@98244 +00000010@98245 +00000008@98246 +0000000a@98247 +0000003c@98249 +0000003e@98250 +00000018@98252 +0000001a@98253 +00000034@98255 +00000036@98256 +0000000c@98258 +0000000e@98259 +00000000@98261 +00000002@98262 +00000010@98264 +00000012@98266 +00000018@98267 +00000038@98268 +0000003a@98269 +00000038@98270 +00000000@98271 +00000002@98272 +00000000@98273 +00000008@98274 +0000000a@98275 +00000000@98277 +00000002@98278 +00000018@98280 +0000001a@98281 +00000020@98283 +00000022@98284 +00000018@98286 +0000001a@98287 +00000004@98289 +00000006@98290 +00000018@98292 +0000001a@98294 +00000038@98295 +00000020@98296 +00000022@98297 +00000020@98298 +00000000@98299 +00000002@98300 +00000000@98301 +00000020@98302 +00000022@98303 +0000000c@98305 +0000000e@98306 +00000010@98308 +00000012@98309 +0000003c@98311 +0000003e@98312 +0000003c@98314 +0000003e@98315 +0000003c@98317 +0000003e@98318 +0000001c@98320 +0000001e@98321 +0000003c@98323 +00000038@98324 +0000003a@98325 +00000038@98326 +00000000@98327 +00000002@98328 +00000000@98329 +0000003c@98330 +0000003e@98331 +0000003c@98332 +0000003e@98334 +00000000@98336 +00000002@98337 +0000001c@98339 +0000001e@98340 +00000010@98342 +00000012@98343 +0000002c@98345 +0000002e@98346 +00000024@98348 +00000026@98349 +00000030@98351 +00000032@98353 +00000030@98354 +00000010@98355 +00000012@98356 +00000010@98357 +00000008@98358 +0000000a@98359 +00000008@98360 +0000003c@98361 +0000003e@98362 +0000001c@98364 +0000001e@98365 +00000034@98367 +00000036@98368 +0000000c@98370 +0000000e@98371 +00000000@98373 +00000002@98374 +00000000@98376 +00000002@98377 +0000003c@98379 +0000003e@98381 +0000003c@98382 +00000000@98383 +00000002@98384 +00000000@98385 +0000000c@98386 +0000000e@98387 +0000000c@98388 +00000030@98389 +00000032@98390 +0000003c@98392 +0000003e@98393 +00000024@98395 +00000026@98396 +0000003c@98398 +0000003e@98399 +00000038@98401 +0000003a@98402 +00000038@98404 +0000003a@98405 +0000001c@98407 +0000001e@98408 +0000003c@98410 +00000030@98411 +00000032@98412 +00000030@98413 +00000000@98414 +00000002@98415 +00000000@98416 +00000010@98417 +00000012@98418 +00000018@98420 +0000001a@98421 +00000000@98423 +00000002@98424 +00000000@98426 +00000002@98427 +00000000@98429 +00000002@98430 +00000000@98432 +00000002@98433 +00000000@98435 +00000002@98436 +00000020@98438 +00000022@98440 +00000020@98441 +00000004@98442 +00000006@98443 +00000004@98444 +00000000@98445 +00000002@98446 +00000000@98447 +00000002@98449 +00000010@98451 +00000012@98452 +0000000c@98454 +0000000e@98455 +00000010@98457 +00000012@98458 +00000000@98460 +00000002@98461 +00000010@98463 +00000012@98464 +00000010@98466 +00000012@98468 +00000010@98469 +00000000@98470 +00000002@98471 +00000000@98472 +0000002c@98473 +0000002e@98474 +0000002c@98475 +00000020@98476 +00000022@98477 +00000000@98479 +00000002@98480 +00000000@98482 +00000002@98483 +00000000@98485 +00000002@98486 +00000020@98488 +00000022@98489 +00000004@98491 +00000006@98492 +00000000@98494 +00000002@98495 +00000030@98497 +00000032@98499 +00000030@98500 +00000010@98501 +00000012@98502 +00000010@98503 +00000000@98504 +00000002@98505 +00000000@98507 +00000002@98508 +00000000@98510 +00000002@98511 +00000020@98513 +00000022@98514 +00000004@98516 +00000006@98517 +00000000@98519 +00000002@98520 +00000030@98522 +00000032@98523 +00000030@98525 +00000032@98527 +00000030@98528 +00000000@98529 +00000002@98530 +00000000@98531 +00000002@98533 +00000000@98534 +00000002@98536 +00000020@98538 +00000022@98539 +00000004@98541 +00000006@98542 +00000000@98544 +00000002@98545 +00000020@98547 +00000022@98548 +00000000@98550 +00000002@98551 +0000002c@98553 +0000002e@98555 +0000002c@98556 +00000014@98557 +00000016@98558 +00000014@98559 +00000020@98560 +00000022@98561 +00000020@98562 +00000008@98563 +0000000a@98564 +0000002c@98566 +0000002e@98567 +00000000@98569 +00000002@98570 +00000000@98572 +00000002@98573 +00000000@98575 +00000002@98576 +00000028@98578 +0000002a@98579 +0000003c@98581 +0000003e@98582 +0000003c@98584 +00000000@98585 +00000002@98586 +00000000@98587 +00000008@98588 +0000000a@98589 +00000008@98590 +00000004@98591 +00000006@98592 +00000030@98594 +00000032@98595 +0000003c@98597 +0000003e@98598 +0000002c@98600 +0000002e@98601 +00000004@98603 +00000006@98604 +00000034@98606 +00000036@98607 +00000004@98609 +00000006@98610 +0000002c@98612 +00000028@98613 +0000002a@98614 +00000028@98615 +0000001c@98616 +0000001e@98617 +0000001c@98618 +00000000@98619 +00000002@98620 +00000000@98621 +00000002@98623 +00000018@98625 +0000001a@98626 +00000010@98628 +00000012@98629 +0000002c@98631 +0000002e@98632 +0000003c@98634 +0000003e@98635 +00000028@98637 +0000002a@98638 +00000024@98640 +00000004@98641 +00000006@98642 +00000014@98643 +00000034@98644 +00000036@98645 +00000034@98646 +00000004@98647 +00000006@98648 +00000004@98649 +00000008@98650 +0000000a@98651 +0000001c@98653 +0000001e@98654 +00000020@98656 +00000022@98657 +00000004@98659 +00000006@98660 +00000004@98662 +00000006@98663 +00000004@98665 +00000006@98666 +00000030@98668 +00000032@98670 +00000030@98671 +00000004@98672 +00000006@98673 +00000004@98674 +0000003c@98675 +0000003e@98676 +0000003c@98677 +00000008@98678 +0000000a@98679 +00000008@98681 +0000000a@98682 +00000000@98684 +00000002@98685 +00000028@98687 +0000002a@98688 +00000010@98690 +00000012@98691 +00000000@98693 +00000002@98694 +00000000@98696 +00000002@98698 +00000000@98699 +00000004@98700 +00000006@98701 +00000004@98702 +00000008@98703 +0000000a@98704 +00000008@98705 +00000004@98706 +00000006@98707 +00000000@98709 +00000002@98710 +00000020@98712 +00000022@98713 +00000004@98715 +00000006@98716 +00000030@98718 +00000032@98719 +00000024@98721 +00000026@98722 +00000000@98724 +00000002@98725 +00000010@98727 +00000012@98729 +00000010@98730 +00000000@98731 +00000002@98732 +00000000@98733 +00000002@98735 +00000000@98736 +00000008@98737 +0000000a@98738 +00000004@98740 +00000006@98741 +00000030@98743 +00000032@98744 +00000004@98746 +00000006@98747 +00000028@98749 +0000002a@98750 +00000018@98752 +0000001a@98753 +00000010@98755 +00000000@98756 +00000002@98757 +00000008@98758 +0000002c@98759 +0000002e@98760 +0000002c@98761 +00000034@98762 +00000036@98763 +00000034@98764 +00000010@98765 +00000012@98766 +00000018@98768 +0000001a@98769 +00000000@98771 +00000002@98772 +00000008@98774 +0000000a@98775 +0000002c@98777 +0000002e@98778 +00000000@98780 +00000002@98781 +00000020@98783 +00000022@98785 +00000020@98786 +00000000@98787 +00000002@98788 +00000000@98789 +0000002c@98790 +0000002e@98791 +0000002c@98792 +00000034@98793 +00000036@98794 +00000000@98796 +00000002@98797 +00000000@98799 +00000002@98800 +00000038@98802 +0000003a@98803 +00000044@98805 +00000006@98806 +00000000@98808 +00000002@98809 +00000000@98811 +00000002@98812 +00000018@98814 +00000038@98815 +0000003a@98816 +00000038@98817 +00000000@98818 +00000002@98819 +00000000@98820 +00000020@98821 +00000021@98822 +00000031@98824 +00000030@98853 +00000000@98855 +00000002@98856 +00000000@98858 +00000002@98859 +00000000@98861 +00000002@98862 +00000004@98864 +00000006@98865 +00000028@98867 +0000002a@98868 +00000020@98870 +00000022@98872 +00000028@98873 +0000002a@98875 +00000038@98876 +00000014@98877 +00000016@98878 +00000014@98879 +00000028@98880 +0000002a@98881 +00000014@98883 +00000016@98884 +00000028@98886 +0000002a@98887 +00000014@98889 +00000016@98890 +0000003c@98892 +0000003e@98893 +00000028@98895 +0000002a@98896 +00000034@98898 +00000036@98900 +0000003c@98901 +0000000c@98902 +0000000e@98903 +0000000c@98904 +0000001c@98905 +0000001e@98906 +0000001c@98907 +00000000@98908 +00000002@98909 +00000000@98910 +00000010@98911 +00000012@98912 +0000001c@98914 +0000001e@98915 +0000003c@98917 +0000003e@98918 +00000038@98920 +0000003a@98921 +00000038@98923 +0000003a@98924 +0000001c@98926 +0000001e@98927 +0000001c@98929 +00000000@98930 +00000002@98931 +00000000@98932 +00000002@98934 +00000000@98935 +00000002@98937 +00000000@98938 +00000002@98940 +00000004@98942 +00000005@98943 +00000035@98945 +00000034@98974 +00000000@98976 +00000002@98977 +00000000@98979 +00000002@98980 +00000004@98982 +00000006@98983 +0000002c@98985 +0000002e@98986 +00000034@98988 +00000036@98990 +00000034@98991 +00000000@98992 +00000002@98993 +00000000@98994 +00000028@98995 +0000002a@98996 +00000014@98998 +00000016@98999 +00000028@99001 +0000002a@99002 +00000014@99004 +00000016@99005 +00000028@99007 +0000002a@99008 +00000014@99010 +00000016@99011 +00000020@99013 +00000022@99014 +00000020@99016 +00000000@99017 +00000002@99018 +00000000@99019 +0000002c@99020 +0000002e@99021 +0000002c@99022 +00000014@99023 +00000016@99024 +00000020@99026 +00000022@99027 +00000008@99029 +0000000a@99030 +0000002c@99032 +0000002e@99033 +00000040@99035 +00000002@99036 +00000000@99038 +00000002@99039 +00000000@99041 +00000002@99042 +00000008@99044 +00000028@99045 +0000002a@99046 +00000028@99047 +0000003c@99048 +0000003e@99049 +0000003c@99050 +00000000@99051 +00000002@99052 +00000008@99054 +0000000a@99055 +00000004@99057 +00000006@99058 +00000030@99060 +00000032@99061 +0000003c@99063 +0000003e@99064 +0000002c@99066 +0000002e@99067 +00000004@99069 +00000006@99070 +00000034@99072 +00000036@99074 +00000034@99075 +00000004@99076 +00000006@99077 +00000004@99078 +00000028@99079 +0000002a@99080 +0000001c@99082 +0000001e@99083 +00000000@99085 +00000002@99086 +00000000@99088 +00000002@99089 +0000001c@99091 +0000001e@99092 +00000010@99094 +00000012@99095 +00000028@99097 +0000002a@99098 +0000003c@99100 +0000003e@99102 +0000003c@99103 +0000002c@99104 +0000002e@99105 +0000002c@99106 +00000004@99107 +00000006@99108 +00000004@99109 +00000034@99110 +00000036@99111 +00000004@99113 +00000006@99114 +0000002c@99116 +0000002e@99117 +0000001c@99119 +0000001e@99120 +00000020@99122 +00000022@99123 +00000004@99125 +00000006@99126 +00000024@99128 +00000026@99130 +00000024@99131 +00000004@99132 +00000006@99133 +00000004@99134 +00000030@99135 +00000032@99136 +00000030@99137 +00000004@99138 +00000006@99139 +0000003c@99141 +0000003e@99142 +00000008@99144 +0000000a@99145 +0000000c@99147 +0000000e@99148 +00000000@99150 +00000002@99151 +0000002c@99153 +0000002e@99154 +00000030@99156 +00000010@99157 +00000012@99158 +00000010@99159 +00000000@99160 +00000002@99161 +00000000@99162 +00000002@99164 +00000000@99165 +00000004@99166 +00000006@99167 +00000008@99169 +0000000a@99170 +00000004@99172 +00000006@99173 +00000000@99175 +00000002@99176 +00000020@99178 +00000022@99179 +00000004@99181 +00000006@99182 +00000030@99184 +00000032@99185 +00000030@99187 +00000024@99188 +00000026@99189 +00000024@99190 +00000020@99191 +00000022@99192 +00000020@99193 +00000010@99194 +00000012@99195 +00000010@99196 +00000000@99197 +00000002@99198 +00000000@99200 +00000002@99201 +0000000c@99203 +0000000e@99204 +00000004@99206 +00000006@99207 +00000030@99209 +00000032@99210 +00000004@99212 +00000006@99213 +00000024@99215 +00000026@99217 +00000024@99218 +00000004@99219 +00000006@99220 +00000004@99221 +00000030@99222 +00000032@99223 +00000030@99224 +00000020@99225 +00000022@99226 +00000000@99228 +00000002@99229 +00000008@99231 +0000000a@99232 +0000000c@99234 +0000000e@99235 +00000034@99237 +00000036@99238 +00000004@99240 +00000006@99241 +00000014@99243 +00000016@99245 +00000014@99246 +00000000@99247 +00000002@99248 +00000000@99249 +0000002c@99250 +0000002e@99251 +0000002c@99252 +00000034@99253 +00000036@99254 +00000010@99256 +00000012@99257 +00000018@99259 +0000001a@99260 +00000000@99262 +00000002@99263 +00000008@99265 +0000000a@99266 +0000002c@99268 +0000002e@99269 +00000020@99271 +00000002@99272 +00000020@99274 +00000022@99276 +00000020@99277 +00000000@99278 +00000002@99279 +00000000@99280 +0000002c@99281 +0000002e@99282 +00000034@99284 +00000036@99285 +00000000@99287 +00000002@99288 +00000000@99290 +00000002@99291 +00000038@99293 +0000003a@99294 +00000044@99296 +00000006@99297 +00000000@99299 +00000002@99300 +00000000@99302 +00000002@99304 +00000000@99305 +00000038@99306 +0000003a@99307 +00000038@99308 +00000000@99309 +00000002@99310 +00000000@99311 +00000020@99312 +00000022@99313 +00000000@99315 +00000002@99316 +0000002c@99318 +0000002e@99319 +00000014@99321 +00000016@99322 +00000020@99324 +00000022@99325 +00000008@99327 +0000000a@99328 +0000002c@99330 +0000002e@99332 +0000002c@99333 +00000000@99334 +00000002@99335 +00000000@99336 +00000002@99338 +00000000@99339 +00000002@99341 +00000028@99343 +0000002a@99344 +0000003c@99346 +0000003e@99347 +00000040@99349 +00000002@99350 +00000008@99352 +0000000a@99353 +00000004@99355 +00000006@99356 +00000030@99358 +00000032@99360 +00000038@99361 +0000003c@99362 +0000003e@99363 +0000003c@99364 +0000002c@99365 +0000002e@99366 +0000002c@99367 +00000004@99368 +00000006@99369 +00000034@99371 +00000036@99372 +00000004@99374 +00000006@99375 +00000028@99377 +0000002a@99378 +0000001c@99380 +0000001e@99381 +00000040@99383 +00000002@99384 +00000000@99386 +00000002@99388 +00000020@99389 +00000022@99391 +00000020@99392 +00000010@99393 +00000012@99394 +00000010@99395 +00000028@99396 +0000002a@99397 +0000003c@99399 +0000003e@99400 +0000002c@99402 +0000002e@99403 +00000004@99405 +00000006@99406 +00000034@99408 +00000036@99409 +00000004@99411 +00000006@99412 +0000002c@99414 +0000002e@99415 +0000003c@99417 +0000001c@99418 +0000001e@99419 +0000001c@99420 +00000020@99421 +00000022@99422 +00000020@99423 +00000004@99424 +00000006@99425 +00000004@99426 +00000024@99427 +00000026@99428 +00000004@99430 +00000006@99431 +00000030@99433 +00000032@99434 +00000004@99436 +00000006@99437 +0000003c@99439 +0000003e@99440 +00000048@99442 +0000000a@99443 +0000000c@99445 +0000000e@99447 +0000000c@99448 +00000000@99449 +00000002@99450 +00000000@99451 +0000002c@99452 +0000002e@99453 +0000002c@99454 +00000010@99455 +00000012@99456 +00000000@99458 +00000002@99459 +00000000@99461 +00000002@99462 +00000004@99464 +00000006@99465 +00000008@99467 +0000000a@99468 +00000004@99470 +00000006@99471 +00000000@99473 +00000002@99475 +00000020@99476 +00000022@99478 +00000020@99479 +00000004@99480 +00000006@99481 +00000004@99482 +00000030@99483 +00000032@99484 +00000024@99486 +00000026@99487 +00000020@99489 +00000022@99490 +00000010@99492 +00000012@99493 +00000000@99495 +00000002@99496 +00000000@99498 +00000002@99499 +0000000c@99501 +0000000e@99503 +0000000c@99504 +00000004@99505 +00000006@99506 +00000004@99507 +00000030@99508 +00000032@99509 +00000030@99510 +00000004@99511 +00000006@99512 +00000024@99514 +00000026@99515 +00000004@99517 +00000006@99518 +00000030@99520 +00000032@99521 +00000030@99523 +00000032@99524 +00000000@99526 +00000002@99527 +00000008@99529 +0000000a@99531 +00000008@99532 +0000000c@99533 +0000000e@99534 +0000000c@99535 +00000014@99536 +00000016@99537 +00000014@99538 +0000002c@99539 +0000002e@99540 +00000000@99542 +00000002@99543 +00000000@99545 +00000002@99546 +00000034@99548 +00000036@99549 +00000004@99551 +00000006@99552 +00000014@99554 +00000016@99555 +00000000@99557 +00000002@99558 +0000002c@99560 +0000002e@99562 +0000002c@99563 +00000034@99564 +00000036@99565 +00000034@99566 +00000010@99567 +00000012@99568 +00000018@99570 +0000001a@99571 +00000000@99573 +00000002@99574 +00000008@99576 +0000000a@99577 +0000002c@99579 +0000002e@99580 +00000040@99582 +00000002@99583 +00000020@99585 +00000022@99586 +00000020@99588 +00000000@99589 +00000002@99590 +00000008@99591 +0000002c@99592 +0000002e@99593 +0000002c@99594 +00000034@99595 +00000036@99596 +00000034@99597 +00000030@99598 +00000032@99599 +00000000@99601 +00000002@99602 +00000010@99604 +00000012@99605 +00000018@99607 +0000001a@99608 +00000000@99610 +00000002@99611 +00000000@99613 +00000002@99614 +00000038@99616 +0000003a@99618 +00000038@99619 +00000004@99620 +00000006@99621 +00000004@99622 +00000000@99623 +00000002@99624 +00000000@99625 +00000002@99627 +00000038@99629 +0000003a@99630 +00000000@99632 +00000002@99633 +0000002c@99635 +0000002e@99636 +00000040@99638 +00000002@99639 +0000002c@99641 +0000002e@99642 +00000034@99644 +00000014@99645 +00000016@99646 +00000034@99647 +00000020@99648 +00000022@99649 +00000020@99650 +00000008@99651 +0000000a@99652 +00000008@99653 +0000002c@99654 +0000002e@99655 +00000000@99657 +00000002@99658 +00000000@99660 +00000002@99661 +00000000@99663 +00000002@99664 +00000028@99666 +0000002a@99667 +0000003c@99669 +0000003e@99670 +00000070@99672 +00000000@99673 +00000002@99674 +00000008@99675 +0000000a@99677 +00000008@99678 +00000004@99679 +00000006@99680 +00000004@99681 +00000030@99682 +00000032@99683 +0000000c@99685 +0000000e@99686 +00000024@99688 +00000026@99689 +00000018@99691 +0000001a@99692 +00000040@99694 +00000002@99695 +0000003c@99697 +0000003e@99698 +0000002c@99700 +0000002e@99702 +0000002c@99703 +00000004@99704 +00000006@99705 +00000004@99706 +00000034@99707 +00000036@99708 +00000034@99709 +00000004@99710 +00000006@99711 +00000028@99713 +0000002a@99714 +0000001c@99716 +0000001e@99717 +00000000@99719 +00000002@99720 +0000003c@99722 +0000003e@99723 +0000002c@99725 +0000002e@99726 +00000004@99728 +00000006@99729 +00000034@99731 +00000036@99733 +00000034@99734 +00000004@99735 +00000006@99736 +00000004@99737 +0000002c@99738 +0000002e@99739 +0000002c@99740 +0000001c@99741 +0000001e@99742 +00000020@99744 +00000022@99745 +0000001c@99747 +0000001e@99748 +0000003c@99750 +0000003e@99751 +00000008@99753 +0000000a@99754 +0000002c@99756 +0000002e@99757 +0000002c@99759 +0000000c@99760 +0000000d@99761 +0000003d@99762 +0000003c@99792 +00000000@99794 +00000002@99795 +00000000@99796 +00000002@99798 +00000000@99800 +00000002@99801 +00000004@99803 +00000006@99804 +00000028@99806 +0000002a@99807 +00000020@99809 +00000022@99810 +00000028@99812 +0000002a@99813 +00000014@99815 +00000016@99816 +00000028@99818 +0000002a@99820 +00000038@99821 +00000014@99822 +00000016@99823 +00000014@99824 +00000028@99825 +0000002a@99826 +00000028@99827 +00000014@99828 +00000016@99829 +0000003c@99831 +0000003e@99832 +00000028@99834 +0000002a@99835 +00000034@99837 +00000036@99838 +0000000c@99840 +0000000e@99841 +0000001c@99843 +0000001e@99844 +00000010@99846 +00000000@99847 +00000002@99848 +00000010@99849 +00000012@99851 +00000010@99852 +0000001c@99853 +0000001e@99854 +0000001c@99855 +0000003c@99856 +0000003e@99857 +00000038@99859 +0000003a@99860 +00000038@99862 +0000003a@99863 +0000001c@99865 +0000001e@99866 +00000040@99868 +00000002@99869 +00000000@99871 +00000002@99872 +00000000@99874 +00000002@99876 +00000000@99877 +00000002@99879 +00000000@99880 +00000004@99881 +00000005@99882 +00000035@99884 +00000034@99913 +00000000@99915 +00000002@99916 +00000000@99918 +00000002@99919 +00000004@99921 +00000006@99922 +00000030@99924 +00000032@99925 +00000010@99927 +00000012@99928 +00000020@99930 +00000022@99931 +00000028@99933 +0000002a@99935 +00000038@99936 +00000014@99937 +00000016@99938 +00000014@99939 +00000028@99940 +0000002a@99941 +00000028@99942 +00000014@99943 +00000016@99944 +00000028@99946 +0000002a@99947 +00000014@99949 +00000016@99950 +0000000c@99952 +0000000e@99953 +00000008@99955 +0000000a@99956 +00000034@99958 +00000036@99959 +00000034@99961 +00000024@99962 +00000026@99963 +00000024@99964 +0000000c@99965 +0000000e@99966 +0000000c@99967 +00000000@99968 +00000002@99969 +00000000@99970 +00000010@99971 +00000012@99972 +00000024@99974 +00000026@99975 +0000003c@99977 +0000003e@99978 +0000002c@99980 +0000002e@99981 +00000004@99983 +00000006@99984 +00000034@99986 +00000036@99987 +00000034@99989 +00000004@99990 +00000006@99991 +0000000c@99992 +0000002c@99993 +0000002e@99994 +0000002c@99995 +0000001c@99996 +0000001e@99997 +00000020@99999 +00000022@100000 +00000004@100002 +00000006@100003 +00000028@100005 +0000002a@100006 +00000004@100008 +00000006@100009 +00000030@100011 +00000032@100012 +00000000@100014 +00000002@100015 +0000003c@100017 +0000003e@100019 +0000003c@100020 +00000008@100021 +0000000a@100022 +00000008@100023 +0000000c@100024 +0000000e@100025 +0000000c@100026 +00000004@100027 +00000006@100028 +0000000c@100030 +0000000e@100031 +00000010@100033 +00000012@100034 +00000000@100036 +00000002@100037 +00000000@100039 +00000002@100040 +00000020@100042 +00000022@100043 +0000002c@100045 +0000000c@100046 +0000000e@100047 +0000000c@100048 +0000002c@100049 +0000002e@100050 +0000002c@100051 +00000024@100052 +00000026@100053 +00000024@100054 +00000020@100055 +00000022@100056 +00000000@100058 +00000002@100059 +00000020@100061 +00000022@100062 +00000008@100064 +0000000a@100065 +00000030@100067 +00000032@100068 +00000010@100070 +00000012@100071 +00000038@100073 +00000028@100074 +0000002a@100075 +00000038@100076 +0000003c@100077 +0000003e@100078 +0000003c@100079 +0000002c@100080 +0000002e@100081 +0000002c@100082 +00000004@100083 +00000006@100084 +00000034@100086 +00000036@100087 +00000004@100089 +00000006@100090 +0000002c@100092 +0000002e@100093 +0000001c@100095 +0000001e@100096 +00000020@100098 +00000022@100099 +00000024@100101 +00000004@100102 +00000006@100103 +00000034@100104 +00000030@100105 +00000032@100106 +00000030@100107 +00000004@100108 +00000006@100109 +00000004@100110 +00000030@100111 +00000032@100112 +00000000@100114 +00000002@100115 +0000003c@100117 +0000003e@100118 +00000048@100120 +0000000a@100121 +0000000c@100123 +0000000e@100124 +00000008@100126 +0000000a@100127 +0000000c@100129 +0000000e@100130 +00000018@100132 +00000010@100133 +00000012@100134 +00000010@100135 +00000000@100136 +00000002@100137 +00000000@100138 +00000002@100140 +00000000@100141 +00000020@100142 +00000022@100143 +0000000c@100145 +0000000e@100146 +0000002c@100148 +0000002e@100149 +00000024@100151 +00000026@100152 +0000002c@100154 +0000002e@100155 +00000000@100157 +00000002@100158 +00000020@100160 +00000022@100162 +00000020@100163 +00000000@100164 +00000002@100165 +00000000@100166 +00000018@100167 +0000001a@100168 +00000018@100169 +0000000c@100170 +0000000e@100171 +0000000c@100173 +0000000e@100174 +00000024@100176 +00000026@100177 +0000002c@100179 +0000002e@100180 +00000000@100182 +00000002@100183 +00000000@100185 +00000002@100186 +00000034@100188 +00000036@100190 +0000003c@100191 +0000000c@100192 +0000000e@100193 +0000000c@100194 +00000004@100195 +00000006@100196 +00000004@100197 +00000020@100198 +00000022@100199 +00000014@100201 +00000016@100202 +0000002c@100204 +0000002e@100205 +00000018@100207 +0000001a@100208 +00000020@100210 +00000022@100211 +0000003c@100213 +0000003e@100214 +00000028@100216 +0000002a@100217 +00000028@100219 +00000004@100220 +00000006@100221 +00000004@100222 +00000034@100223 +00000036@100224 +00000034@100225 +00000004@100226 +00000006@100227 +00000008@100229 +0000000a@100230 +0000001c@100232 +0000001e@100233 +00000020@100235 +00000022@100236 +00000004@100238 +00000006@100239 +00000010@100241 +00000012@100242 +00000004@100244 +00000006@100246 +00000034@100247 +00000030@100248 +00000032@100249 +00000030@100250 +00000000@100251 +00000002@100252 +00000000@100253 +0000000c@100254 +0000000e@100255 +0000000c@100256 +00000008@100257 +0000000a@100258 +00000008@100260 +0000000a@100261 +00000008@100263 +0000000a@100264 +00000008@100266 +0000000a@100267 +00000010@100269 +00000012@100270 +00000000@100272 +00000002@100273 +00000034@100275 +00000036@100277 +00000034@100278 +00000008@100279 +0000000a@100280 +00000008@100281 +00000000@100282 +00000002@100283 +00000000@100284 +00000002@100286 +0000003c@100288 +0000003e@100289 +0000003c@100291 +0000003e@100292 +00000008@100294 +0000000a@100295 +00000010@100297 +00000012@100298 +00000008@100300 +0000000a@100301 +00000014@100303 +00000016@100305 +00000014@100306 +00000004@100307 +00000006@100308 +00000004@100309 +00000030@100310 +00000032@100311 +00000030@100312 +00000024@100313 +00000026@100314 +00000014@100316 +00000016@100317 +00000010@100319 +00000012@100320 +00000000@100322 +00000002@100323 +00000008@100325 +0000000a@100326 +00000028@100328 +0000002a@100329 +00000024@100331 +00000004@100332 +00000006@100333 +00000034@100334 +00000030@100335 +00000032@100336 +00000030@100337 +00000034@100338 +00000036@100339 +00000034@100340 +00000008@100341 +0000000a@100342 +00000010@100344 +00000012@100345 +0000000c@100347 +0000000e@100348 +00000004@100350 +00000006@100351 +00000028@100353 +0000002a@100354 +00000010@100356 +00000012@100357 +00000000@100359 +00000002@100360 +0000000c@100362 +0000000e@100364 +0000000c@100365 +0000002c@100366 +0000002e@100367 +0000002c@100368 +00000018@100369 +0000001a@100370 +00000020@100372 +00000022@100373 +00000024@100375 +00000026@100376 +00000030@100378 +00000032@100379 +00000000@100381 +00000002@100382 +00000004@100384 +00000006@100385 +0000003c@100387 +0000003e@100388 +0000003c@100390 +0000003e@100392 +0000003c@100393 +00000008@100394 +0000000a@100395 +00000008@100396 +0000000c@100397 +0000000e@100398 +0000000c@100399 +00000004@100400 +00000006@100401 +00000030@100403 +00000032@100404 +00000010@100406 +00000012@100407 +00000000@100409 +00000002@100410 +0000003c@100412 +0000003e@100413 +0000002c@100415 +0000002e@100416 +00000024@100418 +00000004@100419 +00000006@100420 +00000004@100421 +00000034@100422 +00000036@100423 +00000034@100424 +00000004@100425 +00000006@100426 +00000004@100427 +0000002c@100428 +0000002e@100429 +0000001c@100431 +0000001e@100432 +00000020@100434 +00000022@100435 +00000004@100437 +00000006@100438 +00000034@100440 +00000036@100441 +00000004@100443 +00000006@100444 +00000030@100446 +00000032@100448 +00000030@100449 +00000000@100450 +00000002@100451 +00000000@100452 +0000000c@100453 +0000000e@100454 +0000000c@100455 +00000008@100456 +0000000a@100457 +0000000c@100459 +0000000e@100460 +00000008@100462 +0000000a@100463 +0000002c@100465 +0000002e@100466 +00000010@100468 +00000012@100469 +00000000@100471 +00000002@100472 +00000034@100474 +00000036@100475 +0000003c@100477 +0000002c@100478 +0000002e@100479 +0000002c@100480 +00000000@100481 +00000002@100482 +00000000@100483 +00000002@100485 +00000008@100487 +0000000a@100488 +00000014@100490 +00000016@100491 +00000004@100493 +00000006@100494 +00000030@100496 +00000032@100497 +00000024@100499 +00000026@100500 +00000034@100502 +00000036@100503 +00000034@100505 +00000010@100506 +00000012@100507 +00000010@100508 +00000000@100509 +00000002@100510 +00000000@100511 +00000008@100512 +0000000a@100513 +00000008@100514 +0000002c@100515 +0000002e@100516 +00000004@100518 +00000006@100519 +00000030@100521 +00000032@100522 +00000004@100524 +00000006@100525 +00000028@100527 +0000002a@100528 +00000010@100530 +00000012@100531 +0000001c@100533 +0000000c@100534 +0000000e@100535 +0000000c@100536 +00000020@100537 +00000022@100538 +00000020@100539 +0000000c@100540 +0000000e@100541 +0000000c@100542 +00000004@100543 +00000006@100544 +00000034@100546 +00000036@100547 +00000024@100549 +00000026@100550 +0000002c@100552 +0000002e@100553 +00000000@100555 +00000002@100556 +00000000@100558 +00000002@100559 +00000030@100561 +00000032@100563 +00000038@100564 +0000002c@100565 +0000002e@100566 +0000002c@100567 +00000004@100568 +00000006@100569 +00000004@100570 +00000020@100571 +00000022@100572 +00000014@100574 +00000016@100575 +00000028@100577 +0000002a@100578 +00000018@100580 +0000001a@100581 +00000000@100583 +00000002@100584 +00000008@100586 +0000000a@100587 +00000024@100589 +00000026@100591 +0000003c@100592 +00000038@100593 +0000003a@100594 +00000038@100595 +00000000@100596 +00000002@100597 +00000000@100598 +00000004@100599 +00000006@100600 +0000001c@100602 +0000001e@100603 +00000010@100605 +00000012@100606 +0000002c@100608 +0000002e@100609 +0000003c@100611 +0000003e@100612 +00000028@100614 +0000002a@100615 +00000004@100617 +00000006@100618 +00000034@100620 +00000036@100622 +00000034@100623 +00000004@100624 +00000006@100625 +00000004@100626 +00000008@100627 +0000000a@100628 +0000001c@100630 +0000001e@100631 +00000020@100633 +00000022@100634 +00000014@100636 +00000016@100637 +00000008@100639 +0000000a@100640 +0000002c@100642 +0000002e@100643 +00000008@100645 +0000000a@100646 +00000024@100648 +00000026@100650 +0000002c@100651 +00000008@100652 +0000000a@100653 +00000008@100654 +00000000@100655 +00000002@100656 +00000000@100657 +00000020@100658 +00000022@100659 +00000004@100661 +00000006@100662 +00000014@100664 +00000016@100665 +00000010@100667 +00000012@100668 +00000024@100670 +00000026@100671 +0000003c@100673 +0000003e@100674 +00000020@100676 +00000022@100678 +00000020@100679 +00000004@100680 +00000006@100681 +00000004@100682 +00000034@100683 +00000036@100684 +00000034@100685 +00000000@100686 +00000002@100687 +00000000@100689 +00000002@100690 +0000001c@100692 +0000001e@100693 +00000020@100695 +00000022@100696 +00000010@100698 +00000011@100700 +00000031@100701 +00000030@100731 +00000000@100732 +00000002@100733 +00000000@100735 +00000002@100737 +00000000@100738 +00000002@100740 +00000000@100741 +00000004@100742 +00000006@100743 +00000004@100744 +00000028@100745 +0000002a@100746 +00000020@100748 +00000022@100749 +00000028@100751 +0000002a@100752 +00000014@100754 +00000016@100755 +00000028@100757 +0000002a@100758 +00000014@100760 +00000016@100761 +00000028@100763 +0000002a@100765 +0000001c@100766 +00000014@100767 +00000016@100768 +00000014@100769 +0000003c@100770 +0000003e@100771 +0000003c@100772 +00000028@100773 +0000002a@100774 +00000034@100776 +00000036@100777 +0000000c@100779 +0000000e@100780 +0000001c@100782 +0000001e@100783 +00000040@100785 +00000002@100786 +00000010@100788 +00000012@100789 +0000001c@100791 +0000001e@100793 +0000001c@100794 +0000003c@100795 +0000003e@100796 +0000003c@100797 +00000038@100798 +0000003a@100799 +00000038@100800 +0000003a@100802 +0000001c@100804 +0000001e@100805 +00000000@100807 +00000002@100808 +00000000@100810 +00000002@100811 +00000000@100813 +00000002@100814 +00000000@100816 +00000002@100817 +00000004@100819 +00000005@100821 +00000035@100822 +00000034@100852 +00000004@100853 +00000000@100854 +00000002@100855 +00000000@100856 +00000002@100858 +00000000@100859 +00000004@100860 +00000006@100861 +00000030@100863 +00000032@100864 +00000030@100866 +00000032@100867 +00000000@100869 +00000002@100870 +00000028@100872 +0000002a@100873 +00000014@100875 +00000016@100876 +00000028@100878 +0000002a@100880 +0000001c@100881 +00000014@100882 +00000016@100883 +00000030@100884 +00000028@100885 +0000002a@100886 +00000028@100887 +00000014@100888 +00000016@100889 +00000010@100891 +00000012@100892 +00000000@100894 +00000002@100895 +0000002c@100897 +0000002e@100898 +00000008@100900 +0000000a@100901 +00000020@100903 +00000022@100904 +00000000@100906 +00000002@100907 +00000000@100909 +00000002@100911 +00000000@100912 +00000020@100913 +00000022@100914 +00000020@100915 +00000030@100916 +00000032@100917 +00000030@100918 +00000000@100919 +00000002@100920 +0000000c@100922 +0000000e@100923 +00000000@100925 +00000002@100926 +00000020@100928 +00000022@100929 +00000000@100931 +00000002@100932 +00000000@100934 +00000002@100935 +00000000@100937 +00000002@100939 +00000000@100940 +00000010@100941 +00000012@100942 +00000010@100943 +00000004@100944 +00000006@100945 +00000004@100946 +00000014@100947 +00000016@100948 +00000020@100950 +00000022@100951 +0000003c@100953 +0000003e@100954 +00000020@100956 +00000022@100957 +00000004@100959 +00000006@100960 +00000034@100962 +00000036@100963 +00000030@100965 +00000000@100966 +00000002@100967 +00000000@100968 +00000002@100970 +00000000@100971 +0000001c@100972 +0000001e@100973 +0000001c@100974 +00000020@100975 +00000022@100976 +00000000@100978 +00000002@100979 +00000010@100981 +00000012@100982 +00000004@100984 +00000006@100985 +00000030@100987 +00000032@100988 +00000000@100990 +00000002@100991 +0000000c@100993 +0000000e@100994 +0000000c@100996 +00000008@100997 +0000000a@100998 +00000008@100999 +00000000@101000 +00000002@101001 +00000000@101002 +00000008@101003 +0000000a@101004 +00000000@101006 +00000002@101007 +00000010@101009 +00000012@101010 +00000000@101012 +00000002@101013 +00000030@101015 +00000032@101016 +00000000@101018 +00000002@101019 +00000000@101021 +00000002@101022 +00000000@101024 +00000002@101026 +00000000@101027 +0000003c@101028 +0000003e@101029 +0000003c@101030 +0000003e@101032 +0000003c@101033 +00000008@101034 +0000000a@101035 +00000010@101037 +00000012@101038 +00000008@101040 +0000000a@101041 +00000014@101043 +00000016@101044 +00000004@101046 +00000006@101047 +00000030@101049 +00000032@101050 +00000020@101052 +00000022@101054 +00000030@101055 +00000014@101056 +00000016@101057 +00000014@101058 +00000010@101059 +00000012@101060 +00000010@101061 +00000000@101062 +00000002@101063 +00000008@101065 +0000000a@101066 +00000020@101068 +00000022@101069 +00000004@101071 +00000006@101072 +00000030@101074 +00000032@101075 +00000030@101077 +00000032@101078 +00000000@101080 +00000002@101082 +00000010@101083 +00000012@101085 +00000010@101086 +0000000c@101087 +0000000e@101088 +0000000c@101089 +00000000@101090 +00000002@101091 +00000020@101093 +00000022@101094 +00000010@101096 +00000012@101097 +00000000@101099 +00000002@101100 +0000000c@101102 +0000000e@101103 +00000024@101105 +00000026@101106 +00000018@101108 +0000001a@101109 +00000038@101111 +00000020@101112 +00000022@101113 +00000020@101114 +00000022@101116 +00000020@101117 +00000030@101118 +00000032@101119 +00000030@101120 +00000000@101121 +00000002@101122 +00000004@101124 +00000006@101125 +0000003c@101127 +0000003e@101128 +0000003c@101130 +0000003e@101131 +00000008@101133 +0000000a@101134 +00000004@101136 +00000006@101137 +00000004@101139 +00000000@101140 +00000002@101141 +00000000@101142 +00000030@101143 +00000032@101144 +00000030@101145 +00000010@101146 +00000012@101147 +00000010@101148 +00000000@101149 +00000002@101150 +0000003c@101152 +0000003e@101153 +00000024@101155 +00000026@101156 +00000004@101158 +00000006@101159 +00000034@101161 +00000036@101162 +00000000@101164 +00000002@101165 +00000024@101167 +00000026@101169 +0000002c@101170 +0000001c@101171 +0000001e@101172 +0000001c@101173 +00000020@101174 +00000022@101175 +00000020@101176 +00000000@101177 +00000002@101178 +00000034@101180 +00000036@101181 +00000004@101183 +00000006@101184 +00000030@101186 +00000032@101187 +00000000@101189 +00000002@101190 +0000000c@101192 +0000000e@101193 +00000008@101195 +0000000a@101197 +00000008@101198 +00000004@101199 +00000006@101200 +00000004@101201 +00000008@101202 +0000000a@101203 +00000008@101204 +00000024@101205 +00000026@101206 +00000010@101208 +00000012@101209 +00000000@101211 +00000002@101212 +00000030@101214 +00000032@101215 +00000024@101217 +00000026@101218 +00000000@101220 +00000002@101221 +00000000@101223 +00000002@101225 +00000008@101226 +0000000a@101228 +00000008@101229 +00000014@101230 +00000016@101231 +00000014@101232 +00000004@101233 +00000006@101234 +00000030@101236 +00000032@101237 +00000020@101239 +00000022@101240 +00000034@101242 +00000036@101243 +00000010@101245 +00000012@101246 +00000000@101248 +00000002@101249 +00000008@101251 +0000000a@101252 +00000020@101254 +00000024@101255 +00000026@101256 +00000024@101257 +00000004@101258 +00000006@101259 +00000004@101260 +00000030@101261 +00000032@101262 +00000030@101263 +00000000@101264 +00000002@101265 +00000004@101267 +00000006@101268 +00000010@101270 +00000012@101271 +0000000c@101273 +0000000e@101274 +00000030@101276 +00000032@101277 +00000000@101279 +00000002@101280 +0000000c@101282 +0000000e@101284 +0000000c@101285 +00000008@101286 +0000000a@101287 +00000008@101288 +00000024@101289 +00000026@101290 +00000024@101291 +00000008@101292 +0000000a@101293 +00000000@101295 +00000002@101296 +00000000@101298 +00000002@101299 +00000034@101301 +00000036@101302 +00000004@101304 +00000006@101305 +00000014@101307 +00000016@101308 +00000000@101310 +00000002@101312 +00000008@101313 +0000002c@101314 +0000002e@101315 +0000002c@101316 +00000034@101317 +00000036@101318 +00000034@101319 +00000010@101320 +00000012@101321 +00000018@101323 +0000001a@101324 +00000000@101326 +00000002@101327 +00000008@101329 +0000000a@101330 +0000002c@101332 +0000002e@101333 +00000040@101335 +00000002@101336 +0000002c@101338 +0000002e@101339 +0000002c@101341 +00000000@101342 +00000002@101343 +00000008@101344 +0000002c@101345 +0000002e@101346 +0000002c@101347 +00000034@101348 +00000036@101349 +00000030@101351 +00000032@101352 +00000000@101354 +00000002@101355 +00000010@101357 +00000012@101358 +00000018@101360 +0000001a@101361 +00000000@101363 +00000002@101364 +00000000@101366 +00000002@101367 +00000038@101369 +0000003a@101371 +00000038@101372 +00000034@101373 +00000036@101374 +00000034@101375 +00000000@101376 +00000002@101377 +00000000@101378 +00000002@101380 +00000038@101382 +0000003a@101383 +00000000@101385 +00000002@101386 +00000000@101388 +00000002@101389 +00000000@101391 +00000002@101392 +00000038@101394 +0000003a@101395 +00000024@101397 +00000004@101398 +00000006@101399 +00000004@101400 +00000000@101401 +00000002@101402 +00000000@101403 +00000002@101405 +00000000@101406 +00000038@101407 +0000003a@101408 +00000000@101410 +00000002@101411 +00000020@101413 +00000022@101414 +00000000@101416 +00000002@101417 +0000002c@101419 +0000002e@101420 +00000014@101422 +00000016@101423 +00000000@101425 +00000002@101426 +00000000@101428 +00000002@101430 +00000000@101431 +00000028@101432 +0000002a@101433 +00000028@101434 +0000003c@101435 +0000003e@101436 +00000000@101438 +00000002@101439 +00000020@101441 +00000022@101442 +00000010@101444 +00000012@101445 +0000002c@101447 +0000002e@101448 +00000004@101450 +00000006@101451 +0000002c@101453 +0000002e@101454 +0000003c@101456 +00000018@101457 +0000001a@101458 +00000018@101459 +00000020@101460 +00000022@101461 +00000020@101462 +00000000@101463 +00000002@101464 +00000000@101466 +00000002@101467 +00000008@101469 +0000000a@101470 +0000002c@101472 +0000002e@101473 +00000040@101475 +00000002@101476 +00000010@101478 +00000012@101479 +00000034@101481 +00000036@101482 +00000034@101484 +00000000@101485 +00000002@101486 +00000000@101487 +00000002@101489 +00000000@101490 +00000018@101491 +0000001a@101492 +00000018@101493 +00000010@101494 +00000012@101495 +0000002c@101497 +0000002e@101498 +00000004@101500 +00000006@101501 +0000002c@101503 +0000002e@101504 +00000018@101506 +0000001a@101507 +00000020@101509 +00000022@101510 +00000034@101512 +00000014@101513 +00000016@101514 +0000001c@101515 +00000028@101516 +0000002a@101517 +00000028@101518 +00000004@101519 +00000006@101520 +00000004@101521 +00000038@101522 +0000003a@101523 +00000000@101525 +00000002@101526 +00000014@101528 +00000016@101529 +00000010@101531 +00000012@101532 +0000002c@101534 +0000002e@101535 +00000004@101537 +00000006@101538 +00000028@101540 +0000002a@101542 +00000038@101543 +00000018@101544 +0000001a@101545 +00000018@101546 +00000000@101547 +00000002@101548 +00000000@101549 +00000002@101551 +00000014@101553 +00000016@101554 +00000010@101556 +00000012@101557 +0000002c@101559 +0000002e@101560 +00000040@101562 +00000002@101563 +00000004@101565 +00000006@101566 +00000008@101568 +0000000a@101569 +00000008@101571 +0000000a@101573 +00000008@101574 +00000004@101575 +00000006@101576 +00000004@101577 +00000028@101578 +0000002a@101579 +00000018@101581 +0000001a@101582 +00000000@101584 +00000002@101585 +00000000@101587 +00000002@101588 +00000030@101590 +00000032@101591 +00000008@101593 +0000000a@101594 +00000000@101596 +00000002@101597 +00000038@101599 +0000003c@101600 +0000003e@101601 +0000003c@101602 +0000003e@101604 +0000003c@101605 +0000003e@101607 +0000003c@101608 +0000001c@101609 +0000001e@101610 +00000018@101612 +0000001a@101613 +00000014@101615 +00000016@101616 +0000003c@101618 +0000003e@101619 +0000003c@101621 +0000003e@101622 +0000002c@101624 +0000002e@101625 +00000034@101627 +00000036@101629 +00000034@101630 +00000010@101631 +00000012@101632 +00000010@101633 +00000018@101634 +0000001a@101635 +00000018@101636 +00000020@101637 +00000021@101638 +00000031@101640 +00000030@101669 +00000000@101671 +00000002@101672 +00000000@101674 +00000002@101675 +00000000@101677 +00000002@101678 +00000004@101680 +00000006@101681 +00000028@101683 +0000002a@101684 +00000020@101686 +00000022@101688 +00000028@101689 +0000002a@101691 +00000028@101692 +00000014@101693 +00000016@101694 +00000028@101696 +0000002a@101697 +00000014@101699 +00000016@101700 +00000028@101702 +0000002a@101703 +00000014@101705 +00000016@101706 +0000003c@101708 +0000003e@101709 +00000028@101711 +0000002a@101712 +00000038@101714 +00000034@101715 +00000036@101716 +00000034@101717 +0000000c@101718 +0000000e@101719 +0000000c@101720 +0000001c@101721 +0000001e@101722 +0000001c@101723 +00000000@101724 +00000002@101725 +00000010@101727 +00000012@101728 +0000001c@101730 +0000001e@101731 +0000003c@101733 +0000003e@101734 +00000038@101736 +0000003a@101737 +00000038@101739 +0000003a@101740 +0000003c@101742 +0000001c@101743 +0000001e@101744 +0000001c@101745 +00000000@101746 +00000002@101747 +00000000@101748 +00000002@101750 +00000000@101751 +00000002@101753 +00000000@101755 +00000002@101756 +00000004@101758 +00000005@101759 +00000035@101761 +00000034@101791 +00000000@101792 +00000002@101793 +00000000@101795 +00000002@101796 +00000004@101798 +00000006@101799 +00000034@101801 +00000036@101803 +0000003c@101804 +0000000c@101805 +0000000e@101806 +0000002c@101807 +00000020@101808 +00000022@101809 +00000020@101810 +00000028@101811 +0000002a@101812 +00000014@101814 +00000016@101815 +00000028@101817 +0000002a@101818 +00000014@101820 +00000016@101821 +00000028@101823 +0000002a@101824 +00000014@101826 +00000016@101827 +00000030@101829 +00000020@101830 +00000022@101831 +00000020@101832 +00000000@101833 +00000002@101834 +00000000@101835 +0000002c@101836 +0000002e@101837 +0000002c@101838 +00000034@101839 +00000036@101840 +00000030@101842 +00000032@101843 +00000000@101845 +00000002@101846 +00000010@101848 +00000012@101849 +00000018@101851 +0000001a@101852 +00000030@101854 +00000032@101855 +00000030@101857 +00000000@101858 +00000002@101859 +00000000@101860 +00000002@101862 +00000000@101863 +0000000c@101864 +0000000e@101865 +0000000c@101866 +00000000@101867 +00000002@101868 +00000020@101870 +00000022@101871 +00000004@101873 +00000006@101874 +00000000@101876 +00000002@101877 +00000000@101879 +00000002@101880 +00000000@101882 +00000002@101883 +00000010@101885 +00000012@101887 +00000010@101888 +00000000@101889 +00000002@101890 +00000000@101891 +00000002@101893 +00000000@101894 +00000020@101895 +00000022@101896 +00000010@101898 +00000012@101899 +00000000@101901 +00000002@101902 +00000020@101904 +00000022@101905 +00000000@101907 +00000002@101908 +0000002c@101910 +0000002e@101911 +00000014@101913 +00000016@101914 +00000010@101916 +00000000@101917 +00000002@101918 +00000000@101919 +00000002@101921 +00000000@101922 +00000028@101923 +0000002a@101924 +00000028@101925 +0000003c@101926 +0000003e@101927 +00000000@101929 +00000002@101930 +00000030@101932 +00000032@101933 +00000048@101935 +0000000a@101936 +00000000@101938 +00000002@101939 +0000003c@101941 +0000003e@101942 +0000003c@101944 +0000003e@101946 +0000003c@101947 +0000003e@101949 +0000003c@101950 +0000001c@101951 +0000001e@101952 +0000001c@101953 +00000010@101954 +00000012@101955 +00000004@101957 +00000006@101958 +0000003c@101960 +0000003e@101961 +0000003c@101963 +0000003e@101964 +00000040@101966 +00000002@101967 +00000030@101969 +00000032@101970 +00000038@101972 +00000008@101973 +0000000a@101974 +00000008@101975 +00000000@101976 +00000002@101977 +00000000@101978 +0000003c@101979 +0000003e@101980 +0000003c@101981 +0000003e@101983 +0000003c@101985 +0000003e@101986 +0000001c@101988 +0000001e@101989 +00000014@101991 +00000016@101992 +00000018@101994 +0000001a@101995 +0000003c@101997 +0000003e@101998 +0000003c@102000 +0000003e@102001 +0000003c@102003 +00000000@102004 +00000002@102005 +00000000@102006 +00000030@102007 +00000032@102008 +00000030@102009 +00000008@102010 +0000000a@102011 +00000000@102013 +00000002@102014 +00000000@102016 +00000002@102017 +00000024@102019 +00000026@102020 +00000008@102022 +0000000a@102023 +00000004@102025 +00000006@102026 +0000003c@102028 +0000003e@102029 +0000003c@102031 +0000003e@102033 +0000003c@102034 +0000003e@102036 +0000003c@102037 +0000001c@102038 +0000001e@102039 +0000001c@102040 +00000018@102041 +0000001a@102042 +00000030@102044 +00000032@102045 +0000003c@102047 +0000003e@102048 +0000003c@102050 +0000003e@102051 +00000040@102053 +00000002@102054 +00000030@102056 +00000032@102057 +00000038@102059 +00000008@102060 +0000000a@102061 +00000008@102062 +00000000@102063 +00000002@102064 +00000000@102065 +0000003c@102066 +0000003e@102067 +0000003c@102068 +0000003e@102070 +0000003c@102072 +0000003e@102073 +0000001c@102075 +0000001e@102076 +00000008@102078 +0000000a@102079 +00000004@102081 +00000006@102082 +0000003c@102084 +0000003e@102085 +0000003c@102087 +0000003e@102089 +0000003c@102090 +00000004@102091 +00000006@102092 +00000004@102093 +00000000@102094 +00000002@102095 +00000000@102096 +00000010@102097 +00000012@102098 +0000002c@102100 +0000002e@102101 +00000004@102103 +00000006@102104 +0000002c@102106 +0000002e@102107 +00000018@102109 +0000001a@102110 +00000020@102112 +00000022@102113 +00000034@102115 +00000014@102116 +00000016@102117 +0000003c@102118 +00000028@102119 +0000002a@102120 +00000028@102121 +00000004@102122 +00000006@102123 +00000004@102124 +00000030@102125 +00000032@102126 +00000000@102128 +00000002@102129 +00000038@102131 +0000003a@102132 +00000010@102134 +00000012@102135 +0000002c@102137 +0000002e@102138 +00000004@102140 +00000006@102141 +00000028@102143 +0000002a@102145 +00000038@102146 +00000018@102147 +0000001a@102148 +00000018@102149 +00000000@102150 +00000002@102151 +00000000@102152 +00000002@102154 +00000008@102156 +0000000a@102157 +00000008@102159 +0000000a@102160 +00000000@102162 +00000002@102163 +00000000@102165 +00000002@102166 +00000010@102168 +00000012@102169 +00000008@102171 +0000000a@102173 +00000008@102174 +00000004@102175 +00000006@102176 +00000004@102177 +00000000@102178 +00000002@102179 +00000000@102180 +00000002@102182 +0000003c@102184 +0000003e@102185 +00000000@102187 +00000002@102188 +00000004@102190 +00000006@102191 +00000030@102193 +00000032@102194 +0000003c@102196 +0000003e@102197 +00000020@102199 +00000022@102200 +00000020@102202 +00000000@102203 +00000002@102204 +00000000@102205 +00000030@102206 +00000032@102207 +00000030@102208 +00000010@102209 +00000012@102210 +0000002c@102212 +0000002e@102213 +0000003c@102215 +0000003e@102216 +00000028@102218 +0000002a@102219 +00000008@102221 +0000000a@102222 +00000008@102224 +0000000a@102225 +00000014@102227 +00000016@102228 +0000001c@102230 +00000008@102231 +0000000a@102232 +00000008@102233 +00000000@102234 +00000002@102235 +00000000@102236 +00000002@102238 +00000004@102240 +00000006@102241 +00000028@102243 +0000002a@102244 +00000018@102246 +0000001a@102247 +00000000@102249 +00000002@102250 +00000030@102252 +00000032@102253 +00000000@102255 +00000002@102256 +00000010@102258 +00000012@102260 +00000010@102261 +00000018@102262 +0000001a@102263 +00000018@102264 +00000000@102265 +00000002@102266 +00000000@102267 +00000028@102268 +0000002a@102269 +00000010@102271 +00000012@102272 +0000002c@102274 +0000002e@102275 +00000004@102277 +00000006@102278 +0000002c@102280 +0000002e@102281 +00000018@102283 +0000001a@102284 +00000030@102286 +00000020@102287 +00000022@102288 +00000020@102289 +00000000@102290 +00000002@102291 +00000000@102292 +00000002@102294 +00000000@102295 +00000008@102296 +0000000a@102297 +0000002c@102299 +0000002e@102300 +0000003c@102302 +0000003e@102303 +0000002c@102305 +0000002e@102306 +00000034@102308 +00000036@102309 +00000004@102311 +00000006@102312 +00000000@102314 +00000002@102316 +00000008@102317 +0000000a@102319 +00000008@102320 +0000000a@102322 +00000008@102323 +00000000@102324 +00000002@102325 +00000000@102327 +00000002@102328 +00000010@102330 +00000012@102331 +00000008@102333 +0000000a@102334 +00000004@102336 +00000006@102337 +00000000@102339 +00000002@102340 +00000000@102342 +00000002@102344 +00000008@102345 +0000003c@102346 +0000003e@102347 +0000003c@102348 +00000000@102349 +00000002@102350 +00000000@102351 +00000008@102352 +0000000a@102353 +00000014@102355 +00000016@102356 +0000003c@102358 +0000003e@102359 +00000020@102361 +00000022@102362 +00000000@102364 +00000002@102365 +00000018@102367 +0000001a@102368 +00000010@102370 +00000012@102372 +00000018@102373 +0000002c@102374 +0000002e@102375 +0000002c@102376 +0000003c@102377 +0000003e@102378 +0000003c@102379 +00000028@102380 +0000002a@102381 +00000008@102383 +0000000a@102384 +00000008@102386 +0000000a@102387 +00000014@102389 +00000016@102390 +00000008@102392 +0000000a@102393 +00000000@102395 +00000002@102396 +00000000@102398 +00000002@102399 +00000000@102401 +00000004@102402 +00000006@102403 +00000004@102404 +00000028@102405 +0000002a@102406 +00000028@102407 +00000018@102408 +0000001a@102409 +00000000@102411 +00000002@102412 +00000030@102414 +00000032@102415 +00000000@102417 +00000002@102418 +00000010@102420 +00000012@102421 +00000018@102423 +0000001a@102424 +00000000@102426 +00000002@102427 +0000000c@102429 +0000000e@102431 +0000000c@102432 +00000010@102433 +00000012@102434 +00000010@102435 +0000002c@102436 +0000002e@102437 +0000002c@102438 +00000004@102439 +00000006@102440 +0000002c@102442 +0000002e@102443 +00000018@102445 +0000001a@102446 +00000020@102448 +00000022@102449 +00000000@102451 +00000002@102452 +00000000@102454 +00000002@102455 +00000008@102457 +0000000a@102459 +00000008@102460 +0000002c@102461 +0000002e@102462 +0000002c@102463 +0000003c@102464 +0000003e@102465 +0000003c@102466 +0000002c@102467 +0000002e@102468 +00000034@102470 +00000036@102471 +00000004@102473 +00000006@102474 +00000034@102476 +00000036@102477 +0000003c@102479 +0000003e@102480 +00000038@102482 +0000003a@102483 +0000001c@102485 +0000001e@102486 +0000003c@102488 +00000030@102489 +00000032@102490 +00000030@102491 +00000000@102492 +00000002@102493 +00000000@102494 +00000010@102495 +00000012@102496 +00000018@102498 +0000001a@102499 +0000002c@102501 +0000002e@102502 +00000030@102504 +00000032@102505 +00000000@102507 +00000002@102508 +0000000c@102510 +0000000e@102511 +00000000@102513 +00000002@102514 +00000020@102516 +00000022@102518 +00000020@102519 +00000004@102520 +00000006@102521 +00000004@102522 +00000000@102523 +00000002@102524 +00000030@102526 +00000032@102527 +00000000@102529 +00000002@102530 +00000000@102532 +00000002@102533 +0000000c@102535 +0000000e@102536 +00000000@102538 +00000002@102539 +00000020@102541 +00000022@102542 +00000004@102544 +00000006@102546 +00000004@102547 +00000000@102548 +00000002@102549 +00000000@102550 +00000020@102551 +00000022@102552 +00000020@102553 +00000000@102554 +00000002@102555 +0000002c@102557 +0000002e@102558 +00000014@102560 +00000016@102561 +00000020@102563 +00000022@102564 +00000008@102566 +0000000a@102567 +0000002c@102569 +0000002e@102570 +00000020@102572 +00000000@102573 +00000002@102574 +00000000@102575 +00000001@102577 +00000031@102578 +00000030@102608 +00000000@102610 +00000002@102611 +00000000@102613 +00000002@102614 +00000000@102616 +00000002@102617 +00000004@102619 +00000006@102620 +00000028@102622 +0000002a@102623 +00000020@102625 +00000022@102626 +00000028@102628 +0000002a@102629 +00000014@102631 +00000016@102633 +00000030@102634 +00000028@102635 +0000002a@102636 +00000038@102637 +00000014@102638 +00000016@102639 +00000014@102640 +00000028@102641 +0000002a@102642 +00000014@102644 +00000016@102645 +0000003c@102647 +0000003e@102648 +00000028@102650 +0000002a@102651 +00000034@102653 +00000036@102654 +0000000c@102656 +0000000e@102657 +0000001c@102659 +0000001e@102661 +0000001c@102662 +00000000@102663 +00000002@102664 +00000000@102665 +00000010@102666 +00000012@102667 +00000010@102668 +0000001c@102669 +0000001e@102670 +0000003c@102672 +0000003e@102673 +00000038@102675 +0000003a@102676 +00000038@102678 +0000003a@102679 +0000001c@102681 +0000001e@102682 +00000040@102684 +00000002@102685 +00000000@102687 +00000002@102688 +00000000@102690 +00000002@102692 +00000000@102693 +00000002@102695 +00000000@102696 +00000004@102697 +00000005@102698 +00000035@102700 +00000034@102729 +00000000@102731 +00000002@102732 +00000000@102734 +00000002@102735 +00000004@102737 +00000006@102738 +00000034@102740 +00000036@102741 +0000002c@102743 +0000002e@102744 +00000000@102746 +00000002@102748 +00000028@102749 +0000002a@102751 +00000038@102752 +00000014@102753 +00000016@102754 +00000014@102755 +00000028@102756 +0000002a@102757 +00000014@102759 +00000016@102760 +00000028@102762 +0000002a@102763 +00000014@102765 +00000016@102766 +00000000@102768 +00000002@102769 +00000000@102771 +00000002@102772 +00000028@102774 +0000002a@102776 +00000028@102777 +0000003c@102778 +0000003e@102779 +0000003c@102780 +00000000@102781 +00000002@102782 +00000000@102783 +00000008@102784 +0000000a@102785 +00000004@102787 +00000006@102788 +00000030@102790 +00000032@102791 +0000000c@102793 +0000000e@102794 +00000024@102796 +00000026@102797 +00000018@102799 +0000001a@102800 +00000000@102802 +00000002@102804 +00000018@102805 +0000003c@102806 +0000003e@102807 +0000003c@102808 +0000002c@102809 +0000002e@102810 +0000002c@102811 +00000004@102812 +00000006@102813 +00000034@102815 +00000036@102816 +00000004@102818 +00000006@102819 +00000028@102821 +0000002a@102822 +0000001c@102824 +0000001e@102825 +00000040@102827 +00000002@102828 +00000000@102830 +00000002@102832 +00000018@102833 +0000001a@102835 +00000018@102836 +00000010@102837 +00000012@102838 +00000010@102839 +0000002c@102840 +0000002e@102841 +0000003c@102843 +0000003e@102844 +00000028@102846 +0000002a@102847 +00000004@102849 +00000006@102850 +00000034@102852 +00000036@102853 +00000004@102855 +00000006@102856 +00000008@102858 +0000000a@102859 +00000018@102861 +0000001c@102862 +0000001e@102863 +0000001c@102864 +00000020@102865 +00000022@102866 +00000020@102867 +00000022@102869 +00000020@102871 +00000022@102872 +00000008@102874 +0000000a@102875 +00000004@102877 +00000006@102878 +00000000@102880 +00000002@102881 +00000024@102883 +00000026@102884 +00000000@102886 +00000002@102887 +00000004@102889 +00000006@102891 +00000004@102892 +00000014@102893 +00000016@102894 +00000014@102895 +00000008@102896 +0000000a@102897 +00000008@102898 +00000004@102899 +00000006@102900 +00000020@102902 +00000022@102903 +00000024@102905 +00000026@102906 +00000008@102908 +0000000a@102909 +00000000@102911 +00000002@102912 +00000000@102914 +00000002@102915 +0000000c@102917 +0000000e@102919 +0000000c@102920 +00000024@102921 +00000026@102922 +00000024@102923 +00000018@102924 +0000001a@102925 +00000018@102926 +00000020@102927 +00000022@102928 +00000034@102930 +00000036@102931 +00000004@102933 +00000006@102934 +00000014@102936 +00000016@102937 +00000000@102939 +00000002@102940 +0000002c@102942 +0000002e@102943 +00000034@102945 +00000036@102947 +00000034@102948 +00000010@102949 +00000012@102950 +00000010@102951 +00000018@102952 +0000001a@102953 +00000018@102954 +00000000@102955 +00000002@102956 +00000008@102958 +0000000a@102959 +0000002c@102961 +0000002e@102962 +00000000@102964 +00000002@102965 +00000020@102967 +00000022@102968 +00000000@102970 +00000002@102971 +0000002c@102973 +0000002e@102974 +0000003c@102976 +00000034@102977 +00000036@102978 +00000034@102979 +00000030@102980 +00000032@102981 +00000030@102982 +00000000@102983 +00000002@102984 +00000010@102986 +00000012@102987 +00000018@102989 +0000001a@102990 +00000000@102992 +00000002@102993 +00000000@102995 +00000002@102996 +00000010@102998 +00000012@102999 +00000000@103001 +00000002@103002 +00000000@103004 +00000002@103006 +00000000@103007 +0000003c@103008 +0000003e@103009 +0000003c@103010 +00000010@103011 +00000012@103012 +00000010@103013 +00000000@103014 +00000002@103015 +00000020@103017 +00000022@103018 +00000000@103020 +00000002@103021 +0000002c@103023 +0000002e@103024 +00000014@103026 +00000016@103027 +00000020@103029 +00000022@103030 +00000028@103032 +00000008@103033 +0000000a@103034 +00000008@103035 +0000002c@103036 +0000002e@103037 +0000002c@103038 +00000000@103039 +00000002@103040 +00000000@103041 +00000002@103043 +00000000@103045 +00000002@103046 +00000028@103048 +0000002a@103049 +0000003c@103051 +0000003e@103052 +00000040@103054 +00000002@103055 +00000008@103057 +0000000a@103058 +00000004@103060 +00000006@103062 +00000034@103063 +00000030@103064 +00000032@103065 +00000030@103066 +0000000c@103067 +0000000e@103068 +0000000c@103069 +00000024@103070 +00000026@103071 +00000018@103073 +0000001a@103074 +00000000@103076 +00000002@103077 +0000003c@103079 +0000003e@103080 +0000002c@103082 +0000002e@103083 +00000004@103085 +00000006@103086 +00000034@103088 +00000036@103089 +00000034@103091 +00000004@103092 +00000006@103093 +0000000c@103094 +00000028@103095 +0000002a@103096 +00000028@103097 +0000001c@103098 +0000001e@103099 +0000001c@103100 +00000000@103101 +00000002@103102 +00000000@103104 +00000002@103105 +00000018@103107 +0000001a@103108 +00000010@103110 +00000012@103111 +0000002c@103113 +0000002e@103114 +0000003c@103116 +0000003e@103117 +00000038@103119 +00000028@103120 +0000002a@103121 +00000028@103122 +00000004@103123 +00000006@103124 +00000004@103125 +00000034@103126 +00000036@103127 +00000034@103128 +00000004@103129 +00000006@103130 +00000008@103132 +0000000a@103133 +0000001c@103135 +0000001e@103136 +00000020@103138 +00000022@103139 +00000020@103141 +00000022@103142 +00000028@103144 +0000002a@103145 +00000028@103147 +00000008@103148 +0000000a@103149 +00000008@103150 +00000004@103151 +00000006@103152 +00000004@103153 +00000000@103154 +00000002@103155 +00000000@103156 +00000024@103157 +00000026@103158 +00000000@103160 +00000002@103161 +00000004@103163 +00000006@103164 +00000014@103166 +00000016@103167 +00000008@103169 +0000000a@103170 +00000004@103172 +00000006@103173 +00000020@103175 +00000022@103177 +00000020@103178 +00000024@103179 +00000026@103180 +00000024@103181 +00000008@103182 +0000000a@103183 +00000008@103184 +00000000@103185 +00000002@103186 +00000000@103188 +00000002@103189 +0000000c@103191 +0000000e@103192 +00000024@103194 +00000026@103195 +00000018@103197 +0000001a@103198 +00000020@103200 +00000022@103201 +00000034@103203 +00000036@103204 +00000034@103206 +00000004@103207 +00000006@103208 +00000004@103209 +00000014@103210 +00000016@103211 +00000014@103212 +00000000@103213 +00000002@103214 +0000002c@103216 +0000002e@103217 +00000034@103219 +00000036@103220 +00000010@103222 +00000012@103223 +00000018@103225 +0000001a@103226 +00000000@103228 +00000002@103229 +00000008@103231 +0000000a@103232 +00000028@103234 +0000002c@103235 +0000002e@103236 +0000002c@103237 +00000000@103238 +00000002@103239 +00000000@103240 +00000020@103241 +00000022@103242 +00000000@103244 +00000002@103245 +0000002c@103247 +0000002e@103248 +00000034@103250 +00000036@103251 +00000030@103253 +00000032@103254 +00000000@103256 +00000002@103257 +00000010@103259 +00000012@103260 +00000018@103262 +0000001a@103264 +00000018@103265 +00000000@103266 +00000002@103267 +00000000@103268 +00000002@103270 +00000000@103271 +00000010@103272 +00000012@103273 +00000000@103275 +00000002@103276 +00000000@103278 +00000002@103279 +0000003c@103281 +0000003e@103282 +00000050@103284 +00000012@103285 +00000000@103287 +00000002@103288 +00000000@103290 +00000002@103292 +00000000@103293 +00000020@103294 +00000022@103295 +00000020@103296 +0000002c@103297 +0000002e@103298 +0000002c@103299 +00000014@103300 +00000016@103301 +0000003c@103303 +0000003e@103304 +0000003c@103306 +0000003e@103307 +0000003c@103309 +0000003e@103310 +0000001c@103312 +0000001e@103313 +00000024@103315 +00000026@103316 +00000034@103318 +00000036@103320 +00000034@103321 +0000003c@103322 +0000003e@103323 +0000003c@103324 +0000003e@103326 +0000003c@103327 +00000000@103328 +00000002@103329 +00000020@103331 +00000022@103332 +0000002c@103334 +0000002e@103335 +00000034@103337 +00000036@103338 +00000000@103340 +00000002@103341 +00000000@103343 +00000002@103344 +00000000@103346 +00000002@103348 +00000000@103349 +00000002@103351 +00000000@103352 +00000002@103354 +00000000@103355 +00000002@103357 +00000000@103359 +00000002@103360 +00000000@103362 +00000002@103363 +00000000@103365 +00000002@103366 +00000000@103368 +00000002@103369 +00000004@103371 +00000006@103372 +0000002c@103374 +0000002e@103375 +0000002c@103377 +0000002e@103379 +0000002c@103380 +0000001c@103381 +0000001e@103382 +0000001c@103383 +00000000@103384 +00000002@103385 +00000000@103386 +00000002@103388 +00000000@103390 +00000002@103391 +00000000@103393 +00000002@103394 +00000000@103396 +00000002@103397 +00000000@103399 +00000002@103400 +00000000@103402 +00000002@103403 +00000000@103405 +00000002@103407 +00000000@103408 +00000002@103410 +00000000@103411 +00000002@103413 +00000000@103414 +00000001@103416 +00000031@103418 +00000030@103447 +00000000@103449 +00000002@103450 +00000000@103452 +00000002@103453 +00000000@103455 +00000002@103456 +00000004@103458 +00000006@103459 +00000038@103461 +0000003a@103462 +00000000@103464 +00000002@103466 +00000028@103467 +0000002a@103469 +00000038@103470 +00000014@103471 +00000016@103472 +00000014@103473 +00000028@103474 +0000002a@103475 +00000014@103477 +00000016@103478 +00000028@103480 +0000002a@103481 +00000014@103483 +00000016@103484 +00000000@103486 +00000002@103487 +00000030@103489 +00000032@103490 +0000002c@103492 +0000000c@103493 +0000000e@103494 +0000001c@103495 +00000010@103496 +00000012@103497 +00000010@103498 +0000003c@103499 +0000003e@103500 +0000003c@103501 +0000003e@103503 +0000003c@103505 +0000003e@103506 +0000001c@103508 +0000001e@103509 +00000034@103511 +00000036@103512 +00000008@103514 +0000000a@103515 +0000003c@103517 +0000003e@103518 +0000003c@103520 +0000003e@103522 +0000003c@103523 +00000004@103524 +00000006@103525 +00000004@103526 +00000008@103527 +0000000a@103528 +00000008@103529 +00000010@103530 +00000012@103531 +0000002c@103533 +0000002e@103534 +00000024@103536 +00000026@103537 +00000030@103539 +00000032@103540 +00000010@103542 +00000012@103543 +00000008@103545 +0000000a@103546 +0000003c@103548 +0000003e@103549 +0000003c@103551 +00000018@103552 +0000001a@103553 +00000018@103554 +00000034@103555 +00000036@103556 +00000034@103557 +0000000c@103558 +0000000e@103559 +00000000@103561 +00000002@103562 +00000010@103564 +00000012@103565 +00000038@103567 +0000003a@103568 +00000040@103570 +00000002@103571 +00000008@103573 +0000000a@103574 +00000000@103576 +00000002@103578 +00000018@103579 +0000001a@103581 +00000018@103582 +00000020@103583 +00000022@103584 +00000020@103585 +00000018@103586 +0000001a@103587 +00000004@103589 +00000006@103590 +00000018@103592 +0000001a@103593 +00000020@103595 +00000022@103596 +00000000@103598 +00000002@103599 +00000020@103601 +00000022@103602 +0000000c@103604 +0000000e@103605 +0000001c@103607 +00000010@103608 +00000012@103609 +00000018@103610 +0000003c@103611 +0000003e@103612 +0000003c@103613 +0000003e@103615 +0000003c@103616 +0000003e@103618 +0000001c@103620 +0000001e@103621 +00000034@103623 +00000036@103624 +00000008@103626 +0000000a@103627 +0000003c@103629 +0000003e@103630 +0000003c@103632 +0000003e@103633 +0000003c@103635 +00000000@103636 +00000001@103637 +00000031@103638 +00000030@103668 +00000000@103670 +00000002@103671 +00000000@103672 +00000002@103674 +00000000@103676 +00000002@103677 +00000008@103679 +0000000a@103680 +0000000c@103682 +0000000e@103683 +00000000@103685 +00000002@103686 +00000028@103688 +0000002a@103689 +00000014@103691 +00000016@103692 +00000028@103694 +0000002a@103696 +00000038@103697 +00000014@103698 +00000016@103699 +00000014@103700 +00000028@103701 +0000002a@103702 +00000014@103704 +00000016@103705 +00000014@103707 +00000016@103708 +00000000@103710 +00000002@103711 +00000000@103713 +00000002@103714 +00000004@103716 +00000006@103717 +00000000@103719 +00000002@103720 +00000000@103722 +00000002@103724 +00000000@103725 +00000004@103726 +00000006@103727 +00000004@103728 +00000010@103729 +00000012@103730 +0000001c@103732 +0000001e@103733 +00000020@103735 +00000022@103736 +00000000@103738 +00000002@103739 +00000004@103741 +00000006@103742 +00000000@103744 +00000002@103745 +00000000@103747 +00000002@103748 +00000000@103750 +00000004@103751 +00000006@103752 +00000004@103753 +00000010@103754 +00000012@103755 +00000010@103756 +00000000@103757 +00000002@103758 +00000000@103760 +00000002@103761 +00000000@103763 +00000002@103764 +00000000@103766 +00000002@103767 +00000000@103769 +00000002@103770 +00000000@103772 +00000002@103773 +00000004@103775 +00000006@103776 +00000010@103778 +00000012@103780 +00000010@103781 +00000000@103782 +00000002@103783 +00000000@103784 +00000020@103785 +00000022@103786 +00000020@103787 +00000038@103788 +0000003a@103789 +00000034@103791 +00000036@103792 +00000000@103794 +00000002@103795 +00000000@103797 +00000002@103798 +00000038@103800 +0000003a@103801 +00000040@103803 +00000002@103804 +00000020@103806 +00000021@103808 +00000031@103809 +00000030@103839 +00000020@103840 +00000000@103841 +00000002@103842 +00000000@103843 +00000002@103845 +00000000@103847 +00000002@103848 +00000004@103850 +00000006@103851 +00000034@103853 +00000036@103854 +00000020@103856 +00000022@103857 +00000028@103859 +0000002a@103860 +00000014@103862 +00000016@103863 +00000028@103865 +0000002a@103867 +00000038@103868 +00000014@103869 +00000016@103870 +00000014@103871 +00000028@103872 +0000002a@103873 +00000028@103874 +00000014@103875 +00000016@103876 +00000000@103878 +00000002@103879 +00000014@103881 +00000016@103882 +00000038@103884 +0000003a@103885 +00000040@103887 +00000002@103888 +00000008@103890 +0000000a@103891 +00000000@103893 +00000002@103895 +00000018@103896 +0000001a@103898 +00000018@103899 +00000020@103900 +00000022@103901 +00000020@103902 +00000018@103903 +0000001a@103904 +00000004@103906 +00000006@103907 +00000018@103909 +0000001a@103910 +00000020@103912 +00000022@103913 +00000028@103915 +0000002a@103916 +00000008@103918 +0000000a@103919 +00000018@103921 +0000001a@103923 +00000018@103924 +00000020@103925 +00000022@103926 +00000020@103927 +00000000@103928 +00000001@103963 +00000031@103965 +00000030@103994 +00000000@103996 +00000002@103997 +00000000@103999 +00000002@104000 +00000000@104002 +00000002@104003 +00000004@104005 +00000006@104006 +00000008@104008 +0000000a@104010 +00000028@104011 +00000020@104012 +00000022@104013 +00000020@104014 +00000028@104015 +0000002a@104016 +00000028@104017 +00000014@104018 +00000016@104019 +00000028@104021 +0000002a@104022 +00000014@104024 +00000016@104025 +00000028@104027 +0000002a@104028 +00000014@104030 +00000016@104031 +0000002c@104033 +0000002e@104034 +00000030@104036 +00000032@104038 +00000030@104039 +00000000@104040 +00000002@104041 +00000000@104042 +0000000c@104043 +0000000e@104044 +0000000c@104045 +00000000@104046 +00000002@104047 +00000000@104049 +00000002@104050 +00000000@104052 +00000002@104053 +00000000@104055 +00000002@104056 +00000000@104058 +00000002@104059 +00000030@104061 +00000032@104062 +00000024@104064 +00000004@104065 +00000006@104066 +0000001c@104067 +00000038@104068 +0000003a@104069 +00000038@104070 +00000000@104071 +00000002@104072 +00000000@104073 +00000002@104075 +00000004@104077 +00000006@104078 +00000010@104080 +00000012@104081 +00000000@104083 +00000002@104084 +00000000@104086 +00000002@104087 +00000000@104089 +00000002@104090 +00000000@104092 +00000002@104094 +00000000@104095 +00000002@104097 +00000000@104098 +00000002@104100 +00000000@104101 +00000008@104102 +0000000a@104103 +00000000@104105 +00000002@104106 +00000000@104108 +00000002@104109 +00000000@104111 +00000002@104112 +00000000@104114 +00000002@104115 +00000000@104117 +00000002@104118 +00000000@104120 +00000002@104122 +00000000@104123 +00000002@104125 +00000000@104126 +00000002@104128 +00000000@104129 +00000002@104131 +00000000@104133 +00000002@104134 +00000030@104136 +00000032@104137 +00000004@104139 +00000006@104140 +00000038@104142 +0000003a@104143 +00000040@104145 +00000002@104146 +00000000@104148 +00000002@104149 +00000000@104151 +00000004@104152 +00000006@104153 +00000004@104154 +00000010@104155 +00000012@104156 +00000010@104157 +00000000@104158 +00000002@104159 +00000000@104161 +00000002@104162 +00000020@104164 +00000022@104165 +00000000@104167 +00000002@104168 +00000000@104170 +00000002@104171 +00000000@104173 +00000002@104174 +00000008@104176 +0000000a@104177 +00000008@104179 +00000000@104180 +00000002@104181 +00000000@104182 +00000001@104184 +00000031@104186 +00000030@104215 +00000000@104217 +00000002@104218 +00000000@104220 +00000002@104221 +00000000@104223 +00000002@104224 +00000004@104226 +00000006@104227 +00000020@104229 +00000022@104230 +00000020@104232 +00000022@104233 +00000028@104235 +0000002a@104237 +00000018@104238 +00000014@104239 +00000016@104240 +00000034@104241 +00000028@104242 +0000002a@104243 +00000028@104244 +00000014@104245 +00000016@104246 +00000028@104248 +0000002a@104249 +00000014@104251 +00000016@104252 +0000003c@104254 +0000003e@104255 +00000038@104257 +0000003a@104258 +00000038@104260 +0000003a@104261 +0000001c@104263 +0000001e@104265 +0000001c@104266 +00000004@104267 +00000006@104268 +00000004@104269 +00000000@104270 +00000002@104271 +00000000@104272 +0000002c@104273 +0000002e@104274 +00000014@104276 +00000016@104277 +00000000@104279 +00000002@104280 +00000000@104282 +00000002@104283 +00000008@104285 +0000000a@104286 +0000000c@104288 +0000000e@104289 +00000000@104291 +00000002@104293 +00000008@104294 +0000000a@104296 +00000008@104297 +00000038@104298 +0000003a@104299 +00000038@104300 +00000000@104301 +00000002@104302 +00000004@104304 +00000005@104349 +00000035@104350 +00000034@104380 +00000004@104381 +00000000@104382 +00000002@104383 +00000000@104384 +00000002@104386 +00000000@104387 +00000002@104389 +00000004@104391 +00000006@104392 +00000028@104394 +0000002a@104395 +00000020@104397 +00000022@104398 +00000028@104400 +0000002a@104401 +00000014@104403 +00000016@104404 +00000028@104406 +0000002a@104408 +00000038@104409 +00000014@104410 +00000016@104411 +00000034@104412 +00000028@104413 +0000002a@104414 +00000028@104415 +00000014@104416 +00000016@104417 +0000003c@104419 +0000003e@104420 +00000028@104422 +0000002a@104423 +00000034@104425 +00000036@104426 +0000000c@104428 +0000000e@104429 +0000001c@104431 +0000001e@104432 +00000000@104434 +00000002@104436 +00000010@104437 +00000012@104439 +00000010@104440 +0000001c@104441 +0000001e@104442 +0000001c@104443 +0000003c@104444 +0000003e@104445 +00000038@104447 +0000003a@104448 +00000038@104450 +0000003a@104451 +0000001c@104453 +0000001e@104454 +00000040@104456 +00000002@104457 +00000000@104459 +00000002@104460 +00000000@104462 +00000002@104463 +00000000@104465 +00000002@104467 +00000000@104468 +00000004@104469 +00000005@104470 +00000035@104472 +00000034@104501 +00000000@104503 +00000002@104504 +00000000@104506 +00000002@104507 +00000000@104509 +00000002@104510 +00000004@104512 +00000006@104513 +00000010@104515 +00000012@104516 +00000000@104518 +00000002@104519 +00000028@104521 +0000002a@104523 +00000038@104524 +00000014@104525 +00000016@104526 +00000034@104527 +00000028@104528 +0000002a@104529 +00000028@104530 +00000014@104531 +00000016@104532 +00000028@104534 +0000002a@104535 +00000014@104537 +00000016@104538 +00000000@104540 +00000002@104541 +00000000@104543 +00000002@104544 +00000000@104546 +00000002@104547 +00000000@104549 +00000002@104550 +00000000@104552 +00000002@104554 +00000000@104555 +00000002@104557 +00000000@104558 +00000002@104560 +00000000@104562 +00000002@104563 +00000000@104565 +00000002@104566 +00000030@104568 +00000032@104569 +00000004@104571 +00000006@104572 +00000038@104574 +0000003a@104575 +00000040@104577 +00000002@104578 +00000000@104580 +00000002@104582 +00000000@104583 +00000004@104584 +00000006@104585 +00000004@104586 +00000010@104587 +00000012@104588 +00000000@104590 +00000002@104591 +00000000@104593 +00000002@104594 +00000030@104596 +00000032@104597 +00000000@104599 +00000002@104600 +00000000@104602 +00000002@104603 +00000000@104605 +00000002@104606 +00000008@104608 +0000000a@104610 +00000008@104611 +00000000@104612 +00000002@104613 +00000000@104614 +00000002@104616 +00000000@104617 +00000002@104619 +00000000@104621 +00000002@104622 +00000000@104624 +00000002@104625 +00000000@104627 +00000002@104628 +00000000@104630 +00000002@104631 +00000000@104633 +00000002@104634 +00000000@104636 +00000002@104638 +00000000@104639 +00000010@104640 +00000011@104641 +00000031@104643 +00000030@104672 +00000000@104674 +00000002@104675 +00000000@104677 +00000002@104678 +00000000@104680 +00000002@104681 +00000004@104683 +00000006@104684 +0000003c@104686 +0000003e@104687 +00000020@104689 +00000022@104690 +00000028@104692 +0000002a@104693 +00000014@104695 +00000016@104697 +00000030@104698 +00000028@104699 +0000002a@104700 +00000028@104701 +00000014@104702 +00000016@104703 +00000014@104704 +00000028@104705 +0000002a@104706 +00000014@104708 +00000016@104709 +00000000@104711 +00000002@104712 +00000038@104714 +0000003a@104715 +00000010@104717 +00000012@104718 +0000002c@104720 +0000002e@104721 +00000024@104723 +00000026@104725 +00000034@104726 +00000030@104727 +00000032@104728 +00000030@104729 +00000010@104730 +00000012@104731 +00000010@104732 +00000008@104733 +0000000a@104734 +0000003c@104736 +0000003e@104737 +0000001c@104739 +0000001e@104740 +00000034@104742 +00000036@104743 +0000000c@104745 +0000000e@104746 +00000034@104748 +00000036@104749 +0000003c@104751 +0000003e@104753 +0000003c@104754 +0000003e@104756 +0000003c@104757 +00000020@104758 +00000022@104759 +00000020@104760 +00000010@104761 +00000012@104762 +00000000@104764 +00000002@104765 +00000000@104767 +00000002@104768 +00000000@104770 +00000002@104771 +00000000@104773 +00000002@104774 +00000004@104776 +00000006@104777 +00000018@104779 +0000001a@104781 +00000038@104782 +00000020@104783 +00000022@104784 +00000020@104785 +00000010@104786 +00000012@104787 +00000010@104788 +00000004@104789 +00000006@104790 +0000003c@104792 +0000003e@104793 +00000010@104795 +00000012@104796 +0000001c@104798 +0000001e@104799 +00000060@104801 +00000002@104802 +00000000@104804 +00000002@104805 +00000004@104807 +00000006@104808 +00000004@104810 +00000000@104811 +00000002@104812 +00000000@104813 +00000004@104814 +00000006@104815 +00000004@104816 +00000018@104817 +0000001a@104818 +00000000@104820 +00000002@104821 +00000000@104823 +00000002@104824 +0000002c@104826 +0000002e@104827 +00000010@104829 +00000012@104830 +00000028@104832 +0000002a@104833 +00000000@104835 +00000002@104836 +0000002c@104838 +0000002e@104840 +0000002c@104841 +00000010@104842 +00000012@104843 +00000010@104844 +0000002c@104845 +0000002e@104846 +0000002c@104847 +00000004@104848 +00000006@104849 +00000028@104851 +0000002a@104852 +00000018@104854 +0000001a@104855 +00000000@104857 +00000002@104858 +00000000@104860 +00000001@104862 +00000031@104863 +00000030@104893 +00000000@104894 +00000002@104896 +00000000@104897 +00000002@104899 +00000000@104900 +00000002@104902 +00000000@104903 +00000004@104904 +00000006@104905 +00000014@104907 +00000016@104908 +00000000@104910 +00000002@104911 +00000028@104913 +0000002a@104914 +00000014@104916 +00000016@104917 +00000028@104919 +0000002a@104920 +00000014@104922 +00000016@104923 +00000028@104925 +0000002a@104927 +00000038@104928 +00000014@104929 +00000016@104930 +00000014@104931 +00000010@104932 +00000012@104933 +00000020@104935 +00000022@104936 +00000000@104938 +00000002@104939 +00000000@104941 +00000002@104942 +00000000@104944 +00000002@104945 +00000000@104947 +00000002@104948 +00000004@104950 +00000006@104951 +00000000@104953 +00000002@104955 +00000000@104956 +00000028@104957 +0000002a@104958 +00000028@104959 +00000000@104960 +00000002@104961 +00000000@104963 +00000002@104964 +00000004@104966 +00000006@104967 +00000000@104969 +00000002@104970 +00000000@104972 +00000002@104973 +00000000@104975 +00000002@104976 +00000000@104978 +00000002@104979 +0000002c@104981 +0000002e@104983 +0000002c@104984 +00000030@104985 +00000032@104986 +00000030@104987 +00000000@104988 +00000002@104989 +00000000@104990 +0000000c@104991 +0000000e@104992 +00000000@104994 +00000002@104995 +00000020@104997 +00000022@104998 +00000004@105000 +00000006@105001 +00000000@105003 +00000002@105004 +00000000@105006 +00000002@105007 +00000000@105009 +00000002@105011 +00000000@105012 +00000002@105014 +00000000@105015 +00000002@105017 +00000000@105018 +00000002@105020 +00000000@105022 +00000002@105023 +00000000@105025 +00000002@105026 +00000000@105028 +00000002@105029 +00000000@105031 +00000001@105033 +00000031@105034 +00000030@105064 +00000000@105065 +00000002@105067 +00000000@105068 +00000002@105070 +00000000@105071 +00000002@105073 +00000000@105074 +00000004@105075 +00000006@105076 +0000002c@105078 +0000002e@105079 +00000000@105081 +00000002@105082 +00000028@105084 +0000002a@105085 +00000014@105087 +00000016@105088 +00000028@105090 +0000002a@105091 +00000014@105093 +00000016@105094 +00000028@105096 +0000002a@105098 +00000038@105099 +00000014@105100 +00000016@105101 +00000014@105102 +00000004@105103 +00000006@105104 +00000000@105106 +00000002@105107 +0000002c@105109 +0000002e@105110 +00000014@105112 +00000016@105113 +0000001c@105115 +0000001e@105116 +00000008@105118 +0000000a@105119 +0000002c@105121 +0000002e@105122 +0000003c@105124 +00000018@105125 +0000001a@105126 +00000018@105127 +00000004@105128 +00000006@105129 +00000004@105130 +00000024@105131 +00000026@105132 +00000010@105134 +00000012@105135 +0000002c@105137 +0000002e@105138 +00000004@105140 +00000006@105141 +00000028@105143 +0000002a@105144 +00000010@105146 +00000012@105147 +00000028@105149 +0000002a@105150 +0000002c@105152 +00000004@105153 +00000006@105154 +0000000c@105155 +00000028@105156 +0000002a@105157 +00000028@105158 +00000018@105159 +0000001a@105160 +00000000@105162 +00000002@105163 +00000004@105165 +00000006@105166 +00000028@105168 +0000002a@105169 +00000010@105171 +00000012@105172 +00000028@105174 +0000002a@105175 +00000014@105177 +00000016@105178 +00000038@105180 +00000028@105181 +0000002a@105182 +00000028@105183 +00000018@105184 +0000001a@105185 +00000018@105186 +00000000@105187 +00000002@105188 +00000000@105189 +00000004@105190 +00000006@105191 +00000028@105193 +0000002a@105194 +00000010@105196 +00000012@105197 +00000028@105199 +0000002a@105200 +00000010@105202 +00000011@105919 +00000031@105920 +00000030@105950 +00000000@105951 +00000002@105953 +00000000@105954 +00000002@105956 +00000000@105957 +00000002@105959 +00000000@105960 +00000008@105961 +0000000a@105962 +0000000c@105964 +0000000e@105965 +00000020@105967 +00000022@105968 +00000028@105970 +0000002a@105971 +00000014@105973 +00000016@105974 +00000028@105976 +0000002a@105977 +00000014@105979 +00000016@105981 +00000038@105982 +00000028@105983 +0000002a@105984 +00000038@105985 +00000014@105986 +00000016@105987 +00000014@105988 +00000000@105989 +00000002@105990 +00000000@105992 +00000002@105993 +00000000@105995 +00000002@105996 +00000000@105998 +00000002@105999 +00000000@106001 +00000002@106002 +00000000@106004 +00000002@106005 +00000004@106007 +00000006@106009 +00000014@106010 +00000010@106011 +00000012@106012 +00000010@106013 +00000000@106014 +00000002@106015 +00000000@106016 +00000020@106017 +00000022@106018 +00000038@106020 +0000003a@106021 +00000034@106023 +00000036@106024 +00000000@106026 +00000002@106027 +00000000@106029 +00000002@106030 +00000038@106032 +0000003a@106033 +00000020@106035 +00000000@106036 +00000002@106037 +00000020@106038 +00000021@106040 +00000031@106041 +00000030@106071 +00000000@106073 +00000002@106074 +00000000@106075 +00000002@106077 +00000000@106079 +00000002@106080 +00000004@106082 +00000006@106083 +00000018@106085 +0000001a@106086 +00000000@106088 +00000002@106089 +00000028@106091 +0000002a@106092 +00000014@106094 +00000016@106096 +00000038@106097 +00000028@106098 +0000002a@106099 +00000038@106100 +00000014@106101 +00000016@106102 +00000014@106103 +00000028@106104 +0000002a@106105 +00000014@106107 +00000016@106108 +00000000@106110 +00000002@106111 +00000000@106113 +00000002@106114 +00000000@106116 +00000002@106117 +00000000@106119 +00000002@106120 +00000000@106122 +00000002@106123 +00000000@106125 +00000002@106127 +00000000@106128 +00000008@106129 +0000000a@106130 +00000008@106131 +00000000@106132 +00000002@106133 +00000000@106135 +00000002@106136 +00000000@106138 +00000002@106139 +00000000@106141 +00000002@106142 +00000000@106144 +00000002@106145 +00000000@106147 +00000002@106148 +00000000@106150 +00000002@106151 +00000000@106153 +00000002@106155 +00000000@106156 +00000002@106158 +00000000@106159 +00000002@106161 +00000000@106162 +00000002@106164 +00000020@106166 +00000022@106167 +00000000@106169 +00000002@106170 +00000000@106172 +00000002@106173 +00000000@106175 +00000002@106176 +00000008@106178 +0000000a@106179 +00000000@106181 +00000002@106183 +00000000@106184 +00000002@106186 +00000000@106187 +00000002@106189 +00000000@106190 +00000002@106192 +00000000@106194 +00000002@106195 +00000000@106197 +00000002@106198 +00000000@106200 +00000002@106201 +00000000@106203 +00000002@106204 +00000000@106206 +00000002@106207 +00000000@106209 +00000002@106214 +00000000@106215 +00000002@106217 +00000000@106218 +00000030@106219 +00000032@106220 +00000030@106221 +00000000@106222 +00000002@106223 +00000000@106225 +00000002@106226 +00000000@106228 +00000002@106229 +00000008@106231 +0000000a@106232 +00000000@106234 +00000002@106235 +00000000@106237 +00000002@106238 +00000000@106240 +00000002@106242 +00000000@106243 +00000002@106245 +00000000@106246 +00000002@106248 +00000000@106249 +00000002@106251 +00000000@106253 +00000002@106254 +00000000@106256 +00000002@106257 +00000000@106259 +00000002@106260 +0000003c@106262 +0000003e@106263 +00000038@106265 +0000003a@106266 +00000038@106268 +0000003a@106270 +00000038@106271 +0000001c@106272 +0000001e@106273 +0000001c@106274 +0000003c@106275 +0000003e@106276 +0000003c@106277 +00000038@106278 +0000003a@106279 +00000038@106281 +0000003a@106282 +0000001c@106284 +0000001e@106285 +0000003c@106287 +0000003e@106288 +00000038@106290 +0000003a@106291 +00000038@106293 +0000003a@106294 +0000001c@106296 +0000001e@106298 +0000003c@106299 +0000003e@106301 +0000003c@106302 +00000038@106303 +0000003a@106304 +00000038@106305 +0000003a@106307 +0000001c@106309 +0000001e@106310 +0000003c@106312 +0000003d@106313 +0000003c@106345 +00000000@106346 +00000002@106347 +00000000@106349 +00000002@106350 +00000000@106352 +00000002@106353 +00000008@106355 +0000000a@106357 +00000018@106358 +00000010@106359 +00000012@106360 +00000010@106361 +00000000@106362 +00000002@106363 +00000000@106364 +00000028@106365 +0000002a@106366 +00000014@106368 +00000016@106369 +00000028@106371 +0000002a@106372 +00000014@106374 +00000016@106375 +00000028@106377 +0000002a@106378 +00000014@106380 +00000016@106381 +00000030@106383 +00000020@106384 +00000022@106385 +00000020@106386 +00000022@106388 +00000020@106389 +00000038@106390 +0000003a@106391 +00000038@106392 +00000034@106393 +00000036@106394 +00000000@106396 +00000002@106397 +00000000@106399 +00000002@106400 +00000038@106402 +0000003a@106403 +00000040@106405 +00000002@106406 +00000020@106408 +00000022@106409 +00000020@106411 +00000000@106412 +00000002@106413 +00000008@106414 +0000002c@106415 +0000002e@106416 +0000002c@106417 +00000010@106418 +00000012@106419 +00000010@106420 +00000020@106421 +00000022@106422 +0000000c@106424 +0000000e@106425 +0000002c@106427 +0000002e@106428 +00000000@106430 +00000002@106431 +00000000@106433 +00000002@106434 +00000000@106436 +00000002@106437 +00000028@106439 +0000002a@106441 +00000028@106442 +0000003c@106443 +0000003e@106444 +0000003c@106445 +00000000@106446 +00000002@106447 +00000000@106448 +0000000c@106449 +0000000e@106450 +00000010@106452 +00000012@106453 +00000018@106455 +0000001a@106456 +0000000c@106458 +0000000e@106459 +00000024@106461 +00000026@106462 +00000018@106464 +0000001a@106465 +00000000@106467 +00000002@106469 +00000038@106470 +0000003c@106471 +0000003e@106472 +0000003c@106473 +0000002c@106474 +0000002e@106475 +0000002c@106476 +0000001c@106477 +0000001e@106478 +00000004@106480 +00000006@106481 +00000024@106483 +00000025@106484 +00000035@106486 +00000034@106516 +00000000@106517 +00000002@106518 +00000000@106520 +00000002@106521 +00000000@106523 +00000002@106524 +00000008@106526 +0000000a@106528 +00000008@106529 +00000004@106530 +00000006@106531 +00000004@106532 +00000000@106533 +00000002@106534 +00000000@106535 +00000028@106536 +0000002a@106537 +00000014@106539 +00000016@106540 +00000028@106542 +0000002a@106543 +00000014@106545 +00000016@106546 +00000028@106548 +0000002a@106549 +00000014@106551 +00000016@106552 +00000000@106554 +00000002@106556 +00000000@106557 +00000004@106558 +00000006@106559 +00000004@106560 +0000003c@106561 +0000003e@106562 +0000003c@106563 +00000000@106564 +00000002@106565 +0000002c@106567 +0000002e@106568 +00000038@106570 +0000003a@106571 +0000003c@106573 +0000003e@106574 +00000060@106576 +00000022@106577 +00000000@106579 +00000002@106580 +00000004@106582 +00000006@106584 +0000000c@106585 +0000003c@106586 +0000003e@106587 +0000003c@106588 +00000000@106589 +00000002@106590 +00000000@106591 +00000038@106592 +0000003a@106593 +00000000@106595 +00000002@106596 +0000003c@106598 +0000003e@106599 +00000020@106601 +00000022@106602 +0000003c@106604 +0000003e@106605 +00000038@106607 +0000003a@106608 +00000038@106610 +0000003a@106611 +00000038@106613 +0000001c@106614 +0000001e@106615 +0000001c@106616 +00000000@106617 +00000002@106618 +00000000@106619 +00000002@106621 +0000002c@106623 +0000002e@106624 +0000003c@106626 +0000003e@106627 +00000040@106629 +00000002@106630 +00000000@106632 +00000002@106633 +0000000c@106635 +0000000e@106636 +00000004@106638 +00000006@106639 +00000000@106641 +00000002@106643 +00000010@106644 +00000014@106645 +00000016@106646 +00000014@106647 +00000010@106648 +00000012@106649 +00000010@106650 +00000000@106651 +00000002@106652 +00000000@106654 +00000001@106655 +00000031@106657 +00000030@106686 +00000000@106688 +00000002@106689 +00000000@106691 +00000002@106692 +00000004@106694 +00000006@106695 +0000000c@106697 +0000000e@106698 +00000024@106700 +00000026@106702 +00000020@106703 +00000000@106704 +00000002@106705 +00000000@106706 +00000028@106707 +0000002a@106708 +00000028@106709 +00000014@106710 +00000016@106711 +00000028@106713 +0000002a@106714 +00000014@106716 +00000016@106717 +00000028@106719 +0000002a@106720 +00000014@106722 +00000016@106723 +00000020@106725 +00000022@106726 +00000020@106728 +00000000@106729 +00000002@106730 +00000000@106731 +0000002c@106732 +0000002e@106733 +0000002c@106734 +00000014@106735 +00000016@106736 +00000000@106738 +00000002@106739 +00000000@106741 +00000002@106742 +00000028@106744 +0000002a@106745 +0000003c@106747 +0000003e@106748 +00000050@106750 +00000012@106751 +00000000@106753 +00000002@106754 +0000003c@106756 +0000003e@106758 +0000003c@106759 +00000008@106760 +0000000a@106761 +00000008@106762 +00000010@106763 +00000012@106764 +00000010@106765 +00000012@106767 +00000000@106769 +00000002@106770 +0000000c@106772 +0000000e@106773 +00000030@106775 +00000032@106776 +00000004@106778 +00000006@106779 +0000003c@106781 +0000003e@106782 +00000038@106784 +00000008@106785 +0000000a@106786 +00000008@106787 +00000000@106788 +00000002@106789 +00000000@106790 +00000002@106792 +00000000@106793 +00000002@106795 +0000000c@106797 +0000000e@106798 +00000010@106800 +00000012@106801 +0000003c@106803 +0000003e@106804 +0000003c@106806 +0000003e@106807 +00000010@106809 +00000012@106810 +00000034@106812 +00000036@106814 +00000034@106815 +00000020@106816 +00000022@106817 +00000020@106818 +00000014@106819 +00000016@106820 +00000014@106821 +00000008@106822 +0000000a@106823 +00000030@106825 +00000032@106826 +00000000@106828 +00000002@106829 +0000003c@106831 +0000003e@106832 +00000048@106834 +0000000a@106835 +0000002c@106837 +0000002e@106838 +0000001c@106840 +0000001e@106841 +0000001c@106843 +00000000@106844 +00000002@106845 +00000000@106846 +00000008@106847 +0000000a@106848 +00000008@106849 +00000004@106850 +00000006@106851 +00000028@106853 +0000002a@106854 +00000018@106856 +0000001a@106857 +00000000@106859 +00000002@106860 +00000010@106862 +00000012@106863 +0000003c@106865 +0000003e@106866 +0000003c@106868 +0000003e@106869 +0000003c@106871 +00000010@106872 +00000012@106873 +00000018@106874 +0000001a@106876 +00000018@106877 +00000034@106878 +00000036@106879 +00000034@106880 +00000010@106881 +00000012@106882 +0000000c@106884 +0000000e@106885 +00000030@106887 +00000032@106888 +00000038@106890 +0000003a@106891 +0000003c@106893 +0000003e@106894 +00000008@106896 +0000000a@106897 +00000000@106899 +00000002@106901 +00000000@106902 +00000002@106904 +00000000@106905 +00000002@106907 +00000000@106908 +0000000c@106909 +0000000e@106910 +00000024@106912 +00000026@106913 +0000002c@106915 +0000002e@106916 +00000018@106918 +0000001a@106919 +00000020@106921 +00000022@106922 +0000002c@106924 +0000002e@106925 +0000000c@106927 +0000000e@106929 +0000003c@106930 +0000003e@106932 +0000003c@106933 +00000004@106934 +00000006@106935 +00000004@106936 +00000038@106937 +0000003a@106938 +00000000@106940 +00000002@106941 +00000014@106943 +00000016@106944 +0000003c@106946 +0000003e@106947 +00000040@106949 +00000002@106950 +00000034@106952 +00000036@106953 +00000034@106955 +00000036@106956 +00000034@106958 +00000004@106959 +00000006@106960 +00000014@106961 +00000010@106962 +00000012@106963 +00000010@106964 +0000003c@106965 +0000003e@106966 +0000003c@106967 +0000003e@106969 +00000010@106971 +00000012@106972 +00000028@106974 +0000002a@106975 +00000000@106977 +00000002@106978 +00000010@106980 +00000012@106981 +0000000c@106983 +0000000e@106984 +00000030@106986 +00000032@106988 +00000030@106989 +00000010@106990 +00000012@106991 +00000010@106992 +0000003c@106993 +0000003e@106994 +0000003c@106995 +00000008@106996 +0000000a@106997 +00000000@106999 +00000002@107000 +00000000@107002 +00000002@107003 +00000000@107005 +00000002@107006 +0000000c@107008 +0000000e@107009 +00000010@107011 +00000012@107012 +0000003c@107014 +0000003e@107016 +0000003c@107017 +0000003e@107019 +0000003c@107020 +00000010@107021 +00000012@107022 +00000010@107023 +00000028@107024 +0000002a@107025 +00000000@107027 +00000002@107028 +00000010@107030 +00000012@107031 +00000008@107033 +0000000a@107034 +00000030@107036 +00000032@107037 +00000010@107039 +00000012@107040 +0000003c@107042 +0000003e@107044 +0000003c@107045 +00000008@107046 +0000000a@107047 +00000008@107048 +00000000@107049 +00000002@107050 +00000000@107051 +00000002@107053 +00000000@107055 +00000002@107056 +00000008@107058 +0000000a@107059 +00000034@107061 +00000036@107062 +00000008@107064 +0000000a@107065 +0000003c@107067 +0000003e@107068 +00000060@107070 +00000020@107071 +00000022@107072 +00000020@107073 +00000000@107074 +00000001@107075 +00000031@107076 +00000030@107106 +00000000@107108 +00000002@107109 +00000000@107111 +00000002@107112 +00000004@107114 +00000006@107115 +0000000c@107117 +0000000e@107118 +00000034@107120 +00000036@107121 +00000000@107123 +00000002@107124 +00000028@107126 +0000002a@107127 +00000014@107129 +00000016@107131 +00000030@107132 +00000028@107133 +0000002a@107134 +00000028@107135 +00000014@107136 +00000016@107137 +00000014@107138 +00000028@107139 +0000002a@107140 +00000014@107142 +00000016@107143 +00000000@107145 +00000002@107146 +00000000@107148 +00000002@107149 +00000008@107151 +0000000a@107152 +00000008@107154 +0000000a@107155 +00000038@107157 +0000003c@107158 +0000003e@107159 +0000003c@107160 +0000003e@107162 +0000003c@107163 +0000003e@107165 +0000003c@107166 +0000001c@107167 +0000001e@107168 +00000038@107170 +0000003a@107171 +00000004@107173 +00000006@107174 +0000003c@107176 +0000003e@107177 +00000060@107179 +00000022@107180 +00000020@107182 +00000022@107183 +00000020@107185 +00000000@107186 +00000002@107187 +00000008@107188 +0000002c@107189 +0000002e@107190 +0000002c@107191 +00000034@107192 +00000036@107193 +00000034@107194 +0000003c@107195 +0000003e@107196 +00000038@107198 +0000003a@107199 +0000003c@107201 +0000003e@107202 +0000001c@107204 +0000001e@107205 +00000028@107207 +0000002a@107208 +00000030@107210 +00000032@107211 +0000003c@107213 +0000002c@107214 +0000002e@107215 +0000003c@107216 +0000003e@107218 +0000003c@107219 +00000014@107220 +00000016@107221 +00000014@107222 +0000003c@107223 +0000003e@107224 +0000003c@107226 +0000003e@107227 +00000000@107229 +00000002@107230 +00000000@107232 +00000002@107233 +00000000@107235 +00000002@107236 +00000000@107238 +00000002@107239 +00000030@107241 +00000032@107243 +00000038@107244 +0000000c@107245 +0000000e@107246 +0000000c@107247 +00000000@107248 +00000002@107249 +00000000@107250 +0000002c@107251 +0000002e@107252 +00000014@107254 +00000016@107255 +00000004@107257 +00000006@107258 +00000030@107260 +00000032@107261 +00000000@107263 +00000002@107264 +00000000@107266 +00000002@107267 +00000008@107269 +0000000a@107270 +00000008@107272 +0000000a@107274 +00000008@107275 +00000034@107276 +00000036@107277 +00000034@107278 +00000004@107279 +00000006@107280 +00000004@107282 +00000006@107283 +00000008@107285 +0000000a@107286 +00000000@107288 +00000002@107289 +00000000@107291 +00000002@107292 +00000018@107294 +00000019@107296 +00000039@107297 +00000038@107327 +00000000@107328 +00000002@107330 +00000000@107331 +00000002@107333 +00000000@107334 +00000002@107336 +00000000@107337 +00000014@107338 +00000016@107339 +00000024@107341 +00000026@107342 +00000020@107344 +00000022@107345 +00000028@107347 +0000002a@107348 +00000014@107350 +00000016@107351 +00000028@107353 +0000002a@107354 +00000014@107356 +00000016@107358 +00000030@107359 +00000028@107360 +0000002a@107361 +00000038@107362 +00000014@107363 +00000016@107364 +00000014@107365 +00000020@107366 +00000022@107367 +00000000@107369 +00000002@107370 +0000002c@107372 +0000002e@107373 +00000014@107375 +00000016@107376 +00000000@107378 +00000002@107379 +00000000@107381 +00000002@107382 +00000028@107384 +0000002a@107386 +00000028@107387 +0000003c@107388 +0000003e@107389 +0000003c@107390 +00000010@107391 +00000012@107392 +00000010@107393 +0000003c@107394 +0000003e@107395 +0000003c@107397 +0000003e@107398 +00000000@107400 +00000002@107401 +00000000@107403 +00000002@107404 +00000004@107406 +00000006@107407 +00000000@107409 +00000002@107410 +00000000@107412 +00000002@107414 +00000010@107415 +00000012@107417 +00000010@107418 +0000003c@107419 +0000003e@107420 +0000003c@107421 +0000003e@107423 +00000000@107425 +00000002@107426 +00000000@107428 +00000002@107429 +00000024@107431 +00000026@107432 +00000000@107434 +00000002@107435 +00000004@107437 +00000006@107438 +00000000@107440 +00000002@107442 +00000000@107443 +00000002@107445 +00000000@107446 +0000003c@107447 +0000003e@107448 +0000003c@107449 +00000000@107450 +00000002@107451 +00000000@107452 +00000034@107453 +00000036@107454 +00000030@107456 +00000032@107457 +0000003c@107459 +0000003e@107460 +00000028@107462 +0000002a@107463 +00000010@107465 +00000012@107466 +0000003c@107468 +0000003e@107469 +0000003c@107471 +0000003e@107473 +0000003c@107474 +00000000@107475 +00000002@107476 +00000000@107477 +00000002@107479 +00000000@107480 +00000018@107481 +0000001a@107482 +00000000@107484 +00000002@107485 +00000000@107487 +00000002@107488 +00000000@107490 +00000002@107491 +00000000@107493 +00000002@107494 +0000003c@107496 +0000003e@107497 +0000003c@107499 +00000000@107500 +00000002@107501 +00000000@107502 +00000014@107503 +00000016@107504 +00000014@107505 +00000028@107506 +0000002a@107507 +00000028@107508 +0000003c@107509 +0000003e@107510 +0000002c@107512 +0000002e@107513 +00000010@107515 +00000012@107516 +0000003c@107518 +0000003e@107519 +0000003c@107521 +0000003e@107522 +00000040@107524 +00000002@107525 +00000000@107527 +00000002@107529 +00000000@107530 +00000024@107531 +00000026@107532 +00000024@107533 +00000000@107534 +00000002@107535 +00000000@107536 +00000002@107538 +00000010@107540 +00000012@107541 +0000003c@107543 +0000003e@107544 +0000003c@107546 +0000003e@107547 +00000040@107549 +00000002@107550 +00000000@107552 +00000002@107553 +00000004@107555 +00000006@107557 +00000004@107558 +00000000@107559 +00000002@107560 +00000000@107561 +00000004@107562 +00000006@107563 +00000004@107564 +00000000@107565 +00000001@107566 +00000031@107568 +00000030@107597 +00000000@107599 +00000002@107600 +00000000@107602 +00000002@107603 +00000000@107605 +00000002@107606 +0000002c@107608 +0000002e@107609 +00000018@107611 +0000001a@107612 +00000000@107614 +00000002@107616 +00000028@107617 +0000002a@107619 +00000028@107620 +00000014@107621 +00000016@107622 +00000028@107624 +0000002a@107625 +00000014@107627 +00000016@107628 +00000028@107630 +0000002a@107631 +00000014@107633 +00000016@107634 +00000020@107636 +00000022@107637 +00000000@107639 +00000002@107640 +0000002c@107642 +0000002e@107644 +0000002c@107645 +00000010@107646 +00000012@107647 +00000010@107648 +00000020@107649 +00000022@107650 +00000020@107651 +00000014@107652 +00000016@107653 +0000002c@107655 +0000002e@107656 +00000000@107658 +00000002@107659 +00000000@107661 +00000002@107662 +00000000@107664 +00000002@107665 +00000028@107667 +0000002a@107668 +0000003c@107670 +0000003e@107672 +0000003c@107673 +00000000@107674 +00000002@107675 +00000000@107676 +00000008@107677 +0000000a@107678 +00000008@107679 +00000010@107680 +00000012@107681 +00000018@107683 +0000001a@107684 +00000000@107686 +00000002@107687 +0000002c@107689 +0000002e@107690 +00000010@107692 +00000012@107693 +00000018@107695 +0000001a@107696 +0000003c@107698 +0000003e@107700 +0000003c@107701 +00000028@107702 +0000002a@107703 +00000028@107704 +0000001c@107705 +0000001e@107706 +0000001c@107707 +00000004@107708 +00000006@107709 +0000002c@107711 +0000002e@107712 +0000002c@107714 +0000002e@107715 +0000001c@107717 +0000001e@107718 +00000004@107720 +00000006@107721 +0000003c@107723 +0000003e@107724 +0000002c@107726 +0000002e@107728 +0000003c@107729 +0000001c@107730 +0000001e@107731 +0000001c@107732 +00000024@107733 +00000026@107734 +00000024@107735 +00000004@107736 +00000006@107737 +00000004@107738 +00000000@107739 +00000002@107740 +00000008@107742 +0000000a@107743 +0000002c@107745 +0000002e@107746 +00000040@107748 +00000002@107749 +00000008@107751 +0000000a@107752 +00000034@107754 +00000036@107755 +00000034@107757 +00000024@107758 +00000026@107759 +00000034@107760 +00000010@107761 +00000012@107762 +00000010@107763 +0000003c@107764 +0000003e@107765 +0000003c@107766 +0000003e@107768 +00000000@107770 +00000002@107771 +00000000@107773 +00000002@107774 +0000000c@107776 +0000000e@107777 +00000000@107779 +00000002@107780 +0000000c@107782 +0000000e@107783 +00000018@107785 +0000001a@107787 +00000018@107788 +00000038@107789 +0000003a@107790 +00000038@107791 +0000003a@107793 +00000038@107794 +00000000@107795 +00000002@107796 +0000002c@107798 +0000002e@107799 +0000002c@107801 +0000002e@107802 +0000001c@107804 +0000001e@107805 +00000024@107807 +00000026@107808 +00000000@107810 +00000002@107811 +00000018@107813 +0000001a@107814 +00000018@107816 +00000008@107817 +0000000a@107818 +00000008@107819 +0000002c@107820 +0000002e@107821 +0000002c@107822 +00000018@107823 +0000001a@107824 +00000024@107826 +00000026@107827 +00000034@107829 +00000036@107830 +00000024@107832 +00000026@107833 +0000002c@107835 +0000002e@107836 +0000002c@107838 +0000002e@107839 +0000001c@107841 +0000001e@107842 +0000003c@107844 +00000024@107845 +00000026@107846 +00000024@107847 +00000008@107848 +0000000a@107849 +00000008@107850 +00000014@107851 +00000016@107852 +00000008@107854 +0000000a@107855 +0000002c@107857 +0000002e@107858 +00000018@107860 +0000001a@107861 +00000018@107863 +0000001a@107864 +00000034@107866 +00000036@107867 +00000020@107869 +00000022@107870 +0000003c@107872 +0000003e@107874 +0000003c@107875 +00000024@107876 +00000026@107877 +00000024@107878 +0000001c@107879 +0000001e@107880 +00000024@107882 +00000026@107883 +0000002c@107885 +0000002e@107886 +00000020@107888 +00000022@107889 +0000001c@107891 +0000001e@107892 +00000024@107894 +00000026@107895 +00000010@107897 +00000012@107898 +00000014@107900 +00000004@107901 +00000006@107902 +0000000c@107903 +0000003c@107904 +0000003e@107905 +0000003c@107906 +00000008@107907 +0000000a@107908 +00000008@107909 +0000002c@107910 +0000002e@107911 +00000000@107913 +00000002@107914 +00000014@107916 +00000016@107917 +00000008@107919 +0000000a@107920 +00000030@107922 +00000032@107923 +00000004@107925 +00000006@107926 +0000003c@107928 +0000003e@107930 +0000003c@107931 +00000008@107932 +0000000a@107933 +00000008@107934 +00000000@107935 +00000002@107936 +00000000@107937 +00000002@107939 +00000010@107941 +00000012@107942 +00000008@107944 +0000000a@107945 +00000000@107947 +00000002@107948 +0000002c@107950 +0000002e@107951 +00000010@107953 +00000012@107954 +00000018@107956 +0000001a@107958 +00000018@107959 +00000010@107960 +00000012@107961 +00000010@107962 +0000003c@107963 +0000003e@107964 +0000003c@107965 +00000038@107966 +0000003a@107967 +00000028@107969 +0000002a@107970 +00000010@107972 +00000012@107973 +0000000c@107975 +0000000e@107976 +00000000@107978 +00000002@107979 +0000000c@107981 +0000000e@107982 +00000014@107984 +00000015@107986 +00000035@107987 +00000034@108017 +00000000@108019 +00000002@108020 +00000000@108021 +00000002@108023 +00000000@108025 +00000002@108026 +00000030@108028 +00000032@108029 +00000014@108031 +00000016@108032 +00000000@108034 +00000002@108035 +00000028@108037 +0000002a@108038 +00000014@108040 +00000016@108041 +00000028@108043 +0000002a@108045 +00000038@108046 +00000014@108047 +00000016@108048 +00000014@108049 +00000028@108050 +0000002a@108051 +00000028@108052 +00000014@108053 +00000016@108054 +00000000@108056 +00000002@108057 +0000000c@108059 +0000000e@108060 +00000000@108062 +00000002@108063 +0000000c@108065 +0000000e@108066 +00000000@108068 +00000002@108069 +00000004@108071 +00000006@108073 +0000000c@108074 +00000038@108075 +0000003a@108076 +00000038@108077 +00000000@108078 +00000002@108079 +00000000@108080 +00000010@108081 +00000012@108082 +0000003c@108084 +0000003e@108085 +0000003c@108087 +0000003e@108088 +00000040@108090 +00000002@108091 +00000000@108093 +00000002@108094 +00000008@108096 +0000000a@108097 +00000000@108099 +00000002@108101 +00000008@108102 +0000000c@108103 +0000000e@108104 +0000000c@108105 +00000004@108106 +00000006@108107 +00000004@108108 +00000020@108109 +00000022@108110 +00000010@108112 +00000012@108113 +00000018@108115 +0000001a@108116 +00000000@108118 +00000002@108119 +0000001c@108121 +0000001e@108122 +0000003c@108124 +0000003e@108125 +00000024@108127 +00000004@108128 +00000006@108129 +00000004@108130 +00000006@108132 +00000004@108133 +00000010@108134 +00000012@108135 +00000010@108136 +00000000@108137 +00000002@108138 +0000001c@108140 +0000001e@108141 +0000002c@108143 +0000002e@108144 +00000034@108146 +00000036@108147 +00000010@108149 +00000012@108150 +00000018@108152 +0000001a@108153 +00000020@108155 +00000021@108157 +00000031@108158 +00000030@108188 +00000000@108189 +00000002@108191 +00000000@108192 +00000002@108194 +00000000@108195 +00000002@108197 +0000002c@108199 +0000002e@108200 +00000024@108202 +00000026@108203 +00000020@108205 +00000022@108206 +00000028@108208 +0000002a@108209 +00000014@108211 +00000016@108212 +00000028@108214 +0000002a@108216 +0000001c@108217 +00000014@108218 +00000016@108219 +00000034@108220 +00000028@108221 +0000002a@108222 +00000028@108223 +00000014@108224 +00000016@108225 +00000014@108227 +00000016@108228 +0000002c@108230 +0000002e@108231 +00000004@108233 +00000006@108234 +00000020@108236 +00000022@108237 +00000010@108239 +00000012@108240 +0000003c@108242 +0000003e@108243 +0000003c@108245 +00000038@108246 +0000003a@108247 +00000038@108248 +00000028@108249 +0000002a@108250 +00000028@108251 +00000000@108252 +00000002@108253 +0000000c@108255 +0000000e@108256 +00000004@108258 +00000006@108259 +00000004@108261 +00000006@108262 +00000030@108264 +00000032@108265 +00000024@108267 +00000026@108268 +00000004@108270 +00000006@108271 +0000002c@108273 +00000028@108274 +0000002a@108275 +00000028@108276 +00000000@108277 +00000002@108278 +00000000@108279 +0000002c@108280 +0000002e@108281 +0000002c@108282 +00000004@108283 +00000006@108284 +00000020@108286 +00000022@108287 +00000034@108289 +00000036@108290 +0000000c@108292 +0000000e@108293 +00000004@108295 +00000006@108296 +00000020@108298 +00000022@108299 +00000024@108301 +00000004@108302 +00000006@108303 +0000000c@108304 +0000002c@108305 +0000002e@108306 +0000002c@108307 +0000001c@108308 +0000001e@108309 +0000001c@108310 +00000020@108311 +00000022@108312 +00000000@108314 +00000002@108315 +00000000@108317 +00000002@108318 +00000008@108320 +0000000a@108321 +0000002c@108323 +0000002e@108324 +00000014@108326 +00000016@108327 +00000004@108329 +00000006@108331 +00000034@108332 +00000036@108334 +00000034@108335 +00000000@108336 +00000002@108337 +00000000@108338 +0000003c@108339 +0000003e@108340 +00000028@108342 +0000002a@108343 +0000001c@108345 +0000001e@108346 +00000024@108348 +00000026@108349 +00000010@108351 +00000012@108352 +00000004@108354 +00000006@108355 +0000003c@108357 +0000003e@108358 +0000003c@108360 +00000008@108361 +0000000a@108362 +00000008@108363 +00000014@108364 +00000016@108365 +00000014@108366 +00000010@108367 +00000012@108368 +00000014@108370 +00000016@108371 +0000000c@108373 +0000000e@108374 +00000030@108376 +00000032@108377 +00000004@108379 +00000006@108380 +0000003c@108382 +0000003e@108383 +00000048@108385 +0000000a@108386 +00000008@108388 +00000000@108389 +00000002@108390 +00000000@108391 +00000002@108393 +00000000@108394 +00000010@108395 +00000012@108396 +0000000c@108398 +0000000e@108399 +0000000c@108401 +0000000e@108402 +0000000c@108404 +0000000e@108405 +0000003c@108407 +0000003e@108408 +00000060@108410 +00000022@108411 +00000004@108413 +00000006@108414 +0000000c@108416 +00000008@108417 +0000000a@108418 +00000008@108419 +0000000c@108420 +0000000e@108421 +0000000c@108422 +00000000@108423 +00000002@108424 +00000004@108426 +00000005@108427 +00000035@108429 +00000034@108458 +00000000@108460 +00000002@108461 +00000000@108463 +00000002@108464 +00000004@108466 +00000006@108467 +00000014@108469 +00000016@108470 +00000038@108472 +0000003a@108474 +00000000@108475 +00000002@108477 +00000028@108478 +0000002a@108480 +00000028@108481 +00000014@108482 +00000016@108483 +00000028@108485 +0000002a@108486 +00000014@108488 +00000016@108489 +00000028@108491 +0000002a@108492 +00000014@108494 +00000016@108495 +00000000@108497 +00000002@108498 +00000000@108500 +00000002@108502 +00000000@108503 +00000002@108505 +00000000@108506 +00000002@108508 +00000000@108509 +00000002@108511 +00000000@108513 +00000002@108514 +00000000@108516 +00000002@108517 +00000000@108519 +00000002@108520 +00000000@108522 +00000002@108523 +00000004@108525 +00000006@108526 +00000000@108528 +00000002@108530 +00000000@108531 +00000004@108532 +00000006@108533 +00000004@108534 +00000000@108535 +00000002@108536 +00000000@108537 +00000004@108538 +00000006@108539 +00000000@108541 +00000002@108542 +00000000@108544 +00000002@108545 +00000000@108547 +00000002@108548 +00000000@108550 +00000002@108551 +00000000@108553 +00000002@108554 +00000004@108556 +00000006@108557 +00000004@108559 +00000000@108560 +00000002@108561 +00000000@108562 +00000004@108563 +00000006@108564 +00000004@108565 +00000000@108566 +00000002@108567 +00000004@108569 +00000006@108570 +00000000@108572 +00000002@108573 +00000004@108575 +00000006@108576 +00000000@108578 +00000002@108579 +00000004@108581 +00000006@108582 +00000000@108584 +00000002@108585 +00000004@108587 +00000006@108589 +00000004@108590 +00000000@108591 +00000002@108592 +00000000@108593 +00000002@108595 +00000000@108596 +00000001@108598 +00000031@108600 +00000030@108629 +00000000@108631 +00000002@108632 +00000000@108634 +00000002@108635 +00000000@108637 +00000002@108638 +00000030@108640 +00000032@108641 +00000010@108643 +00000012@108645 +00000020@108646 +00000022@108648 +00000028@108649 +0000002a@108651 +00000028@108652 +00000014@108653 +00000016@108654 +00000028@108656 +0000002a@108657 +00000014@108659 +00000016@108660 +00000028@108662 +0000002a@108663 +00000014@108665 +00000016@108666 +00000010@108668 +00000012@108669 +0000003c@108671 +0000003e@108673 +0000003c@108674 +0000003e@108676 +0000003c@108677 +00000000@108678 +00000002@108679 +00000000@108680 +00000002@108682 +00000000@108684 +00000002@108685 +00000000@108687 +00000002@108688 +0000000c@108690 +0000000e@108691 +00000000@108693 +00000002@108694 +00000010@108696 +00000012@108697 +00000038@108699 +0000003a@108700 +00000038@108702 +00000000@108703 +00000002@108704 +00000000@108705 +00000010@108706 +00000012@108707 +00000010@108708 +0000003c@108709 +0000003e@108710 +0000003c@108712 +0000003e@108713 +00000000@108715 +00000002@108716 +00000000@108718 +00000001@108757 +00000031@108758 +00000030@108788 +00000000@108789 +00000002@108791 +00000000@108792 +00000002@108794 +00000000@108795 +00000002@108797 +0000002c@108799 +0000002e@108800 +0000002c@108802 +0000002e@108803 +00000020@108805 +00000022@108806 +00000028@108808 +0000002a@108809 +00000014@108811 +00000016@108812 +00000028@108814 +0000002a@108816 +00000038@108817 +00000014@108818 +00000016@108819 +00000034@108820 +00000028@108821 +0000002a@108822 +00000028@108823 +00000014@108824 +00000016@108825 +00000004@108827 +00000006@108828 +0000002c@108830 +0000002e@108831 +0000002c@108833 +0000002e@108834 +00000008@108836 +0000000a@108837 +0000003c@108839 +0000003e@108840 +0000002c@108842 +0000002e@108844 +0000003c@108845 +00000018@108846 +0000001a@108847 +00000018@108848 +00000000@108849 +00000002@108850 +00000000@108851 +0000003c@108852 +0000003e@108853 +0000002c@108855 +0000002e@108856 +00000018@108858 +0000001a@108859 +00000020@108861 +00000022@108862 +0000002c@108864 +0000002e@108865 +0000000c@108867 +0000000e@108868 +0000003c@108870 +0000003e@108871 +0000003c@108873 +00000004@108874 +00000006@108875 +00000004@108876 +0000003c@108877 +0000003e@108878 +0000003c@108879 +0000003e@108881 +0000000c@108883 +0000000e@108884 +0000003c@108886 +0000003e@108887 +00000044@108889 +00000006@108890 +00000014@108892 +00000016@108893 +00000034@108895 +00000036@108896 +00000000@108898 +00000002@108899 +0000002c@108901 +0000002e@108903 +0000002c@108904 +0000002e@108906 +0000002c@108907 +0000001c@108908 +0000001e@108909 +00000024@108911 +00000026@108912 +00000004@108914 +00000006@108915 +00000000@108917 +00000002@108918 +00000008@108920 +0000000a@108921 +0000002c@108923 +0000002e@108924 +00000004@108926 +00000005@108928 +00000035@108929 +00000034@108959 +00000004@108960 +00000000@108961 +00000002@108962 +00000000@108963 +00000002@108965 +00000000@108966 +00000004@108967 +00000006@108968 +00000014@108970 +00000016@108971 +00000014@108973 +00000016@108974 +00000000@108976 +00000002@108977 +00000028@108979 +0000002a@108980 +00000014@108982 +00000016@108983 +00000028@108985 +0000002a@108987 +00000038@108988 +00000014@108989 +00000016@108990 +00000034@108991 +00000028@108992 +0000002a@108993 +00000028@108994 +00000014@108995 +00000016@108996 +0000001c@108998 +0000001e@108999 +00000000@109001 +00000002@109002 +00000010@109004 +00000012@109005 +0000001c@109007 +0000001e@109008 +00000040@109010 +00000002@109011 +00000000@109013 +00000002@109015 +00000000@109016 +00000002@109018 +00000000@109019 +00000002@109021 +00000000@109022 +0000003c@109023 +0000003e@109024 +0000003c@109026 +0000003e@109027 +0000003c@109029 +0000003e@109030 +0000003c@109032 +0000003e@109033 +0000003c@109035 +0000003e@109036 +0000003c@109038 +0000003e@109039 +0000003c@109041 +0000003e@109042 +0000003c@109044 +0000003e@109046 +0000003c@109047 +0000003e@109049 +0000003c@109050 +0000003e@109052 +0000003c@109054 +0000003e@109055 +0000003c@109057 +0000003e@109058 +0000003c@109060 +0000003e@109061 +0000003c@109063 +0000003e@109064 +0000003c@109066 +0000003e@109067 +0000003c@109069 +0000003e@109070 +0000003c@109072 +0000003e@109074 +0000003c@109075 +0000003e@109077 +0000003c@109078 +0000003e@109080 +0000003c@109081 +0000003e@109083 +0000003c@109085 +0000003e@109086 +0000003c@109088 +0000003e@109089 +0000003c@109091 +0000003e@109092 +0000003c@109094 +0000003e@109095 +00000004@109097 +00000005@109099 +00000035@109100 +00000034@109130 +00000004@109131 +00000000@109132 +00000002@109133 +00000000@109134 +00000002@109136 +00000000@109137 +00000002@109139 +0000002c@109141 +0000002e@109142 +00000030@109144 +00000032@109145 +00000020@109147 +00000022@109148 +00000028@109150 +0000002a@109151 +00000014@109153 +00000016@109154 +00000028@109156 +0000002a@109158 +0000001c@109159 +00000014@109160 +00000016@109161 +00000030@109162 +00000028@109163 +0000002a@109164 +00000028@109165 +00000014@109166 +00000016@109167 +00000004@109169 +00000006@109170 +00000008@109172 +0000000a@109173 +00000034@109175 +00000036@109176 +00000020@109178 +00000022@109179 +0000002c@109181 +0000002e@109182 +0000002c@109184 +0000002e@109185 +0000003c@109187 +0000001c@109188 +0000001e@109189 +0000001c@109190 +00000024@109191 +00000026@109192 +00000024@109193 +00000000@109194 +00000002@109195 +00000018@109197 +0000001a@109198 +00000008@109200 +0000000a@109201 +0000002c@109203 +0000002e@109204 +00000040@109206 +00000002@109207 +0000003c@109209 +0000003e@109210 +00000034@109212 +00000036@109213 +00000034@109215 +00000024@109216 +00000026@109217 +0000002c@109218 +0000003c@109219 +0000003d@109220 +0000003c@109251 +00000000@109253 +00000002@109254 +00000000@109256 +00000002@109257 +00000000@109259 +00000002@109260 +0000002c@109262 +0000002e@109263 +0000003c@109265 +0000003e@109266 +00000040@109268 +00000002@109269 +00000028@109271 +0000002a@109273 +00000038@109274 +00000014@109275 +00000016@109276 +00000034@109277 +00000028@109278 +0000002a@109279 +00000028@109280 +00000014@109281 +00000016@109282 +00000028@109284 +0000002a@109285 +00000014@109287 +00000016@109288 +0000002c@109290 +0000002e@109291 +00000028@109293 +0000002a@109294 +0000001c@109296 +0000001e@109297 +00000024@109299 +00000026@109301 +00000034@109302 +00000010@109303 +00000012@109304 +00000010@109305 +00000004@109306 +00000006@109307 +00000004@109308 +0000003c@109309 +0000003e@109310 +00000008@109312 +0000000a@109313 +00000014@109315 +00000016@109316 +00000010@109318 +00000012@109319 +00000014@109321 +00000016@109322 +0000000c@109324 +0000000e@109325 +00000030@109327 +00000032@109328 +00000034@109330 +00000004@109331 +00000006@109332 +00000004@109333 +0000003c@109334 +0000003e@109335 +0000003c@109336 +00000008@109337 +0000000a@109338 +00000000@109340 +00000002@109341 +00000000@109343 +00000002@109344 +00000010@109346 +00000012@109347 +0000000c@109349 +0000000e@109350 +0000000c@109352 +0000000e@109353 +0000000c@109355 +0000000e@109356 +0000003c@109358 +0000003e@109360 +0000003c@109361 +00000020@109362 +00000022@109363 +00000020@109364 +00000004@109365 +00000006@109366 +00000008@109368 +0000000a@109369 +0000000c@109371 +0000000e@109372 +00000000@109374 +00000002@109375 +00000004@109377 +00000006@109378 +0000002c@109380 +0000002e@109381 +0000002c@109383 +0000002e@109384 +00000028@109386 +00000008@109387 +0000000a@109388 +00000008@109389 +0000003c@109390 +0000003e@109391 +0000003c@109392 +0000002c@109393 +0000002e@109394 +0000002c@109395 +00000018@109396 +0000001a@109397 +00000000@109399 +00000002@109400 +0000003c@109402 +0000003e@109403 +0000002c@109405 +0000002e@109406 +00000018@109408 +0000001a@109409 +00000020@109411 +00000022@109412 +0000002c@109414 +0000002e@109416 +0000002c@109417 +0000000c@109418 +0000000e@109419 +0000000c@109420 +0000003c@109421 +0000003e@109422 +0000003c@109423 +00000004@109424 +00000006@109425 +0000003c@109427 +0000003e@109428 +0000003c@109430 +0000003e@109431 +0000000c@109433 +0000000e@109434 +0000003c@109436 +0000003e@109437 +00000040@109439 +00000002@109440 +00000008@109442 +0000000a@109443 +00000038@109445 +00000034@109446 +00000036@109447 +00000034@109448 +00000004@109449 +00000006@109450 +00000004@109451 +00000010@109452 +00000012@109453 +0000003c@109455 +0000003e@109456 +0000003c@109458 +0000003e@109459 +00000040@109461 +00000002@109462 +00000000@109464 +00000002@109465 +00000008@109467 +0000000a@109468 +00000000@109470 +00000002@109471 +0000000c@109473 +0000000e@109475 +0000000c@109476 +00000008@109477 +0000000a@109478 +00000008@109479 +0000000c@109480 +0000000e@109481 +0000000c@109482 +00000038@109483 +0000003a@109484 +00000000@109486 +00000002@109487 +0000003c@109489 +0000003d@109490 +0000003c@109522 +00000000@109523 +00000002@109524 +00000000@109526 +00000002@109527 +00000004@109529 +00000006@109531 +00000014@109532 +00000016@109534 +00000010@109535 +00000018@109536 +0000001a@109537 +00000018@109538 +00000000@109539 +00000002@109540 +00000028@109542 +0000002a@109543 +00000014@109545 +00000016@109546 +00000028@109548 +0000002a@109549 +00000014@109551 +00000016@109552 +00000028@109554 +0000002a@109555 +00000014@109557 +00000016@109558 +00000014@109560 +00000004@109561 +00000006@109562 +00000004@109563 +00000020@109564 +00000022@109565 +00000020@109566 +00000000@109567 +00000002@109568 +00000000@109570 +00000002@109571 +00000008@109573 +0000000a@109574 +00000000@109576 +00000002@109577 +00000000@109579 +00000002@109580 +00000000@109582 +00000002@109583 +0000000c@109585 +0000000e@109586 +00000000@109588 +00000002@109590 +00000000@109591 +00000002@109593 +00000000@109594 +00000002@109596 +00000000@109597 +00000010@109598 +00000012@109599 +00000010@109601 +00000012@109602 +00000000@109604 +00000002@109605 +00000000@109607 +00000002@109608 +0000003c@109610 +0000003e@109611 +0000003c@109613 +0000003e@109614 +0000003c@109616 +0000003e@109618 +0000003c@109619 +0000003e@109621 +0000003c@109622 +0000003e@109624 +0000003c@109625 +0000003e@109627 +0000003c@109629 +0000003e@109630 +0000003c@109632 +0000003e@109633 +00000010@109635 +00000012@109636 +00000020@109638 +00000022@109639 +00000000@109641 +00000002@109642 +00000000@109644 +00000002@109646 +00000000@109647 +00000010@109648 +00000012@109649 +00000010@109650 +00000030@109651 +00000032@109652 +00000030@109653 +00000000@109654 +00000002@109655 +00000000@109657 +00000002@109658 +00000014@109660 +00000015@109661 +00000035@109663 +00000034@109693 +00000000@109694 +00000002@109695 +00000000@109697 +00000002@109698 +00000000@109700 +00000002@109701 +00000030@109703 +00000032@109705 +00000004@109706 +00000006@109708 +00000004@109709 +00000000@109710 +00000002@109711 +00000000@109712 +00000028@109713 +0000002a@109714 +00000014@109716 +00000016@109717 +00000028@109719 +0000002a@109720 +00000014@109722 +00000016@109723 +00000028@109725 +0000002a@109726 +00000014@109728 +00000016@109729 +0000003c@109731 +0000003e@109733 +0000003c@109734 +0000002c@109735 +0000002e@109736 +0000002c@109737 +00000018@109738 +0000001a@109739 +00000018@109740 +00000020@109741 +00000022@109742 +00000000@109744 +00000002@109745 +0000000c@109747 +0000000e@109748 +0000003c@109750 +0000003e@109751 +00000044@109753 +00000006@109754 +00000020@109756 +00000022@109757 +00000020@109759 +00000000@109760 +00000002@109761 +00000010@109762 +00000012@109764 +00000010@109765 +0000000c@109766 +0000000e@109767 +0000000c@109768 +00000000@109769 +00000002@109770 +0000000c@109772 +0000000e@109773 +0000003c@109775 +0000003e@109776 +00000014@109778 +00000016@109779 +00000028@109781 +0000002a@109782 +00000000@109784 +00000002@109785 +00000008@109787 +0000000a@109789 +00000008@109790 +0000000c@109791 +0000000e@109792 +0000000c@109793 +00000004@109794 +00000006@109795 +00000004@109796 +0000002c@109797 +0000002e@109798 +00000018@109800 +0000001a@109801 +00000020@109803 +00000022@109804 +0000002c@109806 +0000002e@109807 +0000002c@109809 +0000002e@109810 +00000018@109812 +0000001a@109813 +00000000@109815 +00000002@109817 +0000002c@109818 +0000002e@109820 +0000002c@109821 +0000002e@109823 +0000002c@109824 +00000018@109825 +0000001a@109826 +00000020@109828 +00000022@109829 +00000008@109831 +0000000a@109832 +0000000c@109834 +0000000e@109835 +0000003c@109837 +0000003e@109838 +00000040@109840 +00000002@109841 +0000001c@109843 +0000001e@109844 +0000001c@109846 +00000000@109847 +00000002@109848 +00000008@109849 +00000018@109850 +0000001a@109851 +00000018@109852 +0000000c@109853 +0000000e@109854 +0000002c@109856 +0000002e@109857 +0000002c@109859 +0000002e@109860 +00000018@109862 +0000001a@109863 +00000000@109865 +00000002@109866 +0000003c@109868 +0000003e@109869 +0000002c@109871 +0000002e@109872 +0000003c@109874 +0000001c@109875 +0000001e@109876 +0000001c@109877 +00000024@109878 +00000026@109879 +00000024@109880 +00000010@109881 +00000012@109882 +00000010@109883 +0000003c@109884 +0000003e@109885 +00000038@109887 +0000003a@109888 +00000028@109890 +0000002a@109891 +00000000@109893 +00000002@109894 +0000000c@109896 +0000000e@109897 +00000018@109899 +0000001a@109900 +0000000c@109902 +0000000e@109904 +0000000c@109905 +00000004@109906 +00000006@109907 +00000004@109908 +00000028@109909 +0000002a@109910 +00000028@109911 +00000010@109912 +00000012@109913 +00000018@109915 +0000001a@109916 +0000002c@109918 +0000002e@109919 +0000002c@109921 +0000002e@109922 +00000018@109924 +0000001a@109925 +00000020@109927 +00000022@109928 +00000010@109930 +00000012@109932 +00000018@109933 +00000008@109934 +0000000a@109935 +00000008@109936 +00000038@109937 +0000003a@109938 +00000038@109939 +00000028@109940 +0000002a@109941 +00000000@109943 +00000002@109944 +0000000c@109946 +0000000e@109947 +00000000@109949 +00000002@109950 +0000000c@109952 +0000000e@109953 +00000010@109955 +00000012@109956 +0000000c@109958 +0000000e@109959 +0000003c@109961 +0000003e@109963 +0000003c@109964 +00000010@109965 +00000012@109966 +00000010@109967 +00000000@109968 +00000002@109969 +00000000@109971 +00000002@109972 +00000018@109974 +0000001a@109975 +0000000c@109977 +0000000e@109978 +0000002c@109980 +0000002e@109981 +0000002c@109983 +0000002e@109984 +00000018@109986 +0000001a@109987 +00000010@109989 +00000000@109990 +00000002@109991 +00000008@109992 +0000003c@109993 +0000003e@109994 +0000003c@109995 +0000002c@109996 +0000002e@109997 +0000002c@109998 +00000018@109999 +0000001a@110000 +00000020@110002 +00000022@110003 +00000000@110005 +00000002@110006 +0000000c@110008 +0000000e@110009 +0000003c@110011 +0000003e@110012 +00000044@110014 +00000006@110015 +00000020@110017 +00000022@110019 +00000020@110020 +00000000@110021 +00000002@110022 +00000000@110023 +00000010@110024 +00000012@110025 +00000010@110026 +0000000c@110027 +0000000e@110028 +00000000@110030 +00000002@110031 +0000000c@110033 +0000000e@110034 +0000003c@110036 +0000003e@110037 +00000014@110039 +00000016@110040 +00000028@110042 +0000002a@110043 +00000000@110045 +00000002@110046 +00000008@110048 +0000000a@110050 +00000008@110051 +0000000c@110052 +0000000e@110053 +0000000c@110054 +0000002c@110055 +0000002e@110056 +0000002c@110057 +00000028@110058 +0000002a@110059 +00000018@110061 +0000001a@110062 +00000020@110064 +00000022@110065 +00000004@110067 +00000006@110068 +00000028@110070 +0000002a@110071 +00000018@110073 +0000001a@110074 +00000018@110076 +00000000@110077 +00000002@110078 +00000000@110079 +00000010@110080 +00000011@110154 +00000031@110156 +00000030@110186 +00000000@110187 +00000002@110188 +00000000@110190 +00000002@110192 +00000000@110193 +00000002@110195 +00000030@110196 +00000032@110198 +00000030@110199 +00000014@110200 +00000016@110201 +00000020@110203 +00000022@110204 +00000028@110206 +0000002a@110207 +00000014@110209 +00000016@110210 +00000028@110212 +0000002a@110213 +00000014@110215 +00000016@110216 +00000028@110218 +0000002a@110220 +00000038@110221 +00000014@110222 +00000016@110223 +00000014@110224 +00000004@110225 +00000006@110226 +00000020@110228 +00000022@110229 +00000010@110231 +00000012@110232 +00000018@110234 +0000001a@110235 +00000000@110237 +00000002@110238 +0000001c@110240 +0000001e@110241 +0000003c@110243 +0000003e@110244 +00000034@110246 +00000004@110247 +00000006@110248 +00000004@110249 +00000006@110251 +00000004@110252 +00000010@110253 +00000012@110254 +00000010@110255 +00000000@110256 +00000002@110257 +0000001c@110259 +0000001e@110260 +0000002c@110262 +0000002e@110263 +00000034@110265 +00000036@110266 +00000010@110268 +00000012@110269 +00000018@110271 +0000001a@110272 +00000030@110274 +00000020@110275 +00000022@110276 +00000020@110277 +00000000@110278 +00000002@110279 +00000000@110280 +0000002c@110281 +0000002e@110282 +0000002c@110283 +00000030@110284 +00000032@110285 +0000001c@110287 +0000001e@110288 +00000000@110290 +00000002@110291 +00000010@110293 +00000012@110294 +0000001c@110296 +0000001e@110297 +00000020@110299 +00000022@110300 +00000020@110302 +00000000@110303 +00000002@110304 +00000008@110305 +0000002c@110306 +0000002e@110307 +0000002c@110308 +00000010@110309 +00000012@110310 +00000010@110311 +00000020@110312 +00000022@110313 +00000024@110315 +00000026@110316 +0000002c@110318 +0000002e@110319 +00000000@110321 +00000002@110322 +00000000@110324 +00000002@110325 +00000000@110327 +00000002@110328 +00000028@110330 +0000002a@110331 +00000038@110333 +0000003c@110334 +0000003e@110335 +0000003c@110336 +0000001c@110337 +0000001e@110338 +0000001c@110339 +00000020@110340 +00000022@110341 +00000018@110343 +0000001a@110344 +00000000@110346 +00000002@110347 +00000010@110349 +00000012@110350 +0000003c@110352 +0000003e@110353 +0000003c@110355 +0000003e@110356 +00000040@110358 +00000002@110359 +00000000@110361 +00000002@110363 +00000000@110364 +00000002@110366 +00000000@110367 +00000002@110369 +00000000@110370 +0000000c@110371 +0000000e@110372 +0000001c@110374 +0000001e@110375 +0000002c@110377 +0000002e@110378 +00000018@110380 +0000001a@110381 +00000004@110383 +00000006@110384 +00000010@110386 +00000012@110387 +0000003c@110389 +0000003e@110391 +0000003c@110392 +0000003e@110394 +0000003c@110395 +00000000@110396 +00000002@110397 +00000000@110398 +00000002@110400 +00000000@110402 +00000002@110403 +00000000@110405 +00000002@110406 +0000000c@110408 +0000000e@110409 +0000000c@110411 +0000000e@110412 +0000002c@110414 +0000002e@110415 +00000038@110417 +00000018@110418 +0000001a@110419 +00000018@110420 +00000004@110421 +00000006@110422 +00000004@110423 +00000010@110424 +00000011@110425 +00000031@110427 +00000030@110456 +00000000@110458 +00000002@110459 +00000000@110461 +00000002@110462 +00000000@110464 +00000002@110465 +00000014@110467 +00000016@110468 +00000028@110470 +0000002a@110471 +00000020@110473 +00000022@110474 +00000028@110476 +0000002a@110478 +00000038@110479 +00000014@110480 +00000016@110481 +00000014@110482 +00000028@110483 +0000002a@110484 +00000014@110486 +00000016@110487 +00000028@110489 +0000002a@110490 +00000014@110492 +00000016@110493 +00000010@110495 +00000012@110496 +0000003c@110498 +0000003e@110499 +0000003c@110501 +0000003e@110502 +0000003c@110504 +00000000@110505 +00000002@110506 +00000000@110507 +00000002@110509 +00000000@110510 +00000018@110511 +0000001a@110512 +00000018@110513 +00000000@110514 +00000002@110515 +00000000@110517 +00000002@110518 +00000000@110520 +00000002@110521 +00000000@110523 +00000002@110524 +0000003c@110526 +0000003e@110527 +00000060@110529 +00000002@110530 +00000014@110532 +00000016@110534 +00000014@110535 +00000028@110536 +0000002a@110537 +00000028@110538 +0000003c@110539 +0000003e@110540 +0000003c@110541 +0000002c@110542 +0000002e@110543 +00000010@110545 +00000012@110546 +0000003c@110548 +0000003e@110549 +0000003c@110551 +0000003e@110552 +00000040@110554 +00000002@110555 +00000000@110557 +00000002@110558 +00000024@110560 +00000026@110562 +00000024@110563 +00000000@110564 +00000002@110565 +00000000@110566 +00000002@110568 +00000000@110569 +00000010@110570 +00000012@110571 +0000003c@110573 +0000003e@110574 +0000003c@110576 +0000003e@110577 +00000040@110579 +00000002@110580 +00000000@110582 +00000002@110583 +00000004@110585 +00000006@110586 +00000000@110588 +00000002@110590 +00000000@110591 +00000004@110592 +00000006@110593 +00000004@110594 +00000000@110595 +00000002@110596 +00000000@110597 +00000002@110599 +0000003c@110601 +0000003e@110602 +00000000@110604 +00000002@110605 +00000030@110607 +00000032@110608 +00000020@110610 +00000022@110611 +0000003c@110613 +0000003e@110614 +00000024@110616 +00000026@110617 +00000034@110619 +00000010@110620 +00000012@110621 +00000018@110622 +0000003c@110623 +0000003e@110624 +0000003c@110625 +0000003e@110627 +0000003c@110628 +00000000@110629 +00000002@110630 +00000000@110632 +00000002@110633 +00000024@110635 +00000026@110636 +00000000@110638 +00000002@110639 +00000000@110641 +00000002@110642 +00000010@110644 +00000011@110646 +00000031@110647 +00000030@110677 +00000000@110678 +00000002@110680 +00000000@110681 +00000002@110683 +00000000@110684 +00000002@110686 +00000030@110688 +00000032@110689 +0000001c@110691 +0000001e@110692 +00000020@110694 +00000022@110695 +00000028@110697 +0000002a@110698 +00000014@110700 +00000016@110701 +00000028@110703 +0000002a@110704 +00000014@110706 +00000016@110708 +00000030@110709 +00000028@110710 +0000002a@110711 +00000028@110712 +00000014@110713 +00000016@110714 +00000010@110716 +00000012@110717 +0000003c@110719 +0000003e@110720 +0000003c@110722 +0000003e@110723 +00000040@110725 +00000002@110726 +00000000@110728 +00000002@110729 +00000000@110731 +00000002@110732 +00000000@110734 +00000002@110736 +00000000@110737 +0000000c@110738 +0000000e@110739 +0000000c@110740 +0000003c@110741 +0000003e@110742 +0000003c@110743 +0000002c@110744 +0000002e@110745 +00000018@110747 +0000001a@110748 +00000004@110750 +00000006@110751 +00000010@110753 +00000012@110754 +0000003c@110756 +0000003e@110757 +0000003c@110759 +0000003e@110760 +0000003c@110762 +00000000@110763 +00000002@110764 +00000000@110765 +00000002@110767 +00000000@110768 +00000004@110769 +00000006@110770 +00000004@110771 +00000000@110772 +00000002@110773 +0000000c@110775 +0000000e@110776 +0000002c@110778 +0000002e@110779 +0000002c@110781 +0000002e@110782 +00000018@110784 +0000001a@110785 +00000004@110787 +00000006@110788 +00000010@110790 +00000012@110792 +00000018@110793 +0000003c@110794 +0000003e@110795 +0000003c@110796 +0000003e@110798 +0000003c@110799 +00000000@110800 +00000002@110801 +00000000@110803 +00000002@110804 +00000000@110806 +00000002@110807 +00000000@110809 +00000002@110810 +0000000c@110812 +0000000e@110813 +00000030@110815 +00000032@110816 +00000030@110818 +00000010@110819 +00000012@110820 +00000018@110821 +0000003c@110822 +0000003e@110823 +0000003c@110824 +00000008@110825 +0000000a@110826 +00000008@110827 +00000000@110828 +00000002@110829 +00000014@110831 +00000016@110832 +00000000@110834 +00000002@110835 +0000000c@110837 +0000000e@110838 +00000014@110840 +00000016@110841 +0000002c@110843 +0000002e@110844 +00000018@110846 +0000001a@110848 +00000038@110849 +00000030@110850 +00000032@110851 +00000030@110852 +00000000@110853 +00000002@110854 +00000000@110855 +0000000c@110856 +0000000e@110857 +0000003c@110859 +0000003e@110860 +00000000@110862 +00000002@110863 +0000001c@110865 +0000001e@110866 +00000060@110868 +00000002@110869 +00000018@110871 +0000001a@110872 +0000000c@110874 +0000000e@110875 +00000018@110877 +00000010@110878 +00000012@110879 +00000018@110880 +0000003c@110881 +0000003e@110882 +0000003c@110883 +00000038@110884 +0000003a@110885 +00000038@110886 +00000028@110887 +0000002a@110888 +00000004@110890 +00000006@110891 +0000000c@110893 +0000000e@110894 +00000018@110896 +0000001a@110897 +0000000c@110899 +0000000e@110900 +0000003c@110902 +0000003e@110903 +0000002c@110905 +0000002e@110907 +0000003c@110908 +00000018@110909 +0000001a@110910 +00000018@110911 +00000000@110912 +00000002@110913 +00000000@110914 +00000010@110915 +00000012@110916 +00000000@110918 +00000002@110919 +0000003c@110921 +0000003e@110922 +00000048@110924 +0000000a@110925 +00000000@110927 +00000002@110928 +00000000@110930 +00000002@110931 +00000000@110933 +00000002@110935 +00000008@110936 +0000000c@110937 +0000000e@110938 +0000000c@110939 +00000030@110940 +00000032@110941 +00000030@110942 +00000004@110943 +00000006@110944 +0000003c@110946 +0000003e@110947 +00000008@110949 +0000000a@110950 +00000000@110952 +00000002@110953 +00000000@110955 +00000002@110956 +00000000@110958 +00000002@110959 +0000000c@110961 +0000000e@110962 +0000003c@110964 +0000003e@110966 +0000003c@110967 +00000028@110968 +0000002a@110969 +00000028@110970 +00000018@110971 +0000001a@110972 +00000020@110974 +00000022@110975 +00000014@110977 +00000016@110978 +0000000c@110980 +0000000e@110981 +0000003c@110983 +0000003e@110984 +00000060@110986 +00000022@110987 +00000008@110989 +0000000a@110990 +00000008@110992 +0000000a@110994 +00000008@110995 +0000000c@110996 +0000000e@110997 +0000000c@110998 +00000000@110999 +00000002@111000 +00000000@111001 +0000002c@111002 +0000002e@111003 +0000002c@111005 +0000002e@111006 +00000018@111008 +0000001a@111009 +00000000@111011 +00000002@111012 +0000002c@111014 +0000002e@111015 +0000002c@111017 +0000002e@111018 +00000038@111020 +00000018@111021 +0000001a@111022 +00000038@111023 +00000020@111024 +00000022@111025 +00000020@111026 +0000001c@111027 +0000001e@111028 +0000001c@111029 +00000028@111030 +0000002a@111031 +00000018@111033 +0000001a@111034 +00000020@111036 +00000022@111037 +00000000@111039 +00000002@111040 +00000008@111042 +0000000a@111043 +0000003c@111045 +0000003e@111046 +0000002c@111048 +0000002e@111049 +0000002c@111051 +00000000@111052 +00000002@111053 +00000008@111054 +0000000c@111055 +0000000e@111056 +0000000c@111057 +0000003c@111058 +0000003e@111059 +0000003c@111060 +0000000c@111061 +0000000e@111062 +0000002c@111064 +0000002e@111065 +0000002c@111067 +0000002e@111068 +00000018@111070 +0000001a@111071 +00000000@111073 +00000002@111074 +0000001c@111076 +0000001e@111077 +0000003c@111079 +0000002c@111080 +0000002e@111081 +0000002c@111082 +00000018@111083 +0000001a@111084 +00000018@111085 +00000020@111086 +00000022@111087 +00000020@111088 +00000000@111089 +00000002@111090 +0000000c@111092 +0000000e@111093 +0000003c@111095 +0000003e@111096 +00000044@111098 +00000006@111099 +0000003c@111101 +0000003e@111102 +0000003c@111104 +0000003e@111105 +0000003c@111107 +0000000c@111108 +0000000e@111109 +0000000c@111110 +0000000e@111112 +0000000c@111113 +0000001c@111114 +0000001e@111115 +0000001c@111116 +0000002c@111117 +0000002e@111118 +00000018@111120 +0000001a@111121 +00000004@111123 +00000006@111124 +00000010@111126 +00000012@111127 +0000003c@111129 +0000003e@111130 +0000003c@111132 +0000003e@111133 +00000030@111135 +00000000@111136 +00000002@111137 +00000000@111138 +00000002@111140 +00000000@111141 +00000002@111143 +00000000@111144 +00000002@111146 +00000008@111148 +0000000a@111149 +00000030@111151 +00000032@111152 +00000010@111154 +00000012@111155 +0000003c@111157 +0000003e@111158 +00000048@111160 +0000000a@111161 +00000000@111163 +00000002@111164 +00000014@111166 +00000016@111168 +00000014@111169 +00000000@111170 +00000002@111171 +00000000@111172 +00000008@111173 +0000000a@111174 +00000010@111176 +00000012@111177 +0000003c@111179 +0000003e@111180 +0000003c@111182 +0000003e@111183 +00000040@111185 +00000002@111186 +00000000@111188 +00000002@111189 +00000000@111191 +00000002@111192 +00000000@111194 +00000002@111196 +00000000@111197 +0000000c@111198 +0000000e@111199 +0000000c@111200 +00000030@111201 +00000032@111202 +00000010@111204 +00000012@111205 +0000003c@111207 +0000003e@111208 +00000048@111210 +0000000a@111211 +00000000@111213 +00000002@111214 +00000014@111216 +00000016@111217 +00000000@111219 +00000002@111220 +0000000c@111222 +0000000e@111224 +0000000c@111225 +00000014@111226 +00000016@111227 +00000014@111228 +0000002c@111229 +0000002e@111230 +00000018@111232 +0000001a@111233 +00000030@111235 +00000032@111236 +00000004@111238 +00000006@111239 +00000024@111241 +00000026@111242 +00000010@111244 +00000012@111245 +00000018@111247 +0000001a@111248 +00000010@111250 +00000012@111252 +00000010@111253 +00000030@111254 +00000032@111255 +00000030@111256 +0000003c@111257 +0000003e@111258 +0000003c@111259 +00000018@111260 +0000001a@111261 +0000000c@111263 +0000000e@111264 +00000034@111266 +00000036@111267 +00000010@111269 +00000012@111270 +0000000c@111272 +0000000e@111273 +00000030@111275 +00000032@111276 +0000003c@111278 +0000003e@111280 +0000003c@111281 +0000003e@111283 +0000003c@111284 +00000018@111285 +0000001a@111286 +00000018@111287 +00000000@111288 +00000002@111289 +00000000@111291 +00000002@111292 +0000001c@111294 +0000001e@111295 +0000000c@111297 +0000000e@111298 +00000000@111300 +00000002@111301 +00000004@111303 +00000006@111304 +00000038@111306 +0000003a@111308 +00000038@111309 +00000028@111310 +0000002a@111311 +00000028@111312 +00000000@111313 +00000002@111314 +00000000@111315 +0000000c@111316 +0000000e@111317 +00000000@111319 +00000002@111320 +0000000c@111322 +0000000e@111323 +00000014@111325 +00000016@111326 +0000000c@111328 +0000000e@111329 +00000018@111331 +0000001a@111332 +00000010@111334 +00000012@111336 +00000018@111337 +0000002c@111338 +0000002e@111339 +0000002c@111340 +00000028@111341 +0000002a@111342 +00000028@111343 +00000018@111344 +0000001a@111345 +00000020@111347 +00000022@111348 +00000010@111350 +00000012@111351 +00000014@111353 +00000016@111354 +0000003c@111356 +0000003e@111357 +00000018@111359 +0000001a@111360 +0000003c@111362 +0000003e@111363 +0000003c@111365 +0000003e@111367 +0000003c@111368 +00000018@111369 +0000001a@111370 +00000018@111371 +0000000c@111372 +0000000e@111373 +00000030@111375 +00000032@111376 +00000000@111378 +00000002@111413 +0000003c@111418 +0000003e@111424 +00000018@111430 +0000001a@111436 +00000010@111443 +00000012@111449 +00000030@111456 +00000032@111463 +00000004@111470 +00000006@111477 +0000000c@111485 +0000000e@111492 +00000024@111500 +00000026@111508 +00000028@111517 +0000002a@111525 +00000010@111535 +00000012@111545 +00000008@111555 +0000000a@111566 +0000000c@111577 +0000000e@111588 +0000000c@111601 +00000000@111602 +00000002@111615 +00000034@111631 +00000036@111647 +00000020@111668 +00000022@111689 +00000020@111714 +00000000@111715 +00000002@111744 +00000000@111767 +0000001c@111768 +0000001e@111791 +00000038@111821 +0000003a@111862 +00000040@111910 +00000000@111911 +00000002@111998 +00000000@112054 +0000003c@112055 +0000003e@112108 +0000002c@112210 +0000002e@112302 +0000002c@112356 +00000018@112357 +0000001a@112439 +00000024@112495 +00000026@112584 +00000024@112632 +00000000@112633 +00000002@112695 +0000000c@112784 +0000000e@112839 +0000000c@112946 +0000003c@112947 +0000003e@113032 +00000004@113108 +00000006@113180 +00000000@113228 +00000002@113289 +00000004@113401 +00000006@113468 +00000000@113565 +00000002@113620 +0000000c@113702 +0000000e@113762 +0000000c@113859 +0000003c@113860 +0000003e@113932 +0000003c@114045 +0000002c@114046 +0000002e@114094 +00000018@114143 +0000001a@114239 +00000004@114303 +00000006@114343 +0000002c@114407 +0000002e@114516 +0000002c@114584 +0000002e@114673 +0000002c@114713 +00000018@114714 +0000001a@114777 +00000024@114897 +00000026@114949 +00000010@115020 +00000012@115120 +0000003c@115200 +0000003e@115264 +0000003c@115340 +00000038@115341 +0000003a@115403 +00000028@115464 +0000002a@115555 +00000010@115601 +00000011@115701 +00000031@115758 +00000030@117171 +00000000@117262 +00000002@117328 +00000000@117408 +00000002@117458 +00000000@117508 +00000002@117610 +00000000@117655 +00000034@117656 +00000036@117711 +00000010@117801 +00000012@117866 +00000020@117944 +00000022@118011 +00000028@118106 +0000002a@118165 +0000003c@118248 +00000014@118249 +00000016@118310 +00000014@118374 +00000028@118375 +0000002a@118469 +00000014@118527 +00000016@118612 +00000028@118673 +0000002a@118731 +00000038@118841 +00000014@118842 +00000016@118888 +00000014@118961 +00000016@119033 +00000028@119107 +0000002a@119189 +00000028@119253 +00000018@119254 +0000001a@119308 +00000010@119409 +00000012@119465 +00000010@119544 +00000008@119545 +0000000a@119605 +00000008@119693 +00000014@119694 +00000016@119766 +00000038@119851 +0000003a@119894 +00000040@119975 +00000000@119976 +00000002@120070 +00000000@120122 +0000002c@120123 +0000002e@120234 +00000028@120291 +0000002a@120354 +00000038@120427 +00000018@120428 +0000001a@120510 +00000020@120570 +00000022@120655 +00000010@120716 +00000012@120819 +00000030@120864 +00000032@120931 +0000003c@121031 +0000003e@121085 +0000003c@121141 +00000018@121142 +0000001a@121227 +0000003c@121277 +0000003e@121354 +0000003c@121414 +0000003e@121456 +0000001c@121523 +0000001e@121610 +0000000c@121696 +0000000e@121753 +00000030@121827 +00000032@121894 +00000004@121978 +00000006@122037 +0000003c@122143 +0000003e@122215 +00000048@122278 +00000008@122279 +0000000a@122360 +00000004@122476 +00000006@122530 +00000008@122601 +0000000a@122695 +00000008@122791 +0000000c@122792 +0000000e@122862 +0000000c@122933 +0000000e@123015 +0000000c@123066 +00000024@123067 +00000026@123159 +00000028@123231 +0000002a@123293 +00000010@123390 +00000012@123438 +00000008@123528 +0000000a@123590 +00000008@123650 +00000004@123651 +00000005@123745 +00000035@123821 +00000034@125217 +00000000@125328 +00000002@125392 +00000000@125446 +00000002@125554 +00000000@125613 +00000002@125652 +00000000@125713 +00000030@125714 +00000032@125810 +0000003c@125856 +0000003e@125930 +00000060@125988 +00000020@125989 +00000022@126032 +00000028@126103 +0000002a@126190 +0000001c@126234 +00000014@126235 +00000016@126325 +00000028@126383 +0000002a@126447 +00000014@126528 +00000016@126618 +00000028@126695 +0000002a@126752 +00000014@126840 +00000016@126894 +00000010@126972 +00000012@127036 +0000000c@127116 +0000000e@127176 +0000000c@127270 +00000000@127271 +00000002@127343 +00000008@127408 +0000000c@127409 +0000000e@127503 +0000000c@127571 +0000002c@127572 +0000002e@127653 +0000002c@127740 +0000002e@127825 +00000018@127897 +0000001a@127981 +00000004@128048 +00000006@128113 +00000004@128166 +0000002c@128167 +0000002e@128242 +0000002c@128323 +0000002e@128411 +00000018@128471 +0000001a@128571 +00000018@128624 +00000024@128625 +00000026@128706 +00000024@128776 +0000002c@128777 +0000002e@128865 +0000002c@128930 +00000028@128931 +0000002a@129012 +00000018@129069 +0000001a@129137 +00000020@129194 +00000022@129248 +00000000@129354 +00000002@129406 +00000008@129492 +0000000a@129579 +00000008@129637 +0000003c@129638 +0000003e@129731 +0000002c@129835 +0000002e@129886 +00000000@129956 +00000002@130023 +0000000c@130119 +0000000e@130193 +0000003c@130266 +0000003e@130342 +0000000c@130416 +0000000e@130485 +00000010@130525 +00000012@130575 +0000003c@130671 +0000003e@130714 +00000038@130772 +0000003a@130849 +00000038@130932 +00000028@130933 +0000002a@131028 +00000028@131079 +00000010@131080 +00000012@131158 +0000000c@131222 +0000000e@131284 +00000000@131384 +00000002@131424 +00000008@131520 +0000000a@131582 +00000010@131661 +00000012@131737 +00000014@131797 +00000016@131880 +0000003c@131953 +0000003e@132018 +0000003c@132124 +00000018@132125 +0000001a@132187 +0000003c@132266 +0000003e@132335 +0000003c@132383 +0000003e@132459 +0000003c@132519 +00000018@132520 +0000001a@132581 +00000018@132671 +0000000c@132672 +0000000e@132733 +00000030@132823 +00000032@132904 +00000030@132987 +00000000@132988 +00000002@133031 +0000003c@133100 +0000003e@133165 +00000018@133253 +0000001a@133333 +00000010@133410 +00000012@133462 +00000030@133553 +00000032@133629 +00000024@133673 +00000004@133674 +00000006@133742 +0000000c@133813 +0000000e@133876 +0000000c@133961 +00000024@133962 +00000026@134044 +00000028@134120 +0000002a@134207 +00000010@134265 +00000012@134368 +00000010@134414 +00000008@134415 +0000000a@134529 +00000038@134587 +0000003a@134657 +00000038@134740 +0000002c@134741 +0000002e@134818 +00000034@134918 +00000036@134989 +00000034@135076 +00000024@135077 +00000026@135127 +00000024@135232 +00000010@135233 +00000012@135296 +0000003c@135340 +0000003e@135409 +0000003c@135490 +0000003e@135551 +00000000@135637 +00000002@135704 +00000000@135784 +00000002@135844 +00000000@135907 +00000002@135995 +00000000@136048 +00000002@136140 +0000000c@136202 +0000000e@136295 +0000000c@136363 +00000030@136364 +00000032@136445 +00000010@136511 +00000012@136568 +0000003c@136670 +0000003e@136721 +0000003c@136802 +00000008@136803 +0000000a@136871 +00000000@136940 +00000002@137016 +00000000@137082 +00000014@137083 +00000016@137155 +00000014@137242 +00000000@137243 +00000002@137313 +0000000c@137387 +0000000e@137456 +00000010@137545 +00000012@137629 +0000003c@137685 +0000003e@137761 +0000003c@137801 +0000003e@137851 +00000040@137968 +00000000@137969 +00000002@138020 +00000000@138119 +00000002@138179 +00000000@138258 +00000002@138332 +00000000@138382 +00000002@138486 +00000008@138576 +0000000a@138645 +00000030@138705 +00000032@138786 +00000010@138831 +00000012@138894 +00000010@138978 +0000003c@138979 +0000003e@139030 +00000008@139135 +0000000a@139194 +00000008@139293 +00000000@139294 +00000002@139346 +00000014@139451 +00000016@139509 +00000014@139610 +00000000@139611 +00000002@139677 +00000008@139758 +0000000a@139848 +00000008@139893 +00000014@139894 +00000016@139988 +00000014@140049 +00000008@140050 +0000000a@140149 +00000008@140221 +00000018@140222 +0000001a@140294 +00000030@140388 +00000032@140449 +00000004@140536 +00000006@140611 +00000004@140716 +00000006@140768 +00000010@140882 +00000012@140950 +00000018@141051 +0000001a@141125 +00000018@141194 +0000001c@141195 +0000001e@141270 +0000001c@141350 +00000028@141351 +0000002a@141390 +00000038@141456 +00000018@141457 +0000001a@141522 +00000038@141614 +00000024@141615 +00000026@141691 +00000010@141751 +00000012@141842 +0000003c@141926 +0000003e@141978 +0000003c@142031 +00000038@142032 +0000003a@142134 +00000038@142198 +00000028@142199 +0000002a@142286 +00000028@142349 +00000000@142350 +00000002@142448 +00000000@142516 +00000008@142517 +0000000a@142575 +00000010@142688 +00000012@142778 +00000000@142845 +00000002@142945 +00000008@143002 +0000000c@143003 +0000000e@143113 +00000028@143171 +0000002a@143253 +00000018@143299 +0000001a@143348 +00000018@143460 +00000024@143461 +00000026@143522 +00000024@143622 +00000010@143623 +00000012@143681 +00000010@143747 +0000003c@143748 +0000003e@143835 +0000003c@143914 +00000038@143915 +0000003a@143988 +00000028@144029 +0000002a@144100 +00000000@144181 +00000002@144246 +00000008@144326 +0000000a@144388 +0000000c@144444 +0000000e@144544 +00000008@144638 +0000000a@144696 +00000004@144776 +00000006@144844 +00000004@144901 +00000000@144902 +00000002@145008 +00000010@145063 +00000012@145123 +0000000c@145230 +0000000e@145301 +0000000c@145372 +0000003c@145373 +0000003e@145411 +00000028@145477 +0000002a@145559 +00000018@145613 +0000001a@145691 +00000024@145777 +00000026@145880 +00000010@145928 +00000012@145976 +0000003c@146062 +0000003e@146125 +00000038@146222 +0000003a@146278 +00000028@146357 +0000002a@146421 +00000000@146485 +00000002@146575 +00000008@146649 +0000000a@146726 +00000008@146772 +0000000a@146859 +00000008@146914 +0000000a@147016 +00000008@147072 +00000010@147073 +00000012@147147 +00000010@147214 +00000000@147215 +00000002@147291 +00000038@147371 +0000003a@147421 +00000028@147507 +0000002a@147578 +00000000@147677 +00000002@147761 +00000008@147835 +0000000a@147904 +00000000@148005 +00000002@148047 +00000008@148112 +0000000a@148228 +00000010@148284 +00000012@148368 +00000010@148427 +00000004@148428 +00000006@148509 +00000038@148572 +0000003a@148655 +00000038@148724 +00000028@148725 +0000002a@148795 +00000000@148901 +00000002@148978 +00000000@149044 +00000008@149045 +0000000a@149140 +00000000@149193 +00000002@149279 +00000000@149333 +00000008@149334 +0000000a@149392 +00000010@149498 +00000012@149561 +00000008@149629 +0000000a@149691 +0000003c@149800 +0000003e@149849 +0000003c@149930 +00000000@149931 +00000002@150013 +00000000@150083 +00000010@150084 +00000012@150152 +00000010@150221 +00000000@150222 +00000002@150293 +00000000@150391 +00000002@150509 +00000008@150567 +0000000a@150632 +00000008@150720 +00000014@150721 +00000015@152354 +00000035@152377 +00000034@152678 +00000000@152690 +00000002@152701 +00000000@152713 +00000002@152724 +00000000@152736 +00000002@152747 +00000034@152758 +00000036@152768 +00000024@152779 +00000026@152789 +00000020@152800 +00000022@152810 +00000028@152820 +0000002a@152830 +00000014@152840 +00000016@152849 +00000028@152859 +0000002a@152868 +00000014@152878 +00000016@152887 +00000014@152896 +00000028@152897 +0000002a@152905 +00000014@152915 +00000016@152924 +00000010@152933 +00000012@152941 +00000010@152950 +0000003c@152951 +0000003e@152959 +0000003c@152968 +0000003e@152976 +00000040@152985 +00000000@152986 +00000002@152993 +00000000@153001 +00000002@153010 +00000000@153018 +00000002@153026 +00000000@153034 +00000002@153042 +0000000c@153050 +0000000e@153058 +00000004@153066 +00000006@153074 +00000004@153081 +00000020@153082 +00000022@153089 +00000010@153097 +00000012@153104 +00000018@153112 +0000001a@153119 +00000000@153127 +00000002@153134 +00000000@153141 +0000001c@153142 +0000001e@153148 +0000003c@153156 +0000003e@153163 +0000003c@153170 +00000004@153171 +00000006@153177 +00000004@153184 +00000008@153185 +0000000a@153191 +00000008@153198 +00000010@153199 +00000012@153205 +00000010@153212 +00000000@153213 +00000002@153219 +0000001c@153226 +0000001e@153233 +0000002c@153240 +0000002e@153246 +00000034@153253 +00000036@153259 +00000034@153266 +00000010@153267 +00000012@153273 +00000010@153279 +00000018@153280 +0000001a@153286 +00000020@153293 +00000022@153299 +00000000@153306 +00000002@153312 +0000002c@153319 +0000002e@153325 +00000030@153332 +00000032@153338 +0000001c@153345 +0000001e@153351 +0000001c@153357 +00000000@153358 +00000002@153363 +00000010@153370 +00000012@153376 +00000010@153382 +0000001c@153383 +0000001e@153388 +00000020@153395 +00000022@153401 +00000000@153407 +00000002@153413 +0000002c@153419 +0000002e@153425 +00000030@153431 +00000010@153432 +00000012@153437 +00000020@153443 +00000022@153449 +00000014@153455 +00000016@153461 +0000002c@153467 +0000002e@153472 +0000002c@153478 +00000000@153479 +00000002@153484 +00000000@153490 +00000002@153496 +00000000@153502 +00000002@153507 +00000000@153513 +00000028@153514 +0000002a@153519 +0000003c@153526 +0000003e@153532 +0000002c@153538 +0000002e@153544 +0000002c@153550 +00000024@153551 +00000026@153556 +00000024@153562 +00000018@153563 +0000001a@153569 +00000000@153575 +00000002@153581 +00000000@153587 +00000004@153588 +00000006@153594 +0000000c@153600 +0000000e@153606 +0000000c@153612 +00000010@153613 +00000012@153618 +00000018@153625 +0000001a@153631 +00000018@153637 +00000000@153638 +00000002@153643 +00000008@153650 +0000000a@153656 +00000018@153662 +00000010@153663 +00000012@153668 +00000018@153675 +0000001a@153681 +0000003c@153687 +0000003e@153693 +00000028@153700 +0000002a@153706 +0000001c@153712 +0000001e@153718 +0000000c@153725 +0000000e@153731 +0000003c@153737 +0000003e@153743 +0000003c@153749 +0000002c@153750 +0000002e@153755 +0000001c@153762 +0000001e@153768 +0000001c@153774 +00000004@153775 +00000006@153780 +0000003c@153787 +0000003d@153793 +0000003c@153918 +00000000@153924 +00000002@153930 +00000000@153936 +00000002@153942 +00000000@153949 +00000002@153955 +00000014@153961 +00000016@153967 +0000002c@153974 +0000002e@153980 +00000000@153986 +00000002@153992 +00000020@153998 +00000028@153999 +0000002a@154004 +00000014@154011 +00000016@154017 +00000038@154023 +00000028@154024 +0000002a@154029 +00000014@154036 +00000016@154042 +00000028@154048 +0000002a@154054 +00000014@154061 +00000016@154067 +00000010@154073 +00000012@154079 +00000010@154085 +0000003c@154086 +0000003e@154091 +0000003c@154098 +0000003e@154104 +0000003c@154110 +00000000@154111 +00000002@154116 +00000000@154123 +00000002@154129 +00000020@154135 +00000024@154136 +00000026@154141 +00000000@154148 +00000002@154154 +00000000@154160 +00000002@154166 +00000010@154173 +00000012@154179 +0000003c@154185 +0000003e@154191 +0000003c@154197 +0000003e@154203 +00000040@154210 +00000000@154211 +00000002@154216 +00000000@154222 +00000002@154228 +00000004@154235 +00000006@154241 +00000004@154247 +00000000@154248 +00000002@154253 +00000004@154260 +00000006@154266 +00000000@154272 +00000002@154278 +00000000@154284 +00000002@154291 +0000003c@154297 +0000003e@154303 +0000003c@154309 +00000000@154310 +00000002@154315 +00000030@154322 +00000032@154328 +00000030@154334 +00000020@154335 +00000022@154340 +0000003c@154347 +0000003e@154353 +00000034@154359 +00000024@154360 +00000026@154365 +00000010@154372 +00000012@154378 +0000003c@154384 +0000003e@154390 +0000003c@154396 +0000003e@154403 +00000040@154409 +00000000@154410 +00000002@154415 +00000000@154421 +00000002@154427 +00000024@154434 +00000026@154440 +00000024@154446 +00000000@154447 +00000002@154452 +00000000@154459 +00000002@154465 +00000010@154471 +00000012@154477 +00000010@154483 +0000003c@154484 +0000003e@154490 +0000003c@154496 +0000003e@154502 +0000003c@154508 +00000000@154509 +00000002@154514 +00000004@154521 +00000006@154527 +00000014@154533 +00000016@154539 +00000000@154546 +00000002@154552 +00000004@154558 +00000006@154564 +00000004@154570 +00000000@154571 +00000002@154577 +00000000@154583 +00000002@154589 +00000000@154595 +0000003c@154596 +0000003e@154601 +00000040@154608 +00000000@154609 +00000002@154614 +00000030@154620 +00000032@154626 +00000030@154633 +00000032@154639 +0000003c@154645 +0000003e@154651 +0000003c@154657 +00000028@154658 +0000002a@154664 +00000000@154670 +00000001@154676 +00000011@154682 +00000031@154683 +00000030@154801 +00000000@154807 +00000002@154813 +00000000@154819 +00000002@154825 +00000000@154832 +00000002@154838 +00000024@154844 +00000026@154850 +00000034@154856 +00000010@154857 +00000012@154862 +00000020@154869 +00000022@154875 +00000028@154881 +0000002a@154887 +00000014@154894 +00000016@154900 +00000028@154906 +0000002a@154912 +00000014@154919 +00000016@154925 +00000028@154931 +0000002a@154937 +00000028@154943 +00000014@154944 +00000016@154949 +00000020@154956 +00000022@154962 +00000020@154968 +00000000@154969 +00000002@154974 +0000002c@154981 +0000002e@154987 +0000003c@154993 +00000030@154994 +00000032@154999 +0000001c@155006 +0000001e@155012 +00000060@155018 +00000000@155019 +00000002@155024 +00000000@155030 +00000010@155031 +00000012@155037 +0000001c@155043 +0000001e@155049 +0000001c@155055 +00000020@155056 +00000022@155061 +00000000@155068 +00000002@155074 +00000008@155080 +0000002c@155081 +0000002e@155086 +00000014@155093 +00000016@155099 +00000030@155105 +00000020@155106 +00000022@155111 +00000010@155118 +00000012@155124 +0000002c@155130 +0000002e@155136 +0000002c@155142 +00000000@155143 +00000002@155148 +00000000@155155 +00000002@155161 +00000000@155167 +00000002@155173 +00000028@155180 +0000002a@155186 +0000003c@155192 +0000003e@155198 +00000000@155205 +00000002@155211 +0000000c@155217 +0000000e@155223 +0000000c@155229 +00000010@155230 +00000012@155236 +00000018@155242 +0000001a@155248 +00000018@155254 +0000000c@155255 +0000000e@155260 +00000024@155267 +00000026@155273 +0000003c@155279 +00000018@155280 +0000001a@155285 +00000000@155292 +00000002@155298 +0000003c@155304 +0000003e@155310 +0000003c@155316 +0000002c@155317 +0000002e@155323 +0000001c@155329 +0000001e@155335 +0000001c@155341 +00000004@155342 +00000006@155347 +0000003c@155354 +0000003e@155360 +0000003c@155366 +0000002c@155367 +0000002e@155372 +0000001c@155379 +0000001e@155385 +00000024@155391 +00000026@155397 +00000000@155404 +00000002@155410 +00000000@155416 +00000002@155422 +00000000@155428 +00000008@155429 +0000000a@155434 +0000002c@155441 +0000002e@155447 +0000002c@155453 +00000010@155454 +00000012@155459 +0000000c@155466 +0000000e@155472 +00000034@155478 +00000036@155484 +00000004@155491 +00000006@155497 +0000000c@155503 +0000000e@155509 +0000000c@155515 +0000002c@155516 +0000002e@155521 +00000018@155528 +0000001a@155534 +00000018@155540 +00000020@155541 +00000022@155546 +00000000@155553 +00000002@155559 +00000000@155565 +00000002@155571 +00000008@155578 +0000000a@155584 +0000002c@155590 +0000002e@155596 +0000002c@155602 +00000004@155603 +00000006@155608 +00000020@155615 +00000022@155621 +00000020@155627 +00000034@155628 +00000036@155633 +00000000@155640 +00000002@155646 +00000010@155652 +00000012@155658 +0000003c@155665 +0000003e@155671 +0000003c@155677 +0000003e@155683 +0000003c@155689 +00000010@155690 +00000012@155695 +00000010@155702 +00000012@155708 +00000010@155714 +00000000@155715 +00000002@155720 +00000014@155727 +00000016@155733 +0000001c@155739 +0000000c@155740 +0000000e@155745 +00000030@155752 +00000032@155758 +00000010@155764 +00000012@155770 +00000010@155776 +0000003c@155777 +0000003e@155783 +00000008@155789 +0000000a@155795 +00000008@155801 +00000000@155802 +00000002@155807 +00000010@155814 +00000012@155820 +00000010@155826 +00000000@155827 +00000002@155832 +0000000c@155839 +0000000e@155845 +00000010@155851 +00000012@155857 +00000010@155863 +0000003c@155864 +0000003e@155870 +0000003c@155876 +0000003e@155882 +0000003c@155888 +00000010@155889 +00000012@155894 +00000010@155901 +00000012@155907 +00000010@155913 +00000000@155914 +00000002@155919 +00000014@155926 +00000016@155932 +00000018@155938 +00000008@155939 +0000000a@155944 +00000030@155951 +00000031@155957 +00000030@156081 +00000000@156088 +00000002@156093 +00000000@156100 +00000002@156106 +00000000@156112 +00000002@156118 +00000024@156125 +00000026@156131 +00000038@156137 +0000003a@156143 +00000038@156149 +00000000@156150 +00000002@156155 +00000028@156162 +0000002a@156168 +00000038@156174 +00000014@156175 +00000016@156180 +00000028@156187 +0000002a@156193 +0000003c@156199 +00000014@156200 +00000016@156205 +00000028@156212 +0000002a@156218 +00000014@156224 +00000016@156230 +00000014@156236 +00000024@156237 +00000026@156243 +00000028@156249 +0000002a@156255 +00000028@156261 +00000010@156262 +00000012@156267 +00000008@156274 +0000000a@156280 +00000008@156286 +0000003c@156287 +0000003e@156292 +00000010@156299 +00000012@156305 +00000034@156311 +00000036@156317 +00000034@156324 +00000036@156330 +0000002c@156336 +0000002e@156342 +0000002c@156348 +00000014@156349 +00000016@156354 +00000038@156361 +0000003a@156367 +00000038@156373 +00000000@156374 +00000002@156379 +0000003c@156386 +0000003e@156392 +0000003c@156398 +0000002c@156399 +0000002e@156404 +0000001c@156411 +0000001e@156417 +00000024@156423 +00000026@156429 +00000024@156435 +00000000@156436 +00000002@156442 +00000008@156448 +0000000a@156454 +00000008@156460 +0000000a@156466 +0000002c@156473 +0000002e@156479 +0000002c@156485 +00000000@156486 +00000002@156491 +00000028@156498 +0000002a@156504 +00000034@156510 +00000036@156516 +00000034@156522 +00000004@156523 +00000006@156529 +00000010@156535 +00000012@156541 +00000010@156547 +0000003c@156548 +0000003e@156553 +0000003c@156560 +0000003e@156566 +0000003c@156572 +00000000@156573 +00000002@156578 +00000000@156585 +00000002@156591 +00000030@156597 +00000032@156603 +00000000@156610 +00000002@156616 +00000000@156622 +00000002@156628 +00000000@156634 +00000010@156635 +00000012@156640 +0000003c@156647 +0000003e@156653 +0000003c@156659 +0000003e@156665 +00000000@156672 +00000002@156678 +00000000@156684 +00000002@156690 +00000000@156697 +00000002@156703 +00000000@156709 +00000002@156715 +00000000@156721 +00000004@156722 +00000006@156728 +00000010@156734 +00000012@156740 +00000010@156746 +0000003c@156747 +0000003e@156752 +0000003c@156759 +0000003e@156765 +0000003c@156771 +00000000@156772 +00000002@156777 +00000004@156784 +00000006@156790 +00000000@156796 +00000002@156802 +00000000@156808 +00000002@156815 +00000008@156821 +0000000a@156827 +00000008@156833 +00000010@156834 +00000012@156839 +0000003c@156846 +0000003e@156852 +0000003c@156858 +0000003e@156864 +00000000@156871 +00000002@156877 +00000000@156883 +00000002@156889 +0000000c@156896 +0000000e@156902 +00000000@156908 +00000002@156914 +00000000@156920 +0000000c@156921 +0000000e@156926 +00000000@156933 +00000002@156939 +00000000@156945 +00000002@156951 +0000003c@156958 +0000003e@156964 +00000034@156970 +00000000@156971 +00000002@156976 +0000000c@156983 +0000000e@156989 +00000038@156995 +0000003a@157001 +00000038@157007 +0000003c@157008 +0000003e@157013 +00000028@157020 +0000002a@157026 +00000028@157032 +0000002a@157038 +0000001c@157045 +0000001e@157051 +0000003c@157057 +00000038@157058 +0000003a@157063 +00000000@157070 +00000002@157076 +0000003c@157082 +0000003e@157088 +0000003c@157094 +0000002c@157095 +0000002e@157101 +0000001c@157107 +0000001e@157113 +0000001c@157119 +00000024@157120 +00000026@157125 +00000000@157132 +00000002@157138 +00000008@157144 +0000000c@157145 +0000000e@157150 +00000008@157157 +0000000a@157163 +0000002c@157169 +0000002e@157175 +00000000@157182 +00000002@157188 +00000028@157194 +0000002a@157200 +00000028@157206 +00000034@157207 +00000036@157212 +00000004@157219 +00000006@157225 +00000014@157231 +00000010@157232 +00000012@157237 +0000003c@157244 +0000003e@157250 +0000003c@157256 +0000003e@157262 +00000000@157269 +00000002@157275 +00000000@157281 +00000002@157287 +00000000@157293 +00000004@157294 +00000006@157299 +00000000@157306 +00000002@157312 +00000000@157318 +00000002@157324 +00000010@157331 +00000012@157337 +0000003c@157343 +0000003e@157349 +0000003c@157356 +0000003e@157362 +00000040@157368 +00000000@157369 +00000002@157374 +00000000@157380 +00000004@157381 +00000006@157386 +0000000c@157393 +0000000e@157399 +0000000c@157405 +00000000@157406 +00000002@157411 +00000004@157418 +00000006@157424 +00000010@157430 +00000012@157436 +0000003c@157443 +0000003e@157449 +0000003c@157455 +0000003e@157461 +0000003c@157467 +00000000@157468 +00000002@157473 +00000004@157480 +00000006@157486 +00000004@157492 +00000000@157493 +00000002@157498 +00000000@157505 +00000002@157511 +00000008@157517 +0000000a@157523 +00000010@157530 +00000012@157536 +0000003c@157542 +0000003e@157548 +0000003c@157554 +0000003e@157561 +00000040@157567 +00000000@157568 +00000002@157573 +00000000@157579 +00000002@157585 +00000000@157592 +00000002@157598 +00000000@157604 +00000002@157610 +0000000c@157617 +0000000e@157623 +00000000@157629 +00000002@157635 +00000000@157641 +00000002@157648 +0000003c@157654 +0000003e@157660 +0000003c@157666 +00000000@157667 +00000002@157672 +0000000c@157679 +0000000e@157685 +0000000c@157691 +00000000@157692 +00000002@157697 +0000003c@157704 +0000003e@157710 +00000028@157716 +0000002a@157722 +00000024@157729 +00000026@157735 +00000024@157741 +00000026@157747 +00000024@157753 +00000038@157754 +0000003a@157759 +00000040@157766 +00000000@157767 +00000002@157772 +00000000@157778 +0000003c@157779 +0000003e@157784 +0000002c@157791 +0000002e@157797 +0000003c@157803 +0000001c@157804 +0000001e@157809 +00000024@157816 +00000026@157822 +00000000@157828 +00000002@157834 +00000000@157840 +00000010@157841 +00000012@157847 +00000008@157853 +0000000a@157859 +00000008@157865 +0000002c@157866 +0000002e@157871 +00000000@157878 +00000002@157884 +00000000@157890 +00000002@157896 +0000003c@157903 +0000003e@157909 +00000060@157915 +00000000@157916 +00000002@157921 +00000000@157927 +00000024@157928 +00000026@157934 +00000018@157940 +0000001a@157946 +00000018@157952 +00000020@157953 +00000022@157958 +00000000@157965 +00000002@157971 +00000008@157977 +0000003c@157978 +0000003e@157983 +0000002c@157990 +0000002e@157996 +0000001c@158002 +0000001e@158008 +0000001c@158014 +00000024@158015 +00000026@158021 +00000000@158027 +00000002@158033 +00000000@158039 +00000014@158040 +00000016@158045 +00000008@158052 +0000000a@158058 +00000028@158064 +0000002c@158065 +0000002e@158070 +00000000@158077 +00000002@158083 +00000000@158089 +00000002@158095 +00000000@158101 +0000003c@158102 +0000003e@158108 +00000040@158114 +00000000@158115 +00000002@158120 +00000000@158126 +00000024@158127 +00000026@158132 +00000008@158139 +0000000a@158145 +00000008@158151 +00000020@158152 +00000022@158157 +00000000@158164 +00000002@158170 +0000003c@158176 +0000003e@158182 +0000002c@158189 +0000002e@158195 +0000001c@158201 +0000001e@158207 +0000001c@158213 +00000024@158214 +00000026@158219 +00000000@158226 +00000002@158232 +00000000@158238 +00000018@158239 +0000001a@158244 +00000008@158251 +0000000a@158257 +00000028@158263 +0000002c@158264 +0000002e@158269 +00000008@158276 +0000000a@158282 +0000002c@158288 +0000002e@158294 +0000002c@158300 +00000034@158301 +00000036@158307 +00000004@158313 +00000006@158319 +00000004@158325 +0000000c@158326 +0000000e@158331 +0000002c@158338 +0000002e@158344 +0000003c@158350 +00000018@158351 +0000001a@158356 +00000020@158363 +00000022@158369 +00000000@158375 +00000002@158381 +00000000@158387 +00000002@158394 +00000008@158400 +0000000a@158406 +00000008@158412 +0000002c@158413 +0000002e@158418 +00000000@158425 +00000001@158431 +00000031@158437 +00000030@158556 +00000000@158562 +00000002@158568 +00000000@158574 +00000002@158580 +00000000@158586 +00000002@158592 +0000002c@158599 +0000002e@158605 +0000003c@158611 +00000014@158612 +00000016@158617 +00000000@158624 +00000002@158630 +00000028@158636 +0000002a@158642 +00000014@158649 +00000016@158655 +00000028@158661 +0000002a@158667 +00000028@158673 +00000014@158674 +00000016@158680 +00000028@158686 +0000002a@158692 +00000038@158698 +00000014@158699 +00000016@158704 +0000003c@158711 +0000003e@158717 +0000003c@158723 +00000038@158724 +0000003a@158729 +00000038@158736 +0000003a@158742 +0000001c@158748 +0000001e@158754 +0000001c@158760 +00000010@158761 +00000012@158767 +0000003c@158773 +0000003e@158779 +0000003c@158785 +0000003e@158791 +00000040@158798 +00000000@158799 +00000002@158804 +00000000@158810 +00000002@158816 +00000000@158823 +00000002@158829 +00000000@158835 +00000002@158841 +00000000@158847 +0000000c@158848 +0000000e@158854 +00000004@158860 +00000006@158866 +00000004@158872 +00000020@158873 +00000022@158878 +00000010@158885 +00000012@158891 +00000018@158897 +0000001a@158903 +00000000@158910 +00000002@158916 +0000001c@158922 +0000001e@158928 +0000001c@158934 +0000003c@158935 +0000003e@158941 +00000044@158947 +00000004@158948 +00000006@158953 +00000004@158959 +00000006@158965 +00000000@158972 +00000002@158978 +00000000@158984 +00000002@158990 +0000001c@158997 +0000001e@159003 +0000002c@159009 +0000002e@159015 +00000034@159022 +00000036@159028 +00000010@159034 +00000012@159040 +00000010@159046 +00000018@159047 +0000001a@159052 +00000020@159059 +00000022@159065 +00000020@159071 +00000000@159072 +00000002@159077 +0000002c@159084 +0000002e@159090 +00000034@159096 +00000036@159102 +00000020@159109 +00000021@159115 +00000031@159121 +00000030@159239 +00000000@159246 +00000002@159251 +00000000@159258 +00000002@159264 +00000000@159270 +00000002@159276 +00000028@159283 +0000002a@159289 +0000000c@159295 +0000000e@159301 +0000000c@159307 +00000020@159308 +00000022@159314 +00000028@159320 +0000002a@159326 +00000038@159332 +00000014@159333 +00000016@159338 +00000028@159345 +0000002a@159351 +0000003c@159357 +00000014@159358 +00000016@159363 +00000028@159370 +0000002a@159376 +00000014@159382 +00000016@159388 +00000014@159394 +00000000@159395 +00000002@159401 +00000030@159407 +00000032@159413 +00000030@159419 +00000034@159420 +00000036@159425 +00000004@159432 +00000006@159438 +00000014@159444 +00000010@159445 +00000012@159450 +0000003c@159457 +0000003e@159463 +0000003c@159469 +0000003e@159475 +00000000@159482 +00000002@159488 +00000000@159494 +00000002@159500 +00000000@159506 +00000002@159512 +00000000@159519 +00000002@159525 +00000000@159531 +0000000c@159532 +0000000e@159537 +00000030@159544 +00000032@159550 +00000030@159556 +00000010@159557 +00000012@159562 +0000003c@159569 +0000003e@159575 +00000008@159581 +0000000a@159587 +00000008@159593 +00000000@159594 +00000002@159600 +00000014@159606 +00000016@159612 +00000014@159618 +00000000@159619 +00000002@159624 +0000000c@159631 +0000000e@159637 +0000001c@159643 +00000010@159644 +00000012@159649 +0000003c@159656 +0000003e@159662 +0000003c@159668 +0000003e@159674 +00000000@159681 +00000002@159687 +00000000@159693 +00000002@159699 +00000000@159705 +00000002@159711 +00000000@159718 +00000002@159724 +00000008@159730 +0000000a@159736 +00000030@159743 +00000032@159749 +00000030@159755 +00000010@159756 +00000012@159761 +0000003c@159768 +0000003e@159774 +00000008@159780 +0000000a@159786 +00000008@159792 +00000000@159793 +00000001@159799 +00000031@159805 +00000030@159923 +00000000@159929 +00000002@159935 +00000000@159942 +00000002@159948 +00000000@159954 +00000002@159960 +00000028@159967 +0000002a@159973 +00000020@159979 +00000022@159985 +00000020@159991 +00000022@159997 +00000028@160004 +0000002a@160010 +00000038@160016 +00000014@160017 +00000016@160022 +00000028@160029 +0000002a@160035 +0000001c@160041 +00000014@160042 +00000016@160047 +00000028@160054 +0000002a@160060 +00000014@160066 +00000016@160072 +00000014@160078 +0000003c@160079 +0000003e@160085 +00000050@160091 +00000010@160092 +00000012@160097 +00000010@160103 +00000034@160104 +00000036@160109 +00000034@160116 +00000036@160122 +0000003c@160128 +00000018@160129 +0000001a@160134 +00000008@160141 +0000000a@160147 +00000038@160153 +0000003a@160159 +00000038@160165 +00000000@160166 +00000002@160172 +0000003c@160178 +0000003e@160184 +0000003c@160190 +00000028@160191 +0000002a@160196 +0000001c@160203 +0000001e@160209 +0000001c@160215 +00000024@160216 +00000026@160221 +00000010@160228 +00000012@160234 +00000004@160240 +00000006@160246 +0000003c@160253 +0000003e@160259 +00000008@160265 +0000000a@160271 +00000008@160277 +00000014@160278 +00000016@160283 +00000010@160290 +00000012@160296 +00000010@160302 +00000014@160303 +00000016@160308 +0000000c@160315 +0000000e@160321 +00000030@160327 +00000032@160333 +00000004@160340 +00000006@160346 +0000003c@160352 +0000003e@160358 +0000003c@160364 +00000008@160365 +0000000a@160370 +00000000@160377 +00000002@160383 +00000000@160389 +00000002@160395 +00000010@160402 +00000012@160408 +00000018@160414 +0000000c@160415 +0000000e@160420 +0000000c@160427 +0000000e@160433 +0000000c@160439 +0000000e@160445 +0000003c@160452 +0000003e@160458 +00000060@160464 +00000020@160465 +00000022@160470 +00000020@160476 +00000004@160477 +00000006@160482 +00000008@160489 +0000000a@160495 +00000008@160501 +0000000c@160502 +0000000e@160507 +00000000@160514 +00000002@160520 +00000004@160526 +00000006@160532 +0000002c@160539 +0000002e@160545 +0000002c@160551 +0000002e@160557 +0000002c@160563 +00000008@160564 +0000000a@160570 +0000002c@160576 +0000002e@160582 +0000002c@160588 +0000002e@160594 +00000018@160601 +0000001a@160607 +00000018@160613 +00000000@160614 +00000002@160619 +0000002c@160626 +0000002e@160632 +0000002c@160638 +0000002e@160644 +00000018@160651 +0000001a@160657 +00000020@160663 +00000022@160669 +00000020@160675 +0000002c@160676 +0000002e@160681 +0000000c@160688 +0000000e@160694 +0000000c@160700 +0000003c@160701 +0000003e@160706 +00000004@160713 +00000006@160719 +0000003c@160725 +0000003e@160731 +0000003c@160738 +0000003e@160744 +0000000c@160750 +0000000e@160756 +0000000c@160762 +0000003c@160763 +0000003e@160768 +00000040@160775 +00000000@160776 +00000002@160781 +00000000@160787 +00000008@160788 +0000000a@160793 +00000034@160800 +00000036@160806 +00000034@160812 +00000004@160813 +00000006@160818 +00000010@160825 +00000012@160831 +0000003c@160837 +0000003e@160843 +0000003c@160849 +0000003e@160855 +00000040@160862 +00000000@160863 +00000002@160868 +00000000@160874 +00000001@160881 +00000031@160887 +00000030@161005 +00000000@161011 +00000002@161017 +00000000@161023 +00000002@161030 +00000004@161036 +00000006@161042 +00000014@161048 +00000016@161054 +00000018@161061 +0000001a@161067 +00000008@161073 +00000000@161074 +00000002@161079 +00000028@161086 +0000002a@161092 +00000014@161098 +00000016@161104 +00000028@161111 +0000002a@161117 +00000014@161123 +00000016@161129 +00000014@161135 +00000028@161136 +0000002a@161141 +00000014@161148 +00000016@161154 +00000014@161160 +00000004@161161 +00000006@161166 +00000020@161173 +00000022@161179 +00000020@161185 +00000000@161186 +00000002@161191 +00000000@161198 +00000002@161204 +00000008@161210 +0000000a@161216 +00000008@161222 +00000000@161223 +00000002@161229 +00000000@161235 +00000002@161241 +00000000@161247 +00000002@161253 +0000000c@161260 +0000000e@161266 +0000000c@161272 +00000000@161273 +00000002@161278 +00000000@161285 +00000002@161291 +00000000@161297 +00000002@161303 +00000000@161309 +00000010@161310 +00000012@161316 +00000010@161322 +00000012@161328 +00000010@161334 +00000000@161335 +00000002@161340 +00000000@161347 +00000002@161353 +00000008@161359 +0000003c@161360 +0000003e@161365 +0000003c@161372 +0000003e@161378 +0000003c@161384 +0000003e@161390 +0000003c@161396 +0000003e@161403 +0000003c@161409 +0000003e@161415 +0000003c@161421 +0000003e@161427 +0000003c@161434 +0000003e@161440 +0000003c@161446 +0000003e@161452 +00000010@161459 +00000012@161465 +00000020@161471 +00000022@161477 +00000000@161484 +00000002@161490 +00000000@161496 +00000002@161502 +00000000@161508 +00000010@161509 +00000012@161514 +00000030@161521 +00000032@161527 +00000030@161533 +00000000@161534 +00000002@161539 +00000000@161546 +00000002@161552 +00000014@161558 +00000015@161564 +00000035@161571 +00000034@161689 +00000000@161695 +00000002@161701 +00000000@161707 +00000002@161713 +00000000@161720 +00000002@161726 +00000028@161732 +0000002a@161738 +00000028@161745 +0000002a@161751 +00000020@161757 +00000022@161763 +00000028@161770 +0000002a@161776 +00000014@161782 +00000016@161788 +00000034@161794 +00000028@161795 +0000002a@161800 +00000014@161807 +00000016@161813 +00000038@161819 +00000028@161820 +0000002a@161825 +00000014@161832 +00000016@161838 +00000000@161844 +00000002@161850 +00000008@161857 +0000000a@161863 +00000000@161869 +00000002@161875 +00000000@161881 +0000000c@161882 +0000000e@161887 +00000014@161894 +00000016@161900 +00000014@161906 +00000010@161907 +00000012@161912 +00000038@161919 +0000003a@161925 +00000038@161931 +00000000@161932 +00000002@161937 +0000000c@161944 +0000000e@161950 +0000002c@161956 +0000002e@161962 +0000002c@161968 +00000018@161969 +0000001a@161975 +00000020@161981 +00000022@161987 +00000020@161993 +00000000@161994 +00000002@161999 +00000000@162006 +00000002@162012 +00000008@162018 +0000000a@162024 +0000002c@162031 +0000002e@162037 +00000060@162043 +00000000@162044 +00000002@162049 +00000000@162055 +0000003c@162056 +0000003e@162062 +00000034@162068 +00000036@162074 +00000034@162080 +00000004@162081 +00000006@162086 +0000002c@162093 +0000002e@162099 +0000002c@162105 +0000002e@162111 +00000018@162118 +0000001a@162124 +00000020@162130 +00000022@162136 +00000000@162143 +00000002@162149 +0000000c@162155 +0000000e@162161 +0000000c@162167 +0000003c@162168 +0000003e@162173 +00000044@162180 +00000004@162181 +00000006@162186 +00000004@162192 +00000020@162193 +00000022@162198 +00000000@162205 +00000002@162211 +00000010@162217 +00000012@162223 +0000000c@162230 +0000000e@162236 +00000000@162242 +00000002@162248 +00000000@162254 +0000000c@162255 +0000000e@162260 +0000003c@162267 +0000003e@162273 +0000003c@162279 +00000014@162280 +00000016@162285 +00000028@162292 +0000002a@162298 +00000028@162304 +00000000@162305 +00000002@162310 +00000008@162317 +0000000a@162323 +0000000c@162329 +0000000e@162335 +0000000c@162341 +00000004@162342 +00000006@162348 +00000028@162354 +0000002a@162360 +00000028@162366 +00000010@162367 +00000012@162372 +00000018@162379 +0000001a@162385 +00000018@162391 +0000002c@162392 +0000002e@162397 +0000002c@162404 +0000002e@162410 +00000038@162416 +00000018@162417 +0000001a@162422 +00000020@162429 +00000022@162435 +00000000@162441 +00000001@162447 +00000031@162454 +00000030@162572 +00000000@162578 +00000002@162584 +00000000@162590 +00000002@162596 +00000000@162603 +00000002@162609 +00000028@162615 +0000002a@162621 +00000028@162627 +00000034@162628 +00000036@162634 +00000000@162640 +00000002@162646 +00000020@162652 +00000028@162653 +0000002a@162658 +00000014@162665 +00000016@162671 +00000038@162677 +00000028@162678 +0000002a@162683 +00000014@162690 +00000016@162696 +00000028@162702 +0000002a@162708 +00000014@162715 +00000016@162721 +0000000c@162727 +0000000e@162733 +0000000c@162739 +0000003c@162740 +0000003e@162745 +00000038@162752 +0000003a@162758 +00000038@162764 +00000000@162765 +00000002@162770 +0000002c@162777 +0000002e@162783 +0000002c@162789 +0000002e@162795 +00000018@162802 +0000001a@162808 +00000020@162814 +00000022@162820 +00000020@162826 +00000000@162827 +00000002@162832 +0000000c@162839 +0000000e@162845 +0000000c@162851 +0000003c@162852 +0000003e@162857 +00000004@162864 +00000006@162870 +00000020@162876 +00000022@162882 +00000000@162889 +00000002@162895 +00000010@162901 +00000012@162907 +00000010@162913 +0000000c@162914 +0000000e@162919 +00000000@162926 +00000002@162932 +00000000@162938 +0000000c@162939 +0000000e@162944 +0000003c@162951 +0000003e@162957 +00000034@162963 +00000014@162964 +00000016@162969 +00000028@162976 +0000002a@162982 +00000000@162988 +00000002@162994 +00000000@163000 +00000008@163001 +0000000a@163006 +0000000c@163013 +0000000e@163019 +0000000c@163025 +00000004@163026 +00000006@163031 +00000028@163038 +0000002a@163044 +00000038@163050 +00000010@163051 +00000012@163056 +00000018@163063 +0000001a@163069 +0000002c@163075 +0000002e@163081 +0000002c@163087 +0000002e@163094 +00000018@163100 +0000001a@163106 +00000018@163112 +00000020@163113 +00000022@163118 +00000000@163125 +00000002@163131 +0000000c@163137 +0000000e@163143 +0000003c@163150 +0000003e@163156 +00000044@163162 +00000004@163163 +00000006@163168 +00000004@163174 +00000020@163175 +00000022@163181 +00000000@163187 +00000002@163193 +00000000@163199 +00000010@163200 +00000012@163205 +0000000c@163212 +0000000e@163218 +0000000c@163224 +00000000@163225 +00000002@163230 +0000000c@163237 +0000000e@163243 +0000003c@163249 +0000003e@163255 +0000003c@163261 +00000014@163262 +00000016@163268 +00000028@163274 +0000002a@163280 +00000028@163286 +00000000@163287 +00000002@163292 +00000008@163299 +0000000a@163305 +00000008@163311 +0000000c@163312 +0000000e@163317 +00000004@163324 +00000006@163330 +0000002c@163336 +0000002e@163342 +0000002c@163348 +00000018@163349 +0000001a@163355 +00000020@163361 +00000022@163367 +00000020@163373 +00000008@163374 +0000000a@163379 +0000000c@163386 +0000000e@163392 +0000003c@163398 +0000003e@163404 +00000000@163411 +00000002@163417 +00000000@163423 +00000002@163429 +00000000@163435 +00000004@163436 +00000006@163442 +00000000@163448 +00000002@163454 +00000000@163460 +0000000c@163461 +0000000e@163466 +00000004@163473 +00000006@163479 +0000000c@163485 +0000000e@163491 +00000018@163498 +0000001a@163504 +00000000@163510 +00000002@163516 +00000000@163522 +0000003c@163523 +0000003e@163529 +0000002c@163535 +0000002e@163541 +0000002c@163547 +0000001c@163548 +0000001e@163553 +00000024@163560 +00000026@163566 +00000024@163572 +00000000@163573 +00000002@163578 +0000001c@163585 +0000001e@163591 +00000018@163597 +00000008@163598 +0000000a@163603 +0000002c@163610 +0000002e@163616 +00000040@163622 +00000000@163623 +00000002@163628 +00000000@163634 +00000024@163635 +00000026@163674 +00000034@163680 +00000036@163686 +00000034@163692 +00000004@163693 +00000006@163698 +00000000@163705 +00000002@163711 +00000000@163717 +00000002@163723 +0000002c@163730 +0000002e@163736 +0000003c@163742 +0000003e@163748 +00000010@163755 +00000012@163761 +0000003c@163767 +0000003e@163773 +0000003c@163779 +0000003e@163786 +00000040@163792 +00000000@163793 +00000002@163798 +00000000@163804 +00000002@163810 +00000000@163817 +00000002@163823 +00000000@163829 +00000002@163835 +0000000c@163842 +0000000e@163848 +00000030@163854 +00000032@163860 +00000030@163866 +00000010@163867 +00000012@163873 +0000003c@163879 +0000003e@163885 +0000003c@163891 +00000008@163892 +0000000a@163897 +00000000@163904 +00000002@163910 +00000000@163916 +00000014@163917 +00000016@163922 +00000000@163929 +00000002@163935 +0000000c@163941 +0000000e@163947 +00000034@163954 +00000036@163960 +0000002c@163966 +0000002e@163972 +0000002c@163978 +00000018@163979 +0000001a@163984 +00000024@163991 +00000026@163997 +00000024@164003 +00000000@164004 +00000002@164009 +0000000c@164016 +0000000e@164022 +0000003c@164028 +0000003e@164034 +00000000@164041 +00000002@164047 +00000000@164053 +00000002@164059 +00000000@164065 +00000004@164066 +00000006@164072 +00000000@164078 +00000002@164084 +00000000@164090 +0000000c@164091 +0000000e@164096 +00000000@164103 +00000002@164109 +00000000@164115 +00000002@164121 +00000008@164128 +0000000a@164134 +0000002c@164140 +0000002e@164146 +0000003c@164153 +0000003e@164159 +00000018@164165 +0000001a@164171 +00000018@164177 +00000034@164178 +00000036@164183 +00000040@164190 +00000000@164191 +00000002@164196 +00000000@164202 +0000003c@164203 +0000003e@164208 +0000002c@164215 +0000002e@164221 +0000003c@164227 +0000001c@164228 +0000001e@164233 +00000024@164240 +00000026@164246 +00000000@164252 +00000002@164258 +00000000@164264 +00000020@164265 +00000022@164270 +00000008@164277 +0000000a@164283 +00000008@164289 +0000002c@164290 +0000002e@164295 +00000000@164302 +00000002@164308 +00000024@164314 +00000026@164320 +00000034@164327 +00000036@164333 +00000004@164339 +00000006@164345 +00000004@164351 +00000000@164352 +00000002@164358 +00000000@164364 +00000002@164370 +00000000@164376 +0000002c@164377 +0000002e@164382 +0000003c@164389 +0000003e@164395 +0000003c@164401 +00000010@164402 +00000012@164407 +0000003c@164414 +0000003e@164420 +0000003c@164426 +0000003e@164432 +00000000@164439 +00000002@164445 +00000000@164451 +00000002@164457 +00000000@164463 +00000002@164469 +00000000@164476 +00000002@164482 +00000000@164488 +0000000c@164489 +0000000e@164494 +00000030@164501 +00000032@164507 +00000030@164513 +00000010@164514 +00000012@164519 +0000003c@164526 +0000003e@164532 +00000008@164538 +0000000a@164544 +00000008@164550 +00000000@164551 +00000002@164556 +00000014@164563 +00000016@164569 +00000014@164575 +00000000@164576 +00000002@164581 +0000000c@164588 +0000000e@164594 +0000003c@164600 +00000034@164601 +00000036@164606 +0000002c@164613 +0000002e@164619 +00000018@164625 +0000001a@164631 +00000018@164637 +00000028@164638 +0000002a@164644 +00000000@164650 +00000002@164656 +00000000@164662 +0000000c@164663 +0000000e@164668 +0000003c@164675 +0000003e@164681 +0000003c@164687 +00000000@164688 +00000002@164693 +00000000@164700 +00000002@164706 +00000004@164712 +00000006@164718 +00000000@164725 +00000002@164731 +0000000c@164737 +0000000e@164743 +0000000c@164749 +00000000@164750 +00000002@164755 +00000000@164762 +00000002@164768 +00000008@164774 +0000000a@164780 +0000002c@164787 +0000002e@164793 +0000003c@164799 +0000003e@164805 +00000018@164812 +0000001a@164818 +00000034@164824 +00000036@164830 +00000034@164836 +00000000@164837 +00000002@164842 +0000003c@164849 +0000003e@164855 +0000003c@164861 +0000002c@164862 +0000002e@164867 +0000001c@164874 +0000001e@164880 +00000034@164886 +00000024@164887 +00000026@164892 +00000000@164899 +00000002@164905 +00000024@164911 +00000026@164917 +00000024@164923 +00000008@164924 +0000000a@164929 +0000002c@164936 +0000002e@164942 +0000002c@164948 +00000004@164949 +00000006@164954 +0000000c@164961 +0000000e@164967 +0000003c@164973 +00000034@164974 +00000036@164979 +00000004@164986 +00000006@164992 +00000000@164998 +00000002@165004 +00000000@165010 +00000002@165017 +0000002c@165023 +0000002e@165029 +0000002c@165035 +0000003c@165036 +0000003e@165041 +00000010@165048 +00000012@165054 +00000018@165060 +0000003c@165061 +0000003e@165066 +0000003c@165073 +0000003e@165079 +00000070@165085 +00000000@165086 +00000002@165091 +00000000@165098 +00000002@165104 +00000000@165110 +00000002@165116 +00000000@165122 +00000002@165128 +0000000c@165135 +0000000e@165141 +0000000c@165147 +00000030@165148 +00000032@165153 +00000010@165160 +00000012@165166 +0000003c@165172 +0000003e@165178 +00000008@165185 +0000000a@165191 +00000000@165197 +00000002@165203 +00000000@165209 +00000014@165210 +00000016@165215 +00000000@165222 +00000002@165228 +00000000@165234 +0000000c@165235 +0000000e@165240 +00000004@165247 +00000006@165253 +0000002c@165259 +0000002e@165265 +00000018@165272 +0000001a@165278 +00000030@165284 +00000032@165290 +00000030@165296 +00000000@165297 +00000002@165302 diff --git a/doc/SPIFI_Quad_Tests_OLS/SPIFI_QUAD_100MHZ_OLS_0_9_6b3_JellyBean_Startup_Dual4_M4_SPIFI_0_Analyze.txt b/doc/SPIFI_Quad_Tests_OLS/SPIFI_QUAD_100MHZ_OLS_0_9_6b3_JellyBean_Startup_Dual4_M4_SPIFI_0_Analyze.txt new file mode 100644 index 00000000..74cf883e --- /dev/null +++ b/doc/SPIFI_Quad_Tests_OLS/SPIFI_QUAD_100MHZ_OLS_0_9_6b3_JellyBean_Startup_Dual4_M4_SPIFI_0_Analyze.txt @@ -0,0 +1,127 @@ + +OLS version used from: git://github.com/jawi/ols.git +Warning sometimes there's a bug between Mode3 & Mode0 in OLS 0.9.6b3 +Expected is when /CS = 0 at first SCK Rising Edge data shall be read. + +1) Read JDEC ID: +---------------- +SPI Standard, Mode3, 8bits, MSB first, Show /CS & Honour /CS, SCK=About 32MHz: +Send(MOSI)=0x9F(Read JDEC ID) +Receive(MISO)=0xEF => Manufacturer ID(Winbond) and 0x40, 0x14 => Device ID + +2) Read Status Register-2: +-------------------------- +SPI Standard, Mode3, 8bits, MSB first, Show /CS & Honour /CS, SCK=About 32MHz: +Send(MOSI)=0x35(Read Status Register-2) +Receive(MISO)=0x02 (Status Register-2 => S15-S8) + +3) Read Unknown Command 0xA3 (maybe for other SPIFI memory ??): +--------------------------------------------------------------- +SPI Standard, Mode3, 8bits, MSB first, Show /CS & Honour /CS, SCK=About 32MHz: +Send(MOSI)=0xA3 +Receive(MISO)=0x00 0x00 0x00 + +4) Fast Read Quad I/O with "Continuous Read Mode"(0xEB): +-------------------------------------------------------- +SPI Standard, Mode3, 8bits, MSB first, Show /CS & Honour /CS, SCK=About 32MHz: +Send(MOSI)=0xEB(Fast Read Quad I/O) +SPI Quad, Mode3, 8bits, MSB first, Show /CS & Honour /CS: +Send(IO0 to IO3) hexa: +00 00 00 (A23-16) (A15-8) (A7-0) +A5 (M7-0) => A5 = 1010 0101 (Continuous Read Mode enabled) +A5 A5 (Dummy 2 bytes) +Receive(IO0 to IO3) hexa: +00 00 02 10 B1 01 00 14 (Data) => Vect Table = 0x10020000(Stack Pointer), 0x140001B1(Thumb) Real Addr=0x140001B0 (Reset_Handler/ResetISR) +79 01 00 14 7B 01 00 14 (Data) +7D 01 00 14 7F 01 00 14 (Data) +Dump from Debug (Big Endian to swap 32bits): +0x80000000 00000210 B1010014 79010014 7B010014 ....±...y...{... +0x80000010 7D010014 7F010014 }....... + +5) Fast Read Quad I/O with "Continuous Read Mode"(0xEB): +-------------------------------------------------------- +SPI Quad, Mode3, 8bits, MSB first, Show /CS & Honour /CS, SCK=About 32MHz: +Send(IO0 to IO3) hexa: +00 01 B0 (A23-16) (A15-8) (A7-0) (Corresponds to Real Addr=0x140001B0 (Reset_Handler/ResetISR)) +A5 (M7-0) => A5 = 1010 0101 (Continuous Read Mode enabled) +A5 A5 (Dummy 2 bytes) +Receive(IO0 to IO3) hexa: +10 B5 72 B6 19 4B 1A 4A (Data) +1A 60 1A 4A 5A 60 1A 4A (Data) +4F F0 FF 33 13 60 53 60 (Data) +Dump from Debug (Big Endian to swap 32bits): +0x800001B0 10B572B6 194B1A4A 1A601A4A 5A601A4A .µr¶.K.J.`.JZ`.J +0x800001C0 4FF0FF33 13605360 Oðÿ3.`S` + +6) Fast Read Quad I/O with "Continuous Read Mode"(0xEB): +-------------------------------------------------------- +SPI Quad, Mode3, 8bits, MSB first, Show /CS & Honour /CS: +Send(IO0 to IO3) hexa: +00 02 18 (A23-16) (A15-8) (A7-0) +A5 (M7-0) => A5 = 1010 0101 (Continuous Read Mode enabled) +A5 A5 (Dummy 2 bytes) +Receive(IO0 to IO3) hexa: +FE E7 00 BF 00 31 05 40 (Data) +00 00 DF 10 FF F7 DF 01 (Data) +80 E2 00 E0 14 01 00 14 (Data) +Dump from Debug (Big Endian to swap 32bits): +0x80000218 FEE700BF 00310540 0000DF10 FFF7DF01 þç.¿.1.@..ß.ÿ÷ß. +0x80000228 80E200E0 14010014 .â.à.... + +7) Fast Read Quad I/O with "Continuous Read Mode"(0xEB): +-------------------------------------------------------- +SPI Quad, Mode3, 8bits, MSB first, Show /CS & Honour /CS: +Send(IO0 to IO3) hexa: +00 01 C8 (A23-16) (A15-8) (A7-0) +A5 (M7-0) => A5 = 1010 0101 (Continuous Read Mode enabled) +A5 A5 (Dummy 2 bytes) +Receive(IO0 to IO3) hexa: +93 60 D3 60 13 61 53 61 (Data) +93 61 D3 61 62 B6 15 4C (Data) +Dump from Debug (Big Endian to swap 32bits): +0x800001C8 9360D360 13615361 9361D361 62B6154C .`Ó`.aSa.aÓab¶.L + +8) Fast Read Quad I/O with "Continuous Read Mode"(0xEB): +-------------------------------------------------------- +SPI Quad, Mode3, 8bits, MSB first, Show /CS & Honour /CS: +Send(IO0 to IO3) hexa: +00 02 30 (A23-16) (A15-8) (A7-0) +A5 (M7-0) => A5 = 1010 0101 (Continuous Read Mode enabled) +A5 A5 (Dummy 2 bytes) +Receive(IO0 to IO3) hexa: +50 01 00 14 78 01 00 14 (Data) +Dump from Debug (Big Endian to swap 32bits): +0x80000230 50010014 78010014 P...x... + +9) Fast Read Quad I/O with "Continuous Read Mode"(0xEB): +-------------------------------------------------------- +SPI Quad, Mode3, 8bits, MSB first, Show /CS & Honour /CS: +Send(IO0 to IO3) hexa: +00 01 D8 (A23-16) (A15-8) (A7-0) +A5 (M7-0) => A5 = 1010 0101 (Continuous Read Mode enabled) +A5 A5 (Dummy 2 bytes) +Receive(IO0 to IO3) hexa: +05 E0 20 68 61 68 A2 68 (Data) +0C 34 FF F7 D2 FF 12 4B (Data +9C 42 F6 D3 04 E0 20 68 (Data) +61 68 08 34 FF F7 D2 FF (Data) +0E 4B 9C 42 F7 D3 DF F8 (Data) +Dump from Debug (Big Endian to swap 32bits): +0x800001D8 05E02068 6168A268 0C34FFF7 D2FF124B .à hah¢h.4ÿ÷Òÿ.K +0x800001E8 9C42F6D3 04E02068 61680834 FFF7D2FF .BöÓ.à hah.4ÿ÷Òÿ +0x800001F8 0E4B9C42 F7D3DFF8 .K.B÷Óßø + +Nota: +Tested on JellyBean. +SCK is about 32MHz After about 620us from startup. +SCK change to about 660KHz/700KHz during about 400us. (During Read from 00 0C 78 => During CGU SetPLL1 code). +SCK change from 4MHz to about 8MHz during about 15us. (Read from 00 0D 98 => During CGU SetPLL1 code). +SCK stabilize to 8MHz during 122us (no data anymore OLS memory is full) (Read from 00 05 B0). + +... +During Code running the SCK run at 8MHz MCU is configured at 72MHz => 12MHz(IRC)*6. +SPIFI CLK(0x40050070) = 0xD000800 0x0D=IDIVB & 0x800=AUTOBLOCK_CLOCK_BIT Enabled +IDIVB_CTRL(0x4005004C) = 0x9000820 => IDIB=1000(8+1)=9 => for 72MHz Core => 72/9=8MHz +IDIVB_CTRL(0x4005004C) = 0x9000800 => IDIB=0000(0+1)=1 => for 72MHz Core => 72/1=72MHz => This configuration just crash. +IDIVB_CTRL(0x4005004C) = 0x9000800 => IDIB=0000(0+1)=1 => for 72MHz Core => 72/2=36MHz => This configuration works fine. + From 2c43a1d5ed900cb8e4b65330b9b7c0bc163d5304 Mon Sep 17 00:00:00 2001 From: Michael Ossmann Date: Wed, 27 Jun 2012 21:52:24 -0600 Subject: [PATCH 08/16] fixed p-channel mosfet orientation --- hardware/bubblegum/bubblegum-cache.lib | 10 +++++----- hardware/bubblegum/bubblegum.sch | 14 +++++++------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/hardware/bubblegum/bubblegum-cache.lib b/hardware/bubblegum/bubblegum-cache.lib index 6150d86a..3b27ae3b 100644 --- a/hardware/bubblegum/bubblegum-cache.lib +++ b/hardware/bubblegum/bubblegum-cache.lib @@ -1,4 +1,4 @@ -EESchema-LIBRARY Version 2.3 Date: Thu Jun 21 12:06:12 2012 +EESchema-LIBRARY Version 2.3 Date: Wed Jun 27 21:51:49 2012 #encoding utf-8 # # BALUN @@ -104,10 +104,10 @@ F0 "U" 0 50 60 H V C CNN F1 "FIL-LP0603" 0 -50 60 H V C CNN DRAW S -300 200 300 -200 0 1 0 N -X IN 1 600 150 300 L 50 50 1 1 B -X OUT 2 -600 150 300 R 50 50 1 1 B -X GND 3 -600 -150 300 R 50 50 1 1 W -X GND 4 600 -150 300 L 50 50 1 1 W +X OUT 1 -600 150 300 R 50 50 1 1 B +X GND 2 -600 -150 300 R 50 50 1 1 W +X GND 3 600 -150 300 L 50 50 1 1 W +X IN 4 600 150 300 L 50 50 1 1 B ENDDRAW ENDDEF # diff --git a/hardware/bubblegum/bubblegum.sch b/hardware/bubblegum/bubblegum.sch index d0222221..031aa1ef 100644 --- a/hardware/bubblegum/bubblegum.sch +++ b/hardware/bubblegum/bubblegum.sch @@ -1,4 +1,4 @@ -EESchema Schematic File Version 2 date Thu Jun 21 12:06:12 2012 +EESchema Schematic File Version 2 date Wed Jun 27 21:51:49 2012 LIBS:power LIBS:device LIBS:transistors @@ -37,7 +37,7 @@ $Descr User 17000 11000 encoding utf-8 Sheet 1 1 Title "" -Date "21 jun 2012" +Date "28 jun 2012" Rev "" Comp "" Comment1 "" @@ -45,6 +45,8 @@ Comment2 "" Comment3 "" Comment4 "" $EndDescr +Wire Wire Line + 9650 7050 9650 7150 Text Notes 7400 7750 0 40 ~ 0 DC connection to GND required on IF1, IF2? Text Notes 7700 3450 0 40 ~ 0 @@ -375,8 +377,6 @@ Wire Wire Line 7850 5050 7850 5150 Wire Wire Line 9800 2050 9800 2150 -Wire Wire Line - 9650 7050 9650 7150 Wire Wire Line 9800 4650 9800 4850 Wire Wire Line @@ -1178,7 +1178,7 @@ $EndComp Text Notes 14900 6650 0 40 ~ 0 ferrite beads needed? Text Notes 5800 4900 0 40 ~ 0 -Bypass control signals allow the LO to be bypassed\n(essentially a zero Hz LO). The LO should be switched\noff when bypass is enabled (active low). +Bypass control signals (active low) allow the LO to\nbe bypassed (essentially a zero Hz LO). The LO\nshould be switched off when bypass is enabled. Text Notes 11850 8000 0 40 ~ 0 balun here may not not be needed if\ndirect connection to MAX2837 is made Text Notes 1600 3100 0 40 ~ 0 @@ -2022,7 +2022,7 @@ P 7750 5350 F 0 "Q3" H 7750 5540 60 0000 R CNN F 1 "MOSFET_P" H 7750 5170 60 0000 R CNN 1 7750 5350 - 1 0 0 -1 + 1 0 0 1 $EndComp $Comp L MOSFET_N Q4 @@ -2080,7 +2080,7 @@ P 8350 4150 F 0 "Q1" H 8350 4340 60 0000 R CNN F 1 "MOSFET_P" H 8350 3970 60 0000 R CNN 1 8350 4150 - 1 0 0 -1 + 1 0 0 1 $EndComp $Comp L GND #PWR16 From 7ac90cd308a3ef9f72c3f98b4ac3e664cce3956e Mon Sep 17 00:00:00 2001 From: Michael Ossmann Date: Wed, 27 Jun 2012 21:57:07 -0600 Subject: [PATCH 09/16] matched n-channel mosfets to keep impedance the same between differential paths --- hardware/bubblegum/bubblegum-cache.lib | 2 +- hardware/bubblegum/bubblegum.sch | 182 ++++++++++++++++--------- 2 files changed, 120 insertions(+), 64 deletions(-) diff --git a/hardware/bubblegum/bubblegum-cache.lib b/hardware/bubblegum/bubblegum-cache.lib index 3b27ae3b..57949084 100644 --- a/hardware/bubblegum/bubblegum-cache.lib +++ b/hardware/bubblegum/bubblegum-cache.lib @@ -1,4 +1,4 @@ -EESchema-LIBRARY Version 2.3 Date: Wed Jun 27 21:51:49 2012 +EESchema-LIBRARY Version 2.3 Date: Wed Jun 27 21:56:30 2012 #encoding utf-8 # # BALUN diff --git a/hardware/bubblegum/bubblegum.sch b/hardware/bubblegum/bubblegum.sch index 031aa1ef..07a49c05 100644 --- a/hardware/bubblegum/bubblegum.sch +++ b/hardware/bubblegum/bubblegum.sch @@ -1,4 +1,4 @@ -EESchema Schematic File Version 2 date Wed Jun 27 21:51:49 2012 +EESchema Schematic File Version 2 date Wed Jun 27 21:56:30 2012 LIBS:power LIBS:device LIBS:transistors @@ -45,39 +45,27 @@ Comment2 "" Comment3 "" Comment4 "" $EndDescr +Wire Wire Line + 10900 2550 11000 2550 +Wire Wire Line + 11000 2550 11000 2450 +Wire Wire Line + 10500 2250 10600 2250 +Wire Wire Line + 10600 2250 10600 2350 +Wire Wire Line + 10050 7250 10050 7350 +Wire Wire Line + 10050 7350 9950 7350 Wire Wire Line 9650 7050 9650 7150 -Text Notes 7400 7750 0 40 ~ 0 -DC connection to GND required on IF1, IF2? -Text Notes 7700 3450 0 40 ~ 0 -DC connection to GND required on RF1, RF2? -NoConn ~ 8100 7000 -$Comp -L BALUN T2 -U 1 1 4FE35EF4 -P 7800 3050 -F 0 "T2" H 7800 3300 70 0000 C CNN -F 1 "RX_BALUN" H 7800 2750 70 0000 C CNN -F 4 "Anaren" H 7800 3050 60 0001 C CNN "Manufacturer" -F 5 "B0310J50100AHF" H 7800 3050 60 0001 C CNN "Part Number" -F 6 "Ultra Low Profile 0805 Balun 50 to 100 Balanced" H 7800 3050 60 0001 C CNN "Description" - 1 7800 3050 - -1 0 0 1 -$EndComp -NoConn ~ 8200 3050 -Text Notes 11850 1150 0 40 ~ 0 -balun here may not not be needed if\ndirect connection to MAX2837 is made -Text Notes 3450 4550 0 40 ~ 0 -amplifier will likely\nend up here -Text Notes 2450 6900 0 40 ~ 0 -amplifier will likely\nend up here Wire Wire Line 6900 1950 6900 2050 Connection ~ 6300 8050 Wire Wire Line 6300 8050 6550 8050 Wire Wire Line - 6300 7650 6300 8150 + 6300 8150 6300 7650 Wire Wire Line 6400 5900 6400 6000 Connection ~ 6600 3550 @@ -178,10 +166,10 @@ Wire Wire Line 1250 9400 1500 9400 Connection ~ 7100 5350 Wire Wire Line - 7000 5350 7550 5350 + 7550 5350 7000 5350 Connection ~ 7700 4150 Wire Wire Line - 7600 4150 8150 4150 + 8150 4150 7600 4150 Connection ~ 1950 6250 Wire Wire Line 1750 6250 2250 6250 @@ -201,11 +189,11 @@ Wire Wire Line 2550 4750 2550 4550 Connection ~ 2650 3550 Wire Wire Line - 2650 3650 2650 3450 + 2650 3450 2650 3650 Wire Wire Line 2850 3550 2650 3550 Wire Wire Line - 4150 2250 4150 1950 + 4150 1950 4150 2250 Connection ~ 4050 3500 Wire Wire Line 3800 3500 4050 3500 @@ -269,13 +257,13 @@ Wire Wire Line Wire Wire Line 14100 5750 14100 6050 Wire Wire Line - 12750 5250 13500 5250 + 13500 5250 12750 5250 Connection ~ 14100 5250 Wire Wire Line 14100 5350 14100 5250 Connection ~ 13400 5250 Wire Wire Line - 13100 5350 13100 5250 + 13100 5250 13100 5350 Wire Wire Line 11450 3950 11450 4050 Wire Wire Line @@ -375,8 +363,6 @@ Wire Wire Line 13550 8900 13550 9300 Wire Wire Line 7850 5050 7850 5150 -Wire Wire Line - 9800 2050 9800 2150 Wire Wire Line 9800 4650 9800 4850 Wire Wire Line @@ -403,7 +389,7 @@ Wire Wire Line Wire Wire Line 8150 4750 7700 4750 Wire Wire Line - 8450 4350 8450 4550 + 8450 4550 8450 4350 Connection ~ 9500 4150 Wire Wire Line 9350 4150 9500 4150 @@ -473,7 +459,7 @@ Wire Wire Line Wire Wire Line 4250 3250 4250 3150 Wire Wire Line - 1550 5150 1750 5150 + 1750 5150 1550 5150 Wire Wire Line 1650 5850 1650 5750 Wire Wire Line @@ -483,7 +469,7 @@ Wire Wire Line 950 5450 850 5450 Connection ~ 850 5450 Wire Wire Line - 1550 3450 1750 3450 + 1750 3450 1550 3450 Wire Wire Line 850 4050 850 3650 Wire Wire Line @@ -564,7 +550,7 @@ Wire Wire Line Wire Wire Line 7850 6250 7850 6150 Wire Wire Line - 7850 5750 7850 5550 + 7850 5550 7850 5750 Wire Wire Line 7100 5950 7550 5950 Wire Wire Line @@ -584,10 +570,10 @@ Wire Wire Line Wire Wire Line 9500 4950 10850 4950 Wire Wire Line - 9650 6450 9650 5850 + 9650 5850 9650 6450 Connection ~ 9650 6350 Wire Wire Line - 9800 2750 9800 4250 + 9800 4250 9800 2250 Connection ~ 9800 2850 Wire Wire Line 12750 8700 12850 8700 @@ -624,7 +610,7 @@ Wire Wire Line 10600 6150 10600 6050 Connection ~ 10600 6050 Wire Wire Line - 10300 6750 10300 6550 + 10300 6550 10300 6750 Wire Wire Line 10600 6550 10600 6650 Connection ~ 10600 6650 @@ -663,12 +649,12 @@ Wire Wire Line Wire Wire Line 12150 3950 12150 4050 Wire Wire Line - 12750 4850 15400 4850 + 15400 4850 12750 4850 Wire Wire Line - 13400 5250 13400 5350 + 13400 5350 13400 5250 Connection ~ 13100 5250 Wire Wire Line - 14000 5250 14200 5250 + 14200 5250 14000 5250 Wire Wire Line 14800 5350 14800 5250 Wire Wire Line @@ -731,17 +717,17 @@ Wire Wire Line Wire Wire Line 16100 4850 16100 4750 Wire Wire Line - 3250 8150 3250 7800 + 3250 7800 3250 8150 Wire Wire Line 3150 6700 3350 6700 Wire Wire Line - 3350 6900 3350 6600 + 3350 6600 3350 6900 Connection ~ 3350 6700 Wire Wire Line 7150 2050 6700 2050 Connection ~ 6900 2050 Wire Wire Line - 4050 3600 4050 3150 + 4050 3150 4050 3600 Wire Wire Line 4150 1450 4150 1550 Wire Wire Line @@ -854,9 +840,9 @@ Wire Wire Line Wire Wire Line 8200 7600 8750 7600 Wire Wire Line - 6600 3650 6600 3150 + 6600 3150 6600 3650 Wire Wire Line - 6400 6400 6400 6750 + 6400 6750 6400 6400 Wire Wire Line 6650 6500 6400 6500 Connection ~ 6400 6500 @@ -866,6 +852,74 @@ Wire Wire Line 2650 4650 3400 4650 Wire Wire Line 3400 4650 3400 3150 +Wire Wire Line + 9650 7550 9650 7650 +Wire Wire Line + 10600 2850 10600 2750 +Wire Wire Line + 9800 2250 9900 2250 +$Comp +L VCC #PWR? +U 1 1 4FEBD54F +P 11000 2450 +F 0 "#PWR?" H 11000 2550 30 0001 C CNN +F 1 "VCC" H 11000 2550 30 0000 C CNN + 1 11000 2450 + 1 0 0 -1 +$EndComp +$Comp +L MOSFET_N Q? +U 1 1 4FEBD52A +P 10700 2550 +F 0 "Q?" H 10710 2720 60 0000 R CNN +F 1 "MOSFET_N" H 10710 2400 60 0000 R CNN +F 4 "DMN2300UFB4" H 10700 2550 60 0001 C CNN "Part Number" + 1 10700 2550 + -1 0 0 -1 +$EndComp +$Comp +L VCC #PWR? +U 1 1 4FEBD516 +P 10050 7250 +F 0 "#PWR?" H 10050 7350 30 0001 C CNN +F 1 "VCC" H 10050 7350 30 0000 C CNN + 1 10050 7250 + 1 0 0 -1 +$EndComp +$Comp +L MOSFET_N Q? +U 1 1 4FEBD4FB +P 9750 7350 +F 0 "Q?" H 9760 7520 60 0000 R CNN +F 1 "MOSFET_N" H 9760 7200 60 0000 R CNN +F 4 "DMN2300UFB4" H 9750 7350 60 0001 C CNN "Part Number" + 1 9750 7350 + -1 0 0 -1 +$EndComp +Text Notes 7400 7750 0 40 ~ 0 +DC connection to GND required on IF1, IF2? +Text Notes 7700 3450 0 40 ~ 0 +DC connection to GND required on RF1, RF2? +NoConn ~ 8100 7000 +$Comp +L BALUN T2 +U 1 1 4FE35EF4 +P 7800 3050 +F 0 "T2" H 7800 3300 70 0000 C CNN +F 1 "RX_BALUN" H 7800 2750 70 0000 C CNN +F 4 "Anaren" H 7800 3050 60 0001 C CNN "Manufacturer" +F 5 "B0310J50100AHF" H 7800 3050 60 0001 C CNN "Part Number" +F 6 "Ultra Low Profile 0805 Balun 50 to 100 Balanced" H 7800 3050 60 0001 C CNN "Description" + 1 7800 3050 + -1 0 0 1 +$EndComp +NoConn ~ 8200 3050 +Text Notes 11850 1150 0 40 ~ 0 +balun here may not not be needed if\ndirect connection to MAX2837 is made +Text Notes 3450 4550 0 40 ~ 0 +amplifier will likely\nend up here +Text Notes 2450 6900 0 40 ~ 0 +amplifier will likely\nend up here Text Notes 4750 2750 0 60 ~ 0 switchable image reject filters Text Notes 4100 7350 0 60 ~ 0 @@ -1973,10 +2027,10 @@ $EndComp $Comp L GND #PWR66 U 1 1 4FE0EFAF -P 9650 7150 -F 0 "#PWR66" H 9650 7150 30 0001 C CNN -F 1 "GND" H 9650 7080 30 0001 C CNN - 1 9650 7150 +P 9650 7650 +F 0 "#PWR66" H 9650 7650 30 0001 C CNN +F 1 "GND" H 9650 7580 30 0001 C CNN + 1 9650 7650 1 0 0 -1 $EndComp $Comp @@ -2030,6 +2084,7 @@ U 1 1 4FE0EEDB P 7750 5950 F 0 "Q4" H 7760 6120 60 0000 R CNN F 1 "MOSFET_N" H 7760 5800 60 0000 R CNN +F 4 "DMN2300UFB4" H 7750 5950 60 0001 C CNN "Part Number" 1 7750 5950 1 0 0 -1 $EndComp @@ -2070,6 +2125,7 @@ U 1 1 4FE0EE1A P 8350 4750 F 0 "Q2" H 8360 4920 60 0000 R CNN F 1 "MOSFET_N" H 8360 4600 60 0000 R CNN +F 4 "DMN2300UFB4" H 8350 4750 60 0001 C CNN "Part Number" 1 8350 4750 1 0 0 -1 $EndComp @@ -2085,20 +2141,20 @@ $EndComp $Comp L GND #PWR16 U 1 1 4FE0EDCF -P 9800 2050 -F 0 "#PWR16" H 9800 2050 30 0001 C CNN -F 1 "GND" H 9800 1980 30 0001 C CNN - 1 9800 2050 - -1 0 0 1 +P 10600 2850 +F 0 "#PWR16" H 10600 2850 30 0001 C CNN +F 1 "GND" H 10600 2780 30 0001 C CNN + 1 10600 2850 + 1 0 0 -1 $EndComp $Comp L INDUCTOR L3 U 1 1 4FE0EDC7 -P 9800 2450 -F 0 "L3" V 9750 2450 40 0000 C CNN -F 1 "INDUCTOR" V 9900 2450 40 0000 C CNN - 1 9800 2450 - 1 0 0 -1 +P 10200 2250 +F 0 "L3" V 10150 2250 40 0000 C CNN +F 1 "INDUCTOR" V 10300 2250 40 0000 C CNN + 1 10200 2250 + 0 1 1 0 $EndComp $Comp L INDUCTOR L4 From 0909f42404187df819ed11a7d7317a7ed433e2d1 Mon Sep 17 00:00:00 2001 From: Michael Ossmann Date: Wed, 27 Jun 2012 22:18:50 -0600 Subject: [PATCH 10/16] bom info --- hardware/bubblegum/bubblegum-cache.lib | 2 +- hardware/bubblegum/bubblegum.sch | 432 ++++++++++++++++++++----- 2 files changed, 356 insertions(+), 78 deletions(-) diff --git a/hardware/bubblegum/bubblegum-cache.lib b/hardware/bubblegum/bubblegum-cache.lib index 57949084..3b2a00e9 100644 --- a/hardware/bubblegum/bubblegum-cache.lib +++ b/hardware/bubblegum/bubblegum-cache.lib @@ -1,4 +1,4 @@ -EESchema-LIBRARY Version 2.3 Date: Wed Jun 27 21:56:30 2012 +EESchema-LIBRARY Version 2.3 Date: Wed Jun 27 22:18:22 2012 #encoding utf-8 # # BALUN diff --git a/hardware/bubblegum/bubblegum.sch b/hardware/bubblegum/bubblegum.sch index 07a49c05..40842508 100644 --- a/hardware/bubblegum/bubblegum.sch +++ b/hardware/bubblegum/bubblegum.sch @@ -1,4 +1,4 @@ -EESchema Schematic File Version 2 date Wed Jun 27 21:56:30 2012 +EESchema Schematic File Version 2 date Wed Jun 27 22:18:22 2012 LIBS:power LIBS:device LIBS:transistors @@ -45,6 +45,28 @@ Comment2 "" Comment3 "" Comment4 "" $EndDescr +$Comp +L GND #PWR? +U 1 1 4FE2B858 +P 11850 8500 +F 0 "#PWR?" H 11850 8500 30 0001 C CNN +F 1 "GND" H 11850 8430 30 0001 C CNN + 1 11850 8500 + 0 1 1 0 +$EndComp +Wire Wire Line + 11850 8500 11950 8500 +$Comp +L GND #PWR9 +U 1 1 4FE0F3BF +P 11850 1650 +F 0 "#PWR9" H 11850 1650 30 0001 C CNN +F 1 "GND" H 11850 1580 30 0001 C CNN + 1 11850 1650 + 0 1 1 0 +$EndComp +Wire Wire Line + 11850 1650 11950 1650 Wire Wire Line 10900 2550 11000 2550 Wire Wire Line @@ -65,7 +87,9 @@ Connection ~ 6300 8050 Wire Wire Line 6300 8050 6550 8050 Wire Wire Line - 6300 8150 6300 7650 + 6300 8150 6300 8050 +Wire Wire Line + 6300 8050 6300 7650 Wire Wire Line 6400 5900 6400 6000 Connection ~ 6600 3550 @@ -125,7 +149,9 @@ Wire Wire Line 2700 9800 2800 9800 Connection ~ 2800 9300 Wire Wire Line - 2800 9200 2800 9400 + 2800 9200 2800 9300 +Wire Wire Line + 2800 9300 2800 9400 Wire Wire Line 2800 9400 2700 9400 Connection ~ 16000 8800 @@ -143,7 +169,15 @@ Wire Wire Line Wire Wire Line 15100 8700 15000 8700 Wire Wire Line - 15000 8700 15000 9200 + 15000 8700 15000 8800 +Wire Wire Line + 15000 8800 15000 8900 +Wire Wire Line + 15000 8900 15000 9000 +Wire Wire Line + 15000 9000 15000 9100 +Wire Wire Line + 15000 9100 15000 9200 Connection ~ 4800 9800 Wire Wire Line 4800 9800 4700 9800 @@ -166,13 +200,19 @@ Wire Wire Line 1250 9400 1500 9400 Connection ~ 7100 5350 Wire Wire Line - 7550 5350 7000 5350 + 7550 5350 7100 5350 +Wire Wire Line + 7100 5350 7000 5350 Connection ~ 7700 4150 Wire Wire Line - 8150 4150 7600 4150 + 8150 4150 7700 4150 +Wire Wire Line + 7700 4150 7600 4150 Connection ~ 1950 6250 Wire Wire Line - 1750 6250 2250 6250 + 1750 6250 1950 6250 +Wire Wire Line + 1950 6250 2250 6250 Wire Wire Line 1950 6350 1950 6250 Wire Wire Line @@ -182,18 +222,24 @@ Wire Wire Line 1850 4900 2050 4900 Connection ~ 2800 4750 Wire Wire Line - 3000 4750 2550 4750 + 3000 4750 2800 4750 +Wire Wire Line + 2800 4750 2550 4750 Wire Wire Line 2800 4850 2800 4750 Wire Wire Line 2550 4750 2550 4550 Connection ~ 2650 3550 Wire Wire Line - 2650 3450 2650 3650 + 2650 3450 2650 3550 +Wire Wire Line + 2650 3550 2650 3650 Wire Wire Line 2850 3550 2650 3550 Wire Wire Line - 4150 1950 4150 2250 + 4150 1950 4150 2050 +Wire Wire Line + 4150 2050 4150 2250 Connection ~ 4050 3500 Wire Wire Line 3800 3500 4050 3500 @@ -232,32 +278,50 @@ Wire Wire Line Wire Wire Line 14900 3400 14700 3400 Wire Wire Line - 13900 3100 11650 3100 + 13900 3100 13400 3100 +Wire Wire Line + 13400 3100 11650 3100 Wire Wire Line 11650 3100 11650 4050 Wire Wire Line - 13900 3300 11850 3300 + 13900 3300 13600 3300 +Wire Wire Line + 13600 3300 11850 3300 Wire Wire Line 11850 3300 11850 4050 Wire Wire Line 13900 3500 13800 3500 Wire Wire Line - 13800 3500 13800 4650 + 13800 3500 13800 3650 +Wire Wire Line + 13800 3650 13800 4650 Wire Wire Line 13800 4650 12750 4650 Wire Wire Line 13500 5850 13400 5850 Connection ~ 12850 6050 Wire Wire Line - 12150 6050 14800 6050 + 12150 6050 12850 6050 +Wire Wire Line + 12850 6050 13100 6050 +Wire Wire Line + 13100 6050 14100 6050 +Wire Wire Line + 14100 6050 14800 6050 Wire Wire Line 12150 6050 12150 5950 Wire Wire Line 13400 5850 13400 5750 Wire Wire Line - 14100 5750 14100 6050 + 14100 5750 14100 5850 Wire Wire Line - 13500 5250 12750 5250 + 14100 5850 14100 6050 +Wire Wire Line + 13500 5250 13400 5250 +Wire Wire Line + 13400 5250 13100 5250 +Wire Wire Line + 13100 5250 12750 5250 Connection ~ 14100 5250 Wire Wire Line 14100 5350 14100 5250 @@ -272,7 +336,37 @@ Wire Wire Line 11950 6050 11950 5950 Connection ~ 16000 7250 Wire Wire Line - 16300 7250 11700 7250 + 16300 7250 16000 7250 +Wire Wire Line + 16000 7250 15700 7250 +Wire Wire Line + 15700 7250 15400 7250 +Wire Wire Line + 15400 7250 15100 7250 +Wire Wire Line + 15100 7250 14800 7250 +Wire Wire Line + 14800 7250 14500 7250 +Wire Wire Line + 14500 7250 14200 7250 +Wire Wire Line + 14200 7250 13900 7250 +Wire Wire Line + 13900 7250 13600 7250 +Wire Wire Line + 13600 7250 13300 7250 +Wire Wire Line + 13300 7250 13000 7250 +Wire Wire Line + 13000 7250 12700 7250 +Wire Wire Line + 12700 7250 12400 7250 +Wire Wire Line + 12400 7250 12100 7250 +Wire Wire Line + 12100 7250 11800 7250 +Wire Wire Line + 11800 7250 11700 7250 Connection ~ 15100 7250 Connection ~ 14500 7250 Connection ~ 13900 7250 @@ -281,7 +375,37 @@ Connection ~ 12700 7250 Connection ~ 12100 7250 Connection ~ 16000 6850 Wire Wire Line - 16300 6850 11700 6850 + 16300 6850 16000 6850 +Wire Wire Line + 16000 6850 15700 6850 +Wire Wire Line + 15700 6850 15400 6850 +Wire Wire Line + 15400 6850 15100 6850 +Wire Wire Line + 15100 6850 14800 6850 +Wire Wire Line + 14800 6850 14500 6850 +Wire Wire Line + 14500 6850 14200 6850 +Wire Wire Line + 14200 6850 13900 6850 +Wire Wire Line + 13900 6850 13600 6850 +Wire Wire Line + 13600 6850 13300 6850 +Wire Wire Line + 13300 6850 13000 6850 +Wire Wire Line + 13000 6850 12700 6850 +Wire Wire Line + 12700 6850 12400 6850 +Wire Wire Line + 12400 6850 12100 6850 +Wire Wire Line + 12100 6850 11800 6850 +Wire Wire Line + 11800 6850 11700 6850 Connection ~ 15400 6850 Connection ~ 14800 6850 Connection ~ 14200 6850 @@ -299,7 +423,15 @@ Wire Wire Line 11550 3950 11550 4050 Connection ~ 10150 3950 Wire Wire Line - 10000 3950 10900 3950 + 10000 3950 10150 3950 +Wire Wire Line + 10150 3950 10300 3950 +Wire Wire Line + 10300 3950 10450 3950 +Wire Wire Line + 10450 3950 10600 3950 +Wire Wire Line + 10600 3950 10900 3950 Wire Wire Line 10000 3950 10000 3850 Wire Wire Line @@ -311,7 +443,9 @@ Connection ~ 10300 6650 Wire Wire Line 10900 6550 10900 6650 Wire Wire Line - 10900 6650 10300 6650 + 10900 6650 10600 6650 +Wire Wire Line + 10600 6650 10300 6650 Wire Wire Line 10900 6150 10900 6050 Connection ~ 10300 6050 @@ -329,7 +463,11 @@ Connection ~ 10600 3350 Wire Wire Line 10600 3350 10600 3450 Wire Wire Line - 10300 3350 11200 3350 + 10300 3350 10600 3350 +Wire Wire Line + 10600 3350 10900 3350 +Wire Wire Line + 10900 3350 11200 3350 Wire Wire Line 10300 3350 10300 3450 Connection ~ 10450 3950 @@ -348,8 +486,6 @@ Wire Wire Line 13550 2150 13450 2150 Wire Wire Line 12750 1850 12850 1850 -Wire Wire Line - 11850 1650 11950 1650 Wire Wire Line 8400 1450 11950 1450 Wire Wire Line @@ -360,13 +496,21 @@ Wire Wire Line Wire Wire Line 13450 8900 13550 8900 Wire Wire Line - 13550 8900 13550 9300 + 13550 8900 13550 9000 +Wire Wire Line + 13550 9000 13550 9100 +Wire Wire Line + 13550 9100 13550 9200 +Wire Wire Line + 13550 9200 13550 9300 Wire Wire Line 7850 5050 7850 5150 Wire Wire Line 9800 4650 9800 4850 Wire Wire Line - 9800 4850 10850 4850 + 9800 4850 10450 4850 +Wire Wire Line + 10450 4850 10850 4850 Wire Wire Line 9650 6350 8950 6350 Wire Wire Line @@ -378,7 +522,9 @@ Wire Wire Line Wire Wire Line 9650 5450 9650 5150 Wire Wire Line - 9650 5150 10850 5150 + 9650 5150 10450 5150 +Wire Wire Line + 10450 5150 10850 5150 Connection ~ 9350 6050 Wire Wire Line 8150 6050 8050 6050 @@ -389,7 +535,9 @@ Wire Wire Line Wire Wire Line 8150 4750 7700 4750 Wire Wire Line - 8450 4550 8450 4350 + 8450 4550 8450 4450 +Wire Wire Line + 8450 4450 8450 4350 Connection ~ 9500 4150 Wire Wire Line 9350 4150 9500 4150 @@ -448,7 +596,13 @@ Connection ~ 850 5550 Wire Wire Line 850 5550 950 5550 Wire Wire Line - 850 5750 850 5350 + 850 5750 850 5650 +Wire Wire Line + 850 5650 850 5550 +Wire Wire Line + 850 5550 850 5450 +Wire Wire Line + 850 5450 850 5350 Wire Wire Line 850 5350 950 5350 Connection ~ 1650 5150 @@ -459,7 +613,9 @@ Wire Wire Line Wire Wire Line 4250 3250 4250 3150 Wire Wire Line - 1750 5150 1550 5150 + 1750 5150 1650 5150 +Wire Wire Line + 1650 5150 1550 5150 Wire Wire Line 1650 5850 1650 5750 Wire Wire Line @@ -469,9 +625,17 @@ Wire Wire Line 950 5450 850 5450 Connection ~ 850 5450 Wire Wire Line - 1750 3450 1550 3450 + 1750 3450 1650 3450 Wire Wire Line - 850 4050 850 3650 + 1650 3450 1550 3450 +Wire Wire Line + 850 4050 850 3950 +Wire Wire Line + 850 3950 850 3850 +Wire Wire Line + 850 3850 850 3750 +Wire Wire Line + 850 3750 850 3650 Wire Wire Line 850 3650 950 3650 Wire Wire Line @@ -526,7 +690,9 @@ Wire Wire Line Wire Wire Line 9400 2950 9500 2950 Wire Wire Line - 9500 2950 9500 4250 + 9500 2950 9500 4150 +Wire Wire Line + 9500 4150 9500 4250 Wire Wire Line 8450 5050 8450 4950 Wire Wire Line @@ -539,18 +705,24 @@ Wire Wire Line Wire Wire Line 8450 3850 8450 3950 Wire Wire Line - 7700 4750 7700 4150 + 7700 4750 7700 4450 +Wire Wire Line + 7700 4450 7700 4150 Connection ~ 7700 4450 Connection ~ 7100 5650 Wire Wire Line - 7100 5350 7100 5950 + 7100 5350 7100 5650 +Wire Wire Line + 7100 5650 7100 5950 Connection ~ 7850 5650 Wire Wire Line 8050 5650 7850 5650 Wire Wire Line 7850 6250 7850 6150 Wire Wire Line - 7850 5550 7850 5750 + 7850 5550 7850 5650 +Wire Wire Line + 7850 5650 7850 5750 Wire Wire Line 7100 5950 7550 5950 Wire Wire Line @@ -560,20 +732,30 @@ Wire Wire Line Wire Wire Line 9350 5450 9350 5050 Wire Wire Line - 9350 5050 10850 5050 + 9350 5050 10150 5050 +Wire Wire Line + 10150 5050 10850 5050 Wire Wire Line 9400 6800 9300 6800 Wire Wire Line - 9350 6250 9350 5850 + 9350 6250 9350 6050 +Wire Wire Line + 9350 6050 9350 5850 Wire Wire Line 9500 4650 9500 4950 Wire Wire Line - 9500 4950 10850 4950 + 9500 4950 10150 4950 Wire Wire Line - 9650 5850 9650 6450 + 10150 4950 10850 4950 +Wire Wire Line + 9650 5850 9650 6350 +Wire Wire Line + 9650 6350 9650 6450 Connection ~ 9650 6350 Wire Wire Line - 9800 4250 9800 2250 + 9800 4250 9800 2850 +Wire Wire Line + 9800 2850 9800 2250 Connection ~ 9800 2850 Wire Wire Line 12750 8700 12850 8700 @@ -586,7 +768,13 @@ Connection ~ 13550 9200 Wire Wire Line 12850 1450 12750 1450 Wire Wire Line - 13550 2450 13550 2050 + 13550 2450 13550 2350 +Wire Wire Line + 13550 2350 13550 2250 +Wire Wire Line + 13550 2250 13550 2150 +Wire Wire Line + 13550 2150 13550 2050 Wire Wire Line 13550 2050 13450 2050 Wire Wire Line @@ -610,7 +798,9 @@ Wire Wire Line 10600 6150 10600 6050 Connection ~ 10600 6050 Wire Wire Line - 10300 6550 10300 6750 + 10300 6550 10300 6650 +Wire Wire Line + 10300 6650 10300 6750 Wire Wire Line 10600 6550 10600 6650 Connection ~ 10600 6650 @@ -649,12 +839,16 @@ Wire Wire Line Wire Wire Line 12150 3950 12150 4050 Wire Wire Line - 15400 4850 12750 4850 + 15400 4850 15300 4850 +Wire Wire Line + 15300 4850 12750 4850 Wire Wire Line 13400 5350 13400 5250 Connection ~ 13100 5250 Wire Wire Line - 14200 5250 14000 5250 + 14200 5250 14100 5250 +Wire Wire Line + 14100 5250 14000 5250 Wire Wire Line 14800 5350 14800 5250 Wire Wire Line @@ -674,17 +868,23 @@ Wire Wire Line Wire Wire Line 15000 6150 15000 5250 Wire Wire Line - 15000 5250 14700 5250 + 15000 5250 14800 5250 +Wire Wire Line + 14800 5250 14700 5250 Connection ~ 14800 5250 Wire Wire Line 14000 5850 14100 5850 Connection ~ 14100 5850 Wire Wire Line - 13900 3400 11950 3400 + 13900 3400 13700 3400 +Wire Wire Line + 13700 3400 11950 3400 Wire Wire Line 11950 3400 11950 4050 Wire Wire Line - 13900 3200 11750 3200 + 13900 3200 13500 3200 +Wire Wire Line + 13500 3200 11750 3200 Wire Wire Line 11750 3200 11750 4050 Wire Wire Line @@ -717,17 +917,25 @@ Wire Wire Line Wire Wire Line 16100 4850 16100 4750 Wire Wire Line - 3250 7800 3250 8150 + 3250 7800 3250 7900 +Wire Wire Line + 3250 7900 3250 8150 Wire Wire Line 3150 6700 3350 6700 Wire Wire Line - 3350 6600 3350 6900 + 3350 6600 3350 6700 +Wire Wire Line + 3350 6700 3350 6900 Connection ~ 3350 6700 Wire Wire Line - 7150 2050 6700 2050 + 7150 2050 6900 2050 +Wire Wire Line + 6900 2050 6700 2050 Connection ~ 6900 2050 Wire Wire Line - 4050 3150 4050 3600 + 4050 3150 4050 3500 +Wire Wire Line + 4050 3500 4050 3600 Wire Wire Line 4150 1450 4150 1550 Wire Wire Line @@ -742,7 +950,9 @@ Wire Wire Line Wire Wire Line 2350 5000 2050 5000 Wire Wire Line - 2050 5000 2050 4800 + 2050 5000 2050 4900 +Wire Wire Line + 2050 4900 2050 4800 Wire Wire Line 2050 4300 2050 4400 Wire Wire Line @@ -768,7 +978,15 @@ Wire Wire Line Wire Wire Line 3900 9800 3500 9800 Wire Wire Line - 4800 10000 4800 9500 + 4800 10000 4800 9900 +Wire Wire Line + 4800 9900 4800 9800 +Wire Wire Line + 4800 9800 4800 9700 +Wire Wire Line + 4800 9700 4800 9600 +Wire Wire Line + 4800 9600 4800 9500 Wire Wire Line 4800 9500 4700 9500 Wire Wire Line @@ -784,7 +1002,15 @@ Wire Wire Line 15000 9000 15100 9000 Connection ~ 15000 9000 Wire Wire Line - 16000 8600 16000 9100 + 16000 8600 16000 8700 +Wire Wire Line + 16000 8700 16000 8800 +Wire Wire Line + 16000 8800 16000 8900 +Wire Wire Line + 16000 8900 16000 9000 +Wire Wire Line + 16000 9000 16000 9100 Wire Wire Line 16000 9100 15900 9100 Wire Wire Line @@ -816,7 +1042,15 @@ Wire Wire Line Wire Wire Line 6700 2050 6700 2250 Wire Wire Line - 9900 6050 10900 6050 + 9900 6050 10150 6050 +Wire Wire Line + 10150 6050 10300 6050 +Wire Wire Line + 10300 6050 10450 6050 +Wire Wire Line + 10450 6050 10600 6050 +Wire Wire Line + 10600 6050 10900 6050 Wire Wire Line 5750 6500 6300 6500 Wire Wire Line @@ -833,16 +1067,18 @@ Wire Wire Line 11950 8300 8950 8300 Wire Wire Line 8950 8300 8950 7500 -Wire Wire Line - 11850 8500 11950 8500 Wire Wire Line 8200 7200 8200 7600 Wire Wire Line 8200 7600 8750 7600 Wire Wire Line - 6600 3150 6600 3650 + 6600 3150 6600 3550 Wire Wire Line - 6400 6750 6400 6400 + 6600 3550 6600 3650 +Wire Wire Line + 6400 6750 6400 6500 +Wire Wire Line + 6400 6500 6400 6400 Wire Wire Line 6650 6500 6400 6500 Connection ~ 6400 6500 @@ -985,15 +1221,6 @@ F 1 "C" H 6650 3750 50 0000 L CNN -1 0 0 1 $EndComp $Comp -L GND #PWR? -U 1 1 4FE2B858 -P 11850 8500 -F 0 "#PWR?" H 11850 8500 30 0001 C CNN -F 1 "GND" H 11850 8430 30 0001 C CNN - 1 11850 8500 - 0 1 1 0 -$EndComp -$Comp L C C? U 1 1 4FE2B83E P 7000 7450 @@ -1044,6 +1271,9 @@ U 1 1 4FE2B7CC P 6300 7200 F 0 "U?" H 6300 7400 60 0000 C CNN F 1 "SKY13350" H 6300 7000 60 0000 C CNN +F 4 "Skyworks" H 6300 7200 60 0001 C CNN "Manufacturer" +F 5 "SKY13350-385LF" H 6300 7200 60 0001 C CNN "Part Number" +F 6 "0.01-6.0 GHz GaAs SPDT Switch" H 6300 7200 60 0001 C CNN "Description" 1 6300 7200 0 1 1 0 $EndComp @@ -1100,6 +1330,9 @@ U 1 1 4FE2B4EB P 6600 2700 F 0 "U?" H 6600 2900 60 0000 C CNN F 1 "SKY13350" H 6600 2500 60 0000 C CNN +F 4 "Skyworks" H 6600 2700 60 0001 C CNN "Manufacturer" +F 5 "SKY13350-385LF" H 6600 2700 60 0001 C CNN "Part Number" +F 6 "0.01-6.0 GHz GaAs SPDT Switch" H 6600 2700 60 0001 C CNN "Description" 1 6600 2700 0 1 1 0 $EndComp @@ -1226,6 +1459,9 @@ U 1 1 4FE103CF P 2100 9600 F 0 "U16" V 2050 9600 60 0000 C CNN F 1 "GSG-74HC04" V 2150 9600 60 0000 C CNN +F 4 "Texas Instruments" H 2100 9600 60 0001 C CNN "Manufacturer" +F 5 "SN74AHC04RGYR" H 2100 9600 60 0001 C CNN "Part Number" +F 6 "IC HEX INVERTERS 14-QFN" H 2100 9600 60 0001 C CNN "Description" 1 2100 9600 1 0 0 -1 $EndComp @@ -1980,15 +2216,6 @@ F 1 "GND" H 12850 1380 30 0001 C CNN 0 -1 -1 0 $EndComp $Comp -L GND #PWR9 -U 1 1 4FE0F3BF -P 11850 1650 -F 0 "#PWR9" H 11850 1650 30 0001 C CNN -F 1 "GND" H 11850 1580 30 0001 C CNN - 1 11850 1650 - 0 1 1 0 -$EndComp -$Comp L GND #PWR70 U 1 1 4FE0F366 P 12850 8300 @@ -2342,6 +2569,9 @@ U 1 1 4FE0DF72 P 13150 8700 F 0 "P6" H 13150 8850 60 0000 C CNN F 1 "TX_IN" H 13150 8550 60 0000 C CNN +F 4 "Linx" H 13150 8700 60 0001 C CNN "Manufacturer" +F 5 "CONSMA003.062" H 13150 8700 60 0001 C CNN "Part Number" +F 6 "CONN FEMALE EDGE MT FOR .062\" BD" H 13150 8700 60 0001 C CNN "Description" 1 13150 8700 -1 0 0 -1 $EndComp @@ -2351,6 +2581,9 @@ U 1 1 4FE0DF67 P 13150 1850 F 0 "P1" H 13150 2000 60 0000 C CNN F 1 "RX_OUT" H 13150 1700 60 0000 C CNN +F 4 "Linx" H 13150 1850 60 0001 C CNN "Manufacturer" +F 5 "CONSMA003.062" H 13150 1850 60 0001 C CNN "Part Number" +F 6 "CONN FEMALE EDGE MT FOR .062\" BD" H 13150 1850 60 0001 C CNN "Description" 1 13150 1850 -1 0 0 -1 $EndComp @@ -2378,6 +2611,9 @@ U 1 1 4FE0DC31 P 11800 5000 F 0 "U9" H 11800 5100 60 0000 C CNN F 1 "TRF3765" H 11800 4900 60 0000 C CNN +F 4 "Texas Instruments" H 11800 5000 60 0001 C CNN "Manufacturer" +F 5 "TRF3765" H 11800 5000 60 0001 C CNN "Part Number" +F 6 "Integer-N/Fractional-N PLL with Integrated VCO" H 11800 5000 60 0001 C CNN "Description" 1 11800 5000 0 1 1 0 $EndComp @@ -2387,6 +2623,9 @@ U 1 1 4FE0D688 P 8850 7050 F 0 "U11" H 8850 7250 60 0000 C CNN F 1 "PE4140" H 8850 6800 60 0000 C CNN +F 4 "Peregrine" H 8850 7050 60 0001 C CNN "Manufacturer" +F 5 "PE4140" H 8850 7050 60 0001 C CNN "Part Number" +F 6 "Ultra-High Linearity UltraCMOS Broadband Quad MOSFET Array" H 8850 7050 60 0001 C CNN "Description" 1 8850 7050 0 -1 -1 0 $EndComp @@ -2396,6 +2635,9 @@ U 1 1 4FE0D681 P 8950 2850 F 0 "U6" H 8950 3050 60 0000 C CNN F 1 "PE4140" H 8950 2600 60 0000 C CNN +F 4 "Peregrine" H 8950 2850 60 0001 C CNN "Manufacturer" +F 5 "PE4140" H 8950 2850 60 0001 C CNN "Part Number" +F 6 "Ultra-High Linearity UltraCMOS Broadband Quad MOSFET Array" H 8950 2850 60 0001 C CNN "Description" 1 8950 2850 1 0 0 -1 $EndComp @@ -2459,6 +2701,9 @@ U 1 1 4FE0D33C P 5450 1900 F 0 "U3" H 5450 1950 60 0000 C CNN F 1 "RX_HIGHPASS_FILTER" H 5450 1850 60 0000 C CNN +F 4 "TDK" H 5450 1900 60 0001 C CNN "Manufacturer" +F 5 "DEA162400HT-8004B1" H 5450 1900 60 0001 C CNN "Part Number" +F 6 "FILTER HIGHPASS WLAN&BLUETOOTH" H 5450 1900 60 0001 C CNN "Description" 1 5450 1900 1 0 0 -1 $EndComp @@ -2468,6 +2713,9 @@ U 1 1 4FE0D33B P 5350 3600 F 0 "U7" H 5350 3650 60 0000 C CNN F 1 "RX_LOWPASS_FILTER" H 5350 3550 60 0000 C CNN +F 4 "AVX" H 5350 3600 60 0001 C CNN "Manufacturer" +F 5 "LP0603A1880ANTR" H 5350 3600 60 0001 C CNN "Part Number" +F 6 "FILTER LOW PASS 1880MHZ 0603 SMD" H 5350 3600 60 0001 C CNN "Description" 1 5350 3600 1 0 0 -1 $EndComp @@ -2489,6 +2737,9 @@ U 1 1 4FE0D2BE P 4650 8200 F 0 "U13" H 4650 8250 60 0000 C CNN F 1 "TX_LOWPASS_FILTER" H 4650 8150 60 0000 C CNN +F 4 "AVX" H 4650 8200 60 0001 C CNN "Manufacturer" +F 5 "LP0603A1880ANTR" H 4650 8200 60 0001 C CNN "Part Number" +F 6 "FILTER LOW PASS 1880MHZ 0603 SMD" H 4650 8200 60 0001 C CNN "Description" 1 4650 8200 1 0 0 -1 $EndComp @@ -2498,6 +2749,9 @@ U 1 1 4FE0D2B3 P 4650 6650 F 0 "U10" H 4650 6700 60 0000 C CNN F 1 "TX_HIGHPASS_FILTER" H 4650 6600 60 0000 C CNN +F 4 "TDK" H 4650 6650 60 0001 C CNN "Manufacturer" +F 5 "DEA162400HT-8004B1" H 4650 6650 60 0001 C CNN "Part Number" +F 6 "FILTER HIGHPASS WLAN&BLUETOOTH" H 4650 6650 60 0001 C CNN "Description" 1 4650 6650 1 0 0 -1 $EndComp @@ -2507,6 +2761,9 @@ U 1 1 4FE0D25C P 3350 7350 F 0 "U12" H 3350 7550 60 0000 C CNN F 1 "SKY13350" H 3350 7150 60 0000 C CNN +F 4 "Skyworks" H 3350 7350 60 0001 C CNN "Manufacturer" +F 5 "SKY13350-385LF" H 3350 7350 60 0001 C CNN "Part Number" +F 6 "0.01-6.0 GHz GaAs SPDT Switch" H 3350 7350 60 0001 C CNN "Description" 1 3350 7350 0 -1 -1 0 $EndComp @@ -2516,6 +2773,9 @@ U 1 1 4FE0D255 P 4150 2700 F 0 "U4" H 4150 2900 60 0000 C CNN F 1 "SKY13350" H 4150 2500 60 0000 C CNN +F 4 "Skyworks" H 4150 2700 60 0001 C CNN "Manufacturer" +F 5 "SKY13350-385LF" H 4150 2700 60 0001 C CNN "Part Number" +F 6 "0.01-6.0 GHz GaAs SPDT Switch" H 4150 2700 60 0001 C CNN "Description" 1 4150 2700 0 -1 -1 0 $EndComp @@ -2543,6 +2803,9 @@ U 1 1 4FE0D214 P 1250 5150 F 0 "P4" H 1250 5300 60 0000 C CNN F 1 "TX/RX" H 1250 5000 60 0000 C CNN +F 4 "Linx" H 1250 5150 60 0001 C CNN "Manufacturer" +F 5 "CONSMA003.062" H 1250 5150 60 0001 C CNN "Part Number" +F 6 "CONN FEMALE EDGE MT FOR .062\" BD" H 1250 5150 60 0001 C CNN "Description" 1 1250 5150 1 0 0 -1 $EndComp @@ -2552,6 +2815,9 @@ U 1 1 4FE0D20B P 1650 5500 F 0 "D2" H 1650 5600 50 0000 C CNN F 1 "GSG-DIODE-TVS-BI" H 1650 5400 40 0000 C CNN +F 4 "Murata" H 1650 5500 60 0001 C CNN "Manufacturer" +F 5 "LXES1UBBB1-008" H 1650 5500 60 0001 C CNN "Part Number" +F 6 "CERAMIC ESD DEV .5PF 7V SMD" H 1650 5500 60 0001 C CNN "Description" 1 1650 5500 0 -1 -1 0 $EndComp @@ -2579,6 +2845,9 @@ U 1 1 4FE0D1C4 P 2350 5700 F 0 "U8" H 2350 5900 60 0000 C CNN F 1 "SKY13350" H 2350 5500 60 0000 C CNN +F 4 "Skyworks" H 2350 5700 60 0001 C CNN "Manufacturer" +F 5 "SKY13350-385LF" H 2350 5700 60 0001 C CNN "Part Number" +F 6 "0.01-6.0 GHz GaAs SPDT Switch" H 2350 5700 60 0001 C CNN "Description" 1 2350 5700 0 -1 -1 0 $EndComp @@ -2597,6 +2866,9 @@ U 1 1 4FE0D185 P 2550 4100 F 0 "U5" H 2550 4300 60 0000 C CNN F 1 "SKY13350" H 2550 3900 60 0000 C CNN +F 4 "Skyworks" H 2550 4100 60 0001 C CNN "Manufacturer" +F 5 "SKY13350-385LF" H 2550 4100 60 0001 C CNN "Part Number" +F 6 "0.01-6.0 GHz GaAs SPDT Switch" H 2550 4100 60 0001 C CNN "Description" 1 2550 4100 0 1 1 0 $EndComp @@ -2606,6 +2878,9 @@ U 1 1 4FE0C556 P 1650 3800 F 0 "D1" H 1650 3900 50 0000 C CNN F 1 "GSG-DIODE-TVS-BI" H 1650 3700 40 0000 C CNN +F 4 "Murata" H 1650 3800 60 0001 C CNN "Manufacturer" +F 5 "LXES1UBBB1-008" H 1650 3800 60 0001 C CNN "Part Number" +F 6 "CERAMIC ESD DEV .5PF 7V SMD" H 1650 3800 60 0001 C CNN "Description" 1 1650 3800 0 -1 -1 0 $EndComp @@ -2615,6 +2890,9 @@ U 1 1 4FE0C550 P 1250 3450 F 0 "P2" H 1250 3600 60 0000 C CNN F 1 "RX_ONLY" H 1250 3300 60 0000 C CNN +F 4 "Linx" H 1250 3450 60 0001 C CNN "Manufacturer" +F 5 "CONSMA003.062" H 1250 3450 60 0001 C CNN "Part Number" +F 6 "CONN FEMALE EDGE MT FOR .062\" BD" H 1250 3450 60 0001 C CNN "Description" 1 1250 3450 1 0 0 -1 $EndComp From 7cd104dc955e6dc8dba1402f52a5db409f23b06c Mon Sep 17 00:00:00 2001 From: Michael Ossmann Date: Wed, 27 Jun 2012 22:46:06 -0600 Subject: [PATCH 11/16] passive values --- hardware/bubblegum/bubblegum-cache.lib | 2 +- hardware/bubblegum/bubblegum.sch | 2023 +++++++++++------------- 2 files changed, 916 insertions(+), 1109 deletions(-) diff --git a/hardware/bubblegum/bubblegum-cache.lib b/hardware/bubblegum/bubblegum-cache.lib index 3b2a00e9..847fea7a 100644 --- a/hardware/bubblegum/bubblegum-cache.lib +++ b/hardware/bubblegum/bubblegum-cache.lib @@ -1,4 +1,4 @@ -EESchema-LIBRARY Version 2.3 Date: Wed Jun 27 22:18:22 2012 +EESchema-LIBRARY Version 2.3 Date: Wed Jun 27 22:45:57 2012 #encoding utf-8 # # BALUN diff --git a/hardware/bubblegum/bubblegum.sch b/hardware/bubblegum/bubblegum.sch index 40842508..40c95f0a 100644 --- a/hardware/bubblegum/bubblegum.sch +++ b/hardware/bubblegum/bubblegum.sch @@ -1,4 +1,4 @@ -EESchema Schematic File Version 2 date Wed Jun 27 22:18:22 2012 +EESchema Schematic File Version 2 date Wed Jun 27 22:45:57 2012 LIBS:power LIBS:device LIBS:transistors @@ -45,6 +45,844 @@ Comment2 "" Comment3 "" Comment4 "" $EndDescr +Text Notes 1200 9050 0 40 ~ 0 +switch control logic ensures valid switch configurations +Connection ~ 2800 9300 +Wire Wire Line + 2800 9300 2800 9400 +Wire Wire Line + 2800 9400 2700 9400 +Wire Wire Line + 3150 9300 2700 9300 +Wire Wire Line + 9900 2250 9800 2250 +Wire Wire Line + 10600 2850 10600 2750 +Wire Wire Line + 9650 7550 9650 7650 +Wire Wire Line + 3400 3150 3400 4650 +Wire Wire Line + 3400 4650 2650 4650 +Wire Wire Line + 6300 8650 6300 8550 +Connection ~ 6400 6500 +Wire Wire Line + 6650 6500 6400 6500 +Wire Wire Line + 6400 6400 6400 6750 +Wire Wire Line + 6600 3650 6600 3150 +Wire Wire Line + 8200 7600 8750 7600 +Wire Wire Line + 8200 7600 8200 7200 +Wire Wire Line + 8950 7500 8950 8300 +Wire Wire Line + 8950 8300 11950 8300 +Wire Wire Line + 7000 7250 7000 6800 +Wire Wire Line + 6200 6650 6200 6750 +Wire Wire Line + 6200 7650 6200 8050 +Wire Wire Line + 6200 8050 5750 8050 +Wire Wire Line + 6300 6750 6300 6500 +Wire Wire Line + 6300 6500 5750 6500 +Wire Wire Line + 9900 6050 10900 6050 +Wire Wire Line + 6700 2250 6700 2050 +Wire Wire Line + 9500 2750 9500 1850 +Wire Wire Line + 9500 2750 9400 2750 +Wire Wire Line + 6050 1750 6150 1750 +Wire Wire Line + 5950 3450 6050 3450 +Wire Wire Line + 7000 3350 7000 3450 +Wire Wire Line + 7000 3450 6700 3450 +Wire Wire Line + 8200 2850 8500 2850 +Wire Wire Line + 7400 2850 7000 2850 +Wire Wire Line + 6600 2250 6600 1750 +Wire Wire Line + 1400 9700 1500 9700 +Wire Wire Line + 16000 8700 15900 8700 +Connection ~ 16000 8700 +Connection ~ 16000 8900 +Wire Wire Line + 16000 8900 15900 8900 +Wire Wire Line + 15900 9100 16000 9100 +Wire Wire Line + 16000 9100 16000 8600 +Connection ~ 15000 9000 +Wire Wire Line + 15000 9000 15100 9000 +Connection ~ 15000 8800 +Wire Wire Line + 15000 8800 15100 8800 +Connection ~ 5150 9900 +Wire Wire Line + 5150 9900 5050 9900 +Connection ~ 5150 9700 +Wire Wire Line + 5150 9700 5050 9700 +Wire Wire Line + 5050 9500 5150 9500 +Wire Wire Line + 5150 9500 5150 10000 +Wire Wire Line + 4250 9800 3850 9800 +Wire Wire Line + 3850 9600 4250 9600 +Wire Wire Line + 1500 9900 1400 9900 +Wire Wire Line + 1400 9900 1400 10000 +Wire Wire Line + 2700 9600 2900 9600 +Wire Wire Line + 1500 9500 1250 9500 +Wire Wire Line + 1500 9300 1250 9300 +Wire Wire Line + 6400 5350 6500 5350 +Wire Wire Line + 7000 4150 7100 4150 +Wire Wire Line + 1950 6850 1950 6750 +Wire Wire Line + 2050 4300 2050 4400 +Wire Wire Line + 2050 4800 2050 5000 +Wire Wire Line + 2050 5000 2350 5000 +Wire Wire Line + 2350 5000 2350 5250 +Wire Wire Line + 2800 5350 2800 5250 +Wire Wire Line + 2650 2950 2650 3050 +Connection ~ 4150 2050 +Wire Wire Line + 3900 2050 4150 2050 +Wire Wire Line + 4150 1450 4150 1550 +Wire Wire Line + 4050 3600 4050 3150 +Connection ~ 6900 2050 +Wire Wire Line + 6700 2050 7150 2050 +Connection ~ 3350 6700 +Wire Wire Line + 3350 6900 3350 6600 +Wire Wire Line + 3150 6700 3350 6700 +Wire Wire Line + 3250 8150 3250 7800 +Wire Wire Line + 16100 4850 16100 4750 +Wire Wire Line + 15300 5450 15300 5350 +Connection ~ 13400 3100 +Wire Wire Line + 13400 3100 13400 4050 +Wire Wire Line + 13400 4050 15200 4050 +Wire Wire Line + 15200 4050 15200 3100 +Wire Wire Line + 15200 3100 14700 3100 +Connection ~ 13600 3300 +Wire Wire Line + 13600 3300 13600 3850 +Wire Wire Line + 13600 3850 15000 3850 +Wire Wire Line + 15000 3850 15000 3300 +Wire Wire Line + 15000 3300 14700 3300 +Connection ~ 13800 3650 +Wire Wire Line + 13800 3650 14800 3650 +Wire Wire Line + 14800 3650 14800 3500 +Wire Wire Line + 14800 3500 14700 3500 +Wire Wire Line + 11750 4050 11750 3200 +Wire Wire Line + 11750 3200 13900 3200 +Wire Wire Line + 11950 4050 11950 3400 +Wire Wire Line + 11950 3400 13900 3400 +Connection ~ 14100 5850 +Wire Wire Line + 14000 5850 14100 5850 +Connection ~ 14800 5250 +Wire Wire Line + 14700 5250 15000 5250 +Wire Wire Line + 15000 5250 15000 6150 +Wire Wire Line + 15000 6150 12050 6150 +Wire Wire Line + 12050 6150 12050 5950 +Connection ~ 13100 6050 +Wire Wire Line + 13100 6050 13100 5750 +Connection ~ 14100 6050 +Wire Wire Line + 14800 5750 14800 6050 +Wire Wire Line + 12850 6050 12850 5350 +Wire Wire Line + 12850 5350 12750 5350 +Wire Wire Line + 14800 5350 14800 5250 +Wire Wire Line + 14000 5250 14200 5250 +Connection ~ 13100 5250 +Wire Wire Line + 13400 5250 13400 5350 +Wire Wire Line + 12750 4850 15400 4850 +Wire Wire Line + 12150 3950 12150 4050 +Wire Wire Line + 12850 4750 12750 4750 +Wire Wire Line + 11450 6050 11450 5950 +Connection ~ 15400 7250 +Connection ~ 15700 7250 +Connection ~ 14800 7250 +Connection ~ 14200 7250 +Connection ~ 13600 7250 +Connection ~ 13000 7250 +Connection ~ 12400 7250 +Connection ~ 11800 7250 +Connection ~ 15700 6850 +Connection ~ 15100 6850 +Connection ~ 14500 6850 +Connection ~ 13900 6850 +Connection ~ 13300 6850 +Connection ~ 12700 6850 +Connection ~ 12100 6850 +Wire Wire Line + 11700 7350 11700 7250 +Wire Wire Line + 12850 5050 12750 5050 +Wire Wire Line + 11850 6050 11850 5950 +Wire Wire Line + 12050 3950 12050 4050 +Wire Wire Line + 11200 3450 11200 3350 +Connection ~ 10600 3950 +Wire Wire Line + 10600 3850 10600 3950 +Connection ~ 10600 6650 +Wire Wire Line + 10600 6550 10600 6650 +Wire Wire Line + 10300 6750 10300 6550 +Connection ~ 10600 6050 +Wire Wire Line + 10600 6150 10600 6050 +Connection ~ 10150 6050 +Wire Wire Line + 10150 6050 10150 5950 +Connection ~ 10450 5150 +Wire Wire Line + 10450 5450 10450 5150 +Connection ~ 10900 3350 +Wire Wire Line + 10900 3450 10900 3350 +Connection ~ 10150 4950 +Wire Wire Line + 10150 4550 10150 4950 +Wire Wire Line + 10750 5600 10850 5600 +Connection ~ 13550 2250 +Wire Wire Line + 13550 2250 13450 2250 +Wire Wire Line + 13450 2050 13550 2050 +Wire Wire Line + 13550 2050 13550 2450 +Wire Wire Line + 12850 1450 12750 1450 +Connection ~ 13550 9200 +Wire Wire Line + 13450 9200 13550 9200 +Connection ~ 13550 9000 +Wire Wire Line + 13550 9000 13450 9000 +Wire Wire Line + 12750 8700 12850 8700 +Connection ~ 9800 2850 +Wire Wire Line + 9800 2250 9800 4250 +Connection ~ 9650 6350 +Wire Wire Line + 9650 6450 9650 5850 +Wire Wire Line + 10850 4950 9500 4950 +Wire Wire Line + 9500 4950 9500 4650 +Wire Wire Line + 9350 5850 9350 6250 +Wire Wire Line + 9400 6800 9300 6800 +Wire Wire Line + 10850 5050 9350 5050 +Wire Wire Line + 9350 5050 9350 5450 +Wire Wire Line + 8750 6050 9350 6050 +Wire Wire Line + 6700 5650 7100 5650 +Wire Wire Line + 7550 5950 7100 5950 +Wire Wire Line + 7850 5750 7850 5550 +Wire Wire Line + 7850 6250 7850 6150 +Wire Wire Line + 7850 5650 8050 5650 +Connection ~ 7850 5650 +Wire Wire Line + 7100 5950 7100 5350 +Connection ~ 7100 5650 +Connection ~ 7700 4450 +Wire Wire Line + 7700 4150 7700 4750 +Wire Wire Line + 8450 3850 8450 3950 +Wire Wire Line + 8750 4150 8650 4150 +Wire Wire Line + 8650 4150 8650 4450 +Connection ~ 8450 4450 +Wire Wire Line + 8650 4450 8450 4450 +Wire Wire Line + 8450 5050 8450 4950 +Wire Wire Line + 9500 4250 9500 2950 +Wire Wire Line + 9500 2950 9400 2950 +Wire Wire Line + 9400 2850 9800 2850 +Wire Wire Line + 9200 3400 9200 3300 +Wire Wire Line + 3950 6500 4050 6500 +Wire Wire Line + 4750 2050 4850 2050 +Wire Wire Line + 3950 6800 4050 6800 +Wire Wire Line + 4050 2250 4050 2150 +Wire Wire Line + 4050 2150 3400 2150 +Wire Wire Line + 3400 2150 3400 2750 +Wire Wire Line + 2650 4650 2650 4550 +Wire Wire Line + 2450 3650 2450 3550 +Wire Wire Line + 2450 6250 2450 6150 +Wire Wire Line + 2450 5250 2450 5100 +Wire Wire Line + 2150 3450 2550 3450 +Wire Wire Line + 2550 3450 2550 3650 +Wire Wire Line + 4750 1750 4850 1750 +Wire Wire Line + 6150 2050 6050 2050 +Wire Wire Line + 4350 2050 4250 2050 +Wire Wire Line + 4250 2050 4250 2250 +Wire Wire Line + 4650 3750 4750 3750 +Wire Wire Line + 5250 6800 5350 6800 +Wire Wire Line + 8750 6600 8750 6500 +Wire Wire Line + 3550 6800 3450 6800 +Wire Wire Line + 3450 6800 3450 6900 +Connection ~ 850 3850 +Wire Wire Line + 850 3850 950 3850 +Wire Wire Line + 950 3650 850 3650 +Wire Wire Line + 850 3650 850 4050 +Wire Wire Line + 1550 3450 1750 3450 +Connection ~ 850 5450 +Wire Wire Line + 950 5450 850 5450 +Connection ~ 850 5650 +Wire Wire Line + 850 5650 950 5650 +Wire Wire Line + 1650 5850 1650 5750 +Wire Wire Line + 1550 5150 1750 5150 +Wire Wire Line + 4250 3250 4250 3150 +Wire Wire Line + 2150 5150 2250 5150 +Wire Wire Line + 1650 5250 1650 5150 +Connection ~ 1650 5150 +Wire Wire Line + 950 5350 850 5350 +Wire Wire Line + 850 5350 850 5750 +Wire Wire Line + 850 5550 950 5550 +Connection ~ 850 5550 +Wire Wire Line + 1650 4150 1650 4050 +Wire Wire Line + 1650 3550 1650 3450 +Connection ~ 1650 3450 +Wire Wire Line + 850 3750 950 3750 +Connection ~ 850 3750 +Wire Wire Line + 950 3950 850 3950 +Connection ~ 850 3950 +Wire Wire Line + 3450 7900 3450 7800 +Wire Wire Line + 3350 7800 3350 8050 +Wire Wire Line + 3350 8050 3550 8050 +Wire Wire Line + 5250 6500 5350 6500 +Wire Wire Line + 8750 7600 8750 7500 +Wire Wire Line + 7200 7200 7300 7200 +Wire Wire Line + 6050 3750 5950 3750 +Wire Wire Line + 4750 3450 4650 3450 +Wire Wire Line + 4150 3150 4150 3450 +Wire Wire Line + 7300 3250 7400 3250 +Wire Wire Line + 2250 5150 2250 5250 +Wire Wire Line + 2350 6150 2350 6250 +Wire Wire Line + 2450 4700 2450 4550 +Wire Wire Line + 2350 6650 2350 6800 +Wire Wire Line + 2350 6800 3250 6800 +Wire Wire Line + 3250 6800 3250 6900 +Wire Wire Line + 3950 8050 4050 8050 +Wire Wire Line + 4150 3450 4250 3450 +Wire Wire Line + 5350 8350 5250 8350 +Wire Wire Line + 4050 8350 3950 8350 +Wire Wire Line + 9350 4150 9500 4150 +Connection ~ 9500 4150 +Wire Wire Line + 8450 4350 8450 4550 +Wire Wire Line + 7700 4750 8150 4750 +Wire Wire Line + 7300 4450 7700 4450 +Wire Wire Line + 8050 5650 8050 6050 +Wire Wire Line + 8050 6050 8150 6050 +Connection ~ 9350 6050 +Wire Wire Line + 10850 5150 9650 5150 +Wire Wire Line + 9650 5150 9650 5450 +Wire Wire Line + 8850 6600 8850 6250 +Wire Wire Line + 8850 6250 9350 6250 +Wire Wire Line + 8950 6600 8950 6350 +Wire Wire Line + 8950 6350 9650 6350 +Wire Wire Line + 10850 4850 9800 4850 +Wire Wire Line + 9800 4850 9800 4650 +Wire Wire Line + 7850 5050 7850 5150 +Wire Wire Line + 13550 9300 13550 8900 +Wire Wire Line + 13550 8900 13450 8900 +Wire Wire Line + 13550 9100 13450 9100 +Connection ~ 13550 9100 +Wire Wire Line + 12850 8300 12750 8300 +Wire Wire Line + 11950 1450 8400 1450 +Wire Wire Line + 12750 1850 12850 1850 +Wire Wire Line + 13550 2150 13450 2150 +Connection ~ 13550 2150 +Wire Wire Line + 13450 2350 13550 2350 +Connection ~ 13550 2350 +Wire Wire Line + 10450 4550 10450 4850 +Connection ~ 10450 4850 +Wire Wire Line + 10150 3950 10150 4050 +Wire Wire Line + 10450 3950 10450 4050 +Connection ~ 10450 3950 +Wire Wire Line + 10300 3450 10300 3350 +Wire Wire Line + 10300 3350 11200 3350 +Wire Wire Line + 10600 3350 10600 3450 +Connection ~ 10600 3350 +Wire Wire Line + 10150 5450 10150 5050 +Connection ~ 10150 5050 +Wire Wire Line + 9900 6050 9900 5950 +Wire Wire Line + 10450 6050 10450 5950 +Connection ~ 10450 6050 +Wire Wire Line + 10300 6050 10300 6150 +Connection ~ 10300 6050 +Wire Wire Line + 10900 6050 10900 6150 +Wire Wire Line + 10300 6650 10900 6650 +Wire Wire Line + 10900 6650 10900 6550 +Connection ~ 10300 6650 +Wire Wire Line + 10300 3950 10300 3850 +Connection ~ 10300 3950 +Wire Wire Line + 10900 3850 10900 3950 +Wire Wire Line + 10000 3850 10000 3950 +Wire Wire Line + 10000 3950 10900 3950 +Connection ~ 10150 3950 +Wire Wire Line + 11550 3950 11550 4050 +Wire Wire Line + 11750 6050 11750 5950 +Wire Wire Line + 12850 5150 12750 5150 +Wire Wire Line + 11700 6750 11700 6850 +Connection ~ 11800 6850 +Connection ~ 12400 6850 +Connection ~ 13000 6850 +Connection ~ 13600 6850 +Connection ~ 14200 6850 +Connection ~ 14800 6850 +Connection ~ 15400 6850 +Wire Wire Line + 11700 6850 16300 6850 +Connection ~ 16000 6850 +Connection ~ 12100 7250 +Connection ~ 12700 7250 +Connection ~ 13300 7250 +Connection ~ 13900 7250 +Connection ~ 14500 7250 +Connection ~ 15100 7250 +Wire Wire Line + 11700 7250 16300 7250 +Connection ~ 16000 7250 +Wire Wire Line + 11950 6050 11950 5950 +Wire Wire Line + 12750 4950 12850 4950 +Wire Wire Line + 11450 3950 11450 4050 +Wire Wire Line + 13100 5350 13100 5250 +Connection ~ 13400 5250 +Wire Wire Line + 14100 5350 14100 5250 +Connection ~ 14100 5250 +Wire Wire Line + 12750 5250 13500 5250 +Wire Wire Line + 14100 5750 14100 6050 +Wire Wire Line + 13400 5750 13400 5850 +Wire Wire Line + 12150 5950 12150 6050 +Wire Wire Line + 12150 6050 14800 6050 +Connection ~ 12850 6050 +Wire Wire Line + 13400 5850 13500 5850 +Wire Wire Line + 12750 4650 13800 4650 +Wire Wire Line + 13800 4650 13800 3500 +Wire Wire Line + 13800 3500 13900 3500 +Wire Wire Line + 11850 4050 11850 3300 +Wire Wire Line + 11850 3300 13900 3300 +Wire Wire Line + 11650 4050 11650 3100 +Wire Wire Line + 11650 3100 13900 3100 +Wire Wire Line + 14700 3400 14900 3400 +Wire Wire Line + 14900 3400 14900 3750 +Wire Wire Line + 14900 3750 13700 3750 +Wire Wire Line + 13700 3750 13700 3400 +Connection ~ 13700 3400 +Wire Wire Line + 14700 3200 15100 3200 +Wire Wire Line + 15100 3200 15100 3950 +Wire Wire Line + 15100 3950 13500 3950 +Wire Wire Line + 13500 3950 13500 3200 +Connection ~ 13500 3200 +Wire Wire Line + 15300 4950 15300 4850 +Connection ~ 15300 4850 +Wire Wire Line + 15800 4850 15900 4850 +Wire Wire Line + 15900 4850 15900 4750 +Wire Wire Line + 3250 8650 3250 8550 +Wire Wire Line + 3000 7900 3250 7900 +Connection ~ 3250 7900 +Wire Wire Line + 3350 6100 3350 6200 +Wire Wire Line + 4050 4100 4050 4000 +Wire Wire Line + 3800 3500 4050 3500 +Connection ~ 4050 3500 +Wire Wire Line + 4150 2250 4150 1950 +Wire Wire Line + 2850 3550 2650 3550 +Wire Wire Line + 2650 3650 2650 3450 +Connection ~ 2650 3550 +Wire Wire Line + 2550 4550 2550 4750 +Wire Wire Line + 2800 4850 2800 4750 +Wire Wire Line + 2550 4750 3000 4750 +Connection ~ 2800 4750 +Wire Wire Line + 1850 4900 2050 4900 +Connection ~ 2050 4900 +Wire Wire Line + 2250 6150 2250 6250 +Wire Wire Line + 1950 6350 1950 6250 +Wire Wire Line + 2250 6250 1750 6250 +Connection ~ 1950 6250 +Wire Wire Line + 7600 4150 8150 4150 +Connection ~ 7700 4150 +Wire Wire Line + 7000 5350 7550 5350 +Connection ~ 7100 5350 +Wire Wire Line + 1250 9400 1500 9400 +Wire Wire Line + 1250 9600 1500 9600 +Wire Wire Line + 2700 9700 2900 9700 +Wire Wire Line + 2100 10350 2100 10250 +Wire Wire Line + 4250 9500 3850 9500 +Wire Wire Line + 3850 9700 4250 9700 +Wire Wire Line + 3850 9900 4250 9900 +Wire Wire Line + 5150 9600 5050 9600 +Connection ~ 5150 9600 +Wire Wire Line + 5150 9800 5050 9800 +Connection ~ 5150 9800 +Wire Wire Line + 15000 9200 15000 8700 +Wire Wire Line + 15000 8700 15100 8700 +Wire Wire Line + 15000 8900 15100 8900 +Connection ~ 15000 8900 +Wire Wire Line + 15000 9100 15100 9100 +Connection ~ 15000 9100 +Wire Wire Line + 16000 9000 15900 9000 +Connection ~ 16000 9000 +Wire Wire Line + 16000 8800 15900 8800 +Connection ~ 16000 8800 +Wire Wire Line + 2700 9800 2800 9800 +Wire Wire Line + 6500 3150 6500 3450 +Wire Wire Line + 8200 3250 8400 3250 +Wire Wire Line + 8400 3250 8400 2950 +Wire Wire Line + 8400 2950 8500 2950 +Wire Wire Line + 6700 3450 6700 3150 +Wire Wire Line + 7000 2850 7000 2950 +Wire Wire Line + 6500 3450 6450 3450 +Wire Wire Line + 6600 1750 6550 1750 +Wire Wire Line + 8400 1450 8400 2750 +Wire Wire Line + 8400 2750 8500 2750 +Wire Wire Line + 6900 1450 6900 1550 +Wire Wire Line + 8200 7200 8100 7200 +Wire Wire Line + 5250 8050 5350 8050 +Wire Wire Line + 6500 2150 6500 2250 +Wire Wire Line + 6400 7650 6400 7750 +Wire Wire Line + 6400 7750 7000 7750 +Wire Wire Line + 7000 6800 7300 6800 +Wire Wire Line + 7000 7750 7000 7650 +Wire Wire Line + 8850 7500 8850 8700 +Wire Wire Line + 8850 8700 11950 8700 +Wire Wire Line + 9500 1850 11950 1850 +Wire Wire Line + 8100 6800 8400 6800 +Wire Wire Line + 8400 6800 8400 6500 +Wire Wire Line + 8400 6500 8750 6500 +Wire Wire Line + 6600 4150 6600 4050 +Wire Wire Line + 6600 3550 6850 3550 +Connection ~ 6600 3550 +Wire Wire Line + 6400 5900 6400 6000 +Wire Wire Line + 6300 7650 6300 8150 +Wire Wire Line + 6300 8050 6550 8050 +Connection ~ 6300 8050 +Wire Wire Line + 6900 1950 6900 2050 +Wire Wire Line + 9650 7050 9650 7150 +Wire Wire Line + 9950 7350 10050 7350 +Wire Wire Line + 10050 7350 10050 7250 +Wire Wire Line + 10600 2350 10600 2250 +Wire Wire Line + 10600 2250 10500 2250 +Wire Wire Line + 11000 2450 11000 2550 +Wire Wire Line + 11000 2550 10900 2550 +Wire Wire Line + 11850 1650 11950 1650 +Wire Wire Line + 11850 8500 11950 8500 +Wire Wire Line + 3150 9900 3150 9800 +Wire Wire Line + 3150 9200 3150 9400 +Connection ~ 3150 9300 +$Comp +L GND #PWR? +U 1 1 4FEBDCB9 +P 3150 9900 +F 0 "#PWR?" H 3150 9900 30 0001 C CNN +F 1 "GND" H 3150 9830 30 0001 C CNN + 1 3150 9900 + 1 0 0 -1 +$EndComp +$Comp +L C C? +U 1 1 4FEBDCA5 +P 3150 9600 +F 0 "C?" H 3200 9700 50 0000 L CNN +F 1 "100nF" H 3200 9500 50 0000 L CNN + 1 3150 9600 + 1 0 0 -1 +$EndComp $Comp L GND #PWR? U 1 1 4FE2B858 @@ -54,8 +892,6 @@ F 1 "GND" H 11850 8430 30 0001 C CNN 1 11850 8500 0 1 1 0 $EndComp -Wire Wire Line - 11850 8500 11950 8500 $Comp L GND #PWR9 U 1 1 4FE0F3BF @@ -65,1035 +901,6 @@ F 1 "GND" H 11850 1580 30 0001 C CNN 1 11850 1650 0 1 1 0 $EndComp -Wire Wire Line - 11850 1650 11950 1650 -Wire Wire Line - 10900 2550 11000 2550 -Wire Wire Line - 11000 2550 11000 2450 -Wire Wire Line - 10500 2250 10600 2250 -Wire Wire Line - 10600 2250 10600 2350 -Wire Wire Line - 10050 7250 10050 7350 -Wire Wire Line - 10050 7350 9950 7350 -Wire Wire Line - 9650 7050 9650 7150 -Wire Wire Line - 6900 1950 6900 2050 -Connection ~ 6300 8050 -Wire Wire Line - 6300 8050 6550 8050 -Wire Wire Line - 6300 8150 6300 8050 -Wire Wire Line - 6300 8050 6300 7650 -Wire Wire Line - 6400 5900 6400 6000 -Connection ~ 6600 3550 -Wire Wire Line - 6600 3550 6850 3550 -Wire Wire Line - 6600 4150 6600 4050 -Wire Wire Line - 8400 6500 8750 6500 -Wire Wire Line - 8400 6500 8400 6800 -Wire Wire Line - 8400 6800 8100 6800 -Wire Wire Line - 11950 1850 9500 1850 -Wire Wire Line - 11950 8700 8850 8700 -Wire Wire Line - 8850 8700 8850 7500 -Wire Wire Line - 7000 7650 7000 7750 -Wire Wire Line - 7300 6800 7000 6800 -Wire Wire Line - 7000 7750 6400 7750 -Wire Wire Line - 6400 7750 6400 7650 -Wire Wire Line - 6500 2150 6500 2250 -Wire Wire Line - 5250 8050 5350 8050 -Wire Wire Line - 8100 7200 8200 7200 -Wire Wire Line - 6900 1450 6900 1550 -Wire Wire Line - 8500 2750 8400 2750 -Wire Wire Line - 8400 2750 8400 1450 -Wire Wire Line - 6550 1750 6600 1750 -Wire Wire Line - 6450 3450 6500 3450 -Wire Wire Line - 7000 2950 7000 2850 -Wire Wire Line - 6700 3150 6700 3450 -Wire Wire Line - 8500 2950 8400 2950 -Wire Wire Line - 8400 2950 8400 3250 -Wire Wire Line - 8400 3250 8200 3250 -Wire Wire Line - 6500 3450 6500 3150 -Wire Wire Line - 2700 9800 2800 9800 -Connection ~ 2800 9300 -Wire Wire Line - 2800 9200 2800 9300 -Wire Wire Line - 2800 9300 2800 9400 -Wire Wire Line - 2800 9400 2700 9400 -Connection ~ 16000 8800 -Wire Wire Line - 16000 8800 15900 8800 -Connection ~ 16000 9000 -Wire Wire Line - 16000 9000 15900 9000 -Connection ~ 15000 9100 -Wire Wire Line - 15000 9100 15100 9100 -Connection ~ 15000 8900 -Wire Wire Line - 15000 8900 15100 8900 -Wire Wire Line - 15100 8700 15000 8700 -Wire Wire Line - 15000 8700 15000 8800 -Wire Wire Line - 15000 8800 15000 8900 -Wire Wire Line - 15000 8900 15000 9000 -Wire Wire Line - 15000 9000 15000 9100 -Wire Wire Line - 15000 9100 15000 9200 -Connection ~ 4800 9800 -Wire Wire Line - 4800 9800 4700 9800 -Connection ~ 4800 9600 -Wire Wire Line - 4800 9600 4700 9600 -Wire Wire Line - 3500 9900 3900 9900 -Wire Wire Line - 3500 9700 3900 9700 -Wire Wire Line - 3900 9500 3500 9500 -Wire Wire Line - 2100 10350 2100 10250 -Wire Wire Line - 2700 9700 2900 9700 -Wire Wire Line - 1250 9600 1500 9600 -Wire Wire Line - 1250 9400 1500 9400 -Connection ~ 7100 5350 -Wire Wire Line - 7550 5350 7100 5350 -Wire Wire Line - 7100 5350 7000 5350 -Connection ~ 7700 4150 -Wire Wire Line - 8150 4150 7700 4150 -Wire Wire Line - 7700 4150 7600 4150 -Connection ~ 1950 6250 -Wire Wire Line - 1750 6250 1950 6250 -Wire Wire Line - 1950 6250 2250 6250 -Wire Wire Line - 1950 6350 1950 6250 -Wire Wire Line - 2250 6250 2250 6150 -Connection ~ 2050 4900 -Wire Wire Line - 1850 4900 2050 4900 -Connection ~ 2800 4750 -Wire Wire Line - 3000 4750 2800 4750 -Wire Wire Line - 2800 4750 2550 4750 -Wire Wire Line - 2800 4850 2800 4750 -Wire Wire Line - 2550 4750 2550 4550 -Connection ~ 2650 3550 -Wire Wire Line - 2650 3450 2650 3550 -Wire Wire Line - 2650 3550 2650 3650 -Wire Wire Line - 2850 3550 2650 3550 -Wire Wire Line - 4150 1950 4150 2050 -Wire Wire Line - 4150 2050 4150 2250 -Connection ~ 4050 3500 -Wire Wire Line - 3800 3500 4050 3500 -Wire Wire Line - 4050 4100 4050 4000 -Wire Wire Line - 3350 6100 3350 6200 -Connection ~ 3250 7900 -Wire Wire Line - 3000 7900 3250 7900 -Wire Wire Line - 3250 8650 3250 8550 -Wire Wire Line - 15900 4750 15900 4850 -Wire Wire Line - 15900 4850 15800 4850 -Connection ~ 15300 4850 -Wire Wire Line - 15300 4950 15300 4850 -Connection ~ 13500 3200 -Wire Wire Line - 13500 3200 13500 3950 -Wire Wire Line - 13500 3950 15100 3950 -Wire Wire Line - 15100 3950 15100 3200 -Wire Wire Line - 15100 3200 14700 3200 -Connection ~ 13700 3400 -Wire Wire Line - 13700 3400 13700 3750 -Wire Wire Line - 13700 3750 14900 3750 -Wire Wire Line - 14900 3750 14900 3400 -Wire Wire Line - 14900 3400 14700 3400 -Wire Wire Line - 13900 3100 13400 3100 -Wire Wire Line - 13400 3100 11650 3100 -Wire Wire Line - 11650 3100 11650 4050 -Wire Wire Line - 13900 3300 13600 3300 -Wire Wire Line - 13600 3300 11850 3300 -Wire Wire Line - 11850 3300 11850 4050 -Wire Wire Line - 13900 3500 13800 3500 -Wire Wire Line - 13800 3500 13800 3650 -Wire Wire Line - 13800 3650 13800 4650 -Wire Wire Line - 13800 4650 12750 4650 -Wire Wire Line - 13500 5850 13400 5850 -Connection ~ 12850 6050 -Wire Wire Line - 12150 6050 12850 6050 -Wire Wire Line - 12850 6050 13100 6050 -Wire Wire Line - 13100 6050 14100 6050 -Wire Wire Line - 14100 6050 14800 6050 -Wire Wire Line - 12150 6050 12150 5950 -Wire Wire Line - 13400 5850 13400 5750 -Wire Wire Line - 14100 5750 14100 5850 -Wire Wire Line - 14100 5850 14100 6050 -Wire Wire Line - 13500 5250 13400 5250 -Wire Wire Line - 13400 5250 13100 5250 -Wire Wire Line - 13100 5250 12750 5250 -Connection ~ 14100 5250 -Wire Wire Line - 14100 5350 14100 5250 -Connection ~ 13400 5250 -Wire Wire Line - 13100 5250 13100 5350 -Wire Wire Line - 11450 3950 11450 4050 -Wire Wire Line - 12750 4950 12850 4950 -Wire Wire Line - 11950 6050 11950 5950 -Connection ~ 16000 7250 -Wire Wire Line - 16300 7250 16000 7250 -Wire Wire Line - 16000 7250 15700 7250 -Wire Wire Line - 15700 7250 15400 7250 -Wire Wire Line - 15400 7250 15100 7250 -Wire Wire Line - 15100 7250 14800 7250 -Wire Wire Line - 14800 7250 14500 7250 -Wire Wire Line - 14500 7250 14200 7250 -Wire Wire Line - 14200 7250 13900 7250 -Wire Wire Line - 13900 7250 13600 7250 -Wire Wire Line - 13600 7250 13300 7250 -Wire Wire Line - 13300 7250 13000 7250 -Wire Wire Line - 13000 7250 12700 7250 -Wire Wire Line - 12700 7250 12400 7250 -Wire Wire Line - 12400 7250 12100 7250 -Wire Wire Line - 12100 7250 11800 7250 -Wire Wire Line - 11800 7250 11700 7250 -Connection ~ 15100 7250 -Connection ~ 14500 7250 -Connection ~ 13900 7250 -Connection ~ 13300 7250 -Connection ~ 12700 7250 -Connection ~ 12100 7250 -Connection ~ 16000 6850 -Wire Wire Line - 16300 6850 16000 6850 -Wire Wire Line - 16000 6850 15700 6850 -Wire Wire Line - 15700 6850 15400 6850 -Wire Wire Line - 15400 6850 15100 6850 -Wire Wire Line - 15100 6850 14800 6850 -Wire Wire Line - 14800 6850 14500 6850 -Wire Wire Line - 14500 6850 14200 6850 -Wire Wire Line - 14200 6850 13900 6850 -Wire Wire Line - 13900 6850 13600 6850 -Wire Wire Line - 13600 6850 13300 6850 -Wire Wire Line - 13300 6850 13000 6850 -Wire Wire Line - 13000 6850 12700 6850 -Wire Wire Line - 12700 6850 12400 6850 -Wire Wire Line - 12400 6850 12100 6850 -Wire Wire Line - 12100 6850 11800 6850 -Wire Wire Line - 11800 6850 11700 6850 -Connection ~ 15400 6850 -Connection ~ 14800 6850 -Connection ~ 14200 6850 -Connection ~ 13600 6850 -Connection ~ 13000 6850 -Connection ~ 12400 6850 -Connection ~ 11800 6850 -Wire Wire Line - 11700 6850 11700 6750 -Wire Wire Line - 12850 5150 12750 5150 -Wire Wire Line - 11750 6050 11750 5950 -Wire Wire Line - 11550 3950 11550 4050 -Connection ~ 10150 3950 -Wire Wire Line - 10000 3950 10150 3950 -Wire Wire Line - 10150 3950 10300 3950 -Wire Wire Line - 10300 3950 10450 3950 -Wire Wire Line - 10450 3950 10600 3950 -Wire Wire Line - 10600 3950 10900 3950 -Wire Wire Line - 10000 3950 10000 3850 -Wire Wire Line - 10900 3950 10900 3850 -Connection ~ 10300 3950 -Wire Wire Line - 10300 3950 10300 3850 -Connection ~ 10300 6650 -Wire Wire Line - 10900 6550 10900 6650 -Wire Wire Line - 10900 6650 10600 6650 -Wire Wire Line - 10600 6650 10300 6650 -Wire Wire Line - 10900 6150 10900 6050 -Connection ~ 10300 6050 -Wire Wire Line - 10300 6050 10300 6150 -Connection ~ 10450 6050 -Wire Wire Line - 10450 6050 10450 5950 -Wire Wire Line - 9900 5950 9900 6050 -Connection ~ 10150 5050 -Wire Wire Line - 10150 5450 10150 5050 -Connection ~ 10600 3350 -Wire Wire Line - 10600 3350 10600 3450 -Wire Wire Line - 10300 3350 10600 3350 -Wire Wire Line - 10600 3350 10900 3350 -Wire Wire Line - 10900 3350 11200 3350 -Wire Wire Line - 10300 3350 10300 3450 -Connection ~ 10450 3950 -Wire Wire Line - 10450 3950 10450 4050 -Wire Wire Line - 10150 3950 10150 4050 -Connection ~ 10450 4850 -Wire Wire Line - 10450 4550 10450 4850 -Connection ~ 13550 2350 -Wire Wire Line - 13450 2350 13550 2350 -Connection ~ 13550 2150 -Wire Wire Line - 13550 2150 13450 2150 -Wire Wire Line - 12750 1850 12850 1850 -Wire Wire Line - 8400 1450 11950 1450 -Wire Wire Line - 12850 8300 12750 8300 -Connection ~ 13550 9100 -Wire Wire Line - 13550 9100 13450 9100 -Wire Wire Line - 13450 8900 13550 8900 -Wire Wire Line - 13550 8900 13550 9000 -Wire Wire Line - 13550 9000 13550 9100 -Wire Wire Line - 13550 9100 13550 9200 -Wire Wire Line - 13550 9200 13550 9300 -Wire Wire Line - 7850 5050 7850 5150 -Wire Wire Line - 9800 4650 9800 4850 -Wire Wire Line - 9800 4850 10450 4850 -Wire Wire Line - 10450 4850 10850 4850 -Wire Wire Line - 9650 6350 8950 6350 -Wire Wire Line - 8950 6350 8950 6600 -Wire Wire Line - 8850 6250 9350 6250 -Wire Wire Line - 8850 6250 8850 6600 -Wire Wire Line - 9650 5450 9650 5150 -Wire Wire Line - 9650 5150 10450 5150 -Wire Wire Line - 10450 5150 10850 5150 -Connection ~ 9350 6050 -Wire Wire Line - 8150 6050 8050 6050 -Wire Wire Line - 8050 6050 8050 5650 -Wire Wire Line - 7300 4450 7700 4450 -Wire Wire Line - 8150 4750 7700 4750 -Wire Wire Line - 8450 4550 8450 4450 -Wire Wire Line - 8450 4450 8450 4350 -Connection ~ 9500 4150 -Wire Wire Line - 9350 4150 9500 4150 -Wire Wire Line - 4050 8350 3950 8350 -Wire Wire Line - 5350 8350 5250 8350 -Wire Wire Line - 4250 3450 4150 3450 -Wire Wire Line - 3950 8050 4050 8050 -Wire Wire Line - 3250 6900 3250 6800 -Wire Wire Line - 3250 6800 2350 6800 -Wire Wire Line - 2350 6800 2350 6650 -Wire Wire Line - 2450 4700 2450 4550 -Wire Wire Line - 2350 6150 2350 6250 -Wire Wire Line - 2250 5250 2250 5150 -Wire Wire Line - 7300 3250 7400 3250 -Wire Wire Line - 4150 3450 4150 3150 -Wire Wire Line - 4750 3450 4650 3450 -Wire Wire Line - 6050 3750 5950 3750 -Wire Wire Line - 7200 7200 7300 7200 -Wire Wire Line - 8750 7500 8750 7600 -Wire Wire Line - 5250 6500 5350 6500 -Wire Wire Line - 3550 8050 3350 8050 -Wire Wire Line - 3350 8050 3350 7800 -Wire Wire Line - 3450 7900 3450 7800 -Connection ~ 850 3950 -Wire Wire Line - 950 3950 850 3950 -Connection ~ 850 3750 -Wire Wire Line - 850 3750 950 3750 -Connection ~ 1650 3450 -Wire Wire Line - 1650 3550 1650 3450 -Wire Wire Line - 1650 4150 1650 4050 -Connection ~ 850 5550 -Wire Wire Line - 850 5550 950 5550 -Wire Wire Line - 850 5750 850 5650 -Wire Wire Line - 850 5650 850 5550 -Wire Wire Line - 850 5550 850 5450 -Wire Wire Line - 850 5450 850 5350 -Wire Wire Line - 850 5350 950 5350 -Connection ~ 1650 5150 -Wire Wire Line - 1650 5250 1650 5150 -Wire Wire Line - 2250 5150 2150 5150 -Wire Wire Line - 4250 3250 4250 3150 -Wire Wire Line - 1750 5150 1650 5150 -Wire Wire Line - 1650 5150 1550 5150 -Wire Wire Line - 1650 5850 1650 5750 -Wire Wire Line - 850 5650 950 5650 -Connection ~ 850 5650 -Wire Wire Line - 950 5450 850 5450 -Connection ~ 850 5450 -Wire Wire Line - 1750 3450 1650 3450 -Wire Wire Line - 1650 3450 1550 3450 -Wire Wire Line - 850 4050 850 3950 -Wire Wire Line - 850 3950 850 3850 -Wire Wire Line - 850 3850 850 3750 -Wire Wire Line - 850 3750 850 3650 -Wire Wire Line - 850 3650 950 3650 -Wire Wire Line - 850 3850 950 3850 -Connection ~ 850 3850 -Wire Wire Line - 3450 6900 3450 6800 -Wire Wire Line - 3450 6800 3550 6800 -Wire Wire Line - 8750 6500 8750 6600 -Wire Wire Line - 5250 6800 5350 6800 -Wire Wire Line - 4650 3750 4750 3750 -Wire Wire Line - 4250 2250 4250 2050 -Wire Wire Line - 4250 2050 4350 2050 -Wire Wire Line - 6150 2050 6050 2050 -Wire Wire Line - 4750 1750 4850 1750 -Wire Wire Line - 2550 3650 2550 3450 -Wire Wire Line - 2550 3450 2150 3450 -Wire Wire Line - 2450 5250 2450 5100 -Wire Wire Line - 2450 6250 2450 6150 -Wire Wire Line - 2450 3650 2450 3550 -Wire Wire Line - 2650 4550 2650 4650 -Wire Wire Line - 3400 2750 3400 2150 -Wire Wire Line - 3400 2150 4050 2150 -Wire Wire Line - 4050 2150 4050 2250 -Wire Wire Line - 3950 6800 4050 6800 -Wire Wire Line - 4750 2050 4850 2050 -Wire Wire Line - 3950 6500 4050 6500 -Wire Wire Line - 9200 3400 9200 3300 -Wire Wire Line - 9400 2850 9800 2850 -Wire Wire Line - 9400 2950 9500 2950 -Wire Wire Line - 9500 2950 9500 4150 -Wire Wire Line - 9500 4150 9500 4250 -Wire Wire Line - 8450 5050 8450 4950 -Wire Wire Line - 8450 4450 8650 4450 -Connection ~ 8450 4450 -Wire Wire Line - 8650 4450 8650 4150 -Wire Wire Line - 8650 4150 8750 4150 -Wire Wire Line - 8450 3850 8450 3950 -Wire Wire Line - 7700 4750 7700 4450 -Wire Wire Line - 7700 4450 7700 4150 -Connection ~ 7700 4450 -Connection ~ 7100 5650 -Wire Wire Line - 7100 5350 7100 5650 -Wire Wire Line - 7100 5650 7100 5950 -Connection ~ 7850 5650 -Wire Wire Line - 8050 5650 7850 5650 -Wire Wire Line - 7850 6250 7850 6150 -Wire Wire Line - 7850 5550 7850 5650 -Wire Wire Line - 7850 5650 7850 5750 -Wire Wire Line - 7100 5950 7550 5950 -Wire Wire Line - 6700 5650 7100 5650 -Wire Wire Line - 8750 6050 9350 6050 -Wire Wire Line - 9350 5450 9350 5050 -Wire Wire Line - 9350 5050 10150 5050 -Wire Wire Line - 10150 5050 10850 5050 -Wire Wire Line - 9400 6800 9300 6800 -Wire Wire Line - 9350 6250 9350 6050 -Wire Wire Line - 9350 6050 9350 5850 -Wire Wire Line - 9500 4650 9500 4950 -Wire Wire Line - 9500 4950 10150 4950 -Wire Wire Line - 10150 4950 10850 4950 -Wire Wire Line - 9650 5850 9650 6350 -Wire Wire Line - 9650 6350 9650 6450 -Connection ~ 9650 6350 -Wire Wire Line - 9800 4250 9800 2850 -Wire Wire Line - 9800 2850 9800 2250 -Connection ~ 9800 2850 -Wire Wire Line - 12750 8700 12850 8700 -Wire Wire Line - 13550 9000 13450 9000 -Connection ~ 13550 9000 -Wire Wire Line - 13450 9200 13550 9200 -Connection ~ 13550 9200 -Wire Wire Line - 12850 1450 12750 1450 -Wire Wire Line - 13550 2450 13550 2350 -Wire Wire Line - 13550 2350 13550 2250 -Wire Wire Line - 13550 2250 13550 2150 -Wire Wire Line - 13550 2150 13550 2050 -Wire Wire Line - 13550 2050 13450 2050 -Wire Wire Line - 13550 2250 13450 2250 -Connection ~ 13550 2250 -Wire Wire Line - 10750 5600 10850 5600 -Wire Wire Line - 10150 4550 10150 4950 -Connection ~ 10150 4950 -Wire Wire Line - 10900 3450 10900 3350 -Connection ~ 10900 3350 -Wire Wire Line - 10450 5450 10450 5150 -Connection ~ 10450 5150 -Wire Wire Line - 10150 6050 10150 5950 -Connection ~ 10150 6050 -Wire Wire Line - 10600 6150 10600 6050 -Connection ~ 10600 6050 -Wire Wire Line - 10300 6550 10300 6650 -Wire Wire Line - 10300 6650 10300 6750 -Wire Wire Line - 10600 6550 10600 6650 -Connection ~ 10600 6650 -Wire Wire Line - 10600 3850 10600 3950 -Connection ~ 10600 3950 -Wire Wire Line - 11200 3350 11200 3450 -Wire Wire Line - 12050 3950 12050 4050 -Wire Wire Line - 11850 6050 11850 5950 -Wire Wire Line - 12850 5050 12750 5050 -Wire Wire Line - 11700 7250 11700 7350 -Connection ~ 12100 6850 -Connection ~ 12700 6850 -Connection ~ 13300 6850 -Connection ~ 13900 6850 -Connection ~ 14500 6850 -Connection ~ 15100 6850 -Connection ~ 15700 6850 -Connection ~ 11800 7250 -Connection ~ 12400 7250 -Connection ~ 13000 7250 -Connection ~ 13600 7250 -Connection ~ 14200 7250 -Connection ~ 14800 7250 -Connection ~ 15700 7250 -Connection ~ 15400 7250 -Wire Wire Line - 11450 6050 11450 5950 -Wire Wire Line - 12850 4750 12750 4750 -Wire Wire Line - 12150 3950 12150 4050 -Wire Wire Line - 15400 4850 15300 4850 -Wire Wire Line - 15300 4850 12750 4850 -Wire Wire Line - 13400 5350 13400 5250 -Connection ~ 13100 5250 -Wire Wire Line - 14200 5250 14100 5250 -Wire Wire Line - 14100 5250 14000 5250 -Wire Wire Line - 14800 5350 14800 5250 -Wire Wire Line - 12750 5350 12850 5350 -Wire Wire Line - 12850 5350 12850 6050 -Wire Wire Line - 14800 6050 14800 5750 -Connection ~ 14100 6050 -Wire Wire Line - 13100 6050 13100 5750 -Connection ~ 13100 6050 -Wire Wire Line - 12050 5950 12050 6150 -Wire Wire Line - 12050 6150 15000 6150 -Wire Wire Line - 15000 6150 15000 5250 -Wire Wire Line - 15000 5250 14800 5250 -Wire Wire Line - 14800 5250 14700 5250 -Connection ~ 14800 5250 -Wire Wire Line - 14000 5850 14100 5850 -Connection ~ 14100 5850 -Wire Wire Line - 13900 3400 13700 3400 -Wire Wire Line - 13700 3400 11950 3400 -Wire Wire Line - 11950 3400 11950 4050 -Wire Wire Line - 13900 3200 13500 3200 -Wire Wire Line - 13500 3200 11750 3200 -Wire Wire Line - 11750 3200 11750 4050 -Wire Wire Line - 14700 3500 14800 3500 -Wire Wire Line - 14800 3500 14800 3650 -Wire Wire Line - 14800 3650 13800 3650 -Connection ~ 13800 3650 -Wire Wire Line - 14700 3300 15000 3300 -Wire Wire Line - 15000 3300 15000 3850 -Wire Wire Line - 15000 3850 13600 3850 -Wire Wire Line - 13600 3850 13600 3300 -Connection ~ 13600 3300 -Wire Wire Line - 14700 3100 15200 3100 -Wire Wire Line - 15200 3100 15200 4050 -Wire Wire Line - 15200 4050 13400 4050 -Wire Wire Line - 13400 4050 13400 3100 -Connection ~ 13400 3100 -Wire Wire Line - 15300 5450 15300 5350 -Wire Wire Line - 16100 4850 16100 4750 -Wire Wire Line - 3250 7800 3250 7900 -Wire Wire Line - 3250 7900 3250 8150 -Wire Wire Line - 3150 6700 3350 6700 -Wire Wire Line - 3350 6600 3350 6700 -Wire Wire Line - 3350 6700 3350 6900 -Connection ~ 3350 6700 -Wire Wire Line - 7150 2050 6900 2050 -Wire Wire Line - 6900 2050 6700 2050 -Connection ~ 6900 2050 -Wire Wire Line - 4050 3150 4050 3500 -Wire Wire Line - 4050 3500 4050 3600 -Wire Wire Line - 4150 1450 4150 1550 -Wire Wire Line - 3900 2050 4150 2050 -Connection ~ 4150 2050 -Wire Wire Line - 2650 2950 2650 3050 -Wire Wire Line - 2800 5350 2800 5250 -Wire Wire Line - 2350 5250 2350 5000 -Wire Wire Line - 2350 5000 2050 5000 -Wire Wire Line - 2050 5000 2050 4900 -Wire Wire Line - 2050 4900 2050 4800 -Wire Wire Line - 2050 4300 2050 4400 -Wire Wire Line - 1950 6850 1950 6750 -Wire Wire Line - 7000 4150 7100 4150 -Wire Wire Line - 6400 5350 6500 5350 -Wire Wire Line - 1500 9300 1250 9300 -Wire Wire Line - 1500 9500 1250 9500 -Wire Wire Line - 2700 9600 2900 9600 -Wire Wire Line - 2700 9300 2800 9300 -Wire Wire Line - 1400 10000 1400 9900 -Wire Wire Line - 1400 9900 1500 9900 -Wire Wire Line - 3500 9600 3900 9600 -Wire Wire Line - 3900 9800 3500 9800 -Wire Wire Line - 4800 10000 4800 9900 -Wire Wire Line - 4800 9900 4800 9800 -Wire Wire Line - 4800 9800 4800 9700 -Wire Wire Line - 4800 9700 4800 9600 -Wire Wire Line - 4800 9600 4800 9500 -Wire Wire Line - 4800 9500 4700 9500 -Wire Wire Line - 4800 9700 4700 9700 -Connection ~ 4800 9700 -Wire Wire Line - 4800 9900 4700 9900 -Connection ~ 4800 9900 -Wire Wire Line - 15000 8800 15100 8800 -Connection ~ 15000 8800 -Wire Wire Line - 15000 9000 15100 9000 -Connection ~ 15000 9000 -Wire Wire Line - 16000 8600 16000 8700 -Wire Wire Line - 16000 8700 16000 8800 -Wire Wire Line - 16000 8800 16000 8900 -Wire Wire Line - 16000 8900 16000 9000 -Wire Wire Line - 16000 9000 16000 9100 -Wire Wire Line - 16000 9100 15900 9100 -Wire Wire Line - 16000 8900 15900 8900 -Connection ~ 16000 8900 -Connection ~ 16000 8700 -Wire Wire Line - 16000 8700 15900 8700 -Wire Wire Line - 1400 9700 1500 9700 -Wire Wire Line - 6600 1750 6600 2250 -Wire Wire Line - 7000 2850 7400 2850 -Wire Wire Line - 8200 2850 8500 2850 -Wire Wire Line - 6700 3450 7000 3450 -Wire Wire Line - 7000 3450 7000 3350 -Wire Wire Line - 5950 3450 6050 3450 -Wire Wire Line - 6050 1750 6150 1750 -Wire Wire Line - 9400 2750 9500 2750 -Wire Wire Line - 9500 2750 9500 1850 -Wire Wire Line - 6700 2050 6700 2250 -Wire Wire Line - 9900 6050 10150 6050 -Wire Wire Line - 10150 6050 10300 6050 -Wire Wire Line - 10300 6050 10450 6050 -Wire Wire Line - 10450 6050 10600 6050 -Wire Wire Line - 10600 6050 10900 6050 -Wire Wire Line - 5750 6500 6300 6500 -Wire Wire Line - 6300 6500 6300 6750 -Wire Wire Line - 5750 8050 6200 8050 -Wire Wire Line - 6200 8050 6200 7650 -Wire Wire Line - 6200 6650 6200 6750 -Wire Wire Line - 7000 6800 7000 7250 -Wire Wire Line - 11950 8300 8950 8300 -Wire Wire Line - 8950 8300 8950 7500 -Wire Wire Line - 8200 7200 8200 7600 -Wire Wire Line - 8200 7600 8750 7600 -Wire Wire Line - 6600 3150 6600 3550 -Wire Wire Line - 6600 3550 6600 3650 -Wire Wire Line - 6400 6750 6400 6500 -Wire Wire Line - 6400 6500 6400 6400 -Wire Wire Line - 6650 6500 6400 6500 -Connection ~ 6400 6500 -Wire Wire Line - 6300 8650 6300 8550 -Wire Wire Line - 2650 4650 3400 4650 -Wire Wire Line - 3400 4650 3400 3150 -Wire Wire Line - 9650 7550 9650 7650 -Wire Wire Line - 10600 2850 10600 2750 -Wire Wire Line - 9800 2250 9900 2250 $Comp L VCC #PWR? U 1 1 4FEBD54F @@ -1176,7 +983,7 @@ L C C? U 1 1 4FE2B9A7 P 6300 8350 F 0 "C?" H 6350 8450 50 0000 L CNN -F 1 "C" H 6350 8250 50 0000 L CNN +F 1 "33pF" H 6350 8250 50 0000 L CNN 1 6300 8350 -1 0 0 1 $EndComp @@ -1196,7 +1003,7 @@ L C C? U 1 1 4FE2B993 P 6400 6200 F 0 "C?" H 6450 6300 50 0000 L CNN -F 1 "C" H 6450 6100 50 0000 L CNN +F 1 "33pF" H 6450 6100 50 0000 L CNN 1 6400 6200 -1 0 0 1 $EndComp @@ -1216,7 +1023,7 @@ L C C? U 1 1 4FE2B97C P 6600 3850 F 0 "C?" H 6650 3950 50 0000 L CNN -F 1 "C" H 6650 3750 50 0000 L CNN +F 1 "33pF" H 6650 3750 50 0000 L CNN 1 6600 3850 -1 0 0 1 $EndComp @@ -1225,7 +1032,7 @@ L C C? U 1 1 4FE2B83E P 7000 7450 F 0 "C?" H 7050 7550 50 0000 L CNN -F 1 "C" H 7050 7350 50 0000 L CNN +F 1 "10nF" H 7050 7350 50 0000 L CNN 1 7000 7450 -1 0 0 1 $EndComp @@ -1252,7 +1059,7 @@ L C C? U 1 1 4FE2B807 P 5550 8050 F 0 "C?" H 5600 8150 50 0000 L CNN -F 1 "C" H 5600 7950 50 0000 L CNN +F 1 "10nF" H 5600 7950 50 0000 L CNN 1 5550 8050 0 -1 -1 0 $EndComp @@ -1261,7 +1068,7 @@ L C C? U 1 1 4FE2B803 P 5550 6500 F 0 "C?" H 5600 6600 50 0000 L CNN -F 1 "C" H 5600 6400 50 0000 L CNN +F 1 "100pF" H 5600 6400 50 0000 L CNN 1 5550 6500 0 -1 -1 0 $EndComp @@ -1293,7 +1100,7 @@ L C C? U 1 1 4FE2B678 P 6900 1750 F 0 "C?" H 6950 1850 50 0000 L CNN -F 1 "C" H 6950 1650 50 0000 L CNN +F 1 "33pF" H 6950 1650 50 0000 L CNN 1 6900 1750 -1 0 0 1 $EndComp @@ -1302,7 +1109,7 @@ L C C? U 1 1 4FE2B60A P 6350 1750 F 0 "C?" H 6400 1850 50 0000 L CNN -F 1 "C" H 6400 1650 50 0000 L CNN +F 1 "100pF" H 6400 1650 50 0000 L CNN 1 6350 1750 0 -1 -1 0 $EndComp @@ -1311,7 +1118,7 @@ L C C? U 1 1 4FE2B5F3 P 6250 3450 F 0 "C?" H 6300 3550 50 0000 L CNN -F 1 "C" H 6300 3350 50 0000 L CNN +F 1 "10nF" H 6300 3350 50 0000 L CNN 1 6250 3450 0 -1 -1 0 $EndComp @@ -1320,7 +1127,7 @@ L C C? U 1 1 4FE2B5DE P 7000 3150 F 0 "C?" H 7050 3250 50 0000 L CNN -F 1 "C" H 7050 3050 50 0000 L CNN +F 1 "10nF" H 7050 3050 50 0000 L CNN 1 7000 3150 -1 0 0 1 $EndComp @@ -1386,29 +1193,29 @@ $EndComp $Comp L GND #PWR85 U 1 1 4FE10495 -P 4800 10000 -F 0 "#PWR85" H 4800 10000 30 0001 C CNN -F 1 "GND" H 4800 9930 30 0001 C CNN - 1 4800 10000 +P 5150 10000 +F 0 "#PWR85" H 5150 10000 30 0001 C CNN +F 1 "GND" H 5150 9930 30 0001 C CNN + 1 5150 10000 1 0 0 -1 $EndComp -Text Label 3500 9900 0 40 ~ 0 +Text Label 3850 9900 0 40 ~ 0 SWD1 -Text Label 3500 9800 0 40 ~ 0 +Text Label 3850 9800 0 40 ~ 0 SWTX1 -Text Label 3500 9700 0 40 ~ 0 +Text Label 3850 9700 0 40 ~ 0 SWRX1 -Text Label 3500 9600 0 40 ~ 0 +Text Label 3850 9600 0 40 ~ 0 !TX_BYPASS -Text Label 3500 9500 0 40 ~ 0 +Text Label 3850 9500 0 40 ~ 0 !RX_BYPASS $Comp L CONN_5X2 P8 U 1 1 4FE10458 -P 4300 9700 -F 0 "P8" H 4300 10000 60 0000 C CNN -F 1 "SWITCH_CTRL" V 4300 9700 50 0000 C CNN - 1 4300 9700 +P 4650 9700 +F 0 "P8" H 4650 10000 60 0000 C CNN +F 1 "SWITCH_CTRL" V 4650 9700 50 0000 C CNN + 1 4650 9700 1 0 0 -1 $EndComp NoConn ~ 1500 9800 @@ -1435,10 +1242,10 @@ $EndComp $Comp L VCC #PWR81 U 1 1 4FE10413 -P 2800 9200 -F 0 "#PWR81" H 2800 9300 30 0001 C CNN -F 1 "VCC" H 2800 9300 30 0000 C CNN - 1 2800 9200 +P 3150 9200 +F 0 "#PWR81" H 3150 9300 30 0001 C CNN +F 1 "VCC" H 3150 9300 30 0000 C CNN + 1 3150 9200 1 0 0 -1 $EndComp Text Label 2900 9700 2 40 ~ 0 @@ -1489,7 +1296,7 @@ L R R8 U 1 1 4FE1013B P 6750 5350 F 0 "R8" V 6830 5350 50 0000 C CNN -F 1 "R" V 6750 5350 50 0000 C CNN +F 1 "10k" V 6750 5350 50 0000 C CNN 1 6750 5350 0 1 1 0 $EndComp @@ -1507,7 +1314,7 @@ L R R1 U 1 1 4FE1012B P 7350 4150 F 0 "R1" V 7430 4150 50 0000 C CNN -F 1 "R" V 7350 4150 50 0000 C CNN +F 1 "10k" V 7350 4150 50 0000 C CNN 1 7350 4150 0 1 1 0 $EndComp @@ -1527,7 +1334,7 @@ L C C30 U 1 1 4FE100E6 P 1950 6550 F 0 "C30" H 2000 6650 50 0000 L CNN -F 1 "C" H 2000 6450 50 0000 L CNN +F 1 "33pF" H 2000 6450 50 0000 L CNN 1 1950 6550 1 0 0 -1 $EndComp @@ -1547,7 +1354,7 @@ L C C14 U 1 1 4FE100CB P 2050 4600 F 0 "C14" H 2100 4700 50 0000 L CNN -F 1 "C" H 2100 4500 50 0000 L CNN +F 1 "33pF" H 2100 4500 50 0000 L CNN 1 2050 4600 1 0 0 -1 $EndComp @@ -1567,7 +1374,7 @@ L C C21 U 1 1 4FE100A9 P 2800 5050 F 0 "C21" H 2850 5150 50 0000 L CNN -F 1 "C" H 2850 4950 50 0000 L CNN +F 1 "33pF" H 2850 4950 50 0000 L CNN 1 2800 5050 1 0 0 -1 $EndComp @@ -1587,7 +1394,7 @@ L C C8 U 1 1 4FE1007B P 2650 3250 F 0 "C8" H 2700 3350 50 0000 L CNN -F 1 "C" H 2700 3150 50 0000 L CNN +F 1 "33pF" H 2700 3150 50 0000 L CNN 1 2650 3250 1 0 0 -1 $EndComp @@ -1607,7 +1414,7 @@ L C C5 U 1 1 4FE10054 P 4150 1750 F 0 "C5" H 4200 1850 50 0000 L CNN -F 1 "C" H 4200 1650 50 0000 L CNN +F 1 "33pF" H 4200 1650 50 0000 L CNN 1 4150 1750 1 0 0 -1 $EndComp @@ -1627,7 +1434,7 @@ L C C20 U 1 1 4FE1003C P 4050 3800 F 0 "C20" H 4100 3900 50 0000 L CNN -F 1 "C" H 4100 3700 50 0000 L CNN +F 1 "33pF" H 4100 3700 50 0000 L CNN 1 4050 3800 1 0 0 -1 $EndComp @@ -1649,7 +1456,7 @@ L C C42 U 1 1 4FE0FF74 P 3350 6400 F 0 "C42" H 3400 6500 50 0000 L CNN -F 1 "C" H 3400 6300 50 0000 L CNN +F 1 "33pF" H 3400 6300 50 0000 L CNN 1 3350 6400 1 0 0 -1 $EndComp @@ -1669,7 +1476,7 @@ L C C65 U 1 1 4FE0FF46 P 3250 8350 F 0 "C65" H 3300 8450 50 0000 L CNN -F 1 "C" H 3300 8250 50 0000 L CNN +F 1 "33pF" H 3300 8250 50 0000 L CNN 1 3250 8350 1 0 0 -1 $EndComp @@ -1869,7 +1676,7 @@ L C C52 U 1 1 4FE0F72E P 14200 7050 F 0 "C52" H 14250 7150 50 0000 L CNN -F 1 "C" H 14250 6950 50 0000 L CNN +F 1 "1uF" H 14250 6950 50 0000 L CNN 1 14200 7050 1 0 0 -1 $EndComp @@ -1878,7 +1685,7 @@ L C C53 U 1 1 4FE0F72D P 14500 7050 F 0 "C53" H 14550 7150 50 0000 L CNN -F 1 "C" H 14550 6950 50 0000 L CNN +F 1 "4.7pF" H 14550 6950 50 0000 L CNN 1 14500 7050 1 0 0 -1 $EndComp @@ -1887,7 +1694,7 @@ L C C54 U 1 1 4FE0F72C P 14800 7050 F 0 "C54" H 14850 7150 50 0000 L CNN -F 1 "C" H 14850 6950 50 0000 L CNN +F 1 "10nF" H 14850 6950 50 0000 L CNN 1 14800 7050 1 0 0 -1 $EndComp @@ -1896,7 +1703,7 @@ L C C55 U 1 1 4FE0F72B P 15100 7050 F 0 "C55" H 15150 7150 50 0000 L CNN -F 1 "C" H 15150 6950 50 0000 L CNN +F 1 "1uF" H 15150 6950 50 0000 L CNN 1 15100 7050 1 0 0 -1 $EndComp @@ -1905,7 +1712,7 @@ L C C56 U 1 1 4FE0F72A P 15400 7050 F 0 "C56" H 15450 7150 50 0000 L CNN -F 1 "C" H 15450 6950 50 0000 L CNN +F 1 "4.7pF" H 15450 6950 50 0000 L CNN 1 15400 7050 1 0 0 -1 $EndComp @@ -1914,7 +1721,7 @@ L C C57 U 1 1 4FE0F729 P 15700 7050 F 0 "C57" H 15750 7150 50 0000 L CNN -F 1 "C" H 15750 6950 50 0000 L CNN +F 1 "1uF" H 15750 6950 50 0000 L CNN 1 15700 7050 1 0 0 -1 $EndComp @@ -1923,7 +1730,7 @@ L C C58 U 1 1 4FE0F728 P 16000 7050 F 0 "C58" H 16050 7150 50 0000 L CNN -F 1 "C" H 16050 6950 50 0000 L CNN +F 1 "4.7pF" H 16050 6950 50 0000 L CNN 1 16000 7050 1 0 0 -1 $EndComp @@ -1932,7 +1739,7 @@ L C C59 U 1 1 4FE0F727 P 16300 7050 F 0 "C59" H 16350 7150 50 0000 L CNN -F 1 "C" H 16350 6950 50 0000 L CNN +F 1 "1uF" H 16350 6950 50 0000 L CNN 1 16300 7050 1 0 0 -1 $EndComp @@ -1941,7 +1748,7 @@ L C C51 U 1 1 4FE0F71A P 13900 7050 F 0 "C51" H 13950 7150 50 0000 L CNN -F 1 "C" H 13950 6950 50 0000 L CNN +F 1 "10nF" H 13950 6950 50 0000 L CNN 1 13900 7050 1 0 0 -1 $EndComp @@ -1950,7 +1757,7 @@ L C C50 U 1 1 4FE0F719 P 13600 7050 F 0 "C50" H 13650 7150 50 0000 L CNN -F 1 "C" H 13650 6950 50 0000 L CNN +F 1 "4.7pF" H 13650 6950 50 0000 L CNN 1 13600 7050 1 0 0 -1 $EndComp @@ -1959,7 +1766,7 @@ L C C49 U 1 1 4FE0F718 P 13300 7050 F 0 "C49" H 13350 7150 50 0000 L CNN -F 1 "C" H 13350 6950 50 0000 L CNN +F 1 "1uF" H 13350 6950 50 0000 L CNN 1 13300 7050 1 0 0 -1 $EndComp @@ -1968,7 +1775,7 @@ L C C48 U 1 1 4FE0F716 P 13000 7050 F 0 "C48" H 13050 7150 50 0000 L CNN -F 1 "C" H 13050 6950 50 0000 L CNN +F 1 "10nF" H 13050 6950 50 0000 L CNN 1 13000 7050 1 0 0 -1 $EndComp @@ -1977,7 +1784,7 @@ L C C47 U 1 1 4FE0F6F3 P 12700 7050 F 0 "C47" H 12750 7150 50 0000 L CNN -F 1 "C" H 12750 6950 50 0000 L CNN +F 1 "4.7pF" H 12750 6950 50 0000 L CNN 1 12700 7050 1 0 0 -1 $EndComp @@ -1986,7 +1793,7 @@ L C C46 U 1 1 4FE0F6F0 P 12400 7050 F 0 "C46" H 12450 7150 50 0000 L CNN -F 1 "C" H 12450 6950 50 0000 L CNN +F 1 "1uF" H 12450 6950 50 0000 L CNN 1 12400 7050 1 0 0 -1 $EndComp @@ -1995,7 +1802,7 @@ L C C45 U 1 1 4FE0F6E6 P 12100 7050 F 0 "C45" H 12150 7150 50 0000 L CNN -F 1 "C" H 12150 6950 50 0000 L CNN +F 1 "10nF" H 12150 6950 50 0000 L CNN 1 12100 7050 1 0 0 -1 $EndComp @@ -2004,7 +1811,7 @@ L C C44 U 1 1 4FE0F6DC P 11800 7050 F 0 "C44" H 11850 7150 50 0000 L CNN -F 1 "C" H 11850 6950 50 0000 L CNN +F 1 "27pF" H 11850 6950 50 0000 L CNN 1 11800 7050 1 0 0 -1 $EndComp @@ -2076,7 +1883,7 @@ L C C39 U 1 1 4FE0F5F9 P 10300 6350 F 0 "C39" H 10350 6450 50 0000 L CNN -F 1 "C" H 10350 6250 50 0000 L CNN +F 1 "27pF" H 10350 6250 50 0000 L CNN 1 10300 6350 1 0 0 -1 $EndComp @@ -2085,7 +1892,7 @@ L C C40 U 1 1 4FE0F5F7 P 10600 6350 F 0 "C40" H 10650 6450 50 0000 L CNN -F 1 "C" H 10650 6250 50 0000 L CNN +F 1 "10nF" H 10650 6250 50 0000 L CNN 1 10600 6350 1 0 0 -1 $EndComp @@ -2094,7 +1901,7 @@ L C C41 U 1 1 4FE0F5E4 P 10900 6350 F 0 "C41" H 10950 6450 50 0000 L CNN -F 1 "C" H 10950 6250 50 0000 L CNN +F 1 "1uF" H 10950 6250 50 0000 L CNN 1 10900 6350 1 0 0 -1 $EndComp @@ -2112,7 +1919,7 @@ L R R10 U 1 1 4FE0F5BB P 10450 5700 F 0 "R10" V 10530 5700 50 0000 C CNN -F 1 "R" V 10450 5700 50 0000 C CNN +F 1 "100" V 10450 5700 50 0000 C CNN 1 10450 5700 1 0 0 -1 $EndComp @@ -2121,7 +1928,7 @@ L R R9 U 1 1 4FE0F5B1 P 10150 5700 F 0 "R9" V 10230 5700 50 0000 C CNN -F 1 "R" V 10150 5700 50 0000 C CNN +F 1 "100" V 10150 5700 50 0000 C CNN 1 10150 5700 1 0 0 -1 $EndComp @@ -2139,7 +1946,7 @@ L C C18 U 1 1 4FE0F54D P 10900 3650 F 0 "C18" H 10950 3750 50 0000 L CNN -F 1 "C" H 10950 3550 50 0000 L CNN +F 1 "1uF" H 10950 3550 50 0000 L CNN 1 10900 3650 1 0 0 -1 $EndComp @@ -2148,7 +1955,7 @@ L C C17 U 1 1 4FE0F54B P 10600 3650 F 0 "C17" H 10650 3750 50 0000 L CNN -F 1 "C" H 10650 3550 50 0000 L CNN +F 1 "10nF" H 10650 3550 50 0000 L CNN 1 10600 3650 1 0 0 -1 $EndComp @@ -2157,7 +1964,7 @@ L C C16 U 1 1 4FE0F549 P 10300 3650 F 0 "C16" H 10350 3750 50 0000 L CNN -F 1 "C" H 10350 3550 50 0000 L CNN +F 1 "27pF" H 10350 3550 50 0000 L CNN 1 10300 3650 1 0 0 -1 $EndComp @@ -2175,7 +1982,7 @@ L R R3 U 1 1 4FE0F502 P 10450 4300 F 0 "R3" V 10530 4300 50 0000 C CNN -F 1 "R" V 10450 4300 50 0000 C CNN +F 1 "100" V 10450 4300 50 0000 C CNN 1 10450 4300 1 0 0 -1 $EndComp @@ -2184,7 +1991,7 @@ L R R2 U 1 1 4FE0F4EE P 10150 4300 F 0 "R2" V 10230 4300 50 0000 C CNN -F 1 "R" V 10150 4300 50 0000 C CNN +F 1 "100" V 10150 4300 50 0000 C CNN 1 10150 4300 1 0 0 -1 $EndComp @@ -2274,7 +2081,7 @@ L C C36 U 1 1 4FE0EEEA P 9650 5650 F 0 "C36" H 9700 5750 50 0000 L CNN -F 1 "C" H 9700 5550 50 0000 L CNN +F 1 "220pF" H 9700 5550 50 0000 L CNN 1 9650 5650 1 0 0 -1 $EndComp @@ -2283,7 +2090,7 @@ L C C35 U 1 1 4FE0EEE4 P 9350 5650 F 0 "C35" H 9400 5750 50 0000 L CNN -F 1 "C" H 9400 5550 50 0000 L CNN +F 1 "220pF" H 9400 5550 50 0000 L CNN 1 9350 5650 1 0 0 -1 $EndComp @@ -2397,7 +2204,7 @@ L C C26 U 1 1 4FE0EDB7 P 9800 4450 F 0 "C26" H 9850 4550 50 0000 L CNN -F 1 "C" H 9850 4350 50 0000 L CNN +F 1 "220pF" H 9850 4350 50 0000 L CNN 1 9800 4450 1 0 0 -1 $EndComp @@ -2406,7 +2213,7 @@ L C C25 U 1 1 4FE0EDAC P 9500 4450 F 0 "C25" H 9550 4550 50 0000 L CNN -F 1 "C" H 9550 4350 50 0000 L CNN +F 1 "220pF" H 9550 4350 50 0000 L CNN 1 9500 4450 1 0 0 -1 $EndComp @@ -2451,7 +2258,7 @@ L C C15 U 1 1 4FE0E97C P 4450 3450 F 0 "C15" H 4500 3550 50 0000 L CNN -F 1 "C" H 4500 3350 50 0000 L CNN +F 1 "10nF" H 4500 3350 50 0000 L CNN 1 4450 3450 0 1 1 0 $EndComp @@ -2460,7 +2267,7 @@ L C C6 U 1 1 4FE0E978 P 4550 2050 F 0 "C6" H 4600 2150 50 0000 L CNN -F 1 "C" H 4600 1950 50 0000 L CNN +F 1 "100pF" H 4600 1950 50 0000 L CNN 1 4550 2050 0 1 1 0 $EndComp @@ -2469,7 +2276,7 @@ L C C63 U 1 1 4FE0E941 P 3750 8050 F 0 "C63" H 3800 8150 50 0000 L CNN -F 1 "C" H 3800 7950 50 0000 L CNN +F 1 "10nF" H 3800 7950 50 0000 L CNN 1 3750 8050 0 -1 -1 0 $EndComp @@ -2478,7 +2285,7 @@ L C C43 U 1 1 4FE0E939 P 3750 6800 F 0 "C43" H 3800 6900 50 0000 L CNN -F 1 "C" H 3800 6700 50 0000 L CNN +F 1 "100pF" H 3800 6700 50 0000 L CNN 1 3750 6800 0 -1 -1 0 $EndComp @@ -2784,7 +2591,7 @@ L C C12 U 1 1 4FE0D23F P 3400 2950 F 0 "C12" H 3450 3050 50 0000 L CNN -F 1 "C" H 3450 2850 50 0000 L CNN +F 1 "10nF" H 3450 2850 50 0000 L CNN 1 3400 2950 -1 0 0 1 $EndComp @@ -2793,7 +2600,7 @@ L C C29 U 1 1 4FE0D238 P 2350 6450 F 0 "C29" H 2400 6550 50 0000 L CNN -F 1 "C" H 2400 6350 50 0000 L CNN +F 1 "10nF" H 2400 6350 50 0000 L CNN 1 2350 6450 -1 0 0 1 $EndComp @@ -2826,7 +2633,7 @@ L C C22 U 1 1 4FE0D206 P 1950 5150 F 0 "C22" H 2000 5250 50 0000 L CNN -F 1 "C" H 2000 5050 50 0000 L CNN +F 1 "10nF" H 2000 5050 50 0000 L CNN 1 1950 5150 0 1 1 0 $EndComp @@ -2835,7 +2642,7 @@ L C C19 U 1 1 4FE0D1D3 P 2450 4900 F 0 "C19" H 2500 5000 50 0000 L CNN -F 1 "C" H 2500 4800 50 0000 L CNN +F 1 "10nF" H 2500 4800 50 0000 L CNN 1 2450 4900 1 0 0 -1 $EndComp @@ -2856,7 +2663,7 @@ L C C9 U 1 1 4FE0D1A1 P 1950 3450 F 0 "C9" H 2000 3550 50 0000 L CNN -F 1 "C" H 2000 3350 50 0000 L CNN +F 1 "10nF" H 2000 3350 50 0000 L CNN 1 1950 3450 0 1 1 0 $EndComp From ac76517a1ca0745678a2c3a75347b41e0ea417ad Mon Sep 17 00:00:00 2001 From: Michael Ossmann Date: Sat, 30 Jun 2012 12:23:21 -0600 Subject: [PATCH 12/16] loop filter values for PFD at 1.6 MHz --- hardware/bubblegum/bubblegum-cache.lib | 2 +- hardware/bubblegum/bubblegum.sch | 1662 ++++++++++++------------ 2 files changed, 838 insertions(+), 826 deletions(-) diff --git a/hardware/bubblegum/bubblegum-cache.lib b/hardware/bubblegum/bubblegum-cache.lib index 847fea7a..858dbc98 100644 --- a/hardware/bubblegum/bubblegum-cache.lib +++ b/hardware/bubblegum/bubblegum-cache.lib @@ -1,4 +1,4 @@ -EESchema-LIBRARY Version 2.3 Date: Wed Jun 27 22:45:57 2012 +EESchema-LIBRARY Version 2.3 Date: Sat Jun 30 12:21:44 2012 #encoding utf-8 # # BALUN diff --git a/hardware/bubblegum/bubblegum.sch b/hardware/bubblegum/bubblegum.sch index 40c95f0a..d4d7e720 100644 --- a/hardware/bubblegum/bubblegum.sch +++ b/hardware/bubblegum/bubblegum.sch @@ -1,4 +1,4 @@ -EESchema Schematic File Version 2 date Wed Jun 27 22:45:57 2012 +EESchema Schematic File Version 2 date Sat Jun 30 12:21:44 2012 LIBS:power LIBS:device LIBS:transistors @@ -37,7 +37,7 @@ $Descr User 17000 11000 encoding utf-8 Sheet 1 1 Title "" -Date "28 jun 2012" +Date "30 jun 2012" Rev "" Comp "" Comment1 "" @@ -45,826 +45,838 @@ Comment2 "" Comment3 "" Comment4 "" $EndDescr -Text Notes 1200 9050 0 40 ~ 0 -switch control logic ensures valid switch configurations -Connection ~ 2800 9300 +Connection ~ 13600 6050 Wire Wire Line - 2800 9300 2800 9400 + 13600 6050 13600 6300 +Connection ~ 3150 9300 Wire Wire Line - 2800 9400 2700 9400 -Wire Wire Line - 3150 9300 2700 9300 -Wire Wire Line - 9900 2250 9800 2250 -Wire Wire Line - 10600 2850 10600 2750 -Wire Wire Line - 9650 7550 9650 7650 -Wire Wire Line - 3400 3150 3400 4650 -Wire Wire Line - 3400 4650 2650 4650 -Wire Wire Line - 6300 8650 6300 8550 -Connection ~ 6400 6500 -Wire Wire Line - 6650 6500 6400 6500 -Wire Wire Line - 6400 6400 6400 6750 -Wire Wire Line - 6600 3650 6600 3150 -Wire Wire Line - 8200 7600 8750 7600 -Wire Wire Line - 8200 7600 8200 7200 -Wire Wire Line - 8950 7500 8950 8300 -Wire Wire Line - 8950 8300 11950 8300 -Wire Wire Line - 7000 7250 7000 6800 -Wire Wire Line - 6200 6650 6200 6750 -Wire Wire Line - 6200 7650 6200 8050 -Wire Wire Line - 6200 8050 5750 8050 -Wire Wire Line - 6300 6750 6300 6500 -Wire Wire Line - 6300 6500 5750 6500 -Wire Wire Line - 9900 6050 10900 6050 -Wire Wire Line - 6700 2250 6700 2050 -Wire Wire Line - 9500 2750 9500 1850 -Wire Wire Line - 9500 2750 9400 2750 -Wire Wire Line - 6050 1750 6150 1750 -Wire Wire Line - 5950 3450 6050 3450 -Wire Wire Line - 7000 3350 7000 3450 -Wire Wire Line - 7000 3450 6700 3450 -Wire Wire Line - 8200 2850 8500 2850 -Wire Wire Line - 7400 2850 7000 2850 -Wire Wire Line - 6600 2250 6600 1750 -Wire Wire Line - 1400 9700 1500 9700 -Wire Wire Line - 16000 8700 15900 8700 -Connection ~ 16000 8700 -Connection ~ 16000 8900 -Wire Wire Line - 16000 8900 15900 8900 -Wire Wire Line - 15900 9100 16000 9100 -Wire Wire Line - 16000 9100 16000 8600 -Connection ~ 15000 9000 -Wire Wire Line - 15000 9000 15100 9000 -Connection ~ 15000 8800 -Wire Wire Line - 15000 8800 15100 8800 -Connection ~ 5150 9900 -Wire Wire Line - 5150 9900 5050 9900 -Connection ~ 5150 9700 -Wire Wire Line - 5150 9700 5050 9700 -Wire Wire Line - 5050 9500 5150 9500 -Wire Wire Line - 5150 9500 5150 10000 -Wire Wire Line - 4250 9800 3850 9800 -Wire Wire Line - 3850 9600 4250 9600 -Wire Wire Line - 1500 9900 1400 9900 -Wire Wire Line - 1400 9900 1400 10000 -Wire Wire Line - 2700 9600 2900 9600 -Wire Wire Line - 1500 9500 1250 9500 -Wire Wire Line - 1500 9300 1250 9300 -Wire Wire Line - 6400 5350 6500 5350 -Wire Wire Line - 7000 4150 7100 4150 -Wire Wire Line - 1950 6850 1950 6750 -Wire Wire Line - 2050 4300 2050 4400 -Wire Wire Line - 2050 4800 2050 5000 -Wire Wire Line - 2050 5000 2350 5000 -Wire Wire Line - 2350 5000 2350 5250 -Wire Wire Line - 2800 5350 2800 5250 -Wire Wire Line - 2650 2950 2650 3050 -Connection ~ 4150 2050 -Wire Wire Line - 3900 2050 4150 2050 -Wire Wire Line - 4150 1450 4150 1550 -Wire Wire Line - 4050 3600 4050 3150 -Connection ~ 6900 2050 -Wire Wire Line - 6700 2050 7150 2050 -Connection ~ 3350 6700 -Wire Wire Line - 3350 6900 3350 6600 -Wire Wire Line - 3150 6700 3350 6700 -Wire Wire Line - 3250 8150 3250 7800 -Wire Wire Line - 16100 4850 16100 4750 -Wire Wire Line - 15300 5450 15300 5350 -Connection ~ 13400 3100 -Wire Wire Line - 13400 3100 13400 4050 -Wire Wire Line - 13400 4050 15200 4050 -Wire Wire Line - 15200 4050 15200 3100 -Wire Wire Line - 15200 3100 14700 3100 -Connection ~ 13600 3300 -Wire Wire Line - 13600 3300 13600 3850 -Wire Wire Line - 13600 3850 15000 3850 -Wire Wire Line - 15000 3850 15000 3300 -Wire Wire Line - 15000 3300 14700 3300 -Connection ~ 13800 3650 -Wire Wire Line - 13800 3650 14800 3650 -Wire Wire Line - 14800 3650 14800 3500 -Wire Wire Line - 14800 3500 14700 3500 -Wire Wire Line - 11750 4050 11750 3200 -Wire Wire Line - 11750 3200 13900 3200 -Wire Wire Line - 11950 4050 11950 3400 -Wire Wire Line - 11950 3400 13900 3400 -Connection ~ 14100 5850 -Wire Wire Line - 14000 5850 14100 5850 -Connection ~ 14800 5250 -Wire Wire Line - 14700 5250 15000 5250 -Wire Wire Line - 15000 5250 15000 6150 -Wire Wire Line - 15000 6150 12050 6150 -Wire Wire Line - 12050 6150 12050 5950 -Connection ~ 13100 6050 -Wire Wire Line - 13100 6050 13100 5750 -Connection ~ 14100 6050 -Wire Wire Line - 14800 5750 14800 6050 -Wire Wire Line - 12850 6050 12850 5350 -Wire Wire Line - 12850 5350 12750 5350 -Wire Wire Line - 14800 5350 14800 5250 -Wire Wire Line - 14000 5250 14200 5250 -Connection ~ 13100 5250 -Wire Wire Line - 13400 5250 13400 5350 -Wire Wire Line - 12750 4850 15400 4850 -Wire Wire Line - 12150 3950 12150 4050 -Wire Wire Line - 12850 4750 12750 4750 -Wire Wire Line - 11450 6050 11450 5950 -Connection ~ 15400 7250 -Connection ~ 15700 7250 -Connection ~ 14800 7250 -Connection ~ 14200 7250 -Connection ~ 13600 7250 -Connection ~ 13000 7250 -Connection ~ 12400 7250 -Connection ~ 11800 7250 -Connection ~ 15700 6850 -Connection ~ 15100 6850 -Connection ~ 14500 6850 -Connection ~ 13900 6850 -Connection ~ 13300 6850 -Connection ~ 12700 6850 -Connection ~ 12100 6850 -Wire Wire Line - 11700 7350 11700 7250 -Wire Wire Line - 12850 5050 12750 5050 -Wire Wire Line - 11850 6050 11850 5950 -Wire Wire Line - 12050 3950 12050 4050 -Wire Wire Line - 11200 3450 11200 3350 -Connection ~ 10600 3950 -Wire Wire Line - 10600 3850 10600 3950 -Connection ~ 10600 6650 -Wire Wire Line - 10600 6550 10600 6650 -Wire Wire Line - 10300 6750 10300 6550 -Connection ~ 10600 6050 -Wire Wire Line - 10600 6150 10600 6050 -Connection ~ 10150 6050 -Wire Wire Line - 10150 6050 10150 5950 -Connection ~ 10450 5150 -Wire Wire Line - 10450 5450 10450 5150 -Connection ~ 10900 3350 -Wire Wire Line - 10900 3450 10900 3350 -Connection ~ 10150 4950 -Wire Wire Line - 10150 4550 10150 4950 -Wire Wire Line - 10750 5600 10850 5600 -Connection ~ 13550 2250 -Wire Wire Line - 13550 2250 13450 2250 -Wire Wire Line - 13450 2050 13550 2050 -Wire Wire Line - 13550 2050 13550 2450 -Wire Wire Line - 12850 1450 12750 1450 -Connection ~ 13550 9200 -Wire Wire Line - 13450 9200 13550 9200 -Connection ~ 13550 9000 -Wire Wire Line - 13550 9000 13450 9000 -Wire Wire Line - 12750 8700 12850 8700 -Connection ~ 9800 2850 -Wire Wire Line - 9800 2250 9800 4250 -Connection ~ 9650 6350 -Wire Wire Line - 9650 6450 9650 5850 -Wire Wire Line - 10850 4950 9500 4950 -Wire Wire Line - 9500 4950 9500 4650 -Wire Wire Line - 9350 5850 9350 6250 -Wire Wire Line - 9400 6800 9300 6800 -Wire Wire Line - 10850 5050 9350 5050 -Wire Wire Line - 9350 5050 9350 5450 -Wire Wire Line - 8750 6050 9350 6050 -Wire Wire Line - 6700 5650 7100 5650 -Wire Wire Line - 7550 5950 7100 5950 -Wire Wire Line - 7850 5750 7850 5550 -Wire Wire Line - 7850 6250 7850 6150 -Wire Wire Line - 7850 5650 8050 5650 -Connection ~ 7850 5650 -Wire Wire Line - 7100 5950 7100 5350 -Connection ~ 7100 5650 -Connection ~ 7700 4450 -Wire Wire Line - 7700 4150 7700 4750 -Wire Wire Line - 8450 3850 8450 3950 -Wire Wire Line - 8750 4150 8650 4150 -Wire Wire Line - 8650 4150 8650 4450 -Connection ~ 8450 4450 -Wire Wire Line - 8650 4450 8450 4450 -Wire Wire Line - 8450 5050 8450 4950 -Wire Wire Line - 9500 4250 9500 2950 -Wire Wire Line - 9500 2950 9400 2950 -Wire Wire Line - 9400 2850 9800 2850 -Wire Wire Line - 9200 3400 9200 3300 -Wire Wire Line - 3950 6500 4050 6500 -Wire Wire Line - 4750 2050 4850 2050 -Wire Wire Line - 3950 6800 4050 6800 -Wire Wire Line - 4050 2250 4050 2150 -Wire Wire Line - 4050 2150 3400 2150 -Wire Wire Line - 3400 2150 3400 2750 -Wire Wire Line - 2650 4650 2650 4550 -Wire Wire Line - 2450 3650 2450 3550 -Wire Wire Line - 2450 6250 2450 6150 -Wire Wire Line - 2450 5250 2450 5100 -Wire Wire Line - 2150 3450 2550 3450 -Wire Wire Line - 2550 3450 2550 3650 -Wire Wire Line - 4750 1750 4850 1750 -Wire Wire Line - 6150 2050 6050 2050 -Wire Wire Line - 4350 2050 4250 2050 -Wire Wire Line - 4250 2050 4250 2250 -Wire Wire Line - 4650 3750 4750 3750 -Wire Wire Line - 5250 6800 5350 6800 -Wire Wire Line - 8750 6600 8750 6500 -Wire Wire Line - 3550 6800 3450 6800 -Wire Wire Line - 3450 6800 3450 6900 -Connection ~ 850 3850 -Wire Wire Line - 850 3850 950 3850 -Wire Wire Line - 950 3650 850 3650 -Wire Wire Line - 850 3650 850 4050 -Wire Wire Line - 1550 3450 1750 3450 -Connection ~ 850 5450 -Wire Wire Line - 950 5450 850 5450 -Connection ~ 850 5650 -Wire Wire Line - 850 5650 950 5650 -Wire Wire Line - 1650 5850 1650 5750 -Wire Wire Line - 1550 5150 1750 5150 -Wire Wire Line - 4250 3250 4250 3150 -Wire Wire Line - 2150 5150 2250 5150 -Wire Wire Line - 1650 5250 1650 5150 -Connection ~ 1650 5150 -Wire Wire Line - 950 5350 850 5350 -Wire Wire Line - 850 5350 850 5750 -Wire Wire Line - 850 5550 950 5550 -Connection ~ 850 5550 -Wire Wire Line - 1650 4150 1650 4050 -Wire Wire Line - 1650 3550 1650 3450 -Connection ~ 1650 3450 -Wire Wire Line - 850 3750 950 3750 -Connection ~ 850 3750 -Wire Wire Line - 950 3950 850 3950 -Connection ~ 850 3950 -Wire Wire Line - 3450 7900 3450 7800 -Wire Wire Line - 3350 7800 3350 8050 -Wire Wire Line - 3350 8050 3550 8050 -Wire Wire Line - 5250 6500 5350 6500 -Wire Wire Line - 8750 7600 8750 7500 -Wire Wire Line - 7200 7200 7300 7200 -Wire Wire Line - 6050 3750 5950 3750 -Wire Wire Line - 4750 3450 4650 3450 -Wire Wire Line - 4150 3150 4150 3450 -Wire Wire Line - 7300 3250 7400 3250 -Wire Wire Line - 2250 5150 2250 5250 -Wire Wire Line - 2350 6150 2350 6250 -Wire Wire Line - 2450 4700 2450 4550 -Wire Wire Line - 2350 6650 2350 6800 -Wire Wire Line - 2350 6800 3250 6800 -Wire Wire Line - 3250 6800 3250 6900 -Wire Wire Line - 3950 8050 4050 8050 -Wire Wire Line - 4150 3450 4250 3450 -Wire Wire Line - 5350 8350 5250 8350 -Wire Wire Line - 4050 8350 3950 8350 -Wire Wire Line - 9350 4150 9500 4150 -Connection ~ 9500 4150 -Wire Wire Line - 8450 4350 8450 4550 -Wire Wire Line - 7700 4750 8150 4750 -Wire Wire Line - 7300 4450 7700 4450 -Wire Wire Line - 8050 5650 8050 6050 -Wire Wire Line - 8050 6050 8150 6050 -Connection ~ 9350 6050 -Wire Wire Line - 10850 5150 9650 5150 -Wire Wire Line - 9650 5150 9650 5450 -Wire Wire Line - 8850 6600 8850 6250 -Wire Wire Line - 8850 6250 9350 6250 -Wire Wire Line - 8950 6600 8950 6350 -Wire Wire Line - 8950 6350 9650 6350 -Wire Wire Line - 10850 4850 9800 4850 -Wire Wire Line - 9800 4850 9800 4650 -Wire Wire Line - 7850 5050 7850 5150 -Wire Wire Line - 13550 9300 13550 8900 -Wire Wire Line - 13550 8900 13450 8900 -Wire Wire Line - 13550 9100 13450 9100 -Connection ~ 13550 9100 -Wire Wire Line - 12850 8300 12750 8300 -Wire Wire Line - 11950 1450 8400 1450 -Wire Wire Line - 12750 1850 12850 1850 -Wire Wire Line - 13550 2150 13450 2150 -Connection ~ 13550 2150 -Wire Wire Line - 13450 2350 13550 2350 -Connection ~ 13550 2350 -Wire Wire Line - 10450 4550 10450 4850 -Connection ~ 10450 4850 -Wire Wire Line - 10150 3950 10150 4050 -Wire Wire Line - 10450 3950 10450 4050 -Connection ~ 10450 3950 -Wire Wire Line - 10300 3450 10300 3350 -Wire Wire Line - 10300 3350 11200 3350 -Wire Wire Line - 10600 3350 10600 3450 -Connection ~ 10600 3350 -Wire Wire Line - 10150 5450 10150 5050 -Connection ~ 10150 5050 -Wire Wire Line - 9900 6050 9900 5950 -Wire Wire Line - 10450 6050 10450 5950 -Connection ~ 10450 6050 -Wire Wire Line - 10300 6050 10300 6150 -Connection ~ 10300 6050 -Wire Wire Line - 10900 6050 10900 6150 -Wire Wire Line - 10300 6650 10900 6650 -Wire Wire Line - 10900 6650 10900 6550 -Connection ~ 10300 6650 -Wire Wire Line - 10300 3950 10300 3850 -Connection ~ 10300 3950 -Wire Wire Line - 10900 3850 10900 3950 -Wire Wire Line - 10000 3850 10000 3950 -Wire Wire Line - 10000 3950 10900 3950 -Connection ~ 10150 3950 -Wire Wire Line - 11550 3950 11550 4050 -Wire Wire Line - 11750 6050 11750 5950 -Wire Wire Line - 12850 5150 12750 5150 -Wire Wire Line - 11700 6750 11700 6850 -Connection ~ 11800 6850 -Connection ~ 12400 6850 -Connection ~ 13000 6850 -Connection ~ 13600 6850 -Connection ~ 14200 6850 -Connection ~ 14800 6850 -Connection ~ 15400 6850 -Wire Wire Line - 11700 6850 16300 6850 -Connection ~ 16000 6850 -Connection ~ 12100 7250 -Connection ~ 12700 7250 -Connection ~ 13300 7250 -Connection ~ 13900 7250 -Connection ~ 14500 7250 -Connection ~ 15100 7250 -Wire Wire Line - 11700 7250 16300 7250 -Connection ~ 16000 7250 -Wire Wire Line - 11950 6050 11950 5950 -Wire Wire Line - 12750 4950 12850 4950 -Wire Wire Line - 11450 3950 11450 4050 -Wire Wire Line - 13100 5350 13100 5250 -Connection ~ 13400 5250 -Wire Wire Line - 14100 5350 14100 5250 -Connection ~ 14100 5250 -Wire Wire Line - 12750 5250 13500 5250 -Wire Wire Line - 14100 5750 14100 6050 -Wire Wire Line - 13400 5750 13400 5850 -Wire Wire Line - 12150 5950 12150 6050 -Wire Wire Line - 12150 6050 14800 6050 -Connection ~ 12850 6050 -Wire Wire Line - 13400 5850 13500 5850 -Wire Wire Line - 12750 4650 13800 4650 -Wire Wire Line - 13800 4650 13800 3500 -Wire Wire Line - 13800 3500 13900 3500 -Wire Wire Line - 11850 4050 11850 3300 -Wire Wire Line - 11850 3300 13900 3300 -Wire Wire Line - 11650 4050 11650 3100 -Wire Wire Line - 11650 3100 13900 3100 -Wire Wire Line - 14700 3400 14900 3400 -Wire Wire Line - 14900 3400 14900 3750 -Wire Wire Line - 14900 3750 13700 3750 -Wire Wire Line - 13700 3750 13700 3400 -Connection ~ 13700 3400 -Wire Wire Line - 14700 3200 15100 3200 -Wire Wire Line - 15100 3200 15100 3950 -Wire Wire Line - 15100 3950 13500 3950 -Wire Wire Line - 13500 3950 13500 3200 -Connection ~ 13500 3200 -Wire Wire Line - 15300 4950 15300 4850 -Connection ~ 15300 4850 -Wire Wire Line - 15800 4850 15900 4850 -Wire Wire Line - 15900 4850 15900 4750 -Wire Wire Line - 3250 8650 3250 8550 -Wire Wire Line - 3000 7900 3250 7900 -Connection ~ 3250 7900 -Wire Wire Line - 3350 6100 3350 6200 -Wire Wire Line - 4050 4100 4050 4000 -Wire Wire Line - 3800 3500 4050 3500 -Connection ~ 4050 3500 -Wire Wire Line - 4150 2250 4150 1950 -Wire Wire Line - 2850 3550 2650 3550 -Wire Wire Line - 2650 3650 2650 3450 -Connection ~ 2650 3550 -Wire Wire Line - 2550 4550 2550 4750 -Wire Wire Line - 2800 4850 2800 4750 -Wire Wire Line - 2550 4750 3000 4750 -Connection ~ 2800 4750 -Wire Wire Line - 1850 4900 2050 4900 -Connection ~ 2050 4900 -Wire Wire Line - 2250 6150 2250 6250 -Wire Wire Line - 1950 6350 1950 6250 -Wire Wire Line - 2250 6250 1750 6250 -Connection ~ 1950 6250 -Wire Wire Line - 7600 4150 8150 4150 -Connection ~ 7700 4150 -Wire Wire Line - 7000 5350 7550 5350 -Connection ~ 7100 5350 -Wire Wire Line - 1250 9400 1500 9400 -Wire Wire Line - 1250 9600 1500 9600 -Wire Wire Line - 2700 9700 2900 9700 -Wire Wire Line - 2100 10350 2100 10250 -Wire Wire Line - 4250 9500 3850 9500 -Wire Wire Line - 3850 9700 4250 9700 -Wire Wire Line - 3850 9900 4250 9900 -Wire Wire Line - 5150 9600 5050 9600 -Connection ~ 5150 9600 -Wire Wire Line - 5150 9800 5050 9800 -Connection ~ 5150 9800 -Wire Wire Line - 15000 9200 15000 8700 -Wire Wire Line - 15000 8700 15100 8700 -Wire Wire Line - 15000 8900 15100 8900 -Connection ~ 15000 8900 -Wire Wire Line - 15000 9100 15100 9100 -Connection ~ 15000 9100 -Wire Wire Line - 16000 9000 15900 9000 -Connection ~ 16000 9000 -Wire Wire Line - 16000 8800 15900 8800 -Connection ~ 16000 8800 -Wire Wire Line - 2700 9800 2800 9800 -Wire Wire Line - 6500 3150 6500 3450 -Wire Wire Line - 8200 3250 8400 3250 -Wire Wire Line - 8400 3250 8400 2950 -Wire Wire Line - 8400 2950 8500 2950 -Wire Wire Line - 6700 3450 6700 3150 -Wire Wire Line - 7000 2850 7000 2950 -Wire Wire Line - 6500 3450 6450 3450 -Wire Wire Line - 6600 1750 6550 1750 -Wire Wire Line - 8400 1450 8400 2750 -Wire Wire Line - 8400 2750 8500 2750 -Wire Wire Line - 6900 1450 6900 1550 -Wire Wire Line - 8200 7200 8100 7200 -Wire Wire Line - 5250 8050 5350 8050 -Wire Wire Line - 6500 2150 6500 2250 -Wire Wire Line - 6400 7650 6400 7750 -Wire Wire Line - 6400 7750 7000 7750 -Wire Wire Line - 7000 6800 7300 6800 -Wire Wire Line - 7000 7750 7000 7650 -Wire Wire Line - 8850 7500 8850 8700 -Wire Wire Line - 8850 8700 11950 8700 -Wire Wire Line - 9500 1850 11950 1850 -Wire Wire Line - 8100 6800 8400 6800 -Wire Wire Line - 8400 6800 8400 6500 -Wire Wire Line - 8400 6500 8750 6500 -Wire Wire Line - 6600 4150 6600 4050 -Wire Wire Line - 6600 3550 6850 3550 -Connection ~ 6600 3550 -Wire Wire Line - 6400 5900 6400 6000 -Wire Wire Line - 6300 7650 6300 8150 -Wire Wire Line - 6300 8050 6550 8050 -Connection ~ 6300 8050 -Wire Wire Line - 6900 1950 6900 2050 -Wire Wire Line - 9650 7050 9650 7150 -Wire Wire Line - 9950 7350 10050 7350 -Wire Wire Line - 10050 7350 10050 7250 -Wire Wire Line - 10600 2350 10600 2250 -Wire Wire Line - 10600 2250 10500 2250 -Wire Wire Line - 11000 2450 11000 2550 -Wire Wire Line - 11000 2550 10900 2550 -Wire Wire Line - 11850 1650 11950 1650 -Wire Wire Line - 11850 8500 11950 8500 + 3150 9200 3150 9400 Wire Wire Line 3150 9900 3150 9800 Wire Wire Line - 3150 9200 3150 9400 -Connection ~ 3150 9300 + 11850 8500 11950 8500 +Wire Wire Line + 11850 1650 11950 1650 +Wire Wire Line + 10900 2550 11000 2550 +Wire Wire Line + 11000 2550 11000 2450 +Wire Wire Line + 10500 2250 10600 2250 +Wire Wire Line + 10600 2250 10600 2350 +Wire Wire Line + 10050 7250 10050 7350 +Wire Wire Line + 10050 7350 9950 7350 +Wire Wire Line + 9650 7050 9650 7150 +Wire Wire Line + 6900 1950 6900 2050 +Connection ~ 6300 8050 +Wire Wire Line + 6300 8050 6550 8050 +Wire Wire Line + 6300 7650 6300 8150 +Wire Wire Line + 6400 5900 6400 6000 +Connection ~ 6600 3550 +Wire Wire Line + 6600 3550 6850 3550 +Wire Wire Line + 6600 4150 6600 4050 +Wire Wire Line + 8400 6500 8750 6500 +Wire Wire Line + 8400 6500 8400 6800 +Wire Wire Line + 8400 6800 8100 6800 +Wire Wire Line + 11950 1850 9500 1850 +Wire Wire Line + 11950 8700 8850 8700 +Wire Wire Line + 8850 8700 8850 7500 +Wire Wire Line + 7000 7650 7000 7750 +Wire Wire Line + 7300 6800 7000 6800 +Wire Wire Line + 7000 7750 6400 7750 +Wire Wire Line + 6400 7750 6400 7650 +Wire Wire Line + 6500 2150 6500 2250 +Wire Wire Line + 5250 8050 5350 8050 +Wire Wire Line + 8100 7200 8200 7200 +Wire Wire Line + 6900 1450 6900 1550 +Wire Wire Line + 8500 2750 8400 2750 +Wire Wire Line + 8400 2750 8400 1450 +Wire Wire Line + 6550 1750 6600 1750 +Wire Wire Line + 6450 3450 6500 3450 +Wire Wire Line + 7000 2950 7000 2850 +Wire Wire Line + 6700 3150 6700 3450 +Wire Wire Line + 8500 2950 8400 2950 +Wire Wire Line + 8400 2950 8400 3250 +Wire Wire Line + 8400 3250 8200 3250 +Wire Wire Line + 6500 3450 6500 3150 +Wire Wire Line + 2700 9800 2800 9800 +Connection ~ 16000 8800 +Wire Wire Line + 16000 8800 15900 8800 +Connection ~ 16000 9000 +Wire Wire Line + 16000 9000 15900 9000 +Connection ~ 15000 9100 +Wire Wire Line + 15000 9100 15100 9100 +Connection ~ 15000 8900 +Wire Wire Line + 15000 8900 15100 8900 +Wire Wire Line + 15100 8700 15000 8700 +Wire Wire Line + 15000 8700 15000 9200 +Connection ~ 5150 9800 +Wire Wire Line + 5150 9800 5050 9800 +Connection ~ 5150 9600 +Wire Wire Line + 5150 9600 5050 9600 +Wire Wire Line + 3850 9900 4250 9900 +Wire Wire Line + 3850 9700 4250 9700 +Wire Wire Line + 4250 9500 3850 9500 +Wire Wire Line + 2100 10350 2100 10250 +Wire Wire Line + 2700 9700 2900 9700 +Wire Wire Line + 1250 9600 1500 9600 +Wire Wire Line + 1250 9400 1500 9400 +Connection ~ 7100 5350 +Wire Wire Line + 7000 5350 7550 5350 +Connection ~ 7700 4150 +Wire Wire Line + 7600 4150 8150 4150 +Connection ~ 1950 6250 +Wire Wire Line + 1750 6250 2250 6250 +Wire Wire Line + 1950 6350 1950 6250 +Wire Wire Line + 2250 6250 2250 6150 +Connection ~ 2050 4900 +Wire Wire Line + 1850 4900 2050 4900 +Connection ~ 2800 4750 +Wire Wire Line + 3000 4750 2550 4750 +Wire Wire Line + 2800 4850 2800 4750 +Wire Wire Line + 2550 4750 2550 4550 +Connection ~ 2650 3550 +Wire Wire Line + 2650 3650 2650 3450 +Wire Wire Line + 2850 3550 2650 3550 +Wire Wire Line + 4150 2250 4150 1950 +Connection ~ 4050 3500 +Wire Wire Line + 3800 3500 4050 3500 +Wire Wire Line + 4050 4100 4050 4000 +Wire Wire Line + 3350 6100 3350 6200 +Connection ~ 3250 7900 +Wire Wire Line + 3000 7900 3250 7900 +Wire Wire Line + 3250 8650 3250 8550 +Wire Wire Line + 15900 4750 15900 4850 +Wire Wire Line + 15900 4850 15800 4850 +Connection ~ 15300 4850 +Wire Wire Line + 15300 4950 15300 4850 +Connection ~ 13500 3200 +Wire Wire Line + 13500 3200 13500 3950 +Wire Wire Line + 13500 3950 15100 3950 +Wire Wire Line + 15100 3950 15100 3200 +Wire Wire Line + 15100 3200 14700 3200 +Connection ~ 13700 3400 +Wire Wire Line + 13700 3400 13700 3750 +Wire Wire Line + 13700 3750 14900 3750 +Wire Wire Line + 14900 3750 14900 3400 +Wire Wire Line + 14900 3400 14700 3400 +Wire Wire Line + 13900 3100 11650 3100 +Wire Wire Line + 11650 3100 11650 4050 +Wire Wire Line + 13900 3300 11850 3300 +Wire Wire Line + 11850 3300 11850 4050 +Wire Wire Line + 13900 3500 13800 3500 +Wire Wire Line + 13800 3500 13800 4650 +Wire Wire Line + 13800 4650 12750 4650 +Wire Wire Line + 13500 5850 13400 5850 +Connection ~ 12850 6050 +Wire Wire Line + 12150 6050 14800 6050 +Wire Wire Line + 12150 6050 12150 5950 +Wire Wire Line + 13400 5850 13400 5750 +Wire Wire Line + 14100 5750 14100 6050 +Wire Wire Line + 12750 5250 13500 5250 +Connection ~ 14100 5250 +Wire Wire Line + 14100 5350 14100 5250 +Connection ~ 13400 5250 +Wire Wire Line + 13100 5350 13100 5250 +Wire Wire Line + 11450 3950 11450 4050 +Wire Wire Line + 12750 4950 12850 4950 +Wire Wire Line + 11950 6050 11950 5950 +Connection ~ 16000 7250 +Wire Wire Line + 16300 7250 11700 7250 +Connection ~ 15100 7250 +Connection ~ 14500 7250 +Connection ~ 13900 7250 +Connection ~ 13300 7250 +Connection ~ 12700 7250 +Connection ~ 12100 7250 +Connection ~ 16000 6850 +Wire Wire Line + 16300 6850 11700 6850 +Connection ~ 15400 6850 +Connection ~ 14800 6850 +Connection ~ 14200 6850 +Connection ~ 13600 6850 +Connection ~ 13000 6850 +Connection ~ 12400 6850 +Connection ~ 11800 6850 +Wire Wire Line + 11700 6850 11700 6750 +Wire Wire Line + 12850 5150 12750 5150 +Wire Wire Line + 11750 6050 11750 5950 +Wire Wire Line + 11550 3950 11550 4050 +Connection ~ 10150 3950 +Wire Wire Line + 10000 3950 10900 3950 +Wire Wire Line + 10000 3950 10000 3850 +Wire Wire Line + 10900 3950 10900 3850 +Connection ~ 10300 3950 +Wire Wire Line + 10300 3950 10300 3850 +Connection ~ 10300 6650 +Wire Wire Line + 10900 6550 10900 6650 +Wire Wire Line + 10900 6650 10300 6650 +Wire Wire Line + 10900 6150 10900 6050 +Connection ~ 10300 6050 +Wire Wire Line + 10300 6050 10300 6150 +Connection ~ 10450 6050 +Wire Wire Line + 10450 6050 10450 5950 +Wire Wire Line + 9900 5950 9900 6050 +Connection ~ 10150 5050 +Wire Wire Line + 10150 5450 10150 5050 +Connection ~ 10600 3350 +Wire Wire Line + 10600 3350 10600 3450 +Wire Wire Line + 10300 3350 11200 3350 +Wire Wire Line + 10300 3350 10300 3450 +Connection ~ 10450 3950 +Wire Wire Line + 10450 3950 10450 4050 +Wire Wire Line + 10150 3950 10150 4050 +Connection ~ 10450 4850 +Wire Wire Line + 10450 4550 10450 4850 +Connection ~ 13550 2350 +Wire Wire Line + 13450 2350 13550 2350 +Connection ~ 13550 2150 +Wire Wire Line + 13550 2150 13450 2150 +Wire Wire Line + 12750 1850 12850 1850 +Wire Wire Line + 8400 1450 11950 1450 +Wire Wire Line + 12850 8300 12750 8300 +Connection ~ 13550 9100 +Wire Wire Line + 13550 9100 13450 9100 +Wire Wire Line + 13450 8900 13550 8900 +Wire Wire Line + 13550 8900 13550 9300 +Wire Wire Line + 7850 5050 7850 5150 +Wire Wire Line + 9800 4650 9800 4850 +Wire Wire Line + 9800 4850 10850 4850 +Wire Wire Line + 9650 6350 8950 6350 +Wire Wire Line + 8950 6350 8950 6600 +Wire Wire Line + 8850 6250 9350 6250 +Wire Wire Line + 8850 6250 8850 6600 +Wire Wire Line + 9650 5450 9650 5150 +Wire Wire Line + 9650 5150 10850 5150 +Connection ~ 9350 6050 +Wire Wire Line + 8150 6050 8050 6050 +Wire Wire Line + 8050 6050 8050 5650 +Wire Wire Line + 7300 4450 7700 4450 +Wire Wire Line + 8150 4750 7700 4750 +Wire Wire Line + 8450 4350 8450 4550 +Connection ~ 9500 4150 +Wire Wire Line + 9350 4150 9500 4150 +Wire Wire Line + 4050 8350 3950 8350 +Wire Wire Line + 5350 8350 5250 8350 +Wire Wire Line + 4250 3450 4150 3450 +Wire Wire Line + 3950 8050 4050 8050 +Wire Wire Line + 3250 6900 3250 6800 +Wire Wire Line + 3250 6800 2350 6800 +Wire Wire Line + 2350 6800 2350 6650 +Wire Wire Line + 2450 4700 2450 4550 +Wire Wire Line + 2350 6150 2350 6250 +Wire Wire Line + 2250 5250 2250 5150 +Wire Wire Line + 7300 3250 7400 3250 +Wire Wire Line + 4150 3450 4150 3150 +Wire Wire Line + 4750 3450 4650 3450 +Wire Wire Line + 6050 3750 5950 3750 +Wire Wire Line + 7200 7200 7300 7200 +Wire Wire Line + 8750 7500 8750 7600 +Wire Wire Line + 5250 6500 5350 6500 +Wire Wire Line + 3550 8050 3350 8050 +Wire Wire Line + 3350 8050 3350 7800 +Wire Wire Line + 3450 7900 3450 7800 +Connection ~ 850 3950 +Wire Wire Line + 950 3950 850 3950 +Connection ~ 850 3750 +Wire Wire Line + 850 3750 950 3750 +Connection ~ 1650 3450 +Wire Wire Line + 1650 3550 1650 3450 +Wire Wire Line + 1650 4150 1650 4050 +Connection ~ 850 5550 +Wire Wire Line + 850 5550 950 5550 +Wire Wire Line + 850 5750 850 5350 +Wire Wire Line + 850 5350 950 5350 +Connection ~ 1650 5150 +Wire Wire Line + 1650 5250 1650 5150 +Wire Wire Line + 2250 5150 2150 5150 +Wire Wire Line + 4250 3250 4250 3150 +Wire Wire Line + 1550 5150 1750 5150 +Wire Wire Line + 1650 5850 1650 5750 +Wire Wire Line + 850 5650 950 5650 +Connection ~ 850 5650 +Wire Wire Line + 950 5450 850 5450 +Connection ~ 850 5450 +Wire Wire Line + 1550 3450 1750 3450 +Wire Wire Line + 850 4050 850 3650 +Wire Wire Line + 850 3650 950 3650 +Wire Wire Line + 850 3850 950 3850 +Connection ~ 850 3850 +Wire Wire Line + 3450 6900 3450 6800 +Wire Wire Line + 3450 6800 3550 6800 +Wire Wire Line + 8750 6500 8750 6600 +Wire Wire Line + 5250 6800 5350 6800 +Wire Wire Line + 4650 3750 4750 3750 +Wire Wire Line + 4250 2250 4250 2050 +Wire Wire Line + 4250 2050 4350 2050 +Wire Wire Line + 6150 2050 6050 2050 +Wire Wire Line + 4750 1750 4850 1750 +Wire Wire Line + 2550 3650 2550 3450 +Wire Wire Line + 2550 3450 2150 3450 +Wire Wire Line + 2450 5250 2450 5100 +Wire Wire Line + 2450 6250 2450 6150 +Wire Wire Line + 2450 3650 2450 3550 +Wire Wire Line + 2650 4550 2650 4650 +Wire Wire Line + 3400 2750 3400 2150 +Wire Wire Line + 3400 2150 4050 2150 +Wire Wire Line + 4050 2150 4050 2250 +Wire Wire Line + 3950 6800 4050 6800 +Wire Wire Line + 4750 2050 4850 2050 +Wire Wire Line + 3950 6500 4050 6500 +Wire Wire Line + 9200 3400 9200 3300 +Wire Wire Line + 9400 2850 9800 2850 +Wire Wire Line + 9400 2950 9500 2950 +Wire Wire Line + 9500 2950 9500 4250 +Wire Wire Line + 8450 5050 8450 4950 +Wire Wire Line + 8450 4450 8650 4450 +Connection ~ 8450 4450 +Wire Wire Line + 8650 4450 8650 4150 +Wire Wire Line + 8650 4150 8750 4150 +Wire Wire Line + 8450 3850 8450 3950 +Wire Wire Line + 7700 4750 7700 4150 +Connection ~ 7700 4450 +Connection ~ 7100 5650 +Wire Wire Line + 7100 5350 7100 5950 +Connection ~ 7850 5650 +Wire Wire Line + 8050 5650 7850 5650 +Wire Wire Line + 7850 6250 7850 6150 +Wire Wire Line + 7850 5750 7850 5550 +Wire Wire Line + 7100 5950 7550 5950 +Wire Wire Line + 6700 5650 7100 5650 +Wire Wire Line + 8750 6050 9350 6050 +Wire Wire Line + 9350 5450 9350 5050 +Wire Wire Line + 9350 5050 10850 5050 +Wire Wire Line + 9400 6800 9300 6800 +Wire Wire Line + 9350 6250 9350 5850 +Wire Wire Line + 9500 4650 9500 4950 +Wire Wire Line + 9500 4950 10850 4950 +Wire Wire Line + 9650 6450 9650 5850 +Connection ~ 9650 6350 +Wire Wire Line + 9800 4250 9800 2250 +Connection ~ 9800 2850 +Wire Wire Line + 12750 8700 12850 8700 +Wire Wire Line + 13550 9000 13450 9000 +Connection ~ 13550 9000 +Wire Wire Line + 13450 9200 13550 9200 +Connection ~ 13550 9200 +Wire Wire Line + 12850 1450 12750 1450 +Wire Wire Line + 13550 2450 13550 2050 +Wire Wire Line + 13550 2050 13450 2050 +Wire Wire Line + 13550 2250 13450 2250 +Connection ~ 13550 2250 +Wire Wire Line + 10750 5600 10850 5600 +Wire Wire Line + 10150 4550 10150 4950 +Connection ~ 10150 4950 +Wire Wire Line + 10900 3450 10900 3350 +Connection ~ 10900 3350 +Wire Wire Line + 10450 5450 10450 5150 +Connection ~ 10450 5150 +Wire Wire Line + 10150 6050 10150 5950 +Connection ~ 10150 6050 +Wire Wire Line + 10600 6150 10600 6050 +Connection ~ 10600 6050 +Wire Wire Line + 10300 6750 10300 6550 +Wire Wire Line + 10600 6550 10600 6650 +Connection ~ 10600 6650 +Wire Wire Line + 10600 3850 10600 3950 +Connection ~ 10600 3950 +Wire Wire Line + 11200 3350 11200 3450 +Wire Wire Line + 12050 3950 12050 4050 +Wire Wire Line + 11850 6050 11850 5950 +Wire Wire Line + 12850 5050 12750 5050 +Wire Wire Line + 11700 7250 11700 7350 +Connection ~ 12100 6850 +Connection ~ 12700 6850 +Connection ~ 13300 6850 +Connection ~ 13900 6850 +Connection ~ 14500 6850 +Connection ~ 15100 6850 +Connection ~ 15700 6850 +Connection ~ 11800 7250 +Connection ~ 12400 7250 +Connection ~ 13000 7250 +Connection ~ 13600 7250 +Connection ~ 14200 7250 +Connection ~ 14800 7250 +Connection ~ 15700 7250 +Connection ~ 15400 7250 +Wire Wire Line + 11450 6050 11450 5950 +Wire Wire Line + 12850 4750 12750 4750 +Wire Wire Line + 12150 3950 12150 4050 +Wire Wire Line + 12750 4850 15400 4850 +Wire Wire Line + 13400 5250 13400 5350 +Connection ~ 13100 5250 +Wire Wire Line + 14000 5250 14200 5250 +Wire Wire Line + 14800 5350 14800 5250 +Wire Wire Line + 12750 5350 12850 5350 +Wire Wire Line + 12850 5350 12850 6050 +Wire Wire Line + 14800 6050 14800 5750 +Connection ~ 14100 6050 +Wire Wire Line + 13100 6050 13100 5750 +Connection ~ 13100 6050 +Wire Wire Line + 12050 5950 12050 6150 +Wire Wire Line + 12050 6150 15000 6150 +Wire Wire Line + 15000 6150 15000 5250 +Wire Wire Line + 15000 5250 14700 5250 +Connection ~ 14800 5250 +Wire Wire Line + 14000 5850 14100 5850 +Connection ~ 14100 5850 +Wire Wire Line + 13900 3400 11950 3400 +Wire Wire Line + 11950 3400 11950 4050 +Wire Wire Line + 13900 3200 11750 3200 +Wire Wire Line + 11750 3200 11750 4050 +Wire Wire Line + 14700 3500 14800 3500 +Wire Wire Line + 14800 3500 14800 3650 +Wire Wire Line + 14800 3650 13800 3650 +Connection ~ 13800 3650 +Wire Wire Line + 14700 3300 15000 3300 +Wire Wire Line + 15000 3300 15000 3850 +Wire Wire Line + 15000 3850 13600 3850 +Wire Wire Line + 13600 3850 13600 3300 +Connection ~ 13600 3300 +Wire Wire Line + 14700 3100 15200 3100 +Wire Wire Line + 15200 3100 15200 4050 +Wire Wire Line + 15200 4050 13400 4050 +Wire Wire Line + 13400 4050 13400 3100 +Connection ~ 13400 3100 +Wire Wire Line + 15300 5450 15300 5350 +Wire Wire Line + 16100 4850 16100 4750 +Wire Wire Line + 3250 8150 3250 7800 +Wire Wire Line + 3150 6700 3350 6700 +Wire Wire Line + 3350 6900 3350 6600 +Connection ~ 3350 6700 +Wire Wire Line + 7150 2050 6700 2050 +Connection ~ 6900 2050 +Wire Wire Line + 4050 3600 4050 3150 +Wire Wire Line + 4150 1450 4150 1550 +Wire Wire Line + 3900 2050 4150 2050 +Connection ~ 4150 2050 +Wire Wire Line + 2650 2950 2650 3050 +Wire Wire Line + 2800 5350 2800 5250 +Wire Wire Line + 2350 5250 2350 5000 +Wire Wire Line + 2350 5000 2050 5000 +Wire Wire Line + 2050 5000 2050 4800 +Wire Wire Line + 2050 4300 2050 4400 +Wire Wire Line + 1950 6850 1950 6750 +Wire Wire Line + 7000 4150 7100 4150 +Wire Wire Line + 6400 5350 6500 5350 +Wire Wire Line + 1500 9300 1250 9300 +Wire Wire Line + 1500 9500 1250 9500 +Wire Wire Line + 2700 9600 2900 9600 +Wire Wire Line + 1400 10000 1400 9900 +Wire Wire Line + 1400 9900 1500 9900 +Wire Wire Line + 3850 9600 4250 9600 +Wire Wire Line + 4250 9800 3850 9800 +Wire Wire Line + 5150 10000 5150 9500 +Wire Wire Line + 5150 9500 5050 9500 +Wire Wire Line + 5150 9700 5050 9700 +Connection ~ 5150 9700 +Wire Wire Line + 5150 9900 5050 9900 +Connection ~ 5150 9900 +Wire Wire Line + 15000 8800 15100 8800 +Connection ~ 15000 8800 +Wire Wire Line + 15000 9000 15100 9000 +Connection ~ 15000 9000 +Wire Wire Line + 16000 8600 16000 9100 +Wire Wire Line + 16000 9100 15900 9100 +Wire Wire Line + 16000 8900 15900 8900 +Connection ~ 16000 8900 +Connection ~ 16000 8700 +Wire Wire Line + 16000 8700 15900 8700 +Wire Wire Line + 1400 9700 1500 9700 +Wire Wire Line + 6600 1750 6600 2250 +Wire Wire Line + 7000 2850 7400 2850 +Wire Wire Line + 8200 2850 8500 2850 +Wire Wire Line + 6700 3450 7000 3450 +Wire Wire Line + 7000 3450 7000 3350 +Wire Wire Line + 5950 3450 6050 3450 +Wire Wire Line + 6050 1750 6150 1750 +Wire Wire Line + 9400 2750 9500 2750 +Wire Wire Line + 9500 2750 9500 1850 +Wire Wire Line + 6700 2050 6700 2250 +Wire Wire Line + 9900 6050 10900 6050 +Wire Wire Line + 5750 6500 6300 6500 +Wire Wire Line + 6300 6500 6300 6750 +Wire Wire Line + 5750 8050 6200 8050 +Wire Wire Line + 6200 8050 6200 7650 +Wire Wire Line + 6200 6650 6200 6750 +Wire Wire Line + 7000 6800 7000 7250 +Wire Wire Line + 11950 8300 8950 8300 +Wire Wire Line + 8950 8300 8950 7500 +Wire Wire Line + 8200 7200 8200 7600 +Wire Wire Line + 8200 7600 8750 7600 +Wire Wire Line + 6600 3650 6600 3150 +Wire Wire Line + 6400 6400 6400 6750 +Wire Wire Line + 6650 6500 6400 6500 +Connection ~ 6400 6500 +Wire Wire Line + 6300 8650 6300 8550 +Wire Wire Line + 2650 4650 3400 4650 +Wire Wire Line + 3400 4650 3400 3150 +Wire Wire Line + 9650 7550 9650 7650 +Wire Wire Line + 10600 2850 10600 2750 +Wire Wire Line + 9800 2250 9900 2250 +Wire Wire Line + 3150 9300 2700 9300 +Wire Wire Line + 2700 9400 2800 9400 +Wire Wire Line + 2800 9400 2800 9300 +Connection ~ 2800 9300 +$Comp +L GND #PWR? +U 1 1 4FEF438B +P 13600 6300 +F 0 "#PWR?" H 13600 6300 30 0001 C CNN +F 1 "GND" H 13600 6230 30 0001 C CNN + 1 13600 6300 + 1 0 0 -1 +$EndComp +Text Notes 1200 9050 0 40 ~ 0 +switch control logic ensures valid switch configurations $Comp L GND #PWR? U 1 1 4FEBDCB9 @@ -1281,7 +1293,7 @@ balun here may not not be needed if\ndirect connection to MAX2837 is made Text Notes 1600 3100 0 40 ~ 0 antenna diversity switches Text Notes 13600 5550 0 40 ~ 0 -loop filter +loop filter\n(1.6 MHz) $Comp L VCC #PWR47 U 1 1 4FE1013E @@ -1532,7 +1544,7 @@ L C C34 U 1 1 4FE0F827 P 14800 5550 F 0 "C34" H 14850 5650 50 0000 L CNN -F 1 "C" H 14850 5450 50 0000 L CNN +F 1 "DNP" H 14850 5450 50 0000 L CNN 1 14800 5550 -1 0 0 1 $EndComp @@ -1541,7 +1553,7 @@ L R R7 U 1 1 4FE0F825 P 14450 5250 F 0 "R7" V 14530 5250 50 0000 C CNN -F 1 "R" V 14450 5250 50 0000 C CNN +F 1 "0" V 14450 5250 50 0000 C CNN 1 14450 5250 0 1 1 0 $EndComp @@ -1550,7 +1562,7 @@ L C C33 U 1 1 4FE0F822 P 14100 5550 F 0 "C33" H 14150 5650 50 0000 L CNN -F 1 "C" H 14150 5450 50 0000 L CNN +F 1 "4p7" H 14150 5450 50 0000 L CNN 1 14100 5550 -1 0 0 1 $EndComp @@ -1559,7 +1571,7 @@ L R R6 U 1 1 4FE0F81D P 13750 5250 F 0 "R6" V 13830 5250 50 0000 C CNN -F 1 "R" V 13750 5250 50 0000 C CNN +F 1 "5k" V 13750 5250 50 0000 C CNN 1 13750 5250 0 1 1 0 $EndComp @@ -1568,7 +1580,7 @@ L R R13 U 1 1 4FE0F80D P 13750 5850 F 0 "R13" V 13830 5850 50 0000 C CNN -F 1 "R" V 13750 5850 50 0000 C CNN +F 1 "10k" V 13750 5850 50 0000 C CNN 1 13750 5850 0 1 1 0 $EndComp @@ -1577,7 +1589,7 @@ L C C32 U 1 1 4FE0F809 P 13400 5550 F 0 "C32" H 13450 5650 50 0000 L CNN -F 1 "C" H 13450 5450 50 0000 L CNN +F 1 "560pF" H 13450 5450 50 0000 L CNN 1 13400 5550 -1 0 0 1 $EndComp @@ -1586,7 +1598,7 @@ L C C31 U 1 1 4FE0F802 P 13100 5550 F 0 "C31" H 13150 5650 50 0000 L CNN -F 1 "C" H 13150 5450 50 0000 L CNN +F 1 "47pF" H 13150 5450 50 0000 L CNN 1 13100 5550 -1 0 0 1 $EndComp From 44fb10d0abea16a58ace7cf30289f9953c87e1f9 Mon Sep 17 00:00:00 2001 From: Michael Ossmann Date: Sun, 1 Jul 2012 07:31:27 -0600 Subject: [PATCH 13/16] noticed bias problem with LO bypass mode --- hardware/bubblegum/bubblegum-cache.lib | 2 +- hardware/bubblegum/bubblegum.sch | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/hardware/bubblegum/bubblegum-cache.lib b/hardware/bubblegum/bubblegum-cache.lib index 858dbc98..eb8b72e2 100644 --- a/hardware/bubblegum/bubblegum-cache.lib +++ b/hardware/bubblegum/bubblegum-cache.lib @@ -1,4 +1,4 @@ -EESchema-LIBRARY Version 2.3 Date: Sat Jun 30 12:21:44 2012 +EESchema-LIBRARY Version 2.3 Date: Sun Jul 1 07:30:52 2012 #encoding utf-8 # # BALUN diff --git a/hardware/bubblegum/bubblegum.sch b/hardware/bubblegum/bubblegum.sch index d4d7e720..5f9c9fab 100644 --- a/hardware/bubblegum/bubblegum.sch +++ b/hardware/bubblegum/bubblegum.sch @@ -1,4 +1,4 @@ -EESchema Schematic File Version 2 date Sat Jun 30 12:21:44 2012 +EESchema Schematic File Version 2 date Sun Jul 1 07:30:52 2012 LIBS:power LIBS:device LIBS:transistors @@ -37,7 +37,7 @@ $Descr User 17000 11000 encoding utf-8 Sheet 1 1 Title "" -Date "30 jun 2012" +Date "1 jul 2012" Rev "" Comp "" Comment1 "" @@ -45,6 +45,8 @@ Comment2 "" Comment3 "" Comment4 "" $EndDescr +Text Notes 11100 2450 0 40 ~ 0 +FIXME: This should be pulled below GND in bypass\nmode, or perhaps everything could be biased to 1V8\nin normal mode. Connection ~ 13600 6050 Wire Wire Line 13600 6050 13600 6300 From a02ce32809125b2d6ef7d517cc5e3897ece93efe Mon Sep 17 00:00:00 2001 From: Michael Ossmann Date: Sun, 1 Jul 2012 14:00:27 -0600 Subject: [PATCH 14/16] fixed LO bypass mode by introducing intermediate mixer bias voltage --- hardware/bubblegum/bubblegum-cache.lib | 62 +- hardware/bubblegum/bubblegum.sch | 983 +++++++++++++++---------- hardware/kicad/hackrf.dcm | 2 +- hardware/kicad/hackrf.lib | 33 +- 4 files changed, 661 insertions(+), 419 deletions(-) diff --git a/hardware/bubblegum/bubblegum-cache.lib b/hardware/bubblegum/bubblegum-cache.lib index eb8b72e2..f215ba74 100644 --- a/hardware/bubblegum/bubblegum-cache.lib +++ b/hardware/bubblegum/bubblegum-cache.lib @@ -1,4 +1,4 @@ -EESchema-LIBRARY Version 2.3 Date: Sun Jul 1 07:30:52 2012 +EESchema-LIBRARY Version 2.3 Date: Sun Jul 1 13:58:35 2012 #encoding utf-8 # # BALUN @@ -83,6 +83,22 @@ X ~ 10 400 -200 300 L 60 60 1 1 P I ENDDRAW ENDDEF # +# DMC2400 +# +DEF DMC2400 U 0 40 Y Y 1 F N +F0 "U" -50 0 60 V V C CNN +F1 "DMC2400" 50 0 60 V V C CNN +DRAW +S -250 250 250 -250 0 1 0 N +X S1 1 -400 100 150 R 50 50 1 1 B +X G1 2 -400 0 150 R 50 50 1 1 I +X D2 3 -400 -100 150 R 50 50 1 1 B +X S2 4 400 -100 150 L 50 50 1 1 B +X G2 5 400 0 150 L 50 50 1 1 I +X D1 6 400 100 150 L 50 50 1 1 B +ENDDRAW +ENDDEF +# # FIL-DEA # DEF FIL-DEA U 0 40 Y Y 1 F N @@ -197,42 +213,18 @@ X 2 2 0 -300 100 U 70 70 1 1 P ENDDRAW ENDDEF # -# MOS_N +# NCP699 # -DEF MOS_N Q 0 0 N Y 1 F N -F0 "Q" 10 170 60 H V R CNN -F1 "MOS_N" 10 -150 60 H V R CNN -ALIAS MOSFET_N +DEF NCP699 U 0 40 Y Y 1 F N +F0 "U" 0 200 60 H V C CNN +F1 "NCP699" 0 -200 60 H V C CNN DRAW -P 2 0 1 8 -50 -100 -50 100 N -P 2 0 1 10 0 -150 0 150 N -P 2 0 1 0 100 -100 0 -100 N -P 2 0 1 0 100 100 0 100 N -P 3 0 1 8 100 -100 100 0 50 0 N -P 5 0 1 8 50 30 50 -30 0 0 50 30 50 30 N -X D D 100 200 100 D 40 40 1 1 P -X G G -200 0 150 R 40 40 1 1 I -X S S 100 -200 100 U 40 40 1 1 P -ENDDRAW -ENDDEF -# -# MOS_P -# -DEF MOS_P Q 0 40 Y N 1 F N -F0 "Q" 0 190 60 H V R CNN -F1 "MOS_P" 0 -180 60 H V R CNN -ALIAS MOSFET_P -DRAW -P 2 0 1 8 -50 -100 -50 100 N -P 2 0 1 10 0 -150 0 150 N -P 2 0 1 8 30 0 0 0 N -P 2 0 1 0 100 -100 0 -100 N -P 2 0 1 0 100 100 0 100 N -P 3 0 1 0 80 0 100 0 100 -100 N -P 5 0 1 8 30 40 30 -30 80 0 30 40 30 40 N -X D D 100 200 100 D 40 40 1 1 P -X G G -200 0 150 R 40 40 1 1 I -X S S 100 -200 100 U 40 40 1 1 P +S -250 250 250 -250 0 1 0 N +X VIN 1 -400 100 150 R 50 50 1 1 W +X GND 2 -400 0 150 R 50 50 1 1 W +X EN 3 -400 -100 150 R 50 50 1 1 I +X NC 4 400 -100 150 L 50 50 1 1 N +X VOUT 5 400 100 150 L 50 50 1 1 w ENDDRAW ENDDEF # diff --git a/hardware/bubblegum/bubblegum.sch b/hardware/bubblegum/bubblegum.sch index 5f9c9fab..8b26151b 100644 --- a/hardware/bubblegum/bubblegum.sch +++ b/hardware/bubblegum/bubblegum.sch @@ -1,4 +1,4 @@ -EESchema Schematic File Version 2 date Sun Jul 1 07:30:52 2012 +EESchema Schematic File Version 2 date Sun Jul 1 13:58:34 2012 LIBS:power LIBS:device LIBS:transistors @@ -45,46 +45,140 @@ Comment2 "" Comment3 "" Comment4 "" $EndDescr -Text Notes 11100 2450 0 40 ~ 0 -FIXME: This should be pulled below GND in bypass\nmode, or perhaps everything could be biased to 1V8\nin normal mode. +Wire Wire Line + 9450 7900 9450 7800 +Wire Wire Line + 9900 6350 9900 6250 +Wire Wire Line + 9900 6250 8950 6250 +Connection ~ 10600 2450 +Wire Wire Line + 10600 2450 10450 2450 +Wire Wire Line + 10450 2450 10450 2550 +Wire Wire Line + 8200 5900 8200 5800 +Wire Wire Line + 8650 5500 8650 5400 +Connection ~ 11800 1650 +Wire Wire Line + 11800 1950 11800 1650 +Connection ~ 7300 3450 +Wire Wire Line + 7650 3450 7300 3450 +Connection ~ 11750 8500 +Wire Wire Line + 11750 8800 11750 8500 +Connection ~ 7200 7400 +Wire Wire Line + 7550 7400 7200 7400 +Connection ~ 8250 9600 +Wire Wire Line + 8550 9600 8000 9600 +Wire Wire Line + 6800 10200 6800 10100 +Connection ~ 7000 9600 +Wire Wire Line + 7200 9600 6800 9600 +Wire Wire Line + 7100 9700 7200 9700 +Wire Wire Line + 1500 9800 1100 9800 +Wire Wire Line + 7300 3550 7300 3250 +Wire Wire Line + 7300 3250 7400 3250 +Wire Wire Line + 11400 2100 11100 2100 +Wire Wire Line + 11100 2100 11100 2200 +Wire Wire Line + 10900 3200 10900 3000 +Wire Wire Line + 11100 3000 11100 3100 +Wire Wire Line + 11100 3100 10600 3100 +Wire Wire Line + 10600 3100 10600 2100 +Wire Wire Line + 10600 2100 10900 2100 +Wire Wire Line + 10900 2100 10900 2200 +Wire Wire Line + 11000 3000 11000 3200 +Wire Wire Line + 11000 3200 11400 3200 +Wire Wire Line + 11000 2200 11000 2000 +Wire Wire Line + 11000 2000 11400 2000 +Wire Wire Line + 10400 6950 10000 6950 +Wire Wire Line + 10000 6950 10000 7150 +Wire Wire Line + 10400 8150 10000 8150 +Wire Wire Line + 10000 8150 10000 7950 +Wire Wire Line + 9900 6950 9900 7150 +Wire Wire Line + 8150 4800 8150 4900 +Wire Wire Line + 7800 5000 8250 5000 +Wire Wire Line + 8250 5000 8250 4800 +Wire Wire Line + 8350 3800 8350 4000 +Wire Wire Line + 8350 4800 8350 4900 +Wire Wire Line + 8350 4900 8650 4900 +Wire Wire Line + 8150 4000 8150 3900 +Wire Wire Line + 8150 3900 8650 3900 +Wire Wire Line + 8150 4900 7800 4900 +Wire Wire Line + 8250 4000 8250 3800 +Wire Wire Line + 8250 3800 7800 3800 +Wire Wire Line + 7200 5200 7650 5200 +Wire Wire Line + 7650 5200 7650 5400 +Wire Wire Line + 7200 6300 7550 6300 +Connection ~ 8050 6050 +Wire Wire Line + 8050 5300 8050 6300 +Wire Wire Line + 7550 5400 7550 5300 Connection ~ 13600 6050 Wire Wire Line 13600 6050 13600 6300 -Connection ~ 3150 9300 +Connection ~ 3300 9300 Wire Wire Line - 3150 9200 3150 9400 + 3300 9200 3300 9400 Wire Wire Line - 3150 9900 3150 9800 + 3300 9900 3300 9800 Wire Wire Line - 11850 8500 11950 8500 + 11950 8500 11450 8500 Wire Wire Line - 11850 1650 11950 1650 -Wire Wire Line - 10900 2550 11000 2550 -Wire Wire Line - 11000 2550 11000 2450 -Wire Wire Line - 10500 2250 10600 2250 -Wire Wire Line - 10600 2250 10600 2350 -Wire Wire Line - 10050 7250 10050 7350 -Wire Wire Line - 10050 7350 9950 7350 -Wire Wire Line - 9650 7050 9650 7150 + 11950 1650 11500 1650 Wire Wire Line 6900 1950 6900 2050 Connection ~ 6300 8050 Wire Wire Line - 6300 8050 6550 8050 + 6550 8050 6300 8050 Wire Wire Line 6300 7650 6300 8150 Wire Wire Line 6400 5900 6400 6000 Connection ~ 6600 3550 Wire Wire Line - 6600 3550 6850 3550 + 6850 3550 6600 3550 Wire Wire Line 6600 4150 6600 4050 Wire Wire Line @@ -100,11 +194,11 @@ Wire Wire Line Wire Wire Line 8850 8700 8850 7500 Wire Wire Line - 7000 7650 7000 7750 + 6850 7650 6850 7750 Wire Wire Line - 7300 6800 7000 6800 + 7300 6800 6850 6800 Wire Wire Line - 7000 7750 6400 7750 + 6850 7750 6400 7750 Wire Wire Line 6400 7750 6400 7650 Wire Wire Line @@ -124,7 +218,7 @@ Wire Wire Line Wire Wire Line 6450 3450 6500 3450 Wire Wire Line - 7000 2950 7000 2850 + 7100 2950 7100 2850 Wire Wire Line 6700 3150 6700 3450 Wire Wire Line @@ -136,7 +230,7 @@ Wire Wire Line Wire Wire Line 6500 3450 6500 3150 Wire Wire Line - 2700 9800 2800 9800 + 2700 9800 3100 9800 Connection ~ 16000 8800 Wire Wire Line 16000 8800 15900 8800 @@ -160,25 +254,19 @@ Connection ~ 5150 9600 Wire Wire Line 5150 9600 5050 9600 Wire Wire Line - 3850 9900 4250 9900 + 3900 9900 4250 9900 Wire Wire Line - 3850 9700 4250 9700 + 3900 9700 4250 9700 Wire Wire Line - 4250 9500 3850 9500 + 4250 9500 3900 9500 Wire Wire Line 2100 10350 2100 10250 Wire Wire Line - 2700 9700 2900 9700 + 2700 9700 3100 9700 Wire Wire Line - 1250 9600 1500 9600 + 1100 9600 1500 9600 Wire Wire Line - 1250 9400 1500 9400 -Connection ~ 7100 5350 -Wire Wire Line - 7000 5350 7550 5350 -Connection ~ 7700 4150 -Wire Wire Line - 7600 4150 8150 4150 + 1100 9400 1500 9400 Connection ~ 1950 6250 Wire Wire Line 1750 6250 2250 6250 @@ -264,7 +352,7 @@ Wire Wire Line Wire Wire Line 13400 5850 13400 5750 Wire Wire Line - 14100 5750 14100 6050 + 14100 6050 14100 5750 Wire Wire Line 12750 5250 13500 5250 Connection ~ 14100 5250 @@ -272,7 +360,7 @@ Wire Wire Line 14100 5350 14100 5250 Connection ~ 13400 5250 Wire Wire Line - 13100 5350 13100 5250 + 13100 5250 13100 5350 Wire Wire Line 11450 3950 11450 4050 Wire Wire Line @@ -368,35 +456,21 @@ Wire Wire Line 13450 8900 13550 8900 Wire Wire Line 13550 8900 13550 9300 -Wire Wire Line - 7850 5050 7850 5150 Wire Wire Line 9800 4650 9800 4850 Wire Wire Line 9800 4850 10850 4850 Wire Wire Line - 9650 6350 8950 6350 + 8950 6250 8950 6600 Wire Wire Line - 8950 6350 8950 6600 + 8850 6150 9350 6150 Wire Wire Line - 8850 6250 9350 6250 -Wire Wire Line - 8850 6250 8850 6600 + 8850 6150 8850 6600 Wire Wire Line 9650 5450 9650 5150 Wire Wire Line 9650 5150 10850 5150 Connection ~ 9350 6050 -Wire Wire Line - 8150 6050 8050 6050 -Wire Wire Line - 8050 6050 8050 5650 -Wire Wire Line - 7300 4450 7700 4450 -Wire Wire Line - 8150 4750 7700 4750 -Wire Wire Line - 8450 4350 8450 4550 Connection ~ 9500 4150 Wire Wire Line 9350 4150 9500 4150 @@ -420,8 +494,6 @@ Wire Wire Line 2350 6150 2350 6250 Wire Wire Line 2250 5250 2250 5150 -Wire Wire Line - 7300 3250 7400 3250 Wire Wire Line 4150 3450 4150 3150 Wire Wire Line @@ -429,7 +501,7 @@ Wire Wire Line Wire Wire Line 6050 3750 5950 3750 Wire Wire Line - 7200 7200 7300 7200 + 7300 7200 7200 7200 Wire Wire Line 8750 7500 8750 7600 Wire Wire Line @@ -534,34 +606,6 @@ Wire Wire Line 9400 2950 9500 2950 Wire Wire Line 9500 2950 9500 4250 -Wire Wire Line - 8450 5050 8450 4950 -Wire Wire Line - 8450 4450 8650 4450 -Connection ~ 8450 4450 -Wire Wire Line - 8650 4450 8650 4150 -Wire Wire Line - 8650 4150 8750 4150 -Wire Wire Line - 8450 3850 8450 3950 -Wire Wire Line - 7700 4750 7700 4150 -Connection ~ 7700 4450 -Connection ~ 7100 5650 -Wire Wire Line - 7100 5350 7100 5950 -Connection ~ 7850 5650 -Wire Wire Line - 8050 5650 7850 5650 -Wire Wire Line - 7850 6250 7850 6150 -Wire Wire Line - 7850 5750 7850 5550 -Wire Wire Line - 7100 5950 7550 5950 -Wire Wire Line - 6700 5650 7100 5650 Wire Wire Line 8750 6050 9350 6050 Wire Wire Line @@ -571,14 +615,14 @@ Wire Wire Line Wire Wire Line 9400 6800 9300 6800 Wire Wire Line - 9350 6250 9350 5850 + 9350 6150 9350 5850 Wire Wire Line 9500 4650 9500 4950 Wire Wire Line 9500 4950 10850 4950 Wire Wire Line - 9650 6450 9650 5850 -Connection ~ 9650 6350 + 9650 6250 9650 5850 +Connection ~ 9650 6250 Wire Wire Line 9800 4250 9800 2250 Connection ~ 9800 2850 @@ -658,7 +702,7 @@ Wire Wire Line Wire Wire Line 12750 4850 15400 4850 Wire Wire Line - 13400 5250 13400 5350 + 13400 5350 13400 5250 Connection ~ 13100 5250 Wire Wire Line 14000 5250 14200 5250 @@ -755,23 +799,19 @@ Wire Wire Line Wire Wire Line 1950 6850 1950 6750 Wire Wire Line - 7000 4150 7100 4150 + 1500 9300 1100 9300 Wire Wire Line - 6400 5350 6500 5350 + 1500 9500 1100 9500 Wire Wire Line - 1500 9300 1250 9300 -Wire Wire Line - 1500 9500 1250 9500 -Wire Wire Line - 2700 9600 2900 9600 + 2700 9600 3100 9600 Wire Wire Line 1400 10000 1400 9900 Wire Wire Line 1400 9900 1500 9900 Wire Wire Line - 3850 9600 4250 9600 + 3900 9600 4250 9600 Wire Wire Line - 4250 9800 3850 9800 + 4250 9800 3900 9800 Wire Wire Line 5150 10000 5150 9500 Wire Wire Line @@ -799,17 +839,17 @@ Connection ~ 16000 8700 Wire Wire Line 16000 8700 15900 8700 Wire Wire Line - 1400 9700 1500 9700 + 1100 9700 1500 9700 Wire Wire Line 6600 1750 6600 2250 Wire Wire Line - 7000 2850 7400 2850 + 7100 2850 7400 2850 Wire Wire Line 8200 2850 8500 2850 Wire Wire Line - 6700 3450 7000 3450 + 6700 3450 7100 3450 Wire Wire Line - 7000 3450 7000 3350 + 7100 3450 7100 3350 Wire Wire Line 5950 3450 6050 3450 Wire Wire Line @@ -833,7 +873,7 @@ Wire Wire Line Wire Wire Line 6200 6650 6200 6750 Wire Wire Line - 7000 6800 7000 7250 + 6850 6800 6850 7250 Wire Wire Line 11950 8300 8950 8300 Wire Wire Line @@ -855,19 +895,413 @@ Wire Wire Line 2650 4650 3400 4650 Wire Wire Line 3400 4650 3400 3150 -Wire Wire Line - 9650 7550 9650 7650 -Wire Wire Line - 10600 2850 10600 2750 Wire Wire Line 9800 2250 9900 2250 Wire Wire Line - 3150 9300 2700 9300 + 3300 9300 2700 9300 Wire Wire Line 2700 9400 2800 9400 Wire Wire Line 2800 9400 2800 9300 Connection ~ 2800 9300 +Wire Wire Line + 8150 6050 8050 6050 +Wire Wire Line + 8050 6300 7750 6300 +Wire Wire Line + 7750 6300 7750 6200 +Wire Wire Line + 7750 5200 7750 5400 +Wire Wire Line + 7650 6200 7650 6400 +Wire Wire Line + 7650 6400 7200 6400 +Wire Wire Line + 7550 6300 7550 6200 +Wire Wire Line + 8750 4150 8650 4150 +Connection ~ 8650 4150 +Wire Wire Line + 9900 7050 9600 7050 +Connection ~ 9900 7050 +Wire Wire Line + 9600 7050 9600 8050 +Wire Wire Line + 9600 8050 10100 8050 +Wire Wire Line + 10100 8050 10100 7950 +Wire Wire Line + 9900 8150 9900 7950 +Wire Wire Line + 10100 7150 10100 7050 +Wire Wire Line + 10100 7050 10400 7050 +Wire Wire Line + 10500 2250 10600 2250 +Connection ~ 10600 2250 +Wire Wire Line + 7200 7200 7200 7500 +Wire Wire Line + 2700 9900 3100 9900 +Wire Wire Line + 7200 9800 7000 9800 +Wire Wire Line + 7000 9800 7000 9600 +Wire Wire Line + 6800 9500 6800 9700 +Connection ~ 6800 9600 +Wire Wire Line + 8250 9600 8250 9700 +Wire Wire Line + 8250 10200 8250 10100 +Wire Wire Line + 7200 8000 7200 7900 +Wire Wire Line + 11750 9300 11750 9200 +Wire Wire Line + 7300 4050 7300 3950 +Wire Wire Line + 11800 2450 11800 2350 +Wire Wire Line + 8650 3900 8650 5000 +Connection ~ 8650 4900 +Wire Wire Line + 8200 5400 8200 5300 +Wire Wire Line + 8200 5300 7550 5300 +Connection ~ 8050 5300 +Wire Wire Line + 10450 3050 10450 2950 +Wire Wire Line + 9600 7300 9450 7300 +Wire Wire Line + 9450 7300 9450 7400 +Connection ~ 9600 7300 +$Comp +L GND #PWR? +U 1 1 4FF0A59E +P 9450 7900 +F 0 "#PWR?" H 9450 7900 30 0001 C CNN +F 1 "GND" H 9450 7830 30 0001 C CNN + 1 9450 7900 + 1 0 0 -1 +$EndComp +$Comp +L C C? +U 1 1 4FF0A563 +P 9450 7600 +F 0 "C?" H 9500 7700 50 0000 L CNN +F 1 "100nF" H 9500 7500 50 0000 L CNN + 1 9450 7600 + -1 0 0 -1 +$EndComp +$Comp +L GND #PWR? +U 1 1 4FF0A55E +P 10450 3050 +F 0 "#PWR?" H 10450 3050 30 0001 C CNN +F 1 "GND" H 10450 2980 30 0001 C CNN + 1 10450 3050 + 1 0 0 -1 +$EndComp +$Comp +L C C? +U 1 1 4FF0A552 +P 10450 2750 +F 0 "C?" H 10500 2850 50 0000 L CNN +F 1 "100nF" H 10500 2650 50 0000 L CNN + 1 10450 2750 + -1 0 0 -1 +$EndComp +$Comp +L GND #PWR? +U 1 1 4FF0A549 +P 8200 5900 +F 0 "#PWR?" H 8200 5900 30 0001 C CNN +F 1 "GND" H 8200 5830 30 0001 C CNN + 1 8200 5900 + 1 0 0 -1 +$EndComp +$Comp +L C C? +U 1 1 4FF0A543 +P 8200 5600 +F 0 "C?" H 8250 5700 50 0000 L CNN +F 1 "100nF" H 8250 5500 50 0000 L CNN + 1 8200 5600 + 1 0 0 -1 +$EndComp +$Comp +L GND #PWR? +U 1 1 4FF0A53B +P 8650 5500 +F 0 "#PWR?" H 8650 5500 30 0001 C CNN +F 1 "GND" H 8650 5430 30 0001 C CNN + 1 8650 5500 + 1 0 0 -1 +$EndComp +$Comp +L C C? +U 1 1 4FF0A536 +P 8650 5200 +F 0 "C?" H 8700 5300 50 0000 L CNN +F 1 "100nF" H 8700 5100 50 0000 L CNN + 1 8650 5200 + 1 0 0 -1 +$EndComp +$Comp +L GND #PWR? +U 1 1 4FF0A51D +P 11800 2450 +F 0 "#PWR?" H 11800 2450 30 0001 C CNN +F 1 "GND" H 11800 2380 30 0001 C CNN + 1 11800 2450 + 1 0 0 -1 +$EndComp +$Comp +L C C? +U 1 1 4FF0A511 +P 11800 2150 +F 0 "C?" H 11850 2250 50 0000 L CNN +F 1 "100nF" H 11850 2050 50 0000 L CNN + 1 11800 2150 + 1 0 0 -1 +$EndComp +$Comp +L GND #PWR? +U 1 1 4FF0A50C +P 7300 4050 +F 0 "#PWR?" H 7300 4050 30 0001 C CNN +F 1 "GND" H 7300 3980 30 0001 C CNN + 1 7300 4050 + 1 0 0 -1 +$EndComp +$Comp +L C C? +U 1 1 4FF0A4DC +P 7300 3750 +F 0 "C?" H 7350 3850 50 0000 L CNN +F 1 "100nF" H 7350 3650 50 0000 L CNN + 1 7300 3750 + 1 0 0 -1 +$EndComp +$Comp +L GND #PWR? +U 1 1 4FF0A4BF +P 11750 9300 +F 0 "#PWR?" H 11750 9300 30 0001 C CNN +F 1 "GND" H 11750 9230 30 0001 C CNN + 1 11750 9300 + 1 0 0 -1 +$EndComp +$Comp +L C C? +U 1 1 4FF0A4B3 +P 11750 9000 +F 0 "C?" H 11800 9100 50 0000 L CNN +F 1 "100nF" H 11800 8900 50 0000 L CNN + 1 11750 9000 + 1 0 0 -1 +$EndComp +$Comp +L GND #PWR? +U 1 1 4FF0A4AE +P 7200 8000 +F 0 "#PWR?" H 7200 8000 30 0001 C CNN +F 1 "GND" H 7200 7930 30 0001 C CNN + 1 7200 8000 + 1 0 0 -1 +$EndComp +$Comp +L C C? +U 1 1 4FF0A494 +P 7200 7700 +F 0 "C?" H 7250 7800 50 0000 L CNN +F 1 "100nF" H 7250 7600 50 0000 L CNN + 1 7200 7700 + 1 0 0 -1 +$EndComp +$Comp +L GND #PWR? +U 1 1 4FF08E3E +P 8250 10200 +F 0 "#PWR?" H 8250 10200 30 0001 C CNN +F 1 "GND" H 8250 10130 30 0001 C CNN + 1 8250 10200 + 1 0 0 -1 +$EndComp +Text Label 8550 9600 2 40 ~ 0 +MIX_BIAS +$Comp +L C C? +U 1 1 4FF08E2E +P 8250 9900 +F 0 "C?" H 8300 10000 50 0000 L CNN +F 1 "1uF" H 8300 9800 50 0000 L CNN + 1 8250 9900 + 1 0 0 -1 +$EndComp +$Comp +L GND #PWR? +U 1 1 4FF08E28 +P 6800 10200 +F 0 "#PWR?" H 6800 10200 30 0001 C CNN +F 1 "GND" H 6800 10130 30 0001 C CNN + 1 6800 10200 + 1 0 0 -1 +$EndComp +$Comp +L VCC #PWR? +U 1 1 4FF08E20 +P 6800 9500 +F 0 "#PWR?" H 6800 9600 30 0001 C CNN +F 1 "VCC" H 6800 9600 30 0000 C CNN + 1 6800 9500 + 1 0 0 -1 +$EndComp +$Comp +L C C? +U 1 1 4FF08E0E +P 6800 9900 +F 0 "C?" H 6850 10000 50 0000 L CNN +F 1 "1uF" H 6850 9800 50 0000 L CNN + 1 6800 9900 + 1 0 0 -1 +$EndComp +$Comp +L GND #PWR? +U 1 1 4FF08E09 +P 7100 9700 +F 0 "#PWR?" H 7100 9700 30 0001 C CNN +F 1 "GND" H 7100 9630 30 0001 C CNN + 1 7100 9700 + 0 1 1 0 +$EndComp +$Comp +L NCP699 U? +U 1 1 4FF08E02 +P 7600 9700 +F 0 "U?" H 7600 9900 60 0000 C CNN +F 1 "NCP699" H 7600 9500 60 0000 C CNN +F 4 "ON Semiconductor" H 7600 9700 60 0001 C CNN "Manufacturer" +F 5 "NCP699SN15T1G" H 7600 9700 60 0001 C CNN "Part Number" +F 6 "IC REG LDO 150MA 1.5V 5TSOP" H 7600 9700 60 0001 C CNN "Description" + 1 7600 9700 + 1 0 0 -1 +$EndComp +$Comp +L DMC2400 U? +U 1 1 4FF07EB1 +P 11000 2600 +F 0 "U?" V 10950 2600 60 0000 C CNN +F 1 "DMN2400" V 11050 2600 60 0000 C CNN +F 4 "Diodes Inc." H 11000 2600 60 0001 C CNN "Manufacturer" +F 5 "DMN2400UV-7" H 11000 2600 60 0001 C CNN "Part Number" +F 6 "MOSFET 2N-CH 20V 1.33A SOT563" H 11000 2600 60 0001 C CNN "Description" + 1 11000 2600 + 0 -1 -1 0 +$EndComp +$Comp +L DMC2400 U? +U 1 1 4FF07E88 +P 7650 5800 +F 0 "U?" V 7600 5800 60 0000 C CNN +F 1 "DMC2400" V 7700 5800 60 0000 C CNN +F 4 "Diodes Inc." H 7650 5800 60 0001 C CNN "Manufacturer" +F 5 "DMC2400UV-7" H 7650 5800 60 0001 C CNN "Part Number" +F 6 "MOSFET N P CH 20V SOT563" H 7650 5800 60 0001 C CNN "Description" + 1 7650 5800 + 0 -1 -1 0 +$EndComp +Text Label 3100 9900 2 40 ~ 0 +!TX_BYPASS +Text Label 3100 9800 2 40 ~ 0 +TX_BYPASS +Text Label 1100 9800 0 40 ~ 0 +!RX_BYPASS +Text Label 1100 9700 0 40 ~ 0 +RX_BYPASS +Text Label 11450 8500 0 40 ~ 0 +MIX_BIAS +Text Label 7550 7400 2 40 ~ 0 +MIX_BIAS +Text Label 7650 3450 2 40 ~ 0 +MIX_BIAS +Text Label 11500 1650 0 40 ~ 0 +MIX_BIAS +$Comp +L GND #PWR? +U 1 1 4FF07B92 +P 10900 3200 +F 0 "#PWR?" H 10900 3200 30 0001 C CNN +F 1 "GND" H 10900 3130 30 0001 C CNN + 1 10900 3200 + 1 0 0 -1 +$EndComp +Text Label 11400 2100 2 40 ~ 0 +MIX_BIAS +Text Label 11400 3200 2 40 ~ 0 +RX_BYPASS +Text Label 11400 2000 2 40 ~ 0 +!RX_BYPASS +Text Label 10400 6950 2 40 ~ 0 +!TX_BYPASS +Text Label 10400 8150 2 40 ~ 0 +TX_BYPASS +Text Label 10400 7050 2 40 ~ 0 +MIX_BIAS +$Comp +L GND #PWR? +U 1 1 4FF07A67 +P 9900 8150 +F 0 "#PWR?" H 9900 8150 30 0001 C CNN +F 1 "GND" H 9900 8080 30 0001 C CNN + 1 9900 8150 + 1 0 0 -1 +$EndComp +$Comp +L DMC2400 U? +U 1 1 4FF07A29 +P 10000 7550 +F 0 "U?" V 9950 7550 60 0000 C CNN +F 1 "DMN2400" V 10050 7550 60 0000 C CNN +F 4 "Diodes Inc." H 10000 7550 60 0001 C CNN "Manufacturer" +F 5 "DMN2400UV-7" H 10000 7550 60 0001 C CNN "Part Number" +F 6 "MOSFET 2N-CH 20V 1.33A SOT563" H 10000 7550 60 0001 C CNN "Description" + 1 10000 7550 + 0 -1 -1 0 +$EndComp +Text Label 7800 5000 0 40 ~ 0 +!RX_BYPASS +$Comp +L VCC #PWR? +U 1 1 4FF07993 +P 8350 3800 +F 0 "#PWR?" H 8350 3900 30 0001 C CNN +F 1 "VCC" H 8350 3900 30 0000 C CNN + 1 8350 3800 + 1 0 0 -1 +$EndComp +$Comp +L DMC2400 U? +U 1 1 4FF07992 +P 8250 4400 +F 0 "U?" V 8200 4400 60 0000 C CNN +F 1 "DMC2400" V 8300 4400 60 0000 C CNN +F 4 "Diodes Inc." H 8250 4400 60 0001 C CNN "Manufacturer" +F 5 "DMC2400UV-7" H 8250 4400 60 0001 C CNN "Part Number" +F 6 "MOSFET N P CH 20V SOT563" H 8250 4400 60 0001 C CNN "Description" + 1 8250 4400 + 0 -1 -1 0 +$EndComp +Text Label 7800 4900 0 40 ~ 0 +MIX_BIAS +Text Label 7800 3800 0 40 ~ 0 +!RX_BYPASS +Text Label 7200 5200 0 40 ~ 0 +!TX_BYPASS +Text Label 7200 6300 0 40 ~ 0 +MIX_BIAS $Comp L GND #PWR? U 1 1 4FEF438B @@ -882,81 +1316,25 @@ switch control logic ensures valid switch configurations $Comp L GND #PWR? U 1 1 4FEBDCB9 -P 3150 9900 -F 0 "#PWR?" H 3150 9900 30 0001 C CNN -F 1 "GND" H 3150 9830 30 0001 C CNN - 1 3150 9900 +P 3300 9900 +F 0 "#PWR?" H 3300 9900 30 0001 C CNN +F 1 "GND" H 3300 9830 30 0001 C CNN + 1 3300 9900 1 0 0 -1 $EndComp $Comp L C C? U 1 1 4FEBDCA5 -P 3150 9600 -F 0 "C?" H 3200 9700 50 0000 L CNN -F 1 "100nF" H 3200 9500 50 0000 L CNN - 1 3150 9600 +P 3300 9600 +F 0 "C?" H 3350 9700 50 0000 L CNN +F 1 "100nF" H 3350 9500 50 0000 L CNN + 1 3300 9600 1 0 0 -1 $EndComp -$Comp -L GND #PWR? -U 1 1 4FE2B858 -P 11850 8500 -F 0 "#PWR?" H 11850 8500 30 0001 C CNN -F 1 "GND" H 11850 8430 30 0001 C CNN - 1 11850 8500 - 0 1 1 0 -$EndComp -$Comp -L GND #PWR9 -U 1 1 4FE0F3BF -P 11850 1650 -F 0 "#PWR9" H 11850 1650 30 0001 C CNN -F 1 "GND" H 11850 1580 30 0001 C CNN - 1 11850 1650 - 0 1 1 0 -$EndComp -$Comp -L VCC #PWR? -U 1 1 4FEBD54F -P 11000 2450 -F 0 "#PWR?" H 11000 2550 30 0001 C CNN -F 1 "VCC" H 11000 2550 30 0000 C CNN - 1 11000 2450 - 1 0 0 -1 -$EndComp -$Comp -L MOSFET_N Q? -U 1 1 4FEBD52A -P 10700 2550 -F 0 "Q?" H 10710 2720 60 0000 R CNN -F 1 "MOSFET_N" H 10710 2400 60 0000 R CNN -F 4 "DMN2300UFB4" H 10700 2550 60 0001 C CNN "Part Number" - 1 10700 2550 - -1 0 0 -1 -$EndComp -$Comp -L VCC #PWR? -U 1 1 4FEBD516 -P 10050 7250 -F 0 "#PWR?" H 10050 7350 30 0001 C CNN -F 1 "VCC" H 10050 7350 30 0000 C CNN - 1 10050 7250 - 1 0 0 -1 -$EndComp -$Comp -L MOSFET_N Q? -U 1 1 4FEBD4FB -P 9750 7350 -F 0 "Q?" H 9760 7520 60 0000 R CNN -F 1 "MOSFET_N" H 9760 7200 60 0000 R CNN -F 4 "DMN2300UFB4" H 9750 7350 60 0001 C CNN "Part Number" - 1 9750 7350 - -1 0 0 -1 -$EndComp -Text Notes 7400 7750 0 40 ~ 0 -DC connection to GND required on IF1, IF2? -Text Notes 7700 3450 0 40 ~ 0 -DC connection to GND required on RF1, RF2? +Text Notes 7950 7700 0 40 ~ 0 +DC connection to MIX_BIAS\nrequired on IF1, IF2? +Text Notes 8200 3400 0 40 ~ 0 +DC connection to MIX_BIAS\nrequired on RF1, RF2? NoConn ~ 8100 7000 $Comp L BALUN T2 @@ -972,7 +1350,7 @@ F 6 "Ultra Low Profile 0805 Balun 50 to 100 Balanced" H 7800 3050 60 0001 C CNN $EndComp NoConn ~ 8200 3050 Text Notes 11850 1150 0 40 ~ 0 -balun here may not not be needed if\ndirect connection to MAX2837 is made +balun here may not be needed if\ndirect connection to MAX2837 is made Text Notes 3450 4550 0 40 ~ 0 amplifier will likely\nend up here Text Notes 2450 6900 0 40 ~ 0 @@ -1044,10 +1422,10 @@ $EndComp $Comp L C C? U 1 1 4FE2B83E -P 7000 7450 -F 0 "C?" H 7050 7550 50 0000 L CNN -F 1 "10nF" H 7050 7350 50 0000 L CNN - 1 7000 7450 +P 6850 7450 +F 0 "C?" H 6900 7550 50 0000 L CNN +F 1 "10nF" H 6900 7350 50 0000 L CNN + 1 6850 7450 -1 0 0 1 $EndComp $Comp @@ -1139,10 +1517,10 @@ $EndComp $Comp L C C? U 1 1 4FE2B5DE -P 7000 3150 -F 0 "C?" H 7050 3250 50 0000 L CNN -F 1 "10nF" H 7050 3050 50 0000 L CNN - 1 7000 3150 +P 7100 3150 +F 0 "C?" H 7150 3250 50 0000 L CNN +F 1 "10nF" H 7150 3050 50 0000 L CNN + 1 7100 3150 -1 0 0 1 $EndComp $Comp @@ -1160,24 +1538,6 @@ $EndComp NoConn ~ 10850 4750 NoConn ~ 10850 4650 $Comp -L VCC #PWR? -U 1 1 4FE23D21 -P 1400 9700 -F 0 "#PWR?" H 1400 9800 30 0001 C CNN -F 1 "VCC" H 1400 9800 30 0000 C CNN - 1 1400 9700 - 0 -1 -1 0 -$EndComp -$Comp -L VCC #PWR? -U 1 1 4FE23D1E -P 2800 9800 -F 0 "#PWR?" H 2800 9900 30 0001 C CNN -F 1 "VCC" H 2800 9900 30 0000 C CNN - 1 2800 9800 - 0 1 1 0 -$EndComp -$Comp L VCC #PWR76 U 1 1 4FE104E0 P 16000 8600 @@ -1213,16 +1573,16 @@ F 1 "GND" H 5150 9930 30 0001 C CNN 1 5150 10000 1 0 0 -1 $EndComp -Text Label 3850 9900 0 40 ~ 0 +Text Label 3900 9900 0 40 ~ 0 SWD1 -Text Label 3850 9800 0 40 ~ 0 +Text Label 3900 9800 0 40 ~ 0 SWTX1 -Text Label 3850 9700 0 40 ~ 0 +Text Label 3900 9700 0 40 ~ 0 SWRX1 -Text Label 3850 9600 0 40 ~ 0 -!TX_BYPASS -Text Label 3850 9500 0 40 ~ 0 -!RX_BYPASS +Text Label 3900 9600 0 40 ~ 0 +TX_BYPASS +Text Label 3900 9500 0 40 ~ 0 +RX_BYPASS $Comp L CONN_5X2 P8 U 1 1 4FE10458 @@ -1232,8 +1592,6 @@ F 1 "SWITCH_CTRL" V 4650 9700 50 0000 C CNN 1 4650 9700 1 0 0 -1 $EndComp -NoConn ~ 1500 9800 -NoConn ~ 2700 9900 NoConn ~ 2700 9500 $Comp L GND #PWR84 @@ -1256,23 +1614,23 @@ $EndComp $Comp L VCC #PWR81 U 1 1 4FE10413 -P 3150 9200 -F 0 "#PWR81" H 3150 9300 30 0001 C CNN -F 1 "VCC" H 3150 9300 30 0000 C CNN - 1 3150 9200 +P 3300 9200 +F 0 "#PWR81" H 3300 9300 30 0001 C CNN +F 1 "VCC" H 3300 9300 30 0000 C CNN + 1 3300 9200 1 0 0 -1 $EndComp -Text Label 2900 9700 2 40 ~ 0 +Text Label 3100 9700 2 40 ~ 0 SWD2 -Text Label 2900 9600 2 40 ~ 0 +Text Label 3100 9600 2 40 ~ 0 SWD1 -Text Label 1250 9600 0 40 ~ 0 +Text Label 1100 9600 0 40 ~ 0 SWRX2 -Text Label 1250 9500 0 40 ~ 0 +Text Label 1100 9500 0 40 ~ 0 SWRX1 -Text Label 1250 9400 0 40 ~ 0 +Text Label 1100 9400 0 40 ~ 0 SWTX2 -Text Label 1250 9300 0 40 ~ 0 +Text Label 1100 9300 0 40 ~ 0 SWTX1 $Comp L GSG-74HC04 U16 @@ -1288,50 +1646,14 @@ F 6 "IC HEX INVERTERS 14-QFN" H 2100 9600 60 0001 C CNN "Description" $EndComp Text Notes 14900 6650 0 40 ~ 0 ferrite beads needed? -Text Notes 5800 4900 0 40 ~ 0 -Bypass control signals (active low) allow the LO to\nbe bypassed (essentially a zero Hz LO). The LO\nshould be switched off when bypass is enabled. +Text Notes 5450 5000 0 40 ~ 0 +Bypass control signals allow the LO to be\nbypassed (essentially a zero Hz LO). The LO\nshould be switched off when bypass is enabled. Text Notes 11850 8000 0 40 ~ 0 -balun here may not not be needed if\ndirect connection to MAX2837 is made +balun here may not be needed if\ndirect connection to MAX2837 is made Text Notes 1600 3100 0 40 ~ 0 antenna diversity switches Text Notes 13600 5550 0 40 ~ 0 loop filter\n(1.6 MHz) -$Comp -L VCC #PWR47 -U 1 1 4FE1013E -P 6400 5350 -F 0 "#PWR47" H 6400 5450 30 0001 C CNN -F 1 "VCC" H 6400 5450 30 0000 C CNN - 1 6400 5350 - 0 -1 -1 0 -$EndComp -$Comp -L R R8 -U 1 1 4FE1013B -P 6750 5350 -F 0 "R8" V 6830 5350 50 0000 C CNN -F 1 "10k" V 6750 5350 50 0000 C CNN - 1 6750 5350 - 0 1 1 0 -$EndComp -$Comp -L VCC #PWR35 -U 1 1 4FE10133 -P 7000 4150 -F 0 "#PWR35" H 7000 4250 30 0001 C CNN -F 1 "VCC" H 7000 4250 30 0000 C CNN - 1 7000 4150 - 0 -1 -1 0 -$EndComp -$Comp -L R R1 -U 1 1 4FE1012B -P 7350 4150 -F 0 "R1" V 7430 4150 50 0000 C CNN -F 1 "10k" V 7350 4150 50 0000 C CNN - 1 7350 4150 - 0 1 1 0 -$EndComp Text Label 1750 6250 0 40 ~ 0 SWD1 $Comp @@ -2057,28 +2379,19 @@ $EndComp $Comp L VCC #PWR42 U 1 1 4FE0F129 -P 7850 5050 -F 0 "#PWR42" H 7850 5150 30 0001 C CNN -F 1 "VCC" H 7850 5150 30 0000 C CNN - 1 7850 5050 +P 7750 5200 +F 0 "#PWR42" H 7750 5300 30 0001 C CNN +F 1 "VCC" H 7750 5300 30 0000 C CNN + 1 7750 5200 1 0 0 -1 $EndComp $Comp L INDUCTOR L6 U 1 1 4FE0EFB0 -P 9650 6750 -F 0 "L6" V 9600 6750 40 0000 C CNN -F 1 "INDUCTOR" V 9750 6750 40 0000 C CNN - 1 9650 6750 - 1 0 0 -1 -$EndComp -$Comp -L GND #PWR66 -U 1 1 4FE0EFAF -P 9650 7650 -F 0 "#PWR66" H 9650 7650 30 0001 C CNN -F 1 "GND" H 9650 7580 30 0001 C CNN - 1 9650 7650 +P 9900 6650 +F 0 "L6" V 9850 6650 40 0000 C CNN +F 1 "4n7" V 10000 6650 40 0000 C CNN + 1 9900 6650 1 0 0 -1 $EndComp $Comp @@ -2113,94 +2426,18 @@ L INDUCTOR L5 U 1 1 4FE0EEDD P 8450 6050 F 0 "L5" V 8400 6050 40 0000 C CNN -F 1 "INDUCTOR" V 8550 6050 40 0000 C CNN +F 1 "4n7" V 8550 6050 40 0000 C CNN 1 8450 6050 0 1 1 0 $EndComp -$Comp -L MOSFET_P Q3 -U 1 1 4FE0EEDC -P 7750 5350 -F 0 "Q3" H 7750 5540 60 0000 R CNN -F 1 "MOSFET_P" H 7750 5170 60 0000 R CNN - 1 7750 5350 - 1 0 0 1 -$EndComp -$Comp -L MOSFET_N Q4 -U 1 1 4FE0EEDB -P 7750 5950 -F 0 "Q4" H 7760 6120 60 0000 R CNN -F 1 "MOSFET_N" H 7760 5800 60 0000 R CNN -F 4 "DMN2300UFB4" H 7750 5950 60 0001 C CNN "Part Number" - 1 7750 5950 - 1 0 0 -1 -$EndComp -$Comp -L GND #PWR57 -U 1 1 4FE0EEDA -P 7850 6250 -F 0 "#PWR57" H 7850 6250 30 0001 C CNN -F 1 "GND" H 7850 6180 30 0001 C CNN - 1 7850 6250 - 1 0 0 -1 -$EndComp -Text Label 6700 5650 0 40 ~ 0 +Text Label 7200 6400 0 40 ~ 0 !TX_BYPASS -Text Label 7300 4450 0 40 ~ 0 -!RX_BYPASS -$Comp -L VCC #PWR27 -U 1 1 4FE0EE44 -P 8450 3850 -F 0 "#PWR27" H 8450 3950 30 0001 C CNN -F 1 "VCC" H 8450 3950 30 0000 C CNN - 1 8450 3850 - 1 0 0 -1 -$EndComp -$Comp -L GND #PWR43 -U 1 1 4FE0EE26 -P 8450 5050 -F 0 "#PWR43" H 8450 5050 30 0001 C CNN -F 1 "GND" H 8450 4980 30 0001 C CNN - 1 8450 5050 - 1 0 0 -1 -$EndComp -$Comp -L MOSFET_N Q2 -U 1 1 4FE0EE1A -P 8350 4750 -F 0 "Q2" H 8360 4920 60 0000 R CNN -F 1 "MOSFET_N" H 8360 4600 60 0000 R CNN -F 4 "DMN2300UFB4" H 8350 4750 60 0001 C CNN "Part Number" - 1 8350 4750 - 1 0 0 -1 -$EndComp -$Comp -L MOSFET_P Q1 -U 1 1 4FE0EE12 -P 8350 4150 -F 0 "Q1" H 8350 4340 60 0000 R CNN -F 1 "MOSFET_P" H 8350 3970 60 0000 R CNN - 1 8350 4150 - 1 0 0 1 -$EndComp -$Comp -L GND #PWR16 -U 1 1 4FE0EDCF -P 10600 2850 -F 0 "#PWR16" H 10600 2850 30 0001 C CNN -F 1 "GND" H 10600 2780 30 0001 C CNN - 1 10600 2850 - 1 0 0 -1 -$EndComp $Comp L INDUCTOR L3 U 1 1 4FE0EDC7 P 10200 2250 F 0 "L3" V 10150 2250 40 0000 C CNN -F 1 "INDUCTOR" V 10300 2250 40 0000 C CNN +F 1 "4n7" V 10300 2250 40 0000 C CNN 1 10200 2250 0 1 1 0 $EndComp @@ -2209,7 +2446,7 @@ L INDUCTOR L4 U 1 1 4FE0EDBE P 9050 4150 F 0 "L4" V 9000 4150 40 0000 C CNN -F 1 "INDUCTOR" V 9150 4150 40 0000 C CNN +F 1 "4n7" V 9150 4150 40 0000 C CNN 1 9050 4150 0 1 1 0 $EndComp @@ -2340,15 +2577,6 @@ F 1 "GND" H 4750 1680 30 0001 C CNN 0 1 1 0 $EndComp $Comp -L GND #PWR13 -U 1 1 4FE0E7A2 -P 7300 3250 -F 0 "#PWR13" H 7300 3250 30 0001 C CNN -F 1 "GND" H 7300 3180 30 0001 C CNN - 1 7300 3250 - 0 1 1 0 -$EndComp -$Comp L GND #PWR25 U 1 1 4FE0E783 P 4650 3750 @@ -2367,15 +2595,6 @@ F 1 "GND" H 6050 3680 30 0001 C CNN 0 -1 -1 0 $EndComp $Comp -L GND #PWR64 -U 1 1 4FE0E746 -P 7200 7200 -F 0 "#PWR64" H 7200 7200 30 0001 C CNN -F 1 "GND" H 7200 7130 30 0001 C CNN - 1 7200 7200 - 0 1 1 0 -$EndComp -$Comp L GND #PWR62 U 1 1 4FE0E743 P 5350 6800 diff --git a/hardware/kicad/hackrf.dcm b/hardware/kicad/hackrf.dcm index 51176511..5f01b207 100644 --- a/hardware/kicad/hackrf.dcm +++ b/hardware/kicad/hackrf.dcm @@ -1,4 +1,4 @@ -EESchema-DOCLIB Version 2.0 Date: Thu Jun 21 18:14:36 2012 +EESchema-DOCLIB Version 2.0 Date: Sun Jul 1 11:50:49 2012 # $CMP GSG-DIODE-TVS-BI D Diode zener diff --git a/hardware/kicad/hackrf.lib b/hardware/kicad/hackrf.lib index 45afdfb8..05c60d06 100644 --- a/hardware/kicad/hackrf.lib +++ b/hardware/kicad/hackrf.lib @@ -1,4 +1,4 @@ -EESchema-LIBRARY Version 2.3 Date: Thu Jun 21 18:14:36 2012 +EESchema-LIBRARY Version 2.3 Date: Sun Jul 1 11:50:49 2012 #encoding utf-8 # # BALUN @@ -120,6 +120,22 @@ X P29 29 -400 -650 300 R 60 30 1 1 P I ENDDRAW ENDDEF # +# DMC2400 +# +DEF DMC2400 U 0 40 Y Y 1 F N +F0 "U" -50 0 60 V V C CNN +F1 "DMC2400" 50 0 60 V V C CNN +DRAW +S -250 250 250 -250 0 1 0 N +X S1 1 -400 100 150 R 50 50 1 1 B +X G1 2 -400 0 150 R 50 50 1 1 I +X D2 3 -400 -100 150 R 50 50 1 1 B +X S2 4 400 -100 150 L 50 50 1 1 B +X G2 5 400 0 150 L 50 50 1 1 I +X D1 6 400 100 150 L 50 50 1 1 B +ENDDRAW +ENDDEF +# # FIL-DEA # DEF FIL-DEA U 0 40 Y Y 1 F N @@ -662,6 +678,21 @@ X VDD 39 350 1200 300 D 50 50 1 1 W ENDDRAW ENDDEF # +# NCP699 +# +DEF NCP699 U 0 40 Y Y 1 F N +F0 "U" 0 200 60 H V C CNN +F1 "NCP699" 0 -200 60 H V C CNN +DRAW +S -250 250 250 -250 0 1 0 N +X VIN 1 -400 100 150 R 50 50 1 1 W +X GND 2 -400 0 150 R 50 50 1 1 W +X EN 3 -400 -100 150 R 50 50 1 1 I +X NC 4 400 -100 150 L 50 50 1 1 N +X VOUT 5 400 100 150 L 50 50 1 1 w +ENDDRAW +ENDDEF +# # PE4140 # DEF PE4140 U 0 40 Y Y 1 F N From c641f36136203a1b1e0d7a69a25f0b076b6ff394 Mon Sep 17 00:00:00 2001 From: Michael Ossmann Date: Sun, 1 Jul 2012 14:26:47 -0600 Subject: [PATCH 15/16] reference clock divider --- hardware/bubblegum/bubblegum-cache.lib | 2 +- hardware/bubblegum/bubblegum.sch | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/hardware/bubblegum/bubblegum-cache.lib b/hardware/bubblegum/bubblegum-cache.lib index f215ba74..2003fb70 100644 --- a/hardware/bubblegum/bubblegum-cache.lib +++ b/hardware/bubblegum/bubblegum-cache.lib @@ -1,4 +1,4 @@ -EESchema-LIBRARY Version 2.3 Date: Sun Jul 1 13:58:35 2012 +EESchema-LIBRARY Version 2.3 Date: Sun Jul 1 14:26:11 2012 #encoding utf-8 # # BALUN diff --git a/hardware/bubblegum/bubblegum.sch b/hardware/bubblegum/bubblegum.sch index 8b26151b..be55d961 100644 --- a/hardware/bubblegum/bubblegum.sch +++ b/hardware/bubblegum/bubblegum.sch @@ -1,4 +1,4 @@ -EESchema Schematic File Version 2 date Sun Jul 1 13:58:34 2012 +EESchema Schematic File Version 2 date Sun Jul 1 14:26:11 2012 LIBS:power LIBS:device LIBS:transistors @@ -1839,7 +1839,7 @@ L C C28 U 1 1 4FE0FB36 P 15300 5150 F 0 "C28" H 15350 5250 50 0000 L CNN -F 1 "C" H 15350 5050 50 0000 L CNN +F 1 "DNP" H 15350 5050 50 0000 L CNN 1 15300 5150 -1 0 0 1 $EndComp @@ -1931,7 +1931,7 @@ L C C27 U 1 1 4FE0F7D1 P 15600 4850 F 0 "C27" H 15650 4950 50 0000 L CNN -F 1 "C" H 15650 4750 50 0000 L CNN +F 1 "22pF" H 15650 4750 50 0000 L CNN 1 15600 4850 0 1 1 0 $EndComp From 130a15df3739a699f306ebc2c646422d1b27cd0d Mon Sep 17 00:00:00 2001 From: Michael Ossmann Date: Sun, 1 Jul 2012 15:21:49 -0600 Subject: [PATCH 16/16] renamed switch signals - hopefully clearer --- hardware/bubblegum/bubblegum-cache.lib | 2 +- hardware/bubblegum/bubblegum.sch | 420 +++++++++++++++++++------ 2 files changed, 331 insertions(+), 91 deletions(-) diff --git a/hardware/bubblegum/bubblegum-cache.lib b/hardware/bubblegum/bubblegum-cache.lib index 2003fb70..85c780d9 100644 --- a/hardware/bubblegum/bubblegum-cache.lib +++ b/hardware/bubblegum/bubblegum-cache.lib @@ -1,4 +1,4 @@ -EESchema-LIBRARY Version 2.3 Date: Sun Jul 1 14:26:11 2012 +EESchema-LIBRARY Version 2.3 Date: Sun Jul 1 15:21:04 2012 #encoding utf-8 # # BALUN diff --git a/hardware/bubblegum/bubblegum.sch b/hardware/bubblegum/bubblegum.sch index be55d961..779eefb2 100644 --- a/hardware/bubblegum/bubblegum.sch +++ b/hardware/bubblegum/bubblegum.sch @@ -1,4 +1,4 @@ -EESchema Schematic File Version 2 date Sun Jul 1 14:26:11 2012 +EESchema Schematic File Version 2 date Sun Jul 1 15:21:04 2012 LIBS:power LIBS:device LIBS:transistors @@ -50,7 +50,9 @@ Wire Wire Line Wire Wire Line 9900 6350 9900 6250 Wire Wire Line - 9900 6250 8950 6250 + 9900 6250 9650 6250 +Wire Wire Line + 9650 6250 8950 6250 Connection ~ 10600 2450 Wire Wire Line 10600 2450 10450 2450 @@ -74,18 +76,24 @@ Wire Wire Line 7550 7400 7200 7400 Connection ~ 8250 9600 Wire Wire Line - 8550 9600 8000 9600 + 8550 9600 8250 9600 +Wire Wire Line + 8250 9600 8000 9600 Wire Wire Line 6800 10200 6800 10100 Connection ~ 7000 9600 Wire Wire Line - 7200 9600 6800 9600 + 7200 9600 7000 9600 +Wire Wire Line + 7000 9600 6800 9600 Wire Wire Line 7100 9700 7200 9700 Wire Wire Line 1500 9800 1100 9800 Wire Wire Line - 7300 3550 7300 3250 + 7300 3550 7300 3450 +Wire Wire Line + 7300 3450 7300 3250 Wire Wire Line 7300 3250 7400 3250 Wire Wire Line @@ -99,7 +107,11 @@ Wire Wire Line Wire Wire Line 11100 3100 10600 3100 Wire Wire Line - 10600 3100 10600 2100 + 10600 3100 10600 2450 +Wire Wire Line + 10600 2450 10600 2250 +Wire Wire Line + 10600 2250 10600 2100 Wire Wire Line 10600 2100 10900 2100 Wire Wire Line @@ -121,7 +133,9 @@ Wire Wire Line Wire Wire Line 10000 8150 10000 7950 Wire Wire Line - 9900 6950 9900 7150 + 9900 6950 9900 7050 +Wire Wire Line + 9900 7050 9900 7150 Wire Wire Line 8150 4800 8150 4900 Wire Wire Line @@ -152,7 +166,9 @@ Wire Wire Line 7200 6300 7550 6300 Connection ~ 8050 6050 Wire Wire Line - 8050 5300 8050 6300 + 8050 5300 8050 6050 +Wire Wire Line + 8050 6050 8050 6300 Wire Wire Line 7550 5400 7550 5300 Connection ~ 13600 6050 @@ -160,20 +176,28 @@ Wire Wire Line 13600 6050 13600 6300 Connection ~ 3300 9300 Wire Wire Line - 3300 9200 3300 9400 + 3300 9200 3300 9300 +Wire Wire Line + 3300 9300 3300 9400 Wire Wire Line 3300 9900 3300 9800 Wire Wire Line - 11950 8500 11450 8500 + 11950 8500 11750 8500 Wire Wire Line - 11950 1650 11500 1650 + 11750 8500 11450 8500 +Wire Wire Line + 11950 1650 11800 1650 +Wire Wire Line + 11800 1650 11500 1650 Wire Wire Line 6900 1950 6900 2050 Connection ~ 6300 8050 Wire Wire Line 6550 8050 6300 8050 Wire Wire Line - 6300 7650 6300 8150 + 6300 7650 6300 8050 +Wire Wire Line + 6300 8050 6300 8150 Wire Wire Line 6400 5900 6400 6000 Connection ~ 6600 3550 @@ -246,7 +270,15 @@ Wire Wire Line Wire Wire Line 15100 8700 15000 8700 Wire Wire Line - 15000 8700 15000 9200 + 15000 8700 15000 8800 +Wire Wire Line + 15000 8800 15000 8900 +Wire Wire Line + 15000 8900 15000 9000 +Wire Wire Line + 15000 9000 15000 9100 +Wire Wire Line + 15000 9100 15000 9200 Connection ~ 5150 9800 Wire Wire Line 5150 9800 5050 9800 @@ -269,28 +301,36 @@ Wire Wire Line 1100 9400 1500 9400 Connection ~ 1950 6250 Wire Wire Line - 1750 6250 2250 6250 + 1700 6250 1950 6250 +Wire Wire Line + 1950 6250 2250 6250 Wire Wire Line 1950 6350 1950 6250 Wire Wire Line 2250 6250 2250 6150 Connection ~ 2050 4900 Wire Wire Line - 1850 4900 2050 4900 + 1800 4900 2050 4900 Connection ~ 2800 4750 Wire Wire Line - 3000 4750 2550 4750 + 3050 4750 2800 4750 +Wire Wire Line + 2800 4750 2550 4750 Wire Wire Line 2800 4850 2800 4750 Wire Wire Line 2550 4750 2550 4550 Connection ~ 2650 3550 Wire Wire Line - 2650 3650 2650 3450 + 2650 3650 2650 3550 Wire Wire Line - 2850 3550 2650 3550 + 2650 3550 2650 3450 Wire Wire Line - 4150 2250 4150 1950 + 2900 3550 2650 3550 +Wire Wire Line + 4150 2250 4150 2050 +Wire Wire Line + 4150 2050 4150 1950 Connection ~ 4050 3500 Wire Wire Line 3800 3500 4050 3500 @@ -329,32 +369,52 @@ Wire Wire Line Wire Wire Line 14900 3400 14700 3400 Wire Wire Line - 13900 3100 11650 3100 + 13900 3100 13400 3100 +Wire Wire Line + 13400 3100 11650 3100 Wire Wire Line 11650 3100 11650 4050 Wire Wire Line - 13900 3300 11850 3300 + 13900 3300 13600 3300 +Wire Wire Line + 13600 3300 11850 3300 Wire Wire Line 11850 3300 11850 4050 Wire Wire Line 13900 3500 13800 3500 Wire Wire Line - 13800 3500 13800 4650 + 13800 3500 13800 3650 +Wire Wire Line + 13800 3650 13800 4650 Wire Wire Line 13800 4650 12750 4650 Wire Wire Line 13500 5850 13400 5850 Connection ~ 12850 6050 Wire Wire Line - 12150 6050 14800 6050 + 12150 6050 12850 6050 +Wire Wire Line + 12850 6050 13100 6050 +Wire Wire Line + 13100 6050 13600 6050 +Wire Wire Line + 13600 6050 14100 6050 +Wire Wire Line + 14100 6050 14800 6050 Wire Wire Line 12150 6050 12150 5950 Wire Wire Line 13400 5850 13400 5750 Wire Wire Line - 14100 6050 14100 5750 + 14100 6050 14100 5850 Wire Wire Line - 12750 5250 13500 5250 + 14100 5850 14100 5750 +Wire Wire Line + 12750 5250 13100 5250 +Wire Wire Line + 13100 5250 13400 5250 +Wire Wire Line + 13400 5250 13500 5250 Connection ~ 14100 5250 Wire Wire Line 14100 5350 14100 5250 @@ -369,7 +429,37 @@ Wire Wire Line 11950 6050 11950 5950 Connection ~ 16000 7250 Wire Wire Line - 16300 7250 11700 7250 + 16300 7250 16000 7250 +Wire Wire Line + 16000 7250 15700 7250 +Wire Wire Line + 15700 7250 15400 7250 +Wire Wire Line + 15400 7250 15100 7250 +Wire Wire Line + 15100 7250 14800 7250 +Wire Wire Line + 14800 7250 14500 7250 +Wire Wire Line + 14500 7250 14200 7250 +Wire Wire Line + 14200 7250 13900 7250 +Wire Wire Line + 13900 7250 13600 7250 +Wire Wire Line + 13600 7250 13300 7250 +Wire Wire Line + 13300 7250 13000 7250 +Wire Wire Line + 13000 7250 12700 7250 +Wire Wire Line + 12700 7250 12400 7250 +Wire Wire Line + 12400 7250 12100 7250 +Wire Wire Line + 12100 7250 11800 7250 +Wire Wire Line + 11800 7250 11700 7250 Connection ~ 15100 7250 Connection ~ 14500 7250 Connection ~ 13900 7250 @@ -378,7 +468,37 @@ Connection ~ 12700 7250 Connection ~ 12100 7250 Connection ~ 16000 6850 Wire Wire Line - 16300 6850 11700 6850 + 16300 6850 16000 6850 +Wire Wire Line + 16000 6850 15700 6850 +Wire Wire Line + 15700 6850 15400 6850 +Wire Wire Line + 15400 6850 15100 6850 +Wire Wire Line + 15100 6850 14800 6850 +Wire Wire Line + 14800 6850 14500 6850 +Wire Wire Line + 14500 6850 14200 6850 +Wire Wire Line + 14200 6850 13900 6850 +Wire Wire Line + 13900 6850 13600 6850 +Wire Wire Line + 13600 6850 13300 6850 +Wire Wire Line + 13300 6850 13000 6850 +Wire Wire Line + 13000 6850 12700 6850 +Wire Wire Line + 12700 6850 12400 6850 +Wire Wire Line + 12400 6850 12100 6850 +Wire Wire Line + 12100 6850 11800 6850 +Wire Wire Line + 11800 6850 11700 6850 Connection ~ 15400 6850 Connection ~ 14800 6850 Connection ~ 14200 6850 @@ -396,7 +516,15 @@ Wire Wire Line 11550 3950 11550 4050 Connection ~ 10150 3950 Wire Wire Line - 10000 3950 10900 3950 + 10000 3950 10150 3950 +Wire Wire Line + 10150 3950 10300 3950 +Wire Wire Line + 10300 3950 10450 3950 +Wire Wire Line + 10450 3950 10600 3950 +Wire Wire Line + 10600 3950 10900 3950 Wire Wire Line 10000 3950 10000 3850 Wire Wire Line @@ -408,7 +536,9 @@ Connection ~ 10300 6650 Wire Wire Line 10900 6550 10900 6650 Wire Wire Line - 10900 6650 10300 6650 + 10900 6650 10600 6650 +Wire Wire Line + 10600 6650 10300 6650 Wire Wire Line 10900 6150 10900 6050 Connection ~ 10300 6050 @@ -426,7 +556,11 @@ Connection ~ 10600 3350 Wire Wire Line 10600 3350 10600 3450 Wire Wire Line - 10300 3350 11200 3350 + 10300 3350 10600 3350 +Wire Wire Line + 10600 3350 10900 3350 +Wire Wire Line + 10900 3350 11200 3350 Wire Wire Line 10300 3350 10300 3450 Connection ~ 10450 3950 @@ -455,11 +589,19 @@ Wire Wire Line Wire Wire Line 13450 8900 13550 8900 Wire Wire Line - 13550 8900 13550 9300 + 13550 8900 13550 9000 +Wire Wire Line + 13550 9000 13550 9100 +Wire Wire Line + 13550 9100 13550 9200 +Wire Wire Line + 13550 9200 13550 9300 Wire Wire Line 9800 4650 9800 4850 Wire Wire Line - 9800 4850 10850 4850 + 9800 4850 10450 4850 +Wire Wire Line + 10450 4850 10850 4850 Wire Wire Line 8950 6250 8950 6600 Wire Wire Line @@ -469,7 +611,9 @@ Wire Wire Line Wire Wire Line 9650 5450 9650 5150 Wire Wire Line - 9650 5150 10850 5150 + 9650 5150 10450 5150 +Wire Wire Line + 10450 5150 10850 5150 Connection ~ 9350 6050 Connection ~ 9500 4150 Wire Wire Line @@ -527,7 +671,13 @@ Connection ~ 850 5550 Wire Wire Line 850 5550 950 5550 Wire Wire Line - 850 5750 850 5350 + 850 5750 850 5650 +Wire Wire Line + 850 5650 850 5550 +Wire Wire Line + 850 5550 850 5450 +Wire Wire Line + 850 5450 850 5350 Wire Wire Line 850 5350 950 5350 Connection ~ 1650 5150 @@ -538,7 +688,9 @@ Wire Wire Line Wire Wire Line 4250 3250 4250 3150 Wire Wire Line - 1550 5150 1750 5150 + 1550 5150 1650 5150 +Wire Wire Line + 1650 5150 1750 5150 Wire Wire Line 1650 5850 1650 5750 Wire Wire Line @@ -548,9 +700,17 @@ Wire Wire Line 950 5450 850 5450 Connection ~ 850 5450 Wire Wire Line - 1550 3450 1750 3450 + 1550 3450 1650 3450 Wire Wire Line - 850 4050 850 3650 + 1650 3450 1750 3450 +Wire Wire Line + 850 4050 850 3950 +Wire Wire Line + 850 3950 850 3850 +Wire Wire Line + 850 3850 850 3750 +Wire Wire Line + 850 3750 850 3650 Wire Wire Line 850 3650 950 3650 Wire Wire Line @@ -605,26 +765,36 @@ Wire Wire Line Wire Wire Line 9400 2950 9500 2950 Wire Wire Line - 9500 2950 9500 4250 + 9500 2950 9500 4150 +Wire Wire Line + 9500 4150 9500 4250 Wire Wire Line 8750 6050 9350 6050 Wire Wire Line 9350 5450 9350 5050 Wire Wire Line - 9350 5050 10850 5050 + 9350 5050 10150 5050 +Wire Wire Line + 10150 5050 10850 5050 Wire Wire Line 9400 6800 9300 6800 Wire Wire Line - 9350 6150 9350 5850 + 9350 6150 9350 6050 +Wire Wire Line + 9350 6050 9350 5850 Wire Wire Line 9500 4650 9500 4950 Wire Wire Line - 9500 4950 10850 4950 + 9500 4950 10150 4950 +Wire Wire Line + 10150 4950 10850 4950 Wire Wire Line 9650 6250 9650 5850 Connection ~ 9650 6250 Wire Wire Line - 9800 4250 9800 2250 + 9800 4250 9800 2850 +Wire Wire Line + 9800 2850 9800 2250 Connection ~ 9800 2850 Wire Wire Line 12750 8700 12850 8700 @@ -637,7 +807,13 @@ Connection ~ 13550 9200 Wire Wire Line 12850 1450 12750 1450 Wire Wire Line - 13550 2450 13550 2050 + 13550 2450 13550 2350 +Wire Wire Line + 13550 2350 13550 2250 +Wire Wire Line + 13550 2250 13550 2150 +Wire Wire Line + 13550 2150 13550 2050 Wire Wire Line 13550 2050 13450 2050 Wire Wire Line @@ -661,7 +837,9 @@ Wire Wire Line 10600 6150 10600 6050 Connection ~ 10600 6050 Wire Wire Line - 10300 6750 10300 6550 + 10300 6750 10300 6650 +Wire Wire Line + 10300 6650 10300 6550 Wire Wire Line 10600 6550 10600 6650 Connection ~ 10600 6650 @@ -700,12 +878,16 @@ Wire Wire Line Wire Wire Line 12150 3950 12150 4050 Wire Wire Line - 12750 4850 15400 4850 + 12750 4850 15300 4850 +Wire Wire Line + 15300 4850 15400 4850 Wire Wire Line 13400 5350 13400 5250 Connection ~ 13100 5250 Wire Wire Line - 14000 5250 14200 5250 + 14000 5250 14100 5250 +Wire Wire Line + 14100 5250 14200 5250 Wire Wire Line 14800 5350 14800 5250 Wire Wire Line @@ -725,17 +907,23 @@ Wire Wire Line Wire Wire Line 15000 6150 15000 5250 Wire Wire Line - 15000 5250 14700 5250 + 15000 5250 14800 5250 +Wire Wire Line + 14800 5250 14700 5250 Connection ~ 14800 5250 Wire Wire Line 14000 5850 14100 5850 Connection ~ 14100 5850 Wire Wire Line - 13900 3400 11950 3400 + 13900 3400 13700 3400 +Wire Wire Line + 13700 3400 11950 3400 Wire Wire Line 11950 3400 11950 4050 Wire Wire Line - 13900 3200 11750 3200 + 13900 3200 13500 3200 +Wire Wire Line + 13500 3200 11750 3200 Wire Wire Line 11750 3200 11750 4050 Wire Wire Line @@ -768,17 +956,25 @@ Wire Wire Line Wire Wire Line 16100 4850 16100 4750 Wire Wire Line - 3250 8150 3250 7800 + 3250 8150 3250 7900 +Wire Wire Line + 3250 7900 3250 7800 Wire Wire Line 3150 6700 3350 6700 Wire Wire Line - 3350 6900 3350 6600 + 3350 6900 3350 6700 +Wire Wire Line + 3350 6700 3350 6600 Connection ~ 3350 6700 Wire Wire Line - 7150 2050 6700 2050 + 7150 2050 6900 2050 +Wire Wire Line + 6900 2050 6700 2050 Connection ~ 6900 2050 Wire Wire Line - 4050 3600 4050 3150 + 4050 3600 4050 3500 +Wire Wire Line + 4050 3500 4050 3150 Wire Wire Line 4150 1450 4150 1550 Wire Wire Line @@ -793,7 +989,9 @@ Wire Wire Line Wire Wire Line 2350 5000 2050 5000 Wire Wire Line - 2050 5000 2050 4800 + 2050 5000 2050 4900 +Wire Wire Line + 2050 4900 2050 4800 Wire Wire Line 2050 4300 2050 4400 Wire Wire Line @@ -813,7 +1011,15 @@ Wire Wire Line Wire Wire Line 4250 9800 3900 9800 Wire Wire Line - 5150 10000 5150 9500 + 5150 10000 5150 9900 +Wire Wire Line + 5150 9900 5150 9800 +Wire Wire Line + 5150 9800 5150 9700 +Wire Wire Line + 5150 9700 5150 9600 +Wire Wire Line + 5150 9600 5150 9500 Wire Wire Line 5150 9500 5050 9500 Wire Wire Line @@ -829,7 +1035,15 @@ Wire Wire Line 15000 9000 15100 9000 Connection ~ 15000 9000 Wire Wire Line - 16000 8600 16000 9100 + 16000 8600 16000 8700 +Wire Wire Line + 16000 8700 16000 8800 +Wire Wire Line + 16000 8800 16000 8900 +Wire Wire Line + 16000 8900 16000 9000 +Wire Wire Line + 16000 9000 16000 9100 Wire Wire Line 16000 9100 15900 9100 Wire Wire Line @@ -861,7 +1075,15 @@ Wire Wire Line Wire Wire Line 6700 2050 6700 2250 Wire Wire Line - 9900 6050 10900 6050 + 9900 6050 10150 6050 +Wire Wire Line + 10150 6050 10300 6050 +Wire Wire Line + 10300 6050 10450 6050 +Wire Wire Line + 10450 6050 10600 6050 +Wire Wire Line + 10600 6050 10900 6050 Wire Wire Line 5750 6500 6300 6500 Wire Wire Line @@ -883,9 +1105,13 @@ Wire Wire Line Wire Wire Line 8200 7600 8750 7600 Wire Wire Line - 6600 3650 6600 3150 + 6600 3650 6600 3550 Wire Wire Line - 6400 6400 6400 6750 + 6600 3550 6600 3150 +Wire Wire Line + 6400 6400 6400 6500 +Wire Wire Line + 6400 6500 6400 6750 Wire Wire Line 6650 6500 6400 6500 Connection ~ 6400 6500 @@ -898,7 +1124,9 @@ Wire Wire Line Wire Wire Line 9800 2250 9900 2250 Wire Wire Line - 3300 9300 2700 9300 + 3300 9300 2800 9300 +Wire Wire Line + 2800 9300 2700 9300 Wire Wire Line 2700 9400 2800 9400 Wire Wire Line @@ -925,7 +1153,9 @@ Wire Wire Line 9900 7050 9600 7050 Connection ~ 9900 7050 Wire Wire Line - 9600 7050 9600 8050 + 9600 7050 9600 7300 +Wire Wire Line + 9600 7300 9600 8050 Wire Wire Line 9600 8050 10100 8050 Wire Wire Line @@ -940,7 +1170,9 @@ Wire Wire Line 10500 2250 10600 2250 Connection ~ 10600 2250 Wire Wire Line - 7200 7200 7200 7500 + 7200 7200 7200 7400 +Wire Wire Line + 7200 7400 7200 7500 Wire Wire Line 2700 9900 3100 9900 Wire Wire Line @@ -948,7 +1180,9 @@ Wire Wire Line Wire Wire Line 7000 9800 7000 9600 Wire Wire Line - 6800 9500 6800 9700 + 6800 9500 6800 9600 +Wire Wire Line + 6800 9600 6800 9700 Connection ~ 6800 9600 Wire Wire Line 8250 9600 8250 9700 @@ -963,12 +1197,18 @@ Wire Wire Line Wire Wire Line 11800 2450 11800 2350 Wire Wire Line - 8650 3900 8650 5000 + 8650 3900 8650 4150 +Wire Wire Line + 8650 4150 8650 4900 +Wire Wire Line + 8650 4900 8650 5000 Connection ~ 8650 4900 Wire Wire Line 8200 5400 8200 5300 Wire Wire Line - 8200 5300 7550 5300 + 8200 5300 8050 5300 +Wire Wire Line + 8050 5300 7550 5300 Connection ~ 8050 5300 Wire Wire Line 10450 3050 10450 2950 @@ -1360,7 +1600,7 @@ switchable image reject filters Text Notes 4100 7350 0 60 ~ 0 switchable image reject filters Text Label 6550 8050 2 40 ~ 0 -SWTX1 +TX_LP $Comp L GND #PWR? U 1 1 4FE2B9AE @@ -1380,7 +1620,7 @@ F 1 "33pF" H 6350 8250 50 0000 L CNN -1 0 0 1 $EndComp Text Label 6650 6500 2 40 ~ 0 -SWTX2 +TX_HP $Comp L GND #PWR? U 1 1 4FE2B99C @@ -1400,7 +1640,7 @@ F 1 "33pF" H 6450 6100 50 0000 L CNN -1 0 0 1 $EndComp Text Label 6850 3550 2 40 ~ 0 -SWRX1 +RX_LP $Comp L GND #PWR? U 1 1 4FE2B981 @@ -1574,11 +1814,11 @@ F 1 "GND" H 5150 9930 30 0001 C CNN 1 0 0 -1 $EndComp Text Label 3900 9900 0 40 ~ 0 -SWD1 +TX_ANT Text Label 3900 9800 0 40 ~ 0 -SWTX1 +TX_HP Text Label 3900 9700 0 40 ~ 0 -SWRX1 +RX_HP Text Label 3900 9600 0 40 ~ 0 TX_BYPASS Text Label 3900 9500 0 40 ~ 0 @@ -1621,17 +1861,17 @@ F 1 "VCC" H 3300 9300 30 0000 C CNN 1 0 0 -1 $EndComp Text Label 3100 9700 2 40 ~ 0 -SWD2 +!TX_ANT Text Label 3100 9600 2 40 ~ 0 -SWD1 +TX_ANT Text Label 1100 9600 0 40 ~ 0 -SWRX2 +RX_LP Text Label 1100 9500 0 40 ~ 0 -SWRX1 +RX_HP Text Label 1100 9400 0 40 ~ 0 -SWTX2 +TX_LP Text Label 1100 9300 0 40 ~ 0 -SWTX1 +TX_HP $Comp L GSG-74HC04 U16 U 1 1 4FE103CF @@ -1654,8 +1894,8 @@ Text Notes 1600 3100 0 40 ~ 0 antenna diversity switches Text Notes 13600 5550 0 40 ~ 0 loop filter\n(1.6 MHz) -Text Label 1750 6250 0 40 ~ 0 -SWD1 +Text Label 1700 6250 0 40 ~ 0 +TX_ANT $Comp L GND #PWR50 U 1 1 4FE100EE @@ -1683,8 +1923,8 @@ F 1 "GND" H 2050 4230 30 0001 C CNN 1 2050 4300 -1 0 0 1 $EndComp -Text Label 1850 4900 0 40 ~ 0 -SWD2 +Text Label 1800 4900 0 40 ~ 0 +!TX_ANT $Comp L C C14 U 1 1 4FE100CB @@ -1694,8 +1934,8 @@ F 1 "33pF" H 2100 4500 50 0000 L CNN 1 2050 4600 1 0 0 -1 $EndComp -Text Label 3000 4750 2 40 ~ 0 -SWD2 +Text Label 3050 4750 2 40 ~ 0 +!TX_ANT $Comp L GND #PWR36 U 1 1 4FE100B1 @@ -1723,8 +1963,8 @@ F 1 "GND" H 2650 2880 30 0001 C CNN 1 2650 2950 -1 0 0 1 $EndComp -Text Label 2850 3550 2 40 ~ 0 -SWD1 +Text Label 2900 3550 2 40 ~ 0 +TX_ANT $Comp L C C8 U 1 1 4FE1007B @@ -1735,7 +1975,7 @@ F 1 "33pF" H 2700 3150 50 0000 L CNN 1 0 0 -1 $EndComp Text Label 3900 2050 0 40 ~ 0 -SWRX2 +RX_HP $Comp L GND #PWR4 U 1 1 4FE10058 @@ -1755,7 +1995,7 @@ F 1 "33pF" H 4200 1650 50 0000 L CNN 1 0 0 -1 $EndComp Text Label 3800 3500 0 40 ~ 0 -SWRX1 +RX_LP $Comp L GND #PWR34 U 1 1 4FE10041 @@ -1775,7 +2015,7 @@ F 1 "33pF" H 4100 3700 50 0000 L CNN 1 0 0 -1 $EndComp Text Label 7150 2050 2 40 ~ 0 -SWRX2 +RX_HP $Comp L GND #PWR56 U 1 1 4FE0FF86 @@ -1786,7 +2026,7 @@ F 1 "GND" H 3350 6030 30 0001 C CNN -1 0 0 1 $EndComp Text Label 3150 6700 0 40 ~ 0 -SWTX2 +TX_HP $Comp L C C42 U 1 1 4FE0FF74 @@ -1797,7 +2037,7 @@ F 1 "33pF" H 3400 6300 50 0000 L CNN 1 0 0 -1 $EndComp Text Label 3000 7900 0 40 ~ 0 -SWTX1 +TX_LP $Comp L GND #PWR77 U 1 1 4FE0FF4C