From cb7ce7cad613087d47298ddfaa4aa347ac51b069 Mon Sep 17 00:00:00 2001 From: Ludwig Maier Date: Thu, 21 Aug 2014 19:01:26 +0200 Subject: [PATCH] nxyter: back to old nx_data_receiver handler, but this works --- nxyter/nodelist.txt | 15 +- nxyter/source/adc_ad9228.vhd | 6 +- nxyter/source/fifo_44_data_delay_my.vhd | 2 +- nxyter/source/nx_data_delay.vhd | 117 +++++- nxyter/source/nx_data_receiver.vhd | 468 +++++++++++++++++------- nxyter/source/nx_data_validate.vhd | 235 ++++++++---- nxyter/source/nx_event_buffer.vhd | 2 +- nxyter/source/nx_histogram.vhd | 8 +- nxyter/source/nx_trigger_handler.vhd | 2 +- nxyter/source/nx_trigger_validate.vhd | 57 ++- nxyter/source/nxyter.pdf | Bin 204296 -> 0 bytes nxyter/source/nxyter_components.vhd | 194 +--------- nxyter/source/nxyter_fee_board.vhd | 9 +- nxyter/trb3_periph_constraints.lpf | 88 +++-- nxyter/trb3_periph_multi.p2t | 4 +- nxyter/trb3_periph_nx1.vhd | 4 +- 16 files changed, 730 insertions(+), 481 deletions(-) delete mode 100644 nxyter/source/nxyter.pdf diff --git a/nxyter/nodelist.txt b/nxyter/nodelist.txt index 74db793..1d2a471 100755 --- a/nxyter/nodelist.txt +++ b/nxyter/nodelist.txt @@ -1,29 +1,24 @@ -[c2] +[ash] system = linux corenum = 4 env = /usr/local/opt/lattice_diamond/diamond/2.1/bin/lin64/diamond_env workdir = /home/rich/TRB/nXyter/trb3/nxyter/workdir/ -[c3] +[dallas] system = linux corenum = 4 env = /usr/local/opt/lattice_diamond/diamond/2.1/bin/lin64/diamond_env workdir = /home/rich/TRB/nXyter/trb3/nxyter/workdir/ -[c4] +[vasquez] system = linux corenum = 4 env = /usr/local/opt/lattice_diamond/diamond/2.1/bin/lin64/diamond_env workdir = /home/rich/TRB/nXyter/trb3/nxyter/workdir/ -[c5] +[bishop] system = linux corenum = 4 env = /usr/local/opt/lattice_diamond/diamond/2.1/bin/lin64/diamond_env workdir = /home/rich/TRB/nXyter/trb3/nxyter/workdir/ -[c6] -system = linux -corenum = 4 -env = /usr/local/opt/lattice_diamond/diamond/2.1/bin/lin64/diamond_env -workdir = /home/rich/TRB/nXyter/trb3/nxyter/workdir/ -[c7] +[lambert] system = linux corenum = 4 env = /usr/local/opt/lattice_diamond/diamond/2.1/bin/lin64/diamond_env diff --git a/nxyter/source/adc_ad9228.vhd b/nxyter/source/adc_ad9228.vhd index 97ef6b3..fa2638b 100644 --- a/nxyter/source/adc_ad9228.vhd +++ b/nxyter/source/adc_ad9228.vhd @@ -361,7 +361,7 @@ begin ----------------------------------------------------------------------------- - adc_ddr_generic_1: adc_ddr_generic + adc_ddr_generic_1: entity work.adc_ddr_generic port map ( clk_0 => ADC0_DCLK_IN, clk_1 => ADC1_DCLK_IN, @@ -618,7 +618,7 @@ begin -- Tansfer to CLK_IN ----------------------------------------------------------------------------- - fifo_adc_48to48_dc_1: fifo_adc_48to48_dc + fifo_adc_48to48_dc_1: entity work.fifo_adc_48to48_dc port map ( Data(11 downto 0) => adc0_data_m(0), Data(23 downto 12) => adc0_data_m(1), @@ -670,7 +670,7 @@ begin ----------------------------------------------------------------------------- - fifo_adc_48to48_dc_2: fifo_adc_48to48_dc + fifo_adc_48to48_dc_2: entity work.fifo_adc_48to48_dc port map ( Data(11 downto 0) => adc1_data_m(0), Data(23 downto 12) => adc1_data_m(1), diff --git a/nxyter/source/fifo_44_data_delay_my.vhd b/nxyter/source/fifo_44_data_delay_my.vhd index bb4d1d7..b923484 100644 --- a/nxyter/source/fifo_44_data_delay_my.vhd +++ b/nxyter/source/fifo_44_data_delay_my.vhd @@ -66,7 +66,7 @@ begin ----------------------------------------------------------------------------- - ram_fifo_delay_256x44_1: ram_fifo_delay_256x44 + ram_fifo_delay_256x44_1: entity work.ram_fifo_delay_256x44 port map ( WrAddress => write_address, RdAddress => read_address, diff --git a/nxyter/source/nx_data_delay.vhd b/nxyter/source/nx_data_delay.vhd index 039d613..9ee143c 100644 --- a/nxyter/source/nx_data_delay.vhd +++ b/nxyter/source/nx_data_delay.vhd @@ -63,6 +63,26 @@ architecture Behavioral of nx_data_delay is -- Fifo Delay signal fifo_delay : std_logic_vector(7 downto 0); signal fifo_delay_reset : std_logic; + + -- Frame Rate Counter + signal rate_timer : unsigned(27 downto 0); + signal frame_rate_in_ctr_t : unsigned(27 downto 0); + signal frame_rate_out_ctr_t : unsigned(27 downto 0); + signal frame_rate_input : unsigned(27 downto 0); + signal frame_rate_output : unsigned(27 downto 0); + + -- Error Status + signal data_clk_shift : std_logic_vector(3 downto 0); + signal frame_dt_error : std_logic; + signal frame_dt_error_ctr : unsigned(15 downto 0); + signal frame_rate_error : std_logic; + + signal data_clk_out_shift : std_logic_vector(3 downto 0); + signal frame_dt_out_error : std_logic; + signal frame_dt_out_error_ctr : unsigned(15 downto 0); + signal frame_rate_out_error : std_logic; + + signal error_o : std_logic; -- Slave Bus signal slv_data_o : std_logic_vector(31 downto 0); @@ -179,6 +199,81 @@ begin end if; end if; end process PROC_FIFO_DELAY; + + PROC_CAL_RATES: process (CLK_IN) + begin + if( rising_edge(CLK_IN) ) then + if (RESET_IN = '1') then + rate_timer <= (others => '0'); + frame_rate_input <= (others => '0'); + frame_rate_output <= (others => '0'); + frame_rate_in_ctr_t <= (others => '0'); + frame_rate_out_ctr_t <= (others => '0'); + else + if (rate_timer < x"5f5e100") then + if (DATA_CLK_IN = '1') then + frame_rate_in_ctr_t <= frame_rate_in_ctr_t + 1; + end if; + if (data_clk_o = '1') then + frame_rate_out_ctr_t <= frame_rate_out_ctr_t + 1; + end if; + rate_timer <= rate_timer + 1; + else + frame_rate_input <= frame_rate_in_ctr_t; + frame_rate_in_ctr_t(27 downto 1) <= (others => '0'); + frame_rate_in_ctr_t(0) <= DATA_CLK_IN; + + frame_rate_output <= frame_rate_out_ctr_t; + frame_rate_out_ctr_t(27 downto 1) <= (others => '0'); + frame_rate_out_ctr_t(0) <= data_clk_o; + + rate_timer <= (others => '0'); + end if; + end if; + end if; + end process PROC_CAL_RATES; + + PROC_DATA_STREAM_DELTA_T: process(CLK_IN) + begin + if (rising_edge(CLK_IN)) then + if (RESET_IN = '1') then + data_clk_shift <= (others => '0'); + frame_dt_error_ctr <= (others => '0'); + frame_dt_error <= '0'; + data_clk_out_shift <= (others => '0'); + frame_dt_out_error_ctr <= (others => '0'); + frame_dt_out_error <= '0'; + else + -- Frame + data_clk_shift(0) <= DATA_CLK_IN; + data_clk_shift(3 downto 1) <= data_clk_shift(2 downto 0); + + data_clk_out_shift(0) <= data_clk_o; + data_clk_out_shift(3 downto 1) <= data_clk_out_shift(2 downto 0); + + case data_clk_shift is + when "1100" | "1110" | "1111" | "0000" => + frame_dt_error_ctr <= frame_dt_error_ctr + 1; + frame_dt_error <= '1'; + + when others => + frame_dt_error <= '0'; + + end case; + + case data_clk_out_shift is + when "1100" | "1110" | "1111" | "0000" => + frame_dt_out_error_ctr <= frame_dt_out_error_ctr + 1; + frame_dt_out_error <= '1'; + + when others => + frame_dt_out_error <= '0'; + + end case; + + end if; + end if; + end process PROC_DATA_STREAM_DELTA_T; ----------------------------------------------------------------------------- -- TRBNet Slave Bus @@ -209,6 +304,26 @@ begin slv_ack_o <= '1'; when x"0001" => + slv_data_o(27 downto 0) <= frame_rate_input; + slv_data_o(31 downto 28) <= (others => '0'); + slv_ack_o <= '1'; + + when x"0002" => + slv_data_o(27 downto 0) <= frame_rate_output; + slv_data_o(31 downto 28) <= (others => '0'); + slv_ack_o <= '1'; + + when x"0003" => + slv_data_o(15 downto 0) <= frame_dt_error_ctr; + slv_data_o(31 downto 16) <= (others => '0'); + slv_ack_o <= '1'; + + when x"0004" => + slv_data_o(15 downto 0) <= frame_dt_out_error_ctr; + slv_data_o(31 downto 16) <= (others => '0'); + slv_ack_o <= '1'; + + when x"0005" => slv_data_o(0) <= debug_r; slv_data_o(31 downto 1) <= (others => '0'); slv_ack_o <= '1'; @@ -224,7 +339,7 @@ begin fifo_reset_r <= '1'; slv_ack_o <= '1'; - when x"0001" => + when x"0005" => debug_r <= SLV_DATA_IN(0); slv_ack_o <= '1'; diff --git a/nxyter/source/nx_data_receiver.vhd b/nxyter/source/nx_data_receiver.vhd index 1e00c25..67ab0ab 100644 --- a/nxyter/source/nx_data_receiver.vhd +++ b/nxyter/source/nx_data_receiver.vhd @@ -261,7 +261,10 @@ architecture Behavioral of nx_data_receiver is signal nx_frame_synced_r : std_logic; signal disable_adc_r : std_logic; signal adc_debug_type_r : std_logic_vector(3 downto 0); - + + signal adc_sloppy_frame : std_logic; -- not used + signal reset_inhibit_r : std_logic; -- not used + ----------------------------------------------------------------------------- -- Reset Handler ----------------------------------------------------------------------------- @@ -278,7 +281,9 @@ architecture Behavioral of nx_data_receiver is signal rs_timeout_timer_reset : std_logic; signal nx_timestamp_reset_o : std_logic; signal fifo_reset_handler : std_logic; - + + signal reset_handler_trigger : std_logic_vector(15 downto 0); + type R_STATES is (R_IDLE, R_START, R_WAIT_0, @@ -553,7 +558,7 @@ begin end if; end process PROC_PLL_PHASE_SETUP; - pll_adc_sampling_clk_2: pll_adc_sampling_clk + pll_adc_sampling_clk_2: entity work.pll_adc_sampling_clk port map ( CLK => adc_sampling_clk, @@ -748,7 +753,7 @@ begin nx_frame_word_f <= nx_frame_word_ff when rising_edge(NX_DATA_CLK_IN); -- Second delay NX_TIMESTAMP_IN relatively to ADC Clock - dynamic_shift_register8x64_1: dynamic_shift_register8x64 + dynamic_shift_register8x64_1: entity work.dynamic_shift_register8x64 port map ( Din => nx_frame_word_f, Addr => nx_shift_register_delay, @@ -1050,20 +1055,13 @@ begin DEBUG_OUT => ADC_DEBUG ); + -- Deprecated --> REMOVE PROC_ADC_DATA_BIT_SHIFT: process(NX_DATA_CLK_IN) variable adcval : unsigned(11 downto 0) := (others => '0'); begin if (rising_edge(NX_DATA_CLK_IN)) then - if (adc_bit_shift(3) = '1') then - adcval := unsigned(adc_data) rol - to_integer(adc_bit_shift(2 downto 0)); - else - adcval := unsigned(adc_data) ror - to_integer(adc_bit_shift(2 downto 0)); - end if; - if (adc_data_clk = '1') then - adc_data_s <= std_logic_vector(adcval); + adc_data_s <= adc_data; adc_data_s_clk <= '1'; else adc_data_s <= x"aff"; @@ -1453,6 +1451,7 @@ begin reset_timeout_flag <= '0'; startup_reset <= '1'; nx_timestamp_reset_o <= '0'; + reset_handler_trigger <= (others => '0'); R_STATE <= R_IDLE; else frame_rates_reset <= '0'; @@ -1473,11 +1472,17 @@ begin if (reset_handler_start_r = '1') then -- Reset by register always wins, start it rs_timeout_timer_reset <= '1'; + reset_timeout_flag <= '0'; + reset_handler_trigger(0) <= '1'; + reset_handler_trigger(15 downto 1) <= (others => '0'); R_STATE <= R_START; elsif (rs_timeout_timer_done = '1') then -- Reset Timeout, retry RESET rs_timeout_timer_reset <= '1'; reset_timeout_flag <= '1'; + reset_handler_trigger(0) <= '0'; + reset_handler_trigger(1) <= '1'; + reset_handler_trigger(15 downto 2) <= (others => '0'); R_STATE <= R_START; else @@ -1489,7 +1494,6 @@ begin adc_reset_sync = '1' or adc_frame_rate_error = '1' or adc_error = '1' or - pll_adc_not_lock = '1' or adc_dt_error = '1' or adc_sclk_ok_c100 = '0' or adc_locked_c100 = '0' @@ -1501,6 +1505,22 @@ begin parity_rate_error = '1' or nx_frame_rate_error = '1' ) then + + reset_handler_trigger(1 downto 0) <= (others => '0'); + reset_handler_trigger( 2) <= nx_frame_rate_error; + reset_handler_trigger( 3) <= startup_reset; + reset_handler_trigger( 4) <= timestamp_dt_error; + reset_handler_trigger( 5) <= parity_rate_error; + reset_handler_trigger( 6) <= nx_frame_rate_error; + reset_handler_trigger( 7) <= pll_adc_not_lock; + reset_handler_trigger( 8) <= adc_reset_sync; + reset_handler_trigger( 9) <= adc_frame_rate_error; + reset_handler_trigger(10) <= adc_error; + reset_handler_trigger(11) <= adc_dt_error ; + reset_handler_trigger(12) <= not adc_sclk_ok_c100; + reset_handler_trigger(13) <= not adc_locked_c100; + reset_handler_trigger(15 downto 4) <= (others => '0'); + R_STATE <= R_RESET_TIMESTAMP; else reset_timeout_flag <= '0'; @@ -1761,11 +1781,13 @@ begin begin if (rising_edge(CLK_IN)) then if (RESET_IN = '1') then - nx_timestamp_delay_a <= (others => '0'); + nx_timestamp_delay_a <= "010"; nx_timestamp_delay_actr <= (others => '0'); else -- Automatic nx_timestamp_delay adjust - if (nx_timestamp_delay_adjust = '1' and ADC_TR_ERROR_IN = '1') then + if (disable_adc_f = '0' and + nx_timestamp_delay_adjust = '1' and + ADC_TR_ERROR_IN = '1') then if (nx_timestamp_delay_a <= "100") then nx_timestamp_delay_a <= nx_timestamp_delay_a + 1; else @@ -1840,6 +1862,9 @@ begin adc_debug_type_r <= (others => '0'); debug_mode <= (others => '0'); disable_adc_r <= '0'; + + adc_sloppy_frame <= '0'; + reset_inhibit_r <= '0'; else slv_data_out_o <= (others => '0'); slv_ack_o <= '0'; @@ -1860,7 +1885,8 @@ begin when x"0001" => slv_data_out_o(0) <= reset_handler_busy; slv_data_out_o(1) <= reset_timeout_flag; - slv_data_out_o(31 downto 2) <= (others => '0'); + slv_data_out_o(15 downto 2) <= (others => '0'); + slv_data_out_o(31 downto 16) <= reset_handler_trigger; slv_ack_o <= '1'; when x"0002" => @@ -1876,127 +1902,96 @@ begin when x"0004" => slv_data_out_o(27 downto 0) <= std_logic_vector(adc_frame_rate); slv_data_out_o(30 downto 28) <= (others => '0'); + slv_data_out_o(30) <= adc_sloppy_frame; slv_data_out_o(31) <= disable_adc_r; slv_ack_o <= '1'; when x"0005" => - slv_data_out_o(27 downto 0) <= parity_err_rate; + slv_data_out_o(27 downto 0) <= + std_logic_vector(parity_err_rate); slv_data_out_o(31 downto 28) <= (others => '0'); slv_ack_o <= '1'; - + when x"0006" => - slv_data_out_o(15 downto 0) <= reset_handler_counter; - slv_data_out_o(31 downto 6) <= (others => '0'); + slv_data_out_o(2 downto 0) <= + std_logic_vector(nx_timestamp_delay_s); + slv_data_out_o(14 downto 3) <= (others => '0'); + slv_data_out_o(15) <= nx_timestamp_delay_adjust; + slv_data_out_o(31 downto 16) <= nx_timestamp_delay_actr; slv_ack_o <= '1'; when x"0007" => - slv_data_out_o(11 downto 0) <= std_logic_vector(adc_reset_ctr); - slv_data_out_o(31 downto 12) <= (others => '0'); + slv_data_out_o(3 downto 0) <= + std_logic_vector(pll_adc_sample_clk_dphase_r); + slv_data_out_o(15 downto 4) <= (others => '0'); + slv_data_out_o(19 downto 16) <= + std_logic_vector(pll_adc_sample_clk_finedelb_r); + slv_data_out_o(31 downto 20) <= (others => '0'); slv_ack_o <= '1'; - + when x"0008" => - slv_data_out_o(7 downto 0) <= - std_logic_vector(adc_notlock_ctr_r); - slv_data_out_o(31 downto 8) <= (others => '0'); - slv_ack_o <= '1'; + slv_data_out_o(15 downto 0) <= + std_logic_vector(reset_handler_counter); + slv_data_out_o(31 downto 16) <= (others => '0'); + slv_ack_o <= '1'; when x"0009" => - slv_data_out_o(11 downto 0) <= merge_error_ctr_r; + slv_data_out_o(11 downto 0) <= + std_logic_vector(adc_reset_ctr); slv_data_out_o(31 downto 12) <= (others => '0'); slv_ack_o <= '1'; - + when x"000a" => + slv_data_out_o(27 downto 0) <= + std_logic_vector(adc_notlock_counter); + slv_data_out_o(31 downto 28) <= (others => '0'); + slv_ack_o <= '1'; + + when x"000b" => + slv_data_out_o(11 downto 0) <= + std_logic_vector(merge_error_ctr_r); + slv_data_out_o(31 downto 12) <= (others => '0'); + slv_ack_o <= '1'; + + when x"000c" => slv_data_out_o(11 downto 0) <= std_logic_vector(resync_counter); slv_data_out_o(31 downto 12) <= (others => '0'); slv_ack_o <= '1'; - when x"000b" => + when x"000d" => slv_data_out_o(11 downto 0) <= std_logic_vector(parity_error_counter); slv_data_out_o(31 downto 12) <= (others => '0'); slv_ack_o <= '1'; - when x"000c" => + when x"000e" => slv_data_out_o(11 downto 0) <= std_logic_vector(pll_adc_not_lock_ctr); slv_data_out_o(31 downto 12) <= (others => '0'); slv_ack_o <= '1'; - - when x"000d" => - slv_data_out_o(3 downto 0) <= - std_logic_vector(pll_adc_sample_clk_dphase_r); - slv_data_out_o(31 downto 4) <= (others => '0'); - slv_ack_o <= '1'; - - when x"000e" => - slv_data_out_o(3 downto 0) <= pll_adc_sample_clk_finedelb_r; - slv_data_out_o(31 downto 4) <= (others => '0'); - slv_ack_o <= '1'; - + when x"000f" => - slv_data_out_o(1 downto 0) <= johnson_counter_sync_r; - slv_data_out_o(31 downto 2) <= (others => '0'); - slv_ack_o <= '1'; - - when x"0010" => - slv_data_out_o(2 downto 0) <= - std_logic_vector(nx_timestamp_delay_s); - slv_data_out_o(3) <= '0'; - slv_data_out_o(5 downto 4) <= - std_logic_vector(nx_frame_word_delay_r); - slv_data_out_o(14 downto 6) <= (others => '0'); - slv_data_out_o(15) <= nx_timestamp_delay_adjust; - slv_data_out_o(31 downto 16) <= nx_timestamp_delay_actr; - slv_ack_o <= '1'; - - when x"0011" => - slv_data_out_o(0) <= fifo_full_r; - slv_data_out_o(1) <= fifo_empty_r; - slv_data_out_o(2) <= '0'; - slv_data_out_o(3) <= '0'; - slv_data_out_o(4) <= '0'; - slv_data_out_o(5) <= '0'; - slv_data_out_o(29 downto 6) <= (others => '0'); - slv_data_out_o(30) <= '0'; - slv_data_out_o(31) <= nx_frame_synced_r; - slv_ack_o <= '1'; - - when x"0012" => - slv_data_out_o(3 downto 0) <= std_logic_vector(adc_bit_shift); - slv_data_out_o(31 downto 4) <= (others => '0'); - slv_ack_o <= '1'; - - when x"0013" => - slv_data_out_o <= (others => '0'); - slv_ack_o <= '1'; - - when x"0014" => - slv_data_out_o(11 downto 0) <= new_adc_dt_error_ctr_r; + slv_data_out_o(11 downto 0) <= + std_logic_vector(new_adc_dt_error_ctr_r); slv_data_out_o(31 downto 12) <= (others => '0'); slv_ack_o <= '1'; - when x"0015" => - slv_data_out_o(11 downto 0) <= new_timestamp_dt_error_ctr_r; + when x"0010" => + slv_data_out_o(11 downto 0) <= + std_logic_vector(new_timestamp_dt_error_ctr_r); slv_data_out_o(31 downto 12) <= (others => '0'); slv_ack_o <= '1'; - when x"0016" => - slv_data_out_o(27 downto 0) <= - std_logic_vector(adc_notlock_counter); - slv_data_out_o(31 downto 28) <= (others => '0'); - slv_ack_o <= '1'; - - when x"0017" => + when x"0011" => slv_data_out_o(27 downto 0) <= std_logic_vector(adc_error_counter); - slv_data_out_o(31 downto 28) <= (others => '0'); + slv_data_out_o(31 downto 15) <= (others => '0'); slv_ack_o <= '1'; - - when x"0018" => - slv_data_out_o(27 downto 0) <= - std_logic_vector(adc_error_undef_counter); - slv_data_out_o(31 downto 28) <= (others => '0'); + + when x"001d" => + slv_data_out_o(1 downto 0) <= johnson_counter_sync_r; + slv_data_out_o(31 downto 2) <= (others => '0'); slv_ack_o <= '1'; when x"001e" => @@ -2013,6 +2008,168 @@ begin slv_unknown_addr_o <= '1'; end case; + -- case SLV_ADDR_IN is + -- when x"0000" => + -- slv_data_out_o(15 downto 0) <= error_status_bits; + -- slv_data_out_o(31 downto 16) <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when x"0001" => + -- slv_data_out_o(0) <= reset_handler_busy; + -- slv_data_out_o(1) <= reset_timeout_flag; + -- slv_data_out_o(31 downto 2) <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when x"0002" => + -- slv_data_out_o(27 downto 0) <= std_logic_vector(frame_rate); + -- slv_data_out_o(31 downto 28) <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when x"0003" => + -- slv_data_out_o(27 downto 0) <= std_logic_vector(nx_frame_rate); + -- slv_data_out_o(31 downto 28) <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when x"0004" => + -- slv_data_out_o(27 downto 0) <= std_logic_vector(adc_frame_rate); + -- slv_data_out_o(30 downto 28) <= (others => '0'); + -- slv_data_out_o(31) <= disable_adc_r; + -- slv_ack_o <= '1'; + -- + -- when x"0005" => + -- slv_data_out_o(27 downto 0) <= parity_err_rate; + -- slv_data_out_o(31 downto 28) <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when x"0006" => + -- slv_data_out_o(15 downto 0) <= reset_handler_counter; + -- slv_data_out_o(31 downto 6) <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when x"0007" => + -- slv_data_out_o(11 downto 0) <= std_logic_vector(adc_reset_ctr); + -- slv_data_out_o(31 downto 12) <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when x"0008" => + -- slv_data_out_o(7 downto 0) <= + -- std_logic_vector(adc_notlock_ctr_r); + -- slv_data_out_o(31 downto 8) <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when x"0009" => + -- slv_data_out_o(11 downto 0) <= merge_error_ctr_r; + -- slv_data_out_o(31 downto 12) <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when x"000a" => + -- slv_data_out_o(11 downto 0) <= + -- std_logic_vector(resync_counter); + -- slv_data_out_o(31 downto 12) <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when x"000b" => + -- slv_data_out_o(11 downto 0) <= + -- std_logic_vector(parity_error_counter); + -- slv_data_out_o(31 downto 12) <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when x"000c" => + -- slv_data_out_o(11 downto 0) <= + -- std_logic_vector(pll_adc_not_lock_ctr); + -- slv_data_out_o(31 downto 12) <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when x"000d" => + -- slv_data_out_o(3 downto 0) <= + -- std_logic_vector(pll_adc_sample_clk_dphase_r); + -- slv_data_out_o(31 downto 4) <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when x"000e" => + -- slv_data_out_o(3 downto 0) <= pll_adc_sample_clk_finedelb_r; + -- slv_data_out_o(31 downto 4) <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when x"000f" => + -- slv_data_out_o(1 downto 0) <= johnson_counter_sync_r; + -- slv_data_out_o(31 downto 2) <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when x"0010" => + -- slv_data_out_o(2 downto 0) <= + -- std_logic_vector(nx_timestamp_delay_s); + -- slv_data_out_o(3) <= '0'; + -- slv_data_out_o(5 downto 4) <= + -- std_logic_vector(nx_frame_word_delay_r); + -- slv_data_out_o(14 downto 6) <= (others => '0'); + -- slv_data_out_o(15) <= nx_timestamp_delay_adjust; + -- slv_data_out_o(31 downto 16) <= nx_timestamp_delay_actr; + -- slv_ack_o <= '1'; + -- + -- when x"0011" => + -- slv_data_out_o(0) <= fifo_full_r; + -- slv_data_out_o(1) <= fifo_empty_r; + -- slv_data_out_o(2) <= '0'; + -- slv_data_out_o(3) <= '0'; + -- slv_data_out_o(4) <= '0'; + -- slv_data_out_o(5) <= '0'; + -- slv_data_out_o(29 downto 6) <= (others => '0'); + -- slv_data_out_o(30) <= '0'; + -- slv_data_out_o(31) <= nx_frame_synced_r; + -- slv_ack_o <= '1'; + -- + -- when x"0012" => + -- slv_data_out_o(3 downto 0) <= std_logic_vector(adc_bit_shift); + -- slv_data_out_o(31 downto 4) <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when x"0013" => + -- slv_data_out_o <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when x"0014" => + -- slv_data_out_o(11 downto 0) <= new_adc_dt_error_ctr_r; + -- slv_data_out_o(31 downto 12) <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when x"0015" => + -- slv_data_out_o(11 downto 0) <= new_timestamp_dt_error_ctr_r; + -- slv_data_out_o(31 downto 12) <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when x"0016" => + -- slv_data_out_o(27 downto 0) <= + -- std_logic_vector(adc_notlock_counter); + -- slv_data_out_o(31 downto 28) <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when x"0017" => + -- slv_data_out_o(27 downto 0) <= + -- std_logic_vector(adc_error_counter); + -- slv_data_out_o(31 downto 28) <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when x"0018" => + -- slv_data_out_o(27 downto 0) <= + -- std_logic_vector(adc_error_undef_counter); + -- slv_data_out_o(31 downto 28) <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when x"001e" => + -- slv_data_out_o(2 downto 0) <= debug_mode; + -- slv_data_out_o(31 downto 3) <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when x"001f" => + -- slv_data_out_o(3 downto 0) <= adc_debug_type_r; + -- slv_data_out_o(31 downto 4) <= (others => '0'); + -- slv_ack_o <= '1'; + -- + -- when others => + -- slv_unknown_addr_o <= '1'; + -- end case; + elsif (SLV_WRITE_IN = '1') then case SLV_ADDR_IN is when x"0001" => @@ -2021,47 +2178,42 @@ begin when x"0004" => disable_adc_r <= SLV_DATA_IN(31); + adc_sloppy_frame <= SLV_DATA_IN(30); + reset_inhibit_r <= '1'; slv_ack_o <= '1'; - - when x"000a" => - reset_resync_ctr <= '1'; - slv_ack_o <= '1'; - - when x"000b" => - reset_parity_error_ctr <= '1'; - slv_ack_o <= '1'; - when x"000c" => - pll_adc_not_lock_ctr_clear <= '1'; + when x"0006" => + nx_timestamp_delay_r <= + unsigned(SLV_DATA_IN(2 downto 0)); + nx_timestamp_delay_adjust <= SLV_DATA_IN(15); + reset_inhibit_r <= '1'; slv_ack_o <= '1'; - when x"000d" => + when x"0007" => pll_adc_sample_clk_dphase_r <= unsigned(SLV_DATA_IN(3 downto 0)); + pll_adc_sample_clk_finedelb_r <= + unsigned(SLV_DATA_IN(19 downto 16)); reset_handler_start_r <= '1'; slv_ack_o <= '1'; - + + when x"000c" => + reset_resync_ctr <= '1'; + slv_ack_o <= '1'; + + when x"000d" => + reset_parity_error_ctr <= '1'; + slv_ack_o <= '1'; + when x"000e" => - pll_adc_sample_clk_finedelb_r <= SLV_DATA_IN(3 downto 0); - reset_handler_start_r <= '1'; - slv_ack_o <= '1'; + pll_adc_not_lock_ctr_clear <= '1'; + slv_ack_o <= '1'; - when x"000f" => + when x"001d" => johnson_counter_sync_r <= unsigned(SLV_DATA_IN(1 downto 0)) + 1; reset_handler_start_r <= '1'; slv_ack_o <= '1'; - - when x"0010" => - nx_timestamp_delay_r <= - unsigned(SLV_DATA_IN(2 downto 0)); - nx_timestamp_delay_adjust <= SLV_DATA_IN(15); - slv_ack_o <= '1'; - - when x"0012" => - adc_bit_shift <= - unsigned(SLV_DATA_IN(3 downto 0)); - slv_ack_o <= '1'; when x"001e" => debug_mode <= SLV_DATA_IN(2 downto 0); @@ -2074,8 +2226,72 @@ begin when others => slv_unknown_addr_o <= '1'; - - end case; + end case; + + + -- case SLV_ADDR_IN is + -- when x"0001" => + -- reset_handler_start_r <= '1'; + -- slv_ack_o <= '1'; + -- + -- when x"0004" => + -- disable_adc_r <= SLV_DATA_IN(31); + -- slv_ack_o <= '1'; + -- + -- when x"000a" => + -- reset_resync_ctr <= '1'; + -- slv_ack_o <= '1'; + -- + -- when x"000b" => + -- reset_parity_error_ctr <= '1'; + -- slv_ack_o <= '1'; + -- + -- when x"000c" => + -- pll_adc_not_lock_ctr_clear <= '1'; + -- slv_ack_o <= '1'; + -- + -- when x"000d" => + -- pll_adc_sample_clk_dphase_r <= + -- unsigned(SLV_DATA_IN(3 downto 0)); + -- reset_handler_start_r <= '1'; + -- slv_ack_o <= '1'; + -- + -- when x"000e" => + -- pll_adc_sample_clk_finedelb_r <= SLV_DATA_IN(3 downto 0); + -- reset_handler_start_r <= '1'; + -- slv_ack_o <= '1'; + -- + -- when x"000f" => + -- johnson_counter_sync_r + -- <= unsigned(SLV_DATA_IN(1 downto 0)) + 1; + -- reset_handler_start_r <= '1'; + -- slv_ack_o <= '1'; + -- + -- when x"0010" => + -- nx_timestamp_delay_r <= + -- unsigned(SLV_DATA_IN(2 downto 0)); + -- nx_timestamp_delay_adjust <= SLV_DATA_IN(15); + -- slv_ack_o <= '1'; + -- + -- when x"0012" => + -- adc_bit_shift <= + -- unsigned(SLV_DATA_IN(3 downto 0)); + -- slv_ack_o <= '1'; + -- + -- when x"001e" => + -- debug_mode <= SLV_DATA_IN(2 downto 0); + -- slv_ack_o <= '1'; + -- + -- when x"001f" => + -- adc_debug_type_r <= + -- unsigned(SLV_DATA_IN(3 downto 0)); + -- slv_ack_o <= '1'; + -- + -- when others => + -- slv_unknown_addr_o <= '1'; + -- + -- end case; + end if; end if; end if; diff --git a/nxyter/source/nx_data_validate.vhd b/nxyter/source/nx_data_validate.vhd index ee9ebe3..0c9ef06 100644 --- a/nxyter/source/nx_data_validate.vhd +++ b/nxyter/source/nx_data_validate.vhd @@ -72,7 +72,6 @@ architecture Behavioral of nx_data_validate is signal pileup_ctr : unsigned(15 downto 0); signal trigger_rate_inc : std_logic; - signal frame_rate_inc : std_logic; signal pileup_rate_inc : std_logic; signal overflow_rate_inc : std_logic; @@ -82,11 +81,13 @@ architecture Behavioral of nx_data_validate is -- Rate Calculation signal nx_trigger_ctr_t : unsigned(27 downto 0); signal nx_trigger_ctr_t_nr : unsigned(31 downto 0); - signal nx_frame_ctr_t : unsigned(27 downto 0); + signal frame_ctr_t : unsigned(27 downto 0); signal nx_pileup_ctr_t : unsigned(27 downto 0); signal nx_overflow_ctr_t : unsigned(27 downto 0); signal adc_tr_error_ctr_t : unsigned(27 downto 0); - + signal adc_tr_update_ctr_t : unsigned(27 downto 0); + signal adc_tr_data_ctr_t : unsigned(27 downto 0); + signal nx_rate_timer : unsigned(27 downto 0); -- ADC Averages @@ -98,8 +99,8 @@ architecture Behavioral of nx_data_validate is signal adc_data_last : std_logic_vector(11 downto 0); -- Token Return Average - signal nx_token_return_pipec : std_logic_vector(4 downto 0); - signal nx_token_return_pipev : std_logic_vector(8 downto 0); + signal nx_token_return_pipec : std_logic_vector(9 downto 0); + signal nx_token_return_pipev : std_logic_vector(11 downto 0); signal adc_tr_value_tmp : std_logic_vector(11 downto 0); signal adc_tr_value : std_logic_vector(11 downto 0); signal adc_tr_data_p : unsigned(11 downto 0); @@ -122,6 +123,10 @@ architecture Behavioral of nx_data_validate is signal readout_type : std_logic_vector(1 downto 0); -- Error Status + signal new_timestamp_shift : std_logic_vector(3 downto 0); + signal frame_dt_error : std_logic; + signal frame_dt_error_ctr : unsigned(15 downto 0); + signal frame_rate_error : std_logic; signal error_o : std_logic; -- Slave Bus @@ -131,10 +136,12 @@ architecture Behavioral of nx_data_validate is signal slv_ack_o : std_logic; signal clear_counters : std_logic; signal nx_hit_rate : unsigned(27 downto 0); - signal nx_frame_rate : unsigned(27 downto 0); + signal frame_rate : unsigned(27 downto 0); signal nx_pileup_rate : unsigned(27 downto 0); signal nx_overflow_rate : unsigned(27 downto 0); signal adc_tr_error_rate : unsigned(27 downto 0); + signal adc_tr_update_rate : unsigned(27 downto 0); + signal adc_tr_data_rate : unsigned(27 downto 0); signal invalid_adc : std_logic; signal adc_tr_value_r : std_logic_vector(11 downto 0); @@ -264,7 +271,6 @@ begin nx_token_return_o <= '0'; nx_nomore_data_o <= '0'; trigger_rate_inc <= '0'; - frame_rate_inc <= '0'; pileup_rate_inc <= '0'; overflow_rate_inc <= '0'; parity_error_ctr <= (others => '0'); @@ -289,7 +295,6 @@ begin adc_data_o <= (others => '0'); data_clk_o <= '0'; trigger_rate_inc <= '0'; - frame_rate_inc <= '0'; pileup_rate_inc <= '0'; overflow_rate_inc <= '0'; invalid_adc <= '0'; @@ -299,7 +304,7 @@ begin if (new_timestamp = '1') then adc_data_last <= adc_data; - + if (parity_error = '1') then parity_error_ctr <= parity_error_ctr + 1; end if; @@ -341,7 +346,7 @@ begin trigger_rate_inc <= '1'; if (nx_token_return_o = '1' and - nx_token_return_pipec = "11111") then + nx_token_return_pipec = "1111111111") then -- First Data Word after 5 empty Frames adc_tr_data_p <= unsigned(adc_data_last); adc_tr_data_c <= unsigned(adc_data); @@ -363,12 +368,10 @@ begin end case; - frame_rate_inc <= '1'; - -- Token Return Check Handler case TR_STATE is when S_IDLE => - if (nx_token_return_pipev(4 downto 0) = "11111") then + if (nx_token_return_pipev(6 downto 0) = "1111111") then adc_tr_value_tmp <= adc_data_last; TR_STATE <= S_START; else @@ -377,11 +380,13 @@ begin state_debug <= "01"; when S_START => - if (nx_token_return_pipev = "111111111") then + if (nx_token_return_pipev = "111111111111") then TR_STATE <= S_END; - elsif (nx_token_return_pipev(5 downto 0) = "111111" or - nx_token_return_pipev(6 downto 0) = "1111111" or - nx_token_return_pipev(7 downto 0) = "11111111") then + elsif (nx_token_return_pipev( 6 downto 0) = "1111111" or + nx_token_return_pipev( 7 downto 0) = "11111111" or + nx_token_return_pipev( 8 downto 0) = "111111111" or + nx_token_return_pipev( 9 downto 0) = "1111111111" or + nx_token_return_pipev(10 downto 0) = "11111111111") then TR_STATE <= S_START; else TR_STATE <= S_IDLE; @@ -398,13 +403,13 @@ begin -- Token Return Pipeline nx_token_return_pipec(0) <= nx_token_return_o; - for I in 1 to 4 loop + for I in 1 to 9 loop nx_token_return_pipec(I) <= nx_token_return_pipec(I - 1); end loop; if (TR_STATE /= S_END) then nx_token_return_pipev(0) <= nx_token_return_o; - for I in 1 to 8 loop + for I in 1 to 11 loop nx_token_return_pipev(I) <= nx_token_return_pipev(I - 1); end loop; else @@ -427,23 +432,30 @@ begin begin if( rising_edge(CLK_IN) ) then if (RESET_IN = '1') then - nx_trigger_ctr_t <= (others => '0'); - nx_trigger_ctr_t_nr <= (others => '0'); - nx_frame_ctr_t <= (others => '0'); nx_rate_timer <= (others => '0'); - nx_hit_rate <= (others => '0'); - nx_frame_rate <= (others => '0'); + + nx_trigger_ctr_t <= (others => '0'); + frame_ctr_t <= (others => '0'); adc_tr_error_ctr_t <= (others => '0'); - adc_tr_error_ctr <= (others => '0'); + adc_tr_update_ctr_t <= (others => '0'); + adc_tr_data_ctr_t <= (others => '0'); + + nx_hit_rate <= (others => '0'); + frame_rate <= (others => '0'); adc_tr_error_rate <= (others => '0'); + adc_tr_update_rate <= (others => '0'); + adc_tr_data_rate <= (others => '0'); + + nx_trigger_ctr_t_nr <= (others => '0'); + adc_tr_error_ctr <= (others => '0'); else if (nx_rate_timer < x"5f5e100") then if (trigger_rate_inc = '1') then nx_trigger_ctr_t <= nx_trigger_ctr_t + 1; nx_trigger_ctr_t_nr <= nx_trigger_ctr_t_nr + 1; end if; - if (frame_rate_inc = '1') then - nx_frame_ctr_t <= nx_frame_ctr_t + 1; + if (new_timestamp = '1') then + frame_ctr_t <= frame_ctr_t + 1; end if; if (pileup_rate_inc = '1') then nx_pileup_ctr_t <= nx_pileup_ctr_t + 1; @@ -455,19 +467,28 @@ begin adc_tr_error_ctr_t <= adc_tr_error_ctr_t + 1; adc_tr_error_ctr <= adc_tr_error_ctr + 1; end if; + if (adc_tr_value_update = '1') then + adc_tr_update_ctr_t <= adc_tr_update_ctr_t + 1; + end if; + if (adc_tr_data_clk = '1') then + adc_tr_data_ctr_t <= adc_tr_data_ctr_t + 1; + end if; + nx_rate_timer <= nx_rate_timer + 1; else nx_hit_rate <= nx_trigger_ctr_t; - nx_frame_rate <= nx_frame_ctr_t; + frame_rate <= frame_ctr_t; nx_pileup_rate <= nx_pileup_ctr_t; nx_overflow_rate <= nx_overflow_ctr_t; adc_tr_error_rate <= adc_tr_error_ctr_t; - + adc_tr_update_rate <= adc_tr_update_ctr_t; + adc_tr_data_rate <= adc_tr_data_ctr_t; + nx_trigger_ctr_t(27 downto 1) <= (others => '0'); nx_trigger_ctr_t(0) <= trigger_rate_inc; - nx_frame_ctr_t(27 downto 1) <= (others => '0'); - nx_frame_ctr_t(0) <= frame_rate_inc; + frame_ctr_t(27 downto 1) <= (others => '0'); + frame_ctr_t(0) <= new_timestamp; nx_pileup_ctr_t(27 downto 1) <= (others => '0'); nx_pileup_ctr_t(0) <= pileup_rate_inc; @@ -477,6 +498,12 @@ begin adc_tr_error_ctr_t(27 downto 0) <= (others => '0'); adc_tr_error_ctr_t(0) <= adc_tr_error; + + adc_tr_update_ctr_t(27 downto 0) <= (others => '0'); + adc_tr_update_ctr_t(0) <= adc_tr_value_update; + + adc_tr_data_ctr_t(27 downto 0) <= (others => '0'); + adc_tr_data_ctr_t(0) <= adc_tr_data_clk; nx_rate_timer <= (others => '0'); end if; @@ -525,7 +552,7 @@ begin lower_limit := unsigned(adc_tr_value) - adc_tr_limit; adc_tr_error <= '0'; - if (adc_tr_data_clk = '1') then + if (adc_tr_data_clk = '1' and DISABLE_ADC_IN = '0') then if (adc_tr_data_p > lower_limit) then adc_tr_debug_p <= '1'; @@ -558,21 +585,55 @@ begin end if; end process PROC_ADC_TOKEN_RETURN; - PROC_ADC_TOKEN_RETURN_ERROR: process(CLK_IN) + PROC_ERROR_HANDLER: process(CLK_IN) begin if (rising_edge(CLK_IN) ) then if (RESET_IN = '1') then - error_o <= '0'; + frame_rate_error <= '0'; + error_o <= '0'; else if (adc_tr_error_rate > x"0000020" and DISABLE_ADC_IN = '0') then - error_o <= '1'; + error_o <= '1'; else - error_o <= '0'; + error_o <= '0'; + end if; + + if ((frame_rate < x"1dc_d64e" or + frame_rate > x"1dc_d652")) then + frame_rate_error <= '1'; + else + frame_rate_error <= '0'; end if; end if; end if; - end process PROC_ADC_TOKEN_RETURN_ERROR; - + end process PROC_ERROR_HANDLER; + + PROC_DATA_STREAM_DELTA_T: process(CLK_IN) + begin + if (rising_edge(CLK_IN)) then + if (RESET_IN = '1') then + new_timestamp_shift <= (others => '0'); + frame_dt_error_ctr <= (others => '0'); + frame_dt_error <= '0'; + else + -- Frame + new_timestamp_shift(0) <= new_timestamp; + new_timestamp_shift(3 downto 1) <= new_timestamp_shift(2 downto 0); + + case new_timestamp_shift is + when "1100" | "1110" | "1111" | "0000" => + frame_dt_error_ctr <= frame_dt_error_ctr + 1; + frame_dt_error <= '1'; + + when others => + frame_dt_error <= '0'; + + end case; + + end if; + end if; + end process PROC_DATA_STREAM_DELTA_T; + ----------------------------------------------------------------------------- -- TRBNet Slave Bus ----------------------------------------------------------------------------- @@ -609,33 +670,35 @@ begin when x"0001" => slv_data_out_o(27 downto 0) <= - std_logic_vector(nx_frame_rate); - slv_data_out_o(31 downto 28) <= (others => '0'); + std_logic_vector(frame_rate); + slv_data_out_o(30 downto 28) <= (others => '0'); + slv_data_out_o(31) <= frame_rate_error; slv_ack_o <= '1'; - + when x"0002" => + slv_data_out_o(15 downto 0) + <= std_logic_vector(parity_error_ctr); + slv_data_out_o(31 downto 16) <= (others => '0'); + slv_ack_o <= '1'; + + when x"0003" => + slv_data_out_o(15 downto 0) <= + std_logic_vector(invalid_frame_ctr); + slv_data_out_o(31 downto 16) <= (others => '0'); + slv_ack_o <= '1'; + + when x"0004" => slv_data_out_o(27 downto 0) <= std_logic_vector(nx_pileup_rate); slv_data_out_o(31 downto 28) <= (others => '0'); slv_ack_o <= '1'; - when x"0003" => + when x"0005" => slv_data_out_o(27 downto 0) <= std_logic_vector(nx_overflow_rate); slv_data_out_o(31 downto 28) <= (others => '0'); - slv_ack_o <= '1'; - - when x"0004" => - slv_data_out_o(3 downto 0) <= - std_logic_vector(adc_average_divisor); - slv_data_out_o(31 downto 4) <= (others => '0'); slv_ack_o <= '1'; - - when x"0005" => - slv_data_out_o(11 downto 0) <= std_logic_vector(adc_average); - slv_data_out_o(31 downto 12) <= (others => '0'); - slv_ack_o <= '1'; - + when x"0006" => slv_data_out_o(1 downto 0) <= adc_tr_error_status; slv_data_out_o(31 downto 2) <= (others => '0'); @@ -653,50 +716,66 @@ begin slv_ack_o <= '1'; when x"0009" => - slv_data_out_o(15 downto 0) - <= std_logic_vector(parity_error_ctr); - slv_data_out_o(31 downto 16) <= (others => '0'); - slv_ack_o <= '1'; + slv_data_out_o(27 downto 0) + <= std_logic_vector(adc_tr_update_rate); + slv_data_out_o(31 downto 28) <= (others => '0'); + slv_ack_o <= '1'; when x"000a" => + slv_data_out_o(27 downto 0) + <= std_logic_vector(adc_tr_data_rate); + slv_data_out_o(31 downto 28) <= (others => '0'); + slv_ack_o <= '1'; + + when x"000b" => slv_data_out_o(11 downto 0) <= std_logic_vector(adc_tr_limit); slv_data_out_o(31 downto 12) <= (others => '0'); slv_ack_o <= '1'; - when x"000b" => - slv_data_out_o(11 downto 0) - <= std_logic_vector(adc_tr_error_ctr); + when x"000c" => + slv_data_out_o(11 downto 0) <= std_logic_vector(adc_average); slv_data_out_o(31 downto 12) <= (others => '0'); slv_ack_o <= '1'; - - when x"000c" => + + when x"000d" => + slv_data_out_o(3 downto 0) <= + std_logic_vector(adc_average_divisor); + slv_data_out_o(31 downto 4) <= (others => '0'); + slv_ack_o <= '1'; + + when x"000e" => slv_data_out_o(15 downto 0) <= std_logic_vector(pileup_ctr); slv_data_out_o(31 downto 16) <= (others => '0'); slv_ack_o <= '1'; - when x"000d" => + when x"000f" => slv_data_out_o(15 downto 0) <= std_logic_vector(overflow_ctr); slv_data_out_o(31 downto 16) <= (others => '0'); slv_ack_o <= '1'; - when x"000e" => - slv_data_out_o(15 downto 0) <= - std_logic_vector(invalid_frame_ctr); - slv_data_out_o(31 downto 16) <= (others => '0'); + when x"0010" => + slv_data_out_o(11 downto 0) + <= std_logic_vector(adc_tr_error_ctr); + slv_data_out_o(31 downto 12) <= (others => '0'); slv_ack_o <= '1'; - - when x"000f" => + + when x"0011" => slv_data_out_o(0) <= adc_tr_debug_mode; slv_data_out_o(31 downto 1) <= (others => '0'); slv_ack_o <= '1'; - when x"0010" => + when x"0012" => slv_data_out_o <= nx_trigger_ctr_t_nr; slv_ack_o <= '1'; + when x"0013" => + slv_data_out_o(15 downto 0) <= frame_dt_error_ctr; + slv_data_out_o(31 downto 16) <= (others => '0'); + slv_ack_o <= '1'; + when others => slv_unknown_addr_o <= '1'; slv_ack_o <= '0'; @@ -707,17 +786,17 @@ begin when x"0000" => clear_counters <= '1'; slv_ack_o <= '1'; - - when x"0004" => - adc_average_divisor <= SLV_DATA_IN(3 downto 0); - slv_ack_o <= '1'; - - when x"000a" => + + when x"000b" => adc_tr_limit <= unsigned(SLV_DATA_IN(11 downto 0)); slv_ack_o <= '1'; - when x"000f" => + when x"000d" => + adc_average_divisor <= SLV_DATA_IN(3 downto 0); + slv_ack_o <= '1'; + + when x"0011" => adc_tr_debug_mode <= SLV_DATA_IN(0); slv_ack_o <= '1'; diff --git a/nxyter/source/nx_event_buffer.vhd b/nxyter/source/nx_event_buffer.vhd index 3d3f8ff..3e092cf 100644 --- a/nxyter/source/nx_event_buffer.vhd +++ b/nxyter/source/nx_event_buffer.vhd @@ -202,7 +202,7 @@ begin ----------------------------------------------------------------------------- -- Send data to FIFO - fifo_32_data_1: fifo_32_data + fifo_32_data_1: entity work.fifo_32_data port map ( Data => fifo_next_word, Clock => CLK_IN, diff --git a/nxyter/source/nx_histogram.vhd b/nxyter/source/nx_histogram.vhd index 2757c38..2ea47d7 100644 --- a/nxyter/source/nx_histogram.vhd +++ b/nxyter/source/nx_histogram.vhd @@ -100,7 +100,7 @@ begin SMALL: if (BUS_WIDTH = 7) generate - ram_dp_COUNTER_HIST: ram_dp_128x40 + ram_dp_COUNTER_HIST: entity work.ram_dp_128x40 port map ( WrAddress => write_address_hist, RdAddress => read_address_hist, @@ -116,7 +116,7 @@ begin Q(39 downto 32) => read_data_ctr_hist ); - ram_dp_RESULT_HIST: ram_dp_128x32 + ram_dp_RESULT_HIST: entity work.ram_dp_128x32 port map ( WrAddress => write_address, RdAddress => read_address, @@ -134,7 +134,7 @@ begin LARGE: if (BUS_WIDTH = 9) generate - ram_dp_COUNTER_HIST: ram_dp_512x40 + ram_dp_COUNTER_HIST: entity work.ram_dp_512x40 port map ( WrAddress => write_address_hist, RdAddress => read_address_hist, @@ -150,7 +150,7 @@ begin Q(39 downto 32) => read_data_ctr_hist ); - ram_dp_RESULT_HIST: ram_dp_512x32 + ram_dp_RESULT_HIST: entity work.ram_dp_512x32 port map ( WrAddress => write_address, RdAddress => read_address, diff --git a/nxyter/source/nx_trigger_handler.vhd b/nxyter/source/nx_trigger_handler.vhd index aef7d0a..e925fb8 100644 --- a/nxyter/source/nx_trigger_handler.vhd +++ b/nxyter/source/nx_trigger_handler.vhd @@ -865,7 +865,7 @@ begin slv_ack_o <= '1'; when x"000a" => - status_trigger_type <= SLV_DATA_IN(3 downto 0); + calibration_trigger_type <= SLV_DATA_IN(3 downto 0); slv_ack_o <= '1'; when others => diff --git a/nxyter/source/nx_trigger_validate.vhd b/nxyter/source/nx_trigger_validate.vhd index b8d770c..661add2 100644 --- a/nxyter/source/nx_trigger_validate.vhd +++ b/nxyter/source/nx_trigger_validate.vhd @@ -205,15 +205,18 @@ architecture Behavioral of nx_trigger_validate is signal reset_hists_o : std_logic; -- Timestamp Trigger Window Settings - signal nxyter_cv_time : unsigned(11 downto 0); - signal cts_trigger_delay : unsigned(11 downto 0); - signal ts_window_offset : signed(11 downto 0); - signal ts_window_width : unsigned(9 downto 0); - signal readout_time_max : unsigned(11 downto 0); - signal fpga_timestamp_offset : unsigned(11 downto 0); - - signal state_d : std_logic_vector(1 downto 0); + signal nxyter_cv_time : unsigned(11 downto 0); + signal cts_trigger_delay : unsigned(11 downto 0); + signal trigger_calibration_delay : unsigned(11 downto 0); + signal ts_window_offset : signed(11 downto 0); + signal ts_window_width : unsigned(9 downto 0); + signal readout_time_max : unsigned(11 downto 0); + signal fpga_timestamp_offset : unsigned(11 downto 0); + + signal state_d : std_logic_vector(1 downto 0); + ----------------------------------------------------------------------------- + attribute syn_keep : boolean; attribute syn_keep of timestamp_fpga_ff : signal is true; attribute syn_keep of timestamp_fpga_f : signal is true; @@ -322,12 +325,8 @@ begin -- Calculate Thresholds and values for FIFO Delay ----------------------------------------------------------------------- - if (trigger_calibration = '0') then - cts_trigger_delay_tmp := cts_trigger_delay; - else - cts_trigger_delay_tmp := (others => '0'); - end if; - + cts_trigger_delay_tmp := cts_trigger_delay; + if (ts_window_offset(11) = '1') then -- Offset is negative ts_window_offset_unsigned := @@ -349,12 +348,12 @@ begin -- Final lower Threshold value relative to TS Reference TS window_lower_thr := timestamp_fpga - window_lower_thr; - window_upper_thr := window_lower_thr + resize(ts_window_width, 12); + ts_window_check_value := unsigned(TIMESTAMP_IN(13 downto 2)) - window_lower_thr; - + -- Timestamp to be stored deltaTStore(13 downto 2) := ts_window_check_value; deltaTStore( 1 downto 0) := unsigned(TIMESTAMP_IN(1 downto 0)); @@ -662,6 +661,12 @@ begin min_validation_time + wait_for_data_time; wait_for_data_time := x"00001"; end if; + + if (trigger_calibration = '1') then + min_validation_time := + min_validation_time + resize(trigger_calibration_delay, 20); + end if; + min_validation_time_r <= min_validation_time; wait_for_data_time_r <= wait_for_data_time; @@ -744,6 +749,11 @@ begin timestamp_fpga <= timestamp_fpga_f + fpga_timestamp_offset; end if; + + if (trigger_calibration = '1') then + timestamp_fpga <= + timestamp_fpga_f + trigger_calibration_delay; + end if; STATE <= S_WRITE_HEADER; end if; @@ -959,6 +969,7 @@ begin histogram_limits <= '0'; histogram_trig_filter <= '0'; histogram_ts_range <= "100"; + trigger_calibration_delay <= x"190"; -- 400ns else slv_data_out_o <= (others => '0'); slv_unknown_addr_o <= '0'; @@ -995,7 +1006,10 @@ begin when x"0003" => slv_data_out_o(9 downto 0) <= std_logic_vector(cts_trigger_delay(9 downto 0)); - slv_data_out_o(31 downto 10) <= (others => '0'); + slv_data_out_o(15 downto 10) <= (others => '0'); + slv_data_out_o(27 downto 16) <= + std_logic_vector(trigger_calibration_delay); + slv_data_out_o(31 downto 28) <= (others => '0'); slv_ack_o <= '1'; when x"0004" => @@ -1122,9 +1136,9 @@ begin when x"001a" => slv_data_out_o(11 downto 0) <= std_logic_vector(nxyter_cv_time); - slv_data_out_o(31 downto 12) <= (others => '0'); + slv_data_out_o(31 downto 12) <= (others => '0'); slv_ack_o <= '1'; - + when x"001b" => slv_data_out_o(19 downto 0) <= std_logic_vector(min_validation_time_r); @@ -1197,6 +1211,8 @@ begin when x"0003" => cts_trigger_delay(9 downto 0) <= unsigned(SLV_DATA_IN(9 downto 0)); + trigger_calibration_delay <= + unsigned(SLV_DATA_IN(27 downto 16)); slv_ack_o <= '1'; when x"0004" => @@ -1227,12 +1243,13 @@ begin when x"0020" => histogram_lower_limit <= SLV_DATA_IN(13 downto 0); histogram_upper_limit <= SLV_DATA_IN(28 downto 15); - reset_hists <= SLV_DATA_IN(29); histogram_limits <= SLV_DATA_IN(30); histogram_trig_filter <= SLV_DATA_IN(31); + reset_hists <= '1'; slv_ack_o <= '1'; when x"0021" => + reset_hists <= '1'; histogram_ts_range <= SLV_DATA_IN(2 downto 0); slv_ack_o <= '1'; diff --git a/nxyter/source/nxyter.pdf b/nxyter/source/nxyter.pdf deleted file mode 100644 index 04fdedcd3a2feb97742e1413161ae0229e0e9f41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204296 zcma&NQ*>wDvbY`F?AYo!`Ng(v+ji2iZQHhO+qSLlm|yRG{%4`nGC{l+V&OZ zU~|_4%o;Ub^y>V(h-SSggG}R#lSlk0qFsikU^H1>4z>uM_)dR-dTc;%T7eNW0y4`0 zgjq!}(;96wlMmIRQ+{=M`Q4ct4zJR z6f)p+GW_q7IpQ||egR2)bQXIQG#`!E^58QG{t!41a{krn!9V&O%I$gEvW9|n*c zqS>C~yxs|ldO@AaW3zMS;#o0-aA6NQA%BQ~td>?4sb;|n5a(Ig#N0S3pn*%>-^PHT z&#I^lxoR}=z~)RP&|@H98;yxMs9lFD5Ry0l-b%Lp*`%1|u@#a{c;rA*V#~3#FZ@Q8 zpWi2{Xsp$$vfr0ov>8%GO&^*oUEHPQI}K5Z#IjWO|*LVT=Mu zs2RG8jw*G_2vmn(0&o(BQ*V}e7Ly^{eYx~pi6yH??w%^h5oT{pq!e0G_d9LzIM z!HSz94I@f&Q;&8#S!NYi`r7k9siX07t6s-P8re|7&{VQ23ebIY@*ZCb>c~E@3=cT| zy;coVHU>aVKrj&PibMKZsek^OOQ^~cA}#O-F^IC(g){ z1IVE0l7V)r4UrVpy)JM~sxLG35uZ>!pESxiBE%Fp<%p>i2JR(jvFKpolr zMdbwHoQPTd#7_xsEdb<`fVw8XJW=SCko3YQ9!^_4^erpt;KgSri7FcKnAHFyT@%yg zaW;1xVTXvbO3uTWCf0)p56>zcrH=qVwp1Do_k+w9VRwLVxh@*m4jWKtHDMJ{QA zV5sF#U){E*s%=e8*Mg4Oi_$8vow}nhG%`>a$Q6y5O>njIEkVD)P z;eKwYZJ9?f^t^@V6d1x4nuS_Sr@#c&%kZMOQ=z-OW@UZJ!g|;7Rgqt*`cyMNsQaix z(x2_QKF3nHY$L?;*b?u)`O%^9#NLjfQ9+(*PLA-cpVRi#&agc|>BzPNf*(df_xHD~ zvDk#Ju`(~IBDduc^OtG?A+cSS$gB8`Rb-NH{rs@x*@Y&?xIg!+qe|1%M47MH7dR&?i-0f6~`F-E{YK+E_q_Wu8qR^3KvlO5^nMz4M_ltel_ z{sVjP(UdY@`h>EW=raW?x;}Z&>cH>1@BY?~jO#u#Yc9p9lr%nP+sv&yf#4N7Ox8cl zci60MNp^&8N-4Sz{VUf>4m%l$k~e_ND}&G+2s9gMlf{5Zh%mV4ZZCtg9-cva+Zhgr zT&fy!?shP(lv^s6{M&rNairoF7mQ>{q@e!o!6icr|%MNfyOv; znHy#%20`m(-+l_oiw;g88WJh@*$aR8C76>le~G5eZd8wc?e6#DbET5Iv?{QiQrgoI z&~Lfexjg)T zi!`EVR%1reae0Q~>G7J@>V(LK8XVAbuu9wohU%2mYyeK^X&#t!O>{y)n+*m&?d3eW zx>L5Rns&G(H*Jk704W~4?~#~RCX4d2O-s#3}v0?^GmT4cc5j4M%c(J zS+$ho;J-1zGx}>@N9F?E$M|dN|0rET377^zbet3YLb2@D@}24DW`xs{&W?%?P~2~n zqm`nlQP`6Y%~uu-o2tjIl);m0?PeRQR85PiMxCthXM(nrZj4Lgdh^Gch*=Y#pIGpc za#Lnmxn&bu*6L>a)$aJIhavZc>1Kry0-gCMjY6UC%)-h1v;rD~?*~;Yoiy~{O>3ZA zd&n8b>aPqBS7@e8Ye;ggDS*x`23p2(BPf|_(lqhAb?>42t_fWXvd$qH^&lN<_#j>t zs@;YqIPuRfCbG1jeYqWdAs}A!;H>C-2AFFVfqbpDS3O-8Bz7Itb{k`vHxrqxze_rQ zmqd4+*ZeE|#_YkTq89VuM>4wXv5`@F+$5>i{miPci{oTV#oVJEQ%h%JGWN6bHjayA^*N#KKw&6C}h*UyA1rc2N*9YVp z*#!SQQ^WZ5hL#MyToJwf#vf^#W8EjV{&iRT+qi~N2!zWOjcPKwYs3Lbe1XwA* zF+ir+w#6`2+HLqAnj%L3gW~_j^S?39%+C5BjC1@0<4g?y4aSGnZ0rvHVmwEW@n8_R zgKW)%%*0c%_E@#jrdcN=R$M_GX+65D+}t?dl!D6HQt~a6p1#mP9V(W<6HYC z-2_luj~MQ*j1EP%bB}DtYy0eK`}w))2sk;OWWSyr2|$v3JKvls%&SM)A|Nv&;M#`; zN!4=EwRr*{oo$Rf6M-!aZeWq@9B~Nh(-Tu-Uc?cSm zdV?l)5UwVok)fA0vfn9DUp+Bd7t!{{cHigv6I8A|(>5W4JBT^Wd8p5$Dh$wpflhLg z(72`p9+Ns^*p@iMn89k1S~qJ!Ki}BL7j9Q49kYYC`T_Ud(zJrL1KrpQik=F)b3}){ zHJlXG*b#&VJFL+mp;@PzMbMK`Z8ZHTVq)8cpIeyKYG3GK5A*$#|KiaKnB&963zHmH zh}Au2RX2|Gj{VE$k~?ZdPjqHG+FNL%v-~+n&f@)=8>K5xE!{V9W_vsB`*dr^H`BS% z-KWFhOg0s`i+xF>eHKXVC4yeI1JMzCYEbBxyY3+abYVN{%O8G#)&%*@twY~c0j}3> z(QGE#^|y0sruIa{X{9Qs-gD2j>~f_Q>xkRd5ApE5)jvS4k+MrREY2uf`KWrHHd_TmT9bm@$6sw2XY6J=NrGu%93JmluMFa#JWG<=HzRG3aH5SX1)0R~ z@~h*7rBUO2s946^N?CZRm1>Bu9P*hA$vBQmjsvf@5=&^uKhlRI#Rp{NCr}K#y|0cx zdP-y-rFDcJw}DkLDu~uc=PES7cM%Tf7sp(Gzw>vcR>+Fqh`u7!vgfoJzc#o(Vo#nQ z+XZ)^PaNe%JYb3-t_p$9Um?*|)8p^D8?OOpd`7k-v`)FXJ1+vl3KL$jQIt_BNQe!; zG*p5lWD!$qG4|yHMnB3eJS#d!oHp@)Wk|Eq9q>$0j2Y9$JQ_Dt=rScwxD5LMd1@If^+a`iulM6p&kyoKBb5^{A;db*8esA#k=S6-m~uGR_kk=+B+2<69l zc2Y^*YdHEsTC|NBz6GqTkw;ZhD$?D?92UXIO4d&C7F9qY3UgWExq9 zr~X_4<0=2KrhE1cZz;L3Gu#+ym(KLu%(6`7IidA0FKZBhzqvEQ6{S+`d%)bX`>Y;l~eqoG?}R1s2b(~`>^bMwuYzM^%{gINc+$WU&9*x2!Gj&&KZDFc;Jl`dqe zAXxBq<5i>k2kZXLuz$0Tk(KR#S;zEGWo7!Wlyy37Q}$3CDdhGO%|$GZd}Nt-a7K~_ zn%Ud{Qn08y+&H}rwJUQCYZPl})2`iyg4dbQRKH2|Xzo+3y`y6BaeP-m3AyR2);*Ul zIWZpoPjf*(=36fHE;*khCzCtwMuIm^kMNr z;Po-2(gXg$k``Y`<5DK?+kDokQm=Oi2{$Jf{&yi%ZwUP1Wj3u|)$6?iq#pKb#hC{h zKYJzoH7^^vm0lx#C27v@M{HZMUAnH!{jBj0%P^C=&*!c&PagD7-l$J= zoM{JZ*TmF7qo_yZX?gZ@y!Ezdi$s)=(j_%1|Lc`3$VaAC9OzpJV}UGJ^>o{8vO+ zU8k;9;(Z@N#yzW?7C6zt_x(2f$+H$RTAoPwIO9h2Po2uTxw7jjjm=I~12Xb8fCZYW z;Xnp?^nj%FMKd0q+Ib^)rQtPqX6+e0TjX%gPpHqR6Ss@;`==o)-yvlTzA!c_ug60D z{zR{?_^YjqnYIQ^Gjt6XUo<90{QFWvP|)@eN?9BSm2Bk}X^+|te|2|*_}+-ZdoTNZ zk5skP-LCmNFMG|L%tYOuL5k7#C;!>OGVNdNg@r`Ws|J8)cZO3gMiol$qj@@m>9ww= zhQ0~+<0QYLGG2eyTh_t-NxIjDT~JJZ#YR0}Swt zng<+}T@YWNGJ~t)Cc%S{v{NkyW|GTbYN|v*(gB`*eAE~ll5fdM?R*KyBVdpi!mg~( zFmJCo$49!Id@(=6zAx0>Gm7lLfQR?g8D{83Q9J0 zg#y_RB|>r)CA^B^U&HgS;{q{I0~?5e3Zf^Ts{{%P1xC67Cfow$rvxSR0`|LO0UAIA z%L}xCFiBgoHnG{3lSk|!dEDbtiUr_I-v=r#;@k0olqE@?lqj&QH^v0!m#0544X_C) zF<*uXCQjW<&oz~<8#S+g|2Csr)oASqFJvfg_=q^Ah5ZVo?*crj;!L^aOd3T;i5-OMfuJHzNZbbFrv>TQ~zTW>>k5RX8n08(klmhe03{sc?b$1WBl(|Ej z*&jhHr=2|H|;T)i!Pa9@M>8)sVdFBcsvdJ2Ye){p={C zI_j;cy_xtaQ4Y)2$fXfi$Fc;U4VT@ z{>Ztzj(&B1qDqrfb7O4?Nt@N~Z2C%Qr<#Iz<{YXmJ}#Z0pyeW5C}!hw-HUx;xl0+k=ZAE7I^L?M=UDI>&u&$D1__N`xVf>PRzS z156$Jg?^Cf-{SU_XkBm~`kp?&z|lWq^;|OpjKKw2CdDplQ-x)bjM&SfsnRHF?a;maUjo7*Hv1p<;OTEtv7S%fVeoNMlU zh{4ak(?A4Nz9y;I>)m<5CzlPQZZV#`7{7u>Bj33^I|{qpdH{fYENCnWxZMMF7W@_<1uf{II2{ zCQHo6f};YDsxHT{AtV+=w!sS);fnC7&YV-h(ohbKSOc*koUi>nQ)-VavCQm@`(eg@C|>~^))be z?`7Oqy6*i53_yEbDj4_(8S~){$v+|A_1bv-O>MltY3zG!yyvMK7p03x6EnV_rmVHF zZ(Oyo|U`3jV8Ya5)5xH!q(dnS}g9P=_z}#XTPWtL0u3OyRk11M9?}I z55#K`S_$&9y6=?|zO*+xGxKckuBph4Z`f+Ec>PNzIe`M%?*OVV1&ZGROkWBtj~%3r z4CL+_igFrO(pjcen4bnZGr=XZ>w>XWJB1>-3Ln1o35IHo7+k5ms$^XkC!XST9g)Or z6w~!f=t#J>k0R(U+(`O`zeEk}Gil?EE@W=b*sQg(7IKuws-AK9II>*o94m*~2fEM> z{Qks2ratz3_EEZ+sZ{U9Ns?Lnx3ww5ivb#VJ#8q{<(MI(6eDw@GZ+E{s?I}geaBrWz` z4vVp>7Fq8#%vM?4XE{#_ndMnlxr!={Ps?X8bcc5^6HqL(O^TW4-(TlR%(s7}CCB|B zO1q*y2=iB82C35sx-orWdAWGQ(~fftG;sgri=tU8Z$I2;sE37bP~Fg}$}>x#O)6_m zt{$y^-Pq$<>LtcgJzYdTu+^2ess00;{|4g!R5$_usc4D_yKs*O0puMe}*C zO>3P@?sJ!uUY3NeH+OD~Pg{^w!{&HG(ni6-r2u^Qn03XhvNwq$jsD5rKAmFoBJ{_M z=l4yJ^Bmo#^E7Wf1$zMM#kmPYB>|G;y~4xJ0Jo-#a{cm~KI176{#wD_0u0 z4i#(maF6H6^VW`t*Y(I&6CFE*@VR%IOhY{S{UAsH&DZ;#P$5wa`OJ6sF)oeQA@oIL zylf0oIs79Q;v^4EKx8jUr^1v8vao)$JtN^gonPss$7Eg8rkX_HalrG7jCAgLV=FoN$~W6+V6x4jze=umg0n!UrI=6)A!CjfHj5<@ElV<(?6$J_)(&h zjUcD6?8KLY5Hi}a%Bf-_cjx)IvRc1HlE1F%kBdxCln4f{68;3 z@(z%Y0Hn1m^N*nB{NLajG11SrbUPZJ=AuV8M#Y|PLR`+bZM?2dtuXgu)!VBHE2d;$ z7IBmVYwoZNE05X(J3R*9C~DTet&QA}TCC{S%>wV%jG~K_(9v&CR#WWWtiod#yiEah z@c5nc)WI+bb9bexLd|p`D>(PDq2zqNdgj=JJJs*Y!tXsz-#`W((ik094vLKsvB$HNsW<0h03m zw&l}Vo!rfsX~xv^2KYtE=2P02GxFIQ7DIR&Ni)f?dloJ?-ersxeOHnvK zGjn&NHZeh#)CbT4eRgRA*Q#TkxO}p<4jj%8nQMcIOo}ftw2R3qgFlQzch#IFl!4wV zJ147w!AnH=xvsMXAGB;mTq*#9B?KV~tr`$;SqS~iiK{u|R($;HDwycc^Mq2)KYB}-i~>>0zgrV)&aOj^;RYjs#kTs1fS zusArw*JQt06#ORt7%svQUqtXVMapVt;yQ6;CoyoO!NQ0kE6#7_86m-Iqp6|rtQN{v zIDBvA20of_ah zSB#m+s9~m-ymm!pp?Pn&_N6lC(A)$KXKj~6|>0WSN>8NWg>L+Ae_p$O}zQz{jbh! z=9cXYyM4c-OD>UbM3Y%`Bepd0xJNmG$?NnA<;jQ;8dp(0x@$>ytXk#o#Y4B$+{@Jn zmPwxJnLhHi{)z4X_%1UW!~dT0ng8j#fd9&Oo7JuCE<}+&Z}b=^Qjw_GeQm1;`p ztQ|!HYtNb$bkVYb@;=mW_UQQY@E??A8g)->dv|9^n4SK0@X3z4742KhU71o&l;qXj*HyB#V&kNGaa{f6=;k)%b z*gu#SV;P|Kp7gibjd-l=iAiOkj8R>Jnsy%{Xf#cr*iRP>{m ztD@x66zkRB_xS;xd6sMAqhNoKp3TIW5o=s^7J2mSU{z+J!H(ip9u98vcK z7OR|W>MJWKQs|3L&<6hvn@mKVw3D6W6-kU8#3Re`me$NF#PnhrEbC*)wy}&BpOWt96XOV1YleADJz8+jCOM0lPQ9JQmhz}S0 z(;k5P-e~`1v-J%!yY7Q^`r0KF84rL?@j|vsXsY-!=DFohIg;prK3pc}jS<=eiMVz6 zwM7A@#TJFbzB(%+fBu2viVs}l0UM2C72fJWW0vP{PLy9qF4rL_yMmae<)t(tiqVET z-`$%H{sn+5X+2!G`+8U;3i)OpIqm^JNeI?n3q+SU@;9Wn173-Gspfd>Y810I<+y1w zm)}-7Up6OT@r)$Nv`0seuWMTTSo1x2Zx~w(v;R0Fh4tE_?^+f_c~){+$9SCRQ$7se zi-fQ>wqg|)+RXC$^#hcxjD@31z`l`8E!qFzlix$xSu0RYM2TmT*%|Sie6mqR%Bimo zu(s@mF=CUPeqaa)!P0~uWL*@(rjA4|ka6}9cYgfQZ<1NDPlT}82T{~=QwRsRMRA6O zJB+k72sXhkvGm{pLsXSCL$NWOo2DMDtG~C5AfI=c+E}L5ae*rZI~j&)RsticwEksv z8B@BkL&42Ui%P2`#5r$0HiUY-1K2y0Dn1O?VR-t66EyrxADMWR7S)@N^f`q9{GxW) zZ{QGg-1i>6lsz8~Pet^|Bt9ZxAW`D$OK1$>F{?OC;}MX=>WD$uB(4?5vYFRE?!Zk> zIyl0OG8Yby<<{EX6jnd1i*E*C;cNzHSYLnYtUQoz88#-+ovmdCfvb?4o*dd9)QKrY z*Bap*JG74`Xp3_=U}T>y#|Ns?Pyx-XBFgn0&J>rf+cW&G9j0AP!zDS}VhN#w3C|H< z8H@b2so+mMPtkR1XT~G5DEP22Q&SET1Dl4wfEG^N7Ie%iipQ~G>tBV0ArTKMHAWx% zL2Tl67;Ba9N@mGV87hj-AEddtnck^eEA*h5nxmxGxZrkF&Of#k<-9OrI3YpydeBjm zCW3$kPmdZy4UA#w2 zbPjFf9#3crQ>$|ioi}*Qu-@a9Jb;_sa^a5M>u5PIgK)5N6<3?*8Ze%`H7*YkO+D}E zxOl8u@O*~JMhhCe(x}*NnJeTCfM=C${c5M;Iu za%vsg+*40p?((s>7&iUMZV-PfqZQEs>|6pl3i*y+WB4R~I24WY)|Db+5{ww|gik&?^^Fz(b&D)<>x(8KQeYBal+RvH{p*^7Frhq3X*eFrozvdD_tH5w z^2M=A6Os7%C#H!-&zBUVNdcv1{@Bs*h8ybh&nWJoh+j*LPIDi;_kGjK?=AXHV_k~n zq2qvfGba;_aI1=Oxc7H5jcn7vhGT8*nvLN`afT%q(|NtN=JD*Mw1e`<}&;5CU2M!%Nv*b^s-?3vT*M#*4Js|2UL zH0J>JMYjotNa_;8EiPIr*4Ez6n{h6N0Trm~#%`RW+fu0G2j&P$5)g+@8PPV1Lr4m% zZ0l=mE-*Za`QsJQyntjm{Xyp&QT{9XytBLtv4|NhVwq**?Hj_a`=XU%F0&uE@+$DW z9_%B85d+;V=sNK-%i5raLw`UKkSnLmtSC!paa;qV+}wV3h}JDH!esAEJfdd2!0ICE z%FRT-SYdZr!W*NQE9SG-{ro(2{AKr89@QiDS-!K#1x4b%vj|Ou#<#Wy8bna?RHMq0ap`6k+a zInnbuT)+;il*7kWec#bZM6!mM&!7(nHFo>OKljBTF7r#1vEdxI<~z3J;|R^jB)=51 zc2h*&QvEEz8xAP|r;D`Jhar?`}Dac)R6{On_#FYLppVZ;Mi81fH=B=uxgv(d4VUXG821D z{X_ws*~klpo2wXGmi*hrlM*NKH2A_hlDz9JFKXZK)2X{wtjPVdBqjl_C650GH`U|Ebh0|CLf#t7$nEs3ZA2t2s|gB~*yFK^wAa9S3LBkC+o1 zH*_Zdgz;y$MuSUb|9Zc6YJ-9rF%DIhtJOM<K+E;=+3^7qx%&)WU~{b$Gtm-p8YZ1m_l#J1;ldIrnX&kf;Ow zAfZ4Hq=0Q59gJgAc{eH(sQYw&@ODrox}(uya0FK4t(;@l|J15`B=n3Y5@I82+DOc? zD1;lpDPmv@@eYbCGB)BbF{xJ@FEZGq3-?XQq}`3K5Iy!gvk}H(uW20d(1CYF1L^vk2C{s}ZxF)SuW8bqX_v?0zswon;( z!tmdVuF*_)P9+I8%W{En6aZr_#{2YaLF zTZjb$5gYkf#98M=>3gI14+lHXN}dL;%>fj^?L57b!Qsvghi6tc=BcUE!IGJ!BzlB- zYG*w#ClP<6#x6*F(GZiPZWu895Iu!C>N}VzNQ!G2SYTtg1%nyl>y4CLMe!IK-U_B+P2~}AEuoWchX8jF zwNQ1Ua+O@W{iq9$oHi4+xvsqpTLN-yX|EIKp5~J~gI_A@3&_AEGrS!hWU@+Y!8_VP z@xS6%$xToa2xfAWftZo|GyMqaq*82gOb5ce=6}haWUXSi-P(o#yNNMLSuo%PGb2^7 zU?8jtqHAoB-5UB5huj*A3-;U1+HIyaH0VRTHdGr7kuVLXK{N|gC3 zoE}0n`s*IMvn3dQN!Cw;;aIV)#pf;|v>`9Big~9N&tg063TM};i*gEpZbe+vIgcQX zV>2I;tIcjd7#P{)%zc205qmYF|H#j0&}VmOWylC7o_QK9QO+a(}q55s6yo#WGyo_wKCw z6ZLok<&c6b%EvE(Y=nB;sgm}Jh!D=$MHsu+oX`uMU0ACvDJdU3H*E&|OjrAM;X91F%#5cj zuH3LzjJmNys<-OIXjSu|=+(<+zUwl$d+^jSc>?n0Xrvg_i^?RJTBy~+HyO@PNeP;C zL512sdN119!xSgL`+Y+q1GdE4*CKPKz$0*vi8pL;6-k{{2Cd2XAfxWh3v^jy+SdyW z{*aSN;P~WfugC#J!tQNYu~-gzh%FgbaGrNr04m>{HU4P%Z{0sPlcJ>Zu+QB{8HmaN z&D;+)FSjXVk9PJ`=XTrAEFp()w>jkC8Ayuk8#4;Li`(~|40S@M*P3c9l-LRqBzSx&7I}HGk5iGxk_=Q@9bW~ z1NxOCbd5aut5=lftL5_U?~LlbEirk5w~CTSYtRo!FqAVUcvZP& z=}O3sYV4F9P~T!_KRwJZQu|S%50^Le1{b7ZES)*yjeA>Bf49R9A@M}Axbyk=@74jA zOxBmwVXq_tTVKBFL^#!bRB5hYsAWALL{TG3I&CBBS49Exn$tIQD579tpw~ibHx&1; z^&lbS2NY3_I1%a$FbfQF4N&eb{LcQzYfxmnTOyW8W?++>$nGK&^wm!NLl`0<_{VTP1TVu*_fqzc%>k$y9nO&MXAf`88q z6G$<%LJlyYM|IF3;^%)tMwlnIp;mx;iIll;!_qt-TvEtP=CDjRGzu$7P5SviR<0#4 zmC%A338eKngjRlzcESg~A9fOIhusIv-z}i)JEt!^YbO}@TMcf#w?;)wqA@{lU_@%K z6e!0CP$kyc)W?}DB(=;%ZS#HlA%^XTpQgbT=ebVW{wCc@E(RT2w0qYOgQl8F{Up|0 z>xyvngd|5_RO)Pi|e5>}8N5ZwVFo8*LX!dO64I~BDk)8QSVD46At zC&<##CbKFDx757k1XE2bkxN#}ck8o_!NS05z!^LMdC5_zyqllncW&+O;<<_(KKAj( z`EhZRhN9F=cq!y#ZbfT=KG5~(t&oq=8nuFyuZBG;+5O(E+yv)7)fXJ(sH+2DcOX4Z zuu?tI$_iy}(z3E`A$+y<;Hs`*zfbM0Rnu;r^{D)bE)7!7wC~v7O_@Tf+B8Y*BB-g| z`dL)kA6ZZybAC1?;A+Upv%EwzCj+l~oIP$YHLPSEV#=UHZD2iRA2&{lhTK^e9k^7Y zSIEL6w2Zf8aApm}F|Cs3cj5(X7*Laol<0sV#HPG>PO_CtotK47zBIKMXg}jaGe)JgMM014*+ZHzF-0#A*sJ47a0_Qo)c?J^yvEdse*rCl@@^O0#;`!s{u01X^a~gR; zzM_*y!LA_=aarOTC=oVjeNw$YPXWDC!azyxSxpyS>JHGoV=R{m*JX|zI+@k}aUpU^ z=W%nL&DCRHdD?yQM~K-xi<#M83kFdbB3d^3LE}dKCVn*MFrwHUA4+M>Cu?!^F4sIe zNQ$>E>L!uFBQR{C`ZxRnmuukx6)MeYq&WtXVY+3T_R8oX{0dwQam^33ZF;ocszic@ zL}|#x%6sa!B(TQE3+O^*GmCr)Hig7$C%{DE75o54O|XIZJgn|?md}b&YaU~xg!@eG z4tiD}xvayVbFYnhgC3voMix6RiYR*QHvz`tqqM7LfnteYdUf5hKm;Ipa4H(23z>o0 zd!O9HOE&Rk4-&oEW%gTU=@AwWJ~0(%8@|Oqw{~Kkl1rwuRMyQCL}+Y(%M9!wFqXij zX1+=_`BgF$Kx?&IaUhJkc!m^TY|+@E&JMB-kv59mRMgmPH_>V><0fdyH5o~p)eP0) zEuUpp+iw5-20=OTsQo92|4+)9SpHYaS^g>ItpAmicmJK-%@jxaTSNKr7>P$kPE$+X zqiShbW2SRJ%BpfpDizi@vOnVwX21CHo~ffdRheBfufWo>pT6$#7sLcP{3y`kS9)LP zJWv#{pex~o{g@xU7&%}Az;V9ri1wx==5R&|2>>DBcLaYh(W$`vumtiz>#ztqD}6pF zp*|}MU){ACYlP)Xv;ZVR32!shYEU~z<8KoCTqC@z$f>(4yG_dt7WnMjC8KY z&L9B9!Ue#AeI%vDrdR#iek@&klH&BZJi{%#+0^mCPuM|;T#!T^D_Yl;w&e_QcMpwrHjQz$x2oTrHAnK@hBPjZ@&RSwGdb@oqfYyl< zcGLIBL*W6J1y*gRrwAjE&~B2HHp=XZs_C4dk5>>nwE1x<98H*M4O2xRTszVbr^qJj zS&zk6h>YO9u`pK{Ll6wmsx(-c22ndas;smTdP;iBE>6JNfha#LW_R`<&Wi^E*m~;n71Mk|}b(eso>TX4o9iDm+`_t6zXC)m? zODY)@(Qr1*SdNY+Y$-PYX^Ex>qb=*kg<;dr^5vSfOIJJF$a}gJfzRq{`1JL+o0S7h zti#bfsRleVLe{Tt^w$-Eecm=Lcp`)ZLT#=ky~S*z8rX9lcsGB0>-30N2EssAsEx*3 zwjjws3G~GbwJ;5M5@&P@8mzF|tdJ{9_zHwtjeVhMtCb-*)AfO9egJe1xCB5&iJZIw ze0fP&WkEod%$?G=9Ih2PC7^!}j$Dc?ibqLW8G}(oICqIb!7|E$Z3O{eG z&Dkh!%82mi*l#L@^b~nx5#?#d0UNy^x}8=qOdRnh(LCH5d&EHuwIl^73aO8{Vc8Mz z;Yc$L*wv!WN=s8}!dtX4&N4~LI-n}?^7vH6oFI9bK`FmWt>3?h&GE3Cr>(NRrwX{~ z5meRNmsGlA$iqgi{cR4E-#@3B*dBJ}&(qk`{ zU0Oz^fu3;}z6%UnSIZ?M1TUMfB6P0^H<5{=&a0v(XHXg7Z5XK0Cw|BR-^{^At3=Ap z$~d;mORC%el^XCm+sCOSVr~KNP7m99xk}ISYQAy}7sXtkJRJt!=L28ui$K6@i|{Ms z-VDjY&p`6$de}VONKep}U!F)_L=-nXu;}T!hcx`Iux7O!9r5UI+(u&|XbdbSIqw~N z*I9_9u#>C#tyTS#dI~%FDdXb^ehvB9)3ip!LT`9!3f88Jj|7i{3T~H=Vz~ZKc(_mswl!G=sbft=d&!UWk-HH$LVeW(LyiGw!3ywC>&)`*#pbt#1zX!D5`fO0*j81)0P{(TsvfCPb@tc<*O$ z#(KBe@(D%J#W{EdCJB5VB8r!izHG`6s-H&9i7U}}1cl>QPrz0_>6(qapz&Zab-*fTHyG~f-Mthb{C5#Sil*8V*Ugj@R*@58Vpn`W>*tx;Fz zi1;HGWv+~-1VQW$@dPzIkP-Y#Yf&UK55(=RN5Ti~#(mq5EWlj;yb-F#& zj==vc!a2g#LmOj_Lb=iZX$_k zjdVRX3w4HN^MVhnCsymmf{msyftFavnN@U2nH9@`wD4M!a6RJofHv3^Nt;B3QacTz zU$G9wI^IB3oQb4|hiw%AaTBNxhXxejP)I0q1$2YOo3(HHk?kfECK*;jjT0#eLSBtQK znv2Flc#ZsHOTGs{NiZEd@Di*Bdk>o7x>RGS!3L4pTG=j^HqN*}- z6U9}8Wtd9mD^2_)`0H={QI317A3VFb>M|T>&w_W+XQNOY`=(N85^+Nm5S@{!oh%zy zA48jOFF06jX3?&is=A+gnp0*~-FjLI~ z!*1dCSk|6p1i#AuEB#nADo(uAL|TS>MuNW)lwcDyNfzThoXZuRI|3AXgAUsp{)%f3 z>~lqmLytW%wYQ1Wu>o(3Xspp;BjaHbHf8{uiiv{nPk5@-XUK>c=M5cx_z~OSEc3)x zlgJ8-x{$Nu*-fpTnhN-9Qeh2LzF%~oRARLRxlQ*^LD9+gP&>^B|oaZSPeWs-c>cKEQnQ0cYzZa#Khwm2>>R-UpOQK2Kkc0Dzq0dT zb*;bGqtSe3YuOi5L$-(2d&tO5%s?EpN{IZ2sNUnSV#Aa7hU?3(lTLPPNq3KMz&2(o zM{bkq$!7rVY*PV?8=eXX+iK_#H*wF>+rh^IhN%x)Hsq z$??6hkJiDlWc;+lD4=%)cY!;0zryEnt}7At_iky#W0AAeZNi>W128k+LC*&t55SlP zRBfj$!TF%kk1Bh#{zvOy20FAOC&!O#FQaJ+PzzwlL>w%UL??&)YJ;45Q*zAXCTtGI z9>Sz)B;K^iZG$+gvw+S^6HGxi$Is~CYpjat?02W%jI1X1YAjJ(X_p#N^=LF`}!TsQW=+fBf7B8PV1|Bciyb2!FhS? z3!!7-O**k_nL5+(sW~z=RVR~_oJwoAp$W10Dn?At%$eJANpkz7<7Awa-@-8TrIt-W zstKctG0lFL2CE?Dau?>)bcVPvM^bfCQx<|J5f8BYD^X6LP4e(Xl`=|B8oJ0Yk1e7b z1zF(iyD$&mOOs?%!z9UZnncsg~ted8|XTyQB5p`sq_mNnnB2oqD>l8mV=l{bnJOD ziDjSw$M8aS_fs?3C)by4cAdWIe&2%ozJa51I^=xyoo6#R+R@4GYBW)r;M-pIAsCLk zDN!+1(1quruYcPR(HdF1O|tqABmuBpVO6Tb{421}5&q$V7U=9W11ZLN)pR`xD?az*A24hfw=DHM4(9dTlKX zg9cwSb4o*7!ET#1jj{POO+DwpP2iV%c$I(H`w#!mIbXm?w_3P;fPR_abhdg}4A$(p z!m!__ryig+%6gkUVlSpUjP5X}MP``}s`(OBiHpGFOFmn~my%-G!g=A~dNmwkhGA4Y zMW{ibS6|f^Z?q8~sAIl-aX9*>bHFi-gFA47b*J3s#K^M&;{sJpsd_guvCUPcf_R?1m^I`Pn*XzE3gVU)~Pc8lE7mm5VpTK-i(t zOQeJ)ihkCnF$zcewnc z>yNeH3HVHs!q_a&+{GAepzdGuBAdb;RJ}D?xbj)!YhLiEnaU<)X#UB$TJ;Vh3Wji2 zMMmN9){;kbP0@-!K$*vj5xG1G+EmBh>O6Uapu6e;{oB0wYYzPTuFmxzMGVK^*9wk* zv{tly&5I%lRKMTq*&N0-LYLq0+N8v@8>nle+Ixzl24=88H4VFjs9=awLaqYMv;^Qt6yn3|>-m5fH1!6UeFE3Y^*}sE<%=lA zMS&^&L7J#cU?Av5qd5`TT89N;xDh52e62`DJx+iEK>6BTzcEryNnI-hO6kR5_{ugu z_reMZ;H&U>VRG2s30Xd6kgkX~7<)8%m)+Sh-%KWH`N4GBI#nzaRpQMC@e2?Q z8(+)S?RaO1L5&MsWZ+!ASUVi*fgx;{T!HtvzpQM9p5gUN=T12iPl_#?Hu-}4i$rtQ zY$1NJwuBMUY
I)&h&%fMT#lA2!16tK&04~yOWAo+B>4Y}q;u)@w+Mc(6j`(AEK zWa}3oJm*FY2ubynXS$eFJ9fdaUMuJ)lvK0yZfs}$GdZ-CE8#n!r4DC2nIS7+W0bKD zt65;XUvCp+qn)tC5=%*Fs!LU^bRZqD-lJP7DpVJ@C{;mqfUbxF4nc{Lbr8$!UNChY zUkr`r_f@<4kYRS02BLORE4G`~e7SV`{^yzYegXTi?5W*^y?j}L3X-$gH-ez zV$nGp7dL+lUY*?6UpGHh&XB4c*ybRKmK{cLTlU-HOT;cB;F3+%QiQrqA!!~Mm{=^^ zx+5Cwl<%UF0#(j6epwBrGL2xojLFC6e~h&0=y#^7CFkwHwdzz zYOw!;4U#VA86&pQXPgP53Qa{^6nsA7Z|;sRO% zlI2l?``+myn+|6lwChJ2Yc~Kk@OGiFAmj9Bb}+o0I+0rqPPLV_3dCr|7{eH{C23_@ zg-)D32ak1ok{C|6pH-<&gA|LtouCbgo2X-?R63rUeQ6$s1YgRw4u$&(o0o%XeS0*> z?vIc_NypmHo+^3qX9gWzC@`LltJq1oWqURgIKN;bqrja#Jj&SIM~2I?1%uO%3psCW z_f!9>Ve4z(Sj|B9RI{n3H7!16Tm(!-R|R-U^(ug#|y?-&w?$;X)0y29VLa^8rf-4*1tIriDpw?YsSa zgRgV8V9rRGO0jUeI}1zKo-4zf?rU* zLuc5bj!~48!`F@zb~ILQGl{KqZIddx#xuTsW?@rR&d6*voro$@Tdx`>g6BXh+=#1| zj}dCJE72c?uD$v@^8SaZvoLb~-yNOf?@XQZA2IbMb#42iFPqO7^0s*_Wibv;nQ){! z6=+t;?YT;*(`bHQje$Y~XV@uze&l1(f$dqEE~QDObj$cN)iLu-{!1tkit?@OEqA(P zArVT5oXR1%H}FoE7zF5W#RWbcKFDh}8BLT!)xivsboLM%R#)vS0mEv%QpnZeNC{%+ z(G<1+^w|ZTMaMBYo*=uIv_OodAIsrblvTcQGne6Z1^F}*E&Yb9=P+dOi6Yv!-9&!d zIipyQ^xM{>4|M1d#b)s~jZTy0UQ;ubhq<>Rr)2jX+V|m%2#ZXn8)Ea0D=|q#Io{w=@saTA^@tXhE~nT0{V zP6y<`_B43$D^hQlyddt~xWwK>U{x+~EwH?2uEeiP<7nx1>UdAPLg!q^)-`X9Res*F z46-$v?}CDXDXg4zOWm47@&3Jt#m9wx9@1g07l7&OtQcpOWa^inY5QCWeJrdfLSKL_ zB|}ZB$L$O4tkNl?xi2WlyrFdI2Gz(Ify4!6Y{ShVq>eBnW*(FpCyM?R`h*h>YQWjq z>r{79^=j?y0v^qp*+@HRgprEoSZjX1CM|4_%#?BNTyz3<1#qMo%hSl}f3|lh%ucBV zhWuS=6V~JiG0zCI-)HLAr{-r+2>iG*imctX!j+wnEQ{zs;g0hgA)0x4eRkAj*J~}Z z=05h}aE4a0V8+`Otfah9>YIpUqs3lmgP&o@Cs;3JvVT$5x>@fbZD;hw&^;?jUx|Yn zLv{BuUoeT6QmvDO>X{itb)K)ELz<@}<%W5$qfPtvyci9QfbIE4+?^1^TV|IATMz0v+k1UbKv>YAO1u0u=^f z^0pTh<#L@MYyMq~MK-@`<#^VTaQnV=PQl1XqpMWKbZ8j~>vzbNbu#QkII9#vUIPz) zMB+jluPT(mB-b;b_(y$UR@Hu<0BYPi$i=w2D58ep*H3eH(;GQ+`~5{w ziF*w-x|xfpg!ocbXO0^7Lc~AO@(_l<-#uLkGVQ1yqrQip(|zmQhbA8`^KFY4^aq(p zRrKYKJB`w{?GZ+EjjtZ{i4BRP=p0w^9~4Qx&zcbE^S%(yGIHxY z_0~{qpsp-l>&v%9@HLH2p}051JWcC83mf@Lz0uTJFWMk`$KSQ00Q%l3o2)DSa9gUzwJUU=ygA$KUuf-!$U99C zh1+>$xT2pKJwyBF{h>hH?+1c50AZ$3I_m0hnb2+cX$|q}0oweAqU9=71FUe$YP3pT z@^{L#y$Xd{Y1I$SHHN;4AHaQ!`1OASv%f&G%L%{LVRol!ia;>D>g9duwAJ@D(1{aQA z!5vY=V|_nen|5bw$g>cX9rVwYO$Ip=pizcsI3Gtu)*vJX$WsMy^H4#g>2h${LoiWg zA?({m@`@dscHo_?Je^$5Plv)`n8FBRat^{>WQmNIlaa$Q3cH=5XaYYe^b>aS>(ICB z?KjE?kO(!z1Pv3G;W)#6mJEbT@>0hr@0bi`lQKbTzW6KL zm25t9snh6rlXw(=yuDqSS1OsAA=MfxQA}};^^>juQr%9W<_8R!XBf>_ zL$~o@Hh^25`2xkDlg(Llh$R1w*k3}uawXlT?!AqA7 z&`7_xT0?AyA3>-e_RzIKmVsDwo+Je9sXbSUf){TNXWftWMiOG5v5gqYO=i0vPyC$R!wuTwk5+lIQ-BJ^Xd`_f za}Ewz?YYgO?m+=DTye*6Vc3Z*&C6BRvoAyWPS36g#?YUB#I(7u&4Vz7MU5`>yw98D zy758^Z^P&NuNaEhlna*hfxH@?k=2Q6@VuBD$3Z^0tCX-&qja*8q;AxB1?F6tYLe6l zt2$&KP6E{jv^A_jq)w&Rh$@v}yWi%ew{oEurt1UOTJ=&*vXQfpLRN>L`q#_rleecaGl2S83%qK7zy`7M;fl zB44irt8@-eF@4hWpvd8BCoZ(s28kiX@8xeU`U65{`@^U)D6tqA#N9p>A~MUiiF!~n zF{~$?d+~JVdwOuEiJOl;T5e8thqA)om9Fuyq&$_{_{(kE9wfIi4&7lKQy*6UOsPV2 zxO{9!({B8BELYn7s8CA`TWWA4jq4oI3VZE!t|6}abgWPPaH%)-iO;jy$X;; zXBtOfsxg=Lcm{F?_&lySTs><*-yE>Wu3%lte7O;gn$K<9@AwgeOVTo_p)xatZAW1` zGnz13oN32pB6$}*J&Rqk?qgpu5IDn1|BlH2rI#!$|3@!5|4uKt{t>!1-#E z>xo8!7?|o)z1!P+*T=Sx9*xu^{?mOxJrEVBe7lRUs|ATQtbtN8t016TlrXSqGpIH) zsnVJdr?7AWd)3?UTX*`Q&d14WT2rpJ^Xp;7dz-?l5?p<{_|0@W2h8hTNccu}54C-Y z|AGNV2a(1DjyHVr?UoUux%u@F9CLjzpDgA)sGeKnTVt}BUD6Uid4gFF$}phMo9!oL zVLlPzKH?$fsl6EZ(~WS-5aCk8!-*fRBBqmsiz2Z|g&H(UyB576mUkP~Hf@??wK@mQ zguCIf$S+)mE>W88i+t0x-Iv^bcP??P6C`jPUx7Z#X{~d3PeuUuGW)w{1OL?V%_<`v zgETi7`MN=nDf<_x=yN%p=23lCjPuhL9zEgF|AsxH3bm}k~5hKrH# z>ZrOEmsn3`Ofx%*s2tzy+41d$?j#oYIolBMhFrf}-mvIUt8h;ncijbD#8fr2KW%xx zc&cU|%tChCo_l-4PHu~u+N+~=XLisd?<4|aY}?(Dvy^nY)cH7=(-UX67)4JM>wz0x zGV&iFIidap6VF(5Wbu~{H8$f{vEaX==A0c**_=-1x|llXGC8-%Vp8Fuwwd>jnYd6iY&Gu*}piRsp-Fc4O2gAu5R0+$- zh9|N@z)f9^0A23fK{*M*B0JobAwLWk2Wu=sk_AC{xWuy&i>1$8xBfk0Wab~R;@{Wa z(Zl8Y=7UjGU2f^D{X~i=8w4SQEW4Bv83`@J#-^C+lAsFpaL>Uu5*kE?$;BN$rUW-} zMMYlO5<+Yw(UVE}YdFSb0acNGE{ym$heDffJCwwc^uHt+A>|!%%KwpI=yvcxM>)|? zX!-r|iIsyKtI0)5jp(da7tB`Tj6qZ~S&LI6>7=qcVj=d^a;S_7iBh(Nns%yZLmOgF zNeBOCPDPIczDK~&Z8L7pK!0QnQF74vlem%w&HMQIu)1-g&^dDzbVjXxx1I#Bql4NC zh$sW|->Y(e+864iZo~F*AQAA{1Qyt!`GMk3Uk~_W)t$As`8hHC71!yVE?*6`N!B2~ z;KD*}t#{7NP88tH0kwISu&h__gLMcU@bHX~ymI|LNl)cc8-h--ek+C$YMyYNYw_3I zus|AYBMvqj8*RPoilNv+F@jYZVcgST#dlF%M2vfjXi+47YL^9@QFJ)v^`mdvxW+Oq zl`(rJ%{@5mnu|{AYT*HwTcB}6 zX>{6M6aZNu-jDLzvpz5l4z4eF-R6IbPzX5W6vwbFDCmfRd!e z5}+XOmr_8hwTGHGDc^(*eOmafKuH?^=^N+@jwgEr}vpcpX@W5LAcw^?RO5YL!RZPq5;4S+@1PDV;*>-$Tl3d`$@ zV6D}P{twGrj@!*GPlp*V%d3rDNeRF&FJ1p_TD_7s-RRZD3!dp_Hg{1&MPyUl$Nkvn zYcm37`>i-E92=hE0RDKpE?wwL(oqtpw5_O1`HZvt0Wuvj%xk`TE6a2rzgYBJdMp4y z<+Nv>s3r1>GvfnDGNt5kMTGC5p7KS3zmRf0#;=6h?XJQ}?808*4BIP_oYcccRt5U1 zEW)hM@fcqcLD$A_&{y$YWdt)DE96Ug9(GZ50Yv~-F1aI_AR^sjVxeeXqLo!H#r=hB zv=bDmyGH$JuwSxZO=?3MnTB!%X(rKgW;1j)Gqb4_%P2~17kE)K(8a{97pjEnHlRwu zw3&kOw{&8fLaR*F%g_OXQwBzbW){um)t$8%^1y^C?htBJS51ZhQkbF;AQ6k;NN?K#BnkF@RWmP~ZAf-(J#|he{`1f5Vff{Ke&Tq;iz{#rM*{auY zG3xP>VaiEod#fF1I9VdmKjRbSbCZEgEAkM(&G2ly*__=+#&@}|4FWTK z?_D>7P2)d{y^`V;!N%3+Rqr`ukJ)N_N#WBQb9G6P%jY~Z!DGQcdX|@Wgrt8>Ol>Q7 z$4C&sO03u@$f>hKhuI8^G?KRH{_eZAOa^X|eU?`V7ZTsMHf%>%P~HKejup2dWcwPhBw@3$OV5%ut$r?huD?#Ao& zwZUy_lMB0<6z{a_z!H1z5UM}je1|toehy^w1xZfxsK8DWmtzrCH^o!)(ir(=1~nO6 zpG#G9{4azV>!s3&ACXF(TjH+;(f1!MXAhg=Y`8!1Yhi5YWH;v)<@gEV* zDGgiaA74qn({-z37(CAA#5Z!z9atPUF1)T6s0$DL9%90RZtVsVz#JF70#Lo*7>CK_ zYRQv1#b)SdNG@vCd>}}T1mDc>Po_g*q{B6d37`7>%m>_o&4Dz0+nqh^SrUN5A`&Vm z4CJv8g~PpPRgkE%pp)pwza$5I80+;N_`w03xzfBG9)yM|;EAt-o2*C1{<{6ecqNal zayzH?76r=(Z?~Ht>ZABY#|8+MI%E(4E508Kgayx6Kp!cY4tcxsNq->KX9p&+Gn(ox z8j2M{enXyPzJXqw&LP0@J-GOxSQ8Iu&_iu8(#Y#%YO~9SsWI36xI>#7?E|xI$Z3<}fYyIbAK`SeOzNv)>m+Xr27YG7jj0t#I-5%`*lHREyPEjqsq?JS z9pH5EQ}F1O*ghwk=*^tn75I7TdmP^};C{xH(Od^XAnDJ^rB8fyJo)P&NFb+~=mA9_ z8|ifFm<6-7k$h0A+i}J$z*NB|7$|86;wF2MXpWdnkzeqEg1rrnggM@*^ER=~^oj0{ z*axzxEMX`O<4T-|_BblVt-v>O=rsE$YXOy{5{2AjfiZVgkb1tRu4J;*it4ciH{4r7 zk|ip@g~9%a=Lcu5+4g>S@@%X@*oS9n-bIM~nldl;W(_PeC-uNq0QZgai&!+{p|$2% zD8|V}g`VyRopBSQCGwY%zYGOjwzQ`>5aZ!yhvwPr{sMnyE6aAy6bTe}v%8~#b6I}; z^$3M!ub{t{h28mZcU^L#eQ)`&RZ-UKC?-u?y(4qfc_3SP%&*(h)|JS*l?VO8bv2D+ zomaae%ytM}8;8|?My=LtqbYO-L=A}-N`e(ld4SxSA59qztvIllFvGrw3Ks*?Sm?I} zeDW;#@Q6t=TP2fegl{RFrpNVuXmmD7ZQ$fZ;|;Q46Y4)Us@0i=R``AGJu7M^ zKeKE*7OnqOmEQev-M92wXaV^2+7+$40W47$O*0l)2d$)5ehi;GJO1i#WgfI@ElO_^ zH6__DzSYw1)a5?3k!o8y+qUVf-G^z@(QS_gn4&9-;)MomGQoL5FoVZW8Dj&R)jqWP zhff_AI967RESrneZ1=dxiVX_+kG4%I&uXjZEOl+?6!^}*h?Ui<^5|J#hRmGJU#aRa zujh2Uz_7Gk7w$ZsZS@WepH*KU)K+Pj?MHf4mv7^y?o zd7-$S&R^-tdp&QhQ%TgpxVJgBpLrg>Y4S~AYZmihvTo(YVt3sC#uAwX?7mberqj=f(Zo)vSoYo290y>=pPp2AvfnqqI9=lX)b`5x3i;C*X;J$7R`nYTG7 z!!qcqqKQ%xv+RN7HO&wfx%Dbj8Is2ADvOaAseazz+0RVvOng>Ki6d1~Ju~2ci$9A0 zH&pvKTK)T=`QH#WCdR*0FDAx+#Jx&1wEwk0f1NZZwec)v+cy?BQnObrYhIGpO%_s# ziEM`9wPC5!+n*o3!+t_h2%VV;pVxY>3&IhEkNs109o)yfabk>!&yc)ig zf4n_I`63F$)W-OCgy>)q8taj@zbN=Qdky2?7MbIQ953iEEx8P?zV1F#%rx8Zwb+5*_lB_5m~7OTdi&yA<-58kDB zt{gB6U++(sb^JJ17G|1anRM+>#~)uU(8L)WL)fSLn>Ops2F*U&xUg`Ho$n21p;3O= z&@{>j#L4)(EC)c+svjA(uV?Pg!8$|~8KHoH&!o;_arT8nV{h8nP)~ll zcxNuE57OP*nlhiTl=b!Rb;m;}YiE_S3{1%1-Z4L0x&fWQJ7gLkA8~CBMC&4g*eB)l zc8o|y@WEUwJtN4@p^C~H(5}_id)y;|H$ZcECeFdyItJraV(_HN1?dxER-&U56&#C>LRv~Q2ORV z%TM*~w-b(?;OsYYD6p97F>Y8#U~rKIm9jw<4q924%1LQ%hf!qB07pARFp1eu!GGnr z6_qDg%BGp<&4mMT*wnh)<1wDQ(n(TlcIge0D;V~zW1uCjkkWw$k>JJ)BGXvfswysc zs$S(gzT#Gng1{C!F@?*Oav>ywAF+Htcz<a+rYaqBy=GInLHfuFug4=DRG)tQ=wfrdQY4$`Ot8trlTaQjO|Cf zp1Io8N`DC?fAj|1@{pFY{RfRXt$9O(n;Ba( zWxvYK;-5|5D$=_Oy3rA_+$?l_|3V$1}w6a4T9G?L_T=i7dPK?nfh3q4_1X{FPw(htXRBwAOh{ zt@o^xla6LS06#r^FM*GqqWy7tBC7ghyRRDZ)7?Ps?t-6b#Z}Ji6}Y@OQmgRRcgF*% zb?yOf%J}sFcXq(Z05&w|HLI4Qy@%SmE2X?8k`D*_JO~yLS&@{G#Wf4wl^>n?kmLYI zVfLLE!9@?BTBfPT@e_CnXtwu%OoRWB-2b2Zn2GU!uw15p#B%@DSF!$Y*W00V1S)QC zu=GOIH;UM}F4RqH`R|RmU5NUzIqRjYpC4u`m{;pzMeebul!Rt^=5A(R{~Mf%Byi@3 zZIAiH@>)AgbTio?+XsWzFD+=$z9Z|_5Euv{zGKNo8y7Z*BS@8eVYZAg(z8-vEA@Gq zB_Q)PE6{||@ZY4liL9aFH}54p%?$jyfVMob>8Zid52N^3is@f;r3zO;EQO>2$;K~R z&#CeS$hCI0mxdDGufX^{5($zHmfR);e)sdbxo+KePdfW{HUNAaQ#qz!xFB}8o$Fpl(&e^ey zL_+sDr77$}X+g03&V^?9jdEy|;Y7WPu^NX_+;WT_HeV@_7c$*33k@CBBwn(O9M$`e zk&v_=&tqQpz_&c!T6B7{)ch04-g@xRD5|ljLR;u6FPrZ&zjB39&0SGm%EOk-XHb`} z!)eN~Hc&SDU4l7x>+KrfbAEFtKXhQP9o#h6Q0{w8f5ScUn3}bNsM}yBhL|eEzp8*4{=So2;5MO5~q|w5zL5esReUmkgD`Kf!D$n9-KS)@wk+_+ z;WWX-$oqSH%*bJfD!c8Ah`^@j9$h3(v|~=IaWk=`R7||u;F2#aF;OM`x$JoYlP^$YW$_-EPLuDpmn)3V`(N6jW(09 zc{lU8=$zM(kS%y1;~tr&X5nqs@&sMHI`I;|gh# zDzb14vYtHNBTItzg}u>A`iY7CLSwGoe<$eIh{Ao~;?=0Yb+o^6%JB)in^0LHraZVix8AJX z<-K2&G1b;BkY-%?e!TCX>G58hIS*sFACHpW^`NwCl+-n)ubw(=oB_2-voL6vAd39K zye{lpC^^cfyTPX4r9F2 zpCL{;_rtg5HcKh$yZYP;h1I(3utY*!EoS1*(SzhVFv^R#qk)aNy8zXKU6}vtN)}loNVM&%UbCQ$Q+aDzQzKaI)}tT8LzEgj^fPaZ(`@Tf7)!U-UGD9Zh0;EDI zNCf!$2FC=O$WEX4}ia5{jYU^mGwU|S*HJ0JNHj}=d{1h9RFGeEMAn{ z&4k;rez*Ww1(fm`{p;--pR34Wn5N#JTr2H+*ivK7T)?gS^?h zVuGt;(qZMz2U6(H%9n%f0AXiB|J&O6u<*oI)Y^9`?rar1y zpR3VbhoP<_Vo@VNOx@I79DJ`|A5G7ZK}!E5oi0uXb;Q7K%5KMkH%n-u3y;BOK}&^Y zXAfl3ZOkn_AhZ`ghp@K#?G6H0GdL2;{MY$cCNhSOp?R=D3O50)J-qb{3EoU-ZZapA zla*hcc$kI07(0LXF7K8HG4^3fc}(u~j)_?&SQRRsm;;JoiZ-5XkL*=x)0HwOCVWkj zB-aQ(0UbDpyQydQVuwC<-7!h=GdlZy^ zH!0+bV3eo$_UjnT6d}58jLv}o3GAEIi!DhuuS=szdq*!xYN&K5%}%(9zUkZ;%Lp?@ z>D1tlKGG>oDFuYq4$f632Q+K#{SEB}YGn>2^E{KXPyq{@zHAvP`lpr=lsyN=%t0G3 zI^y`9Ngjx>nPPfzOkNkSK9aRe5yF~5p9_kp(X^?JEm#xD3Dn=r8Lii<2>|3(m?R5} zFk+ly*ZG**a!GClRw$cWd+Z^wf$zs(sm@eN@I}UzLhH0KkcAaj%o4wr818j+RaIaI z3aDKISanb!K*ydyN3j)BXf%uHQY*^~&F-K!A3~-#HA(U-(xc`}g459*i6>I-zb~68 zs^6hXlwO6S4wz}GY^1shpJSU-+FhZtsS?)|X1PbvzHhf?vE`6Ri)Mv9Htj3UrbLB8 zJ90*!MGL#-JFs?8ws>maP?(^E>PRbkYpuwXmiEws{Kg7Aq@TX9f`;Q`qH|`n*?8{2 zg#NILwQY*91I^=metAN}USIH>lj-*gZ=%+2OANB7&bqB=ow5W~$Ic!e;xlWv)MSaa zb~-(O8p6+7`DG`+x&%R@oE;Y0Di_WlG{Xl0i1+(W>4u5cNrPB}%^fF9;DhoN7~k$G za;aRB8L#OKyJ>+je;GC}f)ieAU;lzx5b(aMy!N3B4qIzUcaR(AYvz9KFpr><;<`yrRCWy*C0fa{~YM)r7 zxM#1B&G~~)Cw1RXHMw&NW|S$=ov9(R+D!h6=q~7x|=N3*5ykQwC)V%&IL#Q{V`)^qm=0M z*_x0dkUB9l9LH;vM9)}eYsUmO=(h{Xh}N2{TaA&Q-%^XVG9oz595iGLSz@Lqx>sa8 zzHF=%ruV&A8RM(Wj3Sugsh`W;^22xHUWjm;A=wHS%o3YhJ5b!PQdUqY>n5yNWA;o+ z*s<#jE?kJ^?ZxfQLEC8|l2vXhU%mc26F`=u# zLzwnop5Fd&L#io0%&uk^aV4oG(!35d#TOjc<-n&n`0Om#wF+*N+3#!@p1Fq>L%o#I{G3sf{s3zBQ7{RC1 zmz|su6g;po?Q9AOZ(dvM@vh{q#ZZo)XK|G$UXHNZZ_H5+Tbi6mdsQQ=q4CI{B@;eG zlqFbG+9~W4s~veV9&ekZj*vZ6cc(l?-Fu`Ai(Edmu86r%LdYZYI|sil$1KrUn6ZJv z_ca2FC?!SFZTQA;TEI8xBA4 z3BH2AjDWQ1H&Zsw2|z!y%T}39XU7ox94uywgAvH$lA>69l#%}o{YSm*pbA|Z!hv3X_GU7d zXqvAbCcC#MKN!(0Y2aC=-ASb}r}p=HR1jc^_SDz)_0IjuR+<9G#~y=BY+BeOH~sP) zO+lw1eMwYs&Kc25`*V0a*kY2BZ<0qPK))1w-3AM&FfXj2<|xOz48d86t!3s>`JI>9 zp7Y`p(MlXO5CoWqwJyHAZRyx5UnwrLW#D znqM^u?ycc5#AMkF;Mr|V`DQ(_POKA|E*LDhv`9n2UaVq3qt}y#%(Jk!hqL+Z{ob{% zL4+0@;oQqDCQ>tt7@p^+(M*XWb=*CHb31By~#~9pXvYv zI(MP3)WoVqQqQJ8=YD6dt_P`JUD=o%Df7Y3)EeFajBV|$P*pdv%XP*!NI=96aNDkV zl2rRkw#DJ`{qYzw@=H{ZT1EY|fevp4!>zKE0#2h_bt1R)loso_uyMU=a5YR~hA}?% z#_*k9N2mFu^VFOty-$SHT$`{1r<_mX>WFH9r$sO9JMehy8u;A0A8PG~`!0|4WR%-F zG|(qh8y;%6{{VDe;~rM{nMsi$2op^um5&mk0MXZWY6Fm%{K}tTTOV3Ya5e|Hh!(VcI~hA~0~#EC57k>sr+qrk1Eu0F9a66r z5cjwQ<*ivY!R&W&w-ONda7gpGY9~&nZ59;aYL^G8;YYD8ls+?mSXtn(c+1Hz>G)Q4 z8|Ds1I+L5ts802ev7Y_7#UVh1xcvJB_;2kWE9-x(*i8SU_mAnH75}wp*vjw!RdQ;0 zfgz~%eS4w4jiN!p@z@}pPVv^YoA_W!1U z&eB(3^)t;O=9dMJOj!I#*oM|02{VwEyhQS+qpxbviJyS31n@mRa)sYmmPWGkl>TS# z`wl2q_upyr#A&kdF{9YHD zB?hg=O?8UzAwoU0$2jM)xpqld^Y;N8M4%+qfS|g$7Zjuc;+1 zO_feeHqn^Bcsr%kNR3A2p(fB>%5tYl5tIr1-(g-k z+!r7|_b&1Ew?887doE$DWIH>r8NO{p*fCV7W0}fbOKrIy!nG&>oOWxcPMD3Rwtmg@ z=U5?cF$1PhT&(eDH)}q|*2RL}#bzF|@UBg5cIY8zt(2j&>98u))#*0Ty zSkUr%$1NMzm&ACW6NC+~A%5(gBBwvQI38jRhwPX2-0IHR!gW(;ooeP5c+ZY#=hkRt z1;a`USG_Pq?;9NoIdWwU!q$Y{xR*lk`AY#4;ehaBf{@n$_pz%Eg5s3+>kB^mLmYnp z!%w{RJRazZyup%H~JK^gz z4*0(g0m%5rc)GNT{!Jq_~xB}z}nfebGou=Tt>LkwzXPOK)r zxp&8gd7(i|wJnpkCy4rZ3bK5~EF|b15bNe|imhz7FCthk`IZE;zkmHG-NgqK!YKW$ z0h^frxCsCBfKC7Iy!DH}=ob8ywEqmRO90T(lRN$35CdP9xyqbIWy+?kGu&EilX%XY z_0FF~Qo^=KOaf54RpVg3EFQGgFK5nOX)}}dod0HFF4M9n#;TOoGqDa1xky-o1!yL@ zkbq|QUM`PrPBC@Wa0O0qI`7$HmFiDhO)TFgnQL5nEBdNN<|v4Z6jQI9GBfW|X~SFc z2yFe4cLQDHxxdu0!4aE&WY%aP3GeGhxTU9_k#qA-Xd5>xC7y9{W2P<{VpdjkWilf=b2d<{5bZ}Pq$t-+P#%*@f z=|1@@wRD?8mY|ZTGX#?v`%`?p8lsW;_#z~u-%h`sPDPbaVaj6e-1N&BFTK07Ra&v zZL}?3)lO2x^VEClb7lZ9coNS-(+x{RE@>0^pa#n$=%qR zLobzgb8z$=$IGWZVdw7|2R)OwV$rsSxZx^+NN$3{&7l5!Spe@+=#0dgx|z9Lvp^A5 zY%wV!KU z%?_#5>0mzDg=$p0){Wk>qwDaSaIspeTB*Lb=f|q#?jp$k(nKJ8w&$wTC4tenJf-Jg z?4(%6Y&9%6YoZ0h`g#5@sv z*xm8=j99N#ePM?LpRl+|jP@q{nliLbpB_}0lV%PWVo>YrJk96$(9BtW;Oif+_xi^- z_C{L*GU&_KhGGxK1PD7r?_2v0QeiQ`JCl}pz=xs`A$=CZ8o4WHo}_$*tfU&XqhlR$ z;mZl)CPFUusn$ytT{rX~Pf``Wg5cW)N5N3<7ncb0e0 z%o~vtwfUzLfB5ccbf1OT>3SeUquw%HIZkUWKv7B&$gHt(kA6L-Z5^S7)y`q@S2ZCz z4Xh9b)`HipZe3{{^G?`7wo{s=@+QyRYTYb1MOsz`zDx)p(qjkGA9|O#rF~Yr)}J=( z75Jo^lxd@J9NF5LwOi&NJf5kM!+=*kaV-A- zF?NsLm9A;qu#<{y+qP}1V%xS=u~D&Y+fK!{ZQFX%cfW719;4TXHRk*U^TU3f^Sq8@ z-^7xnCzNU+G!&VfCE{TU%otY>yP1R6oKQ1)g_u$ZkLX#8(sHDTAVW!WE&PAtBnX#P zNrpqPDh0v(67;SiB2LFcSd7inGKeylQfe?NWQw@n7G-{DU06 zv;)_($^hw#-+m7BYGbQoPFr+Ws78r%03s<L}$Ah~=Jn zk}~J|Ob%lcdmCimkF?Am$K+|+vT)Bx50{#w>#QhnY{!Sg=?69sKXfJ-mRjHMGh~Vb zCzM?xQH4k8B>Lm$^=Lo)N>EAdzSvbd%q(S_y`Fwvs~-10n*ZT`f}Y!N$*RJP>+9F(0Im8! zqW@igSW0=zJJB_hY=l%iL-h)BPGlo|ksil69cb?TU7azFzc~ND3I7+=$jtE970=&D zjST;cYP?YUHf}}Xy^mC>Zw)XKkF__6Ib{Gh;=q5CgygO9f~!sMOX?H-hLjk%*>ZK2 z2yZT=W;+)0o24g?|9&q#IX;Q|iuH@}N9>1D_N7i+?W-P^6uehXx8_NDAUl8&-X(6N z6(r^_Kj_>|Rlm+$eqawP5TWE;lVkpqv9jFbo=qv7X&>!x)7A^467Jj`7Dsjvy!v16 zZ4t2va%YzXCN181oW2{r01oT7iOWsR{S&=22F-U? z^9)u)*VS*>V7>-D3tITu9*B=KBAfX-Ud1b(AX?5AN@g?SU*A6@RMp^)m~vioDC%L{ zWcF=@$0a{x#51<*pY1`msENnT+rb~-?0Cm=3i)qbO^-aQC9%U0ZLRBPjBAn|M3N7} zgdr3)>qHY^=zHVx(}BpW0R-07Q-n{5GeH*?&=xIB#kOs<;g?m{m%OB8iY2 z%6ed=aKKzrLaLpJ5?_@|c@CH;?J5hLvjQRx6z&kgTokV)lE~u7ztcqKe3?lD$k`^3 zoXOKsTY?n0T*gyCu<|n!8l5Z)kN!KNu`8pY6&EL<2zjd?m{AmJi<25QKl;5`XogJ{ zlbh+Ivwr7*A!;u8w*f`PhAsS-4<*+8@XP7``FS9tfeP zlh}7$8jX^ljf>S48ks=7V6A5T#$zIp{FaJ)zIVC1Vsq?HY!@>Pio1bSkINu_=pk`< z`V)nm<}o|`)aq8Ca(ifkhV$8u>W09YMs*WmTe1Sa_U{5J(LLIRsezY0n)Hj#qLbae zxJ6hBR6UaOfPlsD%YUUGr3O)~V-dc=rrj<9J<>XWXx(8D7gzezcp2EREYduv@@^fE>$WP3hO~i|X@;7VQ&>VN~ zvdBa3z)RyCh_GMt)f#52NJ$ji+%3;i*ogVut3Ar6aQ;LS^)(%2W4&=vxNrvxzCvXb2X`zJ@bMWK8C-f=~c+oC-bg4VJwi-E=(Quvx8 zvd3mY!{{zpHvloY(;{G0T_c=1Z%*rT=9Hp(y+y?sD653AF7DOAX)^}X(up@_oF6pqt@r*MrpNXT#(2zTd^d<|v>f4Kt7!`9(1X)L zEDG-8>9?cH^zG=PWtIJyV}29W4JIAUQ;o#(FuN9+@1iINl1W)KJ+ZYt#WDVyg#OPN zoQe5AYv~MsgEBJwGnH{c?cZ}d|5h0v>^gjanv>(j1!+rS3-nH20nLrC)1Dz&8>7rV zKPIaDo>9cp+NIdSLvO|}>zStNx#F*KhJlek>t8Zx3-0uxOlk{yvY)x)yQGBCdkziT zeo0|PtxhMQ449egd76pmjF{5HsL#j%%_mi)mH|ErTJYNlQ=33|JNx&qp5ilIU>MW!D)vY@S7A`ZNGHo%gj9VR@?T!x~UGMpb9h#QeTRp z-kx)@UOjm_sfqB7+TMk8f~Q|Kfe1$9fD$Dl(`P_wAL(N!DJFsLg*$!GQKR47gXfAk zScfxl;`~Z_Dzmp+H@6T=J{UfCE`c;o6l#%7DnIHl_R7YY1y8<19dNpMhLHJwt1uXb zMDj8KkS4QD%8yC~Dgn;!$!NMptYnuP4S_}bzHqXVkl?aYH)1h}KwNSDuoswtO)SZI z}M58wHvS&4e%rtNS0_8M_9bMp2}05qr~}#>ny{~hY-+J z_hh1m>3Ei4b>?l#Q+7OAT#Tob53p{Qg4Q=Mu7%!3j24CmuD%TcN$+?}K)mt(yf2SD z@_Oy#b&UQpcS~;N@sc@kc$WR~s+v+km7>s3XjNi_=&NJLf_9QZZ0wKL$7^MSVJDCm0e8UGfnhCa2Og&s7h(5OV?T*R;P^?`Z$;q zyL&V|wuN)lx&gn(U-%F+lgHA^M%orc9oG^u;U*(VZyh(-J&60Ajp&?h#)wjw>WoWwK$0$h7?#~1R{d@tLZY|0X+Dm?G9EvU3U zYsooIM!dsA=b_8#wMm>NtbWNj70DC6!w&m>Z>?qNL(ZyUKk;=aBz(%Gg}SB5s5F={^_4unlC(YzAW`rO7_4 zsCovdQY|~&G&^VrR*G*~7L=XmD|pSdIBb-UEWA?9%=%2eLl+I5cZNC&46cI~+_}UM zTUc!P6FSP!1J>$~tDpV)w}Ij5q%*-Ld!nH(@{!>(56OG$RRB66zoCZOh}X8|r?_TG z^v;|LalY=#Xf5h%!pXE8W{x*-f|WB43QKPN_YKBD-7yBYhfqlRAPC5~5nGR=u`mJI zw7`Z1l!xvUZHPsb*r8ksIx$8gGH+EEE&`}>gETP{0xVl;J!l*yy(f}VJF8cKj|02+* zmBKCHdr0sBD3ffMj9HC@i?ALqEPh{v z8X#60k7#ICuP>sV;34XznEr40{uj3RSHTg(-)M^r|BPGw?yQzull(stcUMv-7IW`` zib0EVhS{$500B{|Gm)?|vJ=7vhpQ3i$Jgg%)!j7}{A>siaP?FMPdyVC*C$}OH2+Ta zK{HokG^lk7aoi8IXRhBq;=%xWF9)(a`B6ErPDUaOtC-7%z=&q{pmVV(-{7M4SXwEj zo?Ia*zpvd|VShE7w#C+L`q%Nx_IaBtbUnL+dR$~0yOFNWQ}E-8bGA!0@7!4W%ueoy z45H$(bxk$<1W)?&j()%w)OL*ieB{R;II;wHq^2N{Ycg*=OC}q3i@qGT^Oc6dAF{au zn95YY?9Zh!I(=m^GDRTpUfz&l!8zDR@^=GCr*fr`l4!-?7k*+k=A=~Wp}<2SK61Gw zL!t4`#L|>pQ#iH`8UidypyRXNc_R$qK1(3{sNrXF<1~wT5o3Vcz8At!DCR>F!z5dg zStw}R?kiwk|KXs}=q-?M&@@D6xlX;MvG;j8-(0e{`dPwh?dqJ`#4~Tbx1n9wRXz%? z$S!LEa+xkeegB7*96H(6l;^`n@fzaY-scPr46^y%M4k1loN@?3Q3YIGc|rvWREQn! zeZ?Jq0zYb-0FoQspg}K%^CZLe*dP~WJV1Ytyy)25qfv{^$N0Oddr8s>IXTWo6GL-} zF4|bfx^kl6&|+S57?SH+W`?TL-uk)?Zu|q*o9uD!=vDk-3N-mqb@iio>7zq41pxQ= zR4W|%I50!!(;RR#fdmhxFw$0G%(zUx+q{zUb)HD5d443UTvLi^)zP@zrxWLVpv4JB zgrRiegN@fq%Eo}n83H8iU~>lk8k}lm<%OJj9OoQ{*S+HN*q=F+<#?=do(61|p*wmn zQBi6f`!gS2gq^dM*-T+*5Y+DqqqagsC{30PMk8$ofd!P5sw<~xsDj-2!*A;`ktLFE zj@s(XAUM?8J1fXrr+9h~BdtPXIJfj2kkxHT7CQU^Hx#zaL)vMx)x3=KOa<)w;LP$i z8R(~vU0T+QhYMqeD9COZaV*TL># z(-tikQ8`soiU7TT=%H#YuiHB6HELm7%E{PWo~2RkSYk9FFz(GkZzlzNd_D$v#tBHQ zN?u2$OQM2Cd!>l1NCqxCv3_gXq>eH#Sx))55qDOCh*Ke#?oHY^%Rr@1VST*{TIN9b zbxx2;H@$$#_c(+ggH%>(UQjykNWoDBt0Kwwia0SqtdYZ9#rWcuP7@&g-h-|vI_ z9%Ngam*JKlZYeg}ad^`yNoor_?gorw`-L0af@0`d4@lEC_S|+u&`*4_kANsTnViN> zWlq8fdoXV3sKWAU8vgxV)8#_y5%+5OI2FsQI6D0`CNg?Rsg%oyio6a<();7NI@`DP zkfaHRSoy@|r&{4^^SM=Aj)p?*3;WxA5WyoZAShbhgm2*0|Mg=!Qj*B?V+Hw`%L=@%;fo6@0F+Jv$FPX^LQ`ya^r>$tiUP!0WqQ= zHuWBN2vJe|a){SP5biR2$KsOa9YTwX z*G4j<)mS5`rxAK0L7Bjk9ggP+gQ4~fUrRZ0e4=S32_=Ghp*)kQ0?J?5QnPMx=9@H( z{{#zLNv!>w5dZ50&HmTmBlF+fV*fLQ@q54X|MOl_KX`ZT+HZO_~XX9y8(ef>wV1Ajwj`j-Q7)GTngUUW?fGNhqXhWvrQ zQyk3)k{F2pb4a~M4C>=#-rFfG(A-s%a z5c%d2Aq5B>K*kU-)cWL!EQGHFJy4SdGES0a#EBD|b6?9vyXHk<7Q}ns@=u zIH%9w`=;lCy%c1)KWv_nx8(~RzBE~%{QDBw0?esy4d_x74<}cWGK+^|*K21fo716f zKv56SdpNLv=LaKH0Chbjy&x9dh;wr8<@UW96owi2jJIUfD;Z_a-PPIEV~|{nJ(U01 zuy@s3$qn!|>&ZH%u0yjr<8ZX%DT#Na{oQgH70YX+nQ1L_P`V4eA-#agb+5y{Q8Pq) zZ^BX>RTvety7Zx)5yuCz^w#{xgqtge<5cF&ciY`f&KnDCI%&0_CUk&WeIhIcYLCIY zdS(%RaZJX-HqA)3ckovExGwW{qKCcU!~4)^VHhwmtc_A(DorU=0WZT7+#Ve4F~Q5( zgDfmuM7pN|g^)RX=Y5Jf^8o!Yv8keObmlh4D0%H*LA$yO=r+8S4r%>-{?XD0Gb-}x z=7w#Us|t_yJTJVu^Wya9peC-Qwr5Dhuum|rqhPY%0S$T=398g{LZ@0$<%8tvuTCy5 z@DwK`-2ZivJ)N;0V_CHqQ>NXimm>WO;tK8lJNbnD=v;j;R5N`14Y z;bCQT2BFKOKr#t_nQ6fD|0)X!AuNXb`K7&zAb#liZ?8o$sCYQMBn>A}vue7n=?I#6 zPdKUZerE)jjez)Jm6Q^}S$)cnJTjIUd_-0~>fdD{fCzU%<^QJ?m5GyUC2BQK*4E8W zP-0c;Viq?(I8za!IH2YpJPbqM)uS84M zPhhsX^|A1p9y^_RV`;+nk+Hfd@$X7;>Mo9N2)ZLs%?6#ULE#0DzfWPZMO9dmwc<=~ zLN4tYIlWIgg18Tl-q?{yg2JA$%;JR|+8A;5ct~!XN5)5e>thRuo8D+;$g{}zCvRR zXkzi_Tnuyt3f-oY7&KvHC%|!NJ=|e<_YBTM^`rO70?e$VoUKJfb5JQtX{^;}z>iYKgU<6^sT5*8=)1DcWs_zM`6T0brHIC(Jov)R$FnsnNlLm>*P8hz7Q}%e?EnLbu3*Q*fD{$2?rT5pWUV z>Cr%Y`zu{a0gh%h2b)?VT@;Gnx24L7FfwI|p`LuJG@{BYC1o?PC)W#R!Ef3eWt6LQ zr!$jM4`!%WJN^wAj-;6|&=O=GsJG7hAP|m@mV9Jj{`w?LDzEOI|`V)Q7_qUw&WlU+>P|3>*=gd!6= z+yCDP#qc+VBEvsJ6c@f%T6e!IN1v+MSCipc*t-JaHzbK;wUvHQvn!|yVsg0QSM`_- zktX|YF&Xx#g0B%*o{|H`baOm$e9HRxe-}PqXHOhCQDnwo(#H^kbnRYgy;79^07#EH zL9D_CX33?X3SXJ-O(pml#F?y@T4$g}Y6hd;%#4&#s1z`P!X5vM_xG~yEV)Z^`NZuJ z-FMZcRu-qPgkatbKykA#TIwM63QK9w4UjQ{*Gr~UN`_8WR>7MIK>+PDpayD4PFf9k zzcMPmaIrzBL?stTkfHEg57I1SgcHIH^`Goq=mfqyQ-YiIWs;c7z9#^0WqItJdwg5z zPFU+UJKdZpGreb)M?8w=&V{bvH#9RrSpE$6^w&v#)usk5J8DBeLGzcSnH*u6$+ zz0`;3;H<*u5Xm7Ugm%FgG8L1;h+?Mp8)Bn)f*#ZZUr`Fki-bMhKiGcWnbYmNbu&$6 zbDw%VB~0?-Se7{`P%`)?(bT*PUM6i-sIeEy1NYBtr`>-Mvu&gUVmND9N6XWw%PV_3 zR-InC=Q`P2q%X>HMjEo|h}q#(F$7pC)?QUM9wRmM7e;{f>f69iAU3*>saQ(m-x$E+ zuZmpyU@dXLklz*8IH|h*n!DD0`ozyqn!~w{&M7{NpSyTc9^M_brkTCCyJ|tW+jX+# zGAwrHB7RqI_D%8^%d{U_=|RX?$K7P?IE&&sK}G$2Op<~qN`#qxFwr78v7G-xS=}l) zgMzWnA&7wDahsd?4%VYqDq5*yml4+>qdH7})3mTUO{W@S1mY zodiWhkVk7Zt&W4ckO=AJu16bQ)re~($3wpM)dCW6sXP0Dc?h^MZZWRe}Y@Ee?5w)k>!E_d0qL1y(pnT5gYntEt_(Af^;d^dY^>O7An% zhA815a>7RjBCJ$-rlD|Y?M17ET+4Srg*?q6EJ`c06)^PSJkr>LfywHYG7ELabG&`K{aTaLD8!Dh!DIS3 z7nq)5bz#kLDpxU|EUmcf51Et425%N=^Ks+0aOXUkZ(Oj%&xm(Kd?`q$6XuY?h?Xq0M%4xLfS!zh!bve<$QQv0xP%P{5ipu z@=GrQocS|)PVDk8KGzH!RIK%#Gvh#83EgF&9{3T7Y4WxQuWu#|l&W8VrF)9QFm-m% zhoGDObus$RYd=J+3pN}y{QEAg2>@cyeV=>;dLN3|^?N}ofIdC)*ah|4@B4}YjtF^E zwa)3{o+?hmPX*@U5bU@Juo(<)dAxpZzs>RtP!L3L+R#>ULurk7;>92LW)H-tMf0BX zL8SAW(m`8eK2$chqy|Ool502{i*@=_XpjaB5Ogp{eZ(1`1JO|7K1rvd}`z zr;$b2UCNCRWe(~az(Z2P^cRknVh2hk29(UMo&nh<7EWcatD9d|Hk@jkZfXscxLtL+ z7E`he_j2k~8oE8Rtr970?_>&fHNIYKcCkI_FIt*KQD0b>O<1f_+1Va+2HSjM-ZUoo zN_qu#4l!-jP59@tO%qEs295{~dj1;v0$I}Zl>5ZC(Z)lHOgl@mhSJ)Yr%^{TiCXeI z>cS6}!3!);i)&e_!K^bV$2xO9z_wHbpTTOXV2hG$?vnBaVt`hG_?tNX>txONUvd05 zC+mMEDgIvr^#9F=U_X$Qnh04}>2qqAriYo7UyuluJ{BSx_{Z0+5#!*epLFA`!P5>B z>!EjLZvF)pHQgJ7As^P}X$8tVE%P-u^UdrGFPH*+%PsJMOY>D$BVghs4 z)f#}B_nqPye`50*w;R>#6aO?V`JWj*16R{RPLu8^c!7$1(6he`R_f8ZiLn6X7+C&v zx}HSkx{>dm-aWMZAee$El}!PK7%>%*a0bZvY|8C&Figz;T~kJ;fB@R(g>h}VbH95q_C#m1ZPTD^orXFqQ7I`%K|1B)-&Y7mOlj?SxDsvBkp_O`BE0=Do3=}>#@EVgw z78$iT=n34mfq5_4IQxoE!CB*zf@`osW*vv!xU=SrJatQ5^Vv)6?D$hoA%U3E;!5;& z*_+Po_L-gBJn!7B4j*91JO8?@*hRT4Tq7TQiXI(|Q??5|qy%H+XM(SWYzx}YL-iCs zF%4am`(tp>DTJ~s<)?5uuu};z_TqkaX?dEE^)V(^&gvCuC?H2SAS?eIuR%Z3=_ggXGI-L?LkSABf#E9-oiA3 za-|2Y1{jcCKthjMqfSvpy6^DjkiE3=(Q%mcm$l@op=m8Or#fBLWIf-s!2zB1{N(aG3s1Lh+GOfw`^}xRk&H9e>c#rU zNl%Dfa&K$uWn-PAMc-5$J`Gv83CpoyN{aAb0d=d$bYMz%U26hTausQ2 z$hmrXg%ip$%x5AswedjWvy|hu<{}F(g5$0>DZyhg-V?!gjp{{IJq-YyA*@XP%k!dk zXA}9IwCVE5=8d&+Xl3I%nfech4I%4UZUUae`}>c9v@tp}JgZ?4?#c9Lq80kpy%p3= z8c!v*CicFraj(jLq)4x+di&qqY#1o28RE0YWrel1XPd20wkVz&;hF9Va0Om$}q+@t4WoFU`OZ9UZPUrSTojQ3n9VtmDQti zh1l8L{~L#Y`GyP}e~rui4RFZt&xFGZRcpDm?-l!hy{bd=cVh67(^{3}SA@l(nGd^E zEJ&(7AOiI2oVUVi|Fhmgn1{1;9T+~+FhZTS(F47b!t2ZADpI&k>KZsz?2v1{mw$5|$NREtd5ZM2Xc~g>K|d z$45hQnr=gD;FW=sVVVA@stLm5VK54?_}MkENu zvv;n`%RkLG_w2eu-6oX=McZ}B=QZI-T=8;>!iOr@k(%;kIw5Y8{ZWh7-_@xq->(N$k@l(0@o+Q zZ?zN^J`O4fAE%5yBRvBY*buz!jm7>);ugmoi=h0fqv6P$1vq)L60M|j&d8~K$|raX z9~Njg@C+bbrVnMJdMUm@r`Gz>y9qn&Vj(~-Y;OzcN#A@ZVJ`M&oohVBki)sucS&Rb z2Pa*p&qMnV9$E0Bq?hFUyE2NP7v$VJQ!2|dUngoQ`NUnUMqC8KoJTPtF!Rnuk_DR4 zRY!2QkWKE?nbJLqVRk~M39cddyE)q>O<83}l_TS8s(I;Ptvvr`X-K88H%;p+%5;AP zO~q|)RC5jYyZEf9##FaU4f<^0pvf|T7&Xo9fgYT)esl-E&q%rh&v*_su7u$sNL>9=Odzya`8`Tp8g2r;4o1mc(L0 z(s4Qd!qWzf!$TQX4yJ9VhPEkv+kmAfLwZlMf zNl4v9B!*)oo=&2I)hAf*WUE`C`YcR|ho`^i>}L1sahBf{J^bD*Vb zBc!%$(#r}vPcqobF42|<4rn>3okpvABdYnAZIc*L(`^sEOf=SU83CnMcTFtlr>ka-pjsIOy%F6zqTZO+7 z2O0huIr!IzMeQkCsFVHUK=sm@1V~{Oex`z+{uQgsbkH@x3`nUn2u-**O?!Q8%3HgL}daFfS_OKvG6t;0~if1V?DKDCrIK=RySm^6x z784?l?Ek^eIdts)Jo*h)y}LWDK;R6DpCGA|KCJVC*vb2Om-hBiEW~thsPU6{KMy`G zq|WxK8yu;hrxCVoA&muzkG5~sl5Jgrtz{u@Jz7b{2)97~2a{JF<>CjV<2y+hCyV)V zx5R~L<>`njmU{Jj=3L~#F}h)EtMFVleM&J#$Ov|Y?iA?3rM{pQlRgVg_HZDkO1#>w z0j}J^nZALpoV4dt;M*U?C_=Icqd36J&-!()nPL1EHi7wzn(9)KcrYmTSrCQ$eSeRk z%_ZjVmcc>OfMxUztmS)}Y(%_-u!FUtARJ+uNK`mq^-)>|8yHn}DyDF}@p;p6FqC+x znq?A8uUHlxnc3y>0^VmmC2s(aL&I32^RM90Ao7n)HOXT7QR%U#9xr5!ez{)hU&w7a z^D1~c>-_NSs=t;T4G`vXWsSj6LKThk>eodrk%ri;yMcCH2o4#M){xbq1K zgk2H&*&V1#gC15rPPV~G8=k;zIOrth#k)AjvOlfd+|p{2Q%M_dn}_3(7JTuL7V97U zA<1vK$J_~kS}ErjHQ)JI6F*fcXsm0XZ`G=t7vwtjJwss$IZt;?Dv21>C+01DX_`ge z2G{P<$)tH!oE9BA&sF!)IAmQY98j!Hf2*EoL&E1q%j>``V~Q0ZKnCnC?KgiRN+8G) zOs$>Ky`N2l%y@q8;C-XyfDiy=m3-yv1jb(O&d&K(dj`#-i)%__!ZafI?@CX}b{QAq z>PK&d{ba690!^Nw3Haq4^3kI-B~xIf*=rM-3tjVUXrB0>&!RBb^auiF4onlf42BM{O7vajxYJp{AvwqsmV` zgOAWuFUxe4)TcJ(kTGr-WrAxwsw!&Zm!(u0#ix)_&FwX228)QpAmXt0%=>cg&>QHv zBbeINd2epPyr8wi%KMH(PmLR`6WH+Xqi+te+rDK}^*Dd)oYqy<_;V(cQms?->3WeD|GN-^&^QI&J2jB*&&k?6E=H zRAuHuTo?=DgA{kdjhjW%gwlx?)k%zYcPCn1r@NU~JF??0E^Ll@UdC z-`V<>YDIII{U*nJ1@?tHNY8@;O7MM=y6*+ar#&r8Tf9se&J4(nre*ivP+=LfAET zVKx5(n$W5GqABF%o+RK3&YiG3cuf2)sbS?z)0If9pgTmB3(SI1p%1xcq-MS>=JvG#kW(g9CjE817_q%(&0pqc9(F^jA00C%(dq#sk<@~12k4VC z4Fi3|1yIudAQX|sN8l={s520A_P(>O`q*L4R?GYu8BAC2C!9M2S)nZ1O}8|jPq>-p zrj5WOUYKtMiBDm|5EO6Vtf@pswJMJ&^YG#7-pS1&3{i^M1D|&Yj+?=$&BQ706umcI zxV~Y$hh4txX4q zq``Ze-O4q!IMRYkHDuAoH~7tY z+@So=Ckyo(UbYX=NoSm+J#sbMEU;W`QVIZ(QBp$5$E?=cE=sJAfCodAYmF`NBPP-) zlM*HwaI~rmKJYaf_N_EQW!$Jk_zLA=H{CO0Cg+{W|kjWsMIhu+&r@$KHVz-34oZb!ejXP%1fG-dCs^-PtEyvZg@HJ;fVKc104I ziWcTap1}}f{Zl;D>{lhrIav449RNQR%|PBo=QV{+^0Mf;hd6q4koF5b4$bDCY6j0L zSC#1At8$8TeMq=&l1PJCpRG`^9k0uBU+BI91~lL1S`VQF3BC6T+5W_pl9>(ZGc$b zq6^9DaVxw)+Ms2Wb-+-b-^Lr_sA&}hfaD2bk;(U4(o4Sg!Tp~(X=`uzRv3Z;KX^BW z!hWrW=wWMZGKO{PizlnL_@2Pn*h=EFgl68@$l)`Ix_%IF$F#=m=^s+qb5iTmwhOhD9bh0cR7zP4#eZ&Tng474;cu8ehJWVtRjREyq>F#=cu*Zq$Sy!Sim|6x#?e@hqG-Ah zJGk4S1nCn`f%-B1>iB%KuEP8S9al#nF;Y9pvB9)4=QJf(Fifcs&i7zi^P3ixRiil0 zpSQ2O@m^6u3ZRV7AEwO#kXh7FU0zyK>=N=9B_;}F5(QPTG2uj#vlP?s_TQ5T+;>-- z@1K`G40lCHuDct)_B+YR#Z>qq9>Q=94O`3?SHvak7d)7Y$IMBx5ll4aYDKHEeEQy0XWaz+Un zvCJS5clTOKKIU)@?=#}m#?H@46AU_&%T&H6>iKo_q{F5sv`u#>clTy{H#$UMcgK;b z?ftUsEZR|?iNXT8uv+F-JI38(A8MEJ`@E9*Xl^^z2>-WYWYu+jHwnZ8Q9{Mf_iD7) z)GOlGS-wkm=PH*BLY|H}!hz6^~Y5GfHNpa55h&@xopv9@(?)n`^ZdFf)wR7NE zAMAs_#rg7tY&X)|zsI@OdE8XlF6%4-x*t0`&IbxalQnlLOS*eEkwz49xpq$P#%qBp8E3|+0z6FUK%E!iE7;_%oX$%BC~RL^+~noF)i z?dv4SO}wv)g@>dN>rb$a8g}>XZ+Ku|Sn3W*HKkSMZ&#{drSv{OwQfrcU=GjYsMCT3~5vv7KwL?eLJ}NX5g_P(l#pda z3qOse>Mih%Si+#hTO}7Y6&tZvoT9JYS{_)PKs;$o9|q7wpU zWUAxgG5>+7EW>c7G2T{orhQ%VNt!oto4H{AMaZ~&h-!&(s!_%Fgz6cZF#Bra=KQ%m z4z>M*&1}5shYPY46iX>+ArwXr7>(=-nBQD78rkJgtyWSiM;Hd_=U#JUX@UmLJI73G zXmJa_0S@=v<9N`*K6mJxiZU8+OxRj3uCbF~_Fcf;wi3vK7g;|CyC!`0ruNpzh8l(N zpiZP=yYZrc?GMRuTjAbB9@uz0A+@l}4K%b2(3w&fZ(KEvb@>}4@zjsB3Z>Q)o>KX^GfPc*pm%j(p|L|wceLZMiEl39VdLDILHU2^EfGux zfrAaUE3{LatlJvCA)8JvaoJex>)hx_{fAWzccbexn zGGpaJh+1IqC8V_fawY!8U>j10ReYRDDL;68$WPz2qHS4Qj7n8bZh=Uqi-M0&U^WhS zzH7<2vh_67aMhy~cSVbAMl?hJLYQfJ8j_et{?p~&)IyDEQUC^GyrMDgHz(k@^0Uy=g)ffP0i0kth_a#7q= za(NzUXNJt%2;#pc?X0e8*t_1}E@{#0YxHKvLgFP2)ZMaEGm}kCLA(5l2&b2IZ*VFS z$4=mrO7nWJ?(3DhC_;g9o*@^nX9{x=B9&z7gF#!MAcgIEnU|BwQky_tf3jF@{BW&= z&gpokzZT@X%eDXTfZ3Bnx|&>51qL7qk_4XL-cUr$+g66hQ3RM;vsvwXMXJnXMhxck`4~`3A07YL&jo zdO_83BazVQkrEro99YT^vx#w(uj3-x(u5W*6pEUdZNUfLd~PBX2T)AGE!{26{k@`V zau|Ju*Adfvc^(e&lekV9h9F=3eZW&kiK}>Fn6|P1$ShI+heU_R#0lUt$dG#4+WY3( z(d32tME>>D^JNm^*CBi~oN>xwz{m#Pz3})HW)a`6F>*ie^o#*70Aith$Gu(4A25NO zFXo*a0x1gWEaz5C5%F0C{^ZM1hDa76dkIZPST$BSO zx16y`g{Si-#XRnVwPJQnB=)dLd%H%N@LG)`{$t_|S_ZoaeEmAeVAd@i>=5J>Hb|A% zE{Z^sb|X-v5z2K)v0xeE!~Xd8jk2H^Cy*7xqpMj#R^8*sxXQ-Sk_%GrUzv@36l0k4 zdGhcbXv=1yRz?Ss=aP+SB>DIp%*-VkR4#koTC#GOBr)rhSLok2W*B1zF140`Pd#NKg+h*JRJHRK)~%M|q{L@#%F%X{Yd4}H=OaNTAn&@_ zx$j-_a|RpHnDX=_q45sa##uYg=ZNtM-!*1wDZKU;wxrRe2X`he&5K(YX2SZ;(%ghY z{vw`;Mt~WhnZy0I_Bf+08&Jo#ZpjfmpZQwCja`jKDe);k-wH+aJiL0s*}dP!x}#I# zO;#GkSKp-erJP4-7OB7 z3~9*IhWX#9aT0hNG1KMD@5|*mlYVv0Nt5=u#YuRcQ}bT^v((Sn>=;|_ijWx}$hLau zToJEw0Y}Ckf+B^Z6=;kf1<&e6##Q5rc%{YUdvUhnCg%FeRa=fePfE6@{ikYtf^i=?n?;BcX2>koiu~S! zb>EjBTbNvpFa_V6E3}~J+IuOi&8p7G1RbU(Q(2jrsRvwUlz>qmDA{vC4!ll!SrnM- z+h1BQRq(LCcE9%q#~8kaZbg;}2Wa#uc=4Pu?tf=-TRvu!O|M(7Q;u67hBW6*eDW*D z!>yfwq8pGL+2VMf@SH5EX)NFLv(nw_L7U(_yW^75@piej@c5CsdNNMQImM#AFyG{SK033pa_WL1zepwnBMPk{CGsNoynDMtNez z)sRsFu)>Sv2`Nvno{kRdI&WiJi;HptCb&N;EP~KG;Neo4PEKI{MmR?h@avX`u!exm z+!NcoG#M7?fa5rPGdyqVu9%Jr`eeAzq7Eb&Bo=%ERlBk|gB!|@{6vkns3YsqMJmo@ z4nnSi24?#z8$Q1`X4ZvWm0gZyB~b;(aXpJHPcEh!Qpf|*606V04AZ2|lX^d{=Mr5P zy6=KNZuA;d?KD%K-M%otx}k$V(tFP;4+mclPq^0$g|ay2zNzh2 zu>g*ZHNOOQ4i|QGm_cy%6s-@v)0dJez9aiJ$?Q6rCM|5sIS;%PneC%4v=?=sz^HD- zCoKDe3uFfutaQOC2{B}9DWYMd$dL?##nNc79m?@ICx_s^Zjj2RCW*dll5oU5Y6FQ1 zca7^5C-9XlWtr(J6VvR4c2a+hHE@r3#o9WD5qIE;=dZ<#ls98YrP%F3k5m3W}dO>QK#qgrGqH-j(HM_Y+CB=FH zHWsz>u2g6=3ZemhGtjw4oX98)+NN^~kw3Y(n*+FAswZ1CLJQjW`o~rP=}&MzkZEsd z@JLP{EDY+NHpjshZ9IW7K!uJ|f*TBz&Km{+M?x9E0f?P0VG>H3%}{ztU<9^TFO*|e zGzRTu2TgkGUT5?$Fx5Ds2aB~EBdeAJ@`*VKCkH*pUHe2LKbxWUb`HeS`pNrhg2s%S z2wrCARG_eBJ&|^u)Gv?5p!?jC^b`yPCXexxjbKzIGKwXDRpETF=fo-9wAx&ouXx@2 zdnYc;xY46e&kD4#$#BfHu@N+Bq8Y*QBUA?TH4oj)q*lr}`Wd)^&cIJadk5 zU&6E!hdc8cGiFgv9Y}-et+j35V$2oR3W&qfqdVsJHKqz;8w6_7Kgh?)d_pu81R(|lk! z?c@%|xCZ?R~j8FHfTQ+ATEsE+{p0@I&80n#b0 zv`RWzjw)^Wqie%48!3XLxX(Ug{by_o zupmxD2$--jyLfEuw6U;oOl*s>47^j| ze+QH{9#8kcMkp@#HeLYyG`)+5i~3$6%ZumZ5Oh^F)>L@GK3qv-ogz{ihXjZ;Of77F z;K3`UiM7=Y*R6jWQm=oDh?OUm^RHR8m^PFS^s-YEX%h6A|5XUZtm8NV_~KF%5-J z@{S0A@0k^VejNXJkt|4S{d|{Js;9A}lB*4kXSd)O~I98Ju*RZeZ&SmQ$gQS z58Bt$&v0M1Gd~|`W}N8N#B;maA{5WI+K-UNK{@5z_hmxT%8}lO>1l4x+O%kBe3%-M z!3<02-cj>zT_UgJH9KhFDWr!u|K9V+bzX?JVaUVSKAuY&WS}ID;);S?@n^KWpIj`4 zt$uS$ynoWDP%2#&iP3j0J(gY$m z5i!6)n}9+ESx8x)Q`ed%C0>KArkFY#!cPix3OWVY5YyG_262kQFAiOx$c{@t&M-Av z`4A;BaRC&ei)x!V76^pa_{V4UuWPHxLh`41fgTs+;DEO{*QM8FvzA?V-0eshbqNqrm6Pvg{h3r}d1{tWazXn@9PN5U@zcV(Y^w(DD;n|)*bV?{dh z?z<%~ABUc4Cp4L%`M|g^2`3jFiSU*gtq%8MI$-)N)j&RmfFq3;KKq!J=igi}95R?H zI0C2>mw>ri+R0PHolz+9L=Q#5xaSpnV2x|kM5i22zSvxZV0-o0L(`%oFz)c&TvcM_ z7p?crs8x0V`MOP*4s%N zrZSIH%UL#izZN~)HFxop02~9=^rHKrTlG~+-H|4aHTrlss(!i6hcCQi zuzJBCU};BHB9+M7WfBgJg^pb2GNZpLvXuQwON;R>jTUnZTPJN=zINEoP9Y>@re)N5(xpTe$9h_E8%Fo@F{)kbv* z8ml>VMZ?*9v5HZYY~XZZ*5_y&_5gp ze>LPx%zroJ|KLnA{5xl|;s4yj+bad2SN3jt#u(Tt#u9_=Oz;$&Lx#upgZlm;)cN!> z0T8G238+((kD|@E6`Tega@OH;8fj@_JSO&Z|hOXFX4eaSf=Z%Z92`C`h*Pr{>)53A9I+@>IS|!WFf%* zGfRS})HDvb3`K@))w;iKHb-&Qw>;xAlk9d@5sUkx#8l;m%Fy;Ev*bxM1=!<;fVY1{oB_d$@R(WVU1uF&e8?U(D91tIMVZ~$ z5#u5-osC!xTxe08koWg_>3ga0$S6Z9j}$i42FwP&t#LQ3e+Bm7+Tv<8x2X7~Wb|@e z1LMIoY164!Bvxy60rBoF4eqFp7Ha!S+*7nweS#~*i62dcB-HD?gME5_J*LW{2#3+n z0X4!GG3^^JvuJ;kInm`=l<=k7 z(4{EmcEPQpNiEDjp>}dUevA`tQ=f;ncvLKd-BvtwgzJB<0`%tzZoe5<#nVb-v6rX|Hu!4{lX<)!Wyh^0YG3FHz>4co&v4OD(d zYu)3F?r7fCI4mrzYFipgb1?t3rbP+hnZYGl+`7!2SbkuMC$jrt+)vn6uk`b-)WH2# zO8+n}Qu_3kt$qqi?~vuD7?L8&&S)zAXh7L`-Bourvd)!gdD=|L9LLCDh0X2K?87+s zNq`oAX!mA_14bu|b0CUIIX~Q4Pv&@dvtRthZ&qC%bW50*;1tHKGuzR}JsdZq+gx#B z9pF29R}3Qk(GvTX*hVIbc7I0HOYQcDJ;m>2^%9ZyU(r2#E zFp>E5RT-KUzRe&AT}P(!JR=;>gjlEQS#X-njMmW6bhgEDdq%m=u5jj=S=YK#;acmQ zJJ3qT)-IbH>+9`P!!k^0^H7JnW8*4V2@zup9=DD|_MxhN(ZiGm&@yqA1M@wM)}&Y?@W$XBHtRl!PjM%s`LZnp9?%Q(rbJL3Nc4tH zl4?v~HPDU;`dx20oi&6XKUb=d7+HIc)y-dbK5qM^thAGQb5Y54mcbZl z`AdRho^do<93J7fg1Z;kUgj4@dAC36v?PAy`jRwb-vjeEfF7}EiTbk1IY1QdlvGM} z@V@{$)iUKF3U_EK(g2;XQ4UMtgY+}%Pl?j?|El}{Th0F$-eLSJM4RCs98QLR=Wq`E z6{1bQN{b93u$jhWTRtC%TuKSDdR{}SR4cHTv|b?1Djt1%HRU|Z6q-3}5K9BTx;hn+ zU1Kr`_W==B?kC`VyL2MJfvH9(O9Wy){6Bk(&;T!Ej(}U5KTi2Xl@l5Z{5c8vP-IHL z>ZmD$RzN4>oD?kl+hWvzaVgOD&^fnN0`c3Qe-hK927z4WKm)mY_DG`Te?D~kj#Ukb zE~xqFg2pdi4`o*}3Osde=I}cH@&-?~{evSNg-?9gj=+ZjcE=tybI0K(C}(uas$Yhs z6;jU7+Z(KELlgYemW89KJJBM)p>_^L*mXq4W1%oW15A%yd;ICi>6m#6&RpoE zb~BbKWR-Ip>!ms{gG>s+6>(WL?X+}}w{{s*jV%{pJ{nef>Xw-8btu?ghcinLbv1qV zbeY?wS)tJUkmMDz7ja}ls|g1+=tyds#E(J$6RS;)EmYC;lES$S@SDTwES{D*uV3rXO!ooikLl1b|76#MUW* z6qqDlE74J4r83DN+rAiJ4Ys{~hKc8+3#xG^K*?MzqqFAfWj>qt6ePhF%EylIK>f0m zxjL>O<7oh<^mD0xpr`{ZcjRkj9d*~8m643P8i`a?%O8)yyPRX+9?RJkzZvoyS6Mk9<{MkXj7ev+XqkQgSz;JJx3*d z0z@zcn{wd+6mb!8WF1gIq`s5;1wgGUG!}5<((piX^vO0^Zw5W5IHhYvJfu+`~x= zI>7VI9!hhnz)%1=Nhia!32s-?HsG|ggO2gc)w5)BVa5t8CjRDDf>B~&W&|TCkwr}A zQ%x{xv|6Y?X!Hcw`(Rj{M#(dH2#eU*^n|&6@OL56X>G%3qF|m32xe>-ANL`Wm^vh))JIY=9!o$7)I+pQU8l%2qc^@D6oQKbl z$Zadq%a!0;u3`_|3>kl=UOO?vNcNObN5F?Cy@xc3bc)7?>>%PEt_%)n%~*ao4QtOD zoZw$DnLg}BvyiidE#z?YYF?>#-D*KXGz6{UtPM^)bGB_pHNxTK6I|)9AunWpe1?{Qh?p}QQF9O|LBe6f_;#`8+F62 zxp9+`3fllqtiX(Z5X`1p_=l0Vt4H^u3)G?c?g!RfqOA0qar0cG^(aO@vo@{gRiy6j z2^5r)LM&O9CAP{rZ-^jDK=hyc9N ziSSGif+w$(5s5?uoTxQKdI@NstRpkwMcGJLCRe znIE)hS{#5JFv`GLafsu(=v8;i0XHq~Gwh7LFkwbYm7z<0QH%PAoad#U?``l@YBSq( zIMC)3g{E1asU8kd9u4)ka!in=KG6($b1t#o?E$+7t9WU9e%f#PPe;FBjP`6oqUxH? zllQ3~&eucWwVbEnO^Qd>-b*grqjtA>-m6w3;lv~QWYg3w>sexK&tdXPP}US4yM2IuyG?4PUZ2A>#m9;|<%OyEJWH zAeLoLUOaA|C}4I6S*;JW`7ul63Qsii3kDrsNWCP8q%;n;mZFEmTb|sSS}G7wSRsY# zfR3XGO(-ZZ1#i_cmEUotI&b8=SckuO%oQjOn(L zJ>F=ggcfup7{kcqsu?B$mn-x9Lm-#@fQ&YP)4~THAguPNEZB-~J_v~8LMg5k8$THQEn^z?;;?B)gkjIXI>?bxa$+=G7LDZ?GRL8FS*CD0py zJhlLqcOFyfmbQ}R=X0`g7E`Jurir3nU>!q8*{ZJ1iRGrc&VijZvCA7ej-+(-i;5eK zBhaUxNW3cq{yIh3n0VowMD`*@yR;n(vzG8i#s@mTQiUtQ0Tt_@E&6#Ay;ay%yb0s? z96Zg{&2ATO;o0Idsy3(H_W9%fIq6Ka@!pM@70I3*YK&L2oy(sC6irg~s83OIYPaWK zteh~038$%m+# zewNT3*)z1&NQYNxl!cavt0La@ASUUSAvQ|)FdPZSSwB+KSG)l2%XL|)&Fe*l#d|mkwdszOap&8X{S4@%jj;AU>ymIx{qyV=9U?{Rx;zMo*Q=YZ zv$3j}2xer*AtczzX4Je?s-QHJMJ{`gJgRVbwewnk!l*C{v>O-YczA1d9ACNJvq2c~ zwCUgFS5+z7c@m%b)~ZLRsiWX1XKXF~q%q}5lwxZ)C6HJ^H15j-PYhJBS#}(N_0w1g z9W9SRu|>}l=@aZjWryRx3-I4GB_loK|9`4v_y?Mj;os4e7pfZH%nY*ER8_TWu9#%C zgOx6Ns3gBBC(s+=JLQ#}2T%qj!pERQ9HX}Z^u*ZCd$7D5t4 z@3~UDEb8pYu+W`Q@A1#i!&#S5TL6m9LMTTwpl@u9VX(D?z#Wv&FDeyOFuBI~Sd89i z;g_Q!?H?R~&P&8OzcojM97JaI#U00QYZhu=f7K34hohAI^tAH3)(tAOJ1; zN=3YbNIF{8?;+?jPoQ9;VTmsdw@gFuh4$FOGKrk#sO$*lo4X?g?Oj1{QSdQ{>b*=* znOy~?kA2q~(lMJbSj}}-l9$-hX1`~`^WP{<9QEKb%HD=(A9WRVZ@-3k?rQ2sWa9s}qMC@Y)S_2>$KRnk0Cp zv_`4Isw?V$(+vu+YhjNR@C&h>JuAIcCZQlvcv&u}A%pW{QM1WUX)H$VnL5Cdz4B-v zPz;J8B10H?uD9qhlh0KN|BS{bY``qoe|>)TVXl<{(B8mZT4xu_&4*r(w)wgTUE>rd zvqdc?i$G~8#*4sWi^3h*GFXG~xr@m?q3|^ouCama%9H<0g%s~;FkB#P@-6~$y5drC zW7X`o;zB?sbylXVBD1=7REgdv2a$SXddE)G{V;hsB!`L3#wC1&tUK1~pI6fC$s)rKoO}fFSYY-XU zDq!)4z*<$T+IN&Slw&dE8(_-039HERD+~e*`6&4e8m$tF(qcK!ckw>uZgvQJJq^t} zJ|BulK*J9(<0ip~g&8385kKvb0tSz+J*|*|mRzjB=DIB0P7Cw(FN1;X?8qJcQEz`~ z9x5)k%aXRC`P5xwE6(x#6Cx}zDp6uC`7p=1q`g5%# zDV)X?gvLhi<@BMH*A@G&>Zg)NFFh9}jV*Wnl!u4z^3W&>_lDozYxtH&%WFfOw#O)o z0fJS5h0ZH_j2ROe_{9WeSk*D9Cq zqq#fPxg~S~g#Eb(6~i)tqH>Wc-`Y6E zH}6yD+>kUGLVC2kLO$pUaDID<_Kj=2I^3^3n2l56VkQmP4YisNL%LXG1ZKU#rntWL z3M$#+6q=YwX6lQeS?@K7o#VvG_K%bS}(@q&1X#GQ({<}|R{wqk2;U7FmhJWWl zHmI68d=HX;RO-xZl`HCxQ|nnZO4J}%jd5TFu&z)jN#mOZs7dD7F5h%*;m`mA@zg?) zi~ek1np?W(ddC*x{}KB!#K<5~W6JtFW6_tlTgoExN^ z`Uf$a(N9NdcqJ{M7E-d-a^Hq4N5D&<^)0@B5IB z72siZ`5@FK<{|sAj!xOwIGT{SgkVONi59gYA|ec6FTUR4s9icJ(vD^G`L%A+-zL1x zUb-1Kb@D&J2@zLMn98R3Fy9tgdrg3g_Lm7zo@rMg$n3rE`RMSwiQnxAwJ zDkW%M_x^9MdE=mMw645a1Q;<5UA)gY4|&xih?_3?q}N_C7d77ZXqol2hzcg88M9K-3#d9wWUge)B4iq;qJg~STZ+Y{YLhT{gk+>; zdxd0#aVYHor@p&$6X?6PB(2wG2e4qzD_iyrJ)0rvHhn*NjDsuT9*9#Om9{1xLrkwc z@hN>u#4f*D2bb;#q=wPGZmPmCI^nR4#w!Adb3#Vm9}*j+$Sz$ z**{_?$?JB)%6RZv5yE8ixLtHhn6g|K!P#KCF2!sK93t?T_^sh`7H`$Qru6&h-~n;d zz(<QPsjNeijyXsH@e0*DqlEA{@O>@roGDy1G!0D>4idqw06lL3C@hrj!}zQFfpS+`0eFQEGi)3u$3A@( zFk}!cMlt5VLEMN#CKiRC`4zm0CG#@!;@7c-$@jH*un7r`A9t{_EU^-zquP`Y8XIV6 z4AE$9Q`#R)KjZe^y(8kH(vV{IL@E29@rEk{lU3u0ibiJKpzSo&GelW~neS>Sl2oZC zHyz`12|)vp3%^biOM?fl6_9=#RXEZxN%{Q7{pt;0gMOj$jqPf>ajg5X2GztQCit>o zf!Y@REf%sZ*)qqS4c-L>zl6q`&UJW_oy?UAd_0>-%XqQv{!~e>+X)~7wTH}IIDN(mZ z{_>t$pv1n(W$v3y@usOKX@fPQy+%L2F>QrsTt*#aZz z8i!TU-mxeJ)4@w_^eoUQtM5Bbtxaj_4*DQiwzjlQ%NgHR@O$ELgDrtHR|9@S?&{d2 z*Np3er#IBG7b!=M!AQ_%_Ka8BkzvcGf~xMSX1LtTZ%8;MGecylp7>9xFC7i`6^Aa|I@jbd`0aVvlKOxAW`d(%G z5*!m*7O*+x9Y|{p(;MVS$7hkN>#hBxLt-`qs&2Xqp4VUTD#KUV4Umi6hnKxxsve#64w61N#KJ4Dr6&5GB^rkbx*oqAbx{emVN0*@n+D!BTwYZ8s zD$RbfW=?s&7_I@gAAf$s11Pc`OI`Hzm&~*|>O`EM%%^tWR11^x+}e|%3M+cO;P4_+W8H_A#0ECRn|GnJ~x zR*6NJ0ge>B+P1n>EX5Evq_iJWvInsRtd`szj~AL`OkNw9jyW+aEY0APC$6iuW!6uF zXzV9m9-2z9V7#Acz9T{=ysWQcVz@I|ymT7&ozg-zo=dS0VjWufjx4rFAH$qO=BY-= z9r+)J{-L@B6cG>RQ#nTp>nnfzNK8K!1agzgJ1!lP6&iRN+9H_;_`eUw+Wt=6R36(=auaDK=} zYOzMP;wBvF2O=iijV{16_#R#`dVPq`EmNkeJ@&=M)d`WMtn!T^3j1Ky#$WIiFb7<+ zuN}aL!;yGu7z5ulLY|tM{9AOfXYyt1sAX zY`ke?B+SqDj=pkpI|;s4mOI=-RorS}vF?aRth;Rv7g zt9%{gkE@aKP3?`g@>)fq+RMCOpQA}Zj5csKvGr;$GP;j;Z&e2mX+h%I={D2Y46rD; zf-CO8!sXb}3gv6)tfIxtX;gDMMGc&6b@@TTgowGJ=$?l2k)niIK7Lp29}^&5R^EK= zE41_0axQQ`;s6=V;< z(T)Y!bm9g0Hl>iJKMPixwZ4a24B7USRm`O1eGpsvv`DCw`*dJJq3mGy%2-1r$O1XC zME;`v)8`E)rQE;B7O?Uio)u{ME>uq~a3i!5BTs%ftzxfxOBd5)lP0KC?0`d8l(Uso>?PS|st7P-cNJLo8(Af>{PY~!TZ-UjnHEyQ76yLHXsL2A zsl3DHLkCQGH_RT3bYwsCQzGKOrhL&7-y#+Q#Cub?M1)`OcRF! ztre7(3sgW^7L*6%PUr;Cfz!M5yX}1qlF!cb1L9necMukKeTdmP>x1mm!}^POCb5C0 znw0&`dPWZ6y73Kf^G7q=)C;~d_mG1DD`9pGFe7QP#OOBo7~7veadm80@wCG+_yXp} zT#l?!PrG;pPl8Gr@S<%_9s^s%Sf{pAWLRD+LG;Vbw7N6o$=={#S)$4zqum?#pnFf_ z27L1?9L7THRfcq-A^cpbQc?a^(8i1FwV7w+CZRux2B1m1AhP4^54`>e>*KTa+F1+f z;+47j`^v+ipjQhU7RW2gXjW@dqvE<96fBG`^uTOd_Oa4A1KC9O&8J4Qj9Oe9HAPh; z*<><%4OoC_DP4jCH}?X&BuG(E+) zB=VZ{@3+(Cgg&$}+jVZNq5N`hu`$^Sntc9k&Bw9HCTQXWzr6?a{t#Hbt=0uP^&4w`Cwwvq z4gAEJuhuY#g;?kfku);GvUo3ionW$I*$S^anuOK>hZL9d44JNOs0-I8sH1oMLIM z$1MDH4Fz{l#1A00daw{&O~1KEVV(eGZQ}E~abUR+Wd{O-V%F-FA+~A@I3Z5p&xy&> z(@OB-r7Y4)#xR(C^7yOCJIx@hsV54o{bY0@sdPse7l`7uLLlG>#g~Y=zO*mtEUzMS{Uh5e2~K=EKa|W*CG@#z5Yk*UNpFN1#`S7v35x@muF~w32sqA3b(mt;1 z>YZ&=^w2AC=6q}ZwND1OQxb8ZbO~+&BMCv|aPuhWPSKU#1c0><$0r)}ahs@D*D=jE zc%>n8d>RbmfavQq$jhF_58&z~s5hswnm#C^# zVlF;&DAE?6hL^%%Gv0W7UX~+h0^~_RdWo8<;Ys!7$3(RZ(czaQTj22fTzvLCiTq_rwTp`j2n3Y7oJ41>F2>=TRl|iU1YP`%1q=K%TjHgTUC_Bo-c>fwA&y!*vYh6Bhn+B z(@;{AF!!tD@{(7xx;luji*u>({Y}@(H>sg_8oLobP^TA`dw(?d?Hd>==gmzWU(BT; zJ^hznI_a>sX(d7BVvRek?G_tgB${lqVo0gJa||u?G_pJGIoc6pepI=(!tzHZJyn-k zUVu95(f=;Ne`}D8^nX8u{(}a|@b5IpjqiK-HL?GR*FJ^Hv5vS3)hj^`(Z~x5ASv8P zjG;n;>uC#>whHd<+G6a~86>%=efvcSzP$BvxPF*!(CObDjyGL(@6fUnb>yiUm;sP| z?LOdn)Q<*mGGq^QMB)cZw++I7F{Zmo_$vU%Xj)PG7Zb`K9$Jey$ipDcfOp7{3)RLw zU?S)WFxH6Owyx}+i(Fjp7`%WwI9oidb(~C`RByYR9}>9Z;{E}yj~i*oSP8%|veB@k z)3@@AgTI5K9w>sMuveJNKA>qUN^XM9sK;~7_*SlGF``LCK%}|A*54G0bwUuBwc&+Z zkY6r+UBzy#cvvELObxX(VT%+D{JikEWajzGh(_bNFY>_PSRRV};^Xevl+Bi^?kZO;NPM+qk{^fV*5G=|?gC0f6fY?I== z-RFm|X>1AOs9GZY%7N(m0x4fUp70jS)ilkL_g!MkR@o|W5RPbLx*lU#fQ3sU{y@YZn>(YK06dDUW%T>PFd6ILd9 zQ#_UZznTK^y2cM(_bP7Eel-3x;uTbOGH=Z~HGWZkae2hA3x+!P4?Gbd=3G!H7UYmv zAiryJwqz%45Ie9-<3sz?{#ASC ztj7|Q+nP`{=g;z4^~>V*;)7%>p@FOuozlQv`at&L`JfbM;=+}i4TV$K%rutqpj({@ za*fyX$ah^RX0 z^Kj-V1T~O~r2R^ScAI+$kV<4RJT;_3ket>{ZI~C9EJ+J~Uu9)bDz>xCj@blFwh6QCdnW43{RY7kmjPN7 zjXL)v`Y%cjvdST(y+aNovoS@`tR2j$p^2HP^FtBiLz1FnTWh$m9aE;QZ~;XPavB~LrIMdwAY7ShDs?S# zLR%o6sa{!=ozh68ZQUzJ!)#qIicW>xRf!=CL0l}a@uO;a;13l>U}Inj=SKA~V&XU5 zT_$Ft_OM#52wp|97zDV3Lr8dKf#xQ9vY@VoLE-=dd{oS3ziOo_ZuQRo#Fim8vpLps zIr%uu1hd#eb)E6e{gGtHfFAfWqOaTFoS8QZjm^LNu3??Q(Og>bu#fC}iDIT?Yhj2j zL#Ip=xyu`yyF0;~1#)`kB%2>LPaB;NWY>)&YOvmwDT<=@(c`Q5y5h_9=<*d>f8xN! z`7}c;J+Gf!1@!984tA-nTkGU}30Y~G4D5K2Rd_~USu~14J77)Sm}Ss~2O3BMtMnZi z_@PY{fJrh+!Xn@#Kb$83B7xWPL26m4Gwf7Gt{;w{ZiT>{{`yV(-hJVLNPN-;o zV>rm);O}}9o4i!Y&KS{JV#ca;zSHbHNr`e;Ku9jE1~kp!k72YOp^A$P;%Ov0^fCr16k zaI3N4zG}1qIMKg&9&X5l%SSjbS>(ASH~&*_bYDI4=$|dZxPB zxCcydmAU5eCHU1g+d=-z|seJC$ z>*C)0b@_DvTj1jS9(ZHr2%(22vs z8C-dEXnau>Q;1WoLyf&RDgIdEL3TR1?XdR@OhL@3=ex?`!Fbv?)Dfp_1!j|wb=yRBcz?}_* zF%gV>kh&he$Q&P|sy|T-gtiL_p)W^*z=AxYY9ws3rbY^{+Lpb)d~f2bOHV2dJl20SjU2zUwRyJbnqbsx<1>4sIff834iPJBR^vq|vKPIj+77&Y;Hu@@tn*k{WQ30tCbriVQ*OqM9&NLo># zM^=Gam#X%_7`IW zFsq`GbicT2xYqXaccV^~EOWD}Bpz=Ic*^o-^EKE9@X^r3o8@3tck7KtuJ-0ZpsSTZWbwLQ*Dc5+ zw7tK9E7+HPK|0gy8gg$rbb{}sC@|lig`-^1DZLS9emaw<_Ys9#hJUf{LS-#^&>XWhbb-R8 zK(jX!!+-5ABR92Urx%8WeO1LF=45jzu5`QUVShlJE&RL%g@^Z5G?176o~oD3x240! zjP*#GP>(ZPR9^qFjZ6Zi-8Toh35nYwWN}|pZ7D8o1+XF{wXO)8dd)VDVk0n?JO>4r z@u6ZxHQ>B^0Qwn1>b&rV>-*S{gD}au>Kh0ey*a{CiWr)Be(mSLj1pNKu+`Vjj(!*$ zL7>XJ?upzpb5VjWbT7zRZ)2og)(m+Hv5?#!(59=?G&wYGKEWZ9wT{`qLXoB%rFZ;Q zLcwtKk~QbJfiVtFuF27|@+yGIoS;;0Rou8Qj#Y zAv4!r+T@nCtKlvKU%@4d@UqpUUYL17-5`5$9W>&36hqJrMS7i99xB#{T~kipPF0LI z`eS^KGU$%jDQ5P1Z^drX`Ne?CaKuGh5S~CCE+)cNNpZ=~Zdcb@AK}z! zQyruPqso+;suCB#P`n$-Cjk>6j8!fkY@8jy9>z-WXW|<)S?6Nvw)y99VyP;y`S=j@ z*0v~uoOBLi?}NdUY{k0*&KUg(@mjSa=n?onM>9_fp5+ zWIPD|?p%u9hdHFYoZI(AQ1S&Iq0&5h8+CddrOu^B#2sTc25TEMPsTH05oN0$Q*a%@ zmg25A&_l+n&4JJh?nM$Ie2gWR!Dmayk9_MWyt2j!CeYkQdnSzBc% zUKLj&xU<+O_UlB->!GNOfw%}TEyh;3bzqXtkMmyLmz#KNa-ZjE2RPiHq|UVwJy1A; z-9m#9K!>hA)DSw`M9^_$_dEL|us@b)15<-&!ZALsfZUZQVTK>#gQy;F^F?qUR`Nj; z-LJ~=B}b$Bf?gN({8!h!R>{_+j`DC=#DyuCUr28K`kl5vQA8w<2GV;9E?N-SU-%Z7 zC|q*HC}`#DNXEKrbZVsTuZ6Tw0u$4@8-}1T)HP_I;Ou4;tsY0pCO$s zfLh+)G^!$NIxPIz5esDCb+fRixbDs;&p(0x81S9weDY|RsTg4X3=R68lT6%c!ehcsqqMJuxu!4+d2h(qsqE;=8f*u3bKbt2Yky2g-ct#m70t)db0!O8}L$&01 z-n*oIn%kO#+WtBd{i!YWITIk<7c`>9LV?TL+0m70OBaz7{Wjq92@4!U)l_*^!Ogl_ zzG3R})CXSZA7ZcvEV48$`f)Pw_F7G6uOc^oyYoT^o9L5%?T*GBSb6kjM>(DDx%CDB z!}p*h!Ubxb0QgF4d-|)CUPCuiLEFvY9ln=|>Dw9SnaeK8SD+}yvcjNel6E30yWL34FKpYCT1xPIEWT!? z?367*OZ{N2eooVUd!##A@w3HknP}={qdZ8+&Xb-dg&UYkfv8%#+q1l7pB?EoH=M+VRY|EoJeHck>|GVK(l-7TKLnp zNB9}&Am|tJYDc~Z(#ce4>jRzrtg+XveFU1Z3@01gOk1{hoMZ3Zd)(a031R)d!v1(t zQ2^yJM6W*TSe)Q10)ZmewV{Vzh++75((Emv|h2q9#H%K zsBs}zRp5@^-2gIs?e_P4mXo?%nPQPtRPP;I-_F3SS%;$rQFi{e)ZY1C0`d&rpNV&? zA}x}@y+A_AWY9O`B=!Y#3XAd(g%xt_HIzed@As*}53Ysq0|i>865#_u77O^V$7d6hhk;5 zh9ZCBbcH8){(RF)Z!^@BYe7*2kEA-1l{L+-c!@5l|rotjf4Gv-Zu_MK8tr%(6afLU)7ofy%novz{yfo&HcE8s{V`Voj4wlAMfWz=kdE@qg|Jz5%#q z7QUH^l;T-USt5e1WR5(W)#)N7(g*3Pa+gm+Nx|`+R5vyVH=aXVSLq-gT*uypaf4bf z=yKejl|I1}{Jl_~HYyw6M9$NKD}}2L{Lw0BH4P;nWv7o?JhKk;5h^Eq>6^3$gu}Vz zhV$~SbV_v@Gll)Se86ZH-LQdXI$qmdW!q5P&>;1ZF0$-i@MgS>4vHg*n_7#TbkO(mOC%j#frKuUjHfWySJ+Y3QibLp04-~2< zDryCRSg%Pu4~66uvNC_R7$ZI8v7Uw0k}qEn3h^3wAzXr;Y+igBl{ouK3`rBf@7q2o z#3gS5LB2R9VyOMVI^ys!ZUEbUM7LyFbJ68!Vll&T5eXZ9h$(tSk~EsKSGbUNu^K{sonAX}zdLd5-x!6&)OWgB9*%9}4ad-TdbJs76$NWvI#zx$ zMaoh076z0mcXuy)!yXd5VU&l2JYI|Fk<;T4jIdgki%3R?w&K?nBCHV9)#_bY?#Sx9 z&~_Aug_{ySa&_Q{e%5ZiYmHL;OhOHu)g5pjSwS^WcB^``mPXGM5ZC3>sj!b)_u1Nd zm}yQmt`Ht)!*cN?F4se}Bi<~Uqb#h-Ae5ka=})=L4;c75b86LW@k2*vcI=rs1mf=y zXYuUIT>Mb`;IJ|}@*@s4$rOjMp9B#5DjNH%zm5+J%|m`?H@8tKyQZs4t0?4`&5&zZ zHp_1MV6FOID{wdgcXug>`a@!g91`yw5%6KnR1DSQ43-lm=H3wO%&azjZK$(YqL&!k z>$hb@8y&gW+R~@VJTIBQG2`h<@TtD%P{A!oKHZx=Fi!s=(8EvHn}}*wu42An^*9oi z_Qsr7GCSKwPo*9@gfW$gy2xU^O+QFvI5Y-JoEln=Vj0(t<_Ps>a{@J50JH@sT0K68 z6AoE3D_BEYXDqH&at>c!b7*(jbs@VaRm)F3Ki)85;OcxeS`x2S44F)?WFlW$Zmz6V zZ&o(xKc-6&brhkSj8Ew>Ce*uGpE{(R%(Js_khL9Mm93`bC+fW7A0cJY1EG!VML#ch{E4 zPW#89?_5jebsvwaC-y&t3I1ma|39S*-QSH8=KnSmGW<(3;ol_E73&8vNL^QEvFbSe z{DrbJJ9Pval{Kk9W(Jj?Q*BaO3CGgEQ09m~!0Tlq)yIeRNtbt8Jg7Sz>gZwVK0Yhe)b^o{1HyZTa=?l8Zq~j%r zWsPkYD!pdsV4d^>p^w%`FzTw0Wc{|NkA8~eG?e*XV3?m-(x!g)^$4um&rL`%EMRnP z6@xFpN~g|Kc{$GMV7aKlKWktpGjfK!KM+7uo*20xwRrB3aJcSKFS-V!4vw1X;PZTj z)S-)&%Qz-4WG0i~%n8+VR_CW@r{^zBUOYW4T(4AhQ)F4sEbQ$*p_5B z?x{W42XQZghvP1iy>E`GRTX;wa&Ivx_a56CJYywoQ+fDFr72d1;ZLBrRM4*#+&d2} z4HUT-ad6TD+fe%Joec_e$Mq`U`-g~@1b7m0=29Y#7H~s@NK>PrZkV!vVSPMShseuu*7D%2@Jw@l) z`>!;4QO6bAneP)S!aJMWcf5Qp#C$keIxQCZT(_;EQixR%yl->_S5vqFnM>7)Lk939 zOX%&URN)aoMC>JNIz7T^0yRy;dlk+T9yZBY?t|OOGxB2agL7oY?z{{9#7n!CnPsc9 z>H38&>M0eu9*v6?gdj}M_y<{UY>a>+>#E2$k&eUfZ5j5oo}E(RF~(YpUA3OH0B#U5 zCMAU-QV7+>1wo~`*a~qI6)$;6tDjV${yC76N#f|OMJf1B@c;-?XUiZD92Ml+Qiz7g zY$&O}0ao7zrD6=U2r3BGx&|p{o1k#R+6n+S9s_&h+aZ0>w@2!PtG1|mpoan;F@F|? zz}|%f6b2#s&KTD1nyIo1OtE2c<^zqhg9J}dDo(74lVI*%EX zKF84JOfO@5fD>7Dt4IqpQ;?t!93(!XWLvsIz{D43No4qUmc+(yOXB`_NH|Md_a?AP(Eo0$ z#}-M$j;x`O7pp)6k^-u9eNqz(Ukvo)iPdQfd)TzSxh&B`SylPAToZ(U1aWw>ru0y#Rwj`!k6MuXal6 zzSlxb%@%~3HfqpIKlhZ)Xkc}$_;m^cw@**@E?(L8D{q6aVR%S6~T>C@eLg{r=f%RhK?eyi?Y(MEjW`7RwlOY$ub3=wgkzg z?gFigLgK%k1Vi8JFXZ7S<(|>3&^b^7Y}x)Of@n7uWsI%THX%Ly5yT>IX#u#QP3|9T zBh*u4TXl|>m^H0~DwS^(oVHt*wx2XYrQK5l0s$TGygX;2(zrqNduuvH5*XN!fo-Uv zSVjT>aHa_3g7WhRN{hc=tId$PC`}q-?4nq8Q3l8@N#}D1PQ&lZclsdL zEUyUUVJxdbXMhRm?Z;8gS?X900HO|pahvw3`Z01tqI9}(G0HX6DS2_`C?J;n*OCT!YrY z4pMbob*?8W1w-D;syRrgtYmf`5YhW|Z(R4NlE(qKB}RZ8J3~0Bk#6wvk_~`w@!80% zflRU88J0@1cTFm2K5;j4trw_PYYwk9;sgsc>;gM9?LCpNd(5GE%rQ^AkSxyNru{_L zM5p{Pu2f8GOjUWt{U^0>IoBloQ@e-ncB-Z$>NwhR*U~0`dx`E7lR@9t3B+IS5ozVN z(~(kWx|+1p^uzweC_P&8NT=$<(V05|hgKREN{PBGSy>dnrvAVt{mH1uR%I3;X{s7M z)-5t{(Do0*`0vf^|A9m^{DbEDp(W0i-SAu(m+I@=2PLELxWs||T3RAS8pW-(BAqI(@@sY$%1 z`kLS-$i(w`RH~Ja)=LjO^~b~3kLs8gWrrFv_qV(H_oqu>$e%1W4^LjG_$}XkWU);) zskxKcoBWs_)QsHv!(RmpO%axRO8QE51m^*Yp2S_}78}GQH@@(%GvmM|%~w#C`bN^j zQzzlf_7%2?8YlD5@Ytv-FHYU?NlZXTkizi2`G@^}oLuoUL=TF|xXv*aUYwC~Bndm4 z=HeL_`-ZFYz0pm&n1Ds?0s)8Leuve9WSSa&C*SH_-@7B~;jyjBn_E%2M z)*3QzW^k7}|D=H*lO8K87^lW7^*nChzT{03ovkQsU6UJ<#|v~2@xG02O^%AQz!#f; z@5+m*){OMLe=mv`SFTB-XdKgsZkMh$@gF2l(+j0cqEVxoto5k?mP0fFA;AvD)bNQg z49W_Dn&MMHuncNL^;ZT4<}fn(ikOJZ{z<+9<{|C+ur!Q@=9TFI&Ern`l$tlxyuv zm6zVysJs2OiQlJpvNj8KLD7zpJ%hJAnh+#C4xB>=a!{_R)Hl0G%>BAxeDPB!I+ zd+!imb-3dgNMbzAX@p83YxJ9+mZ(gXRw-;esHn)DqX@}jA#cH-<}NG8CWA>xNQ4Nc z@d{s1H|8=^#>R6MacuLzr@e|z-3Ez1NggcaAu!)7bXDH+O;U1q2rj5~G>!Uo;qXMHXHAExqXpOx+-+BOZpd^chY?-m6GIp-xD#+xNqx)FV`a)kbQq` zw%kVV*bu5t*jC(~z7&mS1d#Blb~%$N#D}whC@8mRXi!OkkZ-OtqsXWDy{~P-?>UaYA&MpazGI7|9 z|F83PqEc&kH|6Op&Zx@SewXLB8OhqwV~&LP)c1OR zNm>!V>mEI5AA!2*K0+C9Pl2rd6h~zDH12e~t0*sj`#@-wu>eFjYIdYE|O zz%gthZXy`B3)upUDkjae#oZ1hNaK+`ZsIN3NRz#PSc&nYRHQ~h5GNDMg@N*kxsFTP z{V<1Au%^o)oxm8f-9*rflkaU)nck8RgDKyfQmFgR17(LBH3BZ=J0jd-7dfX6*YQp( zL#L)exVI0O%-wq*^q=fCAA_f2LkVg2PIfC%!B1 zaZc5kS-UBzW60IQ2YF&#cNwbvD8VW~J$Q@ftM{Ns8ACDiC3J?5&ReAx_a%H1AEds% z3ED_BL6IdP_9%pt6nXqT6hKR%pNdRP9h~+wY z)fuuRhQ+c6A$)4<#rcMgR+c0LXmhYX&K}Zc@|Kp--pef=E$VeFAA1Ar{v&`mv9g&0 z((GDb=9vXVf-x*e`NrWWXD34%>O)Mi5!&rX7>l3?$`T0TzMVbTSniM;4JB+S$Fxe6kBx>89-rSa(ON&&C?J6?yCr~@{GHazGD?@66L9UVh znAkwz*%s*?q)wh2Guf3icN{ZLFkxJ}(%6bpF|&12z9v5r{Y-j{M)p)_=VB02+b)c} z`QGMZklN*VNs6^@bYyk`Gi`orEmH$RE7y|8ih@<}OWG5MiDW*P9l9x{jwB+y)h=Zv79nle7wB15JnzQtR3dYTkAb&7^Fu)p zU+mv}yc6MNhi3rS_@70=Y2;cn@^YEnZ{JjY0N}Lxn~Ja0RH%Iz?&%7PjNbmVm2e-< zP3eW8{4nuP+3w`fGc|=je2|nFgAF-jv~*ZM$f$M>bZWCpcF$>@q;IhAS}aaZ-=&yI ztTpF~Nw1Y|JI*@eS2b7s?V?oFqz#=ii6^fqM@uWX<7_b3)VoOYbH$GG(w!=EO}~Cc zHqJ+wPHd;%v>BsQjovxs41(S{zU4W8EKM-ijl;%9H^?+&EfsMZodQTteR7cIWQo%`hqtNYmXg)85js+sB_ zhQ?GuACJcm0q8>DKji+jV>vT$BMOmL&D^ikVy?6V5}L}q{Z@4+Ouu`UO09$xZ+MnQ z69Oh(sgj80md1#r#tPD!Z-*bO72dO0PO~6npS#h~#KhGq z0Z(j?KJiTU`{t&d@lV)FeQDn89p}l913KWG_sPvX320s-rae%;Sz-fEaC~8bGd?93 zK4ny5vyOr=sJf;NNVAT;$@|^36 zoFcI+l=sc-fKj4QJ%<}sObGwCdE0DDgtc`#!q(_G3HUbu)|o(3-{ALeu19%?Pwm3k z$zd$W$%8*W#4~UW2=TaQfz!cOEK&Gnc-6AN1=a;w_o zg}2zJgU^5}i%d2GM9%{dt>xJAD}tWkP-GHYByOCr;G>y4+mf#kHkdEC21R6hmfC8x zagOp>oQswV5JS_T@1`h0lj-cvww33o_Nx4a)hiVEPZ3nOKO(46d(jlwJJB>74xd)L zs(?|n8xF3XTxt_1fbT{>5PKT2teRsYK4ONfol@R>E6t}#mj2#+q)J29i*rq`=i!Oonr@9>&%CrIZHMov?O7n7IkAda4@#}odB`4?k-5!mIi9w76p zhM=TL@cgmeTTQpQY-brNo8U;7^5hb2CiYY6K@C?^tvq@riSUZRdKLAYIrjJi6&Y%= z0xzS>>qkt(iGk)kt}Db#o6&P#N27;Rgs-OJq9z+l4sD|06-Qy!pPC^&i$V%T5>X|_ zE-8r!D7Xz#*bl*67AX@p5YGM_BiIH|Ki`N#17K`ZA)EBZkC0FeN#`sc z-IlyOyCZjJvFJEY7W`oNFha%ZnHkbVVt3$&NIEY4-4LD833eeLj5Ef~l?*-wyps_U zA>jSaJCG4s==ZuvxUhjUP_FKdInx^~*A!y#*Ddf&rCxPnS{;LAzgZtg&my%5K@qbW zj@~l1)eq<8)(Axl#&*puJ(9~fipDyuTgapw*!GY|M%#G0HlA3UWa#;pPDV5Zgvi6Z z`$Zc$zwoE`Cg*;9fMYN8fx`CH0-=&+oW!sG-ix@+?Y<$JoZEQI-lA9b*tZk193HkI$Uhb-QtAAfa9>r4?bKF9)XXH>K}qI69Dbc4njv9@e%)FRX7L1xvX7 zNBVq&B)}S+SXjB8oWr4R5*wXoKiNkSJh#uG|BR(fq_lZ&ye)DAZ&RO40@sDO`*%Y> zgZPYdUD$)`(dH1(!mFWwCGe#+>mW;z3EQX^ZNF$|VkQh-!AjAS^y4bhUP2{z`t&`0 z%E_WNo>8&&Bih}d0<-D8~K-$ig$!53BQo$X$Ny6 zKr+d6{_u{h!pRn7x|LmY48o#}8w-y}N(IZh14C~qR4dDiDJ(6;q&;CXt|m9OxlKV9 zn|C!Ob}n)p{{U)jJ>mcFng1WDA``=ZerWzds>tx~q>7U&e@hiNliAE9R}LqMrAUU4 zs+LHk;q1kKs_}y$<5fl?ei^H=o zQ>DO(Wcydor=Ek?&rX(p1@~28uspLeM82FJo{l4>M27hLh4~MXMxHX#;M1b@n$=4Znt`a51%2l>+#-_2#-x^( z)@YK4W`tZ7`~Z_|F^$DQ&i}Y>l?MV4ZA0Ud>VK)Uyn-TZ(M-skza2{{%QBmsZhF9x zDo8`i(U2HxgdEE&{|ezX69YbwvC@oYIHo5DWQG_Gr~ApSCjhC znc^x2pCz|z+7rISEwLupjUI+I>ZpD0Gg`5R2zt`I6DZk90W@JOa(Bm&DN4O12$oMa zq#{SFg&q<%Xm}083nb!1M>9cDT}B+=AI^mF^Vk|>R1EBDzHCHcZ+ZBZpp)VKXhN%0 zE)ykA?^LDTmFRCss?k0nX1xwWmn~L}OX6^F2%16flYhf910dyodz@HA7^i)ziBg|4 z^|y{APiWN&b*dd7naQBTI@~b+&4F((8(N*`G@A0-iR8#o({y~Ar7X75u+z$IrSr_p z0f2NN9{A+UWN_%QzMVd`cO&5{_V?=F;GtMKYbmj3W33!IG;iPD?qi zXp&MKG+nZdd5oyRupv&%&OK8#UI@SOJI($BG!?UhBJB(vP8be@2xeFjb`r?Kq~@p_ zCQO5Zaj?h)svk3WmU)waNCXXepbBGvfN>;;**m2z3`b93*ufVDuUQu?%^qw7Ac8iA zPXrbRR#Acx@_UEg`DTLw%zuKdA77Q_en0^sSMOQCL0OjxB{l@i0Ez&yZZxlntQKX) zF4EHBZNcCWIU&W4m)_>+8w_uo|0`G40p-Xx@kMOwG+6>AQ6(TU6)P4>p&L?}q)wWiZp zU@5RZ)`rGVp|2H%EVN8|7stIfEZDMh$J)^XDfY`At(RQC3Tds|+wybWeCcs6^PM`XE^|<0_dM5-2Bb9%rbCM=|~bp?wO>Z|fkGOl1v>H1p$um}3M{U7VUre`L*IZk#n z{kL?kGlt)}yk^c{CyeB=&dUO+j&41Z3WOw~SvNXpw&F-Og2Xar$)2c(bz8bhH7Jd& zCbi~;p8a*|PO#P~m&PpDk}A#M$~ssp?d9iE5I3C^J#|EzAB0|@G4OLs{$Zg0eTn{l zVf;HA@(*G}hJPnU{2r*^Sw58SEFW8|wt74@L%&9?8?xo-P=!3Iq!Ti-A6;{uL@Chb zl6SXpj54|G`PwGd|%wY@`?~AML+8ELU zyma=Qe=7dBeB;_8@SGNQwzl9wBut0Pdq(ZXvwn>g?Ph&9_Po<{rSP@$)A5(|?Cmf&1zNklI_c8frqv(5%?jEcx9=uU`_nj6>0EC?h8^|lw_;3kgasb0N{l_tT?VbLlZ?F!VnY6aZcIQj}6%-pY8$5+R)y>`2f22fO&_XDC`C|kH=*j70XeojyDdWHt zV|Cg-3vGTAulP;PVha~CM~oW)w<`4^%nCQb5Nmuu&B`0bVwMOL{q~_cpOfHa@B+>Q zC=?Og5Nd@o!UWxyB4EclepDvN zD7d)NdvN(K8%shQVi$;Kl}SKdVH0h*B`?aM5QlZ=kgy$bO+Ijj-#irc#xPNdQ{+0( zkzk9r>y@?SDm~8mwef4yW!p27&(c#zUSl%9t@d`}`DXf$;Q=Ea#_<+`H9Vuzd^~XC5;dXfUtL+K3;zL~{)4B%5)N+<@ z{+hD;6c}hs&afX~lnGMe?FDn>I6||~7a>8{O4-kI} zTu~-!Z7eWrCcwz6R-Xl{YPEj<{|mNOGqpKVzk|;+Hv<0m==zUQkpBMw8vem3$nfus zf`uyP3i+Za-$ucf?Fgl?4oLQTCCpWNW=zzYjY@IUz=FsNO7b1H&$rG^P9Ua$2`UBs zxGQ@+&)3Jxek{>E7^DvsuOQmKSp7bBWa8(bujRgUd`5r-yj|!FSBSJe#RTF_#a?&8 z9GKvR|AnjNq~w{Av%Aptf&5Xs%D!;_f|w9w>}@aTuNF(AC3|xRHE?>_%%;uxz!pFO zHh3BHmR^!`k@v+}Z|tP$0H?yrBOW)yK!8BB$2rE+E(vP-jB+SC<1W4v z!3oNfM+}=q;2Q8;j7O21oqN-7ER8<~^=*HXz{#5B+j-;+U!rFpQTEMtu)m-w>I<6Y z&{q?8jXCmPaUxJ87+L2C71*neOF`+4a;H=|Pnk8bxS2G$rq3iP-}0k|#mn1(ze53o zS>zMIq=)#jyrmx*6!DR}JqaveCTZ8nXB%sW9KF>MR?CXx^w1k>7->sFvtDhoR=EDc zUez391^s~AhHckAbk}cV+%~EExjk6s9c(>i7jyl7mpCJQxk`hptSbH6+sn%oPjNEm zW9LBc$};o*S_WG1iRHvk)7|!JUfFxb9`ujS^zaoMdg|mf4fydjntn*&NAhttEREGj z1j~}`F$!~#E!Xg)(T~rIzM>PHn1s_zAJ$^$t3OF~2OZ|d9C=y=bJ1tY#O0;HIt_K# zsxd;Djc4$*LGBf9e@qtlV=f_^{VF8>5Qyd#szD`PvGUbB$i>6RGC^vcX=4s@L09R> zGX+w}!{*zU1+r6;grFlSqd}FMN+_O|m8hNwD4l>%mX+g!jC1R1Y za*Oij;d!FjImg3ir8H^P_AGu)Xf_{LWTFwqOk6`OhA0)r#JBb`KW2``-)?r&^oGyIgK6TpnG4B+$`^{jCGaMJI)e=^4 z2VNmvw4`wREsY;pN3Qi|&`63U5CQ#y9LgF>XCbw&vJ(H~g7D|;7@EJZGoCa^fht5z z8p$EiC;?`GRq+?}Rw5;r*00by90k$%*^vxlj7IV`<$b>JJvWP<5qsewll=u45itqc zyg}jlh+EC_6uB&{I>Q8Ot)_^%>C$Am*I$ba;$KJXrdEJms)ErEyys*ea=1mg^G@=c zLWA2ZWwt2cSe0Lo<_8xJZZg~Rrbt95cEQd5WzuU`&|KDv+AE>et7op!XM`@)Tfbts zpgQFGnJYxBt#l9UA7= z7AH{yYe=4Za08W-8_x&0yV+cWv7BzxBr^?KoE4UGUM@?(Jb8o07oByNr9|)zGHp_( zsCKpgB;__Hy^<6{gCYbfj*=_GD z{RvHB^3an|D$q+U(hZ9vNnSmlCt6UP_={l1zUY?h`12iHll`joAExu)7fVK_|CB`j zLGZ`;?*xB~s&Dq`!U&(4-Fm~_s^ZXH99xt6!bzzEmHX^LlIx`mFnp?{v-&_SPM>dE zIPk#ibao%2hqI!4T^df^A6Cvcth`WQ1D|2jHY7M1={2GxAl9eu1fKD9;Ji18RXa2J z_|R0K1m6?7J%<;D;XAVo^^LO#DJ=n;?bQ$?D$z1+xo4em>vV&CGx<7Pc_Xw9PlMbN z^Hh=K|GImky0uPghx@w4{(8PYbm@-bcKp2eSWb75M!u9ksa*yT8E3-mcsUs`wbGg< z=+a59$;FRY3|g*(xo~nw95%pcTs$8)(QE;(-d?aQy3^F>0 z+U2uaf_CRoALY|;q(4$(-hNURcB{2#mpMG__RXvV@|ynmczNWFwB z2USlnA|%3cMGoiu%F1<0UFK&dXVETGc_KaCAGZZ}HY-NvFZSia9^lklTEg;qJuL(d z%8_8+Ww%oGgc=-0<{48HwWH1-R=EnY?vONRp*b4^C@4@<=4A@gobY?pzyyq_#IKfl zvB+KpNltJX-)Nq1!VE^YtqdW3O%_rk2YKZUAJE_nMirRfs~0o9QPF||Y>r|hT_V3; z2N96V8a&{{;$bIa3sm1od8n*XXPzd;lqGr@rmw%Eygs{G&d)GLEOJ$j z69;XL>W;o;nkxl2yb0VI08)wEB78x$Rc5O!S+n2D6=&|yDb};g?Uqx@sKq<})cUE! z)uY7?%W#Lr-(zR#I_Y*`oY+uHHo4OLbp`zX@Kdjm{dF=>aFWz>GVo!)8b!P8{w0SmC*IGLBdG|3BJF9+BxLv zMzh|m7>m`zgiSQ!f5Og1sTsvK)ga2`Yy{LMu~ctZ8J0Ip$0cGR7?leQV=w9fYRwum zpiVM3kZlkZL=J7R+$n4Yr8O{z_PdbVG9&lJC$J9Tzn@vZr`J~4x4TW!(H2rm@Hav= zQYxM!RBqu|m!mZMZ*uSQ7zEPPJF&c+SY@_T2DMGrR;WSH_cGdiNlL;Cc#=2Okl=>> zy6To5Oe?!)N7KmEuU+Iowf7E=9$e?XgWMu6)6?;9_edHzr_%fS;~QW8;@IKy#D`6C zF;&MmKV(x^g$cE5)v9vt`X^H_?oV8>xa?m9cc?ns-A*gKnWeGFlA_9zq;G<||2^#+ zJV4riO{o8!JO5LQp!@ZAErRhMRCJ90PDR(KYH6RQit>3?%{EUvn1IXdy*Ja<&Z#qsT39Ja> zAb$32OC5^@+W-{cUBS^%gP7((=CPrV>1-0j@Meq2g8P+}06+d(aDc7QEO!4&eAQVi zYGkSyb$6%lVuo#TS+4JLe61rTM;be^*BwKsa4d#CJ>2XqbH8?}#c}7rTs!ai=2nvJ zjh2DaiyIO?3rm5XzqTOi7`+?rhU$;Aar-y_P-32PCmYsuz?$9T;@!OuDxLTsT3z8A0pbo0@5oaTGHV2n&-?|OS=$78WoOG!} zCw$%K^-R7MP+eijG_$gvjxIlS)DT8iLV%3DV>kL)g)G;kTxHu-2M?Sqj7XJa4^v2= zzLuO#oljHzm8K$vOx5y2u!Tpb)ERkgkw4I|%-vuSXS%V0Ss$t^bIjPEwXHtUn7Ff$ zImAC%Q|NQRoH9hLfCoJwMJ*wvSD1p+=yVI4!t$b@)ByU6N<8_#{I2>(z*G{gMJH`8 zGPj=y1-$taf}9tT;LX|=7}j(nq#SDRs@3@UCty963Su%fT4o$%7kuBf(tIk+&=H_&mfBUlf zAWH7u=&TS9&L1F&>>^2q=b$7&wcZYT`!;hcJ~g*|#c-FUS*L0I0#G zu}6`DPu?VBpxN^)g>Y6e`VPy=NNy8Q&QUj~oAH6MlZ-l z&r>OuyD#3MoH!OgiKCgEc#mni3!+OC)6o1hst4$A3fv|0xUtHmdgM0kPIO0}fQFeU z{1)@l8!M~(LxR1`ir){2*7st_6>AEOB>hXnt{hDp!`TDMuCh29xY*ygix`zAW{ux? zUyhS;-8cJLK-piU?5J1<49_y-R0QqlB*QEVZLg*th9n5-9U#P=AjHi+Yf2fkS@9g& zoYnYxS&Q)Wc8tW?sHT!F(K6v4<_WKzp^!HfO{zQVdcO_hX5!?;{Ga(*v$B&V>vuS( z^;p(L3g0G%EMl%QJatp{AR3Y$i_1$Na8K!D^43?N?6}{9e%ksRa2H`=R<#-G$tZX3 zXYD()n4AYE9#fA=WuZt{N~#4I$UxzrpXJv!-1Ua#m~}4pykz|JR|5$xG5WNk62aioazrL-xjfvO@=q>qcWyr8KM~66u03@Vh{no&BW zm8zy~v|9F|=%`ZM!Y!*Nmm*tA->ipPz|{0-4}^BcKCdp({4}~_l9MaYjV(11G&iEe zekxZKiUsExRU)oUEH{ynN3FUZZxz=xmM#y9qbdzh7ycX49!?W(<^JPz4j(}DerqJ%)9o^#i$;w@Px zH6b97pE=&pyK21HKKJHLe$_02YcpshVvB|~coZQygGMuoa^F$k8k#Xo=gOnP_M;hwQKP7SnDyC0oC%d1|*`&FVJc?qVZ;iR|cmj@-fjqV2P{Rh02O0G0VeWi0S(Iy3o8IrCRV-lrijphO3GnO z(^Xy5w~%Bp0Y*d;$37>AS(9sk-VC4&U&*l_Nr9bF-kXBuW8emq2iV6dsPW<#w*20Q zhOOJ@(mVYCK@eU>FSqyxqp9$PNUihN5fE;Qj*@51i_i%@v)mn(iGD9cTY3)WrD6yr z8ldBzq-Iv1D;-3t!w;Q*zBW9yl^ii%xr}~!7n?N=M^^_q6l#0=)M$K-9}gR@zwqu# z^9V@`7ri4+j+oxjlsp_exLAf76IEzmD>k|9O@{S06p6E?7e8c)3?jWkU|Q}ykb;eC zJYO+*7Q0*vg^wDfK5b9xPCLBj=blD%txK-O@vtWj)V*p>q1}catDV7@vz7p=f=c-A z4qQBbjWGsB7#JU=Rv(OhoPy@I9{@{S6FBtaxCGd!u&~^tMtmTg>W`^`L0cc;7f|H2 z|3(}BfQ{5)7jLzo!y{T9SjT@a#wN0WbJC3H2OlQ0^@=*%p;E0ZHS@w&!uT@$G0#~> z=$buquGInjH5e+|p+96^=RAGP*x=r_T@^j03}RSJ~{tu}nmu(OQTB zcC21j5t@>2X!+jSo-fJfzNaxLUnlh)>mB7SeZXuhsyd1vX(Jf3EOgR%>gz6qQGomJ zi|c<3arE>of6uOeFvNX>Yw_vu>cb3buFP> zG77)p;OXpt@fT_y4;$wAYg+@Qk3~)U*GyV1Lfzd+mH1IQBI-d{_?M2hr=42-G1N-L zX*j*!w?4XF08uc20zV3?x0Kt|({wuHQEWuMmgnFh?EplzJE&WFQJ6pk)Z`o#K%b#O z`RR0Ef@pqzbHNS9%6uJsn&&`smO(bzo5NQvnD97Q;mfC|4B&d0A@~8DLa#0I9Ctd~ z2fidS6d3`t(4dEjIQO9I%A00h#5#z>vS}0{-cLv*33E6#yV~E&g>COJ*2@!49Kufb z9{uZGdPpepJmt~4L9`}{<6AZToPCoYaXz$H*%az@Q&2KGtGK1@%#Sn{oSq|v4WViU z#CI4od&pl^5isk3ba%gc0VMkZ26Ed0CFVpgoGf zehp&y3Q|nnV-=sAvw~&OW~}O&{#bMN#XG_~3Lk!v8=7T}fID&SFhFO@R`Jq`-{$+?81Q1o|VfiYc-w;+8 zBNbpom$yTAFH&y+jD!>lVV4hgD(DwyEh}fJBM%N+0bUE6+CV2?(g0xgnPFZ~9WL$5 zwIF8?)Yoo%KB>eD7?g#$fY|z|I-D zvJ~nvZ?PftXevShkE7~1c5_NsJ8N&%42JpDk`~H26pOU-O_mJ0sr!?I$AM;x_xXtW z#QS(xA`$l;*e5l)h({lT0j(r^7zlRAZ(&{)g{0dat$-datsV$d$fg=HpHNyKm8vju z&Ry#NW9%K9E77+u-ne6T*s;^GZQHhO8y(xWZQHhO+fHuwdFq~htIn>vdwqcQZjJw3 zV~#m~$!=zHC=qGOzoF-pj_b(jQhnXkSeOT9GEtxE!K)eI__ErKjNN5HOv*ZmZ5xb` zZI)3d&Gi!68;C=p6eoeE3|&J^So@WrYD2lQ45zf$rn*fG-P};NF zwd+|ar%W?jJAbo);9`WD35s8(LtKPP`Fdn6g2JeWPROYOyipeq72pn+et*AK)L5g* zYsCtNtt-CxK25IBe7%qaS&Q)A<^G}V?yDb*Yyb%)qF8Ed!ynO3$&RR=8D_*pfpSM| zhf8Nf*b|0K;zsN|RxrhcB5FzVp$6bMK}8cQ35}C8+N)En_Gg``fD5+C!JEA)zPO)_ zNt!x~OLt&dRT$KVyES-kmiq!moyF8Qkae`KMpJCv_HW!C^?u-Uw1N4=hM&C!==;aX zi>&dHwGSr|+9Xb=9BRL)O{Ku!qIrY266)|=B~N|Tk#e0P_hT+yFn0$v<(viF$!33Z zct^F);0rT`vNpGp#)WmYw2Biir(Jp}cE#uOEcnSV% zvNACKZDITagpU3{G@}3Cm*CsN_+Eki#TZJqE>jF0zeZ_qgQLx9k0-uFEMHerWelJZ zk^-WFulszVwqh;O%0IW9mxDaxk#0S6&GwAJ~~F1Hi@$_SY_`4#zKF2#guH zvF|I%)Qr|Iv2-DNU-vPIyC-F!LD^Q;UnT@*@cv+d=jxE6Ev z3?V4v-PLC^mev!7w3V-BPKY2R)Tk??#^K|g`>2b&izy0?K`n*LtMc~n|Y(_g!iKMZ*nXrgHp#t9o z)d8lXe}XUY$tbvoF^r3bJ$G6(Fw>Z=s?Rqxu@rU);*?Olnp)4OyNB(q0tW$ZSzeUC zSKzk^3OcQUUy9YnKEj0U`#!swR%z{n?j6q2t-s1I?T{EYpHTD9^9LSk1@_&5H(Ov` zGe>9$$jNH7XRGNfG}jBf>S#wOzVwVGa^+IH;M{92yT2=o1xG()<-b3z%oT+hu`cbF$FZ;lD95Z-kZc zxnLXM%0-9F63}>AGTk?w+;bWZGkGdngjSeh2|nMFs>wE*=^k5Ild`X%6MuDUIBytltLJ6 zI9U!#F2rmu(tb7*=V@s;#b^%xqfca{JUQh68?X#8xF%o3L>T$6;lNyZd**1VPB(EN z+*xY)*_An{ph_UTJkFp}BK|pY3R8gItjnPBC0pa4u28 z2lMpUbWYe@G>^=L>}aCenSm;s@gF@@@0FSxCd=}19KvS$Aqr3M8Z;sOCjri$i3&aH z4?s+*d7>hg>J-LoRtVR`s@L-ineFDoP646WSPheZRTOScLPE#E*JyV@CqXR5ESpP7r77rs&}CAh0ZF9l2d{jE~tY z$4}&dNfM9s@*6PD*j9OYx*hO-+)Wlpi3VNRb=aTha@*ycrKj4&BI~+YFp*}+(tkVs zeEm`_qcZD+?`(6%kur%cHGR3GrfKcyiBpwt{t0j4vkYVCz?=bVtncB-{iQ`SuUiaQ zra^GM$L2mHid4{;E0RiVI;V1`;TI7r8NS)g@W~sOzbmeM!`3dzyhN+!S$0wbL8s2^ zQ7PBR*%pExOe^!JrXP*4x4YG)6iqVN*D`sdxT$Q38~_4UR_$0ZhtZ;D@y}xMfEucG zlcmgS$Io?7;hAXFj(q6t?2p*q3odu@Z;{ViLgsgoM0ePfYwr4}B9qK|i5L|qwczn@ zduJ@jBZTPQV{g{{k!Ax?s3juTc-x|@x_+sl41;dlba=*cy;&l8%6(UXZ`dX|M`JkP z7w{D5#w$N1`WI=`cd@m?dX`#;U0&&bMgBk1{eM=)-#}>ke*npSUoHQeaeqQZ-8zp2 z?fWcQ#nVL2l;6@G>cXL5MT)VMDdi+z)f5LG57KH>3J5EEZlr5#iYEk+-(dQCT+3%I3v0?(p24I8 z)C9@;b|j_$wL$k5KJq$sASrAtt_ItO|+B_;?B-_HbPK z&YB>7f)`fDVWgXS+f1UW=grtSU?dwHwd)Mvo{wWaVQ~ZSp9k24`v-!)yc4CV6j!$! z^N!c9bIrXX8xuhkHWOk(q7fOXFyR6b$a2y6)`+EU)q>;}4J;)I8g;^`FUZHj45mb> z?dXO(RWQ^qv}!HeI(2BVUUR&2ESUANy6ELQ$V)~Y$H7jlp|hQnW_RI7OQJsOp_lb+ z$!69+UAMGH>J~@rcVh13Hpm_g54SPo6Z1`fQ6y1ZYLjhfnhscRxozo6xN1d7+hDiX zsWBG3P#iWR`K%?lKZoty<~VKkj# zrQVRMm@Ae%thCf)f;^{X4O3L5j8o_zSF!P6txP@)TmDoVjePb4I5I8}f zdGX{S&|l~W>ptqFYqw2;Mlj2eGrQiLLl?mN(}smGp%h|>I!ySWs|i5(TV7%bx3B`k zDJs6Lim5el$13lqa++8fjI(DordpNl)e7wk#%dMa3*oDE7Ma8Jr_#C3+K1$Ca?B3H zG5;jY(}Sgx`@JOT$@{92_g5pkho^;deJHFnq7`mlj#lU2fz3){)98LHd*!)?+pOFv zNkY{cjyDc$=39xIdxN8Oe>lzA9U3+&`=hbH`@{1dx{o)|sMV@;x5#KU*ILgn-!a@3 z!tottc${ zD9DGLl5!WODV*c;4T3_?&5Vt-$HCKTlH1hc(9X)OzK|`=NqOlVzFG^wUElFdl`Z2j zIz8eSX$iA4A5<=mzyt~Jkb|%6jCZ$_C7a&PR?Iq@h0u9Q4BDk+?!Ydbv>LT56-TKD zyf(`h8NWQDo=&9Ku?Gk;E)W_e-b()ZLv}Z_0VbLGexwspXw|KU?P{><6o`qQS~5#f zu~szg%oVLjax%hm>!eTPE-(Q#~JS<`uj}mqRS>= zQUd^HMn+a~ZZYN!fF~Sm-rtbCR5wMW?&rp=#C|0q`i*jVz$YCHj^_qk65()TU(qoS z=QZriE2b#y#uwq?R&@+}#cTGVZmSxoXg!vz_bAw$0Xm7n)A{~2PyL!i*rU^rXCL5L zLu_tbY1rIpYRQ8Uw!m$8`W0N=_$+_T%<~b4+;seD_Md$ZuolugnOgUqBaPs*q_*<9 zg+_`%m>TC33TPJ!K2y&*bfnO>zzI?JeNPlHqM3PXD-$i;Gm{^8X=Pu^pHb|KmsRg7WDTX(ABXcH7uapqU>(5flW6%{+2s{NqCH~u7f6q9=f zJ8>qwk4_>wak|EPFUz3aOk<4kNh%L>oX(l)Ky+g>Cqa^xQmNsWS+}TWFPTIQ2q*;* zD+dK&LbVhd7ilOe$mPHa0gl3A5$|tFj3e$CGsqJgG3=F-0zo9GbG9uiiL5W?7Q0;| zMlW2@c5-SC=}-r4ZJ9Z4kk~qmd@YyMi}w9qeTxg#5123JYp)e2t(cM;U*}`*W!|hW zE@aEMC+1T@qfK#i{r5KBSR z`+O`4WhupEHK~P?t}SRS1h|a@!RD(0Gb_r@9M((~=CNtTLzVZcy@jEfM2fc1!hNvC ze0{V(`5S!He^!J_gAGs?v>3=U1elru=1n>LKsFEpm?0$lj->U4rZYGS+II(4&iu$G zs^UQ?ndAn?6q$>x;dRW73<@ns1#l)1?Sw%A(VbwOWr*YAOzojSlWzhpXNPReprq3l zrbSA%NI9^Pv|tTAxd(621jTHHq*JMq?a8pL7W`r=rgI}_{H0noYtnv-=zg^=t;LtN z`A2bB@ab^wd9~{gPvM?w2arM7E4qQLO&4Kw74GfQ34!RlVl;QIK1c{yLt8Na7YW3Y z>ETFVi#a^`{U3cP+wG2B7bw;ixaMMiE5Q5o0du+9QyRoSOO?7tJ&^H%hgiK^N-aGz zrz6e1IXt=WjuBy=7}X1zL9dG7RAp)9LHxGA6Rv&$I|#c9QDyLMUy+UM3G(H_#1(`; zqZ@+c!osN{pnROpP z$12LG7EOefdc49Oeg7m45{#%R1<9;%RDhI`u;LXppEJTC=5DB*T=&wMIE;mA(OID%O z!l8P1f8=C>7GVX9?6H^CDdWD~T3l~!Mx9@J^_NsAKM~Y0Ju_TIW;>Z$nmDPd!`)PC zsnf4tg_`p-YnN0yHpptisShxQHFdS3=o?W3H5UFxX;c|*QcW)x{d1{3eNW~ViF!;P zEGlG-trFR111#T!91+0iEtb0tN~8K5L8&OuJXTMsE{oM3u}K$|{galY^@8+ux>$43 z_{4jXJ=^+!1@~`m8XfE3o3(%7rqTa9ZrXv$)?c24*HP8+Em6&-AN@OYtCpfviKaPY zD}>@Ee<|r7+A&K$jc)m`w={HcKrqDJQaEQ747`mkkGT&?X*h1c5j6O>5$=xy2L@W* zOc8LdxviFa`QCMaTR3kBZ?<_8aDMc^l3y)FfoNdRJ=2Ey=xn5g>;ojT|``gMt=4!J%GipH6&S5 zXK>22^E=Y8?(Wq$sQqR1rx#U^Hyc>otlV+aZXESN|1>+Ey5;%O;tsJ!K*tPb?UyYNrH^Oetqup+&;Ud=W zBFFpmK6gIK;cS!t%&Zgjq+7i61S2WU{9)g3sUZZNPYQW zpU(Is_|=JspzG22KnMZ^;l+1tyTbn5^7H_2k8c*Q)fk{gPZ}H#H8@qUNf3)mFU9q1 zZi7~Fmms3_yByLhD#lEi$F>sK2>(pXMd??2Hq7#GYNs1Mr^flEn} zG8V|3yPc(Umpco!)TG%Eb`9lk^}y6{b{pKBooK(2@}h7F`@Yr`#P4dY*pteL(O=pd zury69)}VW^B2#Zs=noSMH0q!Dsh~A4m}wOBz|qe3^i>C~=YJWdQo(@InG}tmr;C5? zdse1Kn{|9!wx4=irMAy5BeCQe8@v4Ap~Sg+% zh_^CJ0jgdPvG{FRL<5Ef>Zq=pj$7eL62+;~(}VsrI%i+Vg|U|?7F7RXIRopaa+2w& zs6-K(Lw*jm%BC%Qfq&-QjX^p}yQm^wzMEr#n~}=yJKuG42vQyTo#r*(!j?QHMWbH^ zRH8&rQ?g3Q=N)!8t;#KKH0SH~i?wti*&Ia8@!!SLalc+1(@kY_EPKdpg`SXTHQ zf8hPa*I;UA{jf=vBZQzxqIl0F`4FgCZ`xr<;d`3iSfv_ZQo-R`fv{x4KT%=@TGtth zr@|?C0$D8!36Rly*8`ukGJ@@TZV5zy%C{uiUAdsyM}PUSj= zzX7Bm+fi!?Bt^eU30hW$$TmM|l;RyOV=asdYn*h$(S^O{{@ba72Z20Jr_M?oaH{SI ztSq=)ak*{0jP|l3g3s^|+;2ENMU5=ev{HW=fxC6^wL@x@A2?r4p?y|dSMpd+P4rha zKQ23hStg_!as<8c1@;t`{= zZw9>Rw7k|X_97r&%m=Ghu>Lw*K<68=VC}n0!Dm3lEnTC9;00 zJSFlSbaNMxQ-c%jt1u>iR%2Ixh=|3pTKJngqv@z$t z*%Y4IHE0VREa%yvahLE41I^$$M+xAs&e&f_?1{gAxGXDmgA8SHWe{YPdHLWI$Q(}{ z(rbtmRf66n43n+}IsVPvb-8kK^% zK$Soh#B3jpPbI>!0Ny-10AkIvazB2?E@QNUZb~K$-3@6?VKPMTb7XR#Z$W!pJ-X4b zabGHkj!vIf>htcx_|ZRQjXmzkG5XzXl;26$~&R$sr#s(So(M;5!u`RMBq;s zct)QbHV!;u38;gTVQSsnb4^EXgP$tY6xmZuANTwcMfiD#0Ctw?u2E~B9+ClPqNr*=Ru4RWo*$c+x-GAS#yE_&Pki1xKQec;+etan&m0EFgvnF((9E zxFBQna26D{>2dRPs?m8Tv%!Rq7;FJWske7okImTG%5>!I8b3aHf7Inwyz~i1y0`7L zPuRIoN$uxOHqIFFPmur2(O{p6Cs^voLR>byI&Jke>T-+QoW6T&%3D+#cfPD(_=QTs zL^GL47C6;6)kGswdmms9@er(rnvzKaD%mD9BJmuk7PbG23ld&xOBDU#aU%!=ytghhe7wf$5*T+xEHqsuE%L6rw&c&<-t<-Djee8 zvml70S6%#eui_lnB{=JqgDle~*e(E-Fe-rCLhsq-dudpcS8?_Frn93g{38)K%Qtl- zoY^O+_43KJ>1XrxLGNDkck!MQG>tjV_PZmQ_Ogeg>xRpZG-f;QW+mI6$ zXlFf>!g9KrL1|Isc6bR4FXPfuvC2Y2wc6e6i2FiEF^j|)lSBgZ#!1Dqw0mmE=XJvW zRpGxmY4o)J?Jl7I2TmIOzvHC+<>P+SCcimpEVtsnEG5yb0_!zLA~qJys3?sRJgfhJ zOK3FGTG3k0dT-GKAF}DJht(qy!5)scjJJ5*ff|JPjC<8ed(*SjkyLNO7`XU%o%JLE z?tnylK4ZEZ;Ko1{5{|tJfF5B(K!l_J;7>A`nC49pDa|?Fwg4j_t?0hn7-EqqPP5>i z8GgViMy(RkMV>BNFy(#PCHjsC9~Dh{15*j5`Pi!({@et%Qt)`vJ@dBv*^PAzaVx?# zdwicS21V26m^3+`!au~9BVshQMUgnU?xkhShvQT~(wrse?ymO0S2M}|=oqBc^awPf zB}u*MSj}p&dEv0rT$gs{I@d|s&2QFL!!S78QB{Z(m=9<`H*1u@><@2{Ns1rbZx zuGQXIB9Bru#BpNHj7bftM3BH!?HO)^MEi`FdnwH?pE#k*--UuAuvJGR&uoJd%Iq=u zkS0mpU1&ZXpZQMg?j&@mxZi|fNxQm>h0TlM;h8Yz7zbq(&hW_Odd%SR0Fls@Cyr<+{h{>BxrVsTnqFYt&8?^}W3 zDOQVoBxSiXmvL}GeqYL^xi+_etf??u&+viQfm%1V7;0BP>8T{Hx++|TTPRR_OB`EJ zh-pEfW=dqq_L&&^7RPl#-KIgq2FXQBm=bLkWoYebExht31XuYGI!fUF{L9+2b*;z! z?GXR$r;6>}u@(y7LiowEbEN_Tl?U7J5XUX4Dq5L~yAHpynSld#XWI_84RuqDmV~W# zmitR=((6!Yo5(Lh2T6SvZwNc13oOl`mv)5BDk1owHX5}y29-HKP6lEmDf6i$`yUWK z#yWA}-B9m#SH&#NZC}+HD-v>)UO$`@&9LZ7E(J~l+Qxz#H@_NgLR2cIx$i&;{(n9AT%F`KOjb!N1 zxLtjB5Gr!ZBWHAQ*2zNRg%CDnGIvY=z_4sq2Uk z1}G-RyzbNF)9)$AWe^51G-IXmA$EVr3hc~Pk@V=DD^Uw`6QnpEI^1}-G(_=N5 z-1{pn;PdqckZ}R-C#MZF?kQS9y4kH*oY*?gEA+PaYOQv;N{fBcWCW*k)uFQR0IkaP%+&GZIG(!D&6QR{;dz84+Bgn;*7+)BU;tg0v^|V zuap>UDgG+D3|uYH^n}|4ot_phyc>F}scgh4CSfHrV1$Lh#LGE0y#+;-e3K}&vpG~y zm}`t7ahqgjbvErDsp;EW*<2G9Y8TKeXh^)-;$_(a#Esf|_8Xd~zJrc|fQmX7$?mFF z8F1NIMK2VG*1YaU_$#CSldY|Y`Z7UE2xbN+=a3{FN4%p1V_q`#x!}PZILs^h*6Qk) z-kOcIfpOQd_Y(3cSUwoZl=zxJQ3=|`ZHF#MCI&@r6ic)UlfH8hOpUEile`l8A3{ii z3D9~r30p(ZCtx;DSX5nLQ9Brw?eIYc@f=JPVRI3V3(?4xi?`;;E?Y6gkKA_hKUo>= z^&|*a@KYWGT?6$2jdP_aL>U=#RB^z#0hkabp8w%#`0s$u!1T9g@()Zn`hUlS`@a<* zve#cLK2vhZ;)x8WHaTZMp_#%Y(PE|Ff_xG-bm!ldAc{?2UQrW78qku?Mg@4Gh}TDZ z_K{NueOvH}5WVN}pH}!McBZ+S#Jcwoo$M!R0xSRt+-cw+hd{%8iQzR?rNbLQ(b;5i zI>&U2&{$-DStgO|BB{7uo(@Tw_T2v7%w70cNvN19QV$COZ%O?Jro?ur3+WF71Fkn; z(fO>Q@4#x(rNX#&H*L&a!V92wVI(+_(FJvO>jdDq3vpn>8C$I4)(4wZtjIjnUdisR zXfyL;cH9&0+bew?dz>6CST@o9_u!h^8p_NAS9`ZRdCbaOZg5XwFCF#)u%@*+s*Rb* zp~{b5-#yWlg@J1iAO*T8gX~dY>~0`^K%`${dwZe3)Ym-xCr4ayKxhp2h;F#TOPWM; zhogW$pOY|ctbw)}^qn&H?gBwGTp`%BXyB?j_qkTyFG@Czq(23`Ey;qxO1tq@DI*o(97`4jvbR>SoK_Gyp#1R!8eeY4L_)}HPKr?IygTWPxV`g zvd(B4EJEUvfaDM92QzwI@c@ww-8c}vb+yMfiy zTV8R1oJQp&e6q;)-nB+XunOf#C$p?Bw?}xyl3FNAPUD>|&}a}WHd(?1lkhxS`Q2=n zS3bzZ&d-^X7F+>i#B7*!*?9G-$LORnFu~ z>k-IQ?4-@KPc~+HAiSWb5s&^lhApewVG@SZnDFgfsMqH#aRW-)prE8AXcP@Sq+tw% z2^7-H^^E}nWTPMJZkMOJ%<2->;>j!Yn zbk+C;`y|3z;F4x?j31Td`6RXaEc&3apVockF?OA0^V(kopXGMmy?#amcq(GdK66M;hT*2oTL;<6R%>BN za$Gm>Q_3aRYbJKmRBvtnKKkZ9sN+rVhhfD#rR>qjK?WG+4*IB+x@JRa_-Xo=1rAG= zn`(pibO8^6+vj=})`e!BH@E3qi~Juy(<2!sg-(Y*sOLrH$BCV5gNY8Mem!;Ui^@Md z)smP;bE@X;hn%^yxu1SF6=#+d*YZMF-s)ovvcgO!Dc8HeYV~5Z-toKK_$L$vTH3EG zD8s1km{nx%b$f$Kw7!f=D%$A&Wpgx&mUQT91G#VWDa<7*iX){ysJ^1U=@kw9uZsT7 zrThPYi0S`h{diVh56NFjA^3fMeg10k2LO#H$VrJ8Twk9X3Bk)= z_Sts#==KD)KW=gdk(9W_M4}C}YAu~TGZ;4wQ*K#SU9Co5Ew(bN4$0f)alyJ$heU4` zUy9G6t+VjZf3Tw6b$GUB*uEL#Q}s>|sJH-0%(X!Li?XWaWp@AN;Ml^&)kAiLi;GjG zxqcpN$1s{@Q9Sw`>wBw1j{r}S<5G#@?c*E}ED-nw>!VPX{zL8P!|ylQI}Iriw`OU; zsLKX&j4G@@0a@1)yM;95;L`)EdjH;=|Ol>2-^JU>E$C8b(jq_lL9-Qo;D<`cM< zJG@TzLQv;;kV5}mq9F%mMMtaggL*!#D;-z?ZseY-5wXgx> zib8eI;ZH)v3hkqE4M)lonA?^%GY*VHZEI zK{hZal`=UW)N9Z+$rtXpI-Zus7O|}*wD2q)0XYtD7DBI4Ql39aL&+zg=vJ$%HA5ku z9nJBfmlP0KBbCISawC)gbdf8C)P1fyJ!1}$dw!`DNYq^MHp`b&HRO3n)hd>M#%8l% znr<4Ut&<@QK6g#nxBHz_@ILnQacCsOV*oDB$`0z?}HK#HHQUw62sS2&N|o3 zI%6nyjyN9T|1h=#5P!E;Aw_y(&IY4#;(<{;vp+pXp+(?=Y`FYBkz5yZ&Z3o%yo8&9 zEQoE4igGk-`$slv6Rd-n_N~z4eL8;-@!Ai^0bNNSkVx;n=z(jx1oEz3|Mx=~I z8zzb*{FrV>=9Fmbs_)T-C_M#9t!(%B3n;LZND1NXqsE}*L0&BEQ9XM zmSkVsJlASY?N{(t!p~3|#FDD$R&axC=>5ZnuE`>|)#3L<0}|g7&k~zEM<_EAtTeg5 zftmagOr5`zMu$C88V%3-3lg4~R)zw*2zMIG?1yBi&e|T~sBAxU{z1L|I|I`Gf9!#O zptRBdJ4)NPNo&3OfA+vAlz>_~y0$F_`3#8S%q#<_^_!mos|#N{AbW#k-1}PwI^6T+ zwnc5J698c5l?PW-3hU5+wr1`jR|i6DDJj*VL?Brw#zY_SG(UWv)vUJTBzgJKM!`=C zAs;D0_0VX*_>*Fcjlz;fl1HR+haxmLw*vtrr?e(s&fO{C8{Lxs3;BF_Z(!1^*`o>Q0NGN#C zz{Rm64k&OQ=WOma$MkD%vg^9~$==&k;VKYqdo6Dr*-*+>BtA>l8~B4@Q*0!Akp7+^ zeqRIXv@3DoeV?c)qCbD-N2U_})%S3I)?)8!C~c&?S3;lWQJ8fDn%5l|PNO6U3$tk_ zi-cT)9oA~huVf1ZT-aygMI^W?TKy6iNXE~!MQ z*Cp)p2h(bJ6wb--^CA~62IsA36mK)sV4i1-A(Qt|A~Hkr5Gf7FN4N|UD0rz$Ak`vH zBUyV~pZNPSm^eH*daDTZR55yOn=2dQxH%KGfxx_$k{?AsHF9_(A2PdErUG!F+Yp%p zSunDW0uud__7+L5CxKGeT|_`*O0?GEuxDejTNbCRBUq6c1wYbg6b3yCX zinG`)JzyFhzub{1h)yU$r;4^RaO%X}YpW8>#0q{ndDznGPe&1KhT}SbP*sTC$s3=< z?_w>;`I3H`lqCI$B>h17u!Mgr^Kl7Sqj+_z^fImz+n8X~KbyGIS5gZF{gF5Sss@VD zq_D%!B|nG4V6n{?dg4jjIHX}sU*rrdKcPgKocbCjhuI^!nvhpwj@T1V*RfWxF65;CQbgxUAw;Z~xvJk39knn>Rz{4bb zlh_b*Qj$qcu5l+GMJ^zIVNJeqhXX~zI;+-^a*B(|QIH$69GIH01c#Y}Z#zm(W-KrM zcjrJaE4!3g7JNH-sKq{9X|I2>oxmxuY(Y0@Xd%%SJS-Ci|7@#&y(>!B`HH#iaA%mk zGl|RL*5u>_sg2ML?BqdY`ERi?F2w-pG#tdk4f89rQ0JSgPQ4ZO<~nbCWEbfh93pG= zQ#0zK%8Uiqt3%Bm>i4znjYlp%`Ed^d+I(Y2OM;$nnT?xP=rI4C!_bJ>w{y>J1!=7g8T2Uw@QuMgII>mHivIM#u7Z9PA%}YxMsPxOSnU zF1_}DD!UtiYdNmL(TOYv7P{zzqLR*;zEm4E!5N>JWl4Xh%d%?hcVw9 zL3to){9tRTNZ2&tm-9B9Kh9pQ-qk2DxXsm;_~9i&kGF{=*EYBcb--vHsP&_;ON*^Rkz( z?>YBdAx_-QE2jdGN}Ign+mQ|1)|zW9ll9>z{}p5*N(f-G+c% zfs5SI^X;DK>;8w$}Iebk~|e)+O^Ji_BmfAKrN zxWoo-I13RxRK1_FPNln-;8q~xmW%DNZV^gXy}Gc$zYN=f&!VC2)YEV64W#XOyXJDO z9{Sz_qey#>G=<*c9q)fXw_XS#MzuzIqDiSVT>ys6WTBOx0hF&XBf)X$|;x>JGFWS2?4 zRYra7#6EaUAGyw^)&OTew4aaGUy@CBaRj70@0?xx>yf`3=#*Q@&3lzjyn0iScBr*= zu%;{NwIZ7uRzvS1GZGpu%iEa!x{OR+o@&i6ygbgL<+0Gn68upuJrR#db8a=WrC;h3 zc$eUv)Qp?lrE7!bHRCmEHq20o1fSL=M{>_g z%3>E<$y+kgVr!eeO6TiUEgfNV3L`8HZw-luw!u3qxAhPx_sBe;^)f{#_}A``H=gvwI=izx(xbV52Eog1{-fa~ow6eAH|k-4;5MAcR7Dg@ z1+>l`t$J@27l!Nh${+9~|1WG9GKu;hWEQ(3fa47<20-rxjDAyEaS-n>C!OK;*L%4X zcLrQhcQs#4imVPA*V;@tVw-&q@ztvEM1n4L!TyHrPmeNnZt|=VSw2_dzv2 zHHr)!kiR>G=K=cReHy_;2+EUeMTNnQop~3bwNQaOxPZHbOX?vCi0Kwp%$^+rHA3hm zKrEvWoQEHSe)_;%BmjV4y*At+yQN*oYb(zI+RVW!6mywE8lRCIjA3-X?_z|&8&kI)d=qxB2Nd0 z_h=wT yk&I}u5TbTrbwYuJ#cC?lPq5-z<&$-u|V=v|RMk?puAIBi(1$Laxu+y!J zO*xj|HzEldcZ$uY{v>aSf~2?!yVEAYZL>E-EG@~N#S+YSj>XYEI%;-t9K)QL$Sti7 z1g7;N)k_Dnv(%HYxPb2ba7HG;73Nqzeme;n!gFMD&hm=t+wwe%5CrvY5VSZT75X^} zDh#oPhnUQ-)ABJg;{Sg& zwddC4EvOARjjmP2ZdoVx^X-EeC9skaZj)4s>ieNM?`5R9qv59Ub}re7*BXR#l8Mw^ z&osrAZe8Pi`Uc7Eq-~pF^^~wt-Q#~<_Pj*0HoYhBfRWXK7u!CE?Sf3mN}?pOwx;QYGmDhBHAab9etZ_HkR)A!k3B(;1ne*!fHPjF-; z!ov@pz7p*NhR!T&9jsO~fmdj4wCtc5)Rs&f$F@n{Ax^u38=m`4a~O%zk2l5vx{`dYL>KJIL*UJ zo!2lw@I-8hIMk}v`33Y=lXa)Ew&e&-x1;70^z8Y?;(rz8Z*&+9?cb-R|9}po|99xH z3KetdweQ?~rZ(-axc@v_7gpR@0uU{!88!n`fS5>PNYeINe_v0 z8-UY{SCK_a=_fp+l$;=Fxn$9IH)O?@h4D)tZ1%^?5fIl+7Ff}uH`XD~Vt49!1pF50 zm8;FGDR=#sw;|n!8cpW-^vx2DN-U}0+Q9oL6G@+Spr@;`TxqslJFZB{(&m=OG@H7- z_C!UW2WFR*K21l$Re2s^ch^OIT7?IN){64oi31Df${l-IvV*k7>X=TQt;Z59nESJV z*F(XdioUGInaci@DdN2pS)+pVZf$q2kr_*AI`hrQwO-G2up1}{g68L>#j(8;9cfdD zl!OHYEnE3PFA2VNI2HII%Be`>M9%UxejxAewWt{YvgS@R>Q(nww@SJT=E^=yP@Pt|%kv zs~9)P(owqzdQ>Ugvu-1pXB%X7Z2AePz^f2U=~nxi_YD`j@&wMfM4m0)Z6t=SaTcSu zYKK?YeOW@$7eSNEu^t}0TG5Hl&9*YC*_x}Ac{nA4&?K(_ClhXVE~+WcLZc4a+`kDP z*3>Aen=lLS3(BP4#y*^Llg73?FR}g{wSENQhAF#iARy&vcXp9Va+IBx)fj2*9chQm z9q%LlB9>oo)pueDEu@K=(shuUl?@I6L9iT^5H?(-E};|L6~M9-!O!3kWpd=(ewe}? z#tl94lUPV3yk|{NhPP_TxU8tdXQ{{t$>lSiLOB+MFJ8&SJxR|#Awxvkc|quk`EZ^mFOBIsPd^cT|=^nK>90#`yZm>=_yNGJ9EBoZRUx>12~Gr{~)-AZgG{zYl+E{E*KI z=K>(%V!KB_dPhxwFhv_tv&9=Zn62``Q;C*QiYBqFJw3MjXhBGe41nNBn-tyi0ng^@wl4#zD; zr)+%>$f5@VD2Xi(n#MtB3Yr!r_*oS4@{Ey70Ss=ETz!iZ;UcM%qMj|bs@m+|tp=Mg zAph|6{CAjTWcquU{RglY{l5cyeLJE5?|*b_kPAJI&cXb0~ryg}K^@J`FW;#RAoQe@R$F27!*(&~3;7L)Af#ski{Q8Rdvqw2(-<10gs>s(g>}9lYpC0y}o1_*YIy+^%Q% zwvOxLSgmMga03(Vw2mzxL{GG?^87MCmA$Ywd)l3u(pxr9K;SYsaQ$5BU8XOE=a75? zaN;DS(Ug+_uumdWFjzi|I#bctj)P$R*>~jxickiW+0)v_Cmb?vURb?|vr~dey8=9q z9Uph1DxXHs+m_!Lezoa|k6ghmk!PF!q^O@4S}1!YCmUi=sRFkdV~@Qi-a#INYF{xN zx(vQ(m3}}X9#^YgEqM4f&sE%RXkELq{%g(Oqt<+2q`$~%iz4ckA^MphvvpT=>gnTB zILF&v8dn2!-`j`a6(6sj;be7&mNZ4M>-E=mn|l~xX_3jMy1WJQ9Jxf;|HIflMQ65c zYXgp*RFaCVif!ArZQHh0v2EM7ZQD*N#-F{gOg#hp&dS2hh216jv>2RAQg2RMH0@xU7g#|+84iACEj#QVBLzCr z4cLOM#BL(TRc=M4fJz*8N7TTSHQ<6(`nn4kbP_--!0$lRq)Db&v+>~0fYD7)rDY^> z)yBx`EBP|mxL1<|s~08`hIRI;d30~xU1oYh9P)Oy!NcwNY(%_auyz@4)F1-NT zKpTv9rwl8aO(EAZrwp^acn1=Nx@Qho*1f7))h6@9-3n<-^Gjpoka1+lXLD}@>A6AQL|0_Z|cYCG;~iNQ^(hVoh* z34X4Qd?M(f=-`YIS4yR0m}06DHVO%i2^M<^s6qr zEPsum{tcnU@XrXX#cx7u?K?B(N{4O?HMEMg-FtA?9#PCRoSKNNsHS%S7AR*!d~dhF1_O@WW`kKGBwWsW%D)h~@bjY8xaC0PiiW za%WCZ7PXB4zl=Jdl@~7vZvGoNm-}Dj+~HRPwhvtLRQ$&#G{46x2h$e{qMQ);y|O7y z=kN?%^A20|JckwJrPKitFkSfZ61{C_s!(ZB=%c+_<`WAA$#eLb4pv{yTX=QS&(r$gN{gQ2^wQ=CH`P74Yf4M^ zmJfdZ8LtKfn%;s`*TqrK3Q=r@ebifz3(i|q%r#~95P-V97;C^lmvqD^YxFz^v%Y&V z8Zo;;?ARjit83>ds-W@v_?1*8?_;7mU%8R+vWw3h#nSU3C1P~QL}AKvt%ycUOiKPv zLjI1f>Dk`PQFB^`i7WEDx}v?iB9CB74;zeuB)sUdfws8Vt)~71qGuG?HNp&&pXSbU z+5V_XVN7oi-`gI_Fqn$`5lFqE5!zq;)4SW(jDuGYt#=T2hJdOHYPBEyUA5)`qs9|r zB7`Z?KIwPA#Vrb{S_yl*F65|+X60^QRaA&fS4F{6tC+7zLeNifnH0iC*$-CyHL+@H zIX5U3cJI$j3Ga>#F8gCIVIe@o zO`bDW6>-6uiiQoI>Ex2ngK?HKJ-9!5ekqy5b0)lDILcs+d|`z6k$EDOi0`Q3<>jIw zGQ|dwe%myHz+(6{R6$|?7S;=VYuQ$LhY;CAS48w+3TQW>yyT4J=w(AFYatJ) z2{}OYJAli4i82*}exs&33q_ScupINh^*UoWh)ffS8P%H@H1LysFWA-L%Wsavx=!xY zhQ}JFcC?c(!pJd2+rH4A%NzPPNJw+~XoxMgtd1iKc+Y0eJ4V}^o(f>jBVFL`cC&-+yhHUHs7)1%e=(SeiE7c)nl{WWEU41>Teln*f7E~eNp#v|c}twR zoEOGy6OvrpxsM=+x-qnU+bRQZ)LRTOOC&hutUjBwW~dgo<&miP&S#{mk9(vqzv9zR zeD>h1U;D#`@AofueGxGkm;c9g9UG_ht}}zrqbAxajyADrYd*TL|9MFrv3Qt9d=yV} zb10;V%&7dYIBJDu$KPm-_u9)-HAFvu)mewytC(pniR|i}5Nuif%^CZj3YMOg@jva@ zzfrXq{+X(^`2TaczMCi86UtVxF8){AN{k7~^uozIZn*N_v0MbrkcNIIuh-S+crfTa z7n@f~o2tYZSy!jcr*7=qv81A+6Fy@uHVmwdut){K2wJ^1w9m}3qyULFTVPtO|B7tE z3s1|%JBIW{#5lxol!8~%5~#x`ZL7dHVL&5L#m(pjL#oCYNkz?$5;kph)`4)}C@fLO zl@1RXf5Ba8B39tkxX8|BKoW*1OpRH#gLglseD2L+Ly5QomLZt}+1}!SVcjxfLhFX7 ziHKj6{T++jEvyzfun4X#6k{h+k|J6BC`V3IsW5ox)E^@tg0VA5)z#Wqx%S3=^Ree{ z_f|t1c>%0)9XmzlwgGC2BV6!mYp%7S!$frf=iEOjE^ta4<|&v*Ik9!;^GgfKFFp8J5O5-bFzEFhT2Rmilwo(Z2s1Q6yx+#w zaeCL28b61Y1Y#s?3sd@PlYb#~MBEJz=)l5q8xz&8Lw}$|AKi%qxI&*>G0BFc**)rRCbmNt=VC0 zqv4-4HBg%*OKr-exwq9N3Ta;| zBUXOXgWIo%`W3^E`{LExKEe0g%PQj-#m`u{Y$Hw=x0_0=Z{^rwTuZF7H9ze!sEJrE zmdhcnt$zRm@se4nTFT?qQevni+N(R<`$6}8eyr*KqpeS0L*hG6hv#hfI0W_L(_IU;7oK@Kn>(NXnk^)O^`OtaOB|p3zS%8k1690b~^fJ3NC2 z0LpEjSd@{6KuoC4lem;EQ?Z~nCjz4f+lRKp0T}3wthlb?P)5dT1yme*A)06qiKw6Q zH@s0ODQ`)7MQd6?y1y}wo;}Zt5;DR{wS1fo@f|&?Td;k`Jyt4$66e1OB9y`-f3iZF2SX`v}#FvCis~nZz@DAE)7iU^r^M_(a&Wk|U~f3+s{GXj*8N8ySnDyzhkC%QiYLZ*D|-C=EKoQYdtWMg z^opCIBaZ6BCPRRiKJE-}Is=xV9iw3Z@_bF}Sw=?< z-fc8s>8Dn6E)at?@B`-3sc@!@T34eQ{LoM@Ctr)XQ*Vr4j`lF4YJ76l9$%LvYr&`Rr#@XcXeWxK-^(9n zVcdSH*7LRAfN!I@;GC0+-xE&DgQjP)XpQiEf~5_6lGI8Z?2{5;0hvt@KZo5%s)8#M zq?6=BFR!%rLVt&?39CB(@4MkIwv3VauloCM*fNHH#+H3&Hhyb&-L@N$ zCIYpPw!xcPu5pmfjSXNfFAqptfuD4DZ#MqyuKd~3Bn)!lb!22>Y=U#l@o%||>~l(` z?{py$51FV1zuWIdD;6CfoaY`{vkipN*N;@Jt<=9Aj~D$_@&C$YEfl%njTD+a70EjQ zMy!)d=|F0Gu9r!F9GlKNF0#;}%u6b$V(& zJ-zKWP#iaMEm&}sL9riO5Ca>F3Z4lHWyVF}cs z&k!V)=)>!QT%M^Ni0JYDdUR9$Q{D9_i8vI6sp)BIt~WaUJ72>iyy}{mnbxE^)uvT5 zNo?bgo@c#!?VO@+Ql_^$%@5L%wu$Z$D!(3a^FI*Qm9ySk%hM4;=;L@`g%UD>1S4`~mAbRSzq2h*tCDXS6( zc3VD&Je+RAv}XsU9c?Eu49NefG6_vkZ8^ zAM+UXR#%1YO>A|j8m--UymLfO=r~ieBm#{96e;t*Ju@JD-DYi|xIb`)ut&A;(TFjJk&Dy*4+3aa$q^D4( zWr8L7>a@e3)g8_a_Q{^~aM&H1v8f{|3(mry;^~uXMxgsE`!OS#(bm=%r&Y7fZ=Qvs z*&Rd=ILT-zVatg#{Feimq4UKM2zQ;S?qHPX7MipB5n8O(aHEr8Ix~M} zu#@O+3A#&b>$;&?2^2~UU>fy@@mnvArxVRPz}_{p%ag3yTkgEG1`oWhAZgN>v^5SA zbWwdWI5+ajeX53<1kzjXh=JTf`?2+H2i=)!kSA6?En}Los>Av0;!kSRx97E>~XQY!OI)cw-*gomLY^DmJ8hVeKekEMB*A$u`*q9 z^CzJueI}Awsb=WG*Wdm1%U5SucaVOu4x)$WUm8r^N+ipSJkkFcOs}}(_J~DLXeAXc zXYCDo=Y~!{(GUyoINtbKSc;x0X;qV4Lg%A1y|Bj3Aa6!qW;z1q@WKt55A$~O z3_OJS#Rjvp1Pz%;kn}B?(rN0bz{=@av!#zbdBaQ6e~mSjiM}vP^&|a~pzdG+FE*^9 z{Z(cbcE-DJeI9>xv+5HO-6x;noZev6GQpk2+9`;hNMSi_ijss&v!KN8xQ|{ z<~;vm-)h!sJ7aq#d%3M}wastF;{m0+lS|;1>vp=r#~t!OR(R>XAb4gd3?eW5%&@M= zUEA@oiPCrGCqT}%jq7s<-!;!dGQ++I&z&>3odOGSSs~Dx6|TVnn2a|T-sdAs#|v+_ zLN*2~M3AA$Fi|*e^jqkP$KLhco8{^B6D4S1+iIsN`Oj_8X>{n>&sk??oy#1v$Tq%t z@y46beY&b+1_>1agkZTeD(5{136ZbzAJJ>k=fTMFBoftsVyZ1>WzBMBtRs+ZM!3l_ zOe;%&u7M{$j{2j;cndtu*lLnEU+kc*^HthgImPHNZ-H~z81Te>r^+>ZDWB7xYd4di zJk|h!;ro4$7Mfxb<3`D0F&YH9q zevKOAS4MZ4Rt*{kgqqXT4I_%S@o)14_67?gs8=SdG_k4JFuvWbO(@QH2k5+v;?Lee zd>|A4Y*}6v=^mD6deeQlYuSv0{~q@n-0Hn|DUl0R*av^qB0DX7GMf+51_5BUb2(_T zdAFib+^nfS!aY5;Qh9@I`anIEs!X^%_mSGg4>p4YrvK9AmgK}?F#n?QJ_-nI4V>5 zQ)$RA9IijE(&*$s%DO3-BBE$_C$gNdr5jx)kA~z@gCJe-`4)LV0Xm|*c~*#u zx`Ew=mv6h3&Ig8nyfKTa!1_UKsle!(|yX!{&qK&-@1gYxB- zA6wJ_4O8~O)s)z(D$|QWEJy?o5>3>#BjS){6gb+Za&?Rm3`+oEgmc1F>+iX0Cl}+r zyUR(IsLh(fo&X*D_(bO>v-Ixb--O|cxcw@Fh4;8+xa&sk^tpb%!g02wk5wew!-p_n zUAK3adg6?)*v6lxnZy7kEPhKZT_}<_N{J@dp=@g}o^Q1_MXqE{eD|Q8@e-d#w-Nf2 z4?H5Qb23zs6AShX$+6q*;m?0eX0n+9r|?Kad(7eh6I!2uX}!?OJ?e*^@)Iu{Xf$Fb zzy4_hN-b?dO`0;w!^yfF4`VrE+?+}SzE&}yVo#ImJIgd)CvZ0E)V@=e%FE2ql!}(0 ztIs}-O4wAZzbwWkpf^pBm#~Lwot8DHv?%dWh^xA0jT7hIvuAdM9NAb%9-uJ!o?a8S zq?CRUcJo~#J)=QeKDSie!a=GM4uMCWj%u-unZ^lC$-Z(5Vd<^?Cc_5aFsgBl?%X9; z9q8pX+JnsRxx2l$E{bD?yOws&i?xGPL|TP`$>jUPaGHh&=2=E>AIym{18OA8uYu0M z)6m%gHpf2YvP8`vT?wHHyWUlCqIa27nc-00hjKwV$9KgUis<=H8b5*a`*$j+m8BY$ z6D4UmVA?E4G=FW9Z$8$TtJ`i_oVE4h@zli~)Rqm%>NyUCZ~g2;ef6~)HFYRb%zfCi zb)kesETNSD+%0)DEBE;`JT^t%9T+Rojr7^G3CH^)ql4|YVnTDjHm{zQOoK1LN4?EI zJo1WqU{zjzeC)1xGLO)EwdatcKrKduSmserC z=Q;v&u5hihCH9B^zb>Z#xo-ZQ1c$$!5ZXd1sfJLtuGD@J359S1%&%W>_{%$8AOo17or7AUFt59-sQ3-j8!u@WKK&DU z`)&Wgz8sGvt;Q7cYwBP)a2!PTwvi{#;%A_-=}=8Y0mKNWFJ4GdDVUnRs$3F$HLd@I z#0aM}H9V!k2k7~et3&tVjlT8N?Z=ehOB+8QVm@h8Eh_8P=hKg)?Rd$?5d#X z@$tQzJl6^F?ejJ11a;d)mR({~C31KiAYC&KZHZCYHo(1+G`u4pHo>;HE%G1_lE0tJcT0XJ)XU0`wU&vfTV&kPqdbz+e**ugT8B0Ev*f2O#uMu z98>)CNv&3awya{N@Cuu}G;dvK3Mfg`<`o_>MuFn1IE~O=b@s~6^Gg};d1b)aWf_l} zzYORIDNrsnpx+7;f};!P&eDAF0?9NtzHu|RV5{_^YRbwG+(lz1p~ev5__;n zDHBeQhJ97$K%r9X#^$fF8dM&J>a>CS_^4ZWK5K5_tp1JutUNE?TiLX9B;0LTlmXOppWd!LBhJ!T$*mIu%dngw1PO_) zC?!&`JBM)j!QD7g#$$eTa32`2`oOG*uB7ND4JuAihDcaPzbAx(J+7lqek>Ik7AIb; zh!I1Pe)V)K1P#r!Dm2{D1Cri6s4_J{M6!399r>cKNuj0ydTFs);!KjsK(Jv34Q zvRA~_>RN*Z^td3Al{{CRtWncvSGq<G(i-A>6X>r=FT9a-*{}H4ol#0nFqE7tEOB zkTunkf+!LHF!TBKo0Y|7y*?hcZgB${H{kM_n{2XS*frhszNK{a7H znDV;hC5#s|@mUcOQdja4KK>zp49Y+_@@6ZGL6A+=E$-Wj71;M+X^U zy=3o)ds2X3pDwtL`r}Rgvv?L?nSD0jkG))4U~j>EfjH}rcK@<9^`&m9()xn1=lLk1 zi9im@_(-O;PWKs0^&Z?pqXxy^gDDfERbvCsiO=q&XW@SOA8f}3gcnbO=<{Ur@@2wI z!9*Kj92&gvSL=^k$ipKj8jCnhk-9+}Q@k$VJRSLV(cAz{A2o+dkF7X!r2>QWji~Sh z_7Ud8EBym&{WZ-KcN5S2H3j!t^uR)YV{F;;q{W~TY|*zkq178>s|5!+tzV?H(O?!E z#H4s#u;$tgq!76QCtWqUJp;@YZtFRC1>DQ#294`$MPJ8f89NH=yb(L5t=yWUR6Oj4 z4Mr&(5gqa*(+t+aB-5!IK1S1dcpn5_NvqngoS25wsondh4$H@prxYDMBN-X3@9;&} zidGK~(Mw?;N9?8st+9GFoQXmp)hjX%3fl$=zAyO@>KudyL zlU<^k1aTq628QuIblCf(y3LQmZ&4uTh7B0e_(|gx?HTt=J0b4Hkj^fQfdiE?3#(QN zV4ZbTci(FFv*jIXr~g4_BdJ@bD`ZvY!1!W9^z+XtPP1*5$vzo61MS|}{aWbyH1!37 zliRQ7&jTPGB?)CkC7Q_B#tiJkgs6&4N85N>2vZ>3PSe&Rv8wTEZe*dOukA@29{A-} zJLBbnOpfK{c(xbTEG;RLdxsU`TABHW&lc(F4>7S=ToJP)A#}@5%6u^p*Xq@{ihaC? z(I00fcK+!++p#>KzJRZL^xolhXbGKx_YxgPtZ%~c37bQ|-4o)YBYrSK*n&M7R(%=UCFk9$qI`Es1c*F$)dcPU%CH!ZvL<5OE?O^(y-Xk6jj8n8bnWnSI@& zumoqlbxc9TZDe0e{hlqy$EJgbA2u$2x{ z%1pU8KOjeka^rS`s>~HTW{AYTTPlLl~*8*~vsibDlXzv8){3;92JVqQv@Hh*$nJ_X8Ls8~dJI-FXF zqIRNrQ#3)ZR^xd=r*wo^42x5E#J;8aW6l!py&=HdE#r0twky7NXcVI>khLG@At(dA z5IaGY@-1nJ2cTu{QD0(Z2|k%+oKlKjr8h;1$;JaZ3X$c(KN>fyml1mtpEM;8)nCio zuknF7==9WeKwb4O&B>q@j2$vn0;@~tt_wB2o7+bNqbwaESEQ8sPtTG%n?NC7Gp1U~ zugR_scj>&m?Z8!5)BwRl$Y}k+1D;*Y3ypFR3>o*RLDNqh4;lR1jLH z9f$U1a&fA^K1>seV!d9F1we|p>pqRW=ace9+2I}|rTHJfIi~AHCYEdI{Yir_eYe_8 zPu6et7fuAv+}pshxxb3D7_Gt?vlR*!1Ztmmh>7WN6wBDJgX|~%gZz}OFn9I=H;!F# z9F2P$uFUFrI7usmC#}8hyzn6ddDsnE5kQ!$HzD!4Jx}ELCNASKhda}!Phv}@xA}7@ zaqgJgMvB8`LO&1SG@BL1N)?+;_)L`3-gaYp3M<&U%lTx6JtSK0dZPCam*xn1IQ9Id|D(=K{Z%y==aFDA`^9F`1@YSX0McPz7ERC%LoWYQLcKH?W9i;{vp zL&%b>vSs6pcR|)}#c0rpfX0$Y@Jxlw98XbR@$!G)0)L@_jDO|eGyV-4$oS9Dz)e*v zn|$H_p`u1hA$K>4PcsD(NkYzcGCI4o3q(WFE@W3@f#(>%y87?nB6QqUl*ru}ZZ0nB zrzfVS4mcn>AoyPszqBk{>Q4cb=}3C0J}X+TGeiMnztk*u;_$vhnYG~;{9p{jcoC!( zpwq^n!;AbGcZ{Uu{VZDyOf|K4{JT4zc|Uhb0F3|)H^97D%Xq{>C^J^tOL(X+5@OVU zU^JgjN+3~pum-=K9*hwmWtwfS8JcfxMHfAq^ta)}6tS_tP4;O?9igC0O+y>R46E#K zTh6<`$40r`DSOM(-XzBi!@tzxR#;AJxgn$7aJW7Chj(-b4)33uG7~`f#@G_!IMIee zeL606S&)1ZGo=ZBnjZ>15`@h)cY6zB;zx(+KR-i8gD}c1n_zpu8k{B+4z|&G)IMgE zBo8{{aHz`SOqOB_f4)>`Xnz6ib)#~)Niyn_JgWHBH)TF^sp9=436*$0^nA3P0zh); z4wM7JJO)KBdp7cm_Y#(?w0X?bQ+IxRF6f(_&=^Ns2ZPO%ku|+}!02ArLuE<*X}V7? zd&DBQ4=R^%FST}ny+%`wrt}y^M<{A+D7j8Cj$j&M{g|t4{g{aA`n&staxratm4$_j zqEy;Q$E~SU;fe-o{K~!e>HgMIk-XJ$k7ykQ7Mnp9-vHD+LKRH7C^bB4pD znn&8_XpxI6ZFtR8F^$Jn|Bfe=a!X&fe#Tn6i?#Rj39OjyGMEgNf?0nJBGOg0w__K>Yf zxI|tewp&UZZEhf!HH|HLG6_!@LfbuBwaLI9IztJDi7Zdm3dO;$w_>x%MXM86o0+c3 z03LEl-<0Lgr`4piW0K3jj}4cHZim#B0jILj+vQr-O!N75D>1UkPTtrGa2shDz7#fa zh(sJwZ8&yF&EKn#E%>aCfHUm69;iza?IK51uErgS&(aG{`*5aTaqGAHM-;v+3t;vf zCvA`CZEdMdO9d6^&Y_y(UO{KvLehI7d}P$qz{(bS2em^FHlma`B=fVN>c5!3AJiN4 z((|X(Yr7ue*!voua1%jM&{ch&ONp3W3cO>(pG!b!XAgS^2IfjRZpjtqNOIGl*&#L5 zy;?n(*%Cu^i6inG`^c<4}aVbw7x_8OYn{G^$z?z-=TH3Qnrve^5MS zh zW|q|rNhB;?Fxh6h3>B(cqab>u{_z2!OvYb0X)24|=FfqYcgW$ObBYC#|L zH>dS~YIX*u|9pU8{2SPh@t?tdo!>*6-+i8c!+v4~X*C^b1*Hc=jC@X5sMYbx;ejP; z92xI%K&>TnAJ6MrFw8Z&$C{b>D=VA~6Pz3z_ZKv>h9FRH>z>ldbFC)5oWGG;a=#o- zlLJ`+m~rQSc@7~h1XWd#1{VTm$>I6K-Rqjw>6iRZV)IU+BNRt^{pHI=PpGTM<4|&ABl`fto)M+ zi4vhN-IZSP>;7JFO_N4@za;L2BS<8b>icWJd$&{h(bq9;eC9 z!%!cqGXA08CT~#%p5dbFS`DS`Fa-DL^WwR)8nqeclR+IGAHOPb`pLj5gu`l~GJL>x z`zN`r(uYyAB1VVdYN)v34K44&-q7`v?X=Gc?8YZ|lTY#q$DRZ%{ z3=_-RRr#s>G%1YR{fIa}TagnZk%J>wXeUc!kwAGt;&=yeM6)7hfC$sJfWv!sGg5$* z*$+xUi>5?eah=uVWLK_VVnBq~pKYRlnpg^Q-PZG#nT^KfrUDoS)b`ubVQM%qShumS z30xYrAm0rRI5Q6$btcBM4RMg6d+B|(fJ5V~9y+i9-s1JPUx2=5D4vX6uh~`)i#Qa; z^Uz!@O1ep}Wr{7-A?^4l>nfed8oVR&6BIo?57KJ`s|V7i&s>HEFjzI!^I+Q#>CB>u{-KezFHoDIX)$t z*r|s6;I_I_G^A*OQ%9r;NW6Jg6{UbpuBQ_PcztUQ(Rw4pRZPRUV8>-y2pIN@D(CzbgohdsKSW`e4#grgCt_ymG5bAL1mD$ zUQBvIuNcOFQw_s~$rc$au>;R9vDZ8Cw|3k(p_}$#lb^la**oF)ww(m+r#8;gk6BEb zCXpiXfQe@5Ng9rF;!4!-3PloI#wwp7 z$XugkhoM3dW(g2~t@doL+^bQ9XMxAV!W_jTI~&XhH9=Y}X^cIcQCkzPXx~64pfL27 zHDVcqYT6auIXE%1n;T2%SB+w?OAZ>Ncv#9iNyV_cMwNeROp~>z;yTinKGb&}|1PT0 zfb^jOe>pNo9h0ulIS|2l;i7!f>I)-)Ods8pm6$0`x;xN z>(#dzrFMSS*U%;Q1(ZTRHT2)7?_c5`!(Y3vjDI8UG5#}guk$Zf^-iMBiG;qRezrUu ztaD*#0MzlktRjy#a^zbu!E^t7I|t-mdgUX0~mnX*y+%d5`{>+>l*te@gMNMfI4BsmK~u( zw74Bm1@2Yeyj@d^oTzb*NWmw ziSLy~e5q4s^h(wVU2`8ZT0-tQFEQR0T^#|nsq4!a%j zj$P5*6Uwhy118eJE^S`k7T#L}omA4LE5Nt!o-~(oqwecxpmm35N~rv#>K!XpKRF)F zvHRh;Su4r7RaeKAMCrMdICafKoo={%2O7TjW1j?A@2_F68u9soUPSYr-C)~Sok#oJ zI7rLrvp}Z${T(&F$M{Wl`>jWxdO3ra{aJUx{5%q&Hn60fJG1NhlMg$?Y*z>_rPLG_ zCE)NJ>`i_jlO+Rm)>s48dEZ7Gr{! zVy`6CsllC)GcBD&w4D)5sF_7Ho|+m^rKiub@EhO=wxL7Q@6y5j?RIHjPIJnd@9~17 z@q+YY%QoN*O{f={xB1|f^`ao-ucM3^D%V}kGpy-!&?)Us5_eUl7F;X%a4F3ZDeS*n z;&4>=HUxQ-t!Q4vrZWs7AVh0vrm$(IjSIXIK;srU0z0R`Ct1~gT+(kp z^$>2~O(^HM)q2P&91ue_sOP)wIQ?rXGHyBqv$N22LFqvka18hiYV(ZZbEmoCJPN+m>oFk zTQwufsZ{2Am=ki6KxoJj@30?yz zBkBKq*N1A*Jf0%M?{e=q;P(nwH%~{!wXHm{_}U+hFvwH>RlqVUZaa(iqOWApcZ7wU zTRpAzq;hxQ@P9m_3yuy~k`{*esu88yYp|rl-5m2+FIUZ(@xVXH2upNQ??Rj& zk_g6L+)K~R-qh(5F$mK~OFl70;Uq&M>vv(ZYZf7W)5B1nZK4qgpM3$@^PPM ze=2TeAo!{cAvfUkgsU+o_3q8o3jkFJ7J!MD^5AN)eSpfgf&B2sV)`9l%~~)%d0C*_ z+H>&;v#A_vk*R4qnzD~d^H=pXo#ZVTJoI7T4nFG+C>76>&B{lC| z0Y#zGzWLEKLNOSuF=+14pE=UmypIBUI+LVfW!1Vk70q$$@|Dzn3+R-znDy`WC z`2pY#`EV0VZ1J@CG}E{rAFIxt#6)c-1}|8l7q{{{kN{AUngp^An>o;bYslZxcw zA(0YhpOEatD!8I#1!;@_=xUjwRIP9DPY{9& zbJ?3Z9;+>>O)~`MH79W1s8QRn)POmgxE^6`#J+1KlQk79h_P(ocp+6}0Yvnc3Wx~X z`XFJbzgsOe2@E4~YUez9UMB=!j<>H#@3w1-f1ouS|p#3NOjT5UFh;?x-uWJmX4}+W$XM{l1T0$ z-TGq!iaVBoW83wB4+-_^;?KN3@!zMG?>#PG zzw9oL9YF8fIsyE_r0B^$0zJbA3POmSQWk8UBoq!r)^Q}3TwOg&t6I5V;@(=F0!5v! zT0DUjt<-Dng)ShXvy&<6wL-a>n{hDYA#u6+n!V zTbhR$S4aMVBh6{QfEjXW$EL1(=(~8o`G?$S;j_Q!GsoPuEUmsY2{Ace=N15Wo$qyh zW4gxdRW-ZJjpB=*Y2x(eN;)$uwBHJ0D-)fEf!^uHPd_DAtt?K(7UeD1&Plcp z*IwmefIYNBXor0e;xNve7VD&?Iy#}V&A-YkMMDXT#1pz!VLJyk_sX5y1rlTHWc6^s z-`=CDp0{Khta6i6E_1vtHU4)=KzR%?hykr{ie-LFA{#JwN|bP8Sk@jxblX!Nt0uff zYF9fhMv*s*(hxjRj(Ak1f|svL$eNyo(^SO;2{_yuu(ZA6@uHt0JyvP`C}cAB&TBq9 zcH~2`U=C0g*N(F^gXj6AQ1?PS+0ob4gA zOnkv^NiDu5n6^e}w(G6C%1CJ1U~qoL(6p=3RQ{?jn0slV#~hmRaMeJ|#ze{>EvJms zBujll8ARJR9il2WMLD41$fnh7e8w$F9RmLG9lrc=R>qUad|3#G43bq@qZ&Z{;hg4B zloJR1`Yl2is5HU46=CV<)pD%Wn2NnMo^rn&?9<}~Ge`*mlZrRtU=l5|o%&wCtjz`!OItifTgNOsQXn;&Y{JRHG>5!2tL?d~4S(#$22(SNH}%UgR0bifI5 zc+av#e#;K%&hRg8(cETB-uy*GG`#aDK|JCrB>%`b_ts~Q4P}8jFQ8SqTYzV##-yOz z=um?luirpH+%vc3Vt=Suic0blxCip}?)O4v*sdhTY$#!}1>u6Lg;*?-?we<_O0bpP2P zWBeOMk@24?ir*8c--_bDM1Y5N^Tp5&$hLYV^BFNI$qZkPb`51Ge8<>CUa&OQ&o?eu z{9Wt1w>sB|o6PxR?_F?2R|Loli??MhyJKkV7c!C@j_2D}+>8|9na7xR{$*xgVbcL< z|FZEBZ6H}elgNOgJO8{=(K$D@ctykNmY;!hJuw;Zg^bb=MReL=<7kP?pc_xNXm5TV zZsuQ;hnC3LtMgD~Qb5}zkls^sE?6#cpYnbpx8c}_Yzw_yBucwB(!6xA%C@}XnSnTv z!*cF;oT2_y7&~eM00SQE2(Sl(HV9F_ZyeQ0if$>wZ23)-1X&&B*(udwyI|sgwxL~g zQotA`YTNHndjBaMOJ}dI3CkK)2m#)6u5bj;8 z{KSl@z9{z|(AQ6Yj&Nhb(Y>!p*-l9c;tL7l@>GRnGTHwz)qtuJf7+9qWVXNh?%hS} z0NbV~HGH59CW5qNJS`Z7Dp;F3IXN*=U4<7rC=BnY65^kY*`@6EDD0&zcsJrO9xDzPhZ92 z2N5wQ)TCK!V2!Q79+42Nx=YnVaPc=oBKlm#!n7N(EL}_k z*x<@zr`%88nLv9YtEXCISsm%|%s`}&x}$|(`lrogy8m{A4+ofgi$M(>e{{)<+q!pu z(w=v+-;%>v>&n@lL&N}){o1Q(5*k0fx@K5+U7?(>;z!KWHjA=lsGKM67?ZDYNF)~fZUCpp)a#l^ zl$IM`jxWv;pWM_AygWRuw|oeY;0Fz8IAxDA9!nBXjVDT{@DAFDRCT%ScWQFvf*t1Xmutj|{I^}L zFRrS$KMlKiRGte6cSk`N`s;k#4mcwO31GjomsB#cuM?QkrL?=A@^BU^HPiO&3-6o{ z4`ztdlg0+e538uOa`HvDfnvHGAvSro61qk?9>!kW68c{7>ayXQ{C^;##+PgUXnohG z_?Zy4d$$yKnED*6vkvK8VD)l!&fzxY$p}jzzk!jy9OL5pY08rc5Mn;?`HH?N*}XS< zQ5S@yF>)C`7nY=c@|w0;6sv(`$?TsA^B;5X@??lC}NiS~&Yj0-xEM zYhze-C-_-LPjfYd{pn!Dp1>-TC*p4++u1QSp3Do4(WuUzZ4!ew=Ev!-!Fzxc=C3YGSLOL9nLKgxB_o}~jChUTW5uLkA|sQ@sWZXnK~ z0{|QK&d~i`KgHh}c*0d6EX$g(k^13;w-7rKq-Fs7Xl?!HJg2EBEwEMF|m#$w}%M zRA57#XKo6g?*B3Nj$MLi%hqPvwyjFr&Pv<1ZQHhO+jga`O53*8`QGk6yGP&s;f%3< z!;FX(Gv?z!)?jmUCw8iIj{OY393dzEFGb})BM=KC%l~_p%=|ALNap{J19_>YuK42w z`XP{=?13r*=1+tY$e;px3RQCiBp(D*E~#OyHpY{RCfKj&_VVlt9j_eZx!}9BSuJiZ zd_G><=22pmeOP`jXS2xQbJB}rQGWRIB@VZSkU{8uj%4?HVuyFkDl0WFG4wsf%LO9S z=5Hz}HEsfR7h+gF#imnV8&#SyUcHGEq@ zoSJ}N5T@EWjr!((OgADz0;3f%hfu)e?1qC(0>AwpWOmQyYHlg8SR1Z+5ABpRwc}}e zhmZ00Ucg^PXL~MWN*jrnOa#HpOdaGytQa9Sq7eitvzi=b&x<3QP6*a%aw6J3CZHV% zk`_Gc$F$PnWo3blBatGO!;hU-{d*WxMG7*9}R^p-<jcZw;kMhvj`5!1IzSAE?MH5YjpjK~BP7o&~}QxYwpTJ)CU`_W#y+xZUwf6EZSdC*Kr@uY&>B}>MCC5=KgZj87 z)KL9(XU{=g02P#A1H)b$x@d!R(DdY(fUOJjt6b4wExeh<&QQrT)EC=l%@7#@Gcn0J z1yZ1ER3IsaoxvoxZM>|^Xi!sNmFuM>m#J|^r7MfmEU=vvgIAxj$4&!=%jR|$v!qm8 zjXu)#cW>|%i{hm3(PZv72S~OVQ8ooJL#FX}Fnom!v72(6E=}uOLs=p;Q}I|FU;6AS6dLIa;zdx0WR?^~+di<)7t^kA<2NY_#f1+>Fx620N~##)#iTKicu5f{r4;ik`c z7##Pvux4_7c?r_9Srka9Y!xXwaX?c+bqO#bJ+V!Z?>RFq}q-(cyt!r zh_kYB7n)7hV__dc+SuOgy2UORwvdnAY|!g=sPJo>irF8G-wXNJ?|dk{J2;VE==47O z9A#3}`cgX;V%8wq1uO1TZBtR6E(Lq_12G9{P?j(qcB$qIY9qgH2GskN)lwjPPM^5Vn zZ9Yy6HN#%J_d@8ujGOf~{L-T8yoq<5A3Dset$=kUO_1qT{N3=*yGRyml{>xSyXMK_ zwd9|eEBF(J&9fOT2oL^2!9C0iMi`T`BK$O@)3Wysc4=u~tL;FV+s|&pZ$G)QgiAsh zDQm|HHIbv*N)LGAa$@uMyVE8>T|Y;_X9(#lJl_?DL@nXi2oxT|jYMb)Eh-Huwvs!N z+ltGp%-{JrYLD|C8S7iN~ipP(K(-JuH3$m;q+Yza+E=;Uidw35ZZTP7Ivtpw?v5PGcpOxd**(i0gC z5zV<^jY8p*-GSJU4n_TnnwrUrCawqzbIZ%lY(*Ga!apZ!5pyh-Q*SFT;P@P2j{mz} z{X@)TW%y56JM+H~GnxN8V&>(KXX*crDykn(McCZEc-!ngBFTtD!zDz?QXwZ)htuhE z1uJb?VE+CZhVI9>ek-2q7E=`kiO+U-ae2}=$?+0UBZDyI>wJFI;LJ@kOBciF4qaAw zBSJLsbFsZ=@i_L252nU6+*FEh1P}`7zzoQrP-Ai``X4Ta!(RpP{*{`q zGWk+%FK*sZX|#B*-A1eRF=BP3)BlB-9OHrG5idJ{_qKWf~?EP$mnYzh#obm>{-&@SQlfM-I0(kp4G*07-O8eJfgn>!ZOgZC}0< z%|PYY=T#u=a&-c7d*|^?@YNmz!?W*?1MQ{H-%LBrVe;f$FfC#YX}nOyN7uLmN84`K z@M)JY=7?E**3H55R0lpp#&_>3FfE0n?}8UzM71?nJ4K_DruS}u^AmbFQCvW8o(*jo^iS73U zNSp-qY9D7BSI;7*rz8fV)TfsGgVm!KP$xeq$O^5zb$Z&g~nT;8@{@fwpQx7p@h zX7iCDmwEZJ1Py$mEYM_sjh}d2GM29|NTp|jtCf}uKr^=1mMJ3VgD$TOFMB~F}Ls61pGs)yc2-yM$_*itG{=@C#{Y?JGz5q=j>`rgiq5;bh5sB z8I|HGh>qm(HMA<3t$V)^C{3%$A|zonYnWWsYGW! zVeg4W`3MylTvTGl-QhB4hJfx;Yz|oLmx?M+XLZbMx{ApNGm7Qw@)V(pTbJnFxDS#W z2PVm^UY~405)FrN+GI!Oa3EHzGJ(%SQv*>LATd0DS#!8td`6(FoR73f1hPcOp8hRK zw7r)L@`&uoK7r0gGE3a3EzmpPd=jnXqP#VqYM~oF4v9iD@_dgC8qi1|$2oP+O6g#7 zP}HKqW**{Rghi`=>F{6eR$(`**izxZ5IodVh5|>kbv%@dNe{wxv|G%Imng2VqWVhP7!;gmkxc{9FhuFi7 zH~B~ZXbRU|v<1`yJ2YqtFC|5RRW--qh_BrG{P_O?&S}M1xq9UC7M4#>Ii_6Weq)k6 zHTq=J1n<|wMT*7k0DYqkxC$HrsP#^!+{_97q`ei8G&`eKaR3>!8(?u-%g=LK%Q?wk zQdrle2tv0^)Ej07xk%;L@n-e#k~Xqm;A;3nJBTJ3VbZ`zHq&o36`$;Y%=qB=G4mLC zlvES+l`D#kg7+x?mJBmi7!KrQY8zT$qAzY3hxd^%!) zF=39_G4bLd*zYk;=zqK%WgM}Ty8Axq)xu8J3%)WC5PC6sj}aZ*Hl*xSHFFj;{J1~T zyjS%X>W4yujxEs|vw@MF`Gb>#Z0Y50uOB1Jnx5GLHaK(Oz|14{(OU?;yj`@OEvt#p z5r0kx;f(fx3iA@Vw9|W)#5DqinTfn02#_`4?Ce!97O_1Wn0fxjU?+ zxa}%>ag)-65HO2OSgo#3By`awKzY&{p-KQXUs*<({mFmdQ{8B*8B4vKAhY&Lm*(Xm z#sn&dPn(Y*_pPu|e<}r-do|y3TmO@L-A3w2AT4WVMf>iP!#^3n9XgkDA;qd_O|Ujk z@AU0p>`5!h71*~hU%X!y9d`kL=;B_6Bx)=cYRD(_q9^Q{Y|K6me`81orQ$2` zJSN)Imb}}Fi=52=G~bPzer}e^HQ@HY=TNzuEObeu&8QfdaS}qhvZ^dXwkgIAt~XXU z;jOP7KsL}g1eSRef(_LC=Tw&_1FLoSw zSeBI_+uJkpk2)WWAHpk_9$>=1x_LTIITL(OIp6p+Jsi)mwPPo9Pk@Ytkmj##)6DvE z08CFv2{ui@H??b0Zk#<=`VE>)O*|WuNBGJxlE%jr8f0YZF^He>i}>t+=V;@LBloc1 z@^pb-@=!$aSob|jLn}x$200n_f8QcCT5;QZ72s@<8sb=D{mIXnf;yzhk@3o-oVSc< zaGnrXe%Rqnh$42!Q&zcih8*+MiSbrN@}|qo=>XB6_U($d8?!wV_b_y&bMKm&Qa}=x z;H-wAa(c1vOJbC+%y&;P^|F%_ zn+Lbi?f3Y4@^l1a+wif4THRwYX($O~hVdx@X|{Qh8kH(Mu1v1D>7G!N_$M`Jdjh%< z8!G~)`vy`k1b>u4mq2kTC23M z>4$|e`gR-gnwMcvu9gjVxbL70yB9g36=LFP9-`=^LOPz?EHU+$_M{ayVHT=Xu;-CC zbY!C|9sj$u{KMO1VPg2tchbM`HktoB-sY6rwqu6G{{Zb5-s7A!#()YET3m;JXK*4* zQ#EzNr>_z=VA&v0>q&jRd%6gNs?U;nw;3@;WH~;4tl7?t{2T*91$`UmCc5uiZTPFt z6W9fRHxAc^P=XM=r%mn-2;|c`p$bODz)hooDw{b#<7yLzfN6-%t!DsEciBU=Pvj0< zmNVgLX{#G@V)T=<%gfqq3wq29v`+WJ>Nl)|9e0$0+qFvNn4isHW*6DtB6@uUsSr0I zlHZ)#vJ;x!4X!78BeyI#Qpf3<4V0uCk}9K-R9VqRf38LiDY>B~Pv)Z|;UD>k;cx2U zLV9YvFxaU#9V90KkUcYtZ#t#Vj%^gaR_#ipvf^sC9Ezm?i_KG* zFh`#(=Ase5Q=lbN)Xxg>=_Wi1e6LZKYT4Ad^$zs88V}B2N2-#?D3Q~e)S%NWG@GsN zei&j&0?~fYTMdjqDyE4rxY?WqV2|*+0JdQqlIYpMTrdow<;tjQsT_9{=o{$Fuovqm zxQgk-W+mXif#TMX;1%*Ey%Qf8v3N_JuKl9ynsjwP8~{K6Y-F=D>pgym*)R=-jRB7d z)}F=Inqa+dNnC6ZR8rmsPOS=W(Wzc9g9`gCdgyR2Ot{}(ZClQl^P?(H16~59k?Ebb zaxKM?Sc{>q1U(l%u_X&Z#R(BtzYSPvJawBs3StmIKMWqY|9|_ZK@Sy_7bN>UKjQ} zw(Cfdj)W_#PdF#kpORFsh`$zAE{bt@J63Mfo_yC0KkbKUMY|sPV9GvY`)AABjQ>k4n4TIv^HGHb-I?R8WW}0Dg zQ)+6c1uBm?#j3oibR$oeUX(*8;)Q6kr7dKg8KIB2+mPkZ1RLD62G-;hP$WcWA5$ng z3;S*6EJ6RtwQrWcl92D@n??0XZ28!Md4o|r4?~f}$hx<`C1jTp>u>(hC&)cKZ;V5P zAC~Ae1941UT&*_6!&oixB|pVuK~!C7=ksT6aTqI^P)uXen?{@mF_-Ro^}yeBA(!sB zZlWv=xCnt5pV0DTgK&>ReEjP`$;Q&D8@+1d7^I4vd+h^(%w~WfV_?HOVF>8i?arj~ z`zVPTZ*e4TAq;c6U~y=nmv?x1A&>xZ>u5%V8;Gqm#mshk!HCIOSv{zdMWVGd(UT2E zy$^Up67Dw=SX+(4)65>VkE7f!iD)7?UH{^&=-n=OlcSuAu!{o!_ z7~u#0lQk-W7VZ~dT@0*-nSCGc)ldGmF;c@}1nZB=%F9c-$K*Fz0Nn3?dWS3K zd{p#z+1y@&wuSdig&;r)z8F;O*o1$|6Gx7!5@d-Z3QFD(vlB{8Di>53CAsr&(2`0K z*$Z=~1_5ojdwq3e(+>Ax8j`=& zdXE#OrXOC)pc8t6pmq^L%l0qIZ&WGQa}e4ajKXugkhvi-cisoyzG6F$&b3<7x9B^s z^aGc_ATxI~rUGT{dF4WK5pERk+*vTC6ad{~?gC`67b>klE4rS<$W9=ulR zEG{`Ld)cstmY%>?>B8A?hNrTF0rV(56d0K02rwJyXK_<&i-BHo_W`dm9GGCU7X5nS z(dZDH(Hd0myf$|V$HLZlDJlvsaYLwa`A<6YXs9e|xZUe@Mz(hW?O!!IKF(x&hoyp{ zgw*7_PUC#j*jw)jxdiV!yhDwqJ2fgDhANX$vrShE6|W|*EE#|;)O+tJ54?+J)3nr= z*M-4Z!G}<XycTVYCc5 z0JY^dxY=TCX>cq`3Wpq|Ix@BEWrt5GqAjGc(objFamIz`w7j$T2Y1`U!r z`HdE~EbOinRdg1;R-*j(HDP-t7wd5~*{8-A`LJ!XjXFeMtFE{j(-qkY+tnB6xG{zn zo6h(shz_?lL*KBweO*qtO@!r*PpC z25a1?#C9@$Cv-U4#pE(H4~X7j?cX5)+-PYv>3b61#d|HBDL^0V2#|8hDZ0O$oFS9) zNu(V+hKO=$&xiaMv>-I$p8CYUVy0Zp0{9dbl*wxq=8Rgs{9{jDR`ts`GEpN7t7>$% z_1|bBEmC}4gKb#8;SPOL{U#C|Xo1l!G2NaC0O3D*vi(!N;ozYwDC}|bkvl#P7$U3& zVs+`)(ljjr;X8zROxl;`n&fJV#c*X{HZ!bnkV8Rf7u7-}QD4o{EkqC9q{F(GgILjI z%YG}c$efKQPrUto!8fZ}+56u`;~z#W^ZzGg>0cPJ%>NxDc1lg#cAXW)d%3plL=s0& z<%Lv2YaMVE=?A`5BOP@)G6E_lP>ZyByDW*Vl;XpaoT^hH3D_Z`r6v+=oM0 zF3Do2&(H)`<5|@{HLdUc86h-Z7-t$c;3Xf^#|W0euD1puIo&-u-$n*DL@=nfRb|f; zF@^&(D|Ea|4# zCfwqFvAgH*&00mtV&j1B_WFQ5&Tt7u>9ifpZ59+oVALXD->uXf+N@w)2W&^nS5p!D zrbs8ue$x&zPK*RLxJ~+?jRaFy_9RtmR1M~jd2T8+zp8*5T&o?NaOdR`ttc*TggP=meXymwqzp^0aP|QVWMQeT=nKX z{~0cjS7y(OBTX8&i}u4hH0{Kv-qGTQZDXzTwr}0N4M$y<`hq}BZ4^xkfja3;Z=fD? zj~^r8^^LFO(&TUSp@pTj$n2U_Z=v9?WG%`_vQwfYr(0H|NFi&YBzTDj=wfwVO5uP% zvVNEdcT6T4iEGbYswtXIYf+k^g(<%h;Lq9@<~~;)geCTJfBW9J4pH)I#K8G zxH1lp0IfL^@7M6b;liB6zrF0u$fj1iTVFUxy>pZlQYVLAUUozIKk7il@}GNjYU9!G zsXY3Jc6)g1UHB*w(4RReLsZEVx>W=9|LN=%T!~%{!%UUSG_(=?$|5)aMcn4?SJ`P6 zFSTPBH>!2beISU@nJ?5XEv3fhYL3E9k;$EfRR%(%-?7mg-&c78%Awe8k|n3QvS`>` z*Q53gC?5t__%EXJpH7sX;h#?QUkI(t{~e)qNlnu>^XL5FShecSK$MfLbHX_@GKo@L zd5p&bxAk}kX$`1_qdyKPCee3WJqpf#E94^ahjV6XPY34MHb zRIpL0|AhEsCMg$c3|8)Tmv%Ok0b_Mkg@KhCHo8<#Y?j}R9v1by#J{ZAf{bO>E&oCO zRANvwv~yV|>R|a6@+^J}krU&)7C~_+h(Abwb;9CG^yCV6_>Wttj10VoM9dH?Rm!;= z-b@=Z9h3U(KC)X^@4ID&y9~w*&~p3ZCbbNix9fD_C_FA*j2Czh6R`U&<+y>-Sz_Q= zzxUN0G@j|aJ(5DJ$ zA16A1KK2GS4Z%(Xcsf&bVzV(CwMGhn&#YffxASZs^^uKEpS%a|20N+I40VYKhr26> zxbn11rl^x^?rZq|){#eR(rNvXnQFIY*`h=tK5nb3`&jdW8RGA08hGFvv_JClX}HCd zl=sa=YpzJ`o5hSdl*(6nXH@|ZIPCfRCgP^$VXr0%?!EFAf`uFx)V}EwUzweDbkm!^LqwWUdmzqa}xcO3z)&5PlW|cLQD1GWifMmyP32X zf`=0ILCy4qFa1&*3m8&#;qYkA`!Ip_!?e+iAtef6yv&p~eK_~&!-T~lZJz7_6m}^A>wt4<64WYcf57SD3z7f^zBDvMmJy5Ac5_lMN-h~RWyP4b6z_Zv2vbYH z5(*$3&VSBm0qj{t0@|HmzfUr@>?V`saf=x-HW~OIE2Ux`{HSMAfY25Z4 zWvN4iFZy?Bj46n+a-(MmfU44}m0zly8FFp;3g8n`>~V|dXOc@CMxGKH>Uo7R0T zumnZT&N)bQ-y~YSkbIS^-*N3^T%t)RJyWVmz)ChkeM=a}iXNA-H94Q-n|j$RS(uh5 z7Qdgq4S>ZriH6l}FMLcSk-4k+3+tVeXNosZ_c~s3w^xW%<7JSr?E3?`TB7Nli3|3O zoHw5wGYloSpMRk|N%rJbFI2sk19a_NN+i+WMxN>$-+7wBnCpYygJCY z6j`1dtit8F=uQ-kY5hErAIg#yM_W=#OyfA96Gt%a3H8}1+@041WqL>l_aP#Jml}5H z^v_SHoYL2(A&%V+l-`?mtU#$X*C;7A5P^D-;tE2|=9;4}v1p+!epG%1#h$*o{@-f% z4?UKF^&jWPztCfu|2ukYvzn%3hQ`m=u9<`WTE53QZ{l z8iV=Qr+Q|lpWjM}2~z0AqxX5s^P1%?a6Cw`*hivwtxF(Rpy>Lb-*2XuO*kKzvflv4 zx|O(Cngq;(!~rB6IRbydKz=zzVus)dGzh`XareWR!>M=n!;bUX)QM~z4RW3L3IG|q z8|-Y2<)Pe);P$1tPt?YFS~QFzdIo5efD~8v-LZ9ZeUP;q=PI2g3M*}nQ~@FDY@qE zTrDi$$~~l(4EoMGyubhk|GI`OICbIK#3X^Zbm)*wD}EAR=ruz?94j-3>3=5hf+Qe1 zS1h6boweAi181+Y`j;w~SIc7fitTt6ns}r(mu}lLBI^Xzz2=;ZGX|W^oj}GjrXYlR z_r=GVhy7{;LPda9S89n7@)j@3zJ(Ubr)Su0Fu2qE=Y-9RUq``Vt7(UXwDbavWRY<= z1Dlu*;1L^~@-lZ$;|Vi=KpMqM`Xgt&;S+^(j+4!fnYt#d8hZz#U?lS+hTp6zGQ@}q z$z$8@NmF z3KkZiI0&gJe-$jSratmxs-7d)ln1K&n3zxw%Wj9>kzl__PI3(|z4#n<*7+UmAlcE& z8c5Q@rYY6L-<^BEJ+TKy0!V*UGYLPuL{#_I5SH*P%}BvFs<1e`F<^ZqFy zRbz`k+jGpJs@E{Hg7RrkDFz?`d%;pjT8}`~32o}Esf8gx{g6CTS6AigAweY>zaAIk z04380#gUIAHK3*$4Ywo7C%d$BVREqdjUB z05Xc3&vlfN2l688lse?NCH;ByGju?8f_`a~(5WtNvz_Y`st#`8>6CDEfu^=(#a7;4 zilMstTNOxl!|v1B{aRCEJ1QtXai?0E7It+nH&Y2LUG@xLSDiE*rI%2l(p&DI(U<$K zD&|n3ZsgDDmr=LmKuxPMmimTmpbIe=>!wl%%%sdP@JT90Za|k(I_7kWT_~<-A#Irt zo5|Z37a8!-Z|4pErEVbX+t6~8JUYEzZ|NAHfZ0H?+CUbg+^#E|GcfAHHf=TaZmEVPqn`no^^?`E=aGI5)d3Vsh^pb_heu zW8&_qkS*tKfdLzyRBVj=ldmw^M1S`9w5XUm`jyW*R%ey#7+`$HWUAqxD% z(C((izcVCF0hWP=NF(za+q2_|W`ljHHIi*Q_p(rBe`A#v?m5BAtN^O@$cxs(JlDY* zbG$xTwd?X7C-kGrKwGmKD&ZD*64<)h3qIjZGO|Xg?AhG;f-VOwOY-`6$B0VG(S+l9 z7#7P+b@;|LTn+W0HdlL$2Klo5@lM9dx~~IID+gwSdj?_1B0YmU;%;lC<-16zeCL)s%rn_?4Wobt8TEBDoC4z%$!P4 z>GNw-vC070D*r+%;MZ1RAi-dp>b<6~#|>nV+%xNxsHZk^WOuyU;BuYb07PQQJ8Ntg zmE7G}(yK>8@G{yCwj-6K}GoL0#WqNn-y1ITAIJB`8t|n%e2ZVk)%NhDE=~#T_*Y=UNA>{8L4$<%OIw` z^~{qd(gx#F&#ntGV2IF7g;>Aj)n9Qm($3V&aO=NYHs0=j;PfB&@%ub5vwq(@jV<}@ z8S61)5{5@Bp6xdBmYC7p_`(^9IbtKtKk=x%ZT{TVzcD^0gwneXp;n1RbG10{-MJo!?|xy-t0;64 zX+D*0c^-aulH@L=htzs9xU8esfK(B*p~s0COVArXiI+rB5Tk}g>9xO;s;yOnRQOY!{0W(weK0xuqInm>Mg1!LHJ-+xgYz_CGx#4O^{uNCz6X8Ay0Ip_gTJMw%yZO(0Y zI?&=G)`N6^5HyG~rl+HC9*1Ov)@Cg+?c{FQZ}K}0%Eq27#VGd9h@Yr6n!Rm&w`q4t zXL`=I#&CiDZRm)j;~KO|TzAUA4NYT<-_VJ_Huea5tu?-}wBGR%wz7&sO(Fb1 zHMx~m;3qwO6uo54Wt@B3ERA_|c^_IxXavqqo&TzQnH)SX6OT$kfB?Ms_c~G@`d*A<`2DDe0x( zzi&l&l&97E?UBR_3yLPH^|c}S0RKM7@BeSr_zyyrgZ&>%-M=vm;_gN0mWVW$aBv5 z2w^Nh1O)%vbWeA-oz1ykBRWAFL2mR71pyeqYHBO6VW=OBUKm0}2TYbH&~H64OlIYv zh!P-i^#7Bi*oX|K)8!dfNFdR__Po&?OFG8x_=T+2RRC;C3j^R5mWZ+eJN;F_2aq;N zx0wzaQA)wnrJ?0J(Rj()TwN~0^OftOxBH(=Se{GLo=RU>GiDew zB8HR+$=~ES9Y8; z!AoXDS{U?jEY>~@f22>*(aTZZeZ3o1qh|g!n7|d!L9_UXLI;zvf#9zH)`jj|zU#@G z&z?;Hg(UyEBs5f`DR6eUv|HkA;dC;#S~&&uNL~ zY59~hs^L{aYGj&1xqFI8{&{pH@g!@>uTn^UWVR&Oh;yLXPYEIigu(z+lH^TLu8xvY z4mbg*|LR3Dzpc6s$tj|Q9uiOANox2{CmEo?V!FE2WR*O9Lj|=&n%yW8E&;7ey$rw~ zU*IAD@wWh!Gd*LYFf1j=joaYWd)Mv$px4d1k z+8(TwB3M)*=lHV29VSxZ(i;xr&&ZJ-(q!u^@9N(V2lpek$V_|9gHPDQs|`C*x~m(( zj+?U)XBAVMLT{7m_`2}x)}WTD*fuZqwe#KVI6xzKn!ho)R)XG{#h#c8V{@B4oJD%I z=aUA77BW7%z#r3@2}P{xG1O^rinUHD?oswLmt0v{YIOPk0@&P#ZXw8~`vWg@!*FuV7 zMYB0H&nmlg-^cd1xVfuYC*i=K@7g@dwg6Rprqc`=%_9q zvee$^ghcX=WO_$QBtjvzXH_;bale=mZe&BgQi?Op2Yh=sCf2{m)qk2C2Ks+)$^V5$ z%KYEaNT+@*z=iAx-p5oAEiy|XCj+#C$I9bmcvV{Z5g!tVa;TP$(?MvPmvy5c>^ zAVg1tWXTR3IL^6fqSaSlfO!!BM!oAZ1S&RK$djs2AUtnusy-B9zhJuG52P6dJ}p# zViVpFeSXIAG-@C3xa=TazMlQ$a90LB|C*r~UAQPW4xsmzy+i3Mt?Z5tzt0X?I7QoP z2_p=Y-Rv<{?cnxz<NL$wS@w*pSQN|n?NWS!a8A$a2I5P`31bc zAOBlHOuMIC4%C|y3wqx`^g{^4AxPZ+=6;Xk@jhABE(hr%v_Hmmo#J>i`>=6_(kf%K z{z@|&vQI5zzJdtwM-);I9}M2erjGB77M@<;m^A*)*wxCxB(+`pnh9u zz3HEVM-4RjpfbNkGr(ouUt3NE29aw7X*_w!>v}1GW}k3zVDw)B%qq=@iz={Xif!nW z)wfo7fJX7yQO-{f!^JuX1}3$L^-4w>nk1W9!UF`{lZG9fjMU1lBowL3S!DA0G5#V1 z)g0pa2L~f!3m7QHy#r$25CW?VT+(TLBCShTZ`Q<3Yp?c`9D&#VVTsIqOq|CZvrrcFqg=vev>@bq8?p>DH4QnepaCCEo+4l`1>AJ`yq+u@2tHaOyg$wP4 z3-yOUMNrW(l(h7u=FG(A%zn%BP*Hk@m=)O996Ps?Or=^vFF|r@pw}{Ul8E~Y=B+#1)P;M<{vB}Y*rfUGo1u%lo!zqQ8VnuMWj+S9$! z-9mWJnuIW4wi-V)l+AahJ^i<*1NN5TS*pZZYrD5dNiprXr72eA`gqBBc5}tB;jG zN-rNDct)1V6PyS$Be|eepxt8Ow#QKbg|59BK5zUoNe(7~<7UjRg3N+vF{%-n@h2h+ z#w{NBe2KIDRMS3<4R+c!3;MD>4)uH)ljMV>-wz5!jf`pO*QpsfXVu@LDL~a>*V6 z;1sd-rqLrIKbA9`-NDzWy+X-_>KU&GDNIgftJ{l9nmX!K4&2<54#}K-Wu)Lm6HQDg zxQX~hWG+Nz4@}mr6c?ovne4EYacu7_D7GuFrtFe%7iV2?kL%jLsdnpD+?LqClddCX zNWZzvQ@7aOQL9vxrWXuiyF|c@U{!2emlvQv5WX~cdPU9i^~pRwD$=}kiGhpvw=75; zzg-Z=S!T2xD&c`u=vzJqY9F>5f={B{!N9iIPF$=raZ!0?nq-PJuIk;;bZXUI1jmr9 zOLy7GYBdp#nEXZ-jyiZ++UP0p#9QKty~q)DeTTBuJtWPQoN?@SVOkMdA$V30US zKEo*%MCB7bZ2RUE3lCUyO-Kk&Op?GYx^wH4RhUY<&zIc=RS9vxyJL<{v_=V_v+dgo zuDyklLSr~HH#?M6UvStcCK;v94P{v;-Q9!LpFdpYR?b;3EgyxNFuy_QF44(vNl*Nr zn7T0ObL4wEi|`|~f04I;nl+YxO!XZ98$HSL-=ZhCe}>DSJ#p>LddYmSfzJZ(+)k6( zFLQrp)pDe9P}CZ4)48EgKx2YdR_+Nah;NP0De+=vTD$F zjQvt?m;l(27a9fEfm8`53hlbJYtVKzyGC12CjbJ>-g6E#3A(hpw6w0Rbz04J9O)f; zLRz3@cvbb1{l9vSa10F-+?TyfWHF1HCQnNNo@ zr$0f^jkuk&3hhuI0rIQ4(n9_DXo{QkJvj6&I0ehX8!-4m`E?v0}!|JJS@amL0#zxagd)u9C3F!20zH`GYRTdT_Pgoi> zAeL9jVNWD0qh{!apCUg4 zYJvqTiKg|mhrAnevWooWjb!6&G`oXRp>KeN7Gho+co77zX7XG$b_uq<>a)|>y0x-} zFLNCGtNL>BiUUjDuu@0Zw3T}WE`v8o=Zz>wj~9z85z~L6ujhU-%iqS%u&cA5JRn%T zI?vDZAdkq;^(T;L6(QeWxz38Bi@JNQIx4?2wkM{g*@NN*@>7(*a& z7A$4gTHncw@(9`hf@-+JQLDC~*t$m7I`gl)BQOu3sw8RXiCTDVn^| z)c!@J^VlJgp3E_NB9vzWCcD9m2r0IRN3?83l(9`0yd$@T3K?4WK3nsc;#r%pk8{qf zKkYHTo=6mhC5E)J-LIHs-rT5=@Va=PR8nrGw6@kj0W0nn>U<7I9V)K<8DVM!+1|qy z+<_$+nw~-B4Wy(i6MvA0Eq$KdIBbj9LQhL?=6O1C2a>i%w1c43680NwFUOap`G zb(80hxCYvP(>}jL<`+UV&Alc|SV_DF4y65Yh~~x1MZ-`3&E9yu?{GAZ9obXq1s2Tg zQ2)+PbAF1F4R0#Y5>y*I*h+`1=?yqb?DAH*KxSwX7>kS4I~Wj0yMQM2Iks~UizRlKplhuH7;ui#fX}%DXX4 zH7=`mA!CJiAiY6FShc~6`>@P_w)N8Jw@Gyq+juA}ao~ZST~?J*>^QZxq0{ zA2PbpJoOozFLAU^<=z{k@)GB6hDMl$(;vaX)Iqpm>JJl60|cUC-iBKUs&WZ0XPYM9 zf>9MmO4Z2b->JkSt=+^+?tzk?z}<+??!moAOvq>z?_S8@v2FGqe$-et6&anl5fQys z&;`jI@gP>@Wg2jp|iqr%N<*;D}Pvi$>@j_toA(|t3EoD2Ui<-)pBo_Vn9 z!dDmz4owte#H1;O`nSrTN9sL#z{F)=AC_pyja~JdL#eX5umInt-1Ff4J6M7QP-EVK zcgwyV9-0k2E*Q#d*RG!vB|FggvK2&F2sYfWfN({1F~QH`FvxGajMz~@@tB~ZrxKEh zpqmat0Kpq0$aD|R9R@})DH>w5E|7uArgte^RNk}!4v<5{($<7ulkSJ#{VAkFeY6x- zF|>jIV`-2&``Ef+R1#!G5=~2Y$@_idJ>ddln`4U<4;cb)<_QR1QLTU?7-!n z`c1IU*N$*R&Fk$T3xu6}IjDC#Gc1Y=aEDX^ejd(&^8r57Oqe!EhZ>0K{!XQGNi`wN zomnO*zxZ-cOzv5hadVjjknX+@wPu7oZzD@8We&K&R)?baE13QT^s!ve`HbLu%LQQc zryf4boTC&BCJDNeirmpXZ~^qb%l?D9&aSSC#LOiy0Zo7tyP(6E-o9Tz_3l`W9vr zy_>EoJ;*|19u*=$l56p^E$AoR#jW6^Jvd6{tu8Of}~ku@PMKsy-~WIvQ&=SdGMgG#}o z1lh2_P>eOmtjES*A;01dbj}y+{H95TU^^0yX4KbQ%{ZrBrAM^I7;CM9YKtz$K~cTL zLzBcpxq=Bdf!yL8vj&h8#?mVQ$nTL=0|t)JL)7E zl~XcBS<8fNuH(cE77O8&^)N1nne-w+E!#kV074&e zAi}1qHh8|!E0_gaf=KLmRl0^^@Rc8vr1C5{wK1r%X)WkP%M8%~$kSFz@(H8ZY1LDe8%FxzJAOU^Fezd3?h3BS}ru!NoD`vf+=Nxa)PHas~-sT?Hl1O9% zN}NMnthBN?RT+cb&&I{k&eSFrMxjT(dOPx(hv@^2^Aq}FOU@<@pj6h=i*o8xm{o-$ z_tlx_KDlrmeEL)mV$$c&Rj*m=uft_6zOFmo6_GC3Rz<6VJnGE~=Y;Vrd7zRBzRPT& zAT1b81%2!-akJq(W#4WPnNAjTqq~}=*+E9I+@ll|S}t<-^jd_~8e3f}(8s`gybY03 z2ah+MzS>@`weFhv)6KbCq&db2;cwYri7TY0;tF!lk<_pFx8>T;$4XV?g=$*7e4!57 z*h~IO88W3SYS~a}L+?6owu793$vz4Qw^G-}6k zLe2o^3TZU4X5$ql2Ox_5zHK`}unsWu#$x282lrm*bADg=?Eq86`Ujd19XlS55uhc* z@KCD1dhWfhim(9>#vR|wTtN{`X4-X}8v{Nh!XWG4GuKSjGuOZz1~2@}pw{cBM)u$` z{$2Nc7h-K1OMQ3?=9(c9#cQW}eV5LU-W09YD+;UqE^TkIC>^~RfZ;D8{kI8nN8WNx7tb0H^ z4anW$bacUe1_n1hfL1qzgSuzHG`6O%I&aoba=LipAR?0Sx*zS*XmwI*)df)8SunMz zi6zOb=OYe>)62+B@pg!JTpUWy!KNmyAnHW1FUGeL$s`4Bx{9mZP>3|#v2z4b0LTty zt2p8$Tt|jc;YM1%^9NCi(8PQrif?`UY9#1rr5`!lH5iU_)P7kqTBrz`kEH)FS^{NoL17CWJXapdJz}& zicKc+)E@uZJV_AW=uI+xn{^LDqiQX|Dbqoa=rl=4;wSR1Ho8B4;_v<@hl`xF>Pkp*73B|t z9I(Gd6v(c^i_PrYDzURvIiHhc439gp?VuB1yM-wVBb@w%eM=nt!zhZhwi7>e$nI$B zvY>bDVF;a^gCh`R8bF^APgh2iTSYC0DHl{3e~ohuW2E7@Prk?MnZzul+Z);1zNHKm z-7G@aNi(5XsQD9|O98Ei&DcEkoVdI+`c4ZD z@)4u4wU?78;TzawhjKhoG^@k&w+*rCg+Dk;M<=A10Y^$`%yWZlCuZUPUv+~t_Jc;#?+^dYBM>u6z zaR$@(I6}3T7_b4q%9M>;gtQLrS!Ck`<7y1pHNT7c@=;%c#gE z7p4tjgK?GpC1p z>6~nWjE`32x5}D^6#FP8vrb*5H&SHb-pQ0iD<<$%>dL#(k@Qzl8*NMXXw`Bbo0F6T ztinklu#e0*!>70HbVG0vtC3n}7+FW-XB=@ckT#5Sv8EZh>#Cwcr1Uj7wQC!hw4PLR zMSR9sP9fEix2F@pOHEYSoZFJ-8olyo&hfnx9UXBh)0||y@lH$OCDc}|G+m9Bu5*_7zbtbX+Bx!}e^cwr5ZsD8b4MCU_SwHPKZNRc zYG!K(!*#yiw!|QTK|+X=BH0@L@OfXaHW8$~3r1BFi@j6v_oTS=ViqwbqPl?ki=2iR z9|5WQc+j|90$Bu+Hx{NF<8c84sj(u%rc%*_nG)O5o~N1-o0H`bd7w9Ct$XwKjk-Ta zW98~`X}o-nBW>ry3^k#WRm79vD_`Fw-Pa|n;20nHRD=mkePwQcv5acWpBD1Gr^$^y zIkO6@G)@XXNQxYZk3T)nuRhMheLC^vrKql(i$uB=d&qSsk8V$^qWpc2Ey1PQ7O>6e z^{4)UCIEGhWJo2qJ(o~}2P!H@8U1t+*TorlLH8##9?`?}(XIL9M5>DB za_?+v7l%QfBi(HBGImXkRGbo6>EjlRe~cALeGLY>oCWj`Yq9+b#G5l)GIF>KjKfw&Xm$st7AcCwC&N_&+Nxwk&$>W)Z; zRBZPf!4U@LS*AV|7vkw)TL|(&u&1}oG(;ap80R~g?lFY)mx9+2^0Y$%=iZu$I1DHq zpuXux^PSDt_p_<-Iz?ADMx;2F|7;Aq!h(M#3?O76w%dr`zN?G2isBKb=p9;Qu7*1kc{xPrq+2ef9qG{FPD6=f2<{0tn_=uqc!Kd$41fzf5Wk7T8 zzwFWxPVnMa@FK{*dbsoM_8j>0puZ!C^Y;MoJ9w|#I%Ytf zOVNjQf2dkL&u{qsXkTJ-#H8ftZ`NP_oHaUGFO)IDv&nG!L;3eMalOh?o8P$Fnbm9S7iwYx5bKAuuPX^~+O{?4RSyE-mrC*f zyZ-+Nj`y7s{_myDKfv+6GsX!S36&YdEp1#(od_AkZ46yZMNN(EO-%Xup`BfvObuI;!LvvG{hPXBVcaft zoN*4h?%yuIH?*`Oe#A<@BuxlbpZ`|6@-NOZTScB=^QYD1(PdNSU#$Ct(%UMY71k0) zRnn8ZA)zvzG5(N46BScQEQV<$uNc#7kw=Q!D7p3+^CxQPDpb0tULu9xJOqT13Sv-3 zVGO~fUcC=yd??WDs=1gTU_D)g_+Gjs z(sN4;&3-X6nn`GsodqJEZkTSP)55f0EGvmSEs~Tj(c?&mJFN;T7zMG{*0{LOUC~&%m1r?uh^5KUj{+}o1=j|EiVSP<@A7;?WGTY531YA zzg}?ft>I^(OSc*}9Ef$#&tn=W-;D=9LY}d)ju^D6MJ4R-C#o^1&5Y^40`<#^N)FS& z4SQ(Y60;!QzX0X7cnt5?&*Z|{k?74934MUGToJYT)u$ashXHvgQja!k^xR${B$Fj& zIszM_9au_LX&jZ6>KehjyAyVh7e)vZHrKg(lyytjDhGK-ciWhp{RTniJd8yJ!cZC0 z5@D?jM*yeTf%hz1B_3h{nf1gKZcX;%1uGn^cJ;R{S3h%}_!F_O5WKlVl&-+*<8z^z zcAi?11u^;}JWW89Hp;(wb(=_jzwU(kW}op!+O{S;{{#cZytuHD3{O%6@s0A2_rWKb zDXi6aHU9x==Jx?7WMp=t1@E{ipfFsKvV&qRb)XXmcQ-NHPd*Ki5b5l(-%FK;~eycb9&1T&3|9qu^u)@%>_~_ zvF7mC62s#Mspo)E22T$EWA?I$QNv}}B)Y>1;>^Vb2AYC6-#Pn-cE?`IQ|f-38gDJ2 zF-jj#w{HRwgq&2IBJHA>M(tupX1YHXk{p(IaF0IRN+%tf*F97 z_zcF9)MTLnoT5^_G6ghUfTIH6z=MHBoZ*=_NG@xb zk7O~c%CrgF*yxk-PSAFWst@ulPj6M$u+ls};`(`M#GmN?fhuPwdd~hmC%9dvjL3I3 zm!?cAr^^A`ZelkfrVn|9Gdo!YF2Pj`hb@;;<>IkUGOui0(nD+fPRE8#a5-0k*qn*N z`5NLjNP58DKgcmulLXMIMK5aLP{I|dJ`+NWos_Q&E|gYX#H=Wp21f}QX3KUlqsB!+vIM55?*-#2r;8lNY|#T}kxv!_YY=z4cha`VW@ z2cyv+fp%t)2HOsO`U+WGfg^{OJJXQV3r}qcjEZSu?FHr-&1K;4^N^a9?B)WS)Gu*6 zKJ*l4&Xo|cB{U%>ha&wv?JtmXrQx@K=wbhUhhb;=_jxMYKd=DV{yP@n@OQ#T(f_=| z#5|Qqxr<=-+O%4cjh5D;;dtB5ZAvC00`JYl_QSMGefpaJV1#8^AzdwxBc^cpbNC1R zPlvl7kW`4^fWUBD8`7UNzIu6ZsF>O7pD#p$AV9-uZNM1pAdf=&$)q)9KyUECM4W?2 zE^^7Lx}Z)9sxDffPvV@w2Thrum$Xy;V;PzOukW7_k_4ZwfM1XH^2J&63T00MAdxjs z0em(0ee@KqtFVeU1WAlAQ9ykQQbmE^y0Zp*{6Sa7Iq6GhAN8FCIEa8>Oe5xw|KGr$ zjTC|SNp^uhie?+>63*X9p%(;%Yob70*?->vw3hgzo^v#yt*<7JWRmEmgd&a1Q7C}5 zpyItvb${O1spt9xcSZL~P|h>|&4zJR3aa;mkvJM&OrOdKxeZ?5T=Rr1ddDZ`e}mk} z{u~*K&CO;VbJK?K+xnU!vfn2K#c_wRldm*|D@&WS{nc?WYJIMsNi%=M>wb8P?Lv%@ zv+Ki-qgiBC0*U=QcYio57UwVBNp#gBTgQ)BH#_%J=imX}NO16N9{h*BHFgc~f*-DS zc};}2h^6-<&T5GGM%Uh;+-;>O6V-v=#wTGW6pFZ;8W+TdeyvR7aB6cTeyF7rj7@%u zS^-FgtY=6_3TCWN|j8WDQ(cTlCRJt(rlYSmr`!ILaajaMV6| zIg9%ehJwjQtW}zXDYaXZ41h^+B8YgHC6pOdw+`iBHj718?s0n+uP(6Nlum$daH?)m z(!~;4nl3j%sUBXL`#99`yE>PQx9I(41 zh|V<3+;@&RVHbkn1Kh;OTk$W`>fpt$Fn5K0Ll`1|;pQ|d7DxVvZkzKTJg z;a*A;eO){X?&p@bxr>l}gxTuh#XobaQNrdyL+(iFXpiQwWuKX4kgZ!dq+_%<>KC^$ zGkB~Vz>AUwmCz2gar=x*nvssK^DJTX!OEp}loCWm*i0<)ue8`$l~P;?tB_YNzEqg5 zgfyY}Vn!IX)&_65h6QunkO@V#&u#OUx)fSAGl_ryh$|7g++Rb0m(4)!!(4{GUL;QI}0nv z!c*qwr7MpL838Y0qO0HJzht@Dss7~~MmZnYtpCf7&wt*vQ`8X0@3$MFEl<66oBlJN z4z$CN$IBm39@bZ#^NI+G?lMb$W^4WqVVVQ@PoEEpX$gIX!hQZYHxkvmjhF}&IPpPu zr-4T0+H0;V}+1~PVw11Sy*)mv4RR*4q&&V4) zcm8w~uTM|oIhQX*23jlPQT+IWIm6E65Ef0ZC!!VmI>(+(hHE>h_H$xEqh(h&2-l`? z5#DHIkr}>08>gnXHdg)9ob1h+2_J}O1I+TsuJyY5XSrPOdaW)6O`XQWpND=8m!2K6 zSOyCfqVp^k99i1%4soO|UWLSq@kyQ4;MD;wUF|{acpDQ=t>3GF`n06m6_e*{#tOXjER>SvhQploMY0t|(+=U$4)LXvqJ8krnxQi`t3^vm;c_i@@ zG-+C7Qnyi$vsr8qZXWx#h2z@C>Zh18lc;$Rf5@GxE>%D@5k&yImp8M5qrT1c+tNy!*en5KaUc6t3S#{yy2 zjLsqpyahCQr{9(m^UT6%W-05IXrE^+L*(mRTD8xz{3ukMob{t$xoEdi*96;?H zw)>q+;nNa{x(XDKQ2G3^Ws(p_9$Egmyls%`zdAL4SU6@sUA=yPzfF1a^sev#&YcNg zAT>tscLmXaqR}Nk1rKmy$~z|W$Uy>kp07BiKw>4$^_^Bngi!)rgLkmAM z*trp;_5@@%{iM_dy_0y7r-ZdC0!H3& z-U_aVvk$T9B+*tlZvj#pFo5Piso6n6PYyq z8-8=F+dL*vC$#wGNQ9n?ZHmE08`TD=NxUG!Vr^crU!30Tfh~$|<;B@F$(2p; zs&Gl}jR#}OJSb5^6K@hi&rFe;Ffexsq2`BgIwe)X>}}<6z6V@&FQ?Ul6|B<|%rj4$ zwVCIv-?PV8(uaUmDIExx8-zPkge6X>8hQ6+jS!H7H9e{{=z_kh$+^y4zv|_RA3nbA z52~)(hrAlaN1MS-w6Mvz2N<3jEc!In zZ#AN|ackmKVR;pWnU+Q$0hlGQ!+)S*z)|bkNjAt$IUt2w8USZ1hG{{$w87^2)`N;cV2;gYFT6^YUL2h3GZarJ*ypf4z1q!&8^zt=->R{N5Q@eh6HuCg(yA?cK3f~*Qz-52u6%+*+p)Mrc_>+<=<@8&+yww7 z=N092o4Ty1_ri3Yspp=2STNXUJXvRX?i;Xd`!=LeeCBRVPVgsn6d9*yg5vGn$wlI{ zV7=VI4s2dnGC>U51kO=6`s}vT&vwPojn3rD^n`ah zN8)oBGV!FEbtrb!J=gdHb2FjZ{X@t3_xlAK+kZ@q{{Y%!`|m(|!~Yjt^rvpcK20Zb z{}IPc!5x4i8wEnnMs8UmIo2Qc`u!O8%`I}XwYkO_I$7hQ#bX}8e#z-!w4WNsJo$EdlcOUDWLs9S~B`8zfSR!TbIB?114izVz3$cNcUY8?ij z99N7T1^@otat@|F90YuCUVB+CyYhWL-(hT0yH2gK&1d&B?mV`B6drGUb*0pmx&{ak z^10b==f;uqpEJQW8f1oz9bZ@83562seE)2)cj7%#?zcG^L^YGsmYWMOy4D{>^@12D zbp`i97pyU6zQ5kBldp_z`5m)2KY(Z{nkN%pB3I?u{F+QlLF1hDw>!C$gm*@J+to=w zotwDFD)}_jns`SOi5~7Wj^~5l9iEtFr~Gpn>QtczM#&}iqH8TV2Z$;rpDo6`X?DKR zDR1s_!05fe41|RwbBL85F^0gi(AGT&Yiy7EjvufPGDw#+74>a3GgU28R&t>{1NnPV)p=F;5{iy!e;lApJ1M8@kAme4$~zR$WAOAqgYtX$*|AaJ|F}lep6&Ro<{p7`#N5$jY{XqiLQGmbT8=)_A4A+=OzgM|q=Cb*(gH3VK!PcVFw30tFfljK_ z=8oVQ@J*1UN)CDYL#^bir!rDX)US?+f8V`{m|v_9c47NOG{q@dsgxQqO_f)|-yya| zaXr2!U3UHnsL;0ZZ?YExh)!6_hH2M@`@JSP?gk7LXwq!0fLX&I$d={+dhY!pAAApz*B4TiokAdTji42!5t-7%~cajbQ6DwbNZb-!<;dD z*p35Aw4j?6vud?Ei^qQ`vSL+NDqy#2w~o}nw~m-a>16C)tHQKASccHTKfa)!-O5$= zEvrd2Bp|5u>*pW&VHOLvt^rvID)9@$wVhG3l8G!Ob`Z4wxe5{kLoL^%j*9E+d6=O_ zG-|_8Y$07~cuLKpjX|*i*eAhigolxxss|^;$CG7J7j=k|jQ|FVz{}E_4eq4-$H|J) zc!f1%l6A0~C$VCO04fvYdYm=I!*ls9a~7m2$?A7c*{V@300<{#swL^*Wa&q~3X_(( z$`*i8^_Th5&Adm0V4^Q!R|8jkWSm{-d#PZB~t?~5W(cN;f2undSS*heuX2M4%T z6r*e8CQaX@Y)_Tf%(fKzypF^ndoUmHsGHVA548dg3 z4<}on|Dqpk9K}W+{3Y$23|}}LJaE0PnVbo$f>;Ri5V^ortIfqm=f(&)_W25 zzpW(1;*IBgGghk^NV<2HVidr)GZzs%dG;H8+|`Xwe@yY#2!ZOv|2XV66zAjikVnDk-Oi z8Hr`7oHO9Q{M!_UipLHKZ-D>h*Oe76$T4zZ6Q(L1>TS2}{q}VF?VSZd2n_hTn?6kK zV)QmhasX);`og)QfQSSh6G+u|FeNGCKe-Ree;_reOC$o*y%19K5c-a;dGe4#Lo=}N zfG1qOTs_SAK!8xw3qTAc*C~7Z(lfv2L{`?H>Ip8$>fEvF)AMG+jFtG&=n*V*4;HVV zq5E>+fuNVp?M_Mw(QCg&{chVm6a7K9(#hkn&K2Wi3OiZAf**w7pSF#lU_Tvo-9;%+ zb@OOsM!+F%)(5|!*f6s`!V&SL$e^2)80iIe7aT zMm{0DC97C$_p5 z$Nq#(E~%THq1>*{OUX9#3(rCLMp#OO4p4y5X#t3J9e!Big)#2~0pO(!te@Hob{=vk z&qkw$>L8SNYSDnxJ4u+5w86aAVOU_tI#3SXubN6nt8^RdlNwr(|LMO%5jcVI(Rk8lr~ z$V{wqP73C+H`QIM7)Gmk(ISvrml+8z&IE}RWtnhn{~|qjl!d2Alv|d-75iwg@%X%a zq_e8QDQxAaZ$7wSBb9kc9X=ToWll2?#0yuAPE2(g@76@Vw$#a|Y zsl=+&r~Q>iI`!*blr1%0J%8Luv)3W4SQ$@cHv0BL)eLKa`JZqv=|u9HH#`C+`4EHW z#wMDDn~Q+J+<1ytBl%h4(5=6LZQD$^nEEcxtW3S^$!v#&UYZ(Cb@u0UuhsN3`GVtt z=vqrNrmzOlj77;cPw+iY7{+kw;hr9D;8# z`!;c#CAV%uRP@1gmtEkIy55(xB{U5$WZ;zA8m3N4Hg`W-hxaDAVrmDNHn8duEv0AM z>hPQ_Uvs$OOG_@Gf%#|&u@-~I<`;vOU>O*vg;QAmkfzN(2t$T(O##B822Q2keUXwx z_g*YgBzRhtAToNcGAGhf*7L?x)0NfsL`$G;W-e?SPb{dWk#77cCZHE~qGec-!$6WtPH?^AzqzU)Ki+3;>8?lx~pJ>UOU2UIDa!Y!pPP|PB_kCt&EU^ITYwG}Hjz_axeWK@Y`j-!XFTqrI z@QJTZ2ChcJ#U1uCs_%BefJ?S>Iz7Jxm+nDVvUFV7!71B>*(|lVL29@q{sB@a%gdhw z3k&kM=JP1T9>Zo%%ROq4-r&M8$Sl{usm`l0# zltSeFxx60)*I}Oo)efgep7&rAVdX{lxsstUD^(_kJP6O|x8gI-!h1B4ax6PsrSHGiYAp|egL z@ey%rbgYV!h69Nz+~XH3p$}ID&}%gJhRYIt$?pGzj;n#aLH{$Rg#-4+bpr#^(qxTA zWK{Aq!r*qCFt@H-C8DIisj#B<^lWH&$+|Pu%8H#^Cs?k91@0dD)i&zpB5un%;XDL3aqlN;&J_rm`l?x6Q0H8APgE2U zVeHT<%_uRCOfscSiS#X#liGxhosG$f4sV^8Wu4zgpKBwr>8cg~&4 zB;4rb=6KQJ3qdmxk73|Cz81WxLl!jrZIW*9aKG({dFWFD8GmocUL z=elCmq%n@F#gIlS#4!46dRtlMx?g1 z0_!vKeU=Int_qv(T*WfaA%PAt?&bfU=Kq7zWB&h{YX1SH$M)Z$^m^2_?f1S*>~kIG z8b$;vZoIw0cj0t&Q-U(-KW$Yeod|?-#IRXn&pO<8r|*qv2y9+=DFk}*asHEWpR>-P zXaWZPA=8I}b858|rbbJ3llWd&Y>#XNB-w|KgUJcD5ExfYDXtBAoB@Q?Tn;v$fVRmh zXgiTvfxTl>Ob(wK5Im&t)B|(O0F}`ggviC7nyJ_9af{L|>4p>r?04JyW_VCTGUO5nVAU%*a?Io zJR|IPTyAkTeVTj*O7Et&s)RQ5L5~U9r5)D>(p9>i)()ohotUzpwMgV{)IUX(A41i= z=M$Gc>eFB4sKbPvJKUnZI-uC`mOl8h-cC>ybd7A^u8D01bKrv44*@W2|1=Vv?oYKMYw6_>~^N9sF$sn!M<^bbtiD zDFcO!kAWS?!vuq#T>0F@@0y1QH@u@nx};rM+KOCtiaH=g*h)F*WOeNEAfTlj-#`g@ zT8ovg&VvtG*FMvEq!=T}rtnvk;4kSCwEmKa$?FGMvsg<~i<&#O%7NT{rR8Zzs}og{;#`btmmuXZWB7 z?{|TM+Y#;11P7|TxUYlCa0{`jtI@#{1XCD-YyLQkfZRQRl(5z}kS~l3!kq67=j9gU z-JCI}Cy5NHKo+QIOEj$!_>7%>av1zBK&4g=42y9E0MTIAh5gYW#7?@N$S*UdxTB_Q zBGaa7lBiy-9ac?4Ufv0k^)6M`-ol!;hAL-R2^c)dHA`&8GYsNf8l{^XY?wk{{hiW1uSqinV1olIe(TTvb8jdbnd4SUx>JA}RD|wog%+?)&NmQBFLkvvMGPM2eqKLToS8w^#J&1$iq7d3 zxl7ZzZ{X_0T2DiRfnQGh9COT>&Ecb=E@{8RRgg2nrZ+VD+HJq!Xo#|wb9`XQ%FonN zzk@+hAZvbdm6<*^i!Wet?u)U@R%oupNjrq|b{gywSL*qc(?`ylZ&*q;Y}5dW`WxSA zJkkJ0CMpK*!IFcTQyCFDUvuWij@RjF>%1E9ojf;2iV+HfI~p%%$J^zS;T#AL^!2v^ zDv=-w)#=tLG}>8|j+B9u^1@(c1AKW#FqRq;o+aSnci7xXBqTo7Ut&n?91yU3rh||% zW$s)gJ<+oAAXJYpE`KGjVuT8Uc&<*05oatChhOtW{3(qoY>h1SoxjSpwUW(g(*}PS z><(KRmS=&Uc#-)q3rq4wb-tSe7(CZaAC~J8!cC(jfT$&aaF^yuC=2Qj8l$k)KnO-A zkwlU?u#|-sv78W_jS%s?_#Ukcxt}jjJA^gX_Y7u*a$fs`cKzHMXV~@$;?OIdT$)d^ zvuV?N>9*_)`!Ypfb0WzFtM_+V6dEm8R(C8!>B5ElR7In~u5+ zPA{RtU_mb`D+lUU+10SLG9DqRG(tql#jMX8?F!bseN#Vwl!Wlh|3lIJ_m-Z8@!wG^ zZ2tg+S^Dglg8`c`F`$01 z?|SPLErcp|)2!4eAn~cAr)RV4Sj!h&j6DBF;Zs0MvP=Z!D6;q$n&0u9MkFNAfqxQs zw=?4Z)ZNaCAQlnAK=x;Ylg2_UZbcP!xXR$Bgr5oeQfI>zS+6kYUE7Tk0(t$3P7hBj ze^rpTSW&Y5*aq_Y+f(4u#fd-z@d-p;e+}#xK|>(cOQ5$aJqCD_pLl}08h>52lN@g} z&@7bQ=k9a&SbKl3OD)hzF9NudMUGB%pDy7rVanP$KO-<3g(X{T>@qx{_FJct9VVFL z$Z4ev7`uBM-k$8;wtISatb#JUO-BrEEPF_OOeLK%aYQ$BWRy`P*C4S|EcEgoJe5p_^X^+g&1;nEjMA#fMVx}4E=enG@b8nx z@@dE3+Ja+D2g?h&=UoWH%ULcx8xTkI1F;wHsmi+V_2z%wKN@hg(`{JbSeFUp6-7+! zXwpjjYt_Y9I8TY+cDL7>7+yN75<#ZcxDb)z5~KV1y>(iT+sU2!$hKUo^JG(wfp{YR z|9ZRf_$Z3(FQ5oPM36%P*8zoaCDZ5hObAgR917tGw}={&Nr)twFquG5mqS=i6;QzC z76m1Uh+K;7E-C^dD|iBOBVOE!F0R7r?^V?_bk%G6m;QYGH2;vU>3a40)$!i<)q7P_ znm;_P-N@UM{xNp=w;$E5(W-XoEuFrv-&idQFMVo8qd}{}e=GUXJKWNAFH*U9)}Nq|-k?@X?9LCjYl9njA~~ zOZuYAzt;XLdDqF-Zy(vVwcmyLje;k>_^No*vd#ZlHtXQRSp6ewJExYO3SDZpB~-qu z-ghr-cbKNvakkFW-L~AHvUchB)keLX zIsDj&{x5$$J9E+Co|A($nj9)zuwria?yb9g^~ScpPPyfce?RtCiri+SY*J+{$H z$@Qi`U**M>(Tv|$PaXB?{yQ2y+w1I!6^F|ISQK5b z>A;zp;ktXj{$~EFEsL8sh~71GY?Tk6eSF-Z`Tl1QzSek7y&n6z^}jbyHNJ_S-1f$s z+uLnlx3>MlL#InV?Kf@6$yI$ff4F(duVdRpb31;$w$=IGo0J3R`)^XV)SS1q%HV_3 zj=l;vnKimF>B#Aq_kFUV&5;9-zq@+C^u2pe=3oEP>>a<{SbKKa)YPY*OJ2D2Qu(Np zPwda=*6M~H-6!^c|M>nY|Nbm*vpnvHO6k4dAGfIc#hYf;+t=QI`{VCi`p?5J<^HqM z_cM2&t9tLThYnO4w(|F$gRlFopvK2v9;`H_tX8Dbe0h4&wq+{|Zs|BNb;{_hSBkex z`u)-0zTR{Ez)yqzombRoZnNUTA$m@$_Zq(TUiq7yZ(2EiV5@#>!}F`onc6SCXSGnL zx9dODx6gC>^fM3c>vGax+$?7sUOBJckfvx?Q<80NNYg8JL)zH^gL|GZ&DDFGZa*=2 zXy(k3?;d_Sp?af6rTsds?XLX2yv~9Ri$1-4Y4Pnx{S*6!FRh<2<;1^7C4yy;Nayq}s}4-04BXG3^;e_(qE%z$BeI(vUb`-?`f68Bb2nz%Hf+9XB0+8 zo}c@`i-ix&^RL--Tg?IYZk@fn?eF(@AJpXTl3g>N@7ZSgu2`c!|4mha&FEWMQR`LuI2zv;K)bk*WZZ|t}* zd3)=zJF~xR@V)%`sPr3FH1lo&GtweR!aQ^suT|LW|v8~V?9{Pv;8A8Eb4=@b3FdALKv(f!oe zgO_%fG#|S^wdyOqE^gnpbLse1eQQ0``*5$e=lTrncW=+%|2UfSb0~dc$BnK3I%mq# zccw4+ZM)|H4?FZkK z(Ld?)rR7gl4()pF&Iv;oRsN)XzdciTmrw27d2RV^)kY2Y^v6Ya_FDMa?!I3fTbEa| zzC*PEZGH2bJ-2kuT|ai+T2i^m(0Qe!Y7PY(_>N;2#%x?ZJmJ%%*K!6&>W{7U$)iOR zQ;xRGEvt3l;P}luo@jsnkrA^~^EPHInYAVK)&3r1o?70#QvMqsL?`Dq8?tu$v^O_Y zS({tyjXTee>pj0ybo!7*TRv!Z_Qz^+>6Z_`zTl_h^=lq)^A%jsHcfeP{^sYFjrnk{ zUjKoY?|Pxhz9-vm*gvmc_N~iOmRGv4Z-1@Ph1q-FtvUXMpKAC{y_NjrM~lXut@la2 zPPLof-!gNb1X43*=wg({^{;qa!9AZrfwfnS0I$fB4s^h5x(0>ww9nRkfxsjj4Kf@gH+4pPc_= zBsBB)RyQ_0yZqkwj&2S0+LzaU-=vkz7rb9L`RKOGu|e-{y}4-Ps}1VE^V*&@#?o)b z=MSoENLru%e;d3z@Zhg)-+yGst=;;~DVW!>53HMIJ*PZ2X>i|RpG~)vxtSz@$IIozTigwlHw7CUNuh=bc|D0VISs>lAA6w`SsP;*Dc@s z%aFe}XgI0XR||*tY}os{&!7LY&hB~Rs!I3Xc5rp|GY^fsK30Bge>Dg}oHV`rjy2N50;Kk5gI9!l6;scrU=-Zz|S+p2y0U)wZ%`r%5uVmp5t*8khdv(^mQcJ9BaAH8sV z{^>T!!4_?2)*n3UyBim`zvb!V*HeR`!}VTQn!ox~msd~i+AS2Yaf$0-LbCz2Muocqj2$> z&2`3H=uo%i^lFbsb~fAmX^(zmTeh7sCV#o|-#-3+3j(W;)%~#F`rXrFi+@ZXbN3M~ zq4UG3UrxB|tw+ZEoFChnHtC;ljvUeYwL51P?Y#My>O}({+mrIg(QW(lru<{)$E{m; zZalGi{>G8@W-WMe`!DB9Z||#S9sAthfBo;qjLvnMpT00+NC#hi|3h{EXx`_Gs_Rz2 zeBkZppL?T0M$wlS`>cHI^#|^1RI>ZduOcT~&1i68){ga!p5A}kV*RNVooaU2mb!7p z({0X-%gP#9bgs?Lr1kffG)t1JM5No*^1mMrHF$q%R*!Aco$IS^Dr`C-q2^~ZE6Lkl zKhaofS9$38tj4!?dnWqaO*1DHj$fC4y2pu719`K*$L(h?HLcMkvwvdqPVX<*2hF~3 z{(b3lHVxm`{N_%9|J}9g!r$N^;*!N^}z2&8ym4?2w z@+6)HSFQ&O7+3bLHAogDn+&O`{=TD&!~R}bd0~G>I43`=L!`_%Sc0E*IMFw#DMJ$c znUNSI6Z%3DycP`?#e6DBHH7kTNu)HI9WDVXy`quqKH=D4f3Nh;K7ZeESqv(6DvNdL zL+i>itI|0F)n$b~KwhH1BRm7e5+9kWnF&w?{L|eJ(uSuT2CN(!COcO-q-VfzECxMh zQLze9u@NFY7r@G*;AnfaqSsOkSfv=Sks|dnT3HNuEyaLUiUAubQaI1C=(Q9Ls}v0zDN@7P%A(=56b-8s z4I3%aJ5M+My7}9a?+GNm!`}~Q?`>PMl!PJ(&Vs=Yzt-(nvp$+Gct!~WII43BSa%Bo=cO% zG_oD2krAqqJ%=?ihihazU<0=di8EdGT$&uVk?p{ZjL?njIlPfMd?VWd92p@TS@T?) z9LACDK#q)1j_f(ikvW_r+W{RJAsslB(PI~o%wZkb4(!MX?Z}?P9ht*BvK`=&5#o^p zo=cO%JhC0=krC>VJ%>FqhkIl@;3FgCBO9Jelfyo;9r%$E`jI_{KQf1ZWIF%^m!XJS zDCoH~ISeG*fgl;7AlY*mBy%`OwgW;kLPB!LYiTMR6jJPtVIc)! zA;ohnq;ObBvBN?N!a|DYSV-ZpkYb006oiEo&#{ogVIjD7z+8K-?ma083n`vsA%(+2 ziX9eG5EfEA$3hB+g&=R#Mw$o#jxw-A43BTa;b z6wk4c!eJrB4hty=3n`vsA%(+2iX9eG5EfEA$3hB+g%mq1q#!J$c#ee>4ht!ESV%!w zNbwvCDI6A3?68o6u#n<87E(AYq}X901z{n@b1bBASV*zMLJGn{isx8J;joZmhlLb` zg&-RZmRB!>UK9=sDRx*$L0Cxf91AHN7EtVIc)!A;ohn1o<}> zovzwpAq8O})pIPQa#%>U!$K;;LaOIjNae7QYKMhXgoRYkv5?APA=M5GsR#?Ho?{`E z!$PVZ7E%!wQa#5)Du;zsJ1nFkETnplg;Wj;sdiXMMOaAn91E!&7ENyrt zIV_~wVIdV^A=Ps%q;gnDwZlRx!a}O&SV-ltkZOm8RD^|8&#{ooVIkEH3#kYTsh(pY zmBT`+9Trj%7E(ROLMn%aR68uBA}pkOj)hbX3#oQkNJUsk^&AVS92QdTu#k$dkm@-W zQaLQ7+F>CTVIkFXETnQ+NVUU4D#Ajl=U7PPu#jqpg;a!vRL`-H%3&eZ4hyLW3#p!C zA&tXAnjIEW5f;)s$3hy1g)}=Xq#-P%d5(oN4hv~^SV%)yNb?*EX&e^P?68oAu#o0C z7ScE@1h*+*-@AsekmflS(l{)n*5Ejxr$3hy1g)}=Xq#-P%d5(oN4hv~^SV%)y zNb?*EX&e^P?68oAu#o0C7ScE@q}gF14Phb8b1bBBSV*(OLK?zCn&((Z9rO=?Dwyo?{`M!$P_p7Sa(G(mlsQI){aHJ1oTRXSL?C>7HXDox?)9 z9Tw6N7ScV(LOO?qbUQ2rw}zPDJ)Xd*dya*44hzBI@+L=D!%TIAg>=uckj`Nt-3|-s z2n*?+VwGl7CI_>cWYK}2Q(HPSN^s1XeRvENwMH#ASp zB>3NCC(aMcyoK^OM=W;~p5r{R>_>QxbH(!a;5p70%RqzYIA<(}3ZCPBH7F!0-asF6z6m(IXKNjBu&vE`(gbF-g=}|H&;5p78ixPn6IDc%P8=m9* zv7K6Yj`PR%8sRz4AKNX1=Qw|CzXzV<{IMMi7&LMIn9m)a_?`C}*ohH;!fW(UJ_oIhsC!E>BH zW{bdcoIj>b;W^G9(+BVz=TDDM47OxsCJga`(kmrLk;$s{&@t!~OZX+cloiV=h~$}5 zmUSAOlNQU$fnR(&@+c6cYN2rT1hfQy&t4fmIW5gRz<|Wy#ox>{5~wn^oPI`p{pPR1 z1UiWQnX&{E6n@C`XND4}L1C#u(*DgFn4X2N%nH$?_VzXDQTyBcwPN%f`J;xiD|*y| zHEW>nr53IEYlZlurlwf~({n99Y7<_Q9<>q8Un|5PHQvk`h(Bt~nZH(u9<{Q}8i*dX zy3AiIM$fT-sd?mz9<^J{8i+q?$C$rXh(Bszm^Cmx*ZoT^fosyEmVxUn@k9`Wej{h#vJjn!i?zo@4(~2cau^)N^OnK>Sfpp80Eq_@gd1vj(Q;x_{Z( zIoBk}4%0Dzt`LXpoEx(WVv!wuWByz*iqyqqR>2gh&&m9`f)pLQS*GqGcNCo!2|M}4 zB}Hc*-RlzBS(&i&RNV3CtWMa`C+;XZD-?E0iA##ka&)g#WM`$q&i-)6BSqO}6+FV- z>lJo@#k~ zhMlS4jz?!T!;U|2MUfp$U{*mRoSjr){#>EHW@iYPRct7_9*->D|JoGY>lv1r??BN# zkIs6AW!0MvR!ol6mv2_Va&)g}SZeyUDY{23EQ{QMqI)?y>lu~-ZZ=pkIXXiZmaOfL zqO+c1dDSi{I<7q|1=<}&X8^;pm0ePF=8-y0-BEPbGb{(#B}Hc*-QyURNNX~IXQ6u} z!*X67D7v3B&U%LBtC|f~Y|c3A8J1e=iXuz;G^-#vvMf;Z=L+%2@-xjUHWXdUk)={z zo1%L?!?GS7D7xp-SlqehZ#G!5@#w5)SU|ixiq3k5 z#jd-g=-k)t^$ZIDH<`eF?OxBYSZxQ2?)%zV&#*Xav%!k>wX>dKA zUN(QO5RWXb*sNkh(X|{|2=KKjy4N!-TGxT1dmf$j42!fi8?2Zdo%IY0igicPSG`?2VYtK*Zf%6nL)~APUsPH$ zmR1srhO-J2Qtv4%&dMGhj`@a$^YV+@C7$2BCDE6k(=Ks6Z;iR&x;-uXCf>=0O;tQ8#w`JtSv z6&4hgq?ENwq*YSjZ&K_}^wC#h!`mee%;@EdMIr^m^J6|GIg~6X$!Z&4ZZxYfJSq|$ z?vs-Pi9j-%lbezW_hmAI@YF7GSS(hY;`fglH7a?OnjDGd`QcpZkY7^#ijo9xB$bRV zie;506_wlt?NLVZ2VSXGRFX`2O3scH`tt|+=Vp}_#1diIfF+g5z92u1{Xr}FuM&d4vdK7z zL>a9<;Sna$wC<%jqw@278CkGc3uNePgv^!7HeF1MU=@Jg_Fq|J(h_`s(!W2C(A9+% zVp!WHjv~t@{1snz<8iH)z*Tb@XkoVsw1m5ViA15>$lPj?onjPP}|lr^0y3EAM<6<1}IQ# z8MI3ePvFWzl0h=_gffsHDhm?Jj(ZR2k^EhujAr_AWdRw!gnth>rbpsf-;*RINMdoU zWxzAd*$~S}rYlz#fIB3Fx`ZAH9k;$GN#M5=-h(y*BxlL`9w{Sn*<4uwG6o=Y+FC~F zk??W83?j;L8wSbQv%Uvy7$m!gD+?$zEx=kPNjeR==gR_i^pKpPjUdTxv(|+Rf2eE6 zS|&;Gxo8YQW&9mMn?4VrF%*Dy%W$8=nRtQ>2t73S z6Nc4{NJqhkb(F9(gjexkGk}^^Du&SYPPv{YF z%(nrj%M0=&^lbVZ>xuvz%OuEIf=fQcbwh$XAVj?dZ5Vi-!-?j?7$U1P@pADz!)}T2 z9t?3F+Xfw})xX2hn7gs5WW{Q6b)eH-h)+KtV`&T6fEm|FkuXA=cqJ#%laN^gXAu9Ww64MR55EA z& zz|$el51@z33>q=U)dhMaeNHH&iThj`8K%NGkYLYUTq7jduomqw;8_piZwsKcGZ2tS zh_SU@LXRB2!j-}HFrL$JDy$#_Xg5GIRIPO(&YGriTFWG$C$4{B)&)pxru99bXV|oB zi2V!1G~xlX)+O}NI;p7=*0pf7sUQPr7u&@F=yZWUKnqx(gT*h}FF-FOj(bu@ju)`< z4Bvsi7mOwvyJ3A#f&@-+Y!G_lx&{~Gf%-vhgv4<`=!rI=q!|d~5PG8h0%bG}*~%YS z@)E)UKu=sdB`v6voFT3*&=c)2(nb)?b1=t+GN2a_*A3`!dLxt21`WX#%g{W6?m&7F z=#lgWYh5rBZPs>J!_Yj3v4Q&B(8cwX&_iQQhsZtQdqFN5AX<(WQYQ8#p@!@=poeS* zIBbF(EMxsPLQk~$p^T>ba_qr@TFA&s8vIo}&&_nt>0Hy#QLqVH)iR@?i4uhm_^KC%Zzc8nz zfQsY?JcmS^1|~T`Z=N2s5kkHephph<~*#HlWu&xn$qD;ZKH^eyu{ekc=DHE|Iw1LI} zp(pB4305H+xfr5;gEkC=8$tHs+#>Wu>>?S4A!2Mo53iG8dy9Q;NNCL_^pK7>U>*r` z2HLP22MCvetPJF<0(#`|7web=B@@8*8mJ@O=ONKnhBiVXek1fmoGgK>PkfKKP{cKd zl!^Wv*}(oaLQm8I5@0aw-wn|0UF-Kk8}#TGt_(&7Ii<#0M(8111?&SfUV@-hgmDjT zDBzLj=)rfOH3BA#CfYd?n2C6v2WU!&l|N{MUXjF=8E~47FkT2fG|z)D`BDFZqOmC> z$0-VJ;Q1Cb6j84N*f)^RC>XHu{{?8knb1Z^wB-psQNKwc@can<26Ca%HXJ=D6Kw%V zQAPd;LJ#!^Xk=_(!P12L96nBzm7<7#5STH@K7bvikcc7RI|3vmP52H2;YNT4;(m%0 z0)LKR=SU&2pGE$HU=rd!$9T(tQ;39dKwq4;m%vI-3c=V#HUlUh)aS5}i!wD}gHZThLJ#REh?&4P zIxKdm&kdT3Z{-iprb26-1oY7Sg?%t=qub4Wn7=~*LL2lXKu;WN0J;OHFQJP>{RS2iJ!XpI#ZUnt3F83hA-pAle;4;T+H-(5 z(3%b35kfj1=!ty}oom?iFAbUGcqYR|SjS};rU<71J=DLTfbo75F<=B4fE6L)3TT5~ zN6Ya7$`;uNWFJfz+YFZ7^(08Nf994g>k&z>-2`u&*X! zPFaRMK5>nJU0saXZEy541Grk*)IkJGK=E?=;3dJX@tHb z2nM;>Mo>b2I6xmr&N7HkT-RWbBcD+aR0SFbL0Qz@uoI2;g+SJV4|b79X5AF85nR9rC0{^kSztPDYoH=10VGVmMOT% z&=?1LX#RqQiEtk5o{QK83_W@=11CRN4$#~OFCo$aU=?HED{)+)@1W=P@@>EtsrbEQ z4^7ko&>Lvn2La@uc@Bm<>T?JL5X*p`Xt%?(M0*J!7x1K`@4$Kib`eE91N3NWG55W2 zAuV1@h_XO!0MZl64A=k>%ZLdljx|-Lk-J>GL6{79o`cno+Q9pvKo8A*xHwewrGczM zqJ2-wMB7X@U`s^oUw~0)uEHgh*lq_OBkFT7$i@CO0CbAq3-m<09V`{t5fx+*1elEa z96n8yGeCPgdLnj~VfG@uPh5DY&qJ^h3A_N@NA?ELL*oS^t+3q*W~?X!@M0qVVD|{& zH=u{x0G_d2VB=KaIS6V&>|YqoXg!4+;L!R9RyMN#U%7Jv2^X8v?Jf0GUJ?fJYVk;Q-Q!;{ZY&kRJrL2(Ug1fq{U&1DF=dz~n-B z2IwK55nP{vZBcMl;qi=ZbZ{3VI|t|?TNG|$GQja=h<+{^wqlS>p$yrquxudv1?VCFJp`j7y${Q{=%avk zk z|AH4uMq?7JNu*bS9vW*04SrOz1 z+mbf@8$i5-qyVzlKqVtQ1JNK>Ime<|`32!78JQNHaQUYTEz*#t?Gs aa!D*J8lz#?a26Yc)g?4*)~RRbg#QB&^v)Xq diff --git a/nxyter/source/nxyter_components.vhd b/nxyter/source/nxyter_components.vhd index afbf9bf..14c91d2 100644 --- a/nxyter/source/nxyter_components.vhd +++ b/nxyter/source/nxyter_components.vhd @@ -26,7 +26,7 @@ package nxyter_components is SPI_SCLK_OUT : out std_logic; SPI_SDIO_INOUT : inout std_logic; SPI_CSB_OUT : out std_logic; - NX_DATA_CLK_IN : in std_logic; + NX_TIMESTAMP_CLK_IN : in std_logic; NX_TIMESTAMP_IN : in std_logic_vector (7 downto 0); NX_RESET_OUT : out std_logic; NX_TESTPULSE_OUT : out std_logic; @@ -256,49 +256,6 @@ component adc_ad9228 ); end component; -component adc_ddr_generic - port ( - clk_0 : in std_logic; - clk_1 : in std_logic; - clkdiv_reset : in std_logic; - eclk : in std_logic; - reset_0 : in std_logic; - reset_1 : in std_logic; - sclk : out std_logic; - datain_0 : in std_logic_vector(4 downto 0); - datain_1 : in std_logic_vector(4 downto 0); - q_0 : out std_logic_vector(19 downto 0); - q_1 : out std_logic_vector(19 downto 0) - ); -end component; - -component ddr_generic_single - port ( - clk_0 : in std_logic; - clkdiv_reset : in std_logic; - eclk : in std_logic; - reset_0 : in std_logic; - sclk : out std_logic; - datain_0 : in std_logic_vector(4 downto 0); - q_0 : out std_logic_vector(19 downto 0) - ); -end component; - -component fifo_adc_48to48_dc - port ( - Data : in std_logic_vector(47 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(47 downto 0); - Empty : out std_logic; - Full : out std_logic - ); -end component; - ------------------------------------------------------------------------------- -- TRBNet Registers ------------------------------------------------------------------------------- @@ -359,14 +316,6 @@ component nx_status ); end component; -component clock10MHz - port ( - CLK : in std_logic; - CLKOP : out std_logic; - LOCK : out std_logic - ); -end component; - component fifo_data_stream_44to44_dc port ( Data : in std_logic_vector(43 downto 0); @@ -382,32 +331,6 @@ component fifo_data_stream_44to44_dc ); end component; -component dynamic_shift_register8x64 - port ( - Din : in std_logic_vector(7 downto 0); - Addr : in std_logic_vector(5 downto 0); - Clock : in std_logic; - ClockEn : in std_logic; - Reset : in std_logic; - Q : out std_logic_vector(7 downto 0) - ); -end component; - -component ram_fifo_delay_256x44 - port ( - WrAddress : in std_logic_vector(7 downto 0); - RdAddress : in std_logic_vector(7 downto 0); - Data : in std_logic_vector(43 downto 0); - WE : in std_logic; - RdClock : in std_logic; - RdClockEn : in std_logic; - Reset : in std_logic; - WrClock : in std_logic; - WrClockEn : in std_logic; - Q : out std_logic_vector(43 downto 0) - ); -end component; - component fifo_44_data_delay_my port ( Data : in std_logic_vector(43 downto 0); @@ -424,21 +347,6 @@ component fifo_44_data_delay_my ); end component; -component fifo_32_data - port ( - Data : in std_logic_vector(31 downto 0); - Clock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - AmFullThresh : in std_logic_vector(10 downto 0); - Q : out std_logic_vector(31 downto 0); - Empty : out std_logic; - Full : out std_logic; - AlmostFull : out std_logic - ); -end component; - component nx_data_receiver generic ( DEBUG_ENABLE : boolean @@ -673,66 +581,6 @@ component nx_histograms ); end component; -component ram_dp_128x40 - port ( - WrAddress : in std_logic_vector(6 downto 0); - RdAddress : in std_logic_vector(6 downto 0); - Data : in std_logic_vector(39 downto 0); - WE : in std_logic; - RdClock : in std_logic; - RdClockEn : in std_logic; - Reset : in std_logic; - WrClock : in std_logic; - WrClockEn : in std_logic; - Q : out std_logic_vector(39 downto 0) - ); -end component; - -component ram_dp_128x32 - port ( - WrAddress : in std_logic_vector(6 downto 0); - RdAddress : in std_logic_vector(6 downto 0); - Data : in std_logic_vector(31 downto 0); - WE : in std_logic; - RdClock : in std_logic; - RdClockEn : in std_logic; - Reset : in std_logic; - WrClock : in std_logic; - WrClockEn : in std_logic; - Q : out std_logic_vector(31 downto 0) - ); -end component; - -component ram_dp_512x40 - port ( - WrAddress : in std_logic_vector(8 downto 0); - RdAddress : in std_logic_vector(8 downto 0); - Data : in std_logic_vector(39 downto 0); - WE : in std_logic; - RdClock : in std_logic; - RdClockEn : in std_logic; - Reset : in std_logic; - WrClock : in std_logic; - WrClockEn : in std_logic; - Q : out std_logic_vector(39 downto 0) - ); -end component; - -component ram_dp_512x32 - port ( - WrAddress : in std_logic_vector(8 downto 0); - RdAddress : in std_logic_vector(8 downto 0); - Data : in std_logic_vector(31 downto 0); - WE : in std_logic; - RdClock : in std_logic; - RdClockEn : in std_logic; - Reset : in std_logic; - WrClock : in std_logic; - WrClockEn : in std_logic; - Q : out std_logic_vector(31 downto 0) - ); -end component; - ------------------------------------------------------------------------------- component level_to_pulse @@ -840,46 +688,6 @@ component pulse_delay ); end component; -------------------------------------------------------------------------------- --- PLLs -------------------------------------------------------------------------------- - -component pll_nx_clk250 - port ( - CLK : in std_logic; - RESET : in std_logic; - CLKOP : out std_logic; - LOCK : out std_logic - ); -end component; - -component pll_adc_clk - port ( - CLK : in std_logic; - RESET : in std_logic; - CLKOP : out std_logic; - LOCK : out std_logic - ); -end component; - -component pll_adc_sampling_clk - port ( - CLK : in std_logic; - RESET : in std_logic; - FINEDELB0 : in std_logic; - FINEDELB1 : in std_logic; - FINEDELB2 : in std_logic; - FINEDELB3 : in std_logic; - DPHASE0 : in std_logic; - DPHASE1 : in std_logic; - DPHASE2 : in std_logic; - DPHASE3 : in std_logic; - CLKOP : out std_logic; - CLKOS : out std_logic; - LOCK : out std_logic - ); -end component; - component nx_fpga_timestamp port ( CLK_IN : in std_logic; diff --git a/nxyter/source/nxyter_fee_board.vhd b/nxyter/source/nxyter_fee_board.vhd index 7d381df..f0da8ca 100644 --- a/nxyter/source/nxyter_fee_board.vhd +++ b/nxyter/source/nxyter_fee_board.vhd @@ -39,7 +39,7 @@ entity nXyter_FEE_board is SPI_CSB_OUT : out std_logic; -- nXyter Timestamp Ports - NX_DATA_CLK_IN : in std_logic; + NX_TIMESTAMP_CLK_IN : in std_logic; NX_TIMESTAMP_IN : in std_logic_vector (7 downto 0); NX_RESET_OUT : out std_logic; NX_TESTPULSE_OUT : out std_logic; @@ -235,7 +235,8 @@ begin error_all(0) <= error_data_receiver; error_all(1) <= error_data_validate; error_all(2) <= error_event_buffer; - error_all(7 downto 3) <= (others => '0'); + error_all(3) <= not nxyter_online; + error_all(7 downto 4) <= (others => '0'); ------------------------------------------------------------------------------- -- Port Maps @@ -273,7 +274,7 @@ begin 9 => 9, -- NX Register Setup 10 => 11, -- NX Histograms 11 => 0, -- Debug Handler - 12 => 1, -- Data Delay + 12 => 3, -- Data Delay others => 0 ), @@ -561,7 +562,7 @@ begin NX_ONLINE_IN => nxyter_online, NX_CLOCK_ON_IN => nxyter_clock_on, - NX_DATA_CLK_IN => NX_DATA_CLK_IN, + NX_DATA_CLK_IN => NX_TIMESTAMP_CLK_IN, NX_TIMESTAMP_IN => NX_TIMESTAMP_IN, NX_TIMESTAMP_RESET_OUT => nx_timestamp_reset, diff --git a/nxyter/trb3_periph_constraints.lpf b/nxyter/trb3_periph_constraints.lpf index 2ab71f3..d251f27 100644 --- a/nxyter/trb3_periph_constraints.lpf +++ b/nxyter/trb3_periph_constraints.lpf @@ -9,36 +9,48 @@ BLOCK RD_DURING_WR_PATHS ; # Basic Settings ################################################################# - # nXyter FEB Clock Setup: - # - # CLK_PCLK_RIGHT : real Oszillator 200MHz - # CLK_PCLK_RIGHT --> PLL#0 --> clk_100_i -----> Main Clock all entities - # - # CLK_PCLK_RIGHT --> nx_main_clk 1+2 - # (250 MHz) -----> nXyter Main Clock 1+2 - # | - # |----> FPGA Timestamp Entity 1+2 - # - # nx_main_clk 1+2 --> nXyter Data Clk - # (1/2 = 125MHz) -----> FPGA Data Receiver - # | - # |----> Johnson 1/4 --> ADC SCLK - # - # CLK_PCLK_RIGHT (PLL#2) --> clk_adc_dat_1 - # (nx_main_clk * 3/4 = 187.5) -----> ADC Handler 1 - # - # CLK_PCLK_RIGHT (PLL#3) --> clk_adc_dat_2 - # (nx_main_clk * 3/4 = 187.5) -----> ADC Handler 2 - - # Speed for the configuration Flash access - SYSCONFIG MCCLK_FREQ = 20; - - FREQUENCY PORT CLK_PCLK_RIGHT 200 MHz; - FREQUENCY PORT NX1_DATA_CLK_IN 125 MHz; - - USE PRIMARY NET "nx_main_clk_c"; - USE PRIMARY NET "clk_100_i_c"; - USE PRIMARY NET "CLK_PCLK_RIGHT_c"; +# nXyter FEB Clock Setup: +# +# CLK_PCLK_RIGHT : real Oszillator 200MHz +# CLK_PCLK_RIGHT --> PLL#0 --> clk_100_i -----> Main Clock all entities +# +# CLK_PCLK_RIGHT --> nx_main_clk 1+2 +# (250 MHz) -----> nXyter Main Clock 1+2 +# | +# |----> FPGA Timestamp Entity 1+2 +# +# nx_main_clk 1+2 --> nXyter Data Clk +# (1/2 = 125MHz) -----> FPGA Data Receiver +# | +# |----> Johnson 1/4 --> ADC SCLK +# +# CLK_PCLK_RIGHT (PLL#2) --> clk_adc_dat_1 +# (nx_main_clk * 3/4 = 187.5) -----> ADC Handler 1 +# +# CLK_PCLK_RIGHT (PLL#3) --> clk_adc_dat_2 +# (nx_main_clk * 3/4 = 187.5) -----> ADC Handler 2 + +# Speed for the configuration Flash access +SYSCONFIG MCCLK_FREQ = 20; + +FREQUENCY PORT CLK_PCLK_RIGHT 200 MHz; +FREQUENCY PORT NX1_DATA_CLK_IN 125 MHz; + +#USE PRIMARY NET "nx_main_clk_c"; +#USE PRIMARY NET "clk_100_i_c"; +#USE PRIMARY NET "CLK_PCLK_RIGHT_c"; + +FREQUENCY PORT CLK_PCLK_RIGHT 200 MHz; +FREQUENCY PORT NX1_DATA_CLK_IN 125 MHz; + +USE PRIMARY NET "nx_main_clk_c"; +USE PRIMARY NET "clk_100_i_c"; +USE PRIMARY NET "CLK_PCLK_RIGHT_c"; +USE EDGE2EDGE NET "NX_CLK_ADC_DAT"; +USE PRIMARY NET "nXyter_FEE_board_0/nx_data_receiver_1/adc_ad9228_1/DDR_DATA_CLK_c"; + +#PRIORITIZE NET "NX1_DATA_CLK_IN_c" 40; +#PRIORITIZE NET "nXyter_FEE_board_0/nx_data_receiver_1/adc_ad9228_1/DDR_DATA_CLK_c" 50; ################################################################# # Reset Nets @@ -119,7 +131,13 @@ MULTICYCLE FROM CELL "nXyter_FEE_board_*/nx_trigger_validate_*/fpga_timestamp_of MULTICYCLE FROM CELL "nXyter_FEE_board_*/nx_event_buffer_*/fifo_almost_full_thr_*" 100 ns; -MULTICYCLE FROM CELL "nXyter_FEE_board_*/debug_multiplexer_*/port_select_*" 100 ns; + +MULTICYCLE FROM CELL "nXyter_FEE_board_*/debug_multiplexer_*/port_select_*" 500 ns; + +MULTICYCLE TO GROUP "TEST_LINE_group" 500.000000 ns ; +MULTICYCLE TO GROUP "NX1_DEBUG_LINE_group" 500.000000 ns ; +MAXDELAY TO GROUP "TEST_LINE_group" 500.000000 ns ; +MAXDELAY TO GROUP "NX1_DEBUG_LINE_group" 500.000000 ns ; #SPI Interface REGION "REGION_SPI" "R9C108D" 20 20 DEVSIZE; @@ -139,8 +157,8 @@ PROHIBIT PRIMARY NET "NX1_DATA_CLK_IN_c"; PROHIBIT SECONDARY NET "NX1_DATA_CLK_IN_c"; DEFINE PORT GROUP "NX1_IN" "NX1_TIMESTAMP_*"; -INPUT_SETUP GROUP "NX1_IN" 0.5 ns HOLD 0.5 ns CLKPORT="NX1_DATA_CLK_IN"; +INPUT_SETUP GROUP "NX1_IN" 1.5 ns HOLD 1.5 ns CLKPORT="NX1_DATA_CLK_IN"; -UGROUP NXYTER1 BBOX 100 70 - BLKNAME nXyter_FEE_board_0; -LOCATE UGROUP NXYTER1 SITE "R2C2D"; +#UGROUP NXYTER1 BBOX 100 70 + #BLKNAME nXyter_FEE_board_0; +#LOCATE UGROUP NXYTER1 SITE "R2C2D"; diff --git a/nxyter/trb3_periph_multi.p2t b/nxyter/trb3_periph_multi.p2t index e1711c7..157ed4e 100644 --- a/nxyter/trb3_periph_multi.p2t +++ b/nxyter/trb3_periph_multi.p2t @@ -1,8 +1,8 @@ -w -i 2 -l 5 --n 20 --t 5 +-n 20 +-t 1 -s 1 -c 1 -e 2 diff --git a/nxyter/trb3_periph_nx1.vhd b/nxyter/trb3_periph_nx1.vhd index fd150a6..4b8e195 100644 --- a/nxyter/trb3_periph_nx1.vhd +++ b/nxyter/trb3_periph_nx1.vhd @@ -673,7 +673,7 @@ begin SPI_SDIO_INOUT => NX1_SPI_SDIO_INOUT, SPI_CSB_OUT => NX1_SPI_CSB_OUT, - NX_DATA_CLK_IN => NX1_DATA_CLK_IN, + NX_TIMESTAMP_CLK_IN => NX1_DATA_CLK_IN, NX_TIMESTAMP_IN => NX1_TIMESTAMP_IN, NX_RESET_OUT => NX1_RESET_OUT, @@ -769,7 +769,7 @@ begin -- ADC Receiver Clock (nXyter Main Clock * 3/4 (187.5), must be -- based on same ClockSource as nXyter Main Clock) - pll_adc_clk_1: pll_adc_clk + pll_adc_clk_1: entity work.pll_adc_clk port map ( CLK => CLK_PCLK_RIGHT, RESET => nx_pll_reset, -- 2.43.0