Browse Source

sdram: rewrite as parameterized ports; usb: add USB core for testing

The sdram interface is rewritten using a general ports mechanism, so
that adding sdram users becomes a simple matter of instantiating a new
port object, and connect a single dram_bus object to the controller.

Add a USB core. This USB core is more low-level than we probably want,
but it might be useful for testing. As configured, it uses gpio[1,3,5]
as an upstream USB bus implementing a CDC copy of the console tty.

Fix some software bugs in the sdcard code which would cause hangs when
started without an sdcard in the slot.
H. Peter Anvin 3 years ago
parent
commit
cc37f87c67

+ 11 - 23
fpga/abcbus.sv

@@ -57,12 +57,10 @@ module abcbus (
 	       // SDRAM interface
 	       output [24:0]	 sdram_addr,
 	       input [7:0]	 sdram_rd,
-	       output reg	 sdram_rrq,
-	       input		 sdram_rack,
-	       input		 sdram_rready,
+	       output reg	 sdram_valid,
+	       input		 sdram_ready,
 	       output [7:0]	 sdram_wd,
-	       output reg	 sdram_wrq,
-	       input		 sdram_wack
+	       output reg	 sdram_wstrb
 	       );
 
    // Set if MOSFETs Q1-Q6 are installed rather than the corresponding
@@ -291,12 +289,6 @@ module abcbus (
    reg	      abc_memwr_en;
    reg	      abc_do_memrd;
    reg	      abc_do_memwr;
-   reg	      abc_racked;
-   reg	      abc_wacked;
-
-   wire       abc_rack;
-   wire       abc_wack;
-   wire       abc_rready;
 
    always @(posedge sdram_clk or negedge rst_n)
      if (~rst_n)
@@ -305,10 +297,8 @@ module abcbus (
 	  abc_memwr_en   <= 1'b0;
 	  abc_do_memrd   <= 1'b0;
 	  abc_do_memwr   <= 1'b0;
-	  sdram_rrq      <= 1'b0;
-	  sdram_wrq      <= 1'b0;
-	  abc_racked     <= 1'b0;
-	  abc_wacked     <= 1'b0;
+	  sdram_valid    <= 1'b0;
+	  sdram_wstrb    <= 1'b0;
        end
      else
        begin
@@ -320,11 +310,9 @@ module abcbus (
 
 	  abc_do_memrd  <= abc_rden & abc_memrd_en;
 	  abc_do_memwr  <= abc_wren & abc_memwr_en;
-	  abc_racked    <= abc_do_memrd & (sdram_rack | abc_racked);
-	  abc_wacked    <= abc_do_memwr & (sdram_wack | abc_wacked);
 
-	  sdram_rrq     <= abc_do_memrd & ~abc_racked;
-	  sdram_wrq     <= abc_do_memwr & ~abc_wacked;
+	  sdram_valid   <= abc_do_memrd | abc_do_memwr;
+	  sdram_wstrb   <= abc_do_memwr;
        end // else: !if(~rst_n)
 
    assign sdram_addr = abc_memaddr;
@@ -359,7 +347,7 @@ module abcbus (
    reg [3:0] bus_change_mask;
 
    wire [9:0] is_io = { abc_inp[1:0], abc_rst, 1'b0,
-			  abc_out[4:1], abc_cs, abc_out[0] };
+			abc_out[4:1], abc_cs, abc_out[0] };
 
    wire [9:0] busy_io = is_io & busy_mask;
    wire       is_busy = |(busy_status & busy_mask);
@@ -414,14 +402,14 @@ module abcbus (
      if (~rst_n)
        begin
 	  abc_d_oe <= 1'b0;
-	  abc_do    <= 8'bx;
+	  abc_do   <= 8'bx;
        end
      else
        begin
 	  abc_d_oe <= 1'b0;
-	  abc_do    <= 8'bx;
+	  abc_do   <= 8'bx;
 
-	  if (abc_xmemrd & sdram_rready)
+	  if (abc_do_memrd & sdram_ready)
 	    begin
 	       abc_d_oe <= 1'b1;
 	       abc_do   <= sdram_rd;

+ 24 - 13
fpga/max80.qsf

@@ -1,12 +1,12 @@
 # -------------------------------------------------------------------------- #
 #
 # Copyright (C) 2019  Intel Corporation. All rights reserved.
-# Your use of Intel Corporation's design tools, logic functions 
-# and other software and tools, and any partner logic 
-# functions, and any output files from any of the foregoing 
-# (including device programming or simulation files), and any 
-# associated documentation or information are expressly subject 
-# to the terms and conditions of the Intel Program License 
+# Your use of Intel Corporation's design tools, logic functions
+# and other software and tools, and any partner logic
+# functions, and any output files from any of the foregoing
+# (including device programming or simulation files), and any
+# associated documentation or information are expressly subject
+# to the terms and conditions of the Intel Program License
 # Subscription Agreement, the Intel Quartus Prime License Agreement,
 # the Intel FPGA IP License Agreement, or other applicable license
 # agreement, including, without limitation, that your use is for
@@ -57,7 +57,7 @@ set_global_assignment -name EDA_GENERATE_FUNCTIONAL_NETLIST OFF -section_id eda_
 set_global_assignment -name EDA_GENERATE_FUNCTIONAL_NETLIST OFF -section_id eda_board_design_symbol
 set_global_assignment -name EDA_GENERATE_FUNCTIONAL_NETLIST OFF -section_id eda_board_design_signal_integrity
 set_global_assignment -name EDA_GENERATE_FUNCTIONAL_NETLIST OFF -section_id eda_board_design_boundary_scan
-set_global_assignment -name DEVICE_MIGRATION_LIST "EP4CE15F17C8,EP4CE6F17C8,EP4CE10F17C8"
+set_global_assignment -name DEVICE_MIGRATION_LIST EP4CE15F17C8
 set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top
 set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top
 set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top
@@ -190,13 +190,12 @@ set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to spi_cs_esp_n
 set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to spi_cs_flash_n
 set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to spi_miso
 set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to spi_mosi
-set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to gpio[5]
-set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to gpio[4]
-set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to gpio[3]
-set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to gpio[2]
-set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to gpio[1]
 set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to gpio[0]
-set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to gpio
+set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to gpio[2]
+set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to gpio[4]
+set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to gpio[1]
+set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to gpio[3]
+set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to gpio[5]
 set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to abc_clk
 set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to abc_inp_n[1]
 set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to abc_a[13]
@@ -222,6 +221,16 @@ set_global_assignment -name POWER_USE_DEVICE_CHARACTERISTICS MAXIMUM
 set_global_assignment -name POWER_USE_TA_VALUE 35
 
 
+set_global_assignment -name VERILOG_FILE usb/usb_fs_phy/src_v/usb_fs_phy.v
+set_global_assignment -name VERILOG_FILE usb/usb_serial/src_v/usbf_sie_tx.v
+set_global_assignment -name VERILOG_FILE usb/usb_serial/src_v/usbf_sie_rx.v
+set_global_assignment -name VERILOG_FILE usb/usb_serial/src_v/usbf_device_core.v
+set_global_assignment -name VERILOG_FILE usb/usb_serial/src_v/usbf_defs.v
+set_global_assignment -name VERILOG_FILE usb/usb_serial/src_v/usbf_crc16.v
+set_global_assignment -name VERILOG_FILE usb/usb_serial/src_v/usb_desc_rom.v
+set_global_assignment -name VERILOG_FILE usb/usb_serial/src_v/usb_cdc_top.v
+set_global_assignment -name VERILOG_FILE usb/usb_serial/src_v/usb_cdc_core.v
+set_global_assignment -name SYSTEMVERILOG_FILE usb/usb.sv
 set_global_assignment -name VERILOG_FILE ip/statusram.v
 set_global_assignment -name VERILOG_INCLUDE_FILE iodevs.vh
 set_global_assignment -name SYSTEMVERILOG_FILE tty.sv
@@ -253,4 +262,6 @@ set_global_assignment -name SOURCE_FILE max80.pins
 set_global_assignment -name SOURCE_TCL_SCRIPT_FILE scripts/pins.tcl
 set_global_assignment -name VERILOG_FILE ip/fifo.v
 set_global_assignment -name VERILOG_FILE ip/ddufifo.v
+
+
 set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top

+ 9 - 5
fpga/max80.sdc

@@ -6,12 +6,9 @@
 create_clock -name "clock_48" -period 20.834ns [get_ports {clock_48}]
 derive_pll_clocks
 
-# Handle both the RTC input clock and the internal workaround
-# The internal workaround clock should still be treated an asynchronous
+# RTC clock; asynchronous with all others
 create_clock -name "rtc_32khz" -period 30517.578ns [get_ports {rtc_32khz}]
-create_clock -name "ctr_32khz" -period 30517.578ns [get_registers {ctr_32khz}]
 set_clock_groups -asynchronous -group {rtc_32khz}
-set_clock_groups -asynchronous -group {ctr_32khz}
 
 # Automatically calculate clock uncertainty to jitter and other effects.
 derive_clock_uncertainty
@@ -43,7 +40,7 @@ set_clock_groups -asynchronous \
 # asynchronous, but encode it as allowing multicycle of one
 # clock, to limit the possible skew (but it is of course not possible
 # to eliminate it...)
-set synchro_inputs [get_registers *|synchronizer:*|qreg0*] 
+set synchro_inputs [get_registers *|synchronizer:*|qreg0*]
 set_multicycle_path -from [all_clocks] -to $synchro_inputs \
     -start -setup 2
 set_multicycle_path -from [all_clocks] -to $synchro_inputs \
@@ -62,6 +59,13 @@ set_multicycle_path -from $sdram_clk -to $sdram_out_clk \
 set_multicycle_path -from $sdram_clk -to $sdram_out_clk \
     -start -hold 0
 
+# -------- SDRAM multicycle paths (ready is retarded) --------
+
+set_multicycle_path -from [get_registers {dram_port:cpu_dram_port|rd[*]}] \
+    -to $sys_clk -setup 2
+set_multicycle_path -from [get_registers {dram_port:cpu_dram_port|rd[*]}] \
+    -to $sys_clk -hold 2
+
 # -------- SPI ROM multicycle paths --------
 
 # the load of the spi_data_ctr register happens no less than 2 target

+ 80 - 135
fpga/max80.sv

@@ -219,28 +219,50 @@ module max80 (
    //
    // SDRAM
    //
+   localparam dram_port_count = 2;
+   dram_bus sr_bus[1:dram_port_count] ( );
 
    // ABC interface
    wire [24:0] abc_sr_addr;
    wire [ 7:0] abc_sr_rd;
-   wire        abc_sr_rrq;
-   wire        abc_sr_rack;
-   wire        abc_sr_rready;
+   wire        abc_sr_valid;
+   wire        abc_sr_ready;
    wire [ 7:0] abc_sr_wd;
-   wire        abc_sr_wrq;
-   wire        abc_sr_wack;
+   wire        abc_sr_wstrb;
+
+   dram_port #(8)
+   abc_dram_port (
+		  .bus   ( sr_bus[1] ),
+		  .prio  ( 2'd3 ),
+		  .addr  ( abc_sr_addr ),
+		  .rd    ( abc_sr_rd ),
+		  .valid ( abc_sr_valid ),
+		  .ready ( abc_sr_ready ),
+		  .wd    ( abc_sr_wd ),
+		  .wstrb ( abc_sr_wstrb )
+		  );
 
    // CPU interface
-   wire [31:0] sdram_rd;
-   wire        sdram_rack;
-   wire        sdram_rready;
-   wire        sdram_wack;
-   reg	       sdram_acked;
-   wire        sdram_valid = cpu_mem_quad[1];
-   wire        sdram_req = sdram_valid & ~sdram_acked;
+   wire [31:0] sdram_mem_rdata;
+   wire        sdram_ready;
+   reg	       sdram_mem_ready;
 
-   always @(posedge sdram_clk)
-     sdram_acked <= sdram_valid & (sdram_acked | sdram_rack | sdram_wack);
+   // Retard sdram_ready by one sys_clk (multicycle path for the data,
+   // see max80.sdc)
+   always @(posedge sys_clk)
+     sdram_mem_ready <= sdram_ready;
+
+   dram_port #(32)
+   cpu_dram_port (
+		  .bus   ( sr_bus[2] ),
+		  .prio  ( 2'd1 ),
+		  .addr  ( cpu_mem_addr[24:0] ),
+		  .rd    ( sdram_mem_rdata ),
+		  .valid ( cpu_mem_quad[1] ),
+		  .ready ( sdram_ready ),
+		  .wd    ( cpu_mem_wdata ),
+		  .wstrb ( cpu_mem_wstrb )
+		  );
 
    // Romcopy interface
    wire [15:0] sdram_rom_wd;
@@ -248,45 +270,30 @@ module max80 (
    wire [ 1:0] sdram_rom_wrq;
    wire        sdram_rom_wacc;
 
-   sdram sdram (
-		.rst_n    ( rst_n ),
-		.clk      ( sdram_clk ), // Internal clock
-		.out_clk  ( sdram_out_clk ), // External clock (phase shifted)
-
-		.sr_clk   ( sr_clk ),    // Output clock buffer
-		.sr_cke   ( sr_cke ),
-		.sr_cs_n  ( sr_cs_n ),
-		.sr_ras_n ( sr_ras_n ),
-		.sr_cas_n ( sr_cas_n ),
-		.sr_we_n  ( sr_we_n ),
-		.sr_dqm   ( sr_dqm ),
-		.sr_ba    ( sr_ba ),
-		.sr_a     ( sr_a ),
-		.sr_dq    ( sr_dq ),
-
-		.a0       ( abc_sr_addr ),
-		.rd0      ( abc_sr_rd ),
-		.rrq0     ( abc_sr_rrq ),
-		.rack0    ( abc_sr_rack ),
-		.rready0  ( abc_sr_rready ),
-		.wd0      ( abc_sr_wd ),
-		.wrq0     ( abc_sr_wrq ),
-		.wack0    ( abc_sr_wack ),
-
-		.a1       ( cpu_mem_addr[24:2] ),
-		.rd1      ( sdram_rd ),
-		.rrq1     ( sdram_req & ~|cpu_mem_wstrb ),
-		.rack1    ( sdram_rack ),
-		.rready1  ( sdram_rready ),
-		.wd1      ( cpu_mem_wdata ),
-		.wstrb1   ( {4{sdram_req}} & cpu_mem_wstrb ),
-		.wack1    ( sdram_wack ),
-
-		.a2       ( sdram_rom_waddr ),
-		.wd2      ( sdram_rom_wd ),
-		.wrq2     ( sdram_rom_wrq ),
-		.wacc2    ( sdram_rom_wacc )
-		);
+   sdram #(.port1_count(dram_port_count))
+   sdram (
+	  .rst_n    ( rst_n ),
+	  .clk      ( sdram_clk ), // Internal clock
+	  .out_clk  ( sdram_out_clk ), // External clock (phase shifted)
+
+	  .sr_clk   ( sr_clk ),    // Output clock buffer
+	  .sr_cke   ( sr_cke ),
+	  .sr_cs_n  ( sr_cs_n ),
+	  .sr_ras_n ( sr_ras_n ),
+	  .sr_cas_n ( sr_cas_n ),
+	  .sr_we_n  ( sr_we_n ),
+	  .sr_dqm   ( sr_dqm ),
+	  .sr_ba    ( sr_ba ),
+	  .sr_a     ( sr_a ),
+	  .sr_dq    ( sr_dq ),
+
+	  .port1    ( sr_bus ),
+
+	  .a2       ( sdram_rom_waddr ),
+	  .wd2      ( sdram_rom_wd ),
+	  .wrq2     ( sdram_rom_wrq ),
+	  .wacc2    ( sdram_rom_wacc )
+	  );
 
    //
    // ABC-bus interface
@@ -338,14 +345,12 @@ module max80 (
 		  .exth_hg ( exth_hg ),
 		  .exth_hh ( exth_hh ),
 
-		  .sdram_addr ( abc_sr_addr ),
-		  .sdram_rd ( abc_sr_rd ),
-		  .sdram_rrq ( abc_sr_rrq ),
-		  .sdram_rack ( abc_sr_rack ),
-		  .sdram_rready ( abc_sr_rready ),
-		  .sdram_wd ( abc_sr_wd ),
-		  .sdram_wrq ( abc_sr_wrq ),
-		  .sdram_wack ( abc_sr_wack )
+		  .sdram_addr  ( abc_sr_addr ),
+		  .sdram_rd    ( abc_sr_rd ),
+		  .sdram_valid ( abc_sr_valid ),
+		  .sdram_ready ( abc_sr_ready ),
+		  .sdram_wd    ( abc_sr_wd ),
+		  .sdram_wstrb ( abc_sr_wstrb )
 		  );
 
    // GPIO
@@ -433,24 +438,6 @@ module max80 (
 	.eoi ( cpu_eoi )
 	);
 
-   // cpu_mem_ready is always true for fast memory; for SDRAM we have to
-   // wait either for a write ack or a low-high transition on the
-   // read ready signal.
-   reg sdram_rready_q;
-   reg sdram_mem_ready;
-   reg [31:0] sdram_rdata;
-   always @(posedge sys_clk)
-     begin
-	sdram_rready_q <= sdram_rready;
-	if (cpu_mem_quad[1])
-	  sdram_mem_ready <= sdram_mem_ready | sdram_wack |
-			     (sdram_rready & ~sdram_rready_q);
-	else
-	  sdram_mem_ready <= 1'b0;
-
-	sdram_rdata <= sdram_rd;
-     end
-
    // Add a mandatory wait state to iodevs to reduce the size
    // of the CPU memory input MUX (it hurts timing on memory
    // accesses...)
@@ -489,10 +476,10 @@ module max80 (
    reg [31:0]  iodev_rdata_q;
 
    // Read data MUX
-   always @(*)
+   always_comb
      case ( cpu_mem_quad )
        4'b0001: cpu_mem_rdata = fast_mem_rdata;
-       4'b0010: cpu_mem_rdata = sdram_rdata;
+       4'b0010: cpu_mem_rdata = sdram_mem_rdata;
        4'b1000: cpu_mem_rdata = iodev_rdata_q;
        default: cpu_mem_rdata = 32'hxxxx_xxxx;
      endcase
@@ -512,7 +499,7 @@ module max80 (
    //    [0] - RTC 32 kHz pullup and serial port RxD/TxD swap
    // [15:1] - reserved
    //
-   wire        rtc_32khz_rework;
+   wire        rtc_32khz_rework = 1'b1;
 
    wire [ 7:0] max80_major = 8'd1;
    wire [ 7:0] max80_minor = 8'd0;
@@ -601,40 +588,22 @@ module max80 (
 	    .tty_txd ( tty_data_out ) // DTE -> DCE
 	    );
 
-`ifdef WORKAROUNDS
-   reg [1:0]   tty_dtr_q;
-   always @(posedge sys_clk)
-     begin
-	tty_dtr_q[0] <= tty_dtr;
-	tty_dtr_q[1] <= gpio[4];
-     end
-
-   //
-   // Route data to the two output ports
-   //
-
-   // tty_rxd because pins are DCE named
-   assign tty_data_in = (tty_txd | tty_dtr_q[0]) &
-			(gpio[0] | tty_dtr_q[1]);
-
-   assign tty_rxd = tty_dtr_q[0] ? 1'bz : tty_data_out;
-   assign gpio[1] = tty_dtr_q[1] ? 1'bz : tty_data_out;
-
-   assign tty_rts_in = (tty_rts | tty_dtr_q[0]) &
-		       (gpio[2] | tty_dtr_q[1]);
-
-   assign tty_cts = tty_dtr_q[0] ? 1'bz : tty_cts_out;
-   assign gpio[3] = tty_dtr_q[1] ? 1'bz : tty_cts_out;
+`ifdef USB
+   max80_usb usb (
+		  .rst_n   ( rst_n ),
+		  .clock48 ( clock_48 ),
+		  .tty_rxd ( ),
+		  .tty_txd ( tty_data_out ),
+		  .usb_dp  ( gpio[3] ),
+		  .usb_dn  ( gpio[5] ),
+		  .usb_pu  ( gpio[1] )
+		  );
+`endif
 
-   // DTR on GPIO -> assume RTC 32 kHz output is nonfunctional
-   assign rtc_32khz_rework = tty_dtr_q[1];
-`else
    assign tty_data_in      = tty_txd;
    assign tty_rxd          = tty_data_out;
    assign tty_rts_in       = tty_rts;
    assign tty_cts          = tty_cts_out;
-   assign rtc_32khz_rework = 1'b1;
-`endif
 
    // SD card
    sdcard #(
@@ -662,31 +631,7 @@ module max80 (
 
    // System local clock (not an RTC, but settable from one)
    // Also provides a periodic interrupt (set to 32 Hz)
-   //
-   // XXX: the RTC 32 kHz signal is missing a pull-up,
-   // so unless the board has been reworked, use a
-   // divider down from the 84 MHz system clock. The
-   // error is about 200 ppm; a proper NCO could do better.
-
-`ifdef WORKAROUNDS
-   reg		ctr_32khz;
-   reg [10:0]	ctr_64khz;
-   always @(posedge sys_clk)
-     begin
-	if (~|ctr_64khz)
-	  begin
-	     ctr_32khz <= ~ctr_32khz;
-	     ctr_64khz <= 11'd1280;
-	  end
-	else
-	  ctr_64khz <= ctr_64khz - 1'b1;
-     end
-
-   // 32kHz clock synchronized with sys_clk
-   wire clk_32kHz = rtc_32khz_rework ? ~rtc_32khz : ctr_32khz;
-`else // !`ifdef WORKAROUNDS
    wire clk_32kHz = ~rtc_32khz;
-`endif
 
    sysclock #(.PERIODIC_HZ_LG2 ( TIMER_SHIFT ))
    sysclock (

BIN
fpga/output_files/max80.jbc


+ 1 - 1
fpga/output_files/max80.jdi

@@ -1,6 +1,6 @@
 <sld_project_info>
   <project>
-    <hash md5_digest_80b="15b66488aa38b60892ec"/>
+    <hash md5_digest_80b="3d94b4a70488ee842ac5"/>
   </project>
   <file_info>
     <file device="EP4CE15F17C8" path="max80.sof" usercode="0xFFFFFFFF"/>

BIN
fpga/output_files/max80.jic


BIN
fpga/output_files/max80.pof


BIN
fpga/output_files/max80.sof


+ 292 - 156
fpga/sdram.sv

@@ -16,12 +16,14 @@
 //  Very simple non-parallelizing SDRAM controller.
 //
 //
-//  Two ports are provided: port 0 is single byte per transaction,
-//  and has highest priority; it is intended for transactions from the
-//  ABC-bus. Port 1 does aligned 4-byte accesses with byte enables.
+//  Two ports are provided:
+//  Port 1 does aligned 4-byte accesses with byte enables.
 //  Port 2 does aligned 8-byte accesses, write only, with no byte
 //  enables; it supports streaming from a FIFO.
 //
+//  Port 1 is multiplexed via an arbiter, which receives a bus
+//  defined by the sdram_bus interface.
+//
 //  All signals are in the sdram clock domain.
 //
 //  [rw]ack is asserted at the beginning of a read- or write cycle and
@@ -30,8 +32,215 @@
 //  transaction is complete and rack is deasserted.
 //
 
+//
+// The interface to the port modules. The read data is 16 bits
+// at a time, and is only valid in the cycle rstrb[x] is asserted.
+//
+// The only output signal that is unique to this port
+// is "start". All other signals are broadcast.
+//
+interface dram_bus;
+   logic [1:0]	prio;		// Priority vs refresh
+   logic        rst_n;
+   logic        clk;
+   logic [24:0] addr;
+   logic	addr0;		// addr[0] latched at transaction start
+   logic [15:0] rd;
+   logic	req;
+   logic  [1:0]	rstrb;		// Data read strobe
+   logic [31:0] wd;
+   logic  [3:0] wstrb;
+   logic	start;		// Transaction start
+   logic	wrack;		// Transaction is a write
+
+   // Upstream direction
+   modport ustr (
+		input  prio,
+		output rst_n,
+		output clk,
+		input  addr,
+		output addr0,
+		output rd,
+		input  req,
+		output rstrb,
+		input  wd,
+		input  wstrb,
+		output start,
+		output wrack
+		);
+
+   // Downstream direction
+   modport dstr (
+		output prio,
+		input  rst_n,
+		input  clk,
+		output addr,
+		input  addr0,
+		input  rd,
+		output req,
+		input  rstrb,
+		output wd,
+		output wstrb,
+		input  start,
+		input  wrack
+		 );
+endinterface // dram_bus
+
+// Port into the DRAM
+module dram_port
+  #(parameter width = 32)
+  (
+   dram_bus.dstr            bus,
+   input             [1:0]  prio,
+
+   input             [24:0] addr,
+   output reg   [width-1:0] rd,
+   input	            valid,
+   output reg               ready,
+   input        [width-1:0] wd,
+   input [(width >> 3)-1:0] wstrb
+   );
+
+   reg started;
+
+   assign bus.prio  = prio;
+   assign bus.addr  = addr;
+   assign bus.req   = valid & ~started;
+
+   always_comb
+     begin
+	bus.wd    = 32'hxxxx_xxxx;
+	bus.wstrb = 4'b0000;
+
+	if (width == 8)
+	  begin
+	     bus.wd[15:0]   = { wd, wd };
+	     bus.wstrb[1:0] = { wstrb[0] & addr[0], wstrb[0] & ~addr[0] };
+	  end
+	else
+	  begin
+	     bus.wd[width-1:0]           = wd;
+	     bus.wstrb[(width >> 3)-1:0] = wstrb;
+	  end
+     end
+
+   always @(negedge bus.rst_n or posedge bus.clk)
+     if (~bus.rst_n)
+       begin
+	  ready   <= 1'b0;
+	  started <= 1'b0;
+       end
+     else
+       begin
+	  if (~valid)
+	    begin
+	       ready   <= 1'b0;
+	       started <= 1'b0;
+	    end
+	  else if (bus.start)
+	    begin
+	       started <= 1'b1;
+	       ready   <= |bus.wstrb; // All write data latched
+	    end
+	  else if (started & ~ready)
+	    begin
+	       ready <= bus.rstrb[(width - 1) >> 4];
+	    end
+       end // else: !if(~bus.rst_n)
+
+   genvar i;
+   generate
+      for (i = 0; i < (width >> 4); i++)
+	begin : w
+	   always @(posedge bus.clk)
+	     if (started & ~ready & bus.rstrb[i])
+	       begin
+		  if (width == 8)
+		    rd <= bus.addr0 ? bus.rd[15:8] : bus.rd[7:0];
+		  else
+		    rd[i*16+15:i*16] <= bus.rd;
+	       end
+	end
+   endgenerate
+endmodule // dram_port
+
+module dram_arbiter
+  #(parameter port_count = 1)
+   (
+    dram_bus.ustr ustr [1:port_count],
+    dram_bus.dstr dstr,
+    input [1:0] rfsh_prio,
+    output logic do_rfsh
+    );
+
+   logic [port_count:0] requesting;
+   logic [24:0] addr  [1:port_count];
+   logic [31:0] wd    [1:port_count];
+   logic [3:0]  wstrb [1:port_count];
+   logic [1:0]	prio  [1:port_count];
+
+   always_comb
+     requesting[0] = 1'b0;
+
+   genvar  i;
+   generate
+      for (i = 1; i <= port_count; i++)
+	begin : u
+	   always_comb
+	     begin
+		ustr[i].rst_n = dstr.rst_n;
+		ustr[i].clk   = dstr.clk;
+		ustr[i].addr0 = dstr.addr0;
+		ustr[i].rd    = dstr.rd;
+		ustr[i].rstrb = dstr.rstrb;
+		ustr[i].wrack = dstr.wrack;
+		ustr[i].start = 1'b0;
+
+		addr[i]       = ustr[i].addr;
+		wd[i]         = ustr[i].wd;
+		wstrb[i]      = ustr[i].wstrb;
+		prio[i]       = ustr[i].prio;
+
+		if (~|requesting[i-1:0] & ustr[i].req)
+		  begin
+		     requesting[i] = 1'b1;
+		     ustr[i].start = dstr.start & (ustr[i].prio >= rfsh_prio);
+		  end
+		else
+		  begin
+		     requesting[i] = 1'b0;
+		     ustr[i].start = 1'b0;
+		  end
+	     end // always_comb
+	end // for (i = 1; i <= port_count; i++)
+   endgenerate
+
+   always_comb
+     begin
+	dstr.req   = 1'b0;
+	dstr.addr  = 25'bx;
+	dstr.wd    = 32'bx;
+	dstr.wstrb = 4'bx;
+	do_rfsh    = |rfsh_prio;
+
+	for (int j = 1; j <= port_count; j++)
+	  begin
+	     if (requesting[j])
+	       begin
+		  dstr.req   = 1'b1;
+		  dstr.addr  = addr[j];
+		  dstr.wd    = wd[j];
+		  dstr.wstrb = wstrb[j];
+		  do_rfsh    = prio[j] < rfsh_prio;
+	       end
+	  end // for (int j = 1; j <= port_count; j++)
+     end // always_comb
+endmodule // dram_arbiter
+
 module sdram
 #( parameter
+   port1_count     =  1,
+
    //  Timing parameters
    //  The parameters are hardcoded for Micron MT48LC16M16A2-6A,
    //  per datasheet:
@@ -84,29 +293,8 @@ module sdram
 	      output [12:0]	sr_a, // SDRAM address bus
 	      inout [15:0]	sr_dq, // SDRAM data bus
 
-	      // Port 0: single byte, high priority
-	      input [24:0]	a0, // Address, must be stable until ack
-
-	      output reg [7:0]	rd0, // Data from SDRAM
-	      input		rrq0, // Read request
-	      output reg	rack0, // Read ack (transaction started)
-	      output reg	rready0, // Read data valid
-
-	      input [7:0]	wd0, // Data to SDRAM
-	      input		wrq0, // Write request
-	      output reg	wack0, // Write ack (data latched)
-
 	      // Port 1
-	      input [24:2]	a1,
-
-	      output reg [31:0] rd1,
-	      input		rrq1,
-	      output reg	rack1,
-	      output reg	rready1,
-
-	      input [31:0]	wd1,
-	      input [3:0]	wstrb1,
-	      output reg	wack1,
+              dram_bus.ustr     port1 [1:port1_count],
 
 	      // Port 2
 	      input [24:1]	a2,
@@ -117,8 +305,6 @@ module sdram
 
 `include "functions.sv"		// For modelsim
 
-   wire				wrq1 = |wstrb1;
-
    // Mode register data
    wire			    mrd_wburst = 1'b1;     // Write bursts enabled
    wire [2:0]		    mrd_cl     = t_cl;
@@ -194,6 +380,7 @@ module sdram
    reg [1:0]		    dram_dqm;
    assign		    sr_dqm = dram_dqm;
    reg [15:0]		    dram_d; // Data to DRAM
+   reg [15:0]		    dram_q; // Data from DRAM (I/O buffers)
    reg			    dram_d_en; // Drive data out
    assign		    sr_dq = dram_d_en ? dram_d : 16'hzzzz;
 
@@ -203,9 +390,22 @@ module sdram
    reg			      rfsh_ctr_last_msb;
    wire			      rfsh_tick = rfsh_ctr_last_msb & ~rfsh_ctr_msb;
    reg [t_p_lg2:t_refi_lg2-1] init_ctr;  // Reset to init counter
-   reg [1:0]		      rfsh_prio; // Refresh priority
-					 // Bit 0 - refresh if opportune
-					 // Bit 1 - refresh urgent
+   reg [1:0]		      rfsh_prio; // Refresh priority (0-3)
+
+   // Port1 and refresh arbiter
+   dram_bus                   p1 ();
+   wire			      do_rfsh;
+
+   assign p1.rst_n = rst_n;
+   assign p1.clk   = clk;
+
+   dram_arbiter #(.port_count(port1_count))
+   arbiter (
+	    .ustr      ( port1 ),
+	    .dstr      ( p1.dstr ),
+	    .rfsh_prio ( rfsh_prio ),
+	    .do_rfsh   ( do_rfsh )
+	    );
 
    // The actual values are unimportant; the compiler will optimize
    // the state machine implementation.
@@ -216,11 +416,9 @@ module sdram
 	 st_idle,		// Idle state: all banks precharged
 	 st_rfsh,
 	 st_rd_wr,		// Port 0/1 transaction
-	 st_pre_idle,
 	 st_wr2			// Port 2 write (burstable)
    } state_t;
    state_t state = st_reset;
-   reg		is_write;
 
    always @(posedge clk or negedge rst_n)
      if (~rst_n)
@@ -234,11 +432,11 @@ module sdram
 	  rfsh_ctr           <= rfsh_ctr + 1'b1;
 	  rfsh_ctr_last_msb  <= rfsh_ctr_msb;
 
-	  // Refresh priority management
+	  // Refresh priority management: saturating 2-bit counter
 	  if (is_rfsh)
 	    rfsh_prio <= 2'b00; // This is a refresh cycle
-	  else if (rfsh_tick)
-	    rfsh_prio <= { rfsh_prio[0], 1'b1 };
+	  else
+	    rfsh_prio <= rfsh_prio + (rfsh_tick & ~&rfsh_prio);
 
 	  // The refresh counter is also used as a prescaler
 	  // for the initialization counter.
@@ -247,7 +445,7 @@ module sdram
 	  init_ctr <= init_ctr + rfsh_tick;
        end // else: !if(~rst_n)
 
-   reg [5:0] op_ctr;		// Cycle into the current state
+   reg  [5:0] op_ctr;		// Cycle into the current state
    wire [3:0] op_cycle    = op_ctr[3:0]; // Cycle into the current command
    wire [1:0] init_op_ctr = op_ctr[5:4]; // Init operation counter
    reg	      op_zero;		// op_cycle wrap around (init_op_ctr changed)
@@ -257,6 +455,10 @@ module sdram
    reg [ 9:0] col_addr;
    reg	      wrq2_more;
 
+   assign p1.start = (state == st_idle);
+   assign p1.addr0 = col_addr[0];
+   assign p1.rd = dram_q;
+
    //
    // Careful with the timing here... there is one cycle between
    // registers and wires, and the DRAM observes the clock 1/2
@@ -273,22 +475,17 @@ module sdram
 	  dram_ba       <= 2'bxx;
 	  dram_dqm      <= 2'b00;
 	  dram_d        <= 16'hxxxx;
+	  dram_q        <= 16'hxxxx;
 	  dram_d_en     <= 1'b1; // Don't float except during read
 
 	  op_ctr        <= 6'h0;
 	  op_zero       <= 1'b0;
 	  state         <= st_reset;
-	  is_write      <= 1'bx;
-
-	  rack0         <= 1'b0;
-	  rready0       <= 1'b1;
-	  wack0         <= 1'b0;
+	  p1.wrack      <= 1'bx;
+	  p1.rd         <= 16'hxxxx;
+	  p1.rstrb      <= 2'b00;
 
-	  rack1         <= 1'b0;
-	  rready1       <= 1'b1;
-	  wack1         <= 1'b0;
 	  wacc2         <= 1'b0;
-
 	  wrq2_more     <= 1'bx;
 
 	  wdata_q       <= 32'hxxxx_xxxx;
@@ -299,22 +496,16 @@ module sdram
        begin
 	  // Default values
 	  // Note: dram_ba are preserved
-	  dram_a        <= 13'hxxxx;
+	  dram_a        <= 13'b0;
 	  dram_dqm      <= 2'b00;
 	  dram_d        <= 16'haaaa;
 	  dram_cmd      <= cmd_nop;
 
 	  dram_d_en     <= 1'b1; // Don't float except during read
 
-	  if (state != st_rd_wr)
-	    begin
-	       rack0 <= 1'b0;
-	       wack0 <= 1'b0;
-	       rack1 <= 1'b0;
-	       wack1 <= 1'b0;
-	    end
-
-	  wacc2 <= 1'b0;
+	  dram_q        <= sr_dq;
+	  p1.rstrb      <= 2'b00;
+	  wacc2         <= 1'b0;
 
 	  if (state == st_reset || state == st_idle)
 	    begin
@@ -365,7 +556,7 @@ module sdram
 
 	    st_idle:
 	      begin
-		 is_write <= 1'bx;
+		 p1.wrack <= 1'bx;
 		 be_q     <= 4'bxxxx;
 		 wdata_q  <= 32'hxxxx_xxxx;
 
@@ -380,73 +571,35 @@ module sdram
 		 dram_ba <= 2'bxx;
 		 dram_d  <= 16'hbbbb;
 
-		 casez ( {rrq0|wrq0, rrq1|wrq1, wrq2[0], rfsh_prio} )
-		   5'b1????:
-		     begin
-			// Begin port 0 transaction
-			dram_cmd     <= cmd_act;
-			dram_a       <= a0[24:12];
-			dram_ba      <= a0[11:10];
-			col_addr     <= a0[9:0];
-			if ( wrq0 )
-			  begin
-			     state    <= st_rd_wr;
-			     wack0    <= 1'b1;
-			     wdata_q  <= {16'hxxxx, wd0, wd0};
-			     be_q     <= {2'b00, a0[0], ~a0[0]};
-			     is_write <= 1'b1;
-			  end
-			else
-			  begin
-			     state    <= st_rd_wr;
-			     rack0    <= 1'b1;
-			     rready0  <= 1'b0;
-			     is_write <= 1'b0;
-			  end
-		     end
-		   5'b01?0?:
-		     begin
-			// Begin port 1 transaction
-			dram_cmd     <= cmd_act;
-			dram_a       <= a1[24:12];
-			dram_ba      <= a1[11:10];
-			col_addr     <= { a1[9:2], 2'b00 };
-			if ( wrq1 )
-			  begin
-			     state    <= st_rd_wr;
-			     wack1    <= 1'b1;
-			     wdata_q  <= wd1;
-			     be_q     <= wstrb1;
-			     is_write <= 1'b1;
-			  end
-			else
-			  begin
-			     state    <= st_rd_wr;
-			     rack1    <= 1'b1;
-			     rready1  <= 1'b0;
-			     is_write <= 1'b0;
-			  end
-		     end
-		   5'b0??1?, 5'b00?01:
-		     begin
-			// Begin refresh transaction
-			dram_cmd    <= cmd_ref;
-			state       <= st_rfsh;
-		     end
-		   5'b00100:
-		     begin
-			// Begin port 2 write
-			dram_cmd    <= cmd_act;
-			dram_a      <= a2[24:12];
-			dram_ba     <= a2[11:10];
-			state       <= st_wr2;
-		     end
-		   default:
-		     begin
-			dram_cmd    <= cmd_desl;
-			state       <= st_idle;
-		     end
-		 endcase // casez ( {rrq0|wrq0, rrq1|wrq1, rfsh_prio} )
+		 if (do_rfsh)
+		   begin
+		      dram_cmd    <= cmd_ref;
+		      state       <= st_rfsh;
+		   end
+		 else if (p1.req)
+		   begin
+		      dram_cmd     <= cmd_act;
+		      dram_a       <= p1.addr[24:12];
+		      dram_ba      <= p1.addr[11:10];
+		      col_addr     <= p1.addr[9:0];
+		      p1.wrack     <= |p1.wstrb;
+		      wdata_q      <= p1.wd;
+		      be_q         <= p1.wstrb;
+		      state        <= st_rd_wr;
+		   end // if (p1.req)
+		 else if (wrq2[0])
+		   begin
+		      // Begin port 2 write
+		      dram_cmd    <= cmd_act;
+		      dram_a      <= a2[24:12];
+		      dram_ba     <= a2[11:10];
+		      state       <= st_wr2;
+		   end
+		 else
+		   begin
+		      dram_cmd    <= cmd_desl;
+		      state       <= st_idle;
+		   end
 	      end // case: st_idle
 
 	    st_rfsh:
@@ -457,9 +610,12 @@ module sdram
 
 	    st_rd_wr:
 	      begin
-		 dram_d_en <= is_write;
-		 dram_dqm  <= {2{is_write}};
-		 dram_d <= 16'hcccc;
+		 dram_d_en <= p1.wrack;
+		 dram_dqm  <= {2{p1.wrack}};
+		 dram_d    <= 16'hcccc ^ {16{p1.wrack}};
+
+		 if (op_cycle < 7)
+		   dram_q <= op_cycle * 16'h1111;
 
 		 // Commands
 		 //
@@ -476,17 +632,13 @@ module sdram
 		   2: begin
 		      dram_a[10]   <= 1'b0; // No auto precharge
 		      dram_a[8:0]  <= col_addr[9:1];
-		      dram_cmd     <= is_write ? cmd_wr : cmd_rd;
+		      dram_cmd     <= p1.wrack ? cmd_wr : cmd_rd;
 		      dram_d       <= wdata_q[15:0];
-		      dram_dqm     <= {2{is_write}} & ~be_q[1:0];
-		      wdata_q      <= { 16'hdddd, wdata_q[31:16] };
-		      be_q         <= { 2'hxx, be_q[3:2] };
+		      dram_dqm     <= {2{p1.wrack}} & ~be_q[1:0];
 		   end
 		   3: begin
-		      dram_d       <= wdata_q[15:0];
-		      dram_dqm     <= {2{is_write}} & ~be_q[1:0];
-		      wdata_q      <= { 16'heeee, wdata_q[31:16] };
-		      be_q         <= 4'bxxxx;
+		      dram_d       <= wdata_q[31:16];
+		      dram_dqm     <= {2{p1.wrack}} & ~be_q[3:2];
 		   end
 		   6: begin
 		      // Earliest legal cycle to precharge
@@ -498,32 +650,17 @@ module sdram
 		   // CL+2 cycles after the read command
 		   // The +2 accounts for internal and I/O delays
 		   7: begin
-		      if (rack0)
-			rd0 <= col_addr[0] ? sr_dq[15:8] : sr_dq[7:0];
-		      rready0 <= rready0 | rack0;
-		      if (rack1)
-			rd1[15:0] <= sr_dq;
+		      p1.rstrb[0] <= ~p1.wrack;
 		   end
 		   8: begin
-		      if (rack1)
-			rd1[31:16] <= sr_dq;
-		      rready1 <= rready1 | rack1;
-
-		      state <= st_pre_idle;
+		      p1.rstrb[1] <= ~p1.wrack;
+		   end
+		   9: begin
+		      state <= st_idle;
 		   end
 		 endcase // case (op_cycle)
 	      end // case: st_rd_wr
 
-	    st_pre_idle:
-	      begin
-		 // Last cycle before tRC is a separate state
-		 // so that rack/wack will be cleared
-
-		 dram_d_en <= is_write;
-		 dram_dqm  <= {2{is_write}};
-		 state <= st_idle;
-	      end
-
 	    st_wr2:
 	      begin
 		 // Streamable write from flash ROM
@@ -548,8 +685,7 @@ module sdram
 		   end
 		   4: begin
 		      dram_cmd  <= cmd_wr;
-		      if (wrq2_more &
-			  ~(rrq0|wrq0|rrq1|wrq1|(|rfsh_prio)|(&dram_a[8:2])))
+		      if (wrq2_more & ~(p1.req | do_rfsh))
 			begin
 			   // Burst can continue
 			   wacc2       <= 1'b1;

+ 15 - 15
fpga/spirom.sv

@@ -9,30 +9,30 @@
 //
 
 module spirom (
-	       input 		 rst_n,
-	       input 		 rom_clk,
-	       input 		 ram_clk,
-	       input 		 sys_clk,
+	       input		 rst_n,
+	       input		 rom_clk,
+	       input		 ram_clk,
+	       input		 sys_clk,
 
 	       /* SPI ROM interface */
-	       output 		 spi_sck,
-	       inout [1:0] 	 spi_io,
-	       output reg 	 spi_cs_n,
+	       output		 spi_sck,
+	       inout [1:0]	 spi_io,
+	       output reg	 spi_cs_n,
 
 	       /* SDRAM interface */
-	       output [15:0] 	 wd, // Data to RAM
+	       output [15:0]	 wd, // Data to RAM
 	       (* syn_preserve = 1 *)	// Don't merge into FIFO
-	       output [24:1] 	 waddr, // RAM address
+	       output [24:1]	 waddr, // RAM address
 	       output reg [1:0]  wrq, // Write request (min 4/8 bytes)
-	       input 		 wacc, // Data accepted (ready for next data)
+	       input		 wacc, // Data accepted (ready for next data)
 
 	       /* CPU control interface */
 	       output reg [31:0] cpu_rdata,
-	       input [31:0] 	 cpu_wdata,
-	       input 		 cpu_valid,
-	       input [3:0] 	 cpu_wstrb,
-	       input [1:0] 	 cpu_addr,
-	       output reg 	 irq
+	       input [31:0]	 cpu_wdata,
+	       input		 cpu_valid,
+	       input [3:0]	 cpu_wstrb,
+	       input [1:0]	 cpu_addr,
+	       output reg	 irq
 	       );
 
    reg [24:3] ramstart;

+ 106 - 0
fpga/usb/usb.sv

@@ -0,0 +1,106 @@
+//
+// usb.sv
+//
+// For now, just instantiate a USB <-> serial bridge and attach it
+// to the output of the tty
+//
+
+module max80_usb (
+		  input  rst_n,
+		  input  clock48,
+		  
+		  output tty_rxd,
+		  input  tty_txd,
+
+		  inout  usb_dp,
+		  inout  usb_dn,
+		  output usb_pu	// driver for 1.5 kohm pullup
+		  );
+
+   //
+   // UTMI interface to PHY
+   //
+   wire [7:0] 		 utmi_data_out;
+   wire [1:0] 		 utmi_op_mode;
+   wire [1:0] 		 utmi_xcvrselect;
+   wire 		 utmi_termselect;
+   wire 		 utmi_dppulldown;
+   wire 		 utmi_dmpulldown;
+   wire [7:0] 		 utmi_data_in;
+   wire 		 utmi_txvalid;
+   wire 		 utmi_txready;
+   wire 		 utmi_rxvalid;
+   wire 		 utmi_rxactive;
+   wire 		 utmi_rxerror;
+   wire [1:0] 		 utmi_linestate;
+
+   //
+   // USB hardware interface to PHY
+   //
+   wire 		 usb_rx_rcv   = usb_dp & ~usb_dn;
+   wire 		 usb_rx_dp    = usb_dp;
+   wire 		 usb_rx_dn    = usb_dn;
+   wire 		 usb_tx_dp;
+   wire 		 usb_tx_dn;
+   wire 		 usb_tx_oen;
+   wire 		 usb_en;
+
+   assign usb_dp = ( rst_n & ~usb_tx_oen ) ? usb_tx_dp : 1'bz;
+   assign usb_dn = ( rst_n & ~usb_tx_oen ) ? usb_tx_dn : 1'bz;
+   assign usb_pu = ( rst_n & usb_en )      ? 1'b1 : 1'bz;
+
+   usb_fs_phy usb_phy (
+		       .clk_i ( clock48 ),
+		       .rst_i ( ~rst_n ),
+
+		       .utmi_data_out_i ( utmi_data_out ),
+		       .utmi_txvalid_i  ( utmi_txvalid ),
+		       .utmi_op_mode_i  ( utmi_op_mode ),
+		       .utmi_xcvrselect_i ( utmi_xcvrselect ),
+		       .utmi_termselect_i ( utmi_termselect ),
+		       .utmi_dppulldown_i ( utmi_dppulldown ),
+		       .utmi_dmpulldown_i ( utmi_dmpulldown ),
+
+		       .usb_rx_rcv_i     ( usb_rx_rcv ),
+		       .usb_rx_dp_i      ( usb_rx_dp ),
+		       .usb_rx_dn_i      ( usb_rx_dn ),
+		       .usb_reset_assert_i ( 1'b0 ),
+
+		       .utmi_data_in_o     ( utmi_data_in ),
+		       .utmi_txready_o     ( utmi_txready ),
+		       .utmi_rxvalid_o     ( utmi_rxvalid ),
+		       .utmi_rxactive_o    ( utmi_rxactive ),
+		       .utmi_rxerror_o     ( utmi_rxerror ),
+		       .utmi_linestate_o   ( utmi_linestate ),
+
+		       .usb_tx_dp_o        ( usb_tx_dp ),
+		       .usb_tx_dn_o        ( usb_tx_dn ),
+		       .usb_tx_oen_o       ( usb_tx_oen ),
+		       .usb_reset_detect_o ( ),
+		       .usb_en_o           ( usb_en )
+		       );
+   
+   usb_cdc_top #(.BAUDRATE(115200))
+   usb_serial (
+	       .clk_i             ( clock48 ),
+	       .rst_i             ( ~rst_n ),
+
+	       .utmi_data_out_o   ( utmi_data_out ),
+	       .utmi_txvalid_o    ( utmi_txvalid ),
+	       .utmi_op_mode_o    ( utmi_op_mode ),
+	       .utmi_xcvrselect_o ( utmi_xcvrselect ),
+	       .utmi_termselect_o ( utmi_termselect ),
+	       .utmi_dppulldown_o ( utmi_dppulldown ),
+	       .utmi_dmpulldown_o ( utmi_dmpulldown ),
+
+	       .utmi_data_in_i    ( utmi_data_in ),
+	       .utmi_txready_i    ( utmi_txready ),
+	       .utmi_rxvalid_i    ( utmi_rxvalid ),
+	       .utmi_rxactive_i   ( utmi_rxactive ),
+	       .utmi_rxerror_i    ( utmi_rxerror ),
+	       .utmi_linestate_i  ( utmi_linestate ),
+
+	       .tx_i ( tty_txd ),
+	       .rx_o ( tty_rxd )
+	       );
+endmodule // max80_usb

+ 504 - 0
fpga/usb/usb_fs_phy/LICENSE

@@ -0,0 +1,504 @@
+                  GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+                  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                            NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+    USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random
+  Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!

+ 114 - 0
fpga/usb/usb_fs_phy/README.md

@@ -0,0 +1,114 @@
+### USB Full Speed PHY
+
+Github:   [http://github.com/ultraembedded/core_usb_fs_phy](https://github.com/ultraembedded/core_usb_fs_phy)
+
+This component implements the low level USB1.1 / FS / 12Mbit/s USB signalling (SOP,DATA,EOP) with the required bitstuffing.
+
+##### Features
+* UTMI PHY interface.
+* Connection to a transceiver (e.g. USB1T11A) or can drive the FPGA pins directly as USB D+/D-.
+
+##### Configuration / Requirements
+* Top: usb_fs_phy
+* Clock: clk_i - 48MHz
+* Reset: rst_i - Asynchronous, active high
+
+##### Testing
+Tested with various FPGA + USB based projects.
+
+##### FPGA Transceiver
+To avoid external components, you can drive the USB D+/D- pins directly from the FPGA fabric.
+The USB1.1 bit rate is low enough (12MHz) for this to be not too problematic with short cables!
+
+```
+module usb_fs_phy_wrapper
+(
+     input           clk_i
+    ,input           rst_i
+
+    ,input  [  7:0]  utmi_data_out_i
+    ,input           utmi_txvalid_i
+    ,input  [  1:0]  utmi_op_mode_i
+    ,input  [  1:0]  utmi_xcvrselect_i
+    ,input           utmi_termselect_i
+    ,input           utmi_dppulldown_i
+    ,input           utmi_dmpulldown_i
+    ,output [  7:0]  utmi_data_in_o
+    ,output          utmi_txready_o
+    ,output          utmi_rxvalid_o
+    ,output          utmi_rxactive_o
+    ,output          utmi_rxerror_o
+    ,output [  1:0]  utmi_linestate_o
+
+    // USB D+ / D-
+    ,inout          usb_dp_io
+    ,inout          usb_dn_io
+);
+
+wire           usb_pads_rx_rcv_w;
+wire           usb_pads_rx_dn_w;
+wire           usb_pads_rx_dp_w;
+wire           usb_pads_tx_dn_w;
+wire           usb_pads_tx_dp_w;
+wire           usb_pads_tx_oen_w;
+
+usb_transceiver u_usb_xcvr
+(
+    // Inputs
+     .usb_phy_tx_dp_i(usb_pads_tx_dp_w)
+    ,.usb_phy_tx_dn_i(usb_pads_tx_dn_w)
+    ,.usb_phy_tx_oen_i(usb_pads_tx_oen_w)
+    ,.mode_i(1'b1)
+
+    // Outputs
+    ,.usb_dp_io(usb_dp_io)
+    ,.usb_dn_io(usb_dn_io)
+    ,.usb_phy_rx_rcv_o(usb_pads_rx_rcv_w)
+    ,.usb_phy_rx_dp_o(usb_pads_rx_dp_w)
+    ,.usb_phy_rx_dn_o(usb_pads_rx_dn_w)
+);
+
+usb_fs_phy u_usb_phy
+(
+    // Inputs
+     .clk_i(clk_i)
+    ,.rst_i(rst_i)
+    ,.utmi_data_out_i(utmi_data_out_i)
+    ,.utmi_txvalid_i(utmi_txvalid_i)
+    ,.utmi_op_mode_i(utmi_op_mode_i)
+    ,.utmi_xcvrselect_i(utmi_xcvrselect_i)
+    ,.utmi_termselect_i(utmi_termselect_i)
+    ,.utmi_dppulldown_i(utmi_dppulldown_i)
+    ,.utmi_dmpulldown_i(utmi_dmpulldown_i)
+    ,.usb_rx_rcv_i(usb_pads_rx_rcv_w)
+    ,.usb_rx_dp_i(usb_pads_rx_dp_w)
+    ,.usb_rx_dn_i(usb_pads_rx_dn_w)
+    ,.usb_reset_assert_i(1'b0)
+
+    // Outputs
+    ,.utmi_data_in_o(utmi_data_in_o)
+    ,.utmi_txready_o(utmi_txready_o)
+    ,.utmi_rxvalid_o(utmi_rxvalid_o)
+    ,.utmi_rxactive_o(utmi_rxactive_o)
+    ,.utmi_rxerror_o(utmi_rxerror_o)
+    ,.utmi_linestate_o(utmi_linestate_o)
+    ,.usb_tx_dp_o(usb_pads_tx_dp_w)
+    ,.usb_tx_dn_o(usb_pads_tx_dn_w)
+    ,.usb_tx_oen_o(usb_pads_tx_oen_w)
+    ,.usb_reset_detect_o()
+    ,.usb_en_o()
+);
+
+endmodule
+```
+
+Example contraints;
+```
+set_property -dict { PACKAGE_PIN N4    IOSTANDARD LVCMOS33 } [get_ports { usb_dp_io }];
+set_property -dict { PACKAGE_PIN P3    IOSTANDARD LVCMOS33 } [get_ports { usb_dn_io }];
+set_property PULLUP TRUE [get_ports usb_dp_io]
+```
+
+##### References
+* [UTMI Specification](https://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/usb2-transceiver-macrocell-interface-specification.pdf)
+* [USB1T11A](http://www.mouser.com/ds/2/149/fairchild%20semiconductor_usb1t11a-320893.pdf)

+ 696 - 0
fpga/usb/usb_fs_phy/src_v/usb_fs_phy.v

@@ -0,0 +1,696 @@
+//-----------------------------------------------------------------
+//                     USB Full Speed (12mbps) Phy
+//                              V0.2
+//                        Ultra-Embedded.com
+//                          Copyright 2015
+//
+//                 Email: admin@ultra-embedded.com
+//
+//                         License: LGPL
+//-----------------------------------------------------------------
+//
+// This source file may be used and distributed without         
+// restriction provided that this copyright statement is not    
+// removed from the file and that any derivative work contains  
+// the original copyright notice and the associated disclaimer. 
+//
+// This source file is free software; you can redistribute it   
+// and/or modify it under the terms of the GNU Lesser General   
+// Public License as published by the Free Software Foundation; 
+// either version 2.1 of the License, or (at your option) any   
+// later version.
+//
+// This source is distributed in the hope that it will be       
+// useful, but WITHOUT ANY WARRANTY; without even the implied   
+// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      
+// PURPOSE.  See the GNU Lesser General Public License for more 
+// details.
+//
+// You should have received a copy of the GNU Lesser General    
+// Public License along with this source; if not, write to the 
+// Free Software Foundation, Inc., 59 Temple Place, Suite 330, 
+// Boston, MA  02111-1307  USA
+//-----------------------------------------------------------------
+
+//-----------------------------------------------------------------
+//                          Generated File
+//-----------------------------------------------------------------
+
+module usb_fs_phy
+(
+    // Inputs
+     input           clk_i
+    ,input           rst_i
+    ,input  [  7:0]  utmi_data_out_i
+    ,input           utmi_txvalid_i
+    ,input  [  1:0]  utmi_op_mode_i
+    ,input  [  1:0]  utmi_xcvrselect_i
+    ,input           utmi_termselect_i
+    ,input           utmi_dppulldown_i
+    ,input           utmi_dmpulldown_i
+    ,input           usb_rx_rcv_i
+    ,input           usb_rx_dp_i
+    ,input           usb_rx_dn_i
+    ,input           usb_reset_assert_i
+
+    // Outputs
+    ,output [  7:0]  utmi_data_in_o
+    ,output          utmi_txready_o
+    ,output          utmi_rxvalid_o
+    ,output          utmi_rxactive_o
+    ,output          utmi_rxerror_o
+    ,output [  1:0]  utmi_linestate_o
+    ,output          usb_tx_dp_o
+    ,output          usb_tx_dn_o
+    ,output          usb_tx_oen_o
+    ,output          usb_reset_detect_o
+    ,output          usb_en_o
+);
+
+
+
+
+//-----------------------------------------------------------------
+// Wires / Registers
+//-----------------------------------------------------------------
+reg         rx_en_q;
+
+// Xilinx placement pragmas:
+//synthesis attribute IOB of out_dp_q is "TRUE"
+//synthesis attribute IOB of out_dn_q is "TRUE"
+reg         out_dp_q;
+reg         out_dn_q;
+
+wire        in_dp_w;
+wire        in_dn_w;
+wire        in_rx_w;
+
+wire        in_j_w;
+wire        in_k_w;
+wire        in_se0_w;
+wire        in_invalid_w;
+
+wire        sample_w;
+
+wire        bit_edge_w;
+wire        bit_transition_w;
+
+reg [2:0]   bit_count_q;
+reg [2:0]   ones_count_q;
+reg [7:0]   data_q;
+reg         send_eop_q;
+
+reg         sync_j_detected_q;
+
+wire        bit_stuff_bit_w;
+wire        next_is_bit_stuff_w;
+
+wire        usb_reset_assert_w = usb_reset_assert_i | 
+                                (utmi_xcvrselect_i == 2'b00 && 
+                                 utmi_termselect_i == 1'b0  && 
+                                 utmi_op_mode_i    == 2'b10 && 
+                                 utmi_dppulldown_i && 
+                                 utmi_dmpulldown_i);
+
+//-----------------------------------------------------------------
+// Resample async signals
+//-----------------------------------------------------------------
+reg         rx_dp_ms;
+reg         rx_dn_ms;
+reg         rxd_ms;
+
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+begin
+    rx_dp_ms <= 1'b0;
+    rx_dn_ms <= 1'b0;
+    rxd_ms   <= 1'b0;
+end
+else
+begin
+    rx_dp_ms <= in_dp_w;
+    rx_dn_ms <= in_dn_w;
+    rxd_ms   <= in_rx_w;
+end
+
+//-----------------------------------------------------------------
+// Edge Detection
+//-----------------------------------------------------------------
+reg         rx_dp0_q;
+reg         rx_dn0_q;
+reg         rx_dp1_q;
+reg         rx_dn1_q;
+reg         rx_dp_q;
+reg         rx_dn_q;
+reg         rxd0_q;
+reg         rxd1_q;
+reg         rxd_q;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+begin
+    rx_dp0_q    <= 1'b0;
+    rx_dn0_q    <= 1'b0;
+    rx_dp1_q    <= 1'b0;
+    rx_dn1_q    <= 1'b0;
+    rx_dp_q     <= 1'b0;
+    rx_dn_q     <= 1'b0;
+    rxd0_q      <= 1'b0;
+    rxd1_q      <= 1'b0;
+    rxd_q       <= 1'b0;
+end
+else
+begin
+    // Glitch free versions
+    if (rx_dp0_q & rx_dp1_q)
+        rx_dp_q     <= 1'b1;
+    else if (!rx_dp0_q & !rx_dp1_q)
+        rx_dp_q     <= 1'b0;
+
+    if (rx_dn0_q & rx_dn1_q)
+        rx_dn_q     <= 1'b1;
+    else if (!rx_dn0_q & !rx_dn1_q)
+        rx_dn_q     <= 1'b0;
+
+    if (rxd0_q & rxd1_q)
+        rxd_q     <= 1'b1;
+    else if (!rxd0_q & !rxd1_q)
+        rxd_q     <= 1'b0;
+
+    // Resyncs
+    rx_dp1_q    <= rx_dp0_q;
+    rx_dp0_q    <= rx_dp_ms;
+
+    rx_dn1_q    <= rx_dn0_q;
+    rx_dn0_q    <= rx_dn_ms;
+
+    rxd1_q      <= rxd0_q;
+    rxd0_q      <= rxd_ms;
+end
+
+// For Full Speed USB:
+// SE0 = D+ = 0 && D- = 0
+// J   = D+ = 1 && D- = 0
+// K   = D+ = 0 && D- = 1
+
+assign in_j_w       = in_se0_w ? 1'b0 :  rxd_q;
+assign in_k_w       = in_se0_w ? 1'b0 : ~rxd_q;
+assign in_se0_w     = (!rx_dp_q & !rx_dn_q);
+assign in_invalid_w = (rx_dp_q & rx_dn_q);
+
+// Line state matches tx outputs if drivers enabled
+assign utmi_linestate_o = usb_tx_oen_o ? {rx_dn_q, rx_dp_q} : {usb_tx_dn_o, usb_tx_dp_o};
+
+//-----------------------------------------------------------------
+// State Machine
+//-----------------------------------------------------------------
+localparam STATE_W              = 4;
+localparam STATE_IDLE           = 4'd0;
+localparam STATE_RX_DETECT      = 4'd1;
+localparam STATE_RX_SYNC_J      = 4'd2;
+localparam STATE_RX_SYNC_K      = 4'd3;
+localparam STATE_RX_ACTIVE      = 4'd4;
+localparam STATE_RX_EOP0        = 4'd5;
+localparam STATE_RX_EOP1        = 4'd6;
+localparam STATE_TX_SYNC        = 4'd7;
+localparam STATE_TX_ACTIVE      = 4'd8;
+localparam STATE_TX_EOP_STUFF   = 4'd9;
+localparam STATE_TX_EOP0        = 4'd10;
+localparam STATE_TX_EOP1        = 4'd11;
+localparam STATE_TX_EOP2        = 4'd12;
+localparam STATE_TX_RST         = 4'd13;
+
+// Current state
+reg [STATE_W-1:0] state_q;
+
+reg [STATE_W-1:0] next_state_r;
+always @ *
+begin
+    next_state_r = state_q;
+
+    case (state_q)
+    //-----------------------------------------
+    // STATE_IDLE
+    //-----------------------------------------
+    STATE_IDLE :
+    begin
+        if (in_k_w)
+            next_state_r    = STATE_RX_DETECT;
+        else if (utmi_txvalid_i)
+            next_state_r    = STATE_TX_SYNC;
+        else if (usb_reset_assert_w)
+            next_state_r    = STATE_TX_RST;
+    end
+    //-----------------------------------------
+    // STATE_RX_DETECT
+    //-----------------------------------------
+    STATE_RX_DETECT :
+    begin
+        if (in_k_w && sample_w)
+            next_state_r    = STATE_RX_SYNC_K;
+        else if (sample_w)
+            next_state_r    = STATE_IDLE;
+    end
+    //-----------------------------------------
+    // STATE_RX_SYNC_J
+    //-----------------------------------------
+    STATE_RX_SYNC_J :
+    begin
+        if (in_k_w && sample_w)
+            next_state_r    = STATE_RX_SYNC_K;
+        // K glitch followed by multiple J's - return to idle
+        else if ((bit_count_q == 3'd1) && sample_w)
+            next_state_r    = STATE_IDLE;
+    end
+    //-----------------------------------------
+    // STATE_RX_SYNC_K
+    //-----------------------------------------
+    STATE_RX_SYNC_K :
+    begin
+        // End of SYNC field ends with 2 K's
+        // Must have seen at least 1 J state first!
+        if (sync_j_detected_q && in_k_w && sample_w)
+            next_state_r    = STATE_RX_ACTIVE;
+        // No J detected since IDLE, must be an error!
+        else if (!sync_j_detected_q && in_k_w && sample_w)
+            next_state_r    = STATE_IDLE;
+        else if (in_j_w && sample_w)
+            next_state_r    = STATE_RX_SYNC_J;
+    end
+    //-----------------------------------------
+    // STATE_RX_ACTIVE
+    //-----------------------------------------
+    STATE_RX_ACTIVE :
+    begin
+        if (in_se0_w && sample_w)
+            next_state_r    = STATE_RX_EOP0;
+        // Error!
+        else if (in_invalid_w && sample_w)
+            next_state_r    = STATE_IDLE;
+    end
+    //-----------------------------------------
+    // STATE_RX_EOP0
+    //-----------------------------------------
+    STATE_RX_EOP0 :
+    begin
+        if (in_se0_w && sample_w)
+            next_state_r    = STATE_RX_EOP1;
+        // Error!
+        else if (sample_w)
+            next_state_r    = STATE_IDLE;
+    end
+    //-----------------------------------------
+    // STATE_RX_EOP1
+    //-----------------------------------------
+    STATE_RX_EOP1 :
+    begin
+        // Return to idle
+        if (in_j_w && sample_w)
+            next_state_r    = STATE_IDLE;
+        // Error!
+        else if (sample_w)
+            next_state_r    = STATE_IDLE;
+    end
+    //-----------------------------------------
+    // STATE_TX_SYNC
+    //-----------------------------------------
+    STATE_TX_SYNC :
+    begin
+        if (bit_count_q == 3'd7 && sample_w)
+            next_state_r    = STATE_TX_ACTIVE;
+    end
+    //-----------------------------------------
+    // STATE_TX_ACTIVE
+    //-----------------------------------------
+    STATE_TX_ACTIVE :
+    begin
+        if (bit_count_q == 3'd7 && sample_w && (!utmi_txvalid_i || send_eop_q) && !bit_stuff_bit_w)
+        begin
+            // Bit stuff required at end of packet?
+            if (next_is_bit_stuff_w)
+                next_state_r    = STATE_TX_EOP_STUFF;
+            else
+                next_state_r    = STATE_TX_EOP0;
+        end
+    end
+    //-----------------------------------------
+    // STATE_TX_EOP_STUFF
+    //-----------------------------------------
+    STATE_TX_EOP_STUFF :
+    begin
+        if (sample_w)
+            next_state_r    = STATE_TX_EOP0;
+    end
+    //-----------------------------------------
+    // STATE_TX_EOP0
+    //-----------------------------------------
+    STATE_TX_EOP0 :
+    begin
+        if (sample_w)
+            next_state_r    = STATE_TX_EOP1;
+    end
+    //-----------------------------------------
+    // STATE_TX_EOP1
+    //-----------------------------------------
+    STATE_TX_EOP1 :
+    begin
+        if (sample_w)
+            next_state_r    = STATE_TX_EOP2;
+    end
+    //-----------------------------------------
+    // STATE_TX_EOP2
+    //-----------------------------------------
+    STATE_TX_EOP2 :
+    begin
+        if (sample_w)
+            next_state_r    = STATE_IDLE;
+    end
+    //-----------------------------------------
+    // STATE_TX_RST
+    //-----------------------------------------
+    STATE_TX_RST :
+    begin
+        if (!usb_reset_assert_w)
+            next_state_r    = STATE_IDLE;
+    end
+    default:
+        ;
+   endcase
+end
+
+// Update state
+always @ (posedge rst_i or posedge clk_i)
+if (rst_i)
+    state_q   <= STATE_IDLE;
+else
+    state_q   <= next_state_r;
+
+//-----------------------------------------------------------------
+// SYNC detect
+//-----------------------------------------------------------------
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    sync_j_detected_q  <= 1'b0;
+// Reset sync detect state in IDLE
+else if (state_q == STATE_IDLE)
+    sync_j_detected_q  <= 1'b0;
+// At least one J detected
+else if (state_q == STATE_RX_SYNC_J)
+    sync_j_detected_q  <= 1'b1;
+
+//-----------------------------------------------------------------
+// Rx Error Detection
+//-----------------------------------------------------------------
+reg rx_error_q;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    rx_error_q  <= 1'b0;
+// Rx bit stuffing error
+else if (ones_count_q == 3'd7)
+    rx_error_q  <= 1'b1;
+// Invalid line state detection
+else if (in_invalid_w && sample_w)
+    rx_error_q  <= 1'b1;
+// Detect invalid SYNC sequence
+else if ((state_q == STATE_RX_SYNC_K) && !sync_j_detected_q && in_k_w && sample_w)
+    rx_error_q  <= 1'b1;
+else
+    rx_error_q  <= 1'b0;
+
+assign utmi_rxerror_o = rx_error_q;
+
+//-----------------------------------------------------------------
+// Edge Detector
+//-----------------------------------------------------------------
+reg rxd_last_q;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    rxd_last_q  <= 1'b0;
+else
+    rxd_last_q  <= in_j_w;
+
+assign bit_edge_w = rxd_last_q ^ in_j_w;
+
+//-----------------------------------------------------------------
+// Sample Timer
+//-----------------------------------------------------------------
+reg [1:0] sample_cnt_q;
+reg       adjust_delayed_q;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+begin
+    sample_cnt_q        <= 2'd0;
+    adjust_delayed_q    <= 1'b0;
+end
+// Delayed adjustment
+else if (adjust_delayed_q)
+    adjust_delayed_q    <= 1'b0;
+else if (bit_edge_w && (sample_cnt_q != 2'd0) && (state_q < STATE_TX_SYNC))
+    sample_cnt_q        <= 2'd0;
+// Can't adjust sampling point now?
+else if (bit_edge_w && (sample_cnt_q == 2'd0) && (state_q < STATE_TX_SYNC))
+begin
+    // Want to reset sampling point but need to delay adjustment by 1 cycle!
+    adjust_delayed_q    <= 1'b1;
+    sample_cnt_q        <= sample_cnt_q + 2'd1;
+end
+else
+    sample_cnt_q        <= sample_cnt_q + 2'd1;
+
+assign sample_w = (sample_cnt_q == 2'd0);
+
+//-----------------------------------------------------------------
+// NRZI Receiver
+//-----------------------------------------------------------------
+reg rxd_last_j_q;
+
+// NRZI:
+// 0 = transition between J & K
+// 1 = same state
+// After 6 consequitive 1's, a 0 is inserted to maintain the transitions
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    rxd_last_j_q  <= 1'b0;
+else if ((state_q == STATE_IDLE) || sample_w)
+    rxd_last_j_q  <= in_j_w;
+
+assign bit_transition_w = sample_w ? rxd_last_j_q ^ in_j_w : 1'b0;
+
+//-----------------------------------------------------------------
+// Bit Counters
+//-----------------------------------------------------------------
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    ones_count_q <= 3'd1;
+// The packet starts with a double K (no transition)
+else if (state_q == STATE_IDLE)
+    ones_count_q <= 3'd1;
+// Rx
+else if ((state_q == STATE_RX_ACTIVE) && sample_w)
+begin
+    if (bit_transition_w)
+        ones_count_q <= 3'b0;
+    else
+        ones_count_q <= ones_count_q + 3'd1;
+end
+// Tx
+else if ((state_q == STATE_TX_ACTIVE) && sample_w)
+begin
+    // Toggle output data
+    if (!data_q[0] || bit_stuff_bit_w)
+        ones_count_q <= 3'b0;
+    else
+        ones_count_q <= ones_count_q + 3'd1;
+end
+
+assign bit_stuff_bit_w     = (ones_count_q == 3'd6);
+assign next_is_bit_stuff_w = (ones_count_q == 3'd5) && !bit_transition_w;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    bit_count_q <= 3'b0;
+else if ((state_q == STATE_IDLE) || (state_q == STATE_RX_SYNC_K))
+    bit_count_q <= 3'b0;
+else if ((state_q == STATE_RX_ACTIVE || state_q == STATE_TX_ACTIVE) && sample_w && !bit_stuff_bit_w)
+    bit_count_q <= bit_count_q + 3'd1;
+else if (((state_q == STATE_TX_SYNC) || (state_q == STATE_RX_SYNC_J)) && sample_w)
+    bit_count_q <= bit_count_q + 3'd1;
+
+//-----------------------------------------------------------------
+// Shift register
+//-----------------------------------------------------------------
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    data_q  <= 8'b0;
+// Pre-load shift register with SYNC word
+else if (state_q == STATE_IDLE)
+    data_q  <= 8'b00101010;
+else if ((state_q == STATE_RX_ACTIVE) && sample_w && !bit_stuff_bit_w)
+    data_q  <= {~bit_transition_w, data_q[7:1]};
+else if ((state_q == STATE_TX_SYNC) && sample_w)
+begin
+    if (bit_count_q == 3'd7)
+        data_q  <= utmi_data_out_i;
+    else
+        data_q  <= {~bit_transition_w, data_q[7:1]};
+end    
+else if ((state_q == STATE_TX_ACTIVE) && sample_w && !bit_stuff_bit_w)
+begin
+    if (bit_count_q == 3'd7)
+        data_q  <= utmi_data_out_i;
+    else
+        data_q  <= {~bit_transition_w, data_q[7:1]};
+end
+
+// Receive active (SYNC recieved)
+assign utmi_rxactive_o = (state_q == STATE_RX_ACTIVE);
+
+assign utmi_data_in_o  = data_q;
+
+//-----------------------------------------------------------------
+// Rx Ready
+//-----------------------------------------------------------------
+reg rx_ready_q;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    rx_ready_q <= 1'b0;
+else if ((state_q == STATE_RX_ACTIVE) && sample_w && (bit_count_q == 3'd7) && !bit_stuff_bit_w)
+    rx_ready_q <= 1'b1;
+else
+    rx_ready_q <= 1'b0;
+
+assign utmi_rxvalid_o  = rx_ready_q;
+
+//-----------------------------------------------------------------
+// Tx Ready
+//-----------------------------------------------------------------
+reg tx_ready_q;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    tx_ready_q <= 1'b0;
+else if ((state_q == STATE_TX_SYNC) && sample_w && (bit_count_q == 3'd7))
+    tx_ready_q <= 1'b1;
+else if ((state_q == STATE_TX_ACTIVE) && sample_w && !bit_stuff_bit_w && (bit_count_q == 3'd7) && !send_eop_q)
+    tx_ready_q <= 1'b1;
+else
+    tx_ready_q <= 1'b0;
+
+assign utmi_txready_o  = tx_ready_q;
+
+//-----------------------------------------------------------------
+// EOP pending
+//-----------------------------------------------------------------
+always @ (posedge rst_i or posedge clk_i)
+if (rst_i)
+    send_eop_q  <= 1'b0;
+else if ((state_q == STATE_TX_ACTIVE) && !utmi_txvalid_i)
+    send_eop_q  <= 1'b1;
+else if (state_q == STATE_TX_EOP0)
+    send_eop_q  <= 1'b0;
+
+//-----------------------------------------------------------------
+// Tx
+//-----------------------------------------------------------------
+wire out_bit_w = sample_w ? data_q[0] : 1'bz;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+begin
+    out_dp_q <= 1'b0;
+    out_dn_q <= 1'b0;
+    rx_en_q  <= 1'b1;
+end
+else if (state_q == STATE_IDLE)
+begin
+    // IDLE
+    out_dp_q <= 1'b1;
+    out_dn_q <= 1'b0;
+
+    if (utmi_txvalid_i || usb_reset_assert_w)
+        rx_en_q <= 1'b0;
+    else
+        rx_en_q <= 1'b1;
+end
+else if ((state_q == STATE_TX_SYNC) && sample_w)
+begin
+    out_dp_q <= data_q[0];
+    out_dn_q <= ~data_q[0];
+end
+else if ((state_q == STATE_TX_ACTIVE || state_q == STATE_TX_EOP_STUFF) && sample_w)
+begin
+    // 0 = toggle, 1 = hold
+    if (!data_q[0] || bit_stuff_bit_w)
+    begin
+        out_dp_q <= ~out_dp_q;
+        out_dn_q <= ~out_dn_q;
+    end
+end
+else if ((state_q == STATE_TX_EOP0 || state_q == STATE_TX_EOP1) && sample_w)
+begin
+    // SE0
+    out_dp_q <= 1'b0;
+    out_dn_q <= 1'b0;
+end
+else if ((state_q == STATE_TX_EOP2) && sample_w)
+begin
+    // IDLE
+    out_dp_q <= 1'b1;
+    out_dn_q <= 1'b0;
+
+    // Set bus to input
+    rx_en_q <= 1'b1;
+end
+else if (state_q == STATE_TX_RST)
+begin
+    // SE0
+    out_dp_q <= 1'b0;
+    out_dn_q <= 1'b0;
+end
+
+//-----------------------------------------------------------------
+// Reset detection
+//-----------------------------------------------------------------
+reg [6:0] se0_cnt_q;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    se0_cnt_q <= 7'b0;
+else if (in_se0_w)
+begin
+    if (se0_cnt_q != 7'd127)
+        se0_cnt_q <= se0_cnt_q + 7'd1;
+end    
+else
+    se0_cnt_q <= 7'b0;
+
+assign usb_reset_detect_o = (se0_cnt_q == 7'd127);
+
+//-----------------------------------------------------------------
+// Transceiver Interface
+//-----------------------------------------------------------------
+// Tx output enable (active low)
+assign usb_tx_oen_o = rx_en_q;
+
+// Tx +/-
+assign usb_tx_dp_o  = out_dp_q;
+assign usb_tx_dn_o  = out_dn_q;
+
+// Receive D+/D-
+assign in_dp_w = usb_rx_dp_i;
+assign in_dn_w = usb_rx_dn_i;
+
+// Receive data
+assign in_rx_w = usb_rx_rcv_i;
+
+// USB device pull-up enable
+assign usb_en_o = utmi_termselect_i;
+
+
+endmodule

+ 162 - 0
fpga/usb/usb_fs_phy/src_v/usb_transceiver.v

@@ -0,0 +1,162 @@
+//-----------------------------------------------------------------
+//                     USB Full Speed (12mbps) Phy
+//                              V0.2
+//                        Ultra-Embedded.com
+//                          Copyright 2015
+//
+//                 Email: admin@ultra-embedded.com
+//
+//                         License: LGPL
+//-----------------------------------------------------------------
+//
+// This source file may be used and distributed without         
+// restriction provided that this copyright statement is not    
+// removed from the file and that any derivative work contains  
+// the original copyright notice and the associated disclaimer. 
+//
+// This source file is free software; you can redistribute it   
+// and/or modify it under the terms of the GNU Lesser General   
+// Public License as published by the Free Software Foundation; 
+// either version 2.1 of the License, or (at your option) any   
+// later version.
+//
+// This source is distributed in the hope that it will be       
+// useful, but WITHOUT ANY WARRANTY; without even the implied   
+// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      
+// PURPOSE.  See the GNU Lesser General Public License for more 
+// details.
+//
+// You should have received a copy of the GNU Lesser General    
+// Public License along with this source; if not, write to the 
+// Free Software Foundation, Inc., 59 Temple Place, Suite 330, 
+// Boston, MA  02111-1307  USA
+//-----------------------------------------------------------------
+
+//-----------------------------------------------------------------
+//                          Generated File
+//-----------------------------------------------------------------
+
+module usb_transceiver
+(
+    // Inputs
+     input           usb_phy_tx_dp_i
+    ,input           usb_phy_tx_dn_i
+    ,input           usb_phy_tx_oen_i
+    ,input           mode_i
+
+    // Outputs
+    ,inout          usb_dp_io
+    ,inout          usb_dn_io
+    ,output          usb_phy_rx_rcv_o
+    ,output          usb_phy_rx_dp_o
+    ,output          usb_phy_rx_dn_o
+);
+
+
+
+//-----------------------------------------------------------------
+// Module: usb_transceiver
+// Emulate standard USB PHY interface and produce a D+/D- outputs.
+// Allows direct connection of USB port to FPGA.
+// Limitations:
+// As no differential amplifier present, no common mode noise
+// rejection occurs.
+// Unlikely to work well with longer connections!
+//-----------------------------------------------------------------
+
+//-----------------------------------------------------------------
+// Wires
+//-----------------------------------------------------------------
+reg out_dp;
+reg out_dn;
+
+//-----------------------------------------------------------------
+// Assignments
+//-----------------------------------------------------------------
+
+// D+/D- Tristate buffers
+assign usb_dp_io = (usb_phy_tx_oen_i == 1'b0) ? out_dp : 1'bz;
+assign usb_dn_io = (usb_phy_tx_oen_i == 1'b0) ? out_dn : 1'bz;
+
+// Receive D+/D-
+assign usb_phy_rx_dp_o = usb_dp_io;
+assign usb_phy_rx_dn_o = usb_dn_io;
+
+// Receive output
+assign usb_phy_rx_rcv_o = (usb_dp_io == 1'b1 && usb_dn_io == 1'b0) ? 1'b1 : 1'b0;
+
+// PHY Transmit Mode:
+// When phy_tx_mode_i is '0' the outputs are encoded as:
+//     vmo_i, vpo_i
+//      0    0    Differential Logic '0'
+//      0    1    Differential Logic '1'
+//      1    0    Single Ended '0'
+//      1    1    Single Ended '0'
+// When phy_tx_mode_i is '1' the outputs are encoded as:
+//     vmo_i, vpo_i
+//      0    0    Single Ended '0'
+//      0    1    Differential Logic '1'
+//      1    0    Differential Logic '0'
+//      1    1    Illegal State
+always @ (mode_i or usb_phy_tx_dp_i or usb_phy_tx_dn_i)
+begin : MUX
+ case(mode_i)
+    1'b0:
+    begin
+        if (usb_phy_tx_dp_i == 1'b0 && usb_phy_tx_dn_i == 1'b0)
+        begin
+            // Logic "0"
+            out_dp = 1'b0;
+            out_dn = 1'b1;
+        end
+        else if (usb_phy_tx_dp_i == 1'b0 && usb_phy_tx_dn_i == 1'b1)
+        begin
+            // SE0 (both low)
+            out_dp = 1'b0;
+            out_dn = 1'b0;
+        end
+        else if (usb_phy_tx_dp_i == 1'b1 && usb_phy_tx_dn_i == 1'b0)
+        begin
+            // Logic "1"
+            out_dp = 1'b1;
+            out_dn = 1'b0;
+        end
+        else if (usb_phy_tx_dp_i == 1'b1 && usb_phy_tx_dn_i == 1'b1)
+        begin
+            // SE0 (both low)
+            out_dp = 1'b0;
+            out_dn = 1'b0;
+        end
+    end
+    1'b1 :
+    begin
+        if (usb_phy_tx_dp_i == 1'b0 && usb_phy_tx_dn_i == 1'b0)
+        begin
+            // SE0 (both low)
+            out_dp = 1'b0;
+            out_dn = 1'b0;
+        end
+        else if (usb_phy_tx_dp_i == 1'b0 && usb_phy_tx_dn_i == 1'b1)
+        begin
+            // Logic "0"
+            out_dp = 1'b0;
+            out_dn = 1'b1;
+        end
+        else if (usb_phy_tx_dp_i == 1'b1 && usb_phy_tx_dn_i == 1'b0)
+        begin
+            // Logic "1"
+            out_dp = 1'b1;
+            out_dn = 1'b0;
+        end
+        else if (usb_phy_tx_dp_i == 1'b1 && usb_phy_tx_dn_i == 1'b1)
+        begin
+            // Illegal
+            out_dp = 1'b1;
+            out_dn = 1'b1;
+        end
+    end
+ endcase
+end
+
+
+endmodule

+ 130 - 0
fpga/usb/usb_serial/README.md

@@ -0,0 +1,130 @@
+### USB Serial Port Device (USB-CDC)
+
+Github:   [https://github.com/ultraembedded/core_usb_uart](https://github.com/ultraembedded/core_usb_uart)
+
+This component is a simple USB Peripheral Interface (Device) implementation which enumerates as either a high-speed (480Mbit/s) or full-speed (12Mbit/s) CDC-ACM device.
+
+This IP acts as a USB to serial port (UART) converter which can be used to add a UART to a FPGA which has a ULPI interface.
+
+##### Features
+* High or Full speed USB CDC device.
+* Enumeration in hardware - no SW intervention required.
+* ULPI interface (suitable for connection to a ULPI PHY - e.g. Microchip USB3300)
+* Fixed baud rate (param) Rx, Tx pins.
+
+##### Example instantiation (Xilinx)
+```
+module usb_serial
+//-----------------------------------------------------------------
+// Params
+//-----------------------------------------------------------------
+#(
+    parameter BAUDRATE         = 1000000
+)
+//-----------------------------------------------------------------
+// Ports
+//-----------------------------------------------------------------
+(
+      output          uart_rx_o
+    , input           uart_tx_i
+
+    // ULPI Interface
+    , output          ulpi_reset_o
+    , inout [7:0]     ulpi_data_io
+    , output          ulpi_stp_o
+    , input           ulpi_nxt_i
+    , input           ulpi_dir_i
+    , input           ulpi_clk60_i
+);
+
+// USB clock / reset
+wire usb_clk_w;
+wire usb_rst_w;
+
+wire clk_bufg_w;
+IBUF u_ibuf ( .I(ulpi_clk60_i), .O(clk_bufg_w) );
+BUFG u_bufg ( .I(clk_bufg_w),   .O(usb_clk_w) );
+
+reg [3:0] count_q = 4'b0;
+reg       rst_q   = 1'b1;
+
+always @(posedge usb_clk_w) 
+if (count_q != 4'hF)
+    count_q <= count_q + 4'd1;
+else
+    rst_q <= 1'b0;
+
+assign usb_rst_w = rst_q;
+
+// ULPI Buffers
+wire [7:0] ulpi_out_w;
+wire [7:0] ulpi_in_w;
+wire       ulpi_stp_w;
+
+genvar i;
+generate  
+for (i=0; i < 8; i=i+1)  
+begin: gen_buf
+    IOBUF 
+    #(
+        .DRIVE(12),
+        .IOSTANDARD("DEFAULT"),
+        .SLEW("FAST")
+    )
+    IOBUF_inst
+    (
+        .T(ulpi_dir_i),
+        .I(ulpi_out_w[i]),
+        .O(ulpi_in_w[i]),
+        .IO(ulpi_data_io[i])
+    );
+end  
+endgenerate  
+
+OBUF 
+#(
+    .DRIVE(12),
+    .IOSTANDARD("DEFAULT"),
+    .SLEW("FAST")
+)
+OBUF_stp
+(
+    .I(ulpi_stp_w),
+    .O(ulpi_stp_o)
+);
+
+// USB Core
+usb_cdc_top
+#( .BAUDRATE(BAUDRATE) )
+u_usb
+(
+     .clk_i(usb_clk_w)
+    ,.rst_i(usb_rst_w)
+
+    // ULPI
+    ,.ulpi_data_out_i(ulpi_in_w)
+    ,.ulpi_dir_i(ulpi_dir_i)
+    ,.ulpi_nxt_i(ulpi_nxt_i)
+    ,.ulpi_data_in_o(ulpi_out_w)
+    ,.ulpi_stp_o(ulpi_stp_w)
+
+    ,.tx_i(uart_tx_i)
+    ,.rx_o(uart_rx_o)
+);
+
+assign ulpi_reset_o = 1'b0;
+
+endmodule
+```
+
+##### Limitations
+* Really basic USB-CDC class device implementation, will ignore encap, line state and line coding change requests!
+* USB suspend/resume will not work correctly.
+
+##### Testing
+Verified under simulation then tested on FPGA against Linux, Windows and MAC OS-X.
+
+##### References
+* [USB 2.0 Specification](https://usb.org/developers/docs/usb20_docs)
+* [ULPI Specification](https://www.sparkfun.com/datasheets/Components/SMD/ULPI_v1_1.pdf)
+* [USB Made Simple](http://www.usbmadesimple.co.uk/)

+ 444 - 0
fpga/usb/usb_serial/src_v/ulpi_wrapper.v

@@ -0,0 +1,444 @@
+//-----------------------------------------------------------------
+//                       USB Serial Port
+//                            V0.1
+//                     Ultra-Embedded.com
+//                       Copyright 2020
+//
+//                 Email: admin@ultra-embedded.com
+//
+//                         License: LGPL
+//-----------------------------------------------------------------
+//
+// This source file may be used and distributed without         
+// restriction provided that this copyright statement is not    
+// removed from the file and that any derivative work contains  
+// the original copyright notice and the associated disclaimer. 
+//
+// This source file is free software; you can redistribute it   
+// and/or modify it under the terms of the GNU Lesser General   
+// Public License as published by the Free Software Foundation; 
+// either version 2.1 of the License, or (at your option) any   
+// later version.
+//
+// This source is distributed in the hope that it will be       
+// useful, but WITHOUT ANY WARRANTY; without even the implied   
+// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      
+// PURPOSE.  See the GNU Lesser General Public License for more 
+// details.
+//
+// You should have received a copy of the GNU Lesser General    
+// Public License along with this source; if not, write to the 
+// Free Software Foundation, Inc., 59 Temple Place, Suite 330, 
+// Boston, MA  02111-1307  USA
+//-----------------------------------------------------------------
+
+//-----------------------------------------------------------------
+//                          Generated File
+//-----------------------------------------------------------------
+
+module ulpi_wrapper
+(
+    // Inputs
+     input           ulpi_clk60_i
+    ,input           ulpi_rst_i
+    ,input  [  7:0]  ulpi_data_out_i
+    ,input           ulpi_dir_i
+    ,input           ulpi_nxt_i
+    ,input  [  7:0]  utmi_data_out_i
+    ,input           utmi_txvalid_i
+    ,input  [  1:0]  utmi_op_mode_i
+    ,input  [  1:0]  utmi_xcvrselect_i
+    ,input           utmi_termselect_i
+    ,input           utmi_dppulldown_i
+    ,input           utmi_dmpulldown_i
+
+    // Outputs
+    ,output [  7:0]  ulpi_data_in_o
+    ,output          ulpi_stp_o
+    ,output [  7:0]  utmi_data_in_o
+    ,output          utmi_txready_o
+    ,output          utmi_rxvalid_o
+    ,output          utmi_rxactive_o
+    ,output          utmi_rxerror_o
+    ,output [  1:0]  utmi_linestate_o
+);
+
+
+
+//-----------------------------------------------------------------
+// Module: UTMI+ to ULPI Wrapper
+//
+// Description:
+//   - Converts from UTMI interface to reduced pin count ULPI.
+//   - No support for low power mode.
+//   - I/O synchronous to 60MHz ULPI clock input (from PHY)
+//   - Tested against SMSC/Microchip USB3300 in device mode.
+//-----------------------------------------------------------------
+
+//-----------------------------------------------------------------
+// States
+//-----------------------------------------------------------------
+localparam STATE_W          = 2;
+localparam STATE_IDLE       = 2'd0;
+localparam STATE_CMD        = 2'd1;
+localparam STATE_DATA       = 2'd2;
+localparam STATE_REG        = 2'd3;
+
+reg [STATE_W-1:0]   state_q;
+
+//-----------------------------------------------------------------
+// Local Params
+//-----------------------------------------------------------------
+localparam REG_FUNC_CTRL = 8'h84;
+localparam REG_OTG_CTRL  = 8'h8a;
+localparam REG_TRANSMIT  = 8'h40;
+localparam REG_WRITE     = 8'h80;
+localparam REG_READ      = 8'hC0;
+
+//-----------------------------------------------------------------
+// UTMI Mode Select
+//-----------------------------------------------------------------
+reg         mode_update_q;
+reg [1:0]   xcvrselect_q;
+reg         termselect_q;
+reg [1:0]   opmode_q;
+reg         phy_reset_q;
+reg         mode_write_q;
+
+// Detect register write completion
+wire mode_complete_w = (state_q == STATE_REG &&
+                        mode_write_q         && 
+                        ulpi_nxt_i           && 
+                        !ulpi_dir_i);           // Not interrupted by a Rx
+
+always @ (posedge ulpi_clk60_i or posedge ulpi_rst_i)
+if (ulpi_rst_i)
+begin
+    mode_update_q   <= 1'b0;
+    xcvrselect_q    <= 2'b0;
+    termselect_q    <= 1'b0;
+    opmode_q        <= 2'b11;
+    phy_reset_q     <= 1'b1;
+end
+else
+begin
+    xcvrselect_q    <= utmi_xcvrselect_i;
+    termselect_q    <= utmi_termselect_i;
+    opmode_q        <= utmi_op_mode_i;
+
+    if (mode_update_q && mode_complete_w)
+    begin
+        mode_update_q <= 1'b0;
+        phy_reset_q   <= 1'b0;
+    end
+    else if (opmode_q     != utmi_op_mode_i     ||
+             termselect_q != utmi_termselect_i ||
+             xcvrselect_q != utmi_xcvrselect_i)
+        mode_update_q <= 1'b1;
+end
+
+//-----------------------------------------------------------------
+// UTMI OTG Control
+//-----------------------------------------------------------------
+reg otg_update_q;
+reg dppulldown_q;
+reg dmpulldown_q;
+reg otg_write_q;
+
+// Detect register write completion
+wire otg_complete_w  = (state_q == STATE_REG &&
+                        otg_write_q         && 
+                        ulpi_nxt_i           && 
+                        !ulpi_dir_i);           // Not interrupted by a Rx
+
+always @ (posedge ulpi_clk60_i or posedge ulpi_rst_i)
+if (ulpi_rst_i)
+begin
+    otg_update_q    <= 1'b0;
+    dppulldown_q    <= 1'b1;
+    dmpulldown_q    <= 1'b1;
+end
+else
+begin
+    dppulldown_q    <= utmi_dppulldown_i;
+    dmpulldown_q    <= utmi_dmpulldown_i;
+
+    if (otg_update_q && otg_complete_w)
+        otg_update_q <= 1'b0;
+    else if (dppulldown_q != utmi_dppulldown_i ||
+             dmpulldown_q != utmi_dmpulldown_i)
+        otg_update_q <= 1'b1;
+end
+
+//-----------------------------------------------------------------
+// Bus turnaround detect
+//-----------------------------------------------------------------
+reg ulpi_dir_q;
+
+always @ (posedge ulpi_clk60_i or posedge ulpi_rst_i)
+if (ulpi_rst_i)
+    ulpi_dir_q <= 1'b0;
+else
+    ulpi_dir_q <= ulpi_dir_i;
+
+wire turnaround_w = ulpi_dir_q ^ ulpi_dir_i;
+
+//-----------------------------------------------------------------
+// Rx - Tx delay
+//-----------------------------------------------------------------
+localparam TX_DELAY_W       = 3;
+localparam TX_START_DELAY   = 3'd7;
+
+reg [TX_DELAY_W-1:0] tx_delay_q;
+
+always @ (posedge ulpi_clk60_i or posedge ulpi_rst_i)
+if (ulpi_rst_i)
+    tx_delay_q <= {TX_DELAY_W{1'b0}};
+else if (utmi_rxactive_o)
+    tx_delay_q <= TX_START_DELAY;
+else if (tx_delay_q != {TX_DELAY_W{1'b0}})
+    tx_delay_q <= tx_delay_q - 1;
+
+wire tx_delay_complete_w = (tx_delay_q == {TX_DELAY_W{1'b0}});
+
+//-----------------------------------------------------------------
+// Tx Buffer - decouple UTMI Tx from PHY I/O
+//-----------------------------------------------------------------
+reg [7:0] tx_buffer_q[0:1];
+reg       tx_valid_q[0:1];
+reg       tx_wr_idx_q;
+reg       tx_rd_idx_q;
+
+wire      utmi_tx_ready_w;
+wire      utmi_tx_accept_w;
+
+always @ (posedge ulpi_clk60_i or posedge ulpi_rst_i)
+if (ulpi_rst_i)
+begin
+    tx_buffer_q[0] <= 8'b0;
+    tx_buffer_q[1] <= 8'b0;
+    tx_valid_q[0]  <= 1'b0;
+    tx_valid_q[1]  <= 1'b0;
+    tx_wr_idx_q    <= 1'b0;
+    tx_rd_idx_q    <= 1'b0;
+end    
+else
+begin
+    // Push
+    if (utmi_txvalid_i && utmi_txready_o)
+    begin
+        tx_buffer_q[tx_wr_idx_q] <= utmi_data_out_i;
+        tx_valid_q[tx_wr_idx_q]  <= 1'b1;
+
+        tx_wr_idx_q <= tx_wr_idx_q + 1'b1;
+    end
+
+    // Pop
+    if (utmi_tx_ready_w && utmi_tx_accept_w)
+    begin
+        tx_valid_q[tx_rd_idx_q]  <= 1'b0;
+        tx_rd_idx_q <= tx_rd_idx_q + 1'b1;
+    end
+end
+
+// Tx buffer space (only accept after Rx->Tx turnaround delay)
+assign utmi_txready_o  = ~tx_valid_q[tx_wr_idx_q] & tx_delay_complete_w;
+
+assign utmi_tx_ready_w = tx_valid_q[tx_rd_idx_q];
+
+wire [7:0] utmi_tx_data_w = tx_buffer_q[tx_rd_idx_q];
+
+//-----------------------------------------------------------------
+// Implementation
+//-----------------------------------------------------------------
+
+// Xilinx placement pragmas:
+//synthesis attribute IOB of ulpi_data_q is "TRUE"
+//synthesis attribute IOB of ulpi_stp_q is "TRUE"
+
+reg [7:0]           ulpi_data_q;
+reg                 ulpi_stp_q;
+reg [7:0]           data_q;
+
+reg                 utmi_rxvalid_q;
+reg                 utmi_rxerror_q;
+reg                 utmi_rxactive_q;
+reg [1:0]           utmi_linestate_q;
+reg [7:0]           utmi_data_q;
+
+always @ (posedge ulpi_clk60_i or posedge ulpi_rst_i)
+if (ulpi_rst_i)
+begin
+    state_q             <= STATE_IDLE;
+    ulpi_data_q         <= 8'b0;
+    data_q              <= 8'b0;
+    ulpi_stp_q          <= 1'b1;
+
+    utmi_rxvalid_q      <= 1'b0;
+    utmi_rxerror_q      <= 1'b0;
+    utmi_rxactive_q     <= 1'b0;
+    utmi_linestate_q    <= 2'b0;
+    utmi_data_q         <= 8'b0;
+
+    mode_write_q        <= 1'b0;
+    otg_write_q         <= 1'b0;
+end
+else
+begin
+    ulpi_stp_q          <= 1'b0;
+    utmi_rxvalid_q      <= 1'b0;
+
+    // Turnaround: Input + NXT - set RX_ACTIVE
+    if (turnaround_w && ulpi_dir_i && ulpi_nxt_i)
+    begin
+        utmi_rxactive_q <= 1'b1;
+
+        // Register write - abort
+        if (state_q == STATE_REG)
+        begin
+            state_q       <= STATE_IDLE;
+            ulpi_data_q   <= 8'b0;  // IDLE
+        end
+    end
+    // Turnaround: Input -> Output - reset RX_ACTIVE
+    else if (turnaround_w && !ulpi_dir_i)
+    begin
+        utmi_rxactive_q <= 1'b0;
+
+        // Register write - abort
+        if (state_q == STATE_REG)
+        begin
+            state_q       <= STATE_IDLE;
+            ulpi_data_q   <= 8'b0;  // IDLE
+        end
+    end
+    // Non-turnaround cycle
+    else if (!turnaround_w)
+    begin
+        //-----------------------------------------------------------------
+        // Input: RX_CMD (status)
+        //-----------------------------------------------------------------
+        if (ulpi_dir_i && !ulpi_nxt_i)
+        begin
+            // Phy status
+            utmi_linestate_q <= ulpi_data_out_i[1:0];
+
+            case (ulpi_data_out_i[5:4])
+            2'b00:
+            begin
+                utmi_rxactive_q <= 1'b0;
+                utmi_rxerror_q  <= 1'b0;
+            end
+            2'b01: 
+            begin
+                utmi_rxactive_q <= 1'b1;
+                utmi_rxerror_q  <= 1'b0;
+            end
+            2'b11:
+            begin
+                utmi_rxactive_q <= 1'b1;
+                utmi_rxerror_q  <= 1'b1;
+            end
+            default:
+                ; // HOST_DISCONNECTED
+            endcase
+        end
+        //-----------------------------------------------------------------
+        // Input: RX_DATA
+        //-----------------------------------------------------------------
+        else if (ulpi_dir_i && ulpi_nxt_i)
+        begin
+            utmi_rxvalid_q  <= 1'b1;
+            utmi_data_q     <= ulpi_data_out_i;
+        end
+        //-----------------------------------------------------------------
+        // Output
+        //-----------------------------------------------------------------
+        else if (!ulpi_dir_i)
+        begin        
+            // IDLE: Pending mode update
+            if ((state_q == STATE_IDLE) && mode_update_q)
+            begin
+                data_q        <= {1'b0, 1'b1, phy_reset_q, opmode_q, termselect_q, xcvrselect_q};
+                ulpi_data_q   <= REG_FUNC_CTRL;
+
+                otg_write_q   <= 1'b0;
+                mode_write_q  <= 1'b1;
+
+                state_q       <= STATE_CMD;
+            end
+            // IDLE: Pending OTG control update
+            else if ((state_q == STATE_IDLE) && otg_update_q)
+            begin
+                data_q        <= {5'b0, dmpulldown_q, dppulldown_q, 1'b0};
+                ulpi_data_q   <= REG_OTG_CTRL;
+
+                otg_write_q   <= 1'b1;
+                mode_write_q  <= 1'b0;
+
+                state_q       <= STATE_CMD;
+            end
+            // IDLE: Pending transmit
+            else if ((state_q == STATE_IDLE) && utmi_tx_ready_w)
+            begin
+                ulpi_data_q <= REG_TRANSMIT | {4'b0, utmi_tx_data_w[3:0]};
+                state_q     <= STATE_DATA;
+            end
+            // Command
+            else if ((state_q == STATE_CMD) && ulpi_nxt_i)
+            begin
+                // Write Register
+                state_q     <= STATE_REG;
+                ulpi_data_q <= data_q;
+            end
+            // Data (register write)
+            else if (state_q == STATE_REG && ulpi_nxt_i)
+            begin
+                state_q       <= STATE_IDLE;
+                ulpi_data_q   <= 8'b0;  // IDLE
+                ulpi_stp_q    <= 1'b1;
+
+                otg_write_q   <= 1'b0;
+                mode_write_q  <= 1'b0;
+            end
+            // Data
+            else if (state_q == STATE_DATA && ulpi_nxt_i)
+            begin
+                // End of packet
+                if (!utmi_tx_ready_w)
+                begin
+                    state_q       <= STATE_IDLE;
+                    ulpi_data_q   <= 8'b0;  // IDLE
+                    ulpi_stp_q    <= 1'b1;
+                end
+                else
+                begin
+                    state_q        <= STATE_DATA;
+                    ulpi_data_q    <= utmi_tx_data_w;
+                end
+            end
+        end
+    end
+end
+
+// Accept from buffer
+assign utmi_tx_accept_w = ((state_q == STATE_IDLE) && !(mode_update_q || otg_update_q || turnaround_w) && !ulpi_dir_i) ||
+                          (state_q == STATE_DATA && ulpi_nxt_i && !ulpi_dir_i);
+
+//-----------------------------------------------------------------
+// Assignments
+//-----------------------------------------------------------------
+// ULPI Interface
+assign ulpi_data_in_o       = ulpi_data_q;
+assign ulpi_stp_o           = ulpi_stp_q;
+
+// UTMI Interface
+assign utmi_linestate_o     = utmi_linestate_q;
+assign utmi_data_in_o       = utmi_data_q;
+assign utmi_rxerror_o       = utmi_rxerror_q;
+assign utmi_rxactive_o      = utmi_rxactive_q;
+assign utmi_rxvalid_o       = utmi_rxvalid_q;
+
+
+
+endmodule

+ 1116 - 0
fpga/usb/usb_serial/src_v/usb_cdc_core.v

@@ -0,0 +1,1116 @@
+//-----------------------------------------------------------------
+//                       USB Serial Port
+//                            V0.1
+//                     Ultra-Embedded.com
+//                       Copyright 2020
+//
+//                 Email: admin@ultra-embedded.com
+//
+//                         License: LGPL
+//-----------------------------------------------------------------
+//
+// This source file may be used and distributed without         
+// restriction provided that this copyright statement is not    
+// removed from the file and that any derivative work contains  
+// the original copyright notice and the associated disclaimer. 
+//
+// This source file is free software; you can redistribute it   
+// and/or modify it under the terms of the GNU Lesser General   
+// Public License as published by the Free Software Foundation; 
+// either version 2.1 of the License, or (at your option) any   
+// later version.
+//
+// This source is distributed in the hope that it will be       
+// useful, but WITHOUT ANY WARRANTY; without even the implied   
+// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      
+// PURPOSE.  See the GNU Lesser General Public License for more 
+// details.
+//
+// You should have received a copy of the GNU Lesser General    
+// Public License along with this source; if not, write to the 
+// Free Software Foundation, Inc., 59 Temple Place, Suite 330, 
+// Boston, MA  02111-1307  USA
+//-----------------------------------------------------------------
+
+//-----------------------------------------------------------------
+//                          Generated File
+//-----------------------------------------------------------------
+
+module usb_cdc_core
+(
+    // Inputs
+     input           clk_i
+    ,input           rst_i
+    ,input           enable_i
+    ,input  [  7:0]  utmi_data_in_i
+    ,input           utmi_txready_i
+    ,input           utmi_rxvalid_i
+    ,input           utmi_rxactive_i
+    ,input           utmi_rxerror_i
+    ,input  [  1:0]  utmi_linestate_i
+    ,input           inport_valid_i
+    ,input  [  7:0]  inport_data_i
+    ,input           outport_accept_i
+
+    // Outputs
+    ,output [  7:0]  utmi_data_out_o
+    ,output          utmi_txvalid_o
+    ,output [  1:0]  utmi_op_mode_o
+    ,output [  1:0]  utmi_xcvrselect_o
+    ,output          utmi_termselect_o
+    ,output          utmi_dppulldown_o
+    ,output          utmi_dmpulldown_o
+    ,output          inport_accept_o
+    ,output          outport_valid_o
+    ,output [  7:0]  outport_data_o
+);
+
+
+
+
+parameter USB_SPEED_HS = "False"; // True or False
+
+//-----------------------------------------------------------------
+// Defines
+//-----------------------------------------------------------------
+// Device class
+`define DEV_CLASS_RESERVED              8'h00
+`define DEV_CLASS_AUDIO                 8'h01
+`define DEV_CLASS_COMMS                 8'h02
+`define DEV_CLASS_HID                   8'h03
+`define DEV_CLASS_MONITOR               8'h04
+`define DEV_CLASS_PHY_IF                8'h05
+`define DEV_CLASS_POWER                 8'h06
+`define DEV_CLASS_PRINTER               8'h07
+`define DEV_CLASS_STORAGE               8'h08
+`define DEV_CLASS_HUB                   8'h09
+`define DEV_CLASS_TMC                   8'hFE
+`define DEV_CLASS_VENDOR_CUSTOM         8'hFF
+
+// Standard requests (via SETUP packets)
+`define REQ_GET_STATUS                  8'h00
+`define REQ_CLEAR_FEATURE               8'h01
+`define REQ_SET_FEATURE                 8'h03
+`define REQ_SET_ADDRESS                 8'h05
+`define REQ_GET_DESCRIPTOR              8'h06
+`define REQ_SET_DESCRIPTOR              8'h07
+`define REQ_GET_CONFIGURATION           8'h08
+`define REQ_SET_CONFIGURATION           8'h09
+`define REQ_GET_INTERFACE               8'h0A
+`define REQ_SET_INTERFACE               8'h0B
+`define REQ_SYNC_FRAME                  8'h0C
+
+// Descriptor types
+`define DESC_DEVICE                     8'h01
+`define DESC_CONFIGURATION              8'h02
+`define DESC_STRING                     8'h03
+`define DESC_INTERFACE                  8'h04
+`define DESC_ENDPOINT                   8'h05
+`define DESC_DEV_QUALIFIER              8'h06
+`define DESC_OTHER_SPEED_CONF           8'h07
+`define DESC_IF_POWER                   8'h08
+
+// Endpoints
+`define ENDPOINT_DIR_MASK               8'h80
+`define ENDPOINT_DIR_R                  7
+`define ENDPOINT_DIR_IN                 1'b1
+`define ENDPOINT_DIR_OUT                1'b0
+`define ENDPOINT_ADDR_MASK              8'h7F
+`define ENDPOINT_TYPE_MASK              8'h3
+`define ENDPOINT_TYPE_CONTROL           0
+`define ENDPOINT_TYPE_ISO               1
+`define ENDPOINT_TYPE_BULK              2
+`define ENDPOINT_TYPE_INTERRUPT         3
+
+// Device Requests (bmRequestType)
+`define USB_RECIPIENT_MASK              8'h1F
+`define USB_RECIPIENT_DEVICE            8'h00
+`define USB_RECIPIENT_INTERFACE         8'h01
+`define USB_RECIPIENT_ENDPOINT          8'h02
+`define USB_REQUEST_TYPE_MASK           8'h60
+`define USB_STANDARD_REQUEST            8'h00
+`define USB_CLASS_REQUEST               8'h20
+`define USB_VENDOR_REQUEST              8'h40
+
+// USB device addresses are 7-bits
+`define USB_ADDRESS_MASK                8'h7F
+
+// USB Feature Selectors
+`define USB_FEATURE_ENDPOINT_STATE      16'h0000
+`define USB_FEATURE_REMOTE_WAKEUP       16'h0001
+`define USB_FEATURE_TEST_MODE           16'h0002
+
+// String Descriptors
+`define UNICODE_LANGUAGE_STR_ID         8'd0
+`define MANUFACTURER_STR_ID             8'd1
+`define PRODUCT_NAME_STR_ID             8'd2
+`define SERIAL_NUM_STR_ID               8'd3
+
+`define CDC_ENDPOINT_BULK_OUT           1
+`define CDC_ENDPOINT_BULK_IN            2
+`define CDC_ENDPOINT_INTR_IN            3
+
+`define CDC_SEND_ENCAPSULATED_COMMAND   8'h00
+`define CDC_GET_ENCAPSULATED_RESPONSE   8'h01
+`define CDC_GET_LINE_CODING             8'h21
+`define CDC_SET_LINE_CODING             8'h20
+`define CDC_SET_CONTROL_LINE_STATE      8'h22
+`define CDC_SEND_BREAK                  8'h23
+
+// Descriptor ROM offsets / sizes
+`define ROM_DESC_DEVICE_ADDR            8'd0
+`define ROM_DESC_DEVICE_SIZE            16'd18
+`define ROM_DESC_CONF_ADDR              8'd18
+`define ROM_DESC_CONF_SIZE              16'd67
+`define ROM_DESC_STR_LANG_ADDR          8'd85
+`define ROM_DESC_STR_LANG_SIZE          16'd4
+`define ROM_DESC_STR_MAN_ADDR           8'd89
+`define ROM_DESC_STR_MAN_SIZE           16'd30
+`define ROM_DESC_STR_PROD_ADDR          8'd119
+`define ROM_DESC_STR_PROD_SIZE          16'd30
+`define ROM_DESC_STR_SERIAL_ADDR        8'd149
+`define ROM_DESC_STR_SERIAL_SIZE        16'd14
+`define ROM_CDC_LINE_CODING_ADDR        8'd163
+`define ROM_CDC_LINE_CODING_SIZE        16'd7
+
+//-----------------------------------------------------------------
+// Wires
+//-----------------------------------------------------------------
+wire         usb_reset_w;
+reg  [6:0]   device_addr_q;
+
+wire         usb_ep0_tx_rd_w;
+wire [7:0]   usb_ep0_tx_data_w;
+wire         usb_ep0_tx_empty_w;
+
+wire         usb_ep0_rx_wr_w;
+wire [7:0]   usb_ep0_rx_data_w;
+wire         usb_ep0_rx_full_w;
+wire         usb_ep1_tx_rd_w;
+wire [7:0]   usb_ep1_tx_data_w;
+wire         usb_ep1_tx_empty_w;
+
+wire         usb_ep1_rx_wr_w;
+wire [7:0]   usb_ep1_rx_data_w;
+wire         usb_ep1_rx_full_w;
+wire         usb_ep2_tx_rd_w;
+wire [7:0]   usb_ep2_tx_data_w;
+wire         usb_ep2_tx_empty_w;
+
+wire         usb_ep2_rx_wr_w;
+wire [7:0]   usb_ep2_rx_data_w;
+wire         usb_ep2_rx_full_w;
+wire         usb_ep3_tx_rd_w;
+wire [7:0]   usb_ep3_tx_data_w;
+wire         usb_ep3_tx_empty_w;
+
+wire         usb_ep3_rx_wr_w;
+wire [7:0]   usb_ep3_rx_data_w;
+wire         usb_ep3_rx_full_w;
+
+// Rx SIE Interface (shared)
+wire        rx_strb_w;
+wire [7:0]  rx_data_w;
+wire        rx_last_w;
+wire        rx_crc_err_w;
+
+// EP0 Rx SIE Interface
+wire        ep0_rx_space_w;
+wire        ep0_rx_valid_w;
+wire        ep0_rx_setup_w;
+
+// EP0 Tx SIE Interface
+wire        ep0_tx_ready_w;
+wire        ep0_tx_data_valid_w;
+wire        ep0_tx_data_strb_w;
+wire [7:0]  ep0_tx_data_w;
+wire        ep0_tx_data_last_w;
+wire        ep0_tx_data_accept_w;
+wire        ep0_tx_stall_w;
+// EP1 Rx SIE Interface
+wire        ep1_rx_space_w;
+wire        ep1_rx_valid_w;
+wire        ep1_rx_setup_w;
+
+// EP1 Tx SIE Interface
+wire        ep1_tx_ready_w;
+wire        ep1_tx_data_valid_w;
+wire        ep1_tx_data_strb_w;
+wire [7:0]  ep1_tx_data_w;
+wire        ep1_tx_data_last_w;
+wire        ep1_tx_data_accept_w;
+wire        ep1_tx_stall_w;
+// EP2 Rx SIE Interface
+wire        ep2_rx_space_w;
+wire        ep2_rx_valid_w;
+wire        ep2_rx_setup_w;
+
+// EP2 Tx SIE Interface
+wire        ep2_tx_ready_w;
+wire        ep2_tx_data_valid_w;
+wire        ep2_tx_data_strb_w;
+wire [7:0]  ep2_tx_data_w;
+wire        ep2_tx_data_last_w;
+wire        ep2_tx_data_accept_w;
+wire        ep2_tx_stall_w;
+// EP3 Rx SIE Interface
+wire        ep3_rx_space_w;
+wire        ep3_rx_valid_w;
+wire        ep3_rx_setup_w;
+
+// EP3 Tx SIE Interface
+wire        ep3_tx_ready_w;
+wire        ep3_tx_data_valid_w;
+wire        ep3_tx_data_strb_w;
+wire [7:0]  ep3_tx_data_w;
+wire        ep3_tx_data_last_w;
+wire        ep3_tx_data_accept_w;
+wire        ep3_tx_stall_w;
+
+wire utmi_chirp_en_w;
+wire usb_hs_w;
+
+//-----------------------------------------------------------------
+// Transceiver Control (high speed)
+//-----------------------------------------------------------------
+generate 
+if (USB_SPEED_HS == "True")
+begin
+
+localparam STATE_W                       = 3;
+localparam STATE_IDLE                    = 3'd0;
+localparam STATE_WAIT_RST                = 3'd1;
+localparam STATE_SEND_CHIRP_K            = 3'd2;
+localparam STATE_WAIT_CHIRP_JK           = 3'd3;
+localparam STATE_FULLSPEED               = 3'd4;
+localparam STATE_HIGHSPEED               = 3'd5;
+reg [STATE_W-1:0] state_q;
+reg [STATE_W-1:0] next_state_r;
+
+// 60MHz clock rate
+`define USB_RST_W  20
+reg [`USB_RST_W-1:0] usb_rst_time_q;
+reg [7:0]            chirp_count_q;
+reg [1:0]            last_linestate_q;
+
+localparam DETACH_TIME    = 20'd60000;  // 1ms -> T0
+localparam ATTACH_FS_TIME = 20'd180000; // T0 + 3ms = T1
+localparam CHIRPK_TIME    = 20'd246000; // T1 + ~1ms
+localparam HS_RESET_TIME  = 20'd600000; // T0 + 10ms = T9
+localparam HS_CHIRP_COUNT = 8'd5;
+
+reg [  1:0]  utmi_op_mode_r;
+reg [  1:0]  utmi_xcvrselect_r;
+reg          utmi_termselect_r;
+reg          utmi_dppulldown_r;
+reg          utmi_dmpulldown_r;
+
+always @ *
+begin
+    next_state_r = state_q;
+
+    // Default - disconnect
+    utmi_op_mode_r    = 2'd1;
+    utmi_xcvrselect_r = 2'd0;
+    utmi_termselect_r = 1'b0;
+    utmi_dppulldown_r = 1'b0;
+    utmi_dmpulldown_r = 1'b0;
+
+    case (state_q)
+    STATE_IDLE:
+    begin
+        // Detached
+        if (enable_i && usb_rst_time_q >= DETACH_TIME)
+            next_state_r = STATE_WAIT_RST;
+    end
+    STATE_WAIT_RST:
+    begin
+        // Assert FS mode, check for SE0 (T0)
+        utmi_op_mode_r    = 2'd0;
+        utmi_xcvrselect_r = 2'd1;
+        utmi_termselect_r = 1'b1;
+        utmi_dppulldown_r = 1'b0;
+        utmi_dmpulldown_r = 1'b0;
+
+        // Wait for SE0 (T1), send device chirp K
+        if (usb_rst_time_q >= ATTACH_FS_TIME)
+            next_state_r = STATE_SEND_CHIRP_K;
+    end
+    STATE_SEND_CHIRP_K:
+    begin
+        // Send chirp K
+        utmi_op_mode_r    = 2'd2;
+        utmi_xcvrselect_r = 2'd0;
+        utmi_termselect_r = 1'b1;
+        utmi_dppulldown_r = 1'b0;
+        utmi_dmpulldown_r = 1'b0;
+
+        // End of device chirp K (T2)
+        if (usb_rst_time_q >= CHIRPK_TIME)
+            next_state_r = STATE_WAIT_CHIRP_JK;
+    end
+    STATE_WAIT_CHIRP_JK:
+    begin
+        // Stop sending chirp K and wait for downstream port chirps
+        utmi_op_mode_r    = 2'd2;
+        utmi_xcvrselect_r = 2'd0;
+        utmi_termselect_r = 1'b1;
+        utmi_dppulldown_r = 1'b0;
+        utmi_dmpulldown_r = 1'b0;
+
+        // Required number of chirps detected, move to HS mode (T7)
+        if (chirp_count_q >= HS_CHIRP_COUNT)
+            next_state_r = STATE_HIGHSPEED;
+        // Time out waiting for chirps, fallback to FS mode
+        else if (usb_rst_time_q >= HS_RESET_TIME)
+            next_state_r = STATE_FULLSPEED;
+    end
+    STATE_FULLSPEED:
+    begin
+        utmi_op_mode_r    = 2'd0;
+        utmi_xcvrselect_r = 2'd1;
+        utmi_termselect_r = 1'b1;
+        utmi_dppulldown_r = 1'b0;
+        utmi_dmpulldown_r = 1'b0;
+
+        // USB reset detected...
+        if (usb_rst_time_q >= HS_RESET_TIME && usb_reset_w)
+            next_state_r = STATE_WAIT_RST;
+    end
+    STATE_HIGHSPEED:
+    begin
+        // Enter HS mode
+        utmi_op_mode_r    = 2'd0;
+        utmi_xcvrselect_r = 2'd0;
+        utmi_termselect_r = 1'b0;
+        utmi_dppulldown_r = 1'b0;
+        utmi_dmpulldown_r = 1'b0;
+
+        // Long SE0 - could be reset or suspend
+        // TODO: Should revert to FS mode and check...
+        if (usb_rst_time_q >= HS_RESET_TIME && usb_reset_w)
+            next_state_r = STATE_WAIT_RST;
+    end
+    default:
+        ;
+    endcase
+end
+
+// Update state
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    state_q   <= STATE_IDLE;
+else
+    state_q   <= next_state_r;
+
+// Time since T0 (start of HS reset)
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    usb_rst_time_q <= `USB_RST_W'b0;
+// Entering wait for reset state
+else if (next_state_r == STATE_WAIT_RST && state_q != STATE_WAIT_RST)
+    usb_rst_time_q <=  `USB_RST_W'b0;
+// Waiting for reset, reset count on line state toggle
+else if (state_q == STATE_WAIT_RST && (utmi_linestate_i != 2'b00))
+    usb_rst_time_q <=  `USB_RST_W'b0;
+else if (usb_rst_time_q != {(`USB_RST_W){1'b1}})
+    usb_rst_time_q <= usb_rst_time_q + `USB_RST_W'd1;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    last_linestate_q   <= 2'b0;
+else
+    last_linestate_q   <= utmi_linestate_i;
+
+// Chirp counter
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    chirp_count_q   <= 8'b0;
+else if (state_q == STATE_SEND_CHIRP_K)
+    chirp_count_q   <= 8'b0;
+else if (state_q == STATE_WAIT_CHIRP_JK && (last_linestate_q != utmi_linestate_i) && chirp_count_q != 8'hFF)
+    chirp_count_q   <= chirp_count_q + 8'd1;
+
+assign utmi_op_mode_o    = utmi_op_mode_r;
+assign utmi_xcvrselect_o = utmi_xcvrselect_r;
+assign utmi_termselect_o = utmi_termselect_r;
+assign utmi_dppulldown_o = utmi_dppulldown_r;
+assign utmi_dmpulldown_o = utmi_dmpulldown_r;
+
+assign utmi_chirp_en_w   = (state_q == STATE_SEND_CHIRP_K);
+assign usb_hs_w          = (state_q == STATE_HIGHSPEED);
+
+end
+else
+begin
+//-----------------------------------------------------------------
+// Transceiver Control
+//-----------------------------------------------------------------
+reg [  1:0]  utmi_op_mode_r;
+reg [  1:0]  utmi_xcvrselect_r;
+reg          utmi_termselect_r;
+reg          utmi_dppulldown_r;
+reg          utmi_dmpulldown_r;
+
+always @ *
+begin
+    if (enable_i)
+    begin
+        utmi_op_mode_r    = 2'd0;
+        utmi_xcvrselect_r = 2'd1;
+        utmi_termselect_r = 1'b1;
+        utmi_dppulldown_r = 1'b0;
+        utmi_dmpulldown_r = 1'b0;
+    end
+    else
+    begin
+        utmi_op_mode_r    = 2'd1;
+        utmi_xcvrselect_r = 2'd0;
+        utmi_termselect_r = 1'b0;
+        utmi_dppulldown_r = 1'b0;
+        utmi_dmpulldown_r = 1'b0;
+    end
+end
+
+assign utmi_op_mode_o    = utmi_op_mode_r;
+assign utmi_xcvrselect_o = utmi_xcvrselect_r;
+assign utmi_termselect_o = utmi_termselect_r;
+assign utmi_dppulldown_o = utmi_dppulldown_r;
+assign utmi_dmpulldown_o = utmi_dmpulldown_r;
+
+assign utmi_chirp_en_w   = 1'b0;
+assign usb_hs_w          = 1'b0;
+
+end
+endgenerate
+
+//-----------------------------------------------------------------
+// Core
+//-----------------------------------------------------------------
+usbf_device_core
+u_core
+(
+    .clk_i(clk_i),
+    .rst_i(rst_i),
+
+    .intr_o(),
+
+    // UTMI interface
+    .utmi_data_o(utmi_data_out_o),
+    .utmi_data_i(utmi_data_in_i),
+    .utmi_txvalid_o(utmi_txvalid_o),
+    .utmi_txready_i(utmi_txready_i),
+    .utmi_rxvalid_i(utmi_rxvalid_i),
+    .utmi_rxactive_i(utmi_rxactive_i),
+    .utmi_rxerror_i(utmi_rxerror_i),
+    .utmi_linestate_i(utmi_linestate_i),
+
+    .reg_chirp_en_i(utmi_chirp_en_w),
+    .reg_int_en_sof_i(1'b0),
+
+    .reg_dev_addr_i(device_addr_q),
+
+    // Rx SIE Interface (shared)
+    .rx_strb_o(rx_strb_w),
+    .rx_data_o(rx_data_w),
+    .rx_last_o(rx_last_w),
+    .rx_crc_err_o(rx_crc_err_w),
+
+    // EP0 Config
+    .ep0_iso_i(1'b0),
+    .ep0_stall_i(ep0_tx_stall_w),
+    .ep0_cfg_int_rx_i(1'b0),
+    .ep0_cfg_int_tx_i(1'b0),
+
+    // EP0 Rx SIE Interface
+    .ep0_rx_setup_o(ep0_rx_setup_w),
+    .ep0_rx_valid_o(ep0_rx_valid_w),
+    .ep0_rx_space_i(ep0_rx_space_w),
+
+    // EP0 Tx SIE Interface
+    .ep0_tx_ready_i(ep0_tx_ready_w),
+    .ep0_tx_data_valid_i(ep0_tx_data_valid_w),
+    .ep0_tx_data_strb_i(ep0_tx_data_strb_w),
+    .ep0_tx_data_i(ep0_tx_data_w),
+    .ep0_tx_data_last_i(ep0_tx_data_last_w),
+    .ep0_tx_data_accept_o(ep0_tx_data_accept_w),
+
+    // EP1 Config
+    .ep1_iso_i(1'b0),
+    .ep1_stall_i(ep1_tx_stall_w),
+    .ep1_cfg_int_rx_i(1'b0),
+    .ep1_cfg_int_tx_i(1'b0),
+
+    // EP1 Rx SIE Interface
+    .ep1_rx_setup_o(ep1_rx_setup_w),
+    .ep1_rx_valid_o(ep1_rx_valid_w),
+    .ep1_rx_space_i(ep1_rx_space_w),
+
+    // EP1 Tx SIE Interface
+    .ep1_tx_ready_i(ep1_tx_ready_w),
+    .ep1_tx_data_valid_i(ep1_tx_data_valid_w),
+    .ep1_tx_data_strb_i(ep1_tx_data_strb_w),
+    .ep1_tx_data_i(ep1_tx_data_w),
+    .ep1_tx_data_last_i(ep1_tx_data_last_w),
+    .ep1_tx_data_accept_o(ep1_tx_data_accept_w),
+
+    // EP2 Config
+    .ep2_iso_i(1'b0),
+    .ep2_stall_i(ep2_tx_stall_w),
+    .ep2_cfg_int_rx_i(1'b0),
+    .ep2_cfg_int_tx_i(1'b0),
+
+    // EP2 Rx SIE Interface
+    .ep2_rx_setup_o(ep2_rx_setup_w),
+    .ep2_rx_valid_o(ep2_rx_valid_w),
+    .ep2_rx_space_i(ep2_rx_space_w),
+
+    // EP2 Tx SIE Interface
+    .ep2_tx_ready_i(ep2_tx_ready_w),
+    .ep2_tx_data_valid_i(ep2_tx_data_valid_w),
+    .ep2_tx_data_strb_i(ep2_tx_data_strb_w),
+    .ep2_tx_data_i(ep2_tx_data_w),
+    .ep2_tx_data_last_i(ep2_tx_data_last_w),
+    .ep2_tx_data_accept_o(ep2_tx_data_accept_w),
+
+    // EP3 Config
+    .ep3_iso_i(1'b0),
+    .ep3_stall_i(ep3_tx_stall_w),
+    .ep3_cfg_int_rx_i(1'b0),
+    .ep3_cfg_int_tx_i(1'b0),
+
+    // EP3 Rx SIE Interface
+    .ep3_rx_setup_o(ep3_rx_setup_w),
+    .ep3_rx_valid_o(ep3_rx_valid_w),
+    .ep3_rx_space_i(ep3_rx_space_w),
+
+    // EP3 Tx SIE Interface
+    .ep3_tx_ready_i(ep3_tx_ready_w),
+    .ep3_tx_data_valid_i(ep3_tx_data_valid_w),
+    .ep3_tx_data_strb_i(ep3_tx_data_strb_w),
+    .ep3_tx_data_i(ep3_tx_data_w),
+    .ep3_tx_data_last_i(ep3_tx_data_last_w),
+    .ep3_tx_data_accept_o(ep3_tx_data_accept_w),
+
+    // Status
+    .reg_sts_rst_clr_i(1'b1),
+    .reg_sts_rst_o(usb_reset_w),
+    .reg_sts_frame_num_o()
+);
+
+assign ep0_rx_space_w = 1'b1;
+
+//-----------------------------------------------------------------
+// USB: Setup packet capture (limited to 8 bytes for USB-FS)
+//-----------------------------------------------------------------
+reg [7:0] setup_packet_q[0:7];
+reg [2:0] setup_wr_idx_q;
+reg       setup_frame_q;
+reg       setup_valid_q;
+reg       setup_data_q;
+reg       status_ready_q; // STATUS response received
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+begin
+    setup_packet_q[0]  <= 8'b0;
+    setup_packet_q[1]  <= 8'b0;
+    setup_packet_q[2]  <= 8'b0;
+    setup_packet_q[3]  <= 8'b0;
+    setup_packet_q[4]  <= 8'b0;
+    setup_packet_q[5]  <= 8'b0;
+    setup_packet_q[6]  <= 8'b0;
+    setup_packet_q[7]  <= 8'b0;
+    setup_wr_idx_q     <= 3'b0;
+    setup_valid_q      <= 1'b0;
+    setup_frame_q      <= 1'b0;
+    setup_data_q       <= 1'b0;
+    status_ready_q     <= 1'b0;
+end
+// SETUP token received
+else if (ep0_rx_setup_w)
+begin
+    setup_packet_q[0]  <= 8'b0;
+    setup_packet_q[1]  <= 8'b0;
+    setup_packet_q[2]  <= 8'b0;
+    setup_packet_q[3]  <= 8'b0;
+    setup_packet_q[4]  <= 8'b0;
+    setup_packet_q[5]  <= 8'b0;
+    setup_packet_q[6]  <= 8'b0;
+    setup_packet_q[7]  <= 8'b0;
+    setup_wr_idx_q     <= 3'b0;
+    setup_valid_q      <= 1'b0;
+    setup_frame_q      <= 1'b1;
+    setup_data_q       <= 1'b0;
+    status_ready_q     <= 1'b0;
+end
+// Valid DATA for setup frame
+else if (ep0_rx_valid_w && rx_strb_w)
+begin
+    setup_packet_q[setup_wr_idx_q] <= rx_data_w;
+    setup_wr_idx_q      <= setup_wr_idx_q + 3'd1;
+    setup_valid_q       <= setup_frame_q && rx_last_w;
+    setup_data_q        <= !setup_frame_q && rx_last_w;
+    if (rx_last_w)
+        setup_frame_q   <= 1'b0;
+end
+// Detect STATUS stage (ACK for SETUP GET requests)
+// TODO: Not quite correct .... 
+else if (ep0_rx_valid_w && !rx_strb_w && rx_last_w)
+begin
+    setup_valid_q       <= 1'b0;
+    status_ready_q      <= 1'b1;
+end
+else
+    setup_valid_q       <= 1'b0;
+
+//-----------------------------------------------------------------
+// SETUP request decode
+//-----------------------------------------------------------------
+wire [7:0]  bmRequestType_w = setup_packet_q[0];
+wire [7:0]  bRequest_w      = setup_packet_q[1];
+wire [15:0] wValue_w        = {setup_packet_q[3], setup_packet_q[2]};
+wire [15:0] wIndex_w        = {setup_packet_q[5], setup_packet_q[4]};
+wire [15:0] wLength         = {setup_packet_q[7], setup_packet_q[6]};
+
+wire setup_get_w            = setup_valid_q && (bmRequestType_w[`ENDPOINT_DIR_R] == `ENDPOINT_DIR_IN);
+wire setup_set_w            = setup_valid_q && (bmRequestType_w[`ENDPOINT_DIR_R] == `ENDPOINT_DIR_OUT);
+wire setup_no_data_w        = setup_set_w && (wLength == 16'b0);
+
+// For REQ_GET_DESCRIPTOR
+wire [7:0]  bDescriptorType_w  = setup_packet_q[3];
+wire [7:0]  bDescriptorIndex_w = setup_packet_q[2];
+
+//-----------------------------------------------------------------
+// Process setup request
+//-----------------------------------------------------------------
+reg        ctrl_stall_r; // Send STALL
+reg        ctrl_ack_r;   // Send STATUS (ZLP)
+reg [15:0] ctrl_get_len_r;
+
+reg [7:0]  desc_addr_r;
+
+reg        addressed_q;
+reg        addressed_r;
+reg [6:0]  device_addr_r;
+
+reg        configured_q;
+reg        configured_r;
+
+reg        set_with_data_q;
+reg        set_with_data_r;
+wire       data_status_zlp_w;
+
+always @ *
+begin
+    ctrl_stall_r    = 1'b0;
+    ctrl_get_len_r  = 16'b0;
+    ctrl_ack_r      = 1'b0;
+    desc_addr_r     = 8'b0;
+    device_addr_r   = device_addr_q;
+    addressed_r     = addressed_q;
+    configured_r    = configured_q;
+    set_with_data_r = set_with_data_q;
+
+    if (setup_valid_q)
+    begin
+        set_with_data_r = 1'b0;
+
+        case (bmRequestType_w & `USB_REQUEST_TYPE_MASK)
+        `USB_STANDARD_REQUEST:
+        begin
+            case (bRequest_w)
+            `REQ_GET_STATUS:
+            begin
+                $display("GET_STATUS");
+            end
+            `REQ_CLEAR_FEATURE:
+            begin
+                $display("CLEAR_FEATURE");
+                ctrl_ack_r = setup_set_w && setup_no_data_w;
+            end
+            `REQ_SET_FEATURE:
+            begin
+                $display("SET_FEATURE");
+                ctrl_ack_r = setup_set_w && setup_no_data_w;
+            end
+            `REQ_SET_ADDRESS:
+            begin
+                $display("SET_ADDRESS: Set device address %d", wValue_w[6:0]);
+                ctrl_ack_r    = setup_set_w && setup_no_data_w;
+                device_addr_r = wValue_w[6:0];
+                addressed_r   = 1'b1;
+            end
+            `REQ_GET_DESCRIPTOR:
+            begin
+                $display("GET_DESCRIPTOR: Type %d", bDescriptorType_w);
+
+                case (bDescriptorType_w)
+                `DESC_DEVICE:
+                begin
+                    desc_addr_r    = `ROM_DESC_DEVICE_ADDR;
+                    ctrl_get_len_r = `ROM_DESC_DEVICE_SIZE;
+                end
+                `DESC_CONFIGURATION:
+                begin
+                    desc_addr_r    = `ROM_DESC_CONF_ADDR;
+                    ctrl_get_len_r = `ROM_DESC_CONF_SIZE;
+                end
+                `DESC_STRING:
+                begin
+                    case (bDescriptorIndex_w)
+                    `UNICODE_LANGUAGE_STR_ID:
+                    begin
+                        desc_addr_r    = `ROM_DESC_STR_LANG_ADDR;
+                        ctrl_get_len_r = `ROM_DESC_STR_LANG_SIZE;
+                    end
+                    `MANUFACTURER_STR_ID:
+                    begin
+                        desc_addr_r    = `ROM_DESC_STR_MAN_ADDR;
+                        ctrl_get_len_r = `ROM_DESC_STR_MAN_SIZE;
+                    end
+                    `PRODUCT_NAME_STR_ID:
+                    begin
+                        desc_addr_r    = `ROM_DESC_STR_PROD_ADDR;
+                        ctrl_get_len_r = `ROM_DESC_STR_PROD_SIZE;
+                    end
+                    `SERIAL_NUM_STR_ID:
+                    begin
+                        desc_addr_r    = `ROM_DESC_STR_SERIAL_ADDR;
+                        ctrl_get_len_r = `ROM_DESC_STR_SERIAL_SIZE;
+                    end
+                    default:
+                        ;
+                    endcase
+                end
+                default:
+                    ;
+                endcase
+            end
+            `REQ_GET_CONFIGURATION:
+            begin
+                $display("GET_CONF");
+            end
+            `REQ_SET_CONFIGURATION:
+            begin
+                $display("SET_CONF: Configuration %x", wValue_w);
+
+                if (wValue_w == 16'd0)
+                begin
+                    configured_r = 1'b0;
+                    ctrl_ack_r   = setup_set_w && setup_no_data_w;
+                end
+                // Only support one configuration for now
+                else if (wValue_w == 16'd1)
+                begin
+                    configured_r = 1'b1;
+                    ctrl_ack_r   = setup_set_w && setup_no_data_w;
+                end
+                else
+                    ctrl_stall_r = 1'b1;
+            end
+            `REQ_GET_INTERFACE:
+            begin
+                $display("GET_INTERFACE");
+                ctrl_stall_r = 1'b1;
+            end
+            `REQ_SET_INTERFACE:
+            begin
+                $display("SET_INTERFACE: %x %x", wValue_w, wIndex_w);
+                if (wValue_w == 16'd0 && wIndex_w == 16'd0)
+                    ctrl_ack_r   = setup_set_w && setup_no_data_w;
+                else
+                    ctrl_stall_r = 1'b1;
+            end
+            default:
+            begin
+                ctrl_stall_r = 1'b1;
+            end
+            endcase
+        end
+        `USB_VENDOR_REQUEST:
+        begin
+            // None supported
+            ctrl_stall_r = 1'b1;
+        end
+        `USB_CLASS_REQUEST:
+        begin
+            case (bRequest_w)
+            `CDC_GET_LINE_CODING:
+            begin
+                $display("CDC_GET_LINE_CODING");
+                desc_addr_r    = `ROM_CDC_LINE_CODING_ADDR;
+                ctrl_get_len_r = `ROM_CDC_LINE_CODING_SIZE;
+            end
+            default:
+            begin
+                ctrl_ack_r      = setup_set_w && setup_no_data_w;
+                set_with_data_r = setup_set_w && !setup_no_data_w;
+            end
+            endcase
+        end
+        default:
+        begin
+            ctrl_stall_r = 1'b1;
+        end
+        endcase
+    end
+    else if (data_status_zlp_w)
+        set_with_data_r = 1'b0;
+end
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+begin
+    device_addr_q   <= 7'b0;
+    addressed_q     <= 1'b0;
+    configured_q    <= 1'b0;
+    set_with_data_q <= 1'b0;
+end
+else if (usb_reset_w)
+begin
+    device_addr_q   <= 7'b0;
+    addressed_q     <= 1'b0;
+    configured_q    <= 1'b0;
+    set_with_data_q <= 1'b0;
+end
+else
+begin
+    device_addr_q   <= device_addr_r;
+    addressed_q     <= addressed_r;
+    configured_q    <= configured_r;
+    set_with_data_q <= set_with_data_r;
+end
+
+//-----------------------------------------------------------------
+// SETUP response
+//-----------------------------------------------------------------
+reg        ctrl_sending_q;
+reg [15:0] ctrl_send_idx_q;
+reg [15:0] ctrl_send_len_q;
+wire       ctrl_send_zlp_w = ctrl_sending_q && (ctrl_send_len_q != wLength);
+
+reg        ctrl_sending_r;
+reg [15:0] ctrl_send_idx_r;
+reg [15:0] ctrl_send_len_r;
+
+reg        ctrl_txvalid_q;
+reg [7:0]  ctrl_txdata_q;
+reg        ctrl_txstrb_q;
+reg        ctrl_txlast_q;
+reg        ctrl_txstall_q;
+
+reg        ctrl_txvalid_r;
+reg [7:0]  ctrl_txdata_r;
+reg        ctrl_txstrb_r;
+reg        ctrl_txlast_r;
+reg        ctrl_txstall_r;
+
+wire       ctrl_send_accept_w = ep0_tx_data_accept_w || !ep0_tx_data_valid_w;
+
+reg [7:0]  desc_addr_q;
+wire[7:0]  desc_data_w;
+
+always @ *
+begin
+    ctrl_sending_r  = ctrl_sending_q;
+    ctrl_send_idx_r = ctrl_send_idx_q;
+    ctrl_send_len_r = ctrl_send_len_q;
+
+    ctrl_txvalid_r  = ctrl_txvalid_q;
+    ctrl_txdata_r   = ctrl_txdata_q;
+    ctrl_txstrb_r   = ctrl_txstrb_q;
+    ctrl_txlast_r   = ctrl_txlast_q;
+    ctrl_txstall_r  = ctrl_txstall_q;
+
+    // New SETUP request
+    if (setup_valid_q)
+    begin
+        // Send STALL
+        if (ctrl_stall_r)
+        begin
+            ctrl_txvalid_r  = 1'b1;
+            ctrl_txstrb_r   = 1'b0;
+            ctrl_txlast_r   = 1'b1;
+            ctrl_txstall_r  = 1'b1;
+        end
+        // Send STATUS response (ZLP)
+        else if (ctrl_ack_r)
+        begin
+            ctrl_txvalid_r  = 1'b1;
+            ctrl_txstrb_r   = 1'b0;
+            ctrl_txlast_r   = 1'b1;
+            ctrl_txstall_r  = 1'b0;
+        end
+        else
+        begin
+            ctrl_sending_r  = setup_get_w && !ctrl_stall_r;
+            ctrl_send_idx_r = 16'b0;
+            ctrl_send_len_r = ctrl_get_len_r;
+            ctrl_txstall_r  = 1'b0;
+        end
+    end
+    // Abort control send when STATUS received
+    else if (status_ready_q)
+    begin
+        ctrl_sending_r  = 1'b0;
+        ctrl_send_idx_r = 16'b0;
+        ctrl_send_len_r = 16'b0;
+
+        ctrl_txvalid_r  = 1'b0;
+    end
+    // Send STATUS response (ZLP)
+    else if (set_with_data_q && setup_data_q)
+    begin
+        ctrl_txvalid_r  = 1'b1;
+        ctrl_txstrb_r   = 1'b0;
+        ctrl_txlast_r   = 1'b1;
+        ctrl_txstall_r  = 1'b0;
+    end
+    else if (ctrl_sending_r && ctrl_send_accept_w)
+    begin
+        // TODO: Send ZLP on exact multiple lengths...
+        ctrl_txvalid_r  = 1'b1;
+        ctrl_txdata_r   = desc_data_w;
+        ctrl_txstrb_r   = 1'b1;
+        ctrl_txlast_r   = usb_hs_w ? (ctrl_send_idx_r[5:0] == 6'b111111) : (ctrl_send_idx_r[2:0] == 3'b111);
+
+        // Increment send index
+        ctrl_send_idx_r = ctrl_send_idx_r + 16'd1;
+
+        // TODO: Detect need for ZLP
+        if (ctrl_send_idx_r == wLength)
+        begin
+            ctrl_sending_r = 1'b0;
+            ctrl_txlast_r  = 1'b1;
+        end
+    end
+    else if (ctrl_send_accept_w)
+        ctrl_txvalid_r  = 1'b0;
+end
+
+assign data_status_zlp_w = set_with_data_q && setup_data_q && ctrl_send_accept_w;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+begin
+    ctrl_sending_q  <= 1'b0;
+    ctrl_send_idx_q <= 16'b0;
+    ctrl_send_len_q <= 16'b0;
+    ctrl_txvalid_q  <= 1'b0;
+    ctrl_txdata_q   <= 8'b0;
+    ctrl_txstrb_q   <= 1'b0;
+    ctrl_txlast_q   <= 1'b0;
+    ctrl_txstall_q  <= 1'b0;
+    desc_addr_q     <= 8'b0;
+end
+else if (usb_reset_w)
+begin
+    ctrl_sending_q  <= 1'b0;
+    ctrl_send_idx_q <= 16'b0;
+    ctrl_send_len_q <= 16'b0;
+    ctrl_txvalid_q  <= 1'b0;
+    ctrl_txdata_q   <= 8'b0;
+    ctrl_txstrb_q   <= 1'b0;
+    ctrl_txlast_q   <= 1'b0;
+    ctrl_txstall_q  <= 1'b0;
+    desc_addr_q     <= 8'b0;
+end
+else
+begin
+    ctrl_sending_q  <= ctrl_sending_r;
+    ctrl_send_idx_q <= ctrl_send_idx_r;
+    ctrl_send_len_q <= ctrl_send_len_r;
+    ctrl_txvalid_q  <= ctrl_txvalid_r;
+    ctrl_txdata_q   <= ctrl_txdata_r;
+    ctrl_txstrb_q   <= ctrl_txstrb_r;
+    ctrl_txlast_q   <= ctrl_txlast_r;
+    ctrl_txstall_q  <= ctrl_txstall_r;
+
+    if (setup_valid_q)
+        desc_addr_q     <= desc_addr_r;
+    else if (ctrl_sending_r && ctrl_send_accept_w)
+        desc_addr_q     <= desc_addr_q + 8'd1;
+end
+
+assign ep0_tx_ready_w      = ctrl_txvalid_q;
+assign ep0_tx_data_valid_w = ctrl_txvalid_q;
+assign ep0_tx_data_strb_w  = ctrl_txstrb_q;
+assign ep0_tx_data_w       = ctrl_txdata_q;
+assign ep0_tx_data_last_w  = ctrl_txlast_q;
+assign ep0_tx_stall_w      = ctrl_txstall_q;
+
+//-----------------------------------------------------------------
+// Descriptor ROM
+//-----------------------------------------------------------------
+usb_desc_rom
+u_rom
+(
+    .hs_i(usb_hs_w),
+    .addr_i(desc_addr_q),
+    .data_o(desc_data_w)
+);
+
+//-----------------------------------------------------------------
+// Unused Endpoints
+//-----------------------------------------------------------------
+assign ep1_tx_ready_w      = 1'b0;
+assign ep1_tx_data_valid_w = 1'b0;
+assign ep1_tx_data_strb_w  = 1'b0;
+assign ep1_tx_data_w       = 8'b0;
+assign ep1_tx_data_last_w  = 1'b0;
+assign ep1_tx_stall_w      = 1'b0;
+assign ep3_tx_ready_w      = 1'b0;
+assign ep3_tx_data_valid_w = 1'b0;
+assign ep3_tx_data_strb_w  = 1'b0;
+assign ep3_tx_data_w       = 8'b0;
+assign ep3_tx_data_last_w  = 1'b0;
+assign ep3_tx_stall_w      = 1'b0;
+
+assign ep2_rx_space_w      = 1'b0;
+assign ep3_rx_space_w      = 1'b0;
+
+//-----------------------------------------------------------------
+// Stream I/O
+//-----------------------------------------------------------------
+reg        inport_valid_q;
+reg [7:0]  inport_data_q;
+reg [10:0] inport_cnt_q;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+begin
+    inport_valid_q <= 1'b0;
+    inport_data_q  <= 8'b0;
+end
+else if (inport_accept_o)
+begin
+    inport_valid_q <= inport_valid_i;
+    inport_data_q  <= inport_data_i;
+end
+
+wire [10:0] max_packet_w   = usb_hs_w ? 11'd511 : 11'd63;
+wire        inport_last_w  = !inport_valid_i || (inport_cnt_q == max_packet_w);
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    inport_cnt_q  <= 11'b0;
+else if (inport_last_w && ep2_tx_data_accept_w)
+    inport_cnt_q  <= 11'b0;
+else if (inport_valid_q && ep2_tx_data_accept_w)
+    inport_cnt_q  <= inport_cnt_q + 11'd1;
+
+assign ep2_tx_data_valid_w = inport_valid_q;
+assign ep2_tx_data_w       = inport_data_q;
+assign ep2_tx_ready_w      = ep2_tx_data_valid_w;
+assign ep2_tx_data_strb_w  = ep2_tx_data_valid_w;
+assign ep2_tx_data_last_w  = inport_last_w;
+assign inport_accept_o     = !inport_valid_q | ep2_tx_data_accept_w;
+
+assign outport_valid_o  = ep1_rx_valid_w && rx_strb_w;
+assign outport_data_o   = rx_data_w;
+assign ep1_rx_space_w   = outport_accept_i;
+
+
+
+endmodule

+ 535 - 0
fpga/usb/usb_serial/src_v/usb_cdc_top.v

@@ -0,0 +1,535 @@
+//-----------------------------------------------------------------
+//                       USB Serial Port
+//                            V0.1
+//                     Ultra-Embedded.com
+//                       Copyright 2020
+//
+//                 Email: admin@ultra-embedded.com
+//
+//                         License: LGPL
+//-----------------------------------------------------------------
+//
+// This source file may be used and distributed without         
+// restriction provided that this copyright statement is not    
+// removed from the file and that any derivative work contains  
+// the original copyright notice and the associated disclaimer. 
+//
+// This source file is free software; you can redistribute it   
+// and/or modify it under the terms of the GNU Lesser General   
+// Public License as published by the Free Software Foundation; 
+// either version 2.1 of the License, or (at your option) any   
+// later version.
+//
+// This source is distributed in the hope that it will be       
+// useful, but WITHOUT ANY WARRANTY; without even the implied   
+// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      
+// PURPOSE.  See the GNU Lesser General Public License for more 
+// details.
+//
+// You should have received a copy of the GNU Lesser General    
+// Public License along with this source; if not, write to the 
+// Free Software Foundation, Inc., 59 Temple Place, Suite 330, 
+// Boston, MA  02111-1307  USA
+//-----------------------------------------------------------------
+
+//-----------------------------------------------------------------
+//                          Generated File
+//-----------------------------------------------------------------
+
+module usb_cdc_top
+//-----------------------------------------------------------------
+// Params
+//-----------------------------------------------------------------
+#(
+     parameter BAUDRATE         = 115200
+)
+//-----------------------------------------------------------------
+// Ports
+//-----------------------------------------------------------------
+(
+     input 	  clk_i,
+     input 	  rst_i,
+
+     output [7:0] utmi_data_out_o,
+     output 	  utmi_txvalid_o,
+     output [1:0] utmi_op_mode_o,
+     output [1:0] utmi_xcvrselect_o,
+     output 	  utmi_termselect_o,
+     output 	  utmi_dppulldown_o,
+     output 	  utmi_dmpulldown_o,
+
+     input [7:0]  utmi_data_in_i,
+     input 	  utmi_txready_i,
+     input 	  utmi_rxvalid_i,
+     input 	  utmi_rxactive_i,
+     input 	  utmi_rxerror_i,
+     input [1:0]  utmi_linestate_i,
+
+     input 	  tx_i,
+     output 	  rx_o
+);
+
+wire  [  7:0]  usb_rx_data_w;
+wire           usb_tx_accept_w;
+wire           enable_w = 1'h1;
+wire           usb_tx_valid_w;
+wire           usb_rx_accept_w;
+wire  [  7:0]  usb_tx_data_w;
+wire           usb_rx_valid_w;
+
+usb_cdc_core
+u_usb
+(
+    // Inputs
+     .clk_i(clk_i)
+    ,.rst_i(rst_i)
+    ,.enable_i(enable_w)
+    ,.utmi_data_in_i(utmi_data_in_i)
+    ,.utmi_txready_i(utmi_txready_i)
+    ,.utmi_rxvalid_i(utmi_rxvalid_i)
+    ,.utmi_rxactive_i(utmi_rxactive_i)
+    ,.utmi_rxerror_i(utmi_rxerror_i)
+    ,.utmi_linestate_i(utmi_linestate_i)
+    ,.inport_valid_i(usb_tx_valid_w)
+    ,.inport_data_i(usb_tx_data_w)
+    ,.outport_accept_i(usb_rx_accept_w)
+
+    // Outputs
+    ,.utmi_data_out_o(utmi_data_out_o)
+    ,.utmi_txvalid_o(utmi_txvalid_o)
+    ,.utmi_op_mode_o(utmi_op_mode_o)
+    ,.utmi_xcvrselect_o(utmi_xcvrselect_o)
+    ,.utmi_termselect_o(utmi_termselect_o)
+    ,.utmi_dppulldown_o(utmi_dppulldown_o)
+    ,.utmi_dmpulldown_o(utmi_dmpulldown_o)
+    ,.inport_accept_o(usb_tx_accept_w)
+    ,.outport_valid_o(usb_rx_valid_w)
+    ,.outport_data_o(usb_rx_data_w)
+);
+
+//-----------------------------------------------------------------
+// Output FIFO
+//-----------------------------------------------------------------
+wire       tx_valid_w;
+wire [7:0] tx_data_w;
+wire       tx_accept_w;
+
+usb_cdc_fifo
+#(
+    .WIDTH(8),
+    .DEPTH(512),
+    .ADDR_W(9)
+)
+u_fifo_tx
+(
+    .clk_i(clk_i),
+    .rst_i(rst_i),
+
+    // In
+    .push_i(tx_valid_w),
+    .data_in_i(tx_data_w),
+    .accept_o(tx_accept_w),
+
+    // Out
+    .pop_i(usb_tx_accept_w),
+    .data_out_o(usb_tx_data_w),
+    .valid_o(usb_tx_valid_w)
+);
+
+//-----------------------------------------------------------------
+// Input FIFO
+//-----------------------------------------------------------------
+wire       rx_valid_w;
+wire [7:0] rx_data_w;
+wire       rx_accept_w;
+
+usb_cdc_fifo
+#(
+    .WIDTH(8),
+    .DEPTH(512),
+    .ADDR_W(9)
+)
+u_fifo_rx
+(
+    .clk_i(clk_i),
+    .rst_i(rst_i),
+
+    // In
+    .push_i(usb_rx_valid_w),
+    .data_in_i(usb_rx_data_w),
+    .accept_o(usb_rx_accept_w),
+
+    // Out
+    .pop_i(rx_accept_w),
+    .data_out_o(rx_data_w),
+    .valid_o(rx_valid_w)
+);
+
+//-----------------------------------------------------------------
+// Registers
+//-----------------------------------------------------------------
+
+// Configuration
+localparam   STOP_BITS = 1'b0; // 0 = 1, 1 = 2
+localparam   CLK_FREQ  = 48000000;
+localparam   BIT_DIV   = (CLK_FREQ / BAUDRATE) - 1;
+
+localparam   START_BIT = 4'd0;
+localparam   STOP_BIT0 = 4'd9;
+localparam   STOP_BIT1 = 4'd10;
+
+// Xilinx placement pragmas:
+//synthesis attribute IOB of txd_q is "TRUE"
+
+// TX Signals
+reg          tx_busy_q;
+reg [3:0]    tx_bits_q;
+reg [31:0]   tx_count_q;
+reg [7:0]    tx_shift_reg_q;
+reg          txd_q;
+
+// RX Signals
+reg          rxd_q;
+reg [7:0]    rx_data_q;
+reg [3:0]    rx_bits_q;
+reg [31:0]   rx_count_q;
+reg [7:0]    rx_shift_reg_q;
+reg          rx_ready_q;
+reg          rx_busy_q;
+
+reg          rx_err_q;
+
+//-----------------------------------------------------------------
+// Re-sync RXD
+//-----------------------------------------------------------------
+reg rxd_ms_q;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+begin
+   rxd_ms_q <= 1'b1;
+   rxd_q    <= 1'b1;
+end
+else
+begin
+   rxd_ms_q <= tx_i;
+   rxd_q    <= rxd_ms_q;
+end
+
+//-----------------------------------------------------------------
+// RX Clock Divider
+//-----------------------------------------------------------------
+wire rx_sample_w = (rx_count_q == 32'b0);
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    rx_count_q        <= 32'b0;
+else
+begin
+    // Inactive
+    if (!rx_busy_q)
+        rx_count_q    <= {1'b0, BIT_DIV[31:1]};
+    // Rx bit timer
+    else if (rx_count_q != 0)
+        rx_count_q    <= (rx_count_q - 1);
+    // Active
+    else if (rx_sample_w)
+    begin
+        // Last bit?
+        if ((rx_bits_q == STOP_BIT0 && !STOP_BITS) || (rx_bits_q == STOP_BIT1 && STOP_BITS))
+            rx_count_q    <= 32'b0;
+        else
+            rx_count_q    <= BIT_DIV;
+    end
+end
+
+//-----------------------------------------------------------------
+// RX Shift Register
+//-----------------------------------------------------------------
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+begin
+    rx_shift_reg_q <= 8'h00;
+    rx_busy_q      <= 1'b0;
+end
+// Rx busy
+else if (rx_busy_q && rx_sample_w)
+begin
+    // Last bit?
+    if (rx_bits_q == STOP_BIT0 && !STOP_BITS)
+        rx_busy_q <= 1'b0;
+    else if (rx_bits_q == STOP_BIT1 && STOP_BITS)
+        rx_busy_q <= 1'b0;
+    else if (rx_bits_q == START_BIT)
+    begin
+        // Start bit should still be low as sampling mid
+        // way through start bit, so if high, error!
+        if (rxd_q)
+            rx_busy_q <= 1'b0;
+    end
+    // Rx shift register
+    else 
+        rx_shift_reg_q <= {rxd_q, rx_shift_reg_q[7:1]};
+end
+// Start bit?
+else if (!rx_busy_q && rxd_q == 1'b0)
+begin
+    rx_shift_reg_q <= 8'h00;
+    rx_busy_q      <= 1'b1;
+end
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    rx_bits_q  <= START_BIT;
+else if (rx_sample_w && rx_busy_q)
+begin
+    if ((rx_bits_q == STOP_BIT1 && STOP_BITS) || (rx_bits_q == STOP_BIT0 && !STOP_BITS))
+        rx_bits_q <= START_BIT;
+    else
+        rx_bits_q <= rx_bits_q + 4'd1;
+end
+else if (!rx_busy_q && (BIT_DIV == 32'b0))
+    rx_bits_q  <= START_BIT + 4'd1;
+else if (!rx_busy_q)
+    rx_bits_q  <= START_BIT;
+
+//-----------------------------------------------------------------
+// RX Data
+//-----------------------------------------------------------------
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+begin
+   rx_ready_q      <= 1'b0;
+   rx_data_q       <= 8'h00;
+   rx_err_q        <= 1'b0;
+end
+else
+begin
+   // If reading data, reset data state
+   if (tx_accept_w)
+   begin
+       rx_ready_q <= 1'b0;
+       rx_err_q   <= 1'b0;
+   end
+
+   if (rx_busy_q && rx_sample_w)
+   begin
+       // Stop bit
+       if ((rx_bits_q == STOP_BIT1 && STOP_BITS) || (rx_bits_q == STOP_BIT0 && !STOP_BITS))
+       begin
+           // RXD should be still high
+           if (rxd_q)
+           begin
+               rx_data_q      <= rx_shift_reg_q;
+               rx_ready_q     <= 1'b1;
+           end
+           // Bad Stop bit - wait for a full bit period
+           // before allowing start bit detection again
+           else
+           begin
+               rx_ready_q      <= 1'b0;
+               rx_data_q       <= 8'h00;
+               rx_err_q        <= 1'b1;
+           end
+       end
+       // Mid start bit sample - if high then error
+       else if (rx_bits_q == START_BIT && rxd_q)
+           rx_err_q        <= 1'b1;
+   end
+end
+
+assign tx_data_w   = rx_data_q;
+assign tx_valid_w  = rx_ready_q;
+
+//-----------------------------------------------------------------
+// TX Clock Divider
+//-----------------------------------------------------------------
+wire tx_sample_w = (tx_count_q == 32'b0);
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    tx_count_q      <= 32'b0;
+else
+begin
+    // Idle
+    if (!tx_busy_q)
+        tx_count_q  <= BIT_DIV;
+    // Tx bit timer
+    else if (tx_count_q != 0)
+        tx_count_q  <= (tx_count_q - 1);
+    else if (tx_sample_w)
+        tx_count_q  <= BIT_DIV;
+end
+
+//-----------------------------------------------------------------
+// TX Shift Register
+//-----------------------------------------------------------------
+reg tx_complete_q;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+begin
+    tx_shift_reg_q <= 8'h00;
+    tx_busy_q      <= 1'b0;
+    tx_complete_q  <= 1'b0;
+end
+// Tx busy
+else if (tx_busy_q)
+begin
+    // Shift tx data
+    if (tx_bits_q != START_BIT && tx_sample_w)
+        tx_shift_reg_q <= {1'b0, tx_shift_reg_q[7:1]};
+
+    // Last bit?
+    if (tx_bits_q == STOP_BIT0 && tx_sample_w && !STOP_BITS)
+    begin
+        tx_busy_q      <= 1'b0;
+        tx_complete_q  <= 1'b1;
+    end
+    else if (tx_bits_q == STOP_BIT1 && tx_sample_w && STOP_BITS)
+    begin
+        tx_busy_q      <= 1'b0;
+        tx_complete_q  <= 1'b1;
+    end
+end
+// Buffer data to transmit
+else if (rx_valid_w)
+begin
+    tx_shift_reg_q <= rx_data_w;
+    tx_busy_q      <= 1'b1;
+    tx_complete_q  <= 1'b0;
+end
+else
+    tx_complete_q  <= 1'b0;
+
+assign rx_accept_w = ~tx_busy_q;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    tx_bits_q  <= 4'd0;
+else if (tx_sample_w && tx_busy_q)
+begin
+    if ((tx_bits_q == STOP_BIT1 && STOP_BITS) || (tx_bits_q == STOP_BIT0 && !STOP_BITS))
+        tx_bits_q <= START_BIT;
+    else
+        tx_bits_q <= tx_bits_q + 4'd1;
+end
+
+//-----------------------------------------------------------------
+// UART Tx Pin
+//-----------------------------------------------------------------
+reg txd_r;
+
+always @ *
+begin
+    txd_r = 1'b1;
+
+    if (tx_busy_q)
+    begin
+        // Start bit (TXD = L)
+        if (tx_bits_q == START_BIT)
+            txd_r = 1'b0;
+        // Stop bits (TXD = H)
+        else if (tx_bits_q == STOP_BIT0 || tx_bits_q == STOP_BIT1)
+            txd_r = 1'b1;
+        // Data bits
+        else
+            txd_r = tx_shift_reg_q[0];
+    end
+end
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    txd_q <= 1'b1;
+else
+    txd_q <= txd_r;
+
+assign rx_o = txd_q;
+
+
+endmodule
+
+module usb_cdc_fifo
+//-----------------------------------------------------------------
+// Params
+//-----------------------------------------------------------------
+#(
+    parameter WIDTH   = 8,
+    parameter DEPTH   = 4,
+    parameter ADDR_W  = 2
+)
+//-----------------------------------------------------------------
+// Ports
+//-----------------------------------------------------------------
+(
+    // Inputs
+     input               clk_i
+    ,input               rst_i
+    ,input  [WIDTH-1:0]  data_in_i
+    ,input               push_i
+    ,input               pop_i
+
+    // Outputs
+    ,output [WIDTH-1:0]  data_out_o
+    ,output              accept_o
+    ,output              valid_o
+);
+
+//-----------------------------------------------------------------
+// Local Params
+//-----------------------------------------------------------------
+localparam COUNT_W = ADDR_W + 1;
+
+//-----------------------------------------------------------------
+// Registers
+//-----------------------------------------------------------------
+reg [WIDTH-1:0]   ram_q[DEPTH-1:0];
+reg [ADDR_W-1:0]  rd_ptr_q;
+reg [ADDR_W-1:0]  wr_ptr_q;
+reg [COUNT_W-1:0] count_q;
+
+//-----------------------------------------------------------------
+// Sequential
+//-----------------------------------------------------------------
+always @ (posedge clk_i )
+if (rst_i)
+begin
+    count_q   <= {(COUNT_W) {1'b0}};
+    rd_ptr_q  <= {(ADDR_W) {1'b0}};
+    wr_ptr_q  <= {(ADDR_W) {1'b0}};
+end
+else
+begin
+    // Push
+    if (push_i & accept_o)
+    begin
+        ram_q[wr_ptr_q] <= data_in_i;
+        wr_ptr_q        <= wr_ptr_q + 1;
+    end
+
+    // Pop
+    if (pop_i & valid_o)
+        rd_ptr_q      <= rd_ptr_q + 1;
+
+    // Count up
+    if ((push_i & accept_o) & ~(pop_i & valid_o))
+        count_q <= count_q + 1;
+    // Count down
+    else if (~(push_i & accept_o) & (pop_i & valid_o))
+        count_q <= count_q - 1;
+end
+
+//-------------------------------------------------------------------
+// Combinatorial
+//-------------------------------------------------------------------
+/* verilator lint_off WIDTH */
+assign valid_o       = (count_q != 0);
+assign accept_o      = (count_q != DEPTH);
+/* verilator lint_on WIDTH */
+
+assign data_out_o    = ram_q[rd_ptr_q];
+
+
+
+
+endmodule

+ 226 - 0
fpga/usb/usb_serial/src_v/usb_desc_rom.v

@@ -0,0 +1,226 @@
+//-----------------------------------------------------------------
+//                       USB Serial Port
+//                            V0.1
+//                     Ultra-Embedded.com
+//                       Copyright 2020
+//
+//                 Email: admin@ultra-embedded.com
+//
+//                         License: LGPL
+//-----------------------------------------------------------------
+//
+// This source file may be used and distributed without         
+// restriction provided that this copyright statement is not    
+// removed from the file and that any derivative work contains  
+// the original copyright notice and the associated disclaimer. 
+//
+// This source file is free software; you can redistribute it   
+// and/or modify it under the terms of the GNU Lesser General   
+// Public License as published by the Free Software Foundation; 
+// either version 2.1 of the License, or (at your option) any   
+// later version.
+//
+// This source is distributed in the hope that it will be       
+// useful, but WITHOUT ANY WARRANTY; without even the implied   
+// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      
+// PURPOSE.  See the GNU Lesser General Public License for more 
+// details.
+//
+// You should have received a copy of the GNU Lesser General    
+// Public License along with this source; if not, write to the 
+// Free Software Foundation, Inc., 59 Temple Place, Suite 330, 
+// Boston, MA  02111-1307  USA
+//-----------------------------------------------------------------
+
+//-----------------------------------------------------------------
+//                          Generated File
+//-----------------------------------------------------------------
+module usb_desc_rom
+(
+    input        hs_i,
+    input  [7:0] addr_i,
+    output [7:0] data_o
+);
+
+reg [7:0] desc_rom_r;
+
+always @ *
+begin
+    case (addr_i)
+    8'd0: desc_rom_r = 8'h12;
+    8'd1: desc_rom_r = 8'h01;
+    8'd2: desc_rom_r = 8'h00;
+    8'd3: desc_rom_r = 8'h02;
+    8'd4: desc_rom_r = 8'h02;
+    8'd5: desc_rom_r = 8'h00;
+    8'd6: desc_rom_r = 8'h00;
+    8'd7: desc_rom_r = hs_i ? 8'h40 : 8'h08;
+    8'd8: desc_rom_r = 8'h50;  // VID_L
+    8'd9: desc_rom_r = 8'h1d;  // VID_H
+    8'd10: desc_rom_r = 8'h49; // PID_L 
+    8'd11: desc_rom_r = 8'h61; // PID_H
+    8'd12: desc_rom_r = 8'h01;
+    8'd13: desc_rom_r = 8'h01;
+    8'd14: desc_rom_r = 8'h00;
+    8'd15: desc_rom_r = 8'h00;
+    8'd16: desc_rom_r = 8'h00;
+    8'd17: desc_rom_r = 8'h01;
+    8'd18: desc_rom_r = 8'h09;
+    8'd19: desc_rom_r = 8'h02;
+    8'd20: desc_rom_r = 8'h43;
+    8'd21: desc_rom_r = 8'h00;
+    8'd22: desc_rom_r = 8'h02;
+    8'd23: desc_rom_r = 8'h01;
+    8'd24: desc_rom_r = 8'h00;
+    8'd25: desc_rom_r = 8'h80;
+    8'd26: desc_rom_r = 8'h32;
+    8'd27: desc_rom_r = 8'h09;
+    8'd28: desc_rom_r = 8'h04;
+    8'd29: desc_rom_r = 8'h00;
+    8'd30: desc_rom_r = 8'h00;
+    8'd31: desc_rom_r = 8'h01;
+    8'd32: desc_rom_r = 8'h02;
+    8'd33: desc_rom_r = 8'h02;
+    8'd34: desc_rom_r = 8'h01;
+    8'd35: desc_rom_r = 8'h00;
+    8'd36: desc_rom_r = 8'h05;
+    8'd37: desc_rom_r = 8'h24;
+    8'd38: desc_rom_r = 8'h00;
+    8'd39: desc_rom_r = 8'h10;
+    8'd40: desc_rom_r = 8'h01;
+    8'd41: desc_rom_r = 8'h05;
+    8'd42: desc_rom_r = 8'h24;
+    8'd43: desc_rom_r = 8'h01;
+    8'd44: desc_rom_r = 8'h03;
+    8'd45: desc_rom_r = 8'h01;
+    8'd46: desc_rom_r = 8'h04;
+    8'd47: desc_rom_r = 8'h24;
+    8'd48: desc_rom_r = 8'h02;
+    8'd49: desc_rom_r = 8'h06;
+    8'd50: desc_rom_r = 8'h05;
+    8'd51: desc_rom_r = 8'h24;
+    8'd52: desc_rom_r = 8'h06;
+    8'd53: desc_rom_r = 8'h00;
+    8'd54: desc_rom_r = 8'h01;
+    8'd55: desc_rom_r = 8'h07;
+    8'd56: desc_rom_r = 8'h05;
+    8'd57: desc_rom_r = 8'h83;
+    8'd58: desc_rom_r = 8'h03;
+    8'd59: desc_rom_r = 8'h40;
+    8'd60: desc_rom_r = 8'h00;
+    8'd61: desc_rom_r = 8'h02;
+    8'd62: desc_rom_r = 8'h09;
+    8'd63: desc_rom_r = 8'h04;
+    8'd64: desc_rom_r = 8'h01;
+    8'd65: desc_rom_r = 8'h00;
+    8'd66: desc_rom_r = 8'h02;
+    8'd67: desc_rom_r = 8'h0a;
+    8'd68: desc_rom_r = 8'h00;
+    8'd69: desc_rom_r = 8'h00;
+    8'd70: desc_rom_r = 8'h00;
+    8'd71: desc_rom_r = 8'h07;
+    8'd72: desc_rom_r = 8'h05;
+    8'd73: desc_rom_r = 8'h01;
+    8'd74: desc_rom_r = 8'h02;
+    8'd75: desc_rom_r = hs_i ? 8'h00 : 8'h40;
+    8'd76: desc_rom_r = hs_i ? 8'h02 : 8'h00;
+    8'd77: desc_rom_r = 8'h00;
+    8'd78: desc_rom_r = 8'h07;
+    8'd79: desc_rom_r = 8'h05;
+    8'd80: desc_rom_r = 8'h82;
+    8'd81: desc_rom_r = 8'h02;
+    8'd82: desc_rom_r = hs_i ? 8'h00 : 8'h40;
+    8'd83: desc_rom_r = hs_i ? 8'h02 : 8'h00;
+    8'd84: desc_rom_r = 8'h00;
+    8'd85: desc_rom_r = 8'h04;
+    8'd86: desc_rom_r = 8'h03;
+    8'd87: desc_rom_r = 8'h09;
+    8'd88: desc_rom_r = 8'h04;
+    8'd89: desc_rom_r = 8'h1e;
+    8'd90: desc_rom_r = 8'h03;
+    8'd91: desc_rom_r = 8'h55;
+    8'd92: desc_rom_r = 8'h00;
+    8'd93: desc_rom_r = 8'h4c;
+    8'd94: desc_rom_r = 8'h00;
+    8'd95: desc_rom_r = 8'h54;
+    8'd96: desc_rom_r = 8'h00;
+    8'd97: desc_rom_r = 8'h52;
+    8'd98: desc_rom_r = 8'h00;
+    8'd99: desc_rom_r = 8'h41;
+    8'd100: desc_rom_r = 8'h00;
+    8'd101: desc_rom_r = 8'h2d;
+    8'd102: desc_rom_r = 8'h00;
+    8'd103: desc_rom_r = 8'h45;
+    8'd104: desc_rom_r = 8'h00;
+    8'd105: desc_rom_r = 8'h4d;
+    8'd106: desc_rom_r = 8'h00;
+    8'd107: desc_rom_r = 8'h42;
+    8'd108: desc_rom_r = 8'h00;
+    8'd109: desc_rom_r = 8'h45;
+    8'd110: desc_rom_r = 8'h00;
+    8'd111: desc_rom_r = 8'h44;
+    8'd112: desc_rom_r = 8'h00;
+    8'd113: desc_rom_r = 8'h44;
+    8'd114: desc_rom_r = 8'h00;
+    8'd115: desc_rom_r = 8'h45;
+    8'd116: desc_rom_r = 8'h00;
+    8'd117: desc_rom_r = 8'h44;
+    8'd118: desc_rom_r = 8'h00;
+    8'd119: desc_rom_r = 8'h1e;
+    8'd120: desc_rom_r = 8'h03;
+    8'd121: desc_rom_r = 8'h55;
+    8'd122: desc_rom_r = 8'h00;
+    8'd123: desc_rom_r = 8'h53;
+    8'd124: desc_rom_r = 8'h00;
+    8'd125: desc_rom_r = 8'h42;
+    8'd126: desc_rom_r = 8'h00;
+    8'd127: desc_rom_r = 8'h20;
+    8'd128: desc_rom_r = 8'h00;
+    8'd129: desc_rom_r = 8'h44;
+    8'd130: desc_rom_r = 8'h00;
+    8'd131: desc_rom_r = 8'h45;
+    8'd132: desc_rom_r = 8'h00;
+    8'd133: desc_rom_r = 8'h4d;
+    8'd134: desc_rom_r = 8'h00;
+    8'd135: desc_rom_r = 8'h4f;
+    8'd136: desc_rom_r = 8'h00;
+    8'd137: desc_rom_r = 8'h20;
+    8'd138: desc_rom_r = 8'h00;
+    8'd139: desc_rom_r = 8'h20;
+    8'd140: desc_rom_r = 8'h00;
+    8'd141: desc_rom_r = 8'h20;
+    8'd142: desc_rom_r = 8'h00;
+    8'd143: desc_rom_r = 8'h20;
+    8'd144: desc_rom_r = 8'h00;
+    8'd145: desc_rom_r = 8'h20;
+    8'd146: desc_rom_r = 8'h00;
+    8'd147: desc_rom_r = 8'h20;
+    8'd148: desc_rom_r = 8'h00;
+    8'd149: desc_rom_r = 8'h0e;
+    8'd150: desc_rom_r = 8'h03;
+    8'd151: desc_rom_r = 8'h30;
+    8'd152: desc_rom_r = 8'h00;
+    8'd153: desc_rom_r = 8'h30;
+    8'd154: desc_rom_r = 8'h00;
+    8'd155: desc_rom_r = 8'h30;
+    8'd156: desc_rom_r = 8'h00;
+    8'd157: desc_rom_r = 8'h30;
+    8'd158: desc_rom_r = 8'h00;
+    8'd159: desc_rom_r = 8'h30;
+    8'd160: desc_rom_r = 8'h00;
+    8'd161: desc_rom_r = 8'h30;
+    8'd162: desc_rom_r = 8'h00;
+    8'd163: desc_rom_r = 8'h00;
+    8'd164: desc_rom_r = 8'hc2;
+    8'd165: desc_rom_r = 8'h01;
+    8'd166: desc_rom_r = 8'h00;
+    8'd167: desc_rom_r = 8'h00;
+    8'd168: desc_rom_r = 8'h00;
+    8'd169: desc_rom_r = 8'h08;
+    default: desc_rom_r = 8'h00;
+    endcase
+end
+
+assign data_o = desc_rom_r;
+
+endmodule

+ 83 - 0
fpga/usb/usb_serial/src_v/usbf_crc16.v

@@ -0,0 +1,83 @@
+//-----------------------------------------------------------------
+//                       USB Serial Port
+//                            V0.1
+//                     Ultra-Embedded.com
+//                       Copyright 2020
+//
+//                 Email: admin@ultra-embedded.com
+//
+//                         License: LGPL
+//-----------------------------------------------------------------
+//
+// This source file may be used and distributed without         
+// restriction provided that this copyright statement is not    
+// removed from the file and that any derivative work contains  
+// the original copyright notice and the associated disclaimer. 
+//
+// This source file is free software; you can redistribute it   
+// and/or modify it under the terms of the GNU Lesser General   
+// Public License as published by the Free Software Foundation; 
+// either version 2.1 of the License, or (at your option) any   
+// later version.
+//
+// This source is distributed in the hope that it will be       
+// useful, but WITHOUT ANY WARRANTY; without even the implied   
+// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      
+// PURPOSE.  See the GNU Lesser General Public License for more 
+// details.
+//
+// You should have received a copy of the GNU Lesser General    
+// Public License along with this source; if not, write to the 
+// Free Software Foundation, Inc., 59 Temple Place, Suite 330, 
+// Boston, MA  02111-1307  USA
+//-----------------------------------------------------------------
+
+//-----------------------------------------------------------------
+//                          Generated File
+//-----------------------------------------------------------------
+
+module usbf_crc16
+(
+    // Inputs
+     input  [ 15:0]  crc_in_i
+    ,input  [  7:0]  din_i
+
+    // Outputs
+    ,output [ 15:0]  crc_out_o
+);
+
+
+
+//-----------------------------------------------------------------
+// Logic
+//-----------------------------------------------------------------
+assign crc_out_o[15] =    din_i[0] ^ din_i[1] ^ din_i[2] ^ din_i[3] ^ din_i[4] ^ din_i[5] ^ din_i[6] ^ din_i[7] ^ 
+                        crc_in_i[7] ^ crc_in_i[6] ^ crc_in_i[5] ^ crc_in_i[4] ^ crc_in_i[3] ^ crc_in_i[2] ^ crc_in_i[1] ^ crc_in_i[0];
+assign crc_out_o[14] =    din_i[0] ^ din_i[1] ^ din_i[2] ^ din_i[3] ^ din_i[4] ^ din_i[5] ^ din_i[6] ^
+                        crc_in_i[6] ^ crc_in_i[5] ^ crc_in_i[4] ^ crc_in_i[3] ^ crc_in_i[2] ^ crc_in_i[1] ^ crc_in_i[0];
+assign crc_out_o[13] =    din_i[6] ^ din_i[7] ^ 
+                        crc_in_i[7] ^ crc_in_i[6];
+assign crc_out_o[12] =    din_i[5] ^ din_i[6] ^ 
+                        crc_in_i[6] ^ crc_in_i[5];
+assign crc_out_o[11] =    din_i[4] ^ din_i[5] ^ 
+                        crc_in_i[5] ^ crc_in_i[4];
+assign crc_out_o[10] =    din_i[3] ^ din_i[4] ^ 
+                        crc_in_i[4] ^ crc_in_i[3];
+assign crc_out_o[9] =     din_i[2] ^ din_i[3] ^ 
+                        crc_in_i[3] ^ crc_in_i[2];
+assign crc_out_o[8] =     din_i[1] ^ din_i[2] ^ 
+                        crc_in_i[2] ^ crc_in_i[1];
+assign crc_out_o[7] =     din_i[0] ^ din_i[1] ^ 
+                        crc_in_i[15] ^ crc_in_i[1] ^ crc_in_i[0];
+assign crc_out_o[6] =     din_i[0] ^ 
+                        crc_in_i[14] ^ crc_in_i[0];
+assign crc_out_o[5] =     crc_in_i[13];
+assign crc_out_o[4] =     crc_in_i[12];
+assign crc_out_o[3] =     crc_in_i[11];
+assign crc_out_o[2] =     crc_in_i[10];
+assign crc_out_o[1] =     crc_in_i[9];
+assign crc_out_o[0] =     din_i[0] ^ din_i[1] ^ din_i[2] ^ din_i[3] ^ din_i[4] ^ din_i[5] ^ din_i[6] ^ din_i[7] ^
+                        crc_in_i[8] ^ crc_in_i[7] ^ crc_in_i[6] ^ crc_in_i[5] ^ crc_in_i[4] ^ crc_in_i[3] ^ crc_in_i[2] ^ crc_in_i[1] ^ crc_in_i[0];
+
+
+endmodule

+ 64 - 0
fpga/usb/usb_serial/src_v/usbf_defs.v

@@ -0,0 +1,64 @@
+//-----------------------------------------------------------------
+//                       USB Serial Port
+//                            V0.1
+//                     Ultra-Embedded.com
+//                       Copyright 2020
+//
+//                 Email: admin@ultra-embedded.com
+//
+//                         License: LGPL
+//-----------------------------------------------------------------
+//
+// This source file may be used and distributed without         
+// restriction provided that this copyright statement is not    
+// removed from the file and that any derivative work contains  
+// the original copyright notice and the associated disclaimer. 
+//
+// This source file is free software; you can redistribute it   
+// and/or modify it under the terms of the GNU Lesser General   
+// Public License as published by the Free Software Foundation; 
+// either version 2.1 of the License, or (at your option) any   
+// later version.
+//
+// This source is distributed in the hope that it will be       
+// useful, but WITHOUT ANY WARRANTY; without even the implied   
+// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      
+// PURPOSE.  See the GNU Lesser General Public License for more 
+// details.
+//
+// You should have received a copy of the GNU Lesser General    
+// Public License along with this source; if not, write to the 
+// Free Software Foundation, Inc., 59 Temple Place, Suite 330, 
+// Boston, MA  02111-1307  USA
+//-----------------------------------------------------------------
+
+//-----------------------------------------------------------------
+//                          Generated File
+//-----------------------------------------------------------------
+//-----------------------------------------------------------------
+// Definitions
+//-----------------------------------------------------------------
+
+// Tokens
+`define PID_OUT                    8'hE1
+`define PID_IN                     8'h69
+`define PID_SOF                    8'hA5
+`define PID_SETUP                  8'h2D
+
+// Data
+`define PID_DATA0                  8'hC3
+`define PID_DATA1                  8'h4B
+`define PID_DATA2                  8'h87
+`define PID_MDATA                  8'h0F
+
+// Handshake
+`define PID_ACK                    8'hD2
+`define PID_NAK                    8'h5A
+`define PID_STALL                  8'h1E
+`define PID_NYET                   8'h96
+
+// Special
+`define PID_PRE                    8'h3C
+`define PID_ERR                    8'h3C
+`define PID_SPLIT                  8'h78
+`define PID_PING                   8'hB4

+ 1054 - 0
fpga/usb/usb_serial/src_v/usbf_device_core.v

@@ -0,0 +1,1054 @@
+//-----------------------------------------------------------------
+//                       USB Serial Port
+//                            V0.1
+//                     Ultra-Embedded.com
+//                       Copyright 2020
+//
+//                 Email: admin@ultra-embedded.com
+//
+//                         License: LGPL
+//-----------------------------------------------------------------
+//
+// This source file may be used and distributed without         
+// restriction provided that this copyright statement is not    
+// removed from the file and that any derivative work contains  
+// the original copyright notice and the associated disclaimer. 
+//
+// This source file is free software; you can redistribute it   
+// and/or modify it under the terms of the GNU Lesser General   
+// Public License as published by the Free Software Foundation; 
+// either version 2.1 of the License, or (at your option) any   
+// later version.
+//
+// This source is distributed in the hope that it will be       
+// useful, but WITHOUT ANY WARRANTY; without even the implied   
+// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      
+// PURPOSE.  See the GNU Lesser General Public License for more 
+// details.
+//
+// You should have received a copy of the GNU Lesser General    
+// Public License along with this source; if not, write to the 
+// Free Software Foundation, Inc., 59 Temple Place, Suite 330, 
+// Boston, MA  02111-1307  USA
+//-----------------------------------------------------------------
+
+//-----------------------------------------------------------------
+//                          Generated File
+//-----------------------------------------------------------------
+
+module usbf_device_core
+(
+    // Inputs
+     input           clk_i
+    ,input           rst_i
+    ,input  [  7:0]  utmi_data_i
+    ,input           utmi_txready_i
+    ,input           utmi_rxvalid_i
+    ,input           utmi_rxactive_i
+    ,input           utmi_rxerror_i
+    ,input  [  1:0]  utmi_linestate_i
+    ,input           ep0_stall_i
+    ,input           ep0_iso_i
+    ,input           ep0_cfg_int_rx_i
+    ,input           ep0_cfg_int_tx_i
+    ,input           ep0_rx_space_i
+    ,input           ep0_tx_ready_i
+    ,input           ep0_tx_data_valid_i
+    ,input           ep0_tx_data_strb_i
+    ,input  [  7:0]  ep0_tx_data_i
+    ,input           ep0_tx_data_last_i
+    ,input           ep1_stall_i
+    ,input           ep1_iso_i
+    ,input           ep1_cfg_int_rx_i
+    ,input           ep1_cfg_int_tx_i
+    ,input           ep1_rx_space_i
+    ,input           ep1_tx_ready_i
+    ,input           ep1_tx_data_valid_i
+    ,input           ep1_tx_data_strb_i
+    ,input  [  7:0]  ep1_tx_data_i
+    ,input           ep1_tx_data_last_i
+    ,input           ep2_stall_i
+    ,input           ep2_iso_i
+    ,input           ep2_cfg_int_rx_i
+    ,input           ep2_cfg_int_tx_i
+    ,input           ep2_rx_space_i
+    ,input           ep2_tx_ready_i
+    ,input           ep2_tx_data_valid_i
+    ,input           ep2_tx_data_strb_i
+    ,input  [  7:0]  ep2_tx_data_i
+    ,input           ep2_tx_data_last_i
+    ,input           ep3_stall_i
+    ,input           ep3_iso_i
+    ,input           ep3_cfg_int_rx_i
+    ,input           ep3_cfg_int_tx_i
+    ,input           ep3_rx_space_i
+    ,input           ep3_tx_ready_i
+    ,input           ep3_tx_data_valid_i
+    ,input           ep3_tx_data_strb_i
+    ,input  [  7:0]  ep3_tx_data_i
+    ,input           ep3_tx_data_last_i
+    ,input           reg_chirp_en_i
+    ,input           reg_int_en_sof_i
+    ,input           reg_sts_rst_clr_i
+    ,input  [  6:0]  reg_dev_addr_i
+
+    // Outputs
+    ,output          intr_o
+    ,output [  7:0]  utmi_data_o
+    ,output          utmi_txvalid_o
+    ,output          rx_strb_o
+    ,output [  7:0]  rx_data_o
+    ,output          rx_last_o
+    ,output          rx_crc_err_o
+    ,output          ep0_rx_setup_o
+    ,output          ep0_rx_valid_o
+    ,output          ep0_tx_data_accept_o
+    ,output          ep1_rx_setup_o
+    ,output          ep1_rx_valid_o
+    ,output          ep1_tx_data_accept_o
+    ,output          ep2_rx_setup_o
+    ,output          ep2_rx_valid_o
+    ,output          ep2_tx_data_accept_o
+    ,output          ep3_rx_setup_o
+    ,output          ep3_rx_valid_o
+    ,output          ep3_tx_data_accept_o
+    ,output          reg_sts_rst_o
+    ,output [ 10:0]  reg_sts_frame_num_o
+);
+
+
+
+//-----------------------------------------------------------------
+// Defines:
+//-----------------------------------------------------------------
+`include "usbf_defs.v"
+
+`define USB_RESET_CNT_W     15
+
+localparam STATE_W                       = 3;
+localparam STATE_RX_IDLE                 = 3'd0;
+localparam STATE_RX_DATA                 = 3'd1;
+localparam STATE_RX_DATA_READY           = 3'd2;
+localparam STATE_RX_DATA_IGNORE          = 3'd3;
+localparam STATE_TX_DATA                 = 3'd4;
+localparam STATE_TX_DATA_COMPLETE        = 3'd5;
+localparam STATE_TX_HANDSHAKE            = 3'd6;
+localparam STATE_TX_CHIRP                = 3'd7;
+reg [STATE_W-1:0] state_q;
+
+//-----------------------------------------------------------------
+// Reset detection
+//-----------------------------------------------------------------
+reg [`USB_RESET_CNT_W-1:0] se0_cnt_q;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    se0_cnt_q <= `USB_RESET_CNT_W'b0;
+else if (utmi_linestate_i == 2'b0)
+begin
+    if (!se0_cnt_q[`USB_RESET_CNT_W-1])
+        se0_cnt_q <= se0_cnt_q + `USB_RESET_CNT_W'd1;
+end    
+else
+    se0_cnt_q <= `USB_RESET_CNT_W'b0;
+
+wire usb_rst_w = se0_cnt_q[`USB_RESET_CNT_W-1];
+
+//-----------------------------------------------------------------
+// Wire / Regs
+//-----------------------------------------------------------------
+`define USB_FRAME_W    11
+wire [`USB_FRAME_W-1:0] frame_num_w;
+
+wire                    frame_valid_w;
+
+`define USB_DEV_W      7
+wire [`USB_DEV_W-1:0]   token_dev_w;
+
+`define USB_EP_W       4
+wire [`USB_EP_W-1:0]    token_ep_w;
+
+`define USB_PID_W      8
+wire [`USB_PID_W-1:0]   token_pid_w;
+
+wire                    token_valid_w;
+
+wire                    rx_data_valid_w;
+wire                    rx_data_complete_w;
+
+wire                    rx_handshake_w;
+
+reg                     tx_data_valid_r;
+reg                     tx_data_strb_r;
+reg  [7:0]              tx_data_r;
+reg                     tx_data_last_r;
+wire                    tx_data_accept_w;
+
+reg                     tx_valid_q;
+reg [7:0]               tx_pid_q;
+wire                    tx_accept_w;
+
+reg                     rx_space_q;
+reg                     rx_space_r;
+reg                     tx_ready_r;
+reg                     out_data_bit_r;
+reg                     in_data_bit_r;
+
+reg                     ep_stall_r;
+reg                     ep_iso_r;
+
+reg                     rx_enable_q;
+reg                     rx_setup_q;
+
+reg                     ep0_out_data_bit_q;
+reg                     ep0_in_data_bit_q;
+reg                     ep1_out_data_bit_q;
+reg                     ep1_in_data_bit_q;
+reg                     ep2_out_data_bit_q;
+reg                     ep2_in_data_bit_q;
+reg                     ep3_out_data_bit_q;
+reg                     ep3_in_data_bit_q;
+
+reg [`USB_DEV_W-1:0]    current_addr_q;
+
+//-----------------------------------------------------------------
+// SIE - TX
+//-----------------------------------------------------------------
+usbf_sie_tx
+u_sie_tx
+(
+    .clk_i(clk_i),
+    .rst_i(rst_i),
+    
+    .enable_i(~usb_rst_w),
+    .chirp_i(reg_chirp_en_i),
+
+    // UTMI Interface
+    .utmi_data_o(utmi_data_o),
+    .utmi_txvalid_o(utmi_txvalid_o),
+    .utmi_txready_i(utmi_txready_i),
+
+    // Request
+    .tx_valid_i(tx_valid_q),
+    .tx_pid_i(tx_pid_q),
+    .tx_accept_o(tx_accept_w),
+
+    // Data
+    .data_valid_i(tx_data_valid_r),
+    .data_strb_i(tx_data_strb_r),
+    .data_i(tx_data_r),
+    .data_last_i(tx_data_last_r),
+    .data_accept_o(tx_data_accept_w)
+);
+
+always @ *
+begin
+    tx_data_valid_r = 1'b0;
+    tx_data_strb_r  = 1'b0;
+    tx_data_r       = 8'b0;
+    tx_data_last_r  = 1'b0;
+
+    case (token_ep_w)
+    4'd0:
+    begin
+        tx_data_valid_r = ep0_tx_data_valid_i;
+        tx_data_strb_r  = ep0_tx_data_strb_i;
+        tx_data_r       = ep0_tx_data_i;
+        tx_data_last_r  = ep0_tx_data_last_i;
+    end
+    4'd1:
+    begin
+        tx_data_valid_r = ep1_tx_data_valid_i;
+        tx_data_strb_r  = ep1_tx_data_strb_i;
+        tx_data_r       = ep1_tx_data_i;
+        tx_data_last_r  = ep1_tx_data_last_i;
+    end
+    4'd2:
+    begin
+        tx_data_valid_r = ep2_tx_data_valid_i;
+        tx_data_strb_r  = ep2_tx_data_strb_i;
+        tx_data_r       = ep2_tx_data_i;
+        tx_data_last_r  = ep2_tx_data_last_i;
+    end
+    4'd3:
+    begin
+        tx_data_valid_r = ep3_tx_data_valid_i;
+        tx_data_strb_r  = ep3_tx_data_strb_i;
+        tx_data_r       = ep3_tx_data_i;
+        tx_data_last_r  = ep3_tx_data_last_i;
+    end
+    default:
+        ;
+    endcase    
+end
+
+assign ep0_tx_data_accept_o = tx_data_accept_w & (token_ep_w == 4'd0);
+assign ep1_tx_data_accept_o = tx_data_accept_w & (token_ep_w == 4'd1);
+assign ep2_tx_data_accept_o = tx_data_accept_w & (token_ep_w == 4'd2);
+assign ep3_tx_data_accept_o = tx_data_accept_w & (token_ep_w == 4'd3);
+
+always @ *
+begin
+    rx_space_r     = 1'b0;
+    tx_ready_r     = 1'b0;
+    out_data_bit_r = 1'b0;
+    in_data_bit_r  = 1'b0;
+
+    ep_stall_r = 1'b0;
+    ep_iso_r   = 1'b0;
+
+    case (token_ep_w)
+    4'd0:
+    begin
+        rx_space_r    = ep0_rx_space_i;
+        tx_ready_r    = ep0_tx_ready_i;
+        out_data_bit_r= ep0_out_data_bit_q;
+        in_data_bit_r = ep0_in_data_bit_q;
+        ep_stall_r    = ep0_stall_i;
+        ep_iso_r      = ep0_iso_i;
+    end
+    4'd1:
+    begin
+        rx_space_r    = ep1_rx_space_i;
+        tx_ready_r    = ep1_tx_ready_i;
+        out_data_bit_r= ep1_out_data_bit_q;
+        in_data_bit_r = ep1_in_data_bit_q;
+        ep_stall_r    = ep1_stall_i;
+        ep_iso_r      = ep1_iso_i;
+    end
+    4'd2:
+    begin
+        rx_space_r    = ep2_rx_space_i;
+        tx_ready_r    = ep2_tx_ready_i;
+        out_data_bit_r= ep2_out_data_bit_q;
+        in_data_bit_r = ep2_in_data_bit_q;
+        ep_stall_r    = ep2_stall_i;
+        ep_iso_r      = ep2_iso_i;
+    end
+    4'd3:
+    begin
+        rx_space_r    = ep3_rx_space_i;
+        tx_ready_r    = ep3_tx_ready_i;
+        out_data_bit_r= ep3_out_data_bit_q;
+        in_data_bit_r = ep3_in_data_bit_q;
+        ep_stall_r    = ep3_stall_i;
+        ep_iso_r      = ep3_iso_i;
+    end
+    default:
+        ;
+    endcase
+end
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    rx_space_q <= 1'b0;
+else if (state_q == STATE_RX_IDLE)
+    rx_space_q <= rx_space_r;
+
+//-----------------------------------------------------------------
+// SIE - RX
+//-----------------------------------------------------------------
+usbf_sie_rx
+u_sie_rx
+(
+    .clk_i(clk_i),
+    .rst_i(rst_i),
+    
+    .enable_i(~usb_rst_w && ~reg_chirp_en_i),
+
+    // UTMI Interface
+    .utmi_data_i(utmi_data_i),
+    .utmi_rxvalid_i(utmi_rxvalid_i),
+    .utmi_rxactive_i(utmi_rxactive_i),
+
+    .current_addr_i(current_addr_q),
+
+    .pid_o(token_pid_w),
+
+    .frame_valid_o(frame_valid_w),
+    .frame_number_o(reg_sts_frame_num_o),
+
+    .token_valid_o(token_valid_w),
+    .token_addr_o(token_dev_w),
+    .token_ep_o(token_ep_w),
+    .token_crc_err_o(),
+
+    .handshake_valid_o(rx_handshake_w),
+
+    .data_valid_o(rx_data_valid_w),
+    .data_strb_o(rx_strb_o),
+    .data_o(rx_data_o),
+    .data_last_o(rx_last_o),
+
+    .data_complete_o(rx_data_complete_w),
+    .data_crc_err_o(rx_crc_err_o)
+);
+
+assign ep0_rx_valid_o = rx_enable_q & rx_data_valid_w & (token_ep_w == 4'd0);
+assign ep0_rx_setup_o = rx_setup_q & (token_ep_w == 4'd0);
+assign ep1_rx_valid_o = rx_enable_q & rx_data_valid_w & (token_ep_w == 4'd1);
+assign ep1_rx_setup_o = rx_setup_q & (token_ep_w == 4'd0);
+assign ep2_rx_valid_o = rx_enable_q & rx_data_valid_w & (token_ep_w == 4'd2);
+assign ep2_rx_setup_o = rx_setup_q & (token_ep_w == 4'd0);
+assign ep3_rx_valid_o = rx_enable_q & rx_data_valid_w & (token_ep_w == 4'd3);
+assign ep3_rx_setup_o = rx_setup_q & (token_ep_w == 4'd0);
+
+//-----------------------------------------------------------------
+// Next state
+//-----------------------------------------------------------------
+reg [STATE_W-1:0] next_state_r;
+
+always @ *
+begin
+    next_state_r = state_q;
+
+    //-----------------------------------------
+    // State Machine
+    //-----------------------------------------
+    case (state_q)
+
+    //-----------------------------------------
+    // IDLE
+    //-----------------------------------------
+    STATE_RX_IDLE :
+    begin
+        // Token received (OUT, IN, SETUP, PING)
+        if (token_valid_w)
+        begin
+            //-------------------------------
+            // IN transfer (device -> host)
+            //-------------------------------
+            if (token_pid_w == `PID_IN)
+            begin
+                // Stalled endpoint?
+                if (ep_stall_r)
+                    next_state_r  = STATE_TX_HANDSHAKE;
+                // Some data to TX?
+                else if (tx_ready_r)
+                    next_state_r  = STATE_TX_DATA;
+                // No data to TX
+                else
+                    next_state_r  = STATE_TX_HANDSHAKE;
+            end
+            //-------------------------------
+            // PING transfer (device -> host)
+            //-------------------------------
+            else if (token_pid_w == `PID_PING)
+            begin
+                next_state_r  = STATE_TX_HANDSHAKE;
+            end
+            //-------------------------------
+            // OUT transfer (host -> device)
+            //-------------------------------
+            else if (token_pid_w == `PID_OUT)
+            begin
+                // Stalled endpoint?
+                if (ep_stall_r)
+                    next_state_r  = STATE_RX_DATA_IGNORE;
+                // Some space to rx
+                else if (rx_space_r)
+                    next_state_r  = STATE_RX_DATA;
+                // No rx space, ignore receive
+                else
+                    next_state_r  = STATE_RX_DATA_IGNORE;
+            end
+            //-------------------------------
+            // SETUP transfer (host -> device)
+            //-------------------------------
+            else if (token_pid_w == `PID_SETUP)
+            begin
+                // Some space to rx
+                if (rx_space_r)
+                    next_state_r  = STATE_RX_DATA;
+                // No rx space, ignore receive
+                else
+                    next_state_r  = STATE_RX_DATA_IGNORE;
+            end
+        end
+        else if (reg_chirp_en_i)
+            next_state_r  = STATE_TX_CHIRP;
+    end
+
+    //-----------------------------------------
+    // RX_DATA
+    //-----------------------------------------
+    STATE_RX_DATA :
+    begin
+        // TODO: Exit data state handling?
+
+        // TODO: Sort out ISO data bit handling
+        // Check for expected DATAx PID
+        if ((token_pid_w == `PID_DATA0 &&  out_data_bit_r && !ep_iso_r) ||
+            (token_pid_w == `PID_DATA1 && !out_data_bit_r && !ep_iso_r))
+            next_state_r  = STATE_RX_DATA_IGNORE;
+        // Receive complete
+        else if (rx_data_valid_w && rx_last_o)
+            next_state_r  = STATE_RX_DATA_READY;
+    end
+    //-----------------------------------------
+    // RX_DATA_IGNORE
+    //-----------------------------------------
+    STATE_RX_DATA_IGNORE :
+    begin
+        // Receive complete
+        if (rx_data_valid_w && rx_last_o)
+            next_state_r  = STATE_RX_DATA_READY;
+    end
+    //-----------------------------------------
+    // RX_DATA_READY
+    //-----------------------------------------
+    STATE_RX_DATA_READY :
+    begin
+        if (rx_data_complete_w)
+        begin
+            // No response on CRC16 error
+            if (rx_crc_err_o)
+                next_state_r  = STATE_RX_IDLE;
+            // ISO endpoint, no response?
+            else if (ep_iso_r)
+                next_state_r  = STATE_RX_IDLE;
+            else
+                next_state_r  = STATE_TX_HANDSHAKE;
+        end
+    end
+    //-----------------------------------------
+    // TX_DATA
+    //-----------------------------------------
+    STATE_TX_DATA :
+    begin
+        if (!tx_valid_q || tx_accept_w)
+            if (tx_data_valid_r && tx_data_last_r && tx_data_accept_w)
+                next_state_r  = STATE_TX_DATA_COMPLETE;
+    end
+    //-----------------------------------------
+    // TX_HANDSHAKE
+    //-----------------------------------------
+    STATE_TX_DATA_COMPLETE :
+    begin
+        next_state_r  = STATE_RX_IDLE;
+    end
+    //-----------------------------------------
+    // TX_HANDSHAKE
+    //-----------------------------------------
+    STATE_TX_HANDSHAKE :
+    begin
+        if (tx_accept_w)
+            next_state_r  = STATE_RX_IDLE;
+    end
+    //-----------------------------------------
+    // TX_CHIRP
+    //-----------------------------------------
+    STATE_TX_CHIRP :
+    begin
+        if (!reg_chirp_en_i)
+            next_state_r  = STATE_RX_IDLE;
+    end
+
+    default :
+       ;
+
+    endcase
+
+    //-----------------------------------------
+    // USB Bus Reset (HOST->DEVICE)
+    //----------------------------------------- 
+    if (usb_rst_w && !reg_chirp_en_i)
+        next_state_r  = STATE_RX_IDLE;
+end
+
+// Update state
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    state_q   <= STATE_RX_IDLE;
+else
+    state_q   <= next_state_r;
+
+//-----------------------------------------------------------------
+// Response
+//-----------------------------------------------------------------
+reg         tx_valid_r;
+reg [7:0]   tx_pid_r;
+
+always @ *
+begin
+    tx_valid_r = 1'b0;
+    tx_pid_r   = 8'b0;
+
+    case (state_q)
+    //-----------------------------------------
+    // IDLE
+    //-----------------------------------------
+    STATE_RX_IDLE :
+    begin
+        // Token received (OUT, IN, SETUP, PING)
+        if (token_valid_w)
+        begin
+            //-------------------------------
+            // IN transfer (device -> host)
+            //-------------------------------
+            if (token_pid_w == `PID_IN)
+            begin
+                // Stalled endpoint?
+                if (ep_stall_r)
+                begin
+                    tx_valid_r = 1'b1;
+                    tx_pid_r   = `PID_STALL;
+                end
+                // Some data to TX?
+                else if (tx_ready_r)
+                begin
+                    tx_valid_r = 1'b1;
+                    // TODO: Handle MDATA for ISOs
+                    tx_pid_r   = in_data_bit_r ? `PID_DATA1 : `PID_DATA0;
+                end
+                // No data to TX
+                else
+                begin
+                    tx_valid_r = 1'b1;
+                    tx_pid_r   = `PID_NAK;
+                end
+            end
+            //-------------------------------
+            // PING transfer (device -> host)
+            //-------------------------------
+            else if (token_pid_w == `PID_PING)
+            begin
+                // Stalled endpoint?
+                if (ep_stall_r)
+                begin
+                    tx_valid_r = 1'b1;
+                    tx_pid_r   = `PID_STALL;
+                end
+                // Data ready to RX
+                else if (rx_space_r)
+                begin
+                    tx_valid_r = 1'b1;
+                    tx_pid_r   = `PID_ACK;
+                end
+                // No data to TX
+                else
+                begin
+                    tx_valid_r = 1'b1;
+                    tx_pid_r   = `PID_NAK;
+                end
+            end
+        end
+    end
+
+    //-----------------------------------------
+    // RX_DATA_READY
+    //-----------------------------------------
+    STATE_RX_DATA_READY :
+    begin
+       // Receive complete
+       if (rx_data_complete_w)
+       begin
+            // No response on CRC16 error
+            if (rx_crc_err_o)
+                ;
+            // ISO endpoint, no response?
+            else if (ep_iso_r)
+                ;
+            // Send STALL?
+            else if (ep_stall_r)
+            begin
+                tx_valid_r = 1'b1;
+                tx_pid_r   = `PID_STALL;
+            end
+            // DATAx bit mismatch
+            else if ( (token_pid_w == `PID_DATA0 && out_data_bit_r) ||
+                      (token_pid_w == `PID_DATA1 && !out_data_bit_r) )
+            begin
+                // Ack transfer to resync
+                tx_valid_r = 1'b1;
+                tx_pid_r   = `PID_ACK;
+            end
+            // Send NAK
+            else if (!rx_space_q)
+            begin
+                tx_valid_r = 1'b1;
+                tx_pid_r   = `PID_NAK;
+            end
+            // TODO: USB 2.0, no more buffer space, return NYET
+            else
+            begin
+                tx_valid_r = 1'b1;
+                tx_pid_r   = `PID_ACK;
+            end
+       end
+    end
+
+    //-----------------------------------------
+    // TX_CHIRP
+    //-----------------------------------------
+    STATE_TX_CHIRP :
+    begin
+        tx_valid_r = 1'b1;
+        tx_pid_r   = 8'b0;
+    end
+
+    default :
+       ;
+
+    endcase
+end
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    tx_valid_q <= 1'b0;
+else if (!tx_valid_q || tx_accept_w)
+    tx_valid_q <= tx_valid_r;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    tx_pid_q <= 8'b0;
+else if (!tx_valid_q || tx_accept_w)
+    tx_pid_q <= tx_pid_r;
+
+//-----------------------------------------------------------------
+// Receive enable
+//-----------------------------------------------------------------
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    rx_enable_q <= 1'b0;
+else if (usb_rst_w ||reg_chirp_en_i)
+    rx_enable_q <= 1'b0;
+else
+    rx_enable_q <= (state_q == STATE_RX_DATA);
+
+//-----------------------------------------------------------------
+// Receive SETUP: Pulse on SETUP packet receive
+//-----------------------------------------------------------------
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    rx_setup_q <= 1'b0;
+else if (usb_rst_w ||reg_chirp_en_i)
+    rx_setup_q <= 1'b0;
+else if ((state_q == STATE_RX_IDLE) && token_valid_w && (token_pid_w == `PID_SETUP) && (token_ep_w == 4'd0))
+    rx_setup_q <= 1'b1;
+else
+    rx_setup_q <= 1'b0;
+
+//-----------------------------------------------------------------
+// Set Address
+//-----------------------------------------------------------------
+reg addr_update_pending_q;
+
+wire ep0_tx_zlp_w = ep0_tx_data_valid_i && (ep0_tx_data_strb_i == 1'b0) && 
+                    ep0_tx_data_last_i && ep0_tx_data_accept_o;
+
+reg sent_status_zlp_q;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    sent_status_zlp_q   <= 1'b0;
+else if (usb_rst_w)
+    sent_status_zlp_q   <= 1'b0;
+else if (ep0_tx_zlp_w)
+    sent_status_zlp_q   <= 1'b1;
+else if (rx_handshake_w)
+    sent_status_zlp_q   <= 1'b0;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    addr_update_pending_q   <= 1'b0;
+else if ((sent_status_zlp_q && addr_update_pending_q && rx_handshake_w && token_pid_w == `PID_ACK) || usb_rst_w)
+    addr_update_pending_q   <= 1'b0;
+// TODO: Use write strobe
+else if (reg_dev_addr_i != current_addr_q)
+    addr_update_pending_q   <= 1'b1;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    current_addr_q  <= `USB_DEV_W'b0;
+else if (usb_rst_w)
+    current_addr_q  <= `USB_DEV_W'b0;
+else if (sent_status_zlp_q && addr_update_pending_q && rx_handshake_w && token_pid_w == `PID_ACK)
+    current_addr_q  <= reg_dev_addr_i;
+
+//-----------------------------------------------------------------
+// Endpoint data bit toggle
+//-----------------------------------------------------------------
+reg new_out_bit_r;
+reg new_in_bit_r;
+
+always @ *
+begin
+    new_out_bit_r = out_data_bit_r;
+    new_in_bit_r  = in_data_bit_r;
+
+    case (state_q)
+    //-----------------------------------------
+    // RX_DATA_READY
+    //-----------------------------------------
+    STATE_RX_DATA_READY :
+    begin
+       // Receive complete
+       if (rx_data_complete_w)
+       begin
+            // No toggle on CRC16 error
+            if (rx_crc_err_o)
+                ;
+            // ISO endpoint, no response?
+            else if (ep_iso_r)
+                ; // TODO: HS handling
+            // STALL?
+            else if (ep_stall_r)
+                ;
+            // DATAx bit mismatch
+            else if ( (token_pid_w == `PID_DATA0 && out_data_bit_r) ||
+                      (token_pid_w == `PID_DATA1 && !out_data_bit_r) )
+                ;
+            // NAKd
+            else if (!rx_space_q)
+                ;
+            // Data accepted - toggle data bit
+            else
+                new_out_bit_r = !out_data_bit_r;
+       end
+    end
+    //-----------------------------------------
+    // RX_IDLE
+    //-----------------------------------------
+    STATE_RX_IDLE :
+    begin
+        // Token received (OUT, IN, SETUP, PING)
+        if (token_valid_w)
+        begin
+            // SETUP packets always start with DATA0
+            if (token_pid_w == `PID_SETUP)
+            begin
+                new_out_bit_r = 1'b0;
+                new_in_bit_r  = 1'b1;
+            end
+        end
+        // ACK received
+        else if (rx_handshake_w && token_pid_w == `PID_ACK)
+        begin
+            new_in_bit_r = !in_data_bit_r;
+        end
+    end
+    default:
+        ;
+    endcase
+end
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+begin
+    ep0_out_data_bit_q <= 1'b0;
+    ep0_in_data_bit_q  <= 1'b0;
+end
+else if (usb_rst_w)
+begin
+    ep0_out_data_bit_q <= 1'b0;
+    ep0_in_data_bit_q  <= 1'b0;
+end
+else if (token_ep_w == 4'd0)
+begin
+    ep0_out_data_bit_q <= new_out_bit_r;
+    ep0_in_data_bit_q  <= new_in_bit_r;
+end
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+begin
+    ep1_out_data_bit_q <= 1'b0;
+    ep1_in_data_bit_q  <= 1'b0;
+end
+else if (usb_rst_w)
+begin
+    ep1_out_data_bit_q <= 1'b0;
+    ep1_in_data_bit_q  <= 1'b0;
+end
+else if (token_ep_w == 4'd1)
+begin
+    ep1_out_data_bit_q <= new_out_bit_r;
+    ep1_in_data_bit_q  <= new_in_bit_r;
+end
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+begin
+    ep2_out_data_bit_q <= 1'b0;
+    ep2_in_data_bit_q  <= 1'b0;
+end
+else if (usb_rst_w)
+begin
+    ep2_out_data_bit_q <= 1'b0;
+    ep2_in_data_bit_q  <= 1'b0;
+end
+else if (token_ep_w == 4'd2)
+begin
+    ep2_out_data_bit_q <= new_out_bit_r;
+    ep2_in_data_bit_q  <= new_in_bit_r;
+end
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+begin
+    ep3_out_data_bit_q <= 1'b0;
+    ep3_in_data_bit_q  <= 1'b0;
+end
+else if (usb_rst_w)
+begin
+    ep3_out_data_bit_q <= 1'b0;
+    ep3_in_data_bit_q  <= 1'b0;
+end
+else if (token_ep_w == 4'd3)
+begin
+    ep3_out_data_bit_q <= new_out_bit_r;
+    ep3_in_data_bit_q  <= new_in_bit_r;
+end
+
+//-----------------------------------------------------------------
+// Reset event
+//-----------------------------------------------------------------
+reg rst_event_q;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    rst_event_q <= 1'b0;
+else if (usb_rst_w)
+    rst_event_q <= 1'b1;
+else if (reg_sts_rst_clr_i)
+    rst_event_q <= 1'b0;
+
+assign reg_sts_rst_o = rst_event_q;
+
+//-----------------------------------------------------------------
+// Interrupts
+//-----------------------------------------------------------------
+reg intr_q;
+
+reg cfg_int_rx_r;
+reg cfg_int_tx_r;
+
+always @ *
+begin
+    cfg_int_rx_r = 1'b0;
+    cfg_int_tx_r = 1'b0;
+
+    case (token_ep_w)
+    4'd0:
+    begin
+        cfg_int_rx_r = ep0_cfg_int_rx_i;
+        cfg_int_tx_r = ep0_cfg_int_tx_i;
+    end
+    4'd1:
+    begin
+        cfg_int_rx_r = ep1_cfg_int_rx_i;
+        cfg_int_tx_r = ep1_cfg_int_tx_i;
+    end
+    4'd2:
+    begin
+        cfg_int_rx_r = ep2_cfg_int_rx_i;
+        cfg_int_tx_r = ep2_cfg_int_tx_i;
+    end
+    4'd3:
+    begin
+        cfg_int_rx_r = ep3_cfg_int_rx_i;
+        cfg_int_tx_r = ep3_cfg_int_tx_i;
+    end
+    default:
+        ;
+    endcase
+end
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    intr_q <= 1'b0;
+// SOF
+else if (frame_valid_w && reg_int_en_sof_i)
+    intr_q <= 1'b1;
+// Reset event
+else if (!rst_event_q && usb_rst_w)
+    intr_q <= 1'b1;
+// Rx ready
+else if (state_q == STATE_RX_DATA_READY && rx_space_q && cfg_int_rx_r)
+    intr_q <= 1'b1;
+// Tx complete
+else if (state_q == STATE_TX_DATA_COMPLETE && cfg_int_tx_r)
+    intr_q <= 1'b1;    
+else
+    intr_q <= 1'b0;
+
+assign intr_o = intr_q;
+
+//-------------------------------------------------------------------
+// Debug
+//-------------------------------------------------------------------
+`ifdef verilator
+/* verilator lint_off WIDTH */
+reg [79:0] dbg_state;
+
+always @ *
+begin
+    dbg_state = "-";
+
+    case (state_q)
+    STATE_RX_IDLE: dbg_state = "IDLE";
+    STATE_RX_DATA: dbg_state = "RX_DATA";
+    STATE_RX_DATA_READY: dbg_state = "RX_DATA_READY";
+    STATE_RX_DATA_IGNORE: dbg_state = "RX_IGNORE";
+    STATE_TX_DATA: dbg_state = "TX_DATA";
+    STATE_TX_DATA_COMPLETE: dbg_state = "TX_DATA_COMPLETE";
+    STATE_TX_HANDSHAKE: dbg_state = "TX_HANDSHAKE";
+    STATE_TX_CHIRP: dbg_state = "CHIRP";
+    endcase
+end
+
+reg [79:0] dbg_pid;
+reg [7:0]  dbg_pid_r;
+always @ *
+begin
+    dbg_pid = "-";
+
+    if (tx_valid_q && tx_accept_w)
+        dbg_pid_r = tx_pid_q;
+    else if (token_valid_w || rx_handshake_w || rx_data_valid_w)
+        dbg_pid_r = token_pid_w;
+    else
+        dbg_pid_r = 8'b0;
+
+    case (dbg_pid_r)
+    // Token
+    `PID_OUT:
+        dbg_pid = "OUT";
+    `PID_IN:
+        dbg_pid = "IN";
+    `PID_SOF:
+        dbg_pid = "SOF";
+    `PID_SETUP:
+        dbg_pid = "SETUP";
+    `PID_PING:
+        dbg_pid = "PING";
+    // Data
+    `PID_DATA0:
+        dbg_pid = "DATA0";
+    `PID_DATA1:
+        dbg_pid = "DATA1";
+    `PID_DATA2:
+        dbg_pid = "DATA2";
+    `PID_MDATA:
+        dbg_pid = "MDATA";
+    // Handshake
+    `PID_ACK:
+        dbg_pid = "ACK";
+    `PID_NAK:
+        dbg_pid = "NAK";
+    `PID_STALL:
+        dbg_pid = "STALL";
+    `PID_NYET:
+        dbg_pid = "NYET";
+    // Special
+    `PID_PRE:
+        dbg_pid = "PRE/ERR";
+    `PID_SPLIT:
+        dbg_pid = "SPLIT";
+    default:
+        ;
+    endcase
+end
+/* verilator lint_on WIDTH */
+`endif
+
+
+endmodule

+ 467 - 0
fpga/usb/usb_serial/src_v/usbf_sie_rx.v

@@ -0,0 +1,467 @@
+//-----------------------------------------------------------------
+//                       USB Serial Port
+//                            V0.1
+//                     Ultra-Embedded.com
+//                       Copyright 2020
+//
+//                 Email: admin@ultra-embedded.com
+//
+//                         License: LGPL
+//-----------------------------------------------------------------
+//
+// This source file may be used and distributed without         
+// restriction provided that this copyright statement is not    
+// removed from the file and that any derivative work contains  
+// the original copyright notice and the associated disclaimer. 
+//
+// This source file is free software; you can redistribute it   
+// and/or modify it under the terms of the GNU Lesser General   
+// Public License as published by the Free Software Foundation; 
+// either version 2.1 of the License, or (at your option) any   
+// later version.
+//
+// This source is distributed in the hope that it will be       
+// useful, but WITHOUT ANY WARRANTY; without even the implied   
+// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      
+// PURPOSE.  See the GNU Lesser General Public License for more 
+// details.
+//
+// You should have received a copy of the GNU Lesser General    
+// Public License along with this source; if not, write to the 
+// Free Software Foundation, Inc., 59 Temple Place, Suite 330, 
+// Boston, MA  02111-1307  USA
+//-----------------------------------------------------------------
+
+//-----------------------------------------------------------------
+//                          Generated File
+//-----------------------------------------------------------------
+
+module usbf_sie_rx
+(
+    // Inputs
+     input           clk_i
+    ,input           rst_i
+    ,input           enable_i
+    ,input  [  7:0]  utmi_data_i
+    ,input           utmi_rxvalid_i
+    ,input           utmi_rxactive_i
+    ,input  [  6:0]  current_addr_i
+
+    // Outputs
+    ,output [  7:0]  pid_o
+    ,output          frame_valid_o
+    ,output [ 10:0]  frame_number_o
+    ,output          token_valid_o
+    ,output [  6:0]  token_addr_o
+    ,output [  3:0]  token_ep_o
+    ,output          token_crc_err_o
+    ,output          handshake_valid_o
+    ,output          data_valid_o
+    ,output          data_strb_o
+    ,output [  7:0]  data_o
+    ,output          data_last_o
+    ,output          data_crc_err_o
+    ,output          data_complete_o
+);
+
+
+
+//-----------------------------------------------------------------
+// Defines:
+//-----------------------------------------------------------------
+`include "usbf_defs.v"
+
+localparam STATE_W                       = 4;
+localparam STATE_RX_IDLE                 = 4'd0;
+localparam STATE_RX_TOKEN2               = 4'd1;
+localparam STATE_RX_TOKEN3               = 4'd2;
+localparam STATE_RX_TOKEN_COMPLETE       = 4'd3;
+localparam STATE_RX_SOF2                 = 4'd4;
+localparam STATE_RX_SOF3                 = 4'd5;
+localparam STATE_RX_DATA                 = 4'd6;
+localparam STATE_RX_DATA_COMPLETE        = 4'd7;
+localparam STATE_RX_IGNORED              = 4'd8;
+reg [STATE_W-1:0] state_q;
+
+//-----------------------------------------------------------------
+// Wire / Regs
+//-----------------------------------------------------------------
+`define USB_FRAME_W    11
+reg [`USB_FRAME_W-1:0]      frame_num_q;
+
+`define USB_DEV_W      7
+reg [`USB_DEV_W-1:0]        token_dev_q;
+
+`define USB_EP_W       4
+reg [`USB_EP_W-1:0]         token_ep_q;
+
+`define USB_PID_W      8
+reg [`USB_PID_W-1:0]        token_pid_q;
+
+//-----------------------------------------------------------------
+// Data delay (to strip the CRC16 trailing bytes)
+//-----------------------------------------------------------------
+reg [31:0] data_buffer_q;
+reg [3:0]  data_valid_q;
+reg [3:0]  rx_active_q;
+
+wire shift_en_w = (utmi_rxvalid_i & utmi_rxactive_i) || !utmi_rxactive_i;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    data_buffer_q <= 32'b0;
+else if (shift_en_w)
+    data_buffer_q <= {utmi_data_i, data_buffer_q[31:8]};
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    data_valid_q <= 4'b0;
+else if (shift_en_w)
+    data_valid_q <= {(utmi_rxvalid_i & utmi_rxactive_i), data_valid_q[3:1]};
+else
+    data_valid_q <= {data_valid_q[3:1], 1'b0};
+
+reg [1:0] data_crc_q;
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    data_crc_q <= 2'b0;
+else if (shift_en_w)
+    data_crc_q <= {!utmi_rxactive_i, data_crc_q[1]};
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    rx_active_q <= 4'b0;
+else
+    rx_active_q <= {utmi_rxactive_i, rx_active_q[3:1]};
+
+wire [7:0] data_w       = data_buffer_q[7:0];
+wire       data_ready_w = data_valid_q[0];
+wire       crc_byte_w   = data_crc_q[0];
+wire       rx_active_w  = rx_active_q[0];
+
+wire       address_match_w = (token_dev_q == current_addr_i);
+
+//-----------------------------------------------------------------
+// Next state
+//-----------------------------------------------------------------
+reg [STATE_W-1:0] next_state_r;
+
+always @ *
+begin
+    next_state_r = state_q;
+
+    case (state_q)
+
+    //-----------------------------------------
+    // IDLE
+    //-----------------------------------------
+    STATE_RX_IDLE :
+    begin
+       if (data_ready_w)
+       begin
+           // Decode PID
+           case (data_w)
+
+              `PID_OUT, `PID_IN, `PID_SETUP, `PID_PING:
+                    next_state_r  = STATE_RX_TOKEN2;
+
+              `PID_SOF:
+                    next_state_r  = STATE_RX_SOF2;
+
+              `PID_DATA0, `PID_DATA1, `PID_DATA2, `PID_MDATA:
+              begin
+                    next_state_r  = STATE_RX_DATA;
+              end
+
+              `PID_ACK, `PID_NAK, `PID_STALL, `PID_NYET:
+                    next_state_r  = STATE_RX_IDLE;
+
+              default : // SPLIT / ERR
+                    next_state_r  = STATE_RX_IGNORED;
+           endcase
+       end
+    end
+
+    //-----------------------------------------
+    // RX_IGNORED: Unknown / unsupported
+    //-----------------------------------------
+    STATE_RX_IGNORED :
+    begin
+        // Wait until the end of the packet
+        if (!rx_active_w)
+           next_state_r = STATE_RX_IDLE;
+    end
+
+    //-----------------------------------------
+    // SOF (BYTE 2)
+    //-----------------------------------------
+    STATE_RX_SOF2 :
+    begin
+       if (data_ready_w)
+           next_state_r = STATE_RX_SOF3;
+       else if (!rx_active_w)
+           next_state_r = STATE_RX_IDLE;
+    end
+
+    //-----------------------------------------
+    // SOF (BYTE 3)
+    //-----------------------------------------
+    STATE_RX_SOF3 :
+    begin
+       if (data_ready_w || !rx_active_w)
+           next_state_r = STATE_RX_IDLE;
+    end
+
+    //-----------------------------------------
+    // TOKEN (IN/OUT/SETUP) (Address/Endpoint)
+    //-----------------------------------------
+    STATE_RX_TOKEN2 :
+    begin
+       if (data_ready_w)
+           next_state_r = STATE_RX_TOKEN3;
+       else if (!rx_active_w)
+           next_state_r = STATE_RX_IDLE;
+    end
+
+    //-----------------------------------------
+    // TOKEN (IN/OUT/SETUP) (Endpoint/CRC)
+    //-----------------------------------------
+    STATE_RX_TOKEN3 :
+    begin
+       if (data_ready_w)
+           next_state_r = STATE_RX_TOKEN_COMPLETE;
+       else if (!rx_active_w)
+           next_state_r = STATE_RX_IDLE;
+    end
+
+    //-----------------------------------------
+    // RX_TOKEN_COMPLETE
+    //-----------------------------------------
+    STATE_RX_TOKEN_COMPLETE :
+    begin
+        next_state_r  = STATE_RX_IDLE;
+    end
+
+    //-----------------------------------------
+    // RX_DATA
+    //-----------------------------------------
+    STATE_RX_DATA :
+    begin
+       // Receive complete
+       if (crc_byte_w)
+            next_state_r = STATE_RX_DATA_COMPLETE;
+    end
+
+    //-----------------------------------------
+    // RX_DATA_COMPLETE
+    //-----------------------------------------
+    STATE_RX_DATA_COMPLETE :
+    begin
+        if (!rx_active_w)
+            next_state_r = STATE_RX_IDLE;
+    end
+
+    default :
+       ;
+
+    endcase
+end
+
+// Update state
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    state_q   <= STATE_RX_IDLE;
+else if (!enable_i)
+    state_q   <= STATE_RX_IDLE;
+else
+    state_q   <= next_state_r;
+
+//-----------------------------------------------------------------
+// Handshake:
+//-----------------------------------------------------------------
+reg handshake_valid_q;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    handshake_valid_q <= 1'b0;
+else if (state_q == STATE_RX_IDLE && data_ready_w)
+begin
+    case (data_w)
+    `PID_ACK, `PID_NAK, `PID_STALL, `PID_NYET:
+        handshake_valid_q <= address_match_w;
+    default :
+        handshake_valid_q <= 1'b0;
+    endcase
+end
+else
+    handshake_valid_q <= 1'b0;
+
+assign handshake_valid_o = handshake_valid_q;
+
+//-----------------------------------------------------------------
+// SOF: Frame number
+//-----------------------------------------------------------------
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    frame_num_q         <= `USB_FRAME_W'b0;
+else if (state_q == STATE_RX_SOF2 && data_ready_w)
+    frame_num_q         <= {3'b0, data_w};
+else if (state_q == STATE_RX_SOF3 && data_ready_w)
+    frame_num_q         <= {data_w[2:0], frame_num_q[7:0]};
+else if (!enable_i)
+    frame_num_q         <= `USB_FRAME_W'b0;
+
+assign frame_number_o = frame_num_q;
+
+reg frame_valid_q;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    frame_valid_q <= 1'b0;
+else
+    frame_valid_q <= (state_q == STATE_RX_SOF3 && data_ready_w);
+
+assign frame_valid_o = frame_valid_q;
+
+//-----------------------------------------------------------------
+// Token: PID
+//-----------------------------------------------------------------
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    token_pid_q <= `USB_PID_W'b0;
+else if (state_q == STATE_RX_IDLE && data_ready_w)
+    token_pid_q <= data_w;
+else if (!enable_i)
+    token_pid_q <= `USB_PID_W'b0;
+
+assign pid_o = token_pid_q;
+
+reg token_valid_q;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    token_valid_q <= 1'b0;
+else
+    token_valid_q <= (state_q == STATE_RX_TOKEN_COMPLETE) && address_match_w;
+
+assign token_valid_o = token_valid_q;
+
+//-----------------------------------------------------------------
+// Token: Device Address
+//-----------------------------------------------------------------
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    token_dev_q <= `USB_DEV_W'b0;
+else if (state_q == STATE_RX_TOKEN2 && data_ready_w)
+    token_dev_q <= data_w[6:0];
+else if (!enable_i)
+    token_dev_q <= `USB_DEV_W'b0;
+
+assign token_addr_o = token_dev_q;
+
+//-----------------------------------------------------------------
+// Token: Endpoint
+//-----------------------------------------------------------------
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    token_ep_q      <= `USB_EP_W'b0;
+else if (state_q == STATE_RX_TOKEN2 && data_ready_w)
+    token_ep_q[0]   <= data_w[7];
+else if (state_q == STATE_RX_TOKEN3 && data_ready_w)
+    token_ep_q[3:1] <= data_w[2:0];
+else if (!enable_i)
+    token_ep_q      <= `USB_EP_W'b0;
+
+assign token_ep_o = token_ep_q;
+assign token_crc_err_o = 1'b0;
+
+wire [7:0] input_data_w  = data_w;
+wire       input_ready_w = state_q == STATE_RX_DATA && data_ready_w && !crc_byte_w;
+
+//-----------------------------------------------------------------
+// CRC16: Generate CRC16 on incoming data bytes
+//-----------------------------------------------------------------
+reg [15:0]  crc_sum_q;
+wire [15:0] crc_out_w;
+reg         crc_err_q;
+
+usbf_crc16
+u_crc16
+(
+    .crc_in_i(crc_sum_q),
+    .din_i(data_w),
+    .crc_out_o(crc_out_w)
+);
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    crc_sum_q   <= 16'hFFFF;
+else if (state_q == STATE_RX_IDLE)
+    crc_sum_q   <= 16'hFFFF;
+else if (data_ready_w)
+    crc_sum_q   <= crc_out_w;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    crc_err_q   <= 1'b0;
+else if (state_q == STATE_RX_IDLE)
+    crc_err_q   <= 1'b0;
+else if (state_q == STATE_RX_DATA_COMPLETE && next_state_r == STATE_RX_IDLE)
+    crc_err_q   <= (crc_sum_q != 16'hB001);
+
+assign data_crc_err_o = crc_err_q;
+
+reg data_complete_q;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    data_complete_q   <= 1'b0;
+else if (state_q == STATE_RX_DATA_COMPLETE && next_state_r == STATE_RX_IDLE)
+    data_complete_q   <= 1'b1;
+else
+    data_complete_q   <= 1'b0;
+
+assign data_complete_o = data_complete_q;
+
+reg data_zlp_q;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    data_zlp_q   <= 1'b0;
+else if (state_q == STATE_RX_IDLE && next_state_r == STATE_RX_DATA)
+    data_zlp_q   <= 1'b1;
+else if (input_ready_w)
+    data_zlp_q   <= 1'b0;
+
+//-----------------------------------------------------------------
+// Data Output
+//-----------------------------------------------------------------
+reg        valid_q;
+reg        last_q;
+reg [7:0]  data_q;
+reg        mask_q;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+begin
+    valid_q  <= 1'b0;
+    data_q   <= 8'b0;
+    mask_q   <= 1'b0;
+    last_q   <= 1'b0;
+end
+else
+begin
+    valid_q  <= input_ready_w || ((state_q == STATE_RX_DATA) && crc_byte_w && data_zlp_q);
+    data_q   <= input_data_w;
+    mask_q   <= input_ready_w;
+    last_q   <= (state_q == STATE_RX_DATA) && crc_byte_w;
+end
+
+// Data
+assign data_valid_o = valid_q;
+assign data_strb_o  = mask_q;
+assign data_o       = data_q;
+assign data_last_o  = last_q | crc_byte_w;
+
+
+endmodule

+ 345 - 0
fpga/usb/usb_serial/src_v/usbf_sie_tx.v

@@ -0,0 +1,345 @@
+//-----------------------------------------------------------------
+//                       USB Serial Port
+//                            V0.1
+//                     Ultra-Embedded.com
+//                       Copyright 2020
+//
+//                 Email: admin@ultra-embedded.com
+//
+//                         License: LGPL
+//-----------------------------------------------------------------
+//
+// This source file may be used and distributed without         
+// restriction provided that this copyright statement is not    
+// removed from the file and that any derivative work contains  
+// the original copyright notice and the associated disclaimer. 
+//
+// This source file is free software; you can redistribute it   
+// and/or modify it under the terms of the GNU Lesser General   
+// Public License as published by the Free Software Foundation; 
+// either version 2.1 of the License, or (at your option) any   
+// later version.
+//
+// This source is distributed in the hope that it will be       
+// useful, but WITHOUT ANY WARRANTY; without even the implied   
+// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      
+// PURPOSE.  See the GNU Lesser General Public License for more 
+// details.
+//
+// You should have received a copy of the GNU Lesser General    
+// Public License along with this source; if not, write to the 
+// Free Software Foundation, Inc., 59 Temple Place, Suite 330, 
+// Boston, MA  02111-1307  USA
+//-----------------------------------------------------------------
+
+//-----------------------------------------------------------------
+//                          Generated File
+//-----------------------------------------------------------------
+
+module usbf_sie_tx
+(
+    // Inputs
+     input           clk_i
+    ,input           rst_i
+    ,input           enable_i
+    ,input           chirp_i
+    ,input           utmi_txready_i
+    ,input           tx_valid_i
+    ,input  [  7:0]  tx_pid_i
+    ,input           data_valid_i
+    ,input           data_strb_i
+    ,input  [  7:0]  data_i
+    ,input           data_last_i
+
+    // Outputs
+    ,output [  7:0]  utmi_data_o
+    ,output          utmi_txvalid_o
+    ,output          tx_accept_o
+    ,output          data_accept_o
+);
+
+
+
+//-----------------------------------------------------------------
+// Defines:
+//-----------------------------------------------------------------
+`include "usbf_defs.v"
+
+localparam STATE_W                       = 3;
+localparam STATE_TX_IDLE                 = 3'd0;
+localparam STATE_TX_PID                  = 3'd1;
+localparam STATE_TX_DATA                 = 3'd2;
+localparam STATE_TX_CRC1                 = 3'd3;
+localparam STATE_TX_CRC2                 = 3'd4;
+localparam STATE_TX_DONE                 = 3'd5;
+localparam STATE_TX_CHIRP                = 3'd6;
+
+reg [STATE_W-1:0] state_q;
+reg [STATE_W-1:0] next_state_r;
+
+//-----------------------------------------------------------------
+// Request Type
+//-----------------------------------------------------------------
+reg data_pid_q;
+reg data_zlp_q;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+begin
+    data_pid_q <= 1'b0;
+    data_zlp_q <= 1'b0;
+end
+else if (!enable_i)
+begin
+    data_pid_q <= 1'b0;
+    data_zlp_q <= 1'b0;
+end
+else if (tx_valid_i && tx_accept_o)
+begin
+    case (tx_pid_i)
+
+    `PID_MDATA, `PID_DATA2, `PID_DATA0, `PID_DATA1:
+    begin
+        data_pid_q <= 1'b1;
+        data_zlp_q <= data_valid_i && (data_strb_i == 1'b0) && data_last_i;
+    end
+
+    default :
+    begin
+        data_pid_q <= 1'b0;
+        data_zlp_q <= 1'b0;
+    end
+    endcase
+end
+else if (next_state_r == STATE_TX_CRC1)
+begin
+    data_pid_q <= 1'b0;
+    data_zlp_q <= 1'b0;
+end
+
+assign tx_accept_o = (state_q == STATE_TX_IDLE);
+
+//-----------------------------------------------------------------
+// Next state
+//-----------------------------------------------------------------
+always @ *
+begin
+    next_state_r = state_q;
+
+    //-----------------------------------------
+    // State Machine
+    //-----------------------------------------
+    case (state_q)
+
+    //-----------------------------------------
+    // IDLE
+    //-----------------------------------------
+    STATE_TX_IDLE :
+    begin
+        if (chirp_i)
+            next_state_r  = STATE_TX_CHIRP;
+        else if (tx_valid_i)
+            next_state_r  = STATE_TX_PID;
+    end
+
+    //-----------------------------------------
+    // TX_PID
+    //-----------------------------------------
+    STATE_TX_PID :
+    begin
+        // Data accepted
+        if (utmi_txready_i)
+        begin
+            if (data_zlp_q)
+                next_state_r = STATE_TX_CRC1;
+            else if (data_pid_q)
+                next_state_r = STATE_TX_DATA;
+            else
+                next_state_r = STATE_TX_DONE;
+        end
+    end
+
+    //-----------------------------------------
+    // TX_DATA
+    //-----------------------------------------
+    STATE_TX_DATA :
+    begin
+        // Data accepted
+        if (utmi_txready_i)
+        begin
+            // Generate CRC16 at end of packet
+            if (data_last_i)
+                next_state_r  = STATE_TX_CRC1;
+        end
+    end
+
+    //-----------------------------------------
+    // TX_CRC1 (first byte)
+    //-----------------------------------------
+    STATE_TX_CRC1 :
+    begin
+        // Data sent?
+        if (utmi_txready_i)
+            next_state_r  = STATE_TX_CRC2;
+    end
+
+    //-----------------------------------------
+    // TX_CRC (second byte)
+    //-----------------------------------------
+    STATE_TX_CRC2 :
+    begin
+        // Data sent?
+        if (utmi_txready_i)
+            next_state_r  = STATE_TX_DONE;
+    end
+
+    //-----------------------------------------
+    // TX_DONE
+    //-----------------------------------------
+    STATE_TX_DONE :
+    begin
+        // Data sent?
+        if (!utmi_txvalid_o || utmi_txready_i)
+            next_state_r  = STATE_TX_IDLE;
+    end
+
+    //-----------------------------------------
+    // TX_CHIRP
+    //-----------------------------------------
+    STATE_TX_CHIRP :
+    begin
+        if (!chirp_i)
+            next_state_r  = STATE_TX_IDLE;
+    end
+
+    default :
+       ;
+
+    endcase
+
+    // USB reset but not chirping...
+    if (!enable_i && !chirp_i)
+        next_state_r  = STATE_TX_IDLE;
+end
+
+// Update state
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    state_q   <= STATE_TX_IDLE;
+else
+    state_q   <= next_state_r;
+
+//-----------------------------------------------------------------
+// Data Input
+//-----------------------------------------------------------------
+reg       input_valid_r;
+reg [7:0] input_byte_r;
+reg       input_last_r;
+always @ *
+begin
+    input_valid_r = data_strb_i & data_pid_q;
+    input_byte_r  = data_i;
+    input_last_r  = data_last_i;
+end
+
+reg data_accept_r;
+always @ *
+begin
+    if (state_q == STATE_TX_DATA)
+        data_accept_r = utmi_txready_i;
+    else if (state_q == STATE_TX_PID && data_zlp_q)
+        data_accept_r = utmi_txready_i;
+    else
+        data_accept_r = 1'b0;
+end
+
+assign data_accept_o = data_accept_r;
+
+//-----------------------------------------------------------------
+// CRC16: Generate CRC16 on outgoing data
+//-----------------------------------------------------------------
+reg [15:0]  crc_sum_q;
+wire [15:0] crc_out_w;
+reg         crc_err_q;
+
+usbf_crc16
+u_crc16
+(
+    .crc_in_i(crc_sum_q),
+    .din_i(utmi_data_o),
+    .crc_out_o(crc_out_w)
+);
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+    crc_sum_q   <= 16'hFFFF;
+else if (state_q == STATE_TX_IDLE)
+    crc_sum_q   <= 16'hFFFF;
+else if (state_q == STATE_TX_DATA && utmi_txvalid_o && utmi_txready_i)
+    crc_sum_q   <= crc_out_w;
+
+//-----------------------------------------------------------------
+// Output
+//-----------------------------------------------------------------
+reg       valid_q;
+reg [7:0] data_q;
+
+always @ (posedge clk_i or posedge rst_i)
+if (rst_i)
+begin
+    valid_q <= 1'b0;
+    data_q  <= 8'b0;
+end
+else if (!enable_i)
+begin
+    valid_q <= 1'b0;
+    data_q  <= 8'b0;
+end
+else if (tx_valid_i && tx_accept_o)
+begin
+    valid_q <= 1'b1;
+    data_q  <= tx_pid_i;
+end
+else if (utmi_txready_i)
+begin
+    valid_q <= 1'b0;
+    data_q  <= 8'b0;
+end
+
+reg       utmi_txvalid_r;
+reg [7:0] utmi_data_r;
+
+always @ *
+begin
+    if (state_q == STATE_TX_CHIRP)
+    begin
+        utmi_txvalid_r = 1'b1;
+        utmi_data_r    = 8'b0;
+    end
+    else if (state_q == STATE_TX_CRC1)
+    begin
+        utmi_txvalid_r = 1'b1;
+        utmi_data_r    = crc_sum_q[7:0] ^ 8'hFF;
+    end
+    else if (state_q == STATE_TX_CRC2)
+    begin
+        utmi_txvalid_r = 1'b1;
+        utmi_data_r    = crc_sum_q[15:8] ^ 8'hFF;
+    end
+    else if (state_q == STATE_TX_DATA)
+    begin
+        utmi_txvalid_r = data_valid_i;
+        utmi_data_r    = data_i;
+    end
+    else
+    begin
+        utmi_txvalid_r = valid_q;
+        utmi_data_r    = data_q;
+    end
+end
+
+assign utmi_txvalid_o = utmi_txvalid_r;
+assign utmi_data_o    = utmi_data_r;
+
+
+endmodule

+ 7145 - 7026
fw/boot.mif

@@ -15,7 +15,7 @@ CONTENT BEGIN
 0008 : 0001210B;
 0009 : 200DF413;
 000A : 00040863;
-000B : 05B010EF;
+000B : 1E7010EF;
 000C : 408D8DB3;
 000D : 060D8263;
 000E : 00000493;
@@ -44,21 +44,21 @@ CONTENT BEGIN
 0025 : FA0D94E3;
 0026 : 30200073;
 0027 : 00000000;
-0028 : 000005B8;
-0029 : 000005B8;
-002A : 000005B8;
-002B : 0000051C;
-002C : 000005B8;
-002D : 00000A1E;
-002E : 000005B8;
-002F : 000005B8;
-0030 : 000005B8;
-0031 : 00001886;
-0032 : 41016700;
+0028 : 000006E6;
+0029 : 00000588;
+002A : 0000057C;
+002B : 0000055A;
+002C : 000006E6;
+002D : 00000B4C;
+002E : 000006E6;
+002F : 000006E6;
+0030 : 000006E6;
+0031 : 00001A12;
+0032 : 41016720;
 0033 : 00000040;
 0034 : FFFFFFFF;
 0035 : FFFFFFFF;
-0036 : 00007240;
+0036 : 0000741C;
 0037 : 00000000;
 0038 : 00000000;
 0039 : 00000000;
@@ -320,7 +320,7 @@ CONTENT BEGIN
 0139 : 0040006F;
 013A : C6061141;
 013B : C226C422;
-013C : 4283283D;
+013C : 42832055;
 013D : 86630E40;
 013E : 10970002;
 013F : 80E74000;
@@ -329,7016 +329,7135 @@ CONTENT BEGIN
 0142 : 0810878B;
 0143 : 0F004303;
 0144 : 00030363;
-0145 : 10EF2925;
-0146 : B7ED0E70;
-0147 : 0E800293;
-0148 : 0002A703;
-0149 : 00170313;
-014A : 0062A023;
-014B : 11418082;
-014C : 57FDC606;
-014D : 80F02423;
-014E : FD900093;
-014F : 0610078B;
-0150 : C0102773;
-0151 : 0EE02623;
-0152 : 078B535D;
-0153 : 10EF0660;
-0154 : 65712D40;
-0155 : 20050513;
-0156 : 639D2055;
-0157 : B2438513;
-0158 : 258328E9;
-0159 : 46378000;
-015A : 06933858;
-015B : 846314D6;
-015C : 6F1D02D5;
-015D : AE8F0513;
-015E : 22D120C9;
-015F : 1BC020EF;
-0160 : 735010EF;
-0161 : 6FE010EF;
-0162 : 80002423;
-0163 : B8002623;
-0164 : 014140B2;
-0165 : 28038082;
-0166 : 6E9D8040;
-0167 : B00E8513;
-0168 : 01085893;
-0169 : 01081E13;
-016A : 010E5693;
-016B : 0FF8F613;
-016C : 01885593;
-016D : B7D1287D;
-016E : 95334785;
-016F : 429300A7;
-0170 : 050BFFF5;
-0171 : 80820655;
-0172 : 0C800293;
-0173 : A503872A;
-0174 : 66B70002;
-0175 : 83934141;
-0176 : 03337006;
-0177 : FC6300E5;
-0178 : 11410063;
-0179 : 50EFC606;
-017A : 45B11890;
-017B : 40B2C10C;
-017C : 0141557D;
-017D : A0238082;
-017E : 80820062;
-017F : 3216D737;
-0180 : 0313478D;
-0181 : 82B39487;
-0182 : 353302A7;
-0183 : 83B30265;
-0184 : 859300A2;
-0185 : 2223FFF3;
-0186 : 808290B0;
-0187 : 90802783;
-0188 : 0107F293;
-0189 : FE029CE3;
-018A : 15634329;
-018B : 43B50065;
-018C : 90700023;
-018D : 90A00023;
-018E : 11418082;
-018F : C606C422;
-0190 : 4503842A;
-0191 : E5090004;
-0192 : 442240B2;
-0193 : 80820141;
-0194 : 37E90405;
-0195 : 7175B7FD;
-0196 : 86AE862A;
-0197 : 0593850A;
-0198 : C7060800;
-0199 : 227050EF;
-019A : 3FC1850A;
-019B : 614940BA;
-019C : 71398082;
-019D : 104CD22E;
-019E : D432CE06;
-019F : D83AD636;
-01A0 : DC42DA3E;
-01A1 : C62EDE46;
-01A2 : 40F237F9;
-01A3 : 80826121;
-01A4 : 06400793;
-01A5 : 02F57533;
-01A6 : 52B34729;
-01A7 : 73B302E5;
-01A8 : 931302E5;
-01A9 : 05B30042;
-01AA : F5130073;
-01AB : 80820FF5;
-01AC : C6061141;
-01AD : C226C422;
-01AE : 03400793;
-01AF : 242366C1;
-01B0 : 4F45A8F0;
-01B1 : 08000E13;
-01B2 : F8668E93;
-01B3 : A8400613;
-01B4 : 00062083;
-01B5 : 0400F293;
-01B6 : 04028263;
-01B7 : 08000413;
-01B8 : 0804078B;
-01B9 : 04936335;
-01BA : 0393A800;
-01BB : A0230803;
-01BC : 078B0074;
-01BD : 42080804;
-01BE : 08057593;
-01BF : C99D4501;
-01C0 : 0593671D;
-01C1 : 05130680;
-01C2 : 37A5B867;
-01C3 : 0804040B;
-01C4 : 08936841;
-01C5 : A023F848;
-01C6 : A8210114;
-01C7 : 080E078B;
-01C8 : A9D02023;
-01C9 : 13E31F7D;
-01CA : 6F9DFA0F;
-01CB : B6EF8513;
-01CC : 557D3789;
-01CD : 442240B2;
-01CE : 01414492;
-01CF : 71798082;
-01D0 : 37BDD606;
-01D1 : 20051163;
-01D2 : 08000793;
-01D3 : 0807870B;
-01D4 : A8000713;
-01D5 : 08200693;
-01D6 : 878BC314;
-01D7 : 60B50807;
-01D8 : 18008293;
-01D9 : 00572023;
-01DA : 08000313;
-01DB : F0000813;
-01DC : 070B4399;
-01DD : 08930803;
-01DE : A023A800;
-01DF : 060B0108;
-01E0 : 45830803;
-01E1 : 0070A850;
-01E2 : 00A60E33;
-01E3 : 00BE0023;
-01E4 : 10E30505;
-01E5 : 068BFE75;
-01E6 : 05130803;
-01E7 : A023F840;
-01E8 : 078B00A8;
-01E9 : 4F830803;
-01EA : 430300C1;
-01EB : 40A900D1;
-01EC : 004FD793;
-01ED : 00435813;
-01EE : 02178733;
-01EF : A8504E83;
-01F0 : 00FFF693;
-01F1 : 00F37893;
-01F2 : 0FFEFF13;
-01F3 : CA026791;
-01F4 : CE02CC02;
-01F5 : 021803B3;
-01F6 : 00D702B3;
-01F7 : 0012D513;
-01F8 : 00F29713;
-01F9 : 00E14283;
-01FA : 01F57E93;
-01FB : 00F766B3;
-01FC : 00D11C23;
-01FD : 0402F313;
-01FE : 0042D813;
-01FF : 011385B3;
-0200 : 03F5F613;
-0201 : 00561E13;
-0202 : 01DE6FB3;
-0203 : 01F11A23;
-0204 : 00F2F393;
-0205 : 12030463;
-0206 : 00187593;
-0207 : 02158633;
-0208 : 08B34E2D;
-0209 : 53630076;
-020A : 18D1011E;
-020B : 0202F513;
-020C : 08B1C111;
-020D : 01014E83;
-020E : 4F8346A9;
-020F : D7130111;
-0210 : 07B3004E;
-0211 : F29302D7;
-0212 : DE9300FE;
-0213 : F713004F;
-0214 : 03B7001E;
-0215 : 65C1001F;
-0216 : FFF58613;
-0217 : FE3308AE;
-0218 : 05B700C8;
-0219 : 83330200;
-021A : 07B30057;
-021B : F29302D7;
-021C : 181300FF;
-021D : 70B30103;
-021E : 03B70078;
-021F : E53301E0;
-0220 : 0EB701C0;
-0221 : 0FE2FE00;
-0222 : 80058613;
-0223 : 7FFE8713;
-0224 : 00578333;
-0225 : 01531813;
-0226 : 004F5313;
-0227 : 02D306B3;
-0228 : 007870B3;
-0229 : 001568B3;
-022A : 7F134552;
-022B : D09300FF;
-022C : FE33418F;
-022D : 77B300C8;
-022E : D89300E5;
-022F : 62B341F0;
-0230 : 883300FE;
-0231 : 739301E6;
-0232 : F6130FF8;
-0233 : 8E130648;
-0234 : 05330143;
-0235 : 15FD01C6;
-0236 : 00B2F733;
-0237 : 01951E93;
-0238 : 01815283;
-0239 : 01D767B3;
-023A : 1223CA3E;
-023B : 20238850;
-023C : 435288F0;
-023D : 6E9D4862;
-023E : 00535093;
-023F : 01F37693;
-0240 : 00F85393;
-0241 : 03F0F793;
-0242 : 9F1350B2;
-0243 : 55130016;
-0244 : FF930193;
-0245 : 58930013;
-0246 : 5E1300B3;
-0247 : 56130103;
-0248 : 05930153;
-0249 : 68337BC5;
-024A : F71301FF;
-024B : 769301F8;
-024C : 8A3D01FE;
-024D : BADE8513;
-024E : BB256145;
-024F : 021800B3;
-0250 : 007088B3;
-0251 : 50B2BDC5;
-0252 : 80826145;
-0253 : 08237179;
-0254 : D6060E00;
-0255 : 2403D422;
-0256 : 20838800;
-0257 : 75138840;
-0258 : D31301F4;
-0259 : 129300F0;
-025A : 73930015;
-025B : E5330013;
-025C : CC060072;
-025D : 3B29CA22;
-025E : 00545593;
-025F : 00A10623;
-0260 : 03F5F513;
-0261 : 56133331;
-0262 : 06A300B4;
-0263 : 751300A1;
-0264 : 39FD01F6;
-0265 : 01045693;
-0266 : 00A10723;
-0267 : 01F6F513;
-0268 : 000107A3;
-0269 : 571331F5;
-026A : 08230154;
-026B : 751300A1;
-026C : 39F900F7;
-026D : 01945813;
-026E : 00A108A3;
-026F : FEC80513;
-0270 : 092339C1;
-0271 : 31ED00A1;
-0272 : 0893E539;
-0273 : 870B0800;
-0274 : 0E130808;
-0275 : 20230800;
-0276 : 4E99A910;
-0277 : 080E078B;
-0278 : 00C10F13;
-0279 : 00AF0FB3;
-027A : 000FC783;
-027B : A8000293;
-027C : 94130505;
-027D : 60930087;
-027E : A0230804;
-027F : 1FE30012;
-0280 : 070BFDD5;
-0281 : 4503080E;
-0282 : 13130121;
-0283 : 63930085;
-0284 : A0230843;
-0285 : 50B20072;
-0286 : 61455422;
-0287 : 02938082;
-0288 : A7030F40;
-0289 : 06930002;
-028A : A0230017;
-028B : C70D00D2;
-028C : 0E134805;
-028D : 01630F80;
-028E : 23F30507;
-028F : 2503C010;
-0290 : 0613000E;
-0291 : 08130200;
-0292 : 85B3FDF0;
-0293 : 222340A3;
-0294 : 078B00BE;
-0295 : 80820706;
-0296 : 40000337;
-0297 : 00C02583;
-0298 : 00030393;
-0299 : 98702023;
-029A : 22236605;
-029B : 031398B0;
-029C : 24230B86;
-029D : 80829860;
-029E : C0102EF3;
-029F : 0E002F83;
-02A0 : 400012B7;
-02A1 : 0B828713;
-02A2 : 41FE87B3;
-02A3 : 00FE2023;
-02A4 : 98E02023;
-02A5 : 222366AD;
-02A6 : 83139800;
-02A7 : BFD16406;
-02A8 : 04000793;
-02A9 : 0807870B;
-02AA : A6A00223;
-02AB : 0807870B;
-02AC : A2B02E23;
-02AD : 0807870B;
-02AE : A1404703;
-02AF : 0FF77293;
-02B0 : 0807878B;
-02B1 : 042345C1;
-02B2 : 0313A250;
-02B3 : 068B0400;
-02B4 : 45030803;
-02B5 : 1393A270;
-02B6 : D5130185;
-02B7 : 54634183;
-02B8 : 15FD0005;
-02B9 : 8082F5ED;
-02BA : 15E9C291;
-02BB : 07934721;
-02BC : 08930400;
-02BD : 03130FE0;
-02BE : 880B0FD0;
-02BF : 48030807;
-02C0 : 7E13A670;
-02C1 : 0A630FF8;
-02C2 : 64630118;
-02C3 : 177D01C3;
-02C4 : 167DC319;
-02C5 : 557DF27D;
-02C6 : 72938082;
-02C7 : 862A0015;
-02C8 : 00028B63;
-02C9 : 00150613;
-02CA : 0807878B;
-02CB : A2704383;
-02CC : 002315FD;
-02CD : 05130075;
-02CE : 078B0400;
-02CF : 47830805;
-02D0 : 7E93A270;
-02D1 : 8A630026;
-02D2 : 070B000E;
-02D3 : 5F830805;
-02D4 : 0609A2A0;
-02D5 : 1F2315F9;
-02D6 : 0793FFF6;
-02D7 : 878B0400;
-02D8 : 57830807;
-02D9 : 8E2EA2A0;
-02DA : 04000293;
-02DB : 00C58833;
-02DC : 888B4715;
-02DD : 23030802;
-02DE : 08B3A2C0;
-02DF : 1E7141C8;
-02E0 : 0068A023;
-02E1 : FFC747E3;
-02E2 : FFA58393;
-02E3 : FFC3F513;
-02E4 : 00C50F33;
-02E5 : 0023DE93;
-02E6 : 006F0813;
-02E7 : 0802850B;
-02E8 : 8E3357F1;
-02E9 : 5F8302FE;
-02EA : 8642A200;
-02EB : 04000293;
-02EC : 01FF1223;
-02ED : 05B39E2E;
-02EE : 156301CF;
-02EF : 05930AB6;
-02F0 : 8633FFAE;
-02F1 : CAAD0105;
-02F2 : 04000293;
-02F3 : 0802870B;
-02F4 : A6D00023;
-02F5 : 0802870B;
-02F6 : A2604683;
-02F7 : 00D60023;
-02F8 : 0802870B;
-02F9 : A2002823;
-02FA : 0802870B;
-02FB : A2604803;
-02FC : 010600A3;
-02FD : 0802870B;
-02FE : A2604703;
-02FF : 00E60123;
-0300 : 0802870B;
-0301 : A2604303;
-0302 : 006601A3;
-0303 : 0802870B;
-0304 : A2604883;
-0305 : 01160223;
-0306 : 0802870B;
-0307 : A1404383;
-0308 : 0FF3FE93;
-0309 : 0802868B;
-030A : A3D00023;
-030B : 0802878B;
-030C : A2604503;
-030D : 00A602A3;
-030E : 04000F13;
-030F : 080F070B;
-0310 : A1205F83;
-0311 : 010F9793;
-0312 : 0107D593;
-0313 : 020F8463;
-0314 : C6061141;
-0315 : 8513609D;
-0316 : 3C21BD60;
-0317 : 557D40B2;
-0318 : 80820141;
-0319 : 0802850B;
-031A : A2604703;
-031B : 0FA30605;
-031C : B7A1FEE6;
-031D : 080F078B;
-031E : A2704783;
-031F : 80824501;
-0320 : C4221141;
-0321 : 4783641D;
-0322 : C6061BC4;
-0323 : 1BC40413;
-0324 : 0017F093;
-0325 : 02009763;
-0326 : 05134585;
-0327 : 350907B0;
-0328 : 02055163;
-0329 : 0023428D;
-032A : 07130054;
-032B : 23038080;
-032C : 651D0007;
-032D : C0250513;
-032E : FFE37393;
-032F : 00772023;
-0330 : 45033AAD;
-0331 : 40B20004;
-0332 : 01414422;
-0333 : 11418082;
-0334 : C422C606;
-0335 : C04AC226;
-0336 : 651D84AA;
-0337 : 0005A023;
-0338 : 0005A223;
-0339 : 0005A423;
-033A : 0005A623;
-033B : C1850513;
-033C : 85B2842E;
-033D : 45813ABD;
-033E : 335D8526;
-033F : 0FE57793;
-0340 : EF9D85AA;
-0341 : 468145C1;
-0342 : 7D000613;
-0343 : 3BE98522;
-0344 : E51D85AA;
-0345 : 01040493;
-0346 : 4008691D;
-0347 : 675040EF;
-0348 : 85AAC008;
-0349 : 05130411;
-034A : 32A1C249;
-034B : FE9417E3;
-034C : 40B24422;
-034D : 49024492;
-034E : 01414529;
-034F : 8E1FF06F;
-0350 : 609D4422;
-0351 : 49024492;
-0352 : C2A08513;
-0353 : 014140B2;
-0354 : 1101B20D;
-0355 : CE06CC22;
-0356 : C84ACA26;
-0357 : C452C64E;
-0358 : C6258432;
-0359 : 4783691D;
-035A : 0A131BC9;
-035B : F0931BC9;
-035C : 97630017;
-035D : 42850E00;
-035E : 84AE89AA;
-035F : 06561063;
-0360 : 0613661D;
-0361 : 651DAFF6;
-0362 : 86A6874E;
-0363 : 051385A2;
-0364 : F0EFC3D5;
-0365 : 07038E1F;
-0366 : 4385002A;
-0367 : 00771363;
-0368 : 85A604A6;
-0369 : 05200513;
-036A : 85AA39E5;
-036B : 02055C63;
-036C : 30300793;
-036D : 1023609D;
-036E : 851300FA;
-036F : F0EFC020;
-0370 : 440187DF;
-0371 : 02234611;
-0372 : 40F210C0;
-0373 : 44628522;
-0374 : 494244D2;
-0375 : 4A2249B2;
-0376 : 80826105;
-0377 : 0613631D;
-0378 : B755F5B3;
-0379 : 0FE57693;
-037A : 15B7EAB1;
-037B : 04930003;
-037C : 5A7DFFF4;
-037D : 89134401;
-037E : 1813D405;
-037F : 85330094;
-0380 : 93630109;
-0381 : 08930544;
-0382 : 878B0400;
-0383 : 47830808;
-0384 : 0993A270;
-0385 : 878B0400;
-0386 : 4E030809;
-0387 : 1E93A270;
-0388 : DF13018E;
-0389 : 7593418E;
-038A : 46E30FFE;
-038B : D9D9FE0F;
-038C : 85136F9D;
-038D : F0EFC88F;
-038E : B76983DF;
-038F : 0513641D;
-0390 : F0EFC664;
-0391 : BFB5831F;
-0392 : 04C00693;
-0393 : 4681C091;
-0394 : 0593864A;
-0395 : 39492000;
-0396 : F52D14FD;
-0397 : BF710405;
-0398 : B7A54401;
-0399 : CA261101;
-039A : CC22CE06;
-039B : C64EC84A;
-039C : 0A6384B2;
-039D : 699D1606;
-039E : 1BC9C783;
-039F : 1BC98993;
-03A0 : 0017F093;
-03A1 : 1A009463;
-03A2 : 842A86AA;
-03A3 : 862E651D;
-03A4 : 0513892E;
-03A5 : 85A6CBC5;
-03A6 : FDAFF0EF;
-03A7 : 00298703;
-03A8 : 13634285;
-03A9 : 09260057;
-03AA : 051385CA;
-03AB : 3ECD0590;
-03AC : 5E6385AA;
-03AD : 639D1005;
-03AE : CE638513;
-03AF : F7EFF0EF;
-03B0 : 30300593;
-03B1 : 00B99023;
-03B2 : 07934901;
-03B3 : 55710400;
-03B4 : 4885587D;
-03B5 : 06134315;
-03B6 : 79932004;
-03B7 : 70930034;
-03B8 : 868BFFC6;
-03B9 : 02230807;
-03BA : 868BA2A0;
-03BB : 00230807;
-03BC : 7E13A700;
-03BD : 86A20014;
-03BE : 000E0A63;
-03BF : 00140693;
-03C0 : 00044E83;
-03C1 : 08078E0B;
-03C2 : A3D00223;
-03C3 : C8018809;
-03C4 : 0006DF83;
-03C5 : 8E0B0689;
-03C6 : 14230807;
-03C7 : 8436A3F0;
-03C8 : 0C146B63;
-03C9 : 413000B3;
-03CA : 0020F993;
-03CB : 00098963;
-03CC : 00045283;
-03CD : 860B0409;
-03CE : 14230807;
-03CF : F393A250;
-03D0 : 89630010;
-03D1 : 46030003;
-03D2 : 04050004;
-03D3 : 0807868B;
-03D4 : A2C00223;
-03D5 : 0807870B;
-03D6 : A1605E03;
-03D7 : 010E1E93;
-03D8 : 010EDF13;
-03D9 : 0807868B;
-03DA : A3E01D23;
-03DB : 0807870B;
-03DC : A2704703;
-03DD : 0807870B;
-03DE : A2704F83;
-03DF : 011FF093;
-03E0 : 0FFFF693;
-03E1 : FF1098E3;
-03E2 : 01F6F593;
-03E3 : 06658D63;
-03E4 : 0513681D;
-03E5 : F0EFD2C8;
-03E6 : 4485EDCF;
-03E7 : 04000893;
-03E8 : 0808878B;
-03E9 : 022357F5;
-03EA : 4721A2F0;
-03EB : 04000513;
-03EC : 0805060B;
-03ED : A2704303;
-03EE : 06031263;
-03EF : 04000293;
-03F0 : 0802878B;
-03F1 : A2704383;
-03F2 : FE038CE3;
-03F3 : 0DE3A891;
-03F4 : 631DEE05;
-03F5 : D0930513;
-03F6 : E9AFF0EF;
-03F7 : 46114901;
-03F8 : 10C00223;
-03F9 : 40F284CA;
-03FA : 49424462;
-03FB : 852649B2;
-03FC : 610544D2;
-03FD : 2E038082;
-03FE : 858B0004;
-03FF : 26230807;
-0400 : 0411A3C0;
-0401 : 870BBF31;
-0402 : 49830807;
-0403 : 8CE3A270;
-0404 : 0905FE09;
-0405 : ED2491E3;
-0406 : B7494481;
-0407 : FB49177D;
-0408 : 4581DCDD;
-0409 : 04C00513;
-040A : BF553CA5;
-040B : BF654481;
-040C : 0E802703;
-040D : F363428D;
-040E : B19900E2;
-040F : 4503631D;
-0410 : 80821BC3;
-0411 : 4503671D;
-0412 : 26031BC7;
-0413 : 72930E80;
-0414 : 93630015;
-0415 : B12D0002;
-0416 : D6867159;
-0417 : CAD6D4A2;
-0418 : D0CAD2A6;
-0419 : CCD2CECE;
-041A : C6DEC8DA;
-041B : 00257A93;
-041C : 1BC70413;
-041D : 10000313;
-041E : 000A8A63;
-041F : 00032683;
-0420 : 03F00593;
-0421 : 40D603B3;
-0422 : 0875FE63;
-0423 : 00C32023;
-0424 : 00A34485;
-0425 : 0613A090;
-0426 : 45810300;
-0427 : 1BC70513;
-0428 : 6A6010EF;
-0429 : 0023450D;
-042A : 499100A4;
-042B : 04000493;
-042C : 07F00B13;
-042D : 4B855A7D;
-042E : 0804878B;
-042F : 00234921;
-0430 : 878BA160;
-0431 : 26230804;
-0432 : 197DA340;
-0433 : FE091BE3;
-0434 : 0804878B;
-0435 : A1400023;
-0436 : 0804878B;
-0437 : 02234581;
-0438 : 0513A340;
-0439 : 3A6D0400;
-043A : 05750963;
-043B : 95E319FD;
-043C : 9763FC09;
-043D : 681D000A;
-043E : D4780513;
-043F : D3EFF0EF;
-0440 : 00044783;
-0441 : 80800913;
-0442 : 00092F83;
-0443 : FFF7C713;
-0444 : 00177293;
-0445 : FFEFF613;
-0446 : 00C2EAB3;
-0447 : 01592023;
-0448 : 00044503;
-0449 : 542650B6;
-044A : 59065496;
-044B : 4A6649F6;
-044C : 4B464AD6;
-044D : 61654BB6;
-044E : 878B8082;
-044F : 08930804;
-0450 : 0023F820;
-0451 : 4585A110;
-0452 : 07B00513;
-0453 : 955FF0EF;
-0454 : 1AA00593;
-0455 : 04800513;
-0456 : 949FF0EF;
-0457 : 00457E13;
-0458 : 040E1163;
-0459 : 0FC57913;
-045A : F8091CE3;
-045B : 0804878B;
-045C : A2704783;
-045D : 0804878B;
-045E : A2A05783;
-045F : 0804848B;
-0460 : A3802583;
-0461 : 1AA00F13;
-0462 : 40000937;
-0463 : FE93C40C;
-0464 : 88631FF5;
-0465 : 6F1D01EE;
-0466 : D61F0513;
-0467 : CD6FF0EF;
-0468 : 4581B785;
-0469 : 07700513;
-046A : 8F9FF0EF;
-046B : 00457F93;
-046C : 986385AA;
-046D : 85CA000F;
-046E : 06900513;
-046F : 8E5FF0EF;
-0470 : F79385AA;
-0471 : EF850045;
-0472 : 0FE5F613;
-0473 : 671DC609;
-0474 : D8C70513;
-0475 : F5F1B7E1;
-0476 : 04000493;
-0477 : 0804878B;
-0478 : F8100313;
-0479 : 002385CA;
-047A : 0513A060;
-047B : F0EF07A0;
-047C : 85AA8B3F;
-047D : 6E9DC505;
-047E : DA7E8513;
-047F : DDE9B745;
-0480 : 05134581;
-0481 : F0EF0410;
-0482 : 729389BF;
-0483 : 85AA0FE5;
-0484 : 04028063;
-0485 : 8513609D;
-0486 : B749DC10;
-0487 : 0804878B;
-0488 : A2704783;
-0489 : 0804878B;
-048A : A2A05783;
-048B : 0804848B;
-048C : A3802683;
-048D : C4544A85;
-048E : 20000593;
-048F : 05000513;
-0490 : 861FF0EF;
-0491 : C90185AA;
-0492 : 05136E1D;
-0493 : B7B9DDAE;
-0494 : 4A81F945;
-0495 : 0B13B7D5;
-0496 : 6A1D0104;
-0497 : DF4A0613;
-0498 : 051385DA;
-0499 : 34A50490;
-049A : 0A0A8263;
-049B : 01442383;
-049C : 400005B7;
-049D : 0075F533;
-049E : 0BB7C951;
-049F : 85938100;
-04A0 : 0513FF1B;
-04A1 : F0EF0460;
-04A2 : 799381BF;
-04A3 : 9F63FFE5;
-04A4 : 18370609;
-04A5 : 46810003;
-04A6 : D4080613;
-04A7 : 04000593;
-04A8 : F0EF850A;
-04A9 : E13D847F;
-04AA : 01014883;
-04AB : FE134E85;
-04AC : 1D6300F8;
-04AD : 0F1305DE;
-04AE : 078B0400;
-04AF : 2783080F;
-04B0 : 0613A2C0;
-04B1 : 85DADF4A;
-04B2 : 04900513;
-04B3 : 29033409;
-04B4 : 7F930104;
-04B5 : 8B630069;
-04B6 : 7793020F;
-04B7 : 46090079;
-04B8 : 00C79963;
-04B9 : 0FF97713;
-04BA : 00375293;
-04BB : FF634AA9;
-04BC : 0093005A;
-04BD : 878B0400;
-04BE : 04930800;
-04BF : 631DF800;
-04C0 : A0900023;
-04C1 : DF830513;
-04C2 : B6AFF0EF;
-04C3 : 0593669D;
-04C4 : 86130204;
-04C5 : 0513E186;
-04C6 : 3A5504A0;
-04C7 : 01042B03;
-04C8 : 5A134585;
-04C9 : 039301EB;
-04CA : 0123001A;
-04CB : 8F630074;
-04CC : 408902B3;
-04CD : 06138D63;
-04CE : 00040123;
-04CF : 00244583;
-04D0 : F3634389;
-04D1 : 458100B3;
-04D2 : 95136B9D;
-04D3 : 89930025;
-04D4 : 8833E68B;
-04D5 : 405000A9;
-04D6 : 00082583;
-04D7 : 8513689D;
-04D8 : F0EFE1C8;
-04D9 : 0023B10F;
-04DA : BB590004;
-04DB : 2B834C08;
-04DC : 5F8301C4;
-04DD : 6E050164;
-04DE : 00F55613;
-04DF : 01EBD993;
-04E0 : 00251893;
-04E1 : FFCE0E93;
-04E2 : 00FFF793;
-04E3 : 00767713;
-04E4 : 00198813;
-04E5 : 01D8FF33;
-04E6 : 00E782B3;
-04E7 : 01E80933;
-04E8 : FF928A93;
-04E9 : 01591A33;
-04EA : 01442223;
-04EB : 4844BF41;
-04EC : 01A45683;
-04ED : 01049313;
-04EE : 00D30B33;
-04EF : 00AB1A13;
-04F0 : E10DB7E5;
-04F1 : C6061141;
-04F2 : 679D31A5;
-04F3 : 1BC78293;
-04F4 : 0012C503;
-04F5 : 0002C703;
-04F6 : 8D5940B2;
-04F7 : 00A280A3;
-04F8 : 80820141;
-04F9 : 8082450D;
-04FA : 415C4118;
-04FB : 10800393;
-04FC : 2283C35C;
-04FD : 56FD0005;
-04FE : 0057A023;
-04FF : 2023C148;
-0500 : A5830075;
-0501 : 0F930043;
-0502 : 08131100;
-0503 : C14C0085;
-0504 : 00A3A223;
-0505 : C2084150;
-0506 : 00852883;
-0507 : 00C52E03;
-0508 : 0A23C914;
-0509 : A2230005;
-050A : 2E8301C8;
-050B : 20230085;
-050C : A70301DE;
-050D : 2623000F;
-050E : A02301F5;
-050F : C518010F;
-0510 : 01072223;
-0511 : 11418082;
-0512 : C422C606;
-0513 : 679DC226;
-0514 : 8093490C;
-0515 : A4831BC7;
-0516 : 05960040;
-0517 : 02000293;
-0518 : 842A8C8D;
-0519 : 0092F463;
-051A : 02000493;
-051B : 05138626;
-051C : F0EF0184;
-051D : 8A639F3F;
-051E : 852200A4;
-051F : 450537B5;
-0520 : 442240B2;
-0521 : 01414492;
-0522 : 43058082;
-0523 : 00640A23;
-0524 : B7FD4501;
-0525 : D2267179;
-0526 : 34F204B7;
-0527 : 85D48293;
-0528 : 02550733;
-0529 : CC52D422;
-052A : 41012A37;
-052B : 679DCA56;
-052C : 6F8A0A93;
-052D : CE4ED606;
-052E : 3333C85A;
-052F : D04A0255;
-0530 : C462C65E;
-0531 : 1BC78093;
-0532 : 0040AE03;
-0533 : 8B2E89AA;
-0534 : 6F8A0A13;
-0535 : 00E303B3;
-0536 : 3FF3F413;
-0537 : 00341493;
-0538 : A4039AA6;
-0539 : 1163004A;
-053A : 9B930754;
-053B : FF630059;
-053C : 851303CB;
-053D : 0C13020B;
-053E : 74630200;
-053F : 0C1300AE;
-0540 : 2903FE0E;
-0541 : 468D1100;
-0542 : 00C94603;
-0543 : FF890413;
-0544 : 04D60263;
-0545 : 3DC98522;
-0546 : 040B0563;
-0547 : 85DE8662;
-0548 : 01090513;
-0549 : 82FFF0EF;
-054A : 03850A63;
-054B : 50B24401;
-054C : 54228522;
-054D : 59025492;
-054E : 4A6249F2;
-054F : 4B424AD2;
-0550 : 4C224BB2;
-0551 : 80826145;
-0552 : 01042E83;
-0553 : 03D98B63;
-0554 : BF514040;
-0555 : 3DC58522;
-0556 : BF6DF161;
-0557 : 06234805;
-0558 : 24230109;
-0559 : 2C230139;
-055A : 08B3FF59;
-055B : A983009A;
-055C : 2E230048;
-055D : A223FF39;
-055E : 2B030088;
-055F : 2023FFC9;
-0560 : 2F83008B;
-0561 : 445C0084;
-0562 : 11000713;
-0563 : 00FFA223;
-0564 : 00842083;
-0565 : 00840F13;
-0566 : 0017A023;
-0567 : 00472303;
-0568 : 2223C418;
-0569 : 262301E7;
-056A : 20230064;
-056B : B74101E3;
-056C : 1141E155;
-056D : 3479C606;
-056E : 00157793;
-056F : 0093E7D1;
-0570 : 02931080;
-0571 : C3371100;
-0572 : 66114000;
-0573 : 410125B7;
-0574 : 0010A223;
-0575 : 0010A023;
-0576 : 0052A223;
-0577 : 0052A023;
-0578 : 6F830793;
-0579 : 10800393;
-057A : 11000E93;
-057B : 0F135E7D;
-057C : 8F930186;
-057D : A8036F85;
-057E : A0230043;
-057F : A2230077;
-0580 : A22300F3;
-0581 : 20230107;
-0582 : A68300F8;
-0583 : 8893004E;
-0584 : A4230087;
-0585 : C7D401D7;
-0586 : 011EA223;
-0587 : 0116A023;
-0588 : 01C7A823;
-0589 : 00078A23;
-058A : 96E397FA;
-058B : 20B7FDF7;
-058C : 82934101;
-058D : 87336F80;
-058E : A22300C2;
-058F : A0230052;
-0590 : 02A10052;
-0591 : FEE29BE3;
-0592 : 631D40B2;
-0593 : 1AA30EA3;
-0594 : 80820141;
-0595 : 8082450D;
-0596 : CC221101;
-0597 : CA26CE06;
-0598 : C64EC84A;
-0599 : E1214405;
-059A : 842A4789;
-059B : 04F58563;
-059C : 02B7E763;
-059D : 0713E5B1;
-059E : 43441100;
-059F : 11000913;
-05A0 : 8263498D;
-05A1 : C5030324;
-05A2 : 186300C4;
-05A3 : 85130135;
-05A4 : 3B55FF84;
-05A5 : 74138C49;
-05A6 : 40C40FF4;
-05A7 : 428DB7DD;
-05A8 : 02558863;
-05A9 : 40F24411;
-05AA : 44628522;
-05AB : 494244D2;
-05AC : 610549B2;
-05AD : 00938082;
-05AE : 10232000;
-05AF : B7E50016;
-05B0 : 8693659D;
-05B1 : A3031BC5;
-05B2 : 20230046;
-05B3 : BFE10066;
-05B4 : 02000313;
-05B5 : E299BFDD;
-05B6 : 80824501;
-05B7 : C84A1101;
-05B8 : 09136791;
-05B9 : CE06FFF6;
-05BA : 00B3C452;
-05BB : 5A1300D9;
-05BC : 82930056;
-05BD : 0626E007;
-05BE : CA26CC22;
-05BF : C05AC64E;
-05C0 : 89AEC256;
-05C1 : 0050D913;
-05C2 : 00567433;
-05C3 : 00969493;
-05C4 : 7D636B11;
-05C5 : 45010149;
-05C6 : 446240F2;
-05C7 : 494244D2;
-05C8 : 4A2249B2;
-05C9 : 4B024A92;
-05CA : 80826105;
-05CB : 85524585;
-05CC : C1153395;
-05CD : 408B0AB3;
-05CE : 0154F363;
-05CF : 05618AA6;
-05D0 : 008505B3;
-05D1 : 854E8656;
-05D2 : 0D0010EF;
-05D3 : 415484B3;
-05D4 : 44010A05;
-05D5 : 4505BF7D;
-05D6 : E299B7C1;
-05D7 : 80824501;
-05D8 : 7179631D;
-05D9 : 1BC30393;
-05DA : CA56D04A;
-05DB : FFF60913;
-05DC : AA836791;
-05DD : D6060043;
-05DE : 00B3CC52;
-05DF : 5A1300D9;
-05E0 : 82930056;
-05E1 : 0626E007;
-05E2 : D226D422;
-05E3 : C85ACE4E;
-05E4 : C462C65E;
-05E5 : C06AC266;
-05E6 : D91389AE;
-05E7 : 74330050;
-05E8 : 94930056;
-05E9 : 5B010096;
-05EA : 02000B93;
-05EB : 71634C0D;
-05EC : 45010349;
-05ED : 542250B2;
-05EE : 59025492;
-05EF : 4A6249F2;
-05F0 : 4B424AD2;
-05F1 : 4C224BB2;
-05F2 : 4D024C92;
-05F3 : 80826145;
-05F4 : 036A0533;
-05F5 : 015505B3;
-05F6 : 00BBF463;
-05F7 : 02000593;
-05F8 : 00959693;
-05F9 : 40868CB3;
-05FA : 0194F363;
-05FB : B5B38CA6;
-05FC : 855200DC;
-05FD : 8D2A3145;
-05FE : 0713C105;
-05FF : 05330185;
-0600 : 86660087;
-0601 : 10EF85CE;
-0602 : 84B30120;
-0603 : 0A234194;
-0604 : 0A05018D;
-0605 : BF614401;
-0606 : BF694505;
-0607 : 88002503;
-0608 : 679D8082;
-0609 : 02000537;
-060A : 06374681;
-060B : 8793C000;
-060C : 0F93E747;
-060D : 6841FFF5;
-060E : 08934398;
-060F : F3630046;
-0610 : 202302E6;
-0611 : 86930006;
-0612 : 93632006;
-0613 : 80820106;
-0614 : 0047D503;
-0615 : 07334390;
-0616 : E36300C5;
-0617 : 07B100E6;
-0618 : BFD98646;
-0619 : 0087A283;
-061A : 0067CE03;
-061B : 40E685B3;
-061C : 00B28333;
-061D : 01F373B3;
-061E : 018E1E93;
-061F : 01D3EF33;
-0620 : 01E62023;
-0621 : 1101B7C9;
-0622 : CA26CE06;
-0623 : C84ACC22;
-0624 : C452C64E;
-0625 : 5903C256;
-0626 : 0793B880;
-0627 : AA831180;
-0628 : 10930007;
-0629 : D9130109;
-062A : 02930100;
-062B : 44811180;
-062C : 000A8663;
-062D : 010AD483;
-062E : 009974B3;
-062F : 0FF97313;
-0630 : 08030A63;
-0631 : B9104383;
-0632 : B9004583;
-0633 : F6134695;
-0634 : F5930FF3;
-0635 : EC630FF5;
-0636 : 40850676;
-0637 : 04C0E363;
-0638 : 10061463;
-0639 : 060A8863;
-063A : 004AA703;
-063B : A783CB1D;
-063C : 8293000A;
-063D : A0230017;
-063E : 8023005A;
-063F : C30300B7;
-0640 : C38301DA;
-0641 : 76B3014A;
-0642 : 8EA30073;
-0643 : 0AA300DA;
-0644 : A503B8D0;
-0645 : 0813004A;
-0646 : A223FFF5;
-0647 : 1B63010A;
-0648 : 48850208;
-0649 : 00CA8833;
-064A : 00C899B3;
-064B : 00B80B23;
-064C : 0099FA33;
-064D : 020A0063;
-064E : 00860E13;
-064F : 002E1E93;
-0650 : 01DA8F33;
-0651 : 000F2F83;
-0652 : 9F828556;
-0653 : 451DA021;
-0654 : 10A60063;
-0655 : 10097593;
-0656 : A603C1A9;
-0657 : 036300CA;
-0658 : 04131406;
-0659 : A623FFF6;
-065A : 0D63008A;
-065B : C3031204;
-065C : C38301DA;
-065D : 76B3015A;
-065E : 8EA30073;
-065F : 0AA300DA;
-0660 : A503B8D0;
-0661 : 0813008A;
-0662 : A4230015;
-0663 : 4883010A;
-0664 : 8E230005;
-0665 : 0A23011A;
-0666 : 7993B910;
-0667 : 87632009;
-0668 : CE031209;
-0669 : 4A0301DA;
-066A : F493B950;
-066B : 0AA32004;
-066C : 7593B9C0;
-066D : C4910FFA;
-066E : 03CAAE83;
-066F : 85564605;
-0670 : AF039E82;
-0671 : D60300CA;
-0672 : AA83010A;
-0673 : 3FB3004A;
-0674 : 959301E0;
-0675 : E433008F;
-0676 : 30B300C5;
-0677 : E7330150;
-0678 : 62930080;
-0679 : A0FD0827;
-067A : 03F5F893;
-067B : 00289A13;
-067C : 14400E93;
-067D : 014E8F33;
-067E : 000F2A83;
-067F : 0D100623;
-0680 : 0152A023;
-0681 : 08200693;
-0682 : 020A8463;
-0683 : 00CAAF83;
-0684 : 010AD703;
-0685 : 004AA783;
-0686 : 01F03433;
-0687 : 00841093;
-0688 : 00E0E2B3;
-0689 : 00F03333;
-068A : 005363B3;
-068B : 0823E693;
-068C : B8D01523;
-068D : 84634501;
-068E : A503000A;
-068F : 2A2301CA;
-0690 : 89E3B8A0;
-0691 : D483F00A;
-0692 : 74B3010A;
-0693 : BDD10099;
-0694 : 0CC00613;
-0695 : 04000813;
-0696 : 00064A83;
-0697 : 0002A023;
-0698 : 01060023;
-0699 : 08200893;
-069A : B9101523;
-069B : B8002A23;
-069C : 09934401;
-069D : 0A131440;
-069E : 8E331000;
-069F : 25030089;
-06A0 : CD01000E;
-06A1 : 01055E83;
-06A2 : 080EFF13;
-06A3 : 000F0763;
-06A4 : 04052F83;
-06A5 : 85D6461D;
-06A6 : 04119F82;
-06A7 : FD441FE3;
-06A8 : BD4D4A81;
-06A9 : 01FAC703;
-06AA : B9404083;
-06AB : 1004F293;
-06AC : 00EA8E23;
-06AD : B8E00A23;
-06AE : 0FF0F593;
-06AF : EC028FE3;
-06B0 : 038AA783;
-06B1 : 85564601;
-06B2 : BDC19782;
-06B3 : 08200293;
-06B4 : EE0A99E3;
-06B5 : 01029793;
-06B6 : 0127E933;
-06B7 : B9202423;
-06B8 : 446240F2;
-06B9 : 494244D2;
-06BA : 4A2249B2;
-06BB : 61054A92;
-06BC : 07938082;
-06BD : 07132000;
-06BE : 828BDFF0;
-06BF : 238306E7;
-06C0 : C10C1180;
-06C1 : 0EA3C150;
-06C2 : 166300D5;
-06C3 : 454C0275;
-06C4 : 01055E03;
-06C5 : 00C03633;
-06C6 : 00B036B3;
-06C7 : 00869813;
-06C8 : 010668B3;
-06C9 : 01C8EEB3;
-06CA : 082EEF13;
-06CB : B9E01523;
-06CC : 2A234D48;
-06CD : FF93B8A0;
-06CE : 07932002;
-06CF : 878BDFF0;
-06D0 : 808206FF;
-06D1 : 20000793;
-06D2 : DFF00713;
-06D3 : 06E7828B;
-06D4 : 00158313;
-06D5 : 2423C550;
-06D6 : C3830065;
-06D7 : 0EA30005;
-06D8 : 268300D5;
-06D9 : 0E231180;
-06DA : 17630075;
-06DB : 280302D5;
-06DC : 5F030045;
-06DD : 36330105;
-06DE : 38B300C0;
-06DF : 1E130100;
-06E0 : EEB30086;
-06E1 : EFB301C8;
-06E2 : E79301EE;
-06E3 : 1523082F;
-06E4 : 4D48B8F0;
-06E5 : B8A02A23;
-06E6 : 2002F293;
-06E7 : DFF00713;
-06E8 : 06E2878B;
-06E9 : 07938082;
-06EA : 07132000;
-06EB : 828BDFF0;
-06EC : 230306E7;
-06ED : 0FA300C5;
-06EE : 1A6300B5;
-06EF : 26030003;
-06F0 : 0E231180;
-06F1 : 146300B5;
-06F2 : 0A2300A6;
-06F3 : F513B8B0;
-06F4 : 05932002;
-06F5 : 078BDFF0;
-06F6 : 808206B5;
-06F7 : 20000793;
-06F8 : DFF00713;
-06F9 : 06E7828B;
-06FA : 11802383;
-06FB : 00B50EA3;
-06FC : 00A39463;
-06FD : B8B00AA3;
-06FE : 2002F513;
-06FF : DFF00593;
-0700 : 06B5078B;
-0701 : 07938082;
-0702 : EB6303F0;
-0703 : 029306B7;
-0704 : 07132000;
-0705 : 868BDFF0;
-0706 : 230306E2;
-0707 : 166300C5;
-0708 : 43830003;
-0709 : 0E2301F5;
-070A : 96130075;
-070B : 08930025;
-070C : 4F031440;
-070D : 8E330CC0;
-070E : 202300C8;
-070F : 1B6300AE;
-0710 : 2F8302BF;
-0711 : 570300C5;
-0712 : 23830105;
-0713 : 37B30045;
-0714 : 929301F0;
-0715 : E3330087;
-0716 : 363300E2;
-0717 : 68330070;
-0718 : 2C230066;
-0719 : 689310A0;
-071A : 15230828;
-071B : 4D48B910;
-071C : B8A02A23;
-071D : 2006F693;
-071E : DFF00E13;
-071F : 07C6878B;
-0720 : 07938082;
-0721 : 07132000;
-0722 : 878BDFF0;
-0723 : 228306E7;
-0724 : 0313B840;
-0725 : F6930400;
-0726 : E2991002;
-0727 : 03F2F313;
-0728 : 00231513;
-0729 : 14400613;
-072A : 00A60833;
-072B : 00082883;
-072C : 0C600623;
-072D : 11102C23;
-072E : 08200393;
-072F : 02088463;
-0730 : 00C8AE83;
-0731 : 0108D783;
-0732 : 0048A283;
-0733 : 01D03F33;
-0734 : 008F1F93;
-0735 : 00FFE733;
-0736 : 005036B3;
-0737 : 00E6E333;
-0738 : 08236393;
-0739 : B8701523;
-073A : 84634501;
-073B : A5030008;
-073C : 2A2301C8;
-073D : 0593B8A0;
-073E : 078BDFF0;
-073F : 808206B0;
-0740 : 47834178;
-0741 : 450304B5;
-0742 : 468304A5;
-0743 : C6910077;
-0744 : 00851613;
-0745 : 00F60533;
-0746 : 45838082;
-0747 : D3130007;
-0748 : 12930057;
-0749 : 83B30035;
-074A : 96330062;
-074B : 8BFD00B3;
-074C : 1141B7D5;
-074D : C422C606;
-074E : 43034160;
-074F : 1C630074;
-0750 : 47030003;
-0751 : 468304B5;
-0752 : 70930004;
-0753 : D2B301F7;
-0754 : 976340D0;
-0755 : 376D0002;
-0756 : 00245783;
-0757 : 00F53333;
-0758 : 442240B2;
-0759 : 0141851A;
-075A : 07938082;
-075B : 18230940;
-075C : 0EA300F5;
-075D : 0AA30005;
-075E : 4283B800;
-075F : 06A304F5;
-0760 : E3130405;
-0761 : 07A30012;
-0762 : 80820465;
-0763 : 4783BFF9;
-0764 : E29304F5;
-0765 : 07A30027;
-0766 : 80820455;
-0767 : 04F54783;
-0768 : 0047E293;
-0769 : 045507A3;
-076A : 53038082;
-076B : F7B70105;
-076C : 4603EEEE;
-076D : 829304D5;
-076E : 6393EEE7;
-076F : 24230013;
-0770 : 18230455;
-0771 : 05930075;
-0772 : 06930485;
-0773 : E2190C90;
-0774 : 0C100693;
-0775 : BB314611;
-0776 : 45811141;
-0777 : C422C606;
-0778 : 3BED842A;
-0779 : 06A38522;
-077A : 45810404;
-077B : 85223B6D;
-077C : 04040423;
-077D : 40B24422;
-077E : BF450141;
-077F : C7CE7115;
-0780 : CBA6CF86;
-0781 : CDA2C1DA;
-0782 : C5D2C9CA;
-0783 : DF5EC3D6;
-0784 : DB66DD62;
-0785 : D76ED96A;
-0786 : 0D000093;
-0787 : 0E802B03;
-0788 : 0000A283;
-0789 : B8002903;
-078A : 00597493;
-078B : 27628163;
-078C : 4383631D;
-078D : 0B931BC3;
-078E : F4130D00;
-078F : CC510013;
-0790 : A04FF0EF;
-0791 : 00157893;
-0792 : 00088563;
-0793 : 4A014A85;
-0794 : 0A93A06D;
-0795 : AA038080;
-0796 : 6C9D000A;
-0797 : 002A6C13;
-0798 : 018AA023;
-0799 : 85934605;
-079A : 0513AFFC;
-079B : 20EF2480;
-079C : CD095430;
-079D : 8513679D;
-079E : E0EFEC87;
-079F : A983FF8F;
-07A0 : F293000A;
-07A1 : A023FFD9;
-07A2 : B7C9005A;
-07A3 : 100C0850;
-07A4 : AFFC8513;
-07A5 : 02010023;
-07A6 : 30EFCA02;
-07A7 : 46523930;
-07A8 : 100C6D9D;
-07A9 : EE1D8513;
-07AA : FCAFE0EF;
-07AB : 082C0870;
-07AC : AFFC8513;
-07AD : 30EFCC02;
-07AE : 4E7220F0;
-07AF : 6F9D45E2;
-07B0 : 00AE5E83;
-07B1 : 01CE2F03;
-07B2 : F0FF8513;
-07B3 : 009E9693;
-07B4 : FFEF0613;
-07B5 : F9EFE0EF;
-07B6 : F0EFBF95;
-07B7 : 8905956F;
-07B8 : 0613F535;
-07B9 : 421811C0;
-07BA : 083346FD;
-07BB : FE6340EB;
-07BC : 20231906;
-07BD : 4A810166;
-07BE : A0234A05;
-07BF : 0093016B;
-07C0 : AB830D40;
-07C1 : 73130000;
-07C2 : C21A0019;
-07C3 : 8163C002;
-07C4 : A023069B;
-07C5 : 03930090;
-07C6 : A4038080;
-07C7 : 75930003;
-07C8 : 96130019;
-07C9 : 75130025;
-07CA : 6733FFB4;
-07CB : 681D00A6;
-07CC : 00E3A023;
-07CD : F4180513;
-07CE : 00497913;
-07CF : EFEFE0EF;
-07D0 : 14090A63;
-07D1 : 8513689D;
-07D2 : E0EFEA48;
-07D3 : 4A92EF0F;
-07D4 : 140A9663;
-07D5 : 05136A1D;
-07D6 : C4B3EBCA;
-07D7 : DC93009B;
-07D8 : 4D050024;
-07D9 : ED6FE0EF;
-07DA : 001CFA93;
-07DB : 4A05C06A;
-07DC : 6DB76E9D;
-07DD : 6E1D4000;
-07DE : 1ECE8F13;
-07DF : 8B8D8D13;
-07E0 : 4B014B81;
-07E1 : 8B8D8493;
-07E2 : 1BCE0C13;
-07E3 : 4F83C47A;
-07E4 : 896304ED;
-07E5 : 8963100A;
-07E6 : 846A100F;
-07E7 : 4DA14901;
-07E8 : 2AE44683;
-07E9 : 0016FE13;
-07EA : 040E0263;
-07EB : 001C4E83;
-07EC : 001EFF13;
-07ED : 000F1663;
-07EE : 05040513;
-07EF : 56C030EF;
-07F0 : 2AE44F83;
-07F1 : FFEFF793;
-07F2 : 2AF40723;
-07F3 : 04CD4283;
-07F4 : FFF28093;
-07F5 : 041D0623;
-07F6 : 2AF44303;
-07F7 : 00437393;
-07F8 : 00039663;
-07F9 : FFE37613;
-07FA : 2AC40723;
-07FB : 04130905;
-07FC : 17E32E84;
-07FD : 0723FBB9;
-07FE : 4502040D;
-07FF : 856AC119;
-0800 : 45923BE1;
-0801 : CD854981;
-0802 : DFF00C93;
-0803 : 20000813;
-0804 : 0798070B;
-0805 : 08936709;
-0806 : 0E33B907;
-0807 : 8DB3031B;
-0808 : C98301C4;
-0809 : 87A304FD;
-080A : F993040D;
-080B : 068B0FF9;
-080C : F6930790;
-080D : 81630069;
-080E : 856A2006;
-080F : 45033B71;
-0810 : 1A6304ED;
-0811 : 6E094205;
-0812 : B90E0693;
-0813 : 4E910B05;
-0814 : 9BB69D36;
-0815 : F3DB1DE3;
-0816 : 000A0A63;
-0817 : 80800493;
-0818 : 0004AA03;
-0819 : FFDA7A93;
-081A : 0154A023;
-081B : 446E40FE;
-081C : 494E44DE;
-081D : 4A2E49BE;
-081E : 4B0E4A9E;
-081F : 5C6A5BFA;
-0820 : 5D4A5CDA;
-0821 : 612D5DBA;
-0822 : 4A818082;
-0823 : 4A81B3C9;
-0824 : B5B54A01;
-0825 : 8513669D;
-0826 : BD45EAB6;
-0827 : 05136C1D;
-0828 : BD65EB1C;
-0829 : F40F9BE3;
-082A : 000C4783;
-082B : 0017F993;
-082C : F40995E3;
-082D : B8002283;
-082E : 0413631D;
-082F : F0931F73;
-0830 : 95630042;
-0831 : 43A20000;
-0832 : 00A38413;
-0833 : 03000513;
-0834 : 02F00593;
-0835 : 00A40023;
-0836 : 00B400A3;
-0837 : 00040123;
-0838 : 04138CEA;
-0839 : 09132A8D;
-083A : 26030300;
-083B : 681D044D;
-083C : 0693874A;
-083D : 45910086;
-083E : F5080613;
-083F : 30EF8522;
-0840 : 671D69D0;
-0841 : DA840D93;
-0842 : FB870993;
-0843 : 0009A683;
-0844 : 10068563;
-0845 : 8722689D;
-0846 : F5888613;
-0847 : 04000593;
-0848 : 30EF1008;
-0849 : C6836790;
-084A : FE132AEC;
-084B : 07630016;
-084C : 4E83020E;
-084D : FF13001C;
-084E : 1563001E;
-084F : 856E000F;
-0850 : 3E8030EF;
-0851 : 2AECCF83;
-0852 : FFEFF793;
-0853 : 2AFC8723;
-0854 : 04CD4283;
-0855 : FFF28093;
-0856 : 041D0623;
-0857 : 2AFCC303;
-0858 : 00437393;
-0859 : 0C039863;
-085A : 0FE37893;
-085B : 2B1C8723;
-085C : 0028F513;
-085D : E1114605;
-085E : 100C460D;
-085F : C632856E;
-0860 : 291020EF;
-0861 : C5834629;
-0862 : 19632AEC;
-0863 : 483200C5;
-0864 : 00287713;
-0865 : E893C701;
-0866 : BFC90025;
-0867 : C1114885;
-0868 : E6B34891;
-0869 : 87230115;
-086A : FE132ADC;
-086B : 03630016;
-086C : 699D080E;
-086D : 85A21010;
-086E : F5D98513;
-086F : CB6FE0EF;
-0870 : 02200E93;
-0871 : 00840F13;
-0872 : 2BDCA823;
-0873 : 0BECA023;
-0874 : 567D55FD;
-0875 : 30EF856E;
-0876 : C5193760;
-0877 : 85A26D9D;
-0878 : F71D8513;
-0879 : C8EFE0EF;
-087A : 044D2303;
-087B : 064CAF83;
-087C : 060CA283;
-087D : 00235383;
-087E : 018F9793;
-087F : 0082D093;
-0880 : 0017E633;
-0881 : 00C3F363;
-0882 : 9623861E;
-0883 : 45032ACC;
-0884 : 059304CD;
-0885 : 06230015;
-0886 : 090504BD;
-0887 : 03800813;
-0888 : 2E840413;
-0889 : 2E8C8C93;
-088A : ED0911E3;
-088B : 07234705;
-088C : B3E104ED;
-088D : BDD90991;
-088E : 0019FE93;
-088F : E00E81E3;
-0890 : 049D4F03;
-0891 : 048D4603;
-0892 : 5F936285;
-0893 : 8093006F;
-0894 : 97937902;
-0895 : 8333008F;
-0896 : 83B3001B;
-0897 : 79130067;
-0898 : 7C930016;
-0899 : 8433007F;
-089A : 01630074;
-089B : 05130409;
-089C : 8DB32E80;
-089D : 85B302AC;
-089E : 883301CD;
-089F : 470300B4;
-08A0 : 78932AE8;
-08A1 : 9A630017;
-08A2 : 03930408;
-08A3 : 06A3F800;
-08A4 : 0593047D;
-08A5 : 856A0800;
-08A6 : 90FFF0EF;
-08A7 : 040D0423;
-08A8 : 048D4603;
-08A9 : FFE67513;
-08AA : 04AD0423;
-08AB : 048D4D83;
-08AC : 002DF593;
-08AD : 5383CDD1;
-08AE : F313010D;
-08AF : 0423FFDD;
-08B0 : E613046D;
-08B1 : 18231003;
-08B2 : 468500CD;
-08B3 : 10000613;
-08B4 : 856A85A2;
-08B5 : 871FF0EF;
-08B6 : 856AB39D;
-08B7 : A57FF0EF;
-08B8 : 0313E901;
-08B9 : 06A30210;
-08BA : 0593046D;
-08BB : B7650210;
-08BC : 80800E13;
-08BD : 2683D002;
-08BE : 4595000E;
-08BF : EE93856A;
-08C0 : 20230026;
-08C1 : F0EF01DE;
-08C2 : 8F138D7F;
-08C3 : 8FB3050B;
-08C4 : 856A01ED;
-08C5 : 01F48933;
-08C6 : 9E9FF0EF;
-08C7 : 00851593;
-08C8 : 854A4601;
-08C9 : 228030EF;
-08CA : 40A1C511;
-08CB : 041D06A3;
-08CC : B79545A1;
-08CD : 06131014;
-08CE : 85A21000;
-08CF : 20EF854A;
-08D0 : F5653F70;
-08D1 : 02935782;
-08D2 : 90E31000;
-08D3 : BF89FE57;
-08D4 : 004DF813;
-08D5 : 02080563;
-08D6 : 010D5283;
-08D7 : FFBDF793;
-08D8 : 04FD0423;
-08D9 : 0012E093;
-08DA : 001D1823;
-08DB : 04100693;
-08DC : 10000613;
-08DD : 856A85A2;
-08DE : F7AFF0EF;
-08DF : F713B1C9;
-08E0 : C729008D;
-08E1 : 08936E09;
-08E2 : 06932E80;
-08E3 : 8CB3B90E;
-08E4 : 0EB3031C;
-08E5 : 8F3302DB;
-08E6 : 8DB301DC;
-08E7 : CF8301E4;
-08E8 : F9132AED;
-08E9 : 1D63001F;
-08EA : 0E930209;
-08EB : 06A3F800;
-08EC : 059305DD;
-08ED : 856A0800;
-08EE : FEEFF0EF;
-08EF : 040D0423;
-08F0 : 048D4F03;
-08F1 : FF7F7D93;
-08F2 : 05BD0423;
-08F3 : 048D4F83;
-08F4 : F913856A;
-08F5 : 042300FF;
-08F6 : F0EF052D;
-08F7 : B1859D1F;
-08F8 : 002FF793;
-08F9 : 0693CB81;
-08FA : 06A30400;
-08FB : 059304DD;
-08FC : B7D10400;
-08FD : C666856A;
-08FE : 93BFF0EF;
-08FF : E90142B2;
-0900 : 02100E13;
-0901 : 05CD06A3;
-0902 : 02100593;
-0903 : D002B76D;
-0904 : 80800093;
-0905 : 0000A303;
-0906 : 050B8613;
-0907 : 00560533;
-0908 : 00236393;
-0909 : 00A48CB3;
-090A : 0070A023;
-090B : F0EF856A;
-090C : 15938D3F;
-090D : 46010085;
-090E : 30EF8566;
-090F : C9011120;
-0910 : 02000893;
-0911 : 051D06A3;
-0912 : 02000593;
-0913 : C583B7AD;
-0914 : 10142AED;
-0915 : 10000613;
-0916 : 0085E813;
-0917 : 2B0D8723;
-0918 : 856685A2;
-0919 : 4BF020EF;
-091A : 5402FD61;
-091B : 10000713;
-091C : FCE418E3;
-091D : 1663B7B1;
-091E : F993000A;
-091F : 84E30049;
-0920 : 846ABC09;
-0921 : 4CA14D81;
-0922 : 2AE44583;
-0923 : 0085F813;
-0924 : 00080C63;
-0925 : 05040513;
-0926 : 6D9020EF;
-0927 : 2AE44703;
-0928 : FF777893;
-0929 : 2B140723;
-092A : 04130D85;
-092B : 9DE32E84;
-092C : BE51FD9D;
-092D : 67B77139;
-092E : DA264000;
-092F : D452D64E;
-0930 : CE5ED05A;
-0931 : 649DCC62;
-0932 : 6C096989;
-0933 : 6A096B89;
-0934 : DC226B09;
-0935 : D256D84A;
-0936 : C86ACA66;
-0937 : DE06C66E;
-0938 : FCC48493;
-0939 : 8B878413;
-093A : 8A934901;
-093B : 89938B87;
-093C : 0D93B909;
-093D : 0C930940;
-093E : 4D0D07F0;
-093F : D6AC0C13;
-0940 : D8EB8B93;
-0941 : D9CA0A13;
-0942 : D8CB0B13;
-0943 : 03390533;
-0944 : 04400613;
-0945 : C0644581;
-0946 : 04B10905;
-0947 : 24259556;
-0948 : 18238522;
-0949 : 0A2301B4;
-094A : 0AA30194;
-094B : 0F230194;
-094C : 202301A4;
-094D : 24230384;
-094E : 28230374;
-094F : 2C230344;
-0950 : 20230364;
-0951 : F0EF0544;
-0952 : 2283893F;
-0953 : 85220444;
-0954 : C583944E;
-0955 : F0EF0012;
-0956 : 4311EB0F;
-0957 : FA6918E3;
-0958 : 546250F2;
-0959 : 594254D2;
-095A : 5A2259B2;
-095B : 5B025A92;
-095C : 4C624BF2;
-095D : 4D424CD2;
-095E : 61214DB2;
-095F : 47838082;
-0960 : E29301D5;
-0961 : 0EA30047;
-0962 : 0AA30055;
-0963 : 8082B850;
-0964 : 01D54783;
-0965 : 0027E293;
-0966 : 00550EA3;
-0967 : B8500AA3;
-0968 : 71798082;
-0969 : D606D422;
-096A : 0045F793;
-096B : CFCD842E;
-096C : 01D54083;
-096D : 12800313;
-096E : 0FB0F293;
-096F : 00550EA3;
-0970 : B8500AA3;
-0971 : 00734383;
-0972 : AE1485B7;
-0973 : AE158893;
-0974 : 14700613;
-0975 : 02760833;
-0976 : 00634703;
-0977 : 00534F03;
-0978 : 00334583;
-0979 : 00175093;
-097A : 03FF7F93;
-097B : 005F9793;
-097C : 01F0F293;
-097D : 0057E6B3;
-097E : 00234783;
-097F : 0313BE33;
-0980 : 00434383;
-0981 : 00134303;
-0982 : 00F7F093;
-0983 : 01F3F613;
-0984 : 01509293;
-0985 : CC02073E;
-0986 : 4785CE02;
-0987 : 01C80EB3;
-0988 : 00B61813;
-0989 : 01F5FE13;
-098A : 0106E8B3;
-098B : 010E1F13;
-098C : EFB30EC6;
-098D : 069301E8;
-098E : D8930143;
-098F : E3B3011E;
-0990 : 65B3005F;
-0991 : 96130117;
-0992 : E8330196;
-0993 : 9E1300C3;
-0994 : CA420105;
-0995 : 00B11C23;
-0996 : 010E5F13;
-0997 : 89E01223;
-0998 : 89002023;
-0999 : 0EF00823;
-099A : 04047093;
-099B : 00008D63;
-099C : 01D54283;
-099D : E6934621;
-099E : 05930402;
-099F : C62A1280;
-09A0 : C72FF0EF;
-09A1 : 04624532;
-09A2 : 41845313;
-09A3 : 0A035263;
-09A4 : 01D54683;
-09A5 : 12000713;
-09A6 : 0FD6FE93;
-09A7 : 01D50EA3;
-09A8 : B9D00AA3;
-09A9 : 88002883;
-09AA : 88402603;
-09AB : DF934851;
-09AC : 00230158;
-09AD : CC320107;
-09AE : 00FFF793;
-09AF : 0108D093;
-09B0 : 00F65813;
-09B1 : 01230646;
-09B2 : F29300F7;
-09B3 : 07B701F0;
-09B4 : 509300C8;
-09B5 : 01A30116;
-09B6 : B2B30057;
-09B7 : DE130217;
-09B8 : CA460198;
-09B9 : FECE0F13;
-09BA : 00B8D393;
-09BB : 0058D313;
-09BC : 01F8F893;
-09BD : 01E700A3;
-09BE : 00189E13;
-09BF : 00187F13;
-09C0 : 01F3F413;
-09C1 : 03F37693;
-09C2 : 01EE6FB3;
-09C3 : 00D702A3;
-09C4 : 00870223;
-09C5 : 01F70323;
-09C6 : 005703A3;
-09C7 : 50B25422;
-09C8 : 080EE693;
-09C9 : 05934621;
-09CA : 61451200;
-09CB : C18FF06F;
-09CC : 542250B2;
-09CD : 80826145;
-09CE : 0593651D;
-09CF : 05130360;
-09D0 : F06F1FC5;
-09D1 : C25DCC4F;
-09D2 : 0FF5F713;
-09D3 : 01071793;
-09D4 : 00E7E2B3;
-09D5 : 00829313;
-09D6 : 00157693;
-09D7 : 005363B3;
-09D8 : EAC987AA;
-09D9 : 71634805;
-09DA : F89308C8;
-09DB : 9F630027;
-09DC : 4EFD0808;
-09DD : 08CEF663;
-09DE : FE060F13;
-09DF : FE0F7F93;
-09E0 : 02078F13;
-09E1 : 01EF8733;
-09E2 : 0F13A019;
-09E3 : A023020F;
-09E4 : A2230077;
-09E5 : A4230077;
-09E6 : A6230077;
-09E7 : A8230077;
-09E8 : AA230077;
-09E9 : AC230077;
-09EA : AE230077;
-09EB : 86FA0077;
-09EC : 1CE387FA;
-09ED : 8A7DFDE7;
-09EE : F363428D;
-09EF : 031302C2;
-09F0 : 7893FFC6;
-09F1 : 8E93FFC3;
-09F2 : 8E330047;
-09F3 : A01101D8;
-09F4 : A0230E91;
-09F5 : 87F60076;
-09F6 : 9BE386F6;
-09F7 : 8A0DFFCE;
-09F8 : 00267393;
-09F9 : 02039063;
-09FA : E2118A05;
-09FB : 80238082;
-09FC : 808200B7;
-09FD : 00150793;
-09FE : 00750023;
-09FF : B79D167D;
-0A00 : BF5D86BE;
-0A01 : 00B79023;
-0A02 : BFF90789;
-0A03 : 00779023;
-0A04 : 07891679;
-0A05 : 0000BFB9;
-0A06 : 00B567B3;
-0A07 : 8B8D8FD1;
-0A08 : 04079463;
-0A09 : 00C50733;
-0A0A : 8A7186AA;
-0A0B : 000037B7;
-0A0C : 80678F91;
-0A0D : 000185E7;
-0A0E : 061395B2;
-0A0F : 4DDC0200;
-0A10 : 4D9CCEDC;
-0A11 : 49DCCE9C;
-0A12 : 499CCADC;
-0A13 : 45DCCA9C;
-0A14 : 459CC6DC;
-0A15 : 41DCC69C;
-0A16 : 419CC2DC;
-0A17 : 96B2C29C;
-0A18 : FCE6ECE3;
-0A19 : 00018082;
-0A1A : 00C50733;
-0A1B : 00050693;
-0A1C : 0005C783;
-0A1D : 00F68023;
-0A1E : 06850585;
-0A1F : FEE6EAE3;
-0A20 : 07138082;
-0A21 : 47E5F9F5;
-0A22 : 00E7FB63;
-0A23 : F2050293;
-0A24 : 67634379;
-0A25 : 03930053;
-0A26 : 03630F70;
-0A27 : 15010075;
-0A28 : 47038082;
-0A29 : 47830015;
-0A2A : 43830005;
-0A2B : 45030025;
-0A2C : 12930035;
-0A2D : E3330087;
-0A2E : 959300F2;
-0A2F : E6330103;
-0A30 : 16930065;
-0A31 : E5330185;
-0A32 : 808200C6;
-0A33 : 00154783;
-0A34 : 00554683;
-0A35 : 00054703;
-0A36 : 00254383;
-0A37 : 00454E03;
-0A38 : 00654F83;
-0A39 : 00354603;
-0A3A : 00754503;
-0A3B : 00879293;
-0A3C : 00869E93;
-0A3D : 00E2E333;
-0A3E : 01039593;
-0A3F : 01CEEF33;
-0A40 : 010F9713;
-0A41 : 0065E833;
-0A42 : 01851293;
-0A43 : 01861893;
-0A44 : 01E767B3;
-0A45 : 0108E533;
-0A46 : 00F2E5B3;
-0A47 : D7938082;
-0A48 : D2930085;
-0A49 : 00230105;
-0A4A : 81E100B5;
-0A4B : 00F500A3;
-0A4C : 00550123;
-0A4D : 00B501A3;
-0A4E : D7938082;
-0A4F : D2930085;
-0A50 : 53130105;
-0A51 : 53930086;
-0A52 : 00230106;
-0A53 : 022300B5;
-0A54 : 81E100C5;
-0A55 : 00A38261;
-0A56 : 012300F5;
-0A57 : 01A30055;
-0A58 : 02A300B5;
-0A59 : 03230065;
-0A5A : 03A30075;
-0A5B : 808200C5;
-0A5C : 15F94D5C;
-0A5D : FFE78293;
-0A5E : 0055FA63;
-0A5F : 00A55303;
-0A60 : 03B35918;
-0A61 : 853302B3;
-0A62 : 808200E3;
-0A63 : 80824501;
-0A64 : C6061141;
-0A65 : 4114C422;
-0A66 : 171387B2;
-0A67 : D6030176;
-0A68 : 492000A6;
-0A69 : 653381A5;
-0A6A : 468100B7;
-0A6B : 0097D593;
-0A6C : 20E030EF;
-0A6D : 82AA0411;
-0A6E : C9194008;
-0A6F : 00A2E663;
-0A70 : 40A282B3;
-0A71 : BFCD0421;
-0A72 : 00442083;
-0A73 : 00128533;
-0A74 : 442240B2;
-0A75 : 80820141;
-0A76 : 01061793;
-0A77 : 0107D293;
-0A78 : 0082D313;
-0A79 : 00C58D23;
-0A7A : 00658DA3;
-0A7B : 00054703;
-0A7C : 1963438D;
-0A7D : 82410077;
-0A7E : 00865513;
-0A7F : 00C58A23;
-0A80 : 00A58AA3;
-0A81 : 87AA8082;
-0A82 : 00B50693;
-0A83 : C6034501;
-0A84 : 57130007;
-0A85 : 051E0015;
-0A86 : 00C702B3;
-0A87 : 83330785;
-0A88 : 751300A2;
-0A89 : 94E30FF3;
-0A8A : 8082FED7;
-0A8B : 00154683;
-0A8C : 470185AA;
-0A8D : 00168293;
-0A8E : 00529313;
-0A8F : 48094501;
-0A90 : 03070563;
-0A91 : 00E587B3;
-0A92 : 0007C383;
-0A93 : 00F51613;
-0A94 : 08B38105;
-0A95 : 8E330076;
-0A96 : 1E9300A8;
-0A97 : D513010E;
-0A98 : 0705010E;
-0A99 : FC676EE3;
-0A9A : 470D8082;
-0A9B : 1141BFDD;
-0A9C : C226C422;
-0A9D : 84AAC606;
-0A9E : D5034401;
-0A9F : 04890004;
-0AA0 : 40B2E519;
-0AA1 : 44228522;
-0AA2 : 01414492;
-0AA3 : 3BD58082;
-0AA4 : 00F41793;
-0AA5 : 82B38005;
-0AA6 : 77130087;
-0AA7 : 83330FF5;
-0AA8 : 139300E2;
-0AA9 : 05420103;
-0AAA : 0103D593;
-0AAB : 01055693;
-0AAC : 0015D613;
-0AAD : 0086D813;
-0AAE : 010608B3;
-0AAF : 00F59E13;
-0AB0 : 01C88EB3;
-0AB1 : 010E9F13;
-0AB2 : 010F5413;
-0AB3 : 1141B77D;
-0AB4 : C422C606;
-0AB5 : 84AAC226;
-0AB6 : 842E4908;
-0AB7 : 03450513;
-0AB8 : C40833C9;
-0AB9 : 0104A283;
-0ABA : 03828513;
-0ABB : C80833C5;
-0ABC : 489CC84C;
-0ABD : 449240B2;
-0ABE : 0217C303;
-0ABF : 00042E23;
-0AC0 : 00237393;
-0AC1 : 007403A3;
-0AC2 : 01414422;
-0AC3 : 41188082;
-0AC4 : C30586AA;
-0AC5 : 457D87BA;
-0AC6 : 03A00593;
-0AC7 : 0007C603;
-0AC8 : 72630785;
-0AC9 : 1BE302C5;
-0ACA : 0293FEB6;
-0ACB : 84630027;
-0ACC : 557D0057;
-0ACD : 43038082;
-0ACE : 03930007;
-0ACF : 557D0300;
-0AD0 : FE731AE3;
-0AD1 : 4501C29C;
-0AD2 : 11418082;
-0AD3 : C606C226;
-0AD4 : 84AEC422;
-0AD5 : 4525E911;
-0AD6 : 40B24281;
-0AD7 : A0234422;
-0AD8 : 44920054;
-0AD9 : 80820141;
-0ADA : 842A411C;
-0ADB : C703D7ED;
-0ADC : D3750007;
-0ADD : 00455683;
-0ADE : 0067D083;
-0ADF : FC169DE3;
-0AE0 : 0017C503;
-0AE1 : 83FFE0EF;
-0AE2 : F5718905;
-0AE3 : 00042283;
-0AE4 : 1101B7E9;
-0AE5 : CC22CE06;
-0AE6 : 4783CA26;
-0AE7 : EB810035;
-0AE8 : 40F24481;
-0AE9 : 85264462;
-0AEA : 610544D2;
-0AEB : 05938082;
-0AEC : 5D1003C5;
-0AED : 4503842A;
-0AEE : 46850015;
-0AEF : E0EFC62E;
-0AF0 : 84AAB9DF;
-0AF1 : 5C10E905;
-0AF2 : 02842083;
-0AF3 : 01A35018;
-0AF4 : 02B30004;
-0AF5 : F5E34016;
-0AF6 : 4683FCE2;
-0AF7 : 43090024;
-0AF8 : 9FE345B2;
-0AF9 : 4503FA66;
-0AFA : 46850014;
-0AFB : E0EF963A;
-0AFC : BF45B6DF;
-0AFD : B7754485;
-0AFE : 8B635D1C;
-0AFF : 114102B7;
-0B00 : C226C422;
-0B01 : 842AC606;
-0B02 : 376184AE;
-0B03 : 4503ED09;
-0B04 : 46850014;
-0B05 : 05938626;
-0B06 : E0EF03C4;
-0B07 : C119ABDF;
-0B08 : 54FD4505;
-0B09 : 40B2DC04;
-0B0A : 44924422;
-0B0B : 80820141;
-0B0C : 80824501;
-0B0D : C4221141;
-0B0E : C226C606;
-0B0F : 01A357FD;
-0B10 : DD1C0005;
-0B11 : 3F4D842A;
-0B12 : 17634E11;
-0B13 : 44831005;
-0B14 : 408323B4;
-0B15 : 632D23A4;
-0B16 : 00849293;
-0B17 : 0012E4B3;
-0B18 : A5530393;
-0B19 : 00749C63;
-0B1A : 462D659D;
-0B1B : FFC58593;
-0B1C : 03C40513;
-0B1D : 300030EF;
-0B1E : CD794E05;
-0B1F : 03C44503;
-0B20 : 0EB00713;
-0B21 : 00E50963;
-0B22 : 01850613;
-0B23 : 0FF67693;
-0B24 : 6C634805;
-0B25 : 68AD0AD8;
-0B26 : A5588E13;
-0B27 : 01C49C63;
-0B28 : 46216E9D;
-0B29 : 008E8593;
-0B2A : 08E40513;
-0B2B : 2C8030EF;
-0B2C : C15D4E01;
-0B2D : 04844F83;
-0B2E : 04744F03;
-0B2F : 20000293;
-0B30 : 008F9793;
-0B31 : 01E7E0B3;
-0B32 : 08509163;
-0B33 : 04944303;
-0B34 : 06030D63;
-0B35 : FFF30393;
-0B36 : 0063F5B3;
-0B37 : 4703E5BD;
-0B38 : 450304B4;
-0B39 : 161304A4;
-0B3A : 66B30087;
-0B3B : CEB100A6;
-0B3C : 04C44803;
-0B3D : 08934E05;
-0B3E : 6863FFF8;
-0B3F : 4F03051E;
-0B40 : 4E8304E4;
-0B41 : 1F9304D4;
-0B42 : E7B3008F;
-0B43 : CF9501DF;
-0B44 : 05044283;
-0B45 : 04F44083;
-0B46 : 07F00593;
-0B47 : 00829313;
-0B48 : 001363B3;
-0B49 : 0075E963;
-0B4A : 05C40513;
-0B4B : B77FF0EF;
-0B4C : 6C636741;
-0B4D : 450300E5;
-0B4E : 44030524;
-0B4F : 4E010534;
-0B50 : 00841613;
-0B51 : 00A666B3;
-0B52 : 682DEA81;
-0B53 : A5580893;
-0B54 : 83634E09;
-0B55 : 4E0D0114;
-0B56 : 442240B2;
-0B57 : 85724492;
-0B58 : 80820141;
-0B59 : D6067179;
-0B5A : D226D422;
-0B5B : CE4ED04A;
-0B5C : CA56CC52;
-0B5D : C65EC85A;
-0B5E : 595C15F9;
-0B5F : F0934405;
-0B60 : D9930075;
-0B61 : D49300C5;
-0B62 : 12B30035;
-0B63 : 892A0014;
-0B64 : 8AB68A32;
-0B65 : F49399BE;
-0B66 : F4131FF4;
-0B67 : 4B050FF2;
-0B68 : 20000B93;
-0B69 : 854A85CE;
-0B6A : 35B90985;
-0B6B : 4505CD11;
-0B6C : 542250B2;
-0B6D : 59025492;
-0B6E : 4A6249F2;
-0B6F : 4B424AD2;
-0B70 : 61454BB2;
-0B71 : 84C68082;
-0B72 : 009906B3;
-0B73 : 03C6C303;
-0B74 : 00837733;
-0B75 : 00E033B3;
-0B76 : 03538763;
-0B77 : 00834633;
-0B78 : 02C68E23;
-0B79 : 016901A3;
-0B7A : 03E31A7D;
-0B7B : 1813FC0A;
-0B7C : 74130014;
-0B7D : F8690FF8;
-0B7E : 00148893;
-0B7F : 44814405;
-0B80 : FD7893E3;
-0B81 : 4509B745;
-0B82 : 4705B765;
-0B83 : 18B77F63;
-0B84 : CC221101;
-0B85 : CA26CE06;
-0B86 : C64EC84A;
-0B87 : 87AA4104;
-0B88 : A083842E;
-0B89 : 450501C4;
-0B8A : 0015FE63;
-0B8B : 0004C283;
-0B8C : 8B63468D;
-0B8D : EE6310D2;
-0B8E : 8F630056;
-0B8F : 488906A2;
-0B90 : 0D128C63;
-0B91 : 446240F2;
-0B92 : 494244D2;
-0B93 : 610549B2;
-0B94 : 48918082;
-0B95 : FF1298E3;
-0B96 : 0107A903;
-0B97 : 0147A983;
-0B98 : 0077CE83;
-0B99 : 01396E33;
-0B9A : 000E0663;
-0B9B : 0087AF03;
-0B9C : 000F1563;
-0B9D : 97E34505;
-0B9E : AF83FC0E;
-0B9F : 47090087;
-0BA0 : 00A4D283;
-0BA1 : 41F400B3;
-0BA2 : 0EEE9363;
-0BA3 : 00193893;
-0BA4 : FFF90813;
-0BA5 : 41198933;
-0BA6 : 01791993;
-0BA7 : 00985E13;
-0BA8 : 01C9EEB3;
-0BA9 : 025EDF33;
-0BAA : 6DE34505;
-0BAB : 8063F81F;
-0BAC : 051311E0;
-0BAD : B7790014;
-0BAE : 0015D093;
-0BAF : 89335498;
-0BB0 : 529300B0;
-0BB1 : 85B30099;
-0BB2 : 852600E2;
-0BB3 : C1193335;
-0BB4 : BF8D557D;
-0BB5 : 0993549C;
-0BB6 : 76930019;
-0BB7 : 85B31FF9;
-0BB8 : D31300D4;
-0BB9 : C9030099;
-0BBA : 852603C5;
-0BBB : 00F305B3;
-0BBC : FD793321;
-0BBD : 1FF9F513;
-0BBE : C38394AA;
-0BBF : 880503C4;
-0BC0 : 00839613;
-0BC1 : 01266833;
-0BC2 : 5513C401;
-0BC3 : BF1D0048;
-0BC4 : 55130852;
-0BC5 : B73D0148;
-0BC6 : 0284AE83;
-0BC7 : 0085DE13;
-0BC8 : 05B38526;
-0BC9 : 39C901DE;
-0BCA : 1F13F545;
-0BCB : 7F930014;
-0BCC : 80B31FEF;
-0BCD : C70301F4;
-0BCE : C28303D0;
-0BCF : 199303C0;
-0BD0 : E5330087;
-0BD1 : BDFD0059;
-0BD2 : 0284A303;
-0BD3 : 8526819D;
-0BD4 : 315D959A;
-0BD5 : 1393FD35;
-0BD6 : F6130024;
-0BD7 : 85131FC3;
-0BD8 : 953203C4;
-0BD9 : 93FFF0EF;
-0BDA : 00451813;
-0BDB : 468DBF79;
-0BDC : 00DE9563;
-0BDD : EEE34F8C;
-0BDE : 4FDCF2B0;
-0BDF : 5488EB8D;
-0BE0 : 00745313;
-0BE1 : 00A305B3;
-0BE2 : 31BD8526;
-0BE3 : 040AF131;
-0BE4 : 1FC47393;
-0BE5 : 03C48493;
-0BE6 : 00748533;
-0BE7 : 907FF0EF;
-0BE8 : 00151613;
-0BE9 : 00165513;
-0BEA : 4505BD71;
-0BEB : 0FB78082;
-0BEC : C5138000;
-0BED : B579FFFF;
-0BEE : D2267179;
-0BEF : D606D04A;
-0BF0 : CE4ED422;
-0BF1 : CA56CC52;
-0BF2 : 47114100;
-0BF3 : 4683892A;
-0BF4 : 84AE0004;
-0BF5 : 002007B7;
-0BF6 : 00E69463;
-0BF7 : 100007B7;
-0BF8 : 00F4EC63;
-0BF9 : 50B24509;
-0BFA : 54925422;
-0BFB : 49F25902;
-0BFC : 4AD24A62;
-0BFD : 80826145;
-0BFE : 01F4F093;
-0BFF : FE0094E3;
-0C00 : 00892583;
-0C01 : 02992823;
-0C02 : 4303E5B5;
-0C03 : 43890004;
-0C04 : 0263EE63;
-0C05 : 00845803;
-0C06 : 0054D613;
-0C07 : FD0674E3;
-0C08 : 2C235448;
-0C09 : 2A2302A9;
-0C0A : DD4D02B9;
-0C0B : 0094D893;
-0C0C : 03C40E93;
-0C0D : 1FF4FF13;
-0C0E : 00A88E33;
-0C0F : 01EE8FB3;
-0C10 : 03C92C23;
-0C11 : 03F92E23;
-0C12 : BF714501;
-0C13 : 02C42283;
-0C14 : 000903A3;
-0C15 : FC0280E3;
-0C16 : 00A45983;
-0C17 : 5A7D8596;
-0C18 : 4A8509A6;
-0C19 : 0134FA63;
-0C1A : C62E8522;
-0C1B : 905FF0EF;
-0C1C : BF4545B2;
-0C1D : B7CD82AE;
-0C1E : 3B41854A;
-0C1F : 0A6385AA;
-0C20 : F1E30145;
-0C21 : 4C48F6AA;
-0C22 : F4A5FEE3;
-0C23 : 413484B3;
-0C24 : 4505BFD1;
-0C25 : 1101BF89;
-0C26 : C452CA26;
-0C27 : CC22CE06;
-0C28 : C64EC84A;
-0C29 : C05AC256;
-0C2A : 44894A05;
-0C2B : 02BA7263;
-0C2C : 89AA4D5C;
-0C2D : 4489892E;
-0C2E : 00F5FC63;
-0C2F : 00054083;
-0C30 : 84324709;
-0C31 : 12E08563;
-0C32 : 00176F63;
-0C33 : 07408D63;
-0C34 : 446240F2;
-0C35 : 49B24942;
-0C36 : 4A924A22;
-0C37 : 85264B02;
-0C38 : 610544D2;
-0C39 : 84938082;
-0C3A : F893FFD0;
-0C3B : 44890FF4;
-0C3C : FF1A60E3;
-0C3D : 02852B03;
-0C3E : 0075DA93;
-0C3F : 016A85B3;
-0C40 : AF9FF0EF;
-0C41 : F56984AA;
-0C42 : 0009CF83;
-0C43 : 00291E93;
-0C44 : 03C98E13;
-0C45 : 1FCEFF13;
-0C46 : 0A334911;
-0C47 : 8F6301EE;
-0C48 : 8552012F;
-0C49 : F7EFF0EF;
-0C4A : 00441793;
-0C4B : F00005B7;
-0C4C : 0047D713;
-0C4D : 00B572B3;
-0C4E : 00576433;
-0C4F : 855285A2;
-0C50 : FDEFF0EF;
-0C51 : D093A079;
-0C52 : 23830015;
-0C53 : 8A330285;
-0C54 : 531300B0;
-0C55 : 05B3009A;
-0C56 : F0EF0073;
-0C57 : 84AAA9FF;
-0C58 : 8A93F925;
-0C59 : 751303C9;
-0C5A : 79131FFA;
-0C5B : 0B130019;
-0C5C : 8633001A;
-0C5D : 7F9300AA;
-0C5E : 01630FF4;
-0C5F : 46830209;
-0C60 : 64850006;
-0C61 : 00441893;
-0C62 : FF048E13;
-0C63 : 00F6F813;
-0C64 : 01C8FEB3;
-0C65 : 01D86F33;
-0C66 : 0FFF7F93;
-0C67 : 01F60023;
-0C68 : 0289A583;
-0C69 : 57134785;
-0C6A : 81A3009B;
-0C6B : 95BA00F9;
-0C6C : F0EF854E;
-0C6D : 84AAA47F;
-0C6E : 7293FD01;
-0C6F : 80B31FFB;
-0C70 : 0C63005A;
-0C71 : 5B130009;
-0C72 : 7A930044;
-0C73 : 80230FFB;
-0C74 : 45050150;
-0C75 : 00A981A3;
-0C76 : CA03BDE5;
-0C77 : 80210000;
-0C78 : 00F47393;
-0C79 : FF0A7313;
-0C7A : 00736AB3;
-0C7B : 2283B7CD;
-0C7C : 81A10285;
-0C7D : F0EF9596;
-0C7E : 84AAA03F;
-0C7F : EC051AE3;
-0C80 : 00191393;
-0C81 : 03C98313;
-0C82 : 1FE3F513;
-0C83 : 00A30633;
-0C84 : 00860023;
-0C85 : 56930442;
-0C86 : D8130104;
-0C87 : 00A30086;
-0C88 : 81A30106;
-0C89 : B56D0149;
-0C8A : CC221101;
-0C8B : C84ACA26;
-0C8C : CE06C64E;
-0C8D : 84AE842A;
-0C8E : 49858932;
-0C8F : EB894C5C;
-0C90 : 40F24501;
-0C91 : 44D24462;
-0C92 : 49B24942;
-0C93 : 80826105;
-0C94 : 40F48733;
-0C95 : 05934008;
-0C96 : 864A0017;
-0C97 : 01378463;
-0C98 : 00270613;
-0C99 : FD713D0D;
-0C9A : 01C42083;
-0C9B : FFF08293;
-0C9C : 00542E23;
-0C9D : 7179B7E1;
-0C9E : D422D606;
-0C9F : D04AD226;
-0CA0 : CC52CE4E;
-0CA1 : C85ACA56;
-0CA2 : C462C65E;
-0CA3 : 41044785;
-0CA4 : 00B7EF63;
-0CA5 : 50B24509;
-0CA6 : 54925422;
-0CA7 : 49F25902;
-0CA8 : 4AD24A62;
-0CA9 : 4BB24B42;
-0CAA : 61454C22;
-0CAB : A0838082;
-0CAC : 842E01C4;
-0CAD : FE15F0E3;
-0CAE : 89B2892A;
-0CAF : 8C22E61D;
-0CB0 : 5BFD4B05;
-0CB1 : 85A24A91;
-0CB2 : F0EF854A;
-0CB3 : 8A22B41F;
-0CB4 : ED05842A;
-0CB5 : 0004C483;
-0CB6 : 96634791;
-0CB7 : 9D6300F4;
-0CB8 : 03A30809;
-0CB9 : 45010009;
-0CBA : C703B77D;
-0CBB : 42910004;
-0CBC : 00571763;
-0CBD : 00754303;
-0CBE : 02E34389;
-0CBF : 567DFC73;
-0CC0 : 852685CE;
-0CC1 : DD453B49;
-0CC2 : 05E3B779;
-0CC3 : 1463F965;
-0CC4 : 45050175;
-0CC5 : C503B749;
-0CC6 : 1E630004;
-0CC7 : 4CD00355;
-0CC8 : 06934C8C;
-0CC9 : EE63FFE6;
-0CCA : 0E9302D5;
-0CCB : 8F63001A;
-0CCC : CF03008E;
-0CCD : 1A630004;
-0CCE : 4681015F;
-0CCF : 418E8633;
-0CD0 : 852685E2;
-0CD1 : A21FF0EF;
-0CD2 : 8C22F539;
-0CD3 : 01C4AF83;
-0CD4 : F7F46BE3;
-0CD5 : 4601B741;
-0CD6 : 852685D2;
-0CD7 : D1613B2D;
-0CD8 : C883BF1D;
-0CD9 : 88130044;
-0CDA : AC230015;
-0CDB : EE130104;
-0CDC : 82230018;
-0CDD : BF5501C4;
-0CDE : 00794083;
-0CDF : 02009863;
-0CE0 : 00892A83;
-0CE1 : 5BFD4B05;
-0CE2 : 013A9663;
-0CE3 : 03A34989;
-0CE4 : BF910139;
-0CE5 : 854A85D6;
-0CE6 : A73FF0EF;
-0CE7 : EEAB7CE3;
-0CE8 : F77509E3;
-0CE9 : 81E30A85;
-0CEA : BF35FEAA;
-0CEB : 9CE3470D;
-0CEC : 2283F2E0;
-0CED : E8E30089;
-0CEE : 2303F259;
-0CEF : 83B30189;
-0CF0 : E2E30062;
-0CF1 : B7D9F333;
-0CF2 : 00754703;
-0CF3 : 1E63478D;
-0CF4 : 114102F7;
-0CF5 : C606C422;
-0CF6 : C04AC226;
-0CF7 : 4D04450C;
-0CF8 : 94AE842A;
-0CF9 : 00959B63;
-0CFA : 000403A3;
-0CFB : 40B24501;
-0CFC : 44924422;
-0CFD : 01414902;
-0CFE : 40088082;
-0CFF : 00158913;
-0D00 : 3951864A;
-0D01 : 85CAF56D;
-0D02 : 4501BFF1;
-0D03 : 71798082;
-0D04 : D606D422;
-0D05 : D04AD226;
-0D06 : 842ACE4E;
-0D07 : F0EFC62E;
-0D08 : ED21F74F;
-0D09 : 852245B2;
-0D0A : 03C40993;
-0D0B : D44FF0EF;
-0D0C : 892ADC08;
-0D0D : 20000613;
-0D0E : 854E4581;
-0D0F : B0AFF0EF;
-0D10 : 57834481;
-0D11 : EF6300A4;
-0D12 : 550300F4;
-0D13 : 00B300A4;
-0D14 : 35334095;
-0D15 : 50B20010;
-0D16 : 54925422;
-0D17 : 49F25902;
-0D18 : 80826145;
-0D19 : 00144503;
-0D1A : 06334685;
-0D1B : 85CE0099;
-0D1C : AEAFE0EF;
-0D1D : 0485F979;
-0D1E : 4505B7E9;
-0D1F : 1141BFE9;
-0D20 : C606C422;
-0D21 : 842AC226;
-0D22 : F0AFF0EF;
-0D23 : 4703E155;
-0D24 : 478D0004;
-0D25 : 08F71663;
-0D26 : 00444083;
-0D27 : 91634285;
-0D28 : 04930850;
-0D29 : 061303C4;
-0D2A : 45812000;
-0D2B : F0EF8526;
-0D2C : 0593A98F;
-0D2D : 0F230610;
-0D2E : 01A302B4;
-0D2F : 4C0C22B4;
-0D30 : 04100613;
-0D31 : 07200693;
-0D32 : 05500313;
-0D33 : FAA00393;
-0D34 : 05200513;
-0D35 : 22640D23;
-0D36 : 22740DA3;
-0D37 : 02C40FA3;
-0D38 : 22D40023;
-0D39 : 22D400A3;
-0D3A : 22C40123;
-0D3B : 02A40E23;
-0D3C : 02A40EA3;
-0D3D : 22440513;
-0D3E : C26FF0EF;
-0D3F : 0513484C;
-0D40 : F0EF2284;
-0D41 : 2803C1CF;
-0D42 : 45030244;
-0D43 : 46850014;
-0D44 : 00180613;
-0D45 : 85A6DC10;
-0D46 : A42FE0EF;
-0D47 : 00040223;
-0D48 : 00144503;
-0D49 : 45814601;
-0D4A : 930FE0EF;
-0D4B : 00A03533;
-0D4C : 442240B2;
-0D4D : 01414492;
-0D4E : 71798082;
-0D4F : CE4ED226;
-0D50 : D606CC52;
-0D51 : D04AD422;
-0D52 : A023CA56;
-0D53 : 89AE0005;
-0D54 : F0EF8A32;
-0D55 : 44ADDBCF;
-0D56 : 04054263;
-0D57 : 00251713;
-0D58 : 13000093;
-0D59 : 00E082B3;
-0D5A : 0002A403;
-0D5B : 44B1892A;
-0D5C : A023C415;
-0D5D : 43030089;
-0D5E : 74930004;
-0D5F : 09630FEA;
-0D60 : 45030203;
-0D61 : D0EF0014;
-0D62 : 7393E3DF;
-0D63 : 91630015;
-0D64 : C4890203;
-0D65 : 00457493;
-0D66 : 44A9C091;
-0D67 : 542250B2;
-0D68 : 49F25902;
-0D69 : 4AD24A62;
-0D6A : 54928526;
-0D6B : 80826145;
-0D6C : 0FF97513;
-0D6D : 00040023;
-0D6E : 00A400A3;
-0D6F : FF5FD0EF;
-0D70 : 00157593;
-0D71 : 42059663;
-0D72 : 8911C099;
-0D73 : 4581F579;
-0D74 : F0EF8522;
-0D75 : 4489E62F;
-0D76 : 04951363;
-0D77 : 0A13848A;
-0D78 : 0A932024;
-0D79 : 89A62424;
-0D7A : F0EF8552;
-0D7B : A023AB8F;
-0D7C : 0A4100A9;
-0D7D : 19E30991;
-0D7E : 8913FF5A;
-0D7F : 4A850104;
-0D80 : 450D408C;
-0D81 : 8522C591;
-0D82 : E2CFF0EF;
-0D83 : 02AAF363;
-0D84 : 97E30491;
-0D85 : 4411FF24;
-0D86 : 00851B63;
-0D87 : 4611A021;
-0D88 : 00C51463;
-0D89 : BF9D4485;
-0D8A : F4634685;
-0D8B : 44B500A6;
-0D8C : 4805B7B5;
-0D8D : 03842983;
-0D8E : 1B051D63;
-0D8F : 04740E13;
-0D90 : 07C40513;
-0D91 : 000E4903;
-0D92 : FE0913E3;
-0D93 : 1BE30E05;
-0D94 : 4E83FFC5;
-0D95 : 4A030A54;
-0D96 : 0F930A44;
-0D97 : 9F131000;
-0D98 : 64B3008E;
-0D99 : 94E3014F;
-0D9A : 4703FDF4;
-0D9B : 40A50A84;
-0D9C : FA171FE3;
-0D9D : 08440513;
-0D9E : A54FF0EF;
-0D9F : 00A98A33;
-0DA0 : 013A3AB3;
-0DA1 : 00BA87B3;
-0DA2 : 0513F3DD;
-0DA3 : F0EF0904;
-0DA4 : 4283A14F;
-0DA5 : D0080AA4;
-0DA6 : 01234305;
-0DA7 : 98E30054;
-0DA8 : 4383F862;
-0DA9 : 9AB30A94;
-0DAA : 95930072;
-0DAB : D613010A;
-0DAC : 15230105;
-0DAD : DE2500C4;
-0DAE : 09840513;
-0DAF : 9E6FF0EF;
-0DB0 : 800006B7;
-0DB1 : FFD6C813;
-0DB2 : 62E3892A;
-0DB3 : 0893F6A8;
-0DB4 : 2E230025;
-0DB5 : 22230114;
-0DB6 : 05130334;
-0DB7 : F0EF0944;
-0DB8 : 04B39C4F;
-0DB9 : D8040135;
-0DBA : 08C40513;
-0DBB : 9B6FF0EF;
-0DBC : 9993954E;
-0DBD : DE13010A;
-0DBE : 0EB30109;
-0DBF : D408032E;
-0DC0 : 009E8F33;
-0DC1 : F3DF65E3;
-0DC2 : F3EA63E3;
-0DC3 : 09C40513;
-0DC4 : 992FF0EF;
-0DC5 : 4901D448;
-0DC6 : 0A134A81;
-0DC7 : 12630810;
-0DC8 : 5F830209;
-0DC9 : F4E300A4;
-0DCA : 544CF1FA;
-0DCB : F0EF8522;
-0DCC : 05B3A42F;
-0DCD : 85220155;
-0DCE : CC0FF0EF;
-0DCF : EE0514E3;
-0DD0 : 07330A85;
-0DD1 : 40830124;
-0DD2 : 876303C7;
-0DD3 : 07930140;
-0DD4 : F9130209;
-0DD5 : B7E11FF7;
-0DD6 : 01490293;
-0DD7 : 03C40993;
-0DD8 : 00598533;
-0DD9 : 93EFF0EF;
-0DDA : 84AA4305;
-0DDB : ECA371E3;
-0DDC : 01C42383;
-0DDD : EA757DE3;
-0DDE : 00A45583;
-0DDF : FFE50613;
-0DE0 : 03042803;
-0DE1 : 02C586B3;
-0DE2 : 88B35A7D;
-0DE3 : 2A230106;
-0DE4 : 2E030314;
-0DE5 : D5130284;
-0DE6 : 05B30074;
-0DE7 : 852201C5;
-0DE8 : C58FF0EF;
-0DE9 : E80510E3;
-0DEA : 07F4FE93;
-0DEB : 002E9F13;
-0DEC : 01E98533;
-0DED : 8EEFF0EF;
-0DEE : 01450663;
-0DEF : 0AE30485;
-0DF0 : B5B5FC95;
-0DF1 : 01442C23;
-0DF2 : 01442A23;
-0DF3 : 0A934911;
-0DF4 : D7031340;
-0DF5 : 0023000A;
-0DF6 : 44810124;
-0DF7 : 00170093;
-0DF8 : 01009793;
-0DF9 : 0107D913;
-0DFA : 012A9023;
-0DFB : 01241323;
-0DFC : 4E03B375;
-0DFD : 48830484;
-0DFE : 0F930474;
-0DFF : 1E932000;
-0E00 : EF33008E;
-0E01 : 14E3011E;
-0E02 : 4783E3FF;
-0E03 : 47030534;
-0E04 : 90930524;
-0E05 : EA330087;
-0E06 : 176300E0;
-0E07 : 0513000A;
-0E08 : F0EF0604;
-0E09 : 8A2A880F;
-0E0A : 04C44483;
-0E0B : 03442023;
-0E0C : 82934385;
-0E0D : 0123FFF4;
-0E0E : F3130094;
-0E0F : E8E30FF2;
-0E10 : 4903DE63;
-0E11 : 15930494;
-0E12 : D5130109;
-0E13 : 15230105;
-0E14 : 0EE300A4;
-0E15 : 0A93DC05;
-0E16 : F633FFF9;
-0E17 : 18E3012A;
-0E18 : 4803DC06;
-0E19 : 468304E4;
-0E1A : 189304D4;
-0E1B : EAB30088;
-0E1C : 142300D8;
-0E1D : FE130154;
-0E1E : 1AE300FA;
-0E1F : 4F03DA0E;
-0E20 : 4E830504;
-0E21 : 1F9304F4;
-0E22 : E533008F;
-0E23 : E50901DF;
-0E24 : 05C40513;
-0E25 : 80EFF0EF;
-0E26 : 04B44783;
-0E27 : 04A44703;
-0E28 : 00879093;
-0E29 : 00E0E2B3;
-0E2A : D80283E3;
-0E2B : 03448333;
-0E2C : 004AD493;
-0E2D : 005483B3;
-0E2E : 006385B3;
-0E2F : D6B569E3;
-0E30 : 56338D0D;
-0E31 : 64E30325;
-0E32 : 0937D725;
-0E33 : 06931000;
-0E34 : EEE3FF59;
-0E35 : 6841D4C6;
-0E36 : FF580893;
-0E37 : 10C8FC63;
-0E38 : 0493490D;
-0E39 : 8FB30026;
-0E3A : 87330132;
-0E3B : CC4400B9;
-0E3C : 03342223;
-0E3D : 03F42423;
-0E3E : 408DD818;
-0E3F : 0C191763;
-0E40 : 06744503;
-0E41 : 06644583;
-0E42 : 00851613;
-0E43 : 00B666B3;
-0E44 : 00DAE833;
-0E45 : D0081DE3;
-0E46 : 06840513;
-0E47 : F87FE0EF;
-0E48 : 00249393;
-0E49 : 1FF38893;
-0E4A : DE13D448;
-0E4B : 60E30098;
-0E4C : 5A7DD1CA;
-0E4D : F8000E93;
-0E4E : 01442C23;
-0E4F : 01442A23;
-0E50 : 01D40223;
-0E51 : 14E34F0D;
-0E52 : 4F83E9E9;
-0E53 : 448306D4;
-0E54 : 4A8506C4;
-0E55 : 008F9713;
-0E56 : 009760B3;
-0E57 : E75099E3;
-0E58 : 00198593;
-0E59 : F0EF8522;
-0E5A : 12E3A92F;
-0E5B : 4783E605;
-0E5C : 498323B4;
-0E5D : 63AD23A4;
-0E5E : 00879293;
-0E5F : 00040223;
-0E60 : 0132E333;
-0E61 : A5538593;
-0E62 : E4B313E3;
-0E63 : 03C40513;
-0E64 : F13FE0EF;
-0E65 : 41615637;
-0E66 : 25260693;
-0E67 : E2D519E3;
-0E68 : 22040513;
-0E69 : EFFFE0EF;
-0E6A : 61417837;
-0E6B : 27280893;
-0E6C : E1151FE3;
-0E6D : 22440513;
-0E6E : EEBFE0EF;
-0E6F : 0513CC08;
-0E70 : E0EF2284;
-0E71 : C848EE1F;
-0E72 : 82E3B519;
-0E73 : 4A89C60A;
-0E74 : 006F8533;
-0E75 : 01591563;
-0E76 : 00149393;
-0E77 : 87B3B7A1;
-0E78 : F3130214;
-0E79 : D2930014;
-0E7A : 83B30017;
-0E7B : BF1D0062;
-0E7C : B66D448D;
-0E7D : 0E936E05;
-0E7E : BF33FF5E;
-0E7F : 091300CE;
-0E80 : B5C5001F;
-0E81 : D04A7179;
-0E82 : D606CC52;
-0E83 : D226D422;
-0E84 : CA56CE4E;
-0E85 : C65EC85A;
-0E86 : 4104C462;
-0E87 : 8A2E892A;
-0E88 : A983E999;
-0E89 : 86630144;
-0E8A : A3030009;
-0E8B : E06301C4;
-0E8C : 49850469;
-0E8D : F0EFA82D;
-0E8E : 4785BD4F;
-0E8F : E063842A;
-0E90 : 440502A7;
-0E91 : 852250B2;
-0E92 : 54925422;
-0E93 : 49F25902;
-0E94 : 4AD24A62;
-0E95 : 4BB24B42;
-0E96 : 61454C22;
-0E97 : 50FD8082;
-0E98 : 1E150063;
-0E99 : 01C4A283;
-0E9A : 6DE389D2;
-0E9B : A383FC55;
-0E9C : 94630184;
-0E9D : 44010003;
-0E9E : C683B7F1;
-0E9F : 47110004;
-0EA0 : 9C634CC8;
-0EA1 : 8A9312E6;
-0EA2 : 0B93FFE9;
-0EA3 : E363FFE5;
-0EA4 : 4A81017A;
-0EA5 : 4B058456;
-0EA6 : 1FF00C13;
-0EA7 : 0344AE83;
-0EA8 : 00C45E13;
-0EA9 : 05B38526;
-0EAA : F0EF01DE;
-0EAB : E54194EF;
-0EAC : 01C4A083;
-0EAD : 00747F93;
-0EAE : 00345F13;
-0EAF : 01FB17B3;
-0EB0 : 1FFF7713;
-0EB1 : 0FF7F613;
-0EB2 : FFE08693;
-0EB3 : 00E48333;
-0EB4 : 03C34383;
-0EB5 : 040582A2;
-0EB6 : 00767533;
-0EB7 : 04D47063;
-0EB8 : 00161593;
-0EB9 : 0FF5F613;
-0EBA : 8413ED1D;
-0EBB : 08130022;
-0EBC : 58F5FFF4;
-0EBD : F508E8E3;
-0EBE : 46054685;
-0EBF : 852685A2;
-0EC0 : A64FF0EF;
-0EC1 : 0EE34B89;
-0EC2 : 4E05F375;
-0EC3 : 13C50A63;
-0EC4 : 020A1763;
-0EC5 : 017903A3;
-0EC6 : A8BDF50D;
-0EC7 : 44014601;
-0EC8 : 20000713;
-0EC9 : 8A63B7D1;
-0ECA : F24D008A;
-0ECB : 67E30705;
-0ECC : 4605F6EC;
-0ECD : 547DBF61;
-0ECE : 4401BF5D;
-0ECF : 4E83BF4D;
-0ED0 : 9F630079;
-0ED1 : 8F13017E;
-0ED2 : 07E30019;
-0ED3 : 2F83FC8F;
-0ED4 : 478D0089;
-0ED5 : 00F903A3;
-0ED6 : 41F989B3;
-0ED7 : 01392C23;
-0ED8 : 001A0293;
-0ED9 : 01C92083;
-0EDA : 00829A63;
-0EDB : 84634589;
-0EDC : 85930000;
-0EDD : 2E230010;
-0EDE : BF7900B9;
-0EDF : 00009563;
-0EE0 : 2E234305;
-0EE1 : 86220069;
-0EE2 : 854A85D2;
-0EE3 : E9CFF0EF;
-0EE4 : 4385E54D;
-0EE5 : 00792E23;
-0EE6 : 4C884CD0;
-0EE7 : 0713C8C0;
-0EE8 : 6563FFE6;
-0EE9 : 069300A7;
-0EEA : CC94FFF5;
-0EEB : 0044C903;
-0EEC : 00196A13;
-0EED : 01448223;
-0EEE : 9A63B571;
-0EEF : 84130349;
-0EF0 : 63630019;
-0EF1 : 440900A4;
-0EF2 : 854A85A2;
-0EF3 : A3EFF0EF;
-0EF4 : 08E34585;
-0EF5 : 567DE6B5;
-0EF6 : 06C50463;
-0EF7 : 48C0C121;
-0EF8 : 0085F763;
-0EF9 : 01C4A803;
-0EFA : 01047363;
-0EFB : 844E89A2;
-0EFC : 5B7D4A85;
-0EFD : 01C4A883;
-0EFE : 65630405;
-0EFF : 8CE30114;
-0F00 : 4409E759;
-0F01 : 854A85A2;
-0F02 : A02FF0EF;
-0F03 : 0AE3C909;
-0F04 : 0763E355;
-0F05 : 1FE30365;
-0F06 : BDB1FD34;
-0F07 : 567DD869;
-0F08 : 852685A2;
-0F09 : C72FF0EF;
-0F0A : 07E3E909;
-0F0B : 8622F60A;
-0F0C : 852685D2;
-0F0D : C62FF0EF;
-0F0E : 4485D125;
-0F0F : E09513E3;
-0F10 : B509547D;
-0F11 : D4227179;
-0F12 : D606CC52;
-0F13 : D04AD226;
-0F14 : CA56CE4E;
-0F15 : 29034104;
-0F16 : 47110305;
-0F17 : 0004C683;
-0F18 : 8A2E842A;
-0F19 : 02090913;
-0F1A : 002007B7;
-0F1B : 00E69463;
-0F1C : 100007B7;
-0F1D : 00F96463;
-0F1E : 02042C23;
-0F1F : 03842083;
-0F20 : 85634511;
-0F21 : 79930200;
-0F22 : 94631FF9;
-0F23 : 584C0A09;
-0F24 : 00108293;
-0F25 : 02542C23;
-0F26 : DF83E19D;
-0F27 : 5F130084;
-0F28 : 68630059;
-0F29 : 2C2309FF;
-0F2A : 45110204;
-0F2B : 542250B2;
-0F2C : 59025492;
-0F2D : 4A6249F2;
-0F2E : 61454AD2;
-0F2F : D3038082;
-0F30 : 551300A4;
-0F31 : 03930099;
-0F32 : F633FFF3;
-0F33 : E23500A3;
-0F34 : F0EF8522;
-0F35 : 4A85938F;
-0F36 : E46385AA;
-0F37 : 450900AA;
-0F38 : 587DB7F1;
-0F39 : 01051463;
-0F3A : B7C94505;
-0F3B : 01C4A883;
-0F3C : 03156C63;
-0F3D : FA0A09E3;
-0F3E : 8522584C;
-0F3F : D09FF0EF;
-0F40 : 451D85AA;
-0F41 : 8CE3D5C5;
-0F42 : 5E7DFD55;
-0F43 : FDC58EE3;
-0F44 : C62E8526;
-0F45 : EFAFF0EF;
-0F46 : 4583F961;
-0F47 : EE930074;
-0F48 : 45B20045;
-0F49 : 01D403A3;
-0F4A : 8526D84C;
-0F4B : C45FE0EF;
-0F4C : 8A13DC08;
-0F4D : 04B303C4;
-0F4E : 2823013A;
-0F4F : DC440324;
-0F50 : B7AD4501;
-0F51 : CC221101;
-0F52 : CE06C84A;
-0F53 : C64ECA26;
-0F54 : C256C452;
-0F55 : 4581892E;
-0F56 : 00052983;
-0F57 : F0EF842A;
-0F58 : ED05A5AF;
-0F59 : 4A114481;
-0F5A : 0E500A93;
-0F5B : 854E5C0C;
-0F5C : E89FE0EF;
-0F5D : 5C5CE11D;
-0F5E : 0009C703;
-0F5F : 0007C083;
-0F60 : 03471263;
-0F61 : 01809293;
-0F62 : 4182D313;
-0F63 : 02035063;
-0F64 : 45854481;
-0F65 : 357D8522;
-0F66 : 4391D971;
-0F67 : 00751B63;
-0F68 : A801451D;
-0F69 : 01508463;
-0F6A : FE0094E3;
-0F6B : 92E30485;
-0F6C : 40F2FF24;
-0F6D : 44D24462;
-0F6E : 49B24942;
-0F6F : 4A924A22;
-0F70 : 80826105;
-0F71 : CC221101;
-0F72 : CE06CA26;
-0F73 : C64EC84A;
-0F74 : C256C452;
-0F75 : 84AAC05A;
-0F76 : 41085C8C;
-0F77 : 01052903;
-0F78 : E19FE0EF;
-0F79 : E909842A;
-0F7A : 07935CCC;
-0F7B : C7030850;
-0F7C : 0E630005;
-0F7D : 440900F7;
-0F7E : 852240F2;
-0F7F : 44D24462;
-0F80 : 49B24942;
-0F81 : 4A924A22;
-0F82 : 61054B02;
-0F83 : 06138082;
-0F84 : 854A0200;
-0F85 : A05FE0EF;
-0F86 : 00194983;
-0F87 : 20000393;
-0F88 : 00198293;
-0F89 : 00529993;
-0F8A : FA098313;
-0F8B : FC63E5E3;
-0F8C : 85264581;
-0F8D : 45913D01;
-0F8E : 0EE3842A;
-0F8F : FD4DFAB5;
-0F90 : 40885C8C;
-0F91 : DB5FE0EF;
-0F92 : F55D842A;
-0F93 : 04135CCC;
-0F94 : C0830C00;
-0F95 : 90E30005;
-0F96 : 0613FA80;
-0F97 : 05130200;
-0F98 : E0EF0209;
-0F99 : 45039B7F;
-0F9A : 46BD0239;
-0F9B : 02C50613;
-0F9C : 02D65833;
-0F9D : 00581893;
-0F9E : F719EFE3;
-0F9F : 04000A13;
-0FA0 : 0B134A91;
-0FA1 : 45810C10;
-0FA2 : 3B6D8526;
-0FA3 : 04E3842A;
-0FA4 : F13DF755;
-0FA5 : 40885C8C;
-0FA6 : D61FE0EF;
-0FA7 : FD29842A;
-0FA8 : CE035CCC;
-0FA9 : 18E30005;
-0FAA : 0533F56E;
-0FAB : 06130149;
-0FAC : 0A130200;
-0FAD : E0EF020A;
-0FAE : 66E3963F;
-0FAF : 0E93FD3A;
-0FB0 : EBE32600;
-0FB1 : 854AF34E;
-0FB2 : B65FE0EF;
-0FB3 : 00394F83;
-0FB4 : 00294F03;
-0FB5 : 008F9493;
-0FB6 : 01E4E933;
-0FB7 : 40A90733;
-0FB8 : 00E037B3;
-0FB9 : 00179413;
-0FBA : 7179BF01;
-0FBB : D226D422;
-0FBC : CC52CE4E;
-0FBD : C85ACA56;
-0FBE : C462C65E;
-0FBF : D606C266;
-0FC0 : 2903D04A;
-0FC1 : 6A9D0005;
-0FC2 : 84AA6B41;
-0FC3 : 0A1389AE;
-0FC4 : 0C930FF0;
-0FC5 : 44110FF0;
-0FC6 : 4BB54C11;
-0FC7 : 021A8A93;
-0FC8 : 5C8C1B7D;
-0FC9 : C41DE199;
-0FCA : 854AA29D;
-0FCB : CCDFE0EF;
-0FCC : 1E63842A;
-0FCD : 5CC81405;
-0FCE : 00054703;
-0FCF : 16070D63;
-0FD0 : 00094783;
-0FD1 : 05879D63;
-0FD2 : 02098563;
-0FD3 : 08300813;
-0FD4 : 13071863;
-0FD5 : 50B24401;
-0FD6 : 54228522;
-0FD7 : 59025492;
-0FD8 : 4A6249F2;
-0FD9 : 4B424AD2;
-0FDA : 4C224BB2;
-0FDB : 61454C92;
-0FDC : 05938082;
-0FDD : 15630850;
-0FDE : A98310B7;
-0FDF : 85260304;
-0FE0 : 0534A623;
-0FE1 : 842A3581;
-0FE2 : 10051363;
-0FE3 : 01092903;
-0FE4 : 00494A03;
-0FE5 : 03FA7A93;
-0FE6 : 01548323;
-0FE7 : 4083BF6D;
-0FE8 : 069300B5;
-0FE9 : F2930E50;
-0FEA : 832303F0;
-0FEB : 05630054;
-0FEC : 03130ED7;
-0FED : 016302E0;
-0FEE : F3930E67;
-0FEF : 8593FDF2;
-0FF0 : B613FF83;
-0FF1 : 19630015;
-0FF2 : 483D0D36;
-0FF3 : 0D029C63;
-0FF4 : 04077413;
-0FF5 : A883C061;
-0FF6 : 4A030304;
-0FF7 : 771300D5;
-0FF8 : A6230BF7;
-0FF9 : 4E030514;
-0FFA : 0C9300D5;
-0FFB : 19630FF0;
-0FFC : 4F03094E;
-0FFD : 4E8301B5;
-0FFE : 1F9301A5;
-0FFF : E7B3008F;
-1000 : EFBD01DF;
-1001 : 00054C83;
-1002 : 00C92083;
-1003 : F2934585;
-1004 : 8693FBFC;
-1005 : 83B3FFF2;
-1006 : 46010376;
-1007 : 0FF00813;
-1008 : 00CA8333;
-1009 : 00034403;
-100A : 008508B3;
-100B : 0018CE83;
-100C : 0008CE03;
-100D : 008E9F13;
-100E : 01CF6FB3;
-100F : 6D63C1AD;
-1010 : 97930478;
-1011 : 8CB30013;
-1012 : 902300F0;
-1013 : 85FE01FC;
-1014 : 06050385;
-1015 : FD7616E3;
-1016 : 00054503;
-1017 : 04057293;
-1018 : 00028D63;
-1019 : 0693C999;
-101A : 0C930FF0;
-101B : E9630FF0;
-101C : 03860076;
-101D : 9023909E;
-101E : 177D0000;
-101F : 0FF77C93;
-1020 : 85264581;
-1021 : BC1FF0EF;
-1022 : 0CE3842A;
-1023 : AC23E805;
-1024 : B5D10204;
-1025 : F4EC89E3;
-1026 : 0FF00C93;
-1027 : 8AE3B7D5;
-1028 : BFDDFB6F;
-1029 : 000C9663;
-102A : 95FFE0EF;
-102B : EB4504E3;
-102C : C4E8557D;
-102D : 4411B54D;
-102E : 711DBFD9;
-102F : C8CACCA2;
-1030 : CAA6CE86;
-1031 : C4D2C6CE;
-1032 : C0DAC2D6;
-1033 : DC62DE5E;
-1034 : D86ADA66;
-1035 : 4581D66E;
-1036 : 00052983;
-1037 : E0EF842A;
-1038 : 892AEDBF;
-1039 : 20051F63;
-103A : 0009C703;
-103B : 18634791;
-103C : A50308F7;
-103D : E0EF00C9;
-103E : 8AAA979F;
-103F : 85224581;
-1040 : C11933ED;
-1041 : AAF5892A;
-1042 : 0109AB83;
-1043 : 025BCB03;
-1044 : 024BCA03;
-1045 : 008B1C13;
-1046 : 014C6633;
-1047 : FECA90E3;
-1048 : 023BCD03;
-1049 : 04934A01;
-104A : AD830400;
-104B : 1C9300C9;
-104C : 1963001A;
-104D : 8BB301AA;
-104E : D803019D;
-104F : 1FE3000B;
-1050 : A2C1FA08;
-1051 : 01F4F893;
-1052 : 00089363;
-1053 : 8E330489;
-1054 : 4F03009B;
-1055 : 4E83001E;
-1056 : 1593000E;
-1057 : E533008F;
-1058 : E0EF01D5;
-1059 : 8FB3F20F;
-105A : 8C2A019D;
-105B : 000FD503;
-105C : F12FE0EF;
-105D : F8AC14E3;
-105E : 0A050489;
-105F : 50FDB77D;
-1060 : 6B416A9D;
-1061 : 04142623;
-1062 : 0FF00A13;
-1063 : 0FF00493;
-1064 : 8A934BB5;
-1065 : 1B7D021A;
-1066 : 04040C13;
-1067 : 854E5C0C;
-1068 : A59FE0EF;
-1069 : 2C83F125;
-106A : CD8303C4;
-106B : 8A63000C;
-106C : C283160D;
-106D : 069300BC;
-106E : F3130E50;
-106F : 032303F2;
-1070 : 89630064;
-1071 : F39300DD;
-1072 : 88630082;
-1073 : 463D0003;
-1074 : 00C30863;
-1075 : C468557D;
-1076 : 453DA8E5;
-1077 : 10A31063;
-1078 : 04B44803;
-1079 : 04087893;
-107A : 0C089B63;
-107B : 040DFD13;
-107C : 0C0D0E63;
-107D : 03042E03;
-107E : 00DCCA03;
-107F : 0BFDFD93;
-1080 : 05C42623;
-1081 : 00DCCE83;
-1082 : 0FF00493;
-1083 : 0B4E9963;
-1084 : 01BCCF83;
-1085 : 01ACCF03;
-1086 : 008F9713;
-1087 : 01E767B3;
-1088 : C083EFD9;
-1089 : AD03000C;
-108A : 468500C9;
-108B : 03F0F293;
-108C : FFF28313;
-108D : 037304B3;
-108E : 0FF00393;
-108F : 85334301;
-1090 : 4603006A;
-1091 : 88330005;
-1092 : 4E0300CC;
-1093 : 48830018;
-1094 : 1E930008;
-1095 : EF33008E;
-1096 : CEB5011E;
-1097 : CC06CE1A;
-1098 : 0693E863;
-1099 : CA7A857A;
-109A : E1AFE0EF;
-109B : 00149713;
-109C : 00ED07B3;
-109D : D503C82A;
-109E : 8F930007;
-109F : C67E0014;
-10A0 : E02FE0EF;
-10A1 : 956342C2;
-10A2 : 46D204A2;
-10A3 : 40E244B2;
-10A4 : 03934372;
-10A5 : 03050FF0;
-10A6 : FB7313E3;
-10A7 : 0400FC93;
-10A8 : 000C8C63;
-10A9 : 9093CA91;
-10AA : 9D060014;
-10AB : 000D5383;
-10AC : 0FF00493;
-10AD : 00039563;
-10AE : F4931DFD;
-10AF : 45810FFD;
-10B0 : F0EF8522;
-10B1 : 0BE3983F;
-10B2 : BD2DEC05;
-10B3 : F3B48CE3;
-10B4 : 0FF00493;
-10B5 : 00E3B7ED;
-10B6 : BFDDFD6F;
-10B7 : 8566E491;
-10B8 : F26FE0EF;
-10B9 : 01450F63;
-10BA : 04B44483;
-10BB : 0014F593;
-10BC : EE0592E3;
-10BD : 85E2462D;
-10BE : 10EF8566;
-10BF : 1BE347B0;
-10C0 : 40F6EC05;
-10C1 : 44D64466;
-10C2 : 4A2649B6;
-10C3 : 4B064A96;
-10C4 : 5C625BF2;
-10C5 : 5D425CD2;
-10C6 : 854A5DB2;
-10C7 : 61254946;
-10C8 : 49118082;
-10C9 : 1101BFF9;
-10CA : CC22CE06;
-10CB : C64ECA26;
-10CC : C84AC452;
-10CD : 84AA411C;
-10CE : A9034A05;
-10CF : 854A0107;
-10D0 : EECFE0EF;
-10D1 : 00A90123;
-10D2 : 01A38121;
-10D3 : 44EC00A9;
-10D4 : 49838526;
-10D5 : E0EF0019;
-10D6 : 842AC63F;
-10D7 : 4089CC19;
-10D8 : 0FF47513;
-10D9 : 0080F363;
-10DA : 40F24509;
-10DB : 44D24462;
-10DC : 49B24942;
-10DD : 61054A22;
-10DE : 5C8C8082;
-10DF : E0EF4088;
-10E0 : 842A87BF;
-10E1 : 5CC8FD69;
-10E2 : 02000613;
-10E3 : E0EF85CA;
-10E4 : A283C8AF;
-10E5 : 81A30004;
-10E6 : 82E30142;
-10E7 : 4581FC09;
-10E8 : F0EF8526;
-10E9 : 09138A3F;
-10EA : 842A0209;
-10EB : B77D19FD;
-10EC : C3267175;
-10ED : C522C706;
-10EE : DECEC14A;
-10EF : DAD6DCD2;
-10F0 : D6DED8DA;
-10F1 : D2E6D4E2;
-10F2 : 04B54903;
-10F3 : 77934499;
-10F4 : 90630A09;
-10F5 : 2A031C07;
-10F6 : 842A0005;
-10F7 : 24834981;
-10F8 : 909300CA;
-10F9 : 82B30019;
-10FA : D3030014;
-10FB : 19630002;
-10FC : 47030E03;
-10FD : 4391000A;
-10FE : 1A771D63;
-10FF : 00E98E93;
-1100 : D933463D;
-1101 : 852202CE;
-1102 : 00290593;
-1103 : 939FF0EF;
-1104 : 106384AA;
-1105 : 2F831805;
-1106 : 42830304;
-1107 : 0F130074;
-1108 : 15930019;
-1109 : 87B3005F;
-110A : C47C40BF;
-110B : 0042F813;
-110C : 0A080A63;
-110D : FFB2F093;
-110E : 001403A3;
-110F : E0EF8522;
-1110 : ED49F8BF;
-1111 : 567D584C;
-1112 : E0EF8522;
-1113 : E559DDFF;
-1114 : 00842A83;
-1115 : 080A8863;
-1116 : 02442C83;
-1117 : 00042983;
-1118 : 02042C03;
-1119 : FB13540C;
-111A : 0808F00C;
-111B : CC62C84E;
-111C : 01910BA3;
-111D : D202D05A;
-111E : CEAED602;
-111F : B3DFE0EF;
-1120 : 0808ED31;
-1121 : 941FF0EF;
-1122 : 5B83E931;
-1123 : 230300AA;
-1124 : 23830104;
-1125 : 96930144;
-1126 : 85B3009B;
-1127 : B5330066;
-1128 : 063300D5;
-1129 : C80C0075;
-112A : 2703C850;
-112B : 0513010A;
-112C : E0EF0387;
-112D : 2883C88F;
-112E : 480C010A;
-112F : 85134850;
-1130 : E0EF0288;
-1131 : 4403C78F;
-1132 : 2E030074;
-1133 : 0808010A;
-1134 : 00146E93;
-1135 : 03DE00A3;
-1136 : C50935B9;
-1137 : A85584AA;
-1138 : B7010985;
-1139 : 010A2403;
-113A : 04000613;
-113B : 85224581;
-113C : 00CA2903;
-113D : A52FE0EF;
-113E : F8500A13;
-113F : FC000613;
-1140 : 00234F11;
-1141 : 00230144;
-1142 : 4A8102C4;
-1143 : 42854681;
-1144 : 04000C13;
-1145 : FC100893;
-1146 : 408F0733;
-1147 : 018407B3;
-1148 : 01178023;
-1149 : 000780A3;
-114A : 00028E63;
-114B : 001A9593;
-114C : 00B90FB3;
-114D : 000FD283;
-114E : 00028663;
-114F : 001A8093;
-1150 : 0FF0FA93;
-1151 : 00F70C33;
-1152 : 0082D993;
-1153 : 00578123;
-1154 : 013781A3;
-1155 : 01FC7C93;
-1156 : 97E30789;
-1157 : 9313FC0C;
-1158 : 03B3001A;
-1159 : D5030069;
-115A : 8B130003;
-115B : 7B930016;
-115C : ED150FFB;
-115D : 00268813;
-115E : 01A3854A;
-115F : 00A30354;
-1160 : E0EF0104;
-1161 : 5913CECF;
-1162 : 02230085;
-1163 : 02A302A4;
-1164 : 40BA0324;
-1165 : 490A442A;
-1166 : 5A6659F6;
-1167 : 5B465AD6;
-1168 : 5C265BB6;
-1169 : 85265C96;
-116A : 6149449A;
-116B : 86DE8082;
-116C : 0A93B7B5;
-116D : 46310404;
-116E : 080885D6;
-116F : 00197493;
-1170 : A58FE0EF;
-1171 : 1E048663;
-1172 : 04000513;
-1173 : 05A36B45;
-1174 : 4C0504A4;
-1175 : 0B136BC1;
-1176 : 080C021B;
-1177 : 8556462D;
-1178 : 00CA2C83;
-1179 : A34FE0EF;
-117A : EB634595;
-117B : 8EE20D85;
-117C : 0393451D;
-117D : 433D0390;
-117E : 00FEF893;
-117F : 03088613;
-1180 : DE938E76;
-1181 : F463004E;
-1182 : 861300C3;
-1183 : 0F130378;
-1184 : 06B30081;
-1185 : 071300AF;
-1186 : 8023FFF5;
-1187 : C31900C6;
-1188 : 0BC36263;
-1189 : 06070793;
-118A : 07E00F93;
-118B : 002780B3;
-118C : FBF08423;
-118D : 0C934681;
-118E : 8A630200;
-118F : 829300E6;
-1190 : 03330016;
-1191 : 43830054;
-1192 : 9F6303F3;
-1193 : 08B30793;
-1194 : 049300D4;
-1195 : 451D0084;
-1196 : 02000813;
-1197 : 00E56963;
-1198 : 06070C93;
-1199 : 002C85B3;
-119A : FA85C803;
-119B : 80230705;
-119C : 08850508;
-119D : FF1492E3;
-119E : F0EF8522;
-119F : 84AAA41F;
-11A0 : 12051363;
-11A1 : 0E130C05;
-11A2 : 18E30640;
-11A3 : 449DF5CC;
-11A4 : 0C89B709;
-11A5 : 78934E41;
-11A6 : 97130018;
-11A7 : 8EB3001E;
-11A8 : F4B300E8;
-11A9 : 5813017E;
-11AA : C0990018;
-11AB : 016ECEB3;
-11AC : 12E31E7D;
-11AD : D803FE0E;
-11AE : 1CE3000C;
-11AF : BF0DFC08;
-11B0 : BFD58EE2;
-11B1 : BF0D853A;
-11B2 : BF858696;
-11B3 : 03042F83;
-11B4 : 00591693;
-11B5 : 85B38522;
-11B6 : E0EF40DF;
-11B7 : 84AA8DFF;
-11B8 : EA0519E3;
-11B9 : E0EF8556;
-11BA : 67C1B20F;
-11BB : 89AA629D;
-11BC : 4BB54C3D;
-11BD : FFF78C93;
-11BE : 02128B13;
-11BF : 85525C0C;
-11C0 : CF8FE0EF;
-11C1 : 16E384AA;
-11C2 : 7393E805;
-11C3 : 85130FF9;
-11C4 : 04B3FFF3;
-11C5 : 23030375;
-11C6 : 208303C4;
-11C7 : 781300CA;
-11C8 : 06A30FF9;
-11C9 : 05A30133;
-11CA : 06230183;
-11CB : 0D230003;
-11CC : 0DA30003;
-11CD : 46810003;
-11CE : 89634581;
-11CF : 97130196;
-11D0 : 88B30014;
-11D1 : D68300E0;
-11D2 : 04850008;
-11D3 : 00BB0E33;
-11D4 : 000E4E83;
-11D5 : 0086DF13;
-11D6 : 01D30633;
-11D7 : 00D60023;
-11D8 : 01E600A3;
-11D9 : 86E6E291;
-11DA : 98E30585;
-11DB : 8A63FD75;
-11DC : 9F930196;
-11DD : 87B30014;
-11DE : D28301F0;
-11DF : 94630007;
-11E0 : 68130002;
-11E1 : 00230408;
-11E2 : 40850103;
-11E3 : 001A01A3;
-11E4 : 85224581;
-11E5 : CB0FF0EF;
-11E6 : 1CE384AA;
-11E7 : 197DDE05;
-11E8 : F4091EE3;
-11E9 : 4B91A82D;
-11EA : DF7515E3;
-11EB : 052405A3;
-11EC : 00297B13;
-11ED : 09634C85;
-11EE : 8E93000B;
-11EF : 463500C9;
-11F0 : 02CEDF33;
-11F1 : 001F0C93;
-11F2 : 852285E6;
-11F3 : D78FF0EF;
-11F4 : 10E384AA;
-11F5 : 8913DC05;
-11F6 : 19E3FFFC;
-11F7 : 5C0CEE09;
-11F8 : E0EF8552;
-11F9 : 84AAC16F;
-11FA : DA0515E3;
-11FB : 06135C48;
-11FC : 45810200;
-11FD : F53FD0EF;
-11FE : 85D65C48;
-11FF : E0EF462D;
-1200 : 2A8381AF;
-1201 : 440303C4;
-1202 : 4C0504B4;
-1203 : 01847993;
-1204 : 013A8623;
-1205 : 018A01A3;
-1206 : C783BBAD;
-1207 : C68301B5;
-1208 : 872A01A5;
-1209 : 00879293;
-120A : E533430D;
-120B : 1E6300D2;
-120C : C3830067;
-120D : C5830145;
-120E : 96130155;
-120F : 68330085;
-1210 : 18930076;
-1211 : 65330108;
-1212 : 80820115;
-1213 : C686715D;
-1214 : D65EC4A2;
-1215 : C2A6CE6E;
-1216 : DE4EC0CA;
-1217 : DA56DC52;
-1218 : D462D85A;
-1219 : D06AD266;
-121A : 00052903;
-121B : 842E8DAA;
-121C : 02F00093;
-121D : 05C00B93;
-121E : 00044783;
-121F : 04178363;
-1220 : 05778163;
-1221 : 000DA423;
-1222 : 000DAE23;
-1223 : 00044683;
-1224 : E56340FD;
-1225 : 442628D0;
-1226 : F8000793;
-1227 : 449640B6;
-1228 : 59F24906;
-1229 : 5AD25A62;
-122A : 5BB25B42;
-122B : 5C925C22;
-122C : 85A35D02;
-122D : 856E04FD;
-122E : 45814DF2;
-122F : E06F6161;
-1230 : 0405EFAF;
-1231 : 0405BF55;
-1232 : 00044803;
-1233 : 02F00713;
-1234 : FEE80BE3;
-1235 : 05C00893;
-1236 : FF1807E3;
-1237 : 02083B13;
-1238 : 0E930B0A;
-1239 : 0E130200;
-123A : 9B9302E0;
-123B : 91630019;
-123C : 87B30A09;
-123D : 90230174;
-123E : 8B630007;
-123F : 46812809;
-1240 : 02000093;
-1241 : 00169293;
-1242 : 00548C33;
-1243 : 000C5C83;
-1244 : 06858D36;
-1245 : FE1C88E3;
-1246 : 000D1663;
-1247 : 02E00A93;
-1248 : 015C9463;
-1249 : 003B6B13;
-124A : 02E00A13;
-124B : 00199313;
-124C : 006483B3;
-124D : FFE3D503;
-124E : 01450563;
-124F : 97E319FD;
-1250 : 462DFE09;
-1251 : 02000593;
-1252 : 040D8513;
-1253 : D0EFC66A;
-1254 : 4E32DF9F;
-1255 : 4D014CA1;
-1256 : 4C2D4B81;
-1257 : 15934AE5;
-1258 : 8633001E;
-1259 : 558300B4;
-125A : 0A130006;
-125B : C5B9001E;
-125C : 02000813;
-125D : 01058863;
-125E : 02E00713;
-125F : 02E59463;
-1260 : 033A0663;
-1261 : 003B6B13;
-1262 : BFD18E52;
-1263 : BF914B11;
-1264 : 01748F33;
-1265 : FFEF5F83;
-1266 : 01DF8463;
-1267 : F5CF9BE3;
-1268 : B7A119FD;
-1269 : 019D7763;
-126A : 0B3A1163;
-126B : 098C9863;
-126C : 9F63A019;
-126D : 6B13078C;
-126E : 4CAD003B;
-126F : 040DCE83;
-1270 : 0E500F13;
-1271 : 01EE9563;
-1272 : 80234F95;
-1273 : 47A105FD;
-1274 : 00FC9663;
-1275 : 002B9093;
-1276 : 0FF0FB93;
-1277 : 00CBF293;
-1278 : 876346B1;
-1279 : F31300D2;
-127A : 438D003B;
-127B : 00731463;
-127C : 002B6B13;
-127D : 002B7513;
-127E : F613E919;
-127F : C219001B;
-1280 : 010B6B13;
-1281 : 004BF593;
-1282 : 6B13C199;
-1283 : 85A3008B;
-1284 : 856E056D;
-1285 : EA6FF0EF;
-1286 : 04BDC803;
-1287 : 4411CD45;
-1288 : 16851963;
-1289 : 00487913;
-128A : 16091563;
-128B : A2954515;
-128C : 013A0663;
-128D : 003B6B13;
-128E : F949E2E3;
-128F : FB930B8A;
-1290 : 8A4E0FFB;
-1291 : 4D214CAD;
-1292 : 0893B781;
-1293 : F56307F0;
-1294 : 852E02B8;
-1295 : E2FFD0EF;
-1296 : 01051E13;
-1297 : 010E5593;
-1298 : FFF58E93;
-1299 : 010E9F13;
-129A : 010F5F93;
-129B : 0FE00793;
-129C : 002B6B13;
-129D : 01F7EA63;
-129E : 8513609D;
-129F : C62E01A0;
-12A0 : 58A010EF;
-12A1 : C9194732;
-12A2 : 003B6B13;
-12A3 : 05F00713;
-12A4 : 01AD88B3;
-12A5 : 04E88023;
-12A6 : B5FD0D05;
-12A7 : FBF70293;
-12A8 : 01029693;
-12A9 : 0106D313;
-12AA : 006AE563;
-12AB : 002BEB93;
-12AC : 0393B7C5;
-12AD : 9513F9F7;
-12AE : 56130103;
-12AF : E9E30105;
-12B0 : 0593FCCA;
-12B1 : 9813FE07;
-12B2 : EB930105;
-12B3 : 5713001B;
-12B4 : BF7D0108;
-12B5 : 00487713;
-12B6 : C883EF4D;
-12B7 : FD13006D;
-12B8 : 05E30108;
-12B9 : 4503F40D;
-12BA : 4A110009;
-12BB : 09451563;
-12BC : 010DAC03;
-12BD : 007DCE83;
-12BE : 008DAA83;
-12BF : 04CDAF83;
-12C0 : F00C7E13;
-12C1 : 01DE6F33;
-12C2 : 035DA023;
-12C3 : 03EDA223;
-12C4 : 03FDA423;
-12C5 : 854A85EE;
-12C6 : FB7FD0EF;
-12C7 : 000DA283;
-12C8 : 4C7D4981;
-12C9 : 00C2A483;
-12CA : 07F00C93;
-12CB : 0FF00D13;
-12CC : 00044583;
-12CD : 9A930405;
-12CE : DA130105;
-12CF : 77E3010A;
-12D0 : 0313E4BC;
-12D1 : 01E302F0;
-12D2 : 0393D86A;
-12D3 : 0DE305C0;
-12D4 : E863D67A;
-12D5 : 651D014C;
-12D6 : 01150513;
-12D7 : 4AE010EF;
-12D8 : 8763E905;
-12D9 : 959303A9;
-12DA : 86330019;
-12DB : 102300B4;
-12DC : 09850146;
-12DD : A483BF75;
-12DE : 0C93030D;
-12DF : F99303C9;
-12E0 : 85B31FF4;
-12E1 : F0EF013C;
-12E2 : A423C95F;
-12E3 : B77900AD;
-12E4 : 40B64519;
-12E5 : 44964426;
-12E6 : 59F24906;
-12E7 : 5AD25A62;
-12E8 : 5BB25B42;
-12E9 : 5C925C22;
-12EA : 4DF25D02;
-12EB : 80826161;
-12EC : C62A7179;
-12ED : D4220868;
-12EE : C42ED606;
-12EF : CE2E8432;
-12F0 : F4FFD0EF;
-12F1 : 04054463;
-12F2 : 13000713;
-12F3 : 00B3050A;
-12F4 : A28300A7;
-12F5 : 03130000;
-12F6 : 84631300;
-12F7 : 80230002;
-12F8 : 43B20002;
-12F9 : 00038463;
-12FA : 00038023;
-12FB : 00A305B3;
-12FC : 0075A023;
-12FD : 4601C419;
-12FE : 0028006C;
-12FF : 93FFE0EF;
-1300 : 50B2842A;
-1301 : 54228522;
-1302 : 80826145;
-1303 : BFD5442D;
-1304 : B0010113;
-1305 : 4F312623;
-1306 : 4E112E23;
-1307 : 4E812C23;
-1308 : 4E912A23;
-1309 : 4F212823;
-130A : 4F412423;
-130B : 4F512223;
-130C : 4F612023;
-130D : 4D712E23;
-130E : 4D812C23;
-130F : 49A5C62E;
-1310 : 7A13CD39;
-1311 : 842A03F6;
-1312 : 086C8932;
-1313 : 00688652;
-1314 : 8EBFE0EF;
-1315 : E12989AA;
-1316 : 45B244F2;
-1317 : 0093189C;
-1318 : C4DC2701;
-1319 : 0014A823;
-131A : D0261008;
-131B : BE1FF0EF;
-131C : 0283E511;
-131D : D36306B1;
-131E : 45190002;
-131F : 01C97313;
-1320 : 24030663;
-1321 : 4A91C529;
-1322 : 01551863;
-1323 : F0EF1008;
-1324 : 6A13F22F;
-1325 : C931008A;
-1326 : 00042023;
-1327 : 208389AA;
-1328 : 24034FC1;
-1329 : 24834F81;
-132A : 29034F41;
-132B : 2A034F01;
-132C : 2A834E81;
-132D : 2B034E41;
-132E : 2B834E01;
-132F : 2C034DC1;
-1330 : 854E4D81;
-1331 : 4EC12983;
-1332 : 50010113;
-1333 : 46038082;
-1334 : 76930261;
-1335 : 9A630116;
-1336 : 78132006;
-1337 : 17630049;
-1338 : 78932408;
-1339 : 8F630089;
-133A : CB030608;
-133B : 4B910004;
-133C : 177B1363;
-133D : 852685A2;
-133E : D0EFC004;
-133F : 489CDD5F;
-1340 : 45814679;
-1341 : 00278513;
-1342 : A3FFD0EF;
-1343 : 0104A283;
-1344 : 45814669;
-1345 : 02628513;
-1346 : A2FFD0EF;
-1347 : 0104A303;
-1348 : 02000393;
-1349 : 00730223;
-134A : 0B934898;
-134B : C0EF0087;
-134C : 85AAAEFF;
-134D : D0EF855E;
-134E : 4888BE9F;
-134F : 00A34585;
-1350 : 100802B5;
-1351 : DE2FF0EF;
-1352 : 440CF921;
-1353 : 4601CD81;
-1354 : E0EF8522;
-1355 : 2903D24F;
-1356 : 00930084;
-1357 : AA23FFF9;
-1358 : F91D0014;
-1359 : 008A7613;
-135A : 6A13C219;
-135B : 5C94040A;
-135C : 48114C76;
-135D : 2623C434;
-135E : C5030584;
-135F : 18630004;
-1360 : 5E421705;
-1361 : 02714903;
-1362 : 5F3658A2;
-1363 : F00E7A93;
-1364 : 012AEEB3;
-1365 : 03142023;
-1366 : 03D42223;
-1367 : 03E42423;
-1368 : 852685A2;
-1369 : D2BFD0EF;
-136A : 04042823;
-136B : DF83C004;
-136C : 47810064;
-136D : 0A934B01;
-136E : 12230544;
-136F : 082301F4;
-1370 : 08A30344;
-1371 : 22230204;
-1372 : 2C230404;
-1373 : DC5C0364;
-1374 : 20000613;
-1375 : 85564581;
-1376 : 96FFD0EF;
-1377 : 020A7293;
-1378 : EA028FE3;
-1379 : 01042903;
-137A : 01442A03;
-137B : 01496333;
-137C : EA0307E3;
-137D : 03242C23;
-137E : 03442E23;
-137F : 00A4D383;
-1380 : 4B85440C;
-1381 : 00939B13;
-1382 : 1E635C7D;
-1383 : 6C630E0A;
-1384 : 45010F2B;
-1385 : 11E3C02C;
-1386 : 7093E805;
-1387 : 80E31FF9;
-1388 : 8526E800;
-1389 : B4DFD0EF;
-138A : 450985AA;
-138B : E60586E3;
-138C : 017A1613;
-138D : 00995693;
-138E : 00D66833;
-138F : 01058633;
-1390 : C503C070;
-1391 : 46850014;
-1392 : C0EF85D6;
-1393 : 08E388DF;
-1394 : 4505E405;
-1395 : C0EFB591;
-1396 : 4C769C7F;
-1397 : C42A85AA;
-1398 : 00EC0513;
-1399 : ABBFD0EF;
-139A : 45A24E76;
-139B : 016E0513;
-139C : AAFFD0EF;
-139D : C5034AF6;
-139E : 85D60004;
-139F : 99FFF0EF;
-13A0 : 02000E93;
-13A1 : 01DA85A3;
-13A2 : 892A45F6;
-13A3 : 85264601;
-13A4 : B49FD0EF;
-13A5 : 4F854F76;
-13A6 : 000F0E23;
-13A7 : 000F0EA3;
-13A8 : 000F0F23;
-13A9 : 000F0FA3;
-13AA : 01F481A3;
-13AB : EA090CE3;
-13AC : 85CA4601;
-13AD : AB031008;
-13AE : E0EF0384;
-13AF : 1DE3BBCF;
-13B0 : 85DADC05;
-13B1 : D0EF8526;
-13B2 : BD41D33F;
-13B3 : DC0516E3;
-13B4 : 02614383;
-13B5 : 0103F713;
-13B6 : 7513EF21;
-13B7 : 03E30029;
-13B8 : F593E805;
-13B9 : 8FE30013;
-13BA : 451DE605;
-13BB : 85E2B375;
-13BC : 92BFF0EF;
-13BD : 0513C408;
-13BE : D0EF01CC;
-13BF : C8089A9F;
-13C0 : 00042A23;
-13C1 : 8522B555;
-13C2 : F03FD0EF;
-13C3 : 053385AA;
-13C4 : 37334169;
-13C5 : 0A3300A9;
-13C6 : 892A40EA;
-13C7 : 00BBF663;
-13C8 : EF8595E3;
-13C9 : B5FD4505;
-13CA : B5ED4509;
-13CB : B3AD4521;
-13CC : B39D4511;
-13CD : C4A2715D;
-13CE : DE4EC0CA;
-13CF : D85ADA56;
-13D0 : C2A6C686;
-13D1 : D65EDC52;
-13D2 : D266D462;
-13D3 : CE6ED06A;
-13D4 : A0238AAE;
-13D5 : 006C0006;
-13D6 : 8932842A;
-13D7 : D0EF8B36;
-13D8 : 89AABEDF;
-13D9 : 4983E141;
-13DA : 9D630314;
-13DB : 4B830609;
-13DC : FB930304;
-13DD : 8463001B;
-13DE : 48181A0B;
-13DF : 48545C1C;
-13E0 : 00B35C50;
-13E1 : 32B340F7;
-13E2 : 83330017;
-13E3 : 156340C6;
-13E4 : F3630053;
-13E5 : 89060120;
-13E6 : 05440C13;
-13E7 : 03635DFD;
-13E8 : 5C0C0409;
-13E9 : F3935C50;
-13EA : 99631FF5;
-13EB : 44B21403;
-13EC : 01761813;
-13ED : 0095D893;
-13EE : 00A4DA03;
-13EF : 01186CB3;
-13F0 : FFFA0513;
-13F1 : 01957A33;
-13F2 : 060A1363;
-13F3 : 00C5ED33;
-13F4 : 020D1A63;
-13F5 : 45854408;
-13F6 : 04A5E363;
-13F7 : 08A34B09;
-13F8 : 49890364;
-13F9 : 442640B6;
-13FA : 49064496;
-13FB : 5AD25A62;
-13FC : 5BB25B42;
-13FD : 5C925C22;
-13FE : 4DF25D02;
-13FF : 59F2854E;
-1400 : 80826161;
-1401 : 05042E03;
-1402 : 000E0663;
-1403 : D0EF8522;
-1404 : B7D1983F;
-1405 : 8522402C;
-1406 : DF3FD0EF;
-1407 : 1763BF6D;
-1408 : 498501B5;
-1409 : 033408A3;
-140A : BF6D89DE;
-140B : 402CC028;
-140C : D0EF8526;
-140D : D15D93FF;
-140E : 1FF00E93;
-140F : 00AA0CB3;
-1410 : 092EF063;
-1411 : 00A4D283;
-1412 : 00995D13;
-1413 : 01AA0633;
-1414 : 00C2F463;
-1415 : 41428D33;
-1416 : 0014C503;
-1417 : 866686EA;
-1418 : C0EF85D6;
-1419 : FD55E74F;
-141A : 03040303;
-141B : 02035163;
-141C : 04442383;
-141D : 41938533;
-141E : 01A57B63;
-141F : 00951813;
-1420 : 20000613;
-1421 : 853385E2;
-1422 : D0EF010A;
-1423 : 1493F8EF;
-1424 : 2883009D;
-1425 : 0933000B;
-1426 : 9AA64099;
-1427 : 00988A33;
-1428 : 014B2023;
-1429 : 03842E03;
-142A : 0CB35C4C;
-142B : BEB3009E;
-142C : 8F3301CC;
-142D : 2C2300BE;
-142E : 2E230394;
-142F : B5C503E4;
-1430 : 0B634070;
-1431 : 0F030396;
-1432 : C5030304;
-1433 : 5D630014;
-1434 : 4685000F;
-1435 : C0EF85E2;
-1436 : F521E84F;
-1437 : 03044F83;
-1438 : 07FFF713;
-1439 : 02E40823;
-143A : 0014C503;
-143B : 86664685;
-143C : C0EF85E2;
-143D : F515DE4F;
-143E : 05942223;
-143F : 07935C14;
-1440 : F0932000;
-1441 : 84B31FF6;
-1442 : 73634017;
-1443 : 84CA0099;
-1444 : 05B38626;
-1445 : 8556001C;
-1446 : F00FD0EF;
-1447 : 499DBF9D;
-1448 : 711DB5D1;
-1449 : C8CACCA2;
-144A : C2D6C6CE;
-144B : CE86C0DA;
-144C : C4D2CAA6;
-144D : DC62DE5E;
-144E : D86ADA66;
-144F : 8AAED66E;
-1450 : 0006A023;
-1451 : 842A086C;
-1452 : 8B368932;
-1453 : 9FFFD0EF;
-1454 : E15D89AA;
-1455 : 03144983;
-1456 : 0A099063;
-1457 : 03044783;
-1458 : 0027F093;
-1459 : 20008463;
-145A : 42914A72;
-145B : 000A4703;
-145C : 00570A63;
-145D : 03842303;
-145E : 012303B3;
-145F : 0063F463;
-1460 : FFF34913;
-1461 : 20000C13;
-1462 : 05440B93;
-1463 : 1FF00C93;
-1464 : 0D635D7D;
-1465 : 5C0C0409;
-1466 : F4935C50;
-1467 : 92631FF5;
-1468 : 5D831A04;
-1469 : 169300AA;
-146A : D8130176;
-146B : 85130095;
-146C : E8B3FFFD;
-146D : 7DB30106;
-146E : 91630115;
-146F : EE33080D;
-1470 : 1D6300C5;
-1471 : 4408000E;
-1472 : C9214581;
-1473 : 1A634F05;
-1474 : 4A0905E5;
-1475 : 034408A3;
-1476 : A8394989;
-1477 : 05042E83;
-1478 : 020E8C63;
-1479 : D0EF8522;
-147A : F16DFAAF;
-147B : 03044583;
-147C : 0405E613;
-147D : 02C40823;
-147E : 446640F6;
-147F : 494644D6;
-1480 : 4A964A26;
-1481 : 5BF24B06;
-1482 : 5CD25C62;
-1483 : 5DB25D42;
-1484 : 49B6854E;
-1485 : 80826125;
-1486 : 8522402C;
-1487 : FE8FE0EF;
-1488 : 1763B7E9;
-1489 : 498501A5;
-148A : 033408A3;
-148B : B7E94985;
-148C : 00842F83;
-148D : 9363C028;
-148E : C408000F;
-148F : 03040783;
-1490 : 0207D063;
-1491 : 45034070;
-1492 : 4685001A;
-1493 : C0EF85DE;
-1494 : F971D0CF;
-1495 : 03044083;
-1496 : 07F0F713;
-1497 : 02E40823;
-1498 : 8552402C;
-1499 : F0CFD0EF;
-149A : 8633D52D;
-149B : FF6300AD;
-149C : 5E83092C;
-149D : 549300AA;
-149E : 85B30099;
-149F : F463009D;
-14A0 : 84B300BE;
-14A1 : 450341BE;
-14A2 : 86A6001A;
-14A3 : C63285D6;
-14A4 : CCAFC0EF;
-14A5 : 2F03F949;
-14A6 : 46320444;
-14A7 : 40CF0FB3;
-14A8 : 029FF163;
-14A9 : 009F9793;
-14AA : 20000613;
-14AB : 00FA85B3;
-14AC : D0EF855E;
-14AD : 4703D66F;
-14AE : 72930304;
-14AF : 082307F7;
-14B0 : 9D930254;
-14B1 : 20830094;
-14B2 : 0933000B;
-14B3 : 9AEE41B9;
-14B4 : 01B08333;
-14B5 : 006B2023;
-14B6 : 03842383;
-14B7 : 48445C48;
-14B8 : 007D8833;
-14B9 : 01B836B3;
-14BA : 00A68DB3;
-14BB : 03042C23;
-14BC : 03B42E23;
-14BD : E663481C;
-14BE : 966301B4;
-14BF : F463009D;
-14C0 : 87C20107;
-14C1 : C81C84EE;
-14C2 : B561C844;
-14C3 : 04442383;
-14C4 : 03842283;
-14C5 : 03C42303;
-14C6 : 02C38463;
-14C7 : 67634844;
-14C8 : 9F630093;
-14C9 : 48080064;
-14CA : 00A2FC63;
-14CB : 001A4503;
-14CC : 85DE4685;
-14CD : C0EFC632;
-14CE : 4632BA0F;
-14CF : EE0515E3;
-14D0 : 5C14C070;
-14D1 : 1FF6F813;
-14D2 : 410C0DB3;
-14D3 : 01B97363;
-14D4 : 866E8DCA;
-14D5 : 853385D6;
-14D6 : D0EF010B;
-14D7 : 4883CBEF;
-14D8 : EE130304;
-14D9 : 0823F808;
-14DA : BFB103C4;
-14DB : B569499D;
-14DC : B2010113;
-14DD : 2C23006C;
-14DE : 2E234C81;
-14DF : 2A234C11;
-14E0 : 28234C91;
-14E1 : 26234D21;
-14E2 : 842A4D31;
-14E3 : FBEFD0EF;
-14E4 : 12051B63;
-14E5 : 03044783;
-14E6 : 0407F513;
-14E7 : 12050563;
-14E8 : 01879093;
-14E9 : 4180D293;
-14EA : D46344B2;
-14EB : 40700202;
-14EC : 0014C503;
-14ED : 05934685;
-14EE : C0EF0544;
-14EF : 832ABA0F;
-14F0 : 12634505;
-14F1 : 43831003;
-14F2 : F5130304;
-14F3 : 082307F3;
-14F4 : C0EF02A4;
-14F5 : C703C4AF;
-14F6 : 45910004;
-14F7 : 116389AA;
-14F8 : 852210B7;
-14F9 : FE5FD0EF;
-14FA : 0C051F63;
-14FB : 567D402C;
-14FC : D0EF8522;
-14FD : E961E37F;
-14FE : 06010893;
-14FF : 26010E13;
-1500 : 0114A623;
-1501 : 01C4A823;
-1502 : 02442F83;
-1503 : 00042E83;
-1504 : 02042F03;
-1505 : F793540C;
-1506 : 0808F00F;
-1507 : CC7AC876;
-1508 : 01F10BA3;
-1509 : D202D03E;
-150A : CEAED602;
-150B : B8DFD0EF;
-150C : 0808E959;
-150D : 991FE0EF;
-150E : A083E559;
-150F : C2830104;
-1510 : E3130040;
-1511 : 82230202;
-1512 : 45030060;
-1513 : A3830074;
-1514 : 67130104;
-1515 : 80A30015;
-1516 : A90302E3;
-1517 : 440C0104;
-1518 : 03490513;
-1519 : CBAFD0EF;
-151A : 480C4894;
-151B : 85134850;
-151C : D0EF0386;
-151D : A803CC8F;
-151E : 480C0104;
-151F : 05134850;
-1520 : D0EF0288;
-1521 : 4890CB8F;
-1522 : 051385CE;
-1523 : D0EF00C6;
-1524 : A983C90F;
-1525 : 08080104;
-1526 : 00098AA3;
-1527 : 8823488C;
-1528 : 88A30005;
-1529 : 89230005;
-152A : 89A30005;
-152B : E0EF0005;
-152C : E911E79F;
-152D : D0EF8526;
-152E : 4483FC9F;
-152F : F8930304;
-1530 : 0823FBF4;
-1531 : 20830314;
-1532 : 24034DC1;
-1533 : 24834D81;
-1534 : 29034D41;
-1535 : 29834D01;
-1536 : 01134CC1;
-1537 : 80824E01;
-1538 : 8526442C;
-1539 : F14FD0EF;
-153A : 2903FD79;
-153B : 460304C4;
-153C : 85CA00B9;
-153D : 02066693;
-153E : 00D905A3;
-153F : 40084410;
-1540 : CD8FD0EF;
-1541 : 0513480C;
-1542 : D0EF01C9;
-1543 : 85CEC14F;
-1544 : 01690513;
-1545 : C0AFD0EF;
-1546 : 09234805;
-1547 : 09A30009;
-1548 : 81A30009;
-1549 : B7790104;
-154A : CC221101;
-154B : 842ACE06;
-154C : E41FF0EF;
-154D : 006CE901;
-154E : D0EF8522;
-154F : E119E10F;
-1550 : 00042023;
-1551 : 446240F2;
-1552 : 80826105;
-1553 : C2A6715D;
-1554 : 086C84AE;
-1555 : C0CAC4A2;
-1556 : C686DE4E;
-1557 : DA56DC52;
-1558 : D65ED85A;
-1559 : D266D462;
-155A : 842AD06A;
-155B : D0EF89B2;
-155C : 892ADDCF;
-155D : 4903E57D;
-155E : 14630314;
-155F : 4A720E09;
-1560 : 47034791;
-1561 : 0863000A;
-1562 : 208308F7;
-1563 : 9C630504;
-1564 : 42830800;
-1565 : 4311000A;
-1566 : 00628663;
-1567 : 00098463;
-1568 : 498154FD;
-1569 : 01442383;
-156A : E6634814;
-156B : 9B630133;
-156C : F9630079;
-156D : 45030096;
-156E : 75930304;
-156F : E1990025;
-1570 : 899E84B6;
-1571 : 48814801;
-1572 : 2B035C10;
-1573 : 2C2303C4;
-1574 : 2E230304;
-1575 : EAB30314;
-1576 : 9B630134;
-1577 : 4A81180A;
-1578 : 03C42C83;
-1579 : 01442D03;
-157A : 03842303;
-157B : 019D6763;
-157C : 019D1F63;
-157D : FC634814;
-157E : 43830066;
-157F : 28230304;
-1580 : 2A230064;
-1581 : E9930194;
-1582 : 08230403;
-1583 : 75130334;
-1584 : C9211FF3;
-1585 : 402CAA21;
-1586 : 8522567D;
-1587 : C0DFD0EF;
-1588 : 892AD52D;
-1589 : 567DA83D;
-158A : 08C49C63;
-158B : 08999A63;
-158C : 00842A83;
-158D : 0000AC03;
-158E : 00408993;
-158F : 8A634489;
-1590 : 4C85060A;
-1591 : 85565D7D;
-1592 : 8B2A4B81;
-1593 : 852285AA;
-1594 : D0EF0B85;
-1595 : E763FB8F;
-1596 : 460902AC;
-1597 : 02C408A3;
-1598 : 40B64909;
-1599 : 44964426;
-159A : 5A6259F2;
-159B : 5B425AD2;
-159C : 5C225BB2;
-159D : 5D025C92;
-159E : 4906854A;
-159F : 80826161;
-15A0 : B7D18AAA;
-15A1 : 01A51763;
-15A2 : 08A34A05;
-15A3 : 49050344;
-15A4 : 0813BFC9;
-15A5 : 0AE3001B;
-15A6 : 0489FAA8;
-15A7 : 009C6763;
-15A8 : 0179A023;
-15A9 : 0159A223;
-15AA : 288309A1;
-15AB : 69E301CA;
-15AC : 4820FD15;
-15AD : 6563C004;
-15AE : A023209C;
-15AF : B7550009;
-15B0 : 01442E03;
-15B1 : 01042B83;
-15B2 : 01C9E663;
-15B3 : 013E1663;
-15B4 : 0174F463;
-15B5 : 8E4E8BA6;
-15B6 : 03742C23;
-15B7 : 03C42E23;
-15B8 : 01CBEEB3;
-15B9 : F60E8FE3;
-15BA : 001BBF13;
-15BB : 41EE04B3;
-15BC : FFFB8B13;
-15BD : 862685DA;
-15BE : D0EF8522;
-15BF : 85AAA96F;
-15C0 : 8552C028;
-15C1 : A6CFD0EF;
-15C2 : F713D929;
-15C3 : 5F831FFB;
-15C4 : DB2100AA;
-15C5 : 01749793;
-15C6 : 009B5093;
-15C7 : 0017E2B3;
-15C8 : FFFF8593;
-15C9 : 0055F333;
-15CA : 00A30AB3;
-15CB : 0AE34070;
-15CC : 0683F356;
-15CD : 45030304;
-15CE : 0593001A;
-15CF : DE630544;
-15D0 : 46850006;
-15D1 : C0EFC62E;
-15D2 : FD1D814F;
-15D3 : 03044383;
-15D4 : F51345B2;
-15D5 : 082307F3;
-15D6 : 450302A4;
-15D7 : 4685001A;
-15D8 : B0EF8656;
-15D9 : 892AF75F;
-15DA : 2223F105;
-15DB : BDD50554;
-15DC : 00AA5B83;
-15DD : 01666C33;
-15DE : 009B9A93;
-15DF : 0A0C0763;
-15E0 : 00163D13;
-15E1 : FFF60C93;
-15E2 : 41AB0B33;
-15E3 : 46818656;
-15E4 : 85DA8566;
-15E5 : BE13212D;
-15E6 : 8BAE0014;
-15E7 : 86568C2A;
-15E8 : 85134681;
-15E9 : 85B3FFF4;
-15EA : 291141C9;
-15EB : 0775EF63;
-15EC : 00BB9463;
-15ED : 07856B63;
-15EE : 41500EB3;
-15EF : 019EFF33;
-15F0 : 41E48FB3;
-15F1 : B733402C;
-15F2 : 89B301F4;
-15F3 : 2C234169;
-15F4 : 2E2303E4;
-15F5 : 84FE0364;
-15F6 : 40E989B3;
-15F7 : E00581E3;
-15F8 : 4D055CFD;
-15F9 : 03842283;
-15FA : 03C42303;
-15FB : 04099E63;
-15FC : 049AEC63;
-15FD : 03842F03;
-15FE : 03C42F83;
-15FF : 1FF4F293;
-1600 : 009F0733;
-1601 : 01E737B3;
-1602 : 01F780B3;
-1603 : 2E23DC18;
-1604 : 86E30214;
-1605 : 8552DC02;
-1606 : 958FD0EF;
-1607 : E2050FE3;
-1608 : 0094D593;
-1609 : 00B50AB3;
-160A : 440CBB65;
-160B : 8522ED81;
-160C : 9D4FE0EF;
-160D : 85AA4785;
-160E : E2F501E3;
-160F : 05E350FD;
-1610 : C408E415;
-1611 : BF59C02C;
-1612 : 005A8533;
-1613 : 03044883;
-1614 : 01553633;
-1615 : 415486B3;
-1616 : 00660833;
-1617 : 00D4B3B3;
-1618 : 2E23DC08;
-1619 : FB130304;
-161A : 84B60028;
-161B : 407989B3;
-161C : 020B0A63;
-161D : 01442C03;
-161E : 010C6863;
-161F : 010C1D63;
-1620 : 01042B83;
-1621 : 00ABF963;
-1622 : 0408EE13;
-1623 : 2A23C808;
-1624 : 08230104;
-1625 : 852203C4;
-1626 : 96CFE0EF;
-1627 : E51985AA;
-1628 : BF894481;
-1629 : D0EF8522;
-162A : 85AAD64F;
-162B : DD958EE3;
-162C : DABD75E3;
-162D : 01CA2E83;
-162E : DBD5F1E3;
-162F : B71DC02C;
-1630 : B3454945;
-1631 : DAA67119;
-1632 : C62AD2D6;
-1633 : 84B28AAE;
-1634 : 4601086C;
-1635 : D8CA0068;
-1636 : DCA2DE86;
-1637 : D4D2D6CE;
-1638 : CEDED0DA;
-1639 : CAE6CCE2;
-163A : C53FD0EF;
-163B : ED01892A;
-163C : C0804472;
-163D : 01C42C03;
-163E : 0B934C1C;
-163F : E263FFEC;
-1640 : A02302FB;
-1641 : 50F600FA;
-1642 : 54D65466;
-1643 : 5A2659B6;
-1644 : 5B065A96;
-1645 : 4C664BF6;
-1646 : 854A4CD6;
-1647 : 61095946;
-1648 : 4A038082;
-1649 : 40850004;
-164A : 021A1F63;
-164B : 4989D022;
-164C : 5CFD4481;
-164D : 85CE4C05;
-164E : D0EF1008;
-164F : 0163CD0F;
-1650 : 01630F95;
-1651 : E1110F85;
-1652 : 4C4C0485;
-1653 : E4E30985;
-1654 : A023FEB9;
-1655 : 4783009A;
-1656 : CC040044;
-1657 : 0017E093;
-1658 : 00140223;
-1659 : 4291B74D;
-165A : 045A1763;
-165B : 4A01584C;
-165C : 19634481;
-165D : 8522000A;
-165E : 00158B13;
-165F : A7CFD0EF;
-1660 : 85DAE545;
-1661 : 014408B3;
-1662 : 03C8CF03;
-1663 : FF8B8E13;
-1664 : 000B8C63;
-1665 : 001F7E93;
-1666 : 000E9363;
-1667 : 1BFD0485;
-1668 : 001F5F13;
-1669 : FFCB96E3;
-166A : 001A0F93;
-166B : 1FFFFA13;
-166C : FC0B91E3;
-166D : 540CBF79;
-166E : 10000337;
-166F : 44814981;
-1670 : 03C40B13;
-1671 : 0A134B89;
-1672 : 9963FFF3;
-1673 : 85220009;
-1674 : 00158C93;
-1675 : A24FD0EF;
-1676 : 85E6E921;
-1677 : 00044383;
-1678 : 013B0533;
-1679 : 03739463;
-167A : 00154603;
-167B : 00054703;
-167C : 00861693;
-167D : 00E6E833;
-167E : 00081363;
-167F : 09890485;
-1680 : F9931C7D;
-1681 : 12E31FF9;
-1682 : B7A1FC0C;
-1683 : C0EFC42E;
-1684 : 7533E95F;
-1685 : 45A20145;
-1686 : 0485E111;
-1687 : B7CD0991;
-1688 : B5D58952;
-1689 : B5C54909;
-168A : BDF1892A;
-168B : C3267175;
-168C : C62AC14A;
-168D : 893284AE;
-168E : 4601086C;
-168F : C5220068;
-1690 : DECEC706;
-1691 : AF7FD0EF;
-1692 : 1663842A;
-1693 : C4E91005;
-1694 : 458149F2;
-1695 : D04E1008;
-1696 : D0EFD402;
-1697 : 1463D5EF;
-1698 : 45851205;
-1699 : E0EF1008;
-169A : 1E63C84F;
-169B : C7031005;
-169C : 40910009;
-169D : 08634576;
-169E : 43810E17;
-169F : 06B342AD;
-16A0 : C6030075;
-16A1 : 83330006;
-16A2 : 03850074;
-16A3 : 00C30023;
-16A4 : FE5397E3;
-16A5 : 00B48813;
-16A6 : 02000593;
-16A7 : 00080023;
-16A8 : 07048C63;
-16A9 : FFF84883;
-16AA : 89E3187D;
-16AB : A0ADFEB8;
-16AC : 92930E85;
-16AD : 06B3001E;
-16AE : C3030055;
-16AF : C6030016;
-16B0 : 13930006;
-16B1 : E3330083;
-16B2 : 1A6300C3;
-16B3 : 05B3000E;
-16B4 : 98130133;
-16B5 : 58930105;
-16B6 : F4630108;
-16B7 : 1F930310;
-16B8 : E733010E;
-16B9 : 0293006F;
-16BA : 9693FFF7;
-16BB : D6130102;
-16BC : 65630106;
-16BD : 8E3308CF;
-16BE : 002300F4;
-16BF : 078500EE;
-16C0 : 8E1A4301;
-16C1 : 00154703;
-16C2 : FAEEE4E3;
-16C3 : 000E0363;
-16C4 : 94BE4781;
-16C5 : 00048023;
-16C6 : 02090F63;
-16C7 : A58349F2;
-16C8 : 854E0249;
-16C9 : 8D4FD0EF;
-16CA : E515842A;
-16CB : 0009CE83;
-16CC : 05134F0D;
-16CD : 89630430;
-16CE : 409101EE;
-16CF : 02700513;
-16D0 : 001E9463;
-16D1 : 06400513;
-16D2 : 03C98393;
-16D3 : C0EF951E;
-16D4 : 2023D55F;
-16D5 : 40BA00A9;
-16D6 : 442A8522;
-16D7 : 490A449A;
-16D8 : 614959F6;
-16D9 : 6F8D8082;
-16DA : 47814E01;
-16DB : 0F134E81;
-16DC : 89930FE0;
-16DD : 0093800F;
-16DE : B7697FF0;
-16DF : B7794781;
-16E0 : 00048023;
-16E1 : 4791BF51;
-16E2 : FEF50CE3;
-16E3 : B7E1842A;
-16E4 : 579366C1;
-16E5 : 17130185;
-16E6 : 53130185;
-16E7 : 83930085;
-16E8 : E2B3F006;
-16E9 : 75B300E7;
-16EA : 05220073;
-16EB : 00FF0837;
-16EC : 00B2E633;
-16ED : 010578B3;
-16EE : 01166533;
-16EF : 832A8082;
-16F0 : 873288AE;
-16F1 : 87AE882A;
-16F2 : 24069063;
-16F3 : 8E13629D;
-16F4 : FA6302E2;
-16F5 : 65C10CC5;
-16F6 : 0CB67063;
-16F7 : 10063513;
-16F8 : 00154693;
-16F9 : 00369293;
-16FA : 00565EB3;
-16FB : 4F839E76;
-16FC : 0393000E;
-16FD : 8F330200;
-16FE : 85B3005F;
-16FF : 8C6341E3;
-1700 : 583301E3;
-1701 : 97B301E3;
-1702 : 67B300B8;
-1703 : 173300F8;
-1704 : 183300B6;
-1705 : 529300B3;
-1706 : D3330107;
-1707 : 18930257;
-1708 : D6130107;
-1709 : 5E130108;
-170A : F5330108;
-170B : 8F9A0257;
-170C : 02660EB3;
-170D : 01051693;
-170E : 00DE6F33;
-170F : 01DF7C63;
-1710 : 0F939F3A;
-1711 : 6763FFF3;
-1712 : 756300EF;
-1713 : 0F9301DF;
-1714 : 9F3AFFE3;
-1715 : 41DF03B3;
-1716 : 0253D5B3;
-1717 : F7B30842;
-1718 : 86AE0253;
-1719 : 02B608B3;
-171A : 01079293;
-171B : 01085613;
-171C : 00566333;
-171D : 01137C63;
-171E : 00670EB3;
-171F : FFF58693;
-1720 : 00EEE663;
-1721 : 011EF463;
-1722 : FFE58693;
-1723 : 010F9713;
-1724 : 00D76533;
-1725 : 80824581;
-1726 : 010003B7;
-1727 : 65E342C1;
-1728 : 42E1F476;
-1729 : E211B791;
-172A : 6EC19002;
-172B : 0BD67963;
-172C : 10063593;
-172D : 0015C693;
-172E : 00369393;
-172F : 00765F33;
-1730 : 01EE07B3;
-1731 : 0007C503;
-1732 : 02000E13;
-1733 : 007502B3;
-1734 : 405E0EB3;
-1735 : 085E1C63;
-1736 : 40C882B3;
-1737 : 5E934585;
-1738 : D8B30107;
-1739 : 1E1303D2;
-173A : 5F930107;
-173B : 5393010E;
-173C : FF330108;
-173D : 854603D2;
-173E : 031F8333;
-173F : 010F1613;
-1740 : 00C3E7B3;
-1741 : 0067FC63;
-1742 : 851397BA;
-1743 : E763FFF8;
-1744 : F56300E7;
-1745 : 85130067;
-1746 : 97BAFFE8;
-1747 : 406782B3;
-1748 : 03D2DE33;
-1749 : 58930842;
-174A : FEB30108;
-174B : 867203D2;
-174C : 03CF86B3;
-174D : 010E9F93;
-174E : 01F8E333;
-174F : 00D37C63;
-1750 : 00670F33;
-1751 : FFFE0613;
-1752 : 00EF6663;
-1753 : 00DF7463;
-1754 : FFEE0613;
-1755 : 01051713;
-1756 : 00C76533;
-1757 : 0FB78082;
-1758 : 43C10100;
-1759 : F5F66CE3;
-175A : BF8943E1;
-175B : 01D61733;
-175C : 0058DFB3;
-175D : 01075F13;
-175E : 03EFD7B3;
-175F : 00535833;
-1760 : 01D898B3;
-1761 : 011863B3;
-1762 : 01D31833;
-1763 : 01071313;
-1764 : 01035613;
-1765 : 0103D693;
-1766 : 03EFF5B3;
-1767 : 05338E3E;
-1768 : 929302F6;
-1769 : EEB30105;
-176A : FC630056;
-176B : 9EBA00AE;
-176C : FFF78E13;
-176D : 00EEE763;
-176E : 00AEF563;
-176F : FFE78E13;
-1770 : 8FB39EBA;
-1771 : D8B340AE;
-1772 : 03C203EF;
-1773 : 0103D793;
-1774 : 03EFFF33;
-1775 : 03338546;
-1776 : 16130316;
-1777 : E5B3010F;
-1778 : FC6300C7;
-1779 : 95BA0065;
-177A : FFF88513;
-177B : 00E5E763;
-177C : 0065F563;
-177D : FFE88513;
-177E : 169395BA;
-177F : 82B3010E;
-1780 : E5B34065;
-1781 : BDE100A6;
-1782 : 16D5E063;
-1783 : F16367C1;
-1784 : B39304F6;
-1785 : C5131006;
-1786 : 17130013;
-1787 : 681D0035;
-1788 : 00E6D5B3;
-1789 : 02E80E13;
-178A : 00BE0EB3;
-178B : 000ECF03;
-178C : 02000793;
-178D : 00EF0FB3;
-178E : 41F785B3;
-178F : 03F79163;
-1790 : EAE34505;
-1791 : 3533E516;
-1792 : 451300C3;
-1793 : 80820015;
-1794 : 010002B7;
-1795 : E4E34741;
-1796 : 4761FC56;
-1797 : 52B3B7C9;
-1798 : 96B301F6;
-1799 : E3B300B6;
-179A : D73300D2;
-179B : 553301F8;
-179C : DF9301F3;
-179D : 5EB30103;
-179E : 981303F7;
-179F : 57930103;
-17A0 : 98B30108;
-17A1 : 6F3300B8;
-17A2 : 16330115;
-17A3 : 76B300B6;
-17A4 : 571303F7;
-17A5 : 88F6010F;
-17A6 : 03D78E33;
-17A7 : 01069293;
-17A8 : 00576533;
-17A9 : 01C57C63;
-17AA : 8893951E;
-17AB : 6763FFFE;
-17AC : 75630075;
-17AD : 889301C5;
-17AE : 951EFFEE;
-17AF : 41C50EB3;
-17B0 : 03FEDE33;
-17B1 : FFB30F42;
-17B2 : 82F203FE;
-17B3 : 03C78833;
-17B4 : 010F9693;
-17B5 : 010F5793;
-17B6 : 00D7E733;
-17B7 : 01077C63;
-17B8 : 0293971E;
-17B9 : 6763FFFE;
-17BA : 75630077;
-17BB : 02930107;
-17BC : 971EFFEE;
-17BD : 6EC108C2;
-17BE : 0058E533;
-17BF : FFFE8E13;
-17C0 : 01C676B3;
-17C1 : 01C57FB3;
-17C2 : 410703B3;
-17C3 : 58138241;
-17C4 : 07B30105;
-17C5 : 8F3302D8;
-17C6 : 82B302DF;
-17C7 : 571302CF;
-17C8 : 88B3010F;
-17C9 : 0E3300F2;
-17CA : 08330117;
-17CB : 736302C8;
-17CC : 987600FE;
-17CD : 010E5E93;
-17CE : 010E8FB3;
-17CF : 03F3E463;
-17D0 : D5F39AE3;
-17D1 : 00B31333;
-17D2 : 839365C1;
-17D3 : 76B3FFF5;
-17D4 : 9613007E;
-17D5 : 7F330106;
-17D6 : 07B3007F;
-17D7 : 458101E6;
-17D8 : D2F37BE3;
-17D9 : B33D157D;
-17DA : 45014581;
-17DB : 25038082;
-17DC : 80820D80;
-17DD : 14634701;
-17DE : 450100E6;
-17DF : 07B38082;
-17E0 : 070500E5;
-17E1 : 00E586B3;
-17E2 : 0007C283;
-17E3 : FFF6C303;
-17E4 : FE6283E3;
-17E5 : 40628533;
-17E6 : 71358082;
-17E7 : CB3EDAA6;
-17E8 : DCA2DE86;
-17E9 : C736D8CA;
-17EA : CD42C93A;
-17EB : 2483CF46;
-17EC : DC630D80;
-17ED : 05130005;
-17EE : C08808B0;
-17EF : 50F6557D;
-17F0 : 54D65466;
-17F1 : 610D5946;
-17F2 : 00938082;
-17F3 : 1C232080;
-17F4 : C62A0011;
-17F5 : 842ECE2A;
-17F6 : C1994281;
-17F7 : FFF58293;
-17F8 : 0174597D;
-17F9 : 8526006C;
-17FA : D016CA16;
-17FB : 01211D23;
-17FC : 224DC436;
-17FD : 01255663;
-17FE : 08B00313;
-17FF : 0064A023;
-1800 : 43B2DC5D;
-1801 : 00038023;
-1802 : F593BF5D;
-1803 : 47830FF5;
-1804 : C7910005;
-1805 : 00B79363;
-1806 : 05058082;
-1807 : C191BFCD;
-1808 : 80824501;
-1809 : DCA27119;
-180A : DE86DAA6;
-180B : 84AAD8CA;
-180C : 5D638432;
-180D : 03930006;
-180E : 202308B0;
-180F : 557D0075;
-1810 : 546650F6;
-1811 : 594654D6;
-1812 : 80826109;
-1813 : 20800793;
-1814 : 00F11C23;
-1815 : CE2EC62E;
-1816 : 40818636;
-1817 : C01986BA;
-1818 : FFF40093;
-1819 : 006C597D;
-181A : CA068526;
-181B : 1D23D006;
-181C : 220D0121;
-181D : 01255663;
-181E : 08B00293;
-181F : 0054A023;
-1820 : 4332D061;
-1821 : 00030023;
-1822 : 8736BF65;
-1823 : 862E86B2;
-1824 : 250385AA;
-1825 : F06F0D80;
-1826 : 1101F8FF;
-1827 : AB03C05A;
-1828 : CC220085;
-1829 : C452C64E;
-182A : CE06C256;
-182B : C84ACA26;
-182C : 0005AA83;
-182D : 8A32842E;
-182E : ED6389B6;
-182F : D7830766;
-1830 : F71300C5;
-1831 : C72D4807;
-1832 : 01442083;
-1833 : 4309448D;
-1834 : 021482B3;
-1835 : 8393498C;
-1836 : 8B2A0016;
-1837 : 40BA8AB3;
-1838 : 01538533;
-1839 : 0262C4B3;
-183A : 00A4F363;
-183B : F61384AA;
-183C : CE2D4007;
-183D : 855A85A6;
-183E : 037000EF;
-183F : C141892A;
-1840 : 8656480C;
-1841 : F14FC0EF;
-1842 : 00C45583;
-1843 : B7F5F693;
-1844 : 0806E813;
-1845 : 01041623;
-1846 : 015908B3;
-1847 : 41548E33;
-1848 : 01242823;
-1849 : 01142023;
-184A : 8B4EC844;
-184B : 01C42423;
-184C : 0169F363;
-184D : 40088B4E;
-184E : 865A85D2;
-184F : 2E832DF5;
-1850 : 2F830084;
-1851 : 45010004;
-1852 : 416E8F33;
-1853 : 016F8A33;
-1854 : 01E42423;
-1855 : 01442023;
-1856 : 446240F2;
-1857 : 494244D2;
-1858 : 4A2249B2;
-1859 : 4B024A92;
-185A : 80826105;
-185B : 855A8626;
-185C : 0B3000EF;
-185D : F14D892A;
-185E : 855A480C;
-185F : 578325CD;
-1860 : 49B100C4;
-1861 : 013B2023;
-1862 : 0407E713;
-1863 : 00E41623;
-1864 : B7D9557D;
-1865 : 00C5D783;
-1866 : D7067171;
-1867 : D326D522;
-1868 : CD52D14A;
-1869 : CB56CF4E;
-186A : C75EC95A;
-186B : C366C562;
-186C : DEEEC16A;
-186D : 0807F093;
-186E : 892E8A2A;
-186F : 843684B2;
-1870 : 04008563;
-1871 : 0105A283;
-1872 : 04029163;
-1873 : 04000593;
-1874 : 20232FB9;
-1875 : 282300A9;
-1876 : E50500A9;
-1877 : 20234AB1;
-1878 : 557D015A;
-1879 : 542A50BA;
-187A : 590A549A;
-187B : 4A6A49FA;
-187C : 4B4A4ADA;
-187D : 4C2A4BBA;
-187E : 4D0A4C9A;
-187F : 614D5DF6;
-1880 : 03138082;
-1881 : 2A230400;
-1882 : 03930069;
-1883 : 05130200;
-1884 : D2020300;
-1885 : 027104A3;
-1886 : 02A10523;
-1887 : 0C93C622;
-1888 : 6B1D0250;
-1889 : 6D1D6B9D;
-188A : 0A936C19;
-188B : 84260000;
-188C : 00044583;
-188D : 9263C199;
-188E : 0DB30B95;
-188F : 0F634094;
-1890 : 86260094;
-1891 : 85CA86EE;
-1892 : F0EF8552;
-1893 : 54FDE51F;
-1894 : 1A950B63;
-1895 : 06B35612;
-1896 : D23601B6;
-1897 : 00044703;
-1898 : 1A070363;
-1899 : 0493587D;
-189A : C8020014;
-189B : CA42CE02;
-189C : 09A3CC02;
-189D : D4820401;
-189E : C5834D85;
-189F : 46150004;
-18A0 : 12EB0513;
-18A1 : 48C22B69;
-18A2 : 00148413;
-18A3 : FE13E929;
-18A4 : 06630108;
-18A5 : 0E93000E;
-18A6 : 09A30200;
-18A7 : FF1305D1;
-18A8 : 06630088;
-18A9 : 0F93000F;
-18AA : 09A302B0;
-18AB : C78305F1;
-18AC : 00930004;
-18AD : 8F6302A0;
-18AE : 4DF20217;
-18AF : 45A58426;
-18B0 : 45294481;
-18B1 : 00044283;
-18B2 : 00140393;
-18B3 : FD028313;
-18B4 : 0665F763;
-18B5 : CE6EC885;
-18B6 : 0405A035;
-18B7 : 0613BF91;
-18B8 : 06B312EB;
-18B9 : 983340C5;
-18BA : E73300DD;
-18BB : C83A0108;
-18BC : B76184A2;
-18BD : 42184632;
-18BE : 00460693;
-18BF : 4963C636;
-18C0 : CE3A0207;
-18C1 : 00044E03;
-18C2 : 02E00E93;
-18C3 : 07DE1263;
-18C4 : 00144F03;
-18C5 : 02A00F93;
-18C6 : 03FF1C63;
-18C7 : 040944B2;
-18C8 : 8613408C;
-18C9 : C6320044;
-18CA : 0205C263;
-18CB : A089CA2E;
-18CC : 40E00833;
-18CD : 0028E893;
-18CE : C846CE42;
-18CF : 8433B7E1;
-18D0 : 448502AD;
-18D1 : 00640DB3;
-18D2 : BFAD841E;
-18D3 : BFF955FD;
-18D4 : CA020405;
-18D5 : 45814D81;
-18D6 : 43A94525;
-18D7 : 00044083;
-18D8 : 00140313;
-18D9 : FD008293;
-18DA : 06557363;
-18DB : FC0D90E3;
-18DC : 00044583;
-18DD : 8513460D;
-18DE : 2155134B;
-18DF : 4E42CD11;
-18E0 : 134B8693;
-18E1 : 40D50833;
-18E2 : 04000713;
-18E3 : 010718B3;
-18E4 : 011E6EB3;
-18E5 : C8760405;
-18E6 : 00044583;
-18E7 : 05134619;
-18E8 : 0493138D;
-18E9 : 04230014;
-18EA : 299502B1;
-18EB : 9E63C535;
-18EC : 40C2020A;
-18ED : F2934FB2;
-18EE : 81631000;
-18EF : 85130202;
-18F0 : C62A004F;
-18F1 : 85B35792;
-18F2 : D22E0137;
-18F3 : 87B3B58D;
-18F4 : 841A0275;
-18F5 : 85B34D85;
-18F6 : B7490057;
-18F7 : 007F8313;
-18F8 : FF837393;
-18F9 : 00838513;
-18FA : 0078BFE9;
-18FB : 09AC0693;
-18FC : 080C864A;
-18FD : 00978552;
-18FE : 00E70000;
-18FF : 5F7D0000;
-1900 : 11E389AA;
-1901 : 5983FDE5;
-1902 : 557D00C9;
-1903 : 0409F913;
-1904 : DC091AE3;
-1905 : B3F95512;
-1906 : 06930078;
-1907 : 864A09AC;
-1908 : 8552080C;
-1909 : BFE12A0D;
-190A : CC527179;
-190B : 8A3A499C;
-190C : D4224598;
-190D : CE4ED04A;
-190E : D606CA56;
-190F : C85AD226;
-1910 : 89AAC65E;
-1911 : 8932842E;
-1912 : D3638AB6;
-1913 : 87BA00E7;
-1914 : 00F92023;
-1915 : 04344083;
-1916 : 00008663;
-1917 : 00178293;
-1918 : 00592023;
-1919 : 00042303;
-191A : 02037393;
-191B : 00038863;
-191C : 00092483;
-191D : 00248513;
-191E : 00A92023;
-191F : F493400C;
-1920 : E8990065;
-1921 : 01940B13;
-1922 : 44505BFD;
-1923 : 00092683;
-1924 : 40D60833;
-1925 : 0704C363;
-1926 : 00042B03;
-1927 : 04344883;
-1928 : 020B7B93;
-1929 : 011036B3;
-192A : 060B9E63;
-192B : 04340613;
-192C : 854E85D6;
-192D : 57FD9A02;
-192E : 04F50863;
-192F : 00042083;
-1930 : 44814311;
-1931 : 0060F293;
-1932 : 00629B63;
-1933 : 00C42383;
-1934 : 00092903;
-1935 : 412384B3;
-1936 : 0004D363;
-1937 : 44084481;
-1938 : D563480C;
-1939 : 063300A5;
-193A : 94B240B5;
-193B : 04694B81;
-193C : 99635B7D;
-193D : 45010574;
-193E : 4685A809;
-193F : 85D6865A;
-1940 : 9A02854E;
-1941 : 01751E63;
-1942 : 50B2557D;
-1943 : 54925422;
-1944 : 49F25902;
-1945 : 4AD24A62;
-1946 : 4BB24B42;
-1947 : 80826145;
-1948 : B7A50485;
-1949 : 00D40EB3;
-194A : 03000F13;
-194B : 05EE81A3;
-194C : 04544F83;
-194D : 00168E13;
-194E : 01C40733;
-194F : 01A30689;
-1950 : B7AD05F7;
-1951 : 86224685;
-1952 : 854E85D6;
-1953 : 0DE39A02;
-1954 : 0B85FB65;
-1955 : 7179BF79;
-1956 : D226D422;
-1957 : CE4ED04A;
-1958 : CC52D606;
-1959 : C85ACA56;
-195A : 0185C883;
-195B : 07800793;
-195C : 842E84AA;
-195D : 89B68932;
-195E : 0117EE63;
-195F : 06200093;
-1960 : 04358693;
-1961 : 0110ED63;
-1962 : 20088963;
-1963 : 05800593;
-1964 : 1CB88563;
-1965 : 04240A93;
-1966 : 05140123;
-1967 : 8293A81D;
-1968 : F313F9D8;
-1969 : 46550FF2;
-196A : FE6666E3;
-196B : 1393651D;
-196C : 05930023;
-196D : 88331645;
-196E : 2A0300B3;
-196F : 8A020008;
-1970 : 0A93431C;
-1971 : 43900424;
-1972 : 00478693;
-1973 : 0123C314;
-1974 : 4F8504C4;
-1975 : 2E03AACD;
-1976 : 2E830004;
-1977 : 7F930007;
-1978 : 8F13080E;
-1979 : 8363004E;
-197A : A783020F;
-197B : 2023000E;
-197C : 629D01E7;
-197D : 0007D863;
-197E : 02D00313;
-197F : 40F007B3;
-1980 : 046401A3;
-1981 : 13F28393;
-1982 : A8A948A9;
-1983 : 000EA783;
-1984 : 040E7093;
-1985 : 01E72023;
-1986 : FC008DE3;
-1987 : 01079713;
-1988 : 41075793;
-1989 : 2F83B7F9;
-198A : 431C0004;
-198B : 080FF293;
-198C : 00478093;
-198D : 00028663;
-198E : 00172023;
-198F : A809439C;
-1990 : 040FF313;
-1991 : 00172023;
-1992 : FE030AE3;
-1993 : 0007D783;
-1994 : 0613639D;
-1995 : 839306F0;
-1996 : 846313F3;
-1997 : 48A910C8;
-1998 : 040401A3;
-1999 : 00442283;
-199A : 00542423;
-199B : 0002C763;
-199C : 00042303;
-199D : FFB37613;
-199E : E781C010;
-199F : 81638AB6;
-19A0 : 8AB60202;
-19A1 : 0317F5B3;
-19A2 : 853E1AFD;
-19A3 : 00B38A33;
-19A4 : 000A4803;
-19A5 : 0317D7B3;
-19A6 : 010A8023;
-19A7 : FF1574E3;
-19A8 : 936343A1;
-19A9 : 28830278;
-19AA : FB130004;
-19AB : 0D630018;
-19AC : 2E03000B;
-19AD : 2E830044;
-19AE : C7630104;
-19AF : 0F1301CE;
-19B0 : 8FA30300;
-19B1 : 1AFDFFEA;
-19B2 : 415686B3;
-19B3 : 874EC814;
-19B4 : 007086CA;
-19B5 : 852685A2;
-19B6 : D51FF0EF;
-19B7 : 19635A7D;
-19B8 : 557D0F45;
-19B9 : 542250B2;
-19BA : 59025492;
-19BB : 4A6249F2;
-19BC : 4B424AD2;
-19BD : 80826145;
-19BE : 00042E03;
-19BF : 020E6E93;
-19C0 : 01D42023;
-19C1 : 08936F1D;
-19C2 : 03930780;
-19C3 : 02A3150F;
-19C4 : 28030514;
-19C5 : 43080004;
-19C6 : 08087B13;
-19C7 : 0A93411C;
-19C8 : 1A630045;
-19C9 : 7E13000B;
-19CA : 06630408;
-19CB : 9E93000E;
-19CC : D7930107;
-19CD : 2023010E;
-19CE : 7F130157;
-19CF : 06630018;
-19D0 : 6F93000F;
-19D1 : 20230208;
-19D2 : 48C101F4;
-19D3 : 2083FB91;
-19D4 : F7130004;
-19D5 : C018FDF0;
-19D6 : 6A1DB721;
-19D7 : 13FA0393;
-19D8 : 48A1B77D;
-19D9 : 2883BDF5;
-19DA : 2A030004;
-19DB : 484C0007;
-19DC : 0808F813;
-19DD : 004A0513;
-19DE : 00080863;
-19DF : 2B03C308;
-19E0 : 2023000A;
-19E1 : A81100BB;
-19E2 : FA93C308;
-19E3 : 2B030408;
-19E4 : 88E3000A;
-19E5 : 1023FE0A;
-19E6 : 282300BB;
-19E7 : 8AB60004;
-19E8 : 2A83B73D;
-19E9 : 40500007;
-19EA : 8B134581;
-19EB : 2023004A;
-19EC : AA830167;
-19ED : 8556000A;
-19EE : C501209D;
-19EF : 41550733;
-19F0 : 2F83C058;
-19F1 : 28230044;
-19F2 : 01A301F4;
-19F3 : B7010404;
-19F4 : 86564814;
-19F5 : 852685CA;
-19F6 : 04E39982;
-19F7 : 2083F145;
-19F8 : F7130004;
-19F9 : E71D0020;
-19FA : 444844B2;
-19FB : EE955CE3;
-19FC : BDCD8526;
-19FD : 86564685;
-19FE : 852685CA;
-19FF : 02E39982;
-1A00 : 0A05EF65;
-1A01 : 00C42283;
-1A02 : 86334332;
-1A03 : 43E34062;
-1A04 : BFD9FECA;
-1A05 : 0A934A01;
-1A06 : 5B7D0194;
-1A07 : F593B7E5;
-1A08 : 962A0FF5;
-1A09 : 00C51463;
-1A0A : 80824501;
-1A0B : 00054783;
-1A0C : FEB78DE3;
-1A0D : B7FD0505;
-1A0E : 832AC215;
-1A0F : 67634685;
-1A10 : 56FD00B5;
-1A11 : FFF60713;
-1A12 : 95BA933A;
-1A13 : 00058383;
-1A14 : 00730023;
-1A15 : 9336167D;
-1A16 : FA6D95B6;
-1A17 : C5F98082;
-1A18 : FFC5A783;
-1A19 : CC221101;
-1A1A : 8413CE06;
-1A1B : D363FFC5;
-1A1C : 943E0007;
-1A1D : 2CA1C62A;
-1A1E : 13802803;
-1A1F : 1A634532;
-1A20 : 22230008;
-1A21 : 2C230004;
-1A22 : 44621280;
-1A23 : 610540F2;
-1A24 : 7363A481;
-1A25 : 20830304;
-1A26 : 06B30004;
-1A27 : 1A630014;
-1A28 : 260300D8;
-1A29 : 28030008;
-1A2A : 02B30048;
-1A2B : 20230016;
-1A2C : 22230054;
-1A2D : BFC10104;
-1A2E : 280380C2;
-1A2F : 04630048;
-1A30 : 7BE30008;
-1A31 : A683FF04;
-1A32 : 86330000;
-1A33 : 176300D0;
-1A34 : 2E030286;
-1A35 : 8EB30004;
-1A36 : A02301C6;
-1A37 : 8F3301D0;
-1A38 : 14E301D0;
-1A39 : 2F83FBE8;
-1A3A : 24030008;
-1A3B : 87B30048;
-1A3C : A02301DF;
-1A3D : A22300F0;
-1A3E : BF410080;
-1A3F : 00C47663;
-1A40 : 202348B1;
-1A41 : B7510115;
-1A42 : 00042283;
-1A43 : 00540333;
-1A44 : 00681963;
-1A45 : 00082383;
-1A46 : 00482803;
-1A47 : 005385B3;
-1A48 : 2223C00C;
-1A49 : A2230104;
-1A4A : B7850080;
-1A4B : 11018082;
-1A4C : 8493CA26;
-1A4D : CE060035;
-1A4E : FFC4F093;
-1A4F : CC22C84A;
-1A50 : 8493C64E;
-1A51 : 47B10080;
-1A52 : F663892A;
-1A53 : 44B104F4;
-1A54 : 04B4E563;
-1A55 : 2AA5854A;
-1A56 : 13800713;
-1A57 : 00072883;
-1A58 : 13800693;
-1A59 : E4298446;
-1A5A : 13C00993;
-1A5B : 0009A303;
-1A5C : 00031763;
-1A5D : 854A4581;
-1A5E : A023221D;
-1A5F : 85A600A9;
-1A60 : 2A31854A;
-1A61 : 116359FD;
-1A62 : 45310935;
-1A63 : 00A92023;
-1A64 : 2A3D854A;
-1A65 : DDE3A031;
-1A66 : 42B1FA04;
-1A67 : 00592023;
-1A68 : 40F24501;
-1A69 : 44D24462;
-1A6A : 49B24942;
-1A6B : 80826105;
-1A6C : 8833400C;
-1A6D : 46634095;
-1A6E : 462D0408;
-1A6F : 01067763;
-1A70 : 01042023;
-1A71 : C0049442;
-1A72 : 2E03A039;
-1A73 : 97630044;
-1A74 : A0230288;
-1A75 : 854A01C6;
-1A76 : 0F1328E5;
-1A77 : 0E9300B4;
-1A78 : 75130044;
-1A79 : 0FB3FF8F;
-1A7A : 0CE341D5;
-1A7B : 00B3FBD5;
-1A7C : 87B301F4;
-1A7D : A02340AE;
-1A7E : B76500F0;
-1A7F : 01C8A223;
-1A80 : 88A2BFD9;
-1A81 : B7854040;
-1A82 : 00350393;
-1A83 : FFC3F413;
-1A84 : FA850BE3;
-1A85 : 40A405B3;
-1A86 : 2051854A;
-1A87 : FB3515E3;
-1A88 : 1101B7AD;
-1A89 : CE06CC22;
-1A8A : C84ACA26;
-1A8B : C452C64E;
-1A8C : E9998432;
-1A8D : 40F24462;
-1A8E : 494244D2;
-1A8F : 4A2249B2;
-1A90 : 610585B2;
-1A91 : EEBFF06F;
-1A92 : F0EFEE09;
-1A93 : 4481E15F;
-1A94 : 446240F2;
-1A95 : 49B24942;
-1A96 : 85264A22;
-1A97 : 610544D2;
-1A98 : 8A2A8082;
-1A99 : 20B5892E;
-1A9A : 676389AA;
-1A9B : 57930085;
-1A9C : 84CA0015;
-1A9D : FC87EEE3;
-1A9E : 855285A2;
-1A9F : EB3FF0EF;
-1AA0 : D57984AA;
-1AA1 : F3638622;
-1AA2 : 864E0089;
-1AA3 : 852685CA;
-1AA4 : D89FB0EF;
-1AA5 : 855285CA;
-1AA6 : DC7FF0EF;
-1AA7 : 1141BF55;
-1AA8 : C226C422;
-1AA9 : 852E842A;
-1AAA : 2023C606;
-1AAB : 90EF1400;
-1AAC : 57FDB1BF;
-1AAD : 00F51863;
-1AAE : 14002083;
-1AAF : 00008463;
-1AB0 : 00142023;
-1AB1 : 442240B2;
-1AB2 : 01414492;
-1AB3 : 80828082;
-1AB4 : A7838082;
-1AB5 : 8513FFC5;
-1AB6 : D663FFC7;
-1AB7 : 95AA0007;
-1AB8 : 0005A283;
-1AB9 : 80829516;
-1ABA : 20746F4E;
-1ABB : 414D2061;
-1ABC : 20303858;
-1ABD : 72616F62;
-1ABE : 3F213F64;
-1ABF : 000A0A21;
-1AC0 : 3858414D;
-1AC1 : 65762030;
-1AC2 : 75252072;
-1AC3 : 2075252E;
-1AC4 : 6F776572;
-1AC5 : 66206B72;
-1AC6 : 7367616C;
-1AC7 : 34302520;
-1AC8 : 000A0A78;
-1AC9 : 2A2A0A0A;
-1ACA : 6548202A;
-1ACB : 2C6F6C6C;
-1ACC : 726F5720;
-1ACD : 2021646C;
-1ACE : 0A2A2A2A;
-1ACF : 3858414D;
-1AD0 : 69662030;
-1AD1 : 61776D72;
-1AD2 : 63206572;
-1AD3 : 69706D6F;
-1AD4 : 2064656C;
-1AD5 : 203A6E6F;
-1AD6 : 20766F4E;
-1AD7 : 32203131;
-1AD8 : 20313230;
-1AD9 : 313A3931;
-1ADA : 39353A32;
-1ADB : 5452000A;
-1ADC : 49203A43;
-1ADD : 53204332;
-1ADE : 73204144;
-1ADF : 6B637574;
-1AE0 : 776F6C20;
-1AE1 : 6F4E000A;
-1AE2 : 43545220;
-1AE3 : 74656420;
-1AE4 : 65746365;
-1AE5 : 74612064;
-1AE6 : 43324920;
-1AE7 : 64646120;
-1AE8 : 73736572;
-1AE9 : 25783020;
-1AEA : 0A783230;
-1AEB : 43545200;
-1AEC : 6D697420;
-1AED : 25203A65;
-1AEE : 2D753430;
-1AEF : 75323025;
-1AF0 : 3230252D;
-1AF1 : 30252075;
-1AF2 : 253A7532;
-1AF3 : 3A753230;
-1AF4 : 75323025;
-1AF5 : 6473000A;
-1AF6 : 64726163;
-1AF7 : 6165725F;
-1AF8 : 6C625F64;
-1AF9 : 3A6B636F;
-1AFA : 43524320;
-1AFB : 72726520;
-1AFC : 2820726F;
-1AFD : 6372637A;
-1AFE : 25203D20;
-1AFF : 29783430;
-1B00 : 6473000A;
-1B01 : 64726163;
-1B02 : 6163203A;
-1B03 : 72206472;
-1B04 : 766F6D65;
-1B05 : 000A6465;
-1B06 : 61636473;
-1B07 : 203A6472;
-1B08 : 003A7325;
-1B09 : 38302520;
-1B0A : 66200078;
-1B0B : 656C6961;
-1B0C : 65202C64;
-1B0D : 25207272;
-1B0E : 0A783230;
-1B0F : 63647300;
-1B10 : 3A647261;
-1B11 : 61657220;
-1B12 : 676E6964;
-1B13 : 20642520;
-1B14 : 74636573;
-1B15 : 7325726F;
-1B16 : 20746120;
-1B17 : 74207525;
-1B18 : 7025206F;
-1B19 : 6473000A;
-1B1A : 64726163;
-1B1B : 6572203A;
-1B1C : 6D5F6461;
-1B1D : 69746C75;
-1B1E : 20656C70;
-1B1F : 6F727265;
-1B20 : 30252072;
-1B21 : 000A7832;
-1B22 : 61636473;
-1B23 : 203A6472;
-1B24 : 64616572;
-1B25 : 6365735F;
-1B26 : 73726F74;
-1B27 : 6574203A;
-1B28 : 6E696D72;
-1B29 : 20657461;
-1B2A : 6D6D6F63;
-1B2B : 20646E61;
-1B2C : 6F727265;
-1B2D : 30252072;
-1B2E : 000A7832;
-1B2F : 61636473;
-1B30 : 203A6472;
-1B31 : 74697277;
-1B32 : 20676E69;
-1B33 : 73206425;
-1B34 : 6F746365;
-1B35 : 61207372;
-1B36 : 75252074;
-1B37 : 6F726620;
-1B38 : 7025206D;
-1B39 : 6473000A;
-1B3A : 64726163;
-1B3B : 6163203A;
-1B3C : 72206472;
-1B3D : 766F6D65;
-1B3E : 2D206465;
-1B3F : 49525720;
-1B40 : 4C204554;
-1B41 : 0A54534F;
-1B42 : 63647300;
-1B43 : 3A647261;
-1B44 : 69727720;
-1B45 : 6D5F6574;
-1B46 : 69746C75;
-1B47 : 20656C70;
-1B48 : 6F727265;
-1B49 : 30252072;
-1B4A : 000A7832;
-1B4B : 61636473;
-1B4C : 203A6472;
-1B4D : 74697277;
-1B4E : 72652065;
-1B4F : 3A726F72;
-1B50 : 32302520;
-1B51 : 73000A78;
-1B52 : 72616364;
-1B53 : 6E203A64;
-1B54 : 6163206F;
-1B55 : 64206472;
-1B56 : 63657465;
-1B57 : 0A646574;
-1B58 : 63647300;
-1B59 : 3A647261;
-1B5A : 444D4320;
-1B5B : 65722038;
-1B5C : 74726F70;
-1B5D : 6E752073;
-1B5E : 62617375;
-1B5F : 6320656C;
-1B60 : 20647261;
-1B61 : 25783028;
-1B62 : 000A2978;
-1B63 : 61636473;
-1B64 : 203A6472;
-1B65 : 444D4341;
-1B66 : 65203134;
-1B67 : 726F7272;
-1B68 : 32302520;
-1B69 : 73000A78;
-1B6A : 72616364;
-1B6B : 43203A64;
-1B6C : 3835444D;
-1B6D : 72726520;
-1B6E : 2520726F;
-1B6F : 0A783230;
-1B70 : 63647300;
-1B71 : 3A647261;
-1B72 : 444D4320;
-1B73 : 72652031;
-1B74 : 20726F72;
-1B75 : 78323025;
-1B76 : 6473000A;
-1B77 : 64726163;
-1B78 : 4D43203A;
-1B79 : 20363144;
-1B7A : 6F727265;
-1B7B : 30252072;
-1B7C : 000A7832;
-1B7D : 00445343;
-1B7E : 61636473;
-1B7F : 203A6472;
-1B80 : 74697773;
-1B81 : 64656863;
-1B82 : 206F7420;
-1B83 : 68676968;
-1B84 : 65707320;
-1B85 : 000A6465;
-1B86 : 00444943;
-1B87 : 61636473;
-1B88 : 203A6472;
-1B89 : 63207325;
-1B8A : 20647261;
-1B8B : 6E756F66;
-1B8C : 63202C64;
-1B8D : 63617061;
-1B8E : 20797469;
-1B8F : 73207525;
-1B90 : 6F746365;
-1B91 : 000A7372;
-1B92 : 6E6B6E75;
-1B93 : 006E776F;
-1B94 : 4D2F4453;
-1B95 : 5300434D;
-1B96 : 2F434844;
-1B97 : 43584453;
-1B98 : 4D4D652F;
-1B99 : 00000043;
-1B9A : 00006E48;
-1B9B : 00006E50;
-1B9C : 00006E57;
-1B9D : 00005000;
-1B9E : 00C00800;
-1B9F : 400050B8;
-1BA0 : 00006000;
-1BA1 : 00801000;
-1BA2 : 40000000;
-1BA3 : 00008000;
-1BA4 : 00C04000;
-1BA5 : 400010B8;
-1BA6 : FFFFFFFF;
-1BA7 : 00000000;
-1BA8 : 00000000;
-1BA9 : 38434241;
-1BAA : 41003030;
-1BAB : 30384342;
-1BAC : 6F282000;
-1BAD : 6E696C6E;
-1BAE : 000A2965;
-1BAF : 666F2820;
-1BB0 : 6E696C66;
-1BB1 : 000A2965;
-1BB2 : 61636473;
-1BB3 : 203A6472;
-1BB4 : 76206F6E;
-1BB5 : 6D756C6F;
-1BB6 : 6F662065;
-1BB7 : 0A646E75;
-1BB8 : 63647300;
-1BB9 : 3A647261;
-1BBA : 6C6F7620;
-1BBB : 20656D75;
-1BBC : 6E756F66;
-1BBD : 6C202C64;
-1BBE : 6C656261;
-1BBF : 73252220;
-1BC0 : 76202C22;
-1BC1 : 64696C6F;
-1BC2 : 38302520;
-1BC3 : 73000A78;
-1BC4 : 72616364;
-1BC5 : 25203A64;
-1BC6 : 75252F75;
-1BC7 : 756C6320;
-1BC8 : 72657473;
-1BC9 : 72662073;
-1BCA : 202C6565;
-1BCB : 73756C63;
-1BCC : 73726574;
-1BCD : 25203D20;
-1BCE : 79622075;
-1BCF : 0A736574;
-1BD0 : 43424100;
-1BD1 : 7375622D;
-1BD2 : 736F6820;
-1BD3 : 00203A74;
-1BD4 : 322E2D25;
-1BD5 : 00632573;
-1BD6 : 73257325;
-1BD7 : 63626100;
-1BD8 : 6B736964;
-1BD9 : 2D25203A;
-1BDA : 3D207333;
-1BDB : 0A732520;
-1BDC : 63626100;
-1BDD : 6B736964;
-1BDE : 2D25203A;
-1BDF : 21207333;
-1BE0 : 6C696620;
-1BE1 : 6F742065;
-1BE2 : 7266206F;
-1BE3 : 656D6761;
-1BE4 : 6465746E;
-1BE5 : 6977202C;
-1BE6 : 62206C6C;
-1BE7 : 6C732065;
-1BE8 : 000A776F;
-1BE9 : 6362612F;
-1BEA : 6B736964;
-1BEB : 612F002F;
-1BEC : 69646362;
-1BED : 002E6B73;
-1BEE : 000071EC;
-1BEF : 00006FA4;
-1BF0 : 00006FAE;
-1BF1 : 00006FAC;
-1BF2 : 00000000;
-1BF3 : 05002D00;
-1BF4 : 00100228;
-1BF5 : 00006F6D;
-1BF6 : 0A002C02;
-1BF7 : 00100250;
-1BF8 : 0000666D;
-1BF9 : 0F8A2E02;
-1BFA : 001A024D;
-1BFB : 00006673;
-1BFC : EEE02405;
-1BFD : 014010EE;
-1BFE : 00006468;
-1BFF : 459076EB;
-1C00 : 54414658;
-1C01 : 00202020;
-1C02 : 33544146;
-1C03 : 20202032;
-1C04 : 3C3A2A00;
-1C05 : 3F227C3E;
-1C06 : 2C2B007F;
-1C07 : 5D5B3D3B;
-1C08 : 05030100;
-1C09 : 100E0907;
-1C0A : 18161412;
-1C0B : 01001E1C;
-1C0C : 03030202;
-1C0D : 04040303;
-1C0E : 04040404;
-1C0F : 05050404;
-1C10 : 05050505;
-1C11 : 05050505;
-1C12 : 05050505;
-1C13 : 06060505;
-1C14 : 06060606;
-1C15 : 06060606;
-1C16 : 06060606;
-1C17 : 06060606;
-1C18 : 06060606;
-1C19 : 06060606;
-1C1A : 06060606;
-1C1B : 07070606;
-1C1C : 07070707;
-1C1D : 07070707;
-1C1E : 07070707;
-1C1F : 07070707;
-1C20 : 07070707;
-1C21 : 07070707;
-1C22 : 07070707;
-1C23 : 07070707;
-1C24 : 07070707;
-1C25 : 07070707;
-1C26 : 07070707;
-1C27 : 07070707;
-1C28 : 07070707;
-1C29 : 07070707;
-1C2A : 07070707;
-1C2B : 08080707;
-1C2C : 08080808;
-1C2D : 08080808;
-1C2E : 08080808;
-1C2F : 08080808;
-1C30 : 08080808;
-1C31 : 08080808;
-1C32 : 08080808;
-1C33 : 08080808;
-1C34 : 08080808;
-1C35 : 08080808;
-1C36 : 08080808;
-1C37 : 08080808;
-1C38 : 08080808;
-1C39 : 08080808;
-1C3A : 08080808;
-1C3B : 08080808;
-1C3C : 08080808;
-1C3D : 08080808;
-1C3E : 08080808;
-1C3F : 08080808;
-1C40 : 08080808;
-1C41 : 08080808;
-1C42 : 08080808;
-1C43 : 08080808;
-1C44 : 08080808;
-1C45 : 08080808;
-1C46 : 08080808;
-1C47 : 08080808;
-1C48 : 08080808;
-1C49 : 08080808;
-1C4A : 08080808;
-1C4B : 2D230808;
-1C4C : 00202B30;
-1C4D : 004C6C68;
-1C4E : 45676665;
-1C4F : 30004746;
-1C50 : 34333231;
-1C51 : 38373635;
-1C52 : 43424139;
-1C53 : 00464544;
-1C54 : 33323130;
-1C55 : 37363534;
-1C56 : 62613938;
-1C57 : 66656463;
-1C58 : 00000000;
-1C59 : 000065C0;
-1C5A : 000065D6;
-1C5B : 00006594;
-1C5C : 00006594;
-1C5D : 00006594;
-1C5E : 00006594;
-1C5F : 000065D6;
-1C60 : 00006594;
-1C61 : 00006594;
-1C62 : 00006594;
-1C63 : 00006594;
-1C64 : 00006766;
-1C65 : 00006626;
-1C66 : 000066F8;
-1C67 : 00006594;
-1C68 : 00006594;
-1C69 : 000067A2;
-1C6A : 00006594;
-1C6B : 00006626;
-1C6C : 00006594;
-1C6D : 00006594;
-1C6E : 00006704;
-1C6F : 00000001;
-1C70 : 00000000;
-1C71 : 00000000;
-1C72 : 00000000;
-1C73 : 00000000;
-1C74 : 00000000;
-1C75 : 00000000;
-1C76 : 00000000;
-1C77 : 00000000;
-1C78 : 00000000;
-1C79 : 00000000;
-1C7A : 00000000;
-1C7B : 6362612F;
-1C7C : 6B736964;
-1C7D : 3030382E;
-1C7E : 0000002F;
-1C7F : 00000000;
-1C80 : 00000000;
-1C81 : 00000000;
-1C82 : 00000000;
-1C83 : 00000105;
-1C84 : 00007FBF;
-1C85 : 00000000;
-1C86 : D3030300;
-1C87 : 0000257E;
-1C88 : 00000000;
-1C89 : 000025A2;
-1C8A : 00000000;
-1C8B : 00000000;
-1C8C : 00000000;
-1C8D : 00002590;
-1C8E : 00000000;
-1C8F : 00000000;
-1C90 : 00000000;
-1C91 : 00000000;
-1C92 : 00000000;
-1C93 : 00000000;
-1C94 : 00000000;
-1C95 : 00000000;
-1C96 : 00000000;
-1C97 : 00000000;
-1C98 : 00000000;
-1C99 : 00000000;
-1C9A : 00000000;
-1C9B : 00000000;
-1C9C : 00000000;
-1C9D : 00000000;
-1C9E : 00000000;
-1C9F : 00000000;
-1CA0 : 00000000;
-1CA1 : 00000000;
-1CA2 : 00000000;
-1CA3 : 00000000;
-1CA4 : 00000000;
-1CA5 : 00000000;
-1CA6 : 00000000;
-1CA7 : 00000000;
-[1CA8..1FFF] : 00;
+0145 : 10EF239D;
+0146 : B7ED2730;
+0147 : 85AA862E;
+0148 : 1141651D;
+0149 : C7850513;
+014A : 2C9DC606;
+014B : 90802783;
+014C : 0017F093;
+014D : FE008CE3;
+014E : C01026F3;
+014F : 1908B2B7;
+0150 : 0FF28313;
+0151 : C0102773;
+0152 : 40D703B3;
+0153 : FE737CE3;
+0154 : 878B55FD;
+0155 : 90020605;
+0156 : 0293BFFD;
+0157 : A7830E80;
+0158 : 83130002;
+0159 : A0230017;
+015A : 73930062;
+015B : 966301F3;
+015C : 05130003;
+015D : 002302E0;
+015E : 808290A0;
+015F : 1141651D;
+0160 : C8D50513;
+0161 : 3F59C606;
+0162 : 1141651D;
+0163 : C9850513;
+0164 : 3769C606;
+0165 : CE061101;
+0166 : CA26CC22;
+0167 : C64EC84A;
+0168 : C256C452;
+0169 : C0102773;
+016A : 0EE02623;
+016B : FD100093;
+016C : 0610078B;
+016D : 6571429D;
+016E : 20050513;
+016F : 80502423;
+0170 : 631D22AD;
+0171 : D0030513;
+0172 : 23832245;
+0173 : F4139080;
+0174 : DC650013;
+0175 : 078B54DD;
+0176 : 45990690;
+0177 : 80B02423;
+0178 : 068B567D;
+0179 : F81306C0;
+017A : 0CE30206;
+017B : 4895FE08;
+017C : 81102423;
+017D : 3BA010EF;
+017E : 80002903;
+017F : 385849B7;
+0180 : 14D98A13;
+0181 : 0D490063;
+0182 : 85136F9D;
+0183 : 2AA9CACF;
+0184 : 0513671D;
+0185 : 2A89CE87;
+0186 : 111117B7;
+0187 : 443322B7;
+0188 : 40001537;
+0189 : 89934401;
+018A : 89131117;
+018B : 04932112;
+018C : 6A1D0B85;
+018D : 00B34AA1;
+018E : 13130334;
+018F : 83B30024;
+0190 : 05130064;
+0191 : 0405CFAA;
+0192 : 012085B3;
+0193 : 00B3A023;
+0194 : 12E32A81;
+0195 : 4529FF54;
+0196 : 490128CD;
+0197 : 159349A1;
+0198 : 86330029;
+0199 : 420C00B4;
+019A : CFAA0513;
+019B : 2A0D0905;
+019C : FF3917E3;
+019D : 8513669D;
+019E : 20FDCC16;
+019F : 04934811;
+01A0 : A0238080;
+01A1 : 22DD0104;
+01A2 : 23C020EF;
+01A3 : A023488D;
+01A4 : 10EF0114;
+01A5 : 10EF0640;
+01A6 : 4E097AB0;
+01A7 : 01C4A023;
+01A8 : 76E010EF;
+01A9 : A0234E85;
+01AA : 262301D4;
+01AB : 2423B800;
+01AC : 40F28000;
+01AD : 44D24462;
+01AE : 49B24942;
+01AF : 4A924A22;
+01B0 : 80826105;
+01B1 : 80402A83;
+01B2 : 05136F1D;
+01B3 : DE13CC4F;
+01B4 : 9E93010A;
+01B5 : D693010A;
+01B6 : 7613010E;
+01B7 : D5930FFE;
+01B8 : 287D018A;
+01B9 : 4785B735;
+01BA : 00A79533;
+01BB : FFF54293;
+01BC : 0655050B;
+01BD : 02938082;
+01BE : 872A0C80;
+01BF : 0002A503;
+01C0 : 414166B7;
+01C1 : 72068393;
+01C2 : 00E50333;
+01C3 : 0063FC63;
+01C4 : C6061141;
+01C5 : 1E9050EF;
+01C6 : C10C45B1;
+01C7 : 557D40B2;
+01C8 : 80820141;
+01C9 : 0062A023;
+01CA : D7378082;
+01CB : 478D3216;
+01CC : 94870313;
+01CD : 02A782B3;
+01CE : 02653533;
+01CF : 00A283B3;
+01D0 : FFF38593;
+01D1 : 90B02223;
+01D2 : 27838082;
+01D3 : F2939080;
+01D4 : 9CE30107;
+01D5 : 4329FE02;
+01D6 : 00651563;
+01D7 : 002343B5;
+01D8 : 00239070;
+01D9 : 808290A0;
+01DA : C4221141;
+01DB : 842AC606;
+01DC : 00044503;
+01DD : 40B2E509;
+01DE : 01414422;
+01DF : 04058082;
+01E0 : B7FD37E9;
+01E1 : 862A7175;
+01E2 : 850A86AE;
+01E3 : 08000593;
+01E4 : 50EFC706;
+01E5 : 850A2870;
+01E6 : 40BA3FC1;
+01E7 : 80826149;
+01E8 : D22E7139;
+01E9 : CE06104C;
+01EA : D636D432;
+01EB : DA3ED83A;
+01EC : DE46DC42;
+01ED : 37F9C62E;
+01EE : 612140F2;
+01EF : 07938082;
+01F0 : 75330640;
+01F1 : 472902F5;
+01F2 : 02E552B3;
+01F3 : 02E573B3;
+01F4 : 00429313;
+01F5 : 007305B3;
+01F6 : 0FF5F513;
+01F7 : 11418082;
+01F8 : C422C606;
+01F9 : 0793C226;
+01FA : 66C10340;
+01FB : A8F02423;
+01FC : 0E134F45;
+01FD : 8E930800;
+01FE : 0613F866;
+01FF : 2083A840;
+0200 : F2930006;
+0201 : 82630400;
+0202 : 04130402;
+0203 : 078B0800;
+0204 : 63350804;
+0205 : A8000493;
+0206 : 08030393;
+0207 : 0074A023;
+0208 : 0804078B;
+0209 : 75934208;
+020A : 45010805;
+020B : 671DC99D;
+020C : 06800593;
+020D : D6270513;
+020E : 040B37A5;
+020F : 68410804;
+0210 : F8480893;
+0211 : 0114A023;
+0212 : 078BA821;
+0213 : 2023080E;
+0214 : 1F7DA9D0;
+0215 : FA0F13E3;
+0216 : 85136F9D;
+0217 : 3789D4AF;
+0218 : 40B2557D;
+0219 : 44924422;
+021A : 80820141;
+021B : D6067179;
+021C : 116337BD;
+021D : 07932005;
+021E : 870B0800;
+021F : 07130807;
+0220 : 0693A800;
+0221 : C3140820;
+0222 : 0807878B;
+0223 : 829360B5;
+0224 : 20231800;
+0225 : 03130057;
+0226 : 08130800;
+0227 : 4399F000;
+0228 : 0803070B;
+0229 : A8000893;
+022A : 0108A023;
+022B : 0803060B;
+022C : A8504583;
+022D : 0E330070;
+022E : 002300A6;
+022F : 050500BE;
+0230 : FE7510E3;
+0231 : 0803068B;
+0232 : F8400513;
+0233 : 00A8A023;
+0234 : 0803078B;
+0235 : 00C14F83;
+0236 : 00D14303;
+0237 : D79340A9;
+0238 : 5813004F;
+0239 : 87330043;
+023A : 4E830217;
+023B : F693A850;
+023C : 789300FF;
+023D : FF1300F3;
+023E : 67910FFE;
+023F : CC02CA02;
+0240 : 03B3CE02;
+0241 : 02B30218;
+0242 : D51300D7;
+0243 : 97130012;
+0244 : 428300F2;
+0245 : 7E9300E1;
+0246 : 66B301F5;
+0247 : 1C2300F7;
+0248 : F31300D1;
+0249 : D8130402;
+024A : 85B30042;
+024B : F6130113;
+024C : 1E1303F5;
+024D : 6FB30056;
+024E : 1A2301DE;
+024F : F39301F1;
+0250 : 046300F2;
+0251 : 75931203;
+0252 : 86330018;
+0253 : 4E2D0215;
+0254 : 007608B3;
+0255 : 011E5363;
+0256 : F51318D1;
+0257 : C1110202;
+0258 : 4E8308B1;
+0259 : 46A90101;
+025A : 01114F83;
+025B : 004ED713;
+025C : 02D707B3;
+025D : 00FEF293;
+025E : 004FDE93;
+025F : 001EF713;
+0260 : 001F03B7;
+0261 : 861365C1;
+0262 : 08AEFFF5;
+0263 : 00C8FE33;
+0264 : 020005B7;
+0265 : 00578333;
+0266 : 02D707B3;
+0267 : 00FFF293;
+0268 : 01031813;
+0269 : 007870B3;
+026A : 01E003B7;
+026B : 01C0E533;
+026C : FE000EB7;
+026D : 86130FE2;
+026E : 87138005;
+026F : 83337FFE;
+0270 : 18130057;
+0271 : 53130153;
+0272 : 06B3004F;
+0273 : 70B302D3;
+0274 : 68B30078;
+0275 : 45520015;
+0276 : 00FF7F13;
+0277 : 418FD093;
+0278 : 00C8FE33;
+0279 : 00E577B3;
+027A : 41F0D893;
+027B : 00FE62B3;
+027C : 01E68833;
+027D : 0FF87393;
+027E : 0648F613;
+027F : 01438E13;
+0280 : 01C60533;
+0281 : F73315FD;
+0282 : 1E9300B2;
+0283 : 52830195;
+0284 : 67B30181;
+0285 : CA3E01D7;
+0286 : 88501223;
+0287 : 88F02023;
+0288 : 48624352;
+0289 : 50936E9D;
+028A : 76930053;
+028B : 539301F3;
+028C : F79300F8;
+028D : 50B203F0;
+028E : 00169F13;
+028F : 01935513;
+0290 : 0013FF93;
+0291 : 00B35893;
+0292 : 01035E13;
+0293 : 01535613;
+0294 : 7BC50593;
+0295 : 01FF6833;
+0296 : 01F8F713;
+0297 : 01FE7693;
+0298 : 85138A3D;
+0299 : 6145D89E;
+029A : 00B3BB25;
+029B : 88B30218;
+029C : BDC50070;
+029D : 614550B2;
+029E : 71798082;
+029F : 0E000823;
+02A0 : D422D606;
+02A1 : 88002403;
+02A2 : 88402083;
+02A3 : 01F47513;
+02A4 : 00F0D313;
+02A5 : 00151293;
+02A6 : 00137393;
+02A7 : 0072E533;
+02A8 : CA22CC06;
+02A9 : 55933B29;
+02AA : 06230054;
+02AB : F51300A1;
+02AC : 333103F5;
+02AD : 00B45613;
+02AE : 00A106A3;
+02AF : 01F67513;
+02B0 : 569339FD;
+02B1 : 07230104;
+02B2 : F51300A1;
+02B3 : 07A301F6;
+02B4 : 31F50001;
+02B5 : 01545713;
+02B6 : 00A10823;
+02B7 : 00F77513;
+02B8 : 581339F9;
+02B9 : 08A30194;
+02BA : 051300A1;
+02BB : 39C1FEC8;
+02BC : 00A10923;
+02BD : E53931ED;
+02BE : 08000893;
+02BF : 0808870B;
+02C0 : 08000E13;
+02C1 : A9102023;
+02C2 : 078B4E99;
+02C3 : 0F13080E;
+02C4 : 0FB300C1;
+02C5 : C78300AF;
+02C6 : 0293000F;
+02C7 : 0505A800;
+02C8 : 00879413;
+02C9 : 08046093;
+02CA : 0012A023;
+02CB : FDD51FE3;
+02CC : 080E070B;
+02CD : 01214503;
+02CE : 00851313;
+02CF : 08436393;
+02D0 : 0072A023;
+02D1 : 542250B2;
+02D2 : 80826145;
+02D3 : 0F400293;
+02D4 : 0002A703;
+02D5 : 00170693;
+02D6 : 00D2A023;
+02D7 : 4805C70D;
+02D8 : 0F800E13;
+02D9 : 05070163;
+02DA : C01023F3;
+02DB : 000E2503;
+02DC : 02000613;
+02DD : FDF00813;
+02DE : 40A385B3;
+02DF : 00BE2223;
+02E0 : 0706078B;
+02E1 : 03378082;
+02E2 : 25834000;
+02E3 : 039300C0;
+02E4 : 20230003;
+02E5 : 66059870;
+02E6 : 98B02223;
+02E7 : 0B860313;
+02E8 : 98602423;
+02E9 : 2EF38082;
+02EA : 2F83C010;
+02EB : 12B70E00;
+02EC : 87134000;
+02ED : 87B30B82;
+02EE : 202341FE;
+02EF : 202300FE;
+02F0 : 66AD98E0;
+02F1 : 98002223;
+02F2 : 66068313;
+02F3 : 0793BFD1;
+02F4 : 870B0400;
+02F5 : 02230807;
+02F6 : 870BA6A0;
+02F7 : 2E230807;
+02F8 : 870BA2B0;
+02F9 : 47030807;
+02FA : 7293A140;
+02FB : 878B0FF7;
+02FC : 45C10807;
+02FD : A2500423;
+02FE : 04000313;
+02FF : 0803068B;
+0300 : A2704503;
+0301 : 01851393;
+0302 : 4183D513;
+0303 : 00055463;
+0304 : F5ED15FD;
+0305 : C2918082;
+0306 : 472115E9;
+0307 : 04000793;
+0308 : 0FE00893;
+0309 : 0FD00313;
+030A : 0807880B;
+030B : A6704803;
+030C : 0FF87E13;
+030D : 01180A63;
+030E : 01C36463;
+030F : C319177D;
+0310 : F27D167D;
+0311 : 8082557D;
+0312 : 00157293;
+0313 : 8B63862A;
+0314 : 06130002;
+0315 : 878B0015;
+0316 : 43830807;
+0317 : 15FDA270;
+0318 : 00750023;
+0319 : 04000513;
+031A : 0805078B;
+031B : A2704783;
+031C : 00267E93;
+031D : 000E8A63;
+031E : 0805070B;
+031F : A2A05F83;
+0320 : 15F90609;
+0321 : FFF61F23;
+0322 : 04000793;
+0323 : 0807878B;
+0324 : A2A05783;
+0325 : 02938E2E;
+0326 : 88330400;
+0327 : 471500C5;
+0328 : 0802888B;
+0329 : A2C02303;
+032A : 41C808B3;
+032B : A0231E71;
+032C : 47E30068;
+032D : 8393FFC7;
+032E : F513FFA5;
+032F : 0F33FFC3;
+0330 : DE9300C5;
+0331 : 08130023;
+0332 : 850B006F;
+0333 : 57F10802;
+0334 : 02FE8E33;
+0335 : A2005F83;
+0336 : 02938642;
+0337 : 12230400;
+0338 : 9E2E01FF;
+0339 : 01CF05B3;
+033A : 0AB61563;
+033B : FFAE0593;
+033C : 01058633;
+033D : 0293CAAD;
+033E : 870B0400;
+033F : 00230802;
+0340 : 870BA6D0;
+0341 : 46830802;
+0342 : 0023A260;
+0343 : 870B00D6;
+0344 : 28230802;
+0345 : 870BA200;
+0346 : 48030802;
+0347 : 00A3A260;
+0348 : 870B0106;
+0349 : 47030802;
+034A : 0123A260;
+034B : 870B00E6;
+034C : 43030802;
+034D : 01A3A260;
+034E : 870B0066;
+034F : 48830802;
+0350 : 0223A260;
+0351 : 870B0116;
+0352 : 43830802;
+0353 : FE93A140;
+0354 : 868B0FF3;
+0355 : 00230802;
+0356 : 878BA3D0;
+0357 : 45030802;
+0358 : 02A3A260;
+0359 : 0F1300A6;
+035A : 070B0400;
+035B : 5F83080F;
+035C : 9793A120;
+035D : D593010F;
+035E : 84630107;
+035F : 1141020F;
+0360 : 609DC606;
+0361 : DB208513;
+0362 : 40B23C21;
+0363 : 0141557D;
+0364 : 850B8082;
+0365 : 47030802;
+0366 : 0605A260;
+0367 : FEE60FA3;
+0368 : 078BB7A1;
+0369 : 4783080F;
+036A : 4501A270;
+036B : 11418082;
+036C : 641DC422;
+036D : 39844503;
+036E : 7793C606;
+036F : EB9D0015;
+0370 : 05134585;
+0371 : 041307B0;
+0372 : 35113984;
+0373 : 02055263;
+0374 : 30300093;
+0375 : 00141023;
+0376 : 80800713;
+0377 : 00072283;
+0378 : 0513651D;
+0379 : F313DDE5;
+037A : 2023FFE2;
+037B : 3AAD0067;
+037C : 00044503;
+037D : 442240B2;
+037E : 80820141;
+037F : C6061141;
+0380 : C226C422;
+0381 : 84AAC04A;
+0382 : A023651D;
+0383 : A2230005;
+0384 : A4230005;
+0385 : A6230005;
+0386 : 05130005;
+0387 : 842EDF45;
+0388 : 3ABD85B2;
+0389 : 85264581;
+038A : 7793335D;
+038B : 85AA0FE5;
+038C : 45C1EF9D;
+038D : 06134681;
+038E : 85227D00;
+038F : 85AA3BE9;
+0390 : 0493E51D;
+0391 : 691D0104;
+0392 : 40EF4008;
+0393 : C0086D50;
+0394 : 041185AA;
+0395 : E0090513;
+0396 : 17E332A1;
+0397 : 4422FE94;
+0398 : 449240B2;
+0399 : 45294902;
+039A : F06F0141;
+039B : 44228E1F;
+039C : 4492609D;
+039D : 85134902;
+039E : 40B2E060;
+039F : F06F0141;
+03A0 : 1101923F;
+03A1 : CE06CC22;
+03A2 : C84ACA26;
+03A3 : C452C64E;
+03A4 : C6258432;
+03A5 : 4783691D;
+03A6 : 0A133989;
+03A7 : F0933989;
+03A8 : 97630017;
+03A9 : 42850E00;
+03AA : 84AE89AA;
+03AB : 06561063;
+03AC : 0613661D;
+03AD : 651DCC36;
+03AE : 86A6874E;
+03AF : 051385A2;
+03B0 : F0EFE195;
+03B1 : 07038DFF;
+03B2 : 4385002A;
+03B3 : 00771363;
+03B4 : 85A604A6;
+03B5 : 05200513;
+03B6 : 85AA39DD;
+03B7 : 02055C63;
+03B8 : 30300793;
+03B9 : 1023609D;
+03BA : 851300FA;
+03BB : F0EFDDE0;
+03BC : 440187BF;
+03BD : 04234611;
+03BE : 40F210C0;
+03BF : 44628522;
+03C0 : 494244D2;
+03C1 : 4A2249B2;
+03C2 : 80826105;
+03C3 : 0613631D;
+03C4 : B7551373;
+03C5 : 0FE57693;
+03C6 : 15B7EAB1;
+03C7 : 04930003;
+03C8 : 5A7DFFF4;
+03C9 : 89134401;
+03CA : 1813D405;
+03CB : 85330094;
+03CC : 93630109;
+03CD : 08930544;
+03CE : 878B0400;
+03CF : 47830808;
+03D0 : 0993A270;
+03D1 : 878B0400;
+03D2 : 4E030809;
+03D3 : 1E93A270;
+03D4 : DF13018E;
+03D5 : 7593418E;
+03D6 : 46E30FFE;
+03D7 : D9D9FE0F;
+03D8 : 85136F9D;
+03D9 : F0EFE64F;
+03DA : B76983BF;
+03DB : 0513641D;
+03DC : F0EFE424;
+03DD : BFB582FF;
+03DE : 04C00693;
+03DF : 4681C091;
+03E0 : 0593864A;
+03E1 : 39412000;
+03E2 : F52D14FD;
+03E3 : BF710405;
+03E4 : B7A54401;
+03E5 : CA261101;
+03E6 : CC22CE06;
+03E7 : C64EC84A;
+03E8 : 0A6384B2;
+03E9 : 699D1606;
+03EA : 3989C783;
+03EB : 39898993;
+03EC : 0017F093;
+03ED : 1A009463;
+03EE : 842A86AA;
+03EF : 862E651D;
+03F0 : 0513892E;
+03F1 : 85A6E985;
+03F2 : FD8FF0EF;
+03F3 : 00298703;
+03F4 : 13634285;
+03F5 : 09260057;
+03F6 : 051385CA;
+03F7 : 3EC50590;
+03F8 : 5E6385AA;
+03F9 : 639D1005;
+03FA : EC238513;
+03FB : F7CFF0EF;
+03FC : 30300593;
+03FD : 00B99023;
+03FE : 07934901;
+03FF : 55710400;
+0400 : 4885587D;
+0401 : 06134315;
+0402 : 79932004;
+0403 : 70930034;
+0404 : 868BFFC6;
+0405 : 02230807;
+0406 : 868BA2A0;
+0407 : 00230807;
+0408 : 7E13A700;
+0409 : 86A20014;
+040A : 000E0A63;
+040B : 00140693;
+040C : 00044E83;
+040D : 08078E0B;
+040E : A3D00223;
+040F : C8018809;
+0410 : 0006DF83;
+0411 : 8E0B0689;
+0412 : 14230807;
+0413 : 8436A3F0;
+0414 : 0C146B63;
+0415 : 413000B3;
+0416 : 0020F993;
+0417 : 00098963;
+0418 : 00045283;
+0419 : 860B0409;
+041A : 14230807;
+041B : F393A250;
+041C : 89630010;
+041D : 46030003;
+041E : 04050004;
+041F : 0807868B;
+0420 : A2C00223;
+0421 : 0807870B;
+0422 : A1605E03;
+0423 : 010E1E93;
+0424 : 010EDF13;
+0425 : 0807868B;
+0426 : A3E01D23;
+0427 : 0807870B;
+0428 : A2704703;
+0429 : 0807870B;
+042A : A2704F83;
+042B : 011FF093;
+042C : 0FFFF693;
+042D : FF1098E3;
+042E : 01F6F593;
+042F : 06658D63;
+0430 : 0513681D;
+0431 : F0EFF088;
+0432 : 4485EDAF;
+0433 : 04000893;
+0434 : 0808878B;
+0435 : 022357F5;
+0436 : 4721A2F0;
+0437 : 04000513;
+0438 : 0805060B;
+0439 : A2704303;
+043A : 06031263;
+043B : 04000293;
+043C : 0802878B;
+043D : A2704383;
+043E : FE038CE3;
+043F : 0DE3A891;
+0440 : 631DEE05;
+0441 : EE530513;
+0442 : E98FF0EF;
+0443 : 46114901;
+0444 : 10C00423;
+0445 : 40F284CA;
+0446 : 49424462;
+0447 : 852649B2;
+0448 : 610544D2;
+0449 : 2E038082;
+044A : 858B0004;
+044B : 26230807;
+044C : 0411A3C0;
+044D : 870BBF31;
+044E : 49830807;
+044F : 8CE3A270;
+0450 : 0905FE09;
+0451 : ED2491E3;
+0452 : B7494481;
+0453 : FB49177D;
+0454 : 4581DCDD;
+0455 : 04C00513;
+0456 : BF553C9D;
+0457 : BF654481;
+0458 : 10000313;
+0459 : 0E802683;
+045A : 00032703;
+045B : 83B3460D;
+045C : 756340E6;
+045D : 20230076;
+045E : B91500D3;
+045F : 4503651D;
+0460 : 80823985;
+0461 : 4503671D;
+0462 : 26033987;
+0463 : 42850E80;
+0464 : A05000A3;
+0465 : 00157313;
+0466 : 00031363;
+0467 : 7159B909;
+0468 : D4A2D686;
+0469 : D2A6CAD6;
+046A : CECED0CA;
+046B : C8DACCD2;
+046C : 7A93C6DE;
+046D : 04130025;
+046E : 03933987;
+046F : 8A631040;
+0470 : A683000A;
+0471 : 05930003;
+0472 : 04B303F0;
+0473 : FD6340D6;
+0474 : A0230895;
+0475 : 458100C3;
+0476 : 03000613;
+0477 : 39870513;
+0478 : 6F2010EF;
+0479 : 30300513;
+047A : 00A41023;
+047B : 04934991;
+047C : 0B130400;
+047D : 5A7D07F0;
+047E : 878B4B85;
+047F : 49210804;
+0480 : A1600023;
+0481 : 0804878B;
+0482 : A3402623;
+0483 : 1BE3197D;
+0484 : 878BFE09;
+0485 : 00230804;
+0486 : 878BA140;
+0487 : 45810804;
+0488 : A3400223;
+0489 : 04000513;
+048A : 9A7FF0EF;
+048B : 05750963;
+048C : 94E319FD;
+048D : 9763FC09;
+048E : 681D000A;
+048F : F2380513;
+0490 : D28FF0EF;
+0491 : 00044783;
+0492 : 80800913;
+0493 : 00092F83;
+0494 : FFF7C713;
+0495 : 00177293;
+0496 : FFEFF613;
+0497 : 00C2EAB3;
+0498 : 01592023;
+0499 : 00044503;
+049A : 542650B6;
+049B : 59065496;
+049C : 4A6649F6;
+049D : 4B464AD6;
+049E : 61654BB6;
+049F : 878B8082;
+04A0 : 08930804;
+04A1 : 0023F820;
+04A2 : 4585A110;
+04A3 : 07B00513;
+04A4 : 93FFF0EF;
+04A5 : 1AA00593;
+04A6 : 04800513;
+04A7 : 933FF0EF;
+04A8 : 00457E13;
+04A9 : 040E1163;
+04AA : 0FC57913;
+04AB : F8091CE3;
+04AC : 0804878B;
+04AD : A2704783;
+04AE : 0804878B;
+04AF : A2A05783;
+04B0 : 0804848B;
+04B1 : A3802583;
+04B2 : 1AA00F13;
+04B3 : 40000937;
+04B4 : FE93C40C;
+04B5 : 88631FF5;
+04B6 : 6F1D01EE;
+04B7 : F3DF0513;
+04B8 : CC0FF0EF;
+04B9 : 4581B785;
+04BA : 07700513;
+04BB : 8E3FF0EF;
+04BC : 00457F93;
+04BD : 986385AA;
+04BE : 85CA000F;
+04BF : 06900513;
+04C0 : 8CFFF0EF;
+04C1 : F79385AA;
+04C2 : EF850045;
+04C3 : 0FE5F613;
+04C4 : 671DC609;
+04C5 : F6870513;
+04C6 : F5F1B7E1;
+04C7 : 04000493;
+04C8 : 0804878B;
+04C9 : F8100093;
+04CA : 002385CA;
+04CB : 0513A010;
+04CC : F0EF07A0;
+04CD : 85AA89DF;
+04CE : 6E9DC505;
+04CF : F83E8513;
+04D0 : DDE9B745;
+04D1 : 05134581;
+04D2 : F0EF0410;
+04D3 : 7293885F;
+04D4 : 85AA0FE5;
+04D5 : 04028163;
+04D6 : 0513631D;
+04D7 : B749F9D3;
+04D8 : 0804878B;
+04D9 : A2704783;
+04DA : 0804878B;
+04DB : A2A05783;
+04DC : 0804848B;
+04DD : A3802383;
+04DE : 26234A85;
+04DF : 05930074;
+04E0 : 05132000;
+04E1 : F0EF0500;
+04E2 : 85AA849F;
+04E3 : 6E1DC901;
+04E4 : FB6E0513;
+04E5 : F55DB7B1;
+04E6 : B7D54A81;
+04E7 : 01040B13;
+04E8 : 06136A1D;
+04E9 : 85DAFD0A;
+04EA : 04900513;
+04EB : 81633C81;
+04EC : 48540A0A;
+04ED : 400005B7;
+04EE : 00D5F533;
+04EF : 0BB7C951;
+04F0 : 85938100;
+04F1 : 0513FF1B;
+04F2 : F0EF0460;
+04F3 : 7993805F;
+04F4 : 9F63FFE5;
+04F5 : 18370609;
+04F6 : 46810003;
+04F7 : D4080613;
+04F8 : 04000593;
+04F9 : F0EF850A;
+04FA : E13D831F;
+04FB : 01014883;
+04FC : FE134E85;
+04FD : 1D6300F8;
+04FE : 0F1305DE;
+04FF : 078B0400;
+0500 : 2783080F;
+0501 : 0613A2C0;
+0502 : 85DAFD0A;
+0503 : 04900513;
+0504 : 290332F5;
+0505 : 7F930104;
+0506 : 8B630069;
+0507 : 7793020F;
+0508 : 46090079;
+0509 : 00C79963;
+050A : 0FF97713;
+050B : 00375293;
+050C : FF634AA9;
+050D : 0313005A;
+050E : 078B0400;
+050F : 04930803;
+0510 : 609DF800;
+0511 : A0900023;
+0512 : FD408513;
+0513 : B54FF0EF;
+0514 : 0593639D;
+0515 : 86130204;
+0516 : 0513FF43;
+0517 : F0EF04A0;
+0518 : 2B0399FF;
+0519 : 45850104;
+051A : 01EB5A13;
+051B : 001A0693;
+051C : 00D40123;
+051D : 02B68F63;
+051E : 8D634309;
+051F : 01230666;
+0520 : 45830004;
+0521 : 46890024;
+0522 : 00B6F363;
+0523 : 6B9D4581;
+0524 : 00259513;
+0525 : 044B8993;
+0526 : 00A98833;
+0527 : 25834050;
+0528 : 689D0008;
+0529 : FF888513;
+052A : AF8FF0EF;
+052B : 00040023;
+052C : 4C08BB51;
+052D : 01C42B83;
+052E : 01645F83;
+052F : 56136E05;
+0530 : D99300F5;
+0531 : 189301EB;
+0532 : 0E930025;
+0533 : F793FFCE;
+0534 : 771300FF;
+0535 : 88130076;
+0536 : FF330019;
+0537 : 82B301D8;
+0538 : 093300E7;
+0539 : 8A9301E8;
+053A : 1A33FF92;
+053B : 22230159;
+053C : BF410144;
+053D : 53834844;
+053E : 909301A4;
+053F : 8B330104;
+0540 : 1A130070;
+0541 : B7E500AB;
+0542 : 1141E10D;
+0543 : 3989C606;
+0544 : 8293679D;
+0545 : C5033987;
+0546 : C7030012;
+0547 : 40B20002;
+0548 : 80A38D59;
+0549 : 014100A2;
+054A : 450D8082;
+054B : 41188082;
+054C : 0393415C;
+054D : C35C10C0;
+054E : 00052283;
+054F : A02356FD;
+0550 : C1480057;
+0551 : 00752023;
+0552 : 0043A583;
+0553 : 11400F93;
+0554 : 00850813;
+0555 : A223C14C;
+0556 : 415000A3;
+0557 : 2883C208;
+0558 : 2E030085;
+0559 : C91400C5;
+055A : 00050A23;
+055B : 01C8A223;
+055C : 00852E83;
+055D : 01DE2023;
+055E : 000FA703;
+055F : 01F52623;
+0560 : 010FA023;
+0561 : 2223C518;
+0562 : 80820107;
+0563 : C6061141;
+0564 : C226C422;
+0565 : 490C679D;
+0566 : 39878093;
+0567 : 0040A483;
+0568 : 02930596;
+0569 : 8C8D0200;
+056A : F463842A;
+056B : 04930092;
+056C : 86260200;
+056D : 01840513;
+056E : 9DDFF0EF;
+056F : 00A48A63;
+0570 : 37B58522;
+0571 : 40B24505;
+0572 : 44924422;
+0573 : 80820141;
+0574 : 0A234305;
+0575 : 45010064;
+0576 : 7179B7FD;
+0577 : 04B7D226;
+0578 : 829334F2;
+0579 : 073385D4;
+057A : D4220255;
+057B : 2A37CC52;
+057C : CA564101;
+057D : 0A93679D;
+057E : D606718A;
+057F : C85ACE4E;
+0580 : 02553333;
+0581 : C65ED04A;
+0582 : 8093C462;
+0583 : AE033987;
+0584 : 89AA0040;
+0585 : 0A138B2E;
+0586 : 03B3718A;
+0587 : F41300E3;
+0588 : 14933FF3;
+0589 : 9AA60034;
+058A : 004AA403;
+058B : 07541163;
+058C : 00599B93;
+058D : 03CBFF63;
+058E : 020B8513;
+058F : 02000C13;
+0590 : 00AE7463;
+0591 : FE0E0C13;
+0592 : 11402903;
+0593 : 4603468D;
+0594 : 041300C9;
+0595 : 0263FF89;
+0596 : 852204D6;
+0597 : 05633DC9;
+0598 : 8662040B;
+0599 : 051385DE;
+059A : F0EF0109;
+059B : 0A63819F;
+059C : 44010385;
+059D : 852250B2;
+059E : 54925422;
+059F : 49F25902;
+05A0 : 4AD24A62;
+05A1 : 4BB24B42;
+05A2 : 61454C22;
+05A3 : 2E838082;
+05A4 : 8B630104;
+05A5 : 404003D9;
+05A6 : 8522BF51;
+05A7 : F1613DC5;
+05A8 : 4805BF6D;
+05A9 : 01090623;
+05AA : 01392423;
+05AB : FF592C23;
+05AC : 009A08B3;
+05AD : 0048A983;
+05AE : FF392E23;
+05AF : 0088A223;
+05B0 : FFC92B03;
+05B1 : 008B2023;
+05B2 : 00842F83;
+05B3 : 0713445C;
+05B4 : A2231140;
+05B5 : 208300FF;
+05B6 : 0F130084;
+05B7 : A0230084;
+05B8 : 23030017;
+05B9 : C4180047;
+05BA : 01E72223;
+05BB : 00642623;
+05BC : 01E32023;
+05BD : 0793B741;
+05BE : 029310C0;
+05BF : C3371140;
+05C0 : 66114000;
+05C1 : 410125B7;
+05C2 : C39CC3DC;
+05C3 : 0052A223;
+05C4 : 0052A023;
+05C5 : 71830793;
+05C6 : 10C00393;
+05C7 : 11400E13;
+05C8 : 08935EFD;
+05C9 : 8F130186;
+05CA : A5037185;
+05CB : A0230043;
+05CC : A2230077;
+05CD : C3C800F3;
+05CE : 2F83C11C;
+05CF : 8813004E;
+05D0 : A4230087;
+05D1 : A62301C7;
+05D2 : 222301F7;
+05D3 : A023010E;
+05D4 : A823010F;
+05D5 : 8A2301D7;
+05D6 : 97C60007;
+05D7 : FDE797E3;
+05D8 : 410126B7;
+05D9 : 71868293;
+05DA : 00C28733;
+05DB : 0052A223;
+05DC : 0052A023;
+05DD : 9BE302A1;
+05DE : 8082FEE2;
+05DF : 1101ED05;
+05E0 : 649DCA26;
+05E1 : C403CC22;
+05E2 : CE063984;
+05E3 : 9F9FF0EF;
+05E4 : 00A442B3;
+05E5 : 0012F313;
+05E6 : 39848493;
+05E7 : 00030563;
+05E8 : 3F91C62A;
+05E9 : 40F24532;
+05EA : 80A34462;
+05EB : 44D200A4;
+05EC : 80826105;
+05ED : 8082450D;
+05EE : 679D1101;
+05EF : CC22CE06;
+05F0 : C84ACA26;
+05F1 : 8093C64E;
+05F2 : C7033987;
+05F3 : 72930000;
+05F4 : 64330017;
+05F5 : E03D0055;
+05F6 : 85634309;
+05F7 : 67630465;
+05F8 : E5B102B3;
+05F9 : 11400613;
+05FA : 09134244;
+05FB : 498D1140;
+05FC : 03248263;
+05FD : 00C4C683;
+05FE : 01369863;
+05FF : FF848513;
+0600 : 8C493371;
+0601 : 0FF47413;
+0602 : B7DD40C4;
+0603 : 8463448D;
+0604 : 44110295;
+0605 : 852240F2;
+0606 : 44D24462;
+0607 : 49B24942;
+0608 : 80826105;
+0609 : 20000393;
+060A : 00761023;
+060B : A503B7E5;
+060C : C2080040;
+060D : 0513B7C5;
+060E : BFE50200;
+060F : BFD9440D;
+0610 : 679D7179;
+0611 : C903D04A;
+0612 : D6063987;
+0613 : D226D422;
+0614 : CC52CE4E;
+0615 : C85ACA56;
+0616 : 7913C65E;
+0617 : 18630019;
+0618 : C68D0609;
+0619 : FFF60A13;
+061A : 5A936291;
+061B : 00B30056;
+061C : 062600DA;
+061D : E0028313;
+061E : DA1389AE;
+061F : 74330050;
+0620 : 94930066;
+0621 : 6B910096;
+0622 : 015A7E63;
+0623 : 542250B2;
+0624 : 49F25492;
+0625 : 4AD24A62;
+0626 : 4BB24B42;
+0627 : 5902854A;
+0628 : 80826145;
+0629 : 85564585;
+062A : C5053B0D;
+062B : 408B8B33;
+062C : 0164F363;
+062D : 05618B26;
+062E : 008505B3;
+062F : 854E865A;
+0630 : 0E4010EF;
+0631 : 416484B3;
+0632 : 44010A85;
+0633 : 490DBF75;
+0634 : 4905BF75;
+0635 : 7139BF65;
+0636 : DE06679D;
+0637 : DA26DC22;
+0638 : D64ED84A;
+0639 : D256D452;
+063A : CE5ED05A;
+063B : CA66CC62;
+063C : C66EC86A;
+063D : 39878093;
+063E : 0000C903;
+063F : 00197913;
+0640 : 0A091063;
+0641 : 0A13CA95;
+0642 : 6711FFF6;
+0643 : 0040AA83;
+0644 : 00565C93;
+0645 : 00DA02B3;
+0646 : 03130626;
+0647 : 89AEE007;
+0648 : 0052DA13;
+0649 : 00667433;
+064A : 00969493;
+064B : 0B935B01;
+064C : 4C0D0200;
+064D : 039A7263;
+064E : 546250F2;
+064F : 59B254D2;
+0650 : 5A925A22;
+0651 : 4BF25B02;
+0652 : 4CD24C62;
+0653 : 4DB24D42;
+0654 : 5942854A;
+0655 : 80826121;
+0656 : 036C83B3;
+0657 : 01538533;
+0658 : 00ABF463;
+0659 : 02000513;
+065A : 00951593;
+065B : 40858D33;
+065C : 01A4F363;
+065D : 35B38D26;
+065E : 856600BD;
+065F : 8DAA39B9;
+0660 : 0693C115;
+0661 : 85330185;
+0662 : 866A0086;
+0663 : 10EF85CE;
+0664 : 84B30160;
+0665 : 8A2341A4;
+0666 : 0C85018D;
+0667 : BF594401;
+0668 : BF59490D;
+0669 : BF494905;
+066A : 88002503;
+066B : 679D8082;
+066C : 02000537;
+066D : 06374681;
+066E : 8793C000;
+066F : 0F930507;
+0670 : 6841FFF5;
+0671 : 08934398;
+0672 : F3630046;
+0673 : 202302E6;
+0674 : 86930006;
+0675 : 93632006;
+0676 : 80820106;
+0677 : 0047D503;
+0678 : 07334390;
+0679 : E36300C5;
+067A : 07B100E6;
+067B : BFD98646;
+067C : 0087A283;
+067D : 0067CE03;
+067E : 40E685B3;
+067F : 00B28333;
+0680 : 01F373B3;
+0681 : 018E1E93;
+0682 : 01D3EF33;
+0683 : 01E62023;
+0684 : 1101B7C9;
+0685 : CA26CE06;
+0686 : C84ACC22;
+0687 : C452C64E;
+0688 : 5903C256;
+0689 : 0793B880;
+068A : AA8311C0;
+068B : 10930007;
+068C : D9130109;
+068D : 02930100;
+068E : 448111C0;
+068F : 000A8663;
+0690 : 010AD483;
+0691 : 009974B3;
+0692 : 0FF97313;
+0693 : 08030A63;
+0694 : B9104383;
+0695 : B9004583;
+0696 : F6134695;
+0697 : F5930FF3;
+0698 : EC630FF5;
+0699 : 40850676;
+069A : 04C0E363;
+069B : 10061463;
+069C : 060A8863;
+069D : 004AA703;
+069E : A783CB1D;
+069F : 8293000A;
+06A0 : A0230017;
+06A1 : 8023005A;
+06A2 : C30300B7;
+06A3 : C38301DA;
+06A4 : 76B3014A;
+06A5 : 8EA30073;
+06A6 : 0AA300DA;
+06A7 : A503B8D0;
+06A8 : 0813004A;
+06A9 : A223FFF5;
+06AA : 1B63010A;
+06AB : 48850208;
+06AC : 00CA8833;
+06AD : 00C899B3;
+06AE : 00B80B23;
+06AF : 0099FA33;
+06B0 : 020A0063;
+06B1 : 00860E13;
+06B2 : 002E1E93;
+06B3 : 01DA8F33;
+06B4 : 000F2F83;
+06B5 : 9F828556;
+06B6 : 451DA021;
+06B7 : 10A60063;
+06B8 : 10097593;
+06B9 : A603C1A9;
+06BA : 036300CA;
+06BB : 04131406;
+06BC : A623FFF6;
+06BD : 0D63008A;
+06BE : C3031204;
+06BF : C38301DA;
+06C0 : 76B3015A;
+06C1 : 8EA30073;
+06C2 : 0AA300DA;
+06C3 : A503B8D0;
+06C4 : 0813008A;
+06C5 : A4230015;
+06C6 : 4883010A;
+06C7 : 8E230005;
+06C8 : 0A23011A;
+06C9 : 7993B910;
+06CA : 87632009;
+06CB : CE031209;
+06CC : 4A0301DA;
+06CD : F493B950;
+06CE : 0AA32004;
+06CF : 7593B9C0;
+06D0 : C4910FFA;
+06D1 : 03CAAE83;
+06D2 : 85564605;
+06D3 : AF039E82;
+06D4 : D60300CA;
+06D5 : AA83010A;
+06D6 : 3FB3004A;
+06D7 : 959301E0;
+06D8 : E433008F;
+06D9 : 30B300C5;
+06DA : E7330150;
+06DB : 62930080;
+06DC : A0FD0827;
+06DD : 03F5F893;
+06DE : 00289A13;
+06DF : 14800E93;
+06E0 : 014E8F33;
+06E1 : 000F2A83;
+06E2 : 0D100623;
+06E3 : 0152A023;
+06E4 : 08200693;
+06E5 : 020A8463;
+06E6 : 00CAAF83;
+06E7 : 010AD703;
+06E8 : 004AA783;
+06E9 : 01F03433;
+06EA : 00841093;
+06EB : 00E0E2B3;
+06EC : 00F03333;
+06ED : 005363B3;
+06EE : 0823E693;
+06EF : B8D01523;
+06F0 : 84634501;
+06F1 : A503000A;
+06F2 : 2A2301CA;
+06F3 : 89E3B8A0;
+06F4 : D483F00A;
+06F5 : 74B3010A;
+06F6 : BDD10099;
+06F7 : 0CC00613;
+06F8 : 04000813;
+06F9 : 00064A83;
+06FA : 0002A023;
+06FB : 01060023;
+06FC : 08200893;
+06FD : B9101523;
+06FE : B8002A23;
+06FF : 09934401;
+0700 : 0A131480;
+0701 : 8E331000;
+0702 : 25030089;
+0703 : CD01000E;
+0704 : 01055E83;
+0705 : 080EFF13;
+0706 : 000F0763;
+0707 : 04052F83;
+0708 : 85D6461D;
+0709 : 04119F82;
+070A : FD441FE3;
+070B : BD4D4A81;
+070C : 01FAC703;
+070D : B9404083;
+070E : 1004F293;
+070F : 00EA8E23;
+0710 : B8E00A23;
+0711 : 0FF0F593;
+0712 : EC028FE3;
+0713 : 038AA783;
+0714 : 85564601;
+0715 : BDC19782;
+0716 : 08200293;
+0717 : EE0A99E3;
+0718 : 01029793;
+0719 : 0127E933;
+071A : B9202423;
+071B : 446240F2;
+071C : 494244D2;
+071D : 4A2249B2;
+071E : 61054A92;
+071F : 07938082;
+0720 : 07132000;
+0721 : 828BDFF0;
+0722 : 238306E7;
+0723 : C10C11C0;
+0724 : 0EA3C150;
+0725 : 166300D5;
+0726 : 454C0275;
+0727 : 01055E03;
+0728 : 00C03633;
+0729 : 00B036B3;
+072A : 00869813;
+072B : 010668B3;
+072C : 01C8EEB3;
+072D : 082EEF13;
+072E : B9E01523;
+072F : 2A234D48;
+0730 : FF93B8A0;
+0731 : 07932002;
+0732 : 878BDFF0;
+0733 : 808206FF;
+0734 : 20000793;
+0735 : DFF00713;
+0736 : 06E7828B;
+0737 : 00158313;
+0738 : 2423C550;
+0739 : C3830065;
+073A : 0EA30005;
+073B : 268300D5;
+073C : 0E2311C0;
+073D : 17630075;
+073E : 280302D5;
+073F : 5F030045;
+0740 : 36330105;
+0741 : 38B300C0;
+0742 : 1E130100;
+0743 : EEB30086;
+0744 : EFB301C8;
+0745 : E79301EE;
+0746 : 1523082F;
+0747 : 4D48B8F0;
+0748 : B8A02A23;
+0749 : 2002F293;
+074A : DFF00713;
+074B : 06E2878B;
+074C : 07938082;
+074D : 07132000;
+074E : 828BDFF0;
+074F : 230306E7;
+0750 : 0FA300C5;
+0751 : 1A6300B5;
+0752 : 26030003;
+0753 : 0E2311C0;
+0754 : 146300B5;
+0755 : 0A2300A6;
+0756 : F513B8B0;
+0757 : 05932002;
+0758 : 078BDFF0;
+0759 : 808206B5;
+075A : 20000793;
+075B : DFF00713;
+075C : 06E7828B;
+075D : 11C02383;
+075E : 00B50EA3;
+075F : 00A39463;
+0760 : B8B00AA3;
+0761 : 2002F513;
+0762 : DFF00593;
+0763 : 06B5078B;
+0764 : 07938082;
+0765 : EB6303F0;
+0766 : 029306B7;
+0767 : 07132000;
+0768 : 868BDFF0;
+0769 : 230306E2;
+076A : 166300C5;
+076B : 43830003;
+076C : 0E2301F5;
+076D : 96130075;
+076E : 08930025;
+076F : 4F031480;
+0770 : 8E330CC0;
+0771 : 202300C8;
+0772 : 1B6300AE;
+0773 : 2F8302BF;
+0774 : 570300C5;
+0775 : 23830105;
+0776 : 37B30045;
+0777 : 929301F0;
+0778 : E3330087;
+0779 : 363300E2;
+077A : 68330070;
+077B : 2E230066;
+077C : 689310A0;
+077D : 15230828;
+077E : 4D48B910;
+077F : B8A02A23;
+0780 : 2006F693;
+0781 : DFF00E13;
+0782 : 07C6878B;
+0783 : 07938082;
+0784 : 07132000;
+0785 : 878BDFF0;
+0786 : 228306E7;
+0787 : 0313B840;
+0788 : F6930400;
+0789 : E2991002;
+078A : 03F2F313;
+078B : 00231513;
+078C : 14800613;
+078D : 00A60833;
+078E : 00082883;
+078F : 0C600623;
+0790 : 11102E23;
+0791 : 08200393;
+0792 : 02088463;
+0793 : 00C8AE83;
+0794 : 0108D783;
+0795 : 0048A283;
+0796 : 01D03F33;
+0797 : 008F1F93;
+0798 : 00FFE733;
+0799 : 005036B3;
+079A : 00E6E333;
+079B : 08236393;
+079C : B8701523;
+079D : 84634501;
+079E : A5030008;
+079F : 2A2301C8;
+07A0 : 0593B8A0;
+07A1 : 078BDFF0;
+07A2 : 808206B0;
+07A3 : 47834178;
+07A4 : 450304B5;
+07A5 : 468304A5;
+07A6 : C6910077;
+07A7 : 00851613;
+07A8 : 00F60533;
+07A9 : 45838082;
+07AA : D3130007;
+07AB : 12930057;
+07AC : 83B30035;
+07AD : 96330062;
+07AE : 8BFD00B3;
+07AF : 1141B7D5;
+07B0 : C422C606;
+07B1 : 43034160;
+07B2 : 1C630074;
+07B3 : 47030003;
+07B4 : 468304B5;
+07B5 : 70930004;
+07B6 : D2B301F7;
+07B7 : 976340D0;
+07B8 : 376D0002;
+07B9 : 00245783;
+07BA : 00F53333;
+07BB : 442240B2;
+07BC : 0141851A;
+07BD : 07938082;
+07BE : 18230940;
+07BF : 0EA300F5;
+07C0 : 0AA30005;
+07C1 : 4283B800;
+07C2 : 06A304F5;
+07C3 : E3130405;
+07C4 : 07A30012;
+07C5 : 80820465;
+07C6 : 4783BFF9;
+07C7 : E29304F5;
+07C8 : 07A30027;
+07C9 : 80820455;
+07CA : 04F54783;
+07CB : 0047E293;
+07CC : 045507A3;
+07CD : 53038082;
+07CE : F7B70105;
+07CF : 4603EEEE;
+07D0 : 829304D5;
+07D1 : 6393EEE7;
+07D2 : 24230013;
+07D3 : 18230455;
+07D4 : 05930075;
+07D5 : 06930485;
+07D6 : E2190C90;
+07D7 : 0C100693;
+07D8 : BB314611;
+07D9 : 45811141;
+07DA : C422C606;
+07DB : 3BED842A;
+07DC : 06A38522;
+07DD : 45810404;
+07DE : 85223B6D;
+07DF : 04040423;
+07E0 : 40B24422;
+07E1 : BF450141;
+07E2 : C7CE7115;
+07E3 : CBA6CF86;
+07E4 : CDA2C1DA;
+07E5 : C5D2C9CA;
+07E6 : DF5EC3D6;
+07E7 : DB66DD62;
+07E8 : D76ED96A;
+07E9 : 0D000093;
+07EA : 0E802B03;
+07EB : 0000A283;
+07EC : B8002903;
+07ED : 00597493;
+07EE : 27628163;
+07EF : 4383631D;
+07F0 : 0B933983;
+07F1 : F4130D00;
+07F2 : CC510013;
+07F3 : 9B8FF0EF;
+07F4 : 00157893;
+07F5 : 00088563;
+07F6 : 4A014A85;
+07F7 : 0A93A06D;
+07F8 : AA038080;
+07F9 : 6C9D000A;
+07FA : 002A6C13;
+07FB : 018AA023;
+07FC : 85934605;
+07FD : 0513CC3C;
+07FE : 20EF24C0;
+07FF : CD095450;
+0800 : 8513679D;
+0801 : E0EF0A47;
+0802 : A983F9AF;
+0803 : F293000A;
+0804 : A023FFD9;
+0805 : B7C9005A;
+0806 : 100C0850;
+0807 : CC3C8513;
+0808 : 02010023;
+0809 : 30EFCA02;
+080A : 46523950;
+080B : 100C6D9D;
+080C : 0BDD8513;
+080D : F6CFE0EF;
+080E : 082C0870;
+080F : CC3C8513;
+0810 : 30EFCC02;
+0811 : 4E722110;
+0812 : 6F9D45E2;
+0813 : 00AE5E83;
+0814 : 01CE2F03;
+0815 : 0EBF8513;
+0816 : 009E9693;
+0817 : FFEF0613;
+0818 : F40FE0EF;
+0819 : F0EFBF95;
+081A : 89058FAF;
+081B : 0613F535;
+081C : 42181200;
+081D : 083346FD;
+081E : FE6340EB;
+081F : 20231906;
+0820 : 4A810166;
+0821 : A0234A05;
+0822 : 0093016B;
+0823 : AB830D40;
+0824 : 73130000;
+0825 : C21A0019;
+0826 : 8163C002;
+0827 : A023069B;
+0828 : 03930090;
+0829 : A4038080;
+082A : 75930003;
+082B : 96130019;
+082C : 75130025;
+082D : 6733FFB4;
+082E : 681D00A6;
+082F : 00E3A023;
+0830 : 11D80513;
+0831 : 00497913;
+0832 : EA0FE0EF;
+0833 : 14090A63;
+0834 : 8513689D;
+0835 : E0EF0808;
+0836 : 4A92E92F;
+0837 : 140A9663;
+0838 : 05136A1D;
+0839 : C4B3098A;
+083A : DC93009B;
+083B : 4D050024;
+083C : E78FE0EF;
+083D : 001CFA93;
+083E : 4A05C06A;
+083F : 6DB76E9D;
+0840 : 6E1D4000;
+0841 : 3C8E8F13;
+0842 : 8D8D8D13;
+0843 : 4B014B81;
+0844 : 8D8D8493;
+0845 : 398E0C13;
+0846 : 4F83C47A;
+0847 : 896304ED;
+0848 : 8963100A;
+0849 : 846A100F;
+084A : 4DA14901;
+084B : 2AE44683;
+084C : 0016FE13;
+084D : 040E0263;
+084E : 001C4E83;
+084F : 001EFF13;
+0850 : 000F1663;
+0851 : 05040513;
+0852 : 56E030EF;
+0853 : 2AE44F83;
+0854 : FFEFF793;
+0855 : 2AF40723;
+0856 : 04CD4283;
+0857 : FFF28093;
+0858 : 041D0623;
+0859 : 2AF44303;
+085A : 00437393;
+085B : 00039663;
+085C : FFE37613;
+085D : 2AC40723;
+085E : 04130905;
+085F : 17E32E84;
+0860 : 0723FBB9;
+0861 : 4502040D;
+0862 : 856AC119;
+0863 : 45923BE1;
+0864 : CD854981;
+0865 : DFF00C93;
+0866 : 20000813;
+0867 : 0798070B;
+0868 : 08936709;
+0869 : 0E33B907;
+086A : 8DB3031B;
+086B : C98301C4;
+086C : 87A304FD;
+086D : F993040D;
+086E : 068B0FF9;
+086F : F6930790;
+0870 : 81630069;
+0871 : 856A2006;
+0872 : 45033B71;
+0873 : 1A6304ED;
+0874 : 6E094205;
+0875 : B90E0693;
+0876 : 4E910B05;
+0877 : 9BB69D36;
+0878 : F3DB1DE3;
+0879 : 000A0A63;
+087A : 80800493;
+087B : 0004AA03;
+087C : FFDA7A93;
+087D : 0154A023;
+087E : 446E40FE;
+087F : 494E44DE;
+0880 : 4A2E49BE;
+0881 : 4B0E4A9E;
+0882 : 5C6A5BFA;
+0883 : 5D4A5CDA;
+0884 : 612D5DBA;
+0885 : 4A818082;
+0886 : 4A81B3C9;
+0887 : B5B54A01;
+0888 : 8513669D;
+0889 : BD450876;
+088A : 05136C1D;
+088B : BD6508DC;
+088C : F40F9BE3;
+088D : 000C4783;
+088E : 0017F993;
+088F : F40995E3;
+0890 : B8002283;
+0891 : 0413631D;
+0892 : F0933D33;
+0893 : 95630042;
+0894 : 43A20000;
+0895 : 00A38413;
+0896 : 03000513;
+0897 : 02F00593;
+0898 : 00A40023;
+0899 : 00B400A3;
+089A : 00040123;
+089B : 04138CEA;
+089C : 09132A8D;
+089D : 26030300;
+089E : 681D044D;
+089F : 0693874A;
+08A0 : 45910086;
+08A1 : 12C80613;
+08A2 : 30EF8522;
+08A3 : 671D69F0;
+08A4 : DA840D93;
+08A5 : 19470993;
+08A6 : 0009A683;
+08A7 : 10068563;
+08A8 : 8722689D;
+08A9 : 13488613;
+08AA : 04000593;
+08AB : 30EF1008;
+08AC : C68367B0;
+08AD : FE132AEC;
+08AE : 07630016;
+08AF : 4E83020E;
+08B0 : FF13001C;
+08B1 : 1563001E;
+08B2 : 856E000F;
+08B3 : 3EA030EF;
+08B4 : 2AECCF83;
+08B5 : FFEFF793;
+08B6 : 2AFC8723;
+08B7 : 04CD4283;
+08B8 : FFF28093;
+08B9 : 041D0623;
+08BA : 2AFCC303;
+08BB : 00437393;
+08BC : 0C039863;
+08BD : 0FE37893;
+08BE : 2B1C8723;
+08BF : 0028F513;
+08C0 : E1114605;
+08C1 : 100C460D;
+08C2 : C632856E;
+08C3 : 293020EF;
+08C4 : C5834629;
+08C5 : 19632AEC;
+08C6 : 483200C5;
+08C7 : 00287713;
+08C8 : E893C701;
+08C9 : BFC90025;
+08CA : C1114885;
+08CB : E6B34891;
+08CC : 87230115;
+08CD : FE132ADC;
+08CE : 03630016;
+08CF : 699D080E;
+08D0 : 85A21010;
+08D1 : 13998513;
+08D2 : C58FE0EF;
+08D3 : 02200E93;
+08D4 : 00840F13;
+08D5 : 2BDCA823;
+08D6 : 0BECA023;
+08D7 : 567D55FD;
+08D8 : 30EF856E;
+08D9 : C5193780;
+08DA : 85A26D9D;
+08DB : 14DD8513;
+08DC : C30FE0EF;
+08DD : 044D2303;
+08DE : 064CAF83;
+08DF : 060CA283;
+08E0 : 00235383;
+08E1 : 018F9793;
+08E2 : 0082D093;
+08E3 : 0017E633;
+08E4 : 00C3F363;
+08E5 : 9623861E;
+08E6 : 45032ACC;
+08E7 : 059304CD;
+08E8 : 06230015;
+08E9 : 090504BD;
+08EA : 03800813;
+08EB : 2E840413;
+08EC : 2E8C8C93;
+08ED : ED0911E3;
+08EE : 07234705;
+08EF : B3E104ED;
+08F0 : BDD90991;
+08F1 : 0019FE93;
+08F2 : E00E81E3;
+08F3 : 049D4F03;
+08F4 : 048D4603;
+08F5 : 5F936285;
+08F6 : 8093006F;
+08F7 : 97937902;
+08F8 : 8333008F;
+08F9 : 83B3001B;
+08FA : 79130067;
+08FB : 7C930016;
+08FC : 8433007F;
+08FD : 01630074;
+08FE : 05130409;
+08FF : 8DB32E80;
+0900 : 85B302AC;
+0901 : 883301CD;
+0902 : 470300B4;
+0903 : 78932AE8;
+0904 : 9A630017;
+0905 : 03930408;
+0906 : 06A3F800;
+0907 : 0593047D;
+0908 : 856A0800;
+0909 : 90FFF0EF;
+090A : 040D0423;
+090B : 048D4603;
+090C : FFE67513;
+090D : 04AD0423;
+090E : 048D4D83;
+090F : 002DF593;
+0910 : 5383CDD1;
+0911 : F313010D;
+0912 : 0423FFDD;
+0913 : E613046D;
+0914 : 18231003;
+0915 : 468500CD;
+0916 : 10000613;
+0917 : 856A85A2;
+0918 : 871FF0EF;
+0919 : 856AB39D;
+091A : A57FF0EF;
+091B : 0313E901;
+091C : 06A30210;
+091D : 0593046D;
+091E : B7650210;
+091F : 80800E13;
+0920 : 2683D002;
+0921 : 4595000E;
+0922 : EE93856A;
+0923 : 20230026;
+0924 : F0EF01DE;
+0925 : 8F138D7F;
+0926 : 8FB3050B;
+0927 : 856A01ED;
+0928 : 01F48933;
+0929 : 9E9FF0EF;
+092A : 00851593;
+092B : 854A4601;
+092C : 22A030EF;
+092D : 40A1C511;
+092E : 041D06A3;
+092F : B79545A1;
+0930 : 06131014;
+0931 : 85A21000;
+0932 : 20EF854A;
+0933 : F5653F90;
+0934 : 02935782;
+0935 : 90E31000;
+0936 : BF89FE57;
+0937 : 004DF813;
+0938 : 02080563;
+0939 : 010D5283;
+093A : FFBDF793;
+093B : 04FD0423;
+093C : 0012E093;
+093D : 001D1823;
+093E : 04100693;
+093F : 10000613;
+0940 : 856A85A2;
+0941 : F7AFF0EF;
+0942 : F713B1C9;
+0943 : C729008D;
+0944 : 08936E09;
+0945 : 06932E80;
+0946 : 8CB3B90E;
+0947 : 0EB3031C;
+0948 : 8F3302DB;
+0949 : 8DB301DC;
+094A : CF8301E4;
+094B : F9132AED;
+094C : 1D63001F;
+094D : 0E930209;
+094E : 06A3F800;
+094F : 059305DD;
+0950 : 856A0800;
+0951 : FEEFF0EF;
+0952 : 040D0423;
+0953 : 048D4F03;
+0954 : FF7F7D93;
+0955 : 05BD0423;
+0956 : 048D4F83;
+0957 : F913856A;
+0958 : 042300FF;
+0959 : F0EF052D;
+095A : B1859D1F;
+095B : 002FF793;
+095C : 0693CB81;
+095D : 06A30400;
+095E : 059304DD;
+095F : B7D10400;
+0960 : C666856A;
+0961 : 93BFF0EF;
+0962 : E90142B2;
+0963 : 02100E13;
+0964 : 05CD06A3;
+0965 : 02100593;
+0966 : D002B76D;
+0967 : 80800093;
+0968 : 0000A303;
+0969 : 050B8613;
+096A : 00560533;
+096B : 00236393;
+096C : 00A48CB3;
+096D : 0070A023;
+096E : F0EF856A;
+096F : 15938D3F;
+0970 : 46010085;
+0971 : 30EF8566;
+0972 : C9011140;
+0973 : 02000893;
+0974 : 051D06A3;
+0975 : 02000593;
+0976 : C583B7AD;
+0977 : 10142AED;
+0978 : 10000613;
+0979 : 0085E813;
+097A : 2B0D8723;
+097B : 856685A2;
+097C : 4C1020EF;
+097D : 5402FD61;
+097E : 10000713;
+097F : FCE418E3;
+0980 : 1663B7B1;
+0981 : F993000A;
+0982 : 84E30049;
+0983 : 846ABC09;
+0984 : 4CA14D81;
+0985 : 2AE44583;
+0986 : 0085F813;
+0987 : 00080C63;
+0988 : 05040513;
+0989 : 6DB020EF;
+098A : 2AE44703;
+098B : FF777893;
+098C : 2B140723;
+098D : 04130D85;
+098E : 9DE32E84;
+098F : BE51FD9D;
+0990 : 67B77139;
+0991 : DA264000;
+0992 : D452D64E;
+0993 : CE5ED05A;
+0994 : 649DCC62;
+0995 : 6C096989;
+0996 : 6A096B89;
+0997 : DC226B09;
+0998 : D256D84A;
+0999 : C86ACA66;
+099A : DE06C66E;
+099B : 1A848493;
+099C : 8D878413;
+099D : 8A934901;
+099E : 89938D87;
+099F : 0D93B909;
+09A0 : 0C930940;
+09A1 : 4D0D07F0;
+09A2 : EF6C0C13;
+09A3 : F1AB8B93;
+09A4 : F28A0A13;
+09A5 : F18B0B13;
+09A6 : 03390533;
+09A7 : 04400613;
+09A8 : C0644581;
+09A9 : 04B10905;
+09AA : 24259556;
+09AB : 18238522;
+09AC : 0A2301B4;
+09AD : 0AA30194;
+09AE : 0F230194;
+09AF : 202301A4;
+09B0 : 24230384;
+09B1 : 28230374;
+09B2 : 2C230344;
+09B3 : 20230364;
+09B4 : F0EF0544;
+09B5 : 2283893F;
+09B6 : 85220444;
+09B7 : C583944E;
+09B8 : F0EF0012;
+09B9 : 4311EB0F;
+09BA : FA6918E3;
+09BB : 546250F2;
+09BC : 594254D2;
+09BD : 5A2259B2;
+09BE : 5B025A92;
+09BF : 4C624BF2;
+09C0 : 4D424CD2;
+09C1 : 61214DB2;
+09C2 : 47838082;
+09C3 : E29301D5;
+09C4 : 0EA30047;
+09C5 : 0AA30055;
+09C6 : 8082B850;
+09C7 : 01D54783;
+09C8 : 0027E293;
+09C9 : 00550EA3;
+09CA : B8500AA3;
+09CB : 71798082;
+09CC : D606D422;
+09CD : 0045F793;
+09CE : CFCD842E;
+09CF : 01D54083;
+09D0 : 12C00313;
+09D1 : 0FB0F293;
+09D2 : 00550EA3;
+09D3 : B8500AA3;
+09D4 : 00734383;
+09D5 : AE1485B7;
+09D6 : AE158893;
+09D7 : 14700613;
+09D8 : 02760833;
+09D9 : 00634703;
+09DA : 00534F03;
+09DB : 00334583;
+09DC : 00175093;
+09DD : 03FF7F93;
+09DE : 005F9793;
+09DF : 01F0F293;
+09E0 : 0057E6B3;
+09E1 : 00234783;
+09E2 : 0313BE33;
+09E3 : 00434383;
+09E4 : 00134303;
+09E5 : 00F7F093;
+09E6 : 01F3F613;
+09E7 : 01509293;
+09E8 : CC02073E;
+09E9 : 4785CE02;
+09EA : 01C80EB3;
+09EB : 00B61813;
+09EC : 01F5FE13;
+09ED : 0106E8B3;
+09EE : 010E1F13;
+09EF : EFB30EC6;
+09F0 : 069301E8;
+09F1 : D8930143;
+09F2 : E3B3011E;
+09F3 : 65B3005F;
+09F4 : 96130117;
+09F5 : E8330196;
+09F6 : 9E1300C3;
+09F7 : CA420105;
+09F8 : 00B11C23;
+09F9 : 010E5F13;
+09FA : 89E01223;
+09FB : 89002023;
+09FC : 0EF00823;
+09FD : 04047093;
+09FE : 00008D63;
+09FF : 01D54283;
+0A00 : E6934621;
+0A01 : 05930402;
+0A02 : C62A12C0;
+0A03 : C72FF0EF;
+0A04 : 04624532;
+0A05 : 41845313;
+0A06 : 0A035263;
+0A07 : 01D54683;
+0A08 : 12400713;
+0A09 : 0FD6FE93;
+0A0A : 01D50EA3;
+0A0B : B9D00AA3;
+0A0C : 88002883;
+0A0D : 88402603;
+0A0E : DF934851;
+0A0F : 00230158;
+0A10 : CC320107;
+0A11 : 00FFF793;
+0A12 : 0108D093;
+0A13 : 00F65813;
+0A14 : 01230646;
+0A15 : F29300F7;
+0A16 : 07B701F0;
+0A17 : 509300C8;
+0A18 : 01A30116;
+0A19 : B2B30057;
+0A1A : DE130217;
+0A1B : CA460198;
+0A1C : FECE0F13;
+0A1D : 00B8D393;
+0A1E : 0058D313;
+0A1F : 01F8F893;
+0A20 : 01E700A3;
+0A21 : 00189E13;
+0A22 : 00187F13;
+0A23 : 01F3F413;
+0A24 : 03F37693;
+0A25 : 01EE6FB3;
+0A26 : 00D702A3;
+0A27 : 00870223;
+0A28 : 01F70323;
+0A29 : 005703A3;
+0A2A : 50B25422;
+0A2B : 080EE693;
+0A2C : 05934621;
+0A2D : 61451240;
+0A2E : C18FF06F;
+0A2F : 542250B2;
+0A30 : 80826145;
+0A31 : 0593651D;
+0A32 : 05130360;
+0A33 : F06F3D85;
+0A34 : C25DCC4F;
+0A35 : 0FF5F713;
+0A36 : 01071793;
+0A37 : 00E7E2B3;
+0A38 : 00829313;
+0A39 : 00157693;
+0A3A : 005363B3;
+0A3B : EAC987AA;
+0A3C : 71634805;
+0A3D : F89308C8;
+0A3E : 9F630027;
+0A3F : 4EFD0808;
+0A40 : 08CEF663;
+0A41 : FE060F13;
+0A42 : FE0F7F93;
+0A43 : 02078F13;
+0A44 : 01EF8733;
+0A45 : 0F13A019;
+0A46 : A023020F;
+0A47 : A2230077;
+0A48 : A4230077;
+0A49 : A6230077;
+0A4A : A8230077;
+0A4B : AA230077;
+0A4C : AC230077;
+0A4D : AE230077;
+0A4E : 86FA0077;
+0A4F : 1CE387FA;
+0A50 : 8A7DFDE7;
+0A51 : F363428D;
+0A52 : 031302C2;
+0A53 : 7893FFC6;
+0A54 : 8E93FFC3;
+0A55 : 8E330047;
+0A56 : A01101D8;
+0A57 : A0230E91;
+0A58 : 87F60076;
+0A59 : 9BE386F6;
+0A5A : 8A0DFFCE;
+0A5B : 00267393;
+0A5C : 02039063;
+0A5D : E2118A05;
+0A5E : 80238082;
+0A5F : 808200B7;
+0A60 : 00150793;
+0A61 : 00750023;
+0A62 : B79D167D;
+0A63 : BF5D86BE;
+0A64 : 00B79023;
+0A65 : BFF90789;
+0A66 : 00779023;
+0A67 : 07891679;
+0A68 : 0000BFB9;
+0A69 : 00B567B3;
+0A6A : 8B8D8FD1;
+0A6B : 04079463;
+0A6C : 00C50733;
+0A6D : 8A7186AA;
+0A6E : 000037B7;
+0A6F : 80678F91;
+0A70 : 00019EA7;
+0A71 : 061395B2;
+0A72 : 4DDC0200;
+0A73 : 4D9CCEDC;
+0A74 : 49DCCE9C;
+0A75 : 499CCADC;
+0A76 : 45DCCA9C;
+0A77 : 459CC6DC;
+0A78 : 41DCC69C;
+0A79 : 419CC2DC;
+0A7A : 96B2C29C;
+0A7B : FCE6ECE3;
+0A7C : 00018082;
+0A7D : 00C50733;
+0A7E : 00050693;
+0A7F : 0005C783;
+0A80 : 00F68023;
+0A81 : 06850585;
+0A82 : FEE6EAE3;
+0A83 : 07138082;
+0A84 : 47E5F9F5;
+0A85 : 00E7FB63;
+0A86 : F2050293;
+0A87 : 67634379;
+0A88 : 03930053;
+0A89 : 03630F70;
+0A8A : 15010075;
+0A8B : 47038082;
+0A8C : 47830015;
+0A8D : 43830005;
+0A8E : 45030025;
+0A8F : 12930035;
+0A90 : E3330087;
+0A91 : 959300F2;
+0A92 : E6330103;
+0A93 : 16930065;
+0A94 : E5330185;
+0A95 : 808200C6;
+0A96 : 00154783;
+0A97 : 00554683;
+0A98 : 00054703;
+0A99 : 00254383;
+0A9A : 00454E03;
+0A9B : 00654F83;
+0A9C : 00354603;
+0A9D : 00754503;
+0A9E : 00879293;
+0A9F : 00869E93;
+0AA0 : 00E2E333;
+0AA1 : 01039593;
+0AA2 : 01CEEF33;
+0AA3 : 010F9713;
+0AA4 : 0065E833;
+0AA5 : 01851293;
+0AA6 : 01861893;
+0AA7 : 01E767B3;
+0AA8 : 0108E533;
+0AA9 : 00F2E5B3;
+0AAA : D7938082;
+0AAB : D2930085;
+0AAC : 00230105;
+0AAD : 81E100B5;
+0AAE : 00F500A3;
+0AAF : 00550123;
+0AB0 : 00B501A3;
+0AB1 : D7938082;
+0AB2 : D2930085;
+0AB3 : 53130105;
+0AB4 : 53930086;
+0AB5 : 00230106;
+0AB6 : 022300B5;
+0AB7 : 81E100C5;
+0AB8 : 00A38261;
+0AB9 : 012300F5;
+0ABA : 01A30055;
+0ABB : 02A300B5;
+0ABC : 03230065;
+0ABD : 03A30075;
+0ABE : 808200C5;
+0ABF : 15F94D5C;
+0AC0 : FFE78293;
+0AC1 : 0055FA63;
+0AC2 : 00A55303;
+0AC3 : 03B35918;
+0AC4 : 853302B3;
+0AC5 : 808200E3;
+0AC6 : 80824501;
+0AC7 : C6061141;
+0AC8 : 4114C422;
+0AC9 : 171387B2;
+0ACA : D6030176;
+0ACB : 492000A6;
+0ACC : 653381A5;
+0ACD : 468100B7;
+0ACE : 0097D593;
+0ACF : 210030EF;
+0AD0 : 82AA0411;
+0AD1 : C9194008;
+0AD2 : 00A2E663;
+0AD3 : 40A282B3;
+0AD4 : BFCD0421;
+0AD5 : 00442083;
+0AD6 : 00128533;
+0AD7 : 442240B2;
+0AD8 : 80820141;
+0AD9 : 01061793;
+0ADA : 0107D293;
+0ADB : 0082D313;
+0ADC : 00C58D23;
+0ADD : 00658DA3;
+0ADE : 00054703;
+0ADF : 1963438D;
+0AE0 : 82410077;
+0AE1 : 00865513;
+0AE2 : 00C58A23;
+0AE3 : 00A58AA3;
+0AE4 : 87AA8082;
+0AE5 : 00B50693;
+0AE6 : C6034501;
+0AE7 : 57130007;
+0AE8 : 051E0015;
+0AE9 : 00C702B3;
+0AEA : 83330785;
+0AEB : 751300A2;
+0AEC : 94E30FF3;
+0AED : 8082FED7;
+0AEE : 00154683;
+0AEF : 470185AA;
+0AF0 : 00168293;
+0AF1 : 00529313;
+0AF2 : 48094501;
+0AF3 : 03070563;
+0AF4 : 00E587B3;
+0AF5 : 0007C383;
+0AF6 : 00F51613;
+0AF7 : 08B38105;
+0AF8 : 8E330076;
+0AF9 : 1E9300A8;
+0AFA : D513010E;
+0AFB : 0705010E;
+0AFC : FC676EE3;
+0AFD : 470D8082;
+0AFE : 1141BFDD;
+0AFF : C226C422;
+0B00 : 84AAC606;
+0B01 : D5034401;
+0B02 : 04890004;
+0B03 : 40B2E519;
+0B04 : 44228522;
+0B05 : 01414492;
+0B06 : 3BD58082;
+0B07 : 00F41793;
+0B08 : 82B38005;
+0B09 : 77130087;
+0B0A : 83330FF5;
+0B0B : 139300E2;
+0B0C : 05420103;
+0B0D : 0103D593;
+0B0E : 01055693;
+0B0F : 0015D613;
+0B10 : 0086D813;
+0B11 : 010608B3;
+0B12 : 00F59E13;
+0B13 : 01C88EB3;
+0B14 : 010E9F13;
+0B15 : 010F5413;
+0B16 : 1141B77D;
+0B17 : C422C606;
+0B18 : 84AAC226;
+0B19 : 842E4908;
+0B1A : 03450513;
+0B1B : C40833C9;
+0B1C : 0104A283;
+0B1D : 03828513;
+0B1E : C80833C5;
+0B1F : 489CC84C;
+0B20 : 449240B2;
+0B21 : 0217C303;
+0B22 : 00042E23;
+0B23 : 00237393;
+0B24 : 007403A3;
+0B25 : 01414422;
+0B26 : 41188082;
+0B27 : C30586AA;
+0B28 : 457D87BA;
+0B29 : 03A00593;
+0B2A : 0007C603;
+0B2B : 72630785;
+0B2C : 1BE302C5;
+0B2D : 0293FEB6;
+0B2E : 84630027;
+0B2F : 557D0057;
+0B30 : 43038082;
+0B31 : 03930007;
+0B32 : 557D0300;
+0B33 : FE731AE3;
+0B34 : 4501C29C;
+0B35 : 11418082;
+0B36 : C606C226;
+0B37 : 84AEC422;
+0B38 : 4525E911;
+0B39 : 40B24281;
+0B3A : A0234422;
+0B3B : 44920054;
+0B3C : 80820141;
+0B3D : 842A411C;
+0B3E : C703D7ED;
+0B3F : D3750007;
+0B40 : 00455683;
+0B41 : 0067D083;
+0B42 : FC169DE3;
+0B43 : 0017C503;
+0B44 : FF8FE0EF;
+0B45 : F5718905;
+0B46 : 00042283;
+0B47 : 1101B7E9;
+0B48 : CC22CE06;
+0B49 : 4783CA26;
+0B4A : EB810035;
+0B4B : 40F24481;
+0B4C : 85264462;
+0B4D : 610544D2;
+0B4E : 05938082;
+0B4F : 5D1003C5;
+0B50 : 4503842A;
+0B51 : 46850015;
+0B52 : E0EFC62E;
+0B53 : 84AAB8DF;
+0B54 : 5C10E905;
+0B55 : 02842083;
+0B56 : 01A35018;
+0B57 : 02B30004;
+0B58 : F5E34016;
+0B59 : 4683FCE2;
+0B5A : 43090024;
+0B5B : 9FE345B2;
+0B5C : 4503FA66;
+0B5D : 46850014;
+0B5E : E0EF963A;
+0B5F : BF45B5DF;
+0B60 : B7754485;
+0B61 : 8B635D1C;
+0B62 : 114102B7;
+0B63 : C226C422;
+0B64 : 842AC606;
+0B65 : 376184AE;
+0B66 : 4503ED09;
+0B67 : 46850014;
+0B68 : 05938626;
+0B69 : E0EF03C4;
+0B6A : C119A9BF;
+0B6B : 54FD4505;
+0B6C : 40B2DC04;
+0B6D : 44924422;
+0B6E : 80820141;
+0B6F : 80824501;
+0B70 : C4221141;
+0B71 : C226C606;
+0B72 : 01A357FD;
+0B73 : DD1C0005;
+0B74 : 3F4D842A;
+0B75 : 17634E11;
+0B76 : 44831005;
+0B77 : 408323B4;
+0B78 : 632D23A4;
+0B79 : 00849293;
+0B7A : 0012E4B3;
+0B7B : A5530393;
+0B7C : 00749C63;
+0B7D : 462D659D;
+0B7E : 1D858593;
+0B7F : 03C40513;
+0B80 : 302030EF;
+0B81 : CD794E05;
+0B82 : 03C44503;
+0B83 : 0EB00713;
+0B84 : 00E50963;
+0B85 : 01850613;
+0B86 : 0FF67693;
+0B87 : 6C634805;
+0B88 : 68AD0AD8;
+0B89 : A5588E13;
+0B8A : 01C49C63;
+0B8B : 46216E9D;
+0B8C : 1E4E8593;
+0B8D : 08E40513;
+0B8E : 2CA030EF;
+0B8F : C15D4E01;
+0B90 : 04844F83;
+0B91 : 04744F03;
+0B92 : 20000293;
+0B93 : 008F9793;
+0B94 : 01E7E0B3;
+0B95 : 08509163;
+0B96 : 04944303;
+0B97 : 06030D63;
+0B98 : FFF30393;
+0B99 : 0063F5B3;
+0B9A : 4703E5BD;
+0B9B : 450304B4;
+0B9C : 161304A4;
+0B9D : 66B30087;
+0B9E : CEB100A6;
+0B9F : 04C44803;
+0BA0 : 08934E05;
+0BA1 : 6863FFF8;
+0BA2 : 4F03051E;
+0BA3 : 4E8304E4;
+0BA4 : 1F9304D4;
+0BA5 : E7B3008F;
+0BA6 : CF9501DF;
+0BA7 : 05044283;
+0BA8 : 04F44083;
+0BA9 : 07F00593;
+0BAA : 00829313;
+0BAB : 001363B3;
+0BAC : 0075E963;
+0BAD : 05C40513;
+0BAE : B77FF0EF;
+0BAF : 6C636741;
+0BB0 : 450300E5;
+0BB1 : 44030524;
+0BB2 : 4E010534;
+0BB3 : 00841613;
+0BB4 : 00A666B3;
+0BB5 : 682DEA81;
+0BB6 : A5580893;
+0BB7 : 83634E09;
+0BB8 : 4E0D0114;
+0BB9 : 442240B2;
+0BBA : 85724492;
+0BBB : 80820141;
+0BBC : D6067179;
+0BBD : D226D422;
+0BBE : CE4ED04A;
+0BBF : CA56CC52;
+0BC0 : C65EC85A;
+0BC1 : 595C15F9;
+0BC2 : F0934405;
+0BC3 : D9930075;
+0BC4 : D49300C5;
+0BC5 : 12B30035;
+0BC6 : 892A0014;
+0BC7 : 8AB68A32;
+0BC8 : F49399BE;
+0BC9 : F4131FF4;
+0BCA : 4B050FF2;
+0BCB : 20000B93;
+0BCC : 854A85CE;
+0BCD : 35B90985;
+0BCE : 4505CD11;
+0BCF : 542250B2;
+0BD0 : 59025492;
+0BD1 : 4A6249F2;
+0BD2 : 4B424AD2;
+0BD3 : 61454BB2;
+0BD4 : 84C68082;
+0BD5 : 009906B3;
+0BD6 : 03C6C303;
+0BD7 : 00837733;
+0BD8 : 00E033B3;
+0BD9 : 03538763;
+0BDA : 00834633;
+0BDB : 02C68E23;
+0BDC : 016901A3;
+0BDD : 03E31A7D;
+0BDE : 1813FC0A;
+0BDF : 74130014;
+0BE0 : F8690FF8;
+0BE1 : 00148893;
+0BE2 : 44814405;
+0BE3 : FD7893E3;
+0BE4 : 4509B745;
+0BE5 : 4705B765;
+0BE6 : 18B77F63;
+0BE7 : CC221101;
+0BE8 : CA26CE06;
+0BE9 : C64EC84A;
+0BEA : 87AA4104;
+0BEB : A083842E;
+0BEC : 450501C4;
+0BED : 0015FE63;
+0BEE : 0004C283;
+0BEF : 8B63468D;
+0BF0 : EE6310D2;
+0BF1 : 8F630056;
+0BF2 : 488906A2;
+0BF3 : 0D128C63;
+0BF4 : 446240F2;
+0BF5 : 494244D2;
+0BF6 : 610549B2;
+0BF7 : 48918082;
+0BF8 : FF1298E3;
+0BF9 : 0107A903;
+0BFA : 0147A983;
+0BFB : 0077CE83;
+0BFC : 01396E33;
+0BFD : 000E0663;
+0BFE : 0087AF03;
+0BFF : 000F1563;
+0C00 : 97E34505;
+0C01 : AF83FC0E;
+0C02 : 47090087;
+0C03 : 00A4D283;
+0C04 : 41F400B3;
+0C05 : 0EEE9363;
+0C06 : 00193893;
+0C07 : FFF90813;
+0C08 : 41198933;
+0C09 : 01791993;
+0C0A : 00985E13;
+0C0B : 01C9EEB3;
+0C0C : 025EDF33;
+0C0D : 6DE34505;
+0C0E : 8063F81F;
+0C0F : 051311E0;
+0C10 : B7790014;
+0C11 : 0015D093;
+0C12 : 89335498;
+0C13 : 529300B0;
+0C14 : 85B30099;
+0C15 : 852600E2;
+0C16 : C1193335;
+0C17 : BF8D557D;
+0C18 : 0993549C;
+0C19 : 76930019;
+0C1A : 85B31FF9;
+0C1B : D31300D4;
+0C1C : C9030099;
+0C1D : 852603C5;
+0C1E : 00F305B3;
+0C1F : FD793321;
+0C20 : 1FF9F513;
+0C21 : C38394AA;
+0C22 : 880503C4;
+0C23 : 00839613;
+0C24 : 01266833;
+0C25 : 5513C401;
+0C26 : BF1D0048;
+0C27 : 55130852;
+0C28 : B73D0148;
+0C29 : 0284AE83;
+0C2A : 0085DE13;
+0C2B : 05B38526;
+0C2C : 39C901DE;
+0C2D : 1F13F545;
+0C2E : 7F930014;
+0C2F : 80B31FEF;
+0C30 : C70301F4;
+0C31 : C28303D0;
+0C32 : 199303C0;
+0C33 : E5330087;
+0C34 : BDFD0059;
+0C35 : 0284A303;
+0C36 : 8526819D;
+0C37 : 315D959A;
+0C38 : 1393FD35;
+0C39 : F6130024;
+0C3A : 85131FC3;
+0C3B : 953203C4;
+0C3C : 93FFF0EF;
+0C3D : 00451813;
+0C3E : 468DBF79;
+0C3F : 00DE9563;
+0C40 : EEE34F8C;
+0C41 : 4FDCF2B0;
+0C42 : 5488EB8D;
+0C43 : 00745313;
+0C44 : 00A305B3;
+0C45 : 31BD8526;
+0C46 : 040AF131;
+0C47 : 1FC47393;
+0C48 : 03C48493;
+0C49 : 00748533;
+0C4A : 907FF0EF;
+0C4B : 00151613;
+0C4C : 00165513;
+0C4D : 4505BD71;
+0C4E : 0FB78082;
+0C4F : C5138000;
+0C50 : B579FFFF;
+0C51 : D2267179;
+0C52 : D606D04A;
+0C53 : CE4ED422;
+0C54 : CA56CC52;
+0C55 : 47114100;
+0C56 : 4683892A;
+0C57 : 84AE0004;
+0C58 : 002007B7;
+0C59 : 00E69463;
+0C5A : 100007B7;
+0C5B : 00F4EC63;
+0C5C : 50B24509;
+0C5D : 54925422;
+0C5E : 49F25902;
+0C5F : 4AD24A62;
+0C60 : 80826145;
+0C61 : 01F4F093;
+0C62 : FE0094E3;
+0C63 : 00892583;
+0C64 : 02992823;
+0C65 : 4303E5B5;
+0C66 : 43890004;
+0C67 : 0263EE63;
+0C68 : 00845803;
+0C69 : 0054D613;
+0C6A : FD0674E3;
+0C6B : 2C235448;
+0C6C : 2A2302A9;
+0C6D : DD4D02B9;
+0C6E : 0094D893;
+0C6F : 03C40E93;
+0C70 : 1FF4FF13;
+0C71 : 00A88E33;
+0C72 : 01EE8FB3;
+0C73 : 03C92C23;
+0C74 : 03F92E23;
+0C75 : BF714501;
+0C76 : 02C42283;
+0C77 : 000903A3;
+0C78 : FC0280E3;
+0C79 : 00A45983;
+0C7A : 5A7D8596;
+0C7B : 4A8509A6;
+0C7C : 0134FA63;
+0C7D : C62E8522;
+0C7E : 905FF0EF;
+0C7F : BF4545B2;
+0C80 : B7CD82AE;
+0C81 : 3B41854A;
+0C82 : 0A6385AA;
+0C83 : F1E30145;
+0C84 : 4C48F6AA;
+0C85 : F4A5FEE3;
+0C86 : 413484B3;
+0C87 : 4505BFD1;
+0C88 : 1101BF89;
+0C89 : C452CA26;
+0C8A : CC22CE06;
+0C8B : C64EC84A;
+0C8C : C05AC256;
+0C8D : 44894A05;
+0C8E : 02BA7263;
+0C8F : 89AA4D5C;
+0C90 : 4489892E;
+0C91 : 00F5FC63;
+0C92 : 00054083;
+0C93 : 84324709;
+0C94 : 12E08563;
+0C95 : 00176F63;
+0C96 : 07408D63;
+0C97 : 446240F2;
+0C98 : 49B24942;
+0C99 : 4A924A22;
+0C9A : 85264B02;
+0C9B : 610544D2;
+0C9C : 84938082;
+0C9D : F893FFD0;
+0C9E : 44890FF4;
+0C9F : FF1A60E3;
+0CA0 : 02852B03;
+0CA1 : 0075DA93;
+0CA2 : 016A85B3;
+0CA3 : AF9FF0EF;
+0CA4 : F56984AA;
+0CA5 : 0009CF83;
+0CA6 : 00291E93;
+0CA7 : 03C98E13;
+0CA8 : 1FCEFF13;
+0CA9 : 0A334911;
+0CAA : 8F6301EE;
+0CAB : 8552012F;
+0CAC : F7EFF0EF;
+0CAD : 00441793;
+0CAE : F00005B7;
+0CAF : 0047D713;
+0CB0 : 00B572B3;
+0CB1 : 00576433;
+0CB2 : 855285A2;
+0CB3 : FDEFF0EF;
+0CB4 : D093A079;
+0CB5 : 23830015;
+0CB6 : 8A330285;
+0CB7 : 531300B0;
+0CB8 : 05B3009A;
+0CB9 : F0EF0073;
+0CBA : 84AAA9FF;
+0CBB : 8A93F925;
+0CBC : 751303C9;
+0CBD : 79131FFA;
+0CBE : 0B130019;
+0CBF : 8633001A;
+0CC0 : 7F9300AA;
+0CC1 : 01630FF4;
+0CC2 : 46830209;
+0CC3 : 64850006;
+0CC4 : 00441893;
+0CC5 : FF048E13;
+0CC6 : 00F6F813;
+0CC7 : 01C8FEB3;
+0CC8 : 01D86F33;
+0CC9 : 0FFF7F93;
+0CCA : 01F60023;
+0CCB : 0289A583;
+0CCC : 57134785;
+0CCD : 81A3009B;
+0CCE : 95BA00F9;
+0CCF : F0EF854E;
+0CD0 : 84AAA47F;
+0CD1 : 7293FD01;
+0CD2 : 80B31FFB;
+0CD3 : 0C63005A;
+0CD4 : 5B130009;
+0CD5 : 7A930044;
+0CD6 : 80230FFB;
+0CD7 : 45050150;
+0CD8 : 00A981A3;
+0CD9 : CA03BDE5;
+0CDA : 80210000;
+0CDB : 00F47393;
+0CDC : FF0A7313;
+0CDD : 00736AB3;
+0CDE : 2283B7CD;
+0CDF : 81A10285;
+0CE0 : F0EF9596;
+0CE1 : 84AAA03F;
+0CE2 : EC051AE3;
+0CE3 : 00191393;
+0CE4 : 03C98313;
+0CE5 : 1FE3F513;
+0CE6 : 00A30633;
+0CE7 : 00860023;
+0CE8 : 56930442;
+0CE9 : D8130104;
+0CEA : 00A30086;
+0CEB : 81A30106;
+0CEC : B56D0149;
+0CED : CC221101;
+0CEE : C84ACA26;
+0CEF : CE06C64E;
+0CF0 : 84AE842A;
+0CF1 : 49858932;
+0CF2 : EB894C5C;
+0CF3 : 40F24501;
+0CF4 : 44D24462;
+0CF5 : 49B24942;
+0CF6 : 80826105;
+0CF7 : 40F48733;
+0CF8 : 05934008;
+0CF9 : 864A0017;
+0CFA : 01378463;
+0CFB : 00270613;
+0CFC : FD713D0D;
+0CFD : 01C42083;
+0CFE : FFF08293;
+0CFF : 00542E23;
+0D00 : 7179B7E1;
+0D01 : D422D606;
+0D02 : D04AD226;
+0D03 : CC52CE4E;
+0D04 : C85ACA56;
+0D05 : C462C65E;
+0D06 : 41044785;
+0D07 : 00B7EF63;
+0D08 : 50B24509;
+0D09 : 54925422;
+0D0A : 49F25902;
+0D0B : 4AD24A62;
+0D0C : 4BB24B42;
+0D0D : 61454C22;
+0D0E : A0838082;
+0D0F : 842E01C4;
+0D10 : FE15F0E3;
+0D11 : 89B2892A;
+0D12 : 8C22E61D;
+0D13 : 5BFD4B05;
+0D14 : 85A24A91;
+0D15 : F0EF854A;
+0D16 : 8A22B41F;
+0D17 : ED05842A;
+0D18 : 0004C483;
+0D19 : 96634791;
+0D1A : 9D6300F4;
+0D1B : 03A30809;
+0D1C : 45010009;
+0D1D : C703B77D;
+0D1E : 42910004;
+0D1F : 00571763;
+0D20 : 00754303;
+0D21 : 02E34389;
+0D22 : 567DFC73;
+0D23 : 852685CE;
+0D24 : DD453B49;
+0D25 : 05E3B779;
+0D26 : 1463F965;
+0D27 : 45050175;
+0D28 : C503B749;
+0D29 : 1E630004;
+0D2A : 4CD00355;
+0D2B : 06934C8C;
+0D2C : EE63FFE6;
+0D2D : 0E9302D5;
+0D2E : 8F63001A;
+0D2F : CF03008E;
+0D30 : 1A630004;
+0D31 : 4681015F;
+0D32 : 418E8633;
+0D33 : 852685E2;
+0D34 : A21FF0EF;
+0D35 : 8C22F539;
+0D36 : 01C4AF83;
+0D37 : F7F46BE3;
+0D38 : 4601B741;
+0D39 : 852685D2;
+0D3A : D1613B2D;
+0D3B : C883BF1D;
+0D3C : 88130044;
+0D3D : AC230015;
+0D3E : EE130104;
+0D3F : 82230018;
+0D40 : BF5501C4;
+0D41 : 00794083;
+0D42 : 02009863;
+0D43 : 00892A83;
+0D44 : 5BFD4B05;
+0D45 : 013A9663;
+0D46 : 03A34989;
+0D47 : BF910139;
+0D48 : 854A85D6;
+0D49 : A73FF0EF;
+0D4A : EEAB7CE3;
+0D4B : F77509E3;
+0D4C : 81E30A85;
+0D4D : BF35FEAA;
+0D4E : 9CE3470D;
+0D4F : 2283F2E0;
+0D50 : E8E30089;
+0D51 : 2303F259;
+0D52 : 83B30189;
+0D53 : E2E30062;
+0D54 : B7D9F333;
+0D55 : 00754703;
+0D56 : 1F63478D;
+0D57 : 114102F7;
+0D58 : C606C422;
+0D59 : C04AC226;
+0D5A : 4D04450C;
+0D5B : 94AE842A;
+0D5C : 00959B63;
+0D5D : 000403A3;
+0D5E : 40B24501;
+0D5F : 44924422;
+0D60 : 01414902;
+0D61 : 40088082;
+0D62 : 00158913;
+0D63 : F0EF864A;
+0D64 : F565C95F;
+0D65 : BFE985CA;
+0D66 : 80824501;
+0D67 : D4227179;
+0D68 : D226D606;
+0D69 : CE4ED04A;
+0D6A : C62E842A;
+0D6B : F72FF0EF;
+0D6C : 45B2ED21;
+0D6D : 09938522;
+0D6E : F0EF03C4;
+0D6F : DC08D42F;
+0D70 : 0613892A;
+0D71 : 45812000;
+0D72 : F0EF854E;
+0D73 : 4481B08F;
+0D74 : 00A45783;
+0D75 : 00F4EF63;
+0D76 : 00A45503;
+0D77 : 409500B3;
+0D78 : 00103533;
+0D79 : 542250B2;
+0D7A : 59025492;
+0D7B : 614549F2;
+0D7C : 45038082;
+0D7D : 46850014;
+0D7E : 00990633;
+0D7F : E0EF85CE;
+0D80 : F979AD8F;
+0D81 : B7E90485;
+0D82 : BFE94505;
+0D83 : C4221141;
+0D84 : C226C606;
+0D85 : F0EF842A;
+0D86 : E155F08F;
+0D87 : 00044703;
+0D88 : 1663478D;
+0D89 : 408308F7;
+0D8A : 42850044;
+0D8B : 08509163;
+0D8C : 03C40493;
+0D8D : 20000613;
+0D8E : 85264581;
+0D8F : A96FF0EF;
+0D90 : 06100593;
+0D91 : 02B40F23;
+0D92 : 22B401A3;
+0D93 : 06134C0C;
+0D94 : 06930410;
+0D95 : 03130720;
+0D96 : 03930550;
+0D97 : 0513FAA0;
+0D98 : 0D230520;
+0D99 : 0DA32264;
+0D9A : 0FA32274;
+0D9B : 002302C4;
+0D9C : 00A322D4;
+0D9D : 012322D4;
+0D9E : 0E2322C4;
+0D9F : 0EA302A4;
+0DA0 : 051302A4;
+0DA1 : F0EF2244;
+0DA2 : 484CC24F;
+0DA3 : 22840513;
+0DA4 : C1AFF0EF;
+0DA5 : 02442803;
+0DA6 : 00144503;
+0DA7 : 06134685;
+0DA8 : DC100018;
+0DA9 : E0EF85A6;
+0DAA : 0223A30F;
+0DAB : 45030004;
+0DAC : 46010014;
+0DAD : E0EF4581;
+0DAE : 3533902F;
+0DAF : 40B200A0;
+0DB0 : 44924422;
+0DB1 : 80820141;
+0DB2 : D2267179;
+0DB3 : CC52CE4E;
+0DB4 : D422D606;
+0DB5 : CA56D04A;
+0DB6 : 0005A023;
+0DB7 : 8A3289AE;
+0DB8 : DBAFF0EF;
+0DB9 : 426344AD;
+0DBA : 17130405;
+0DBB : 00930025;
+0DBC : 82B31340;
+0DBD : A40300E0;
+0DBE : 892A0002;
+0DBF : C41544B1;
+0DC0 : 0089A023;
+0DC1 : 00044303;
+0DC2 : 0FEA7493;
+0DC3 : 02030963;
+0DC4 : 00144503;
+0DC5 : DF5FD0EF;
+0DC6 : 00157393;
+0DC7 : 02039163;
+0DC8 : 7493C489;
+0DC9 : C0910045;
+0DCA : 50B244A9;
+0DCB : 59025422;
+0DCC : 4A6249F2;
+0DCD : 85264AD2;
+0DCE : 61455492;
+0DCF : 75138082;
+0DD0 : 00230FF9;
+0DD1 : 00A30004;
+0DD2 : E0EF00A4;
+0DD3 : 7593832F;
+0DD4 : 96630015;
+0DD5 : C0994205;
+0DD6 : F5798911;
+0DD7 : 85224581;
+0DD8 : E60FF0EF;
+0DD9 : 13634489;
+0DDA : 848A0495;
+0DDB : 20240A13;
+0DDC : 24240A93;
+0DDD : 855289A6;
+0DDE : AB6FF0EF;
+0DDF : 00A9A023;
+0DE0 : 09910A41;
+0DE1 : FF5A19E3;
+0DE2 : 01048913;
+0DE3 : 408C4A85;
+0DE4 : C591450D;
+0DE5 : F0EF8522;
+0DE6 : F363E2AF;
+0DE7 : 049102AA;
+0DE8 : FF2497E3;
+0DE9 : 1B634411;
+0DEA : A0210085;
+0DEB : 14634611;
+0DEC : 448500C5;
+0DED : 4685BF9D;
+0DEE : 00A6F463;
+0DEF : B7B544B5;
+0DF0 : 29834805;
+0DF1 : 1D630384;
+0DF2 : 0E131B05;
+0DF3 : 05130474;
+0DF4 : 490307C4;
+0DF5 : 13E3000E;
+0DF6 : 0E05FE09;
+0DF7 : FFC51BE3;
+0DF8 : 0A544E83;
+0DF9 : 0A444A03;
+0DFA : 10000F93;
+0DFB : 008E9F13;
+0DFC : 014F64B3;
+0DFD : FDF494E3;
+0DFE : 0A844703;
+0DFF : 1FE340A5;
+0E00 : 0513FA17;
+0E01 : F0EF0844;
+0E02 : 8A33A52F;
+0E03 : 3AB300A9;
+0E04 : 87B3013A;
+0E05 : F3DD00BA;
+0E06 : 09040513;
+0E07 : A12FF0EF;
+0E08 : 0AA44283;
+0E09 : 4305D008;
+0E0A : 00540123;
+0E0B : F86298E3;
+0E0C : 0A944383;
+0E0D : 00729AB3;
+0E0E : 010A9593;
+0E0F : 0105D613;
+0E10 : 00C41523;
+0E11 : 0513DE25;
+0E12 : F0EF0984;
+0E13 : 06B79E4F;
+0E14 : C8138000;
+0E15 : 892AFFD6;
+0E16 : F6A862E3;
+0E17 : 00250893;
+0E18 : 01142E23;
+0E19 : 03342223;
+0E1A : 09440513;
+0E1B : 9C2FF0EF;
+0E1C : 013504B3;
+0E1D : 0513D804;
+0E1E : F0EF08C4;
+0E1F : 954E9B4F;
+0E20 : 010A9993;
+0E21 : 0109DE13;
+0E22 : 032E0EB3;
+0E23 : 8F33D408;
+0E24 : 65E3009E;
+0E25 : 63E3F3DF;
+0E26 : 0513F3EA;
+0E27 : F0EF09C4;
+0E28 : D448990F;
+0E29 : 4A814901;
+0E2A : 08100A13;
+0E2B : 02091263;
+0E2C : 00A45F83;
+0E2D : F1FAF4E3;
+0E2E : 8522544C;
+0E2F : A40FF0EF;
+0E30 : 015505B3;
+0E31 : F0EF8522;
+0E32 : 14E3CBEF;
+0E33 : 0A85EE05;
+0E34 : 01240733;
+0E35 : 03C74083;
+0E36 : 01408763;
+0E37 : 02090793;
+0E38 : 1FF7F913;
+0E39 : 0293B7E1;
+0E3A : 09930149;
+0E3B : 853303C4;
+0E3C : F0EF0059;
+0E3D : 430593CF;
+0E3E : 71E384AA;
+0E3F : 2383ECA3;
+0E40 : 7DE301C4;
+0E41 : 5583EA75;
+0E42 : 061300A4;
+0E43 : 2803FFE5;
+0E44 : 86B30304;
+0E45 : 5A7D02C5;
+0E46 : 010688B3;
+0E47 : 03142A23;
+0E48 : 02842E03;
+0E49 : 0074D513;
+0E4A : 01C505B3;
+0E4B : F0EF8522;
+0E4C : 10E3C56F;
+0E4D : FE93E805;
+0E4E : 9F1307F4;
+0E4F : 8533002E;
+0E50 : F0EF01E9;
+0E51 : 06638ECF;
+0E52 : 04850145;
+0E53 : FC950AE3;
+0E54 : 2C23B5B5;
+0E55 : 2A230144;
+0E56 : 49110144;
+0E57 : 13800A93;
+0E58 : 000AD703;
+0E59 : 01240023;
+0E5A : 00934481;
+0E5B : 97930017;
+0E5C : D9130100;
+0E5D : 90230107;
+0E5E : 1323012A;
+0E5F : B3750124;
+0E60 : 04844E03;
+0E61 : 04744883;
+0E62 : 20000F93;
+0E63 : 008E1E93;
+0E64 : 011EEF33;
+0E65 : E3FF14E3;
+0E66 : 05344783;
+0E67 : 05244703;
+0E68 : 00879093;
+0E69 : 00E0EA33;
+0E6A : 000A1763;
+0E6B : 06040513;
+0E6C : 87EFF0EF;
+0E6D : 44838A2A;
+0E6E : 202304C4;
+0E6F : 43850344;
+0E70 : FFF48293;
+0E71 : 00940123;
+0E72 : 0FF2F313;
+0E73 : DE63E8E3;
+0E74 : 04944903;
+0E75 : 01091593;
+0E76 : 0105D513;
+0E77 : 00A41523;
+0E78 : DC050EE3;
+0E79 : FFF90A93;
+0E7A : 012AF633;
+0E7B : DC0618E3;
+0E7C : 04E44803;
+0E7D : 04D44683;
+0E7E : 00881893;
+0E7F : 00D8EAB3;
+0E80 : 01541423;
+0E81 : 00FAFE13;
+0E82 : DA0E1AE3;
+0E83 : 05044F03;
+0E84 : 04F44E83;
+0E85 : 008F1F93;
+0E86 : 01DFE533;
+0E87 : 0513E509;
+0E88 : F0EF05C4;
+0E89 : 478380CF;
+0E8A : 470304B4;
+0E8B : 909304A4;
+0E8C : E2B30087;
+0E8D : 83E300E0;
+0E8E : 8333D802;
+0E8F : D4930344;
+0E90 : 83B3004A;
+0E91 : 85B30054;
+0E92 : 69E30063;
+0E93 : 8D0DD6B5;
+0E94 : 03255633;
+0E95 : D72564E3;
+0E96 : 10000937;
+0E97 : FF590693;
+0E98 : D4C6EEE3;
+0E99 : 08936841;
+0E9A : FC63FF58;
+0E9B : 490D10C8;
+0E9C : 00260493;
+0E9D : 01328FB3;
+0E9E : 00B98733;
+0E9F : 2223CC44;
+0EA0 : 24230334;
+0EA1 : D81803F4;
+0EA2 : 1763408D;
+0EA3 : 45030C19;
+0EA4 : 45830674;
+0EA5 : 16130664;
+0EA6 : 66B30085;
+0EA7 : E83300B6;
+0EA8 : 1DE300DA;
+0EA9 : 0513D008;
+0EAA : E0EF0684;
+0EAB : 9393F85F;
+0EAC : 88930024;
+0EAD : D4481FF3;
+0EAE : 0098DE13;
+0EAF : D1CA60E3;
+0EB0 : 0E935A7D;
+0EB1 : 2C23F800;
+0EB2 : 2A230144;
+0EB3 : 02230144;
+0EB4 : 4F0D01D4;
+0EB5 : E9E914E3;
+0EB6 : 06D44F83;
+0EB7 : 06C44483;
+0EB8 : 97134A85;
+0EB9 : 60B3008F;
+0EBA : 99E30097;
+0EBB : 8593E750;
+0EBC : 85220019;
+0EBD : A90FF0EF;
+0EBE : E60512E3;
+0EBF : 23B44783;
+0EC0 : 23A44983;
+0EC1 : 929363AD;
+0EC2 : 02230087;
+0EC3 : E3330004;
+0EC4 : 85930132;
+0EC5 : 13E3A553;
+0EC6 : 0513E4B3;
+0EC7 : E0EF03C4;
+0EC8 : 5637F11F;
+0EC9 : 06934161;
+0ECA : 19E32526;
+0ECB : 0513E2D5;
+0ECC : E0EF2204;
+0ECD : 7837EFDF;
+0ECE : 08936141;
+0ECF : 1FE32728;
+0ED0 : 0513E115;
+0ED1 : E0EF2244;
+0ED2 : CC08EE9F;
+0ED3 : 22840513;
+0ED4 : EDFFE0EF;
+0ED5 : B519C848;
+0ED6 : C60A82E3;
+0ED7 : 85334A89;
+0ED8 : 1563006F;
+0ED9 : 93930159;
+0EDA : B7A10014;
+0EDB : 021487B3;
+0EDC : 0014F313;
+0EDD : 0017D293;
+0EDE : 006283B3;
+0EDF : 448DBF1D;
+0EE0 : 6E05B66D;
+0EE1 : FF5E0E93;
+0EE2 : 00CEBF33;
+0EE3 : 001F0913;
+0EE4 : 7179B5C5;
+0EE5 : CC52D04A;
+0EE6 : D422D606;
+0EE7 : CE4ED226;
+0EE8 : C85ACA56;
+0EE9 : C462C65E;
+0EEA : 892A4104;
+0EEB : E9998A2E;
+0EEC : 0144A983;
+0EED : 00098663;
+0EEE : 01C4A303;
+0EEF : 0469E063;
+0EF0 : A82D4985;
+0EF1 : BD2FF0EF;
+0EF2 : 842A4785;
+0EF3 : 02A7E063;
+0EF4 : 50B24405;
+0EF5 : 54228522;
+0EF6 : 59025492;
+0EF7 : 4A6249F2;
+0EF8 : 4B424AD2;
+0EF9 : 4C224BB2;
+0EFA : 80826145;
+0EFB : 006350FD;
+0EFC : A2831E15;
+0EFD : 89D201C4;
+0EFE : FC556DE3;
+0EFF : 0184A383;
+0F00 : 00039463;
+0F01 : B7F14401;
+0F02 : 0004C683;
+0F03 : 4CC84711;
+0F04 : 12E69C63;
+0F05 : FFE98A93;
+0F06 : FFE50B93;
+0F07 : 017AE363;
+0F08 : 84564A81;
+0F09 : 0C134B05;
+0F0A : AE831FF0;
+0F0B : 5E130344;
+0F0C : 852600C4;
+0F0D : 01DE05B3;
+0F0E : 94CFF0EF;
+0F0F : A083E541;
+0F10 : 7F9301C4;
+0F11 : 5F130074;
+0F12 : 17B30034;
+0F13 : 771301FB;
+0F14 : F6131FFF;
+0F15 : 86930FF7;
+0F16 : 8333FFE0;
+0F17 : 438300E4;
+0F18 : 82A203C3;
+0F19 : 75330405;
+0F1A : 70630076;
+0F1B : 159304D4;
+0F1C : F6130016;
+0F1D : ED1D0FF5;
+0F1E : 00228413;
+0F1F : FFF40813;
+0F20 : E8E358F5;
+0F21 : 4685F508;
+0F22 : 85A24605;
+0F23 : F0EF8526;
+0F24 : 4B89A62F;
+0F25 : F3750EE3;
+0F26 : 0A634E05;
+0F27 : 176313C5;
+0F28 : 03A3020A;
+0F29 : F50D0179;
+0F2A : 4601A8BD;
+0F2B : 07134401;
+0F2C : B7D12000;
+0F2D : 008A8A63;
+0F2E : 0705F24D;
+0F2F : F6EC67E3;
+0F30 : BF614605;
+0F31 : BF5D547D;
+0F32 : BF4D4401;
+0F33 : 00794E83;
+0F34 : 017E9F63;
+0F35 : 00198F13;
+0F36 : FC8F07E3;
+0F37 : 00892F83;
+0F38 : 03A3478D;
+0F39 : 89B300F9;
+0F3A : 2C2341F9;
+0F3B : 02930139;
+0F3C : 2083001A;
+0F3D : 9A6301C9;
+0F3E : 45890082;
+0F3F : 00008463;
+0F40 : 00108593;
+0F41 : 00B92E23;
+0F42 : 9563BF79;
+0F43 : 43050000;
+0F44 : 00692E23;
+0F45 : 85D28622;
+0F46 : F0EF854A;
+0F47 : E54DE9AF;
+0F48 : 2E234385;
+0F49 : 4CD00079;
+0F4A : C8C04C88;
+0F4B : FFE60713;
+0F4C : 00A76563;
+0F4D : FFF50693;
+0F4E : C903CC94;
+0F4F : 6A130044;
+0F50 : 82230019;
+0F51 : B5710144;
+0F52 : 03499A63;
+0F53 : 00198413;
+0F54 : 00A46363;
+0F55 : 85A24409;
+0F56 : F0EF854A;
+0F57 : 4585A3CF;
+0F58 : E6B508E3;
+0F59 : 0463567D;
+0F5A : C12106C5;
+0F5B : F76348C0;
+0F5C : A8030085;
+0F5D : 736301C4;
+0F5E : 89A20104;
+0F5F : 4A85844E;
+0F60 : A8835B7D;
+0F61 : 040501C4;
+0F62 : 01146563;
+0F63 : E7598CE3;
+0F64 : 85A24409;
+0F65 : F0EF854A;
+0F66 : C909A00F;
+0F67 : E3550AE3;
+0F68 : 03650763;
+0F69 : FD341FE3;
+0F6A : D869BDB1;
+0F6B : 85A2567D;
+0F6C : F0EF8526;
+0F6D : E909C70F;
+0F6E : F60A07E3;
+0F6F : 85D28622;
+0F70 : F0EF8526;
+0F71 : D125C60F;
+0F72 : 13E34485;
+0F73 : 547DE095;
+0F74 : 7179B509;
+0F75 : CC52D422;
+0F76 : D226D606;
+0F77 : CE4ED04A;
+0F78 : 4104CA56;
+0F79 : 03052903;
+0F7A : C6834711;
+0F7B : 842A0004;
+0F7C : 09138A2E;
+0F7D : 07B70209;
+0F7E : 94630020;
+0F7F : 07B700E6;
+0F80 : 64631000;
+0F81 : 2C2300F9;
+0F82 : 20830204;
+0F83 : 45110384;
+0F84 : 02008563;
+0F85 : 1FF97993;
+0F86 : 0A099463;
+0F87 : 8293584C;
+0F88 : 2C230010;
+0F89 : E19D0254;
+0F8A : 0084DF83;
+0F8B : 00595F13;
+0F8C : 09FF6863;
+0F8D : 02042C23;
+0F8E : 50B24511;
+0F8F : 54925422;
+0F90 : 49F25902;
+0F91 : 4AD24A62;
+0F92 : 80826145;
+0F93 : 00A4D303;
+0F94 : 00995513;
+0F95 : FFF30393;
+0F96 : 00A3F633;
+0F97 : 8522E235;
+0F98 : 936FF0EF;
+0F99 : 85AA4A85;
+0F9A : 00AAE463;
+0F9B : B7F14509;
+0F9C : 1463587D;
+0F9D : 45050105;
+0F9E : A883B7C9;
+0F9F : 6C6301C4;
+0FA0 : 09E30315;
+0FA1 : 584CFA0A;
+0FA2 : F0EF8522;
+0FA3 : 85AAD09F;
+0FA4 : D5C5451D;
+0FA5 : FD558CE3;
+0FA6 : 8EE35E7D;
+0FA7 : 8526FDC5;
+0FA8 : F0EFC62E;
+0FA9 : F961EFAF;
+0FAA : 00744583;
+0FAB : 0045EE93;
+0FAC : 03A345B2;
+0FAD : D84C01D4;
+0FAE : E0EF8526;
+0FAF : DC08C43F;
+0FB0 : 03C48A13;
+0FB1 : 013A04B3;
+0FB2 : 03242823;
+0FB3 : 4501DC44;
+0FB4 : 1101B7AD;
+0FB5 : C84ACC22;
+0FB6 : CA26CE06;
+0FB7 : C452C64E;
+0FB8 : 892EC256;
+0FB9 : 29834581;
+0FBA : 842A0005;
+0FBB : A58FF0EF;
+0FBC : 4481ED05;
+0FBD : 0A934A11;
+0FBE : 5C0C0E50;
+0FBF : E0EF854E;
+0FC0 : E11DE87F;
+0FC1 : C7035C5C;
+0FC2 : C0830009;
+0FC3 : 12630007;
+0FC4 : 92930347;
+0FC5 : D3130180;
+0FC6 : 50634182;
+0FC7 : 44810203;
+0FC8 : 85224585;
+0FC9 : D971357D;
+0FCA : 1B634391;
+0FCB : 451D0075;
+0FCC : 8463A801;
+0FCD : 94E30150;
+0FCE : 0485FE00;
+0FCF : FF2492E3;
+0FD0 : 446240F2;
+0FD1 : 494244D2;
+0FD2 : 4A2249B2;
+0FD3 : 61054A92;
+0FD4 : 11018082;
+0FD5 : CA26CC22;
+0FD6 : C84ACE06;
+0FD7 : C452C64E;
+0FD8 : C05AC256;
+0FD9 : 5C8C84AA;
+0FDA : 29034108;
+0FDB : E0EF0105;
+0FDC : 842AE17F;
+0FDD : 5CCCE909;
+0FDE : 08500793;
+0FDF : 0005C703;
+0FE0 : 00F70E63;
+0FE1 : 40F24409;
+0FE2 : 44628522;
+0FE3 : 494244D2;
+0FE4 : 4A2249B2;
+0FE5 : 4B024A92;
+0FE6 : 80826105;
+0FE7 : 02000613;
+0FE8 : E0EF854A;
+0FE9 : 4983A03F;
+0FEA : 03930019;
+0FEB : 82932000;
+0FEC : 99930019;
+0FED : 83130052;
+0FEE : E5E3FA09;
+0FEF : 4581FC63;
+0FF0 : 3D018526;
+0FF1 : 842A4591;
+0FF2 : FAB50EE3;
+0FF3 : 5C8CFD4D;
+0FF4 : E0EF4088;
+0FF5 : 842ADB3F;
+0FF6 : 5CCCF55D;
+0FF7 : 0C000413;
+0FF8 : 0005C083;
+0FF9 : FA8090E3;
+0FFA : 02000613;
+0FFB : 02090513;
+0FFC : 9B5FE0EF;
+0FFD : 02394503;
+0FFE : 061346BD;
+0FFF : 583302C5;
+1000 : 189302D6;
+1001 : EFE30058;
+1002 : 0A13F719;
+1003 : 4A910400;
+1004 : 0C100B13;
+1005 : 85264581;
+1006 : 842A3B6D;
+1007 : F75504E3;
+1008 : 5C8CF13D;
+1009 : E0EF4088;
+100A : 842AD5FF;
+100B : 5CCCFD29;
+100C : 0005CE03;
+100D : F56E18E3;
+100E : 01490533;
+100F : 02000613;
+1010 : 020A0A13;
+1011 : 961FE0EF;
+1012 : FD3A66E3;
+1013 : 26000E93;
+1014 : F34EEBE3;
+1015 : E0EF854A;
+1016 : 4F83B63F;
+1017 : 4F030039;
+1018 : 94930029;
+1019 : E933008F;
+101A : 073301E4;
+101B : 37B340A9;
+101C : 941300E0;
+101D : BF010017;
+101E : D4227179;
+101F : CE4ED226;
+1020 : CA56CC52;
+1021 : C65EC85A;
+1022 : C266C462;
+1023 : D04AD606;
+1024 : 00052903;
+1025 : 6B416A9D;
+1026 : 89AE84AA;
+1027 : 0FF00A13;
+1028 : 0FF00C93;
+1029 : 4C114411;
+102A : 8A934BB5;
+102B : 1B7D1FDA;
+102C : E1995C8C;
+102D : A29DC41D;
+102E : E0EF854A;
+102F : 842ACCBF;
+1030 : 14051E63;
+1031 : 47035CC8;
+1032 : 0D630005;
+1033 : 47831607;
+1034 : 9D630009;
+1035 : 85630587;
+1036 : 08130209;
+1037 : 18630830;
+1038 : 44011307;
+1039 : 852250B2;
+103A : 54925422;
+103B : 49F25902;
+103C : 4AD24A62;
+103D : 4BB24B42;
+103E : 4C924C22;
+103F : 80826145;
+1040 : 08500593;
+1041 : 10B71563;
+1042 : 0304A983;
+1043 : A6238526;
+1044 : 35810534;
+1045 : 1363842A;
+1046 : 29031005;
+1047 : 4A030109;
+1048 : 7A930049;
+1049 : 832303FA;
+104A : BF6D0154;
+104B : 00B54083;
+104C : 0E500693;
+104D : 03F0F293;
+104E : 00548323;
+104F : 0ED70563;
+1050 : 02E00313;
+1051 : 0E670163;
+1052 : FDF2F393;
+1053 : FF838593;
+1054 : 0015B613;
+1055 : 0D361963;
+1056 : 9C63483D;
+1057 : 74130D02;
+1058 : C0610407;
+1059 : 0304A883;
+105A : 00D54A03;
+105B : 0BF77713;
+105C : 0514A623;
+105D : 00D54E03;
+105E : 0FF00C93;
+105F : 094E1963;
+1060 : 01B54F03;
+1061 : 01A54E83;
+1062 : 008F1F93;
+1063 : 01DFE7B3;
+1064 : 4C83EFBD;
+1065 : 20830005;
+1066 : 458500C9;
+1067 : FBFCF293;
+1068 : FFF28693;
+1069 : 037683B3;
+106A : 08134601;
+106B : 83330FF0;
+106C : 440300CA;
+106D : 08B30003;
+106E : CE830085;
+106F : CE030018;
+1070 : 9F130008;
+1071 : 6FB3008E;
+1072 : C1AD01CF;
+1073 : 04786D63;
+1074 : 00139793;
+1075 : 00F08CB3;
+1076 : 01FC9023;
+1077 : 038585FE;
+1078 : 16E30605;
+1079 : 4503FD76;
+107A : 72930005;
+107B : 8D630405;
+107C : C9990002;
+107D : 0FF00693;
+107E : 0FF00C93;
+107F : 0076E963;
+1080 : 909E0386;
+1081 : 00009023;
+1082 : 7C93177D;
+1083 : 45810FF7;
+1084 : F0EF8526;
+1085 : 842ABC1F;
+1086 : E8050CE3;
+1087 : 0204AC23;
+1088 : 89E3B5D1;
+1089 : 0C93F4EC;
+108A : B7D50FF0;
+108B : FB6F8AE3;
+108C : 9663BFDD;
+108D : E0EF000C;
+108E : 04E395DF;
+108F : 557DEB45;
+1090 : B54DC4E8;
+1091 : BFD94411;
+1092 : CCA2711D;
+1093 : CE86C8CA;
+1094 : C6CECAA6;
+1095 : C2D6C4D2;
+1096 : DE5EC0DA;
+1097 : DA66DC62;
+1098 : D66ED86A;
+1099 : 29834581;
+109A : 842A0005;
+109B : ED9FE0EF;
+109C : 1F63892A;
+109D : C7032005;
+109E : 47910009;
+109F : 08F71863;
+10A0 : 00C9A503;
+10A1 : 977FE0EF;
+10A2 : 45818AAA;
+10A3 : 33ED8522;
+10A4 : 892AC119;
+10A5 : AB83AAF5;
+10A6 : CB030109;
+10A7 : CA03025B;
+10A8 : 1C13024B;
+10A9 : 6633008B;
+10AA : 90E3014C;
+10AB : CD03FECA;
+10AC : 4A01023B;
+10AD : 04000493;
+10AE : 00C9AD83;
+10AF : 001A1C93;
+10B0 : 01AA1963;
+10B1 : 019D8BB3;
+10B2 : 000BD803;
+10B3 : FA081FE3;
+10B4 : F893A2C1;
+10B5 : 936301F4;
+10B6 : 04890008;
+10B7 : 009B8E33;
+10B8 : 001E4F03;
+10B9 : 000E4E83;
+10BA : 008F1593;
+10BB : 01D5E533;
+10BC : F1EFE0EF;
+10BD : 019D8FB3;
+10BE : D5038C2A;
+10BF : E0EF000F;
+10C0 : 14E3F10F;
+10C1 : 0489F8AC;
+10C2 : B77D0A05;
+10C3 : 6A9D50FD;
+10C4 : 26236B41;
+10C5 : 0A130414;
+10C6 : 04930FF0;
+10C7 : 4BB50FF0;
+10C8 : 1FDA8A93;
+10C9 : 0C131B7D;
+10CA : 5C0C0404;
+10CB : E0EF854E;
+10CC : F125A57F;
+10CD : 03C42C83;
+10CE : 000CCD83;
+10CF : 160D8A63;
+10D0 : 00BCC283;
+10D1 : 0E500693;
+10D2 : 03F2F313;
+10D3 : 00640323;
+10D4 : 00DD8963;
+10D5 : 0082F393;
+10D6 : 00038863;
+10D7 : 0863463D;
+10D8 : 557D00C3;
+10D9 : A8E5C468;
+10DA : 1063453D;
+10DB : 480310A3;
+10DC : 789304B4;
+10DD : 9B630408;
+10DE : FD130C08;
+10DF : 0E63040D;
+10E0 : 2E030C0D;
+10E1 : CA030304;
+10E2 : FD9300DC;
+10E3 : 26230BFD;
+10E4 : CE8305C4;
+10E5 : 049300DC;
+10E6 : 99630FF0;
+10E7 : CF830B4E;
+10E8 : CF0301BC;
+10E9 : 971301AC;
+10EA : 67B3008F;
+10EB : EFD901E7;
+10EC : 000CC083;
+10ED : 00C9AD03;
+10EE : F2934685;
+10EF : 831303F0;
+10F0 : 04B3FFF2;
+10F1 : 03930373;
+10F2 : 43010FF0;
+10F3 : 006A8533;
+10F4 : 00054603;
+10F5 : 00CC8833;
+10F6 : 00184E03;
+10F7 : 00084883;
+10F8 : 008E1E93;
+10F9 : 011EEF33;
+10FA : CE1ACEB5;
+10FB : E863CC06;
+10FC : 857A0693;
+10FD : E0EFCA7A;
+10FE : 9713E18F;
+10FF : 07B30014;
+1100 : C82A00ED;
+1101 : 0007D503;
+1102 : 00148F93;
+1103 : E0EFC67E;
+1104 : 42C2E00F;
+1105 : 04A29563;
+1106 : 44B246D2;
+1107 : 437240E2;
+1108 : 0FF00393;
+1109 : 13E30305;
+110A : FC93FB73;
+110B : 8C630400;
+110C : CA91000C;
+110D : 00149093;
+110E : 53839D06;
+110F : 0493000D;
+1110 : 95630FF0;
+1111 : 1DFD0003;
+1112 : 0FFDF493;
+1113 : 85224581;
+1114 : 983FF0EF;
+1115 : EC050BE3;
+1116 : 8CE3BD2D;
+1117 : 0493F3B4;
+1118 : B7ED0FF0;
+1119 : FD6F00E3;
+111A : E491BFDD;
+111B : E0EF8566;
+111C : 0F63F24F;
+111D : 44830145;
+111E : F59304B4;
+111F : 92E30014;
+1120 : 462DEE05;
+1121 : 856685E2;
+1122 : 47B010EF;
+1123 : EC051BE3;
+1124 : 446640F6;
+1125 : 49B644D6;
+1126 : 4A964A26;
+1127 : 5BF24B06;
+1128 : 5CD25C62;
+1129 : 5DB25D42;
+112A : 4946854A;
+112B : 80826125;
+112C : BFF94911;
+112D : CE061101;
+112E : CA26CC22;
+112F : C452C64E;
+1130 : 411CC84A;
+1131 : 4A0584AA;
+1132 : 0107A903;
+1133 : E0EF854A;
+1134 : 0123EEAF;
+1135 : 812100A9;
+1136 : 00A901A3;
+1137 : 852644EC;
+1138 : 00194983;
+1139 : C61FE0EF;
+113A : CC19842A;
+113B : 75134089;
+113C : F3630FF4;
+113D : 45090080;
+113E : 446240F2;
+113F : 494244D2;
+1140 : 4A2249B2;
+1141 : 80826105;
+1142 : 40885C8C;
+1143 : 879FE0EF;
+1144 : FD69842A;
+1145 : 06135CC8;
+1146 : 85CA0200;
+1147 : C88FE0EF;
+1148 : 0004A283;
+1149 : 014281A3;
+114A : FC0982E3;
+114B : 85264581;
+114C : 8A3FF0EF;
+114D : 02090913;
+114E : 19FD842A;
+114F : 7175B77D;
+1150 : C706C326;
+1151 : C14AC522;
+1152 : DCD2DECE;
+1153 : D8DADAD6;
+1154 : D4E2D6DE;
+1155 : 4903D2E6;
+1156 : 449904B5;
+1157 : 0A097793;
+1158 : 1C079063;
+1159 : 00052A03;
+115A : 4981842A;
+115B : 00CA2483;
+115C : 00199093;
+115D : 001482B3;
+115E : 0002D303;
+115F : 0E031963;
+1160 : 000A4703;
+1161 : 1D634391;
+1162 : 8E931A77;
+1163 : 463D00E9;
+1164 : 02CED933;
+1165 : 05938522;
+1166 : F0EF0029;
+1167 : 84AA939F;
+1168 : 18051063;
+1169 : 03042F83;
+116A : 00744283;
+116B : 00190F13;
+116C : 005F1593;
+116D : 40BF87B3;
+116E : F813C47C;
+116F : 0A630042;
+1170 : F0930A08;
+1171 : 03A3FFB2;
+1172 : 85220014;
+1173 : F89FE0EF;
+1174 : 584CED49;
+1175 : 8522567D;
+1176 : DDDFE0EF;
+1177 : 2A83E559;
+1178 : 88630084;
+1179 : 2C83080A;
+117A : 29830244;
+117B : 2C030004;
+117C : 540C0204;
+117D : F00CFB13;
+117E : C84E0808;
+117F : 0BA3CC62;
+1180 : D05A0191;
+1181 : D602D202;
+1182 : E0EFCEAE;
+1183 : ED31B3BF;
+1184 : F0EF0808;
+1185 : E931941F;
+1186 : 00AA5B83;
+1187 : 01042303;
+1188 : 01442383;
+1189 : 009B9693;
+118A : 006685B3;
+118B : 00D5B533;
+118C : 00750633;
+118D : C850C80C;
+118E : 010A2703;
+118F : 03870513;
+1190 : C86FE0EF;
+1191 : 010A2883;
+1192 : 4850480C;
+1193 : 02888513;
+1194 : C76FE0EF;
+1195 : 00744403;
+1196 : 010A2E03;
+1197 : 6E930808;
+1198 : 00A30014;
+1199 : 35B903DE;
+119A : 84AAC509;
+119B : 0985A855;
+119C : 2403B701;
+119D : 0613010A;
+119E : 45810400;
+119F : 29038522;
+11A0 : E0EF00CA;
+11A1 : 0A13A50F;
+11A2 : 0613F850;
+11A3 : 4F11FC00;
+11A4 : 01440023;
+11A5 : 02C40023;
+11A6 : 46814A81;
+11A7 : 0C134285;
+11A8 : 08930400;
+11A9 : 0733FC10;
+11AA : 07B3408F;
+11AB : 80230184;
+11AC : 80A30117;
+11AD : 8E630007;
+11AE : 95930002;
+11AF : 0FB3001A;
+11B0 : D28300B9;
+11B1 : 8663000F;
+11B2 : 80930002;
+11B3 : FA93001A;
+11B4 : 0C330FF0;
+11B5 : D99300F7;
+11B6 : 81230082;
+11B7 : 81A30057;
+11B8 : 7C930137;
+11B9 : 078901FC;
+11BA : FC0C97E3;
+11BB : 001A9313;
+11BC : 006903B3;
+11BD : 0003D503;
+11BE : 00168B13;
+11BF : 0FFB7B93;
+11C0 : 8813ED15;
+11C1 : 854A0026;
+11C2 : 035401A3;
+11C3 : 010400A3;
+11C4 : CEAFE0EF;
+11C5 : 00855913;
+11C6 : 02A40223;
+11C7 : 032402A3;
+11C8 : 442A40BA;
+11C9 : 59F6490A;
+11CA : 5AD65A66;
+11CB : 5BB65B46;
+11CC : 5C965C26;
+11CD : 449A8526;
+11CE : 80826149;
+11CF : B7B586DE;
+11D0 : 04040A93;
+11D1 : 85D64631;
+11D2 : 74930808;
+11D3 : E0EF0019;
+11D4 : 8663A56F;
+11D5 : 05131E04;
+11D6 : 6B450400;
+11D7 : 04A405A3;
+11D8 : 6BC14C05;
+11D9 : 021B0B13;
+11DA : 462D080C;
+11DB : 2C838556;
+11DC : E0EF00CA;
+11DD : 4595A32F;
+11DE : 0D85EB63;
+11DF : 451D8EE2;
+11E0 : 03900393;
+11E1 : F893433D;
+11E2 : 861300FE;
+11E3 : 8E760308;
+11E4 : 004EDE93;
+11E5 : 00C3F463;
+11E6 : 03788613;
+11E7 : 00810F13;
+11E8 : 00AF06B3;
+11E9 : FFF50713;
+11EA : 00C68023;
+11EB : 6263C319;
+11EC : 07930BC3;
+11ED : 0F930607;
+11EE : 80B307E0;
+11EF : 84230027;
+11F0 : 4681FBF0;
+11F1 : 02000C93;
+11F2 : 00E68A63;
+11F3 : 00168293;
+11F4 : 00540333;
+11F5 : 03F34383;
+11F6 : 07939F63;
+11F7 : 00D408B3;
+11F8 : 00840493;
+11F9 : 0813451D;
+11FA : 69630200;
+11FB : 0C9300E5;
+11FC : 85B30607;
+11FD : C803002C;
+11FE : 0705FA85;
+11FF : 05088023;
+1200 : 92E30885;
+1201 : 8522FF14;
+1202 : A41FF0EF;
+1203 : 136384AA;
+1204 : 0C051205;
+1205 : 06400E13;
+1206 : F5CC18E3;
+1207 : B709449D;
+1208 : 4E410C89;
+1209 : 00187893;
+120A : 001E9713;
+120B : 00E88EB3;
+120C : 017EF4B3;
+120D : 00185813;
+120E : CEB3C099;
+120F : 1E7D016E;
+1210 : FE0E12E3;
+1211 : 000CD803;
+1212 : FC081CE3;
+1213 : 8EE2BF0D;
+1214 : 853ABFD5;
+1215 : 8696BF0D;
+1216 : 2F83BF85;
+1217 : 16930304;
+1218 : 85220059;
+1219 : 40DF85B3;
+121A : 8DDFE0EF;
+121B : 19E384AA;
+121C : 8556EA05;
+121D : B1EFE0EF;
+121E : 629D67C1;
+121F : 4C3D89AA;
+1220 : 8C934BB5;
+1221 : 8B13FFF7;
+1222 : 5C0C1FD2;
+1223 : E0EF8552;
+1224 : 84AACF6F;
+1225 : E80516E3;
+1226 : 0FF97393;
+1227 : FFF38513;
+1228 : 037504B3;
+1229 : 03C42303;
+122A : 00CA2083;
+122B : 0FF97813;
+122C : 013306A3;
+122D : 018305A3;
+122E : 00030623;
+122F : 00030D23;
+1230 : 00030DA3;
+1231 : 45814681;
+1232 : 01968963;
+1233 : 00149713;
+1234 : 00E088B3;
+1235 : 0008D683;
+1236 : 0E330485;
+1237 : 4E8300BB;
+1238 : DF13000E;
+1239 : 06330086;
+123A : 002301D3;
+123B : 00A300D6;
+123C : E29101E6;
+123D : 058586E6;
+123E : FD7598E3;
+123F : 01968A63;
+1240 : 00149F93;
+1241 : 01F087B3;
+1242 : 0007D283;
+1243 : 00029463;
+1244 : 04086813;
+1245 : 01030023;
+1246 : 01A34085;
+1247 : 4581001A;
+1248 : F0EF8522;
+1249 : 84AACB0F;
+124A : DE051CE3;
+124B : 1EE3197D;
+124C : A82DF409;
+124D : 15E34B91;
+124E : 05A3DF75;
+124F : 7B130524;
+1250 : 4C850029;
+1251 : 000B0963;
+1252 : 00C98E93;
+1253 : DF334635;
+1254 : 0C9302CE;
+1255 : 85E6001F;
+1256 : F0EF8522;
+1257 : 84AAD78F;
+1258 : DC0510E3;
+1259 : FFFC8913;
+125A : EE0919E3;
+125B : 85525C0C;
+125C : C14FE0EF;
+125D : 15E384AA;
+125E : 5C48DA05;
+125F : 02000613;
+1260 : D0EF4581;
+1261 : 5C48F51F;
+1262 : 462D85D6;
+1263 : 818FE0EF;
+1264 : 03C42A83;
+1265 : 04B44403;
+1266 : 79934C05;
+1267 : 86230184;
+1268 : 01A3013A;
+1269 : BBAD018A;
+126A : 01B5C783;
+126B : 01A5C683;
+126C : 9293872A;
+126D : 430D0087;
+126E : 00D2E533;
+126F : 00671E63;
+1270 : 0145C383;
+1271 : 0155C583;
+1272 : 00859613;
+1273 : 00766833;
+1274 : 01081893;
+1275 : 01156533;
+1276 : 715D8082;
+1277 : C4A2C686;
+1278 : CE6ED65E;
+1279 : C0CAC2A6;
+127A : DC52DE4E;
+127B : D85ADA56;
+127C : D266D462;
+127D : 2903D06A;
+127E : 8DAA0005;
+127F : 0093842E;
+1280 : 0B9302F0;
+1281 : 478305C0;
+1282 : 83630004;
+1283 : 81630417;
+1284 : A4230577;
+1285 : AE23000D;
+1286 : 4683000D;
+1287 : 40FD0004;
+1288 : 28D0E563;
+1289 : 07934426;
+128A : 40B6F800;
+128B : 49064496;
+128C : 5A6259F2;
+128D : 5B425AD2;
+128E : 5C225BB2;
+128F : 5D025C92;
+1290 : 04FD85A3;
+1291 : 4DF2856E;
+1292 : 61614581;
+1293 : EF8FE06F;
+1294 : BF550405;
+1295 : 48030405;
+1296 : 07130004;
+1297 : 0BE302F0;
+1298 : 0893FEE8;
+1299 : 07E305C0;
+129A : 3B13FF18;
+129B : 0B0A0208;
+129C : 02000E93;
+129D : 02E00E13;
+129E : 00199B93;
+129F : 0A099163;
+12A0 : 017487B3;
+12A1 : 00079023;
+12A2 : 28098B63;
+12A3 : 00934681;
+12A4 : 92930200;
+12A5 : 8C330016;
+12A6 : 5C830054;
+12A7 : 8D36000C;
+12A8 : 88E30685;
+12A9 : 1663FE1C;
+12AA : 0A93000D;
+12AB : 946302E0;
+12AC : 6B13015C;
+12AD : 0A13003B;
+12AE : 931302E0;
+12AF : 83B30019;
+12B0 : D5030064;
+12B1 : 0563FFE3;
+12B2 : 19FD0145;
+12B3 : FE0997E3;
+12B4 : 0593462D;
+12B5 : 85130200;
+12B6 : C66A040D;
+12B7 : DF7FD0EF;
+12B8 : 4CA14E32;
+12B9 : 4B814D01;
+12BA : 4AE54C2D;
+12BB : 001E1593;
+12BC : 00B48633;
+12BD : 00065583;
+12BE : 001E0A13;
+12BF : 0813C5B9;
+12C0 : 88630200;
+12C1 : 07130105;
+12C2 : 946302E0;
+12C3 : 066302E5;
+12C4 : 6B13033A;
+12C5 : 8E52003B;
+12C6 : 4B11BFD1;
+12C7 : 8F33BF91;
+12C8 : 5F830174;
+12C9 : 8463FFEF;
+12CA : 9BE301DF;
+12CB : 19FDF5CF;
+12CC : 7763B7A1;
+12CD : 1163019D;
+12CE : 98630B3A;
+12CF : A019098C;
+12D0 : 078C9F63;
+12D1 : 003B6B13;
+12D2 : CE834CAD;
+12D3 : 0F13040D;
+12D4 : 95630E50;
+12D5 : 4F9501EE;
+12D6 : 05FD8023;
+12D7 : 966347A1;
+12D8 : 909300FC;
+12D9 : FB93002B;
+12DA : F2930FF0;
+12DB : 46B100CB;
+12DC : 00D28763;
+12DD : 003BF313;
+12DE : 1463438D;
+12DF : 6B130073;
+12E0 : 7513002B;
+12E1 : E919002B;
+12E2 : 001BF613;
+12E3 : 6B13C219;
+12E4 : F593010B;
+12E5 : C199004B;
+12E6 : 008B6B13;
+12E7 : 056D85A3;
+12E8 : F0EF856E;
+12E9 : C803EA6F;
+12EA : CD4504BD;
+12EB : 19634411;
+12EC : 79131685;
+12ED : 15630048;
+12EE : 45151609;
+12EF : 0663A295;
+12F0 : 6B13013A;
+12F1 : E2E3003B;
+12F2 : 0B8AF949;
+12F3 : 0FFBFB93;
+12F4 : 4CAD8A4E;
+12F5 : B7814D21;
+12F6 : 07F00893;
+12F7 : 02B8F563;
+12F8 : D0EF852E;
+12F9 : 1E13E2DF;
+12FA : 55930105;
+12FB : 8E93010E;
+12FC : 9F13FFF5;
+12FD : 5F93010E;
+12FE : 0793010F;
+12FF : 6B130FE0;
+1300 : EA63002B;
+1301 : 609D01F7;
+1302 : 1F608513;
+1303 : 10EFC62E;
+1304 : 473258A0;
+1305 : 6B13C919;
+1306 : 0713003B;
+1307 : 88B305F0;
+1308 : 802301AD;
+1309 : 0D0504E8;
+130A : 0293B5FD;
+130B : 9693FBF7;
+130C : D3130102;
+130D : E5630106;
+130E : EB93006A;
+130F : B7C5002B;
+1310 : F9F70393;
+1311 : 01039513;
+1312 : 01055613;
+1313 : FCCAE9E3;
+1314 : FE070593;
+1315 : 01059813;
+1316 : 001BEB93;
+1317 : 01085713;
+1318 : 7713BF7D;
+1319 : EF4D0048;
+131A : 006DC883;
+131B : 0108FD13;
+131C : F40D05E3;
+131D : 00094503;
+131E : 15634A11;
+131F : AC030945;
+1320 : CE83010D;
+1321 : AA83007D;
+1322 : AF83008D;
+1323 : 7E1304CD;
+1324 : 6F33F00C;
+1325 : A02301DE;
+1326 : A223035D;
+1327 : A42303ED;
+1328 : 85EE03FD;
+1329 : D0EF854A;
+132A : A283FB5F;
+132B : 4981000D;
+132C : A4834C7D;
+132D : 0C9300C2;
+132E : 0D1307F0;
+132F : 45830FF0;
+1330 : 04050004;
+1331 : 01059A93;
+1332 : 010ADA13;
+1333 : E4BC77E3;
+1334 : 02F00313;
+1335 : D86A01E3;
+1336 : 05C00393;
+1337 : D67A0DE3;
+1338 : 014CE863;
+1339 : 0513651D;
+133A : 10EF1ED5;
+133B : E9054AE0;
+133C : 03A98763;
+133D : 00199593;
+133E : 00B48633;
+133F : 01461023;
+1340 : BF750985;
+1341 : 030DA483;
+1342 : 03C90C93;
+1343 : 1FF4F993;
+1344 : 013C85B3;
+1345 : C95FF0EF;
+1346 : 00ADA423;
+1347 : 4519B779;
+1348 : 442640B6;
+1349 : 49064496;
+134A : 5A6259F2;
+134B : 5B425AD2;
+134C : 5C225BB2;
+134D : 5D025C92;
+134E : 61614DF2;
+134F : 71798082;
+1350 : 0868C62A;
+1351 : D606D422;
+1352 : 8432C42E;
+1353 : D0EFCE2E;
+1354 : 4463F4DF;
+1355 : 07130405;
+1356 : 050A1340;
+1357 : 00A700B3;
+1358 : 0000A283;
+1359 : 13400313;
+135A : 00028463;
+135B : 00028023;
+135C : 846343B2;
+135D : 80230003;
+135E : 05B30003;
+135F : A02300A3;
+1360 : C4190075;
+1361 : 006C4601;
+1362 : E0EF0028;
+1363 : 842A93FF;
+1364 : 852250B2;
+1365 : 61455422;
+1366 : 442D8082;
+1367 : 0113BFD5;
+1368 : 2623B001;
+1369 : 2E234F31;
+136A : 2C234E11;
+136B : 2A234E81;
+136C : 28234E91;
+136D : 24234F21;
+136E : 22234F41;
+136F : 20234F51;
+1370 : 2E234F61;
+1371 : 2C234D71;
+1372 : C62E4D81;
+1373 : CD3949A5;
+1374 : 03F67A13;
+1375 : 8932842A;
+1376 : 8652086C;
+1377 : E0EF0068;
+1378 : 89AA8EBF;
+1379 : 44F2E129;
+137A : 189C45B2;
+137B : 27010093;
+137C : A823C4DC;
+137D : 10080014;
+137E : F0EFD026;
+137F : E511BE1F;
+1380 : 06B10283;
+1381 : 0002D363;
+1382 : 73134519;
+1383 : 066301C9;
+1384 : C5292403;
+1385 : 18634A91;
+1386 : 10080155;
+1387 : F22FF0EF;
+1388 : 008A6A13;
+1389 : 2023C931;
+138A : 89AA0004;
+138B : 4FC12083;
+138C : 4F812403;
+138D : 4F412483;
+138E : 4F012903;
+138F : 4E812A03;
+1390 : 4E412A83;
+1391 : 4E012B03;
+1392 : 4DC12B83;
+1393 : 4D812C03;
+1394 : 2983854E;
+1395 : 01134EC1;
+1396 : 80825001;
+1397 : 02614603;
+1398 : 01167693;
+1399 : 20069A63;
+139A : 00497813;
+139B : 24081763;
+139C : 00897893;
+139D : 06088F63;
+139E : 0004CB03;
+139F : 13634B91;
+13A0 : 85A2177B;
+13A1 : C0048526;
+13A2 : DD3FD0EF;
+13A3 : 4679489C;
+13A4 : 85134581;
+13A5 : D0EF0027;
+13A6 : A283A3DF;
+13A7 : 46690104;
+13A8 : 85134581;
+13A9 : D0EF0262;
+13AA : A303A2DF;
+13AB : 03930104;
+13AC : 02230200;
+13AD : 48980073;
+13AE : 00870B93;
+13AF : AEDFC0EF;
+13B0 : 855E85AA;
+13B1 : BE7FD0EF;
+13B2 : 45854888;
+13B3 : 02B500A3;
+13B4 : F0EF1008;
+13B5 : F921DE2F;
+13B6 : CD81440C;
+13B7 : 85224601;
+13B8 : D22FE0EF;
+13B9 : 00842903;
+13BA : FFF90093;
+13BB : 0014AA23;
+13BC : 7613F91D;
+13BD : C219008A;
+13BE : 040A6A13;
+13BF : 4C765C94;
+13C0 : C4344811;
+13C1 : 05842623;
+13C2 : 0004C503;
+13C3 : 17051863;
+13C4 : 49035E42;
+13C5 : 58A20271;
+13C6 : 7A935F36;
+13C7 : EEB3F00E;
+13C8 : 2023012A;
+13C9 : 22230314;
+13CA : 242303D4;
+13CB : 85A203E4;
+13CC : D0EF8526;
+13CD : 2823D29F;
+13CE : C0040404;
+13CF : 0064DF83;
+13D0 : 4B014781;
+13D1 : 05440A93;
+13D2 : 01F41223;
+13D3 : 03440823;
+13D4 : 020408A3;
+13D5 : 04042223;
+13D6 : 03642C23;
+13D7 : 0613DC5C;
+13D8 : 45812000;
+13D9 : D0EF8556;
+13DA : 729396DF;
+13DB : 8FE3020A;
+13DC : 2903EA02;
+13DD : 2A030104;
+13DE : 63330144;
+13DF : 07E30149;
+13E0 : 2C23EA03;
+13E1 : 2E230324;
+13E2 : D3830344;
+13E3 : 440C00A4;
+13E4 : 9B134B85;
+13E5 : 5C7D0093;
+13E6 : 0E0A1E63;
+13E7 : 0F2B6C63;
+13E8 : C02C4501;
+13E9 : E80511E3;
+13EA : 1FF97093;
+13EB : E80080E3;
+13EC : D0EF8526;
+13ED : 85AAB4BF;
+13EE : 86E34509;
+13EF : 1613E605;
+13F0 : 5693017A;
+13F1 : 68330099;
+13F2 : 863300D6;
+13F3 : C0700105;
+13F4 : 0014C503;
+13F5 : 85D64685;
+13F6 : 869FC0EF;
+13F7 : E40508E3;
+13F8 : B5914505;
+13F9 : 9C5FC0EF;
+13FA : 85AA4C76;
+13FB : 0513C42A;
+13FC : D0EF00EC;
+13FD : 4E76AB9F;
+13FE : 051345A2;
+13FF : D0EF016E;
+1400 : 4AF6AADF;
+1401 : 0004C503;
+1402 : F0EF85D6;
+1403 : 0E9399FF;
+1404 : 85A30200;
+1405 : 45F601DA;
+1406 : 4601892A;
+1407 : D0EF8526;
+1408 : 4F76B47F;
+1409 : 0E234F85;
+140A : 0EA3000F;
+140B : 0F23000F;
+140C : 0FA3000F;
+140D : 81A3000F;
+140E : 0CE301F4;
+140F : 4601EA09;
+1410 : 100885CA;
+1411 : 0384AB03;
+1412 : BBAFE0EF;
+1413 : DC051DE3;
+1414 : 852685DA;
+1415 : D31FD0EF;
+1416 : 16E3BD41;
+1417 : 4383DC05;
+1418 : F7130261;
+1419 : EF210103;
+141A : 00297513;
+141B : E80503E3;
+141C : 0013F593;
+141D : E6058FE3;
+141E : B375451D;
+141F : F0EF85E2;
+1420 : C40892BF;
+1421 : 01CC0513;
+1422 : 9A7FD0EF;
+1423 : 2A23C808;
+1424 : B5550004;
+1425 : D0EF8522;
+1426 : 85AAF01F;
+1427 : 41690533;
+1428 : 00A93733;
+1429 : 40EA0A33;
+142A : F663892A;
+142B : 95E300BB;
+142C : 4505EF85;
+142D : 4509B5FD;
+142E : 4521B5ED;
+142F : 4511B3AD;
+1430 : 715DB39D;
+1431 : C0CAC4A2;
+1432 : DA56DE4E;
+1433 : C686D85A;
+1434 : DC52C2A6;
+1435 : D462D65E;
+1436 : D06AD266;
+1437 : 8AAECE6E;
+1438 : 0006A023;
+1439 : 842A006C;
+143A : 8B368932;
+143B : BEBFD0EF;
+143C : E14189AA;
+143D : 03144983;
+143E : 06099D63;
+143F : 03044B83;
+1440 : 001BFB93;
+1441 : 1A0B8463;
+1442 : 5C1C4818;
+1443 : 5C504854;
+1444 : 40F700B3;
+1445 : 001732B3;
+1446 : 40C68333;
+1447 : 00531563;
+1448 : 0120F363;
+1449 : 0C138906;
+144A : 5DFD0544;
+144B : 04090363;
+144C : 5C505C0C;
+144D : 1FF5F393;
+144E : 14039963;
+144F : 181344B2;
+1450 : D8930176;
+1451 : DA030095;
+1452 : 6CB300A4;
+1453 : 05130118;
+1454 : 7A33FFFA;
+1455 : 13630195;
+1456 : ED33060A;
+1457 : 1A6300C5;
+1458 : 4408020D;
+1459 : E3634585;
+145A : 4B0904A5;
+145B : 036408A3;
+145C : 40B64989;
+145D : 44964426;
+145E : 5A624906;
+145F : 5B425AD2;
+1460 : 5C225BB2;
+1461 : 5D025C92;
+1462 : 854E4DF2;
+1463 : 616159F2;
+1464 : 2E038082;
+1465 : 06630504;
+1466 : 8522000E;
+1467 : 981FD0EF;
+1468 : 402CB7D1;
+1469 : D0EF8522;
+146A : BF6DDF1F;
+146B : 01B51763;
+146C : 08A34985;
+146D : 89DE0334;
+146E : C028BF6D;
+146F : 8526402C;
+1470 : 93DFD0EF;
+1471 : 0E93D15D;
+1472 : 0CB31FF0;
+1473 : F06300AA;
+1474 : D283092E;
+1475 : 5D1300A4;
+1476 : 06330099;
+1477 : F46301AA;
+1478 : 8D3300C2;
+1479 : C5034142;
+147A : 86EA0014;
+147B : 85D68666;
+147C : E50FC0EF;
+147D : 0303FD55;
+147E : 51630304;
+147F : 23830203;
+1480 : 85330444;
+1481 : 7B634193;
+1482 : 181301A5;
+1483 : 06130095;
+1484 : 85E22000;
+1485 : 010A8533;
+1486 : F8CFD0EF;
+1487 : 009D1493;
+1488 : 000B2883;
+1489 : 40990933;
+148A : 8A339AA6;
+148B : 20230098;
+148C : 2E03014B;
+148D : 5C4C0384;
+148E : 009E0CB3;
+148F : 01CCBEB3;
+1490 : 00BE8F33;
+1491 : 03942C23;
+1492 : 03E42E23;
+1493 : 4070B5C5;
+1494 : 03960B63;
+1495 : 03040F03;
+1496 : 0014C503;
+1497 : 000F5D63;
+1498 : 85E24685;
+1499 : E72FC0EF;
+149A : 4F83F521;
+149B : F7130304;
+149C : 082307FF;
+149D : C50302E4;
+149E : 46850014;
+149F : 85E28666;
+14A0 : DC0FC0EF;
+14A1 : 2223F515;
+14A2 : 5C140594;
+14A3 : 20000793;
+14A4 : 1FF6F093;
+14A5 : 401784B3;
+14A6 : 00997363;
+14A7 : 862684CA;
+14A8 : 001C05B3;
+14A9 : D0EF8556;
+14AA : BF9DEFEF;
+14AB : B5D1499D;
+14AC : CCA2711D;
+14AD : C6CEC8CA;
+14AE : C0DAC2D6;
+14AF : CAA6CE86;
+14B0 : DE5EC4D2;
+14B1 : DA66DC62;
+14B2 : D66ED86A;
+14B3 : A0238AAE;
+14B4 : 086C0006;
+14B5 : 8932842A;
+14B6 : D0EF8B36;
+14B7 : 89AA9FDF;
+14B8 : 4983E15D;
+14B9 : 90630314;
+14BA : 47830A09;
+14BB : F0930304;
+14BC : 84630027;
+14BD : 4A722000;
+14BE : 47034291;
+14BF : 0A63000A;
+14C0 : 23030057;
+14C1 : 03B30384;
+14C2 : F4630123;
+14C3 : 49130063;
+14C4 : 0C13FFF3;
+14C5 : 0B932000;
+14C6 : 0C930544;
+14C7 : 5D7D1FF0;
+14C8 : 04090D63;
+14C9 : 5C505C0C;
+14CA : 1FF5F493;
+14CB : 1A049263;
+14CC : 00AA5D83;
+14CD : 01761693;
+14CE : 0095D813;
+14CF : FFFD8513;
+14D0 : 0106E8B3;
+14D1 : 01157DB3;
+14D2 : 080D9163;
+14D3 : 00C5EE33;
+14D4 : 000E1D63;
+14D5 : 45814408;
+14D6 : 4F05C921;
+14D7 : 05E51A63;
+14D8 : 08A34A09;
+14D9 : 49890344;
+14DA : 2E83A839;
+14DB : 8C630504;
+14DC : 8522020E;
+14DD : FA8FD0EF;
+14DE : 4583F16D;
+14DF : E6130304;
+14E0 : 08230405;
+14E1 : 40F602C4;
+14E2 : 44D64466;
+14E3 : 4A264946;
+14E4 : 4B064A96;
+14E5 : 5C625BF2;
+14E6 : 5D425CD2;
+14E7 : 854E5DB2;
+14E8 : 612549B6;
+14E9 : 402C8082;
+14EA : E0EF8522;
+14EB : B7E9FE8F;
+14EC : 01A51763;
+14ED : 08A34985;
+14EE : 49850334;
+14EF : 2F83B7E9;
+14F0 : C0280084;
+14F1 : 000F9363;
+14F2 : 0783C408;
+14F3 : D0630304;
+14F4 : 40700207;
+14F5 : 001A4503;
+14F6 : 85DE4685;
+14F7 : CFAFC0EF;
+14F8 : 4083F971;
+14F9 : F7130304;
+14FA : 082307F0;
+14FB : 402C02E4;
+14FC : D0EF8552;
+14FD : D52DF0AF;
+14FE : 00AD8633;
+14FF : 092CFF63;
+1500 : 00AA5E83;
+1501 : 00995493;
+1502 : 009D85B3;
+1503 : 00BEF463;
+1504 : 41BE84B3;
+1505 : 001A4503;
+1506 : 85D686A6;
+1507 : C0EFC632;
+1508 : F949CB8F;
+1509 : 04442F03;
+150A : 0FB34632;
+150B : F16340CF;
+150C : 9793029F;
+150D : 0613009F;
+150E : 85B32000;
+150F : 855E00FA;
+1510 : D64FD0EF;
+1511 : 03044703;
+1512 : 07F77293;
+1513 : 02540823;
+1514 : 00949D93;
+1515 : 000B2083;
+1516 : 41B90933;
+1517 : 83339AEE;
+1518 : 202301B0;
+1519 : 2383006B;
+151A : 5C480384;
+151B : 88334844;
+151C : 36B3007D;
+151D : 8DB301B8;
+151E : 2C2300A6;
+151F : 2E230304;
+1520 : 481C03B4;
+1521 : 01B4E663;
+1522 : 009D9663;
+1523 : 0107F463;
+1524 : 84EE87C2;
+1525 : C844C81C;
+1526 : 2383B561;
+1527 : 22830444;
+1528 : 23030384;
+1529 : 846303C4;
+152A : 484402C3;
+152B : 00936763;
+152C : 00649F63;
+152D : FC634808;
+152E : 450300A2;
+152F : 4685001A;
+1530 : C63285DE;
+1531 : B7CFC0EF;
+1532 : 15E34632;
+1533 : C070EE05;
+1534 : F8135C14;
+1535 : 0DB31FF6;
+1536 : 7363410C;
+1537 : 8DCA01B9;
+1538 : 85D6866E;
+1539 : 010B8533;
+153A : CBCFD0EF;
+153B : 03044883;
+153C : F808EE13;
+153D : 03C40823;
+153E : 499DBFB1;
+153F : 0113B569;
+1540 : 006CB201;
+1541 : 4C812C23;
+1542 : 4C112E23;
+1543 : 4C912A23;
+1544 : 4D212823;
+1545 : 4D312623;
+1546 : D0EF842A;
+1547 : 1B63FBCF;
+1548 : 47831205;
+1549 : F5130304;
+154A : 05630407;
+154B : 90931205;
+154C : D2930187;
+154D : 44B24180;
+154E : 0202D463;
+154F : C5034070;
+1550 : 46850014;
+1551 : 05440593;
+1552 : B8EFC0EF;
+1553 : 4505832A;
+1554 : 10031263;
+1555 : 03044383;
+1556 : 07F3F513;
+1557 : 02A40823;
+1558 : C48FC0EF;
+1559 : 0004C703;
+155A : 89AA4591;
+155B : 10B71163;
+155C : D0EF8522;
+155D : 1F63FE3F;
+155E : 402C0C05;
+155F : 8522567D;
+1560 : E35FD0EF;
+1561 : 0893E961;
+1562 : 0E130601;
+1563 : A6232601;
+1564 : A8230114;
+1565 : 2F8301C4;
+1566 : 2E830244;
+1567 : 2F030004;
+1568 : 540C0204;
+1569 : F00FF793;
+156A : C8760808;
+156B : 0BA3CC7A;
+156C : D03E01F1;
+156D : D602D202;
+156E : D0EFCEAE;
+156F : E959B8BF;
+1570 : E0EF0808;
+1571 : E559991F;
+1572 : 0104A083;
+1573 : 0040C283;
+1574 : 0202E313;
+1575 : 00608223;
+1576 : 00744503;
+1577 : 0104A383;
+1578 : 00156713;
+1579 : 02E380A3;
+157A : 0104A903;
+157B : 0513440C;
+157C : D0EF0349;
+157D : 4894CB8F;
+157E : 4850480C;
+157F : 03868513;
+1580 : CC6FD0EF;
+1581 : 0104A803;
+1582 : 4850480C;
+1583 : 02880513;
+1584 : CB6FD0EF;
+1585 : 85CE4890;
+1586 : 00C60513;
+1587 : C8EFD0EF;
+1588 : 0104A983;
+1589 : 8AA30808;
+158A : 488C0009;
+158B : 00058823;
+158C : 000588A3;
+158D : 00058923;
+158E : 000589A3;
+158F : E79FE0EF;
+1590 : 8526E911;
+1591 : FC9FD0EF;
+1592 : 03044483;
+1593 : FBF4F893;
+1594 : 03140823;
+1595 : 4DC12083;
+1596 : 4D812403;
+1597 : 4D412483;
+1598 : 4D012903;
+1599 : 4CC12983;
+159A : 4E010113;
+159B : 442C8082;
+159C : D0EF8526;
+159D : FD79F12F;
+159E : 04C42903;
+159F : 00B94603;
+15A0 : 669385CA;
+15A1 : 05A30206;
+15A2 : 441000D9;
+15A3 : D0EF4008;
+15A4 : 480CCD6F;
+15A5 : 01C90513;
+15A6 : C12FD0EF;
+15A7 : 051385CE;
+15A8 : D0EF0169;
+15A9 : 4805C08F;
+15AA : 00090923;
+15AB : 000909A3;
+15AC : 010481A3;
+15AD : 1101B779;
+15AE : CE06CC22;
+15AF : F0EF842A;
+15B0 : E901E41F;
+15B1 : 8522006C;
+15B2 : E0EFD0EF;
+15B3 : 2023E119;
+15B4 : 40F20004;
+15B5 : 61054462;
+15B6 : 715D8082;
+15B7 : 84AEC2A6;
+15B8 : C4A2086C;
+15B9 : DE4EC0CA;
+15BA : DC52C686;
+15BB : D85ADA56;
+15BC : D462D65E;
+15BD : D06AD266;
+15BE : 89B2842A;
+15BF : DDAFD0EF;
+15C0 : E57D892A;
+15C1 : 03144903;
+15C2 : 0E091463;
+15C3 : 47914A72;
+15C4 : 000A4703;
+15C5 : 08F70863;
+15C6 : 05042083;
+15C7 : 08009C63;
+15C8 : 000A4283;
+15C9 : 86634311;
+15CA : 84630062;
+15CB : 54FD0009;
+15CC : 23834981;
+15CD : 48140144;
+15CE : 0133E663;
+15CF : 00799B63;
+15D0 : 0096F963;
+15D1 : 03044503;
+15D2 : 00257593;
+15D3 : 84B6E199;
+15D4 : 4801899E;
+15D5 : 5C104881;
+15D6 : 03C42B03;
+15D7 : 03042C23;
+15D8 : 03142E23;
+15D9 : 0134EAB3;
+15DA : 180A9B63;
+15DB : 2C834A81;
+15DC : 2D0303C4;
+15DD : 23030144;
+15DE : 67630384;
+15DF : 1F63019D;
+15E0 : 4814019D;
+15E1 : 0066FC63;
+15E2 : 03044383;
+15E3 : 00642823;
+15E4 : 01942A23;
+15E5 : 0403E993;
+15E6 : 03340823;
+15E7 : 1FF37513;
+15E8 : AA21C921;
+15E9 : 567D402C;
+15EA : D0EF8522;
+15EB : D52DC0BF;
+15EC : A83D892A;
+15ED : 9C63567D;
+15EE : 9A6308C4;
+15EF : 2A830899;
+15F0 : AC030084;
+15F1 : 89930000;
+15F2 : 44890040;
+15F3 : 060A8A63;
+15F4 : 5D7D4C85;
+15F5 : 4B818556;
+15F6 : 85AA8B2A;
+15F7 : 0B858522;
+15F8 : FB6FD0EF;
+15F9 : 02ACE763;
+15FA : 08A34609;
+15FB : 490902C4;
+15FC : 442640B6;
+15FD : 59F24496;
+15FE : 5AD25A62;
+15FF : 5BB25B42;
+1600 : 5C925C22;
+1601 : 854A5D02;
+1602 : 61614906;
+1603 : 8AAA8082;
+1604 : 1763B7D1;
+1605 : 4A0501A5;
+1606 : 034408A3;
+1607 : BFC94905;
+1608 : 001B0813;
+1609 : FAA80AE3;
+160A : 67630489;
+160B : A023009C;
+160C : A2230179;
+160D : 09A10159;
+160E : 01CA2883;
+160F : FD1569E3;
+1610 : C0044820;
+1611 : 209C6563;
+1612 : 0009A023;
+1613 : 2E03B755;
+1614 : 2B830144;
+1615 : E6630104;
+1616 : 166301C9;
+1617 : F463013E;
+1618 : 8BA60174;
+1619 : 2C238E4E;
+161A : 2E230374;
+161B : EEB303C4;
+161C : 8FE301CB;
+161D : BF13F60E;
+161E : 04B3001B;
+161F : 8B1341EE;
+1620 : 85DAFFFB;
+1621 : 85228626;
+1622 : A94FD0EF;
+1623 : C02885AA;
+1624 : D0EF8552;
+1625 : D929A6AF;
+1626 : 1FFBF713;
+1627 : 00AA5F83;
+1628 : 9793DB21;
+1629 : 50930174;
+162A : E2B3009B;
+162B : 85930017;
+162C : F333FFFF;
+162D : 0AB30055;
+162E : 407000A3;
+162F : F3560AE3;
+1630 : 03040683;
+1631 : 001A4503;
+1632 : 05440593;
+1633 : 0006DE63;
+1634 : C62E4685;
+1635 : 802FC0EF;
+1636 : 4383FD1D;
+1637 : 45B20304;
+1638 : 07F3F513;
+1639 : 02A40823;
+163A : 001A4503;
+163B : 86564685;
+163C : F51FB0EF;
+163D : F105892A;
+163E : 05542223;
+163F : 5B83BDD5;
+1640 : 6C3300AA;
+1641 : 9A930166;
+1642 : 0763009B;
+1643 : 3D130A0C;
+1644 : 0C930016;
+1645 : 0B33FFF6;
+1646 : 865641AB;
+1647 : 85664681;
+1648 : 212D85DA;
+1649 : 0014BE13;
+164A : 8C2A8BAE;
+164B : 46818656;
+164C : FFF48513;
+164D : 41C985B3;
+164E : EF632911;
+164F : 94630775;
+1650 : 6B6300BB;
+1651 : 0EB30785;
+1652 : FF334150;
+1653 : 8FB3019E;
+1654 : 402C41E4;
+1655 : 01F4B733;
+1656 : 416989B3;
+1657 : 03E42C23;
+1658 : 03642E23;
+1659 : 89B384FE;
+165A : 81E340E9;
+165B : 5CFDE005;
+165C : 22834D05;
+165D : 23030384;
+165E : 9E6303C4;
+165F : EC630409;
+1660 : 2F03049A;
+1661 : 2F830384;
+1662 : F29303C4;
+1663 : 07331FF4;
+1664 : 37B3009F;
+1665 : 80B301E7;
+1666 : DC1801F7;
+1667 : 02142E23;
+1668 : DC0286E3;
+1669 : D0EF8552;
+166A : 0FE3956F;
+166B : D593E205;
+166C : 0AB30094;
+166D : BB6500B5;
+166E : ED81440C;
+166F : E0EF8522;
+1670 : 47859D4F;
+1671 : 01E385AA;
+1672 : 50FDE2F5;
+1673 : E41505E3;
+1674 : C02CC408;
+1675 : 8533BF59;
+1676 : 4883005A;
+1677 : 36330304;
+1678 : 86B30155;
+1679 : 08334154;
+167A : B3B30066;
+167B : DC0800D4;
+167C : 03042E23;
+167D : 0028FB13;
+167E : 89B384B6;
+167F : 0A634079;
+1680 : 2C03020B;
+1681 : 68630144;
+1682 : 1D63010C;
+1683 : 2B83010C;
+1684 : F9630104;
+1685 : EE1300AB;
+1686 : C8080408;
+1687 : 01042A23;
+1688 : 03C40823;
+1689 : E0EF8522;
+168A : 85AA96CF;
+168B : 4481E519;
+168C : 8522BF89;
+168D : D62FD0EF;
+168E : 8EE385AA;
+168F : 75E3DD95;
+1690 : 2E83DABD;
+1691 : F1E301CA;
+1692 : C02CDBD5;
+1693 : 4945B71D;
+1694 : 7119B345;
+1695 : D2D6DAA6;
+1696 : 8AAEC62A;
+1697 : 086C84B2;
+1698 : 00684601;
+1699 : DE86D8CA;
+169A : D6CEDCA2;
+169B : D0DAD4D2;
+169C : CCE2CEDE;
+169D : D0EFCAE6;
+169E : 892AC53F;
+169F : 4472ED01;
+16A0 : 2C03C080;
+16A1 : 4C1C01C4;
+16A2 : FFEC0B93;
+16A3 : 02FBE263;
+16A4 : 00FAA023;
+16A5 : 546650F6;
+16A6 : 59B654D6;
+16A7 : 5A965A26;
+16A8 : 4BF65B06;
+16A9 : 4CD64C66;
+16AA : 5946854A;
+16AB : 80826109;
+16AC : 00044A03;
+16AD : 1F634085;
+16AE : D022021A;
+16AF : 44814989;
+16B0 : 4C055CFD;
+16B1 : 100885CE;
+16B2 : CCEFD0EF;
+16B3 : 0F950163;
+16B4 : 0F850163;
+16B5 : 0485E111;
+16B6 : 09854C4C;
+16B7 : FEB9E4E3;
+16B8 : 009AA023;
+16B9 : 00444783;
+16BA : E093CC04;
+16BB : 02230017;
+16BC : B74D0014;
+16BD : 17634291;
+16BE : 584C045A;
+16BF : 44814A01;
+16C0 : 000A1963;
+16C1 : 8B138522;
+16C2 : D0EF0015;
+16C3 : E545A7AF;
+16C4 : 08B385DA;
+16C5 : CF030144;
+16C6 : 8E1303C8;
+16C7 : 8C63FF8B;
+16C8 : 7E93000B;
+16C9 : 9363001F;
+16CA : 0485000E;
+16CB : 5F131BFD;
+16CC : 96E3001F;
+16CD : 0F93FFCB;
+16CE : FA13001A;
+16CF : 91E31FFF;
+16D0 : BF79FC0B;
+16D1 : 0337540C;
+16D2 : 49811000;
+16D3 : 0B134481;
+16D4 : 4B8903C4;
+16D5 : FFF30A13;
+16D6 : 00099963;
+16D7 : 8C938522;
+16D8 : D0EF0015;
+16D9 : E921A22F;
+16DA : 438385E6;
+16DB : 05330004;
+16DC : 9463013B;
+16DD : 46030373;
+16DE : 47030015;
+16DF : 16930005;
+16E0 : E8330086;
+16E1 : 136300E6;
+16E2 : 04850008;
+16E3 : 1C7D0989;
+16E4 : 1FF9F993;
+16E5 : FC0C12E3;
+16E6 : C42EB7A1;
+16E7 : E93FC0EF;
+16E8 : 01457533;
+16E9 : E11145A2;
+16EA : 09910485;
+16EB : 8952B7CD;
+16EC : 4909B5D5;
+16ED : 892AB5C5;
+16EE : 7175BDF1;
+16EF : C14AC326;
+16F0 : 84AEC62A;
+16F1 : 086C8932;
+16F2 : 00684601;
+16F3 : C706C522;
+16F4 : D0EFDECE;
+16F5 : 842AAF7F;
+16F6 : 10051663;
+16F7 : 49F2C4E9;
+16F8 : 10084581;
+16F9 : D402D04E;
+16FA : D5CFD0EF;
+16FB : 12051463;
+16FC : 10084585;
+16FD : C84FE0EF;
+16FE : 10051E63;
+16FF : 0009C703;
+1700 : 45764091;
+1701 : 0E170863;
+1702 : 42AD4381;
+1703 : 007506B3;
+1704 : 0006C603;
+1705 : 00748333;
+1706 : 00230385;
+1707 : 97E300C3;
+1708 : 8813FE53;
+1709 : 059300B4;
+170A : 00230200;
+170B : 8C630008;
+170C : 48830704;
+170D : 187DFFF8;
+170E : FEB889E3;
+170F : 0E85A0AD;
+1710 : 001E9293;
+1711 : 005506B3;
+1712 : 0016C303;
+1713 : 0006C603;
+1714 : 00831393;
+1715 : 00C3E333;
+1716 : 000E1A63;
+1717 : 013305B3;
+1718 : 01059813;
+1719 : 01085893;
+171A : 0310F463;
+171B : 010E1F93;
+171C : 006FE733;
+171D : FFF70293;
+171E : 01029693;
+171F : 0106D613;
+1720 : 08CF6563;
+1721 : 00F48E33;
+1722 : 00EE0023;
+1723 : 43010785;
+1724 : 47038E1A;
+1725 : E4E30015;
+1726 : 0363FAEE;
+1727 : 4781000E;
+1728 : 802394BE;
+1729 : 0F630004;
+172A : 49F20209;
+172B : 0249A583;
+172C : D0EF854E;
+172D : 842A8D2F;
+172E : CE83E515;
+172F : 4F0D0009;
+1730 : 04300513;
+1731 : 01EE8963;
+1732 : 05134091;
+1733 : 94630270;
+1734 : 0513001E;
+1735 : 83930640;
+1736 : 951E03C9;
+1737 : D53FC0EF;
+1738 : 00A92023;
+1739 : 852240BA;
+173A : 449A442A;
+173B : 59F6490A;
+173C : 80826149;
+173D : 4E016F8D;
+173E : 4E814781;
+173F : 0FE00F13;
+1740 : 800F8993;
+1741 : 7FF00093;
+1742 : 4781B769;
+1743 : 8023B779;
+1744 : BF510004;
+1745 : 0CE34791;
+1746 : 842AFEF5;
+1747 : 66C1B7E1;
+1748 : 01855793;
+1749 : 01851713;
+174A : 00855313;
+174B : F0068393;
+174C : 00E7E2B3;
+174D : 007375B3;
+174E : 08370522;
+174F : E63300FF;
+1750 : 78B300B2;
+1751 : 65330105;
+1752 : 80820116;
+1753 : 88AE832A;
+1754 : 882A8732;
+1755 : 906387AE;
+1756 : 629D2406;
+1757 : 20A28E13;
+1758 : 0CC5FA63;
+1759 : 706365C1;
+175A : 35130CB6;
+175B : 46931006;
+175C : 92930015;
+175D : 5EB30036;
+175E : 9E760056;
+175F : 000E4F83;
+1760 : 02000393;
+1761 : 005F8F33;
+1762 : 41E385B3;
+1763 : 01E38C63;
+1764 : 01E35833;
+1765 : 00B897B3;
+1766 : 00F867B3;
+1767 : 00B61733;
+1768 : 00B31833;
+1769 : 01075293;
+176A : 0257D333;
+176B : 01071893;
+176C : 0108D613;
+176D : 01085E13;
+176E : 0257F533;
+176F : 0EB38F9A;
+1770 : 16930266;
+1771 : 6F330105;
+1772 : 7C6300DE;
+1773 : 9F3A01DF;
+1774 : FFF30F93;
+1775 : 00EF6763;
+1776 : 01DF7563;
+1777 : FFE30F93;
+1778 : 03B39F3A;
+1779 : D5B341DF;
+177A : 08420253;
+177B : 0253F7B3;
+177C : 08B386AE;
+177D : 929302B6;
+177E : 56130107;
+177F : 63330108;
+1780 : 7C630056;
+1781 : 0EB30113;
+1782 : 86930067;
+1783 : E663FFF5;
+1784 : F46300EE;
+1785 : 8693011E;
+1786 : 9713FFE5;
+1787 : 6533010F;
+1788 : 458100D7;
+1789 : 03B78082;
+178A : 42C10100;
+178B : F47665E3;
+178C : B79142E1;
+178D : 9002E211;
+178E : 79636EC1;
+178F : 35930BD6;
+1790 : C6931006;
+1791 : 93930015;
+1792 : 5F330036;
+1793 : 07B30076;
+1794 : C50301EE;
+1795 : 0E130007;
+1796 : 02B30200;
+1797 : 0EB30075;
+1798 : 1C63405E;
+1799 : 82B3085E;
+179A : 458540C8;
+179B : 01075E93;
+179C : 03D2D8B3;
+179D : 01071E13;
+179E : 010E5F93;
+179F : 01085393;
+17A0 : 03D2FF33;
+17A1 : 83338546;
+17A2 : 1613031F;
+17A3 : E7B3010F;
+17A4 : FC6300C3;
+17A5 : 97BA0067;
+17A6 : FFF88513;
+17A7 : 00E7E763;
+17A8 : 0067F563;
+17A9 : FFE88513;
+17AA : 82B397BA;
+17AB : DE334067;
+17AC : 084203D2;
+17AD : 01085893;
+17AE : 03D2FEB3;
+17AF : 86B38672;
+17B0 : 9F9303CF;
+17B1 : E333010E;
+17B2 : 7C6301F8;
+17B3 : 0F3300D3;
+17B4 : 06130067;
+17B5 : 6663FFFE;
+17B6 : 746300EF;
+17B7 : 061300DF;
+17B8 : 1713FFEE;
+17B9 : 65330105;
+17BA : 808200C7;
+17BB : 01000FB7;
+17BC : 6CE343C1;
+17BD : 43E1F5F6;
+17BE : 1733BF89;
+17BF : DFB301D6;
+17C0 : 5F130058;
+17C1 : D7B30107;
+17C2 : 583303EF;
+17C3 : 98B30053;
+17C4 : 63B301D8;
+17C5 : 18330118;
+17C6 : 131301D3;
+17C7 : 56130107;
+17C8 : D6930103;
+17C9 : F5B30103;
+17CA : 8E3E03EF;
+17CB : 02F60533;
+17CC : 01059293;
+17CD : 0056EEB3;
+17CE : 00AEFC63;
+17CF : 8E139EBA;
+17D0 : E763FFF7;
+17D1 : F56300EE;
+17D2 : 8E1300AE;
+17D3 : 9EBAFFE7;
+17D4 : 40AE8FB3;
+17D5 : 03EFD8B3;
+17D6 : D79303C2;
+17D7 : FF330103;
+17D8 : 854603EF;
+17D9 : 03160333;
+17DA : 010F1613;
+17DB : 00C7E5B3;
+17DC : 0065FC63;
+17DD : 851395BA;
+17DE : E763FFF8;
+17DF : F56300E5;
+17E0 : 85130065;
+17E1 : 95BAFFE8;
+17E2 : 010E1693;
+17E3 : 406582B3;
+17E4 : 00A6E5B3;
+17E5 : E063BDE1;
+17E6 : 67C116D5;
+17E7 : 04F6F163;
+17E8 : 1006B393;
+17E9 : 0013C513;
+17EA : 00351713;
+17EB : D5B3681D;
+17EC : 0E1300E6;
+17ED : 0EB320A8;
+17EE : CF0300BE;
+17EF : 0793000E;
+17F0 : 0FB30200;
+17F1 : 85B300EF;
+17F2 : 916341F7;
+17F3 : 450503F7;
+17F4 : E516EAE3;
+17F5 : 00C33533;
+17F6 : 00154513;
+17F7 : 02B78082;
+17F8 : 47410100;
+17F9 : FC56E4E3;
+17FA : B7C94761;
+17FB : 01F652B3;
+17FC : 00B696B3;
+17FD : 00D2E3B3;
+17FE : 01F8D733;
+17FF : 01F35533;
+1800 : 0103DF93;
+1801 : 03F75EB3;
+1802 : 01039813;
+1803 : 01085793;
+1804 : 00B898B3;
+1805 : 01156F33;
+1806 : 00B61633;
+1807 : 03F776B3;
+1808 : 010F5713;
+1809 : 8E3388F6;
+180A : 929303D7;
+180B : 65330106;
+180C : 7C630057;
+180D : 951E01C5;
+180E : FFFE8893;
+180F : 00756763;
+1810 : 01C57563;
+1811 : FFEE8893;
+1812 : 0EB3951E;
+1813 : DE3341C5;
+1814 : 0F4203FE;
+1815 : 03FEFFB3;
+1816 : 883382F2;
+1817 : 969303C7;
+1818 : 5793010F;
+1819 : E733010F;
+181A : 7C6300D7;
+181B : 971E0107;
+181C : FFFE0293;
+181D : 00776763;
+181E : 01077563;
+181F : FFEE0293;
+1820 : 08C2971E;
+1821 : E5336EC1;
+1822 : 8E130058;
+1823 : 76B3FFFE;
+1824 : 7FB301C6;
+1825 : 03B301C5;
+1826 : 82414107;
+1827 : 01055813;
+1828 : 02D807B3;
+1829 : 02DF8F33;
+182A : 02CF82B3;
+182B : 010F5713;
+182C : 00F288B3;
+182D : 01170E33;
+182E : 02C80833;
+182F : 00FE7363;
+1830 : 5E939876;
+1831 : 8FB3010E;
+1832 : E463010E;
+1833 : 9AE303F3;
+1834 : 1333D5F3;
+1835 : 65C100B3;
+1836 : FFF58393;
+1837 : 007E76B3;
+1838 : 01069613;
+1839 : 007F7F33;
+183A : 01E607B3;
+183B : 7BE34581;
+183C : 157DD2F3;
+183D : 4581B33D;
+183E : 80824501;
+183F : 0D802503;
+1840 : 47018082;
+1841 : 00E61463;
+1842 : 80824501;
+1843 : 00E507B3;
+1844 : 86B30705;
+1845 : C28300E5;
+1846 : C3030007;
+1847 : 83E3FFF6;
+1848 : 8533FE62;
+1849 : 80824062;
+184A : DAA67135;
+184B : DE86CB3E;
+184C : D8CADCA2;
+184D : C93AC736;
+184E : CF46CD42;
+184F : 0D802483;
+1850 : 0005DC63;
+1851 : 08B00513;
+1852 : 557DC088;
+1853 : 546650F6;
+1854 : 594654D6;
+1855 : 8082610D;
+1856 : 20800093;
+1857 : 00111C23;
+1858 : CE2AC62A;
+1859 : 4281842E;
+185A : 8293C199;
+185B : 597DFFF5;
+185C : 006C0174;
+185D : CA168526;
+185E : 1D23D016;
+185F : C4360121;
+1860 : 5663224D;
+1861 : 03130125;
+1862 : A02308B0;
+1863 : DC5D0064;
+1864 : 802343B2;
+1865 : BF5D0003;
+1866 : 0FF5F593;
+1867 : 00054783;
+1868 : 9363C791;
+1869 : 808200B7;
+186A : BFCD0505;
+186B : 4501C191;
+186C : 71198082;
+186D : DAA6DCA2;
+186E : D8CADE86;
+186F : 843284AA;
+1870 : 00065D63;
+1871 : 08B00393;
+1872 : 00752023;
+1873 : 50F6557D;
+1874 : 54D65466;
+1875 : 61095946;
+1876 : 07938082;
+1877 : 1C232080;
+1878 : C62E00F1;
+1879 : 8636CE2E;
+187A : 86BA4081;
+187B : 0093C019;
+187C : 597DFFF4;
+187D : 8526006C;
+187E : D006CA06;
+187F : 01211D23;
+1880 : 5663220D;
+1881 : 02930125;
+1882 : A02308B0;
+1883 : D0610054;
+1884 : 00234332;
+1885 : BF650003;
+1886 : 86B28736;
+1887 : 85AA862E;
+1888 : 0D802503;
+1889 : F8FFF06F;
+188A : C05A1101;
+188B : 0085AB03;
+188C : C64ECC22;
+188D : C256C452;
+188E : CA26CE06;
+188F : AA83C84A;
+1890 : 842E0005;
+1891 : 89B68A32;
+1892 : 0766ED63;
+1893 : 00C5D783;
+1894 : 4807F713;
+1895 : 2083C72D;
+1896 : 448D0144;
+1897 : 82B34309;
+1898 : 498C0214;
+1899 : 00168393;
+189A : 8AB38B2A;
+189B : 853340BA;
+189C : C4B30153;
+189D : F3630262;
+189E : 84AA00A4;
+189F : 4007F613;
+18A0 : 85A6CE2D;
+18A1 : 00EF855A;
+18A2 : 892A0370;
+18A3 : 480CC141;
+18A4 : C0EF8656;
+18A5 : 5583F12F;
+18A6 : F69300C4;
+18A7 : E813B7F5;
+18A8 : 16230806;
+18A9 : 08B30104;
+18AA : 8E330159;
+18AB : 28234154;
+18AC : 20230124;
+18AD : C8440114;
+18AE : 24238B4E;
+18AF : F36301C4;
+18B0 : 8B4E0169;
+18B1 : 85D24008;
+18B2 : 2DF5865A;
+18B3 : 00842E83;
+18B4 : 00042F83;
+18B5 : 8F334501;
+18B6 : 8A33416E;
+18B7 : 2423016F;
+18B8 : 202301E4;
+18B9 : 40F20144;
+18BA : 44D24462;
+18BB : 49B24942;
+18BC : 4A924A22;
+18BD : 61054B02;
+18BE : 86268082;
+18BF : 00EF855A;
+18C0 : 892A0B30;
+18C1 : 480CF14D;
+18C2 : 25CD855A;
+18C3 : 00C45783;
+18C4 : 202349B1;
+18C5 : E713013B;
+18C6 : 16230407;
+18C7 : 557D00E4;
+18C8 : D783B7D9;
+18C9 : 717100C5;
+18CA : D522D706;
+18CB : D14AD326;
+18CC : CF4ECD52;
+18CD : C95ACB56;
+18CE : C562C75E;
+18CF : C16AC366;
+18D0 : F093DEEE;
+18D1 : 8A2A0807;
+18D2 : 84B2892E;
+18D3 : 85638436;
+18D4 : A2830400;
+18D5 : 91630105;
+18D6 : 05930402;
+18D7 : 2FB90400;
+18D8 : 00A92023;
+18D9 : 00A92823;
+18DA : 4AB1E505;
+18DB : 015A2023;
+18DC : 50BA557D;
+18DD : 549A542A;
+18DE : 49FA590A;
+18DF : 4ADA4A6A;
+18E0 : 4BBA4B4A;
+18E1 : 4C9A4C2A;
+18E2 : 5DF64D0A;
+18E3 : 8082614D;
+18E4 : 04000313;
+18E5 : 00692A23;
+18E6 : 02000393;
+18E7 : 03000513;
+18E8 : 04A3D202;
+18E9 : 05230271;
+18EA : C62202A1;
+18EB : 02500C93;
+18EC : 6B9D6B1D;
+18ED : 6C196D1D;
+18EE : 00000A93;
+18EF : 45838426;
+18F0 : C1990004;
+18F1 : 0B959263;
+18F2 : 40940DB3;
+18F3 : 00940F63;
+18F4 : 86EE8626;
+18F5 : 855285CA;
+18F6 : E51FF0EF;
+18F7 : 0B6354FD;
+18F8 : 56121A95;
+18F9 : 01B606B3;
+18FA : 4703D236;
+18FB : 03630004;
+18FC : 587D1A07;
+18FD : 00140493;
+18FE : CE02C802;
+18FF : CC02CA42;
+1900 : 040109A3;
+1901 : 4D85D482;
+1902 : 0004C583;
+1903 : 05134615;
+1904 : 2B6930AB;
+1905 : 841348C2;
+1906 : E9290014;
+1907 : 0108FE13;
+1908 : 000E0663;
+1909 : 02000E93;
+190A : 05D109A3;
+190B : 0088FF13;
+190C : 000F0663;
+190D : 02B00F93;
+190E : 05F109A3;
+190F : 0004C783;
+1910 : 02A00093;
+1911 : 02178F63;
+1912 : 84264DF2;
+1913 : 448145A5;
+1914 : 42834529;
+1915 : 03930004;
+1916 : 83130014;
+1917 : F763FD02;
+1918 : C8850665;
+1919 : A035CE6E;
+191A : BF910405;
+191B : 30AB0613;
+191C : 40C506B3;
+191D : 00DD9833;
+191E : 0108E733;
+191F : 84A2C83A;
+1920 : 4632B761;
+1921 : 06934218;
+1922 : C6360046;
+1923 : 02074963;
+1924 : 4E03CE3A;
+1925 : 0E930004;
+1926 : 126302E0;
+1927 : 4F0307DE;
+1928 : 0F930014;
+1929 : 1C6302A0;
+192A : 44B203FF;
+192B : 408C0409;
+192C : 00448613;
+192D : C263C632;
+192E : CA2E0205;
+192F : 0833A089;
+1930 : E89340E0;
+1931 : CE420028;
+1932 : B7E1C846;
+1933 : 02AD8433;
+1934 : 0DB34485;
+1935 : 841E0064;
+1936 : 55FDBFAD;
+1937 : 0405BFF9;
+1938 : 4D81CA02;
+1939 : 45254581;
+193A : 408343A9;
+193B : 03130004;
+193C : 82930014;
+193D : 7363FD00;
+193E : 90E30655;
+193F : 4583FC0D;
+1940 : 460D0004;
+1941 : 310B8513;
+1942 : CD112155;
+1943 : 86934E42;
+1944 : 0833310B;
+1945 : 071340D5;
+1946 : 18B30400;
+1947 : 6EB30107;
+1948 : 0405011E;
+1949 : 4583C876;
+194A : 46190004;
+194B : 314D0513;
+194C : 00140493;
+194D : 02B10423;
+194E : C5352995;
+194F : 020A9E63;
+1950 : 4FB240C2;
+1951 : 1000F293;
+1952 : 02028163;
+1953 : 004F8513;
+1954 : 5792C62A;
+1955 : 013785B3;
+1956 : B58DD22E;
+1957 : 027587B3;
+1958 : 4D85841A;
+1959 : 005785B3;
+195A : 8313B749;
+195B : 7393007F;
+195C : 8513FF83;
+195D : BFE90083;
+195E : 06930078;
+195F : 864A228C;
+1960 : 8552080C;
+1961 : 00000097;
+1962 : 000000E7;
+1963 : 89AA5F7D;
+1964 : FDE511E3;
+1965 : 00C95983;
+1966 : F913557D;
+1967 : 1AE30409;
+1968 : 5512DC09;
+1969 : 0078B3F9;
+196A : 228C0693;
+196B : 080C864A;
+196C : 2A0D8552;
+196D : 7179BFE1;
+196E : 499CCC52;
+196F : 45988A3A;
+1970 : D04AD422;
+1971 : CA56CE4E;
+1972 : D226D606;
+1973 : C65EC85A;
+1974 : 842E89AA;
+1975 : 8AB68932;
+1976 : 00E7D363;
+1977 : 202387BA;
+1978 : 408300F9;
+1979 : 86630434;
+197A : 82930000;
+197B : 20230017;
+197C : 23030059;
+197D : 73930004;
+197E : 88630203;
+197F : 24830003;
+1980 : 85130009;
+1981 : 20230024;
+1982 : 400C00A9;
+1983 : 0065F493;
+1984 : 0B13E899;
+1985 : 5BFD0194;
+1986 : 26834450;
+1987 : 08330009;
+1988 : C36340D6;
+1989 : 2B030704;
+198A : 48830004;
+198B : 7B930434;
+198C : 36B3020B;
+198D : 9E630110;
+198E : 0613060B;
+198F : 85D60434;
+1990 : 9A02854E;
+1991 : 086357FD;
+1992 : 208304F5;
+1993 : 43110004;
+1994 : F2934481;
+1995 : 9B630060;
+1996 : 23830062;
+1997 : 290300C4;
+1998 : 84B30009;
+1999 : D3634123;
+199A : 44810004;
+199B : 480C4408;
+199C : 00A5D563;
+199D : 40B50633;
+199E : 4B8194B2;
+199F : 5B7D0469;
+19A0 : 05749963;
+19A1 : A8094501;
+19A2 : 865A4685;
+19A3 : 854E85D6;
+19A4 : 1E639A02;
+19A5 : 557D0175;
+19A6 : 542250B2;
+19A7 : 59025492;
+19A8 : 4A6249F2;
+19A9 : 4B424AD2;
+19AA : 61454BB2;
+19AB : 04858082;
+19AC : 0EB3B7A5;
+19AD : 0F1300D4;
+19AE : 81A30300;
+19AF : 4F8305EE;
+19B0 : 8E130454;
+19B1 : 07330016;
+19B2 : 068901C4;
+19B3 : 05F701A3;
+19B4 : 4685B7AD;
+19B5 : 85D68622;
+19B6 : 9A02854E;
+19B7 : FB650DE3;
+19B8 : BF790B85;
+19B9 : D4227179;
+19BA : D04AD226;
+19BB : D606CE4E;
+19BC : CA56CC52;
+19BD : C883C85A;
+19BE : 07930185;
+19BF : 84AA0780;
+19C0 : 8932842E;
+19C1 : EE6389B6;
+19C2 : 00930117;
+19C3 : 86930620;
+19C4 : ED630435;
+19C5 : 89630110;
+19C6 : 05932008;
+19C7 : 85630580;
+19C8 : 0A931CB8;
+19C9 : 01230424;
+19CA : A81D0514;
+19CB : F9D88293;
+19CC : 0FF2F313;
+19CD : 66E34655;
+19CE : 651DFE66;
+19CF : 00231393;
+19D0 : 34050593;
+19D1 : 00B38833;
+19D2 : 00082A03;
+19D3 : 431C8A02;
+19D4 : 04240A93;
+19D5 : 86934390;
+19D6 : C3140047;
+19D7 : 04C40123;
+19D8 : AACD4F85;
+19D9 : 00042E03;
+19DA : 00072E83;
+19DB : 080E7F93;
+19DC : 004E8F13;
+19DD : 020F8363;
+19DE : 000EA783;
+19DF : 01E72023;
+19E0 : D863629D;
+19E1 : 03130007;
+19E2 : 07B302D0;
+19E3 : 01A340F0;
+19E4 : 83930464;
+19E5 : 48A931B2;
+19E6 : A783A8A9;
+19E7 : 7093000E;
+19E8 : 2023040E;
+19E9 : 8DE301E7;
+19EA : 9713FC00;
+19EB : 57930107;
+19EC : B7F94107;
+19ED : 00042F83;
+19EE : F293431C;
+19EF : 8093080F;
+19F0 : 86630047;
+19F1 : 20230002;
+19F2 : 439C0017;
+19F3 : F313A809;
+19F4 : 2023040F;
+19F5 : 0AE30017;
+19F6 : D783FE03;
+19F7 : 639D0007;
+19F8 : 06F00613;
+19F9 : 31B38393;
+19FA : 10C88463;
+19FB : 01A348A9;
+19FC : 22830404;
+19FD : 24230044;
+19FE : C7630054;
+19FF : 23030002;
+1A00 : 76130004;
+1A01 : C010FFB3;
+1A02 : 8AB6E781;
+1A03 : 02028163;
+1A04 : F5B38AB6;
+1A05 : 1AFD0317;
+1A06 : 8A33853E;
+1A07 : 480300B3;
+1A08 : D7B3000A;
+1A09 : 80230317;
+1A0A : 74E3010A;
+1A0B : 43A1FF15;
+1A0C : 02789363;
+1A0D : 00042883;
+1A0E : 0018FB13;
+1A0F : 000B0D63;
+1A10 : 00442E03;
+1A11 : 01042E83;
+1A12 : 01CEC763;
+1A13 : 03000F13;
+1A14 : FFEA8FA3;
+1A15 : 86B31AFD;
+1A16 : C8144156;
+1A17 : 86CA874E;
+1A18 : 85A20070;
+1A19 : F0EF8526;
+1A1A : 5A7DD51F;
+1A1B : 0F451963;
+1A1C : 50B2557D;
+1A1D : 54925422;
+1A1E : 49F25902;
+1A1F : 4AD24A62;
+1A20 : 61454B42;
+1A21 : 2E038082;
+1A22 : 6E930004;
+1A23 : 2023020E;
+1A24 : 6F1D01D4;
+1A25 : 07800893;
+1A26 : 32CF0393;
+1A27 : 051402A3;
+1A28 : 00042803;
+1A29 : 7B134308;
+1A2A : 411C0808;
+1A2B : 00450A93;
+1A2C : 000B1A63;
+1A2D : 04087E13;
+1A2E : 000E0663;
+1A2F : 01079E93;
+1A30 : 010ED793;
+1A31 : 01572023;
+1A32 : 00187F13;
+1A33 : 000F0663;
+1A34 : 02086F93;
+1A35 : 01F42023;
+1A36 : FB9148C1;
+1A37 : 00042083;
+1A38 : FDF0F713;
+1A39 : B721C018;
+1A3A : 03936A1D;
+1A3B : B77D31BA;
+1A3C : BDF548A1;
+1A3D : 00042883;
+1A3E : 00072A03;
+1A3F : F813484C;
+1A40 : 05130808;
+1A41 : 0863004A;
+1A42 : C3080008;
+1A43 : 000A2B03;
+1A44 : 00BB2023;
+1A45 : C308A811;
+1A46 : 0408FA93;
+1A47 : 000A2B03;
+1A48 : FE0A88E3;
+1A49 : 00BB1023;
+1A4A : 00042823;
+1A4B : B73D8AB6;
+1A4C : 00072A83;
+1A4D : 45814050;
+1A4E : 004A8B13;
+1A4F : 01672023;
+1A50 : 000AAA83;
+1A51 : 209D8556;
+1A52 : 0733C501;
+1A53 : C0584155;
+1A54 : 00442F83;
+1A55 : 01F42823;
+1A56 : 040401A3;
+1A57 : 4814B701;
+1A58 : 85CA8656;
+1A59 : 99828526;
+1A5A : F14504E3;
+1A5B : 00042083;
+1A5C : 0020F713;
+1A5D : 44B2E71D;
+1A5E : 5CE34448;
+1A5F : 8526EE95;
+1A60 : 4685BDCD;
+1A61 : 85CA8656;
+1A62 : 99828526;
+1A63 : EF6502E3;
+1A64 : 22830A05;
+1A65 : 433200C4;
+1A66 : 40628633;
+1A67 : FECA43E3;
+1A68 : 4A01BFD9;
+1A69 : 01940A93;
+1A6A : B7E55B7D;
+1A6B : 0FF5F593;
+1A6C : 1463962A;
+1A6D : 450100C5;
+1A6E : 47838082;
+1A6F : 8DE30005;
+1A70 : 0505FEB7;
+1A71 : C215B7FD;
+1A72 : 4685832A;
+1A73 : 00B56763;
+1A74 : 071356FD;
+1A75 : 933AFFF6;
+1A76 : 838395BA;
+1A77 : 00230005;
+1A78 : 167D0073;
+1A79 : 95B69336;
+1A7A : 8082FA6D;
+1A7B : A783C5F9;
+1A7C : 1101FFC5;
+1A7D : CE06CC22;
+1A7E : FFC58413;
+1A7F : 0007D363;
+1A80 : C62A943E;
+1A81 : 28032CA1;
+1A82 : 453213C0;
+1A83 : 00081A63;
+1A84 : 00042223;
+1A85 : 12802E23;
+1A86 : 40F24462;
+1A87 : A4816105;
+1A88 : 03047363;
+1A89 : 00042083;
+1A8A : 001406B3;
+1A8B : 00D81A63;
+1A8C : 00082603;
+1A8D : 00482803;
+1A8E : 001602B3;
+1A8F : 00542023;
+1A90 : 01042223;
+1A91 : 80C2BFC1;
+1A92 : 00482803;
+1A93 : 00080463;
+1A94 : FF047BE3;
+1A95 : 0000A683;
+1A96 : 00D08633;
+1A97 : 02861763;
+1A98 : 00042E03;
+1A99 : 01C68EB3;
+1A9A : 01D0A023;
+1A9B : 01D08F33;
+1A9C : FBE814E3;
+1A9D : 00082F83;
+1A9E : 00482403;
+1A9F : 01DF87B3;
+1AA0 : 00F0A023;
+1AA1 : 0080A223;
+1AA2 : 7663BF41;
+1AA3 : 48B100C4;
+1AA4 : 01152023;
+1AA5 : 2283B751;
+1AA6 : 03330004;
+1AA7 : 19630054;
+1AA8 : 23830068;
+1AA9 : 28030008;
+1AAA : 85B30048;
+1AAB : C00C0053;
+1AAC : 01042223;
+1AAD : 0080A223;
+1AAE : 8082B785;
+1AAF : CA261101;
+1AB0 : 00358493;
+1AB1 : F093CE06;
+1AB2 : C84AFFC4;
+1AB3 : C64ECC22;
+1AB4 : 00808493;
+1AB5 : 892A47B1;
+1AB6 : 04F4F663;
+1AB7 : E56344B1;
+1AB8 : 854A04B4;
+1AB9 : 07132AA5;
+1ABA : 288313C0;
+1ABB : 06930007;
+1ABC : 844613C0;
+1ABD : 0993E429;
+1ABE : A3031400;
+1ABF : 17630009;
+1AC0 : 45810003;
+1AC1 : 221D854A;
+1AC2 : 00A9A023;
+1AC3 : 854A85A6;
+1AC4 : 59FD2A31;
+1AC5 : 09351163;
+1AC6 : 20234531;
+1AC7 : 854A00A9;
+1AC8 : A0312A3D;
+1AC9 : FA04DDE3;
+1ACA : 202342B1;
+1ACB : 45010059;
+1ACC : 446240F2;
+1ACD : 494244D2;
+1ACE : 610549B2;
+1ACF : 400C8082;
+1AD0 : 40958833;
+1AD1 : 04084663;
+1AD2 : 7763462D;
+1AD3 : 20230106;
+1AD4 : 94420104;
+1AD5 : A039C004;
+1AD6 : 00442E03;
+1AD7 : 02889763;
+1AD8 : 01C6A023;
+1AD9 : 28E5854A;
+1ADA : 00B40F13;
+1ADB : 00440E93;
+1ADC : FF8F7513;
+1ADD : 41D50FB3;
+1ADE : FBD50CE3;
+1ADF : 01F400B3;
+1AE0 : 40AE87B3;
+1AE1 : 00F0A023;
+1AE2 : A223B765;
+1AE3 : BFD901C8;
+1AE4 : 404088A2;
+1AE5 : 0393B785;
+1AE6 : F4130035;
+1AE7 : 0BE3FFC3;
+1AE8 : 05B3FA85;
+1AE9 : 854A40A4;
+1AEA : 15E32051;
+1AEB : B7ADFB35;
+1AEC : CC221101;
+1AED : CA26CE06;
+1AEE : C64EC84A;
+1AEF : 8432C452;
+1AF0 : 4462E999;
+1AF1 : 44D240F2;
+1AF2 : 49B24942;
+1AF3 : 85B24A22;
+1AF4 : F06F6105;
+1AF5 : EE09EEBF;
+1AF6 : E15FF0EF;
+1AF7 : 40F24481;
+1AF8 : 49424462;
+1AF9 : 4A2249B2;
+1AFA : 44D28526;
+1AFB : 80826105;
+1AFC : 892E8A2A;
+1AFD : 89AA20B5;
+1AFE : 00856763;
+1AFF : 00155793;
+1B00 : EEE384CA;
+1B01 : 85A2FC87;
+1B02 : F0EF8552;
+1B03 : 84AAEB3F;
+1B04 : 8622D579;
+1B05 : 0089F363;
+1B06 : 85CA864E;
+1B07 : B0EF8526;
+1B08 : 85CAD87F;
+1B09 : F0EF8552;
+1B0A : BF55DC7F;
+1B0B : C4221141;
+1B0C : 842AC226;
+1B0D : C606852E;
+1B0E : 14002223;
+1B0F : ABBF90EF;
+1B10 : 186357FD;
+1B11 : 208300F5;
+1B12 : 84631440;
+1B13 : 20230000;
+1B14 : 40B20014;
+1B15 : 44924422;
+1B16 : 80820141;
+1B17 : 80828082;
+1B18 : FFC5A783;
+1B19 : FFC78513;
+1B1A : 0007D663;
+1B1B : A28395AA;
+1B1C : 95160005;
+1B1D : 00008082;
+1B1E : 4F525245;
+1B1F : 25203A52;
+1B20 : 74612073;
+1B21 : 25783020;
+1B22 : 0A783830;
+1B23 : 73696D00;
+1B24 : 67696C61;
+1B25 : 0064656E;
+1B26 : 61766E69;
+1B27 : 2064696C;
+1B28 : 74736E69;
+1B29 : 74637572;
+1B2A : 006E6F69;
+1B2B : 20746F4E;
+1B2C : 414D2061;
+1B2D : 20303858;
+1B2E : 72616F62;
+1B2F : 3F213F64;
+1B30 : 000A0A21;
+1B31 : 3858414D;
+1B32 : 65762030;
+1B33 : 75252072;
+1B34 : 2075252E;
+1B35 : 6F776572;
+1B36 : 66206B72;
+1B37 : 7367616C;
+1B38 : 34302520;
+1B39 : 000A0A78;
+1B3A : 63697551;
+1B3B : 5244206B;
+1B3C : 74204D41;
+1B3D : 3A747365;
+1B3E : 3025000A;
+1B3F : 00207838;
+1B40 : 2A2A0A0A;
+1B41 : 6548202A;
+1B42 : 2C6F6C6C;
+1B43 : 726F5720;
+1B44 : 2021646C;
+1B45 : 0A2A2A2A;
+1B46 : 3858414D;
+1B47 : 69662030;
+1B48 : 61776D72;
+1B49 : 63206572;
+1B4A : 69706D6F;
+1B4B : 2064656C;
+1B4C : 203A6E6F;
+1B4D : 20766F4E;
+1B4E : 32203332;
+1B4F : 20313230;
+1B50 : 343A3030;
+1B51 : 35333A37;
+1B52 : 5452000A;
+1B53 : 49203A43;
+1B54 : 53204332;
+1B55 : 73204144;
+1B56 : 6B637574;
+1B57 : 776F6C20;
+1B58 : 6F4E000A;
+1B59 : 43545220;
+1B5A : 74656420;
+1B5B : 65746365;
+1B5C : 74612064;
+1B5D : 43324920;
+1B5E : 64646120;
+1B5F : 73736572;
+1B60 : 25783020;
+1B61 : 0A783230;
+1B62 : 43545200;
+1B63 : 6D697420;
+1B64 : 25203A65;
+1B65 : 2D753430;
+1B66 : 75323025;
+1B67 : 3230252D;
+1B68 : 30252075;
+1B69 : 253A7532;
+1B6A : 3A753230;
+1B6B : 75323025;
+1B6C : 6473000A;
+1B6D : 64726163;
+1B6E : 6165725F;
+1B6F : 6C625F64;
+1B70 : 3A6B636F;
+1B71 : 43524320;
+1B72 : 72726520;
+1B73 : 2820726F;
+1B74 : 6372637A;
+1B75 : 25203D20;
+1B76 : 29783430;
+1B77 : 6473000A;
+1B78 : 64726163;
+1B79 : 6163203A;
+1B7A : 72206472;
+1B7B : 766F6D65;
+1B7C : 000A6465;
+1B7D : 61636473;
+1B7E : 203A6472;
+1B7F : 003A7325;
+1B80 : 38302520;
+1B81 : 66200078;
+1B82 : 656C6961;
+1B83 : 65202C64;
+1B84 : 25207272;
+1B85 : 0A783230;
+1B86 : 63647300;
+1B87 : 3A647261;
+1B88 : 61657220;
+1B89 : 676E6964;
+1B8A : 20642520;
+1B8B : 74636573;
+1B8C : 7325726F;
+1B8D : 20746120;
+1B8E : 74207525;
+1B8F : 7025206F;
+1B90 : 6473000A;
+1B91 : 64726163;
+1B92 : 6572203A;
+1B93 : 6D5F6461;
+1B94 : 69746C75;
+1B95 : 20656C70;
+1B96 : 6F727265;
+1B97 : 30252072;
+1B98 : 000A7832;
+1B99 : 61636473;
+1B9A : 203A6472;
+1B9B : 64616572;
+1B9C : 6365735F;
+1B9D : 73726F74;
+1B9E : 6574203A;
+1B9F : 6E696D72;
+1BA0 : 20657461;
+1BA1 : 6D6D6F63;
+1BA2 : 20646E61;
+1BA3 : 6F727265;
+1BA4 : 30252072;
+1BA5 : 000A7832;
+1BA6 : 61636473;
+1BA7 : 203A6472;
+1BA8 : 74697277;
+1BA9 : 20676E69;
+1BAA : 73206425;
+1BAB : 6F746365;
+1BAC : 61207372;
+1BAD : 75252074;
+1BAE : 6F726620;
+1BAF : 7025206D;
+1BB0 : 6473000A;
+1BB1 : 64726163;
+1BB2 : 6163203A;
+1BB3 : 72206472;
+1BB4 : 766F6D65;
+1BB5 : 2D206465;
+1BB6 : 49525720;
+1BB7 : 4C204554;
+1BB8 : 0A54534F;
+1BB9 : 63647300;
+1BBA : 3A647261;
+1BBB : 69727720;
+1BBC : 6D5F6574;
+1BBD : 69746C75;
+1BBE : 20656C70;
+1BBF : 6F727265;
+1BC0 : 30252072;
+1BC1 : 000A7832;
+1BC2 : 61636473;
+1BC3 : 203A6472;
+1BC4 : 74697277;
+1BC5 : 72652065;
+1BC6 : 3A726F72;
+1BC7 : 32302520;
+1BC8 : 73000A78;
+1BC9 : 72616364;
+1BCA : 6E203A64;
+1BCB : 6163206F;
+1BCC : 64206472;
+1BCD : 63657465;
+1BCE : 0A646574;
+1BCF : 63647300;
+1BD0 : 3A647261;
+1BD1 : 444D4320;
+1BD2 : 65722038;
+1BD3 : 74726F70;
+1BD4 : 6E752073;
+1BD5 : 62617375;
+1BD6 : 6320656C;
+1BD7 : 20647261;
+1BD8 : 25783028;
+1BD9 : 000A2978;
+1BDA : 61636473;
+1BDB : 203A6472;
+1BDC : 444D4341;
+1BDD : 65203134;
+1BDE : 726F7272;
+1BDF : 32302520;
+1BE0 : 73000A78;
+1BE1 : 72616364;
+1BE2 : 43203A64;
+1BE3 : 3835444D;
+1BE4 : 72726520;
+1BE5 : 2520726F;
+1BE6 : 0A783230;
+1BE7 : 63647300;
+1BE8 : 3A647261;
+1BE9 : 444D4320;
+1BEA : 72652031;
+1BEB : 20726F72;
+1BEC : 78323025;
+1BED : 6473000A;
+1BEE : 64726163;
+1BEF : 4D43203A;
+1BF0 : 20363144;
+1BF1 : 6F727265;
+1BF2 : 30252072;
+1BF3 : 000A7832;
+1BF4 : 00445343;
+1BF5 : 61636473;
+1BF6 : 203A6472;
+1BF7 : 74697773;
+1BF8 : 64656863;
+1BF9 : 206F7420;
+1BFA : 68676968;
+1BFB : 65707320;
+1BFC : 000A6465;
+1BFD : 00444943;
+1BFE : 61636473;
+1BFF : 203A6472;
+1C00 : 63207325;
+1C01 : 20647261;
+1C02 : 6E756F66;
+1C03 : 63202C64;
+1C04 : 63617061;
+1C05 : 20797469;
+1C06 : 73207525;
+1C07 : 6F746365;
+1C08 : 000A7372;
+1C09 : 6E6B6E75;
+1C0A : 006E776F;
+1C0B : 4D2F4453;
+1C0C : 5300434D;
+1C0D : 2F434844;
+1C0E : 43584453;
+1C0F : 4D4D652F;
+1C10 : 00000043;
+1C11 : 00007024;
+1C12 : 0000702C;
+1C13 : 00007033;
+1C14 : 00005000;
+1C15 : 00C00800;
+1C16 : 400050D8;
+1C17 : 00006000;
+1C18 : 00801000;
+1C19 : 40000000;
+1C1A : 00008000;
+1C1B : 00C04000;
+1C1C : 400010D8;
+1C1D : FFFFFFFF;
+1C1E : 00000000;
+1C1F : 00000000;
+1C20 : 38434241;
+1C21 : 41003030;
+1C22 : 30384342;
+1C23 : 6F282000;
+1C24 : 6E696C6E;
+1C25 : 000A2965;
+1C26 : 666F2820;
+1C27 : 6E696C66;
+1C28 : 000A2965;
+1C29 : 61636473;
+1C2A : 203A6472;
+1C2B : 76206F6E;
+1C2C : 6D756C6F;
+1C2D : 6F662065;
+1C2E : 0A646E75;
+1C2F : 63647300;
+1C30 : 3A647261;
+1C31 : 6C6F7620;
+1C32 : 20656D75;
+1C33 : 6E756F66;
+1C34 : 6C202C64;
+1C35 : 6C656261;
+1C36 : 73252220;
+1C37 : 76202C22;
+1C38 : 64696C6F;
+1C39 : 38302520;
+1C3A : 73000A78;
+1C3B : 72616364;
+1C3C : 25203A64;
+1C3D : 75252F75;
+1C3E : 756C6320;
+1C3F : 72657473;
+1C40 : 72662073;
+1C41 : 202C6565;
+1C42 : 73756C63;
+1C43 : 73726574;
+1C44 : 25203D20;
+1C45 : 79622075;
+1C46 : 0A736574;
+1C47 : 43424100;
+1C48 : 7375622D;
+1C49 : 736F6820;
+1C4A : 00203A74;
+1C4B : 322E2D25;
+1C4C : 00632573;
+1C4D : 73257325;
+1C4E : 63626100;
+1C4F : 6B736964;
+1C50 : 2D25203A;
+1C51 : 3D207333;
+1C52 : 0A732520;
+1C53 : 63626100;
+1C54 : 6B736964;
+1C55 : 2D25203A;
+1C56 : 21207333;
+1C57 : 6C696620;
+1C58 : 6F742065;
+1C59 : 7266206F;
+1C5A : 656D6761;
+1C5B : 6465746E;
+1C5C : 6977202C;
+1C5D : 62206C6C;
+1C5E : 6C732065;
+1C5F : 000A776F;
+1C60 : 6362612F;
+1C61 : 6B736964;
+1C62 : 612F002F;
+1C63 : 69646362;
+1C64 : 002E6B73;
+1C65 : 000073C8;
+1C66 : 00007180;
+1C67 : 0000718A;
+1C68 : 00007188;
+1C69 : 00000000;
+1C6A : 05002D00;
+1C6B : 00100228;
+1C6C : 00006F6D;
+1C6D : 0A002C02;
+1C6E : 00100250;
+1C6F : 0000666D;
+1C70 : 0F8A2E02;
+1C71 : 001A024D;
+1C72 : 00006673;
+1C73 : EEE02405;
+1C74 : 014010EE;
+1C75 : 00006468;
+1C76 : 459076EB;
+1C77 : 54414658;
+1C78 : 00202020;
+1C79 : 33544146;
+1C7A : 20202032;
+1C7B : 3C3A2A00;
+1C7C : 3F227C3E;
+1C7D : 2C2B007F;
+1C7E : 5D5B3D3B;
+1C7F : 05030100;
+1C80 : 100E0907;
+1C81 : 18161412;
+1C82 : 01001E1C;
+1C83 : 03030202;
+1C84 : 04040303;
+1C85 : 04040404;
+1C86 : 05050404;
+1C87 : 05050505;
+1C88 : 05050505;
+1C89 : 05050505;
+1C8A : 06060505;
+1C8B : 06060606;
+1C8C : 06060606;
+1C8D : 06060606;
+1C8E : 06060606;
+1C8F : 06060606;
+1C90 : 06060606;
+1C91 : 06060606;
+1C92 : 07070606;
+1C93 : 07070707;
+1C94 : 07070707;
+1C95 : 07070707;
+1C96 : 07070707;
+1C97 : 07070707;
+1C98 : 07070707;
+1C99 : 07070707;
+1C9A : 07070707;
+1C9B : 07070707;
+1C9C : 07070707;
+1C9D : 07070707;
+1C9E : 07070707;
+1C9F : 07070707;
+1CA0 : 07070707;
+1CA1 : 07070707;
+1CA2 : 08080707;
+1CA3 : 08080808;
+1CA4 : 08080808;
+1CA5 : 08080808;
+1CA6 : 08080808;
+1CA7 : 08080808;
+1CA8 : 08080808;
+1CA9 : 08080808;
+1CAA : 08080808;
+1CAB : 08080808;
+1CAC : 08080808;
+1CAD : 08080808;
+1CAE : 08080808;
+1CAF : 08080808;
+1CB0 : 08080808;
+1CB1 : 08080808;
+1CB2 : 08080808;
+1CB3 : 08080808;
+1CB4 : 08080808;
+1CB5 : 08080808;
+1CB6 : 08080808;
+1CB7 : 08080808;
+1CB8 : 08080808;
+1CB9 : 08080808;
+1CBA : 08080808;
+1CBB : 08080808;
+1CBC : 08080808;
+1CBD : 08080808;
+1CBE : 08080808;
+1CBF : 08080808;
+1CC0 : 08080808;
+1CC1 : 08080808;
+1CC2 : 2D230808;
+1CC3 : 00202B30;
+1CC4 : 004C6C68;
+1CC5 : 45676665;
+1CC6 : 30004746;
+1CC7 : 34333231;
+1CC8 : 38373635;
+1CC9 : 43424139;
+1CCA : 00464544;
+1CCB : 33323130;
+1CCC : 37363534;
+1CCD : 62613938;
+1CCE : 66656463;
+1CCF : 00000000;
+1CD0 : 0000674E;
+1CD1 : 00006764;
+1CD2 : 00006722;
+1CD3 : 00006722;
+1CD4 : 00006722;
+1CD5 : 00006722;
+1CD6 : 00006764;
+1CD7 : 00006722;
+1CD8 : 00006722;
+1CD9 : 00006722;
+1CDA : 00006722;
+1CDB : 000068F4;
+1CDC : 000067B4;
+1CDD : 00006886;
+1CDE : 00006722;
+1CDF : 00006722;
+1CE0 : 00006930;
+1CE1 : 00006722;
+1CE2 : 000067B4;
+1CE3 : 00006722;
+1CE4 : 00006722;
+1CE5 : 00006892;
+1CE6 : 00000101;
+1CE7 : 00000000;
+1CE8 : 00000000;
+1CE9 : 00000000;
+1CEA : 00000000;
+1CEB : 00000000;
+1CEC : 00000000;
+1CED : 00000000;
+1CEE : 00000000;
+1CEF : 00000000;
+1CF0 : 00000000;
+1CF1 : 00000000;
+1CF2 : 6362612F;
+1CF3 : 6B736964;
+1CF4 : 3030382E;
+1CF5 : 0000002F;
+1CF6 : 00000000;
+1CF7 : 00000000;
+1CF8 : 00000000;
+1CF9 : 00000000;
+1CFA : 00000105;
+1CFB : 00007FBF;
+1CFC : 00000000;
+1CFD : D3030300;
+1CFE : 0000270A;
+1CFF : 00000000;
+1D00 : 0000272E;
+1D01 : 00000000;
+1D02 : 00000000;
+1D03 : 00000000;
+1D04 : 0000271C;
+1D05 : 00000000;
+1D06 : 00000000;
+1D07 : 00000000;
+1D08 : 00000000;
+1D09 : 00000000;
+1D0A : 00000000;
+1D0B : 00000000;
+1D0C : 00000000;
+1D0D : 00000000;
+1D0E : 00000000;
+1D0F : 00000000;
+1D10 : 00000000;
+1D11 : 00000000;
+1D12 : 00000000;
+1D13 : 00000000;
+1D14 : 00000000;
+1D15 : 00000000;
+1D16 : 00000000;
+1D17 : 00000000;
+1D18 : 00000000;
+1D19 : 00000000;
+1D1A : 00000000;
+1D1B : 00000000;
+1D1C : 00000000;
+1D1D : 00000000;
+1D1E : 00000000;
+[1D1F..1FFF] : 00;
 END;

+ 14 - 4
fw/diskcache.c

@@ -39,7 +39,7 @@ static struct cache_block __dram_noinit disk_cache[CACHE_BLOCKS];
 static struct dll lru_list;
 static struct dll free_list;
 
-static void disk_cache_init(void)
+void disk_cache_init(void)
 {
     struct cache_block *bp, *bep;
     struct dll *hp, *hep;
@@ -188,13 +188,14 @@ static struct cache_block *disk_cache_get(block_t block, bool do_read)
 
 DSTATUS disk_initialize(BYTE drive)
 {
-    DSTATUS status;
+    DSTATUS status, old_status;
 
     if (drive != 0)
 	return STA_NOINIT | STA_NODISK;
 
+    old_status = sdc.status;
     status = sdcard_init();
-    if (!(status & STA_NOINIT))
+    if ((status ^ old_status) & STA_NOINIT)
 	disk_cache_init();
 
     return sdc.fsstatus = status;
@@ -203,7 +204,10 @@ DSTATUS disk_initialize(BYTE drive)
 DRESULT disk_ioctl(BYTE drive, BYTE command, void *buffer)
 {
     if (drive != 0)
-	return STA_NOINIT;
+	return STA_NOINIT | STA_NODISK;
+
+    if (sdc.status & STA_NOINIT)
+	return RES_NOTRDY;
 
     switch (command) {
     case CTRL_SYNC:
@@ -227,6 +231,9 @@ DRESULT disk_read(BYTE drive, BYTE *buffer,
 {
     (void)drive;
 
+    if (sdc.status & STA_NOINIT)
+	return RES_NOTRDY;
+
     if (!sectorcount)
 	return RES_OK;
 
@@ -256,6 +263,9 @@ DRESULT disk_write(BYTE drive, const BYTE *buffer, LBA_t sectornumber,
 {
     (void)drive;
 
+    if (sdc.status & STA_NOINIT)
+	return RES_NOTRDY;
+
     if (!sectorcount)
 	return RES_OK;
 

+ 1 - 0
fw/fw.h

@@ -80,6 +80,7 @@ extern void write_rtc(void);
 extern bool do_write_rtc;
 extern void rtc_abc_init(void);
 extern void rtc_abc_io_poll(void);
+extern void disk_cache_init(void);
 
 extern uint32_t romcopy_time[2];
 

+ 6 - 0
fw/io.h

@@ -6,6 +6,7 @@
 #include <stdbool.h>
 #include "ioregs.h"
 #include "picorv32.h"
+#include "irq.h"
 
 static inline void pause(void)
 {
@@ -74,5 +75,10 @@ static inline void i2c_set_speed(unsigned int khz)
     I2C_DIVISOR = ((CPU_HZ/4000)-1)/khz;
 }
 
+static inline void wait_romcopy_done(void)
+{
+    while (~irqmask() & (1 << ROMCOPY_IRQ))
+	pause();
+}
 
 #endif /* IO_H */

+ 1 - 1
fw/main.c

@@ -4,7 +4,7 @@
 #include "sys.h"
 #include "console.h"
 
-volatile bool dont_gc;		/* Keep things from linker gc */
+volatile bool dont_gc = false;	/* Keep things from linker gc */
 
 void main(void)
 {

+ 12 - 8
fw/sdcard.c

@@ -76,7 +76,8 @@ enum sdcard_acmd {
 };
 
 struct sdcard_info sdc = {
-    .status = STA_NOINIT
+    .status   = STA_NOINIT,
+    .fsstatus = STA_NOINIT
 };
 
 /* < 0 if it should be left on, 0 for off, > 0 for off after timeout */
@@ -627,9 +628,11 @@ static void sdcard_try_high_speed(void)
 static DSTATUS sdcard_present_check(void)
 {
     /* Send CRC enable command; only care about getting any response at all */
-    if (!(sdc.status & STA_NOINIT) &&
-	sdcard_send_cmd(CMD_CRC_ON_OFF, 0x0001) < 0) {
-	sdc.status = STA_NOINIT | STA_NODISK;
+    if (sdc.status & STA_NOINIT)
+	return sdc.status;
+
+    if (sdcard_send_cmd(CMD_CRC_ON_OFF, 0x0001) < 0) {
+	sdc.fsstatus = sdc.status = STA_NOINIT | STA_NODISK;
 	set_led(LED_SDCARD, false);
 	con_puts("sdcard: card removed\n");
     }
@@ -646,6 +649,7 @@ DSTATUS sdcard_present_poll(void)
     if ((now - last_disk_poll) < SDCARD_PRESENT_POLL)
 	return sdc.status;
 
+    last_disk_poll = now;
     return sdcard_present_check();
 }
 
@@ -661,6 +665,9 @@ DSTATUS sdcard_init(void)
     uint32_t now = timer_count();
     DSTATUS old_sdc_status = sdc.status;
 
+    /* So we can wait for the ready condition */
+    SDCARD_CTL_IRQEN = SDCARD_IRQ_READY;
+
     if (!(old_sdc_status & STA_NOINIT)) {
 	return sdcard_present_check();
     }
@@ -671,11 +678,8 @@ DSTATUS sdcard_init(void)
     }
     last_disk_retry = now;
 
-    /* So we can wait for the ready condition */
-    SDCARD_CTL_IRQEN = SDCARD_IRQ_READY;
-
     memset(&sdc, 0, sizeof sdc);
-    sdc.status = STA_NOINIT | STA_NODISK;
+    sdc.fsstatus = sdc.status = STA_NOINIT | STA_NODISK;
 
 #if 0
     status = /* Check card detect if present */

+ 43 - 13
fw/system.c

@@ -11,9 +11,8 @@ IRQHANDLER(sysclock)
 
     count++;
     timer_irq_count = count;
-#ifdef TEST
-    set_leds(count >> 3); /* 4 Hz */
-#endif
+    if (!(count & ((1U << TIMER_SHIFT)-1)))
+	CON_DATA = '.';		/* Console heartbeat */
 }
 
 static no_return killed(const char *how, size_t pc)
@@ -25,16 +24,18 @@ static no_return killed(const char *how, size_t pc)
     reset();
 }
 
-IRQHANDLER(BUSERR)
+IRQHANDLER(buserr)
 {
     killed("misaligned", pc);
 }
 
-IRQHANDLER(EBREAK)
+IRQHANDLER(ebreak)
 {
     killed("invalid instruction", pc);
 }
 
+volatile uint32_t __dram_bss test_dram[8];
+
 uint32_t timer_irq_start;
 void init(void)
 {
@@ -46,21 +47,27 @@ void init(void)
 #endif
 	"firmware compiled on: " __DATE__ " " __TIME__ "\n";
 
-    set_leds(-1U);
+    timer_irq_start = rdtime();
+
+    /* Start ROM copy engine, unmask timer and fatal exceptions */
+    unmask_irqs((1U << ROMCOPY_IRQ)|(1U << EBREAK_IRQ)|
+		(1U << BUSERR_IRQ)|(1U << SYSCLOCK_IRQ));
 
-    /* Start ROM copy engine and unmask fatal exceptions */
-    unmask_irqs((1U << ROMCOPY_IRQ)|(1U << EBREAK_IRQ)|(1U << BUSERR_IRQ));
+    set_leds(7);
+    con_set_baudrate(115200);
+    con_puts(hello);
+    con_flush();
 
     /* Enable internal timer */
-    timer_irq_start = rdtime();
     unmask_irq(SYSCLOCK_IRQ);
 
+    set_leds(6);
+    wait_romcopy_done();
+    set_leds(5);
+
     /* This needs to be done as early as possible!!! */
     abc_init_memmap();
 
-    con_set_baudrate(115200);
-    con_puts(hello);
-
     if (SYS_MAGIC != SYS_MAGIC_MAX80) {
 	con_puts("Not a MAX80 board?!?!\n\n");
     } else {
@@ -71,14 +78,37 @@ void init(void)
 		   (uint16_t)boardcfg);
     }
 
+    con_puts("Quick DRAM test:\n");
+    for (int i = 0; i < 8; i++) {
+	uint32_t v = (i*0x11111111) + 0x44332211;
+	test_dram[i] = v;
+	con_printf("%08x ", v);
+    }
+    con_putc('\n');
+
+    for (int i = 0; i < 8; i++) {
+	con_printf("%08x ", test_dram[i]);
+    }
+    con_puts("\n\n");
+
+    set_leds(4);
+
     read_rtc();
     rtc_abc_init();
 
+    set_leds(3);
+
+    disk_cache_init();
     abcdisk_init();
+
+    set_leds(2);
+
     abc_init();
 
-    set_leds(0);
+    set_leds(1);
 
     /* Release WAIT# if asserted */
     ABC_BUSCTL = 0;
+
+    set_leds(0);
 }