diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..fe8a2d349b0ebba9c78a67268559c9cfb20ce53b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+ipbus_decode**
\ No newline at end of file
diff --git a/dtc-fe/firmware/cfg/sim.dep b/dtc-fe/firmware/cfg/sim.dep
new file mode 100644
index 0000000000000000000000000000000000000000..266e487c059bcccc88d62b3e3201ffc08403edf0
--- /dev/null
+++ b/dtc-fe/firmware/cfg/sim.dep
@@ -0,0 +1,40 @@
+src sim/LinkInterfaceSim.vhd
+
+src HeaderAligner.vhd
+
+src HeaderFingerprintChecker.vhd
+src HeaderFingerprintChecker_2S.vhd
+src HeaderFingerprintChecker_PS5G.vhd
+src HeaderFingerprintChecker_PS10G.vhd
+
+src HeaderExtractor.vhd
+src HeaderExtractor_2S.vhd
+src HeaderExtractor_PS5G.vhd
+src HeaderExtractor_PS10G.vhd
+
+src L1DataDecoder.vhd
+src L1DataDecoder_2S_CIC1.vhd
+src L1DataDecoder_2S_CIC2.vhd
+src L1DataDecoder_PS5G.vhd
+src L1DataDecoder_PS10G.vhd
+
+src StubInterleaver.vhd
+src StubExtractor.vhd
+src L1DataExtractor.vhd
+#src FrameAligner.vhd
+src StubConverter.vhd
+src HealthMonitor.vhd
+src LocalFastCommand.vhd
+src data_types.vhd
+src ipbus_decode_dtc_link_interface.vhd
+src module_constants.vhd
+src link_maps_func.vhd
+
+#src ../cgn/fifo_ctrl_16b_bram.xci
+#src ../cgn/fifo_data_32b_bram.xci
+
+addrtab -t dtc_link_interface.xml
+addrtab dtc_link_l1daq.xml
+addrtab dtc_link_fastcmd.xml
+addrtab dtc_link_fectrl.xml
+addrtab dtc_link_health_mon.xml
diff --git a/dtc-fe/firmware/hdl/sim/LinkInterfaceSim.vhd b/dtc-fe/firmware/hdl/sim/LinkInterfaceSim.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..107ef4fffda7bc9f543ebab8aecfbf92cd7871cd
--- /dev/null
+++ b/dtc-fe/firmware/hdl/sim/LinkInterfaceSim.vhd
@@ -0,0 +1,161 @@
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+use work.emp_data_types.all;
+
+use work.module_constants.all;
+use work.front_end_data_types.all;
+use work.dtc_constants.all;
+use work.dtc_data_types.all;
+
+
+entity LinkInterface is
+generic (
+    module_type : string;
+    bandwidth   : integer;
+    cic_type    : string;
+    enable_monitoring : boolean := true;
+    emp_channel : integer := 0
+);
+port (
+    --- Input Ports ---
+    clk_p            : in  std_logic;
+    clk40            : in  std_logic;
+    link_in          : in  lword := LWORD_NULL;
+    aligner_reset    : in std_logic;
+    --- Output Ports ---
+    stub_out         : out lword := LWORD_NULL;
+    header_out       : out tCICHeaderArray(cNumberOfCICs - 1 downto 0) := (others => ('0', (others => '0'), (others => '0'), (others => '0')));
+    --- Debug Ports ---
+    debug_header_start  : out std_logic_vector(1 downto 0);
+    debug_header_match  : out std_logic_vector(1 downto 0);
+    debug_aligner_state : out std_logic_vector(7 downto 0)
+);
+end LinkInterface;
+
+architecture rtl of LinkInterface is
+
+    -- Link decoding and module readout
+
+    signal headers                  : tCICHeaderArray(cNumberOfCICs - 1 downto 0) := (others => ('0', (others => '0'), (others => '0'), (others => '0')));
+    signal stubs                    : ldata(cNumberOfCICs - 1 downto 0) := (others => LWORD_NULL);
+    signal stubs_interleaved        : lword                             := LWORD_NULL;
+
+    signal aligner_state            : tAlignerArray(cNumberOfCICs - 1 downto 0)    := (others => (others => '0'));
+    signal header_start             : std_logic_vector(cNumberOfCICs - 1 downto 0) := (others => '0');
+    signal sync_loss                : std_logic_vector(cNumberOfCICs - 1 downto 0) := (others => '0');
+
+
+
+begin
+
+
+    header_out          <= headers;
+
+    debug_header_start  <= header_start;
+    debug_header_match  <= sync_loss;
+    debug_aligner_state <= aligner_state(1) & aligner_state(0);
+
+
+
+    --==============================--
+    -- Link decoding and module readout
+    --==============================--
+
+
+    --==============================--
+    CicInterface: for i in 0 to cNumberOfCICs - 1 generate
+    --==============================--
+
+        signal stream_in         : lword       := LWORD_NULL;
+        signal stream_in_aligned : lword       := LWORD_NULL;
+
+        signal l1_data_in        : std_logic_vector(cNumberOfL1ELinks(selectIndexFromModuleType(module_type, bandwidth)) -1 downto 0)   := (Others=>'0'); 
+    
+    begin
+
+        stream_in.valid                              <= link_in.valid;
+        stream_in.strobe                             <= '1';
+        stream_in.data(cNumberOfELinks(selectIndexFromModuleType(module_type, bandwidth)) - 1 downto 0) <= link_in.data(32*i + cNumberOfELinks(selectIndexFromModuleType(module_type, bandwidth)) - 1 downto 32*i);
+        
+        l1_data_in                                   <= link_in.data(32*i + cNumberOfELinks(selectIndexFromModuleType(module_type, bandwidth)) + cNumberOfL1ELinks(selectIndexFromModuleType(module_type, bandwidth))-1 downto 32*i + cNumberOfELinks(selectIndexFromModuleType(module_type, bandwidth))); 
+
+        --==============================--
+        HeaderAligner: entity work.HeaderAligner
+        --==============================--
+        generic map (
+            module_type      => module_type,
+            bandwidth        => bandwidth
+        )
+        port map(
+            --- Input Ports ---
+            clk              => clk_p,
+            data_in          => stream_in,
+            reset            => aligner_reset,
+            --- Output Ports ---
+            header_start     => header_start(i),
+            state            => aligner_state(i),
+            sync_loss        => sync_loss(i)
+        );
+
+        --==============================--
+        StubExtractor: entity work.StubExtractor
+        --==============================--
+        generic map(
+            cic_index        => i,
+            module_type      => module_type,
+            bandwidth        => bandwidth
+        )
+        port map(
+            --- Input Ports ---
+            clk              => clk_p,
+            data_in          => stream_in,
+            header_start     => header_start(i),
+            aligner_state    => aligner_state(i),
+            --- Output Ports ---
+            stub_out         => stubs(i),
+            header_out       => headers(i)
+        );
+
+    end generate CicInterface;
+
+
+    --==============================--
+    -- Stub interleaving
+    --==============================--
+
+    --==============================--
+    StubInterleaver: entity work.StubInterleaver
+    --==============================--
+    port map(
+        --- Input Ports ---
+        clk           => clk_p,
+        stub_in_0     => stubs(0),
+        stub_in_1     => stubs(0),
+        --- Output Ports ---
+        stub_out      => stubs_interleaved
+    );
+
+
+    --==============================--
+    -- Stub conversion for input to router
+    --==============================--
+
+    --==============================--
+    StubConverter: entity work.StubConverter
+    --==============================--
+    generic map (
+        module_type => module_type,
+        bandwidth   => bandwidth
+    )
+    port map(
+        --- Input Ports ---
+        clk           => clk_p,
+        stub_in       => stubs_interleaved,
+        --- Output Ports ---
+        stub_out      => stub_out
+    );
+
+
+end rtl;
diff --git a/dtc-fe/testbenches/HeaderAligner/firmware/cfg/top.dep b/dtc-fe/testbenches/HeaderAligner/firmware/cfg/top.dep
new file mode 100644
index 0000000000000000000000000000000000000000..78b687d099a1f6f85b3e7691236bbfb08fe1b04e
--- /dev/null
+++ b/dtc-fe/testbenches/HeaderAligner/firmware/cfg/top.dep
@@ -0,0 +1,21 @@
+setup --cd ../ucf sim.tcl
+
+src TestBench.vhd
+src -c sim/common TestBenchIO.vhd
+
+src -c dtc-fe HeaderAligner.vhd
+src -c dtc-fe HeaderFingerprintChecker_2S.vhd
+src -c dtc-fe HeaderFingerprintChecker_PS10G.vhd
+src -c dtc-fe HeaderFingerprintChecker_PS5G.vhd
+src -c dtc-fe HeaderFingerprintChecker.vhd
+
+src -c dtc-fe module_constants.vhd
+
+src -c dtc-be/common data_types.vhd
+src -c dtc-be/common dtc_constants.vhd
+src -c emp-fwk:components/datapath emp_data_types.vhd
+
+@device_generation = "UltraScalePlus"
+@device_name = "xcku15p"
+@device_package = "-ffva1760"
+@device_speed = "-2-e"
\ No newline at end of file
diff --git a/dtc-fe/testbenches/HeaderAligner/firmware/hdl/TestBench.vhd b/dtc-fe/testbenches/HeaderAligner/firmware/hdl/TestBench.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..fc197b6fbc072ed931eb5baacffdff82ec8bb123
--- /dev/null
+++ b/dtc-fe/testbenches/HeaderAligner/firmware/hdl/TestBench.vhd
@@ -0,0 +1,85 @@
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.NUMERIC_STD.ALL;
+
+use work.emp_data_types.all;
+use work.dtc_data_types.all;
+
+entity testbench is
+end testbench;
+
+architecture Behavioral of testbench is
+
+    -- Clocks
+    signal clk_p : std_logic := '0';
+    signal clk40 : std_logic := '0';
+
+    -- Counters
+    signal global_counter : integer := 0;
+    signal boxcar_counter : integer := 0;
+
+    -- I/O streams
+    signal stream_in : lword := LWORD_NULL;
+    signal stubs     : lword := LWORD_NULL;
+    
+    -- Link Interface
+    signal aligner_reset               : std_logic                        := '0';
+    
+begin
+
+    -- Clocks
+    clk_p <= not clk_p after 3.125 ns;
+    clk40 <= not clk40 after 25 ns;
+
+    -- Counters
+    pIncrementCounter : process(clk_p)
+    begin
+        if rising_edge(clk_p) then
+            global_counter <= global_counter + 1;
+        end if;
+    end process pIncrementCounter;
+
+    -- Resets
+    pReset : process(clk_p)
+    begin
+        if rising_edge(clk_p) then
+            aligner_reset <= '0';
+            if global_counter = 10 then
+                aligner_reset <= '1';
+            end if;
+        end if;
+    end process pReset;
+
+    -- I/O
+    --==============================--
+    TestBenchIOInstance : entity work.TestBenchIO
+    --==============================--
+    generic map (
+        input_filename => "framed_stream.txt",
+        output_filename => "result.txt"
+    )
+    port map (
+        clk => clk_p,
+        data_out => stream_in
+        -- data_in => stubs
+    );
+
+    --==============================--
+    HeaderAligner: entity work.HeaderAligner
+    --==============================--
+    generic map (
+        module_type      => "2S",
+        bandwidth        => 5
+    )
+    port map(
+        --- Input Ports ---
+        clk              => clk_p,
+        data_in          => stream_in,
+        reset            => aligner_reset
+        --- Output Ports ---
+        -- header_start     => header_start(i),
+        -- state            => aligner_state(i),
+        -- sync_loss        => sync_loss(i)
+    );
+
+end Behavioral;
diff --git a/dtc-fe/testbenches/HeaderAligner/firmware/ucf/sim.tcl b/dtc-fe/testbenches/HeaderAligner/firmware/ucf/sim.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..81a36fbafe277dcc20b2df16b65dbd7d2622e091
--- /dev/null
+++ b/dtc-fe/testbenches/HeaderAligner/firmware/ucf/sim.tcl
@@ -0,0 +1,6 @@
+set_property top testbench [get_filesets sim_1]
+set_property top_lib xil_defaultlib [get_filesets sim_1]
+update_compile_order -fileset sources_1
+set_property source_mgmt_mode DisplayOnly [current_project]
+
+import_files -fileset sim_1 -norecurse ../../src/dtc/dtc-fe/testbenches/HeaderAligner/framed_stream.txt
\ No newline at end of file
diff --git a/dtc-fe/testbenches/HeaderAligner/framed_stream.txt b/dtc-fe/testbenches/HeaderAligner/framed_stream.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7833ec6ca94fca2b7d25454fdc423fabd265aa84
--- /dev/null
+++ b/dtc-fe/testbenches/HeaderAligner/framed_stream.txt
@@ -0,0 +1,6400 @@
+0000
+0000
+0000
+0000
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0006
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0008
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+000a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+000c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+000e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0010
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0012
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0014
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0016
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0018
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+001a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+001c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+001e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+0000
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+0002
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+0004
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+0006
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+0008
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+000a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+000c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+000e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+0010
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+0012
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+0014
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+0016
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+0018
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+001a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+001c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+001e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+0000
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+0002
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+0004
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+0006
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+0008
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+000a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+000c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+000e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+0010
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+0012
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+0014
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+0016
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+0018
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+001a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+001c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+001e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+0000
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+0002
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+0004
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+0006
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+0008
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+000a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+000c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+000e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+0010
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+0012
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+0014
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+0016
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+0018
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+001a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+001c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+001e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+0000
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+0002
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+0004
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+0006
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+0008
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+000a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+000c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+000e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+0010
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+0012
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+0014
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+0016
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+0018
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+001a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+001c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+001e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+0000
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+0002
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+0004
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+0006
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+0008
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+000a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+000c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+000e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+0010
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+0012
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+0014
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+0016
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+0018
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+001a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+001c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+001e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0006
+0000
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0006
+0002
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0006
+0004
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0006
+0006
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
diff --git a/dtc-fe/testbenches/StubExtractor/firmware/cfg/top.dep b/dtc-fe/testbenches/StubExtractor/firmware/cfg/top.dep
new file mode 100644
index 0000000000000000000000000000000000000000..9aef382b665c88d9fda03f35792f8d1d233a2c29
--- /dev/null
+++ b/dtc-fe/testbenches/StubExtractor/firmware/cfg/top.dep
@@ -0,0 +1,28 @@
+setup --cd ../ucf sim.tcl
+
+src TestBench.vhd
+src -c sim/common TestBenchIO.vhd
+
+src -c dtc-fe StubExtractor.vhd
+src -c dtc-fe HeaderExtractor_2S.vhd
+src -c dtc-fe HeaderExtractor_PS5G.vhd
+src -c dtc-fe HeaderExtractor_PS10G.vhd
+src -c dtc-fe HeaderExtractor.vhd
+
+src -c dtc-fe HeaderAligner.vhd
+src -c dtc-fe HeaderFingerprintChecker_2S.vhd
+src -c dtc-fe HeaderFingerprintChecker_PS10G.vhd
+src -c dtc-fe HeaderFingerprintChecker_PS5G.vhd
+src -c dtc-fe HeaderFingerprintChecker.vhd
+
+src -c dtc-fe data_types.vhd
+src -c dtc-fe module_constants.vhd
+
+src -c dtc-be/common data_types.vhd
+src -c dtc-be/common dtc_constants.vhd
+src -c emp-fwk:components/datapath emp_data_types.vhd
+
+@device_generation = "UltraScalePlus"
+@device_name = "xcku15p"
+@device_package = "-ffva1760"
+@device_speed = "-2-e"
\ No newline at end of file
diff --git a/dtc-fe/testbenches/StubExtractor/firmware/hdl/TestBench.vhd b/dtc-fe/testbenches/StubExtractor/firmware/hdl/TestBench.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..cb3723a73ecd3b96f5f376c6f75949bea6ca45fc
--- /dev/null
+++ b/dtc-fe/testbenches/StubExtractor/firmware/hdl/TestBench.vhd
@@ -0,0 +1,106 @@
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.NUMERIC_STD.ALL;
+
+use work.emp_data_types.all;
+use work.dtc_data_types.all;
+
+entity testbench is
+end testbench;
+
+architecture Behavioral of testbench is
+
+    -- Clocks
+    signal clk_p : std_logic := '0';
+    signal clk40 : std_logic := '0';
+
+    -- Counters
+    signal global_counter : integer := 0;
+    signal boxcar_counter : integer := 0;
+
+    -- I/O streams
+    signal stream_in : lword := LWORD_NULL;
+    signal stubs     : lword := LWORD_NULL;
+    
+    -- Link Interface
+    signal aligner_reset : std_logic := '0';
+    signal header_start  : std_logic := '0';
+    signal aligner_state : std_logic_vector(3 downto 0) := (others => '0');
+    
+begin
+
+    -- Clocks
+    clk_p <= not clk_p after 3.125 ns;
+    clk40 <= not clk40 after 25 ns;
+
+    -- Counters
+    pIncrementCounter : process(clk_p)
+    begin
+        if rising_edge(clk_p) then
+            global_counter <= global_counter + 1;
+        end if;
+    end process pIncrementCounter;
+
+    -- Resets
+    pReset : process(clk_p)
+    begin
+        if rising_edge(clk_p) then
+            aligner_reset <= '0';
+            if global_counter = 10 then
+                aligner_reset <= '1';
+            end if;
+        end if;
+    end process pReset;
+
+    -- I/O
+    --==============================--
+    TestBenchIOInstance : entity work.TestBenchIO
+    --==============================--
+    generic map (
+        input_filename => "framed_stream.txt",
+        output_filename => "result.txt"
+    )
+    port map (
+        clk => clk_p,
+        data_out => stream_in
+        -- data_in => stubs
+    );
+
+    --==============================--
+    HeaderAligner: entity work.HeaderAligner
+    --==============================--
+    generic map (
+        module_type      => "2S",
+        bandwidth        => 5
+    )
+    port map(
+        --- Input Ports ---
+        clk              => clk_p,
+        data_in          => stream_in,
+        reset            => aligner_reset,
+        --- Output Ports ---
+        header_start     => header_start,
+        state            => aligner_state
+        -- sync_loss        => sync_loss(i)
+    );
+
+    --==============================--
+    StubExtractor: entity work.StubExtractor
+    --==============================--
+    generic map(
+        cic_index        => 0,
+        module_type      => "2S",
+        bandwidth        => 5
+    )
+    port map(
+        --- Input Ports ---
+        clk              => clk_p,
+        data_in          => stream_in,
+        header_start     => header_start,
+        aligner_state    => aligner_state
+        --- Output Ports ---
+        -- stub_out         => stubs(i),
+        -- header_out       => headers(i)
+    );
+
+end Behavioral;
diff --git a/dtc-fe/testbenches/StubExtractor/firmware/ucf/sim.tcl b/dtc-fe/testbenches/StubExtractor/firmware/ucf/sim.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..81a36fbafe277dcc20b2df16b65dbd7d2622e091
--- /dev/null
+++ b/dtc-fe/testbenches/StubExtractor/firmware/ucf/sim.tcl
@@ -0,0 +1,6 @@
+set_property top testbench [get_filesets sim_1]
+set_property top_lib xil_defaultlib [get_filesets sim_1]
+update_compile_order -fileset sources_1
+set_property source_mgmt_mode DisplayOnly [current_project]
+
+import_files -fileset sim_1 -norecurse ../../src/dtc/dtc-fe/testbenches/HeaderAligner/framed_stream.txt
\ No newline at end of file
diff --git a/dtc-fe/testbenches/StubExtractor/framed_stream.txt b/dtc-fe/testbenches/StubExtractor/framed_stream.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7833ec6ca94fca2b7d25454fdc423fabd265aa84
--- /dev/null
+++ b/dtc-fe/testbenches/StubExtractor/framed_stream.txt
@@ -0,0 +1,6400 @@
+0000
+0000
+0000
+0000
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0006
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0008
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+000a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+000c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+000e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0010
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0012
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0014
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0016
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0018
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+001a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+001c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+001e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+0000
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+0002
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+0004
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+0006
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+0008
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+000a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+000c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+000e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+0010
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+0012
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+0014
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+0016
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+0018
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+001a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+001c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0001
+001e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+0000
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+0002
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+0004
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+0006
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+0008
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+000a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+000c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+000e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+0010
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+0012
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+0014
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+0016
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+0018
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+001a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+001c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0002
+001e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+0000
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+0002
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+0004
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+0006
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+0008
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+000a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+000c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+000e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+0010
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+0012
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+0014
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+0016
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+0018
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+001a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+001c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0003
+001e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+0000
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+0002
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+0004
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+0006
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+0008
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+000a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+000c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+000e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+0010
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+0012
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+0014
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+0016
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+0018
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+001a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+001c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0004
+001e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+0000
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+0002
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+0004
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+0006
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+0008
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+000a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+000c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+000e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+0010
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+0012
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+0014
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+0016
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+0018
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+001a
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+001c
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0005
+001e
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0006
+0000
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0006
+0002
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0006
+0004
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0006
+0006
+0001
+0000
+0003
+001a
+0012
+0002
+000f
+000a
+0008
+0011
+001d
+0009
+0003
+0007
+0015
+0004
+0010
+001e
+0014
+0012
+0013
+001a
+0012
+000c
+000f
+000a
+0009
+0019
+001d
+0009
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
diff --git a/dtc-fe/testbenches/StubInterleaver/firmware/cfg/top.dep b/dtc-fe/testbenches/StubInterleaver/firmware/cfg/top.dep
new file mode 100644
index 0000000000000000000000000000000000000000..27c4524ce93eb7ddcfee1a31d716c10390b634c8
--- /dev/null
+++ b/dtc-fe/testbenches/StubInterleaver/firmware/cfg/top.dep
@@ -0,0 +1,14 @@
+setup --cd ../ucf sim.tcl
+
+src TestBench.vhd
+
+src -c dtc-fe StubInterleaver.vhd
+
+src -c dtc-be/common data_types.vhd
+src -c dtc-be/common dtc_constants.vhd
+src -c emp-fwk:components/datapath emp_data_types.vhd
+
+@device_generation = "UltraScalePlus"
+@device_name = "xcku15p"
+@device_package = "-ffva1760"
+@device_speed = "-2-e"
\ No newline at end of file
diff --git a/dtc-fe/testbenches/StubInterleaver/firmware/hdl/TestBench.vhd b/dtc-fe/testbenches/StubInterleaver/firmware/hdl/TestBench.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..07c29bc82fd8b828ea9ada6fd81eb592d9a7004f
--- /dev/null
+++ b/dtc-fe/testbenches/StubInterleaver/firmware/hdl/TestBench.vhd
@@ -0,0 +1,60 @@
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.NUMERIC_STD.ALL;
+
+use work.emp_data_types.all;
+use work.dtc_data_types.all;
+
+entity testbench is
+end testbench;
+
+architecture Behavioral of testbench is
+
+    -- Clocks
+    signal clk_p : std_logic := '0';
+    signal clk40 : std_logic := '0';
+
+    -- Counters
+    signal global_counter : integer := 0;
+    signal boxcar_counter : integer := 0;
+
+    -- I/O streams
+    signal stream_in : lword := LWORD_NULL;
+    signal stubs     : lword := LWORD_NULL;
+    
+    -- Link Interface
+    signal aligner_reset               : std_logic                        := '0';
+    signal header_start_array          : std_logic_vector(2 - 1 downto 0) := (others => '0');
+    signal header_start_array_buffered : std_logic_vector(2 - 1 downto 0) := (others => '0');
+    signal header_array                : tCICHeaderArray(2 - 1 downto 0)  := (others => ('0', (others => '0'), (others => '0'), (others => '0')));
+
+begin
+
+    -- Clocks
+    clk_p <= not clk_p after 3.125 ns;
+    clk40 <= not clk40 after 25 ns;
+
+    -- Counters
+    pIncrementCounter : process(clk_p)
+    begin
+        if rising_edge(clk_p) then
+            global_counter <= global_counter + 1;
+
+            if header_start_array(0) = '1' then
+                boxcar_counter <= boxcar_counter + 1;
+            end if;
+        end if;
+    end process pIncrementCounter;
+
+    -- Resets
+    pReset : process(clk_p)
+    begin
+        if rising_edge(clk_p) then
+            aligner_reset <= '0';
+            if global_counter = 10 then
+                aligner_reset <= '1';
+            end if;
+        end if;
+    end process pReset;
+
+end Behavioral;
diff --git a/dtc-fe/testbenches/StubInterleaver/firmware/ucf/sim.tcl b/dtc-fe/testbenches/StubInterleaver/firmware/ucf/sim.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..55a402c6143007c396e5386ecaf2a13fd340c715
--- /dev/null
+++ b/dtc-fe/testbenches/StubInterleaver/firmware/ucf/sim.tcl
@@ -0,0 +1,2 @@
+set_property top testbench [get_filesets sim_1]
+set_property top_lib xil_defaultlib [get_filesets sim_1]
\ No newline at end of file
diff --git a/sim/LinkInterface/firmware/cfg/top.dep b/sim/LinkInterface/firmware/cfg/top.dep
new file mode 100644
index 0000000000000000000000000000000000000000..d9a4acfa776c070141a36f51915603e4d8aa0914
--- /dev/null
+++ b/sim/LinkInterface/firmware/cfg/top.dep
@@ -0,0 +1,24 @@
+src TestBench.vhd
+src TestBenchIO.vhd
+
+src -c emp-fwk:components/datapath emp_data_types.vhd
+src -c ipbus-firmware:components/ipbus_core ipbus_package.vhd
+
+src -c ipbus-firmware:components/ipbus_slaves ipbus_dpram.vhd
+src -c ipbus-firmware:components/ipbus_slaves ipbus_reg_v.vhd
+src -c ipbus-firmware:components/ipbus_slaves ipbus_ctrlreg_v.vhd
+src -c ipbus-firmware:components/ipbus_slaves ipbus_reg_types.vhd
+src -c ipbus-firmware:components/ipbus_core ipbus_dc_node.vhd
+src -c ipbus-firmware:components/ipbus_core ipbus_dc_fabric_sel.vhd
+
+include -c histogram:top histogram.dep
+include -c dtc-stub-processing:common tools.dep
+
+include -c dtc-fe sim.dep
+include -c dtc-be/common daqpath.dep
+include -c dtc-be/common common.dep
+
+@device_generation = "UltraScalePlus"
+@device_name = "xcku15p"
+@device_package = "-ffva1760"
+@device_speed = "-2-e"
diff --git a/sim/LinkInterface/firmware/hdl/TestBench.vhd b/sim/LinkInterface/firmware/hdl/TestBench.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..421f57061a6529bdad56758e9647e2b54f0f1354
--- /dev/null
+++ b/sim/LinkInterface/firmware/hdl/TestBench.vhd
@@ -0,0 +1,102 @@
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.NUMERIC_STD.ALL;
+
+use work.emp_data_types.all;
+use work.dtc_data_types.all;
+
+entity testbench is
+end testbench;
+
+architecture Behavioral of testbench is
+
+    -- Clocks
+    signal clk_p : std_logic := '0';
+    signal clk40 : std_logic := '0';
+
+    -- Counters
+    signal global_counter : integer := 0;
+    signal boxcar_counter : integer := 0;
+
+    -- I/O streams
+    signal stream_in : lword := LWORD_NULL;
+    signal stubs     : lword := LWORD_NULL;
+    
+    -- Link Interface
+    signal aligner_reset               : std_logic                        := '0';
+    signal header_start_array          : std_logic_vector(2 - 1 downto 0) := (others => '0');
+    signal header_start_array_buffered : std_logic_vector(2 - 1 downto 0) := (others => '0');
+    signal header_array                : tCICHeaderArray(2 - 1 downto 0)  := (others => ('0', (others => '0'), (others => '0'), (others => '0')));
+
+begin
+
+    -- Clocks
+    clk_p <= not clk_p after 3.125 ns;
+    clk40 <= not clk40 after 25 ns;
+
+    -- Counters
+    pIncrementCounter : process(clk_p)
+    begin
+        if rising_edge(clk_p) then
+            global_counter <= global_counter + 1;
+
+            if header_start_array(0) = '1' then
+                boxcar_counter <= boxcar_counter + 1;
+            end if;
+        end if;
+    end process pIncrementCounter;
+
+    -- Resets
+    pReset : process(clk_p)
+    begin
+        if rising_edge(clk_p) then
+            aligner_reset         <= '0';
+            if global_counter = 10 then
+                aligner_reset         <= '1';
+            end if;
+        end if;
+    end process pReset;
+
+    -- Buffers
+    pBuffer : process(clk_p)
+    begin
+        if rising_edge(clk_p) then
+            header_start_array_buffered <= header_start_array;
+        end if;
+    end process pBuffer;
+
+    -- I/O
+    TestBenchIOInstance : entity work.TestBenchIO
+    generic map (
+        input_filename => "framed_stream.txt",
+        output_filename => "result.txt"
+    )
+    port map (
+        clk => clk_p,
+        data_out => stream_in,
+        data_in => stubs
+    );
+
+    -- Link Interface
+    --==============================--
+    LinkInterfaceInstance: entity work.LinkInterface
+    --==============================--
+    generic map(
+        module_type => "2S",
+        bandwidth => 5,
+        cic_type => "CIC2"
+    )
+    port map(
+        --- Input Ports ---
+        clk_p       => clk_p,
+        clk40       => clk40,
+        link_in     => stream_in,
+        aligner_reset => aligner_reset,
+        --- Output Ports ---
+        stub_out    => stubs,
+        header_out  => header_array,
+        --- Debug Ports ---
+        debug_header_start => header_start_array
+    );
+
+end Behavioral;
diff --git a/sim/common/firmware/hdl/TestBenchIO.vhd b/sim/common/firmware/hdl/TestBenchIO.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..9181a73028528f6dd45cf4660d0cdbe7eb4daae0
--- /dev/null
+++ b/sim/common/firmware/hdl/TestBenchIO.vhd
@@ -0,0 +1,75 @@
+----------------------------------------------------------------------------------
+-- Company: 
+-- Engineer: 
+-- 
+-- Create Date: 31.08.2022 10:20:55
+-- Design Name: 
+-- Module Name: TestBenchIO - Behavioral
+-- Project Name: 
+-- Target Devices: 
+-- Tool Versions: 
+-- Description: 
+-- 
+-- Dependencies: 
+-- 
+-- Revision:
+-- Revision 0.01 - File Created
+-- Additional Comments:
+-- 
+----------------------------------------------------------------------------------
+
+
+library IEEE;
+use IEEE.std_logic_1164.all;
+use IEEE.numeric_std.all;
+use IEEE.std_logic_textio.all;
+use std.textio.all;
+use work.emp_data_types.all;
+
+
+entity TestBenchIO is
+    generic (
+        input_filename : string;
+        output_filename : string;
+        input_line_width : integer := 16;
+        output_line_width : integer := 32
+    );
+    port (
+        clk : in std_logic;
+        data_out : out lword := LWORD_NULL;
+        data_in : in lword := LWORD_NULL
+    );
+end TestBenchIO;
+
+architecture Behavioral of TestBenchIO is
+begin
+    -- Process that reads file and outputs a line each clock cycle as a logic
+    -- vector. NOTE: Option to also write to file is commented out but kept for
+    -- future reference.
+    process is
+        variable line_v : line;
+        variable line_v_w : line;
+        file read_file : text;
+        file write_file : text;
+        variable slv_v : std_logic_vector(input_line_width - 1 downto 0);
+        variable slv_v_w : std_logic_vector(output_line_width - 1 downto 0);
+    begin
+        file_open(read_file, input_filename, read_mode);
+        file_open(write_file, output_filename, write_mode);
+        while not endfile(read_file) loop
+            wait until clk = '1' and clk'event;
+            readline(read_file, line_v);
+            hread(line_v, slv_v);
+            data_out.data(input_line_width - 1 downto 0) <= slv_v;
+            data_out.valid <= '1';
+            data_out.strobe <= '1';
+            slv_v_w := data_in.data(output_line_width - 1 downto 0);
+            hwrite(line_v_w, slv_v_w);
+            writeline(write_file, line_v_w);
+        end loop;
+        file_close(read_file);
+        data_out.valid <= '0';
+        file_close(write_file);
+        wait;
+    end process;
+end Behavioral;