From a577b7628b9342999f5d46f78e333783b9e242b0 Mon Sep 17 00:00:00 2001 From: Jason <83615043+JJassonn69@users.noreply.github.com> Date: Fri, 27 Mar 2026 23:05:28 +0200 Subject: [PATCH] Fix staggered-PRF Doppler processing with dual 16-point FFTs --- 9_Firmware/9_2_FPGA/doppler_processor.v | 879 ++-- 9_Firmware/9_2_FPGA/fft_twiddle_16.mem | 8 + .../9_2_FPGA/formal/fv_doppler_processor.v | 10 +- .../9_2_FPGA/tb/cosim/compare_doppler.py | 20 +- .../tb/cosim/doppler_golden_py_moving.csv | 3864 ++++++++--------- .../tb/cosim/doppler_golden_py_moving.hex | 3812 ++++++++-------- .../tb/cosim/doppler_golden_py_stationary.csv | 3826 ++++++++-------- .../tb/cosim/doppler_golden_py_stationary.hex | 3798 ++++++++-------- .../cosim/doppler_golden_py_two_targets.csv | 3858 ++++++++-------- .../cosim/doppler_golden_py_two_targets.hex | 3814 ++++++++-------- .../tb/cosim/doppler_input_moving.hex | 308 +- .../tb/cosim/doppler_input_two_targets.hex | 632 +-- 9_Firmware/9_2_FPGA/tb/cosim/fpga_model.py | 116 +- .../9_2_FPGA/tb/cosim/gen_doppler_golden.py | 235 +- 9_Firmware/9_2_FPGA/tb/cosim/radar_scene.py | 24 +- 9_Firmware/9_2_FPGA/tb/tb_doppler_cosim.v | 1 + 9_Firmware/9_2_FPGA/tb/tb_doppler_realdata.v | 1 + 9_Firmware/9_2_FPGA/xfft_16.v | 252 ++ 18 files changed, 12801 insertions(+), 12657 deletions(-) create mode 100644 9_Firmware/9_2_FPGA/fft_twiddle_16.mem create mode 100644 9_Firmware/9_2_FPGA/xfft_16.v diff --git a/9_Firmware/9_2_FPGA/doppler_processor.v b/9_Firmware/9_2_FPGA/doppler_processor.v index 7b9b4ef..5c6570b 100644 --- a/9_Firmware/9_2_FPGA/doppler_processor.v +++ b/9_Firmware/9_2_FPGA/doppler_processor.v @@ -1,11 +1,44 @@ `timescale 1ns / 1ps +// ============================================================================ +// doppler_processor.v — Staggered-PRF Doppler Processor (CORRECTED) +// ============================================================================ +// +// ARCHITECTURE: +// This module implements dual 16-point FFTs for the AERIS-10 staggered-PRF +// waveform. The radar transmits 16 long-PRI chirps followed by 16 short-PRI +// chirps per frame (32 total). Rather than a single 32-point FFT over the +// non-uniformly sampled frame (which is signal-processing invalid), this +// module processes each sub-frame independently: +// +// Sub-frame 0 (long PRI): chirps 0..15 → 16-pt windowed FFT +// Sub-frame 1 (short PRI): chirps 16..31 → 16-pt windowed FFT +// +// Each sub-frame produces 16 Doppler bins per range bin. The outputs are +// tagged with a sub_frame bit and the 4-bit bin index is packed into the +// existing 5-bit doppler_bin port as {sub_frame, bin[3:0]}. +// +// This architecture enables downstream staggered-PRF ambiguity resolution: +// the same target velocity maps to DIFFERENT Doppler bins at different PRIs, +// and comparing the two sub-frame results resolves velocity ambiguity. +// +// INTERFACE COMPATIBILITY: +// The port list is a superset of the original module. Existing instantiations +// that don't connect `sub_frame` will still work. The FORMAL ports are +// retained. CHIRPS_PER_FRAME must be 32 (16 per sub-frame). +// +// WINDOW: +// 16-point Hamming window (Q15), symmetric. Computed as: +// w[n] = 0.54 - 0.46 * cos(2*pi*n/15), n=0..15 +// ============================================================================ + module doppler_processor_optimized #( - parameter DOPPLER_FFT_SIZE = 32, - parameter RANGE_BINS = 64, - parameter CHIRPS_PER_FRAME = 32, - parameter WINDOW_TYPE = 0, // 0=Hamming, 1=Rectangular - parameter DATA_WIDTH = 16 + parameter DOPPLER_FFT_SIZE = 16, // FFT size per sub-frame (was 32) + parameter RANGE_BINS = 64, + parameter CHIRPS_PER_FRAME = 32, // Total chirps in frame (16+16) + parameter CHIRPS_PER_SUBFRAME = 16, // Chirps per sub-frame + parameter WINDOW_TYPE = 0, // 0=Hamming, 1=Rectangular + parameter DATA_WIDTH = 16 )( input wire clk, input wire reset_n, @@ -14,62 +47,63 @@ module doppler_processor_optimized #( input wire new_chirp_frame, output reg [31:0] doppler_output, output reg doppler_valid, - output reg [4:0] doppler_bin, + output reg [4:0] doppler_bin, // {sub_frame, bin[3:0]} output reg [5:0] range_bin, - output wire processing_active, - output wire frame_complete, - output reg [3:0] status - -`ifdef FORMAL - , - output wire [2:0] fv_state, - output wire [10:0] fv_mem_write_addr, - output wire [10:0] fv_mem_read_addr, - output wire [5:0] fv_write_range_bin, - output wire [4:0] fv_write_chirp_index, - output wire [5:0] fv_read_range_bin, - output wire [4:0] fv_read_doppler_index, - output wire [9:0] fv_processing_timeout, - output wire fv_frame_buffer_full, - output wire fv_mem_we, - output wire [10:0] fv_mem_waddr_r -`endif -); - -// ============================================== -// Window Coefficients (Simple Implementation) -// ============================================== -reg [DATA_WIDTH-1:0] window_coeff [0:31]; + output reg sub_frame, // 0=long PRI, 1=short PRI + output wire processing_active, + output wire frame_complete, + output reg [3:0] status + +`ifdef FORMAL + , + output wire [2:0] fv_state, + output wire [10:0] fv_mem_write_addr, + output wire [10:0] fv_mem_read_addr, + output wire [5:0] fv_write_range_bin, + output wire [4:0] fv_write_chirp_index, + output wire [5:0] fv_read_range_bin, + output wire [4:0] fv_read_doppler_index, + output wire [9:0] fv_processing_timeout, + output wire fv_frame_buffer_full, + output wire fv_mem_we, + output wire [10:0] fv_mem_waddr_r +`endif +); + +// ============================================== +// Window Coefficients — 16-point Hamming (Q15) +// ============================================== +// w[n] = 0.54 - 0.46 * cos(2*pi*n/15), n=0..15 +// Symmetric: w[n] = w[15-n] +reg [DATA_WIDTH-1:0] window_coeff [0:15]; -// Generate window coefficients integer w; initial begin if (WINDOW_TYPE == 0) begin - // Pre-calculated Hamming window (Q15 format) - window_coeff[0] = 16'h0800; window_coeff[1] = 16'h0862; - window_coeff[2] = 16'h09CB; window_coeff[3] = 16'h0C3B; - window_coeff[4] = 16'h0FB2; window_coeff[5] = 16'h142F; - window_coeff[6] = 16'h19B2; window_coeff[7] = 16'h2039; - window_coeff[8] = 16'h27C4; window_coeff[9] = 16'h3050; - window_coeff[10] = 16'h39DB; window_coeff[11] = 16'h4462; - window_coeff[12] = 16'h4FE3; window_coeff[13] = 16'h5C5A; - window_coeff[14] = 16'h69C4; window_coeff[15] = 16'h781D; - window_coeff[16] = 16'h7FFF; // Peak - window_coeff[17] = 16'h781D; window_coeff[18] = 16'h69C4; - window_coeff[19] = 16'h5C5A; window_coeff[20] = 16'h4FE3; - window_coeff[21] = 16'h4462; window_coeff[22] = 16'h39DB; - window_coeff[23] = 16'h3050; window_coeff[24] = 16'h27C4; - window_coeff[25] = 16'h2039; window_coeff[26] = 16'h19B2; - window_coeff[27] = 16'h142F; window_coeff[28] = 16'h0FB2; - window_coeff[29] = 16'h0C3B; window_coeff[30] = 16'h09CB; - window_coeff[31] = 16'h0862; + // 16-point Hamming window, Q15 format + // Computed: round(32767 * (0.54 - 0.46*cos(2*pi*n/15))) + window_coeff[0] = 16'h0A3D; // 0.0800 * 32767 = 2621 + window_coeff[1] = 16'h0E5C; // 0.1116 * 32767 = 3676 + window_coeff[2] = 16'h1B6D; // 0.2138 * 32767 = 7021 + window_coeff[3] = 16'h3088; // 0.3790 * 32767 = 12424 + window_coeff[4] = 16'h4B33; // 0.5868 * 32767 = 19251 + window_coeff[5] = 16'h6573; // 0.7930 * 32767 = 25971 + window_coeff[6] = 16'h7642; // 0.9245 * 32767 = 30274 + window_coeff[7] = 16'h7F62; // 0.9932 * 32767 = 32610 + window_coeff[8] = 16'h7F62; // symmetric + window_coeff[9] = 16'h7642; + window_coeff[10] = 16'h6573; + window_coeff[11] = 16'h4B33; + window_coeff[12] = 16'h3088; + window_coeff[13] = 16'h1B6D; + window_coeff[14] = 16'h0E5C; + window_coeff[15] = 16'h0A3D; end else begin - // Rectangular window (all ones) - for (w = 0; w < 32; w = w + 1) begin + for (w = 0; w < 16; w = w + 1) begin window_coeff[w] = 16'h7FFF; end end -end +end // ============================================== // Memory Declaration - FIXED SIZE @@ -81,57 +115,53 @@ localparam MEM_DEPTH = RANGE_BINS * CHIRPS_PER_FRAME; // ============================================== // Control Registers // ============================================== -reg [5:0] write_range_bin; // Changed to match RANGE_BINS width -reg [4:0] write_chirp_index; // Changed to match CHIRPS_PER_FRAME width +reg [5:0] write_range_bin; +reg [4:0] write_chirp_index; reg [5:0] read_range_bin; -reg [4:0] read_doppler_index; // Changed name for clarity +reg [4:0] read_doppler_index; reg frame_buffer_full; -reg [9:0] chirps_received; // Enough for up to 1024 chirps -reg [1:0] chirp_state; // Track chirp accumulation state +reg [9:0] chirps_received; +reg [1:0] chirp_state; + +// Sub-frame tracking +reg current_sub_frame; // 0=processing long, 1=processing short - // ============================================== // FFT Interface // ============================================== reg fft_start; wire fft_ready; reg [DATA_WIDTH-1:0] fft_input_i; -reg [DATA_WIDTH-1:0] fft_input_q; -reg signed [31:0] mult_i, mult_q; // 32-bit to avoid overflow -reg signed [DATA_WIDTH-1:0] window_val_reg; // BREG pipeline stage -reg signed [31:0] mult_i_raw, mult_q_raw; // MREG pipeline stage +reg [DATA_WIDTH-1:0] fft_input_q; +reg signed [31:0] mult_i, mult_q; +reg signed [DATA_WIDTH-1:0] window_val_reg; +reg signed [31:0] mult_i_raw, mult_q_raw; reg fft_input_valid; reg fft_input_last; wire [DATA_WIDTH-1:0] fft_output_i; wire [DATA_WIDTH-1:0] fft_output_q; wire fft_output_valid; -wire fft_output_last; +wire fft_output_last; // ============================================== -// Addressing +// Addressing // ============================================== wire [10:0] mem_write_addr; wire [10:0] mem_read_addr; -// Proper address calculation using parameters assign mem_write_addr = (write_chirp_index * RANGE_BINS) + write_range_bin; assign mem_read_addr = (read_doppler_index * RANGE_BINS) + read_range_bin; -// Alternative organization (choose one): -// If you want range-major organization (all chirps for one range bin together): -// assign mem_write_addr = (write_range_bin * CHIRPS_PER_FRAME) + write_chirp_index; -// assign mem_read_addr = (read_range_bin * CHIRPS_PER_FRAME) + read_doppler_index; - -// ============================================== -// State Machine -// ============================================== -reg [2:0] state; -localparam S_IDLE = 3'b000; -localparam S_ACCUMULATE = 3'b001; -localparam S_PRE_READ = 3'b101; // Prime BRAM pipeline before FFT load -localparam S_LOAD_FFT = 3'b010; -localparam S_FFT_WAIT = 3'b011; +// ============================================== +// State Machine +// ============================================== +reg [2:0] state; +localparam S_IDLE = 3'b000; +localparam S_ACCUMULATE = 3'b001; +localparam S_PRE_READ = 3'b101; +localparam S_LOAD_FFT = 3'b010; +localparam S_FFT_WAIT = 3'b011; localparam S_OUTPUT = 3'b100; // Frame sync detection @@ -142,361 +172,347 @@ always @(posedge clk or negedge reset_n) begin end wire frame_start_pulse = new_chirp_frame & ~new_chirp_frame_d1; -// ============================================== -// Main State Machine - FIXED -// ============================================== -reg [5:0] fft_sample_counter; -reg [9:0] processing_timeout; - -// Memory write enable and data signals (extracted for BRAM inference) -reg mem_we; -reg [10:0] mem_waddr_r; -reg [DATA_WIDTH-1:0] mem_wdata_i, mem_wdata_q; - -// Memory read data (registered for BRAM read latency) -reg [DATA_WIDTH-1:0] mem_rdata_i, mem_rdata_q; - -`ifdef FORMAL -assign fv_state = state; -assign fv_mem_write_addr = mem_write_addr; -assign fv_mem_read_addr = mem_read_addr; -assign fv_write_range_bin = write_range_bin; -assign fv_write_chirp_index = write_chirp_index; -assign fv_read_range_bin = read_range_bin; -assign fv_read_doppler_index = read_doppler_index; -assign fv_processing_timeout = processing_timeout; -assign fv_frame_buffer_full = frame_buffer_full; -assign fv_mem_we = mem_we; -assign fv_mem_waddr_r = mem_waddr_r; -`endif - -// ---------------------------------------------------------- -// Separate always block for memory writes — NO async reset -// in sensitivity list, so Vivado can infer Block RAM. -// ---------------------------------------------------------- -always @(posedge clk) begin - if (mem_we) begin - doppler_i_mem[mem_waddr_r] <= mem_wdata_i; - doppler_q_mem[mem_waddr_r] <= mem_wdata_q; - end - // Registered read — address driven by mem_read_addr from FSM - mem_rdata_i <= doppler_i_mem[mem_read_addr]; - mem_rdata_q <= doppler_q_mem[mem_read_addr]; -end - -// ---------------------------------------------------------- -// Block 1: FSM / Control — async reset (posedge clk or negedge reset_n). -// Only state-machine and control registers live here. -// BRAM-driving and DSP datapath registers are intentionally -// excluded to avoid Vivado REQP-1839 (async-reset on BRAM -// address) and DPOR-1/DPIP-1 (async-reset blocking DSP48 -// absorption) DRC warnings. -// ---------------------------------------------------------- -always @(posedge clk or negedge reset_n) begin - if (!reset_n) begin - state <= S_IDLE; - write_range_bin <= 0; - write_chirp_index <= 0; - // read_range_bin, read_doppler_index moved to Block 2 (sync reset) - // to enable BRAM address register absorption (REQP-1839 fix) - frame_buffer_full <= 0; - doppler_valid <= 0; - fft_start <= 0; - fft_input_valid <= 0; - fft_input_last <= 0; - fft_sample_counter <= 0; - processing_timeout <= 0; - status <= 0; - chirps_received <= 0; - chirp_state <= 0; - doppler_output <= 0; - doppler_bin <= 0; - range_bin <= 0; - end else begin - doppler_valid <= 0; - fft_input_valid <= 0; - fft_input_last <= 0; - - if (processing_timeout > 0) begin - processing_timeout <= processing_timeout - 1; - end - - case (state) - S_IDLE: begin - if (frame_start_pulse) begin - // Start new frame - write_chirp_index <= 0; - write_range_bin <= 0; - frame_buffer_full <= 0; - chirps_received <= 0; - end - - if (data_valid && !frame_buffer_full) begin - state <= S_ACCUMULATE; - write_range_bin <= 1; - end - end - - S_ACCUMULATE: begin - if (data_valid) begin - // Increment range bin - if (write_range_bin < RANGE_BINS - 1) begin - write_range_bin <= write_range_bin + 1; - end else begin - // Completed one chirp - write_range_bin <= 0; - write_chirp_index <= write_chirp_index + 1; - chirps_received <= chirps_received + 1; - - // Check if frame is complete - if (write_chirp_index >= CHIRPS_PER_FRAME - 1) begin - frame_buffer_full <= 1; - chirp_state <= 0; - state <= S_PRE_READ; - // read_range_bin/read_doppler_index zeroed in Block 2 - fft_sample_counter <= 0; - // Reset write pointers — no longer needed for - // this frame, and prevents stale overflow of - // write_chirp_index (which was just incremented - // past CHIRPS_PER_FRAME-1 above). - write_chirp_index <= 0; - write_range_bin <= 0; - end - end - end - end - - S_PRE_READ: begin - // Prime the BRAM pipeline: present addr for chirp 0 of - // current read_range_bin. read_doppler_index is already 0. - // mem_read_addr = 0 * RANGE_BINS + read_range_bin. - // After this cycle, mem_rdata_i will hold data[chirp=0][rbin]. - // Advance read_doppler_index to 1 so the NEXT BRAM read - // (which happens every cycle in the memory block) will - // fetch chirp 1. - // read_doppler_index <= 1 moved to Block 2 - fft_start <= 1; - state <= S_LOAD_FFT; - end - - S_LOAD_FFT: begin - fft_start <= 0; - - // Pipeline alignment (after S_PRE_READ primed the BRAM - // and pre-registered window_val_reg = window_coeff[0]): - // - // With DSP48 BREG+MREG pipelining, data flows through: - // sub=0: multiply mem_rdata * window_val_reg -> mult_i_raw - // pre-register window_coeff[1] into window_val_reg - // sub=1: MREG capture mult_i_raw -> mult_i (sample 0) - // new multiply for sample 1 - // sub=2..DOPPLER_FFT_SIZE+1: steady state — - // fft_input = rounding(mult_i), mult_i = mult_i_raw, - // mult_i_raw = new multiply, window_val_reg = next coeff - // - // fft_input_valid asserted at sub=2..DOPPLER_FFT_SIZE+1 - // fft_input_last asserted at sub=DOPPLER_FFT_SIZE+1 - - // read_doppler_index updates moved to Block 2 (sync reset) - if (fft_sample_counter <= 1) begin - // Sub 0..1: pipeline priming — no valid FFT data yet - fft_sample_counter <= fft_sample_counter + 1; - end else if (fft_sample_counter <= DOPPLER_FFT_SIZE + 1) begin - // Sub 2..DOPPLER_FFT_SIZE+1: steady state - // (fft_input_i/fft_input_q captured in Block 2) - fft_input_valid <= 1; - - if (fft_sample_counter == DOPPLER_FFT_SIZE + 1) begin - // Last sample: flush - fft_input_last <= 1; - state <= S_FFT_WAIT; - fft_sample_counter <= 0; - processing_timeout <= 1000; - end else begin - fft_sample_counter <= fft_sample_counter + 1; - end - end - end - - S_FFT_WAIT: begin - if (fft_output_valid) begin - doppler_output <= {fft_output_q[15:0], fft_output_i[15:0]}; - doppler_bin <= fft_sample_counter; - range_bin <= read_range_bin; - doppler_valid <= 1; - - fft_sample_counter <= fft_sample_counter + 1; - - if (fft_output_last) begin - state <= S_OUTPUT; - fft_sample_counter <= 0; - end - end - - if (processing_timeout == 0) begin - state <= S_OUTPUT; - end - end - - S_OUTPUT: begin - if (read_range_bin < RANGE_BINS - 1) begin - // read_range_bin/read_doppler_index updated in Block 2 - fft_sample_counter <= 0; - state <= S_PRE_READ; - end else begin - state <= S_IDLE; - frame_buffer_full <= 0; - end - end - - endcase - - status <= {state, frame_buffer_full}; - end -end - -// ---------------------------------------------------------- -// Block 2: BRAM address/data & DSP datapath — synchronous reset only. -// Uses always @(posedge clk) so Vivado can absorb multipliers -// into DSP48 primitives and does not flag REQP-1839/1840 on -// BRAM address registers. Replicates the same state/condition -// structure as Block 1 for the registers: -// mem_we, mem_waddr_r, mem_wdata_i, mem_wdata_q, -// mult_i, mult_q, fft_input_i, fft_input_q, -// read_range_bin, read_doppler_index -// ---------------------------------------------------------- -always @(posedge clk) begin - if (!reset_n) begin - mem_we <= 0; - mem_waddr_r <= 0; - mem_wdata_i <= 0; - mem_wdata_q <= 0; - mult_i <= 0; - mult_q <= 0; - mult_i_raw <= 0; - mult_q_raw <= 0; - window_val_reg <= 0; - fft_input_i <= 0; - fft_input_q <= 0; - read_range_bin <= 0; - read_doppler_index <= 0; - end else begin - mem_we <= 0; - - case (state) - S_IDLE: begin - if (data_valid && !frame_buffer_full) begin - // Write the first sample immediately (Bug #3 fix: - // previously this transition consumed data_valid - // without writing to BRAM) - mem_we <= 1; - mem_waddr_r <= mem_write_addr; - mem_wdata_i <= range_data[15:0]; - mem_wdata_q <= range_data[31:16]; - end - end - - S_ACCUMULATE: begin - if (data_valid) begin - // Drive memory write signals (actual write in separate block) - mem_we <= 1; - mem_waddr_r <= mem_write_addr; - mem_wdata_i <= range_data[15:0]; - mem_wdata_q <= range_data[31:16]; - - // Transition to S_PRE_READ when frame complete - if (write_range_bin >= RANGE_BINS - 1 && - write_chirp_index >= CHIRPS_PER_FRAME - 1) begin - read_range_bin <= 0; - read_doppler_index <= 0; - end - end - end - - S_PRE_READ: begin - // Advance read_doppler_index to 1 so next BRAM read - // fetches chirp 1 - read_doppler_index <= 1; - // BREG priming: pre-register window coeff for sample 0 - // so it is ready when S_LOAD_FFT sub=0 performs the multiply - window_val_reg <= $signed(window_coeff[0]); - end - - S_LOAD_FFT: begin - if (fft_sample_counter == 0) begin - // Pipe stage 1: multiply using pre-registered BREG value - // mem_rdata_i = data[chirp=0][rbin] (primed by S_PRE_READ) - mult_i_raw <= $signed(mem_rdata_i) * window_val_reg; - mult_q_raw <= $signed(mem_rdata_q) * window_val_reg; - // Pre-register next window coeff (sample 1) - window_val_reg <= $signed(window_coeff[1]); - // Present BRAM addr for chirp 2 - read_doppler_index <= (2 < DOPPLER_FFT_SIZE) ? 2 - : DOPPLER_FFT_SIZE - 1; - end else if (fft_sample_counter == 1) begin - // Pipe stage 2 (MREG): capture sample 0 multiply result - mult_i <= mult_i_raw; - mult_q <= mult_q_raw; - // Multiply sample 1 using registered window value - mult_i_raw <= $signed(mem_rdata_i) * window_val_reg; - mult_q_raw <= $signed(mem_rdata_q) * window_val_reg; - // Pre-register next window coeff (sample 2) - if (2 < DOPPLER_FFT_SIZE) - window_val_reg <= $signed(window_coeff[2]); - // Advance BRAM read to chirp 3 - if (3 < DOPPLER_FFT_SIZE) - read_doppler_index <= 3; - else - read_doppler_index <= DOPPLER_FFT_SIZE - 1; - end else if (fft_sample_counter <= DOPPLER_FFT_SIZE + 1) begin - // Sub 2..DOPPLER_FFT_SIZE+1: steady state - // Capture rounding into fft_input from MREG output - fft_input_i <= (mult_i + (1 << 14)) >>> 15; - fft_input_q <= (mult_q + (1 << 14)) >>> 15; - // MREG: capture multiply result - mult_i <= mult_i_raw; - mult_q <= mult_q_raw; - - if (fft_sample_counter <= DOPPLER_FFT_SIZE - 1) begin - // New multiply from current BRAM data - mult_i_raw <= $signed(mem_rdata_i) * window_val_reg; - mult_q_raw <= $signed(mem_rdata_q) * window_val_reg; - // Pre-register next window coeff (clamped) - if (fft_sample_counter + 1 < DOPPLER_FFT_SIZE) - window_val_reg <= $signed(window_coeff[fft_sample_counter + 1]); - // Advance BRAM read - if (fft_sample_counter + 2 < DOPPLER_FFT_SIZE) - read_doppler_index <= fft_sample_counter + 2; - else - read_doppler_index <= DOPPLER_FFT_SIZE - 1; - end - - if (fft_sample_counter == DOPPLER_FFT_SIZE + 1) begin - // Flush complete — reset read index - read_doppler_index <= 0; - end - end - end - - S_OUTPUT: begin - if (read_range_bin < RANGE_BINS - 1) begin - read_range_bin <= read_range_bin + 1; - read_doppler_index <= 0; - end - end - - default: begin - // S_IDLE, S_FFT_WAIT: - // no BRAM-write, DSP, or read-address operations needed - end - endcase - end +// ============================================== +// Main State Machine +// ============================================== +reg [4:0] fft_sample_counter; // Reduced: only need 0..17 for 16-pt FFT +reg [9:0] processing_timeout; + +// Memory write enable and data signals +reg mem_we; +reg [10:0] mem_waddr_r; +reg [DATA_WIDTH-1:0] mem_wdata_i, mem_wdata_q; + +// Memory read data +reg [DATA_WIDTH-1:0] mem_rdata_i, mem_rdata_q; + +`ifdef FORMAL +assign fv_state = state; +assign fv_mem_write_addr = mem_write_addr; +assign fv_mem_read_addr = mem_read_addr; +assign fv_write_range_bin = write_range_bin; +assign fv_write_chirp_index = write_chirp_index; +assign fv_read_range_bin = read_range_bin; +assign fv_read_doppler_index = read_doppler_index; +assign fv_processing_timeout = processing_timeout; +assign fv_frame_buffer_full = frame_buffer_full; +assign fv_mem_we = mem_we; +assign fv_mem_waddr_r = mem_waddr_r; +`endif + +// ---------------------------------------------------------- +// Separate always block for memory writes — NO async reset +// ---------------------------------------------------------- +always @(posedge clk) begin + if (mem_we) begin + doppler_i_mem[mem_waddr_r] <= mem_wdata_i; + doppler_q_mem[mem_waddr_r] <= mem_wdata_q; + end + mem_rdata_i <= doppler_i_mem[mem_read_addr]; + mem_rdata_q <= doppler_q_mem[mem_read_addr]; +end + +// ---------------------------------------------------------- +// Block 1: FSM / Control — async reset +// ---------------------------------------------------------- +always @(posedge clk or negedge reset_n) begin + if (!reset_n) begin + state <= S_IDLE; + write_range_bin <= 0; + write_chirp_index <= 0; + frame_buffer_full <= 0; + doppler_valid <= 0; + fft_start <= 0; + fft_input_valid <= 0; + fft_input_last <= 0; + fft_sample_counter <= 0; + processing_timeout <= 0; + status <= 0; + chirps_received <= 0; + chirp_state <= 0; + doppler_output <= 0; + doppler_bin <= 0; + range_bin <= 0; + sub_frame <= 0; + current_sub_frame <= 0; + end else begin + doppler_valid <= 0; + fft_input_valid <= 0; + fft_input_last <= 0; + + if (processing_timeout > 0) begin + processing_timeout <= processing_timeout - 1; + end + + case (state) + S_IDLE: begin + if (frame_start_pulse) begin + write_chirp_index <= 0; + write_range_bin <= 0; + frame_buffer_full <= 0; + chirps_received <= 0; + end + + if (data_valid && !frame_buffer_full) begin + state <= S_ACCUMULATE; + write_range_bin <= 1; + end + end + + S_ACCUMULATE: begin + if (data_valid) begin + if (write_range_bin < RANGE_BINS - 1) begin + write_range_bin <= write_range_bin + 1; + end else begin + write_range_bin <= 0; + write_chirp_index <= write_chirp_index + 1; + chirps_received <= chirps_received + 1; + + if (write_chirp_index >= CHIRPS_PER_FRAME - 1) begin + frame_buffer_full <= 1; + chirp_state <= 0; + state <= S_PRE_READ; + fft_sample_counter <= 0; + write_chirp_index <= 0; + write_range_bin <= 0; + // Start with sub-frame 0 (long PRI chirps 0..15) + current_sub_frame <= 0; + end + end + end + end + + S_PRE_READ: begin + // Prime BRAM pipeline for current sub-frame + // read_doppler_index already set in Block 2 to sub-frame base + fft_start <= 1; + state <= S_LOAD_FFT; + end + + S_LOAD_FFT: begin + fft_start <= 0; + + // Pipeline: 2 priming cycles + CHIRPS_PER_SUBFRAME data cycles + if (fft_sample_counter <= 1) begin + fft_sample_counter <= fft_sample_counter + 1; + end else if (fft_sample_counter <= CHIRPS_PER_SUBFRAME + 1) begin + fft_input_valid <= 1; + + if (fft_sample_counter == CHIRPS_PER_SUBFRAME + 1) begin + fft_input_last <= 1; + state <= S_FFT_WAIT; + fft_sample_counter <= 0; + processing_timeout <= 1000; + end else begin + fft_sample_counter <= fft_sample_counter + 1; + end + end + end + + S_FFT_WAIT: begin + if (fft_output_valid) begin + doppler_output <= {fft_output_q[15:0], fft_output_i[15:0]}; + // Pack: {sub_frame, bin[3:0]} + doppler_bin <= {current_sub_frame, fft_sample_counter[3:0]}; + range_bin <= read_range_bin; + sub_frame <= current_sub_frame; + doppler_valid <= 1; + + fft_sample_counter <= fft_sample_counter + 1; + + if (fft_output_last) begin + state <= S_OUTPUT; + fft_sample_counter <= 0; + end + end + + if (processing_timeout == 0) begin + state <= S_OUTPUT; + end + end + + S_OUTPUT: begin + if (current_sub_frame == 0) begin + // Just finished long PRI sub-frame — now do short PRI + current_sub_frame <= 1; + fft_sample_counter <= 0; + state <= S_PRE_READ; + // read_range_bin stays the same, read_doppler_index + // will be set to CHIRPS_PER_SUBFRAME in Block 2 + end else begin + // Finished both sub-frames for this range bin + current_sub_frame <= 0; + if (read_range_bin < RANGE_BINS - 1) begin + fft_sample_counter <= 0; + state <= S_PRE_READ; + // read_range_bin incremented in Block 2 + end else begin + state <= S_IDLE; + frame_buffer_full <= 0; + end + end + end + + endcase + + status <= {state, frame_buffer_full}; + end +end + +// ---------------------------------------------------------- +// Block 2: BRAM address/data & DSP datapath — synchronous reset +// ---------------------------------------------------------- +always @(posedge clk) begin + if (!reset_n) begin + mem_we <= 0; + mem_waddr_r <= 0; + mem_wdata_i <= 0; + mem_wdata_q <= 0; + mult_i <= 0; + mult_q <= 0; + mult_i_raw <= 0; + mult_q_raw <= 0; + window_val_reg <= 0; + fft_input_i <= 0; + fft_input_q <= 0; + read_range_bin <= 0; + read_doppler_index <= 0; + end else begin + mem_we <= 0; + + case (state) + S_IDLE: begin + if (data_valid && !frame_buffer_full) begin + mem_we <= 1; + mem_waddr_r <= mem_write_addr; + mem_wdata_i <= range_data[15:0]; + mem_wdata_q <= range_data[31:16]; + end + end + + S_ACCUMULATE: begin + if (data_valid) begin + mem_we <= 1; + mem_waddr_r <= mem_write_addr; + mem_wdata_i <= range_data[15:0]; + mem_wdata_q <= range_data[31:16]; + + if (write_range_bin >= RANGE_BINS - 1 && + write_chirp_index >= CHIRPS_PER_FRAME - 1) begin + read_range_bin <= 0; + // Start reading from chirp 0 (long PRI sub-frame) + read_doppler_index <= 0; + end + end + end + + S_PRE_READ: begin + // Set read_doppler_index to first chirp of current sub-frame + 1 + // (because address is presented this cycle, data arrives next) + if (current_sub_frame == 0) + read_doppler_index <= 1; // Long PRI: chirps 0..15 + else + read_doppler_index <= CHIRPS_PER_SUBFRAME + 1; // Short PRI: chirps 16..31 + + // BREG priming: window coeff for sample 0 + window_val_reg <= $signed(window_coeff[0]); + end + + S_LOAD_FFT: begin + if (fft_sample_counter == 0) begin + // Pipe stage 1: multiply using pre-registered BREG value + mult_i_raw <= $signed(mem_rdata_i) * window_val_reg; + mult_q_raw <= $signed(mem_rdata_q) * window_val_reg; + window_val_reg <= $signed(window_coeff[1]); + // Advance to chirp base+2 + if (current_sub_frame == 0) + read_doppler_index <= (2 < CHIRPS_PER_SUBFRAME) ? 2 + : CHIRPS_PER_SUBFRAME - 1; + else + read_doppler_index <= (CHIRPS_PER_SUBFRAME + 2 < CHIRPS_PER_FRAME) + ? CHIRPS_PER_SUBFRAME + 2 + : CHIRPS_PER_FRAME - 1; + end else if (fft_sample_counter == 1) begin + mult_i <= mult_i_raw; + mult_q <= mult_q_raw; + mult_i_raw <= $signed(mem_rdata_i) * window_val_reg; + mult_q_raw <= $signed(mem_rdata_q) * window_val_reg; + if (2 < CHIRPS_PER_SUBFRAME) + window_val_reg <= $signed(window_coeff[2]); + // Advance to chirp base+3 + begin : advance_chirp3 + reg [4:0] next_chirp; + next_chirp = (current_sub_frame == 0) ? 3 : CHIRPS_PER_SUBFRAME + 3; + if (next_chirp < CHIRPS_PER_FRAME) + read_doppler_index <= next_chirp; + else + read_doppler_index <= CHIRPS_PER_FRAME - 1; + end + end else if (fft_sample_counter <= CHIRPS_PER_SUBFRAME + 1) begin + // Steady state + fft_input_i <= (mult_i + (1 << 14)) >>> 15; + fft_input_q <= (mult_q + (1 << 14)) >>> 15; + mult_i <= mult_i_raw; + mult_q <= mult_q_raw; + + if (fft_sample_counter <= CHIRPS_PER_SUBFRAME - 1) begin + mult_i_raw <= $signed(mem_rdata_i) * window_val_reg; + mult_q_raw <= $signed(mem_rdata_q) * window_val_reg; + // Window coeff index within sub-frame + begin : advance_window + reg [4:0] win_idx; + win_idx = fft_sample_counter[3:0] + 1; + if (win_idx < CHIRPS_PER_SUBFRAME) + window_val_reg <= $signed(window_coeff[win_idx]); + end + // Advance BRAM read + begin : advance_bram + reg [4:0] chirp_offset; + reg [4:0] chirp_base; + chirp_offset = fft_sample_counter[3:0] + 2; + chirp_base = (current_sub_frame == 0) ? 0 : CHIRPS_PER_SUBFRAME; + if (chirp_base + chirp_offset < CHIRPS_PER_FRAME) + read_doppler_index <= chirp_base + chirp_offset; + else + read_doppler_index <= CHIRPS_PER_FRAME - 1; + end + end + + if (fft_sample_counter == CHIRPS_PER_SUBFRAME + 1) begin + // Reset read index for potential next operation + if (current_sub_frame == 0) + read_doppler_index <= CHIRPS_PER_SUBFRAME; // Ready for short sub-frame + else + read_doppler_index <= 0; + end + end + end + + S_OUTPUT: begin + if (current_sub_frame == 0) begin + // Transitioning to short PRI sub-frame + // Set read_doppler_index to start of short sub-frame + read_doppler_index <= CHIRPS_PER_SUBFRAME; + end else begin + // Both sub-frames done + if (read_range_bin < RANGE_BINS - 1) begin + read_range_bin <= read_range_bin + 1; + read_doppler_index <= 0; // Next range bin starts with long sub-frame + end + end + end + + default: begin + // S_FFT_WAIT: no BRAM-write or address operations needed + end + endcase + end end // ============================================== -// FFT Module +// FFT Module — 16-point // ============================================== -xfft_32 fft_inst ( +xfft_16 fft_inst ( .aclk(clk), .aresetn(reset_n), .s_axis_config_tdata(8'h01), @@ -517,5 +533,4 @@ xfft_32 fft_inst ( assign processing_active = (state != S_IDLE); assign frame_complete = (state == S_IDLE && frame_buffer_full == 0); - -endmodule \ No newline at end of file +endmodule diff --git a/9_Firmware/9_2_FPGA/fft_twiddle_16.mem b/9_Firmware/9_2_FPGA/fft_twiddle_16.mem new file mode 100644 index 0000000..25a57f8 --- /dev/null +++ b/9_Firmware/9_2_FPGA/fft_twiddle_16.mem @@ -0,0 +1,8 @@ +// Quarter-wave cosine ROM for 16-point FFT +// 4 entries (N/4), 16-bit signed Q15 format +// cos(2*pi*k/16) for k = 0..3 +// Used by fft_engine with N=16, LOG2N=4 +7FFF +7641 +5A82 +30FB diff --git a/9_Firmware/9_2_FPGA/formal/fv_doppler_processor.v b/9_Firmware/9_2_FPGA/formal/fv_doppler_processor.v index 8ed1279..99e9b4f 100644 --- a/9_Firmware/9_2_FPGA/formal/fv_doppler_processor.v +++ b/9_Firmware/9_2_FPGA/formal/fv_doppler_processor.v @@ -8,8 +8,8 @@ // Single-clock design: clk is an input wire, async2sync handles async reset. // Each formal step = one clock edge. // -// Parameters reduced: RANGE_BINS=4, CHIRPS_PER_FRAME=4, DOPPLER_FFT_SIZE=4. -// Includes full xfft_32 and fft_engine sub-modules. +// Parameters reduced: RANGE_BINS=4, CHIRPS_PER_FRAME=4, CHIRPS_PER_SUBFRAME=2, DOPPLER_FFT_SIZE=2. +// Includes full xfft_16 and fft_engine sub-modules. // // Focus: memory address bounds (highest-value finding) and state encoding. // ============================================================================ @@ -20,7 +20,8 @@ module fv_doppler_processor ( // Reduced parameters for tractable BMC localparam RANGE_BINS = 4; localparam CHIRPS_PER_FRAME = 4; - localparam DOPPLER_FFT_SIZE = 4; + localparam CHIRPS_PER_SUBFRAME = 2; // Dual sub-frame: 2 chirps per sub-frame + localparam DOPPLER_FFT_SIZE = 2; // FFT size matches sub-frame size localparam MEM_DEPTH = RANGE_BINS * CHIRPS_PER_FRAME; // 16 // State encoding (mirrors DUT localparams) @@ -62,6 +63,7 @@ module fv_doppler_processor ( wire doppler_valid; wire [4:0] doppler_bin; wire [5:0] range_bin; + wire sub_frame; wire processing_active; wire frame_complete; wire [3:0] status; @@ -86,6 +88,7 @@ module fv_doppler_processor ( .DOPPLER_FFT_SIZE (DOPPLER_FFT_SIZE), .RANGE_BINS (RANGE_BINS), .CHIRPS_PER_FRAME (CHIRPS_PER_FRAME), + .CHIRPS_PER_SUBFRAME (CHIRPS_PER_SUBFRAME), .WINDOW_TYPE (1), // Rectangular — simpler for formal .DATA_WIDTH (16) ) dut ( @@ -98,6 +101,7 @@ module fv_doppler_processor ( .doppler_valid (doppler_valid), .doppler_bin (doppler_bin), .range_bin (range_bin), + .sub_frame (sub_frame), .processing_active(processing_active), .frame_complete (frame_complete), .status (status), diff --git a/9_Firmware/9_2_FPGA/tb/cosim/compare_doppler.py b/9_Firmware/9_2_FPGA/tb/cosim/compare_doppler.py index d7c6c35..585bc6e 100644 --- a/9_Firmware/9_2_FPGA/tb/cosim/compare_doppler.py +++ b/9_Firmware/9_2_FPGA/tb/cosim/compare_doppler.py @@ -36,6 +36,7 @@ sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) DOPPLER_FFT = 32 RANGE_BINS = 64 TOTAL_OUTPUTS = RANGE_BINS * DOPPLER_FFT # 2048 +SUBFRAME_SIZE = 16 SCENARIOS = { 'stationary': { @@ -125,6 +126,19 @@ def find_peak_bin(i_arr, q_arr): return max(range(len(mags)), key=lambda k: mags[k]) +def peak_bins_match(py_peak, rtl_peak): + """Return True if peaks match within +/-1 bin inside the same sub-frame.""" + py_sf = py_peak // SUBFRAME_SIZE + rtl_sf = rtl_peak // SUBFRAME_SIZE + if py_sf != rtl_sf: + return False + + py_bin = py_peak % SUBFRAME_SIZE + rtl_bin = rtl_peak % SUBFRAME_SIZE + diff = abs(py_bin - rtl_bin) + return diff <= 1 or diff >= SUBFRAME_SIZE - 1 + + def total_energy(data_dict): """Sum of I^2 + Q^2 across all range bins and Doppler bins.""" total = 0 @@ -207,8 +221,8 @@ def compare_scenario(name, config, base_dir): py_peak = find_peak_bin(py_i, py_q) rtl_peak = find_peak_bin(rtl_i, rtl_q) - # Peak agreement (allow +/- 1 bin tolerance) - if abs(py_peak - rtl_peak) <= 1 or abs(py_peak - rtl_peak) >= DOPPLER_FFT - 1: + # Peak agreement (allow +/-1 bin tolerance, but only within a sub-frame) + if peak_bins_match(py_peak, rtl_peak): peak_agreements += 1 py_mag = magnitude_l1(py_i, py_q) @@ -242,7 +256,7 @@ def compare_scenario(name, config, base_dir): avg_corr_q = sum(q_correlations) / len(q_correlations) print(f"\n Per-range-bin metrics:") - print(f" Peak Doppler bin agreement (+/-1): {peak_agreements}/{RANGE_BINS} " + print(f" Peak Doppler bin agreement (+/-1 within sub-frame): {peak_agreements}/{RANGE_BINS} " f"({peak_agreement_frac:.0%})") print(f" Avg magnitude correlation: {avg_mag_corr:.4f}") print(f" Avg I-channel correlation: {avg_corr_i:.4f}") diff --git a/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_moving.csv b/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_moving.csv index 11151e3..65b2abd 100644 --- a/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_moving.csv +++ b/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_moving.csv @@ -1,2049 +1,2049 @@ range_bin,doppler_bin,out_i,out_q -0,0,-2,0 -0,1,-1,-2 -0,2,-1,0 -0,3,-2,-2 -0,4,0,-1 +0,0,-2,-2 +0,1,-1,0 +0,2,0,-1 +0,3,-2,-1 +0,4,-1,1 0,5,-1,-1 -0,6,0,0 -0,7,0,-2 -0,8,1,0 -0,9,-1,1 -0,10,1,0 -0,11,-1,2 -0,12,-1,-1 -0,13,1,0 -0,14,0,0 -0,15,0,-1 -0,16,0,0 -0,17,1,0 -0,18,-1,0 -0,19,2,0 -0,20,0,1 +0,6,1,-1 +0,7,-1,-1 +0,8,0,0 +0,9,1,0 +0,10,0,1 +0,11,2,-1 +0,12,-1,1 +0,13,1,1 +0,14,3,1 +0,15,1,3 +0,16,-2,-2 +0,17,0,1 +0,18,0,-1 +0,19,-1,0 +0,20,0,0 0,21,-1,-1 -0,22,0,0 -0,23,-2,0 -0,24,1,0 -0,25,1,1 -0,26,1,0 -0,27,1,0 -0,28,1,1 -0,29,1,2 -0,30,0,0 +0,22,0,-1 +0,23,-2,-1 +0,24,2,0 +0,25,0,1 +0,26,0,-1 +0,27,1,2 +0,28,0,-2 +0,29,1,3 +0,30,0,-1 0,31,2,3 -1,0,-2,0 -1,1,-2,-1 -1,2,-1,-2 -1,3,-1,-1 -1,4,0,0 -1,5,1,-1 -1,6,-2,-1 -1,7,0,0 -1,8,0,-2 -1,9,-1,1 -1,10,1,-1 -1,11,-1,0 -1,12,0,0 -1,13,-1,-2 -1,14,0,-2 -1,15,0,-1 -1,16,2,0 -1,17,2,1 -1,18,1,2 -1,19,1,1 -1,20,0,0 -1,21,-1,1 -1,22,2,1 -1,23,0,0 -1,24,0,2 -1,25,1,-1 -1,26,-1,1 -1,27,1,0 -1,28,0,0 -1,29,1,2 -1,30,0,2 -1,31,0,1 +1,0,-1,0 +1,1,-1,-1 +1,2,0,0 +1,3,-2,0 +1,4,0,-1 +1,5,0,-1 +1,6,0,0 +1,7,-1,-2 +1,8,1,0 +1,9,1,1 +1,10,0,0 +1,11,2,0 +1,12,0,1 +1,13,0,1 +1,14,0,0 +1,15,1,2 +1,16,-1,0 +1,17,-2,-3 +1,18,0,0 +1,19,-1,-3 +1,20,1,0 +1,21,0,0 +1,22,0,0 +1,23,0,1 +1,24,-1,0 +1,25,2,-1 +1,26,0,0 +1,27,1,-1 +1,28,1,0 +1,29,0,4 +1,30,0,0 +1,31,0,3 2,0,-1,-2 -2,1,-3,0 -2,2,0,-1 -2,3,-3,-1 -2,4,-1,-1 -2,5,-2,-1 -2,6,0,-2 -2,7,-3,2 -2,8,0,-2 -2,9,0,-2 -2,10,-1,-1 -2,11,1,-2 -2,12,-1,-2 -2,13,1,-1 -2,14,0,-1 -2,15,-2,-2 -2,16,1,0 -2,17,3,2 -2,18,0,-1 -2,19,3,3 -2,20,1,-1 -2,21,2,3 +2,1,0,0 +2,2,-1,-1 +2,3,-2,-1 +2,4,1,-1 +2,5,-1,0 +2,6,0,-1 +2,7,0,-2 +2,8,1,2 +2,9,0,0 +2,10,1,1 +2,11,2,1 +2,12,-1,1 +2,13,1,0 +2,14,0,1 +2,15,0,2 +2,16,-1,-3 +2,17,1,-1 +2,18,-2,0 +2,19,-1,-1 +2,20,0,1 +2,21,0,-1 2,22,0,0 -2,23,3,0 -2,24,0,0 -2,25,0,4 -2,26,1,-1 -2,27,-1,4 -2,28,1,0 -2,29,-1,3 -2,30,0,-1 -2,31,2,4 -3,0,0,-2 -3,1,-1,1 -3,2,-2,-1 -3,3,-1,0 -3,4,0,0 -3,5,-2,-2 +2,23,1,0 +2,24,-1,1 +2,25,1,-1 +2,26,-2,0 +2,27,3,1 +2,28,-2,1 +2,29,2,-1 +2,30,0,0 +2,31,1,4 +3,0,-2,0 +3,1,0,0 +3,2,0,-2 +3,3,0,0 +3,4,1,0 +3,5,0,0 3,6,-1,0 -3,7,-4,0 -3,8,1,0 -3,9,-2,-1 -3,10,0,-2 -3,11,-1,-1 -3,12,0,0 -3,13,1,-2 -3,14,-1,-1 -3,15,-1,-4 -3,16,0,2 -3,17,1,-1 -3,18,2,1 -3,19,1,0 -3,20,0,0 -3,21,2,2 -3,22,1,0 -3,23,4,0 -3,24,-1,0 -3,25,2,1 -3,26,0,2 -3,27,1,1 -3,28,0,0 -3,29,-1,2 -3,30,1,1 -3,31,1,4 -4,0,-1,-5 -4,1,-2,1 -4,2,-5,-3 -4,3,-1,-1 -4,4,-2,-1 -4,5,0,-1 -4,6,-2,-2 -4,7,-2,0 -4,8,0,0 -4,9,-2,-2 -4,10,1,-1 -4,11,-1,-2 -4,12,1,-1 -4,13,2,-1 -4,14,-1,0 -4,15,-1,-4 -4,16,1,3 -4,17,0,-3 -4,18,3,1 -4,19,1,-1 -4,20,0,1 -4,21,2,1 -4,22,0,2 -4,23,2,0 -4,24,0,2 +3,7,0,0 +3,8,0,0 +3,9,0,0 +3,10,0,0 +3,11,0,0 +3,12,1,0 +3,13,0,0 +3,14,1,2 +3,15,0,0 +3,16,-2,-1 +3,17,0,0 +3,18,-2,-1 +3,19,-1,0 +3,20,-1,-1 +3,21,0,-1 +3,22,-1,-1 +3,23,0,-2 +3,24,0,1 +3,25,2,0 +3,26,0,1 +3,27,3,0 +3,28,-1,1 +3,29,2,1 +3,30,-1,1 +3,31,2,2 +4,0,0,-1 +4,1,-2,-1 +4,2,0,1 +4,3,1,0 +4,4,0,-1 +4,5,-2,0 +4,6,0,1 +4,7,1,-1 +4,8,0,-1 +4,9,0,1 +4,10,0,1 +4,11,1,0 +4,12,0,-1 +4,13,0,0 +4,14,0,1 +4,15,1,1 +4,16,0,-2 +4,17,-2,0 +4,18,0,0 +4,19,-1,-2 +4,20,-1,1 +4,21,1,0 +4,22,0,-1 +4,23,0,0 +4,24,0,0 4,25,0,0 -4,26,1,3 -4,27,1,0 +4,26,0,0 +4,27,-1,0 4,28,1,1 -4,29,0,5 -4,30,3,0 -4,31,1,8 -5,0,-3,-1 -5,1,-3,-2 -5,2,-4,-3 -5,3,-2,-3 -5,4,-1,0 -5,5,0,-4 -5,6,0,1 -5,7,-1,-2 -5,8,0,-1 -5,9,0,2 -5,10,2,-4 -5,11,0,2 -5,12,1,-2 -5,13,0,0 -5,14,0,1 -5,15,1,0 -5,16,-1,1 -5,17,1,0 -5,18,2,1 -5,19,0,-1 -5,20,3,0 -5,21,0,-2 -5,22,0,1 -5,23,-1,-2 -5,24,0,1 -5,25,2,0 -5,26,0,2 -5,27,2,2 -5,28,1,2 -5,29,0,6 -5,30,0,1 -5,31,1,4 +4,29,1,0 +4,30,0,1 +4,31,2,2 +5,0,-1,0 +5,1,-3,-3 +5,2,0,-1 +5,3,-1,-1 +5,4,0,0 +5,5,1,-2 +5,6,-1,-1 +5,7,0,1 +5,8,1,0 +5,9,1,-1 +5,10,0,1 +5,11,1,1 +5,12,0,0 +5,13,1,2 +5,14,1,1 +5,15,0,3 +5,16,-1,-2 +5,17,0,-1 +5,18,-2,0 +5,19,-2,-2 +5,20,0,0 +5,21,0,0 +5,22,0,-1 +5,23,0,-1 +5,24,1,0 +5,25,0,1 +5,26,0,0 +5,27,2,0 +5,28,0,2 +5,29,0,0 +5,30,2,1 +5,31,0,3 6,0,-1,-1 -6,1,-4,-3 -6,2,-1,1 -6,3,0,-1 -6,4,-1,-1 -6,5,-1,-2 -6,6,-1,1 -6,7,-1,-2 -6,8,-1,-1 -6,9,4,-2 -6,10,-1,1 -6,11,2,1 -6,12,-1,-1 -6,13,0,0 -6,14,-1,1 -6,15,1,-1 -6,16,-1,-1 -6,17,2,1 -6,18,-1,1 -6,19,0,-1 -6,20,-1,-1 -6,21,3,-2 -6,22,-1,1 -6,23,3,0 -6,24,-1,-1 -6,25,2,4 -6,26,-1,1 -6,27,2,1 +6,1,1,0 +6,2,-2,-1 +6,3,1,0 +6,4,-2,0 +6,5,1,-1 +6,6,-2,0 +6,7,1,-1 +6,8,-1,1 +6,9,1,0 +6,10,0,1 +6,11,1,0 +6,12,0,0 +6,13,1,1 +6,14,0,0 +6,15,1,1 +6,16,0,-3 +6,17,-2,-1 +6,18,-1,-2 +6,19,-2,2 +6,20,1,-1 +6,21,-3,0 +6,22,1,-3 +6,23,-1,2 +6,24,0,-3 +6,25,2,3 +6,26,-1,-2 +6,27,2,2 6,28,-1,-1 -6,29,2,4 -6,30,-1,1 -6,31,1,3 -7,0,-1,0 -7,1,0,-2 -7,2,0,0 -7,3,0,-2 -7,4,1,0 -7,5,0,2 -7,6,0,0 -7,7,0,2 -7,8,-1,0 -7,9,0,-2 -7,10,0,0 -7,11,0,-2 -7,12,1,0 -7,13,0,2 -7,14,0,0 -7,15,0,2 -7,16,-1,0 -7,17,0,-2 -7,18,0,0 -7,19,0,-2 -7,20,1,0 -7,21,0,2 -7,22,0,0 -7,23,0,2 -7,24,-1,0 -7,25,0,-2 -7,26,0,0 -7,27,0,-2 -7,28,1,0 -7,29,0,2 -7,30,0,0 -7,31,0,2 -8,0,-1,-2 -8,1,-5,-3 -8,2,0,0 -8,3,-3,-3 -8,4,0,1 -8,5,1,0 -8,6,-1,-1 -8,7,-1,0 -8,8,0,-1 -8,9,-1,-4 -8,10,0,0 -8,11,-1,-1 -8,12,-2,-1 -8,13,1,-1 -8,14,0,-1 -8,15,-1,-4 -8,16,1,0 -8,17,3,3 -8,18,0,0 -8,19,1,1 -8,20,0,1 -8,21,1,0 -8,22,1,1 -8,23,3,2 -8,24,0,-1 -8,25,-1,4 -8,26,0,0 -8,27,-1,-1 -8,28,2,3 -8,29,1,1 -8,30,0,1 -8,31,3,6 -9,0,-1,-2 -9,1,-2,0 +6,29,3,2 +6,30,1,-1 +6,31,1,6 +7,0,0,-1 +7,1,0,1 +7,2,0,-1 +7,3,0,1 +7,4,0,-1 +7,5,0,1 +7,6,0,-1 +7,7,0,1 +7,8,0,-1 +7,9,0,1 +7,10,0,-1 +7,11,0,1 +7,12,0,-1 +7,13,0,1 +7,14,0,-1 +7,15,0,1 +7,16,-2,-2 +7,17,-1,0 +7,18,0,-1 +7,19,0,0 +7,20,-2,0 +7,21,1,1 +7,22,0,-1 +7,23,2,1 +7,24,-2,-2 +7,25,1,2 +7,26,0,-1 +7,27,0,0 +7,28,-2,0 +7,29,3,1 +7,30,0,-1 +7,31,2,3 +8,0,0,0 +8,1,0,-2 +8,2,-2,0 +8,3,-2,1 +8,4,1,0 +8,5,-1,-2 +8,6,-2,0 +8,7,1,0 +8,8,0,0 +8,9,0,0 +8,10,2,0 +8,11,2,1 +8,12,-1,0 +8,13,1,0 +8,14,2,0 +8,15,-1,2 +8,16,-3,0 +8,17,0,-2 +8,18,0,-1 +8,19,-1,0 +8,20,2,0 +8,21,0,0 +8,22,-1,-1 +8,23,1,2 +8,24,-1,0 +8,25,0,-2 +8,26,0,1 +8,27,-1,0 +8,28,2,0 +8,29,0,0 +8,30,1,1 +8,31,1,2 +9,0,0,-5 +9,1,-1,3 9,2,0,-1 -9,3,-1,-3 -9,4,-1,1 -9,5,1,-2 -9,6,0,1 -9,7,-2,0 -9,8,0,0 -9,9,-2,0 +9,3,-1,-1 +9,4,0,-1 +9,5,0,1 +9,6,0,-1 +9,7,0,-3 +9,8,0,3 +9,9,1,-1 9,10,0,-1 -9,11,0,0 -9,12,-1,-2 -9,13,0,-1 -9,14,0,1 -9,15,-1,-4 -9,16,-1,2 -9,17,2,0 -9,18,0,-1 -9,19,1,3 -9,20,3,-1 -9,21,-1,2 -9,22,0,1 -9,23,2,0 -9,24,-2,0 -9,25,2,0 -9,26,0,-1 +9,11,1,3 +9,12,0,-1 +9,13,0,1 +9,14,0,-1 +9,15,0,5 +9,16,-1,-2 +9,17,0,1 +9,18,-1,-1 +9,19,0,0 +9,20,-1,0 +9,21,2,1 +9,22,-1,-1 +9,23,2,2 +9,24,-1,-2 +9,25,0,1 +9,26,-1,-1 9,27,0,0 -9,28,3,2 -9,29,0,1 -9,30,0,1 -9,31,1,4 -10,0,-2,-1 -10,1,-4,-3 -10,2,-1,0 -10,3,-4,-4 -10,4,0,0 -10,5,0,-2 -10,6,0,0 -10,7,1,0 -10,8,0,-1 -10,9,1,1 -10,10,-1,-1 -10,11,0,0 -10,12,-1,0 -10,13,1,-1 -10,14,0,0 -10,15,-1,-1 -10,16,2,-1 -10,17,-2,1 -10,18,1,0 -10,19,0,0 -10,20,0,2 -10,21,2,-2 -10,22,0,0 -10,23,1,0 -10,24,0,-1 -10,25,1,1 -10,26,1,1 -10,27,0,0 -10,28,1,2 -10,29,1,5 -10,30,0,0 -10,31,3,5 -11,0,-3,-2 -11,1,-1,0 -11,2,-4,-2 -11,3,-2,-2 -11,4,-2,0 -11,5,-1,-2 -11,6,-2,-1 -11,7,0,0 -11,8,0,-1 -11,9,0,-3 -11,10,0,1 -11,11,0,-5 -11,12,0,3 -11,13,2,-4 -11,14,0,2 -11,15,-1,-3 -11,16,1,0 -11,17,-1,0 -11,18,2,0 -11,19,0,0 -11,20,2,0 -11,21,3,2 -11,22,2,-1 -11,23,2,2 -11,24,2,-1 -11,25,-2,3 -11,26,2,1 -11,27,-2,3 -11,28,0,1 -11,29,0,4 +9,28,-1,0 +9,29,2,1 +9,30,-1,-1 +9,31,2,2 +10,0,-3,-3 +10,1,1,-1 +10,2,-3,0 +10,3,-1,-1 +10,4,0,1 +10,5,0,-3 +10,6,-1,1 +10,7,2,-1 +10,8,-1,1 +10,9,1,-1 +10,10,1,0 +10,11,-1,-1 +10,12,0,1 +10,13,2,1 +10,14,-1,-1 +10,15,4,7 +10,16,-1,-1 +10,17,0,0 +10,18,-1,-1 +10,19,0,-1 +10,20,0,1 +10,21,0,0 +10,22,0,-1 +10,23,0,1 +10,24,1,-1 +10,25,0,0 +10,26,-1,1 +10,27,0,-1 +10,28,0,1 +10,29,0,0 +10,30,2,1 +10,31,0,1 +11,0,-2,-1 +11,1,0,0 +11,2,-1,-2 +11,3,0,0 +11,4,-2,-1 +11,5,0,-1 +11,6,1,0 +11,7,0,-1 +11,8,0,1 +11,9,0,0 +11,10,3,2 +11,11,0,0 +11,12,0,1 +11,13,0,1 +11,14,1,0 +11,15,0,1 +11,16,-1,-2 +11,17,-1,-1 +11,18,0,0 +11,19,-1,-2 +11,20,0,1 +11,21,0,-1 +11,22,0,0 +11,23,-1,-1 +11,24,1,-2 +11,25,1,3 +11,26,0,0 +11,27,1,-2 +11,28,0,3 +11,29,0,-1 11,30,0,0 -11,31,3,5 -12,0,-2,0 -12,1,-2,-3 -12,2,-1,-1 +11,31,1,5 +12,0,-2,-2 +12,1,-2,0 +12,2,0,-1 12,3,0,-1 -12,4,-1,0 -12,5,-3,-1 -12,6,0,-1 -12,7,-1,-1 -12,8,1,0 -12,9,-1,0 -12,10,0,-1 -12,11,0,0 -12,12,0,0 -12,13,-1,1 -12,14,-1,-1 -12,15,1,-1 -12,16,0,0 -12,17,2,1 -12,18,-1,1 -12,19,0,-1 -12,20,1,0 -12,21,1,-1 +12,4,1,0 +12,5,0,0 +12,6,-1,1 +12,7,2,1 +12,8,0,-2 +12,9,-2,0 +12,10,0,1 +12,11,0,-1 +12,12,1,0 +12,13,0,0 +12,14,1,3 +12,15,2,1 +12,16,-2,-2 +12,17,0,-1 +12,18,-3,-1 +12,19,2,-2 +12,20,-1,0 +12,21,0,0 12,22,0,1 -12,23,-1,-1 -12,24,1,0 -12,25,1,2 -12,26,2,1 -12,27,0,2 -12,28,0,0 -12,29,3,1 -12,30,1,1 -12,31,1,3 -13,0,-3,-1 -13,1,-2,-2 -13,2,-3,0 -13,3,-2,-3 -13,4,-1,1 -13,5,0,-4 -13,6,-2,0 -13,7,1,-2 -13,8,-2,0 -13,9,3,0 -13,10,-1,0 -13,11,2,1 +12,23,-2,-1 +12,24,2,0 +12,25,-2,1 +12,26,3,-1 +12,27,-2,2 +12,28,1,-2 +12,29,2,4 +12,30,0,-3 +12,31,2,5 +13,0,-1,-2 +13,1,-2,-1 +13,2,-1,1 +13,3,0,-2 +13,4,0,0 +13,5,-1,-1 +13,6,0,1 +13,7,1,0 +13,8,1,-2 +13,9,-2,1 +13,10,1,1 +13,11,0,0 13,12,0,0 -13,13,-1,-1 -13,14,-1,0 -13,15,-2,-2 -13,16,1,1 -13,17,0,0 -13,18,1,0 -13,19,2,1 -13,20,-1,-1 -13,21,2,0 +13,13,1,1 +13,14,0,1 +13,15,3,2 +13,16,-1,0 +13,17,-2,-3 +13,18,0,0 +13,19,-2,0 +13,20,0,-1 +13,21,1,-1 13,22,0,0 -13,23,1,0 -13,24,0,0 -13,25,3,2 -13,26,-1,0 -13,27,2,1 -13,28,-2,0 -13,29,3,5 -13,30,-1,0 -13,31,4,4 -14,0,0,-4 -14,1,-3,0 -14,2,-2,-2 -14,3,-2,-1 -14,4,-1,1 -14,5,1,-1 -14,6,-2,-1 -14,7,2,-1 -14,8,-2,0 -14,9,0,-1 -14,10,0,1 -14,11,-1,-1 -14,12,1,1 -14,13,-1,-1 -14,14,0,0 -14,15,0,-2 -14,16,0,0 -14,17,1,0 +13,23,-1,0 +13,24,1,0 +13,25,0,-1 +13,26,0,0 +13,27,2,0 +13,28,0,1 +13,29,1,1 +13,30,0,0 +13,31,1,4 +14,0,-2,-1 +14,1,-1,0 +14,2,0,-2 +14,3,-2,0 +14,4,1,0 +14,5,-1,-1 +14,6,-1,0 +14,7,-1,-2 +14,8,0,1 +14,9,1,0 +14,10,0,0 +14,11,2,0 +14,12,1,0 +14,13,1,1 +14,14,1,2 +14,15,1,2 +14,16,0,-1 +14,17,-4,-1 14,18,0,0 -14,19,0,-1 -14,20,-1,1 -14,21,1,-1 -14,22,0,1 +14,19,-1,-3 +14,20,0,1 +14,21,2,-2 +14,22,0,0 14,23,0,1 -14,24,2,0 -14,25,-2,1 -14,26,2,1 -14,27,-1,-1 -14,28,1,1 -14,29,3,3 -14,30,2,0 -14,31,2,6 -15,0,-2,-1 -15,1,-1,0 -15,2,-2,-2 -15,3,-3,1 -15,4,0,-2 -15,5,-2,0 -15,6,1,-2 -15,7,-4,-1 -15,8,2,0 -15,9,-1,-1 -15,10,2,2 -15,11,-1,-2 -15,12,0,2 -15,13,-1,-2 -15,14,-1,2 -15,15,0,-2 -15,16,-2,1 -15,17,1,0 -15,18,-2,-2 -15,19,1,-1 -15,20,0,-2 -15,21,2,0 -15,22,1,-2 -15,23,2,-1 -15,24,2,0 -15,25,1,1 -15,26,2,2 -15,27,3,2 -15,28,0,2 -15,29,1,2 -15,30,-1,2 -15,31,2,4 -16,0,-1,-3 -16,1,-1,1 -16,2,-2,-1 -16,3,0,-3 -16,4,-1,1 -16,5,0,-1 -16,6,1,0 -16,7,-3,1 -16,8,1,-1 -16,9,-2,-1 -16,10,-2,0 -16,11,1,-1 -16,12,-3,-2 -16,13,0,0 -16,14,1,-1 -16,15,-1,-2 -16,16,1,1 -16,17,1,-1 -16,18,0,1 -16,19,0,1 -16,20,1,1 -16,21,0,1 -16,22,1,0 -16,23,3,1 -16,24,-1,-1 -16,25,2,1 -16,26,0,0 -16,27,-1,-1 -16,28,3,4 -16,29,0,0 -16,30,1,1 -16,31,1,4 -17,0,-2,-1 -17,1,-4,-3 +14,24,0,-1 +14,25,0,1 +14,26,0,0 +14,27,1,-1 +14,28,0,1 +14,29,2,2 +14,30,0,0 +14,31,0,3 +15,0,-1,-1 +15,1,-1,-1 +15,2,-1,0 +15,3,1,-2 +15,4,-2,0 +15,5,2,1 +15,6,-1,-1 +15,7,0,0 +15,8,-1,1 +15,9,1,-1 +15,10,-1,0 +15,11,1,0 +15,12,0,0 +15,13,2,1 +15,14,-1,1 +15,15,2,2 +15,16,-1,-1 +15,17,-1,-1 +15,18,-1,0 +15,19,-1,-2 +15,20,0,1 +15,21,0,-1 +15,22,0,0 +15,23,0,0 +15,24,1,-1 +15,25,-1,1 +15,26,1,0 +15,27,-1,0 +15,28,0,1 +15,29,2,1 +15,30,0,0 +15,31,2,2 +16,0,-1,-1 +16,1,-1,-2 +16,2,0,0 +16,3,-2,-2 +16,4,0,0 +16,5,1,0 +16,6,-2,-2 +16,7,1,0 +16,8,1,1 +16,9,-1,-2 +16,10,0,0 +16,11,2,2 +16,12,0,0 +16,13,1,0 +16,14,2,2 +16,15,-1,4 +16,16,-1,-2 +16,17,-1,0 +16,18,-1,0 +16,19,2,0 +16,20,-1,-2 +16,21,1,2 +16,22,-1,0 +16,23,2,2 +16,24,-1,-2 +16,25,-1,0 +16,26,-1,0 +16,27,2,0 +16,28,-1,-2 +16,29,1,2 +16,30,-1,0 +16,31,2,2 +17,0,-1,-4 +17,1,-2,1 17,2,0,0 -17,3,-3,-4 -17,4,0,0 -17,5,0,-1 -17,6,0,-1 -17,7,-2,-1 -17,8,0,0 -17,9,1,0 -17,10,-1,0 -17,11,2,2 -17,12,-2,-2 -17,13,-1,0 -17,14,0,0 -17,15,-3,-3 -17,16,2,1 -17,17,0,1 -17,18,0,0 -17,19,1,2 -17,20,0,0 -17,21,0,-3 -17,22,0,1 -17,23,2,-1 -17,24,0,0 -17,25,3,2 -17,26,1,0 -17,27,0,0 -17,28,2,2 -17,29,1,4 -17,30,0,0 -17,31,3,5 -18,0,-2,-1 -18,1,-2,-1 -18,2,-2,-2 -18,3,-2,-1 -18,4,0,-2 -18,5,0,0 -18,6,0,0 -18,7,-1,-1 -18,8,0,1 -18,9,0,-1 -18,10,-1,-1 -18,11,2,-1 -18,12,0,-2 -18,13,2,2 -18,14,0,-2 -18,15,1,3 -18,16,2,-1 -18,17,-2,-1 -18,18,2,2 -18,19,-2,-1 -18,20,0,2 -18,21,0,0 +17,3,0,-1 +17,4,0,-2 +17,5,-1,1 +17,6,-1,-3 +17,7,0,-1 +17,8,1,0 +17,9,0,1 +17,10,0,0 +17,11,2,3 +17,12,0,-2 +17,13,-1,1 +17,14,1,3 +17,15,2,3 +17,16,-1,-2 +17,17,-2,0 +17,18,0,-1 +17,19,-3,-1 +17,20,0,1 +17,21,0,-1 +17,22,-1,-1 +17,23,0,-1 +17,24,1,0 +17,25,0,0 +17,26,0,1 +17,27,1,-1 +17,28,0,1 +17,29,2,1 +17,30,1,1 +17,31,2,3 +18,0,0,-1 +18,1,-1,0 +18,2,0,1 +18,3,1,0 +18,4,0,-1 +18,5,-1,0 +18,6,0,1 +18,7,1,0 +18,8,0,-1 +18,9,-1,0 +18,10,0,1 +18,11,1,0 +18,12,0,-1 +18,13,-1,0 +18,14,0,1 +18,15,1,0 +18,16,-2,0 +18,17,0,-2 +18,18,-1,0 +18,19,-1,-1 +18,20,0,0 +18,21,0,-2 18,22,0,0 -18,23,-1,-1 -18,24,0,1 -18,25,0,-1 -18,26,1,1 -18,27,2,-1 -18,28,0,2 -18,29,2,2 -18,30,0,2 -18,31,1,3 -19,0,-4,-2 -19,1,-2,-1 -19,2,-4,-4 -19,3,0,-1 -19,4,0,-4 -19,5,-1,3 -19,6,0,-3 -19,7,-2,2 -19,8,0,-2 -19,9,1,-1 -19,10,-2,-2 -19,11,2,-1 -19,12,-2,0 +18,23,-2,-2 +18,24,2,0 +18,25,0,2 +18,26,1,0 +18,27,1,1 +18,28,0,0 +18,29,0,2 +18,30,0,0 +18,31,2,2 +19,0,0,-3 +19,1,-3,-1 +19,2,-1,1 +19,3,2,-2 +19,4,-1,0 +19,5,-2,1 +19,6,1,0 +19,7,0,-1 +19,8,0,-1 +19,9,1,1 +19,10,-1,1 +19,11,0,0 +19,12,1,0 19,13,0,-1 -19,14,0,0 -19,15,-1,-2 -19,16,2,0 +19,14,1,2 +19,15,2,3 +19,16,0,-3 19,17,0,1 -19,18,2,0 -19,19,0,1 -19,20,0,0 -19,21,3,1 -19,22,0,-1 -19,23,2,2 -19,24,2,0 -19,25,-3,1 -19,26,4,2 -19,27,-2,1 -19,28,2,0 -19,29,2,5 -19,30,0,0 -19,31,1,6 -20,0,-6,-6 -20,1,-2,0 -20,2,-5,-4 -20,3,-2,-3 -20,4,0,-2 -20,5,-2,3 -20,6,2,-7 -20,7,-3,5 -20,8,0,-4 -20,9,1,-3 -20,10,1,1 -20,11,1,-3 -20,12,0,2 -20,13,-1,-1 -20,14,1,1 -20,15,-1,-1 -20,16,-2,2 -20,17,2,0 -20,18,1,-2 -20,19,0,-1 -20,20,0,-2 -20,21,2,1 -20,22,4,1 -20,23,1,1 -20,24,0,0 -20,25,-1,3 -20,26,3,1 -20,27,1,-1 -20,28,0,2 -20,29,1,5 -20,30,1,1 -20,31,3,11 -21,0,-10,-13 -21,1,-4,-2 -21,2,0,-3 -21,3,-7,1 -21,4,3,-16 -21,5,-15,49 -21,6,25,-55 -21,7,-13,22 -21,8,1,-10 -21,9,-5,3 -21,10,3,-2 -21,11,-4,-1 -21,12,-1,-2 -21,13,1,2 -21,14,1,0 -21,15,3,-1 -21,16,0,-1 -21,17,0,2 -21,18,0,-3 -21,19,1,-3 -21,20,3,0 -21,21,-1,-1 -21,22,1,1 -21,23,-1,6 -21,24,1,-4 -21,25,5,5 -21,26,1,-4 -21,27,2,7 -21,28,3,-2 -21,29,3,6 -21,30,1,2 -21,31,3,17 -22,0,-5,-4 -22,1,-1,-2 -22,2,-6,-3 -22,3,-2,-3 -22,4,1,-4 -22,5,-4,5 -22,6,-1,-6 -22,7,-2,3 -22,8,1,0 -22,9,-1,-5 -22,10,3,-1 -22,11,-3,-1 -22,12,1,-2 +19,18,-1,0 +19,19,-1,-3 +19,20,0,2 +19,21,0,-1 +19,22,-1,-1 +19,23,0,1 +19,24,0,-1 +19,25,0,1 +19,26,1,0 +19,27,1,-1 +19,28,0,2 +19,29,0,-1 +19,30,1,1 +19,31,0,3 +20,0,-3,-4 +20,1,1,0 +20,2,-4,3 +20,3,3,-5 +20,4,-2,0 +20,5,1,0 +20,6,-1,0 +20,7,0,0 +20,8,-1,0 +20,9,1,0 +20,10,-2,-1 +20,11,5,1 +20,12,-2,0 +20,13,1,0 +20,14,-1,2 +20,15,4,4 +20,16,-3,-2 +20,17,-2,-3 +20,18,-1,4 +20,19,2,-10 +20,20,-2,2 +20,21,-1,-1 +20,22,4,2 +20,23,-1,-2 +20,24,1,0 +20,25,-2,-1 +20,26,1,0 +20,27,4,2 +20,28,0,0 +20,29,1,1 +20,30,0,2 +20,31,-1,6 +21,0,-5,-9 +21,1,2,-3 +21,2,-22,22 +21,3,40,-24 +21,4,-14,5 +21,5,2,-4 +21,6,3,1 +21,7,0,-1 +21,8,1,3 +21,9,-2,-3 +21,10,4,-2 +21,11,2,0 +21,12,2,1 +21,13,2,2 +21,14,-1,3 +21,15,2,9 +21,16,-9,-8 +21,17,0,-4 +21,18,1,23 +21,19,10,-48 +21,20,-11,15 +21,21,0,-4 +21,22,2,-4 +21,23,1,-2 +21,24,1,2 +21,25,0,-2 +21,26,1,1 +21,27,2,2 +21,28,-1,3 +21,29,4,2 +21,30,0,0 +21,31,-1,8 +22,0,-2,-3 +22,1,-2,-1 +22,2,0,2 +22,3,3,-4 +22,4,-2,0 +22,5,-2,0 +22,6,3,1 +22,7,-2,0 +22,8,0,-1 +22,9,0,1 +22,10,0,0 +22,11,1,0 +22,12,0,0 22,13,0,0 -22,14,-1,0 -22,15,-1,-3 -22,16,-1,0 -22,17,3,0 -22,18,0,-1 -22,19,2,1 -22,20,1,-2 -22,21,2,3 +22,14,1,1 +22,15,2,4 +22,16,-6,-4 +22,17,0,-2 +22,18,0,2 +22,19,-2,-9 +22,20,-1,5 +22,21,0,-1 22,22,1,-2 -22,23,2,3 -22,24,1,0 -22,25,-1,3 -22,26,3,1 -22,27,3,-1 -22,28,1,4 -22,29,2,4 -22,30,1,4 -22,31,1,9 -23,0,-3,0 -23,1,-1,-4 -23,2,-2,0 -23,3,-1,-3 -23,4,1,0 -23,5,-2,3 -23,6,0,-1 -23,7,-4,2 -23,8,-1,-2 -23,9,1,-3 -23,10,-1,-2 -23,11,0,-3 -23,12,1,0 -23,13,-2,0 -23,14,0,0 -23,15,-1,-2 -23,16,1,0 -23,17,1,0 -23,18,2,0 -23,19,1,-1 -23,20,1,0 -23,21,2,1 -23,22,0,1 -23,23,4,2 -23,24,-1,2 -23,25,-1,-1 -23,26,1,2 -23,27,0,-1 -23,28,1,0 -23,29,2,4 -23,30,0,0 -23,31,1,6 -24,0,-1,0 -24,1,-2,-1 -24,2,-1,0 -24,3,-1,-1 -24,4,-1,0 -24,5,-2,-2 -24,6,-1,0 -24,7,-1,-2 -24,8,0,0 -24,9,0,-4 -24,10,0,0 -24,11,-1,-3 -24,12,0,0 -24,13,0,-3 -24,14,0,0 -24,15,-1,-2 -24,16,1,0 -24,17,2,1 -24,18,1,0 -24,19,1,1 -24,20,1,0 -24,21,2,2 -24,22,1,0 -24,23,1,2 -24,24,0,0 -24,25,0,4 -24,26,0,0 -24,27,1,3 -24,28,0,0 -24,29,0,3 -24,30,0,0 -24,31,1,2 -25,0,-3,-2 -25,1,0,-2 -25,2,-2,-2 -25,3,-2,-4 -25,4,2,0 -25,5,-1,1 -25,6,0,0 -25,7,1,2 -25,8,-3,0 -25,9,0,-3 -25,10,-1,-1 -25,11,-2,-1 -25,12,2,-3 -25,13,-1,2 -25,14,0,-2 -25,15,0,0 -25,16,1,2 -25,17,0,-2 -25,18,2,2 -25,19,2,0 -25,20,0,0 -25,21,1,3 -25,22,0,0 -25,23,-1,2 -25,24,1,0 -25,25,0,-1 -25,26,1,1 -25,27,2,-3 -25,28,0,3 -25,29,1,2 -25,30,0,2 -25,31,0,4 -26,0,0,-1 -26,1,0,0 -26,2,-1,-1 -26,3,0,0 -26,4,-1,0 -26,5,0,-1 -26,6,-1,0 -26,7,0,-1 -26,8,0,1 -26,9,0,0 -26,10,1,1 -26,11,0,0 -26,12,1,0 -26,13,0,1 +22,23,0,2 +22,24,0,-2 +22,25,0,2 +22,26,0,-2 +22,27,2,1 +22,28,-1,1 +22,29,4,1 +22,30,-1,2 +22,31,4,6 +23,0,-1,-1 +23,1,-2,-3 +23,2,-2,2 +23,3,1,-2 +23,4,0,-1 +23,5,0,-1 +23,6,0,1 +23,7,0,0 +23,8,1,-1 +23,9,-2,1 +23,10,2,0 +23,11,1,0 +23,12,0,-1 +23,13,0,3 +23,14,0,1 +23,15,2,2 +23,16,-1,-2 +23,17,-1,-1 +23,18,-1,0 +23,19,0,-4 +23,20,-1,1 +23,21,-1,0 +23,22,1,-1 +23,23,1,-1 +23,24,-1,0 +23,25,1,1 +23,26,1,0 +23,27,2,0 +23,28,-1,1 +23,29,1,0 +23,30,3,1 +23,31,-3,5 +24,0,-1,-2 +24,1,-1,0 +24,2,0,0 +24,3,1,0 +24,4,-2,-1 +24,5,-1,-1 +24,6,0,1 +24,7,1,-1 +24,8,-1,0 +24,9,-1,0 +24,10,2,2 +24,11,1,0 +24,12,0,-1 +24,13,-1,1 +24,14,2,1 +24,15,1,1 +24,16,-1,-2 +24,17,0,-1 +24,18,-1,-2 +24,19,0,1 +24,20,0,-1 +24,21,0,1 +24,22,-1,-1 +24,23,1,1 +24,24,-1,0 +24,25,0,-1 +24,26,1,0 +24,27,-2,1 +24,28,2,-1 +24,29,0,1 +24,30,1,-1 +24,31,1,5 +25,0,0,-2 +25,1,-1,0 +25,2,-1,0 +25,3,1,0 +25,4,-1,-1 +25,5,-1,-1 +25,6,-1,1 +25,7,1,-1 +25,8,0,0 +25,9,-1,0 +25,10,1,2 +25,11,1,0 +25,12,1,-1 +25,13,-1,1 +25,14,1,1 +25,15,1,1 +25,16,-1,-3 +25,17,-1,1 +25,18,0,0 +25,19,1,-2 +25,20,-3,1 +25,21,1,0 +25,22,2,0 +25,23,-1,-1 +25,24,-1,1 +25,25,1,-1 +25,26,0,0 +25,27,-1,0 +25,28,1,1 +25,29,-1,0 +25,30,2,0 +25,31,1,3 +26,0,-1,-2 +26,1,-1,1 +26,2,0,-2 +26,3,-2,1 +26,4,0,-1 +26,5,-1,0 +26,6,-1,-2 +26,7,-1,-1 +26,8,1,0 +26,9,1,1 +26,10,0,0 +26,11,2,1 +26,12,0,-1 +26,13,1,2 26,14,1,0 -26,15,0,1 -26,16,0,-1 -26,17,0,0 -26,18,-1,-1 -26,19,0,0 -26,20,-1,0 -26,21,0,-1 -26,22,-1,0 -26,23,0,-1 -26,24,0,1 -26,25,0,0 -26,26,1,1 -26,27,0,0 -26,28,1,0 -26,29,0,1 -26,30,1,0 -26,31,0,1 -27,0,0,-3 -27,1,-2,0 -27,2,-1,0 -27,3,-4,-1 -27,4,0,1 -27,5,-1,-1 -27,6,1,0 -27,7,-1,0 -27,8,0,-1 +26,15,1,3 +26,16,-2,-2 +26,17,0,-1 +26,18,-1,0 +26,19,-3,-2 +26,20,1,0 +26,21,-1,-1 +26,22,0,0 +26,23,-1,-4 +26,24,2,2 +26,25,0,1 +26,26,1,0 +26,27,3,2 +26,28,-1,0 +26,29,1,1 +26,30,0,0 +26,31,1,4 +27,0,0,-1 +27,1,0,0 +27,2,-1,-1 +27,3,0,0 +27,4,-1,0 +27,5,0,-1 +27,6,-1,0 +27,7,0,-1 +27,8,0,1 27,9,0,0 -27,10,-1,0 -27,11,-2,-2 -27,12,0,0 -27,13,-2,-2 +27,10,1,1 +27,11,0,0 +27,12,1,0 +27,13,0,1 27,14,1,0 -27,15,-2,-3 -27,16,0,1 -27,17,2,0 -27,18,-1,0 -27,19,4,-1 -27,20,0,1 -27,21,1,1 -27,22,1,0 -27,23,1,2 -27,24,0,-1 -27,25,0,0 -27,26,-1,0 -27,27,2,0 -27,28,0,2 -27,29,2,2 -27,30,1,0 -27,31,2,5 +27,15,0,1 +27,16,-3,-2 +27,17,-1,-3 +27,18,-2,1 +27,19,1,-3 +27,20,0,-1 +27,21,0,1 +27,22,0,1 +27,23,1,0 +27,24,-1,-2 +27,25,1,1 +27,26,-2,1 +27,27,3,-3 +27,28,0,1 +27,29,0,1 +27,30,0,1 +27,31,3,6 28,0,-2,0 -28,1,-4,-3 -28,2,-1,-1 -28,3,-2,-2 -28,4,1,-1 +28,1,0,-1 +28,2,-2,0 +28,3,0,-1 +28,4,0,0 28,5,-1,-1 -28,6,0,0 -28,7,0,-1 -28,8,-1,0 -28,9,2,-2 -28,10,-1,0 -28,11,0,0 -28,12,0,-1 -28,13,-1,2 -28,14,0,-1 +28,6,1,0 +28,7,-1,-1 +28,8,2,0 +28,9,0,1 +28,10,2,0 +28,11,0,1 +28,12,0,0 +28,13,1,1 +28,14,-1,0 28,15,1,1 -28,16,0,0 -28,17,0,-1 -28,18,1,1 -28,19,-2,-2 -28,20,1,1 -28,21,1,-1 -28,22,0,0 -28,23,2,1 -28,24,-1,0 -28,25,2,2 -28,26,1,0 -28,27,0,0 -28,28,2,1 -28,29,1,4 -28,30,0,1 -28,31,1,3 -29,0,-1,-1 -29,1,-2,-1 -29,2,-1,0 -29,3,0,-3 -29,4,-1,1 -29,5,2,-1 -29,6,-1,0 -29,7,0,1 -29,8,0,-1 -29,9,-3,-1 -29,10,0,0 -29,11,-1,-3 -29,12,0,1 -29,13,1,-1 -29,14,0,0 -29,15,-1,1 -29,16,1,-1 -29,17,-2,1 -29,18,1,0 -29,19,0,-1 -29,20,1,1 -29,21,2,1 -29,22,1,0 -29,23,0,3 -29,24,0,-1 -29,25,-1,1 -29,26,0,0 -29,27,1,-1 -29,28,0,1 -29,29,3,1 -29,30,0,0 -29,31,1,3 -30,0,-2,-2 +28,16,-1,-1 +28,17,0,0 +28,18,0,0 +28,19,-1,-1 +28,20,-1,0 +28,21,0,0 +28,22,0,-1 +28,23,0,-1 +28,24,-1,1 +28,25,0,0 +28,26,2,0 +28,27,1,1 +28,28,-1,0 +28,29,0,0 +28,30,2,1 +28,31,0,1 +29,0,-1,-2 +29,1,-1,0 +29,2,-1,-1 +29,3,-2,-1 +29,4,1,1 +29,5,-1,-1 +29,6,1,1 +29,7,-1,-1 +29,8,-1,0 +29,9,1,0 +29,10,-1,-1 +29,11,2,-1 +29,12,1,1 +29,13,1,1 +29,14,1,1 +29,15,1,3 +29,16,-1,0 +29,17,0,0 +29,18,0,-1 +29,19,0,0 +29,20,1,0 +29,21,0,0 +29,22,0,1 +29,23,0,0 +29,24,-1,0 +29,25,0,0 +29,26,0,-1 +29,27,0,0 +29,28,1,0 +29,29,0,0 +29,30,0,1 +29,31,0,0 +30,0,0,-1 30,1,-2,-1 -30,2,-2,-1 -30,3,-3,-2 -30,4,0,0 -30,5,1,0 -30,6,-1,0 -30,7,1,0 -30,8,0,0 -30,9,-2,0 -30,10,0,-2 -30,11,-2,0 -30,12,-3,-2 -30,13,2,-2 -30,14,-1,-1 -30,15,0,-2 -30,16,2,0 -30,17,0,1 -30,18,2,1 -30,19,1,0 -30,20,0,2 -30,21,1,0 -30,22,1,0 -30,23,1,2 -30,24,0,-2 -30,25,0,0 -30,26,0,2 -30,27,0,-2 -30,28,3,4 -30,29,0,2 -30,30,1,1 -30,31,2,4 -31,0,0,-1 -31,1,-3,0 -31,2,0,-1 -31,3,-2,0 -31,4,0,-1 -31,5,-2,-1 -31,6,0,-1 -31,7,-1,0 -31,8,0,-1 -31,9,0,-2 -31,10,0,-1 -31,11,0,-1 -31,12,0,-1 -31,13,1,-1 -31,14,0,-1 -31,15,0,0 -31,16,0,-1 -31,17,3,2 -31,18,0,-1 -31,19,2,2 -31,20,0,-1 -31,21,2,3 -31,22,0,-1 +30,2,0,0 +30,3,1,-1 +30,4,-1,0 +30,5,-1,1 +30,6,0,-1 +30,7,-1,-2 +30,8,0,1 +30,9,2,1 +30,10,0,0 +30,11,-1,1 +30,12,1,0 +30,13,1,-1 +30,14,0,1 +30,15,1,2 +30,16,-1,-2 +30,17,-1,0 +30,18,0,-1 +30,19,-1,-1 +30,20,0,-1 +30,21,1,2 +30,22,-2,-3 +30,23,0,1 +30,24,1,0 +30,25,-1,0 +30,26,0,-1 +30,27,1,1 +30,28,0,-1 +30,29,1,2 +30,30,2,1 +30,31,0,3 +31,0,-2,-1 +31,1,0,0 +31,2,0,-2 +31,3,0,0 +31,4,-1,0 +31,5,0,-1 +31,6,0,1 +31,7,0,-1 +31,8,-2,1 +31,9,0,0 +31,10,2,0 +31,11,0,0 +31,12,1,0 +31,13,0,1 +31,14,2,1 +31,15,0,1 +31,16,-1,0 +31,17,0,-2 +31,18,0,0 +31,19,-1,0 +31,20,1,0 +31,21,0,0 +31,22,0,0 31,23,1,2 -31,24,0,-1 -31,25,0,4 -31,26,0,-1 -31,27,0,3 -31,28,0,-1 -31,29,-1,3 -31,30,0,-1 -31,31,0,2 -32,0,-2,-2 -32,1,2,0 -32,2,-4,-2 -32,3,2,0 -32,4,-4,0 -32,5,1,-1 -32,6,-3,1 -32,7,1,-1 -32,8,-1,0 -32,9,1,-2 -32,10,-1,0 -32,11,1,-2 -32,12,-2,0 -32,13,1,-3 -32,14,-2,0 -32,15,0,-3 -32,16,0,2 -32,17,0,0 -32,18,2,2 -32,19,0,0 -32,20,2,0 -32,21,1,1 -32,22,1,-1 -32,23,1,1 -32,24,-1,0 -32,25,1,2 -32,26,-1,0 +31,24,-1,0 +31,25,0,-2 +31,26,0,0 +31,27,-1,0 +31,28,1,0 +31,29,0,0 +31,30,0,0 +31,31,1,2 +32,0,-3,-1 +32,1,-1,-2 +32,2,-2,0 +32,3,2,-1 +32,4,1,-1 +32,5,-3,-1 +32,6,1,2 +32,7,0,-2 +32,8,1,-1 +32,9,-1,2 +32,10,2,0 +32,11,0,1 +32,12,1,-1 +32,13,1,1 +32,14,-1,2 +32,15,2,2 +32,16,0,-1 +32,17,-2,0 +32,18,0,-1 +32,19,-1,0 +32,20,0,-1 +32,21,0,-1 +32,22,0,-1 +32,23,0,0 +32,24,0,-1 +32,25,2,2 +32,26,0,-1 32,27,1,2 -32,28,0,0 -32,29,1,3 -32,30,0,0 -32,31,2,3 -33,0,-1,-4 -33,1,-1,1 -33,2,-3,-3 -33,3,-1,-1 -33,4,-1,1 -33,5,-2,-3 -33,6,-1,1 -33,7,-4,0 -33,8,1,-1 -33,9,-2,-1 -33,10,1,0 -33,11,-1,-2 -33,12,1,1 -33,13,1,-1 -33,14,0,-1 -33,15,-1,-2 -33,16,1,0 -33,17,1,-1 -33,18,-1,1 -33,19,1,-1 -33,20,-1,1 -33,21,2,1 -33,22,1,-1 -33,23,4,0 -33,24,-1,1 -33,25,2,1 -33,26,-1,2 -33,27,1,0 -33,28,1,1 -33,29,-1,3 -33,30,4,1 -33,31,1,6 -34,0,-2,-1 -34,1,-1,-1 -34,2,-3,-2 -34,3,-2,-1 -34,4,-1,-1 -34,5,0,0 -34,6,0,0 +32,28,0,-1 +32,29,0,3 +32,30,0,-1 +32,31,0,2 +33,0,-3,-2 +33,1,0,-1 +33,2,-1,-2 +33,3,-2,0 +33,4,1,0 +33,5,-1,-1 +33,6,0,-2 +33,7,-1,2 +33,8,1,-2 +33,9,2,1 +33,10,-1,0 +33,11,2,0 +33,12,1,0 +33,13,-1,1 +33,14,2,0 +33,15,1,6 +33,16,0,-1 +33,17,-1,-1 +33,18,0,1 +33,19,1,1 +33,20,0,-1 +33,21,-1,-1 +33,22,0,1 +33,23,1,1 +33,24,0,-1 +33,25,-1,-1 +33,26,0,1 +33,27,1,1 +33,28,0,-1 +33,29,-1,-1 +33,30,0,1 +33,31,1,1 +34,0,-1,-2 +34,1,-4,-1 +34,2,1,0 +34,3,-2,-3 +34,4,-2,1 +34,5,1,-1 +34,6,1,-1 34,7,0,-1 -34,8,0,0 -34,9,-1,0 -34,10,1,-3 -34,11,-1,1 -34,12,-1,-3 -34,13,1,-2 -34,14,0,0 -34,15,-1,-3 -34,16,2,1 -34,17,1,1 -34,18,3,2 -34,19,2,1 -34,20,1,1 -34,21,0,0 -34,22,0,0 -34,23,0,1 -34,24,0,0 -34,25,1,0 -34,26,-1,3 -34,27,1,-1 -34,28,1,3 -34,29,-1,2 -34,30,0,0 -34,31,1,3 -35,0,0,-1 -35,1,-2,-1 -35,2,-1,0 -35,3,-1,-2 -35,4,0,1 -35,5,1,-1 -35,6,1,0 -35,7,0,1 -35,8,0,-1 -35,9,-1,1 -35,10,-1,0 -35,11,-1,-1 -35,12,0,1 -35,13,-1,-2 -35,14,1,0 -35,15,0,0 +34,8,-1,0 +34,9,2,1 +34,10,1,0 +34,11,0,1 +34,12,0,1 +34,13,1,1 +34,14,1,1 +34,15,2,3 +34,16,-3,-3 +34,17,0,-1 +34,18,0,-2 +34,19,-4,-1 +34,20,2,-1 +34,21,0,1 +34,22,-1,-2 +34,23,2,0 +34,24,1,1 +34,25,0,-1 +34,26,0,0 +34,27,2,3 +34,28,0,-1 +34,29,0,1 +34,30,1,0 +34,31,0,6 +35,0,-1,-3 +35,1,-2,0 +35,2,0,1 +35,3,-1,-1 +35,4,-1,0 +35,5,-2,-1 +35,6,2,1 +35,7,0,-1 +35,8,-1,-1 +35,9,0,0 +35,10,0,1 +35,11,3,-1 +35,12,-1,0 +35,13,0,1 +35,14,2,1 +35,15,2,3 35,16,0,-1 -35,17,2,1 -35,18,-1,0 +35,17,-2,-1 +35,18,0,1 35,19,1,0 -35,20,0,1 -35,21,-1,1 -35,22,1,0 -35,23,0,1 +35,20,0,-1 +35,21,-2,0 +35,22,0,1 +35,23,1,-1 35,24,0,-1 -35,25,1,-1 -35,26,-1,0 -35,27,1,-1 -35,28,0,1 -35,29,1,2 -35,30,1,0 -35,31,0,2 +35,25,0,1 +35,26,0,1 +35,27,1,0 +35,28,0,-1 +35,29,0,0 +35,30,0,1 +35,31,1,1 36,0,0,0 -36,1,0,0 +36,1,-1,-1 36,2,0,0 36,3,0,0 36,4,0,0 -36,5,0,0 +36,5,-1,0 36,6,0,0 -36,7,0,0 +36,7,0,-1 36,8,0,0 -36,9,0,0 +36,9,1,1 36,10,0,0 36,11,0,0 36,12,0,0 -36,13,0,0 +36,13,1,0 36,14,0,0 -36,15,0,0 +36,15,0,1 36,16,0,0 -36,17,0,0 +36,17,-1,-2 36,18,0,0 36,19,0,0 36,20,0,0 -36,21,0,0 +36,21,1,0 36,22,0,0 -36,23,0,0 +36,23,0,2 36,24,0,0 -36,25,0,0 +36,25,-1,-2 36,26,0,0 36,27,0,0 36,28,0,0 -36,29,0,0 +36,29,1,0 36,30,0,0 -36,31,0,0 -37,0,-3,0 -37,1,-2,-2 -37,2,-2,-1 -37,3,-2,-2 -37,4,1,-1 -37,5,0,-1 -37,6,-1,-1 -37,7,1,0 -37,8,-2,-1 -37,9,2,0 -37,10,0,-2 -37,11,0,0 -37,12,2,-1 -37,13,0,3 -37,14,0,-1 -37,15,1,2 -37,16,-1,0 -37,17,-2,-2 -37,18,2,1 -37,19,-2,-2 -37,20,3,1 -37,21,0,-1 -37,22,1,1 -37,23,1,0 -37,24,-2,1 -37,25,2,0 -37,26,0,2 +36,31,0,2 +37,0,-1,-1 +37,1,0,1 +37,2,0,-2 +37,3,0,1 +37,4,0,-1 +37,5,0,1 +37,6,-1,-2 +37,7,0,1 +37,8,1,-1 +37,9,0,1 +37,10,0,0 +37,11,0,1 +37,12,0,-1 +37,13,0,1 +37,14,1,0 +37,15,0,1 +37,16,-2,-3 +37,17,-1,0 +37,18,-2,-2 +37,19,0,0 +37,20,-1,-2 +37,21,1,2 +37,22,0,-2 +37,23,1,-1 +37,24,0,1 +37,25,-1,0 +37,26,4,0 37,27,0,0 -37,28,2,1 -37,29,0,3 -37,30,0,1 -37,31,1,2 -38,0,-2,-2 -38,1,-1,-1 -38,2,-2,-2 -38,3,0,0 -38,4,-1,-2 -38,5,3,2 -38,6,-2,-1 -38,7,2,0 -38,8,-1,0 -38,9,-2,-1 -38,10,-1,0 -38,11,0,0 -38,12,-1,-1 -38,13,1,-1 -38,14,0,0 -38,15,-2,-1 -38,16,2,0 -38,17,-1,1 -38,18,2,0 -38,19,0,0 -38,20,1,0 -38,21,-1,2 -38,22,2,-1 -38,23,-2,4 -38,24,1,-2 -38,25,0,1 -38,26,1,-2 -38,27,0,0 -38,28,1,-1 -38,29,1,5 -38,30,0,-2 -38,31,2,5 -39,0,-3,-2 -39,1,0,-2 -39,2,-3,-3 -39,3,0,-2 -39,4,1,-2 -39,5,0,2 -39,6,-1,-2 -39,7,1,2 -39,8,-3,0 -39,9,0,-3 +37,28,-1,0 +37,29,1,2 +37,30,2,0 +37,31,-1,5 +38,0,-2,-1 +38,1,-1,0 +38,2,0,-2 +38,3,-3,0 +38,4,2,0 +38,5,-1,-1 +38,6,0,2 +38,7,0,-2 +38,8,-2,1 +38,9,1,0 +38,10,0,-2 +38,11,1,0 +38,12,2,0 +38,13,1,1 +38,14,0,2 +38,15,2,2 +38,16,-1,-1 +38,17,0,0 +38,18,0,0 +38,19,-1,-1 +38,20,0,0 +38,21,0,0 +38,22,-2,-2 +38,23,0,-1 +38,24,1,1 +38,25,0,0 +38,26,0,0 +38,27,1,1 +38,28,0,0 +38,29,0,0 +38,30,2,2 +38,31,0,1 +39,0,-1,-1 +39,1,-1,-1 +39,2,-1,0 +39,3,-1,-1 +39,4,-1,0 +39,5,1,0 +39,6,-1,0 +39,7,0,-1 +39,8,-1,1 +39,9,1,-1 39,10,-1,0 -39,11,0,-2 -39,12,1,-2 -39,13,0,1 -39,14,-1,-2 -39,15,0,0 -39,16,1,2 -39,17,0,-2 -39,18,3,3 -39,19,0,-2 -39,20,1,2 -39,21,0,2 -39,22,1,2 -39,23,-1,2 -39,24,1,0 -39,25,0,-1 -39,26,1,0 -39,27,0,-2 -39,28,1,2 -39,29,0,3 -39,30,1,2 -39,31,0,4 -40,0,-1,-1 -40,1,-6,-2 -40,2,-1,-1 -40,3,-3,-3 -40,4,0,0 -40,5,-1,-3 -40,6,0,0 -40,7,-3,-1 -40,8,0,0 -40,9,2,-3 -40,10,-1,0 -40,11,2,-1 -40,12,-2,-2 -40,13,0,1 -40,14,0,-2 -40,15,-1,-2 -40,16,1,1 -40,17,2,0 -40,18,1,1 -40,19,1,1 +39,11,3,-1 +39,12,-1,0 +39,13,3,2 +39,14,-1,0 +39,15,2,3 +39,16,-2,-2 +39,17,-3,-1 +39,18,1,-1 +39,19,-1,-1 +39,20,-2,-2 +39,21,2,2 +39,22,1,-2 +39,23,-2,0 +39,24,0,0 +39,25,1,1 +39,26,1,-1 +39,27,1,1 +39,28,0,0 +39,29,0,2 +39,30,1,0 +39,31,2,4 +40,0,-3,-2 +40,1,-2,-1 +40,2,-2,0 +40,3,-1,-4 +40,4,0,1 +40,5,1,-1 +40,6,0,-2 +40,7,-1,0 +40,8,3,0 +40,9,-2,1 +40,10,2,0 +40,11,1,0 +40,12,0,1 +40,13,3,1 +40,14,0,2 +40,15,1,4 +40,16,0,-1 +40,17,-1,0 +40,18,0,0 +40,19,-2,0 40,20,0,0 -40,21,1,-1 +40,21,-1,-1 40,22,0,0 -40,23,3,-1 -40,24,0,0 -40,25,2,5 -40,26,1,0 -40,27,0,3 -40,28,2,2 -40,29,0,3 -40,30,0,2 -40,31,1,4 -41,0,-2,-1 -41,1,-2,-1 -41,2,-2,-1 -41,3,-1,-1 -41,4,-1,-1 -41,5,1,0 -41,6,-1,-1 -41,7,1,-1 -41,8,-1,0 -41,9,1,-1 -41,10,0,1 -41,11,0,1 -41,12,-1,0 -41,13,-1,-2 -41,14,-1,1 -41,15,0,-3 -41,16,-2,1 -41,17,4,1 -41,18,-2,-1 -41,19,3,1 -41,20,-1,-1 -41,21,1,0 -41,22,-1,-1 -41,23,1,1 -41,24,1,0 -41,25,1,1 -41,26,0,1 -41,27,2,-1 -41,28,-1,2 -41,29,3,2 -41,30,-1,1 -41,31,2,3 -42,0,-2,-2 -42,1,-2,-1 -42,2,-2,-1 -42,3,-4,-3 -42,4,2,0 -42,5,-1,-1 +40,23,-1,-2 +40,24,0,1 +40,25,1,0 +40,26,0,0 +40,27,2,0 +40,28,0,0 +40,29,1,1 +40,30,0,0 +40,31,1,2 +41,0,0,-1 +41,1,-4,-2 +41,2,0,0 +41,3,0,-2 +41,4,0,1 +41,5,1,-1 +41,6,0,0 +41,7,0,0 +41,8,0,-1 +41,9,0,2 +41,10,0,0 +41,11,0,-2 +41,12,0,1 +41,13,3,1 +41,14,0,0 +41,15,0,4 +41,16,0,0 +41,17,0,0 +41,18,0,0 +41,19,0,0 +41,20,0,0 +41,21,0,0 +41,22,0,0 +41,23,0,0 +41,24,0,0 +41,25,0,0 +41,26,0,0 +41,27,0,0 +41,28,0,0 +41,29,0,0 +41,30,0,0 +41,31,0,0 +42,0,-2,-1 +42,1,-2,-2 +42,2,1,0 +42,3,0,-2 +42,4,-1,0 +42,5,-1,2 42,6,1,-1 -42,7,1,-1 +42,7,0,-1 42,8,-2,1 -42,9,2,-1 -42,10,-1,1 -42,11,0,0 -42,12,1,-2 -42,13,1,3 -42,14,-1,-2 -42,15,1,2 -42,16,0,0 -42,17,-2,-1 -42,18,2,1 -42,19,-2,-1 -42,20,0,0 -42,21,-1,-1 -42,22,-1,1 -42,23,1,-1 -42,24,0,1 -42,25,2,-1 -42,26,1,-1 -42,27,2,0 -42,28,1,2 -42,29,1,3 -42,30,1,2 -42,31,1,4 -43,0,-2,-1 -43,1,-3,-2 -43,2,-3,-3 -43,3,-1,-2 -43,4,-1,0 -43,5,1,0 -43,6,-2,0 -43,7,0,1 -43,8,0,-2 -43,9,-2,0 -43,10,2,-3 -43,11,-1,-1 -43,12,-1,-1 -43,13,1,-2 -43,14,-1,-2 -43,15,0,-1 -43,16,2,1 -43,17,1,0 -43,18,3,3 -43,19,1,0 -43,20,1,0 -43,21,1,2 -43,22,2,0 -43,23,0,1 -43,24,0,2 -43,25,0,-2 -43,26,-2,3 -43,27,1,-1 -43,28,1,1 -43,29,1,4 -43,30,1,2 -43,31,0,3 -44,0,-3,-4 -44,1,-2,0 -44,2,-3,-3 -44,3,-1,-2 -44,4,-3,1 -44,5,1,-2 -44,6,-3,1 -44,7,-1,-1 -44,8,-1,-1 -44,9,-1,0 -44,10,1,-1 -44,11,2,-2 -44,12,-1,0 -44,13,3,0 -44,14,-2,-2 -44,15,1,3 -44,16,1,-2 -44,17,-2,2 -44,18,1,1 -44,19,-1,0 -44,20,1,-1 -44,21,3,2 -44,22,1,-3 -44,23,1,3 -44,24,-1,-1 -44,25,1,2 -44,26,-3,-1 -44,27,4,0 -44,28,-1,0 -44,29,5,4 -44,30,0,0 -44,31,3,7 -45,0,0,-3 -45,1,-1,1 -45,2,-1,-2 -45,3,-1,0 -45,4,-2,-1 -45,5,0,0 -45,6,-2,-2 -45,7,-2,0 -45,8,0,0 -45,9,-1,0 -45,10,1,0 +42,9,2,0 +42,10,1,0 +42,11,-2,0 +42,12,1,0 +42,13,1,0 +42,14,1,1 +42,15,2,3 +42,16,-1,-2 +42,17,-1,0 +42,18,0,0 +42,19,0,-2 +42,20,-2,1 +42,21,0,0 +42,22,2,-1 +42,23,-1,0 +42,24,-1,0 +42,25,1,0 +42,26,0,0 +42,27,0,0 +42,28,0,1 +42,29,0,0 +42,30,2,1 +42,31,1,2 +43,0,-2,-3 +43,1,0,-1 +43,2,-2,-1 +43,3,-3,-1 +43,4,1,0 +43,5,0,-3 +43,6,0,0 +43,7,0,-2 +43,8,0,1 +43,9,2,-1 +43,10,0,1 +43,11,3,-1 +43,12,1,2 +43,13,-2,1 +43,14,2,0 +43,15,0,8 +43,16,0,0 +43,17,0,0 +43,18,0,0 +43,19,0,0 +43,20,0,0 +43,21,0,0 +43,22,0,0 +43,23,0,0 +43,24,0,0 +43,25,0,0 +43,26,0,0 +43,27,0,0 +43,28,0,0 +43,29,0,0 +43,30,0,0 +43,31,0,0 +44,0,-1,0 +44,1,-1,-1 +44,2,0,0 +44,3,-2,0 +44,4,0,-1 +44,5,0,-1 +44,6,0,0 +44,7,-1,-2 +44,8,1,0 +44,9,1,1 +44,10,0,0 +44,11,2,0 +44,12,0,1 +44,13,0,1 +44,14,0,0 +44,15,1,2 +44,16,-1,0 +44,17,0,-1 +44,18,-1,-1 +44,19,0,1 +44,20,0,-1 +44,21,0,-1 +44,22,0,-1 +44,23,0,1 +44,24,1,0 +44,25,0,-1 +44,26,1,1 +44,27,0,1 +44,28,0,1 +44,29,0,-1 +44,30,0,1 +44,31,0,1 +45,0,-1,-1 +45,1,-1,-1 +45,2,0,0 +45,3,0,0 +45,4,-1,0 +45,5,-1,0 +45,6,0,-1 +45,7,0,-2 +45,8,-1,1 +45,9,1,1 +45,10,2,0 45,11,0,0 -45,12,0,-2 -45,13,0,2 -45,14,1,-2 -45,15,-1,0 -45,16,0,-1 -45,17,1,1 -45,18,-1,-2 -45,19,1,2 -45,20,0,-1 -45,21,0,0 -45,22,0,0 -45,23,2,0 -45,24,0,0 -45,25,1,2 -45,26,1,0 -45,27,0,2 -45,28,2,0 -45,29,0,2 -45,30,1,0 +45,12,-1,0 +45,13,1,0 +45,14,2,1 +45,15,0,2 +45,16,-1,-1 +45,17,-1,-1 +45,18,0,-1 +45,19,-1,1 +45,20,0,-2 +45,21,0,1 +45,22,0,-1 +45,23,-1,-2 +45,24,1,-1 +45,25,1,3 +45,26,0,-1 +45,27,1,1 +45,28,0,0 +45,29,0,1 +45,30,0,-1 45,31,1,4 -46,0,-1,-2 -46,1,-1,1 -46,2,-1,-2 +46,0,-3,0 +46,1,0,-1 +46,2,-1,0 46,3,-1,0 -46,4,0,0 +46,4,-1,-2 46,5,1,-1 -46,6,-3,0 -46,7,2,-1 -46,8,-2,-1 -46,9,1,0 -46,10,0,0 -46,11,0,0 -46,12,0,0 -46,13,-1,-2 -46,14,-1,-1 -46,15,-1,-3 -46,16,1,2 -46,17,1,-1 -46,18,1,2 -46,19,1,0 +46,6,-1,0 +46,7,0,-2 +46,8,1,0 +46,9,2,1 +46,10,-1,0 +46,11,3,0 +46,12,-1,2 +46,13,1,1 +46,14,-1,0 +46,15,2,2 +46,16,0,0 +46,17,0,-1 +46,18,0,0 +46,19,0,1 46,20,0,0 -46,21,-1,1 -46,22,3,0 -46,23,-2,1 -46,24,2,1 -46,25,-1,0 +46,21,0,-1 +46,22,0,0 +46,23,0,1 +46,24,0,0 +46,25,0,-1 46,26,0,0 -46,27,0,0 +46,27,0,1 46,28,0,0 -46,29,1,2 -46,30,1,1 -46,31,1,3 -47,0,0,-1 -47,1,0,0 -47,2,-2,-1 +46,29,0,-1 +46,30,0,0 +46,31,0,1 +47,0,0,0 +47,1,-1,-1 +47,2,0,0 47,3,0,0 -47,4,-1,0 -47,5,-1,-1 -47,6,-1,0 -47,7,-1,-1 +47,4,0,0 +47,5,-1,0 +47,6,0,0 +47,7,0,-1 47,8,0,0 -47,9,0,0 -47,10,0,-2 +47,9,1,1 +47,10,0,0 47,11,0,0 -47,12,-1,-1 -47,13,0,-1 -47,14,-1,-1 -47,15,0,-1 -47,16,0,1 +47,12,0,0 +47,13,1,0 +47,14,0,0 +47,15,0,1 +47,16,-2,-1 47,17,0,0 -47,18,2,1 -47,19,0,0 -47,20,1,0 -47,21,1,1 -47,22,1,0 -47,23,1,1 -47,24,0,0 +47,18,0,0 +47,19,-2,-2 +47,20,2,1 +47,21,0,0 +47,22,0,0 +47,23,2,2 +47,24,-2,-1 47,25,0,0 -47,26,0,2 -47,27,0,0 -47,28,1,1 -47,29,0,1 -47,30,1,1 -47,31,0,1 -48,0,-2,-2 -48,1,-2,-2 -48,2,-2,-1 -48,3,-4,-3 +47,26,0,0 +47,27,-2,-2 +47,28,2,1 +47,29,0,0 +47,30,0,0 +47,31,2,2 +48,0,-1,-2 +48,1,0,0 +48,2,-2,0 +48,3,0,0 48,4,0,0 -48,5,-1,0 -48,6,-1,0 -48,7,1,-1 -48,8,-1,1 -48,9,-1,-2 -48,10,0,0 -48,11,0,1 -48,12,1,-2 -48,13,0,0 -48,14,1,0 -48,15,-3,-2 -48,16,2,0 -48,17,0,0 +48,5,0,-3 +48,6,0,1 +48,7,-2,-3 +48,8,1,2 +48,9,0,0 +48,10,2,0 +48,11,0,0 +48,12,0,0 +48,13,0,3 +48,14,0,-1 +48,15,2,3 +48,16,-2,-2 +48,17,-1,-1 48,18,0,-1 -48,19,4,1 -48,20,-2,0 -48,21,3,0 -48,22,-1,0 -48,23,-1,1 -48,24,1,1 -48,25,-1,0 -48,26,2,2 -48,27,0,-3 -48,28,1,2 -48,29,2,4 -48,30,1,0 -48,31,3,6 -49,0,0,-4 -49,1,-4,0 -49,2,0,0 -49,3,-5,-4 -49,4,1,2 -49,5,-2,-2 -49,6,0,0 -49,7,1,-1 -49,8,-2,0 -49,9,2,-2 -49,10,0,0 -49,11,-1,1 -49,12,1,-1 -49,13,0,2 +48,19,-2,-1 +48,20,1,1 +48,21,1,-1 +48,22,-2,-1 +48,23,1,1 +48,24,0,0 +48,25,-1,-1 +48,26,0,-1 +48,27,0,1 +48,28,1,1 +48,29,1,-1 +48,30,2,3 +48,31,1,3 +49,0,-2,-1 +49,1,0,-2 +49,2,-2,-1 +49,3,2,0 +49,4,0,0 +49,5,-1,-2 +49,6,0,2 +49,7,-1,-2 +49,8,0,1 +49,9,0,0 +49,10,2,-1 +49,11,-2,2 +49,12,2,0 +49,13,1,0 49,14,0,0 -49,15,1,0 -49,16,0,0 -49,17,-2,0 -49,18,0,0 -49,19,-1,0 -49,20,-1,0 -49,21,2,-2 -49,22,0,0 -49,23,1,-1 -49,24,2,0 -49,25,0,2 -49,26,0,0 -49,27,3,-1 -49,28,-1,3 -49,29,4,2 -49,30,0,0 -49,31,1,6 -50,0,-2,-2 -50,1,-1,-1 -50,2,-2,0 -50,3,-2,-3 -50,4,-1,0 -50,5,-1,-1 -50,6,-2,-3 -50,7,-2,-1 -50,8,1,-1 -50,9,-1,0 -50,10,1,0 -50,11,0,1 -50,12,0,-3 -50,13,1,1 -50,14,0,-2 -50,15,0,-2 -50,16,0,2 -50,17,1,-1 +49,15,1,4 +49,16,-3,-1 +49,17,0,0 +49,18,-1,-1 +49,19,1,-1 +49,20,-1,-1 +49,21,1,0 +49,22,0,-1 +49,23,0,-1 +49,24,-1,1 +49,25,2,0 +49,26,-1,-1 +49,27,1,1 +49,28,1,1 +49,29,1,0 +49,30,-2,3 +49,31,2,1 +50,0,-1,-2 +50,1,0,0 +50,2,0,-1 +50,3,-2,-1 +50,4,1,0 +50,5,-1,0 +50,6,-1,-1 +50,7,0,-2 +50,8,1,2 +50,9,0,0 +50,10,0,1 +50,11,2,1 +50,12,-1,0 +50,13,1,0 +50,14,1,1 +50,15,0,2 +50,16,0,-1 +50,17,-2,-1 50,18,0,0 -50,19,2,1 -50,20,1,0 -50,21,-1,-1 -50,22,2,3 -50,23,0,-1 -50,24,1,1 -50,25,1,2 -50,26,1,0 -50,27,0,1 -50,28,0,3 -50,29,1,1 -50,30,0,2 -50,31,2,4 -51,0,0,-3 -51,1,-4,0 -51,2,0,0 -51,3,-2,-4 -51,4,-2,2 -51,5,1,-3 -51,6,0,0 -51,7,-2,0 -51,8,1,-1 -51,9,-1,0 -51,10,0,0 -51,11,1,0 -51,12,-2,-1 -51,13,1,2 -51,14,0,0 -51,15,0,-1 -51,16,0,1 -51,17,-2,-2 -51,18,0,0 -51,19,-2,0 -51,20,2,0 -51,21,1,-1 +50,19,1,-1 +50,20,-1,0 +50,21,-1,1 +50,22,0,-1 +50,23,-1,-2 +50,24,0,1 +50,25,2,1 +50,26,0,0 +50,27,-1,1 +50,28,1,0 +50,29,1,-1 +50,30,0,1 +50,31,1,2 +51,0,-3,-2 +51,1,1,-2 +51,2,-4,0 +51,3,-1,-3 +51,4,1,1 +51,5,-2,-2 +51,6,1,-1 +51,7,-1,1 +51,8,1,0 +51,9,1,0 +51,10,2,0 +51,11,1,1 +51,12,1,1 +51,13,0,0 +51,14,1,1 +51,15,1,5 +51,16,-1,-1 +51,17,0,0 +51,18,-1,0 +51,19,-1,-1 +51,20,0,0 +51,21,-1,-2 51,22,0,0 -51,23,4,0 -51,24,-1,-1 -51,25,3,2 -51,26,0,0 -51,27,-1,0 -51,28,2,3 +51,23,-2,-2 +51,24,1,1 +51,25,0,0 +51,26,1,0 +51,27,1,1 +51,28,0,0 51,29,1,2 51,30,0,0 -51,31,2,5 -52,0,0,0 -52,1,-4,-3 +51,31,2,2 +52,0,-1,-4 +52,1,-1,1 52,2,0,0 -52,3,-1,-1 -52,4,0,0 -52,5,0,0 +52,3,0,-4 +52,4,-1,2 +52,5,1,0 52,6,0,0 -52,7,-1,-1 -52,8,0,0 -52,9,0,-2 +52,7,0,1 +52,8,-1,0 +52,9,1,-1 52,10,0,0 -52,11,-1,0 -52,12,0,0 -52,13,-1,-3 +52,11,-2,-2 +52,12,3,2 +52,13,-1,0 52,14,0,0 -52,15,0,-3 +52,15,2,5 52,16,0,0 -52,17,4,3 +52,17,-1,-1 52,18,0,0 -52,19,1,1 +52,19,0,-1 52,20,0,0 -52,21,0,0 +52,21,1,1 52,22,0,0 -52,23,1,1 +52,23,0,1 52,24,0,0 -52,25,0,2 +52,25,-1,-1 52,26,0,0 -52,27,1,0 +52,27,0,-1 52,28,0,0 -52,29,1,3 +52,29,1,1 52,30,0,0 -52,31,0,3 -53,0,-3,-2 -53,1,0,-1 -53,2,-5,-2 -53,3,0,-2 -53,4,0,0 -53,5,-1,-2 +52,31,0,1 +53,0,-1,-2 +53,1,-1,0 +53,2,0,-1 +53,3,-1,-1 +53,4,-2,1 +53,5,1,-1 53,6,0,0 -53,7,0,-1 -53,8,1,1 -53,9,-1,-1 -53,10,1,1 -53,11,-2,-1 -53,12,0,-1 -53,13,-1,-2 -53,14,-1,-1 -53,15,-1,-3 -53,16,1,2 -53,17,0,1 -53,18,3,0 -53,19,0,2 -53,20,0,-2 -53,21,1,2 -53,22,0,-2 -53,23,0,1 -53,24,1,-1 -53,25,1,1 -53,26,1,1 -53,27,2,1 -53,28,0,3 -53,29,1,2 -53,30,1,3 -53,31,1,3 -54,0,-2,-5 -54,1,1,1 -54,2,-4,-1 -54,3,0,-5 -54,4,-1,2 -54,5,1,-3 -54,6,0,0 -54,7,2,-1 +53,7,1,0 +53,8,-1,0 +53,9,-1,0 +53,10,2,1 +53,11,-1,-1 +53,12,0,1 +53,13,1,1 +53,14,2,0 +53,15,1,2 +53,16,-3,-3 +53,17,0,-1 +53,18,-2,0 +53,19,-1,-3 +53,20,1,1 +53,21,-2,-2 +53,22,3,-1 +53,23,-3,0 +53,24,1,1 +53,25,2,-1 +53,26,0,0 +53,27,1,1 +53,28,1,1 +53,29,0,0 +53,30,-1,1 +53,31,3,6 +54,0,-1,-1 +54,1,-2,-2 +54,2,0,-1 +54,3,-1,0 +54,4,1,1 +54,5,0,-1 +54,6,0,1 +54,7,1,1 54,8,-1,-1 -54,9,-1,1 -54,10,1,-1 -54,11,-5,1 -54,12,3,-1 -54,13,-2,1 -54,14,1,-2 -54,15,0,0 -54,16,0,-1 -54,17,1,1 -54,18,-2,-1 -54,19,2,3 -54,20,-1,-2 -54,21,-1,1 -54,22,2,0 -54,23,-4,1 -54,24,3,-1 -54,25,-1,1 -54,26,1,-1 -54,27,3,1 -54,28,-1,1 -54,29,2,5 -54,30,1,-2 -54,31,2,8 -55,0,-1,-3 -55,1,-2,1 -55,2,-2,-3 -55,3,-1,0 -55,4,-1,-1 -55,5,0,0 -55,6,-2,1 -55,7,-3,1 -55,8,0,-1 -55,9,-2,-2 -55,10,0,-1 -55,11,0,-3 -55,12,-1,0 -55,13,2,-2 -55,14,-3,0 -55,15,-1,-4 -55,16,1,3 -55,17,0,-3 -55,18,2,3 -55,19,1,-2 -55,20,1,1 -55,21,2,2 -55,22,2,-1 -55,23,3,1 -55,24,0,1 -55,25,0,0 +54,9,0,0 +54,10,0,-1 +54,11,-1,0 +54,12,1,1 +54,13,2,-1 +54,14,0,1 +54,15,1,3 +54,16,-2,-4 +54,17,-2,-2 +54,18,-1,2 +54,19,-1,-4 +54,20,1,-1 +54,21,-2,0 +54,22,1,-1 +54,23,1,-3 +54,24,0,0 +54,25,2,2 +54,26,-1,0 +54,27,3,0 +54,28,1,1 +54,29,-2,0 +54,30,1,3 +54,31,1,7 +55,0,-2,-1 +55,1,-2,-2 +55,2,0,-1 +55,3,0,0 +55,4,-2,-1 +55,5,1,0 +55,6,0,0 +55,7,0,-3 +55,8,0,1 +55,9,0,0 +55,10,2,1 +55,11,0,-2 +55,12,0,1 +55,13,1,2 +55,14,2,0 +55,15,0,5 +55,16,-2,-4 +55,17,1,0 +55,18,-2,-1 +55,19,-2,-2 +55,20,0,1 +55,21,1,-1 +55,22,-2,0 +55,23,4,0 +55,24,-2,2 +55,25,1,-2 55,26,0,1 -55,27,0,1 -55,28,1,0 -55,29,0,4 -55,30,3,0 -55,31,1,6 -56,0,-2,-3 -56,1,-1,1 -56,2,-3,-3 -56,3,-2,-1 -56,4,1,-1 +55,27,0,0 +55,28,0,1 +55,29,1,-1 +55,30,0,0 +55,31,2,6 +56,0,0,0 +56,1,-1,-1 +56,2,0,0 +56,3,0,-1 +56,4,0,0 56,5,1,1 -56,6,1,-3 -56,7,1,2 -56,8,0,-2 -56,9,-1,1 -56,10,0,1 -56,11,-2,0 -56,12,0,-1 +56,6,0,0 +56,7,0,1 +56,8,0,0 +56,9,-1,-1 +56,10,0,0 +56,11,0,-1 +56,12,0,0 56,13,1,1 -56,14,-1,-2 -56,15,1,1 -56,16,0,-1 -56,17,-1,1 -56,18,1,-1 -56,19,0,1 -56,20,-1,-1 -56,21,1,1 -56,22,-1,-1 -56,23,1,2 -56,24,2,-2 -56,25,-1,1 -56,26,2,-1 -56,27,0,0 -56,28,0,3 -56,29,1,1 -56,30,1,2 -56,31,1,3 -57,0,-2,-3 -57,1,1,0 -57,2,-3,0 -57,3,-2,-2 -57,4,0,0 -57,5,-2,-1 -57,6,0,0 -57,7,-2,-2 -57,8,1,1 -57,9,-2,-2 -57,10,2,0 -57,11,-4,0 -57,12,1,-2 -57,13,0,1 -57,14,-1,-2 -57,15,0,-3 -57,16,0,1 -57,17,1,0 -57,18,-1,0 -57,19,4,0 -57,20,-2,0 -57,21,2,-3 -57,22,0,2 -57,23,0,-2 -57,24,1,1 -57,25,0,2 -57,26,2,0 -57,27,2,2 -57,28,1,2 +56,14,0,0 +56,15,0,1 +56,16,-1,-2 +56,17,-2,-2 +56,18,0,1 +56,19,0,-2 +56,20,-1,1 +56,21,0,-1 +56,22,1,0 +56,23,-1,0 +56,24,1,0 +56,25,0,0 +56,26,0,-1 +56,27,-2,2 +56,28,1,1 +56,29,2,-1 +56,30,-1,0 +56,31,3,4 +57,0,-2,-2 +57,1,-1,-2 +57,2,0,2 +57,3,1,-4 +57,4,0,-1 +57,5,-1,2 +57,6,1,1 +57,7,-1,1 +57,8,0,0 +57,9,-1,-2 +57,10,0,0 +57,11,1,0 +57,12,2,-1 +57,13,-1,2 +57,14,-1,1 +57,15,3,3 +57,16,-2,-2 +57,17,-1,-1 +57,18,1,-1 +57,19,0,-2 +57,20,0,-1 +57,21,0,3 +57,22,0,-3 +57,23,-1,2 +57,24,0,0 +57,25,1,-1 +57,26,-1,-1 +57,27,0,0 +57,28,2,-1 57,29,0,3 -57,30,1,0 -57,31,2,7 -58,0,-1,-3 -58,1,-4,-2 -58,2,-3,-1 -58,3,-2,-4 -58,4,0,1 -58,5,-1,-1 -58,6,-1,-2 +57,30,0,1 +57,31,1,4 +58,0,-2,0 +58,1,1,-2 +58,2,-2,0 +58,3,1,0 +58,4,-1,0 +58,5,0,-2 +58,6,-1,0 58,7,0,0 -58,8,-2,-2 -58,9,3,0 -58,10,-1,0 -58,11,1,0 -58,12,0,1 -58,13,0,-1 -58,14,-2,0 -58,15,0,-3 -58,16,1,1 -58,17,-2,0 -58,18,3,1 -58,19,-2,0 -58,20,0,1 -58,21,3,-3 -58,22,1,2 -58,23,2,0 -58,24,2,0 -58,25,-1,2 -58,26,1,0 -58,27,-1,0 -58,28,0,1 -58,29,2,5 -58,30,2,0 -58,31,2,7 -59,0,-5,0 -59,1,0,-3 -59,2,-4,-1 -59,3,-1,-3 -59,4,0,0 -59,5,-1,-1 -59,6,-1,1 -59,7,0,-1 -59,8,1,0 -59,9,-1,-1 -59,10,3,0 -59,11,-2,-1 -59,12,1,0 +58,8,0,0 +58,9,1,0 +58,10,0,0 +58,11,1,2 +58,12,-1,0 +58,13,2,0 +58,14,-1,0 +58,15,2,2 +58,16,0,-1 +58,17,-1,0 +58,18,0,0 +58,19,0,-1 +58,20,-1,0 +58,21,0,0 +58,22,0,-1 +58,23,-1,-1 +58,24,0,1 +58,25,1,0 +58,26,0,0 +58,27,0,1 +58,28,1,0 +58,29,0,0 +58,30,0,1 +58,31,1,1 +59,0,-2,-1 +59,1,-2,-2 +59,2,0,-1 +59,3,-4,0 +59,4,1,-1 +59,5,0,-3 +59,6,0,1 +59,7,0,-3 +59,8,0,1 +59,9,2,0 +59,10,0,-1 +59,11,4,2 +59,12,1,1 59,13,0,1 -59,14,-1,-1 -59,15,1,1 -59,16,-1,0 -59,17,0,-1 -59,18,0,1 +59,14,0,1 +59,15,0,5 +59,16,-2,-2 +59,17,1,0 +59,18,-1,0 59,19,-1,-1 -59,20,2,0 -59,21,-1,1 -59,22,3,-1 -59,23,0,1 -59,24,1,0 -59,25,1,1 -59,26,1,0 -59,27,0,1 -59,28,1,0 -59,29,2,3 -59,30,-1,1 -59,31,3,3 -60,0,-2,-1 -60,1,-3,-2 -60,2,-3,-2 -60,3,-3,-2 -60,4,-1,-1 -60,5,-2,-3 -60,6,0,0 -60,7,-2,-1 -60,8,1,0 -60,9,0,0 -60,10,1,1 -60,11,0,-2 -60,12,1,1 -60,13,1,-3 -60,14,0,0 -60,15,-1,-3 +59,20,-1,-1 +59,21,1,0 +59,22,-1,0 +59,23,1,-3 +59,24,0,2 +59,25,-1,0 +59,26,3,0 +59,27,1,1 +59,28,-1,1 +59,29,-1,0 +59,30,3,0 +59,31,-1,3 +60,0,-3,-1 +60,1,-1,0 +60,2,2,-1 +60,3,0,-1 +60,4,-1,0 +60,5,0,0 +60,6,1,-1 +60,7,-1,-1 +60,8,-1,1 +60,9,1,0 +60,10,0,-1 +60,11,0,1 +60,12,1,0 +60,13,0,0 +60,14,1,3 +60,15,1,1 60,16,0,-1 -60,17,3,2 -60,18,-1,-2 -60,19,3,2 -60,20,-1,-1 -60,21,2,1 +60,17,-1,0 +60,18,0,0 +60,19,-1,-1 +60,20,0,1 +60,21,1,0 60,22,0,0 -60,23,2,-1 -60,24,1,2 -60,25,0,0 -60,26,3,3 -60,27,0,2 -60,28,1,1 -60,29,-1,5 +60,23,1,1 +60,24,0,-1 +60,25,-1,0 +60,26,0,0 +60,27,-1,-1 +60,28,0,1 +60,29,1,0 60,30,0,0 -60,31,1,5 -61,0,-1,-1 -61,1,-3,-1 -61,2,-3,-2 -61,3,-1,-1 -61,4,-1,-1 -61,5,0,-3 -61,6,-1,-1 -61,7,-1,-1 -61,8,1,0 -61,9,-1,0 -61,10,1,-1 -61,11,-1,0 -61,12,-1,0 -61,13,1,-3 -61,14,-1,0 -61,15,0,-3 -61,16,-1,1 -61,17,3,1 -61,18,1,0 -61,19,1,1 -61,20,1,-1 -61,21,0,3 -61,22,1,-1 -61,23,1,1 -61,24,1,0 -61,25,1,0 -61,26,1,3 -61,27,1,0 -61,28,1,2 -61,29,-1,3 -61,30,1,2 -61,31,0,3 -62,0,-1,-1 +60,31,1,1 +61,0,-2,-2 +61,1,-2,0 +61,2,-1,0 +61,3,1,-3 +61,4,-2,0 +61,5,3,0 +61,6,0,-2 +61,7,0,1 +61,8,0,0 +61,9,0,0 +61,10,-1,0 +61,11,1,-1 +61,12,0,2 +61,13,3,0 +61,14,-2,2 +61,15,2,3 +61,16,-2,0 +61,17,0,-2 +61,18,-1,0 +61,19,-1,-2 +61,20,1,0 +61,21,-1,0 +61,22,0,0 +61,23,0,0 +61,24,0,0 +61,25,0,0 +61,26,1,0 +61,27,-1,0 +61,28,1,0 +61,29,1,2 +61,30,0,0 +61,31,2,2 +62,0,0,0 62,1,0,0 -62,2,-2,-1 -62,3,0,-1 +62,2,0,0 +62,3,0,0 62,4,0,0 62,5,0,0 -62,6,1,0 -62,7,0,1 -62,8,0,-1 +62,6,0,0 +62,7,0,0 +62,8,0,0 62,9,0,0 -62,10,-2,0 -62,11,0,-1 -62,12,-1,0 +62,10,0,0 +62,11,0,0 +62,12,0,0 62,13,0,0 -62,14,1,-1 -62,15,0,1 -62,16,1,-1 -62,17,0,0 +62,14,0,0 +62,15,0,0 +62,16,0,-1 +62,17,-3,-2 62,18,0,1 -62,19,0,-1 -62,20,0,2 -62,21,0,0 -62,22,1,0 -62,23,0,1 +62,19,1,-1 +62,20,0,-1 +62,21,-1,1 +62,22,0,1 +62,23,1,0 62,24,0,-1 -62,25,0,0 -62,26,0,0 -62,27,0,-1 -62,28,1,2 -62,29,0,0 -62,30,1,1 -62,31,0,1 -63,0,-1,-2 -63,1,0,1 -63,2,-2,-2 +62,25,-1,0 +62,26,0,1 +62,27,1,-1 +62,28,0,-1 +62,29,1,1 +62,30,0,1 +62,31,1,2 +63,0,-2,0 +63,1,-1,-2 +63,2,0,-1 63,3,-1,0 -63,4,0,-1 -63,5,0,1 -63,6,-1,-2 -63,7,0,1 -63,8,-1,-2 -63,9,0,1 -63,10,1,-1 -63,11,-1,1 -63,12,0,-2 -63,13,0,1 -63,14,-2,-3 -63,15,0,0 -63,16,1,0 -63,17,0,1 -63,18,2,0 -63,19,1,2 -63,20,0,-1 -63,21,0,1 -63,22,1,0 -63,23,0,1 -63,24,1,0 -63,25,0,1 -63,26,-1,-1 -63,27,1,1 -63,28,0,0 -63,29,0,1 -63,30,2,1 -63,31,0,2 +63,4,1,-1 +63,5,0,0 +63,6,0,1 +63,7,-1,-3 +63,8,0,0 +63,9,1,2 +63,10,0,-1 +63,11,1,0 +63,12,1,1 +63,13,0,0 +63,14,0,1 +63,15,1,3 +63,16,-1,-3 +63,17,-2,1 +63,18,-1,-1 +63,19,0,-2 +63,20,-2,0 +63,21,2,0 +63,22,0,-1 +63,23,0,-1 +63,24,1,1 +63,25,0,-1 +63,26,1,1 +63,27,-2,0 +63,28,2,2 +63,29,0,0 +63,30,0,1 +63,31,2,3 diff --git a/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_moving.hex b/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_moving.hex index 5e1fb28..ce6075b 100644 --- a/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_moving.hex +++ b/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_moving.hex @@ -1,2049 +1,2049 @@ // 2048 packed 32-bit samples (Q:I) for $readmemh -0000FFFE -FFFEFFFF -0000FFFF FFFEFFFE -FFFF0000 -FFFFFFFF -00000000 -FFFE0000 -00000001 -0001FFFF -00000001 -0002FFFF -FFFFFFFF -00000001 -00000000 -FFFF0000 -00000000 -00000001 0000FFFF +FFFF0000 +FFFFFFFE +0001FFFF +FFFFFFFF +FFFF0001 +FFFFFFFF +00000000 +00000001 +00010000 +FFFF0002 +0001FFFF +00010001 +00010003 +00030001 +FFFEFFFE +00010000 +FFFF0000 +0000FFFF +00000000 +FFFFFFFF +FFFF0000 +FFFFFFFE 00000002 00010000 -FFFFFFFF -00000000 -0000FFFE -00000001 -00010001 -00000001 -00000001 -00010001 +FFFF0000 00020001 -00000000 -00030002 -0000FFFE -FFFFFFFE -FFFEFFFF -FFFFFFFF -00000000 -FFFF0001 -FFFFFFFE -00000000 FFFE0000 -0001FFFF -FFFF0001 +00030001 +FFFF0000 +00030002 0000FFFF +FFFFFFFF +00000000 +0000FFFE +FFFF0000 +FFFF0000 00000000 FFFEFFFF -FFFE0000 -FFFF0000 -00000002 -00010002 -00020001 +00000001 00010001 00000000 -0001FFFF -00010002 -00000000 -00020000 -FFFF0001 -0001FFFF -00000001 +00000002 +00010000 +00010000 00000000 00020001 -00020000 -00010000 -FFFEFFFF -0000FFFD -FFFF0000 -FFFFFFFD -FFFFFFFF -FFFFFFFE -FFFE0000 -0002FFFD -FFFE0000 -FFFE0000 -FFFFFFFF -FFFE0001 -FFFEFFFF -FFFF0001 -FFFF0000 -FFFEFFFE +0000FFFF +FFFDFFFE +00000000 +FFFDFFFF 00000001 -00020003 -FFFF0000 -00030003 +00000000 +00000000 +00010000 +0000FFFF +FFFF0002 +00000000 FFFF0001 -00030002 -00000000 -00000003 -00000000 +00000001 00040000 +00000000 +00030000 +FFFEFFFF +00000000 +FFFFFFFF +FFFFFFFE FFFF0001 -0004FFFF +0000FFFF +FFFF0000 +FFFE0000 +00020001 +00000000 +00010001 +00010002 +0001FFFF 00000001 +00010000 +00020000 +FFFDFFFF +FFFF0001 +0000FFFE +FFFFFFFF +00010000 +FFFF0000 +00000000 +00000001 +0001FFFF +FFFF0001 +0000FFFE +00010003 +0001FFFE +FFFF0002 +00000000 +00040001 +0000FFFE +00000000 +FFFE0000 +00000000 +00000001 +00000000 +0000FFFF +00000000 +00000000 +00000000 +00000000 +00000000 +00000001 +00000000 +00020001 +00000000 +FFFFFFFE +00000000 +FFFFFFFE +0000FFFF +FFFFFFFF +FFFF0000 +FFFFFFFF +FFFE0000 +00010000 +00000002 +00010000 +00000003 +0001FFFF +00010002 +0001FFFF +00020002 +FFFF0000 +FFFFFFFE +00010000 +00000001 +FFFF0000 +0000FFFE +00010000 +FFFF0001 +FFFF0000 +00010000 +00010000 +00000001 +FFFF0000 +00000000 +00010000 +00010001 +FFFE0000 +0000FFFE +00000000 +FFFEFFFF +0001FFFF +00000001 +FFFF0000 +00000000 +00000000 +00000000 +00000000 +0000FFFF +00010001 +00000001 +00010000 +00020002 +0000FFFF +FFFDFFFD +FFFF0000 +FFFFFFFF +00000000 +FFFE0001 +FFFFFFFF +00010000 +00000001 +FFFF0001 +00010000 +00010001 +00000000 +00020001 +00010001 +00030000 +FFFEFFFF +FFFF0000 +0000FFFE +FFFEFFFE +00000000 +00000000 +FFFF0000 +FFFF0000 +00000001 +00010000 +00000000 +00000002 +00020000 +00000000 +00010002 +00030000 +FFFFFFFF +00000001 +FFFFFFFE +00000001 +0000FFFE +FFFF0001 +0000FFFE +FFFF0001 +0001FFFF +00000001 +00010000 +00000001 +00000000 +00010001 +00000000 +00010001 +FFFD0000 +FFFFFFFE +FFFEFFFF +0002FFFE +FFFF0001 +0000FFFD +FFFD0001 +0002FFFF +FFFD0000 +00030002 +FFFEFFFF +00020002 +FFFFFFFF +00020003 +FFFF0001 +00060001 +FFFF0000 +00010000 +FFFF0000 +00010000 +FFFF0000 +00010000 +FFFF0000 +00010000 +FFFF0000 +00010000 +FFFF0000 +00010000 +FFFF0000 +00010000 +FFFF0000 +00010000 +FFFEFFFE +0000FFFF +FFFF0000 +00000000 +0000FFFE +00010001 +FFFF0000 +00010002 +FFFEFFFE +00020001 +FFFF0000 +00000000 +0000FFFE +00010003 +FFFF0000 +00030002 +00000000 +FFFE0000 +0000FFFE +0001FFFE +00000001 +FFFEFFFF +0000FFFE +00000001 +00000000 +00000000 +00000002 +00010002 +0000FFFF +00000001 +00000002 +0002FFFF +0000FFFD +FFFE0000 +FFFF0000 +0000FFFF +00000002 +00000000 +FFFFFFFF +00020001 +0000FFFF +FFFE0000 +00010000 +0000FFFF +00000002 +00000000 +00010001 +00020001 +FFFB0000 0003FFFF FFFF0000 -00040002 -FFFE0000 -0001FFFF -FFFFFFFE -0000FFFF -00000000 -FFFEFFFE -0000FFFF -0000FFFC -00000001 -FFFFFFFE -FFFE0000 FFFFFFFF -00000000 -FFFE0001 -FFFFFFFF -FFFCFFFF -00020000 -FFFF0001 -00010002 -00000001 -00000000 -00020002 -00000001 -00000004 -0000FFFF -00010002 -00020000 -00010001 -00000000 -0002FFFF -00010001 -00040001 -FFFBFFFF -0001FFFE -FFFDFFFB -FFFFFFFF -FFFFFFFE FFFF0000 -FFFEFFFE -0000FFFE -00000000 -FFFEFFFE -FFFF0001 -FFFEFFFF -FFFF0001 -FFFF0002 -0000FFFF -FFFCFFFF -00030001 -FFFD0000 -00010003 -FFFF0001 00010000 -00010002 -00020000 -00000002 -00020000 -00000000 +FFFF0000 +FFFD0000 +00030000 +FFFF0001 +FFFF0000 00030001 -00000001 -00010001 +FFFF0000 +00010000 +FFFF0000 00050000 -00000003 -00080001 -FFFFFFFD -FFFEFFFD -FFFDFFFC -FFFDFFFE -0000FFFF -FFFC0000 -00010000 FFFEFFFF -FFFF0000 -00020000 -FFFC0002 -00020000 -FFFE0001 +00010000 +FFFFFFFF 00000000 -00010000 -00000001 -0001FFFF -00000001 +0000FFFF 00010002 -FFFF0000 -00000003 -FFFE0000 -00010000 -FFFEFFFF -00010000 -00000002 -00020000 +FFFFFFFF 00020002 -00020001 -00060000 +FFFEFFFF 00010000 -00040001 FFFFFFFF -FFFDFFFC -0001FFFF -FFFF0000 -FFFFFFFF -FFFEFFFF -0001FFFF -FFFEFFFF -FFFFFFFF -FFFE0004 -0001FFFF +00000000 +0000FFFF 00010002 FFFFFFFF -00000000 -0001FFFF -FFFF0001 -FFFFFFFF -00010002 -0001FFFF -FFFF0000 -FFFFFFFF -FFFE0003 -0001FFFF -00000003 -FFFFFFFF -00040002 -0001FFFF -00010002 -FFFFFFFF -00040002 -0001FFFF -00030001 -0000FFFF -FFFE0000 -00000000 -FFFE0000 -00000001 -00020000 -00000000 -00020000 -0000FFFF -FFFE0000 -00000000 -FFFE0000 -00000001 -00020000 -00000000 -00020000 -0000FFFF -FFFE0000 -00000000 -FFFE0000 -00000001 -00020000 -00000000 -00020000 -0000FFFF -FFFE0000 -00000000 -FFFE0000 -00000001 -00020000 -00000000 -00020000 -FFFEFFFF -FFFDFFFB -00000000 +00020002 FFFDFFFD +FFFF0001 +0000FFFD +FFFFFFFF 00010000 +FFFD0000 +0001FFFF +FFFF0002 +0001FFFF +FFFF0001 +00000001 +FFFFFFFF +00010000 +00010002 +FFFFFFFF +00070004 +FFFFFFFF +00000000 +FFFFFFFF +FFFF0000 +00010000 +00000000 +FFFF0000 +00010000 +FFFF0001 +00000000 +0001FFFF +FFFF0000 +00010000 +00000000 +00010002 +00010000 +FFFFFFFE +00000000 +FFFEFFFF +00000000 +FFFFFFFE +FFFF0000 +00000001 +FFFF0000 +00010000 +00000000 +00020003 +00000000 +00010000 +00010000 +00000001 +00010000 +FFFEFFFF +FFFFFFFF +00000000 +FFFEFFFF +00010000 +FFFF0000 +00000000 +FFFFFFFF +FFFE0001 +00030001 +00000000 +FFFE0001 +00030000 +FFFF0000 +00000000 +00050001 +FFFEFFFE +0000FFFE +FFFF0000 +FFFF0000 +00000001 +00000000 +0001FFFF +00010002 +FFFE0000 +0000FFFE +00010000 +FFFF0000 +00000001 +00000000 +00030001 +00010002 +FFFEFFFE +FFFF0000 +FFFFFFFD +FFFE0002 +0000FFFF +00000000 +00010000 +FFFFFFFE +00000002 +0001FFFE +FFFF0003 +0002FFFE +FFFE0001 +00040002 +FFFD0000 +00050002 +FFFEFFFF +FFFFFFFE +0001FFFF +FFFE0000 +00000000 +FFFFFFFF +00010000 +00000001 +FFFE0001 +0001FFFE +00010001 +00000000 +00000000 +00010001 +00010000 +00020003 +0000FFFF +FFFDFFFE +00000000 +0000FFFE +FFFF0000 +FFFF0001 +00000000 +0000FFFF +00000001 +FFFF0000 +00000000 +00000002 +00010000 +00010001 +00000000 +00040001 +FFFFFFFE +0000FFFF +FFFE0000 +0000FFFE 00000001 FFFFFFFF 0000FFFF -FFFF0000 -FFFCFFFF -00000000 -FFFFFFFF -FFFFFFFE -FFFF0001 -FFFF0000 -FFFCFFFF -00000001 -00030003 -00000000 -00010001 +FFFEFFFF 00010000 00000001 +00000000 +00000002 +00000001 00010001 -00020003 +00020001 +00020001 FFFF0000 +FFFFFFFC +00000000 +FFFDFFFF +00010000 +FFFE0002 +00000000 +00010000 +FFFF0000 +00010000 +00000000 +FFFF0001 +00010000 +00020002 +00000000 +00030000 +FFFFFFFF +FFFFFFFF +0000FFFF +FFFE0001 +0000FFFE +00010002 +FFFFFFFF +00000000 +0001FFFF +FFFF0001 +0000FFFF +00000001 +00000000 +00010002 +0001FFFF +00020002 +FFFFFFFF +FFFFFFFF +0000FFFF +FFFEFFFF +00010000 +FFFF0000 +00000000 +00000000 +FFFF0001 +0001FFFF +00000001 +0000FFFF +00010000 +00010002 +00000000 +00020002 +FFFFFFFF +FFFEFFFF +00000000 +FFFEFFFE +00000000 +00000001 +FFFEFFFE +00000001 +00010001 +FFFEFFFF +00000000 +00020002 +00000000 +00000001 +00020002 0004FFFF -00000000 -FFFFFFFF -00030002 -00010001 -00010000 -00060003 FFFEFFFF -0000FFFE -FFFF0000 -FFFDFFFF -0001FFFF -FFFE0001 -00010000 -0000FFFE -00000000 -0000FFFE -FFFF0000 -00000000 -FFFEFFFF -FFFF0000 -00010000 -FFFCFFFF -0002FFFF -00000002 -FFFF0000 -00030001 -FFFF0003 -0002FFFF -00010000 -00000002 -0000FFFE -00000002 -FFFF0000 -00000000 -00020003 -00010000 -00010000 -00040001 -FFFFFFFE -FFFDFFFC 0000FFFF -FFFCFFFC +0000FFFF +00000002 +FFFEFFFF +00020001 +0000FFFF +00020002 +FFFEFFFF +0000FFFF +0000FFFF +00000002 +FFFEFFFF +00020001 +0000FFFF +00020002 +FFFCFFFF +0001FFFE +00000000 +FFFF0000 +FFFE0000 +0001FFFF +FFFDFFFF +FFFF0000 +00000001 +00010000 +00000000 +00030002 +FFFE0000 +0001FFFF +00030001 +00030002 +FFFEFFFF +0000FFFE +FFFF0000 +FFFFFFFD +00010000 +FFFF0000 +FFFFFFFF +FFFF0000 +00000001 +00000000 +00010000 +FFFF0001 +00010000 +00010002 +00010001 +00030002 +FFFF0000 +0000FFFF +00010000 +00000001 +FFFF0000 +0000FFFF +00010000 +00000001 +FFFF0000 +0000FFFF +00010000 +00000001 +FFFF0000 +0000FFFF +00010000 +00000001 +0000FFFE +FFFE0000 +0000FFFF +FFFFFFFF 00000000 FFFE0000 00000000 +FFFEFFFE +00000002 +00020000 00000001 -FFFF0000 00010001 -FFFFFFFF 00000000 +00020000 +00000000 +00020002 +FFFD0000 +FFFFFFFD +0001FFFF +FFFE0002 0000FFFF -FFFF0001 -00000000 -FFFFFFFF -FFFF0002 0001FFFE 00000001 -00000000 -00020000 -FFFE0002 +FFFF0000 +FFFF0000 +00010001 +0001FFFF 00000000 00000001 FFFF0000 -00010001 -00010001 -00000000 00020001 -00050001 -00000000 -00050003 -FFFEFFFD -0000FFFF -FFFEFFFC -FFFEFFFE -0000FFFE -FFFEFFFF -FFFFFFFE -00000000 -FFFF0000 +00030002 FFFD0000 00010000 -FFFB0000 -00030000 -FFFC0002 -00020000 +0000FFFF FFFDFFFF -00000001 -0000FFFF -00000002 -00000000 -00000002 -00020003 -FFFF0002 -00020002 -FFFF0002 -0003FFFE -00010002 -0003FFFE -00010000 -00040000 -00000000 -00050003 -0000FFFE -FFFDFFFE -FFFFFFFF -FFFF0000 -0000FFFF -FFFFFFFD -FFFF0000 -FFFFFFFF -00000001 -0000FFFF -FFFF0000 -00000000 -00000000 -0001FFFF -FFFFFFFF -FFFF0001 -00000000 -00010002 -0001FFFF -FFFF0000 -00000001 -FFFF0001 -00010000 -FFFFFFFF -00000001 -00020001 -00010002 00020000 -00000000 -00010003 -00010001 -00030001 -FFFFFFFD -FFFEFFFE -0000FFFD -FFFDFFFE -0001FFFF -FFFC0000 -0000FFFE -FFFE0001 -0000FFFE -00000003 -0000FFFF -00010002 -00000000 +FFFF0000 FFFFFFFF -0000FFFF -FFFEFFFE +00010000 +FFFF0000 +00010000 +00000001 +FFFF0001 +00020000 +FFFF0000 00010001 -00000000 +00030000 +FFFCFFFD 00000001 -00010002 -FFFFFFFF -00000002 -00000000 -00000001 -00000000 -00020003 -0000FFFF -00010002 +0003FFFC +FFFB0003 0000FFFE -00050003 +00000001 0000FFFF +00000000 +0000FFFF +00000001 +FFFFFFFE +00010005 +0000FFFE +00000001 +0002FFFF 00040004 -FFFC0000 -0000FFFD -FFFEFFFE -FFFFFFFE -0001FFFF -FFFF0001 -FFFFFFFE -FFFF0002 -0000FFFE -FFFF0000 -00010000 -FFFFFFFF -00010001 -FFFFFFFF -00000000 -FFFE0000 -00000000 -00000001 -00000000 -FFFF0000 -0001FFFF -FFFF0001 -00010000 -00010000 -00000002 -0001FFFE -00010002 -FFFFFFFF -00010001 -00030003 -00000002 -00060002 -FFFFFFFE -0000FFFF -FFFEFFFE -0001FFFD -FFFE0000 -0000FFFE -FFFE0001 -FFFFFFFC -00000002 -FFFFFFFF -00020002 -FFFEFFFF -00020000 -FFFEFFFF -0002FFFF -FFFE0000 -0001FFFE -00000001 -FFFEFFFE -FFFF0001 -FFFE0000 -00000002 -FFFE0001 -FFFF0002 -00000002 -00010001 -00020002 -00020003 -00020000 -00020001 -0002FFFF -00040002 -FFFDFFFF -0001FFFF -FFFFFFFE -FFFD0000 -0001FFFF -FFFF0000 -00000001 -0001FFFD -FFFF0001 -FFFFFFFE -0000FFFE -FFFF0001 FFFEFFFD -00000000 -FFFF0001 -FFFEFFFF -00010001 -FFFF0001 -00010000 -00010000 -00010001 -00010000 -00000001 -00010003 -FFFFFFFF -00010002 -00000000 -FFFFFFFF -00040003 -00000000 -00010001 -00040001 -FFFFFFFE -FFFDFFFC -00000000 -FFFCFFFD -00000000 -FFFF0000 -FFFF0000 -FFFFFFFE -00000000 -00000001 -0000FFFF -00020002 -FFFEFFFE -0000FFFF -00000000 -FFFDFFFD -00010002 -00010000 -00000000 -00020001 -00000000 -FFFD0000 -00010000 -FFFF0002 -00000000 -00020003 -00000001 -00000000 -00020002 -00040001 -00000000 -00050003 -FFFFFFFE -FFFFFFFE -FFFEFFFE -FFFFFFFE -FFFE0000 -00000000 -00000000 -FFFFFFFF -00010000 -FFFF0000 -FFFFFFFF -FFFF0002 -FFFE0000 -00020002 -FFFE0000 -00030001 -FFFF0002 -FFFFFFFE -00020002 -FFFFFFFE -00020000 -00000000 -00000000 -FFFFFFFF -00010000 -FFFF0000 -00010001 -FFFF0002 -00020000 -00020002 -00020000 -00030001 -FFFEFFFC -FFFFFFFE -FFFCFFFC -FFFF0000 -FFFC0000 -0003FFFF -FFFD0000 -0002FFFE -FFFE0000 -FFFF0001 -FFFEFFFE -FFFF0002 -0000FFFE -FFFF0000 -00000000 -FFFEFFFF -00000002 -00010000 -00000002 -00010000 -00000000 -00010003 -FFFF0000 -00020002 -00000002 -0001FFFD -00020004 -0001FFFE -00000002 -00050002 -00000000 -00060001 -FFFAFFFA -0000FFFE -FFFCFFFB FFFDFFFE -FFFE0000 -0003FFFE -FFF90002 -0005FFFD -FFFC0000 -FFFD0001 -00010001 -FFFD0001 -00020000 -FFFFFFFF -00010001 -FFFFFFFF +0004FFFF +FFF60002 0002FFFE -00000002 -FFFE0001 -FFFF0000 -FFFE0000 -00010002 -00010004 -00010001 -00000000 -0003FFFF -00010003 -FFFF0001 -00020000 -00050001 -00010001 -000B0003 -FFF3FFF6 -FFFEFFFC -FFFD0000 -0001FFF9 -FFF00003 -0031FFF1 -FFC90019 -0016FFF3 -FFF60001 -0003FFFB -FFFE0003 -FFFFFFFC -FFFEFFFF -00020001 -00000001 -FFFF0003 -FFFF0000 -00020000 -FFFD0000 -FFFD0001 -00000003 FFFFFFFF +00020004 +FFFEFFFF +00000001 +FFFFFFFE +00000001 +00020004 +00000000 00010001 +00020000 0006FFFF -FFFC0001 -00050005 -FFFC0001 -00070002 -FFFE0003 -00060003 -00020001 -00110003 -FFFCFFFB -FFFEFFFF -FFFDFFFA -FFFDFFFE -FFFC0001 -0005FFFC -FFFAFFFF -0003FFFE -00000001 -FFFBFFFF -FFFF0003 -FFFFFFFD -FFFE0001 -00000000 -0000FFFF -FFFDFFFF -0000FFFF -00000003 -FFFF0000 -00010002 -FFFE0001 -00030002 -FFFE0001 -00030002 -00000001 -0003FFFF +FFF7FFFB +FFFD0002 +0016FFEA +FFE80028 +0005FFF2 +FFFC0002 00010003 -FFFF0003 -00040001 -00040002 -00040001 -00090001 -0000FFFD -FFFCFFFF -0000FFFE -FFFDFFFF -00000001 -0003FFFE FFFF0000 -0002FFFC -FFFEFFFF -FFFD0001 -FFFEFFFF -FFFD0000 -00000001 -0000FFFE -00000000 -FFFEFFFF -00000001 -00000001 +00030001 +FFFDFFFE +FFFE0004 00000002 -FFFF0001 -00000001 00010002 -00010000 -00020004 -0002FFFF -FFFFFFFF -00020001 -FFFF0000 -00000001 -00040002 -00000000 -00060001 -0000FFFF -FFFFFFFE -0000FFFF -FFFFFFFF -0000FFFF -FFFEFFFE -0000FFFF -FFFEFFFF -00000000 +00020002 +0003FFFF +00090002 +FFF8FFF7 FFFC0000 -00000000 -FFFDFFFF -00000000 -FFFD0000 -00000000 -FFFEFFFF -00000001 -00010002 -00000001 -00010001 -00000001 -00020002 -00000001 -00020001 -00000000 -00040000 -00000000 -00030001 -00000000 -00030000 -00000000 -00020001 -FFFEFFFD -FFFE0000 -FFFEFFFE -FFFCFFFE -00000002 -0001FFFF -00000000 -00020001 -0000FFFD -FFFD0000 -FFFFFFFF -FFFFFFFE -FFFD0002 -0002FFFF -FFFE0000 -00000000 -00020001 -FFFE0000 -00020002 -00000002 -00000000 -00030001 -00000000 -0002FFFF -00000001 -FFFF0000 -00010001 -FFFD0002 -00030000 -00020001 -00020000 -00040000 -FFFF0000 -00000000 -FFFFFFFF -00000000 -0000FFFF -FFFF0000 -0000FFFF -FFFF0000 -00010000 -00000000 -00010001 -00000000 -00000001 -00010000 -00000001 -00010000 -FFFF0000 -00000000 -FFFFFFFF -00000000 -0000FFFF -FFFF0000 -0000FFFF -FFFF0000 -00010000 -00000000 -00010001 -00000000 -00000001 -00010000 -00000001 -00010000 -FFFD0000 -0000FFFE -0000FFFF -FFFFFFFC -00010000 -FFFFFFFF -00000001 -0000FFFF -FFFF0000 -00000000 -0000FFFF -FFFEFFFE -00000000 -FFFEFFFE -00000001 -FFFDFFFE -00010000 -00000002 -0000FFFF -FFFF0004 -00010000 -00010001 -00000001 -00020001 -FFFF0000 -00000000 -0000FFFF -00000002 -00020000 -00020002 -00000001 -00050002 -0000FFFE -FFFDFFFC -FFFFFFFF -FFFEFFFE -FFFF0001 -FFFFFFFF -00000000 -FFFF0000 -0000FFFF -FFFE0002 -0000FFFF -00000000 -FFFF0000 -0002FFFF -FFFF0000 -00010001 -00000000 -FFFF0000 -00010001 -FFFEFFFE -00010001 -FFFF0001 -00000000 -00010002 -0000FFFF -00020002 -00000001 -00000000 -00010002 -00040001 -00010000 -00030001 -FFFFFFFF -FFFFFFFE -0000FFFF -FFFD0000 -0001FFFF -FFFF0002 -0000FFFF -00010000 -FFFF0000 -FFFFFFFD -00000000 -FFFDFFFF -00010000 -FFFF0001 -00000000 -0001FFFF -FFFF0001 -0001FFFE -00000001 -FFFF0000 -00010001 -00010002 -00000001 -00030000 -FFFF0000 -0001FFFF -00000000 -FFFF0001 -00010000 -00010003 -00000000 -00030001 -FFFEFFFE -FFFFFFFE -FFFFFFFE -FFFEFFFD -00000000 -00000001 -0000FFFF -00000001 -00000000 -0000FFFE -FFFE0000 -0000FFFE -FFFEFFFD -FFFE0002 -FFFFFFFF -FFFE0000 -00000002 -00010000 -00010002 -00000001 -00020000 -00000001 -00000001 -00020001 -FFFE0000 -00000000 -00020000 -FFFE0000 -00040003 -00020000 -00010001 -00040002 -FFFF0000 -0000FFFD -FFFF0000 -0000FFFE -FFFF0000 -FFFFFFFE -FFFF0000 -0000FFFF -FFFF0000 -FFFE0000 -FFFF0000 -FFFF0000 -FFFF0000 -FFFF0001 -FFFF0000 -00000000 -FFFF0000 -00020003 -FFFF0000 -00020002 -FFFF0000 -00030002 -FFFF0000 -00020001 -FFFF0000 -00040000 -FFFF0000 -00030000 -FFFF0000 -0003FFFF -FFFF0000 -00020000 -FFFEFFFE -00000002 -FFFEFFFC -00000002 -0000FFFC -FFFF0001 -0001FFFD -FFFF0001 -0000FFFF -FFFE0001 -0000FFFF -FFFE0001 -0000FFFE -FFFD0001 -0000FFFE -FFFD0000 -00020000 -00000000 -00020002 -00000000 -00000002 -00010001 -FFFF0001 -00010001 -0000FFFF -00020001 -0000FFFF -00020001 -00000000 -00030001 -00000000 -00030002 -FFFCFFFF -0001FFFF -FFFDFFFD -FFFFFFFF -0001FFFF -FFFDFFFE -0001FFFF -0000FFFC -FFFF0001 -FFFFFFFE -00000001 -FFFEFFFF -00010001 -FFFF0001 -FFFF0000 -FFFEFFFF -00000001 -FFFF0001 -0001FFFF -FFFF0001 -0001FFFF -00010002 -FFFF0001 -00000004 -0001FFFF -00010002 -0002FFFF -00000001 -00010001 -0003FFFF -00010004 -00060001 -FFFFFFFE -FFFFFFFF -FFFEFFFD -FFFFFFFE -FFFFFFFF -00000000 -00000000 -FFFF0000 -00000000 -0000FFFF -FFFD0001 -0001FFFF -FFFDFFFF -FFFE0001 -00000000 -FFFDFFFF -00010002 -00010001 -00020003 -00010002 -00010001 -00000000 -00000000 -00010000 -00000000 -00000001 -0003FFFF -FFFF0001 -00030001 -0002FFFF -00000000 -00030001 -FFFF0000 -FFFFFFFE -0000FFFF -FFFEFFFF -00010000 -FFFF0001 -00000001 -00010000 -FFFF0000 -0001FFFF -0000FFFF -FFFFFFFF -00010000 -FFFEFFFF -00000001 -00000000 -FFFF0000 -00010002 -0000FFFF -00000001 -00010000 -0001FFFF -00000001 -00010000 -FFFF0000 -FFFF0001 -0000FFFF -FFFF0001 -00010000 -00020001 -00000001 -00020000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -0000FFFD -FFFEFFFE -FFFFFFFE -FFFEFFFE -FFFF0001 -FFFF0000 -FFFFFFFF -00000001 -FFFFFFFE -00000002 -FFFE0000 -00000000 -FFFF0002 -00030000 -FFFF0000 -00020001 -0000FFFF -FFFEFFFE -00010002 -FFFEFFFE -00010003 -FFFF0000 -00010001 -00000001 -0001FFFE -00000002 -00020000 -00000000 -00010002 -00030000 -00010000 -00020001 -FFFEFFFE -FFFFFFFF -FFFEFFFE -00000000 -FFFEFFFF -00020003 -FFFFFFFE -00000002 -0000FFFF -FFFFFFFE -0000FFFF -00000000 -FFFFFFFF -FFFF0001 -00000000 -FFFFFFFE -00000002 -0001FFFF -00000002 -00000000 -00000001 -0002FFFF -FFFF0002 -0004FFFE -FFFE0001 -00010000 -FFFE0001 -00000000 -FFFF0001 -00050001 -FFFE0000 -00050002 -FFFEFFFD -FFFE0000 -FFFDFFFD -FFFE0000 -FFFE0001 -00020000 -FFFEFFFF -00020001 -0000FFFD -FFFD0000 -0000FFFF -FFFE0000 -FFFE0001 -00010000 -FFFEFFFF -00000000 -00020001 -FFFE0000 -00030003 -FFFE0000 -00020001 -00020000 -00020001 -0002FFFF -00000001 -FFFF0000 -00000001 -FFFE0000 -00020001 -00030000 -00020001 -00040000 -FFFFFFFF -FFFEFFFA -FFFFFFFF -FFFDFFFD -00000000 -FFFDFFFF -00000000 -FFFFFFFD -00000000 -FFFD0002 -0000FFFF -FFFF0002 -FFFEFFFE -00010000 -FFFE0000 -FFFEFFFF -00010001 -00000002 -00010001 -00010001 -00000000 -FFFF0001 -00000000 -FFFF0003 -00000000 -00050002 -00000001 -00030000 -00020002 -00030000 -00020000 -00040001 -FFFFFFFE -FFFFFFFE -FFFFFFFE -FFFFFFFF -FFFFFFFF -00000001 -FFFFFFFF -FFFF0001 -0000FFFF -FFFF0001 -00010000 -00010000 -0000FFFF -FFFEFFFF -0001FFFF -FFFD0000 -0001FFFE -00010004 -FFFFFFFE -00010003 -FFFFFFFF -00000001 -FFFFFFFF -00010001 -00000001 -00010001 -00010000 -FFFF0002 -0002FFFF -00020003 -0001FFFF -00030002 -FFFEFFFE -FFFFFFFE -FFFFFFFE -FFFDFFFC -00000002 -FFFFFFFF -FFFF0001 -FFFF0001 -0001FFFE -FFFF0002 -0001FFFF -00000000 -FFFE0001 -00030001 -FFFEFFFF -00020001 -00000000 -FFFFFFFE -00010002 -FFFFFFFE -00000000 -FFFFFFFF -0001FFFF -FFFF0001 -00010000 -FFFF0002 -FFFF0001 -00000002 -00020001 -00030001 -00020001 -00040001 -FFFFFFFE -FFFEFFFD -FFFDFFFD -FFFEFFFF -0000FFFF -00000001 -0000FFFE -00010000 -FFFE0000 -0000FFFE -FFFD0002 -FFFFFFFF -FFFFFFFF -FFFE0001 -FFFEFFFF -FFFF0000 -00010002 -00000001 -00030003 -00000001 -00000001 -00020001 -00000002 -00010000 -00020000 -FFFE0000 -0003FFFE -FFFF0001 -00010001 -00040001 -00020001 -00030000 -FFFCFFFD -0000FFFE -FFFDFFFD -FFFEFFFF -0001FFFD -FFFE0001 -0001FFFD -FFFFFFFF -FFFFFFFF -0000FFFF -FFFF0001 -FFFE0002 -0000FFFF -00000003 -FFFEFFFE -00030001 -FFFE0001 -0002FFFE -00010001 -0000FFFF -FFFF0001 -00020003 -FFFD0001 -00030001 -FFFFFFFF -00020001 -FFFFFFFD -00000004 -0000FFFF -00040005 -00000000 -00070003 -FFFD0000 -0001FFFF -FFFEFFFF -0000FFFF -FFFFFFFE -00000000 -FFFEFFFE -0000FFFE -00000000 -0000FFFF -00000001 -00000000 -FFFE0000 -00020000 -FFFE0001 -0000FFFF -FFFF0000 -00010001 -FFFEFFFF -00020001 -FFFF0000 -00000000 -00000000 -00000002 -00000000 -00020001 -00000001 -00020000 -00000002 -00020000 -00000001 -00040001 -FFFEFFFF -0001FFFF -FFFEFFFF -0000FFFF -00000000 -FFFF0001 -0000FFFD -FFFF0002 -FFFFFFFE -00000001 -00000000 -00000000 -00000000 -FFFEFFFF -FFFFFFFF -FFFDFFFF -00020001 -FFFF0001 -00020001 -00000001 -00000000 -0001FFFF -00000003 -0001FFFE -00010002 -0000FFFF -00000000 -00000000 -00000000 -00020001 -00010001 -00030001 -FFFF0000 -00000000 -FFFFFFFE -00000000 -0000FFFF -FFFFFFFF -0000FFFF -FFFFFFFF -00000000 -00000000 -FFFE0000 -00000000 -FFFFFFFF -FFFF0000 -FFFFFFFF -FFFF0000 -00010000 -00000000 -00010002 -00000000 -00000001 -00010001 -00000001 -00010001 -00000000 -00000000 -00020000 -00000000 -00010001 -00010000 -00010001 -00010000 -FFFEFFFE -FFFEFFFE -FFFFFFFE -FFFDFFFC -00000000 -0000FFFF -0000FFFF -FFFF0001 -0001FFFF -FFFEFFFF -00000000 -00010000 -FFFE0001 -00000000 -00000001 -FFFEFFFD -00000002 -00000000 -FFFF0000 -00010004 -0000FFFE -00000003 -0000FFFF -0001FFFF -00010001 -0000FFFF -00020002 -FFFD0000 -00020001 -00040002 -00000001 -00060003 +00170001 +FFD0000A +000FFFF5 FFFC0000 -0000FFFC -00000000 -FFFCFFFB +FFFC0002 +FFFE0001 00020001 -FFFEFFFE -00000000 -FFFF0001 -0000FFFE -FFFE0002 -00000000 -0001FFFF -FFFF0001 -00020000 -00000000 -00000001 -00000000 -0000FFFE -00000000 -0000FFFF -0000FFFF -FFFE0002 -00000000 -FFFF0001 -00000002 -00020000 -00000000 -FFFF0003 +FFFE0000 +00010001 +00020002 0003FFFF 00020004 00000000 -00060001 -FFFEFFFE -FFFFFFFF -0000FFFE -FFFDFFFE -0000FFFF -FFFFFFFF +0008FFFF FFFDFFFE FFFFFFFE -FFFF0001 -0000FFFF -00000001 -00010000 -FFFD0000 -00010001 -FFFE0000 -FFFE0000 00020000 -FFFF0001 -00000000 -00010002 -00000001 -FFFFFFFF -00030002 +FFFC0003 +0000FFFE +0000FFFE +00010003 +0000FFFE FFFF0000 -00010001 -00020001 -00000001 00010000 -00030000 +00000000 +00000001 +00000000 +00000000 00010001 -00020000 00040002 -FFFD0000 -0000FFFC -00000000 -FFFCFFFE -0002FFFE -FFFD0001 -00000000 -0000FFFE -FFFF0001 -0000FFFF -00000000 -00000001 -FFFFFFFE -00020001 -00000000 -FFFF0000 -00010000 -FFFEFFFE -00000000 -0000FFFE -00000002 -FFFF0001 -00000000 -00000004 -FFFFFFFF -00020003 -00000000 -0000FFFF -00030002 -00020001 -00000000 -00050002 -00000000 -FFFDFFFC -00000000 -FFFFFFFF -00000000 -00000000 -00000000 -FFFFFFFF -00000000 +FFFCFFFA FFFE0000 -00000000 -0000FFFF -00000000 -FFFDFFFF -00000000 -FFFD0000 -00000000 -00030004 -00000000 -00010001 -00000000 -00000000 -00000000 -00010001 -00000000 00020000 -00000000 -00000001 -00000000 -00030001 -00000000 -00030000 -FFFEFFFD -FFFF0000 -FFFEFFFB -FFFE0000 -00000000 -FFFEFFFF -00000000 -FFFF0000 -00010001 -FFFFFFFF -00010001 -FFFFFFFE -FFFF0000 -FFFEFFFF -FFFFFFFF -FFFDFFFF -00020001 -00010000 -00000003 -00020000 -FFFE0000 -00020001 -FFFE0000 -00010000 -FFFF0001 -00010001 -00010001 -00010002 -00030000 -00020001 -00030001 -00030001 -FFFBFFFE -00010001 -FFFFFFFC -FFFB0000 -0002FFFF -FFFD0001 -00000000 -FFFF0002 -FFFFFFFF -0001FFFF -FFFF0001 -0001FFFB -FFFF0003 -0001FFFE -FFFE0001 -00000000 -FFFF0000 -00010001 -FFFFFFFE -00030002 -FFFEFFFF -0001FFFF -00000002 -0001FFFC -FFFF0003 -0001FFFF -FFFF0001 -00010003 -0001FFFF -00050002 -FFFE0001 -00080002 -FFFDFFFF -0001FFFE -FFFDFFFE -0000FFFF -FFFFFFFF -00000000 -0001FFFE -0001FFFD -FFFF0000 -FFFEFFFE -FFFF0000 -FFFD0000 -0000FFFF -FFFE0002 -0000FFFD -FFFCFFFF -00030001 -FFFD0000 -00030002 -FFFE0001 -00010001 -00020002 -FFFF0002 -00010003 -00010000 -00000000 -00010000 -00010000 -00000001 -00040000 -00000003 -00060001 -FFFDFFFE -0001FFFF -FFFDFFFD -FFFFFFFE -FFFF0001 -00010001 -FFFD0001 -00020001 -FFFE0000 -0001FFFF -00010000 -0000FFFE -FFFF0000 -00010001 -FFFEFFFF -00010001 -FFFF0000 -0001FFFF -FFFF0001 -00010000 -FFFFFFFF -00010001 -FFFFFFFF -00020001 -FFFE0002 -0001FFFF -FFFF0002 -00000000 -00030000 -00010001 -00020001 -00030001 -FFFDFFFE -00000001 -0000FFFD -FFFEFFFE -00000000 -FFFFFFFE -00000000 -FFFEFFFE -00010001 -FFFEFFFE -00000002 -0000FFFC -FFFE0001 -00010000 -FFFEFFFF -FFFD0000 -00010000 -00000001 -0000FFFF -00000004 -0000FFFE -FFFD0002 -00020000 -FFFE0000 -00010001 -00020000 -00000002 -00020002 -00020001 -00030000 -00000001 -00070002 -FFFDFFFF -FFFEFFFC -FFFFFFFD -FFFCFFFE -00010000 -FFFFFFFF -FFFEFFFF -00000000 -FFFEFFFE -00000003 -0000FFFF -00000001 -00010000 -FFFF0000 -0000FFFE -FFFD0000 -00010001 -0000FFFE -00010003 -0000FFFE -00010000 -FFFD0003 -00020001 -00000002 -00000002 -0002FFFF -00000001 -0000FFFF -00010000 -00050002 -00000002 -00070002 -0000FFFB -FFFD0000 -FFFFFFFC -FFFDFFFF -00000000 -FFFFFFFF -0001FFFF -FFFF0000 -00000001 -FFFFFFFF -00000003 -FFFFFFFE -00000001 -00010000 -FFFFFFFF -00010001 -0000FFFF -FFFF0000 -00010000 -FFFFFFFF -00000002 -0001FFFF -FFFF0003 -00010000 -00000001 -00010001 -00000001 -00010000 -00000001 -00030002 -0001FFFF -00030003 -FFFFFFFE -FFFEFFFD -FFFEFFFD -FFFEFFFD -FFFFFFFF -FFFDFFFE -00000000 -FFFFFFFE -00000001 -00000000 -00010001 -FFFE0000 -00010001 -FFFD0001 -00000000 -FFFDFFFF -FFFF0000 -00020003 -FFFEFFFF -00020003 -FFFFFFFF -00010002 -00000000 -FFFF0002 -00020001 -00000000 -00030003 -00020000 -00010001 +FFF7FFFE 0005FFFF -00000000 -00050001 -FFFFFFFF -FFFFFFFD -FFFEFFFD -FFFFFFFF -FFFFFFFF -FFFD0000 -FFFFFFFF -FFFFFFFF -00000001 -0000FFFF -FFFF0001 -0000FFFF -0000FFFF -FFFD0001 -0000FFFF -FFFD0000 +FFFF0000 +FFFE0001 +00020000 +FFFE0000 +00020000 +FFFE0000 +00010002 0001FFFF -00010003 -00000001 -00010001 +00010004 +0002FFFF +00060004 +FFFFFFFF +FFFDFFFE +0002FFFE +FFFE0001 +FFFF0000 +FFFF0000 +00010000 +00000000 FFFF0001 +0001FFFE +00000002 +00000001 +FFFF0000 00030000 +00010000 +00020002 +FFFEFFFF +FFFFFFFF +0000FFFF +FFFC0000 +0001FFFF +0000FFFF FFFF0001 +FFFF0001 +0000FFFF 00010001 00000001 +00000002 +0001FFFF +00000001 +00010003 +0005FFFD +FFFEFFFF +0000FFFF +00000000 +00000001 +FFFFFFFE +FFFFFFFF +00010000 +FFFF0001 +0000FFFF +0000FFFF +00020002 +00000001 +FFFF0000 +0001FFFF +00010002 +00010001 +FFFEFFFF +FFFF0000 +FFFEFFFF +00010000 +FFFF0000 +00010000 +FFFFFFFF +00010001 +0000FFFF +FFFF0000 +00000001 +0001FFFE +FFFF0002 +00010000 +FFFF0001 +00050001 +FFFE0000 +0000FFFF +0000FFFF +00000001 +FFFFFFFF +FFFFFFFF +0001FFFF +FFFF0001 +00000000 +0000FFFF +00020001 +00000001 +FFFF0001 +0001FFFF +00010001 +00010001 +FFFDFFFF +0001FFFF +00000000 +FFFE0001 +0001FFFD +00000001 +00000002 +FFFFFFFF +0001FFFF +FFFF0001 +00000000 +0000FFFF +00010001 +0000FFFF +00000002 +00030001 +FFFEFFFF +0001FFFF +FFFE0000 +0001FFFE +FFFF0000 +0000FFFF +FFFEFFFF +FFFFFFFF +00000001 +00010001 +00000000 +00010002 +FFFF0000 +00020001 00000001 00030001 +FFFEFFFE +FFFF0000 +0000FFFF +FFFEFFFD 00000001 -00020001 -0003FFFF -00020001 -00030000 FFFFFFFF 00000000 -FFFFFFFE +FFFCFFFF +00020002 +00010000 +00000001 +00020003 +0000FFFF +00010001 +00000000 +00040001 FFFF0000 00000000 +FFFFFFFF +00000000 +0000FFFF +FFFF0000 +0000FFFF +FFFF0000 +00010000 +00000000 +00010001 00000000 00000001 00010000 +00000001 +00010000 +FFFEFFFD +FFFDFFFF +0001FFFE +FFFD0001 +FFFF0000 +00010000 +00010000 +00000001 +FFFEFFFF +00010001 +0001FFFE +FFFD0003 +00010000 +00010000 +00010000 +00060003 +0000FFFE +FFFF0000 +0000FFFE FFFF0000 00000000 +FFFFFFFF +00000001 +FFFFFFFF +00000002 +00010000 +00000002 +00010000 +00000000 +00010001 +0000FFFF +00010001 +FFFFFFFF +00000000 +00000000 +FFFFFFFF +0000FFFF +00000000 +FFFF0000 +FFFF0000 +0001FFFF +00000000 +00000002 +00010001 +0000FFFF +00000000 +00010002 +00010000 +FFFEFFFF +0000FFFF +FFFFFFFF +FFFFFFFE +00010001 +FFFFFFFF +00010001 +FFFFFFFF +0000FFFF +00000001 +FFFFFFFF +FFFF0002 +00010001 +00010001 +00010001 +00030001 +0000FFFF +00000000 +FFFF0000 +00000000 +00000001 +00000000 +00010000 +00000000 +0000FFFF +00000000 +FFFF0000 +00000000 +00000001 +00000000 +00010000 +00000000 +FFFF0000 +FFFFFFFE +00000000 +FFFF0001 +0000FFFF +0001FFFF +FFFF0000 +FFFEFFFF +00010000 +00010002 +00000000 +0001FFFF +00000001 +FFFF0001 +00010000 +00020001 +FFFEFFFF +0000FFFF +FFFF0000 +FFFFFFFF +FFFF0000 +00020001 +FFFDFFFE +00010000 +00000001 +0000FFFF +FFFF0000 +00010001 +FFFF0000 +00020001 +00010002 +00030000 +FFFFFFFE +00000000 +FFFE0000 +00000000 +0000FFFF +FFFF0000 +00010000 +FFFF0000 +0001FFFE +00000000 +00000002 +00000000 +00000001 +00010000 +00010002 +00010000 +0000FFFF +FFFE0000 +00000000 +0000FFFF +00000001 +00000000 +00000000 +00020001 +0000FFFF +FFFE0000 +00000000 +0000FFFF +00000001 +00000000 +00000000 +00020001 +FFFFFFFD +FFFEFFFF +0000FFFE +FFFF0002 +FFFF0001 +FFFFFFFD +00020001 +FFFE0000 +FFFF0001 +0002FFFF +00000002 +00010000 +FFFF0001 +00010001 +0002FFFF +00020002 +FFFF0000 0000FFFE FFFF0000 0000FFFF +FFFF0000 +FFFF0000 +FFFF0000 00000000 +FFFF0000 +00020002 +FFFF0000 +00020001 +FFFF0000 +00030000 +FFFF0000 +00020000 +FFFEFFFD +FFFF0000 +FFFEFFFF +0000FFFE +00000001 +FFFFFFFF +FFFE0000 +0002FFFF +FFFE0001 +00010002 +0000FFFF +00000002 +00000001 +0001FFFF +00000002 +00060001 +FFFF0000 +FFFFFFFF +00010000 +00010001 +FFFF0000 +FFFFFFFF +00010000 +00010001 +FFFF0000 +FFFFFFFF +00010000 +00010001 +FFFF0000 +FFFFFFFF +00010000 +00010001 +FFFEFFFF +FFFFFFFC +00000001 +FFFDFFFE +0001FFFE FFFF0001 +FFFF0001 +FFFF0000 +0000FFFF +00010002 +00000001 +00010000 +00010000 +00010001 +00010001 +00030002 +FFFDFFFD +FFFF0000 +FFFE0000 +FFFFFFFC +FFFF0002 +00010000 +FFFEFFFF +00000002 +00010001 +FFFF0000 +00000000 +00030002 +FFFF0000 +00010000 +00000001 +00060000 +FFFDFFFF +0000FFFE +00010000 +FFFFFFFF +0000FFFF +FFFFFFFE +00010002 +FFFF0000 +FFFFFFFF +00000000 +00010000 +FFFF0003 +0000FFFF +00010000 +00010002 +00030002 +FFFF0000 +FFFFFFFE +00010000 +00000001 +FFFF0000 +0000FFFE +00010000 +FFFF0001 +FFFF0000 +00010000 +00010000 +00000001 +FFFF0000 +00000000 +00010000 +00010001 +00000000 +FFFFFFFF +00000000 +00000000 +00000000 +0000FFFF +00000000 +FFFF0000 +00000000 +00010001 +00000000 +00000000 +00000000 +00000001 +00000000 +00010000 +00000000 +FFFEFFFF +00000000 +00000000 +00000000 +00000001 +00000000 +00020000 +00000000 +FFFEFFFF +00000000 +00000000 +00000000 +00000001 +00000000 +00020000 +FFFFFFFF +00010000 +FFFE0000 +00010000 +FFFF0000 +00010000 +FFFEFFFF +00010000 +FFFF0001 +00010000 +00000000 +00010000 +FFFF0000 +00010000 +00000001 +00010000 +FFFDFFFE +0000FFFF +FFFEFFFE +00000000 +FFFEFFFF +00020001 +FFFE0000 +FFFF0001 +00010000 +0000FFFF +00000004 +00000000 +0000FFFF +00020001 +00000002 +0005FFFF +FFFFFFFE +0000FFFF +FFFE0000 +0000FFFD +00000002 +FFFFFFFF +00020000 +FFFE0000 +0001FFFE +00000001 +FFFE0000 +00000001 +00000002 +00010001 +00020000 +00020002 +FFFFFFFF +00000000 +00000000 +FFFFFFFF +00000000 +00000000 +FFFEFFFE +FFFF0000 +00010001 +00000000 +00000000 +00010001 +00000000 +00000000 +00020002 +00010000 +FFFFFFFF +FFFFFFFF +0000FFFF +FFFFFFFF +0000FFFF +00000001 +0000FFFF +FFFF0000 +0001FFFF +FFFF0001 +0000FFFF +FFFF0003 +0000FFFF +00020003 +0000FFFF +00030002 +FFFEFFFE +FFFFFFFD +FFFF0001 +FFFFFFFF +FFFEFFFE +00020002 +FFFE0001 +0000FFFE +00000000 +00010001 +FFFF0001 +00010001 +00000000 +00020000 +00000001 +00040002 +FFFEFFFD +FFFFFFFE +0000FFFE +FFFCFFFF +00010000 +FFFF0001 +FFFE0000 +0000FFFF +00000003 +0001FFFE +00000002 +00000001 +00010000 +00010003 +00020000 +00040001 +FFFF0000 +0000FFFF +00000000 +0000FFFE +00000000 +FFFFFFFF +00000000 +FFFEFFFF +00010000 +00000001 +00000000 +00000002 +00000000 +00010001 +00000000 +00020001 +FFFF0000 +FFFEFFFC +00000000 +FFFE0000 00010000 FFFF0001 00000000 -00010000 +00000000 FFFF0000 00020000 00000000 -00000001 +FFFE0000 00010000 -FFFF0000 +00010003 +00000000 +00040000 00000000 00000000 -FFFF0000 -00020001 00000000 -00010001 -00010000 -FFFEFFFF -00010000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FFFFFFFE FFFEFFFE +00000001 +FFFE0000 +0000FFFF +0002FFFF +FFFF0001 +FFFF0000 +0001FFFE +00000002 +00000001 +0000FFFE +00000001 +00000001 +00010001 +00030002 +FFFEFFFF +0000FFFF +00000000 +FFFE0000 +0001FFFE +00000000 +FFFF0002 +0000FFFF +0000FFFF +00000001 +00000000 +00000000 +00010000 +00000000 +00010002 +00020001 +FFFDFFFE +FFFF0000 +FFFFFFFE +FFFFFFFD +00000001 +FFFD0000 +00000000 +FFFE0000 +00010000 +FFFF0002 +00010000 +FFFF0003 +00020001 +0001FFFE +00000002 +00080000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +0000FFFF +FFFFFFFF +00000000 +0000FFFE +FFFF0000 +FFFF0000 +00000000 +FFFEFFFF +00000001 +00010001 +00000000 +00000002 +00010000 +00010000 +00000000 +00020001 0000FFFF FFFF0000 +FFFFFFFF 00010000 -FFFEFFFF +FFFF0000 +FFFF0000 +FFFF0000 00010000 -FFFEFFFF +00000001 +FFFF0000 +00010001 00010000 -FFFF0001 +00010000 +FFFF0000 +00010000 +00010000 +FFFFFFFF +FFFFFFFF +00000000 +00000000 +0000FFFF +0000FFFF +FFFF0000 +FFFE0000 +0001FFFF +00010001 +00000002 +00000000 +0000FFFF +00000001 +00010002 +00020000 +FFFFFFFF +FFFFFFFF +FFFF0000 0001FFFF FFFE0000 00010000 -FFFDFFFE -00000000 -00000001 -00010000 -00000002 -00020001 FFFF0000 -00010000 -00000001 -00010000 -00000001 -00010000 -FFFFFFFF +FFFEFFFF +FFFF0001 +00030001 +FFFF0000 00010001 00000000 00010000 +FFFF0000 +00040001 +0000FFFD +FFFF0000 +0000FFFF +0000FFFF +FFFEFFFF +FFFF0001 +0000FFFF +FFFE0000 +00000001 00010002 +0000FFFF +00000003 +0002FFFF +00010001 +0000FFFF +00020002 +00000000 +FFFF0000 +00000000 +00010000 +00000000 +FFFF0000 +00000000 +00010000 +00000000 +FFFF0000 +00000000 +00010000 +00000000 +FFFF0000 +00000000 +00010000 +00000000 +FFFFFFFF +00000000 +00000000 +00000000 +0000FFFF +00000000 +FFFF0000 +00000000 +00010001 +00000000 +00000000 +00000000 +00000001 +00000000 +00010000 +FFFFFFFE +00000000 +00000000 +FFFEFFFE +00010002 +00000000 +00000000 +00020002 +FFFFFFFE +00000000 +00000000 +FFFEFFFE +00010002 +00000000 +00000000 +00020002 +FFFEFFFF +00000000 +0000FFFE +00000000 +00000000 +FFFD0000 +00010000 +FFFDFFFE +00020001 +00000000 +00000002 +00000000 +00000000 +00030000 +FFFF0000 +00030002 +FFFEFFFE +FFFFFFFF +FFFF0000 +FFFFFFFE +00010001 +FFFF0001 +FFFFFFFE +00010001 +00000000 +FFFFFFFF +FFFF0000 +00010000 +00010001 +FFFF0001 +00030002 +00030001 +FFFFFFFE +FFFE0000 +FFFFFFFE +00000002 +00000000 +FFFEFFFF 00020000 +FFFEFFFF +00010000 +00000000 +FFFF0002 +0002FFFE +00000002 +00000001 +00000000 +00040001 +FFFFFFFD +00000000 +FFFFFFFF +FFFF0001 +FFFFFFFF +00000001 +FFFF0000 +FFFF0000 +0001FFFF +00000002 +FFFFFFFF +00010001 +00010001 +00000001 +0003FFFE +00010002 +FFFEFFFF +00000000 +FFFF0000 +FFFFFFFE +00000001 +0000FFFF +FFFFFFFF +FFFE0000 +00020001 +00000000 +00010000 +00010002 +0000FFFF +00000001 +00010001 +00020000 +FFFF0000 +FFFFFFFE +00000000 +FFFF0001 +0000FFFF +0001FFFF +FFFF0000 +FFFEFFFF +00010000 +00010002 +00000000 +0001FFFF +00000001 +FFFF0001 +00010000 +00020001 +FFFEFFFD +FFFE0001 +0000FFFC +FFFDFFFF +00010001 +FFFEFFFE +FFFF0001 +0001FFFF +00000001 +00000001 +00000002 +00010001 +00010001 +00000000 +00010001 +00050001 +FFFFFFFF +00000000 +0000FFFF +FFFFFFFF +00000000 +FFFEFFFF +00000000 +FFFEFFFE +00010001 +00000000 +00000001 +00010001 +00000000 +00020001 +00000000 +00020002 +FFFCFFFF +0001FFFF +00000000 +FFFC0000 +0002FFFF +00000001 +00000000 +00010000 +0000FFFF +FFFF0001 +00000000 +FFFEFFFE +00020003 +0000FFFF +00000000 +00050002 +00000000 +FFFFFFFF +00000000 +FFFF0000 +00000000 +00010001 +00000000 +00010000 +00000000 +FFFFFFFF +00000000 +FFFF0000 +00000000 +00010001 +00000000 +00010000 +FFFEFFFF +0000FFFF +FFFF0000 +FFFFFFFF +0001FFFE +FFFF0001 +00000000 +00000001 +0000FFFF +0000FFFF +00010002 +FFFFFFFF +00010000 +00010001 +00000002 +00020001 +FFFDFFFD +FFFF0000 +0000FFFE +FFFDFFFF +00010001 +FFFEFFFE +FFFF0003 +0000FFFD +00010001 +FFFF0002 +00000000 +00010001 +00010001 +00000000 +0001FFFF +00060003 +FFFFFFFF +FFFEFFFE +FFFF0000 +0000FFFF +00010001 +FFFF0000 +00010000 +00010001 +FFFFFFFF +00000000 +FFFF0000 +0000FFFF +00010001 +FFFF0002 +00010000 +00030001 +FFFCFFFE +FFFEFFFE +0002FFFF +FFFCFFFF +FFFF0001 +0000FFFE +FFFF0001 +FFFD0001 +00000000 +00020002 +0000FFFF +00000003 +00010001 +0000FFFE +00030001 +00070001 +FFFFFFFE +FFFEFFFE +FFFF0000 +00000000 +FFFFFFFE +00000001 +00000000 +FFFD0000 +00010000 +00000000 +00010002 +FFFE0000 +00010000 +00020001 +00000002 +00050000 +FFFCFFFE +00000001 +FFFFFFFE +FFFEFFFE +00010000 +FFFF0001 +0000FFFE +00000004 +0002FFFE +FFFE0001 +00010000 +00000000 +00010000 +FFFF0001 +00000000 +00060002 +00000000 +FFFFFFFF +00000000 +FFFF0000 +00000000 +00010001 +00000000 +00010000 +00000000 +FFFFFFFF +00000000 +FFFF0000 +00000000 +00010001 +00000000 +00010000 +FFFEFFFF +FFFEFFFE +00010000 +FFFE0000 +0001FFFF +FFFF0000 +00000001 +0000FFFF +00000001 +00000000 +FFFF0000 +0002FFFE +00010001 +FFFF0002 +0000FFFF +00040003 +FFFEFFFE +FFFEFFFF +00020000 +FFFC0001 +FFFF0000 +0002FFFF +00010001 +0001FFFF +00000000 +FFFEFFFF +00000000 +00000001 +FFFF0002 +0002FFFF +0001FFFF +00030003 +FFFEFFFE +FFFFFFFF +FFFF0001 +FFFE0000 +FFFF0000 +00030000 +FFFD0000 +0002FFFF +00000000 +FFFF0001 +FFFFFFFF +00000000 +FFFF0002 +00030000 +00010000 +00040001 +0000FFFE +FFFE0001 +0000FFFE +00000001 +0000FFFF +FFFE0000 +0000FFFF +00000000 +00000000 +00000001 +00000000 +00020001 +0000FFFF +00000002 +0000FFFF +00020002 +FFFF0000 +0000FFFF +00000000 +FFFF0000 +0000FFFF +00000000 +FFFF0000 +FFFFFFFF +00010000 +00000001 +00000000 +00010000 +00000001 +00000000 +00010000 +00010001 +FFFFFFFE +FFFEFFFE +FFFF0000 +0000FFFC +FFFF0001 +FFFD0000 +00010000 +FFFD0000 +00010000 +00000002 +FFFF0000 +00020004 +00010001 +00010000 +00010000 +00050000 +FFFEFFFE +00000001 +0000FFFF +FFFFFFFF +FFFFFFFF +00000001 +0000FFFF +FFFD0001 +00020000 +0000FFFF +00000003 +00010001 +0001FFFF +0000FFFF +00000003 +0003FFFF +FFFFFFFD +0000FFFF +FFFF0002 +FFFF0000 +0000FFFF +00000000 +FFFF0001 +FFFFFFFF +0001FFFF +00000001 +FFFF0000 +00010000 +00000001 +00000000 +00030001 +00010001 +FFFF0000 +0000FFFF +00000000 +FFFFFFFF +00010000 +00000001 +00000000 +00010001 +FFFF0000 +0000FFFF +00000000 +FFFFFFFF +00010000 +00000001 +00000000 +00010001 +FFFEFFFE +0000FFFE +0000FFFF +FFFD0001 +0000FFFE +00000003 +FFFE0000 +00010000 +00000000 +00000000 +0000FFFF +FFFF0001 +00020000 +00000003 +0002FFFE +00030002 +0000FFFE +FFFE0000 +0000FFFF +FFFEFFFF +00000001 +0000FFFF +00000000 +00000000 +00000000 +00000000 +00000001 +0000FFFF +00000001 +00020001 +00000000 +00020002 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FFFF0000 +FFFEFFFD +00010000 +FFFF0001 +FFFF0000 +0001FFFF +00010000 +00000001 +FFFF0000 +0000FFFF +00010000 +FFFF0001 +FFFF0000 +00010001 +00010000 +00020001 +0000FFFE +FFFEFFFF +FFFF0000 +0000FFFF +FFFF0001 +00000000 +00010000 +FFFDFFFF +00000000 +00020001 +FFFF0000 +00000001 +00010001 +00000000 +00010000 +00030001 +FFFDFFFF +0001FFFE +FFFFFFFF +FFFE0000 +0000FFFE +00000002 +FFFF0000 +FFFF0000 +00010001 +FFFF0000 +00010001 +0000FFFE +00020002 +00000000 +00010000 +00030002 diff --git a/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_stationary.csv b/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_stationary.csv index 6be93f8..5ae0335 100644 --- a/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_stationary.csv +++ b/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_stationary.csv @@ -1,2049 +1,2049 @@ range_bin,doppler_bin,out_i,out_q -0,0,-2,0 -0,1,-1,-2 -0,2,-1,0 -0,3,-2,-2 -0,4,0,-1 +0,0,-2,-2 +0,1,-1,0 +0,2,0,-1 +0,3,-2,-1 +0,4,-1,1 0,5,-1,-1 -0,6,0,0 -0,7,0,-2 -0,8,1,0 -0,9,-1,1 -0,10,1,0 -0,11,-1,2 -0,12,-1,-1 -0,13,1,0 -0,14,0,0 -0,15,0,-1 -0,16,0,0 -0,17,1,0 -0,18,-1,0 -0,19,2,0 -0,20,0,1 +0,6,1,-1 +0,7,-1,-1 +0,8,0,0 +0,9,1,0 +0,10,0,1 +0,11,2,-1 +0,12,-1,1 +0,13,1,1 +0,14,3,1 +0,15,1,3 +0,16,-2,-2 +0,17,0,1 +0,18,0,-1 +0,19,-1,0 +0,20,0,0 0,21,-1,-1 -0,22,0,0 -0,23,-2,0 -0,24,1,0 -0,25,1,1 -0,26,1,0 -0,27,1,0 -0,28,1,1 -0,29,1,2 -0,30,0,0 +0,22,0,-1 +0,23,-2,-1 +0,24,2,0 +0,25,0,1 +0,26,0,-1 +0,27,1,2 +0,28,0,-2 +0,29,1,3 +0,30,0,-1 0,31,2,3 -1,0,-2,0 -1,1,-2,-1 -1,2,-1,-2 -1,3,-1,-1 -1,4,0,0 -1,5,1,-1 -1,6,-2,-1 -1,7,0,0 -1,8,0,-2 -1,9,-1,1 -1,10,1,-1 -1,11,-1,0 -1,12,0,0 -1,13,-1,-2 -1,14,0,-2 -1,15,0,-1 -1,16,2,0 -1,17,2,1 -1,18,1,2 -1,19,1,1 -1,20,0,0 -1,21,-1,1 -1,22,2,1 -1,23,0,0 -1,24,0,2 -1,25,1,-1 -1,26,-1,1 -1,27,1,0 -1,28,0,0 -1,29,1,2 -1,30,0,2 -1,31,0,1 +1,0,-1,0 +1,1,-1,-1 +1,2,0,0 +1,3,-2,0 +1,4,0,-1 +1,5,0,-1 +1,6,0,0 +1,7,-1,-2 +1,8,1,0 +1,9,1,1 +1,10,0,0 +1,11,2,0 +1,12,0,1 +1,13,0,1 +1,14,0,0 +1,15,1,2 +1,16,-1,0 +1,17,-2,-3 +1,18,0,0 +1,19,-1,-3 +1,20,1,0 +1,21,0,0 +1,22,0,0 +1,23,0,1 +1,24,-1,0 +1,25,2,-1 +1,26,0,0 +1,27,1,-1 +1,28,1,0 +1,29,0,4 +1,30,0,0 +1,31,0,3 2,0,-1,-2 -2,1,-3,0 -2,2,0,-1 -2,3,-3,-1 -2,4,-1,-1 -2,5,-2,-1 -2,6,0,-2 -2,7,-3,2 -2,8,0,-2 -2,9,0,-2 -2,10,-1,-1 -2,11,1,-2 -2,12,-1,-2 -2,13,1,-1 -2,14,0,-1 -2,15,-2,-2 -2,16,1,0 -2,17,3,2 -2,18,0,-1 -2,19,3,3 -2,20,1,-1 -2,21,2,3 +2,1,0,0 +2,2,-1,-1 +2,3,-2,-1 +2,4,1,-1 +2,5,-1,0 +2,6,0,-1 +2,7,0,-2 +2,8,1,2 +2,9,0,0 +2,10,1,1 +2,11,2,1 +2,12,-1,1 +2,13,1,0 +2,14,0,1 +2,15,0,2 +2,16,-1,-3 +2,17,1,-1 +2,18,-2,0 +2,19,-1,-1 +2,20,0,1 +2,21,0,-1 2,22,0,0 -2,23,3,0 -2,24,0,0 -2,25,0,4 -2,26,1,-1 -2,27,-1,4 -2,28,1,0 -2,29,-1,3 -2,30,0,-1 -2,31,2,4 -3,0,0,-2 -3,1,-1,1 -3,2,-2,-1 -3,3,-1,0 -3,4,0,0 -3,5,-2,-2 +2,23,1,0 +2,24,-1,1 +2,25,1,-1 +2,26,-2,0 +2,27,3,1 +2,28,-2,1 +2,29,2,-1 +2,30,0,0 +2,31,1,4 +3,0,-2,0 +3,1,0,0 +3,2,0,-2 +3,3,0,0 +3,4,1,0 +3,5,0,0 3,6,-1,0 -3,7,-4,0 -3,8,1,0 -3,9,-2,-1 -3,10,0,-2 -3,11,-1,-1 -3,12,0,0 -3,13,1,-2 -3,14,-1,-1 -3,15,-1,-4 -3,16,0,2 -3,17,1,-1 -3,18,2,1 -3,19,1,0 -3,20,0,0 -3,21,2,2 -3,22,1,0 -3,23,4,0 -3,24,-1,0 -3,25,2,1 -3,26,0,2 -3,27,1,1 -3,28,0,0 -3,29,-1,2 -3,30,1,1 -3,31,1,4 -4,0,-1,-5 -4,1,-2,1 -4,2,-5,-3 -4,3,-1,-1 -4,4,-2,-1 -4,5,0,-1 -4,6,-2,-2 -4,7,-2,0 -4,8,0,0 -4,9,-2,-2 -4,10,1,-1 -4,11,-1,-2 -4,12,1,-1 -4,13,2,-1 -4,14,-1,0 -4,15,-1,-4 -4,16,1,3 -4,17,0,-3 -4,18,3,1 -4,19,1,-1 -4,20,0,1 -4,21,2,1 -4,22,0,2 -4,23,2,0 -4,24,0,2 +3,7,0,0 +3,8,0,0 +3,9,0,0 +3,10,0,0 +3,11,0,0 +3,12,1,0 +3,13,0,0 +3,14,1,2 +3,15,0,0 +3,16,-2,-1 +3,17,0,0 +3,18,-2,-1 +3,19,-1,0 +3,20,-1,-1 +3,21,0,-1 +3,22,-1,-1 +3,23,0,-2 +3,24,0,1 +3,25,2,0 +3,26,0,1 +3,27,3,0 +3,28,-1,1 +3,29,2,1 +3,30,-1,1 +3,31,2,2 +4,0,0,-1 +4,1,-2,-1 +4,2,0,1 +4,3,1,0 +4,4,0,-1 +4,5,-2,0 +4,6,0,1 +4,7,1,-1 +4,8,0,-1 +4,9,0,1 +4,10,0,1 +4,11,1,0 +4,12,0,-1 +4,13,0,0 +4,14,0,1 +4,15,1,1 +4,16,0,-2 +4,17,-2,0 +4,18,0,0 +4,19,-1,-2 +4,20,-1,1 +4,21,1,0 +4,22,0,-1 +4,23,0,0 +4,24,0,0 4,25,0,0 -4,26,1,3 -4,27,1,0 +4,26,0,0 +4,27,-1,0 4,28,1,1 -4,29,0,5 -4,30,3,0 -4,31,1,8 -5,0,-3,-1 -5,1,-3,-2 -5,2,-4,-3 -5,3,-2,-3 -5,4,-1,0 -5,5,0,-4 -5,6,0,1 -5,7,-1,-2 -5,8,0,-1 -5,9,0,2 -5,10,2,-4 -5,11,0,2 -5,12,1,-2 -5,13,0,0 -5,14,0,1 -5,15,1,0 -5,16,-1,1 -5,17,1,0 -5,18,2,1 -5,19,0,-1 -5,20,3,0 -5,21,0,-2 -5,22,0,1 -5,23,-1,-2 -5,24,0,1 -5,25,2,0 -5,26,0,2 -5,27,2,2 -5,28,1,2 -5,29,0,6 -5,30,0,1 -5,31,1,4 +4,29,1,0 +4,30,0,1 +4,31,2,2 +5,0,-1,0 +5,1,-3,-3 +5,2,0,-1 +5,3,-1,-1 +5,4,0,0 +5,5,1,-2 +5,6,-1,-1 +5,7,0,1 +5,8,1,0 +5,9,1,-1 +5,10,0,1 +5,11,1,1 +5,12,0,0 +5,13,1,2 +5,14,1,1 +5,15,0,3 +5,16,-1,-2 +5,17,0,-1 +5,18,-2,0 +5,19,-2,-2 +5,20,0,0 +5,21,0,0 +5,22,0,-1 +5,23,0,-1 +5,24,1,0 +5,25,0,1 +5,26,0,0 +5,27,2,0 +5,28,0,2 +5,29,0,0 +5,30,2,1 +5,31,0,3 6,0,-1,-1 -6,1,-4,-3 -6,2,-1,1 -6,3,0,-1 -6,4,-1,-1 -6,5,-1,-2 -6,6,-1,1 -6,7,-1,-2 -6,8,-1,-1 -6,9,4,-2 -6,10,-1,1 -6,11,2,1 -6,12,-1,-1 -6,13,0,0 -6,14,-1,1 -6,15,1,-1 -6,16,-1,-1 -6,17,2,1 -6,18,-1,1 -6,19,0,-1 -6,20,-1,-1 -6,21,3,-2 -6,22,-1,1 -6,23,3,0 -6,24,-1,-1 -6,25,2,4 -6,26,-1,1 -6,27,2,1 +6,1,1,0 +6,2,-2,-1 +6,3,1,0 +6,4,-2,0 +6,5,1,-1 +6,6,-2,0 +6,7,1,-1 +6,8,-1,1 +6,9,1,0 +6,10,0,1 +6,11,1,0 +6,12,0,0 +6,13,1,1 +6,14,0,0 +6,15,1,1 +6,16,0,-3 +6,17,-2,-1 +6,18,-1,-2 +6,19,-2,2 +6,20,1,-1 +6,21,-3,0 +6,22,1,-3 +6,23,-1,2 +6,24,0,-3 +6,25,2,3 +6,26,-1,-2 +6,27,2,2 6,28,-1,-1 -6,29,2,4 -6,30,-1,1 -6,31,1,3 -7,0,-1,0 -7,1,0,-2 -7,2,0,0 -7,3,0,-2 -7,4,1,0 -7,5,0,2 -7,6,0,0 -7,7,0,2 -7,8,-1,0 -7,9,0,-2 -7,10,0,0 -7,11,0,-2 -7,12,1,0 -7,13,0,2 -7,14,0,0 -7,15,0,2 -7,16,-1,0 -7,17,0,-2 -7,18,0,0 -7,19,0,-2 -7,20,1,0 -7,21,0,2 -7,22,0,0 -7,23,0,2 -7,24,-1,0 -7,25,0,-2 -7,26,0,0 -7,27,0,-2 -7,28,1,0 -7,29,0,2 -7,30,0,0 -7,31,0,2 -8,0,-1,-2 -8,1,-5,-3 -8,2,0,0 -8,3,-3,-3 -8,4,0,1 -8,5,1,0 -8,6,-1,-1 -8,7,-1,0 -8,8,0,-1 -8,9,-1,-4 -8,10,0,0 -8,11,-1,-1 -8,12,-2,-1 -8,13,1,-1 -8,14,0,-1 -8,15,-1,-4 -8,16,1,0 -8,17,3,3 -8,18,0,0 -8,19,1,1 -8,20,0,1 -8,21,1,0 -8,22,1,1 -8,23,3,2 -8,24,0,-1 -8,25,-1,4 -8,26,0,0 -8,27,-1,-1 -8,28,2,3 -8,29,1,1 -8,30,0,1 -8,31,3,6 -9,0,-1,-2 -9,1,-2,0 +6,29,3,2 +6,30,1,-1 +6,31,1,6 +7,0,0,-1 +7,1,0,1 +7,2,0,-1 +7,3,0,1 +7,4,0,-1 +7,5,0,1 +7,6,0,-1 +7,7,0,1 +7,8,0,-1 +7,9,0,1 +7,10,0,-1 +7,11,0,1 +7,12,0,-1 +7,13,0,1 +7,14,0,-1 +7,15,0,1 +7,16,-2,-2 +7,17,-1,0 +7,18,0,-1 +7,19,0,0 +7,20,-2,0 +7,21,1,1 +7,22,0,-1 +7,23,2,1 +7,24,-2,-2 +7,25,1,2 +7,26,0,-1 +7,27,0,0 +7,28,-2,0 +7,29,3,1 +7,30,0,-1 +7,31,2,3 +8,0,0,0 +8,1,0,-2 +8,2,-2,0 +8,3,-2,1 +8,4,1,0 +8,5,-1,-2 +8,6,-2,0 +8,7,1,0 +8,8,0,0 +8,9,0,0 +8,10,2,0 +8,11,2,1 +8,12,-1,0 +8,13,1,0 +8,14,2,0 +8,15,-1,2 +8,16,-3,0 +8,17,0,-2 +8,18,0,-1 +8,19,-1,0 +8,20,2,0 +8,21,0,0 +8,22,-1,-1 +8,23,1,2 +8,24,-1,0 +8,25,0,-2 +8,26,0,1 +8,27,-1,0 +8,28,2,0 +8,29,0,0 +8,30,1,1 +8,31,1,2 +9,0,0,-5 +9,1,-1,3 9,2,0,-1 -9,3,-1,-3 -9,4,-1,1 -9,5,1,-2 -9,6,0,1 -9,7,-2,0 -9,8,0,0 -9,9,-2,0 +9,3,-1,-1 +9,4,0,-1 +9,5,0,1 +9,6,0,-1 +9,7,0,-3 +9,8,0,3 +9,9,1,-1 9,10,0,-1 -9,11,0,0 -9,12,-1,-2 -9,13,0,-1 -9,14,0,1 -9,15,-1,-4 -9,16,-1,2 -9,17,2,0 -9,18,0,-1 -9,19,1,3 -9,20,3,-1 -9,21,-1,2 -9,22,0,1 -9,23,2,0 -9,24,-2,0 -9,25,2,0 -9,26,0,-1 +9,11,1,3 +9,12,0,-1 +9,13,0,1 +9,14,0,-1 +9,15,0,5 +9,16,-1,-2 +9,17,0,1 +9,18,-1,-1 +9,19,0,0 +9,20,-1,0 +9,21,2,1 +9,22,-1,-1 +9,23,2,2 +9,24,-1,-2 +9,25,0,1 +9,26,-1,-1 9,27,0,0 -9,28,3,2 -9,29,0,1 -9,30,0,1 -9,31,1,4 -10,0,-2,-1 -10,1,-4,-3 -10,2,-1,0 -10,3,-4,-4 -10,4,0,0 -10,5,0,-2 -10,6,0,0 -10,7,1,0 -10,8,0,-1 -10,9,1,1 -10,10,-1,-1 -10,11,0,0 -10,12,-1,0 -10,13,1,-1 -10,14,0,0 -10,15,-1,-1 -10,16,2,-1 -10,17,-2,1 -10,18,1,0 -10,19,0,0 -10,20,0,2 -10,21,2,-2 -10,22,0,0 -10,23,1,0 -10,24,0,-1 -10,25,1,1 -10,26,1,1 -10,27,0,0 -10,28,1,2 -10,29,1,5 -10,30,0,0 -10,31,3,5 -11,0,-3,-2 -11,1,-1,0 -11,2,-4,-2 -11,3,-2,-2 -11,4,-2,0 -11,5,-1,-2 -11,6,-2,-1 -11,7,0,0 -11,8,0,-1 -11,9,0,-3 -11,10,0,1 -11,11,0,-5 -11,12,0,3 -11,13,2,-4 -11,14,0,2 -11,15,-1,-3 -11,16,1,0 -11,17,-1,0 -11,18,2,0 -11,19,0,0 -11,20,2,0 -11,21,3,2 -11,22,2,-1 -11,23,2,2 -11,24,2,-1 -11,25,-2,3 -11,26,2,1 -11,27,-2,3 -11,28,0,1 -11,29,0,4 +9,28,-1,0 +9,29,2,1 +9,30,-1,-1 +9,31,2,2 +10,0,-3,-3 +10,1,1,-1 +10,2,-3,0 +10,3,-1,-1 +10,4,0,1 +10,5,0,-3 +10,6,-1,1 +10,7,2,-1 +10,8,-1,1 +10,9,1,-1 +10,10,1,0 +10,11,-1,-1 +10,12,0,1 +10,13,2,1 +10,14,-1,-1 +10,15,4,7 +10,16,-1,-1 +10,17,0,0 +10,18,-1,-1 +10,19,0,-1 +10,20,0,1 +10,21,0,0 +10,22,0,-1 +10,23,0,1 +10,24,1,-1 +10,25,0,0 +10,26,-1,1 +10,27,0,-1 +10,28,0,1 +10,29,0,0 +10,30,2,1 +10,31,0,1 +11,0,-2,-1 +11,1,0,0 +11,2,-1,-2 +11,3,0,0 +11,4,-2,-1 +11,5,0,-1 +11,6,1,0 +11,7,0,-1 +11,8,0,1 +11,9,0,0 +11,10,3,2 +11,11,0,0 +11,12,0,1 +11,13,0,1 +11,14,1,0 +11,15,0,1 +11,16,-1,-2 +11,17,-1,-1 +11,18,0,0 +11,19,-1,-2 +11,20,0,1 +11,21,0,-1 +11,22,0,0 +11,23,-1,-1 +11,24,1,-2 +11,25,1,3 +11,26,0,0 +11,27,1,-2 +11,28,0,3 +11,29,0,-1 11,30,0,0 -11,31,3,5 -12,0,-2,0 -12,1,-2,-3 -12,2,-1,-1 +11,31,1,5 +12,0,-2,-2 +12,1,-2,0 +12,2,0,-1 12,3,0,-1 -12,4,-1,0 -12,5,-3,-1 -12,6,0,-1 -12,7,-1,-1 -12,8,1,0 -12,9,-1,0 -12,10,0,-1 -12,11,0,0 -12,12,0,0 -12,13,-1,1 -12,14,-1,-1 -12,15,1,-1 -12,16,0,0 -12,17,2,1 -12,18,-1,1 -12,19,0,-1 -12,20,1,0 -12,21,1,-1 +12,4,1,0 +12,5,0,0 +12,6,-1,1 +12,7,2,1 +12,8,0,-2 +12,9,-2,0 +12,10,0,1 +12,11,0,-1 +12,12,1,0 +12,13,0,0 +12,14,1,3 +12,15,2,1 +12,16,-2,-2 +12,17,0,-1 +12,18,-3,-1 +12,19,2,-2 +12,20,-1,0 +12,21,0,0 12,22,0,1 -12,23,-1,-1 -12,24,1,0 -12,25,1,2 -12,26,2,1 -12,27,0,2 -12,28,0,0 -12,29,3,1 -12,30,1,1 -12,31,1,3 -13,0,-3,-1 -13,1,-2,-2 -13,2,-3,0 -13,3,-2,-3 -13,4,-1,1 -13,5,0,-4 -13,6,-2,0 -13,7,1,-2 -13,8,-2,0 -13,9,3,0 -13,10,-1,0 -13,11,2,1 +12,23,-2,-1 +12,24,2,0 +12,25,-2,1 +12,26,3,-1 +12,27,-2,2 +12,28,1,-2 +12,29,2,4 +12,30,0,-3 +12,31,2,5 +13,0,-1,-2 +13,1,-2,-1 +13,2,-1,1 +13,3,0,-2 +13,4,0,0 +13,5,-1,-1 +13,6,0,1 +13,7,1,0 +13,8,1,-2 +13,9,-2,1 +13,10,1,1 +13,11,0,0 13,12,0,0 -13,13,-1,-1 -13,14,-1,0 -13,15,-2,-2 -13,16,1,1 -13,17,0,0 -13,18,1,0 -13,19,2,1 -13,20,-1,-1 -13,21,2,0 +13,13,1,1 +13,14,0,1 +13,15,3,2 +13,16,-1,0 +13,17,-2,-3 +13,18,0,0 +13,19,-2,0 +13,20,0,-1 +13,21,1,-1 13,22,0,0 -13,23,1,0 -13,24,0,0 -13,25,3,2 -13,26,-1,0 -13,27,2,1 -13,28,-2,0 -13,29,3,5 -13,30,-1,0 -13,31,4,4 -14,0,0,-4 -14,1,-3,0 -14,2,-2,-2 -14,3,-2,-1 -14,4,-1,1 -14,5,1,-1 -14,6,-2,-1 -14,7,2,-1 -14,8,-2,0 -14,9,0,-1 -14,10,0,1 -14,11,-1,-1 -14,12,1,1 -14,13,-1,-1 -14,14,0,0 -14,15,0,-2 -14,16,0,0 -14,17,1,0 +13,23,-1,0 +13,24,1,0 +13,25,0,-1 +13,26,0,0 +13,27,2,0 +13,28,0,1 +13,29,1,1 +13,30,0,0 +13,31,1,4 +14,0,-2,-1 +14,1,-1,0 +14,2,0,-2 +14,3,-2,0 +14,4,1,0 +14,5,-1,-1 +14,6,-1,0 +14,7,-1,-2 +14,8,0,1 +14,9,1,0 +14,10,0,0 +14,11,2,0 +14,12,1,0 +14,13,1,1 +14,14,1,2 +14,15,1,2 +14,16,0,-1 +14,17,-4,-1 14,18,0,0 -14,19,0,-1 -14,20,-1,1 -14,21,1,-1 -14,22,0,1 +14,19,-1,-3 +14,20,0,1 +14,21,2,-2 +14,22,0,0 14,23,0,1 -14,24,2,0 -14,25,-2,1 -14,26,2,1 -14,27,-1,-1 -14,28,1,1 -14,29,3,3 -14,30,2,0 -14,31,2,6 -15,0,-2,-1 -15,1,-1,0 -15,2,-2,-2 -15,3,-3,1 -15,4,0,-2 -15,5,-2,0 -15,6,1,-2 -15,7,-4,-1 -15,8,2,0 -15,9,-1,-1 -15,10,2,2 -15,11,-1,-2 -15,12,0,2 -15,13,-1,-2 -15,14,-1,2 -15,15,0,-2 -15,16,-2,1 -15,17,1,0 -15,18,-2,-2 -15,19,1,-1 -15,20,0,-2 -15,21,2,0 -15,22,1,-2 -15,23,2,-1 -15,24,2,0 -15,25,1,1 -15,26,2,2 -15,27,3,2 -15,28,0,2 -15,29,1,2 -15,30,-1,2 -15,31,2,4 -16,0,-1,-3 -16,1,-1,1 -16,2,-2,-1 -16,3,0,-3 -16,4,-1,1 -16,5,0,-1 -16,6,1,0 -16,7,-3,1 -16,8,1,-1 -16,9,-2,-1 -16,10,-2,0 -16,11,1,-1 -16,12,-3,-2 -16,13,0,0 -16,14,1,-1 -16,15,-1,-2 -16,16,1,1 -16,17,1,-1 -16,18,0,1 -16,19,0,1 -16,20,1,1 -16,21,0,1 -16,22,1,0 -16,23,3,1 -16,24,-1,-1 -16,25,2,1 -16,26,0,0 -16,27,-1,-1 -16,28,3,4 -16,29,0,0 -16,30,1,1 -16,31,1,4 -17,0,-2,-1 -17,1,-4,-3 +14,24,0,-1 +14,25,0,1 +14,26,0,0 +14,27,1,-1 +14,28,0,1 +14,29,2,2 +14,30,0,0 +14,31,0,3 +15,0,-1,-1 +15,1,-1,-1 +15,2,-1,0 +15,3,1,-2 +15,4,-2,0 +15,5,2,1 +15,6,-1,-1 +15,7,0,0 +15,8,-1,1 +15,9,1,-1 +15,10,-1,0 +15,11,1,0 +15,12,0,0 +15,13,2,1 +15,14,-1,1 +15,15,2,2 +15,16,-1,-1 +15,17,-1,-1 +15,18,-1,0 +15,19,-1,-2 +15,20,0,1 +15,21,0,-1 +15,22,0,0 +15,23,0,0 +15,24,1,-1 +15,25,-1,1 +15,26,1,0 +15,27,-1,0 +15,28,0,1 +15,29,2,1 +15,30,0,0 +15,31,2,2 +16,0,-1,-1 +16,1,-1,-2 +16,2,0,0 +16,3,-2,-2 +16,4,0,0 +16,5,1,0 +16,6,-2,-2 +16,7,1,0 +16,8,1,1 +16,9,-1,-2 +16,10,0,0 +16,11,2,2 +16,12,0,0 +16,13,1,0 +16,14,2,2 +16,15,-1,4 +16,16,-1,-2 +16,17,-1,0 +16,18,-1,0 +16,19,2,0 +16,20,-1,-2 +16,21,1,2 +16,22,-1,0 +16,23,2,2 +16,24,-1,-2 +16,25,-1,0 +16,26,-1,0 +16,27,2,0 +16,28,-1,-2 +16,29,1,2 +16,30,-1,0 +16,31,2,2 +17,0,-1,-4 +17,1,-2,1 17,2,0,0 -17,3,-3,-4 -17,4,0,0 -17,5,0,-1 -17,6,0,-1 -17,7,-2,-1 -17,8,0,0 -17,9,1,0 -17,10,-1,0 -17,11,2,2 -17,12,-2,-2 -17,13,-1,0 -17,14,0,0 -17,15,-3,-3 -17,16,2,1 -17,17,0,1 -17,18,0,0 -17,19,1,2 -17,20,0,0 -17,21,0,-3 -17,22,0,1 -17,23,2,-1 -17,24,0,0 -17,25,3,2 -17,26,1,0 -17,27,0,0 -17,28,2,2 -17,29,1,4 -17,30,0,0 -17,31,3,5 -18,0,-2,-1 -18,1,-2,-1 -18,2,-2,-2 -18,3,-2,-1 -18,4,0,-2 -18,5,0,0 -18,6,0,0 -18,7,-1,-1 -18,8,0,1 -18,9,0,-1 -18,10,-1,-1 -18,11,2,-1 -18,12,0,-2 -18,13,2,2 -18,14,0,-2 -18,15,1,3 -18,16,2,-1 -18,17,-2,-1 -18,18,2,2 -18,19,-2,-1 -18,20,0,2 -18,21,0,0 +17,3,0,-1 +17,4,0,-2 +17,5,-1,1 +17,6,-1,-3 +17,7,0,-1 +17,8,1,0 +17,9,0,1 +17,10,0,0 +17,11,2,3 +17,12,0,-2 +17,13,-1,1 +17,14,1,3 +17,15,2,3 +17,16,-1,-2 +17,17,-2,0 +17,18,0,-1 +17,19,-3,-1 +17,20,0,1 +17,21,0,-1 +17,22,-1,-1 +17,23,0,-1 +17,24,1,0 +17,25,0,0 +17,26,0,1 +17,27,1,-1 +17,28,0,1 +17,29,2,1 +17,30,1,1 +17,31,2,3 +18,0,0,-1 +18,1,-1,0 +18,2,0,1 +18,3,1,0 +18,4,0,-1 +18,5,-1,0 +18,6,0,1 +18,7,1,0 +18,8,0,-1 +18,9,-1,0 +18,10,0,1 +18,11,1,0 +18,12,0,-1 +18,13,-1,0 +18,14,0,1 +18,15,1,0 +18,16,-2,0 +18,17,0,-2 +18,18,-1,0 +18,19,-1,-1 +18,20,0,0 +18,21,0,-2 18,22,0,0 -18,23,-1,-1 -18,24,0,1 -18,25,0,-1 -18,26,1,1 -18,27,2,-1 -18,28,0,2 -18,29,2,2 -18,30,0,2 -18,31,1,3 -19,0,0,-1 -19,1,-5,-2 -19,2,0,-1 -19,3,-1,-1 -19,4,0,-1 -19,5,0,0 -19,6,0,-1 +18,23,-2,-2 +18,24,2,0 +18,25,0,2 +18,26,1,0 +18,27,1,1 +18,28,0,0 +18,29,0,2 +18,30,0,0 +18,31,2,2 +19,0,0,-2 +19,1,-2,-2 +19,2,-1,0 +19,3,1,-1 +19,4,-1,1 +19,5,-1,0 +19,6,1,-1 19,7,-1,0 -19,8,0,-1 -19,9,1,-1 -19,10,0,-1 -19,11,1,1 -19,12,0,-1 -19,13,0,3 -19,14,0,-1 -19,15,0,2 -19,16,0,-1 -19,17,-1,0 +19,8,0,0 +19,9,2,0 +19,10,-1,0 +19,11,-1,1 +19,12,1,1 +19,13,1,-2 +19,14,1,1 +19,15,1,4 +19,16,0,0 +19,17,-4,-3 19,18,0,-1 -19,19,-1,-1 -19,20,0,-1 -19,21,2,0 -19,22,0,-1 -19,23,1,2 -19,24,0,-1 -19,25,1,3 +19,19,1,1 +19,20,0,0 +19,21,1,-2 +19,22,0,1 +19,23,-1,-1 +19,24,0,0 +19,25,0,1 19,26,0,-1 19,27,1,1 -19,28,0,-1 -19,29,2,5 -19,30,0,-1 -19,31,0,4 -20,0,0,-4 -20,1,-8,-4 -20,2,-1,0 -20,3,-3,-4 -20,4,0,1 -20,5,-1,-3 -20,6,-1,-2 -20,7,-5,-1 -20,8,1,0 -20,9,3,-2 -20,10,-1,0 -20,11,0,-3 -20,12,0,1 -20,13,1,0 -20,14,2,-2 -20,15,-2,-2 -20,16,0,0 -20,17,2,2 -20,18,-1,0 -20,19,3,-2 -20,20,0,1 -20,21,-3,-1 -20,22,3,2 -20,23,5,-1 -20,24,-1,0 -20,25,3,4 -20,26,-1,0 -20,27,4,1 -20,28,0,1 -20,29,3,4 -20,30,0,2 -20,31,-2,12 -21,0,50,-2 -21,1,-40,-13 -21,2,7,-6 -21,3,-7,-6 -21,4,2,-1 -21,5,-3,-3 -21,6,2,-2 -21,7,-4,-1 -21,8,1,-1 -21,9,3,1 -21,10,0,-1 -21,11,-1,1 -21,12,1,-1 -21,13,0,-1 -21,14,4,0 -21,15,-3,1 -21,16,4,-2 -21,17,-2,3 -21,18,3,-2 -21,19,1,0 -21,20,2,1 -21,21,-1,-1 -21,22,2,-2 -21,23,2,3 -21,24,1,-3 -21,25,-1,5 -21,26,2,1 -21,27,-1,1 -21,28,3,1 -21,29,-4,9 -21,30,12,4 -21,31,-35,17 -22,0,1,0 -22,1,-8,-6 +19,28,0,0 +19,29,3,0 +19,30,0,1 +19,31,-1,3 +20,0,0,-1 +20,1,-4,-4 +20,2,-1,-1 +20,3,-1,-1 +20,4,0,0 +20,5,2,-2 +20,6,-1,0 +20,7,1,-3 +20,8,0,1 +20,9,0,2 +20,10,1,-1 +20,11,3,3 +20,12,0,0 +20,13,2,0 +20,14,1,2 +20,15,-3,5 +20,16,1,-1 +20,17,-7,-5 +20,18,-1,1 +20,19,3,0 +20,20,-1,-2 +20,21,0,-1 +20,22,0,1 +20,23,0,-1 +20,24,1,-1 +20,25,-1,1 +20,26,1,1 +20,27,3,0 +20,28,-1,0 +20,29,4,1 +20,30,0,1 +20,31,-2,5 +21,0,42,-1 +21,1,-26,-10 +21,2,1,-4 +21,3,3,0 +21,4,1,-1 +21,5,2,-1 +21,6,1,0 +21,7,-1,-5 +21,8,2,1 +21,9,0,2 +21,10,3,2 +21,11,1,0 +21,12,3,1 +21,13,4,1 +21,14,3,2 +21,15,-23,13 +21,16,37,-3 +21,17,-24,-9 +21,18,2,-2 +21,19,3,0 +21,20,1,-2 +21,21,0,-2 +21,22,-1,0 +21,23,2,-2 +21,24,1,1 +21,25,0,-3 +21,26,2,4 +21,27,3,0 +21,28,1,0 +21,29,4,2 +21,30,5,2 +21,31,-20,14 +22,0,1,-1 +22,1,-5,-3 22,2,1,0 -22,3,-3,-2 +22,3,-2,-1 22,4,1,0 -22,5,0,-2 +22,5,-2,-2 22,6,1,0 -22,7,-2,0 -22,8,1,0 -22,9,0,-3 +22,7,0,-1 +22,8,1,1 +22,9,1,-1 22,10,1,0 -22,11,-1,1 +22,11,0,1 22,12,1,0 -22,13,-1,-1 +22,13,2,2 22,14,1,0 -22,15,-1,0 -22,16,1,0 -22,17,0,0 -22,18,1,0 -22,19,-1,0 -22,20,1,0 -22,21,0,-2 -22,22,1,0 -22,23,0,2 -22,24,1,0 -22,25,0,1 -22,26,1,0 -22,27,1,1 -22,28,1,0 -22,29,1,5 -22,30,1,0 -22,31,-1,6 +22,15,-2,5 +22,16,0,-1 +22,17,-5,-5 +22,18,0,0 +22,19,-2,-2 +22,20,0,1 +22,21,3,-3 +22,22,0,0 +22,23,1,-1 +22,24,0,-1 +22,25,1,3 +22,26,0,0 +22,27,2,0 +22,28,0,1 +22,29,1,1 +22,30,0,0 +22,31,-1,7 23,0,0,0 -23,1,-6,-4 -23,2,0,0 -23,3,-2,-3 +23,1,-2,-3 +23,2,-1,-1 +23,3,-2,-2 23,4,0,0 -23,5,1,-1 -23,6,0,0 -23,7,0,0 +23,5,2,0 +23,6,0,-1 +23,7,0,-1 23,8,0,0 -23,9,1,0 -23,10,0,0 -23,11,0,0 +23,9,0,1 +23,10,1,1 +23,11,2,0 23,12,0,0 -23,13,-1,1 -23,14,0,0 -23,15,0,0 +23,13,0,2 +23,14,0,1 +23,15,0,3 23,16,0,0 -23,17,0,0 +23,17,-3,-3 23,18,0,0 23,19,0,-1 23,20,0,0 -23,21,1,-1 +23,21,0,0 23,22,0,0 -23,23,0,0 +23,23,0,-1 23,24,0,0 -23,25,1,0 +23,25,1,1 23,26,0,0 -23,27,2,0 +23,27,0,-1 23,28,0,0 -23,29,3,5 +23,29,2,2 23,30,0,0 -23,31,0,4 -24,0,-1,0 -24,1,-2,-1 -24,2,-1,0 -24,3,-1,-1 -24,4,-1,0 -24,5,-2,-2 -24,6,-1,0 -24,7,-1,-2 -24,8,0,0 -24,9,0,-4 -24,10,0,0 -24,11,-1,-3 -24,12,0,0 -24,13,0,-3 -24,14,0,0 -24,15,-1,-2 -24,16,1,0 -24,17,2,1 -24,18,1,0 -24,19,1,1 -24,20,1,0 -24,21,2,2 -24,22,1,0 -24,23,1,2 -24,24,0,0 -24,25,0,4 -24,26,0,0 -24,27,1,3 -24,28,0,0 -24,29,0,3 -24,30,0,0 -24,31,1,2 -25,0,-3,-2 -25,1,0,-2 -25,2,-2,-2 -25,3,-2,-4 -25,4,2,0 -25,5,-1,1 -25,6,0,0 -25,7,1,2 -25,8,-3,0 -25,9,0,-3 -25,10,-1,-1 -25,11,-2,-1 -25,12,2,-3 -25,13,-1,2 -25,14,0,-2 -25,15,0,0 -25,16,1,2 -25,17,0,-2 -25,18,2,2 -25,19,2,0 -25,20,0,0 -25,21,1,3 -25,22,0,0 -25,23,-1,2 -25,24,1,0 -25,25,0,-1 -25,26,1,1 -25,27,2,-3 -25,28,0,3 -25,29,1,2 -25,30,0,2 -25,31,0,4 -26,0,0,-1 -26,1,0,0 -26,2,-1,-1 -26,3,0,0 -26,4,-1,0 -26,5,0,-1 -26,6,-1,0 -26,7,0,-1 -26,8,0,1 -26,9,0,0 -26,10,1,1 -26,11,0,0 -26,12,1,0 -26,13,0,1 +23,31,0,3 +24,0,-1,-2 +24,1,-1,0 +24,2,0,0 +24,3,1,0 +24,4,-2,-1 +24,5,-1,-1 +24,6,0,1 +24,7,1,-1 +24,8,-1,0 +24,9,-1,0 +24,10,2,2 +24,11,1,0 +24,12,0,-1 +24,13,-1,1 +24,14,2,1 +24,15,1,1 +24,16,-1,-2 +24,17,0,-1 +24,18,-1,-2 +24,19,0,1 +24,20,0,-1 +24,21,0,1 +24,22,-1,-1 +24,23,1,1 +24,24,-1,0 +24,25,0,-1 +24,26,1,0 +24,27,-2,1 +24,28,2,-1 +24,29,0,1 +24,30,1,-1 +24,31,1,5 +25,0,0,-2 +25,1,-1,0 +25,2,-1,0 +25,3,1,0 +25,4,-1,-1 +25,5,-1,-1 +25,6,-1,1 +25,7,1,-1 +25,8,0,0 +25,9,-1,0 +25,10,1,2 +25,11,1,0 +25,12,1,-1 +25,13,-1,1 +25,14,1,1 +25,15,1,1 +25,16,-1,-3 +25,17,-1,1 +25,18,0,0 +25,19,1,-2 +25,20,-3,1 +25,21,1,0 +25,22,2,0 +25,23,-1,-1 +25,24,-1,1 +25,25,1,-1 +25,26,0,0 +25,27,-1,0 +25,28,1,1 +25,29,-1,0 +25,30,2,0 +25,31,1,3 +26,0,-1,-2 +26,1,-1,1 +26,2,0,-2 +26,3,-2,1 +26,4,0,-1 +26,5,-1,0 +26,6,-1,-2 +26,7,-1,-1 +26,8,1,0 +26,9,1,1 +26,10,0,0 +26,11,2,1 +26,12,0,-1 +26,13,1,2 26,14,1,0 -26,15,0,1 -26,16,0,-1 -26,17,0,0 -26,18,-1,-1 -26,19,0,0 -26,20,-1,0 -26,21,0,-1 -26,22,-1,0 -26,23,0,-1 -26,24,0,1 -26,25,0,0 -26,26,1,1 -26,27,0,0 -26,28,1,0 -26,29,0,1 -26,30,1,0 -26,31,0,1 -27,0,0,-3 -27,1,-2,0 -27,2,-1,0 -27,3,-4,-1 -27,4,0,1 -27,5,-1,-1 -27,6,1,0 -27,7,-1,0 -27,8,0,-1 +26,15,1,3 +26,16,-2,-2 +26,17,0,-1 +26,18,-1,0 +26,19,-3,-2 +26,20,1,0 +26,21,-1,-1 +26,22,0,0 +26,23,-1,-4 +26,24,2,2 +26,25,0,1 +26,26,1,0 +26,27,3,2 +26,28,-1,0 +26,29,1,1 +26,30,0,0 +26,31,1,4 +27,0,0,-1 +27,1,0,0 +27,2,-1,-1 +27,3,0,0 +27,4,-1,0 +27,5,0,-1 +27,6,-1,0 +27,7,0,-1 +27,8,0,1 27,9,0,0 -27,10,-1,0 -27,11,-2,-2 -27,12,0,0 -27,13,-2,-2 +27,10,1,1 +27,11,0,0 +27,12,1,0 +27,13,0,1 27,14,1,0 -27,15,-2,-3 -27,16,0,1 -27,17,2,0 -27,18,-1,0 -27,19,4,-1 -27,20,0,1 -27,21,1,1 -27,22,1,0 -27,23,1,2 -27,24,0,-1 -27,25,0,0 -27,26,-1,0 -27,27,2,0 -27,28,0,2 -27,29,2,2 -27,30,1,0 -27,31,2,5 +27,15,0,1 +27,16,-3,-2 +27,17,-1,-3 +27,18,-2,1 +27,19,1,-3 +27,20,0,-1 +27,21,0,1 +27,22,0,1 +27,23,1,0 +27,24,-1,-2 +27,25,1,1 +27,26,-2,1 +27,27,3,-3 +27,28,0,1 +27,29,0,1 +27,30,0,1 +27,31,3,6 28,0,-2,0 -28,1,-4,-3 -28,2,-1,-1 -28,3,-2,-2 -28,4,1,-1 +28,1,0,-1 +28,2,-2,0 +28,3,0,-1 +28,4,0,0 28,5,-1,-1 -28,6,0,0 -28,7,0,-1 -28,8,-1,0 -28,9,2,-2 -28,10,-1,0 -28,11,0,0 -28,12,0,-1 -28,13,-1,2 -28,14,0,-1 +28,6,1,0 +28,7,-1,-1 +28,8,2,0 +28,9,0,1 +28,10,2,0 +28,11,0,1 +28,12,0,0 +28,13,1,1 +28,14,-1,0 28,15,1,1 -28,16,0,0 -28,17,0,-1 -28,18,1,1 -28,19,-2,-2 -28,20,1,1 -28,21,1,-1 -28,22,0,0 -28,23,2,1 -28,24,-1,0 -28,25,2,2 -28,26,1,0 -28,27,0,0 -28,28,2,1 -28,29,1,4 -28,30,0,1 -28,31,1,3 -29,0,-1,-1 -29,1,-2,-1 -29,2,-1,0 -29,3,0,-3 -29,4,-1,1 -29,5,2,-1 -29,6,-1,0 -29,7,0,1 -29,8,0,-1 -29,9,-3,-1 -29,10,0,0 -29,11,-1,-3 -29,12,0,1 -29,13,1,-1 -29,14,0,0 -29,15,-1,1 -29,16,1,-1 -29,17,-2,1 -29,18,1,0 -29,19,0,-1 -29,20,1,1 -29,21,2,1 -29,22,1,0 -29,23,0,3 -29,24,0,-1 -29,25,-1,1 -29,26,0,0 -29,27,1,-1 -29,28,0,1 -29,29,3,1 -29,30,0,0 -29,31,1,3 -30,0,-2,-2 +28,16,-1,-1 +28,17,0,0 +28,18,0,0 +28,19,-1,-1 +28,20,-1,0 +28,21,0,0 +28,22,0,-1 +28,23,0,-1 +28,24,-1,1 +28,25,0,0 +28,26,2,0 +28,27,1,1 +28,28,-1,0 +28,29,0,0 +28,30,2,1 +28,31,0,1 +29,0,-1,-2 +29,1,-1,0 +29,2,-1,-1 +29,3,-2,-1 +29,4,1,1 +29,5,-1,-1 +29,6,1,1 +29,7,-1,-1 +29,8,-1,0 +29,9,1,0 +29,10,-1,-1 +29,11,2,-1 +29,12,1,1 +29,13,1,1 +29,14,1,1 +29,15,1,3 +29,16,-1,0 +29,17,0,0 +29,18,0,-1 +29,19,0,0 +29,20,1,0 +29,21,0,0 +29,22,0,1 +29,23,0,0 +29,24,-1,0 +29,25,0,0 +29,26,0,-1 +29,27,0,0 +29,28,1,0 +29,29,0,0 +29,30,0,1 +29,31,0,0 +30,0,0,-1 30,1,-2,-1 -30,2,-2,-1 -30,3,-3,-2 -30,4,0,0 -30,5,1,0 -30,6,-1,0 -30,7,1,0 -30,8,0,0 -30,9,-2,0 -30,10,0,-2 -30,11,-2,0 -30,12,-3,-2 -30,13,2,-2 -30,14,-1,-1 -30,15,0,-2 -30,16,2,0 -30,17,0,1 -30,18,2,1 -30,19,1,0 -30,20,0,2 -30,21,1,0 -30,22,1,0 -30,23,1,2 -30,24,0,-2 -30,25,0,0 -30,26,0,2 -30,27,0,-2 -30,28,3,4 -30,29,0,2 -30,30,1,1 -30,31,2,4 -31,0,0,-1 -31,1,-3,0 -31,2,0,-1 -31,3,-2,0 -31,4,0,-1 -31,5,-2,-1 -31,6,0,-1 -31,7,-1,0 -31,8,0,-1 -31,9,0,-2 -31,10,0,-1 -31,11,0,-1 -31,12,0,-1 -31,13,1,-1 -31,14,0,-1 -31,15,0,0 -31,16,0,-1 -31,17,3,2 -31,18,0,-1 -31,19,2,2 -31,20,0,-1 -31,21,2,3 -31,22,0,-1 +30,2,0,0 +30,3,1,-1 +30,4,-1,0 +30,5,-1,1 +30,6,0,-1 +30,7,-1,-2 +30,8,0,1 +30,9,2,1 +30,10,0,0 +30,11,-1,1 +30,12,1,0 +30,13,1,-1 +30,14,0,1 +30,15,1,2 +30,16,-1,-2 +30,17,-1,0 +30,18,0,-1 +30,19,-1,-1 +30,20,0,-1 +30,21,1,2 +30,22,-2,-3 +30,23,0,1 +30,24,1,0 +30,25,-1,0 +30,26,0,-1 +30,27,1,1 +30,28,0,-1 +30,29,1,2 +30,30,2,1 +30,31,0,3 +31,0,-2,-1 +31,1,0,0 +31,2,0,-2 +31,3,0,0 +31,4,-1,0 +31,5,0,-1 +31,6,0,1 +31,7,0,-1 +31,8,-2,1 +31,9,0,0 +31,10,2,0 +31,11,0,0 +31,12,1,0 +31,13,0,1 +31,14,2,1 +31,15,0,1 +31,16,-1,0 +31,17,0,-2 +31,18,0,0 +31,19,-1,0 +31,20,1,0 +31,21,0,0 +31,22,0,0 31,23,1,2 -31,24,0,-1 -31,25,0,4 -31,26,0,-1 -31,27,0,3 -31,28,0,-1 -31,29,-1,3 -31,30,0,-1 -31,31,0,2 -32,0,-2,-2 -32,1,2,0 -32,2,-4,-2 -32,3,2,0 -32,4,-4,0 -32,5,1,-1 -32,6,-3,1 -32,7,1,-1 -32,8,-1,0 -32,9,1,-2 -32,10,-1,0 -32,11,1,-2 -32,12,-2,0 -32,13,1,-3 -32,14,-2,0 -32,15,0,-3 -32,16,0,2 -32,17,0,0 -32,18,2,2 -32,19,0,0 -32,20,2,0 -32,21,1,1 -32,22,1,-1 -32,23,1,1 -32,24,-1,0 -32,25,1,2 -32,26,-1,0 +31,24,-1,0 +31,25,0,-2 +31,26,0,0 +31,27,-1,0 +31,28,1,0 +31,29,0,0 +31,30,0,0 +31,31,1,2 +32,0,-3,-1 +32,1,-1,-2 +32,2,-2,0 +32,3,2,-1 +32,4,1,-1 +32,5,-3,-1 +32,6,1,2 +32,7,0,-2 +32,8,1,-1 +32,9,-1,2 +32,10,2,0 +32,11,0,1 +32,12,1,-1 +32,13,1,1 +32,14,-1,2 +32,15,2,2 +32,16,0,-1 +32,17,-2,0 +32,18,0,-1 +32,19,-1,0 +32,20,0,-1 +32,21,0,-1 +32,22,0,-1 +32,23,0,0 +32,24,0,-1 +32,25,2,2 +32,26,0,-1 32,27,1,2 -32,28,0,0 -32,29,1,3 -32,30,0,0 -32,31,2,3 -33,0,-1,-4 -33,1,-1,1 -33,2,-3,-3 -33,3,-1,-1 -33,4,-1,1 -33,5,-2,-3 -33,6,-1,1 -33,7,-4,0 -33,8,1,-1 -33,9,-2,-1 -33,10,1,0 -33,11,-1,-2 -33,12,1,1 -33,13,1,-1 -33,14,0,-1 -33,15,-1,-2 -33,16,1,0 -33,17,1,-1 -33,18,-1,1 -33,19,1,-1 -33,20,-1,1 -33,21,2,1 -33,22,1,-1 -33,23,4,0 -33,24,-1,1 -33,25,2,1 -33,26,-1,2 -33,27,1,0 -33,28,1,1 -33,29,-1,3 -33,30,4,1 -33,31,1,6 -34,0,-2,-1 -34,1,-1,-1 -34,2,-3,-2 -34,3,-2,-1 -34,4,-1,-1 -34,5,0,0 -34,6,0,0 +32,28,0,-1 +32,29,0,3 +32,30,0,-1 +32,31,0,2 +33,0,-3,-2 +33,1,0,-1 +33,2,-1,-2 +33,3,-2,0 +33,4,1,0 +33,5,-1,-1 +33,6,0,-2 +33,7,-1,2 +33,8,1,-2 +33,9,2,1 +33,10,-1,0 +33,11,2,0 +33,12,1,0 +33,13,-1,1 +33,14,2,0 +33,15,1,6 +33,16,0,-1 +33,17,-1,-1 +33,18,0,1 +33,19,1,1 +33,20,0,-1 +33,21,-1,-1 +33,22,0,1 +33,23,1,1 +33,24,0,-1 +33,25,-1,-1 +33,26,0,1 +33,27,1,1 +33,28,0,-1 +33,29,-1,-1 +33,30,0,1 +33,31,1,1 +34,0,-1,-2 +34,1,-4,-1 +34,2,1,0 +34,3,-2,-3 +34,4,-2,1 +34,5,1,-1 +34,6,1,-1 34,7,0,-1 -34,8,0,0 -34,9,-1,0 -34,10,1,-3 -34,11,-1,1 -34,12,-1,-3 -34,13,1,-2 -34,14,0,0 -34,15,-1,-3 -34,16,2,1 -34,17,1,1 -34,18,3,2 -34,19,2,1 -34,20,1,1 -34,21,0,0 -34,22,0,0 -34,23,0,1 -34,24,0,0 -34,25,1,0 -34,26,-1,3 -34,27,1,-1 -34,28,1,3 -34,29,-1,2 -34,30,0,0 -34,31,1,3 -35,0,0,-1 -35,1,-2,-1 -35,2,-1,0 -35,3,-1,-2 -35,4,0,1 -35,5,1,-1 -35,6,1,0 -35,7,0,1 -35,8,0,-1 -35,9,-1,1 -35,10,-1,0 -35,11,-1,-1 -35,12,0,1 -35,13,-1,-2 -35,14,1,0 -35,15,0,0 +34,8,-1,0 +34,9,2,1 +34,10,1,0 +34,11,0,1 +34,12,0,1 +34,13,1,1 +34,14,1,1 +34,15,2,3 +34,16,-3,-3 +34,17,0,-1 +34,18,0,-2 +34,19,-4,-1 +34,20,2,-1 +34,21,0,1 +34,22,-1,-2 +34,23,2,0 +34,24,1,1 +34,25,0,-1 +34,26,0,0 +34,27,2,3 +34,28,0,-1 +34,29,0,1 +34,30,1,0 +34,31,0,6 +35,0,-1,-3 +35,1,-2,0 +35,2,0,1 +35,3,-1,-1 +35,4,-1,0 +35,5,-2,-1 +35,6,2,1 +35,7,0,-1 +35,8,-1,-1 +35,9,0,0 +35,10,0,1 +35,11,3,-1 +35,12,-1,0 +35,13,0,1 +35,14,2,1 +35,15,2,3 35,16,0,-1 -35,17,2,1 -35,18,-1,0 +35,17,-2,-1 +35,18,0,1 35,19,1,0 -35,20,0,1 -35,21,-1,1 -35,22,1,0 -35,23,0,1 +35,20,0,-1 +35,21,-2,0 +35,22,0,1 +35,23,1,-1 35,24,0,-1 -35,25,1,-1 -35,26,-1,0 -35,27,1,-1 -35,28,0,1 -35,29,1,2 -35,30,1,0 -35,31,0,2 +35,25,0,1 +35,26,0,1 +35,27,1,0 +35,28,0,-1 +35,29,0,0 +35,30,0,1 +35,31,1,1 36,0,0,0 -36,1,0,0 +36,1,-1,-1 36,2,0,0 36,3,0,0 36,4,0,0 -36,5,0,0 +36,5,-1,0 36,6,0,0 -36,7,0,0 +36,7,0,-1 36,8,0,0 -36,9,0,0 +36,9,1,1 36,10,0,0 36,11,0,0 36,12,0,0 -36,13,0,0 +36,13,1,0 36,14,0,0 -36,15,0,0 +36,15,0,1 36,16,0,0 -36,17,0,0 +36,17,-1,-2 36,18,0,0 36,19,0,0 36,20,0,0 -36,21,0,0 +36,21,1,0 36,22,0,0 -36,23,0,0 +36,23,0,2 36,24,0,0 -36,25,0,0 +36,25,-1,-2 36,26,0,0 36,27,0,0 36,28,0,0 -36,29,0,0 +36,29,1,0 36,30,0,0 -36,31,0,0 -37,0,-3,0 -37,1,-2,-2 -37,2,-2,-1 -37,3,-2,-2 -37,4,1,-1 -37,5,0,-1 -37,6,-1,-1 -37,7,1,0 -37,8,-2,-1 -37,9,2,0 -37,10,0,-2 -37,11,0,0 -37,12,2,-1 -37,13,0,3 -37,14,0,-1 -37,15,1,2 -37,16,-1,0 -37,17,-2,-2 -37,18,2,1 -37,19,-2,-2 -37,20,3,1 -37,21,0,-1 -37,22,1,1 -37,23,1,0 -37,24,-2,1 -37,25,2,0 -37,26,0,2 +36,31,0,2 +37,0,-1,-1 +37,1,0,1 +37,2,0,-2 +37,3,0,1 +37,4,0,-1 +37,5,0,1 +37,6,-1,-2 +37,7,0,1 +37,8,1,-1 +37,9,0,1 +37,10,0,0 +37,11,0,1 +37,12,0,-1 +37,13,0,1 +37,14,1,0 +37,15,0,1 +37,16,-2,-3 +37,17,-1,0 +37,18,-2,-2 +37,19,0,0 +37,20,-1,-2 +37,21,1,2 +37,22,0,-2 +37,23,1,-1 +37,24,0,1 +37,25,-1,0 +37,26,4,0 37,27,0,0 -37,28,2,1 -37,29,0,3 -37,30,0,1 -37,31,1,2 -38,0,-2,-2 -38,1,-1,-1 -38,2,-2,-2 -38,3,0,0 -38,4,-1,-2 -38,5,3,2 -38,6,-2,-1 -38,7,2,0 -38,8,-1,0 -38,9,-2,-1 -38,10,-1,0 -38,11,0,0 -38,12,-1,-1 -38,13,1,-1 -38,14,0,0 -38,15,-2,-1 -38,16,2,0 -38,17,-1,1 -38,18,2,0 -38,19,0,0 -38,20,1,0 -38,21,-1,2 -38,22,2,-1 -38,23,-2,4 -38,24,1,-2 -38,25,0,1 -38,26,1,-2 -38,27,0,0 -38,28,1,-1 -38,29,1,5 -38,30,0,-2 -38,31,2,5 -39,0,-3,-2 -39,1,0,-2 -39,2,-3,-3 -39,3,0,-2 -39,4,1,-2 -39,5,0,2 -39,6,-1,-2 -39,7,1,2 -39,8,-3,0 -39,9,0,-3 +37,28,-1,0 +37,29,1,2 +37,30,2,0 +37,31,-1,5 +38,0,-2,-1 +38,1,-1,0 +38,2,0,-2 +38,3,-3,0 +38,4,2,0 +38,5,-1,-1 +38,6,0,2 +38,7,0,-2 +38,8,-2,1 +38,9,1,0 +38,10,0,-2 +38,11,1,0 +38,12,2,0 +38,13,1,1 +38,14,0,2 +38,15,2,2 +38,16,-1,-1 +38,17,0,0 +38,18,0,0 +38,19,-1,-1 +38,20,0,0 +38,21,0,0 +38,22,-2,-2 +38,23,0,-1 +38,24,1,1 +38,25,0,0 +38,26,0,0 +38,27,1,1 +38,28,0,0 +38,29,0,0 +38,30,2,2 +38,31,0,1 +39,0,-1,-1 +39,1,-1,-1 +39,2,-1,0 +39,3,-1,-1 +39,4,-1,0 +39,5,1,0 +39,6,-1,0 +39,7,0,-1 +39,8,-1,1 +39,9,1,-1 39,10,-1,0 -39,11,0,-2 -39,12,1,-2 -39,13,0,1 -39,14,-1,-2 -39,15,0,0 -39,16,1,2 -39,17,0,-2 -39,18,3,3 -39,19,0,-2 -39,20,1,2 -39,21,0,2 -39,22,1,2 -39,23,-1,2 -39,24,1,0 -39,25,0,-1 -39,26,1,0 -39,27,0,-2 -39,28,1,2 -39,29,0,3 -39,30,1,2 -39,31,0,4 -40,0,-1,-1 -40,1,-6,-2 -40,2,-1,-1 -40,3,-3,-3 -40,4,0,0 -40,5,-1,-3 -40,6,0,0 -40,7,-3,-1 -40,8,0,0 -40,9,2,-3 -40,10,-1,0 -40,11,2,-1 -40,12,-2,-2 -40,13,0,1 -40,14,0,-2 -40,15,-1,-2 -40,16,1,1 -40,17,2,0 -40,18,1,1 -40,19,1,1 +39,11,3,-1 +39,12,-1,0 +39,13,3,2 +39,14,-1,0 +39,15,2,3 +39,16,-2,-2 +39,17,-3,-1 +39,18,1,-1 +39,19,-1,-1 +39,20,-2,-2 +39,21,2,2 +39,22,1,-2 +39,23,-2,0 +39,24,0,0 +39,25,1,1 +39,26,1,-1 +39,27,1,1 +39,28,0,0 +39,29,0,2 +39,30,1,0 +39,31,2,4 +40,0,-3,-2 +40,1,-2,-1 +40,2,-2,0 +40,3,-1,-4 +40,4,0,1 +40,5,1,-1 +40,6,0,-2 +40,7,-1,0 +40,8,3,0 +40,9,-2,1 +40,10,2,0 +40,11,1,0 +40,12,0,1 +40,13,3,1 +40,14,0,2 +40,15,1,4 +40,16,0,-1 +40,17,-1,0 +40,18,0,0 +40,19,-2,0 40,20,0,0 -40,21,1,-1 +40,21,-1,-1 40,22,0,0 -40,23,3,-1 -40,24,0,0 -40,25,2,5 -40,26,1,0 -40,27,0,3 -40,28,2,2 -40,29,0,3 -40,30,0,2 -40,31,1,4 -41,0,-2,-1 -41,1,-2,-1 -41,2,-2,-1 -41,3,-1,-1 -41,4,-1,-1 -41,5,1,0 -41,6,-1,-1 -41,7,1,-1 -41,8,-1,0 -41,9,1,-1 -41,10,0,1 -41,11,0,1 -41,12,-1,0 -41,13,-1,-2 -41,14,-1,1 -41,15,0,-3 -41,16,-2,1 -41,17,4,1 -41,18,-2,-1 -41,19,3,1 -41,20,-1,-1 -41,21,1,0 -41,22,-1,-1 -41,23,1,1 -41,24,1,0 -41,25,1,1 -41,26,0,1 -41,27,2,-1 -41,28,-1,2 -41,29,3,2 -41,30,-1,1 -41,31,2,3 -42,0,-2,-2 -42,1,-2,-1 -42,2,-2,-1 -42,3,-4,-3 -42,4,2,0 -42,5,-1,-1 +40,23,-1,-2 +40,24,0,1 +40,25,1,0 +40,26,0,0 +40,27,2,0 +40,28,0,0 +40,29,1,1 +40,30,0,0 +40,31,1,2 +41,0,0,-1 +41,1,-4,-2 +41,2,0,0 +41,3,0,-2 +41,4,0,1 +41,5,1,-1 +41,6,0,0 +41,7,0,0 +41,8,0,-1 +41,9,0,2 +41,10,0,0 +41,11,0,-2 +41,12,0,1 +41,13,3,1 +41,14,0,0 +41,15,0,4 +41,16,0,0 +41,17,0,0 +41,18,0,0 +41,19,0,0 +41,20,0,0 +41,21,0,0 +41,22,0,0 +41,23,0,0 +41,24,0,0 +41,25,0,0 +41,26,0,0 +41,27,0,0 +41,28,0,0 +41,29,0,0 +41,30,0,0 +41,31,0,0 +42,0,-2,-1 +42,1,-2,-2 +42,2,1,0 +42,3,0,-2 +42,4,-1,0 +42,5,-1,2 42,6,1,-1 -42,7,1,-1 +42,7,0,-1 42,8,-2,1 -42,9,2,-1 -42,10,-1,1 -42,11,0,0 -42,12,1,-2 -42,13,1,3 -42,14,-1,-2 -42,15,1,2 -42,16,0,0 -42,17,-2,-1 -42,18,2,1 -42,19,-2,-1 -42,20,0,0 -42,21,-1,-1 -42,22,-1,1 -42,23,1,-1 -42,24,0,1 -42,25,2,-1 -42,26,1,-1 -42,27,2,0 -42,28,1,2 -42,29,1,3 -42,30,1,2 -42,31,1,4 -43,0,-2,-1 -43,1,-3,-2 -43,2,-3,-3 -43,3,-1,-2 -43,4,-1,0 -43,5,1,0 -43,6,-2,0 -43,7,0,1 -43,8,0,-2 -43,9,-2,0 -43,10,2,-3 -43,11,-1,-1 -43,12,-1,-1 -43,13,1,-2 -43,14,-1,-2 -43,15,0,-1 -43,16,2,1 -43,17,1,0 -43,18,3,3 -43,19,1,0 -43,20,1,0 -43,21,1,2 -43,22,2,0 -43,23,0,1 -43,24,0,2 -43,25,0,-2 -43,26,-2,3 -43,27,1,-1 -43,28,1,1 -43,29,1,4 -43,30,1,2 -43,31,0,3 -44,0,-3,-4 -44,1,-2,0 -44,2,-3,-3 -44,3,-1,-2 -44,4,-3,1 -44,5,1,-2 -44,6,-3,1 -44,7,-1,-1 -44,8,-1,-1 -44,9,-1,0 -44,10,1,-1 -44,11,2,-2 -44,12,-1,0 -44,13,3,0 -44,14,-2,-2 -44,15,1,3 -44,16,1,-2 -44,17,-2,2 -44,18,1,1 -44,19,-1,0 -44,20,1,-1 -44,21,3,2 -44,22,1,-3 -44,23,1,3 -44,24,-1,-1 -44,25,1,2 -44,26,-3,-1 -44,27,4,0 -44,28,-1,0 -44,29,5,4 -44,30,0,0 -44,31,3,7 -45,0,0,-3 -45,1,-1,1 -45,2,-1,-2 -45,3,-1,0 -45,4,-2,-1 -45,5,0,0 -45,6,-2,-2 -45,7,-2,0 -45,8,0,0 -45,9,-1,0 -45,10,1,0 +42,9,2,0 +42,10,1,0 +42,11,-2,0 +42,12,1,0 +42,13,1,0 +42,14,1,1 +42,15,2,3 +42,16,-1,-2 +42,17,-1,0 +42,18,0,0 +42,19,0,-2 +42,20,-2,1 +42,21,0,0 +42,22,2,-1 +42,23,-1,0 +42,24,-1,0 +42,25,1,0 +42,26,0,0 +42,27,0,0 +42,28,0,1 +42,29,0,0 +42,30,2,1 +42,31,1,2 +43,0,-2,-3 +43,1,0,-1 +43,2,-2,-1 +43,3,-3,-1 +43,4,1,0 +43,5,0,-3 +43,6,0,0 +43,7,0,-2 +43,8,0,1 +43,9,2,-1 +43,10,0,1 +43,11,3,-1 +43,12,1,2 +43,13,-2,1 +43,14,2,0 +43,15,0,8 +43,16,0,0 +43,17,0,0 +43,18,0,0 +43,19,0,0 +43,20,0,0 +43,21,0,0 +43,22,0,0 +43,23,0,0 +43,24,0,0 +43,25,0,0 +43,26,0,0 +43,27,0,0 +43,28,0,0 +43,29,0,0 +43,30,0,0 +43,31,0,0 +44,0,-1,0 +44,1,-1,-1 +44,2,0,0 +44,3,-2,0 +44,4,0,-1 +44,5,0,-1 +44,6,0,0 +44,7,-1,-2 +44,8,1,0 +44,9,1,1 +44,10,0,0 +44,11,2,0 +44,12,0,1 +44,13,0,1 +44,14,0,0 +44,15,1,2 +44,16,-1,0 +44,17,0,-1 +44,18,-1,-1 +44,19,0,1 +44,20,0,-1 +44,21,0,-1 +44,22,0,-1 +44,23,0,1 +44,24,1,0 +44,25,0,-1 +44,26,1,1 +44,27,0,1 +44,28,0,1 +44,29,0,-1 +44,30,0,1 +44,31,0,1 +45,0,-1,-1 +45,1,-1,-1 +45,2,0,0 +45,3,0,0 +45,4,-1,0 +45,5,-1,0 +45,6,0,-1 +45,7,0,-2 +45,8,-1,1 +45,9,1,1 +45,10,2,0 45,11,0,0 -45,12,0,-2 -45,13,0,2 -45,14,1,-2 -45,15,-1,0 -45,16,0,-1 -45,17,1,1 -45,18,-1,-2 -45,19,1,2 -45,20,0,-1 -45,21,0,0 -45,22,0,0 -45,23,2,0 -45,24,0,0 -45,25,1,2 -45,26,1,0 -45,27,0,2 -45,28,2,0 -45,29,0,2 -45,30,1,0 +45,12,-1,0 +45,13,1,0 +45,14,2,1 +45,15,0,2 +45,16,-1,-1 +45,17,-1,-1 +45,18,0,-1 +45,19,-1,1 +45,20,0,-2 +45,21,0,1 +45,22,0,-1 +45,23,-1,-2 +45,24,1,-1 +45,25,1,3 +45,26,0,-1 +45,27,1,1 +45,28,0,0 +45,29,0,1 +45,30,0,-1 45,31,1,4 -46,0,-1,-2 -46,1,-1,1 -46,2,-1,-2 +46,0,-3,0 +46,1,0,-1 +46,2,-1,0 46,3,-1,0 -46,4,0,0 +46,4,-1,-2 46,5,1,-1 -46,6,-3,0 -46,7,2,-1 -46,8,-2,-1 -46,9,1,0 -46,10,0,0 -46,11,0,0 -46,12,0,0 -46,13,-1,-2 -46,14,-1,-1 -46,15,-1,-3 -46,16,1,2 -46,17,1,-1 -46,18,1,2 -46,19,1,0 +46,6,-1,0 +46,7,0,-2 +46,8,1,0 +46,9,2,1 +46,10,-1,0 +46,11,3,0 +46,12,-1,2 +46,13,1,1 +46,14,-1,0 +46,15,2,2 +46,16,0,0 +46,17,0,-1 +46,18,0,0 +46,19,0,1 46,20,0,0 -46,21,-1,1 -46,22,3,0 -46,23,-2,1 -46,24,2,1 -46,25,-1,0 +46,21,0,-1 +46,22,0,0 +46,23,0,1 +46,24,0,0 +46,25,0,-1 46,26,0,0 -46,27,0,0 +46,27,0,1 46,28,0,0 -46,29,1,2 -46,30,1,1 -46,31,1,3 -47,0,0,-1 -47,1,0,0 -47,2,-2,-1 +46,29,0,-1 +46,30,0,0 +46,31,0,1 +47,0,0,0 +47,1,-1,-1 +47,2,0,0 47,3,0,0 -47,4,-1,0 -47,5,-1,-1 -47,6,-1,0 -47,7,-1,-1 +47,4,0,0 +47,5,-1,0 +47,6,0,0 +47,7,0,-1 47,8,0,0 -47,9,0,0 -47,10,0,-2 +47,9,1,1 +47,10,0,0 47,11,0,0 -47,12,-1,-1 -47,13,0,-1 -47,14,-1,-1 -47,15,0,-1 -47,16,0,1 +47,12,0,0 +47,13,1,0 +47,14,0,0 +47,15,0,1 +47,16,-2,-1 47,17,0,0 -47,18,2,1 -47,19,0,0 -47,20,1,0 -47,21,1,1 -47,22,1,0 -47,23,1,1 -47,24,0,0 +47,18,0,0 +47,19,-2,-2 +47,20,2,1 +47,21,0,0 +47,22,0,0 +47,23,2,2 +47,24,-2,-1 47,25,0,0 -47,26,0,2 -47,27,0,0 -47,28,1,1 -47,29,0,1 -47,30,1,1 -47,31,0,1 -48,0,-2,-2 -48,1,-2,-2 -48,2,-2,-1 -48,3,-4,-3 +47,26,0,0 +47,27,-2,-2 +47,28,2,1 +47,29,0,0 +47,30,0,0 +47,31,2,2 +48,0,-1,-2 +48,1,0,0 +48,2,-2,0 +48,3,0,0 48,4,0,0 -48,5,-1,0 -48,6,-1,0 -48,7,1,-1 -48,8,-1,1 -48,9,-1,-2 -48,10,0,0 -48,11,0,1 -48,12,1,-2 -48,13,0,0 -48,14,1,0 -48,15,-3,-2 -48,16,2,0 -48,17,0,0 +48,5,0,-3 +48,6,0,1 +48,7,-2,-3 +48,8,1,2 +48,9,0,0 +48,10,2,0 +48,11,0,0 +48,12,0,0 +48,13,0,3 +48,14,0,-1 +48,15,2,3 +48,16,-2,-2 +48,17,-1,-1 48,18,0,-1 -48,19,4,1 -48,20,-2,0 -48,21,3,0 -48,22,-1,0 -48,23,-1,1 -48,24,1,1 -48,25,-1,0 -48,26,2,2 -48,27,0,-3 -48,28,1,2 -48,29,2,4 -48,30,1,0 -48,31,3,6 -49,0,0,-4 -49,1,-4,0 -49,2,0,0 -49,3,-5,-4 -49,4,1,2 -49,5,-2,-2 -49,6,0,0 -49,7,1,-1 -49,8,-2,0 -49,9,2,-2 -49,10,0,0 -49,11,-1,1 -49,12,1,-1 -49,13,0,2 +48,19,-2,-1 +48,20,1,1 +48,21,1,-1 +48,22,-2,-1 +48,23,1,1 +48,24,0,0 +48,25,-1,-1 +48,26,0,-1 +48,27,0,1 +48,28,1,1 +48,29,1,-1 +48,30,2,3 +48,31,1,3 +49,0,-2,-1 +49,1,0,-2 +49,2,-2,-1 +49,3,2,0 +49,4,0,0 +49,5,-1,-2 +49,6,0,2 +49,7,-1,-2 +49,8,0,1 +49,9,0,0 +49,10,2,-1 +49,11,-2,2 +49,12,2,0 +49,13,1,0 49,14,0,0 -49,15,1,0 -49,16,0,0 -49,17,-2,0 -49,18,0,0 -49,19,-1,0 -49,20,-1,0 -49,21,2,-2 -49,22,0,0 -49,23,1,-1 -49,24,2,0 -49,25,0,2 -49,26,0,0 -49,27,3,-1 -49,28,-1,3 -49,29,4,2 -49,30,0,0 -49,31,1,6 -50,0,-2,-2 -50,1,-1,-1 -50,2,-2,0 -50,3,-2,-3 -50,4,-1,0 -50,5,-1,-1 -50,6,-2,-3 -50,7,-2,-1 -50,8,1,-1 -50,9,-1,0 -50,10,1,0 -50,11,0,1 -50,12,0,-3 -50,13,1,1 -50,14,0,-2 -50,15,0,-2 -50,16,0,2 -50,17,1,-1 +49,15,1,4 +49,16,-3,-1 +49,17,0,0 +49,18,-1,-1 +49,19,1,-1 +49,20,-1,-1 +49,21,1,0 +49,22,0,-1 +49,23,0,-1 +49,24,-1,1 +49,25,2,0 +49,26,-1,-1 +49,27,1,1 +49,28,1,1 +49,29,1,0 +49,30,-2,3 +49,31,2,1 +50,0,-1,-2 +50,1,0,0 +50,2,0,-1 +50,3,-2,-1 +50,4,1,0 +50,5,-1,0 +50,6,-1,-1 +50,7,0,-2 +50,8,1,2 +50,9,0,0 +50,10,0,1 +50,11,2,1 +50,12,-1,0 +50,13,1,0 +50,14,1,1 +50,15,0,2 +50,16,0,-1 +50,17,-2,-1 50,18,0,0 -50,19,2,1 -50,20,1,0 -50,21,-1,-1 -50,22,2,3 -50,23,0,-1 -50,24,1,1 -50,25,1,2 -50,26,1,0 -50,27,0,1 -50,28,0,3 -50,29,1,1 -50,30,0,2 -50,31,2,4 -51,0,0,-3 -51,1,-4,0 -51,2,0,0 -51,3,-2,-4 -51,4,-2,2 -51,5,1,-3 -51,6,0,0 -51,7,-2,0 -51,8,1,-1 -51,9,-1,0 -51,10,0,0 -51,11,1,0 -51,12,-2,-1 -51,13,1,2 -51,14,0,0 -51,15,0,-1 -51,16,0,1 -51,17,-2,-2 -51,18,0,0 -51,19,-2,0 -51,20,2,0 -51,21,1,-1 +50,19,1,-1 +50,20,-1,0 +50,21,-1,1 +50,22,0,-1 +50,23,-1,-2 +50,24,0,1 +50,25,2,1 +50,26,0,0 +50,27,-1,1 +50,28,1,0 +50,29,1,-1 +50,30,0,1 +50,31,1,2 +51,0,-3,-2 +51,1,1,-2 +51,2,-4,0 +51,3,-1,-3 +51,4,1,1 +51,5,-2,-2 +51,6,1,-1 +51,7,-1,1 +51,8,1,0 +51,9,1,0 +51,10,2,0 +51,11,1,1 +51,12,1,1 +51,13,0,0 +51,14,1,1 +51,15,1,5 +51,16,-1,-1 +51,17,0,0 +51,18,-1,0 +51,19,-1,-1 +51,20,0,0 +51,21,-1,-2 51,22,0,0 -51,23,4,0 -51,24,-1,-1 -51,25,3,2 -51,26,0,0 -51,27,-1,0 -51,28,2,3 +51,23,-2,-2 +51,24,1,1 +51,25,0,0 +51,26,1,0 +51,27,1,1 +51,28,0,0 51,29,1,2 51,30,0,0 -51,31,2,5 -52,0,0,0 -52,1,-4,-3 +51,31,2,2 +52,0,-1,-4 +52,1,-1,1 52,2,0,0 -52,3,-1,-1 -52,4,0,0 -52,5,0,0 +52,3,0,-4 +52,4,-1,2 +52,5,1,0 52,6,0,0 -52,7,-1,-1 -52,8,0,0 -52,9,0,-2 +52,7,0,1 +52,8,-1,0 +52,9,1,-1 52,10,0,0 -52,11,-1,0 -52,12,0,0 -52,13,-1,-3 +52,11,-2,-2 +52,12,3,2 +52,13,-1,0 52,14,0,0 -52,15,0,-3 +52,15,2,5 52,16,0,0 -52,17,4,3 +52,17,-1,-1 52,18,0,0 -52,19,1,1 +52,19,0,-1 52,20,0,0 -52,21,0,0 +52,21,1,1 52,22,0,0 -52,23,1,1 +52,23,0,1 52,24,0,0 -52,25,0,2 +52,25,-1,-1 52,26,0,0 -52,27,1,0 +52,27,0,-1 52,28,0,0 -52,29,1,3 +52,29,1,1 52,30,0,0 -52,31,0,3 -53,0,-3,-2 -53,1,0,-1 -53,2,-5,-2 -53,3,0,-2 -53,4,0,0 -53,5,-1,-2 +52,31,0,1 +53,0,-1,-2 +53,1,-1,0 +53,2,0,-1 +53,3,-1,-1 +53,4,-2,1 +53,5,1,-1 53,6,0,0 -53,7,0,-1 -53,8,1,1 -53,9,-1,-1 -53,10,1,1 -53,11,-2,-1 -53,12,0,-1 -53,13,-1,-2 -53,14,-1,-1 -53,15,-1,-3 -53,16,1,2 -53,17,0,1 -53,18,3,0 -53,19,0,2 -53,20,0,-2 -53,21,1,2 -53,22,0,-2 -53,23,0,1 -53,24,1,-1 -53,25,1,1 -53,26,1,1 -53,27,2,1 -53,28,0,3 -53,29,1,2 -53,30,1,3 -53,31,1,3 -54,0,-2,-5 -54,1,1,1 -54,2,-4,-1 -54,3,0,-5 -54,4,-1,2 -54,5,1,-3 -54,6,0,0 -54,7,2,-1 +53,7,1,0 +53,8,-1,0 +53,9,-1,0 +53,10,2,1 +53,11,-1,-1 +53,12,0,1 +53,13,1,1 +53,14,2,0 +53,15,1,2 +53,16,-3,-3 +53,17,0,-1 +53,18,-2,0 +53,19,-1,-3 +53,20,1,1 +53,21,-2,-2 +53,22,3,-1 +53,23,-3,0 +53,24,1,1 +53,25,2,-1 +53,26,0,0 +53,27,1,1 +53,28,1,1 +53,29,0,0 +53,30,-1,1 +53,31,3,6 +54,0,-1,-1 +54,1,-2,-2 +54,2,0,-1 +54,3,-1,0 +54,4,1,1 +54,5,0,-1 +54,6,0,1 +54,7,1,1 54,8,-1,-1 -54,9,-1,1 -54,10,1,-1 -54,11,-5,1 -54,12,3,-1 -54,13,-2,1 -54,14,1,-2 -54,15,0,0 -54,16,0,-1 -54,17,1,1 -54,18,-2,-1 -54,19,2,3 -54,20,-1,-2 -54,21,-1,1 -54,22,2,0 -54,23,-4,1 -54,24,3,-1 -54,25,-1,1 -54,26,1,-1 -54,27,3,1 -54,28,-1,1 -54,29,2,5 -54,30,1,-2 -54,31,2,8 -55,0,-1,-3 -55,1,-2,1 -55,2,-2,-3 -55,3,-1,0 -55,4,-1,-1 -55,5,0,0 -55,6,-2,1 -55,7,-3,1 -55,8,0,-1 -55,9,-2,-2 -55,10,0,-1 -55,11,0,-3 -55,12,-1,0 -55,13,2,-2 -55,14,-3,0 -55,15,-1,-4 -55,16,1,3 -55,17,0,-3 -55,18,2,3 -55,19,1,-2 -55,20,1,1 -55,21,2,2 -55,22,2,-1 -55,23,3,1 -55,24,0,1 -55,25,0,0 +54,9,0,0 +54,10,0,-1 +54,11,-1,0 +54,12,1,1 +54,13,2,-1 +54,14,0,1 +54,15,1,3 +54,16,-2,-4 +54,17,-2,-2 +54,18,-1,2 +54,19,-1,-4 +54,20,1,-1 +54,21,-2,0 +54,22,1,-1 +54,23,1,-3 +54,24,0,0 +54,25,2,2 +54,26,-1,0 +54,27,3,0 +54,28,1,1 +54,29,-2,0 +54,30,1,3 +54,31,1,7 +55,0,-2,-1 +55,1,-2,-2 +55,2,0,-1 +55,3,0,0 +55,4,-2,-1 +55,5,1,0 +55,6,0,0 +55,7,0,-3 +55,8,0,1 +55,9,0,0 +55,10,2,1 +55,11,0,-2 +55,12,0,1 +55,13,1,2 +55,14,2,0 +55,15,0,5 +55,16,-2,-4 +55,17,1,0 +55,18,-2,-1 +55,19,-2,-2 +55,20,0,1 +55,21,1,-1 +55,22,-2,0 +55,23,4,0 +55,24,-2,2 +55,25,1,-2 55,26,0,1 -55,27,0,1 -55,28,1,0 -55,29,0,4 -55,30,3,0 -55,31,1,6 -56,0,-2,-3 -56,1,-1,1 -56,2,-3,-3 -56,3,-2,-1 -56,4,1,-1 +55,27,0,0 +55,28,0,1 +55,29,1,-1 +55,30,0,0 +55,31,2,6 +56,0,0,0 +56,1,-1,-1 +56,2,0,0 +56,3,0,-1 +56,4,0,0 56,5,1,1 -56,6,1,-3 -56,7,1,2 -56,8,0,-2 -56,9,-1,1 -56,10,0,1 -56,11,-2,0 -56,12,0,-1 +56,6,0,0 +56,7,0,1 +56,8,0,0 +56,9,-1,-1 +56,10,0,0 +56,11,0,-1 +56,12,0,0 56,13,1,1 -56,14,-1,-2 -56,15,1,1 -56,16,0,-1 -56,17,-1,1 -56,18,1,-1 -56,19,0,1 -56,20,-1,-1 -56,21,1,1 -56,22,-1,-1 -56,23,1,2 -56,24,2,-2 -56,25,-1,1 -56,26,2,-1 -56,27,0,0 -56,28,0,3 -56,29,1,1 -56,30,1,2 -56,31,1,3 -57,0,-2,-3 -57,1,1,0 -57,2,-3,0 -57,3,-2,-2 -57,4,0,0 -57,5,-2,-1 -57,6,0,0 -57,7,-2,-2 -57,8,1,1 -57,9,-2,-2 -57,10,2,0 -57,11,-4,0 -57,12,1,-2 -57,13,0,1 -57,14,-1,-2 -57,15,0,-3 -57,16,0,1 -57,17,1,0 -57,18,-1,0 -57,19,4,0 -57,20,-2,0 -57,21,2,-3 -57,22,0,2 -57,23,0,-2 -57,24,1,1 -57,25,0,2 -57,26,2,0 -57,27,2,2 -57,28,1,2 +56,14,0,0 +56,15,0,1 +56,16,-1,-2 +56,17,-2,-2 +56,18,0,1 +56,19,0,-2 +56,20,-1,1 +56,21,0,-1 +56,22,1,0 +56,23,-1,0 +56,24,1,0 +56,25,0,0 +56,26,0,-1 +56,27,-2,2 +56,28,1,1 +56,29,2,-1 +56,30,-1,0 +56,31,3,4 +57,0,-2,-2 +57,1,-1,-2 +57,2,0,2 +57,3,1,-4 +57,4,0,-1 +57,5,-1,2 +57,6,1,1 +57,7,-1,1 +57,8,0,0 +57,9,-1,-2 +57,10,0,0 +57,11,1,0 +57,12,2,-1 +57,13,-1,2 +57,14,-1,1 +57,15,3,3 +57,16,-2,-2 +57,17,-1,-1 +57,18,1,-1 +57,19,0,-2 +57,20,0,-1 +57,21,0,3 +57,22,0,-3 +57,23,-1,2 +57,24,0,0 +57,25,1,-1 +57,26,-1,-1 +57,27,0,0 +57,28,2,-1 57,29,0,3 -57,30,1,0 -57,31,2,7 -58,0,-1,-3 -58,1,-4,-2 -58,2,-3,-1 -58,3,-2,-4 -58,4,0,1 -58,5,-1,-1 -58,6,-1,-2 +57,30,0,1 +57,31,1,4 +58,0,-2,0 +58,1,1,-2 +58,2,-2,0 +58,3,1,0 +58,4,-1,0 +58,5,0,-2 +58,6,-1,0 58,7,0,0 -58,8,-2,-2 -58,9,3,0 -58,10,-1,0 -58,11,1,0 -58,12,0,1 -58,13,0,-1 -58,14,-2,0 -58,15,0,-3 -58,16,1,1 -58,17,-2,0 -58,18,3,1 -58,19,-2,0 -58,20,0,1 -58,21,3,-3 -58,22,1,2 -58,23,2,0 -58,24,2,0 -58,25,-1,2 -58,26,1,0 -58,27,-1,0 -58,28,0,1 -58,29,2,5 -58,30,2,0 -58,31,2,7 -59,0,-5,0 -59,1,0,-3 -59,2,-4,-1 -59,3,-1,-3 -59,4,0,0 -59,5,-1,-1 -59,6,-1,1 -59,7,0,-1 -59,8,1,0 -59,9,-1,-1 -59,10,3,0 -59,11,-2,-1 -59,12,1,0 +58,8,0,0 +58,9,1,0 +58,10,0,0 +58,11,1,2 +58,12,-1,0 +58,13,2,0 +58,14,-1,0 +58,15,2,2 +58,16,0,-1 +58,17,-1,0 +58,18,0,0 +58,19,0,-1 +58,20,-1,0 +58,21,0,0 +58,22,0,-1 +58,23,-1,-1 +58,24,0,1 +58,25,1,0 +58,26,0,0 +58,27,0,1 +58,28,1,0 +58,29,0,0 +58,30,0,1 +58,31,1,1 +59,0,-2,-1 +59,1,-2,-2 +59,2,0,-1 +59,3,-4,0 +59,4,1,-1 +59,5,0,-3 +59,6,0,1 +59,7,0,-3 +59,8,0,1 +59,9,2,0 +59,10,0,-1 +59,11,4,2 +59,12,1,1 59,13,0,1 -59,14,-1,-1 -59,15,1,1 -59,16,-1,0 -59,17,0,-1 -59,18,0,1 +59,14,0,1 +59,15,0,5 +59,16,-2,-2 +59,17,1,0 +59,18,-1,0 59,19,-1,-1 -59,20,2,0 -59,21,-1,1 -59,22,3,-1 -59,23,0,1 -59,24,1,0 -59,25,1,1 -59,26,1,0 -59,27,0,1 -59,28,1,0 -59,29,2,3 -59,30,-1,1 -59,31,3,3 -60,0,-2,-1 -60,1,-3,-2 -60,2,-3,-2 -60,3,-3,-2 -60,4,-1,-1 -60,5,-2,-3 -60,6,0,0 -60,7,-2,-1 -60,8,1,0 -60,9,0,0 -60,10,1,1 -60,11,0,-2 -60,12,1,1 -60,13,1,-3 -60,14,0,0 -60,15,-1,-3 +59,20,-1,-1 +59,21,1,0 +59,22,-1,0 +59,23,1,-3 +59,24,0,2 +59,25,-1,0 +59,26,3,0 +59,27,1,1 +59,28,-1,1 +59,29,-1,0 +59,30,3,0 +59,31,-1,3 +60,0,-3,-1 +60,1,-1,0 +60,2,2,-1 +60,3,0,-1 +60,4,-1,0 +60,5,0,0 +60,6,1,-1 +60,7,-1,-1 +60,8,-1,1 +60,9,1,0 +60,10,0,-1 +60,11,0,1 +60,12,1,0 +60,13,0,0 +60,14,1,3 +60,15,1,1 60,16,0,-1 -60,17,3,2 -60,18,-1,-2 -60,19,3,2 -60,20,-1,-1 -60,21,2,1 +60,17,-1,0 +60,18,0,0 +60,19,-1,-1 +60,20,0,1 +60,21,1,0 60,22,0,0 -60,23,2,-1 -60,24,1,2 -60,25,0,0 -60,26,3,3 -60,27,0,2 -60,28,1,1 -60,29,-1,5 +60,23,1,1 +60,24,0,-1 +60,25,-1,0 +60,26,0,0 +60,27,-1,-1 +60,28,0,1 +60,29,1,0 60,30,0,0 -60,31,1,5 -61,0,-1,-1 -61,1,-3,-1 -61,2,-3,-2 -61,3,-1,-1 -61,4,-1,-1 -61,5,0,-3 -61,6,-1,-1 -61,7,-1,-1 -61,8,1,0 -61,9,-1,0 -61,10,1,-1 -61,11,-1,0 -61,12,-1,0 -61,13,1,-3 -61,14,-1,0 -61,15,0,-3 -61,16,-1,1 -61,17,3,1 -61,18,1,0 -61,19,1,1 -61,20,1,-1 -61,21,0,3 -61,22,1,-1 -61,23,1,1 -61,24,1,0 -61,25,1,0 -61,26,1,3 -61,27,1,0 -61,28,1,2 -61,29,-1,3 -61,30,1,2 -61,31,0,3 -62,0,-1,-1 +60,31,1,1 +61,0,-2,-2 +61,1,-2,0 +61,2,-1,0 +61,3,1,-3 +61,4,-2,0 +61,5,3,0 +61,6,0,-2 +61,7,0,1 +61,8,0,0 +61,9,0,0 +61,10,-1,0 +61,11,1,-1 +61,12,0,2 +61,13,3,0 +61,14,-2,2 +61,15,2,3 +61,16,-2,0 +61,17,0,-2 +61,18,-1,0 +61,19,-1,-2 +61,20,1,0 +61,21,-1,0 +61,22,0,0 +61,23,0,0 +61,24,0,0 +61,25,0,0 +61,26,1,0 +61,27,-1,0 +61,28,1,0 +61,29,1,2 +61,30,0,0 +61,31,2,2 +62,0,0,0 62,1,0,0 -62,2,-2,-1 -62,3,0,-1 +62,2,0,0 +62,3,0,0 62,4,0,0 62,5,0,0 -62,6,1,0 -62,7,0,1 -62,8,0,-1 +62,6,0,0 +62,7,0,0 +62,8,0,0 62,9,0,0 -62,10,-2,0 -62,11,0,-1 -62,12,-1,0 +62,10,0,0 +62,11,0,0 +62,12,0,0 62,13,0,0 -62,14,1,-1 -62,15,0,1 -62,16,1,-1 -62,17,0,0 +62,14,0,0 +62,15,0,0 +62,16,0,-1 +62,17,-3,-2 62,18,0,1 -62,19,0,-1 -62,20,0,2 -62,21,0,0 -62,22,1,0 -62,23,0,1 +62,19,1,-1 +62,20,0,-1 +62,21,-1,1 +62,22,0,1 +62,23,1,0 62,24,0,-1 -62,25,0,0 -62,26,0,0 -62,27,0,-1 -62,28,1,2 -62,29,0,0 -62,30,1,1 -62,31,0,1 -63,0,-1,-2 -63,1,0,1 -63,2,-2,-2 +62,25,-1,0 +62,26,0,1 +62,27,1,-1 +62,28,0,-1 +62,29,1,1 +62,30,0,1 +62,31,1,2 +63,0,-2,0 +63,1,-1,-2 +63,2,0,-1 63,3,-1,0 -63,4,0,-1 -63,5,0,1 -63,6,-1,-2 -63,7,0,1 -63,8,-1,-2 -63,9,0,1 -63,10,1,-1 -63,11,-1,1 -63,12,0,-2 -63,13,0,1 -63,14,-2,-3 -63,15,0,0 -63,16,1,0 -63,17,0,1 -63,18,2,0 -63,19,1,2 -63,20,0,-1 -63,21,0,1 -63,22,1,0 -63,23,0,1 -63,24,1,0 -63,25,0,1 -63,26,-1,-1 -63,27,1,1 -63,28,0,0 -63,29,0,1 -63,30,2,1 -63,31,0,2 +63,4,1,-1 +63,5,0,0 +63,6,0,1 +63,7,-1,-3 +63,8,0,0 +63,9,1,2 +63,10,0,-1 +63,11,1,0 +63,12,1,1 +63,13,0,0 +63,14,0,1 +63,15,1,3 +63,16,-1,-3 +63,17,-2,1 +63,18,-1,-1 +63,19,0,-2 +63,20,-2,0 +63,21,2,0 +63,22,0,-1 +63,23,0,-1 +63,24,1,1 +63,25,0,-1 +63,26,1,1 +63,27,-2,0 +63,28,2,2 +63,29,0,0 +63,30,0,1 +63,31,2,3 diff --git a/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_stationary.hex b/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_stationary.hex index 8e1c94c..19886c4 100644 --- a/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_stationary.hex +++ b/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_stationary.hex @@ -1,2049 +1,2049 @@ // 2048 packed 32-bit samples (Q:I) for $readmemh -0000FFFE -FFFEFFFF -0000FFFF FFFEFFFE -FFFF0000 -FFFFFFFF -00000000 -FFFE0000 -00000001 -0001FFFF -00000001 -0002FFFF -FFFFFFFF -00000001 -00000000 -FFFF0000 -00000000 -00000001 0000FFFF +FFFF0000 +FFFFFFFE +0001FFFF +FFFFFFFF +FFFF0001 +FFFFFFFF +00000000 +00000001 +00010000 +FFFF0002 +0001FFFF +00010001 +00010003 +00030001 +FFFEFFFE +00010000 +FFFF0000 +0000FFFF +00000000 +FFFFFFFF +FFFF0000 +FFFFFFFE 00000002 00010000 -FFFFFFFF -00000000 -0000FFFE -00000001 -00010001 -00000001 -00000001 -00010001 +FFFF0000 00020001 -00000000 -00030002 -0000FFFE -FFFFFFFE -FFFEFFFF -FFFFFFFF -00000000 -FFFF0001 -FFFFFFFE -00000000 FFFE0000 -0001FFFF -FFFF0001 +00030001 +FFFF0000 +00030002 0000FFFF +FFFFFFFF +00000000 +0000FFFE +FFFF0000 +FFFF0000 00000000 FFFEFFFF -FFFE0000 -FFFF0000 -00000002 -00010002 -00020001 +00000001 00010001 00000000 -0001FFFF -00010002 -00000000 -00020000 -FFFF0001 -0001FFFF -00000001 +00000002 +00010000 +00010000 00000000 00020001 -00020000 -00010000 -FFFEFFFF -0000FFFD -FFFF0000 -FFFFFFFD -FFFFFFFF -FFFFFFFE -FFFE0000 -0002FFFD -FFFE0000 -FFFE0000 -FFFFFFFF -FFFE0001 -FFFEFFFF -FFFF0001 -FFFF0000 -FFFEFFFE +0000FFFF +FFFDFFFE +00000000 +FFFDFFFF 00000001 -00020003 -FFFF0000 -00030003 +00000000 +00000000 +00010000 +0000FFFF +FFFF0002 +00000000 FFFF0001 -00030002 -00000000 -00000003 -00000000 +00000001 00040000 +00000000 +00030000 +FFFEFFFF +00000000 +FFFFFFFF +FFFFFFFE FFFF0001 -0004FFFF +0000FFFF +FFFF0000 +FFFE0000 +00020001 +00000000 +00010001 +00010002 +0001FFFF 00000001 +00010000 +00020000 +FFFDFFFF +FFFF0001 +0000FFFE +FFFFFFFF +00010000 +FFFF0000 +00000000 +00000001 +0001FFFF +FFFF0001 +0000FFFE +00010003 +0001FFFE +FFFF0002 +00000000 +00040001 +0000FFFE +00000000 +FFFE0000 +00000000 +00000001 +00000000 +0000FFFF +00000000 +00000000 +00000000 +00000000 +00000000 +00000001 +00000000 +00020001 +00000000 +FFFFFFFE +00000000 +FFFFFFFE +0000FFFF +FFFFFFFF +FFFF0000 +FFFFFFFF +FFFE0000 +00010000 +00000002 +00010000 +00000003 +0001FFFF +00010002 +0001FFFF +00020002 +FFFF0000 +FFFFFFFE +00010000 +00000001 +FFFF0000 +0000FFFE +00010000 +FFFF0001 +FFFF0000 +00010000 +00010000 +00000001 +FFFF0000 +00000000 +00010000 +00010001 +FFFE0000 +0000FFFE +00000000 +FFFEFFFF +0001FFFF +00000001 +FFFF0000 +00000000 +00000000 +00000000 +00000000 +0000FFFF +00010001 +00000001 +00010000 +00020002 +0000FFFF +FFFDFFFD +FFFF0000 +FFFFFFFF +00000000 +FFFE0001 +FFFFFFFF +00010000 +00000001 +FFFF0001 +00010000 +00010001 +00000000 +00020001 +00010001 +00030000 +FFFEFFFF +FFFF0000 +0000FFFE +FFFEFFFE +00000000 +00000000 +FFFF0000 +FFFF0000 +00000001 +00010000 +00000000 +00000002 +00020000 +00000000 +00010002 +00030000 +FFFFFFFF +00000001 +FFFFFFFE +00000001 +0000FFFE +FFFF0001 +0000FFFE +FFFF0001 +0001FFFF +00000001 +00010000 +00000001 +00000000 +00010001 +00000000 +00010001 +FFFD0000 +FFFFFFFE +FFFEFFFF +0002FFFE +FFFF0001 +0000FFFD +FFFD0001 +0002FFFF +FFFD0000 +00030002 +FFFEFFFF +00020002 +FFFFFFFF +00020003 +FFFF0001 +00060001 +FFFF0000 +00010000 +FFFF0000 +00010000 +FFFF0000 +00010000 +FFFF0000 +00010000 +FFFF0000 +00010000 +FFFF0000 +00010000 +FFFF0000 +00010000 +FFFF0000 +00010000 +FFFEFFFE +0000FFFF +FFFF0000 +00000000 +0000FFFE +00010001 +FFFF0000 +00010002 +FFFEFFFE +00020001 +FFFF0000 +00000000 +0000FFFE +00010003 +FFFF0000 +00030002 +00000000 +FFFE0000 +0000FFFE +0001FFFE +00000001 +FFFEFFFF +0000FFFE +00000001 +00000000 +00000000 +00000002 +00010002 +0000FFFF +00000001 +00000002 +0002FFFF +0000FFFD +FFFE0000 +FFFF0000 +0000FFFF +00000002 +00000000 +FFFFFFFF +00020001 +0000FFFF +FFFE0000 +00010000 +0000FFFF +00000002 +00000000 +00010001 +00020001 +FFFB0000 0003FFFF FFFF0000 -00040002 -FFFE0000 -0001FFFF -FFFFFFFE -0000FFFF -00000000 -FFFEFFFE -0000FFFF -0000FFFC -00000001 -FFFFFFFE -FFFE0000 FFFFFFFF -00000000 -FFFE0001 -FFFFFFFF -FFFCFFFF -00020000 -FFFF0001 -00010002 -00000001 -00000000 -00020002 -00000001 -00000004 -0000FFFF -00010002 -00020000 -00010001 -00000000 -0002FFFF -00010001 -00040001 -FFFBFFFF -0001FFFE -FFFDFFFB -FFFFFFFF -FFFFFFFE FFFF0000 -FFFEFFFE -0000FFFE -00000000 -FFFEFFFE -FFFF0001 -FFFEFFFF -FFFF0001 -FFFF0002 -0000FFFF -FFFCFFFF -00030001 -FFFD0000 -00010003 -FFFF0001 00010000 -00010002 -00020000 -00000002 -00020000 -00000000 +FFFF0000 +FFFD0000 +00030000 +FFFF0001 +FFFF0000 00030001 -00000001 -00010001 +FFFF0000 +00010000 +FFFF0000 00050000 -00000003 -00080001 -FFFFFFFD -FFFEFFFD -FFFDFFFC -FFFDFFFE -0000FFFF -FFFC0000 -00010000 FFFEFFFF -FFFF0000 -00020000 -FFFC0002 -00020000 -FFFE0001 +00010000 +FFFFFFFF 00000000 -00010000 -00000001 -0001FFFF -00000001 +0000FFFF 00010002 -FFFF0000 -00000003 -FFFE0000 -00010000 -FFFEFFFF -00010000 -00000002 -00020000 +FFFFFFFF 00020002 -00020001 -00060000 +FFFEFFFF 00010000 -00040001 FFFFFFFF -FFFDFFFC -0001FFFF -FFFF0000 -FFFFFFFF -FFFEFFFF -0001FFFF -FFFEFFFF -FFFFFFFF -FFFE0004 -0001FFFF +00000000 +0000FFFF 00010002 FFFFFFFF -00000000 -0001FFFF -FFFF0001 -FFFFFFFF -00010002 -0001FFFF -FFFF0000 -FFFFFFFF -FFFE0003 -0001FFFF -00000003 -FFFFFFFF -00040002 -0001FFFF -00010002 -FFFFFFFF -00040002 -0001FFFF -00030001 -0000FFFF -FFFE0000 -00000000 -FFFE0000 -00000001 -00020000 -00000000 -00020000 -0000FFFF -FFFE0000 -00000000 -FFFE0000 -00000001 -00020000 -00000000 -00020000 -0000FFFF -FFFE0000 -00000000 -FFFE0000 -00000001 -00020000 -00000000 -00020000 -0000FFFF -FFFE0000 -00000000 -FFFE0000 -00000001 -00020000 -00000000 -00020000 -FFFEFFFF -FFFDFFFB -00000000 +00020002 FFFDFFFD +FFFF0001 +0000FFFD +FFFFFFFF 00010000 +FFFD0000 +0001FFFF +FFFF0002 +0001FFFF +FFFF0001 +00000001 +FFFFFFFF +00010000 +00010002 +FFFFFFFF +00070004 +FFFFFFFF +00000000 +FFFFFFFF +FFFF0000 +00010000 +00000000 +FFFF0000 +00010000 +FFFF0001 +00000000 +0001FFFF +FFFF0000 +00010000 +00000000 +00010002 +00010000 +FFFFFFFE +00000000 +FFFEFFFF +00000000 +FFFFFFFE +FFFF0000 +00000001 +FFFF0000 +00010000 +00000000 +00020003 +00000000 +00010000 +00010000 +00000001 +00010000 +FFFEFFFF +FFFFFFFF +00000000 +FFFEFFFF +00010000 +FFFF0000 +00000000 +FFFFFFFF +FFFE0001 +00030001 +00000000 +FFFE0001 +00030000 +FFFF0000 +00000000 +00050001 +FFFEFFFE +0000FFFE +FFFF0000 +FFFF0000 +00000001 +00000000 +0001FFFF +00010002 +FFFE0000 +0000FFFE +00010000 +FFFF0000 +00000001 +00000000 +00030001 +00010002 +FFFEFFFE +FFFF0000 +FFFFFFFD +FFFE0002 +0000FFFF +00000000 +00010000 +FFFFFFFE +00000002 +0001FFFE +FFFF0003 +0002FFFE +FFFE0001 +00040002 +FFFD0000 +00050002 +FFFEFFFF +FFFFFFFE +0001FFFF +FFFE0000 +00000000 +FFFFFFFF +00010000 +00000001 +FFFE0001 +0001FFFE +00010001 +00000000 +00000000 +00010001 +00010000 +00020003 +0000FFFF +FFFDFFFE +00000000 +0000FFFE +FFFF0000 +FFFF0001 +00000000 +0000FFFF +00000001 +FFFF0000 +00000000 +00000002 +00010000 +00010001 +00000000 +00040001 +FFFFFFFE +0000FFFF +FFFE0000 +0000FFFE 00000001 FFFFFFFF 0000FFFF -FFFF0000 -FFFCFFFF -00000000 -FFFFFFFF -FFFFFFFE -FFFF0001 -FFFF0000 -FFFCFFFF -00000001 -00030003 -00000000 -00010001 +FFFEFFFF 00010000 00000001 +00000000 +00000002 +00000001 00010001 -00020003 +00020001 +00020001 FFFF0000 +FFFFFFFC +00000000 +FFFDFFFF +00010000 +FFFE0002 +00000000 +00010000 +FFFF0000 +00010000 +00000000 +FFFF0001 +00010000 +00020002 +00000000 +00030000 +FFFFFFFF +FFFFFFFF +0000FFFF +FFFE0001 +0000FFFE +00010002 +FFFFFFFF +00000000 +0001FFFF +FFFF0001 +0000FFFF +00000001 +00000000 +00010002 +0001FFFF +00020002 +FFFFFFFF +FFFFFFFF +0000FFFF +FFFEFFFF +00010000 +FFFF0000 +00000000 +00000000 +FFFF0001 +0001FFFF +00000001 +0000FFFF +00010000 +00010002 +00000000 +00020002 +FFFFFFFF +FFFEFFFF +00000000 +FFFEFFFE +00000000 +00000001 +FFFEFFFE +00000001 +00010001 +FFFEFFFF +00000000 +00020002 +00000000 +00000001 +00020002 0004FFFF +FFFEFFFF +0000FFFF +0000FFFF +00000002 +FFFEFFFF +00020001 +0000FFFF +00020002 +FFFEFFFF +0000FFFF +0000FFFF +00000002 +FFFEFFFF +00020001 +0000FFFF +00020002 +FFFCFFFF +0001FFFE 00000000 -FFFFFFFF -00030002 -00010001 +FFFF0000 +FFFE0000 +0001FFFF +FFFDFFFF +FFFF0000 +00000001 00010000 -00060003 +00000000 +00030002 +FFFE0000 +0001FFFF +00030001 +00030002 FFFEFFFF 0000FFFE FFFF0000 -FFFDFFFF +FFFFFFFD +00010000 +FFFF0000 +FFFFFFFF +FFFF0000 +00000001 +00000000 +00010000 +FFFF0001 +00010000 +00010002 +00010001 +00030002 +FFFF0000 +0000FFFF +00010000 +00000001 +FFFF0000 +0000FFFF +00010000 +00000001 +FFFF0000 +0000FFFF +00010000 +00000001 +FFFF0000 +0000FFFF +00010000 +00000001 +0000FFFE +FFFE0000 +0000FFFF +FFFFFFFF +00000000 +FFFE0000 +00000000 +FFFEFFFE +00000002 +00020000 +00000001 +00010001 +00000000 +00020000 +00000000 +00020002 +FFFE0000 +FFFEFFFE +0000FFFF +FFFF0001 0001FFFF +0000FFFF +FFFF0001 +0000FFFF +00000000 +00000002 +0000FFFF +0001FFFF +00010001 +FFFE0001 +00010001 +00040001 +00000000 +FFFDFFFC +FFFF0000 +00010001 +00000000 FFFE0001 00010000 -0000FFFE +FFFFFFFF 00000000 -0000FFFE +00010000 FFFF0000 +00010001 00000000 -FFFEFFFF +00000003 +00010000 +0003FFFF FFFF0000 -00010000 -FFFCFFFF -0002FFFF -00000002 -FFFF0000 -00030001 -FFFF0003 -0002FFFF -00010000 -00000002 -0000FFFE -00000002 -FFFF0000 -00000000 -00020003 -00010000 -00010000 -00040001 -FFFFFFFE -FFFDFFFC -0000FFFF FFFCFFFC -00000000 -FFFE0000 -00000000 -00000001 -FFFF0000 -00010001 +FFFFFFFF FFFFFFFF 00000000 -0000FFFF -FFFF0001 -00000000 -FFFFFFFF -FFFF0002 -0001FFFE -00000001 -00000000 -00020000 FFFE0002 -00000000 -00000001 -FFFF0000 -00010001 -00010001 -00000000 -00020001 -00050001 -00000000 -00050003 -FFFEFFFD 0000FFFF -FFFEFFFC -FFFEFFFE -0000FFFE -FFFEFFFF -FFFFFFFE -00000000 -FFFF0000 -FFFD0000 +FFFD0001 00010000 -FFFB0000 -00030000 -FFFC0002 00020000 -FFFDFFFF -00000001 -0000FFFF -00000002 -00000000 -00000002 -00020003 -FFFF0002 -00020002 -FFFF0002 -0003FFFE -00010002 -0003FFFE -00010000 -00040000 -00000000 -00050003 -0000FFFE -FFFDFFFE -FFFFFFFF -FFFF0000 -0000FFFF -FFFFFFFD -FFFF0000 -FFFFFFFF -00000001 -0000FFFF -FFFF0000 -00000000 -00000000 -0001FFFF -FFFFFFFF FFFF0001 -00000000 -00010002 -0001FFFF -FFFF0000 -00000001 -FFFF0001 -00010000 -FFFFFFFF -00000001 -00020001 -00010002 -00020000 -00000000 -00010003 -00010001 -00030001 -FFFFFFFD -FFFEFFFE -0000FFFD -FFFDFFFE -0001FFFF -FFFC0000 -0000FFFE -FFFE0001 -0000FFFE -00000003 -0000FFFF -00010002 -00000000 -FFFFFFFF -0000FFFF -FFFEFFFE -00010001 -00000000 -00000001 -00010002 -FFFFFFFF -00000002 -00000000 -00000001 -00000000 -00020003 -0000FFFF -00010002 -0000FFFE -00050003 -0000FFFF -00040004 -FFFC0000 -0000FFFD -FFFEFFFE -FFFFFFFE -0001FFFF -FFFF0001 -FFFFFFFE -FFFF0002 -0000FFFE -FFFF0000 -00010000 -FFFFFFFF -00010001 -FFFFFFFF -00000000 -FFFE0000 -00000000 -00000001 -00000000 -FFFF0000 -0001FFFF -FFFF0001 -00010000 -00010000 -00000002 -0001FFFE -00010002 -FFFFFFFF -00010001 00030003 -00000002 -00060002 -FFFFFFFE -0000FFFF -FFFEFFFE -0001FFFD -FFFE0000 -0000FFFE -FFFE0001 -FFFFFFFC -00000002 -FFFFFFFF -00020002 -FFFEFFFF -00020000 -FFFEFFFF -0002FFFF -FFFE0000 -0001FFFE -00000001 -FFFEFFFE -FFFF0001 -FFFE0000 -00000002 -FFFE0001 -FFFF0002 -00000002 -00010001 -00020002 -00020003 -00020000 -00020001 -0002FFFF -00040002 -FFFDFFFF -0001FFFF -FFFFFFFE -FFFD0000 -0001FFFF -FFFF0000 -00000001 -0001FFFD -FFFF0001 -FFFFFFFE -0000FFFE -FFFF0001 -FFFEFFFD -00000000 -FFFF0001 -FFFEFFFF -00010001 -FFFF0001 -00010000 -00010000 -00010001 -00010000 -00000001 -00010003 -FFFFFFFF -00010002 -00000000 -FFFFFFFF -00040003 -00000000 -00010001 -00040001 -FFFFFFFE -FFFDFFFC -00000000 -FFFCFFFD -00000000 -FFFF0000 -FFFF0000 -FFFFFFFE -00000000 -00000001 -0000FFFF -00020002 -FFFEFFFE -0000FFFF -00000000 -FFFDFFFD -00010002 -00010000 -00000000 -00020001 -00000000 -FFFD0000 -00010000 -FFFF0002 -00000000 -00020003 -00000001 -00000000 -00020002 -00040001 -00000000 -00050003 -FFFFFFFE -FFFFFFFE -FFFEFFFE -FFFFFFFE -FFFE0000 -00000000 -00000000 -FFFFFFFF -00010000 -FFFF0000 -FFFFFFFF -FFFF0002 -FFFE0000 -00020002 -FFFE0000 -00030001 -FFFF0002 -FFFFFFFE -00020002 -FFFFFFFE -00020000 -00000000 -00000000 -FFFFFFFF -00010000 -FFFF0000 -00010001 -FFFF0002 -00020000 -00020002 -00020000 -00030001 -FFFF0000 -FFFEFFFB -FFFF0000 -FFFFFFFF -FFFF0000 -00000000 -FFFF0000 -0000FFFF -FFFF0000 -FFFF0001 -FFFF0000 -00010001 -FFFF0000 -00030000 -FFFF0000 -00020000 -FFFF0000 -0000FFFF -FFFF0000 -FFFFFFFF -FFFF0000 -00000002 -FFFF0000 -00020001 -FFFF0000 -00030001 -FFFF0000 -00010001 -FFFF0000 -00050002 -FFFF0000 -00040000 -FFFC0000 -FFFCFFF8 -0000FFFF -FFFCFFFD -00010000 -FFFDFFFF -FFFEFFFF -FFFFFFFB -00000001 -FFFE0003 -0000FFFF -FFFD0000 -00010000 -00000001 -FFFE0002 -FFFEFFFE -00000000 -00020002 -0000FFFF -FFFE0003 -00010000 -FFFFFFFD -00020003 -FFFF0005 -0000FFFF -00040003 -0000FFFF -00010004 -00010000 -00040003 -00020000 -000CFFFE -FFFE0032 -FFF3FFD8 -FFFA0007 -FFFAFFF9 -FFFF0002 -FFFDFFFD -FFFE0002 -FFFFFFFC -FFFF0001 -00010003 -FFFF0000 -0001FFFF -FFFF0001 -FFFF0000 -00000004 -0001FFFD -FFFE0004 -0003FFFE -FFFE0003 -00000001 -00010002 -FFFFFFFF -FFFE0002 -00030002 -FFFD0001 -0005FFFF -00010002 -0001FFFF -00010003 -0009FFFC -0004000C -0011FFDD -00000001 -FFFAFFF8 -00000001 -FFFEFFFD -00000001 -FFFE0000 -00000001 -0000FFFE -00000001 -FFFD0000 -00000001 -0001FFFF -00000001 -FFFFFFFF -00000001 -0000FFFF -00000001 -00000000 -00000001 -0000FFFF -00000001 -FFFE0000 -00000001 -00020000 -00000001 -00010000 -00000001 -00010001 -00000001 -00050001 -00000001 -0006FFFF -00000000 -FFFCFFFA -00000000 -FFFDFFFE -00000000 -FFFF0001 -00000000 -00000000 -00000000 -00000001 -00000000 -00000000 -00000000 -0001FFFF -00000000 -00000000 -00000000 -00000000 -00000000 -FFFF0000 -00000000 -FFFF0001 -00000000 -00000000 -00000000 -00000001 00000000 00000002 -00000000 -00050003 -00000000 -00040000 -0000FFFF -FFFFFFFE -0000FFFF -FFFFFFFF -0000FFFF -FFFEFFFE -0000FFFF -FFFEFFFF -00000000 -FFFC0000 -00000000 -FFFDFFFF -00000000 -FFFD0000 -00000000 -FFFEFFFF -00000001 -00010002 -00000001 -00010001 -00000001 -00020002 -00000001 00020001 -00000000 -00040000 -00000000 -00030001 -00000000 -00030000 -00000000 -00020001 -FFFEFFFD -FFFE0000 -FFFEFFFE -FFFCFFFE -00000002 -0001FFFF -00000000 -00020001 -0000FFFD -FFFD0000 -FFFFFFFF -FFFFFFFE -FFFD0002 -0002FFFF -FFFE0000 -00000000 -00020001 -FFFE0000 -00020002 -00000002 -00000000 -00030001 -00000000 -0002FFFF -00000001 -FFFF0000 -00010001 -FFFD0002 -00030000 -00020001 -00020000 -00040000 -FFFF0000 -00000000 -FFFFFFFF -00000000 -0000FFFF -FFFF0000 -0000FFFF -FFFF0000 -00010000 -00000000 -00010001 -00000000 -00000001 -00010000 -00000001 -00010000 -FFFF0000 -00000000 -FFFFFFFF -00000000 -0000FFFF -FFFF0000 -0000FFFF -FFFF0000 -00010000 -00000000 -00010001 -00000000 -00000001 -00010000 -00000001 -00010000 -FFFD0000 -0000FFFE -0000FFFF -FFFFFFFC -00010000 -FFFFFFFF -00000001 -0000FFFF -FFFF0000 -00000000 -0000FFFF -FFFEFFFE -00000000 -FFFEFFFE -00000001 -FFFDFFFE -00010000 -00000002 -0000FFFF -FFFF0004 -00010000 -00010001 -00000001 -00020001 -FFFF0000 -00000000 -0000FFFF -00000002 -00020000 -00020002 -00000001 -00050002 -0000FFFE -FFFDFFFC -FFFFFFFF -FFFEFFFE +0005FFFD FFFF0001 -FFFFFFFF -00000000 -FFFF0000 -0000FFFF -FFFE0002 -0000FFFF -00000000 -FFFF0000 -0002FFFF -FFFF0000 -00010001 -00000000 -FFFF0000 -00010001 -FFFEFFFE -00010001 -FFFF0001 -00000000 -00010002 -0000FFFF -00020002 -00000001 -00000000 -00010002 -00040001 -00010000 -00030001 -FFFFFFFF -FFFFFFFE -0000FFFF -FFFD0000 -0001FFFF -FFFF0002 -0000FFFF -00010000 -FFFF0000 -FFFFFFFD -00000000 -FFFDFFFF -00010000 -FFFF0001 -00000000 -0001FFFF -FFFF0001 -0001FFFE -00000001 -FFFF0000 -00010001 -00010002 -00000001 -00030000 -FFFF0000 -0001FFFF -00000000 -FFFF0001 -00010000 -00010003 -00000000 -00030001 -FFFEFFFE -FFFFFFFE -FFFFFFFE -FFFEFFFD -00000000 -00000001 -0000FFFF -00000001 -00000000 -0000FFFE -FFFE0000 -0000FFFE -FFFEFFFD -FFFE0002 -FFFFFFFF -FFFE0000 -00000002 -00010000 -00010002 -00000001 -00020000 -00000001 -00000001 -00020001 -FFFE0000 -00000000 -00020000 -FFFE0000 -00040003 -00020000 -00010001 -00040002 -FFFF0000 -0000FFFD -FFFF0000 -0000FFFE -FFFF0000 -FFFFFFFE -FFFF0000 -0000FFFF -FFFF0000 -FFFE0000 -FFFF0000 -FFFF0000 -FFFF0000 -FFFF0001 -FFFF0000 -00000000 -FFFF0000 -00020003 -FFFF0000 -00020002 -FFFF0000 -00030002 -FFFF0000 -00020001 -FFFF0000 -00040000 -FFFF0000 -00030000 -FFFF0000 -0003FFFF -FFFF0000 -00020000 -FFFEFFFE -00000002 -FFFEFFFC -00000002 -0000FFFC -FFFF0001 -0001FFFD -FFFF0001 -0000FFFF -FFFE0001 -0000FFFF -FFFE0001 -0000FFFE -FFFD0001 -0000FFFE -FFFD0000 -00020000 -00000000 -00020002 -00000000 -00000002 -00010001 -FFFF0001 -00010001 -0000FFFF -00020001 -0000FFFF -00020001 -00000000 -00030001 -00000000 -00030002 -FFFCFFFF -0001FFFF -FFFDFFFD -FFFFFFFF -0001FFFF -FFFDFFFE -0001FFFF -0000FFFC -FFFF0001 -FFFFFFFE -00000001 -FFFEFFFF -00010001 -FFFF0001 -FFFF0000 -FFFEFFFF -00000001 -FFFF0001 -0001FFFF -FFFF0001 -0001FFFF -00010002 -FFFF0001 -00000004 -0001FFFF -00010002 -0002FFFF -00000001 -00010001 -0003FFFF -00010004 -00060001 -FFFFFFFE -FFFFFFFF -FFFEFFFD -FFFFFFFE -FFFFFFFF -00000000 -00000000 -FFFF0000 -00000000 -0000FFFF -FFFD0001 -0001FFFF -FFFDFFFF -FFFE0001 -00000000 -FFFDFFFF -00010002 -00010001 -00020003 -00010002 -00010001 -00000000 -00000000 -00010000 -00000000 -00000001 -0003FFFF -FFFF0001 -00030001 -0002FFFF -00000000 -00030001 -FFFF0000 -FFFFFFFE -0000FFFF -FFFEFFFF -00010000 -FFFF0001 -00000001 -00010000 -FFFF0000 -0001FFFF -0000FFFF -FFFFFFFF -00010000 -FFFEFFFF -00000001 -00000000 -FFFF0000 -00010002 -0000FFFF -00000001 -00010000 -0001FFFF -00000001 -00010000 -FFFF0000 -FFFF0001 -0000FFFF -FFFF0001 -00010000 -00020001 -00000001 -00020000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -0000FFFD -FFFEFFFE -FFFFFFFE -FFFEFFFE -FFFF0001 -FFFF0000 -FFFFFFFF -00000001 -FFFFFFFE -00000002 -FFFE0000 -00000000 -FFFF0002 -00030000 -FFFF0000 -00020001 -0000FFFF -FFFEFFFE -00010002 -FFFEFFFE -00010003 -FFFF0000 -00010001 -00000001 -0001FFFE -00000002 -00020000 -00000000 -00010002 -00030000 -00010000 -00020001 -FFFEFFFE -FFFFFFFF -FFFEFFFE -00000000 -FFFEFFFF -00020003 -FFFFFFFE -00000002 -0000FFFF -FFFFFFFE -0000FFFF -00000000 -FFFFFFFF -FFFF0001 -00000000 -FFFFFFFE -00000002 -0001FFFF -00000002 -00000000 -00000001 -0002FFFF -FFFF0002 -0004FFFE -FFFE0001 -00010000 -FFFE0001 -00000000 -FFFF0001 -00050001 -FFFE0000 -00050002 -FFFEFFFD -FFFE0000 -FFFDFFFD -FFFE0000 -FFFE0001 -00020000 -FFFEFFFF -00020001 -0000FFFD -FFFD0000 -0000FFFF -FFFE0000 -FFFE0001 -00010000 -FFFEFFFF -00000000 -00020001 -FFFE0000 -00030003 -FFFE0000 -00020001 -00020000 -00020001 -0002FFFF -00000001 -FFFF0000 -00000001 -FFFE0000 -00020001 -00030000 -00020001 -00040000 -FFFFFFFF -FFFEFFFA -FFFFFFFF -FFFDFFFD -00000000 -FFFDFFFF -00000000 -FFFFFFFD -00000000 -FFFD0002 -0000FFFF -FFFF0002 -FFFEFFFE -00010000 -FFFE0000 -FFFEFFFF -00010001 -00000002 -00010001 -00010001 -00000000 -FFFF0001 -00000000 -FFFF0003 -00000000 -00050002 -00000001 -00030000 -00020002 -00030000 -00020000 -00040001 -FFFFFFFE -FFFFFFFE -FFFFFFFE -FFFFFFFF -FFFFFFFF -00000001 -FFFFFFFF -FFFF0001 -0000FFFF -FFFF0001 -00010000 -00010000 -0000FFFF -FFFEFFFF -0001FFFF -FFFD0000 -0001FFFE -00010004 -FFFFFFFE -00010003 -FFFFFFFF -00000001 -FFFFFFFF -00010001 -00000001 -00010001 -00010000 -FFFF0002 -0002FFFF -00020003 -0001FFFF -00030002 -FFFEFFFE -FFFFFFFE -FFFFFFFE -FFFDFFFC -00000002 -FFFFFFFF -FFFF0001 -FFFF0001 -0001FFFE -FFFF0002 -0001FFFF -00000000 -FFFE0001 -00030001 -FFFEFFFF -00020001 -00000000 -FFFFFFFE -00010002 -FFFFFFFE -00000000 -FFFFFFFF -0001FFFF -FFFF0001 -00010000 -FFFF0002 -FFFF0001 -00000002 -00020001 -00030001 -00020001 -00040001 -FFFFFFFE -FFFEFFFD -FFFDFFFD -FFFEFFFF -0000FFFF -00000001 -0000FFFE -00010000 -FFFE0000 -0000FFFE -FFFD0002 -FFFFFFFF -FFFFFFFF -FFFE0001 -FFFEFFFF -FFFF0000 -00010002 -00000001 -00030003 -00000001 -00000001 -00020001 -00000002 -00010000 -00020000 -FFFE0000 -0003FFFE -FFFF0001 -00010001 -00040001 -00020001 -00030000 -FFFCFFFD -0000FFFE -FFFDFFFD -FFFEFFFF -0001FFFD -FFFE0001 -0001FFFD -FFFFFFFF -FFFFFFFF -0000FFFF -FFFF0001 -FFFE0002 -0000FFFF -00000003 -FFFEFFFE -00030001 -FFFE0001 -0002FFFE -00010001 -0000FFFF -FFFF0001 -00020003 -FFFD0001 -00030001 -FFFFFFFF -00020001 -FFFFFFFD -00000004 -0000FFFF -00040005 -00000000 -00070003 -FFFD0000 -0001FFFF -FFFEFFFF -0000FFFF -FFFFFFFE -00000000 -FFFEFFFE -0000FFFE -00000000 -0000FFFF -00000001 -00000000 -FFFE0000 -00020000 -FFFE0001 -0000FFFF -FFFF0000 -00010001 -FFFEFFFF -00020001 -FFFF0000 -00000000 -00000000 -00000002 -00000000 -00020001 -00000001 -00020000 -00000002 -00020000 -00000001 -00040001 -FFFEFFFF -0001FFFF -FFFEFFFF -0000FFFF -00000000 -FFFF0001 -0000FFFD -FFFF0002 -FFFFFFFE -00000001 -00000000 -00000000 -00000000 -FFFEFFFF -FFFFFFFF -FFFDFFFF -00020001 -FFFF0001 -00020001 -00000001 -00000000 +FFFBFFF9 0001FFFF 00000003 -0001FFFE -00010002 -0000FFFF -00000000 -00000000 -00000000 -00020001 -00010001 -00030001 -FFFF0000 -00000000 -FFFFFFFE -00000000 -0000FFFF -FFFFFFFF -0000FFFF -FFFFFFFF -00000000 -00000000 -FFFE0000 -00000000 -FFFFFFFF -FFFF0000 -FFFFFFFF +FFFEFFFF FFFF0000 00010000 -00000000 -00010002 -00000000 -00000001 -00010001 -00000001 -00010001 -00000000 -00000000 -00020000 -00000000 -00010001 -00010000 -00010001 -00010000 -FFFEFFFE -FFFEFFFE -FFFFFFFE -FFFDFFFC -00000000 -0000FFFF -0000FFFF +FFFF0000 FFFF0001 0001FFFF -FFFEFFFF -00000000 -00010000 -FFFE0001 -00000000 -00000001 -FFFEFFFD -00000002 -00000000 -FFFF0000 -00010004 -0000FFFE +00010001 00000003 0000FFFF -0001FFFF +00010004 +00010000 +0005FFFE +FFFF002A +FFF6FFE6 +FFFC0001 +00000003 +FFFF0001 +FFFF0002 +00000001 +FFFBFFFF +00010002 +00020000 +00020003 +00000001 +00010003 +00010004 +00020003 +000DFFE9 +FFFD0025 +FFF7FFE8 +FFFE0002 +00000003 +FFFE0001 +FFFE0000 +0000FFFF +FFFE0002 00010001 -0000FFFF -00020002 FFFD0000 -00020001 00040002 +00000003 00000001 -00060003 -FFFC0000 -0000FFFC -00000000 -FFFCFFFB -00020001 -FFFEFFFE -00000000 -FFFF0001 -0000FFFE -FFFE0002 -00000000 -0001FFFF -FFFF0001 -00020000 -00000000 -00000001 -00000000 -0000FFFE -00000000 -0000FFFF -0000FFFF -FFFE0002 -00000000 -FFFF0001 -00000002 -00020000 -00000000 -FFFF0003 -0003FFFF 00020004 -00000000 -00060001 +00020005 +000EFFEC +FFFF0001 +FFFDFFFB +00000001 +FFFFFFFE +00000001 FFFEFFFE -FFFFFFFF -0000FFFE -FFFDFFFE -0000FFFF -FFFFFFFF -FFFDFFFE -FFFFFFFE +00000001 +FFFF0000 +00010001 FFFF0001 -0000FFFF 00000001 00010000 -FFFD0000 -00010001 -FFFE0000 -FFFE0000 -00020000 -FFFF0001 -00000000 -00010002 00000001 -FFFFFFFF -00030002 -FFFF0000 -00010001 -00020001 -00000001 -00010000 -00030000 -00010001 -00020000 -00040002 -FFFD0000 -0000FFFC -00000000 -FFFCFFFE -0002FFFE -FFFD0001 -00000000 -0000FFFE -FFFF0001 -0000FFFF -00000000 -00000001 -FFFFFFFE -00020001 -00000000 -FFFF0000 -00010000 -FFFEFFFE -00000000 -0000FFFE -00000002 -FFFF0001 -00000000 -00000004 -FFFFFFFF -00020003 -00000000 -0000FFFF -00030002 -00020001 -00000000 -00050002 -00000000 -FFFDFFFC -00000000 -FFFFFFFF -00000000 -00000000 -00000000 -FFFFFFFF -00000000 -FFFE0000 -00000000 -0000FFFF -00000000 -FFFDFFFF -00000000 -FFFD0000 -00000000 -00030004 -00000000 -00010001 -00000000 -00000000 -00000000 -00010001 -00000000 -00020000 -00000000 -00000001 -00000000 -00030001 -00000000 -00030000 -FFFEFFFD -FFFF0000 -FFFEFFFB -FFFE0000 -00000000 -FFFEFFFF -00000000 -FFFF0000 -00010001 -FFFFFFFF -00010001 -FFFFFFFE -FFFF0000 -FFFEFFFF -FFFFFFFF -FFFDFFFF -00020001 -00010000 -00000003 -00020000 -FFFE0000 -00020001 -FFFE0000 -00010000 -FFFF0001 -00010001 -00010001 -00010002 -00030000 -00020001 -00030001 -00030001 -FFFBFFFE -00010001 -FFFFFFFC -FFFB0000 -0002FFFF -FFFD0001 -00000000 -FFFF0002 -FFFFFFFF -0001FFFF -FFFF0001 -0001FFFB -FFFF0003 -0001FFFE -FFFE0001 -00000000 -FFFF0000 -00010001 -FFFFFFFE -00030002 -FFFEFFFF -0001FFFF -00000002 -0001FFFC -FFFF0003 -0001FFFF -FFFF0001 -00010003 -0001FFFF -00050002 -FFFE0001 -00080002 -FFFDFFFF -0001FFFE -FFFDFFFE -0000FFFF -FFFFFFFF -00000000 -0001FFFE -0001FFFD -FFFF0000 -FFFEFFFE -FFFF0000 -FFFD0000 -0000FFFF -FFFE0002 -0000FFFD -FFFCFFFF -00030001 -FFFD0000 -00030002 -FFFE0001 -00010001 00020002 -FFFF0002 -00010003 -00010000 -00000000 -00010000 -00010000 00000001 -00040000 -00000003 -00060001 -FFFDFFFE -0001FFFF -FFFDFFFD -FFFFFFFE -FFFF0001 -00010001 -FFFD0001 -00020001 -FFFE0000 -0001FFFF -00010000 -0000FFFE +0005FFFE FFFF0000 -00010001 -FFFEFFFF -00010001 -FFFF0000 -0001FFFF -FFFF0001 -00010000 -FFFFFFFF -00010001 -FFFFFFFF -00020001 -FFFE0002 -0001FFFF -FFFF0002 -00000000 -00030000 -00010001 -00020001 -00030001 -FFFDFFFE -00000001 -0000FFFD -FFFEFFFE -00000000 -FFFFFFFE +FFFBFFFB 00000000 FFFEFFFE -00010001 -FFFEFFFE -00000002 -0000FFFC -FFFE0001 -00010000 -FFFEFFFF -FFFD0000 -00010000 -00000001 -0000FFFF -00000004 -0000FFFE -FFFD0002 -00020000 -FFFE0000 -00010001 -00020000 -00000002 -00020002 -00020001 -00030000 -00000001 -00070002 -FFFDFFFF -FFFEFFFC -FFFFFFFD -FFFCFFFE -00010000 -FFFFFFFF -FFFEFFFF -00000000 -FFFEFFFE -00000003 -0000FFFF -00000001 -00010000 -FFFF0000 -0000FFFE -FFFD0000 -00010001 -0000FFFE -00010003 -0000FFFE 00010000 FFFD0003 -00020001 -00000002 -00000002 -0002FFFF -00000001 -0000FFFF -00010000 -00050002 -00000002 -00070002 -0000FFFB -FFFD0000 -FFFFFFFC -FFFDFFFF 00000000 -FFFFFFFF -0001FFFF +FFFF0001 FFFF0000 -00000001 -FFFFFFFF -00000003 -FFFFFFFE -00000001 -00010000 -FFFFFFFF -00010001 -0000FFFF -FFFF0000 -00010000 -FFFFFFFF +00030001 +00000000 00000002 -0001FFFF -FFFF0003 00010000 -00000001 00010001 -00000001 -00010000 -00000001 -00030002 -0001FFFF -00030003 -FFFFFFFE -FFFEFFFD -FFFEFFFD -FFFEFFFD -FFFFFFFF +00000000 +0007FFFF +00000000 FFFDFFFE +FFFFFFFF +FFFEFFFE 00000000 -FFFFFFFE -00000001 -00000000 -00010001 -FFFE0000 -00010001 -FFFD0001 -00000000 -FFFDFFFF +00000002 +FFFF0000 FFFF0000 -00020003 -FFFEFFFF -00020003 -FFFFFFFF -00010002 00000000 -FFFF0002 -00020001 +00010000 +00010001 +00000002 00000000 -00030003 00020000 -00010001 -0005FFFF -00000000 -00050001 -FFFFFFFF -FFFFFFFD -FFFEFFFD -FFFFFFFF -FFFFFFFF -FFFD0000 -FFFFFFFF -FFFFFFFF -00000001 -0000FFFF -FFFF0001 -0000FFFF -0000FFFF -FFFD0001 -0000FFFF -FFFD0000 -0001FFFF -00010003 -00000001 -00010001 -FFFF0001 +00010000 00030000 -FFFF0001 +00000000 +FFFDFFFD +00000000 +FFFF0000 +00000000 +00000000 +00000000 +FFFF0000 +00000000 00010001 +00000000 +FFFF0000 +00000000 +00020002 +00000000 +00030000 +FFFEFFFF +0000FFFF +00000000 00000001 +FFFFFFFE +FFFFFFFF +00010000 +FFFF0001 +0000FFFF +0000FFFF +00020002 +00000001 +FFFF0000 +0001FFFF +00010002 +00010001 +FFFEFFFF +FFFF0000 +FFFEFFFF +00010000 +FFFF0000 +00010000 +FFFFFFFF +00010001 +0000FFFF +FFFF0000 +00000001 +0001FFFE +FFFF0002 +00010000 +FFFF0001 +00050001 +FFFE0000 +0000FFFF +0000FFFF +00000001 +FFFFFFFF +FFFFFFFF +0001FFFF +FFFF0001 +00000000 +0000FFFF +00020001 +00000001 +FFFF0001 +0001FFFF +00010001 +00010001 +FFFDFFFF +0001FFFF +00000000 +FFFE0001 +0001FFFD +00000001 +00000002 +FFFFFFFF +0001FFFF +FFFF0001 +00000000 +0000FFFF +00010001 +0000FFFF +00000002 +00030001 +FFFEFFFF +0001FFFF +FFFE0000 +0001FFFE +FFFF0000 +0000FFFF +FFFEFFFF +FFFFFFFF +00000001 +00010001 +00000000 +00010002 +FFFF0000 +00020001 00000001 00030001 +FFFEFFFE +FFFF0000 +0000FFFF +FFFEFFFD 00000001 -00020001 -0003FFFF -00020001 -00030000 FFFFFFFF 00000000 -FFFFFFFE +FFFCFFFF +00020002 +00010000 +00000001 +00020003 +0000FFFF +00010001 +00000000 +00040001 FFFF0000 00000000 +FFFFFFFF +00000000 +0000FFFF +FFFF0000 +0000FFFF +FFFF0000 +00010000 +00000000 +00010001 00000000 00000001 00010000 +00000001 +00010000 +FFFEFFFD +FFFDFFFF +0001FFFE +FFFD0001 +FFFF0000 +00010000 +00010000 +00000001 +FFFEFFFF +00010001 +0001FFFE +FFFD0003 +00010000 +00010000 +00010000 +00060003 +0000FFFE +FFFF0000 +0000FFFE FFFF0000 00000000 +FFFFFFFF +00000001 +FFFFFFFF +00000002 +00010000 +00000002 +00010000 +00000000 +00010001 +0000FFFF +00010001 +FFFFFFFF +00000000 +00000000 +FFFFFFFF +0000FFFF +00000000 +FFFF0000 +FFFF0000 +0001FFFF +00000000 +00000002 +00010001 +0000FFFF +00000000 +00010002 +00010000 +FFFEFFFF +0000FFFF +FFFFFFFF +FFFFFFFE +00010001 +FFFFFFFF +00010001 +FFFFFFFF +0000FFFF +00000001 +FFFFFFFF +FFFF0002 +00010001 +00010001 +00010001 +00030001 +0000FFFF +00000000 +FFFF0000 +00000000 +00000001 +00000000 +00010000 +00000000 +0000FFFF +00000000 +FFFF0000 +00000000 +00000001 +00000000 +00010000 +00000000 +FFFF0000 +FFFFFFFE +00000000 +FFFF0001 +0000FFFF +0001FFFF +FFFF0000 +FFFEFFFF +00010000 +00010002 +00000000 +0001FFFF +00000001 +FFFF0001 +00010000 +00020001 +FFFEFFFF +0000FFFF +FFFF0000 +FFFFFFFF +FFFF0000 +00020001 +FFFDFFFE +00010000 +00000001 +0000FFFF +FFFF0000 +00010001 +FFFF0000 +00020001 +00010002 +00030000 +FFFFFFFE +00000000 +FFFE0000 +00000000 +0000FFFF +FFFF0000 +00010000 +FFFF0000 +0001FFFE +00000000 +00000002 +00000000 +00000001 +00010000 +00010002 +00010000 +0000FFFF +FFFE0000 +00000000 +0000FFFF +00000001 +00000000 +00000000 +00020001 +0000FFFF +FFFE0000 +00000000 +0000FFFF +00000001 +00000000 +00000000 +00020001 +FFFFFFFD +FFFEFFFF +0000FFFE +FFFF0002 +FFFF0001 +FFFFFFFD +00020001 +FFFE0000 +FFFF0001 +0002FFFF +00000002 +00010000 +FFFF0001 +00010001 +0002FFFF +00020002 +FFFF0000 0000FFFE FFFF0000 0000FFFF +FFFF0000 +FFFF0000 +FFFF0000 00000000 +FFFF0000 +00020002 +FFFF0000 +00020001 +FFFF0000 +00030000 +FFFF0000 +00020000 +FFFEFFFD +FFFF0000 +FFFEFFFF +0000FFFE +00000001 +FFFFFFFF +FFFE0000 +0002FFFF +FFFE0001 +00010002 +0000FFFF +00000002 +00000001 +0001FFFF +00000002 +00060001 +FFFF0000 +FFFFFFFF +00010000 +00010001 +FFFF0000 +FFFFFFFF +00010000 +00010001 +FFFF0000 +FFFFFFFF +00010000 +00010001 +FFFF0000 +FFFFFFFF +00010000 +00010001 +FFFEFFFF +FFFFFFFC +00000001 +FFFDFFFE +0001FFFE FFFF0001 +FFFF0001 +FFFF0000 +0000FFFF +00010002 +00000001 +00010000 +00010000 +00010001 +00010001 +00030002 +FFFDFFFD +FFFF0000 +FFFE0000 +FFFFFFFC +FFFF0002 +00010000 +FFFEFFFF +00000002 +00010001 +FFFF0000 +00000000 +00030002 +FFFF0000 +00010000 +00000001 +00060000 +FFFDFFFF +0000FFFE +00010000 +FFFFFFFF +0000FFFF +FFFFFFFE +00010002 +FFFF0000 +FFFFFFFF +00000000 +00010000 +FFFF0003 +0000FFFF +00010000 +00010002 +00030002 +FFFF0000 +FFFFFFFE +00010000 +00000001 +FFFF0000 +0000FFFE +00010000 +FFFF0001 +FFFF0000 +00010000 +00010000 +00000001 +FFFF0000 +00000000 +00010000 +00010001 +00000000 +FFFFFFFF +00000000 +00000000 +00000000 +0000FFFF +00000000 +FFFF0000 +00000000 +00010001 +00000000 +00000000 +00000000 +00000001 +00000000 +00010000 +00000000 +FFFEFFFF +00000000 +00000000 +00000000 +00000001 +00000000 +00020000 +00000000 +FFFEFFFF +00000000 +00000000 +00000000 +00000001 +00000000 +00020000 +FFFFFFFF +00010000 +FFFE0000 +00010000 +FFFF0000 +00010000 +FFFEFFFF +00010000 +FFFF0001 +00010000 +00000000 +00010000 +FFFF0000 +00010000 +00000001 +00010000 +FFFDFFFE +0000FFFF +FFFEFFFE +00000000 +FFFEFFFF +00020001 +FFFE0000 +FFFF0001 +00010000 +0000FFFF +00000004 +00000000 +0000FFFF +00020001 +00000002 +0005FFFF +FFFFFFFE +0000FFFF +FFFE0000 +0000FFFD +00000002 +FFFFFFFF +00020000 +FFFE0000 +0001FFFE +00000001 +FFFE0000 +00000001 +00000002 +00010001 +00020000 +00020002 +FFFFFFFF +00000000 +00000000 +FFFFFFFF +00000000 +00000000 +FFFEFFFE +FFFF0000 +00010001 +00000000 +00000000 +00010001 +00000000 +00000000 +00020002 +00010000 +FFFFFFFF +FFFFFFFF +0000FFFF +FFFFFFFF +0000FFFF +00000001 +0000FFFF +FFFF0000 +0001FFFF +FFFF0001 +0000FFFF +FFFF0003 +0000FFFF +00020003 +0000FFFF +00030002 +FFFEFFFE +FFFFFFFD +FFFF0001 +FFFFFFFF +FFFEFFFE +00020002 +FFFE0001 +0000FFFE +00000000 +00010001 +FFFF0001 +00010001 +00000000 +00020000 +00000001 +00040002 +FFFEFFFD +FFFFFFFE +0000FFFE +FFFCFFFF +00010000 +FFFF0001 +FFFE0000 +0000FFFF +00000003 +0001FFFE +00000002 +00000001 +00010000 +00010003 +00020000 +00040001 +FFFF0000 +0000FFFF +00000000 +0000FFFE +00000000 +FFFFFFFF +00000000 +FFFEFFFF +00010000 +00000001 +00000000 +00000002 +00000000 +00010001 +00000000 +00020001 +FFFF0000 +FFFEFFFC +00000000 +FFFE0000 00010000 FFFF0001 00000000 -00010000 +00000000 FFFF0000 00020000 00000000 -00000001 +FFFE0000 00010000 -FFFF0000 +00010003 +00000000 +00040000 00000000 00000000 -FFFF0000 -00020001 00000000 -00010001 -00010000 -FFFEFFFF -00010000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FFFFFFFE FFFEFFFE +00000001 +FFFE0000 +0000FFFF +0002FFFF +FFFF0001 +FFFF0000 +0001FFFE +00000002 +00000001 +0000FFFE +00000001 +00000001 +00010001 +00030002 +FFFEFFFF +0000FFFF +00000000 +FFFE0000 +0001FFFE +00000000 +FFFF0002 +0000FFFF +0000FFFF +00000001 +00000000 +00000000 +00010000 +00000000 +00010002 +00020001 +FFFDFFFE +FFFF0000 +FFFFFFFE +FFFFFFFD +00000001 +FFFD0000 +00000000 +FFFE0000 +00010000 +FFFF0002 +00010000 +FFFF0003 +00020001 +0001FFFE +00000002 +00080000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +0000FFFF +FFFFFFFF +00000000 +0000FFFE +FFFF0000 +FFFF0000 +00000000 +FFFEFFFF +00000001 +00010001 +00000000 +00000002 +00010000 +00010000 +00000000 +00020001 0000FFFF FFFF0000 +FFFFFFFF 00010000 -FFFEFFFF +FFFF0000 +FFFF0000 +FFFF0000 00010000 -FFFEFFFF +00000001 +FFFF0000 +00010001 00010000 -FFFF0001 +00010000 +FFFF0000 +00010000 +00010000 +FFFFFFFF +FFFFFFFF +00000000 +00000000 +0000FFFF +0000FFFF +FFFF0000 +FFFE0000 +0001FFFF +00010001 +00000002 +00000000 +0000FFFF +00000001 +00010002 +00020000 +FFFFFFFF +FFFFFFFF +FFFF0000 0001FFFF FFFE0000 00010000 -FFFDFFFE -00000000 -00000001 -00010000 -00000002 -00020001 FFFF0000 -00010000 -00000001 -00010000 -00000001 -00010000 -FFFFFFFF +FFFEFFFF +FFFF0001 +00030001 +FFFF0000 00010001 00000000 00010000 +FFFF0000 +00040001 +0000FFFD +FFFF0000 +0000FFFF +0000FFFF +FFFEFFFF +FFFF0001 +0000FFFF +FFFE0000 +00000001 00010002 +0000FFFF +00000003 +0002FFFF +00010001 +0000FFFF +00020002 +00000000 +FFFF0000 +00000000 +00010000 +00000000 +FFFF0000 +00000000 +00010000 +00000000 +FFFF0000 +00000000 +00010000 +00000000 +FFFF0000 +00000000 +00010000 +00000000 +FFFFFFFF +00000000 +00000000 +00000000 +0000FFFF +00000000 +FFFF0000 +00000000 +00010001 +00000000 +00000000 +00000000 +00000001 +00000000 +00010000 +FFFFFFFE +00000000 +00000000 +FFFEFFFE +00010002 +00000000 +00000000 +00020002 +FFFFFFFE +00000000 +00000000 +FFFEFFFE +00010002 +00000000 +00000000 +00020002 +FFFEFFFF +00000000 +0000FFFE +00000000 +00000000 +FFFD0000 +00010000 +FFFDFFFE +00020001 +00000000 +00000002 +00000000 +00000000 +00030000 +FFFF0000 +00030002 +FFFEFFFE +FFFFFFFF +FFFF0000 +FFFFFFFE +00010001 +FFFF0001 +FFFFFFFE +00010001 +00000000 +FFFFFFFF +FFFF0000 +00010000 +00010001 +FFFF0001 +00030002 +00030001 +FFFFFFFE +FFFE0000 +FFFFFFFE +00000002 +00000000 +FFFEFFFF 00020000 +FFFEFFFF +00010000 +00000000 +FFFF0002 +0002FFFE +00000002 +00000001 +00000000 +00040001 +FFFFFFFD +00000000 +FFFFFFFF +FFFF0001 +FFFFFFFF +00000001 +FFFF0000 +FFFF0000 +0001FFFF +00000002 +FFFFFFFF +00010001 +00010001 +00000001 +0003FFFE +00010002 +FFFEFFFF +00000000 +FFFF0000 +FFFFFFFE +00000001 +0000FFFF +FFFFFFFF +FFFE0000 +00020001 +00000000 +00010000 +00010002 +0000FFFF +00000001 +00010001 +00020000 +FFFF0000 +FFFFFFFE +00000000 +FFFF0001 +0000FFFF +0001FFFF +FFFF0000 +FFFEFFFF +00010000 +00010002 +00000000 +0001FFFF +00000001 +FFFF0001 +00010000 +00020001 +FFFEFFFD +FFFE0001 +0000FFFC +FFFDFFFF +00010001 +FFFEFFFE +FFFF0001 +0001FFFF +00000001 +00000001 +00000002 +00010001 +00010001 +00000000 +00010001 +00050001 +FFFFFFFF +00000000 +0000FFFF +FFFFFFFF +00000000 +FFFEFFFF +00000000 +FFFEFFFE +00010001 +00000000 +00000001 +00010001 +00000000 +00020001 +00000000 +00020002 +FFFCFFFF +0001FFFF +00000000 +FFFC0000 +0002FFFF +00000001 +00000000 +00010000 +0000FFFF +FFFF0001 +00000000 +FFFEFFFE +00020003 +0000FFFF +00000000 +00050002 +00000000 +FFFFFFFF +00000000 +FFFF0000 +00000000 +00010001 +00000000 +00010000 +00000000 +FFFFFFFF +00000000 +FFFF0000 +00000000 +00010001 +00000000 +00010000 +FFFEFFFF +0000FFFF +FFFF0000 +FFFFFFFF +0001FFFE +FFFF0001 +00000000 +00000001 +0000FFFF +0000FFFF +00010002 +FFFFFFFF +00010000 +00010001 +00000002 +00020001 +FFFDFFFD +FFFF0000 +0000FFFE +FFFDFFFF +00010001 +FFFEFFFE +FFFF0003 +0000FFFD +00010001 +FFFF0002 +00000000 +00010001 +00010001 +00000000 +0001FFFF +00060003 +FFFFFFFF +FFFEFFFE +FFFF0000 +0000FFFF +00010001 +FFFF0000 +00010000 +00010001 +FFFFFFFF +00000000 +FFFF0000 +0000FFFF +00010001 +FFFF0002 +00010000 +00030001 +FFFCFFFE +FFFEFFFE +0002FFFF +FFFCFFFF +FFFF0001 +0000FFFE +FFFF0001 +FFFD0001 +00000000 +00020002 +0000FFFF +00000003 +00010001 +0000FFFE +00030001 +00070001 +FFFFFFFE +FFFEFFFE +FFFF0000 +00000000 +FFFFFFFE +00000001 +00000000 +FFFD0000 +00010000 +00000000 +00010002 +FFFE0000 +00010000 +00020001 +00000002 +00050000 +FFFCFFFE +00000001 +FFFFFFFE +FFFEFFFE +00010000 +FFFF0001 +0000FFFE +00000004 +0002FFFE +FFFE0001 +00010000 +00000000 +00010000 +FFFF0001 +00000000 +00060002 +00000000 +FFFFFFFF +00000000 +FFFF0000 +00000000 +00010001 +00000000 +00010000 +00000000 +FFFFFFFF +00000000 +FFFF0000 +00000000 +00010001 +00000000 +00010000 +FFFEFFFF +FFFEFFFE +00010000 +FFFE0000 +0001FFFF +FFFF0000 +00000001 +0000FFFF +00000001 +00000000 +FFFF0000 +0002FFFE +00010001 +FFFF0002 +0000FFFF +00040003 +FFFEFFFE +FFFEFFFF +00020000 +FFFC0001 +FFFF0000 +0002FFFF +00010001 +0001FFFF +00000000 +FFFEFFFF +00000000 +00000001 +FFFF0002 +0002FFFF +0001FFFF +00030003 +FFFEFFFE +FFFFFFFF +FFFF0001 +FFFE0000 +FFFF0000 +00030000 +FFFD0000 +0002FFFF +00000000 +FFFF0001 +FFFFFFFF +00000000 +FFFF0002 +00030000 +00010000 +00040001 +0000FFFE +FFFE0001 +0000FFFE +00000001 +0000FFFF +FFFE0000 +0000FFFF +00000000 +00000000 +00000001 +00000000 +00020001 +0000FFFF +00000002 +0000FFFF +00020002 +FFFF0000 +0000FFFF +00000000 +FFFF0000 +0000FFFF +00000000 +FFFF0000 +FFFFFFFF +00010000 +00000001 +00000000 +00010000 +00000001 +00000000 +00010000 +00010001 +FFFFFFFE +FFFEFFFE +FFFF0000 +0000FFFC +FFFF0001 +FFFD0000 +00010000 +FFFD0000 +00010000 +00000002 +FFFF0000 +00020004 +00010001 +00010000 +00010000 +00050000 +FFFEFFFE +00000001 +0000FFFF +FFFFFFFF +FFFFFFFF +00000001 +0000FFFF +FFFD0001 +00020000 +0000FFFF +00000003 +00010001 +0001FFFF +0000FFFF +00000003 +0003FFFF +FFFFFFFD +0000FFFF +FFFF0002 +FFFF0000 +0000FFFF +00000000 +FFFF0001 +FFFFFFFF +0001FFFF +00000001 +FFFF0000 +00010000 +00000001 +00000000 +00030001 +00010001 +FFFF0000 +0000FFFF +00000000 +FFFFFFFF +00010000 +00000001 +00000000 +00010001 +FFFF0000 +0000FFFF +00000000 +FFFFFFFF +00010000 +00000001 +00000000 +00010001 +FFFEFFFE +0000FFFE +0000FFFF +FFFD0001 +0000FFFE +00000003 +FFFE0000 +00010000 +00000000 +00000000 +0000FFFF +FFFF0001 +00020000 +00000003 +0002FFFE +00030002 +0000FFFE +FFFE0000 +0000FFFF +FFFEFFFF +00000001 +0000FFFF +00000000 +00000000 +00000000 +00000000 +00000001 +0000FFFF +00000001 +00020001 +00000000 +00020002 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FFFF0000 +FFFEFFFD +00010000 +FFFF0001 +FFFF0000 +0001FFFF +00010000 +00000001 +FFFF0000 +0000FFFF +00010000 +FFFF0001 +FFFF0000 +00010001 +00010000 +00020001 +0000FFFE +FFFEFFFF +FFFF0000 +0000FFFF +FFFF0001 +00000000 +00010000 +FFFDFFFF +00000000 +00020001 +FFFF0000 +00000001 +00010001 +00000000 +00010000 +00030001 +FFFDFFFF +0001FFFE +FFFFFFFF +FFFE0000 +0000FFFE +00000002 +FFFF0000 +FFFF0000 +00010001 +FFFF0000 +00010001 +0000FFFE +00020002 +00000000 +00010000 +00030002 diff --git a/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_two_targets.csv b/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_two_targets.csv index da2afc5..5e7186f 100644 --- a/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_two_targets.csv +++ b/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_two_targets.csv @@ -1,2049 +1,2049 @@ range_bin,doppler_bin,out_i,out_q -0,0,-2,0 -0,1,-1,-2 -0,2,-1,0 -0,3,-2,-2 -0,4,0,-1 +0,0,-2,-2 +0,1,-1,0 +0,2,0,-1 +0,3,-2,-1 +0,4,-1,1 0,5,-1,-1 -0,6,0,0 -0,7,0,-2 -0,8,1,0 -0,9,-1,1 -0,10,1,0 -0,11,-1,2 -0,12,-1,-1 -0,13,1,0 -0,14,0,0 -0,15,0,-1 -0,16,0,0 -0,17,1,0 -0,18,-1,0 -0,19,2,0 -0,20,0,1 +0,6,1,-1 +0,7,-1,-1 +0,8,0,0 +0,9,1,0 +0,10,0,1 +0,11,2,-1 +0,12,-1,1 +0,13,1,1 +0,14,3,1 +0,15,1,3 +0,16,-2,-2 +0,17,0,1 +0,18,0,-1 +0,19,-1,0 +0,20,0,0 0,21,-1,-1 -0,22,0,0 -0,23,-2,0 -0,24,1,0 -0,25,1,1 -0,26,1,0 -0,27,1,0 -0,28,1,1 -0,29,1,2 -0,30,0,0 +0,22,0,-1 +0,23,-2,-1 +0,24,2,0 +0,25,0,1 +0,26,0,-1 +0,27,1,2 +0,28,0,-2 +0,29,1,3 +0,30,0,-1 0,31,2,3 -1,0,-2,0 -1,1,-2,-1 -1,2,-1,-2 -1,3,-1,-1 -1,4,0,0 -1,5,1,-1 -1,6,-2,-1 -1,7,0,0 -1,8,0,-2 -1,9,-1,1 -1,10,1,-1 -1,11,-1,0 -1,12,0,0 -1,13,-1,-2 -1,14,0,-2 -1,15,0,-1 -1,16,2,0 -1,17,2,1 -1,18,1,2 -1,19,1,1 -1,20,0,0 -1,21,-1,1 -1,22,2,1 -1,23,0,0 -1,24,0,2 -1,25,1,-1 -1,26,-1,1 -1,27,1,0 -1,28,0,0 -1,29,1,2 -1,30,0,2 -1,31,0,1 +1,0,-1,0 +1,1,-1,-1 +1,2,0,0 +1,3,-2,0 +1,4,0,-1 +1,5,0,-1 +1,6,0,0 +1,7,-1,-2 +1,8,1,0 +1,9,1,1 +1,10,0,0 +1,11,2,0 +1,12,0,1 +1,13,0,1 +1,14,0,0 +1,15,1,2 +1,16,-1,0 +1,17,-2,-3 +1,18,0,0 +1,19,-1,-3 +1,20,1,0 +1,21,0,0 +1,22,0,0 +1,23,0,1 +1,24,-1,0 +1,25,2,-1 +1,26,0,0 +1,27,1,-1 +1,28,1,0 +1,29,0,4 +1,30,0,0 +1,31,0,3 2,0,-1,-2 -2,1,-3,0 -2,2,0,-1 -2,3,-3,-1 -2,4,-1,-1 -2,5,-2,-1 -2,6,0,-2 -2,7,-3,2 -2,8,0,-2 -2,9,0,-2 -2,10,-1,-1 -2,11,1,-2 -2,12,-1,-2 -2,13,1,-1 -2,14,0,-1 -2,15,-2,-2 -2,16,1,0 -2,17,3,2 -2,18,0,-1 -2,19,3,3 -2,20,1,-1 -2,21,2,3 +2,1,0,0 +2,2,-1,-1 +2,3,-2,-1 +2,4,1,-1 +2,5,-1,0 +2,6,0,-1 +2,7,0,-2 +2,8,1,2 +2,9,0,0 +2,10,1,1 +2,11,2,1 +2,12,-1,1 +2,13,1,0 +2,14,0,1 +2,15,0,2 +2,16,-1,-3 +2,17,1,-1 +2,18,-2,0 +2,19,-1,-1 +2,20,0,1 +2,21,0,-1 2,22,0,0 -2,23,3,0 -2,24,0,0 -2,25,0,4 -2,26,1,-1 -2,27,-1,4 -2,28,1,0 -2,29,-1,3 -2,30,0,-1 -2,31,2,4 -3,0,0,-2 -3,1,-1,1 -3,2,-2,-1 -3,3,-1,0 -3,4,0,0 -3,5,-2,-2 +2,23,1,0 +2,24,-1,1 +2,25,1,-1 +2,26,-2,0 +2,27,3,1 +2,28,-2,1 +2,29,2,-1 +2,30,0,0 +2,31,1,4 +3,0,-2,0 +3,1,0,0 +3,2,0,-2 +3,3,0,0 +3,4,1,0 +3,5,0,0 3,6,-1,0 -3,7,-4,0 -3,8,1,0 -3,9,-2,-1 -3,10,0,-2 -3,11,-1,-1 -3,12,0,0 -3,13,1,-2 -3,14,-1,-1 -3,15,-1,-4 -3,16,0,2 -3,17,1,-1 -3,18,2,1 -3,19,1,0 -3,20,0,0 -3,21,2,2 -3,22,1,0 -3,23,4,0 -3,24,-1,0 -3,25,2,1 -3,26,0,2 -3,27,1,1 -3,28,0,0 -3,29,-1,2 -3,30,1,1 -3,31,1,4 -4,0,-1,-5 -4,1,-2,1 -4,2,-5,-3 -4,3,-1,-1 -4,4,-2,-1 -4,5,0,-1 -4,6,-2,-2 -4,7,-2,0 -4,8,0,0 -4,9,-2,-2 -4,10,1,-1 -4,11,-1,-2 -4,12,1,-1 -4,13,2,-1 -4,14,-1,0 -4,15,-1,-4 -4,16,1,3 -4,17,0,-3 -4,18,3,1 -4,19,1,-1 -4,20,0,1 -4,21,2,1 -4,22,0,2 -4,23,2,0 -4,24,0,2 +3,7,0,0 +3,8,0,0 +3,9,0,0 +3,10,0,0 +3,11,0,0 +3,12,1,0 +3,13,0,0 +3,14,1,2 +3,15,0,0 +3,16,-2,-1 +3,17,0,0 +3,18,-2,-1 +3,19,-1,0 +3,20,-1,-1 +3,21,0,-1 +3,22,-1,-1 +3,23,0,-2 +3,24,0,1 +3,25,2,0 +3,26,0,1 +3,27,3,0 +3,28,-1,1 +3,29,2,1 +3,30,-1,1 +3,31,2,2 +4,0,0,-1 +4,1,-2,-1 +4,2,0,1 +4,3,1,0 +4,4,0,-1 +4,5,-2,0 +4,6,0,1 +4,7,1,-1 +4,8,0,-1 +4,9,0,1 +4,10,0,1 +4,11,1,0 +4,12,0,-1 +4,13,0,0 +4,14,0,1 +4,15,1,1 +4,16,0,-2 +4,17,-2,0 +4,18,0,0 +4,19,-1,-2 +4,20,-1,1 +4,21,1,0 +4,22,0,-1 +4,23,0,0 +4,24,0,0 4,25,0,0 -4,26,1,3 -4,27,1,0 +4,26,0,0 +4,27,-1,0 4,28,1,1 -4,29,0,5 -4,30,3,0 -4,31,1,8 -5,0,-3,-1 -5,1,-3,-2 -5,2,-4,-3 -5,3,-2,-3 -5,4,-1,0 -5,5,0,-4 -5,6,0,1 -5,7,-1,-2 -5,8,0,-1 -5,9,0,2 -5,10,2,-4 -5,11,0,2 -5,12,1,-2 -5,13,0,0 -5,14,0,1 -5,15,1,0 -5,16,-1,1 -5,17,1,0 -5,18,2,1 -5,19,0,-1 -5,20,3,0 -5,21,0,-2 -5,22,0,1 -5,23,-1,-2 -5,24,0,1 -5,25,2,0 -5,26,0,2 -5,27,2,2 -5,28,1,2 -5,29,0,6 -5,30,0,1 -5,31,1,4 +4,29,1,0 +4,30,0,1 +4,31,2,2 +5,0,-1,0 +5,1,-3,-3 +5,2,0,-1 +5,3,-1,-1 +5,4,0,0 +5,5,1,-2 +5,6,-1,-1 +5,7,0,1 +5,8,1,0 +5,9,1,-1 +5,10,0,1 +5,11,1,1 +5,12,0,0 +5,13,1,2 +5,14,1,1 +5,15,0,3 +5,16,-1,-2 +5,17,0,-1 +5,18,-2,0 +5,19,-2,-2 +5,20,0,0 +5,21,0,0 +5,22,0,-1 +5,23,0,-1 +5,24,1,0 +5,25,0,1 +5,26,0,0 +5,27,2,0 +5,28,0,2 +5,29,0,0 +5,30,2,1 +5,31,0,3 6,0,-1,-1 -6,1,-4,-3 -6,2,-1,1 -6,3,0,-1 -6,4,-1,-1 -6,5,-1,-2 -6,6,-1,1 -6,7,-1,-2 -6,8,-1,-1 -6,9,4,-2 -6,10,-1,1 -6,11,2,1 -6,12,-1,-1 -6,13,0,0 -6,14,-1,1 -6,15,1,-1 -6,16,-1,-1 -6,17,2,1 -6,18,-1,1 -6,19,0,-1 -6,20,-1,-1 -6,21,3,-2 -6,22,-1,1 -6,23,3,0 -6,24,-1,-1 -6,25,2,4 -6,26,-1,1 -6,27,2,1 +6,1,1,0 +6,2,-2,-1 +6,3,1,0 +6,4,-2,0 +6,5,1,-1 +6,6,-2,0 +6,7,1,-1 +6,8,-1,1 +6,9,1,0 +6,10,0,1 +6,11,1,0 +6,12,0,0 +6,13,1,1 +6,14,0,0 +6,15,1,1 +6,16,0,-3 +6,17,-2,-1 +6,18,-1,-2 +6,19,-2,2 +6,20,1,-1 +6,21,-3,0 +6,22,1,-3 +6,23,-1,2 +6,24,0,-3 +6,25,2,3 +6,26,-1,-2 +6,27,2,2 6,28,-1,-1 -6,29,2,4 -6,30,-1,1 -6,31,1,3 -7,0,-1,0 -7,1,0,-2 -7,2,0,0 -7,3,0,-2 -7,4,1,0 -7,5,0,2 -7,6,0,0 -7,7,0,2 -7,8,-1,0 -7,9,0,-2 -7,10,0,0 -7,11,0,-2 -7,12,1,0 -7,13,0,2 -7,14,0,0 -7,15,0,2 -7,16,-1,0 -7,17,0,-2 -7,18,0,0 -7,19,0,-2 -7,20,1,0 -7,21,0,2 -7,22,0,0 -7,23,0,2 -7,24,-1,0 -7,25,0,-2 -7,26,0,0 -7,27,0,-2 -7,28,1,0 -7,29,0,2 -7,30,0,0 -7,31,0,2 -8,0,-1,-2 -8,1,-5,-3 -8,2,0,0 -8,3,-3,-3 -8,4,0,1 -8,5,1,0 -8,6,-1,-1 -8,7,-1,0 -8,8,0,-1 -8,9,-1,-4 -8,10,0,0 -8,11,-1,-1 -8,12,-2,-1 -8,13,1,-1 -8,14,0,-1 -8,15,-1,-4 -8,16,1,0 -8,17,3,3 -8,18,0,0 -8,19,1,1 -8,20,0,1 -8,21,1,0 -8,22,1,1 -8,23,3,2 -8,24,0,-1 -8,25,-1,4 -8,26,0,0 -8,27,-1,-1 -8,28,2,3 -8,29,1,1 -8,30,0,1 -8,31,3,6 -9,0,-1,-2 -9,1,-2,0 +6,29,3,2 +6,30,1,-1 +6,31,1,6 +7,0,0,-1 +7,1,0,1 +7,2,0,-1 +7,3,0,1 +7,4,0,-1 +7,5,0,1 +7,6,0,-1 +7,7,0,1 +7,8,0,-1 +7,9,0,1 +7,10,0,-1 +7,11,0,1 +7,12,0,-1 +7,13,0,1 +7,14,0,-1 +7,15,0,1 +7,16,-2,-2 +7,17,-1,0 +7,18,0,-1 +7,19,0,0 +7,20,-2,0 +7,21,1,1 +7,22,0,-1 +7,23,2,1 +7,24,-2,-2 +7,25,1,2 +7,26,0,-1 +7,27,0,0 +7,28,-2,0 +7,29,3,1 +7,30,0,-1 +7,31,2,3 +8,0,0,0 +8,1,0,-2 +8,2,-2,0 +8,3,-2,1 +8,4,1,0 +8,5,-1,-2 +8,6,-2,0 +8,7,1,0 +8,8,0,0 +8,9,0,0 +8,10,2,0 +8,11,2,1 +8,12,-1,0 +8,13,1,0 +8,14,2,0 +8,15,-1,2 +8,16,-3,0 +8,17,0,-2 +8,18,0,-1 +8,19,-1,0 +8,20,2,0 +8,21,0,0 +8,22,-1,-1 +8,23,1,2 +8,24,-1,0 +8,25,0,-2 +8,26,0,1 +8,27,-1,0 +8,28,2,0 +8,29,0,0 +8,30,1,1 +8,31,1,2 +9,0,0,-5 +9,1,-1,3 9,2,0,-1 -9,3,-1,-3 -9,4,-1,1 -9,5,1,-2 -9,6,0,1 -9,7,-2,0 -9,8,0,0 -9,9,-2,0 +9,3,-1,-1 +9,4,0,-1 +9,5,0,1 +9,6,0,-1 +9,7,0,-3 +9,8,0,3 +9,9,1,-1 9,10,0,-1 -9,11,0,0 -9,12,-1,-2 -9,13,0,-1 -9,14,0,1 -9,15,-1,-4 -9,16,-1,2 -9,17,2,0 -9,18,0,-1 -9,19,1,3 -9,20,3,-1 -9,21,-1,2 -9,22,0,1 -9,23,2,0 -9,24,-2,0 -9,25,2,0 -9,26,0,-1 +9,11,1,3 +9,12,0,-1 +9,13,0,1 +9,14,0,-1 +9,15,0,5 +9,16,-1,-2 +9,17,0,1 +9,18,-1,-1 +9,19,0,0 +9,20,-1,0 +9,21,2,1 +9,22,-1,-1 +9,23,2,2 +9,24,-1,-2 +9,25,0,1 +9,26,-1,-1 9,27,0,0 -9,28,3,2 -9,29,0,1 -9,30,0,1 -9,31,1,4 -10,0,-3,-6 -10,1,-5,0 -10,2,-1,-3 -10,3,-8,7 -10,4,6,-10 -10,5,-5,3 -10,6,-1,-2 -10,7,-2,1 -10,8,-1,-2 -10,9,-1,0 -10,10,0,-3 -10,11,-2,0 -10,12,2,-1 -10,13,1,-2 -10,14,-1,-1 -10,15,0,2 -10,16,-1,-2 -10,17,3,2 -10,18,1,-1 -10,19,0,-1 -10,20,-2,0 -10,21,5,3 -10,22,-1,-2 -10,23,2,-1 -10,24,-3,-2 -10,25,3,2 -10,26,0,3 -10,27,6,-2 -10,28,2,-1 -10,29,-1,8 -10,30,3,1 -10,31,4,10 -11,0,-5,-14 -11,1,-6,1 -11,2,3,-6 -11,3,-19,13 -11,4,19,-19 -11,5,-12,8 -11,6,2,-5 +9,28,-1,0 +9,29,2,1 +9,30,-1,-1 +9,31,2,2 +10,0,-3,-3 +10,1,-6,1 +10,2,5,-5 +10,3,-6,3 +10,4,0,0 +10,5,1,-3 +10,6,-1,0 +10,7,0,0 +10,8,-1,-1 +10,9,0,-1 +10,10,1,1 +10,11,0,-1 +10,12,0,0 +10,13,5,3 +10,14,-1,0 +10,15,6,6 +10,16,-3,-3 +10,17,-2,6 +10,18,3,-8 +10,19,-5,1 +10,20,0,-1 +10,21,1,0 +10,22,-1,-1 +10,23,2,1 +10,24,-1,-3 +10,25,0,2 +10,26,-1,-2 +10,27,3,3 +10,28,0,-1 +10,29,1,0 +10,30,3,3 +10,31,0,3 +11,0,-2,-6 +11,1,-16,8 +11,2,20,-9 +11,3,-10,-1 +11,4,0,0 +11,5,-1,-2 +11,6,1,-1 11,7,-1,-1 -11,8,2,-1 -11,9,-3,1 -11,10,1,-3 -11,11,-3,-1 -11,12,0,2 -11,13,1,-2 -11,14,0,0 -11,15,2,-3 -11,16,-1,2 -11,17,0,-1 -11,18,1,-4 -11,19,1,1 -11,20,1,3 -11,21,2,0 -11,22,2,-1 -11,23,1,3 -11,24,0,-3 -11,25,1,3 -11,26,3,1 -11,27,1,3 -11,28,0,-2 -11,29,1,6 -11,30,4,2 -11,31,2,17 -12,0,-3,-15 -12,1,-16,5 -12,2,27,-25 -12,3,-98,109 -12,4,135,-139 -12,5,-57,53 -12,6,16,-22 -12,7,-10,7 -12,8,7,-6 -12,9,0,2 -12,10,5,-6 -12,11,-1,-2 -12,12,0,0 -12,13,4,-1 -12,14,-2,0 -12,15,7,-1 -12,16,-1,-3 -12,17,0,1 -12,18,1,1 -12,19,-4,1 -12,20,1,3 -12,21,1,-1 -12,22,6,0 -12,23,0,3 -12,24,1,-4 -12,25,0,4 -12,26,3,2 -12,27,3,4 -12,28,4,4 -12,29,-4,9 -12,30,8,2 -12,31,-1,15 -13,0,-8,-11 -13,1,-3,-1 -13,2,1,-9 -13,3,-19,15 -13,4,19,-18 -13,5,-11,9 -13,6,0,-6 -13,7,-1,-1 -13,8,2,-1 -13,9,-1,2 -13,10,1,-4 -13,11,-2,0 -13,12,-1,-1 -13,13,2,2 -13,14,0,-3 -13,15,1,0 -13,16,0,-1 -13,17,-1,1 -13,18,1,-1 -13,19,3,-1 -13,20,-1,2 -13,21,3,-1 -13,22,2,0 -13,23,3,3 -13,24,-2,-3 -13,25,1,2 -13,26,1,2 -13,27,2,2 -13,28,-1,1 -13,29,2,2 -13,30,2,5 -13,31,5,14 -14,0,-3,-6 -14,1,-8,-3 -14,2,-1,-4 -14,3,-6,6 -14,4,7,-7 -14,5,-9,1 -14,6,0,-3 -14,7,-1,1 -14,8,0,0 -14,9,1,-3 -14,10,1,-2 -14,11,-3,3 -14,12,3,0 -14,13,1,-3 -14,14,-2,0 -14,15,-1,-2 -14,16,-1,2 -14,17,2,-1 -14,18,1,0 -14,19,0,-4 -14,20,-1,3 -14,21,3,-1 -14,22,2,-1 -14,23,-1,-1 -14,24,0,0 -14,25,1,3 -14,26,3,2 -14,27,1,-1 -14,28,3,0 -14,29,1,7 -14,30,4,0 -14,31,3,14 -15,0,-2,-1 -15,1,-1,0 -15,2,-2,-2 -15,3,-3,1 -15,4,0,-2 -15,5,-2,0 -15,6,1,-2 -15,7,-4,-1 -15,8,2,0 -15,9,-1,-1 -15,10,2,2 -15,11,-1,-2 -15,12,0,2 -15,13,-1,-2 -15,14,-1,2 -15,15,0,-2 -15,16,-2,1 -15,17,1,0 -15,18,-2,-2 -15,19,1,-1 -15,20,0,-2 -15,21,2,0 -15,22,1,-2 -15,23,2,-1 -15,24,2,0 -15,25,1,1 -15,26,2,2 -15,27,3,2 -15,28,0,2 -15,29,1,2 -15,30,-1,2 -15,31,2,4 -16,0,-1,-3 -16,1,-1,1 -16,2,-2,-1 -16,3,0,-3 -16,4,-1,1 -16,5,0,-1 -16,6,1,0 -16,7,-3,1 -16,8,1,-1 -16,9,-2,-1 -16,10,-2,0 -16,11,1,-1 -16,12,-3,-2 -16,13,0,0 -16,14,1,-1 -16,15,-1,-2 -16,16,1,1 -16,17,1,-1 -16,18,0,1 -16,19,0,1 -16,20,1,1 -16,21,0,1 -16,22,1,0 -16,23,3,1 -16,24,-1,-1 -16,25,2,1 -16,26,0,0 -16,27,-1,-1 -16,28,3,4 -16,29,0,0 -16,30,1,1 -16,31,1,4 -17,0,-2,-1 -17,1,-4,-3 +11,8,2,2 +11,9,0,-2 +11,10,4,3 +11,11,-2,-1 +11,12,0,0 +11,13,5,0 +11,14,-1,3 +11,15,1,7 +11,16,-2,-7 +11,17,-7,11 +11,18,12,-19 +11,19,-10,6 +11,20,0,2 +11,21,-1,0 +11,22,-1,0 +11,23,4,0 +11,24,-2,-1 +11,25,3,1 +11,26,-2,-1 +11,27,0,-2 +11,28,0,2 +11,29,1,0 +11,30,3,0 +11,31,2,8 +12,0,-1,-6 +12,1,-70,46 +12,2,127,-52 +12,3,-56,5 +12,4,1,1 +12,5,3,-2 +12,6,1,0 +12,7,0,1 +12,8,1,-4 +12,9,2,2 +12,10,3,6 +12,11,-2,-3 +12,12,3,1 +12,13,1,-2 +12,14,1,6 +12,15,2,1 +12,16,-1,-10 +12,17,-30,62 +12,18,83,-111 +12,19,-47,40 +12,20,2,-4 +12,21,2,-1 +12,22,0,2 +12,23,1,-5 +12,24,1,2 +12,25,-2,2 +12,26,1,-3 +12,27,1,0 +12,28,2,-4 +12,29,2,5 +12,30,0,0 +12,31,1,9 +13,0,-3,-3 +13,1,-13,5 +13,2,18,-7 +13,3,-9,-2 +13,4,-2,0 +13,5,3,-1 +13,6,-4,0 +13,7,3,0 +13,8,1,-1 +13,9,-1,1 +13,10,4,1 +13,11,-1,0 +13,12,0,0 +13,13,3,-1 +13,14,2,2 +13,15,-1,6 +13,16,-1,-3 +13,17,-8,9 +13,18,14,-18 +13,19,-10,7 +13,20,0,-2 +13,21,-2,2 +13,22,-2,-3 +13,23,4,1 +13,24,-1,1 +13,25,4,1 +13,26,-2,0 +13,27,2,-3 +13,28,-2,0 +13,29,2,0 +13,30,2,1 +13,31,0,7 +14,0,-1,-5 +14,1,-9,5 +14,2,8,-7 +14,3,-7,3 +14,4,2,1 +14,5,0,-3 +14,6,2,0 +14,7,-3,-1 +14,8,1,-1 +14,9,1,1 +14,10,0,-1 +14,11,-1,-1 +14,12,2,1 +14,13,0,1 +14,14,2,4 +14,15,3,3 +14,16,-3,-2 +14,17,-4,3 +14,18,5,-5 +14,19,-6,-1 +14,20,-1,1 +14,21,3,-2 +14,22,-2,-1 +14,23,2,-1 +14,24,1,-2 +14,25,-2,1 +14,26,1,1 +14,27,2,3 +14,28,-1,-1 +14,29,3,2 +14,30,0,1 +14,31,2,3 +15,0,-1,-1 +15,1,-1,-1 +15,2,-1,0 +15,3,1,-2 +15,4,-2,0 +15,5,2,1 +15,6,-1,-1 +15,7,0,0 +15,8,-1,1 +15,9,1,-1 +15,10,-1,0 +15,11,1,0 +15,12,0,0 +15,13,2,1 +15,14,-1,1 +15,15,2,2 +15,16,-1,-1 +15,17,-1,-1 +15,18,-1,0 +15,19,-1,-2 +15,20,0,1 +15,21,0,-1 +15,22,0,0 +15,23,0,0 +15,24,1,-1 +15,25,-1,1 +15,26,1,0 +15,27,-1,0 +15,28,0,1 +15,29,2,1 +15,30,0,0 +15,31,2,2 +16,0,-1,-1 +16,1,-1,-2 +16,2,0,0 +16,3,-2,-2 +16,4,0,0 +16,5,1,0 +16,6,-2,-2 +16,7,1,0 +16,8,1,1 +16,9,-1,-2 +16,10,0,0 +16,11,2,2 +16,12,0,0 +16,13,1,0 +16,14,2,2 +16,15,-1,4 +16,16,-1,-2 +16,17,-1,0 +16,18,-1,0 +16,19,2,0 +16,20,-1,-2 +16,21,1,2 +16,22,-1,0 +16,23,2,2 +16,24,-1,-2 +16,25,-1,0 +16,26,-1,0 +16,27,2,0 +16,28,-1,-2 +16,29,1,2 +16,30,-1,0 +16,31,2,2 +17,0,-1,-4 +17,1,-2,1 17,2,0,0 -17,3,-3,-4 -17,4,0,0 -17,5,0,-1 -17,6,0,-1 -17,7,-2,-1 -17,8,0,0 -17,9,1,0 -17,10,-1,0 -17,11,2,2 -17,12,-2,-2 -17,13,-1,0 -17,14,0,0 -17,15,-3,-3 -17,16,2,1 -17,17,0,1 -17,18,0,0 -17,19,1,2 -17,20,0,0 -17,21,0,-3 -17,22,0,1 -17,23,2,-1 -17,24,0,0 -17,25,3,2 -17,26,1,0 -17,27,0,0 -17,28,2,2 -17,29,1,4 -17,30,0,0 -17,31,3,5 -18,0,-2,-1 -18,1,-2,-1 -18,2,-2,-2 -18,3,-2,-1 -18,4,0,-2 -18,5,0,0 -18,6,0,0 -18,7,-1,-1 -18,8,0,1 -18,9,0,-1 -18,10,-1,-1 -18,11,2,-1 -18,12,0,-2 -18,13,2,2 -18,14,0,-2 -18,15,1,3 -18,16,2,-1 -18,17,-2,-1 -18,18,2,2 -18,19,-2,-1 -18,20,0,2 -18,21,0,0 +17,3,0,-1 +17,4,0,-2 +17,5,-1,1 +17,6,-1,-3 +17,7,0,-1 +17,8,1,0 +17,9,0,1 +17,10,0,0 +17,11,2,3 +17,12,0,-2 +17,13,-1,1 +17,14,1,3 +17,15,2,3 +17,16,-1,-2 +17,17,-2,0 +17,18,0,-1 +17,19,-3,-1 +17,20,0,1 +17,21,0,-1 +17,22,-1,-1 +17,23,0,-1 +17,24,1,0 +17,25,0,0 +17,26,0,1 +17,27,1,-1 +17,28,0,1 +17,29,2,1 +17,30,1,1 +17,31,2,3 +18,0,0,-1 +18,1,-1,0 +18,2,0,1 +18,3,1,0 +18,4,0,-1 +18,5,-1,0 +18,6,0,1 +18,7,1,0 +18,8,0,-1 +18,9,-1,0 +18,10,0,1 +18,11,1,0 +18,12,0,-1 +18,13,-1,0 +18,14,0,1 +18,15,1,0 +18,16,-2,0 +18,17,0,-2 +18,18,-1,0 +18,19,-1,-1 +18,20,0,0 +18,21,0,-2 18,22,0,0 -18,23,-1,-1 -18,24,0,1 -18,25,0,-1 -18,26,1,1 -18,27,2,-1 -18,28,0,2 -18,29,2,2 -18,30,0,2 -18,31,1,3 -19,0,-2,-1 +18,23,-2,-2 +18,24,2,0 +18,25,0,2 +18,26,1,0 +18,27,1,1 +18,28,0,0 +18,29,0,2 +18,30,0,0 +18,31,2,2 +19,0,-1,-2 19,1,-1,0 -19,2,-2,-2 -19,3,1,1 -19,4,-1,-2 -19,5,0,1 -19,6,-1,-1 -19,7,0,0 -19,8,-1,-1 -19,9,1,-1 -19,10,-2,-1 -19,11,1,1 -19,12,-2,-2 +19,2,-1,-1 +19,3,0,-2 +19,4,0,1 +19,5,0,0 +19,6,1,0 +19,7,-1,0 +19,8,-1,0 +19,9,1,0 +19,10,-1,-1 +19,11,0,0 +19,12,2,1 19,13,0,0 -19,14,-1,-2 -19,15,1,0 -19,16,0,-1 -19,17,3,2 +19,14,1,2 +19,15,1,2 +19,16,0,0 +19,17,0,0 19,18,0,0 -19,19,1,1 -19,20,-1,0 -19,21,2,1 -19,22,-1,-1 -19,23,2,2 -19,24,-1,-1 -19,25,1,3 -19,26,0,-1 -19,27,1,1 +19,19,0,0 +19,20,0,0 +19,21,0,0 +19,22,0,0 +19,23,0,0 +19,24,0,0 +19,25,0,0 +19,26,0,0 +19,27,0,0 19,28,0,0 -19,29,2,2 -19,30,-1,0 -19,31,1,2 -20,0,-2,-4 -20,1,-2,0 +19,29,0,0 +19,30,0,0 +19,31,0,0 +20,0,-3,-1 +20,1,1,-1 20,2,-1,0 -20,3,-3,-2 -20,4,-1,1 -20,5,-1,-2 -20,6,-2,0 -20,7,-4,-1 -20,8,1,0 -20,9,0,-3 -20,10,-1,1 -20,11,1,-4 -20,12,0,1 -20,13,0,0 -20,14,2,-2 -20,15,-2,0 -20,16,2,0 -20,17,0,0 -20,18,-1,0 -20,19,-1,0 -20,20,1,1 -20,21,-1,0 -20,22,4,0 -20,23,2,-1 -20,24,-1,0 -20,25,2,3 -20,26,-1,-1 -20,27,3,2 -20,28,0,1 -20,29,2,2 -20,30,0,2 -20,31,4,6 -21,0,-2,-2 +20,3,-1,-1 +20,4,-1,0 +20,5,1,0 +20,6,-3,-2 +20,7,1,-2 +20,8,1,1 +20,9,1,1 +20,10,-1,0 +20,11,3,1 +20,12,-1,0 +20,13,1,0 +20,14,1,2 +20,15,1,2 +20,16,0,-1 +20,17,-2,-1 +20,18,0,1 +20,19,1,-1 +20,20,0,-1 +20,21,0,1 +20,22,0,1 +20,23,1,1 +20,24,0,-1 +20,25,-2,-1 +20,26,0,1 +20,27,1,-1 +20,28,0,-1 +20,29,0,1 +20,30,0,1 +20,31,1,1 +21,0,0,-1 21,1,-1,-1 -21,2,-3,-1 -21,3,0,-2 +21,2,-1,-1 +21,3,0,-1 21,4,-1,0 -21,5,-1,0 -21,6,0,-1 -21,7,-2,-1 -21,8,1,-2 -21,9,0,-1 -21,10,0,-1 -21,11,-1,0 -21,12,0,0 -21,13,-1,0 -21,14,1,-1 -21,15,0,1 -21,16,0,-2 -21,17,1,1 -21,18,-1,-1 -21,19,0,0 -21,20,1,0 -21,21,-1,0 -21,22,2,-1 -21,23,0,3 -21,24,1,-2 -21,25,0,5 -21,26,0,-1 -21,27,1,2 -21,28,0,0 -21,29,3,4 -21,30,1,-1 -21,31,2,5 -22,0,-1,0 -22,1,-2,-1 -22,2,-1,-1 -22,3,-1,-1 -22,4,0,-1 -22,5,1,-1 -22,6,0,-1 -22,7,0,0 -22,8,1,0 -22,9,-1,1 -22,10,1,1 -22,11,-1,0 -22,12,0,1 -22,13,-1,-2 -22,14,0,1 -22,15,0,-1 -22,16,-1,0 -22,17,2,1 -22,18,-1,-1 -22,19,1,1 -22,20,0,-1 -22,21,-1,1 -22,22,0,-1 -22,23,0,0 -22,24,1,0 -22,25,1,-1 -22,26,1,1 -22,27,1,0 +21,5,1,0 +21,6,-1,0 +21,7,0,0 +21,8,0,1 +21,9,-1,-1 +21,10,1,1 +21,11,0,-1 +21,12,1,0 +21,13,1,2 +21,14,1,0 +21,15,0,2 +21,16,-1,-3 +21,17,-2,-1 +21,18,-2,0 +21,19,1,0 +21,20,-1,-1 +21,21,1,-2 +21,22,-2,1 +21,23,1,-1 +21,24,-1,1 +21,25,0,-3 +21,26,0,2 +21,27,3,0 +21,28,-1,-1 +21,29,1,2 +21,30,0,1 +21,31,3,5 +22,0,-1,-1 +22,1,-1,0 +22,2,1,0 +22,3,-2,0 +22,4,-1,0 +22,5,-1,-1 +22,6,1,0 +22,7,-1,-2 +22,8,-1,1 +22,9,1,0 +22,10,1,0 +22,11,2,0 +22,12,-1,0 +22,13,1,1 +22,14,1,0 +22,15,1,2 +22,16,0,-1 +22,17,-1,0 +22,18,0,0 +22,19,-1,-1 +22,20,0,1 +22,21,1,0 +22,22,0,0 +22,23,1,1 +22,24,0,-1 +22,25,-1,0 +22,26,0,0 +22,27,-1,-1 22,28,0,1 -22,29,1,2 -22,30,0,1 -22,31,0,1 +22,29,1,0 +22,30,0,0 +22,31,1,1 23,0,-1,0 -23,1,-1,-1 -23,2,-2,-1 -23,3,0,-1 -23,4,-1,-1 -23,5,1,1 +23,1,0,0 +23,2,0,-1 +23,3,0,0 +23,4,0,0 +23,5,0,0 23,6,-1,-1 -23,7,0,1 -23,8,0,-1 -23,9,-1,-1 -23,10,0,-2 -23,11,0,-1 -23,12,0,-1 -23,13,1,1 -23,14,0,-1 -23,15,0,1 -23,16,1,0 +23,7,0,0 +23,8,1,0 +23,9,0,0 +23,10,0,1 +23,11,0,0 +23,12,0,0 +23,13,0,0 +23,14,1,1 +23,15,0,0 +23,16,0,0 23,17,-1,-1 -23,18,2,1 -23,19,0,-1 -23,20,1,1 -23,21,1,1 -23,22,1,1 -23,23,0,1 -23,24,0,1 -23,25,-1,-1 -23,26,0,2 -23,27,0,-1 -23,28,0,1 -23,29,1,1 -23,30,0,1 +23,18,0,0 +23,19,0,0 +23,20,0,0 +23,21,-1,0 +23,22,0,0 +23,23,0,-1 +23,24,0,0 +23,25,1,1 +23,26,0,0 +23,27,0,0 +23,28,0,0 +23,29,1,0 +23,30,0,0 23,31,0,1 -24,0,-1,0 -24,1,-2,-1 -24,2,-1,0 -24,3,-1,-1 -24,4,-1,0 -24,5,-2,-2 -24,6,-1,0 -24,7,-1,-2 -24,8,0,0 -24,9,0,-4 -24,10,0,0 -24,11,-1,-3 -24,12,0,0 -24,13,0,-3 -24,14,0,0 -24,15,-1,-2 -24,16,1,0 -24,17,2,1 -24,18,1,0 -24,19,1,1 -24,20,1,0 -24,21,2,2 -24,22,1,0 -24,23,1,2 -24,24,0,0 -24,25,0,4 -24,26,0,0 -24,27,1,3 -24,28,0,0 -24,29,0,3 -24,30,0,0 -24,31,1,2 -25,0,-3,-2 -25,1,0,-2 -25,2,-2,-2 -25,3,-2,-4 -25,4,2,0 -25,5,-1,1 -25,6,0,0 -25,7,1,2 -25,8,-3,0 -25,9,0,-3 -25,10,-1,-1 -25,11,-2,-1 -25,12,2,-3 -25,13,-1,2 -25,14,0,-2 -25,15,0,0 -25,16,1,2 -25,17,0,-2 -25,18,2,2 -25,19,2,0 -25,20,0,0 -25,21,1,3 -25,22,0,0 -25,23,-1,2 -25,24,1,0 -25,25,0,-1 -25,26,1,1 -25,27,2,-3 -25,28,0,3 -25,29,1,2 -25,30,0,2 -25,31,0,4 -26,0,0,-1 -26,1,0,0 -26,2,-1,-1 -26,3,0,0 -26,4,-1,0 -26,5,0,-1 -26,6,-1,0 -26,7,0,-1 -26,8,0,1 -26,9,0,0 -26,10,1,1 -26,11,0,0 -26,12,1,0 -26,13,0,1 +24,0,-1,-2 +24,1,-1,0 +24,2,0,0 +24,3,1,0 +24,4,-2,-1 +24,5,-1,-1 +24,6,0,1 +24,7,1,-1 +24,8,-1,0 +24,9,-1,0 +24,10,2,2 +24,11,1,0 +24,12,0,-1 +24,13,-1,1 +24,14,2,1 +24,15,1,1 +24,16,-1,-2 +24,17,0,-1 +24,18,-1,-2 +24,19,0,1 +24,20,0,-1 +24,21,0,1 +24,22,-1,-1 +24,23,1,1 +24,24,-1,0 +24,25,0,-1 +24,26,1,0 +24,27,-2,1 +24,28,2,-1 +24,29,0,1 +24,30,1,-1 +24,31,1,5 +25,0,0,-2 +25,1,-1,0 +25,2,-1,0 +25,3,1,0 +25,4,-1,-1 +25,5,-1,-1 +25,6,-1,1 +25,7,1,-1 +25,8,0,0 +25,9,-1,0 +25,10,1,2 +25,11,1,0 +25,12,1,-1 +25,13,-1,1 +25,14,1,1 +25,15,1,1 +25,16,-1,-3 +25,17,-1,1 +25,18,0,0 +25,19,1,-2 +25,20,-3,1 +25,21,1,0 +25,22,2,0 +25,23,-1,-1 +25,24,-1,1 +25,25,1,-1 +25,26,0,0 +25,27,-1,0 +25,28,1,1 +25,29,-1,0 +25,30,2,0 +25,31,1,3 +26,0,-1,-2 +26,1,-1,1 +26,2,0,-2 +26,3,-2,1 +26,4,0,-1 +26,5,-1,0 +26,6,-1,-2 +26,7,-1,-1 +26,8,1,0 +26,9,1,1 +26,10,0,0 +26,11,2,1 +26,12,0,-1 +26,13,1,2 26,14,1,0 -26,15,0,1 -26,16,0,-1 -26,17,0,0 -26,18,-1,-1 -26,19,0,0 -26,20,-1,0 -26,21,0,-1 -26,22,-1,0 -26,23,0,-1 -26,24,0,1 -26,25,0,0 -26,26,1,1 -26,27,0,0 -26,28,1,0 -26,29,0,1 -26,30,1,0 -26,31,0,1 -27,0,0,-3 -27,1,-2,0 -27,2,-1,0 -27,3,-4,-1 -27,4,0,1 -27,5,-1,-1 -27,6,1,0 -27,7,-1,0 -27,8,0,-1 +26,15,1,3 +26,16,-2,-2 +26,17,0,-1 +26,18,-1,0 +26,19,-3,-2 +26,20,1,0 +26,21,-1,-1 +26,22,0,0 +26,23,-1,-4 +26,24,2,2 +26,25,0,1 +26,26,1,0 +26,27,3,2 +26,28,-1,0 +26,29,1,1 +26,30,0,0 +26,31,1,4 +27,0,0,-1 +27,1,0,0 +27,2,-1,-1 +27,3,0,0 +27,4,-1,0 +27,5,0,-1 +27,6,-1,0 +27,7,0,-1 +27,8,0,1 27,9,0,0 -27,10,-1,0 -27,11,-2,-2 -27,12,0,0 -27,13,-2,-2 +27,10,1,1 +27,11,0,0 +27,12,1,0 +27,13,0,1 27,14,1,0 -27,15,-2,-3 -27,16,0,1 -27,17,2,0 -27,18,-1,0 -27,19,4,-1 -27,20,0,1 -27,21,1,1 -27,22,1,0 -27,23,1,2 -27,24,0,-1 -27,25,0,0 -27,26,-1,0 -27,27,2,0 -27,28,0,2 -27,29,2,2 -27,30,1,0 -27,31,2,5 +27,15,0,1 +27,16,-3,-2 +27,17,-1,-3 +27,18,-2,1 +27,19,1,-3 +27,20,0,-1 +27,21,0,1 +27,22,0,1 +27,23,1,0 +27,24,-1,-2 +27,25,1,1 +27,26,-2,1 +27,27,3,-3 +27,28,0,1 +27,29,0,1 +27,30,0,1 +27,31,3,6 28,0,-2,0 -28,1,-4,-3 -28,2,-1,-1 -28,3,-2,-2 -28,4,1,-1 +28,1,0,-1 +28,2,-2,0 +28,3,0,-1 +28,4,0,0 28,5,-1,-1 -28,6,0,0 -28,7,0,-1 -28,8,-1,0 -28,9,2,-2 -28,10,-1,0 -28,11,0,0 -28,12,0,-1 -28,13,-1,2 -28,14,0,-1 +28,6,1,0 +28,7,-1,-1 +28,8,2,0 +28,9,0,1 +28,10,2,0 +28,11,0,1 +28,12,0,0 +28,13,1,1 +28,14,-1,0 28,15,1,1 -28,16,0,0 -28,17,0,-1 -28,18,1,1 -28,19,-2,-2 -28,20,1,1 -28,21,1,-1 -28,22,0,0 -28,23,2,1 -28,24,-1,0 -28,25,2,2 -28,26,1,0 -28,27,0,0 -28,28,2,1 -28,29,1,4 -28,30,0,1 -28,31,1,3 -29,0,-1,-1 -29,1,-2,-1 -29,2,-1,0 -29,3,0,-3 -29,4,-1,1 -29,5,2,-1 -29,6,-1,0 -29,7,0,1 -29,8,0,-1 -29,9,-3,-1 -29,10,0,0 -29,11,-1,-3 -29,12,0,1 -29,13,1,-1 -29,14,0,0 -29,15,-1,1 -29,16,1,-1 -29,17,-2,1 -29,18,1,0 -29,19,0,-1 -29,20,1,1 -29,21,2,1 -29,22,1,0 -29,23,0,3 -29,24,0,-1 -29,25,-1,1 -29,26,0,0 -29,27,1,-1 -29,28,0,1 -29,29,3,1 -29,30,0,0 -29,31,1,3 -30,0,-2,-2 +28,16,-1,-1 +28,17,0,0 +28,18,0,0 +28,19,-1,-1 +28,20,-1,0 +28,21,0,0 +28,22,0,-1 +28,23,0,-1 +28,24,-1,1 +28,25,0,0 +28,26,2,0 +28,27,1,1 +28,28,-1,0 +28,29,0,0 +28,30,2,1 +28,31,0,1 +29,0,-1,-2 +29,1,-1,0 +29,2,-1,-1 +29,3,-2,-1 +29,4,1,1 +29,5,-1,-1 +29,6,1,1 +29,7,-1,-1 +29,8,-1,0 +29,9,1,0 +29,10,-1,-1 +29,11,2,-1 +29,12,1,1 +29,13,1,1 +29,14,1,1 +29,15,1,3 +29,16,-1,0 +29,17,0,0 +29,18,0,-1 +29,19,0,0 +29,20,1,0 +29,21,0,0 +29,22,0,1 +29,23,0,0 +29,24,-1,0 +29,25,0,0 +29,26,0,-1 +29,27,0,0 +29,28,1,0 +29,29,0,0 +29,30,0,1 +29,31,0,0 +30,0,0,-1 30,1,-2,-1 -30,2,-2,-1 -30,3,-3,-2 -30,4,0,0 -30,5,1,0 -30,6,-1,0 -30,7,1,0 -30,8,0,0 -30,9,-2,0 -30,10,0,-2 -30,11,-2,0 -30,12,-3,-2 -30,13,2,-2 -30,14,-1,-1 -30,15,0,-2 -30,16,2,0 -30,17,0,1 -30,18,2,1 -30,19,1,0 -30,20,0,2 -30,21,1,0 -30,22,1,0 -30,23,1,2 -30,24,0,-2 -30,25,0,0 -30,26,0,2 -30,27,0,-2 -30,28,3,4 -30,29,0,2 -30,30,1,1 -30,31,2,4 -31,0,0,-2 -31,1,-4,0 -31,2,0,-1 -31,3,-4,0 -31,4,0,-1 -31,5,-3,-2 -31,6,0,-1 -31,7,-2,-2 -31,8,0,0 -31,9,1,-2 -31,10,0,-1 -31,11,2,-1 -31,12,0,-1 -31,13,2,0 -31,14,0,-1 +30,2,0,0 +30,3,1,-1 +30,4,-1,0 +30,5,-1,1 +30,6,0,-1 +30,7,-1,-2 +30,8,0,1 +30,9,2,1 +30,10,0,0 +30,11,-1,1 +30,12,1,0 +30,13,1,-1 +30,14,0,1 +30,15,1,2 +30,16,-1,-2 +30,17,-1,0 +30,18,0,-1 +30,19,-1,-1 +30,20,0,-1 +30,21,1,2 +30,22,-2,-3 +30,23,0,1 +30,24,1,0 +30,25,-1,0 +30,26,0,-1 +30,27,1,1 +30,28,0,-1 +30,29,1,2 +30,30,2,1 +30,31,0,3 +31,0,-2,-2 +31,1,-1,1 +31,2,1,-1 +31,3,1,-1 +31,4,-2,0 +31,5,1,0 +31,6,1,1 +31,7,-1,-2 +31,8,-2,2 +31,9,1,-1 +31,10,1,-1 +31,11,-1,1 +31,12,2,0 +31,13,-1,0 +31,14,1,1 31,15,1,2 -31,16,0,-2 -31,17,2,2 -31,18,0,-1 -31,19,0,2 -31,20,0,-1 -31,21,1,2 -31,22,0,-1 -31,23,0,0 -31,24,0,0 -31,25,1,4 -31,26,0,-1 -31,27,2,3 -31,28,0,-1 -31,29,0,4 -31,30,0,-1 -31,31,1,4 -32,0,-3,-3 -32,1,1,-1 -32,2,-4,-1 -32,3,-2,-2 -32,4,-2,0 -32,5,-1,-1 -32,6,-1,0 +31,16,-2,-1 +31,17,1,-1 +31,18,-1,0 +31,19,-1,-1 +31,20,0,1 +31,21,1,-1 +31,22,-1,0 +31,23,3,3 +31,24,-2,-1 +31,25,1,-1 +31,26,-1,0 +31,27,-1,-1 +31,28,0,1 +31,29,1,-1 +31,30,-1,0 +31,31,3,3 +32,0,-3,0 +32,1,0,-3 +32,2,-2,-1 +32,3,1,0 +32,4,1,0 +32,5,-2,-2 +32,6,1,1 32,7,-1,-1 -32,8,-2,0 -32,9,3,-1 -32,10,-3,-2 -32,11,4,-2 -32,12,-2,0 -32,13,3,-1 -32,14,-2,1 -32,15,2,-1 -32,16,-1,1 -32,17,-1,-1 -32,18,2,1 -32,19,-2,0 -32,20,2,0 -32,21,1,1 -32,22,-1,0 -32,23,3,-1 -32,24,-2,2 -32,25,1,-1 -32,26,1,2 -32,27,0,0 -32,28,2,0 -32,29,1,5 -32,30,0,-1 -32,31,4,7 -33,0,-3,-7 -33,1,-4,3 -33,2,-4,-6 -33,3,-2,1 -33,4,-1,-3 -33,5,0,-2 -33,6,-2,-2 -33,7,-4,-3 -33,8,2,1 -33,9,0,-1 -33,10,2,-1 -33,11,-1,2 -33,12,1,-1 -33,13,0,1 -33,14,-1,-3 -33,15,1,1 -33,16,1,-3 -33,17,0,3 -33,18,2,0 -33,19,0,-1 -33,20,-1,1 -33,21,0,-2 -33,22,2,2 -33,23,0,-7 -33,24,0,9 -33,25,4,-5 -33,26,0,7 -33,27,3,-2 -33,28,1,3 -33,29,0,3 -33,30,1,3 -33,31,3,9 -34,0,-1,-2 -34,1,-1,0 -34,2,-3,-2 -34,3,-2,-1 -34,4,-1,0 -34,5,-1,-2 -34,6,0,0 +32,8,1,0 +32,9,0,1 +32,10,2,-1 +32,11,-1,2 +32,12,1,0 +32,13,2,0 +32,14,-1,1 +32,15,1,3 +32,16,-1,-2 +32,17,-2,0 +32,18,1,-1 +32,19,-1,0 +32,20,-1,0 +32,21,0,1 +32,22,1,-1 +32,23,1,1 +32,24,-1,-2 +32,25,0,2 +32,26,1,-1 +32,27,-1,0 +32,28,-1,0 +32,29,2,1 +32,30,1,-1 +32,31,1,3 +33,0,-4,-5 +33,1,0,0 +33,2,-1,0 +33,3,0,-2 +33,4,0,1 +33,5,1,-2 +33,6,1,0 +33,7,-2,1 +33,8,0,-1 +33,9,2,0 +33,10,-1,0 +33,11,0,-2 +33,12,4,5 +33,13,-3,-2 +33,14,1,0 +33,15,2,7 +33,16,-1,-1 +33,17,-2,-3 +33,18,-1,1 +33,19,1,-1 +33,20,-1,-1 +33,21,0,-1 +33,22,-1,1 +33,23,2,-2 +33,24,-1,-1 +33,25,4,3 +33,26,-1,1 +33,27,1,-5 +33,28,-1,7 +33,29,2,-3 +33,30,-1,1 +33,31,0,4 +34,0,0,-2 +34,1,-4,-1 +34,2,0,0 +34,3,-2,-3 +34,4,-1,1 +34,5,1,-1 +34,6,0,-1 34,7,0,-1 -34,8,0,-1 -34,9,0,0 -34,10,1,-3 -34,11,-1,1 -34,12,0,-3 -34,13,-1,-2 -34,14,0,0 -34,15,-1,-3 -34,16,1,2 -34,17,1,0 -34,18,3,2 -34,19,2,1 -34,20,1,0 -34,21,1,2 -34,22,0,0 -34,23,0,1 +34,8,0,0 +34,9,2,1 +34,10,0,0 +34,11,0,1 +34,12,1,1 +34,13,1,1 +34,14,0,1 +34,15,2,3 +34,16,-2,-3 +34,17,0,-1 +34,18,0,-1 +34,19,-4,-1 +34,20,2,-2 +34,21,0,1 +34,22,0,-1 +34,23,2,0 34,24,0,1 -34,25,0,0 -34,26,-1,3 -34,27,1,-1 -34,28,0,3 -34,29,1,2 -34,30,0,0 -34,31,1,3 -35,0,0,-1 -35,1,-2,-1 -35,2,-1,0 -35,3,-1,-2 -35,4,0,1 -35,5,1,-1 +34,25,0,-1 +34,26,0,-1 +34,27,2,3 +34,28,0,0 +34,29,0,1 +34,30,0,-1 +34,31,0,6 +35,0,-1,-3 +35,1,-2,0 +35,2,-2,0 +35,3,-1,-1 +35,4,0,-1 +35,5,-2,-1 35,6,1,0 -35,7,0,1 -35,8,0,-1 -35,9,-1,1 -35,10,-1,0 -35,11,-1,-1 +35,7,0,-1 +35,8,1,-1 +35,9,0,0 +35,10,0,2 +35,11,3,-1 35,12,0,1 -35,13,-1,-2 -35,14,1,0 -35,15,0,0 -35,16,0,-1 -35,17,2,1 -35,18,-1,0 -35,19,1,0 -35,20,0,1 -35,21,-1,1 -35,22,1,0 -35,23,0,1 -35,24,0,-1 -35,25,1,-1 -35,26,-1,0 +35,13,0,1 +35,14,1,2 +35,15,2,3 +35,16,0,-2 +35,17,-2,-1 +35,18,-1,1 +35,19,1,-1 +35,20,0,0 +35,21,-2,0 +35,22,1,1 +35,23,1,0 +35,24,0,-2 +35,25,0,1 +35,26,-1,1 35,27,1,-1 -35,28,0,1 -35,29,1,2 -35,30,1,0 -35,31,0,2 +35,28,0,0 +35,29,0,0 +35,30,1,1 +35,31,1,2 36,0,0,0 -36,1,0,0 +36,1,-1,-1 36,2,0,0 36,3,0,0 36,4,0,0 -36,5,0,0 +36,5,-1,0 36,6,0,0 -36,7,0,0 +36,7,0,-1 36,8,0,0 -36,9,0,0 +36,9,1,1 36,10,0,0 36,11,0,0 36,12,0,0 -36,13,0,0 +36,13,1,0 36,14,0,0 -36,15,0,0 +36,15,0,1 36,16,0,0 -36,17,0,0 +36,17,-1,-2 36,18,0,0 36,19,0,0 36,20,0,0 -36,21,0,0 +36,21,1,0 36,22,0,0 -36,23,0,0 +36,23,0,2 36,24,0,0 -36,25,0,0 +36,25,-1,-2 36,26,0,0 36,27,0,0 36,28,0,0 -36,29,0,0 +36,29,1,0 36,30,0,0 -36,31,0,0 -37,0,-3,0 -37,1,-2,-2 -37,2,-2,-1 -37,3,-2,-2 -37,4,1,-1 -37,5,0,-1 -37,6,-1,-1 -37,7,1,0 -37,8,-2,-1 -37,9,2,0 -37,10,0,-2 -37,11,0,0 -37,12,2,-1 -37,13,0,3 -37,14,0,-1 -37,15,1,2 -37,16,-1,0 -37,17,-2,-2 -37,18,2,1 -37,19,-2,-2 -37,20,3,1 -37,21,0,-1 -37,22,1,1 -37,23,1,0 -37,24,-2,1 -37,25,2,0 -37,26,0,2 +36,31,0,2 +37,0,-1,-1 +37,1,0,1 +37,2,0,-2 +37,3,0,1 +37,4,0,-1 +37,5,0,1 +37,6,-1,-2 +37,7,0,1 +37,8,1,-1 +37,9,0,1 +37,10,0,0 +37,11,0,1 +37,12,0,-1 +37,13,0,1 +37,14,1,0 +37,15,0,1 +37,16,-2,-3 +37,17,-1,0 +37,18,-2,-2 +37,19,0,0 +37,20,-1,-2 +37,21,1,2 +37,22,0,-2 +37,23,1,-1 +37,24,0,1 +37,25,-1,0 +37,26,4,0 37,27,0,0 -37,28,2,1 -37,29,0,3 -37,30,0,1 -37,31,1,2 -38,0,-2,-2 -38,1,-1,-1 -38,2,-2,-2 -38,3,0,0 -38,4,-1,-2 -38,5,3,2 -38,6,-2,-1 -38,7,2,0 -38,8,-1,0 -38,9,-2,-1 -38,10,-1,0 -38,11,0,0 -38,12,-1,-1 -38,13,1,-1 -38,14,0,0 -38,15,-2,-1 -38,16,2,0 -38,17,-1,1 -38,18,2,0 -38,19,0,0 -38,20,1,0 -38,21,-1,2 -38,22,2,-1 -38,23,-2,4 -38,24,1,-2 -38,25,0,1 -38,26,1,-2 -38,27,0,0 -38,28,1,-1 -38,29,1,5 -38,30,0,-2 -38,31,2,5 -39,0,-3,-2 -39,1,0,-2 -39,2,-3,-3 -39,3,0,-2 -39,4,1,-2 -39,5,0,2 -39,6,-1,-2 -39,7,1,2 -39,8,-3,0 -39,9,0,-3 +37,28,-1,0 +37,29,1,2 +37,30,2,0 +37,31,-1,5 +38,0,-2,-1 +38,1,-1,0 +38,2,0,-2 +38,3,-3,0 +38,4,2,0 +38,5,-1,-1 +38,6,0,2 +38,7,0,-2 +38,8,-2,1 +38,9,1,0 +38,10,0,-2 +38,11,1,0 +38,12,2,0 +38,13,1,1 +38,14,0,2 +38,15,2,2 +38,16,-1,-1 +38,17,0,0 +38,18,0,0 +38,19,-1,-1 +38,20,0,0 +38,21,0,0 +38,22,-2,-2 +38,23,0,-1 +38,24,1,1 +38,25,0,0 +38,26,0,0 +38,27,1,1 +38,28,0,0 +38,29,0,0 +38,30,2,2 +38,31,0,1 +39,0,-1,-1 +39,1,-1,-1 +39,2,-1,0 +39,3,-1,-1 +39,4,-1,0 +39,5,1,0 +39,6,-1,0 +39,7,0,-1 +39,8,-1,1 +39,9,1,-1 39,10,-1,0 -39,11,0,-2 -39,12,1,-2 -39,13,0,1 -39,14,-1,-2 -39,15,0,0 -39,16,1,2 -39,17,0,-2 -39,18,3,3 -39,19,0,-2 -39,20,1,2 -39,21,0,2 -39,22,1,2 -39,23,-1,2 -39,24,1,0 -39,25,0,-1 -39,26,1,0 -39,27,0,-2 -39,28,1,2 -39,29,0,3 -39,30,1,2 -39,31,0,4 -40,0,-1,-1 -40,1,-6,-2 -40,2,-1,-1 -40,3,-3,-3 -40,4,0,0 -40,5,-1,-3 -40,6,0,0 -40,7,-3,-1 -40,8,0,0 -40,9,2,-3 -40,10,-1,0 -40,11,2,-1 -40,12,-2,-2 -40,13,0,1 -40,14,0,-2 -40,15,-1,-2 -40,16,1,1 -40,17,2,0 -40,18,1,1 -40,19,1,1 +39,11,3,-1 +39,12,-1,0 +39,13,3,2 +39,14,-1,0 +39,15,2,3 +39,16,-2,-2 +39,17,-3,-1 +39,18,1,-1 +39,19,-1,-1 +39,20,-2,-2 +39,21,2,2 +39,22,1,-2 +39,23,-2,0 +39,24,0,0 +39,25,1,1 +39,26,1,-1 +39,27,1,1 +39,28,0,0 +39,29,0,2 +39,30,1,0 +39,31,2,4 +40,0,-3,-2 +40,1,-2,-1 +40,2,-2,0 +40,3,-1,-4 +40,4,0,1 +40,5,1,-1 +40,6,0,-2 +40,7,-1,0 +40,8,3,0 +40,9,-2,1 +40,10,2,0 +40,11,1,0 +40,12,0,1 +40,13,3,1 +40,14,0,2 +40,15,1,4 +40,16,0,-1 +40,17,-1,0 +40,18,0,0 +40,19,-2,0 40,20,0,0 -40,21,1,-1 +40,21,-1,-1 40,22,0,0 -40,23,3,-1 -40,24,0,0 -40,25,2,5 -40,26,1,0 -40,27,0,3 -40,28,2,2 -40,29,0,3 -40,30,0,2 -40,31,1,4 -41,0,-2,-1 -41,1,-2,-1 -41,2,-2,-1 -41,3,-1,-1 -41,4,-1,-1 -41,5,1,0 -41,6,-1,-1 -41,7,1,-1 -41,8,-1,0 -41,9,1,-1 -41,10,0,1 -41,11,0,1 -41,12,-1,0 -41,13,-1,-2 -41,14,-1,1 -41,15,0,-3 -41,16,-2,1 -41,17,4,1 -41,18,-2,-1 -41,19,3,1 -41,20,-1,-1 -41,21,1,0 -41,22,-1,-1 -41,23,1,1 -41,24,1,0 -41,25,1,1 -41,26,0,1 -41,27,2,-1 -41,28,-1,2 -41,29,3,2 -41,30,-1,1 -41,31,2,3 -42,0,-2,-2 -42,1,-2,-1 -42,2,-2,-1 -42,3,-4,-3 -42,4,2,0 -42,5,-1,-1 +40,23,-1,-2 +40,24,0,1 +40,25,1,0 +40,26,0,0 +40,27,2,0 +40,28,0,0 +40,29,1,1 +40,30,0,0 +40,31,1,2 +41,0,0,-1 +41,1,-4,-2 +41,2,0,0 +41,3,0,-2 +41,4,0,1 +41,5,1,-1 +41,6,0,0 +41,7,0,0 +41,8,0,-1 +41,9,0,2 +41,10,0,0 +41,11,0,-2 +41,12,0,1 +41,13,3,1 +41,14,0,0 +41,15,0,4 +41,16,0,0 +41,17,0,0 +41,18,0,0 +41,19,0,0 +41,20,0,0 +41,21,0,0 +41,22,0,0 +41,23,0,0 +41,24,0,0 +41,25,0,0 +41,26,0,0 +41,27,0,0 +41,28,0,0 +41,29,0,0 +41,30,0,0 +41,31,0,0 +42,0,-2,-1 +42,1,-2,-2 +42,2,1,0 +42,3,0,-2 +42,4,-1,0 +42,5,-1,2 42,6,1,-1 -42,7,1,-1 +42,7,0,-1 42,8,-2,1 -42,9,2,-1 -42,10,-1,1 -42,11,0,0 -42,12,1,-2 -42,13,1,3 -42,14,-1,-2 -42,15,1,2 -42,16,0,0 -42,17,-2,-1 -42,18,2,1 -42,19,-2,-1 -42,20,0,0 -42,21,-1,-1 -42,22,-1,1 -42,23,1,-1 -42,24,0,1 -42,25,2,-1 -42,26,1,-1 -42,27,2,0 -42,28,1,2 -42,29,1,3 -42,30,1,2 -42,31,1,4 -43,0,-2,-1 -43,1,-3,-2 -43,2,-3,-3 -43,3,-1,-2 -43,4,-1,0 -43,5,1,0 -43,6,-2,0 -43,7,0,1 -43,8,0,-2 -43,9,-2,0 -43,10,2,-3 -43,11,-1,-1 -43,12,-1,-1 -43,13,1,-2 -43,14,-1,-2 -43,15,0,-1 -43,16,2,1 -43,17,1,0 -43,18,3,3 -43,19,1,0 -43,20,1,0 -43,21,1,2 -43,22,2,0 -43,23,0,1 -43,24,0,2 -43,25,0,-2 -43,26,-2,3 -43,27,1,-1 -43,28,1,1 -43,29,1,4 -43,30,1,2 -43,31,0,3 -44,0,-3,-4 -44,1,-2,0 -44,2,-3,-3 -44,3,-1,-2 -44,4,-3,1 -44,5,1,-2 -44,6,-3,1 -44,7,-1,-1 -44,8,-1,-1 -44,9,-1,0 -44,10,1,-1 -44,11,2,-2 -44,12,-1,0 -44,13,3,0 -44,14,-2,-2 -44,15,1,3 -44,16,1,-2 -44,17,-2,2 -44,18,1,1 -44,19,-1,0 -44,20,1,-1 -44,21,3,2 -44,22,1,-3 -44,23,1,3 -44,24,-1,-1 -44,25,1,2 -44,26,-3,-1 -44,27,4,0 -44,28,-1,0 -44,29,5,4 -44,30,0,0 -44,31,3,7 -45,0,0,-3 -45,1,-1,1 -45,2,-1,-2 -45,3,-1,0 -45,4,-2,-1 -45,5,0,0 -45,6,-2,-2 -45,7,-2,0 -45,8,0,0 -45,9,-1,0 -45,10,1,0 +42,9,2,0 +42,10,1,0 +42,11,-2,0 +42,12,1,0 +42,13,1,0 +42,14,1,1 +42,15,2,3 +42,16,-1,-2 +42,17,-1,0 +42,18,0,0 +42,19,0,-2 +42,20,-2,1 +42,21,0,0 +42,22,2,-1 +42,23,-1,0 +42,24,-1,0 +42,25,1,0 +42,26,0,0 +42,27,0,0 +42,28,0,1 +42,29,0,0 +42,30,2,1 +42,31,1,2 +43,0,-2,-3 +43,1,0,-1 +43,2,-2,-1 +43,3,-3,-1 +43,4,1,0 +43,5,0,-3 +43,6,0,0 +43,7,0,-2 +43,8,0,1 +43,9,2,-1 +43,10,0,1 +43,11,3,-1 +43,12,1,2 +43,13,-2,1 +43,14,2,0 +43,15,0,8 +43,16,0,0 +43,17,0,0 +43,18,0,0 +43,19,0,0 +43,20,0,0 +43,21,0,0 +43,22,0,0 +43,23,0,0 +43,24,0,0 +43,25,0,0 +43,26,0,0 +43,27,0,0 +43,28,0,0 +43,29,0,0 +43,30,0,0 +43,31,0,0 +44,0,-1,0 +44,1,-1,-1 +44,2,0,0 +44,3,-2,0 +44,4,0,-1 +44,5,0,-1 +44,6,0,0 +44,7,-1,-2 +44,8,1,0 +44,9,1,1 +44,10,0,0 +44,11,2,0 +44,12,0,1 +44,13,0,1 +44,14,0,0 +44,15,1,2 +44,16,-1,0 +44,17,0,-1 +44,18,-1,-1 +44,19,0,1 +44,20,0,-1 +44,21,0,-1 +44,22,0,-1 +44,23,0,1 +44,24,1,0 +44,25,0,-1 +44,26,1,1 +44,27,0,1 +44,28,0,1 +44,29,0,-1 +44,30,0,1 +44,31,0,1 +45,0,-1,-1 +45,1,-1,-1 +45,2,0,0 +45,3,0,0 +45,4,-1,0 +45,5,-1,0 +45,6,0,-1 +45,7,0,-2 +45,8,-1,1 +45,9,1,1 +45,10,2,0 45,11,0,0 -45,12,0,-2 -45,13,0,2 -45,14,1,-2 -45,15,-1,0 -45,16,0,-1 -45,17,1,1 -45,18,-1,-2 -45,19,1,2 -45,20,0,-1 -45,21,0,0 -45,22,0,0 -45,23,2,0 -45,24,0,0 -45,25,1,2 -45,26,1,0 -45,27,0,2 -45,28,2,0 -45,29,0,2 -45,30,1,0 +45,12,-1,0 +45,13,1,0 +45,14,2,1 +45,15,0,2 +45,16,-1,-1 +45,17,-1,-1 +45,18,0,-1 +45,19,-1,1 +45,20,0,-2 +45,21,0,1 +45,22,0,-1 +45,23,-1,-2 +45,24,1,-1 +45,25,1,3 +45,26,0,-1 +45,27,1,1 +45,28,0,0 +45,29,0,1 +45,30,0,-1 45,31,1,4 -46,0,-1,-2 -46,1,-1,1 -46,2,-1,-2 +46,0,-3,0 +46,1,0,-1 +46,2,-1,0 46,3,-1,0 -46,4,0,0 +46,4,-1,-2 46,5,1,-1 -46,6,-3,0 -46,7,2,-1 -46,8,-2,-1 -46,9,1,0 -46,10,0,0 -46,11,0,0 -46,12,0,0 -46,13,-1,-2 -46,14,-1,-1 -46,15,-1,-3 -46,16,1,2 -46,17,1,-1 -46,18,1,2 -46,19,1,0 +46,6,-1,0 +46,7,0,-2 +46,8,1,0 +46,9,2,1 +46,10,-1,0 +46,11,3,0 +46,12,-1,2 +46,13,1,1 +46,14,-1,0 +46,15,2,2 +46,16,0,0 +46,17,0,-1 +46,18,0,0 +46,19,0,1 46,20,0,0 -46,21,-1,1 -46,22,3,0 -46,23,-2,1 -46,24,2,1 -46,25,-1,0 +46,21,0,-1 +46,22,0,0 +46,23,0,1 +46,24,0,0 +46,25,0,-1 46,26,0,0 -46,27,0,0 +46,27,0,1 46,28,0,0 -46,29,1,2 -46,30,1,1 -46,31,1,3 -47,0,0,-1 -47,1,0,0 -47,2,-2,-1 +46,29,0,-1 +46,30,0,0 +46,31,0,1 +47,0,0,0 +47,1,-1,-1 +47,2,0,0 47,3,0,0 -47,4,-1,0 -47,5,-1,-1 -47,6,-1,0 -47,7,-1,-1 +47,4,0,0 +47,5,-1,0 +47,6,0,0 +47,7,0,-1 47,8,0,0 -47,9,0,0 -47,10,0,-2 +47,9,1,1 +47,10,0,0 47,11,0,0 -47,12,-1,-1 -47,13,0,-1 -47,14,-1,-1 -47,15,0,-1 -47,16,0,1 +47,12,0,0 +47,13,1,0 +47,14,0,0 +47,15,0,1 +47,16,-2,-1 47,17,0,0 -47,18,2,1 -47,19,0,0 -47,20,1,0 -47,21,1,1 -47,22,1,0 -47,23,1,1 -47,24,0,0 +47,18,0,0 +47,19,-2,-2 +47,20,2,1 +47,21,0,0 +47,22,0,0 +47,23,2,2 +47,24,-2,-1 47,25,0,0 -47,26,0,2 -47,27,0,0 -47,28,1,1 -47,29,0,1 -47,30,1,1 -47,31,0,1 -48,0,-2,-2 -48,1,-2,-2 -48,2,-2,-1 -48,3,-4,-3 +47,26,0,0 +47,27,-2,-2 +47,28,2,1 +47,29,0,0 +47,30,0,0 +47,31,2,2 +48,0,-1,-2 +48,1,0,0 +48,2,-2,0 +48,3,0,0 48,4,0,0 -48,5,-1,0 -48,6,-1,0 -48,7,1,-1 -48,8,-1,1 -48,9,-1,-2 -48,10,0,0 -48,11,0,1 -48,12,1,-2 -48,13,0,0 -48,14,1,0 -48,15,-3,-2 -48,16,2,0 -48,17,0,0 +48,5,0,-3 +48,6,0,1 +48,7,-2,-3 +48,8,1,2 +48,9,0,0 +48,10,2,0 +48,11,0,0 +48,12,0,0 +48,13,0,3 +48,14,0,-1 +48,15,2,3 +48,16,-2,-2 +48,17,-1,-1 48,18,0,-1 -48,19,4,1 -48,20,-2,0 -48,21,3,0 -48,22,-1,0 -48,23,-1,1 -48,24,1,1 -48,25,-1,0 -48,26,2,2 -48,27,0,-3 -48,28,1,2 -48,29,2,4 -48,30,1,0 -48,31,3,6 -49,0,0,-4 -49,1,-4,0 -49,2,0,0 -49,3,-5,-4 -49,4,1,2 -49,5,-2,-2 -49,6,0,0 -49,7,1,-1 -49,8,-2,0 -49,9,2,-2 -49,10,0,0 -49,11,-1,1 -49,12,1,-1 -49,13,0,2 +48,19,-2,-1 +48,20,1,1 +48,21,1,-1 +48,22,-2,-1 +48,23,1,1 +48,24,0,0 +48,25,-1,-1 +48,26,0,-1 +48,27,0,1 +48,28,1,1 +48,29,1,-1 +48,30,2,3 +48,31,1,3 +49,0,-2,-1 +49,1,0,-2 +49,2,-2,-1 +49,3,2,0 +49,4,0,0 +49,5,-1,-2 +49,6,0,2 +49,7,-1,-2 +49,8,0,1 +49,9,0,0 +49,10,2,-1 +49,11,-2,2 +49,12,2,0 +49,13,1,0 49,14,0,0 -49,15,1,0 -49,16,0,0 -49,17,-2,0 -49,18,0,0 -49,19,-1,0 -49,20,-1,0 -49,21,2,-2 -49,22,0,0 -49,23,1,-1 -49,24,2,0 -49,25,0,2 -49,26,0,0 -49,27,3,-1 -49,28,-1,3 -49,29,4,2 -49,30,0,0 -49,31,1,6 -50,0,-2,-2 -50,1,-1,-1 -50,2,-2,0 -50,3,-2,-3 -50,4,-1,0 -50,5,-1,-1 -50,6,-2,-3 -50,7,-2,-1 -50,8,1,-1 -50,9,-1,0 -50,10,1,0 -50,11,0,1 -50,12,0,-3 -50,13,1,1 -50,14,0,-2 -50,15,0,-2 -50,16,0,2 -50,17,1,-1 +49,15,1,4 +49,16,-3,-1 +49,17,0,0 +49,18,-1,-1 +49,19,1,-1 +49,20,-1,-1 +49,21,1,0 +49,22,0,-1 +49,23,0,-1 +49,24,-1,1 +49,25,2,0 +49,26,-1,-1 +49,27,1,1 +49,28,1,1 +49,29,1,0 +49,30,-2,3 +49,31,2,1 +50,0,-1,-2 +50,1,0,0 +50,2,0,-1 +50,3,-2,-1 +50,4,1,0 +50,5,-1,0 +50,6,-1,-1 +50,7,0,-2 +50,8,1,2 +50,9,0,0 +50,10,0,1 +50,11,2,1 +50,12,-1,0 +50,13,1,0 +50,14,1,1 +50,15,0,2 +50,16,0,-1 +50,17,-2,-1 50,18,0,0 -50,19,2,1 -50,20,1,0 -50,21,-1,-1 -50,22,2,3 -50,23,0,-1 -50,24,1,1 -50,25,1,2 -50,26,1,0 -50,27,0,1 -50,28,0,3 -50,29,1,1 -50,30,0,2 -50,31,2,4 -51,0,0,-3 -51,1,-4,0 -51,2,0,0 -51,3,-2,-4 -51,4,-2,2 -51,5,1,-3 -51,6,0,0 -51,7,-2,0 -51,8,1,-1 -51,9,-1,0 -51,10,0,0 -51,11,1,0 -51,12,-2,-1 -51,13,1,2 -51,14,0,0 -51,15,0,-1 -51,16,0,1 -51,17,-2,-2 -51,18,0,0 -51,19,-2,0 -51,20,2,0 -51,21,1,-1 +50,19,1,-1 +50,20,-1,0 +50,21,-1,1 +50,22,0,-1 +50,23,-1,-2 +50,24,0,1 +50,25,2,1 +50,26,0,0 +50,27,-1,1 +50,28,1,0 +50,29,1,-1 +50,30,0,1 +50,31,1,2 +51,0,-3,-2 +51,1,1,-2 +51,2,-4,0 +51,3,-1,-3 +51,4,1,1 +51,5,-2,-2 +51,6,1,-1 +51,7,-1,1 +51,8,1,0 +51,9,1,0 +51,10,2,0 +51,11,1,1 +51,12,1,1 +51,13,0,0 +51,14,1,1 +51,15,1,5 +51,16,-1,-1 +51,17,0,0 +51,18,-1,0 +51,19,-1,-1 +51,20,0,0 +51,21,-1,-2 51,22,0,0 -51,23,4,0 -51,24,-1,-1 -51,25,3,2 -51,26,0,0 -51,27,-1,0 -51,28,2,3 +51,23,-2,-2 +51,24,1,1 +51,25,0,0 +51,26,1,0 +51,27,1,1 +51,28,0,0 51,29,1,2 51,30,0,0 -51,31,2,5 -52,0,0,0 -52,1,-4,-3 +51,31,2,2 +52,0,-1,-4 +52,1,-1,1 52,2,0,0 -52,3,-1,-1 -52,4,0,0 -52,5,0,0 +52,3,0,-4 +52,4,-1,2 +52,5,1,0 52,6,0,0 -52,7,-1,-1 -52,8,0,0 -52,9,0,-2 +52,7,0,1 +52,8,-1,0 +52,9,1,-1 52,10,0,0 -52,11,-1,0 -52,12,0,0 -52,13,-1,-3 +52,11,-2,-2 +52,12,3,2 +52,13,-1,0 52,14,0,0 -52,15,0,-3 +52,15,2,5 52,16,0,0 -52,17,4,3 +52,17,-1,-1 52,18,0,0 -52,19,1,1 +52,19,0,-1 52,20,0,0 -52,21,0,0 +52,21,1,1 52,22,0,0 -52,23,1,1 +52,23,0,1 52,24,0,0 -52,25,0,2 +52,25,-1,-1 52,26,0,0 -52,27,1,0 +52,27,0,-1 52,28,0,0 -52,29,1,3 +52,29,1,1 52,30,0,0 -52,31,0,3 -53,0,-3,-2 -53,1,0,-1 -53,2,-5,-2 -53,3,0,-2 -53,4,0,0 -53,5,-1,-2 +52,31,0,1 +53,0,-1,-2 +53,1,-1,0 +53,2,0,-1 +53,3,-1,-1 +53,4,-2,1 +53,5,1,-1 53,6,0,0 -53,7,0,-1 -53,8,1,1 -53,9,-1,-1 -53,10,1,1 -53,11,-2,-1 -53,12,0,-1 -53,13,-1,-2 -53,14,-1,-1 -53,15,-1,-3 -53,16,1,2 -53,17,0,1 -53,18,3,0 -53,19,0,2 -53,20,0,-2 -53,21,1,2 -53,22,0,-2 -53,23,0,1 -53,24,1,-1 -53,25,1,1 -53,26,1,1 -53,27,2,1 -53,28,0,3 -53,29,1,2 -53,30,1,3 -53,31,1,3 -54,0,-2,-5 -54,1,1,1 -54,2,-4,-1 -54,3,0,-5 -54,4,-1,2 -54,5,1,-3 -54,6,0,0 -54,7,2,-1 +53,7,1,0 +53,8,-1,0 +53,9,-1,0 +53,10,2,1 +53,11,-1,-1 +53,12,0,1 +53,13,1,1 +53,14,2,0 +53,15,1,2 +53,16,-3,-3 +53,17,0,-1 +53,18,-2,0 +53,19,-1,-3 +53,20,1,1 +53,21,-2,-2 +53,22,3,-1 +53,23,-3,0 +53,24,1,1 +53,25,2,-1 +53,26,0,0 +53,27,1,1 +53,28,1,1 +53,29,0,0 +53,30,-1,1 +53,31,3,6 +54,0,-1,-1 +54,1,-2,-2 +54,2,0,-1 +54,3,-1,0 +54,4,1,1 +54,5,0,-1 +54,6,0,1 +54,7,1,1 54,8,-1,-1 -54,9,-1,1 -54,10,1,-1 -54,11,-5,1 -54,12,3,-1 -54,13,-2,1 -54,14,1,-2 -54,15,0,0 -54,16,0,-1 -54,17,1,1 -54,18,-2,-1 -54,19,2,3 -54,20,-1,-2 -54,21,-1,1 -54,22,2,0 -54,23,-4,1 -54,24,3,-1 -54,25,-1,1 -54,26,1,-1 -54,27,3,1 -54,28,-1,1 -54,29,2,5 -54,30,1,-2 -54,31,2,8 -55,0,-1,-3 -55,1,-2,1 -55,2,-2,-3 -55,3,-1,0 -55,4,-1,-1 -55,5,0,0 -55,6,-2,1 -55,7,-3,1 -55,8,0,-1 -55,9,-2,-2 -55,10,0,-1 -55,11,0,-3 -55,12,-1,0 -55,13,2,-2 -55,14,-3,0 -55,15,-1,-4 -55,16,1,3 -55,17,0,-3 -55,18,2,3 -55,19,1,-2 -55,20,1,1 -55,21,2,2 -55,22,2,-1 -55,23,3,1 -55,24,0,1 -55,25,0,0 +54,9,0,0 +54,10,0,-1 +54,11,-1,0 +54,12,1,1 +54,13,2,-1 +54,14,0,1 +54,15,1,3 +54,16,-2,-4 +54,17,-2,-2 +54,18,-1,2 +54,19,-1,-4 +54,20,1,-1 +54,21,-2,0 +54,22,1,-1 +54,23,1,-3 +54,24,0,0 +54,25,2,2 +54,26,-1,0 +54,27,3,0 +54,28,1,1 +54,29,-2,0 +54,30,1,3 +54,31,1,7 +55,0,-2,-1 +55,1,-2,-2 +55,2,0,-1 +55,3,0,0 +55,4,-2,-1 +55,5,1,0 +55,6,0,0 +55,7,0,-3 +55,8,0,1 +55,9,0,0 +55,10,2,1 +55,11,0,-2 +55,12,0,1 +55,13,1,2 +55,14,2,0 +55,15,0,5 +55,16,-2,-4 +55,17,1,0 +55,18,-2,-1 +55,19,-2,-2 +55,20,0,1 +55,21,1,-1 +55,22,-2,0 +55,23,4,0 +55,24,-2,2 +55,25,1,-2 55,26,0,1 -55,27,0,1 -55,28,1,0 -55,29,0,4 -55,30,3,0 -55,31,1,6 -56,0,-2,-3 -56,1,-1,1 -56,2,-3,-3 -56,3,-2,-1 -56,4,1,-1 +55,27,0,0 +55,28,0,1 +55,29,1,-1 +55,30,0,0 +55,31,2,6 +56,0,0,0 +56,1,-1,-1 +56,2,0,0 +56,3,0,-1 +56,4,0,0 56,5,1,1 -56,6,1,-3 -56,7,1,2 -56,8,0,-2 -56,9,-1,1 -56,10,0,1 -56,11,-2,0 -56,12,0,-1 +56,6,0,0 +56,7,0,1 +56,8,0,0 +56,9,-1,-1 +56,10,0,0 +56,11,0,-1 +56,12,0,0 56,13,1,1 -56,14,-1,-2 -56,15,1,1 -56,16,0,-1 -56,17,-1,1 -56,18,1,-1 -56,19,0,1 -56,20,-1,-1 -56,21,1,1 -56,22,-1,-1 -56,23,1,2 -56,24,2,-2 -56,25,-1,1 -56,26,2,-1 -56,27,0,0 -56,28,0,3 -56,29,1,1 -56,30,1,2 -56,31,1,3 -57,0,-2,-3 -57,1,1,0 -57,2,-3,0 -57,3,-2,-2 -57,4,0,0 -57,5,-2,-1 -57,6,0,0 -57,7,-2,-2 -57,8,1,1 -57,9,-2,-2 -57,10,2,0 -57,11,-4,0 -57,12,1,-2 -57,13,0,1 -57,14,-1,-2 -57,15,0,-3 -57,16,0,1 -57,17,1,0 -57,18,-1,0 -57,19,4,0 -57,20,-2,0 -57,21,2,-3 -57,22,0,2 -57,23,0,-2 -57,24,1,1 -57,25,0,2 -57,26,2,0 -57,27,2,2 -57,28,1,2 +56,14,0,0 +56,15,0,1 +56,16,-1,-2 +56,17,-2,-2 +56,18,0,1 +56,19,0,-2 +56,20,-1,1 +56,21,0,-1 +56,22,1,0 +56,23,-1,0 +56,24,1,0 +56,25,0,0 +56,26,0,-1 +56,27,-2,2 +56,28,1,1 +56,29,2,-1 +56,30,-1,0 +56,31,3,4 +57,0,-2,-2 +57,1,-1,-2 +57,2,0,2 +57,3,1,-4 +57,4,0,-1 +57,5,-1,2 +57,6,1,1 +57,7,-1,1 +57,8,0,0 +57,9,-1,-2 +57,10,0,0 +57,11,1,0 +57,12,2,-1 +57,13,-1,2 +57,14,-1,1 +57,15,3,3 +57,16,-2,-2 +57,17,-1,-1 +57,18,1,-1 +57,19,0,-2 +57,20,0,-1 +57,21,0,3 +57,22,0,-3 +57,23,-1,2 +57,24,0,0 +57,25,1,-1 +57,26,-1,-1 +57,27,0,0 +57,28,2,-1 57,29,0,3 -57,30,1,0 -57,31,2,7 -58,0,-1,-3 -58,1,-4,-2 -58,2,-3,-1 -58,3,-2,-4 -58,4,0,1 -58,5,-1,-1 -58,6,-1,-2 +57,30,0,1 +57,31,1,4 +58,0,-2,0 +58,1,1,-2 +58,2,-2,0 +58,3,1,0 +58,4,-1,0 +58,5,0,-2 +58,6,-1,0 58,7,0,0 -58,8,-2,-2 -58,9,3,0 -58,10,-1,0 -58,11,1,0 -58,12,0,1 -58,13,0,-1 -58,14,-2,0 -58,15,0,-3 -58,16,1,1 -58,17,-2,0 -58,18,3,1 -58,19,-2,0 -58,20,0,1 -58,21,3,-3 -58,22,1,2 -58,23,2,0 -58,24,2,0 -58,25,-1,2 -58,26,1,0 -58,27,-1,0 -58,28,0,1 -58,29,2,5 -58,30,2,0 -58,31,2,7 -59,0,-5,0 -59,1,0,-3 -59,2,-4,-1 -59,3,-1,-3 -59,4,0,0 -59,5,-1,-1 -59,6,-1,1 -59,7,0,-1 -59,8,1,0 -59,9,-1,-1 -59,10,3,0 -59,11,-2,-1 -59,12,1,0 +58,8,0,0 +58,9,1,0 +58,10,0,0 +58,11,1,2 +58,12,-1,0 +58,13,2,0 +58,14,-1,0 +58,15,2,2 +58,16,0,-1 +58,17,-1,0 +58,18,0,0 +58,19,0,-1 +58,20,-1,0 +58,21,0,0 +58,22,0,-1 +58,23,-1,-1 +58,24,0,1 +58,25,1,0 +58,26,0,0 +58,27,0,1 +58,28,1,0 +58,29,0,0 +58,30,0,1 +58,31,1,1 +59,0,-2,-1 +59,1,-2,-2 +59,2,0,-1 +59,3,-4,0 +59,4,1,-1 +59,5,0,-3 +59,6,0,1 +59,7,0,-3 +59,8,0,1 +59,9,2,0 +59,10,0,-1 +59,11,4,2 +59,12,1,1 59,13,0,1 -59,14,-1,-1 -59,15,1,1 -59,16,-1,0 -59,17,0,-1 -59,18,0,1 +59,14,0,1 +59,15,0,5 +59,16,-2,-2 +59,17,1,0 +59,18,-1,0 59,19,-1,-1 -59,20,2,0 -59,21,-1,1 -59,22,3,-1 -59,23,0,1 -59,24,1,0 -59,25,1,1 -59,26,1,0 -59,27,0,1 -59,28,1,0 -59,29,2,3 -59,30,-1,1 -59,31,3,3 -60,0,-2,-1 -60,1,-3,-2 -60,2,-3,-2 -60,3,-3,-2 -60,4,-1,-1 -60,5,-2,-3 -60,6,0,0 -60,7,-2,-1 -60,8,1,0 -60,9,0,0 -60,10,1,1 -60,11,0,-2 -60,12,1,1 -60,13,1,-3 -60,14,0,0 -60,15,-1,-3 +59,20,-1,-1 +59,21,1,0 +59,22,-1,0 +59,23,1,-3 +59,24,0,2 +59,25,-1,0 +59,26,3,0 +59,27,1,1 +59,28,-1,1 +59,29,-1,0 +59,30,3,0 +59,31,-1,3 +60,0,-3,-1 +60,1,-1,0 +60,2,2,-1 +60,3,0,-1 +60,4,-1,0 +60,5,0,0 +60,6,1,-1 +60,7,-1,-1 +60,8,-1,1 +60,9,1,0 +60,10,0,-1 +60,11,0,1 +60,12,1,0 +60,13,0,0 +60,14,1,3 +60,15,1,1 60,16,0,-1 -60,17,3,2 -60,18,-1,-2 -60,19,3,2 -60,20,-1,-1 -60,21,2,1 +60,17,-1,0 +60,18,0,0 +60,19,-1,-1 +60,20,0,1 +60,21,1,0 60,22,0,0 -60,23,2,-1 -60,24,1,2 -60,25,0,0 -60,26,3,3 -60,27,0,2 -60,28,1,1 -60,29,-1,5 +60,23,1,1 +60,24,0,-1 +60,25,-1,0 +60,26,0,0 +60,27,-1,-1 +60,28,0,1 +60,29,1,0 60,30,0,0 -60,31,1,5 -61,0,-1,-1 -61,1,-3,-1 -61,2,-3,-2 -61,3,-1,-1 -61,4,-1,-1 -61,5,0,-3 -61,6,-1,-1 -61,7,-1,-1 -61,8,1,0 -61,9,-1,0 -61,10,1,-1 -61,11,-1,0 -61,12,-1,0 -61,13,1,-3 -61,14,-1,0 -61,15,0,-3 -61,16,-1,1 -61,17,3,1 -61,18,1,0 -61,19,1,1 -61,20,1,-1 -61,21,0,3 -61,22,1,-1 -61,23,1,1 -61,24,1,0 -61,25,1,0 -61,26,1,3 -61,27,1,0 -61,28,1,2 -61,29,-1,3 -61,30,1,2 -61,31,0,3 -62,0,-1,-1 +60,31,1,1 +61,0,-2,-2 +61,1,-2,0 +61,2,-1,0 +61,3,1,-3 +61,4,-2,0 +61,5,3,0 +61,6,0,-2 +61,7,0,1 +61,8,0,0 +61,9,0,0 +61,10,-1,0 +61,11,1,-1 +61,12,0,2 +61,13,3,0 +61,14,-2,2 +61,15,2,3 +61,16,-2,0 +61,17,0,-2 +61,18,-1,0 +61,19,-1,-2 +61,20,1,0 +61,21,-1,0 +61,22,0,0 +61,23,0,0 +61,24,0,0 +61,25,0,0 +61,26,1,0 +61,27,-1,0 +61,28,1,0 +61,29,1,2 +61,30,0,0 +61,31,2,2 +62,0,0,0 62,1,0,0 -62,2,-2,-1 -62,3,0,-1 +62,2,0,0 +62,3,0,0 62,4,0,0 62,5,0,0 -62,6,1,0 -62,7,0,1 -62,8,0,-1 +62,6,0,0 +62,7,0,0 +62,8,0,0 62,9,0,0 -62,10,-2,0 -62,11,0,-1 -62,12,-1,0 +62,10,0,0 +62,11,0,0 +62,12,0,0 62,13,0,0 -62,14,1,-1 -62,15,0,1 -62,16,1,-1 -62,17,0,0 +62,14,0,0 +62,15,0,0 +62,16,0,-1 +62,17,-3,-2 62,18,0,1 -62,19,0,-1 -62,20,0,2 -62,21,0,0 -62,22,1,0 -62,23,0,1 +62,19,1,-1 +62,20,0,-1 +62,21,-1,1 +62,22,0,1 +62,23,1,0 62,24,0,-1 -62,25,0,0 -62,26,0,0 -62,27,0,-1 -62,28,1,2 -62,29,0,0 -62,30,1,1 -62,31,0,1 -63,0,-1,-2 -63,1,0,1 -63,2,-2,-2 +62,25,-1,0 +62,26,0,1 +62,27,1,-1 +62,28,0,-1 +62,29,1,1 +62,30,0,1 +62,31,1,2 +63,0,-2,0 +63,1,-1,-2 +63,2,0,-1 63,3,-1,0 -63,4,0,-1 -63,5,0,1 -63,6,-1,-2 -63,7,0,1 -63,8,-1,-2 -63,9,0,1 -63,10,1,-1 -63,11,-1,1 -63,12,0,-2 -63,13,0,1 -63,14,-2,-3 -63,15,0,0 -63,16,1,0 -63,17,0,1 -63,18,2,0 -63,19,1,2 -63,20,0,-1 -63,21,0,1 -63,22,1,0 -63,23,0,1 -63,24,1,0 -63,25,0,1 -63,26,-1,-1 -63,27,1,1 -63,28,0,0 -63,29,0,1 -63,30,2,1 -63,31,0,2 +63,4,1,-1 +63,5,0,0 +63,6,0,1 +63,7,-1,-3 +63,8,0,0 +63,9,1,2 +63,10,0,-1 +63,11,1,0 +63,12,1,1 +63,13,0,0 +63,14,0,1 +63,15,1,3 +63,16,-1,-3 +63,17,-2,1 +63,18,-1,-1 +63,19,0,-2 +63,20,-2,0 +63,21,2,0 +63,22,0,-1 +63,23,0,-1 +63,24,1,1 +63,25,0,-1 +63,26,1,1 +63,27,-2,0 +63,28,2,2 +63,29,0,0 +63,30,0,1 +63,31,2,3 diff --git a/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_two_targets.hex b/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_two_targets.hex index ee8733a..ba8daa3 100644 --- a/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_two_targets.hex +++ b/9_Firmware/9_2_FPGA/tb/cosim/doppler_golden_py_two_targets.hex @@ -1,2049 +1,2049 @@ // 2048 packed 32-bit samples (Q:I) for $readmemh -0000FFFE -FFFEFFFF -0000FFFF FFFEFFFE -FFFF0000 -FFFFFFFF -00000000 -FFFE0000 -00000001 -0001FFFF -00000001 -0002FFFF -FFFFFFFF -00000001 -00000000 -FFFF0000 -00000000 -00000001 0000FFFF -00000002 +FFFF0000 +FFFFFFFE +0001FFFF +FFFFFFFF +FFFF0001 +FFFFFFFF +00000000 +00000001 00010000 -FFFFFFFF -00000000 -0000FFFE -00000001 -00010001 -00000001 -00000001 -00010001 -00020001 -00000000 -00030002 -0000FFFE -FFFFFFFE -FFFEFFFF -FFFFFFFF -00000000 -FFFF0001 -FFFFFFFE -00000000 -FFFE0000 -0001FFFF -FFFF0001 -0000FFFF -00000000 -FFFEFFFF -FFFE0000 -FFFF0000 -00000002 -00010002 -00020001 -00010001 -00000000 -0001FFFF -00010002 -00000000 -00020000 -FFFF0001 -0001FFFF -00000001 -00000000 -00020001 -00020000 -00010000 -FFFEFFFF -0000FFFD -FFFF0000 -FFFFFFFD -FFFFFFFF -FFFFFFFE -FFFE0000 -0002FFFD -FFFE0000 -FFFE0000 -FFFFFFFF -FFFE0001 -FFFEFFFF -FFFF0001 -FFFF0000 -FFFEFFFE -00000001 -00020003 -FFFF0000 -00030003 -FFFF0001 -00030002 -00000000 -00000003 -00000000 -00040000 -FFFF0001 -0004FFFF -00000001 -0003FFFF -FFFF0000 -00040002 -FFFE0000 -0001FFFF -FFFFFFFE -0000FFFF -00000000 -FFFEFFFE -0000FFFF -0000FFFC -00000001 -FFFFFFFE -FFFE0000 -FFFFFFFF -00000000 -FFFE0001 -FFFFFFFF -FFFCFFFF -00020000 -FFFF0001 -00010002 -00000001 -00000000 -00020002 -00000001 -00000004 -0000FFFF -00010002 -00020000 -00010001 -00000000 -0002FFFF -00010001 -00040001 -FFFBFFFF -0001FFFE -FFFDFFFB -FFFFFFFF -FFFFFFFE -FFFF0000 -FFFEFFFE -0000FFFE -00000000 -FFFEFFFE -FFFF0001 -FFFEFFFF -FFFF0001 FFFF0002 -0000FFFF -FFFCFFFF -00030001 -FFFD0000 +0001FFFF +00010001 00010003 -FFFF0001 -00010000 -00010002 -00020000 -00000002 -00020000 -00000000 00030001 +FFFEFFFE +00010000 +FFFF0000 +0000FFFF +00000000 +FFFFFFFF +FFFF0000 +FFFFFFFE +00000002 +00010000 +FFFF0000 +00020001 +FFFE0000 +00030001 +FFFF0000 +00030002 +0000FFFF +FFFFFFFF +00000000 +0000FFFE +FFFF0000 +FFFF0000 +00000000 +FFFEFFFF 00000001 00010001 -00050000 -00000003 -00080001 -FFFFFFFD -FFFEFFFD -FFFDFFFC +00000000 +00000002 +00010000 +00010000 +00000000 +00020001 +0000FFFF FFFDFFFE +00000000 +FFFDFFFF +00000001 +00000000 +00000000 +00010000 0000FFFF -FFFC0000 -00010000 -FFFEFFFF -FFFF0000 -00020000 -FFFC0002 -00020000 -FFFE0001 +FFFF0002 00000000 -00010000 -00000001 -0001FFFF -00000001 -00010002 -FFFF0000 -00000003 -FFFE0000 -00010000 -FFFEFFFF -00010000 -00000002 -00020000 -00020002 -00020001 -00060000 -00010000 -00040001 -FFFFFFFF -FFFDFFFC -0001FFFF -FFFF0000 -FFFFFFFF -FFFEFFFF -0001FFFF -FFFEFFFF -FFFFFFFF -FFFE0004 -0001FFFF -00010002 -FFFFFFFF -00000000 -0001FFFF FFFF0001 -FFFFFFFF -00010002 -0001FFFF -FFFF0000 -FFFFFFFF -FFFE0003 -0001FFFF -00000003 -FFFFFFFF -00040002 -0001FFFF -00010002 -FFFFFFFF -00040002 -0001FFFF -00030001 -0000FFFF -FFFE0000 -00000000 -FFFE0000 00000001 -00020000 +00040000 00000000 -00020000 -0000FFFF -FFFE0000 -00000000 -FFFE0000 -00000001 -00020000 -00000000 -00020000 -0000FFFF -FFFE0000 -00000000 -FFFE0000 -00000001 -00020000 -00000000 -00020000 -0000FFFF -FFFE0000 -00000000 -FFFE0000 -00000001 -00020000 -00000000 -00020000 +00030000 FFFEFFFF -FFFDFFFB -00000000 -FFFDFFFD -00010000 -00000001 -FFFFFFFF -0000FFFF -FFFF0000 -FFFCFFFF 00000000 FFFFFFFF FFFFFFFE FFFF0001 -FFFF0000 -FFFCFFFF -00000001 -00030003 -00000000 -00010001 -00010000 -00000001 -00010001 -00020003 -FFFF0000 -0004FFFF -00000000 -FFFFFFFF -00030002 -00010001 -00010000 -00060003 -FFFEFFFF -0000FFFE -FFFF0000 -FFFDFFFF -0001FFFF -FFFE0001 -00010000 -0000FFFE -00000000 -0000FFFE -FFFF0000 -00000000 -FFFEFFFF -FFFF0000 -00010000 -FFFCFFFF -0002FFFF -00000002 -FFFF0000 -00030001 -FFFF0003 -0002FFFF -00010000 -00000002 -0000FFFE -00000002 -FFFF0000 -00000000 -00020003 -00010000 -00010000 -00040001 -FFFAFFFD -0000FFFB -FFFDFFFF -0007FFF8 -FFF60006 -0003FFFB -FFFEFFFF -0001FFFE -FFFEFFFF 0000FFFF -FFFD0000 -0000FFFE -FFFF0002 -FFFE0001 -FFFFFFFF +FFFF0000 +FFFE0000 +00020001 +00000000 +00010001 +00010002 +0001FFFF +00000001 +00010000 00020000 -FFFEFFFF -00020003 +FFFDFFFF +FFFF0001 +0000FFFE +FFFFFFFF +00010000 +FFFF0000 +00000000 +00000001 +0001FFFF +FFFF0001 +0000FFFE +00010003 +0001FFFE +FFFF0002 +00000000 +00040001 +0000FFFE +00000000 +FFFE0000 +00000000 +00000001 +00000000 +0000FFFF +00000000 +00000000 +00000000 +00000000 +00000000 +00000001 +00000000 +00020001 +00000000 +FFFFFFFE +00000000 +FFFFFFFE +0000FFFF +FFFFFFFF +FFFF0000 +FFFFFFFF +FFFE0000 +00010000 +00000002 +00010000 +00000003 +0001FFFF +00010002 +0001FFFF +00020002 +FFFF0000 +FFFFFFFE +00010000 +00000001 +FFFF0000 +0000FFFE +00010000 FFFF0001 FFFF0000 -0000FFFE -00030005 -FFFEFFFF -FFFF0002 -FFFEFFFD -00020003 -00030000 -FFFE0006 -FFFF0002 -0008FFFF -00010003 -000A0004 -FFF2FFFB -0001FFFA -FFFA0003 -000DFFED -FFED0013 -0008FFF4 -FFFB0002 -FFFFFFFF -FFFF0002 -0001FFFD -FFFD0001 -FFFFFFFD -00020000 -FFFE0001 -00000000 -FFFD0002 -0002FFFF +00010000 +00010000 +00000001 FFFF0000 -FFFC0001 +00000000 +00010000 00010001 -00030001 -00000002 -FFFF0002 -00030001 -FFFD0000 -00030001 -00010003 -00030001 FFFE0000 +0000FFFE +00000000 +FFFEFFFF +0001FFFF +00000001 +FFFF0000 +00000000 +00000000 +00000000 +00000000 +0000FFFF +00010001 +00000001 +00010000 +00020002 +0000FFFF +FFFDFFFD +FFFF0000 +FFFFFFFF +00000000 +FFFE0001 +FFFFFFFF +00010000 +00000001 +FFFF0001 +00010000 +00010001 +00000000 +00020001 +00010001 +00030000 +FFFEFFFF +FFFF0000 +0000FFFE +FFFEFFFE +00000000 +00000000 +FFFF0000 +FFFF0000 +00000001 +00010000 +00000000 +00000002 +00020000 +00000000 +00010002 +00030000 +FFFFFFFF +00000001 +FFFFFFFE +00000001 +0000FFFE +FFFF0001 +0000FFFE +FFFF0001 +0001FFFF +00000001 +00010000 +00000001 +00000000 +00010001 +00000000 +00010001 +FFFD0000 +FFFFFFFE +FFFEFFFF +0002FFFE +FFFF0001 +0000FFFD +FFFD0001 +0002FFFF +FFFD0000 +00030002 +FFFEFFFF +00020002 +FFFFFFFF +00020003 +FFFF0001 00060001 -00020004 -00110002 -FFF1FFFD -0005FFF0 -FFE7001B -006DFF9E -FF750087 -0035FFC7 -FFEA0010 -0007FFF6 -FFFA0007 -00020000 -FFFA0005 -FFFEFFFF -00000000 -FFFF0004 -0000FFFE -FFFF0007 -FFFDFFFF -00010000 -00010001 -0001FFFC -00030001 -FFFF0001 -00000006 -00030000 -FFFC0001 -00040000 -00020003 -00040003 -00040004 -0009FFFC -00020008 -000FFFFF -FFF5FFF8 -FFFFFFFD -FFF70001 -000FFFED -FFEE0013 -0009FFF5 -FFFA0000 -FFFFFFFF -FFFF0002 -0002FFFF -FFFC0001 -0000FFFE -FFFFFFFF -00020002 -FFFD0000 -00000001 FFFF0000 -0001FFFF -FFFF0001 -FFFF0003 -0002FFFF -FFFF0003 -00000002 -00030003 -FFFDFFFE -00020001 -00020001 -00020002 -0001FFFF -00020002 -00050002 -000E0005 -FFFAFFFD -FFFDFFF8 -FFFCFFFF -0006FFFA -FFF90007 -0001FFF7 -FFFD0000 -0001FFFF -00000000 -FFFD0001 -FFFE0001 -0003FFFD -00000003 -FFFD0001 -0000FFFE -FFFEFFFF -0002FFFF -FFFF0002 -00000001 -FFFC0000 -0003FFFF -FFFF0003 -FFFF0002 -FFFFFFFF -00000000 -00030001 -00020003 -FFFF0001 -00000003 -00070001 -00000004 -000E0003 -FFFFFFFE -0000FFFF -FFFEFFFE -0001FFFD -FFFE0000 -0000FFFE -FFFE0001 -FFFFFFFC -00000002 -FFFFFFFF -00020002 -FFFEFFFF -00020000 -FFFEFFFF -0002FFFF -FFFE0000 -0001FFFE -00000001 -FFFEFFFE -FFFF0001 -FFFE0000 -00000002 -FFFE0001 -FFFF0002 -00000002 -00010001 -00020002 -00020003 -00020000 -00020001 -0002FFFF -00040002 -FFFDFFFF -0001FFFF -FFFFFFFE -FFFD0000 -0001FFFF -FFFF0000 -00000001 -0001FFFD -FFFF0001 -FFFFFFFE -0000FFFE -FFFF0001 -FFFEFFFD -00000000 -FFFF0001 -FFFEFFFF -00010001 -FFFF0001 00010000 -00010000 -00010001 -00010000 -00000001 -00010003 -FFFFFFFF -00010002 -00000000 -FFFFFFFF -00040003 -00000000 -00010001 -00040001 -FFFFFFFE -FFFDFFFC -00000000 -FFFCFFFD -00000000 FFFF0000 +00010000 FFFF0000 -FFFFFFFE -00000000 -00000001 -0000FFFF -00020002 +00010000 +FFFF0000 +00010000 +FFFF0000 +00010000 +FFFF0000 +00010000 +FFFF0000 +00010000 +FFFF0000 +00010000 FFFEFFFE 0000FFFF -00000000 -FFFDFFFD -00010002 -00010000 -00000000 -00020001 -00000000 -FFFD0000 -00010000 -FFFF0002 -00000000 -00020003 -00000001 -00000000 -00020002 -00040001 -00000000 -00050003 -FFFFFFFE -FFFFFFFE -FFFEFFFE -FFFFFFFE -FFFE0000 -00000000 -00000000 -FFFFFFFF -00010000 FFFF0000 -FFFFFFFF -FFFF0002 -FFFE0000 -00020002 -FFFE0000 -00030001 -FFFF0002 -FFFFFFFE -00020002 -FFFFFFFE -00020000 -00000000 -00000000 -FFFFFFFF -00010000 -FFFF0000 -00010001 -FFFF0002 -00020000 -00020002 -00020000 -00030001 -FFFFFFFE -0000FFFF -FFFEFFFE -00010001 -FFFEFFFF -00010000 -FFFFFFFF -00000000 -FFFFFFFF -FFFF0001 -FFFFFFFE -00010001 -FFFEFFFE -00000000 -FFFEFFFF -00000001 -FFFF0000 -00020003 -00000000 -00010001 -0000FFFF -00010002 -FFFFFFFF -00020002 -FFFFFFFF -00030001 -FFFF0000 -00010001 -00000000 -00020002 -0000FFFF -00020001 -FFFCFFFE -0000FFFE -0000FFFF -FFFEFFFD -0001FFFF -FFFEFFFF -0000FFFE -FFFFFFFC -00000001 -FFFD0000 -0001FFFF -FFFC0001 -00010000 -00000000 -FFFE0002 -0000FFFE -00000002 -00000000 -0000FFFF -0000FFFF -00010001 -0000FFFF -00000004 -FFFF0002 -0000FFFF -00030002 -FFFFFFFF -00020003 -00010000 -00020002 -00020000 -00060004 -FFFEFFFE -FFFFFFFF -FFFFFFFD -FFFE0000 -0000FFFF -0000FFFF -FFFF0000 -FFFFFFFE -FFFE0001 -FFFF0000 -FFFF0000 -0000FFFF -00000000 -0000FFFF -FFFF0001 -00010000 -FFFE0000 -00010001 -FFFFFFFF -00000000 -00000001 -0000FFFF -FFFF0002 -00030000 -FFFE0001 -00050000 -FFFF0000 -00020001 -00000000 -00040003 -FFFF0001 -00050002 -0000FFFF -FFFFFFFE -FFFFFFFF -FFFFFFFF -FFFF0000 -FFFF0001 -FFFF0000 -00000000 -00000001 -0001FFFF -00010001 -0000FFFF -00010000 -FFFEFFFF -00010000 -FFFF0000 -0000FFFF -00010002 -FFFFFFFF -00010001 -FFFF0000 -0001FFFF -FFFF0000 -00000000 -00000001 -FFFF0001 -00010001 -00000001 -00010000 -00020001 -00010000 -00010000 -0000FFFF -FFFFFFFF -FFFFFFFE -FFFF0000 -FFFFFFFF -00010001 -FFFFFFFF -00010000 -FFFF0000 -FFFFFFFF -FFFE0000 -FFFF0000 -FFFF0000 -00010001 -FFFF0000 -00010000 -00000001 -FFFFFFFF -00010002 -FFFF0000 -00010001 -00010001 -00010001 -00010000 -00010000 -FFFFFFFF -00020000 -FFFF0000 -00010000 -00010001 -00010000 -00010000 -0000FFFF -FFFFFFFE -0000FFFF -FFFFFFFF -0000FFFF -FFFEFFFE -0000FFFF -FFFEFFFF -00000000 -FFFC0000 -00000000 -FFFDFFFF -00000000 -FFFD0000 -00000000 -FFFEFFFF -00000001 -00010002 -00000001 -00010001 -00000001 -00020002 -00000001 -00020001 -00000000 -00040000 -00000000 -00030001 -00000000 -00030000 -00000000 -00020001 -FFFEFFFD -FFFE0000 -FFFEFFFE -FFFCFFFE -00000002 -0001FFFF -00000000 -00020001 -0000FFFD -FFFD0000 -FFFFFFFF -FFFFFFFE -FFFD0002 -0002FFFF -FFFE0000 -00000000 -00020001 -FFFE0000 -00020002 -00000002 -00000000 -00030001 -00000000 -0002FFFF -00000001 -FFFF0000 -00010001 -FFFD0002 -00030000 -00020001 -00020000 -00040000 -FFFF0000 -00000000 -FFFFFFFF -00000000 -0000FFFF -FFFF0000 -0000FFFF -FFFF0000 -00010000 -00000000 -00010001 -00000000 -00000001 -00010000 -00000001 -00010000 -FFFF0000 -00000000 -FFFFFFFF -00000000 -0000FFFF -FFFF0000 -0000FFFF -FFFF0000 -00010000 -00000000 -00010001 -00000000 -00000001 -00010000 -00000001 -00010000 -FFFD0000 -0000FFFE -0000FFFF -FFFFFFFC -00010000 -FFFFFFFF -00000001 -0000FFFF -FFFF0000 -00000000 -0000FFFF -FFFEFFFE -00000000 -FFFEFFFE -00000001 -FFFDFFFE -00010000 -00000002 -0000FFFF -FFFF0004 -00010000 -00010001 -00000001 -00020001 -FFFF0000 -00000000 -0000FFFF -00000002 -00020000 -00020002 -00000001 -00050002 -0000FFFE -FFFDFFFC -FFFFFFFF -FFFEFFFE -FFFF0001 -FFFFFFFF -00000000 -FFFF0000 -0000FFFF -FFFE0002 -0000FFFF -00000000 -FFFF0000 -0002FFFF -FFFF0000 -00010001 -00000000 -FFFF0000 -00010001 -FFFEFFFE -00010001 -FFFF0001 -00000000 -00010002 -0000FFFF -00020002 -00000001 -00000000 -00010002 -00040001 -00010000 -00030001 -FFFFFFFF -FFFFFFFE -0000FFFF -FFFD0000 -0001FFFF -FFFF0002 -0000FFFF -00010000 -FFFF0000 -FFFFFFFD -00000000 -FFFDFFFF -00010000 -FFFF0001 -00000000 -0001FFFF -FFFF0001 -0001FFFE -00000001 -FFFF0000 -00010001 -00010002 -00000001 -00030000 -FFFF0000 -0001FFFF -00000000 -FFFF0001 -00010000 -00010003 -00000000 -00030001 -FFFEFFFE -FFFFFFFE -FFFFFFFE -FFFEFFFD -00000000 -00000001 -0000FFFF -00000001 00000000 0000FFFE -FFFE0000 -0000FFFE -FFFEFFFD -FFFE0002 -FFFFFFFF -FFFE0000 -00000002 -00010000 -00010002 -00000001 -00020000 -00000001 -00000001 -00020001 -FFFE0000 -00000000 -00020000 -FFFE0000 -00040003 -00020000 00010001 -00040002 -FFFE0000 -0000FFFC -FFFF0000 -0000FFFC -FFFF0000 -FFFEFFFD -FFFF0000 -FFFEFFFE -00000000 -FFFE0001 -FFFF0000 -FFFF0002 -FFFF0000 -00000002 -FFFF0000 -00020001 -FFFE0000 -00020002 -FFFF0000 -00020000 -FFFF0000 -00020001 -FFFF0000 -00000000 -00000000 -00040001 -FFFF0000 -00030002 -FFFF0000 -00040000 -FFFF0000 -00040001 -FFFDFFFD -FFFF0001 -FFFFFFFC -FFFEFFFE -0000FFFE -FFFFFFFF -0000FFFF -FFFFFFFF -0000FFFE -FFFF0003 -FFFEFFFD -FFFE0004 -0000FFFE -FFFF0003 -0001FFFE -FFFF0002 -0001FFFF -FFFFFFFF -00010002 -0000FFFE -00000002 -00010001 -0000FFFF -FFFF0003 -0002FFFE -FFFF0001 -00020001 -00000000 -00000002 -00050001 -FFFF0000 -00070004 -FFF9FFFD -0003FFFC -FFFAFFFC -0001FFFE -FFFDFFFF -FFFE0000 -FFFEFFFE -FFFDFFFC -00010002 -FFFF0000 -FFFF0002 -0002FFFF -FFFF0001 -00010000 -FFFDFFFF -00010001 -FFFD0001 -00030000 -00000002 -FFFF0000 -0001FFFF -FFFE0000 -00020002 -FFF90000 -00090000 -FFFB0004 -00070000 -FFFE0003 -00030001 -00030000 -00030001 -00090003 -FFFEFFFF -0000FFFF -FFFEFFFD -FFFFFFFE -0000FFFF -FFFEFFFF -00000000 -FFFF0000 -FFFF0000 -00000000 -FFFD0001 -0001FFFF -FFFD0000 -FFFEFFFF -00000000 -FFFDFFFF -00020001 -00000001 -00020003 -00010002 -00000001 -00020001 -00000000 -00010000 -00010000 -00000000 -0003FFFF -FFFF0001 -00030000 -00020001 -00000000 -00030001 -FFFF0000 -FFFFFFFE -0000FFFF -FFFEFFFF -00010000 -FFFF0001 -00000001 -00010000 -FFFF0000 -0001FFFF -0000FFFF -FFFFFFFF -00010000 -FFFEFFFF -00000001 -00000000 FFFF0000 00010002 -0000FFFF -00000001 -00010000 -0001FFFF -00000001 -00010000 -FFFF0000 -FFFF0001 -0000FFFF -FFFF0001 -00010000 +FFFEFFFE 00020001 -00000001 -00020000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -0000FFFD -FFFEFFFE -FFFFFFFE -FFFEFFFE -FFFF0001 FFFF0000 -FFFFFFFF -00000001 -FFFFFFFE -00000002 -FFFE0000 00000000 -FFFF0002 -00030000 -FFFF0000 -00020001 -0000FFFF -FFFEFFFE -00010002 -FFFEFFFE +0000FFFE 00010003 FFFF0000 -00010001 -00000001 +00030002 +00000000 +FFFE0000 +0000FFFE 0001FFFE -00000002 -00020000 -00000000 -00010002 -00030000 -00010000 -00020001 -FFFEFFFE -FFFFFFFF -FFFEFFFE -00000000 -FFFEFFFF -00020003 -FFFFFFFE -00000002 -0000FFFF -FFFFFFFE -0000FFFF -00000000 -FFFFFFFF -FFFF0001 -00000000 -FFFFFFFE -00000002 -0001FFFF -00000002 -00000000 00000001 -0002FFFF -FFFF0002 -0004FFFE -FFFE0001 -00010000 -FFFE0001 -00000000 -FFFF0001 -00050001 -FFFE0000 -00050002 -FFFEFFFD -FFFE0000 -FFFDFFFD -FFFE0000 -FFFE0001 -00020000 FFFEFFFF -00020001 +0000FFFE +00000001 +00000000 +00000000 +00000002 +00010002 +0000FFFF +00000001 +00000002 +0002FFFF 0000FFFD -FFFD0000 -0000FFFF FFFE0000 -FFFE0001 -00010000 -FFFEFFFF -00000000 -00020001 -FFFE0000 -00030003 -FFFE0000 -00020001 -00020000 -00020001 -0002FFFF -00000001 FFFF0000 -00000001 -FFFE0000 -00020001 -00030000 -00020001 -00040000 -FFFFFFFF -FFFEFFFA -FFFFFFFF -FFFDFFFD -00000000 -FFFDFFFF -00000000 -FFFFFFFD -00000000 -FFFD0002 0000FFFF -FFFF0002 -FFFEFFFE -00010000 -FFFE0000 -FFFEFFFF -00010001 -00000002 -00010001 -00010001 -00000000 -FFFF0001 -00000000 -FFFF0003 -00000000 -00050002 -00000001 -00030000 -00020002 -00030000 -00020000 -00040001 -FFFFFFFE -FFFFFFFE -FFFFFFFE -FFFFFFFF -FFFFFFFF -00000001 -FFFFFFFF -FFFF0001 -0000FFFF -FFFF0001 -00010000 -00010000 -0000FFFF -FFFEFFFF -0001FFFF -FFFD0000 -0001FFFE -00010004 -FFFFFFFE -00010003 -FFFFFFFF -00000001 -FFFFFFFF -00010001 -00000001 -00010001 -00010000 -FFFF0002 -0002FFFF -00020003 -0001FFFF -00030002 -FFFEFFFE -FFFFFFFE -FFFFFFFE -FFFDFFFC -00000002 -FFFFFFFF -FFFF0001 -FFFF0001 -0001FFFE -FFFF0002 -0001FFFF -00000000 -FFFE0001 -00030001 -FFFEFFFF -00020001 -00000000 -FFFFFFFE -00010002 -FFFFFFFE -00000000 -FFFFFFFF -0001FFFF -FFFF0001 -00010000 -FFFF0002 -FFFF0001 -00000002 -00020001 -00030001 -00020001 -00040001 -FFFFFFFE -FFFEFFFD -FFFDFFFD -FFFEFFFF -0000FFFF -00000001 -0000FFFE -00010000 -FFFE0000 -0000FFFE -FFFD0002 -FFFFFFFF -FFFFFFFF -FFFE0001 -FFFEFFFF -FFFF0000 -00010002 -00000001 -00030003 -00000001 -00000001 -00020001 -00000002 -00010000 -00020000 -FFFE0000 -0003FFFE -FFFF0001 -00010001 -00040001 -00020001 -00030000 -FFFCFFFD -0000FFFE -FFFDFFFD -FFFEFFFF -0001FFFD -FFFE0001 -0001FFFD -FFFFFFFF -FFFFFFFF -0000FFFF -FFFF0001 -FFFE0002 -0000FFFF -00000003 -FFFEFFFE -00030001 -FFFE0001 -0002FFFE -00010001 -0000FFFF -FFFF0001 -00020003 -FFFD0001 -00030001 -FFFFFFFF -00020001 -FFFFFFFD -00000004 -0000FFFF -00040005 -00000000 -00070003 -FFFD0000 -0001FFFF -FFFEFFFF -0000FFFF -FFFFFFFE -00000000 -FFFEFFFE -0000FFFE -00000000 -0000FFFF -00000001 -00000000 -FFFE0000 -00020000 -FFFE0001 -0000FFFF -FFFF0000 -00010001 -FFFEFFFF -00020001 -FFFF0000 -00000000 -00000000 00000002 00000000 -00020001 -00000001 -00020000 -00000002 -00020000 -00000001 -00040001 -FFFEFFFF -0001FFFF -FFFEFFFF -0000FFFF -00000000 -FFFF0001 -0000FFFD -FFFF0002 -FFFFFFFE -00000001 -00000000 -00000000 -00000000 -FFFEFFFF FFFFFFFF -FFFDFFFF 00020001 -FFFF0001 -00020001 -00000001 -00000000 -0001FFFF -00000003 -0001FFFE -00010002 0000FFFF -00000000 -00000000 -00000000 -00020001 -00010001 -00030001 -FFFF0000 -00000000 -FFFFFFFE -00000000 -0000FFFF -FFFFFFFF -0000FFFF -FFFFFFFF -00000000 -00000000 FFFE0000 -00000000 -FFFFFFFF -FFFF0000 -FFFFFFFF -FFFF0000 00010000 -00000000 -00010002 -00000000 -00000001 -00010001 -00000001 -00010001 -00000000 -00000000 -00020000 -00000000 -00010001 -00010000 -00010001 -00010000 -FFFEFFFE -FFFEFFFE -FFFFFFFE -FFFDFFFC -00000000 0000FFFF -0000FFFF -FFFF0001 -0001FFFF -FFFEFFFF -00000000 -00010000 -FFFE0001 -00000000 -00000001 -FFFEFFFD 00000002 00000000 -FFFF0000 -00010004 -0000FFFE -00000003 -0000FFFF -0001FFFF -00010001 -0000FFFF -00020002 -FFFD0000 -00020001 -00040002 -00000001 -00060003 -FFFC0000 -0000FFFC -00000000 -FFFCFFFB -00020001 -FFFEFFFE -00000000 -FFFF0001 -0000FFFE -FFFE0002 -00000000 -0001FFFF -FFFF0001 -00020000 -00000000 -00000001 -00000000 -0000FFFE -00000000 -0000FFFF -0000FFFF -FFFE0002 -00000000 -FFFF0001 -00000002 -00020000 -00000000 -FFFF0003 -0003FFFF -00020004 -00000000 -00060001 -FFFEFFFE -FFFFFFFF -0000FFFE -FFFDFFFE -0000FFFF -FFFFFFFF -FFFDFFFE -FFFFFFFE -FFFF0001 -0000FFFF -00000001 -00010000 -FFFD0000 -00010001 -FFFE0000 -FFFE0000 -00020000 -FFFF0001 -00000000 -00010002 -00000001 -FFFFFFFF -00030002 -FFFF0000 00010001 00020001 -00000001 -00010000 -00030000 -00010001 -00020000 -00040002 -FFFD0000 -0000FFFC -00000000 -FFFCFFFE -0002FFFE -FFFD0001 -00000000 -0000FFFE -FFFF0001 -0000FFFF -00000000 -00000001 -FFFFFFFE -00020001 -00000000 -FFFF0000 -00010000 -FFFEFFFE -00000000 -0000FFFE -00000002 -FFFF0001 -00000000 -00000004 -FFFFFFFF -00020003 -00000000 -0000FFFF -00030002 -00020001 -00000000 -00050002 -00000000 -FFFDFFFC -00000000 -FFFFFFFF -00000000 -00000000 -00000000 -FFFFFFFF -00000000 -FFFE0000 -00000000 -0000FFFF -00000000 -FFFDFFFF -00000000 -FFFD0000 -00000000 -00030004 -00000000 -00010001 -00000000 -00000000 -00000000 -00010001 -00000000 -00020000 -00000000 -00000001 -00000000 -00030001 -00000000 -00030000 -FFFEFFFD -FFFF0000 -FFFEFFFB -FFFE0000 -00000000 -FFFEFFFF -00000000 -FFFF0000 -00010001 -FFFFFFFF -00010001 -FFFFFFFE -FFFF0000 -FFFEFFFF -FFFFFFFF -FFFDFFFF -00020001 -00010000 -00000003 -00020000 -FFFE0000 -00020001 -FFFE0000 -00010000 -FFFF0001 -00010001 -00010001 -00010002 -00030000 -00020001 -00030001 -00030001 -FFFBFFFE -00010001 -FFFFFFFC FFFB0000 -0002FFFF -FFFD0001 -00000000 -FFFF0002 -FFFFFFFF -0001FFFF -FFFF0001 -0001FFFB -FFFF0003 -0001FFFE -FFFE0001 -00000000 +0003FFFF FFFF0000 -00010001 -FFFFFFFE -00030002 -FFFEFFFF -0001FFFF -00000002 -0001FFFC -FFFF0003 -0001FFFF -FFFF0001 -00010003 -0001FFFF -00050002 -FFFE0001 -00080002 -FFFDFFFF -0001FFFE -FFFDFFFE -0000FFFF FFFFFFFF -00000000 -0001FFFE -0001FFFD FFFF0000 -FFFEFFFE +00010000 FFFF0000 FFFD0000 -0000FFFF -FFFE0002 -0000FFFD -FFFCFFFF -00030001 -FFFD0000 -00030002 -FFFE0001 -00010001 -00020002 -FFFF0002 -00010003 -00010000 -00000000 -00010000 -00010000 -00000001 -00040000 -00000003 -00060001 -FFFDFFFE -0001FFFF -FFFDFFFD -FFFFFFFE -FFFF0001 -00010001 -FFFD0001 -00020001 -FFFE0000 -0001FFFF -00010000 -0000FFFE -FFFF0000 -00010001 -FFFEFFFF -00010001 -FFFF0000 -0001FFFF -FFFF0001 -00010000 -FFFFFFFF -00010001 -FFFFFFFF -00020001 -FFFE0002 -0001FFFF -FFFF0002 -00000000 00030000 -00010001 -00020001 +FFFF0001 +FFFF0000 00030001 -FFFDFFFE -00000001 -0000FFFD -FFFEFFFE +FFFF0000 +00010000 +FFFF0000 +00050000 +FFFEFFFF +00010000 +FFFFFFFF 00000000 +0000FFFF +00010002 +FFFFFFFF +00020002 +FFFEFFFF +00010000 +FFFFFFFF +00000000 +0000FFFF +00010002 +FFFFFFFF +00020002 +FFFDFFFD +0001FFFA +FFFB0005 +0003FFFA +00000000 +FFFD0001 +0000FFFF +00000000 +FFFFFFFF +FFFF0000 +00010001 +FFFF0000 +00000000 +00030005 +0000FFFF +00060006 +FFFDFFFD +0006FFFE +FFF80003 +0001FFFB +FFFF0000 +00000001 +FFFFFFFF +00010002 +FFFDFFFF +00020000 +FFFEFFFF +00030003 +FFFF0000 +00000001 +00030003 +00030000 +FFFAFFFE +0008FFF0 +FFF70014 +FFFFFFF6 +00000000 +FFFEFFFF +FFFF0001 +FFFFFFFF +00020002 +FFFE0000 +00030004 FFFFFFFE 00000000 -FFFEFFFE -00010001 -FFFEFFFE -00000002 -0000FFFC -FFFE0001 -00010000 -FFFEFFFF -FFFD0000 -00010000 -00000001 +00000005 +0003FFFF +00070001 +FFF9FFFE +000BFFF9 +FFED000C +0006FFF6 +00020000 +0000FFFF 0000FFFF 00000004 +FFFFFFFE +00010003 +FFFFFFFE +FFFE0000 +00020000 +00000001 +00000003 +00080002 +FFFAFFFF +002EFFBA +FFCC007F +0005FFC8 +00010001 +FFFE0003 +00000001 +00010000 +FFFC0001 +00020002 +00060003 +FFFDFFFE +00010003 +FFFE0001 +00060001 +00010002 +FFF6FFFF +003EFFE2 +FF910053 +0028FFD1 +FFFC0002 +FFFF0002 +00020000 +FFFB0001 +00020001 +0002FFFE +FFFD0001 +00000001 +FFFC0002 +00050002 +00000000 +00090001 +FFFDFFFD +0005FFF3 +FFF90012 +FFFEFFF7 +0000FFFE +FFFF0003 +0000FFFC +00000003 +FFFF0001 +0001FFFF +00010004 +0000FFFF +00000000 +FFFF0003 +00020002 +0006FFFF +FFFDFFFF +0009FFF8 +FFEE000E +0007FFF6 +FFFE0000 +0002FFFE +FFFDFFFE +00010004 +0001FFFF +00010004 0000FFFE FFFD0002 -00020000 -FFFE0000 -00010001 -00020000 +0000FFFE +00000002 +00010002 +00070000 +FFFBFFFF +0005FFF7 +FFF90008 +0003FFF9 +00010002 +FFFD0000 00000002 -00020002 -00020001 -00030000 -00000001 -00070002 -FFFDFFFF -FFFEFFFC FFFFFFFD -FFFCFFFE +FFFF0001 +00010001 +FFFF0000 +FFFFFFFF +00010002 00010000 +00040002 +00030003 +FFFEFFFD +0003FFFC +FFFB0005 +FFFFFFFA +0001FFFF +FFFE0003 +FFFFFFFE +FFFF0002 +FFFE0001 +0001FFFE +00010001 +00030002 +FFFFFFFF +00020003 +00010000 +00030002 +FFFFFFFF +FFFFFFFF +0000FFFF +FFFE0001 +0000FFFE +00010002 +FFFFFFFF +00000000 +0001FFFF +FFFF0001 +0000FFFF +00000001 +00000000 +00010002 +0001FFFF +00020002 +FFFFFFFF +FFFFFFFF +0000FFFF +FFFEFFFF +00010000 +FFFF0000 +00000000 +00000000 +FFFF0001 +0001FFFF +00000001 +0000FFFF +00010000 +00010002 +00000000 +00020002 FFFFFFFF FFFEFFFF 00000000 FFFEFFFE -00000003 -0000FFFF -00000001 -00010000 -FFFF0000 -0000FFFE -FFFD0000 -00010001 -0000FFFE -00010003 -0000FFFE -00010000 -FFFD0003 -00020001 -00000002 -00000002 -0002FFFF -00000001 -0000FFFF -00010000 -00050002 -00000002 -00070002 -0000FFFB -FFFD0000 -FFFFFFFC -FFFDFFFF 00000000 -FFFFFFFF -0001FFFF -FFFF0000 00000001 -FFFFFFFF -00000003 -FFFFFFFE -00000001 -00010000 -FFFFFFFF -00010001 -0000FFFF -FFFF0000 -00010000 -FFFFFFFF -00000002 -0001FFFF -FFFF0003 -00010000 +FFFEFFFE 00000001 00010001 -00000001 -00010000 -00000001 -00030002 -0001FFFF -00030003 -FFFFFFFE -FFFEFFFD -FFFEFFFD -FFFEFFFD -FFFFFFFF -FFFDFFFE -00000000 -FFFFFFFE -00000001 -00000000 -00010001 -FFFE0000 -00010001 -FFFD0001 -00000000 -FFFDFFFF -FFFF0000 -00020003 FFFEFFFF -00020003 +00000000 +00020002 +00000000 +00000001 +00020002 +0004FFFF +FFFEFFFF +0000FFFF +0000FFFF +00000002 +FFFEFFFF +00020001 +0000FFFF +00020002 +FFFEFFFF +0000FFFF +0000FFFF +00000002 +FFFEFFFF +00020001 +0000FFFF +00020002 +FFFCFFFF +0001FFFE +00000000 +FFFF0000 +FFFE0000 +0001FFFF +FFFDFFFF +FFFF0000 +00000001 +00010000 +00000000 +00030002 +FFFE0000 +0001FFFF +00030001 +00030002 +FFFEFFFF +0000FFFE +FFFF0000 +FFFFFFFD +00010000 +FFFF0000 FFFFFFFF +FFFF0000 +00000001 +00000000 +00010000 +FFFF0001 +00010000 +00010002 +00010001 +00030002 +FFFF0000 +0000FFFF +00010000 +00000001 +FFFF0000 +0000FFFF +00010000 +00000001 +FFFF0000 +0000FFFF +00010000 +00000001 +FFFF0000 +0000FFFF +00010000 +00000001 +0000FFFE +FFFE0000 +0000FFFF +FFFFFFFF +00000000 +FFFE0000 +00000000 +FFFEFFFE +00000002 +00020000 +00000001 +00010001 +00000000 +00020000 +00000000 +00020002 +FFFEFFFF +0000FFFF +FFFFFFFF +FFFE0000 +00010000 +00000000 +00000001 +0000FFFF +0000FFFF +00000001 +FFFFFFFF +00000000 00010002 00000000 -FFFF0002 +00020001 00020001 00000000 -00030003 -00020000 -00010001 -0005FFFF 00000000 -00050001 -FFFFFFFF +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 FFFFFFFD +FFFF0001 +0000FFFF +FFFFFFFF +0000FFFF +00000001 FFFEFFFD -FFFFFFFF -FFFFFFFF -FFFD0000 -FFFFFFFF -FFFFFFFF -00000001 +FFFE0001 +00010001 +00010001 0000FFFF -FFFF0001 -0000FFFF -0000FFFF -FFFD0001 -0000FFFF -FFFD0000 -0001FFFF 00010003 +0000FFFF 00000001 +00020001 +00020001 +FFFF0000 +FFFFFFFE +00010000 +FFFF0001 +FFFF0000 +00010000 +00010000 00010001 +FFFF0000 +FFFFFFFE +00010000 FFFF0001 -00030000 +FFFF0000 +00010000 +00010000 +00010001 +FFFF0000 +FFFFFFFF +FFFFFFFF +FFFF0000 +0000FFFF +00000001 +0000FFFF +00000000 +00010000 +FFFFFFFF +00010001 +FFFF0000 +00000001 +00020001 +00000001 +00020000 +FFFDFFFF +FFFFFFFE +0000FFFE +00000001 +FFFFFFFF +FFFE0001 +0001FFFE FFFF0001 +0001FFFF +FFFD0000 +00020000 +00000003 +FFFFFFFF +00020001 +00010000 +00050003 +FFFFFFFF +0000FFFF +00000001 +0000FFFE +0000FFFF +FFFFFFFF +00000001 +FFFEFFFF +0001FFFF +00000001 +00000001 +00000002 +0000FFFF 00010001 00000001 +00020001 +FFFF0000 +0000FFFF +00000000 +FFFFFFFF +00010000 +00000001 +00000000 +00010001 +FFFF0000 +0000FFFF +00000000 +FFFFFFFF +00010000 +00000001 +00000000 +00010001 +0000FFFF +00000000 +FFFF0000 +00000000 +00000000 +00000000 +FFFFFFFF +00000000 +00000001 +00000000 +00010000 +00000000 +00000000 +00000000 +00010001 +00000000 +00000000 +FFFFFFFF +00000000 +00000000 +00000000 +0000FFFF +00000000 +FFFF0000 +00000000 +00010001 +00000000 +00000000 +00000000 +00000001 +00000000 +00010000 +FFFEFFFF +0000FFFF +00000000 +00000001 +FFFFFFFE +FFFFFFFF +00010000 +FFFF0001 +0000FFFF +0000FFFF +00020002 +00000001 +FFFF0000 +0001FFFF +00010002 +00010001 +FFFEFFFF +FFFF0000 +FFFEFFFF +00010000 +FFFF0000 +00010000 +FFFFFFFF +00010001 +0000FFFF +FFFF0000 +00000001 +0001FFFE +FFFF0002 +00010000 +FFFF0001 +00050001 +FFFE0000 +0000FFFF +0000FFFF +00000001 +FFFFFFFF +FFFFFFFF +0001FFFF +FFFF0001 +00000000 +0000FFFF +00020001 +00000001 +FFFF0001 +0001FFFF +00010001 +00010001 +FFFDFFFF +0001FFFF +00000000 +FFFE0001 +0001FFFD +00000001 +00000002 +FFFFFFFF +0001FFFF +FFFF0001 +00000000 +0000FFFF +00010001 +0000FFFF +00000002 +00030001 +FFFEFFFF +0001FFFF +FFFE0000 +0001FFFE +FFFF0000 +0000FFFF +FFFEFFFF +FFFFFFFF +00000001 +00010001 +00000000 +00010002 +FFFF0000 +00020001 00000001 00030001 +FFFEFFFE +FFFF0000 +0000FFFF +FFFEFFFD 00000001 -00020001 -0003FFFF -00020001 -00030000 FFFFFFFF 00000000 -FFFFFFFE +FFFCFFFF +00020002 +00010000 +00000001 +00020003 +0000FFFF +00010001 +00000000 +00040001 FFFF0000 00000000 +FFFFFFFF +00000000 +0000FFFF +FFFF0000 +0000FFFF +FFFF0000 +00010000 +00000000 +00010001 00000000 00000001 00010000 +00000001 +00010000 +FFFEFFFD +FFFDFFFF +0001FFFE +FFFD0001 FFFF0000 +00010000 +00010000 +00000001 +FFFEFFFF +00010001 +0001FFFE +FFFD0003 +00010000 +00010000 +00010000 +00060003 +0000FFFE +FFFF0000 +0000FFFE +FFFF0000 +00000000 +FFFFFFFF +00000001 +FFFFFFFF +00000002 +00010000 +00000002 +00010000 +00000000 +00010001 +0000FFFF +00010001 +FFFFFFFF +00000000 +00000000 +FFFFFFFF +0000FFFF +00000000 +FFFF0000 +FFFF0000 +0001FFFF +00000000 +00000002 +00010001 +0000FFFF +00000000 +00010002 +00010000 +FFFEFFFF +0000FFFF +FFFFFFFF +FFFFFFFE +00010001 +FFFFFFFF +00010001 +FFFFFFFF +0000FFFF +00000001 +FFFFFFFF +FFFF0002 +00010001 +00010001 +00010001 +00030001 +0000FFFF +00000000 +FFFF0000 +00000000 +00000001 +00000000 +00010000 +00000000 +0000FFFF +00000000 +FFFF0000 +00000000 +00000001 +00000000 +00010000 +00000000 +FFFF0000 +FFFFFFFE +00000000 +FFFF0001 +0000FFFF +0001FFFF +FFFF0000 +FFFEFFFF +00010000 +00010002 +00000000 +0001FFFF +00000001 +FFFF0001 +00010000 +00020001 +FFFEFFFF +0000FFFF +FFFF0000 +FFFFFFFF +FFFF0000 +00020001 +FFFDFFFE +00010000 +00000001 +0000FFFF +FFFF0000 +00010001 +FFFF0000 +00020001 +00010002 +00030000 +FFFEFFFE +0001FFFF +FFFF0001 +FFFF0001 +0000FFFE +00000001 +00010001 +FFFEFFFF +0002FFFE +FFFF0001 +FFFF0001 +0001FFFF +00000002 +0000FFFF +00010001 +00020001 +FFFFFFFE +FFFF0001 +0000FFFF +FFFFFFFF +00010000 +FFFF0001 +0000FFFF +00030003 +FFFFFFFE +FFFF0001 +0000FFFF +FFFFFFFF +00010000 +FFFF0001 +0000FFFF +00030003 +0000FFFD +FFFD0000 +FFFFFFFE +00000001 +00000001 +FFFEFFFE +00010001 +FFFFFFFF +00000001 +00010000 +FFFF0002 +0002FFFF +00000001 +00000002 +0001FFFF +00030001 +FFFEFFFF +0000FFFE +FFFF0001 +0000FFFF +0000FFFF +00010000 +FFFF0001 +00010001 +FFFEFFFF +00020000 +FFFF0001 +0000FFFF +0000FFFF +00010002 +FFFF0001 +00030001 +FFFBFFFC +00000000 +0000FFFF +FFFE0000 +00010000 +FFFE0001 +00000001 +0001FFFE +FFFF0000 +00000002 +0000FFFF +FFFE0000 +00050004 +FFFEFFFD +00000001 +00070002 +FFFFFFFF +FFFDFFFE +0001FFFF +FFFF0001 +FFFFFFFF +FFFF0000 +0001FFFF +FFFE0002 +FFFFFFFF +00030004 +0001FFFF +FFFB0001 +0007FFFF +FFFD0002 +0001FFFF +00040000 +FFFE0000 +FFFFFFFC +00000000 +FFFDFFFE +0001FFFF +FFFF0001 +FFFF0000 +FFFF0000 +00000000 +00010002 +00000000 +00010000 +00010001 +00010001 +00010000 +00030002 +FFFDFFFE +FFFF0000 +FFFF0000 +FFFFFFFC +FFFE0002 +00010000 +FFFF0000 +00000002 +00010000 +FFFF0000 +FFFF0000 +00030002 +00000000 +00010000 +FFFF0000 +00060000 +FFFDFFFF +0000FFFE +0000FFFE +FFFFFFFF +FFFF0000 +FFFFFFFE +00000001 +FFFF0000 +FFFF0001 +00000000 +00020000 +FFFF0003 +00010000 +00010000 +00020001 +00030002 +FFFE0000 +FFFFFFFE +0001FFFF +FFFF0001 +00000000 +0000FFFE +00010001 +00000001 +FFFE0000 +00010000 +0001FFFF +FFFF0001 +00000000 +00000000 +00010001 +00020001 +00000000 +FFFFFFFF +00000000 +00000000 +00000000 +0000FFFF +00000000 +FFFF0000 +00000000 +00010001 +00000000 +00000000 +00000000 +00000001 +00000000 +00010000 +00000000 +FFFEFFFF +00000000 +00000000 +00000000 +00000001 +00000000 +00020000 +00000000 +FFFEFFFF +00000000 +00000000 +00000000 +00000001 +00000000 +00020000 +FFFFFFFF +00010000 +FFFE0000 +00010000 +FFFF0000 +00010000 +FFFEFFFF +00010000 +FFFF0001 +00010000 +00000000 +00010000 +FFFF0000 +00010000 +00000001 +00010000 +FFFDFFFE +0000FFFF +FFFEFFFE +00000000 +FFFEFFFF +00020001 +FFFE0000 +FFFF0001 +00010000 +0000FFFF +00000004 +00000000 +0000FFFF +00020001 +00000002 +0005FFFF +FFFFFFFE +0000FFFF +FFFE0000 +0000FFFD +00000002 +FFFFFFFF +00020000 +FFFE0000 +0001FFFE +00000001 +FFFE0000 +00000001 +00000002 +00010001 +00020000 +00020002 +FFFFFFFF +00000000 +00000000 +FFFFFFFF +00000000 +00000000 +FFFEFFFE +FFFF0000 +00010001 +00000000 +00000000 +00010001 +00000000 +00000000 +00020002 +00010000 +FFFFFFFF +FFFFFFFF +0000FFFF +FFFFFFFF +0000FFFF +00000001 +0000FFFF +FFFF0000 +0001FFFF +FFFF0001 +0000FFFF +FFFF0003 +0000FFFF +00020003 +0000FFFF +00030002 +FFFEFFFE +FFFFFFFD +FFFF0001 +FFFFFFFF +FFFEFFFE +00020002 +FFFE0001 +0000FFFE +00000000 +00010001 +FFFF0001 +00010001 +00000000 +00020000 +00000001 +00040002 +FFFEFFFD +FFFFFFFE +0000FFFE +FFFCFFFF +00010000 +FFFF0001 +FFFE0000 +0000FFFF +00000003 +0001FFFE +00000002 +00000001 +00010000 +00010003 +00020000 +00040001 +FFFF0000 +0000FFFF +00000000 +0000FFFE +00000000 +FFFFFFFF +00000000 +FFFEFFFF +00010000 +00000001 +00000000 +00000002 +00000000 +00010001 +00000000 +00020001 +FFFF0000 +FFFEFFFC +00000000 +FFFE0000 +00010000 +FFFF0001 +00000000 +00000000 +FFFF0000 +00020000 +00000000 +FFFE0000 +00010000 +00010003 +00000000 +00040000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FFFFFFFE +FFFEFFFE +00000001 +FFFE0000 +0000FFFF +0002FFFF +FFFF0001 +FFFF0000 +0001FFFE +00000002 +00000001 +0000FFFE +00000001 +00000001 +00010001 +00030002 +FFFEFFFF +0000FFFF +00000000 +FFFE0000 +0001FFFE +00000000 +FFFF0002 +0000FFFF +0000FFFF +00000001 +00000000 +00000000 +00010000 +00000000 +00010002 +00020001 +FFFDFFFE +FFFF0000 +FFFFFFFE +FFFFFFFD +00000001 +FFFD0000 +00000000 +FFFE0000 +00010000 +FFFF0002 +00010000 +FFFF0003 +00020001 +0001FFFE +00000002 +00080000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +0000FFFF +FFFFFFFF 00000000 0000FFFE FFFF0000 -0000FFFF -00000000 -FFFF0001 -00010000 -FFFF0001 -00000000 -00010000 FFFF0000 -00020000 00000000 +FFFEFFFF 00000001 +00010001 +00000000 +00000002 +00010000 +00010000 +00000000 +00020001 +0000FFFF +FFFF0000 +FFFFFFFF 00010000 FFFF0000 -00000000 -00000000 FFFF0000 -00020001 -00000000 +FFFF0000 +00010000 +00000001 +FFFF0000 00010001 00010000 -FFFEFFFF 00010000 -FFFEFFFE -0000FFFF FFFF0000 00010000 -FFFEFFFF 00010000 -FFFEFFFF -00010000 -FFFF0001 +FFFFFFFF +FFFFFFFF +00000000 +00000000 +0000FFFF +0000FFFF +FFFF0000 +FFFE0000 +0001FFFF +00010001 +00000002 +00000000 +0000FFFF +00000001 +00010002 +00020000 +FFFFFFFF +FFFFFFFF +FFFF0000 0001FFFF FFFE0000 00010000 -FFFDFFFE -00000000 -00000001 -00010000 -00000002 -00020001 FFFF0000 -00010000 -00000001 -00010000 -00000001 -00010000 -FFFFFFFF +FFFEFFFF +FFFF0001 +00030001 +FFFF0000 00010001 00000000 00010000 +FFFF0000 +00040001 +0000FFFD +FFFF0000 +0000FFFF +0000FFFF +FFFEFFFF +FFFF0001 +0000FFFF +FFFE0000 +00000001 00010002 +0000FFFF +00000003 +0002FFFF +00010001 +0000FFFF +00020002 +00000000 +FFFF0000 +00000000 +00010000 +00000000 +FFFF0000 +00000000 +00010000 +00000000 +FFFF0000 +00000000 +00010000 +00000000 +FFFF0000 +00000000 +00010000 +00000000 +FFFFFFFF +00000000 +00000000 +00000000 +0000FFFF +00000000 +FFFF0000 +00000000 +00010001 +00000000 +00000000 +00000000 +00000001 +00000000 +00010000 +FFFFFFFE +00000000 +00000000 +FFFEFFFE +00010002 +00000000 +00000000 +00020002 +FFFFFFFE +00000000 +00000000 +FFFEFFFE +00010002 +00000000 +00000000 +00020002 +FFFEFFFF +00000000 +0000FFFE +00000000 +00000000 +FFFD0000 +00010000 +FFFDFFFE +00020001 +00000000 +00000002 +00000000 +00000000 +00030000 +FFFF0000 +00030002 +FFFEFFFE +FFFFFFFF +FFFF0000 +FFFFFFFE +00010001 +FFFF0001 +FFFFFFFE +00010001 +00000000 +FFFFFFFF +FFFF0000 +00010000 +00010001 +FFFF0001 +00030002 +00030001 +FFFFFFFE +FFFE0000 +FFFFFFFE +00000002 +00000000 +FFFEFFFF 00020000 +FFFEFFFF +00010000 +00000000 +FFFF0002 +0002FFFE +00000002 +00000001 +00000000 +00040001 +FFFFFFFD +00000000 +FFFFFFFF +FFFF0001 +FFFFFFFF +00000001 +FFFF0000 +FFFF0000 +0001FFFF +00000002 +FFFFFFFF +00010001 +00010001 +00000001 +0003FFFE +00010002 +FFFEFFFF +00000000 +FFFF0000 +FFFFFFFE +00000001 +0000FFFF +FFFFFFFF +FFFE0000 +00020001 +00000000 +00010000 +00010002 +0000FFFF +00000001 +00010001 +00020000 +FFFF0000 +FFFFFFFE +00000000 +FFFF0001 +0000FFFF +0001FFFF +FFFF0000 +FFFEFFFF +00010000 +00010002 +00000000 +0001FFFF +00000001 +FFFF0001 +00010000 +00020001 +FFFEFFFD +FFFE0001 +0000FFFC +FFFDFFFF +00010001 +FFFEFFFE +FFFF0001 +0001FFFF +00000001 +00000001 +00000002 +00010001 +00010001 +00000000 +00010001 +00050001 +FFFFFFFF +00000000 +0000FFFF +FFFFFFFF +00000000 +FFFEFFFF +00000000 +FFFEFFFE +00010001 +00000000 +00000001 +00010001 +00000000 +00020001 +00000000 +00020002 +FFFCFFFF +0001FFFF +00000000 +FFFC0000 +0002FFFF +00000001 +00000000 +00010000 +0000FFFF +FFFF0001 +00000000 +FFFEFFFE +00020003 +0000FFFF +00000000 +00050002 +00000000 +FFFFFFFF +00000000 +FFFF0000 +00000000 +00010001 +00000000 +00010000 +00000000 +FFFFFFFF +00000000 +FFFF0000 +00000000 +00010001 +00000000 +00010000 +FFFEFFFF +0000FFFF +FFFF0000 +FFFFFFFF +0001FFFE +FFFF0001 +00000000 +00000001 +0000FFFF +0000FFFF +00010002 +FFFFFFFF +00010000 +00010001 +00000002 +00020001 +FFFDFFFD +FFFF0000 +0000FFFE +FFFDFFFF +00010001 +FFFEFFFE +FFFF0003 +0000FFFD +00010001 +FFFF0002 +00000000 +00010001 +00010001 +00000000 +0001FFFF +00060003 +FFFFFFFF +FFFEFFFE +FFFF0000 +0000FFFF +00010001 +FFFF0000 +00010000 +00010001 +FFFFFFFF +00000000 +FFFF0000 +0000FFFF +00010001 +FFFF0002 +00010000 +00030001 +FFFCFFFE +FFFEFFFE +0002FFFF +FFFCFFFF +FFFF0001 +0000FFFE +FFFF0001 +FFFD0001 +00000000 +00020002 +0000FFFF +00000003 +00010001 +0000FFFE +00030001 +00070001 +FFFFFFFE +FFFEFFFE +FFFF0000 +00000000 +FFFFFFFE +00000001 +00000000 +FFFD0000 +00010000 +00000000 +00010002 +FFFE0000 +00010000 +00020001 +00000002 +00050000 +FFFCFFFE +00000001 +FFFFFFFE +FFFEFFFE +00010000 +FFFF0001 +0000FFFE +00000004 +0002FFFE +FFFE0001 +00010000 +00000000 +00010000 +FFFF0001 +00000000 +00060002 +00000000 +FFFFFFFF +00000000 +FFFF0000 +00000000 +00010001 +00000000 +00010000 +00000000 +FFFFFFFF +00000000 +FFFF0000 +00000000 +00010001 +00000000 +00010000 +FFFEFFFF +FFFEFFFE +00010000 +FFFE0000 +0001FFFF +FFFF0000 +00000001 +0000FFFF +00000001 +00000000 +FFFF0000 +0002FFFE +00010001 +FFFF0002 +0000FFFF +00040003 +FFFEFFFE +FFFEFFFF +00020000 +FFFC0001 +FFFF0000 +0002FFFF +00010001 +0001FFFF +00000000 +FFFEFFFF +00000000 +00000001 +FFFF0002 +0002FFFF +0001FFFF +00030003 +FFFEFFFE +FFFFFFFF +FFFF0001 +FFFE0000 +FFFF0000 +00030000 +FFFD0000 +0002FFFF +00000000 +FFFF0001 +FFFFFFFF +00000000 +FFFF0002 +00030000 +00010000 +00040001 +0000FFFE +FFFE0001 +0000FFFE +00000001 +0000FFFF +FFFE0000 +0000FFFF +00000000 +00000000 +00000001 +00000000 +00020001 +0000FFFF +00000002 +0000FFFF +00020002 +FFFF0000 +0000FFFF +00000000 +FFFF0000 +0000FFFF +00000000 +FFFF0000 +FFFFFFFF +00010000 +00000001 +00000000 +00010000 +00000001 +00000000 +00010000 +00010001 +FFFFFFFE +FFFEFFFE +FFFF0000 +0000FFFC +FFFF0001 +FFFD0000 +00010000 +FFFD0000 +00010000 +00000002 +FFFF0000 +00020004 +00010001 +00010000 +00010000 +00050000 +FFFEFFFE +00000001 +0000FFFF +FFFFFFFF +FFFFFFFF +00000001 +0000FFFF +FFFD0001 +00020000 +0000FFFF +00000003 +00010001 +0001FFFF +0000FFFF +00000003 +0003FFFF +FFFFFFFD +0000FFFF +FFFF0002 +FFFF0000 +0000FFFF +00000000 +FFFF0001 +FFFFFFFF +0001FFFF +00000001 +FFFF0000 +00010000 +00000001 +00000000 +00030001 +00010001 +FFFF0000 +0000FFFF +00000000 +FFFFFFFF +00010000 +00000001 +00000000 +00010001 +FFFF0000 +0000FFFF +00000000 +FFFFFFFF +00010000 +00000001 +00000000 +00010001 +FFFEFFFE +0000FFFE +0000FFFF +FFFD0001 +0000FFFE +00000003 +FFFE0000 +00010000 +00000000 +00000000 +0000FFFF +FFFF0001 +00020000 +00000003 +0002FFFE +00030002 +0000FFFE +FFFE0000 +0000FFFF +FFFEFFFF +00000001 +0000FFFF +00000000 +00000000 +00000000 +00000000 +00000001 +0000FFFF +00000001 +00020001 +00000000 +00020002 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FFFF0000 +FFFEFFFD +00010000 +FFFF0001 +FFFF0000 +0001FFFF +00010000 +00000001 +FFFF0000 +0000FFFF +00010000 +FFFF0001 +FFFF0000 +00010001 +00010000 +00020001 +0000FFFE +FFFEFFFF +FFFF0000 +0000FFFF +FFFF0001 +00000000 +00010000 +FFFDFFFF +00000000 +00020001 +FFFF0000 +00000001 +00010001 +00000000 +00010000 +00030001 +FFFDFFFF +0001FFFE +FFFFFFFF +FFFE0000 +0000FFFE +00000002 +FFFF0000 +FFFF0000 +00010001 +FFFF0000 +00010001 +0000FFFE +00020002 +00000000 +00010000 +00030002 diff --git a/9_Firmware/9_2_FPGA/tb/cosim/doppler_input_moving.hex b/9_Firmware/9_2_FPGA/tb/cosim/doppler_input_moving.hex index 08a2e59..12681b6 100644 --- a/9_Firmware/9_2_FPGA/tb/cosim/doppler_input_moving.hex +++ b/9_Firmware/9_2_FPGA/tb/cosim/doppler_input_moving.hex @@ -1106,8 +1106,8 @@ FFFF0000 00000000 00000000 00000000 -FFFF0001 -FFFF0000 +00000001 +00000000 FFFF0005 00000001 00000001 @@ -1172,7 +1172,7 @@ FFFF0000 00010000 00010000 00010000 -00060003 +00060002 00010001 00000001 00000000 @@ -1236,7 +1236,7 @@ FFFF0000 00000000 0001FFFF 0002FFFF -0006FFFD +0005FFFC 00010000 0001FFFF 00000001 @@ -1300,7 +1300,7 @@ FFFF0000 00000000 00000000 FFFFFFFF -FFFFFFFA +FFFEFFFA 0000FFFF 0000FFFF 00010001 @@ -1364,9 +1364,9 @@ FFFF0000 00000000 00000000 FFFF0000 -FFFAFFFD +FFFAFFFF FFFFFFFF -00000000 +00000001 00000001 FFFF0000 00000000 @@ -1427,74 +1427,74 @@ FFFF0000 FFFF0000 00000000 FFFF0000 -00000001 -FFFB0005 -FFFE0001 -00000000 -00010000 -00000000 -00000000 -00000001 -00000000 -0000FFFF -00010001 -00000000 -00000000 -00000000 -00000000 -00000000 -00000001 -00000001 -00000000 -00010001 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -FFFFFFFF -FFFFFFFF -0000FFFF -00000000 -00000000 -00000001 -00000000 -00000000 -FFFF0000 -FFFF0000 -00000001 -00010000 -00000000 -FFFF0000 -00010000 -00000001 -FFFF0000 -FFFF0000 -00010001 -FFFF0000 -FFFFFFFF -00000000 -00010000 -FFFF0000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00010001 -00000000 -00000000 -FFFF0000 -00000000 -00010001 -00000001 -00010006 00000002 +FFFD0006 +FFFE0001 00000001 +00010000 +00000000 +00000000 +00000001 +00000000 +0000FFFF +00010001 +00000000 +00000000 +00000000 +00000000 +00000000 +00000001 +00000001 +00000000 +00010001 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +FFFFFFFF +FFFFFFFF +0000FFFF +00000000 +00000000 +00000001 +00000000 +00000000 +FFFF0000 +FFFF0000 +00000001 +00010000 +00000000 +FFFF0000 +00010000 +00000001 +FFFF0000 +FFFF0000 +00010001 +FFFF0000 +FFFFFFFF +00000000 +00010000 +FFFF0000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00010001 +00000000 +00000000 +FFFF0000 +00000000 +00010000 +00010001 +00030005 +00010001 +00010001 00000000 00000000 FFFF0000 @@ -1556,8 +1556,8 @@ FFFFFFFF 00000000 00010000 00020000 -00060001 -00010000 +0006FFFE +0001FFFF 00010000 FFFF0000 00000001 @@ -1619,9 +1619,9 @@ FFFFFFFE 00000001 0000FFFF 00010000 -0001FFFF -0004FFFB -0002FFFF +0001FFFE +0001FFFA +0002FFFE 00010000 FFFF0000 FFFF0000 @@ -1682,9 +1682,9 @@ FFFF0000 00000000 00000001 00000001 -00000000 FFFF0000 -FFFEFFFA +FFFF0000 +FFFBFFFC FFFFFFFF FFFF0000 0000FFFF @@ -1747,9 +1747,9 @@ FFFFFFFF 00000000 0000FFFF FFFF0001 -FFFF0000 -FFFA0000 -FFFE0000 +FFFF0001 +FFFA0003 +FFFF0001 FFFF0000 00000000 00000001 @@ -1811,74 +1811,74 @@ FFFF0001 00010000 0000FFFF 00000000 -FFFF0002 -FFFD0005 -FFFF0001 -00000001 -0000FFFF -FFFF0001 -00000000 -00000000 -00000000 -FFFFFFFF -00010001 -FFFFFFFF -00000001 -00000000 -00000000 -00000000 -00010000 -00000000 -00000000 -FFFF0000 -00000000 -00000000 -00010000 -00000000 -00000000 -00000000 -00000000 -00000000 -0000FFFF -00000000 -0000FFFF -00000000 -00000000 -00000001 -00000001 -00000000 -00000000 -00000000 -00000000 -00000001 -FFFF0000 -00010000 -FFFF0000 -FFFF0000 -00000000 -00000000 -00000000 -00000001 -00000000 -FFFF0000 -00000001 -FFFF0000 -00000000 -0000FFFF -FFFF0000 -0000FFFF -00010000 -FFFF0000 -0001FFFF -0000FFFF -0001FFFF -00000000 -0000FFFF -00000001 -00010002 -00030005 00000002 +00000006 +FFFF0002 00010001 +0000FFFF +FFFF0001 +00000000 +00000000 +00000000 +FFFFFFFF +00010001 +FFFFFFFF +00000001 +00000000 +00000000 +00000000 +00010000 +00000000 +00000000 +FFFF0000 +00000000 +00000000 +00010000 +00000000 +00000000 +00000000 +00000000 +00000000 +0000FFFF +00000000 +0000FFFF +00000000 +00000000 +00000001 +00000001 +00000000 +00000000 +00000000 +00000000 +00000001 +FFFF0000 +00010000 +FFFF0000 +FFFF0000 +00000000 +00000000 +00000000 +00000001 +00000000 +FFFF0000 +00000001 +FFFF0000 +00000000 +0000FFFF +FFFF0000 +0000FFFF +00010000 +FFFF0000 +0001FFFF +0000FFFF +0001FFFF +00000000 +0000FFFF +00010000 +00020001 +00060002 +00000001 +00010000 0001FFFF 00000000 00000000 @@ -1939,9 +1939,9 @@ FFFF0000 00000000 0000FFFF 0001FFFF -0001FFFF -00070000 -00000000 +0000FFFE +0005FFFC +0000FFFF 00010001 FFFF0000 0000FFFF @@ -2003,9 +2003,9 @@ FFFF0000 00000001 00000000 0000FFFF -0001FFFF -0002FFF9 0000FFFF +FFFDFFF9 +FFFFFFFF FFFFFFFF 00000000 00000000 diff --git a/9_Firmware/9_2_FPGA/tb/cosim/doppler_input_two_targets.hex b/9_Firmware/9_2_FPGA/tb/cosim/doppler_input_two_targets.hex index 60ab57d..4de29f5 100644 --- a/9_Firmware/9_2_FPGA/tb/cosim/doppler_input_two_targets.hex +++ b/9_Firmware/9_2_FPGA/tb/cosim/doppler_input_two_targets.hex @@ -1099,7 +1099,7 @@ FFFF0000 00000000 00000002 FFFF0003 -FFFE0012 +FFFF0012 00000003 FFFF0002 00010001 @@ -1163,7 +1163,7 @@ FFFF0000 00010001 00010002 00020003 -000C000D +000D000C 00030003 00000001 00000001 @@ -1226,9 +1226,9 @@ FFFF0000 00000000 FFFF0000 00020000 -00030000 -00110004 -00030000 +0003FFFF +00120002 +0003FFFF 00020000 00000000 FFFF0000 @@ -1291,8 +1291,8 @@ FFFF0000 00010000 0002FFFF 0003FFFE -000FFFF6 -0004FFFF +000EFFF4 +0003FFFE 0002FFFF 00000000 FFFF0000 @@ -1312,8 +1312,8 @@ FFFF0000 00010000 00000001 0000FFFF -00000000 00010000 +00010001 FFFF0000 00000001 0000FFFF @@ -1353,10 +1353,10 @@ FFFF0000 00010001 0001FFFF 00010000 -0001FFFE -0001FFFD -0006FFF0 -0001FFFD +0000FFFE +0000FFFD +0003FFEF +0000FFFD 0000FFFE 00000000 00010000 @@ -1376,7 +1376,7 @@ FFFF0000 0000FFFF 00010000 00000001 -00010001 +00010002 00000000 00000001 00000000 @@ -1418,10 +1418,10 @@ FFFF0000 0000FFFF FFFF0000 FFFFFFFE -FFFEFFFD -FFF9FFF1 -FFFEFFFD -FFFFFFFF +FFFDFFFD +FFF5FFF2 +FFFEFFFE +FFFE0000 FFFF0000 00000001 FFFF0000 @@ -1439,8 +1439,8 @@ FFFF0000 0000FFFF 00010001 FFFF0000 -FFFF0001 -FFFF0001 +FFFF0000 +FFFF0000 00000000 00000000 00000001 @@ -1482,10 +1482,10 @@ FFFF0000 00000000 00000000 FFFF0000 -FFFCFFFF -FFEFFFF9 -FFFCFFFF -FFFF0000 +FFFC0000 +FFEEFFFE +FFFC0000 +FFFF0001 00000000 00000000 FFFF0000 @@ -1504,7 +1504,7 @@ FFFF0000 00000000 00000000 00000000 -FFFFFFFF +0000FFFF FFFF0001 00000000 00010000 @@ -1546,10 +1546,10 @@ FFFFFFFF 00000000 FFFFFFFF FFFE0001 -FFFD0001 -FFEF0006 -FFFD0001 -FFFF0000 +FFFD0002 +FFF1000B +FFFD0002 +FFFF0001 00000000 FFFFFFFF 00010000 @@ -1609,77 +1609,77 @@ FFFF0001 00000000 00000001 00000000 -FFFF0002 -FFFE0003 -FFF7000E -FFFF0005 -FFFF0001 -0001FFFF -00000000 -00000001 -0000FFFF -00000000 -00000000 -FFFF0000 -00010000 -00010000 -FFFF0000 -FFFF0000 -0000FFFF -00000000 -00000000 -00010000 -00000000 -00000000 -00010000 -00020001 -00000000 -00000000 -00000000 -FFFF0000 -00000000 -00000000 -00010000 -00000001 -00000001 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000001 -0000FFFF -00000000 -0000FFFF -00010000 -FFFF0000 -0001FFFF -00010001 -00000000 -FFFF0001 -00010000 -0000FFFF -00000001 -FFFF0000 -00000000 -0000FFFF -FFFF0000 -00000001 -00000000 -FFFF0000 -FFFF0000 -00000000 -0000FFFF -00000001 00000002 -00000003 -00050012 -00010003 +FFFF0004 +FFFC0010 +00000005 +00000001 +0001FFFF +00000000 +00000001 +0000FFFF +00000000 +00000000 +FFFF0000 +00010000 +00010000 +FFFF0000 +FFFF0000 +0000FFFF +00000000 +00000000 +00010000 +00000000 +00000000 +00010000 00010002 00000000 00000000 +00000000 +FFFF0000 +00000000 +00000000 +00010000 +00000001 +00000001 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000001 +0000FFFF +00000000 +0000FFFF +00010000 +FFFF0000 +0001FFFF +00010001 +00000000 +FFFF0001 +00010000 +0000FFFF +00000001 +FFFF0000 +00000000 +0000FFFF +FFFF0000 +00000001 +00000000 +FFFF0000 +FFFF0000 +00000000 +0000FFFF +00000001 +00000002 +00010003 +000B000F +00020003 +00020002 +00000000 +00000000 00000001 00000001 00000001 @@ -1696,9 +1696,9 @@ FFFFFFFF 00000000 0000FFFF 00000000 -00000002 -00010000 -00000000 +FFFF0001 +0000FFFF +FFFF0000 00000000 00000000 00000000 @@ -1737,160 +1737,160 @@ FFFFFFFF 00000000 00000000 00000001 +00020001 +00030000 +00110004 +00040000 +00020000 +00000000 +00000000 +00000000 +0000FFFF +00000001 +00000000 +00000001 +00000000 +00000000 +00000000 +00000001 +FFFFFFFF +0000FFFF +FFFF0000 +00000000 +FFFF0000 +00000001 +00000000 +0000FFFF +FFFFFFFF +00000000 +00000000 +FFFF0000 +FFFF0000 +0000FFFF +00010000 +00000001 +00010000 +00010001 +00000000 +0000FFFF +00000001 +00000000 +FFFF0001 +00010001 +00000000 +00000000 +00000000 +00000000 +FFFFFFFF +FFFF0000 +00000000 +00010001 +00010000 +FFFFFFFF +00000000 +00000001 +00000000 +00000000 +00000000 +00000000 +00000000 +00010000 +00000000 +FFFF0000 +0000FFFF +0000FFFF +00000000 +00000000 +0001FFFF +0004FFFE +000FFFF7 +0004FFFE +00010000 +FFFF0001 +0000FFFF +00010000 +0000FFFF +00000000 +FFFF0001 +00000000 +FFFF0000 +00010000 +0000FFFF +FFFF0001 +00000000 +00000000 +00000000 +FFFFFFFF +00010001 +FFFFFFFF +00000000 +00010000 +00000000 +00000000 +00010000 +00000000 +00000000 +FFFF0000 +00000000 +00000000 +00010000 +00000000 +00000000 +00000000 +00000000 +00000000 +0000FFFF +00000000 +0000FFFF +00000000 +00000000 +00000001 +00000001 +00000000 +00000000 +00000000 +00000000 +00000001 +FFFF0000 +00010000 +FFFF0000 +FFFF0000 +00000000 +00000000 +00000000 +00000001 +00000000 +FFFF0000 +00000001 +FFFF0000 +00000000 +0000FFFF +0000FFFE +0001FFFB +0005FFEF +0000FFFC +0001FFFE +0000FFFF +0001FFFF +00000000 +0000FFFF +00000000 +00010001 +00000000 +FFFF0001 +00000000 +0001FFFF +00000000 +00000000 +00010000 +FFFF0000 +00000000 +0001FFFF +00000000 +00000001 00020002 -00030001 -000E000A -00040001 -00020001 -00000000 -00000000 00000000 0000FFFF -00000001 -00000000 -00000001 -00000000 -00000000 -00000000 -00000001 -FFFFFFFF -0000FFFF -FFFF0000 -00000000 -FFFF0000 -00000001 -00000000 -FFFFFFFF -FFFFFFFF -00000000 -00000000 -FFFF0000 -FFFF0000 -0000FFFF -00010000 -00000001 -00010000 -00010001 -00000000 -0000FFFF -00000001 -00000000 -FFFF0001 -00010001 -00000000 -00000000 -00000000 -00000000 -FFFFFFFF -FFFF0000 -00000000 -00010001 -00010000 -FFFFFFFF -00000000 -00000001 -00000000 -00000000 -00000000 -00000000 -00000000 -00010000 -00000000 -FFFF0000 -0000FFFF -0000FFFF -00000000 -00000000 -00020000 -00050000 -0012FFFE -00040000 -00020000 -FFFF0001 -0000FFFF -00010000 -0000FFFF -00000000 -FFFF0001 -00000000 -FFFF0000 -00010000 -0000FFFF -FFFF0001 -00000000 -00000000 -00000000 -FFFFFFFF -00010001 -FFFFFFFF -00000000 -0000FFFF -00000000 -00000000 -00010000 -00000000 -00000000 -FFFF0000 -00000000 -00000000 -00010000 -00000000 -00000000 -00000000 -00000000 -00000000 -0000FFFF -00000000 -0000FFFF -00000000 -00000000 -00000001 -00000001 -00000000 -00000000 -00000000 -00000000 -00000001 -FFFF0000 -00010000 -FFFF0000 -FFFF0000 -00000000 -00000000 -00000000 -00000001 -00000000 -FFFF0000 -00000001 -FFFF0000 -00000000 -0000FFFF -0000FFFE -0003FFFC -000CFFF3 -0001FFFD -0002FFFE -0000FFFF -0001FFFF -00000000 -0000FFFF -00000000 -00010001 -00000000 -FFFF0001 -00000000 -0001FFFF -00000000 -00000000 -00010000 -FFFF0000 -00000000 -0001FFFF -00010000 -00000000 -00030001 -00000000 -0001FFFF 00000000 00000000 0000FFFF @@ -1929,78 +1929,78 @@ FFFF0000 FFFF0000 00000000 00000000 -0000FFFE -FFFFFFFD -FFFFFFEE -FFFFFFFC FFFFFFFE -00000000 -FFFF0000 -00000000 -0000FFFF -0000FFFF -FFFFFFFF -00000000 -FFFF0000 -00000001 -FFFF0000 -0000FFFF -00000000 -00000000 -00000000 -00010000 -FFFF0000 -00000000 -00000000 -00010001 -00000000 -00000000 -0000FFFF -00000000 -00000000 -00000000 -00000000 -00000001 -0000FFFF -00000000 -00000000 -00000000 -00000000 -00010000 -00000000 -00000001 -00000000 -FFFF0000 -00000000 -00000001 -00010000 -00000000 -00000001 -00010000 -00000000 -FFFF0000 -00000001 -00000000 -00000000 -00000000 -00000000 -00000000 -00000001 -00010000 -00000000 -00000000 -0001FFFF -0000FFFF -00010000 -FFFF0000 -FFFFFFFF -FFFEFFFE -FFF3FFF3 FFFEFFFD +FFF7FFF1 +FFFEFFFD +FFFEFFFE +00000000 +FFFF0000 +00000000 +0000FFFF +0000FFFF FFFFFFFF 00000000 FFFF0000 00000001 +FFFF0000 +0000FFFF +00000000 +00000000 +00000000 +00010000 +FFFF0000 +00000000 +00000000 +FFFF0000 +00000000 +00000000 +0000FFFF +00000000 +00000000 +00000000 +00000000 +00000001 +0000FFFF +00000000 +00000000 +00000000 +00000000 +00010000 +00000000 +00000001 +00000000 +FFFF0000 +00000000 +00000001 +00010000 +00000000 +00000001 +00010000 +00000000 +FFFF0000 +00000001 +00000000 +00000000 +00000000 +00000000 +00000000 +00000001 +00010000 +00000000 +00000000 +0001FFFF +0000FFFF +00010000 +FFFF0000 +FFFF0000 +FFFEFFFF +FFEEFFFB +FFFDFFFE +FFFEFFFF +00000000 +FFFF0000 +00000001 00000000 00000000 00000001 @@ -2016,7 +2016,7 @@ FFFF0001 00010000 00000000 0001FFFF -FFFE0000 +FFFFFFFF 00000001 00000000 00010000 diff --git a/9_Firmware/9_2_FPGA/tb/cosim/fpga_model.py b/9_Firmware/9_2_FPGA/tb/cosim/fpga_model.py index 0ecc3e0..e626c6b 100644 --- a/9_Firmware/9_2_FPGA/tb/cosim/fpga_model.py +++ b/9_Firmware/9_2_FPGA/tb/cosim/fpga_model.py @@ -1075,44 +1075,43 @@ class RangeBinDecimator: # ============================================================================= -# Doppler Processor (Hamming window + 32-point FFT) +# Doppler Processor (Hamming window + dual 16-point FFT) # ============================================================================= -# Hamming window LUT (32 entries, 16-bit unsigned Q15) +# Hamming window LUT (16 entries, 16-bit unsigned Q15) +# Matches doppler_processor.v window_coeff[0:15] +# w[n] = 0.54 - 0.46 * cos(2*pi*n/15), n=0..15, symmetric HAMMING_WINDOW = [ - 0x0800, 0x0862, 0x09CB, 0x0C3B, 0x0FB2, 0x142F, 0x19B2, 0x2039, - 0x27C4, 0x3050, 0x39DB, 0x4462, 0x4FE3, 0x5C5A, 0x69C4, 0x781D, - 0x7FFF, 0x781D, 0x69C4, 0x5C5A, 0x4FE3, 0x4462, 0x39DB, 0x3050, - 0x27C4, 0x2039, 0x19B2, 0x142F, 0x0FB2, 0x0C3B, 0x09CB, 0x0862, + 0x0A3D, 0x0E5C, 0x1B6D, 0x3088, 0x4B33, 0x6573, 0x7642, 0x7F62, + 0x7F62, 0x7642, 0x6573, 0x4B33, 0x3088, 0x1B6D, 0x0E5C, 0x0A3D, ] class DopplerProcessor: """ - Bit-accurate model of doppler_processor_optimized.v + Bit-accurate model of doppler_processor_optimized.v (dual 16-pt FFT architecture). - For each range bin (0-63): - 1. Read 32 chirps of data from accumulation buffer - 2. Apply Hamming window (Q15 multiply, round, >>>15) - 3. 32-point FFT + The staggered-PRF frame has 32 chirps total: + - Sub-frame 0 (long PRI): chirps 0-15 -> 16-pt Hamming -> 16-pt FFT -> bins 0-15 + - Sub-frame 1 (short PRI): chirps 16-31 -> 16-pt Hamming -> 16-pt FFT -> bins 16-31 - The 32-point FFT uses xfft_32.v (Xilinx IP wrapper around fft_engine). - For the Python model, we use FFTEngine with N=32. + Output: doppler_bin[4:0] = {sub_frame_id, bin_in_subframe[3:0]} + Total output per range bin: 32 bins (16 + 16), same interface as before. """ - DOPPLER_FFT_SIZE = 32 + DOPPLER_FFT_SIZE = 16 # Per sub-frame RANGE_BINS = 64 CHIRPS_PER_FRAME = 32 + CHIRPS_PER_SUBFRAME = 16 - def __init__(self, twiddle_file_32=None): + def __init__(self, twiddle_file_16=None): """ - For 32-point FFT, we need the 32-point twiddle file. + For 16-point FFT, we need the 16-point twiddle file. If not provided, we generate twiddle factors mathematically - (since the 32-pt twiddle ROM is cos(2*pi*k/32) for k=0..7). + (cos(2*pi*k/16) for k=0..3, quarter-wave ROM with 4 entries). """ - self.fft32 = None - self._twiddle_file_32 = twiddle_file_32 - # We'll use a simple 32-pt FFT with computed twiddles + self.fft16 = None + self._twiddle_file_16 = twiddle_file_16 @staticmethod def window_multiply(data_16, window_16): @@ -1134,7 +1133,7 @@ class DopplerProcessor: def process_frame(self, chirp_data_i, chirp_data_q): """ - Process one complete Doppler frame. + Process one complete Doppler frame using dual 16-pt FFTs. Args: chirp_data_i: 2D array [32 chirps][64 range bins] of signed 16-bit I @@ -1143,46 +1142,63 @@ class DopplerProcessor: Returns: (doppler_map_i, doppler_map_q): 2D arrays [64 range bins][32 doppler bins] of signed 16-bit + Bins 0-15 = sub-frame 0 (long PRI) + Bins 16-31 = sub-frame 1 (short PRI) """ doppler_map_i = [] doppler_map_q = [] - # Generate 32-pt twiddle factors (quarter-wave cos, 8 entries) - # cos(2*pi*k/32) for k=0..7 + # Generate 16-pt twiddle factors (quarter-wave cos, 4 entries) + # cos(2*pi*k/16) for k=0..3 + # Matches fft_twiddle_16.mem: 7FFF, 7641, 5A82, 30FB import math - cos_rom_32 = [] - for k in range(8): - val = round(32767.0 * math.cos(2.0 * math.pi * k / 32.0)) - cos_rom_32.append(sign_extend(val & 0xFFFF, 16)) + cos_rom_16 = [] + for k in range(4): + val = round(32767.0 * math.cos(2.0 * math.pi * k / 16.0)) + cos_rom_16.append(sign_extend(val & 0xFFFF, 16)) - fft32 = FFTEngine.__new__(FFTEngine) - fft32.N = 32 - fft32.LOG2N = 5 - fft32.cos_rom = cos_rom_32 - fft32.mem_re = [0] * 32 - fft32.mem_im = [0] * 32 + fft16 = FFTEngine.__new__(FFTEngine) + fft16.N = 16 + fft16.LOG2N = 4 + fft16.cos_rom = cos_rom_16 + fft16.mem_re = [0] * 16 + fft16.mem_im = [0] * 16 for rbin in range(self.RANGE_BINS): - # Gather 32 chirps for this range bin - fft_in_re = [] - fft_in_im = [] + # Output bins for this range bin: 32 total (16 from each sub-frame) + out_re = [0] * 32 + out_im = [0] * 32 - for chirp in range(self.CHIRPS_PER_FRAME): - re_val = sign_extend(chirp_data_i[chirp][rbin] & 0xFFFF, 16) - im_val = sign_extend(chirp_data_q[chirp][rbin] & 0xFFFF, 16) + # Process each sub-frame independently + for sf in range(2): + chirp_start = sf * self.CHIRPS_PER_SUBFRAME + bin_offset = sf * self.DOPPLER_FFT_SIZE - # Apply Hamming window - win_re = self.window_multiply(re_val, HAMMING_WINDOW[chirp]) - win_im = self.window_multiply(im_val, HAMMING_WINDOW[chirp]) + fft_in_re = [] + fft_in_im = [] - fft_in_re.append(win_re) - fft_in_im.append(win_im) + for c in range(self.CHIRPS_PER_SUBFRAME): + chirp = chirp_start + c + re_val = sign_extend(chirp_data_i[chirp][rbin] & 0xFFFF, 16) + im_val = sign_extend(chirp_data_q[chirp][rbin] & 0xFFFF, 16) - # 32-point forward FFT - fft_out_re, fft_out_im = fft32.compute(fft_in_re, fft_in_im, inverse=False) + # Apply 16-pt Hamming window (index = c within sub-frame) + win_re = self.window_multiply(re_val, HAMMING_WINDOW[c]) + win_im = self.window_multiply(im_val, HAMMING_WINDOW[c]) - doppler_map_i.append(fft_out_re) - doppler_map_q.append(fft_out_im) + fft_in_re.append(win_re) + fft_in_im.append(win_im) + + # 16-point forward FFT + fft_out_re, fft_out_im = fft16.compute(fft_in_re, fft_in_im, inverse=False) + + # Pack into output: sub-frame 0 -> bins 0-15, sub-frame 1 -> bins 16-31 + for b in range(self.DOPPLER_FFT_SIZE): + out_re[bin_offset + b] = fft_out_re[b] + out_im[bin_offset + b] = fft_out_im[b] + + doppler_map_i.append(out_re) + doppler_map_q.append(out_im) return doppler_map_i, doppler_map_q @@ -1207,7 +1223,7 @@ class SignalChain: IF_FREQ = 120_000_000 # IF frequency FTW_120MHZ = 0x4CCCCCCD # Phase increment for 120 MHz at 400 MSPS - def __init__(self, twiddle_file_1024=None, twiddle_file_32=None): + def __init__(self, twiddle_file_1024=None, twiddle_file_16=None): self.nco = NCO() self.mixer = Mixer() self.cic_i = CICDecimator() @@ -1217,7 +1233,7 @@ class SignalChain: self.ddc_interface = DDCInputInterface() self.matched_filter = MatchedFilterChain(fft_size=1024, twiddle_file=twiddle_file_1024) self.range_decimator = RangeBinDecimator() - self.doppler = DopplerProcessor(twiddle_file_32=twiddle_file_32) + self.doppler = DopplerProcessor(twiddle_file_16=twiddle_file_16) def ddc_step(self, adc_data_8bit, ftw=None): """ diff --git a/9_Firmware/9_2_FPGA/tb/cosim/gen_doppler_golden.py b/9_Firmware/9_2_FPGA/tb/cosim/gen_doppler_golden.py index b8cf109..e9668bd 100644 --- a/9_Firmware/9_2_FPGA/tb/cosim/gen_doppler_golden.py +++ b/9_Firmware/9_2_FPGA/tb/cosim/gen_doppler_golden.py @@ -3,23 +3,17 @@ Generate Doppler processor co-simulation golden reference data. Uses the bit-accurate Python model (fpga_model.py) to compute the expected -Doppler FFT output. Also generates the input hex files consumed by the -Verilog testbench (tb_doppler_cosim.v). +Doppler FFT output for the dual 16-pt FFT architecture. Also generates the +input hex files consumed by the Verilog testbench (tb_doppler_cosim.v). -Two output modes: - 1. "clean" — straight Python model (correct windowing alignment) - 2. "buggy" — replicates the RTL's windowing pipeline misalignment: - * Sample 0: fft_input = 0 (from reset mult value) - * Sample 1: fft_input = window_multiply(data[wrong_rbin_or_0], window[0]) - * Sample k (k>=2): fft_input = window_multiply(data[k-2], window[k-1]) - -Default mode is "clean". The comparison script uses correlation-based -metrics that are tolerant of the pipeline shift. +Architecture: + Sub-frame 0 (long PRI): chirps 0-15 -> 16-pt Hamming -> 16-pt FFT -> bins 0-15 + Sub-frame 1 (short PRI): chirps 16-31 -> 16-pt Hamming -> 16-pt FFT -> bins 16-31 Usage: cd ~/PLFM_RADAR/9_Firmware/9_2_FPGA/tb/cosim - python3 gen_doppler_golden.py # clean model - python3 gen_doppler_golden.py --buggy # replicate RTL pipeline bug + python3 gen_doppler_golden.py + python3 gen_doppler_golden.py stationary # single scenario Author: Phase 0.5 Doppler co-simulation suite for PLFM_RADAR """ @@ -31,7 +25,7 @@ import sys sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) from fpga_model import ( - DopplerProcessor, FFTEngine, sign_extend, HAMMING_WINDOW + DopplerProcessor, sign_extend, HAMMING_WINDOW ) from radar_scene import Target, generate_doppler_frame @@ -40,7 +34,8 @@ from radar_scene import Target, generate_doppler_frame # Constants # ============================================================================= -DOPPLER_FFT_SIZE = 32 +DOPPLER_FFT_SIZE = 16 # Per sub-frame +DOPPLER_TOTAL_BINS = 32 # Total output (2 sub-frames x 16) RANGE_BINS = 64 CHIRPS_PER_FRAME = 32 TOTAL_SAMPLES = CHIRPS_PER_FRAME * RANGE_BINS # 2048 @@ -82,154 +77,6 @@ def write_hex_16bit(filepath, data): # Buggy-model helpers (match RTL pipeline misalignment) # ============================================================================= -def window_multiply(data_16, window_16): - """Hamming window multiply matching RTL.""" - d = sign_extend(data_16 & 0xFFFF, 16) - w = sign_extend(window_16 & 0xFFFF, 16) - product = d * w - rounded = product + (1 << 14) - result = rounded >> 15 - return sign_extend(result & 0xFFFF, 16) - - -def buggy_process_frame(chirp_data_i, chirp_data_q): - """ - Replicate the RTL's exact windowing pipeline for all 64 range bins. - - For each range bin we model the three-stage pipeline: - Stage A (BRAM registered read): - mem_rdata captures doppler_i_mem[mem_read_addr] one cycle AFTER - mem_read_addr is presented. - Stage B (multiply): - mult_i <= mem_rdata_i * window_coeff[read_doppler_index] - -- read_doppler_index is the CURRENT cycle's value, but mem_rdata_i - -- is from the PREVIOUS cycle's address. - Stage C (round+shift): - fft_input_i <= (mult_i + (1<<14)) >>> 15 - -- uses the PREVIOUS cycle's mult_i. - - Additionally, at the S_ACCUMULATE->S_LOAD_FFT transition (rbin=0) or - S_OUTPUT->S_LOAD_FFT transition (rbin>0), the BRAM address during the - transition cycle depends on the stale read_doppler_index and read_range_bin - values. - - This function models every detail to produce bit-exact FFT inputs. - """ - # Build the 32-pt FFT engine (matching fpga_model.py) - import math as _math - cos_rom_32 = [] - for k in range(8): - val = round(32767.0 * _math.cos(2.0 * _math.pi * k / 32.0)) - cos_rom_32.append(sign_extend(val & 0xFFFF, 16)) - - fft32 = FFTEngine.__new__(FFTEngine) - fft32.N = 32 - fft32.LOG2N = 5 - fft32.cos_rom = cos_rom_32 - fft32.mem_re = [0] * 32 - fft32.mem_im = [0] * 32 - - # Build flat BRAM contents: addr = chirp_index * 64 + range_bin - bram_i = [0] * TOTAL_SAMPLES - bram_q = [0] * TOTAL_SAMPLES - for chirp in range(CHIRPS_PER_FRAME): - for rb in range(RANGE_BINS): - addr = chirp * RANGE_BINS + rb - bram_i[addr] = sign_extend(chirp_data_i[chirp][rb] & 0xFFFF, 16) - bram_q[addr] = sign_extend(chirp_data_q[chirp][rb] & 0xFFFF, 16) - - doppler_map_i = [] - doppler_map_q = [] - - # State carried across range bins (simulates the RTL registers) - # After reset: read_doppler_index=0, read_range_bin=0, mult_i=0, mult_q=0, - # fft_input_i=0, fft_input_q=0 - # The BRAM read is always active: mem_rdata <= doppler_i_mem[mem_read_addr] - # mem_read_addr = read_doppler_index * 64 + read_range_bin - - # We need to track what read_doppler_index and read_range_bin are at each - # transition, since the BRAM captures data one cycle before S_LOAD_FFT runs. - - # Before processing starts (just entered S_LOAD_FFT from S_ACCUMULATE): - # At the S_ACCUMULATE clock that transitions: - # read_doppler_index <= 0 (NBA) - # read_range_bin <= 0 (NBA) - # These take effect NEXT cycle. At the transition clock itself, - # read_doppler_index and read_range_bin still had their old values. - # From reset, both were 0. So BRAM captures addr=0*64+0=0. - # - # For rbin>0 transitions from S_OUTPUT: - # At S_OUTPUT clock: - # read_doppler_index <= 0 (was 0, since it wrapped from 32->0 in 5 bits) - # read_range_bin <= prev_rbin + 1 (NBA, takes effect next cycle) - # At S_OUTPUT clock, the current read_range_bin = prev_rbin, - # read_doppler_index = 0 (wrapped). So BRAM captures addr=0*64+prev_rbin. - - for rbin in range(RANGE_BINS): - # Determine what BRAM data was captured during the transition clock - # (one cycle before S_LOAD_FFT's first execution cycle). - if rbin == 0: - # From S_ACCUMULATE: both indices were 0 (from reset or previous NBA) - # BRAM captures addr = 0*64+0 = 0 -> data[chirp=0][rbin=0] - transition_bram_addr = 0 * RANGE_BINS + 0 - else: - # From S_OUTPUT: read_doppler_index=0 (wrapped), read_range_bin=rbin-1 - # BRAM captures addr = 0*64+(rbin-1) -> data[chirp=0][rbin-1] - transition_bram_addr = 0 * RANGE_BINS + (rbin - 1) - - transition_data_i = bram_i[transition_bram_addr] - transition_data_q = bram_q[transition_bram_addr] - - # Now simulate the 32 cycles of S_LOAD_FFT for this range bin. - # Register pipeline state at entry: - mult_i_reg = 0 # From reset (rbin=0) or from end of previous S_FFT_WAIT - mult_q_reg = 0 - - fft_in_i_list = [] - fft_in_q_list = [] - - for k in range(DOPPLER_FFT_SIZE): - # read_doppler_index = k at this cycle's start - # mem_read_addr = k * 64 + rbin - - # What mem_rdata holds THIS cycle: - if k == 0: - # BRAM captured transition_bram_addr last cycle - rd_i = transition_data_i - rd_q = transition_data_q - else: - # BRAM captured addr from PREVIOUS cycle: (k-1)*64 + rbin - prev_addr = (k - 1) * RANGE_BINS + rbin - rd_i = bram_i[prev_addr] - rd_q = bram_q[prev_addr] - - # Stage B: multiply (uses current read_doppler_index = k) - new_mult_i = sign_extend(rd_i & 0xFFFF, 16) * \ - sign_extend(HAMMING_WINDOW[k] & 0xFFFF, 16) - new_mult_q = sign_extend(rd_q & 0xFFFF, 16) * \ - sign_extend(HAMMING_WINDOW[k] & 0xFFFF, 16) - - # Stage C: round+shift (uses PREVIOUS cycle's mult) - fft_i = (mult_i_reg + (1 << 14)) >> 15 - fft_q = (mult_q_reg + (1 << 14)) >> 15 - - fft_in_i_list.append(sign_extend(fft_i & 0xFFFF, 16)) - fft_in_q_list.append(sign_extend(fft_q & 0xFFFF, 16)) - - # Update pipeline registers for next cycle - mult_i_reg = new_mult_i - mult_q_reg = new_mult_q - - # 32-point FFT - fft_out_re, fft_out_im = fft32.compute( - fft_in_i_list, fft_in_q_list, inverse=False - ) - - doppler_map_i.append(fft_out_re) - doppler_map_q.append(fft_out_im) - - return doppler_map_i, doppler_map_q - # ============================================================================= # Test scenario definitions @@ -244,9 +91,10 @@ def make_scenario_stationary(): def make_scenario_moving(): """Single target with moderate Doppler shift.""" # v = 15 m/s → fd = 2*v*fc/c ≈ 1050 Hz - # PRI = 167 us → Doppler bin = fd * N_chirps * PRI = 1050 * 32 * 167e-6 ≈ 5.6 + # Long PRI = 167 us → sub-frame 0 bin = fd * 16 * 167e-6 ≈ 2.8 → bin ~3 + # Short PRI = 175 us → sub-frame 1 bin = fd * 16 * 175e-6 ≈ 2.9 → bin 16+3 = 19 targets = [Target(range_m=500, velocity_mps=15.0, rcs_dbsm=20.0)] - return targets, "Single moving target v=15m/s (~1050Hz Doppler, bin~5-6)" + return targets, "Single moving target v=15m/s (~1050Hz Doppler, sf0 bin~3, sf1 bin~19)" def make_scenario_two_targets(): @@ -269,12 +117,11 @@ SCENARIOS = { # Main generator # ============================================================================= -def generate_scenario(name, targets, description, base_dir, use_buggy_model=False): +def generate_scenario(name, targets, description, base_dir): """Generate input hex + golden output for one scenario.""" print(f"\n{'='*60}") print(f"Scenario: {name} — {description}") - model_label = "BUGGY (RTL pipeline)" if use_buggy_model else "CLEAN" - print(f"Model: {model_label}") + print(f"Model: CLEAN (dual 16-pt FFT)") print(f"{'='*60}") # Generate Doppler frame (32 chirps x 64 range bins) @@ -292,26 +139,24 @@ def generate_scenario(name, targets, description, base_dir, use_buggy_model=Fals input_hex = os.path.join(base_dir, f"doppler_input_{name}.hex") write_hex_32bit(input_hex, packed_samples) - # ---- Run through Python model ---- - if use_buggy_model: - doppler_i, doppler_q = buggy_process_frame(frame_i, frame_q) - else: - dp = DopplerProcessor() - doppler_i, doppler_q = dp.process_frame(frame_i, frame_q) + # ---- Run through Python model (dual 16-pt FFT) ---- + dp = DopplerProcessor() + doppler_i, doppler_q = dp.process_frame(frame_i, frame_q) print(f" Doppler output: {len(doppler_i)} range bins x " - f"{len(doppler_i[0])} doppler bins") + f"{len(doppler_i[0])} doppler bins (2 sub-frames x {DOPPLER_FFT_SIZE})") # ---- Write golden output CSV ---- # Format: range_bin, doppler_bin, out_i, out_q # Ordered same as RTL output: all doppler bins for rbin 0, then rbin 1, ... + # Bins 0-15 = sub-frame 0 (long PRI), bins 16-31 = sub-frame 1 (short PRI) flat_rbin = [] flat_dbin = [] flat_i = [] flat_q = [] for rbin in range(RANGE_BINS): - for dbin in range(DOPPLER_FFT_SIZE): + for dbin in range(DOPPLER_TOTAL_BINS): flat_rbin.append(rbin) flat_dbin.append(dbin) flat_i.append(doppler_i[rbin][dbin]) @@ -331,8 +176,8 @@ def generate_scenario(name, targets, description, base_dir, use_buggy_model=Fals peak_info = [] for rbin in range(RANGE_BINS): mags = [abs(doppler_i[rbin][d]) + abs(doppler_q[rbin][d]) - for d in range(DOPPLER_FFT_SIZE)] - peak_dbin = max(range(DOPPLER_FFT_SIZE), key=lambda d: mags[d]) + for d in range(DOPPLER_TOTAL_BINS)] + peak_dbin = max(range(DOPPLER_TOTAL_BINS), key=lambda d: mags[d]) peak_mag = mags[peak_dbin] peak_info.append((rbin, peak_dbin, peak_mag)) @@ -341,33 +186,14 @@ def generate_scenario(name, targets, description, base_dir, use_buggy_model=Fals for rbin, dbin, mag in peak_info[:5]: i_val = doppler_i[rbin][dbin] q_val = doppler_q[rbin][dbin] - print(f" rbin={rbin:2d}, dbin={dbin:2d}, mag={mag:6d}, " + sf = dbin // DOPPLER_FFT_SIZE + bin_in_sf = dbin % DOPPLER_FFT_SIZE + print(f" rbin={rbin:2d}, dbin={dbin:2d} (sf{sf}:{bin_in_sf:2d}), mag={mag:6d}, " f"I={i_val:6d}, Q={q_val:6d}") - # ---- Write frame data for debugging ---- - # Also write per-range-bin FFT input (for debugging pipeline alignment) - if use_buggy_model: - # Write the buggy FFT inputs for debugging - debug_csv = os.path.join(base_dir, f"doppler_fft_inputs_{name}.csv") - # Regenerate to capture FFT inputs - dp_debug = DopplerProcessor() - clean_i, clean_q = dp_debug.process_frame(frame_i, frame_q) - # Show the difference between clean and buggy - print(f"\n Comparing clean vs buggy model outputs:") - mismatches = 0 - for rbin in range(RANGE_BINS): - for dbin in range(DOPPLER_FFT_SIZE): - if (doppler_i[rbin][dbin] != clean_i[rbin][dbin] or - doppler_q[rbin][dbin] != clean_q[rbin][dbin]): - mismatches += 1 - total = RANGE_BINS * DOPPLER_FFT_SIZE - print(f" {mismatches}/{total} output samples differ " - f"({100*mismatches/total:.1f}%)") - return { 'name': name, 'description': description, - 'model': 'buggy' if use_buggy_model else 'clean', 'peak_info': peak_info[:5], } @@ -375,11 +201,9 @@ def generate_scenario(name, targets, description, base_dir, use_buggy_model=Fals def main(): base_dir = os.path.dirname(os.path.abspath(__file__)) - use_buggy = '--buggy' in sys.argv - print("=" * 60) print("Doppler Processor Co-Sim Golden Reference Generator") - print(f"Model: {'BUGGY (RTL pipeline replication)' if use_buggy else 'CLEAN'}") + print(f"Architecture: dual {DOPPLER_FFT_SIZE}-pt FFT ({DOPPLER_TOTAL_BINS} total bins)") print("=" * 60) scenarios_to_run = list(SCENARIOS.keys()) @@ -395,15 +219,14 @@ def main(): results = [] for name in scenarios_to_run: targets, description = SCENARIOS[name]() - r = generate_scenario(name, targets, description, base_dir, - use_buggy_model=use_buggy) + r = generate_scenario(name, targets, description, base_dir) results.append(r) print(f"\n{'='*60}") print("Summary:") print(f"{'='*60}") for r in results: - print(f" {r['name']:<15s} [{r['model']}] top peak: " + print(f" {r['name']:<15s} top peak: " f"rbin={r['peak_info'][0][0]}, dbin={r['peak_info'][0][1]}, " f"mag={r['peak_info'][0][2]}") diff --git a/9_Firmware/9_2_FPGA/tb/cosim/radar_scene.py b/9_Firmware/9_2_FPGA/tb/cosim/radar_scene.py index 2b6e8da..b786514 100644 --- a/9_Firmware/9_2_FPGA/tb/cosim/radar_scene.py +++ b/9_Firmware/9_2_FPGA/tb/cosim/radar_scene.py @@ -48,19 +48,24 @@ ADC_BITS = 8 # ADC resolution T_LONG_CHIRP = 30e-6 # 30 us long chirp duration T_SHORT_CHIRP = 0.5e-6 # 0.5 us short chirp T_LISTEN_LONG = 137e-6 # 137 us listening window +T_PRI_LONG = 167e-6 # 30 us chirp + 137 us listen +T_PRI_SHORT = 175e-6 # staggered short-PRI sub-frame N_SAMPLES_LISTEN = int(T_LISTEN_LONG * FS_ADC) # 54800 samples # Processing chain CIC_DECIMATION = 4 FFT_SIZE = 1024 RANGE_BINS = 64 -DOPPLER_FFT_SIZE = 32 +DOPPLER_FFT_SIZE = 16 # Per sub-frame +DOPPLER_TOTAL_BINS = 32 # Total output bins (2 sub-frames x 16) +CHIRPS_PER_SUBFRAME = 16 CHIRPS_PER_FRAME = 32 # Derived RANGE_RESOLUTION = C_LIGHT / (2 * CHIRP_BW) # 7.5 m MAX_UNAMBIGUOUS_RANGE = C_LIGHT * T_LISTEN_LONG / 2 # ~20.55 km -VELOCITY_RESOLUTION = WAVELENGTH / (2 * CHIRPS_PER_FRAME * T_LONG_CHIRP) +VELOCITY_RESOLUTION_LONG = WAVELENGTH / (2 * CHIRPS_PER_SUBFRAME * T_PRI_LONG) +VELOCITY_RESOLUTION_SHORT = WAVELENGTH / (2 * CHIRPS_PER_SUBFRAME * T_PRI_SHORT) # Short chirp LUT (60 entries, 8-bit unsigned) SHORT_CHIRP_LUT = [ @@ -384,9 +389,6 @@ def generate_doppler_frame(targets, n_chirps=CHIRPS_PER_FRAME, break return math.sqrt(-2.0 * math.log(u1)) * math.cos(2.0 * math.pi * u2) - # Chirp repetition interval (PRI) - t_pri = T_LONG_CHIRP + T_LISTEN_LONG # ~167 us - frame_i = [] frame_q = [] @@ -408,8 +410,16 @@ def generate_doppler_frame(targets, n_chirps=CHIRPS_PER_FRAME, # Amplitude (simplified) amp = target.amplitude / 4.0 - # Doppler phase for this chirp - doppler_phase = 2 * math.pi * target.doppler_hz * chirp_idx * t_pri + # Doppler phase for this chirp. + # The frame uses staggered PRF: chirps 0-15 use the long PRI, + # chirps 16-31 use the short PRI. + if chirp_idx < CHIRPS_PER_SUBFRAME: + slow_time_s = chirp_idx * T_PRI_LONG + else: + slow_time_s = (CHIRPS_PER_SUBFRAME * T_PRI_LONG) + \ + ((chirp_idx - CHIRPS_PER_SUBFRAME) * T_PRI_SHORT) + + doppler_phase = 2 * math.pi * target.doppler_hz * slow_time_s total_phase = doppler_phase + target.phase_deg * math.pi / 180.0 # Spread across a few bins (sinc-like response from matched filter) diff --git a/9_Firmware/9_2_FPGA/tb/tb_doppler_cosim.v b/9_Firmware/9_2_FPGA/tb/tb_doppler_cosim.v index ae41c6d..0f1c6ee 100644 --- a/9_Firmware/9_2_FPGA/tb/tb_doppler_cosim.v +++ b/9_Firmware/9_2_FPGA/tb/tb_doppler_cosim.v @@ -91,6 +91,7 @@ doppler_processor_optimized dut ( .doppler_valid(doppler_valid), .doppler_bin(doppler_bin), .range_bin(range_bin), + .sub_frame(), // Not used in this testbench .processing_active(processing_active), .frame_complete(frame_complete), .status(dut_status) diff --git a/9_Firmware/9_2_FPGA/tb/tb_doppler_realdata.v b/9_Firmware/9_2_FPGA/tb/tb_doppler_realdata.v index da6d457..d2c77ec 100644 --- a/9_Firmware/9_2_FPGA/tb/tb_doppler_realdata.v +++ b/9_Firmware/9_2_FPGA/tb/tb_doppler_realdata.v @@ -75,6 +75,7 @@ doppler_processor_optimized dut ( .doppler_valid(doppler_valid), .doppler_bin(doppler_bin), .range_bin(range_bin), + .sub_frame(), // Not used in this testbench .processing_active(processing_active), .frame_complete(frame_complete), .status(dut_status) diff --git a/9_Firmware/9_2_FPGA/xfft_16.v b/9_Firmware/9_2_FPGA/xfft_16.v new file mode 100644 index 0000000..7776e0a --- /dev/null +++ b/9_Firmware/9_2_FPGA/xfft_16.v @@ -0,0 +1,252 @@ +`timescale 1ns / 1ps +// ============================================================================ +// xfft_16.v — 16-point FFT with AXI-Stream interface +// ============================================================================ +// Wraps the synthesizable fft_engine (radix-2 DIT) with the AXI-Stream port +// interface expected by the doppler_processor dual-FFT architecture. +// +// Identical interface to xfft_32.v but with N=16. +// +// Data format: {Q[15:0], I[15:0]} packed 32-bit. +// Config tdata[0]: 1 = forward FFT, 0 = inverse FFT. +// ============================================================================ + +module xfft_16 ( + input wire aclk, + input wire aresetn, + + // Configuration channel (AXI-Stream slave) + input wire [7:0] s_axis_config_tdata, + input wire s_axis_config_tvalid, + output wire s_axis_config_tready, + + // Data input channel (AXI-Stream slave) + input wire [31:0] s_axis_data_tdata, + input wire s_axis_data_tvalid, + input wire s_axis_data_tlast, + + // Data output channel (AXI-Stream master) + output wire [31:0] m_axis_data_tdata, + output wire m_axis_data_tvalid, + output wire m_axis_data_tlast, + input wire m_axis_data_tready +); + +// ============================================================================ +// PARAMETERS +// ============================================================================ +localparam N = 16; +localparam LOG2N = 4; + +// ============================================================================ +// INTERNAL SIGNALS +// ============================================================================ + +// FSM states +localparam [2:0] S_IDLE = 3'd0, + S_CONFIG = 3'd1, + S_FEED = 3'd2, + S_WAIT = 3'd3, + S_OUTPUT = 3'd4; + +reg [2:0] state; + +// Configuration +reg inverse_reg; + +// Input buffering +reg signed [15:0] in_buf_re [0:N-1]; +reg signed [15:0] in_buf_im [0:N-1]; +reg [4:0] in_count; + +// Output buffering +reg signed [15:0] out_buf_re [0:N-1]; +reg signed [15:0] out_buf_im [0:N-1]; +reg [4:0] out_count; +reg [4:0] out_total; + +// FFT engine interface +reg fft_start; +reg fft_inverse; +reg signed [15:0] fft_din_re, fft_din_im; +reg fft_din_valid; +wire signed [15:0] fft_dout_re, fft_dout_im; +wire fft_dout_valid; +wire fft_busy; +wire fft_done; + +// Feed counter +reg [4:0] feed_count; + +// ============================================================================ +// FFT ENGINE INSTANCE +// ============================================================================ +fft_engine #( + .N(N), + .LOG2N(LOG2N), + .DATA_W(16), + .INTERNAL_W(32), + .TWIDDLE_W(16), + .TWIDDLE_FILE("fft_twiddle_16.mem") +) fft_core ( + .clk(aclk), + .reset_n(aresetn), + .start(fft_start), + .inverse(fft_inverse), + .din_re(fft_din_re), + .din_im(fft_din_im), + .din_valid(fft_din_valid), + .dout_re(fft_dout_re), + .dout_im(fft_dout_im), + .dout_valid(fft_dout_valid), + .busy(fft_busy), + .done(fft_done) +); + +// ============================================================================ +// AXI-STREAM OUTPUTS +// ============================================================================ +assign s_axis_config_tready = (state == S_IDLE); +assign m_axis_data_tdata = {out_buf_im[out_count[3:0]], out_buf_re[out_count[3:0]]}; +assign m_axis_data_tvalid = (state == S_OUTPUT) && (out_count < N); +assign m_axis_data_tlast = (state == S_OUTPUT) && (out_count == N - 1); + +// ============================================================================ +// BUFFER WRITE LOGIC — separate always block, NO async reset +// ============================================================================ +reg in_buf_we; +reg [3:0] in_buf_waddr; +reg signed [15:0] in_buf_wdata_re, in_buf_wdata_im; + +reg out_buf_we; +reg [3:0] out_buf_waddr; +reg signed [15:0] out_buf_wdata_re, out_buf_wdata_im; + +always @(posedge aclk) begin + if (in_buf_we) begin + in_buf_re[in_buf_waddr] <= in_buf_wdata_re; + in_buf_im[in_buf_waddr] <= in_buf_wdata_im; + end + if (out_buf_we) begin + out_buf_re[out_buf_waddr] <= out_buf_wdata_re; + out_buf_im[out_buf_waddr] <= out_buf_wdata_im; + end +end + +// ============================================================================ +// MAIN FSM +// ============================================================================ +always @(posedge aclk or negedge aresetn) begin + if (!aresetn) begin + state <= S_IDLE; + inverse_reg <= 1'b0; + in_count <= 0; + out_count <= 0; + out_total <= 0; + feed_count <= 0; + fft_start <= 1'b0; + fft_inverse <= 1'b0; + fft_din_re <= 0; + fft_din_im <= 0; + fft_din_valid <= 1'b0; + in_buf_we <= 1'b0; + in_buf_waddr <= 0; + in_buf_wdata_re <= 0; + in_buf_wdata_im <= 0; + out_buf_we <= 1'b0; + out_buf_waddr <= 0; + out_buf_wdata_re <= 0; + out_buf_wdata_im <= 0; + end else begin + fft_start <= 1'b0; + fft_din_valid <= 1'b0; + in_buf_we <= 1'b0; + out_buf_we <= 1'b0; + + case (state) + + S_IDLE: begin + in_count <= 0; + if (s_axis_config_tvalid) begin + inverse_reg <= ~s_axis_config_tdata[0]; + state <= S_FEED; + in_count <= 0; + feed_count <= 0; + end + end + + S_FEED: begin + if (in_count < N) begin + if (s_axis_data_tvalid) begin + in_buf_we <= 1'b1; + in_buf_waddr <= in_count[3:0]; + in_buf_wdata_re <= s_axis_data_tdata[15:0]; + in_buf_wdata_im <= s_axis_data_tdata[31:16]; + in_count <= in_count + 1; + end + end else if (feed_count == 0) begin + fft_start <= 1'b1; + fft_inverse <= inverse_reg; + feed_count <= 0; + state <= S_WAIT; + out_total <= 0; + end + end + + S_WAIT: begin + if (feed_count < N) begin + fft_din_re <= in_buf_re[feed_count[3:0]]; + fft_din_im <= in_buf_im[feed_count[3:0]]; + fft_din_valid <= 1'b1; + feed_count <= feed_count + 1; + end + + if (fft_dout_valid && out_total < N) begin + out_buf_we <= 1'b1; + out_buf_waddr <= out_total[3:0]; + out_buf_wdata_re <= fft_dout_re; + out_buf_wdata_im <= fft_dout_im; + out_total <= out_total + 1; + end + + if (fft_done) begin + state <= S_OUTPUT; + out_count <= 0; + end + end + + S_OUTPUT: begin + if (m_axis_data_tready || !m_axis_data_tvalid) begin + if (out_count < N) begin + if (m_axis_data_tready) begin + out_count <= out_count + 1; + end + end + if (out_count >= N - 1 && m_axis_data_tready) begin + state <= S_IDLE; + end + end + end + + default: state <= S_IDLE; + + endcase + end +end + +// ============================================================================ +// MEMORY INIT (simulation only) +// ============================================================================ +`ifdef SIMULATION +integer init_k; +initial begin + for (init_k = 0; init_k < N; init_k = init_k + 1) begin + in_buf_re[init_k] = 0; + in_buf_im[init_k] = 0; + out_buf_re[init_k] = 0; + out_buf_im[init_k] = 0; + end +end +`endif + +endmodule