From 895957d9cae55c46e756dc31e720a9079653998c Mon Sep 17 00:00:00 2001 From: Gonza10V Date: Thu, 25 Apr 2024 10:40:09 -0400 Subject: [PATCH 001/118] libre scripts --- scripts/run_Chemical_Transformation_libre.py | 310 +++++++++++++++++++ scripts/run_Loop_assembly_libre.py | 4 +- scripts/run_Plate_samples_libre.py | 165 ++++++++++ 3 files changed, 477 insertions(+), 2 deletions(-) create mode 100644 scripts/run_Chemical_Transformation_libre.py create mode 100644 scripts/run_Plate_samples_libre.py diff --git a/scripts/run_Chemical_Transformation_libre.py b/scripts/run_Chemical_Transformation_libre.py new file mode 100644 index 0000000..2d13931 --- /dev/null +++ b/scripts/run_Chemical_Transformation_libre.py @@ -0,0 +1,310 @@ +from opentrons import protocol_api +from typing import List, Dict + +thermo_wells = [ +'A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11','A12', +'B1','B2','B3','B4','B5','B6','B7','B8','B9','B10','B11','B12', +'C1','C2','C3','C4','C5','C6','C7','C8','C9','C10','C11','C12', +'D1','D2','D3','D4','D5','D6','D7','D8','D9','D10','D11','D12', +'E1','E2','E3','E4','E5','E6','E7','E8','E9','E10','E11','E12', +'F1','F2','F3','F4','F5','F6','F7','F8','F9','F10','F11','F12', +'G1','G2','G3','G4','G5','G6','G7','G8','G9','G10','G11','G12', +'H1','H2','H3','H4','H5','H6','H7','H8','H9','H10','H11','H12' +] + +temp_wells = [ +'A1','A2','A3','A4','A5','A6', +'B1','B2','B3','B4','B5','B6', +'C1','C2','C3','C4','C5','C6', +'D1','D2','D3','D4','D5','D6' +] + +def liquid_transfer(pipette, volume, source, destination, asp_rate:float=0.5, disp_rate:float=1.0, blow_out:bool=True, touch_tip:bool=False, mix_before:float=0.0, mix_after:float=0.0, mix_reps:int=3, new_tip:bool=True, drop_tip:bool=True): + if new_tip: + pipette.pick_up_tip() + if mix_before > 0: + pipette.mix(mix_reps, mix_before, source) + pipette.aspirate(volume, source, rate=asp_rate) + pipette.dispense(volume, destination, rate=disp_rate) + if mix_after > 0: + pipette.mix(mix_reps, mix_after, destination) + if blow_out: + pipette.blow_out() + if touch_tip: + pipette.touch_tip() + if drop_tip: + pipette.drop_tip() + +class Transformation(): + ''' + Creates a protocol for automated transformation. + + Attributes + ---------- + volume_dna : float + The volume DNA in microliters. By default, 2 microliters. We suggest 2 microliters for extracted plasmid and 5 microliters for PCR products. + volume_competent_cells : float + The volume of the competent cells in microliters. By default, 50 microliters. + volume_recovery_media : float + The volume of recovery media in microliters. By default, 100 microliters. + replicates : int + The number of replicates of the assembly reaction. By default, 2. + thermocycler_starting_well : int + The starting well of the thermocycler module. By default, 0. + thermocycler_labware : str + The labware type of the thermocycler module. By default, 'nest_96_wellplate_100ul_pcr_full_skirt'. + thermocycler_slots : list + The slots of the thermocycler module. By default, [7, 8, 10, 11]. + temperature_module_labware : str + The labware type of the temperature module. By default, 'opentrons_24_aluminumblock_nest_1.5ml_snapcap'. + temperature_module_slot : int + The slot of the temperature module. By default, 1. + tiprack_labware : str + The labware type of the tiprack. By default, 'opentrons_96_tiprack_20ul'. + tiprack_slot : int + The slot of the tiprack. By default, 9. + pipette_type : str + The type of pipette. By default, 'p20_single_gen2'. + pipette_mount : str + The mount of the pipette. By default, 'left'. + aspiration_rate : float + The rate of aspiration in microliters per second. By default, 0.5 microliters per second. + dispense_rate : float + The rate of dispense in microliters per second. By default, 1 microliter per second. + ''' + def __init__(self, + list_of_dnas:List = [], # TODO:add SBOL version + competent_cells: str = None, # TODO: add SBOL version + replicates:int=2, + thermocycler_starting_well:int = 0, + thermocycler_labware:str = 'nest_96_wellplate_100ul_pcr_full_skirt', + temperature_module_labware:str = 'opentrons_24_aluminumblock_nest_1.5ml_snapcap', + temperature_module_position:int = 1, + + tiprack_p20_labware:str = 'opentrons_96_tiprack_20ul', + tiprack_p20_osition:int = 9, + tiprack_p300_labware:str = 'opentrons_96_tiprack_300ul', + tiprack_p300_osition:int = 6, + pipette_p20:str = 'p20_single_gen2', + pipette_p300:str = 'p300_single_gen2', + pipette_p20_position:str = 'left', + pipette_p300_position:str = 'right', + aspiration_rate:float=0.5, + dispense_rate:float=1,): + + self.list_of_dnas = list_of_dnas + self.competent_cells = competent_cells + self.replicates = replicates + self.thermocycler_starting_well = thermocycler_starting_well + self.thermocycler_labware = thermocycler_labware + self.temperature_module_labware = temperature_module_labware + self.temperature_module_position = temperature_module_position + self.tiprack_p20_labware = tiprack_p20_labware + self.tiprack_p20_position = tiprack_p20_osition + self.tiprack_p300_labware = tiprack_p300_labware + self.tiprack_p300_position = tiprack_p300_osition + self.pipette_p20 = pipette_p20 + self.pipette_p300 = pipette_p300 + self.pipette_p20_position = pipette_p20_position + self.pipette_p300_position = pipette_p300_position + self.aspiration_rate = aspiration_rate + self.dispense_rate = dispense_rate + +class Chemical_transformation(Transformation): + ''' + Creates a protocol for automated transformation. + + Attributes + ---------- + volume_dna : float + The volume DNA in microliters. By default, 2 microliters. We suggest 2 microliters for extracted plasmid and 5 microliters for PCR products. + volume_competent_cells : float + The volume of the competent cells in microliters. By default, 50 microliters. + volume_recovery_media : float + The volume of recovery media in microliters. By default, 100 microliters. + replicates : int + The number of replicates of the assembly reaction. By default, 2. + thermocycler_starting_well : int + The starting well of the thermocycler module. By default, 0. + thermocycler_labware : str + The labware type of the thermocycler module. By default, 'nest_96_wellplate_100ul_pcr_full_skirt'. + thermocycler_slots : list + The slots of the thermocycler module. By default, [7, 8, 10, 11]. + temperature_module_labware : str + The labware type of the temperature module. By default, 'opentrons_24_aluminumblock_nest_1.5ml_snapcap'. + temperature_module_slot : int + The slot of the temperature module. By default, 1. + tiprack_labware : str + The labware type of the tiprack. By default, 'opentrons_96_tiprack_20ul'. + tiprack_slot : int + The slot of the tiprack. By default, 9. + pipette_type : str + The type of pipette. By default, 'p20_single_gen2'. + pipette_mount : str + The mount of the pipette. By default, 'left'. + aspiration_rate : float + The rate of aspiration in microliters per second. By default, 0.5 microliters per second. + dispense_rate : float + The rate of dispense in microliters per second. By default, 1 microliter per second. + ''' + def __init__(self, + volume_dna:float = 2, + volume_competent_cell_to_add:float = 20, + volume_competent_cell_per_tube:float =100, + volume_recovery_media_to_add:float = 60, + volume_recovery_media_per_tube:float = 1200, #add a bit more to pick it properly + cold_incubation1:Dict = {'temperature': 4, 'hold_time_minutes': 30}, + heat_shock:Dict = {'temperature': 42, 'hold_time_minutes': 1}, + cold_incubation2:Dict = {'temperature': 4, 'hold_time_minutes': 2}, + recovery_incubation:Dict = {'temperature': 37, 'hold_time_minutes': 60}, + *args, **kwargs): + super().__init__(*args, **kwargs) + + self.volume_dna = volume_dna + self.volume_competent_cell_to_add = volume_competent_cell_to_add + self.volume_competent_cell_per_tube = volume_competent_cell_per_tube + self.volume_recovery_media = volume_recovery_media_to_add + self.volume_recovery_media_per_tube = volume_recovery_media_per_tube + self.cold_incubation1 = cold_incubation1 + self.heat_shock = heat_shock + self.cold_incubation2 = cold_incubation2 + self.recovery_incubation = recovery_incubation + self.dict_of_parts_in_temp_mod_position = {} + self.dict_of_parts_in_thermocycler = {} + + metadata = { + 'protocolName': 'PUDU Transformation', + 'author': 'Gonzalo Vidal ', + 'description': 'Automated transformation protocol', + 'apiLevel': '2.13'} + + def run(self, protocol: protocol_api.ProtocolContext): + + #Labware + #Load the magnetic module + tem_mod = protocol.load_module('temperature module', f'{self.temperature_module_position}') + tem_mod_block = tem_mod.load_labware(self.temperature_module_labware) + #Load the thermocycler module, its default location is on slots 7, 8, 10 and 11 + thermocycler_mod = protocol.load_module('thermocycler module') + thermocycler_mod_plate = thermocycler_mod.load_labware(self.thermocycler_labware) + #Load the tiprack + tiprack_p20 = protocol.load_labware(self.tiprack_p20_labware, f'{self.tiprack_p20_position}') + tiprack_p300 = protocol.load_labware(self.tiprack_p300_labware, f'{self.tiprack_p300_position}') + #Load the pipette + pipette_p20 = protocol.load_instrument(self.pipette_p20, self.pipette_p20_position, tip_racks=[tiprack_p20]) + pipette_p300 = protocol.load_instrument(self.pipette_p300, self.pipette_p300_position, tip_racks=[tiprack_p300]) + + #Load the reagents + #Check number of compenent cells and DNAs + total_transformations = len(self.list_of_dnas)*self.replicates + transformations_per_tube = int(self.volume_competent_cell_per_tube//self.volume_competent_cell_to_add) + number_of_tubes_with_competent_cells_needed = int(total_transformations//transformations_per_tube+1) #TODO: make an int, maybe use sail + #Check number of tubes with media + transformations_per_media_tube = int(self.volume_recovery_media_per_tube//self.volume_recovery_media) + number_of_tubes_with_media_needed = int(total_transformations//transformations_per_media_tube+1) #TODO: make an int, maybe use sail + if len(self.list_of_dnas)+number_of_tubes_with_competent_cells_needed+number_of_tubes_with_media_needed > 24: + raise ValueError(f'The number of reagents is more than 24. There are {len(self.list_of_dnas)} DNAs, {number_of_tubes_with_competent_cells_needed} tubes with competent cells and {number_of_tubes_with_media_needed} tubes with media. Please change the protocol and try again.') + temp_wells_counter = 0 + for dna in self.list_of_dnas: + self.dict_of_parts_in_temp_mod_position[dna] = temp_wells[temp_wells_counter] + temp_wells_counter += 1 + for i in range(number_of_tubes_with_competent_cells_needed): + self.dict_of_parts_in_temp_mod_position[f'Competent_cells_tube_{i}'] = temp_wells[temp_wells_counter] + temp_wells_counter += 1 + for i in range(number_of_tubes_with_media_needed): + self.dict_of_parts_in_temp_mod_position[f'Media_tube_{i}'] = temp_wells[temp_wells_counter] + temp_wells_counter += 1 + #Set Temperature and Thermocycler module to 4 + tem_mod.set_temperature(4) + thermocycler_mod.open_lid() + thermocycler_mod.set_block_temperature(4) + #Load cells into the thermocycler + if self.volume_competent_cell_to_add > 20: + pipette = pipette_p300 + else: + pipette = pipette_p20 + current_thermocycler_well_comp = self.thermocycler_starting_well + transformation_well = 1 + #for r in range(self.replicates): + for i in range(number_of_tubes_with_competent_cells_needed): + for j in range(transformations_per_tube): + part_ubication_in_thermocyler = thermocycler_mod_plate[thermo_wells[current_thermocycler_well_comp]] + liquid_transfer(pipette, self.volume_competent_cell_to_add, tem_mod_block[self.dict_of_parts_in_temp_mod_position[f'Competent_cells_tube_{i}']], part_ubication_in_thermocyler, self.aspiration_rate, self.dispense_rate, mix_before=self.volume_competent_cell_to_add -5) + if j == 0: + self.dict_of_parts_in_thermocycler[f'Competent_cells_tube_{i}'] = [thermo_wells[current_thermocycler_well_comp]] + else: + self.dict_of_parts_in_thermocycler[f'Competent_cells_tube_{i}'].append(thermo_wells[current_thermocycler_well_comp]) + current_thermocycler_well_comp+=1 + if transformation_well == total_transformations: + break + transformation_well+=1 + + #Load DNA into the thermocycler and mix + if self.volume_dna > 20: + pipette = pipette_p300 + else: + pipette = pipette_p20 + current_thermocycler_well_dna = self.thermocycler_starting_well + for r in range(self.replicates): + for dna in self.list_of_dnas: + part_ubication_in_thermocyler = thermocycler_mod_plate[thermo_wells[current_thermocycler_well_dna]] + liquid_transfer(pipette, self.volume_dna, tem_mod_block[self.dict_of_parts_in_temp_mod_position[dna]], part_ubication_in_thermocyler, self.aspiration_rate, self.dispense_rate, mix_before=self.volume_dna) + if r == 0: + self.dict_of_parts_in_thermocycler[dna] = [thermo_wells[current_thermocycler_well_dna]] + else: + self.dict_of_parts_in_thermocycler[dna].append(thermo_wells[current_thermocycler_well_dna]) + current_thermocycler_well_dna+=1 + + #Cold incubation + thermocycler_mod.close_lid() + profile = [ + self.cold_incubation1, #1st cold incubation (long) + self.heat_shock, #Heatshock + self.cold_incubation2] #2nd cold incubation (short) + thermocycler_mod.execute_profile(steps=profile, repetitions=1, block_max_volume=30) + #Load LB and recovery incubation + thermocycler_mod.open_lid() + #TODO: check if there is the need for more than one tube + if self.volume_recovery_media > 20: + pipette = pipette_p300 + else: + pipette = pipette_p20 + current_thermocycler_well_media = self.thermocycler_starting_well + transformation_well = 1 + for i in range(number_of_tubes_with_media_needed): + for j in range(transformations_per_media_tube): + part_ubication_in_thermocyler = thermocycler_mod_plate[thermo_wells[current_thermocycler_well_media]] + liquid_transfer(pipette, self.volume_recovery_media, tem_mod_block[self.dict_of_parts_in_temp_mod_position[f'Media_tube_{i}']], part_ubication_in_thermocyler, self.aspiration_rate, self.dispense_rate, mix_after=self.volume_recovery_media -5) + if j == 0: + self.dict_of_parts_in_thermocycler[f'Media_tube_{i}'] = [thermo_wells[current_thermocycler_well_media]] + else: + self.dict_of_parts_in_thermocycler[f'Media_tube_{i}'].append(thermo_wells[current_thermocycler_well_media]) + current_thermocycler_well_media+=1 + if transformation_well == total_transformations: + break + transformation_well+=1 + thermocycler_mod.close_lid() + recovery = [ + self.recovery_incubation] + thermocycler_mod.execute_profile(steps=recovery, repetitions=1, block_max_volume=30) + + #output + print('Strain and media tube in temp_mod') + print(self.dict_of_parts_in_temp_mod_position) + print('Genetically modified organisms in thermocycler') + print(self.dict_of_parts_in_thermocycler) + #Optionally plate + #END + +# metadata +metadata = { +'protocolName': 'PUDU Transformation', +'author': 'Gonzalo Vidal ', +'description': 'Automated transformation protocol', +'apiLevel': '2.13'} + +def run(protocol= protocol_api.ProtocolContext): + + pudu_transformation = Chemical_transformation(list_of_dnas=['GVD0011','GVD0013','GVD0015', 'GVD0016', 'GVD0019', 'GVD0020'], competent_cells = 'DH5alpha') + pudu_transformation.run(protocol) +#After simulation look at the beginning of the output to see the position of input reagents and outputs. \ No newline at end of file diff --git a/scripts/run_Loop_assembly_libre.py b/scripts/run_Loop_assembly_libre.py index 17a0d3d..fe2750c 100644 --- a/scripts/run_Loop_assembly_libre.py +++ b/scripts/run_Loop_assembly_libre.py @@ -271,7 +271,7 @@ def run(self, protocol: protocol_api.ProtocolContext): profile = [ {'temperature': 42, 'hold_time_minutes': 2}, {'temperature': 16, 'hold_time_minutes': 5}] - thermocycler_mod.execute_profile(steps=profile, repetitions=25, block_max_volume=30) + thermocycler_mod.execute_profile(steps=profile, repetitions=75, block_max_volume=30) denaturation = [ {'temperature': 60, 'hold_time_minutes': 10}, @@ -287,7 +287,7 @@ def run(self, protocol: protocol_api.ProtocolContext): print(self.dict_of_parts_in_thermocycler) # assembly -assembly_Odd_1 = {"promoter":["GVP0010", "GVP0011", "GVP0014"], "rbs":["B0033","B0034"], "cds":"sfGFP", "terminator":"B0015", "receiver":"Odd_1"} +assembly_Odd_1 = {"promoter":["GVP0008", "GVP0010", "GVP0012", "GVP0013", "GVP0016", "GVP0017"], "rbs":"B0034", "cds":"sfGFP", "terminator":"B0015", "receiver":"Odd_1"} #assembly_Even_2 = {"c4_receptor":"GD0001", "c4_buff_gfp":"GD0002", "spacer1":"20ins1", "spacer2":"Even_2", "receiver":"Even_2"} assemblies = [assembly_Odd_1] diff --git a/scripts/run_Plate_samples_libre.py b/scripts/run_Plate_samples_libre.py new file mode 100644 index 0000000..768316c --- /dev/null +++ b/scripts/run_Plate_samples_libre.py @@ -0,0 +1,165 @@ +from opentrons import protocol_api +from typing import List, Union + +thermo_wells = [ +'A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11','A12', +'B1','B2','B3','B4','B5','B6','B7','B8','B9','B10','B11','B12', +'C1','C2','C3','C4','C5','C6','C7','C8','C9','C10','C11','C12', +'D1','D2','D3','D4','D5','D6','D7','D8','D9','D10','D11','D12', +'E1','E2','E3','E4','E5','E6','E7','E8','E9','E10','E11','E12', +'F1','F2','F3','F4','F5','F6','F7','F8','F9','F10','F11','F12', +'G1','G2','G3','G4','G5','G6','G7','G8','G9','G10','G11','G12', +'H1','H2','H3','H4','H5','H6','H7','H8','H9','H10','H11','H12' +] + +temp_wells = [ +'A1','A2','A3','A4','A5','A6', +'B1','B2','B3','B4','B5','B6', +'C1','C2','C3','C4','C5','C6', +'D1','D2','D3','D4','D5','D6' +] + + +def liquid_transfer(pipette, volume, source, destination, asp_rate:float=0.5, disp_rate:float=1.0, blow_out:bool=True, touch_tip:bool=False, mix_before:float=0.0, mix_after:float=0.0, mix_reps:int=3, new_tip:bool=True, drop_tip:bool=True): + if new_tip: + pipette.pick_up_tip() + if mix_before > 0: + pipette.mix(mix_reps, mix_before, source) + pipette.aspirate(volume, source, rate=asp_rate) + pipette.dispense(volume, destination, rate=disp_rate) + if mix_after > 0: + pipette.mix(mix_reps, mix_after, destination) + if blow_out: + pipette.blow_out() + if touch_tip: + pipette.touch_tip() + if drop_tip: + pipette.drop_tip() + +#Define slots, to allocate 4 samples in each slot, lasts slots allocate in the border where border effects apply +slot_1 = ['A2', 'B2', 'C2', 'D2'] +slot_2 = ['A3', 'B3', 'C3', 'D3'] +slot_3 = ['A4', 'B4', 'C4', 'D4'] +slot_4 = ['A5', 'B5', 'C5', 'D5'] +slot_5 = ['A6', 'B6', 'C6', 'D6'] +slot_6 = ['A7', 'B7', 'C7', 'D7'] +slot_7 = ['A8', 'B8', 'C8', 'D8'] +slot_8 = ['A9', 'B9', 'C9', 'D9'] +slot_9 = ['A10', 'B10', 'C10', 'D10'] +slot_10 = ['A11', 'B11', 'C11', 'D11'] +slot_11 = ['E2', 'F2', 'G2', 'H2'] +slot_12 = ['E3', 'F3', 'G3', 'H3'] +slot_13 = ['E4', 'F4', 'G4', 'H4'] +slot_14 = ['E5', 'F5', 'G5', 'H5'] +slot_15 = ['E6', 'F6', 'G6', 'H6'] +slot_16 = ['E7', 'F7', 'G7', 'H7'] +slot_17 = ['E8', 'F8', 'G8', 'H8'] +slot_18 = ['E9', 'F9', 'G9', 'H9'] +slot_19 = ['E10', 'F10', 'G10', 'H10'] +slot_20 = ['E11', 'F11', 'G11', 'H11'] +slot_21 = ['A1', 'B1', 'C1', 'D1'] +slot_22 = ['E1', 'F1', 'G1', 'H1'] +slot_23 = ['A12', 'B12', 'C12', 'D12'] +slot_24 = ['E12', 'F12', 'G12', 'H12'] + +slots = [slot_1, slot_2, slot_3, slot_4, slot_5, slot_6, slot_7, slot_8, slot_9, slot_10, slot_11, slot_12, slot_13, slot_14, slot_15, slot_16, slot_17, slot_18, slot_19, slot_20, slot_21, slot_22, slot_23, slot_24] + + + +class Test_setup(): + ''' + Creates a protocol for the automated setting of a 96 well plate with a gradient of inducer. + + ''' + def __init__(self, + test_labware:str = 'corning_96_wellplate_360ul_flat', + test_position:int = 7, + aspiration_rate:float=0.5, + dispense_rate:float=1,): + + self.test_labware = test_labware + self.test_position = test_position + self.aspiration_rate = aspiration_rate + self.dispense_rate = dispense_rate + +class Plate_samples(Test_setup): + ''' + Creates a protocol for the automated setting of a 96 well plate from samples. Each sample is distributed in 4 wells of the plate. + ''' + def __init__(self,samples:List, + sample_tube_volume:float = 1200, + sample_well_volume:float = 200, + tube_rack_labware:str = 'opentrons_24_aluminumblock_nest_1.5ml_snapcap', + tube_rack_position:int = 4, + tiprack_labware:str='opentrons_96_tiprack_300ul', + tiprack_position:int=9, + pipette:str='p300_single_gen2', + pipette_position:str='right', + use_temperature_module:bool = False, + starting_slot:int = 1, + *args, **kwargs): + super().__init__(*args, **kwargs) + + self.samples = samples + self.sample_tube_volume = sample_tube_volume + self.sample_well_volume = sample_well_volume + self.tube_rack_labware = tube_rack_labware + self.tube_rack_position = tube_rack_position + self.tiprack_labware = tiprack_labware + self.tiprack_position = tiprack_position + self.pipette = pipette + self.pipette_position = pipette_position + self.use_temperature_module = use_temperature_module + self.dict_of_samples_in_plate = {} + self.dict_of_samples_in_temp_mod_position = {} + self.starting_slot = starting_slot + + if len(self.samples) > 24: + raise ValueError(f'Number of samples cant be greater than 24, you have {len(self.samples)}') + + def run(self, protocol: protocol_api.ProtocolContext): + + #Labware + tiprack = protocol.load_labware(self.tiprack_labware, f'{self.tiprack_position}') + pipette = protocol.load_instrument(self.pipette, self.pipette_position, tip_racks=[tiprack]) + plate = protocol.load_labware(self.test_labware, self.test_position) + + if self.use_temperature_module: + temperature_module = protocol.load_module('Temperature Module', self.tube_rack_position) + tube_rack = temperature_module.load_labware(self.tube_rack_labware) + else: + tube_rack = protocol.load_labware(self.tube_rack_labware, self.tube_rack_position) + + #Protocol + + #Load samples + temp_wells_counter = 0 + slot_counter = self.starting_slot-1 + for sample in self.samples: + self.dict_of_samples_in_temp_mod_position[sample] = temp_wells[temp_wells_counter] + pipette.pick_up_tip() + for position in slots[slot_counter]: + liquid_transfer(pipette, self.sample_well_volume, tube_rack[self.dict_of_samples_in_temp_mod_position[sample]], plate[position], self.aspiration_rate, self.dispense_rate, mix_before=self.sample_well_volume, mix_after=self.sample_well_volume/2, new_tip=False, drop_tip=False) + pipette.drop_tip() + self.dict_of_samples_in_plate[sample] = slots[slot_counter] + temp_wells_counter += 1 + slot_counter += 1 + + #output + print('Samples in tube rack') + print(self.dict_of_samples_in_temp_mod_position) + print('Samples in plate') + print(self.dict_of_samples_in_plate) + #END + +# metadata +metadata = { +'protocolName': 'PUDU Plate Setup', +'author': 'Gonzalo Vidal ', +'description': 'Automated 96 well plate setup protocol', +'apiLevel': '2.13'} + +def run(protocol= protocol_api.ProtocolContext): + + pudu_plate_samples = Plate_samples(samples=['s1', 's2','s3', 's4', 's5', 's6'], starting_slot=13) + pudu_plate_samples.run(protocol) \ No newline at end of file From 53b05cc01b1cffa72608b8416616460ed3a6bd4a Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Tue, 7 Jan 2025 10:37:33 -0700 Subject: [PATCH 002/118] adding dark mode logo --- images/PUDU_Logo_dark.png | Bin 0 -> 1096056 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/PUDU_Logo_dark.png diff --git a/images/PUDU_Logo_dark.png b/images/PUDU_Logo_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..56f3c0cb9bf40d38810ab123bc2c0a5bdee591b8 GIT binary patch literal 1096056 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 lbUgDkNoe?IHB`-TvUF`H=_oeBhf@a#`*Z8&yQu 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

9MWVQPigD4LcreG%8t%=vmE@*i>Z z{ak~|i~JaW+qk%bb~ram4^3|kwcnfo-+ItEhJTsGq==~toMu{9kq4A22t-k_7-*&X zQZrw1P|*ZlIW}BQd~zZC^VOtL+2q_`P`@A6`0rV~&7VSf!26}kP6JkIZ09zn{nE)b zzYz6pe|ojEkod-{8Qzn`0q5PSYmpFmP^@#_*SAA!s|F2JpIkj?Nrg*f zPY;)a|J0SntupIYmgq{VJIj?3F0|6e>7x2)z{sT`Ei1}?QHHfw(DR6502ixDCdZtp zDGb<`i7_sOtLPHJ;iGjVm^zS z2Ry)doVLI(`9Ju!JeQw1-zW>!v3Dbmk2B5j)_|xbrwH@j!IqDgzFTp{{_Uj>Q=>5{ z&O;Ak@IZs@9O=6n@&!K?$jFP#I7BETW($ zXo7_?FiwAnSq(0=`MKxx?Yocorvb(FZM65J{C<7mQ8=m#tY*QVHD(FlV)qC0#tvMLn^!8l?3j}Wrp8pim2-%w6{`sDobgni; zR`^?%GpG+*Jf!0fp=K;abUC6nq1r;zTg;~V6p-N3Z42u>SxneAZ{2nxaf;n zwj+FXCC|$@6TYz!hiEf`t(w%0SvouZDZ4J5W6nhwpF= z?_2G(YxB-Z&IhmL!8)Q3vK;?Bikd_!&~AniRizHSO%5TlizSn1v6VLFTV4KMqd=pe zET=Z_e{)g^%?k1g)#f`QdGAmhG31N{LtHl3{rL)?m)6;jVeola)17hu*|+_D8t}QV zSSWGL8-z_0IC5DvBo9+Qd=D}#n*{E<=Mt#?@Ku!nbm(U-p-{3>2;l^KrP))el&|PM z5yJ~M=WIqQn!Sw%{_qMAx&ktu&(Frkd>KR^v&rc0ztOR06So?};E2Tt+Kn4p$080{F(ayhfs+5{1#lHmA_5OxD`S`0E}>IffBGOo8)a4ps5=D< zp!Z>D$-JV4x|s*yE;TI_g_v&${Y6|`ID-;!^g1j+YPt>)i*MXzobWqJ-W9ax|Jt(8 zl-HlN2}bMKwq)zym=^O~J%HSl__rlGuEiNPqcLSdBp~Ni8v_^p6@BO3AvDdV%lUpt zy<9~vb)Yx}^s_-+HsRsFK&8evfqZ{#6_%Tw#5^{5Aw=3io$rINw)W~`F@w@`GY;+flKGJ1v zDI6wO@T$~@eW%Ui^ z%pJ{1(+$`{uoZ;HiceD{v2W7XTOgRk)=I931hbzxoUTqP{b1IIpg+%N? z4>~kBfatz_KQrQ7vPWimYV8bab)qMY$u&$BB)!y)P$kozmG?aOIhcS`oJ@Mh=2w%# zbt2x20J9ijL1aBj*5$F)I<6B+4|SV^poWd^Y`XEJ{@GbR)$U83eBN65K0)rU0F1z! zBIn<|Y^WZYQ)Sp|)_7?z*$odt(HIQqv4y0FL@7%HC9A*Xw;Sz1bn}w9Ra&POH+lmF z7ugrf{j=%nB6Z(uujiL2Ho%5%Oa5ou`?maMdtnAwpyqeR^Q#u}-WyhL?zWbFOUZth zzOgYzkMj;RANT-T7Nh#QPv^XH`2Jt7T0j4n z7r{*kSjT|y5Sj=AR{zLa$cx3G#hhkS8yoLcTAu6zNZFFVKjwid(*1o_OR}*u)_ho1 z+Sdvl(1{N3U5v(d=0f3rUI~}VTN$skstwr`!FoI1QR7DntV|WT`VmFRonpcF2sbF` z7LTL++@0!Anx^DDqEzQkj2$1mIn7QIQWYGUgD;iNHx-dSxDT09GdtPQDEwK(Ocji1 zvkhe_ByylU=D!)BF0v%$JSPnruz_=tp8kL8 zr=ETjio$2bq5*j;_AW1fxt^EdZ{=018Ae!RQ1zJfCQk)_;dkYQgBFM5QIMRQ3zk9V z(09R}>L$`D!XNRK4ZBqo;Pk_T3hF+-2%g=+V-*e9Z!mbp+PP97^xO(XiIcs{pspsu zM<^98GgEh%HQ_{&P~T(dOGNv|cxBT*OrqnqfY9ygkTiokE+Q`_H2>L$1}ukEK8X6% z`q>S>(1CZ?9lyft8LyXNsJV*c#8j_r)^*R`g}}pXplko>vQZ}b8rj0Q3j4(gkrCK>1Im~&Hr_$HMG(^7lh4M zvCRm`tL^^|9@th^qi;4r3NRePR6t^iH|4e&td5=Tbepg7p5|NUyxlD#>x zQq2KC|4rt|8%GmN+8v37kD}iQY{tMM6CyMKgdxf_90ot4LT~0s^PLv?CXp<5j2agV zJjY%K{Eyc6JCW_@lh_LEp z3Z(ZL8q}ztVg>EQ08uWM?(-v^+3>~uBP4i@*p3o8Eu5~Rzk3nVLG17hRu{noEt1Ob zCL!kHh_ext3SU0My7mMh7P`f->#kvcpNsamRA_YTZ>~L;6ho|JCS5Lpy?;NEgKgdGT#V*s&q zUsbgHHO2U+8Ph;4%FZWM?an7G&8AD$8-HIGtGSiP1+2ikVgU$&?@?ls+8ANsyHWF# zCNHmnxDW)LDI6GA#sU=w+*RP;M7b0Pm7}WC02*s}Y0WqkJq$A`WRThu`(E%9E=EX7 zw6(|9fQpy0ViYqbxKlJZW1|KySKsWRrV5orB8vbWLEhBI?26Kh3lKZ%xtHQBt`K*} z0s6x)=S+t6DirPk<5;ih5r*pmpC%6Eyflf&%BI+HRm*snBEMiA?&KpQ+yb)z*Nvz$ z3oCMar8~iTK~r?yN1Y52d*Yk!q#`dJd8k(rJOe1eb;r%sNQ5yY4?s0IVYhh+eD`0K z;U*De?Q|u;zjq4fm8iZ7

@EI#?Qs5|PfkQ}nGDzGH3NfgB6Ve?pecx2s={QHkL zRaD%M2!{=;7=EvOuDww!6&g4LlRhk|?b(4!80-}XgUdfbQODC=sH0+VWP*>i-Sz0q z>!V+!PRBj$!L^NF0XcEu^wb@4QP>s~YS&Xu1Y9w`$M86s`_KsQyDyCTiFSe*`MS)o zcax^yi(yfSM#8Wc$5EGi)DSZ4OMTOsU=6wm<`VME`KS1z9Y|qwKhW(h>~Y3 z(Pn=comtte;cCqtu)B%vpU&1A^k?BMM#)^I+F^cWR#yM%=|tnCkd5L|LHS^&=Tnr0sU6J{n#pDe};yLj<{-XkVp64#O50Ie59;Q}M#gqF6Ph7g#mY{Q% zjNle>56#8gP_PIM--nAt$#|q4D)j$t&w)HEEo`HifvxYn5={ zwm^AbjDE$hz}_f*c5(l;U*rq9$K(C<-0||N+7Iv9b`vTA$yt!Z_3GPg%kY$+GPLs+ zG8;l|KXj2IYmTz&Yo?E7ei4x|K=>;D(3u)eKM5u@W78T@yMs~wBH9>^32PvGl0zVPHc5MhUa;W(I09pF&T{P zU2B?N$=5z2=IPtm__3tLVKnVQJ1K=AjsjGF3-^iWNTx1W9dEeN!v>Izd_%bJtU@w( zYHM-NN1gyHCO*KKd~P|&qii3QrP=}0P66P+6Pmd{c=~wu;di@ z1rjD4+59g_pfjwRvg`EDUv5~!24(7s8zh~wXXoQjfESO7|po2*`l*b}rtgPP4b&>Jxz z=-6si1%m*%XJ19$Ou3Par_uzIdvY zb6H%mGTUftwaIGu>T;vZw`*neh<&>H+wQ+A0YWCBTgQpyMZca^9uFjP&zzQ)<}w#= z@E=#?wDo3_H3x}LKzPi@zq0R`Iz}!lknMiIc7FMOpQ9UQVVq}nZ?c0pK z6ivwg7e; zd4qFv;VBL`UVt*J5M z6}RXL80GNCpMXk-?AIDg=c`aWGUHF>=2+)Sn+N(RU-(QToqhHn^M3?L9ynl0NXF%M(z14;{Eg)YZcCl_mVBy1g)tQ1pq(4LN5#;Ui5hue5$z42}NRVaf>JJ#!NfNHw6lIfL<&gL{`75uK4 zOuE;T@;^@RbWQSq;imUT_5hj(wP9jh#Ap0aPeSviH6T}|gtHIsCsLUvs2VKrg5QF2 z7nWaY`o>%8UA)1GpH!#|{FGDVMU@Z?3!PPr71BQZ%{}OMr&#~B97{pnTRIKu>HgFt zlJPgdGoYDd+D<({=|E0o;Fj|X8Xo+A#Nz))&@H!X?X|TnnMAGjdD2&ie&#~wf3}H6 zJ{l8Ksg4cbV+5^T=yc}sKh4gd?FsSa%3lmtv!o&zHKT<3En(~FE*W}5t0KZOq;`I9 z7^+?NizBjOP`tPL+o0V&1E zgS>>|&MJq2%#!)K{*P={<7hM02`Y37^Jk7c`oB`DY$^@de2ZCNcMq9fh65myJE!n_ zw5&Oce>8DkUdzCX=WtA3cIkU3u4#Ip0BEBDaF*w5#s7hiNq_)rea+&+n&8-NIlZ;} zrGMtE1K(zNVb{l=-*M#S;A%SWiTi-haae?nza|PAjgA{15=l6mT65k-<1=+}!D?t| z(CrS`Xq?pNYT1RLqIE04TQQsJKT60voS@^e^fION{jzaVS2JU)Gw7tI9a<;grM+eU zz@VW4PC@QG0AzQ%P<$`c!mWRg9IQ<9y1-uXVe3P z%SB}WD)$HlYF+m;l2qXL4exvUrHt(XLx6YEw`LZrJ;4S1h_Bw*wFlI-m;hVhrb`gg zuME5?EpN7<2Fos@38d_cmB>5?|UMStI~G<()!nw8b+ zOsT>eXCdbe&1Ut<-rU6|<*O3ifpVTS1)h4!2}ihRw z&Y{^&_<{d|vzfWOJD$+nEB@)@g8{^H?vw3)?*YkZWhxH{!h!b`jYI!!^?|Phfsk1S zu`Lp*z9yD};Mtyj*<{tx*0!{SW_hfC%W_;@2`vxj3G4KI*fzZI!tmH|+klKUn!2}G zA@em6GDMIl)GnXQ%>rzW5NQqcuD7ppQM3&^f!b9{d9+rdklH5`;Xn_r=ZrKjE4-|* z?%7(99GoYaPoow0a4G!K&s<%>k^KM#UV`+&pW;mp@4rpT4ForO~zbLmUCW811JYov|y_=#2L80uCW!=F~tyOHvBt83tB zG}r9Cr-}oSHZ{fY8BEU|8J_MLG7B+2p>QWu@PsSYtV3oX?IX)IRK^&&VFI*`b89f6 zpom%xy#??I00^wAOEsA_9rN&LZB&iIhTSsSp6$2hah5a`K9@x;_VuNa;XFZ$pmJMPmJhm(-%M~$ zDjxgQ3tSz&&wcF9yx{bYAoqMc9bx)7o9Mp-qr<{>up9FGv8Io01}+QAv!EfH2(V_~ z9@lS(5F%Lh%95A7%sQ=mjjhh~1f4#_3iA`aKtrwpOyu=D4G;r5C9ra*Kcck_$yQ^z zpdSP}XhM$2>vld2{;ht)o;}Z+aegs-YRbCIoPHy>Z`}>!f1jB9(@{gT2&1j74dJ9= z96L-AJuZx(pzN1xp$(Tdx8xstWkq4Op6;7n&OB@WliXxuWksLOI?mB*octG{Yunlc z?cu!^+*=NgPii4Qp{=70v8G7&e}Z^E17BzNAA2r3U|$FvAzt@V>Vu|D=(UR*+@j1@ zajmru)~WUl@6lxZTrwrVjVRa!a#uy1Jx@~0bMQK_=G!#o<6*n2+2qOl1+@(w zfrG)sJY25Yx=R$9HRfC=8rS%)nq9y{KgFIDC6a@fTpd~4Hebf5>YyUIkM-?YNk9#0 z*N5`d9SFy-*WllFWM3mAmydf{#ISOv6}bCL4zF zD&kYum&%y)cqze=zpc)LDm_nwwTjBt7n$gM4z6h}N0E z>HXPSV=Y@WeX24ym2I$7%4zO0C4oncx$J>e^GIUwdiw&Lntc5kq^0|gQ8QdJvRUY? z>;7?SHl-aboi+oo9o-|UdVOCm?EG74k%lzYelq)XYA%4-*!YLE)9^C?oaeu4yiIr#<}neZU8!A3d7jx1w&l$>xb-jGQ$zw zL~gGes|q+(X!MSP?nJH-xVU^Fw4GsqCI!u|HN0OT7bL>rE@THcodwdvL>D}~*Z^#} z?u+Jpl5W_J2khSK4pzMtP%hwm^{gJw+{y$qCuh4Gvff?ijKQ2OO_ooWv2?_?$u zTX%6IH3JXE*Nf0`2m8 zQXA>6EtuQk%}Bc2pgr^n=)6!lz7C`Mv!V8%e^P(hYGd)4SA~>T_(E5q%Ubb9^*X;**dDBG?!l1~W|P zPg_WHjLl%G{3JPnw#?`;JKa1MhoC|lg|L;>zM{Vz?GSwPo6+5zGD^qlur=QoW%R?n za-7oq7rwC@UT?dumgV)q&9xtG`!5G^a9{x3_cpnB{r5b9Z_BS$n0+ z^bYho?fxe}?mxO3EZ02$XDlCTyXrWRKaOUU~p!!vKihSeyv`JnOlCzAkj;Ij9&PbOdD=J^)picq03PWa5odl zK`5cYlXMRKLUhTapw;|Rju;rw;Xm}~==YshCoRqV(yNc6pW0KdeR{PPD)S!y2ULN^ zA(X;fwl9V+CZX6sx(?@zm)s>dn1Lzm`Ny%Ju-l<2`gz_i7dhp|<1gaTMxsZFrpq+E zB^C}FjX0-iUTE`NCxDq*N02y|Xx&|k_Dy50JLboGC}`deVp=~O!tSPq?Rt*0SA35^ z4$8ye{Z|G0U(;xqOnPN~c18@J*&4}9qokbz{ z1rtrs9;LZ1Fp`Uv+4f@tHE!T>Z(s$MFZgaLBZ(8<_^lg@V}u(c*c0DFP*Ds05D7CT z9HQXbAydfhuj?P8SYZzLt4Y8e=z^WY8{gLPATvKSH`ch(OP;$L@fOYV(3ZheBpILR zBpv-Xw=V8eSc%OBDhz0HxfD?XIr8EAU#n%;FhY2iS?XP>-()@FUTwAsgPn?j#qQI7 z58#>ytd!REVYQsQ6}u<1W;fP|3+V`#5o{_KvI(SmQiHOu=9>!kyDmlC{vavZave^J z9P)*i&6Q4$8+(uLwn{n3Rmu^0iNWk?L@q(%24}DR-E-1_Qc|mHU?}0f+m}P}n<8#C z#5~e3C=)#O$kZ_gSZqj)YEa@Z@_E)5#-ntL zKUq=eM~*G3B38Vc`;Lv(d|}`WbP)+ z+msqKN-{OfH44A*bLqD6%dXSX-8EakV#iNDSl(AD=x*4*azegdI2pkTwS$lS;IXuy zI%eak?0=>VPgm_k{A$ICnqu){(H%$B1)oRVC+&LRJO5s!x3GhpdC{P)Z-)of<-Mp> zAIN1LA3_k-l3g!C2M1-WqTBhruG=4J{%LI39jcN>y7|9efRTThtgSuowz5q$pw01M z>zW=U{jLi*9iPQ!*(NKEc@XWwxAQt*&#+)OwOR2cmFs;>OfWloi^YM?sHL&%#7dgj<|>Ull}F2X@_bG;Zj-`s<4?)_WS&OlM$I9HmaiI<{W1_S{>FPl zJo~eO_Ex_^l#71!Azs#7K$W2jM-unYNsU8sJ7R!8#zRmqi=l-_RrD_5{*dkpFBEbk zD=>oMZDh4`!iH+Geo1bpqe+0C((6cxXgpCVg)2ZC7npb)baQ3T0~Rblp){$I8juOf z7f}_1ayRTMy5z$3^)r|j?s3a*Ef2TIa67md`q_Q#Aqr+H&QyQA+dzb z=&@UeLE2UBjb0Ue$NcSmNnGhNZ_jJ^lb`7G0();(@aD7e@n|=LP__G}_V4NZ={Lzl zk2ATkue&T!k-j7>Q09=e5M1_(-)q$c-|su8A>w?IQz?GK=(Yc*CZo|4QL%?1g$vY! zf+cn8n3wdFp*p>Co^yKS?(7lV(yH{eR=s>=bMDv{@Uh~T%zfPK3{`!&(rsS4R&PFY zu;{GK$bxZPJEe7)YB%3aQdX1EN{*O(f3zL8_B;O^E{VaXs+LLwgy__HVs70}weDXy zP31Jvpr?uxt;SSq6ZORs^8WXQI32UtTP~v?;_}BIDwNk%$;!q&({bEXqr<~#))hI2 z`~LXpKPVc&ri^WN!Jn8MDoP)?WgW-@Asl)3&$tNcU@%T$9~N8ukrnm_7JK?pghc8 zksa!9=qEjI#Aqb4hjD;>6`3_ijFXPdIq5|SqA?_-6BAU5W~5(T=P>Qr6(P8)$p_!G z@a{~kU9-OCE+vBhaQQ_@?@EPk12fblMB(PbbZGBoRcX{DsuG6g&a>*~3OokRT^}Qo zEq;q9I_;pc1d#U z)4Nz3JLP9Q6oqZbdYq%mj#kC4s-gHfcW_gLs(vR^qyNa{N*pg7F&`YnH#-hiTo_Jh zd+AS!u8fEBJ}!rOMyMv!Df&R&k$;oCl>I1qkyXE{;M~;8{BxP#>EPdgf(6uZCJyer`JH znto=QqhF;5u>ZbCEKpz1ZB~sR1|N=N=oW%R_7ok4d^u+zE1n>-qj!d<#pIjp-)sRl|=U*b@QRB@fg*vHyR$uvNnod z`MZNurRl^; z1KxKvH)p>n;rpyN!pN>`FxM~Y?b2Hb>8?!agku@UG*HjcWo1tz2L+pC1Kke9=Jmgk9uc9?1=}ww z8e-DO=Q;p#rF`fx1|(3xxKvuGXcW;W@hFs0sF{$yA z?jz}gm~G*;Fh%k;tFcMyDFUvjkBRHBWXip7IoylN%8gfi<<`yOBW)|pu=!ag*qyh7 zj*^=z%3^WNieYYH+3Jl9W!X2}T+lgp|`$OHkFy38T;C+~4ZF zP6t&jtUA7HQO3S&y$4S^0n6JWRqi7)-m0Z759EKCGBekLX$DY*-ZwTrP4>Q7dtc4x ziU{(uTDoAh1p6y9JPTxb_s@@Q3*kP4lk3Ye;i2;v9%Xvj^wV>2oMIl6P&KrLUaVUO zrv?AvGAfPa4zHbh`4(#^d|E$LGs!{n`H*1Yoh__rcG5FD>VtHZLBu+XDB>h(szp}% z@#-!^JuyYBD0@~A(jF;g(T=M>;dVzQKmX?efm$6YocNBoRX@B$E_>ueTWOqjHNBl-vFr&n(_yeFJb8 zl<9rXa2sbQ!AB$QV6g4`vZ1KO_77Cj{|hSA3jyjOOhggi9Vsx-0aKYE$zY;D916dV z(xPZmd4GgAXm*{6Y%Q6IAsxRA`^zC4a7e3m5p2bdDynOO@%?Y7CPu95n7Dk*FY-!A z$Fq9#k`2?=M0~e=&6x*8fLuS; z{i$n}R#SF1?M3jSD&Mz|{fYFuWpOkyDeOu&h;g$EO5S@9z3!qY5l}6c2#AXWMSU8L z#%8bdypz&p=mi%`V`Bv@x)A0(WL*zl>2^Ad+P2DTWdq<9eD_Ly(R!b^{k-}^iei|J zUR%QIT>tR9-+WxASq7^nqD#15tOU4q?`OB!y=O>PHtbN!(2rQEci~7+wKbgy!ZVwU z!BI9z<<`PnifhDke;C-8{<`D*g3;L#EiXk11@RnDgl@}zhiJXu$9FbsfScPMv*yO2jpHyQcje|$}7L`SjzaU-Qg)1EPLlqrsRTeji|${ z0r&sOQD!a8)AqaBJpG>4^e)g~#4VCf=V!4r&xo^5woa%?_(EJhs=92f4xR)1^ubG~ zE6*NHQ0Gj2D4=7uROVr91#_~$d?oPrfpWz*3M1+mEuj$&HV^5`jD>)TUg%DKE*#Jw zz+)M85xHk6di8xB z2Q{sk%l_D<0&lrhbaF^bPkL5QMc?i2cU>XwZOnp1)pZis`z?X4o+y^4xrRPyMSNe` zZJsuds~=0A%?=5GynyX?dZD_8dQ4-zfI)f`Vd^7mP4#b#E}NFehJS(A{R?ZgBm^tU zCo2allD)@<-iO;g!4Rc6G161K)<3?y$;#QJr>76cUh>u(zskwTGY&MEN>f$OF(;yc z_uQp#$BbtA;`Q7T>yKX8K+I$k_-J;yGy7hCKKI@N)j^3HnbN^^o;x45F?CjsLXy#_ zpKpx%L!TdGVN6a2*F}q(H!Lo5<6M^!f`P-dQ*u|h&x7G3c3Dvx34FNfq}%kHrf8M1 zNl)OcPzF7(Y)*%SQp#DyI^}VnOW^@pT>V;lakEdGhU^8C#$Sk_PkAV-*qn)zb$Mwg z_lX16hnI_{6iSYDwYoBC^s&1FeGh3!MS0805Q(IfDZWQgciw2*BcmYU7QNrVyT2zM z*B;zNwjc95?Q?<$2NMT4OXOl+H&Nnjq=4FL*^E%%!~*X?$w2zP1Pc|nWm90e+p#*N zT>3+$u|QFxW*Xh*P}EwxyuWnrMtCJa9AJ1E;1!l4$i|Iy=(7B?Z%KSgYWppZCRH2) zc3!B9*QiO#kj*05Oaw4+u`2tmSSFBXceraHP^lz?Wy}uXX0*R4!8K5Qc|gRaKVA9y=uhD537>jr+Z-U)v{jt&GIVp&h_=Q26rVQ`U>}$h;a3-2lwdg6?l9w$ zUTuyK*%$Gf4$oo)(zLuqA04k;4OJ8yV+P+(m|!)FPDosLru?`}XdnllS+6BV-bYWHtv1U!Q1caV7^qr#)2ZG|gsty64to4b8bFw{*=YNh<&)b)Bb&i@ z*5LOk&~@$SgTmXg#cQdW0hT84OviT=N&KCYUn^XB7)^rBDE4kx>XW5!j|3w>^jiIm zM*!StlS z50K<0xixi=X72+pmTuQ&B>Y5v1v8jS6BKv!^uK0H!($!VVa*y!AY?UsD+L_;#CX^`N_XaPxG^p{WM zrTHO$$9()DXhYtRM3zSvEZgCbR^OMX2b7;g<6=2?z*PLNN7s9lKd*OL)*KGk``P@k zV-Ilt%|NEhyaN!yvyhsDl_FsdAWsaFQ}WR#O)sO!&;SN7yE3ueBVx0R*+p@Gc0Dmt@IAIcu|XH zszEP9*Z5^t({N0dX|-%6R%4ebO$D8l0dNV(c=eet19F!9Ea2Y3v}Sr)`UE%1$|)B?XLI z_^TPR(TlQO|AMW4*)U15&4f){gFiCPOG^LHcLkplhuY|4VPUH_us~H*-bQ~ zGN4`GD7T)&%cr;F508J~`EuCK=q=!T*Zawl!l2DzsT!Nk*R*eFvrz{L+7i$FhaLjV z_J@}B+X%sT>X&qgM73gAf67w*Xk|t}BB53bu34QZQCbnjU1{{czv?qA-gL*+DO;_! zkI9;jtfUc@aY%GV_As0l$4{;HUgN@3jLa9~iP#ByFl~k(evHgn?A8p*d8hS~xHQ1^ zUmdVme(T<0{Ass+LIhKJw~}vU2PC-F)z^k~zv%@-FtZ|Eyq9#jdB?M*4@3l9Op@Us zOeOi~hw>EVFm3B1bN?P~#VOAv=`FRu0F$Ps%;r&Vt(=QDLULamei~l+-cjO-=dgGn zQ5*u7W$yUiAzt^|7de|64}inN7F&jGa!s`NhYvgMd(MNT1mhnQfvPrf9*IZZO`VWC zBuUctMZBFqtR6uF$UxkTKWmGGniNt=rnVM`v5`P!dsEZbs_eLyv`FFt=raCdiY`1r z{fJ4+Z|OK~IYFilm;anJ$d#Zf>^&24L29b*h#ZTesvKz=jaSlhcR@~Nzh7O}O>9S4 z(E4ci&6UEBf{?JBqaXNa|4`qP9-~ti5UlLii8|`x3nNgP#(!8UlWt!yz$tDz)@Xl3 z6rKiqUljPIF-iJPi;k1jU5CUBX)wu-o)Fi3sG127`d`7m=Z{YDu z6jov9qnJun7hqJ$3~8^W)(6+x?a}@05W5f`k28ZUz0~n!2BF2y3#QZUvLA>!$;8hO z^_Ay`iKi#twC|OZ{R?jCerRp;On@vA;eU_UyPGe3t@ocw(1-k%F0m08>#f9Y)!o>c zoVLUH!mR(eU!u6KnYsDRtl+bg_i0D3_{F*ovjglGD*dNTu7|yAQH9*)ml&+tdV_93 zs&+2U^bbx@HcESSuf;$_$VDfR{h9A#@P*BL#Di`g@$_f{kK(rmW5R@yarZDzCi%Gc zQ%|3%bBkSt3)&HRTKW=qaP^a`^)^HU*T%`^nqtl2Ruevn&0mG0kohR7U~qs5lXaY;z_o%4)dKsb2U1rvujUUq}GfR8%l! z_Z_#`8{DAkU@4Ctbx3v6%|k8cWkfZJ!&|p4RaL&)XxNbd1geyleXE>tYr#&`M?vqA zlPDBrz8|j%xxM0As9%VXj6XONB%q>Gt#2!3v>@8#~KT+%-z%16&zJ zwFXJh)z|t>K*^H`&3fh{C+wp2|MEJkM;Q7tQY%EL&$neB~?%(Sx*C?_XdpqW;;lDG!Lwq)18Oxz^C?Mc)*ek(3qobg9emhwL;*amfPmDSuC0ebsujZ53hqh6dWK8GCWqdN@-jc&MJuf+jaL@rj=s6UxkgG;YO zA_NV+nQZCDj-T(3`$5+p#7I{@?x5QBWrkiac9iexIZfb@@4Od|NTe<3na&ay9q3zl zkPe}IV+dh=`1`aGc^8!|EJ`z)yx8h=#E||iwLY3OYv3{QXYS<17foHW@T}p2PF6l5&qy&+npkxi}f)?5b_rm_E|CB4k4HXyz>>ij{ex$N^Mo`>p}lQjvL z52P^THsPrG2QD?CANV9)Pp$R4--dC(R?^dGlLi#rh4Ggdd*#^; zbybl2x)XIJC#>)-FJ@CoTf;^v7G?dgd21vp+2Z8I>DeC_;^8=6ufmw#TkXVJuLLV> z?Hr?v&u{LDKP=x?8gl~bE5SfN@+b>`H%z5kZW!w{kIxUj%#k@T_XwSrSWe#`G3);>YfX?B=^z~mCayw?xiV!R(pZyN@pV`@gxPhoy-Nczuj z&1LSxvH%jQYMqeeRDNVb2cGGPPX<(^A~#?92F5XeIb5|~I;zkbzVkLAqnKgtxA%({we%o+5q`%fhvxLiG!aYzi-c3!&nOY!r1p>GV}d~{IOgxj5pQpoI#=6(`uLo zO!|e(DAG%g2~%z`4cg#^-B_TU;x22Rwe*^Jc@XigZ6(bN>QR)Lu$FTX-I%;4gP@*m z4^&gmYc~B~gWDoeVX}*J=hz{W1NbE166L|T533MzT^gd)FK$FC4wM}@FdgyyzduMJ z=#=M1kg5NbAhtFT#mnMG#+QO}{qWaw4apL`1v{IE^CAH z!x)O@5YKOyKj%Zd4OSG$r#d)(zx;G^+M_v^8kdNL4;I?kgl(%2iBJ4=6GTRY5=5?^ zRmCxNBXzZvdRRrmT-`7a4&whD=v&OUXk1)OjA%{h5ToQl!JYWR6zXb~2-Jpq%|9p| z@}#OtGw!F=V33*4YqXw3`Gtz+evaKVE*+#z%tht+Z@V8()_b4MNmkAkjVmS|PNwb_ zL^1Y_Q`M${IvSCsZ7;^H_rGqtncHm+psJ7#4NNNK$L#&!?G0JP*5v|qG!Y=fHvZ#Q zH>}s+3s4sX>S)+k8_hYlUauZ^6Ku5s)l%qS-}@pLr~Ae$bD)L{beQAPla6g!7m&%s z4CXL-YcX=uz1&pmCFXa*7l&J&=v4@Thoc5i&pLkzL`${8;x+c2jml5m+m2(UQ6p?< zfU4p3+=VAhphzFFgT0F#xf&RRc=cdudm>>l#OpVjyugWLGF`~RSw7VPNvu3&Paf^c zmhT#Kcep1~z&1NzxyXQm|Rc#NnXOJ-gB`bro+xnW;wLTm$>{s?`gB?k^)&sn;3+2^iv2vBd12em)GPd zfKJ}*tMh1D-wT88B!s!oMgxQ%?9}?V-)BPYw3V`LCdLR~QZ$5e!Yd7*)7}bRp77eX zX!=v;Z}}6$5b`S$I7EutUV}O-pU4-+&j>$&fn%iOMN$`m< zjpvA<;1cB!VA&nJ9MqUMD01~ZR5m3sy*5oxuATTj+|UiiDovcr6o*55nAPHK(OBZ6 zg%c2v0X>nrI_%`5UD1EJ4GH1zl%v@!wX_~W0^NUwDx)TxU8O}I9}kpE9lAVjg`djn z#nc^>g1Dl|t4#;#FyyXRes>FT zeCy04&^WDhck%O5{k99c+kUQs0G-?Y28Cmz6L-Dk5(KP&AOV$>Q2d^V-q#_0k}0AL zkkAO`JU>|nbeJC9Q=YEkgKX6MMhWy zvN+etp*CsUwq^$j@Q2GrRHA6h2v!xt{ETMJj zgT#IZrCe&FG9SgOdzu@x`7xSvVaumyfG#Oc_Mo&1cB*==CD{`~Js`$;S^(XG{cTvV zAfx90lXF~_Yeqp_+f{wO>^p=tsxO@w_;kMIlX6`#rWzVd2r4m){k4JHpBV=Ca4wAaHb4@i=4I$~4zG(Fs@$vPvF;4h;F zi5Gp+c{Q|Wj-wg37Fj9Y5+ek?t% z>w+d24bQ$dTTRW~5VCR>>DoLZ;X{7bA;;oZuLXN|9FPPY_1feH@d~dAzN0*^a23|^kRDZe*9$8ap9mey; z1M0=#zFPEdh=DM&6j~pOOjtM5>iNJBI^zl98F}AD2hbE7)l5Wwj1}8SuVOS5kAOeE z{~>q0cG-KSH#qa2n=fAw*l$3zldY)9DO@yet{H7TrU18J`uy$WyJH1_e?>; zcKsxzh_(E?Xa?hRiR2M8QIOz^Z-m&iOd2E&inE#L#~-b-K7cq)Ok0L|0dI}}-1oc) zM1!D^FNaC9Ge7?7!&aKlXQ0Yjv2{2|-5l>s{c&_j8nm1;MkLCh+j!<(OyV-X?xz19LIzq-ESqaowRaYS3S`An^Qn7rvO1fXU^)s6PbK-i&XwW)o^KU6-nE?VP zhroeATA7j&+N#DrUj|@PeV}sk5O(|^oS8Dkad=Is(<*#2;lKpOQjNu1^;(6|4Yt`~ zHuV!Os^*h~X?-e9H+YvSNg%G>iMpMG#NmH`Lw`>&vN%lqxp7`DoCR!n;417yh(WM zB@RQnNC$xtEO^FnSaf+rzwU`1z2%ieXP{-5V0gL$WD zsIwYFr0d^q`dJ#jLzB$8j7T3Mw4;Wm_1S<|OY zRUx)7xV2zI^Rp;+F-UM&BrU?vtcXg3BCOBvXMW_|A>fiZEev*G8e;l*IQnJH9?UloHLLz8 zQkQ-7H{nBS8rCr%=sPzV`*Q$g;Yw+^!2?07tk|uIa4vr!{HLk%myD=#yDQ7 z_0s>M!%HFW5|+A3nueH7_x4jQr&rN%ip6YI50?XsH)%aKBb*Uo>^c&3&KyNiN zgajs&Az(TEL`p2bJQ0zGgY8;BY&f?IYPa8O_TVX=R_`9|?f$M8J6n*vRuVJ_5Q5?Q z40N*pfIK!Jz32fK`?{p>eQ*3Uhusst;+jhb1FIWm&VRi6w5tEq4k@fLj8pG1uLdd~ zm<}*}HggAG<3U-;+svz?Gq&%Ztr1Ye(0+3gdO;P{sI4>y#3_C@73aY)x z2~rWhPm!Hc*+MN#zmHueZE7^|P7!T?A4(E9M_Om%3X7>I{KP|p6FZJ(Qt~Jv-?cA^ z7SC|gs>fYnX|tHC$4g=M=>i`9!-vU#_^9o6g}CxNpzBLedDx8|Cttf&sq&U=$2d7G zCo{b@T{tss2)jBuufkp2QPX>BXp=P?#mrsb2Z)g#yv5S|%ua`K&#OWGq2u?5>(_PG zsNLhyi>`hQyMjbm{YV6-)myOcyjxbjGV5IEeflKz*M?nnR-K|=?;KKGmY0o3QXwlQ zzT6)4*^|=H4639JHwJSi8p5*^1J5RMp$mKr(b=cQO|Zx+Vb!!rbD zauwOJkiN(%x}shVDW{o*eq+6`CA@Legi&Fc7Ba5Ihh~A^A7c>f3;S#Q@`7x5M(d~h z1^_)hQPZ7YKQC2l`z9b!q$SUwf}Qmi!Tv%SexWbl-kS62$F3^)L-# z7zQObAkK58a){*3q%#lX^H>EZZ%dkn++f9$34bf*Ly{h|C};@? z=UCY|MHfuP`m98ga5^yGq${zGsIM~lDg>Q&6IbXJNoAQ!ZY8!GtmQCh-^wXb)ZiLzTN z^~bMV#zic*$H_2`q@}ogGmS!dX*^vH1&77s<%J(;XcM?_v!}oCHJHP#{Ae%h1!JW- zDZ;GN#(hW=On5#2+}!wR%s2k^sOe?r_xaH3>{3BsM;cU@l{Z;#TV&n`uBb8>Rb)Py zzPA37sMkp*KQsY{TdJ6Cne80lEeJ3hZNK|I3Pcf#E z2>ZgzlXg2Un3z>UpmEO_mc;~>F`Wu@J?{xU?e(D@xN>!WaUhMt+V>E=i*lbzB#sMd zATJ&tNJ0SzH7Eo+bymBeisJv;V$-khd%<|K>i0zTn*d~)aLM36_X&bIb zC27?UqZB`X{4L#i0|3=M67sN6q6JkUs$A;pme_#xGB5);h_NO$ZX8w;5AKi?g)7lX z+`$Q8PWw~>^phxn{dq5?a~BYtIq-?)O_bms=2-E)jlS%T@MCfD z{T~}X1L!^$z5Tv>ECjemuhZ8+kiiC)Ry@4F8QVL14fjEgjmN^d0^BZS&qq_d*C|p8 zBP}GHsFt{_Yfr~(z#NB@re0;8m-IoKP&(-#KWE#ZET>7RCUbBQwYRwfygp~e= z2MB9uYaLKn zZoXu-dsQ*$t3Zs0;8mfi6?MJ|c)1z9TyMo*P5Fr@?hC64>~`K*3qGP{v337b$v{&8 zQ_vKk?O+bR-g|gp)dvy``FbP5ul>qX=P_>C=rY^--z?ltn89n~(0vzKC*rv0=9$ao za6+=uNyc>gs$0WNecco^h)NBDM&5zAekJFtbGQVxFuzR3EwOhOq;rFQdPaN+KDPn? zbRluP@%QeyfTe$2r9=Bl2LM;`c{buyvp?4S^Mg&*O<{3vN>t&QW!UbLC)k%`S#gjx zbmIPTbeCxV#R_S!TuZQ6*=^aF1U9IGVTnJhr}6+_yoV&gus(BQWrT|?-le1kj5>m& zZ_CLxE-CD_aDx=E-6mp-dKMM$M6Z)#Ae!d~J?&J;ItzcH?9luR%ow=TvK+>2!mlc6 zRqmDkz!`DWd1mh0D76}Wjl&n#nLL^u4jLT!{!>;G{!>=M+wel*l4kqk71?f>G_sL< znuOyB8=xhqS^b5twL7U36~R%CnL;?Osz?iy!V6CQp{L`iHpm#ymC`ZZC-T;cG^74h zCBmR{*nBTKUu>KD-n|u>Z|FShTd7kk8MBbU;{8k~WB=R`Hb(cE>Sjn-lOX0XoHq-b zbAK4I(&SQh?R}T!&=(rQSzyImDF)@w|0y+@;tYIEVGM}Tl$l)}d z5{GAj_*2sQg(97LHtdVYgWI^v0Za9+uq~TdcsCP8Qu*m7Fg#th72 zHft-O$4L{%aas5L#@z4T@Hf#K$j6ld2D3?)&tpPWtKU z%%8%5xzD;sJYYoR+g~imJIT1iW?3#{s~?lKCz{^u9DIiXdh7*L8I2{A_W=}$26bgW zWGISRm))60~d3BMP`O9DIYZsE-BosC1cST2rLEuv9M@MIP$dilgf zdunG@N5s{VX!$RTw*k_F`Ry!%#1o-D>7qITZvVAGOp&8)wCCofiSy-DXDeB8WglfQ z1PB7n zYFrU)m3fyE9ILxHi zO)OTd<)R&B0SQE)Tp_m?3_q8>>34TPR0JZSg+yBJB8&+4=PCEhuZY9 zh3>m0i}RU6-o^I2d7X7p1`!^~#6lWcHM&95RQ>406uRHpq4n1ep!MZFr%z}4p8F6+ zBhY<@M745Qf6y>{S998fL+@sf_I9CE(8W1r0z3)g71`)AqqE-2&5I#3Yh~`S@##t5 z8_jLw=@2CQQH$R74CQ}CBV1x@ao%~>}wu>vA_x#BD0Hpfb zOyI$$s-eNLD#1_r5ISIGgpG#a+QR`AKtA~Ce6vqeUw8=JhoiHZi{9@;O|oo)TRTXJ ze5h-89x*625b2x z*?utx4hFXF7K#B+#4DUXn%X#uBUXCjxQ6&T1Ch1AKNoM%>9pV1sGfUl({xz?S=5wH z$mdIj`d+lM{QpR?s_7XS1C*({;q!9Z8u`mzAV=2D)cRE)=(^DtPTzN^4cEzPu7#-~ z9zcWpt&z^{&}VR|&*=Q^!nHddL+{?LMw7*C(PBm!C?)~@e5nTHr{Uc$9gm>@mv#5L z{Vs4}XWmQ1*{~N_YB+p$9sGUxL&gDY>M<}vMR{xb!}y2MA(@R{_o25Qu(Ai!aWc{R zS&T6E8+J)S5B0M>g^7NftDVX$nAvVUA{LF0saZyx?FRSX;IHH1+LPVt^_dnCVyBKvI?5%>7V4*}DIelb%ep%G*L ztBczg_+L!pITC~eBJXxAS2%F(X7wrH%%pVVVEkgm-h%szEpLiO!bzmPxsXs8UP0vA zJyEw6La_9m+5b(k|MNI_T|#Yqj%g|;9O{r8p+MbVPm$euEc|6jP3L)2?Zvx2-bYkb zMyP#!?fO7za2!`KgM-VMf1rqYB%~!yhTgB%sL=!>@`Z$i-@2WMwDQ8mdL}xDpC%5G zQdW&qA#!?{6#$h>l^d=SIX2=xCU&4PYc*V0pzHC1+m1xF`I5=}Ud~Cz_ty91nL&Vm zT5|I{wTpo9V~VO!JCF7wla7GqrSa#ja2_MXVQ;(Asd z)}E|?StvgAw&Mh;;Kzp4WZ41zRu3vK3X}L@Zj0f~Yi|0fMsVCoxjzK>Z~>S0r{3BK z%%UPIWyoAMJ7r1UW~%g3@=GBRB0a=9_>R5dE$ub4qXdxRcWKAnDf0FiGG{*u$yeRl zPtcs~RK(yhS3oX^fA|p_T190pm$<-L#ZQ=z0GPzZVE-wv<$C7=_N zbBiS+^MN0d4n^eP2Cl!kjitvclNMrBJsGeKT#I)5^khEYJDFVW9xNQa$0DV31NHre z<&94zr9opK&}xKgO07odB%>dloR;GpNT<6x==*qIX>vdZ9WC;Y!RIiV4~w4TI9uj`6{pZE{MaRFdl;wEaI781f{;UMX>*DKB3kxs75Pw^X@SSjsapEb2 z+nVa-gt;)V^7uBIwC0T0n8pLD23rFo!CXK#<_QmOTOE;ij77wZ`A3OHs{U84@##ay z>@ew~5QY0;5+bEe0VGaGA69keJkqQLSPBO9oSXuEsEI^AEkLsQRBOcs#FH#(gLuP% z6bYA-|+c($jceykrNd;9X z+>f(~2MVzwL(W?t2GJaYm}B*@2b=VjWTZ-eTuELZ9+}$ILU#@NSW*(yw?kD>aFss9lKz4}(t5=ktTbZE$}00{BAD3a%9d4a#I{84n*` z)*ip5s#oeuvkzgye6p9vZ$FNyH~nFv>?=W(QAydCk=!YkfAPjQ_*T3(ru?6*GxVRV z!=Ylpg5v)ovJ1uY@Epik6>neK|TEfG?Sz; zwSKn&v)_)+yiW+bp(!`U)5&c+jy}CW3}-e?_hJ{W5~5B&-$3@xU00t>t+ABo{bD$% zKB+iZScy-cRimaioMzy|twJ2Q?jaGpHZw)@ja(H5kO(yhE|rr;WuIM@aA&S7Zi*k2 zF~&MOSu4j%Ymk<78(OdTe|UPw_&DF^{X1%G+qTWdww(={G>vV$v28cDlg74f+q}1* z@9%#<+t*&Z&*qvr&tr~xPpE9pWgN;50s_EKj69$23oLlJ$^Nsd8{w;1!M4lXn$aB- z(kTUzeJX5@?jbx%ipRA4ycCxreo7_`%dD7{u!|`2>-G0B=ek}~_lVejhea1i_2&)U zjJ&-3fBu;AOvg)YE$^L|W4C6j1WI{Ab(~Bn_Iy+A}E1xH{?`>Sn-X>oc z3-Bv)ZLd)tE%%c<=0?+R@Xz=GcX386X5pqJATCLXFlGiIMT)^*QQ)oL@zZUc!rxD0 z=k}+qR-ib#nhME?l)CUxBb;uQC2OA(PwC0>=Iv{7i%&bx*Jb&Nf5`1U_ z9kSf{;b*+-4WVR>UAHP{P=kN8N@|p9aGjy@}?>^oDPIj0EeN1bjIkF6@O$qI91U!rEbBkp|Cr7uPo)b&0OV8a>kG@QrmwHev%p(R9;hvo z&^3pIH)GD-uuB4e!;w^&kpB(3{N{rslJ|{lA;VK;?7J{!?c{_rLg!tktVMfN4LMa zoBk7PME`4Ls;_u#fwx>Na@_fZDkV@3Rp9eFK{s!-6~}4FE4Tq4YIL0V>TO6>?1_I5 zP0;kEQt<7IF|s-tdGS#E#P#HhP?5Zyn?;Bb?cX1ZRV)`YfRvrj0-zXbdC6>ChzmN) z342t&Zfl!$uSt(G=8v?zik>f6REsO`1oyPr)dz&uptl4c4@EMD4yTd44*?iB_@OtC zs<-9!HBCr4@GYpj6@?JNVe`&?2h~!;cHcWQRf()Uq{&E*c$@!5&ALU+UXJ=#aP3G( zVX(%jZS#}tD9#R61;m8pf0)Pd?c*d|6<~=~rNzdoP&KMg@klOW#6A(1q)g!~6i26QsmdBFbZ zgXqN&qCv<>h~UZ!SqZ|U6S7Gu2z$J1){c}g}T6TN&g@e3XGZl%l_(S@P; zH6G%9oaKKtW;~M>L87agDcL2fP4MRwuJkwY>Z9DMvj@Xhd6^Um{7M{X!<3`|&TkKy z**k1nj-emnwameyTThPM*Rod<{2u{zAM(+y_ej46-nJYN1Yd%y^Q)u$<pYhT z*S+SlmfK6RcIFF53TS|)n!giV8{r%6kN;8Qc#Ro6(;>1vx10^_2Bq2 z7`xU|>Ko|!g&`zy6Qi^gYEKdaRSW-en%|5su1tpB;x$Y)7z^OmgQs`G{A%uRlCa{C{2mAFH2@ zjJimMaWw(6M0O8jd_~?OSDnCA@-z3|JuH`tL|&@(0UfVa@qGP#(cnBnqT%q!qV|DPR7_?nCfY?^mR}5qsj=Augdi`;Hd@qQ0t5 zgn3(s-O*lfDEqMq*WEkdw`J#Z&KRx+u3H(X+M*DSia|gKL+tQhm zvrIa^qqfT<2KU|w(*RIMG6uCX-GZ&@!UDl2jqsZLKAgkW#q*{GPkj`e950ZhKGqqm{a{e`V@wpmZN`W^;?nUD zg@=6xyF2PjC7)emN8+y?)F4i&i+--ogkGZ!5aAaMS#0IvnkPuC=Hoy?q1e%&AF(bA%W-4B z;Uv`zdM5P?;+3FKapJVVbbaJ1V=%ifmU6bz?XV=_(fHEQFO9KwUTh5vqj3rMz0VW7sfkjqcK?`UX`)Sw? zYTNlrd%kMFRk&aYmaE$U5#zodX?IF7C2@?&1106PA?S-Kr1)`$2*meGeWGR(eY;Iq z=Cau0Fz=K8P#TGh6B-pvIwpg|NV9{*(FFnw$}`APkn6j3F4sqwI7}jrrCJhh2EH+t zZmZ}-KZO#618VBPwo6=!#H(6AoRVD;+Dqd!IlyR>+dT6JOAtP+KLvv@aK??cb>vHM zlgYG}j2i%9<22VbP7~)|yInx|D9ovrK4^g>S7e;u zPQek>kC~~^7-YvLI@wo2Q-?rdGH~KpU<|YfN+C$*8#-6FnkXqY@Acu+DVsB5@}V`1 zKZsND*X2Jy7?KwYN1EyW37viII*FZF4lp%0CUalks58h@yWNfI+Vva+aiSU-S;WAQ zGBNp=fNM=pPqGz|{VBmH9of+WS4^p=A=pTJWh9{N{)hu z)YT;ys|^Slq2&0HVE=0vstE>VPH#fO;&w}Oa6`@+ z{m8Tc6^*BNrg$tn2ARUkKk`gPN3>F#`(Auj@WSR%_JUu*9SeDnCjnSqeqy!Kowy?I zme;ImQ6YnKcaHNm$UjZ-^<10cAqREPb%-g8<3;~&@)%*U*Hi6-{XsD$oUkVh9Dx@4 zxbeIW_5Gv)I-T$Q(lcA?j6cjP+kXnYcCkXS10zo9RnTNZ|E$*d%S^`&Tbs?;8m`jEW*P3#Sz*N>Nh~-5Lso}))4}3QIg8`Gh??$1`tZJ)y9}y>SIhwm-1*(;M zX^gkNaTvtyU@v|`=g8h`&w5Iet3IOr;0e?{7hfjt(fu}a?j&yG zJ~1ge`INWsn+#|~+CH4ok$cMZXdi|G)4 zIaHdh{Wk1VxAnlg+3`S0L!^>ZWH(l6(x=QJ1xRDpY{)0wP}tCs zWHGKAOV%VE8|R4DqoKa&5WoY&O*a7;ZfqmE1{-<7mbolPYDFTt@K|ibo}vMef23X} zV8OUh(D&gMnEEk~=Bj)D6mN&qjg|+E=EV&vjcmaM^q^s9YsGh1C$gmV`K~Zu7iLrW zgYcCtg*CT2#h-PZp9US@KEDad2Mh1jO6`wu3p|kCDfF=j%AY0kqJ%v$&0xgJQlK-!1?DLe8Gy?TMg= zfosEGzuo1((_eJNy*;MyLwI*@=++10IQ}va>HwT=HE_Y5bh}kFdTCV*0^8eN`a#Y7 zI2G$H`kVgmQWToGKLBL#8v;586*vzkLxRz+%qf_3=#&)9iJs%li8D#b>$LwU&6-(E z5p*HZ%YF8^Omn1N2+I}k$c&d>P+|k$z!qLJb~09&qtstgeBaZfj^VU-gTR^AZwDOk zQgl>$p@LXuNXGo1>0f8w+O30;wXN{J6NVOYVGoZ(rt>w0Ki<@g<8T>6&l7(7E-{M@ zSeW>$o;n`fKjpoRJBl3KcH)N*cM|1m$`lk<1R==nrxeanEeX?~j8}I_4zm0hN-S=C z4vqf-!a!cq6cRf&oEwK=Ayu7uZ#n33ZX=4DdQ2d7vA9Z?ss_Ah6#r{Xhr>&-+PU{h zLLwoOP@j-Fc<8s1=GsP?*APSrRGMi}8iB>O+PqAf9UBUXL}s%x-|qJ%W!^5Jcxc^U?-$-{Ec;~&`akj$~% z?)pE=Zc8Fi)!kXtUEBsf`Cr?cl#ggLyxHJRWBq=?_g_ado?hrln)^dqDEg!*21g&d zChx)TT(?YCBu(@i$78yf;X}3OEcGwhrB+j+#3w_%SnAYV_qT4OWHD({OTay*s$%6f`-s9tR zG9$=>g<-=%1O6^DOMaGvn`|AAu1l#>T9?76w#h}T^}c=3sKG?Z)R9sm+DPSAB&kpn z5t@fcL5D`4n~SBoTQ&sf$K7aVqrTtvGJP72J`_{rCecA4<9x+nx!4R$qZ}ya(5?sa zu$K$7ULA0B-R)&7QE#wiluIyoDgqE|V9irkC9}z?9^^#bzCeNepCh6R26T(kOAB}0 ziJ3jY-U7!C*UgQZ1w0O$45sCAEfYY?hsVf*qdXi)iZChOv4%?{ie}9qSk*uHC;JNB z-Ke;3-$Sx}vXEXf1j7Yw=#`)ue6+bh!et?>7t@x~WXZa;UFf0Lc?btCYuLm_Uz;mPJtPSLs_QA=|#3N_Hge zd=J^=UJP;!%g$0Pyq6lKpk^`7Q7BhnyQzeMM!)~-eR>Net#njJ1X}72&kkvb-zB|y zfR7$%?3+&d!hrJm{1rx(6Aes!qE8#YT@4&Ds=fyQgze#%QOX~d{ZF>5!~FlJl{A6g zaRXowEQSj_T+D(ki4xeWDE||g% z^X9rcR?|+_mG-Q^8-ro`Z8!)0E8_hjwF+(#8FEzgmIwejVU|_$Q+XJ z@sk*!+7YX^M!!H!qqO;Cp^dYphb5l;+2!N<41HC(dsfhY(D!T7;ux61)P?;#!24Ghw><&wyuPgVfP|^M~ znXD$!Edt|9Xf$Ad(nL9)3z<>oxnvhHSJDsbx$ZP72{nM^K?XO&HkYW-_d!6m1v|mm z{3#h8%Dp+|eWX9{gTVc!5m|p-!efk~c$c{iIAJOVAfg#|syU|EhpxzSG z=yqoH8bhk^TE}uF-x@-OPDIBepNnl%1^0oBp#>OJ3@knH4y8&{e9|4T_z$4rD;inO zMl?ji-4fJU-}3 zac_brT_ND9W7q}KSyX2A8+;NT5_C|>q&u4N(oRk*?Zhpp0J?ps`Un z0=l#d3-;O89Y-|*m607IC%*PhZNlLl%5;`-bLp4F76a=>e;K{6$a)6T%%wf-o&)bM zwZLOfjUK*(g!V!g+6v1VW35=j9%dw7A<1LhQ41}(bL67xB%zu)$MVPcpCa!?pUoQ- zJ|5=K=XdYpa9>vt4W466NdT`K=7>9RzMsbLpG3a+P)JScPx1=PcofJ9Z9}+yH-u+nHAH(ev zM->x}@r0fx&`HbPp)^jAu_|1cQXz^?0dY`H;FW^)(y?WEKATp8E1bqhKnF01bT#`qc{^&e1Fs zT_EFDAhbVm!%v%P@CaLREEOigVjO^n+DI9Sx{%l=^4)_hLSfw%h}eJyHnd)7*^Q-+ z=|~E=5zwT~E#Q<8hyA2gv*3jT8``e`Bj&_zMr-Y-C}UGBhe=?S&0|D<9iB3?GJ=Q; zRPH~;6dUN+oK)gF8o4|541Xy-25BrI0Mp&-OP3lTOyk@wemKE$bK3|oUj3fOS(bN% zfTme(NV5NM4VkkMZu(m(C;Ruru8-Mm(yRMWUMz~w!tZ!R8gI&m9~|LuHx~FoAb4Fp z)h+S&G~GOGbl!^?ZZpMWc_0IRNRRX!tg{n_GD5R|KU@ZWrp&^l-vG*ImuN$2=^Q@qp-iezKJ_5Zws9wUy|sY9L68~3OO(W7h$;Or3X z&n$A3W!*R@n;^?mM)kmKCzM{~8vuIW>g8V_3~{#pUFC+XVEena{*C85V_aood-Cbr zv;O$wB$@Oq{u!3tNsva*v!`uziTd|3~=m&YKpA3A3hYFBjt07DBGz_?1+#CVs5 zCCTU2pI8w*&}K7paI+jUPch=%kgekm)Md^{NyqmcEi2#>JG**A5ZGJP40pp`pP?0$ z|3Z~{ISOju;LX}jo#=Z;T2$VyT??!T4BJhWc5RB)&1y#0CZ=8|r{=hOyX@=lP*FUH z2p^=0eg1Y@BIEu=`82xm+kH6fmGH<%^>yr?W`|5i80cJJ{HLn0f&uP?&BC(LbJT~R z9GQ@04&|`2wKjI*SQm$h1=}S2T0okE<6TT) zNNG2m(id?dK>o9EsS&fed|O4w44 zZa8NdA|~Z#e;DSr(M_DU-D%}i7=F0KfU`bwhxCtW0dla)NV{FUC>NjsXv>4UmVq-~ zb>A6pWhuk&evX=%Rf@b4%e>4;jL#A%>ByXV4rHl(T~EQZ+i61LQS2oKO&o-6&SJ7r za#}hB{nyL?Wd4rEqyb`p%k9n_la9y>QZY}7NdN*KG(gl|-kU&%q12sfgqEgSIan(9 z8ZvCp0+=YAb8d~XLbH`G@o&QL?z8+Lm+Vhr!FD@Z0tq*l61Di@7BI6<#Ec7h=LQHE zsUdDxB<1f_Ta&3aRkXXvzYX-H9FL$&^l;p0Wcb7-C5|{bd##;TJ*6b$$m^n*(PlQxNm+XA&m{B-2B|Y5M3Ah9?b5Ldl`Gt2duDu5n#y|3c%~K3?=r}yvC~8Mh0Hef;!fOP`Q#S+VE8Vn_wgvy1I|YTr1Jtx zMmaFHE?c|_2v=vaFDT(;30H5JFRcrK^a7=(U!KUo#m@^`j&qv-`9Fa3>2TT6Y}wBM ztp+Cw2|?);Z*1{uz$3wcw~7$0eu~iUaB26qvomoJ76!0K1w}~<%MqJs!NY)sk^HMN zR*F@A4WK?Qr8xlWK)T0w>m99Qf~i~LV+(|n@OIQP^5HkdRdaj_w9fTD z;Au||H-K|W41tu;%Q83dY{d@tg-~&_mJ8fTBwb1$Vm7^{H@m~ZkMl|;_Fa^YAc(l4 zX+d!jmQqs#QP~$=Hk$q#4PT z9O45$nN7(lYu)$QdN!sUFNZ9}p-QgNPw6V@gQrx$1ZtGD6>m{HxW9TyP|whGgMSD@*X>340PZ|Z zMH$N>i#$o_PM$4k5hE$QTgBU`bDQa^*abSD#Q86={maC;@7FbVd+0X9TW;~$(>lfl zTTrfi<`$mEQ@UsTCMl^B`>|^eC);bi*F^uT$N!#-8_q0a$?UBvkjSY@NGgH;e* z(_c8?vE?c_9eiUhvIaFjNhjxnq}d+*N@Jd=}Mv}3PONY)7O#(&{D0hL|Z3_vlfGT8*DV1tugc~81;n2$C6{=ufKQj1{6t)WIb5Q6V?=m zsDI>q>$`+F&1Wf;P9Tf@C-1Qc*TGxKv6hN}pa%wl^|?ouR+?}3PRQX~4g@29k0z%M z$x}0D;5_FxYLQV=HUQt2#Eo5PxlQ=>hhJIM$<)C{iXU2kE@kcLYJpND*Pz-q@>8O! zLn@C@T1eFH#UgNR3eBKAWrSi;)urV5%q)zvs>h)DCUD4WQ4lpNwS#zr&a5IDROZJG zENXopLt*@JR_TKxXRIV-H5GltUxB39Q3@E5B61y%orVh;+5;uGRkC#==*1gQ2XB$O z*^G7Pl~&^n|J9rv?Xnz%y!mFU;qZh$4+mcePx-Ul`CYd{AL`-j`;43Nwq5Oo^ik#_ zYknFM%8RI#9@O9OFKUlG_HXl|!rpSh45$e`si9Id%$FW{2ShWkqVe>yM@_?xrtHzE~XO$She^qpxjzegQ$)7<< z7c{M84pxm~+#n`d2lms5|C_w0=f5RRyPV#pp+h@YK%Kgdv~%l~Ix*db%LSb~3TA^i zt`FyD~wWin@<6W^*j50-ia*DFwV7D<%#3;fyMV`(~2s~W^`XD_C(QRi~5@? z52dX0$m1tr+8egvJoW)NsS$YPWLrFCeeF=A92$3X4tWCx2z!Ouue1g@b9$K7Y9;U( zf^Q!a#zTA>nxl7xuhaw?Ce!v52|CP!)wpRk>pNR*T00c(TJN6cWBPUYP`2d~-mF+OLU8lI~c1y4SDai%2XN#MWZ&zEKmK;ED9j(LH;xDbG!3#>N)ODvh z2DdSF+n!0N|DaSLee))j9q%t%?kkQn&U4IN-xvzV;G(jSV7g=H-`?~;Gk!K&j$62F zQu{{nym!3%MfcdDsDqFb=Xi+^u&TW1ln80^7e6K_Qdg;h)h$rTJ%~e4pf9`9*-`d_ zEni78Z?TCfxD%|Sy=pH=e$o;Or}~rho3z4Jl#T(I%3Ub>^Uwz6_nT=a7jad6K6hQN zqy8pQE80&1G_vn+Er)ijGGkn|S|49;;j50u_B^z|mtGB9YrHmqZ=Y&%ZSSCmW7=o+{#`veQmJxV3f$f?2=;htA zAts1gQkp{JfWxjbetC-Rn`E%Rxcq1Nz1>e2%IH;qj^xIbO6+|KLM`GVMWaIUf`=Z` zLfmAjriJDYqjg6a8!^W}hC3!lU-uSZlel#?EnT4Gq#QN9y-!dr5|EJOic4eI>asC3 zm&eK}F82K+x7DSyV&FPi(Vax5r2Vfjh>x`qRLIYio{nb>DI?I88Dk#elP)t-b!DAVzPR1QKJ zMdOW|pBAs6pRxMj zymzbP3+Xyr(F?M^o-JXq7%KPvGXuN%}byM_hgH^K2pf9DT%Smy@)~m`H zazVeN!}(XsM7q)$DSsDzS-6-e^G$r$JeBQsOPcCjG)Q8HU0mb6Rlwne3kUHGB#A@Z zbICxDj8gTz)jps^0LbnG&hCz4vaiM4-(K-*a!z3~)1U9^e)`l6eRLQwD&}?w;&0_L zPIhw&Tu701>RINH=nmU*@dWB`TNONr%^{)Sl+?9@>$e|RT~9f^uF2y>EzL_!>3PUQ zm*W_VMU<19=-iKf#1^dg%Xn&6%egq0(f1wiZ!ljtToAe?0$*3Xf7U&;?#K~5SaXoO zLWm3OX+E)c^quE%2>gX*7VvENd|vlej|onDE;l^kC3zFp8mtN?eC<5Q)SPX8KRIUz z?KI_9E^e4Rflu8GEsE}L4cVjF#l9~L_fA5+kYk3a5GK0m#i!GLc}Vz=Kfhv{>Dce{ zaqW5Y#9?}qL-ANJB`b`63@m_@ecNv^>8PJcdk9g8l5>;t5&Ow~SNK!IyS9KN1gU~z zYk+6Ep{6^S_5dEgkvYEBPtTwbIlg0828LA0fJO>NX*TAJ=2ZjIy#K|Yn(1BfA1&XjV(E$*premcw`o0;t8<68($I14zs7D5B31P#W9DZN(cru^ zU8dnspASWyA?? z+(cX|;tiR4nmeytDe__#shoYx?AbvQj6qNLZaJbC12%)9)imcM+>AeXy0<|Zk_^HrBH3D%4SpWkIVmIhnVK+W;o_ivdyr+HZ{bZ+Pm@tol;<$P zadqWEA9wZgsscd~C|xIX2}3zK_FTLT;jkaRq$=i9FAR};rAk?c9aG48)x!zj4{YNRd#alESCMa)w*KFpgs$xyrm<&1BEbRWb00yM6;nC!ZV} zjYJG_>>kOyZ1#~i#eBKEc-5=eLe?#PIEnWgl`ip|l0XlW`~uG3y3}*PqTxfLNB?0J zvRb;(uy@s5=yxN4hgx9BdV)v4_VjMS3`t2iBf$)z#yj{&wH9EczH=&j;Ln6w~fflX^65xZ^}?| z>aEzaL3R9sC?I|P$ztJ!(}OkgEUrO6G|i$D9?IuMAk3n&ydi(2HreOsRWCx9{VpLh7}47$t#cp9aLAJk3`p9u3ZRFPZ$3Yx9D{|Xcc^C zV*mp$iZ~aD0nc#fwozWxXjODCeGN;X9ndVN-YB4dM~3dY!q6)|)yPYz-B}%Cyt!`D zR-DP21G9`*&1VMt-Ph`-CQN_Fl=r?()pytm_ZQ z`4sxnZVb1#sF~?J)8tL>du*B|)slBdj%G?uq=GgEyIQ8bMM1^cQhyY4$3BsS+R+av zzP{Sf4wgXW(0t)jgSgcR*eRc8Zjy&?n&X65!Lj6I~#C@ z_iM<8FGVo-?={kaF$OUa+KEayHW??32JLz9h+RnlbY)e3DH*CcJ@FOJyWR4pe&U0u zZP@N>E?>)ptF`Jc|GoRg2pI~?Zcr&I0tZ-#dwhX_Z%>YHQwy-UXdl!-GSfosVg_y2}+>?rw z*TYJ<5gJ$-?gG`Jcn$vJl*EVsYx+RG-eSrsF*g`f>BPXmZhEVb*m&*dr|VM-zOSak zUt{)@wo@&d0&d^T9418t7*JIFssm<(xWAQJ@aFBL*UMYkpCP70(8*su`b|=%+HUxl7^{x{O&b#a(UQ(FZft^ zPv|`4$y8}hyLcOLHGx&ibidG={Co);Q1;f3)L-g0f^3`;ZnZU&?Gvb$3^V#^(TdAb z=6E(BxfU1iQ?@`K+i5CH;BPLeC_`>x;a6|SAq(b66eC&%Iq}Fdi4xH8ahYAR76R3& z_L`u*X%0eSMOlXt`=L4XoDVQ~@L7BB%4q;@&T1i^J`_i)(eWs>iwp zgbPVpdir7_I;@fZ>1B1(ggrTO#v&3rWGm)(V?vlaruUzn(|5c?8*VPTe_zAV8-Mw0 zZcNWwtU}iAkdeiht#^BZ#%Y8}d?!!>P>$(^q+tLk18%>*&O1G8%!ibzo-3-itQrfG z=WoGct`j@7b#%mS}%GwAOcR}Bs zv##qX2eX*^M%LM*-uaF@oJ_MHBD0@LO}(L~dLY^lAP)`TNco+Ff-uhProHaGc9=R@l(j3u{Ry6T!bh65|j?53`F$egCyMd*>So~TkXgEsnq`bJ5{#$0lhPsM75ou6PByC0rz9plF{!ljN^o+eP`R%dFA`MAct???zTVBI z2P`)|vq^@Ju-@s?-t zQ-rdWiGDe+d~hJ5i_P~{@5T{HrUX54gkmewYnhgs052WvS4GJ%GK!?ea{W3@q*{|B zd&pBeAC+Qaz0q^)(cnYW+Sebv1V%Asa|)iWIqg?#xqRNmpSJxgUpE)rPg@_=J(r!{ zFM*7F0-te0gKJ%T7cH)p8aVf0xt>=q*b13$R_z1W>^~T?+;(Z!J*S46bff++7D2s^ zn!V@?Qqzu7OG_BPRw ztyR_P&X)1qSk*7U4MW;mVh@F@+dd7D>@)jY{W3cGnAXw0+l>v-b;xE>XbSRdJ!y867HMLmx_HNE`i@? zRRdQ>Lq%%tUKo}nuZ>*R3L1crR0HxlNQ*vc_ubSxAOj)wQ4xj~6v)!C^$Ml!)GTjP zb3j%R?|+M%O=7!f*rzFXag$u{H$s36U9G^D9M5Z~%aJK|QF`r>H^8E>oDYxs9TmX{ zWWck%054gO>@*J3#73Yo!+Flied}=j$xf@Kf_}_U}sd4giVm2SRFw#uP5?J zKOO@Q$_b_=f!VA?_(FeSt}RmVSPbLQgpqPWC;D{QSAjL@YkP9ITR5funqXla^`~3P zMFYJ;GZ)X01^>SJaU&QvY^Lwzq>}?cn%JoG5Pf5v87X7x@|lW8e^Sw_ZRQ-fx%S@I zY_ezgDJjR~BR}OhZC2uOtNMI%^}+bQZ~G~DI_p9h2zdcg-ne@Sc-lEhn6hrB4umXn zy4`1Md8>M3Zn7k3NU%(&?6|V9qKoPig7lIPiQ1KB}J#(EeGS+CN_stO_Ij>uf}Tf@K_{xX71aWhAKUr zIB635X{;-2!@lDo=X?Vnx~p$lhwlbY5pN;^a8n2-K*XHjo4_fcxDsOXjG|ZQIDA&V zF?Q3$)E^WOWO3)Rf4rE6A-2UzzIMVL$1Kao^0n7HRfZ=M*!Myl%`;NoB7Z7>vkmhC zonK%)IEqafED7O%wYps_ZfyIkJcuW&V245Y%c3WNuU;!SgEDT}BDA1%1bkD2L-wqo z5+u^+d2`0V+=}S%3N3|`>I*TEXcF)Jpj`NlV3Gzb>tHA)q)ZPO$n|;#L-!VcGWdS z40eB^k+do5n;ZU|6Eag_vz? z9yq5N1rwWDi5v-k5v#qCubAjzZ--GXOrvx(OZ%v76N;;$P@5SqRvDRWi*Zo@`D<_~ zvlvzAcQVSRPDo>sbZJQtbbBly}d>|N`+g1RY7 zpla4l6ba1cke>?zxNb(yl}!E@hdjLAr|_3;cZ6~*yB^cI1Y%SQ{Qk|pZ>~F!NL{|| z;yClit10Ut88)75E=1gw6&dLRqAsyY5D_%Xbq7goX0+QZN#@))oR6o-D0s?J&OS|@ zzo;T{&PMDo>rPnd#ip#PoEBN9SCT2ASNO?O_UY~=n{rm$7wXGNwCei*AOttB_EPAT zTs)PI-ezQlI{0XDFvhd z_}D7=r+%VjCX9L+CB@1*PO=}>3@s}sI3V3x7s{SndN<%&kQ!X|bVEQXhpNbmbU=Wc zMvZ#1AVpU@>j60mQJzZrrArgi;-H&`Vz&4_y>zaINH)`A4NtpE*=|rg z!?(`TrHv?&HN_(!0%7ax!uIdi6PBw{B{X(}s->eNnk%6|^zYyGYYd~gA|QUiPc3)H z_SQBwzy2ji0XksDeDeMJc<#D-cFFWPt-ZjsK=#x3MA|LZ?M7YdyoIaPxlpld*7n`J zAO>NF&otPKBL|yWSYv5}B>@|?W^!-WxG<73qT<8Deygpvx>B!mUWlfC!MvA;Z&z@E z&q#OpNxJ_3(e#Z0k+$*Pxi)Uzyqj&iHf-KB8JmsC*0#Ae+qNg$*lc^U&3B%2-t%#0 z?r(G5fBbX>iAes&wX%n-+vCQbk|DA-x1!E$F|X|!41K9_TuN3+ov^40IMUu!z3IA$VOZdsXLv3s~+sdzb0FdP)?sQhsZ!Zmv*8QLgGV4=HPAB_ew?cLAzw9@R+KcC8n6K&L z0ULCVipwoL2=^<|INk_&K_LI7WXUtVWJO}mlC%jMu>&UF$#8jQ5XL?hQR%DJE0^QU z=ahoBP@ERgCjo(!nor-$&Q{7Ay5&I;NhWYLSn2rE>HRO+gHNe-nJ7BB`276xi#Yy zGI9R=%3Nf_y$T8KFl{ynv^)mK8PnI7a}42)(OG_>_`4ZL-3P~O>yC(0_-|qokmk-c zzXzgp7Wkyx0qN4FRvz!XC?P|CPnFZK&hwGq%^%>=RCIrshVJT3)=z2aL1sW?$P9>1 z8U0%F>+(RxAMBytk4y(R)r1+Z#f4hpR0+5#F+?%6OOcnQUEGh^OwN$N#F@x2+HO^Z zlZ*eEArTL3Gu>P^Nw|vM+$XrY_ixwJ8H~8DyBRqHk1vb9@Fgdn(`8B`R_ajAOTPGL zbto3xS7>ctm$!|h^}GmqQ7PlNl^C5RXl$#CMzaVHAEZ(+-k*bA+&&d~$II}!=|Z?C z?anzXjvo>Zg(UJ`bf1yE^g|X8i>dm&+2YBqrOXFIYip>=AW#Sh1adf?@Nzh~9sK_f z7!REfy1l2{_Za*6eEiS0vfPNs(|*u3xV`x9bGp)j0iq)E)Pt87#CBz3_W%aMd)R-Be_V)NK9Y?3ZMYU!HJ^LnuP&I?x$zs_Y_ zKKQ+p!2r}UkVO8}5DQa832I+ys|+32SJmn0mujl8>hhEqO)pkFuAoyR)hUZ;o4xG# zV_sOE-B5W*1AH|N>*w2>n3ElzxCA-3_l5a!&);bGW?;4ZUkUn2d>^@C+%^WIpyTd* zz5SBYxmRF>8gr7)TmRWD&geBh(^~Eh3HaoeM!S=vMPQ)^cvAP_o{&jx7hp7KlB71A zPzo{a-Jt5RS@DT!)a373*8*hOJs3sRmcjadpt|v)+m4ae*evF5OL&yn9Et@3ssRJ;IKt&1;7+UyBXZ6;qf3d9l$HD6us(F&$Dx$HVyBFN)@qRk0$s+7yw5%!J+!0ffdA~?$>wx~*!9G& zZUkD}J)zb?2j0-`5E!N}tkSG6k4gmF;MBVarM|({KSA?H6eGN}Sf!GbL?Smad=Gd7 zq&Kc~)R7N~wWTbBfSKcx9R0ssOI|f`WoJ#kj_2o%TLQ%HHIv#lEU;djI|mf;S%|)( zcP@WsGF!C9b{ClBYlDJ+r~0zs|7J#%Z?N7A)AAlQlL7OHIp>#8>3DSi6)MzT$K2P(`aaSZuE z@K*fd9ZNrT-h96aH32tAtCJVuN^A296%;DN4y38OaSg`3CLOui&2&O_nuRiPiClgx zDanY`lS>)Q5yKbD$3NrD3ux>s*+!H>gge0(mgn5tg-$0iIxYAm$^-3)A}!g^Q6hV_ zYC{ENT;NgUly_9AP&L3;9Fw&?FdTg}i|15etjbDA9&)*PL?W)4Ih4!oJeOd06N5`!7Dce0Y{T+PmXEI+Rl#7yvjC*G<-EwWhHCn zo>O>L*TiDts#Ua^X9C`)LK(W+*W9he-$+--ap2ZZ(&LZDw0iGcgU~*`M@q`HRRj{N zxSZ?E`;NIqoMQ#xJv-*s6%@>eKc`e~#Ah80;cslFXsn0j9j_`rGLwkYyO>MTND;Q& znz(yr&1aDdfPahk_OlCT42ZGO{7tzjE4muM5;Z zxqT4ek?038Gx)r|b%oh`4L$7IXSo9*+X&}j-q8rQ(stG^hE3C#pel06khtMR+8wWy zwf4U!((^V}`Z9C#nVY!lEeJANeuWb4$xZfQw)5@N`1SC9av%ps>(-2z)7lKDQg`+h z+7-Rqc5My)>%^658>G(|R%W___eW-$B3M;5<=pm2Yzp!D}2w|U$%w=cY!U!C%> zvILY$+fbl-9iOaUC9Y|}!WsFP=qb2$LWg{XzWm9|^!@L1oquCJ(K4QTr05k5L&Hy< zlp92VVtfQFj}Kvt6RTn#5UDdT&z3xzbR*u%gY<*)Hjnlr&q5>n_o~DM%gsKnib|>IKaJ}=9YTTrr0gcnq=7)_ ze!UFSxev{^q+(ly@WwJjS)pdRthYvTLtgE+m9r<4m;>^te|%Pq80+E}pqxN6Gw& zn^6b&qr|BfV=p%mI%~gHkyaf%=d}3HA^`??h`4qnjxESH*c_HL#?G&zxhDwJ3x*4_ zRs4qc!urciI2{_@3Gg!I$eq?2f6SO_uEnXAQeP(pvfJM6C&k&rf2qZJn#lIfCJ_VI zH|=%uwq-DN)Lk2Q7;h#z2MQrPJ>Sfh{lYrA{H-aq^i58u8csKgSow<2lSZAZU2>2+ zZs@EG=W1>6J6jSUX^TlW+ZSbKPYadM8S_6>JJm$o8undq6Hsh;wDko+j6@2rdvO$& zUeBEL96XBgH*r>CXao2q z5Iztm6G8)p8AD9jZks+TZ(3`E<%ok@@TfzAAV%OMH%ymp_q32u10x_fhtqTn%84%_ z_fyoCV{x%x-PdaM*x3!`Ud8K1MfS=n$T{W+;^S>l1on}i{cUj6I}4;8D&T9taH3su zDb)$)%N>VKeNYvaXiPipvD_v@)l2R(Zxky;wc0zNJO+GqkqToO%zJ-q8o;WH#}Y2Q zS6Dt!nprLDG?I$2Mtj;Zjhc?3#%SLuJqvnY$B<1;>Y(1Ss_Y9N3e~jxf-(ap8)`4C zHB*$Zr80(N?RZ7wy@|T$S=f9AqPD_Vq+RA3Jkzzm>52R?pU7CYvxIbK+ULE#m>p~k zq4sqnRL_9f?-;_7T~B-Yt4#m3B*|h$p`eSm^NRtpw+;Kf`-7Y@#YJKd61$eO$|bKu zytb5INCeE{uI-3V=^bC3y&E}~2krJXS&IuI?~(0e>;<7@&7%hSlGByA%=& z>}60!@_w26MN4L2c%xS9OzAd$pqvHhpdh0QyNdjcl9zq1g<3IC{GN3+AQ2|K1q0i6 z`|>NqnLQMzpW%f$S<7D+l}*+$z3sA{g(B;^WO(JS))2v=Rd-?|&9b~Dr%2sRW~#!# zI=%c86VZ^A4xlM`@HM)qI|lY;U701dvP%)KN=JZP>=K71Ux-3TKR3Y+HCJUz+$YY-YzjGTo<741R)kKzL4zLldbt4ZHprK_ z#$zXqy4s|cam1u;fsQI(Gy|!wE_siCCEvR zL~sJlaI$)JEXl-C8Cz`HQ5IH%EGs*qC*CNM+{hej(zkssI}_*FaCFpk0GP)=+hUX?{*D8O){60&qLz-uwVlMG1ULY1dK0dY>x_FXPZ4_}n-zRX%K)}$!b4?{)bVM% zxoakq3QiEIXOdLU`Wr%Cr81;J?8k1ZDZI+tR>D|Ld{$9g(%_`!IL>etu=@Q$M;B(v z4UK!_+0Sq{`;}rlz3uVOd!On^6@f6B+&1raxi6oOu4h*~BwsG> zY@mT&qRD3%I;K!5Z`eUIfo6){WiNW$j8y;Z)7mSp%Zy$_Z?o(}vY{Mw{&^53E&NES zWVi>%RWd-i)C<`bWA*Ya*?~__{ju6KiP>lSX`2=Z{0(}j&VI^JzgcK11q-3@k!kPI z2ZC$le;ZUFZzCQn6t(^Xah|J>7dw@V;C>Ju`B6IKZp+YN?|y%Ipx>(o7$~1>4I9!p zhX^inDjCRv~ zac0YfizfvRuV)A8UXL-lutlyJx}qRK4;dnFIbs?}>uwiAjywIT{}oL9FPXeoIOkmt zyZ>80t;;#?)o+BuhKQ_h{^)k8wO8>^$;7oq z5v`T$N5>=zb#dN^BmV5AQ^Bw^vN@-v7S^OGZ6vU~+~zHvY8nl<&QH2gq-_3WOyyrR zuE%h!`RbjzY@aLEh}eDOmDPhrf;2I!;`>4w_Of%S0!{!F!ePX6=JP6{{3VRm_TEGX zJLUoBoZX27>VN=}!7rKwZZ>%Fw(eE`#FAYZVwlVF8n|+Yo^df@y1p!fT5f~xPGXjx z%wE3ZXH<67=uUI6x{e{RCMNSUyq@0yn4q@z;HN6F=y3`rIA&j(F>!2i=DKlQjQY`Z zX#>OJO(1@tag$JsvIGQhLw5^z>aWFMXJm}g;TN9qIU~W`wK(GY-2H6JpzR3S^S~gy zWwhX}awQxP3kpM^cC)qonuLomyGH?Q@;O{iHTjWgBtd~!4tOG}U~b44T<%i^SnuCX zc3gb*YEM!KRi@sqJR_v87-renH45Sh$TXbDReNi;7qJu|^G^Uzu{5C}} zk_YJ?;;T6xFg2P^P4|W6Ew#IjLBIdrx4k2Aciuyw^R71p!^QKg3rIW8_T2lGu-g?% zRK41^o(CC^#MG<@uG%0A_+-X^3wVd}HiTFFRUt~!pn5pfv(EeMbC5eL~cbN&SU_$U?LS^#7(fdbZ;69K(U z2%gy9dFDoJ@8XKc+w*6wvo=>xNEptbiYiu00s{NEO-oj`Em*1emep-FV3Z>nD0!Wu z%HiHg#kCz@BZIDb9KoO$_eg)6-TgGDD{WnbOeV{rVswq$!)G@sRt~)ir%Sh&e|ndX zW1{YQaxRfWONo}0%nIMF3S72=dDja! zNc_D21E)uELf$uvws&tEa{G}M-rkft(Fp=1_E|A-4{G%9CW$lQ`9PR(`p-MSCDIi# zg$rr0j6R7_3PqLfZv|EKe_C5(d$vz`voz%~66lT%F%=avLFR=P#jmk}-?0f8&ho6> zba<+M(CvaOWn(jf3K^kjLKaHt2JCRP+sw?_M>tptp5(~pLh|ZdN1+#k?=;ojwS56q z85Q%@!&r#wwv~mzaPK&tPUAv8{jEfss^8^0@MX6oe{&^}5yNOZzT;kwWEkW{UIHD2 z8RXH(kK9-XTglOZ3yGJXa0aowvN-<)yS*8aSMfgEDDy>M-11YkUY%8$%Qo|m_u>_l zGIAyrUpL;*wGKY~*l4-u)M%@DDyr`Jk6%2F)wsVSaMn87XAz2wg7~Ac$=rGDHr{9f zjuD$;K~rqop3k_tLed7o#T5t~M} zpjj_@_~81eiY5)^AV&rUr>8k=$)Z4szs;8<_)gb~JN}=XYsN~M%>gWZNPRw+;pC}e zqazBq*xL#p*G*nD#M~v3eo)R9qWvi|{9@K*?SG<1a^CHs`?mCn^1g`@joaAvKDnsa z_n;;vkN_O(EBOe!y0$X~Y{uaGf)lZ=6x#+cuV*Ndcv^pn-`43Da4K?sTCs21vH2u0 zW^?A=0qBaObDEJDit`3frWjlXX>zY#P5)|;Qq)JA=bH~?L{I)J7{6_Z`B0-F;sNOK zm@AC>a=>Znhs8Mg95Rw*#PvDy4-7EzL(sy(5<-UIb56x&N~OZmpdL@7REMkRf(Q}Y zZ7voyqg81q;<@9!=*XD-T(0?wp|3{$ciov77~(7S>VJIs(7vp5h)OB_b>zezYpTc# zApc_H29%UW=ZkM;k84n=Iw)7C$?pYfFsPC!RA}ZXbQZ>3hHYk2lsCpUB=a-nRS*~| z2iu?a_2!SX=b0Bi>pEuBr`!uwaXeHmXcWnYbQH;| zMIg@nQPTXhE#`RH7myI5f-;PGAl=Nz^C0XW~LWP9qHnq8#tbHy~n>;9X^!M z;+DX#9L&n;M{pQ?^ew#xHW^OcPn&PffL=@o+ zU2jPtETbKSWpt&rwX@qg5o`kDcVJ?M)vtt9l)MPj_e&5@)T$ ztq8jT2&x$=w79W$vO@5gbfyGh{q~CRx~B4HP_zL>c2Rw~(4I{~-p9>yj}gj<9j^LQ z5I`^0$Ffb!ednttLsVzE(3e1m5{HIVURV2D3p2xC z@(Y(uj^!VN%yD1Qca|xKH#rbfkwr3JDsV_jB^7kWCdGYZ0v zs9J7nC#g~s0pxeqWRMvdKC$r^$HQ~##mcu^$>MNT!|{Fd5lZuAz&72su6%cV`5qkz z#5RIHwlYQ5=1IK|&!m5yC$Gvds(2H}aa8`B&Y_&JCtequSBBj3T16>+x~br+0UGU& zk_L0swl~tf>ngCp{WjOhHJ4H?j{#vwABTOze8z?nk}I3nqL^$5r>5vaNdq~^P2Vtq zL<9`VDK+3T;wBb%-3t-^?0pK?HI;TJ{$MZUh*qtAYr|y=!y>|Q|CyjCTP5h5Wa=yY zPwNP<+vu#G-lt#ol-3x(NnOjS4+RO(ZmE9N;C)f*Lb==8zGFxCJU>c1x%^}OswFll z2o%YBn(}ho+tM6iKO8Ooj~l8oeu$c94`NO$vh3A^VDU$@=Ai$S9TRdd8k1W}en(!H z!$A+tCr!Fuc;)LaAeplAWPlg?*5INaLDk1Ci@4UAVt@|pK6b{pC0H0W6wPvm&uL71 z-J4cPQ7a6IP&(V+K!Qh`c|GYIqORG7S?w@`P!{lcJplhJ^|o*PbaT{tsc6i9e!<_` z=(7iVm6<@P5ZbyaYJ+nWXyjg)U90Q6gqqj)e|1i@s4!}MRwuEs>iQ(mD}cO@9}=;; zQLV|}D~dB~)X7>L&P$<}!_rs|k6C@InkGS_35~A;#@`mW)^UtBi@AyBnX#K5y!i3l zaPMV}2wGnst)w;PMUi`9HRe)0fZP4Mi3z(0+B?~^(XPP?^XNB zb`+H&S!i8FyX2;!t`$4sy*czSrFJua0S5|M{Q1uII^nAGU7kQz2|lW=hoW ztG`-~Ah5}2!sv2HtyQI4bAy%5_~Kp@9gep}6BztS;>a7eB_nshlKjGbV>}L)gYFU;S#erD59rF8E#dCdU+SOSGajhTZZE(xo?iC@htGP!S|JygyB%^PZct4 zk$ZR0CbLq8H}Z(Kcs~Fa{jCl$7K677hhOr9&bSZS1x)~H-v>ls4%WM8-y9jL$n zV9*FOBdrt+@4QBC02f|sXz59N{O+n4k9+>%rL6CWP}-AgS}SH)cPmujXTPlb8LVu- z$7Pz*qP}V_biXZrp`Keecccy2U@Qr97Hd%@VywTSK9cHevCKpz@NxmKRm~W3aKIs5J`@|-@F8_U2EA7y!Tb7u+*G)!ENyu zO9%QvnJo6f%OnlU(XL&%N?BYVdPqALjoUD!`WQery@V#I=zeNoA1h$*{C0?G#GFfdDhE^1|g9qn8Qt@?#AIkSeUl1-hcVIZI9n{p@n1S?Pe)cO?SCL5&>FzoA zbf2l7K1ia5?OkfhO)8yKdb~x`=&`czC*tb+s%JNCl2q0&CZFDielYR6<6RA;xRGGU z;Cq-Z6}(168#oeMdo0nxEwYH~=N{sqMALO->?gAahxD;-XK59lJda`~ecR3ARr3*I z`~SiZ)=`M8vs-YBSucaK?nJapkn8fCI$S=fdEZct(8DmwYku&;aV8WKPcA+dBnga8 z@8=2JRMoCtx*zA^dgp_?@sODE5zwY-z3s@tC!^Lscs5ZfMzX`%0;j#Ip6Wuobv z2QS&oMv?mBb?&dN9-6ag)0^3nVjof@aE7f{n1TAdPM3-_nULUe|A%in_!AM{p+@=0;ONdPhbeu1MKLoR)nF;4FAg@=v(KFMZj-dV$;1(iw3mal;%zim@Rz2u6Eq!p9s<5s}&yz67r zUx>o<5je$Q;Q6-lq9lBYzr=rE-+a`%o-C6Gk;jn;y+2|+b=LM|PdQHWyxeB^9o_&l(+{csk$5%G7py|4$20v(mA- ziXvz3Vh-BD^8MCijntYC#Dfj^gul)4XD=%=xnYJguXqtqWQ1Z9rBQGGX7$xcHVpf_ zZJ!l!yHBwc=eV#ApVpntp%GsGd2gP%e5?XYNhw;bQg{ODifM4gzwvXR{{tM_N;#72 zXYDE4)$;|w!l1&RQPb~FIJI|jZG%UW2$fQ`>l*Y;9eNQx?T+)<)se?GT9+;RGaEVc z3ISFOsPN2rIXb7QK z)x||$js~10tySo~K0?#?3aPL^AQhHG%CV(Y1!NjQtD43~u;yMX`NiM06>l+(W=Zmf@1=%XahSbSv9HC~t(B?I&l+dpu|WjW_1XRpF5a6c)?mI#SBQa8QsKw13} zcUgT`HaOg<&I>PfavrXCy7;Z}r+;eOT)Hfno@62KO3$cpgh3bnRv2&6$ERO?={$bp z&Q9rIXQNY>4@ZkZ5^cIsGJGHbJtW4MnhvQY8I}4lb4rM&`K_oKf`vYlaAbi9$Znj3pK0KQNGGgIe zbKO{`62+pVDp?2XK6E42Yep9rb}Q9-p-$}H9pWzJ+`sn=;IGi!3;p9zcyo!> zdzSrj(jbDBrISCd;#^|ighu~Mdi^H)i!}QJGyE3BZBhFlFBSV`I7;ywHDGW@wCy^Y z4Bk_N!H@MDc#J&VJ!gVgb@`6g_#i`jWwud))ecG_Q#cIr=E@l@bC$L~TY6PPHwW9I zF(^69>*>BKFz zoD3bq#Jp`w+{G33vKuY`*`K(_3r$F9<59yfKqu-V{>8e z7esM6LcLs|34LwrUgU(||0N9I&W=?_5i-XCTHwkzdGk-aj*;~qY(AykL^}m#QR%s1 z>pT4mwu@K4S|aHR^1*nct`gxSZ$s2;xvhN}l1&pE;{+U_way%^1id(XAo}8wz4aOV zvmO0y*J_5{c2DY_Mb+kcw36(LXXm@CVGO|x4p8KB94HqIp4xRc7&yo%YZHMBn$YTMB4Kilc)*(A$0zCl{NvcA%YAxmeaAn;)l3^b z5;c>*$~MZ^82x@`X#1nr!jRT<#ua^^H$D6@P1!1$0KC%~ zg7Q!kCLGPp-)YO;Jf+|UdgOYWJQQj%YvU()pC{(VxZWPgWv-?|IMsFP}~0`!XL5E@cym-aTP9`>EDqW zxCCAK)4mHfqEJ^Rov$bbBN-QQ%?4(4Pje`qX38aA@h+sWEk9DJThF0P>fg^SKD63j4=CEx{D_3@kr>G%6^MBU*1&t&MOfPBaPmx+5MAF&mKyh?hqmuVo{Hb%F)@jgpH`zqO=1-u zhjBO|W#@$g=~0)Sb3Uz^4eOw5^d<)t7h(35zS(0{Ae;86VA4R4Y$ox@BZUt=Lm%C- zhp!Jl_B+U`&eh{Ugb+j9?-HS@1HUe?9Mmc72S}JF&3Kuy?;c$AB|CPJe&$DQrEGo2 zt!}mGc$+I04uD+6XSW92n!6#Ng{Z#a*PUM99bKn$q7Uk)NS7dG7EQaLV;1{yH~Yg* z@O>o4z zw#NpgQIdl9%!a;9t@bqnxfV|qdZSaxy_9a;)oo4295iH=;1ymu?vA{Rk`U;KRMoUH z(O>rFDnRLS-yrBEKrZfZ$=PJq>h&PXi$dkcW#mBuA0VXElu z?X;~EB~pei2^VH}`Jl*+O>ez^;sD>54Z|QN+i|G4Ar6{FvzHG#hDG9(Io{*bDw5?q zH0ia53_h&AoI??!)@=9N&nhGK(-d))4|)O3#OR?Mv1IW+$42b1o;lX;g_4}w?=rqO zqopONQpG6+TE%P1Pnm&V{12IDa;FLyEHxL9zOX<~5||=0HK~7!mvJDzsxuWxn6fuM z5RSKAr(B)S_GMOxnXLrv{k;+TLjNCR)!xD(-)OEylD|& zb;;nj4JcwfvHJLAUF=-~z6munz8$CowEx~R7|CjO!Mw_0`-wHVxiIGl=1*ie$jFcU zbt9MGtHW=h-%$H=zWdKxA{UNsz=`xYmzqfEyQ{b(*?|H~3kIK8?_KcmagLQ-rB(MQ z12t6%zRc_5hwAH_2&rsjmGP1}Y77tZtGE7~(*(KB?5il9tU4Q;Er+M;R65^izj<7> zvxCV8R|cfd zFLx?t4c7Mp<}CF>aSxjeB@-dhDwrj`6H!Uv*&0GR9oEFW_R5KgR4Q*B0;lPLUE!$w zFsny2L>YlKsnH|Pnx*T7>{fOoPY=bO!E@JyQXqHwrh2IkJl>TQ-=Kt-t>oG@>i`;s z+2O`pDT_1_^zgdN4HQy^%cqd7npRnz8%b0kJ!`F^)doUd zlmikHWu(P;&T$P5U&CAyabf+i9sli1J?j0#{%Irv@X!30d2$O+Ehc+B$KGokwWww+ zt@RmTv3m$8onYy%h}APBOT&;^c&DtvuSYXywbqv^qB*YNIitRCE)PnYs^kx+phx;O z4Ki&#&~z+{Hl8+5tqSrtssAOfFME~4AwDn$P9j?_v14^A&lkS?{vnt>5;k&b!i_&*JSF z7euvpW4F;<@Tw%_j5x9J?zcPa^4*2Vd4Kxg0Pnngmsc@cxc)z`z>MGL8TDMylQ=zH z=YM=5BzkRry#}w(0#{plWSx}4ECLxB$%2P@rKc-FebrA!#J*>neGp~9Y<2MGp*ENx?nkGlAab9#vjfBBUym6yI?ON!wGm4gT{Ibn5{@3U`dE?^5K^BRKh!yq* zZmC@Swx7|5N;(k;=h-)q%XKNEU_T$>w}!LYNJ{)j3;IwAj&3JsRK9`IPW5_k@nw)Z~HL}&L4Zq*()4qo% z2TErtFB_W2uaXfIS=97W9u+Xz@bP@kq{{p1KoB8ed%hyNQvRnQ7{^!{CoYsh*nLg_ zB=4xI_aotu+!nCXVT5emh{RdE2cuByPdBHSmDD-oQyF26WPG+#e`u?EuhRkXY7R3& z{SIY#(!qD68f^kKHV{Z?rOfiqhf6NL*H$c*)WRP#oUi9ysHCfuB!-E^U`{vZpS+Di z?z9*C);J$>sS|Iui@X^0G~{SSXF%*%=k#8nuJ&gkWX+wfG9s%OHxv?PO-rqns9yQe zcb|yRp37u;)|B~cVDQMM;7WkX_>TcRVD+W$iO=8<$L6iRe6{;-;2J~(G`fwyo%q7y z)7JHmV{&U+pF&S$nXfte1PaT%Z@2T`!sT@hv*)LS! zwF{08mgMYE&g@|hu&vZ0Z^z>V1GvBj=wIB=;x#IW=@}c7CU$_XqzEb!!CAly3tSK8lB7cIv$InmS8=`48aW3=8BIl@@g$kr@!=?OF>* zCccSa|1Fb{EbJCtDDj7R2l-8wdY1&@MrF2KYNV`=hJMzABhP_1Y${?AXvbT*av%q1o0{Ri7y^1jkIJ%7)>0QA&jG z1ac*PPuL7*b`+_sR+Krk?oCAB504c2QJVYh`O!kmH@$?_s-BV5vT12u@L;~mdO_x1 z>GzB8H)a#Gmh4?+RR+q#ScK9kSWJ@#JRWaK6n9z750ZvS_*mWZG9# zUWFc(OgCgM2ifwUM6nE{`n@Y=ym)=IXA?mLLnOXW4B6l9aAU|`U{6~=G#npWYt^T7 z7$W|2N(o%>{+~;4OrD6y+!0JN?4ICs_+>d*7mQ0B651)S+?e~qyPgT)oF-6Bx%V)CHY!#Rgk@Yo39dM!x=gcOGL+W*s_zI2 zgFCOp_-y+u*w4t>X#|b@Sr3}5K*zE}t{%I9vJv~1RGG~@%n04IaD-E7z^3glb_lGD zz@QD{{2ou`4135I5fNs=CE3?kfmKUWcJ*GGX5s-P!tBx+E?y#oCLCv1?Rnq+XevH3 z-6nm+PG34cm!N5TRPUPtEe1f1^GMgHc&@#{KS zt*qvikGdXi+X);(sr<9!mf~ThlO}X>Om&2pp#$Z8Nq42)kIJt5m4DbM708r?YpUH_ zs7)9W!gxnyi_*LFMJ^WXD%>W-V4eo^Yz7?IE^tc2RLmdJuShnW%0bBs5IvL7=J`8d zEof1XH7u*McA!L?&RG}0t;jwC7mxn#Y>?R5oWWgACa^(1S<=7^J@G0)>tI>C3|G)9 zen$PXE4;jfoI;su9Xeehc6c;Ku3`3Uxgb^Y+h_F!I>nx&Ig{B#qB0Co*=k`Hz^k}` z+80s%G|}Vk-8cL4xn2;X^=RsF2{Q28f$p^WH+|Mr3A&(+>HKq}H~zbm-@Mg5Ktf;RvM{L#$1OYmiMNYsGpW<|dPKEkh4fw*ikBvJ zS2{XT_QL2}u>Q=%#4oeY31wSbSf+&A+C1o{ll3?vuKmt}+>-Ei>r35IANf+6E@SzS_TCfVFbluvK~Q+tLzLxgPHW)d#A1 z=Q*OX{cA(}dl23c7mM$ClaAoc9tH1J@x@?l2hGo_@7 z1(0`D>h$ft!--N|Zn6k<71u~0J=gqcId_2lM`|hw7%RtGy0Ph#0jo}zj|PzeD@AOk z&5*idN_4sPi|Wwa=q?S%CN0ZHUZ?W*CHaN7zY#AwQCyMBWAf6?Z}89Q39SR%p2siJqYiXhBa4})1MW$@hK-4RUa`OQ&a#SFWL{uyy^lJgK!WpyL`u|T zYv=Dqn}RW_GF?uj!uc$H#O$PM4+GAa28k4S&7=guwXAkzCDG4T6SPov>7whv_|cl1 z1^iJG&O>rbh?0w)iO&3009EQ-03&C14_c3hF3A^bONSC%SbICa)l znWsRjsJuN~LidS#`Z&0w#6!l-!9InYWxv#jWpvrZc5dY#oo^*!d!BTHvIW12zSfbm zET`pc9?~qw0yyV^GUC=cyxEAV?fS-Ib1WRf0WzNI7y0vCd}2#~3=W9NU=+k*#SUn&GWUZ3}W$(;&@QZ6gK`DE{=#NMZG&G%dH;6g|| zNfufrUp-rOCxOmj$CjlHCf}iKfpyh#NQlTY(c_l=2ToBX7~I~NOhyWB)(d%ylwxB}mZ8vPhv=gTUjU^Vbc;zx`#og)5b$n_Yr9_4QI_2ZbflgTcA6a8dFp?@)>p;7bK*^{*=VgxjsyPtlae=xCJ->VdE*p#S z`{p+*7V`Zz=MA9`^ouw{Oh?Ird^nUj=i7<46FJ_)8S_6~W^Xj*L;Q&G1^8>OB%So$ zUsOLCM>BA&ypIQENec3d*OGh!PAVmK|AS{pe!2#6hIoFxh1JI1B=j0+I zU3=ZyyBWu$+B;-7P`-7$?De01pUZUGP+{BSm)I4#U}`YRF+^k-6+xxt zTkJntN<`8M_dLx?%3YcKRp9QJdh5`3G7Y=sRrgwkM7+*{O!sk9DAJn$X<6EiW=LjE z-~Z8NR&c+MjEb^G1ZaMLGm~s^mvlGsWy~MOc`4beRwEUPS6`)Q$5H~M2DhGEQ$$oSzqHm1*ay{gii^ki%o)T+&u`nsgN zN)tom$rLGvk5d>QMI!DbWP)vF*320#HVD{n=&S0$M-5PINvQ81MQ$a?inruv!RJ+W8Xbw?B;E zXb;Y23r5fSJsI-?Er{_%4o7qU(<)5l57oBtWoWRdt*m8a0*aMHx{TK#)`Rbhr_0^h zAJ-4t+b=P~)%&___Sjwz7($2M4G{Y(Pv?184_fuJ0Bzg-5*p$h!g%1_`2^{Y%ir*# zZ43;@=iol2oeKvRgk2fJh2~(thShlltjpvx*5^$qqt*8qE?;x1%NDIbfuCN(7kRb= zcXrDe-vj%9B4Sq$#^Mra7UbH$Ehhv{yyZ5lm&*$lX+r1*?hWTVq*XL~90v6sa?2$y>n zA!$3CT2KC!y2A;kJhV!R-yAS$qsXM&`iGMhV@rPE27Q?}k}HT%`u>m~*cTpl=z*s! zIYBpXR!EY;U-9r}#a$vOn0lRLdOBR@d>_Bs8aeh$+Z00lO6JaFVHES6dB5+4GHek3 zoC&=Csbc|M0SDX78OtsuD4Lxo|Nm$@$KXh~u4~7}L=$T=vCRo4wr$(CZDV359a|mS zwr!hV?&q!VM^|;7{(Jh=-fORQ?MjtJ6`L~-H$xFTi1C7(o1=o-UL;LyQTGA<6C_Bo zBPeeBXg<}sO$_aHauM`>Mi%4rLHv?sA;=0j2t6jGf%>L4rDETk}j!cCzc` zp@Z7^zK{URZQ9GmN5j!bP?K-bZs&{@wAo%E(-M&sQ_+I=s^}_sZ zxy3%7XD+cnKmN1qk*&gmu*$o-y4sudO%EtjEcqW&1q9?jC-_{>GtuWUrZ0#oJDqG- z$7jeHy(A}h@}u^b0^Wat8sBG(3pm^i>1w67(DN(OU*2nOa+_v^c5MppRJ4P5ix>C& zY{CuJc>LeCMT?1GRgnj%01eQf=rm`6NvgU^T85=_79?>O%6)C}7bS;>>=D%QJJ0eShxk%<9b#a&UW9iokiBCb{*pRg^bf>kQ9sH)?cW zvsVJUMDIm2TfvfVk+CU(vwrq7s_G&$2xUv(eO+xu)%QCjm$%chYMz8>CnX7oi5$X1 zVVrBV--xt7QDr(wuv?HwbO#$)^6z|DpdrmfJjP{1c2tKq%WlD4$$KL|P--;h$q5xH zhEidDx%Ob+)HpFoul48IVWy#fbz;fLZ+Wf5>wwr8lp-NK-u?NwD;#2FJ-yc9(L}S% z^spk~e*R`T^nxNwMH5nqoQl^tFPbWj?ES>DS#n&S)hDXzk|J$7DSvc?wX#9DqpjBws)Qp9y0 z-wS}ysuiuH$%J*FI2b@C$!?P5@YyGnPJS2f>TW(h=H>*q_7^|Rpo>yCC($t@++U4f z^FbLnnZ>$>^rMtcx6I79@rIVJa!Rv;_p&qDSn@@6LhOObeB<8x&bxx34f`9lf|U7j zYYXLqXeusJ?R|5w(R&r{`GwH(hH1Cw>`8Cg8VE%@GbfwVTg!bl(7>t!(J5#4e=c3O z!;>RZ-1+ZdQ_6QM7tQVSw88O-+2yM~20RGKdoxlRgq2OM)B$%=ff7s2 z?)bEp+IE@^`xDj))abFM9DY1bsQgj;gZJ)VmXa3R8c-^oR&k&+u&NL>H1S%IyY%{T zo2)ND*qjYdd*+Ik5V`{+HQpy~Vmu~Dp~NKgg~{n3w>96IOQ#&Jd16^~zb1r6Y2_~R zt)fcD^^4djJ;-hqeOx8l1v6`Vq_(ZUN8MZu)E*Utep7rOZi^0vBd$0>ymz@pL9Jue z8b)wVssR?mKOKfhus*40VhbRwV*b5w5_ zWP3P2`h2rLh?W>o!aGWtO_;nOtm;FQGp%s+6LFBKyKMxcj%qN;@0iG8lt#8n!Nxeb zf>KHuz1K(YDuYViYW_yZIb$p{bC!`>#Eai*ZzW5Y%%R(fK)y*%`z_TXo?Bh_^s%b) zg71R6SgNj|qDo}~1(J_5Vtrkxf?}*yF@M^gppu!=typ@EwFE*C5rmYtTlut5!jM(H z(63aFV@Qgo-j9AQHUDC8*YZOjMXNU}2bNHTdbF&N)^BZ5Hp#NYsm+v{r?MJd?yH)$ zFqDuwAGJX!|650|``kD-8*xi=Ua5o?r;I+eI@45llUz6JQBe0XI36*y( z6$d72U!608xhIP@CZi%jn>~7EI$AvBAS^I3D;2-E4}4f#7pikyeezP8&iLIspAYwuQA@jG4#>(wqv<7 zJSK4rH`uU3+z(y#^q|=fp)(KfkM2h!Wpf-h)EPIfL2?%EvWC`^8d5%CQq5Ho?J-*8 z+u+*k(9zFr0U$T-P=23C{P#TgLuJ&WQG!ObUm<`E^*B*p1&~OP-$Bv20unfU*^Wge zE>|Qny|x!&$&|kV4Td0Em+@#4e6Vh&rqf!w)Ux=3nZ<6Vn0Its6B$zPYma{)&DTGB z(d~<46}z##urp6APOC9eh~2UB&l#0Iy89vOLyC7HZ2Amq@M3Kpd8 z$W!W`Z~2YxWGa3~%Rb4jyt=Z)RSf%;6*)ltR8fLcFs$eCocaY-U?u7nP0slplqMLB z4s(+a%Io}cy!VLULe>kegvXc$G+)9Q1$j0&rF+c#WfGoODF5Di-lC{Z zGK{0MtK|RUC&Z`{a<^uGy{T422-N@m^304SJLA^~Zg{}iR#LPiF)>=_aOe^}mD@lI zVvGlBfliOLm~V6oSM}lpjtzJ09qw>%%?;dd{4cLNc1r2T|^w18A>o?-X>b+3$E_J6|h&UTOY^K+;V zitkH~F99p~Jsr4qy(|1%Rja<{Xea8)cBJhK&mCZ5eMV3}Db z&0(=v{+!ZSjX&N}!S~P8e_&Y`xgjYW8E|*GaZg&QG&15)_i-F!qb%ksNiQNLMzEn@ zX#B#G5}ZS{lv}gvBo}C(fi<=E*E3YX5-~K@otRp>#c5I`PRlSL2UD!+A$<-W9>ek@ zW3=*@UI-Hft=aI0X^xn%22@L=P9?+oM!&$y{2U8c)8HZK+i^u|r_jb}J*p9ptDLyP zitGAHH?-(cFSwTO!^kjf;XrZAI%jU%J|>0S^|MFxYeRb1z( zE+%dSsn`}1iBM}~bAUt}x)hW@u3Xv&P?ZBT)*lCp<7{t~*;yMURDbtJ<%X@WVM z+4DhmZ+j&UAs}^crY1kUBuFn?;|3Q;S)N&Fc60jei`O^c<@I{!fmlN#;X)?kA@z&S zqK_TrTUhA&*t_S&%b(k!kXPBT5)Z1fg#?|ATIPoVP;>sA-H&ke8;UAHfp%$7+vH_X zrp}}}nSZc_MHV_Ys8nR~vHm!66-#o`kvG1uzF6eWJv=&7wGsCzohz@3s9IGpC7ys( zut`7Fz^=$LaK~t3_qIxfT?Rs%cHQdg@A-N_pEiaj4z{-)50B}zZT#9!7bWbTBlMuR z;cTh>FSr(jCd(84KjhY-T2alMnWH28cOWS6`?U3cKYtwj=Dmi$>MlUu_>K&1hn#); zFJabX+8^=0!CPNUT3@5|f8!S*i8S*ZC2DlKkQTHY=?w^HWb`}@PqIOVq~`XkAvMd} zf4+!pH|@I#LNk!NiMO%l?IPHnloyg?|AtWpvj<)TPLAj~2wZfwEC8WYxYkmvHn`T{ zcw6L8q2C-oz)wpUT^44CT`zbWfJXH__+0>3Eoe8nvVZ6S3;wR?5dtd-*}lx1 z2Q?6=>y@+RoW27&&l|~XvNec?I`4FXK?g4pqU)6I)xu;w^jKFA<16S{lGtC)2S(1L zcJp$w>@wG$zPeuD@^+gG}Gp zF{v-pc8NS#EgnwkYv0F1j5yu&wzqh$0m*$O2pM`|S4N}Of$*~NmZRON8d&*2dv5+xUz6!P}H zm8b=Mr_w?L(twKPkQa-ZT_N8WD>w z-0R2)w5tBqP>T;=SW9$r6wSvQvd%KKT~(;vQBxTZ@leMHC;d&WVmUe9U@b9U&iMOk zURT|KK$k$-zP z|2k5%EE9r#k0e4Rd$(dkKG^bH2?3j$Rv)o9BFVXh=Jj_qX4%pc+H+<_f(92qy2rYN zW2i8-ACz^Em3TQ-T0jlQQcfv=>BTE`F`b^av`6Oa;^pY4%00abV`AI1^o!h^1f0JL9tLRt=rST_tE{baJ0uZt6uK0_Fk(OHw)wo1#vs4U{gjU%>Lj7>cP+BQ% zJx$ItTXK@Yl;ZUQqJh2$?$=Qck!%#=UrlV*vEPG`IqIywD$<6s*(xe3t(Zeht)^Y1 zTjOhZnuiSNoC4-+&dGn=i#IqBuY&e#1w#?O5Y8Ie_4X_~!A-kPeWAaTMarT84BoHn z@A!If0Xg5Jz7_t5uic%qD*G^-+1tr{*<8yvHy;!6k1>70<^WC*ze`h+^_PIBXCjv57C) zo=byr-f8+x#~g!56OaqkSTk~?BM7F|O@(eGsGArNe9e%)ge3aAoU8Lx2f6 zZH+%?O{*%8M(M6yq-H6LRQ##`>Dlmq1x0t}#DS zWp7U*ni;T)0|~Xq(3!G{3IxTnw4GHlvhFCTpd6|zqR1)Xn6MoS{rCK7cBv{ZBN9D# zV6*#?Myn&{epMMAq;U=GGJh|n&cAPTQ81>VcqbALy^Fss7-gcSm!4rXj!9ya%Zd7+ z=6wo(13yYlR?9yhrCmT0pDf0%D$P!It2H=zExRfxmh;c%AtfbM#)o{(l%6>dv>#xY z2`frj!pm5cNr++5W2V#E+T}H4No5qk6R|JSL%g`UQ+Q+YmGAC{P0nJ+2;W*;MsDc7 zzPxK;fIM)Jx353a=P8R(xJtGn#J0f0;1-AG5KY)xoZ|IXTBAvHH3EI-6^2fGPqsj! zu=ksYDNpu{Vb*oe5n?MN0j4^CDpcT}U^)(CT$m^$v!u8NZBo*V!A zKCoQ2d{otP*-SUhR%y4}U52+`L-RcWIlOPbDI;?;o!V%RgdJ^@t*egLWZ%jizv@&Rh7DqGAj17DvDKUg8HX6@tS;<^RmUx%35Qzwm=dlJ6kGGqx>{?ZmsiGm@iK=b*=ehJ?3%ahJ zRLz3t%+8#fWe&Zts$Fd$9n@vHR1&Y|#=+X=7>$G7S2d3h3wLVm$h)@x!`e3&vESQz z0|nY1j}tj&b_4}q^`VE!rtlgk1YcWT`s#IaCv25vfG6?mW8^eEnS6c$&hu7Y=)sYlk|dOApBiA zex|{}&K#l)R2Nz0ScuXI33fc5SHQ#7HQ)XY-kd zBQ;_;asqN|KDTM1eSOqzoigrLo4)F4LDTuxQ+$&%^EQb$am8(PU915qs`#z6^kdXB zk+V_nF;u?TcW`p3jrr(O>|J1*%|7e8K&Z;3wIH&oojP58YN$#-IO zWb~*3+hpwaI*p8HnYd|Rjmp|QB9a<`zY{vBw~{b zB+dN}IBt%S+^K->$Cg~wHl^0&NPs~oP26!O9{(Mz_91>b9TnBRruq%~v{z0gUINg; zfsWBjsIv}^1d3?+W}9t9l&$)VrA>`ycoJMkL{hn(7uL58JYu+SY%abg=Qt~(>rprS zE%-+wW~5Xk_Y9%84*C@*@eizqstL26A~`?lC+fWPx`Vb6#b-u?VKTV0vBD)j`l72U zeyju^zHN$V5*t(ZJa*Zr*K`*CGN0~((m9^Rf%rZC6DKv|=Len2=6V-xbZ7Xi?r&O3 zp;<}8{pcoTCYjQ@z7q;>)35hYF+59XZGmI0>~wO%Gk9CB5=do%ZWOd{%> zU-Dc=SLEH3G~9`BVWw)|fzr+joLgvEB}&rx!pYl7Wk4t}be#LM;#0>WI-y(|l^N=?7TgCKT2TBel4tLlvGO33M8c(Gm7Nc zNbsKylUzQ<#pEA!=|i19^FhO+HLt(Z&5uT@rUyC37v>?Y-B_s71dD^e>NI!`;+wK@ zeq`{H@5q09j4kZ9MYn0?TEBOqVc%GPR5+#JB3FjEwe7*ysya~3QTSQXGHWyhXT}}I zL*1qe*r8A$WZNiUexO zo(F&4I8#xq^`4rdQ-X(Y_c@s#Jxi+A#w_Q>^k#X%1ii0n3c$Tot#vZDKSRmGT)6r6_yqnn`7=fprCj~ zV#wlT4!9SZ>!JPTuFph^Bx7`*oGv^h5$u@lm8a6i_Upo|5?`sXvvYzgk;S*jSCB@> zP&%)ojUB9j2zq=(p;Dkf4mvfeLd(h$lF0OAyLhAGaaBr`#3;!pbm_XuQfm$LuD;J2 ztpp@jZaP3gml8^Hu9uv&RV>c_((DX(OEByi(G`S1>2w-}C{8f_mxNHFT4+}-v zJ=C?%TgCZ)^vkMuL?vf57Al_o0;R+Kk~Mh? zKgRW2cRh2YDw{c!0!YE%v?9%;?bCg@59zU;KySlO=h2i0Wajygw}WPoDEAk4)sK2w z$bmSumq!!2d1p``Ub*y9AqR@B3f>Vd6huz8e7L{3LoX02F%3J1WG>$4)piThRezq} zajPosDpSl>SNjVHU)}MzZcM-J_{wfSS8}OCJ`WRPcaJYz4Gs6sT_PP8W(Nn=@qphe zLMF%wH@-@&^4Kan|j$KGM9N{@2+ya zwQh!B*3zXZxv}WztkMRfJMf92eKyCGI;C>o|1)M8{w}K)k*c}-3A~B>p?QU$*@a2h z6-(SdOL4(2VD=BDKE|rV4Md&3Mc~Fg}gNX7AWwWW)et6u3=tadE!l{bS1rB%K z`d;3GE>a)7o2HA1GJA^D=v)pE!|GFxeg^|z!`nBn$?V95le0zY5aqS4?+^Bs)L?g# zXp%eZm~jM>y!ezilcS0-UT`hx2yQ@Zb4nM35dQLl!#%;| z&H*+cT=p9PP=lh=!8`F&h1ne zqG+oV3!Emw<*BTcw~RP56tqs*MU`I2`>(37K|9}1Z{b~e3m34Fs07ba4dx+?Cz5Gr z7!|&R)OXqJ-l`*eQSr2CBD30sp4{+8lc-v=i%!rVix_FKnKj46B54U;E8HUw1 zLYo3AQ!1E$Lx0(>DQzBJFO zz?*@Iy#*@YlScgI4v+3*AiXE+W3|iTqXs#jJ-R91YvQ--0}C^-DK^{Z72E5cWXNu} zf70%~Gw!%QyySW&7O(Gn^!OjJ>ie2sbkceqe|@;R9Y2eHgDWEQ{{SMumk2g(80l~q z%;Ar+-4TkxC)-Lcesw?AubZCheeQ1%g|)j{l>x=MnjIrxnOCW%PV#k9Wdb*t-bm{O z)B5#^p9YZHK!#L7{me&Ib;Pq_HizCoTiBr?KUBPgZpm)rGdEj_4sP$#NVBS?8#E(t zE;;J0)mM>zNkeUs_d}T2P$rCknw2Eaw%~g{HHzko@9Q+9mbF4k^<177Y;9BiCbfgMc zx*}EMuqFqhYcBCvYeK#vKs}u(#K}qEwvyFL1pFKegjgOQX%C(46!H%sq9W+Bx6&s+Ipd&_WRsN=#t` zj@caA_L2oVQ0Wo7z&rV}T!&qV0i;T|7^Nr;JIQiLxlqFO%z_c&=Wa5d(Gq7{p85sd zm7pV}93#;nshUE){so1}6S>@nn3Gp!l{}>L4*9GauFZU&Qs$7g#e1K@Aun-j&;!%ez z-Xh*jiwL|zQNiNDp^3%#7i64!Z9)=f_AZu6ujBq1jjvpB+kLVIgCdhSylY7HIyK;t zXTof{@{PsY{%HZU|Kd<5|0@T`?%Q-OHrdz7RsDn*om?M*E(#Z1SR(})i1f7&^K}jr zN@De;SV%h-QG-VuBQ}RlI}pbb%0xSgDlDHdLxVRNvV+h=423lgVwQ^u0?cjKeex`M z?<=Ff8>?umW}M^S^7)Vv>2SUJQ$j^;IaS0Ic~ZVDg!ZW4wc*ydf5&7QI(Af-azw1a z6v6WUy#P?5U~NX!7-N4_+vsw^oOKWkAYoib)Hj@wEVk@*8d)Hh-4Ad%B(85{J8P^_ zeW;e#fYH>tFMQYIn`0b4?`FY&GXTkh+w(Yssr zFRhRoPk;svd|73Ow{4}_%R}hhv!qjG;hEeE!?p;$rVAwECg43`%k;hVeUv*kbMP26 zIF4R)yqm>6vhdynkK!^|SaANB?xx7uvc<%o3$!4+&ho9HFNrSKrJ-2D56l&@%X}HO zx24Dq7OIPwI`IccCw!xIJwrx)Sl1d54N5H+pjH z8uQ!`NbylZZQ+IW&acJ_JB+|4KrmJhsrV zIo8Gjwl-d-Puh&y;Ucwm86s*4311@Cn01}ngnd=DD$R+ zX|)v`Pyv4Y>*j>a1MSh8dD0t^6UjPQC=@5_(}wX@6j$j2D@(U)yZ0>eW}9d>QYTVka!wI}{R zHm4*QcJiZfdun0s6&Wndhf#1m_QV$+RmHoO03M9~F3jcNn<>RSrLejJN<0lm)&zvC zeG6OO#PmL)uvD8bWAp|`3tK~Tn2Xc?)KiNGYXaGn{Le4<-n-kFt9jRGNk~f8oug5+gAb3 z9oqU&{+F|uSXH?{VZ)@Xf2KxPyksR+1_=sl4zBQcC3!<5+$(bq%^N9DcWWB;L}Lm3 zSPBfnJG_m#tOa}43ey&;C9#!fiGc8--V4t)Wgd&F;#+=XvT2?Ew_{}3I+xycE_x7g zBU@|A;FYw8IBRLQhzB@jC9z9tzH`RQS$rpd?i%Xed9T~n)fb{%#(*mQWKdHZ`Dg6yj?&HtQ4_7SFHVPx)=KGMs zFi)+=gJO`?H|@A;L@QBNcYmEmCaR`!;HEFr6q5W~wLf>of49s;e7kSd%AQ+WQ`LM_ z3=&`J&{$=pw*N(;8qXsN!y03en0=Jus#)}D4A5$0X(x#V!ciH`OL$Jo<}L7Y6O+tf zAb@}g=+k-6?wB}_beR3oyAW{ET>I0~04;*DXrg?K)T?3%{zP`~gy+2AgYCL$mhrbN zMfE5J2FIrhcl?fOD$+{Gc%$;+mPf+TNXh4!7qxWxaP)_D+qIhgZyx+oa@A6!0Xrbv zU+`(^b1N-sQpVE^dWWZh!OSS~{SGRx@hs8I!O27MnT*x02F|7mL`nO|AAZw0=Y}3e z>AAU1STe>M1BoYmM%(=6zzIgvV@|#Fm?JYJ8WJK3$ z-5yWf4`m+TckLwUw@Wx`uYS9?5ANqXOx<2fJ}>;YH)x6%mFI9hU*AE?>dqKG-y72P zPH)q-{R%swyrh7WOH!{J$F6|0rOj0~PGrO!w^M@AhI(rz0_^oJXGrHxdbri#uQ>)k z7L9>nsDEysWR^E{Ipdm(h11HM^kdC_!%(C?$ifNB=r~ds9f5*C{21vgG#Mbt;I&D5 z*voy%u=2g#%v*2;sl*5?ix*w2*gi6EwKUkzy$lhblYR8Q{Wgq5*GLg6ea|o}h}1q( zhO|jhC(O7fia$D*xbf9y?+W0?1iSg7Ou(cV#a$}` z{c=sUs3b{FlM1SSv_H6S)4{*!N5dGrQ%A4*e6qFIrN4>YuRQ5be%lf!4>8o8`O=0_;g6+4tEaOlNk7YM6)#D%ImJHt*+X zFg-1{j*@@4Ptr`vQ)~n5&e=h=$y3$B#!{WbW6QegFLkmPP(@oWmQ>_ey&~$)+~Ukx zD#P9lQCozpNst(~5z4SVS@Bc$QzM9F>e?gJ8(DR$SNws_1xr308UOAi7o+;Iq8F(< z>+KZ=S)6UbpEJ)Er<2^$QrPp-6fb)TiCvXd4mC&%am$6T`#GEd1szJs@SBSQp0aVp$AOv zM6}bV=bU$GlOjlUH`^NeI1_Vrv@=Fpz9_wY(Fm^BuZ;xYB(u-DsF+3w%j`X8uVFZ2 z+s|@_p}Tm)S&Is*Q9NGU3I9NazBkI#{)K<|>G;)&K5stsfVvo)KsP2=)F8%G<$Fzl zp&p@3`HQ`&#@9I`-zRqg2#+SFj(!8eytWV(+}KD`;*Zycj^Gs*l;N5Y&ad!7hcH-r0;~KPMg+VTHX2sHuX$g$MGKczu7uVn)GH(- zwmTbT`o+qy20heIYHI3qVR5SxF$=_hQVhk>Y0*+hm>xDd1F~`ya|JYs)UikWcf$|O zjt2*hHpS7L4D1Ige9S!9w38Gj^z@6rnbByvetpYduPMXr@N;n|Rf8~%6ILpZ^4K-= zO@8eKn5ZHmYw3~Ge2GaL)=lGySd4|Wv-Z=7p;}xxvc~gi0+2z!%okcPu5mF>SWlwl zXbgE`Q+#HPnV1_d%A!GY9pO_=6xudCBU;uIr*fLDq(Oe|l`V`TWHR9lmLjDkpwLye z!>Tok96F-S6hN<_5}#VD$63mq@pA#? z*;UEQ;sEcXAxK5%z|tscc)8g56}bms2vk4c!lk?r2H;F$_?|d}-`f+c)J9pS!9%B)yy1nbUJ`w1=ZjQOVyj2@KU0ybg za5~vNUDD}%egfQ1=ye7!FMsIE3B`bU+f47y?0}qhDt$A#K4!h9KzpoO{7Yv01 zHSQT4FQP$^NMYoaMj#T+orkZ46o2~{rduukd%A=#ENOHx!6W@if8Aayw1n;q9l$&y zxf2m#j_MumGbmcLNcJS^tul?ms$tlWd*C@=tt@MJt7o2{F&tBT=eI{OuZ-?1s}bV8 z>w)qxDvz!F;9?UO-$?;W*iL@DWWY5C2gBMM@V3^)j&|l$T`orPh%VbWxG(l z=v2y%8wT~t2H2CWGZFus98N)0A|Y846RogJOi_npm?FroEpP;%psu(E)d#x2)%2M4 zj7qFBsVRw?TUftUFwt$Vx_+c?Vnr#3q&$a^p+vOq^ zh;cklmM=dnRs=d}7T=br0K2EclJ%g7?E|$+%YEo207GRNER(|?Z%OC#SLe$Gz0JR*SOi|5+HKKl>wgiV(CzFg zZ#VfzN{O05)jDocN6cAQ&Vi~3oGshbcjs;tPV$4}66!A(FM3`!dMd24akM5wSywHq z_u^P5rs!I{_fgkQAW26a}=D;O-EL)ce{BAzkn#uZ(O0D z4%%?hw)H0|Qf(DgnEJ1%*XXGL0D9)?EWsMq56&T~i+d0>x%nT3`G)qf6z)N-A>h6G z2r_=i`;W2*-!4NFoEL?lR5jQ+W~>cG983%fEGz+ZWM?C*ClkC|&+G`*jzRkxqiRrH zq`MLkrkv_ka-HT&hUTzEkB`t3j((0rU`9pyeCaCUe#=jW@w}5Q)U`Q$E5c*+aeh_c zr;FbM=<5Oq>*CPh8(CJ!q4-%SE+X`S)u`mhxWL(r087+tw4Tgs(z*z4U1d!#bnyQg zP_#Lg*U9^CH~X>3Jddiv;E^jsaUINzY(5loxg`~D^EoyZLA0bUg=`N#>6z*NIf4E) zcWw-u@dY!{Rlg3OnyfboTv4TQoe|sSDxK zI|KgNrnpB|s6^|)qH_fcvy|0SrF&23kj$vkED?jPL>f5$0Z2j|dbds*7ggK=E)nL$ zLdW2cVg_D+GYI{;MSkDM*FK`0lqGLMMi#GZ>=uRm)TG0Oqk>yxgL9Ds(?CfW{|s{I zyF-74cGH1Fgt@+G5m3?iF19ICMuyriXM%=%i4I|Vy-Rilc=ZTc{IW+`;Qukb5{^_`R)ogKiS+%Iq&_A>L z97pQB`TC%;0lHeR6?zq3*TQ?Ixx^T5^5MMg0iUW3d^(BwU&LBukpdF?o-iyMqH0$Ox;}3LA`9aA_AYX4v+SU;d;8gQj2~h*u+T^KG`n8mHE39wGplj6zP9aTIz&} zOTWFdSNHh~5^;)VHCXzy?&vXe^@BqLSe3T*184FJw+_5@l0YGXO-l48TO6@R{Q6vR zd|9VqO>yo_a-k}&V@97{Zc44YOHCR^tA>dY^dj5w{#q(;aaivyKK>BQXcy`O+E87Q z-nt;_=(92&53uk3u$kr*G3|{$VUFPWvnG~CXG|sT%kVn`O#4)Vtdxs~oQ$_s0R_9%>}UX)b3No>1!3;)S;P&;};W4m(p-7shvW5@Sq_dNmwX}=j( zy?&VJw9de^x)9HkInX}K1px({K1D;znua}yqsRpa2YFBgXnNG+1K(wVj zNN7>Z5yPwg` z;9CHFQ1hVK>BaOb$Z2dqCUK<;$e7zCPTIoo74&A-Z((<9_mq8D9N^#VAilt2`Gd=1 z9>RH;CIK5**+QO>^D+J5i*CF~%r**pg?5y)r2R-D-(sKHqYK}QeM)ko#kRC{sdNfl z8jCqdrOM#Pk`qh|52QqAtsP`rO?*WR)a0UHL5U5E5=>>h3c!$}Bj$-5Cv?Sd^U7AC zON6?Vj=I-6qa8@Vfg%UrFS;x!U}!-P4s=y(kK5>cpbm)UIZuQ4z^lY ziUF>KUL&J@@%On!&wT*0zPsiiS2q8mM8O+(PhCG*CwZUD&%F-2dZIO5o26&qM6oO? z-QFqz|9x8QcJQ)&chq_A&gVo2YudW__OdL$E1?6+7WciyrV(|0NRaN{=cmO=0W(KZ1VQLpX;V zIb*w_lzgOP1K5T`;0a>q_heIfE>kgz=w<`c`fk&s&{nC>=oL7C8MpKpKMc}qJ)E#c z$MR$?PMPCn8-FSBmtGoBNwfXjOFuwqOUlkIK;t^jE8@bSR=xLI)VXjbI4j)Z8Kl6Z ze-0-nKze$Dm&s9Vl+r5|=u(6iFioyrkz2jDYjG`WUdSJ^|3lFAPe*pJ)#C^f+;Td- z__neG=S)UWGdt&>6FnFE@@AGy?#Z9PCEfn4Xw$r_+js6^n4*T#7_y@sW#odlGTtyB zv;BD1eD7ck0x*@n1^v(l6m05*%XE2opR9a?h1)SOBOOUGc#DgTXzV+9>Hk1>#xF^jex8|eBU>&)_!_m9b~unYHc z1=&cQQ;ji^a$V8d@!Vu`+MD^UvmhY7|F8J>k*NO@%7*eqEkO6ELaII!p)Rc+q zahED5FXi{ZmK8)AwZ`5aIe$1H@L|)ly2N){Nm;xIK8KCVnS_vFg$IR?EE=CSaGX#5frd;%7$P2R_U|z z^4*nQ5AS>c_y+Gc`3CNMzq*E!*GihCC*i2K2ctDx?Du|tzwJYAkF6y)@9ANqu;mQjUw8qpR6kfq>I%_t$lwHQEh~{?p(; zVhMip+v2S(4WWJ~vO4(itbKxq-e1*#Ct}(TQ|Y=$n8}sr+$rhDh^bieb8sCQ_aJ(pxT?H>h4sEvJvHrZyT0*5Ip^+uy zT`C~T6^cf-Wz26w$iV1RW(w1K8LGPztUcLI)pW%o7g$ZR(H9(qKcM<40?MiaA7LZy z2_etcFmOOeE<2=DXXRLxJXc4_EWoTG_8zF+*%#~zNCP^#W8d`8f@H(Iu}F^Q$m#4Y zTNb*72(F8uzU|)?f1{cf-Xxtp%U$(3cnNKFDu2jR-UFLuivi3U>P1kma71_(lT%Js z^BJQG9Vzm+cnweoPuQk|fQF;M;j+x&ai5Ko!IWL~?@A`<|K>;h1dRNGMZShazZcDU z(m}@v*+v`GOav1;;Wt(4ZdOd<*i@cGGAi8$;!og2vU|d*pCByFXQ9gTpkJa+=9x!l zCl~q}^Jw7InNj0>9LQw?nc+V@(F%Sfor^>ssSb4P{3N4pVb|1-$1+G5_JTC=uXQzN zZnX1=f}h|)lntw=#!X-gb^kr$IXg2GlvE6%1v$+3ca2sl&VA9vac~ivyo`^-Ml1yv zjU;kr7?yD$T_jDydgyTr!JuB(2@sGFat;2yL}so;>bn3+IyBYmq7?egGg&xd%SvPn zu1qJo728qLV4KG0sbWk<25*NwHQa5y$J7+de8KgZ($S-0I50mL*5+FLV|$NqT(dTc zSwC*T(}I!&r-H*J)zx9wB4ZzkCQYx4XU=}1)12plCYL&C*Hz!S*Ric6B06tM+#%je z+^;Zx^v-iFRYQKWE9Rt<@V?%9+W?DiL{ zp3B;TBvsdG-%)>ZyOVa`AVQxj%QZ4%%j@2kx3rk7{tj1`!=sP2E4|J3K!^7RyyJ41 zBVys7F0wSfgwe{ZxBVs{XIRhu)Ugbz!4C>YbzR zP#ph{r+12u#QU0tqls-}GO=w>Y}>Xcwrx#p+qSKVJGSlQ>)-!b?|0ERy;k4!+UK0w zwX1f~ZWb&X6Gvst6R&Wk=uV&}gsp8f`gf-Px-_Yn%CKbQE+N-4_ep$^Ql2^wFk+Ky zrw`>^@9(N2r;HEiXAhdR`ibWn78Zk>l3QdS*b>lzNMVTsr(_rZjTh`SD4krWBDVZq zEfZ_&aRS^rR7&O~HK*8rtc?A}M!<~qsgngR$Ai>%kKA@99f&Bu;F6;(;WEa;X5|X? zPn5ibX;fGz^!*=+p5E7n!{SY$Yl&moJO)zOGcvrSTKGQ6w3SUWcT49`0|`5!)U#W* zBdwp=*hpDIKlSWuG()Xyq;Zm+xq(0IJ?|3RE{v&7*$QwhBB+6&E)TML#Hz%Khn9#* z*N3_D(WO1NFj7>C#f|JM!Z8jI#kuNF$`LnCvhV7z3pRRG+Q&oC-*hQNsj3aKHDPNO z4RL2;(@DWwPXu5$P5ov>DC^6f7EIYF3Us-f!DF+N?37s`x;T$)LkSNcr#^@(q8JRn zq0Rb8cyrA(M-hvf`pxfC6iVAIq5cCx*4UViY9WTOI;o+r9ze)1biyd6fGs|_Q#u(f zi-6zao%WjNR%+>C$SX3seK(2IlPV)T!L@%%0$$xbB!PLF=Jcu;oQbUDG&DwO0{M%@ z)>F&u!2`LGjafJb5H`Cst2-v}lCH^2cOBH9QbgtU|Fi&f$JW*msC@aGp!bkS_u@j@ zgYXr|dL}xZb=A4dQ0q`J8E{FuyCdSU)}t8fj5?cmy$yiu_#Ck=(<%(#O@>;Q$u8*9 zTbD0pfgc8vEZuLi_+*^VE53xq__lFj=K`K6qqQH%v!4Us;guXu!0A6M4fX|KYdF)s zD~4m+9dA*^;p&5n_i@SNzfTsQ8>DFy2S22O_3%4z?)vta+2;F6ZnxDH;-QBDLc^Qm zaK(CK{(VNYKT~}UJO`BuAX&XPtTny&|5_wHOzOP$ZL>U|jyu934h)wY14GNS>hK%> zCJL)8RIdEP7VDyWH9y|KGNImX^42^WkAEbcLX*Hgm!SodQ)9p18KUg!2ri=e%YJU2 zJoMB9%RqRx0es|~2tfxCAJ{YI??JnxhkEkt#9S$4OA|0Q78a5}X$mg(BfY6Q`1E`3 z$qsFvGAG8CM1OP9;Qq`y`q6tr%BmF7te#k}(S%cS;Gy8J8sS8Wk*N_@)~n${{nP6( znq2;$nynwv72~-JrPTHv;K5`eG;bzsTxuyB<5mjJvnl{EG$=Fjpt)_x>Dm>_MDZZG zRqh4@`D+1YrS->t{7Hn(B?_tX&Fa!0TG=pl!$bH&dQF~4l9`i4@T2AtH<5kBk1fdk zcrujFg5nJYq<6kH9-p%Jad)xj=hJJH?k%lH_q$aZd_v%H2*X&K8}xDt+%493zj%no zZsguqE#6yNJmXU@ob&16#L&!>Q54XyS+=IyS7s=)&_IKv;nTlhN$OsV5k=6{3Nz?Z z>PWt|c<~U3KeTS5j6FdZnO3}J)Uv3$1Dr{7!_HAFw$k`2#REcRx$FO1QW=Y58c$N2$HdR%3`zXbBB$GRy5;3O@i zYlI$=!P+uOb9yw=_NRbQKIz3>%RqLj&ov@NoH!~@ECT)!W z(IPvwP_jBot#iOiq_W0gWW-t+&0SMgGI};<6gD3WJa#{WubD z#eQ$(G4qAVKRcU1$NdZ+xb`q;u~dHdAw!wd_3VK3dE)Oej@$Ls-pplZoAWU}!0(&g zPNz5I^V1cv`o?{*-k7J&=e6@?Anj{eVf+vJZhKUz!)Law^6iPi^9Wg%@6j z#MsF$f1BP+%P0v|BWI;hNXrEZ6UH4fb?8kaa+KJ3v!PU_@uDpYu-K%eBPK^I=;KBf zg{)_SqV-#M``AlSv9@#C z=VcY585$H1Sa;ESUf~gx2RPw%0Riz8oh4A<35?i^w!R+``&~Ios$lk z*c8_<^Kh#|Lj%rJIfGz?dBV4#zv%*o8k-iy(3n~UJf4HbtmL)0B%RnXzfCvC6Q|q- z%3EXV{{av>x6(pJ3}BrHoK~+ybJU3$pTw&9&T+!}UYeRlvYhq8`*w^;naE5yo4RBJ z7s2lkGsvbh&*na7rWC?x4hf1?kM!21+T<*-6D{Ji$u0_`huM*qCnrKq+Au+FCzgJ0 ze}bJ|WHeWi=s>;H6g{j}j*C?PzOHO}VkyeQd2UEs%ab4L+we^khB%YJgzO=P<>XVw z#aTN|DKu?+8$Q0W&kP=grmp!MCfa{kBpPk+ecayb&J-urS%3{gdwPDpz2aE`e&(eQ z4$70FNX{RqviN;aOXYwoV~lw?|6E|l5^TIiAZXw78r$0wd3kxQZfuNh@who2&(L3O zYQn2pul8afl4kLEf%$!n_C~ld^!5OI1)7%w77PJ*(+w3~?$vG&7^Zdq$)CG@E4+nr zTv7p^h8ax|hQevrCE;=*P#IKsV`Ina<3uRYIdlw=uv!S}>`HU7$uocblCpTIz0jtd zyBc*4e}1X?$S1aAGmY@pN=VOt-H5bOZ=~l-ALxLXaVpeesyvA=$-fF&q@FrSv#p6E z=rI~gJS?Gt>YrIucTg58EWSTE<)^KQ=quI!^r`j)$J-WUjAn{C!!Z+xUq5xLx-E>x zL~tWR7)5{`!~nRe#QN$_*h(8%tYEX(S>7!FWI@VDeb0h zNm#2hKw5hS&(an1z?4zq{d`)Mm1S3yiL>R=Tz&-{gQ5Iy%!`cv&sk@64s%sDQZ%HB zRjfC|BBOiqx}UyqkTH<8N+|jMZJoChav3w^3$u!ZmXSYJYF@4v~43Ikh%QB(W z1A8i+^_8l2+_3YkT*9_nF}^V&C1}G~^n|e4##?!c(@}E&hXVI`oT zrNDqlO8&Nfh^fBraJtRjNYLRNhGTtwwp)PQ}$%46eicSe3cZ1jeB_}On1@&38F$l$xk z;*9z9a%+*DAPwl|xiWi{Gmw7YCDhE@EGdJWxpQarZ12Pl(597z(iHo2E3mxPE!f>OrXG;@u@ zNDSZF^Wc&@8cO%NwJr&cGkemW8XbbvG|ocb*I-wP@HvB z7-}z625dS6Vso;hSa9@-njV{iB406>X$j(L>P?Icy9a?LidYvGoRN51;}cFGRyInZ zYJ*S3XP2MSuz9RIuk*M@V(Cj^}Kqc0j6$SyZy>7&7EYPIN#?4E_Gd14|4u?#(qx z6Bv$33)0&IsbL9um+PQT?cD|hiwLuUoQnU?lk&_|`YEELl^fqzUG~(NoXWZ+%b*eg zf5VB_l+;6U7A2=DN_r$WP-1t%afp^{^k}Rs>D&q?njF?;5AC$Y;>!j-HZ8CBGwufL zt~RkcBDM?3jCS^V=$4h81q-~)+l1v>_ysDt7B53F+rkAbDExND04)AbXG#se8Zm`q zAD!2?>%9+(FZLt(FLn3tr!&=tfh5powawn%u=i*6;!jv{ARWjbvC?x3<-UK2)hat- zjDSVY8{<|>h%kr&ve|iyDJSrZLs@$Xi8v-i*XLo$*HjE3o?0oY+Plu)t|?nYybEZi z7Y?9)l3bL?z&$_?m&q|jm#no^HMBj2Y?y@tJ<2^MpGnQh`OrO8ShKr}emEk(^nq8ks7s2?TQMqT)(v#AGkX0JP4EsDGhxphmy8bIM) zl%kj(!9%B1x`7=SF9h%U&Ls^mtBl6pX4oP_MgT5OBkL?=Sx`JhNBkKKsM|IsII84o z-OG=VZvzxsS47q$?6EgKJ@2vOXxa_*j%t2i%-<92qRloS#V@&xS|q);ZH|U&weY5b zQrQ9R^C{h_tR+qXjF-s1WkcIZjM65*EKTYVCK_=NR42#)4F|XH^;$WSC&Vy@i+Iso z)@b>)Fl3m*js^WSOhzO!hGz!DNfSvZKTVfIcHxZQw|t<=iND)2x~4E~?6NSS>0FK!nTOJWOy9 z#eajoCc&M&Lw>txPvAlJx>q01cYp;ircW3WsA516ps%XA_I0k9Ug`0Bt1EY3{vSLos zYG83Wl|5!f670CB5;=MJ>Nr(CXNGNm4+j!-QYT7irMVU#;2kpl2{+JHpEQ)6$gs*X z{uCs<`6M3{Vy8wQMR^1%ppZ-tVj6=drN8!Sk5qhsMNg}kh`;coEB#EO4m~G;{e7&A zsVkb8fyrzolU8B8-?G?`URqi(I!TVomoz?X_B+DIz)d(}vm?)b+ni%cGczL#2B*@- zGZw9>KI`WoacrqpiA57?H$H3uK0@16v7drHQ6mQcBLML$C1+uQot|m>8G0_T{4rV$XVl5wwK}*oUR}$nus18rQ z|Kb@^(;jy;++1Xr`h$aB*vDhA&g+y_s7Q#tqAS(hQ?y@u(TGoL?lW*4_jI?>k^;km zA^V?#F554Q?D0+X?Y2kVvbfy8Wl34lt_P#;~hhg+F4grjufnc$Eu5y34RUQph@b3<9 zbBI8TXr~<#`nxPbHGQGiKg7)K1(n!cZaVwC**XQYcV3@(haUckn}FjJEKQv3Nu_q$ z`3*0wLr*Up&v?6tUnGxZR0o7H7%5O8jfPHKJC*=;HK?>TY2~Y9K+#8yo?hZ`pF_2%vlDmAUjj9EP7U!nlAvtM+qU(hC4^n@SDQxi z1%t(MoP*(Q770*aY9V)``_MtQ8d9gl|rw{{`ApE;ra1U!eKzf3~AVUnD2APeatwP7ai zM=K7A1o+P&@P2#K!zXf)qXW$zjaLst*K z>iKiR+%cBV-bJ$7ZE{J6)iTy%5jf1?U<9HIu8amYVltA*yy(d!f8Uk4w@SZkQOn4g z49bvG5DedZ&`2>X2;5aI1vCh4J2i5cH<6Dp$r<79Cq3eWwULy6=A;XSs|9rNWoV}d zSqj4wK)+weXMwqD9g)TusEN;T;5BAxNN=U~L|=*wgAiLM!Ny}O99@{(^Ax+XVsdz{ z^t@wEc-bRt^F=7+eBpdtl&eNO_vi0zU4K)^2)yv-v^zA(71jcam?=4Ax zR3Dh(gW&#!!QQW2`t0y=u=bxc*ud|Z{K?Hekk>vt`S{PPi3fkYBQ9-Ne-_krjQq^D zn6XT)^U2G7(V&C(oy=i!A4k+jz2u*Dh)feopH$P%0L6+@f*NoM*3*8;G*hzLVC1I3 z1lTDCu^*)B3qx~J6^w#;xp#D~oH7DdTvAUzEi)zryB)I#FR`c=O`ZkW0=r7ZFpF`< z9ZH=vCEu8=djl@;4q6{(qR|q~%=p_U`X%h{Osb{17x+y-5VAd@Rmb7n0_q(RYm-iz z0_6%)XIg8ATdNzdg4H5nhioVv9$ z#Uo-9a^?|g3OJZLOz}fy$PQXtwiWEsrDbSL53WhOZ$@0D5spc_5*g0;p*&ElLF$|@ zK+pGqZ~_E4N(GiLRraRRd8=JZW_oGAu*pbnlm8lI-mUfqSaDQiN83|rz5yH!0>jyp zZ7JM^G#f<0KUVSn%2x_&e>GYj-W#^J)^&9Ynbp!Oo+CdU&eP`G7f8xs!czNvALpS z&4voXOpwvX<_f1fcBB2g`QcwnSu6Uba8lzbm}x<;p*e0t z*`x-o#mr_#JEIX1K1(U4n%oBM`D-o-`d;2yjXa3B@2@|>yjqi+KVG}SptmDyH9WIH z{^+V1eNBO=9xlr9umuSIhz~7X*r_4`;mJ=kedRq8o%mc&_*bE*4VE6e`l%-G_h$az zbsW5vseXHcp|(n$ti-tG0S=VFFzk=;qybs>{9rhF-A#6wIP^dE zI$-{C6!A#0hn*E5anyCe+h#rfWJTg?Im-Xk*QiCMpyx5gAejywmo0v{Ospb`0W%i% zH7%Jk+u#~ z9n_w534D~^q|7;dm?A&~U9 z`QIcVNeq70f@a=-`cJ#Y1p-sRTn=1(Jq~H+MCV=iLofEhmS&w$B*qo#85vO7RP{J%)@YJnI|q?(?EN3^+~dQ_)CUc2;mFR}kWw)H&2nEny4cEJc{e zTVKf6)`xlRRn)CBi|obVaJRz8nqlAlhB!vZr~uM6)N1T!Mq6r6bx{cGnZnGxC8BkxM~Hp_`G5FO^;2=iDGTL9$uzIF$WkPx9uGq*WwTHSixK^N1~?YF>A<{o_u@WQldlxR@sXmTHh7$v zDVOL4v|eAcBhhUtLX2N@v;+SAOkK)FWQ->3B?BiJf*Ie$xqJtUX}b>!60ONtB9RWh z45lyRvRG|w)v(*IP3jLfclB0~bTmW&NN)Rq^}%*s0)o;$$_r7A*{rf*k?4Kh^*Z1l zQsYgne6@>@9g7f{4`865O=hqNoGWnbsr`*Kqw|Wy>36mCpPD5E2#53g|FdU|w0@KI ze2IU9xf0^1YVCse-($%GeEi`o-r@?Z!dSF%D}WQv3$tQSu@MBZgU?P&yyv4>8T6U}V39 zSNDUK<`8riT}+ zxj_eLG!YvbN8*PJQb;rh{k^4<+AsUt-gEG$s~)BEV9Xh$Rm`l3%u#*b+t}gNDFI&P z+DURRjm6l2>~%N`(N8^>RPfnia2MjG@xN$-TGmb)Ju@$yf4B3i6UEmc2bIP$9qj`X z>?H1`xE9YGn+HS&fQAf{Iu_LsR3=C)P%7D%1v!CE^@GR)|h46|lnn1;gox9s8$ zVxHW!FvrHLjtfgYKD8zZNqX!5P=|0+U*U-s&Xm|rxSitxQ~|-_K-p^0 z$c^SFDX9fy7Kc2{;}%Y8Ts4vgeocLj$UrdC7zqtL`DyjH?4el8%w zO?8-ku7RCNTa>@@yT-Glp&0wl%29R47Q zG=qh6%q6!r&XuM*0RwU`&3)O3z!BD)kFP}sc~_IUVV4Vn%fnUcTe0~+#sDO^>)uaT zJHP#v+mCjju%!VAAgUY=b{}R4ydR&xKmop&??64)+@NCT@fqMzdIriZ((pKLxp3mD zzGfnb#-2MfVDi3QD5^I|fzFh>mew1XO1^SqqqKx;&nFJR4QG~T|D~GHn}S3{)fA(X z5T;^=zmRmm@>PyPGw!UKqwWKkSJYm;C-X}jN)=eZzKfhPJf(sf?s$e$;7j%`qhH;g zzFDH$_K08K82M^_LNfL@Rpt=FEzgZV=7$ftVs2(9=YM(54+y*b{npg2^|xKj2kDV< zd=BNSges4*P*OB%hecdRrs|F&bNocinqj$r-aqgphU^U)j*8N@tb-*x_snp}r6dVr zbR&@;AF-u9@`ipk&VeW^d1ZW@3#mx?Z9XjF$5 zOMDExn&sCTcZcM4gC)Yk^;`RR+pyc=ArpmLr{7r`fl#ZoMKK26!gr5a?`&=RcF=9l zM^*cCo!p*+Wy!*bSK=YiaKnNVjO}EtM9;{}<(*(Q^1xChWAo`|u2cNdf?;2D5Cq<+H`_Er7@t?l}@P)|sb=Lp?v;cBB zygjx~{{t1V_&{p~K8M~rbI-%8U-bL)zwXOHe`ktkhrOlO|AFK0FWZYtJr4d{4&8 zIoGF@SKYkVJQA9=Xy*bdTegWVHtkhKu9|T_adAtFDH=)p31EyT11#^^i_6@p*4$Kl+s{=KIX znf-Iu;&Hp*RwdcCS^v@x?OaxRPlS9A+RN_?y5UY=y^9)m%`xI?K>05jYW-)PJ#@tG zpsOj*3I6}m=TX*9w_p^~kpLa~0khdhHVrxK&N}sSz2jL4*Ft~gpFOamjIfE{u%de7 z9+*}-Lbo9k3^>_^sP(&-X_!tqOlK-dH^)-Apikhi22^~8p zw1HrTty6lhhYwA4SRdo6!|u|&K;}an_K>A@y*uzB#%YqeLt1A%?zeM1b983 zmoa>@=XBTM*8Z=|2{Ez+Sax~7pK^Dg82b%+t9=wdLH zp}jYZ`K4taWSH&<443B!E9F*rg4fz}{;q!Z)ZPdqzi|rd==ggFmrp&3N1qG+*}Xap z$jq;q$CtJV8xR#R4=Yjq7Q_d}&~w-L=eolcy3-Od6&WVCZU{EqE$5ZwOLUvT`TQed zJET!;g#n%tK?a|S*KVKgm_T1>7(Xj@9`tGO1&<{XT0tb$@ z9(TG&r#^FZaTCdJz^fXA5c9vj4; zMpFvOKVN7mouRlq`t}#D5v4%O*01Yz(iVH^<9x9tXqge;4<1itMgNLj&GJT^G>f?+ zlBv=DUk9F@=&+ze9I^;l8*#>h(KBWc=#cDHFcP-(S#9!loX7i+V6mq5lhdI>HI+QI zA2_k7AJcKw&&)pP4%bg!ZBHq)d+m4Rz;qoo*Z+|7Zed_{Hq8Aa(GFbhd+yEGW8ps2 zC*^KPl=wOENH?B6E|RV+W{@Z)w41CXuE5D5FY6-m9Z7}zP4sn2>8v1s?%i|Ng4#o9 z9If@>9rNs+BI!0_^dU~lB0H6j_$*88$C!k51IS^n%_?@$HR&=up!oPzu1fTH|KZer zSsV1mZQNg!RIn`SF(R~%=Bc~r={g!$)P<>n!f7ZM4=)ibi_EdHC|_=qU!z;{DVg*GCA{aa@mkNN zn0VLP)2+Fa5?%uTK5#)706H1bc)}=``ZN{rx2ryawMHs? z>jb7Pe=;N(Ok>+(I}AB#H&~lSaYW+?c5s|w7$)c9XCsJLPQNkYB<~zIJOW>FCIx}X zk=c-hje##WZ$HQ@F^S~DLSCZ9HG)M@LuZ4OOd9;}d~X6ykG+t)rJJUrNyj_qp7{uc zy$CnKat9tZv#vvG+^68n0UJ6$&_1tqPKw8F)4-{IvbgN8gO91eV%1*wzd6R%ef|x; z+%{E2yzco&-T88(D;Oa>OE9{(faNCb-OO0`{SCfWJUR4Ii<9g#QvaF z_X+W%_4ZpTdZL6nj#uJK34hq*X-fTG`H;*9>fug5b%S+UqDR^?%F}xJ42nGIVw_vs zYij)|(0=gmPDk>OT&fwgYBT5s@8XQ?qMiy>u*6kVlY&EA*=_4I=|k&z@nH0#epV#9 zkVz9&llq^=R3`{kwq7{AEx9K_fdNsU118LBCEh2_tn`JvI!9}!k_kM6e9{HIH+NEb zBx9}rauttNU2RZY7aHfrun}v~{9>3}aU$0P^d4)R6xVYV?aR0eXAD$05k*5o&TqwD zElyy8nJbSwya+}A%p{L7;49vuEuk7%7m>CbiKe{jLiw9JqOTB$Qovtak;nbbN1B!9 zs@d35@p9yoykaJ}ISI6<5ovhwt4L4c`|Ftt8*eJ>%iu9HpS&QV?)bvSwTWqWSRuoO z1QECmcOmma!RRk`hnD;5L<^O&{}30ynx(w987TM{$3&Wp@>O*1(vf-UE4pp0FQHFX zK-f+BH;Yh4!6S1#q;hOZ{@AbqPhJ%x{MKOc+z>NU!9}Z{VvbN(HJK9eG`2empG<@k zA_zf(_L*rak*9)95NZs$%WQm%W%B zZ)qtR#~e7qh$V2SQtZvbuF=o-q$qn?e98{PmO*lvZZ!m?8>Pg3%|1h32%8z?&ru-4 zG%@K62%CV#%}2VZq9cvW!!yl_o;cs@!a|wogoX@`YHVnIpkn-YS!*c_ukXAy&Y8oJHLo97K$gw zyQ$&-p<}?tFi?2$LvI@?WT7m%w{YBM(ybS*vKvj0mk_lQ+&A;|(~F*C0u*FyBN84D zf$1la2^aMkTe#C&iJQft@>(aAZEQ{cwPo}e^SWRTE3&Q(Mn(~nZjRxm;X-5d@<*RpPpxE#vF^LB9xQN*JKo-A(gcmz2Z+1l8_o6&w>d31vx?+(l& z_~CmYWfVPzO17rbi}|abwy5a<@jhutKKdF9Hcs7180E7jc%H5`Q|s40flZ>^p-4i# z?20;@Z8JN&Jq2KxZGIJeaiiQ0Y3Y*6wo0`aag21AmP_j8LG7lqtO`bIN&k;t0GvW`$ z3&~PscJ^iQevYD=q1o5~d| z!feLjyEE`)I%`sKb;BA5rM}*c)J(lLtW$W#|I{|ngA`*r*3P1OXk6M~(YKLZ`sG6L zV%DrnIi-rGv7w(ys{N8lF?E)skOnca=uR`^qZ8$7M^k(kMVE^TNxaqmuy6o;|MHP6$|7} zl7$t&5Y5``!vI&(p7X^A9hH&zJS5a%f}UlWlvFL&IO|85P5J~Yd4CZ{DjZAgfWGy+ z!(Jr3FSIrBDLA3uQ7Dx}rZazsgEe}J`%f0X6$Ns_(4y>%J46v^bEUtGo9R!KGU^#Y zZ0td*zI{5OuP2|#^38{AP<3@VA|>24=7jdV(>^mRPqDU}9@D8#Oyx-+${QI z1w3+qDsRs28P1#JaX}aR*3~J*mR3PXg5M7rvHBalpbj^REzD7Z`}VndsQ2X zq+#yoPesz6*H2l|qD;bsNw7Z+g5JuZx}?sP6Lle!^1_wA zKs&oDo1Jv3J~^49OpNBpE=6xN*Od_+GakWD_zsGuwt`~Oqq?H~*=oLqMsp%9?LErQ zCQ>|CJW`wBwo(Fwq!~9DFJ@&AazkXM@rIQa4;Z_=80NR$>x4FyUAI5pjFQ}Q zhp~bZ4D3b1CF1*SdtFIG7=>h^%MH?nm;e@@{q}$$;e?bl?3v<-AHZRZq( zT)NtY?9=mL)PHV^!@VLRBgC@o20)HSkXIL+7*}BNtuU)Gi}s$Irg4iu24>llo23S_ zk`kkdf?4g6kOnJMdTeFXkRqoq0=&g;9z<>LoIP#2&Q!*)*;9xJhd{?%X@kix^LlAgqQ+Gi${LJ2tEuC_?J7XiV>!a%It%q0D@1{o)7U z8TPN)i+wN0ACG_Hh=M#WN4!3)8dUs!uiEqZ(E4~iVP1|2Ib>ZxcN086d^-oTjOqR| zbOS9XH)}e)Bo3iTT_kgMm@AE-pM5G0%KUz14T>UZNGLo$^*Ty1w~=9TQVl<*ZU{F- zOmzR3c@wdKg4FBw;VWy7R*!?}Z`Iih9AEc#=y{`$f}WA+q+jE%x=(WlzaM;*XoOX= z3^e@r5oe=e$7g-jx!U;_+oiH45*lQB9&$^b8$GF5v-fGAV>S7b=0)M`X6$<4KAS5 zHAS}^HfRPtCqC%+FA*4azF%8%Me*aTrfn=0{TtGl{qCq@f;XAgj)05goKSg=T8F?w z_sn=un(T#Kk5|o0J6hYMJ}ZO_$%6aoZS)}%N()X>aH90kCoV1;3l~exAM?nj7;fC3 zDw!-R2{80I{1+UFVjSf*`1|V2q@ELGt<}vix75y3BaPgJH1<`)(yMwRudKwUGK}(B zc3GwjROQ;Z@<%_j;d%7T4KJME7Yu$tkR~z9ZoSa)#l}PrCPPHPw{JHv(e4w%a27W? zCF4jNlN{Iw>BVSs=L~2OuLbSWlsFqlw&0Aq6C2&=S}dTbvk8bqT3DduqKR4_{~aVh z6kSq2D@3&VH7tSOOmj^A;fARs7TPn<8&ZT6SB@S|L6TjE8q)4D@-S#`Teg7)y%?YcUowUycScBntt_%1M158Uct{lDTB`cLior`8uq|0VnThns!1*9!ZN^6Ujc zA2`29o!33xs-eQXB099H@2lZ+5H=mR>H*sDPL(~|$|7jlgM-q`v zGq}A!4j889rpVPwYOf^)<|dnGN8O>V%iP$&*Wo*I^{;=m-+(j2Py%a+)lbRf@u_hC z^pJaPZvQ<_`2UM&%v z2r#kQp_K=nnq`kQdhk5jVANQIT}fbVcg2nL+IP(BA?sb7<-)Bq7Rx8yKVn&6H1cc!Dwby;OG>)&7Y(;v zWmb~;ndD5W7C28QBfwQc)JkH&s?*Menf<&xOn#*}mn0~O#I*@lJPb_aE7TbNz)Bvs z5a%}j)7CU7a0%R$qm$Mo>-28%7eV0;$#!omHQ& z_W_rclh5RE|18B3L+L`PkGIlT;Yrf@9F3A8XnyEQ*m3IHH_$iC!|D+p?p4_!c*cLU z*Z)KCh`39fP<+*;!WOF-JALc~NGF*x_e_S(IDI~}o|snY;1-KDY+DeFKL$4aZF#@Q zQM?6V8^(_56!!5yf%q+8U=@?MO-;|wlya7rDA$Kbo#v9Keg~?$&Z9Q7V5J)*H2O$e zQ<&a8OS9v~-RiWIIk&Fz@T&+-bpS$`pTwBHC7HwaR-Vv>x1(PcbUsHDH5K@Ke!#NjbU_aCTGN7hr1bkF| zHRO4;{vr=OrN~cXTZhjEmpm>hJ_8tpfAI^0kC&r`c z{xKw70k1U{4cjrlKnXXSnIZkk9~q;!!Q;C4&k2e57B$_?{0ppXhotR{HHP6pHIxUA zm2}rgN^HX>-N=*qD!X)-vUav!AxyFR!pk@k>vz5PUdt>f|758%bBj49qb|t28*e)f zU(@E;Z~343jk^y_iR5Ro!%z+#*EXY;QGiJ^Asrl{4_= zfl9EkTfqL{>xp51i^kq2GYbPm$NOya|6s*u;!T|5uBO>B#ixJrB#zZiWCPw#*g}ax zla~7})y5;Uu_rjak9AotYCs`Tey;_m>Jd0xzbk- zq^}*(xu0s95~{YSa~FzoY}G`&SoLpJWS2LYn^98Q$~%>i(#95W6sM)y^5=KVuZodF z{`icjtXqRM9@BLw!TQTcpM9rwBEpslAVDqank{t^l&P%dv+Q*-6jzO2hv|gf!%1tmY>uO*695u-He;-_2*P|2&I4P zJ9FHeTuWa@v(`R&O|+K*v$aen&ifQ2^q?-KzXdS%L9hWuauBKxz9j>(X#Sjf zb`)B5WKpTm}Hz)t@T${|9s}t2MKmB2qL|U0ToEW)d(7PNu_<(O` zSMRh`SMux-a$D-e`krkIYM<#Kn2|dy+6T)a@uPnB5u;y%?D8~16I>RYix#fz*2tYv z=}xp;4L6g!*K9r;!;%5FXLTmUhuXEkTW2@ax`v~O02*?dI8+4wkohe2?bZG)Ei~-2 zJkI8RtNR?Y;{)0S_r9QUm*mSPdf^(wlHbBP@Qr33Bl^J8z1J0LG-;+HDDODxJoj+E zSIOby0XN?yBrFWLWnpaR;Z_$!C*2^bCJnw``2d)1|K zh2-ML6h*Z7I_H3BgISsM3oTNX&>TW9dipKw-;s?uof+p|hkGO$L=FY_oJ4lU!j;P7 zOfw*)=$M^}Yk)QSjmx}Z!mD6f<>@h@WNK_wJ`g{Ufo4ilxDu15?|QFV5^7pOLW$SB z&hm^Ol-)+%ewnU@K#ICxSQrrPexyn7wp_1k z`&ckKn_z>v#dwm3cT08N!*;lTTaQjJ;!Lvn!9$wNIwE^Li~RZTU-Kcjg34)K*y;KE z&KX_bgn9$~&Kl{^Uke*Iv2vMAP1bb7|K=CE z$Us57p6l<|qjY;HF#p8vr_t9C^2gzAc08o5em;Fi9M9Sx1^gdL=fdf=$KUhx{*7$^ zwbS|E4Gxj({l-60vUny>yxIB6Zlw!fIy_{(!V-U7BMYg@zlEeTp9DLS>ju@g^P1)6 z_Cf!^y`78H+8!|NVbh%{RY)xn0WDTWyz=|2gT-R)9=r=nB`$B4drfEIho;QLOcNYm zbFw?9(%`Y>LmVxIU7kFGIJvcTWw;@={;`2d21)g45`;d6cXH?d$JASP#nm>^x=Ce7 z+77&+3P8G6!_4SiCOTbc5UO7%I#9p;(7>r&Lp(R2jyLfja9l8&KUAhl?IuW%ZXFDu zFz7tX9$T^0(3lJr!e%dw4DI@Yp!KRorEJ}HX>jYyOS)P=axy2#BpD^%PiK3u`nd$* z`1Xx?@;OG4qN}*oyDOc%&Oie*%5Y(PH3t1=8lcrbERqJ3Kq^HFJ`GU1 zP!RrA|5Q^|j|iO_AQI1+;JaV(uV160ZA)%HDic^Hx2diLs-rp_8RTj=5L09`Klp>N z_3+wsS;~liU=LaiIM7Zv%I#K4X3ktoYhVd&LdZ6GzP(j(BK z|BC#?pxK`N#Ct|kB)c7*Acr!`ea=lhBqbt+YeJ{66G@UyhSvB~p;-~>W-M-RNZ{db zu;h;MYoS5U&C~sl4j*oM$6Ym{ShYFAnrElr4j&K41BR}jC15`?8b#u&#Pk1J_)O>? zP0Y@#+*UVUz&+W{CUgcr+BXi|QyVyOQF4HWPQklv4t3~hy)=<3!|?Ky3*3mA!NpH$ z&HTBlEcQf$tH6w?`_UES@tvI5S@g+X;BM>BwCMKM~~H#gU7YX~MiG?QB{zERrwR`|+D)u%8% zq||1(tPUaf7^^OadVa`EN}yT6KtyAuT=aO+x{P0N#D%0eXAwPxriFKSoK>ee75ta< zYf%1-Fz;UngxwA;`WbE6cl|S_i4zE{KWm+G?ygxy4;_C~qqz>%HW!IS!U@M}QesO_ z9M$7XTSMf*gqf#N`KG2tib2!&E*?Bi{8qv@=eTMq*N(~pf``*@(F|o-4T4dQ4*bLG zqkFBsFXN}T9ld>h|B20xrw=3_5UZ34g~924N(A(ZA$r4jOm@?Mpp;Ze!^}elEdAVCIrKt1O{I z2~h^fx4b>JSMsWSS#C1y%*`3q5d@2?7&LH9qr zzl@n#J+45WRkgN|b}TV5t}s}B zqZgzWv!=7GNRWEbrMPmh=CeySOw(KnKx=hE;TUVu#699mNMN~t)H z;Fu}TYjIz|q9(lux}zllJ;b`D{#XQl^h%MM6o2|gxKt(2*=mW5s(4|QQlj~g3n_^= zkdxFIdRbiNW31A)a%zyb=$hxXL{6Rb(c7|Jr4%y12gZ zNJmp74RaEtig3&;K8d8X#PdU7={5=To-yS6LV2H<`x#1RK3XT5bA3dGM9)} zPu-V63P3;krM4Ka41ZM6C_>j06v_UdTh15%fAcbNra5uu1zcYglQ%o%%0OIa+SPPB!2(&coBe>s)NPrGaVOBn1mEVJV91_W_OeRD@-x_QI_ z2~Auz;}0L0rzd+$lMC1>6w5%YCo*{5I17y*8z&O^BL<05qUX3S8k`6fIV5Q*^j@0| zWB{;{Y=^xB(hZ4>{Y9H%irR4fLD7H=hGB$uky95ki?>ZKzhF+3SDcJr(aWGV!IbPC z*l&OeReWoypgCc-F3M7pJxqKdHbFRZ5W&X>sY8KaMd_1{nL;HO&rm>%g5(Y{lxr9| z#2Vx5wJ?XaW+S{5$nH1la?WBBM@|z~xS@;zjyOeSB&Hz55?8Vs#Q6EhuHGlagXUa~ zn`jhepx;#ag3i{H_ym2#x@N;+}>N;l$z&Ia3A2quI6LzUQ`G3YEAg zn9AU17z*g#>%DH^q2ZEhdh&m}U*u?ihFUKkO|;k)7~0yP^~>+YssMLz7kd>l^$N6a z_c`bx&|K#A{dZFEmu#cWAL+xoSZJLQ`Brwj*l^t<^|RJ}XvDqJl}?hFCqC+L|DZ0Z zItF>5nQ7i7-z@I#2$$YuD~QIgixRntwr3DBNzXQ3BxfStkRnz zzi;EO0M(W_XD4On$n}a)-~`QWqb8<~=?q8SNi)X&iQ_V7gVM9Lo13n_(6-rCo7`P> z?yOTeAslJ`-wIA$!G%Z-qRguI$khJ3KSSSx>z}lVhTE05n`fs3Bm_HX12#{*wST03 z79|Po{Hm}pwm8TvYJ>T*C{dNHMk_iuM3scxGbcNUH>MXQfW5n(a8<2laA4P01<~^_ zr=8sS-Kta-WL8tW#x6j4)p*|$lZ}AuWT^u~A}e-OPiM+K7*LKeh zRR|LaWM)PtjPUvi!Pa!*5&p)u;5|CHxDRq#&`9klb$w+w7YP$$cDr*Wwui%NQq0yX zPU>H|bCg6DtAM`4V?dxC_u%i53tOV^sOQMQP6KbC@RPo~Hc&=mlb|nd%)sAe9p8p} zP*{qId|lTEPO0?^KjI#(>*=siPk1^#3SHLI^!~rO3mS?N3X_Wrfv;jB3 z&r7Y2DEwrIArKr9tbW5WI;K&b;IctLbsOdEP?jT7m4}St=Z~D|R!-NkR5m^WWe2fq zwnupc^YqyQ@3R3VYKwWbov>wv)`KxQoiz{54ZNws4uVdfl^UK_^}yioM?+G_q|yK5 zgH+w?k>HlP4JJFhe^l&x1v|a1|Bs&l73MDg9~b_f!<%5|6<9Eg7nz`;*97VRkN#+L zBXD~cly@(xhQ1C63#D+cGci%iL(lHStoI)u`3TvM%NG3qw$s<2iZG#~RvYq4Diz3> zVWIz(Fp!P*s`L-ywGhK3`g-*I#aXv%&+&&2U58BZd|iU=io|zm_!cM&Xi`#iD%E=l3q9}v4veIac&Y4 z6obnT^Iq(PXHVGzC2p1OzqeLngYv($pRMLezO1Z8hH|>WvSyUW((!#@vN0r%^tX#R z)q$D#LC`(k-G9euFODo(x|pLv78w_Mqbg+Xs_WvJGg%-%*tIiv`?d0F42*4|`M;9> z&m$L{ICQamUmJH4Se`pVm>aD(7TM@E-`t$8x`lf~$W^_2KMXJ^&?AI=vo?GD%9#0! zz?8Tv$9?AVhpFfgQI!U+X%t^j*7TxXxCAO|FP4HAdCm_ncL(}eyG+CLD?CO3465o+ zQe)OCG;z)gC}U%c8Sbh&um6GGBoQtwqrG=Le9`a>iNMO?zHaxhiSqaKw~}wa-F8Y? zT}e!49a_EX`l4!0)q{37&MI@%T>onJX@BqOhtxheu;F^wbHNZyhcQckirY2ayv#n3 zpZw>_3Y3+3>t?;I2bCsq!vm8{*JpXDyw_soqmp%iG5t8vqV6{)lqowU%o~yPTV4D2 zhIEQdHL$*8G#Sd3H(sOy9Ry1DDThu}ZVe&L1iVMc^DR3LR*XVRc6#jyHX!~EB(t)O zK8bEBKe8JY%h)1P{?FX4Q=?lj)d20_N0S;qqGcgoz)6|XJ1Q|ab{`s$*Y})iH1KTn z&H<$+yg|7i{~ecjT5@-|5E;F8yc47b+-Uvx`pd;|M|M1X0j*K*#fwydE;hW|M%c;= z8(}9Y(9sr|R4{Qj{gK+xB5Q^H*ZY1Xf){8RRmgT{So3W$+D(+J0Gn`UV1rJcWB&^M zi$m9pkXsf%JyWri&}FT3Iq-t&-U79+j=#Jl9?FiERGq=6xhq6@8A-09wz2#2fLTO7 zY95&tW(5`IVn)M>v3}i%y7trGzjYBgteD6&(7k)z2!6+me%Uy)8w@OtJTaxerL-BO zIHPFnO3G`+_t7k<#5c8&_DM<`a^+>aA^L!FMN@TtpvGl(A4e{n?JgekSpe=pbMuzb z#eg0mF-XB^$GL)x{j-3fu@N$P(arg%xF;mi8`JA+Wn9b9YT&tKEGd}Ad{hdC6MBLQLH|9;X5sS#J^45@3bf`wh ze6lI+{wxUiZ;67TNZLh$%W7Y1JhucFGwO}{S8ER`$#K;P0!JOoT*8)}9Zu`S76U-f z8vJCm-Zxla0iKRD?c6%E&04)_{EGv(_Kg zKy(3rO4^hjajYswo3wkVfl_wvv8PojQeY%BAEHXgHWer*MusH9}|E)o5i%M zz8U)YCwaBObKwCH>p$}QMw(wX{jAoW1&Z~5grwL?TD4( z{>K$5v-T%>NN3PbtEU|2vT1)u$btM%12=}JoB&ae+ne8aC9*`iQlrx{n@iU+ZFfc6 z(n;xNW#f}soEWfJ6C=(Lw~{67C>->{(eMn6;Y%Hbem&nalW6&{s} za?hN9%%WncZeFbNP-)BY_3pMwxZVx@b8{ce&ke_0#NGpl!>I=$uJ#)5}bsj(dHB-4xL`+2yO(wF^^ z71NJ(()0Si(2eF%nbymaWp-dU@s`ERLs=WhkKIEY^X8^pdxw8m8ia}#DwR2!cVH=A zG=FNYrvp&^I<^E|8bHdQ?a|FXu^KOCHsDD`f_N|^7`1ONeXo@BJyc^OJ? z9v?}Ds=y-emhuhAk5-`kxy`mM+dxCY^qt&rke~7q)HCsg8E)HUcL<^XVwqm=V*Xtk`<@c)^ z$7d-t<_ju0mu-@n>EG$Ho&=GJYw_oes1 z8ffeoS!NQ6zxc!SxtQqYNibiH@6>_HhslD$L6MzYqiB*j^)sjF+t zi%ZAtiUg%q;FN;%Hpwa1+L4s^d6wL&ka8=EuwMI1|Nf;FFBotB`HL4{0pZHC?vneu zeL2UAXe{k!*X^IeU^!tx|_}-&to%p}SOXZZD!QQ7U<_)>mj=S&9Cmw+qMF8Kl(b3AcEy>AD=v zfH9q+#;r5_EPSp7JqEv{gN{ih+r*7M>oA0mZ9Au!!DB~8=wfqUFXkts27#2}Bt<#CiKN~p-$;+H6tz{QMOmSP^)p1}Sa%GK-q z6RoQ4+f>&*3mzi1aRaf|3UQgSSG}?QU8YUD;c+uU12@cM>g${D>b9yLz%pGL3g&_A zOS<~RXK!3m@~E0{eqVb(KPxjU!!>I05kH89-$mi>|8op&Ww;$U!}^EcyyLw zhR~taCvDAFB^xh5?;pPw#y+;|9b%1>Cl9X55WP2x?wuwD@!tCNe&Iz#QL2tpfwYWu zu4v+L%7pE7<%2ADz2>eToFeq2>qmxSa)HGGAV(gcU4)x+#`^tzHQw|+@8rILHA@Fw zD=e9h4enUcYeuKuYFc$kbR&VGWQz?~rL=S(V;7h5QYl1I>*=OU^aiBbMTkVtC2~VE zr+UB85by#buf!?-EW;9%P-5qrGSSb1>E=oZE&HF=1xPuS2s-C3L$iNkn198W5GRZT z&h4Igj^>v}+C^G)R+w0&(_J=#kPK+K!`0GQ@6ll5+?%;6>Rio5C)d8~o`cLHsP0%? z^_zhkaiU|ljVhs4UeEV83hBJ(jEQIX0YM1rk#PC~m$Q>xIL9Z0aj1vfw^rA;KPlZL7T1$b`QVCv625E5K*C$VDC`E#;a~h7_rnrwO;zBC;enC!9^Khg zE3hb2`~D9UY*8rGgZoxv!GQ$xHLx;8s+c`Wzp$W0{u8=~&7g1nt39{dkOphnVK0+d ztgY2vx54f9E`LHsw<+WCy@D!A0kPY~RKw;=G2II_d9y@D1{C()`jGiPVE&^ulXZ1W z40k*#A^fk&<6v&A$stbPLhLK|HO*^|Wf zOhs{5>8q5Mrpo-LJmVjs+V_nzt;7)8FJkyyr^>by6h&xMV=M`z12O;s)KYAh*AUxM zh5Um3_*Pjsis<9km+aJ%*02;66{P|*qEYJ6w;^^zMHDdGlFTpuml$tsPjCCe*j1ST zRdaAF)orDTPU}qWgKA*RT(t7bS+hF&S^{&-gpJj|vLQ{5EHj5{%dmE*Ch=!u10B5A z9CW|;LZh{Y!jc@Gx#o^7F}RD%FWf7i@=;Ssm+$`o>NobnlV(Mt8!PW!+Y1(@BO+nXzly z6cX*v!oqtYtS`p8mR11iPy}P%r5HK94|-yGRe&Vs7mb~BD_j|xgE*ZpBr&Ndox!9o z`o2j+fM2x^<7ndgE@WHnvPh>1%p`LP+De`jVK*(C7JAN+4frwz4d1$dQOhN}&NY8n4x36y zIQiF2Bm@Q2ye8)MU~6r1|G#4g8s53Y%M42ZF$@3egh^suU)u+8z`x3Dm)nkIeaW0g z$ke114bL~9+&=BpVT44VA6}j{zE1#2L65zo+f=X=zg2-*vbg~oKiw%@#7hXH7&U<| zWQz-DOzG9FD#=T% zlv8DtON7GcMTJYweOw8?N&*%!zT(#6Q!3SNVqJt2>(j}uzS1XkSBTYG2W`_+y5%J) zc{j^>kK5V8Hxo04h+yWFHNw^J+yPcx`sbGgefG`Xusfq6OHGmAdAPC@j#Z{<7B2Hg zuxY;}dXIs9MI96__81wBEG;n{JIWbz6dWHR)_+q+G_R2QWEpcr#Qr_z4_}MwoF!ga zcdAjeTs0jsj~g!iR7o0G2cve{NTfR&Xg`j}rAt_#HQ?!9b<%5S2K6W#S=lfUWE*N| zGDOdinci%p7zF`6laGNB4b+C!ZU=k>6aAEeEzeAVgB zmd7NtBH*r{^mMzS*ZbX$|Gp%*dm{B6N2^Akmy_qe;er4P7Gv3c?0WR`z2ox7y$5&r z**d#>rf!SHl4J&kp?Da2wK}LDkm*Y*5^3{+D`XFd5A{q@S4tbbR6g$CgM!9izSd-1 z&X)RCOLs}ApDDe@=8afb>BG~(r?Jr;2*#6Wq-a6K>*7%OO3!jYe2$E6XC^_SxeEX3 ztNe)ps)4Fa>aE4KX@I%)_{oE+I`)#@tx){WImwaYBg7C}3k-oEsRkqx(KEBS#Rjjx z!y~H|gM_n)U*q}o^+a@*2YOV5>Q5L`s=4$E(aKbu6Dur84xY;ycH1IEyMjV1V`tmF zFI+|=iP7Tf98%3Tw7D7zhWp)U9p}7e+hn{p&3Ffs|5Y((GIl-vEva7ytXcb4;XSoa z=i_zww_mtYXRGB{%f9coNJh&U=JXtOnKoR5(K_13ogQ51q_*gC)D10TA<*OL8FWfN z=6r+R2lKWj=s*GZ-$1d%-0@G6E*t*?BE;AVSPf72TEvy&{jH418YqwX1Y3PkVs*{+ zc*f2n*o`;PqtOI+VgEA@7!qHBysSAVOFDZIRaMg{4QjvG{U*p@Wq!amWli_Syidd5 z_BF~lj?bhLjs@@RXPNDv@XSK3)-22u0ch&20lQ2@W0eFEZP%&SQ?D*=chabBr9ByX zeJvnb{+rH&?(He2IXgIThq;176crJ>@}R_lI-Ydg={;c(vzBp&;CIH)|LXKD43l^vxEhQo3~%`_ z9FpIgIX6a_R>G?6L}P}le8xcuyS?kWj72WC+lFQVW}rGtZ+q`voro3`HOM( z#5bi=>kZg(;I665Q0O4oL?V31g*?WGM}_Jv9Z9I=LnwL>o%)9#@)t>^1gCnlUrFER zc3J)3C37Fc)+6x3|8Z;gS0uKPBoftsYe8rgpv9KuU zUvqf*aMr>1%53^p*pJ)Ue#LK@iq{A`^80VNQ#Zh_i2o<0nz**lVaSnMd(RPQ|J(k^ zZ_kK8ajGryEbpaXfKbLrcV!bv4qZ041ni}qj=g!%FLU57ITc5o7^1Zi zBbW=Dhr_@l9U0Mq>cr)ip3N5cx2ZXr5a~lT5#nAi?OMOIrN0t-!bdJMnvs@hT?p%A z`JA-+qxQd~W<)%oHnQ7^gMLArQ+RcVtEeeoDwBrby#p$u1LJ5lR5{SNVM(AI%lc=7 zX$x0ERHR|Fr-At-F0~;0`pE(1>6H{1D~_!&RNQp+)fL6tv_s|ko37UVYA+T!QyIb> ztp-fPi$8Ap^cZ%0r?<2UO=d58T_@Z;vD+}dMn_lqTwn^{af!N;3c#s9deQOmj~`?L z4ISQn>U^WFjW?1RMe4Pb%(Nf|(xgZR${h$0D@ygi2vXF=G^ z{lS*eum(Ee(#du8sV>Eb4p;Dzl)y_7@}H(_;zB~a@3`Ok;VQ^0EbgJtJ$810m$Z5i z{yy(vF}+^2(gQiqPK)juOEJLJMJj(hUiE^zB!x6i_Qz#2yHh=)FEwP{$@$Ed5;FDe#~ z8jg?E_$BnD$&hi!OWRc)g0Q4zj*ih134bzE9d!e-!4=hv_~O;;AV5H1)TXSE1T7DV z9Q8fSPHEX; z6KVW+uHq2^CIer~#%t5uukUU_&w-@SDU9Szu$HKrRHWH?hl5cLU1$EtU88%6RiAC@ zW`ueE`PC}s*Qw{TX>lmM)}$tbPsTCDKcnW;3~)vd7774Q-CMh*XbW$%(pND;#{l*= zBSP!!GaVmO-F@0NB&1Dgu>6K)q$8R?@$nM|_!>4BHKfDd#>xXID<_uqYv2w`vx<3_ zWC&l^u5Sc?Dtd|tPgJvqUx`(H)=&%v5i$r|_Bam9c>2oBu~?r1Tub-J1q|lynlp#u za)~m@v4(>V^{!7Iigw1%G@m=nR*S=yH7OECn7gejXZc4gwS$95HK#pltX}1GAb+eO zHbus)wpIl2$YORH1-V#p-c9)4KQ1pLJocEyIvRIcE+PO0Nm+bw!z>BE%Se??FWe9g zsJE>jd-pRwQ>a_uEIr%*t~WagyUJkgb~X^29|X6`WV{L9R`Jl)yZ<6_LEUR&hncJ} zS+fZG&U)OZkNzy&B!whsD$@YfWF1ciNwdR&f0#t6!61k>%nck)63nx9}E@e z(8=ue+rqnE=co2+1R;E3k4q$qRPFD7#)hbO@_M06V1({olptii>-@>orfYwFLn zL3Q9LBK=-VmR5cotI_~he9NDt_Ig&w45?`I>rOfYXM?q$*A~cC)XkaRnaQo%c^lxe zuH#I?jMd;+WDUQFD&&0G4(!gz3HQ>QB?t$NVHrC`GTR}n!_!n9sg=4SpZ`C&a z_YX*LBvWSd@rfKeTS+mi;b~tWwx&GN;)l|AL-X5e%g)QE{q@$bURHq=tb-2nn@9ja=%)AoQ%>tg(L!m8Jj?7RfP(-yZ6(m)-?1KDE658f$5l8NST62JsW!28h26%6- z>t<`a=qOhZI$0Bc6uf>ws_UVHs?Gc)z>Dtp3@OoJUm&{H+BIQPU(IP0Nj2tw$6&54hrL>qBp3rdxGcSPj9R-Pan>> zZLu$;v=0&6fvfmfG1~r`F6lLWOgmCr6yY>5;H*7_L~`*tX!+Q{>MF;{WGKQj@u2iD zcHyjq2&VtXp*QMjZ+T8gYr|XkV5mw?WalO7P8=tuSl{p3t0$fCn8rIn6T^6uUqc6L zqBRLcb+jyVD+~F0)BbaT8HH}IX`N?w>ajfEmgc@~V8Ayq_l2oYT|X2%p2n=>k6JKE zTM!M`5C-rECJod>L+qoh5-0M3xmE!j=M`^6Yg1!wzjA2#yF?MxJIWJgcoIEUziH0|#quFYSFn|E*5Kd!r*+p1$T^6hz(2Q)p@r`A8aZ$uepx=7)F% z(NQ#+Q~D_`y>u$mup0UH`gO5j)ddOR>m&w|??fuH+C?-y{*1dQgC)Y_n9Y5FO$3$Y z3;s%nIJ?CszsO*Y%OW$E7^N{9RZ>>Tw2n@B`u)m9k=NOOE~-`db18}^W9A?Kyi7oI zpuPMKf8>_p7%hoDhS2{VFNz#*P0`PybB>wkJi)MTZ>BTxuE~F6f7M&BUOnYZQsYo7 zD4H;>A;4m=;3+GQbUr-Kvp~zaB_ixZskIvL1PBwH>sn-u_7mh-|I9n*@%yUgBgbg4 z6Wu-KhpTI2K8nG-Scd(Z$#Be?T`?}%fu^jH5Lc?i$e~ftqgMyd_FDx~$$Oh1FEM#$o(i)@f&K=(q)5biGP?(YHILhJ{VKCa#FLtbF=@Sey|?y`Z7n%=pVU@e~}x z$rI&t?Wwd~Pwft3S2!VxK4q?>j6j0d-=txF3jqeWjMp6%b`9u%{}kqkA8^mOS>;0z z;p7Vc25Px|e~Q`5ysq-cqNniL3eM@qR=uPCBl!fy)tZ~~E)-Y^2H7O>^D3JJaDvHd z#Mf3STodD*sO=gh#ed^>>4oAmIPzD=Y6uXWTx{ifYf;70&$FgpdQ{2@;wf;MQuGod z=XezsU|EeYwl@~8<9MMsW;v(H$ChK-Y|m~SrVBO`T$ex0*zOx~GLqO>6Mgk7J5*q1g1y*>chZDCqmNsZ z`Zt~KHxYr{{uq&dp2}6Dy+zq}0GeeT92=xO=Fo_?|l1Nu&KRsk7e_ zr9NZRrWFZ>pY?E*AL3`zvkcmp&J8K{00QYQ7QaVniu_(I+GY48tJjC09L2!n(xYQ# z!gA-Zis9K$n+%bhS|W*BM78GJw-X=^KTLfLVhm7YsiOXK7V-vvxn61hff10fkjRjH z;73Q1>H-(iO}X4luxP4HS#UJffa+OeSA?x=@AE2|g=9bzD(67+#m6wTmMb_b`K%t= ztS4e$Y36XZc5HiWre2sfU+UjUl-9W&1^b~@UE7ELQHy20C->zvAgmsgoix4YFIn{qEuY7T?7EMUe;Xj`|Epawc>4sa zs%k*5Vi*=CE*H0^O#MY1zA!5lX8@b$_h>1N0NMVM;?&2-%diB!igiY_CC6td35O}9 z@Lrlqm-<=XMzO`<%9SP2^q(wn;ww=x#YFKK#zfe!NtsdGa6#1#sVpv>r$BC>3I}W> zEyuB{GjYrP(!sXx^p}n2@D+`lWY7IwpErj+uk%*uG)-bpk!-wT)ZB>R-dPWoXTOd* zW-tk!eSI!zEnilABKi))@Q&NV;vKY1+ktr)nqH`u=%4M^8G3mLjQ@j&G;lP5<5s$< zNytM_6!0NYVY@tWLb7nU0=}5Ff%#33!Xe&&qQFpJMI7R6@E$tjQ+db3Rkc+-MD;&(b2;>n`vfXk`ra3BT?es4Lc4s3k4(Olm8gE0B z!aw2Tu4*5{bzSduYRdRCLE-jRXNBwb_-Tr`NB4|cQ7Y>MbFzjsVwq`_V;2|}HxD@` zwI!Nw`GmPy#*|E|okV%dN4>v!WBO@twwON*XkSohq&b@Tci2}QaDF2oj%@9#oX)6T z;O^Nn`^Bb~?#$E%d<#iwU>KpkA#PH6K0fJL@(nZjzC#@Q1gy9{}N^&Cm zj9|sdWTL_KPE@@~vI4NFzWUb&GjbJsOgTA{KUIeG2}h2P^xX1TIBdW~oMBU5*XNIv z%=bZg36jezT4{5CIx-Mn8~c0u_9j_5L&qO|b<;O5NKm%NvmI`8{f`I#$Sm&&e7XmB z{yGwbK$>3{jdpeipc_AnFcNpq;BDx)=WAO)gwRWJKy;hOCO>rYXqVdl1@f3&m{Zo_ z{Tg`uD3kR3BibRQ-ZQ~jXR^TU@%Jce412YDLmhL_cT&!^0?x|yhIA)8E6pMDgi<3K zaIFjh!dBT1;w_#;&N$J`OUE8lU0J8lNVCRR#z+z9Ndk|fux9F}k}-J%6BrqK8+j4i z0B<^#p3o)Y3X_AYbD@=P0CDB#?6J|6+|+5vy(q557d z6&0dsa$_Mtf~vl{__AOuyE1=kInN?a6qYs0F6SvZ!j%?fZ1wLB9CXn9QO*s$vczqD zT<7BN5f8{b2yZ_u%tm?65rzx_5X-;C8EP5fwA zP#IAgC7HZy9T0T@UVSsN(rA^FpkDXQ{l7d)chN-rfX61HYIjfN|6YbF&Hg76xfso~ zcAG5u?a=VuuB_A+BC3L1I=h6oK zzI807(4xfUw=?1~ovFYE;L+kh(-s*Qd-18k?KwdGOp_~B58uV5%<1%Q-#C;0i4dYp zZGUXuhFGkvBFVS|eSCo=6`CMhs-zDmX#~INEpxmLqBUeeLy^EIZ}^mC5-l}~#KI*K zEznOfRDICXt)IzqmzdWcUz6(Ae!5y7KiOWFjr@aXG0;j^U=l$_y3){Hm8OR1IWQHg zV)IDqaWiw@*zd9K<8e;4an{+ERypM1e8?m_bNV?&RLj?51j3F)-Y1T2w|HcHTUsuv ztV@I(lSOmMSr78;T+kb$HV(VTZ-4kZ^(g=%!|xB-g?3!%qL1`rv(q{M+x5LaVE`oL z9lTul?~*hqc2iK#u-(J(G3T;wk?Y6bxQYrDIAP?9bK7^?)Zm0J8V=#UkBh7;8EKij zy1N}s7JpipOfTYil0qxRW+psZ)+=umrf?GYwGJ5L9YSKx>%5two!`FX(pS@KX?it} zF337e=$-W`KPQKZ$|ZowUuR4cZGfyZD2k>hxH(GXylyYVYJsUwVdq>+xxf-6rmqWL zq)VzA8$a-=_#1Q+j#{Pga~b7^)VRRrd!qXu^opL;c4d2maktoK@&Vs?Uv@&7l(u$T zVxvzDmYp6}rtwcxxPshy@i{C})8}u~%236N597Y~)0#j}E@vObhgb{!>d`2ho@oPo z^tfZ9maOp5`%LG>j~yyZeh_wxf3E7XGaYP?bXQNA~P-HhY{ zoA7X@FS#%8kbU^ikP!lv<*sFVXfU$F#mP^MSLU&5A`Ojd*HIgfTucxc6-ou;d0gs} zNpjeFDyhc049BCy6a*Ti5zw3dvFFzA(G&b6WU=NoV_{|X3}r_uX^{W713!ecfv0I! zIu}TbY%FC!Am&#xo_k=87~LZ%qCfYMYZeJDDa6dCXgs*yvU3SeH=SAV)^$@>qylKK zFnb0nrl?PI7y8qx5vO93A+yF>rNb@S0+93Ws55M33BPh?oanhq9lVC$bAI=O8>Mqj&VBDV5eKGG~{Gl z_&1=wBJ<#aAA--{TC}g>;%t1H_=IIPYlHi z7{ho>M7$uqRF|qHUH)2L)*}*wA|net6~qa;i9devl^1>H9YwxMs$==uak}sj?w!a< zH@CeNz`N9WdM$spIA*fCnG%W!mJ0fP(ljG5Wcfvw{4Ha+Z}1QHEAFOixHC_KFYL`0 zRgBR{e9T~j{qH>^m~|8eWJf~Z930{`lSreaEyH(RPDY}+-{(E|?1g2_O?%5zO{+U1 zz06iZ`HlrX`j`nGQR6fVP#IZSf{})2f&qmf+K5ze`f1-_iHsRO9K*2l+sDpkj_FKU z8XIi$ut?DF(aUyFXuxZ4O+nVUigZRg(5MGZA3GLOTGcEy=3}mi!jkW=+HI--r(5U- zgc89iV~d=Q2b!knPp1}i2_)At7XLQWi7^tmyzf_t8e0zEe~~i!MV4sRV9V;fORgr~hT6Ae4nYUY-=6j0Z_zJFegROW2JJgc(f=u~?6Xm#dmuF*c` znRwM$SOGs=e`x3SY$605Yu!E3gH|Grx^DEEugAfAgSYjcFRY-`12;jnK}WDdz?;_P z!240Eae45Dao8s=hYhH1hyMAZoqp$2NGz%6(PHiib>n1B)Bb@mrohJufkOG^Q|{OZ z=TG3&b{>13PpOyF-WSQ*onnb`~9w@mo!&U@eTbM?xR~|Rvm0MC@6I|`KUS)qutn3^q8?U62rUcPj>s}Mqpa9Vp5OifYvQ1TkJ;;j!~$Jfm*NA@Tj zFfO*T&wMl3^Bc<>glCuHV>oVD-p0`4{g)h;oWABW$4`2jC*TKVG26F;n`eZ<@Obrl~}v`2vZUq_ZZ+UkCUcq~N4Ehgb?mdQ`si~q?= z5f%#}tXm(G#XbCo3imA!r9plfpQab}KH;P~E)7HHCPfohb1~g5K_UUW8ebwmVOG0> z%3Dovv4zODeJ7A210!}_b96V3VA^@HlRF%foDI3SYX?B=rZy>xYs|UUO0s*xw+L*b zd<;}1V%b{L?6Z;HK)p2h zwknD9-A!>cU-3Pjm7)xKL#o&Znm`#u#CiiJ(`=Q#lpmSaccy={-bbbY>wxrM_s|V^ z{?n5`T|T*Nb)V(F>+n0-;mtx9BnaEGKB&2m$+`XYTaT;%J?Joh(AZ~J)z(8d*YJ7a z%Kn-MhRH?`8T<^qYn|{cQ}^^r?gW~jyH5o^4??4=^i|FW>4iTp6O!ahW`=K#3&Hfm zurP2QpRl2%d&GKMVjsA>z^r^D&Y;b%kk>Xgpy&-x(YmDrJ#I4k$lSUnF~RGogBb*9 zMpkaU@`^_J++fJ|1-LdoZ8FFll75|aT~%0JgWQ*j{WxVyX?9rO&TR0Q7MvQ4z|9RJ z+N7>))fD=5sTv?tn78kGY+;I34$M$iGQ-RG#=pC_lidJ|1PJR41Kose|81?hK~KYi7DJ2N)LWu($_CwR%>)aX z`_#39k~j&z6=kssOOPI_!K65-hxu}uB~7~8vmX{&0JZeJZ10;_cY1oD28`gH!2#~0 za@~7_6P*WSE@8~oJNXUeg$cLJBnWfQvfKAR(r1CnH|wo^0hgz;QSpaO+O&@peAR(X zV{M$ex)?q>ZauTkrl^XtreA!T<9Lccwb6E|z3i-Sw-9sI0Y4iWMV~OZCKPvKG+#}f zeF0SPD@8`LH1`7In(~hvV<98~`M;gDr01RxfYbMw z2W`?i&H1WT&yXOat=!b&lVNJ-NX_O`P{?{%Cb5-RZ`4)KrQ3m$B{r*2mbw8p+BG zLD<{FmMMW-xGbs%yx1N$*e^C%dJp9 z+3VALgpUJQHj~7k`{8)cVvGVj$*}8GWNSTxZTrGGRjm068$jnU^1Nsk%fcBBL&c}{6#X(F*+Wp&cY%`2uA(B@>FRG`4Nqww*LiW3xeHCyi}QY-i$$ZJz0O&VO<4=4!6? z?Ah;H&sy&vNKKig(K*=peRRIMLtTc8{4XA!f&T_NBk({+{>krpXTYp3FhjnwNzlSSA{3&FM1lL;_l+QsvBL`_F}%<($$e9FHjQa#!M4HlBe^Ao@|V|- z#2-x}Wl>kH_?u2CM0cS~-9L15cjnn(*+Ld97DkFWRntp@f?2?u%@70QcEzr-1(9-u zwh~w?)71eH_(8r+`=Ho?bRX?gepK&W{eDYPY#LcS*aQtEdG_CFvljgqI-L!L`lFJ; zWb?`5rN6;t94|W8h{-1Ze(ImuoS(>we+K} z)@)^*G@=x5fB%84NN)~Tr#WHwnNsG$70*W};#KCiv_n~IfP$)%9{IDkW4n-R*A+Fr@U;GG(J5BEH z7P?p}gW;N(LE?A;1%9;%afl}IgSxwH@oX^X@+ZJd4`~U>m8-xa9t6qOXd`^ zbJYYOMPt;typ@X^d;hccsQy`dSoZq<%w9}RSCtrUcg4T(ab>WuOoIykW+dq{$>6&t zY>~uMaA@JVmdwpQ=cl`kSiJ+{q2CwR>uC_x7j7edW8x65#qaKyM+SSoDJ6jlOXz~k zb+~Z!<40-Gz8PsMcb4~c5o0(qe4%Ha$w>HGD3U~}%q0HKK4UaXxAq6^Odlad(qYBC zuqs<&QKg-Eyu)0-YYDE`F{2@ku~t5cZqwdzu*Y`RaWA@r<#&0y#*k+E5my0J01}Zf zVSKOr7a@h_YNKTuv#)$IlQnE!B2BLx1(c!HC!MNeYC_*W@j?2XPJ|F)hfiOT0Tr+s zcW~z)FFy?!&U#=0JT;JVJi|Yyd4CF>9symqv*izZ`}!iJmF%_|)HC{4+wx)fCs}Y# zzfbhT44um!*}N051&Q&%?BsXv!VAI`to6S3eyX^#!nlqTzPIJbz`<^m<=5%*Z|bNb z_*j;Rlj}o_qw07&p!Ix@3xK?+ci3HTb@_j48|F6nbIZdla0|)*$Y5te!{8r5$NR_e zWD$&d{>w&HOxa>aYG4%A-0W4~%q=6Iz*ftql9Yp(<^Lv%nXBsg`5p&&SH97A%~CX7OnL*S-;tZYJXHIhCxqP$Ir*%SF%?>8mc&GJEP4QBNa?IV-B_gSYS?nZD;0vuD!aRYp-L8*uf$yX5IcE0|W z?cHy3=*tOQ;Z>o@^s;lW z&Bbt#r#kMcG#pFht!fI#ai3oQfupCyD|=`)D@Lc70`)^{y#=f6ikKRplOHLjPF~3( zF`k9FEvbG9Aw(IY2)J$CCQ{40c((G|K9hC1X1Kw}Ks&7dz+Ie-C!K8AW}s~%?>~C# zTRcb)K2k;^bNVoQDSEMtv+F&HPHYwn%45G+ODaP~=0q=yByfjE?`2}QWc)md&&&5zygqypaV0xQ z=VLYb%5yx#`y6x3`6+uv?_%ub@!c6KHl!2I5*Y`lue6UXj1zu^n_iH6D}6~W+Em3z z0{XJ`%Qf5s&E0b`zDB~52OoKu)7|Z^QZA+UuRQLR5AB@_iYupAV zcoPIP&YnVqsnsX-kEf)x|IRHNmi{B)VtdEqoz#9~d3Y9)CtLg8m(va2Yp6n9eW z)D1*IIA;7FQ;d8+TXo!S!8?#9R$N=XTb)$W7Im?yZWECts%=xMPwf|tU}txPhS}`A z;5_Cf7NkO|6IlVNn-@ZBekTm4|I*`~Ld~HVCnep)oyV=IZR444@x_wt6no)2U;$ds zq32%9Zmlwo>0Py7<=6QRH)2`V2{DO*HAp@V_qVTZmHy(EtDzQUo_GbffSO2ZYStmj zYJVlp^R!FaBA@COBGUJNY$tr2!JB_uZmZpMdtrJwqwH;ivrOxa$Zuj3Pv%J_oV8}w zpRuZ)@rb9smTk2o_917&m{$4ym`RGq2V&IlP~jOOBx3Ukt`oeasw0@D$cp(A|?TA+vU?Rxks*rLnNR@t5N+vUvgIbl{vIIM@h9}e=0 zi=o#X1uH<|EfKthf?QYN3niJstkW%r7@}h9&^|(%j4P=oRk&B~_jY-tlyNfKKV-0c4QWFTPTaE-hd+0*d7(0!C`duKiX+${Q?w+T~@g z(fN{b8ilXqH>767lo-X|zPQnoIn2fpgjM0R5$O!$dte`1mmYD0bMeB2l>5BrJu||| zr$G2AYU`7?X`B4Rm+VQ-noXx)487^%dxjD#aOwqG1ocHzrAyknM!a^l|5qZ!S*q zA#}>~R8{Y)IH*pd%=`5?*Q-Hb>j*|0mUGBHoBH$fAxv$qUXO9<(mUz~7$Y@y_Xmgm zOQ-gq(M}zVhNI~geDS)1amZ>HUKt%6G%2PbVEJYG$ya$HwELq7AGWXn9gic6-RFgG3i-23w_X;~u4zgR!I}~w z%r56*7+f_r^uQ3ZV4ss)wp;sO{M1k{-b;taJ_a-e43j2VO;&Yx#fsaHkk=zSlV8 zDPqOWM1Bi6jOH39-t-!}z~IV_Ez%|aXkv>7F8cTF!Mrde^)|iC5a}!7QwAa0$S6>X zmlM(PR?2opgp9IB%+T&C_Ip;m0j=tao)E_(Xc^(1$#LTyL*x$lSVkN1=^yMei28$- z*Xl;s)ox0*T0cc*zW}#$0^FgAZKSxg*W_I6KB+WEa3?e=B z6y(QFlHje?>=~}#zZ+CV0f4^bUR4c)#ZX5LH_=sO0s9lpbKViW2Pnqg`mup$8>q_p zq3cCiv8)rR*EFU1EcggQCQxj@P(xr%{elL~rEphM#hEqq-FEgZLqeJl|3Hcr4c7S2 zai{8i5c{nOD0WjLSJJW$pfjY9LJ-J3Um;Q~e{o;13`lqzM8e((y zl7|$VSMj(ROV}u3XR&XP#`J@7=}iEdIn~UZm84Taa0UQ$bUS=Pb5?w}aa`M}#I5>y zBcuakO0)SFDlWv%m0fF(Cc>dbQTtBkMe?)=@kV@6w951@G1S5c>Ct>6w|j)_YBNhA z{T#tIERvv^D!K!G_yc-wq1CTuPjiHB^x;$O6E&*?x3ZUHtCG)UEZ1cSqaB~uBfo>l z)wKWcvEdn*=ZSdAKoXgw=SS=F(2SJzi0Sf9v*Yrj+&cOulzH_3MUZU_LuFfWD#}L; zmjYmeI(A_fJq!TflRzQZq|5OK5M4}C4qOhN5?4O;WS2dm;YLBjlWxDVD zLXWG8{WixZb<=w&`JWU1k#E!?8r?7G>u*s8J!l*U!0ms8&}P^Pc&NMSz7p8t3AnKs zrZ5XvfsWf~bNYu;v@EHi5=GIKz}j@>UUgZ|Gly-P@Xw&IsiDe*1Q-9ENM-D(CQHt~ z>J(2R>h9oMstwjor6LG&PPsz`=DNXg&9?)X`X0KID#r~{!fmp=*QQ8zB7DoO%HQ`2 zUoxuq!+%-Rm;8MG1~JvRNYAo@s~e+z<7?_&tkxa66!NFwap) zP=fdeaHQQePx{(w%6nIL&P|1>RA48W>lTvr+F|{9%j)-CYjl{k@3l*-;pB2z zv$*y^2yD&EXAwlFjIB!}YIuu^vw3G7Lensdi=tOzdG?xxh&%b7`Wm(Xqtue23RoId z_#;kx>CSo0y`WHEm!Io=8(92|9rYvYFwbP*>Lh;_5wFC$0c|5hDa!aEIn-Nk>^5AQ z->l?!c4otB7+6w-7e#W<90$ZV09O<{>YMMmn7g`}KEz%WXG$CdronR^_-<)>6($&0 z2m~zm^1J8F>Z|xxuemZWfmDUjtu@wOxT zLfV~;)s<6sQlJD6?N?2NWBq40M1^#+?TN=mz1H-VGFOPKMG-bhDQEV8wJ#27al6p4 zfC>a&IBQM_sc5Nldd+U^SRv-q&)y*+BUM8z-m3(i!)72zY_!(gzg@zX3U^xdIG+z@ z(!OX!J={W`y2v5cCMVy!gE_`vCIhV^b~Apdp!v zW5K~uMLW!zf)e@uGPL9SWW8*BDChtQgTTq^9y&>OZ2&~j;Ndk~M$m}kT<>}wch5&7 zLWb30C|$>&#{3K23Z><{)s8|^L&seme-?UD4RdSC7nAP>p_rU?Sf~+9=lCSN`4EiA ziuhF|$+I0}3f}CqGGvRJNNRF!dO5{iN~jp7g#)UHvx0j=XG|x&UV7iILm z^tBjaoe8Cv!(}H{8cRDGoF1@3uDkZ&m)Au93XHc%Kkf0q!PgMF>}8oRkh>`1sa|xGJXvZo zej37F)$5{rtZ~TwT^qrJ2LUhecwFLie$pMb#_=%y6MX;bhv6`xWPO;H|Z@$fM4P*}UF>X2` z(A4UKQq1CFx8Xs+8~Pl3S~wE8yW4kyU|Vw<2O``RDh;(KPVC->$`x^~4MUD3BlIPn z(f-H?lAA>~w5N^<$JFaEEl*{87Sp;|e2e?MDA%k_Qp-CN_6Upx&$+cdK|a;E9g?Dx z;H_?JroiNt!p{0SWmh%)_OT^4P3Q%yR~=rP*m5qKqz@_hI|I14)I)5&k0v^!<@C`N z1bGu{tc3!zs3|HFAFV$MiujqIrzalpKB^ir`~!SXhapP&d!EB?z1bHtSM8Y+6U}p% z8jwhk5F`(udm}6tIKv`uc~^ziQrJnF;K%5{ zV1o~><$s5k*Z=Otd5MyIz!-T`o?FRmX<5@Zo{~^)>zO2m}e0k1JAk6 zIIbKWd~)xqXhVx)&NSEcJ31b37Nsp~41Hw)mfaG5XXpb)o?m7FIHLc$pP^2?rNxn4 zXZJ@TtJh?Q!&|NRe*e|@dU(u|QD9_+Y@;XsM9xl!9wNej#9)OgWU{MA+i)EC-UQt+ zio7{CL5wS*FtqPuAl7~}^z&MQF#F?DU}(bSAy#e((c;sl_Y+sg?MiMR8m7J|j|cz& zKBV9C8pHOhO0JF+eDN3sK5qZznc#bhZoc!BdxA- z$4N7t-oYiMA@>@Pqr#pfE4&50hQDZxPEJjD{u1v(sf%Q6)f9}sxo5u8P4luL-;d-J z(CDWT+KGlMBkP-b5<+`0L%nLa9hp}Wf8x#e$`OzZ&{uZ-i3iJ#LMi#gdFC1` z|EKJbesu4tU6C6=|Ibez*Z3-h{u#(LhmFA}nTI;?pp5!Ynm~**@DqQGw+s4HK}kuW z7q&3LDi`GE1b2ZmaG^{gHuqIBDxBa8cAdT)1|4-X?NTtzaX|IgG^W7F85-9XAvm-H z#6DX&40I0e_`^+h{U&t0P)IS&n9uBFbUa4dbmxB@-5of^&JG(Cc59~_c*+>Hb+uiU z?k(8h?*MGW2o`-KSk}5aNNAiUqMyusL!z)x3$EnTAsx_colg)oUb-DcV6>I9Ajl+Q(4T!($guHhxu0HpoOP2YuOp zh=+4)-t=C`fff027rw&_pTNz+l;QBBE`{EGTq4@Xp5R8I6WzGiIhF_ z4k@&N))&}~eBI6`dTqh#yEf;Ao}?1!b5-G=iSb(TA!fhJD4cn~j0cCm!D|H@Ag%|u<>8!52nC3yJ5+n0mog+a9S0+twU-)0809VvG=W&}!6w7N*0r4WVQdk@t_by&H*URZks|o$ z(qT{lp#@Afyu~e~hwksK_qeKeTxY%(nX}{z>}F2T65x-Ca-2-euOBX3w_Dd$Qm)N^ zVZ4L+A#n9PLM`vrX4{r#?CJ$cn%aLgFo7wNdYG^V^uf%REI+2o>zOchw6bT9WyGZs zLr&3Jo1++8E(iH)J|!~J!=?Y_&QDw=c8@EN{P|j#+%l#yKvX3z|pOxL>J5CC+ zqW6(OH(xuBrR~gN-b``IVLoK-6}-YP@7_ffAM4H!LPEf)@g*=$cruY4cv6T5c~3h& zF?ebm9RimrLhO#}^M*ic?G5dUSi_REJk#KvRmzmoSC?4NuT zhIo_xp*vcqtUvDlq9#?2-eu{&YIvNgRo`yKR_G5m&?+7}LhOnL+M4;Yvu67o+hSMy z?~H-l$^j59kog~%SGZp; zCutQ(*(&oT(oaU!?xh%as>kq%yCzL*TV-?mj+)~mslr=MNgxTYSEEN1YfM~n0IFhP zC9fO5baSF*3Uskpjxn~4F<^bEB&PoI8=hV@U7tWe7Cw*pvSOiUPB}3g{w6MZlh6`C_=SEtLlTAfhfj9vQimW`l_(f29>#!aL zFOOd`H$8TiWt2rY7{A5@*gV$XKge_YBOwWt8hL?f9u=E4x_v*ua(WZvkE3aXso*`N z6b>)&Hb#1|*q)K-{2TXq0PDar|0;I(WC+c{7|f}%{WIJM{)xT(edwGN_U-ApSJ7 zbbMnAhb~$}JIx{t>+8f~&Bjed+R0E!>eUZy4;}q`9VSG1n=zi$#DrfBY9cu2j~Dm)SjA;~FQ4A!fAv zsiSMR3yvjfx2dW;@osX_jVJmH&$3p6Aa69X4K-0KfFBV;Mmft;(cujS@W+*Si5b3h z)V<7LMkq7w=+z&OZTc|}d&C8G_-$;}++)`?^t2OT!btb-yz& zKN4qTLYO!MGn_Q^zB%geee2nny#6DfqwNL7PJewbui3SS80)y&*~W)xMO>j0MjWbV ziWYtB<#MQYM&JLtwg1*(j?iEHz5F!Cl-+8qFgebHYtJyD=GRa1eSBBS>(lt{vRTzR z)!o$88u9X^j)}t4A)x(fW|x9puql!B_JXGa>UPlI%B><4$s?IC8o=bGK5&+a{_nsU zXWlUNyi)v$ykC-(-(#1QH}Lc{j-6Ytx!_hOV27n6WJEPM#ilSYf-G@g%K>Dpo2lx} zQoP0D?>&|F9?i*-`G)HZr`WA$`daP9kPbL4+g@v-Za*}2@o#c)(GwQ!M$PQF8DNrZ z2=5^7^$+78eAbH;k59;F|82q#n)t#DkFX?A>jO?3Z5eUs{{G_mdOXKG zssJy!X1vQoh!^i*0{1xdmZ5o6S0j5;>{6_d@3|Bj&Vb$*pS zKYv$CJB0OX{Kkq2v1Hg+vqe?xoJDReLAQJycr3I`T_O6bTpw?TNbv(vZ1KY1di3<0 ziOsB%+S`Iq8)+J+7x&sz`zvNg$L)QI`)lfx0H@sFyN9;uEvW|-~4Dz zQCxXgx7)c_did99ZrH=xrr9>Fu#F?U6};z^n1}}Y`lD6Ct^da2EMp{>d5Ww3wn&ug zTUJgucq6A;aclZmhpfZ|)~zo^Qh5M*Cie9Pz!SNbefB%R_LSAXK#gklFJdUR(ofE9 zU6Dsl8>24*j|r5qVAz4@6L`_tJBj||xWew+7%P}@*8>`bdqAX`{p@^3@I6K&9JXQX zbo|#u@%hu`qlv|7c7=xLq#DR2=}&7gz|gt}l~j(Z4(0mOUYY<&{S0!0-IrK7V;ppn zz3&>CEi=EaVPK#|hA0TfCliaJ8@36i=IyjoQ4#6moCQa7JYVRBd8*ad?2^BIH6p$U zlphoqQN;T0o#}0!GRsReODdj0Y5-^}Fl$FG}`s#So1OpM}FHb&-q}4`ilHJ(`PWxB&_1kXY z;ZW^lzOY+Y6+p}ji~&)LKpf^i&BE5KLtPo|Nud1|V?_o_jPFvXnD5{7q!!!>?#zKp zRgt9099a!YFTGo9J=MsGXXhXdF{dBD0g2LTsHc|vdq>+Q(nJ? z61yZP4LfZ)h7<;01oY_`=uu+f`w6|*G%TSp;?Tnv@LmIdHx5Nv1g%N|dx-*8xN|S^ z8XHb(oy{yJn?_npOmuWA8D{m8ItUcPOF|0ifR6I*$X#p0Y>KIhpY+)G6nE)pE`2x3 z&1HrxthSB+H6)0UYkS6zjPma$Uxy2AuSQF*K2pZB;Q4q{nz5Zk;nYjN`4~O zG((h4Vt2PhIb>sBL@fI1HV(+oij!J`?&TKpC%|4ZT zTcOj|(YyA?)^c@(HOI+pCVSRl@yg+5jKpNJ5Rv(VjH_F0qx|Z}A8z7k%?P&9EpqRz zW260{O1Htghwf1Jwz6}uZ3b@Q_TFZ++csON49~@>B)30aJg#UboT5} zV}*X}k<*D?3tBp}O^_OqgUXFp>IpCUpjJ^+frs_GC;qeB4zb^p!njnD*fizgz*a-g zm^;e851lNX0G6?ytI6lc^nR3+G|OjUY3&Bb{@l1;IuXg7K26dNHmXs zFG4RuOLG!qX{3>G12{b?VA&9pLmYFYBO@a5;;PuBVGvz+GivzLQI0>JKA=SHWJe{AOqRnCSgyVb$MGoz^;9*Nl z5l2r4a$5$)BA0qz0$yLJ0(H_5uCnsD*0Y!DaGa^tVb?S@J|OLc)UST$T(tr;cobpR z7oL_~z&zF9t8!edKp!=9YwF8Me45%1Q}T7carO0?w1n;rFEmisTN=c>3LGZGb}rES z3EWjx+yALX;KQ!t{wa45ZRs2jTubcEiSF3i`D@Den(}JhBbWPMlOR)1xWlHH&Lo(z z42SeE@WE)>#N_H6CDc7|^Wyd*i?BuH{J@uXk3jr#C(I5Ac zA=!5uEpOEydzmFaeU4Mkw`w*hYM)IsLj|Y|@W`mFZHXf9#(<~LlQ^h_lJame`a`V@7%3v>v`A(R_j?y!PDHvI0o!^O{B z#RcFLuENRTX`~tVNEksZDgH>V^Rb-GI{5F}<+xg{Yy^j|DR ztx7oL2z_jn-l8ZZOvoKG?TpK20e(~=K0N%JoH9d+`^@tVFST16`L6>TwLHVl zRw6coHQ%3BvE&$jM2zsQV!PdiD_9J&wC$3-nP@@7=!PGDQWEBU9@ z{>DAOG3$fFV-M%%>eO|M98;4BG?!N1uZQojCg0l}^e}>kYH#%?HA+1f3z^RG>f9FKrp|LP_&tW6&k{MQq*s4z9)b zX$LIf8ih-sG8lA4V0PbAzh2dRIJ7+66HJera!9NbaGp$XtR{enA zam~|iE&f6&fA=oLI0EImB1R}k`pLEE0Jat6`a1D;Qq(SixR1%*>RbcL{5vqI^^qi= z=txxuxZes+74xET*8^R<+>wU)!_w1kLQjf$Q*t3mr$yZv+;H~xgzRbZoLzsw;w@)` z*w9In>TJjiDAwiuqn3n@?U!gx=ft13Z;dQABm{#LKtoE>x^E5Yj~?Exb8IpEa| zDPI}=xRq?4$mX6T+>Y2 zEgYZRJu2PZ;Zr4>VjpQ(%`pEnH<$|92;6XVlinIV0Y<~nW%Liu4aRS1A`k!^F4?Xk zH=a$$!p(@weUZ_7?dLO@pt+r1s^NOGu)_Le6XlC5c&d}tlkhbr4dDl%=_`1Z#TWnR zZ79ynL7U912o3~Y#C#E$R$OH|+dTdt^|u`uy7$R%hACeDCe~fn)iaWTH31wFCbji2 zLS`-4KWh8Q;0{Oq+YwJcl_4aBcwv!oe0x046#V_uZF7owVI@CTQcnoYhf@evxmjiL zgS;`M{uKCHq{x(SABDYUrkXgj34h%jC>#9|LXAGue*;aCm_G+QRrF=}6Y!=j<>j!# z+y*)}a*>`_LdWbBy5R83V)Q6TH}Sado#sqqO$o{6j#+gL#pHuB_&dea-EUuwE;N=^ z9}3CPOYLt5G1a|i-NjVVhsdzCTMfz_HWnAY6>+|ge*e@k{7n@7_r)~F584lci*9iH z)GoMvDmV~V1Lys;`GeATmo}H@-*tN#d-+&Z@xSsZ${m@@35Ec)M7liRrqJ;V=Lmqn zLDtD^7)J^|yjPN5ckJcQUr3isN67|6kYR3OI#$zvlO1T|I{XjzZ-(meewf_8D*qN9 zvHtNKLcjYo!XUCV;h%bRYeBK&`ac`ORK#gF|6k~b~8ZwpV%KO4X&fA2RSO0YszcX;!0g&j$!G$v=Bx?XLFjqZBn-bnqMqi z1lw3Xy095$T+ zPM=Q2kw_Fr{hbvpOcx*z->|DRQN6zrt8Y< z;fHttYT0|Crl#rsHS7ucm~viwn^tI~@)^hPt|6F62&!DC1|iS&@8fyxkTYzi;z_Tj zLn`E2wtFC}=6u`G!;@`Gq!~$CrUdo8<2rhs835%#?NZjEX2#&kW%$kZ zOafO^1NLE07K$iR`qtT+i>@_Xs)WCP|GJNrqnKF{srGkc(Y0RW!EEHTB`TM6@W=$j zhd>(KP;Fp5LPY%)+pZ5KTWJDZ`g`$2dANU6$9dlM)2YHuXgQdqRW%%2>Ae#wP@ms1pP2;m++7ZFHP&@0>-T8TZ5;t<=&S z29v1~#@L-apB=kj`p(1Z5i@RexRKU=G!?tNGKEsNxfK7z8T<@!I`RZR&D;3)$;(SEuFUAJ*$|KT1@j;1L3ZHK-9{i;`3oi!Xt z=Yinc+C2qp3UFPc=v~NdCc{jLKM{6F0YM@a(u|Su{Q_`26U@k?$BpTs8E&?DH2`*F z3AHAxSvZ~WX-YN~%v=YCfY=DL3NRwp3;^M9W3G>i=l5T93Ap0(RiK# zeal~nQKRDiv_L8pEkE-7Nr9AJDaVIABI{9Ei`6e7*5%RdME=w5xQhv9p+Qkj<3%T@ z>hJK_GU2FWKV-;;OS+J`frs_<$rBwy9|-VYlRY?*$xZHfwnN+EzYR{ZDJ8+shQd~& zRbNxs;B{q~EV9D{P{0>Vxzz0I1VumgTVI#~%%?HC; zp11s6{$@1$b(5eld}*g_*D#05NB6D-qP~8>*cdV_V7HBV@5)DOfF5zxb@th1nQYS5 z;4xWAQrgOh&CLU0?0N%V32bic(2GG<;KU}kp2`ZJVo<}mp^5_JNm&}ZWF~_~cZ?_5 zHaF>K7x6V#Cr`M;K2*|ATckZ{yR@`_xEEuMp_yyHP+%7pLR*v%+Bk}Q^30vNG`W`0 zRhpvXq|Zr%ynyFA=N2)_!;SCj5k63zBWlm*7}*}GPz@$!a>s4E8jFuH2<@<)r?D%M zEt}->p5h{M*^!L)@MV!i3b(jEv)1)eFnG?npq#3hDTi%Ys8s__MeC2Q(KK3_<)8># z*l2cLfxO^zom-yk2!~sLldf)~gm4)6;xGo>ms}3)Ys7&aGMRh3ifC8ZO%#{BQ0|=cCbcaT>U*OwKCQ0QVmAy9`D-VL z^Yf$Kbvr=1iK?Jvd&q7fs-;@aO$wQ9RRIAj79rv4AZtx*DwRD!TL5i?$y@S?1J_0N zKEgKXWF+ynlx51+>b75OI-Nh`PzI;hl1ci`vGc5$@HW1L#Ua!`-cm$hhqE!VxGid$ z(RNq(pqQWHf$1ktM^&PCr&F{rF*bv&4l~mI#(FEMSY6_ZYZZ<+( zoz~9_<0jRaQYawEsOD&ZAscBOtF(FhFX8UG6W1DIenn2=B7iyhyg0ar&;6R%q!9Fd zqD3vM!A|0iEsBXiHO8D%wGm%l9xGFMaRpjG467uGjh^Yo$#_^5vyLe%c08)7KX^6~ zEms6QnY-A1wK&&L-k0uf{k7NW+QqChr)g3G58j-lzYQc`j#&ru-K?1jVT9BqaYBk& z!pA$Rl(9>9^XH2S?`-N>J-QZ#`Cpg8aDq{I0MoKJ;gsKdQp?qjh11<}kx3F*50eP} zhmo&zzw7y)3%ui2K3x3Amp?-Fzf7)jY1HuRnL0un$P;W_-t2VckJh^S0;6eZA(*&?9q@R`2Y{<>NsCH0=kTy60ysY3`D|}WHeTI*dH_Eo9`hC)u_l}vOjkttaI-YHw8HPTXfGl@H zpN2^t5JTx)+>t8+98ySqmfZ*hu5r4e(qEQXAVgF3^N$=A@>{hb<8jB$yXsG2xP*Wj zE5|g=vP&TAqAMFOXJ@aDB}g1eJxn>6;*KqjS3o%a@ozW?8(8mk#L-G`+}kWCo4FGe z2XD*6%O?L4Y91(HhK4!_Y5h?>H=V2l`%|vovni%gL8^08vXF?K*Si{pltu_9BoXz` zs!IcwvN_z-X%_l0ObyAGpg>L0(w-b<-tjDWtH0CFufU^i9RwX zERhB$=7=I1R`}zm9XL^i5|C<kn*6ev7>?pWlmXZEtIJ!WxIU53MZ$$*NWSo;t2YcoyJ9HP3(p;Sly_QroMUs z3*L@=Vm`eH9_}S?%LD+qr-&(-EwDf~ai86X3Zx`eDfYFkmw%xMOvsV1K@!;5PRBNH z`n)?J!6`i8!Xa(NW9HCrYKi}xev>mWasLeM0iLm1cCA?q=8uBUcz&=`Q_2o$D0+2& zFR1N+gKXGJjX#(Z3+zv-AGnX(hzgf7>+JK2P)itgz0@P7bzo@mk!E z`1wBw-_g5Xn!zE;e-jvKKX|J~KYAdzEOnzM1e0Sss%&0vsSip8>Jxuz!zE z?LE=ZD#8XlwNAw7*%fJsBAz%ZFo4N%NKruEid z%1|_S>qH9UZYBOCB(wWc?7XuYp08B#y)EvYFa03pS{G?Kx6Qt`LC;$pEe&@agV|PW z4<86klUrb)Xfe`qHm8J-p2yuDsXe)Dv4ZqkJ(>s&r9nM>Asp1rNZe!QK72;9!kr}*xb`**hCq;Ly6g%u0=(yrYSjdog zJ7+#(eKSYcggP!;Qs*~W2CVwCu(umpM`3OF<{WWwLwWlow{eM8i#^cYgi`(!An#&O@lm?Z#@T74-#JK@}#|oE3=K_wbBJ0mpRYn-`U2RFp=%v zw@OwMV(+oHiJt>JfBzqv&M~^K$NBoP)!1kn+g8)qwr$%<<3*pV^<8eN3U$$aSWQ`__nzy!43CS6lWNY2dr(ECP5b@b#n}O1tI*q<);9JV2EPM8-o2SP1CbbSh{~fI>HR z*05unWQ8d`K}gVK%E?+QB2M}!?_-Wf!x>cT%s*@;SlET+id|Za_I!!(7s-Up)eypO zI>3T$F2uSmGKR+}L+v8lk5B5D*tM;cJenFpw` z;I!hMA0z8uJ{ElRmzJo?iES)S!*a8*3%sk(g+*%YJ#M;n-;mv6#mPwe>1E zT%|D+{}B~t>McfLe<|E;u~S;@_mo6E8;I*AW`H#6vlj&vaS-*&ATA8lEgS`w9 zra8K;D1#*YoT}b0!@CbC8@<$DAd2v~0;#T;UAsAbs+7p@*$nl#0`6P|f`ZlipDhAw zZRO2+YB4hz?q_%Iw3iUb)3m*A)Rvj2!M^|QT1*<+q7>5VFtkSJbO$d2#X24_kML}K zEHnCK$aoaCP7qYYhKmk+r^!H422|X(SN*)ocOg0)Za`yFB6EsES(Sod^m~3?D7K)h zeyreHMMQQD6;oQCLMUAZ_sCQy1I=NvnuR6+)C8U|?c~tbvvHO@AB8qSA#H1jP;Fa` zLxz@qeM}D<&)EQb_;(x=mf99ywfg+8YVMd0z2ZmTw{eJ9bkQOI4k)r}%#{C->8W}} z^$KvF>?vJ`#chrTQBNg_o5JwYSwJuxY7j`t+8^ZXlaP>i#@fP80F8)}N;z1^^4izT z;jHuK7JS*{$$DQJ%R=@$0cm4|hUb0FaAha`lWir2}V1g;Ih2;U9;s^mVl23DUsZGl(&A2Mz^mHjc~6jb5D4AOLv5{69Q;EH36^ z&J9<0#N42q{=708TA9Zp|BEE=L6R0;T??T>QDz0nL+~`iHvao^=T}V&o<1u&0{@zd zpNRK)k*B!T+i=dasJJL;Y?XB?`dr!4O@q>HKihMwvptS4PZDmLR0`gUwBD>5&d&z)g8dBZD-!qY>7HHwl_4N=)%kBx zA0A|>eop376S9du#sNPrj4+ONS{*)5vBQ~NWh@H>oUAnwiymH4XK((M(J=DLYL~U1 zCo1qIzYYHbSVrT_b-Y`Gs87P?d$tqn3|oN8T#2?9%&&_o59}AD6{`zDZ2=TKFKVh` z*b--dLMO~&Y4ysBf&@6T4#oO8LqDQ#qG1h5du6qSEXY!Ll9#-SS9DY?j@@-8wbXJ1 zXc`aVuxzwLicH6gEoG%UZ4V_75r)@IYS!B9sfy{vu4ZvrDSjqkP{h(HnL1RUk@nCb!WFV^`}SJl$k~n~-Wf zpVYim47u6lf;3;N-tTPD?PU#CkJ+`Y_!`3&j32f>$)k)XT>wELP}AbIbjrm}O79Ja zw`&J_(ZN0ny>zqyEyHc=b%PzU-cNRO9oNxE636gX`RpoQ|Ky2(+YHCa^MC`~CS2q~ zDF+-S-pAATA-mh~o7vwoOK0w9fZLwS&@aeZ5R$0_?A4cWYJ={)oX_t>`k@aK(xKgf zvn4l&in}GXZ&LnG=z%z={L{4A?(WCq4A3t-2y<}y(d)(BnX`RpXJ^iD)gAtgQr?P= zb59J@)!?4P?pHiJRuaD^2P>5Dwi#OiOGv09UZN4-y zOMZ44#0RyU?Q`A6S=V-{(?F3}=3m*1mjUFILeMP-mm7X5y+C$cbXQqt1A(-$(xH7k0b)bOC=O}@b8dU}4zwl$x!)F+{4hm3A- z5hP*CXIf?FDlUbGL&7T(s5gYiZXppU5ybD@&LCZyMkyYL=Poiz86 z_TfszOy$1Tp!(%Xwa-LrbMHS#X5;<{7$Xsl$`1S|8`&xWpJ>rD%N{MOp)Evty$X|; zVmS%jTRR-ie<4eQ#B5BC6@p&+;8yMWdZe8jnQt9gg@h0841FwnEnz`0mUx0Na7m>l zz_P?%)Ib^4w$dmy5D#O>osZD?)7;ZM^rFrlTU_5-`7JE|7(SqXwE+Er$6rd`Qwb}i z%6n=7VeNaOLtppUM1{c!Inb^19WIT>aE;>POEEI~j@zLlaSQfmwVvH>R8DV)^*&n& zUiak;;#vTUd+~CFt{{6J^?E-Op&wc!nI?*5$OMGk-_hD!yF|!aDy`Uh**vZ#@QP50m$wMIrZ^(JoYG@K1C~z!n;8*6+-`?+G9_l0>xV|~O~A4`fGU(BWBJqrQL{zpuOw+D zsKor|t7RzMu|Jo-CUWRns0BbZ;?TyK=t~rY_rni1d}GaTaedSQ2BWq?^Mf1cMAv+o z9{_>VG16K1^2fmnz8W-$_DFOzm$u|tN?Rs1bcObwiat5#H|oUkRcpe>8E`22JF>Wo z;y77#JGKxpUpN^S;S@Vac-<35h(yb_U@T;?ivgAKDN@xv0m2Mk0Q;*4W^y_PN5Gkd z1v^7Q(X}fdAp4~GZ+dkiP6>)Io#5f;7cUZov{MyhRC-+Wg>_>zci^)m~ zx?n=jGixD1;m$6ilIpK19Hrhu_d;V60~(r7#fB^+CTBDYA`Pav=H^6bDYYG8k&w!T z`1HYCP#&38CMbw^%JrN-in@x5yfBdX6gTmfGJm`Aa zGRfxz25s(7brNl5P2i4I3rb+5@;=9kr}YZfGN%2ovA}oS)7ctn;do2X&qOz6KmA+Z z%&)LHOruTu2xIORcg|63V*9h~*6_Ru-Xl1Wyv+g`j>Zq74k`3^%4{n=P^B`RynUKo zIgN3sL#LFWFdHd|v<;)QgD_ccZ#t9yvqbnH2J)22trfLOfipX}4*5mGe#*4j$H>bd z`%_P*%!U=Yd1g@NT? zn^#wzm90Y4plXf_|AC=&*Y}B8PInw218}w<#d0NT@Pd0JP)Dub)1VSqQ&)L<26y0T zgC7Kh-TM5~036bc`kIqU#^Fx`pb0Eg?29thr{q_J2z`4B*THZWRxIsmFOOr z#XkzlTKeyQ*Bn0eLD_%$fWLli#0<|6dmlzP1B!duDN4Xh1W&1`F_YJ2@DC3Fn-SLJ zr`q~#ii8TLjNq19Kh4||ZxnU=c-c^$wpd6#Cm;o9VX{R`@4HtjT#ZjNsMvTSoS{h1 zh6$~%sx5{!WwP2UU-WmMewH>EKu@}%TUxICHiM(JQg5iILn+m!Fbnqirm=adf9)d_ z$O3_~prvmk1la~$2oVuV^|%|9m4aAA7*qXZ>?;d^&Ap`~($xX)RZ*VCX`y9dCY<!s^PAWM~?O} zK}x@XzFTjxzIcSdMx5$v07rZFeXfY12~^(uJai<}z~@XLd&B2lu6*;|L(ttNR4e%$ zy~EiN-RL9i19tQ2R7AjDg<7HG@b+kb?(=aWDv`sOPNlj*(io9{kYu6}T%}sQQqEK} zJ^F7POt}mvl?cH)4G$=5QBcqAYSn_z$bTK#tiqRip*r;J+~3vXL$_mBG7JkH=aZO@ zJawZAO&a8c#0^&~O=*_)jF1A6EQ=g~XVy1M^N*uVnO5e9$jjK^lOJ?LM)_xY$|6x| z0#M$M-6fRDIPu{a#*@0|!QAXiIB$j(=!Zo_+J?e&T}@+Ru$N<`j73lV*kh_b;^;O# zbj?~gXSBiLlqrNQ4`TEd7L$KGGyy-zP1EZdAX2E7t8p!rbFSnrA6Im>rik$`mT1|L{nvCA(bH*G- z2fzmGD{=Adl|89~-wc5o<%}&1yUl9S_qLjD(|>}L5)TNl+uI>|MS7 z<}tn{CPF~F0*2)Oh1qx&KdaWp#ce!JZ^2zXTty66t$>AiHiy1Zt;zc1xuJx-SK z^Fv;=o8DFm0v}#&bUKl=@Fr7}AQ=cb9_kwet@IosV5;DGfdc2YkL^j9)&COpB{^fY zh;lCr4vP#!PjfW1vCh=+fB+LdTaF3+p31Y5TS5k`C$Wz)dw4Q>f7oD597GpPUr%Q& zA>CV3E}nJIa&z0c?8O~88bd0Zj6RV$w6Uq&q@3S$pz9O(nG1TnPc=ih^0;Ee`uG>w zqmvuM?{B~8(1k8~YIGpp2CkmSTJ3_rm}l20Grem|>dLZXmR1^NgO`#P5D@18f#W}_ zSRfAxWBN(MqW|l^~*r$iZJFYuy4DWshI!yF;L>QBk2ok_@i&A2y2CJW65?XCb> z{BY3U$LIxZ94eZjnCFyBOoNS2H)50bKD?C+egL3I2g#{*C9#h9M0J!gNb|FlwS} zaGE}fPHPA$K?nHHG8((Tqu zm3JVf912q6HKDU;hd}oEETrQbMCGti!t3t6E3^coksynlQCZ;dLR#Oz7hLa;d+kdw9HLAVhb~7u{>2 zw;Ex{RI5D>2>$%anLH|+#&xa~EsKM%1}n% zrkX}Rw)g761@*yeQ0N!DGT)OKGeB}%Ht(*hf{{#? zPs~J>c*5>nf+`j2m~#Wts;j=Q$m@$t#;`XCI)V;{Y5;OHsHrjxy}?`9X2ebwao8|0 zKJxD^s`O)JNVCjTY$3uFq&0UX-1XIVYc+Y0#qv5bBy@2Eb%a;z8j_mk&=>B)dR@^o z=?Vq3q5>crY2V;`anM{rTBM?!Wgy`KW=U_$q`g|iEomw zTNgX0j?7Ss77OmSKP&tfvgZ5h=qIQ*v2LfU>i%s_;9Vpq{8B5ZL3#Uw0#N25z`Ax^ ztU=xLMgNw{tiUZTKv+ybPy+wEr)cF7fa5n!QhQU)9Q4fbzn-6m;QJAGvHP4Jh?tQ3 zwpAzbhZ7OPnQ-Y6ulI`OY6Lx3@aun^Q%o zL0{8X4vaIQP|XgrNzmBb6O^C>w)84kw~lH-%+Y}ie2hWu1hMQMi;UjjB1yi${9Jca zCwWbqG0gb~8-?7P^S45yXn@%6^G|jO(ud6-dQ-l^q+t|3_!cF)&+0q}S~|w0Fmjaz z-{jhi{_c4i>iMZNNcmf>MlK(IuYMJ>;v-RB6*}K}z(HuR5+`j|nwmV&Q_hQf{F0KM zR%CU_ww50cEwKl5{f)jjg59{ZpatZeUr6{Gg$_Ekf5%_ZDd|ZJg^QQzRwa75aa(Ek zyC@*b>8z$+C(7(w_)=1tp6fAs@fAWTBjtw=L+pjG?x#Z@lJJC?Ab1HKF|gEEMwP#- z7gApLeSjvajXlc9!*V;4;rH;~&it_~wpIzNW~CCj#>gw?NBa0w$hSX=$%Fj%$GB2$ z8Fbbx9s67;2VV1xidKyL7e}8^Wrt4g1A_zn}Cnm6iAA zgaa1hE)ljrY#)&$PfXPnJ1b+3`!XnLhg~b}Qkk$xKq_+@<5C3Ap7iS!6%xN~{cdzP zdgD=lE8;YpQxAckD|&za4dbYTgNr_wW%GA2MF=46aHfRfY$Fh62vg?sMQLKcP!{>(N6mY0?8NT@@ zv9{71u)HImc^h3I#Y|G`vNGLHc-%T}VqZLE-nu#Xy^Wcecg>SEfd5JOEcsQ}aP{1- zb}6e`V#{hahfU-5`JX1Ehk`NIKEnve^B=b4Sa1OQ*O9cE=q!KiiM(UMm+$`JCsQ`|YqDf}gS$Me1w>sD4?Wi#|BHi6#ayyq!>Qe|<{ z*ixZ}O^}=3W+1bw)C7hGa4gxJOu(r2s+Y(S-usT5daV@VHf{AU^*uuCZoeMEB{zo2qrjR8_iZEvWdBl747oZI1D$ztlioPbr z)mYXn$BtCbMI%F)PIm9xMKggEaHIz*sesXVDVrwN%5QHW)}BGr%P-vyfkL-9C?b8; z{5a3!+0mly@70Pq6*o$Dt}M!^N;?vHL(Z-TqD023frz;MwdxS7OhCzEQ>S9(UcmAm zICwcO9`tz@_qCwC(;QeVf6?<9J^VEC5g*BNPSQe~98X}ti|l{*@Q&K^P`%5Ar;vH8 za&!_l%0N6G*S#K1zR`08Z7OO+RWwK~Df05)EBDqU&} zMRfo3Pkyt7ccC4FHJ3-j)DV^?X4Px&3pm@KG~I_owu$oQ9Dv_Wc_n>c2JJy-ideK> zd=nUuRQ+t(RF&kw=+ANVgLGwsAVlxUt2!_{cs%qmV8{wDO7a->NSa+k#7?%_)PUAL zwzTqdPib;8hvnCDG9<&zL$Fe|=e}va@+>VIR3ZSi6S4@(eKttq>F5K~xg6hEe8aYb z!Fe)f5Xk0IlBWWyPk}3~V|o-c)w!40^ty|#GqM(DFP4|cQ|v4gh9${E0y#NsS|kNN z7QU4Z1)B9}cn9e`5&v*xTHN?^QkW*;=?>_Htrrx?Eci(e*BjD7oH^Z^zjGTNAb2?@ z$lwd?E*Sh+KmPwLz~?W%iti54tDccv+av7DYc5(~2NDIZnH)YjN%!oymiOwAvRQe* zDbH6Uw=>5u*V*W?-^{8ldxuntg4Juzma6#kCR<5w+@5=f$>ykZ*=6VD^bX3cOjAJ5 zk`gT`k5qnoZA%8@OcX%hqqD9N!006&R^>Wfp_?$ssOD%Pk8Zy-| z)M7=jIQ_%NPOu9-NygEvLQRuX0Qk@yq?z?9=WoR6<$VCo`TLo@c;{BRM)#%v?tVek zQ6~A>0^bk8+JdqgtIhbL8Bf`fI4|rXU8-j1N=~5GYnJ64K@XUI)I!c(hFBw}}3D@`6 zJG!vl{vcv`px`1(6HN`#WX+$n2c5(=gn&^jl5^i-@2H^qbD2zda$6}wSWYJg=FB;b zB?9p3yu2%&^j;k=JnlS!uNopHG92C(?|?MvS0c3g=B5+)eKurD5vv|i;e(EHw%XrM zT(Y)sSEn;d9i&6h=e;3WA(JHix?L^^ z(znE32J7buWn$OKVYRfLxkbKKaG@ipWzdmCRd|_|w;Ue2whI4hb5`fyabnnGM(Pmo zpQ7DU0-H4-h1TQGc6m1S|EN!aT@eD^L2C%ZwGVEl)pE<;oET++R|8w1-8$-9$wCUo<3*LTr=+sjQm?CU zshq1<)NxZ|aN;tV?H_uBwZs&UUXs=kR-jEs=RD}$=Dx*d7~AvpS09Ibn1 zCJ9eOidx0RaI{9uisn*MS#q7m`vW`{1tK~l@>0}|Dh zjGIkI`;&9IWGv}vt4TLy>%N8>8(7NMZu`wfMgx$p3RTnb_3IT9*5k}V<^M@kXMp#O z-Uqs3;DyNc_3)=|{aZ{a`-ue%c)gzm4f1@veh^P8qQTH+_ zH-TC3eeop51Tf97_GX6~VgJ6OT7KcI>Q?t854Itvr2?_5a{;DX7?ZT9RQ>p0~{ z4b%?20B;utJ<#2nNOd)a$X6A_2q~7mv87AwO~iLX#a%f;1EQ!3t)I)EKusor052kGL0)JTF5cOGp$t`A@v~rz^-BTzO#|Gl3;?mLV%$MBbuJ zJnvDsRDpN7sZrbL&s6_Nz#|wtX-A7BQ&|R$X4tb}l>OGyh|FqCOBQv)?<$dcrFCsQTsRHy3AJ~h)E4-_* zW4r&nDN0G2^RAHTkLT%K@KT`ja-n>tyU|Qhx)MnX!b1vin`)=rlr0+C&R6aMw5(vk zwaYuZk`;o3wfkF>dh$1v%5(xTMo!T0f-6-%>V)OUNlej7{CX3)U1UrfFZ*K~${&5P zOLlF!0YtOplicJe2$Nen`uY|3>%7?(O##VFKqg-Klv*nYBnaDUCTo1Y<^WEVEo+m! z0}3W6j0$jzcu&XR6d^M^aflHCHqnX`#E>6ll7j3lSCb#?xxmTf?XJKrLJZS%p&|V4 zet>d+apnMGL!7C>Ks}yBQQVO5@sfqsAIOG<8oX5y*p=6EXu}MA1D%)D1OMCu6O@Dl zYAcstiyl8x_PEK)>_r82JHtQ?C%qGoAlX2#KNX9cSR1_=n7RR`KXDz^-;?DqfzRia z=s?ktlAQ^w|E&LwS(uu5R)g+WM*T0+ST1PIC7XO>%(MMnsLt$TY^XRwXf2G>a58cXM$5KXSA2b-#P?X&rr=vSX5{94tj)S7gA_e1}FxeW?L{)6x~l;4K-O zr$sv(p#!YzUSRfD!0<|Jp^Fh}s_&kSyrQuQ&AW{L^B!0v5kS)EM#^UVMf_*OIS_iMoHMtN=HGV?bD+=M4OP= zAxu1zmSb0rH_r;&coo1{^^bbG%qKVgHj!A?;ubGv_E?vsc*M^-gVvpG`na1(sgtvf zuBo-lNS@<_N@p4qcw)khK^+)2vpwhFAtd;s-|J+#;er?TOB~gPbH3(55_M$o!qCPj zrX^M;+-afanU2b(Ov1$3TKalA-R<-(L5&~t4O0O_UfPJrp}Mch2Ku*h5;C&(O3$#i z3Q9AIAokuL8Z+TwWg&gxy+>rdL^O0GgqhK#)zSbN-1ZP%G()N&WoyP;;Yz`p%VdpG zkx(Cxs=A(N={4+p2PtjFDipJfAzW zxS&roa)H(NEFrN)1Cvs$zf@&{WGl(&_E0oTSu6B}K$9q;e@f!bJ*giOdTv+1vgv=dI(wJ?j@#OE-@B89EO2lvlPvsm zDsOc(J@C+I8-DX?#3Yv81{ff9s94P#a1Jzyb(yyAc0+!-=y zKcA6Pmiji?^zr@r%ATs>-jnJQblB(^&Du-g6Nqh*Kh&fq6&;ZwX@9R$ z+eD+E6(A>n*M7m_Ht8Xtv(6s+mxQJjp>DHYvb?__OfPQeLN%eb)ynt=pzaF^uWC{m z2f?D4?>iSulfndgfS}Y!G?yc_k=`%Q%3drgm}@(!|%l7R1`IS=P+JIFL4TK z%?|gVLTYDQZ8WDsazqS9jij~Ed;qy@wAL-KuUoiVQ|0(Ib%=0}Iix9In=epT%R+Q@ z$<%&?c}Dd=ER(u4TfMX}La7he7m9$8JcF>m&rGPAeVeSS!Nu)ANeBLP;l7)$ORnt3 z^BZN9-x}1)6Nr zgO~q9s+kOg|7SYsxLbKEJ5~N#iYK-e! zhdJb#EUC>x%|otFwe9HeiY|+lct(H$4btQ&5((QoysHtoi>P(CAg^YPm`faG(crda zVz17u9xq?USuZK@7&p z0a#DDp*pv7%GAgt#}`PHPy`s%!Pw-rBl)PEjq#$J3-q}h&0x95eK3UY;t;wflvj`v z(c#%r(XSn>{NDakwM^yT5nwEiakqRjn|eL$Ro&GZw(6dj;RMPVcC7G3zbnO8-TEh| z6*!n#aC4y`C7JY%2)4!YNdw~)o;8F%s!y{I6sy)gdY`z6uRm^=;%y$dH-~!l%nmBDv+WyhE5#TVVoY)`FU|dAi}nA#85x z7^dO!;rl!f<1;;b!BMJ-qk}S>%;0y+V#Y1VUKN+Qurf(%)NEq3m>lCn6~}M?(5gt+HIvf?b1^SBPSU0 zB2y>F1ge(NG)FLBPLJ#v?O3SgBz^u(!}o1?CEz*VVI`2&a(w-q!}A`2tv-nN1$x8b zS*B(}lF>?$50!SD{)b1iyv_dKCsHZFK-dr&&e6bcxMvgru6yd->SiKu1pHf z1x&@ky&2C$%swI==lBf^_aphtxkPVwl>HZC+$sY4yYv)dOZ+B)>zVs@Pl&^GKGeOMbw0Qy@2@fdD!iKGVFM!D+>RN}?AwY5TeHd_uU z0<-7P&vrwkoJ@iL_ZPI|eh1`OW@s%;)}kSfZT#f`QRe1tV1c1UW$OIz+~q5Vlq>Hf zJzq35l*E3~gebi%D!e^fzKLo2f)+hGWXQ;7@VAXL#EHT8@hvnhT*hwN-WEiD+Hpfe zlBT5d>m4UWFm+IMsde3yjttLmPK>;&v@IRvUkW4P$gXC=Mf6475>2hXv7ln_FXgMS zq|sd_9v~@|uNqI{x$=HeZ_ZS)bR548#eVli22ovOhFcR$noRDF#1J7GUA$ldijx>Fr)AJ8gn${8!lsXf ztxeEQp}de{Qi5AAN_0&qo>t#@nF`)%Jn@p+m&>3w}f~u>!n%Wowg7$fpjttDepIRzYM%vz0iY>DSOrK1>Ak$gnyo^;qEcZ zp>RoKP(UkFX368x0rX#U92}r2^d(RCcXknlab+s4%Czf|{L|EkU0sJIT~(R`(n$B3Xb-K3HZDsJKj(!Q;_ReP_EfDVK#xQM zhr+kcL6B!{*h5vbwO>ZzAIeloGn|HSFSAgcP#vFy07@=_-zueWHhiZ)P{wpC&rV!} zQY?^O=}DiWy*^pf?ot~IQWySqFQUBm*Iz~m$(YZOnb0P@kLWdZ;ch8I?ec*Wx;M?0 z9j9MWp1U^Tmc2{Wq_N@M-VcH^se=@CVE)+e40Hck?N2H|$|lz%RJ`X_d2;VmI9dQ^ z<#w9EVn9OX)af{>2^I^t#6%$dRQ#*{qpBtjL9)45w&yRUkGS8$DukR$Jo|ETDm{~% z^5(V|Y`bTOJejA%w%*tyiT?i+WV@I$EQezZ6GS;ccfDU~aq4TBf?L8|nMEED6$7RR^ zw;_j_(HY!aT$Ye%7G)UnNd5|chnpA)@K&e1y-e|K0gO4f`!9t2{^9pohB?b6qiLv8 zVC@s@yeETvEi$fnSd;rR2pk7)v>U3AL-8hpBV1nIzOQ*vNHY+1XlSe^ZYGoB?8pm% z4heGk2!ED^>Pz&8ru35sZzgSieeuCe=-Qpqr3F>^R;PYm7(j3DQZ3|?7x@igo-+AT zGie&zi>SJ=I$rvYwV6uwz4LbQ4LW;aSUYL^b8@mVf8Wj6gZ>#{a?Y~Y}-M+%-*ZQVU1+()H z4F*LQTlIOL-e<9&(&t18?)H;ir7&|ROvTZrmk#rEcfZbr6jjIY-uU%-4Lt&yJ{Dnu z+& zK9QFVW3HAp@^*{t+_Npt2u{Qr2T((V>Fx3*QlIF2W4Yw7mnd2x6feC~vHbZ&?Suy0 zn&c}-9(WRMSZjh;np-)Tpxf;4znmD(QGK6C^)^ptjr=S{MFOIW-4jCP0JKc89fx9?;j+ z>d8sSSuYupFMB;5oB2I&f9sQLC}xov$RB4SAbH{KKP{*qNd(LH&BQ#ve!r-yK*5v1 zAL2guWn#)tDv7l7`Ozen)drYUthZ!1+G+GkrLSX@-B}yY1_m>=y)AM)z6L$|biIsB z{!eO3{jSmX{WR;_%8Iw4RMy!}x7*j=6TYF@%{_rO#}+vRX5JgwDYdCud%Axr}@M56|C1zPM|7k64L>cE)>k^;&OxNhpuBb%_G)mjvXLjJni zTcx>JCAwvoVTX~kpqZA5Y1ZW*<5u~{9{mmnT(WtSQ!R^;PtQ;N z9^o*`ArIE#g)8L*RTKLqeu6RNQNUNt?YFR(vA-Als^5$&9&mZ zDWnR;BgR%%u6gkFd$yV}kti};jGkvhyf9yX%x`heu64dxP@HEs`E@kKbHnfXsQ4}F zve7e#WV8L21Ht0~>ZAdG)eb6^nS_Ozoj=nlc$-uuvc}5zvUYy-$y-C}7GLFM)qd-d z>=-2fe5RV1&}U{~Fp?L5N{pCxQ}(QWThXF~RS(Ha!aRuH9jaZTN`QuB?~IL+7XLO1 z{lHn&k;GH=3&mEK1%MDhUgHXSWH>5>zd!MO_eO2+_6*H05 zpATfX4W^42{`B8Z1@t-uYsdkvbZ?4}?uP)bjldeMUSvhF{lw(AqTw8L<7M)0!?|e) zc^Q6#<}@$qhFTOaQ}DAP!w#BGz8{&Lkmsihzh~wqHTKEXlWBClRf`O4xb?=x9+pPC ztR0=vZT(MU{u6mwU-#W8mPvl!xP46BEty>FXbIV3TNU+WRL&zkyR6!IVQtP++&*I5 zJa2w!stgU7gn7jtz3VgTTUSGCsBkFj%AD$riOauV3YOBjpw?NIth?NqHC$i~TUkuu z82pC_-I%^Ma_S>N$Qa1=)Y9@vF8V}Jwb+cSN!NYGohfm6lSOd^xXLH`c*D#E@I zvT4eHEY}sm?rT;BeEkx!bN4{%aE*m3$$+u>iU2N@H}&KJ}df`^$<-TI4?b4l`WL8p9C3j2@zxiA$eo&LNt+ zj2{w&RdV}0XsY*XpGH#vuALQZF}D7!l3O5+@;G*6m3v%p9f~w$O`nB@UGbPj?z7O1 zh6H1n8PX!^w7IOJ-#!h5v0;E&U##Q)ff3#VQLfjeK)O<&xR;;?D3rOgT=_Q}hL`V? z(*#^H$jdIZ5AR58&Bt0a)!;>MWrHnrPBXznz}`crNvP{mq1CA?+%D*8vd#Onlh?)c;&Y^V%QhE{ z<>&pe;IuUzbc5%-o5O?lA7dXcDCA>7W`Ujd9t8vw)fO&xHf+t20EketF9_P|iZvR& z17R7j1N5par$T6rTbTY7w?yGsBn|s!a;G2mo(|m9X!9JJa2vyKa4rfq>gyFDp%2~1 z-fP=0ec{Cs$NEmZMxVSobpmoG^3p?Dek>2lAA4F|p+;f1eY5F|?G}bgay1(3iGv_S zsBX~a<&-?0OW(1I<48EaUfniA>@3qZObc5YQ<_u^B)cP!$di)GwO=tVyKcR%a)oP@ zgtdLuQ@Z=G6ErjQQgYa5bfDl1X?XwnIN{%vO0=x{r?;emmLbQ9{lP}MQ;y${>Q$($ zX{6o{Pxdt4cS>VTqBJnhG3m6yz1E4wDqO@2+MdF|=mqo5EJfiNwwL91#NGMH!DwqD z59H)%;7JZNOfKi~ZqaVh6|tM|bAi)if(At5Z@9mT@Ys=Dsl!t%)9%CY3Pj{{){M|~ zbUDPAK4c~_2+vV*K#z6m%Db9htqX49*9LsM-zshF^epPZb*4G~z-kGv>POpR*1H%} z)nG$J<>CC4zzs^L2{bK?;32h%dP{=~$+yfW3dPGWwBL?@wXU6}G|o1oFw*7Cu4q9z z+aBY0iIMz&766U^V~f1Rp;#1-JoGv(L78Vi^{D~81c9H@MTxDKgGY;)U!f2@|oB^y7AD9xYoYDa90kjs1%85^z%a3`}J9nh#LAY zQ+ZIE?_BzV9>^BOO7b1G6)B-ucS8Pe=S#Ed*zJ|C3|KZn( zFWzU_CqX1{kzY1J6)qP}oh8>X&MINxb%>qMl424SNxz3$=UsYqF@^bKChD?B^VGH(Y6uMKwF1lI2o2hs2TCJYKN|*9$&`Fka~% z6|Fpc16S-{9!0*!uRQrV5VP{hz*;e1?CxM)m;s9i^FQaDSRKB{1lenL+faDu$r|{z zd`c%iQ@dM;-%7q*E)dI5U`vdq*6pN!b%P$t1RQV0RwH2?xF4hq_fwA*>wWb)xJe}d zG(Hb0iN+>ZEA4e(5Aeg|{KAq#)i*C2!JN}HNDWEcn4ojWfoySNsAsW=;cMsT?{v(~sK02jUs?;9fG?{7~Gw~ z-EDAQo^$S9@46rMKd9BatGlXtg`lF!(1)W3g_$|PdG9Usa_Y%D2k3$-)Xdom;76 z3z5$|bK36`-KE#s>(ubJ^uz)T368nPv}gad z&x^QiYS@L_!X{PV%SJMgz2;KYhs!B7uT9zmF3EU$yz14QXWW@fgPyw|pBYg697k)o zn6#|WH9SGZ>URP==2DPFWR=XBbq{JEoh5aYmCPE|1WMXuI>Vh-x(z#l*(?Gre z(Q+jMqZ~;D=J#wG(R?|wOIG2M1K$@oce@_^SZ=3|CiTy6>LV>% zOI3>b$hLQD?JTKUG}A}ZaFnv+u+CS(?Xv5NgZ~4u|j3qcFYyA9Ko?n*wo;{|LtXw6P-^=Y{rK;dUED_I~Jj9 z<236(Mov53*TelU|Hh1_2iTGifj-4S&>IEI_I*1Lf-%SdKP-cOnhDg73OHi-y(!_; z5^6(^E5e04zN@*=?w^Hx4a+Iof+Beb6!bu}V}UPTZ*F;L@|yy!Xq8o!exRHE_X1r_ zDPZ|be8jaOL39@DRn}p zLvHovLjzid_&R3EcxU8*CQ46e@ zE09(KCo8F1985}PaW%s0&dAL&oXIeQL%&9SzmyTTwo4?dO|!DY7QM#k-2tNIxWFh8 zqakjjVwc5Zb}nuhDp#{8z+z%W%{oiHYU1n{e_5gpg&JbH>zmhj;-hb)%Y~#>C6}~- zVX?a}-Oq!j_P$Ypag+k3y0$~wpBB;fq7MpKbxDtH#@ZWH}vQ zOH@Msph0fkQKyXLxI6&|e@gM5(g8J5D8fz}!>c}eh2uJW-|N|Auw|AtrwJ|UUatA+ zKq#Zk1skZ+yB*05K5#kn#fwhwNi|hA7FVGU%lC{akY}L5P0*X%6u4}5bnbCQR%QFM zL#jIt(dZ5ZcfZPVe{8lm9^C!;Z+R|NG*>FWwQ(7MA8<|h@rB9n@Kd_5smKAO?~GtgkmWDLP;qPcfL6o)uj0@UPaaxuIEs0#P#lo%0p?S$>PX#vj+G znvyctK@}^ft{WP-8-e-PB_z6*#GjJJ$nSB-Z@m+LPW_f+SF1;=i8|I?S+k)vq};t4 z*3rxJ+?OKptZ<7KJzLq8X1g#Ovk%W{OGgd(RC%>s(p@;;_^SJ|zS7V7i0F$n+qI;H z4K}{Q&Pz9@8)EvHmYy5jd#KvpY`GOGgn;h#zM)Hy;uB0%{L77EdGK!pJ-k*2?(xwc zcSH&C#xPH@%0Pj8@@%be>~iC$M9GoWw$Ao-TCX1AJ{fzRC8Wm4?;8DQRQc@IbIk8> z>MD3x&>~;U&f5bepaJeDF5o;8d-eo(9eG|Zx zTLYq~!FEQd9(A&Tr_%8EZF**Zz9je(Lz~tU6$$uKtDW#oKWK)V^wrei@W`R^q(yVe zN;zs>a>coGGkzn6P588y6elAKb_{!ztDpH@)&_NW2sR2zg--fDyKrj>zCQieIBtF( z+w;ZX`Zxh?_rHVW0H>HgOBJ$vC%Ae-nBEtsc0UipUmHcTS7dcC+LCkMPRNUZX#xj_K~^(#ZZ|3D`8 z<5{C$S;t%TY79wuX=vcW2&gpp_N39&C;k7PC7vP5zIWl5$TBLL?8P0$Zh)J-VsO}_kber|=KoN;gKJ0Hf0aP$zgyvWf- z?am@q`scytj<4~7g;SzoITn<3i~Wa;vAaH*T!uW=Bl2;y|Gqgm8dIc zA;F^O=2b|pg`&#JgJ62Rx8!e;UhrjowZpmp_cly)DjnK+_o$K|I9hKPn23xV{dHBl z=PE4|d4flOae?~2GuuzR(3vNwLX<0sme$z}qE04&V4k`$v1)kcef&Ag8A)~#+aC0RFVeY+}KWzEpJAM^n_m4l$V8UCS^;Rkt;0%lhS=CVy1Z`r z*SL8OQ9n3hMlA1w*rdojpm2)ppg1_CFFUbFp5HFUcq8(N4Y9b zZe`7A&HZas_F(AFtNbLPLu%jV3*EhG&cW&5p+o3iy75xHKGLR2v%{2)RE1^)ua}U& z-AK=*UFqx5^|MPevl`O76SFtX{(YfuU&7{|fXf=n22CurKiYr+9q-Eua)jQq+q0j$ zc6@=it)=U;(~m}!AAF*A<%#JbdeRgJ2W~KZU(#ny&9zOHwG8uL0f$^^gPGn-RP~$~ zKyi^)vPyblUdPnkr6&jS#spQ<%G(F}GjAnIVXPTI)gR+&p1jI165CW6tcb)sI&>qj z1S}}cEtR#1?4gPX7zAn(?Bm(QD&hT|>YFEOUda!;B*nfbZPq;e@-sJCsX zloZ>}U}mv)Go&RlNYOi%jsHpFoPq#WsV%mn4E+W|4LQnF*j{nABG{fqrG{TSccSxN03MK8){dwR6OWl^CY&4&<*FzH zs0N50dpX)Fa51|r&3kfTk0ihchb|^#Tc{RAPmxR3QQmZq<85yUyuB-Zjl8ixBWk#< zexE5M$@im@%W(an>a-im1Yq)oupoYe<9<5M9f;QPSu4nu21m)za<{DyBN@Djbw2n1 zZ@vSSAH3g*OkX4uaWfV;=5rTc+<|je0MJ&Qs}+dqSjPQsM^X^ONu40~XOAf;ptezj z@+&VpS`ZEN%iL|@%F7S;2u~VByFbR;D;@vvBc)<#7YbW!?S$9rTby=9B|j!$Qdyu4 z5v(@Um17ue;`x;g28R-0vBKDYJSDsd)u(%Q-S)BTuq-E!qHe;FM*o>Gk(5IGbC49*6v%hNz*lr!%Y8M9d^XsW?cA1|x zze2}Jy>r-A5+_l?!+1Ou6_O#VRx;N``4uetN#p*gsmT3fS9RIhYgp{@h_c zofihR?L-d}^Q=!tU?oIP-s@=>GO`)IJFPY^gt?ieYN_t9d!fpp@4j|lO}ABUMJETP z)DswEus_j|4l3Ro1%NPLP;dlP--Otc3=D|vXeHhM>kDHL2=p*buHI<+ecjuwz!`E_ zXlEt~9cn|Lr+$uGvn)+zT{Y_qRm`LsJ0*|ur>GaMP%fddo>N#CLN0)+JtKaKFIajr z1tZVcKS1A0L(RA3hj20>LI&r&?#L9fjFn3hi>bx3a97T=m!@8ZJ7J2>rIFY18lQ|n zuE6&+n+)Kk1zCZUD??#c%3P%q<4u)Mmgkzh>WQscv(Y!8Rx$@6xgZHjY z5;8kvOHIgsqt}P6L2_*l{vl?Ls7`s**~D{Z8i@K;1H6p zQb&d5Bav6@cH~ZBM*tQrJ=DwV;E7Lq5QNhjBUepVIWs59y2IQj7Yp(<9(>BGX~A$? zlT!LgnSLbsosuUO-2cG&@lMX&(1BJ4{{l4u)oI~*-?w^|uFXK9q=_wv@Ko3ng?41% zrk+r0`?q1cOXMs&s`fj|654hfM5@ev1wTcK^vB@+VW_|*&ZnDP^A*HziSrOT?xPjF=L*N#@2-B9o!0jrCawfMQ*)s2|2cg-;h%t^Af~vs1^3 z{=-wf@v*7mF(3MB#9mFlmmwq&Gnt~M^-CKRsp{^aVjEvX`1c6t6^sdljPrCes6!zG ziNxd}=JeDr9yHhx9jf@rpogzdRX3=p@+TFh(E#NA^Z=v}GD~;#S_!KDsv}wuL*k|^ ze>fR=yCY&(ur+CN^O7*rIeUD!b9VowAAPQZnjCFNAh|Xi%IzUb9>$9{XFDnVqvBbf zGKczI2cc??!P9(kT0a&_&N_qY?`KY@5V?VyQR_mw{YC3aI5jU0N7kyiUo^UP9-COK zb{|)^MLnV3^l53s-L_k2d3sw|eatAhyzJ^ymr?7LW~4rlWx8pqZ~`sSa8;bzIUm-( zf>K$Neg`hgnXCULkYb-31fVQ+KiFvY+*h_b9>RUH`^!2BUT4?OZ~wd{cVNl?GGH(@ z;1VQ1ZT$)Bs1#+V_x|JooLyq&q4U#PW7EQY7}LH*PDiPGAANe->g8|B_Kw!Lq+tw~ z$do9ZSH$-S2rE;9 zp61cG)!_G}$qU+JAATf5A_w*c%iF!Eq=^BXuxF;br3(V`_i%Kr%4QH|9p-}d?tar_pHkl2#>1@#k3F^% zqJv`99^n%T%En}&rvtldPAmj`a>udh$^3e@wp|w#6WKDyc-Z^rFhONiSi!=<4y<43 zMVvK_ECarOXD>ZB)$DwiPTp~LQ(xU95e>3Du4?DwO0c$6gl;)M^8{=&_-bOv-X19o zhPm{gYS)<3&AG3xW9*ph4)@9+nMKb>MX3xxVMryu9i#kH7Fm8Gw1x3g7=<4gxrL7R( zS4)PlnQVR+sb0Sy>6SOX(ERHd6RFvTeEKSxr=FU7o|M#*mHOFeRqkd6p#sRpg;`ZQ zyQSl8eIbvq{^eE;Ps z`%id$B)vS6Dr)|2P(;^|T@k)rpwv0NSAa$b06b*61D@0KJ z><^%i^2aQk-tdTooKIKBxLuyu6gTw664KA-Cw-lC6s9KsG+R&bVP@#<^VbuRafSuU zoh(eAcsXtMjY9nHI(z^9o!zkUR?IZ>;K#M)*G2^`gH_^c_*;5XhKgJEyO*OU;BPPO zjb>ktI{}-sAGpV96 z3xg38G+(sZO-~uvRd+_Dz`A5UzBp-vmkRl5 zRlIsg?T*XL9AOxlsaA3jUOibDEHpnB(W)Ps1g;2<#@0)SOR~Ybk(mr~a;@?feA4Zt z1-IIYEn#%xe1JAjGht-JXJ{Lrq3rC+a{Nm^or3E0omaVJN@K&cg7CH&{0}=DzZx7y zv7DZ+!WBRn&z__&+?{?&mcg7(tBg%YE8porZ~691#@qo|YW7k9ocz9tQIhLr8it?A zeoQm{e!o=r5eWO*GmaJ$|2^jGhHvERrcT@-OW*+W==+LG&hoDdp1Wg;$Q{`<+E zpuBfv`jD7DWA^@QNdqV$)U2oOC+(DfGI`%U4AnpJbT{g>9yJtKt_afh;W+tseb-GT zKUAH`F`X@&!)+)ueC~JwTJ1LPz|^VeOb+DEaTctvxwRPSEO_enx37ZJm{vO)E6+T` z_RySO>RYq%ZJCQLD`7GloBAHs!GjkhPlWYSxl;@)Z;*|)sl^803>4|aZFRe{_VAzB zu?CetfFg!CTajKv3RruXxuO~ey$Xf-;QDN>1R~m$t{0`fuF5g}7Dc_-$EyoH6T;gZ zMqWnf%t4KT_l?=T%MRebcj4!|&H(JerLt!G9e>2jP~Mu}y`Ar4nLz@6%|YRJ$+iQy z&(@DsW>I6^%+GSRXTtnqV}Sx%-^TB>YKm<;n#U1f468kFa>qk+69w`Ao8HR^T_2@h zo!pn2qJj~^_7VxQ-vDr(0Ou9)rZ)>x3?`iPq~`vrD&|ojw-qio{^?0jN<`vfbBGMA zhqy$uOj^6PO-qN(ZerF+!FtAS5AcplkwMfu7`=d7M=nxw-OU}?av~8wnskBjo88$M z?m)l0Wab zN9msZWOXK;{Cc4&9+To;tXKI~_qufZEejeNIXu1J?u+6ZW@&=w!x3dLHd&DK2;o=F z#~HPWGC`}GAZeK2-$R;IP6%PHel(5t=6x~u6V~`-49`JL(WiRvzNxO!Rwf_M%*=F2 zx_(PZ#a4Oq%td8*^oYvkqS~v#rp~dOUhp?~j#jECpwFeD*FK+LMxo3h<96wk0iP}H zCw00LE6H>ajQxCQd0S_RAMn&9?@sGHP6(G%*_wdnY_(4h$DgH~7aQM?bS9#_$p5BT z{v}dOXC^#O1gF_LpN=|#{5LSD-}?|J1+&y{M1n-S1~niSCppyBeC!A3tx;K*vIz^s zcmm-l><%O!n!;~WF7>pDSzDz-Z9g&S>B;f>Oe3Xzb&VE_UC1uuURBMqmT#FbcR|yP z&IU0MK4s>Gi=B?D=l3!5>Kc4l34*JOwyD1A>USRV@9pn`|D*~yQ%V|aSiUHwN(RC2 zC%&x0|N7_dLBqA`58+C1jsIlw*!F0=uBboOk$z4o`L4Bu_Z%njXNnHWXu~7kZa`zz zBSP`+r_ZI0yCA=(WG0}nucxH>-MuInT;ls_kS`yk=zWNI=pqpykNmmjWBSfR$TZ(m z-&*^PpZ@*9Bl-MzQ{|E(IeGoO{Wq?9xg8!ex_;*JND|5j!`A$hAO9;_35vjRqR1zU zD!E&M>j~=d-0m4Tzpp|rIWIZ?T#Wzf6GQy=XBRZQ3_xZ$NRwkUSf-(sQD5FRM77HP zy%(pP(l`2zhHiAFl7q!e>FeZPd7|Nc^+2~u<+Hes*$~`%Igz_h5M7y~%2!~!{gPCk z!l&JCvTj!5#7?fO2 z17@F{<+FD~f;BmV^Ga3g=7OxR+w~^865i3f=M|}%>ELD!u6HW@TTKbtydAM=S%Av* zA}Agw()g^BdKHgbZ~@V1{#Q$YKuim!-SI@B5a;W;R<)_E2bPs+x0^kLB)-e-Y>n>7 z%Z~}%tM}+O8TZ+uUE$AM@<@%V3!U1p%{1UB`%O=nLq;JO-b9FHQGPHk^Uf~<;*bsg zlGvrZ+76L#@-|RS5do}rv^1xB^JY^knb}23ToDXWNp-getz?gal#Z0WN!$ouZLxvgqW77mhi|nA!_J{8;f38X{)0&I@Ey_*Ct98J2`_&{F zq?iurvs#p2)U?qt`z513g|bdt!6o+{rbqZGM5&Z$lG_1WyMgb)Ir~1=MytR z7l|*;5!TUwB>&XKa#itq);cl#zp}twFMx(Afr6|QB_+>>O^OY)r&62r+OitNrEnQC zT{NI01i;0?%b=&~OtBR|7oD`{KJ=`Fa*X^>bERjuf^uz!LdHdPS$3-uc07e7a~lJ= z>0ha2zLls(L5F26?Ahs}ph2gY+E`h;vH2K5E=^i_lRa&*W^b8YeIlK|Xo0_1@`WRU ztLAN;YaEK>?3arnZ8X|(7csIhZGeg%_P?DMCSmNpD&Oj`cPg1@Lok*{(1{N(WSMF? zn($JM$2V23b8}m}M)1b2Tla#Bf-dCMqEY0hM7+pH+(Xb4j;s5Y`dp*$7%sQ}cqD+} z{;aUI>w+k~F1S=aN4QUL)8_@w^EjPpcY@?=VRqxEbsq6Ya=C4n}$XOVH zf93b{L)||p;v`ZXm(8f>)7I|0u>RlqY^#6RyLczX;ni$D+0W2kAf{n+hhCzpTS0#j z8W=l!gYtwXbgZ+SzOYzZs37uVzg{Wz$q@R`UrO`8)0=}_Gd>&_dWkFI_t`w>!KKX= ztdU=2Kmy^965_jx<+bismb^V ze(R_=fP&ci;t-o`afxtBt5?R28<5&Wg5x~qpSZJMrX%{s1HB;@QrD&JH&m-CY@pAQ z8_k09hC7Y^OB?f94l+4d;cd4KU_DFy-?@jV;}MdlFYgBnxgqr8%*?Ro)BQ(y`=*Ha zSSJ6vAZ_WR>*TOi?`Z#9J8vU>uoXoV_} zbGI|5-R@S%XiCoZ(6OUucqj;-rLu=K0+7>C0)vxFD=kC|QIg1%JcHTvk~5M5;O(P5 z&CO)~EZuNAryKGORjHhn8_v^A<=M6SF#cmUP%UZv80tO}p8bKp)U4Ca?z9wptGusg z*7&YsEn6BsZ-0zkRKE~ZT&`LTdX8bdOidcN6-n}6XfKOX(Q}ViMU@3l%DHw$d0m zY`d*?mS<*2ecQ(2^W&@*Z&klL+`R-u#$=iDkmMLb9Qy4AYY*Q{*m0hOHy7G?wUfg7 zlcrgB~gM6`U2^u zY`S|Ug^mE3p_uD`*T!+fzHH&2`ZD;)7VHMgULHo=Zpg)Jiaz)HR$7da1Qi`A{Pr@n zMF0~rr7XGo6ZEiCJ@g9Xdi{XK+5)OvZm)-oP`sWMy@dP^V*5Uw%JH`W;Y%Q&*_z}l zxvxEzb3cL}{GNTCkj*0=5Q*<4~_B6~bs<4!blg`_#}3k!P$;<%<1XgP^I0k}zARBeUO4v}_OOH-jbbr{~_eh8R6J)QCt4C&TC;e2@6|^6X+rj%)tNn`9 z|7<;aAm!6HCY?*#?sH49`SP9`bop{Ix4(y<<+tau-0=tvEJrG%o;3Pi>ezyF2GVi@ zU&Kg=3w>K%)2VA|`8@x8lC87c;|0~S=>vD!{XnkobFI_rcl#FG^!kbD4ba{66W=nQ z7tUwu4!5n+1;YPkn+F7TC0c~XqyIShQDY5)@oCiy0hL7W#OTY7v0I=16X1=Dt_};| z4S;E`8~2>`*A!j$ViF>3JG!Z#)cJ+p;$}P~c^K^V4IPdC()|}>(!4~D`b1L!qj3oN z4NbW~OK2ve#&WtEPCt&ihueJW6@%3LXQGfP9$^Ijn)x>08=_Y! zcHK+a@9YH`!3^{Q1E7xfBj2B|ShKOOO49xg`5RW2r4_n;-HRGB!W?VS#eV9~%@WiJ zf)z+Q$t^1jflxXp^vInA@Tu-ZPb=CBH?HqA57h6B6S2xiOM$nIoC!`rZw!yxbmW$l z{`qIb^&YevrN4o)Q;sA8CPW?oXf9WwuLgw#C3QThH*o(WY4SqvpCs-1R%1KI5LNf5 zlHKI0psWj?PZ_;DmR*HRp4$4mO?yTF47}+diq%rtbj@F-c783gyv#516+oX7@n{e6 zBZ2J30Y-ZH!0GHS%A5%%-f&k~SmkPgSRfUH_Az6#^P zmkL*uWYQFYxbL-57(=cv=)JN}XlpI~V&~GEx;03Ed17{UdzgB{h__E?g~&RV0>0{W z;ZL31iM6*Te$e%PK2ZTiUMEN6S4CdR$y}Izmql!;BV^pv4i)eD)?f{;+{}fR@0iys zeYHkcUk5HrENd2$l%&*XgF; zWZ7rSh@q5Nc!dvvfx5ZJ8B+5>ag12;0l?7e=OLkYxe99E6zS@S?eKW`ySXvqZ9&2X z3c%&s^u}J=eC%5n_>^cD^>FERy5c+ZIPnM416tkA&9Z!sr1FPHf27)b%w7<~$R00v~d#@PrX=k25;TgQuISbN5>L6@@HRepGDDO z>I@UhRdQN2rP0N`*V#>V)J3eXLa3+?%uyf&8oDfL<$eO?30m>N8FR_*xr+ zIb)7MnCpI5q9^Vpp=F47@DGu` zO@ZUHo2*Wy+d&^qr0E{a++q?faS-|eh(`T4eit`WVb^z2Byo1 zTMuU}6aEnSj_3m??>%-P1yp;-rq4}{8+h`c^Xp`b_p=I`;r|H#i+Y$gy1Y<49Q2{| z10E=fKPnG5U(+Zv*gpaHBUV>1x&_2-OM5}I(f+_XDfGB9$w*GrNnZ;4LV6(Q&M1yc zk}+yLXZd{9)r!fpT-N#h!5E-6Xhn2Gv7#^|BJVSNkx{L5&ZTHuI`58hbny3(;e9_XULw?~Lzn`H*yAt5}rPTB)Qz1iHIg`X!k}9s>WK_mK)r z_N6hr{5A5Gx+E?()Y}F98y530aC$?PAULk0`WvDG%ri{RUZSU#wiO{vc)#fKFhz(I ztf#cjVtr#%WmAKXY&FfI#p*5GdT!Y}@AaSLgxvg)WDY%Q1324zua=Jlw0QvilL0G$ z$kL35*60x%SPvXyD?yV=<0(sd*1YmMBDY(yDuXM4%ME`t5ZzeGr6c|bcQ9EYM0Nk9 zwgl0}S#rFRuFjX7pNKm>*KjTY_VOWyAF`-PsL_8(UF;<%G359K;_Q368n5ndrYjiT z-WMrBTOK@0bW*9(=Gi-RwtJ1ZG1Fpo`la}Lm5z48F+8jawcJ~diZb)3NBqy9Deky< zMP91;)1%&6#x&g_NtM1Iq;;~?I*_JMS(Q~Z$rApNRVnHkQfSJECzb?5cie%$|uK2 z7r%YiBi@{2{zkAGoBte~pg^mde#k+9+Ywj>Z5eu5=)uxe`$6L4uv)d|mKA=#3Wv#} zhYSsYzV%a!fQXjz@VsGy?thOCE8O}ZF32{+=r6Y=#h1Y0M5zsOb!O5)GAL41I; z?$&14jZy7|e~!hyKNEaB7;sos!+Yol>RLMCI5Tns&uvsjO+yYHoG5%49yo;@FA2R* zx_KDQ6i7tkeAjL~DwVGl3g|$NzU;ntV{`GdW^%oSJv==6JUta9cM_ot#hWQd8gT+q z=ugN?1H7Iv-&l;EgZ0iT8}qMounKSza3Hw7@HS%|fTu^Q8zBWoO0)TX%Sk3pJRL+- zH}X>`j}=TmV*qw`24rDC0mHi)mIh2O-a1;amq_hMP_lhSbJ$N(nsMvwel}xuPA(g4 zHG!sX?JC)(&^`am&6l|B)g8IlSlUdz=nl(hi49W=2-(lEQdnG$9{k#$V67ixxI10+ zs8CqSU0wVxG8~`MoW!}B#|Q7~*0hU%^QZ0FVtM>B+ukabz1~PW3JJ`HRzvjYDUJ^* zGDEel(^VP`ZHs7m=$ctR#WhI}A-^d&&hx-@i2wdNc5q1}OFVIw*z=&L(|9x>iPWlX zD)jOvAd$&}y?*#32dP5~Ad&9F39d1A2r46b6?^1n+siatuEzKAV%JqvUOw8S=3?h# z;;Jx!^p#{HWSn$rr3_%xcJvv-#qqB$yhlhXsKE;E>z;d+(%DyB_07R)*Z!9VG=KzR z9nE$pIx-$o_YqG%d7Y_HiW5`kM}MEnUe{=KES-)KeR^D1#EXFl!No)R6jBRxDSv8a zy-A*j%kf$3;RD&x9a$sj*8ce@7IcS^I>T$m^&2&c042Z{yqeMV(`M*dH)Pj5p{H24 zdrJjoZ)rKvr$=rB-gh;DCR)p7yJU?bhyrDx&{V+zY`h6tPT^kYVkwHE64xTfs9ymD z4SxZVkgbAC3k`ovY@$2Q$1|EP{Wn&@n`x&Tiq=y-wz*!$=SU5f{|m78C)Yz0@LBvw zZu^BjKYP0e*scS7fi|nvG>uFC(%+0v&@^Wy=ZgA@r1Ty>S16lzj*2l*FzNC}re7E<5ls$rrQaTC$+` zMb!$t5|+bL`ELSvTm`* ziP+1vc24q$6`puvDjPy-);|?wCPXh>zPcs@&Gki`Zd>XQ=9KQ=Vn(_oDlK|(aAv^B zdmcdC<(H^X;LlKDMdUqhF|(1s0)tK ztkp!s0$A9vDz7{&zxyE__|m|I(S0uKNa-$K^Pzr4jzB&5TmLyHrm7`AV8j;Zfyms! z^;@p*jI82eYGlJma)vn-B@IL+YqW}L?Fv}USLOze2jtfS9)%KTzCELX*%@)@Ir&anW z3bu?>WlKDJBjy~h!ZUl*U$M95!&;JvoD*x#_#jw?pL*Pg72d9!+KG0= zrI*`}`b+Wy3~?ncr10t83Ic6V1-56dy4~r!c0{*?#%m~++7SJPir15^O@9CvkrcUj ztV>zXyLI7J?2p%XmG*VHET1>~7AP$dk0>b!O$OicMh$F$bbP^WU*d3IQ2dG;j8KhA zy|Xd_J+CX#FUHG4bukJ!-IxVvb;(ex`f(a_yo#JPnM0nV`X(u0JuaVfF7=922@-kj z-UV_twwGD@j}y;Ol?qNm(M%}GT{B#!5y4+w8{{adS_}l+cFg`GtlPqPwi$nrHbkQR z(XP$KO`^>pahCUxkl^w1OlYATt$N``4Is!he=C_r42?rDGwW84{D~bCiQs&6*Hyj3 zEIa?I{u#^5&yydtCUm`Q=|j#Q!Pgr$LtxR{kIzKEIw1HHGJmBpP+MLra zC&CwNknW*By87))5sB z@TvWUY7LO=c_rSLlSHYBor(+yw>j!p;|DRzan@k`w4-xP0f&(q7sZJ`p+d4DCi4nr zV_~$K)lUjDz|_62Yk9qPYQkQ8bT5F*yn*+2A>F$OF}}rK3x}1S@(ye7>IRhVjx z#o~Y&`|lh;lDlk_J0j+pI2GNNA1rAr4snOmS}l8#0QE#NR_^_0dm4YMM62l>d;&Boqq{KM3w z!ButQh_Po158$f5!CY^(?qY94h8NxPHf>4Wqwt2mb3|K5f&4 zBvHFk+d|TR#?sgG^$^L=BqB8HH?Dfic;|+4FC=>kh=5S#V5XIMX16?hgYozzDl7s_$dYrySl_p#aOD1_c8C>&#Dvi<9yc zUsi!&X@SC9&6c??Qw)^Q8CI0=pQ3VzK_mLIVp_}msf`*}PxgHwzf#ak!h}OdI*5Wh zk+hwVhm{c|mj&TX5tt`~eUj~C1$vk@d?rN@OJ~}uNJg%o_c*2-$q0hHQe@)zIhsDW z(KJgTvt8G*TakJwoKt zbKy{UjjtDv( z;Ke^$vK$fZ5CvP-_EDT64|Af}%G%KnVj|%l&Ri%Rds{SP+ByWPluiy=s$9KIAO$*{ z{7xygDK0swaeoC3Y(J$?;9q-L`-4p zvTT@_T{Y(I=OLxn0+xFj_3{>XJmUB%2OowLVBgW_^KS}Y=ytvt!&PF-;}&gu=4E+F z<_vyg{J}o=GhLzD?q*Y~@kmVczkkx)TxabZ*WgKL0@sJFf!Q*Vx;Ll96Fb(Bt6s=pPWp^0RZo zug_e;`qp&Gz)mNftOC&-6E9R|G(p7ebaTTPcSHq7OA?R+d`jwNnO!DOAP%}Q6Dy>_ zgbY3;*wB2frQ7(tdJXfrr|Yi0>t-1^)%E`aZhRMf{+BwZ?SJ~RkImS#_t+SC2!$rU zxKk+<*QcaPt(wDXD9uBo29IK{zZ-*+>DjR}PKPifMBE5Z0cQ$Td75|SW`w4dMsGMH zNxdpG&gPt~{>U3+_iKPEZApF(JicK0qSSDe{p-xxr_h>7vn(Nf5@;ye1??=5RPG)@ z@6gPAAiII74*tGnWe6PJCE-!KQ#GYA(zy^}(S-)@+|%Tpq^qdl41&&OLkQdA(nIHZ zcQ{H}q+LX>zU%Pddk>n9>d9=TRfOPqtc5mfVaF-W0ifuk0DepWNGyN()7~PuD9AB< z|5hY3+pq_N!4Cch(Rx46CXv@h6edw%Y~74&j%*LOW1lS!`@jRq56(vdY_j`^ddW5B zv9Pe);distZSq;)H2Qu{!{a;k+LvA0I#@4 zQ0mZ(X~?ti_f)KaJ|Dt%MNYdZ-@h1aEmFa3o(o->VD)e4wX5q z{oTF@n@yl676cdiwWC%sIGu>MSseNIx0QQ+7}@F`36J$ zf3*NAF=S_6n2&Q%gQ9^a+$L8j6wTiLoHR4Ht%AlwL@kDfVi{M|Y+%?2+Em&+8fpqk$s5+vV0JF|kkPe83s`R#zBaJd+)&2jq2 z(1kVkM!RzUE!(_1gByK`pwXBK;FwqzSDEp27^Cb!CPw*PRh?*zW!}_~q_P8UByRsQ zp+b3?3L_EWA-BsRB3T~b)~Ja6eGh%Roz_D$fu7O)bqb`*d0;84uTsQxujq!*BaJ_Y zz#@ieNEc|Vn+o@8SaB~-JNb4VWAlL{m(W@36eywADBz3!h8Z5L8sh@CoENiXwkrzFplQs=-^a=EvleM0Mclj2T0Fj;SNJHFV(D$GB3x~uH43(+w zwTf=5_gGZqpC3wFkXoP9HF8=n7#Xzx55xpqp9fuH^*wNj>Ac!|X~lv8>Uj6NNj_+W z#AB}*zAVmX^ifm)indEn=RBh#cl*RVB8fFmDpH&Sro`~EhjOd93I!MQ1eu-r6mI=W zg-I^F^bzjA6O2p;m@wTzLW{m}-G64eZfcuiZU=>nqAZoyGhr=_pW2m!6}$d?bE2H~7v2RWS0#b-eoCIim zxvBQOpfyXxB8WI_(vm5;%oYx-E3~!UbtQrBAHzGkTO97`k&6YFa={Sx}zmHP&-Ah z(q_h-Y_fTX&$G)m?*D^5Tyn(*QKHZ|B7obtw8D3l= z{DL9_+g3Rt4{VCiAd0k&Ij~`fB&gA_F^t33SzkP{X`fP=5z$!RExAL>zjkU}7`gdc z)Rl>~!FFPJo;Z<69&r^nn}~4dK!Gf|N;<^hu}G&lZ={!v^ajLeC`bERYuwl7r&w6D}|090mFFo!ni*|!Edt@%m6 z_vZa=Twe9$N*zik6~I{K^Z!xxR&h~>UHA7ebazQA(jC%6htiD*5+dE5LwBkmA>An< zNH@Yr4k=v@Fhh4U@Z$46_x*YP$8$0V*YDbEul3#g5@vm;d>08NMcm`b9n9FQg%u}? zpQMI%(Jy(KFWKA3n8)Xy(R&fznIzw_tAv77zSD!QH?@5R4ac%{qX=kTicT}t?#utd z4gx2jTs=O!oTajv=cnmldNvDjw}+PaC^%fkn)y!W`d)(mSz2mOQcB@`)6!)TZhCJS z+bAG`w?Wf^Mw(0F#@eO$LiV`j_ovnRJiO!nTc=by+Vuha!25LEVl5uYn$dZ_eXkS3 zj#q`LA=*YpXc+eqO&{F8U%zg-CVSuv$!uB~kBDsuvdH7b=6VbN^=bSfE~rID?%*e1 z{#>pCBVzr*IK^&-ER8(`s^-MXUD)>Q4tnSb%JsI;{#J7u^07(a)gm*zkS80yaMT)V9<7k6-$)$`R(|20AuF@;W?LR(x$6 z*V-M9Zlw%)q{EXEjdV;y5dvj%#R9i^e_>|R6wYd6jxsR<1kaBvq%kL{wY#XreOK5tqzircnTO*7fw>TH5rm`PQmIDSZgEH zJ2IN{QUTTavjE>!N_)HY4b~&BKcz3G=QDiUO*-&3H-0fubvHU-Bgh13jCWoGRT0du zvfZVu1@J)$Bo}P?drRzV{aca;TL|t7lWmrx(<#RlEXu0^NUXLh5rkL7MzN2xF# z(!Cm*mP=e~)l+*hB;`K!MRqYt3l^q*XfZQDib2VekY@h@tJF)L(hoD<#8qcQ=Bh@! zGGT0zkl6NSD7Sz-r}uKF8#fTly{+21%BX4+=3BaV2) zFIxt5O5)>8sHE8q>9tI-j6Dev``5DLmN<9{i1}xI_SKCM?05Njaiy=KzqHmnK>?>C z_ut)dxu^GMglN^HSmt>7i+8R&NDJ#f>vSHMqcBjixn(za(tx+~;s3E0eolJ$JgM;i zaj*V}Xf!ac2WfNMaeAc|u;%}gK1m*N#rPyOw26smY`CXa3aE?lEhU*^AMD1S2Y^PF z`fGZ9=(|OcUaPD)bXK~&!X9*@qbIpyOy_D$Qai4dc1wP_+LWW6#oC5K4wK49n7ei5 z4H9cC-Z3Zbmcj3U`ts5xjbF;ciOFvnejWe@VpqMf@%k*6^e+ou{T>wDLzY;6EJ!B_ z(Ld=)khXsWK3F_z(I{9*$1P3ju4B*79aA0emt$uA2?f`%w69u7^uV9q6vOO@VgiYE zB=6-Czr(m1u$}W=6JE>X+$|#)P~)HMnumVN{OsfbRO>x_rtueYgSK(sb}gBR9H)^S zfqj$a&c#WQ1pdS$G@G4XgqR66g`HM)_(!Ct>=e@tmc4g)w5J1volfIu zMXKv$O_T5ZSF^F1dOfoC@~}nOJoUqZXi=qX07fXD#4VHUp9_LsbOhjawF9Di48He# zycvzop}BTW-IdWD=f`p&a+`%o`WLkFjmkAPgJ-UgMSO81CcgpbSh~A@i@jY=C!o}? zLFZ%s(9Q~zmgk?UMlM|K22bCyAvPhdrrB^$P+*t&>P{xG#JsYrE;;iWV5{3zKpELQr z59Pl+=YLdqO`>U+)13+U(IL_VwD%>0C;K8yu(M$*U`!`(8kU$GJ(}AwwNM{EDd(vt zB-B2zgg-^V7`d_bma?bjRXC#JWbR5nI^x7*@q#`n84KrShR|Ehq>7=D9PSfQ8xsDf z%}^Gkf*JX%+jE2$BStoA%5ePQl0z?VGxJv6c0Bra+cjHZr;2>xuYxa@rpB!}WmNBs z7Mf;QHk0Q1ofQ^jW||b8oQ3G)sw?*mu`WZp)C>VjB&I7|G88|k2X8t|K>#L~_^Zx8 zT{$IW13_MZpk?}nqF@kwebc>(Hj?@6u#wGjji17YB<&3lsihEoFazupoYAqt)y1=; zx%0gIa%b(qdgVqjUg~3GNR=WpcxQHvm1=lBy_+Oj3_Py8b~c7La0uph9%TCifN2}Hp4_~Cf7<~_?ZXMQ|2WoYs2|>?psc9X<4+DK&HsA7 z@#5xH>?skyLX4s3z{5;NZ!7JlGm7;9iU$VPkQ1zu{-bz(|f|Ys^6kiWb}c zhEA5Q^&`8v9p0h5aQKB7Yeo3I2;42johPp0qXm%3VKw4TfMUg$;j=(gK)QLDS1yVqjC${k{(PtVB%Xl=HNQy|wpau2b;k z(f*%_riJvp;Ip=X`v2|a-g!EmFM1p;R7G)j z>abP2aYWPnN_NiW{!HlR0B*z}&}@U~G7;^&G>e?*brs?Ce3PqNzSPcdzUluC zDptKuUOfG5&*y8RveTQ}1ua6#F6-8dh*RCA&p@k6!w+q}V7Q~)ZG}u)ATOQ33F#hL zTYaYX<`f#+MM9joWBB2ORGU~0O{h*LWSmWt z9gaALSr-L(iR9khm8*w6*pPO%gYYCN#z&)z^98x38v|+i>{#yYwZ!FLN*Aa%FkWi$ zf6iEE5L|lc-!(N#g(hxGWjppkHWpE-El2r`h@GIP$E?PwVZKM(mv#N49g_>w{v0*x zYjRwiX8~RX-WL6dLo4#&1>fu~+`fS>5(S>wUU{@bD&BSd$FFA0cve?;XM^?fajY!v7K0lv4-c>(gEwcPOAUrsHUCFT%_(V0E*`{| zJ>@q~`QYx=T7ysU^?`>U17c!Yqo-{1wY%40Y*td@@7n6%?6DsO$?=MJCv11Og`N-?0tVY_2Jtb1v6%+^+ z8*PR9$-uQoQ*}zf$$QNH0^z~FYuP(l>QY4|9W1jC%cfPp{0ZSLNMYX)xP#ou9Ep@- zsFmRaDk((&g85eeeU7vj<;k|G71{SK^KQ!pOnh7eB7>Tg>zO!$Aj01=Ep~f<6OlKm z1&S!#Q-~Hi10G#zQ?6(mewhEMux^ROku*N9v>mtzIh){wXB~YRv#<#&Z50xO1?@I> zIX$^edbUq)lg3WE*^MFN$At77(P(0=F6;v8h=(tZsZVpZ3NF16v&xl`Buk#RDpB)% z&+e||z26kDQevYP`FmIIyfDJXeSJIydC+qGfT=C!+KHh{IwO&mz++nR@M?e?W*w;gN0n%#Tsjx0caKi&8{`bu9DTMR+q0Wyhm+-Nf=*>svA2GY zdHoUQPsvWBT@LY+XRahHI0l>Yl2;a{vYA)MY`akQ)Ft3X*4sJshD+A0gH9MjzUpA8 zA@k7B&wkvS?oxdf+fI?JdD`n#B0Fq?9D4L};}S_U4MJ}H-Rswe!9wQw&(!8G70R)bAn(eD$hxz;r#qo6&afbOZV}JzIVTON8QN$hA-Mgp{Q% zk#C}PX{FQ3jU-oysXWMkJ1~Kc`}+;Su>lxbHQ5cx?Xs!8 zKlO2%EKJ7XUbmlQ2X72KF69Q?XWa;#PrN@{<9;E0Jdg}X(G`rRbncMLVF=Sii%Br# z-3(*y89nu)Kj`UugNuekaKcP^dw2k2zR=FO+xGOyxEUNjP{CSkMDi%i@JmNI!4(h zq=A1rz6Z+KN-50o0lSnKazp|q>*YSp<-ZGZ9gm0q3O0Rx@>yG}BDM1LUFchVmEW0g zqB`Y8C3TRw^@+wgsHPlDrz@E}&@TUY`Z0}t8?(2jO1krX&n&e2{`dc-VHS73!d=qU zJg>%Fv>L-nBytPR)~m1hTWg{}8x-=Ae6lQVC`3Ij){Pu{xg?Hvmv);u7oF;Zt+pX5 zTPCv-<|(nyWC)Vdp3~IAyebkOL~9^by3`)I7;>u_4wKWETv_+8_z{~5VY6o*XD|PX zlx0=!-mZ~O|7?IJ_a-YNF-k^pRv#X~rwKe_A6D-w!pG?4P&e``72%|cl59-2W$+~m zi87{gqO)^`Y#6DPQ>tI~h*J?Cm3m0s?p1J~#nD^!9e!A72B<>X^Fxv4OK!*x zDe*ozwYLDPpqV^<6>KUf-c`7|D(w9xGVylYg%2moAv{RPS12TT%LQ#PXU^vF&}_-O z1Ug@+$YA=fchj|ZYBmcvFnf!GD#2ymrA*XuK9;z1-G_F90!TSFVFNs8T_c*LWY=u< zp1-w_1sqp782?~P5uJXf$oU>EcjkAZ6)j^G-Vg`by4z-`Tv(do1J1oU{Rc80KC}8T z{kI0_6q{9NL`a7~o}?mIrf$w&ge@QXDbcEXfl|IuEj@h}c?_8r9}qI=(y+Y5aU_y3 z|D3U$xkn&i;p7OQqHKDyIj!87`uP(r4fGJ(+Xz}-K_90Cp}G5H?D~!FevbmGxJIj2 zGljiQ*b0Y9Ef;c=OpM`JVWBmc&n1R%+wpoNWo>xr$W-=smJ#dk-yntwPv@|zH!JAV z-f0}+?uX-?pxO6IzNpJP!^oSykL@csDv}(s(ql)2A0Y$0FTP5PZ@8iE>}ubg=KSoQ z{V$l{0PVIpklX!{rF7JVj537+%(2cKciil- zqy8Q#3>a0>F*EjJxfG`Ko?{x@dd===HCLHZYd_i2;#l1gSLH$^tYj*P712GJii5d#abt@4uoicpBB!6 zA`%J9cF?N<;7#w}CEtzTTFWM)Z_K|_Y}8Y2_gTJFYg~n+2azUoqU9Bv{o>t@P5v6T z!;Df2taX*tXZTbbB+}s5T~W9KgP`}?n`~5?t*T{xjZTPDIr*T1iDEw3;i8ALjB$0) zy9638k2(SGITaqS6mnx0CY@q@HtHjdh!cA^GT7n!ne1cXcq%<0;wlMwxIq6~METnY zHyn6`-f=jFcNWZwntSBSA_urARWy&kkw+i3O|Hn+6*Q2v=IEq?xMlko>T#e`$W{V6 z7z;T7Y@!Sv=pK9}IgIGMBkJ^?LivAN75i@NPSYcwV)NaqU`Owxm6XhOzw`M$v%2K> zE5WY4|39AhB*bYnlATwiF3->ARuZF?z}+rSXNg-%7)4(gJZE`C*wZJ@)9xU~uM}sty^*`5T)fVj zkC)yraH+1(<%yoQzRetWGd3bk+jPL|5H!qrbmK4d2R;}$MhD1A+<#^cM}TV47xU|+ z7Gkt0c|GOOhi3-$=4)Bt@D_^5@8y8cROR&vb?%HfciRz{ac(s(m?87^Y8UUlOd2&E zX_NzpT9$9#S8E){^tA&9(<(T|+W4`&_Fdpf&D2+9TjIuMj@ioXZ;Cn4_{MV{lKESx zF%yJuiA$3cdPZkLw6JbA+N-m`mq(rTh2JT_oBw1Iz0AtPW!Xcd(UY}}GRm-I&cD5A zDlG4k47J!7iC09SOe82FX8Ul~C>Z`4cb`FF-JE(?nrn2|&FYD_X~01hSmo(1J7bko znAURP?T)ocItB6PYlcPR@C^%IJLjgm3S$26x5yD+^esqf7OvulL(F?sfOlC7wy-xMUGZ4%;r5T#lu?c z&W9a%|F0t;C3JqDQ&#g2FjxhjIh?#l;dHmn8h1*Oe2-$PQXX(?I$X^f`E{YM{?j>^ zAg*OAV!uE-j6ilge2j%|E$jSrUI}q0fVG^SA@h}@%_^Zj3&A0_3P_fN2o-e}YD0da zeF{9}7l@aAxvKi?O+&HkdnvOe^ud#u(v$j4`rpMKc{^@135a?$vNn8_T2%}AGjM5D zK<$qWJz*xa3?ekSC!_Nn`p;szVev4h0_X1+qbxbTaS^l~Y$GJJA{pvGCaJ$Y^FOBd zaX$CiZN6G?f2`j2TB7iN)2w_cI)}CSV|?eKF9#4MQY#dJ$*>`0hhbAflvzW+ww_Z4F%|v)ZP7~1Fz&oB1xF-@tE26p(5$b z-La0=@$jR2sJO3V{U_hU`M2xOI%-f-PZXKYMiv`=qu~Rw0F}UkhnICPCL*j@dh7X2 zm~11J4u8mZ{3hj9CoW%42Rf6Bmi7$=nV}I-PiM-^p2YRt0JH*6X8kG#lYl`u&#l=5 z3(eyXKJ1ENP*~F&)yC)BPtJ{6<%%_s{+a?ccF;B+^*im?ZxI_Qi*;*Y$OW9vl3{mJ z&q@=-e`)xcJ^1Oa`Q!8$RcdPX`ox@`XQd5BtxdRlx#$f@_~;Eeyuk?XZ@k~BJ5=)phj%urK^o_umaZPW0FYMos&<8K& z-OH||)2MWx$6~U5`LFfe9AoPDu-n#tthJNV+@%dP@ZFc)*%A`ilO=EpCry5C|62;__67~{=cb5K$bv`#clauB-=XVPDfh$I6 z-!}hEw)TycX5T{wvuH{FmpM23_K=U{<+>}R^w?WhOb<;R@tl~4+ZRwrQvjb>ev!tC zQzQ8$*<|?S5S?*(w(4{jns5@J)PJ776Eyn!FU+pD9lwX;Xr-yWA=o*dZjT9J1w!zXgy;I`Y=xOr-?LR;7KNZ_$QODWLJWa7i+k#6drp7GtrK*8LY7FPNF6Sizwq?GnIzmt#iq39ssV7Hy5r8C|Bs-)HO3(TcoQu+JXRW*9GnXmq zAw1vVXA@3sQTdQG@0=Fi35>!hoCyZ~;Hq>1nbzFxPWaM*-TB@F&t#K&833TZ*_ zM30G6i2tz5Z?*X;l+R)MmF0weAmIRnV4#HB1gdiVQt=Y!CnrLxyr1oUqI<(O@ zibd;lo=7m^ri6LWpk#Ki)L?GPjntcU)oFC`mdI68HY`gr%2LL2sc0=6Ij4j&U`Zw1 zEZL#6#dJl$YQQ>MKtQ^->r`18ZHv2rRq8@9pmF&5kN+B$syp_3motLRws}=uOYJV5 zvf_+ogn3T*n`pRJdwR?H{Tkv-R13ztN)=`8QtqYwTl`aQS~+8(?+`X<@9@C|Rs&6z zzhYvUo|k@?U*%rx0hQf(?{8(_eqnxH$6z_c#(~gpa5Tn99iM$UUux9mo^hF*o8`7TZcoCfy$+ zKMWp`v^r;2;EeGRomkmD3dv7YYeEwxVv~&o)?A**cj+q$m$$~Zr-jLE|C;~1QnTQL ztEpoLM8U+F{w^a4mP3~oUdqocmZ(;SiH*pfd}SBNVB&Qw?%U0xDD)#XLtleypE7l4 zFcEOVH3uwa)cDFOFYN@Mv&w@lKcDDtUu3X>T*5gu=rv26u#y?9fv-*zIDm?`k5+j7 zCH`z~yRGcrVng3z;w@3kv-h$IWE#45zt5<&BUR9q-dC)v*U40Ev&1UEbx{m&91p86LkhzSlOkP4lt0_l0wo+Zcr;7tJHY8jMY5c z6T(lH&2Kjyc%Q(L{{|&ep67ksOYq%8<2Am9nHxRt+H--iL05JV<6c2!Z6Oa6`vCu! z@ZH}>=JmZU6P-OoIkys}&U@9tD7IE(QK_lEdJHI`-Fv44}bS% zS%n&2UuXiRO%Vyg>C?iWUtX-uM5nA-2re}N%2_bS@%J?*G~<-y-nRmwDnwB0PU>X8 z&u(1%;xLhfu$$KJzs+e)ZT3TFi~jgxC}oX7J_JEzi}g_A=(ad$CN1ROnBzK%i-KIU zdklO8E^QXRfi9+!_qWVU7T!>RJ^vwYt0JA=@W%$j+#8Q~Lf`P2_&akG<=!RxSSP2~ zrjvD}T-H&0or*Y9;A{dhc@i*iE6#ccv=aJqbsQJlRT3d`_p19d7a|g`5`s)!n!|FDK=othF71_~&%| z8Td|pwsH8~?Db;W6?stHlw8l-izT^h)uV<$X;;>b>qv))Ve73oWfhb+-&mnK&z*L^ z8cE+xi|s?H5o8dJTpO_FL_69p1RsDy=DaVlTC`+#f3iG|UuqV#qrh+cAF{1&;C%P& zXgVZF9w|PCyVT*9 zF7%QuwGp%~j4~<+?N>mVc%=&nk|LZ)F7jv1(m0$JTH^k)lVRM*RFQ~vV~FerLprnP z24G*oibvW`xJRh_MTQW53Ev{dl*J?0pvz9l=z|<<)v1Tb_qBkHd;k8={oQsH z-Gf$AWPKj_>ef)d6P2Bqn{nBp;(%uTd}^*(?>y_6_tSRKH| zBO?M&8AiEmfJxr4BY3wkS$iGXs9(e|%n_zWw>X>P!AIcacYwmT#6yC_%f`>ETUp;G z5JnEcG`~u!Wf31y0P=bKKraY^*@M@5>sd=YWCUjpV^9Wvi@)@5f8pNjwf`CghJ2T) zed4zZDs~17?8qNIt{XYFCjiq4kJlzK^)zEkTi#YtRFxP~9 zGVt$0sI9EDrr4?lk2wT=LY(Ug2)^WFmz)S>ohQt+>do0l?v}7PuhSX0HHU}r*bA`y zAWY!jzsaH1ra^owfVVn-9BSY24NPjN#e8(mW|@2;5w+(aR#szaX(XL?+w4LalKHex z5&dF(6S9L2Cfsi%r2+!6jzh;y7OMjv5YIe@e+^wu2FzQiz?C=Yy5mR1zJlM}3X;xn z?i-fm#%-->(vjxej*gcCmavKbM6Xmky!X&mR*m-F_X+35Do+0Vrc(ap>^dREc%x|O z!KZ`hRn`_wgwd;ho0qC59a}}Z3$_@1B~Pb#I*cJB_FaRG>BHyFa}SrrC$((#Pc1XV zn}WBY`?EHWn|$Y4IKhyxV&2Q^)#INot&A3^e=oEYjRyQM8Gc;Y5i_}}M1){~W5ln0 znlhNMO5?eb@FOKR!{e`BDp=E$4LZHw*C*0KF@nI><&HyOl-tRW`LZ8Qd6A)P4ufG? zzOf2J6c|188z?YFC ziZffWf9WQj?zZ!?I`5KJDEv>S%^ItihyIH@syF^LZi3DRL01Fd0oYMQpUk6ffs6cn z>a=Clwd79;zA6#RcwaPPI|$g$^h0vzLvR1}HK6>5RzbQ0c&7RHA6G;=c+#t4x)lv>G9*9M53oX<&7=#PVFFADF&EL2JYZxU5Sn`mjXNIA zmT+5cdgZ3hFuI1H9h}C_5R&D#1^D9wjc(RcDmG)A89;%YKc~sNg~N=y5|9^xv|~pQ zL+sAl2<9i=UHEvLpNO@ii&yCb8bPmKWYmdruHJY6S8mFDKCzY-YfvHoBGiQuV0)ha ztjg{Apmec{c?DXe-AQ_#!#hVvpkW_L33Z5KElFG@dN$gVAiiEAI^5u6!=k=*qyW0e zOR>o^AvS?_rD|v1k~+ik<$}W;k&}+Wj*bh$uWiiPt92L1f+W15?T5MxP1xnT;)XR` z8HueTEt<#THmE3i7Fk4pasm1c>?8!+bD)h=QO~#+;CJ*%jWNP&4wG{?nb-E(S`D54{rC z_HXLGzJfcg$oL~unjuvGnZ0~>4x5UHg7^QYTYsupcGm274hmm&!`LevY!?J?a=kv8 zrsIRiFOE;zeO(B5}nR!Ym8_#CKL^)jx1v z8K=Y6_utH&eEazo2%SZ9PCxs=5xZ}o5$bv7KVy>Q@C9M%Rtqg zH1_cbY`(owwa;%+X{WCMVJlS0E{lUo}R(eI-e7GH1=x(qkwy(YB)m?eU z_Q&_68!3agx&PIvf9TM;*bA`mDv8jSqh6XGyz>@0 z*&-i`2_d}BT@P%%f;!Hq%a|w?*PZL{J1cx`#gP-c_mi-=NO?*&uEn8q6hA_%I25iW z^&-rrq_CgbMpws$$j1B?qQR`@Eu>;WQ@Gr^hxX z`lYd2vSzEV-1fi76+n-$^CM+gFX6jYj|H@Q>Lq62ornJ$ddaKiby(e*tRQ>qq58}Y za{vPyFmRu&DB=&BC&m4tcv&gIIXFW{`ImTwai~Q8?cOFmOQ;Q}w-OdQMrGrlRo7yw?afBMY{r!#BG}$k zP|ooZnnZ`(+j?rIiHvxLvIa<1IF&ED%R0%HX!w8Nb*D)qSu7mC-IA0%8_yi82G()h zrTf&n3g|DH2u@tpXC&@%k0YGAHMR9IE+kH`x_Zwdc4Ycr2<~&Pnl?`Rkou~05l9e> zqmVzXTvC4D%I(#JereGiizWCpInt1Kvr@ZMs3;Qp#84wpCtZSe^A?zv0x04^*|@bR ze#C?+yeO|NM3dwala|&6Lk-%9@WY?(fz|DW!T^lnbLS?wsgMmj&=!xh1yEfNa#Riu zkZvB+phOCqt~TKki1MJ2loNmp`8(l-hNnBnMhR4rp>i$Tt^qLb*rOAgq8wVG!b@|< z1|PLBnrI@vhyWQ&ljGONIJW?R(Vno37Tks6>bxZgJLB!la|_~R!jRG4((}_FqDmeK zfl(9V?D*O!)NyZ^ZL3}w?7W|J5i5rv{Bn+>hhR8eW^p=Gww!T`k{cC%`#US4f$@6i zraVmj`N;ROGS@RU4~}ZZT4d`j;oodRC^$q;Oiu&2k8%!#Q4BR#>&*h~xAsl{BYMS) zG$qe+osuPk{;{s-t4qP^1dgxrd)o%Aaw0;*(5!z0Ndk?!KgM;@rnx&>kxe{=tkRA7 z(Ii$ycO80@O2hr5>T?kqRbyX*5uN$EQQ~pPfqD@Yzr3Wvw4_`Dzx}#gAP4bU}YBSdkY-zNT<-U@2LH98MDXR?Qgeanz<%nRyyElUMelnzfR~&fW^8y0oe_Q^zuXWv) z94$8F-4}4b^CbNjJ4g|MF6OTe(#??Iek^vuV_F1+Q@Do#*UcI0WkA~5zz`+gxix|o zOdg-wObTS*YTEPt%7<-0|dpAp!acBBJF)vHm{)Rrcwtw#oua8BI9|Ch!HPmLnZH)y?kH= zlL1G8Yqy>4Cp2`cyIcfHR^4@jG@dJaiXLq}ND~en|YRX9PvzVxprIbf9f3pthEl z)d5LNlQxM8LtiCW0?`EeG*A?WJ5ckj&ikE=+m$DB_HxAx3k|3}Exy zsj6-lsN^NcHxr(#{SpzX9ID$iqOlEogEh8=BEM?*-L(|LxZ{@>2NJ1l}eulRpn~TYF}f*HnTz{)bC)UhcOY?FCFl zW)ma&#-2j5NDBM>g(##!u*(Pacnn>d_9fQLm>iLSuTnUxUux#XfxW@@)B2e_ql?it z#_YbpG?eEH*KHeaFF}SVCR9e`XHS7B7Jr3VsD+r>C?Q;I&^Y1oeu3jRoMg>r?RNOC zDnK3~nAZVP%J^@*NvP87lvj0ic-qB-V(RA|wQ^hkEzL(kK|z0Q@$yY#T5Aek z8_l^vFL&Z&tSa~CH8RhD41kPX@M;SQWwka%rw@;|0x^4!$GZZIp3Q^$RP%VXf@mTlI zS51?G!>N+mpQg^K&wtu{H0Gd7jCh4ELfTk;D7`9VG>tm3?1%4X#f%EAn^1+yvxo(JxpmfN zrOc6*QtNFBo!MF9@i?ZC8>yYKQe?XI(j@v4;c4E!$`4J7(_{g2-ac>5^WFF+-tPg0 zHtn!hrPp2!*g{o~fHBWQr0|i48Pa8G8&CD&{?_M6St6tW`}g3U#KUi~)w{_a>a}i7 z%gno@{M54%Z)En_Laa32+wU%y_3+i7n#jv$$H~Ghg@0;Rq!8MDtbBPYXom9KnTB^I z$FzE%e;qBJg$imDs@ds(?^}jmV~Be~?Fz${XOMgIv!Iyg+np5e2OA7~N>?a=i(G(Z zf(=Ky#mokYwfYI#yqlcPSwng8d{G@1P<0#l;&&eM&t48Yu&M(_x2S&{9y$LM#DO;7 z;gq0M)9SClMy5%%X4a(ulNe8LY)u;A>_`%}P?8@)$$_G#>Cfwwiz#*l%0JBy-QP)X zigElL>kHsQ`-|Vz-%@zyey|u*IeixzbmoyA5S^*O^-8>yK4H{yJ02`Y*fU*TZHiSq zWpI;_hyCkozFDVFrBu6)J}9MF^!nl%#DYiHPwb)T=zeQ?T)o7`v@Xx@^l7x~DSP|h zBq=)AG;lZfJ;*v)ipMb~5VkvEC#V|J>nkw} zn+c}>`oW^MVhYuI(*Q1xwLJ+B{En1d!F58d8-d$)F^CEbYQ`SEHGx`oR|!LrZ~Xp< zDF%BUAE+HwJ6hTryP4V^X%kfef2Nuh9PKs?3Zsb_&v?K5d7!>bp1`?yv_yWT?&;lp zmappwT-xDU>3pQSQiu-v)tN$F-r-{ReB-9D9ow-uTo>@J)5*2AsRi?cF-1nE^-9;V zS*OJkQ~H|j|8&bwD&=AD+$`|+X))4~P0P=28M+<;Tt-eg|3tI>m3Kh-Yxvd-)$+V? zB`j=Kf|~;E<<5r|C$49bGE`vcNux3)Cs0&;{ey<}bf5`Z{p%1EdN=yp+WS5%=f7^u zawsTC95SqH)aK>zGTz8O$58-q|6*H_}3P7f4HZwTp(&Gme)C$eLC)#WEd?)Ybs zluLC2=Wg?C!dJ=`=b5j`O-CPJ8|MpGzOo&2y1CIK?pA|d)YnJ6Bq_cRVTQEs55l@t z+pB-?O3uOTT!+lb*dM3hbwn@q0iZo-v83!v@-Uc?2H7EJK`Tj5l}|j-wBi#%o ziqf-&@2}>sW+V#DBD-9`^qAtcUY2wp&Y3;E1^kou=^i?@kZks>Nj^LgPTowc>NEre zHPX7lS`ZrK#OsRwP|p#|?~(F$hdv-11Ol;-nN*`}G#XVH9B4+1x+vc~y61>~@=B`9 zR<^UdBl{!w$w~S2i=eR1DCirSuerN`muN4=zZMzTFQ`oaQ>J{QWW<8F8i@;Ml+itD?Spo7gn1 zuzeZVpEmQ<6Waut=Uv|%{p)rT{}mS(HD0NUS9gC^9}jzw`iy8#qu%Njk#^TfwrQ9d zOtWkzR7nyK28=`IpL-Pz6UXbQ3~w~?tpLY z_;Z-4$jBEhI{BJk8TYS~IWtk)n(O_;RfjxC&lI6(c$LBxa609#Rm`AOA(C-i z1Dy3ux7k`B3EL!4j$4MXTXIUiiQM8u%ju_B2BEL=X$PuMgXeA5RJZe`$%l0Rg=} z`$@mtHYyciqN5mArlA=@61-^XLcbkG$v0PdHPefCP6>Ts+3-G8Z%Si!0i}MZEFmDJ zNk8Xv>$VzuqUQ;M0I}JHsh^uQ63K(B%}V9;H7VYjDs*581u#!R&G-}MfM?299nWXvI>t#V@^pr|E!T1>$Jq;;VSx?%2 zWI^RQy0vihfJC0EoX&eNK@LLJo@Vg=@1eM$)Hv^?d3|-*WkhcXhF**cB14D2 z5ZHV2B)6NEkTJ#lhXt_3PEtRW7SE%e=e;LdB%>W&C`m4o+VQJ#5fx-pt)yzgy$oHo zvK^O(M2idkiAQj_13tdLkNF{o98mC4SYe0LUX6Sx>$k26|CTvVjX{GVF;yT8Nf8d~ zu%7oWGe+H=xG0yQ`Xh1HGUiV|jxSD9wKAgAT8B;ER+1+V{<>|tG!JikdIP(mv7#WQ zDeN_QM&#CK!ec{BpZGha+Y-wNsI#r%YsiePkrTigTlmSp7CwEj7t+8idv-~eYXrvN z|4aDYi$D?G7gw^uJ6_XIcc9rYcx&nMd_+~+^l4ezQ!NR4abB;y)?|j9Pa6dm5Tt)Dh*m#X6^tAQ7Kt#ct6L0jhBy&$#3kq&KZD>e;*Pr;* zCR?fYiv?EBsqdh8vINqMM&s${j?#?v{^U>kN2kH4xj&BZkQN844BTuxELx*sRg zt1Z9GDcnIp-r==IpIK4EE>&-K8?8gpKS9Uu9eje{ChtUP2ON@KX0kd%-ctT2+6f{# zUxpkmF(rfip6n5}#2TBecZcRa5R&NAcyf{9>YHEk8##KQPQ|bJp z%d7DI*jC~~C1*)87`XpdL_-rX_p4CawqgCp!^-I9!%%(i@&+=Z4b-^jrRyWzU>tg= z*@Vk&^TAAJWg4mv&r-kT-tDlbi60W3H2X>xBVXn;`?HE)jAmci!U49|=s|;}=41>| zNEIi#&H9|w!LSktN#to!|HTDh4@^7RQJvs|w$e5ByP@X3?P^c?nfV?Rv?ldPxS9cX zexg+WE#^5VEi&`pdaScycpSg)yQ(Gnps8eUl+f0_jcZ=PZo7#a!z)RpUw}J79iva3 zU*F;HV~%JD)1EN=TLG`f-^Ik?nm=@YDOA25i|c+qmp+x!bRu%R^~vuc>GSJ`d|O7Y z{QMY3W?$8(^KmRJUm*R?h48oqrw+H5n2cF#;$rP#g{!mA|5)1Hs|rHSNtsi_J1%jN zyNx`4O|vDxF4CGC5Xk%>WhSLePfR(t(qft}W#JbtP?Q+hrIq2;#b$r=Q>7;c%6haQ z&sS?i1HRmgy&7VMD(ew-sOt%xv|VTTlcVfd{av-`O+$0s427KdUGbNjOZkCrFZ4F< ziwVXeIXGZvV=jwM1vaKZH*M{8|KU>3KNpqdb%83mu82k;UoN_8}h_*uIRr1Er6|8^$PorQS?15@9c1)cV6Be@deWtOWc1ndNS82*C`TC68dtYvt2`psq7CL%S2R& z6Aa0hmo+^pfAb~0E+z&=PY67Nr&0hVt*HOzJm9~ zzT@Qyd1nvVh@ApMN`JAhh5@uQ1+Oc>(lzo&I|)4Ak-|w{*%EAX{)9avPG&3fQnJaW z4j9DV@I&UerG?ycwP|GoEH`>nMKtJ?p8A?`9bo_ zLYupXrP9QXT{eOQm|aN6mZcr?%VHGzdtfDQ5JkF+w$m3N?da<+V)L(DCG90GLp(Ia z&MK=yEl`uQ@4W!%_3yT<-j~Do2^Ov&E{~$?xW15Eh5kg#26Jwh;uH;WD=mtG^UoGM zOta}RNCC9eurW!~`s&L;F1+z0p{|p0z1?1GQX&~uy3(8jA7#nNwbVunAN^-KUjBj{_;IfPww&lUxi*^ zQJkQ&_kG*S1z|5HxNJUWrZ`uoxT;#bMmpYwk3FrPrbduU;)UlVAvkRl2{+c{bLz?9 z)4H;Q%Ugm!E*CNANK2hC%yEi>^%z*33mHX*N($7jPcOA!&zw&K;v)P{F$5`a;Ij z_PbB*tBz#S0BN)UG*g*uOP6pnUCk;=DV+*JY&3^?^Rm6*$L4!-)0ycz*0*-jf97ii z9iPvpURAtz;)xTK(y>sWJQxi2Z^<|j4XOGa16YL?JRI@%Om2YIM&boG=@yYG6%8_$_ z-M9-J>Y0U>QBEL{Ib-bN>^%^<-mH<@>fg5FLAb)T@_YUQ&ZpfFkAcc@;Ue_Ea8%gA zIIrI@2{mvOrsq|>je>clSdPM0FrAXsh!J-lIasx z=(E2c@cMe3A(hkN>>bVczr?2aFYGiLKKnbX)ZR+8HZP;%EV!4kVUE|EB}X)8 zV^)}jtVKjn-5(ql=H_d=z~QlxAJ;J|*W5HMEBH4T>%l76dPmr1MTPtB3&-ply;#~) ziUI~n*S0Q@%XOY$?iA=%!4)&}$l0@tnjY|V3bdhR4Xct{x?A>|>zk+0!=zYQKQ!}w zi$Jpw+*ZvXibn}z6NSej^uAVUxPgC!mn74^j@v@~*)QWcHR9v98AKo7VlQ}`gQQ`v zjlp{}|BH54>gFe7T-L;-jH7j`iW}kmM~m zwGkL=Wmr>(yAji6xijg^TVN^INE?jBn3yYXvqJy2chZ&-kwr4&(&*HIa!pSX5Fm%cQiB+qR%^ z#qF!fJIb}L7$p;Qm)uzRi+McQ67H@tQyJU<(*~xt-*vx}_*{U+w*m;)qRjH^+zT8p zdvQk+{j7a+DnLry<|>N4axeulCyLyn}eVSi+56^vNsCJ>Os59jt#>xPULrVEB*RZ?=Xo) z55MbhY`1Q+OpM zXKdTYIl}@zX{+7s+ps^wT0J;s;v}<+t32^zDgm5`>URnuPa^|hDaUE6ro5W3@iy@h1iLLFNR#=y??Q!HoiAkv?S!Pb(h7rLw=L>jihJ;;7)04yaFB{?!E?Ptk9TyJdaK3sVJ)V z<30kbsxTk&f1!u>J4X;PiRDPq?AY5FP2T5p>g5g`12pJRIpzy|gA%ZMFbDH3?8dq2 z{Izi38AfSaPi6ouW^omZ*=?7MdjFO6wO!)R`JTY|Z$hViF9@Av2IQEF?7@2I!?@ko zKs3bFC4B4!gIl{rGGS8%Rct|x$FTZ@ggkXzhiLB|QRmy6LEl!ic}_~L^kC4ko7t+K^|oS5w^3P7>eo-r)JURx`;5r+udp z*0F2o4@02i*-S5ufRir8VqK0))~Gn->&h!dT@8r%DaXxlBxU?af>#^LFIg!y`$By* zP4Mc?T)PHWK8mZDel5i6{#x#eUSmMxC62$vw77;|sU^Igd;9|j7Q6pBB3C7&;Jsm@TT8g*#`#r!xrWbsSyQ&EfBYb=>)>BWnOeP?t_+^OML{d}3SE6)YzcfPs= zHv*82`|ntk4DbMjzhLDLX!IfEnZB}$tO8f>t^yWQX#tAxd#YD1`Y;a)1b^KFeYJCH zvJh63KC2>V4`a(WtK(Et<18o_uUmza6Zs`Xo`M(6|CLel#WDHaWKGN7-n~t~3h9Xw zf+p)lJv{kKyvDV(1dEaV%3f${_u3;4gD~?Z{a;Mj`7V00QvH?9%g%>UP7lFi`e96r z8@S$!?CGBsFY;FJtBSPGdb(^|qT5CMX>)>s=q;CkMnva#2}2SKIH1AaV->8`^6kY5S^|}`OFIcndBirf@liUa$Cgvw;2+EO#1WEz$R;IMtHU_Y!O61SJx zCWN!XmZ7D7^l8X}&0SmrlKi1@IhlU+7RFqxQuyq9TCxlu$E!@kqRu%h(2Y-=jY1-% z@x9+};Dc^-Y|-l-KQp?BH^k1nB|N(HJrXdB0-o&H7@!qgpDH^AQ9(m>m3?@ zZv{%`p*IafI_oHA{XpfPzP~%b?~mBBm413w@$mEZO8T>4#>V@FCBf|7?79M~uRMHU z#TA~nO!|4ymZfBJQX$2|Cq?NdRHnu=#N!0&2UGsn8Bk>6!UH~r(eZY(#By?Xs>Fw3 zUFK}^HFmov>}DO!Q4xF7xu)7xA#}cso~?aQwf7Y=iB;%Qouc}dm%K*;R0vsaKb0*+ z*#`+QY+k0t6;nS^6*2Gle5|3~Cm8iEkdJlqmwR&0MygWyvv-&%Xfi1v$AbX9xRdf3_BWJpfESGcsp-03XWjcHmvTYW_Z3 z5i-<(rEDCS`4u@-DXFU7_+s#_-7hj--dCX(d#!Z$pltCxb-KHFU0im)cm`2V-nloa z{O;@63s)B7Ex)rjc&+KNj}!3h$u9VG37T(+)A>1c>?ilUIWNR^4cW7E@FaZIJ!Ayg}Xy)V*@oIR2d41w=km-hff2o8Sj_g zPlu9d(XSr1Fyr|VNE#oHUr{cKP2@{lFuv=-qkEcBmDFmX+L>@OG2C{MOTwu^`>cHv_BAotP+KWFEZfO5)S z8urbMd|M3>^5*%7-^vb{Ucje111|9*roDPmF`EmQvoNc2$Ctd~=NU9)7Ke@EAWE8&G{h?FcTuu{U-?>1wlkwa<~m(_LwLSpX zx$^>H2RE(Jb8V>=P7ydTy!^$M%udWryvv-)ciYZ;PqxLx+h08DR|>S{j6#;a$Mu(& zWQ`AZHhd;4T@oRwqvr(93~Y+;axbL17;_%p!@zOdReAnuOEfB@AHfhvpdKhMQcE$u zXWdO`!bmAmBlT4-ViP#d-Jy^%bIR!k692NNeK-8*iJA#g3M*6jKV2!A2l zd&AEr`@87~p3>trdvlEhe|QuEF(DM<1yJ{%Nd0wq1t5EEV4RVhBfJ8eI*DkU@6S=B z-eU!@Z_YPGt%TkyeOxX+AbT0^A2Tk@V5(3*Cpbq{eNX3ykGLnFaFU%bN?45%FJ|n5 z{uBt<}e*3Z(A%l(&o4GI;V8+RiXv@Snjxl6?Bk`s03ODj% zB3;+tv7#;$uIY2NV}VAiQj6lv)Z_>4JA zfa+@7MkVlSx&NZo0@FAD%>H*pK9dL13(6iNgd(;O>xzaP(86OV_K>F?X(H?Tt~X=uWM zqeNH)?W|yNxt!kq?WJ+$5QH24+SqsV6&`u%12g1zSi$==)@Q!wdhsrkubN*2$o@hU z8rl>h5gftb!L3L@r~$1aUPjVY%kY(O9yWdBUJL;I*V-bUwi&%6ERr2zzb(9i3}GLR zz%iufRDqttW=1vSd57NL#JY372MTbVA|e!3c??U@4w+m=o4jApiS_vSk^G>=;f0i? zxYa-?Os8X~Q!mNo9#PORmu}1eL^tFQH^eA(2e` zc@@l7qPB8=Nl_6v?d2XjPKyK(j0j|o-fvY(HV5Px)F+Izm+~IwF-Eo*YEbJH6ulFu z1o6ll=`2lmLwpfmh4Z@Q+xRk^^80lgI##GKA4&SmdI`3%WE;>S zJ%_uzeo4eXlYZB7d<6BJHjcPRTTrCz54wQx#v&45HMtBn)W;2n(U z=grmnWR^jkrxCmtKU_caQeRwj3RA=vv#M5W!$jtabIVrqyVP<&r5Ed%Ry zII0c;qC<=~DI2%FZ0}KkuUbX{S#R2#6Co$nGc9^UR|w0KK?RPe0NMM2nOid?7o`c- z#Db|##4@4#n0@aLEe3=xJXg2HoEkzVfmQ;{CjzRML->Of+M5>kbNQ(I(tF^9$mGVd zynEzr|IM1bgcDwAzB4zsC5YijMk0fW{yqFfq`E2HbF{U4fg8PAB zKo1G$YL?$s5LsL+lU&KfKF<#buf`5T@_ScpktblAj^kW@sY3N5pmJqq!rq%FXG*t$ za0x4Xzk+_!72{j}{b>a2;arA|8|sSzd;HV=FzBzHG$u}c`ytH1j6!7tfsho> zZJw_xxISi`ej+ZJGW9G2+J$7cLauougjePS-?RMlj}_WiAEsl>P1m0N<~r?_SFU5V zX$gOI{90n3pSt8@bx0)E#|j6H0Y}q|WQee4@+>fq`{M+)!1>|l(fO`CpyE{3N+uZnVT(YH zg;%Fx;T^sknvXKn0K)}o(b z4d7{2nxxbZ-Gef{~*Xh@1)Z`W{Z zT~#wrVBypX@hh=@K+#gYo5MtHa>3sy!PRjwVbnR31>@kivzr2tGX!I&h(t(g^OzM8 zx+b`Yo4`qu&A5(7g{$R7^dyXo=CG!s5Hru=!yo_%p;^$=$bpvr6h|Zb5Uz=y3rT_8 z_afnl3haNd1;i&@QRhmm&A=a)SA7`BV?#jPIYy%?j+mQt*ru!Q+wl5l#oonH^Wd+g)^6Xv73A1Y?{xM?vHAs6Ey7@J;uX@DGDJuHsZFO zoa<27(>7UlA1XlT&KoFc(DtqW0O^dlv#EFTEbgXNP<;h`WovK7DLsp-M&X{tvseJ< zL9{JP^w|4mW5eSkuM0jufMAff&N2S2l48!Rk4QuuFSP>{0$-FTmr)`|&m9=kQ7B-+#14RG*s`-!)zaRs4jR9KB#)5MRe{M6iCHM%Fs=oJ&UYgGn{SA&tg@@B-7Bl*I4{udZ_)UbT z-;8WI@g9sj%SBN>1xHoH)fn*qo1`XA+VFfZjXS`X%sPcl3Y~DxSTKKsyd#A0(dIPIk z5x5Vw2QxGxpDZBc@#HD&Us_dilfjpI)z#Si#x`cUAK8h#%yFW_4en$2ZDqo;?T5=w zBmLoEhY17EggIf<)CO{i%tj(FuDli}S!CE5<5BpDEuMdvNRi%&SXlL`H3DlEKoD|L zaZ$iK^t+jpxpTbwS@t{3kc-!Q@CBqqhXa{XZ)8nc-JA$&1!l*PxzGQc} zrZ6G!xxYi2eXXpG?QkH;-_ctnr@@?GrKF%-I&d)A$M6s9pSZO`9S?>LSosq8~zE9hR|U zsHC{b76%!EMD!kL4uCpX^Y^=zJ%>MT5PmW7ZHbxU{>7nmT`p8?`S;o@C*@`*zxC)w zPh4d}NgL3f%1kKN^o+P#K69mI`=>21=X5R9147H6sYQZ3L*6+ z220Ws!%5DaM_vz=qFY=wqQO;~2c-qb7ahHjdA(>I6yfun@~H+naMh%AP7# z@T?)l8tJu4P&xB*r|q!V6W6G$K=-B;-+yn_`;j>PJQz^fd)>>3`V2p(v?~K+zu7~bTP_ScsxbvYmSwh$oPn9 zz+VCwkvO2E6Btby)RcPQwaGJU-jN$qLbvgH@`TE=jkQqUN&Ed%vF0n zJ(&yvoJPmIw(6a4{XVrPs9AUDDF3hRbtEU2xWhWKpDnleXt6QYYzI-h;7+8m_eD)h1z~V(Wiv|&|AIa_=V6f zrPv7?Q*&9SOruZ^+hFdwvGrKxMw8)XMLCNeP|H+TJSAu{vqD=9F2sW}wSkP9y}rk) zQ~4>D8r>7uyyFt=5{G0f*c|5$kHc&{vXKp{V@}o~=RSIGs2kPrm4|U_Z@S;XxqZrb z_Oca>a!pU$vG9nQjs)Quc`@?vP{)oIaIA8fb-*3q$UgWb^C&B@F6ACF{D!O$_f46e z44{_>H9rW}^Smb|ty4(r7M+H7?wjQdOlYiwP~3>{TrxupplpKYLQ|9Ir*h(ZBkjbE z%f1(l5@x(UImZ+w%r59PymE*;*`}e4N@WVFscR`=B@__Ss>+XPzDcFsWm}{WuiY2y zV7ScYc%(@ueF=0zaj!%M+Jdl{7^0?WtIx!7iw^5aqIT%-EE)1E6VXrks!h9j#A6Sb z*XV!rsXHlRGM6u|GZn5$#??z1JM|z5-RftTR>B$y__7<*C^RL;XvRY9j`$AHjkPj>UCzB+r0U(Y-=#C6c(KOWnn>D(=Q>vFB?&#~g<^&o}3R;J#Uonj;SbdxJ&R)xjz>q)o;H;hY)Lx%@qkF_^5BKG!FR zK91ZsP6mPl9RJlQ&k0hM=L(lisC-vTZ~W!6_Ji_go`SmQQx9DM-#8N-zOnEdmdp(1 z?6lZl-BIhZ-37KkPm`bj&M~laOrCq9_&FCVUp?mlP`&Rjkg0=`lANW{HE4OM{4VA{ zP>?U|@@lS%IKBD?Q)jiiZmg(N*2Pk)(DZ!d4LXBT+iVh(#vaKmC>P?jGKN>5qeqJ~ zVAVrq9;s!pN*Qt>(WEQ+Bts?y7Nai(vT|_N^XwQAjM8B3riQyc!~@7$mZlXz7k{7> zs&i>k@--P>bnHSr_c_e8_bI(94g;>bNNw_LOm56)6y{5?=Zr@A2X9Ch_YQcgQ}6N5 zRluc{Xt5(mtP7Fil%XYrfLnB4faSI_mFuMf$B17iob(HTvHn(x;COtEKSpP~DR;S> zYx|)+;*64yKNZ@iiD|p$XaJ*pHqc~xcKV>T1!YAP^FcM4e{Ix!nH^0-=jB;-8=S4O zWap$Vx{%F6cedmi|KvE(VZ6)%*%c=z2KZMykXj_IH=K*wFdAWi+G`#1bQDKogsx91 zx}nGizhOXtL;fOdjk$3_(lUdkwF$JUcf9nv!bfvd@F^{~gjTC4kwV82GP{7a61prj z9?C3p#VFq)=W=JW1#C0yOdkg00je#W!wXWs@sZC(-IqBpF`9O-tu)>*Q7!6S_u=&v?BF!q{5kXzDrh$` za`IEiBPP7+aCvFHBi@#bvU?bCz5qw}?%f9%b^j)qp3g%j6GpM@WZ;) zsb_xiTF@h|nm`8*y$xN3_Hh2DG^aJRi--|<4{h8`HE@UEd|z@81<6S-S0xOpjmC~P zr2_CBTJNV$!EnQ5U#gg#;O}CxRmcjkw-3de-E40I3A)x?qWet9>Edi)PS1;QkL^A? zTWH$ljI#znqZlSC6fqvhFV}@%N!oJ0@stENpZzv&XS-p|*p~i6Pn|6%Pz6y+Nc%ZG zl-Kw2cFBIp&J<=_&5#uc%Y;bUcca-qr_Lj&+ks+`Yw|?eWzO?F(OS|?~8Q#Z21iW*XP0o07Dv5FBZa1 zm$EYLzqR94{!4=sdkjdz)J*&WTn|WI%50=v5iZkiYAt4#quuN3A;kuO}K-0`j33`W_<6>GH=Ii(YkbJZ3;(5fccbY;G ze6#$NE27SLYxf@Z6vyj5&QY+6s;+@pq8!8oTYFfF;^hxc`q!f5vwiMw4$wz92Jz;Kfnq~O)DWdEjHeYrX!emnenu8uY~~-d zb(Xvv!}$ls{5-=HxrWw``zDp^+w|^b3%BDG(c4CS2O-Z57@prVM;6r2C@J-Mr_At8 zPBdm4@t4irFfS@;CwpbNNedd+B~F*UBzZrJ8l?C?Na)|X%~*f62}(>h>J_8;?VXvd zGb%oEm!0|I#7j)JC7xNB`RGq3_qqOjvE9@m&&3ISXI$Ix#Gb%1R*0-d=`a}XIb}Bkra_r#je6#fDRY1k9?k4` zmj=!yU2XFZI1?=-_yO4wcJooykr_&TwU6GlI$*U|kNc?hU>?5G9xhNDeAUx9r5jfx zju?Vc9Ul>}XKUUR4~RK`5whi;qH62*ya#<5t>m37oL}((ZDO8%?w-|n;D4RaB5%C& zvb$L~vW|Pq=v5Uw&~q7ce4wQJ`~(XBuXVb3?kul=ZR&1%5Rw{^pEcU=yE^1M zsKp{AuOzb?l!U_hxS!Dsw16+Twg^BcCY=0xpZ13&dL^chSwc?mu#J`!N9bS|$H7d| zhuf}t$vq@_z8hO$BUF4stHj7wMtOvNT;g6ecU+B4c~A~>wuc*4d!Q-F+)s0~&iQ8# zwui0`>HaH)*P3~}KI4gmB(qG8{Z1ehpH{!A1ob$LT(I~mwgL8P8wXl%T~-r_M_qGu z#xwPd+(|Bb%2HIbK{#`4n6vTX%Zg3|eds|+MwfD~PTn8wlv&5dt5}|xnq|=*Hoi39!NB?Tl z^%#QE7W5Vzi{XlH>9jVT^eDhHtmun`CMg4Z+ zxz!%VT|7&6aWU=-FH_xgia!kEl|u>jb!2&dB~MK2o!**@PPibpT}=JXDF)tCToNNG zu_=GLDO6K|%>||lxgFJqRifeEQJSY^Rt|7pTSoXEsh+**-uO895V{rSajgVBvN?N_ zUZIz;IT8mFrTeh@t5+~n)Ui_3DldeUWx|76Cp|u zeKVqfr%?^$mmZ9Ny#HTIW$d8cv7YKCN2Z226x{0=u>FY>&NAwhkY7nAK|>_irV@Fl zi8bDqBBFTTbC&O^{)hQUGE?deOb80`Po2Y%zky*hQYaDfryi)SSRhL`Z5|**Y_2D^ zrnaoV1W;06FW4Nd7tWB~K$gk^Z871Qk@-DuZ@HWFv!EHF=;z}@+MRz^awzD=X9}z6 zh_DZ6^X~W~avjcAo78m3=2mS+pbx+Y3ssUAg?A;?ul@;@PE@doKhm%>RuwPj!+cr>9JG(!wM9r?NT$ZF{AE>sblpZl5uDv=7nXd&w`Eb+i|*=j5vMP4p8f?hP8#K>qfafhEgx}+V?I^!|Dk6)e{ zX?&gx|HNno>2cWXd+Jy;X;yfsQPFar2x2 zmxXI1B(<-2JXBgy`OWtDCblMj(%(aR6J<_i@-?}y!9TAqs} ziEdlkILx8GqMYv~6wbJqi)r*Uf3)NT1!MdQFcYJfB*qi2&<{%0gOt+&u^1R%&)t+< zyP#uqo}9OZ<&2blt+WBy26l{;!J~r2u(;9tL+J=ze-Iy){rLz z3#Df@|zSZ^D9!YteUpl(wdtc55kCgvmsY2 z%swxNj{mtFMmF2F9~>v*UltAcGV~R%0k_7}*fO|16rVHOe)iWyxZ>K;NZVuB;pkf! zF%t5XiAb2gVY$)CDQPIz?;4z1ecT7Ja}hFVMc63La@b-a^I|s*RrwMal1T{ShtMeH zu zlh2Y#)6MU`)94c0Wv{}t>Z%JXT{!OXZ50~S8r%C@L-p=@M;AukX)R1Tepj^u8;v(t zb<6CZmR)?<@|L6jQwG_=Q+?I9nJAT6MR#);t97fx02C6>)_^p?t2%`HR<4J@j5!Xh zCNuz2(%`x#{|5@+uXmk0s8_6QHqqv)s$2^=r;l!bZwF8=d^( z>@+u6gO_TuG-Oe3wguQ#Lf6!{G|r3UhBN*{@ui3Zom)dMeFiWaA49+`4#KTsdf*-Y zxN5y)X%@6=6?{xQr*2Y^etwl|tX>{({L(H-F1;Hn!O@e~6%))h70ukWg!jnPdRm&3 zd=m?nK|ArWrR}07(|1Pf10|{NTTkpQBNHj}$@#I9VC|mF?xf7v0Y2PDSLkTuo!aujzwB#>qmGuJp(Aq zhd|~OxF^tNYem!|8%>W(Nw{jkli!Y#(S1#FrPy;tS18~xJFlmwEv_tWvLOjHKk}L- zTUb2(ts^i2iiD?1?H78n*uzsVA&<3uGv#0J>`k5F&YyGk$>C)Nt)j(MDBUI!Rvb!^ zBnU*7!&(!p4{zAWIj#6Kg1|}I-=h>W0!E$yJu+gc>@@+}Gb_1~e-{4r5DBLW>}ze%Pr zk@NfBN_&*Y`HO@-EzafvH}%Rza8gWWDR@pCO@9o|Wf~Poz^c;$4X{fjt#p5u-f@oK z?_8pCV(tHUsmMd={bU@zdnH@?%}w7g*A`?5#4tru7P3((@U9>|kO}*N$6ia&z%e0F56j`5(9NzsuzBCb4!haH%xiV zBE^;-twuCgdi2RzDj7ts!+JZ6^t5W|4c=Z6q;7L8n*PSBk7&V;a1(Ae`LhXECa99M z{0Dh?82y8>^EfPLaO`3fP^GLqN%;wcbbmToUO0OkOb`!$|Dx|jKETqWIyhit`fDE> zt_KM;w%BzGGi-0ypt;JE{U{ZJZA!7Gn%;k{CD-KuWpZ(Al(NZa0_~VGY@w9si6bwcfGpvk4XHN=TzR>kgZwF%=)%GBg!S+s zX*ekBFurQr4Wk~!&RIq~Cwv|fa@toH3Fzu)*7J88v6zI!Iv71)p z!Uk7e@`%a}O(VT<8Y^IaStjQ;fie!d@Q`WBKC6S7gudFCPZdqLE)!kOD?hs8iaKEu z${WoV8N~040vRHWfM43xi~F&HEDfK(FZdg5NM8pkr?55+@>N+HtA^M{iHMG#nAUSNT=z4Q+dityl^` z#cSOt33mk9FEOcA9k-Ie0#CbpWeI~cC~5tukr*bnI>-ojp^6i$p{usN zRpXn=8u&4Br7+6P`zO>D3$`z9J)~jsGIzNdUFGG9=N?!&3CA|78(Ae5-a09Oeum`I zGiL;azM7p<=ek?9GW2H>3!czE(Xn+6zmCA<9PMb(Y>2A2)gV}!++EL!yDu9%Zp@ts zRJyk1b>|Sh#IoZd;TER;5qV-TSasoxLHo%MQ$908j8dLMW}CyS)gM9clt89cc9cjd z#t}p|FN4YiwIGGq!NcgSSM+EYKuvfh{hxRmI3^_|RaflI?`vLS(7_m#l=!)3 zeDT0Vi~|xHK_sw7z@v8<{|s{}g0jDrV1X|m$wgPdEF6@gh-;%L49^t-Ok^WqksWcg zHS3`UOMrOMXE$re&V9;?qD*3tHIO=|6kai3S~gjS zilwJ4sicf3V0h4xwx8+h%}wNpF1fF{4`m;B@)%9ahjkHsNN!h2bQZ<#bPl@d^EC=a zGRemiaNR#`XuRQpHS!~&CHIji5=c8mt&cf_hmQJ@t1k1z)C`T+(oB0JZX<%GNIn}e z@{N148D844reLtw~>HE2@Sacp@4chefL+k$QXIPhWQA`Ed6wa4UJbK^Sx-{1ad*@}NE>*_~l_%c= zHsc#wZw`osaJi353JYES$r3@+yLZ2;wC*jfgRoJz4DendKATp8pQ}Cj2eIi>XIyM& zB|oEZ65rxEiC;~HIqA&?zKzvi+}k5>xu?ZM>0%Ofjkxw|Oe|!9>*s`%>l~IWf(uE? zHxHEj(nrja%uyVlXD<7mc;%sLVgAU$KL)j@0CveDWP7VlWkx#^8om^PKDh9E;!VzS z(~#%nQH^X~qOWMUOYvv7kc3nVA11_pMA>=W zMw{U~W7n|sjB7t`U$jT=oXqh%Qiv|bn((%9;73Lu+Bc|;HhO!u7u6QD4$5L2wOOcn z@$r|B$;z5S7oXC^wA!wlYKYHhXY6wq_dcj@-FjzpOt=?Y3)ZE&Tl~z*|M7y}ZgLBt zb814u>_2q@?8eu(jCThD-p8eDlihU^pyUS8RT0KOv1DWkyWs&BouvMPT2iBM54mIL zi_C|q?iJ2qriZD~WnhvGwL|qz0Vi4BU>TGT7q>UWj3zCGUJ{SeU~4zx1Tnf^<>R+S zP;|H?om54+D`^ZuQshqWiSXW!MI9)Gb4I9nC>NHF}fWWM#Fah?V#`qK%ij)r&8z z2Ye5*_&4+hysg8s8bn?@P(%Rhhr%xDf6cS(dK}T>^7HpkY*1Wwzm$o)8nPU>`U76G z3cLtb;khnFQz0z=O%6UkT0W^ym>toW(Bg5Fyop97-srjtOaOBe$mt+y2s7c`ES_us&!L)KK zGEj9uHg*MZ*xPz7k=KPUc8H!^S3yAf2yTW;lv2X)`A?-%8gJOzBH3bqJlcUkiY4K( z%F8d7F;}@lIgY6uh%;x>nw=(9yp~_YKV@2AAuAOd>dAkM;$h+$v+t?Hv2|@m_Bg0M z#R4w*!{p)XX^8awaA5;rzK#7QF*LikK@BJGo>nSU&FSwK03h^^OtjE>)b&imepQQY zG|r_t`y=>VW!G+lgx`wnUph(q5p%d7@!=bN4#FF~+(iQug)X5^a=}_SpGBVX`-twl ze=pzGw|uzvxy73!2f~0lUG{3&j{hqho2i|9ySR(%*q!l*R{_GFzs8%!Plf-WVr%3L z>$IehjEl(xWi?`-LfUxHBQ;mxJ8JQv%vHY~rs13+g|Nh*bc8AlWLGP2o>~&arw+E3 zkyk=c#oDo@Fyc%$psKq5?%#te{%WDInIrq5VLYcgUvImrxFc&{FiYS>UDx(_0s?d` z(<<4qC-z8cGMFG&*;TDn=YS3D9W$?@slR5x<2KaXO->#3_K}N>^3#JS=0riwMp4U6 z4Jy(~Ftc0@9-$P(7~b-)d>JaHIg|TJf@{8zKV~dQj$V`H_oO$q^W4JU=G*moBZ^Az z(Cr1Ljy(uQl20m{%k`^;nliar`Z0uHrJd*n5v z$5E3Q+u4T9luS54>AXg%==i+VDC%Zot=MyaI-k?0fsg3k>(QimOID&Ns`y&(@5<#< z9|RZ;+G@fsgF{kQ3BKj?-<+G8e%YuObukVY#?dSNYI@sy$v3Sxj(gWne3t9}BYc!` zF#txxQ)S=~lJ7iVM)vbqI0#mX#Vhh7CT`vc|GC4XMx;9%uDJacg4|5~8E>x~Y#*xu~IPnui@1I7)b~kk7|9v28w|+vu>WbVR8l9{GV|X6E>>N-(GmsR54wSkS zk<^}WHb5qdlctK2G8d1gGLyt*gBp-+=O#|Z0Kyv#W14h8!@G|_N$+_=@L}zkG;#zc zcGw552maibGTp3DwkRJ49oz+0$DsuV)={8O4x=_K(>#5TITbK3(L5eUu1W6_Ux;}4 zUVX+1I*>kzURAH@4!CorH{xdBlw`Yt$ zLxY^VdLn}~$o>lXj9o`wYAc6MStuipi#zaxp)s>bN*T37fLT$yu<|eK9cRg$Ny4}T zqjsN|3X*540N3o;%6WD94MAjE@#2bkZJtvJ*y~A4^aI1`N)-qC= zwrJs`w{8@*C7UlQ3TH`*lHEEcsw`_SqEoFjvYz)?QRtuDZ6em{myMO)IS%VZGvUEY zk;>S>T2*boY)S7eDHqi${Kejsyf{6%x5$jp+pZ;>j?Jy=Twtm%#=6 zkZ2^!+#T3_eGF&c9?tLYI-**6JiYM!?n5q4Z<&?dV~)ZIWFR7%~a6Iiyt%zfw@8{%WT#|gT|5yy1Y;vM+p`~#pCv`{1* zJhA`7)L8|zp>Eq6w*oCzT!TA>;#S;>yIYF86QoFScZwD*?(XhT90J81g1g?VefB!{ zKAKg1Vw8h~@tki$u=fEh!D$UL3 zY#ZED_&x&D1z}#dBjEgM#^lYq`R5rPA9;9ry!c^}^FEW4&txU`Xx5k?N9|v%i*hUU zj1xZI?aB9lV=Fq^jvbujM(^Yjn&nz7cUY>PdF@*+?fv6iR%(ae`AuvGj+NxigY+e7 z#=;YDzFx$w$BSCI`L;Hq5>2Qq-d0&l{^i|C#6#t7M$SX>MTlllMv)_6;*C#>So^B7 znOs9fZ;j};p1p>07S2jL*&av+8&q+KmX3AyPNTqV(>+dB*5l^_C*w(}%m^P9zvvLD zEaPrz11Bz@L$=pDm@QB)9s>;wehIlOJCn$fXHra_GZ*D|&m5`uJ)WKYalY1i?F0kx zPV+7$Li;wv-Oh6F?^? z^BWVkj8T+Wm$9I$B&{G4y(*c`-SE6Kc(lWd>i>cy9Ck4>=HepwCOfvcM zp9z?HKZNd3%Md7iup#_$>2o*_^{gzA$6lqN#YWc5cwR21kKV zIY&N-6#mq*ZKY&%+Qe7~e1bYhNNVPlemHvk;7!;?CtJ><1|FAj@Wnlv1tUkd@eHr% z6SUB|#0EG6BjmFh^}E1EYQ|%$NyfC_JPBPItxkW0!njPvVreky1D9%h?qbB5#gqbgbhNxH)18)r zPg!}4LtZhvb?AbXTSTogUw$eTON2Tdyb!v8SM&!uZUleXzS&~XcC1fqPo7F&9qDyW zr5Z(hUlW~hKWsJS^uWi`(aZeX8636DdLCT-ZD_)Sv4sdkRR|%ckYkD{z-&@~3{}!Z zU&G9)KTAFjjZ}!RgZpSg-PL!8`6fe5u+6a^GjwYZJdd({MCo47K z03|UcYB{}{XnE)U?)RkN9Yit%cEz`OeArzE$e5_x&Xzp~*w-^m&G35`@O;Rcx^{um z)5`>EXmb#$czebdbJw|NwAsD(t>8q4DglduhH^*cf)Gm|ddyEnCWffq;>q=J9!bg- zrqw70C5!sIc1N(X)N_X!n0h9qsw2edH!JD3W-O)ox$m(*!#$7T1nPs? zizw%ym61med2m)$8dTe}Yx5H}{K^oEmZD!gzMFszgT#D&Df7k2TrPu04x?J%ULJCA zT`kuXsP)YMDKUBIH$q^fx8$4y>ln;8s=OH{nbtv;pVBeQBszK>`(*Y0MT>5_)) zD%07_9r>!3AT`^GT-!7M-UV-kHlv3ZE;Lr_a|^R}HtM^YHiSS4N3IM_+EQt#Qj8bJ zg`a#L;!+V)DIRJ(*ch@nzVId8zH~k|-DwGS`H`KO0F}Ciyawm^e)cpAJh3Tb$s)h1 z2d)J0x9jHMWwBH;;hgcHpAz#=+B9iOwdL(6+QHO}4`+X{ll-MnGB0fv{b;-2e|jCk zBN$EWe{ykC10_kBP5+FQR7Q87a{AjGUKW?Y;9ELRBO*ViS`V2fwuLa)+}qYvZPNDh z0~#IL;wAJIS2j!TFqfzDC{Hs!;)bseo6my>x8k~j-n@TdR(U0RQe5)RYkNCvj z{xg}9dE_7ds5)QJo&;g*G(BsNHp)Flb<%@V46tKqO>BimnMgErH*?nHxb=k-Su?#( z({_tHchQGffUL{>poxmT2m!kM3!AwP4Wo5^Ja#W*9 z)>>d6eV-D){)|1UE7+w2R$o5!La!b#kwO`}xA@U!D4E~_7=56fB&pFT6CTfTM`m$p zHJV-Y!Tdc<6KpAcIoEpyDsCF>{Ibl`C0z4j_J-p>`tvhLOjIbxfBl%GIi?G18wnT6 z0b~-Oy{F&Tkox2Lx$sZ>fb$+VAA$S>+V^>rZ&SkX#rJ&HUGNr6X3A9bffdWrY!8V8 zIkC03KDF3Hcrz&G+jVlevPr&ejWVo=FgTSuqM<366myHwQ&The(guVKD87cft&I*| z$KM7Xu~XKcB16xYX6gP<6)EEAbvwX$-^=4}QI7{h(tLtvxQ@RpYUq~E_tW(db`d;_ zMh4$Mw+YYz_6MC^=MFU%ZS|h2^ZNUdiz3Fq7&4F@DIX>1lk~6^;bq?K8`QNRXP0k8b z^~2FAXv$Q{J_f{QISWd|jI<27FByw*^jv--8YhP7aYg=NeeSK0%S|2VIGAN zl=U5O8GySM#R{?QFsY+l$oUso_s&B+F#Y@w7S-cy1KV;74o6cX9)9*&s&aRX^s3e} zf?7fr-@k(`_nDm?^PB}kU!_v^6ME8xh%YniXF_95{B|KP`X_LFZ3Y+quOq&^Zr|WX z(*GSdhL0>mBBuNv7;LBDeLeAqJNwxB>MhMQof%BrWag?*&5g+pKOO>t2jmi z;llDzOVV*z(x$}N9QB@I0$WE6mHqY8*Bl~`Ff&;dB$_%fq+ZdDf-%#dx|6JDD#uca zrxsXrC}DEX{+!W!a3;#EhjvRU9K`dy{Zwt?zx5|6>8$XdTrfRGY;=LT>UU%DJZ65a znsD}0pJv+1~`OC(RX_;nCK6=j7v=0TFNLt;U60I)BOlyjP zLtPuUx;4saIf=8rhfL%$BP<4(nejRf4tC)?8=%>I%pPZUb%+r>Yfm+7f1^6Iy5lY` z)Q((=czKW~DkeKgva!xTcOd|Sart(_Snp2WcLR~PdclY@4Uq*wcM99C?}RP*aP-Io z@AvDX#qtU4SWUSKR+VT3z4uu7mie1nEj+ARMPWQITh#7{i^=t))fE0)DYne*Tp59g z*fM$BX8V>n_#7XYKzcC#mGN5BxnF^rcJSipShv`DXP8<8^}zFBv2j<*{Y4VYhqfWd zsGeuH-`o1q!FW_2M5pmKDw&FyIrB}2;pl1G#kU&eU)@jDoYCfx1fqKriEQ(yx5xN( zzoExQn`f8C8QBXTgqrfYpw~Yj8Z6E<#%ppKL>h$h*>Z!B(Om}7iTr%^nC2ZYdbT(O z6AfNFofc22hIK`f7sP5#QHE9;F!DR^{jibMe!e3v+c>ChjLAjA3cB!$rpC@m<;EkQ zZ3!n$>2o2;G3s2;o1l#HvYFyuJAZe#-960-t&tzr{%I#ugP#vD$a~5v@4=TrMqEef zoXS-BbKtJ;Ew=c{IOr>zz&*iA{d6~RA9Vr=hK*q~yGW>kYZwDNmG}`nD^Xvvg?KxI z0?AK%EGjN3je>6g8LrQ(GnFBuN(qL!ygx=&;iU#zZ>qeYn^i8;X7)rY4wo?SSZ+?M*}T1BBG)Dc5|qr?>7-w&-*?Dzxs01;{ye~l1rBc)yc<{Ch$oZ&0Uo-H0(LC^dt~zBVDSjA*Ve$1Z7$EL5!hlRb-0Cjz4( zO{m|NRlWER$LDx1!Lx;V_J=L=B*Z9^$j=6S|>TcqYa^YPgcO| z9Ylb5h@v-Q@t2}n^V_p7sJ3dT2y@+q@9+EUqy8ro3EHs>%c)3&kK2|sW+R;xz#`PN z#uHEKr2S>+5c#opJFn|AB3{)~3$oL4L)(*sBa|-5|3jCk3z7&$yv9PE=6gaPHbf~| zPHDDLE5Eez#&1S)de1xZeG2nn(^NzA!A<5C+gIS&`QXcKt2c+M-y-}%@LTA2s!~+$ zuO3E|JTw&s`y6_;?0c{dN6Lc^3an;k2i6)@pE5*kzsNv7E6SV$k&C`YPQ4qX-$GOF zu78HO#6h+1T{u}qc}F+e=%xRIwXkasXinz%qkS&WbSlCC2Ezc1L`YePSpQ@~3)F_0 z_+CChK;lFc+2Hz7-+p4-S|)0uPJ}FJzS(HuGAPI3$U#E2;YuhiO77|2K?=dWvK+1} zrI_?qp|qF?lr;S^wIP1Q;kDcG^jv2=WlW%Xe0NfICMM)aoxQ4YiR}MCPv-f2|No1{ z-6vY8YMsdFe(&_}A{tClh3}Hb!Ds*(Ir;>Et~tJX)-cp9)f?-~avpXeJf@RmeNR*R-9UNZzJP+p%iXVfuTsuc;kl@ld93=1 zDgDja?%8K8E*~W4FuP`JiKwuA1~d8IHT$mLvW=P>=rr=hWb5Kn;W&A~o(qP1pe=Mf zlAXmPE&0IGNaBEhe)mJ^P8t*)>sURmRJZ9km->~F0wF0ok#8F$e-wLSU*=vLA6#pC zwISSQ;k3&uGIn*MhA{f7A!t}*a?ZEbn%m%itRxhX`uFyE^j=L>^|kSzaWoA8R6KiM zvf>9X{az5$l(hXzTVx!=wOAzEYCtvJ?lq9=7R>%+{=49|zgV~}TT1Jk8=6I%7>ZDLCA`(&N z7S+u`4$0Xb!=!)1Y$>_c8(V_Ok0Fc213|y71{v1F-o<{oUk>t>iL-r#xmZxwCXeXq zBQ-_KHUm;Z$t@5B10xFO1l7 z)AT=gVYx>Uv0!KFlz7r<)Ob=t!c^&#z4KeS9o(kv;c%=&ibV!q9TSGsU4O?V`7wIj z?9EKo)S!i!N;M`XQcY!k;l2pT#qdYfeX*V+mK*-fPY|V*hKKFp;%o{y^kPE8?I_L^ z#y<{=AM6-8&=ijneu-V=&xbBt@VX4>=v3lgyfRgY#3tXYg>I_n5XIT50rJu=T&4MI zB#6UFFx}g*uttCYSkkAR^*;I<%+KCM)!tPn{?BdhnyXy3V_1rYUtE0`S^D?={lV>m|;?h6mY55!xJ_%H>I4LzF%!DH__E~~z_S5S9XE$z= z-iL2SR^r*zfFUkJ3z)sk;T?ia+n?V*-96D|h`VI!SwNIp^0m>sl-2lBitra$f*)8nHpiqJwIV=ftQ&SB5VJ$75;t0*Vf`XO=Dp7iq* zXMDoZZFs4!79LYEiCV`eLYXg5q_PZ}=KPX>ne2Xs+e)VNnj(O^aTOR~9u5|plfjV`2_??bn z(kExE1M#+&>6CBIZN?(_jqKinIk0SZX$Qsfq0OX3WY@6HLestklCd7>y)$~_wM_FV zhdo#2`s>!Z+9{UU5y9haAo6>WbMED30Da%vl`W2SV}DM$5>;0HRR z&>S}r9M_y+&=OYmb;)tf+!Zw|d}(1O!~i(eT=+e1j_e)QJktX@>(g8|(HBA)L%$R+ z47rMKuFVtTwP@VjZ2kcMm$R+_P_}UOtoXk&mWRsSX$v}^$Lt{vIx9pNUe6OLPv!ChQ_%{(t-u9_gteOZc zRI;X!+cp=IXAN5fb0!nj0%hW9zN8gZ5_MEfL|ZmJx?w-refoqz@--Co}L&fm7HU7dr3l2Ja;6K>+_FuoJLt4i>i zWjL230_n@H=yH9>U%RtbUkk|T@sO56{8R?756JyYReP_kmAb$k=kV&Ki{*F9^_k+p zaQT{XXFnnKCZgqoD%thLU^^0l)SAJNA6VkMP&sD0HypsA7$ukgv#fybhHR;Zqq6Bf42XUz~1tiyn5z&F5t!;Oa)eR zUmG~axLD%`iR%!4ivF?UXvR{_0*k)RqMf~nVt-c7Ix9;ZYia-Yd1|}mbNS*=wUwwP zP4nn)X?0agPWOIsE(@&2AX}B#$HPXvutv64hlZ?>tmu2|o4JP-qtrGwB8J9gLkjK; zQ;2oY5AbHID)*}NbdSd5(32K8xtv4oAhGiJNFcipB69TsImY;`XPcKGWA@Ig>1jo(b^D}{-w=6FE9&fjApQN1> zO-qK{<|D%f0ahal45eW&kz(C1Pakfv2lw!P&;*OnU$XUVm(JAw{`7n3_d1msO>N$J zd*j*TY@z}`*-O+YIaBwTgEZG1J9l=SyDv$W8HMSN6VR>>dfej9`pjT|hA+f93yyU+ z89jZq!BRKE>lEzaJ8QAeGCU-OW`6GN%(tC|t@9yy)J3C4(ds$l4)ty96b_b6raRd_3lU6?ncS~2^kJfkJs_a0q$R?nw> z>0%uJ^9Xjg;@L!M@pGPLUSxISPnP`&Z%JE#(fVD2{w#cIs{`!i3LmG6)!E>*Sx0z zG!s*jf1{$cj2U?~=`$6O3pnw$D_LC5{WFXWv02z=jf`wF?>VnX4p|wGnNfYitHWYB zgqJ_a85-lAxvfiCpP8!d^!vN}`0`@;L>Ze`?`jCi`@ouT!s@P1TK6El2ufTzTDeiN z@yX6M=@dcI24_L{;hG<{--s!Iy^Y8-w;D~tv5Rl3LEF+4G&Im=>K`t7={&KCe4f4d zjC7l%_9D;h?E$lqTF8iFySjkCwMsk{kW2B{Dog|@+7}mSBv=4VF@W@GI!G2hK=wUR z8!7?1gC=iDwrO84ZhoBrICiCngPV;~8Ko5&&|R2c#vZVTv$dl;3ZX_KZfJ4^HV8$3 zWQbi^v@e>)@P*mjw!1tr*S4Wb8`5b@vl|ub_=EZ<1;KgGw^9}Ua2bW@yfOlMzDs34 zYtzl1xFa`Aj?R3a;rN>^{atr6%Cd$UPTbsqZWe}Nb-3r9}9Jc$fc`9Tiu zrzHO!O(9Z44IYE5{9X*_u12`3BX|BJ^MDlQ<0-yKg&a*kd{(FljHa14qKxXhS$1mZ z6DO8oVdzRB1Z?pNXrchRH~Z3H#cV&$7xpc#!J!-WfqzZLg>7;Jvkr{~Z zi67$y?ON+~o05MBRG3}$$_OO~I2d#*4kaLE59+=&{KWXN_s-E1)0lavIiaR{ysn(a zH7n&2K%5ZUeaQf`YZ$a(biTE^9Jl4;iZJ)5QN{LIdv9oacBxT>41oM(E1L@n8J6QS zdf?ZxSN2=uNziX^boVE1JLElm{sT|1mN%4?L|zXClC?}b;IYnVkF`e!j;~*q$r&1c z%9SG(0tl+LW+Df|nD*1*ultcY^nq{09L{&YUQ``UaZ?Bw$?)iC^Z643pDdBwVlI_u zm=*}H_mdF;Kc4k(<>=0Cc4Py;`Qo3^Ek@Iq17geIW&t`Ql^agsL&+kGoet;C&OaO5 z%ndy{_ZCW{>dw72)M=RDH`Qe0CA<7IkqqXN);TBO@eSV&eib6bx1~-uG(4Yg6L~Sa zV`;Be#u+db=;3?e;Z1tlqp;><3wWOXC3C+#oPBLcLJ_ZdV)Skvu$UkH#pK}j(YSEK zId6Ze;`5swb^t^Rp9+mz=) z53;*AJ$`mlV4v1{$fPm^eHpmR8}5=;zWr%+FxP(k_tqq8XZRz?^|DMj+PMGdB&<0E zu`LSgZ-b}pKA`c)bB*c{!F>j(pwMh9Lly@pT>8jpIf*EZS(Tz}d{ok) zV906w2plLz{-A3siff;;>;2KW*uhLq;KJ~aYmkJlyvHvCzK_$iFY8C zaOpg9#~aA75K;16Ou5 z+C-x3DX*j@TZcS{PV_bJ5H)WFo7SbP2AA9Xuo*f8p9Z>m*?hNfv-#>gibMbVC=&9V zFUNyp|N6oy30({;zTXW@5+AbfUsww|$dp}VR}IC0bH`l{X4vBB;pJ%1woQz2a*t0V zQ>JRj>oXnq{Ph*H`e(!DMUG)z%8d?b`?U-2qlNKnn|0Uzv$KrXx3_4iC1ef@8j=~?>7 zsrdeqa9<-OM7_58&(fC5dMA0y9`D+D?Ag#lXO#O_*<}VOYXEAEL=SZa=QJOBgtbS= zO^Ip>CO>b@5DUKy ztuo2vjkAwXs8ALa#AEkxYK?41gwfuZVsDk)R7Cuw5B=n)@yYV*wI@ady0N*&{8olw zWmH@O=*J!hwk@2{Qqtu7?2?sdE&9j7H>%@=vvf?rOd4MwSTgIT&b$m_3^5 zB>6)5aR$U5or$`8@9;i^RUO5=6a5s&<+)}(klyrGoU!kMKXwS}3VeIWkKJ5L428yn ze_Kk=$NP`MuMfpe&ks;^O^;tr(gHPOZvVI}Lm^pf_MK9jyMbk?a^5YSu0X~SvmDC| z##gr|UX8M0U$qogSFw7JD1@kCz7U&aq9?aK7Lzk0I4A!|IFH3RY?ovlL$L^K+h<$J zN5#!s7I`a<5$0QP@cvi{m6i{9csob7b#4@kxc$iNW>yr{+{Kp|s9V+-^$BzBDPrYr zGLDSxQWM8-HGjXaG4n%$oD(f%-8KaG0e=s?jM`f_`)DS8I$`xroOnjbV*g9`{k*@$ z%vUv;nA5Kt!(&QYU*C3wPxz{%p`jrw@t+epS*y;w>l;}-{sd~vQWot}RdX%X&Yy@p z#3C|9CcQlKdoAsp=Mo4zJH%#~h-~|B*{-1iU8a&gQ;;eBzW$VOsYD*H6cPv@krvI^ z;I26$-ss2)598U#_mlLI6R_aJe&%h2JvEyrZb7*Olp^IwJZ#-q02?RgD(PQXR42S% zb+Ul%FGX#v-m-r0lZG2)%2Y0qXbNe~3GC!h{HKT%%|H4CtUAXq(7xD#TEE%-_#G;j?%< z$(-BWm(77~@z`0m?P{v>C*31a%%E(FmG?YkVL1vCV}feQ8=ry7|5S|;o>_bT3rn}TQiy2{$>r_)qZj%5J~}p zRBLLTjd=Camv93oC|?sF#Z+T#KSHi9j}i&8FScmDiJ?y<GlQIowkc1&@CXOLH|l zsx)3Nf9@zNk-|52nwLXOYCnx2tQ_lbK2e)&?1o``M|ZsFi;!wZJUrzFgyd2W?9%=1 z`@T5HlvBAfKmJ24tAb*+ONIN&WUMXhkK4K#JDlL_ToakBh2OyL^WeC;W9apb_AY!& za+V&Cb7QaH>SwuRu<-3=g@IVOnD^4wGqj~p>heeAFB;8D{8|j z2RkZ7RY%zT;4x)=&r|zupbN2ZBZ4?)`|F#Rlx|^xKK(ykWo7bltRKdi??hMc8Vf8E z#1J^6Fwi=L*Dzto6OCIfkF^!Z z?`)`1aKfJ@x0ieGz6xV?-vd7uqZD?yv%}l8o$o%l(GOaS7OWIB-c!K$pUIzd?((rC)AN)kL5<=&_Nc>eCNkH|7||X@iL2EmBH^yZ)l;$ z<=`&P29}ZUNIAYMBjJtw@Qd@{UA z7q&GRv-FzN-0+X=u-FN+9mHru4i=4ksq+o@M*OpaG};b1`J{1%+H){=wGZg{ZO60D zGI1)c5wwu=|m+^QH5Fm-ji%W*I=wHe(R42 zVI?(a7(^t4#-i=^t(&#rVE&xhi1tmL(IZMQ&-$JvO*hD2^hZYS5Yf-+a(f!M$x%g{ zp~N8}q?1+|VnuJqLgtCM1sWfvL}58fYhxn{=v$y`mV1IL-`Cz%wr;-)$MI!VWEOp` z=QFtV7xz?@CkUMgm;AD@o4yK;y$S9Tb?Kyaq9lN8skF_tVGOt zmK*TB``a}u-a@}K{MjQn_~n<5cOLBqVh?*j^-=8?gz{hMlndxbOfjI0uyR&8bBWx5 zYW}Eh?J;kYrTjt?TLjc%`s@3?TS6i}fbP1`>mA{zoz|NnnAx_4!<@zgCtf15qF20q zrfR*obwb(%JH_WDJ$}~D)6;d1LF;j|Qp3p+K6ID7S zVCo7X%rCbpc42$B$D}Cd9+ktKOzaULp(ittWp{^Oqo1DNhNOc>`2%vWHa^}G?hO`- z8jazjajm6vfZR5vbMNj)0?Ohvk zh`W+R?eYw=Cg_z)#u+l)VN0#oMgoIpvGz(i*Qa%Tl{hn!nDd72cc{i`xU^RHzs$J> zVfT7DFxG#QI{SXI51J?<#fpTG9hc{;Xwa$CY$b}yH=8M3u1P-?sV6jyZ?w$vmmx!@C=!^E{>AAEq|A zF>=4>UzCvh;r!ZbwN~)eKuMdJ>y|YyVo&rqxuoz}53GMe;?s#C{b(ccvAYqk4)x-m z84zKj;ACFULe=}Z+1;vRZei<;(4~N6xg~chDS8UbJ+v)nX7YrV6+88FB{4EvXYCd? z*A2aq=TDlAWX?s{X}k=@Rk6>aZ>=tQ;l{3qaFBriD=f6<_NRm9Np}Tkl#qpW-2Eke z-m~&Xg9!m)7P&@8gR#BW6UkA4>GvD-X@Yd>sb!#;HE>u`FWQcVd2NJY z14j`-jyG7`a~_;Ub@9F`nG9$@aMhabCM`SFDd*+wizP~I&C<#iO@f)tHYm`-lFY;= zB}JlTSdMtG^}O{lS@tF4r9G6?u)6;S=F|m|)xT zf6OmFKQ9UT|MN?EnQVcUAF(eJSDu^8bpIfTX#Lj+fq;q*N>v1QU+?eBBr#upyudFZdu3czo6BEl0A*4NjSTV%;q(|lj3IC{aptD4~so}61`-I#yqvo?ap@Gy?f*_mNz0<>e7DNfg@L{jmX-LEq1*lu& z1dW#`zo9fDVP@w5Y8*XV^@87Q`!)*+>qtviXWv56Wn~PYDi>t#8rZhhj}agFdJ%~b zzmV6e3>*?`Gb6`FRn4sJi|AsYD59u#Zt&Fqj2O`#svw*6r8Z%)Jw9!m5hr>oN$ASk z3OU$P^%F+N)~^j?QuN$EZu|)-u2G?NvhmPWL=;htL8>s*_uT6aKfE@YAwzS0|P{?T#%Mkf>-8toY7N&KpfFNDvLxgpFawflqp2t@|r z#35KF^sJt^RjHqKW5MT7ESHdr$TXQ5@2th$;XX}5+|Pj@gXQr)vvYjh(rxfCy+2>u zCIXu9YofX#H%H9M~wQKDY*|3)40jtR@jE2R8Hxr827|riC+WK&? z7xo1$C+7CGh*?)%QEiXFRYqqmY(6@iF5p@q%R*EKOA+t z;)M_DsBu)$QICTES+u$9`$NG$OI+AY+2oc1KcUBU%fENP8gI8)b{!C`av+ix;ChVK zGM>7xgXwSr7VOiTHemxM+Pua%P@$J(u^nrodJ;7ey2DN<koTCN(!6{-Frn9F6eb zJD!{#N#6!MC)EZoR}=3cvCp4h@57lqys7_7Bk*f{jxT)gBiqRPmpT6vGLrS(AqMnn z^6LtidK?WNp;jR=PIWeBX@=6>1L3l9-?R-Evzr^j$ePXvXPnSsy#QgUnSk)8YnOL{}p@%x%B)Hk!R(I$A z;PrRU4vycI8& zS$+^V^dYcPL*Wz+&G2T&)MilAn?v)_A3zT=lIZyi2jU;%p@92K{9X2)W~9vCnj{Xy z876{G-Ia_z5UT+dMRAHw6D#2>n=KJ;X-T@2Et-IujVChueg)&e9JVW0n_Y8XRM&Ki z<(br2ZsKD9>!|?=ir(RkW{1rA&%m|znTV7~38MAkF{BQhKUmumhKD{Zb-%UR z^V&j^Fq|I|Ua#N3qIbFZCusfm8L%02o^Oz?zL1{{2&>K6VS4u ziwx(>H8OmN1vA=>KFABiNDN*leGP*Gypga@5t?j?yZ14nWoe3)oEtpu5_q-D{G3v7 z;|)W7vr!*>%0tdJy=r^vy;O72Q7}2`{B=jJ6o4;T!X|2|r zOnBSRnZIK~E_8Jxd-f=G*n?f2Z8$I5mm2V5$Rt!&hgKxdUv(DFOmjGjfea4rWIR*s zmo}L#bX&@x+g1hsxZA9Y!M|1Z_GwEjrVjbHrgH_Ekqm;nJQn8R60SDKDIP*08EY4$ z&~%}H5A8nXMny4Cys*gIUs9d=c8z}Jn{Oa(7!8t`4CF{oc_~rbgyvU8rB$;#UzrEK z-lEBseMO5%(h|QHR1-k-L(kh-BGC7}s}1#jOxur|%lMtm#T4=D856<~PaQ$Ukm2Xa zK9KzVJ3vB|;!CG|`fUc)Ja+WT3<)U)-fAJ(EUU!av$416_>wB}moWMkqj$4ehYD9+vqev3odu zOr`?F>e8j;TqWsV`UC+^iz{~hYAHk6F1Mc{PcUv)Q}>Kx^tFgFu0$qMmG~nZXA)zI z6@KVhSJps%4Y#!@Pr^+;Lmnz8G!w$bO5AgVaMKrHK~N=1adJ4A**rEEf>9qU7q1Kz zJh_NcWO+{9gU$W7Od$)Un7vZ8vc!JRg_DrAK=6BXP%Xx<3Anzetr42OpWl#=vZ#L@ zPr1_{C!X20NR{l{5psWs46f_Q{YCH*22%X>3V(#|{$j;fVi$n55c5?Juj(!I{Z>em zNH`Q&MvDKFAavq8X084MrAQZjkiIE=3?DT+YbYSo`jEg-?6J9w5v8hU{kVLmzBad)5!Zb|BgQb%Vox+9hu9n8^!ay zCZH)Rli2IhZQ1~9PLi!-DTm~po9S|4FK!G6Z@$~?XG|3%@GDYmndnDpVAc@fov)dy z6E1|hOK8*PyXetSm}GbgGhWjBEL=}gzl&? zTR4`V^Md<&XhEBqsTM8wKN=UER8E(koK=^PvBH-d(D6lHl5c2b@2@g@yL%}zfoKLz=)k)VE#a83{^*HlBs=2ioVhausZ2IaRC z;8X%(v531-TvQpfa%Kq@2!ysBad8A|{AtPHXu$__1g%69USFVgSkx`YL~+Igq*uY= zU8h3VW4){~uDpiBot_tW1=QUqFoqd-U#AZ!;2LynKGj( zT>tT+20}tvSt_tY%7UXM6(zBq8(qxZp@T)EH8*fo|B&Tx)piHfwoNvf9K%LLls--g z&i^hH+xRZ}V~@{aXZG?h%nG)~z?3U7r`H_=3Zvx8jMub?79ySht-m(1KLhdZK-DwG z>*0`5_jd8!+5Zx2R#C5uxqrqM_~$3Hu@ES+)@|9E_aAbk&{o=4q9wT}54+y*1!5iH z6d7kyq|unBVs(apqH3igvmScH_4&mx3C5}>hr^t6!8xl?a1Vg~%bdxr`nrT(!AWAu z;1iV0*U}TuO*8%MJwwb?v7#`<6}~*#vQK{HWOeS^ai{NU#9eLlPBNdFB#Pu1)@ISR zK}uPnyO%4iFd=wCgLiiwakA6P2`hIH<Z zoI|&?bT`u7Aky6_aOjc-0qHz+Nq2X5!$ZG&@0uRs|w2ZzK7A8Z33jFnm7LGy(38 z8DbF{j{V$j63%0#Y|?dT4n4D^`vtqINej_ea+>Mtv4}Q#lwujGZ@CesFwo`HgEjO8 zy$O`Ws*jE^BlKP}N$eniQ_eZ;P6M3M{*d^)7uqY768~~Nc2wEU;BE~=bjN`BtBBAv z0g+u8;{HN>og2zFw_RYoKU0(+oic(1UZh1M3op&Szlvr?BomlD7lC=&_J`Z|COdpK zMM5XNF+D-GRXv!;CgzS>uU4?mwh~;5km@C;jcENoxdAoPa|wt)ZZ^cXb1b&j`Suuk zxAn6>_B~DU9zgvyR&vkHV4?fOabP$W8{l1=_-(m!KGSHlmiyDt%Z*~0)4`nR#hjUf zH-H1qpHV$s(9VcimDYf5nuPCz+k1s++OI2{0=6i=vLbxl$k{{WCr8a7E#v7FIvp5; zF%sO{?No!G7ap)4XthODe+I?_Is1Cci6WN7NE{X>{OWw8$UR)G*8mIKlx~@fb4DH@ zs#2dKB5=;IyW=MFVhp-qgGOz7tas; zvmL>){mnC^A382g$#cUh7GB2Ie7)QahSr7*AEc^)0gcZ*cbgMmil46DkrA);FS&He z{@0Bcu=GmvH*65L-@ctxXs^sVGH8~^45tu0b?ng>*j=GK(bB`~u9U^Vt+h5b(@hE* z%oElI#rPz)FKm5Xb=!t0rjLBGtJx5;yR@1U?wy=~j$z}X_rzdNs--W8sfuebbEM7- z-3@ypa*{qOhyh)Bj4|D+*kyk0`Xi)SpG6n2jSro8ztk9BN&0rwwjntuL0;<1NRCzL zQZzu%s9J1g77d>yp~8ZxWjp5ax~zTW*$k9l*nQwJ4t)ySrjU}+)_KW1Cw_dT?1c94 z=eL^5z7rkK(Q7P3FSn&y-O*-gGlU_yZ0#B4IyGmT-Rig{;yK~f&32m3lG%%WR%JGviTP#lC8%5h<$g^x{l_C@9;Tl!_Xx$fYTp1 z9jIYVhVJ>gC8J32@f-z68Uh6>*N7IdNuG!|esvwN6Yfbh*$0vIyFRC-cN+hRjJ5BM zO(`|j`XQac!X1tvi;Z&lWWCJ?`ROU5+$4OC?I}`ZoQ=*BWNrI1go`{1fe7TxTHwdm z0#0y+J-0>~mZaK_T8wA{edo9Jd=j@{VwY#QS0etNpHDpy-_VHh;61d)<`V__Iq6P1 zWl3_vnUF3hA_tR(;Vf5(xSCj&N(cxA6TP%P##mew8MNYgquHV@zC+`0{J%P7QY!fz z@ozGqb3d?u5;_)33q3sDaXOlyBXuhe26YNj4TAVW+;~zW-`ACP=)yFL_qB{KdY3x(JK@o%_wyN(98}(UvFD1pXhlG7e(m4`VUB5&)x6w*iX|@s+ zepdC!<}uDFYjT(ve@nh@Rw+Uq`WAC%*gd4(_Qx|uIbwl z_S^t;HC0KI4U8)?CgnasoX@T6y5o-UPc|N}%GN*2RYFV;{L~r!0RAzE-~#whnAQwO zOHqgbrnk;bTRP`H7;YN_t_AWrTPXQ)+W_yeT#Srq3yArfi5=dT_BT6r1BN{oI)hFr z|1;J56{*U_gZOv<`PYtfd>%I1?w3izN(VWv_-{!UL#_v z{YmYL2r)OEb!5lVuYd-%>L`9=9!D6^Snh_1#g$QlEa!gjP2*()stp;`LeXQ}M9P+5 zyWY`9k}t$|Cj{XIPSN88LO*`NH=vj`d#9W*1p_t?9ld%~0*F>$sZXCD;5beQ7C!uS zi@1NeO5<#YV#3ShKE+0xgPOsa9(O%|X47R3Y+ z2Gn7Mg#}F!*7V)*-mDE+S6yMl*o?t1GgyY3kbJ8!`r&9$<5tBR)RSW^oEI%@hQ=$z zdtS=lN2QQWb}M}JzF?vq677g7LF=~B=)v}`IDlB@=-@G$+WzE7rg1EBQV5u^Xqxv+ zCnC%9>Z!)JC+lUoFtfu3)VBwCq`Ob9A|Y7`{vVQ&+T?SqgVp{R?X9elIiWJ9cuUew zC{@|Kz;4+SA7ZOT>Bf~c_h)0ub23yT3*RWM+bA`TQmLACM%ki6`a24H+=i6DNHZMH z41v+dP%Jt*+x^VbB3EaSlTZhqSi9VS4UtT9+pYwn9N=QSm?!93?rS=Ugm< zxU$Tz*~%NSTU6VO$8xnAm?$o4_8uYCjgLl_;HX&|i(-za;L$>7^qKGS5Gaq>0+aP0 zdQwxI#s%cXhNX8&ndXWEw~xs~TzhB)Fn_DOy$klX2?4OAaDg%TEo+4Di1SbaR_oO$&TJZ6jGx3@CI|imOozWT(Pzo_~rDaCSHjHB-r`1{@ zdVR{^k?4`ou1~EGiO7#PDxj8;iPlG5r}P-P}mht-vie3yhv-UCepj&Aj+m z8G@H6qA7K4vUwpEa&gerY-^>~$zt-2*~jvFV^R9p%27e$)CSWNJ*_rmLhoL#n5ff$ z7`ZG4i6WNF$Iv&bYKt|)RTcdR!Se&fP0-7XUuL*}(7Vt3YpgO0*+_tk9b3Wcb?Co2 z4gI0|U?zhXcje&}KKq2RldK0#vZAENUr?x_80PQubK(1`COJCQsXod&YIgFttm^F% zBV@X@s)rVDdAc`E0Q#B6B7JY+D}flh0ZeRrLNaD)$u-ugjs;Z4$BSQk?PKcC=ecjO z5Kw8d(y%G_L^Sk E8l4%fEa;4l*nK`L2vs@O2Agg6!w`8jTp@%d(;44j#aDSOIs zXK4+i)m5lbMA%p(*w-1iBpWGFrSQthwYr;@tIt-6xHhHs4~=IP^1!T9-V_ioDLN=D zP0X&^F5e)btv5FU{+7qc{bQRCtY$wm`vmM>Sy~^OW35cVlttv;iqziWb;e!ZIyKCQ zy_o6Sl%mpI)!l#0ls~9~4dY37J-IJ484lCcG7~Vw;9SZjz$&>IDiBfVSRWj}BEm9Q ziRwF+iKx5eJ825?i03iaiOg(hvQEuMk0n#53( zHOD_E2#D<48j1}+1Kv&(dCeqO-^~gxf|yXV=dk%_rHxUjDq&^$8@Fbe8a9Rw(6pIc z)*#YSM}H(S^fVJ#htQ3X8L(ei{g4I9qC^| z3e)NOvC(+EE8mcrj^A*!}7aC(){4H6y?XQqaS5Ati0 z8Z{x5`H@Pk+~l`C>W|?F9AIZL(WuHSj;#qt1q7Hud{w=LR{;q@lq^=E03!pYWEMRj z>J}&1t*I)3BrpE`ynP0^h7CcY9l@O{IxvkGuQLlOFl8vg@c0(`Vch7yQ_LH4A8_)1 z4%e#4O3MtS^V3r)lFNTMd#qrZ=l;~*(Z{zqYeGvo!p?57&EcI;-gdGvdKbIgKkN%& zP`~BIYrbX8%D?enpVw-A=xD{$Xxk0maDB&5-OPU+WKEWF)#s%DT($A_Y`$d=Mr}jb z`*&i(&LAVVhnT@@-gC8bme_czn^?PLT!K=eAMzA#tz`Gm=bAt8Who7cNl|8X^2+Er z5p7pZ3{y^Rfz=Lpk7VOA9g`*sN%UXT)d!FW5=no)YF7BBFD3!!+^F;OYSj%(VZGS6 zs-EB8j@zuNY5QGCJZe{GpW2PAav(nuGKEJ&xW}RM$lx-lCLPz%7Q~5b6U*ho^_-~;#_DteDZ`$I;J%atDTBQ-^#)}~qX zMar(!kOchTXIL*nU^8ANQ!QLZj2R+}$jc<>RzXV}#H`C%B+4&z2EXRr#xp~;O`2#L z5#IF?rnTVTBvnJ;Uz@+TuE#1V#g4O*xoa@~XRJ`D*=e10X98hZQg^W}Op#D> z>UtqKL{)*Te$ZJ$g1M*$_2;&>9=KS?TtplqLz?mQdMCCIf;X6Q`_FR#78MW1Z~qxNdZ`QSc9=!fpC*0j}RIS;RtNspp8 zob=50Co+)Y&UjgZ;|`zf5x^=MKD?vI5?G;QEnM*1+A5|XmL4FtXq3fCBr|}hpe4jX z8Lm=_yga`%4%*gpALVG>6pA(OOIZ+Id;b8qAIluRC_6${yWaG8?4fi7xXRs40K30x zUg3U?fn#1}|LUXD1t$8mDX|;O#ul=$0`Ns)AqX^{4nvU)NnveOZNJWn^3*!V75Ryi zD{^Q&nK#3qP?8rC!7vO<82K3!P%VrY)rByxNZ>8Tu2z2@MqGqG;oS7`JG!fnd_cne zG%BG70Qvh0O>#dm8RAoCUNX-%^_tRrcrJ;im~^&JeCy-Lz3jfURJZI^52c3Xb>atk z-0YI*i;Zd0AV;GF5Ih{0snt^-B5MYr zENsQ7dP)h7yYr3;tR)k_@q&IbIa^`_ruZwj?lTRb&qdW3MjQ8j7alkbsUj|zdlt@8 z32cXSzu^RN?FI-*4N)qb7r*b``oS3ZdGA-KS_PK0I6cnfNEol0t#)T7UVvLxKGA z7^u_1eg{SFgpKbDTIjkRnmg+s_V>UmN*UWR(Nb2fSyvAJ84-aL^o8^3B8KRdq*BWr z^wgh>`-9>wXUW0mt1vkys*81f3Lf;tYap5hHMf=W5}33BtX>8@w2L2MDm#gyTU9@G zpE_4}z{${NQb@~E{%Ye6HvBaAC(rAUo~70z@@(0H@RTw=ENPBV?IT{F9)OY&Uy)HR z*?VRpMl zpjy;ZA2~eg)Y~ZYmk4=0MVwJ~BL0(|6`v=a%>cBNtnQP|fYh8jQB2}efxd;Q_)~=u z@pD(Jp06JL2cs>Lu>;CaX117kK>3>moX?v)1cdfe=I zSCIG5Hlfy+yo=5?4E!;jEfk~Qodv9Ql@ChBL18`qYB!tL(h8ZeqIWJWp2P^$Z%3a< z2E{pHXe=-bmPHs7-^M@z637r$4YRGOGA@!wvib`3+bRE5lOXl`@T&s8q{_WK&3GTN zds~AtIfigN<=wL0ypv zEqEYqN1Qxk!UKzbp=d?Mdv6fs@+lnfxs$lLu?Q^%0ImRD7P>2g^hd~xMdx4j=gtGO z=gj5|)hxH19(|pP`i5UuS#^EK>+*frr#&-{+9Np!E1T*>IO0S)#K1|<4vbQT&o{ljZDb-rdYm7w zRW4h42}WHX!g#%>h#Yru&ghY~`>whdrtbgr0|VE5ZEVB$)YbkOGy3!B7=q8%k^sii z;fjB5wNH;5vtAtz@$aClHwZ0{RLrl5OLd?b@J?%?l1GRRp`Z9#dXERiPnX>Z$f;YtNO@y`9v<8SZq63js2cSc z+m<0Q(Xcgym7Q4iLfd%~FEz9O=Skt5=bw8vrH0eoSY$^6ncbZNHRDe1dS@Ilu_D7V z@B?;2u;|4b^{R{)E&~4TpWDHE9I0c%Y{7`w3O_*M$yFvL`M(U{j4)&m>4DINzi>TM zQtbtUHJ*F=t2dhS|9ZXUlI|}OeG;9Yf3%04wVgIryBxxM=E0cEYe7p?727VN5N%Sb z)O6{;_Uj%V03Z>b`g7krEM&{rPD0|HeDoM4Ygv5uyXdn;4*VWvsjssOA~*0eCn-ra z!pS>#0(a3W^~=D!M~_9mBp;)Y%=A{D(G5|FG)lTKAaznv;)h;y|F;&PPl?gm{nf#@ zf&*D7AkLd5#C4r}hYc)<+wAfBF3sYAee9a_+rc-4?DOA{ z@x~4k_m)Dfq>ZS%!0pF?ddaq4M~&EVaEvVsx(-g5$=e7GCCwQY#&I0t?HSK?TfBGN zr7mkUQ%5ATlPd}E<<|eZ+pwFOE_rX56yS-#=iGXjou_(MN%@~$Y>E>>1Ku2Zv0B{z zIs-&ixjEy}S%HKQ|-dE{)vZZHC7>eXLh4#}6*7 zqALyyj-ri#t&l6=f-CK>h{eZ%wL+oHV(X){nq`a8?XhNxR+nmJ509hd{pGyKHjokQ zG+TQp$+H0-WpeR_Z*Nm5U{mk4f_Fu|+hl%&bD@~ltr}mX!J)@VA462^ ziGx#mCIfJ*CTA8B97jUx_I1+ZCyBV)a?LA;xoZ2jx!d5<^;6l}0UGw&6FeVEA(gZT z*%@alwyMA_Xl8KD3Z^-Ry2;&)$QTg*qjm?W=y9Kaw|eN-^yBYsv=*KT!XeWtt5u!U z)A_P~j&j4|@x#uHGliEMK*&1kKw+3j<~2*FR!WJ^dP?0QfU3jMs*}aP3(3g;F6NQ(dLDloT-enC{3}=m!~L` zw0V_lx~fyw_(^KzZaazK;lVgpYsm~lb|6BO@zi%4d?kyOVo(yX9w^MpZ<^NU1FW_w|aU6?+^jQw~8--d`1ZL2yK< zKDRhT2EHv$>I(4KXGEsYE)S88wF{P8PvI|=0&MeFck+tlj^R;Gfg=-vezkOJ`t*DB zT3}|e)W}{6@3n@JIJ)$Tk&s9t9COI(UXj)^`Bimy|MXVuH-2~#hWfsjp~X9K8~7JN z8pwVG%k(?7GL12zEq}k|%#5Q?d(_lr7)v{xEdxp!a5O0?X|BE(7URi7N8YAefpuwS zD1N8;3D~Gaxp|z|Q}EzFK0i*sz#LsGG~w@n^J8SxZ&3$doZp(1#9MAvMqXpz5G`qy z95>jX_UA4FfWU9X3M?f5cP}K@2aaK0H`}Rry*$>MT56lnp}2K@d1#9@@a=vo1Q5o2 z&gwE%*7f*#idn87a0x?4jYTwMp@n_Wj=zl$LOrL<9GwG*M(Q&d)$ri2Jh;j2-XM%h|)Ms;;OzU z_NeK3tn=jC$-zOnG)ke#igMLCxzA8v7!A<>Tx z*!$atg?VBJGd7c2W&7w8;8jEc_*TYJy-*$}NX0`;$2bEdml}HqBfBzE5}Sk{nk{;~ ziD0joB~&|Rhh6zG#qM$hSXoMwND>cTI5sO<-J?-0j{S?}Ke2JBXskR<7LV)s5-GI3 z>|NHB^RkVcEQH7U9AgMN*vvGwsQiZv%AK52Md#^Hx0}<0R9mM*c|D86XWb(aELI}R zixZb^%z5;nS}WoRAR5J(ASGj?LNEi2ha6P0W6svuw~fvss^&D1UtNzub2=tZ-}AxM z42CE_TdG7V#p-O2Z&& zLOd4iQY(I*%%#KOQ2F|ThHdX@{weJUN5TRN$tJC8Wjk?~5wXrI-u>SP;dHl0lIA1Y zZSE_-V6R4=254&AlOB^#JAU$n8&XU>WiaO4#khM)V76u0WaZUQRULH*%5@%A(7huD zS$_tTVoqM(W??9!?iaOI;raGgKhy}017FQLtK3YyjX#<)^-`4NpnSF`^5 zd87JVf+OIfR6 z^wqQLdpN>k_&9dI-Q=_Gbb$^s96WrfyDi|_(-$A7xBpKezMs#pGWZ+>6g%9G489}C zq)}gpb&byystM2CS^|o#+qXC|yeqASE*!>1_D>NX97_QH8tIqlTO+hn@uID9>+WU;gu*Tl3w$w0(~4~J=XN>91Ux)qt>r$W zK(v8=HILZzpVP#SOxfOqXT4STRa*)&(;FlPKK>Mz+sLJ{VAw$n%e&(!5`A)5Uz*BFJRobnngdt;UP2w0QWWDh=#VzPam00YRK$-Vt+meR zh|yc7(1VqQ8w2H#iK+f*Qb`BHgcFQ{jgOBUBhPmIq=hki*k8J4)5G!qwDT+?8LM7; z|T`ynmthZxjiMCde0F z<$HzD+rXNlZ#hyvAH=0|_GvERo0;f(>W9So4Ey$_V3*!mhh|gnNIjT6*-}yC&k$%L^F$#8^&1spIo7#A^i3Bl-%}|coE1mYv1#1-Ez?UHitB zRTbD&v&p7#9-l1Fg-PTQ&csj5H{Fbcd{v&=ljJRLbC0>iqTKgk8D?qYWXlmKb)ie! zn{s2J5t1714a<68=1Frjwth>t6mIK&MnV8nl$U3Gk&meH4j$|o6Pq}xF9hvp&1=1v z>4E29H#iP#*;QkuEqVf({bBbGS03DN6D5w+u0**x;{zd56U|)uACchnnfDK6!5#Qw zrIv%$?v$`=vJ-&9C-yrzSUuVNBQVn#L7>Ez+*NW=&a!j4>Bz7J!2LMfTt;jlik}><}7&(q9c%^<~MT{{Rqh(!9#oXo;ClY zGjvlx-TzsG6@0wM8o*0p8pC^M7KS}D_Ts{cEDm%Qa-F=Oi*$a!J%puI0NNS)2B&{P zt6pd7=JStx6&X#Vnj9E5`41Xvao_q{Yda$`HLhGIe(hHldy`QR%TQymshyAEw~tu? z49>Uszir2*J}Ovar1P4|itchaqyg(-$sY_e`AsnCo_+;Wv@`f(PL{&+yvg)NG@N3y z^j&=6r1Me?Z>dqD6=eNL#!}%+4~I=Lbm{{oM0HCdV-}S*ZJwFj19_O{BrVdp`tu|a zV?%}13T@tLm}2>1wZHoCvU%y(`$7NS0F#~+oY*Zro>#(3tvd)03?Y_`Vs;mOrEqL# z{I(5aF-U3B3*JaDEqRY*_ak3^Hrid%ine49x>#hi6?Z4hU`}WRWk4T`y`TVeG74~2 zB;gWvi5n|@gxmx=yANW?4gZsTi=a8_V{@wr+8)6^ibwXGvc5yBZ#IIIW3h()y!i%I z)9La0;va?F91C-?tO=|9Dx5>DHKjhilFf83(nWy@HtWtDSp6I+3Zrpg>J)6*7 z1DA%@LfyFMm%RulAIbs;6uDzo%($p~Jnxg{Sc;iIYl}iObwExpCk@)ta3%DA67RJZd%{(M>0uczbbVB_U-8h^W!?RFLFu#Kwvx~$iL{FGa>}B= zpVAJox~izN&FPp6(ZLQnjg8jPmbO64-%h6{K{tsAhM~*E@2XhlxfwB`V&V^6+THPb zcK^{Ifpl!U-^a)nmHyie>WgFX7yk|!>P>6;a?PkuCP6Mjp5+g%;J8pKXXvZ!_>Yuv z3qDDHM`Fb_opO?uI4(~1qEDHncWGQjzp~z&b5>kusAD;;kEeJih~3YcTJukHtWFc) zJVX!LFvF`R*n+I2>-PR+BKD`#HDTRfHSDuEdy!jcYq9<> zr6%*xxB(yXZ91)Ii(xiuirBv z4Rbf{^*hwWI^e0CnCy5rW&#n)re@+AF5Y)_*I zsu<0&w3863(BGqqdN}V7;=Z(G<0x)h=7~ zXCNvhgCKd1!Z0JU_r9Gpsl~=nNKXb){Sj4bOgEHESm%3Wxmo#k;Aqo);ZO?wmu?vS zqZ<<6PL57{(3bCi&evatuR7Fz4_-l-B$@@!!%p)~9UYS-!lbpAxj2|FmBB?Bkh_bE zbcJZ`N3*hVi|e^4wg7}B{d0hfCV~^ZV;)^OI8+?gplIbsd5K?dfL%A2?+~Ha!xhS< zYiCVEgCE|;f@v(`ik>StVC7m$dUH^z89l{j=7uR%!!D60=AHfMVoK-VH=he$@{0n2 z`sgMFN9r!M0=v(g1Fkry(U%{tULnvq5RPvwuRQFoySL;E`H@ykI&m zF7)na!;`m8W&aBz^1$sTiTBgKPY##&xqq)i-n%dXwq6SgPsg#EQ-d3yiCdV1_(L%2 zwX*c+7qBW&!_bdq7w-|f!4YF$oW*RXyee@2o~(fQ0Y|@gb7wr%(7+sqq@qLXlC!00 zHVJXCtUJ!p<_tn1D7N(q9nD=a;`R!=oW^X#VKvyEYCRPeO&|YpNYy39YHCXZSr@Rt zMLP~v#RMZ8IpK-|0?iScHWBJKUW{vY++ybJq`O_=7hf&pjZW>Sh0*sxse}zNv?bc+ z0Ct@%`-l1a4_l~P%APUsQr^l8liS{~I=|SjM(X&xyoZ%pBJT$dmijA0=u>O*`J&se zUHoWzsqGLB{B7z`Ls2Lh941#Uy%NbmoT7k2(0G0(j?eY|Mrl?a=5Q%ej33Hi`!Nw6 zcbU${>*IRcMw%aaIDPlyG|%n!50u7! z3Z($m;w-oot{oIhnxa7>_D`nkawOP$ZEtmX)w_5mdg2yqm0n4*e7?n|dpN*xhIaq_ zyVUIBSwPES#UN?X^RkrfI8xui!na{GCO6p^m7?(_yJkc>|7Q&hi_ixPkOOS=~Ybg#Q;ox_hy??fkKdQpykTCS2!`LTOFxdiTIi z*MY3pX}rX4o-j11l5GQzX8EaM^IdW#-FWdf>oyv34j>8)#xD|?Rs)`~5*58mqUzki z_f#UoQq$7UeSGpx1(BO}CA6{Yn?~IzDta`3r6Fm~;dVAJy88C2&y! z`Y9D1{F8tPibFe54wl)C(t1XyOs&7Fq>94kaPu6PuLX&F`@Wa9Y~616+FViyQLQSc zy8~fY47kZ4nX59fhh$_x@e(;z8+PSmg4dqFKSwqNl>0YQd6 zCrcL-D{=C&Uhxq<+77D_X;)oorjEKUo^%gww=j!n4Bw8|_mt3?OnR4Ri8!9N-f$hw z`50ND%wsncfwv!?{S~Xo+!g=Jb>rfYdU;{`Urn&qJI@Ti8Rw*@b%RgVf=hS4_PFT6 zo9AZZfrFP)aHrcG3M`C&g}c|(Xr;Tq&oo4Q&y-a?W9ObPpv+m{Zp=Ec@KYAf* zqy0+lw+=Qqax)07s|HI_Q}uWi_nAZ4tVaeU3T7rKvssy*E2UGL%aAPGGSVSlhW*$p8j&+@lt)GrG-O+%557mSiUUp%1&n>=^;-^X7GS@okCA_S4;K{}Zc zh5C}-^PTu{4&H?DVv!IPiOS#@3cXR^wh_L_7TmOK6MY>|q~#apADTa^qsexVgebfl z_1Jj0iwKjHve{p_Jqt*}i60Vte0XEKZnla#Omu5*AJ_9lQh41C#n70}62bf6Y~i>D z@y7a|m;{m715lD7yU0UeXX`2&Gv?7RV7VZi-IAt9Tlkbf5&9rJMgav z_};aYQwNb5;N`EJP7KKepB5o}@(*^4T(u7t)bBmSv>}o2M!YM&;#X39U6h}x5U@fE)XxTG)2xvy_~1HU(!BQdg~X1`DHykIg&?>cD6u>0@- zkHb0Jc3QM^gs!xJ-ZLAxEVRX`CR46!(WQk)VW}>+rg)dlVtDD~FHWdo*#@O;6%;Tt z8}gl$8l<(%Dq0n(o|1>meEEg&xFbTXynU^dTU+vk#B5aF%jeCQ#f(XVhY^IgtB9_A zK&A`rj-IcU@2Y&GRjpuxqPt=8lj`p5?|s^nZO><)n;X@Ax3bcflqTc~2I`o@cK2Vu z8}^&w(?Yy^Qn*AhW_I#g3k1!h!Nrr~A#=V3ndLb9&ZBzEYO&VD{BDXgN1F)mTj%SaInRt^F~yZ zp_aOA=i!++CP=awSx({vOu-P>AZx7F{8A+%7Kp z-8vP82i0|7`h62~uYlurBaN6kpJCwY>GmZYXjhUiR0aQc;7>a8e8C+bc=)=luk@gT zyKE=V!md}8S(7CN-(AH-QrDO%!KoYFtb=yt70Hs(%ddJqVVomIHS)b4W54W(fMiN} z)@WIu3&@pxKTkMBl?n-w4HL_*4gDF3?vNQiXfpY9`{6xTan zh5m}uebWgu^YvS{X_~c|Bc;t@&?~ITy@^n9OV((hGU1d!~++f+1P7Lau3Rj3N0yCMJ9O@a1Rk5JT+AAd?=t*XEAxAhTsH2 zBN8Pa?M=sqa~H49zfUH~J+z&RAwe-V-=n`}_e-WZm#FAb;}-f<-z8K8idzmyV+>`Y zC(kMs!2gOr>9*zq#?3m{vozCr(k*+F--Pj+W!kKGednj?c5v{6yJlwGJ$CWGWT_Ri zm7b$E2xCz<07Pm$Z*MgnqIgfrM`=F&B~A4IKmiE?5`)L~k?F;L9>UcIdqxFIcqm-X2=E!i@faN{SAW6Kd+*1bTuVc%lnw(+@QYmX!rnKT zgh4vj!BaBafi(E^k=gsvb%c1b#)O>RKIYE@;CyL-p%@0WiNGgur{L-H%%i%_kefJ* z92701@#a4yy8NhwwLyou{lBpauK~e6)HM-%0Ur!7RHzcEN#$(CU&$bD3FUn#|A73q zV|g*m#MVjTiyWhVa&Nr*gQ(vXJdZ<+tmq2B3-;F&&}r9J-HmQd#6NTH>cYah-}Z%b z+?)^iD@q%CJ$TtHUZ~5)^a{trXO+Jrd0*;lzvkSOP(A%A z1iH|TIF&h+dgLha6DnK@F-r&BLsq2e>VgVin>(xg_+U;VeKZo1__J_V=Kt0Lr1R1k zSbdfthQ}JeydpYYL=doeSo*bRBx4I4gL|UN4D)_ z&Lp^CF>qRrIT>;JM}VJW#rWwC@D3Hvj?8NVsPlgx#a_(c)CDs+GYAmWX!}O;E<2DJ z9`thH$A`cR+wcdxfvsx)fYe9RgOlYS8~~58x*X+IeP#r$V%m9(ins7&({Lek$$H&8V#bl zWN)`%Way?(JMhr1dW;^*yJ8(Uxy}Qp=r7?W15K)a&X*WL*pm3LAoZn5r-Q+JaRGXM zrD8HELgLzDH2Zm-m#-_fe$7%pYp#Z#PQHCN>n)JKsRx`#o+X40O_r!V<~_2naK zSgqur)WlNcS};cZ*)ip6O7mPn^|gwBJ0Q39OBR9ezHnvY83p}Y;luP*xwg~t_KNd$ zyM*D(uYQL)MPSJAnIOA%%X_d;k_PuTTG0H~WWMrp-}M9d?S$x54(X3oEuAr*7{hmU_kT8HzVQ@jG}erT7e9$iwVbB%c_XXBo$ns;>SV;X&z8J5US z_@<1hVna%+=+~Hp!6@nRmb}QGC)?FbgvgMlx97Gn6&dYBDWJu_H#qdGFH5IT3Fnd7 zv90aS2$TAE<_`^A>J>Y(GXz@Dtm1G+WuyPK{G3Ne3 zvKJm+=ef1_GN0}Xv8KCKwymx4%KzgE`bqb<*$mG&bD-Ykg~Jp7nrh=7RGZe_7Ia$L zC#G5bX^As##TZP?YS+H$(`^z`?#xF1v{DjO&81IhquFPV@t0r8Qr)pQmhExdDbM04 z`v*s~;)2oO=p+}~O`3G!36%qb+rKALf{1qd!iX21kjLUssyRNhzC5Ag;7P##xy~pEz_wjdY9}4jPlm07OcJD|T=U-&t zHTbJ483z~-ZX>ihE|G0`H@@Mjj~`RjKnyD3Y%uu3xrD}YkoI{T2IrajNc@oc1G!BB zk&CpG0F(vn8+`1AFcnCGjasCJKc@?)ddc%yAV=M`mMOT*Huz0m7~*e3Tk96$cA0d@ zj6s20F0YAfU{P9*mw@>2$CXXoF{6~%+=^EI!(O5V!__t8FA>V*>(D`+)X8MCN!h6i zi*y=(l@RwCM?YF=3R%qr!$S^%-`Y>CE~}sfyi(SwHF(MeVNCDnFgZ$`NMUN;;=6%H z6V!myK|mBEN)oHW4?60d@Alt+$Eh{dm`z`ldC2P-vQ>P(?%Hs9x| z`<4D#+yk%w^dvbP|2k)=wfkFzUN^gcZ{K<0MAN%Z&y=Y%V@Fom^4t9J$gn8} z*{pe^z_;Tu8aHW9pHWBp7U&ZDe4x8}5NFL&4ry%WbUFtUpUqc)iB5Vxyvxk+0gmaS)1idAl4dU-7r1sZA_AV~v{AKhK$9p?l>Owb&bzHS+Hq0_O2e(TE;~kPcd(y5WhJnK+>0qbjcZ zS7oUiWQbNQtdA^uxGz(MZ%cvm$%_H_E6wvD@5s_g?(NUuRf$)AESe7JzQoFeE;~2r z!pNAW36BD9S+jj@4g)38WcXOT)@^qK17&P%3eH~}V|t?W*Px)1^-H((Wg&?)3)<0m zzwz9SqjLJe@!%Cb8ql%w?$L&GIRp`|SewiPsm%IeaEBqO9Hr>XSU2m4g_3BJkfIA) z`1r+B?;ZB2!_VsDfm&fV9*`Lay%~wNL*+i$6>q@L8^NTP?Re;z}~gW4jL2 z1=rDl>RyV+=HQbyvTK0$*dj39&n@4M#|K%45PhpD(OxM( zSQ^&@5wS8P@N>I4Ori@4|#b`$G2 z95~-U@pO>Q+20S3(PPz!AXn8JuDo%(VX_3t5wb+|=WUovkF$IPj;wG(y>R^584WWiuI6<->LNv`GC-c6m*NBU&wv8L_3=loA}X{^S59 zed(58@lvFZSq{5oUNclb=sdg=ScG?G^lc)%WJ{1aKiw}&1Hov5V1d|u3CQz4fRawL zvZGS>+V|7T>|>s{8o!7Z$O;ZlA(u;Pgulx0>J<8zKxVPr_-~*?|f2FUYnfyfO zgH@x(XLX8yn`SCDRh2(AV8y%+d^Re)adIHifXzic-God~A#J`CriZ<&;D(n-{*j$XyUX=*9 z^6eF5DrORYRzt6}fHAEUlEUvRbgpFXF4$w^20r^1aNxc6nBd9_snc(L+AxpdyyOoF z1HL%hc%+7@g;yc)L7I*QK6>OOc`ZbhRDAk@Rc7y3m*X4oX5TAO2sn`Tw25%16o)K6=n^;isL z)t!_n1vo-u5vxYrD~Zr3;c=-%mtI$^ju7EQG~`>~5K__VOl?la#F(L-D2#TKgv39I2ad6UG`9{F&7Q$7)aWIvj-+cacql~R4B#JE5 z_Y|3{nU5RH%g*v|B3_DGhTHBRtqhL4`d7ba&pXeE&uflge(b-JJYz#D7u%33#~%Q7 zE+@0~4EkT|Sn}w`Cs#DFr}=J+_^gkkt(U6G^{*uVM-uR`r4$v`vF=E^CaIplE6Ea( zgET*@ADYj=*Abr&GO{P3t1DIu!(UhgxaJ|t#!Y(>zuB5L+@08E0-gzw;L&y32eB@czlsv2M+0ufBJt^y=7EfO%pYW zh7jBxg1ZNI2*F(w+#$F#XmEG;;4XtZ1a}V-++Bvj^$yQ_zbms=|2hB8R9BtdyLRn< zY$Y2PQ=_ALN6L0(Zwh5`hY^!~X$8z!eFt_HqiF0ikRUklp2W>d~*)WkK9LI;1~ zW|-CJhaoL`7#S=!b{ybYv=^v67XX*}Q@aQ9;*nARoeab)4IW9nHyXRcc?`g0kda(N zca>9PP{&9RHMeXT2L%OvrEcmk)9E7kYeQRl%#YI-4B6Jh^Q8iEd6@S;NY$rQ-md#3f zZx71S99L8HB)DF4IG1`T{8wVj9wPqz1IC{Q0uQMNAxyN6>m@vK5z_#g2|cCp$~&4w zVZU67iyGQn?oK^FKE>yGdlS2rs_(54NP(?F0-*Rnb#dVCRur=-N)(U=T z_z#JCzsmRP!7021Xg{(D+!$eg;j=u z2c5vD+nqeYG9@~v;!R$id5&+ER}{b*{se5V6Uv#qD}02uXaP&FdU`7ixl)YauqhbhgLCx*PPg#Xds$;ZJz%&+xEqFigY!TXq29M)aOPZ zE`rpM?L%u>O)V@n!R91vGot7ZLRQxAp9CDOQ--v}kYquci>o-06jcACQm4HbW<6*W2k@L8#uol5J@PPhO*xS# zv^aX#cdIW@E890W zVP+N|1kKZ8^igbdn;w14M`^~#8fs{#x&bI|!L`2n5^L!>VK%??E3V#Gucdu=#eM%2 zuwuW9;DN*J7?axz%(=ZA?GGjZ|3n-+eL-QxuAXt;t3Och-_uBKTIp1w* z`%t0t_F#pcyiK*K^Nl~@&F8gF`(8u9Y|fsHclKB6&Lgf}oe1mw-V8RcGuMTbo3=X~AE|_2fK%IOZW^F+ zNDAZ|J8t{a(t;Z8h5eTng6AWHHBvi>Pij0##6KmI%oocyF;p5(-?rxrhbT&Ovowoi zU{b7H6W?Y|X(U_!gsnfblbEE>jmxI7O4Zl_KXA+&K@rXv8oH})b4uKH=~C#B(1qHt zUVaUPdD~SY`!FfMPFSKi1)sNCkDVPbC9{9suS4Wj{e8qg$umb!rEAX}A$b%;d$0%2 zF#a(V))4ahl-wzQP?{)Lg~>2GOQ28sf0 zj_KAN_QiLi=LCF*<+`{!n31dmyMfxe?9P z5^5NIXcS+7zwn#qwj(b)l#h;iA8nEGp`(_XG_)vN!{(YcZ|E=2$AgztK_ZfL_FU4C z!`hGA$MGHd_Y5BOh++yBqGse&&~o>WjNePqCMyO#WtL_y5jb9FgMwJZ3^e~?+A9c6 ze?L~Vu)nzoqTY~2XWH84j*rd0%*FnxJjnAI3k?feT+wcVkx5{eO3Bh_SU3_-H(grb2WEA&7(Paajo;8DhVix4()xk z(o+yC;$Nqy?YRCC`lQ+$Mbp3uDT)oJ0Jx$?1p|DOto$h;(6qxMx{WSs;n_5^obuBA z&DOJNWFTf?dd=)WtSa_#e|9#PJq9K@d1E~Uh03YrN(S3xCF7Xck%pA#VUl?4z{nTN z=k2Vq|6$kNnq(qi2YVfmz-QltH2UTS5Jb2IRB`@hHt7au6{SR}#_7C(y;I1zO$L3dDq*^iR!CA`Ly_2n!gtpWDv$#jX=Y?D)+o< z?OfIq(38WEH`EL!8^%o8fp7}3Y&*aEdneq3sDWjkt+-4N804&Qb6KmQw?oAbwc&*N zMSs0$9ZD6btK`?uoX>-IIo-X<6kq#m$XUMoM??k+`Mtn*ys^?c7+3#8e=mtRNJJL< z5ci->g45-CuXk?1lBT#8lyT8}b)zNW=8TU}FDAu{p_^fP{&N@FrMP?tTaVDWN!a?w zH6GFItqMF75^n1ugQUu#fbl<5QW^^RldF?XseLg;ZS)m^6-jt)fiAl01}feLh7>l7 zPrLm~2V?gnj?>sNU7OOyt}V`KBzFoFDZ8A{{l2W{_xT&bpCXhFHhk?KQQJ6joKySG zkPK$|8|}Puus{quL1P_pt;is;J`^N?w=XUiEO-b?z@m3f&-F_2ktYOdcUlF^`>tmbuDs`l)>GcAoYqEbc0(ay4W_q_`AV7%VWPv&V1MBtHk0pALE z*`BH%I5pL?D7&1me|ql;*!Sg_tc3l#{-(^~@q4lV*N%1i3tlP9T{pgopObKI_}rgh zUFt57CCX6#pTi$WZvJ}6$0|9d)H^GS?CKlJz6J-SPL%H70sfJG;AJV6+>mYOpooD8 z?axMfG@1J+2M3>m5AwY!Hy^-3YKRro$!+zr7jkj2z+JEp5&qk+b%`WI7BY_&1M4Dr zgXUH{k~1#G58A#_p|+E)|PNVt_2okbx7Ke*>!HgAxBKm};&_^ci{od%Fs ztmz4{UJomywjL$;ri{L481H)*jH!fQ%kJg%@86{{XM}BayM*@TsLjE(&Xel4QkncP z<&Q&@ONA#%zgL0}$G=@#FXE4wog5j+DpXuEor^vNU<)V{qAF)4ej6xtdW6OYRoL1;Lp__XTI{xI|W3L97p4^_uyHW)D<|lQ)e=qC(%Me&MW^5 zQSPT!dLu)GMMmCJw;O|ldrE&!6GjA2ptzbmcVwgT##xeFpgvCSQ(%}#!}*WdBhM$W zXI%u1xQCX`j0sd!TF&3*688RbPq@4zH)*?m(YmiVdtf+(-)=jp#nZe0C# z+^7~lsudk$x00taBSf?I3V6QptUlCFDQ;Tq2(>rTdND}UF_PQ@;HZ3w-$%i6?&NFF z-|HY9M&W9&uqj8sJx1_J0Q4dCR_s!-vcH=%If>=dh0UzFnn1x)!+;z=f5KmPEo7 zvSAn#a1IZQXq(9*PjuCQv3iY$@|I0Y<;7aYNi^4?zc77$2)<}uO2TaKJHz;t-y62; z>UyR2tsnRBoY*CI$31;}x2}Xs2CNB;mR^(4+KC71fpr;g)Kudsyc{`qvO;$ug zT|JP{tlhR=d<6!CT8XoLAYbHBUyozQ7+3{pO6dRmzOui+giiYTv;HPOZQMZC=nQOp z?{|ll0>KS&^5~lMQ0B9yI_H#PUE37+(BeLn-+(kzd?c`_XFbj-&;XA1gB9iFjHLFv zj7)nTEQz$$(1l{s^Kb6FLG5rm`}02PZakBB4(WrmTrM^GeYz9sAUa!pSD4NiA7xZ& zcb~a_JbGr(ei8zSVOGgDSu>QlmAK=p#rr?REv+qxHpN6Tsh6FN7{R7@C!cxzsTHd1 zZe4@1a1|)H_ue&1I%Y5on*){X5)ItRTEPNB+!T}DRKj^v&dv!3xb{jiFUV=9UO(i4 zg|S@=`zb@OJWzR*(PABCVU>5)W5(gJM;}2pOa?LMtyqdKr6p8s1Id&clE! z1Vbv~!r9gK#LUavPQV}WNvFv&&PypjDrnq(Hx~D|Qy+(cWp3>6q+??J9mtd8-R>SC;X=4<3~y`XA}%A#uN{%&qe z{nfa-|JMioSUG_u6?pTINHR?)Jhf>wY?`!H-v<%SxLAjg&B z+<}NP2niJ(0Uy<7Veg-Zcw=}Ifd_-3RRus_S@0%_CFy`SSaIgL&Fw%ADWZZc_?H8B14szf+XoIV<`c+KdYi*26q+CL9rkgy zjIa5b*0WfO3(yMlErGEJIxllQ^s%NTSi%l{Th*r z`WLe7O1;C(nvR#zl11B*Vo4G2cVkHM?{BFs%)eqibi?6xRZo#fa`?;-C2x}=-`ZcD zm|E{(hrcdFfQMGUuilm9_I53Eu6fdG z+APhyQF*1=%t6t*;kRob+q=S?;En@8Ik<0T?49;C^%XMX6jV<_maV#JvaNr(OV3*{ zGxZ+J#nsQXsRbOx4HlwP9Qna1SRm5}d2#ra$1WTHHyQ!{474$=7L!qtfTTMZ&28p& zJ1N;am?FIBSzgB_!2X~))0pn>Ak17A$FmOkbd#0(YFX<~{0ml-;X|eZ#U9=d1ndtK zVXMoxhuJ_C&82WP-b_JQif7bIAK#R5<$jmc=dLe_7@78bQH=WSWO9qyEQ{Y&95JSU zR~H!AA^smNfRR=fS-C@FkMd5SW=Gt|uom;Pm-prIc<3g0Ilks`b%|=a?!5hnG6XskvAw?<1U6_hH+q$LRI4lr-biWw?$;VF(GH)8V zMI&oEP~zSI7X(9Ka14MfGw3b@$s8hGMQ@NfToZ(f=e} zQs@0ob|QgC#h-%y+W|X6x=7xyna;emes_=oWJ`<;nab{CSM9cAr_Mw7C0bhg>ted_ zAO1nqqq+SRruz|Un20|nTcb(F)v3geIKKVi_ zmOaIEGtwFzvj#;T#4VjByo9~*CxGV8FoLhosU>3oDO4;D9 zNE`+^kQ6^}Stm_X8Dee;R!^2Ou}S~<1}FrGCm?F&peJ|bR{X-XqFwlPr=Lsk9Cb*b zE_@n_XHuDl$QHg8=o?7MEUxSf-SAATO+iXT%DQ`VdtkoTUds!YhgJ00R%xg~NG5V# z>pI=(as+RjF+3Z0Unqe7K*FL2-r>$qJQoVZh>$w_n&i?d41ChjeiRUib#U1b^@7ZL z95LGWD0SNrEGYi1C5Pxz0tp#vA^fAmm3-ioum>@149UBmo0+CK#kh~_&d~FS-&B_Y z1hs{bG%k*8Am>(MZxzB%D<3w=Pg7>)D8F&Sr?jO9pjzT%X{W@K(kjru8c$|KT@@R@xqmvg`h zR^P}o7ax$492$iAWm_%0AxU~_S`c|p0S5b5gTU}#YU!Xx63fs76$$yYKJWH%pJf;$ z4ww|$#@DtZ-SSj-b#@~K@X9Xvz5J;c1+_Q6ixE`g+OPADia`<^=7*rH%Rh_h=%-&< zoUIjmWC0;TtXg84QVv!HqkZTD2_KPngRXSfyXOhLbVz+aj0r!2EpG)?TWTVZ{A;&3 zo|iIfdNkx>Ae}SF@%g{TqQ@(*hcS$S_a&5KE(#;-b`JDMIh$j=JG~|~ZH4@+YWTuX z7Rj=;tSd`B$S+6bUipeM|33&Thxh7W$@Llwg1ICmdzak^H~#t2l0vL&c|CvXxwFqD zAYf+8xG1sE~-BaO6sCS|DcyRc*tXL@)%XoORZOx;V=FkqW)Tr7HFR>BB8UfHw8$B=@#&VWkGIq4GRHWuBJjd>2Q6nJ?DO`~m zc(4_cH4aM)|M&s3RP`>q)a>d~+`q8({=nDKU$U&BXZj^9??{L){_5#&vb&^DJUQy- z@@XsAnni8=pbLVNU5Vx1=HC3n?fnRF@DRrqH%aWh`1FCt(=A@AD!|YGbp;MW*FuXg z|Aux2w$_*Y*A}C$U>SI<(2p%XlHiF~OKIfFwwy6@%gXDvu~`yrqD|F0XcycSlnAEj zafGIf_@1eLC2j+zlDC@R7KiD;_Xs6aMO+|IEH(s=o0_Mao0V@m_)r5QK$2D><2sNp)$`!kHmB_vwVJ&z}`#wXUOh7h^zkIwCZU@e2I$TXXj zn06u@Bz%pQABG-Rhb6V(;oSEpI0VKvwctwykInRU&?$(K3Gu2|ypGIDC1)fWd|nq~ zJ&wC6RL1rqYxaW5keh>~^~(Ro(nx;Ut1aBbJ^hn&f^k1B0b`f2=vVny@|t!e z<-t#C)WGo3fw1Sx<@4_ZxYgRG@z2Fhgb1WyVfO}rnwP>Hz(@R~`75GKC5O1$VTa^* zDm6?wAGugt|0MkQ_ze;Q#?eH?sOy*_$D+R9a-_cd1T%FcBc`D8v0TKCSJC~4k1TAe zwItq<%N!RcjYj-@M2cUJyKz@aTcFai1}oMde|TRMw?P@GfOP*C(-`}U^nQt0!QiFI zcVi!1#s&MKe^u_#%XV12e*!-N*M2y)854aGh%MWU+Jmn$Bvg5g?Wq#J5@+x63`BMbteGh#HJNCZiWk&cZ>FwN3nd2>4aA5@|?{y7-Td5RimC zdcym~kF3pn5T=K&+PfMbw_aAzvKIILV8BUiU;o8^Kd|6fPJn=&?Twr8C`n>nn4kC+HRmw;WDW;2IVeW{yM9dtMZDh}^60cpeQZncNh{>$`sl)A43b z$cvpOqh?ynMmNX3k^)Tg6}Cmu%{C7d&Y(+Al;8k8)F}{P^ASp?!iO0~fV+d9g8zI! zrkjBzhn7gkqg;5ma9|21lu*D~AN)jyH!^1hz9UDE zOqF+6iPI^5!AkQv5Rrgj=5g<5o-1G}uiv}8=?zp;dw0&WDODrP+sg$ptAPBrpD%d? zXfOM#X$K)Q2hm)qYca{0_7pmEAlO&=?PM%zxWNt^>7}^xWTO6G>-xB2pE_qoaO%#` z8q>p(_PNU&M>;K&&wg{Dx+YW$s(FZMtzY!dI1WozSPG}PmrCgP*E@XuQ2!LMpHF9} z%r}X2mq~nAnA7kSE`DVe1}yp9k0KSWM!ap`Yw+^Pc!+Dp1L^m}s$Fra36bm7oA(qOU$Mp3QRXi4RYfF?c2?cWm>b3|FVOY)Y~-d(8NY{!w??xZ^sY#jKiLthjZ%D^qG6^KrX3usc;OR#s^`)GSJjRaPP){WHZF zYj^A9wg4Us4cR?h%Ig*@j73H2)sI*AV-!CYpqygDJ$7X?XYE zAtK}M#mNT_FK7L$gQwL8lMV&$Z`eVVRI*2(bHS(-81>#Hg0Ja%>)^-)iS1JBBV2DH zcowyeo1FT153{V@kgxq10jYRH-lPUv^gfoA;1l0^Rr53Xctild4`@GLFNOJN8Mr(Cr%#HEncMR)`v$EvjrRFbzFhYnt zRyHax1lW5J3FzSr$<}_?M|f=e=rys+tX@sSF6A2_9Mu=xX9BpqD!|N;{5iIC|B8y(i z3F%`(TDc)9zx8VD^KV6GA5RYT6Ir*agnM&lVp+V z<_f)?QmXF9O4BtTwOt=%be)EbY}y_^(i9(`mq!E#hbu4EFiw*Fw#mV>(52m%Bp8CUa#YnO`_fBDA(UMD0 z_+nt7NarbH=ElZPwo{Ogu%ceSEP#RhPXC0kej(xvgO27LTKMbTi!TcB`jCxE9!XEG<<4#lbh6lNsv)20jRMDki5kzc@jI)s%AF}R_Q!dZLtCfB+iN@Q4h0U*2I+B6*e5v9 z@TI{UKBOB%SBjPTy9~ip7f!OwhNSx>7hkikEGSYRfL`3QEwY-n)=pND6RaXpau>W& zdzp$jk6J1~wpvqT=JVAnrT=&=$gBY~8!_JtTvyXw-#bPgfd3P(b^^NWYQH>#t?3!z zWQ=yl^)fdj@27id4f!bT`rF2`L{DY%k`(zy%Vu*msAT@O6#h|ltxOGm`;V2dpF6Z< z-pKBq_y`pF_O_t@X|~lrctQHJQ3ebWnu(05eFO~jn~YtTR$JE4_5CYocqgf?*BBe|4OYXjf}>@k@$~+WVF$+$C~YPI^+2*ilSSK6_&DvtPQeGb;;rCNCiN##|c;?ii! z|7dgWLH4iXt-G3$^mk)QeMTB-KtyCR@3yxt4+ z*W$m{fV!@7|I((wQ1xH|g8iSJP=gRPixfu&*~ml5nKH}WpMdr`iK%5!fCgfLTg)Yl zw~P&AGQFowa(}4$AEi$W zY#B?{H`SdZB}hjGycklAhNvPDaJE@3iHI^xZ}&ZaPFp|cc5 zkuHe2L?1LQ?(SqzR&HDA*mqm#d`{dfU42FeSew|Z!geL;g`b+9CNK!nObT=O#29*= z!?W=AjF&GjW?f%$93`Q+7n#z2u5;)$Rl~+=2lxg5JS$Lz}0YfvgW)2i*#u)A>NC8c6 z()}M9Aw$>;EX)3xi*FDihYGOgKhlBo%+dQn;LQmV)Y2A9OOwEoSi2z;NC+n-cy{Jj zXN9S0;lRwravA&9kw`aLHFSbE--->sD%qxdWo76C>^^yu6D+BnWeHyJ=HmShfvZU1 z<)X4NqevipA^?JX@WuY|s&B;6?FZAc8Y0pI;r>RdI`oGfA0h%z>tr|Na^kxDe0ql7{wgt89tO=AUiG zFwx2bqPz{D$Dbdh*j~anSW>E5pgyA5wH(+z2Qs2YwbMdWOZ@Ni3=~7KN{ZVvL+(Z% zTg}_vz@KAdwT}s@C&9a4s5gV1?RT6A9DfJwz$fg(v%c`%lXOlS+svtoh_gn8d0?mk z8eO5iQXKD$+zrUjp2Z9WfK2ksBqH{OQ0Rn} zOHP=XcKiVfJR}1NjT)8Z+8s*`r<%IWw|@BV9U6!iabpkq%r>~)5Bl$6jR*bjXsjil z-5-LUmwO)DmlM1~Jg_vBP~TX}pS(L(s4yL`+ReW)565!UHHwq#z{fK7;MWHZ@~1NH z-Q75@fHC3{(lowQ!g7dby4_*-$`rbY(DwCe(0HfwGcB9g^N<${cOYQN;govQMO6Qa z&SkaTz5BDCeB4N2!_8?Iti$zn9Z{pmksXY6)MR?@ExdHK?18QN+`fe>go^FuCoJ|e z3~oQ~i%nZAf+A5ApNJAEVRKoHH?rL87%TMIs-Y0hLFj~gC#r~RUwmF;bVNid)w{wh zFAS>d+179>XAJ^mwk1DmyAM>?$8FqqUw z9wwcAoO2=!hBosuXc67vBUA;Xk#O!RA9@(NSD8N5+m7Xbw?1Y=)na0MAQ!UOGW&&h z=?)&T2+12ine~8`eB$F$5ZDN-$0or+GK-#`PjTB$j)lYDzSf(bw*EQ>54UJrv! zZfSj46QN9ZC`Efy_L#)UR5CGP)nwN5<3BNx95C)LV$_ec*6jBAe=1~uY8RN*p{Xjg zK&zvH4UZNyA5Y?Oy2%U)S2QmtkIC!-lJkD_mP+JV(M4Hw0Gs-k1UU*7KcC%6#!3FstiD!D)qE7liY&hO4oB29?<;zdJHgsJL9aQQ3FM@EKU?>gX* zljHE-=XrAw)1Bq_mS{f2K;g0Cd@vz7wTC4OEr^?P#nGX}YY+=20gN5|6?Q2HemU1s zbe!VV&=LlTwJGLmlCf~wpFuf%jSfa*L)8#N_JoD6>HE`$6P#FAV8r>@Qg=Ue$h~g4 zMUX90PlWep75V+Z`?X)r6jHDFyNOi%=_E??soOE-Ftj(l*hrfDxJUumzoN*78|&^1 zjb{!?G{+GT?gj3mb7TQpjnIdOcR|LHLN5rs$#x1J?x2&WGI z#u-IOc@;-P_FyAGr8kL|OxOUkT5!ZrQ|1gc+yoz&{W@d8YG+0VdL)N0`KK&E&b7RR zGW0o-|B4%&?e@_5gMD;OA|qB;SLSQN(BDu38D~}epMCBgzJ*Bof{cPn-;x5_EfmQp zEPOhXYQA*SyKm_cQnR3*(Gh#vdw02@(Hr&GpFa`9WLS{)&BneGX9R8#w7f-t2X@U? zK|dyTgRqND6y>%g z(I#6ymtV}WyuAx&wxDm~){!Xq^tsW$4c)btKUJZW=c|*3{|P~Ec6Dr6HLhZ}%E)CO9Ox@C_{%~hXsG!6>`kjqqB_z&R3(}LS9!i8PPO0WCrs4!;aw-HmqAm%6dPo_B#b0IC zKn80C@T3(8p~+RJcTmGf>>aFybB#)~e$qSmNXvjN89VPg7{et;qgs@7ohfm<+zQ-M zdVXdE#dXNKIJ0(Swa~>=8Bdye>O0PCXy!#@LNoWKCf)*cqbWXs7NRELt}A)S2ER%g zC^4zU$isaVUc7YX%i?Z`1O`2HYC;En$jcrJKLx@<8Xa$(G&!D@wXYFi3GH?Qk>`}N z7Q5w{{~}chiPV4`$y1EN_L#v&Bxi|I)I0MwH@0BX$7SCSaS97y#>TAKLPc8*Y_;uI}~Plk|{RMX_d9{_JqmWl!e zN=;YiX;NPa&*=cs4$|Fn0h(<$z0OccH4i66ZL;oL@C?;spa~VD=P0!!!I=0apEYPM zgRq{wHLd5&r|pYw;v@3u`t`q!rh5dH5c8Dv|IH02Ok?4}BKc zqp~^iaKFaFX3(%v_EeWXfPI7=8E)Z*f*zof>BFRoCozelmv6RNn!3(boo5py!?6tT zsSlV(Lhtv*)ks;;cmK*XFJ3+$`V?N#XMfD!wbDC`L$}1|B@QRzVb#Uq`#e=b1a^th z{@%}6Y7`u@YCosB^?g*-7}tQ=L;C7Qti{4F$=w0uLvB2EWFBfN^AQPp>sp5Cq0gXy zcTq&BEf!~rOipXF%Dx@8M#tGt&WfL%{%nvCJz0K@UPW;U#@v!Fp=DVWPKpc7ISuPsc4>E06+nqajKzDS5*x$1)Rrdt zq4Z18Jz*ohPw)d$BW#9O%Ln{Gh94;wbp7UKF)9}ctumbel%zi6r@sOOv`MBuOGif1mM2)@6EldX8 zzCO;5;ji?A;qmUsR_Y-Mo5r?Axy^9<)K>aY+IxKY(Y|aPZ9V7)O!}-1Cmzx~@{6h@T_mg-Dn!0`c_OroCuAETTO2th$d@Kia+1ZY8AP$4OV*0R}0{2|g{~{($1x4(^Nw?R!1Vx(eCJ(oZz@QrwMGOvdz%;|CJp zPged3L+hON;IOP;=hH`Z;O9P%^l!UV5syPuLWmAm*~3bOP6@bltRnU@bk30?9Z235ETo;JPGj7VLgt$ReIHp9 zY%0@tB-QP5#I2~|U4F3@3a7R{L4~}?LEwn_!@K16Bjhv+A2#w1z64q2gX)*+ylI=5 zHo|qFprAv|dA8Gcvf~;Lmbi(98yy`|!_d?=-OUNMMhL*iw$lCnD1JYJVv}gI-8C+G z#{~BU<7Mu);A-S|k7a(vL0@TKy8`dy-B``OhROt^LsP2?yZoL{4#iXVFT^T8C79yu(5PUvgwA@;uL4iD|tUx zs^Q4R3rz1(BDh%#lm*(w6Nxn7^Q2vOUm=j^(fIs+6OndQnzjFwAD9XC6v9P7_^^)? zRNOXRBq^0$Ow4ssCKV?oYoNrRzrBCn?+bWYN~uRdWvnZ^x#1!zmRXJ|epmM5{b*pQ zj~$IzxmQ-B4P6#%JN~(O;mgR^eQ9LktIPp31+;$7e#OSE(KC<7OV`IT)bAXM z)WC_WLizda2JNQSNOYF?@(aGvxM}L;9~LD9p+b!XfYij(01(r(^NCz-?6&r&+hz5K>q3dimYIWty(Nbe{BH#cke28Jec$ zC_G}U9eiWB4>q-M;+Vhns?Nc$&ul$vX$LuE*+A27?*XQe@TxHcF5>C%#W8(&1nM`T3wACn~ zC@#?Pko<)lpaa-kw0lJlXzvEcCO&)09VNDfR|L@%5(%(0es&&Q&tU^9c?u0hHe8#` z(WIq!R~D99)$}dNB|dj5{aE9Aoh-aaOuXHY6%ao2DS%%NqW!yM%>im06SPufwU*jY zd|Ns+Dcn$EnY%kQHd}f?D}2!{>CV=FEXHdp7?QQ>hLzFk)W2^z=yS(;{j+Fxla&*P zrPimfTqCgfP5qRJn*=@$*9Ip{mmM8!Ike()d~wD>GSJxZ8Yf%R{@txqdc7rDfGM!H} z(e|uK_GLR0AP)Mu4vM*3*CXfnc~vUc>D-Rst^1SQXV;?6>hy?m;35+sC*CM36XZPm zxekz%5eZ^CU_dXBqI^M_b1)#CyC z#1}<43idr#e08zEzpg3}lC*@W#>VJX49fvb-FD?IQ!dCYPy>IN=D9pXFIy9 zZ6oHkeHi=8#io=E3!djv&a3|8gc1|Q>ZM4AuH?y;#x+7k)u}tG{v}#iX?8S8&JHgP z=pxIapFm?^q64jXeK{M_iI-YKhh#Sm5e$K=_`{c{YL&N0bgEq6ZI~6N5Cc35o3Z2xi+W? z`fg@fUWGP1M}?Ku86Fs`hoh}vRzNLPvGj6WKHh715(>TcaFbt;%SX@1#{B2*j2LLV z-z^Zo8RIig@Vp-n3GA@d3-B3iwy@a>+i1r)PN_`yP&PRL_ro!H^cAnfsZri$j&J zc`8pw#UekcnnUTDAi&QzeE&Q``;x4yOf7T^$*X<^Jua@TkT#jb-D^g|#G1G)-f*{B znwkQvNhH9xCu&-?nPfr%SE4?UjMY!*H0}pt9{~x3G!B3w!{8uou3`x9(Z<`Z%)RMG z>@}^@V?IrGOH55f#$|k=48*T6z3Eo&tz#@DFOK9%*;6ceD{ahod}MS1QDh8HksJAz z{@(s>*!?nj?Cpnx8Ab5pT#8v6`&-lzm8hnQ?w>QoEYMN&(+Un5!F$FAJm4_sIV1|| z`~5qIK4Ph-yLw zM?-Pa1qv;fe^ZzpY~0@S{zXhv#cxrZDDt!5|DgM8`zLOMfW*I-txiZ8mQHl&;OG1z zrT1TcR_Ejy-}KA6*tKW}QqIVU^q6Wj6v?xF0gNOceQMp^nWM$R6A&Jt!di+XElAp- zNg;z&%+5{OiMXzbp~ENDCPHE#2>9bylS|%ZBlz6yE$3iX1-a00dIsiFG@mM?u!HVtzoL6V{Tv9z)QbXhd0Qg+vwpejepXf>Se8}&us zkgiM{NQ3%B>+L&hQi#TyI8+xisHtMMYW4XA%%n6b>9lhv!2br=!PDlG$<5@~C++@h ze|`V;U)oKtmR%99=1z^p@ggs1yE?q0nuU8%5zqjP+!Z9ypSliYRh3q7>qr8ur#*ur z(+h)SAC^qte1Im&R*Go=VfHPsk817bV#BSl07>>>xsV}Q1_6GjqZ-7X1_q>!(zg7m zG)VegrlbC1JZOZu^6HJCepHZxj_WrW&>*(aa;(*3kbPN_?$w-f0D6W*%wsVM8~jAU z)4O*EhHU470$H0LkDWeM?c#ht(s7cf(=7zbEChwm9PZHClJG7=Je*==ay+7Nm9S{T z%Xn;s-(E*<6O??ScAKk^zzg$?M2W)tGC5SSNKP^*^jSOS&BX14vaeFheSYnGR& zIBm_6oVP6KIxl5eDb%WY8!N*bGj~j1W#nE76rP0e8LJXvlL!6KX8l6uXxD_hKZx8Y z$tI~YTz0?Z%1^~ub8%E^z1_(j-}m#sC@3rra5q3hjkDR4-W)GI4apBVH1f6|$Fc{yW#k65+lb40b$Q z;$0;0s+S0UqAQ7=uH>yCRlmv zbNmpEo|3|(r`9~~tQ~B|&OObME12SZedLwxw6uHn;_^N0LIk7OCM$6#%B>aiN+)8?aXYZ`gZbH_=wy4{B)hWDp@Aj7`9j>}s zz12c8Kd4+Wb@b(_3&sMVxp1SGu6Jo><%^dQ>b-D0Qp8JV|+lJ+K|hjLnn)>;+TT8BSh?~lFOA1mIEEB;}k^(8+17#>}&0Qvb* z+;HU=Bk_{7e`(?SV$_*tSrxJZBLi{teEUakhrAL}x<6apbZf9vPQbRJxkS$7bigZ8 zhkaj$vIn<>YN^{i-SYF>+Ch5nsd6+nJ;lL`0K46pXzF%A2NZ8@C1X{_ZF9He6R8je+ z<9#8yAznA!TpD`#<@j~;Fg1u&5ATuSHBHiAu{D? zhR1wo;CB{`z4{b3y4d$2kgZEztBL$?ld-fQMkR&IrgEJo9UM8?lp&@cxpmm1XmyR< z{MT>WuI@1~a(ztXFl^iw`aFDZWS;N9v9nI?o$Kt^wU3o@=J~FaQN+*KTv$`_dS`P! zEICIia0X;7-S-vH$khHj2ik+|1|<{}D%!EJRqt>H{7AOYT>MR1|iqZ5;PWjf*pguEQwDtLWSdXXFEe%z_0-(g zd_0*pIj`V(e0bE(P~JJ1dV?Al!d=D9@ZQa%CIzu3Z~B4{fw)N3`|lsQlL)Btn-y-; zy8neB4N0?Qu^Kd%y~9Z^U^C3Zft%|Lx%c|v&)~Uhh{ws+fzHBmYQ8m`Ps)YOmaVEy zbke?|$D#TldX3LmVl1qp=P0aCU_;JufF3~xjAnN74-cJK%RYD8lJw0lQ}zBYwo zJ&k7vG~d<(YRwKUKFwXr&%8*;zcB$B%wK6iVvKDmAH z4F^%5x#z^dlX6pceA%k-nMl%n^zS?H>o+m4`o7Y7)Q zv4E=0YI!2)nY4sWM){D;y!W0^dv-PH5fW@^Bk7b-s(M^^jtiLMK2cWhsA|^W>8Da) zwu_i!EcsO=@x>9fCOJ4rxZ9MwQf#P11S#XmaOfQ*HtiRDq9p9th;CBjAzJ4B4CVWW z=c(QI(&72xnv|&yqYzeRcKAn+^a(BQq;n7{b@tB@BwSvOx^tSfg(=lw<7uI7Ss$i8 zMmUkspgJi5@mN?N>?|yj#jM?fo+VRRfxHL3GKJtn;4!2s|NHNC$X0WD5Clp3>*T@U zwq8P-ijA^*;kx~)x#PluiMY5BQHY1R?O~|j)YGwHy^JVqRx*lDuh{rI|PqK!YhantEXXsMZ{l{VbHI|@HQ@ZLYqz=6e zxl+kC3=B)NJ25m}*8?3IIH>Uvqf`gt>cO=;r5|s(-_QG!n;7EIYqmpul7bLHo}8IU z<>H^$$HPo(HG=!IO;BS=Ty~ydy}MroX^`mdTFp?DOj& z!*B#?z9QBqmcNr@MB4ib4X#25=k;x?GjrYdnr%st@SNR)&Q07XzMesIK3{XVrU1RP zM;wi=sucE_6pmV0i+7U{57C=G5jHruF86Ml^*S1gt!}qcmW77Ws_&w{tn%-&Bdb69`h(tXiHV zS|rdPD^k%05au*9b;fnMXxY5#;U^rAVUF=PIt#NMV}jZ!zQ$H%1rTzjI7$0pcXf-1 zb|#5q<65TH#c>1Ps|b>Jd#+Q!a-=hTzY$FryZtTWjT*`2ROZ%lZKQZKR(8-aMbh$k z>jyCZPRJ#=GO_cMBN}1sbUDfwbDxhl;;Gr-Ayq$!qR5p1d?SWxR4NBLH{2>K*5LPT z@CZDDynEEbt2tO$bk{hL5XF$Ek!wAx_uj=%-3GTH;cxb%Ut3%!chH-c*ZM3{qx+EW z7=jcZvyYZtSk6*yX#rTW$vDh>D7Yhq+1%JbAwhBJeN_9Vwk72(4G)BkS#Mj%?%urN zOit}}1bO$cfHc<=Hum+9cU1!i1;Z-RpSyw@2LWRLSDfFwA zJQRjJFiNFk`}U%TulvBKgQW+FZpF*Er}@+65ca(q*13Qso$|d0$>1YH2^S4__m^fj zvjgB^!|L@p@N&Jz8|h7oAjiKo9;Jw|2JtW})NNJ{Jb7eQ6y5KrG;_`dEd4$A^j@NN zee3M@kTIIJCh8)QG?ohLPb;voLHY1VYe(Qx7sq!65>>W0#;Q%@Lnn}`bQL+$U$E_m z<{#Bgl73yg%4Y8VSplQ{UbFBCBDi7dwhVhf?yQ$} z;T70`TbLXgF2NtTYcq9ucm}}M;U}JehO=zcyj2!E7Pu#NJ9?{~rcP;E;eirZHQmC05O7WrT!bU zEeBS2-Q7~$hurUQc)zPbn(wQ1MhdzPR${8b%d4Jc8V<_}tQ8q3ZX!n9t#|2$ZsCq! z#<6-1WCI(xB$1Wz_abS`6jJ)pNIz3ClDb^(q~z-J3e5jRu9>-fbxfUl$hi*IBOo0D zEKOiiA;Ff-^!ira1|DDLu((C=MwD-+pUIj*3sd?D)bN(eo3ksU7dlhlgrf`HtJEEI zi&ae4a7H5|K4R^NkToqJ98%4L+4>CSfVj;RC*E^UY^1XM#%!j?dY*QL9}leMMqLY) zy}j`P;Dd2Xa03g=-4p~DU!wR^d)l*PYE0ZyQoZ05Ql<1$%}s1^C&{2{3LwbKFaoR} zDeN+Kc)`8-fH&80cKCJlpp%-_`a0aXs&;Vy#A1JMW?VE8FhBE^3`5jfJ9l+Z)UXZ^ zD1AUya4gq9hCR$@yJ>1I+w&}fJT`J<&Dht-$UNd4y75R-AhbPCmbN2H*1i$SugAiL zLVc$VPab;xVb$xJp`$q>%**K^Qw7+{q)hNbql+jQ7j{;!Ag`A*2g_X?Vo4qABGqtq zh$`c`TVgS=v47$~!aVZanGI48^RVm-{{yp?+?_o|jR6qfGoNAOpvK|#$h*K+LyOjT ziH(SJmM*ckpC7A)G~Q@!qTU^`8twC_Zu}cjwW^^jcS}?C-m*m_A1>h$YLA`grbi?H z`vW&wQAhhva}*6YkeW&q>BM27I7l%6gRp7Swa}|ms$M8WPE-nG7<8OuwQZKfaKAU6 z-c5}1F6p-a{t@mLqI({aSei*Y!WiX2naUJuS6cZE_~f)c2QT_C%|iy^B8XIiiK85A z5SQs=6caLg{tLxD)F(f(S`Ils_`jmKHMjllSKGMaC#jbYUjwUp`a>WFWt9<;GbrRA zXjeO}eo$FlShzurSH)u8C}Xmh$#dGa9^H7v#?$<^ zH>rSVO>Q{n199%&=iQ`k3w`tDRrH9H+7N#!6mIsH)EoXLTPH0k&rcpc8_4~!rmW%G zciGX!Lj5m9q!6NQ)j2-N;GzUPsZun2V6OL`7Hscb`WnNUiVf#=^9vGAV>7g~3=*+qP2lF=t`Hi6AP zr`cCu$f(TH`GeexiP6IjTGeNmnUH(Gc=mEdrzxQ001;SZG}h&Fiw*-Y;QxQY_9RIRLn2zCPEDTmWhQ4PU?JLr zy6*8JEttp3ROLSP-Wy}ddgpSd{hhnJ>^v6WeOxC?)1itpcGQa~-+d4!+LQZ99Z%W9 zhY)rJ3xtY=c$n76M*0nm2%sd{0G2y{QEj%b?l=|j>3%?(`9+FOLbuK|TwD~I!^NWt z6D&)IdK@Cg`83n4m^$D}QkL~dfDaKF{YVk1n}9+Fr6Rx@8p(g6NQ|ZlL>M=)>!3oK zUS{Kdrc(`g^{zIHE~(NvZiNIbp}RxO`O`~$j+QdIz-PTa#fwDEoo(Ro-`C2#rDlb4 zgz(!ek{WLHKK+ch{+tCkmQj|cLdH*E>`CmfzAqaz_j!W)33R5x+{;(J@@H!8d2QUf z{)2dLACV#mK14}wxg$hLJw%CCg?5HVQ5BZ4RkKuNNCBZ_(hVNdD=a&V{QGAt@t)O6T?5gr`RnOwUlT6G1 zz;tU;6w@pJjp+e@FdYvtU5bNYT>>6eLSAd??@(JP7=A0>zw27ap3kGE_RmCu1smBT zvvVAf`lKd##Dh5*+II!%pg#1DYc}OC#e_A|u3{gv&iW)}_+6V2x_&l5UoGFMg8bE1 z4eg^TJhYhnH=0+`Q>#d29VSWpP;8|(5ulNP^?qm{C-5)i%0ERI(w}7EfzL09!GiJj zpI%g)!wKuv@c;eOlj{yyr(o4W8VHn`mC{Bw!2lmqEWbEKwu{E^C{XP3FZuot1 zfll*er}dF&RO?}u`wrLRpqm}^p%{6Et(NZC0xM#A)9<&hy++%Kg#mrB~j(Q zG9Hs0Yy}Mw1PGZ==y8-|PxH*6)&3jp`T~FDtwe+ByO6KEi~j}WhAlg0j`{aHR%6l7 z{eD>u!Rfk|`Q((lEfD9B+%=$^y5(lQPjRFQ*BwqT{9~+9kd+1ZzsT?}wFJUW3uANu zI9Pexz8hO&ivO0Rfxwrl7YR%#Zsfo|s2Rv585QPlB7{{@Km=W6eZ9AO(0aRl95)Y$Ds*SW-PyQVWiZJqO0TE(-^k1WA-%+06W zYi$4W7-u36kx&T_g#0wh89Ys1=L7-!V}T zhoRIfrUwV7Ep7mcvy2xUiy+>mgTV5|XmQ=NEf)y=)$I9&aL<@`B}n_e$3trzopb3% zO=|*Q*lR$=;>KXvLA!j-`cWaYMHXv1W;W27m^%#$7uu_YQyu<26Tm?yr!{pE(7jVG z59`xV<`e=b_eLSzIY*BFhk%mVZZ0{rWtXyGf^rMxk}GMUtS#7hf;i2TbDT^7>h>1A z+FRD}po<91cJf~$3i*E#aS!6fs)E^5w+0JKwOx}LU*vt-O#<4IE&t_CW;Z^fSLm}l z!;Iw%!J;-Hd8><_1bfpkeuZ?c`h)HK?><_bUkX}~&?H<4xnW_6uN5#+QEXq)pQI+N zX=Nl?o%{#dZ-6JLLh{;iZv0KxctM3m9ozg_pJ;mfhn*RIkeQH?8SYpU7EGG?C8LCk zjYyv|ZSz}vGQL0k=q1qiRdZ~YzP$$}jAg38q6PKsDZNvGaFJ9xY)ybJ=msBwI)dep zclj88^sUgxA%at#s!>q@L&+awO z(E6oOABT@N9{rkI1J=SsimxrXj?_m+-eT7~FWTM|8SU&l}17+UB1M{c0-Rb11X z14sw8=-zFckO>0ZKE_#Qtael^SKQspN_aDE96z(JE%d47%iX2C3_bxa zJw5_72|K9+r1>8SoM4DMd!L2U;#t&Ywp$BeGGIB)g+BCATGmzoBga^>x}S z3^aZz5gWV^PpkK}K@f`#=bFq-K_@}c8pTB#$=QMApxHhK{;BXYxD?iE9Ob)_C_&$1 zWo9u2X)J#ggB4Y{0M&fodqqsGy^^X&uEu6~fVTVKZVQS5$j!V&lrC(dbipfjAa`Mh zcsJ;!r7wTCYQyOhO&yxJxPwI#@6keCAc(Sg=oy1&)8Vl~d>hQVh&=pnnIrcV3`gpv zC15$;*#8OaM_6EA{cDK_1Q!0DgsshgGxh$I`N#*@NKs6$%9M}RHiRQ4M75+>?#my! zkp5+c4He#4ThnOZWD0KdnhKAaRz_obCazZ`XWrV{ea`=zth;$Qml{ffC>}{`t}^#F z1r3yoC#PpJK(q`esU@vb5?8mw0|itfUmyiUS*{{pwDQa!#_Gxn^riiRcg6YtE4=4= z{95f!g+j<*3$UfDVm6)}wO{D}fE85KR?vuQ2P zpO>1Q%UCuYnuAn8`X*BxL`!u|x*9HSSv7?k>ZWw2WnF(;U+=?$Aj6HzJ}E3NFXt$# z#9+DF;r5MH=l<#o(4NpqnxWdvx7vR?Eo?5#)y|Cc-H?#^#oJYD-mJI&jNPoTRoLG) z@~$^F-MC4Xx|0{8<#HPFXln6Ge_O9_$ZZ4-apF%kA!Sij2uHtd=e^ zY)n>6P}-~IycoE&^k(zF0AFyZ@E8(IED)+o+Mx_F7ba@sd4lOO?YsKbU+c($j>022 zm}sJ21s>tcEz*?zArSx6rx=VUc6ujKTcXr%d@&C-UOr1~DD-0Ht*C^KNWIMc`2--P zi^D@QzWD23AQ(=K{X!Ssv{__ z`rN-cJS7RsqvX?IBeDD0I+t`)!6Sxo#dpMS>-s#n8-Ojo7p6}>Ls@#yD8PiT`RT3t z4G_-@N+UD+*>7Cfsx4Tn<*D5rXynwS6w;34cIf-Z{3#z)A1zMdpdOWQL5fs;1!c#Z zk!bmS^3m{q)3RDDXyT3f9M4p4*+^9G4{#jpKl271Cb;Y0pnt{aKSAG_01*lNr-(eQ zDwBg6x7dP2HC(A%SeO0_K1%nH{Ov-{j6IcdmrD@GnFTX9EuH40h<$nA{+k5$x_)+y}iv_z9-REZs@ol%#Aq zD021+M(r*!OY}tQMe;}m{Z9&C3>2OO%WY3xJEfKULL>vMNE%oCRZMJuO^MQs6YaZ2 z-YO|k$v1_9N{+?;&6k2s`@)0^SV6s5D+a60P7n#7NNOC0cxvqQXsGKPvcn#m9=tg1I~W21r|Nn2 zSQz~zbI0({Cs^kys4E;S{?TWKK%Z$M-d*{^Q%gP1tQGZYYBu9J&f<_wBkXc@kj8aC znm+BQTcFVef-Tx^Z1Z~6kD4DeVV1WK@zu#Rr6DdqBxBjmACacO9Vq=#-5#a28skgm z8{;AWf&5?YfJW1wlGalThz1>UELV3TR^_ZxPAL9rc=DMawswLcMZ`ZzuH`#QzFTDm z`d!?+;?O$3LO!af`q7zqZ1vPO^`gn5!XD02NGL04>}a$08~XLc^$JLhgngN{-prS6 ztf~oNpP3T|oIR^1?;0c4(12JX+})^on(<3&H!996OjxwCpZ&3d1LYO-OIA?G2U!6^ zI{Xs&HXd9IF~|)uNSaf=6G6U{g3?RmU2cL9%HO#cu!;@tH;&(edqm)i^Yfs$2SzPY z&IY3LQ~}kr$${%eZi1HD-w4v0Hz{v7A`bXvE^gz=tP)bBBP837_Rk*oVT6K8=`g88 z+o@lKe=C2{7UrYj5C5gQ+X&}dsBd~QW$f;Pa)TY9=;1R4r7Jb4LL^$ZT+6hsg&{%O zDi0hqf}(8`+P(kzLB=6IgF{{|O8WOiWNCks{^|?&mroIzEf>BUufN2P7NH{>XgD+( zSBwG5uBC5vK%KeB|J7b&V6}JiozrRtS_>Y&!;I6I z$~t77sTjnHIPx((!=tegkpuXE22x5?pbo3h0RY{L8 zD3hpJU~|&&pR7}prpiJ_Qcqp?>+dxZ_HElchCuB=FL~cZQ5XVUagu_E9(zL-s|OWiBzp zLZvK5PGPhzS|}+UMFJO~&U^8BpF){jd7K z=HS`F!^I_|g;If=tP?G13hehD^Y+K!$pl7{>0zI zriEU|qAmd}3ARS(7L^g9I_>Y;O7OOrL!2dl>Q>uXqv=ga%uyDs;fbu7Y&XZRye zht_vCR%Z2V=xS7rGC;`4L)iwiqI>0qe7X_CkdC+WtI8JZ`&qGem00yOk?RX@TMVp$ z%CpgWqV~drzyY?0_bV6Yx}Jy0q86)TJjg7Wn8yH66U3|Glnfl*B+G0e(c$EhI4b{8e``)BT>*k z?TN(^b-mk%tgDW90PWNvN*N#ilQ8&I7z!J-3~3}iqTL|Yfuw^b_kmsz&C$lgs0-)e z6t`+h+jUFf_SC?;<>(FNEk#*_R&GLiYDK@U)S7yO!l(LOSWuBfE&Z(?&?^XgReCM6 zg;2C9p~Fz;PHFAMR&4#aRB+~Wc;JhsZWz8E{(Jb!>}%U}H+>g+fv_wzl5Q0cl20U4 zDbAOC6%Ogs|B6;125iMBQ}VN#IOH7Qw0$gkQ~}b@tv=`$*v7C`qv&_lKquP^6`w`j zmhym^uyp~Vlj4&>>O3Na^Ce1Enkk+;tSHAow7AihLDjqfhBR*t`2zTB(c;nkr+75X zX6rjGdfL1pAQ-Ki4?+j^1XXEu7I-eg}W=Vp&}<(EMbPiH70Xf#iBBPK$E z_Y8E@_bk7}G%Uj;1?LfUp7o>WpGv;UHs$s&L0U9F?ztIaGJ$)VfMgp@(SuU{^@E!u zsLoH*C0^EP&fxq<6oRy49eu3SGp~^nAPR2@@Hq~(zq>4W(kI+=Jb(10&+;nv%c z^EBNfmJGE`k?0(t=cxEzOH9TjI^-)hQ|_=E_Qm7%fo;N}R}H1@8EmjhrJ~b}Lzrd| z6&^K)78S;H6OQs_Uh*crtw{ghO~r<3^}*@1&mSzs;P^q$$-U_`KCALM3J)S6uw=Dg zoLWw>!YL`J2M@qM7(>Z-@rGzkUzlAk*{BJm%5?kN#3ZmaL1C8cTuQnx<7U74DKT1S4Z;02%8$!k3vbYzJMB|8WafL~Qh0;Ww@ zb20zW`>j-|;;iZeqo!z7X>yRcHZ9kf=%?9f<-BYAeX0vA8+v`Rr^Jf2C%(lH1%D*$ z+L>N+ok;^&_QtVVQvbjAnv~wTW3X7Qt_aEz9Lh4IrT>?jqKS69ay7b{ zo;&V9oY*Jiw7wLNe?O-zs)A)_!OEe1osC&=_)3-R0ZJxFg6P+O+>ltu6w2@>RZG3Q z`#&3!l^#lU9XA_D*6tNGAy&rSbgaAe>VQr8%PB%UxMhk!*s&SkhdPmr)(f4;xMziB z`Sl^Vc1@i*!a!;Y0$VvKzHA zVSNPX93Ba_L(fC3d=bYZ*hgXY@Ei5+A=NTQc&sAi9-Yoy!8<{x<$%YqEc2hbl7_7- z9w$MES0*a|2l!+iC=C8Yn=MmrFnG9V{GQFn49*1n89a>g!T^~sz4ckM?R&->-yQN3 z3M3cZ8_Jy>rNdyLs8Ps;Nn|raI|=JctDnTt=|LRVL zFH$4OqnDrP#oSYagKUJY839>sSRC{7x1SO`JBc3qLc+<=39qhhB8X6Ez>0gFbDEyp zTJM}2aL`Rjh$dQei<73iyHu*%CzbQBx`Lfact|Qwx!$3VLpvY!=i>x7-i{K>-(4Y} z%qboOg?;jGP^&CHsT|QUw4q%}SoFWUl&ALt6CJ#c7dQ;vZ+TIi_ZC&FgxM69(K9R{LA7M1SDMS>WWIO*;3sq{PmGob zl8Pk;yLvD$v+U86I`-Ykr?+mVOdAz0z;g}||0FZLzhYdg%vm)B{i#1_?QyFO1XyyB z)H6KoQXl~0m18?pWxn0g$AUQ%uUqRTk`koYC*Rpq&-MC@#-K0&hqllQKey~)0gHT1 zO^Exw3-mxR7S>ZiGr>XoOAIK|zzhJ^HQ;Ol+WEps1+-}YSCKJ*IrJVnhhBis{((94 zzt1wje%XprezuWrw81;M!tH>!O#s5q`yFYZ%@&HVrli+?nghv7(^35IIy3DTFEi9p z_-%2XU+}3fS5c~tVmusyyC(M?tF{#nmo-QzlT~y;GN?c@q@VpsmQu03hBihZwjy1P z=Fa)kG4tI&KM+7FnHLLZ(pm|ohn2QiwroAO66M!5Q%rZCw$z>_I~|kS9^sz$uFr@P zayOTGR0nM+xgj;q4TeJbv~WTXDpdhUHSE32!oK>7(>8!?|Sr zn`&U%%{S$id-^(aA;iWThs&*x7I~j&!>A$2J5tH!E_SwY@i>V8ln)NYFVSu#<7EP& zH$n+A=AxYWuMML!X@TDK_`%oE8uz$mO9UP5X3GSglHD=b8tB|SNba#oacHEanjzID z$LeCe)&(#s3O^GHWkF$Q^H|qyL^T$?_efobo8+kAYsF`5I8xlpb29mJ7J!H?$FAva zK$@ETBdC{A=Cs{gZua*wUg9clhHFDxtIMAn{q8RO&pmE;u{S)fk;*<0vAZnIRvjPP zIUzCn&^y4qp<8X29z9hJvNq!X^H(*3_65#n^ug$(qf*#a&AD|$Yt6uQHpqNN(h~mi z!;41^iA(RMc57~iS<}Mt1a`|tI%egNB7n0hWr$}CUb&bV%T7ExE`)eS=vcBok?Ll2 ztY)#iXX!E>W`x1WOxuNytU>-Mtto>G3Q}3+?U^+VJwnIW8s9$NF7?z{(KUPIxFd!J zZNfFRWHC?o$9(wT`2gcKR)0KTWj$oJNrLd0WRXNgFI4~bFO*eAU3Oc!qp#r8RZP>Go}PQCvBL2^v+{ z(b=KMth%??8_i)filYS-I+H`VL>v_B-|Hr_{cC(Vu2H`g(?finTE$p^XO08cO@d#e zwENK8yz(X)Ck#ZfTF89y3@hwbNJ#dcG`%hyZveIHy9SA>bqMTL2^}h;X(Io-I1O-K z?HcIB)~2<)e0&18#te)tC5GIF;_~W`pSsd?+OUZrf9}myv8Lk2^Put2W*K5~CMA8h zXW&>}F=UBWUFZ1MA#U{C!%MI}g&|s-U_^fNS8ZyoS+9&1N-TmRKjP3SV^ZI0e>(bu z3pZJ&GY&s&qbd5eDqN8W|G zMOx~in_*zJ6q@1NJ(r>E?+$4cRtAw2N}`pyU_F4^UjM%4WCU0z3}&pUw?Q0S#* z&fa*hQpJ@}`~m}SzNVC{Oc5yU{PiL@i-3V^JFf>_1PiS z2bJ-`L5paD9K&-%Pu}&Iqf4OjVE<-`{|o@ z0-0Z)p>O3tkUHML^-@}zuEPvkQ1kswx0_vDC;fVIS-S26JhP=iMXHeK?;FZW?i0q<9EZ2HAuc%f~4Nj5o( z5_*`IdDotEb=q6s>LE8UhnX32e_p6F*>daf_CZv2Qo=>=SCW?B_A{KYNB1GcdDD`< zt1Ow~HD9FZ!a)>4Wep8Ej9UF+hDAH0SMd=rZZQ9KdT8=>{KDnIeYG2(K>B2_>5Ts> zoSc8mh(bl{(oAjC!}6}3yHV6mzdE4vmw3+hWm*-@R||eiN~o$u-+K^oWS)ba!T>@a zS6@wmSc#z0dCW)P!9}9#k@$+Z>o7C9TW~uQYw;T|pd+gzmazLtz6dLL&I_q$QXK_( z{yt$3D}<^_`W-&_6lVl`eFQ^ht?##N4&wHXy5^pbViijE8@D>2#}v-BEYpUBbL%mw zb)JSdXMA$!k&Vv-MvV_uYTmChcKo{ntRVGboZ#O0wYZnxH0{!kq<=lXKcUWCXA@xo zlh8-dJ@Uf)HfNKLO4O7wzP~c1(R=_c%cS_3=($EQIV~LGTYR?D$z}`AEw*rk$>V&& znqF4nK@%<4v#T&xGK$lS(?#E*@V4aFa93hS;5K)ti~5dz0X#Ju(8%zbj;EEK#|5ur z8x?kg_2>(oh0cVtKaS%jCFqecrVz|cyQiw6Cj}wp8srOa>H_F>AGM9Rdi|r`w?})_ zy7~6Oxz76+uh@p1bqct6S&i{B4W7JwcHHHuS$X-h9dyT){vwr6WWFpGEOTdB`)|fq zZ%2kUzkS#dzBft8bhhDYrL(b4*217UPu|}5sN>J04w?^2sW9H3WN><4j1i2~>`zPR z*R7hzQv}xHAg^D~n#}u_x^uCT36x*9BM__#cGwCKth~WyMu|~KMi9fa9H)C0H@?rN zWc-Na!&8&=Vt#hAX)w9|J$;yXMSnCO9&(YGK)d$YEcx}CW`43yGMB1(hOFd%?DufU z%ZErt9Yfxy9u^oFU~po58$U8v#xZbcebF#k`bgWxwsSXsraX@Vxp?`qFHxHoFMo7} zt;+m4&e?AYVllQHV&9ioJ|`65abl7r=>v(ozaN;PZhhBohGpTJj3*?+-Z?Npk( z!#s%|HAUukOD6G4I%;mN&E{_Gb}+;=O8@wc@?FJ|3s;MkWYnEwH6-8p*n;A0LU6iEZM-ka4oj4Ih}-`t2q$OgM5KgaKx8y7V!EC=aHa6PwUUx5SCR})iO(28ue{>S z$7hfK`P31u8;W(NZ|!S_>rTAUdriaLjOh}Zw0r_1YagU9he>LKFEN)+^VfyD(fWWz z=1F3y&S%C_*^+7K&v!EGtM9FMGa|?bj)`f!m7iHU{`y}e0~Ow48fs;9N4R)|^{i2E zNGVUI=}V0g)(6)`L4++lA0sG{=Frh_lx)`E=C%79Oxf&e;W)fEVcIbeAscn)W=dw3 zzhI>xn^)j+7;N#HVnK+j0VY6*wA@@A9;27In$$LrKBKL!+t5AGB}Wi-$5j^h9QvzK zeDoS*4qyptu2bngKFNaTI>)MgQW4_* z(VeEZf#LfvXAA~TwxlXPJH8ua>JJN?-=OMAME%+QTF1F|w&J)b8x#5zAHbCFTyp4= zSWB6}DethREYVoAS(Z(z|0ogqNoLHFqQc;)e_}F6URn18`W$ydK1WdW9c5FfRcb?2 z;X-0K@s!RjJu|Isk@vp?#`2i--O(4=jSSNt3|Lc4&L*pKwZ12{{dKlMc^aFYDHUdN z7J}cqI^+s$&?PvvzTjt<9e6%-o15xTx8^#7h>*}FY4KmDsr>or?=10LM)I8M8HxH( z+VhkT0Y=YJ$W=;PbR12{f51Q{Sm=2%_lpd!G3(Fg3fKB>en?eB5YC6a@Yx|1F)~3e z-ppNjiMdIa?S)M({Dg5Ix`d9`{M2!N<ae=tX5yh z?i3>OL^6rHc9K?r*0PCTG5IW!-9ef`%(B&a+`5eis6XPo(gF;c0s>#x&BsBOzdEHF zEP_U++Z<`fV8JcarB9?!4jQa(CD-_>XQV1NYK*?w;8;1XDK?>3zk(oCBkgtC26+|7 z#l<@OQIh@9;un%FHPIFFkUHCF3<~RTkXCrK( zYnbgAr-Cjwd)+4gt=-S9}TM7)=kpN1k|== zJ&5W|I6a)}@MEoAzra?hVg?fyfX0uha7Cif_ocUQn7$Gf;}zs)ZmIWh*nq zf3|l@wY{3f#F51)vzViVfECS@x6h_V=vUgW8;MIiRh@q?g_%<(<#)Ht>wmO`gSALU zmi-#V(DL^b%-}UUg7%kyp2z1|xN1)}9g+EI#GsiFEZP(wSiGD*m-F*ONU9>I=}&uC z{UYKz@#@$JY`UeSnY?b*OMGds_~!d6L)qKL#=u`Q|($^o@z@# z^7Tm4+OjZiBBIZYT4j5RbOsA|y~Q%W4tO9{yEjt~wK0EagDmK}_QXpB{W|U1#G>S3l=T)36*XfMk5v1>>ivm7%8%m+8&=x zNy|dx@qKZc?{0tMRs~18O<%**{tp~m;cC+N;Zut@(DW61I`aaa9HAO+a=7l}-RgRY zFS2Rk!TNk%WB(4uK)*X07tL;ZHgZyqM4M!ao*7qp?T&E1U=h~ zDF&fQ+R+o5K^KCVXVRZo+^q{gz^`ri#^b9c#%6a8kz0Mjk?l5wdIDRRC}Nu-(xpiK zcEU$jO`0|AjPqx(cfS`8a0;pK>nNN4dPkNeh`uW#zWBNBrKu-GP#JtL4Q=_w4Q&OW zOvsnXfE3Aocq(OxPkh5s7n}kG>nssi(b-d9wb{z;mJzqKZ{R*^Y~;QjmtF0PWYxMd zhS2(b2G#T;Iy`4Wj2|o*01Ntk8QSoP&{?9!K`hh`7V2tKM)o9@BZweLb?UA0L`6m8 z`p-X&qSQwRqSDHEM`8fK#+@uAgL_an8A^Oj92!enb0U6m=Or}BM8eDk}i zS#CeJ;A3kfx+NyQ57xNfKw`DfAWGQ%LF;NJ4itPl=#*;J!lWNHN6}nG_%~YzTT%_h z8K4`wHX9)tL^->SjLG{r$ocMMBPIX&Joj}BHN?ty>GPQ$M=6+gvZoPCKD^RfSmu2k z8bl9=ScjI^6g|#Iv${9g>ox)4ajG2^o$uo2``8AMf~%>qSvydN`zieyW3BNmd|4jWPfj zyCWj%sTn_LtDP5V?ovAVHflkVc|3kte5_X;V5`}(fj5EHXdDpEeRT;RN(@r}jqOqG)X zto%|x-Nc<^x=7%HpXLz}gvtCx*oX&BYNlBNMQ66bsmI}GxkJjq1L+Q4%zEYXO!+l0 zLK*bknyNcGKVST{?dho}AspF{BPlwI6~Q0GM4!9wBUJul1pRs{_GRbRB54D~GGxW# z`aeKXgzi|8G7Y~L$gTc_*UB#-x_F|RH2cex-(pVo)IZ^)`_|C6+=rxsxsVjF75rW+ z^1D}li%)&! zUr$-yPzh4AY!g?F%rh1E4~h8Y;vOXlQGd@@w@j)MN?8nPIihMh#~3;l!3Z zQ)6i?@S0g()M9Fax19Pc&bgYY1Svy{q-c!ulMG&Eeo5CNXu5UBTxdFDC!7||FfMq_ zwWps`Fh6MFvEp-_W+Un^$pc-}lE!OaqsT;hZ#%mUnAfHERI8Zxjb9VLWJd`vdH)d# zwMjbVxzpx#sqSZ#mn8Az_}~uT(!ue)nVyi4T!X7k@vbcfLlF{NZ6MQl+*DB<;5TF5 zlK?vd?V0VV-%WciuQ_ntjt1K`>ESN0aEWR5<*L@FZ}$0XEbdInU$g%t17fJhMp8-q zC9@;md*wzSH4d~Y!MDjWe_gy(O)63c!PTK|5}0{M(snvBA+P4>ongw_~t+F>&5N<`1QPRohmJcnKC{tmm}@z#v5?vnd29$(-e*) zKb@c>OG!`nN%=vW6KciDOu~&6A3KCE$7Lce- z^D_DaXh9I&zkd3l2cJ%ZeqAI6+hV^SfpUZW!9xnt9s5)82`_k48~Vlh#Ts--_!7Aa zp2L3q?_y9=|JP>!8yb)e|C>(0UH|`!8YvH`tA?Hq-joSAub7nF>QSVmtW9cndP81S zmwW^Jjn;0X03&Rb5>!&c-FCBEOxsnvo4Z@W)%D=$s4R|ceqP00M^lyRvliQi?uo;e z>oWWdG^NXLy3c>GIn;HdI$chwXe?61H+DlesCJF~Q)|Pk=XddI)ybpY@g>x&7d|s} zIZ)J|LaZdbQmmx_9GUUzp> z)nKOF{(jVLLZjmOhtZDvbI-=V)GHcS;VY}FpTFxx=rfieQS(}!PQPaM4Tnp20|kef z=qXyk%U-8w&xM49q~2h>t9Z2HGAuk-0Z;d)ja-32q{w;ydASi@C)Ox6<77bp&;)uP zE-r*9D|6V^wD%=$x!=K5Q-%HdNtG&!|!1a&Gf%tn=5ZzFKcp#mcJMQnlS&~gSM4lzKAL1yC{F#}8$&!>ii6Eaaa?tGauIV3sbUd=x zxM!%WY{6&WMNzs@3^yx=@AEiOHgo&nOVW*1(a4?9n!DjXF= zMV0!L>h1Z%+76UQtvwo$0U=IjZ>t)U;$(Tbsk6aXp;F&}rCqBOpsiS5cFA z$fDBHf7H;MqH^I(&H>wmL3?ljaVUs6Z^sC(Nk&met!(24)lLu!kdc2Z*!|p6L`g+# zKgt1jxFgl?T2CQlCOY}#bABA$V4QD|f86IdZ4ms{Z2>lcnHR6sTy@Lc1Jx!R1}+u$ z+n-c5#6jMl5Z=H^Uuko2*V!p;qPwjBGy4+9!>toJ)l2+!ufEy)+YCJ((*ZV_jkCXY z?dL*PG0)}8^Hfy&Ump|e#}G>SmycA+`j5DD)p#OE`gJd6kDJ+gOZ&wuX;kBNn8&YQ zzkW_d=)Xm~|NPd^V8XgHrLye$aC8p8b8z_F*08<9@YA7hL@O^TxQ%RoxK`El?|HcD zCkr~*A88;S=k$w@sY&{gvjsM}x!%{>T#(dn|9;!1>dSFR4H^>EZx9TrYX}Tx%J#oX z+N@+9o+Uq;Cqy&8^hde*kAvqvD*@n@TSi7%eq7p^1Pa}(I? zw+*{BQPVYEJ9izpIO37p)jLS`&MKNj_|~Cw&en8kEqYmI+4ohoibv`w;T-|}rixF4 z%l+a07&&>};gF1fg3!;@;>BG}y3w8xK8T;j&V((Y3!?{(MFxHH{B`7nhc3g)1Q%9D8rS>vj5kf4|4$_h-8A*Zq23^Lah5>pu5x4!cm`v9saq5k@Rf*(G$^6QbiT0DTyAu@iL+nzgij{gBx6LT9%fC)& zVx&qi)8Q$#rZJ*3;7qHv%+k+?hyn4A;Q1us*M+hYpF1&0QshD03U?151S-5Rg za8oK;Ig$#>d;p?MD$Y92@X^R}U)TIjcKpsx6SFelRK~fAKbs?k*8_Z93%bSmMRx<5 zyP7|W?Sq3brejB+SXlZj;w6MHSZ2vZtd1DSE+&tmB1~mvtVBZGZEbnBZl|YIIK6zh zoAda7B!GJVq5Y>ntMh2obR|TcI9AXrh`iv5xy5ZXAYp6;p>FuUCKpMm?A8~T*2m=U z^3top`9cmsRY1+FQ*s3_u`WkGpY-mIf&lz@-f7Ax_px=6F?P8+_tM!pa?l0NC4>s@ z@Z$YcezDB9m&>M&V)sOj!Ke4Ah=2WBZpKkWs%*8=ruTDQ^;@o1MAC#@L64BUxV|G| zy}3OyyvYA7T?&9^^|X62AML5#9g+19RyDm^w&aV?!Nsz9`MI^G10q5@=H*o*WLpLF ze)bE5DFcC>+a*@vuETX4k*p2$0*Y`t6;+TkE#fcYR?42M^DIhu`HOpaWSY&x^wl-l!`Yc3Y z9#}>uz_@VF#6vN0v5~3SU0&M$?W+0ji-M|XR~hpYrF3=I#F-CkZVxFVO~7B5M8MKm z&Fa;fYCb!=U70D}jzZjKg?TO*c0quosK4Z&5BE!~Z4j%*3M|xbPocD@Z<^fK1Z}!9 z1W>~jC@ADZw7qV-h0ERHs3Es>60OP~-Bg!U=PsKzw0t&6uoE&FU(w?_;fqN-?Mg>jqXmFH0mhDgM}*m=quzA9U2C(PYpuw+jNdbQs_$cMlF}ITzX%dc?3D zPwA-5&9xtRni|0X$w<`pvjrudf6_G^H$S<`cBDhkO_98+^as)9S0Ya{JV$!jwk3+h z`cmkz!Dw`Ca?V%5GTf5zFnp*<0QQB=vHdA78XlLH5T}iHxb-VqPyp!xRd))#S_9jr zy7N5^swN;6@R6Y;~hzQeIEAmw*n zmts?kasrYOHh2NQ`!i#h$D56bPZ8Rq(D@Ppt70_O?m8a5Js3D&|0@hB4YL}~Ct3Mb zt%{x-!+(PL0q6xlk`MVt^Y%!2 zzrBNm-R@VkJAyb`%y}-IX82dIdx#j=y2F7Kjnp?^={BDCI&VsnFXDlVJ{F@C^Cz4m z4i8W3|JVGsIrC!k*AcQX_h6a*@Wj_@QoCvQv!BQlVRUqm?>Ww{rbB9dv~Xs@9PKfc z0V;FDpI^?;4;YAWy{R!ItDo=q{#PQCwj9-I9eqI{h?pKQK1j6k?&a+1YtzO_fcjEFiG||q;K=jU@HFNOCKDjcI1$NpECh#kYQ$S;cLZ; zb9rv}oNSbYe|5}tTz24F&L+`oa;PJOc-BE&l=DItiU(xdF;6lzR%70-WRHx3(1zHD z-7)*!)o=%p(%%bA!G>-AKv-OS+=K=>GL^tux55pxP9`wh8s-+{p}_`>&;rS4*q6qg zUprg}oxcRyh1kwlQGq6ZU-xD2Hb(IMo{OVNIK$9E8^QboPQRZ`w6TT78cC_Bc{_**m}CVzm(>=E{~^KWVkg+m(yCoFZ;~L zc0S6vJ0BHUfLex`goBz(_uGZqZCV%;V)26(M53;srI3(ZYrT4w%g+Vm?;oU$oqjo3 zYTt>zEJ@#J@IfrN1Jc}lup0jLfS&tZP)&??kKLA?o0kC%_#O{mt}$_*E7Hi`Dh<>{`8oJO0jA(ul9u9gUC$PG*OtNXZZin@F(fp;O<;57 zj&fT2>9Fv*&IshgR2Z^6*}Tc>a{#}g$n4w_MmEIrRVRKMEfHIJ@&}Avo|ZSPt+j9& z_`Gk>B;z;xzRRLBMW(8}+L@d4l{7P|QNeRESr0*twzBzq)3BVbRN(B{ zg>{!-A1+IhA4m-382RZP^?I^NanaVEE@+nc2Kl`1>Tkch11ix-)`!$%X|V}fsLHZt zX$Ba|i+8>h8rAE~*BlG*^`o{35li{QtCf2$y>#jm^2(9WY_DpLY7;3wK3X-6%1sBq<-rDwAPj-SIg4W$6~NCn;{ETJ~1|E4$OA=h5Rat#;1+0vJ_~! zjEdLQDJu8V3rpD9GTSeN8No(k@x#(0qaTj_Uo6=HjH9yPv^;rYKxFy9!tHNA=jWT; z&OU=?ek|+ku)+2v9D=Uz8%7O%EehUR?aWn^1=X>c5zyqi{o&+gmnXz41Qg?4Hhnq7 zQbQ18~<|Yvi+9e{}HAsvZ(C?~O zoh>UJF>x0W$Cv#HYc95$Z4;GjQD@lZLZKNF$Ztw@4UJj~8n%-ilFyB{Rz4jV(GxEd z$Ej+WS(y4+xsH*V+q>RFb{bTN=0>XP+z8v7a!DuKw|!2!#1K}K(S`RmeWT_172BK}Rp*#=8 zqq(}eX3a;2Ei2|{Z4Z;woZgCC7Boy;6-TXe-hJR4opoIP)mf(u&F;K4Hg6~ixMBjIt%*pk_8vJz>-%9Y>wRYeD@KI zf*~K^WDM2_Hsr12ou`Au5@Jzc|KQRZ2{!I=8L+0qfnvp8$+EdLBOu87W0_`eMMAfN z@l+{%#(17DtZs6ATLhf-y;#Dd2*-LxvJJwvufw+U=0>gD`H^chUikjlhoeDVqT$RmBHf-vtoQ8tB@?04knGN`xjnKKy~X{1cUx8MONcxPJk{;UK&{mQQ|RWL zW}+1(W)@D&hRF`>xT+;AJ#m*fm5sYu_qGwiw~;p4aZWjdT3Jw}r0&zi`PioDXhm$x+^72dJ(Fo?el1m8IBp zYc$H-uujq*Myrgrw*`c&fr1J}7I6$jTaW~?rEEjGE&=}|7NGx!g(X`Ql?HJehbGwE zw>FJ!<`Q7?rNt=Hro|K$cd)K;g*DY2Z6T59C%Ha%Ea@0rK7a@_a0^}~k?B}4>lQUS zX~qJ5XIpTan1kSU{V(9_mTUF)Wuap1!BI|~uIUgc;~`MiMJ>gNjJMc+{qjBIMt}N& zCTO|u!BnWXLa66xOLvXfUX#IEps2FcpEpqIWlzUcNu88l8=XuNbcz6ite2@Bx`cSN zCG~svssjyn?hxPpa)hEG>*;(8QubWD)cm?~ZCLsA@mB?;FShQ{AXiQsI6iLfg(uxx zq(jD!i*4-vul8XwD=d(rs?W%=go=HY`!-1|uLGI}1#Vff9$=KQy^8dM>b90e0fbmXE+W2Z;|GUysMs0XD95FwwtbM|HIkE4hQl-? z7<&8%_#uwjjLz~05XM4bvobyqEmObx(9AHEZY(K82673;-%$ov!OYV>YZ~cV_pu>n z7$VPqKnGRlh3N$&UEW29xd#k54YSJw@RE-J)S%QxuHcb()q3Q`{3a8>zZ>O7g3{y> zezDcnyPU_#XM)80`;gR1#EKf1$E^Z=LH8RLiFrn-);{1>{ z_d?B5R7qQ`^!l&dh6`md%<0SOREg`>(s!sUmi}Sb9{vsomDvYpdG6U=q%CZ_!yq6b z&5kl|2|Js}pP03|BW#M1fsU*FZpsJ;qLr(`PKti6>A_6fJ2*D{3!C^>X1_vbIP%#O zMGdy5?duTj{@)7^X=aQfn{di5+up2YEMJ!gtrV|hm)C+nB1=6F6~=Exg#3vA-9aV+ z3`!u#3+vA+9Vl03wp$uX61<#NnkJdP);EeA3Ne=x7ntZ+n5*RcZUJTg>fbZ^5mJKS z*jQ??)$UU9rKf)~!CdSn*BRtYwDdh8tv(GFJEKPbONT6PLRb3c6n(VV$`7>gh`MkrtfBDV(Eb>v zLj#W-VDDNY9VqOXicG#$GYoE&g$_n)v1Qb8RC%LaL%VoFcE)De33AOHWG#JP%CgS5 zISpwAHjF}~R|Veg4&Yp}0?E4_A}-Sx!Y400j%HU`9vlAM#wlO1rCX>U zuX$skUQK;V?%kKuoS(yP-SSwvGq&w{dY}AhS)Mn2I^R*f8YN6?3!5A?Ex8fD77d2KQrMc)z*5!M#*_W~&8Xdcd&VpA>iLzmVX=*xRUgPa9(Q9vTc_ndq4pm zW)Hv;?}i3_f0Gh)5)C3$%$^eNQ}dKPn2)!nC0{}$Uqb(&MxD#?Tg2aIijS5A687QO zSKJMFqy+|$!W|BJ@?fvCWn!XWa|`Gz6qv`!i-QvsW@YvVNCy-CJQ{zpGv!Et5ME&f zkCF+=64Eyfyj6{26qbnF=i?(bnUQecM8u>vc9H;*^?#QcTQp`XSu0%D;Q*^M`JCKz$qnfUb8fdgrf13kPi7Vh!j zZ1`E9uVlTS2ci*n__mVN_&vDs&m&{=p@>)Htz9Q?%~-II`&A_x-!S}{8OZKHR}#z^ zO#T(*d#vPRM)2nE=j9Up=xYbpRQt>NF`3T!Tu+5Z8nqlGfvyJ698AYf*Jo#Eryh$q zdTZZ(4!97*5knSbwK+tL33P(TX}!rClOu0zcUcgCJSz!NbGD&wm7_7IFJbgKNv2&xFAB#kA`vzJNRFW=behJ-n%ve}LDb z_8c|L%RDGR*3_Kq!sYotBRw6u46n|^krg%19VJ`4r4dA_8*0QLq|e-^jq4h)$ZI_d z&*`@K>pJlK*feD|V#_@eBKWSt2W4cgY;Pe!O?vq9&Gc3!`HeF#8cSd*#dGX~S#xq+H}0twi0!_26M1Pu7g8*q{Lx2tM6yPmGCml1KlE zd3?juTrA`^{n=EmjqFbN=D9dQWd0vE8tK4q_f0coqeo&9zehdz|IeJb-!bmrdw{IB zI~!(Sa4&6FjFFjPw}Of?hm()vzrpcNbaKjrWyg437B(g>u1e=Xm;gfpErruYiY4lU z`+EtJy`Ou|8(E^+lxOoSmoP_%Se0mG(Tq9y{32)0Tnb#RJI||C*h!W+m!cs&N=WtI zy;$KW=RUaB#>R%&>Bxo@hE*^=WhlJfy>Z1j-sCFgGAGQepoZ?b;|-DgW6rG7V5Jh9x|I3`SJW{|Ftj z{?>c6VqThV{=Wn6^JzG*U?lLo|+m`){)?{Lm2Gm0FFEi4pSo@i}F!4k7p(AA9)%OMh# zZ@ZCwS)q%0|K8T~Xrsn~w{EQJ@4BbvC(9)2m!e+DHQs`3 z8#A~1c9_sjH=|28lO8L7G>#nN&EJQ7v%aIql?fTR-f7s)8QiAT@cFDq7{<-TAudPP z=TeUIYIS1iC0jgZtqQBeK_mj0#oMzJ?jTP(cpa-y(|1^MOw%bPh*g=AtsASa8%)k^ zPfAGz5qgNL7VKWoKOcV|^LW!3Eveijz4aDWJvGy;vibbsfE(;0Mk4K`?)&VAebnTr z=&#C?t~za;CjsX7cNRblt6<81WZ5iaVvzLx<-erk3CmL*x98`XqtVP|h{-I0@BO=X z;9qZZ^T6=1ifDMK7dU7p6UeDxcbXnl_Fb&T@#!&i!#&8BY>K)k|XE2YtWFhYiL<%)DYYAsS(>PUR`f{5Lp=WC(et zs1h=?tdOrv#f5HNci}wD`!2UTo(k*D!7Xa&T^yF+TVK~C9dG*Q9L@8IyObzSW7znm zLT(hhFqzTR!XOd&EYCUlZ=&CdmO>5)xvxl&jw_2!O}zO3+$11v&ut@Q{rB*Unn%ZV zDLkIpKEt&$hMCt^Ps0AIu7dx-V!38L^pJgr<|B>#LDjaUr#x6~^+DkQS$wkK>GVjnya3I7S z@%-z>%BH=sS-6*iErd8N6zg=1$JBgk%6GWAl#iOXQ&j&4Mzy^eRkz%Gz3F~}gSLxH ziC45+$zPA+@(a%%HY;B4y#a42rt%0Dz6py}IenjVGEA(A0;BXD+y0_P9Z~U{d%wTv z(EU8qfm*Wn&V@*7*(@i3^2nhdLeA8$fpxa(ur-9L=JH-{?UBUI9uv#j{byUk{xi;B zAi}<8{coHYhftcEyZn>^o_H|DI;G;-?s;sjrpcCp81HNK`->wlzh7v&oD#PncO1-sX@7KGq!(w_WrA?ha_eLM%*aX8(-g? zznU5T)3~of%sqfuKNjqQar{F&~Jp0k3bI{j^5i@!H&7{R$;k&P);fi4}ZFipB0X1Y}qFz{N!vx%Svb{SVlHz> zh<)V&e+|jhZ{^9O$id^}O~&pYzbj6cPOq^4wnAb%yaxCR04g$sv8Jd5#~ino2vcb@ zb)o_(^+Ol{I33oqzQ1Nw;`GAlf7w{(PO>#kg{o(Y%IOcq=LB#*vFUkHd$FMX2lnSV zRGw{&7E)e(yc@d?s|7`eS?j;|#22pdP8S>e_}@~oP6yK!>KhvKl)x!)8P7aZjvD+L z+z&4Rj{V`bRr9*sA{g>9D(S5vqk?izBFxd5?gT6@H7HAy0sXP!=0qEIJ=aa#Uo#Lm zcj5i2&7CQPd9X`K^`0rMW*Jnk{lU`vaE&YkM$XXau#8_z2aTWBtJKyGUu%y)$S>nE zY*nBe7vC7JjgmH2c9?-7;lJt|2$HKsRN&ZQDUMVNInDPeC6(&0XbdU%_jy-2Ev`2c z7(Hh5NS*rQI~E~-1ZUjqQmI2a|v||0SeNy z9mf%y3ljc{$o%Pv!t461DC@mG)6S%;z9K-0ZN<%ccs~DmC`{|G3c`M9yl^*6k%7u) zKL8Y&(JKHiShr_K6mH$hMBQJ^MSu&A(gQgYJN@{Pf_7%H0K#VP&h;%WZJV{0`H`P? z_!z1Vjzv@+rURi|;yeD&%!=agbZX55xfUB#*xa{ccrp1ZW$AvhIlgA3TBicwnHa{L zNw!C$XU1iT-z(MU+sw_{o?)1hS?lMto%QNIvbo9J;rh{307&O_1@gy}catJ_?DB?_ zTL$)GgNpLYK}((H%E@;}WXXbpt2sGy;c5@E5?}r+-^#Q23YA~7HFb3)pJwGG`(3HO zm;QQ~Qo#a14?BEp41_;b?=mz)t=XDqv7Z{7`?%{&)ITI;^ZM@zgFCscX~+)!pMpS0 z_vm1=piUMl2ubG7Yy4nx=buxccV=7s==kJ9c*b84 zZ>a4?p+jXE77_6jrFAodI1|P9jJh`X6WCgHW?&U=(`fe|fI>8lfgNrY88P#ALRL~S z8~SQbW#0R3L)gk;c3Md@4_3GJOEq)l} zEjAPK(8>1u{k$jbEzo^}ZSH$T^$Nu{6hO+Z3LXE4UVT*Ho}G1`jH+zAGltQp7j0`x z&ey7u;R#y&0f%T;*Z;zyM}}fL(IByHko)*QvgcgYMwv00$Yh4ZggQCtxRlvKjrsZa zrNYR3W%TNAjrR|d*^EK+W62u~$qPwiP zM;t2au`MEk*wK`^JcE17;glFrwu5zZ@)e!I-IV;aR5e&1o05G@4e2;YEr{%v z(<7Qw#S~y-YdRm_Y=$vQSq!z*T>l>FQtiQ;}y32gDqrDosYHHwfhisg#a zmd-|TS+c+=+7mCz(xuv0bC7d23yUBBCtiJAKx4TT|1&86-uMd)6JlUv%kWJv zz7dVz`PZAdc>qntVKPDpjnF$6kiD{5bNZEv`YBzow>|O$_f{)`a_SiMNO!Vt@h+OI z)ag<{rORAqWB6r&%q$K+~}X1;I0u<3y>`*n?G7V!}ke+-zItY`+Ov+-rAa#XM7{ zwR7QPXAsX4We>z8=L{=!=LxeE#j>V6`umoL3pJPeV{J}3{2C%Z(c@(1j4Cl)z{Z5^vG=7Yq6*f%;Skpj^TS?@;=S>^@>s8-mYrSu}5`OL|^!CPo=eD zxqKdt=4Tn}uAq{(nxLY#D|@i5rvuyn7H#;O1Ngq`lbZoVgtS|`x`DKQbbv^a~3uasU*x0Hu8;aL)otg`l4xViDCDiBS zjbN!SS-cNY!P;I^Kmxon_ksP&pFbnd+cK}2p#tdWV8|9gIBgSlI?baVCY?2c<&+W3ybo#7Jhm~4lywByqoR_?II{R9Uoqx*S&n+cLTIN?EK%|ha zROF!L5O?xAzr8`rMqPD$yZAmw1vZ;CCF@ypUScG~Rd z(WANc;ic^l2mE`e)xB5RU(hTY_DG+u?_8jC3yzL9f$R)F)X<=DA8;YipD;_ zYFNCq$g?MfD%^V1ARUu${$zC5)?#UWw-nAo5=GBFXQC8<~ zTGhPIwMYg+LZ&UQO}V+>LMKUa^Qsxs(*(kFPojl)evjLseD$2rMlvt5ue!vgKe5WB zaBVLTph_C~8e3((5STu1i|cSy{9~e98Q`GL?zMe#|K2d!&2U*;>*dJULqXa%=AHMP zcoPuN5qLcyA1^}%NSI6Xyw=a<;P(*`sUaI&HSS7xpFNw;;Cf-PTe21nTe*AsycYbK z0~!!SDk7JZRR4xFjm-HuSr)gdi}cuG#oKOLUv8Z<1g=I!m|8Q7JAki!@Otl(*Gc+i zi#>6isB(PZ0H(4T1Rc`Vy>@Xx7e=}7-UMVUa|sS%b+Q(mV6ubCm&~7X+u8JC(!=q> z)tQM_$2jGi^=nmlS^@YDmbpm%@ouuNxQw0t59y4zgum{p4Xr_%%<#Kw4l+e%Ln zJWi^cANcr13?=iMLH&MXt3ajoS1{q$4prR;Pv0(j5D0n`!}V$I+qaLvc=7xHR2TEw z%rsnvYXhRP_FKsLGbq-0J>&)Qx23gZxz0;ERWPD*T_ej60wB_LOcKOTbqm+U?vuKT zf%nWI*;Xhr%N{5n8a@W(voAw-cXBL#6DSGelDd}=24oK==YbTpPon&+t#=kE!QPN? zD3h@p>a(iFx}yoTLn`glmoCrdt>oM z6Kn?IY;xZ?xO}2Ni}zG-@~+()yO93MzBbP@I4i)u2yl)0LQ3zACmrAeNyY`-tB zW3~?8MYILI$5$CkEQ&~d+8DX>6|nfx;G?*~Yo)1z zL}uyh4a2;5*Y-7yXFK#QrfFV>aHJ=pl16s2(AZ0P>o6gIf5`8?7GrqlS&E&?t^;vd z^~bSfOG1biH*aEalfA@elX6O1f`NYDe`0N4$01{z>A~AaJ=<46 znW#@ARl}5(EpqH1w+zz$ab6f1mU?pMS1t^(Aepw!hv%YY6 z>zpTP@Up7m+=W*s=PWo6Z>6QPrV_}gA^#kqh7xn(cvVVl=nTQr@0;@mhDkKXf+GT0 zH+5mZ#WV%ciMi{k$9`E)tDMqFsZ<6;T;o?(b}!*T2+^?SeRVPq=0P_vo64)9TPe_4 z7SD@cru0bu*&CAd%9b8_i0o(1Tq~uWv50)=W$xYLkU=F4>d-hX`XJI{V&i%X4Q|~7 zCscTfoh!wk^#JA}R_R@6oHa_b^>X}~*3%RJVCsUl3kP8=Ny|jUXt$px@!D5v0^?(% zaH18EJdl>7=Un*tAY9JR{S3(EOJi&fEyUrm2@VTB)olFN<%XTKu*l%l`FBqFvIEp zf1krU+)FMu|IpC9^S4n!%_wv4(bGrJGgjE|=@k7D<@WYvPeK=}l9b-(W~Q@3ao$~< zuVrkLz_@ibc>Eb-ujoGPeSuxOHkroq5(JI4jsJEdFvb_!aq|LCvA7Q@^0E*|X~#`8|&JXT(Nt_A;m8c8i6-p%p6AwO~xXMAX`c;K}Bx5P?zulO8DzOK|69q-(Nu^S;j9eO*u!&n%4deWyQ?s zBV&^Ltm|Xw5#l%P?*>0sOcVSScLmuJbH7z3T?@e~6Rs5(TJxIRbI$jKX3$bl^9T&x z3PBUhtp270*O2vnbB%Q9bef$z>hq*#wgHZpqv`t?DBZyl0jVwBE*;<^B3gjlg5db1 zJA&jDnH6^dko_zVMBN-sTd=SPDX|5-l&RF384BDNou0zZ1PTqF^mCJ!s_Lk*)7*u&*}PIq-W@jcTJ#w> zEYq3ot=j-JRQqUq4H|W>7T~S_4PV*f?d#eQB83Da>bUKnj&c;n9D|`UyF>aX2k9*0 zg6W&~5lZavpnJQTVWuMI(b%8o=r#Y){19Jz&XB4 zmcXoZ7X~M$0u1G3rqwaQ+M#wbo=3Y}+45|Hdriut`r1CL{f5r}mIR+Klh>fJgnPp< z4!_8Hfa>KD(my{PtWWIU>w8YpvJ2{b#azn{S+FK(S#t4mwspTZPZjhq^SNjQi?xG1sRJ7LGGhZ!PvT7*g44Jr$%C7+Ke$&#;XOy)Y?6dOe-0sVm=-610=) z4?7eC5J+y=GvbHvf)4HR(pODMV`M#n+HQ=@aI;T}l4vn3IYm#d|HJgtp$H%gA**k-{!7|B-e&dV;R2=- zI9tA@B&`%_0s2Ax5$geec$8_?dZF>w}p97CZo5WnGG0$uVy8j z7Zq%z#A3KRtG=av41Nr=810vhhM^80&z=4q%6FF{h8cQ^0lSNLNe4L&N#Y7|FN3?Y zj(&dI$QZs%dRYSw{odkd?-v8NjV@?Sm*5=vR*8O` zWPJLWvgt=tLq{*8EdTAGnXEqlxaNhL+ z%iSXkG@7&W3VFySxQkc{%R#l!dew(Fe3YU80s|6C;j|X*h4MyF=2+Ll$EUvHQaWI- zzLo7WHhn5(jKPns@h2oaNxcixO{DM+i6i^>M(T-8^bRJkxu`$>#q~5a@<^=ikEp-0S99uq?;5_JA5B| z+c?#x@&f1n?Zon(DR@% zsD=py#>A3waP&}Ib-IWss;P9&Z`T#UlzF{ajJ^H&_S@O`n=O0J{@*NswGvoKbos6{ z>EMH~F{S9Qs0;_C3SW0b{fF(<;=l1XXLw`;_g#xa%fx|N+Mr=|UT5Uqy?ZbvHPs?# z<@zLYFjmTYMIDjp)Z82fE#+zKc6C1?5OACy)dt9}!uaBk2kk^3jG4%f)QUJ0I8OVF zKee-PYYt{+U6fGpgc`cp7X&|`m^);C$f z3(v~b9XpdM)nvW*RN@Fnibtjp_)0&Kk`5zy-y?%Z!(oIdZO!!?#DjF`mbtFXB%ryG z%z+mQx9*_UfZC+#WYI{y4y1HpV)B91V-j&4m8EINB5KU&3*S!j^3;x>iMo4wQlIp? z-rCMueTqW9ivV9Vxkqh(QvGdl$WXG+NV(c$F}ajb@2d9{)kT1%#50N%Cru+dzVS$I zto(7cJ|SdExW{sx1)j0Az8TFWAlxKI$;l2_qBk6jB1-0&3>eJg$QSjFqEI<&%iZ&8 zMS;0czeSK7*km)VLk>R6=Ese$tQ-c-@>wHa-cOI#^wf7I3;&A^(wwy zXsZa}iT)>5!ybLW)v`ORJWAv`ulbT@OVskNQ*yh3Gs_x|?(kF3PuH%dP?L(rD zi8wEgtTc@psZ&*UFRbZO(zt6$A5FG6Koi;iiM->e?3kmISJt*i+D}zUJZZHw^hrQ! zEqY;b0fcg#2)|i3_01a^KOcTH{%mhI(fj;M@gso?FFtNHZWHDz1df_zCA}-l$RrFH z#vS5rgjL>wk|@W2{qtEG{xIU{(%(pO`&7}u7dT0+0$Vwk8_FP|AegxIP5cbMi>| zZc)Vm5wuD>XDDS3!pKt5>_)MWTQ36|P8l{(CPX<4W#Q*i*VY`QrutrmMLXOT)#`%o zD>V0(rYMy`6)8rEU&%wLFZ6o2C(n@JyPqgO9SgdOTq%6>O1F)s*=Wh&(lDOr9O7sLAc4u2d+$47NcP6M~y zGlN`z^ZDeX$QN(o%zNf#@li4Rrs_9L(4qBZp`qdeKJ*@kvUWTW!CpXwOrNR&c&!iMmB6rZc4?n0TEMwDpVpjEC>)?!IbxAow z06rlsl5n@I$nlmEGt+zQ>7aq=OxqCjlAU*kOten; zh^;QUDg(H-TKh4Qc1$JfP*4=O{JtjWc^eT4)5?!?fc-Wkcw!B%q5hVs&v#KcLAO&XDS8vSod?PS{Sa9=pnwrG;FJHW>!uD}^nrUmPu#f<1V7x~ruDAWW>c`vIs5S+pB zEg)z)O@wZy2_9zecN$XUm$GMDh0pae&l=$TTNFV{l(Eeibk z5YtbZiekZ)(Sj?Z;XetCbKlwonNEIA3QY-uT%Qp2W zWQZi^0ah3}8Q3o`pe=X9(}YH|ravV2hZqdBFQ6Xv^y(xyWC;{sq`)4wT)c;J>0*6P zDlz3hm_A`~CQpC7E`qToJ!zsg42N-~s!2?*2rCF@d<;bGoODg@Y; zzrcs%ptQw*c$;Z)rqXGK2&A6;)c5DqL1l(%P*YN;!Dcvic@V z*ZVvJGSoqdG3&pLE9`YL%sNGi|KTNrC$1>F!OGGrOKlIqlZDr+&p;m)JV~Dr%G>8A zszZHtgZ10?wKV;#Zn3IkCv(NkKgaIE!F>~GG=q-s-zyz-r4oUvh0JA*(Y|Lt{hp3{ zB|>diw7n4C<&_*+jF`ac;Yqzk$2B4aa=XNi-bi}QkpDjZ{wx+s~dv5 z?cP=;R*@6|;o`3TGeu*xkU>SDjYytjpvKznkHz2Vdp7A;WL@n@cK*6W=yObZIj>(V z;AfF^d560AaCC4iJvZX{`u=*N(>((Kp&gOVen3+^j2vd1;vR{0k?+uvyAduxtywb@ zlKT@GTI3-n(O$7iHOp^H7Zd?BM2mP+ZkHzwBh!kF~hLRAw^x9OVG zY`cA`nu}4JIzzHWW+YDbP7=Jg0qxo!fGyEnSPFhCeE$KL96@@b3S>{cj^3mU>E-sb z@3nC}0>*McyUnL``-lGvZ%jq@`3@4x}vC=76- zS1q{aKIGzY8;w3y+KK;U&$ETAmtIFX>2%+pk;Yf5TOwRQOlgMUR^ z@jR)5hDTEvlOGSS&Ek4Sg}H#&PN*=7`nEgZv>A5^reVL6f`hN#DykFva&-;mN-g>F z`v?mN_7AEn0)5Rd_An%LHxx!h0y>KvQ}|EXL}>^Z7)K6s)iFzd;Pb&8P-)Q_Hqi1e z%Ja(3R{@wh9RDPquJ*Oo4<6nE)44Yftv-R&%>_JVpx^9&uW-|A&2!0;PI#iu+0uWfFP4hJrI?4yQ$WY*-q*nQsO)*(b|GmOkPD44y|0 z56fwR+;WCjM~l|}TNHiHc!HaoyTy+|FN14f=RxGKC`@D+(6IJG%7$$X0)i?gkQ<`VCbg*r427crV?uNy}D5{KhxF<~!4p8VWR^*9X z>Og8Tg~%gh)@kq_4Ug_;zWdG~Mn|AnK0{(X2=|5qp&B&x1lXKhlK$Bj{CuoAVRFhy zsRO2FwK>+&Os}Qm#8t#ECdjnZbQmPBIT*M-)l30&575PSd42O~?SCwfl|FrL4Ul+G z`e`=oB|QE|VZ$5twYaEUQG7m*oH$#~3+vW`bQ(X1=q1of$Tx)Y<|w_$g1N>>=_%&Y zRiZd#NE~Fyxyo~x3AFuP7rXXGip||X|K0dWqDqYGg09`jKwDlNQ0koYy#-&rA|%?x zs)Awu_4%@v=0q1wG|Hp+7g=-z4hG|__Vm|N&~7*+Vdhi~3@F@6S`-*O#-N$Z8Ng@f z_+`u=gN2?Fox7p9>6VP!|CU!L`wnc*Cr8oj0d&x>OsrKRkCwfAH&DubSCGa1w~C(A z!p%>@iyWlb56z{@bb7eWJOX3qK9l;kUn9FN_k{HwN>SmX_81ae2=KA(brxb zC#;LFSH_g~G0+pgUSczQl2KW-k;;?%q+fs_f9ZUj+nb%`?%;?TV$8OaT`PG6zpAyi zbo~WheCDae278|v6^;|$P0){6?T)6aUZyZ`$r270#yD^ z^`sFdOi+L#eGZ@16k*QCUt@8AD2wLl>w7~?BZp1Xy7OCJ3o2#e;rHWv@H{T7!;%fi)r9CP&ZIbuq>Ix%%Efz&`JU7$2C z0j7*UDE}42@@6*L5z0v&c{Vb}JIWB#Jl`@RFj3zspteHzP&mYS0sIi47VB@mu>M5r zGdeD9Z8yOv|Gu7M*qeR6VF^I1nMwgWf<>l?&kr^vKqHd)>O}8&+|+ZP0y_Ty6x#w48xgWg zl1hRcjhXms$I-hTXqT*o^ZNf!Q`Z4b_4~z*q|6p7D|Hb<{W7mmh^~rUD_cXzy14dE zh>W^I#U&yuqwEp4Bt=HD_a?IU{-3Yb|9Sd7&+mD>_Z{aw=X1{ayytzty9sI^=xyr0 zMB;NC6bv2)LU!cFZA%b`x)^^2|X7wnU(x>(Erqh&rPk`Y;g7Q$LBSxwmR& z4n>o7WeaQ&)ce8!-w}3qBbL{Es|w+5EtVrqV=}m zf|j<9Qd8d3BS@BEiHSl8jcfy8x`aw*X(s4;bxQ7L2%$ZnSW9f9cT9>p;t3RHS52=) zsr;0cqxFojAr4A;z5A&@`DPSiXfk)G1%K7!w#bek7<)&2+?LDYSbmQvBc&f5o&SY^M`QnVMRfLttDag;lk48TlktJaRgz;TgT5M z5#IB2HwXype%ukRmZ@#KPGWWr*zWNo)munqoP)nGTx8OUiowTcN-f__O12%0u6bK< z=SR=PbPE!dLV*0HZZ_%RwkMx>Y0=ATjTa#?=jqk29N25oiaB~b)z1Mg7(vxX@#v3r z(YcxM!E7yY?aw0 z)hf@|Uk>s>;A-83@shr{NU``j{Msot28$0>gNvlA%jS!7Pdm?K!1qiYn!x`7lgG|M zPj&B13FDm@2X8;PtzoKs^j5bTJEHU>SJuCwEB3-E-}AUP$bEr?flvXP=1yVPIi>Jq zBug=XcUhXYKUYBQWw?!ROg8Ae>uMm&;+M8Cog11puI!C^HeTzo1B18jzNAXFgc~RU zRE%(A_!GQO_FBo%GPMmZyzLSMVvmdZ9;j5=kqg47TOtkb#hM@ppL62=Cl@4 zLBp5gV{$pt{QC5JsC|H?=G_r|{v$>}@yF|j^}pDuKpjX2T&EYE7RSqtz6JG0>5Z=R zOc;f#ZI`p%CHh!JUK$6&+&)A8^~ayQVwdNzvJoO*i(jU}F#}YOd&k|ju5Rj^QhFGz}AsL4ZadC&gOg=^vTe@y5?a>lNSGm|inu=kqgbeVUxRkW7!eVWolb#rcpw7k}TnU~&T zW);{wIy|Cd`hoOv+e4o>#)06lI{_sut}5?Fe}_t$9c~kShg!w44--O2O<&u)_{fc7 z+-yGaNYB;-O+SYeDC|92-lr#O@$D;`s7| zo-0>DoRYrvO$&kFU#s6#fqI^!lH+)y*CJI{AR9OEtL9&6ZOj&OvVMfodtD#>7!#SX z+!8fkrsbYd9{vpvl+a?PH!9E5SK4D(%qRwq$@q&dod%K9ZDD91PtMU;h zukIzU^34fxQ|p!vO$#KrT=ZgQ!+&##8hb@;1Ek!Ot8mR#=&)xdWMktl4L-#)9S=oU z?%#@d^wf+v=mM$%l*4O;`~wv+BOVOjn(kd5e|;Gw>tofTJPr}t+1K)~E7$t?4I5FI z*!I%!-)sD4^Dy$Rb1xVFslF~wTBvPBDuH*?q4fjUrOyL}c{vcHAFQPak{DQhD6%?% zdA`w%s*O2k0NCH6b7tb%n|h0#`{c)<4APQaa=}b`xra8!VpzR3#v^HKxd+Y=&ZO%+ zymJ)yHGjgtVmG}8a3&ey=S~2czw!{j7|wg8F)@qh?&6###9rx2y|J#Q1JoNaxGFvf zT_`8^uzXwqM2;Lvats$y!b(p>RvY8;DB+yPbFqyWHU{7YiF`hh+V=DQfbr}Llp@9r z{WMdoxAh(!K<+pK7)=CZ@tRk+hU@4IKPab@#0m$y`HiNX05#2SblDaa_4ZYJ!q-sEB^Sz$$XhgK+|>Bx}Lco%}4^(DlPUzk5jRMgklL zX2DxFa6t+wTW5Ub{(94m-I#dKN`{W=9tz_%nsMJ zz5RGYiWT&Z#4*Acx)4@ta$vn};|#ZHSttkT*qc zu9fhpK1~6MSgd_C2MWQvS#;FURz^>vtl2YQM#&~S_Td|*6r-O zwWZ*qM4xG|$83g>OuzdC-A_4i<4e;H-o^OoG$f&KNcBbIY0{wJzX|SQO_Uz}0w)u| zQ|4|I4C`*`r6FM)!s>w3Bv9?PUghhYztZ<>6tIsDf@k>DUY5IG1`(SQ@1gg>?S0^X zngEhtt7p?*jTYBLcD3>)&?$E@OcH@mQjo(Z@abt$iH_`@(}mV;PE`)_z#Kk#Waial z4dFp?^90C8Bjb9pevOwAeC)h+UyavgO@xs-p4R_GJg%idJwOkDcAA?VqA8dC!anac z_kt?L5%5V4Rhg#?JAB|?L%AL>oS~Cv9tbkIzk&z^xt@evYv$wQQ#QY5w8)xx5~+f1 z%_^U4J>aEc{wU$eT4$McXKV6F85zTNo%ZV5I!#B%e7hX`C&Y-CP{B7mbZGlIQE#AL zveF2C1QpQs91)D~W}7?FD^TioHv1r$`go(mwv+FcW6pO@ix-hyaI@~$ZMX*sko`kF zv0|;Rn7UnczQz3~+cwiOFJJRB$^=b6Bd`0~;MVHvy6@U)$D}<$#_}5350AQ4TL0w! zbil3R-eLG?+I!}U7u^q1iN0#PiOJ*fqEoE}Y2YTaYxvC3pW zI+V#3sej@t@oZF9*~Z=3ypL=n?xF!cVJZj#Auy^u@ff?_sjT@E<)f{&>zPmz$I> z1{)|f^s(Zdf#qJQ{wUu0_0;XE&h0Iuu|v%SKU(IQIIoeZ;A72^aN}^U#-iRSx0-WQ zQddyVu$MWjj9YDk3a2o}fFVS-%|CkAZqoF*;Rs>wdR$1$;Om-tdLkEw#w<&IxqpaO zWtR3a_iKPxeOdEUY9@!!7qJ{A8~N#D9aeb_N2*=+7K-2%%Ipf)LQz4SyLtSl9-;QW zc>Owf{*(Us`bAeimB&v4bo0$CpZ4}#dYPg&b_jz#RU4*AV+fx&Pz+gz2APmY|@kkoeWmNzOWnc|k5 z(;<&*vXTKVnVp`Z*t*dxf4=^!C?}tY+Q$ zkWpZKE=H(LF$iT;EQ+!IsRhuzucB6`P3plMs%K;;OtWQrc6}kG$Dcr9bO#=&huukM z&u1WV@x2gjF${lLWiYb$3Wi^;Go;IhmACf_yqP+7X!y+%5sj-gXjNBJ1AW4tFE5^w zi+e^iQUMuE$Dg3_sb~(nl;A9sE&j;g`Y~#+U43rRLZrZTk6H=G({F0=*k>e53|M32iuEzog-azku z70s$JkO^sfm>c8r6455{ABw#u0ue7RTbBjHywBqOQGDK%VbV`&tyl7R&2r@!Bu0+q z_c~mM4P3O`tQG4EzFf~hj8E#JVqjobyTq0mS+7aDwIhU^lMZgU{ty`qLuZS=+wx*;T`i|5X$y16YacrC zk%Ycr04m7BJC1UzpMV+;x#31whDVJVX$%p2>3g&AR`1q1{JUklU^fBvp0 zrE8v~38C6z_@~B1o$v-e!ua)z7pYpi9Hb|u9QF_sk}{POoOQ<@$PME1VhAT=sn`w` z%M%i9(2K3fIh74Qp#9D9*4?drX|uOd%o>j2gHWj)NRMrN;yJyKWf_SH$Fqm#19#JJ zy36t388zG#5Np5rz2S)NIJZ09H)Y#GU2@DJ**z;{q8MzCSwl8?Yp?ym%>s^nu+{8i zEgtkdSE4V$tv$KqON4Q?(dH6dy}Ejv-TM1@bq$5x)@L7_IcS3`B?L7|YR6T@2K;14 z%U`Y~Us6espl8QEV9V6%+Dl^H5%ux3;KKeM+XdF2&fHAl));Z5=T3&nou0paq7=JP z{gwJhSzQP8d>+lR4E{T$;kTojCUFK;-qmT!bo+d#xIjLW-6IJrgB#`=_{ z_#z>Z8*sJAc1~i=x>**qPIq5cbI5F{7D2<#QOcOn+Uxc`UMtPy{2tpqAY0;Kga)dv zbi>j{Ali#VCBgX$^f-dcJ3u(;NiHFP4}equ+}ouc?$>%@N3`CLTYL(Ra}=LM=Q9FY zr11iJ#MrjC>*Ff2%-d3KjIl*{$4gmNh#vfOZO29$`6UM5=Cp5*QOcW+b@othT-CYA zpe-1RDVx^t(SxR4Eu#T&k(9psGrT(87= zNk>Nq26z-NWmBU$nB`DPplSLM6)? zwLhswU#b#93V-IO18QIP!^%jl-cy%Y*;TJL6o05qDsZ4EUOvcgo3%Og8>v@L=@MbVp!w?2 z`Dkiulb4>X@cUdkqV~ks`{oCKlCo4Aq4*%EaxwHxU6J_<kA&Q^WiJf>WPHbw^s$Mz3>$4?5pz) ze7gB8-WBpnhfV~f>poGK^(FbmOM!ccoSU-?m7I{UE_8}vB#)xt6BZtAdRX5VB$YW! z{7TRmYUzF<&bTpqV@Y=Hyv@5;_r7}&^PbIp^|d^MHy%5bdOM@!g3XlIl#^v~<(+u- zTuV;!6YiOs-7{yCJDkL3%*OU$2%eu?q!@P0zQrS?fe(u@?@6PAM+2xqLmm_a!b-H% z)ZUMs4I7M2p1M`bVFA+8(gi18^kYj;VuM8qbX&Pj=%u3Fa`>{duDF*V#gcM@1S>l6 zx}<*dTT~DW`8wG)P4{t3Bcsl(NzrHL2Fdd~ZcHFUjeSezU6x(n=TR`uiM~kC2p|}C zKLY`>*|*q=n6(|lhvrtp@sh->cKJ+^HdZ=yXH)9>2cm^vzD@fNAL`lG4#>%YPIwAq z`JjSiDHJK}_~>^qsdP!naQQ3E8&p=vm{N%Su8VPDdCw zUHCo342AKb8WZ{KZ{F3v1NaB5Egbw-(l(t!St>8@Id6Mmk<_0Sic!3JLd^iqPn+uBnlnB%Cc8SV~V#%LI+Zq*2!D<@M!WuDjilUT*r)vjmG^5+?2J zWvEiZMPC2~NciqnA=9RV0!r&J9&u9hPt7DIDj^Z=}2q()Z3uO=#lr@<- z9p}c~{0gqW+D)8rvg><8y>5-c@XKj7YqGg?m~BmmBumb;`3Ca8Y`|dOnf1JtM1V~x z#!drNz%01U3FUM(PN7POT|RlN%42UZxbmC^t|VB|6g%}fRnEx7gyax^$<#hyYD0mJZhqW?dPLNw0rtwVoeupV)_lV4lmPsSB*< zz{hIf5akayl_7a5ZFNbB9P$?c-+Tz2@C1z17Zub??nupi9|7XzCs9#3>ppICV>RE8 zY6m9O3 zXVn`iFkKoM%~={!m+rs-9U>2i%%z`Uv1?txpxzY+)ICNuCoGDs9vMu&Iwa26t%8Ky zFo+g>I{=BYs|=slWy1{km^+tDMNcRrhfsOr?1xG$Mu_W8h%m(aeo>Dby=QKLF$}qML!h@?WMR8h}v2U(}H5OSn zUY~Lqml5l}iR{IDvv0-REFtgiBYsNo2QwOeY1LUU+)st9q=rntH2BaLG1vX6$MIeD)4l z9IBa6rnfZs>C2$=kYCl2;_qTI_6oX~XzMp%i>qp(=*`1NMHVyyl{*asrYc?vtD1K1 z?_A$j?w1q`9FPT_(uBo=P6_)Mc&o~TsplrRZd$TW5p88n4L!v)L(=6(FD<5liBg72 zK1dZ-xz*r^>>R53UfMYS5*p9R;nHu5KriU~?ENAQ+Jx!{gLRTV0b3#wA!}A_Xr(kK zi^VHXSG<<(dh%ErcC=L2wt!pB{npq6>LAv`1Lhh^7EH~ny**Ry7| z)kxv{$W{2QL#A5OgF!Es1B^1;dsvscPvS$h>g-AT<4-6PD>RQ`4yjTp?&z0^!+1v^ zD{t5>NItGx!KYH;w+V1X8i|Uo#M+h@e0h>cq5bUzxo>`F5VRW%Z1t@7sp7bTApr)hwMIf#eTry$TDgA8k-m9(;CWMM3y*3Bqz}7Td zUKy}5p!=^a$=v2ty>1>+x;$mMRv8WXnR17}hxpBvSgD-u&y(iuuQbQlQin`>H(10C z?WC8(;y!%v>j}Q(XY+X`9znX^F|8FDiZvd!jpYU|yFwbF@H;i$7*b}<{5*SRq+KB) zaU%!UFULXrFJeL%#xETob>%+?A>(LvIHTz@<#NJ~(+Kjeh&c2~SNfp;bl%yD<*vYA zpksbyD{52tmhd|tH=DSR_f~1;MlT5@LN08jWLf_>IpmenG)KIB?)V6~JVbo__y=}u znRDlPYPBd-DWbQV>KzJotNWD+bFB#%A36`jo9jFEicf}7ft#c_5K6bgrCgU z9YbN#`!;o^&rHp|>5{glupeDD_YJZB@ceS5c5;%4@w4R=NU4y$pi#YgmA+nfQ|VKTmuUTFe>+6N z7cf~b5cD%g?1zTpK=J$;Cqn6pL{+8M8{)kI1t1;l`igRB%QxH-V(OK2? zfhEpkKU#_V6_{r?V_Ueqs?5Dm1GImgTDLPrn+*84c=-hnki*IFJIfS2*}=V>0qIF> znW)rk6T@}t<&d}!luq4MZqs!P#FxjBC>K7Rpyb$Nx(kf_vuSLKA#7SrR$6h83~NRd zYnoW^qd2R#GJ?7VbVP2xY)Kn$mGRnd%P&?acGF$?K`wlDYc=W|jSnO)~x z^jt~i$FMT)k+ywZj265bidJkI!f0U^>K}?2mbu@i<)l)I7N7}rhp|e1F z?M6}o%u_X| z)f^`5BS<*8MEldFuKvLMb)H%=G7fV8Q>%ZbQuuB&uE3=)bG>l7?#u1o4ec?u;WuKF z9jD#1h(NDha$Wdw1g*5j93a3{0&eV^d7cV>yyKaQfz;0b{_J=Ly3qK>f>$@seE2+f zs!DB~cw92awzT?G%-3*6+4l&X@bam`M@_!j;JlE@aa9Chn+wr+!g#Bk@hB?Div`3~ zThB4C53{4ZLoso$qFEdXjh9vY;di+FlhW!2ymPiAzA_Q=T))mY*k2lsx|hirh~)OsHpiB2M1Bj z%QC=%LLLkV`O+hqK_uv?-xfEf5k43-bBm*B`Npf@@~Eg-uQT}2xsL#sia(_Y{ce+2 z)>YW$Mo-4P3_n>WgufpdR-sA$Ik7#H#OV{dU9;6{>U9d?YMx8C&;SvcrZnH^a&9@m z)aA|^-5nLL=i-L5^mIvym%Adi^cY|C_H98p=lv_F^lSt%ofA!a0TH#muZDxQ^Iash zM`6-fwmk)E)Wf!YOkdUa70I5f*|A2*nu-c9CAW5$N$h3>QO-8g4{hM#?QX4CwR%o*SI>8~`zMBS!R6MHe%rl>7n z>IR#Mt=|wxKry{QsMxtUqdOxD$X2~(1-{$NK`HwvlDWRMpyS9I4cy&2F!Ms<^=36$gFh)U8cm)%ugA39xtrBhM{vKryznu}|NhRjuo*Z9N+w zo_i0S)iXQ+@4k!S?17?XLSt5cxENnMP-!n0U{)!i&-4`5&Qi$kHI2fosnL!I_a(`` z`wYJ~223tpsbaZah`TX%%0mgPdQ9AzY%`yOr05|&NB#vF)G4R;StT^S4UNy8_1HaK z?#d{V)aOp1~Y?An)ST7?D z9=krvND4pIXU?Ay|0La%XINJPr<$C%$M7(J+G!)4xOV%o-Ib9bRQbGa*eVjZ5Q zRtf9rWlM2=v@ot>qG>WF!W8B7B}B^xM4vV*Ktl!LkT8`BO*a}IWR5XSR`N3tWZ zU_OpSyWZ)BBH!c`m{H>N%8GB;(|1F<{lqSZ4{p+%5rT^SK;&SUiUfpmcxt&m>lB^U%DlOZG9endD}ZLo;ZIL|WY zw&#^UoqF^(idXI}cDH|BwPUa!{mM;@Ce+owYgue-K6zKcM3YAL$At=xMnpWJn=Il+MzaAP9(GH4IK=KN^w=w|!0m$YTA;l`ap?uwQwPS4zx z=UgUJt*!KYv@A{C8G8lz`OC@-Q(gx@;1@`J9c0##&@TQdh1eb*AnnO17|G0q(r>p`ypOd zZuads5Tf?Cng(dAQ~q1~v>df{{bkBy$|oRB4HUD`by6w5r?qvjQ8}M=os&{#5yX1m zQq(GJg4G^ov6R6zt<}Xm1%->gyW_oF8mm_h9408t=ETcuxUpphDL~vwR!*geu>BZV zFaebsT1({!sr{D*t~3J%?TZkPu~IBkb_V=ki?7s)%f|AAARobrOCGv0@Dsb8gtBK z>pW`b&fp(>uq))h@k~T-Zx`*)eg7J~#TqZeK^q-=!VC<7c=}ya6pr+N1;{UHL@vdv zc1{rgU{2m;jLZ)LYZ1$qsoLQTC-@8KqXbPlBwF3;*!<8d6d2yXb&R zR~*|n%wofoVgswZ>>Vx-X#A^1P>ZGUC7@>RGpKFNevByN4jeEd8@&&F#qTXn+NPjn z%UF;MLtf_(b6UGVbc)#BgdSpoE5Bb{#n4oN&Z4xJ}k4Oq7vHaTxs!?0x7cV0sqbedi zu?H&EeaJ~t|M%BhY}xV$D&qne)cR+%d~~g!iF8sqA09jSSH@2Y?s}gE`s^hB0Zmv% zgw`bxGSw7${@%Yru9o7PnMVcj`ZK8An1epJ9){r=PB?v3|D#3RGQ08}a~soUK1OKi z0+iF}Kky3uBjToadoAM>Yi^91 zIcLZk(EoPH@G8ZUYJ#)%*ghs|5Q1i;!t51edpo5I+`o1Klhl8}SXD`&nMYMWwFOc; zRy*FTwST7G{LGJ}hB*`lhBz>YOVWiPKVm4>CC?4vq<7|t%~)q^lMWnEk`G9ca7jPk zoK~qMw~TU9(D=PZjdMM_cT4D|3b_m@JMe_xVWi5WJc_Vozs-yg<;@ORF8I=*=!%GO z4W3#CDjo_!gz@;*M5|h!Bm<{z9B75gdOfN%6*!cZ$lhNhYWQaa31)IrN-0U*)H3G* z<;COSchbGzkjnnaN%qGrW1BeBq_q)Tk}E7hiBg-4{@(zRKQ0<8fPF)T+X#zvjl$$? zdb@dt{_CLEju!_Q0^v@Ih@?IrgnE-?S15M>Tg4ep2}sN);P1H+0Swp7;TVrOn+dl= z-S4b|-*%eJmo4K7BdB{HfDLCK&x?Qi6!A3Kr<;XS?9sjXj}iASCpc4NOU`Khl`%h; zHl?1VE?*oh&*en;9X+x^ANIdkhTXqTBY_GWD3J@e)H@s~FdTxQq2sPPs=FUrehU$+ z=6bO0>o?`q>Vw+VmyuAh=)1Pyzb+m-A3mJ7vd`y96wI#_bgF`+NUHfOfK-woMIE^# zJ{MaC6PyE0)dCR){Ds>@iUpx;uLG6eVG1=B{mN8a;dcTk%gHojwC@6!{2dIIo!$F z!WCvS;^h-NhHyy<1kkC+B_76_e}_ps;k9cCJYWXWi2x(}vF29*_>^K4hRFHEFU8HX z;2*#H_HIRPwR0!%4>Y1S?v(|B+!@HNsnLJ! zGcf|sg1ZeM1yUVz$=XfC*87&n?;etkxAx~{SMJCx2xUH) z%CHC4^j*8~|GctnKXYFqs1F1C@n&8~iJx3~p0V4Lij7udSKXg|ns%j?5D6UMl@GYY zC83{+0s$(LYDunt#k2SN9({(GXocCBhBMfc4BGrUurxA>BND7Bbbod-75|Qm4Lr0F z^b!x-Fa#UrWLIBy^za{e#bTaO#?b0NR+zm<62uzf3JKmwFvPH1i0V1@pUG%!#G;l@ zr5AwStpd-r<`0&+N1yuVfxo?|tsR!&3mnixT72$T)`b@Aux2ipY@|HG*CmsclciCP{EC=Z`>pOC-CT20G`W5QiPTvO;{nuv;sTmk?;T^nQJp0UFc zO22dmE3r(;3+}HT^bgL930i94oVc78mUkVa`MU>Or4(#Y3bWy`tegEf?q&i=Z?`^8 zFx?-GNmcP6i=hezK)Nw@IQ1z^Iqy{X9qPv=QIoDdaAdPHR&(Ym$$=ycR1ga091L?t z!<>gn?@6oYJ4uqi=0nix*63RSiUv@e{|>lk5OQaH)er~Wv!#NoNUI3b+Dfl6A6f=k?hG-*lzX7so-GTX|(2CCMc_qHV! z?Nn(f@{7Vq(lv?g{~2rBO}C6OUI_X?I@_-gCq%g350Wv1u&KixWN;Br~5=+$p2Y;>eF)+F`#0IJ?M(TP^w@M zqBsK$!KO@OKXV8yTm~Cp{B4~xcUV&4~KhPG|WwopIZ%55hR3sZ82%|mE z;DZx8K*g8>5gYa==Ox$sE1mIbQ}{gaIOql|S`j-5O}sv9gU2y)*~BwNyj^WoW|zqeJ{g}jh$#R~KTwj)gsM6ee`z)b1~JyZW9>mSKY zWMKq1&*t#>Tc~Ev0D;u|u=yv9h5Hmv?6dP3 ze%nVPVR=991P+GFf#GNnQQ3kza^TKoOI>67V~R<`^nI>dNtr{6ugQJve`)sOE4w(ri5vEDU@ih?V~LPlICyt|3At|Z2l*R=F8e6?^inWFFnAGZR|oCh z!Co(3N8iji@<(E_mNGLEMQ_HD1AE%86RGzB!qS{zkGP8VTR0tK(EA-&7?YnSc3pRX z5QdX_>aj)wNR0|67fq1z%VTZe{=H3DKAk-q98Y&$0i5^EmLv?}xcQLtkRuIIT@UgE z8qQe$@{w3I-CbXgIlaAW2bw{-e5tVjhOL%@B#nXYnE1_*T^)YE(@cIdQBuy(r!+Uv zGhSR6YV#PVhl^nN9RcsF-jmE;o%^;Yf2sBwUmV$Y?^M!Dz!BC$B|_vwqm2lSYhZQk z+4R|y1FbDLe&=R$a`ZD4Me%p}XF#85D|j%CL4Xz-+04CI+$}raH~9t|wk{1PcQ7|` zZGJxpD1Q7*oHlprVVEZWQ84!1hn1~A9}TMi^lR)&ll?O+k+Es6pn4Z?gria&0mP7i zMNe_c<@#lnTUIn0yFz}o)wSg$3wz9(#-W<9vPqIAXe5IyBklumQqggV-?pO1GyKkj zbFa+%$Wn$8Skt!#Qu#4S;J>jL@Cwb|Tj$FwdtC?T-|T21c60r(GxO8EU&*#0FpbH^ z5DtY_M4-rFo^)-&Nw->FogaLmwljL_;mz=_^P={%1+9dWnR}yAm{sr*gh&WSS;;2e zEGTHnmcDzj)2r^8c^{VRXlyMgnpPVM18Jl-AvfkfbFq<5`Icg5w+lN0%5CC3^=`8F zO5ZBjFAa3)R|y?zVZrQpo!s7glKjtezPS8bni@vfKG8nzK1nem6W%4tEphe@SN0m}Y^;R=jk_xY>R&*iFb?2hYrI8Qm!39LU#GMY z-PtIt%qrUo>t&_1C?9PgLqyCXP!an;RcH|Ig>oVr|5^7x%RHL)owN?S_xi5VF9p=l z_;tZrcw#o}0AD@msj1zGmX7mu`1MZ~-;HnVNQ^1+B1wu=?)`J1)r%sF;Ktk>gEJ>2 zat^>usGxJb`As02CdSV@yb#$Dh}_f4Mz!&htZlG&!<5sQM#SkQ9tZ50)LBYl3TMqf zN~Ii*h}hi3{qtL;)Kf*BYc6+{2|>ZIX%Ub*2~u}ZTKTk`j~;fmVn%5p)6fVWq2wgz ze8igQIqsl^L^hZRlpit&B=_%p)b(Jo_JW1Z32pmh$DI-;stju;mbH%|^U=LH?{nyB sL2xTKXZ;Py-3SqsG3|`O_OE(nsA_ZQWc}=ehuz`J3@Qqla>n=m2N= Date: Tue, 7 Jan 2025 10:40:14 -0700 Subject: [PATCH 003/118] Update README.md with new logo --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d5c25d6..5f7d02d 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ Welcome to the PUDU (Protocol Unified Design Unit) repository, our Python package for liquid handling robot control on Synthetic Biology workflows. -PUDU logo -PUDU night logo +PUDU logo +PUDU night logo ## *The art of automated liquid handling* From 792f1ebb6d1777540e5e776d46a0839c0714fa2c Mon Sep 17 00:00:00 2001 From: Gonza10V Date: Thu, 15 May 2025 12:02:03 -0600 Subject: [PATCH 004/118] new sbol2assembly function and script --- scripts/run_sbol2assembly_libre.py | 261 +++++++++++++++++++++++++++++ src/pudu/assembly.py | 132 ++++++++++++++- 2 files changed, 392 insertions(+), 1 deletion(-) create mode 100644 scripts/run_sbol2assembly_libre.py diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py new file mode 100644 index 0000000..cb63bb9 --- /dev/null +++ b/scripts/run_sbol2assembly_libre.py @@ -0,0 +1,261 @@ +from opentrons import protocol_api +from typing import List, Dict, Union +from fnmatch import fnmatch +from itertools import product + +# utils + + +plate_96_wells = [ +'A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11','A12', +'B1','B2','B3','B4','B5','B6','B7','B8','B9','B10','B11','B12', +'C1','C2','C3','C4','C5','C6','C7','C8','C9','C10','C11','C12', +'D1','D2','D3','D4','D5','D6','D7','D8','D9','D10','D11','D12', +'E1','E2','E3','E4','E5','E6','E7','E8','E9','E10','E11','E12', +'F1','F2','F3','F4','F5','F6','F7','F8','F9','F10','F11','F12', +'G1','G2','G3','G4','G5','G6','G7','G8','G9','G10','G11','G12', +'H1','H2','H3','H4','H5','H6','H7','H8','H9','H10','H11','H12' +] + +thermo_wells = plate_96_wells + +def liquid_transfer(pipette, volume, source, destination, asp_rate:float=0.5, disp_rate:float=1.0, blow_out:bool=True, touch_tip:bool=False, mix_before:float=0.0, mix_after:float=0.0, mix_reps:int=3, new_tip:bool=True, drop_tip:bool=True): + if new_tip: + pipette.pick_up_tip() + if mix_before > 0: + pipette.mix(mix_reps, mix_before, source) + pipette.aspirate(volume, source, rate=asp_rate) + pipette.dispense(volume, destination, rate=disp_rate) + if mix_after > 0: + pipette.mix(mix_reps, mix_after, destination) + if blow_out: + pipette.blow_out() + if touch_tip: + pipette.touch_tip() + if drop_tip: + pipette.drop_tip() + +temp_wells = [ +'A1','A2','A3','A4','A5','A6', +'B1','B2','B3','B4','B5','B6', +'C1','C2','C3','C4','C5','C6', +'D1','D2','D3','D4','D5','D6' +] + +class DNA_assembly(): + ''' + Creates a protocol for automated DNA assembly. + + Attributes + ---------- + volume_total_reaction : float + The total volume of the reaction mix in microliters. By default, 20 microliters. + volume_part : float + The volume of each part in microliters. By default, 2 microliters. + volume_restriction_enzyme : float + The volume of the restriction enzyme in microliters. By default, 2 microliters. + volume_t4_dna_ligase : float + The volume of T4 DNA Ligase in microliters. By default, 4 microliters. + volume_t4_dna_ligase_buffer : float + The volume of T4 DNA Ligase Buffer in microliters. By default, 2 microliters. + replicates : int + The number of replicates of the assembly reaction. By default, 2. + thermocycler_starting_well : int + The starting well of the thermocycler module. By default, 0. + thermocycler_labware : str + The labware type of the thermocycler module. By default, 'nest_96_wellplate_100ul_pcr_full_skirt'. + thermocycler_slots : list + The slots of the thermocycler module. By default, [7, 8, 10, 11]. + temperature_module_labware : str + The labware type of the temperature module. By default, 'opentrons_24_aluminumblock_nest_1.5ml_snapcap'. + temperature_module_slot : int + The slot of the temperature module. By default, 1. + tiprack_labware : str + The labware type of the tiprack. By default, 'opentrons_96_tiprack_20ul'. + tiprack_slot : int + The slot of the tiprack. By default, 9. + pipette_type : str + The type of pipette. By default, 'p20_single_gen2'. + pipette_mount : str + The mount of the pipette. By default, 'left'. + aspiration_rate : float + The rate of aspiration in microliters per second. By default, 0.5 microliters per second. + dispense_rate : float + The rate of dispense in microliters per second. By default, 1 microliter per second. + ''' + def __init__(self, + volume_total_reaction:float = 20, + volume_part:float = 2, + volume_restriction_enzyme:float = 2, + volume_t4_dna_ligase:float = 4, + volume_t4_dna_ligase_buffer:float = 2, + replicates:int=1, + thermocycler_starting_well:int = 0, + thermocycler_labware:str = 'nest_96_wellplate_100ul_pcr_full_skirt', + temperature_module_labware:str = 'opentrons_24_aluminumblock_nest_1.5ml_snapcap', + temperature_module_position:int = 1, + tiprack_labware:str = 'opentrons_96_tiprack_20ul', + tiprack_position:int = 9, + pipette:str = 'p20_single_gen2', + pipette_position:str = 'left', + aspiration_rate:float=0.5, + dispense_rate:float=1,): + + self.volume_total_reaction = volume_total_reaction + self.volume_part = volume_part + self.volume_restriction_enzyme = volume_restriction_enzyme + self.volume_t4_dna_ligase = volume_t4_dna_ligase + self.volume_t4_dna_ligase_buffer = volume_t4_dna_ligase_buffer + self.replicates = replicates + self.thermocycler_starting_well = thermocycler_starting_well + self.thermocycler_labware = thermocycler_labware + self.temperature_module_labware = temperature_module_labware + self.temperature_module_position = temperature_module_position + self.tiprack_labware = tiprack_labware + self.tiprack_position = tiprack_position + self.pipette = pipette + self.pipette_position = pipette_position + self.aspiration_rate = aspiration_rate + self.dispense_rate = dispense_rate + +class sbol2assembly(DNA_assembly): + ''' + Creates a protocol from a dictionaty for the automated assembly. + + ''' + def __init__(self, assemblies:List[Dict], + *args, **kwargs): + super().__init__(*args, **kwargs) + + self.assemblies = assemblies + self.dict_of_parts_in_temp_mod_position = {} + self.dict_of_parts_in_thermocycler = {} + self.assembly_plan = None + self.parts_set = set() + self.backbone_set = set() + self.restriction_enzyme = assembly["RestrictionEnzyme"] #TODO generalize for multiple restriction enzymes + self.combined_set = set() + self.has_odd = False + self.has_even = False + self.odd_combinations = [] + self.even_combinations = [] + + # add parts to a set + for assembly in self.assemblies: + #part parts + for part in assembly["PartsList"]: + self.parts_set.add(part) + #backbone parts + self.backbone_set.add(assembly["Backbone"]) + #1 enzyme + #TODO: add here to generalize restriction enzymes #self.restriction_enzyme_set.add(assembly["RestrictionEnzyme"]) + + self.combined_set = self.parts_set.union(self.backbone_set) + + max_parts = 19 #TODO check if this olds, 20 + if len(self.combined_set) > max_parts: + raise ValueError(f'This protocol only supports assemblies with up to {max_parts} parts. Number of parts in the protocol is {len(self.parts_set)}. Printing parts set:{self.parts_set}') + thermocyler_available_wells = 96 - self.thermocycler_starting_well + thermocycler_wells_needed = (len(self.odd_combinations) + len(self.even_combinations))*self.replicates + if thermocycler_wells_needed > thermocyler_available_wells: + raise ValueError(f'According to your setup this protocol only supports assemblies with up to {thermocyler_available_wells} combinations. Number of combinations in the protocol is {thermocycler_wells_needed}.') + + def run(self, protocol: protocol_api.ProtocolContext): + #Labware + #Load temperature module + tem_mod = protocol.load_module('temperature module', f'{self.temperature_module_position}') #CV: Previously was '3', but the cord was not long enough + tem_mod_block = tem_mod.load_labware(self.temperature_module_labware) + #Load the thermocycler module, its default location is on slots 7, 8, 10 and 11 + thermocycler_mod = protocol.load_module('thermocycler module') + thermocycler_mod_plate = thermocycler_mod.load_labware(self.thermocycler_labware) + #Load the tiprack + tiprack = protocol.load_labware(self.tiprack_labware, f'{self.tiprack_position}') + #Load the pipette + pipette = protocol.load_instrument(self.pipette, self.pipette_position, tip_racks=[tiprack]) + #Fixed volumes + volume_reagents = self.volume_restriction_enzyme + self.volume_t4_dna_ligase + self.volume_t4_dna_ligase_buffer + #Load the reagents + dd_h2o = tem_mod_block['A1'] + self.dict_of_parts_in_temp_mod_position['dd_h2o'] = temp_wells[0] + t4_dna_ligase = tem_mod_block['A2'] + self.dict_of_parts_in_temp_mod_position['t4_dna_ligase'] = temp_wells[1] + t4_dna_ligase_buffer = tem_mod_block['A3'] + self.dict_of_parts_in_temp_mod_position['t4_dna_ligase_buffer'] = temp_wells[2] + temp_wells_counter = 3 + restriction_enzyme_tube = tem_mod_block[temp_wells[temp_wells_counter]] + self.dict_of_parts_in_temp_mod_position[self.restriction_enzyme] = temp_wells[temp_wells_counter] + temp_wells_counter += 1 + #Load the parts + for part in self.combined_set: + self.dict_of_parts_in_temp_mod_position[part] = temp_wells[temp_wells_counter] + temp_wells_counter += 1 + #Setup + #Set the temperature of the temperature module and the thermocycler to 4°C + tem_mod.set_temperature(4) + thermocycler_mod.open_lid() + thermocycler_mod.set_block_temperature(4) + #can be done with multichannel pipette? + current_thermocycler_well = self.thermocycler_starting_well + #build combinations + for assembly in self.assemblies: + for r in range(self.replicates): + volume_dd_h2o = self.volume_total_reaction - (volume_reagents + self.volume_part*len(assembly["PartsList"])) + liquid_transfer(pipette, volume_dd_h2o, dd_h2o, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate) + liquid_transfer(pipette, self.volume_t4_dna_ligase_buffer, t4_dna_ligase_buffer, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase_buffer) + liquid_transfer(pipette, self.volume_t4_dna_ligase, t4_dna_ligase, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase) + liquid_transfer(pipette, self.volume_restriction_enzyme, restriction_enzyme_tube, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_restriction_enzyme) + #pippeting backbone + liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[assembly["Backbone"]]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) + #pippeting parts + for part in assembly["PartsList"]: + if type(part) == str: + part_name=part + else: raise ValueError(f'Part {part} is not a string nor sbol2.Component') #TODO: improve this check + #part_ubication_in_thermocyler = thermocycler_mod_plate[thermo_wells[current_thermocycler_well]] + liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[part_name]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) + self.dict_of_parts_in_thermocycler[assembly] = thermo_wells[current_thermocycler_well] + current_thermocycler_well+=1 + + protocol.comment('Take out the reagents since the temperature module will be turn off') + #We close the thermocycler lid and wait for the temperature to reach 42°C + thermocycler_mod.close_lid() + #The thermocycler's lid temperature is set with the following command + thermocycler_mod.set_lid_temperature(42) + tem_mod.deactivate() + #Cycles were made following https://pubs.acs.org/doi/10.1021/sb500366v + profile = [ + {'temperature': 42, 'hold_time_minutes': 2}, + {'temperature': 16, 'hold_time_minutes': 5}] + thermocycler_mod.execute_profile(steps=profile, repetitions=25, block_max_volume=30) + + denaturation = [ + {'temperature': 60, 'hold_time_minutes': 10}, + {'temperature': 80, 'hold_time_minutes': 10}] + thermocycler_mod.execute_profile(steps=denaturation, repetitions=1, block_max_volume=30) + thermocycler_mod.set_block_temperature(4) + #END + + #output + print('Parts and reagents in temp_module') + print(self.dict_of_parts_in_temp_mod_position) + print('Assembled parts in thermocycler_module') + print(self.dict_of_parts_in_thermocycler) +# assembly +assembly_sbol2_uris = [{ 'Backbone' : 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/ComponentDefinition_dvk_backbone_core/1', +'PartsList' : ['https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/J23100/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/E0040m_gfp/1', +'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0032/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0015/1'], +'RestrictionEnzyme' : 'https://charmme.synbiohub.org/user/Gonza10V/ligationtestforreal/ComponentDefinition_BsaI/1' +}] + +# metadata +metadata = { +'protocolName': 'PUDU Loop assembly', +'author': 'Gonzalo Vidal ', +'description': 'Automated DNA assembly Loop protocol', +'apiLevel': '2.13'} + +def run(protocol= protocol_api.ProtocolContext): + + pudu_loop_assembly = sbol2assembly(assemblies=assembly_sbol2_uris) + pudu_loop_assembly.run(protocol) + diff --git a/src/pudu/assembly.py b/src/pudu/assembly.py index 718dc23..ba5f86f 100644 --- a/src/pudu/assembly.py +++ b/src/pudu/assembly.py @@ -372,4 +372,134 @@ def run(self, protocol: protocol_api.ProtocolContext): assembly_Odd_1 = {"promoter":["j23101", "j23100"], "rbs":"B0034", "cds":"GFP", "terminator":"B0015", "receiver":"Odd_1"} assembly_Even_2 = {"c4_receptor":"GD0001", "c4_buff_gfp":"GD0002", "spacer1":"20ins1", "spacer2":"Even_2", "receiver":"Even_2"} -assemblies = [assembly_Odd_1, assembly_Even_2] \ No newline at end of file +assemblies = [assembly_Odd_1, assembly_Even_2] + + # Lists to store different components +assembly_sbol2_uris = [{ 'Backbone' : 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/ComponentDefinition_dvk_backbone_core/1', +'PartsList' : ['https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/J23100/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/E0040m_gfp/1', +'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0032/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0015/1'], +'RestrictionEnzyme' : 'https://charmme.synbiohub.org/user/Gonza10V/ligationtestforreal/ComponentDefinition_BsaI/1' +}] + +class sbol2assembly(DNA_assembly): + ''' + Creates a protocol from a dictionaty for the automated assembly. + + ''' + def __init__(self, assemblies:List[Dict], + *args, **kwargs): + super().__init__(*args, **kwargs) + + self.assemblies = assemblies + self.dict_of_parts_in_temp_mod_position = {} + self.dict_of_parts_in_thermocycler = {} + self.assembly_plan = None + self.parts_set = set() + self.backbone_set = set() + self.restriction_enzyme = assembly["RestrictionEnzyme"] #TODO generalize for multiple restriction enzymes + self.combined_set = set() + self.has_odd = False + self.has_even = False + self.odd_combinations = [] + self.even_combinations = [] + + # add parts to a set + for assembly in self.assemblies: + #part parts + for part in assembly["PartsList"]: + self.parts_set.add(part) + #backbone parts + self.backbone_set.add(assembly["Backbone"]) + #1 enzyme + #TODO: add here to generalize restriction enzymes #self.restriction_enzyme_set.add(assembly["RestrictionEnzyme"]) + + self.combined_set = self.parts_set.union(self.backbone_set) + + max_parts = 19 #TODO check if this olds, 20 + if len(self.combined_set) > max_parts: + raise ValueError(f'This protocol only supports assemblies with up to {max_parts} parts. Number of parts in the protocol is {len(self.parts_set)}. Printing parts set:{self.parts_set}') + thermocyler_available_wells = 96 - self.thermocycler_starting_well + thermocycler_wells_needed = (len(self.odd_combinations) + len(self.even_combinations))*self.replicates + if thermocycler_wells_needed > thermocyler_available_wells: + raise ValueError(f'According to your setup this protocol only supports assemblies with up to {thermocyler_available_wells} combinations. Number of combinations in the protocol is {thermocycler_wells_needed}.') + + def run(self, protocol: protocol_api.ProtocolContext): + #Labware + #Load temperature module + tem_mod = protocol.load_module('temperature module', f'{self.temperature_module_position}') #CV: Previously was '3', but the cord was not long enough + tem_mod_block = tem_mod.load_labware(self.temperature_module_labware) + #Load the thermocycler module, its default location is on slots 7, 8, 10 and 11 + thermocycler_mod = protocol.load_module('thermocycler module') + thermocycler_mod_plate = thermocycler_mod.load_labware(self.thermocycler_labware) + #Load the tiprack + tiprack = protocol.load_labware(self.tiprack_labware, f'{self.tiprack_position}') + #Load the pipette + pipette = protocol.load_instrument(self.pipette, self.pipette_position, tip_racks=[tiprack]) + #Fixed volumes + volume_reagents = self.volume_restriction_enzyme + self.volume_t4_dna_ligase + self.volume_t4_dna_ligase_buffer + #Load the reagents + dd_h2o = tem_mod_block['A1'] + self.dict_of_parts_in_temp_mod_position['dd_h2o'] = temp_wells[0] + t4_dna_ligase = tem_mod_block['A2'] + self.dict_of_parts_in_temp_mod_position['t4_dna_ligase'] = temp_wells[1] + t4_dna_ligase_buffer = tem_mod_block['A3'] + self.dict_of_parts_in_temp_mod_position['t4_dna_ligase_buffer'] = temp_wells[2] + temp_wells_counter = 3 + restriction_enzyme_tube = tem_mod_block[temp_wells[temp_wells_counter]] + self.dict_of_parts_in_temp_mod_position[self.restriction_enzyme] = temp_wells[temp_wells_counter] + temp_wells_counter += 1 + #Load the parts + for part in self.combined_set: + self.dict_of_parts_in_temp_mod_position[part] = temp_wells[temp_wells_counter] + temp_wells_counter += 1 + #Setup + #Set the temperature of the temperature module and the thermocycler to 4°C + tem_mod.set_temperature(4) + thermocycler_mod.open_lid() + thermocycler_mod.set_block_temperature(4) + #can be done with multichannel pipette? + current_thermocycler_well = self.thermocycler_starting_well + #build combinations + for assembly in self.assemblies: + for r in range(self.replicates): + volume_dd_h2o = self.volume_total_reaction - (volume_reagents + self.volume_part*len(assembly["PartsList"])) + liquid_transfer(pipette, volume_dd_h2o, dd_h2o, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate) + liquid_transfer(pipette, self.volume_t4_dna_ligase_buffer, t4_dna_ligase_buffer, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase_buffer) + liquid_transfer(pipette, self.volume_t4_dna_ligase, t4_dna_ligase, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase) + liquid_transfer(pipette, self.volume_restriction_enzyme, restriction_enzyme_tube, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_restriction_enzyme) + #pippeting backbone + liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[assembly["Backbone"]]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) + #pippeting parts + for part in assembly["PartsList"]: + if type(part) == str: + part_name=part + else: raise ValueError(f'Part {part} is not a string nor sbol2.Component') #TODO: improve this check + #part_ubication_in_thermocyler = thermocycler_mod_plate[thermo_wells[current_thermocycler_well]] + liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[part_name]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) + self.dict_of_parts_in_thermocycler[assembly] = thermo_wells[current_thermocycler_well] + current_thermocycler_well+=1 + + protocol.comment('Take out the reagents since the temperature module will be turn off') + #We close the thermocycler lid and wait for the temperature to reach 42°C + thermocycler_mod.close_lid() + #The thermocycler's lid temperature is set with the following command + thermocycler_mod.set_lid_temperature(42) + tem_mod.deactivate() + #Cycles were made following https://pubs.acs.org/doi/10.1021/sb500366v + profile = [ + {'temperature': 42, 'hold_time_minutes': 2}, + {'temperature': 16, 'hold_time_minutes': 5}] + thermocycler_mod.execute_profile(steps=profile, repetitions=25, block_max_volume=30) + + denaturation = [ + {'temperature': 60, 'hold_time_minutes': 10}, + {'temperature': 80, 'hold_time_minutes': 10}] + thermocycler_mod.execute_profile(steps=denaturation, repetitions=1, block_max_volume=30) + thermocycler_mod.set_block_temperature(4) + #END + + #output + print('Parts and reagents in temp_module') + print(self.dict_of_parts_in_temp_mod_position) + print('Assembled parts in thermocycler_module') + print(self.dict_of_parts_in_thermocycler) \ No newline at end of file From 6287ae48faaa09e8fc4d6e44509ff6c688b8d277 Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Mon, 19 May 2025 14:27:13 -0600 Subject: [PATCH 005/118] Update assembly.py Updated the assemblies loop to have less code, condensed and redid how we added to the sets --- src/pudu/assembly.py | 499 ++++++++++++++++++++++++++----------------- 1 file changed, 298 insertions(+), 201 deletions(-) diff --git a/src/pudu/assembly.py b/src/pudu/assembly.py index ba5f86f..532ecaf 100644 --- a/src/pudu/assembly.py +++ b/src/pudu/assembly.py @@ -1,8 +1,10 @@ from opentrons import protocol_api +import sbol3 from pudu.utils import thermo_wells, temp_wells, liquid_transfer from typing import List, Dict, Union from fnmatch import fnmatch from itertools import product +import xlsxwriter class DNA_assembly(): @@ -80,16 +82,198 @@ def __init__(self, self.pipette_position = pipette_position self.aspiration_rate = aspiration_rate self.dispense_rate = dispense_rate - #END - + +class Protocol_from_sbol2(DNA_assembly): + ''' + Creates a protocol for the automated assembly of a SBOL Composite. + + Attributes + ---------- + + + assembly_dict : Dict {parts: [list of parts], backbone: backbone uri, restriction_enzyme: re uri} + dictionary containing information about parts, backbone and restriction enzyme to be used in the assembly. + volume_total_reaction : float + The total volume of the reaction mix in microliters. By default, 20 microliters. + volume_part : float + The volume of each part in microliters. By default, 2 microliters. + volume_restriction_enzyme : float + The volume of the restriction enzyme in microliters. By default, 2 microliters. + volume_t4_dna_ligase : float + The volume of T4 DNA Ligase in microliters. By default, 4 microliters. + volume_t4_dna_ligase_buffer : float + The volume of T4 DNA Ligase Buffer in microliters. By default, 2 microliters. + replicates : int + The number of replicates of the assembly reaction. By default, 2. + aspiration_rate : float + The rate of aspiration in microliters per second. By default, 0.5 microliters per second. + thermocycler_starting_well : int + The starting well of the thermocycler module. By default, 0. + thermocycler_labware : str + The labware type of the thermocycler module. By default, 'nest_96_wellplate_100ul_pcr_full_skirt'. + thermocycler_slots : list + The slots of the thermocycler module. By default, [7, 8, 10, 11]. + temperature_module_labware : str + The labware type of the temperature module. By default, 'opentrons_24_aluminumblock_nest_1.5ml_snapcap'. + temperature_module_slot : int + The slot of the temperature module. By default, 1. + tiprack_labware : str + The labware type of the tiprack. By default, 'opentrons_96_tiprack_20ul'. + tiprack_slot : int + The slot of the tiprack. By default, 9. + pipette_type : str + The type of pipette. By default, 'p20_single_gen2'. + pipette_mount : str + The mount of the pipette. By default, 'left'. + ''' + def __init__(self, assembly_plan:sbol3.Component, + *args, **kwargs): + super().__init__(*args, **kwargs) + self.assembly_plan = assembly_plan + self.dict_of_parts_in_temp_mod_position = {} + self.dict_of_parts_in_thermocycler = {} + self.sbol_output = [] + + metadata = { + 'protocolName': 'Automated Golden Gate from SBOL', + 'author': 'Gonzalo Vidal ', + 'description': 'Protocol to perform a Golden Gate assembly from SBOL', + 'apiLevel': '2.13'} + + def run(self, protocol: protocol_api.ProtocolContext): + #Labware + #Load the magnetic module + tem_mod = protocol.load_module('temperature module', f'{self.temperature_module_position}') #CV: Previously was '3', but the cord was not long enough + tem_mod_block = tem_mod.load_labware(self.temperature_module_labware) + #Load the thermocycler module, its default location is on slots 7, 8, 10 and 11 + thermocycler_mod = protocol.load_module('thermocycler module') + thermocycler_mod_plate = thermocycler_mod.load_labware(self.thermocycler_labware) + #Load the tiprack + tiprack = protocol.load_labware(self.tiprack_labware, f'{self.tiprack_position}') + #Load the pipette + pipette = protocol.load_instrument(self.pipette, self.pipette_position, tip_racks=[tiprack]) + #Fixed volumes + #State volumes. They can be a function of [DNA], the minimun value is 1 uL + #Parts should be diluted to the necessary concentration to aspirate 1 or 2 uL + volume_reagents =self.volume_restriction_enzyme + self.volume_t4_dna_ligase + self.volume_t4_dna_ligase_buffer + + #Load the reagents + restriction_enzyme = tem_mod_block['A1'] + self.dict_of_parts_in_temp_mod_position['restriction_enzyme'] = temp_wells[0] + t4_dna_ligase = tem_mod_block['A2'] + self.dict_of_parts_in_temp_mod_position['t4_dna_ligase'] = temp_wells[1] + t4_dna_ligase_buffer = tem_mod_block['A3'] + self.dict_of_parts_in_temp_mod_position['t4_dna_ligase_buffer'] = temp_wells[2] + dd_h2o = tem_mod_block['A4'] + self.dict_of_parts_in_temp_mod_position['dd_h2o'] = temp_wells[3] + temp_wells_counter = 4 + #Setup + #Set the temperature of the temperature module and the thermocycler to 4°C + tem_mod.set_temperature(4) + thermocycler_mod.open_lid() + thermocycler_mod.set_block_temperature(4) + + #creating set of parts to be used in the assembly + assemblies_component_set = set() + for composite in self.assembly_plan.composites: + composite_component = [top_level for top_level in composite if type(top_level)==sbol3.Component][0] + for part_extract_sc in composite_component.features: + #get parts + part = part_extract_sc.instance_of.lookup() + if not part: + raise ValueError(f'Part in backbone not found from part extract {part_extract_sc.identity}') + assemblies_component_set.add(part) + + #load parts from set in the temperature module + if len(assemblies_component_set) > 20: + raise ValueError('Number of parts in the assembly plan is greater than 20. This protocol only supports assemblies with up to 20 parts') + for part_component in assemblies_component_set: + self.dict_of_parts_in_temp_mod_position[part_component] = temp_wells[temp_wells_counter] + temp_wells_counter += 1 + #load parts and reagents in the thermocycler + current_thermocycler_well = self.thermocycler_starting_well + for composite in self.assembly_plan.composites: + composite_component = [top_level for top_level in composite if type(top_level)==sbol3.Component][0] + #load reagents in the thermocycler + volume_parts = len(composite_component.features) * self.volume_part + volume_dd_h2o = self.volume_total_reaction - (volume_reagents + volume_parts) + if volume_dd_h2o < 1 and volume_dd_h2o!=0 : + raise ValueError('The volume of dd_h2o is not enough to perform the experiment') + liquid_transfer(pipette, volume_dd_h2o, dd_h2o, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate) + liquid_transfer(pipette, self.volume_t4_dna_ligase_buffer, t4_dna_ligase_buffer, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase_buffer) + liquid_transfer(pipette, self.volume_t4_dna_ligase, t4_dna_ligase, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase) + liquid_transfer(pipette, self.volume_restriction_enzyme, restriction_enzyme, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_restriction_enzyme) + #TODO: multiple restriction enzymes + for r in range(self.replicates): + for part_extract_sc in composite_component.features: + #get parts + part_component = part_extract_sc.instance_of.lookup() + part_name = part_component.name + assembled_dna = sbol3.Implementation(identity=f'assembled_dna_{part_name}_{r}', built=part, description=f'Thermocycler well {thermo_wells[current_thermocycler_well]}') + self.sbol_output.append(assembled_dna) + part_ubication_in_thermocyler = thermocycler_mod_plate[thermo_wells[current_thermocycler_well]] + liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[part_component]], part_ubication_in_thermocyler, self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) + if r == 0: + self.dict_of_parts_in_thermocycler[composite_component] = [thermo_wells[current_thermocycler_well]] + else: + self.dict_of_parts_in_thermocycler[composite_component].append(thermo_wells[current_thermocycler_well]) + current_thermocycler_well+=1 + + protocol.comment('Take out the reagents since the temperature module will be turn off') + #We close the thermocycler lid and wait for the temperature to reach 42°C + thermocycler_mod.close_lid() + #The thermocycler's lid temperature is set with the following command + thermocycler_mod.set_lid_temperature(42) + tem_mod.deactivate() + #Cycles were made following https://pubs.acs.org/doi/10.1021/sb500366v + profile = [ + {'temperature': 42, 'hold_time_minutes': 2}, + {'temperature': 16, 'hold_time_minutes': 5}] + thermocycler_mod.execute_profile(steps=profile, repetitions=25, block_max_volume=30) + + denaturation = [ + {'temperature': 60, 'hold_time_minutes': 10}, + {'temperature': 80, 'hold_time_minutes': 10}] + thermocycler_mod.execute_profile(steps=denaturation, repetitions=1, block_max_volume=30) + thermocycler_mod.set_block_temperature(4) + #END + + def get_xlsx_output(self, name:str): + workbook = xlsxwriter.Workbook(f'{name}.xlsx') + worksheet = workbook.add_worksheet() + row_num = 0 + col_num = 0 + worksheet.write(row_num, col_num, 'Parts in temp_module') + row_num += 2 + for key, value in self.dict_of_parts_in_temp_mod_position.items(): + if type(key)==sbol3.Component: + key=key.name + worksheet.write(row_num, col_num, key) + worksheet.write(row_num+1, col_num, value) + col_num += 1 + col_num = 0 + row_num += 4 + worksheet.write(row_num, col_num, 'Parts in thermocycler_module') + row_num += 2 + for key, value in self.dict_of_parts_in_thermocycler.items(): + if type(key)==sbol3.Component: + key=key.identity + worksheet.write(row_num, col_num, key) + worksheet.write_column(row_num+1, col_num, value) + col_num += 1 + workbook.close() + self.xlsx_output = workbook + return self.xlsx_output + #END + class Domestication(DNA_assembly): ''' Creates a protocol for automated domestication, assembly of parts into universal acceptor backbone. ''' - def __init__(self, parts:Union[List,Dict], acceptor_backbone:str, + def __init__(self, parts:Union[List,Dict], acceptor_backbone:Union[str, sbol3.Component], *args, **kwargs): super().__init__(*args, **kwargs) @@ -97,8 +281,8 @@ def __init__(self, parts:Union[List,Dict], acceptor_backbone:str, self.acceptor_backbone = acceptor_backbone self.dict_of_parts_in_temp_mod_position = {} self.dict_of_parts_in_thermocycler = {} - #self.sbol_output = [] - #self.xlsx_output = None + self.sbol_output = [] + self.xlsx_output = None if len(parts) > 19: raise ValueError(f'This protocol only supports assemblies with up to 20 parts. Number of parts in the protocol is {len(parts)}') @@ -157,10 +341,17 @@ def run(self, protocol: protocol_api.ProtocolContext): i = self.thermocycler_starting_well for part in self.parts: if type(part) == str: - part_name=part + part_name=part + elif type(part) == sbol3.Component: + part_name=part.name else: raise ValueError(f'Part {part} is not a string or an sbol3.Component') self.dict_of_parts_in_temp_mod_position[part_name] = temp_wells[temp_wells_counter] for r in range(self.replicates): + #Add sbol implementation + if type(part) == sbol3.Component: + #create assembled_dna Implementation that points to the part + assembled_dna = sbol3.Implementation(f'assembled_dna_{part_name}_{r}', part, description=f'Thermocycler well {thermo_wells[i]}') + self.sbol_output.append(assembled_dna) part_ubication_in_thermocyler = thermocycler_mod_plate[thermo_wells[i]] if r == 0: self.dict_of_parts_in_thermocycler[part_name] = [thermo_wells[i]] @@ -187,15 +378,31 @@ def run(self, protocol: protocol_api.ProtocolContext): {'temperature': 80, 'hold_time_minutes': 10}] thermocycler_mod.execute_profile(steps=denaturation, repetitions=1, block_max_volume=30) thermocycler_mod.set_block_temperature(4) - - #output - print('Parts and reagents in temp_module') - print(self.dict_of_parts_in_temp_mod_position) - print('Domesticated parts in thermocycler_module') - print(self.dict_of_parts_in_thermocycler) #END - + def get_xlsx_output(self, name:str): + workbook = xlsxwriter.Workbook(f'{name}.xlsx') + worksheet = workbook.add_worksheet() + row_num = 0 + col_num = 0 + worksheet.write(row_num, col_num, 'Parts in temp_module') + row_num += 2 + for key, value in self.dict_of_parts_in_temp_mod_position.items(): + worksheet.write(row_num, col_num, key) + worksheet.write(row_num+1, col_num, value) + col_num += 1 + col_num = 0 + row_num += 4 + worksheet.write(row_num, col_num, 'Parts in thermocycler_module') + row_num += 2 + for key, value in self.dict_of_parts_in_thermocycler.items(): + worksheet.write(row_num, col_num, key) + worksheet.write_column(row_num+1, col_num, value) + col_num += 1 + workbook.close() + self.xlsx_output = workbook + return self.xlsx_output + #END class Loop_assembly(DNA_assembly): ''' @@ -210,6 +417,7 @@ def __init__(self, assemblies:List[Dict], self.dict_of_parts_in_temp_mod_position = {} self.dict_of_parts_in_thermocycler = {} self.assembly_plan = None + self.sbol_output = [] self.pattern_odd = 'Odd*' self.pattern_even = 'Even*' self.parts_set = set() @@ -217,38 +425,29 @@ def __init__(self, assemblies:List[Dict], self.has_even = False self.odd_combinations = [] self.even_combinations = [] - + # add parts to a set for assembly in self.assemblies: list_of_list_of_parts_per_role = [] - if fnmatch(assembly['receiver'], self.pattern_odd): + receiver = assembly['receiver'] + + if fnmatch(receiver, self.pattern_odd): self.has_odd = True - for role in assembly: - parts = assembly[role] - if type(parts) is str: - parts_per_role = [parts] - else: - parts_per_role = parts - for part in parts_per_role: - self.parts_set.add(part) - list_of_list_of_parts_per_role.append(parts_per_role) - list_of_combinations_per_assembly = list(product(*list_of_list_of_parts_per_role)) - for combination in list_of_combinations_per_assembly: - self.odd_combinations.append(combination) - if fnmatch(assembly['receiver'], self.pattern_even): - self.has_even = True - for role in assembly: - parts = assembly[role] - if type(parts) is str: - parts_per_role = [parts] - else: - parts_per_role = parts - for part in parts_per_role: - self.parts_set.add(part) - list_of_list_of_parts_per_role.append(parts_per_role) - list_of_combinations_per_assembly = list(product(*list_of_list_of_parts_per_role)) - for combination in list_of_combinations_per_assembly: - self.even_combinations.append(combination) + combinations_list = self.odd_combinations + elif fnmatch(receiver, self.pattern_even): + self.has_even = True + combinations_list = self.even_combinations + else: + continue # Skip assemblies that don't match + + for role, parts in assembly.items(): + if role == 'receiver': + continue # Skip receiver key + parts_per_role = [parts] if isinstance(parts, str) else parts + self.parts_set.update(parts_per_role) + list_of_list_of_parts_per_role.append(parts_per_role) + + combinations_list.extend(product(*list_of_list_of_parts_per_role)) if self.has_odd and self.has_even: max_parts = 18 @@ -263,6 +462,12 @@ def __init__(self, assemblies:List[Dict], if thermocycler_wells_needed > thermocyler_available_wells: raise ValueError(f'According to your setup this protocol only supports assemblies with up to {thermocyler_available_wells} combinations. Number of combinations in the protocol is {thermocycler_wells_needed}.') + metadata = { + 'protocolName': 'Automated Loop assembly', + 'author': 'Gonzalo Vidal ', + 'description': 'Protocol to perform Loop assembly', + 'apiLevel': '2.13'} + def run(self, protocol: protocol_api.ProtocolContext): #Labware #Load temperature module @@ -279,19 +484,14 @@ def run(self, protocol: protocol_api.ProtocolContext): volume_reagents = self.volume_restriction_enzyme + self.volume_t4_dna_ligase + self.volume_t4_dna_ligase_buffer #Load the reagents dd_h2o = tem_mod_block['A1'] - self.dict_of_parts_in_temp_mod_position['dd_h2o'] = temp_wells[0] t4_dna_ligase = tem_mod_block['A2'] - self.dict_of_parts_in_temp_mod_position['t4_dna_ligase'] = temp_wells[1] t4_dna_ligase_buffer = tem_mod_block['A3'] - self.dict_of_parts_in_temp_mod_position['t4_dna_ligase_buffer'] = temp_wells[2] temp_wells_counter = 3 if self.has_odd: restriction_enzyme_bsai = tem_mod_block[temp_wells[temp_wells_counter]] - self.dict_of_parts_in_temp_mod_position['BsaI'] = temp_wells[temp_wells_counter] temp_wells_counter += 1 if self.has_even: restriction_enzyme_sapi = tem_mod_block[temp_wells[temp_wells_counter]] - self.dict_of_parts_in_temp_mod_position['SapI'] = temp_wells[temp_wells_counter] temp_wells_counter += 1 #Load the parts for part in self.parts_set: @@ -313,15 +513,22 @@ def run(self, protocol: protocol_api.ProtocolContext): liquid_transfer(pipette, self.volume_t4_dna_ligase, t4_dna_ligase, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase) liquid_transfer(pipette, self.volume_restriction_enzyme, restriction_enzyme_bsai, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_restriction_enzyme) #pippeting parts - for r in range(self.replicates): - for part in odd_combination: - if type(part) == str: - part_name=part - else: raise ValueError(f'Part {part} is not a string nor sbol3.Component') + for part in odd_combination: + if type(part) == str: + part_name=part + elif type(part) == sbol3.Component: + part_name=part.name + else: raise ValueError(f'Part {part} is not a string nor sbol3.Component') + for r in range(self.replicates): + #Add sbol implementation + if type(part) == sbol3.Component: + #create assembled_dna Implementation that points to the part + assembled_dna = sbol3.Implementation(f'assembled_dna_{part_name}_{r}', part, description=f'Thermocycler well {thermo_wells[current_thermocycler_well]}') + self.sbol_output.append(assembled_dna) #part_ubication_in_thermocyler = thermocycler_mod_plate[thermo_wells[current_thermocycler_well]] liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[part_name]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) - self.dict_of_parts_in_thermocycler[odd_combination] = thermo_wells[current_thermocycler_well] - current_thermocycler_well+=1 + current_thermocycler_well+=1 + temp_wells_counter += 1 for even_combination in self.even_combinations: #pippeting reagents @@ -331,14 +538,21 @@ def run(self, protocol: protocol_api.ProtocolContext): liquid_transfer(pipette, self.volume_t4_dna_ligase, t4_dna_ligase, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase) liquid_transfer(pipette, self.volume_restriction_enzyme, restriction_enzyme_sapi, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_restriction_enzyme) #pippeting parts - for r in range(self.replicates): - for part in even_combination: - if type(part) == str: - part_name=part - else: raise ValueError(f'Part {part} is not a string nor sbol3.Component') + for part in even_combination: + if type(part) == str: + part_name=part + elif type(part) == sbol3.Component: + part_name=part.name + else: raise ValueError(f'Part {part} is not a string nor sbol3.Component') + for r in range(self.replicates): + #Add sbol implementation + if type(part) == sbol3.Component: + #create assembled_dna Implementation that points to the part + assembled_dna = sbol3.Implementation(f'assembled_dna_{part_name}_{r}', part, description=f'Thermocycler well {thermo_wells[current_thermocycler_well]}') + self.sbol_output.append(assembled_dna) liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[part_name]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) - self.dict_of_parts_in_thermocycler[even_combination] = thermo_wells[current_thermocycler_well] - current_thermocycler_well+=1 + current_thermocycler_well+=1 + temp_wells_counter += 1 protocol.comment('Take out the reagents since the temperature module will be turn off') #We close the thermocycler lid and wait for the temperature to reach 42°C @@ -359,147 +573,30 @@ def run(self, protocol: protocol_api.ProtocolContext): thermocycler_mod.set_block_temperature(4) #END - #output - print('Parts and reagents in temp_module') - print(self.dict_of_parts_in_temp_mod_position) - print('Assembled parts in thermocycler_module') - print(self.dict_of_parts_in_thermocycler) - -# assembly -assembly_Odd_1 = {"promoter":["GVP0010", "GVP0011", "GVP0014"], "rbs":["B0033","B0034"], "cds":"sfGFP", "terminator":"B0015", "receiver":"Odd_1"} -#assembly_Even_2 = {"c4_receptor":"GD0001", "c4_buff_gfp":"GD0002", "spacer1":"20ins1", "spacer2":"Even_2", "receiver":"Even_2"} -assemblies = [assembly_Odd_1] + def get_xlsx_output(self, name:str): + workbook = xlsxwriter.Workbook(f'{name}.xlsx') + worksheet = workbook.add_worksheet() + row_num = 0 + col_num = 0 + worksheet.write(row_num, col_num, 'Parts in temp_module') + row_num += 2 + for key, value in self.dict_of_parts_in_temp_mod_position.items(): + worksheet.write(row_num, col_num, key) + worksheet.write(row_num+1, col_num, value) + col_num += 1 + col_num = 0 + row_num += 4 + worksheet.write(row_num, col_num, 'Parts in thermocycler_module') + row_num += 2 + for key, value in self.dict_of_parts_in_thermocycler.items(): + worksheet.write(row_num, col_num, key) + worksheet.write_column(row_num+1, col_num, value) + col_num += 1 + workbook.close() + self.xlsx_output = workbook + return self.xlsx_output + #END assembly_Odd_1 = {"promoter":["j23101", "j23100"], "rbs":"B0034", "cds":"GFP", "terminator":"B0015", "receiver":"Odd_1"} -assembly_Even_2 = {"c4_receptor":"GD0001", "c4_buff_gfp":"GD0002", "spacer1":"20ins1", "spacer2":"Even_2", "receiver":"Even_2"} +assembly_Even_2 = {"promoter":["j23101", "j23100"], "rbs":"B0034", "cds":"GFP", "terminator":"B0015", "receiver":"Even_2"} assemblies = [assembly_Odd_1, assembly_Even_2] - - # Lists to store different components -assembly_sbol2_uris = [{ 'Backbone' : 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/ComponentDefinition_dvk_backbone_core/1', -'PartsList' : ['https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/J23100/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/E0040m_gfp/1', -'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0032/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0015/1'], -'RestrictionEnzyme' : 'https://charmme.synbiohub.org/user/Gonza10V/ligationtestforreal/ComponentDefinition_BsaI/1' -}] - -class sbol2assembly(DNA_assembly): - ''' - Creates a protocol from a dictionaty for the automated assembly. - - ''' - def __init__(self, assemblies:List[Dict], - *args, **kwargs): - super().__init__(*args, **kwargs) - - self.assemblies = assemblies - self.dict_of_parts_in_temp_mod_position = {} - self.dict_of_parts_in_thermocycler = {} - self.assembly_plan = None - self.parts_set = set() - self.backbone_set = set() - self.restriction_enzyme = assembly["RestrictionEnzyme"] #TODO generalize for multiple restriction enzymes - self.combined_set = set() - self.has_odd = False - self.has_even = False - self.odd_combinations = [] - self.even_combinations = [] - - # add parts to a set - for assembly in self.assemblies: - #part parts - for part in assembly["PartsList"]: - self.parts_set.add(part) - #backbone parts - self.backbone_set.add(assembly["Backbone"]) - #1 enzyme - #TODO: add here to generalize restriction enzymes #self.restriction_enzyme_set.add(assembly["RestrictionEnzyme"]) - - self.combined_set = self.parts_set.union(self.backbone_set) - - max_parts = 19 #TODO check if this olds, 20 - if len(self.combined_set) > max_parts: - raise ValueError(f'This protocol only supports assemblies with up to {max_parts} parts. Number of parts in the protocol is {len(self.parts_set)}. Printing parts set:{self.parts_set}') - thermocyler_available_wells = 96 - self.thermocycler_starting_well - thermocycler_wells_needed = (len(self.odd_combinations) + len(self.even_combinations))*self.replicates - if thermocycler_wells_needed > thermocyler_available_wells: - raise ValueError(f'According to your setup this protocol only supports assemblies with up to {thermocyler_available_wells} combinations. Number of combinations in the protocol is {thermocycler_wells_needed}.') - - def run(self, protocol: protocol_api.ProtocolContext): - #Labware - #Load temperature module - tem_mod = protocol.load_module('temperature module', f'{self.temperature_module_position}') #CV: Previously was '3', but the cord was not long enough - tem_mod_block = tem_mod.load_labware(self.temperature_module_labware) - #Load the thermocycler module, its default location is on slots 7, 8, 10 and 11 - thermocycler_mod = protocol.load_module('thermocycler module') - thermocycler_mod_plate = thermocycler_mod.load_labware(self.thermocycler_labware) - #Load the tiprack - tiprack = protocol.load_labware(self.tiprack_labware, f'{self.tiprack_position}') - #Load the pipette - pipette = protocol.load_instrument(self.pipette, self.pipette_position, tip_racks=[tiprack]) - #Fixed volumes - volume_reagents = self.volume_restriction_enzyme + self.volume_t4_dna_ligase + self.volume_t4_dna_ligase_buffer - #Load the reagents - dd_h2o = tem_mod_block['A1'] - self.dict_of_parts_in_temp_mod_position['dd_h2o'] = temp_wells[0] - t4_dna_ligase = tem_mod_block['A2'] - self.dict_of_parts_in_temp_mod_position['t4_dna_ligase'] = temp_wells[1] - t4_dna_ligase_buffer = tem_mod_block['A3'] - self.dict_of_parts_in_temp_mod_position['t4_dna_ligase_buffer'] = temp_wells[2] - temp_wells_counter = 3 - restriction_enzyme_tube = tem_mod_block[temp_wells[temp_wells_counter]] - self.dict_of_parts_in_temp_mod_position[self.restriction_enzyme] = temp_wells[temp_wells_counter] - temp_wells_counter += 1 - #Load the parts - for part in self.combined_set: - self.dict_of_parts_in_temp_mod_position[part] = temp_wells[temp_wells_counter] - temp_wells_counter += 1 - #Setup - #Set the temperature of the temperature module and the thermocycler to 4°C - tem_mod.set_temperature(4) - thermocycler_mod.open_lid() - thermocycler_mod.set_block_temperature(4) - #can be done with multichannel pipette? - current_thermocycler_well = self.thermocycler_starting_well - #build combinations - for assembly in self.assemblies: - for r in range(self.replicates): - volume_dd_h2o = self.volume_total_reaction - (volume_reagents + self.volume_part*len(assembly["PartsList"])) - liquid_transfer(pipette, volume_dd_h2o, dd_h2o, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate) - liquid_transfer(pipette, self.volume_t4_dna_ligase_buffer, t4_dna_ligase_buffer, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase_buffer) - liquid_transfer(pipette, self.volume_t4_dna_ligase, t4_dna_ligase, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase) - liquid_transfer(pipette, self.volume_restriction_enzyme, restriction_enzyme_tube, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_restriction_enzyme) - #pippeting backbone - liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[assembly["Backbone"]]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) - #pippeting parts - for part in assembly["PartsList"]: - if type(part) == str: - part_name=part - else: raise ValueError(f'Part {part} is not a string nor sbol2.Component') #TODO: improve this check - #part_ubication_in_thermocyler = thermocycler_mod_plate[thermo_wells[current_thermocycler_well]] - liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[part_name]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) - self.dict_of_parts_in_thermocycler[assembly] = thermo_wells[current_thermocycler_well] - current_thermocycler_well+=1 - - protocol.comment('Take out the reagents since the temperature module will be turn off') - #We close the thermocycler lid and wait for the temperature to reach 42°C - thermocycler_mod.close_lid() - #The thermocycler's lid temperature is set with the following command - thermocycler_mod.set_lid_temperature(42) - tem_mod.deactivate() - #Cycles were made following https://pubs.acs.org/doi/10.1021/sb500366v - profile = [ - {'temperature': 42, 'hold_time_minutes': 2}, - {'temperature': 16, 'hold_time_minutes': 5}] - thermocycler_mod.execute_profile(steps=profile, repetitions=25, block_max_volume=30) - - denaturation = [ - {'temperature': 60, 'hold_time_minutes': 10}, - {'temperature': 80, 'hold_time_minutes': 10}] - thermocycler_mod.execute_profile(steps=denaturation, repetitions=1, block_max_volume=30) - thermocycler_mod.set_block_temperature(4) - #END - - #output - print('Parts and reagents in temp_module') - print(self.dict_of_parts_in_temp_mod_position) - print('Assembled parts in thermocycler_module') - print(self.dict_of_parts_in_thermocycler) \ No newline at end of file From 6c668310241c40cc2c49d386a4718c70f9e0e55a Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Tue, 20 May 2025 11:41:16 -0600 Subject: [PATCH 006/118] LukeChangetoPUDU --- scripts/run_sbol2assembly_libre.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index cb63bb9..41e3244 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -239,7 +239,8 @@ def run(self, protocol: protocol_api.ProtocolContext): print('Parts and reagents in temp_module') print(self.dict_of_parts_in_temp_mod_position) print('Assembled parts in thermocycler_module') - print(self.dict_of_parts_in_thermocycler) + print(self.dict_of_parts_in_thermocycler) + # assembly assembly_sbol2_uris = [{ 'Backbone' : 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/ComponentDefinition_dvk_backbone_core/1', 'PartsList' : ['https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/J23100/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/E0040m_gfp/1', From b42071c0d29e8f77e26b871a616f1758bcf8514e Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 21 May 2025 08:58:15 -0600 Subject: [PATCH 007/118] Update run_sbol2assembly_libre.py Luke Dysart Update to bug with assembly after attempted push --- scripts/run_sbol2assembly_libre.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index 41e3244..9b7937e 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -133,7 +133,7 @@ def __init__(self, assemblies:List[Dict], self.assembly_plan = None self.parts_set = set() self.backbone_set = set() - self.restriction_enzyme = assembly["RestrictionEnzyme"] #TODO generalize for multiple restriction enzymes + self.restriction_enzyme = "" #empty string to prevent early call of assembly self.combined_set = set() self.has_odd = False self.has_even = False @@ -148,7 +148,7 @@ def __init__(self, assemblies:List[Dict], #backbone parts self.backbone_set.add(assembly["Backbone"]) #1 enzyme - #TODO: add here to generalize restriction enzymes #self.restriction_enzyme_set.add(assembly["RestrictionEnzyme"]) + self.restriction_enzyme = assembly["RestrictionEnzyme"] self.combined_set = self.parts_set.union(self.backbone_set) From ed63cbf227860d127dd4be516e8791f168c0a0c4 Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 21 May 2025 09:20:48 -0600 Subject: [PATCH 008/118] Update run_sbol2assembly_libre.py Luke update to run_sbol2 assembly, working on push in git --- scripts/run_sbol2assembly_libre.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index 9b7937e..cebccef 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -213,7 +213,8 @@ def run(self, protocol: protocol_api.ProtocolContext): else: raise ValueError(f'Part {part} is not a string nor sbol2.Component') #TODO: improve this check #part_ubication_in_thermocyler = thermocycler_mod_plate[thermo_wells[current_thermocycler_well]] liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[part_name]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) - self.dict_of_parts_in_thermocycler[assembly] = thermo_wells[current_thermocycler_well] + #This line under this comment was written to get it to run, not run correctly + self.dict_of_parts_in_thermocycler[current_thermocycler_well] = thermo_wells[current_thermocycler_well] current_thermocycler_well+=1 protocol.comment('Take out the reagents since the temperature module will be turn off') From f1ab491c3bee2468b97d5dbdca957a2afc32f44d Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 21 May 2025 10:29:53 -0600 Subject: [PATCH 009/118] practice push --- scripts/run_sbol2assembly_libre.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index cebccef..a26faea 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -3,6 +3,8 @@ from fnmatch import fnmatch from itertools import product +#comment to practice push + # utils From f572676c9b0cd1c18c21d05336cb132139037317 Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 21 May 2025 11:10:09 -0600 Subject: [PATCH 010/118] practice push --- scripts/run_sbol2assembly_libre.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index a26faea..152a144 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -3,11 +3,9 @@ from fnmatch import fnmatch from itertools import product -#comment to practice push - # utils - +#96 well List plate_96_wells = [ 'A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11','A12', 'B1','B2','B3','B4','B5','B6','B7','B8','B9','B10','B11','B12', @@ -19,8 +17,10 @@ 'H1','H2','H3','H4','H5','H6','H7','H8','H9','H10','H11','H12' ] +#filler variable equal to well List thermo_wells = plate_96_wells +#Function to transfer Liquid def liquid_transfer(pipette, volume, source, destination, asp_rate:float=0.5, disp_rate:float=1.0, blow_out:bool=True, touch_tip:bool=False, mix_before:float=0.0, mix_after:float=0.0, mix_reps:int=3, new_tip:bool=True, drop_tip:bool=True): if new_tip: pipette.pick_up_tip() @@ -37,6 +37,7 @@ def liquid_transfer(pipette, volume, source, destination, asp_rate:float=0.5, di if drop_tip: pipette.drop_tip() +#new List for temporary wells temp_wells = [ 'A1','A2','A3','A4','A5','A6', 'B1','B2','B3','B4','B5','B6', @@ -44,6 +45,7 @@ def liquid_transfer(pipette, volume, source, destination, asp_rate:float=0.5, di 'D1','D2','D3','D4','D5','D6' ] +#class DNA Assembly class DNA_assembly(): ''' Creates a protocol for automated DNA assembly. @@ -85,6 +87,7 @@ class DNA_assembly(): dispense_rate : float The rate of dispense in microliters per second. By default, 1 microliter per second. ''' + #self attributes def __init__(self, volume_total_reaction:float = 20, volume_part:float = 2, From 5b7eaec10a4ddb0cff5839c2239e4a93321cf465 Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 21 May 2025 11:41:56 -0600 Subject: [PATCH 011/118] practice push --- scripts/run_sbol2assembly_libre.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index 152a144..4b97d4e 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -125,7 +125,7 @@ def __init__(self, class sbol2assembly(DNA_assembly): ''' - Creates a protocol from a dictionaty for the automated assembly. + Creates a protocol from a dictionary for the automated assembly. ''' def __init__(self, assemblies:List[Dict], @@ -153,6 +153,7 @@ def __init__(self, assemblies:List[Dict], #backbone parts self.backbone_set.add(assembly["Backbone"]) #1 enzyme + #only takes the last restriction enzyme in the last dictionary self.restriction_enzyme = assembly["RestrictionEnzyme"] self.combined_set = self.parts_set.union(self.backbone_set) From 06e89046d95c4f73ccc525a8120d53aa8290d0f9 Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 21 May 2025 11:43:09 -0600 Subject: [PATCH 012/118] found error that needs to be addressed with enzyme --- scripts/run_sbol2assembly_libre.py | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index 4b97d4e..9de5404 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -153,6 +153,7 @@ def __init__(self, assemblies:List[Dict], #backbone parts self.backbone_set.add(assembly["Backbone"]) #1 enzyme + #most likely a later error caused here #only takes the last restriction enzyme in the last dictionary self.restriction_enzyme = assembly["RestrictionEnzyme"] From 7aad891f60dc4d0250c0c9ce72e272e3dd29e293 Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Thu, 22 May 2025 11:06:26 -0600 Subject: [PATCH 013/118] adding xlsx output to sbol2assembly --- scripts/run_sbol2assembly_libre.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index 9de5404..64f0252 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -243,6 +243,29 @@ def run(self, protocol: protocol_api.ProtocolContext): thermocycler_mod.set_block_temperature(4) #END + def get_xlsx_output(self, name:str): + workbook = xlsxwriter.Workbook(f'{name}.xlsx') + worksheet = workbook.add_worksheet() + row_num = 0 + col_num = 0 + worksheet.write(row_num, col_num, 'Parts in temp_module') + row_num += 2 + for key, value in self.dict_of_parts_in_temp_mod_position.items(): + worksheet.write(row_num, col_num, key) + worksheet.write(row_num+1, col_num, value) + col_num += 1 + col_num = 0 + row_num += 4 + worksheet.write(row_num, col_num, 'Parts in thermocycler_module') + row_num += 2 + for key, value in self.dict_of_parts_in_thermocycler.items(): + worksheet.write(row_num, col_num, key) + worksheet.write_column(row_num+1, col_num, value) + col_num += 1 + workbook.close() + self.xlsx_output = workbook + return self.xlsx_output + #output print('Parts and reagents in temp_module') print(self.dict_of_parts_in_temp_mod_position) From 4fa7dc74337a1a511bd0b604cdf6d6790cabedbd Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Thu, 22 May 2025 11:11:40 -0600 Subject: [PATCH 014/118] adds a file creation call --- scripts/run_sbol2assembly_libre.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index 64f0252..954e89f 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -288,6 +288,7 @@ def get_xlsx_output(self, name:str): def run(protocol= protocol_api.ProtocolContext): - pudu_loop_assembly = sbol2assembly(assemblies=assembly_sbol2_uris) - pudu_loop_assembly.run(protocol) + pudu_sbol2_assembly = sbol2assembly(assemblies=assembly_sbol2_uris) + pudu_sbol2_assembly.run(protocol) + pudu_sbol2_assembly.get_xlsx_output("SBOL_xlsx") From a920d87b96530d6554928c0b20ea497aafcf9801 Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Thu, 22 May 2025 11:13:28 -0600 Subject: [PATCH 015/118] fixes indentation error --- scripts/run_sbol2assembly_libre.py | 54 +++++++++++++++--------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index 954e89f..e71dedb 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -243,34 +243,34 @@ def run(self, protocol: protocol_api.ProtocolContext): thermocycler_mod.set_block_temperature(4) #END - def get_xlsx_output(self, name:str): - workbook = xlsxwriter.Workbook(f'{name}.xlsx') - worksheet = workbook.add_worksheet() - row_num = 0 - col_num = 0 - worksheet.write(row_num, col_num, 'Parts in temp_module') - row_num += 2 - for key, value in self.dict_of_parts_in_temp_mod_position.items(): - worksheet.write(row_num, col_num, key) - worksheet.write(row_num+1, col_num, value) - col_num += 1 - col_num = 0 - row_num += 4 - worksheet.write(row_num, col_num, 'Parts in thermocycler_module') - row_num += 2 - for key, value in self.dict_of_parts_in_thermocycler.items(): - worksheet.write(row_num, col_num, key) - worksheet.write_column(row_num+1, col_num, value) - col_num += 1 - workbook.close() - self.xlsx_output = workbook - return self.xlsx_output + def get_xlsx_output(self, name:str): + workbook = xlsxwriter.Workbook(f'{name}.xlsx') + worksheet = workbook.add_worksheet() + row_num = 0 + col_num = 0 + worksheet.write(row_num, col_num, 'Parts in temp_module') + row_num += 2 + for key, value in self.dict_of_parts_in_temp_mod_position.items(): + worksheet.write(row_num, col_num, key) + worksheet.write(row_num+1, col_num, value) + col_num += 1 + col_num = 0 + row_num += 4 + worksheet.write(row_num, col_num, 'Parts in thermocycler_module') + row_num += 2 + for key, value in self.dict_of_parts_in_thermocycler.items(): + worksheet.write(row_num, col_num, key) + worksheet.write_column(row_num+1, col_num, value) + col_num += 1 + workbook.close() + self.xlsx_output = workbook + return self.xlsx_output - #output - print('Parts and reagents in temp_module') - print(self.dict_of_parts_in_temp_mod_position) - print('Assembled parts in thermocycler_module') - print(self.dict_of_parts_in_thermocycler) + #output + print('Parts and reagents in temp_module') + print(self.dict_of_parts_in_temp_mod_position) + print('Assembled parts in thermocycler_module') + print(self.dict_of_parts_in_thermocycler) # assembly assembly_sbol2_uris = [{ 'Backbone' : 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/ComponentDefinition_dvk_backbone_core/1', From e280cc66ab71aea638b5ae060606bf008d8d6a2d Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Thu, 22 May 2025 11:20:02 -0600 Subject: [PATCH 016/118] fixes minor bugs --- scripts/run_sbol2assembly_libre.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index e71dedb..0b5b2a6 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -2,6 +2,7 @@ from typing import List, Dict, Union from fnmatch import fnmatch from itertools import product +import xlsxwriter # utils @@ -266,11 +267,12 @@ def get_xlsx_output(self, name:str): self.xlsx_output = workbook return self.xlsx_output + #Make a print function for later #output - print('Parts and reagents in temp_module') - print(self.dict_of_parts_in_temp_mod_position) - print('Assembled parts in thermocycler_module') - print(self.dict_of_parts_in_thermocycler) + #print('Parts and reagents in temp_module') + #print(self.dict_of_parts_in_temp_mod_position) + #print('Assembled parts in thermocycler_module') + #print(self.dict_of_parts_in_thermocycler) # assembly assembly_sbol2_uris = [{ 'Backbone' : 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/ComponentDefinition_dvk_backbone_core/1', From 63ccdae07a204380a666d98a9a7a5cde9d88f8ce Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Thu, 22 May 2025 11:35:22 -0600 Subject: [PATCH 017/118] fixes minor bugs --- scripts/SBOL_xlsx.xlsx | Bin 0 -> 6286 bytes scripts/run_sbol2assembly_libre.py | 10 +++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 scripts/SBOL_xlsx.xlsx diff --git a/scripts/SBOL_xlsx.xlsx b/scripts/SBOL_xlsx.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..0609d9ffb4b5009f1bf153631217c69f52221b08 GIT binary patch literal 6286 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 literal 0 HcmV?d00001 diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index 0b5b2a6..339c8c0 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -222,8 +222,9 @@ def run(self, protocol: protocol_api.ProtocolContext): #part_ubication_in_thermocyler = thermocycler_mod_plate[thermo_wells[current_thermocycler_well]] liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[part_name]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) #This line under this comment was written to get it to run, not run correctly - self.dict_of_parts_in_thermocycler[current_thermocycler_well] = thermo_wells[current_thermocycler_well] - current_thermocycler_well+=1 + #need products uri + self.dict_of_parts_in_thermocycler[assembly["Product"]] = thermo_wells[current_thermocycler_well] + current_thermocycler_well+=1 protocol.comment('Take out the reagents since the temperature module will be turn off') #We close the thermocycler lid and wait for the temperature to reach 42°C @@ -278,9 +279,12 @@ def get_xlsx_output(self, name:str): assembly_sbol2_uris = [{ 'Backbone' : 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/ComponentDefinition_dvk_backbone_core/1', 'PartsList' : ['https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/J23100/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/E0040m_gfp/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0032/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0015/1'], -'RestrictionEnzyme' : 'https://charmme.synbiohub.org/user/Gonza10V/ligationtestforreal/ComponentDefinition_BsaI/1' +'RestrictionEnzyme' : 'https://charmme.synbiohub.org/user/Gonza10V/ligationtestforreal/ComponentDefinition_BsaI/1', +'Product' : 'https://charmme.synbiohub.org/public/CIDARMoCloKit/cre_CRE/1' }] +#Todo find product uri + # metadata metadata = { 'protocolName': 'PUDU Loop assembly', From b611f491d28cced713819a62765a4261ea46b9b1 Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Thu, 22 May 2025 11:45:58 -0600 Subject: [PATCH 018/118] fixes minor bugs --- scripts/SBOL_xlsx2.xlsx | Bin 0 -> 6327 bytes scripts/run_sbol2assembly_libre.py | 8 +++++++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 scripts/SBOL_xlsx2.xlsx diff --git a/scripts/SBOL_xlsx2.xlsx b/scripts/SBOL_xlsx2.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..7d058e5dd3f80434aaaceb47a9942fbf89a9033b GIT binary patch literal 6327 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 Ug&L|q&2R$12&!;~DSm$a4~mt`-~a#s literal 0 HcmV?d00001 diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index 339c8c0..3e376a1 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -146,6 +146,8 @@ def __init__(self, assemblies:List[Dict], self.odd_combinations = [] self.even_combinations = [] + #create a way to deal with multiple restriction Enzymes(will be a set) + # add parts to a set for assembly in self.assemblies: #part parts @@ -283,6 +285,10 @@ def get_xlsx_output(self, name:str): 'Product' : 'https://charmme.synbiohub.org/public/CIDARMoCloKit/cre_CRE/1' }] +#create a recursive function based on the how many times +#def assemblyRecursion(, duplicate dictionaries, amount): +# append() + #Todo find product uri # metadata @@ -296,5 +302,5 @@ def run(protocol= protocol_api.ProtocolContext): pudu_sbol2_assembly = sbol2assembly(assemblies=assembly_sbol2_uris) pudu_sbol2_assembly.run(protocol) - pudu_sbol2_assembly.get_xlsx_output("SBOL_xlsx") + pudu_sbol2_assembly.get_xlsx_output("SBOL_xlsx2") From d28f37582f347ac8a933575ff5685fe2d977e910 Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 4 Jun 2025 09:48:53 -0600 Subject: [PATCH 019/118] added xml to dictionary code --- src/pudu/utils.py | 64 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/src/pudu/utils.py b/src/pudu/utils.py index 2e490cb..611c976 100644 --- a/src/pudu/utils.py +++ b/src/pudu/utils.py @@ -110,4 +110,66 @@ def liquid_transfer(pipette, volume, source, destination, asp_rate:float=0.5, di 'G1':(7,1), 'G2':(7,2), 'G3':(7,3), 'G4':(7,4), 'G5':(7,5), 'G6':(7,6), 'G7':(7,7), 'G8':(7,8), 'G9':(7,9), 'G10':(7,10), 'G11':(7,11), 'G12':(7,12), 'H1':(8,1), 'H2':(8,2), 'H3':(8,3), 'H4':(8,4), 'H5':(8,5), 'H6':(8,6), 'H7':(8,7), 'H8':(8,8), 'H9':(8,9), 'H10':(8,10), 'H11':(8,11), 'H12':(8,12)} -row_letter_to_number = {'A':1, 'B':2, 'C':3, 'D':4, 'E':5, 'F':6, 'G':7, 'H':8} \ No newline at end of file +row_letter_to_number = {'A':1, 'B':2, 'C':3, 'D':4, 'E':5, 'F':6, 'G':7, 'H':8} + + +#This needs +def dictionaryCreator(file): + #given code from website + doc = sb2.Document() + doc.read(file) + #Loops through commponetDefinition + #for DNA + # Lists to store different components + BackBoneList = ['https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/ComponentDefinition_dvk_backbone_core/1'] + PartsList = ['https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/J23100/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/E0040m_gfp/1', + 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0032/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0015/1'] + RestrictionEnzymeList = ['https://charmme.synbiohub.org/user/Gonza10V/ligationtestforreal/ComponentDefinition_BsaI/1'] + # Flags to track duplicates + gotBone = False + gotZyme = False + # Output dictionary + outputDictionary = {"Parts": [], "Backbone": -1, "Restriction Enzyme": -1} + # Loop through component definitions + for cd in doc.componentDefinitions: + print(cd) + # Checks backbone + if cd in BackBoneList: + print(cd) + print("backbone") + if not gotBone: + outputDictionary["Backbone"] = cd + gotBone = True # Update flag + else: + print("You have more than one backbone") + return -1 + # Checks parts + if cd in PartsList: + print(cd) + print("got part") + outputDictionary["Parts"].append(cd) + # Checks enzymes + if cd in RestrictionEnzymeList: + print(cd) + print("Enzyme") + if not gotZyme: + outputDictionary["Restriction Enzyme"] = cd # Assign value + gotZyme = True # Update flag + else: + print("You have more than one restriction enzyme") + return -1 + # Error Checks + if len(outputDictionary["Parts"]) <= 1: + print("Invalid number of parts") + return -1 + if outputDictionary["Backbone"] == -1: + print("No Backbone found, try again") + return -1 + if outputDictionary["Restriction Enzyme"] == -1: + print("No Restriction Enzyme found, try again") + return -1 + #(outputDictionary) + response = jsonify(outputDictionary) + content = response.get_data(as_text=True) + + return content \ No newline at end of file From 286ac0f6e8fa4bb312a766c658c74792fcb8e004 Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 4 Jun 2025 09:51:06 -0600 Subject: [PATCH 020/118] added xml to dictionary code --- src/pudu/utils.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/pudu/utils.py b/src/pudu/utils.py index 611c976..d215825 100644 --- a/src/pudu/utils.py +++ b/src/pudu/utils.py @@ -113,8 +113,11 @@ def liquid_transfer(pipette, volume, source, destination, asp_rate:float=0.5, di row_letter_to_number = {'A':1, 'B':2, 'C':3, 'D':4, 'E':5, 'F':6, 'G':7, 'H':8} -#This needs +#Xml to uri dictionary def dictionaryCreator(file): + import sbol2 as sb2 + from flask import Flask, jsonify + app = Flask(__name__) #given code from website doc = sb2.Document() doc.read(file) From 5a086e1124daee1e854d060361aec0b375890f59 Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 4 Jun 2025 09:52:54 -0600 Subject: [PATCH 021/118] added xml to dictionary code --- src/pudu/utils.py | 65 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 63 insertions(+), 2 deletions(-) diff --git a/src/pudu/utils.py b/src/pudu/utils.py index d215825..92197ca 100644 --- a/src/pudu/utils.py +++ b/src/pudu/utils.py @@ -114,7 +114,7 @@ def liquid_transfer(pipette, volume, source, destination, asp_rate:float=0.5, di #Xml to uri dictionary -def dictionaryCreator(file): +def dictionaryCreatorjson(file): import sbol2 as sb2 from flask import Flask, jsonify app = Flask(__name__) @@ -175,4 +175,65 @@ def dictionaryCreator(file): response = jsonify(outputDictionary) content = response.get_data(as_text=True) - return content \ No newline at end of file + return content + +#same as before but no Json +def dictionaryCreatorPython(file): + import sbol2 as sb2 + #given code from website + doc = sb2.Document() + doc.read(file) + #Loops through commponetDefinition + #for DNA + # Lists to store different components + BackBoneList = ['https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/ComponentDefinition_dvk_backbone_core/1'] + PartsList = ['https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/J23100/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/E0040m_gfp/1', + 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0032/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0015/1'] + RestrictionEnzymeList = ['https://charmme.synbiohub.org/user/Gonza10V/ligationtestforreal/ComponentDefinition_BsaI/1'] + # Flags to track duplicates + gotBone = False + gotZyme = False + # Output dictionary + outputDictionary = {"Parts": [], "Backbone": -1, "Restriction Enzyme": -1} + # Loop through component definitions + for cd in doc.componentDefinitions: + print(cd) + # Checks backbone + if cd in BackBoneList: + print(cd) + print("backbone") + if not gotBone: + outputDictionary["Backbone"] = cd + gotBone = True # Update flag + else: + print("You have more than one backbone") + return -1 + # Checks parts + if cd in PartsList: + print(cd) + print("got part") + outputDictionary["Parts"].append(cd) + # Checks enzymes + if cd in RestrictionEnzymeList: + print(cd) + print("Enzyme") + if not gotZyme: + outputDictionary["Restriction Enzyme"] = cd # Assign value + gotZyme = True # Update flag + else: + print("You have more than one restriction enzyme") + return -1 + # Error Checks + if len(outputDictionary["Parts"]) <= 1: + print("Invalid number of parts") + return -1 + if outputDictionary["Backbone"] == -1: + print("No Backbone found, try again") + return -1 + if outputDictionary["Restriction Enzyme"] == -1: + print("No Restriction Enzyme found, try again") + return -1 + #(outputDictionary) + response = outputDictionary + + return response From 45bb674fe20f54cf06ac28656658e0d0a6440e08 Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 4 Jun 2025 10:08:40 -0600 Subject: [PATCH 022/118] recursive update to sbol2 assembly untested --- scripts/SBOL_xlsx2.xlsx | Bin 6327 -> 6328 bytes scripts/run_sbol2assembly_libre.py | 45 ++++++++++++++++++++--------- 2 files changed, 32 insertions(+), 13 deletions(-) diff --git a/scripts/SBOL_xlsx2.xlsx b/scripts/SBOL_xlsx2.xlsx index 7d058e5dd3f80434aaaceb47a9942fbf89a9033b..e0e08b888bf5a55b365168afc08a0a5061afbea9 100644 GIT binary patch delta 596 zcmV-a0;~PEF}N|XfCmoZ9$B!10RRAg1ONaO0Fyx%7PF)WBLPt9;S9y$*HO$h);!$t zTFARP2Do${W+WVaorK@nGG%Pav6&#Ba&no?P)x?_|0&KGTQS48Z9l^^8OXN{>cAT( zcT$7@$0mKOsUK>sIst!h+*N1TTb*+cR_u3K?k6+%LB_O! zuDYY%>OMxpkdUrEP3}ne>^_vMk z`8Q_oP)h>@6aWAK2mk;8KL7}Y=};&E002<}000pH003lfV^DH$aC0wXZ*pZWcx`N* zlFff=!!Qtp?}fgD(cPAvG-(jF18vEvfkIPKdK1zn5w(7h)H;6q%68%;;8TyQnf-Ql zQNBFND*6TMgjNO0k`zUtnC3$53-qyB#S0WUPZg(?R#2b@99ow5cR4eJX$x;w8?au0 zivmeG!c2h<-W!6kV+WAbCBdPBxYJfrA4-3_$A+?Rx(7T-(>a#lDW{&|78sj>h)zh( z2Bi71RR`bVvp~JJWsa|laJY&(zYaIv3E)pn&_~`*i}ZcKqY!}fanH(j`urxc zS)p>0PG)gBkJE=uHY3vonLU2BBX9aIKzSPSZ{iuy=f3>}<+COf{{jT!9$B!HDHpl~ i>MjD2ljj#r1qg-dP$-i*7*qi$la3f82GJD&00029Eek0C delta 566 zcmV-60?GZjF}E?WfCmJR&TU+?ga<{XfO;Y?(4P!!a4iw+-sR8z*;Cga5}SeXOS+YOUl* zh_e?7F9-zb2=u7!!Y;lFMqtFc3xeh5m!l-j*MvDZ+N3Em<{Cs7ph4 zLYgF^)&ohclfSR*I8Fjtbve3s&fFPPF7~pGe!)7SRfV!7MG+{bxlr2*eKgDX5k<~Z z#c8V*ROkQ>E$aKbk{QCZg*U4WSTDdufutN^rb0XK4Z+y49Z2eu;7~!_Xe)oI52f8= zL)kao0?yO)0ZZ_dQ%`XZjLk$uBa*WTX?|=w064?Yf&}Fq&XNqDy&kM|HyZ}!!YPG6 z7`SOYiIaQp#ANKcF6oNF8uDj&y?T8gR*i+~Z^Z!BC1-?LpkCX$#Fs@lTuYr_g&S`K z@TWu2Z@i6*9Q%MrApkkXJt-)k#q&$EM0K9#vpAi_dER7mQp`!7e)S`-`p-Z)4*56n z1UTlt{si^2Clvnz1dq;bT$3snx&-M6^uCkm7fl6P>9o2hlR6kw0Vk7>7$XMI6#xJL E079Dr?EnA( diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index 3e376a1..691d470 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -46,6 +46,24 @@ def liquid_transfer(pipette, volume, source, destination, asp_rate:float=0.5, di 'D1','D2','D3','D4','D5','D6' ] +#Helper function for print(TBD) + + +#Helper function for recursion +def processAssemblies(assemblies, index=0): + if index >= len(assemblies): # Base case: stop when index exceeds list length + return + #sets assembly = to current dict + assembly = assemblies[index] + + #runs the assembly for that dictionary + pudu_sbol2_assembly = sbol2assembly(assembly) + pudu_sbol2_assembly.run(protocol) + pudu_sbol2_assembly.get_xlsx_output("SBOL_xlsx2") + + # Recursively call the function for the next assembly + processAssemblies(assemblies, index + 1) + #class DNA Assembly class DNA_assembly(): ''' @@ -129,11 +147,11 @@ class sbol2assembly(DNA_assembly): Creates a protocol from a dictionary for the automated assembly. ''' - def __init__(self, assemblies:List[Dict], + def __init__(self, assembly:Dict, *args, **kwargs): super().__init__(*args, **kwargs) - self.assemblies = assemblies + self.assembly = assembly self.dict_of_parts_in_temp_mod_position = {} self.dict_of_parts_in_thermocycler = {} self.assembly_plan = None @@ -148,17 +166,12 @@ def __init__(self, assemblies:List[Dict], #create a way to deal with multiple restriction Enzymes(will be a set) - # add parts to a set - for assembly in self.assemblies: - #part parts - for part in assembly["PartsList"]: - self.parts_set.add(part) - #backbone parts - self.backbone_set.add(assembly["Backbone"]) - #1 enzyme - #most likely a later error caused here - #only takes the last restriction enzyme in the last dictionary - self.restriction_enzyme = assembly["RestrictionEnzyme"] + for part in assembly["PartsList"]: + self.parts_set.add(part) + #backbone part + self.backbone_set.add(assembly["Backbone"]) + #1 enzyme + self.restriction_enzyme = assembly["RestrictionEnzyme"] self.combined_set = self.parts_set.union(self.backbone_set) @@ -300,6 +313,12 @@ def get_xlsx_output(self, name:str): def run(protocol= protocol_api.ProtocolContext): + + #this is an issue the call should be recursive + print("what I want") + print(assembly_sbol2_uris) + #What assembly_sbol2_uris is a list of dictionaries + pudu_sbol2_assembly = sbol2assembly(assemblies=assembly_sbol2_uris) pudu_sbol2_assembly.run(protocol) pudu_sbol2_assembly.get_xlsx_output("SBOL_xlsx2") From 8c694abb5cad0d59ec5823cff54a2f9a1206b9f4 Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 4 Jun 2025 10:10:41 -0600 Subject: [PATCH 023/118] recursive update to sbol2 assembly untested --- scripts/run_sbol2assembly_libre.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index 691d470..4a65270 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -319,7 +319,6 @@ def run(protocol= protocol_api.ProtocolContext): print(assembly_sbol2_uris) #What assembly_sbol2_uris is a list of dictionaries - pudu_sbol2_assembly = sbol2assembly(assemblies=assembly_sbol2_uris) - pudu_sbol2_assembly.run(protocol) - pudu_sbol2_assembly.get_xlsx_output("SBOL_xlsx2") + processAssemblies(assembly_sbol2_uris, index=0) + From 506b238b880ef17a4ed56dc3abbe7c9a7042ab37 Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 4 Jun 2025 10:12:50 -0600 Subject: [PATCH 024/118] recursive update to sbol2 assembly untested --- scripts/run_sbol2assembly_libre.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index 4a65270..1683a74 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -50,7 +50,7 @@ def liquid_transfer(pipette, volume, source, destination, asp_rate:float=0.5, di #Helper function for recursion -def processAssemblies(assemblies, index=0): +def processAssemblies(assemblies, index=0, protocol): if index >= len(assemblies): # Base case: stop when index exceeds list length return #sets assembly = to current dict @@ -319,6 +319,6 @@ def run(protocol= protocol_api.ProtocolContext): print(assembly_sbol2_uris) #What assembly_sbol2_uris is a list of dictionaries - processAssemblies(assembly_sbol2_uris, index=0) + processAssemblies(assembly_sbol2_uris, index=0, protocol) From b4e61c29f8def18f6cde6e1d84b27544c0c4e84e Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 4 Jun 2025 10:19:32 -0600 Subject: [PATCH 025/118] recursive update to sbol2 assembly untested --- scripts/SBOL_xlsx2.xlsx | Bin 6328 -> 6324 bytes scripts/run_sbol2assembly_libre.py | 67 +++++++++++++---------------- 2 files changed, 29 insertions(+), 38 deletions(-) diff --git a/scripts/SBOL_xlsx2.xlsx b/scripts/SBOL_xlsx2.xlsx index e0e08b888bf5a55b365168afc08a0a5061afbea9..03243f523884c67bbdca785d98baf612e73391ef 100644 GIT binary patch delta 1181 zcmV;O1Y-NRF|;wTfCmMq6h5eelZ6LPf0U!&e7xu98RsW|jZPlGqjI(&>4K32taOdC z+k)KQ{QUldBp8HkgmxARvI8V1<-xZcF(k3pVnMnP`eRB_c3=c9Tn{!zTIY=j@#wb{ zdk><)4j>p!Gscdn5z3N8y1|BmWJ{6^R^1O!y#i&9s?0-qC49g{*(8AJxpB>)e<7!# z%;`S&OVBi{h|BTAzB{*Lo_V9q-o_$AHBBW6k27~KFl{L>Yj>(&2oSLdhe z>q}Q@ccB8^Ft*HQC=S1rB0Zd;SvdMSiaGC^hdW*ic~{2(m(Igf!e)YeUcwn;D`xn% z?Pquqz3ukr3&DSJ!7V4?70lWzhJ4 zluuAg0|b*^7aFrg2>}QNQ^h(?R+CE+FMridOT#c2!124_cPP2Lq}_`m>xS#5RM}-r zuO&^NwqbcGNjjXL-Z&AQ46!GBED!xZ{e_lJ=dV%(doY%36{B!KPymYQf~zV<&)fT} z8x&YaRY8ST5TgTFG@o5wOgA8?^EcU=H#YDUWn)x3*W6-kSq+lffo?$gNvVyb&VOH; z3OAJPXazVTWP;822AZ8TgS3c|NsAB#+d~6?Y3s7&43?U;5|lf$0@uD|1XnvBrKSS+ znYF&lYHFl}fjy|4>$=U4$<~6w4_dv^ki1~Qt7FW8b$+n{DsZA@<4;DpC6rw8k8!rJ zG{xc9jk?ctOZ8>dG1RnG=q?az?%7oO}O@ z{VvP>hnD+6#wjAHBEYJdW?o4AzeM!|LSSlTyXXS!VF}|X7!r{ zpZqsw?@&tv1QY-O00;m806zfgP7^OD0RR9|0ssIJ0001FZ(~q$Z*X%jW0PGN2a*#H zf1ISI7~6rivBjkIgE6M3M7UaoT7FCF;PTWp#g7Fq1QF;mv9T)(db^ASstKQ=+~1Cdb&Z zJxJ=3;7~!_X)CD@S6gF4**C2L&j`t|e*{lC^%VEO*o;JULUJ}D&5vyc0B0B)kf6N7 zX_DfL*MpUAvS3iIoKpDCz@+soj_!jKqp@wb0#3e0>RvYpC<RaB_Ux4z|<|iY%gP{0cCjkHeQ33z}5dZ)H0000000000wt>!*P#8V|B$JOABL>YC00000rpp=( delta 1137 zcmV-%1djW(F}N|XfCmNQ9$B!1lZ6LPe}$vp%=o=|o^gKi*XZN{JSt}kk}eoYz)IIB zyDiA=&Cl;YNP;Qt%G-K?D8lfynq#JA~NVX)&VAcHq)hkfusLDK)SHcHOluZJdo*UN;e;RTc z%AD@wFF8%ayUdNzbvj1EiZ@npt+oOum#ni7(|J9#E%-^*a*XWl!03nUgf|8jxU;o# z-B3SUF(7#Q%h^YfvOjcxb%@pnzz_|KE@@gh(?_puIE7YOwGZcAT(cT$7@$0mKOsUK>s4f!|3k^WOWGY2SvOoarOIx`^tPnw*ETGN zlBC1=>x~n^$q;*GFT+coH&60Grt?=Rf;||^wTe+VASeLEbiq{>qv!4Y)eQ=)qpF}n zD~QnnESk?QFQyw1)cH-e=8X+JMcEkD&Na6fTULXlcAy(jJ}I@4)cJpdmC^Z$hPptJ^R#PJ- z4D3PWT-R-WM79OMxpkdUrEP3}ne>^_vMk`8Q_o zP)h>@6aWAK2mk;8KL7}Y=};(>;SwuwgYX+sewXMQhF28CK0uMkkmSU`^t9W zB;ZqztC{_Fc2T}O$}0K=>x5PX%90dCpqS=D?F;m=S;Y$!IZqX*l~z!o1{_+J_jfrn zglP+JRvWNhfQtf2Il@eV4&EDrv1132)Fr{8g1FOGQXfjY$A+?Rx(7T-(>a!Z;3=n` z;uaX2frw5>&IY9Uu~i4)3_}GHly^8wGJNrRu+oh-bjp=e3f~wQwVuVneRN_l)^(lK z)6N?5XZUmd`rfS?3)S9=0V;FO2(v)Fwq=g5i*UG#I=>D#-U;AOP0&Z)PK)$?z@rd= z^l{J1cKZCXS)p>0PG)gBkJE=6O*SLb1(`j5wIgr(FF<)3@^9i9(C5DW1mz#IBozJv z1>zoAu!EB)7gqr%lYbXF0#yr>a0?Za&=(LJ>MjD2SOEY4fCc~nBLDyZ0000000000 zwt+a4`xiDF2!-iTC;-;Oc*`^D3gmABL>kG00000 D|6>Jt diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index 1683a74..f72669c 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -46,11 +46,16 @@ def liquid_transfer(pipette, volume, source, destination, asp_rate:float=0.5, di 'D1','D2','D3','D4','D5','D6' ] -#Helper function for print(TBD) +#Helper function for print +def printFunct(): + print('Parts and reagents in temp_module') + print(self.dict_of_parts_in_temp_mod_position) + print('Assembled parts in thermocycler_module') + print(self.dict_of_parts_in_thermocycler) #Helper function for recursion -def processAssemblies(assemblies, index=0, protocol): +def processAssemblies(assemblies, protocol, index=0): if index >= len(assemblies): # Base case: stop when index exceeds list length return #sets assembly = to current dict @@ -220,27 +225,26 @@ def run(self, protocol: protocol_api.ProtocolContext): #can be done with multichannel pipette? current_thermocycler_well = self.thermocycler_starting_well #build combinations - for assembly in self.assemblies: - for r in range(self.replicates): - volume_dd_h2o = self.volume_total_reaction - (volume_reagents + self.volume_part*len(assembly["PartsList"])) - liquid_transfer(pipette, volume_dd_h2o, dd_h2o, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate) - liquid_transfer(pipette, self.volume_t4_dna_ligase_buffer, t4_dna_ligase_buffer, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase_buffer) - liquid_transfer(pipette, self.volume_t4_dna_ligase, t4_dna_ligase, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase) - liquid_transfer(pipette, self.volume_restriction_enzyme, restriction_enzyme_tube, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_restriction_enzyme) - #pippeting backbone - liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[assembly["Backbone"]]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) - #pippeting parts - for part in assembly["PartsList"]: - if type(part) == str: - part_name=part - else: raise ValueError(f'Part {part} is not a string nor sbol2.Component') #TODO: improve this check - #part_ubication_in_thermocyler = thermocycler_mod_plate[thermo_wells[current_thermocycler_well]] - liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[part_name]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) - #This line under this comment was written to get it to run, not run correctly - #need products uri - self.dict_of_parts_in_thermocycler[assembly["Product"]] = thermo_wells[current_thermocycler_well] - current_thermocycler_well+=1 - + for r in range(self.replicates): + volume_dd_h2o = self.volume_total_reaction - (volume_reagents + self.volume_part*len(self.assembly["PartsList"])) + liquid_transfer(pipette, volume_dd_h2o, dd_h2o, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate) + liquid_transfer(pipette, self.volume_t4_dna_ligase_buffer, t4_dna_ligase_buffer, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase_buffer) + liquid_transfer(pipette, self.volume_t4_dna_ligase, t4_dna_ligase, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase) + liquid_transfer(pipette, self.volume_restriction_enzyme, restriction_enzyme_tube, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_restriction_enzyme) + #pippeting backbone + liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[self.assembly["Backbone"]]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) + #pippeting parts + for part in self.assembly["PartsList"]: + if type(part) == str: + part_name=part + else: raise ValueError(f'Part {part} is not a string nor sbol2.Component') #TODO: improve this check + #part_ubication_in_thermocyler = thermocycler_mod_plate[thermo_wells[current_thermocycler_well]] + liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[part_name]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) + #This line under this comment was written to get it to run, not run correctly + #need products uri + self.dict_of_parts_in_thermocycler[self.assembly["Product"]] = thermo_wells[current_thermocycler_well] + current_thermocycler_well+=1 + protocol.comment('Take out the reagents since the temperature module will be turn off') #We close the thermocycler lid and wait for the temperature to reach 42°C thermocycler_mod.close_lid() @@ -281,14 +285,7 @@ def get_xlsx_output(self, name:str): col_num += 1 workbook.close() self.xlsx_output = workbook - return self.xlsx_output - - #Make a print function for later - #output - #print('Parts and reagents in temp_module') - #print(self.dict_of_parts_in_temp_mod_position) - #print('Assembled parts in thermocycler_module') - #print(self.dict_of_parts_in_thermocycler) + return self.xlsx_output # assembly assembly_sbol2_uris = [{ 'Backbone' : 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/ComponentDefinition_dvk_backbone_core/1', @@ -298,12 +295,6 @@ def get_xlsx_output(self, name:str): 'Product' : 'https://charmme.synbiohub.org/public/CIDARMoCloKit/cre_CRE/1' }] -#create a recursive function based on the how many times -#def assemblyRecursion(, duplicate dictionaries, amount): -# append() - -#Todo find product uri - # metadata metadata = { 'protocolName': 'PUDU Loop assembly', @@ -319,6 +310,6 @@ def run(protocol= protocol_api.ProtocolContext): print(assembly_sbol2_uris) #What assembly_sbol2_uris is a list of dictionaries - processAssemblies(assembly_sbol2_uris, index=0, protocol) + processAssemblies(assembly_sbol2_uris, protocol, index=0) From a5dec1fc213e40e83a14b37dcc2594c21959ed4b Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 4 Jun 2025 10:57:20 -0600 Subject: [PATCH 026/118] recursive update to sbol2 still error with load_module --- scripts/run_sbol2assembly_libre.py | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index f72669c..0e71ed0 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -310,6 +310,7 @@ def run(protocol= protocol_api.ProtocolContext): print(assembly_sbol2_uris) #What assembly_sbol2_uris is a list of dictionaries + #Does not work issues with load_module(unknown cause of error) processAssemblies(assembly_sbol2_uris, protocol, index=0) From e0a8e35872597cd8dd06aa532a495b91011c9ddc Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Thu, 5 Jun 2025 11:47:28 -0600 Subject: [PATCH 027/118] added xml to dictionary code --- src/pudu/utils.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/pudu/utils.py b/src/pudu/utils.py index 92197ca..09401f4 100644 --- a/src/pudu/utils.py +++ b/src/pudu/utils.py @@ -178,6 +178,7 @@ def dictionaryCreatorjson(file): return content #same as before but no Json +#Change to add roles def dictionaryCreatorPython(file): import sbol2 as sb2 #given code from website @@ -186,15 +187,18 @@ def dictionaryCreatorPython(file): #Loops through commponetDefinition #for DNA # Lists to store different components - BackBoneList = ['https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/ComponentDefinition_dvk_backbone_core/1'] - PartsList = ['https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/J23100/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/E0040m_gfp/1', - 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0032/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0015/1'] - RestrictionEnzymeList = ['https://charmme.synbiohub.org/user/Gonza10V/ligationtestforreal/ComponentDefinition_BsaI/1'] - # Flags to track duplicates - gotBone = False - gotZyme = False + ProductRoleList = ['http://identifiers.org/so/SO:0000804'] + + #look at the roles for each + for cd in doc.componentDefinitions: + #check for role + if cd.role in ProductRoleList: + print(cd) + + + # Output dictionary - outputDictionary = {"Parts": [], "Backbone": -1, "Restriction Enzyme": -1} + outputAssemblies = [] # Loop through component definitions for cd in doc.componentDefinitions: print(cd) From 7049187155c8e7a7690ff522305f188a60db5a20 Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Thu, 5 Jun 2025 11:48:13 -0600 Subject: [PATCH 028/118] revert back to old --- scripts/LukeTestingNotebook.ipynb | 51 ++++++++++++ scripts/SBOL_xlsx2.xlsx | Bin 6324 -> 6327 bytes scripts/run_sbol2assembly_libre.py | 123 +++++++++++++---------------- 3 files changed, 107 insertions(+), 67 deletions(-) create mode 100644 scripts/LukeTestingNotebook.ipynb diff --git a/scripts/LukeTestingNotebook.ipynb b/scripts/LukeTestingNotebook.ipynb new file mode 100644 index 0000000..c28765a --- /dev/null +++ b/scripts/LukeTestingNotebook.ipynb @@ -0,0 +1,51 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "68d30519", + "metadata": { + "vscode": { + "languageId": "plaintext" + } + }, + "outputs": [], + "source": [ + "def dictionaryCreatorPython(file):\n", + " import sbol2 as sb2\n", + " #given code from website\n", + " doc = sb2.Document()\n", + " doc.read(file)\n", + " #Loops through commponetDefinition\n", + " #for DNA\n", + "\n", + " #look at the roles for each\n", + " for cd in doc.componentDefinitions:\n", + " #check for role\n", + " if cd.role =='http://identifiers.org/so/SO:0000804':\n", + " print(cd)#allproducts" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6a11bb44", + "metadata": { + "vscode": { + "languageId": "plaintext" + } + }, + "outputs": [], + "source": [ + "cd.features" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/scripts/SBOL_xlsx2.xlsx b/scripts/SBOL_xlsx2.xlsx index 03243f523884c67bbdca785d98baf612e73391ef..91b8d7bd4a3ab3c6e1e19b4d33b24051cb6c630b 100644 GIT binary patch delta 1131 zcmV-x1eE)*hXk)p&&aza#9|A%Mn8ob1fF63!y)z6lDiS;KKD_Bhxx>M2JVfrPzBA z4R!#*Xqqv0M2%3EB+?Bw6eL@cWU%Uffa(<}b5vy>$}8amCdwuOOwWyL1`Rn4e`QYh z{7X#J@Gf&>be)cou;PssT&u0X$tCOT!*E^?Z3}*qwHzaRJ23hoJK>Fi1@3IETsPFu zRtyN9{&MzFr0fsfUmc?L0Wd_vqDz`q&h*i18&08BR_$rNL2*te?W|Y-qg|b!uCFg$ zrQL-Jbi-JBI3scRbrN%pH4k^ZQx@{Bjs%y^!%PWBU)tp|n@VgZ$mb=_7+W#Jw{1V8 zGa0eZ>-^4^DPuDllYxBOpboroawj$Te{9mn_4Grnl^hi!J@D%KZ06y{z`F<<|Bvzs zvnB~22nCC0o}^flN)a!Am0L^0Fc^mK1^+|Iy-V616j?W1H>JvM#`LzN>DM+ahmxej z`Rk1n!O0MNWiP`^o;OdvK&JCoDS|y1%e9J8I3Oqh#dN_{6{F|v{nZT$tfQ)+LMw>T z0W6x&E-$7V5Y+iiw&sluJVn_U)y_4y7+Y3@q;{YiP(CTOk<|HrrKxa3*^X9#BSI$F zd}pB92{TBG7@4#PQLsHU@E5i&OU_`aSt~)gGZnb@BqO-mc_=j%xKFJ0Tvk&fB@FCA z z4veA#;q#tRk35rWba}T~>qO`$?(l+;aNJdA*jt@*11t8sEcY)n_d&+Afv&ov-s<}4 z4Wq6)ju3q=jj7Vd|+Cz&S+@R4m_H*_jfh7lp6=H z&RB3kf=?nzd&+HtHX&GwvF965%xBS|qqs6ou@FnQ#+LDKwgy}fGQ|pi0uwASya%Rs zB%&iy@DXW$TsHs&$IyWS9X!sn9G|@bobopt2Ia!3WY}4_X+4Rfd+X(B?E60J%fTA+ z=lFB+@;0oRO1-}o2h`SrQ|^ETBmvht>q?n{+nv%&GGOsA9Xjy&jM_%=xf$BKq-^3H(ko)=*w6h}={{jU*Ak= zwjk+(kp!%Cjk4Q<+}`~B{(~eKgl&X&77DThBq!y;w;VAfvDRWix)AzfN>O%T1TI_; zHbz?KjR^7Rw-kF1qQMRz7)>+Aj;ImJl0>?}hJs{Ek_=Ye4^X`VWsa)MLwO~9z(m<3 zfa$q$&7dKtp?}QjKK_!^G`!2)7+t4hB&>L21=ngTaMEO*eVEScp>4rWs+MD9ZwE#{ zWGB2au)v+ImFtH3*@^+d(_hX$ij@7K`_>^^9{@u%EV`s=~O zl0^KmS%w{MKzmy_9oS``SI#!A~@0y1@UJH3w#{iek!&Jg% zf_z@W8DlGE__pn5cqSwEd7j_dGG%OrV=|C$8`Oa}PVS@z|Bp@jSWiFHTFH?R>48_* zXEP5w2Hs`R_@lU)}YvqcF32nAEcI!;!TOA#-B)lEyoFc`q`yWn>yxx1v@ ziz4fW>!wuMWlXOnO`o=5c_~RcoS)t}5u6OMCwnXp{XhMMmQLrdQUrT2mTMKGa6nK1 zis^!@Dn`%S`>PuiSVvVsg;o%w16VYlU0zH#AgJ><*_t;t@D*iaR6Ez)Vr*FrlG=f8 zK>10jjik=N)5Cz*q1Al4jvg8bwnza&?JF^1U zzGMVfJ0GQ{0{5AmS@qGjVx zM!6-FT=9=_wy-qC;n$9}F8t%KUL6=k1;Xc@QIDK|NxHn-taT#v6L)w)$S~^48TOeI zj=OS3z2%&H|BC%C%l(Iz`$5LEfv((fZ@DW%Mnq;+*>p8cdTV-&h9MzcJ=g#0Y1&+H z_5;EUWXWdrn*^WyH)iipO9KQH000080000#0P0Q?FDC&208s(}01*HH0Az1tP;zf@ zb1!3)`4Sd?oTR20+kv*^)Igyr4ZR6z6NNOFwePt(c67Z>@i!`&}&MqpJ2iZiw zV4cvaL}@}$1d3@cR9&Kv%_@FGk@Hk>+GqtO>cF98b$?edlQV7M&1wVI3vf{&DVH-- zqP_Pf$JntwNa~W{P(j>jE2$4xTVq4nH?0BB2+6R21W!5j6!*Z`j6`%oayBB(k8K73 zXBZlgpuEFrlH!ZkgOzTwU{J1{Quxlmr1dP0?t>Gfv2EL=oe$QKKgHYi>-#WjEL6WM z2B<1H%b5l0wXF(#eF=+esPpTvOMrIE& z$zrk@*rZt=&LaKlTi(=Pfb!Jj-^4TEnEUn_?ju;~b%@qIu006O^ B7lHr) diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index 0e71ed0..d76c499 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -1,4 +1,4 @@ -from opentrons import protocol_api +from opentrons import protocol_apiMore actions from typing import List, Dict, Union from fnmatch import fnmatch from itertools import product @@ -46,29 +46,6 @@ def liquid_transfer(pipette, volume, source, destination, asp_rate:float=0.5, di 'D1','D2','D3','D4','D5','D6' ] -#Helper function for print -def printFunct(): - print('Parts and reagents in temp_module') - print(self.dict_of_parts_in_temp_mod_position) - print('Assembled parts in thermocycler_module') - print(self.dict_of_parts_in_thermocycler) - - -#Helper function for recursion -def processAssemblies(assemblies, protocol, index=0): - if index >= len(assemblies): # Base case: stop when index exceeds list length - return - #sets assembly = to current dict - assembly = assemblies[index] - - #runs the assembly for that dictionary - pudu_sbol2_assembly = sbol2assembly(assembly) - pudu_sbol2_assembly.run(protocol) - pudu_sbol2_assembly.get_xlsx_output("SBOL_xlsx2") - - # Recursively call the function for the next assembly - processAssemblies(assemblies, index + 1) - #class DNA Assembly class DNA_assembly(): ''' @@ -129,7 +106,7 @@ def __init__(self, pipette_position:str = 'left', aspiration_rate:float=0.5, dispense_rate:float=1,): - + self.volume_total_reaction = volume_total_reaction self.volume_part = volume_part self.volume_restriction_enzyme = volume_restriction_enzyme @@ -152,11 +129,11 @@ class sbol2assembly(DNA_assembly): Creates a protocol from a dictionary for the automated assembly. ''' - def __init__(self, assembly:Dict, + def __init__(self, assemblies:List[Dict], *args, **kwargs): super().__init__(*args, **kwargs) - - self.assembly = assembly + + self.assemblies = assemblies self.dict_of_parts_in_temp_mod_position = {} self.dict_of_parts_in_thermocycler = {} self.assembly_plan = None @@ -168,15 +145,20 @@ def __init__(self, assembly:Dict, self.has_even = False self.odd_combinations = [] self.even_combinations = [] - + #create a way to deal with multiple restriction Enzymes(will be a set) - for part in assembly["PartsList"]: - self.parts_set.add(part) - #backbone part - self.backbone_set.add(assembly["Backbone"]) - #1 enzyme - self.restriction_enzyme = assembly["RestrictionEnzyme"] + # add parts to a set + for assembly in self.assemblies: + #part parts + for part in assembly["PartsList"]: + self.parts_set.add(part) + #backbone parts + self.backbone_set.add(assembly["Backbone"]) + #1 enzyme + #most likely a later error caused here + #only takes the last restriction enzyme in the last dictionary + self.restriction_enzyme = assembly["RestrictionEnzyme"] self.combined_set = self.parts_set.union(self.backbone_set) @@ -187,7 +169,7 @@ def __init__(self, assembly:Dict, thermocycler_wells_needed = (len(self.odd_combinations) + len(self.even_combinations))*self.replicates if thermocycler_wells_needed > thermocyler_available_wells: raise ValueError(f'According to your setup this protocol only supports assemblies with up to {thermocyler_available_wells} combinations. Number of combinations in the protocol is {thermocycler_wells_needed}.') - + def run(self, protocol: protocol_api.ProtocolContext): #Labware #Load temperature module @@ -225,25 +207,26 @@ def run(self, protocol: protocol_api.ProtocolContext): #can be done with multichannel pipette? current_thermocycler_well = self.thermocycler_starting_well #build combinations - for r in range(self.replicates): - volume_dd_h2o = self.volume_total_reaction - (volume_reagents + self.volume_part*len(self.assembly["PartsList"])) - liquid_transfer(pipette, volume_dd_h2o, dd_h2o, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate) - liquid_transfer(pipette, self.volume_t4_dna_ligase_buffer, t4_dna_ligase_buffer, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase_buffer) - liquid_transfer(pipette, self.volume_t4_dna_ligase, t4_dna_ligase, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase) - liquid_transfer(pipette, self.volume_restriction_enzyme, restriction_enzyme_tube, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_restriction_enzyme) - #pippeting backbone - liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[self.assembly["Backbone"]]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) - #pippeting parts - for part in self.assembly["PartsList"]: - if type(part) == str: - part_name=part - else: raise ValueError(f'Part {part} is not a string nor sbol2.Component') #TODO: improve this check - #part_ubication_in_thermocyler = thermocycler_mod_plate[thermo_wells[current_thermocycler_well]] - liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[part_name]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) - #This line under this comment was written to get it to run, not run correctly - #need products uri - self.dict_of_parts_in_thermocycler[self.assembly["Product"]] = thermo_wells[current_thermocycler_well] - current_thermocycler_well+=1 + for assembly in self.assemblies: + for r in range(self.replicates): + volume_dd_h2o = self.volume_total_reaction - (volume_reagents + self.volume_part*len(assembly["PartsList"])) + liquid_transfer(pipette, volume_dd_h2o, dd_h2o, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate) + liquid_transfer(pipette, self.volume_t4_dna_ligase_buffer, t4_dna_ligase_buffer, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase_buffer) + liquid_transfer(pipette, self.volume_t4_dna_ligase, t4_dna_ligase, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase) + liquid_transfer(pipette, self.volume_restriction_enzyme, restriction_enzyme_tube, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_restriction_enzyme) + #pippeting backbone + liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[assembly["Backbone"]]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) + #pippeting parts + for part in assembly["PartsList"]: + if type(part) == str: + part_name=part + else: raise ValueError(f'Part {part} is not a string nor sbol2.Component') #TODO: improve this check + #part_ubication_in_thermocyler = thermocycler_mod_plate[thermo_wells[current_thermocycler_well]] + liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[part_name]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) + #This line under this comment was written to get it to run, not run correctly + #need products uri + self.dict_of_parts_in_thermocycler[assembly["Product"]] = thermo_wells[current_thermocycler_well] + current_thermocycler_well+=1 protocol.comment('Take out the reagents since the temperature module will be turn off') #We close the thermocycler lid and wait for the temperature to reach 42°C @@ -285,8 +268,15 @@ def get_xlsx_output(self, name:str): col_num += 1 workbook.close() self.xlsx_output = workbook - return self.xlsx_output - + return self.xlsx_output + + #Make a print function for later + #output + #print('Parts and reagents in temp_module') + #print(self.dict_of_parts_in_temp_mod_position) + #print('Assembled parts in thermocycler_module') + #print(self.dict_of_parts_in_thermocycler) + # assembly assembly_sbol2_uris = [{ 'Backbone' : 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/ComponentDefinition_dvk_backbone_core/1', 'PartsList' : ['https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/J23100/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/E0040m_gfp/1', @@ -295,6 +285,12 @@ def get_xlsx_output(self, name:str): 'Product' : 'https://charmme.synbiohub.org/public/CIDARMoCloKit/cre_CRE/1' }] +#create a recursive function based on the how many times +#def assemblyRecursion(, duplicate dictionaries, amount): +# append() + +#Todo find product uri + # metadata metadata = { 'protocolName': 'PUDU Loop assembly', @@ -304,13 +300,6 @@ def get_xlsx_output(self, name:str): def run(protocol= protocol_api.ProtocolContext): - - #this is an issue the call should be recursive - print("what I want") - print(assembly_sbol2_uris) - #What assembly_sbol2_uris is a list of dictionaries - - #Does not work issues with load_module(unknown cause of error) - processAssemblies(assembly_sbol2_uris, protocol, index=0) - - + pudu_sbol2_assembly = sbol2assembly(assemblies=assembly_sbol2_uris) + pudu_sbol2_assembly.run(protocol) + pudu_sbol2_assembly.get_xlsx_output("SBOL_xlsx") \ No newline at end of file From 74335f573cf3a44192c363e1bb0071c9040e9035 Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Thu, 5 Jun 2025 11:58:48 -0600 Subject: [PATCH 029/118] updates to assembly --- scripts/run_sbol2assembly_libre.py | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index d76c499..1695dcf 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -139,15 +139,13 @@ def __init__(self, assemblies:List[Dict], self.assembly_plan = None self.parts_set = set() self.backbone_set = set() - self.restriction_enzyme = "" #empty string to prevent early call of assembly + self.restriction_enzyme_set = set() self.combined_set = set() self.has_odd = False self.has_even = False self.odd_combinations = [] self.even_combinations = [] - #create a way to deal with multiple restriction Enzymes(will be a set) - # add parts to a set for assembly in self.assemblies: #part parts @@ -155,10 +153,8 @@ def __init__(self, assemblies:List[Dict], self.parts_set.add(part) #backbone parts self.backbone_set.add(assembly["Backbone"]) - #1 enzyme - #most likely a later error caused here - #only takes the last restriction enzyme in the last dictionary - self.restriction_enzyme = assembly["RestrictionEnzyme"] + #add enzymes + self.restriction_enzyme_set.add(assembly["RestrictionEnzyme"]) self.combined_set = self.parts_set.union(self.backbone_set) @@ -193,9 +189,11 @@ def run(self, protocol: protocol_api.ProtocolContext): self.dict_of_parts_in_temp_mod_position['t4_dna_ligase_buffer'] = temp_wells[2] temp_wells_counter = 3 restriction_enzyme_tube = tem_mod_block[temp_wells[temp_wells_counter]] - self.dict_of_parts_in_temp_mod_position[self.restriction_enzyme] = temp_wells[temp_wells_counter] - temp_wells_counter += 1 - #Load the parts + #load the enzymes + for enzyme in self.restriction_enzyme_set: + self.dict_of_parts_in_temp_mod_position[enzyme] = temp_wells[temp_wells_counter] + temp_wells_counter += 1 + #Load the parts(includes backbones) for part in self.combined_set: self.dict_of_parts_in_temp_mod_position[part] = temp_wells[temp_wells_counter] temp_wells_counter += 1 @@ -213,7 +211,7 @@ def run(self, protocol: protocol_api.ProtocolContext): liquid_transfer(pipette, volume_dd_h2o, dd_h2o, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate) liquid_transfer(pipette, self.volume_t4_dna_ligase_buffer, t4_dna_ligase_buffer, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase_buffer) liquid_transfer(pipette, self.volume_t4_dna_ligase, t4_dna_ligase, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase) - liquid_transfer(pipette, self.volume_restriction_enzyme, restriction_enzyme_tube, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_restriction_enzyme) + liquid_transfer(pipette, self.volume_restriction_enzyme, tem_mod_block[self.dict_of_parts_in_temp_mod_position[assembly['RestrictionEnzyme']]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_restriction_enzyme) #pippeting backbone liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[assembly["Backbone"]]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) #pippeting parts @@ -302,4 +300,4 @@ def run(protocol= protocol_api.ProtocolContext): pudu_sbol2_assembly = sbol2assembly(assemblies=assembly_sbol2_uris) pudu_sbol2_assembly.run(protocol) - pudu_sbol2_assembly.get_xlsx_output("SBOL_xlsx") \ No newline at end of file + pudu_sbol2_assembly.get_xlsx_output("SBOL_xlsx3") \ No newline at end of file From f766007bb4a06638909dfc3a48ee5a4bfd524c2e Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Thu, 5 Jun 2025 12:00:35 -0600 Subject: [PATCH 030/118] updates to assembly --- scripts/SBOL_xlsx3.xlsx | Bin 0 -> 6328 bytes scripts/run_sbol2assembly_libre.py | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 scripts/SBOL_xlsx3.xlsx diff --git a/scripts/SBOL_xlsx3.xlsx b/scripts/SBOL_xlsx3.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..7ac5d7c7f204ccf114d58872f639d9cb0a0cf8ca GIT binary patch literal 6328 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 Ss{VAtF#yA`!Wky|`SpL>SkX-Y literal 0 HcmV?d00001 diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index 1695dcf..a13914c 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -1,4 +1,4 @@ -from opentrons import protocol_apiMore actions +from opentrons import protocol_api from typing import List, Dict, Union from fnmatch import fnmatch from itertools import product From 01f24d5533b33ba5d7a5e11830f1d20a314a146e Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 11 Jun 2025 09:32:43 -0600 Subject: [PATCH 031/118] 3 different dictionaries with promoters --- scripts/LukeTestingNotebook.ipynb | 61 ++++++++++++++++++----------- scripts/SBOL_xlsx4.xlsx | Bin 0 -> 6420 bytes scripts/run_sbol2assembly_libre.py | 17 +++++++- 3 files changed, 54 insertions(+), 24 deletions(-) create mode 100644 scripts/SBOL_xlsx4.xlsx diff --git a/scripts/LukeTestingNotebook.ipynb b/scripts/LukeTestingNotebook.ipynb index c28765a..2a42a27 100644 --- a/scripts/LukeTestingNotebook.ipynb +++ b/scripts/LukeTestingNotebook.ipynb @@ -4,46 +4,63 @@ "cell_type": "code", "execution_count": null, "id": "68d30519", - "metadata": { - "vscode": { - "languageId": "plaintext" + "metadata": {}, + "outputs": [ + { + "ename": "FileNotFoundError", + "evalue": "[Errno 2] No such file or directory: 'C:\\\\Users\\\\lukef\\\\OneDrive\\\\Desktop\\\\hmwk0\\\\CSCI_1300F\\\\Work\\\\PUDUWork\\\\PUDU\\\\RyanTest.xml'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m~\\AppData\\Local\\Temp\\ipykernel_3980\\1001182099.py\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 14\u001b[0m \u001b[0mcd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfeatures\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 15\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 16\u001b[1;33m \u001b[0mdictionaryCreatorPython\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'RyanTest.xml'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;32m~\\AppData\\Local\\Temp\\ipykernel_3980\\1001182099.py\u001b[0m in \u001b[0;36mdictionaryCreatorPython\u001b[1;34m(file)\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;31m#given code from website\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[0mdoc\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msb2\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mDocument\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 5\u001b[1;33m \u001b[0mdoc\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfile\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 6\u001b[0m \u001b[1;31m#Loops through commponetDefinition\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[1;31m#for DNA\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mc:\\Users\\lukef\\.conda\\envs\\test\\lib\\site-packages\\sbol2\\document.py\u001b[0m in \u001b[0;36mread\u001b[1;34m(self, filename)\u001b[0m\n\u001b[0;32m 424\u001b[0m \"\"\"\n\u001b[0;32m 425\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mclear\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 426\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0moverwrite\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mFalse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 427\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 428\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mreadString\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msbol_str\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mc:\\Users\\lukef\\.conda\\envs\\test\\lib\\site-packages\\sbol2\\document.py\u001b[0m in \u001b[0;36mappend\u001b[1;34m(self, filename, overwrite)\u001b[0m\n\u001b[0;32m 461\u001b[0m \"\"\"\n\u001b[0;32m 462\u001b[0m \u001b[0mnew_graph\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mrdflib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mGraph\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 463\u001b[1;33m \u001b[0mnew_graph\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mparse\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mformat\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'application/rdf+xml'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 464\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_append_graph\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnew_graph\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0moverwrite\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 465\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mc:\\Users\\lukef\\.conda\\envs\\test\\lib\\site-packages\\rdflib\\graph.py\u001b[0m in \u001b[0;36mparse\u001b[1;34m(self, source, publicID, format, location, file, data, **args)\u001b[0m\n\u001b[0;32m 1474\u001b[0m \u001b[0mfile\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mfile\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1475\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdata\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1476\u001b[1;33m \u001b[0mformat\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1477\u001b[0m )\n\u001b[0;32m 1478\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mformat\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mc:\\Users\\lukef\\.conda\\envs\\test\\lib\\site-packages\\rdflib\\parser.py\u001b[0m in \u001b[0;36mcreate_input_source\u001b[1;34m(source, publicID, location, file, data, format)\u001b[0m\n\u001b[0;32m 418\u001b[0m \u001b[0mformat\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 419\u001b[0m \u001b[0minput_source\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0minput_source\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 420\u001b[1;33m \u001b[0mlocation\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mlocation\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 421\u001b[0m )\n\u001b[0;32m 422\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mc:\\Users\\lukef\\.conda\\envs\\test\\lib\\site-packages\\rdflib\\parser.py\u001b[0m in \u001b[0;36m_create_input_source_from_location\u001b[1;34m(file, format, input_source, location)\u001b[0m\n\u001b[0;32m 474\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mabsolute_location\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstartswith\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"file:///\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 475\u001b[0m \u001b[0mfilename\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0murl2pathname\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mabsolute_location\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreplace\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"file:///\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"/\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 476\u001b[1;33m \u001b[0mfile\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mopen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"rb\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 477\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 478\u001b[0m \u001b[0minput_source\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mURLInputSource\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mabsolute_location\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mformat\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'C:\\\\Users\\\\lukef\\\\OneDrive\\\\Desktop\\\\hmwk0\\\\CSCI_1300F\\\\Work\\\\PUDUWork\\\\PUDU\\\\RyanTest.xml'" + ] } - }, - "outputs": [], + ], "source": [ "def dictionaryCreatorPython(file):\n", " import sbol2 as sb2\n", " #given code from website\n", " doc = sb2.Document()\n", " doc.read(file)\n", - " #Loops through commponetDefinition\n", + " #Loops through commponentDefinition\n", " #for DNA\n", "\n", " #look at the roles for each\n", " for cd in doc.componentDefinitions:\n", " #check for role\n", " if cd.role =='http://identifiers.org/so/SO:0000804':\n", - " print(cd)#allproducts" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "6a11bb44", - "metadata": { - "vscode": { - "languageId": "plaintext" - } - }, - "outputs": [], - "source": [ - "cd.features" + " print(cd)#allproducts\n", + " cd.features\n", + "\n", + "dictionaryCreatorPython('RyanTest.xml')" ] } ], "metadata": { + "kernelspec": { + "display_name": "test", + "language": "python", + "name": "python3" + }, "language_info": { - "name": "python" + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.12" } }, "nbformat": 4, diff --git a/scripts/SBOL_xlsx4.xlsx b/scripts/SBOL_xlsx4.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..0631f8f6858850e57c861bd347700469e17ff54c GIT binary patch literal 6420 zcmZ`;by!sGw;j4+NC^SyPHB+_>F%Mshfb01E)fI)Y3U9DK@g<7LmDYbVPFvMsNe7B zmHXX!o^#%F=6Uw|W9|L!{jPOX6%Y^!0000g>=Fe)$nNdvP?0*Q+|3D;zLdR@++>qqsue@!Jq+%{V^$OCoJ;9_XAXK}YkT)b z?i%>WCT2mY+~V7kTVK2|F&kMr+oL?J4uT(V8Mu#yi1&*Ny9Qb%d;IM}H#(DXMJ}o}T*efa+PhMdiZ>dHKoh;4e{Xo`bs@0XVg1qVAgw@+L-1Cr_O(QttNJhpFB}Eg)#Be`P@RxpLPYjCn

jlq#Tiwd~D_@y|U^mU>K^!UkYO<*vP zfTiJll`AC!+(Ba1p7En#g>fq=B*;=L|wgBCwpn>47wVoi%hm74tEgkxz z_SC2Qc#)bpfBdqdPKWFQFB>oV4K90ph`8OpIt6{c3DQSgK zLJC{G9XNio;stiKHv@z1f0pGx40YMTYE$Yc>^5Z1kL?LtVe03WP>D*%Yd8sg5Pc(U z{bIo_G&-~hJ9I2W#Z2a4C}eqS&+qFe3Ve?)mXc^ZL|=S|9S~B^VpGHeV9x?*86^Q- zhE{j_(reJ`fOm(=)sQwxLzu~V=tN7N8yiJQI`Zq83jRc{;Na9i$*^)0;{(ep)=3_O zy%@!s8uW=??MIE~J$DunMZ1`lAy=ehXKCm@sJ73rliW&_*=mF9q)#E5(#l9axvjJg4Vki|fDo;5_Q0BK4JQx`##NpOQV$!=gY z$VMQsoOfD_6SLb^H6?i+imh-f>Q^nyp`lxM-hj+}^xC;3Qu9h$jSrr|MVnbk6u6#P zb?jCzEQ5=k-2C(!jK*&on?ze|tSZh-r9s#!D>@%l6GL=q$22vQyR%$h`ocL?T-k`_ zDrMPI^$kWTUxs^eMHH>v&^*?Or`tHtu-v8;kIvM(VguEzMpy8%#Zbxs z%DMS;*gwLuuP~lGuAuqgvDU-pg4^upFqh=_d^CyF;$P#((MtIp2|4oW5maGvy>CjdYESH6KEXhXuC#b$DanfiP*83uZ~GEu9rYg)M3$Ar|@ ziZ2w;sg|Fy`=I*-3pVVT{{gwQHVore-||ATD}m5#?2MKst4cSX0tm{N0cZgz~928NG?&S!~nc zW3bIpK73L0*`Wkc(J+sBhje(z3OO-$N8EXuJ@U=AMH-4ES z6gM!H%GZ1egUQ>}#jt{&N@;FjZ%uMp@=_=#Ptl|vH;T50{IdF?v?z%P;N#fW0toWo zyce`DF6YB|r$7P#e$HuF^K-K?b+xq6aCfzJvUdA5k~Iy%Q=Gu(&(=kyUhEufR-#DA zy;IOv6_+i6H)89Xr`7&}+ot^KWdDQ^@jSUqb&#lvOm^Kc28l$1*jOXl6+q*>B~x89AqbX= z%;_i=@CCAA1G;Q7xf%;)7!~k#>B-QO+iCkPrf1RizKCVyGoPuxAP_Nm>wwo8yVUGC zkvOTkeXe@vQ{;G+*kbOUPC;YZ4Pt55Zto=NXZJf602fsvh`w(Sk->H`8Ir{QNQS_& zv?$YJYWMB!E1sf{Tcy3)O_v3GbkBd4AtI>U*5 zAR|&4Kfi7=DsZOm>V%JOHRobsAE?>Fp&Rq)y^Hvc+#>($5g|~bK#Rp4XSRC~xKTC0 z2m)9UXh|o%iAuk9_WK~bbfn4qUM<>LjEWNn9Z+F3<6Tbm@_ znLviLL#$1AemLpvfJA&9T^)J7BrR>dXMk>VDqJpunDGsKomzM9K&)AHESfe9v2vT! z$qC&DVtiJ_AD%+}DmU*^lw3B}#@W+a9WaBa_XPr-trE~PHoM16nL{)vx}`n@csIr4 z?0!282jUEY^mR5WMlv*nB&Ca_5M-TepN8W*^abN~+7a0GgY28psjPcxP3GhozXP3a z{oKZgtGYcuOZfwE%Y;OGnG!_g{nkP){jgQHr>O=7dtFqbVN$$#7+6 z1>bx@nCIfOlm663PsZG2?9-Vci>8*mi^$MW#z+i2er(i|DS3l|Dm}(v>hB!K*EId! zk5{Y~r3o4YY2Tcjy$FDi@0_MVaU~<9WCu1Hw+zblB6~zA#|3OaO(;Jw*f8Y6HgK(k z=^gE53Op?LyK&ezln9d}ALS-&(K~_i)ccDZ6(}2P+CJmsb+>apz}2oM2zrVKL50W+ zRnFQeJ^9Gfs2WRS;%6^hBqAP?TG+sAy<&b$$dcg%QG5u=kjkd+j;B|?rm?OaL=@^N zcMQtH6(voC4oF}sAn`9~vq5z)W-R^0do+plrpDcS?g!2enp~Gj-esz2gGRkv@#?y0^vQb=35{ zXMt!}>^jXVczZ=%YJWd+@OnRtw*p#!%>ubCj4J~5TIVK?d)EdlZ?r@X!EL^o|y)%e8e#(9g_#7NV7?+euXA$e)>EXgdKu`>SOy9MT{d_Q;1yssP z>o1N!-6*2Wso8^fdODxLk@Hj>c8R<=K8JL1^x;rah(hMYys`R%lp*U-j@#P{jq}-* zBO~GKf!K7R+shmg=;18Kuvj5NPQVXHLUBS)z}Z!fs4#bD6B5PVFKjKhn^pz?E;>pU_w={eMKbA_UsW@rD#uaRxgRs3=CNN{U1IM!TbX^3#2%DoL>*FO zMPq3>VSdB>kc77vcQT2;8eK`AVkp$uwOJFm8^{^&OG8~4wf*u{+Ejad9zIET$DoxO z2@^r~t3-az9U<2Ul~$^Fy!;U!Y>$IyuJBCJ;}kkFblxoz6TCfeeQ9eQl2Jk+y)Q-L zHp+?TBbo$;@23K2NONXlNy40NI!H#>7LRSX(|Y=e48ow4d@JO_ahIr@*U%1V$5BU& zf782{vxkj?$oBhgF1;M@9wzst)*$ejZ-x))*C7@@^Pd|cA{jTMSCMFD?MZVE>YV4r zGw_$t@&>LW_6THziV>9~MB%Zo(VA$Tj>M-B#ExFHU6BCCbPrF}I+n*q!!h{gnG;)c zWd=+PP2&{6^h5nY_VRARbv#F!wvF3LCCH(ZDIX@wcivK&bJFBb9SMf`=#D&<;_jhQ z@A=F{y3RA>4%(kKnk;bSSy5aN5})|gLb%@M7OCz?Cx2llSliqt@hmq@=aO}EqrfrF zG&y*X5$*-Iqu47Xm&H>p(*c&4tAeiWdUv}t_G~IKEf;IqgN9 zadnQx%}l->cfFNlJ4nf++u%CU`ZVIIx3r-l-6Jj_Bq7O12qixEJUbv&LmQ2~eomDu zu}pn3kY=pe)vv=N?P2mVwE3$X8{37T@Oz`Li4{EG573v5CsTU`GuPYS7Zqe+nA@AD zl9!lZ0*MO+7aE&YsUp}@L#K`~h#zw6OZ+WB%( zDAve(WT8Un*%6$fF`HB6CL^7rSHhBV<0XrYMpiJrsCd|2+^>Kq&YuVv6 zUPD8OVx#`mMikCb&;hvsqf$ol)nWnEdFo)~jvF9yk?g*IPvW9CSf+czPI(ZRfTQ_y zy8cJN{Z_kwWZW;UJDg^y(9KB@euQ)<+25|v%28ZS*7%y+lHc4HG;v;!HTX=fw&rR- zPNS;}=$GHl8X>YH>?7Fk-I`847gS?Vh8jj546mxVV~~dHYxKo9PSu25OOQ}sJQUkx z+}+iO%P1&!G6BX^OWd{v~Vt4u%9-U5a%Th+8A|ooNgtUDLgirA%G^CKWri(WFdy<~Yn7 ztqWGqHfMsnaP-?J65C9=25E+ZJUVLNn4RBR9;(Q+kPsN0T)L8iT07Tt5(-CtK+f6` z@=L@ZZPrcFZ~DzVoAmdjzA}6}Hg9@>H!)Q_tDo~K(Roa>`0kldG3j?c{47(W;2syn zNpphkqBW9DU!!`g<~Kn!ReEhowyoc9z41rOg6tuIdVQcH=My zyITG{nP(>t|1=~*kHR`a#+P4iC8~xVih*41a>r6%u7uXRNL5hMHpGAFh)xkegG_DM zS$)Vh)MUSWr}U!B$JRYe_GLaI55L4-k;Kt!t?NKM%2!0?yrj%iAWC{ zF-%N<2nI5e1Ef8sA56}3)i8I@oDLJ?;?GXjEM5Qg8Nbn*^)(qeq>!&SZ zr84@O@Lf#XtKutaIt$6|RDx924s06mHHVl7=_z=f#Cgacinb^EH>nH)F+F}TQgIOg z0O0>7)zsPfH>cwE8=Szfqp%-1GM7@Gx-ao8(vlA*x?dtEH(F~^^u4X6<x5k~EEH+e#-hhHs)wu$9ccFNr|=4}nq`$#uT-CT!Z?qcxcr$? z#|+;;P!^d}0T)|g1{g-SQ$l7#I5Ig`D0gUH#+c?Z>TgJfWncA0-?`_3&uvV1P^Xsa z@JHg$%29*yxBT^|tvlVt%UlJ*Oiq&3GA!}|Oh<9?6#h!{MZH0uLv6KuSFJXY`0;3XGr}~7W4@vklaRh=Zhs%s$8ld#GWrIP)GLL9HJfbsWo?zdp#1cT+*B09{wnkX?dz? zJ$fk~aHUfGfIa4uu*w(bot-zUIbgjP096Gzc!FOt^xy4bShjxs8iRf=|6(5B2e|Kc z{tgEK8iRsi74W~j&-;P*J;6VLX|TQc|2u^Daqc^3e{h;$4+<&r ze^LHpmD~@$ukil_C&Q+}zv=z^2>0dW9|UW(-w6K|m-j>OYl}ajX)yQsUzEmufcul{ z4}dqUBmPa`zs|AyfcJaqA3zS+7m5GVVeg0E?;d}`Lt*yGf5ZRjC8`QYumt^d+A#p* Lu)<*@`uX-h6P*a& literal 0 HcmV?d00001 diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index a13914c..7414af9 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -281,7 +281,20 @@ def get_xlsx_output(self, name:str): 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0032/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0015/1'], 'RestrictionEnzyme' : 'https://charmme.synbiohub.org/user/Gonza10V/ligationtestforreal/ComponentDefinition_BsaI/1', 'Product' : 'https://charmme.synbiohub.org/public/CIDARMoCloKit/cre_CRE/1' -}] +}, +{ 'Backbone' : 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/ComponentDefinition_dvk_backbone_core/1', +'PartsList' : ['https://synbiohub.org/public/igem/BBa_J23101/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/E0040m_gfp/1', +'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0032/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0015/1'], +'RestrictionEnzyme' : 'https://charmme.synbiohub.org/user/Gonza10V/ligationtestforreal/ComponentDefinition_BsaI/1', +'Product' : 'https://charmme.synbiohub.org/public/CIDARMoCloKit/cre_CRE/1' +}, +{ 'Backbone' : 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/ComponentDefinition_dvk_backbone_core/1', +'PartsList' : ['https://synbiohub.org/public/igem/BBa_J23106/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/E0040m_gfp/1', +'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0032/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0015/1'], +'RestrictionEnzyme' : 'https://charmme.synbiohub.org/user/Gonza10V/ligationtestforreal/ComponentDefinition_BsaI/1', +'Product' : 'https://charmme.synbiohub.org/public/CIDARMoCloKit/cre_CRE/1' +} +] #create a recursive function based on the how many times #def assemblyRecursion(, duplicate dictionaries, amount): @@ -300,4 +313,4 @@ def run(protocol= protocol_api.ProtocolContext): pudu_sbol2_assembly = sbol2assembly(assemblies=assembly_sbol2_uris) pudu_sbol2_assembly.run(protocol) - pudu_sbol2_assembly.get_xlsx_output("SBOL_xlsx3") \ No newline at end of file + pudu_sbol2_assembly.get_xlsx_output("SBOL_xlsx4") \ No newline at end of file From b3db2974e5d02b26fd78be9ee9ee874323d06af6 Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 11 Jun 2025 11:56:30 -0600 Subject: [PATCH 032/118] Added the dictionary list creator to utils --- src/pudu/utils.py | 59 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/src/pudu/utils.py b/src/pudu/utils.py index 09401f4..bab9f80 100644 --- a/src/pudu/utils.py +++ b/src/pudu/utils.py @@ -241,3 +241,62 @@ def dictionaryCreatorPython(file): response = outputDictionary return response + + +#NEW dictionary creator that goes through xml file +#reads roles and returns a list of dictionaries +def dictionaryListCreatorPython(file): + import sbol2 as sb2 + + # Disable typed URIs for cleaner URI strings + sb2.Config.setOption('sbol_typed_uris', False) + + # Read the SBOL document + doc = sb2.Document() + doc.read(file) + + # Known SO roles + PRODUCT_ROLE = 'http://identifiers.org/so/SO:0000804' # composite product + PLASMID_ROLE = 'https://identifiers.org/SO:0000755' # plasmid/backbone + RESTRICTION_ENZYME_ROLE = 'http://identifiers.org/so/SO:0001691' # restriction site + + # Known enzyme names (lowercase) + ENZYME_NAMES = ['bsai', 'ecori', 'bamhi', 'hindiii', 'noti', 'xhoi'] + + product_dicts = [] + + for cd in doc.componentDefinitions: + if PRODUCT_ROLE in cd.roles: + result = { + 'Product': cd.identity, + 'Backbone': None, + 'Parts': [], + 'Restriction Enzyme': None + } + + for comp in cd.components: + sub_def_uri = comp.definition + sub_cd = doc.componentDefinitions.get(sub_def_uri) + + if sub_cd is None: + continue + + roles = sub_cd.roles + display_id = sub_cd.displayId.lower() if sub_cd.displayId else "" + + # Normalize displayId by removing non-alpha chars for flexible matching + normalized_id = ''.join(c for c in display_id if c.isalpha()) + + print(f"{sub_cd.displayId} roles: {roles}") + + if PLASMID_ROLE in roles: + result['Backbone'] = sub_def_uri + result['Parts'].append(sub_def_uri) + elif RESTRICTION_ENZYME_ROLE in roles or any(enzyme in normalized_id for enzyme in ENZYME_NAMES): + result['Restriction Enzyme'] = sub_def_uri + else: + result['Parts'].append(sub_def_uri) + + product_dicts.append(result) + + return product_dicts \ No newline at end of file From f44c016aa0f10b87579619a4e96e9f313e5c9fb4 Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Thu, 12 Jun 2025 11:43:23 -0600 Subject: [PATCH 033/118] Added the dictionary list creator to utils --- src/pudu/utils.py | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/src/pudu/utils.py b/src/pudu/utils.py index bab9f80..e04ac8f 100644 --- a/src/pudu/utils.py +++ b/src/pudu/utils.py @@ -258,15 +258,21 @@ def dictionaryListCreatorPython(file): # Known SO roles PRODUCT_ROLE = 'http://identifiers.org/so/SO:0000804' # composite product PLASMID_ROLE = 'https://identifiers.org/SO:0000755' # plasmid/backbone - RESTRICTION_ENZYME_ROLE = 'http://identifiers.org/so/SO:0001691' # restriction site - # Known enzyme names (lowercase) - ENZYME_NAMES = ['bsai', 'ecori', 'bamhi', 'hindiii', 'noti', 'xhoi'] + # SBOL type for Protein + PROTEIN_TYPE = sb2.BIOPAX_PROTEIN # URI for proteins product_dicts = [] + globalEnzyme = None for cd in doc.componentDefinitions: + # Detect restriction enzyme by Protein type + #create a filler variable + if PROTEIN_TYPE in cd.types: + globalEnzyme = cd.identity + if PRODUCT_ROLE in cd.roles: + #create new dict for every product result = { 'Product': cd.identity, 'Backbone': None, @@ -282,21 +288,25 @@ def dictionaryListCreatorPython(file): continue roles = sub_cd.roles - display_id = sub_cd.displayId.lower() if sub_cd.displayId else "" - - # Normalize displayId by removing non-alpha chars for flexible matching - normalized_id = ''.join(c for c in display_id if c.isalpha()) + display_id = sub_cd.displayId or "" - print(f"{sub_cd.displayId} roles: {roles}") + #print(f"{display_id} roles: {roles} types: {types}") + # Detect backbone by SO role if PLASMID_ROLE in roles: result['Backbone'] = sub_def_uri result['Parts'].append(sub_def_uri) - elif RESTRICTION_ENZYME_ROLE in roles or any(enzyme in normalized_id for enzyme in ENZYME_NAMES): - result['Restriction Enzyme'] = sub_def_uri + + # Default case: treat as regular part else: result['Parts'].append(sub_def_uri) product_dicts.append(result) - return product_dicts \ No newline at end of file + #add enzymes to each dictionary + for dict in product_dicts: + print("check for enzyme") + print(globalEnzyme) + dict['Restriction Enzyme'] = globalEnzyme + + return product_dicts From b15f000d9bb99b60adbe4042cfdeef86722a22ab Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Mon, 16 Jun 2025 09:38:47 -0600 Subject: [PATCH 034/118] Fixed bug in dictionaryListCreator --- src/pudu/utils.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/pudu/utils.py b/src/pudu/utils.py index e04ac8f..f019405 100644 --- a/src/pudu/utils.py +++ b/src/pudu/utils.py @@ -276,7 +276,7 @@ def dictionaryListCreatorPython(file): result = { 'Product': cd.identity, 'Backbone': None, - 'Parts': [], + 'PartsList': [], 'Restriction Enzyme': None } @@ -295,18 +295,16 @@ def dictionaryListCreatorPython(file): # Detect backbone by SO role if PLASMID_ROLE in roles: result['Backbone'] = sub_def_uri - result['Parts'].append(sub_def_uri) + result['PartsList'].append(sub_def_uri) # Default case: treat as regular part else: - result['Parts'].append(sub_def_uri) + result['PartsList'].append(sub_def_uri) product_dicts.append(result) #add enzymes to each dictionary for dict in product_dicts: - print("check for enzyme") - print(globalEnzyme) dict['Restriction Enzyme'] = globalEnzyme return product_dicts From 1c48e228060bede380b4a6ade1f251a75739b2ca Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 18 Jun 2025 09:44:13 -0600 Subject: [PATCH 035/118] Fixes to dictionary list creator so it can be used in runsbol2 --- src/pudu/utils.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pudu/utils.py b/src/pudu/utils.py index f019405..3b6f3a3 100644 --- a/src/pudu/utils.py +++ b/src/pudu/utils.py @@ -247,6 +247,7 @@ def dictionaryCreatorPython(file): #reads roles and returns a list of dictionaries def dictionaryListCreatorPython(file): import sbol2 as sb2 + import json # Disable typed URIs for cleaner URI strings sb2.Config.setOption('sbol_typed_uris', False) From 03355e3a80565b38de2d6fc9b5e65e851208245c Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 18 Jun 2025 09:47:53 -0600 Subject: [PATCH 036/118] edits to runsbol2 to have the xml go directly to assembly --- scripts/LukeTestingNotebook.ipynb | 2 +- scripts/run_sbol2assembly_libre.py | 26 ++++++-------------------- 2 files changed, 7 insertions(+), 21 deletions(-) diff --git a/scripts/LukeTestingNotebook.ipynb b/scripts/LukeTestingNotebook.ipynb index 2a42a27..b177862 100644 --- a/scripts/LukeTestingNotebook.ipynb +++ b/scripts/LukeTestingNotebook.ipynb @@ -30,7 +30,7 @@ " #given code from website\n", " doc = sb2.Document()\n", " doc.read(file)\n", - " #Loops through commponentDefinition\n", + " #Loops through commponetDefinition\n", " #for DNA\n", "\n", " #look at the roles for each\n", diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index 7414af9..03e08d4 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -3,6 +3,7 @@ from fnmatch import fnmatch from itertools import product import xlsxwriter +from utils.py import dictionaryListCreatorPython # utils @@ -275,26 +276,8 @@ def get_xlsx_output(self, name:str): #print('Assembled parts in thermocycler_module') #print(self.dict_of_parts_in_thermocycler) -# assembly -assembly_sbol2_uris = [{ 'Backbone' : 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/ComponentDefinition_dvk_backbone_core/1', -'PartsList' : ['https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/J23100/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/E0040m_gfp/1', -'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0032/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0015/1'], -'RestrictionEnzyme' : 'https://charmme.synbiohub.org/user/Gonza10V/ligationtestforreal/ComponentDefinition_BsaI/1', -'Product' : 'https://charmme.synbiohub.org/public/CIDARMoCloKit/cre_CRE/1' -}, -{ 'Backbone' : 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/ComponentDefinition_dvk_backbone_core/1', -'PartsList' : ['https://synbiohub.org/public/igem/BBa_J23101/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/E0040m_gfp/1', -'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0032/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0015/1'], -'RestrictionEnzyme' : 'https://charmme.synbiohub.org/user/Gonza10V/ligationtestforreal/ComponentDefinition_BsaI/1', -'Product' : 'https://charmme.synbiohub.org/public/CIDARMoCloKit/cre_CRE/1' -}, -{ 'Backbone' : 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/ComponentDefinition_dvk_backbone_core/1', -'PartsList' : ['https://synbiohub.org/public/igem/BBa_J23106/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/E0040m_gfp/1', -'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0032/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0015/1'], -'RestrictionEnzyme' : 'https://charmme.synbiohub.org/user/Gonza10V/ligationtestforreal/ComponentDefinition_BsaI/1', -'Product' : 'https://charmme.synbiohub.org/public/CIDARMoCloKit/cre_CRE/1' -} -] +#Where dictionary used to be + #create a recursive function based on the how many times #def assemblyRecursion(, duplicate dictionaries, amount): @@ -310,6 +293,9 @@ def get_xlsx_output(self, name:str): 'apiLevel': '2.13'} def run(protocol= protocol_api.ProtocolContext): + # Load dictionary from XML file + xml_file = "your_input_file.xml" + assembly_sbol2_uris = dictionaryListCreatorPython(xml_file) pudu_sbol2_assembly = sbol2assembly(assemblies=assembly_sbol2_uris) pudu_sbol2_assembly.run(protocol) From 5f8131363cb34ae1264fb301087bab88eca0de49 Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 18 Jun 2025 11:00:23 -0600 Subject: [PATCH 037/118] added three promoter golden gate function to my utils --- src/pudu/utils.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/pudu/utils.py b/src/pudu/utils.py index 3b6f3a3..cf61fbf 100644 --- a/src/pudu/utils.py +++ b/src/pudu/utils.py @@ -309,3 +309,39 @@ def dictionaryListCreatorPython(file): dict['Restriction Enzyme'] = globalEnzyme return product_dicts + + +def test_golden_gate(self): + pro_doc = sb2.Document() + pro_doc.read('pro_in_bb.xml') + + #where I am working adding 2 and 3 + pro2_doc = sb2.Document() + pro2_doc.read('pro2_in_bb.xml') #add document + + pro3_doc = sb2.Document() + pro3_doc.read('pro3_in_bb.xml') #add document + + rbs_doc = sb2.Document() + rbs_doc.read('rbs_in_bb.xml') + + cds_doc = sb2.Document() + cds_doc.read('cds_in_bb.xml') + + ter_doc = sb2.Document() + ter_doc.read('terminator_in_bb.xml') + + bb_doc = sb2.Document() + bb_doc.read('backbone.xml') + + part_docs = [pro_doc, rbs_doc, cds_doc, ter_doc] + + assembly_doc = sb2.Document() + assembly_obj = golden_gate_assembly_plan('testassem', part_docs, bb_doc, 'BsaI', assembly_doc) + + composites = assembly_obj.run() + + assembly_doc.write('validation_assembly.xml') + + sbol_validation_result = assembly_doc.validate() + self.assertEqual(sbol_validation_result, 'Valid.', 'Assembly SBOL validation failed') \ No newline at end of file From 05e66231c0d4bbc9c23043042ea74476e029882c Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 18 Jun 2025 11:31:33 -0600 Subject: [PATCH 038/118] Added temporary utils to avoid import errors --- scripts/run_sbol2assembly_libre.py | 15 +- scripts/tempUtils.py | 347 +++++++++++++++++++++++++++++ 2 files changed, 359 insertions(+), 3 deletions(-) create mode 100644 scripts/tempUtils.py diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index 03e08d4..5bff99c 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -3,7 +3,16 @@ from fnmatch import fnmatch from itertools import product import xlsxwriter -from utils.py import dictionaryListCreatorPython + +import os +import sys + +# Works under opentrons_simulate +script_dir = os.getcwd() +parent_dir = os.path.abspath(os.path.join(script_dir, '..')) +sys.path.append(parent_dir) + +from src.pudu.utils import dictionaryListCreatorPython # utils @@ -294,9 +303,9 @@ def get_xlsx_output(self, name:str): def run(protocol= protocol_api.ProtocolContext): # Load dictionary from XML file - xml_file = "your_input_file.xml" + xml_file = "RyanTest.xml" assembly_sbol2_uris = dictionaryListCreatorPython(xml_file) pudu_sbol2_assembly = sbol2assembly(assemblies=assembly_sbol2_uris) pudu_sbol2_assembly.run(protocol) - pudu_sbol2_assembly.get_xlsx_output("SBOL_xlsx4") \ No newline at end of file + pudu_sbol2_assembly.get_xlsx_output("SBOL_xlsx5") \ No newline at end of file diff --git a/scripts/tempUtils.py b/scripts/tempUtils.py new file mode 100644 index 0000000..cf61fbf --- /dev/null +++ b/scripts/tempUtils.py @@ -0,0 +1,347 @@ + + +thermo_wells = [ +'A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11','A12', +'B1','B2','B3','B4','B5','B6','B7','B8','B9','B10','B11','B12', +'C1','C2','C3','C4','C5','C6','C7','C8','C9','C10','C11','C12', +'D1','D2','D3','D4','D5','D6','D7','D8','D9','D10','D11','D12', +'E1','E2','E3','E4','E5','E6','E7','E8','E9','E10','E11','E12', +'F1','F2','F3','F4','F5','F6','F7','F8','F9','F10','F11','F12', +'G1','G2','G3','G4','G5','G6','G7','G8','G9','G10','G11','G12', +'H1','H2','H3','H4','H5','H6','H7','H8','H9','H10','H11','H12' +] + +temp_wells = [ +'A1','A2','A3','A4','A5','A6', +'B1','B2','B3','B4','B5','B6', +'C1','C2','C3','C4','C5','C6', +'D1','D2','D3','D4','D5','D6' +] + +plate_96_wells = [ +'A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11','A12', +'B1','B2','B3','B4','B5','B6','B7','B8','B9','B10','B11','B12', +'C1','C2','C3','C4','C5','C6','C7','C8','C9','C10','C11','C12', +'D1','D2','D3','D4','D5','D6','D7','D8','D9','D10','D11','D12', +'E1','E2','E3','E4','E5','E6','E7','E8','E9','E10','E11','E12', +'F1','F2','F3','F4','F5','F6','F7','F8','F9','F10','F11','F12', +'G1','G2','G3','G4','G5','G6','G7','G8','G9','G10','G11','G12', +'H1','H2','H3','H4','H5','H6','H7','H8','H9','H10','H11','H12' +] + +def liquid_transfer(pipette, volume, source, destination, asp_rate:float=0.5, disp_rate:float=1.0, blow_out:bool=True, touch_tip:bool=False, mix_before:float=0.0, mix_after:float=0.0, mix_reps:int=3, new_tip:bool=True, drop_tip:bool=True): + if new_tip: + pipette.pick_up_tip() + if mix_before > 0: + pipette.mix(mix_reps, mix_before, source) + pipette.aspirate(volume, source, rate=asp_rate) + pipette.dispense(volume, destination, rate=disp_rate) + if mix_after > 0: + pipette.mix(mix_reps, mix_after, destination) + if blow_out: + pipette.blow_out() + if touch_tip: + pipette.touch_tip() + if drop_tip: + pipette.drop_tip() + +#Define slots, to allocate 4 samples in each slot, lasts slots allocate in the border where border effects apply +slot_1 = ['A2', 'B2', 'C2', 'D2'] +slot_2 = ['A3', 'B3', 'C3', 'D3'] +slot_3 = ['A4', 'B4', 'C4', 'D4'] +slot_4 = ['A5', 'B5', 'C5', 'D5'] +slot_5 = ['A6', 'B6', 'C6', 'D6'] +slot_6 = ['A7', 'B7', 'C7', 'D7'] +slot_7 = ['A8', 'B8', 'C8', 'D8'] +slot_8 = ['A9', 'B9', 'C9', 'D9'] +slot_9 = ['A10', 'B10', 'C10', 'D10'] +slot_10 = ['A11', 'B11', 'C11', 'D11'] +slot_11 = ['E2', 'F2', 'G2', 'H2'] +slot_12 = ['E3', 'F3', 'G3', 'H3'] +slot_13 = ['E4', 'F4', 'G4', 'H4'] +slot_14 = ['E5', 'F5', 'G5', 'H5'] +slot_15 = ['E6', 'F6', 'G6', 'H6'] +slot_16 = ['E7', 'F7', 'G7', 'H7'] +slot_17 = ['E8', 'F8', 'G8', 'H8'] +slot_18 = ['E9', 'F9', 'G9', 'H9'] +slot_19 = ['E10', 'F10', 'G10', 'H10'] +slot_20 = ['E11', 'F11', 'G11', 'H11'] +slot_21 = ['A1', 'B1', 'C1', 'D1'] +slot_22 = ['E1', 'F1', 'G1', 'H1'] +slot_23 = ['A12', 'B12', 'C12', 'D12'] +slot_24 = ['E12', 'F12', 'G12', 'H12'] + +slots = [slot_1, slot_2, slot_3, slot_4, slot_5, slot_6, slot_7, slot_8, slot_9, slot_10, slot_11, slot_12, slot_13, slot_14, slot_15, slot_16, slot_17, slot_18, slot_19, slot_20, slot_21, slot_22, slot_23, slot_24] + +#define rows +row_a = ['A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11','A12'] +row_b = ['B1','B2','B3','B4','B5','B6','B7','B8','B9','B10','B11','B12'] +row_c = ['C1','C2','C3','C4','C5','C6','C7','C8','C9','C10','C11','C12'] +row_d = ['D1','D2','D3','D4','D5','D6','D7','D8','D9','D10','D11','D12'] +row_e = ['E1','E2','E3','E4','E5','E6','E7','E8','E9','E10','E11','E12'] +row_f = ['F1','F2','F3','F4','F5','F6','F7','F8','F9','F10','F11','F12'] +row_g = ['G1','G2','G3','G4','G5','G6','G7','G8','G9','G10','G11','G12'] +row_h = ['H1','H2','H3','H4','H5','H6','H7','H8','H9','H10','H11','H12'] + +rows = [row_a, row_b, row_c, row_d, row_e, row_f, row_g, row_h] + +#define columns +col_1 = ['A1','B1','C1','D1','E1','F1','G1','H1'] +col_2 = ['A2','B2','C2','D2','E2','F2','G2','H2'] +col_3 = ['A3','B3','C3','D3','E3','F3','G3','H3'] +col_4 = ['A4','B4','C4','D4','E4','F4','G4','H4'] +col_5 = ['A5','B5','C5','D5','E5','F5','G5','H5'] +col_6 = ['A6','B6','C6','D6','E6','F6','G6','H6'] +col_7 = ['A7','B7','C7','D7','E7','F7','G7','H7'] +col_8 = ['A8','B8','C8','D8','E8','F8','G8','H8'] +col_9 = ['A9','B9','C9','D9','E9','F9','G9','H9'] +col_10 = ['A10','B10','C10','D10','E10','F10','G10','H10'] +col_11 = ['A11','B11','C11','D11','E11','F11','G11','H11'] +col_12 = ['A12','B12','C12','D12','E12','F12','G12','H12'] + +columns = [col_1, col_2, col_3, col_4, col_5, col_6, col_7, col_8, col_9, col_10, col_11, col_12] + +position_to_row_and_column = {'A1':(1,1), 'A2':(1,2), 'A3':(1,3), 'A4':(1,4), 'A5':(1,5), 'A6':(1,6), 'A7':(1,7), 'A8':(1,8), 'A9':(1,9), 'A10':(1,10), 'A11':(1,11), 'A12':(1,12), + 'B1':(2,1), 'B2':(2,2), 'B3':(2,3), 'B4':(2,4), 'B5':(2,5), 'B6':(2,6), 'B7':(2,7), 'B8':(2,8), 'B9':(2,9), 'B10':(2,10), 'B11':(2,11), 'B12':(2,12), + 'C1':(3,1), 'C2':(3,2), 'C3':(3,3), 'C4':(3,4), 'C5':(3,5), 'C6':(3,6), 'C7':(3,7), 'C8':(3,8), 'C9':(3,9), 'C10':(3,10), 'C11':(3,11), 'C12':(3,12), + 'D1':(4,1), 'D2':(4,2), 'D3':(4,3), 'D4':(4,4), 'D5':(4,5), 'D6':(4,6), 'D7':(4,7), 'D8':(4,8), 'D9':(4,9), 'D10':(4,10), 'D11':(4,11), 'D12':(4,12), + 'E1':(5,1), 'E2':(5,2), 'E3':(5,3), 'E4':(5,4), 'E5':(5,5), 'E6':(5,6), 'E7':(5,7), 'E8':(5,8), 'E9':(5,9), 'E10':(5,10), 'E11':(5,11), 'E12':(5,12), + 'F1':(6,1), 'F2':(6,2), 'F3':(6,3), 'F4':(6,4), 'F5':(6,5), 'F6':(6,6), 'F7':(6,7), 'F8':(6,8), 'F9':(6,9), 'F10':(6,10), 'F11':(6,11), 'F12':(6,12), + 'G1':(7,1), 'G2':(7,2), 'G3':(7,3), 'G4':(7,4), 'G5':(7,5), 'G6':(7,6), 'G7':(7,7), 'G8':(7,8), 'G9':(7,9), 'G10':(7,10), 'G11':(7,11), 'G12':(7,12), + 'H1':(8,1), 'H2':(8,2), 'H3':(8,3), 'H4':(8,4), 'H5':(8,5), 'H6':(8,6), 'H7':(8,7), 'H8':(8,8), 'H9':(8,9), 'H10':(8,10), 'H11':(8,11), 'H12':(8,12)} + +row_letter_to_number = {'A':1, 'B':2, 'C':3, 'D':4, 'E':5, 'F':6, 'G':7, 'H':8} + + +#Xml to uri dictionary +def dictionaryCreatorjson(file): + import sbol2 as sb2 + from flask import Flask, jsonify + app = Flask(__name__) + #given code from website + doc = sb2.Document() + doc.read(file) + #Loops through commponetDefinition + #for DNA + # Lists to store different components + BackBoneList = ['https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/ComponentDefinition_dvk_backbone_core/1'] + PartsList = ['https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/J23100/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/E0040m_gfp/1', + 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0032/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0015/1'] + RestrictionEnzymeList = ['https://charmme.synbiohub.org/user/Gonza10V/ligationtestforreal/ComponentDefinition_BsaI/1'] + # Flags to track duplicates + gotBone = False + gotZyme = False + # Output dictionary + outputDictionary = {"Parts": [], "Backbone": -1, "Restriction Enzyme": -1} + # Loop through component definitions + for cd in doc.componentDefinitions: + print(cd) + # Checks backbone + if cd in BackBoneList: + print(cd) + print("backbone") + if not gotBone: + outputDictionary["Backbone"] = cd + gotBone = True # Update flag + else: + print("You have more than one backbone") + return -1 + # Checks parts + if cd in PartsList: + print(cd) + print("got part") + outputDictionary["Parts"].append(cd) + # Checks enzymes + if cd in RestrictionEnzymeList: + print(cd) + print("Enzyme") + if not gotZyme: + outputDictionary["Restriction Enzyme"] = cd # Assign value + gotZyme = True # Update flag + else: + print("You have more than one restriction enzyme") + return -1 + # Error Checks + if len(outputDictionary["Parts"]) <= 1: + print("Invalid number of parts") + return -1 + if outputDictionary["Backbone"] == -1: + print("No Backbone found, try again") + return -1 + if outputDictionary["Restriction Enzyme"] == -1: + print("No Restriction Enzyme found, try again") + return -1 + #(outputDictionary) + response = jsonify(outputDictionary) + content = response.get_data(as_text=True) + + return content + +#same as before but no Json +#Change to add roles +def dictionaryCreatorPython(file): + import sbol2 as sb2 + #given code from website + doc = sb2.Document() + doc.read(file) + #Loops through commponetDefinition + #for DNA + # Lists to store different components + ProductRoleList = ['http://identifiers.org/so/SO:0000804'] + + #look at the roles for each + for cd in doc.componentDefinitions: + #check for role + if cd.role in ProductRoleList: + print(cd) + + + + # Output dictionary + outputAssemblies = [] + # Loop through component definitions + for cd in doc.componentDefinitions: + print(cd) + # Checks backbone + if cd in BackBoneList: + print(cd) + print("backbone") + if not gotBone: + outputDictionary["Backbone"] = cd + gotBone = True # Update flag + else: + print("You have more than one backbone") + return -1 + # Checks parts + if cd in PartsList: + print(cd) + print("got part") + outputDictionary["Parts"].append(cd) + # Checks enzymes + if cd in RestrictionEnzymeList: + print(cd) + print("Enzyme") + if not gotZyme: + outputDictionary["Restriction Enzyme"] = cd # Assign value + gotZyme = True # Update flag + else: + print("You have more than one restriction enzyme") + return -1 + # Error Checks + if len(outputDictionary["Parts"]) <= 1: + print("Invalid number of parts") + return -1 + if outputDictionary["Backbone"] == -1: + print("No Backbone found, try again") + return -1 + if outputDictionary["Restriction Enzyme"] == -1: + print("No Restriction Enzyme found, try again") + return -1 + #(outputDictionary) + response = outputDictionary + + return response + + +#NEW dictionary creator that goes through xml file +#reads roles and returns a list of dictionaries +def dictionaryListCreatorPython(file): + import sbol2 as sb2 + import json + + # Disable typed URIs for cleaner URI strings + sb2.Config.setOption('sbol_typed_uris', False) + + # Read the SBOL document + doc = sb2.Document() + doc.read(file) + + # Known SO roles + PRODUCT_ROLE = 'http://identifiers.org/so/SO:0000804' # composite product + PLASMID_ROLE = 'https://identifiers.org/SO:0000755' # plasmid/backbone + + # SBOL type for Protein + PROTEIN_TYPE = sb2.BIOPAX_PROTEIN # URI for proteins + + product_dicts = [] + + globalEnzyme = None + for cd in doc.componentDefinitions: + # Detect restriction enzyme by Protein type + #create a filler variable + if PROTEIN_TYPE in cd.types: + globalEnzyme = cd.identity + + if PRODUCT_ROLE in cd.roles: + #create new dict for every product + result = { + 'Product': cd.identity, + 'Backbone': None, + 'PartsList': [], + 'Restriction Enzyme': None + } + + for comp in cd.components: + sub_def_uri = comp.definition + sub_cd = doc.componentDefinitions.get(sub_def_uri) + + if sub_cd is None: + continue + + roles = sub_cd.roles + display_id = sub_cd.displayId or "" + + #print(f"{display_id} roles: {roles} types: {types}") + + # Detect backbone by SO role + if PLASMID_ROLE in roles: + result['Backbone'] = sub_def_uri + result['PartsList'].append(sub_def_uri) + + # Default case: treat as regular part + else: + result['PartsList'].append(sub_def_uri) + + product_dicts.append(result) + + #add enzymes to each dictionary + for dict in product_dicts: + dict['Restriction Enzyme'] = globalEnzyme + + return product_dicts + + +def test_golden_gate(self): + pro_doc = sb2.Document() + pro_doc.read('pro_in_bb.xml') + + #where I am working adding 2 and 3 + pro2_doc = sb2.Document() + pro2_doc.read('pro2_in_bb.xml') #add document + + pro3_doc = sb2.Document() + pro3_doc.read('pro3_in_bb.xml') #add document + + rbs_doc = sb2.Document() + rbs_doc.read('rbs_in_bb.xml') + + cds_doc = sb2.Document() + cds_doc.read('cds_in_bb.xml') + + ter_doc = sb2.Document() + ter_doc.read('terminator_in_bb.xml') + + bb_doc = sb2.Document() + bb_doc.read('backbone.xml') + + part_docs = [pro_doc, rbs_doc, cds_doc, ter_doc] + + assembly_doc = sb2.Document() + assembly_obj = golden_gate_assembly_plan('testassem', part_docs, bb_doc, 'BsaI', assembly_doc) + + composites = assembly_obj.run() + + assembly_doc.write('validation_assembly.xml') + + sbol_validation_result = assembly_doc.validate() + self.assertEqual(sbol_validation_result, 'Valid.', 'Assembly SBOL validation failed') \ No newline at end of file From 5a10e7ccd201ecb5c6b864634c0df935856ad050 Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 18 Jun 2025 11:43:39 -0600 Subject: [PATCH 039/118] Additions to assembly, still does not work issues with tempUtils import --- scripts/run_sbol2assembly_libre.py | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index 5bff99c..4335ad2 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -3,16 +3,7 @@ from fnmatch import fnmatch from itertools import product import xlsxwriter - -import os -import sys - -# Works under opentrons_simulate -script_dir = os.getcwd() -parent_dir = os.path.abspath(os.path.join(script_dir, '..')) -sys.path.append(parent_dir) - -from src.pudu.utils import dictionaryListCreatorPython +from tempUtils import dictionaryListCreatorPython # utils From ad290593cf114a47cba775fc0cdc6a74e40dcc78 Mon Sep 17 00:00:00 2001 From: Gonza10V Date: Fri, 20 Jun 2025 13:49:45 -0600 Subject: [PATCH 040/118] new dev repo --- notebooks/Assembly_to_OT2sim.ipynb | 156 +++ notebooks/Assembly_to_dict.ipynb | 147 +++ scripts/run_Loop_assembly.py | 3 +- tests/validation_assembly.xml | 1580 ++++++++++++++++++++++++++++ 4 files changed, 1885 insertions(+), 1 deletion(-) create mode 100644 notebooks/Assembly_to_OT2sim.ipynb create mode 100644 notebooks/Assembly_to_dict.ipynb create mode 100644 tests/validation_assembly.xml diff --git a/notebooks/Assembly_to_OT2sim.ipynb b/notebooks/Assembly_to_OT2sim.ipynb new file mode 100644 index 0000000..c21e252 --- /dev/null +++ b/notebooks/Assembly_to_OT2sim.ipynb @@ -0,0 +1,156 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f62bc338", + "metadata": {}, + "source": [ + "# SBOL to robot simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "7c2e1157", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Collecting git+https://github.com/MyersResearchGroup/SBOL2Build\n", + " Cloning https://github.com/MyersResearchGroup/SBOL2Build to /private/var/folders/65/dt4l3nw13q57n8x9nlly46640000gn/T/pip-req-build-zd6w75qs\n", + " Running command git clone --filter=blob:none --quiet https://github.com/MyersResearchGroup/SBOL2Build /private/var/folders/65/dt4l3nw13q57n8x9nlly46640000gn/T/pip-req-build-zd6w75qs\n", + " Resolved https://github.com/MyersResearchGroup/SBOL2Build to commit 177a60672c96904f3f911b36648493deb05419ce\n", + " Installing build dependencies ... \u001b[?25ldone\n", + "\u001b[?25h Getting requirements to build wheel ... \u001b[?25ldone\n", + "\u001b[?25h Preparing metadata (pyproject.toml) ... \u001b[?25ldone\n", + "\u001b[?25hRequirement already satisfied: sbol2 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from sbol2build==0.0b1) (1.2)\n", + "Requirement already satisfied: biopython in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from sbol2build==0.0b1) (1.84)\n", + "Requirement already satisfied: pydna in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from sbol2build==0.0b1) (5.4.0)\n", + "Requirement already satisfied: numpy in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from biopython->sbol2build==0.0b1) (1.26.1)\n", + "Requirement already satisfied: appdirs>=1.4.4 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from pydna->sbol2build==0.0b1) (1.4.4)\n", + "Requirement already satisfied: networkx>=2.8.8 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from pydna->sbol2build==0.0b1) (3.2.1)\n", + "Requirement already satisfied: prettytable>=3.5.0 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from pydna->sbol2build==0.0b1) (3.16.0)\n", + "Requirement already satisfied: pydivsufsort>=0.0.14 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from pydna->sbol2build==0.0b1) (0.0.18)\n", + "Requirement already satisfied: pyfiglet==0.8.post1 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from pydna->sbol2build==0.0b1) (0.8.post1)\n", + "Requirement already satisfied: seguid>=0.0.5 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from pydna->sbol2build==0.0b1) (0.1.0)\n", + "Requirement already satisfied: wcwidth in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from prettytable>=3.5.0->pydna->sbol2build==0.0b1) (0.2.13)\n", + "Requirement already satisfied: wheel in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from pydivsufsort>=0.0.14->pydna->sbol2build==0.0b1) (0.41.2)\n", + "Requirement already satisfied: rdflib>=5.0 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from sbol2->sbol2build==0.0b1) (6.1.1)\n", + "Requirement already satisfied: python-dateutil in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from sbol2->sbol2build==0.0b1) (2.8.2)\n", + "Requirement already satisfied: deprecated in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from sbol2->sbol2build==0.0b1) (1.2.14)\n", + "Requirement already satisfied: lxml in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from sbol2->sbol2build==0.0b1) (5.2.1)\n", + "Requirement already satisfied: requests in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from sbol2->sbol2build==0.0b1) (2.25.1)\n", + "Requirement already satisfied: urllib3 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from sbol2->sbol2build==0.0b1) (1.26.5)\n", + "Requirement already satisfied: packaging>=20.0 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from sbol2->sbol2build==0.0b1) (24.0)\n", + "Requirement already satisfied: isodate in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from rdflib>=5.0->sbol2->sbol2build==0.0b1) (0.6.1)\n", + "Requirement already satisfied: pyparsing in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from rdflib>=5.0->sbol2->sbol2build==0.0b1) (2.4.7)\n", + "Requirement already satisfied: setuptools in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from rdflib>=5.0->sbol2->sbol2build==0.0b1) (68.2.2)\n", + "Requirement already satisfied: wrapt<2,>=1.10 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from deprecated->sbol2->sbol2build==0.0b1) (1.16.0)\n", + "Requirement already satisfied: six in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from isodate->rdflib>=5.0->sbol2->sbol2build==0.0b1) (1.16.0)\n", + "Requirement already satisfied: chardet<5,>=3.0.2 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from requests->sbol2->sbol2build==0.0b1) (4.0.0)\n", + "Requirement already satisfied: idna<3,>=2.5 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from requests->sbol2->sbol2build==0.0b1) (2.10)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from requests->sbol2->sbol2build==0.0b1) (2024.2.2)\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "pip install git+https://github.com/MyersResearchGroup/SBOL2Build" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "69c8a583", + "metadata": {}, + "outputs": [], + "source": [ + "import sbol2build as sb2b" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "e86cb15c", + "metadata": {}, + "outputs": [], + "source": [ + "import sbol2 as sb2" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "4f19b39f", + "metadata": {}, + "outputs": [], + "source": [ + "def test_golden_gate(self):\n", + " pro_doc = sb2.Document()\n", + " pro_doc.read('pro_in_bb.xml')\n", + "\n", + " #where I am working adding 2 and 3\n", + " pro2_doc = sb2.Document()\n", + " pro2_doc.read('pro2_in_bb.xml') #add document\n", + "\n", + " pro3_doc = sb2.Document()\n", + " pro3_doc.read('pro3_in_bb.xml') #add document\n", + " \n", + " rbs_doc = sb2.Document()\n", + " rbs_doc.read('rbs_in_bb.xml')\n", + "\n", + " cds_doc = sb2.Document()\n", + " cds_doc.read('cds_in_bb.xml')\n", + " \n", + " ter_doc = sb2.Document()\n", + " ter_doc.read('terminator_in_bb.xml')\n", + "\n", + " bb_doc = sb2.Document()\n", + " bb_doc.read('backbone.xml')\n", + "\n", + " part_docs = [pro_doc, rbs_doc, cds_doc, ter_doc]\n", + "\n", + " assembly_doc = sb2.Document()\n", + " assembly_obj = sb2b.golden_gate_assembly_plan('testassem', part_docs, bb_doc, 'BsaI', assembly_doc)\n", + "\n", + " composites = assembly_obj.run()\n", + "\n", + " assembly_doc.write('validation_assembly.xml')\n", + "\n", + " sbol_validation_result = assembly_doc.validate()\n", + " self.assertEqual(sbol_validation_result, 'Valid.', 'Assembly SBOL validation failed')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5bf7f217", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "GLLDB", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.19" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/Assembly_to_dict.ipynb b/notebooks/Assembly_to_dict.ipynb new file mode 100644 index 0000000..e8c95e0 --- /dev/null +++ b/notebooks/Assembly_to_dict.ipynb @@ -0,0 +1,147 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "c924440e", + "metadata": {}, + "source": [ + "# Assembly to dict" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "df62b558", + "metadata": {}, + "outputs": [], + "source": [ + "def dictionaryListCreatorPython(file):\n", + " import sbol2 as sb2\n", + " import json\n", + "\n", + " # Disable typed URIs for cleaner URI strings\n", + " sb2.Config.setOption('sbol_typed_uris', False)\n", + "\n", + " # Read the SBOL document\n", + " doc = sb2.Document()\n", + " doc.read(file)\n", + "\n", + " # Known SO roles\n", + " PRODUCT_ROLE = 'http://identifiers.org/so/SO:0000804' # composite product\n", + " PLASMID_ROLE = 'https://identifiers.org/SO:0000755' # plasmid/backbone\n", + "\n", + " # SBOL type for Protein\n", + " PROTEIN_TYPE = sb2.BIOPAX_PROTEIN # URI for proteins\n", + "\n", + " product_dicts = []\n", + "\n", + " globalEnzyme = None\n", + " for cd in doc.componentDefinitions:\n", + " # Detect restriction enzyme by Protein type\n", + " #create a filler variable\n", + " if PROTEIN_TYPE in cd.types:\n", + " globalEnzyme = cd.identity\n", + "\n", + " if PRODUCT_ROLE in cd.roles:\n", + " #create new dict for every product\n", + " result = {\n", + " 'Product': cd.identity,\n", + " 'Backbone': None,\n", + " 'PartsList': [],\n", + " 'Restriction Enzyme': None\n", + " }\n", + "\n", + " for comp in cd.components:\n", + " sub_def_uri = comp.definition\n", + " sub_cd = doc.componentDefinitions.get(sub_def_uri)\n", + "\n", + " if sub_cd is None:\n", + " continue\n", + "\n", + " roles = sub_cd.roles\n", + " display_id = sub_cd.displayId or \"\"\n", + "\n", + " #print(f\"{display_id} roles: {roles} types: {types}\")\n", + "\n", + " # Detect backbone by SO role\n", + " if PLASMID_ROLE in roles:\n", + " result['Backbone'] = sub_def_uri\n", + " result['PartsList'].append(sub_def_uri)\n", + "\n", + " # Default case: treat as regular part\n", + " else:\n", + " result['PartsList'].append(sub_def_uri)\n", + "\n", + " product_dicts.append(result)\n", + "\n", + " #add enzymes to each dictionary\n", + " for dict in product_dicts:\n", + " dict['Restriction Enzyme'] = globalEnzyme\n", + "\n", + " return product_dicts" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "cef06312", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'Product': 'https://SBOL2Build.org/composite_1/1',\n", + " 'Backbone': None,\n", + " 'PartsList': ['https://sbolcanvas.org/B0015/1',\n", + " 'https://sbolcanvas.org/Cir_qxow/1',\n", + " 'https://SBOL2Build.org/Ligation_Scar_A/1',\n", + " 'https://SBOL2Build.org/Ligation_Scar_D/1',\n", + " 'https://SBOL2Build.org/Ligation_Scar_B/1',\n", + " 'https://SBOL2Build.org/Ligation_Scar_E/1',\n", + " 'https://sbolcanvas.org/J23101/1',\n", + " 'https://sbolcanvas.org/GFP/1',\n", + " 'https://sbolcanvas.org/B0034/1',\n", + " 'https://SBOL2Build.org/Ligation_Scar_C/1'],\n", + " 'Restriction Enzyme': 'https://SBOL2Build.org/T4_Ligase/1'}]" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dictionaryListCreatorPython(\"../tests/validation_assembly.xml\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "46fb31a6", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "GLLDB", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.19" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/scripts/run_Loop_assembly.py b/scripts/run_Loop_assembly.py index 2e15aab..274f5c1 100644 --- a/scripts/run_Loop_assembly.py +++ b/scripts/run_Loop_assembly.py @@ -16,4 +16,5 @@ def run(protocol= protocol_api.ProtocolContext): pudu_loop_assembly = Loop_assembly(assemblies=assemblies,) - pudu_loop_assembly.run(protocol) \ No newline at end of file + pudu_loop_assembly.run(protocol) + pudu_loop_assembly.get_xlsx_output('loop_assembly_output.xlsx') \ No newline at end of file diff --git a/tests/validation_assembly.xml b/tests/validation_assembly.xml new file mode 100644 index 0000000..7944404 --- /dev/null +++ b/tests/validation_assembly.xml @@ -0,0 +1,1580 @@ + + + + + + + + 1 + UJHDBOTD_106_reactant + + + + + + + 1 + UJHDBOTD_70_digestion_interaction + + + restriction + + + 1 + + + + + + 1 + + + UJHDBOTD_70_product + + + + + + + UJHDBOTD_70_reactant + + + 1 + + + + + + + + + + + + + 1 + UJHDBOTD_106_product + + + + UJHDBOTD_106_digestion_interaction + + + + 1 + restriction + + + + + + + + + UJHDBOTD_106_reactant + + 1 + + + + 1 + + + + + + + restriction + + 1 + + + + + + + UJHDBOTD_backbone_reactant + + + + 1 + + + 1 + + + 1 + + + UJHDBOTD_backbone_product + + + + UJHDBOTD_digestion_interaction + + + + + testassem + + + + + + 1 + ligation + + + + + + + + + UJHDBOTD_extracted_backbone_ligation + + 1 + + + + + 1 + UJHDBOTD_106_extracted_part_ligation + + + + + + + + 1 + UJHDBOTD_134_extracted_part_ligation + + + + + + + + + + 1 + composite_1_product + + + + + + 1 + + + + 1 + UJHDBOTD_70_extracted_part_ligation + + + + + composite_1_ligation_interaction + + + + + + 1 + UJHDBOTD_45_extracted_part_ligation + + + + + 1 + + + 1 + + + + UJHDBOTD_70_digestion_product + + + + + + 1 + BsaI_enzyme + + + + + + + + + + UJHDBOTD_45_digestion_product + + + 1 + + + + + + 1 + + + + + UJHDBOTD_backbone_digestion_product + + + + + UJHDBOTD_45_digestion_interaction + + 1 + + + UJHDBOTD_45_reactant + + + + 1 + + + + + + 1 + + restriction + + + + + + + UJHDBOTD_45_product + + + 1 + + + + + + + + composite_1 + + 1 + + + + + + + + + 1 + + + + UJHDBOTD_134_digestion_product + + + + + 1 + + + UJHDBOTD_70_reactant + + + + + + + 1 + + + UJHDBOTD_backbone_reactant + + + + + + + + + T4_Ligase + + + + 1 + + + + + 1 + UJHDBOTD_45_reactant + + + + + + + + + + UJHDBOTD_106_digestion_product + + + + 1 + + + + + + + + + + UJHDBOTD_134_reactant + 1 + + + + + + + UJHDBOTD_134_product + 1 + + + + + + + 1 + restriction + + + + + + 1 + + UJHDBOTD_134_digestion_interaction + + + + + + + + + UJHDBOTD_134_reactant + 1 + + + + + 1 + BsaI + BsaI + + Restriction enzyme BsaI from REBASE. + + + + + + + + + + 1 + + UJHDBOTD_70_three_prime_oh_component + + + + + + 1 + + + + 1 + five_prime_oh_location + 4 + + 1 + + + + five_prime_overhang + + + + UJHDBOTD_70_extracted_part + + + + + + + + 43 + 1 + three_prime_oh_location + 40 + + + + 1 + three_prime_overhang + + + + + + + + + 1 + UJHDBOTD_70_five_prime_oh_component + + + + + + + + + 1 + UJHDBOTD_70_part + + + + + UJHDBOTD_70_part_location + 39 + + 1 + 5 + + + + + + + + + J23101_3 + + 1 + + + 1 + + + + + UJHDBOTD_70_three_prime_oh + + + + 1 + + + 1 + Scar_B + Scar_B + + + + + + + 1 + J23101 + J23101 + + + + + + + 1 + + + + + + UJHDBOTD_70_five_prime_oh + + + + Scar_A + 1 + + Scar_A + + + + + + + 1 + + + + UJHDBOTD_45_part_location + 25 + + + 5 + 1 + + + UJHDBOTD_45_part + + + + UJHDBOTD_45_extracted_part + + + + + + + + + + 1 + UJHDBOTD_45_five_prime_oh_component + + + + + + + 1 + + three_prime_overhang + + + + 26 + + three_prime_oh_location + 1 + 29 + + + + + + 1 + + + + 1 + five_prime_overhang + + + + 1 + five_prime_oh_location + 4 + + 1 + + + + + + + + + UJHDBOTD_45_three_prime_oh_component + 1 + + + + + + + 1 + + + B0034_3 + + + + + + 1 + + UJHDBOTD_45_five_prime_oh + + + + + + + + UJHDBOTD_45_three_prime_oh + + + + + 1 + + + + + Scar_C + + + Scar_C + 1 + + + + + B0034 + + + B0034 + 1 + + + + + + + + GFP_3 + 1 + + + + + UJHDBOTD_106_part + + + + + 5 + 721 + UJHDBOTD_106_part_location + + 1 + + + + 1 + + + + + 1 + + + + + 1 + three_prime_oh_location + 725 + + 722 + + + + three_prime_overhang + + + UJHDBOTD_106_extracted_part + + 1 + + + + + + 1 + UJHDBOTD_106_five_prime_oh_component + + + + + + + + + + UJHDBOTD_106_three_prime_oh_component + 1 + + + + + + + + five_prime_overhang + + + + five_prime_oh_location + + 4 + 1 + 1 + + + 1 + + + + + + + + 1 + + GFP + + GFP + + + + + + + 1 + UJHDBOTD_106_five_prime_oh + + + + + + + 1 + + + + UJHDBOTD_106_three_prime_oh + + + 1 + Scar_D + + + + Scar_D + + + + 1 + + + UJHDBOTD_134_five_prime_oh_component + + + 1 + + + + + UJHDBOTD_134_extracted_part + + + + UJHDBOTD_134_three_prime_oh_component + + + 1 + + + + + + 1 + + + + B0015_3 + + + + + five_prime_overhang + + + + + + five_prime_oh_location + 4 + 1 + 1 + + + 1 + + + + + + + + UJHDBOTD_134_part + 1 + + + + 133 + 1 + UJHDBOTD_134_part_location + + 5 + + + + + + + + + + + + + 1 + three_prime_overhang + + + + three_prime_oh_location + 137 + + 134 + 1 + + + + + + + + + B0015 + + 1 + + B0015 + + + + UJHDBOTD_134_three_prime_oh + + + + + 1 + + + Scar_F + + 1 + + + Scar_F + + + + 1 + UJHDBOTD_134_five_prime_oh + + + + + + + + + + + + + UJHDBOTD_159_three_prime_oh_component + + 1 + + + + + + UJHDBOTD_159_backbone + + + UJHDBOTD_159_backbone_location + 5 + + 1 + 2199 + + + + + 1 + + + + + + + UJHDBOTD_159_five_prime_oh_component + 1 + + + + + + + + three_prime_overhang + 1 + + + 2200 + + three_prime_oh_location + + 2203 + 1 + + + + + + + + + + five_prime_overhang + + + 1 + five_prime_oh_location + 4 + + + 1 + + + + 1 + + + + + + + + Cir_qxow_5 + 1 + + + UJHDBOTD_extracted_backbone + 1 + + + + + + UJHDBOTD_159_five_prime_oh + + + + + 1 + + + + + Cir + + + 1 + Cir_qxow + + + 1 + + UJHDBOTD_159_three_prime_oh + + + + + + + 1 + + T4_Ligase + + T4_Ligase + + + + 1 + + + + Ligation_Scar_A + + + + + + + 1 + + + + + Ligation_Scar_B + + + Ligation_Scar_C + + + 1 + + + + + + + + + Ligation_Scar_D + 1 + + + + + + + + Ligation_Scar_E + + + + + 1 + + + + + + 1 + + Cir_qxow_5_annotation + + + + 2199 + + Cir_qxow_5_location + 5 + 1 + + + + + + + + + + 1 + + Cir_qxow + + + + + + + + + + 2264 + 2267 + Ligation_Scar_D_location + + 1 + + + + + 1 + Ligation_Scar_D_annotation + + + composite_1 + + + J23101_3_annotation + + + 1 + + + + 2238 + 2204 + 1 + J23101_3_location + + + + + + + + + + + Ligation_Scar_C_location + + 2242 + + 1 + 2239 + + + 1 + Ligation_Scar_C_annotation + + + + + + GFP + + 1 + + + + + + + + + + + B0015 + 1 + + + + + + 1 + + + Ligation_Scar_B + + + + + + B0034_3_annotation + 1 + + + + 1 + B0034_3_location + + 2243 + 2263 + + + + + + + + J23101 + + + + 1 + + + + + + + 1 + Ligation_Scar_B_annotation + + + 2203 + 1 + Ligation_Scar_B_location + + + 2200 + + + + + 1 + + + + + 2989 + 3117 + 1 + B0015_3_location + + + + + 1 + + B0015_3_annotation + + + + + + + + + + + 2985 + Ligation_Scar_E_location + 2988 + 1 + + + + + Ligation_Scar_E_annotation + 1 + + + + + Ligation_Scar_A_annotation + 1 + + + + 1 + 4 + 1 + + Ligation_Scar_A_location + + + + + + + + + + + 1 + + B0034 + + + + + + + 1 + + + 2984 + GFP_3_location + 1 + 2268 + + + + + GFP_3_annotation + + + + composite_1 + + + Ligation_Scar_D + + 1 + + + + + + + + + 1 + + Ligation_Scar_C + + + + + + + Ligation_Scar_A + + 1 + + + + + Ligation_Scar_E + + + + 1 + + + + + + UJHDBOTD_70_extracted_part_seq + + GGAGtttacagctagctcagtcctaggtattatgctagcTACT + 1 + + + + + 1 + + UJHDBOTD_70_three_prime_oh_sequence + TACT + + + Scar_B_sequence + + TACT + + + + J23101_sequence + + + tttacagctagctcagtcctaggtattatgctagc + + + GGAG + 1 + + + + UJHDBOTD_70_five_prime_oh_sequence + + + + + Scar_A_sequence + GGAG + + + + 1 + TACTagagaaagaggagaaatactaaatg + UJHDBOTD_45_extracted_part_seq + + + + + + + UJHDBOTD_45_five_prime_oh_sequence + 1 + TACT + + + + UJHDBOTD_45_three_prime_oh_sequence + + + 1 + aatg + + + Scar_C_sequence + + aatg + + + + B0034_sequence + + agagaaagaggagaaatacta + + + + + UJHDBOTD_106_extracted_part_seq + + 1 + aatggtgagcaagggcgaggagctgttcaccggggtggtgcccatcctggtcgagctggacggcgacgtaaacggccacaagttcagcgtgtccggcgagggcgagggcgatgccacctacggcaagctgaccctgaagttcatctgcaccaccggcaagctgcccgtgccctggcccaccctcgtgaccaccttcagctacggcgtgcagtgcttcagccgctaccccgaccacatgaagcagcacgacttcttcaagtccgccatgcccgaaggctacgtccaggagcgcaccatcttcttcaaggacgacggcaactacaagacccgcgccgaggtgaagttcgagggcgacaccctggtgaaccgcatcgagctgaagggcatcgacttcaaggaggacggcaacatcctggggcacaagctggagtacaactacaacagccacaacgtctatatcatggccgacaagcagaagaacggcatcaaggtgaacttcaagatccgccacaacatcgaggacggcagcgtgcagctcgccgaccactaccagcagaacacccccatcggcgacggccccgtgctgctgcccgacaaccactacctgagcacccagtccgccctgagcaaagaccccaacgagaagcgcgatcacatggtcctgctggagttcgtgaccgccgccgggatcactcacggcatggacgagctgtacaagtaagctt + + + + + GFP_sequence + gtgagcaagggcgaggagctgttcaccggggtggtgcccatcctggtcgagctggacggcgacgtaaacggccacaagttcagcgtgtccggcgagggcgagggcgatgccacctacggcaagctgaccctgaagttcatctgcaccaccggcaagctgcccgtgccctggcccaccctcgtgaccaccttcagctacggcgtgcagtgcttcagccgctaccccgaccacatgaagcagcacgacttcttcaagtccgccatgcccgaaggctacgtccaggagcgcaccatcttcttcaaggacgacggcaactacaagacccgcgccgaggtgaagttcgagggcgacaccctggtgaaccgcatcgagctgaagggcatcgacttcaaggaggacggcaacatcctggggcacaagctggagtacaactacaacagccacaacgtctatatcatggccgacaagcagaagaacggcatcaaggtgaacttcaagatccgccacaacatcgaggacggcagcgtgcagctcgccgaccactaccagcagaacacccccatcggcgacggccccgtgctgctgcccgacaaccactacctgagcacccagtccgccctgagcaaagaccccaacgagaagcgcgatcacatggtcctgctggagttcgtgaccgccgccgggatcactcacggcatggacgagctgtacaagtaa + + + + + + 1 + aatg + UJHDBOTD_106_five_prime_oh_sequence + + + + + 1 + UJHDBOTD_106_three_prime_oh_sequence + gctt + + + + + Scar_D_sequence + + gctt + + + UJHDBOTD_134_extracted_part_seq + 1 + gcttccaggcatcaaataaaacgaaaggctcagtcgaaagactgggcctttcgttttatctgttgtttgtcggtgaacgctctctactagagtcacactggctcaccttcgggtgggcctttctgcgtttatacgct + + + + + + ccaggcatcaaataaaacgaaaggctcagtcgaaagactgggcctttcgttttatctgttgtttgtcggtgaacgctctctactagagtcacactggctcaccttcgggtgggcctttctgcgtttata + + B0015_sequence + + + cgct + + + 1 + + UJHDBOTD_134_three_prime_oh_sequence + + + cgct + + + Scar_F_sequence + + + UJHDBOTD_134_five_prime_oh_sequence + + 1 + + gctt + + + + cgctgcatgaagagcctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgagtcccgtcaagtcagcgtaatgctctgccagtgttacaaccaattaaccaattctgattagaaaaactcatcgagcatcaaatgaaactgcaatttattcatatcaggattatcaataccatatttttgaaaaagccgtttctgtaatgaaggagaaaactcaccgaggcagttccataggatggcaagatcctggtatcggtctgcgattccgactcgtccaacatcaatacaacctattaatttcccctcgtcaaaaataaggttatcaagtgagaaatcaccatgagtgacgactgaatccggtgagaatggcaaaagcttatgcatttctttccagacttgttcaacaggccagccattacgctcgtcatcaaaatcactcgcatcaaccaaaccgttattcattcgtgattgcgcctgagcgagacgaaatacgcgatcgctgttaaaaggacaattacaaacaggaatcgaatgcaaccggcgcaggaacactgccagcgcatcaacaatattttcacctgaatcaggatattcttctaatacctggaatgctgttttcccggggatcgcagtggtgagtaaccatgcatcatcaggagtacggataaaatgcttgatggtcggaagaggcataaattccgtcagccagtttagtctgaccatctcatctgtaacatcattggcaacgctacctttgccatgtttcagaaacaactctggcgcatcgggcttcccatacaatcgatagattgtcgcacctgattgcccgacattatcgcgagcccatttatacccatataaatcagcatccatgttggaatttaatcgcggcctggagcaagacgtttcccgttgaatatggctcataacaccccttgtattactgtttatgtaagcagacagttttattgttcatgatgatatatttttatcttgtgcaatgtaacatcagagattttgagacacaacgtggctttgttgaataaatcgaacttttgctgagttgaaggatcagctcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcgctcttcaatgggag + + + UJHDBOTD_extracted_backbone_seq + 1 + + + + 1 + cgct + + UJHDBOTD_159_five_prime_oh_sequence + + + + + Cir_qxow_sequence + + gcatgaagagcctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgagtcccgtcaagtcagcgtaatgctctgccagtgttacaaccaattaaccaattctgattagaaaaactcatcgagcatcaaatgaaactgcaatttattcatatcaggattatcaataccatatttttgaaaaagccgtttctgtaatgaaggagaaaactcaccgaggcagttccataggatggcaagatcctggtatcggtctgcgattccgactcgtccaacatcaatacaacctattaatttcccctcgtcaaaaataaggttatcaagtgagaaatcaccatgagtgacgactgaatccggtgagaatggcaaaagcttatgcatttctttccagacttgttcaacaggccagccattacgctcgtcatcaaaatcactcgcatcaaccaaaccgttattcattcgtgattgcgcctgagcgagacgaaatacgcgatcgctgttaaaaggacaattacaaacaggaatcgaatgcaaccggcgcaggaacactgccagcgcatcaacaatattttcacctgaatcaggatattcttctaatacctggaatgctgttttcccggggatcgcagtggtgagtaaccatgcatcatcaggagtacggataaaatgcttgatggtcggaagaggcataaattccgtcagccagtttagtctgaccatctcatctgtaacatcattggcaacgctacctttgccatgtttcagaaacaactctggcgcatcgggcttcccatacaatcgatagattgtcgcacctgattgcccgacattatcgcgagcccatttatacccatataaatcagcatccatgttggaatttaatcgcggcctggagcaagacgtttcccgttgaatatggctcataacaccccttgtattactgtttatgtaagcagacagttttattgttcatgatgatatatttttatcttgtgcaatgtaacatcagagattttgagacacaacgtggctttgttgaataaatcgaacttttgctgagttgaaggatcagctcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcgctcttcaatg + + + + UJHDBOTD_159_three_prime_oh_sequence + ggag + 1 + + + + + + 1 + Ligation_Scar_A_sequence + + cgct + + + + ggag + 1 + + Ligation_Scar_B_sequence + + + + + 1 + TACT + Ligation_Scar_C_sequence + + + Ligation_Scar_D_sequence + aatg + + 1 + + + + gctt + + Ligation_Scar_E_sequence + 1 + + + + cgctgcatgaagagcctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgagtcccgtcaagtcagcgtaatgctctgccagtgttacaaccaattaaccaattctgattagaaaaactcatcgagcatcaaatgaaactgcaatttattcatatcaggattatcaataccatatttttgaaaaagccgtttctgtaatgaaggagaaaactcaccgaggcagttccataggatggcaagatcctggtatcggtctgcgattccgactcgtccaacatcaatacaacctattaatttcccctcgtcaaaaataaggttatcaagtgagaaatcaccatgagtgacgactgaatccggtgagaatggcaaaagcttatgcatttctttccagacttgttcaacaggccagccattacgctcgtcatcaaaatcactcgcatcaaccaaaccgttattcattcgtgattgcgcctgagcgagacgaaatacgcgatcgctgttaaaaggacaattacaaacaggaatcgaatgcaaccggcgcaggaacactgccagcgcatcaacaatattttcacctgaatcaggatattcttctaatacctggaatgctgttttcccggggatcgcagtggtgagtaaccatgcatcatcaggagtacggataaaatgcttgatggtcggaagaggcataaattccgtcagccagtttagtctgaccatctcatctgtaacatcattggcaacgctacctttgccatgtttcagaaacaactctggcgcatcgggcttcccatacaatcgatagattgtcgcacctgattgcccgacattatcgcgagcccatttatacccatataaatcagcatccatgttggaatttaatcgcggcctggagcaagacgtttcccgttgaatatggctcataacaccccttgtattactgtttatgtaagcagacagttttattgttcatgatgatatatttttatcttgtgcaatgtaacatcagagattttgagacacaacgtggctttgttgaataaatcgaacttttgctgagttgaaggatcagctcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcgctcttcaatgGGAGtttacagctagctcagtcctaggtattatgctagcTACTagagaaagaggagaaatactaaatggtgagcaagggcgaggagctgttcaccggggtggtgcccatcctggtcgagctggacggcgacgtaaacggccacaagttcagcgtgtccggcgagggcgagggcgatgccacctacggcaagctgaccctgaagttcatctgcaccaccggcaagctgcccgtgccctggcccaccctcgtgaccaccttcagctacggcgtgcagtgcttcagccgctaccccgaccacatgaagcagcacgacttcttcaagtccgccatgcccgaaggctacgtccaggagcgcaccatcttcttcaaggacgacggcaactacaagacccgcgccgaggtgaagttcgagggcgacaccctggtgaaccgcatcgagctgaagggcatcgacttcaaggaggacggcaacatcctggggcacaagctggagtacaactacaacagccacaacgtctatatcatggccgacaagcagaagaacggcatcaaggtgaacttcaagatccgccacaacatcgaggacggcagcgtgcagctcgccgaccactaccagcagaacacccccatcggcgacggccccgtgctgctgcccgacaaccactacctgagcacccagtccgccctgagcaaagaccccaacgagaagcgcgatcacatggtcctgctggagttcgtgaccgccgccgggatcactcacggcatggacgagctgtacaagtaagcttccaggcatcaaataaaacgaaaggctcagtcgaaagactgggcctttcgttttatctgttgtttgtcggtgaacgctctctactagagtcacactggctcaccttcgggtgggcctttctgcgtttata + + 1 + composite_1_seq + + + From 2dcd62b4ab089ecfe266d6bae33331460a29b6aa Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Mon, 23 Jun 2025 09:37:05 -0600 Subject: [PATCH 041/118] added test files --- scripts/SBOL_xlsx.xlsx | Bin 6286 -> 0 bytes scripts/SBOL_xlsx2.xlsx | Bin 6327 -> 0 bytes scripts/SBOL_xlsx3.xlsx | Bin 6328 -> 0 bytes scripts/SBOL_xlsx4.xlsx | Bin 6420 -> 0 bytes scripts/tempUtils.py | 347 ---------------------------------------- 5 files changed, 347 deletions(-) delete mode 100644 scripts/SBOL_xlsx.xlsx delete mode 100644 scripts/SBOL_xlsx2.xlsx delete mode 100644 scripts/SBOL_xlsx3.xlsx delete mode 100644 scripts/SBOL_xlsx4.xlsx delete mode 100644 scripts/tempUtils.py diff --git a/scripts/SBOL_xlsx.xlsx b/scripts/SBOL_xlsx.xlsx deleted file mode 100644 index 0609d9ffb4b5009f1bf153631217c69f52221b08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6286 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 diff --git a/scripts/SBOL_xlsx2.xlsx b/scripts/SBOL_xlsx2.xlsx deleted file mode 100644 index 91b8d7bd4a3ab3c6e1e19b4d33b24051cb6c630b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6327 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 U26CwWFvIZxL&(AzB>nOAf6s5uCIA2c diff --git a/scripts/SBOL_xlsx3.xlsx b/scripts/SBOL_xlsx3.xlsx deleted file mode 100644 index 7ac5d7c7f204ccf114d58872f639d9cb0a0cf8ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6328 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 Ss{VAtF#yA`!Wky|`SpL>SkX-Y diff --git a/scripts/SBOL_xlsx4.xlsx b/scripts/SBOL_xlsx4.xlsx deleted file mode 100644 index 0631f8f6858850e57c861bd347700469e17ff54c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6420 zcmZ`;by!sGw;j4+NC^SyPHB+_>F%Mshfb01E)fI)Y3U9DK@g<7LmDYbVPFvMsNe7B zmHXX!o^#%F=6Uw|W9|L!{jPOX6%Y^!0000g>=Fe)$nNdvP?0*Q+|3D;zLdR@++>qqsue@!Jq+%{V^$OCoJ;9_XAXK}YkT)b z?i%>WCT2mY+~V7kTVK2|F&kMr+oL?J4uT(V8Mu#yi1&*Ny9Qb%d;IM}H#(DXMJ}o}T*efa+PhMdiZ>dHKoh;4e{Xo`bs@0XVg1qVAgw@+L-1Cr_O(QttNJhpFB}Eg)#Be`P@RxpLPYjCn

jlq#Tiwd~D_@y|U^mU>K^!UkYO<*vP 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 Lu)<*@`uX-h6P*a& diff --git a/scripts/tempUtils.py b/scripts/tempUtils.py deleted file mode 100644 index cf61fbf..0000000 --- a/scripts/tempUtils.py +++ /dev/null @@ -1,347 +0,0 @@ - - -thermo_wells = [ -'A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11','A12', -'B1','B2','B3','B4','B5','B6','B7','B8','B9','B10','B11','B12', -'C1','C2','C3','C4','C5','C6','C7','C8','C9','C10','C11','C12', -'D1','D2','D3','D4','D5','D6','D7','D8','D9','D10','D11','D12', -'E1','E2','E3','E4','E5','E6','E7','E8','E9','E10','E11','E12', -'F1','F2','F3','F4','F5','F6','F7','F8','F9','F10','F11','F12', -'G1','G2','G3','G4','G5','G6','G7','G8','G9','G10','G11','G12', -'H1','H2','H3','H4','H5','H6','H7','H8','H9','H10','H11','H12' -] - -temp_wells = [ -'A1','A2','A3','A4','A5','A6', -'B1','B2','B3','B4','B5','B6', -'C1','C2','C3','C4','C5','C6', -'D1','D2','D3','D4','D5','D6' -] - -plate_96_wells = [ -'A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11','A12', -'B1','B2','B3','B4','B5','B6','B7','B8','B9','B10','B11','B12', -'C1','C2','C3','C4','C5','C6','C7','C8','C9','C10','C11','C12', -'D1','D2','D3','D4','D5','D6','D7','D8','D9','D10','D11','D12', -'E1','E2','E3','E4','E5','E6','E7','E8','E9','E10','E11','E12', -'F1','F2','F3','F4','F5','F6','F7','F8','F9','F10','F11','F12', -'G1','G2','G3','G4','G5','G6','G7','G8','G9','G10','G11','G12', -'H1','H2','H3','H4','H5','H6','H7','H8','H9','H10','H11','H12' -] - -def liquid_transfer(pipette, volume, source, destination, asp_rate:float=0.5, disp_rate:float=1.0, blow_out:bool=True, touch_tip:bool=False, mix_before:float=0.0, mix_after:float=0.0, mix_reps:int=3, new_tip:bool=True, drop_tip:bool=True): - if new_tip: - pipette.pick_up_tip() - if mix_before > 0: - pipette.mix(mix_reps, mix_before, source) - pipette.aspirate(volume, source, rate=asp_rate) - pipette.dispense(volume, destination, rate=disp_rate) - if mix_after > 0: - pipette.mix(mix_reps, mix_after, destination) - if blow_out: - pipette.blow_out() - if touch_tip: - pipette.touch_tip() - if drop_tip: - pipette.drop_tip() - -#Define slots, to allocate 4 samples in each slot, lasts slots allocate in the border where border effects apply -slot_1 = ['A2', 'B2', 'C2', 'D2'] -slot_2 = ['A3', 'B3', 'C3', 'D3'] -slot_3 = ['A4', 'B4', 'C4', 'D4'] -slot_4 = ['A5', 'B5', 'C5', 'D5'] -slot_5 = ['A6', 'B6', 'C6', 'D6'] -slot_6 = ['A7', 'B7', 'C7', 'D7'] -slot_7 = ['A8', 'B8', 'C8', 'D8'] -slot_8 = ['A9', 'B9', 'C9', 'D9'] -slot_9 = ['A10', 'B10', 'C10', 'D10'] -slot_10 = ['A11', 'B11', 'C11', 'D11'] -slot_11 = ['E2', 'F2', 'G2', 'H2'] -slot_12 = ['E3', 'F3', 'G3', 'H3'] -slot_13 = ['E4', 'F4', 'G4', 'H4'] -slot_14 = ['E5', 'F5', 'G5', 'H5'] -slot_15 = ['E6', 'F6', 'G6', 'H6'] -slot_16 = ['E7', 'F7', 'G7', 'H7'] -slot_17 = ['E8', 'F8', 'G8', 'H8'] -slot_18 = ['E9', 'F9', 'G9', 'H9'] -slot_19 = ['E10', 'F10', 'G10', 'H10'] -slot_20 = ['E11', 'F11', 'G11', 'H11'] -slot_21 = ['A1', 'B1', 'C1', 'D1'] -slot_22 = ['E1', 'F1', 'G1', 'H1'] -slot_23 = ['A12', 'B12', 'C12', 'D12'] -slot_24 = ['E12', 'F12', 'G12', 'H12'] - -slots = [slot_1, slot_2, slot_3, slot_4, slot_5, slot_6, slot_7, slot_8, slot_9, slot_10, slot_11, slot_12, slot_13, slot_14, slot_15, slot_16, slot_17, slot_18, slot_19, slot_20, slot_21, slot_22, slot_23, slot_24] - -#define rows -row_a = ['A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11','A12'] -row_b = ['B1','B2','B3','B4','B5','B6','B7','B8','B9','B10','B11','B12'] -row_c = ['C1','C2','C3','C4','C5','C6','C7','C8','C9','C10','C11','C12'] -row_d = ['D1','D2','D3','D4','D5','D6','D7','D8','D9','D10','D11','D12'] -row_e = ['E1','E2','E3','E4','E5','E6','E7','E8','E9','E10','E11','E12'] -row_f = ['F1','F2','F3','F4','F5','F6','F7','F8','F9','F10','F11','F12'] -row_g = ['G1','G2','G3','G4','G5','G6','G7','G8','G9','G10','G11','G12'] -row_h = ['H1','H2','H3','H4','H5','H6','H7','H8','H9','H10','H11','H12'] - -rows = [row_a, row_b, row_c, row_d, row_e, row_f, row_g, row_h] - -#define columns -col_1 = ['A1','B1','C1','D1','E1','F1','G1','H1'] -col_2 = ['A2','B2','C2','D2','E2','F2','G2','H2'] -col_3 = ['A3','B3','C3','D3','E3','F3','G3','H3'] -col_4 = ['A4','B4','C4','D4','E4','F4','G4','H4'] -col_5 = ['A5','B5','C5','D5','E5','F5','G5','H5'] -col_6 = ['A6','B6','C6','D6','E6','F6','G6','H6'] -col_7 = ['A7','B7','C7','D7','E7','F7','G7','H7'] -col_8 = ['A8','B8','C8','D8','E8','F8','G8','H8'] -col_9 = ['A9','B9','C9','D9','E9','F9','G9','H9'] -col_10 = ['A10','B10','C10','D10','E10','F10','G10','H10'] -col_11 = ['A11','B11','C11','D11','E11','F11','G11','H11'] -col_12 = ['A12','B12','C12','D12','E12','F12','G12','H12'] - -columns = [col_1, col_2, col_3, col_4, col_5, col_6, col_7, col_8, col_9, col_10, col_11, col_12] - -position_to_row_and_column = {'A1':(1,1), 'A2':(1,2), 'A3':(1,3), 'A4':(1,4), 'A5':(1,5), 'A6':(1,6), 'A7':(1,7), 'A8':(1,8), 'A9':(1,9), 'A10':(1,10), 'A11':(1,11), 'A12':(1,12), - 'B1':(2,1), 'B2':(2,2), 'B3':(2,3), 'B4':(2,4), 'B5':(2,5), 'B6':(2,6), 'B7':(2,7), 'B8':(2,8), 'B9':(2,9), 'B10':(2,10), 'B11':(2,11), 'B12':(2,12), - 'C1':(3,1), 'C2':(3,2), 'C3':(3,3), 'C4':(3,4), 'C5':(3,5), 'C6':(3,6), 'C7':(3,7), 'C8':(3,8), 'C9':(3,9), 'C10':(3,10), 'C11':(3,11), 'C12':(3,12), - 'D1':(4,1), 'D2':(4,2), 'D3':(4,3), 'D4':(4,4), 'D5':(4,5), 'D6':(4,6), 'D7':(4,7), 'D8':(4,8), 'D9':(4,9), 'D10':(4,10), 'D11':(4,11), 'D12':(4,12), - 'E1':(5,1), 'E2':(5,2), 'E3':(5,3), 'E4':(5,4), 'E5':(5,5), 'E6':(5,6), 'E7':(5,7), 'E8':(5,8), 'E9':(5,9), 'E10':(5,10), 'E11':(5,11), 'E12':(5,12), - 'F1':(6,1), 'F2':(6,2), 'F3':(6,3), 'F4':(6,4), 'F5':(6,5), 'F6':(6,6), 'F7':(6,7), 'F8':(6,8), 'F9':(6,9), 'F10':(6,10), 'F11':(6,11), 'F12':(6,12), - 'G1':(7,1), 'G2':(7,2), 'G3':(7,3), 'G4':(7,4), 'G5':(7,5), 'G6':(7,6), 'G7':(7,7), 'G8':(7,8), 'G9':(7,9), 'G10':(7,10), 'G11':(7,11), 'G12':(7,12), - 'H1':(8,1), 'H2':(8,2), 'H3':(8,3), 'H4':(8,4), 'H5':(8,5), 'H6':(8,6), 'H7':(8,7), 'H8':(8,8), 'H9':(8,9), 'H10':(8,10), 'H11':(8,11), 'H12':(8,12)} - -row_letter_to_number = {'A':1, 'B':2, 'C':3, 'D':4, 'E':5, 'F':6, 'G':7, 'H':8} - - -#Xml to uri dictionary -def dictionaryCreatorjson(file): - import sbol2 as sb2 - from flask import Flask, jsonify - app = Flask(__name__) - #given code from website - doc = sb2.Document() - doc.read(file) - #Loops through commponetDefinition - #for DNA - # Lists to store different components - BackBoneList = ['https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/ComponentDefinition_dvk_backbone_core/1'] - PartsList = ['https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/J23100/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/E0040m_gfp/1', - 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0032/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0015/1'] - RestrictionEnzymeList = ['https://charmme.synbiohub.org/user/Gonza10V/ligationtestforreal/ComponentDefinition_BsaI/1'] - # Flags to track duplicates - gotBone = False - gotZyme = False - # Output dictionary - outputDictionary = {"Parts": [], "Backbone": -1, "Restriction Enzyme": -1} - # Loop through component definitions - for cd in doc.componentDefinitions: - print(cd) - # Checks backbone - if cd in BackBoneList: - print(cd) - print("backbone") - if not gotBone: - outputDictionary["Backbone"] = cd - gotBone = True # Update flag - else: - print("You have more than one backbone") - return -1 - # Checks parts - if cd in PartsList: - print(cd) - print("got part") - outputDictionary["Parts"].append(cd) - # Checks enzymes - if cd in RestrictionEnzymeList: - print(cd) - print("Enzyme") - if not gotZyme: - outputDictionary["Restriction Enzyme"] = cd # Assign value - gotZyme = True # Update flag - else: - print("You have more than one restriction enzyme") - return -1 - # Error Checks - if len(outputDictionary["Parts"]) <= 1: - print("Invalid number of parts") - return -1 - if outputDictionary["Backbone"] == -1: - print("No Backbone found, try again") - return -1 - if outputDictionary["Restriction Enzyme"] == -1: - print("No Restriction Enzyme found, try again") - return -1 - #(outputDictionary) - response = jsonify(outputDictionary) - content = response.get_data(as_text=True) - - return content - -#same as before but no Json -#Change to add roles -def dictionaryCreatorPython(file): - import sbol2 as sb2 - #given code from website - doc = sb2.Document() - doc.read(file) - #Loops through commponetDefinition - #for DNA - # Lists to store different components - ProductRoleList = ['http://identifiers.org/so/SO:0000804'] - - #look at the roles for each - for cd in doc.componentDefinitions: - #check for role - if cd.role in ProductRoleList: - print(cd) - - - - # Output dictionary - outputAssemblies = [] - # Loop through component definitions - for cd in doc.componentDefinitions: - print(cd) - # Checks backbone - if cd in BackBoneList: - print(cd) - print("backbone") - if not gotBone: - outputDictionary["Backbone"] = cd - gotBone = True # Update flag - else: - print("You have more than one backbone") - return -1 - # Checks parts - if cd in PartsList: - print(cd) - print("got part") - outputDictionary["Parts"].append(cd) - # Checks enzymes - if cd in RestrictionEnzymeList: - print(cd) - print("Enzyme") - if not gotZyme: - outputDictionary["Restriction Enzyme"] = cd # Assign value - gotZyme = True # Update flag - else: - print("You have more than one restriction enzyme") - return -1 - # Error Checks - if len(outputDictionary["Parts"]) <= 1: - print("Invalid number of parts") - return -1 - if outputDictionary["Backbone"] == -1: - print("No Backbone found, try again") - return -1 - if outputDictionary["Restriction Enzyme"] == -1: - print("No Restriction Enzyme found, try again") - return -1 - #(outputDictionary) - response = outputDictionary - - return response - - -#NEW dictionary creator that goes through xml file -#reads roles and returns a list of dictionaries -def dictionaryListCreatorPython(file): - import sbol2 as sb2 - import json - - # Disable typed URIs for cleaner URI strings - sb2.Config.setOption('sbol_typed_uris', False) - - # Read the SBOL document - doc = sb2.Document() - doc.read(file) - - # Known SO roles - PRODUCT_ROLE = 'http://identifiers.org/so/SO:0000804' # composite product - PLASMID_ROLE = 'https://identifiers.org/SO:0000755' # plasmid/backbone - - # SBOL type for Protein - PROTEIN_TYPE = sb2.BIOPAX_PROTEIN # URI for proteins - - product_dicts = [] - - globalEnzyme = None - for cd in doc.componentDefinitions: - # Detect restriction enzyme by Protein type - #create a filler variable - if PROTEIN_TYPE in cd.types: - globalEnzyme = cd.identity - - if PRODUCT_ROLE in cd.roles: - #create new dict for every product - result = { - 'Product': cd.identity, - 'Backbone': None, - 'PartsList': [], - 'Restriction Enzyme': None - } - - for comp in cd.components: - sub_def_uri = comp.definition - sub_cd = doc.componentDefinitions.get(sub_def_uri) - - if sub_cd is None: - continue - - roles = sub_cd.roles - display_id = sub_cd.displayId or "" - - #print(f"{display_id} roles: {roles} types: {types}") - - # Detect backbone by SO role - if PLASMID_ROLE in roles: - result['Backbone'] = sub_def_uri - result['PartsList'].append(sub_def_uri) - - # Default case: treat as regular part - else: - result['PartsList'].append(sub_def_uri) - - product_dicts.append(result) - - #add enzymes to each dictionary - for dict in product_dicts: - dict['Restriction Enzyme'] = globalEnzyme - - return product_dicts - - -def test_golden_gate(self): - pro_doc = sb2.Document() - pro_doc.read('pro_in_bb.xml') - - #where I am working adding 2 and 3 - pro2_doc = sb2.Document() - pro2_doc.read('pro2_in_bb.xml') #add document - - pro3_doc = sb2.Document() - pro3_doc.read('pro3_in_bb.xml') #add document - - rbs_doc = sb2.Document() - rbs_doc.read('rbs_in_bb.xml') - - cds_doc = sb2.Document() - cds_doc.read('cds_in_bb.xml') - - ter_doc = sb2.Document() - ter_doc.read('terminator_in_bb.xml') - - bb_doc = sb2.Document() - bb_doc.read('backbone.xml') - - part_docs = [pro_doc, rbs_doc, cds_doc, ter_doc] - - assembly_doc = sb2.Document() - assembly_obj = golden_gate_assembly_plan('testassem', part_docs, bb_doc, 'BsaI', assembly_doc) - - composites = assembly_obj.run() - - assembly_doc.write('validation_assembly.xml') - - sbol_validation_result = assembly_doc.validate() - self.assertEqual(sbol_validation_result, 'Valid.', 'Assembly SBOL validation failed') \ No newline at end of file From bd816304dbbf2502bec9572720472821b32776c1 Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 25 Jun 2025 10:55:22 -0600 Subject: [PATCH 042/118] Change to notebook --- notebooks/Assembly_to_dict.ipynb | 270 ++- notebooks/output.json | 13 + scripts/run_sbol2assembly_libre.py | 1 - src/pudu/__pycache__/__init__.cpython-37.pyc | Bin 0 -> 288 bytes src/pudu/__pycache__/assembly.cpython-37.pyc | Bin 0 -> 18330 bytes tests/Part_in_backbone_defined.xml | 328 ++++ tests/Part_in_backbone_example.xml | 328 ++++ tests/RyanTest.xml | 1579 +++++++++++++++++ tests/backbone.xml | 328 ++++ tests/cds_in_bb.xml | 328 ++++ tests/ligation_test_forreal.xml | 627 +++++++ tests/out_doc.xml | 1580 ++++++++++++++++++ tests/pro2_in_bb.xml | 330 ++++ tests/pro3_in_bb.xml | 330 ++++ tests/pro_in_bb.xml | 328 ++++ tests/rbs_in_bb.xml | 328 ++++ 16 files changed, 6651 insertions(+), 47 deletions(-) create mode 100644 notebooks/output.json create mode 100644 src/pudu/__pycache__/__init__.cpython-37.pyc create mode 100644 src/pudu/__pycache__/assembly.cpython-37.pyc create mode 100644 tests/Part_in_backbone_defined.xml create mode 100644 tests/Part_in_backbone_example.xml create mode 100644 tests/RyanTest.xml create mode 100644 tests/backbone.xml create mode 100644 tests/cds_in_bb.xml create mode 100644 tests/ligation_test_forreal.xml create mode 100644 tests/out_doc.xml create mode 100644 tests/pro2_in_bb.xml create mode 100644 tests/pro3_in_bb.xml create mode 100644 tests/pro_in_bb.xml create mode 100644 tests/rbs_in_bb.xml diff --git a/notebooks/Assembly_to_dict.ipynb b/notebooks/Assembly_to_dict.ipynb index e8c95e0..968b250 100644 --- a/notebooks/Assembly_to_dict.ipynb +++ b/notebooks/Assembly_to_dict.ipynb @@ -10,40 +10,58 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "df62b558", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'def dictionaryListCreatorPython(file):\\n import sbol2 as sb2\\n import json\\n\\n # Disable typed URIs for cleaner URI strings\\n sb2.Config.setOption(\\'sbol_typed_uris\\', False)\\n\\n # Read the SBOL document\\n doc = sb2.Document()\\n doc.read(file)\\n\\n #For collective parts knowledge\\n # http://identifiers.org/so/SO:0000031 Aptamer(PART) *added\\n # http://identifiers.org/so/SO:0000316 CDS (PART) *added\\n # http://identifiers.org/so/SO:0001977 Ribonuclease Site (PART) *added\\n # http://identifiers.org/so/SO:0001956 (Protease Site) (PART) *added\\n # http://identifiers.org/so/SO:0000804 (Engineered Region) (PRODUCT)\\n # http://identifiers.org/so/SO:0000188 (intron) (PART) *added\\n # http://identifiers.org/so/SO:0001263: Non-Coding RNA Gene (PART to be checked)*added\\n # http://identifiers.org/so/SO:0000839 (polypeptide region) (PART) *added\\n # http://identifiers.org/so/SO:0000167 (Promoter) *added\\n # http://identifiers.org/so/SO:0000139: Ribosome Entry Site (PART) *added\\n # http://identifiers.org/so/SO:0001979 (RNA Stability Element)*added\\n # http://identifiers.org/so/SO:0001955, # http://identifiers.org/so/SO:0001546 (Protein Stability Element) (2 of them ???)*added\\n\\n\\n # Known SO roles\\n PRODUCT_ROLE = \\'http://identifiers.org/so/SO:0000804\\' # composite product\\n PLASMID_ROLE = \\'http://identifiers.org/SO:0000755\\' # plasmid/backbone\\n ENZYME_ROLE = \\'http://identifiers.org/obi/OBI:0000732\\' #Restriction Enzyme (Check got it from sbol2build)\\n TERMINATOR_ROLE = \\'http://identifiers.org/SO:0000141\\' #Terminator\\n PARTS_ROLE_LIST = [\\'http://identifiers.org/so/SO:0000031\\',\\'http://identifiers.org/so/SO:0000316\\',\\n \\'http://identifiers.org/so/SO:0001977\\', \\'http://identifiers.org/so/SO:0001956\\',\\n \\'http://identifiers.org/so/SO:0000188\\', \\'http://identifiers.org/so/SO:0000839\\',\\n \\'http://identifiers.org/so/SO:0000167\\', \\'http://identifiers.org/so/SO:0000139\\',\\n \\'http://identifiers.org/so/SO:0001979\\', \\'http://identifiers.org/so/SO:0001955\\',\\n \\'http://identifiers.org/so/SO:0001546\\', \\'http://identifiers.org/so/SO:0001263\\'\\n ] #a list of all the roles of the parts\\n product_dicts = []\\n globalEnzyme = None\\n\\n for cd in doc.componentDefinitions:\\n if ENZYME_ROLE in cd.types:\\n globalEnzyme = cd.identity\\n print(f\"Found enzyme: {globalEnzyme}\")\\n\\n #Looks Good\\n if ENZYME_ROLE in cd.types:\\n globalEnzyme = cd.identity\\n\\n if PRODUCT_ROLE in cd.roles:\\n result = {\\n \\'Product\\': cd.identity,\\n \\'Backbone\\': None,\\n \\'PartsList\\': [],\\n \\'Restriction Enzyme\\': None,\\n \\'Terminator\\': None\\n }\\n print(\"Components\")\\n print(cd.components)\\n\\n for comp in cd.components:\\n sub_cd = doc.componentDefinitions.get(comp.definition)\\n if sub_cd is None:\\n continue\\n\\n roles = sub_cd.roles\\n\\n if PLASMID_ROLE in roles:\\n result[\\'Backbone\\'] = sub_cd.identity\\n\\n if any(role in PARTS_ROLE_LIST for role in roles):\\n result[\\'PartsList\\'].append(sub_cd.identity)\\n\\n if not result[\\'Backbone\\']:\\n print(f\"⚠️ Warning: No backbone found for product {cd.displayId}\")\\n if not result[\\'PartsList\\']:\\n print(f\"⚠️ Warning: No parts found for product {cd.displayId}\")\\n\\n product_dicts.append(result)\\n\\n\\n for dict in product_dicts:\\n dict[\\'Restriction Enzyme\\'] = globalEnzyme\\n\\n # Write JSON output\\n with open(\\'output.json\\', \\'w\\') as json_file:\\n json.dump(product_dicts, json_file, indent=4)\\n\\n return product_dicts'" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "def dictionaryListCreatorPython(file):\n", " import sbol2 as sb2\n", " import json\n", "\n", - " # Disable typed URIs for cleaner URI strings\n", " sb2.Config.setOption('sbol_typed_uris', False)\n", - "\n", - " # Read the SBOL document\n", " doc = sb2.Document()\n", " doc.read(file)\n", "\n", " # Known SO roles\n", - " PRODUCT_ROLE = 'http://identifiers.org/so/SO:0000804' # composite product\n", - " PLASMID_ROLE = 'https://identifiers.org/SO:0000755' # plasmid/backbone\n", + " PRODUCT_ROLE = 'http://identifiers.org/so/SO:0000804'\n", + " BackBone_ROLE = 'http://identifiers.org/so/SO:0000755'\n", + " ENZYME_ROLE = 'http://identifiers.org/obi/OBI:0000732'\n", "\n", - " # SBOL type for Protein\n", - " PROTEIN_TYPE = sb2.BIOPAX_PROTEIN # URI for proteins\n", + " PARTS_ROLE_LIST = [\n", + " 'http://identifiers.org/so/SO:0000031', 'http://identifiers.org/so/SO:0000316',\n", + " 'http://identifiers.org/so/SO:0001977', 'http://identifiers.org/so/SO:0001956',\n", + " 'http://identifiers.org/so/SO:0000188', 'http://identifiers.org/so/SO:0000839',\n", + " 'http://identifiers.org/so/SO:0000167', 'http://identifiers.org/so/SO:0000139',\n", + " 'http://identifiers.org/so/SO:0001979', 'http://identifiers.org/so/SO:0001955',\n", + " 'http://identifiers.org/so/SO:0001546', 'http://identifiers.org/so/SO:0001263',\n", + " 'http://identifiers.org/SO:0000141', 'http://identifiers.org/so/SO:0000141'\n", + " ]\n", "\n", " product_dicts = []\n", - "\n", " globalEnzyme = None\n", + "\n", " for cd in doc.componentDefinitions:\n", - " # Detect restriction enzyme by Protein type\n", - " #create a filler variable\n", - " if PROTEIN_TYPE in cd.types:\n", + " print(f\"\\n🔍 Checking Component: {cd.displayId}\")\n", + " print(f\" Types: {cd.types}\")\n", + " print(f\" Roles: {cd.roles}\")\n", + "\n", + " if ENZYME_ROLE in cd.types:\n", " globalEnzyme = cd.identity\n", + " print(f\"✅ Found enzyme definition: {globalEnzyme}\")\n", "\n", " if PRODUCT_ROLE in cd.roles:\n", - " #create new dict for every product\n", " result = {\n", " 'Product': cd.identity,\n", " 'Backbone': None,\n", @@ -52,60 +70,220 @@ " }\n", "\n", " for comp in cd.components:\n", - " sub_def_uri = comp.definition\n", - " sub_cd = doc.componentDefinitions.get(sub_def_uri)\n", - "\n", + " sub_cd = doc.componentDefinitions.get(comp.definition)\n", " if sub_cd is None:\n", + " print(f\"⚠️ Component definition for {comp.displayId} not found.\")\n", " continue\n", "\n", - " roles = sub_cd.roles\n", - " display_id = sub_cd.displayId or \"\"\n", + " print(f\" → Subcomponent: {sub_cd.displayId}\")\n", + " print(f\" Roles: {sub_cd.roles}\")\n", "\n", - " #print(f\"{display_id} roles: {roles} types: {types}\")\n", + " if BackBone_ROLE in sub_cd.roles:\n", + " result['Backbone'] = sub_cd.identity\n", + " print(f\" 🧬 Assigned Backbone: {sub_cd.identity}\")\n", "\n", - " # Detect backbone by SO role\n", - " if PLASMID_ROLE in roles:\n", - " result['Backbone'] = sub_def_uri\n", - " result['PartsList'].append(sub_def_uri)\n", + " if any(role in PARTS_ROLE_LIST for role in sub_cd.roles):\n", + " result['PartsList'].append(sub_cd.identity)\n", + " print(f\" 🧩 Added Part: {sub_cd.identity}\")\n", "\n", - " # Default case: treat as regular part\n", - " else:\n", - " result['PartsList'].append(sub_def_uri)\n", + " if not result['Backbone']:\n", + " print(f\"⚠️ No backbone found for product {cd.displayId}\")\n", + " if not result['PartsList']:\n", + " print(f\"⚠️ No parts found for product {cd.displayId}\")\n", "\n", " product_dicts.append(result)\n", "\n", - " #add enzymes to each dictionary\n", - " for dict in product_dicts:\n", - " dict['Restriction Enzyme'] = globalEnzyme\n", + " for entry in product_dicts:\n", + " entry['Restriction Enzyme'] = globalEnzyme\n", "\n", - " return product_dicts" + " with open('output.json', 'w') as json_file:\n", + " json.dump(product_dicts, json_file, indent=4)\n", + "\n", + " return product_dicts\n" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 22, "id": "cef06312", "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "🔍 Checking Component: BsaI\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#Protein']\n", + " Roles: []\n", + "\n", + "🔍 Checking Component: UJHDBOTD_70_extracted_part\n", + " Types: ['http://identifiers.org/so/SO:0000987', 'http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['https://identifiers.org/so/SO:0000915']\n", + "\n", + "🔍 Checking Component: UJHDBOTD_70_three_prime_oh\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0001933']\n", + "\n", + "🔍 Checking Component: Scar_B\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0001953']\n", + "\n", + "🔍 Checking Component: J23101\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0000167']\n", + "\n", + "🔍 Checking Component: UJHDBOTD_70_five_prime_oh\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0001932']\n", + "\n", + "🔍 Checking Component: Scar_A\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0001953']\n", + "\n", + "🔍 Checking Component: UJHDBOTD_45_extracted_part\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion', 'http://identifiers.org/so/SO:0000987']\n", + " Roles: ['https://identifiers.org/so/SO:0000915']\n", + "\n", + "🔍 Checking Component: UJHDBOTD_45_five_prime_oh\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0001932']\n", + "\n", + "🔍 Checking Component: UJHDBOTD_45_three_prime_oh\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0001933']\n", + "\n", + "🔍 Checking Component: Scar_C\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0001953']\n", + "\n", + "🔍 Checking Component: B0034\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0000139']\n", + "\n", + "🔍 Checking Component: UJHDBOTD_106_extracted_part\n", + " Types: ['http://identifiers.org/so/SO:0000987', 'http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['https://identifiers.org/so/SO:0000915']\n", + "\n", + "🔍 Checking Component: GFP\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0000316']\n", + "\n", + "🔍 Checking Component: UJHDBOTD_106_five_prime_oh\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0001932']\n", + "\n", + "🔍 Checking Component: UJHDBOTD_106_three_prime_oh\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0001933']\n", + "\n", + "🔍 Checking Component: Scar_D\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0001953']\n", + "\n", + "🔍 Checking Component: UJHDBOTD_134_extracted_part\n", + " Types: ['http://identifiers.org/so/SO:0000987', 'http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['https://identifiers.org/so/SO:0000915']\n", + "\n", + "🔍 Checking Component: B0015\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0000141']\n", + "\n", + "🔍 Checking Component: UJHDBOTD_134_three_prime_oh\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0001933']\n", + "\n", + "🔍 Checking Component: Scar_F\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0001953']\n", + "\n", + "🔍 Checking Component: UJHDBOTD_134_five_prime_oh\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0001932']\n", + "\n", + "🔍 Checking Component: UJHDBOTD_extracted_backbone\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['https://identifiers.org/so/SO:0000755']\n", + "\n", + "🔍 Checking Component: UJHDBOTD_159_five_prime_oh\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0001932']\n", + "\n", + "🔍 Checking Component: Cir_qxow\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0000755']\n", + "\n", + "🔍 Checking Component: UJHDBOTD_159_three_prime_oh\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0001933']\n", + "\n", + "🔍 Checking Component: T4_Ligase\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#Protein']\n", + " Roles: []\n", + "\n", + "🔍 Checking Component: Ligation_Scar_A\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0001953']\n", + "\n", + "🔍 Checking Component: Ligation_Scar_B\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0001953']\n", + "\n", + "🔍 Checking Component: Ligation_Scar_C\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0001953']\n", + "\n", + "🔍 Checking Component: Ligation_Scar_D\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0001953']\n", + "\n", + "🔍 Checking Component: Ligation_Scar_E\n", + " Types: ['http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0001953']\n", + "\n", + "🔍 Checking Component: composite_1\n", + " Types: ['http://identifiers.org/so/SO:0000988', 'http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", + " Roles: ['http://identifiers.org/so/SO:0000804']\n", + " → Subcomponent: GFP\n", + " Roles: ['http://identifiers.org/so/SO:0000316']\n", + " 🧩 Added Part: https://sbolcanvas.org/GFP/1\n", + " → Subcomponent: B0015\n", + " Roles: ['http://identifiers.org/so/SO:0000141']\n", + " 🧩 Added Part: https://sbolcanvas.org/B0015/1\n", + " → Subcomponent: Ligation_Scar_E\n", + " Roles: ['http://identifiers.org/so/SO:0001953']\n", + " → Subcomponent: Ligation_Scar_B\n", + " Roles: ['http://identifiers.org/so/SO:0001953']\n", + " → Subcomponent: Ligation_Scar_C\n", + " Roles: ['http://identifiers.org/so/SO:0001953']\n", + " → Subcomponent: J23101\n", + " Roles: ['http://identifiers.org/so/SO:0000167']\n", + " 🧩 Added Part: https://sbolcanvas.org/J23101/1\n", + " → Subcomponent: Ligation_Scar_A\n", + " Roles: ['http://identifiers.org/so/SO:0001953']\n", + " → Subcomponent: Ligation_Scar_D\n", + " Roles: ['http://identifiers.org/so/SO:0001953']\n", + " → Subcomponent: B0034\n", + " Roles: ['http://identifiers.org/so/SO:0000139']\n", + " 🧩 Added Part: https://sbolcanvas.org/B0034/1\n", + " → Subcomponent: Cir_qxow\n", + " Roles: ['http://identifiers.org/so/SO:0000755']\n", + " 🧬 Assigned Backbone: https://sbolcanvas.org/Cir_qxow/1\n" + ] + }, { "data": { "text/plain": [ "[{'Product': 'https://SBOL2Build.org/composite_1/1',\n", - " 'Backbone': None,\n", - " 'PartsList': ['https://sbolcanvas.org/B0015/1',\n", - " 'https://sbolcanvas.org/Cir_qxow/1',\n", - " 'https://SBOL2Build.org/Ligation_Scar_A/1',\n", - " 'https://SBOL2Build.org/Ligation_Scar_D/1',\n", - " 'https://SBOL2Build.org/Ligation_Scar_B/1',\n", - " 'https://SBOL2Build.org/Ligation_Scar_E/1',\n", + " 'Backbone': 'https://sbolcanvas.org/Cir_qxow/1',\n", + " 'PartsList': ['https://sbolcanvas.org/GFP/1',\n", + " 'https://sbolcanvas.org/B0015/1',\n", " 'https://sbolcanvas.org/J23101/1',\n", - " 'https://sbolcanvas.org/GFP/1',\n", - " 'https://sbolcanvas.org/B0034/1',\n", - " 'https://SBOL2Build.org/Ligation_Scar_C/1'],\n", - " 'Restriction Enzyme': 'https://SBOL2Build.org/T4_Ligase/1'}]" + " 'https://sbolcanvas.org/B0034/1'],\n", + " 'Restriction Enzyme': None}]" ] }, - "execution_count": 2, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -125,7 +303,7 @@ ], "metadata": { "kernelspec": { - "display_name": "GLLDB", + "display_name": "test", "language": "python", "name": "python3" }, @@ -139,7 +317,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.19" + "version": "3.7.12" } }, "nbformat": 4, diff --git a/notebooks/output.json b/notebooks/output.json new file mode 100644 index 0000000..f73bc40 --- /dev/null +++ b/notebooks/output.json @@ -0,0 +1,13 @@ +[ + { + "Product": "https://SBOL2Build.org/composite_1/1", + "Backbone": "https://sbolcanvas.org/Cir_qxow/1", + "PartsList": [ + "https://sbolcanvas.org/GFP/1", + "https://sbolcanvas.org/B0015/1", + "https://sbolcanvas.org/J23101/1", + "https://sbolcanvas.org/B0034/1" + ], + "Restriction Enzyme": null + } +] \ No newline at end of file diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index 4335ad2..c08d600 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -3,7 +3,6 @@ from fnmatch import fnmatch from itertools import product import xlsxwriter -from tempUtils import dictionaryListCreatorPython # utils diff --git a/src/pudu/__pycache__/__init__.cpython-37.pyc b/src/pudu/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a73e118ea67aadb08b360737054d7719f27271d7 GIT binary patch literal 288 zcmZ?b<>g`kf>XP6GFpN3V-N=hn1BoiATHJc5-AKRj5!P;5SkH6GeK!)D9r+-nSvQK znO`yjwP-TlV$|}}WWB|aSX`W%o0L;|i#s_nCo`!iu_QA;FN&)qwYVg{IJKm-Ad0V~ zC^4@%Ex#xiEO(2wv?Md9cqKy-8_*yy@higFDkiizwWv5Ir!+e?Eyh1D)ukx2EH%a@ zwK%&ZzaS;Y*#yQy8Gv3hHz`!jgJijPACLq)$6wZh#E=rCmC`~DiiI30B%PfhH b*DI*J#bJ}1pHiBWY6o(4F$a*~V1z&bE*(#$ literal 0 HcmV?d00001 diff --git a/src/pudu/__pycache__/assembly.cpython-37.pyc b/src/pudu/__pycache__/assembly.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..80ee604c02881920f4cbdb9aae3596baaa388301 GIT binary patch literal 18330 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 SLg`D{&nai{jpKWs`2P!VVnsv% literal 0 HcmV?d00001 diff --git a/tests/Part_in_backbone_defined.xml b/tests/Part_in_backbone_defined.xml new file mode 100644 index 0000000..113169b --- /dev/null +++ b/tests/Part_in_backbone_defined.xml @@ -0,0 +1,328 @@ + + + + + module1 + + + + j0nju1Eb_56 + + + + + + + + + Cir_qKqs + 1 + Cir + + + + + + + j0nju1Eb + 1 + + + + + + + + Cir_qKqs_5 + 1 + + + + + + + + Scar_B_4 + 1 + + + + + + + + J23101_3 + 1 + + + + + + + + Scar_A_2 + 1 + + + + + + + + j0nju1EbAnnotation1 + 1 + + + + location1 + 1 + 5 + 39 + + + + + + + + + + j0nju1EbAnnotation2 + 1 + + + + location2 + 1 + 40 + 43 + + + + + + + + + + j0nju1EbAnnotation0 + 1 + + + + location0 + 1 + 1 + 4 + + + + + + + + + + j0nju1EbAnnotation3 + 1 + + + + location3 + 1 + 44 + 2095 + + + + + + + + + + j0nju1EbConstraint1 + 1 + + + + + + + + + j0nju1EbConstraint3 + 1 + + + + + + + + + j0nju1EbConstraint2 + 1 + + + + + + + + + + Scar_B + 1 + Scar_B + + + + + + + J23101 + 1 + J23101 + + + + + + + Scar_A + 1 + Scar_A + + + + + + + j0nju1Eb_sequence + GGAGtttacagctagctcagtcctaggtattatgctagcTACTCGAGaccctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgaggcttggattctcaccaataaaaaacgcccggcggcaaccgagcgttctgaacaaatccagatggagttctgaggtcattactggatctatcaacaggagtccaagcgagctcgatatcaaattacgccccgccctgccactcatcgcagtactgttgtaattcattaagcattctgccgacatggaagccatcacaaacggcatgatgaacctgaatcgccagcggcatcagcaccttgtcgccttgcgtataatatttgcccatggtgaaaacgggggcgaagaagttgtccatattggccacgtttaaatcaaaactggtgaaactcacccagggattggctgagacgaaaaacatattctcaataaaccctttagggaaataggccaggttttcaccgtaacacgccacatcttgcgaatatatgtgtagaaactgccggaaatcgtcgtggtattcactccagagcgatgaaaacgtttcagtttgctcatggaaaacggtgtaacaagggtgaacactatcccatatcaccagctcaccgtcttcattgccatacgaaattccggatgagcattcatcaggcgggcaagaatgtgaataaaggccggataaaacttgtgcttatttttctttacggtctttaaaaaggccgtaatatccagctgaacggtctggttataggtacattgagcaactgactgaaatgcctcaaaatgttctttacgatgccattgggatatatcaacggtggtatatccagtgatttttttctccattttagcttccttagctcctgaaaatctcgataactcaaaaaatacgcccggtagtgatcttatttcattatggtgaaagttggaacctcttacgtgcccgatcaactcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcggtctcg + + + + + Cir_qKqs_sequence + CGAGaccctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgaggcttggattctcaccaataaaaaacgcccggcggcaaccgagcgttctgaacaaatccagatggagttctgaggtcattactggatctatcaacaggagtccaagcgagctcgatatcaaattacgccccgccctgccactcatcgcagtactgttgtaattcattaagcattctgccgacatggaagccatcacaaacggcatgatgaacctgaatcgccagcggcatcagcaccttgtcgccttgcgtataatatttgcccatggtgaaaacgggggcgaagaagttgtccatattggccacgtttaaatcaaaactggtgaaactcacccagggattggctgagacgaaaaacatattctcaataaaccctttagggaaataggccaggttttcaccgtaacacgccacatcttgcgaatatatgtgtagaaactgccggaaatcgtcgtggtattcactccagagcgatgaaaacgtttcagtttgctcatggaaaacggtgtaacaagggtgaacactatcccatatcaccagctcaccgtcttcattgccatacgaaattccggatgagcattcatcaggcgggcaagaatgtgaataaaggccggataaaacttgtgcttatttttctttacggtctttaaaaaggccgtaatatccagctgaacggtctggttataggtacattgagcaactgactgaaatgcctcaaaatgttctttacgatgccattgggatatatcaacggtggtatatccagtgatttttttctccattttagcttccttagctcctgaaaatctcgataactcaaaaaatacgcccggtagtgatcttatttcattatggtgaaagttggaacctcttacgtgcccgatcaactcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcggtctcg + + + + + J23101_sequence + tttacagctagctcagtcctaggtattatgctagc + + + + + Scar_A_sequence + GGAG + + + + + Scar_B_sequence + TACT + + + + + Cir_qKqs_Layout + + + + + module1_Layout + + + + 695.0 + 457.0 + 152.0 + 100.0 + j0nju1Eb_56 + + + + + + + j0nju1Eb_Layout + + + + 695.0 + 457.0 + 152.0 + 100.0 + container + + + + + 0.0 + 50.0 + 152.0 + 1.0 + backbone + + + + + 1.0 + 0.0 + 50.0 + 100.0 + Scar_A_2 + + + + + + 51.0 + 0.0 + 50.0 + 100.0 + J23101_3 + + + + + + 101.0 + 0.0 + 50.0 + 100.0 + Scar_B_4 + + + + + + 151.0 + 0.0 + 1.0 + 100.0 + Cir_qKqs_5 + + + + + + + Scar_A_Layout + + + + + Scar_B_Layout + + + + + J23101_Layout + + + diff --git a/tests/Part_in_backbone_example.xml b/tests/Part_in_backbone_example.xml new file mode 100644 index 0000000..5752831 --- /dev/null +++ b/tests/Part_in_backbone_example.xml @@ -0,0 +1,328 @@ + + + + + module1 + + + + XJK9paob_2 + + + + + + + + + Scar_bWtJ + 1 + Scar + + + + + + + Scar_dAK6 + 1 + Scar + + + + + + + Pro_zVcE + 1 + Pro + + + + + + + Cir_wQ7v + 1 + Cir + + + + + + + XJK9paob + 1 + + + + + + + + Scar_dAK6_4 + 1 + + + + + + + + Pro_zVcE_3 + 1 + + + + + + + + Scar_bWtJ_2 + 1 + + + + + + + + Cir_wQ7v_5 + 1 + + + + + + + + XJK9paobAnnotation2 + 1 + + + + location2 + 1 + 12 + 15 + + + + + + + + + + XJK9paobAnnotation3 + 1 + + + + location3 + 1 + 16 + 39 + + + + + + + + + + XJK9paobAnnotation1 + 1 + + + + location1 + 1 + 5 + 11 + + + + + + + + + + XJK9paobAnnotation0 + 1 + + + + location0 + 1 + 1 + 4 + + + + + + + + + + XJK9paobConstraint1 + 1 + + + + + + + + + XJK9paobConstraint2 + 1 + + + + + + + + + XJK9paobConstraint3 + 1 + + + + + + + + + + Scar_bWtJ_sequence + AAAA + + + + + XJK9paob_sequence + AAAATTTTTTTCCCCGGGGGGGGGGGGGGGGGGGGGGGG + + + + + Pro_zVcE_sequence + TTTTTTT + + + + + Scar_dAK6_sequence + CCCC + + + + + Cir_wQ7v_sequence + GGGGGGGGGGGGGGGGGGGGGGGG + + + + + Pro_zVcE_Layout + + + + + Scar_bWtJ_Layout + + + + + module1_Layout + + + + 640.0 + 310.0 + 152.0 + 100.0 + XJK9paob_2 + + + + + + + Cir_wQ7v_Layout + + + + + Scar_dAK6_Layout + + + + + XJK9paob_Layout + + + + 640.0 + 310.0 + 152.0 + 100.0 + container + + + + + 0.0 + 50.0 + 152.0 + 1.0 + backbone + + + + + 1.0 + 0.0 + 50.0 + 100.0 + Scar_bWtJ_2 + + + + + + 51.0 + 0.0 + 50.0 + 100.0 + Pro_zVcE_3 + + + + + + 101.0 + 0.0 + 50.0 + 100.0 + Scar_dAK6_4 + + + + + + 151.0 + 0.0 + 1.0 + 100.0 + Cir_wQ7v_5 + + + + + diff --git a/tests/RyanTest.xml b/tests/RyanTest.xml new file mode 100644 index 0000000..8afebde --- /dev/null +++ b/tests/RyanTest.xml @@ -0,0 +1,1579 @@ + + + + + + + + 1 + UJHDBOTD_106_reactant + + + + + + + 1 + UJHDBOTD_70_digestion_interaction + + + restriction + + + 1 + + + + + + 1 + + + UJHDBOTD_70_product + + + + + + + UJHDBOTD_70_reactant + + + 1 + + + + + + + + + + + + + 1 + UJHDBOTD_106_product + + + + UJHDBOTD_106_digestion_interaction + + + + 1 + restriction + + + + + + + + + UJHDBOTD_106_reactant + + 1 + + + + 1 + + + + + + + restriction + + 1 + + + + + + + UJHDBOTD_backbone_reactant + + + + 1 + + + 1 + + + 1 + + + UJHDBOTD_backbone_product + + + + UJHDBOTD_digestion_interaction + + + + + testassem + + + + + + 1 + ligation + + + + + + + + + UJHDBOTD_extracted_backbone_ligation + + 1 + + + + + 1 + UJHDBOTD_106_extracted_part_ligation + + + + + + + + 1 + UJHDBOTD_134_extracted_part_ligation + + + + + + + + + + 1 + composite_1_product + + + + + + 1 + + + + 1 + UJHDBOTD_70_extracted_part_ligation + + + + + composite_1_ligation_interaction + + + + + + 1 + UJHDBOTD_45_extracted_part_ligation + + + + + 1 + + + 1 + + + + UJHDBOTD_70_digestion_product + + + + + + 1 + BsaI_enzyme + + + + + + + + + + UJHDBOTD_45_digestion_product + + + 1 + + + + + + 1 + + + + + UJHDBOTD_backbone_digestion_product + + + + + UJHDBOTD_45_digestion_interaction + + 1 + + + UJHDBOTD_45_reactant + + + + 1 + + + + + + 1 + + restriction + + + + + + + UJHDBOTD_45_product + + + 1 + + + + + + + + composite_1 + + 1 + + + + + + + + + 1 + + + + UJHDBOTD_134_digestion_product + + + + + 1 + + + UJHDBOTD_70_reactant + + + + + + + 1 + + + UJHDBOTD_backbone_reactant + + + + + + + + + T4_Ligase + + + + 1 + + + + + 1 + UJHDBOTD_45_reactant + + + + + + + + + + UJHDBOTD_106_digestion_product + + + + 1 + + + + + + + + + + UJHDBOTD_134_reactant + 1 + + + + + + + UJHDBOTD_134_product + 1 + + + + + + + 1 + restriction + + + + + + 1 + + UJHDBOTD_134_digestion_interaction + + + + + + + + + UJHDBOTD_134_reactant + 1 + + + + + 1 + BsaI + BsaI + + Restriction enzyme BsaI from REBASE. + + + + + + + + + + 1 + + UJHDBOTD_70_three_prime_oh_component + + + + + + 1 + + + + 1 + five_prime_oh_location + 4 + + 1 + + + + five_prime_overhang + + + + UJHDBOTD_70_extracted_part + + + + + + + + 43 + 1 + three_prime_oh_location + 40 + + + + 1 + three_prime_overhang + + + + + + + + + 1 + UJHDBOTD_70_five_prime_oh_component + + + + + + + + + 1 + UJHDBOTD_70_part + + + + + UJHDBOTD_70_part_location + 39 + + 1 + 5 + + + + + + + + + J23101_3 + + 1 + + + 1 + + + + + UJHDBOTD_70_three_prime_oh + + + + 1 + + + 1 + Scar_B + Scar_B + + + + + + + 1 + J23101 + J23101 + + + + + + + 1 + + + + + + UJHDBOTD_70_five_prime_oh + + + + Scar_A + 1 + + Scar_A + + + + + + + 1 + + + + UJHDBOTD_45_part_location + 25 + + + 5 + 1 + + + UJHDBOTD_45_part + + + + UJHDBOTD_45_extracted_part + + + + + + + + + + 1 + UJHDBOTD_45_five_prime_oh_component + + + + + + + 1 + + three_prime_overhang + + + + 26 + + three_prime_oh_location + 1 + 29 + + + + + + 1 + + + + 1 + five_prime_overhang + + + + 1 + five_prime_oh_location + 4 + + 1 + + + + + + + + + UJHDBOTD_45_three_prime_oh_component + 1 + + + + + + + 1 + + + B0034_3 + + + + + + 1 + + UJHDBOTD_45_five_prime_oh + + + + + + + + UJHDBOTD_45_three_prime_oh + + + + + 1 + + + + + Scar_C + + + Scar_C + 1 + + + + + B0034 + + + B0034 + 1 + + + + + + + + GFP_3 + 1 + + + + + UJHDBOTD_106_part + + + + + 5 + 721 + UJHDBOTD_106_part_location + + 1 + + + + 1 + + + + + 1 + + + + + 1 + three_prime_oh_location + 725 + + 722 + + + + three_prime_overhang + + + UJHDBOTD_106_extracted_part + + 1 + + + + + + 1 + UJHDBOTD_106_five_prime_oh_component + + + + + + + + + + UJHDBOTD_106_three_prime_oh_component + 1 + + + + + + + + five_prime_overhang + + + + five_prime_oh_location + + 4 + 1 + 1 + + + 1 + + + + + + + + 1 + + GFP + + GFP + + + + + + + 1 + UJHDBOTD_106_five_prime_oh + + + + + + + 1 + + + + UJHDBOTD_106_three_prime_oh + + + 1 + Scar_D + + + + Scar_D + + + + 1 + + + UJHDBOTD_134_five_prime_oh_component + + + 1 + + + + + UJHDBOTD_134_extracted_part + + + + UJHDBOTD_134_three_prime_oh_component + + + 1 + + + + + + 1 + + + + B0015_3 + + + + + five_prime_overhang + + + + + + five_prime_oh_location + 4 + 1 + 1 + + + 1 + + + + + + + + UJHDBOTD_134_part + 1 + + + + 133 + 1 + UJHDBOTD_134_part_location + + 5 + + + + + + + + + + + + + 1 + three_prime_overhang + + + + three_prime_oh_location + 137 + + 134 + 1 + + + + + + + + + B0015 + + 1 + + B0015 + + + + UJHDBOTD_134_three_prime_oh + + + + + 1 + + + Scar_F + + 1 + + + Scar_F + + + + 1 + UJHDBOTD_134_five_prime_oh + + + + + + + + + + + + + UJHDBOTD_159_three_prime_oh_component + + 1 + + + + + + UJHDBOTD_159_backbone + + + UJHDBOTD_159_backbone_location + 5 + + 1 + 2199 + + + + + 1 + + + + + + + UJHDBOTD_159_five_prime_oh_component + 1 + + + + + + + + three_prime_overhang + 1 + + + 2200 + + three_prime_oh_location + + 2203 + 1 + + + + + + + + + + five_prime_overhang + + + 1 + five_prime_oh_location + 4 + + + 1 + + + + 1 + + + + + + + + Cir_qxow_5 + 1 + + + UJHDBOTD_extracted_backbone + 1 + + + + + + UJHDBOTD_159_five_prime_oh + + + + + 1 + + + + + Cir + + + 1 + Cir_qxow + + + 1 + + UJHDBOTD_159_three_prime_oh + + + + + + + 1 + + T4_Ligase + + T4_Ligase + + + + 1 + + + + Ligation_Scar_A + + + + + + + 1 + + + + + Ligation_Scar_B + + + Ligation_Scar_C + + + 1 + + + + + + + + + Ligation_Scar_D + 1 + + + + + + + + Ligation_Scar_E + + + + + 1 + + + + + + 1 + + Cir_qxow_5_annotation + + + + 2199 + + Cir_qxow_5_location + 5 + 1 + + + + + + + + + + 1 + + Cir_qxow + + + + + + + + + + 2264 + 2267 + Ligation_Scar_D_location + + 1 + + + + + 1 + Ligation_Scar_D_annotation + + + composite_1 + + + J23101_3_annotation + + + 1 + + + + 2238 + 2204 + 1 + J23101_3_location + + + + + + + + + + + Ligation_Scar_C_location + + 2242 + + 1 + 2239 + + + 1 + Ligation_Scar_C_annotation + + + + + + GFP + + 1 + + + + + + + + + + + B0015 + 1 + + + + + + 1 + + + Ligation_Scar_B + + + + + + B0034_3_annotation + 1 + + + 1 + B0034_3_location + + 2243 + 2263 + + + + + + + + J23101 + + + + 1 + + + + + + + 1 + Ligation_Scar_B_annotation + + + 2203 + 1 + Ligation_Scar_B_location + + + 2200 + + + + + 1 + + + + + 2989 + 3117 + 1 + B0015_3_location + + + + + 1 + + B0015_3_annotation + + + + + + + + + + + 2985 + Ligation_Scar_E_location + 2988 + 1 + + + + + Ligation_Scar_E_annotation + 1 + + + + + Ligation_Scar_A_annotation + 1 + + + + 1 + 4 + 1 + + Ligation_Scar_A_location + + + + + + + + + + + 1 + + B0034 + + + + + + + 1 + + + 2984 + GFP_3_location + 1 + 2268 + + + + + GFP_3_annotation + + + + composite_1 + + + Ligation_Scar_D + + 1 + + + + + + + + + 1 + + Ligation_Scar_C + + + + + + + Ligation_Scar_A + + 1 + + + + + Ligation_Scar_E + + + + 1 + + + + + + UJHDBOTD_70_extracted_part_seq + + GGAGtttacagctagctcagtcctaggtattatgctagcTACT + 1 + + + + + 1 + + UJHDBOTD_70_three_prime_oh_sequence + TACT + + + Scar_B_sequence + + TACT + + + + J23101_sequence + + + tttacagctagctcagtcctaggtattatgctagc + + + GGAG + 1 + + + + UJHDBOTD_70_five_prime_oh_sequence + + + + + Scar_A_sequence + GGAG + + + + 1 + TACTagagaaagaggagaaatactaaatg + UJHDBOTD_45_extracted_part_seq + + + + + + + UJHDBOTD_45_five_prime_oh_sequence + 1 + TACT + + + + UJHDBOTD_45_three_prime_oh_sequence + + + 1 + aatg + + + Scar_C_sequence + + aatg + + + + B0034_sequence + + agagaaagaggagaaatacta + + + + + UJHDBOTD_106_extracted_part_seq + + 1 + aatggtgagcaagggcgaggagctgttcaccggggtggtgcccatcctggtcgagctggacggcgacgtaaacggccacaagttcagcgtgtccggcgagggcgagggcgatgccacctacggcaagctgaccctgaagttcatctgcaccaccggcaagctgcccgtgccctggcccaccctcgtgaccaccttcagctacggcgtgcagtgcttcagccgctaccccgaccacatgaagcagcacgacttcttcaagtccgccatgcccgaaggctacgtccaggagcgcaccatcttcttcaaggacgacggcaactacaagacccgcgccgaggtgaagttcgagggcgacaccctggtgaaccgcatcgagctgaagggcatcgacttcaaggaggacggcaacatcctggggcacaagctggagtacaactacaacagccacaacgtctatatcatggccgacaagcagaagaacggcatcaaggtgaacttcaagatccgccacaacatcgaggacggcagcgtgcagctcgccgaccactaccagcagaacacccccatcggcgacggccccgtgctgctgcccgacaaccactacctgagcacccagtccgccctgagcaaagaccccaacgagaagcgcgatcacatggtcctgctggagttcgtgaccgccgccgggatcactcacggcatggacgagctgtacaagtaagctt + + + + + GFP_sequence + gtgagcaagggcgaggagctgttcaccggggtggtgcccatcctggtcgagctggacggcgacgtaaacggccacaagttcagcgtgtccggcgagggcgagggcgatgccacctacggcaagctgaccctgaagttcatctgcaccaccggcaagctgcccgtgccctggcccaccctcgtgaccaccttcagctacggcgtgcagtgcttcagccgctaccccgaccacatgaagcagcacgacttcttcaagtccgccatgcccgaaggctacgtccaggagcgcaccatcttcttcaaggacgacggcaactacaagacccgcgccgaggtgaagttcgagggcgacaccctggtgaaccgcatcgagctgaagggcatcgacttcaaggaggacggcaacatcctggggcacaagctggagtacaactacaacagccacaacgtctatatcatggccgacaagcagaagaacggcatcaaggtgaacttcaagatccgccacaacatcgaggacggcagcgtgcagctcgccgaccactaccagcagaacacccccatcggcgacggccccgtgctgctgcccgacaaccactacctgagcacccagtccgccctgagcaaagaccccaacgagaagcgcgatcacatggtcctgctggagttcgtgaccgccgccgggatcactcacggcatggacgagctgtacaagtaa + + + + + + 1 + aatg + UJHDBOTD_106_five_prime_oh_sequence + + + + + 1 + UJHDBOTD_106_three_prime_oh_sequence + gctt + + + + + Scar_D_sequence + + gctt + + + UJHDBOTD_134_extracted_part_seq + 1 + gcttccaggcatcaaataaaacgaaaggctcagtcgaaagactgggcctttcgttttatctgttgtttgtcggtgaacgctctctactagagtcacactggctcaccttcgggtgggcctttctgcgtttatacgct + + + + + + ccaggcatcaaataaaacgaaaggctcagtcgaaagactgggcctttcgttttatctgttgtttgtcggtgaacgctctctactagagtcacactggctcaccttcgggtgggcctttctgcgtttata + + B0015_sequence + + + cgct + + + 1 + + UJHDBOTD_134_three_prime_oh_sequence + + + cgct + + + Scar_F_sequence + + + UJHDBOTD_134_five_prime_oh_sequence + + 1 + + gctt + + + + cgctgcatgaagagcctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgagtcccgtcaagtcagcgtaatgctctgccagtgttacaaccaattaaccaattctgattagaaaaactcatcgagcatcaaatgaaactgcaatttattcatatcaggattatcaataccatatttttgaaaaagccgtttctgtaatgaaggagaaaactcaccgaggcagttccataggatggcaagatcctggtatcggtctgcgattccgactcgtccaacatcaatacaacctattaatttcccctcgtcaaaaataaggttatcaagtgagaaatcaccatgagtgacgactgaatccggtgagaatggcaaaagcttatgcatttctttccagacttgttcaacaggccagccattacgctcgtcatcaaaatcactcgcatcaaccaaaccgttattcattcgtgattgcgcctgagcgagacgaaatacgcgatcgctgttaaaaggacaattacaaacaggaatcgaatgcaaccggcgcaggaacactgccagcgcatcaacaatattttcacctgaatcaggatattcttctaatacctggaatgctgttttcccggggatcgcagtggtgagtaaccatgcatcatcaggagtacggataaaatgcttgatggtcggaagaggcataaattccgtcagccagtttagtctgaccatctcatctgtaacatcattggcaacgctacctttgccatgtttcagaaacaactctggcgcatcgggcttcccatacaatcgatagattgtcgcacctgattgcccgacattatcgcgagcccatttatacccatataaatcagcatccatgttggaatttaatcgcggcctggagcaagacgtttcccgttgaatatggctcataacaccccttgtattactgtttatgtaagcagacagttttattgttcatgatgatatatttttatcttgtgcaatgtaacatcagagattttgagacacaacgtggctttgttgaataaatcgaacttttgctgagttgaaggatcagctcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcgctcttcaatgggag + + + UJHDBOTD_extracted_backbone_seq + 1 + + + + 1 + cgct + + UJHDBOTD_159_five_prime_oh_sequence + + + + + Cir_qxow_sequence + + gcatgaagagcctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgagtcccgtcaagtcagcgtaatgctctgccagtgttacaaccaattaaccaattctgattagaaaaactcatcgagcatcaaatgaaactgcaatttattcatatcaggattatcaataccatatttttgaaaaagccgtttctgtaatgaaggagaaaactcaccgaggcagttccataggatggcaagatcctggtatcggtctgcgattccgactcgtccaacatcaatacaacctattaatttcccctcgtcaaaaataaggttatcaagtgagaaatcaccatgagtgacgactgaatccggtgagaatggcaaaagcttatgcatttctttccagacttgttcaacaggccagccattacgctcgtcatcaaaatcactcgcatcaaccaaaccgttattcattcgtgattgcgcctgagcgagacgaaatacgcgatcgctgttaaaaggacaattacaaacaggaatcgaatgcaaccggcgcaggaacactgccagcgcatcaacaatattttcacctgaatcaggatattcttctaatacctggaatgctgttttcccggggatcgcagtggtgagtaaccatgcatcatcaggagtacggataaaatgcttgatggtcggaagaggcataaattccgtcagccagtttagtctgaccatctcatctgtaacatcattggcaacgctacctttgccatgtttcagaaacaactctggcgcatcgggcttcccatacaatcgatagattgtcgcacctgattgcccgacattatcgcgagcccatttatacccatataaatcagcatccatgttggaatttaatcgcggcctggagcaagacgtttcccgttgaatatggctcataacaccccttgtattactgtttatgtaagcagacagttttattgttcatgatgatatatttttatcttgtgcaatgtaacatcagagattttgagacacaacgtggctttgttgaataaatcgaacttttgctgagttgaaggatcagctcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcgctcttcaatg + + + + UJHDBOTD_159_three_prime_oh_sequence + ggag + 1 + + + + + + 1 + Ligation_Scar_A_sequence + + cgct + + + + ggag + 1 + + Ligation_Scar_B_sequence + + + + + 1 + TACT + Ligation_Scar_C_sequence + + + Ligation_Scar_D_sequence + aatg + + 1 + + + + gctt + + Ligation_Scar_E_sequence + 1 + + + + cgctgcatgaagagcctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgagtcccgtcaagtcagcgtaatgctctgccagtgttacaaccaattaaccaattctgattagaaaaactcatcgagcatcaaatgaaactgcaatttattcatatcaggattatcaataccatatttttgaaaaagccgtttctgtaatgaaggagaaaactcaccgaggcagttccataggatggcaagatcctggtatcggtctgcgattccgactcgtccaacatcaatacaacctattaatttcccctcgtcaaaaataaggttatcaagtgagaaatcaccatgagtgacgactgaatccggtgagaatggcaaaagcttatgcatttctttccagacttgttcaacaggccagccattacgctcgtcatcaaaatcactcgcatcaaccaaaccgttattcattcgtgattgcgcctgagcgagacgaaatacgcgatcgctgttaaaaggacaattacaaacaggaatcgaatgcaaccggcgcaggaacactgccagcgcatcaacaatattttcacctgaatcaggatattcttctaatacctggaatgctgttttcccggggatcgcagtggtgagtaaccatgcatcatcaggagtacggataaaatgcttgatggtcggaagaggcataaattccgtcagccagtttagtctgaccatctcatctgtaacatcattggcaacgctacctttgccatgtttcagaaacaactctggcgcatcgggcttcccatacaatcgatagattgtcgcacctgattgcccgacattatcgcgagcccatttatacccatataaatcagcatccatgttggaatttaatcgcggcctggagcaagacgtttcccgttgaatatggctcataacaccccttgtattactgtttatgtaagcagacagttttattgttcatgatgatatatttttatcttgtgcaatgtaacatcagagattttgagacacaacgtggctttgttgaataaatcgaacttttgctgagttgaaggatcagctcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcgctcttcaatgGGAGtttacagctagctcagtcctaggtattatgctagcTACTagagaaagaggagaaatactaaatggtgagcaagggcgaggagctgttcaccggggtggtgcccatcctggtcgagctggacggcgacgtaaacggccacaagttcagcgtgtccggcgagggcgagggcgatgccacctacggcaagctgaccctgaagttcatctgcaccaccggcaagctgcccgtgccctggcccaccctcgtgaccaccttcagctacggcgtgcagtgcttcagccgctaccccgaccacatgaagcagcacgacttcttcaagtccgccatgcccgaaggctacgtccaggagcgcaccatcttcttcaaggacgacggcaactacaagacccgcgccgaggtgaagttcgagggcgacaccctggtgaaccgcatcgagctgaagggcatcgacttcaaggaggacggcaacatcctggggcacaagctggagtacaactacaacagccacaacgtctatatcatggccgacaagcagaagaacggcatcaaggtgaacttcaagatccgccacaacatcgaggacggcagcgtgcagctcgccgaccactaccagcagaacacccccatcggcgacggccccgtgctgctgcccgacaaccactacctgagcacccagtccgccctgagcaaagaccccaacgagaagcgcgatcacatggtcctgctggagttcgtgaccgccgccgggatcactcacggcatggacgagctgtacaagtaagcttccaggcatcaaataaaacgaaaggctcagtcgaaagactgggcctttcgttttatctgttgtttgtcggtgaacgctctctactagagtcacactggctcaccttcgggtgggcctttctgcgtttata + + 1 + composite_1_seq + + + diff --git a/tests/backbone.xml b/tests/backbone.xml new file mode 100644 index 0000000..f2a69e2 --- /dev/null +++ b/tests/backbone.xml @@ -0,0 +1,328 @@ + + + + + module1 + + + + UJHDBOTD_159 + + + + + + + + + Scar_F + 1 + Scar_F + + + + + + + RFP_cassette + 1 + RFP_cassette + + + + + + + UJHDBOTD + 1 + + + + + + + + Scar_F_4 + 1 + + + + + + + + Cir_qxow_5 + 1 + + + + + + + + Scar_A_2 + 1 + + + + + + + + RFP_cassette_3 + 1 + + + + + + + + UJHDBOTDAnnotation0 + 1 + + + + location0 + 1 + 1 + 4 + + + + + + + + + + UJHDBOTDAnnotation3 + 1 + + + + location3 + 1 + 1092 + 3286 + + + + + + + + + + UJHDBOTDAnnotation2 + 1 + + + + location2 + 1 + 1088 + 1091 + + + + + + + + + + UJHDBOTDAnnotation1 + 1 + + + + location1 + 1 + 5 + 1087 + + + + + + + + + + UJHDBOTDConstraint1 + 1 + + + + + + + + + UJHDBOTDConstraint3 + 1 + + + + + + + + + UJHDBOTDConstraint2 + 1 + + + + + + + + + + Cir_qxow + 1 + Cir + + + + + + + Scar_A + 1 + Scar_A + + + + + + + UJHDBOTD_sequence + ggagtgagacccaatacgcaaaccgcctctccccgcgcgttggccgattcattaatgcagctggcacgacaggtttcccgactggaaagcgggcagtgagcgcaacgcaattaatgtgagttagctcactcattaggcaccccaggctttacactttatgcttccggctcgtatgttgtgtggaattgtgagcggataacaatttcacacatactagagaaagaggagaaatactagatggcttcctccgaagacgttatcaaagagttcatgcgtttcaaagttcgtatggaaggttccgttaacggtcacgagttcgaaatcgaaggtgaaggtgaaggtcgtccgtacgaaggtacccagaccgctaaactgaaagttaccaaaggtggtccgctgccgttcgcttgggacatcctgtccccgcagttccagtacggttccaaagcttacgttaaacacccggctgacatcccggactacctgaaactgtccttcccggaaggtttcaaatgggaacgtgttatgaacttcgaagacggtggtgttgttaccgttacccaggactcctccctgcaagacggtgagttcatctacaaagttaaactgcgtggtaccaacttcccgtccgacggtccggttatgcagaaaaaaaccatgggttgggaagcttccaccgaacgtatgtacccggaagacggtgctctgaaaggtgaaatcaaaatgcgtctgaaactgaaagacggtggtcactacgacgctgaagttaaaaccacctacatggctaaaaaaccggttcagctgccgggtgcttacaaaaccgacatcaaactggacatcacctcccacaacgaagactacaccatcgttgaacagtacgaacgtgctgaaggtcgtcactccaccggtgcttaataacgctgatagtgctagtgtagatcgctactagagccaggcatcaaataaaacgaaaggctcagtcgaaagactgggcctttcgttttatctgttgtttgtcggtgaacgctctctactagagtcacactggctcaccttcgggtgggcctttctgcgtttataggtctcacgctgcatgaagagcctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgagtcccgtcaagtcagcgtaatgctctgccagtgttacaaccaattaaccaattctgattagaaaaactcatcgagcatcaaatgaaactgcaatttattcatatcaggattatcaataccatatttttgaaaaagccgtttctgtaatgaaggagaaaactcaccgaggcagttccataggatggcaagatcctggtatcggtctgcgattccgactcgtccaacatcaatacaacctattaatttcccctcgtcaaaaataaggttatcaagtgagaaatcaccatgagtgacgactgaatccggtgagaatggcaaaagcttatgcatttctttccagacttgttcaacaggccagccattacgctcgtcatcaaaatcactcgcatcaaccaaaccgttattcattcgtgattgcgcctgagcgagacgaaatacgcgatcgctgttaaaaggacaattacaaacaggaatcgaatgcaaccggcgcaggaacactgccagcgcatcaacaatattttcacctgaatcaggatattcttctaatacctggaatgctgttttcccggggatcgcagtggtgagtaaccatgcatcatcaggagtacggataaaatgcttgatggtcggaagaggcataaattccgtcagccagtttagtctgaccatctcatctgtaacatcattggcaacgctacctttgccatgtttcagaaacaactctggcgcatcgggcttcccatacaatcgatagattgtcgcacctgattgcccgacattatcgcgagcccatttatacccatataaatcagcatccatgttggaatttaatcgcggcctggagcaagacgtttcccgttgaatatggctcataacaccccttgtattactgtttatgtaagcagacagttttattgttcatgatgatatatttttatcttgtgcaatgtaacatcagagattttgagacacaacgtggctttgttgaataaatcgaacttttgctgagttgaaggatcagctcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcgctcttcaatg + + + + + Scar_F_sequence + cgct + + + + + Cir_qxow_sequence + gcatgaagagcctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgagtcccgtcaagtcagcgtaatgctctgccagtgttacaaccaattaaccaattctgattagaaaaactcatcgagcatcaaatgaaactgcaatttattcatatcaggattatcaataccatatttttgaaaaagccgtttctgtaatgaaggagaaaactcaccgaggcagttccataggatggcaagatcctggtatcggtctgcgattccgactcgtccaacatcaatacaacctattaatttcccctcgtcaaaaataaggttatcaagtgagaaatcaccatgagtgacgactgaatccggtgagaatggcaaaagcttatgcatttctttccagacttgttcaacaggccagccattacgctcgtcatcaaaatcactcgcatcaaccaaaccgttattcattcgtgattgcgcctgagcgagacgaaatacgcgatcgctgttaaaaggacaattacaaacaggaatcgaatgcaaccggcgcaggaacactgccagcgcatcaacaatattttcacctgaatcaggatattcttctaatacctggaatgctgttttcccggggatcgcagtggtgagtaaccatgcatcatcaggagtacggataaaatgcttgatggtcggaagaggcataaattccgtcagccagtttagtctgaccatctcatctgtaacatcattggcaacgctacctttgccatgtttcagaaacaactctggcgcatcgggcttcccatacaatcgatagattgtcgcacctgattgcccgacattatcgcgagcccatttatacccatataaatcagcatccatgttggaatttaatcgcggcctggagcaagacgtttcccgttgaatatggctcataacaccccttgtattactgtttatgtaagcagacagttttattgttcatgatgatatatttttatcttgtgcaatgtaacatcagagattttgagacacaacgtggctttgttgaataaatcgaacttttgctgagttgaaggatcagctcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcgctcttcaatg + + + + + RFP_cassette_sequence + tgagacccaatacgcaaaccgcctctccccgcgcgttggccgattcattaatgcagctggcacgacaggtttcccgactggaaagcgggcagtgagcgcaacgcaattaatgtgagttagctcactcattaggcaccccaggctttacactttatgcttccggctcgtatgttgtgtggaattgtgagcggataacaatttcacacatactagagaaagaggagaaatactagatggcttcctccgaagacgttatcaaagagttcatgcgtttcaaagttcgtatggaaggttccgttaacggtcacgagttcgaaatcgaaggtgaaggtgaaggtcgtccgtacgaaggtacccagaccgctaaactgaaagttaccaaaggtggtccgctgccgttcgcttgggacatcctgtccccgcagttccagtacggttccaaagcttacgttaaacacccggctgacatcccggactacctgaaactgtccttcccggaaggtttcaaatgggaacgtgttatgaacttcgaagacggtggtgttgttaccgttacccaggactcctccctgcaagacggtgagttcatctacaaagttaaactgcgtggtaccaacttcccgtccgacggtccggttatgcagaaaaaaaccatgggttgggaagcttccaccgaacgtatgtacccggaagacggtgctctgaaaggtgaaatcaaaatgcgtctgaaactgaaagacggtggtcactacgacgctgaagttaaaaccacctacatggctaaaaaaccggttcagctgccgggtgcttacaaaaccgacatcaaactggacatcacctcccacaacgaagactacaccatcgttgaacagtacgaacgtgctgaaggtcgtcactccaccggtgcttaataacgctgatagtgctagtgtagatcgctactagagccaggcatcaaataaaacgaaaggctcagtcgaaagactgggcctttcgttttatctgttgtttgtcggtgaacgctctctactagagtcacactggctcaccttcgggtgggcctttctgcgtttataggtctca + + + + + Scar_A_sequence + ggag + + + + + Cir_qxow_Layout + + + + + Scar_A_Layout + + + + + UJHDBOTD_Layout + + + + 695.0 + 457.0 + 152.0 + 100.0 + container + + + + + 0.0 + 50.0 + 152.0 + 1.0 + backbone + + + + + 1.0 + 0.0 + 50.0 + 100.0 + Scar_A_2 + + + + + + 51.0 + 0.0 + 50.0 + 100.0 + RFP_cassette_3 + + + + + + 101.0 + 0.0 + 50.0 + 100.0 + Scar_F_4 + + + + + + 151.0 + 0.0 + 1.0 + 100.0 + Cir_qxow_5 + + + + + + + Scar_F_Layout + + + + + RFP_cassette_Layout + + + + + module1_Layout + + + + 695.0 + 457.0 + 152.0 + 100.0 + UJHDBOTD_159 + + + + + diff --git a/tests/cds_in_bb.xml b/tests/cds_in_bb.xml new file mode 100644 index 0000000..54eb11d --- /dev/null +++ b/tests/cds_in_bb.xml @@ -0,0 +1,328 @@ + + + + + module1 + + + + UJHDBOTD_106 + + + + + + + + + GFP + 1 + GFP + + + + + + + Scar_C + 1 + Scar_C + + + + + + + Scar_D + 1 + Scar_D + + + + + + + Cir_qxow + 1 + Cir + + + + + + + UJHDBOTD + 1 + + + + + + + + Scar_D_4 + 1 + + + + + + + + GFP_3 + 1 + + + + + + + + Cir_qxow_5 + 1 + + + + + + + + Scar_C_2 + 1 + + + + + + + + UJHDBOTDAnnotation0 + 1 + + + + location0 + 1 + 1 + 4 + + + + + + + + + + UJHDBOTDAnnotation2 + 1 + + + + location2 + 1 + 722 + 725 + + + + + + + + + + UJHDBOTDAnnotation1 + 1 + + + + location1 + 1 + 5 + 721 + + + + + + + + + + UJHDBOTDAnnotation3 + 1 + + + + location3 + 1 + 726 + 2777 + + + + + + + + + + UJHDBOTDConstraint3 + 1 + + + + + + + + + UJHDBOTDConstraint2 + 1 + + + + + + + + + UJHDBOTDConstraint1 + 1 + + + + + + + + + + Scar_C_sequence + aatg + + + + + GFP_sequence + gtgagcaagggcgaggagctgttcaccggggtggtgcccatcctggtcgagctggacggcgacgtaaacggccacaagttcagcgtgtccggcgagggcgagggcgatgccacctacggcaagctgaccctgaagttcatctgcaccaccggcaagctgcccgtgccctggcccaccctcgtgaccaccttcagctacggcgtgcagtgcttcagccgctaccccgaccacatgaagcagcacgacttcttcaagtccgccatgcccgaaggctacgtccaggagcgcaccatcttcttcaaggacgacggcaactacaagacccgcgccgaggtgaagttcgagggcgacaccctggtgaaccgcatcgagctgaagggcatcgacttcaaggaggacggcaacatcctggggcacaagctggagtacaactacaacagccacaacgtctatatcatggccgacaagcagaagaacggcatcaaggtgaacttcaagatccgccacaacatcgaggacggcagcgtgcagctcgccgaccactaccagcagaacacccccatcggcgacggccccgtgctgctgcccgacaaccactacctgagcacccagtccgccctgagcaaagaccccaacgagaagcgcgatcacatggtcctgctggagttcgtgaccgccgccgggatcactcacggcatggacgagctgtacaagtaa + + + + + Scar_D_sequence + gctt + + + + + UJHDBOTD_sequence + aatggtgagcaagggcgaggagctgttcaccggggtggtgcccatcctggtcgagctggacggcgacgtaaacggccacaagttcagcgtgtccggcgagggcgagggcgatgccacctacggcaagctgaccctgaagttcatctgcaccaccggcaagctgcccgtgccctggcccaccctcgtgaccaccttcagctacggcgtgcagtgcttcagccgctaccccgaccacatgaagcagcacgacttcttcaagtccgccatgcccgaaggctacgtccaggagcgcaccatcttcttcaaggacgacggcaactacaagacccgcgccgaggtgaagttcgagggcgacaccctggtgaaccgcatcgagctgaagggcatcgacttcaaggaggacggcaacatcctggggcacaagctggagtacaactacaacagccacaacgtctatatcatggccgacaagcagaagaacggcatcaaggtgaacttcaagatccgccacaacatcgaggacggcagcgtgcagctcgccgaccactaccagcagaacacccccatcggcgacggccccgtgctgctgcccgacaaccactacctgagcacccagtccgccctgagcaaagaccccaacgagaagcgcgatcacatggtcctgctggagttcgtgaccgccgccgggatcactcacggcatggacgagctgtacaagtaagcttCGAGaccctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgaggcttggattctcaccaataaaaaacgcccggcggcaaccgagcgttctgaacaaatccagatggagttctgaggtcattactggatctatcaacaggagtccaagcgagctcgatatcaaattacgccccgccctgccactcatcgcagtactgttgtaattcattaagcattctgccgacatggaagccatcacaaacggcatgatgaacctgaatcgccagcggcatcagcaccttgtcgccttgcgtataatatttgcccatggtgaaaacgggggcgaagaagttgtccatattggccacgtttaaatcaaaactggtgaaactcacccagggattggctgagacgaaaaacatattctcaataaaccctttagggaaataggccaggttttcaccgtaacacgccacatcttgcgaatatatgtgtagaaactgccggaaatcgtcgtggtattcactccagagcgatgaaaacgtttcagtttgctcatggaaaacggtgtaacaagggtgaacactatcccatatcaccagctcaccgtcttcattgccatacgaaattccggatgagcattcatcaggcgggcaagaatgtgaataaaggccggataaaacttgtgcttatttttctttacggtctttaaaaaggccgtaatatccagctgaacggtctggttataggtacattgagcaactgactgaaatgcctcaaaatgttctttacgatgccattgggatatatcaacggtggtatatccagtgatttttttctccattttagcttccttagctcctgaaaatctcgataactcaaaaaatacgcccggtagtgatcttatttcattatggtgaaagttggaacctcttacgtgcccgatcaactcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcggtctcg + + + + + Cir_qxow_sequence + CGAGaccctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgaggcttggattctcaccaataaaaaacgcccggcggcaaccgagcgttctgaacaaatccagatggagttctgaggtcattactggatctatcaacaggagtccaagcgagctcgatatcaaattacgccccgccctgccactcatcgcagtactgttgtaattcattaagcattctgccgacatggaagccatcacaaacggcatgatgaacctgaatcgccagcggcatcagcaccttgtcgccttgcgtataatatttgcccatggtgaaaacgggggcgaagaagttgtccatattggccacgtttaaatcaaaactggtgaaactcacccagggattggctgagacgaaaaacatattctcaataaaccctttagggaaataggccaggttttcaccgtaacacgccacatcttgcgaatatatgtgtagaaactgccggaaatcgtcgtggtattcactccagagcgatgaaaacgtttcagtttgctcatggaaaacggtgtaacaagggtgaacactatcccatatcaccagctcaccgtcttcattgccatacgaaattccggatgagcattcatcaggcgggcaagaatgtgaataaaggccggataaaacttgtgcttatttttctttacggtctttaaaaaggccgtaatatccagctgaacggtctggttataggtacattgagcaactgactgaaatgcctcaaaatgttctttacgatgccattgggatatatcaacggtggtatatccagtgatttttttctccattttagcttccttagctcctgaaaatctcgataactcaaaaaatacgcccggtagtgatcttatttcattatggtgaaagttggaacctcttacgtgcccgatcaactcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcggtctcg + + + + + UJHDBOTD_Layout + + + + 695.0 + 457.0 + 152.0 + 100.0 + container + + + + + 0.0 + 50.0 + 152.0 + 1.0 + backbone + + + + + 1.0 + 0.0 + 50.0 + 100.0 + Scar_C_2 + + + + + + 51.0 + 0.0 + 50.0 + 100.0 + GFP_3 + + + + + + 101.0 + 0.0 + 50.0 + 100.0 + Scar_D_4 + + + + + + 151.0 + 0.0 + 1.0 + 100.0 + Cir_qxow_5 + + + + + + + module1_Layout + + + + 695.0 + 457.0 + 152.0 + 100.0 + UJHDBOTD_106 + + + + + + + GFP_Layout + + + + + Cir_qxow_Layout + + + + + Scar_D_Layout + + + + + Scar_C_Layout + + + diff --git a/tests/ligation_test_forreal.xml b/tests/ligation_test_forreal.xml new file mode 100644 index 0000000..9893bef --- /dev/null +++ b/tests/ligation_test_forreal.xml @@ -0,0 +1,627 @@ + + + 1 + + + UJHDBOTD_backbone + + + + + + + 1 + 2203 + + 2200 + + three_prime_fusion_site_location + + + + + fusion_sites_annotation + 1 + + + 1 + 4 + + 1 + + five_prime_fusion_site_location + + + + + + + 1 + + + + + + + 1 + 722 + three_prime_fusion_site_location + + + 725 + + + fusion_sites_annotation + + + + + 1 + + + five_prime_fusion_site_location + 4 + 1 + + + 1 + + + + + UJHDBOTD_106_part_extract + + + + UJHDBOTD_70_part_extract + 1 + + + + fusion_sites_annotation + + + 1 + + + + five_prime_fusion_site_location + 4 + 1 + + 1 + + + + + 1 + three_prime_fusion_site_location + + + 40 + 43 + + + + + + + + + + 1 + + + UJHDBOTD_45_part_extract + + + + + + + three_prime_fusion_site_location + 1 + 29 + + 26 + + + + + 4 + + 1 + five_prime_fusion_site_location + 1 + + + + + 1 + fusion_sites_annotation + + + + + + UJHDBOTD_134_part_extract + + 1 + + + + + + + 1 + fusion_sites_annotation + + + 134 + 1 + + + 137 + three_prime_fusion_site_location + + + + + 1 + 4 + 1 + + five_prime_fusion_site_location + + + + + + + + + BsaI + 1 + + + + Restriction enzyme BsaI from REBASE. + BsaI + + + + + UJHDBOTD_70_part_extract + 1 + + + + + + 1 + + + + UJHDBOTD_backbone + + + + 1 + + + + composite_1_UJHDBOTD_106_UJHDBOTD_134_UJHDBOTD_backbone_UJHDBOTD_70_UJHDBOTD_45 + + + + 1 + UJHDBOTD_45_part_extract + + + + + + + + UJHDBOTD_106_part_extract + 1 + + + + + + + + + UJHDBOTD_134_part_extract + 1 + + + + + + composite_1_UJHDBOTD_106_UJHDBOTD_134_UJHDBOTD_backbone_UJHDBOTD_70_UJHDBOTD_45 + + + UJHDBOTD_backbone_seq + cgctgcatgaagagcctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgagtcccgtcaagtcagcgtaatgctctgccagtgttacaaccaattaaccaattctgattagaaaaactcatcgagcatcaaatgaaactgcaatttattcatatcaggattatcaataccatatttttgaaaaagccgtttctgtaatgaaggagaaaactcaccgaggcagttccataggatggcaagatcctggtatcggtctgcgattccgactcgtccaacatcaatacaacctattaatttcccctcgtcaaaaataaggttatcaagtgagaaatcaccatgagtgacgactgaatccggtgagaatggcaaaagcttatgcatttctttccagacttgttcaacaggccagccattacgctcgtcatcaaaatcactcgcatcaaccaaaccgttattcattcgtgattgcgcctgagcgagacgaaatacgcgatcgctgttaaaaggacaattacaaacaggaatcgaatgcaaccggcgcaggaacactgccagcgcatcaacaatattttcacctgaatcaggatattcttctaatacctggaatgctgttttcccggggatcgcagtggtgagtaaccatgcatcatcaggagtacggataaaatgcttgatggtcggaagaggcataaattccgtcagccagtttagtctgaccatctcatctgtaacatcattggcaacgctacctttgccatgtttcagaaacaactctggcgcatcgggcttcccatacaatcgatagattgtcgcacctgattgcccgacattatcgcgagcccatttatacccatataaatcagcatccatgttggaatttaatcgcggcctggagcaagacgtttcccgttgaatatggctcataacaccccttgtattactgtttatgtaagcagacagttttattgttcatgatgatatatttttatcttgtgcaatgtaacatcagagattttgagacacaacgtggctttgttgaataaatcgaacttttgctgagttgaaggatcagctcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcgctcttcaatgggag + + 1 + + + + + UJHDBOTD_106_part_extract_seq + + aatggtgagcaagggcgaggagctgttcaccggggtggtgcccatcctggtcgagctggacggcgacgtaaacggccacaagttcagcgtgtccggcgagggcgagggcgatgccacctacggcaagctgaccctgaagttcatctgcaccaccggcaagctgcccgtgccctggcccaccctcgtgaccaccttcagctacggcgtgcagtgcttcagccgctaccccgaccacatgaagcagcacgacttcttcaagtccgccatgcccgaaggctacgtccaggagcgcaccatcttcttcaaggacgacggcaactacaagacccgcgccgaggtgaagttcgagggcgacaccctggtgaaccgcatcgagctgaagggcatcgacttcaaggaggacggcaacatcctggggcacaagctggagtacaactacaacagccacaacgtctatatcatggccgacaagcagaagaacggcatcaaggtgaacttcaagatccgccacaacatcgaggacggcagcgtgcagctcgccgaccactaccagcagaacacccccatcggcgacggccccgtgctgctgcccgacaaccactacctgagcacccagtccgccctgagcaaagaccccaacgagaagcgcgatcacatggtcctgctggagttcgtgaccgccgccgggatcactcacggcatggacgagctgtacaagtaagctt + 1 + + + UJHDBOTD_70_part_extract_seq + 1 + GGAGtttacagctagctcagtcctaggtattatgctagcTACT + + + + + TACTagagaaagaggagaaatactaaatg + 1 + + UJHDBOTD_45_part_extract_seq + + + + + + UJHDBOTD_134_part_extract_seq + 1 + gcttccaggcatcaaataaaacgaaaggctcagtcgaaagactgggcctttcgttttatctgttgtttgtcggtgaacgctctctactagagtcacactggctcaccttcgggtgggcctttctgcgtttatacgct + + + + 1 + aatggtgagcaagggcgaggagctgttcaccggggtggtgcccatcctggtcgagctggacggcgacgtaaacggccacaagttcagcgtgtccggcgagggcgagggcgatgccacctacggcaagctgaccctgaagttcatctgcaccaccggcaagctgcccgtgccctggcccaccctcgtgaccaccttcagctacggcgtgcagtgcttcagccgctaccccgaccacatgaagcagcacgacttcttcaagtccgccatgcccgaaggctacgtccaggagcgcaccatcttcttcaaggacgacggcaactacaagacccgcgccgaggtgaagttcgagggcgacaccctggtgaaccgcatcgagctgaagggcatcgacttcaaggaggacggcaacatcctggggcacaagctggagtacaactacaacagccacaacgtctatatcatggccgacaagcagaagaacggcatcaaggtgaacttcaagatccgccacaacatcgaggacggcagcgtgcagctcgccgaccactaccagcagaacacccccatcggcgacggccccgtgctgctgcccgacaaccactacctgagcacccagtccgccctgagcaaagaccccaacgagaagcgcgatcacatggtcctgctggagttcgtgaccgccgccgggatcactcacggcatggacgagctgtacaagtaagcttccaggcatcaaataaaacgaaaggctcagtcgaaagactgggcctttcgttttatctgttgtttgtcggtgaacgctctctactagagtcacactggctcaccttcgggtgggcctttctgcgtttatacgctgcatgaagagcctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgagtcccgtcaagtcagcgtaatgctctgccagtgttacaaccaattaaccaattctgattagaaaaactcatcgagcatcaaatgaaactgcaatttattcatatcaggattatcaataccatatttttgaaaaagccgtttctgtaatgaaggagaaaactcaccgaggcagttccataggatggcaagatcctggtatcggtctgcgattccgactcgtccaacatcaatacaacctattaatttcccctcgtcaaaaataaggttatcaagtgagaaatcaccatgagtgacgactgaatccggtgagaatggcaaaagcttatgcatttctttccagacttgttcaacaggccagccattacgctcgtcatcaaaatcactcgcatcaaccaaaccgttattcattcgtgattgcgcctgagcgagacgaaatacgcgatcgctgttaaaaggacaattacaaacaggaatcgaatgcaaccggcgcaggaacactgccagcgcatcaacaatattttcacctgaatcaggatattcttctaatacctggaatgctgttttcccggggatcgcagtggtgagtaaccatgcatcatcaggagtacggataaaatgcttgatggtcggaagaggcataaattccgtcagccagtttagtctgaccatctcatctgtaacatcattggcaacgctacctttgccatgtttcagaaacaactctggcgcatcgggcttcccatacaatcgatagattgtcgcacctgattgcccgacattatcgcgagcccatttatacccatataaatcagcatccatgttggaatttaatcgcggcctggagcaagacgtttcccgttgaatatggctcataacaccccttgtattactgtttatgtaagcagacagttttattgttcatgatgatatatttttatcttgtgcaatgtaacatcagagattttgagacacaacgtggctttgttgaataaatcgaacttttgctgagttgaaggatcagctcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcgctcttcaatgGGAGtttacagctagctcagtcctaggtattatgctagcTACTagagaaagaggagaaatacta + + composite_1_UJHDBOTD_106_UJHDBOTD_134_UJHDBOTD_backbone_UJHDBOTD_70_UJHDBOTD_45_seq + + + + + UJHDBOTD_134_reaction_component + + + + + 1 + + + + + 1 + + UJHDBOTD_106_product_component + + + + + + + + + 1 + BsaI_enzyme + + + + + + + + UJHDBOTD_45_reactant_component + + + + 1 + + + + + + + + + + 1 + UJHDBOTD_70_reactant_participation + + + + + + + restriction + + + + 1 + + + + + 1 + + + + UJHDBOTD_70_product_participation + + + UJHDBOTD_70_asssembly_plan_interaction + 1 + + + + + + 1 + + + + + + 1 + + restriction + + + + + + + + UJHDBOTD_106_reactant_participation + 1 + + + + + + + 1 + UJHDBOTD_106_product_participation + + + + + UJHDBOTD_106_asssembly_plan_interaction + + + + + + 1 + + + UJHDBOTD_backbone_reactant_component + + + + + + + + + + UJHDBOTD_70_reactant_component + 1 + + + + + + UJHDBOTD_134_product_component + 1 + + + + + + + + + + + + UJHDBOTD_106_reaction_component + + 1 + + + + + + + + UJHDBOTD_45_reactant_participation + + + 1 + + + + UJHDBOTD_45_asssembly_plan_interaction + + + + + + + 1 + UJHDBOTD_45_product_participation + + + + + + + + 1 + restriction + + + 1 + + + + + + + UJHDBOTD_134_reactant_component + + + 1 + + + + + + UJHDBOTD_70_reaction_component + + + + 1 + + + 1 + + + + + UJHDBOTD_106_reactant_component + + 1 + + + + bb_assembly_plan + + + UJHDBOTD_45_product_component + + + 1 + + + + + + + + + + + 1 + + restriction + + + + + + + + 1 + + UJHDBOTD_134_reactant_participation + + + + + + 1 + UJHDBOTD_134_product_participation + + + + + + UJHDBOTD_134_asssembly_plan_interaction + 1 + + + + + + 1 + UJHDBOTD_70_product_component + + + + + + + + + + + + + + 1 + UJHDBOTD_backbone_reactant_participation + + + + + restriction + + + + 1 + + + + + + + + + UJHDBOTD_backbone_product_participation + 1 + + + asssembly_plan_interaction + 1 + + + + + + UJHDBOTD_backbone_reaction_component + + 1 + + + + + + + + UJHDBOTD_backbone_product_component + + + + 1 + + + + + + 1 + + UJHDBOTD_45_reaction_component + + + + + + diff --git a/tests/out_doc.xml b/tests/out_doc.xml new file mode 100644 index 0000000..5df6b98 --- /dev/null +++ b/tests/out_doc.xml @@ -0,0 +1,1580 @@ + + + + + + + UJHDBOTD_45_reactant + + + 1 + + + testassem + + + + + 1 + + + UJHDBOTD_backbone_product + + + 1 + + + + UJHDBOTD_digestion_interaction + + + + UJHDBOTD_backbone_reactant + + + 1 + + + + + + + restriction + + 1 + + + + + + + UJHDBOTD_106_reactant + + + + 1 + + + + + + + 1 + + + + BsaI_enzyme + + + + + + + UJHDBOTD_45_reactant + + + 1 + + + + + + 1 + + restriction + + + + + UJHDBOTD_45_digestion_interaction + 1 + + + + + 1 + + UJHDBOTD_45_product + + + + + + + + + + 1 + + + UJHDBOTD_70_digestion_product + + + + + + UJHDBOTD_106_digestion_interaction + + + + + 1 + UJHDBOTD_106_product + + + + + + + + restriction + 1 + + + + + 1 + + + + + UJHDBOTD_106_reactant + + 1 + + + + + + + + + 1 + T4_Ligase + + + + + + + + + + + + 1 + UJHDBOTD_45_digestion_product + + + + + + UJHDBOTD_backbone_reactant + 1 + + + + + + 1 + + + 1 + + + + + UJHDBOTD_106_digestion_product + + + + + + 1 + UJHDBOTD_70_reactant + + + + + + + + + + + 1 + UJHDBOTD_backbone_digestion_product + + + + + + + + + + UJHDBOTD_134_reactant + 1 + + + + + + UJHDBOTD_134_digestion_product + + + + + 1 + + + + + 1 + + + + + + 1 + + + restriction + + + UJHDBOTD_70_digestion_interaction + + + + + + 1 + UJHDBOTD_70_reactant + + + + + UJHDBOTD_70_product + + 1 + + + + + + + + + + 1 + + + + + ligation + + 1 + + + + + + 1 + UJHDBOTD_134_extracted_part_ligation + + + + + + + UJHDBOTD_extracted_backbone_ligation + + 1 + + + + + composite_1_ligation_interaction + + + + + UJHDBOTD_70_extracted_part_ligation + 1 + + + + + + + composite_1_product + + + 1 + + + + + + + + + 1 + UJHDBOTD_106_extracted_part_ligation + + + + + + UJHDBOTD_45_extracted_part_ligation + + + 1 + + + + + + + + + 1 + composite_1 + + + + + + + + + + + + restriction + 1 + + + + + UJHDBOTD_134_digestion_interaction + 1 + + + UJHDBOTD_134_reactant + + 1 + + + + + + + + + 1 + + UJHDBOTD_134_product + + + + + + + BsaI + Restriction enzyme BsaI from REBASE. + + + 1 + + BsaI + + + + + + + J23101_3 + + 1 + + + + + + + 1 + UJHDBOTD_70_part + + + 1 + UJHDBOTD_70_part_location + 5 + 39 + + + + + + + + + + + + 1 + + + + + 4 + 1 + 1 + + five_prime_oh_location + + + + five_prime_overhang + + + UJHDBOTD_70_extracted_part + + + + + 1 + + + + + 40 + 1 + 43 + + three_prime_oh_location + + + three_prime_overhang + + + + + + 1 + + UJHDBOTD_70_three_prime_oh_component + + + + + 1 + + + + UJHDBOTD_70_five_prime_oh_component + + 1 + + + + + + + UJHDBOTD_70_three_prime_oh + + + + + + 1 + + + + + + + Scar_B + Scar_B + 1 + + + + + + J23101 + 1 + J23101 + + + + + + + + UJHDBOTD_70_five_prime_oh + 1 + + + + Scar_A + + + 1 + Scar_A + + + + + + + UJHDBOTD_45_part + 1 + + + + 25 + UJHDBOTD_45_part_location + + 1 + 5 + + + + + + + + + + + UJHDBOTD_45_five_prime_oh_component + 1 + + + + + + + + + + 26 + + three_prime_oh_location + 29 + + 1 + + + three_prime_overhang + 1 + + + UJHDBOTD_45_extracted_part + + + + + + + + B0034_3 + 1 + + + + + + + + UJHDBOTD_45_three_prime_oh_component + 1 + + + + + + + 1 + + + five_prime_overhang + + 1 + + + + five_prime_oh_location + + + 1 + 4 + 1 + + + + + + + UJHDBOTD_45_five_prime_oh + + + + + + 1 + + + + + 1 + + + UJHDBOTD_45_three_prime_oh + + + + + 1 + Scar_C + Scar_C + + + + + + 1 + B0034 + + + + + B0034 + + + + + + GFP_3 + 1 + + + + + + + + + 1 + + UJHDBOTD_106_part + + + 721 + + 5 + + 1 + UJHDBOTD_106_part_location + + + + + + + 1 + + + + + 1 + three_prime_oh_location + 722 + 725 + + + + three_prime_overhang + + + + + + + + UJHDBOTD_106_five_prime_oh_component + + + + 1 + + + + + + + + 1 + UJHDBOTD_106_three_prime_oh_component + + + + UJHDBOTD_106_extracted_part + 1 + + + + 1 + + + + 1 + + five_prime_oh_location + 1 + 4 + + + + + five_prime_overhang + + + + + + 1 + + GFP + + + + GFP + + + UJHDBOTD_106_five_prime_oh + + 1 + + + + + + + + + + UJHDBOTD_106_three_prime_oh + 1 + + + + + + + + Scar_D + + Scar_D + 1 + + + + + + + + UJHDBOTD_134_five_prime_oh_component + 1 + + + + 1 + + + + + + 4 + + 1 + five_prime_oh_location + + 1 + + + + five_prime_overhang + 1 + + + + + 1 + + B0015_3 + + + + + + + + + + + 134 + three_prime_oh_location + + 137 + 1 + + + 1 + + three_prime_overhang + + + + + + + + + + + 5 + + 1 + + 133 + UJHDBOTD_134_part_location + + + UJHDBOTD_134_part + 1 + + + + + + + + + 1 + + + UJHDBOTD_134_three_prime_oh_component + + + UJHDBOTD_134_extracted_part + + + + B0015 + + + 1 + B0015 + + + + + + + 1 + UJHDBOTD_134_three_prime_oh + + + + + + + 1 + Scar_F + + + Scar_F + + + + + 1 + UJHDBOTD_134_five_prime_oh + + + + + + + + + + + UJHDBOTD_159_five_prime_oh_component + 1 + + + + + + UJHDBOTD_159_backbone + + + + 1 + 2199 + UJHDBOTD_159_backbone_location + + + 5 + + + 1 + + + + + + + Cir_qxow_5 + 1 + + + + + + + 1 + + + three_prime_overhang + + + + + three_prime_oh_location + 2200 + 2203 + + 1 + + + + 1 + + + UJHDBOTD_extracted_backbone + + + + + UJHDBOTD_159_three_prime_oh_component + + + 1 + + + + + + five_prime_overhang + + + + 4 + five_prime_oh_location + 1 + + 1 + + + + 1 + + + + + + + + + UJHDBOTD_159_five_prime_oh + + 1 + + + + Cir + + + + + Cir_qxow + 1 + + + UJHDBOTD_159_three_prime_oh + + + + 1 + + + + + T4_Ligase + + + 1 + T4_Ligase + + + + 1 + + + + + + Ligation_Scar_A + + + + 1 + Ligation_Scar_B + + + + + + + + + + + + Ligation_Scar_C + + 1 + + + + + + 1 + + + + Ligation_Scar_D + + + + + + + + Ligation_Scar_E + 1 + + + + + + + + + B0034_3_location + + 1 + 2263 + + 2243 + + + + 1 + B0034_3_annotation + + + + + + Ligation_Scar_C + + + 1 + + + + + + 1 + + + Ligation_Scar_E + + + + + + 1 + + + + 1 + Ligation_Scar_E_location + + 2988 + 2985 + + + + + Ligation_Scar_E_annotation + + + + + + + 1 + J23101 + + + + + + + + Ligation_Scar_D + + 1 + + + + + + Ligation_Scar_C_annotation + + + 1 + + + + 1 + + 2242 + Ligation_Scar_C_location + 2239 + + + + + composite_1 + + + + + Ligation_Scar_D_annotation + + + 2267 + + Ligation_Scar_D_location + 1 + + 2264 + + + 1 + + + + + + + B0015 + + 1 + + + + + + 1 + + + + + 1 + Ligation_Scar_A_location + 4 + 1 + + + Ligation_Scar_A_annotation + + + + + + + B0015_3_annotation + + 1 + + + + + 3117 + 2989 + B0015_3_location + + 1 + + + + + + + Ligation_Scar_A + 1 + + + + + + + + + + 2200 + Ligation_Scar_B_location + + 2203 + + 1 + + + + 1 + + Ligation_Scar_B_annotation + + + + + + + + Ligation_Scar_B + 1 + + + + + + + + + 1 + GFP_3_annotation + + + GFP_3_location + 2984 + + 1 + + 2268 + + + + + + + + + GFP + + 1 + + + + + + + + + 1 + 2204 + 2238 + J23101_3_location + + + J23101_3_annotation + 1 + + + + + + + 1 + Cir_qxow + + + + + + + + + + + B0034 + 1 + + + 1 + composite_1 + + + + + 1 + Cir_qxow_5_annotation + + + 1 + 2199 + 5 + Cir_qxow_5_location + + + + + + + + + + + UJHDBOTD_70_extracted_part_seq + GGAGtttacagctagctcagtcctaggtattatgctagcTACT + 1 + + + + + + 1 + + UJHDBOTD_70_three_prime_oh_sequence + TACT + + + TACT + Scar_B_sequence + + + + + + tttacagctagctcagtcctaggtattatgctagc + + J23101_sequence + + + + + 1 + UJHDBOTD_70_five_prime_oh_sequence + + GGAG + + + + GGAG + Scar_A_sequence + + + + + UJHDBOTD_45_extracted_part_seq + + 1 + TACTagagaaagaggagaaatactaaatg + + + UJHDBOTD_45_five_prime_oh_sequence + TACT + + + + 1 + + + aatg + UJHDBOTD_45_three_prime_oh_sequence + + + + 1 + + + + Scar_C_sequence + aatg + + + + B0034_sequence + + + agagaaagaggagaaatacta + + + + UJHDBOTD_106_extracted_part_seq + + aatggtgagcaagggcgaggagctgttcaccggggtggtgcccatcctggtcgagctggacggcgacgtaaacggccacaagttcagcgtgtccggcgagggcgagggcgatgccacctacggcaagctgaccctgaagttcatctgcaccaccggcaagctgcccgtgccctggcccaccctcgtgaccaccttcagctacggcgtgcagtgcttcagccgctaccccgaccacatgaagcagcacgacttcttcaagtccgccatgcccgaaggctacgtccaggagcgcaccatcttcttcaaggacgacggcaactacaagacccgcgccgaggtgaagttcgagggcgacaccctggtgaaccgcatcgagctgaagggcatcgacttcaaggaggacggcaacatcctggggcacaagctggagtacaactacaacagccacaacgtctatatcatggccgacaagcagaagaacggcatcaaggtgaacttcaagatccgccacaacatcgaggacggcagcgtgcagctcgccgaccactaccagcagaacacccccatcggcgacggccccgtgctgctgcccgacaaccactacctgagcacccagtccgccctgagcaaagaccccaacgagaagcgcgatcacatggtcctgctggagttcgtgaccgccgccgggatcactcacggcatggacgagctgtacaagtaagctt + 1 + + + + GFP_sequence + gtgagcaagggcgaggagctgttcaccggggtggtgcccatcctggtcgagctggacggcgacgtaaacggccacaagttcagcgtgtccggcgagggcgagggcgatgccacctacggcaagctgaccctgaagttcatctgcaccaccggcaagctgcccgtgccctggcccaccctcgtgaccaccttcagctacggcgtgcagtgcttcagccgctaccccgaccacatgaagcagcacgacttcttcaagtccgccatgcccgaaggctacgtccaggagcgcaccatcttcttcaaggacgacggcaactacaagacccgcgccgaggtgaagttcgagggcgacaccctggtgaaccgcatcgagctgaagggcatcgacttcaaggaggacggcaacatcctggggcacaagctggagtacaactacaacagccacaacgtctatatcatggccgacaagcagaagaacggcatcaaggtgaacttcaagatccgccacaacatcgaggacggcagcgtgcagctcgccgaccactaccagcagaacacccccatcggcgacggccccgtgctgctgcccgacaaccactacctgagcacccagtccgccctgagcaaagaccccaacgagaagcgcgatcacatggtcctgctggagttcgtgaccgccgccgggatcactcacggcatggacgagctgtacaagtaa + + + + 1 + aatg + + + + UJHDBOTD_106_five_prime_oh_sequence + + + + 1 + + + UJHDBOTD_106_three_prime_oh_sequence + gctt + + + Scar_D_sequence + + gctt + + + + UJHDBOTD_134_extracted_part_seq + gcttccaggcatcaaataaaacgaaaggctcagtcgaaagactgggcctttcgttttatctgttgtttgtcggtgaacgctctctactagagtcacactggctcaccttcgggtgggcctttctgcgtttatacgct + + + 1 + + + + + B0015_sequence + ccaggcatcaaataaaacgaaaggctcagtcgaaagactgggcctttcgttttatctgttgtttgtcggtgaacgctctctactagagtcacactggctcaccttcgggtgggcctttctgcgtttata + + + + cgct + + UJHDBOTD_134_three_prime_oh_sequence + + 1 + + + + cgct + + Scar_F_sequence + + + + + gctt + + UJHDBOTD_134_five_prime_oh_sequence + 1 + + + + UJHDBOTD_extracted_backbone_seq + 1 + cgctgcatgaagagcctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgagtcccgtcaagtcagcgtaatgctctgccagtgttacaaccaattaaccaattctgattagaaaaactcatcgagcatcaaatgaaactgcaatttattcatatcaggattatcaataccatatttttgaaaaagccgtttctgtaatgaaggagaaaactcaccgaggcagttccataggatggcaagatcctggtatcggtctgcgattccgactcgtccaacatcaatacaacctattaatttcccctcgtcaaaaataaggttatcaagtgagaaatcaccatgagtgacgactgaatccggtgagaatggcaaaagcttatgcatttctttccagacttgttcaacaggccagccattacgctcgtcatcaaaatcactcgcatcaaccaaaccgttattcattcgtgattgcgcctgagcgagacgaaatacgcgatcgctgttaaaaggacaattacaaacaggaatcgaatgcaaccggcgcaggaacactgccagcgcatcaacaatattttcacctgaatcaggatattcttctaatacctggaatgctgttttcccggggatcgcagtggtgagtaaccatgcatcatcaggagtacggataaaatgcttgatggtcggaagaggcataaattccgtcagccagtttagtctgaccatctcatctgtaacatcattggcaacgctacctttgccatgtttcagaaacaactctggcgcatcgggcttcccatacaatcgatagattgtcgcacctgattgcccgacattatcgcgagcccatttatacccatataaatcagcatccatgttggaatttaatcgcggcctggagcaagacgtttcccgttgaatatggctcataacaccccttgtattactgtttatgtaagcagacagttttattgttcatgatgatatatttttatcttgtgcaatgtaacatcagagattttgagacacaacgtggctttgttgaataaatcgaacttttgctgagttgaaggatcagctcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcgctcttcaatgggag + + + + + cgct + + + 1 + UJHDBOTD_159_five_prime_oh_sequence + + + + gcatgaagagcctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgagtcccgtcaagtcagcgtaatgctctgccagtgttacaaccaattaaccaattctgattagaaaaactcatcgagcatcaaatgaaactgcaatttattcatatcaggattatcaataccatatttttgaaaaagccgtttctgtaatgaaggagaaaactcaccgaggcagttccataggatggcaagatcctggtatcggtctgcgattccgactcgtccaacatcaatacaacctattaatttcccctcgtcaaaaataaggttatcaagtgagaaatcaccatgagtgacgactgaatccggtgagaatggcaaaagcttatgcatttctttccagacttgttcaacaggccagccattacgctcgtcatcaaaatcactcgcatcaaccaaaccgttattcattcgtgattgcgcctgagcgagacgaaatacgcgatcgctgttaaaaggacaattacaaacaggaatcgaatgcaaccggcgcaggaacactgccagcgcatcaacaatattttcacctgaatcaggatattcttctaatacctggaatgctgttttcccggggatcgcagtggtgagtaaccatgcatcatcaggagtacggataaaatgcttgatggtcggaagaggcataaattccgtcagccagtttagtctgaccatctcatctgtaacatcattggcaacgctacctttgccatgtttcagaaacaactctggcgcatcgggcttcccatacaatcgatagattgtcgcacctgattgcccgacattatcgcgagcccatttatacccatataaatcagcatccatgttggaatttaatcgcggcctggagcaagacgtttcccgttgaatatggctcataacaccccttgtattactgtttatgtaagcagacagttttattgttcatgatgatatatttttatcttgtgcaatgtaacatcagagattttgagacacaacgtggctttgttgaataaatcgaacttttgctgagttgaaggatcagctcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcgctcttcaatg + Cir_qxow_sequence + + + + + ggag + + + 1 + UJHDBOTD_159_three_prime_oh_sequence + + + Ligation_Scar_A_sequence + cgct + + + 1 + + + ggag + + + Ligation_Scar_B_sequence + 1 + + + + TACT + Ligation_Scar_C_sequence + 1 + + + + Ligation_Scar_D_sequence + + aatg + + 1 + + + Ligation_Scar_E_sequence + gctt + 1 + + + + + + cgctgcatgaagagcctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgagtcccgtcaagtcagcgtaatgctctgccagtgttacaaccaattaaccaattctgattagaaaaactcatcgagcatcaaatgaaactgcaatttattcatatcaggattatcaataccatatttttgaaaaagccgtttctgtaatgaaggagaaaactcaccgaggcagttccataggatggcaagatcctggtatcggtctgcgattccgactcgtccaacatcaatacaacctattaatttcccctcgtcaaaaataaggttatcaagtgagaaatcaccatgagtgacgactgaatccggtgagaatggcaaaagcttatgcatttctttccagacttgttcaacaggccagccattacgctcgtcatcaaaatcactcgcatcaaccaaaccgttattcattcgtgattgcgcctgagcgagacgaaatacgcgatcgctgttaaaaggacaattacaaacaggaatcgaatgcaaccggcgcaggaacactgccagcgcatcaacaatattttcacctgaatcaggatattcttctaatacctggaatgctgttttcccggggatcgcagtggtgagtaaccatgcatcatcaggagtacggataaaatgcttgatggtcggaagaggcataaattccgtcagccagtttagtctgaccatctcatctgtaacatcattggcaacgctacctttgccatgtttcagaaacaactctggcgcatcgggcttcccatacaatcgatagattgtcgcacctgattgcccgacattatcgcgagcccatttatacccatataaatcagcatccatgttggaatttaatcgcggcctggagcaagacgtttcccgttgaatatggctcataacaccccttgtattactgtttatgtaagcagacagttttattgttcatgatgatatatttttatcttgtgcaatgtaacatcagagattttgagacacaacgtggctttgttgaataaatcgaacttttgctgagttgaaggatcagctcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcgctcttcaatgGGAGtttacagctagctcagtcctaggtattatgctagcTACTagagaaagaggagaaatactaaatggtgagcaagggcgaggagctgttcaccggggtggtgcccatcctggtcgagctggacggcgacgtaaacggccacaagttcagcgtgtccggcgagggcgagggcgatgccacctacggcaagctgaccctgaagttcatctgcaccaccggcaagctgcccgtgccctggcccaccctcgtgaccaccttcagctacggcgtgcagtgcttcagccgctaccccgaccacatgaagcagcacgacttcttcaagtccgccatgcccgaaggctacgtccaggagcgcaccatcttcttcaaggacgacggcaactacaagacccgcgccgaggtgaagttcgagggcgacaccctggtgaaccgcatcgagctgaagggcatcgacttcaaggaggacggcaacatcctggggcacaagctggagtacaactacaacagccacaacgtctatatcatggccgacaagcagaagaacggcatcaaggtgaacttcaagatccgccacaacatcgaggacggcagcgtgcagctcgccgaccactaccagcagaacacccccatcggcgacggccccgtgctgctgcccgacaaccactacctgagcacccagtccgccctgagcaaagaccccaacgagaagcgcgatcacatggtcctgctggagttcgtgaccgccgccgggatcactcacggcatggacgagctgtacaagtaagcttccaggcatcaaataaaacgaaaggctcagtcgaaagactgggcctttcgttttatctgttgtttgtcggtgaacgctctctactagagtcacactggctcaccttcgggtgggcctttctgcgtttata + composite_1_seq + 1 + + + diff --git a/tests/pro2_in_bb.xml b/tests/pro2_in_bb.xml new file mode 100644 index 0000000..a51d262 --- /dev/null +++ b/tests/pro2_in_bb.xml @@ -0,0 +1,330 @@ + + + + + module1 + + + + UJHDBOTD_3 + + + + + + + + + Scar_B + 1 + Scar_B + + + + + + + UJHDBOTD + 1 + + + + + + + + Bba_J23106_3 + 1 + + + + + + + + Scar_A_2 + 1 + + + + + + + + Cir_qxow_5 + 1 + + + + + + + + Scar_B_4 + 1 + + + + + + + + UJHDBOTDAnnotation3 + 1 + + + + location3 + 1 + 44 + 2095 + + + + + + + + + + UJHDBOTDAnnotation2 + 1 + + + + location2 + 1 + 40 + 43 + + + + + + + + + + UJHDBOTDAnnotation0 + 1 + + + + location0 + 1 + 1 + 4 + + + + + + + + + + UJHDBOTDAnnotation1 + 1 + + + + location1 + 1 + 5 + 39 + + + + + + + + + + UJHDBOTDConstraint3 + 1 + + + + + + + + + UJHDBOTDConstraint2 + 1 + + + + + + + + + UJHDBOTDConstraint1 + 1 + + + + + + + + + + Bba_J23106 + 1 + + Bba_J23106 + Constitutive promoter. From Anderson promoter collection, suitable for e. coli. + + + + + + + Cir_qxow + 1 + Cir + + + + + + + Scar_A + 1 + Scar_A + + + + + + + Bba_J23106_sequence + tttacggctagctcagtcctaggtatagtgctagc + + + + + Cir_qxow_sequence + CGAGaccctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgaggcttggattctcaccaataaaaaacgcccggcggcaaccgagcgttctgaacaaatccagatggagttctgaggtcattactggatctatcaacaggagtccaagcgagctcgatatcaaattacgccccgccctgccactcatcgcagtactgttgtaattcattaagcattctgccgacatggaagccatcacaaacggcatgatgaacctgaatcgccagcggcatcagcaccttgtcgccttgcgtataatatttgcccatggtgaaaacgggggcgaagaagttgtccatattggccacgtttaaatcaaaactggtgaaactcacccagggattggctgagacgaaaaacatattctcaataaaccctttagggaaataggccaggttttcaccgtaacacgccacatcttgcgaatatatgtgtagaaactgccggaaatcgtcgtggtattcactccagagcgatgaaaacgtttcagtttgctcatggaaaacggtgtaacaagggtgaacactatcccatatcaccagctcaccgtcttcattgccatacgaaattccggatgagcattcatcaggcgggcaagaatgtgaataaaggccggataaaacttgtgcttatttttctttacggtctttaaaaaggccgtaatatccagctgaacggtctggttataggtacattgagcaactgactgaaatgcctcaaaatgttctttacgatgccattgggatatatcaacggtggtatatccagtgatttttttctccattttagcttccttagctcctgaaaatctcgataactcaaaaaatacgcccggtagtgatcttatttcattatggtgaaagttggaacctcttacgtgcccgatcaactcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcggtctcg + + + + + UJHDBOTD_sequence + GGAGtttacggctagctcagtcctaggtatagtgctagcTACTCGAGaccctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgaggcttggattctcaccaataaaaaacgcccggcggcaaccgagcgttctgaacaaatccagatggagttctgaggtcattactggatctatcaacaggagtccaagcgagctcgatatcaaattacgccccgccctgccactcatcgcagtactgttgtaattcattaagcattctgccgacatggaagccatcacaaacggcatgatgaacctgaatcgccagcggcatcagcaccttgtcgccttgcgtataatatttgcccatggtgaaaacgggggcgaagaagttgtccatattggccacgtttaaatcaaaactggtgaaactcacccagggattggctgagacgaaaaacatattctcaataaaccctttagggaaataggccaggttttcaccgtaacacgccacatcttgcgaatatatgtgtagaaactgccggaaatcgtcgtggtattcactccagagcgatgaaaacgtttcagtttgctcatggaaaacggtgtaacaagggtgaacactatcccatatcaccagctcaccgtcttcattgccatacgaaattccggatgagcattcatcaggcgggcaagaatgtgaataaaggccggataaaacttgtgcttatttttctttacggtctttaaaaaggccgtaatatccagctgaacggtctggttataggtacattgagcaactgactgaaatgcctcaaaatgttctttacgatgccattgggatatatcaacggtggtatatccagtgatttttttctccattttagcttccttagctcctgaaaatctcgataactcaaaaaatacgcccggtagtgatcttatttcattatggtgaaagttggaacctcttacgtgcccgatcaactcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcggtctcg + + + + + Scar_A_sequence + GGAG + + + + + Scar_B_sequence + TACT + + + + + module1_Layout + + + + 695.0 + 457.0 + 152.0 + 100.0 + UJHDBOTD_3 + + + + + + + UJHDBOTD_Layout + + + + 695.0 + 457.0 + 152.0 + 100.0 + container + + + + + 0.0 + 50.0 + 152.0 + 1.0 + backbone + + + + + 1.0 + 0.0 + 50.0 + 100.0 + Scar_A_2 + + + + + + 51.0 + 0.0 + 50.0 + 100.0 + Bba_J23106_3 + + + + + + 101.0 + 0.0 + 50.0 + 100.0 + Scar_B_4 + + + + + + 151.0 + 0.0 + 1.0 + 100.0 + Cir_qxow_5 + + + + + + + Cir_qxow_Layout + + + + + Scar_A_Layout + + + + + Scar_B_Layout + + + + + Bba_J23106_Layout + + + diff --git a/tests/pro3_in_bb.xml b/tests/pro3_in_bb.xml new file mode 100644 index 0000000..bacd529 --- /dev/null +++ b/tests/pro3_in_bb.xml @@ -0,0 +1,330 @@ + + + + + module1 + + + + UJHDBOTD_3 + + + + + + + + + UJHDBOTD + 1 + + + + + + + + Bba_J23107_3 + 1 + + + + + + + + Scar_A_2 + 1 + + + + + + + + Cir_qxow_5 + 1 + + + + + + + + Scar_B_4 + 1 + + + + + + + + UJHDBOTDAnnotation3 + 1 + + + + location3 + 1 + 44 + 2095 + + + + + + + + + + UJHDBOTDAnnotation2 + 1 + + + + location2 + 1 + 40 + 43 + + + + + + + + + + UJHDBOTDAnnotation1 + 1 + + + + location1 + 1 + 5 + 39 + + + + + + + + + + UJHDBOTDAnnotation0 + 1 + + + + location0 + 1 + 1 + 4 + + + + + + + + + + UJHDBOTDConstraint1 + 1 + + + + + + + + + UJHDBOTDConstraint3 + 1 + + + + + + + + + UJHDBOTDConstraint2 + 1 + + + + + + + + + + Scar_B + 1 + Scar_B + + + + + + + Bba_J23107 + 1 + + Bba_J23107 + Constitutive promoter. From Anderson promoter collection, suitable for e. coli. + + + + + + + Cir_qxow + 1 + Cir + + + + + + + Scar_A + 1 + Scar_A + + + + + + + Bba_J23107_sequence + tttacggctagctcagccctaggtattatgctagc + + + + + Cir_qxow_sequence + CGAGaccctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgaggcttggattctcaccaataaaaaacgcccggcggcaaccgagcgttctgaacaaatccagatggagttctgaggtcattactggatctatcaacaggagtccaagcgagctcgatatcaaattacgccccgccctgccactcatcgcagtactgttgtaattcattaagcattctgccgacatggaagccatcacaaacggcatgatgaacctgaatcgccagcggcatcagcaccttgtcgccttgcgtataatatttgcccatggtgaaaacgggggcgaagaagttgtccatattggccacgtttaaatcaaaactggtgaaactcacccagggattggctgagacgaaaaacatattctcaataaaccctttagggaaataggccaggttttcaccgtaacacgccacatcttgcgaatatatgtgtagaaactgccggaaatcgtcgtggtattcactccagagcgatgaaaacgtttcagtttgctcatggaaaacggtgtaacaagggtgaacactatcccatatcaccagctcaccgtcttcattgccatacgaaattccggatgagcattcatcaggcgggcaagaatgtgaataaaggccggataaaacttgtgcttatttttctttacggtctttaaaaaggccgtaatatccagctgaacggtctggttataggtacattgagcaactgactgaaatgcctcaaaatgttctttacgatgccattgggatatatcaacggtggtatatccagtgatttttttctccattttagcttccttagctcctgaaaatctcgataactcaaaaaatacgcccggtagtgatcttatttcattatggtgaaagttggaacctcttacgtgcccgatcaactcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcggtctcg + + + + + UJHDBOTD_sequence + GGAGtttacggctagctcagtcctaggtatagtgctagcTACTCGAGaccctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgaggcttggattctcaccaataaaaaacgcccggcggcaaccgagcgttctgaacaaatccagatggagttctgaggtcattactggatctatcaacaggagtccaagcgagctcgatatcaaattacgccccgccctgccactcatcgcagtactgttgtaattcattaagcattctgccgacatggaagccatcacaaacggcatgatgaacctgaatcgccagcggcatcagcaccttgtcgccttgcgtataatatttgcccatggtgaaaacgggggcgaagaagttgtccatattggccacgtttaaatcaaaactggtgaaactcacccagggattggctgagacgaaaaacatattctcaataaaccctttagggaaataggccaggttttcaccgtaacacgccacatcttgcgaatatatgtgtagaaactgccggaaatcgtcgtggtattcactccagagcgatgaaaacgtttcagtttgctcatggaaaacggtgtaacaagggtgaacactatcccatatcaccagctcaccgtcttcattgccatacgaaattccggatgagcattcatcaggcgggcaagaatgtgaataaaggccggataaaacttgtgcttatttttctttacggtctttaaaaaggccgtaatatccagctgaacggtctggttataggtacattgagcaactgactgaaatgcctcaaaatgttctttacgatgccattgggatatatcaacggtggtatatccagtgatttttttctccattttagcttccttagctcctgaaaatctcgataactcaaaaaatacgcccggtagtgatcttatttcattatggtgaaagttggaacctcttacgtgcccgatcaactcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcggtctcg + + + + + Scar_A_sequence + GGAG + + + + + Scar_B_sequence + TACT + + + + + module1_Layout + + + + 695.0 + 457.0 + 152.0 + 100.0 + UJHDBOTD_3 + + + + + + + Cir_qxow_Layout + + + + + UJHDBOTD_Layout + + + + 695.0 + 457.0 + 152.0 + 100.0 + container + + + + + 0.0 + 50.0 + 152.0 + 1.0 + backbone + + + + + 1.0 + 0.0 + 50.0 + 100.0 + Scar_A_2 + + + + + + 51.0 + 0.0 + 50.0 + 100.0 + Bba_J23107_3 + + + + + + 101.0 + 0.0 + 50.0 + 100.0 + Scar_B_4 + + + + + + 151.0 + 0.0 + 1.0 + 100.0 + Cir_qxow_5 + + + + + + + Bba_J23107_Layout + + + + + Scar_A_Layout + + + + + Scar_B_Layout + + + diff --git a/tests/pro_in_bb.xml b/tests/pro_in_bb.xml new file mode 100644 index 0000000..773ce8d --- /dev/null +++ b/tests/pro_in_bb.xml @@ -0,0 +1,328 @@ + + + + + module1 + + + + UJHDBOTD_70 + + + + + + + + + Scar_B + 1 + Scar_B + + + + + + + UJHDBOTD + 1 + + + + + + + + J23101_3 + 1 + + + + + + + + Cir_qxow_5 + 1 + + + + + + + + Scar_B_4 + 1 + + + + + + + + Scar_A_2 + 1 + + + + + + + + UJHDBOTDAnnotation0 + 1 + + + + location0 + 1 + 1 + 4 + + + + + + + + + + UJHDBOTDAnnotation1 + 1 + + + + location1 + 1 + 5 + 39 + + + + + + + + + + UJHDBOTDAnnotation3 + 1 + + + + location3 + 1 + 44 + 2095 + + + + + + + + + + UJHDBOTDAnnotation2 + 1 + + + + location2 + 1 + 40 + 43 + + + + + + + + + + UJHDBOTDConstraint3 + 1 + + + + + + + + + UJHDBOTDConstraint2 + 1 + + + + + + + + + UJHDBOTDConstraint1 + 1 + + + + + + + + + + J23101 + 1 + J23101 + + + + + + + Cir_qxow + 1 + Cir + + + + + + + Scar_A + 1 + Scar_A + + + + + + + UJHDBOTD_sequence + GGAGtttacagctagctcagtcctaggtattatgctagcTACTCGAGaccctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgaggcttggattctcaccaataaaaaacgcccggcggcaaccgagcgttctgaacaaatccagatggagttctgaggtcattactggatctatcaacaggagtccaagcgagctcgatatcaaattacgccccgccctgccactcatcgcagtactgttgtaattcattaagcattctgccgacatggaagccatcacaaacggcatgatgaacctgaatcgccagcggcatcagcaccttgtcgccttgcgtataatatttgcccatggtgaaaacgggggcgaagaagttgtccatattggccacgtttaaatcaaaactggtgaaactcacccagggattggctgagacgaaaaacatattctcaataaaccctttagggaaataggccaggttttcaccgtaacacgccacatcttgcgaatatatgtgtagaaactgccggaaatcgtcgtggtattcactccagagcgatgaaaacgtttcagtttgctcatggaaaacggtgtaacaagggtgaacactatcccatatcaccagctcaccgtcttcattgccatacgaaattccggatgagcattcatcaggcgggcaagaatgtgaataaaggccggataaaacttgtgcttatttttctttacggtctttaaaaaggccgtaatatccagctgaacggtctggttataggtacattgagcaactgactgaaatgcctcaaaatgttctttacgatgccattgggatatatcaacggtggtatatccagtgatttttttctccattttagcttccttagctcctgaaaatctcgataactcaaaaaatacgcccggtagtgatcttatttcattatggtgaaagttggaacctcttacgtgcccgatcaactcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcggtctcg + + + + + J23101_sequence + tttacagctagctcagtcctaggtattatgctagc + + + + + Cir_qxow_sequence + CGAGaccctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgaggcttggattctcaccaataaaaaacgcccggcggcaaccgagcgttctgaacaaatccagatggagttctgaggtcattactggatctatcaacaggagtccaagcgagctcgatatcaaattacgccccgccctgccactcatcgcagtactgttgtaattcattaagcattctgccgacatggaagccatcacaaacggcatgatgaacctgaatcgccagcggcatcagcaccttgtcgccttgcgtataatatttgcccatggtgaaaacgggggcgaagaagttgtccatattggccacgtttaaatcaaaactggtgaaactcacccagggattggctgagacgaaaaacatattctcaataaaccctttagggaaataggccaggttttcaccgtaacacgccacatcttgcgaatatatgtgtagaaactgccggaaatcgtcgtggtattcactccagagcgatgaaaacgtttcagtttgctcatggaaaacggtgtaacaagggtgaacactatcccatatcaccagctcaccgtcttcattgccatacgaaattccggatgagcattcatcaggcgggcaagaatgtgaataaaggccggataaaacttgtgcttatttttctttacggtctttaaaaaggccgtaatatccagctgaacggtctggttataggtacattgagcaactgactgaaatgcctcaaaatgttctttacgatgccattgggatatatcaacggtggtatatccagtgatttttttctccattttagcttccttagctcctgaaaatctcgataactcaaaaaatacgcccggtagtgatcttatttcattatggtgaaagttggaacctcttacgtgcccgatcaactcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcggtctcg + + + + + Scar_A_sequence + GGAG + + + + + Scar_B_sequence + TACT + + + + + module1_Layout + + + + 695.0 + 457.0 + 152.0 + 100.0 + UJHDBOTD_70 + + + + + + + Cir_qxow_Layout + + + + + Scar_A_Layout + + + + + UJHDBOTD_Layout + + + + 695.0 + 457.0 + 152.0 + 100.0 + container + + + + + 0.0 + 50.0 + 152.0 + 1.0 + backbone + + + + + 1.0 + 0.0 + 50.0 + 100.0 + Scar_A_2 + + + + + + 51.0 + 0.0 + 50.0 + 100.0 + J23101_3 + + + + + + 101.0 + 0.0 + 50.0 + 100.0 + Scar_B_4 + + + + + + 151.0 + 0.0 + 1.0 + 100.0 + Cir_qxow_5 + + + + + + + Scar_B_Layout + + + + + J23101_Layout + + + diff --git a/tests/rbs_in_bb.xml b/tests/rbs_in_bb.xml new file mode 100644 index 0000000..a1ddebd --- /dev/null +++ b/tests/rbs_in_bb.xml @@ -0,0 +1,328 @@ + + + + + module1 + + + + UJHDBOTD_45 + + + + + + + + + UJHDBOTD + 1 + + + + + + + + Scar_B_2 + 1 + + + + + + + + B0034_3 + 1 + + + + + + + + Cir_qxow_5 + 1 + + + + + + + + Scar_C_4 + 1 + + + + + + + + UJHDBOTDAnnotation3 + 1 + + + + location3 + 1 + 30 + 2081 + + + + + + + + + + UJHDBOTDAnnotation0 + 1 + + + + location0 + 1 + 1 + 4 + + + + + + + + + + UJHDBOTDAnnotation2 + 1 + + + + location2 + 1 + 26 + 29 + + + + + + + + + + UJHDBOTDAnnotation1 + 1 + + + + location1 + 1 + 5 + 25 + + + + + + + + + + UJHDBOTDConstraint3 + 1 + + + + + + + + + UJHDBOTDConstraint1 + 1 + + + + + + + + + UJHDBOTDConstraint2 + 1 + + + + + + + + + + Scar_B + 1 + Scar_B + + + + + + + Scar_C + 1 + Scar_C + + + + + + + B0034 + 1 + B0034 + + + + + + + Cir_qxow + 1 + Cir + + + + + + + Scar_C_sequence + aatg + + + + + B0034_sequence + agagaaagaggagaaatacta + + + + + Cir_qxow_sequence + CGAGaccctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgaggcttggattctcaccaataaaaaacgcccggcggcaaccgagcgttctgaacaaatccagatggagttctgaggtcattactggatctatcaacaggagtccaagcgagctcgatatcaaattacgccccgccctgccactcatcgcagtactgttgtaattcattaagcattctgccgacatggaagccatcacaaacggcatgatgaacctgaatcgccagcggcatcagcaccttgtcgccttgcgtataatatttgcccatggtgaaaacgggggcgaagaagttgtccatattggccacgtttaaatcaaaactggtgaaactcacccagggattggctgagacgaaaaacatattctcaataaaccctttagggaaataggccaggttttcaccgtaacacgccacatcttgcgaatatatgtgtagaaactgccggaaatcgtcgtggtattcactccagagcgatgaaaacgtttcagtttgctcatggaaaacggtgtaacaagggtgaacactatcccatatcaccagctcaccgtcttcattgccatacgaaattccggatgagcattcatcaggcgggcaagaatgtgaataaaggccggataaaacttgtgcttatttttctttacggtctttaaaaaggccgtaatatccagctgaacggtctggttataggtacattgagcaactgactgaaatgcctcaaaatgttctttacgatgccattgggatatatcaacggtggtatatccagtgatttttttctccattttagcttccttagctcctgaaaatctcgataactcaaaaaatacgcccggtagtgatcttatttcattatggtgaaagttggaacctcttacgtgcccgatcaactcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcggtctcg + + + + + UJHDBOTD_sequence + TACTagagaaagaggagaaatactaaatgCGAGaccctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgaggcttggattctcaccaataaaaaacgcccggcggcaaccgagcgttctgaacaaatccagatggagttctgaggtcattactggatctatcaacaggagtccaagcgagctcgatatcaaattacgccccgccctgccactcatcgcagtactgttgtaattcattaagcattctgccgacatggaagccatcacaaacggcatgatgaacctgaatcgccagcggcatcagcaccttgtcgccttgcgtataatatttgcccatggtgaaaacgggggcgaagaagttgtccatattggccacgtttaaatcaaaactggtgaaactcacccagggattggctgagacgaaaaacatattctcaataaaccctttagggaaataggccaggttttcaccgtaacacgccacatcttgcgaatatatgtgtagaaactgccggaaatcgtcgtggtattcactccagagcgatgaaaacgtttcagtttgctcatggaaaacggtgtaacaagggtgaacactatcccatatcaccagctcaccgtcttcattgccatacgaaattccggatgagcattcatcaggcgggcaagaatgtgaataaaggccggataaaacttgtgcttatttttctttacggtctttaaaaaggccgtaatatccagctgaacggtctggttataggtacattgagcaactgactgaaatgcctcaaaatgttctttacgatgccattgggatatatcaacggtggtatatccagtgatttttttctccattttagcttccttagctcctgaaaatctcgataactcaaaaaatacgcccggtagtgatcttatttcattatggtgaaagttggaacctcttacgtgcccgatcaactcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcggtctcg + + + + + Scar_B_sequence + TACT + + + + + module1_Layout + + + + 695.0 + 457.0 + 152.0 + 100.0 + UJHDBOTD_45 + + + + + + + B0034_Layout + + + + + UJHDBOTD_Layout + + + + 695.0 + 457.0 + 152.0 + 100.0 + container + + + + + 0.0 + 50.0 + 152.0 + 1.0 + backbone + + + + + 1.0 + 0.0 + 50.0 + 100.0 + Scar_B_2 + + + + + + 51.0 + 0.0 + 50.0 + 100.0 + B0034_3 + + + + + + 101.0 + 0.0 + 50.0 + 100.0 + Scar_C_4 + + + + + + 151.0 + 0.0 + 1.0 + 100.0 + Cir_qxow_5 + + + + + + + Cir_qxow_Layout + + + + + Scar_B_Layout + + + + + Scar_C_Layout + + + From 161c2dbbf1cf69df462fdb57df6a5e9678095e64 Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 25 Jun 2025 11:53:44 -0600 Subject: [PATCH 043/118] Working Notebooks --- notebooks/Assembly_to_OT2sim.ipynb | 162 ++- notebooks/Assembly_to_dict.ipynb | 28 +- notebooks/output.json | 2 +- tests/terminator_in_bb.xml | 328 ++++++ tests/validation_assembly1.xml | 1581 ++++++++++++++++++++++++++++ 5 files changed, 2026 insertions(+), 75 deletions(-) create mode 100644 tests/terminator_in_bb.xml create mode 100644 tests/validation_assembly1.xml diff --git a/notebooks/Assembly_to_OT2sim.ipynb b/notebooks/Assembly_to_OT2sim.ipynb index c21e252..8791481 100644 --- a/notebooks/Assembly_to_OT2sim.ipynb +++ b/notebooks/Assembly_to_OT2sim.ipynb @@ -10,7 +10,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 40, "id": "7c2e1157", "metadata": {}, "outputs": [ @@ -18,51 +18,63 @@ "name": "stdout", "output_type": "stream", "text": [ - "Collecting git+https://github.com/MyersResearchGroup/SBOL2Build\n", - " Cloning https://github.com/MyersResearchGroup/SBOL2Build to /private/var/folders/65/dt4l3nw13q57n8x9nlly46640000gn/T/pip-req-build-zd6w75qs\n", - " Running command git clone --filter=blob:none --quiet https://github.com/MyersResearchGroup/SBOL2Build /private/var/folders/65/dt4l3nw13q57n8x9nlly46640000gn/T/pip-req-build-zd6w75qs\n", - " Resolved https://github.com/MyersResearchGroup/SBOL2Build to commit 177a60672c96904f3f911b36648493deb05419ce\n", - " Installing build dependencies ... \u001b[?25ldone\n", - "\u001b[?25h Getting requirements to build wheel ... \u001b[?25ldone\n", - "\u001b[?25h Preparing metadata (pyproject.toml) ... \u001b[?25ldone\n", - "\u001b[?25hRequirement already satisfied: sbol2 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from sbol2build==0.0b1) (1.2)\n", - "Requirement already satisfied: biopython in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from sbol2build==0.0b1) (1.84)\n", - "Requirement already satisfied: pydna in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from sbol2build==0.0b1) (5.4.0)\n", - "Requirement already satisfied: numpy in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from biopython->sbol2build==0.0b1) (1.26.1)\n", - "Requirement already satisfied: appdirs>=1.4.4 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from pydna->sbol2build==0.0b1) (1.4.4)\n", - "Requirement already satisfied: networkx>=2.8.8 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from pydna->sbol2build==0.0b1) (3.2.1)\n", - "Requirement already satisfied: prettytable>=3.5.0 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from pydna->sbol2build==0.0b1) (3.16.0)\n", - "Requirement already satisfied: pydivsufsort>=0.0.14 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from pydna->sbol2build==0.0b1) (0.0.18)\n", - "Requirement already satisfied: pyfiglet==0.8.post1 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from pydna->sbol2build==0.0b1) (0.8.post1)\n", - "Requirement already satisfied: seguid>=0.0.5 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from pydna->sbol2build==0.0b1) (0.1.0)\n", - "Requirement already satisfied: wcwidth in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from prettytable>=3.5.0->pydna->sbol2build==0.0b1) (0.2.13)\n", - "Requirement already satisfied: wheel in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from pydivsufsort>=0.0.14->pydna->sbol2build==0.0b1) (0.41.2)\n", - "Requirement already satisfied: rdflib>=5.0 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from sbol2->sbol2build==0.0b1) (6.1.1)\n", - "Requirement already satisfied: python-dateutil in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from sbol2->sbol2build==0.0b1) (2.8.2)\n", - "Requirement already satisfied: deprecated in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from sbol2->sbol2build==0.0b1) (1.2.14)\n", - "Requirement already satisfied: lxml in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from sbol2->sbol2build==0.0b1) (5.2.1)\n", - "Requirement already satisfied: requests in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from sbol2->sbol2build==0.0b1) (2.25.1)\n", - "Requirement already satisfied: urllib3 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from sbol2->sbol2build==0.0b1) (1.26.5)\n", - "Requirement already satisfied: packaging>=20.0 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from sbol2->sbol2build==0.0b1) (24.0)\n", - "Requirement already satisfied: isodate in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from rdflib>=5.0->sbol2->sbol2build==0.0b1) (0.6.1)\n", - "Requirement already satisfied: pyparsing in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from rdflib>=5.0->sbol2->sbol2build==0.0b1) (2.4.7)\n", - "Requirement already satisfied: setuptools in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from rdflib>=5.0->sbol2->sbol2build==0.0b1) (68.2.2)\n", - "Requirement already satisfied: wrapt<2,>=1.10 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from deprecated->sbol2->sbol2build==0.0b1) (1.16.0)\n", - "Requirement already satisfied: six in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from isodate->rdflib>=5.0->sbol2->sbol2build==0.0b1) (1.16.0)\n", - "Requirement already satisfied: chardet<5,>=3.0.2 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from requests->sbol2->sbol2build==0.0b1) (4.0.0)\n", - "Requirement already satisfied: idna<3,>=2.5 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from requests->sbol2->sbol2build==0.0b1) (2.10)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /Users/gonzalovidal/opt/anaconda3/envs/GLLDB/lib/python3.9/site-packages (from requests->sbol2->sbol2build==0.0b1) (2024.2.2)\n", + "Collecting git+https://github.com/MyersResearchGroup/SBOL2Build.git@roles-for-RE-and-Ligases\n", + " Cloning https://github.com/MyersResearchGroup/SBOL2Build.git (to revision roles-for-RE-and-Ligases) to c:\\users\\lukef\\appdata\\local\\temp\\pip-req-build-jomazih6\n", + " Resolved https://github.com/MyersResearchGroup/SBOL2Build.git to commit 2c0a53abada3731e81e0b04ac7c391f882c74a70\n", + " Installing build dependencies: started\n", + " Installing build dependencies: finished with status 'done'\n", + " Getting requirements to build wheel: started\n", + " Getting requirements to build wheel: finished with status 'done'\n", + " Installing backend dependencies: started\n", + " Installing backend dependencies: finished with status 'done'\n", + " Preparing metadata (pyproject.toml): started\n", + " Preparing metadata (pyproject.toml): finished with status 'done'\n", + "Requirement already satisfied: biopython in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from sbol2build==0.0b1) (1.81)\n", + "Requirement already satisfied: pydna in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from sbol2build==0.0b1) (5.0.0)\n", + "Requirement already satisfied: sbol2 in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from sbol2build==0.0b1) (1.4.1)\n", + "Requirement already satisfied: numpy in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from biopython->sbol2build==0.0b1) (1.21.6)\n", + "Requirement already satisfied: networkx in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from pydna->sbol2build==0.0b1) (2.6.3)\n", + "Requirement already satisfied: prettytable in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from pydna->sbol2build==0.0b1) (3.7.0)\n", + "Requirement already satisfied: appdirs in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from pydna->sbol2build==0.0b1) (1.4.4)\n", + "Requirement already satisfied: requests in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from sbol2->sbol2build==0.0b1) (2.31.0)\n", + "Requirement already satisfied: urllib3 in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from sbol2->sbol2build==0.0b1) (2.0.7)\n", + "Requirement already satisfied: rdflib>=5.0 in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from sbol2->sbol2build==0.0b1) (6.3.2)\n", + "Requirement already satisfied: packaging>=20.0 in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from sbol2->sbol2build==0.0b1) (24.0)\n", + "Requirement already satisfied: lxml in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from sbol2->sbol2build==0.0b1) (5.3.1)\n", + "Requirement already satisfied: deprecated in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from sbol2->sbol2build==0.0b1) (1.2.18)\n", + "Requirement already satisfied: python-dateutil in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from sbol2->sbol2build==0.0b1) (2.9.0)\n", + "Requirement already satisfied: pyparsing<4,>=2.1.0 in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from rdflib>=5.0->sbol2->sbol2build==0.0b1) (2.4.7)\n", + "Requirement already satisfied: isodate<0.7.0,>=0.6.0 in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from rdflib>=5.0->sbol2->sbol2build==0.0b1) (0.6.1)\n", + "Requirement already satisfied: importlib-metadata<5.0.0,>=4.0.0 in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from rdflib>=5.0->sbol2->sbol2build==0.0b1) (4.13.0)\n", + "Requirement already satisfied: wrapt<2,>=1.10 in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from deprecated->sbol2->sbol2build==0.0b1) (1.16.0)\n", + "Requirement already satisfied: wcwidth in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from prettytable->pydna->sbol2build==0.0b1) (0.2.10)\n", + "Requirement already satisfied: six>=1.5 in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from python-dateutil->sbol2->sbol2build==0.0b1) (1.17.0)\n", + "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from requests->sbol2->sbol2build==0.0b1) (2024.8.30)\n", + "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from requests->sbol2->sbol2build==0.0b1) (3.10)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from requests->sbol2->sbol2build==0.0b1) (3.4.1)\n", + "Requirement already satisfied: zipp>=0.5 in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from importlib-metadata<5.0.0,>=4.0.0->rdflib>=5.0->sbol2->sbol2build==0.0b1) (3.15.0)\n", + "Requirement already satisfied: typing-extensions>=3.6.4 in c:\\users\\lukef\\.conda\\envs\\test\\lib\\site-packages (from importlib-metadata<5.0.0,>=4.0.0->rdflib>=5.0->sbol2->sbol2build==0.0b1) (4.7.1)\n", "Note: you may need to restart the kernel to use updated packages.\n" ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " Running command git clone --filter=blob:none --quiet https://github.com/MyersResearchGroup/SBOL2Build.git 'C:\\Users\\lukef\\AppData\\Local\\Temp\\pip-req-build-jomazih6'\n", + " Running command git checkout -b roles-for-RE-and-Ligases --track origin/roles-for-RE-and-Ligases\n", + " branch 'roles-for-RE-and-Ligases' set up to track 'origin/roles-for-RE-and-Ligases'.\n", + " Switched to a new branch 'roles-for-RE-and-Ligases'\n" + ] } ], "source": [ - "pip install git+https://github.com/MyersResearchGroup/SBOL2Build" + "pip install git+https://github.com/MyersResearchGroup/SBOL2Build.git@roles-for-RE-and-Ligases" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 41, "id": "69c8a583", "metadata": {}, "outputs": [], @@ -72,7 +84,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 42, "id": "e86cb15c", "metadata": {}, "outputs": [], @@ -82,33 +94,34 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 43, "id": "4f19b39f", "metadata": {}, "outputs": [], "source": [ - "def test_golden_gate(self):\n", + "def test_golden_gate():\n", " pro_doc = sb2.Document()\n", - " pro_doc.read('pro_in_bb.xml')\n", + "\n", + " pro_doc.read('../tests/pro_in_bb.xml')\n", "\n", " #where I am working adding 2 and 3\n", " pro2_doc = sb2.Document()\n", - " pro2_doc.read('pro2_in_bb.xml') #add document\n", + " pro2_doc.read('../tests/pro2_in_bb.xml') #add document\n", "\n", " pro3_doc = sb2.Document()\n", - " pro3_doc.read('pro3_in_bb.xml') #add document\n", + " pro3_doc.read('../tests/pro3_in_bb.xml') #add document\n", " \n", " rbs_doc = sb2.Document()\n", - " rbs_doc.read('rbs_in_bb.xml')\n", + " rbs_doc.read('../tests/rbs_in_bb.xml')\n", "\n", " cds_doc = sb2.Document()\n", - " cds_doc.read('cds_in_bb.xml')\n", + " cds_doc.read('../tests/cds_in_bb.xml')\n", " \n", " ter_doc = sb2.Document()\n", - " ter_doc.read('terminator_in_bb.xml')\n", + " ter_doc.read('../tests/terminator_in_bb.xml')\n", "\n", " bb_doc = sb2.Document()\n", - " bb_doc.read('backbone.xml')\n", + " bb_doc.read('../tests/backbone.xml')\n", "\n", " part_docs = [pro_doc, rbs_doc, cds_doc, ter_doc]\n", "\n", @@ -117,24 +130,63 @@ "\n", " composites = assembly_obj.run()\n", "\n", - " assembly_doc.write('validation_assembly.xml')\n", + " assembly_doc.write('validation_assembly1.xml')\n", "\n", - " sbol_validation_result = assembly_doc.validate()\n", - " self.assertEqual(sbol_validation_result, 'Valid.', 'Assembly SBOL validation failed')" + " sbol_validation_result = assembly_doc.validate()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 44, "id": "5bf7f217", "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "adding: UJHDBOTD_70_extracted_part\n", + "adding: UJHDBOTD_70_three_prime_oh\n", + "adding: Scar_B\n", + "adding: J23101\n", + "adding: UJHDBOTD_70_five_prime_oh\n", + "adding: Scar_A\n", + "adding: UJHDBOTD_45_extracted_part\n", + "adding: UJHDBOTD_45_five_prime_oh\n", + "adding: Scar_B\n", + "adding: UJHDBOTD_45_three_prime_oh\n", + "adding: Scar_C\n", + "adding: B0034\n", + "adding: UJHDBOTD_106_extracted_part\n", + "adding: GFP\n", + "adding: UJHDBOTD_106_five_prime_oh\n", + "adding: Scar_C\n", + "adding: UJHDBOTD_106_three_prime_oh\n", + "adding: Scar_D\n", + "adding: UJHDBOTD_134_extracted_part\n", + "adding: B0015\n", + "adding: UJHDBOTD_134_three_prime_oh\n", + "adding: Scar_F\n", + "adding: UJHDBOTD_134_five_prime_oh\n", + "adding: Scar_D\n", + "adding: UJHDBOTD_extracted_backbone\n", + "adding: UJHDBOTD_159_five_prime_oh\n", + "adding: Scar_F\n", + "adding: Cir_qxow\n", + "adding: UJHDBOTD_159_three_prime_oh\n", + "adding: Scar_A\n", + "adding: composite_1\n" + ] + } + ], + "source": [ + "test_golden_gate()" + ] } ], "metadata": { "kernelspec": { - "display_name": "GLLDB", + "display_name": "test", "language": "python", "name": "python3" }, @@ -148,7 +200,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.19" + "version": "3.7.12" } }, "nbformat": 4, diff --git a/notebooks/Assembly_to_dict.ipynb b/notebooks/Assembly_to_dict.ipynb index 968b250..90ffa56 100644 --- a/notebooks/Assembly_to_dict.ipynb +++ b/notebooks/Assembly_to_dict.ipynb @@ -10,21 +10,10 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 43, "id": "df62b558", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'def dictionaryListCreatorPython(file):\\n import sbol2 as sb2\\n import json\\n\\n # Disable typed URIs for cleaner URI strings\\n sb2.Config.setOption(\\'sbol_typed_uris\\', False)\\n\\n # Read the SBOL document\\n doc = sb2.Document()\\n doc.read(file)\\n\\n #For collective parts knowledge\\n # http://identifiers.org/so/SO:0000031 Aptamer(PART) *added\\n # http://identifiers.org/so/SO:0000316 CDS (PART) *added\\n # http://identifiers.org/so/SO:0001977 Ribonuclease Site (PART) *added\\n # http://identifiers.org/so/SO:0001956 (Protease Site) (PART) *added\\n # http://identifiers.org/so/SO:0000804 (Engineered Region) (PRODUCT)\\n # http://identifiers.org/so/SO:0000188 (intron) (PART) *added\\n # http://identifiers.org/so/SO:0001263: Non-Coding RNA Gene (PART to be checked)*added\\n # http://identifiers.org/so/SO:0000839 (polypeptide region) (PART) *added\\n # http://identifiers.org/so/SO:0000167 (Promoter) *added\\n # http://identifiers.org/so/SO:0000139: Ribosome Entry Site (PART) *added\\n # http://identifiers.org/so/SO:0001979 (RNA Stability Element)*added\\n # http://identifiers.org/so/SO:0001955, # http://identifiers.org/so/SO:0001546 (Protein Stability Element) (2 of them ???)*added\\n\\n\\n # Known SO roles\\n PRODUCT_ROLE = \\'http://identifiers.org/so/SO:0000804\\' # composite product\\n PLASMID_ROLE = \\'http://identifiers.org/SO:0000755\\' # plasmid/backbone\\n ENZYME_ROLE = \\'http://identifiers.org/obi/OBI:0000732\\' #Restriction Enzyme (Check got it from sbol2build)\\n TERMINATOR_ROLE = \\'http://identifiers.org/SO:0000141\\' #Terminator\\n PARTS_ROLE_LIST = [\\'http://identifiers.org/so/SO:0000031\\',\\'http://identifiers.org/so/SO:0000316\\',\\n \\'http://identifiers.org/so/SO:0001977\\', \\'http://identifiers.org/so/SO:0001956\\',\\n \\'http://identifiers.org/so/SO:0000188\\', \\'http://identifiers.org/so/SO:0000839\\',\\n \\'http://identifiers.org/so/SO:0000167\\', \\'http://identifiers.org/so/SO:0000139\\',\\n \\'http://identifiers.org/so/SO:0001979\\', \\'http://identifiers.org/so/SO:0001955\\',\\n \\'http://identifiers.org/so/SO:0001546\\', \\'http://identifiers.org/so/SO:0001263\\'\\n ] #a list of all the roles of the parts\\n product_dicts = []\\n globalEnzyme = None\\n\\n for cd in doc.componentDefinitions:\\n if ENZYME_ROLE in cd.types:\\n globalEnzyme = cd.identity\\n print(f\"Found enzyme: {globalEnzyme}\")\\n\\n #Looks Good\\n if ENZYME_ROLE in cd.types:\\n globalEnzyme = cd.identity\\n\\n if PRODUCT_ROLE in cd.roles:\\n result = {\\n \\'Product\\': cd.identity,\\n \\'Backbone\\': None,\\n \\'PartsList\\': [],\\n \\'Restriction Enzyme\\': None,\\n \\'Terminator\\': None\\n }\\n print(\"Components\")\\n print(cd.components)\\n\\n for comp in cd.components:\\n sub_cd = doc.componentDefinitions.get(comp.definition)\\n if sub_cd is None:\\n continue\\n\\n roles = sub_cd.roles\\n\\n if PLASMID_ROLE in roles:\\n result[\\'Backbone\\'] = sub_cd.identity\\n\\n if any(role in PARTS_ROLE_LIST for role in roles):\\n result[\\'PartsList\\'].append(sub_cd.identity)\\n\\n if not result[\\'Backbone\\']:\\n print(f\"⚠️ Warning: No backbone found for product {cd.displayId}\")\\n if not result[\\'PartsList\\']:\\n print(f\"⚠️ Warning: No parts found for product {cd.displayId}\")\\n\\n product_dicts.append(result)\\n\\n\\n for dict in product_dicts:\\n dict[\\'Restriction Enzyme\\'] = globalEnzyme\\n\\n # Write JSON output\\n with open(\\'output.json\\', \\'w\\') as json_file:\\n json.dump(product_dicts, json_file, indent=4)\\n\\n return product_dicts'" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "def dictionaryListCreatorPython(file):\n", " import sbol2 as sb2\n", @@ -57,7 +46,7 @@ " print(f\" Types: {cd.types}\")\n", " print(f\" Roles: {cd.roles}\")\n", "\n", - " if ENZYME_ROLE in cd.types:\n", + " if ENZYME_ROLE in cd.roles:\n", " globalEnzyme = cd.identity\n", " print(f\"✅ Found enzyme definition: {globalEnzyme}\")\n", "\n", @@ -104,7 +93,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 44, "id": "cef06312", "metadata": {}, "outputs": [ @@ -115,7 +104,8 @@ "\n", "🔍 Checking Component: BsaI\n", " Types: ['http://www.biopax.org/release/biopax-level3.owl#Protein']\n", - " Roles: []\n", + " Roles: ['http://identifiers.org/obi/OBI:0000732']\n", + "✅ Found enzyme definition: https://SBOL2Build.org/BsaI/1\n", "\n", "🔍 Checking Component: UJHDBOTD_70_extracted_part\n", " Types: ['http://identifiers.org/so/SO:0000987', 'http://www.biopax.org/release/biopax-level3.owl#DnaRegion']\n", @@ -280,16 +270,16 @@ " 'https://sbolcanvas.org/B0015/1',\n", " 'https://sbolcanvas.org/J23101/1',\n", " 'https://sbolcanvas.org/B0034/1'],\n", - " 'Restriction Enzyme': None}]" + " 'Restriction Enzyme': 'https://SBOL2Build.org/BsaI/1'}]" ] }, - "execution_count": 22, + "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "dictionaryListCreatorPython(\"../tests/validation_assembly.xml\")" + "dictionaryListCreatorPython(\"../tests/validation_assembly1.xml\")" ] }, { diff --git a/notebooks/output.json b/notebooks/output.json index f73bc40..21e000a 100644 --- a/notebooks/output.json +++ b/notebooks/output.json @@ -8,6 +8,6 @@ "https://sbolcanvas.org/J23101/1", "https://sbolcanvas.org/B0034/1" ], - "Restriction Enzyme": null + "Restriction Enzyme": "https://SBOL2Build.org/BsaI/1" } ] \ No newline at end of file diff --git a/tests/terminator_in_bb.xml b/tests/terminator_in_bb.xml new file mode 100644 index 0000000..704245a --- /dev/null +++ b/tests/terminator_in_bb.xml @@ -0,0 +1,328 @@ + + + + + module1 + + + + UJHDBOTD_134 + + + + + + + + + B0015 + 1 + B0015 + + + + + + + Scar_F + 1 + Scar_F + + + + + + + UJHDBOTD + 1 + + + + + + + + B0015_3 + 1 + + + + + + + + Scar_F_4 + 1 + + + + + + + + Scar_D_2 + 1 + + + + + + + + Cir_qxow_5 + 1 + + + + + + + + UJHDBOTDAnnotation2 + 1 + + + + location2 + 1 + 134 + 137 + + + + + + + + + + UJHDBOTDAnnotation1 + 1 + + + + location1 + 1 + 5 + 133 + + + + + + + + + + UJHDBOTDAnnotation0 + 1 + + + + location0 + 1 + 1 + 4 + + + + + + + + + + UJHDBOTDAnnotation3 + 1 + + + + location3 + 1 + 138 + 2189 + + + + + + + + + + UJHDBOTDConstraint2 + 1 + + + + + + + + + UJHDBOTDConstraint3 + 1 + + + + + + + + + UJHDBOTDConstraint1 + 1 + + + + + + + + + + Scar_D + 1 + Scar_D + + + + + + + Cir_qxow + 1 + Cir + + + + + + + Scar_F_sequence + cgct + + + + + Scar_D_sequence + gctt + + + + + B0015_sequence + ccaggcatcaaataaaacgaaaggctcagtcgaaagactgggcctttcgttttatctgttgtttgtcggtgaacgctctctactagagtcacactggctcaccttcgggtgggcctttctgcgtttata + + + + + Cir_qxow_sequence + CGAGaccctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgaggcttggattctcaccaataaaaaacgcccggcggcaaccgagcgttctgaacaaatccagatggagttctgaggtcattactggatctatcaacaggagtccaagcgagctcgatatcaaattacgccccgccctgccactcatcgcagtactgttgtaattcattaagcattctgccgacatggaagccatcacaaacggcatgatgaacctgaatcgccagcggcatcagcaccttgtcgccttgcgtataatatttgcccatggtgaaaacgggggcgaagaagttgtccatattggccacgtttaaatcaaaactggtgaaactcacccagggattggctgagacgaaaaacatattctcaataaaccctttagggaaataggccaggttttcaccgtaacacgccacatcttgcgaatatatgtgtagaaactgccggaaatcgtcgtggtattcactccagagcgatgaaaacgtttcagtttgctcatggaaaacggtgtaacaagggtgaacactatcccatatcaccagctcaccgtcttcattgccatacgaaattccggatgagcattcatcaggcgggcaagaatgtgaataaaggccggataaaacttgtgcttatttttctttacggtctttaaaaaggccgtaatatccagctgaacggtctggttataggtacattgagcaactgactgaaatgcctcaaaatgttctttacgatgccattgggatatatcaacggtggtatatccagtgatttttttctccattttagcttccttagctcctgaaaatctcgataactcaaaaaatacgcccggtagtgatcttatttcattatggtgaaagttggaacctcttacgtgcccgatcaactcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcggtctcg + + + + + UJHDBOTD_sequence + gcttccaggcatcaaataaaacgaaaggctcagtcgaaagactgggcctttcgttttatctgttgtttgtcggtgaacgctctctactagagtcacactggctcaccttcgggtgggcctttctgcgtttatacgctCGAGaccctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgaggcttggattctcaccaataaaaaacgcccggcggcaaccgagcgttctgaacaaatccagatggagttctgaggtcattactggatctatcaacaggagtccaagcgagctcgatatcaaattacgccccgccctgccactcatcgcagtactgttgtaattcattaagcattctgccgacatggaagccatcacaaacggcatgatgaacctgaatcgccagcggcatcagcaccttgtcgccttgcgtataatatttgcccatggtgaaaacgggggcgaagaagttgtccatattggccacgtttaaatcaaaactggtgaaactcacccagggattggctgagacgaaaaacatattctcaataaaccctttagggaaataggccaggttttcaccgtaacacgccacatcttgcgaatatatgtgtagaaactgccggaaatcgtcgtggtattcactccagagcgatgaaaacgtttcagtttgctcatggaaaacggtgtaacaagggtgaacactatcccatatcaccagctcaccgtcttcattgccatacgaaattccggatgagcattcatcaggcgggcaagaatgtgaataaaggccggataaaacttgtgcttatttttctttacggtctttaaaaaggccgtaatatccagctgaacggtctggttataggtacattgagcaactgactgaaatgcctcaaaatgttctttacgatgccattgggatatatcaacggtggtatatccagtgatttttttctccattttagcttccttagctcctgaaaatctcgataactcaaaaaatacgcccggtagtgatcttatttcattatggtgaaagttggaacctcttacgtgcccgatcaactcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcggtctcg + + + + + B0015_Layout + + + + + Cir_qxow_Layout + + + + + module1_Layout + + + + 695.0 + 457.0 + 152.0 + 100.0 + UJHDBOTD_134 + + + + + + + UJHDBOTD_Layout + + + + 695.0 + 457.0 + 152.0 + 100.0 + container + + + + + 0.0 + 50.0 + 152.0 + 1.0 + backbone + + + + + 1.0 + 0.0 + 50.0 + 100.0 + Scar_D_2 + + + + + + 51.0 + 0.0 + 50.0 + 100.0 + B0015_3 + + + + + + 101.0 + 0.0 + 50.0 + 100.0 + Scar_F_4 + + + + + + 151.0 + 0.0 + 1.0 + 100.0 + Cir_qxow_5 + + + + + + + Scar_D_Layout + + + + + Scar_F_Layout + + + diff --git a/tests/validation_assembly1.xml b/tests/validation_assembly1.xml new file mode 100644 index 0000000..1237f14 --- /dev/null +++ b/tests/validation_assembly1.xml @@ -0,0 +1,1581 @@ + + + + + + + + 1 + + BsaI_enzyme + + + 1 + + + UJHDBOTD_70_reactant + + + 1 + + + + + + + UJHDBOTD_106_digestion_interaction + 1 + + + + + + UJHDBOTD_106_product + 1 + + + + + + + + UJHDBOTD_106_reactant + 1 + + + + + + + 1 + restriction + + + + + + + + + + + + + UJHDBOTD_134_digestion_product + 1 + + + + testassem + + + UJHDBOTD_45_digestion_interaction + + + + 1 + + + + UJHDBOTD_45_product + + + 1 + + + + + + + UJHDBOTD_45_reactant + 1 + + + + + + 1 + + + restriction + + + + + + + + + UJHDBOTD_134_reactant + + 1 + + + + + + + T4_Ligase + 1 + + + + + + + + + + 1 + + + UJHDBOTD_backbone_digestion_product + + + + + + UJHDBOTD_106_digestion_product + 1 + + + + + + + + + UJHDBOTD_backbone_reactant + + + + + 1 + + + + + + + + 1 + + + UJHDBOTD_106_extracted_part_ligation + + + + + 1 + + + composite_1_product + + + + 1 + composite_1_ligation_interaction + + + + 1 + + + + UJHDBOTD_70_extracted_part_ligation + + + + + + + + 1 + UJHDBOTD_45_extracted_part_ligation + + + + + + + + 1 + + ligation + + + + + + UJHDBOTD_134_extracted_part_ligation + + + 1 + + + + + + UJHDBOTD_extracted_backbone_ligation + 1 + + + + + + + + + 1 + UJHDBOTD_134_digestion_interaction + + + + restriction + + 1 + + + + + + + + 1 + + + + UJHDBOTD_134_product + + + + + 1 + + UJHDBOTD_134_reactant + + + + + + + + + composite_1 + + + + 1 + + + + + + + 1 + + + UJHDBOTD_45_digestion_product + + + + + + 1 + + + + UJHDBOTD_70_digestion_product + + + + + + 1 + + UJHDBOTD_106_reactant + + + + + + + + + + + 1 + UJHDBOTD_45_reactant + + + + + + + + + + + UJHDBOTD_70_reactant + 1 + + + UJHDBOTD_70_digestion_interaction + + 1 + + + + restriction + 1 + + + + + + + + + UJHDBOTD_70_product + + 1 + + + + + + + + + + UJHDBOTD_backbone_reactant + + 1 + + + + + UJHDBOTD_digestion_interaction + 1 + + + + + + restriction + 1 + + + + + + + 1 + + + UJHDBOTD_backbone_product + + + + + + + + BsaI + 1 + + BsaI + + + Restriction enzyme BsaI from REBASE. + + + + + + + + + + 40 + three_prime_oh_location + 1 + + 43 + + + three_prime_overhang + 1 + + + + + + + + + 1 + + J23101_3 + + + + + UJHDBOTD_70_three_prime_oh_component + 1 + + + + + + + + + + UJHDBOTD_70_five_prime_oh_component + + 1 + + + + + + + 1 + five_prime_overhang + + + + 1 + + 1 + five_prime_oh_location + 4 + + + + + + + + + UJHDBOTD_70_extracted_part + + + 1 + + + UJHDBOTD_70_part + + + UJHDBOTD_70_part_location + 39 + 1 + + 5 + + + + + + 1 + + + + + + + + + 1 + UJHDBOTD_70_three_prime_oh + + + + 1 + + Scar_B + + Scar_B + + + + + 1 + J23101 + + J23101 + + + + + + + + UJHDBOTD_70_five_prime_oh + 1 + + + + + Scar_A + + + + 1 + + Scar_A + + + + + + + UJHDBOTD_45_part + + + + 5 + 25 + UJHDBOTD_45_part_location + + 1 + + + + 1 + + + + + + + + 1 + + + + 29 + 1 + 26 + + three_prime_oh_location + + + + three_prime_overhang + + + + + + 1 + + UJHDBOTD_45_three_prime_oh_component + + + + + UJHDBOTD_45_extracted_part + + + + + + UJHDBOTD_45_five_prime_oh_component + 1 + + + + 1 + + + + + + B0034_3 + 1 + + + + + + + five_prime_overhang + + 1 + + + 1 + + five_prime_oh_location + 1 + + 4 + + + + + + + + + + + UJHDBOTD_45_five_prime_oh + + 1 + + + + + + + 1 + UJHDBOTD_45_three_prime_oh + + + + + Scar_C + + + Scar_C + + 1 + + + + B0034 + + + + 1 + B0034 + + + + UJHDBOTD_106_extracted_part + + + three_prime_overhang + + + + + 1 + 725 + + three_prime_oh_location + 722 + + + + 1 + + + + + + + 1 + + + UJHDBOTD_106_five_prime_oh_component + + + + + + + five_prime_overhang + 1 + + + + + + 4 + 1 + five_prime_oh_location + 1 + + + + + + + + GFP_3 + 1 + + + + + + + + + UJHDBOTD_106_part + + 1 + + + + 721 + UJHDBOTD_106_part_location + 1 + 5 + + + + + + + + + + UJHDBOTD_106_three_prime_oh_component + + 1 + + + + 1 + + + + + + + 1 + GFP + + GFP + + + 1 + + + + UJHDBOTD_106_five_prime_oh + + + + + + + + 1 + + UJHDBOTD_106_three_prime_oh + + + + 1 + + Scar_D + + Scar_D + + + + + + + + + + + UJHDBOTD_134_part_location + 1 + 133 + 5 + + + + + 1 + UJHDBOTD_134_part + + + + + + + five_prime_overhang + + + 1 + + + 4 + five_prime_oh_location + 1 + + + 1 + + + + + 1 + UJHDBOTD_134_extracted_part + + + + + B0015_3 + 1 + + + + + + + + + + UJHDBOTD_134_five_prime_oh_component + + 1 + + + + + + + three_prime_overhang + 1 + + + + three_prime_oh_location + + 137 + 1 + 134 + + + + + + + + + UJHDBOTD_134_three_prime_oh_component + + 1 + + + + + + + B0015 + + B0015 + 1 + + + + + + + + + 1 + + + UJHDBOTD_134_three_prime_oh + + + + 1 + Scar_F + + + + Scar_F + + + + + + + 1 + UJHDBOTD_134_five_prime_oh + + + + UJHDBOTD_extracted_backbone + + + + + three_prime_overhang + 1 + + + + 2200 + three_prime_oh_location + 2203 + 1 + + + + + + 1 + + + + + + 1 + + UJHDBOTD_159_five_prime_oh_component + + + + + + + + + + 5 + 1 + + UJHDBOTD_159_backbone_location + + 2199 + + + 1 + + UJHDBOTD_159_backbone + + + + + + 1 + + + Cir_qxow_5 + + + + + + UJHDBOTD_159_three_prime_oh_component + + 1 + + + + + + + + + 1 + + 4 + 1 + five_prime_oh_location + + + + + five_prime_overhang + 1 + + + + + + + + + + 1 + + UJHDBOTD_159_five_prime_oh + + + + + Cir_qxow + Cir + + + + 1 + + + + + + 1 + + UJHDBOTD_159_three_prime_oh + + + + + + 1 + T4_Ligase + T4_Ligase + + + + Ligation_Scar_A + + 1 + + + + + + + + + + + + Ligation_Scar_B + 1 + + + + + + Ligation_Scar_C + + + 1 + + + + + + Ligation_Scar_D + + + + + + 1 + + + Ligation_Scar_E + + + + + + + 1 + + + + + + Cir_qxow_5_annotation + + + 5 + 2199 + + + Cir_qxow_5_location + 1 + + + + 1 + + + + + + + + Ligation_Scar_B + + 1 + + + + + 1 + + + + 1 + + GFP_3_location + 2268 + 2984 + + + + GFP_3_annotation + + + + + + + 1 + + B0034 + + + + composite_1 + + + 1 + + + + J23101 + + + + + Ligation_Scar_E_annotation + + + + + Ligation_Scar_E_location + 1 + 2985 + + 2988 + + + + 1 + + + + + + 1 + + + 1 + Ligation_Scar_B_location + 2203 + + 2200 + + + + + Ligation_Scar_B_annotation + + + + + + 1 + J23101_3_annotation + + + + + 1 + 2238 + 2204 + J23101_3_location + + + + + + + + + + + Cir_qxow + 1 + + + + + + 1 + Ligation_Scar_D + + + + + + + + GFP + + + 1 + + + + + + + + + B0015 + 1 + + + 1 + + + 1 + + + + Ligation_Scar_C_location + + 2242 + + 1 + 2239 + + + Ligation_Scar_C_annotation + + + + + + + Ligation_Scar_A + 1 + + + + + + + + + + Ligation_Scar_E + 1 + + + + + + + + + Ligation_Scar_C + 1 + + + + + + + + + 1 + + 2264 + Ligation_Scar_D_location + 2267 + + + + 1 + Ligation_Scar_D_annotation + + + + + + 1 + Ligation_Scar_A_annotation + + + + 1 + + + 1 + Ligation_Scar_A_location + 4 + + + + + + + + + + + 2243 + + + 1 + B0034_3_location + 2263 + + + 1 + B0034_3_annotation + + + + + + + 1 + + + + + 3117 + 2989 + 1 + B0015_3_location + + + + + B0015_3_annotation + + + composite_1 + + + + GGAGtttacagctagctcagtcctaggtattatgctagcTACT + 1 + + UJHDBOTD_70_extracted_part_seq + + + + + TACT + + UJHDBOTD_70_three_prime_oh_sequence + 1 + + + + TACT + + Scar_B_sequence + + + tttacagctagctcagtcctaggtattatgctagc + + + J23101_sequence + + + + + + 1 + UJHDBOTD_70_five_prime_oh_sequence + GGAG + + + GGAG + + Scar_A_sequence + + + + + TACTagagaaagaggagaaatactaaatg + UJHDBOTD_45_extracted_part_seq + 1 + + + + 1 + UJHDBOTD_45_five_prime_oh_sequence + + + + TACT + + + + + + aatg + 1 + UJHDBOTD_45_three_prime_oh_sequence + + + aatg + Scar_C_sequence + + + + + B0034_sequence + + + agagaaagaggagaaatacta + + + 1 + UJHDBOTD_106_extracted_part_seq + aatggtgagcaagggcgaggagctgttcaccggggtggtgcccatcctggtcgagctggacggcgacgtaaacggccacaagttcagcgtgtccggcgagggcgagggcgatgccacctacggcaagctgaccctgaagttcatctgcaccaccggcaagctgcccgtgccctggcccaccctcgtgaccaccttcagctacggcgtgcagtgcttcagccgctaccccgaccacatgaagcagcacgacttcttcaagtccgccatgcccgaaggctacgtccaggagcgcaccatcttcttcaaggacgacggcaactacaagacccgcgccgaggtgaagttcgagggcgacaccctggtgaaccgcatcgagctgaagggcatcgacttcaaggaggacggcaacatcctggggcacaagctggagtacaactacaacagccacaacgtctatatcatggccgacaagcagaagaacggcatcaaggtgaacttcaagatccgccacaacatcgaggacggcagcgtgcagctcgccgaccactaccagcagaacacccccatcggcgacggccccgtgctgctgcccgacaaccactacctgagcacccagtccgccctgagcaaagaccccaacgagaagcgcgatcacatggtcctgctggagttcgtgaccgccgccgggatcactcacggcatggacgagctgtacaagtaagctt + + + + + gtgagcaagggcgaggagctgttcaccggggtggtgcccatcctggtcgagctggacggcgacgtaaacggccacaagttcagcgtgtccggcgagggcgagggcgatgccacctacggcaagctgaccctgaagttcatctgcaccaccggcaagctgcccgtgccctggcccaccctcgtgaccaccttcagctacggcgtgcagtgcttcagccgctaccccgaccacatgaagcagcacgacttcttcaagtccgccatgcccgaaggctacgtccaggagcgcaccatcttcttcaaggacgacggcaactacaagacccgcgccgaggtgaagttcgagggcgacaccctggtgaaccgcatcgagctgaagggcatcgacttcaaggaggacggcaacatcctggggcacaagctggagtacaactacaacagccacaacgtctatatcatggccgacaagcagaagaacggcatcaaggtgaacttcaagatccgccacaacatcgaggacggcagcgtgcagctcgccgaccactaccagcagaacacccccatcggcgacggccccgtgctgctgcccgacaaccactacctgagcacccagtccgccctgagcaaagaccccaacgagaagcgcgatcacatggtcctgctggagttcgtgaccgccgccgggatcactcacggcatggacgagctgtacaagtaa + + + GFP_sequence + + + aatg + UJHDBOTD_106_five_prime_oh_sequence + 1 + + + + + + UJHDBOTD_106_three_prime_oh_sequence + + + 1 + gctt + + + + gctt + Scar_D_sequence + + + + + UJHDBOTD_134_extracted_part_seq + 1 + + gcttccaggcatcaaataaaacgaaaggctcagtcgaaagactgggcctttcgttttatctgttgtttgtcggtgaacgctctctactagagtcacactggctcaccttcgggtgggcctttctgcgtttatacgct + + + + + B0015_sequence + ccaggcatcaaataaaacgaaaggctcagtcgaaagactgggcctttcgttttatctgttgtttgtcggtgaacgctctctactagagtcacactggctcaccttcgggtgggcctttctgcgtttata + + + + UJHDBOTD_134_three_prime_oh_sequence + + 1 + + + cgct + + + Scar_F_sequence + + cgct + + + + + UJHDBOTD_134_five_prime_oh_sequence + + + gctt + 1 + + + + + cgctgcatgaagagcctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgagtcccgtcaagtcagcgtaatgctctgccagtgttacaaccaattaaccaattctgattagaaaaactcatcgagcatcaaatgaaactgcaatttattcatatcaggattatcaataccatatttttgaaaaagccgtttctgtaatgaaggagaaaactcaccgaggcagttccataggatggcaagatcctggtatcggtctgcgattccgactcgtccaacatcaatacaacctattaatttcccctcgtcaaaaataaggttatcaagtgagaaatcaccatgagtgacgactgaatccggtgagaatggcaaaagcttatgcatttctttccagacttgttcaacaggccagccattacgctcgtcatcaaaatcactcgcatcaaccaaaccgttattcattcgtgattgcgcctgagcgagacgaaatacgcgatcgctgttaaaaggacaattacaaacaggaatcgaatgcaaccggcgcaggaacactgccagcgcatcaacaatattttcacctgaatcaggatattcttctaatacctggaatgctgttttcccggggatcgcagtggtgagtaaccatgcatcatcaggagtacggataaaatgcttgatggtcggaagaggcataaattccgtcagccagtttagtctgaccatctcatctgtaacatcattggcaacgctacctttgccatgtttcagaaacaactctggcgcatcgggcttcccatacaatcgatagattgtcgcacctgattgcccgacattatcgcgagcccatttatacccatataaatcagcatccatgttggaatttaatcgcggcctggagcaagacgtttcccgttgaatatggctcataacaccccttgtattactgtttatgtaagcagacagttttattgttcatgatgatatatttttatcttgtgcaatgtaacatcagagattttgagacacaacgtggctttgttgaataaatcgaacttttgctgagttgaaggatcagctcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcgctcttcaatgggag + UJHDBOTD_extracted_backbone_seq + 1 + + + + + cgct + 1 + + UJHDBOTD_159_five_prime_oh_sequence + + + + gcatgaagagcctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgagtcccgtcaagtcagcgtaatgctctgccagtgttacaaccaattaaccaattctgattagaaaaactcatcgagcatcaaatgaaactgcaatttattcatatcaggattatcaataccatatttttgaaaaagccgtttctgtaatgaaggagaaaactcaccgaggcagttccataggatggcaagatcctggtatcggtctgcgattccgactcgtccaacatcaatacaacctattaatttcccctcgtcaaaaataaggttatcaagtgagaaatcaccatgagtgacgactgaatccggtgagaatggcaaaagcttatgcatttctttccagacttgttcaacaggccagccattacgctcgtcatcaaaatcactcgcatcaaccaaaccgttattcattcgtgattgcgcctgagcgagacgaaatacgcgatcgctgttaaaaggacaattacaaacaggaatcgaatgcaaccggcgcaggaacactgccagcgcatcaacaatattttcacctgaatcaggatattcttctaatacctggaatgctgttttcccggggatcgcagtggtgagtaaccatgcatcatcaggagtacggataaaatgcttgatggtcggaagaggcataaattccgtcagccagtttagtctgaccatctcatctgtaacatcattggcaacgctacctttgccatgtttcagaaacaactctggcgcatcgggcttcccatacaatcgatagattgtcgcacctgattgcccgacattatcgcgagcccatttatacccatataaatcagcatccatgttggaatttaatcgcggcctggagcaagacgtttcccgttgaatatggctcataacaccccttgtattactgtttatgtaagcagacagttttattgttcatgatgatatatttttatcttgtgcaatgtaacatcagagattttgagacacaacgtggctttgttgaataaatcgaacttttgctgagttgaaggatcagctcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcgctcttcaatg + + Cir_qxow_sequence + + + 1 + + + UJHDBOTD_159_three_prime_oh_sequence + ggag + + + + + Ligation_Scar_A_sequence + 1 + + cgct + + + ggag + + + Ligation_Scar_B_sequence + 1 + + + + TACT + + Ligation_Scar_C_sequence + 1 + + + + + 1 + aatg + Ligation_Scar_D_sequence + + + Ligation_Scar_E_sequence + + 1 + gctt + + + + 1 + composite_1_seq + cgctgcatgaagagcctgcagtccggcaaaaaagggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgttatgcaggcttcctcgctcactgactcgctgcgctcggtcgttcggctgcggcgagcggtatcagctcactcaaaggcggtaatacggttatccacagaatcaggggataacgcaggaaagaacatgtgagcaaaaggccagcaaaaggccaggaaccgtaaaaaggccgcgttgctggcgtttttccacaggctccgcccccctgacgagcatcacaaaaatcgacgctcaagtcagaggtggcgaaacccgacaggactataaagataccaggcgtttccccctggaagctccctcgtgcgctctcctgttccgaccctgccgcttaccggatacctgtccgcctttctcccttcgggaagcgtggcgctttctcatagctcacgctgtaggtatctcagttcggtgtaggtcgttcgctccaagctgggctgtgtgcacgaaccccccgttcagcccgaccgctgcgccttatccggtaactatcgtcttgagtccaacccggtaagacacgacttatcgccactggcagcagccactggtaacaggattagcagagcgaggtatgtaggcggtgctacagagttcttgaagtggtggcctaactacggctacactagaagaacagtatttggtatctgcgctctgctgaagccagttaccttcggaaaaagagttggtagctcttgatccggcaaacaaaccaccgctggtagcggtggtttttttgtttgcaagcagcagattacgcgcagaaaaaaaggatctcaagaagatcctttgatcttttctacggggtctgacgctcagtggaacgaaaactcacgttaagggattttggtcatgagattatcaaaaaggatcttcacctagatccttttaaattaaaaatgaagttttaaatcaatctaaagtatatatgagtaaacttggtctgacagctcgagtcccgtcaagtcagcgtaatgctctgccagtgttacaaccaattaaccaattctgattagaaaaactcatcgagcatcaaatgaaactgcaatttattcatatcaggattatcaataccatatttttgaaaaagccgtttctgtaatgaaggagaaaactcaccgaggcagttccataggatggcaagatcctggtatcggtctgcgattccgactcgtccaacatcaatacaacctattaatttcccctcgtcaaaaataaggttatcaagtgagaaatcaccatgagtgacgactgaatccggtgagaatggcaaaagcttatgcatttctttccagacttgttcaacaggccagccattacgctcgtcatcaaaatcactcgcatcaaccaaaccgttattcattcgtgattgcgcctgagcgagacgaaatacgcgatcgctgttaaaaggacaattacaaacaggaatcgaatgcaaccggcgcaggaacactgccagcgcatcaacaatattttcacctgaatcaggatattcttctaatacctggaatgctgttttcccggggatcgcagtggtgagtaaccatgcatcatcaggagtacggataaaatgcttgatggtcggaagaggcataaattccgtcagccagtttagtctgaccatctcatctgtaacatcattggcaacgctacctttgccatgtttcagaaacaactctggcgcatcgggcttcccatacaatcgatagattgtcgcacctgattgcccgacattatcgcgagcccatttatacccatataaatcagcatccatgttggaatttaatcgcggcctggagcaagacgtttcccgttgaatatggctcataacaccccttgtattactgtttatgtaagcagacagttttattgttcatgatgatatatttttatcttgtgcaatgtaacatcagagattttgagacacaacgtggctttgttgaataaatcgaacttttgctgagttgaaggatcagctcgagtgccacctgacgtctaagaaaccattattatcatgacattaacctataaaaataggcgtatcacgaggcagaatttcagataaaaaaaatccttagctttcgctaaggatgatttctggaattcgctcttcaatgGGAGtttacagctagctcagtcctaggtattatgctagcTACTagagaaagaggagaaatactaaatggtgagcaagggcgaggagctgttcaccggggtggtgcccatcctggtcgagctggacggcgacgtaaacggccacaagttcagcgtgtccggcgagggcgagggcgatgccacctacggcaagctgaccctgaagttcatctgcaccaccggcaagctgcccgtgccctggcccaccctcgtgaccaccttcagctacggcgtgcagtgcttcagccgctaccccgaccacatgaagcagcacgacttcttcaagtccgccatgcccgaaggctacgtccaggagcgcaccatcttcttcaaggacgacggcaactacaagacccgcgccgaggtgaagttcgagggcgacaccctggtgaaccgcatcgagctgaagggcatcgacttcaaggaggacggcaacatcctggggcacaagctggagtacaactacaacagccacaacgtctatatcatggccgacaagcagaagaacggcatcaaggtgaacttcaagatccgccacaacatcgaggacggcagcgtgcagctcgccgaccactaccagcagaacacccccatcggcgacggccccgtgctgctgcccgacaaccactacctgagcacccagtccgccctgagcaaagaccccaacgagaagcgcgatcacatggtcctgctggagttcgtgaccgccgccgggatcactcacggcatggacgagctgtacaagtaagcttccaggcatcaaataaaacgaaaggctcagtcgaaagactgggcctttcgttttatctgttgtttgtcggtgaacgctctctactagagtcacactggctcaccttcgggtgggcctttctgcgtttata + + + + From f9adb1a988d857bf5e4b0020099892d751ce75c9 Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Wed, 2 Jul 2025 09:48:00 -0600 Subject: [PATCH 044/118] Assemblies fully tested and functional for taking json --- scripts/SBOL_xlsx5.xlsx | Bin 0 -> 6197 bytes scripts/output.json | 13 +++++++++++++ scripts/run_sbol2assembly_libre.py | 15 ++++++++++----- 3 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 scripts/SBOL_xlsx5.xlsx create mode 100644 scripts/output.json diff --git a/scripts/SBOL_xlsx5.xlsx b/scripts/SBOL_xlsx5.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..4e8ecee8a8cd0fc026c577db85c045c5b66b2b55 GIT binary patch literal 6197 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 literal 0 HcmV?d00001 diff --git a/scripts/output.json b/scripts/output.json new file mode 100644 index 0000000..21e000a --- /dev/null +++ b/scripts/output.json @@ -0,0 +1,13 @@ +[ + { + "Product": "https://SBOL2Build.org/composite_1/1", + "Backbone": "https://sbolcanvas.org/Cir_qxow/1", + "PartsList": [ + "https://sbolcanvas.org/GFP/1", + "https://sbolcanvas.org/B0015/1", + "https://sbolcanvas.org/J23101/1", + "https://sbolcanvas.org/B0034/1" + ], + "Restriction Enzyme": "https://SBOL2Build.org/BsaI/1" + } +] \ No newline at end of file diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index c08d600..c3f1923 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -154,7 +154,7 @@ def __init__(self, assemblies:List[Dict], #backbone parts self.backbone_set.add(assembly["Backbone"]) #add enzymes - self.restriction_enzyme_set.add(assembly["RestrictionEnzyme"]) + self.restriction_enzyme_set.add(assembly["Restriction Enzyme"]) self.combined_set = self.parts_set.union(self.backbone_set) @@ -211,7 +211,7 @@ def run(self, protocol: protocol_api.ProtocolContext): liquid_transfer(pipette, volume_dd_h2o, dd_h2o, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate) liquid_transfer(pipette, self.volume_t4_dna_ligase_buffer, t4_dna_ligase_buffer, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase_buffer) liquid_transfer(pipette, self.volume_t4_dna_ligase, t4_dna_ligase, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase) - liquid_transfer(pipette, self.volume_restriction_enzyme, tem_mod_block[self.dict_of_parts_in_temp_mod_position[assembly['RestrictionEnzyme']]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_restriction_enzyme) + liquid_transfer(pipette, self.volume_restriction_enzyme, tem_mod_block[self.dict_of_parts_in_temp_mod_position[assembly['Restriction Enzyme']]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_restriction_enzyme) #pippeting backbone liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[assembly["Backbone"]]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) #pippeting parts @@ -292,9 +292,14 @@ def get_xlsx_output(self, name:str): 'apiLevel': '2.13'} def run(protocol= protocol_api.ProtocolContext): - # Load dictionary from XML file - xml_file = "RyanTest.xml" - assembly_sbol2_uris = dictionaryListCreatorPython(xml_file) + + #Take the Json file from Assembly to Dict then set it to assembly_sbol2_uris + #I am taking in the name of Json file and make it assembly + #import using pandas or somthing to convert to usable dictionary + import json + with open("output.json", "r") as f: + assembly_sbol2_uris = json.load(f) + pudu_sbol2_assembly = sbol2assembly(assemblies=assembly_sbol2_uris) pudu_sbol2_assembly.run(protocol) From 536f1f3ddca33320c3ac9c1815d3a855a60578d5 Mon Sep 17 00:00:00 2001 From: LukeDysart17 Date: Thu, 3 Jul 2025 12:03:43 -0600 Subject: [PATCH 045/118] Luke Dysart final push --- scripts/SBOL_xlsx5.xlsx | Bin 6197 -> 6198 bytes scripts/output.json | 4 ++-- scripts/run_sbol2assembly.py | 18 ++++++++++++++++++ scripts/sbol2_assembly_output.xlsx.xlsx | Bin 0 -> 6199 bytes 4 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 scripts/run_sbol2assembly.py create mode 100644 scripts/sbol2_assembly_output.xlsx.xlsx diff --git a/scripts/SBOL_xlsx5.xlsx b/scripts/SBOL_xlsx5.xlsx index 4e8ecee8a8cd0fc026c577db85c045c5b66b2b55..6e7e34d369bdbfd8ad0162572d69f44f6da6a685 100644 GIT binary patch delta 478 zcmV<40U`diFt#wTfCmnGD3jhl0RRA20{{RN0F%EK7L%k0{25sgj3+((?0P<&cKNKM z4DgSubr0Rie1KlFxd=%J1m~t11hWPa76BNxh~sqJ*E$}|N+x}+lVPm4i>JQQ=`hlh zG!iL)foqR;C;EA_;2J+t4=u3Syms!M*sd1-Ww@{FJa zG&e%(wnp!ZS$dBWAD9-bGa72N0gtB5^;N}xE#=0+t1}i{kl>R@(w=f#qg4o&V(j?} z6!Teh=qN6YQ!K>Nwb(NL&04?(A$M3oV1fmPx4_hnM6^c=J|gXp>jr?}7&=g(gU5N6 zym^`amQx0NuqsC?Dn1^J0dYf)uwYnWUs#cC6m6^=`hxl zG!iL)sh-T0CjkHeQ33z}5dZ)HWN%|oa&K^RFJo_VWiEJaY@L!{OT#b}#oq1&{13)r&x%k+hEK1H`@R%2)V}!0uwAS+yhfP643!E_=vPWt{DJ=V`xBu4j$)O zj!)hIPWh`1gL39nGISQMT94xB-g!A1+qTWx$zYB7bNsn{c^g(urS5OV0oA48lsjNb z!MM7_=S4hR!+coA8?PmZ$1dtu-VTfG`#>Zy0NuwuDj$=l=hXt$1u3Q}nWdyy', +'description': 'Automated DNA assembly from SBOL2 Assembly Plan', +'apiLevel': '2.13'} + +def run(protocol= protocol_api.ProtocolContext): + + pudu_sbol2_assembly = sbol2_DNA_Assembly(assembly_JSON) + pudu_sbol2_assembly.run(protocol) + pudu_sbol2_assembly.get_xlsx_output('sbol2_assembly_output.xlsx') \ No newline at end of file diff --git a/scripts/sbol2_assembly_output.xlsx.xlsx b/scripts/sbol2_assembly_output.xlsx.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..da5aac1f12f6d42b6713d675926befd77352af1f GIT binary patch literal 6199 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 A^Z)<= literal 0 HcmV?d00001 From d972b3ea1be9f30e80b0965a5ed240dcac5ae614 Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Wed, 23 Jul 2025 09:54:32 -0600 Subject: [PATCH 046/118] Delete scripts/LukeTestingNotebook.ipynb --- scripts/LukeTestingNotebook.ipynb | 68 ------------------------------- 1 file changed, 68 deletions(-) delete mode 100644 scripts/LukeTestingNotebook.ipynb diff --git a/scripts/LukeTestingNotebook.ipynb b/scripts/LukeTestingNotebook.ipynb deleted file mode 100644 index b177862..0000000 --- a/scripts/LukeTestingNotebook.ipynb +++ /dev/null @@ -1,68 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "68d30519", - "metadata": {}, - "outputs": [ - { - "ename": "FileNotFoundError", - "evalue": "[Errno 2] No such file or directory: 'C:\\\\Users\\\\lukef\\\\OneDrive\\\\Desktop\\\\hmwk0\\\\CSCI_1300F\\\\Work\\\\PUDUWork\\\\PUDU\\\\RyanTest.xml'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m~\\AppData\\Local\\Temp\\ipykernel_3980\\1001182099.py\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 14\u001b[0m \u001b[0mcd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfeatures\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 15\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 16\u001b[1;33m \u001b[0mdictionaryCreatorPython\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'RyanTest.xml'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[1;32m~\\AppData\\Local\\Temp\\ipykernel_3980\\1001182099.py\u001b[0m in \u001b[0;36mdictionaryCreatorPython\u001b[1;34m(file)\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;31m#given code from website\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[0mdoc\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msb2\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mDocument\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 5\u001b[1;33m \u001b[0mdoc\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfile\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 6\u001b[0m \u001b[1;31m#Loops through commponetDefinition\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[1;31m#for DNA\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\Users\\lukef\\.conda\\envs\\test\\lib\\site-packages\\sbol2\\document.py\u001b[0m in \u001b[0;36mread\u001b[1;34m(self, filename)\u001b[0m\n\u001b[0;32m 424\u001b[0m \"\"\"\n\u001b[0;32m 425\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mclear\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 426\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0moverwrite\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mFalse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 427\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 428\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mreadString\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msbol_str\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\Users\\lukef\\.conda\\envs\\test\\lib\\site-packages\\sbol2\\document.py\u001b[0m in \u001b[0;36mappend\u001b[1;34m(self, filename, overwrite)\u001b[0m\n\u001b[0;32m 461\u001b[0m \"\"\"\n\u001b[0;32m 462\u001b[0m \u001b[0mnew_graph\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mrdflib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mGraph\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 463\u001b[1;33m \u001b[0mnew_graph\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mparse\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mformat\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'application/rdf+xml'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 464\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_append_graph\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnew_graph\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0moverwrite\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 465\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\Users\\lukef\\.conda\\envs\\test\\lib\\site-packages\\rdflib\\graph.py\u001b[0m in \u001b[0;36mparse\u001b[1;34m(self, source, publicID, format, location, file, data, **args)\u001b[0m\n\u001b[0;32m 1474\u001b[0m \u001b[0mfile\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mfile\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1475\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdata\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1476\u001b[1;33m \u001b[0mformat\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1477\u001b[0m )\n\u001b[0;32m 1478\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mformat\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\Users\\lukef\\.conda\\envs\\test\\lib\\site-packages\\rdflib\\parser.py\u001b[0m in \u001b[0;36mcreate_input_source\u001b[1;34m(source, publicID, location, file, data, format)\u001b[0m\n\u001b[0;32m 418\u001b[0m \u001b[0mformat\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 419\u001b[0m \u001b[0minput_source\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0minput_source\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 420\u001b[1;33m \u001b[0mlocation\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mlocation\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 421\u001b[0m )\n\u001b[0;32m 422\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\Users\\lukef\\.conda\\envs\\test\\lib\\site-packages\\rdflib\\parser.py\u001b[0m in \u001b[0;36m_create_input_source_from_location\u001b[1;34m(file, format, input_source, location)\u001b[0m\n\u001b[0;32m 474\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mabsolute_location\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstartswith\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"file:///\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 475\u001b[0m \u001b[0mfilename\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0murl2pathname\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mabsolute_location\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreplace\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"file:///\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"/\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 476\u001b[1;33m \u001b[0mfile\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mopen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"rb\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 477\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 478\u001b[0m \u001b[0minput_source\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mURLInputSource\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mabsolute_location\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mformat\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'C:\\\\Users\\\\lukef\\\\OneDrive\\\\Desktop\\\\hmwk0\\\\CSCI_1300F\\\\Work\\\\PUDUWork\\\\PUDU\\\\RyanTest.xml'" - ] - } - ], - "source": [ - "def dictionaryCreatorPython(file):\n", - " import sbol2 as sb2\n", - " #given code from website\n", - " doc = sb2.Document()\n", - " doc.read(file)\n", - " #Loops through commponetDefinition\n", - " #for DNA\n", - "\n", - " #look at the roles for each\n", - " for cd in doc.componentDefinitions:\n", - " #check for role\n", - " if cd.role =='http://identifiers.org/so/SO:0000804':\n", - " print(cd)#allproducts\n", - " cd.features\n", - "\n", - "dictionaryCreatorPython('RyanTest.xml')" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "test", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.12" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} From 87ac2746805af1618a30ef487efa09339ab4b5dc Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Wed, 23 Jul 2025 09:55:06 -0600 Subject: [PATCH 047/118] Delete scripts/sbol2_assembly_output.xlsx.xlsx --- scripts/sbol2_assembly_output.xlsx.xlsx | Bin 6199 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 scripts/sbol2_assembly_output.xlsx.xlsx diff --git a/scripts/sbol2_assembly_output.xlsx.xlsx b/scripts/sbol2_assembly_output.xlsx.xlsx deleted file mode 100644 index da5aac1f12f6d42b6713d675926befd77352af1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6199 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 A^Z)<= From 243cd06526cd0c982ae54d6ebea4a24fd9e61800 Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Wed, 23 Jul 2025 09:55:24 -0600 Subject: [PATCH 048/118] Delete scripts/SBOL_xlsx5.xlsx --- scripts/SBOL_xlsx5.xlsx | Bin 6198 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 scripts/SBOL_xlsx5.xlsx diff --git a/scripts/SBOL_xlsx5.xlsx b/scripts/SBOL_xlsx5.xlsx deleted file mode 100644 index 6e7e34d369bdbfd8ad0162572d69f44f6da6a685..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6198 zcmZ`-1yGc2+g+rjmr_DNx*McBgaww)Md^}eX+&!2E)k@K1*JO#6hV;g4r!#MJN#FD zzt2zR{deYh?%AEW&d!|s+}CxVqo#z6LIeN+?jjxuz!|83S{(@hh(iGY2ob+PWE>q_ zEgW2pw7i@wpiekF?d?jEdcbX5K)F+eE14B`&}^mTUH+ZGP68Hn@sE><9q-H_nKm{* zG8Hd?53M7oRf^5O&q6z6L`m4mQ`jHo;It53=Q8r_36pFU$(U@ntFPdbE z$|T>`6WMA`jKur>L@y$ZX;j9!iw@&K#P$nzJNmH@2d?AyIa=UOOm%D_wQNqk&YNdi4G0Rb&<@Hqp2ErD-D~pGn+@m=Y+Y;*z<$8g25)FF zkQjn#M7T(_7h}?!BR4BFO$g6qimpY_1|N*L95Ah>3R4WlOvXPQJ1zlBkPbfJ9_uGn z5UE3{k&tbK_1TN)O;`FJ6RpTb8j%J^y`|;mQoYC+Ir}84gNk`k-LvVE@?m{66NLiv zSx@*q?&M86nW?S17_&>gPv^YL>4SZK9HEvu3tuvHKaqThIvT>^qxzeY(1l=|pOiEr zC?P|vo_3tSS@Cdmu{CvcwEZc|e;8_ghR~+$ZtzXeqz}6Ydw$ZF2AFiI{RNV=0feEJ zu6ic#<}v~X$At|BshY}f_Xf?aZu)%tOiAe0%32sffZ|PPw+=zgnyCxD4{V=?%%R6( z%G2qMoqF_mZ1b;EyF8(b*A!)T>fP4{@!+DX$c247R3#kF7U~)8F6;x>G2OQ~XB*)| z-i%bPsK6ZV(0N#E*8amh6uyC78gx!Jc$kdob=T%GZalOQ%w8E-C3kS9B?m_JqOjy< z#9r6GLKf;y^h#WG2BR%i43LY-q#u=B6zFedfUPA2SD~*ply{6syqukn@&0CL@o^>) z2f>ap8UR4@o1vfFK&>q-T%nx57Ve)UMQf|X&O9V)(%tlvoF$(*cQ^N`v40ef$EtnZ zNO&nEU(tH!(ZB*O;59x_SlCjnhV6Ck(O598!;*y9Q3kwz3g%PA#gMrb}1 zLCV{fvnNz;b0V#V@jNdo$N!-jq)W_h+!I-M?^Po){va^_x+l$@z)De(-|`U*MT_}G z%p)(N#fM54<9NHcka|$E7V;TGDd!WXC~9 zc#^6$!*cgz>e$uklu$m<4Bbzm;5Lzatw+w@yHxdbjLhsRAz0CAs1NgcBuz^25Yy@< z7a2_KWURx|Z2NUId&lIs>t-}=)Yz+imw~X(s5voOm+c)fqR!P;8Ry~*6)87J4THVNwGlZu2}Ijs8)l?GGutd19CW`6u_GrzDh~KG_$}`Y?Qh<_nG)wE5WMRk0{}ngFrv9Ztxa4k%r#wIY#gkh zzm9DpM5#>@82lCWM_c8td*V@`Lc%Z+ON6nMFYe5Cwf>}1W7XT84+1sW36V$61HB%4 z{k`pnZ**1wxcU4TIFFI&jWJpCrs$8Bece1%F}xj6bjKy7RsCHv=jYqQGWm*IVK3)( z@uE!B1J?vAiC@7hYrxR2qH{4OtNvJQNKHCyn1Q4thGZa22zl0^wX&l9N=wLUY+MJ^ z$Yg=-cTobHF!U#@(-8(zz0b+2px48+vQOn}OE^B&E-^N6iR!v^R+v?W-PjKZ9J^zc z%0$m}3*p)wc=kLs$}N5gdTtd*?Pr=n#m*oj=upg3FSMrw8yFJA{zMtHk&LDfjA9hK z+V&PtcRw$FgS{79X96t@lJfiSnT3 z%gm=N-0@kt3)H^}hZY?5BO^rq02Khh`G;^P`V;Js<|1Rc8+x(Q{djdeW#xIbg^4$g|J0FvCAUmT&Xo-Rl~URy{1F`&(i z8lT%Ra%h=Qx6+lzA7?@Xhqehzve^1yWLWRMhd7cO?XUxA zwgmm1EMqZKSK0^!t!;+ zjViiN@4+}8%^blqou3VcxH7aaN%V_uq`JnfO&-B~tfaJn_a#~>&$bEXk-xAQGUGC8 zO|zHEPHigoQj|l3vUb!u@S8n_S7w{cm1#w;n@^AMnmc{1G^bv(wpg1;DSDy_T}NH6 zC-JGiHn-p;Rv@f?eHQX!aWzT97A0Ep=OEkZ?$Z|>FX;IO3@_$eIZ61PgiRTdyC)i zUqf|AA2C#ANm^+4spMPgVhBb0O4CXnP2~l<&x|=3j4rpQPL4#0jrW?@HRPOx!C*{b zSOfyNcMC^BhTUcQOo24VoO>6vU7o!2mNRlhH9~Zm`-d<5&M4Lok}vUPLS+@YmupuI zi}l0W#i@n_ts!;j*I4XWiowhHmZA*yw(@yy7F%t29Lp-i31JVjV^ z7!XH&BE^+9$}5bIeIEw?I#*v^wO}-GUbf`j{IqVJ?aTtOeQEr*D$wncy?}T9ZNNc~ z_WWF$F0{up+RqI2!_bCnQ#3(KMf-c!Go6wRhY2N5kML8S<6S$C_k9HOkfqnGXE*uL za7c$$cHEF>WgvLDA*}Zf&)Rkx{`?(J+f0B`Qi+8wn5yWVVdS0|#|7X^U?g#Ld>XxZ zl%b^J+7pk&CB9Z?W)ga8#6$p&zurFUmO-Nf>fo5GZr z2MQm6aBuVIsp3SCnldpzpe$4!qrOLI%gKaq-J3;8z={mra?$kN@(H&%U)T4{yY`N0 zk_?)JJq`+>XWzNQ9^on|6M=U3F{sfh-zUAiYE<%VrKe(bP07WD%co#}Q%emm9lE>3 z!^?a(hvVGx6nE3f()5E2ZjS=f-Ckuj4AzEymQ0ohr2HNDBk=;|m?|L3UYL6Fap%XtrBW=MK(y4-z_)Dvg^n;x6BO=gkU|IVu@?amhU!xViK+7$k5vrU<-nZR`Km>+0?G76r#aK z5W_mpjAInO@YBq6Ye3F!roz2qxY=a~a-lWx|?^SsuzYS(AU zXeqLE((fqP+R|Cx^ZU6Ga2}WWIBbR$zv{cxL19b+Ks;yHD;^c>B8ce0UIYnLvcoSX4WSp7FecJ>n?(f3ck z#g*_KZ)46GjU;slr7bnThv%hYnc12pQ4|_u14;6Qrfcifs6#oDV57TOBoBD>v+oC1 zDrify`7Wk!f^buOS=ZwQ8Xjt0@<|3t7ii`@G*=~dZwXA*oX9GJ%FAWx7qTW^c_`pw zkmrrfDDTv%3GOlk)AG!AWlzC3$o@@%!$mm+xD$r0=Uk z1R#c|<1a=ToX#XS?(;dYJg-f6M1M||8+(tCK2Wx4kfqzPLI@=TlIF}@HYOltlv1n(Epr$5Bxz^x(IUH{{V4FgaNhLMmd?xSGX>_~) z2M<8}B*As-mc3kulcJCzZeV(dHc$KK=KGI%`t3CTSg2n<^Yf^bQX3bE|Kj@vKcW#mk(E^XhD>(~7Jb`+DR8aZ_Be4}fdl zB6er7hitYDk58)A!uc2IVhSd2?6R-2Ns~ooYFAL?dNKk&RJ&roUA*{!s zXAL$8Wvbyn^BoWVuC(u&MMO@0u3O|(-M(@;8MG$lG~!hr0fNP9Ci>+z3b2!ELmD0D z=$XS6jqHT6Yr~dZXD5UydqE7oC5a}*b&&-v!y8<~tR}j<88_d0#HcKRTytbQu+XtG zBW$YPwkyKFr)Pj|tUD8eT6M&I3m-wPxucnyi=z{i)6CJu;^)maBcbnSm;~EZXp&j+ zF=a%;)JXvOd*>1m$USs;*{s68L^Tys?HK#I)`s=C-C3;aYk#Ss%EUXR7p-14uF(fk z*(iJh(wnvNyOH|du>@4F?iKTrJ*!5Fh4&q6e`a6pXf5KsXBfATs4$%A0(ql-_oeCf zIVRDezUwz8j%ZD`_TidIo|`^{kEqlhdQ!%Ls3CP9M`L8GA7hHs?8I)N`7e+Nt7Qju zdc9nJBjB%jW7?LTE|`o>j&;8T-PyIQ`9ZYrS1Vs3J+qq!e*H%CA=;X6>*|*L(?Cw$ z6y?T-nu{Yel%;0kz01)l1ntWVoA>8WBDXIj>9_%NpT(G{R!0s^L(&3?>X=jW@(fo9 zK_KtLy&4LyaX*xI*KvM?c>YhmAF2*sA^lA&qhMsa4}w;Fgl7Q$FRdm{PQO`|vR&o^ z2JZ%6Bw9=28OV~{o9E1D@DOXq-F z(kC2d-NdTTJ)n;UzU;2|?V|MXvz%a)(J0jz7h#&hkDL2KrE5y)>#u;urG$^GG!6`= zUoRxLChi}Z%vanoD`HA^9`Joaj$>Q))xfF!zSm7;Tfj$cwZ2azU%=r#F*gF$2aW4( z1#{eaqRb95!P-~^mJ*mBc zkb2}XPWv~?vdqE;?%7?P*nK_*Gl3SIm^q!y`USb_F_T^HENJ$~8c74#QyN8LAfv%?I{s9PDwi zn`O>rXC&?~O78Y=HQ7bjzoF6EKd3qy$x_X5ByyY0MrHqA{6jH>EP|c z+o{=~!eqp0{Qonw+c>wgr9U`z2>Bs!{xxa3jdD9)_=9qRXuJQQ{3mR Date: Wed, 13 Aug 2025 11:13:36 -0600 Subject: [PATCH 049/118] Update utils.py --- src/pudu/utils.py | 242 ++++++++-------------------------------------- 1 file changed, 40 insertions(+), 202 deletions(-) diff --git a/src/pudu/utils.py b/src/pudu/utils.py index cf61fbf..59aa75b 100644 --- a/src/pudu/utils.py +++ b/src/pudu/utils.py @@ -112,168 +112,39 @@ def liquid_transfer(pipette, volume, source, destination, asp_rate:float=0.5, di row_letter_to_number = {'A':1, 'B':2, 'C':3, 'D':4, 'E':5, 'F':6, 'G':7, 'H':8} - -#Xml to uri dictionary -def dictionaryCreatorjson(file): - import sbol2 as sb2 - from flask import Flask, jsonify - app = Flask(__name__) - #given code from website - doc = sb2.Document() - doc.read(file) - #Loops through commponetDefinition - #for DNA - # Lists to store different components - BackBoneList = ['https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/ComponentDefinition_dvk_backbone_core/1'] - PartsList = ['https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/J23100/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/E0040m_gfp/1', - 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0032/1', 'https://charmme.synbiohub.org/user/Gonza10V/CIDARMoCloKit/B0015/1'] - RestrictionEnzymeList = ['https://charmme.synbiohub.org/user/Gonza10V/ligationtestforreal/ComponentDefinition_BsaI/1'] - # Flags to track duplicates - gotBone = False - gotZyme = False - # Output dictionary - outputDictionary = {"Parts": [], "Backbone": -1, "Restriction Enzyme": -1} - # Loop through component definitions - for cd in doc.componentDefinitions: - print(cd) - # Checks backbone - if cd in BackBoneList: - print(cd) - print("backbone") - if not gotBone: - outputDictionary["Backbone"] = cd - gotBone = True # Update flag - else: - print("You have more than one backbone") - return -1 - # Checks parts - if cd in PartsList: - print(cd) - print("got part") - outputDictionary["Parts"].append(cd) - # Checks enzymes - if cd in RestrictionEnzymeList: - print(cd) - print("Enzyme") - if not gotZyme: - outputDictionary["Restriction Enzyme"] = cd # Assign value - gotZyme = True # Update flag - else: - print("You have more than one restriction enzyme") - return -1 - # Error Checks - if len(outputDictionary["Parts"]) <= 1: - print("Invalid number of parts") - return -1 - if outputDictionary["Backbone"] == -1: - print("No Backbone found, try again") - return -1 - if outputDictionary["Restriction Enzyme"] == -1: - print("No Restriction Enzyme found, try again") - return -1 - #(outputDictionary) - response = jsonify(outputDictionary) - content = response.get_data(as_text=True) - - return content - -#same as before but no Json -#Change to add roles -def dictionaryCreatorPython(file): - import sbol2 as sb2 - #given code from website - doc = sb2.Document() - doc.read(file) - #Loops through commponetDefinition - #for DNA - # Lists to store different components - ProductRoleList = ['http://identifiers.org/so/SO:0000804'] - - #look at the roles for each - for cd in doc.componentDefinitions: - #check for role - if cd.role in ProductRoleList: - print(cd) - - - - # Output dictionary - outputAssemblies = [] - # Loop through component definitions - for cd in doc.componentDefinitions: - print(cd) - # Checks backbone - if cd in BackBoneList: - print(cd) - print("backbone") - if not gotBone: - outputDictionary["Backbone"] = cd - gotBone = True # Update flag - else: - print("You have more than one backbone") - return -1 - # Checks parts - if cd in PartsList: - print(cd) - print("got part") - outputDictionary["Parts"].append(cd) - # Checks enzymes - if cd in RestrictionEnzymeList: - print(cd) - print("Enzyme") - if not gotZyme: - outputDictionary["Restriction Enzyme"] = cd # Assign value - gotZyme = True # Update flag - else: - print("You have more than one restriction enzyme") - return -1 - # Error Checks - if len(outputDictionary["Parts"]) <= 1: - print("Invalid number of parts") - return -1 - if outputDictionary["Backbone"] == -1: - print("No Backbone found, try again") - return -1 - if outputDictionary["Restriction Enzyme"] == -1: - print("No Restriction Enzyme found, try again") - return -1 - #(outputDictionary) - response = outputDictionary - - return response - - -#NEW dictionary creator that goes through xml file -#reads roles and returns a list of dictionaries -def dictionaryListCreatorPython(file): - import sbol2 as sb2 - import json - - # Disable typed URIs for cleaner URI strings +def assembly_plan_RDF_to_JSON(file): sb2.Config.setOption('sbol_typed_uris', False) - - # Read the SBOL document doc = sb2.Document() doc.read(file) # Known SO roles - PRODUCT_ROLE = 'http://identifiers.org/so/SO:0000804' # composite product - PLASMID_ROLE = 'https://identifiers.org/SO:0000755' # plasmid/backbone - - # SBOL type for Protein - PROTEIN_TYPE = sb2.BIOPAX_PROTEIN # URI for proteins + PRODUCT_ROLE = 'http://identifiers.org/so/SO:0000804' + BackBone_ROLE = 'http://identifiers.org/so/SO:0000755' + ENZYME_ROLE = 'http://identifiers.org/obi/OBI:0000732' + + PARTS_ROLE_LIST = [ + 'http://identifiers.org/so/SO:0000031', 'http://identifiers.org/so/SO:0000316', + 'http://identifiers.org/so/SO:0001977', 'http://identifiers.org/so/SO:0001956', + 'http://identifiers.org/so/SO:0000188', 'http://identifiers.org/so/SO:0000839', + 'http://identifiers.org/so/SO:0000167', 'http://identifiers.org/so/SO:0000139', + 'http://identifiers.org/so/SO:0001979', 'http://identifiers.org/so/SO:0001955', + 'http://identifiers.org/so/SO:0001546', 'http://identifiers.org/so/SO:0001263', + 'http://identifiers.org/SO:0000141', 'http://identifiers.org/so/SO:0000141' + ] product_dicts = [] - globalEnzyme = None + for cd in doc.componentDefinitions: - # Detect restriction enzyme by Protein type - #create a filler variable - if PROTEIN_TYPE in cd.types: + print(f"\n🔍 Checking Component: {cd.displayId}") + print(f" Types: {cd.types}") + print(f" Roles: {cd.roles}") + + if ENZYME_ROLE in cd.roles: globalEnzyme = cd.identity + print(f"✅ Found enzyme definition: {globalEnzyme}") if PRODUCT_ROLE in cd.roles: - #create new dict for every product result = { 'Product': cd.identity, 'Backbone': None, @@ -282,66 +153,33 @@ def dictionaryListCreatorPython(file): } for comp in cd.components: - sub_def_uri = comp.definition - sub_cd = doc.componentDefinitions.get(sub_def_uri) - + sub_cd = doc.componentDefinitions.get(comp.definition) if sub_cd is None: + print(f"⚠️ Component definition for {comp.displayId} not found.") continue - roles = sub_cd.roles - display_id = sub_cd.displayId or "" + print(f" → Subcomponent: {sub_cd.displayId}") + print(f" Roles: {sub_cd.roles}") - #print(f"{display_id} roles: {roles} types: {types}") + if BackBone_ROLE in sub_cd.roles: + result['Backbone'] = sub_cd.identity + print(f" 🧬 Assigned Backbone: {sub_cd.identity}") - # Detect backbone by SO role - if PLASMID_ROLE in roles: - result['Backbone'] = sub_def_uri - result['PartsList'].append(sub_def_uri) + if any(role in PARTS_ROLE_LIST for role in sub_cd.roles): + result['PartsList'].append(sub_cd.identity) + print(f" 🧩 Added Part: {sub_cd.identity}") - # Default case: treat as regular part - else: - result['PartsList'].append(sub_def_uri) + if not result['Backbone']: + print(f"⚠️ No backbone found for product {cd.displayId}") + if not result['PartsList']: + print(f"⚠️ No parts found for product {cd.displayId}") product_dicts.append(result) - #add enzymes to each dictionary - for dict in product_dicts: - dict['Restriction Enzyme'] = globalEnzyme - - return product_dicts - + for entry in product_dicts: + entry['Restriction Enzyme'] = globalEnzyme -def test_golden_gate(self): - pro_doc = sb2.Document() - pro_doc.read('pro_in_bb.xml') + with open('output.json', 'w') as json_file: + json.dump(product_dicts, json_file, indent=4) - #where I am working adding 2 and 3 - pro2_doc = sb2.Document() - pro2_doc.read('pro2_in_bb.xml') #add document - - pro3_doc = sb2.Document() - pro3_doc.read('pro3_in_bb.xml') #add document - - rbs_doc = sb2.Document() - rbs_doc.read('rbs_in_bb.xml') - - cds_doc = sb2.Document() - cds_doc.read('cds_in_bb.xml') - - ter_doc = sb2.Document() - ter_doc.read('terminator_in_bb.xml') - - bb_doc = sb2.Document() - bb_doc.read('backbone.xml') - - part_docs = [pro_doc, rbs_doc, cds_doc, ter_doc] - - assembly_doc = sb2.Document() - assembly_obj = golden_gate_assembly_plan('testassem', part_docs, bb_doc, 'BsaI', assembly_doc) - - composites = assembly_obj.run() - - assembly_doc.write('validation_assembly.xml') - - sbol_validation_result = assembly_doc.validate() - self.assertEqual(sbol_validation_result, 'Valid.', 'Assembly SBOL validation failed') \ No newline at end of file + return product_dicts From c465eb200f9ce7c23ceac034d10d3c73746a8f06 Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Wed, 20 Aug 2025 11:06:49 -0600 Subject: [PATCH 050/118] Update utils.py --- src/pudu/utils.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pudu/utils.py b/src/pudu/utils.py index 59aa75b..631a6ed 100644 --- a/src/pudu/utils.py +++ b/src/pudu/utils.py @@ -1,4 +1,4 @@ - +import sbol2 thermo_wells = [ 'A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11','A12', @@ -113,8 +113,8 @@ def liquid_transfer(pipette, volume, source, destination, asp_rate:float=0.5, di row_letter_to_number = {'A':1, 'B':2, 'C':3, 'D':4, 'E':5, 'F':6, 'G':7, 'H':8} def assembly_plan_RDF_to_JSON(file): - sb2.Config.setOption('sbol_typed_uris', False) - doc = sb2.Document() + sbol2.Config.setOption('sbol_typed_uris', False) + doc = sbol2.Document() doc.read(file) # Known SO roles From 2d9351ce49c3a7a91399e87250434f588e556ab0 Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Wed, 27 Aug 2025 11:48:42 -0600 Subject: [PATCH 051/118] Update utils.py --- src/pudu/utils.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pudu/utils.py b/src/pudu/utils.py index 631a6ed..a628d14 100644 --- a/src/pudu/utils.py +++ b/src/pudu/utils.py @@ -1,4 +1,5 @@ import sbol2 +import json thermo_wells = [ 'A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11','A12', From 1b9ad45295e4b17f75dc2455a87d57178fa57f2d Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Fri, 29 Aug 2025 14:59:53 -0600 Subject: [PATCH 052/118] Added yml file for github action --- .github/workflows/python-package.yml | 40 ++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .github/workflows/python-package.yml diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml new file mode 100644 index 0000000..4772a57 --- /dev/null +++ b/.github/workflows/python-package.yml @@ -0,0 +1,40 @@ +name: Python package + +on: + push: + pull_request: + workflow_dispatch: + schedule: + - cron: '0 0 * * *' + +jobs: + build: + + runs-on: [ubuntu-latest] + strategy: + fail-fast: false + matrix: + python-version: ["3.10", "3.11"] + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install flake8 pytest opentrons + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + + - name: Lint with flake8 + run: | + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + + - name: Test scripts with opentrons_simulate + run: | + pytest -v \ No newline at end of file From 5d0c7c01ece8d47766777c2757fa5ab1cb760221 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Fri, 29 Aug 2025 15:11:01 -0600 Subject: [PATCH 053/118] Deleted test_setup.py and replaced with sample_preparation.py (test in name was causing an issue with github action). Modified init and utils.py to work with refactor --- src/pudu/__init__.py | 2 +- src/pudu/sample_preparation.py | 415 +++++++++++++++++++++++++++++++++ src/pudu/test_setup.py | 214 ----------------- src/pudu/utils.py | 415 ++++++++++++++++++++++++--------- 4 files changed, 723 insertions(+), 323 deletions(-) create mode 100644 src/pudu/sample_preparation.py delete mode 100644 src/pudu/test_setup.py diff --git a/src/pudu/__init__.py b/src/pudu/__init__.py index 0681205..649a7da 100644 --- a/src/pudu/__init__.py +++ b/src/pudu/__init__.py @@ -1,5 +1,5 @@ from .assembly import * from .calibration import * -from .test_setup import * +from .sample_preparation import * from .transformation import * from .utils import * diff --git a/src/pudu/sample_preparation.py b/src/pudu/sample_preparation.py new file mode 100644 index 0000000..3649624 --- /dev/null +++ b/src/pudu/sample_preparation.py @@ -0,0 +1,415 @@ +from opentrons import protocol_api +from typing import List, Union, Optional, Tuple +from abc import ABC, abstractmethod +import math +from utils import colors + + +class SamplePreparation(ABC): + """ + Abstract base class for all Sample Preparation protocols with shared functionality. + """ + + def __init__(self, + test_labware: str = 'corning_96_wellplate_360ul_flat', + test_position: str = '2', + aspiration_rate: float = 0.5, + dispense_rate: float = 1.0, + tiprack_labware: str = 'opentrons_96_filtertiprack_200ul', + tiprack_position: str = '9', + starting_tip: Optional[str] = None, + pipette: str = 'p300_single_gen2', + pipette_position: str = 'right', + use_temperature_module: bool = False, + temperature: int = 4, + **kwargs): + self.test_labware = test_labware + self.test_position = test_position + self.aspiration_rate = aspiration_rate + self.dispense_rate = dispense_rate + self.tiprack_labware = tiprack_labware + self.tiprack_position = tiprack_position + self.starting_tip = starting_tip + self.pipette = pipette + self.pipette_position = pipette_position + self.use_temperature_module = use_temperature_module + self.temperature = temperature + + # Protocol tracking + self.result_dict = {} + self.liquid_tracker = {} + + @abstractmethod + def run(self, protocol: protocol_api.ProtocolContext): + """Abstract method that must be implemented by subclasses.""" + pass + + def _load_standard_labware(self, protocol: protocol_api.ProtocolContext): + """Load standard labware common to all protocols.""" + tiprack = protocol.load_labware(self.tiprack_labware, self.tiprack_position) + pipette = protocol.load_instrument(self.pipette, self.pipette_position, tip_racks=[tiprack]) + + if self.starting_tip: + pipette.starting_tip = tiprack[self.starting_tip] + + plate = protocol.load_labware(self.test_labware, self.test_position) + + return tiprack, pipette, plate + + def _load_source_labware(self, protocol: protocol_api.ProtocolContext, + temp_module_position: str = '1', + temp_module_labware: str = 'opentrons_24_aluminumblock_nest_1.5ml_snapcap', + tube_rack_position: str = '3', + tube_rack_labware: str = 'opentrons_24_tuberack_nest_1.5ml_snapcap'): + """Load source tube labware with optional temperature control.""" + + if self.use_temperature_module: + temperature_module = protocol.load_module('Temperature Module', temp_module_position) + source_rack = temperature_module.load_labware(temp_module_labware) + temperature_module.set_temperature(self.temperature) + else: + source_rack = protocol.load_labware(tube_rack_labware, tube_rack_position) + + return source_rack + + def _create_slots(self, plate, replicates: int = 4): + """ + Create well groupings for sample distribution. + Flexible slot creation based on plate size and replicate requirements. + """ + columns = plate.columns() + + middle_columns = columns[1:-1] + edge_columns = [columns[0], columns[-1]] + slots = [] + + # All top halves of middle columns first + slots.extend(col[:len(col) // 2] for col in middle_columns) + # Bottom halves of middle columns + slots.extend(col[len(col) // 2:] for col in middle_columns) + # edge/buffer columns (both halves) + for col in edge_columns: + slots.extend([col[:len(col) // 2], col[len(col) // 2:]]) + + return slots + + def _validate_plate_capacity(self, required_wells: int, plate): + """Validate that plate has sufficient wells for the protocol.""" + available_wells = len(plate.wells()) + if required_wells > available_wells: + raise ValueError(f'Protocol requires {required_wells} wells but plate only has {available_wells}') + + def _define_liquid(self, protocol: protocol_api.ProtocolContext, + name: str, description: str, color_index: int = 0): + """Define and track a liquid for the protocol.""" + color = colors[color_index % len(colors)] + liquid = protocol.define_liquid(name=name, description=description, display_color=color) + self.liquid_tracker[name] = liquid + return liquid + + +class PlateSamples(SamplePreparation): + """ + Distributes multiple samples across a plate with replicates. + Each sample gets distributed to a specified number of wells. + """ + + def __init__(self, samples: List[str], + sample_volume: float = 200, + sample_stock_volume: float = 1200, + replicates: int = 4, + starting_slot: int = 1, + temp_module_position: str = '1', + temp_module_labware: str = 'opentrons_24_aluminumblock_nest_1.5ml_snapcap', + tube_rack_position: str = '3', + tube_rack_labware: str = 'opentrons_24_tuberack_nest_1.5ml_snapcap', + **kwargs): + super().__init__(**kwargs) + self.samples = samples + self.sample_volume = sample_volume + self.sample_stock_volume = sample_stock_volume + self.replicates = replicates + self.starting_slot = starting_slot + self.temp_module_position = temp_module_position + self.temp_module_labware = temp_module_labware + self.tube_rack_position = tube_rack_position + self.tube_rack_labware = tube_rack_labware + + self.source_positions = {} + self.plate_layout = {} + + def run(self, protocol: protocol_api.ProtocolContext): + # Load labware + tiprack, pipette, plate = self._load_standard_labware(protocol) + source_rack = self._load_source_labware( + protocol, self.temp_module_position, self.temp_module_labware, + self.tube_rack_position, self.tube_rack_labware + ) + + # Create slots and validate + slots = self._create_slots(plate, self.replicates) + required_wells = len(self.samples) * self.replicates + self._validate_plate_capacity(required_wells, plate) + + if len(self.samples) > len(source_rack.wells()): + raise ValueError( + f'Too many samples ({len(self.samples)}) for source rack ({len(source_rack.wells())} wells)') + + if len(self.samples) > len(slots[self.starting_slot - 1:]): + raise ValueError(f'Too many samples ({len(self.samples)}) for available slots') + + # Load samples into source rack + sample_wells = self._load_samples(protocol, source_rack) + + # Distribute samples to plate + slot_counter = self.starting_slot - 1 + for source_well, sample in sample_wells: + dest_wells = slots[slot_counter][:self.replicates] + pipette.distribute( + volume=self.sample_volume, + source=source_well, + dest=dest_wells, + disposal_volume=0 + ) + self.plate_layout[sample] = [well.well_name for well in dest_wells] + slot_counter += 1 + + # Store results + self.result_dict = { + 'source_positions': self.source_positions, + 'plate_layout': self.plate_layout + } + + print('Sample Distribution Protocol Complete') + print(f'Source positions: {self.source_positions}') + print(f'Plate layout: {self.plate_layout}') + + def _load_samples(self, protocol: protocol_api.ProtocolContext, source_rack): + """Load samples into source rack with liquid tracking.""" + sample_wells = [] + for i, sample in enumerate(self.samples): + liquid = self._define_liquid(protocol, sample, f"Sample: {sample}", i) + well = source_rack.wells()[i] + well.load_liquid(liquid=liquid, volume=self.sample_stock_volume) + self.source_positions[sample] = well.well_name + sample_wells.append((well, sample)) + return sample_wells + + +class PlateWithGradient(SamplePreparation): + """ + Creates serial dilution gradients of an inducer with a sample. + Implements proper well-to-well serial dilution. + """ + + def __init__(self, + sample_name: str, + inducer_name: str, + initial_concentration: float = 1.0, + dilution_factor: float = 2.0, + dilution_steps: int = 8, + replicates: int = 3, + starting_row: str = 'A', + final_well_volume: float = 200, + initial_mix_ratio: float = 0.5, # fraction of inducer in initial mix + transfer_volume: float = 100, # volume transferred in each dilution step + sample_stock_volume: float = 1200, + inducer_stock_volume: float = 1200, + temp_module_position: str = '1', + temp_module_labware: str = 'opentrons_24_aluminumblock_nest_1.5ml_snapcap', + tube_rack_position: str = '3', + tube_rack_labware: str = 'opentrons_24_tuberack_nest_1.5ml_snapcap', + **kwargs): + + super().__init__(**kwargs) + self.sample_name = sample_name + self.inducer_name = inducer_name + self.initial_concentration = initial_concentration + self.dilution_factor = dilution_factor + self.dilution_steps = dilution_steps + self.replicates = replicates + self.starting_row = starting_row + self.final_well_volume = final_well_volume + self.initial_mix_ratio = initial_mix_ratio + self.transfer_volume = transfer_volume + self.sample_stock_volume = sample_stock_volume + self.inducer_stock_volume = inducer_stock_volume + self.temp_module_position = temp_module_position + self.temp_module_labware = temp_module_labware + self.tube_rack_position = tube_rack_position + self.tube_rack_labware = tube_rack_labware + + # Calculated properties + self.concentration_series = self._calculate_concentrations() + self.required_volumes = self._calculate_required_volumes() + self.source_positions = {} + self.plate_layout = {} + self.concentration_map = {} + + def _calculate_concentrations(self) -> List[float]: + """Calculate the concentration at each dilution step.""" + concentrations = [] + current_conc = self.initial_concentration + for step in range(self.dilution_steps + 1): # +1 for initial concentration + concentrations.append(current_conc) + current_conc = current_conc / self.dilution_factor + return concentrations + + def _calculate_required_volumes(self) -> dict: + """Calculate required stock volumes with safety margin.""" + # Initial mix volume per replicate + initial_mix_volume = self.final_well_volume + total_initial_mix = initial_mix_volume * self.replicates + + # Sample volume needed (including initial mix and pre-filling wells) + sample_per_well = self.final_well_volume - self.transfer_volume + sample_for_prefill = sample_per_well * self.dilution_steps * self.replicates + sample_for_initial = total_initial_mix * (1 - self.initial_mix_ratio) + total_sample = sample_for_prefill + sample_for_initial + + # Inducer volume needed + inducer_for_initial = total_initial_mix * self.initial_mix_ratio + total_inducer = inducer_for_initial + + # Add 20% safety margin and round up + safety_factor = 1.2 + return { + 'sample': math.ceil(total_sample * safety_factor), + 'inducer': math.ceil(total_inducer * safety_factor) + } + + def _row_letter_to_index(self, letter: str) -> int: + """Convert row letter to 0-based index.""" + return ord(letter.upper()) - ord('A') + + def run(self, protocol: protocol_api.ProtocolContext): + # Load labware + tiprack, pipette, plate = self._load_standard_labware(protocol) + source_rack = self._load_source_labware( + protocol, self.temp_module_position, self.temp_module_labware, + self.tube_rack_position, self.tube_rack_labware + ) + + # Validate plate capacity + required_wells = self.replicates * (self.dilution_steps + 1) + self._validate_plate_capacity(required_wells, plate) + + # Load stocks + self._load_stocks(protocol, source_rack) + + # Get source wells + sample_well = source_rack.wells()[0] + inducer_well = source_rack.wells()[1] + + # Calculate layout + start_row_idx = self._row_letter_to_index(self.starting_row) + + # Pre-fill wells with sample (diluent) + self._prefill_wells(pipette, plate, sample_well, start_row_idx) + + # Create initial mixes and perform serial dilutions + self._create_gradients(pipette, plate, sample_well, inducer_well, start_row_idx) + + # Store results + self.result_dict = { + 'source_positions': self.source_positions, + 'plate_layout': self.plate_layout, + 'concentration_map': self.concentration_map, + 'concentration_series': self.concentration_series, + 'required_volumes': self.required_volumes + } + + print('Serial Dilution Protocol Complete') + print(f'Concentration series: {self.concentration_series}') + print(f'Required volumes: {self.required_volumes}') + print(f'Source positions: {self.source_positions}') + print(f'Concentration map: {self.concentration_map}') + + def _load_stocks(self, protocol: protocol_api.ProtocolContext, source_rack): + """Load sample and inducer stocks.""" + # Sample stock + sample_liquid = self._define_liquid(protocol, self.sample_name, + f"Sample: {self.sample_name}", 0) + sample_well = source_rack.wells()[0] + sample_well.load_liquid(liquid=sample_liquid, volume=self.sample_stock_volume) + self.source_positions[self.sample_name] = sample_well.well_name + + # Inducer stock + inducer_liquid = self._define_liquid(protocol, self.inducer_name, + f"Inducer: {self.inducer_name}", 1) + inducer_well = source_rack.wells()[1] + inducer_well.load_liquid(liquid=inducer_liquid, volume=self.inducer_stock_volume) + self.source_positions[self.inducer_name] = inducer_well.well_name + + def _prefill_wells(self, pipette, plate, sample_well, start_row_idx): + """Pre-fill wells with sample to serve as diluent.""" + diluent_volume = self.final_well_volume - self.transfer_volume + + for rep in range(self.replicates): + row_idx = start_row_idx + rep + row = plate.rows()[row_idx] + + # Pre-fill wells 2 through dilution_steps+1 (skip first well for initial mix) + dest_wells = row[1:self.dilution_steps + 1] + + pipette.distribute( + volume=diluent_volume, + source=sample_well, + dest=dest_wells, + disposal_volume=0 + ) + + def _create_gradients(self, pipette, plate, sample_well, inducer_well, start_row_idx): + """Create initial mixes and perform serial dilutions.""" + + # Calculate initial mix volumes + initial_sample_vol = self.final_well_volume * (1 - self.initial_mix_ratio) + initial_inducer_vol = self.final_well_volume * self.initial_mix_ratio + + for rep in range(self.replicates): + row_idx = start_row_idx + rep + row = plate.rows()[row_idx] + + # Create initial mix in first well + first_well = row[0] + + # Add sample to first well + pipette.transfer( + volume=initial_sample_vol, + source=sample_well, + dest=first_well, + new_tip='always' + ) + + # Add inducer to first well and mix + pipette.transfer( + volume=initial_inducer_vol, + source=inducer_well, + dest=first_well, + mix_after=(3, self.final_well_volume * 0.5), + new_tip='always' + ) + + # Perform serial dilution across the row + for step in range(self.dilution_steps): + source_well = row[step] + dest_well = row[step + 1] + + pipette.transfer( + volume=self.transfer_volume, + source=source_well, + dest=dest_well, + mix_after=(3, self.final_well_volume * 0.5), + new_tip='always' + ) + + # Record layout and concentrations for this replicate + for step in range(self.dilution_steps + 1): + well_name = row[step].well_name + concentration = self.concentration_series[step] + + if f'replicate_{rep}' not in self.plate_layout: + self.plate_layout[f'replicate_{rep}'] = [] + + self.plate_layout[f'replicate_{rep}'].append(well_name) + self.concentration_map[well_name] = concentration diff --git a/src/pudu/test_setup.py b/src/pudu/test_setup.py deleted file mode 100644 index b39bf03..0000000 --- a/src/pudu/test_setup.py +++ /dev/null @@ -1,214 +0,0 @@ -from opentrons import protocol_api -from typing import List, Union -from pudu.utils import thermo_wells, temp_wells, liquid_transfer, slots, rows, row_letter_to_number - -class Test_setup(): - ''' - Creates a protocol for the automated setting of a 96 well plate with a gradient of inducer. - - ''' - def __init__(self, - test_labware:str = 'corning_96_wellplate_360ul_flat', - test_position:int = 7, - aspiration_rate:float=0.5, - dispense_rate:float=1,): - - self.test_labware = test_labware - self.test_position = test_position - self.aspiration_rate = aspiration_rate - self.dispense_rate = dispense_rate - -class Plate_samples(Test_setup): - ''' - Creates a protocol for the automated setting of a 96 well plate from samples. Each sample is distributed in 4 wells of the plate. - ''' - def __init__(self,samples:List, - sample_tube_volume:float = 1200, - sample_well_volume:float = 200, - tube_rack_labware:str = 'opentrons_24_aluminumblock_nest_1.5ml_snapcap', - tube_rack_position:int = 4, - tiprack_labware:str='opentrons_96_tiprack_300ul', - tiprack_position:int=9, - pipette:str='p300_single_gen2', - pipette_position:str='right', - use_temperature_module:bool = False, - *args, **kwargs): - super().__init__(*args, **kwargs) - - self.samples = samples - self.sample_tube_volume = sample_tube_volume - self.sample_well_volume = sample_well_volume - self.tube_rack_labware = tube_rack_labware - self.tube_rack_position = tube_rack_position - self.tiprack_labware = tiprack_labware - self.tiprack_position = tiprack_position - self.pipette = pipette - self.pipette_position = pipette_position - self.use_temperature_module = use_temperature_module - self.dict_of_samples_in_plate = {} - self.dict_of_samples_in_temp_mod_position = {} - - if len(self.samples) > 24: - raise ValueError(f'Number of samples cant be greater than 24, you have {len(self.samples)}') - - def run(self, protocol: protocol_api.ProtocolContext): - - #Labware - tiprack = protocol.load_labware(self.tiprack_labware, f'{self.tiprack_position}') - pipette = protocol.load_instrument(self.pipette, self.pipette_position, tip_racks=[tiprack]) - plate = protocol.load_labware(self.test_labware, self.test_position) - - if self.use_temperature_module: - temperature_module = protocol.load_module('Temperature Module', self.tube_rack_position) - tube_rack = temperature_module.load_labware(self.tube_rack_labware) - else: - tube_rack = protocol.load_labware(self.tube_rack_labware, self.tube_rack_position) - - #Protocol - - #Load samples - temp_wells_counter = 0 - for sample in self.samples: - self.dict_of_samples_in_temp_mod_position[sample] = temp_wells[temp_wells_counter] - pipette.pick_up_tip() - for position in slots[temp_wells_counter]: - liquid_transfer(pipette, self.sample_well_volume, tube_rack[self.dict_of_samples_in_temp_mod_position[sample]], plate[position], self.aspiration_rate, self.dispense_rate, mix_before=self.sample_well_volume, mix_after=self.sample_well_volume/2, new_tip=False, drop_tip=False) - pipette.drop_tip() - self.dict_of_samples_in_plate[sample] = slots[temp_wells_counter] - temp_wells_counter += 1 - - #output - print('Samples in tube rack') - print(self.dict_of_samples_in_temp_mod_position) - print('Samples in plate') - print(self.dict_of_samples_in_plate) - #END - - - -class Plate_supplemented_samples(Test_setup): - ''' - Creates a protocol for the automated setting of a 96 well plate with a gradient of inducer. - - ''' - def __init__(self,sample_name:str, - inducer_name:str, - inducer_initial_concentration:float = 1, - initial_mix_inducer_volume:float = 50.0, - initial_mix_sample_volume:float = 50.0, - serial_dilution_volume:float = 20, - serial_dilution_steps:int = 10, - number_of_replicates:int = 3, - starting_row:str = 'A', - sample_volume_plate:float = 200, - sample_labware:str = '96 well plate', - aspiration_rate:float=0.5, - dispense_rate:float=1, - tube_rack_labware:str = 'opentrons_24_aluminumblock_nest_1.5ml_snapcap', - tube_rack_position:int = 4, - tiprack_labware:str='opentrons_96_tiprack_300ul', - tiprack_position:int=9, - pipette:str='p300_single_gen2', - pipette_position:str='left', - use_temperature_module:bool = False, - *args, **kwargs): - super().__init__(*args, **kwargs) - - self.sample_name = sample_name - self.inducer_name = inducer_name - self.inducer_initial_concentration = inducer_initial_concentration - self.initial_mix_sample_volume = initial_mix_sample_volume - self.initial_mix_inducer_volume = initial_mix_inducer_volume - self.serial_dilution_volume = serial_dilution_volume - self.serial_dilution_steps = serial_dilution_steps - self.number_of_replicates = number_of_replicates - self.starting_row = starting_row - self.sample_volume_plate = sample_volume_plate - self.sample_labware = sample_labware - self.aspiration_rate = aspiration_rate - self.dispense_rate = dispense_rate - self.tube_rack_labware = tube_rack_labware - self.tube_rack_position = tube_rack_position - self.tiprack_labware = tiprack_labware - self.tiprack_position = tiprack_position - self.pipette = pipette - self.pipette_position = pipette_position - self.use_temperature_module = use_temperature_module - self.dict_of_samples_in_plate = {} - self.dict_of_tubes_in_temp_mod_position = {} - - if self.serial_dilution_steps == 0: - raise ValueError('Number of serial dilution steps must be greater than 0') - if self.number_of_replicates < 3: - raise Warning('Number of replicates must be greater than 3 for statistical analysis') - if self.number_of_replicates > 8: - raise ValueError('Number of replicates must be less than 8 to fit in the 96 well plate') - - def run(self, protocol: protocol_api.ProtocolContext): - - #Labware - tiprack = protocol.load_labware(self.tiprack_labware, f'{self.tiprack_position}') - pipette = protocol.load_instrument(self.pipette, self.pipette_position, tip_racks=[tiprack]) - plate = protocol.load_labware(self.test_labware, self.test_position) - - if self.use_temperature_module: - temperature_module = protocol.load_module('Temperature Module', self.tube_rack_position) - tube_rack = temperature_module.load_labware(self.tube_rack_labware) - else: - tube_rack = protocol.load_labware(self.tube_rack_labware, self.tube_rack_position) - - # Protocol - - # Load inducer - temp_wells_counter = 0 - self.dict_of_tubes_in_temp_mod_position[self.inducer_name] = temp_wells[temp_wells_counter] - temp_wells_counter += 1 - - # Load samples and distribute them in the plate - start_at_row = row_letter_to_number[self.starting_row] - 1 - - for replicate_number in range(self.number_of_replicates + 1): - working_row_index = start_at_row + replicate_number - self.dict_of_tubes_in_temp_mod_position[f'replicate_{replicate_number}'] = temp_wells[temp_wells_counter] - pipette.pick_up_tip() - for dilution_step in range(self.serial_dilution_steps): - position = rows[working_row_index][dilution_step+1] - liquid_transfer(pipette, self.sample_volume_plate, tube_rack[self.dict_of_tubes_in_temp_mod_position[f'replicate_{replicate_number}']], plate[position], self.aspiration_rate, self.dispense_rate, new_tip=False, drop_tip=False) - pipette.drop_tip() - temp_wells_counter += 1 - working_row_index += 1 - - - # Create initial mix on the first row - initial_mix_position = rows[start_at_row][0] - self.dict_of_samples_in_plate['initial_mix'] = initial_mix_position - #pipette sample to initial mix - liquid_transfer(pipette, self.initial_mix_sample_volume, tube_rack[self.dict_of_tubes_in_temp_mod_position['replicate_1']], plate[initial_mix_position], self.aspiration_rate, self.dispense_rate) - #pipette inducer to initial mix - liquid_transfer(pipette, self.initial_mix_inducer_volume, tube_rack[self.dict_of_tubes_in_temp_mod_position[self.inducer_name]], plate[initial_mix_position], self.aspiration_rate, self.dispense_rate,mix_after=self.initial_mix_sample_volume/2) - - # Serial dilution - for replicate_number in range(self.number_of_replicates): - working_row_index = start_at_row + replicate_number - pipette.pick_up_tip() - for dilution_step in range(self.serial_dilution_steps): - position = rows[working_row_index][dilution_step+1] - liquid_transfer(pipette, self.serial_dilution_volume, tube_rack[self.dict_of_tubes_in_temp_mod_position[f'replicate_{replicate_number}']], plate[position], self.aspiration_rate, self.dispense_rate, mix_before=self.sample_volume_plate/2, new_tip=False, drop_tip=False) - self.dict_of_samples_in_plate[f'replicate_{replicate_number}_dilution{dilution_step}'] = position - pipette.drop_tip() - working_row_index += 1 - - #output - print('Samples and inducer in tube rack') - print(self.dict_of_tubes_in_temp_mod_position) - print('Samples in plate') - print(self.dict_of_samples_in_plate) - #END - - - -class Doe_test(Test_setup): - ''' - Creates a protocol for the automated setting of a 96 well plate with a gradient of inducer. - - ''' diff --git a/src/pudu/utils.py b/src/pudu/utils.py index 2e490cb..ecd4a67 100644 --- a/src/pudu/utils.py +++ b/src/pudu/utils.py @@ -1,113 +1,312 @@ +import subprocess +import time +from typing import Optional - -thermo_wells = [ -'A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11','A12', -'B1','B2','B3','B4','B5','B6','B7','B8','B9','B10','B11','B12', -'C1','C2','C3','C4','C5','C6','C7','C8','C9','C10','C11','C12', -'D1','D2','D3','D4','D5','D6','D7','D8','D9','D10','D11','D12', -'E1','E2','E3','E4','E5','E6','E7','E8','E9','E10','E11','E12', -'F1','F2','F3','F4','F5','F6','F7','F8','F9','F10','F11','F12', -'G1','G2','G3','G4','G5','G6','G7','G8','G9','G10','G11','G12', -'H1','H2','H3','H4','H5','H6','H7','H8','H9','H10','H11','H12' +colors = [ + "#4040BF", # Blue + "#BF4040", # Red + "#40BF40", # Green + "#A640BF", # Purple + "#BFBF40", # Yellow + "#BF7340", # Orange + "#40BFBF", # Cyan + "#BF40A6", # Magenta + "#73BF40", # Lime green + "#4073BF", # Blue-cyan + "#BF8C40", # Orange-yellow + "#40BF73", # Green-cyan + "#7340BF", # Blue-purple + "#A6BF40", # Yellow-green + "#BF5940", # Red-orange + "#40A6BF", # Cyan-blue + "#BF4073", # Red-purple + "#59BF40", # Green + "#BFA640", # Orange-yellow + "#40BFA6", # Cyan-green + "#8CBF40", # Yellow-green + "#40BF59", # Green + "#40BF8C", # Green-cyan + "#BF40A6" # Purple-magenta ] -temp_wells = [ -'A1','A2','A3','A4','A5','A6', -'B1','B2','B3','B4','B5','B6', -'C1','C2','C3','C4','C5','C6', -'D1','D2','D3','D4','D5','D6' -] +class Camera: + """ + Camera class for handling picture and video capture during Opentrons protocols. -plate_96_wells = [ -'A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11','A12', -'B1','B2','B3','B4','B5','B6','B7','B8','B9','B10','B11','B12', -'C1','C2','C3','C4','C5','C6','C7','C8','C9','C10','C11','C12', -'D1','D2','D3','D4','D5','D6','D7','D8','D9','D10','D11','D12', -'E1','E2','E3','E4','E5','E6','E7','E8','E9','E10','E11','E12', -'F1','F2','F3','F4','F5','F6','F7','F8','F9','F10','F11','F12', -'G1','G2','G3','G4','G5','G6','G7','G8','G9','G10','G11','G12', -'H1','H2','H3','H4','H5','H6','H7','H8','H9','H10','H11','H12' -] + This class encapsulates all camera functionality including: + - Taking snapshots at specific protocol steps + - Recording video during protocol execution + - Handling simulation mode gracefully + - Managing ffmpeg processes + """ + + def __init__(self, video_size: str = "320x240", picture_size: str = "640x480", + video_device: str = "/dev/video0", storage_path: str = "/data/user_storage"): + """ + Initialize Camera with configuration options. + + Args: + video_size: Resolution for video recording (default: "320x240") + picture_size: Resolution for picture capture (default: "640x480") + video_device: Video device path (default: "/dev/video0") + storage_path: Path where media files will be saved (default: "/data/user_storage") + """ + self.video_size = video_size + self.picture_size = picture_size + self.video_device = video_device + self.storage_path = storage_path + self._active_video_process: Optional[subprocess.Popen] = None + + def cleanup_ffmpeg_processes(self) -> None: + """Clean up any running ffmpeg processes using killall.""" + try: + subprocess.run(['killall', 'ffmpeg'], capture_output=True, check=False) + except Exception: + pass # Fail silently if cleanup doesn't work + + def capture_picture(self, protocol, when: str = "image") -> None: + """ + Take a picture at a specific protocol step. + + Args: + protocol: Opentrons protocol context + when: Description of when the picture was taken (used in filename) + + Returns: + Filename of captured image if successful, None if simulation or failed + """ + if protocol.is_simulating(): + protocol.comment(f'[SIMULATION] Taking picture at protocol step: {when}') + return + + protocol.comment(f'Taking picture at protocol step: {when}') + timestamp = int(time.time()) + filename = f'{when}_image_{timestamp}.jpg' + filepath = f'{self.storage_path}/{filename}' + + try: + subprocess.check_call([ + 'ffmpeg', '-loglevel', 'error', '-y', '-f', 'video4linux2', + '-s', self.picture_size, '-i', self.video_device, '-ss', '0:0:1', + '-frames', '1', filepath + ]) + protocol.comment(f'{when.title()} picture captured: {filename}') + + except subprocess.CalledProcessError as e: + protocol.comment(f'Warning: Picture capture failed: {e}, continuing protocol') + + + def start_video(self, protocol) -> None: + """ + Start video recording. + + Args: + protocol: Opentrons protocol context + + Returns: + Video process handle if successful, None if simulation or failed + """ + if protocol.is_simulating(): + protocol.comment('[SIMULATION] Starting video recording') + return + + # Clean up any existing processes + self.cleanup_ffmpeg_processes() + time.sleep(0.5) # Brief pause for cleanup + + timestamp = int(time.time()) + filename = f'video_image_{timestamp}.mp4' + filepath = f'{self.storage_path}/{filename}' + + try: + video_process = subprocess.Popen([ + 'ffmpeg', '-loglevel', 'error', '-y', '-video_size', self.video_size, + '-i', self.video_device, filepath + ]) + self._active_video_process = video_process + protocol.comment(f"Video recording started: {filename}") + except Exception as e: + protocol.comment(f"Warning: Video recording failed: {e}") + + def stop_video(self, protocol) -> None: + """ + Stop video recording. + + Args: + protocol: Opentrons protocol context + video_process: Video process to stop (uses active process if None) + """ + if protocol.is_simulating(): + protocol.comment('[SIMULATION] Stopping video recording') + return + + # Use provided process or the active one + process_to_stop = self._active_video_process + + if process_to_stop is None: + protocol.comment("No video recording process to stop") + return + + if process_to_stop.poll() is None: # Process is still running + try: + process_to_stop.terminate() + process_to_stop.wait(timeout=5) + protocol.comment("Video recording stopped") + except subprocess.TimeoutExpired: + process_to_stop.kill() + process_to_stop.wait() + protocol.comment("Video recording force-stopped") + except Exception as e: + protocol.comment(f"Warning: Error stopping video: {e}") + else: + protocol.comment("Video recording already stopped") + + # Clear active process if it was the one we stopped + self._active_video_process = None + +class SmartPipette: + """ + Wrapper for automatic volume tracking + """ + + def __init__(self, pipette, protocol): + self.pipette = pipette + self.protocol = protocol + if not hasattr(protocol, 'define_liquid'): + raise RuntimeError("This class requires API with liquid tracking support") + + def is_conical_tube(self, well, use: bool = False) -> bool: + """Check if the well is from a conical tube labware or manually set as true""" + return 'conical' in well.parent.load_name.lower() or use + + def get_well_volume(self, well) -> Optional[float]: + """Get current volume in well using pure API method""" + try: + return well.current_liquid_volume() + except Exception as e: + self.protocol.comment(f"ERROR reading volume from {well.well_name}: {e}") + return None + + def get_well_height(self, well) -> Optional[float]: + """Get current liquid height using pure API method (if available)""" + try: + if hasattr(well, 'current_liquid_height'): + return well.current_liquid_height() + else: + self.protocol.comment("Liquid height method not available in this API version") + return None + except Exception as e: + self.protocol.comment(f"ERROR reading height from {well.well_name}: {e}") + return None + + def get_conical_tube_aspiration_height(self, well) -> float: + """ + Calculate safe aspiration height for conical tubes using proven method + Uses API liquid tracking to get current volume + """ + # Get current volume from API + try: + current_volume = well.current_liquid_volume() + if current_volume is None: + raise ValueError("API returned None for liquid volume") + except Exception as e: + self.protocol.comment(f"ERROR: Could not get liquid volume from API: {e}") + return 10.0 # Safe fallback height + + max_volume = well.max_volume + tube_depth = well.depth - 10 # Account for threads + min_safe_height = 3 # mm minimum to prevent tip damage + meniscus_offset = 10 # mm below liquid surface + + # Calculate liquid height based on current volume + liquid_height = (current_volume / max_volume) * tube_depth + aspiration_height = max(liquid_height - meniscus_offset, min_safe_height) + + self.protocol.comment( + f"Conical calculation: {current_volume:.0f}µL remaining = {aspiration_height:.1f}mm height") + return aspiration_height + + def get_aspiration_location(self, well, use: bool = False) -> float: + """ + Get intelligent aspiration location using API volume data and proven height calculation + """ + if not self.is_conical_tube(well, use=use): + return well + + try: + current_volume = well.current_liquid_volume() + if current_volume is None or current_volume < well.max_volume * 0.2: + # Less than 20% remaining - use standard aspiration + self.protocol.comment("Low volume detected - using standard aspiration") + return well + + # Use conical tube calculation + safe_height = self.get_conical_tube_aspiration_height(well) + return well.bottom(safe_height) + + except Exception as e: + self.protocol.comment(f"ERROR getting volume from API: {e}") + return well # Fallback to standard aspiration + + def liquid_transfer(self, volume: float, source, destination, + asp_rate: float = 0.5, disp_rate: float = 1.0, + blow_out: bool = True, touch_tip: bool = False, + mix_before: float = 0.0, mix_after: float = 0.0, + mix_reps: int = 3, new_tip: bool = True, drop_tip: bool = True, use:bool = False) -> bool: + """ + Transfer liquid using pure API liquid tracking for volume management + + Returns: + bool: True if transfer was successful, False if insufficient volume + """ + # Check volume using API methods only + try: + current_volume = source.current_liquid_volume() + if current_volume is None: + self.protocol.comment("WARNING: API returned None for source volume") + return False + + if current_volume < volume: + self.protocol.comment(f"WARNING: Insufficient volume. " + f"Requested: {volume}µL, Available: {current_volume:.0f}µL") + return False + + except Exception as e: + self.protocol.comment(f"ERROR: Could not check source volume: {e}") + return False + + if new_tip: + self.pipette.pick_up_tip() + + # Get aspiration location using API data + proven calculation + aspiration_location = self.get_aspiration_location(source,use) + + # Mix before if requested + if mix_before > 0: + # Use current volume to limit mixing + try: + safe_mix_volume = min(mix_before, current_volume * 0.8) + self.pipette.mix(mix_reps, safe_mix_volume, aspiration_location) + except: + self.protocol.comment("Skipping mix_before due to API error") + + # Aspirate + self.pipette.aspirate(volume, aspiration_location, rate=asp_rate) + + # Dispense + self.pipette.dispense(volume, destination.center(), rate=disp_rate) + + # Mix after if requested + if mix_after > 0: + self.pipette.mix(mix_reps, mix_after, destination) + + if blow_out: + self.pipette.blow_out() + + if touch_tip: + self.pipette.touch_tip() + + if drop_tip: + self.pipette.drop_tip() -def liquid_transfer(pipette, volume, source, destination, asp_rate:float=0.5, disp_rate:float=1.0, blow_out:bool=True, touch_tip:bool=False, mix_before:float=0.0, mix_after:float=0.0, mix_reps:int=3, new_tip:bool=True, drop_tip:bool=True): - if new_tip: - pipette.pick_up_tip() - if mix_before > 0: - pipette.mix(mix_reps, mix_before, source) - pipette.aspirate(volume, source, rate=asp_rate) - pipette.dispense(volume, destination, rate=disp_rate) - if mix_after > 0: - pipette.mix(mix_reps, mix_after, destination) - if blow_out: - pipette.blow_out() - if touch_tip: - pipette.touch_tip() - if drop_tip: - pipette.drop_tip() - -#Define slots, to allocate 4 samples in each slot, lasts slots allocate in the border where border effects apply -slot_1 = ['A2', 'B2', 'C2', 'D2'] -slot_2 = ['A3', 'B3', 'C3', 'D3'] -slot_3 = ['A4', 'B4', 'C4', 'D4'] -slot_4 = ['A5', 'B5', 'C5', 'D5'] -slot_5 = ['A6', 'B6', 'C6', 'D6'] -slot_6 = ['A7', 'B7', 'C7', 'D7'] -slot_7 = ['A8', 'B8', 'C8', 'D8'] -slot_8 = ['A9', 'B9', 'C9', 'D9'] -slot_9 = ['A10', 'B10', 'C10', 'D10'] -slot_10 = ['A11', 'B11', 'C11', 'D11'] -slot_11 = ['E2', 'F2', 'G2', 'H2'] -slot_12 = ['E3', 'F3', 'G3', 'H3'] -slot_13 = ['E4', 'F4', 'G4', 'H4'] -slot_14 = ['E5', 'F5', 'G5', 'H5'] -slot_15 = ['E6', 'F6', 'G6', 'H6'] -slot_16 = ['E7', 'F7', 'G7', 'H7'] -slot_17 = ['E8', 'F8', 'G8', 'H8'] -slot_18 = ['E9', 'F9', 'G9', 'H9'] -slot_19 = ['E10', 'F10', 'G10', 'H10'] -slot_20 = ['E11', 'F11', 'G11', 'H11'] -slot_21 = ['A1', 'B1', 'C1', 'D1'] -slot_22 = ['E1', 'F1', 'G1', 'H1'] -slot_23 = ['A12', 'B12', 'C12', 'D12'] -slot_24 = ['E12', 'F12', 'G12', 'H12'] - -slots = [slot_1, slot_2, slot_3, slot_4, slot_5, slot_6, slot_7, slot_8, slot_9, slot_10, slot_11, slot_12, slot_13, slot_14, slot_15, slot_16, slot_17, slot_18, slot_19, slot_20, slot_21, slot_22, slot_23, slot_24] - -#define rows -row_a = ['A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11','A12'] -row_b = ['B1','B2','B3','B4','B5','B6','B7','B8','B9','B10','B11','B12'] -row_c = ['C1','C2','C3','C4','C5','C6','C7','C8','C9','C10','C11','C12'] -row_d = ['D1','D2','D3','D4','D5','D6','D7','D8','D9','D10','D11','D12'] -row_e = ['E1','E2','E3','E4','E5','E6','E7','E8','E9','E10','E11','E12'] -row_f = ['F1','F2','F3','F4','F5','F6','F7','F8','F9','F10','F11','F12'] -row_g = ['G1','G2','G3','G4','G5','G6','G7','G8','G9','G10','G11','G12'] -row_h = ['H1','H2','H3','H4','H5','H6','H7','H8','H9','H10','H11','H12'] - -rows = [row_a, row_b, row_c, row_d, row_e, row_f, row_g, row_h] - -#define columns -col_1 = ['A1','B1','C1','D1','E1','F1','G1','H1'] -col_2 = ['A2','B2','C2','D2','E2','F2','G2','H2'] -col_3 = ['A3','B3','C3','D3','E3','F3','G3','H3'] -col_4 = ['A4','B4','C4','D4','E4','F4','G4','H4'] -col_5 = ['A5','B5','C5','D5','E5','F5','G5','H5'] -col_6 = ['A6','B6','C6','D6','E6','F6','G6','H6'] -col_7 = ['A7','B7','C7','D7','E7','F7','G7','H7'] -col_8 = ['A8','B8','C8','D8','E8','F8','G8','H8'] -col_9 = ['A9','B9','C9','D9','E9','F9','G9','H9'] -col_10 = ['A10','B10','C10','D10','E10','F10','G10','H10'] -col_11 = ['A11','B11','C11','D11','E11','F11','G11','H11'] -col_12 = ['A12','B12','C12','D12','E12','F12','G12','H12'] - -columns = [col_1, col_2, col_3, col_4, col_5, col_6, col_7, col_8, col_9, col_10, col_11, col_12] - -position_to_row_and_column = {'A1':(1,1), 'A2':(1,2), 'A3':(1,3), 'A4':(1,4), 'A5':(1,5), 'A6':(1,6), 'A7':(1,7), 'A8':(1,8), 'A9':(1,9), 'A10':(1,10), 'A11':(1,11), 'A12':(1,12), - 'B1':(2,1), 'B2':(2,2), 'B3':(2,3), 'B4':(2,4), 'B5':(2,5), 'B6':(2,6), 'B7':(2,7), 'B8':(2,8), 'B9':(2,9), 'B10':(2,10), 'B11':(2,11), 'B12':(2,12), - 'C1':(3,1), 'C2':(3,2), 'C3':(3,3), 'C4':(3,4), 'C5':(3,5), 'C6':(3,6), 'C7':(3,7), 'C8':(3,8), 'C9':(3,9), 'C10':(3,10), 'C11':(3,11), 'C12':(3,12), - 'D1':(4,1), 'D2':(4,2), 'D3':(4,3), 'D4':(4,4), 'D5':(4,5), 'D6':(4,6), 'D7':(4,7), 'D8':(4,8), 'D9':(4,9), 'D10':(4,10), 'D11':(4,11), 'D12':(4,12), - 'E1':(5,1), 'E2':(5,2), 'E3':(5,3), 'E4':(5,4), 'E5':(5,5), 'E6':(5,6), 'E7':(5,7), 'E8':(5,8), 'E9':(5,9), 'E10':(5,10), 'E11':(5,11), 'E12':(5,12), - 'F1':(6,1), 'F2':(6,2), 'F3':(6,3), 'F4':(6,4), 'F5':(6,5), 'F6':(6,6), 'F7':(6,7), 'F8':(6,8), 'F9':(6,9), 'F10':(6,10), 'F11':(6,11), 'F12':(6,12), - 'G1':(7,1), 'G2':(7,2), 'G3':(7,3), 'G4':(7,4), 'G5':(7,5), 'G6':(7,6), 'G7':(7,7), 'G8':(7,8), 'G9':(7,9), 'G10':(7,10), 'G11':(7,11), 'G12':(7,12), - 'H1':(8,1), 'H2':(8,2), 'H3':(8,3), 'H4':(8,4), 'H5':(8,5), 'H6':(8,6), 'H7':(8,7), 'H8':(8,8), 'H9':(8,9), 'H10':(8,10), 'H11':(8,11), 'H12':(8,12)} - -row_letter_to_number = {'A':1, 'B':2, 'C':3, 'D':4, 'E':5, 'F':6, 'G':7, 'H':8} \ No newline at end of file + return True From f3cfe87a65fc9b45ec49384ef30df5b605ab93d4 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Fri, 29 Aug 2025 15:14:17 -0600 Subject: [PATCH 054/118] Added simple test file to test all scripts --- tests/test_all_scripts.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 tests/test_all_scripts.py diff --git a/tests/test_all_scripts.py b/tests/test_all_scripts.py new file mode 100644 index 0000000..b02d862 --- /dev/null +++ b/tests/test_all_scripts.py @@ -0,0 +1,34 @@ +import unittest +import subprocess +import pathlib + +SCRIPTS_DIR = pathlib.Path("scripts") + +class TestAllScripts(unittest.TestCase): + def test_all_scripts_with_simulator(self): + # Make sure we found the folder + self.assertTrue(SCRIPTS_DIR.exists(), f"Scripts dir not found: {SCRIPTS_DIR}") + script_files = sorted(SCRIPTS_DIR.glob("*.py"), key=lambda p: p.name.lower()) + + for script_path in script_files: + with self.subTest(script=script_path.name): + print(f"\n=== Simulating: {script_path.name} ===") + result = subprocess.run( + ["opentrons_simulate", str(script_path)], + capture_output=True, + text=True + ) + # Ensure simulator exits successfully + self.assertEqual( + result.returncode, 0, + msg=f"Simulation failed for {script_path}:\n{result.stderr}" + ) + #TODO: Create edge case tests that fail appropriately + #Some example edge cases: + #Too many reagents for the labware + #Not enough available wells for the thermocycler + #Too many colonies for the plating + + +if __name__ == '__main__': + unittest.main() From 6a45a3fdddde7bc487561cf5791e0f21037b19cd Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Fri, 29 Aug 2025 15:41:46 -0600 Subject: [PATCH 055/118] Added a bacterial transformation script that is more Object oriented and has had the hyperparameters fine-tuned for physical implementation --- scripts/run_Bacterial_Transformation_libre.py | 495 ++++++++++++++++++ 1 file changed, 495 insertions(+) create mode 100644 scripts/run_Bacterial_Transformation_libre.py diff --git a/scripts/run_Bacterial_Transformation_libre.py b/scripts/run_Bacterial_Transformation_libre.py new file mode 100644 index 0000000..165fd2a --- /dev/null +++ b/scripts/run_Bacterial_Transformation_libre.py @@ -0,0 +1,495 @@ +from opentrons import protocol_api +from typing import List, Dict +from pudu.utils import colors + + +class Transformation(): + ''' + Creates a protocol for automated transformation. + + Attributes + ---------- + volume_dna : float + The volume DNA in microliters. By default, 2 microliters. We suggest 2 microliters for extracted plasmid and 5 microliters for PCR products. + volume_competent_cells : float + The volume of the competent cells in microliters. By default, 50 microliters. + volume_recovery_media : float + The volume of recovery media in microliters. By default, 100 microliters. + replicates : int + The number of replicates of the assembly reaction. By default, 2. + thermocycler_starting_well : int + The starting well of the thermocycler module. By default, 0. + thermocycler_labware : str + The labware type of the thermocycler module. By default, 'nest_96_wellplate_100ul_pcr_full_skirt'. + thermocycler_slots : list + The slots of the thermocycler module. By default, [7, 8, 10, 11]. + temperature_module_labware : str + The labware type of the temperature module. By default, 'opentrons_24_aluminumblock_nest_1.5ml_snapcap'. + temperature_module_position : int + The deck position of the temperature module. By default, 1. + tiprack_labware : str + The labware type of the tiprack. By default, 'opentrons_96_tiprack_20ul'. + tiprack_position : int + The deck position of the tiprack. By default, 9. + pipette_type : str + The type of pipette. By default, 'p20_single_gen2'. + pipette_mount : str + The mount of the pipette. By default, 'left'. + aspiration_rate : float + The rate of aspiration in microliters per second. By default, 0.5 microliters per second. + dispense_rate : float + The rate of dispense in microliters per second. By default, 1 microliter per second. + ''' + def __init__(self, + list_of_dna:List = None, + volume_dna:float = 20, + competent_cells:str = None, + replicates:int=2, + thermocycler_starting_well:int = 0, + thermocycler_labware:str = "nest_96_wellplate_100ul_pcr_full_skirt", + temperature_module_labware:str = "opentrons_24_aluminumblock_nest_1.5ml_snapcap", + temperature_module_position:str = '1', + dna_plate:str = "nest_96_wellplate_100ul_pcr_full_skirt", + dna_plate_position:str = '2', + use_dna_96plate:bool = False, + tiprack_p20_labware:str = "opentrons_96_tiprack_20ul", + tiprack_p20_position:str = "9", + tiprack_p200_labware:str = "opentrons_96_filtertiprack_200ul", + tiprack_p200_position:str = "6", + pipette_p20:str = "p20_single_gen2", + pipette_p20_position:str = "left", + pipette_p300:str = "p300_single_gen2", + pipette_p300_position:str = "right", + aspiration_rate:float = 0.5, + dispense_rate:float = 1, + initial_dna_well:int = 0, + water_testing:bool = False + ): + + if list_of_dna is None: + raise ValueError ("Must input a list of DNA strings") + else: + self.list_of_dna = list_of_dna + self.volume_dna = volume_dna + if competent_cells is None: + raise ValueError ("Must input a competent cell strings") + else: + self.competent_cells = competent_cells + self.replicates = replicates + self.thermocycler_starting_well = thermocycler_starting_well + self.thermocycler_labware = thermocycler_labware + self.temperature_module_labware = temperature_module_labware + self.temperature_module_position = temperature_module_position + self.dna_plate = dna_plate + self.dna_plate_position = dna_plate_position + self.use_dna_96plate = use_dna_96plate + self.tiprack_p20_labware = tiprack_p20_labware + self.tiprack_p20_position = tiprack_p20_position + self.tiprack_p200_labware = tiprack_p200_labware + self.tiprack_p200_position = tiprack_p200_position + self.pipette_p20 = pipette_p20 + self.pipette_p20_position = pipette_p20_position + self.pipette_p300 = pipette_p300 + self.pipette_p300_position = pipette_p300_position + self.aspiration_rate = aspiration_rate + self.dispense_rate = dispense_rate + self.initial_dna_well = initial_dna_well + self.water_testing = water_testing + +class HeatShockTransformation(Transformation): + ''' + Creates a protocol for automated transformation. + ''' + def __init__(self, + transfer_volume_dna:float = 2, + transfer_volume_competent_cell:float = 20, + tube_volume_competent_cell:float =100, + transfer_volume_recovery_media:float = 60, + tube_volume_recovery_media:float = 1200, #add a bit more to pick it properly + cold_incubation1:Dict = None, + heat_shock:Dict = None, + cold_incubation2:Dict = None, + recovery_incubation:Dict = None, + *args, **kwargs): + super().__init__(*args, **kwargs) + + self.transfer_volume_dna = transfer_volume_dna + self.transfer_volume_competent_cell = transfer_volume_competent_cell + self.tube_volume_competent_cell = tube_volume_competent_cell + self.transfer_volume_recovery_media = transfer_volume_recovery_media + self.tube_volume_recovery_media = tube_volume_recovery_media + if cold_incubation1 is None: + self.cold_incubation1 = {'temperature': 4, 'hold_time_minutes': 30} + else: + self.cold_incubation1 = cold_incubation1 + if heat_shock is None: + self.heat_shock = {'temperature': 42, 'hold_time_minutes': 1} + else: + self.heat_shock = heat_shock + if cold_incubation2 is None: + self.cold_incubation2 = {'temperature': 4, 'hold_time_minutes': 2} + else: + self.cold_incubation2 = cold_incubation2 + if recovery_incubation is None: + self.recovery_incubation = {'temperature': 37, 'hold_time_minutes': 60} + else: + self.recovery_incubation = recovery_incubation + self.recovery_incubation = recovery_incubation + self.dict_of_parts_in_temp_mod_position = {} + self.dict_of_parts_in_thermocycler = {} + + def liquid_transfer(self, protocol, pipette, volume, source, dest, + asp_rate: float = 0.5, disp_rate: float = 1.0, + blow_out: bool = True, touch_tip: bool = False, + mix_before: float = 0.0, mix_after: float = 0.0, + mix_reps: int = 3, new_tip: bool = True, + remove_air:bool = True, drop_tip: bool = True): + if new_tip: + pipette.pick_up_tip() + + if mix_before > 0: + pipette.mix(mix_reps, mix_before, source) + + pipette.aspirate(volume, source, rate=asp_rate) + pipette.dispense(volume, dest, rate=disp_rate) + + if mix_after > 0: + pipette.mix(mix_reps, mix_after, dest) + + if blow_out: + pipette.blow_out() + + if remove_air: + for _ in range(2): + pipette.aspirate(20, dest.bottom(), rate=disp_rate) + pipette.dispense(20, dest.bottom(8), rate=disp_rate) + + if touch_tip: + pipette.touch_tip(radius=0.5, v_offset=-14, speed=20) + + if drop_tip: + pipette.drop_tip() + + def run(self, protocol: protocol_api.ProtocolContext): + # Force water testing mode during simulation + if protocol.is_simulating(): + self.water_testing = True + protocol.comment("Simulation detected - enabling water testing mode") + # Labware + # Load the temperature module + temperature_module = protocol.load_module('temperature module', self.temperature_module_position) + alumblock = temperature_module.load_labware(self.temperature_module_labware) + # Load the thermocycler module, its default location is on slots 7, 8, 10 and 11 + thermocycler_module = protocol.load_module('thermocycler module') + pcr_plate = thermocycler_module.load_labware(self.thermocycler_labware) + #If using the 96-well pcr plate as a dna construct source + if self.use_dna_96plate: + dna_plate = protocol.load_labware(self.dna_plate, self.dna_plate_position) + # Load the tiprack + tiprack_p20 = protocol.load_labware(self.tiprack_p20_labware, self.tiprack_p20_position) + tiprack_p200 = protocol.load_labware(self.tiprack_p200_labware, self.tiprack_p200_position) + # Load the pipette + pipette_p20 = protocol.load_instrument(self.pipette_p20, self.pipette_p20_position, tip_racks=[tiprack_p20]) + pipette_p300 = protocol.load_instrument(self.pipette_p300, self.pipette_p300_position, + tip_racks=[tiprack_p200]) + #Validate protocol + self._validate_protocol(protocol, alumblock) + + #Load Reagents + if self.use_dna_96plate: + DNA_wells = self._load_dna_list(protocol, dna_plate, self.volume_dna, self.list_of_dna, initial_well=self.initial_dna_well) + competent_cell_wells = self._load_reagents(protocol, alumblock, self.tube_volume_competent_cell, f"Competent Cell {self.competent_cells}", self.competent_cell_tubes_needed) + media_wells = self._load_reagents(protocol, alumblock, self.tube_volume_recovery_media, "Media", self.media_tubes_needed, initial_well=len(competent_cell_wells)) + + else: + DNA_wells = self._load_dna_list(protocol, alumblock, self.volume_dna, self.list_of_dna) + competent_cell_wells = self._load_reagents(protocol, alumblock, self.tube_volume_competent_cell, f"Competent Cell {self.competent_cells}", self.competent_cell_tubes_needed, initial_well=len(DNA_wells)) + media_wells = self._load_reagents(protocol, alumblock, self.tube_volume_recovery_media, "Media", self.media_tubes_needed, initial_well=len(DNA_wells)+len(competent_cell_wells)) + + #Set Temperature module and Thermocycler module to 4 + thermocycler_module.open_lid() + if not self.water_testing: + temperature_module.set_temperature(4) + thermocycler_module.set_block_temperature(4) + + #Load competent cells into the thermocycler + pipette = pipette_p300 + self._transfer_competent_cells(protocol, pipette, pcr_plate, competent_cell_wells, self.transfer_volume_competent_cell, self.thermocycler_starting_well) + + #Load DNA into the thermocycler + if self.transfer_volume_dna > 20: + pipette = pipette_p300 + else: + pipette = pipette_p20 + self._transfer_DNA(protocol, pipette, pcr_plate, DNA_wells, self.transfer_volume_dna, self.thermocycler_starting_well) + + # Cold Incubation + thermocycler_module.close_lid() + profile = [ + self.cold_incubation1, # 1st cold incubation (long) + self.heat_shock, # Heat shock + self.cold_incubation2 # 2nd cold incubation (short) + ] + if not self.water_testing: + thermocycler_module.execute_profile(steps=profile, repetitions=1, block_max_volume=30) + thermocycler_module.open_lid() + + #Load liquid broth + pipette = pipette_p300 + self._transfer_liquid_broth(protocol, pipette, pcr_plate, media_wells, self.transfer_volume_recovery_media, self.thermocycler_starting_well) + + # Recovery Incubation + thermocycler_module.close_lid() + recovery = [ + self.recovery_incubation + ] + if not self.water_testing: + thermocycler_module.execute_profile(steps=recovery, repetitions=1, block_max_volume=30) + + # output + print('Strain and media tube in temp_mod') + print(self.dict_of_parts_in_temp_mod_position) + print('Genetically modified organisms in thermocycler') + print(self.dict_of_parts_in_thermocycler) + + def _validate_protocol(self, protocol, labware): + #Number of available wells to load into + module_wells = len(labware.wells()) + #Number of dna constructs to be used + total_constructs = len(self.list_of_dna) + #Number of tubes with competent cells to be used + self.total_transformations = total_constructs*self.replicates + self.transformations_per_cell_tube = self.tube_volume_competent_cell//self.transfer_volume_competent_cell + self.competent_cell_tubes_needed = (self.total_transformations + self.transformations_per_cell_tube - 1) // self.transformations_per_cell_tube + #Number of tubes with media to be used + self.transformations_per_media_tube = self.tube_volume_recovery_media//self.transfer_volume_recovery_media + self.media_tubes_needed = (self.total_transformations + self.transformations_per_media_tube - 1) // self.transformations_per_media_tube + if self.use_dna_96plate: + if self.competent_cell_tubes_needed + self.media_tubes_needed > module_wells: + raise ValueError(f'The number of reagents is more that {module_wells}.' + f'There are {self.competent_cell_tubes_needed} tubes with competent cells.' + f'{self.media_tubes_needed} tubes with media.' + f'Please modify the protocol and try again.') + else: + if total_constructs + self.competent_cell_tubes_needed + self.media_tubes_needed > module_wells: + raise ValueError(f'The number of reagents is more than {module_wells}.' + f'There are {total_constructs} DNA constructs.' + f'{self.competent_cell_tubes_needed} tubes with competent cells.' + f'{self.media_tubes_needed} tubes with media.' + f'Please modify the protocol and try again.') + + + def _load_dna_list(self, protocol, labware, volume, dna_list, initial_well=0, description=None, color_index = None): + """ + Load individual DNA constructs into wells, one construct per well. + + Parameters: + - protocol: Protocol context + - labware: Labware object (temperature module or DNA plate) + - volume: Volume to load in µL + - construct_list: List of construct names (e.g., ['GVD0011', 'GVD0013']) + - initial_well: Starting well index + - color_index: Starting color index (auto-increments if None) + + Returns: + - List of well objects + """ + wells = [] + current_color = color_index if color_index is not None else 0 + for i, construct in enumerate(dna_list): + #Get the well + well = labware.wells()[initial_well+i] + wells.append(well) + + #Covert tuple to string if needed + if isinstance(construct, tuple): + construct_name = '_'.join(construct) + else: + construct_name = construct + #Define and load "liquid" + liquid = protocol.define_liquid( + name = construct_name, + description= description if description is not None else f"{construct} DNA construct", + display_color= colors[current_color%len(colors)] + ) + well.load_liquid(liquid, volume=volume) + + #Track in dictionary + if not self.use_dna_96plate: + self.dict_of_parts_in_temp_mod_position[construct_name] = well.well_name + current_color += 1 + return wells + + def _load_reagents(self, protocol, labware, volume, reagent_name, tube_count, initial_well=0, color_index=None): + """ + Load multiple tubes of the same reagent type. + + Parameters: + - protocol: Protocol context + - labware: Labware object (temperature module) + - volume: Volume to load in µL + - reagent_base_name: Base name for reagent (e.g., "Competent_Cell", "Media") + - tube_count: Number of tubes to load + - initial_well: Starting well index + - color_index: Starting color index (auto-increments if None) + + Returns: + - List of well objects + """ + wells = [] + current_color = color_index if color_index is not None else 0 + for i in range(tube_count): + well = labware.wells()[initial_well+i] + wells.append(well) + name = f"{reagent_name}_{i+1}" + + liquid = protocol.define_liquid( + name = name, + display_color= colors[current_color%len(colors)] + ) + + well.load_liquid(liquid, volume=volume) + self.dict_of_parts_in_temp_mod_position[name] = well.well_name + current_color += 1 + return wells + + def _transfer_competent_cells(self, protocol, pipette, pcr_plate, competent_cell_wells, + transfer_volume_competent_cell, thermocycler_starting_well): + """ + Transfer competent cells to thermocycler wells using distribute method. + + Parameters: + - protocol: Protocol context + - pipette: Pipette instrument + - pcr_plate: Thermocycler plate + - competent_cell_wells: List of wells containing competent cells + - transfer_volume_competent_cell: Volume to transfer per well + - thermocycler_starting_well: Starting well index in thermocycler + """ + well_index = thermocycler_starting_well + + for tube_index, source_well in enumerate(competent_cell_wells): + #Calculate how many wells this cell tube will fill + remaining_transformations = self.total_transformations - (tube_index * self.transformations_per_cell_tube) + wells_to_fill = min(self.transformations_per_cell_tube, remaining_transformations) + + #Destination wells + dest_wells = pcr_plate.wells()[well_index:well_index+wells_to_fill] + + #Distribute + pipette.distribute( + volume=transfer_volume_competent_cell, + source=source_well, + dest=dest_wells, + mix_before=(3,50), + disposal_volume=0, + new_tip='once' + ) + + #Thermocycler Dictionary + name = f"Competent_Cell_{self.competent_cells}_{tube_index+1}" + for well in dest_wells: + if well.well_name not in self.dict_of_parts_in_thermocycler: + self.dict_of_parts_in_thermocycler[well.well_name] = [] + self.dict_of_parts_in_thermocycler[well.well_name].append(name) + + well_index += wells_to_fill + + def _transfer_DNA(self, protocol, pipette, pcr_plate, DNA_wells, transfer_volume_dna, thermocycler_starting_well): + """ + Transfer DNA constructs to thermocycler wells with replicates grouped together. + + Parameters: + - protocol: Protocol context + - pipette: Pipette instrument + - pcr_plate: Thermocycler plate + - DNA_wells: List of wells containing DNA constructs + - transfer_volume_dna: Volume to transfer per well + - thermocycler_starting_well: Starting well index in thermocycler + """ + for construct_index, (construct_name, source_well) in enumerate(zip(self.list_of_dna, DNA_wells)): + construct_well = construct_index * self.replicates + thermocycler_starting_well + + for replicate in range(self.replicates): + dest_well = pcr_plate.wells()[construct_well+replicate] + #Transfer liquid + self.liquid_transfer( + protocol=protocol, + pipette=pipette, + volume=transfer_volume_dna, + source=source_well, + dest=dest_well, + asp_rate=self.aspiration_rate, + disp_rate=self.dispense_rate, + mix_before=transfer_volume_dna, + touch_tip=True + ) + + #Track in dictionary + if dest_well.well_name not in self.dict_of_parts_in_thermocycler: + self.dict_of_parts_in_thermocycler[dest_well.well_name] = [] + self.dict_of_parts_in_thermocycler[dest_well.well_name].append(construct_name) + + def _transfer_liquid_broth(self, protocol, pipette, pcr_plate, media_wells, transfer_volume_recovery_media, + thermocycler_starting_well): + """ + Transfer recovery media to thermocycler wells using distribute method. + + Parameters: + - protocol: Protocol context + - pipette: Pipette instrument + - pcr_plate: Thermocycler plate + - media_wells: List of wells containing recovery media + - transfer_volume_recovery_media: Volume to transfer per well + - thermocycler_starting_well: Starting well index in thermocycler + """ + well_index = thermocycler_starting_well + + for tube_index, source_well in enumerate(media_wells): + #Calculate how many wells this media tube will fill + remaining_transformations = self.total_transformations - (tube_index * self.transformations_per_media_tube) + wells_to_fill = min(self.transformations_per_media_tube, remaining_transformations) + + # Get destination wells for this tube using .top() to avoid contamination + dest_wells = [pcr_plate.wells()[well_index+i].top(2) for i in range(int(wells_to_fill))] + + #Distribute recovery media + pipette.distribute( + volume=transfer_volume_recovery_media, + source=source_well, + dest=dest_wells, + disposal_volume=0, + new_tip='once', + air_gap=10 + ) + + #Track in dictionary + media_name = f"Media_{tube_index+1}" + for i in range(int(wells_to_fill)): + well_name = pcr_plate.wells()[well_index + i].well_name + if well_name not in self.dict_of_parts_in_thermocycler: + self.dict_of_parts_in_thermocycler[well_name] = [] + self.dict_of_parts_in_thermocycler[well_name].append(media_name) + + well_index += wells_to_fill + + + +# metadata +metadata = { +'protocolName': 'PUDU Transformation', +'author': 'Gonzalo Vidal , refactored by Oscar Rodriguez', +'description': 'Automated heat-shock transformation protocol', +'apiLevel': '2.22'} + +def run(protocol= protocol_api.ProtocolContext): + # list_of_dna = ['GVD0011', 'GVD0013', 'GVD0015', 'GVD0016', 'GVD0019', 'GVD0020'] + # list_of_dna = ['GVD0011'] + list_of_dna = [('GVP0008', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_1'), + ('GVP0008', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_2'), + ('GVP0010', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_1'), + ('GVP0010', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_2'), + ('GVP0012', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_1'), + ('GVP0012', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_2')] + pudu_transformation = HeatShockTransformation(list_of_dna= list_of_dna, competent_cells = 'DH5alpha', use_dna_96plate=True, water_testing=True) + pudu_transformation.run(protocol) From 8db7dbd5e67dc1639acb2bcdb8dc256c60395678 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Tue, 2 Sep 2025 16:16:35 -0600 Subject: [PATCH 056/118] Changed source code to reflect hyperparameter tuning and OOP design. Added plating.py as well to plate colonies after transformation. --- requirements.txt | 21 +- ...ion.py => run_Bacterial_Transformation.py} | 6 +- scripts/run_Domestication.py | 6 +- scripts/run_Loop_assembly.py | 8 +- scripts/run_Plate_samples.py | 6 +- scripts/run_Plate_supplemented_sample.py | 6 +- scripts/run_Plating.py | 17 + scripts/run_Plating_libre.py | 433 ++++++ scripts/run_iGEM_gfp_od.py | 6 +- scripts/run_iGEM_rgb_od.py | 6 +- src/pudu/assembly.py | 1328 +++++++++++++---- src/pudu/calibration.py | 749 +++++----- src/pudu/plating.py | 270 ++++ src/pudu/sample_preparation.py | 2 +- src/pudu/transformation.py | 604 +++++--- 15 files changed, 2568 insertions(+), 900 deletions(-) rename scripts/{run_Chemical_Transformation.py => run_Bacterial_Transformation.py} (66%) create mode 100644 scripts/run_Plating.py create mode 100644 scripts/run_Plating_libre.py create mode 100644 src/pudu/plating.py diff --git a/requirements.txt b/requirements.txt index 37ac0d5..a98e63f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,6 @@ -aionotify==0.2.0 -anyio==3.3.0 +aionotify==0.3.1 +annotated-types==0.7.0 +anyio==3.6.1 attrs==22.2.0 biopython==1.81 certifi==2022.12.7 @@ -10,17 +11,19 @@ et-xmlfile==1.1.0 graphviz==0.20.1 idna==3.4 isodate==0.6.1 -jsonschema==3.0.2 +jsonschema==4.17.3 lxml==4.9.2 numpy==1.24.2 openpyxl==3.1.1 -opentrons==6.2.1 -opentrons-shared-data==6.2.1 +opentrons==8.4.1 +opentrons-shared-data==8.4.1 ordered-set==4.1.0 owlrl==6.0.2 packaging==23.0 prettytable==2.5.0 -pydantic==1.8.2 +pydantic==2.11.7 +pydantic-settings==2.9.1 +pydantic_core==2.33.2 PyLaTeX==1.4.1 pyparsing==2.4.7 PyPDF2==3.0.1 @@ -28,6 +31,8 @@ pyrsistent==0.19.3 pyserial==3.5 pyshacl==0.18.1 python-dateutil==2.8.2 +python-dotenv==1.1.0 +pyusb==1.2.1 rdflib==6.2.0 requests==2.28.2 sbol-factory==1.1.1.post1 @@ -37,8 +42,10 @@ sbol3==1.0.1 six==1.16.0 sniffio==1.3.0 SPARQLWrapper==2.0.0 -typing_extensions==4.5.0 +typing_extensions==4.14.0 tyto==1.4 urllib3==1.26.14 wcwidth==0.2.6 wrapt==1.15.0 +xlsxwriter==3.2.5 + diff --git a/scripts/run_Chemical_Transformation.py b/scripts/run_Bacterial_Transformation.py similarity index 66% rename from scripts/run_Chemical_Transformation.py rename to scripts/run_Bacterial_Transformation.py index 20c4bc7..06ca45f 100644 --- a/scripts/run_Chemical_Transformation.py +++ b/scripts/run_Bacterial_Transformation.py @@ -1,4 +1,4 @@ -from pudu.transformation import Chemical_transformation +from pudu.transformation import HeatShockTransformation from opentrons import protocol_api # metadata @@ -6,10 +6,10 @@ 'protocolName': 'PUDU Transformation', 'author': 'Gonzalo Vidal ', 'description': 'Automated transformation protocol', -'apiLevel': '2.13'} +'apiLevel': '2.22'} def run(protocol= protocol_api.ProtocolContext): - pudu_transformation = Chemical_transformation(list_of_dnas=['pro', 'rbs','cds', 'ter'], competent_cells = 'DH5alpha') + pudu_transformation = HeatShockTransformation(list_of_dna=['pro', 'rbs','cds', 'ter'], competent_cells = 'DH5alpha') pudu_transformation.run(protocol) #After simulation look at the beginning of the output to see the position of input reagents and outputs. \ No newline at end of file diff --git a/scripts/run_Domestication.py b/scripts/run_Domestication.py index 3410657..2f55b0d 100644 --- a/scripts/run_Domestication.py +++ b/scripts/run_Domestication.py @@ -6,11 +6,11 @@ 'protocolName': 'PUDU Domestication', 'author': 'Gonzalo Vidal ', 'description': 'Automated DNA domestication protocol', -'apiLevel': '2.13'} +'apiLevel': '2.22'} def run(protocol= protocol_api.ProtocolContext): - - pudu_domestication = Domestication(parts=['pro', 'rbs','cds', 'ter'], acceptor_backbone='UA') + assembly = [{"parts": ['pro', 'rbs', 'cds', 'ter'], "backbone": 'UA', "restriction_enzyme": "BsaI"}] + pudu_domestication = Domestication(assemblies=assembly) pudu_domestication.run(protocol) #After simulation look at the beginning of the output to see the position of input reagents and outputs. \ No newline at end of file diff --git a/scripts/run_Loop_assembly.py b/scripts/run_Loop_assembly.py index 2e15aab..fcfaeb1 100644 --- a/scripts/run_Loop_assembly.py +++ b/scripts/run_Loop_assembly.py @@ -1,6 +1,6 @@ -from pudu.assembly import Loop_assembly +from pudu.assembly import LoopAssembly from opentrons import protocol_api -import sbol3 + assembly_Odd_1 = {"promoter":["j23101", "j23100"], "rbs":"B0034", "cds":"GFP", "terminator":"B0015", "receiver":"Odd_1"} assembly_Even_2 = {"c4_receptor":"GD0001", "c4_buff_gfp":"GD0002", "spacer1":"20ins1", "spacer2":"Even_2", "receiver":"Even_2"} @@ -11,9 +11,9 @@ 'protocolName': 'PUDU Loop assembly', 'author': 'Gonzalo Vidal ', 'description': 'Automated DNA assembly Loop protocol', -'apiLevel': '2.13'} +'apiLevel': '2.14'} def run(protocol= protocol_api.ProtocolContext): - pudu_loop_assembly = Loop_assembly(assemblies=assemblies,) + pudu_loop_assembly = LoopAssembly(assemblies=assemblies,) pudu_loop_assembly.run(protocol) \ No newline at end of file diff --git a/scripts/run_Plate_samples.py b/scripts/run_Plate_samples.py index 5bdfc5a..e64b34c 100644 --- a/scripts/run_Plate_samples.py +++ b/scripts/run_Plate_samples.py @@ -1,4 +1,4 @@ -from pudu.test_setup import Plate_samples +from pudu.sample_preparation import PlateSamples from opentrons import protocol_api # metadata @@ -6,9 +6,9 @@ 'protocolName': 'PUDU Plate Setup', 'author': 'Gonzalo Vidal ', 'description': 'Automated 96 well plate setup protocol', -'apiLevel': '2.13'} +'apiLevel': '2.14'} def run(protocol= protocol_api.ProtocolContext): - pudu_plate_samples = Plate_samples(samples=['s1', 's2','s3', 's4', 's5']) + pudu_plate_samples = PlateSamples(samples=['s1', 's2','s3', 's4', 's5']) pudu_plate_samples.run(protocol) \ No newline at end of file diff --git a/scripts/run_Plate_supplemented_sample.py b/scripts/run_Plate_supplemented_sample.py index 04a94bf..f2625d3 100644 --- a/scripts/run_Plate_supplemented_sample.py +++ b/scripts/run_Plate_supplemented_sample.py @@ -1,4 +1,4 @@ -from pudu.test_setup import Plate_supplemented_samples +from pudu.sample_preparation import PlateWithGradient from opentrons import protocol_api # metadata @@ -6,9 +6,9 @@ 'protocolName': 'PUDU Plate Setup', 'author': 'Gonzalo Vidal ', 'description': 'Automated 96 well plate setup protocol', -'apiLevel': '2.13'} +'apiLevel': '2.14'} def run(protocol= protocol_api.ProtocolContext): - pudu_plate_supplemented_samples = Plate_supplemented_samples(sample_name='sample1', inducer_name='IPTG' ) + pudu_plate_supplemented_samples = PlateWithGradient(sample_name='sample1', inducer_name='IPTG' ) pudu_plate_supplemented_samples.run(protocol) \ No newline at end of file diff --git a/scripts/run_Plating.py b/scripts/run_Plating.py new file mode 100644 index 0000000..1f37c7e --- /dev/null +++ b/scripts/run_Plating.py @@ -0,0 +1,17 @@ +# metadata +from opentrons import protocol_api + +from pudu.plating import Plating + +metadata = { + 'protocolName': 'Plating Protocol', + 'author': 'Oscar Rodriguez', + 'description': 'Automated Transformed Bacteria Plating Protocol', + 'apiLevel': '2.23' +} + +# constructs = {"A1":["GVP8"],"A2":["GVP10"],"A3":["GVP12"]} +constructs = {'A1': ['Competent_Cell_DH5alpha_1', ('GVP0008', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_1'), 'Media_1'], 'B1': ['Competent_Cell_DH5alpha_1', ('GVP0008', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_1'), 'Media_1'], 'C1': ['Competent_Cell_DH5alpha_1', ('GVP0008', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_2'), 'Media_1'], 'D1': ['Competent_Cell_DH5alpha_1', ('GVP0008', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_2'), 'Media_1'], 'E1': ['Competent_Cell_DH5alpha_1', ('GVP0010', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_1'), 'Media_1'], 'F1': ['Competent_Cell_DH5alpha_2', ('GVP0010', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_1'), 'Media_1'], 'G1': ['Competent_Cell_DH5alpha_2', ('GVP0010', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_2'), 'Media_1'], 'H1': ['Competent_Cell_DH5alpha_2', ('GVP0010', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_2'), 'Media_1'], 'A2': ['Competent_Cell_DH5alpha_2', ('GVP0012', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_1'), 'Media_1'], 'B2': ['Competent_Cell_DH5alpha_2', ('GVP0012', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_1'), 'Media_1'], 'C2': ['Competent_Cell_DH5alpha_3', ('GVP0012', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_2'), 'Media_1'], 'D2': ['Competent_Cell_DH5alpha_3', ('GVP0012', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_2'), 'Media_1']} +def run(protocol: protocol_api.ProtocolContext): + plating_protocol = Plating(bacterium_locations=constructs,replicates=2) + plating_protocol.run(protocol) \ No newline at end of file diff --git a/scripts/run_Plating_libre.py b/scripts/run_Plating_libre.py new file mode 100644 index 0000000..180d621 --- /dev/null +++ b/scripts/run_Plating_libre.py @@ -0,0 +1,433 @@ +from typing import Optional, Dict +from pudu import colors, SmartPipette +from opentrons import protocol_api + + +# construct_colors = ["#0000FF", "#FF0000", "#00FF00", "#8B4513", "#FFA500", "#000000", "#800080"] +# class SmartPipette: +# """ +# Wrapper for automatic volume tracking +# """ +# +# def __init__(self, pipette, protocol): +# self.pipette = pipette +# self.protocol = protocol +# if not hasattr(protocol, 'define_liquid'): +# raise RuntimeError("This class requires API with liquid tracking support") +# +# def is_conical_tube(self, well) -> bool: +# """Check if the well is from a conical tube labware""" +# return 'conical' in well.parent.load_name.lower() +# +# def get_well_volume(self, well) -> Optional[float]: +# """Get current volume in well using pure API method""" +# try: +# return well.current_liquid_volume() +# except Exception as e: +# self.protocol.comment(f"ERROR reading volume from {well.well_name}: {e}") +# return None +# +# def get_well_height(self, well) -> Optional[float]: +# """Get current liquid height using pure API method (if available)""" +# try: +# if hasattr(well, 'current_liquid_height'): +# return well.current_liquid_height() +# else: +# self.protocol.comment("Liquid height method not available in this API version") +# return None +# except Exception as e: +# self.protocol.comment(f"ERROR reading height from {well.well_name}: {e}") +# return None +# +# def get_conical_tube_aspiration_height(self, well) -> float: +# """ +# Calculate safe aspiration height for conical tubes using proven method +# Uses API liquid tracking to get current volume +# """ +# # Get current volume from API +# try: +# current_volume = well.current_liquid_volume() +# if current_volume is None: +# raise ValueError("API returned None for liquid volume") +# except Exception as e: +# self.protocol.comment(f"ERROR: Could not get liquid volume from API: {e}") +# return 10.0 # Safe fallback height +# +# max_volume = well.max_volume +# tube_depth = well.depth - 10 # Account for threads +# min_safe_height = 10 # mm minimum to prevent tip damage +# meniscus_offset = 10 # mm below liquid surface +# +# # Calculate liquid height based on current volume +# liquid_height = (current_volume / max_volume) * tube_depth +# aspiration_height = max(liquid_height - meniscus_offset, min_safe_height) +# +# self.protocol.comment( +# f"Conical calculation: {current_volume:.0f}µL remaining = {aspiration_height:.1f}mm height") +# return aspiration_height +# +# def get_aspiration_location(self, well): +# """ +# Get intelligent aspiration location using API volume data and proven height calculation +# """ +# if not self.is_conical_tube(well): +# return well +# +# try: +# current_volume = well.current_liquid_volume() +# if current_volume is None or current_volume < well.max_volume * 0.2: +# # Less than 20% remaining - use standard aspiration +# self.protocol.comment("Low volume detected - using standard aspiration") +# return well +# +# # Use conical tube calculation +# safe_height = self.get_conical_tube_aspiration_height(well) +# return well.bottom(safe_height) +# +# except Exception as e: +# self.protocol.comment(f"ERROR getting volume from API: {e}") +# return well # Fallback to standard aspiration +# +# def liquid_transfer(self, volume: float, source, destination, +# asp_rate: float = 0.5, disp_rate: float = 1.0, +# blow_out: bool = True, touch_tip: bool = False, +# mix_before: float = 0.0, mix_after: float = 0.0, +# mix_reps: int = 3, new_tip: bool = True, drop_tip: bool = True) -> bool: +# """ +# Transfer liquid using pure API liquid tracking for volume management +# +# Returns: +# bool: True if transfer was successful, False if insufficient volume +# """ +# # Check volume using API methods only +# try: +# current_volume = source.current_liquid_volume() +# if current_volume is None: +# self.protocol.comment("WARNING: API returned None for source volume") +# return False +# +# if current_volume < volume: +# self.protocol.comment(f"WARNING: Insufficient volume. " +# f"Requested: {volume}µL, Available: {current_volume:.0f}µL") +# return False +# +# except Exception as e: +# self.protocol.comment(f"ERROR: Could not check source volume: {e}") +# return False +# +# if new_tip: +# self.pipette.pick_up_tip() +# +# # Get aspiration location using API data + proven calculation +# aspiration_location = self.get_aspiration_location(source) +# +# # Mix before if requested +# if mix_before > 0: +# # Use current volume to limit mixing +# try: +# safe_mix_volume = min(mix_before, current_volume * 0.8) +# self.pipette.mix(mix_reps, safe_mix_volume, aspiration_location) +# except: +# self.protocol.comment("Skipping mix_before due to API error") +# +# # Aspirate +# self.pipette.aspirate(volume, aspiration_location, rate=asp_rate) +# +# # Dispense +# self.pipette.dispense(volume, destination.center(), rate=disp_rate) +# +# # Mix after if requested +# if mix_after > 0: +# self.pipette.mix(mix_reps, mix_after, destination) +# +# if blow_out: +# self.pipette.blow_out() +# +# if touch_tip: +# self.pipette.touch_tip() +# +# if drop_tip: +# self.pipette.drop_tip() +# +# return True + +class Plating(): + """ + Creates a protocol for automated plating of transformed bacteria + + Attributes: + + """ + def __init__(self, + volume_total_reaction: float = 20, + volume_bacteria_transfer: float = 2, + volume_colony: float = 4, + volume_lb_transfer: float = 18, + volume_lb: float = 10000, + replicates: int = 1, + number_dilutions: int = 2, + max_colonies = 192, + + thermocycler_starting_well: int = 0, + # thermocycler_labware: str = 'nest_96_wellplate_100ul_pcr_full_skirt', + thermocycler_labware: str = 'biorad_96_wellplate_200ul_pcr', + + small_tiprack: str = 'opentrons_96_filtertiprack_20ul', + small_tiprack_position: str = '9', + initial_small_tip: str = None, + large_tiprack: str = 'opentrons_96_filtertiprack_200ul', + large_tiprack_position: str = '1', + initial_large_tip:str = None, + small_pipette: str = 'p20_single_gen2', + small_pipette_position: str = 'left', + large_pipette: str = 'p300_single_gen2', + large_pipette_position: str = 'right', + + + # dilution_plate: str = 'nest_96_wellplate_200ul_flat', + dilution_plate: str = 'nest_96_wellplate_100ul_pcr_full_skirt', + dilution_plate_position1: str = '2', + dilution_plate_position2: str = '3', + # agar_plate: str = 'nunc_omnitray_96grid', + agar_plate: str = 'nest_96_wellplate_100ul_pcr_full_skirt', + agar_plate_position1: str = '5', + agar_plate_position2: str = '6', + tube_rack: str = 'opentrons_15_tuberack_falcon_15ml_conical', + tube_rack_position: str = '4', + lb_tube_position: int = 0, + + aspiration_rate: float = 0.5, + dispense_rate: float = 1, + bacterium_locations: Dict = None): + + self.volume_total_reaction = volume_total_reaction + self.volume_bacteria_transfer = volume_bacteria_transfer + self.volume_colony = volume_colony + self.volume_lb_transfer = volume_lb_transfer + self.volume_lb = volume_lb + self.replicates = replicates + self.number_dilutions = number_dilutions + self.thermocycler_starting_well = thermocycler_starting_well + self.thermocycler_labware = thermocycler_labware + self.small_tiprack = small_tiprack + self.small_tiprack_position = small_tiprack_position + self.initial_small_tip = initial_small_tip + self.large_tiprack = large_tiprack + self.large_tiprack_position = large_tiprack_position + self.initial_large_tip = initial_large_tip + self.small_pipette = small_pipette + self.small_pipette_position = small_pipette_position + self.large_pipette = large_pipette + self.large_pipette_position = large_pipette_position + self.dilution_plate = dilution_plate + self.dilution_plate_position1 = dilution_plate_position1 + self.dilution_plate_position2 = dilution_plate_position2 + self.agar_plate = agar_plate + self.agar_plate_position1 = agar_plate_position1 + self.agar_plate_position2 = agar_plate_position2 + self.tube_rack = tube_rack + self.tube_rack_position = tube_rack_position + self.lb_tube_position = lb_tube_position + self.aspiration_rate = aspiration_rate + self.dispense_rate = dispense_rate + self.bacterium_locations = bacterium_locations + self.number_constructs = len(bacterium_locations) + self.total_colonies = self.number_constructs * self.number_dilutions * self.replicates + self.max_colonies = max_colonies + if self.total_colonies > self.max_colonies: + raise ValueError(f"Protocol only supports a max of {self.max_colonies} colonies") + if self.replicates > 8: + raise ValueError("Protocol only supports a max of 8 replicates") + if self.number_dilutions > 2: + raise ValueError("Protocol currently supports a max of 2 dilutions") + + def calculate_plate_layout(self,protocol, plate1, plate2=None): + """ + Calculate the layout for colonies on plates with dynamic buffer between dilutions + Returns: dict with plate assignments and well positions + """ + colonies_per_dilution = self.number_constructs * self.replicates + + layout = { + 'dilution_1': {'plate': 1, 'wells':[]}, + 'dilution_2': {'plate': 1, 'wells':[]} if self.number_dilutions ==2 else None + } + + #Check if we need two plates + if self.number_dilutions ==2 and colonies_per_dilution > 48: + if plate2 is None: + raise ValueError("Two plates required but plate2 not provided") + #Each Dilution gets its own plate + layout['dilution_1']['wells'] = plate1.wells()[:colonies_per_dilution] + layout['dilution_2']['plate'] = 2 + layout['dilution_2']['wells'] = plate2.wells()[:colonies_per_dilution] + protocol.comment(f"Using 2 plates: {colonies_per_dilution} colonies per dilution exceeds single plate capacity") + elif self.number_dilutions ==2 and colonies_per_dilution <= 48: + #Both Dilutions Fit On One Plate + first_half = plate1.wells()[:colonies_per_dilution] + second_half = plate1.wells()[48:48+colonies_per_dilution] + layout['dilution_1']['wells'] = first_half + layout['dilution_2']['wells'] = second_half + protocol.comment(f"Using only one {plate1}: {colonies_per_dilution} colonies on each half") + else: + #Single dilution + layout['dilution_1']['wells'] = plate1.wells()[:colonies_per_dilution] + return layout + + def run(self, protocol: protocol_api.ProtocolContext): + #Labware + #Load the thermocycler module, its default location is on slots 7, 8, 10 and 11 + thermocycler = protocol.load_module('thermocyclerModuleV1') + thermocycler_plate = thermocycler.load_labware(self.thermocycler_labware) + #Load the tipracks + small_tiprack = protocol.load_labware(self.small_tiprack, self.small_tiprack_position) + large_tiprack = protocol.load_labware(self.large_tiprack, self.large_tiprack_position) + #Load the pipettes + small_pipette = protocol.load_instrument(self.small_pipette, self.small_pipette_position, tip_racks=[small_tiprack]) + if self.initial_small_tip: + small_pipette.starting_tip = small_tiprack[self.initial_small_tip] + large_pipette = protocol.load_instrument(self.large_pipette, self.large_pipette_position, tip_racks=[large_tiprack]) + if self.initial_large_tip: + large_pipette.starting_tip = large_tiprack[self.initial_large_tip] + #SmartPipette Wrapper to avoid dunking into the LB + smart_pipette = SmartPipette(large_pipette,protocol) + #Load the tube rack + tube_rack = protocol.load_labware(self.tube_rack, self.tube_rack_position) + lb_tube = tube_rack.wells()[self.lb_tube_position] + #load liquids + liquid_broth = protocol.define_liquid( + name="liquid_broth", + description="Liquid broth for dilutions", + display_color="#D2B48C" + ) + lb_tube.load_liquid(liquid = liquid_broth, volume = self.volume_lb) + # Load bacteria into thermocycler wells + for i, (well_position, construct_names) in enumerate(self.bacterium_locations.items()): + liquid_bacteria = protocol.define_liquid( + name="transformed_bacteria", + description=f"{construct_names}", + display_color=colors[i%len(colors)] + ) + well = thermocycler_plate[well_position] + well.load_liquid(liquid=liquid_bacteria, volume=self.volume_total_reaction) + + # Load the dilution plates and Calculate the layout of the plates + dilution_plate1 = protocol.load_labware(self.dilution_plate, self.dilution_plate_position1) + if self.total_colonies <= len(dilution_plate1.wells()): + dilution_layout = self.calculate_plate_layout(protocol, dilution_plate1) + else: + dilution_plate2 = protocol.load_labware(self.dilution_plate, self.dilution_plate_position2) + dilution_layout = self.calculate_plate_layout(protocol, dilution_plate1, dilution_plate2) + + #Load the Agar plates and Calculate the layout of the plates + agar_plate1 = protocol.load_labware(self.agar_plate, self.agar_plate_position1) + if self.total_colonies <= len(agar_plate1.wells()): + agar_layout = self.calculate_plate_layout(protocol, agar_plate1) + else: + agar_plate2 = protocol.load_labware(self.agar_plate, self.agar_plate_position2) + agar_layout = self.calculate_plate_layout(protocol, agar_plate1, agar_plate2) + + + thermocycler.set_block_temperature(4) + thermocycler.open_lid() + + #Load the Liquid Broth into the dilution wells + protocol.comment("\n=== Step 1: Distributing LB to dilution wells ===") + # Get all wells that will receive LB (both dilutions if applicable) + all_dilution_wells = dilution_layout['dilution_1']['wells'][:] + if self.number_dilutions == 2 and dilution_layout['dilution_2']: + all_dilution_wells.extend(dilution_layout['dilution_2']['wells']) + # Distribute LB efficiently using built-in distribute method + # Process in chunks of 8 wells to update aspiration height + chunk_size = 8 + for i in range(0, len(all_dilution_wells), chunk_size): + chunk_wells = all_dilution_wells[i:i + chunk_size] + + # Get current aspiration location before each chunk + aspiration_location = smart_pipette.get_aspiration_location(lb_tube) + protocol.comment(f"Distributing to wells {i + 1}-{min(i + chunk_size, len(all_dilution_wells))}") + + # Use built-in distribute method with updated aspiration location + large_pipette.distribute( + volume=self.volume_lb_transfer, + source=aspiration_location, + dest=chunk_wells, + disposal_volume=4, # For accuracy + new_tip='once' # Use one tip for the chunk + ) + + # Load liquid tracking for dilution wells + for well in chunk_wells: + well.load_liquid(liquid=liquid_broth, volume=self.volume_lb_transfer) + + #Transfer bacteria to first dilution and process + protocol.comment("\n=== Step 2: Transferring bacteria and plating ===") + + well_index = 0 + for construct_position, construct_names in self.bacterium_locations.items(): + for replicate in range(self.replicates): + # Get source and destination wells + source_well = thermocycler_plate[construct_position] + dilution1_well = dilution_layout['dilution_1']['wells'][well_index] + agar1_well = agar_layout['dilution_1']['wells'][well_index] + + protocol.comment(f"\nProcessing {construct_names[0]} replicate {replicate + 1}") + + # Pick up tip once for entire workflow per well + small_pipette.pick_up_tip() + + # Transfer bacteria to dilution plate 1 + small_pipette.aspirate(self.volume_bacteria_transfer, source_well, rate=self.aspiration_rate) + small_pipette.dispense(self.volume_bacteria_transfer, dilution1_well, rate=self.dispense_rate) + + # Mix in dilution plate 1 (15µL mixing volume) + small_pipette.mix(repetitions=5, volume=19, location=dilution1_well) + + # Plate on agar 1 + small_pipette.aspirate(self.volume_colony, dilution1_well, rate=self.aspiration_rate) + small_pipette.dispense(self.volume_colony, agar1_well.top(-8), rate=self.dispense_rate) + small_pipette.blow_out() + + # If we have a second dilution, continue with same tip + if self.number_dilutions == 2: + dilution2_well = dilution_layout['dilution_2']['wells'][well_index] + agar2_well = agar_layout['dilution_2']['wells'][well_index] + + # Transfer from dilution 1 to dilution 2 + small_pipette.aspirate(self.volume_bacteria_transfer, dilution1_well, rate=self.aspiration_rate) + small_pipette.dispense(self.volume_bacteria_transfer, dilution2_well, rate=self.dispense_rate) + + # Mix in dilution plate 2 + small_pipette.mix(repetitions=5, volume=19, location=dilution2_well) + + # Plate on agar 2 + small_pipette.aspirate(self.volume_colony, dilution2_well, rate=self.aspiration_rate) + small_pipette.dispense(self.volume_colony, agar2_well.top(-8), rate=self.dispense_rate) + small_pipette.blow_out() + + # Drop tip after completing all transfers for this well + small_pipette.drop_tip() + + well_index += 1 + + # Close thermocycler lid + # thermocycler.close_lid() + # thermocycler.deactivate_block() + + protocol.comment("\n=== Plating protocol complete ===") + protocol.comment(f"Plated {self.number_constructs} constructs with {self.replicates} replicates") + protocol.comment(f"Created a total of {self.total_colonies} colonies") + +# metadata +metadata = { + 'protocolName': 'Plating Protocol', + 'author': 'Oscar Rodriguez', + 'description': 'Automated Transformed Bacteria Plating Protocol', + 'apiLevel': '2.23' +} + +# constructs = {"A1":["GVP8"],"A2":["GVP10"],"A3":["GVP12"]} +constructs = {'A1': ['Competent_Cell_DH5alpha_1', ('GVP0008', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_1'), 'Media_1'], 'B1': ['Competent_Cell_DH5alpha_1', ('GVP0008', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_1'), 'Media_1'], 'C1': ['Competent_Cell_DH5alpha_1', ('GVP0008', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_2'), 'Media_1'], 'D1': ['Competent_Cell_DH5alpha_1', ('GVP0008', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_2'), 'Media_1'], 'E1': ['Competent_Cell_DH5alpha_1', ('GVP0010', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_1'), 'Media_1'], 'F1': ['Competent_Cell_DH5alpha_2', ('GVP0010', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_1'), 'Media_1'], 'G1': ['Competent_Cell_DH5alpha_2', ('GVP0010', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_2'), 'Media_1'], 'H1': ['Competent_Cell_DH5alpha_2', ('GVP0010', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_2'), 'Media_1'], 'A2': ['Competent_Cell_DH5alpha_2', ('GVP0012', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_1'), 'Media_1'], 'B2': ['Competent_Cell_DH5alpha_2', ('GVP0012', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_1'), 'Media_1'], 'C2': ['Competent_Cell_DH5alpha_3', ('GVP0012', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_2'), 'Media_1'], 'D2': ['Competent_Cell_DH5alpha_3', ('GVP0012', 'B0034', 'sfGFP', 'B0015', 'Odd_1', 'replicate_2'), 'Media_1']} +def run(protocol: protocol_api.ProtocolContext): + plating_protocol = Plating(bacterium_locations=constructs,replicates=5) + plating_protocol.run(protocol) \ No newline at end of file diff --git a/scripts/run_iGEM_gfp_od.py b/scripts/run_iGEM_gfp_od.py index eb6af16..a0b24f4 100644 --- a/scripts/run_iGEM_gfp_od.py +++ b/scripts/run_iGEM_gfp_od.py @@ -1,4 +1,4 @@ -from pudu.calibration import iGEM_gfp_od +from pudu.calibration import GFPODCalibration from opentrons import protocol_api # metadata @@ -6,9 +6,9 @@ 'protocolName': 'iGEM GFP OD600 calibration', 'author': 'Gonzalo Vidal ', 'description': 'Protocol to perform serial dilutions of fluorescein and nanoparticles for calibration', -'apiLevel': '2.13'} +'apiLevel': '2.14'} def run(protocol= protocol_api.ProtocolContext): - pudu_calibration = iGEM_gfp_od() + pudu_calibration = GFPODCalibration() pudu_calibration.run(protocol) \ No newline at end of file diff --git a/scripts/run_iGEM_rgb_od.py b/scripts/run_iGEM_rgb_od.py index 201686a..a22729c 100644 --- a/scripts/run_iGEM_rgb_od.py +++ b/scripts/run_iGEM_rgb_od.py @@ -1,4 +1,4 @@ -from pudu.calibration import iGEM_rgb_od +from pudu.calibration import RGBODCalibration from opentrons import protocol_api # metadata @@ -6,9 +6,9 @@ 'protocolName': 'iGEM GFP OD600 calibration', 'author': 'Gonzalo Vidal ', 'description': 'Protocol to perform serial dilutions of fluorescein and nanoparticles for calibration', -'apiLevel': '2.13'} +'apiLevel': '2.14'} def run(protocol= protocol_api.ProtocolContext): - pudu_calibration = iGEM_rgb_od() + pudu_calibration = RGBODCalibration() pudu_calibration.run(protocol) \ No newline at end of file diff --git a/src/pudu/assembly.py b/src/pudu/assembly.py index 718dc23..a4cfefd 100644 --- a/src/pudu/assembly.py +++ b/src/pudu/assembly.py @@ -1,69 +1,39 @@ +import xlsxwriter from opentrons import protocol_api -from pudu.utils import thermo_wells, temp_wells, liquid_transfer -from typing import List, Dict, Union +from typing import List, Dict from fnmatch import fnmatch from itertools import product +import json +from abc import ABC, abstractmethod +from pudu.utils import Camera, colors +class BaseAssembly(ABC): + """ + Abstract base class for Loop Assembly protocols. + Contains shared hardware setup, liquid handling, and tip management functionality. + """ -class DNA_assembly(): - ''' - Creates a protocol for automated DNA assembly. - - Attributes - ---------- - volume_total_reaction : float - The total volume of the reaction mix in microliters. By default, 20 microliters. - volume_part : float - The volume of each part in microliters. By default, 2 microliters. - volume_restriction_enzyme : float - The volume of the restriction enzyme in microliters. By default, 2 microliters. - volume_t4_dna_ligase : float - The volume of T4 DNA Ligase in microliters. By default, 4 microliters. - volume_t4_dna_ligase_buffer : float - The volume of T4 DNA Ligase Buffer in microliters. By default, 2 microliters. - replicates : int - The number of replicates of the assembly reaction. By default, 2. - thermocycler_starting_well : int - The starting well of the thermocycler module. By default, 0. - thermocycler_labware : str - The labware type of the thermocycler module. By default, 'nest_96_wellplate_100ul_pcr_full_skirt'. - thermocycler_slots : list - The slots of the thermocycler module. By default, [7, 8, 10, 11]. - temperature_module_labware : str - The labware type of the temperature module. By default, 'opentrons_24_aluminumblock_nest_1.5ml_snapcap'. - temperature_module_slot : int - The slot of the temperature module. By default, 1. - tiprack_labware : str - The labware type of the tiprack. By default, 'opentrons_96_tiprack_20ul'. - tiprack_slot : int - The slot of the tiprack. By default, 9. - pipette_type : str - The type of pipette. By default, 'p20_single_gen2'. - pipette_mount : str - The mount of the pipette. By default, 'left'. - aspiration_rate : float - The rate of aspiration in microliters per second. By default, 0.5 microliters per second. - dispense_rate : float - The rate of dispense in microliters per second. By default, 1 microliter per second. - ''' def __init__(self, - volume_total_reaction:float = 20, - volume_part:float = 2, - volume_restriction_enzyme:float = 2, - volume_t4_dna_ligase:float = 4, - volume_t4_dna_ligase_buffer:float = 2, - replicates:int=2, - thermocycler_starting_well:int = 0, - thermocycler_labware:str = 'nest_96_wellplate_100ul_pcr_full_skirt', - temperature_module_labware:str = 'opentrons_24_aluminumblock_nest_1.5ml_snapcap', - temperature_module_position:int = 1, - tiprack_labware:str = 'opentrons_96_tiprack_20ul', - tiprack_position:int = 9, - pipette:str = 'p20_single_gen2', - pipette_position:str = 'left', - aspiration_rate:float=0.5, - dispense_rate:float=1,): - + volume_total_reaction: float = 20, + volume_part: float = 2, + volume_restriction_enzyme: float = 2, + volume_t4_dna_ligase: float = 4, + volume_t4_dna_ligase_buffer: float = 2, + replicates: int = 1, + thermocycler_starting_well: int = 0, + thermocycler_labware: str = 'nest_96_wellplate_100ul_pcr_full_skirt', + temperature_module_labware: str = 'opentrons_24_aluminumblock_nest_1.5ml_snapcap', + temperature_module_position: str = '1', + tiprack_labware: str = 'opentrons_96_tiprack_20ul', + tiprack_positions: List[str] = None, + pipette: str = 'p20_single_gen2', + pipette_position: str = 'left', + aspiration_rate: float = 0.5, + dispense_rate: float = 1, + take_picture: bool = False, + take_video: bool = False, + water_testing: bool = False): + self.volume_total_reaction = volume_total_reaction self.volume_part = volume_part self.volume_restriction_enzyme = volume_restriction_enzyme @@ -75,141 +45,505 @@ def __init__(self, self.temperature_module_labware = temperature_module_labware self.temperature_module_position = temperature_module_position self.tiprack_labware = tiprack_labware - self.tiprack_position = tiprack_position + if tiprack_positions is None: + self.tiprack_positions = ['2', '3', '4', '5', '6', '9'] + else: + self.tiprack_positions = tiprack_positions self.pipette = pipette self.pipette_position = pipette_position self.aspiration_rate = aspiration_rate self.dispense_rate = dispense_rate - #END - - + self.take_picture = take_picture + self.take_video = take_video + self.water_testing = water_testing -class Domestication(DNA_assembly): - ''' - Creates a protocol for automated domestication, assembly of parts into universal acceptor backbone. - - ''' - def __init__(self, parts:Union[List,Dict], acceptor_backbone:str, - *args, **kwargs): - super().__init__(*args, **kwargs) - - self.parts = parts - self.acceptor_backbone = acceptor_backbone + # Shared tracking dictionaries self.dict_of_parts_in_temp_mod_position = {} self.dict_of_parts_in_thermocycler = {} - #self.sbol_output = [] - #self.xlsx_output = None - - if len(parts) > 19: - raise ValueError(f'This protocol only supports assemblies with up to 20 parts. Number of parts in the protocol is {len(parts)}') - - metadata = { - 'protocolName': 'PUDU Domestication', - 'author': 'Gonzalo Vidal ', - 'description': 'Automated DNA domestication protocol', - 'apiLevel': '2.13'} - - def run(self, protocol: protocol_api.ProtocolContext): - - #Labware - #Load temperature module - tem_mod = protocol.load_module('temperature module', f'{self.temperature_module_position}') #CV: Previously was '3', but the cord was not long enough - tem_mod_block = tem_mod.load_labware(self.temperature_module_labware) - #Load the thermocycler module, its default location is on slots 7, 8, 10 and 11 - thermocycler_mod = protocol.load_module('thermocycler module') - thermocycler_mod_plate = thermocycler_mod.load_labware(self.thermocycler_labware) - #Load the tiprack - tiprack = protocol.load_labware(self.tiprack_labware, f'{self.tiprack_position}') - #Load the pipette - pipette = protocol.load_instrument(self.pipette, self.pipette_position, tip_racks=[tiprack]) - #Fixed volumes + self.dna_list_for_transformation_protocol = [] + self.xlsx_output = None + + #Initialize Camera + self.camera = Camera() + # Tip management + self.tip_management = { + 'all_racks': [], + 'on_deck_racks': [], + 'off_deck_racks': [], + 'available_slots': [], + 'tips_used': 0, + 'tips_per_batch': 0, + 'current_batch': 1, + 'total_batches': 1 + } + + @abstractmethod + def process_assemblies(self): + """Process input assemblies - format-specific implementation""" + pass + + @abstractmethod + def _load_parts_and_enzymes(self, protocol, alum_block) -> int: + """Load parts and enzymes onto temperature module - format-specific""" + pass + + @abstractmethod + def _process_assembly_combinations(self, protocol, pipette, thermo_plate, alum_block, + dd_h2o, t4_dna_ligase_buffer, t4_dna_ligase, + volume_reagents, thermocycler_well_counter) -> int: + """Process all assembly combinations - format-specific""" + pass + + @abstractmethod + def _calculate_total_tips_needed(self) -> int: + """Calculate total tips needed - format-specific implementation""" + pass + + def setup_tip_management(self, protocol): + """Setup batch tip management for high-throughput applications.""" + total_tips_needed = self._calculate_total_tips_needed() + tip_racks_needed = (total_tips_needed + 95) // 96 + + available_deck_slots = self.tiprack_positions + max_racks_on_deck = len(available_deck_slots) + + protocol.comment(f"Protocol requires {total_tips_needed} tips ({tip_racks_needed} racks)") + + all_tip_racks = [] + on_deck_racks = [] + for i in range(min(tip_racks_needed, max_racks_on_deck)): + rack = protocol.load_labware(self.tiprack_labware, available_deck_slots[i]) + all_tip_racks.append(rack) + on_deck_racks.append(rack) + + off_deck_racks = [] + for i in range(max_racks_on_deck, tip_racks_needed): + rack = protocol.load_labware(self.tiprack_labware, protocol_api.OFF_DECK) + all_tip_racks.append(rack) + off_deck_racks.append(rack) + + self.tip_management.update({ + 'all_racks': all_tip_racks, + 'on_deck_racks': on_deck_racks, + 'off_deck_racks': off_deck_racks, + 'available_slots': available_deck_slots, + 'tips_used': 0, + 'tips_per_batch': max_racks_on_deck * 96, + 'current_batch': 1, + 'total_batches': (tip_racks_needed + max_racks_on_deck - 1) // max_racks_on_deck + }) + + if len(off_deck_racks) > 0: + protocol.comment(f"Will perform {self.tip_management['total_batches'] - 1} tip rack batch swaps") + + return all_tip_racks + + def liquid_transfer(self, protocol, pipette, volume, source, dest, + asp_rate: float = 0.5, disp_rate: float = 1.0, + blow_out: bool = True, touch_tip: bool = False, + mix_before: float = 0.0, mix_after: float = 0.0, + mix_reps: int = 3, new_tip: bool = True, + drop_tip: bool = True): + if new_tip: + if self._check_if_swap_needed(): + self._perform_tip_rack_batch_swap(protocol) + try: + pipette.pick_up_tip() + self._increment_tip_counter() + except Exception as e: + protocol.comment(f"Tip pickup failed with error: {e}") + raise + + if mix_before > 0: + pipette.mix(mix_reps, mix_before, source) + + pipette.aspirate(volume, source, rate=asp_rate) + pipette.dispense(volume, dest, rate=disp_rate) + + if mix_after > 0: + pipette.mix(mix_reps, mix_after, dest) + + if blow_out: + pipette.blow_out() + + if touch_tip: + pipette.touch_tip(radius=0.5, v_offset=-14, speed=20) + + if drop_tip: + pipette.drop_tip() + + def get_xlsx_output(self, name: str): + workbook = xlsxwriter.Workbook(f"{name}.xlsx") + worksheet = workbook.add_worksheet() + row_num = 0 + col_num = 0 + worksheet.write(row_num, col_num, "Parts in temp_module") + row_num += 2 + for key, value in self.dict_of_parts_in_temp_mod_position.items(): + worksheet.write(row_num, col_num, key) + worksheet.write(row_num + 1, col_num, value) + col_num += 1 + col_num = 0 + row_num += 4 + worksheet.write(row_num, col_num, "Parts in thermocycler_module") + row_num += 2 + for key, value in self.dict_of_parts_in_thermocycler.items(): + key_str = " + ".join(key) if isinstance(key, tuple) else str(key) + worksheet.write(row_num, col_num, key_str) + worksheet.write(row_num + 1, col_num, value) + col_num += 1 + workbook.close() + self.xlsx_output = workbook + return self.xlsx_output + + def run(self, protocol: protocol_api.ProtocolContext): + """Main protocol execution - uses template method pattern""" + # Process assemblies (format-specific) + self.process_assemblies() + + # Load hardware (shared) + temperature_module = protocol.load_module(module_name='temperature module', + location=self.temperature_module_position) + alum_block = temperature_module.load_labware(self.temperature_module_labware) + + thermocycler_module = protocol.load_module('thermocycler module') + thermo_plate = thermocycler_module.load_labware(name=self.thermocycler_labware) + + all_tip_racks = self.setup_tip_management(protocol) + pipette = protocol.load_instrument(self.pipette, self.pipette_position, tip_racks=all_tip_racks) + + # Load common reagents (shared) + dd_h2o = self._load_reagent(protocol, module_labware=alum_block, well_position=0, + name='Deionized Water') + t4_dna_ligase_buffer = self._load_reagent(protocol, module_labware=alum_block, well_position=1, + name='T4 DNA Ligase Buffer') + t4_dna_ligase = self._load_reagent(protocol, module_labware=alum_block, well_position=2, + name="T4 DNA Ligase") + + # Load parts and enzymes (format-specific) + temp_module_well_counter = self._load_parts_and_enzymes(protocol, alum_block) + + # Setup temperatures + thermocycler_module.open_lid() + if not self.water_testing: + temperature_module.set_temperature(4) + thermocycler_module.set_block_temperature(4) + + # Media capture start + if self.take_picture: + self.camera.capture_picture(protocol, when="start") + if self.take_video: + self.camera.start_video(protocol) + + # Process assemblies (format-specific) volume_reagents = self.volume_restriction_enzyme + self.volume_t4_dna_ligase + self.volume_t4_dna_ligase_buffer - volume_dd_h2o = self.volume_total_reaction - (volume_reagents + self.volume_part*2) - #Load the reagents - restriction_enzyme = tem_mod_block['A1'] - self.dict_of_parts_in_temp_mod_position['restriction_enzyme'] = temp_wells[0] - t4_dna_ligase = tem_mod_block['A2'] - self.dict_of_parts_in_temp_mod_position['t4_dna_ligase'] = temp_wells[1] - t4_dna_ligase_buffer = tem_mod_block['A3'] - self.dict_of_parts_in_temp_mod_position['t4_dna_ligase_buffer'] = temp_wells[2] - dd_h2o = tem_mod_block['A4'] - self.dict_of_parts_in_temp_mod_position['dd_h2o'] = temp_wells[3] - backbone = tem_mod_block['A5'] - self.dict_of_parts_in_temp_mod_position['backbone'] = temp_wells[4] - temp_wells_counter = 5 - #TODO: multiple backbones - #Setup - #Set the temperature of the temperature module and the thermocycler to 4°C - tem_mod.set_temperature(4) - thermocycler_mod.open_lid() - thermocycler_mod.set_block_temperature(4) - #Commands for the mastermix - ending_well = self.thermocycler_starting_well + len(self.parts)*self.replicates - wells = thermo_wells[self.thermocycler_starting_well:ending_well] #wells = ['D6', 'D7'] - #can be done with multichannel pipette - for well in wells: - liquid_transfer(pipette, volume_dd_h2o, dd_h2o, thermocycler_mod_plate[well], self.aspiration_rate, self.dispense_rate) - liquid_transfer(pipette, self.volume_t4_dna_ligase_buffer, t4_dna_ligase_buffer, thermocycler_mod_plate[well], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase_buffer) - liquid_transfer(pipette, self.volume_t4_dna_ligase, t4_dna_ligase, thermocycler_mod_plate[well], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase) - liquid_transfer(pipette, self.volume_restriction_enzyme, restriction_enzyme, thermocycler_mod_plate[well], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_restriction_enzyme) - liquid_transfer(pipette, self.volume_part, backbone, thermocycler_mod_plate[well], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) - #for well in wells: - i = self.thermocycler_starting_well - for part in self.parts: - if type(part) == str: - part_name=part - else: raise ValueError(f'Part {part} is not a string or an sbol3.Component') - self.dict_of_parts_in_temp_mod_position[part_name] = temp_wells[temp_wells_counter] - for r in range(self.replicates): - part_ubication_in_thermocyler = thermocycler_mod_plate[thermo_wells[i]] - if r == 0: - self.dict_of_parts_in_thermocycler[part_name] = [thermo_wells[i]] - else: - self.dict_of_parts_in_thermocycler[part_name].append(thermo_wells[i]) - liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[part_name]], part_ubication_in_thermocyler, self.aspiration_rate, self.dispense_rate, mix_before=self.volume_restriction_enzyme) - i+=1 - temp_wells_counter += 1 - + thermocycler_well_counter = self._process_assembly_combinations( + protocol, pipette, thermo_plate, alum_block, dd_h2o, + t4_dna_ligase_buffer, t4_dna_ligase, volume_reagents, + self.thermocycler_starting_well + ) + protocol.comment('Take out the reagents since the temperature module will be turn off') - #We close the thermocycler lid and wait for the temperature to reach 42°C - thermocycler_mod.close_lid() - #The thermocycler's lid temperature is set with the following command - thermocycler_mod.set_lid_temperature(42) - tem_mod.deactivate() - #Cycles were made following https://pubs.acs.org/doi/10.1021/sb500366v - profile = [ - {'temperature': 42, 'hold_time_minutes': 2}, - {'temperature': 16, 'hold_time_minutes': 5}] - thermocycler_mod.execute_profile(steps=profile, repetitions=25, block_max_volume=30) - - denaturation = [ - {'temperature': 60, 'hold_time_minutes': 10}, - {'temperature': 80, 'hold_time_minutes': 10}] - thermocycler_mod.execute_profile(steps=denaturation, repetitions=1, block_max_volume=30) - thermocycler_mod.set_block_temperature(4) - - #output + + # Thermocycling + if not self.water_testing: + thermocycler_module.close_lid() + thermocycler_module.set_lid_temperature(42) + temperature_module.deactivate() + + # Media capture end + if self.take_video: + self.camera.stop_video(protocol) + if self.take_picture: + self.camera.capture_picture(protocol, when="end") + + # Execute thermocycling profiles + if not self.water_testing: + profile = [ + {'temperature': 42, 'hold_time_minutes': 2}, + {'temperature': 16, 'hold_time_minutes': 5} + ] + denaturation = [ + {'temperature': 60, 'hold_time_minutes': 10}, + {'temperature': 80, 'hold_time_minutes': 10} + ] + thermocycler_module.execute_profile(steps=profile, repetitions=75, block_max_volume=30) + thermocycler_module.execute_profile(steps=denaturation, repetitions=1, block_max_volume=30) + thermocycler_module.set_block_temperature(4) + + # Output results print('Parts and reagents in temp_module') print(self.dict_of_parts_in_temp_mod_position) - print('Domesticated parts in thermocycler_module') + print('Assembled parts in thermocycler_module') print(self.dict_of_parts_in_thermocycler) - #END + print('DNA list for transformation protocol') + print(self.dna_list_for_transformation_protocol) + + # Helper methods (shared) + def _load_reagent(self, protocol, module_labware, well_position, name, description=None, + volume=1000, color_index=None): + """Load a reagent or DNA part onto the temperature module.""" + well = module_labware.wells()[well_position] + well_name = well.well_name + + if description is None: + description = name + if color_index is None: + color_index = len(self.dict_of_parts_in_temp_mod_position) % len(colors) + + liquid = protocol.define_liquid(name=name, description=description, + display_color=colors[color_index]) + well.load_liquid(liquid, volume=volume) + + self.dict_of_parts_in_temp_mod_position[name] = well_name + protocol.comment(f"Loaded {name} at position {well_name}") + + return well + + def _increment_tip_counter(self): + """Increment tip usage counter""" + self.tip_management['tips_used'] += 1 + + def _check_if_swap_needed(self): + current_batch_tips = self.tip_management['tips_used'] % self.tip_management['tips_per_batch'] + return (current_batch_tips == 0 and + self.tip_management['tips_used'] > 0 and + len(self.tip_management['off_deck_racks']) > 0) + + def _perform_tip_rack_batch_swap(self, protocol): + """Perform tip rack batch swap when current batch is exhausted""" + available_slots = self.tip_management['available_slots'] + + for rack in self.tip_management['on_deck_racks']: + protocol.move_labware(labware=rack, new_location=protocol_api.OFF_DECK) + + remaining_racks = len(self.tip_management['off_deck_racks']) + racks_to_move = min(len(available_slots), remaining_racks) + + new_on_deck_racks = [] + for i in range(racks_to_move): + rack = self.tip_management['off_deck_racks'].pop(0) + protocol.move_labware(labware=rack, new_location=available_slots[i]) + new_on_deck_racks.append(rack) + self.tip_management['on_deck_racks'] = new_on_deck_racks + self.tip_management['current_batch'] += 1 + protocol.comment(f"Tip rack batch {self.tip_management['current_batch']} ready!") -class Loop_assembly(DNA_assembly): - ''' - Creates a protocol for the automated Odd and/or Even level Loop assembly. +class Domestication(BaseAssembly): + """ + Domestication Assembly - inserts individual parts into universal acceptor backbone. + Each part is assembled separately with the backbone to create domesticated parts. + """ - ''' - def __init__(self, assemblies:List[Dict], - *args, **kwargs): + def __init__(self, assemblies: List[Dict], *args, **kwargs): + super().__init__(*args, **kwargs) + self.assemblies = assemblies + self.parts_list = [] + self.backbone = "" + self.restriction_enzyme = "" + + def process_assemblies(self): + """Process domestication assembly input and validate format""" + self._reset_assembly_state() + # Domestication should have exactly one assembly + if len(self.assemblies) != 1: + raise ValueError(f"Domestication supports exactly one assembly, got {len(self.assemblies)}") + + assembly = self.assemblies[0] + required_keys = {"parts", "backbone", "restriction_enzyme"} + assembly_keys = set(assembly.keys()) + + if not required_keys.issubset(assembly_keys): + missing_keys = required_keys - assembly_keys + raise ValueError(f"Domestication assembly missing required keys: {missing_keys}") + + # Extract and validate parts + parts = assembly["parts"] + if isinstance(parts, str): + self.parts_list = [parts] + elif isinstance(parts, list): + self.parts_list = parts + else: + raise ValueError("Parts must be a string or list of strings") + + # Extract and validate backbone (must be single value) + backbone = assembly["backbone"] + if isinstance(backbone, list): + if len(backbone) > 1: + raise ValueError("Domestication supports only one backbone") + self.backbone = backbone[0] + else: + self.backbone = backbone + + # Extract and validate restriction enzyme (must be single value) + restriction_enzyme = assembly["restriction_enzyme"] + if isinstance(restriction_enzyme, list): + if len(restriction_enzyme) > 1: + raise ValueError("Domestication supports only one restriction enzyme") + self.restriction_enzyme = restriction_enzyme[0] + else: + self.restriction_enzyme = restriction_enzyme + + self._validate_assembly_requirements() + + def _load_parts_and_enzymes(self, protocol, alum_block) -> int: + """Load restriction enzyme, backbone, and parts for domestication""" + temp_module_well_counter = 3 # Starting after common reagents (water, ligase buffer, ligase) + + # Load restriction enzyme + self._load_reagent(protocol, module_labware=alum_block, + well_position=temp_module_well_counter, + name=f"Restriction Enzyme {self.restriction_enzyme}") + temp_module_well_counter += 1 + + # Load backbone + self._load_reagent(protocol, module_labware=alum_block, + well_position=temp_module_well_counter, + name=f"Backbone {self.backbone}") + temp_module_well_counter += 1 + + # Load individual parts + for part in self.parts_list: + self._load_reagent(protocol, module_labware=alum_block, + well_position=temp_module_well_counter, + name=f"Part {part}") + temp_module_well_counter += 1 + + return temp_module_well_counter + + def _process_assembly_combinations(self, protocol, pipette, thermo_plate, alum_block, + dd_h2o, t4_dna_ligase_buffer, t4_dna_ligase, + volume_reagents, thermocycler_well_counter) -> int: + """Process domestication assemblies - each part with backbone separately""" + + # Get reagent sources + restriction_enzyme = alum_block[ + self.dict_of_parts_in_temp_mod_position[f"Restriction Enzyme {self.restriction_enzyme}"]] + backbone_source = alum_block[self.dict_of_parts_in_temp_mod_position[f"Backbone {self.backbone}"]] + + # Process each part + for part in self.parts_list: + part_source = alum_block[self.dict_of_parts_in_temp_mod_position[f"Part {part}"]] + + # Process replicates for this part + for r in range(self.replicates): + dest_well = thermo_plate.wells()[thermocycler_well_counter] + dest_well_name = dest_well.well_name + + # Calculate water volume (total - reagents - 2 parts: backbone + part) + volume_dd_h20 = self.volume_total_reaction - (volume_reagents + self.volume_part * 2) + + # Add reagents + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=volume_dd_h20, + source=dd_h2o, dest=dest_well, + asp_rate=self.aspiration_rate, disp_rate=self.dispense_rate, + touch_tip=True) + + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=self.volume_t4_dna_ligase_buffer, + source=t4_dna_ligase_buffer, dest=dest_well, + asp_rate=self.aspiration_rate, disp_rate=self.dispense_rate, + mix_before=self.volume_t4_dna_ligase_buffer, touch_tip=True) + + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=self.volume_t4_dna_ligase, + source=t4_dna_ligase, dest=dest_well, + asp_rate=self.aspiration_rate, disp_rate=self.dispense_rate, + mix_before=self.volume_t4_dna_ligase, touch_tip=True) + + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=self.volume_restriction_enzyme, + source=restriction_enzyme, dest=dest_well, + asp_rate=self.aspiration_rate, disp_rate=self.dispense_rate, + mix_before=self.volume_restriction_enzyme, touch_tip=True) + + # Add backbone + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=self.volume_part, + source=backbone_source, dest=dest_well, + asp_rate=self.aspiration_rate, disp_rate=self.dispense_rate, + mix_before=self.volume_part, touch_tip=True) + + # Add part (don't drop tip yet) + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=self.volume_part, + source=part_source, dest=dest_well, + asp_rate=self.aspiration_rate, disp_rate=self.dispense_rate, + mix_before=self.volume_part, touch_tip=True, drop_tip=False) + + # Remove air bubbles with mixing + for _ in range(int(self.volume_total_reaction / 10)): + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=self.volume_total_reaction, + source=dest_well.bottom(), dest=dest_well.bottom(8), + asp_rate=1.0, disp_rate=1.0, new_tip=False, drop_tip=False, + touch_tip=True) + pipette.drop_tip() + + # Track assembly + assembly_name = f"Part: {part}, Replicate: {r + 1}" + self.dict_of_parts_in_thermocycler[assembly_name] = dest_well_name + self.dna_list_for_transformation_protocol.append((self.backbone, part, f'replicate_{r + 1}')) + + thermocycler_well_counter += 1 + + return thermocycler_well_counter + + def _calculate_total_tips_needed(self, number_of_constant_reagents: int = 6) -> int: + """Calculate total tips needed for domestication + + Args: + number_of_constant_reagents: water + ligase buffer + ligase + enzyme + backbone + part = 6 + """ + total_assemblies = len(self.parts_list) * self.replicates + return number_of_constant_reagents * total_assemblies + + def _validate_assembly_requirements(self): + """Validate domestication assembly requirements""" + if not self.parts_list: + raise ValueError("No parts provided for domestication") + + if not self.backbone: + raise ValueError("No backbone provided for domestication") + + if not self.restriction_enzyme: + raise ValueError("No restriction enzyme provided for domestication") + + # Calculate reagent positions: water(1) + ligase buffer(1) + ligase(1) + enzyme(1) + backbone(1) = 5 + reagent_positions = 5 + max_parts = 24 - reagent_positions + + if len(self.parts_list) > max_parts: + raise ValueError( + f'This protocol only supports domestication with up to {max_parts} parts. ' + f'Number of parts provided is {len(self.parts_list)}. ' + f'Parts: {self.parts_list}. ' + f'Reagent positions used: {reagent_positions}/24' + ) + + # Validate thermocycler capacity + available_wells = 96 - self.thermocycler_starting_well + wells_needed = len(self.parts_list) * self.replicates + + if wells_needed > available_wells: + raise ValueError( + f'This protocol only supports assemblies with up to {available_wells} ' + f'wells. Number of assemblies needed is {wells_needed} ' + f'({len(self.parts_list)} parts × {self.replicates} replicates).' + ) + + def _reset_assembly_state(self): + """Reset assembly processing state""" + self.parts_list = [] + self.backbone = "" + self.restriction_enzyme = "" + + +class ManualLoopAssembly(BaseAssembly): + """ + Manual/Combinatorial Loop Assembly - generates combinations from roles. + Supports Odd/Even pattern detection for automatic enzyme selection. + """ + + def __init__(self, assemblies: List[Dict], *args, **kwargs): super().__init__(*args, **kwargs) - self.assemblies = assemblies - self.dict_of_parts_in_temp_mod_position = {} - self.dict_of_parts_in_thermocycler = {} - self.assembly_plan = None self.pattern_odd = 'Odd*' self.pattern_even = 'Even*' self.parts_set = set() @@ -217,159 +551,503 @@ def __init__(self, assemblies:List[Dict], self.has_even = False self.odd_combinations = [] self.even_combinations = [] - - # add parts to a set + + def process_assemblies(self): + """Process manual format assemblies and generate combinations""" + self._reset_assembly_state() + for assembly in self.assemblies: - list_of_list_of_parts_per_role = [] - if fnmatch(assembly['receiver'], self.pattern_odd): + assembly_type = self._get_assembly_type(assembly['receiver']) + if assembly_type == 'odd': self.has_odd = True - for role in assembly: - parts = assembly[role] - if type(parts) is str: - parts_per_role = [parts] - else: - parts_per_role = parts - for part in parts_per_role: - self.parts_set.add(part) - list_of_list_of_parts_per_role.append(parts_per_role) - list_of_combinations_per_assembly = list(product(*list_of_list_of_parts_per_role)) - for combination in list_of_combinations_per_assembly: - self.odd_combinations.append(combination) - if fnmatch(assembly['receiver'], self.pattern_even): - self.has_even = True - for role in assembly: - parts = assembly[role] - if type(parts) is str: - parts_per_role = [parts] - else: - parts_per_role = parts - for part in parts_per_role: - self.parts_set.add(part) - list_of_list_of_parts_per_role.append(parts_per_role) - list_of_combinations_per_assembly = list(product(*list_of_list_of_parts_per_role)) - for combination in list_of_combinations_per_assembly: - self.even_combinations.append(combination) - - if self.has_odd and self.has_even: - max_parts = 18 - elif self.has_odd or self.has_even: - max_parts = 19 - else: - raise ValueError('Assembly does not have any Even or Odd receiver, check assembly dictionaries and patterns for Odd and Even receivers') - if len(self.parts_set) > max_parts: - raise ValueError(f'This protocol only supports assemblies with up to {max_parts} parts. Number of parts in the protocol is {len(self.parts_set)}. Printing parts set:{self.parts_set}') - thermocyler_available_wells = 96 - self.thermocycler_starting_well - thermocycler_wells_needed = (len(self.odd_combinations) + len(self.even_combinations))*self.replicates - if thermocycler_wells_needed > thermocyler_available_wells: - raise ValueError(f'According to your setup this protocol only supports assemblies with up to {thermocyler_available_wells} combinations. Number of combinations in the protocol is {thermocycler_wells_needed}.') - - def run(self, protocol: protocol_api.ProtocolContext): - #Labware - #Load temperature module - tem_mod = protocol.load_module('temperature module', f'{self.temperature_module_position}') #CV: Previously was '3', but the cord was not long enough - tem_mod_block = tem_mod.load_labware(self.temperature_module_labware) - #Load the thermocycler module, its default location is on slots 7, 8, 10 and 11 - thermocycler_mod = protocol.load_module('thermocycler module') - thermocycler_mod_plate = thermocycler_mod.load_labware(self.thermocycler_labware) - #Load the tiprack - tiprack = protocol.load_labware(self.tiprack_labware, f'{self.tiprack_position}') - #Load the pipette - pipette = protocol.load_instrument(self.pipette, self.pipette_position, tip_racks=[tiprack]) - #Fixed volumes - volume_reagents = self.volume_restriction_enzyme + self.volume_t4_dna_ligase + self.volume_t4_dna_ligase_buffer - #Load the reagents - dd_h2o = tem_mod_block['A1'] - self.dict_of_parts_in_temp_mod_position['dd_h2o'] = temp_wells[0] - t4_dna_ligase = tem_mod_block['A2'] - self.dict_of_parts_in_temp_mod_position['t4_dna_ligase'] = temp_wells[1] - t4_dna_ligase_buffer = tem_mod_block['A3'] - self.dict_of_parts_in_temp_mod_position['t4_dna_ligase_buffer'] = temp_wells[2] - temp_wells_counter = 3 + combos = self._generate_combinations_for_assembly(assembly) + self.odd_combinations.extend(combos) + if assembly_type == 'even': + self.has_even = True + combos = self._generate_combinations_for_assembly(assembly) + self.even_combinations.extend(combos) + + self._validate_assembly_requirements() + + def _load_parts_and_enzymes(self, protocol, alum_block) -> int: + """Load enzymes and parts for manual format""" + temp_module_well_counter = 3 # Starting after common reagents + + # Load enzymes based on Odd/Even detection if self.has_odd: - restriction_enzyme_bsai = tem_mod_block[temp_wells[temp_wells_counter]] - self.dict_of_parts_in_temp_mod_position['BsaI'] = temp_wells[temp_wells_counter] - temp_wells_counter += 1 + self._load_reagent(protocol, module_labware=alum_block, + well_position=temp_module_well_counter, + name="Restriction Enzyme BSAI") + temp_module_well_counter += 1 + + if self.has_even: + self._load_reagent(protocol, module_labware=alum_block, + well_position=temp_module_well_counter, + name="Restriction Enzyme SAPI") + temp_module_well_counter += 1 + + # Load parts + for part in sorted(self.parts_set): + self._load_reagent(protocol, module_labware=alum_block, + well_position=temp_module_well_counter, + name=f"{part}") + temp_module_well_counter += 1 + + return temp_module_well_counter + + def _process_assembly_combinations(self, protocol, pipette, thermo_plate, alum_block, + dd_h2o, t4_dna_ligase_buffer, t4_dna_ligase, + volume_reagents, thermocycler_well_counter) -> int: + """Process manual format combinations with automatic enzyme selection""" + + if self.has_odd: + restriction_enzyme_bsai = alum_block[self.dict_of_parts_in_temp_mod_position["Restriction Enzyme BSAI"]] + thermocycler_well_counter = self._process_combinations( + protocol=protocol, pipette=pipette, + combinations=self.odd_combinations, + restriction_enzyme=restriction_enzyme_bsai, + thermo_plate=thermo_plate, alum_block=alum_block, + dd_h2o=dd_h2o, t4_dna_ligase_buffer=t4_dna_ligase_buffer, + t4_dna_ligase=t4_dna_ligase, volume_reagents=volume_reagents, + thermocycler_well_counter=thermocycler_well_counter + ) + if self.has_even: - restriction_enzyme_sapi = tem_mod_block[temp_wells[temp_wells_counter]] - self.dict_of_parts_in_temp_mod_position['SapI'] = temp_wells[temp_wells_counter] - temp_wells_counter += 1 - #Load the parts - for part in self.parts_set: - self.dict_of_parts_in_temp_mod_position[part] = temp_wells[temp_wells_counter] - temp_wells_counter += 1 - #Setup - #Set the temperature of the temperature module and the thermocycler to 4°C - tem_mod.set_temperature(4) - thermocycler_mod.open_lid() - thermocycler_mod.set_block_temperature(4) - #can be done with multichannel pipette? - current_thermocycler_well = self.thermocycler_starting_well - #build combinations - for odd_combination in self.odd_combinations: - #pippeting reagents - volume_dd_h2o = self.volume_total_reaction - (volume_reagents + self.volume_part*len(odd_combination)) - liquid_transfer(pipette, volume_dd_h2o, dd_h2o, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate) - liquid_transfer(pipette, self.volume_t4_dna_ligase_buffer, t4_dna_ligase_buffer, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase_buffer) - liquid_transfer(pipette, self.volume_t4_dna_ligase, t4_dna_ligase, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase) - liquid_transfer(pipette, self.volume_restriction_enzyme, restriction_enzyme_bsai, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_restriction_enzyme) - #pippeting parts + restriction_enzyme_sapi = alum_block[self.dict_of_parts_in_temp_mod_position["Restriction Enzyme SAPI"]] + thermocycler_well_counter = self._process_combinations( + protocol=protocol, pipette=pipette, + combinations=self.even_combinations, + restriction_enzyme=restriction_enzyme_sapi, + thermo_plate=thermo_plate, alum_block=alum_block, + dd_h2o=dd_h2o, t4_dna_ligase_buffer=t4_dna_ligase_buffer, + t4_dna_ligase=t4_dna_ligase, volume_reagents=volume_reagents, + thermocycler_well_counter=thermocycler_well_counter + ) + + return thermocycler_well_counter + + def _calculate_total_tips_needed(self, number_of_constant_reagents: int = 4) -> int: + """Calculate total tips for manual format""" + total_combinations = len(self.odd_combinations) + len(self.even_combinations) + reagent_tips = number_of_constant_reagents + total_reagent_tips = reagent_tips * total_combinations * self.replicates + + total_part_tips = 0 + for combination in self.odd_combinations + self.even_combinations: + total_part_tips += len(combination) * self.replicates + + return total_reagent_tips + total_part_tips + + # Manual format helper methods + def _reset_assembly_state(self): + """Reset assembly processing state""" + self.parts_set = set() + self.has_odd = False + self.has_even = False + self.odd_combinations = [] + self.even_combinations = [] + + def _get_assembly_type(self, receiver_name): + """Determine if assembly is odd, even, or neither""" + if fnmatch(receiver_name, self.pattern_odd): + return 'odd' + if fnmatch(receiver_name, self.pattern_even): + return 'even' + raise ValueError( + f"Assembly receiver '{receiver_name}' does not match naming convention. " + f"Must be odd pattern '{self.pattern_odd}' or even pattern '{self.pattern_even}'. " + f"Check receiver naming." + ) + + def _generate_combinations_for_assembly(self, assembly): + """Generate all possible part combinations for a single assembly""" + parts_per_role = [] + for role, parts in assembly.items(): + if isinstance(parts, str): + parts_list = [parts] + else: + parts_list = list(parts) + + self.parts_set.update(parts_list) + parts_per_role.append(parts_list) + + return list(product(*parts_per_role)) + + def _validate_assembly_requirements(self): + """Validate manual assembly requirements""" + if not (self.has_odd or self.has_even): + raise ValueError( + "Assembly does not have any Even or Odd receiver. " + "Check assembly dictionaries for Odd and Even receivers." + ) + + reagent_positions = 3 + int(self.has_odd) + int(self.has_even) + max_parts = 24 - reagent_positions + + if len(self.parts_set) > max_parts: + raise ValueError( + f'This protocol only supports assemblies with up to {max_parts} parts. ' + f'Number of parts in the protocol is {len(self.parts_set)}. ' + f'Parts: {self.parts_set}. ' + f'Reagent positions used: {reagent_positions}/24' + ) + + available_wells = 96 - self.thermocycler_starting_well + total_combinations = len(self.odd_combinations) + len(self.even_combinations) + wells_needed = total_combinations * self.replicates + + if wells_needed > available_wells: + raise ValueError( + f'This protocol only supports assemblies with up to {available_wells} ' + f'combinations. Number of combinations in the protocol are {wells_needed}.' + ) + + def _process_combinations(self, protocol, pipette, combinations, restriction_enzyme, + thermo_plate, alum_block, dd_h2o, t4_dna_ligase_buffer, + t4_dna_ligase, volume_reagents, thermocycler_well_counter): + """Process combinations with specified restriction enzyme""" + + for combination in combinations: for r in range(self.replicates): - for part in odd_combination: - if type(part) == str: - part_name=part - else: raise ValueError(f'Part {part} is not a string nor sbol3.Component') - #part_ubication_in_thermocyler = thermocycler_mod_plate[thermo_wells[current_thermocycler_well]] - liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[part_name]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) - self.dict_of_parts_in_thermocycler[odd_combination] = thermo_wells[current_thermocycler_well] - current_thermocycler_well+=1 - - for even_combination in self.even_combinations: - #pippeting reagents - volume_dd_h2o = self.volume_total_reaction - (volume_reagents + self.volume_part*len(even_combination)) - liquid_transfer(pipette, volume_dd_h2o, dd_h2o, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate) - liquid_transfer(pipette, self.volume_t4_dna_ligase_buffer, t4_dna_ligase_buffer, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase_buffer) - liquid_transfer(pipette, self.volume_t4_dna_ligase, t4_dna_ligase, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_t4_dna_ligase) - liquid_transfer(pipette, self.volume_restriction_enzyme, restriction_enzyme_sapi, thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_restriction_enzyme) - #pippeting parts + dest_well = thermo_plate.wells()[thermocycler_well_counter] + dest_well_name = dest_well.well_name + + volume_dd_h20 = self.volume_total_reaction - (volume_reagents + self.volume_part * len(combination)) + + # Add reagents + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=volume_dd_h20, + source=dd_h2o, dest=dest_well, + asp_rate=self.aspiration_rate, disp_rate=self.dispense_rate, touch_tip=True) + + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=self.volume_t4_dna_ligase_buffer, + source=t4_dna_ligase_buffer, dest=dest_well, + asp_rate=self.aspiration_rate, disp_rate=self.dispense_rate, + mix_before=self.volume_t4_dna_ligase_buffer, touch_tip=True) + + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=self.volume_t4_dna_ligase, + source=t4_dna_ligase, dest=dest_well, + asp_rate=self.aspiration_rate, disp_rate=self.dispense_rate, + mix_before=self.volume_t4_dna_ligase, touch_tip=True) + + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=self.volume_restriction_enzyme, + source=restriction_enzyme, dest=dest_well, + asp_rate=self.aspiration_rate, disp_rate=self.dispense_rate, + mix_before=self.volume_restriction_enzyme, touch_tip=True) + + # Add parts + for i, part in enumerate(combination): + part_source = alum_block[self.dict_of_parts_in_temp_mod_position[part]] + if i == len(combination) - 1: # Don't drop tip on last part + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=self.volume_part, + source=part_source, dest=dest_well, + asp_rate=self.aspiration_rate, disp_rate=self.dispense_rate, + mix_before=self.volume_part, touch_tip=True, drop_tip=False) + else: + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=self.volume_part, + source=part_source, dest=dest_well, + asp_rate=self.aspiration_rate, disp_rate=self.dispense_rate, + mix_before=self.volume_part, touch_tip=True) + + # Remove air bubbles + for _ in range(int(self.volume_total_reaction / 10)): + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=self.volume_total_reaction, + source=dest_well.bottom(), dest=dest_well.bottom(8), + asp_rate=1.0, disp_rate=1.0, new_tip=False, drop_tip=False, touch_tip=True) + pipette.drop_tip() + + # Track combination + self.dict_of_parts_in_thermocycler[f"Replicate: {r + 1}, Combination: {combination}"] = dest_well_name + self.dna_list_for_transformation_protocol.append(combination + (f'replicate_{r + 1}',)) + thermocycler_well_counter += 1 + + return thermocycler_well_counter + + +class SBOLLoopAssembly(BaseAssembly): + """ + SBOL Loop Assembly - handles explicit assembly dictionaries from SBOL format. + Each assembly dictionary represents one specific construct to build. + """ + + def __init__(self, assemblies: List[Dict], *args, **kwargs): + super().__init__(*args, **kwargs) + self.assemblies = assemblies + self.parts_set = set() + self.backbone_set = set() + self.restriction_enzyme_set = set() + self.combined_set = set() + self.assembly_combinations = [] # SBOL assemblies are explicit, not combinatorial + + def process_assemblies(self): + """Process SBOL format assemblies - each is explicit, no combinations needed""" + self._reset_assembly_state() + + for assembly in self.assemblies: + # Extract parts from PartsList + part_names = [] + for part_uri in assembly["PartsList"]: + part_name = self._extract_name_from_uri(part_uri) + self.parts_set.add(part_name) + part_names.append(part_name) + + # Extract backbone + backbone_name = self._extract_name_from_uri(assembly["Backbone"]) + self.backbone_set.add(backbone_name) + + # Extract restriction enzyme + enzyme_name = self._extract_name_from_uri(assembly["Restriction Enzyme"]) + self.restriction_enzyme_set.add(enzyme_name) + + # Extract product name + product_name = self._extract_name_from_uri(assembly["Product"]) + assembly_combo = { + 'parts': [backbone_name] + part_names, # Include backbone as first part + 'enzyme': enzyme_name, + 'product': product_name + } + self.assembly_combinations.append(assembly_combo) + + self.combined_set = self.parts_set.union(self.backbone_set) + self._validate_assembly_requirements() + + def _load_parts_and_enzymes(self, protocol, alum_block) -> int: + """Load enzymes and parts for SBOL format""" + temp_module_well_counter = 3 # Starting after common reagents + + # Load all unique restriction enzymes + for enzyme_name in sorted(self.restriction_enzyme_set): + self._load_reagent(protocol, module_labware=alum_block, + well_position=temp_module_well_counter, + name=f"Restriction Enzyme {enzyme_name}") + temp_module_well_counter += 1 + + # Load all unique parts (including backbones) + for part in sorted(self.combined_set): + self._load_reagent(protocol, module_labware=alum_block, + well_position=temp_module_well_counter, + name=f"{part}") + temp_module_well_counter += 1 + + return temp_module_well_counter + + def _process_assembly_combinations(self, protocol, pipette, thermo_plate, alum_block, + dd_h2o, t4_dna_ligase_buffer, t4_dna_ligase, + volume_reagents, thermocycler_well_counter) -> int: + """Process SBOL assembly combinations with explicit enzyme selection""" + + for assembly_combo in self.assembly_combinations: for r in range(self.replicates): - for part in even_combination: - if type(part) == str: - part_name=part - else: raise ValueError(f'Part {part} is not a string nor sbol3.Component') - liquid_transfer(pipette, self.volume_part, tem_mod_block[self.dict_of_parts_in_temp_mod_position[part_name]], thermocycler_mod_plate[thermo_wells[current_thermocycler_well]], self.aspiration_rate, self.dispense_rate, mix_before=self.volume_part) - self.dict_of_parts_in_thermocycler[even_combination] = thermo_wells[current_thermocycler_well] - current_thermocycler_well+=1 - - protocol.comment('Take out the reagents since the temperature module will be turn off') - #We close the thermocycler lid and wait for the temperature to reach 42°C - thermocycler_mod.close_lid() - #The thermocycler's lid temperature is set with the following command - thermocycler_mod.set_lid_temperature(42) - tem_mod.deactivate() - #Cycles were made following https://pubs.acs.org/doi/10.1021/sb500366v - profile = [ - {'temperature': 42, 'hold_time_minutes': 2}, - {'temperature': 16, 'hold_time_minutes': 5}] - thermocycler_mod.execute_profile(steps=profile, repetitions=25, block_max_volume=30) - - denaturation = [ - {'temperature': 60, 'hold_time_minutes': 10}, - {'temperature': 80, 'hold_time_minutes': 10}] - thermocycler_mod.execute_profile(steps=denaturation, repetitions=1, block_max_volume=30) - thermocycler_mod.set_block_temperature(4) - #END - - #output - print('Parts and reagents in temp_module') - print(self.dict_of_parts_in_temp_mod_position) - print('Assembled parts in thermocycler_module') - print(self.dict_of_parts_in_thermocycler) + dest_well = thermo_plate.wells()[thermocycler_well_counter] + dest_well_name = dest_well.well_name + + parts = assembly_combo['parts'] + enzyme_name = assembly_combo['enzyme'] + product_name = assembly_combo['product'] + + volume_dd_h20 = self.volume_total_reaction - (volume_reagents + self.volume_part * len(parts)) + + # Add reagents + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=volume_dd_h20, + source=dd_h2o, dest=dest_well, + asp_rate=self.aspiration_rate, disp_rate=self.dispense_rate, touch_tip=True) + + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=self.volume_t4_dna_ligase_buffer, + source=t4_dna_ligase_buffer, dest=dest_well, + asp_rate=self.aspiration_rate, disp_rate=self.dispense_rate, + mix_before=self.volume_t4_dna_ligase_buffer, touch_tip=True) + + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=self.volume_t4_dna_ligase, + source=t4_dna_ligase, dest=dest_well, + asp_rate=self.aspiration_rate, disp_rate=self.dispense_rate, + mix_before=self.volume_t4_dna_ligase, touch_tip=True) + + # Add restriction enzyme (explicit from SBOL) + restriction_enzyme = alum_block[ + self.dict_of_parts_in_temp_mod_position[f"Restriction Enzyme {enzyme_name}"]] + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=self.volume_restriction_enzyme, + source=restriction_enzyme, dest=dest_well, + asp_rate=self.aspiration_rate, disp_rate=self.dispense_rate, + mix_before=self.volume_restriction_enzyme, touch_tip=True) + + # Add parts (including backbone) + for i, part in enumerate(parts): + part_source = alum_block[self.dict_of_parts_in_temp_mod_position[part]] + if i == len(parts) - 1: # Don't drop tip on last part + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=self.volume_part, + source=part_source, dest=dest_well, + asp_rate=self.aspiration_rate, disp_rate=self.dispense_rate, + mix_before=self.volume_part, touch_tip=True, drop_tip=False) + else: + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=self.volume_part, + source=part_source, dest=dest_well, + asp_rate=self.aspiration_rate, disp_rate=self.dispense_rate, + mix_before=self.volume_part, touch_tip=True) + + # Remove air bubbles + for _ in range(int(self.volume_total_reaction / 10)): + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=self.volume_total_reaction, + source=dest_well.bottom(), dest=dest_well.bottom(8), + asp_rate=1.0, disp_rate=1.0, new_tip=False, drop_tip=False, touch_tip=True) + pipette.drop_tip() + + # Track assembly + self.dict_of_parts_in_thermocycler[f"Replicate: {r + 1}, Product: {product_name}"] = dest_well_name + self.dna_list_for_transformation_protocol.append(tuple(parts + [f'replicate_{r + 1}'])) + thermocycler_well_counter += 1 + + return thermocycler_well_counter + + def _calculate_total_tips_needed(self, number_of_constant_reagents: int = 4) -> int: + """Calculate total tips for SBOL format""" + total_assemblies = len(self.assembly_combinations) + reagent_tips = number_of_constant_reagents + total_reagent_tips = reagent_tips * total_assemblies * self.replicates + + total_part_tips = 0 + for assembly_combo in self.assembly_combinations: + total_part_tips += len(assembly_combo['parts']) * self.replicates + + return total_reagent_tips + total_part_tips + + # SBOL format helper methods + def _reset_assembly_state(self): + """Reset assembly processing state""" + self.parts_set = set() + self.backbone_set = set() + self.restriction_enzyme_set = set() + self.combined_set = set() + self.assembly_combinations = [] + + def _extract_name_from_uri(self, uri: str) -> str: + """Extract part name from SBOL URI""" + # Extract the last segment after the last '/' + if '/' in uri: + name_with_version = uri.split('/')[-2] + # Remove version number if present (e.g., "GFP/1" -> "GFP") + if '/' in name_with_version: + return name_with_version.split('/')[0] + return name_with_version + return uri + + def _validate_assembly_requirements(self): + """Validate SBOL assembly requirements""" + if not self.assembly_combinations: + raise ValueError("No valid SBOL assemblies found in input.") + + # Calculate reagent positions: water(1) + ligase(1) + buffer(1) + unique enzymes + reagent_positions = 3 + len(self.restriction_enzyme_set) + max_parts = 24 - reagent_positions + + if len(self.combined_set) > max_parts: + raise ValueError( + f'This protocol only supports assemblies with up to {max_parts} parts. ' + f'Number of parts in the protocol is {len(self.combined_set)}. ' + f'Parts: {self.combined_set}. ' + f'Reagent positions used: {reagent_positions}/24' + ) + + # Validate thermocycler capacity + available_wells = 96 - self.thermocycler_starting_well + wells_needed = len(self.assembly_combinations) * self.replicates + + if wells_needed > available_wells: + raise ValueError( + f'This protocol only supports assemblies with up to {available_wells} ' + f'combinations. Number of assemblies in the protocol are {wells_needed}.' + ) + + +class LoopAssembly: + """ + Factory class that auto-detects input format and returns appropriate subclass. + Supports both manual/combinatorial and SBOL format assemblies. + """ + + def __new__(cls, assemblies: List[Dict], *args, **kwargs): + """Factory method that detects format and returns appropriate instance""" + if not assemblies: + raise ValueError("No assemblies provided") + + # Detect format based on first assembly + first_assembly = assemblies[0] + + if cls._is_sbol_format(first_assembly): + print("Detected SBOL format - using SBOLLoopAssembly") + return SBOLLoopAssembly(assemblies, *args, **kwargs) + elif cls._is_manual_format(first_assembly): + print("Detected Manual format - using ManualLoopAssembly") + return ManualLoopAssembly(assemblies, *args, **kwargs) + else: + raise ValueError( + f"Unknown assembly format. Assembly must contain either:\n" + f"- SBOL format: 'Product', 'Backbone', 'PartsList', 'Restriction Enzyme'\n" + f"- Manual format: 'receiver' and role keys like 'promoter', 'rbs', etc.\n" + f"Found keys: {list(first_assembly.keys())}" + ) + + @staticmethod + def _is_sbol_format(assembly: Dict) -> bool: + """Check if assembly matches SBOL format""" + sbol_keys = {'Product', 'Backbone', 'PartsList', 'Restriction Enzyme'} + assembly_keys = set(assembly.keys()) + + # Check for SBOL-specific keys + has_sbol_keys = sbol_keys.issubset(assembly_keys) + + # Check for URI patterns (https://) + has_uri_patterns = any( + isinstance(v, str) and v.startswith('https://') + for v in assembly.values() + ) or any( + isinstance(v, list) and any( + isinstance(item, str) and item.startswith('https://') + for item in v + ) + for v in assembly.values() + ) + + return has_sbol_keys and has_uri_patterns + + @staticmethod + def _is_manual_format(assembly: Dict) -> bool: + """Check if assembly matches manual/combinatorial format""" + # Must have 'receiver' key + if 'receiver' not in assembly: + return False + + # Should have role-based keys (not SBOL keys) + sbol_keys = {'Product', 'Backbone', 'PartsList', 'Restriction Enzyme'} + assembly_keys = set(assembly.keys()) + + # Should not have SBOL keys + has_sbol_keys = bool(sbol_keys.intersection(assembly_keys)) + + # Should have role keys beyond 'receiver' + role_keys = assembly_keys - {'receiver'} + has_role_keys = len(role_keys) > 0 + + return not has_sbol_keys and has_role_keys + +# Default assemblies for testing +DEFAULT_DOMESTICATION_ASSEMBLY = [ + {"parts": ["part1", "part2"], "backbone": "acceptor", "restriction_enzyme": "BsaI"}, +] -# assembly -assembly_Odd_1 = {"promoter":["GVP0010", "GVP0011", "GVP0014"], "rbs":["B0033","B0034"], "cds":"sfGFP", "terminator":"B0015", "receiver":"Odd_1"} -#assembly_Even_2 = {"c4_receptor":"GD0001", "c4_buff_gfp":"GD0002", "spacer1":"20ins1", "spacer2":"Even_2", "receiver":"Even_2"} -assemblies = [assembly_Odd_1] +DEFAULT_MANUAL_ASSEMBLIES = [ + {"promoter": ["GVP0008"], "rbs": "B0034", + "cds": "sfGFP", "terminator": "B0015", "receiver": "Odd_1"} +] -assembly_Odd_1 = {"promoter":["j23101", "j23100"], "rbs":"B0034", "cds":"GFP", "terminator":"B0015", "receiver":"Odd_1"} -assembly_Even_2 = {"c4_receptor":"GD0001", "c4_buff_gfp":"GD0002", "spacer1":"20ins1", "spacer2":"Even_2", "receiver":"Even_2"} -assemblies = [assembly_Odd_1, assembly_Even_2] \ No newline at end of file +DEFAULT_SBOL_ASSEMBLIES = [ + { + "Product": "https://SBOL2Build.org/composite_1/1", + "Backbone": "https://sbolcanvas.org/Cir_qxow/1", + "PartsList": [ + "https://sbolcanvas.org/GFP/1", + "https://sbolcanvas.org/B0015/1", + "https://sbolcanvas.org/J23101/1", + "https://sbolcanvas.org/B0034/1" + ], + "Restriction Enzyme": "https://SBOL2Build.org/BsaI/1" + } +] \ No newline at end of file diff --git a/src/pudu/calibration.py b/src/pudu/calibration.py index 38a73bd..f3834cf 100644 --- a/src/pudu/calibration.py +++ b/src/pudu/calibration.py @@ -1,60 +1,33 @@ +from abc import ABC, abstractmethod from opentrons import protocol_api -from .utils import plate_96_wells, temp_wells, liquid_transfer +from typing import List, Dict, Optional import xlsxwriter +from pudu.utils import SmartPipette, Camera, colors -class Calibration(): +class BaseCalibration(ABC): """ - Creates a ptopocol to calibrate GFP using fluorescein (MEFL) and OD600 using nanoparticles. + Abstract base class for calibration protocols. + Contains shared hardware setup, liquid handling, and serial dilution functionality. Refer to: https://old.igem.org/wiki/images/a/a4/InterLab_2022_-_Calibration_Protocol_v2.pdf - - ... - - Attributes - ---------- - aspiration_rate: float - Aspiration rate in micro liters per second (uL/s). By default 0.5 uL/s. - dispense_rate: float - Dispense rate in micro liters per second (uL/s). By default 1 uL/s. - tiprack_labware: str - Labware to use as tiprack. By default opentrons_96_tiprack_300ul. - tiprack_position: int - Deck position for tiprack. By default 9. - pipette: str - Pipette to use, can be a p300 and p1000. By default p300_single_gen2. - pipette_position: str - Deck position for pipette. By default left. - calibration_plate_labware: str - Labware to use as calibration plate. By default corning_96_wellplate_360ul_flat. - calibration_plate_position: int - Deck position for calibration plate. By default 7. - use_temperature_module: bool - Whether to use temperature module or not. By default True. - tube_rack_labware: str - Labware to use as tube rack. By default opentrons_24_aluminumblock_nest_1.5ml_snapcap. - tube_rack_position: int - Deck position for tube rack. By default 1. - use_falcon_tubes: bool - Whether to use falcon tubes or not. By default False. - falcon_tube_rack_labware: str - Labware to use as falcon tube rack. By default opentrons_6_tuberack_falcon_50ml_conical. - falcon_tube_rack_position: int - Deck position for falcon tube rack. By default 2. """ - def __init__(self, - aspiration_rate:float=0.5, - dispense_rate:float=1, - tiprack_labware:str='opentrons_96_tiprack_300ul', - tiprack_position:int=9, - pipette:str='p300_single_gen2', - pipette_position:str='left', - calibration_plate_labware:str='corning_96_wellplate_360ul_flat', - calibration_plate_position:int=7, - tube_rack_labware:str='opentrons_24_aluminumblock_nest_1.5ml_snapcap', - tube_rack_position:int=1, - use_falcon_tubes:bool=False, - falcon_tube_rack_labware:str='opentrons_6_tuberack_falcon_50ml_conical', - falcon_tube_rack_position:int=2, - ): + + def __init__(self, + aspiration_rate: float = 0.5, + dispense_rate: float = 1.0, + tiprack_labware: str = 'opentrons_96_tiprack_300ul', + tiprack_position: str = '9', + pipette: str = 'p300_single_gen2', + pipette_position: str = 'left', + calibration_plate_labware: str = 'corning_96_wellplate_360ul_flat', + calibration_plate_position: str = '7', + tube_rack_labware: str = 'opentrons_24_aluminumblock_nest_1.5ml_snapcap', + tube_rack_position: str = '1', + use_falcon_tubes: bool = False, + falcon_tube_rack_labware: str = 'opentrons_6_tuberack_falcon_50ml_conical', + falcon_tube_rack_position: str = '2', + take_picture: bool = False, + take_video: bool = False, + water_testing: bool = False): self.aspiration_rate = aspiration_rate self.dispense_rate = dispense_rate @@ -69,327 +42,407 @@ def __init__(self, self.use_falcon_tubes = use_falcon_tubes self.falcon_tube_rack_labware = falcon_tube_rack_labware self.falcon_tube_rack_position = falcon_tube_rack_position + self.take_picture = take_picture + self.take_video = take_video + self.water_testing = water_testing + # Shared tracking + self.calibrant_positions = {} + self.buffer_positions = {} + self.camera = Camera() + self.smart_pipette = None -class iGEM_gfp_od(Calibration): - """ - Creates a ptopocol to calibrate GFP using fluorescein (MEFL) and OD600 using nanoparticles. - Refer to: https://old.igem.org/wiki/images/a/a4/InterLab_2022_-_Calibration_Protocol_v2.pdf + @abstractmethod + def _get_calibrant_layout(self) -> Dict: + """Return the specific calibrant layout for this protocol""" + pass - Attributes - ---------- - aspiration_rate: float - Aspiration rate in micro liters per second (uL/s). By default 0.5 uL/s. - dispense_rate: float - Dispense rate in micro liters per second (uL/s). By default 1 uL/s. - tiprack_labware: str - Labware to use as tiprack. By default opentrons_96_tiprack_300ul. - tiprack_position: int - Deck position for tiprack. By default 9. - pipette: str - Pipette to use, can be a p300 and p1000. By default p300_single_gen2. - pipette_position: str - Deck position for pipette. By default left. - calibration_plate_labware: str - Labware to use as calibration plate. By default corning_96_wellplate_360ul_flat. - calibration_plate_position: int - Deck position for calibration plate. By default 7. - use_temperature_module: bool - Whether to use temperature module or not. By default True. - tube_rack_labware: str - Labware to use as tube rack. By default opentrons_24_aluminumblock_nest_1.5ml_snapcap. - tube_rack_position: int - Deck position for tube rack. By default 1. - use_falcon_tubes: bool - Whether to use falcon tubes or not. By default False. - falcon_tube_rack_labware: str - Labware to use as falcon tube rack. By default opentrons_6_tuberack_falcon_50ml_conical. - falcon_tube_rack_position: int - Deck position for falcon tube rack. By default 2. - """ - def __init__(self, - *args, **kwargs): - super().__init__(*args, **kwargs) - - self.sbol_output = [] - - metadata = { - 'protocolName': 'iGEM GFP OD600 calibration', - 'author': 'Gonzalo Vidal ', - 'description': 'Protocol to perform serial dilutions of fluorescein and nanoparticles for calibration', - 'apiLevel': '2.13'} - - def run(self,protocol): - #Set deck - #Labware - tiprack = protocol.load_labware(self.tiprack_labware, f'{self.tiprack_position}') + @abstractmethod + def _load_calibrants(self, protocol, tube_rack) -> None: + """Load calibrants specific to this protocol""" + pass + + @abstractmethod + def _dispense_initial_calibrants(self, protocol, pipette, plate) -> None: + """Dispense initial calibrants to starting positions""" + pass + + @abstractmethod + def _perform_serial_dilutions(self, protocol, pipette, plate) -> None: + """Perform serial dilutions specific to this protocol""" + pass + + def _define_and_load_liquid(self, protocol, well, name: str, description: str = None, + volume: float = 1000, color_index: int = None): + """Define liquid and load it into specified well""" + if description is None: + description = name + if color_index is None: + color_index = len(self.calibrant_positions) % len(colors) + + liquid = protocol.define_liquid( + name=name, + description=description, + display_color=colors[color_index] + ) + well.load_liquid(liquid, volume=volume) + protocol.comment(f"Loaded {name} at position {well.well_name}") + return well + + def _setup_hardware(self, protocol): + """Setup shared hardware components""" + tiprack = protocol.load_labware(self.tiprack_labware, self.tiprack_position) pipette = protocol.load_instrument(self.pipette, self.pipette_position, tip_racks=[tiprack]) + self.smart_pipette = SmartPipette(pipette, protocol) plate = protocol.load_labware(self.calibration_plate_labware, self.calibration_plate_position) tube_rack = protocol.load_labware(self.tube_rack_labware, self.tube_rack_position) + + falcon_tube_rack = None if self.use_falcon_tubes: - falcon_tube_rack = protocol.load_labware(self.falcon_tube_rack_labware, self.falcon_tube_rack_position) - #Protocol - #add calibrants - fluorescein_1x = tube_rack['A1'] - microspheres_1x = tube_rack['A2'] - #add dilution buffers in tube rack - pbs_1 = tube_rack['A3'] - pbs_2 = tube_rack['A4'] - water_1 = tube_rack['A5'] - water_2 = tube_rack['A6'] - #if using falcon, remap pbs and water - if self.use_falcon_tubes: - #add dilution buffers in falcon tube rack - pbs_falcon = falcon_tube_rack['A1'] - water_falcon = falcon_tube_rack['A2'] - #remap pbs and water - pbs_1 = pbs_falcon - pbs_2 = pbs_falcon - water_1 = water_falcon - water_2 = water_falcon - #dispense PBS - pipette.pick_up_tip() - for well in plate_96_wells[1:12]: - liquid_transfer(pipette, 100, pbs_1, plate[well], self.aspiration_rate, self.dispense_rate, new_tip=False, drop_tip=False) - for well in plate_96_wells[13:24]: - liquid_transfer(pipette, 100, pbs_2, plate[well], self.aspiration_rate, self.dispense_rate, new_tip=False, drop_tip=False) - pipette.drop_tip() - #dispense water - pipette.pick_up_tip() - for well in plate_96_wells[25:36]: - liquid_transfer(pipette, 100, water_1, plate[well], self.aspiration_rate, self.dispense_rate, new_tip=False, drop_tip=False) - for well in plate_96_wells[37:48]: - liquid_transfer(pipette, 100, water_2, plate[well], self.aspiration_rate, self.dispense_rate, new_tip=False, drop_tip=False) - pipette.drop_tip() - #dispense fluorescein - liquid_transfer(pipette, 200, fluorescein_1x, plate['A1'], self.aspiration_rate, self.dispense_rate, mix_before=200, mix_reps=4) - liquid_transfer(pipette, 200, fluorescein_1x, plate['B1'], self.aspiration_rate, self.dispense_rate, mix_before=200, mix_reps=4) - #dispense nanoparticles - liquid_transfer(pipette, 200, microspheres_1x, plate['C1'], self.aspiration_rate, self.dispense_rate, mix_before=200, mix_reps=4) - liquid_transfer(pipette, 200, microspheres_1x, plate['D1'], self.aspiration_rate, self.dispense_rate, mix_before=200, mix_reps=4) - #fluorescein serial dilutions - pipette.pick_up_tip() - for i in range(0,11): - liquid_transfer(pipette, 100, plate[plate_96_wells[i]], plate[plate_96_wells[i+1]], self.aspiration_rate, self.dispense_rate, mix_before=200, mix_reps=4, new_tip=False, drop_tip=False) - pipette.drop_tip() - pipette.pick_up_tip() - for i in range(12,23): - liquid_transfer(pipette, 100, plate[plate_96_wells[i]], plate[plate_96_wells[i+1]], self.aspiration_rate, self.dispense_rate, mix_before=200, mix_reps=4, new_tip=False, drop_tip=False) - pipette.drop_tip() - #nanoparticles serial dilutions + falcon_tube_rack = protocol.load_labware( + self.falcon_tube_rack_labware, + self.falcon_tube_rack_position + ) + + return pipette, plate, tube_rack, falcon_tube_rack + + def _load_dilution_buffers(self, protocol, tube_rack, falcon_tube_rack) -> Dict: + """Load PBS and water buffers with falcon tube remapping if needed""" + buffers = {} + + if self.use_falcon_tubes and falcon_tube_rack: + # Use falcon tubes with liquid definition + pbs_falcon = self._define_and_load_liquid( + protocol, falcon_tube_rack['A1'], "PBS Buffer", + "Phosphate Buffered Saline for dilutions", volume=15000, color_index=0 + ) + water_falcon = self._define_and_load_liquid( + protocol, falcon_tube_rack['A2'], "Deionized Water", + "Deionized Water for dilutions", volume=15000, color_index=1 + ) + buffers['pbs_sources'] = [pbs_falcon, pbs_falcon] + buffers['water_sources'] = [water_falcon, water_falcon] + else: + # Use individual tubes with liquid definition + pbs_1 = self._define_and_load_liquid( + protocol, tube_rack['A3'], "PBS Buffer 1", volume=1000, color_index=0 + ) + pbs_2 = self._define_and_load_liquid( + protocol, tube_rack['A4'], "PBS Buffer 2", volume=1000, color_index=0 + ) + water_1 = self._define_and_load_liquid( + protocol, tube_rack['A5'], "Deionized Water 1", volume=1000, color_index=1 + ) + water_2 = self._define_and_load_liquid( + protocol, tube_rack['A6'], "Deionized Water 2", volume=1000, color_index=1 + ) + buffers['pbs_sources'] = [pbs_1, pbs_2] + buffers['water_sources'] = [water_1, water_2] + + self.buffer_positions = buffers + return buffers + + def _dispense_dilution_buffers(self, protocol, pipette, plate, buffers, wells_layout): + """Dispense PBS and water to designated wells""" + # Dispense PBS pipette.pick_up_tip() - for i in range(24,35): - liquid_transfer(pipette, 100, plate[plate_96_wells[i]], plate[plate_96_wells[i+1]], self.aspiration_rate, self.dispense_rate, mix_before=200, mix_reps=4, new_tip=False, drop_tip=False) + for wells_range, source_idx in wells_layout['pbs']: + target_wells = plate.wells()[wells_range[0]:wells_range[1]] + source = buffers['pbs_sources'][source_idx] + use_conical = self.use_falcon_tubes # Enable conical tube handling for falcon tubes + + for well in target_wells: + self.smart_pipette.liquid_transfer( + volume=100, source=source, destination=well, + asp_rate=self.aspiration_rate, disp_rate=self.dispense_rate, + new_tip=False, drop_tip=False, use=use_conical + ) pipette.drop_tip() + + # Dispense water pipette.pick_up_tip() - for i in range(36,47): - liquid_transfer(pipette, 100, plate[plate_96_wells[i]], plate[plate_96_wells[i+1]], self.aspiration_rate, self.dispense_rate, mix_before=200, mix_reps=4, new_tip=False, drop_tip=False) + for wells_range, source_idx in wells_layout['water']: + target_wells = plate.wells()[wells_range[0]:wells_range[1]] + source = buffers['water_sources'][source_idx] + use_conical = self.use_falcon_tubes # Enable conical tube handling for falcon tubes + + for well in target_wells: + self.smart_pipette.liquid_transfer( + volume=100, source=source, destination=well, + asp_rate=self.aspiration_rate, disp_rate=self.dispense_rate, + new_tip=False, drop_tip=False, use=use_conical + ) pipette.drop_tip() - #END -class iGEM_rgb_od(Calibration): + def run(self, protocol: protocol_api.ProtocolContext): + """Main protocol execution using template method pattern""" + # Setup hardware + pipette, plate, tube_rack, falcon_tube_rack = self._setup_hardware(protocol) + + # Load calibrants (protocol-specific) + self._load_calibrants(protocol, tube_rack) + + # Load dilution buffers + buffers = self._load_dilution_buffers(protocol, tube_rack, falcon_tube_rack) + + # Get layout for this specific protocol + layout = self._get_calibrant_layout() + + # Media capture start + if self.take_picture: + self.camera.capture_picture(protocol, when="start") + if self.take_video: + self.camera.start_video(protocol) + + # Dispense dilution buffers + self._dispense_dilution_buffers(protocol, pipette, plate, buffers, layout) + + # Dispense initial calibrants (protocol-specific) + self._dispense_initial_calibrants(protocol, pipette, plate) + + # Perform serial dilutions (protocol-specific) + self._perform_serial_dilutions(protocol, pipette, plate) + + # Media capture end + if self.take_video: + self.camera.stop_video(protocol) + if self.take_picture: + self.camera.capture_picture(protocol, when="end") + +class GFPODCalibration(BaseCalibration): """ - Creates a ptopocol to calibrate GFP using fluorescein (MEFL), sulforhodamine 101, cascade blue and OD600 using nanoparticles. - Refer to: https://old.igem.org/wiki/images/a/a4/InterLab_2022_-_Calibration_Protocol_v2.pdf + GFP and OD600 calibration using fluorescein and nanoparticles. + Based on iGEM 2022 calibration protocol. + """ + + def _get_calibrant_layout(self) -> Dict: + """Layout for GFP/OD600 calibration (2 calibrants, 2 replicates each)""" + return { + 'pbs': [((1, 12), 0), ((13, 24), 1)], # (well_range, source_index) + 'water': [((25, 36), 0), ((37, 48), 1)], + 'calibrants': { + 'fluorescein': ['A1', 'B1'], + 'microspheres': ['C1', 'D1'] + }, + 'dilution_series': [ + (0, 11), # Row A fluorescein + (12, 23), # Row B fluorescein + (24, 35), # Row C microspheres + (36, 47) # Row D microspheres + ] + } + + def _load_calibrants(self, protocol, tube_rack) -> None: + """Load fluorescein and microspheres""" + fluorescein_well = self._define_and_load_liquid( + protocol, tube_rack['A1'], "Fluorescein 1x", + "Fluorescein calibration standard", volume=1000, color_index=2 + ) + microspheres_well = self._define_and_load_liquid( + protocol, tube_rack['A2'], "Microspheres 1x", + "Silica nanoparticles for OD600 calibration", volume=1000, color_index=3 + ) + + self.calibrant_positions['fluorescein_1x'] = fluorescein_well + self.calibrant_positions['microspheres_1x'] = microspheres_well + + def _dispense_initial_calibrants(self, protocol, pipette, plate) -> None: + """Dispense fluorescein and microspheres to starting wells""" + # Fluorescein to A1, B1 + for well_name in ['A1', 'B1']: + self.smart_pipette.liquid_transfer( + volume=200, source=self.calibrant_positions['fluorescein_1x'], + destination=plate[well_name], asp_rate=self.aspiration_rate, + disp_rate=self.dispense_rate, mix_before=200, mix_reps=4 + ) - Attributes - ---------- - aspiration_rate: float - Aspiration rate in micro liters per second (uL/s). By default 0.5 uL/s. - dispense_rate: float - Dispense rate in micro liters per second (uL/s). By default 1 uL/s. - tiprack_labware: str - Labware to use as tiprack. By default opentrons_96_tiprack_300ul. - tiprack_position: int - Deck position for tiprack. By default 9. - pipette: str - Pipette to use, can be a p300 and p1000. By default p300_single_gen2. - pipette_position: str - Deck position for pipette. By default left. - calibration_plate_labware: str - Labware to use as calibration plate. By default corning_96_wellplate_360ul_flat. - calibration_plate_position: int - Deck position for calibration plate. By default 7. - tube_rack_labware: str - Labware to use as tube rack. By default opentrons_24_aluminumblock_nest_1.5ml_snapcap. - tube_rack_position: int - Deck position for tube rack. By default 1. - use_falcon_tubes: bool - Whether to use falcon tubes or not. By default False. - falcon_tube_rack_labware: str - Labware to use as falcon tube rack. By default opentrons_6_tuberack_falcon_50ml_conical. - falcon_tube_rack_position: int - Deck position for falcon tube rack. By default 2. + # Microspheres to C1, D1 + for well_name in ['C1', 'D1']: + self.smart_pipette.liquid_transfer( + volume=200, source=self.calibrant_positions['microspheres_1x'], + destination=plate[well_name], asp_rate=self.aspiration_rate, + disp_rate=self.dispense_rate, mix_before=200, mix_reps=4 + ) + + def _perform_serial_dilutions(self, protocol, pipette, plate) -> None: + """Perform 1:2 serial dilutions for fluorescein and microspheres""" + layout = self._get_calibrant_layout() + + for start_idx, end_idx in layout['dilution_series']: + pipette.pick_up_tip() + for i in range(start_idx, end_idx): + source_well = plate.wells()[i] + dest_well = plate.wells()[i + 1] + self.smart_pipette.liquid_transfer( + volume=100, source=source_well, destination=dest_well, + asp_rate=self.aspiration_rate, disp_rate=self.dispense_rate, + mix_before=200, mix_reps=4, new_tip=False, drop_tip=False + ) + pipette.drop_tip() + + +class RGBODCalibration(BaseCalibration): + """ + RGB and OD600 calibration using fluorescein, sulforhodamine 101, cascade blue, and nanoparticles. + Extended iGEM calibration protocol. """ - def __init__(self, - *args, **kwargs): - super().__init__(*args, **kwargs) - - #Does a SBOL component of this make sense? - metadata = { - 'protocolName': 'iGEM RGB OD600 calibration', - 'author': 'Gonzalo Vidal ', - 'description': 'Protocol to perform serial dilutions of fluorescein, sulforhodamine 101, cascade blue and nanoparticles for calibration', - 'apiLevel': '2.13'} + def _get_calibrant_layout(self) -> Dict: + """Layout for RGB/OD600 calibration (4 calibrants, 2 replicates each)""" + return { + 'pbs': [((1, 12), 0), ((13, 24), 1), ((25, 36), 2), ((37, 48), 3)], + 'water': [((49, 60), 0), ((61, 72), 1), ((73, 84), 2), ((85, 96), 3)], + 'calibrants': { + 'fluorescein': ['A1', 'B1'], + 'sulforhodamine': ['C1', 'D1'], + 'cascade_blue': ['E1', 'F1'], + 'microspheres': ['G1', 'H1'] + }, + 'dilution_series': [ + (0, 10), # Row A fluorescein (to well 11, discard to binit) + (12, 22), # Row B fluorescein + (24, 34), # Row C sulforhodamine + (36, 46), # Row D sulforhodamine + (48, 58), # Row E cascade blue + (60, 70), # Row F cascade blue + (72, 82), # Row G microspheres (to well 83, discard to binit) + (84, 94) # Row H microspheres + ] + } - def run(self, protocol: protocol_api.ProtocolContext): + def _load_calibrants(self, protocol, tube_rack) -> None: + """Load all RGB calibrants and microspheres""" + sulforhodamine_well = self._define_and_load_liquid( + protocol, tube_rack['A1'], "Sulforhodamine 101 1x", + "Sulforhodamine 101 red fluorescent calibrant", volume=1000, color_index=2 + ) + fluorescein_well = self._define_and_load_liquid( + protocol, tube_rack['B1'], "Fluorescein 1x", + "Fluorescein green fluorescent calibrant", volume=1000, color_index=3 + ) + cascade_blue_well = self._define_and_load_liquid( + protocol, tube_rack['C1'], "Cascade Blue 1x", + "Cascade Blue blue fluorescent calibrant", volume=1000, color_index=4 + ) + microspheres_well = self._define_and_load_liquid( + protocol, tube_rack['D1'], "Microspheres 1x", + "Silica nanoparticles for OD600 calibration", volume=1000, color_index=5 + ) + binit_well = self._define_and_load_liquid( + protocol, tube_rack['A6'], "Waste Container", + "Container for waste disposal", volume=0, color_index=6 + ) - #Labware - tiprack = protocol.load_labware(self.tiprack_labware, f'{self.tiprack_position}') - pipette = protocol.load_instrument(self.pipette, self.pipette_position, tip_racks=[tiprack]) - plate = protocol.load_labware(self.calibration_plate_labware, self.calibration_plate_position) - tube_rack = protocol.load_labware(self.tube_rack_labware, self.tube_rack_position) - if self.use_falcon_tubes: - falcon_tube_rack = protocol.load_labware(self.falcon_tube_rack_labware, self.falcon_tube_rack_position) - #Protocol - #set deck - #add calibrants - sulforhodamine_1x = tube_rack['A1'] - fluorescein_1x = tube_rack['B1'] - cascade_blue_1x = tube_rack['C1'] - microspheres_1x = tube_rack['D1'] - #add dilution buffers in tube rack - pbs_1 = tube_rack['A2'] - pbs_2 = tube_rack['B2'] - pbs_3 = tube_rack['C2'] - pbs_4 = tube_rack['D2'] - pbs_5 = tube_rack['A3'] - pbs_6 = tube_rack['B3'] - pbs_7 = tube_rack['C3'] - pbs_8 = tube_rack['D3'] - water_1 = tube_rack['A4'] - water_2 = tube_rack['B4'] - water_3 = tube_rack['C4'] - water_4 = tube_rack['D4'] - water_5 = tube_rack['A5'] - water_6 = tube_rack['B5'] - water_7 = tube_rack['C5'] - water_8 = tube_rack['D5'] - binit = tube_rack['A6'] - - #TODO use 2.0 tubes - - #if using falcon, remap pbs and water - if self.use_falcon_tubes: - #add dilution buffers in falcon tube rack + self.calibrant_positions.update({ + 'sulforhodamine_1x': sulforhodamine_well, + 'fluorescein_1x': fluorescein_well, + 'cascade_blue_1x': cascade_blue_well, + 'microspheres_1x': microspheres_well, + 'binit': binit_well + }) + + def _load_dilution_buffers(self, protocol, tube_rack, falcon_tube_rack) -> Dict: + """Extended buffer loading for RGB protocol""" + buffers = {} + + if self.use_falcon_tubes and falcon_tube_rack: + # Use falcon tubes for all buffers pbs_falcon = falcon_tube_rack['A1'] water_falcon = falcon_tube_rack['A2'] - pbs_1 = pbs_falcon - pbs_2 = pbs_falcon - pbs_3 = pbs_falcon - pbs_4 = pbs_falcon - water_1 = water_falcon - water_2 = water_falcon - water_3 = water_falcon - water_4 = water_falcon + buffers['pbs_sources'] = [pbs_falcon] * 8 + buffers['water_sources'] = [water_falcon] * 8 + else: + # Use individual tubes + buffers['pbs_sources'] = [ + tube_rack['A2'], tube_rack['B2'], tube_rack['C2'], tube_rack['D2'], + tube_rack['A3'], tube_rack['B3'], tube_rack['C3'], tube_rack['D3'] + ] + buffers['water_sources'] = [ + tube_rack['A4'], tube_rack['B4'], tube_rack['C4'], tube_rack['D4'], + tube_rack['A5'], tube_rack['B5'], tube_rack['C5'], tube_rack['D5'] + ] + + self.buffer_positions = buffers + return buffers + def _dispense_initial_calibrants(self, protocol, pipette, plate) -> None: + """Dispense all RGB calibrants to starting wells""" mix_vol = 100 mix_reps = 3 - #dispense PBS - pipette.pick_up_tip() - #ambientar pipeta - liquid_transfer(pipette, 100, pbs_1, pbs_1, self.aspiration_rate, self.dispense_rate, new_tip=False, drop_tip=False, mix_before=mix_vol, mix_reps=mix_reps) - for well in plate_96_wells[1:12]: - liquid_transfer(pipette, 100, pbs_1, plate[well], self.aspiration_rate, self.dispense_rate, new_tip=False, drop_tip=False) - for well in plate_96_wells[13:24]: - liquid_transfer(pipette, 100, pbs_2, plate[well], self.aspiration_rate, self.dispense_rate, new_tip=False, drop_tip=False) - for well in plate_96_wells[25:36]: - liquid_transfer(pipette, 100, pbs_3, plate[well], self.aspiration_rate, self.dispense_rate, new_tip=False, drop_tip=False) - for well in plate_96_wells[37:48]: - liquid_transfer(pipette, 100, pbs_4, plate[well], self.aspiration_rate, self.dispense_rate, new_tip=False, drop_tip=False) - pipette.drop_tip() - #dispense water - pipette.pick_up_tip() - #ambientar pipeta - liquid_transfer(pipette, 100, pbs_1, pbs_1, self.aspiration_rate, self.dispense_rate, new_tip=False, drop_tip=False, mix_before=mix_vol, mix_reps=mix_reps) - for well in plate_96_wells[49:60]: - liquid_transfer(pipette, 100, water_1, plate[well], self.aspiration_rate, self.dispense_rate, new_tip=False, drop_tip=False) - for well in plate_96_wells[61:72]: - liquid_transfer(pipette, 100, water_2, plate[well], self.aspiration_rate, self.dispense_rate, new_tip=False, drop_tip=False) - for well in plate_96_wells[73:84]: - liquid_transfer(pipette, 100, water_3, plate[well], self.aspiration_rate, self.dispense_rate, new_tip=False, drop_tip=False) - for well in plate_96_wells[85:96]: - liquid_transfer(pipette, 100, water_4, plate[well], self.aspiration_rate, self.dispense_rate, new_tip=False, drop_tip=False) - pipette.drop_tip() - #dispense fluorescein - liquid_transfer(pipette, 200, fluorescein_1x, plate['A1'], self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps) - liquid_transfer(pipette, 200, fluorescein_1x, plate['B1'], self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps) - #dispense sulforhodamine 101 - liquid_transfer(pipette, 200, sulforhodamine_1x, plate['C1'], self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps) - liquid_transfer(pipette, 200, sulforhodamine_1x, plate['D1'], self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps) - #dispense cascade blue - liquid_transfer(pipette, 200, cascade_blue_1x, plate['E1'], self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps) - liquid_transfer(pipette, 200, cascade_blue_1x, plate['F1'], self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps) - #dispense microspheres nanoparticles - liquid_transfer(pipette, 200, microspheres_1x, plate['G1'], self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps) - liquid_transfer(pipette, 200, microspheres_1x, plate['H1'], self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps) - #fluorescein serial dilutions - pipette.pick_up_tip() - for i in range(0,10): - liquid_transfer(pipette, 100, plate[plate_96_wells[i]], plate[plate_96_wells[i+1]], self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps, new_tip=False, drop_tip=False) - liquid_transfer(pipette, 100, plate[plate_96_wells[i+1]], binit, self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps, new_tip=False, drop_tip=False) - pipette.drop_tip() - pipette.pick_up_tip() - for i in range(12,22): - liquid_transfer(pipette, 100, plate[plate_96_wells[i]], plate[plate_96_wells[i+1]], self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps, new_tip=False, drop_tip=False) - liquid_transfer(pipette, 100, plate[plate_96_wells[i+1]], binit, self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps, new_tip=False, drop_tip=False) - pipette.drop_tip() - #sulforamine serial dilution - pipette.pick_up_tip() - for i in range(24,34): - liquid_transfer(pipette, 100, plate[plate_96_wells[i]], plate[plate_96_wells[i+1]], self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps, new_tip=False, drop_tip=False) - liquid_transfer(pipette, 100, plate[plate_96_wells[i+1]], binit, self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps, new_tip=False, drop_tip=False) - pipette.drop_tip() - pipette.pick_up_tip() - for i in range(36,46): - liquid_transfer(pipette, 100, plate[plate_96_wells[i]], plate[plate_96_wells[i+1]], self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps, new_tip=False, drop_tip=False) - liquid_transfer(pipette, 100, plate[plate_96_wells[i+1]], binit, self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps, new_tip=False, drop_tip=False) - pipette.drop_tip() - #cascade blue serial dilution - pipette.pick_up_tip() - for i in range(48,58): - liquid_transfer(pipette, 100, plate[plate_96_wells[i]], plate[plate_96_wells[i+1]], self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps, new_tip=False, drop_tip=False) - liquid_transfer(pipette, 100, plate[plate_96_wells[i+1]], binit, self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps, new_tip=False, drop_tip=False) - pipette.drop_tip() - pipette.pick_up_tip() - for i in range(60,70): - liquid_transfer(pipette, 100, plate[plate_96_wells[i]], plate[plate_96_wells[i+1]], self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps, new_tip=False, drop_tip=False) - liquid_transfer(pipette, 100, plate[plate_96_wells[i+1]], binit, self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps, new_tip=False, drop_tip=False) - pipette.drop_tip() - #nanoparticles serial dilutions - pipette.pick_up_tip() - for i in range(72,83): - liquid_transfer(pipette, 100, plate[plate_96_wells[i]], plate[plate_96_wells[i+1]], self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps, new_tip=False, drop_tip=False) - liquid_transfer(pipette, 100, plate[plate_96_wells[i+1]], binit, self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps, new_tip=False, drop_tip=False) - pipette.drop_tip() - pipette.pick_up_tip() - for i in range(84,94): - liquid_transfer(pipette, 100, plate[plate_96_wells[i]], plate[plate_96_wells[i+1]], self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps, new_tip=False, drop_tip=False) - liquid_transfer(pipette, 100, plate[plate_96_wells[i+1]], binit, self.aspiration_rate, self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps, new_tip=False, drop_tip=False) - pipette.drop_tip() - # 1/2 dilution, filling 200 uL - #dispense PBS + calibrants_wells = [ + ('fluorescein_1x', ['A1', 'B1']), + ('sulforhodamine_1x', ['C1', 'D1']), + ('cascade_blue_1x', ['E1', 'F1']), + ('microspheres_1x', ['G1', 'H1']) + ] + + for calibrant, well_names in calibrants_wells: + for well_name in well_names: + self.smart_pipette.liquid_transfer( + volume=200, source=self.calibrant_positions[calibrant], + destination=plate[well_name], asp_rate=self.aspiration_rate, + disp_rate=self.dispense_rate, mix_before=mix_vol, mix_reps=mix_reps + ) + + def _perform_serial_dilutions(self, protocol, pipette, plate) -> None: + """Perform 1:2 serial dilutions with waste disposal""" + layout = self._get_calibrant_layout() + mix_vol = 100 + mix_reps = 3 + binit = self.calibrant_positions['binit'] + + for start_idx, end_idx in layout['dilution_series']: + pipette.pick_up_tip() + + # Serial dilutions + for i in range(start_idx, end_idx): + source_well = plate.wells()[i] + dest_well = plate.wells()[i + 1] + self.smart_pipette.liquid_transfer( + volume=100, source=source_well, destination=dest_well, + asp_rate=self.aspiration_rate, disp_rate=self.dispense_rate, + mix_before=mix_vol, mix_reps=mix_reps, new_tip=False, drop_tip=False + ) + + # Discard final dilution to binit + final_well = plate.wells()[end_idx] + self.smart_pipette.liquid_transfer( + volume=100, source=final_well, destination=binit, + asp_rate=self.aspiration_rate, disp_rate=self.dispense_rate, + mix_before=mix_vol, mix_reps=mix_reps, new_tip=False, drop_tip=False + ) + pipette.drop_tip() + + # Fill all wells to 200 µL with appropriate buffers + self._fill_wells_to_200ul(protocol, pipette, plate) + + def _fill_wells_to_200ul(self, protocol, pipette, plate) -> None: + """Add additional 100 µL to all wells to reach 200 µL final volume""" + layout = self._get_calibrant_layout() + buffers = self.buffer_positions + use_conical = self.use_falcon_tubes # Enable conical tube handling for falcon tubes + + # Add PBS to calibrant wells pipette.pick_up_tip() - for well in plate_96_wells[0:12]: - liquid_transfer(pipette, 100, pbs_5, plate[well], self.aspiration_rate, self.dispense_rate, new_tip=False, drop_tip=False) - for well in plate_96_wells[12:24]: - liquid_transfer(pipette, 100, pbs_6, plate[well], self.aspiration_rate, self.dispense_rate, new_tip=False, drop_tip=False) - for well in plate_96_wells[24:36]: - liquid_transfer(pipette, 100, pbs_7, plate[well], self.aspiration_rate, self.dispense_rate, new_tip=False, drop_tip=False) - for well in plate_96_wells[36:48]: - liquid_transfer(pipette, 100, pbs_8, plate[well], self.aspiration_rate, self.dispense_rate, new_tip=False, drop_tip=False) + for wells_range, source_idx in layout['pbs']: + target_wells = plate.wells()[wells_range[0]:wells_range[1]] + source = buffers['pbs_sources'][source_idx] + for well in target_wells: + self.smart_pipette.liquid_transfer( + protocol, pipette, 100, source, well, + new_tip=False, drop_tip=False, use=use_conical + ) pipette.drop_tip() - #dispense water + + # Add water to blank wells pipette.pick_up_tip() - for well in plate_96_wells[48:60]: - liquid_transfer(pipette, 100, water_5, plate[well], self.aspiration_rate, self.dispense_rate, new_tip=False, drop_tip=False) - for well in plate_96_wells[60:72]: - liquid_transfer(pipette, 100, water_6, plate[well], self.aspiration_rate, self.dispense_rate, new_tip=False, drop_tip=False) - for well in plate_96_wells[72:84]: - liquid_transfer(pipette, 100, water_7, plate[well], self.aspiration_rate, self.dispense_rate, new_tip=False, drop_tip=False) - for well in plate_96_wells[84:96]: - liquid_transfer(pipette, 100, water_8, plate[well], self.aspiration_rate, self.dispense_rate, new_tip=False, drop_tip=False) - pipette.drop_tip() - #END \ No newline at end of file + for wells_range, source_idx in layout['water']: + target_wells = plate.wells()[wells_range[0]:wells_range[1]] + source = buffers['water_sources'][source_idx] + for well in target_wells: + self.smart_pipette.liquid_transfer( + protocol, pipette, 100, source, well, + new_tip=False, drop_tip=False, use=use_conical + ) + pipette.drop_tip() \ No newline at end of file diff --git a/src/pudu/plating.py b/src/pudu/plating.py new file mode 100644 index 0000000..0f7cb8d --- /dev/null +++ b/src/pudu/plating.py @@ -0,0 +1,270 @@ +from typing import Optional, Dict +from pudu import colors, SmartPipette +from opentrons import protocol_api + +class Plating(): + """ + Creates a protocol for automated plating of transformed bacteria + + Attributes: + + """ + def __init__(self, + volume_total_reaction: float = 20, + volume_bacteria_transfer: float = 2, + volume_colony: float = 4, + volume_lb_transfer: float = 18, + volume_lb: float = 10000, + replicates: int = 1, + number_dilutions: int = 2, + max_colonies = 192, + + thermocycler_starting_well: int = 0, + # thermocycler_labware: str = 'nest_96_wellplate_100ul_pcr_full_skirt', + thermocycler_labware: str = 'biorad_96_wellplate_200ul_pcr', + + small_tiprack: str = 'opentrons_96_filtertiprack_20ul', + small_tiprack_position: str = '9', + initial_small_tip: str = None, + large_tiprack: str = 'opentrons_96_filtertiprack_200ul', + large_tiprack_position: str = '1', + initial_large_tip:str = None, + small_pipette: str = 'p20_single_gen2', + small_pipette_position: str = 'left', + large_pipette: str = 'p300_single_gen2', + large_pipette_position: str = 'right', + + + # dilution_plate: str = 'nest_96_wellplate_200ul_flat', + dilution_plate: str = 'nest_96_wellplate_100ul_pcr_full_skirt', + dilution_plate_position1: str = '2', + dilution_plate_position2: str = '3', + # agar_plate: str = 'nunc_omnitray_96grid', + agar_plate: str = 'nest_96_wellplate_100ul_pcr_full_skirt', + agar_plate_position1: str = '5', + agar_plate_position2: str = '6', + tube_rack: str = 'opentrons_15_tuberack_falcon_15ml_conical', + tube_rack_position: str = '4', + lb_tube_position: int = 0, + + aspiration_rate: float = 0.5, + dispense_rate: float = 1, + bacterium_locations: Dict = None): + + self.volume_total_reaction = volume_total_reaction + self.volume_bacteria_transfer = volume_bacteria_transfer + self.volume_colony = volume_colony + self.volume_lb_transfer = volume_lb_transfer + self.volume_lb = volume_lb + self.replicates = replicates + self.number_dilutions = number_dilutions + self.thermocycler_starting_well = thermocycler_starting_well + self.thermocycler_labware = thermocycler_labware + self.small_tiprack = small_tiprack + self.small_tiprack_position = small_tiprack_position + self.initial_small_tip = initial_small_tip + self.large_tiprack = large_tiprack + self.large_tiprack_position = large_tiprack_position + self.initial_large_tip = initial_large_tip + self.small_pipette = small_pipette + self.small_pipette_position = small_pipette_position + self.large_pipette = large_pipette + self.large_pipette_position = large_pipette_position + self.dilution_plate = dilution_plate + self.dilution_plate_position1 = dilution_plate_position1 + self.dilution_plate_position2 = dilution_plate_position2 + self.agar_plate = agar_plate + self.agar_plate_position1 = agar_plate_position1 + self.agar_plate_position2 = agar_plate_position2 + self.tube_rack = tube_rack + self.tube_rack_position = tube_rack_position + self.lb_tube_position = lb_tube_position + self.aspiration_rate = aspiration_rate + self.dispense_rate = dispense_rate + self.bacterium_locations = bacterium_locations + self.number_constructs = len(bacterium_locations) + self.total_colonies = self.number_constructs * self.number_dilutions * self.replicates + self.max_colonies = max_colonies + if self.total_colonies > self.max_colonies: + raise ValueError(f"Protocol only supports a max of {self.max_colonies} colonies") + if self.replicates > 8: + raise ValueError("Protocol only supports a max of 8 replicates") + if self.number_dilutions > 2: + raise ValueError("Protocol currently supports a max of 2 dilutions") + + def calculate_plate_layout(self,protocol, plate1, plate2=None): + """ + Calculate the layout for colonies on plates with dynamic buffer between dilutions + Returns: dict with plate assignments and well positions + """ + colonies_per_dilution = self.number_constructs * self.replicates + + layout = { + 'dilution_1': {'plate': 1, 'wells':[]}, + 'dilution_2': {'plate': 1, 'wells':[]} if self.number_dilutions ==2 else None + } + + #Check if we need two plates + if self.number_dilutions ==2 and colonies_per_dilution > 48: + if plate2 is None: + raise ValueError("Two plates required but plate2 not provided") + #Each Dilution gets its own plate + layout['dilution_1']['wells'] = plate1.wells()[:colonies_per_dilution] + layout['dilution_2']['plate'] = 2 + layout['dilution_2']['wells'] = plate2.wells()[:colonies_per_dilution] + protocol.comment(f"Using 2 plates: {colonies_per_dilution} colonies per dilution exceeds single plate capacity") + elif self.number_dilutions ==2 and colonies_per_dilution <= 48: + #Both Dilutions Fit On One Plate + first_half = plate1.wells()[:colonies_per_dilution] + second_half = plate1.wells()[48:48+colonies_per_dilution] + layout['dilution_1']['wells'] = first_half + layout['dilution_2']['wells'] = second_half + protocol.comment(f"Using only one {plate1}: {colonies_per_dilution} colonies on each half") + else: + #Single dilution + layout['dilution_1']['wells'] = plate1.wells()[:colonies_per_dilution] + return layout + + def run(self, protocol: protocol_api.ProtocolContext): + #Labware + #Load the thermocycler module, its default location is on slots 7, 8, 10 and 11 + thermocycler = protocol.load_module('thermocyclerModuleV1') + thermocycler_plate = thermocycler.load_labware(self.thermocycler_labware) + #Load the tipracks + small_tiprack = protocol.load_labware(self.small_tiprack, self.small_tiprack_position) + large_tiprack = protocol.load_labware(self.large_tiprack, self.large_tiprack_position) + #Load the pipettes + small_pipette = protocol.load_instrument(self.small_pipette, self.small_pipette_position, tip_racks=[small_tiprack]) + if self.initial_small_tip: + small_pipette.starting_tip = small_tiprack[self.initial_small_tip] + large_pipette = protocol.load_instrument(self.large_pipette, self.large_pipette_position, tip_racks=[large_tiprack]) + if self.initial_large_tip: + large_pipette.starting_tip = large_tiprack[self.initial_large_tip] + #SmartPipette Wrapper to avoid dunking into the LB + smart_pipette = SmartPipette(large_pipette,protocol) + #Load the tube rack + tube_rack = protocol.load_labware(self.tube_rack, self.tube_rack_position) + lb_tube = tube_rack.wells()[self.lb_tube_position] + #load liquids + liquid_broth = protocol.define_liquid( + name="liquid_broth", + description="Liquid broth for dilutions", + display_color="#D2B48C" + ) + lb_tube.load_liquid(liquid = liquid_broth, volume = self.volume_lb) + # Load bacteria into thermocycler wells + for i, (well_position, construct_names) in enumerate(self.bacterium_locations.items()): + liquid_bacteria = protocol.define_liquid( + name="transformed_bacteria", + description=f"{construct_names}", + display_color=colors[i%len(colors)] + ) + well = thermocycler_plate[well_position] + well.load_liquid(liquid=liquid_bacteria, volume=self.volume_total_reaction) + + # Load the dilution plates and Calculate the layout of the plates + dilution_plate1 = protocol.load_labware(self.dilution_plate, self.dilution_plate_position1) + if self.total_colonies <= len(dilution_plate1.wells()): + dilution_layout = self.calculate_plate_layout(protocol, dilution_plate1) + else: + dilution_plate2 = protocol.load_labware(self.dilution_plate, self.dilution_plate_position2) + dilution_layout = self.calculate_plate_layout(protocol, dilution_plate1, dilution_plate2) + + #Load the Agar plates and Calculate the layout of the plates + agar_plate1 = protocol.load_labware(self.agar_plate, self.agar_plate_position1) + if self.total_colonies <= len(agar_plate1.wells()): + agar_layout = self.calculate_plate_layout(protocol, agar_plate1) + else: + agar_plate2 = protocol.load_labware(self.agar_plate, self.agar_plate_position2) + agar_layout = self.calculate_plate_layout(protocol, agar_plate1, agar_plate2) + + + thermocycler.set_block_temperature(4) + thermocycler.open_lid() + + #Load the Liquid Broth into the dilution wells + protocol.comment("\n=== Step 1: Distributing LB to dilution wells ===") + # Get all wells that will receive LB (both dilutions if applicable) + all_dilution_wells = dilution_layout['dilution_1']['wells'][:] + if self.number_dilutions == 2 and dilution_layout['dilution_2']: + all_dilution_wells.extend(dilution_layout['dilution_2']['wells']) + # Distribute LB efficiently using built-in distribute method + # Process in chunks of 8 wells to update aspiration height + chunk_size = 8 + for i in range(0, len(all_dilution_wells), chunk_size): + chunk_wells = all_dilution_wells[i:i + chunk_size] + + # Get current aspiration location before each chunk + aspiration_location = smart_pipette.get_aspiration_location(lb_tube) + protocol.comment(f"Distributing to wells {i + 1}-{min(i + chunk_size, len(all_dilution_wells))}") + + # Use built-in distribute method with updated aspiration location + large_pipette.distribute( + volume=self.volume_lb_transfer, + source=aspiration_location, + dest=chunk_wells, + disposal_volume=4, # For accuracy + new_tip='once' # Use one tip for the chunk + ) + + # Load liquid tracking for dilution wells + for well in chunk_wells: + well.load_liquid(liquid=liquid_broth, volume=self.volume_lb_transfer) + + #Transfer bacteria to first dilution and process + protocol.comment("\n=== Step 2: Transferring bacteria and plating ===") + + well_index = 0 + for construct_position, construct_names in self.bacterium_locations.items(): + for replicate in range(self.replicates): + # Get source and destination wells + source_well = thermocycler_plate[construct_position] + dilution1_well = dilution_layout['dilution_1']['wells'][well_index] + agar1_well = agar_layout['dilution_1']['wells'][well_index] + + protocol.comment(f"\nProcessing {construct_names[0]} replicate {replicate + 1}") + + # Pick up tip once for entire workflow per well + small_pipette.pick_up_tip() + + # Transfer bacteria to dilution plate 1 + small_pipette.aspirate(self.volume_bacteria_transfer, source_well, rate=self.aspiration_rate) + small_pipette.dispense(self.volume_bacteria_transfer, dilution1_well, rate=self.dispense_rate) + + # Mix in dilution plate 1 (15µL mixing volume) + small_pipette.mix(repetitions=5, volume=19, location=dilution1_well) + + # Plate on agar 1 + small_pipette.aspirate(self.volume_colony, dilution1_well, rate=self.aspiration_rate) + small_pipette.dispense(self.volume_colony, agar1_well.top(-8), rate=self.dispense_rate) + small_pipette.blow_out() + + # If we have a second dilution, continue with same tip + if self.number_dilutions == 2: + dilution2_well = dilution_layout['dilution_2']['wells'][well_index] + agar2_well = agar_layout['dilution_2']['wells'][well_index] + + # Transfer from dilution 1 to dilution 2 + small_pipette.aspirate(self.volume_bacteria_transfer, dilution1_well, rate=self.aspiration_rate) + small_pipette.dispense(self.volume_bacteria_transfer, dilution2_well, rate=self.dispense_rate) + + # Mix in dilution plate 2 + small_pipette.mix(repetitions=5, volume=19, location=dilution2_well) + + # Plate on agar 2 + small_pipette.aspirate(self.volume_colony, dilution2_well, rate=self.aspiration_rate) + small_pipette.dispense(self.volume_colony, agar2_well.top(-8), rate=self.dispense_rate) + small_pipette.blow_out() + + # Drop tip after completing all transfers for this well + small_pipette.drop_tip() + + well_index += 1 + + # Close thermocycler lid + # thermocycler.close_lid() + # thermocycler.deactivate_block() + + protocol.comment("\n=== Plating protocol complete ===") + protocol.comment(f"Plated {self.number_constructs} constructs with {self.replicates} replicates") + protocol.comment(f"Created a total of {self.total_colonies} colonies") \ No newline at end of file diff --git a/src/pudu/sample_preparation.py b/src/pudu/sample_preparation.py index 3649624..3c1b557 100644 --- a/src/pudu/sample_preparation.py +++ b/src/pudu/sample_preparation.py @@ -2,7 +2,7 @@ from typing import List, Union, Optional, Tuple from abc import ABC, abstractmethod import math -from utils import colors +from pudu.utils import colors class SamplePreparation(ABC): diff --git a/src/pudu/transformation.py b/src/pudu/transformation.py index b9dd9fd..b254079 100644 --- a/src/pudu/transformation.py +++ b/src/pudu/transformation.py @@ -1,6 +1,6 @@ from opentrons import protocol_api -from pudu.utils import thermo_wells, temp_wells, liquid_transfer from typing import List, Dict +from pudu.utils import colors class Transformation(): @@ -15,9 +15,9 @@ class Transformation(): The volume of the competent cells in microliters. By default, 50 microliters. volume_recovery_media : float The volume of recovery media in microliters. By default, 100 microliters. - replicates : int + replicates : int The number of replicates of the assembly reaction. By default, 2. - thermocycler_starting_well : int + thermocycler_starting_well : int The starting well of the thermocycler module. By default, 0. thermocycler_labware : str The labware type of the thermocycler module. By default, 'nest_96_wellplate_100ul_pcr_full_skirt'. @@ -25,12 +25,12 @@ class Transformation(): The slots of the thermocycler module. By default, [7, 8, 10, 11]. temperature_module_labware : str The labware type of the temperature module. By default, 'opentrons_24_aluminumblock_nest_1.5ml_snapcap'. - temperature_module_slot : int - The slot of the temperature module. By default, 1. + temperature_module_position : int + The deck position of the temperature module. By default, 1. tiprack_labware : str The labware type of the tiprack. By default, 'opentrons_96_tiprack_20ul'. - tiprack_slot : int - The slot of the tiprack. By default, 9. + tiprack_position : int + The deck position of the tiprack. By default, 9. pipette_type : str The type of pipette. By default, 'p20_single_gen2'. pipette_mount : str @@ -41,225 +41,435 @@ class Transformation(): The rate of dispense in microliters per second. By default, 1 microliter per second. ''' def __init__(self, - list_of_dnas:List = [], # TODO:add SBOL version - competent_cells: str = None, # TODO: add SBOL version - replicates:int=2, - thermocycler_starting_well:int = 0, - thermocycler_labware:str = 'nest_96_wellplate_100ul_pcr_full_skirt', - temperature_module_labware:str = 'opentrons_24_aluminumblock_nest_1.5ml_snapcap', - temperature_module_position:int = 1, - - tiprack_p20_labware:str = 'opentrons_96_tiprack_20ul', - tiprack_p20_osition:int = 9, - tiprack_p300_labware:str = 'opentrons_96_tiprack_300ul', - tiprack_p300_osition:int = 6, - pipette_p20:str = 'p20_single_gen2', - pipette_p300:str = 'p300_single_gen2', - pipette_p20_position:str = 'left', - pipette_p300_position:str = 'right', - aspiration_rate:float=0.5, - dispense_rate:float=1,): - - self.list_of_dnas = list_of_dnas - self.competent_cells = competent_cells + list_of_dna:List = None, + volume_dna:float = 20, + competent_cells:str = None, + replicates:int=2, + thermocycler_starting_well:int = 0, + thermocycler_labware:str = "nest_96_wellplate_100ul_pcr_full_skirt", + temperature_module_labware:str = "opentrons_24_aluminumblock_nest_1.5ml_snapcap", + temperature_module_position:str = '1', + dna_plate:str = "nest_96_wellplate_100ul_pcr_full_skirt", + dna_plate_position:str = '2', + use_dna_96plate:bool = False, + tiprack_p20_labware:str = "opentrons_96_tiprack_20ul", + tiprack_p20_position:str = "9", + tiprack_p200_labware:str = "opentrons_96_filtertiprack_200ul", + tiprack_p200_position:str = "6", + pipette_p20:str = "p20_single_gen2", + pipette_p20_position:str = "left", + pipette_p300:str = "p300_single_gen2", + pipette_p300_position:str = "right", + aspiration_rate:float = 0.5, + dispense_rate:float = 1, + initial_dna_well:int = 0, + water_testing:bool = False + ): + + if list_of_dna is None: + raise ValueError ("Must input a list of DNA strings") + else: + self.list_of_dna = list_of_dna + self.volume_dna = volume_dna + if competent_cells is None: + raise ValueError ("Must input a competent cell strings") + else: + self.competent_cells = competent_cells self.replicates = replicates self.thermocycler_starting_well = thermocycler_starting_well self.thermocycler_labware = thermocycler_labware self.temperature_module_labware = temperature_module_labware self.temperature_module_position = temperature_module_position + self.dna_plate = dna_plate + self.dna_plate_position = dna_plate_position + self.use_dna_96plate = use_dna_96plate self.tiprack_p20_labware = tiprack_p20_labware - self.tiprack_p20_position = tiprack_p20_osition - self.tiprack_p300_labware = tiprack_p300_labware - self.tiprack_p300_position = tiprack_p300_osition + self.tiprack_p20_position = tiprack_p20_position + self.tiprack_p200_labware = tiprack_p200_labware + self.tiprack_p200_position = tiprack_p200_position self.pipette_p20 = pipette_p20 - self.pipette_p300 = pipette_p300 self.pipette_p20_position = pipette_p20_position + self.pipette_p300 = pipette_p300 self.pipette_p300_position = pipette_p300_position self.aspiration_rate = aspiration_rate self.dispense_rate = dispense_rate + self.initial_dna_well = initial_dna_well + self.water_testing = water_testing -class Chemical_transformation(Transformation): +class HeatShockTransformation(Transformation): ''' - Creates a protocol for automated transformation. - - Attributes - ---------- - volume_dna : float - The volume DNA in microliters. By default, 2 microliters. We suggest 2 microliters for extracted plasmid and 5 microliters for PCR products. - volume_competent_cells : float - The volume of the competent cells in microliters. By default, 50 microliters. - volume_recovery_media : float - The volume of recovery media in microliters. By default, 100 microliters. - replicates : int - The number of replicates of the assembly reaction. By default, 2. - thermocycler_starting_well : int - The starting well of the thermocycler module. By default, 0. - thermocycler_labware : str - The labware type of the thermocycler module. By default, 'nest_96_wellplate_100ul_pcr_full_skirt'. - thermocycler_slots : list - The slots of the thermocycler module. By default, [7, 8, 10, 11]. - temperature_module_labware : str - The labware type of the temperature module. By default, 'opentrons_24_aluminumblock_nest_1.5ml_snapcap'. - temperature_module_slot : int - The slot of the temperature module. By default, 1. - tiprack_labware : str - The labware type of the tiprack. By default, 'opentrons_96_tiprack_20ul'. - tiprack_slot : int - The slot of the tiprack. By default, 9. - pipette_type : str - The type of pipette. By default, 'p20_single_gen2'. - pipette_mount : str - The mount of the pipette. By default, 'left'. - aspiration_rate : float - The rate of aspiration in microliters per second. By default, 0.5 microliters per second. - dispense_rate : float - The rate of dispense in microliters per second. By default, 1 microliter per second. + Creates a protocol for automated transformation. ''' - def __init__(self, - volume_dna:float = 2, - volume_competent_cell_to_add:float = 20, - volume_competent_cell_per_tube:float =100, - volume_recovery_media_to_add:float = 60, - volume_recovery_media_per_tube:float = 1200, #add a bit more to pick it properly - cold_incubation1:Dict = {'temperature': 4, 'hold_time_minutes': 30}, - heat_shock:Dict = {'temperature': 42, 'hold_time_minutes': 1}, - cold_incubation2:Dict = {'temperature': 4, 'hold_time_minutes': 2}, - recovery_incubation:Dict = {'temperature': 37, 'hold_time_minutes': 60}, + def __init__(self, + transfer_volume_dna:float = 2, + transfer_volume_competent_cell:float = 20, + tube_volume_competent_cell:float =100, + transfer_volume_recovery_media:float = 60, + tube_volume_recovery_media:float = 1200, #add a bit more to pick it properly + cold_incubation1:Dict = None, + heat_shock:Dict = None, + cold_incubation2:Dict = None, + recovery_incubation:Dict = None, *args, **kwargs): super().__init__(*args, **kwargs) - self.volume_dna = volume_dna - self.volume_competent_cell_to_add = volume_competent_cell_to_add - self.volume_competent_cell_per_tube = volume_competent_cell_per_tube - self.volume_recovery_media = volume_recovery_media_to_add - self.volume_recovery_media_per_tube = volume_recovery_media_per_tube - self.cold_incubation1 = cold_incubation1 - self.heat_shock = heat_shock - self.cold_incubation2 = cold_incubation2 + self.transfer_volume_dna = transfer_volume_dna + self.transfer_volume_competent_cell = transfer_volume_competent_cell + self.tube_volume_competent_cell = tube_volume_competent_cell + self.transfer_volume_recovery_media = transfer_volume_recovery_media + self.tube_volume_recovery_media = tube_volume_recovery_media + if cold_incubation1 is None: + self.cold_incubation1 = {'temperature': 4, 'hold_time_minutes': 30} + else: + self.cold_incubation1 = cold_incubation1 + if heat_shock is None: + self.heat_shock = {'temperature': 42, 'hold_time_minutes': 1} + else: + self.heat_shock = heat_shock + if cold_incubation2 is None: + self.cold_incubation2 = {'temperature': 4, 'hold_time_minutes': 2} + else: + self.cold_incubation2 = cold_incubation2 + if recovery_incubation is None: + self.recovery_incubation = {'temperature': 37, 'hold_time_minutes': 60} + else: + self.recovery_incubation = recovery_incubation self.recovery_incubation = recovery_incubation self.dict_of_parts_in_temp_mod_position = {} self.dict_of_parts_in_thermocycler = {} - metadata = { - 'protocolName': 'PUDU Transformation', - 'author': 'Gonzalo Vidal ', - 'description': 'Automated transformation protocol', - 'apiLevel': '2.13'} - - def run(self, protocol: protocol_api.ProtocolContext): - - #Labware - #Load the magnetic module - tem_mod = protocol.load_module('temperature module', f'{self.temperature_module_position}') - tem_mod_block = tem_mod.load_labware(self.temperature_module_labware) - #Load the thermocycler module, its default location is on slots 7, 8, 10 and 11 - thermocycler_mod = protocol.load_module('thermocycler module') - thermocycler_mod_plate = thermocycler_mod.load_labware(self.thermocycler_labware) - #Load the tiprack - tiprack_p20 = protocol.load_labware(self.tiprack_p20_labware, f'{self.tiprack_p20_position}') - tiprack_p300 = protocol.load_labware(self.tiprack_p300_labware, f'{self.tiprack_p300_position}') - #Load the pipette + def liquid_transfer(self, protocol, pipette, volume, source, dest, + asp_rate: float = 0.5, disp_rate: float = 1.0, + blow_out: bool = True, touch_tip: bool = False, + mix_before: float = 0.0, mix_after: float = 0.0, + mix_reps: int = 3, new_tip: bool = True, + remove_air:bool = True, drop_tip: bool = True): + if new_tip: + pipette.pick_up_tip() + + if mix_before > 0: + pipette.mix(mix_reps, mix_before, source) + + pipette.aspirate(volume, source, rate=asp_rate) + pipette.dispense(volume, dest, rate=disp_rate) + + if mix_after > 0: + pipette.mix(mix_reps, mix_after, dest) + + if blow_out: + pipette.blow_out() + + if remove_air: + for _ in range(2): + pipette.aspirate(20, dest.bottom(), rate=disp_rate) + pipette.dispense(20, dest.bottom(8), rate=disp_rate) + + if touch_tip: + pipette.touch_tip(radius=0.5, v_offset=-14, speed=20) + + if drop_tip: + pipette.drop_tip() + + def run(self, protocol: protocol_api.ProtocolContext): + # Force water testing mode during simulation + if protocol.is_simulating(): + self.water_testing = True + protocol.comment("Simulation detected - enabling water testing mode") + # Labware + # Load the temperature module + temperature_module = protocol.load_module('temperature module', self.temperature_module_position) + alumblock = temperature_module.load_labware(self.temperature_module_labware) + # Load the thermocycler module, its default location is on slots 7, 8, 10 and 11 + thermocycler_module = protocol.load_module('thermocycler module') + pcr_plate = thermocycler_module.load_labware(self.thermocycler_labware) + #If using the 96-well pcr plate as a dna construct source + if self.use_dna_96plate: + dna_plate = protocol.load_labware(self.dna_plate, self.dna_plate_position) + # Load the tiprack + tiprack_p20 = protocol.load_labware(self.tiprack_p20_labware, self.tiprack_p20_position) + tiprack_p200 = protocol.load_labware(self.tiprack_p200_labware, self.tiprack_p200_position) + # Load the pipette pipette_p20 = protocol.load_instrument(self.pipette_p20, self.pipette_p20_position, tip_racks=[tiprack_p20]) - pipette_p300 = protocol.load_instrument(self.pipette_p300, self.pipette_p300_position, tip_racks=[tiprack_p300]) - - #Load the reagents - #Check number of compenent cells and DNAs - total_transformations = len(self.list_of_dnas)*self.replicates - transformations_per_tube = int(self.volume_competent_cell_per_tube//self.volume_competent_cell_to_add) - number_of_tubes_with_competent_cells_needed = int(total_transformations//transformations_per_tube+1) #TODO: make an int, maybe use sail - #Check number of tubes with media - transformations_per_media_tube = int(self.volume_recovery_media_per_tube//self.volume_recovery_media) - number_of_tubes_with_media_needed = int(total_transformations//transformations_per_media_tube+1) #TODO: make an int, maybe use sail - if len(self.list_of_dnas)+number_of_tubes_with_competent_cells_needed+number_of_tubes_with_media_needed > 24: - raise ValueError(f'The number of reagents is more than 24. There are {len(self.list_of_dnas)} DNAs, {number_of_tubes_with_competent_cells_needed} tubes with competent cells and {number_of_tubes_with_media_needed} tubes with media. Please change the protocol and try again.') - temp_wells_counter = 0 - for dna in self.list_of_dnas: - self.dict_of_parts_in_temp_mod_position[dna] = temp_wells[temp_wells_counter] - temp_wells_counter += 1 - for i in range(number_of_tubes_with_competent_cells_needed): - self.dict_of_parts_in_temp_mod_position[f'Competent_cells_tube_{i}'] = temp_wells[temp_wells_counter] - temp_wells_counter += 1 - for i in range(number_of_tubes_with_media_needed): - self.dict_of_parts_in_temp_mod_position[f'Media_tube_{i}'] = temp_wells[temp_wells_counter] - temp_wells_counter += 1 - #Set Temperature and Thermocycler module to 4 - tem_mod.set_temperature(4) - thermocycler_mod.open_lid() - thermocycler_mod.set_block_temperature(4) - #Load cells into the thermocycler - if self.volume_competent_cell_to_add > 20: - pipette = pipette_p300 + pipette_p300 = protocol.load_instrument(self.pipette_p300, self.pipette_p300_position, + tip_racks=[tiprack_p200]) + #Validate protocol + self._validate_protocol(protocol, alumblock) + + #Load Reagents + if self.use_dna_96plate: + DNA_wells = self._load_dna_list(protocol, dna_plate, self.volume_dna, self.list_of_dna, initial_well=self.initial_dna_well) + competent_cell_wells = self._load_reagents(protocol, alumblock, self.tube_volume_competent_cell, f"Competent Cell {self.competent_cells}", self.competent_cell_tubes_needed) + media_wells = self._load_reagents(protocol, alumblock, self.tube_volume_recovery_media, "Media", self.media_tubes_needed, initial_well=len(competent_cell_wells)) + else: - pipette = pipette_p20 - current_thermocycler_well_comp = self.thermocycler_starting_well - transformation_well = 1 - #for r in range(self.replicates): - for i in range(number_of_tubes_with_competent_cells_needed): - for j in range(transformations_per_tube): - part_ubication_in_thermocyler = thermocycler_mod_plate[thermo_wells[current_thermocycler_well_comp]] - liquid_transfer(pipette, self.volume_competent_cell_to_add, tem_mod_block[self.dict_of_parts_in_temp_mod_position[f'Competent_cells_tube_{i}']], part_ubication_in_thermocyler, self.aspiration_rate, self.dispense_rate, mix_before=self.volume_competent_cell_to_add -5) - if j == 0: - self.dict_of_parts_in_thermocycler[f'Competent_cells_tube_{i}'] = [thermo_wells[current_thermocycler_well_comp]] - else: - self.dict_of_parts_in_thermocycler[f'Competent_cells_tube_{i}'].append(thermo_wells[current_thermocycler_well_comp]) - current_thermocycler_well_comp+=1 - if transformation_well == total_transformations: - break - transformation_well+=1 - - #Load DNA into the thermocycler and mix - if self.volume_dna > 20: + DNA_wells = self._load_dna_list(protocol, alumblock, self.volume_dna, self.list_of_dna) + competent_cell_wells = self._load_reagents(protocol, alumblock, self.tube_volume_competent_cell, f"Competent Cell {self.competent_cells}", self.competent_cell_tubes_needed, initial_well=len(DNA_wells)) + media_wells = self._load_reagents(protocol, alumblock, self.tube_volume_recovery_media, "Media", self.media_tubes_needed, initial_well=len(DNA_wells)+len(competent_cell_wells)) + + #Set Temperature module and Thermocycler module to 4 + thermocycler_module.open_lid() + if not self.water_testing: + temperature_module.set_temperature(4) + thermocycler_module.set_block_temperature(4) + + #Load competent cells into the thermocycler + pipette = pipette_p300 + self._transfer_competent_cells(protocol, pipette, pcr_plate, competent_cell_wells, self.transfer_volume_competent_cell, self.thermocycler_starting_well) + + #Load DNA into the thermocycler + if self.transfer_volume_dna > 20: pipette = pipette_p300 else: pipette = pipette_p20 - current_thermocycler_well_dna = self.thermocycler_starting_well - for r in range(self.replicates): - for dna in self.list_of_dnas: - part_ubication_in_thermocyler = thermocycler_mod_plate[thermo_wells[current_thermocycler_well_dna]] - liquid_transfer(pipette, self.volume_dna, tem_mod_block[self.dict_of_parts_in_temp_mod_position[dna]], part_ubication_in_thermocyler, self.aspiration_rate, self.dispense_rate, mix_before=self.volume_dna) - if r == 0: - self.dict_of_parts_in_thermocycler[dna] = [thermo_wells[current_thermocycler_well_dna]] - else: - self.dict_of_parts_in_thermocycler[dna].append(thermo_wells[current_thermocycler_well_dna]) - current_thermocycler_well_dna+=1 - - #Cold incubation - thermocycler_mod.close_lid() + self._transfer_DNA(protocol, pipette, pcr_plate, DNA_wells, self.transfer_volume_dna, self.thermocycler_starting_well) + + # Cold Incubation + thermocycler_module.close_lid() profile = [ - self.cold_incubation1, #1st cold incubation (long) - self.heat_shock, #Heatshock - self.cold_incubation2] #2nd cold incubation (short) - thermocycler_mod.execute_profile(steps=profile, repetitions=1, block_max_volume=30) - #Load LB and recovery incubation - thermocycler_mod.open_lid() - #TODO: check if there is the need for more than one tube - if self.volume_recovery_media > 20: - pipette = pipette_p300 - else: - pipette = pipette_p20 - current_thermocycler_well_media = self.thermocycler_starting_well - transformation_well = 1 - for i in range(number_of_tubes_with_media_needed): - for j in range(transformations_per_media_tube): - part_ubication_in_thermocyler = thermocycler_mod_plate[thermo_wells[current_thermocycler_well_media]] - liquid_transfer(pipette, self.volume_recovery_media, tem_mod_block[self.dict_of_parts_in_temp_mod_position[f'Media_tube_{i}']], part_ubication_in_thermocyler, self.aspiration_rate, self.dispense_rate, mix_after=self.volume_recovery_media -5) - if j == 0: - self.dict_of_parts_in_thermocycler[f'Media_tube_{i}'] = [thermo_wells[current_thermocycler_well_media]] - else: - self.dict_of_parts_in_thermocycler[f'Media_tube_{i}'].append(thermo_wells[current_thermocycler_well_media]) - current_thermocycler_well_media+=1 - if transformation_well == total_transformations: - break - transformation_well+=1 - thermocycler_mod.close_lid() + self.cold_incubation1, # 1st cold incubation (long) + self.heat_shock, # Heat shock + self.cold_incubation2 # 2nd cold incubation (short) + ] + if not self.water_testing: + thermocycler_module.execute_profile(steps=profile, repetitions=1, block_max_volume=30) + thermocycler_module.open_lid() + + #Load liquid broth + pipette = pipette_p300 + self._transfer_liquid_broth(protocol, pipette, pcr_plate, media_wells, self.transfer_volume_recovery_media, self.thermocycler_starting_well) + + # Recovery Incubation + thermocycler_module.close_lid() recovery = [ - self.recovery_incubation] - thermocycler_mod.execute_profile(steps=recovery, repetitions=1, block_max_volume=30) - - #output + self.recovery_incubation + ] + if not self.water_testing: + thermocycler_module.execute_profile(steps=recovery, repetitions=1, block_max_volume=30) + + # output print('Strain and media tube in temp_mod') print(self.dict_of_parts_in_temp_mod_position) print('Genetically modified organisms in thermocycler') print(self.dict_of_parts_in_thermocycler) - #Optionally plate - #END \ No newline at end of file + + def _validate_protocol(self, protocol, labware): + #Number of available wells to load into + module_wells = len(labware.wells()) + #Number of dna constructs to be used + total_constructs = len(self.list_of_dna) + #Number of tubes with competent cells to be used + self.total_transformations = total_constructs*self.replicates + self.transformations_per_cell_tube = self.tube_volume_competent_cell//self.transfer_volume_competent_cell + self.competent_cell_tubes_needed = (self.total_transformations + self.transformations_per_cell_tube - 1) // self.transformations_per_cell_tube + #Number of tubes with media to be used + self.transformations_per_media_tube = self.tube_volume_recovery_media//self.transfer_volume_recovery_media + self.media_tubes_needed = (self.total_transformations + self.transformations_per_media_tube - 1) // self.transformations_per_media_tube + if self.use_dna_96plate: + if self.competent_cell_tubes_needed + self.media_tubes_needed > module_wells: + raise ValueError(f'The number of reagents is more that {module_wells}.' + f'There are {self.competent_cell_tubes_needed} tubes with competent cells.' + f'{self.media_tubes_needed} tubes with media.' + f'Please modify the protocol and try again.') + else: + if total_constructs + self.competent_cell_tubes_needed + self.media_tubes_needed > module_wells: + raise ValueError(f'The number of reagents is more than {module_wells}.' + f'There are {total_constructs} DNA constructs.' + f'{self.competent_cell_tubes_needed} tubes with competent cells.' + f'{self.media_tubes_needed} tubes with media.' + f'Please modify the protocol and try again.') + + + def _load_dna_list(self, protocol, labware, volume, dna_list, initial_well=0, description=None, color_index = None): + """ + Load individual DNA constructs into wells, one construct per well. + + Parameters: + - protocol: Protocol context + - labware: Labware object (temperature module or DNA plate) + - volume: Volume to load in µL + - construct_list: List of construct names (e.g., ['GVD0011', 'GVD0013']) + - initial_well: Starting well index + - color_index: Starting color index (auto-increments if None) + + Returns: + - List of well objects + """ + wells = [] + current_color = color_index if color_index is not None else 0 + for i, construct in enumerate(dna_list): + #Get the well + well = labware.wells()[initial_well+i] + wells.append(well) + + #Covert tuple to string if needed + if isinstance(construct, tuple): + construct_name = '_'.join(construct) + else: + construct_name = construct + #Define and load "liquid" + liquid = protocol.define_liquid( + name = construct_name, + description= description if description is not None else f"{construct} DNA construct", + display_color= colors[current_color%len(colors)] + ) + well.load_liquid(liquid, volume=volume) + + #Track in dictionary + if not self.use_dna_96plate: + self.dict_of_parts_in_temp_mod_position[construct_name] = well.well_name + current_color += 1 + return wells + + def _load_reagents(self, protocol, labware, volume, reagent_name, tube_count, initial_well=0, color_index=None): + """ + Load multiple tubes of the same reagent type. + + Parameters: + - protocol: Protocol context + - labware: Labware object (temperature module) + - volume: Volume to load in µL + - reagent_base_name: Base name for reagent (e.g., "Competent_Cell", "Media") + - tube_count: Number of tubes to load + - initial_well: Starting well index + - color_index: Starting color index (auto-increments if None) + + Returns: + - List of well objects + """ + wells = [] + current_color = color_index if color_index is not None else 0 + for i in range(tube_count): + well = labware.wells()[initial_well+i] + wells.append(well) + name = f"{reagent_name}_{i+1}" + + liquid = protocol.define_liquid( + name = name, + display_color= colors[current_color%len(colors)] + ) + + well.load_liquid(liquid, volume=volume) + self.dict_of_parts_in_temp_mod_position[name] = well.well_name + current_color += 1 + return wells + + def _transfer_competent_cells(self, protocol, pipette, pcr_plate, competent_cell_wells, + transfer_volume_competent_cell, thermocycler_starting_well): + """ + Transfer competent cells to thermocycler wells using distribute method. + + Parameters: + - protocol: Protocol context + - pipette: Pipette instrument + - pcr_plate: Thermocycler plate + - competent_cell_wells: List of wells containing competent cells + - transfer_volume_competent_cell: Volume to transfer per well + - thermocycler_starting_well: Starting well index in thermocycler + """ + well_index = thermocycler_starting_well + + for tube_index, source_well in enumerate(competent_cell_wells): + #Calculate how many wells this cell tube will fill + remaining_transformations = self.total_transformations - (tube_index * self.transformations_per_cell_tube) + wells_to_fill = min(self.transformations_per_cell_tube, remaining_transformations) + + #Destination wells + dest_wells = pcr_plate.wells()[well_index:well_index+wells_to_fill] + + #Distribute + pipette.distribute( + volume=transfer_volume_competent_cell, + source=source_well, + dest=dest_wells, + mix_before=(3,50), + disposal_volume=0, + new_tip='once' + ) + + #Thermocycler Dictionary + name = f"Competent_Cell_{self.competent_cells}_{tube_index+1}" + for well in dest_wells: + if well.well_name not in self.dict_of_parts_in_thermocycler: + self.dict_of_parts_in_thermocycler[well.well_name] = [] + self.dict_of_parts_in_thermocycler[well.well_name].append(name) + + well_index += wells_to_fill + + def _transfer_DNA(self, protocol, pipette, pcr_plate, DNA_wells, transfer_volume_dna, thermocycler_starting_well): + """ + Transfer DNA constructs to thermocycler wells with replicates grouped together. + + Parameters: + - protocol: Protocol context + - pipette: Pipette instrument + - pcr_plate: Thermocycler plate + - DNA_wells: List of wells containing DNA constructs + - transfer_volume_dna: Volume to transfer per well + - thermocycler_starting_well: Starting well index in thermocycler + """ + for construct_index, (construct_name, source_well) in enumerate(zip(self.list_of_dna, DNA_wells)): + construct_well = construct_index * self.replicates + thermocycler_starting_well + + for replicate in range(self.replicates): + dest_well = pcr_plate.wells()[construct_well+replicate] + #Transfer liquid + self.liquid_transfer( + protocol=protocol, + pipette=pipette, + volume=transfer_volume_dna, + source=source_well, + dest=dest_well, + asp_rate=self.aspiration_rate, + disp_rate=self.dispense_rate, + mix_before=transfer_volume_dna, + touch_tip=True + ) + + #Track in dictionary + if dest_well.well_name not in self.dict_of_parts_in_thermocycler: + self.dict_of_parts_in_thermocycler[dest_well.well_name] = [] + self.dict_of_parts_in_thermocycler[dest_well.well_name].append(construct_name) + + def _transfer_liquid_broth(self, protocol, pipette, pcr_plate, media_wells, transfer_volume_recovery_media, + thermocycler_starting_well): + """ + Transfer recovery media to thermocycler wells using distribute method. + + Parameters: + - protocol: Protocol context + - pipette: Pipette instrument + - pcr_plate: Thermocycler plate + - media_wells: List of wells containing recovery media + - transfer_volume_recovery_media: Volume to transfer per well + - thermocycler_starting_well: Starting well index in thermocycler + """ + well_index = thermocycler_starting_well + + for tube_index, source_well in enumerate(media_wells): + #Calculate how many wells this media tube will fill + remaining_transformations = self.total_transformations - (tube_index * self.transformations_per_media_tube) + wells_to_fill = min(self.transformations_per_media_tube, remaining_transformations) + + # Get destination wells for this tube using .top() to avoid contamination + dest_wells = [pcr_plate.wells()[well_index+i].top(2) for i in range(int(wells_to_fill))] + + #Distribute recovery media + pipette.distribute( + volume=transfer_volume_recovery_media, + source=source_well, + dest=dest_wells, + disposal_volume=0, + new_tip='once', + air_gap=10 + ) + + #Track in dictionary + media_name = f"Media_{tube_index+1}" + for i in range(int(wells_to_fill)): + well_name = pcr_plate.wells()[well_index + i].well_name + if well_name not in self.dict_of_parts_in_thermocycler: + self.dict_of_parts_in_thermocycler[well_name] = [] + self.dict_of_parts_in_thermocycler[well_name].append(media_name) + + well_index += wells_to_fill + From 1cdd51bda5750d5450579ce37ea73298427f9d2f Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Tue, 2 Sep 2025 18:33:41 -0600 Subject: [PATCH 057/118] fixed testing to use pudu in development mode --- .github/workflows/python-package.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 4772a57..be6e541 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -30,6 +30,10 @@ jobs: python -m pip install flake8 pytest opentrons if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + - name: Install pudu package in development mode + run: | + pip install -e . + - name: Lint with flake8 run: | flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics From 559b37492fc048678e2aee82f5cd55a9525651c4 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Tue, 2 Sep 2025 18:43:44 -0600 Subject: [PATCH 058/118] fixed testing to only use python 3.10 --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index be6e541..61f2332 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -14,7 +14,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.10", "3.11"] + python-version: ["3.10"] steps: - uses: actions/checkout@v4 From 8cf47170ca3c9ba8b1713c20c12ad2cb3d77ad4c Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Tue, 2 Sep 2025 19:09:57 -0600 Subject: [PATCH 059/118] integrated xlsx output into assembly.py instead of having to code in scripts --- src/pudu/assembly.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/pudu/assembly.py b/src/pudu/assembly.py index a4cfefd..21b58f9 100644 --- a/src/pudu/assembly.py +++ b/src/pudu/assembly.py @@ -32,7 +32,9 @@ def __init__(self, dispense_rate: float = 1, take_picture: bool = False, take_video: bool = False, - water_testing: bool = False): + water_testing: bool = False, + output_xlsx: bool = True, + protocol_name: str = ''): self.volume_total_reaction = volume_total_reaction self.volume_part = volume_part @@ -56,6 +58,8 @@ def __init__(self, self.take_picture = take_picture self.take_video = take_video self.water_testing = water_testing + self.output_xlsx = output_xlsx + self.protocol_name = protocol_name # Shared tracking dictionaries self.dict_of_parts_in_temp_mod_position = {} @@ -271,6 +275,15 @@ def run(self, protocol: protocol_api.ProtocolContext): thermocycler_module.execute_profile(steps=denaturation, repetitions=1, block_max_volume=30) thermocycler_module.set_block_temperature(4) + if protocol.is_simulating(): + if self.output_xlsx: + try: + if not self.protocol_name: + self.protocol_name = "Loop Assembly" + self.get_xlsx_output(self.protocol_name) + except Exception as e: + protocol.comment(f"Could not create Excel file: {e}") + # Output results print('Parts and reagents in temp_module') print(self.dict_of_parts_in_temp_mod_position) From 03f2a86e2e73d11886e9cce1dd6357e111a0fd12 Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Tue, 9 Sep 2025 09:26:28 -0600 Subject: [PATCH 060/118] Update pyproject.toml --- pyproject.toml | 63 ++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 56 insertions(+), 7 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index c662515..2ecb971 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,12 +11,12 @@ requires-python = ">=3.7" license = {file = "LICENSE"} keywords = ["pudu", "lab", "automation", "opentrons", "synthetic biology"] authors = [ - { name="Gonzalo Vidal", email="g.a.vidal-pena2@ncl.ac.uk" }, - { name="Carolus Vitalis", email="carlos.vidal.c@ug.uchile.cl"}, - { name="Matt Burridge", email="m.burridge1@newcastle.ac.uk"} + { name="Gonzalo Vidal", email="govi9038@colorado.edu" }, + { name="Oscar Rodriguez", email="osro6012@colorado.edu"}, ] maintainers = [ - {name = "Gonzalo Vidal", email = "g.a.vidal-pena2@ncl.ac.uk"} + { name="Gonzalo Vidal", email="govi9038@colorado.edu" }, + { name="Oscar Rodriguez", email="osro6012@colorado.edu"}, ] classifiers = [ "Programming Language :: Python :: 3", @@ -25,7 +25,56 @@ classifiers = [ ] dependencies = [ - 'opentrons', + aionotify==0.3.1, + annotated-types==0.7.0, + anyio==3.6.1, + attrs==22.2.0, + biopython==1.81, + certifi==2022.12.7, + charset-normalizer==3.0.1, + click==8.1.3, + Deprecated==1.2.13, + et-xmlfile==1.1.0, + graphviz==0.20.1, + idna==3.4, + isodate==0.6.1, + jsonschema==4.17.3, + lxml==4.9.2, + numpy==1.24.2, + openpyxl==3.1.1, + opentrons==8.4.1, + opentrons-shared-data==8.4.1, + ordered-set==4.1.0, + owlrl==6.0.2, + packaging==23.0, + prettytable==2.5.0, + pydantic==2.11.7, + pydantic-settings==2.9.1, + pydantic_core==2.33.2, + PyLaTeX==1.4.1, + pyparsing==2.4.7, + PyPDF2==3.0.1, + pyrsistent==0.19.3, + pyserial==3.5, + pyshacl==0.18.1, + python-dateutil==2.8.2, + python-dotenv==1.1.0, + pyusb==1.2.1, + rdflib==6.2.0, + requests==2.28.2, + sbol-factory==1.1.1.post1, + sbol-utilities==1.0a16, + sbol2==1.4.1, + sbol3==1.0.1, + six==1.16.0, + sniffio==1.3.0, + SPARQLWrapper==2.0.0, + typing_extensions==4.14.0, + tyto==1.4, + urllib3==1.26.14, + wcwidth==0.2.6, + wrapt==1.15.0, + xlsxwriter==3.2.5, ] [project.optional-dependencies] @@ -35,5 +84,5 @@ test = [ ] [project.urls] -"Homepage" = "https://github.com/RudgeLab/PUDU" -"Bug Tracker" = "https://github.com/RudgeLab/PUDU/issues" \ No newline at end of file +"Homepage" = "https://github.com/MyersResearchGroup/PUDU" +"Bug Tracker" = "https://github.com/MyersResearchGroup/PUDU/issues" From d7159afafb98f6453c7a648f1144d1f02da294e3 Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Tue, 9 Sep 2025 09:30:43 -0600 Subject: [PATCH 061/118] Update pyproject.toml --- pyproject.toml | 100 ++++++++++++++++++++++++------------------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 2ecb971..54f635f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,56 +25,56 @@ classifiers = [ ] dependencies = [ - aionotify==0.3.1, - annotated-types==0.7.0, - anyio==3.6.1, - attrs==22.2.0, - biopython==1.81, - certifi==2022.12.7, - charset-normalizer==3.0.1, - click==8.1.3, - Deprecated==1.2.13, - et-xmlfile==1.1.0, - graphviz==0.20.1, - idna==3.4, - isodate==0.6.1, - jsonschema==4.17.3, - lxml==4.9.2, - numpy==1.24.2, - openpyxl==3.1.1, - opentrons==8.4.1, - opentrons-shared-data==8.4.1, - ordered-set==4.1.0, - owlrl==6.0.2, - packaging==23.0, - prettytable==2.5.0, - pydantic==2.11.7, - pydantic-settings==2.9.1, - pydantic_core==2.33.2, - PyLaTeX==1.4.1, - pyparsing==2.4.7, - PyPDF2==3.0.1, - pyrsistent==0.19.3, - pyserial==3.5, - pyshacl==0.18.1, - python-dateutil==2.8.2, - python-dotenv==1.1.0, - pyusb==1.2.1, - rdflib==6.2.0, - requests==2.28.2, - sbol-factory==1.1.1.post1, - sbol-utilities==1.0a16, - sbol2==1.4.1, - sbol3==1.0.1, - six==1.16.0, - sniffio==1.3.0, - SPARQLWrapper==2.0.0, - typing_extensions==4.14.0, - tyto==1.4, - urllib3==1.26.14, - wcwidth==0.2.6, - wrapt==1.15.0, - xlsxwriter==3.2.5, + "aionotify==0.3.1", + "annotated-types==0.7.0", + "anyio==3.6.1", + "attrs==22.2.0", + "biopython==1.81", + "certifi==2022.12.7", + "charset-normalizer==3.0.1", + "click==8.1.3", + "Deprecated==1.2.13", + "et-xmlfile==1.1.0", + "graphviz==0.20.1", + "idna==3.4", + "isodate==0.6.1", + "jsonschema==4.17.3", + "lxml==4.9.2", + "numpy==1.24.2", + "openpyxl==3.1.1", + "opentrons==8.4.1", + "opentrons-shared-data==8.4.1", + "ordered-set==4.1.0", + "owlrl==6.0.2", + "packaging==23.0", + "prettytable==2.5.0", + "pydantic==2.11.7", + "pydantic-settings==2.9.1", + "pydantic_core==2.33.2", + "PyLaTeX==1.4.1", + "pyparsing==2.4.7", + "PyPDF2==3.0.1", + "pyrsistent==0.19.3", + "pyserial==3.5", + "pyshacl==0.18.1", + "python-dateutil==2.8.2", + "python-dotenv==1.1.0", + "pyusb==1.2.1", + "rdflib==6.2.0", + "requests==2.28.2", + "sbol-factory==1.1.1.post1", + "sbol-utilities==1.0a16", + "sbol2==1.4.1", + "sbol3==1.0.1", + "six==1.16.0", + "sniffio==1.3.0", + "SPARQLWrapper==2.0.0", + "typing_extensions==4.14.0", + "tyto==1.4", + "urllib3==1.26.14", + "wcwidth==0.2.6", + "wrapt==1.15.0", + "xlsxwriter==3.2.5", ] [project.optional-dependencies] From 99097bf5a80bbf508680b47306a103358d0875c5 Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Tue, 9 Sep 2025 09:34:56 -0600 Subject: [PATCH 062/118] Delete requirements.txt --- requirements.txt | 51 ------------------------------------------------ 1 file changed, 51 deletions(-) delete mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index a98e63f..0000000 --- a/requirements.txt +++ /dev/null @@ -1,51 +0,0 @@ -aionotify==0.3.1 -annotated-types==0.7.0 -anyio==3.6.1 -attrs==22.2.0 -biopython==1.81 -certifi==2022.12.7 -charset-normalizer==3.0.1 -click==8.1.3 -Deprecated==1.2.13 -et-xmlfile==1.1.0 -graphviz==0.20.1 -idna==3.4 -isodate==0.6.1 -jsonschema==4.17.3 -lxml==4.9.2 -numpy==1.24.2 -openpyxl==3.1.1 -opentrons==8.4.1 -opentrons-shared-data==8.4.1 -ordered-set==4.1.0 -owlrl==6.0.2 -packaging==23.0 -prettytable==2.5.0 -pydantic==2.11.7 -pydantic-settings==2.9.1 -pydantic_core==2.33.2 -PyLaTeX==1.4.1 -pyparsing==2.4.7 -PyPDF2==3.0.1 -pyrsistent==0.19.3 -pyserial==3.5 -pyshacl==0.18.1 -python-dateutil==2.8.2 -python-dotenv==1.1.0 -pyusb==1.2.1 -rdflib==6.2.0 -requests==2.28.2 -sbol-factory==1.1.1.post1 -sbol-utilities==1.0a16 -sbol2==1.4.1 -sbol3==1.0.1 -six==1.16.0 -sniffio==1.3.0 -SPARQLWrapper==2.0.0 -typing_extensions==4.14.0 -tyto==1.4 -urllib3==1.26.14 -wcwidth==0.2.6 -wrapt==1.15.0 -xlsxwriter==3.2.5 - From 75b5bbc156dae72de4409b1a87a7d3fecf07543a Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Tue, 9 Sep 2025 10:11:30 -0600 Subject: [PATCH 063/118] Update utils.py --- src/pudu/utils.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pudu/utils.py b/src/pudu/utils.py index 4b7f7aa..a4a2dc7 100644 --- a/src/pudu/utils.py +++ b/src/pudu/utils.py @@ -1,6 +1,7 @@ import subprocess import time from typing import Optional +import sbol2 colors = [ "#4040BF", # Blue From 51c1a601807f8646329536d59955c55d90a0401b Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Tue, 9 Sep 2025 10:12:57 -0600 Subject: [PATCH 064/118] Update utils.py --- src/pudu/utils.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pudu/utils.py b/src/pudu/utils.py index a4a2dc7..88eca3b 100644 --- a/src/pudu/utils.py +++ b/src/pudu/utils.py @@ -2,6 +2,7 @@ import time from typing import Optional import sbol2 +import json colors = [ "#4040BF", # Blue From 7d14e0ed270c5b4b6975211890e2af4fffd02a81 Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Tue, 9 Sep 2025 10:17:24 -0600 Subject: [PATCH 065/118] Update run_sbol2assembly.py --- scripts/run_sbol2assembly.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/run_sbol2assembly.py b/scripts/run_sbol2assembly.py index aecde46..7c27f18 100644 --- a/scripts/run_sbol2assembly.py +++ b/scripts/run_sbol2assembly.py @@ -1,4 +1,4 @@ -from pudu.assembly import sbol2_DNA_Assembly +from pudu.assembly import SBOLLoopAssembly from pudu.utils import assemblyPlan_To_JSON from opentrons import protocol_api @@ -13,6 +13,6 @@ def run(protocol= protocol_api.ProtocolContext): - pudu_sbol2_assembly = sbol2_DNA_Assembly(assembly_JSON) + pudu_sbol2_assembly = SBOLLoopAssembly(assembly_JSON) pudu_sbol2_assembly.run(protocol) - pudu_sbol2_assembly.get_xlsx_output('sbol2_assembly_output.xlsx') \ No newline at end of file + pudu_sbol2_assembly.get_xlsx_output('sbol2_assembly_output.xlsx') From 3789b358d88e0f3cab50a330cb107d6889ac5919 Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Tue, 9 Sep 2025 10:37:11 -0600 Subject: [PATCH 066/118] Update run_sbol2assembly.py --- scripts/run_sbol2assembly.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/run_sbol2assembly.py b/scripts/run_sbol2assembly.py index 7c27f18..5892672 100644 --- a/scripts/run_sbol2assembly.py +++ b/scripts/run_sbol2assembly.py @@ -2,7 +2,7 @@ from pudu.utils import assemblyPlan_To_JSON from opentrons import protocol_api -assembly_JSON = assemblyPlan_To_JSON('../tests/validation_assembly1.xml') +assembly_JSON = assembly_plan_RDF_to_JSON('../tests/validation_assembly1.xml') # metadata metadata = { From 519c8fd7a0c2964a3a1e4e4138b50634f301baf5 Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Tue, 9 Sep 2025 10:39:16 -0600 Subject: [PATCH 067/118] Update run_sbol2assembly.py --- scripts/run_sbol2assembly.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/run_sbol2assembly.py b/scripts/run_sbol2assembly.py index 5892672..1d35a0f 100644 --- a/scripts/run_sbol2assembly.py +++ b/scripts/run_sbol2assembly.py @@ -1,5 +1,5 @@ from pudu.assembly import SBOLLoopAssembly -from pudu.utils import assemblyPlan_To_JSON +from pudu.utils import assembly_plan_RDF_to_JSON from opentrons import protocol_api assembly_JSON = assembly_plan_RDF_to_JSON('../tests/validation_assembly1.xml') @@ -15,4 +15,4 @@ def run(protocol= protocol_api.ProtocolContext): pudu_sbol2_assembly = SBOLLoopAssembly(assembly_JSON) pudu_sbol2_assembly.run(protocol) - pudu_sbol2_assembly.get_xlsx_output('sbol2_assembly_output.xlsx') + #pudu_sbol2_assembly.get_xlsx_output('sbol2_assembly_output.xlsx') From b72df47095a6329556b2007d130a150758199508 Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Tue, 9 Sep 2025 10:58:18 -0600 Subject: [PATCH 068/118] Update run_sbol2assembly.py --- scripts/run_sbol2assembly.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/scripts/run_sbol2assembly.py b/scripts/run_sbol2assembly.py index 1d35a0f..8dea009 100644 --- a/scripts/run_sbol2assembly.py +++ b/scripts/run_sbol2assembly.py @@ -1,8 +1,13 @@ from pudu.assembly import SBOLLoopAssembly from pudu.utils import assembly_plan_RDF_to_JSON from opentrons import protocol_api +from pathlib import Path -assembly_JSON = assembly_plan_RDF_to_JSON('../tests/validation_assembly1.xml') +# Get the absolute path to the tests directory relative to this script +tests_dir = Path(__file__).parent.parent / "tests" +file_path = tests_dir / "validation_assembly1.xml" + +assembly_JSON = assembly_plan_RDF_to_JSON(str(file_path)) # metadata metadata = { From b2338862130bbd097d801973d713c4210a93d0b2 Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Tue, 9 Sep 2025 11:04:52 -0600 Subject: [PATCH 069/118] Update run_sbol2assembly.py --- scripts/run_sbol2assembly.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/scripts/run_sbol2assembly.py b/scripts/run_sbol2assembly.py index 8dea009..c291ec7 100644 --- a/scripts/run_sbol2assembly.py +++ b/scripts/run_sbol2assembly.py @@ -4,9 +4,7 @@ from pathlib import Path # Get the absolute path to the tests directory relative to this script -tests_dir = Path(__file__).parent.parent / "tests" -file_path = tests_dir / "validation_assembly1.xml" - +file_path = Path("tests/validation_assembly1.xml") assembly_JSON = assembly_plan_RDF_to_JSON(str(file_path)) # metadata From fcb82483de94fc1c3a5b4728377090b573fd963b Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Tue, 9 Sep 2025 11:09:50 -0600 Subject: [PATCH 070/118] Update run_sbol2assembly.py --- scripts/run_sbol2assembly.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/run_sbol2assembly.py b/scripts/run_sbol2assembly.py index c291ec7..1bb7f98 100644 --- a/scripts/run_sbol2assembly.py +++ b/scripts/run_sbol2assembly.py @@ -12,7 +12,7 @@ 'protocolName': 'SBOL2 DNA assembly', 'author': 'Luke Dysart ', 'description': 'Automated DNA assembly from SBOL2 Assembly Plan', -'apiLevel': '2.13'} +'apiLevel': '2.14'} def run(protocol= protocol_api.ProtocolContext): From daad2e8616ad6c6c0e933b296fc383b585d39209 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Tue, 16 Sep 2025 00:15:39 -0600 Subject: [PATCH 071/118] Relaxing dependencies --- .github/workflows/python-package.yml | 11 +-- pyproject.toml | 104 +++++++++++++-------------- 2 files changed, 54 insertions(+), 61 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 61f2332..76d8dd4 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -27,17 +27,10 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - python -m pip install flake8 pytest opentrons - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - name: Install pudu package in development mode + - name: Install pudu package in development mode with test dependencies run: | - pip install -e . - - - name: Lint with flake8 - run: | - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + pip install -e .[test] - name: Test scripts with opentrons_simulate run: | diff --git a/pyproject.toml b/pyproject.toml index 54f635f..027d18e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,62 +25,62 @@ classifiers = [ ] dependencies = [ - "aionotify==0.3.1", - "annotated-types==0.7.0", - "anyio==3.6.1", - "attrs==22.2.0", - "biopython==1.81", - "certifi==2022.12.7", - "charset-normalizer==3.0.1", - "click==8.1.3", - "Deprecated==1.2.13", - "et-xmlfile==1.1.0", - "graphviz==0.20.1", - "idna==3.4", - "isodate==0.6.1", - "jsonschema==4.17.3", - "lxml==4.9.2", - "numpy==1.24.2", - "openpyxl==3.1.1", - "opentrons==8.4.1", - "opentrons-shared-data==8.4.1", - "ordered-set==4.1.0", - "owlrl==6.0.2", - "packaging==23.0", - "prettytable==2.5.0", - "pydantic==2.11.7", - "pydantic-settings==2.9.1", - "pydantic_core==2.33.2", - "PyLaTeX==1.4.1", - "pyparsing==2.4.7", - "PyPDF2==3.0.1", - "pyrsistent==0.19.3", - "pyserial==3.5", - "pyshacl==0.18.1", - "python-dateutil==2.8.2", - "python-dotenv==1.1.0", - "pyusb==1.2.1", - "rdflib==6.2.0", - "requests==2.28.2", - "sbol-factory==1.1.1.post1", - "sbol-utilities==1.0a16", - "sbol2==1.4.1", - "sbol3==1.0.1", - "six==1.16.0", - "sniffio==1.3.0", - "SPARQLWrapper==2.0.0", - "typing_extensions==4.14.0", - "tyto==1.4", - "urllib3==1.26.14", - "wcwidth==0.2.6", - "wrapt==1.15.0", - "xlsxwriter==3.2.5", + "aionotify>=0.3.1", + "annotated-types>=0.7.0", + "anyio>=3.6.1", + "attrs>=22.2.0", + "biopython>=1.81", + "certifi>=2022.12.7", + "charset-normalizer>=3.0.1", + "click>=8.1.3", + "Deprecated>=1.2.13", + "et-xmlfile>=1.1.0", + "graphviz>=0.20.1", + "idna>=3.4", + "isodate>=0.6.1", + "jsonschema>=4.17.3", + "lxml>=4.9.2", + "numpy>=1.24.2", + "openpyxl>=3.1.1", + "opentrons>=8.4.1", + "opentrons-shared-data>=8.4.1", + "ordered-set>=4.1.0", + "owlrl>=6.0.2", + "packaging>=23.0", + "prettytable>=2.5.0", + "pydantic>=2.11.7", + "pydantic-settings>=2.9.1", + "pydantic_core>=2.33.2", + "PyLaTeX>=1.4.1", + "pyparsing>=2.4.7", + "PyPDF2>=3.0.1", + "pyrsistent>=0.19.3", + "pyserial>=3.5", + "pyshacl>=0.18.1", + "python-dateutil>=2.8.2", + "python-dotenv>=1.1.0", + "pyusb>=1.2.1", + "rdflib>=6.2.0", + "requests>=2.28.2", + "sbol-factory>=1.1.1.post1", + "sbol-utilities>=1.0a16", + "sbol2>=1.4.1", + "sbol3>=1.0.1", + "six>=1.16.0", + "sniffio>=1.3.0", + "SPARQLWrapper>=2.0.0", + "typing_extensions>=4.14.0", + "tyto>=1.4", + "urllib3>=1.26.14", + "wcwidth>=0.2.6", + "wrapt>=1.15.0", + "xlsxwriter>=3.2.5", ] [project.optional-dependencies] test = [ - "pytest < 5.0.0", - "pytest-cov[all]" + "pytest >= 7.0.0", + "pytest-cov" ] [project.urls] From 287b5e6d32244f0011710618db56b939a13f9ea6 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Tue, 16 Sep 2025 00:19:24 -0600 Subject: [PATCH 072/118] Change to show which scripts are running --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 76d8dd4..836e8af 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -34,4 +34,4 @@ jobs: - name: Test scripts with opentrons_simulate run: | - pytest -v \ No newline at end of file + pytest -s -v \ No newline at end of file From dc55ee0e27f70766e4c9d252ec00a39e2db3b744 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Fri, 19 Sep 2025 13:39:39 -0600 Subject: [PATCH 073/118] changed version to 1.0.0b4; increased sbol3>=1.2.0 to see if that resolves dependency issue with python-dateutil; lowered openpyxl>=3.0.7 to be compatible with excel2flapjack --- pyproject.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 027d18e..2ebfc7c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "pudupy" -version = "1.0.0b2" +version = "1.0.0b4" description = "Protocol Unified Design Unit" readme = "README.md" requires-python = ">=3.7" @@ -41,7 +41,7 @@ dependencies = [ "jsonschema>=4.17.3", "lxml>=4.9.2", "numpy>=1.24.2", - "openpyxl>=3.1.1", + "openpyxl>=3.0.7", "opentrons>=8.4.1", "opentrons-shared-data>=8.4.1", "ordered-set>=4.1.0", @@ -65,7 +65,7 @@ dependencies = [ "sbol-factory>=1.1.1.post1", "sbol-utilities>=1.0a16", "sbol2>=1.4.1", - "sbol3>=1.0.1", + "sbol3>=1.2.0", "six>=1.16.0", "sniffio>=1.3.0", "SPARQLWrapper>=2.0.0", From 780b348a36b6c68884f86c6268710da89278872c Mon Sep 17 00:00:00 2001 From: Gonza10V Date: Mon, 22 Sep 2025 14:47:45 -0600 Subject: [PATCH 074/118] new version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 027d18e..dd0e783 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "pudupy" -version = "1.0.0b2" +version = "1.0.0b3" description = "Protocol Unified Design Unit" readme = "README.md" requires-python = ">=3.7" From 46be39ceff0d05d12432c9572e87a56a2cb80739 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Tue, 23 Sep 2025 10:09:43 -0600 Subject: [PATCH 075/118] Fixed recovery_incubation input error --- src/pudu/transformation.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/pudu/transformation.py b/src/pudu/transformation.py index b254079..2e6eb2d 100644 --- a/src/pudu/transformation.py +++ b/src/pudu/transformation.py @@ -134,7 +134,6 @@ def __init__(self, self.recovery_incubation = {'temperature': 37, 'hold_time_minutes': 60} else: self.recovery_incubation = recovery_incubation - self.recovery_incubation = recovery_incubation self.dict_of_parts_in_temp_mod_position = {} self.dict_of_parts_in_thermocycler = {} From d5c9a70cfc0267bcd2efb687c009b4f64f66242e Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Tue, 23 Sep 2025 15:16:30 -0600 Subject: [PATCH 076/118] Update pyproject.toml --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 2ebfc7c..5f10a03 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "pudupy" -version = "1.0.0b4" +version = "1.0.0b5" description = "Protocol Unified Design Unit" readme = "README.md" requires-python = ">=3.7" From a623b51b0382a0398ad321014a9d6df2e1a23f0f Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Tue, 30 Sep 2025 09:13:36 -0600 Subject: [PATCH 077/118] Update pyproject.toml --- pyproject.toml | 48 ------------------------------------------------ 1 file changed, 48 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 2ebfc7c..7035c2f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,55 +25,7 @@ classifiers = [ ] dependencies = [ - "aionotify>=0.3.1", - "annotated-types>=0.7.0", - "anyio>=3.6.1", - "attrs>=22.2.0", - "biopython>=1.81", - "certifi>=2022.12.7", - "charset-normalizer>=3.0.1", - "click>=8.1.3", - "Deprecated>=1.2.13", - "et-xmlfile>=1.1.0", - "graphviz>=0.20.1", - "idna>=3.4", - "isodate>=0.6.1", - "jsonschema>=4.17.3", - "lxml>=4.9.2", - "numpy>=1.24.2", - "openpyxl>=3.0.7", "opentrons>=8.4.1", - "opentrons-shared-data>=8.4.1", - "ordered-set>=4.1.0", - "owlrl>=6.0.2", - "packaging>=23.0", - "prettytable>=2.5.0", - "pydantic>=2.11.7", - "pydantic-settings>=2.9.1", - "pydantic_core>=2.33.2", - "PyLaTeX>=1.4.1", - "pyparsing>=2.4.7", - "PyPDF2>=3.0.1", - "pyrsistent>=0.19.3", - "pyserial>=3.5", - "pyshacl>=0.18.1", - "python-dateutil>=2.8.2", - "python-dotenv>=1.1.0", - "pyusb>=1.2.1", - "rdflib>=6.2.0", - "requests>=2.28.2", - "sbol-factory>=1.1.1.post1", - "sbol-utilities>=1.0a16", - "sbol2>=1.4.1", - "sbol3>=1.2.0", - "six>=1.16.0", - "sniffio>=1.3.0", - "SPARQLWrapper>=2.0.0", - "typing_extensions>=4.14.0", - "tyto>=1.4", - "urllib3>=1.26.14", - "wcwidth>=0.2.6", - "wrapt>=1.15.0", "xlsxwriter>=3.2.5", ] From 4c1dba6d38cc6e909f3fc43dc1cfeb9b7cdd7394 Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Tue, 30 Sep 2025 09:16:40 -0600 Subject: [PATCH 078/118] Update pyproject.toml --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 7035c2f..8579e09 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,6 +27,7 @@ classifiers = [ dependencies = [ "opentrons>=8.4.1", "xlsxwriter>=3.2.5", + "sbol2>=1.4.1", ] [project.optional-dependencies] From eba7099291399d0800b6c9e8dca08b1d30ae2f7b Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Tue, 30 Sep 2025 09:24:51 -0600 Subject: [PATCH 079/118] Update pyproject.toml --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 8579e09..ffc849c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "pudupy" -version = "1.0.0b4" +version = "1.0.0b5" description = "Protocol Unified Design Unit" readme = "README.md" requires-python = ">=3.7" From dfa05dd8e3f516a451015c93889f0cfd5cd30686 Mon Sep 17 00:00:00 2001 From: Gonza10V Date: Fri, 3 Oct 2025 14:42:20 -0600 Subject: [PATCH 080/118] removing SBOL2 dependency --- pyproject.toml | 3 +- scripts/run_sbol2assembly.py | 4 +- src/pudu/utils.py | 74 ------------------------------------ 3 files changed, 3 insertions(+), 78 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index ffc849c..a81e0aa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "pudupy" -version = "1.0.0b5" +version = "1.0.0b6" description = "Protocol Unified Design Unit" readme = "README.md" requires-python = ">=3.7" @@ -27,7 +27,6 @@ classifiers = [ dependencies = [ "opentrons>=8.4.1", "xlsxwriter>=3.2.5", - "sbol2>=1.4.1", ] [project.optional-dependencies] diff --git a/scripts/run_sbol2assembly.py b/scripts/run_sbol2assembly.py index 1bb7f98..4cdbfc7 100644 --- a/scripts/run_sbol2assembly.py +++ b/scripts/run_sbol2assembly.py @@ -4,8 +4,8 @@ from pathlib import Path # Get the absolute path to the tests directory relative to this script -file_path = Path("tests/validation_assembly1.xml") -assembly_JSON = assembly_plan_RDF_to_JSON(str(file_path)) +file_path = Path("output.json") +assembly_JSON = str(file_path) # metadata metadata = { diff --git a/src/pudu/utils.py b/src/pudu/utils.py index 88eca3b..cc68f91 100644 --- a/src/pudu/utils.py +++ b/src/pudu/utils.py @@ -1,8 +1,6 @@ import subprocess import time from typing import Optional -import sbol2 -import json colors = [ "#4040BF", # Blue @@ -311,75 +309,3 @@ def liquid_transfer(self, volume: float, source, destination, if drop_tip: self.pipette.drop_tip() return True - -def assembly_plan_RDF_to_JSON(file): - sbol2.Config.setOption('sbol_typed_uris', False) - doc = sbol2.Document() - doc.read(file) - - # Known SO roles - PRODUCT_ROLE = 'http://identifiers.org/so/SO:0000804' - BackBone_ROLE = 'http://identifiers.org/so/SO:0000755' - ENZYME_ROLE = 'http://identifiers.org/obi/OBI:0000732' - - PARTS_ROLE_LIST = [ - 'http://identifiers.org/so/SO:0000031', 'http://identifiers.org/so/SO:0000316', - 'http://identifiers.org/so/SO:0001977', 'http://identifiers.org/so/SO:0001956', - 'http://identifiers.org/so/SO:0000188', 'http://identifiers.org/so/SO:0000839', - 'http://identifiers.org/so/SO:0000167', 'http://identifiers.org/so/SO:0000139', - 'http://identifiers.org/so/SO:0001979', 'http://identifiers.org/so/SO:0001955', - 'http://identifiers.org/so/SO:0001546', 'http://identifiers.org/so/SO:0001263', - 'http://identifiers.org/SO:0000141', 'http://identifiers.org/so/SO:0000141' - ] - - product_dicts = [] - globalEnzyme = None - - for cd in doc.componentDefinitions: - print(f"\n🔍 Checking Component: {cd.displayId}") - print(f" Types: {cd.types}") - print(f" Roles: {cd.roles}") - - if ENZYME_ROLE in cd.roles: - globalEnzyme = cd.identity - print(f"✅ Found enzyme definition: {globalEnzyme}") - - if PRODUCT_ROLE in cd.roles: - result = { - 'Product': cd.identity, - 'Backbone': None, - 'PartsList': [], - 'Restriction Enzyme': None - } - - for comp in cd.components: - sub_cd = doc.componentDefinitions.get(comp.definition) - if sub_cd is None: - print(f"⚠️ Component definition for {comp.displayId} not found.") - continue - - print(f" → Subcomponent: {sub_cd.displayId}") - print(f" Roles: {sub_cd.roles}") - - if BackBone_ROLE in sub_cd.roles: - result['Backbone'] = sub_cd.identity - print(f" 🧬 Assigned Backbone: {sub_cd.identity}") - - if any(role in PARTS_ROLE_LIST for role in sub_cd.roles): - result['PartsList'].append(sub_cd.identity) - print(f" 🧩 Added Part: {sub_cd.identity}") - - if not result['Backbone']: - print(f"⚠️ No backbone found for product {cd.displayId}") - if not result['PartsList']: - print(f"⚠️ No parts found for product {cd.displayId}") - - product_dicts.append(result) - - for entry in product_dicts: - entry['Restriction Enzyme'] = globalEnzyme - - with open('output.json', 'w') as json_file: - json.dump(product_dicts, json_file, indent=4) - - return product_dicts From bcb50096be4958bd92d6b2c9bea2d95e27859851 Mon Sep 17 00:00:00 2001 From: Gonza10V Date: Tue, 14 Oct 2025 09:28:42 -0600 Subject: [PATCH 081/118] plating added to init --- pyproject.toml | 2 +- src/pudu/__init__.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index a81e0aa..dbbf46d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "pudupy" -version = "1.0.0b6" +version = "1.0.0b7" description = "Protocol Unified Design Unit" readme = "README.md" requires-python = ">=3.7" diff --git a/src/pudu/__init__.py b/src/pudu/__init__.py index 649a7da..feacf84 100644 --- a/src/pudu/__init__.py +++ b/src/pudu/__init__.py @@ -2,4 +2,5 @@ from .calibration import * from .sample_preparation import * from .transformation import * -from .utils import * +from .plating import * +from .utils import * \ No newline at end of file From 148a8e79735a4c1cb8e0448948d21fe31de6559c Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Tue, 11 Nov 2025 11:38:12 -0700 Subject: [PATCH 082/118] Delete scripts/run_sbol2assembly.py --- scripts/run_sbol2assembly.py | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 scripts/run_sbol2assembly.py diff --git a/scripts/run_sbol2assembly.py b/scripts/run_sbol2assembly.py deleted file mode 100644 index 4cdbfc7..0000000 --- a/scripts/run_sbol2assembly.py +++ /dev/null @@ -1,21 +0,0 @@ -from pudu.assembly import SBOLLoopAssembly -from pudu.utils import assembly_plan_RDF_to_JSON -from opentrons import protocol_api -from pathlib import Path - -# Get the absolute path to the tests directory relative to this script -file_path = Path("output.json") -assembly_JSON = str(file_path) - -# metadata -metadata = { -'protocolName': 'SBOL2 DNA assembly', -'author': 'Luke Dysart ', -'description': 'Automated DNA assembly from SBOL2 Assembly Plan', -'apiLevel': '2.14'} - -def run(protocol= protocol_api.ProtocolContext): - - pudu_sbol2_assembly = SBOLLoopAssembly(assembly_JSON) - pudu_sbol2_assembly.run(protocol) - #pudu_sbol2_assembly.get_xlsx_output('sbol2_assembly_output.xlsx') From b14e9ad3ca1dd1ec0747588b255b58609dd37e53 Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Tue, 11 Nov 2025 14:19:25 -0700 Subject: [PATCH 083/118] Update path for output.json in run_sbol2assembly_libre.py --- scripts/run_sbol2assembly_libre.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index c3f1923..bfd2482 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -297,10 +297,10 @@ def run(protocol= protocol_api.ProtocolContext): #I am taking in the name of Json file and make it assembly #import using pandas or somthing to convert to usable dictionary import json - with open("output.json", "r") as f: + with open("scripts/output.json", "r") as f: assembly_sbol2_uris = json.load(f) pudu_sbol2_assembly = sbol2assembly(assemblies=assembly_sbol2_uris) pudu_sbol2_assembly.run(protocol) - pudu_sbol2_assembly.get_xlsx_output("SBOL_xlsx5") \ No newline at end of file + pudu_sbol2_assembly.get_xlsx_output("SBOL_xlsx5") From b39d36afdc90da0008265100f6cedd5f1be260e6 Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Sun, 14 Dec 2025 22:28:39 -0700 Subject: [PATCH 084/118] Add initial documentation file --- documentation/docs.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 documentation/docs.md diff --git a/documentation/docs.md b/documentation/docs.md new file mode 100644 index 0000000..d8f8d46 --- /dev/null +++ b/documentation/docs.md @@ -0,0 +1 @@ +docs From 43bdf2ef6a1f0810ec1014df263c01d906479738 Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Sun, 14 Dec 2025 22:29:06 -0700 Subject: [PATCH 085/118] Add files via upload --- documentation/PUDU_docs.pdf | Bin 0 -> 1265448 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 documentation/PUDU_docs.pdf diff --git a/documentation/PUDU_docs.pdf b/documentation/PUDU_docs.pdf new file mode 100644 index 0000000000000000000000000000000000000000..bcb3eff6f5f50839f750b301e5b64f3e02735221 GIT binary patch literal 1265448 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�>trl9qtx^56cIY-F;D$cL;cc+2~lt*wFE3qbRX{Mpf|U3 zd$e#{Oarl$%xei|javtqhey?qj)x38{YC?GpK;#)4*=|2A|`yasX{Tv3{U+Zg%Ok( zPEuh8DYIL1_?}XlbO#CRcWVZ9RnwV5;~AP;DU17zf_5qjvO7^exHw8l3`&E9$i?s> zn1t%@hk0Iq`G%P)R0h%H=d;e{emt=w6JlX!W1EGip@gF!HN_gfhJT7qE=o4Fzw z{OauN^i;kpYA=U54$McuH;3$oo$g@Jel?8TY51yV^~mS8d!ypdI9jt6BP$DBuz`c86Vr5$fYUzN}?wUVD-7x(5xLouK!J z+DvFC!WO1;drTEqnv*M$s?S)k(rNK2S2(u>>;a&K zFDtHH^^@nlOhCxuP^Ga@4#Wci$4A>(I1dC4jRtNulNs{NG+9hlbfxyy=mG5I40-?Tf{>^ABF_s_|oz{!?yTxmP#bCPC$zZi$G)KOA0-z-lBH zYLCABDs>eH%t{lVVrR%3!n?RHS-WMk065b;jt{Do0Et)Nn}4?xf-sUFXkHaMRb;Jq zh(Y>Qv%ri%x}Qr8mFJYN3Oy=dO|!eO6@e}{46p<-{za%7(Vn>8#4 zL#bxXo+d3g#X4m^+52jF>y|U8%vXZFOnY>+poDM73v{&s&KZk@zJ@VUDV}RAL z#-u8&cAAPv|GS_pHRYLi(QMI^Im@QZUQq58R<4|N2+DV2e(kPBT@Z)rHieYWkf#Ou zbbeu`N&tW`Q2r;^V^308$B4$7dSq|wLHvn?K$@qKOfyLM1+&sesYO_<+D(IYoRo+@ zr%sBe4D};dpHua?dLcH7cGYPxk`FIUIHo%xDw6dcZbTqNLmqr+`{eEgpz#lY~x>(U6;qY)PucXM-t)l~{~>XjNuTq$ubnKnmg z3Y6k&IW$DPCtmifURgd5)ygr`@6&TWbUN9oING^xue3~!o%NQE3~>O3+Q28{dySve z=`{ot0`}}*e+_l`wXF|<=b7=RYYYU+*L(xcnBf=O$jAUZel4vBzF{!}~ zcM4O)Qaeb&<|o%*`JRg1@F5kZgjx)^ClRzh{#Di0(rBN z#dXPB`J$rXWD8D{oNR&j!xDPv)Aih2u@({X-@8oigL`_WD2jD*>Opo=D*l7fiSS3# zekHu*=abS;mqU?Ksm6ZFN+OB%azDK`sHiVhToM^oxil$@^-NRv(euEGCm)}~)d(jP zUZ_mcf&d}H16P5N&VSbpkEo9gdq75l6T0C=zkC%gx?a!UBLb(7IWE_qxG-pxJ_-$b zlnmfjC)X>sae5Kk7PL6Hnr8W;J6XZz!s`0PS)8Xo7;8ML%NW7dywq*DAI`MOpSPCU zJf(^-yjB!wYYqMsGNv>LvI^Ogu!>6RGSmQq>C( z669hKOyw$38Ai(_nJNd8SX80t%UmkB^H*nTzrXduqkm>jeEb}}3aMdHth1p>R`L|U zQ33>@L<1%;5zOJ?%%cn{?Y?FT`>&~8AIZ+;|Ay^6SI5Rt0>UOIsQh5X&e!F-yX)(0 z7>m}`<@+GR?&JG2jtE9xXT$2|BFR{-I)jdY7YNJ-F4o&G_r_B>I5>`vkBNwg!o$P& z_xE8nHYq77N;sUPYDi;ZfT+Lw$w!i(aB58B3FzrM8#K6DGr))bk=})a8(*B>nk*Z` zPquRVG+m>qB-I<`i!3?X?e^E|#cCkp~j_1hgi9R5Jo&P7`(*NF!`g?2A(Q82!) zjyefZ*b5PE;S3tbvQTuYE>BaglK?4kpC!5V*v6ikqAB^6xp-21Zr z*S|LMzD+{9MIy3YO1gzK#wIqwrks~5ycY4>?1O6ovgfi}o8~2Q-3FG<(B_;Em0G$h zR*$~I*gm`<1}e2|9#%CjJTgZN#@44?w2>@R6M%ml;eZ^MldxZ0xDhR3#J($kkIn6G z80Ir(!8h*l`6Mh19VMS75pd5VrbGIGq|+K>=f&_Pp!fCS zeL9|}XMc1&o50aJ7Ftgm!e z)z+c&Bxh#lV76H4YyNX|alU=Y#bX!y#9`;8+@J>fxg(%W`Kn}YC{G%_z5QhM+5D?* z(_?dCJHou=U!{(2UEL5}s)1XBV11ZJNjQ;1%D5Q?=Eo_4J|I>D}~`Tf`GBHon+Ow!hG`i5?jve&ip z9hqBdm$J$evhrgv_3XTCJVB}Pl#=p{T(PmWnGr;J9C2CF|0}^hFXh^-z}hz5ZL8tu`3I#P`0^Wn@kDHBuw^50egz6tU|q<1C^)vQ3#OuQV-CNhb_ z&G__X_L8}Zb4?!mqZ4UW!aDR%nDI5#JG>Cxo1`nHp%O!xrJ5i=rR6it-mHv)5{DIv z`YaqySPVrvlg=9BdBs;72DTorT`4U;KM<@1iGH>@yV}FdU^3KRt?ljW%c|300&`PX zrh{cYSjwB3nSmuiSbxd5*AEP9PkNoNmEs5N?Ch|?zJSTky1ToZnwnsg$J*N3&!0b+ zmSBY+il|CESiD;T<84F`rdXBArtdGG3;WHPT20Z@iDmZsjXh)XmPXt4r32C~ea~>A zZQ|?aZx*M@k?XVMr*ZsqWKZJq8^=o}S#9!+=gW2OTir}O{^A85^4Y1CQ`1_}l2zRX zmcqGkjZFY$4|-!wjqglsVR9G!w35!_q!n4cx#djQ)fanAsBT%ffOaMi6ju%K>coaZ z_)!M;uHI<;q=WW6&{)Z~Cx;HlP+Y$08bV(pC%JQ1Cf|a zf~BaiK7nB~K#f&7sLePuao^lF5$ReT)EH*3mckiku|a;2v>+XXb4Jo0coFlTWLDkJ zkSBJW_|3w|A$@u^XWQY?TM_Erd~>5cF4DL2>^>?`$BeUcdaRJ(K!WoyX50OQ%j{OJ zN_|%Q!3V-xtmrlU$SDtCX5Qe> zdthT~;l%HE?e`i!$+xvt$bJYr0$}?N#?e0C6cO0aJ}laOhoxE-_C4}H_y2eD=HKi` zzhLm+3T&-04K>1W*^q4RFATDpI9mpAng$tGxWwYwB5COac!DAI*782F4$5?8qtNE@TW&f+>0W$j7*GjO0u!S?)I~eGo7DK zGoM)Wxt%U*Y%d(^W?+c&{{9~3Vd~{drB26P^Ds(;*Qubs-pSeds@MOC&8RyoJ>BEs zViN*^EG;d;ej6=Oq*m!n64yTF2_~XlUC9DMZix`Uo(q7P=ltPQIjW4H2xuNmW-i5Sc7M=zjoS28j&s?)0L=F zO{F15%oIhE@k6n**0gDv3YNW5faWdF%rh~1@$q*BBp#Y2JRf3l2Kb_f=*iNGl6Q_y znytdxt)Ip9?4p)ZY1lWEfztr}2swQKz%1~uhDhbYH^NWGj( z&o?;Ag!ai%)dl6<5arE%QJYuUZZf`ILfA6{;iUs*;HUpl9R0u7Rc}A?hXD=DqAwKi znkgyeNAsK`FVzl2^d~r;T6uc@BCfDKFNG!#I@kEjs(%{J&?2(m{_GI7LU-lXHS7IYPATSYi;xkK@m0_fYW5W7`3Aqkn#U++(u!tjksA z{X?KbK#*TR07i5u0fqesLJ)d;dtnWE1GWbk2MCit$ji!hc$_Z5Fe4Ka)5nh=VF|~A zGh3`MhyqCzvvpx1oAZDAjVX`I&mZ9BH-j#@tPfObqD zXL82CFd;v<#ifZ{V%&4(!Wrv|60BpJkoDZ;8BYbeAv`%Tgk($wDx~m2+`6RzBs!X> za)200C4SIVU6RBymvhK7Ee)|8DV+Iz#2`)0peBj}rSv|h#1itPzKJ(=Sy~EHUI+t< z)z3;wzMAiQx3S+b!oiMO&|nuesT~xlKa>nIR@KeFER0>&|?aF92e;JGB>63IZy8O~B|Ffqzy$|$hF z&17T~wflL&jlU9E*VcB`*0!TkHc$zATy-QX@56e+RQQ+)^6Z*clpm8*p6O1@^Jf(1 zJ@<1wJ4Wrkyay`_?C~B{TxN;)*@!3B6cX7oqdau)5E< z{hiI1n7gyvQyTfadpw`+l@=Jl+DHFdkq>OB0~@pN0WWT0iVez7Fvp`y2%H1N)%kX@{^c!gy>oI!RiDE!KLTK29L1s%~9U>WUziDffFzDrj@I8 zwJB6io#C51M%Bai-^A>#E5e~vZToi+lekL(lz*1}sl?mKW6Czr5 zY^F3}=Qi0W2?j#?5*jvoXUJ35_*cHUp%d>_1jwRWPzgptiC4G@QVau@PF0YAKw53> z@3yl0`%de44D!rFg6KqgV<_E89`ohTa^I7Pvyi878Saj0fBxx@l&pG%=Pw9N1HS3+ z!a)I_D|w`U)0gZPC(Ue`GNHXKq@{5mlr^L*n+$gs$9oYkC69E!M@_y%3-*aL%keW{ z5Baqo`v7}kXrujUMML(5jQ5teNf*>9*laULs8?4up;x6Ey$>-WK?rBoz4_nU3Sqhe z@nU@_t z15B?E;L-<#27K23!*t*qHFSud_km3w3@c=S`56;O0#3Cr!+n6j6t~}Monb)Z-{Nm$ zp4>pnT6%r~kX8M1ur!Yk$yIaweg3yGFR_;GFfy(_9q?#Qdf-pVr-W^u!+${13hiqa zpDv+d+q3)XPWE?1E`OT{Wv&T1F_icXBv-jr`poDV!-%1a5Bdak}-mT+j`L zm=vefN?Gco#kPGsaN-z4;~87y5C}c=WQOFfXBNdwI%$YZcr=lhb!1gxJQr&(&Gn?u05V7o(%1FR(`G6Asi0VV{|M$f8G#hCE#6(+?)rw`BwgXi@!$VZ|@s8pxzq*)`@wBO{r@cw)Rih3aBY){t>9LDv5dIzE;lG75R|LUxKzJCCW4^2@ z7*+s5HV=SR+Bbrr*}_p`QY6i&irsmBsPrEQ)z7 zkt_NitXuKT@0X^wCivWYTV;-t>7DVftu0Y~Cq&G8eaW^BX`E-#A25;2qaQC;Lx^9Rp&POc{}guq~OA+F9s>Q&pQ3BB%cD*6MQK7!%+9y z&L}+)zkV+-UY?e4KHfnMfxP|yR~qyqN@Ive(r|zX-j>SWdz&%<0uYPs-5KeTWU2TP zINRdZ9*)`wkgQbjg8K*+MwqY&OF}HpQv_t)C~s*f(jn9+-e3 z83;61Rh`?|U`dzjng;T=Jv@JOGWtn|Q{O2;+-4iu7@?9UfrMf{oJ0_TDC((8E%6|D zeL6E+-(xvkKS|ryOMI8RhIfB%c@WGY9iQ44he@4{s4EhA7C?UNkXEFORkjx8b6$SX z*CSE?IThUOY*m9FUCbVW1xR32l_(6tQ*;G`i=?(u@zfI+;x?9rli0~Im)1mDL^E#` z1Z#9-m+M&5jwQb2{B4MMb3P;v2^;umn#4nJF&ip!Fcga5{yo^Qf}CIpIrI~M!+XTJ zKPLYCS@;BtcodytI=ry+b*i|%UC|OGV&^Lf)=WQAzCfY|cS)Y7E#uhBl(wkVzBUNX z&RG$O6(YUB=>p{pe@L)LuPuo&V4GPmmX$-mId@NtOzFT6yP>S=mdAfVNekD5LvkOZtozq~3VRsxv=68swZoa5)U32g0d-Ky+ z^YSO%@NNv7!{&X*M4XVe#c8g_R@(U<6e{@cY8XCo@Cu36Xa%VSE@X|hopwzx3z)-s9_&r_HU>VO)ZNMJ{OoSy4tt(pCs~s-uokm zs$-DGXZB#qPx15DB*Sw$b~>5l8obbCTsh8}cM8~;2?Go0+7eD0Y zkB+yY@8%oQO%)vf=`evzl*;!Sw)s4jog;=P6DS$~@IF82@qK{hm&F;34@31VgSlzx zA{UKspda8xO$mc{Z&!bganLa1{slyj0VK-$lga^L@k&=!g{Kws^D@NJm%-9^-)i59 z1Mg73F73D4Aq#v$a7CkBkdC^?{?mi-<30KEo@wW2i#OVzqRL4I)zJ?a5kcPrK1;;L z-Xjkk*@T(qm{w>J)(mN$fYLj~=+?w!)ZaXyheAnVLBHyVybQ2j-N65LHhyH;aL7A+ zWdxyJqxL&On(gDif4Q#<;Eig#^5691cg!e?7*2V>GGn@Gph=!*=PKN(3?X&|`jM z*a25MqswuL^~9MfB0Pnr24bQ95=FK96|z8>OpC;HbYc0QK81V3Z?6VG`K}E=w`I9o zhKU~AHf!W%@-*HP{XK6=;@r`B(uHySz9qbp~3FE>LB6#BsWRlZ7_6 z16)2jTtM#l>PJKigh|Nj4JW%j*{=USdyR{rYPn+98TQK}2)5}MF8&+7{U3XUiKWq} z5`~dNNUbF+U;;AbZya7R&z4gJf>{;51$bOd(Q|mtaYP5YxKu}orf`um zB!g*5MaXvkB~@c*Q?U-cKHn*Y8x9a>rJpupJria(o{y(5r|N6DI$^twxqj(%uQCKS ztD1fn6%7gq2+>~P~MRGZ<1IE@OP~9 z3wD0{p#)8kw!n6LhMAQZ+LWn|!IE4&xQj4<6~ zz5@M#^@!e&i3GCR^W&~Ri#Hu$e9iyMgpyuq;$4iwnvvA)H+)YY?w#iP1%4qDUKK`Fj=<+%F2W@P;d3dV1<-m2f|p)38J1|{SKb7J%-*tlYVWy=3+pH%Sks?kE43sZ6(JjY^|iML6C0n7K^yx>DLx85y=SNC;cAu}A~ zPi&2j3T8tqVLqo}dis}dtWkFvwWQdnBbA}UW5GmEmNrhX7sr%K+W6r05GOntRj@DH zwos&q;V|$8cKq_K{lF9nwB>VwwD2-@q9Chpz4kSNV*n(3YI3~&x0*zs$o;85U9Rm@ z^sKBRKK;l(ZQkczH{Auhb%s9V$Y&TTPZT^7fjaC1H)HAf0_|*I^rgLMeR|`Ie5;6i z9`vU2p{P~9N8GPlEW`WU;H0_ypW5_BZmaA0rcFQv18m*9T_6t@!NMI*cqt0{?_w@t z0Fo6MUPL3QkVR(dFCmeWR8eUf+69ekk2+MgeAl%wh;`iVtaa&*bWI2 zxy*A1lPzIP)6Ol4Z!SlueZx(A#5MGMOG5b^=r+pcu+YpgmOA~mkMP)0J4K&W`2-+gn}?I3mih;sax4N(+I}1g z*e!mk!Km{&Js>Z9csw@#xT>2i&|)7n|g)J}W3(R|ym2JEfe61kBb zOM4PE-t*@L-FKR{FJ)~!&d`__%X$XMI(~NvNOFM%)_^aWU}|)3TqhnZ#Oy-c@rrtM%F|-4>rs$fajwn1mE5zZcv6ASRC_dKARby1}K_F&c+X?!ZtTsaq3Nmo+2AVg0H;KuyM zrzy;NJP_bHK`J6nxZA;cMJeX~5ynQoypJQ`rG z>yLQPKdOb>?a#N=WWQrkzdCDneg;$Yx>G3EjfT4qnvf=_MN-crr=B>|3ixHWVg8Qk zheY7?AZR#|%?W;(Gbx}T8ngZMhbJ5Lqp;A*=f5R`)Db#QTy4g2G#S*Av%jp>6i}*1 z*BZ5vqfPnzLl|91sB}joy~FqgAo6jP5+cK44oGJ7Cmz~gv8Ec>f4)-cP{x4wecNPF z^L+pHB%!V19PUDV+{J9BXzB&A& z$a!=<1|(8*wD^xpU0WDlAfHB-9|^$<$YbY-><+a%03Rn7kUY>;^#d< zjy12H0Zp83Eod~THCqt2Pq(FVH+PR*u-bI~Y(uEW)7!@-)B79*S_N;@zOq2rG&Zi@ zy%1@-zXbwVNz4h~64Q_%SrD#c0xWnY|; zhOqL!i61IsfDu=O1F3H-!?31oOC5U(l|`hWl$g4)5(V3D@_P~?1JC_@2>#UhW zQi)#P6KHco5s(WFSZtsk9#;Rg5!+O|jAt!p>LR2?PpM-WNt7SC%Me$gkpw478S+II zjuJVlw}ucQ$}FMwD-YoaJZ)D<ESUQL$Ua*6sT5FskxVH+}nIt3gd;hmQQAmjkeFc=^@yC(T@a zl>=xbqCT}idBbhZ<@QSZ7H`s2U7C1Rmq>xgvcvuC>cihl?U(24s3Gg9*)t{?5n8#} zNd@I;IeDy7+JiE>y|Ou2>X*lS$u|1Fl6U)!&K4$I9ls4|non)|tuA>S?QP4UYyANI z;V=NzOhvEzNPI4GpS1m>z0Kcf8mo_Sn-8tMox7p6rJkM&}? zKKSNyY0yS9yzV<&?LC430zntS#(~2K5H!*w4CXJC@|ic8Y>8I}jgwzT9Q%5p-mM() zi{toiYG>??|4%Ib=R<$wJ8BBR0fvGaY+5NZBe)5K5u(B{5l1!XQnnq5MM}6BX>ws^ z*aj!LO=|+5DJ~N!2R4{nrSV>x)2i$aEWJ4iE>qvuaLJcjO2l*kOt0EdY?&lI`WG&Mbs`>%TR`q4>u#xj|^>H&7@e>JWjCn>X(A-B>d-B=U5=@)IWtnD2t zmTrw^I|u@as|UbWI|tgtQlG`~S|q=#`m>hl09GCl5TBzP+Mp8B7GdF5peKPmnDH;KIwkR1Rq0?=W(IOX9&O?Nd#RJi6BK z`5exsTsD+$>w=f_IsHAx@$``Ib+nORQ)bW^D-8sR1C8>xHj*vUcOw|&U@N1Rcz+%) zB2?wdUwtdDdc|eoQkrsRXK6{iR6`+Pq7ZBfn2Cd!?U5@e6>-9aE-Wi8>#%#SX?vM# zEpL3jYY_4*G0J=vr}~eS>54Z<9cd=uLqHjeutx71W1;il$j8%IO&qfe<<3VN5ICm~ zma!}S`#_0`21AF89>%nv6r+2-o_6;S44y3xXwuzlNyW{ZnNHp0B~5w-CW4gfoPEe< z4To>WJ|Ag1bJS4m+bh|bdHRUKC<7}WIZq$#`PUokJ#s7Y;Q%L3y{fFOD1JX-3-6NG z;ZW!Tt1B!T@k@C zfZ$400>c;|{TQEDb0gm`8uoq~k^UBwR2QZGU#G#LzuU65R!q}}va@hF1aI8G|KMvS zOT~;EkZ5qku2!sQMM+ys!A!YMWzd4EK0KSSY&wX1c>=FfuJTGpCnv@9Tk_FLjw@xU z6iwxdbGX&R)=UDKDvEecIbdrGMmT|`3W2LC6)Gn9(o@M zS1{?D7I?H5IX!*Y5j{x1xptW0X6CEAlihvGRV0566Lr7}vmFu2SHOJl0!TUU(bdfK zM0r`+wRl<4T!XxiV-9Lw^t`HS9Dq~&OeX=>?<;=B+2_6Za}vFk8o{5y+1$+O*5G4# zN5Y~|rkCBN?5Wr0US4j!f(>*qGU{3cJAlgtFAbq!2LhYx36)t(-yZ*VR$a2z&)=Ss zU6obcaMh6~-B;D@Iq3hJN&CrQ*3|af2pf*@og9$E2C5g=Fm8wka3xfjQbJZJXu@~k zV@#0HPzo#H(ig;MXUJn%1$A(Hp@e*3qljpPsI4@ZZJ)c|A zu1`<4<)pvQ#zlmM-`@mIA9I>*Z9Myb)l9#yxi`-vwND|n$m>~^!8Kt(0ZeRKq!E~? z{aCGG7%QO|qu}~>)oN0_t{)NY>6hFy%0oRN$a`wh(~=UT?*bQ+4M&CjQwEpXxve1z zS*a>;P`=0L>82ArFNAdl^yYdoQ+qcKf;bRK}zQ+qPS>T7JC=GPv%wuE=J-?3k%5~$Zwl^hf z8%pO5=rAfFmU?;bOOAm?s0Zy9&wkozMn80;&v$5vuFUak-04$-Hb(nG!KKovW(A461x?MI z0g6x#_Xcj4kNi{Tsfp@hbqC`y(_Jo=5dH% zThW!rM8@M@hqT^o%JHQ(J>-rp-p}>opo8NRLCpyua%CrpCyrK;IE0pyYOnOb=TR~P zhaTIXnKSrhp7=0jhR`0l&)ey|pYg_RHo4{WPUB6iudoF%lD%D@doaA~S316d3qSom zP0;kQ{zN{&koEnQQ{J=n-#7VRjJF>V{#s0kVnGC+HZWU3VrOcB9jQDGp0-###Wh7E zsU(I9D3;=J7H;E(G#aX;gfaf47tbjt@^G( zTGEZ6E^7*(O!H#7$(6RRaIv;RlH6#2+U-D=M)N9&>wJ`Zu$l-)(SbN zh1~aYC{dQTyQlW13*yEuE!>U7mcok@E6YnX;sE;0 z2jS6x#%mL&^5$zyE11t1rX*K_GW5;nLta1Z0av+R1?kt3Dw1nlg zz^nR*EtNjzwG4OfrERoGsQMTzm1a#b6F3^lPRhtKDa4O=VY*QLVx8DN;9bo3a)9#h z3G%xxE_V?my0pXMwVxuik=vz()AR8R=Th<%-}hYiq^DUQ>aF?qL`epN^oX=P=tcC? zQRx9tNZ3eqGQ-L6tX=4Fp$w-LRdPBqTltT||3m?QUT8|x^YYe(np(a2gFBTY;u?~Y zQWD1zh=eEEkDIVV7)K$e8`*u_*sVrG@UoKqqi5fDHX^DLuS+V^fwvFmGdJ%yoBNDH zq5%j|E?N^Dnq)8?LhiI2oZ!0i1yGp&bBNIhfmX6b{Rb* z3aqadPTXT#-+|4dBJ6)&o4vNLRnw1mAAs9l+LR@Tm}3hxX*4FrCChJO;9_FnDB+#a zbb`{dWsB+5Qz?GCBiL%e4@4MJTGFMWN69G`KBO_0Z|;9SR0t}qVd?xj(6d$lb(DK^ z$~hsBhP+;1Grevzzj8CRv}XK7ExWR2>X*h*v7CBw>;Z;rcdDn&vej~wYPTQdLHN3knQBOE6ySogxtzy7Kn=8^7qeYTs4ZY12;+@y5Tc)j*d__!vX%f zKL*EW%HQX3OhAy_o^uwXKxUkj*+@L30W0PH9jVt5#dFuq0J^e#MH}ref;}wmh9e&~ zj}#%pxtAtw(6I~Q=}$j?@dtln*axIs;D(gwN8F8wkYRO5>?Jc(3_ji4k7t(WJ;~I+ zqY5E;H4s4j@K2EZqaC@AuWO;)`QT6!zwK;u62>m_@o_78AQ%01)z9XtY^Yu9dEWZ8 zvUmL>r0>Na2wT!|QP|A`jb0iakwQyE3-mttwbMN+zb|pvNBnBA4wt?s)I{y%_qQs0 z=AmXESi|`8Xg)ehp6&-Sy)Ivm5l&aWV|ua3t$+32ZuE~ef3oVjeH?$fR~Bvv1SP+u zCd#+>={H&4(XDUL$_{1Dl01^L--92nXJd4G9Oj=A`vj@j?jeuTf<=+8I_~Y|WQuXh z23bizt}w`6hhGgL?=uu&OZSgU5UNSo4H5z+q5}U*E_f5DR6CN$4(YfpyX2+{*?ZTg z!;&e&Ca2Hf5gUfrcsT?oY832XrA+R*=;!JA)KpA-utX3il(&A_UsND6mAE2gtSQ_l zfBk$_1fJOOu1aBP{KX6Lz70`EzLA3c*%_r@nkDwOa#S34(=|g!r zJBjUJ9x*j(NLR~-16@g;S1d$6^&a2=)M6&o9b{kz75TxS!sqJM}6 z)zr*`>ynXKnJ-%~xw>&nef+(RJ^Gh#yv{~v%?5j zGi^a-ukRD(gu(rPPXo`^+tcg=w;Nyl4@dPUMAi(h|7JWWvcryb90naiYO@x-_O}D? z9<9B9_v6X>XV9YM{N^?LhH>}lI`P@D#pj#*@DXJ(4$dJh&GXzYka2cTDc>}QbMxMy z?jn8&XL&(6}mAz=%kMu~C-U67yQ_mt0p#ix4n z34{%o8g?#y-K5TCUw{$aUq(;MN1|!Gzo6qyU*YAD4`-lCv zi|ao3Ip-7S910?BSJH8-W0tHL>z$<&>PLv!=qx13gej2w-8|tz2BZ8&ttL zQ>wJ}Q1XeDO%uO`h)js8dfq-fuVQ4aY%mDV{1Vc7CfZ|^n0hyCoYr<*?tQBS1q3uy zP*fWSFQv5LZb`rAawipX51rh)+L;6Pb#1MOz_G~Q1`8W+>Zz}MXT0meh0}%{L&n%6 zvu1O8W8Mnwm<2Nh8osO3`$;9Wi<=YxRc@I3k*qXy5O>-n^c&+E9xT|6ef=u`>m%~t zKe4Djo!;ySKH6;grtJ4U6!Lo=@>b#KvC{bCX&LFHtAK%bgozFen@J!QL(PKt)$uQJ6Efjxt?>tdIy-?NbQQQnEenQ<41AP zFWQq2N-bA9Z7h$qA*j7mNKNXU4wC{OoxAdAI87uGFOkjw0EF?kvFQtM9(Agy@hGRe z*dtw+IZ(-`kge;)^=x1)QlL5h2O0M@gR|6f{!G<>jL#=Kvp&e@?d$WEvsYne(hnJG z;PB^rqI*h&MPaM5AaT}~z1|jvO4p4)aV~pvul%h7^4*MS*b?*^4%&eJ48w3EOkk%+xa*uwfKi=1r!@=wl*(x|Bf8P>HB z>yqc~;OU>vFQ+XgcN50>Lo^FHrb>q=wMd6b_JsGATWDtfTqf*1Eg7WMyo-bRHf~J| zuZZ{-)%|e~CB=@Fq2YE|!)25sNeRay^=31Bd$=FBrGb>fzE7XUjKw`{3&d^?%hA2r zSeF6i;WB3HA*?I8G<`40NpUJRB-;3fMTdg5E>_qV>KUu!#P{tU!!ul2! zXw>AQ3WFRM)xOUVe|8Q_F*0?*ntuL${|S!|Ql+djgrExdzIRbM>D^4U1K-)<=*orQ zWqV~yfBRwDZK|zz>VD82&49w%cLTAZ2+m-a$uov;ZFBNYBRgqBr*UrXlbFYIX;e5F zfBD*$@E>rr+UTr}Ji7rg&r+ueteri3ASm$Ef9Df)%>8er-w86863nDcIqxo_iOi{< z>jUr-Ig2N>ID00|_Y0R3kZy@zu+!cOj63*`VnVb|!VnX#X1-<9VkOfzRm&G&auBD~ z4Y(#d1He|d8y%(i*+M{v%TbdBw^+@3$OL;9WwYP*&qTi43a<-Cb}N*&rg}hp7LSEl( zWCz2*LsR8^lT*gf#Ht1lhF-w`Q|-S3grE(S%Da7UF*n)=J0HBmHf10b?pl>*3lIK~ zG%2h8mcHSDSWP>;z%~tj%o6FDBrIJVtXFAnvfn;?C*> z^oTB^!!tv}sYMR){e!0n>lX>t%ctJD?J=}Byb`a`s;n<8iHz^Tv+`WHem_9%+DcN$ zmg(c3Dyf-O!75ZVa?S=bDwH%z1GD<8@28MjXD`|ot_4=wnMVnUb>6xf*pF?WF_(UD zeXu63^=pvR>*X~QH~bUZhi@{kE&=6`4OBRc~*G zuH?9Yu?nujC|D<=_bVqePRvUQHW3@$vh}npD=+2E!7nmhbpiPMZwnEot%$j0R@DNje`Ft0B za435uNbK2~YHPdpfWt35gn-ZWaLmq^kC^Eg%j`jUMrTYi)9>L&dK5sueJis?3Oyh! z`;%GFm|aT9Gu{zL9C=!y>Pd39K`Sk8K5-Lg0^LRU6&QS8nLeu}1k@inXn7a=#w_am z>6UA|m-p*ovVwJE5cD zt*+A1+rv7JpWS-HcPo0#>YXP_s_*1p^>d>Pny-&T<@aZ8wfEdRNfDK$kF*|uhdIS`kZd~al%G%MmJA_ zPxas@s2S}yo^3+-r%n2l*TLlZm(?tU*JiJi(Fgeex^FVq-$m}9g>T8@DXBHVP)ufk z2qD_ukrH)FdeJ-c%OJ<5W5Xl$K`Y;CdP}ZfqmA`H1<96XL+{}7U!UO^IETwT7I3ET zXc&O@UZplSe9Vb?R$o12vh660_P920%cI#Ai;J^G0=!m8MBxi{V@GL_yccws_I+PeQ~~quTD}Nh7OWVB-zEcqMORkWqXF#M)J<=Sk85@w?e+tB_FAr( zxmxy5bPtPk5kLl&ZzdW zVHz-?8Ci>(J->H5ert2b%K{QYe-K9HVEQ*x2xwbs^S3HwyuNTHtFe=AqL}icd98x_ zOlu2Ibe3aROB~R~W}po!c7MrmU=8YH1MwQOF=;dA;y5X=m; z;lKcbN!#(L+^|R*j+$>QCoabfZ#ph1l!;EM<6iqeZI;<2s&1RdF&({)b!OBt+#*La z7)f>-b#lG3_QL z{vdOgH_Pa7nBM${c%k`STpr#4riPf1&ap_xTF@f=OS%{@U3RE~xm1p&VDIj;aSJTh z)DOf{6BtC*BAQAm`V#VJCkrFc=fwQ+H;{M|kb2w7t?I=+Qq|zKKGo4^TNXzVP94 za}npcNwJ!j*<$j872(T~wCuq2eS;mQjqG%>oqd-J*XxW*+x2Y8^tcsK)0;sWqp%CD zm~eF?Vsv!0I)sAMz>NC1DyCtvUxXgjEQo@&uKx*S|8dhURti}k@~1s2z~HOs==SrM z#?e3q**=yHpXJoI&KE#-6y`?TF6L*hV9n)mxUOWCr3(56qHBm7g?(G*%E13t-bSpw z#Z{?I!>`|G<6Hft{6YfTbb5sb=Wc$_awnI*7@wp5Wb$zO2J#Dz|6`U9^J)nzFP|@6 zdO-`jW4BZsMW{bMJELvJSRgR6t)QosLm9#%5*FiG#jx5^zqPDln*5d~)boKVpRRT5z~ z1`}0!fE;wHx7YK1Lgmk^*9zEFw+QxlRGEI<$@`9F@s83ug#YydBGH;$X!8V43HR2; zHemx+O#0|%E=?FB>(1%!ro?o`Mk1a$oZg-_A@fhVBurBu6a;hwIwt&&mB^=)`oH## z*^{+C7`6K%0iD=BG_!|s;E3%=xpHHt8XcAyQl_6I`?(lMAV$a^ob|1W@s7&&aJ(7~ ze(xIcDUa~8beE+>?{KKDc-Qteou>KM>S7}YB~juHN69YlrV$Ot&B*=^TZ4WF`1suq z-||P~)I_$F#dP9ouvx~Zub+a&xM^)dn`cpStAqp31BpR&$&xz8f#s=?KJpz6iC2~N zHtkbeRw_Tye{CkeAWn#ClQ64}m6P879!Imxj<#KBuf%mK z7gJ`{d(0VVqSf)EU|A=<=KxFOls-y64`@Go6GUuW>1(Od6O3?=$1pF9)D|JN!AKn*2$rJ7mup^{B?PGqv) z!kW#>C3!O8iBG zj~v)COwu4X%4s~tX*80>uVW|Hn}C$dzu~HM21oVKBc2I5b#Ikic%R5Kld$nXQZKtM z+St7&`A}>3+f=|ABol?kb4*V{bD3MPBWw!iJ%5sXwJaa)R>I?nlTH8Hl$1>{MVGwM})1ke7 zJsW2Qxdyt;m2*FqIIsBrwi(&XhNAE-ykTF2j&Kl&mNOn=u*EF26L~Gw2PoCw$kw|v z&cdwT&ks0#a2y>qEAM*!FggmfksW51&|{vP<@33lRuBc+PThge9cR{bI85$^Ds)`! z6bn2frvJ}&Ampjh!h`qW;kYu`crTnEpSIDRJU)}I!198^v!l|1o0VHKqlBa8?@#)u zg)m*2EGO2+dYU-rK-)k`JHT)IdauBB-->38ww?PnYxuKDgz?7UWRis~TkW(!DyFv@ zF4iR5*9s9qsJ6F!sANs*pu?0#^@IX8wn-9g9}Ddk@Eg8d2BZDoN+x-1)9i;nA$&$# zqaTvNrBshBA|zq*I>{E&T4Pbm?I#`W{W-p8w99A1d{BGiHphWb%n@}+9o1UVz$Ny* zD;a&S>JB{)fU4lJ>6vHUD5`2}B8Kx0wHB*4#Fhllgr{D7)G2CyJwHwL*$)3r>o*P> zU{qoGpQ-VKXS{sWqjp6R1cFZjWvM>pqL^NO0tb@4{7m$XQ@N^-`m+r_zu=>n23XNq z_xQ-ablv~BZbj?>F@FFTGxe@WNvsHio{z7Lx9i6~+22LE?q(!gR3{HSWr+Uz!uSL( z)`JVTj{>c-1D*E0-N|))ue)jA=M$`r+!4ISqJK;ry=7wgYx`fI%7H0s`+H2~on}eM z?-G`aI|O#Zlb%!6UB|N*(6-}+aVt%!{ilA%;rv3X{`s)REfa{^jKtjdOfdv8<>?Ol z?R!i?Ly3?V8mrPB(~hz=tBd#Xyqmp|PQ6wygjvh26umh!@ASPs3yTC+q~_xsQxlaZ zkfVB~@smxI5#hU!VfECc<&jabK4!i1y~R-#8R)8qEdc=^@kjv6BmhP$pY?T^=Glgo z9=rk2iQ0>z_!nXSpIq~cGtk(3m0U)5m1yLIW8@9h04^5O?xeRa`Qp9nk%vT>HE0^& z9xD3Z5l9a9)b6y!kn6_^(3aY;`d)T7WYkuwine``k3p&WDo)Q04MX_&`=S_1w{1Nw zN-pzDJt(J1AC*g0a?VBTVwFToPg5 z;vxrb;StSck+Pp-S9Fh546<~To$l%bme$7XRqa=W;2#9XF~9B+E+BiT!^aO z%W>~@K340se3kVX*2SdZ`o#X0h|~FTt%PLHO7C7`{+&`&3@Ow>)_!ylGK!NXX4P{hkD6R4gu?@8lLyml9y0m0hTP~`e~rO5xW4$PhU4mrvk`*dydxE( z63Eop8G;z;u|IPbWhegRfZxC$re~m~r0-Myg{Gn5HH@+0S0F$_{z3>u7OdO*0d}*U zR(09-i~lTq!~fEJUxLf0FVHVM5{rl^C-_F<9nots`fqOJN{w$p1n6(@e=-hWBxXHZ z01@wAfPMi#s=yJXg*AEu(JBL|-BU=3V<>c)k4sh*oNoE0>;l7T^#9BfwU0|Opy3h# z=w+aP_P~3OjZsKUQW1{3NZ!a!*4*ozi!W^isY_LJg#!U*EL(w(U{FKH_6!Jj4 z+Er8v2{J@KxGkWzPsh$EjkCPoTFqzG&0}yKHERj?6p6{_;z)99_MKwer^80p!)g5P zA*z}saaEKIQ3xU#5qtGCux=sOi~_BW_FjUvb!21$SHV!`U%K~^y?ST^k7hfcW<8&# zQA#nZ;@mvqrIqYuTE;B_$y3pbh2Hq%ap5zWmF8hj$Q+rF(c9kVLIq`pY(pcet5$WZ z$=&d3&uJ-ZzT6$}mP@L;lB5oOl^s77IY;niCHYKgFTPUWFTaKHZx2-LoK%%|*TGeN zKX69|`WL_LxH!>NWk z+Jevuqr3w~A2^GX%nbk-^R%6LjRu~1?-G!rl{2%_dF)M*b;;m8w^BBy^73r#(|?Wh z|K^9)kFS#N!E=l-y3VL;F!|%S0?b=l57AVMe``DhftvgPdktsMSwm(S~oHWj)gHtOyziw}3?l5A7 zwmG|@On*=Qaz!c^)nASxpynJk1TY`sZ0V%s$)5?!l$R2Xq{K+A}{sf}vMB z0**6Um{8XC0bG!=0YI{Cw(WLdO*YCPPT}l$BYSQnblLNm2Xi$5ffxu7_ej2AU)1#2 z@A25bT1ToEY!?Px!gmNL(Hv@f$vkhj3*+wgZZ<1{2RhyS-VQ!zY7X7d9YAK?XV{#p z5RLyi=4ko9I>NuPaqpgkOb6E^(^1A)84e|{SH=>%N;HZ@GV%`JusI6fbwpp**P02>1I`GdgXjWo%)oe{$2&2A8)* zHu#*b0n+v5B1CkNzOXoNhWZDjZfpm|o!!Y9XKQZmQ)V{M(PtUZ@3;fR^NrZ)C5DGZ53JpJRFtureg`N?EmkpSuF^*23tp z*WLYp`qHIH{kXgLE?qr%9BN*E*9mlNwEH2vKX4~a9>dGgrv>lA6H#Q}idXxxTo3*P zRfuP2-@0s_3Tf=Y`>6-_?u=~W;N&DSL&NXeOL(NTe-yY_ma^55Ch8fLJdLa&(N>5A zOOvZ-(P)>?X%(=QYLJpzN4jLzjQ;en{Gv1^;1LAI(1wCVO3(J5wEI2LtvA-rtSDEF zD|zF_JtebvM!R%(aaIrA%wDR$J^ zshgod_o)^L%30tk_LW3^Rgx-8f_x{b>0UeZm0NZ`$^73@#?AicS;w@|Y=e{Zx z93RI&P)FChpDKtTp<~)M*gQmhXP-&)FXd8t+_2#<(c~jx_u^!gSjya2f@IlSxALSZ zWsn^c0=#L=$2tM#FHNi?Y7GYbG{3J_iLY11IO`5zs?63kZ5;4NXqn<(D_b!Hp5H|g zcNuW9;G-x|6L!&cv@F}(K`C@YCi;qcua?KS= zGA$(>O8fFUXbywlcdbtkJ&V_THAq@D>su#VwD*tPUZOs>aao&e?W-^! z`YB~n^2T8KX6)eOcB@OL5pH=$>q%}_A+-p50jq#_MRcDC!VIa_-c}=uL<0#QovC2C z#v)plY1VEvKko}4Pdml?FzhRY5Iz1u>Q>Q zp}rA{tRM2KjxYWm`?Jx!KtZZ68xJ@t?wvKioBG2ORal!C{E`AKqhjy+@~(`l^Y!Q< zH!jdf@h%^jkb0N~i8dOckRTEKxV{&^8I044O%`Pg>qvY+>;2sk8|0L5GD!%v_Mg|e zzS=fJOL5cSKl(S^99Cl1X<^It?xz?ocSZMhKC-7}=U^nP-M0$udwXMNz1w;{`12AU zJ+YqM>F?xsva}TD^Cj$j?+wF8VFsr4VZYa0OlF_mtd#t+*V~v6XL$=;eEDR#oHnm^ zc*B7o#}8^gJp$!$O26f&wL&yga+ zDP($sRG4xxHcV))u(=4mIjs~D>u7M;>t9g#-`drL(4u>f4XvR1R&*>yK0^Dd3d@Yp zw0e*MM9jiWm?XzBP;1CHkhQKh+ho&_h2%&7wuKxS@iZ}PtfZaO0A4Tz@O-hE)E;-! zR%r3T+-P7i+TtllOLvI$u?3u z4TlzK9!#_1P1TQ=Rm@O;1Te%i1#jyPplb204P^N07^-+(eO1397rA^SlI3V7y~nUA z#=!j0FNxW~_-3~HmpO+#B;v7dfW&w7SCep!U|jZ3m0yKd8qtdQmMn5rVUIb3FQ3N( z7QcC9_tVlcJlx`k@!k9uE!tr>Onz!* zfBg>oUog5sdDy#dy9R@JnAf~sNrd+7D~*=8P&Lf5pIu- zBue8BQzeOMKEy<88(r=d%SqeHUWC7VSxO=9G=F|o1{Ff3iZKFAea87T$(7S<>||Sx z5Jr4+Gk{b5p52*eYUSlBOI}`Y{zt69M{wS*Zkcy%(ps2Z=hIzFVXw`?aZI^$X}qOj z&t$(7KOUc({)E{H?%cT3I###>LGhwb;W9yNZoH({APnQ1D5;%UP@GDu9-rf~*X;=o zJ(gELNQk@9&?zhdPFr8*%YFPTEpl$-o0h9f?l2c7I@vQ)LqhszxP-&PBB_SK2sX`5 zB~oBi=&{S7IMteH)%TJ6sFNLt%o5-}y0y8k4l?1-T-kzCc`_y^pG33N1lQ=I@F~cg z%YG?AnRBR^p7uLLw=W8|7gH?nu0RlNx$V;UTNm>NRIhhMWw$BthG@(|o(jv>9( z17UnD{I&F!;GjQ?6Qd16c^_(Dd?7))ya42lKqskE=3W@C;_D4R+{O#Ar26zKv+NaH zcI--cJb>J|oUB8fY1(^2ShYo_;5hCoK&tDnRa1^;lWdDJu+U|X(Z2%W2iR-9#D$A9 zUa9<}wmK|eAasm7v7cn$^s}(S4)-hAGxv?;SqZ>KI`FCQ&X-QkXAc^d4z{yx)3Qyt zQLy&IbErfGC9i`5Gh^o%GVosagiotfXMhNnZJU%AEN5^X<24jhMNS5x{nd0Q=>Hzr639_{0B#tt5p<@waSmtO1Y7DVJJ`f(fIE;=C%)=Y71Aj>|YAtKU5gWsrTv5!SR} zTvrHkSm5Shf%gML+_P2sUe5cfQkVlu`q_LjRo#FQF+zIh+BZ+? zb)Jq~;%=V1a1vEJ0r0P%mF-Gu(WQI{Z0H9Jaxx@`i@_P_pktFhzsc3MPG7&9ZZA8XsU3d4-mJV~hKljSVx&$h1(c0}R}qN=SpgU6jbWX4Qs_$p6sEKV7{o1K zubt9Itx(U_F8<75qqkAGPt(y=h(EVa445vEW2eeBTo-XI$y@Shr!Zqy| zE!sS1aCbDMRuf<->aDX7 zEwJpz@dy^6q`^(@q;R8>o}yKus``(Lh1BxpY95;bzr#j~NXPR`&-}1t%My=*QV-bl zj5TPhctYmJx5N9oI_+|Y=1=vx8zO9nKwBWQ)D>@x!&LYB731)8XfbB!47r5lO)k|OMZ@225v;ZO#WgBaF@J6@k-;mNUS$9oT!@I6dban zR+GO?g(@@lvJlFy3G%h06!Kzp-BGL*iNn2 zclvq8K0a@?DH(}Pzoc**8cXokAkKEqFDw`cx2_p$EGDqo>Va!IR&-e>?rrK9gZLud z$fFya%M;NRatTLP7F*O6VQVEQ%j^pt1IF88jOsC5KyHA@?-RiSy2v-OXZuV#n6bhF z{t8X2J5B0H*J5x=Rkg>r^P@e+_}N)NeFay5%rex9)bT}wg&MjXaK7jUMsE|}2??D; zU7FBIHz5Kx>T&WDk@Ji@;jB<^thfhH(jXC4kT^HoQ>sOL<#@S=0H(YF<7rg z=Fg&&JJ>BR3_$!}WHgRR`FuMw_+Q;d1jH><3Tp)TGi;bK6zCMYJ8Bpz_nzo_=j+&M zMf=D@j^b%zvUy*N)30U!^^oW~S(7Qozja@O*aV`qk@2ou%08A82{3SRL_@Fi)HDna zJUZxO>bzIF#W$xg_xW(zy*^%OTD(5z2$P;C>u=6m7O?*}mS?Ya*0Bf~;JTYcTMyYj zMYDD@?1&yJaRGJ5IjcBKd42J-7dGzJruyT^XuPcJ{7?N~M;(>v|2B^^)<&7>s_XBp zdlOwe1igOL7b|?&so2qzwNSvMa+fKw=j(sj?wXsyS8oD2s5xuCD5zabhIJqQA(Fvs z4M?ZF+xk`nIbX|u<+)U`ukj;i!Tk4uLezZbLY{`Fqv`BwXP=@ zQ%Qzx=>yX0^ydUQlSVbmj)5 zXekauoYL03t#0aVzQY*u_pbWiVwAsA;G~74-#6G>Dt!e#(^Gt(1p4{<{nx}(i12Z; z|1_{G^(U3*cfBuGU5$Euzr?1izaDmU3w$|jzT&hpW^*N{Wxh@Cn`+wysa^l*kUKI% zGsc}i0%ENBToQQK&+cc95tmdZ;U~Vy}iwLIg2wy8B(Cnjk5SZ&6IU0 z#ot(nO5%t`$ROm13exks2Gky%QNgyjHcJ*u3`jmC*c@0=4)e~cDMljHspwDRg z0Xk!wFk#J2(sySY#8Vqq906Td>xdk(&<58`BoH5_9daJ{%&3$B)MtV4SbTqoBpHz`Z zfPBNE#5WzQTrX~LXMlo8OA4VC3hcPlp$s|Q)ER7Og zf9C8~-z2&wV{5{-^h;*=A+aUnhqq(@#WbTZxIAn~Y3s|;&eB!m{B1HH8{d>fvVCJX z!Kj6lin4EQYhLp;{#gh`j;ZQDT9Xf-JNTNq^p>+;P0P+2P0G z5Tk5rV(s00*6+tp#GE71H$A2|bQP>PdG<7`gfU&~O zAvo2YC)TDyr5%Q;Y#U>^>oKX47LzSKbZIf&KxZE+8_I*CaB|-CydAoOl;I>v@VQ+S z`N|HktoyK3dOL>>NcUb}FvdiFjEVj@MB8?D)O!jUOR4i(NC=sFJ_+2ovhqPrT2CQP zr*_n`EYcbU?Uz?5_V@cc1KdW_Zie=4h&OGY|2O8c?-wvw-_e7QIZYnFx>=_kX6&XP zHIw{FMWm{EOklRmToJc@_bK3{^cu)MDf4zpOSK*RR=kFXy~HhGZco|1Kw_yF&-3#a zsz2%ldPJlYX)oJtJR{964P{hHW^;~FF*)gsj5eM=o5t;61{Lj$+$)jhGmp%@DDUMc z^4=t{%uzgSOim`Q>6FCq=3JJdgqKd;bJ z9rMdfJ=gpA=>;T&%yYw<+jm~2Q{w&X^lEhF6*JWGrVQ@J?$jvM(zAJ5C)6yOX5^`B zNX@ar!^eJn#!C#~!{tAt$6$``N4nlXyt(n-h7rW0O`mTrMqNyfMTvOTxcA9A$|G#e z&sVY**OM1X>}<5i`6bT5?1xIna5hwszJ{}^*m`0IZDjsp+Es_>Xk$NMnjBddd%TTq zH?jEJ0WO&Z7$a+Q0+4Ap#g#M66{XoH7i)5JbE^6-?}SeCDnr{m^Dl1;X}r+Aop%2W zdkh`y6#ml;LT@KdB@7@JSDVU9VE-Umf0r-HjZIm5O)thUIj>2#Pr!eqDy68adN~X+ zEwR9UJ~ln^I*FMo$$2X&EE70D z31mxUWlA?N);z?XfV0fCikCk?p-HZ$perHp+IA?J z4_fByW7I>8VMMCIrt1rT{dY`uML??mjlS2p$arPHVyy4b0TTLkc3{3-;Eq1__EQm~ zL-DHe>fb(}$MQ=?jZJo2$-pJU8YJWV?jYkd{{o@!n zIx=VFs48D;1NEIwem9cu>M5r4ni6gc2QOiHn05~>6CmmV@Q=h~#6meVARn3Gh9rC} zISPU;U0CX1>DRyNANkob33gOI!ioDM{+Dn%C?iL|0|P&C1JRiS42zV7=IHc}&P#IXhzOVge*!xWXr4RDlY zMP@3Zu_{oI>w^zJUm%m?rwX|=I!5BpW*7^+Qx;(Y^Ob=fAihwgV!t6{d(k!RF1muJ z^!7-5%pBUrbLn~sw^@sSblNIgof_Vuuj=zizW19LcH@PFR$Im$(Ur{qpXe|o$PMDA zaCUm&HZn@Vkt(gK;{ujg4;ke&61FL=MJLe$kFRz%{b>c3E+--+7P-Vu)`|m;b)I>{ zLri&>aaM}qndpKR%)sW%(-@ctN6Y@;7sQn>KRa5&snA`c*uu~jsR_4=0^Zz!vmMcp zpGfNm;PYbT?|%mxzsgr7y;%0zYSkO>NW`4sfTC0nnWR z2XoKXvu9J0b{=~p3Y7`Wc17t;6>CH82(|L~iuna>Xri#G|FY))kZ=B4TtFUn&u7Wc z>DZntW7F`8nemblh8d`y6n2=G3T7@P)nCrwTFjy_3GCuLT%)~#L&YGigjGSCyuez~ z?PZv%QHAD57>R)O+KlzuB&BM5$^1_)#W@nNZRAt7R%7)fu*)l3#cdm<9|Gef?iM8_ zOxn$&Dzyf*+VL}`3nG3Hb~PYc(!>5bG#()nqY_53*O#(EWJYMYIn}|VhHJB|{z@az zn8v$0!jCNexUfc-;c*J_WA;G`Vx|)*{gWsKojA9lQ{Bz)gABv;Y>%~8w|bRVaUtgT zrp7Jnk7Zw+%CCO^H5{ZHtOt{5`IVc;wI`;qvK%&6&>bC@(pA}Np3Lj1d-cnZ{#P)P zlZAyKjO6>OnBecp14jotTW6@{76#USsudmGv~hH+hq#BO%)jG%Qe}$vo8+Rs{*%(M zz1`5i-O#LZs9bT6oj47`hBq!pPDOFnueUsRkaqlKLg5sfTafYEOAPv+TapArr>^t0 z8lpbE0(4{1{gd6wFs0N^jQ?(IVE|g>YxmdZjfgiE{@aPOI@0*qs7STJzHbdd4udw& zI%Cg$(Yk=<3+oec8tPR_6Qt{=#*S+l!WPwf3h}4Sq-iNQT2YHV2cng;?X7$qH*Ot@ zU-Ech0MRnWwN5=>x{uM5nsj6MU7*jYh06-fq@!)5^_9jMs%rV7)gh0v?|utNJHUl;Roel^D;-}mE_HpFOq#2ceoG1OHmgh(YzR9d* z3mtF^8)Jzw?dt)6Yhqt{d`*sz@(&1nHTx4K!neME5bnrF;$bwv z1`Dc9gtir-EMteW%1RWc{3_$#+UrFl(x6aR-!(AcgWPC=U$@}#cXz{H zrMJ`X@5<|9w9g@hlH3!kSWNRi62JYxF$G)bvbO9#N*kM_FLryM?O=9pVX4jc*byVd zizMF;KF;tO~x&;K+cCZH(H#Y?&Or!kRp zb*5Z@QK;-?3zH|s^TmxEU6~7WPk(EwovK)u1sb;cSd7G)JRs6AeRJ}6YI)=M?jsYz zL{Rf4j6j!_79sFO1~W#?hcgPiL7iUOU@Cfr_YI?Y0;8Fh^MpQ>>t{GfoPUzC=eXH( zy@@sAG_;o$4?F@~N;6tSMAAO5mA!Yhg2<(0i>3wor0>^(uup zU+uM}TDpj1e?kZ@ZnLIwijbqx-u?^($*cqBMx|=`>}g+j@`H57htUP2$NtBEao+#^ zpr&_83yFsc4T(&u>8yB?SLk%q_6xnBda_UZsOTRnq4Tu9U&21!$7|F1G``mVpxcu+ z<91Z5Rq#}F>YkNs0;8s0qW8dxvbKuloQr<~qn_T|){)rHG7+kWn2DmNdoP1*l8vjC z$c^I{n)#cj#_LX~DbjKem&h>|}Z?NcfkA841Gf4MJW7uZ;4iMyyG1-Ul!Q)PH7K3A zc~~xYbaw{jaPs{7*wDUyrvzK$JP1k~%%+Bo?3ib9mBReaebvRTrP1b%M>GwHF#2>= z47b#V3Hw_+@dd}l4xEMz?@#*^5{vkVWsfTKZT;N};HI=6a3>)q?6e4Kl@RuX$T8!L z8&i2E`$*dr=I~AsxX1ahw2XW=jrD&p9*;x0N$R9QDmY`A;LFm{kn;UpsfzdF@9J z^;6*LVPKbXSN(vmL3aaDYdA zrQ|BC(Ih5Ds>k+*ArXT7K}n&Ey?$GCTw2hX?WwLqE&Opb00W?Ba1&<(N%3-R-;hEr z+-~UedQi$+S!E8SH}ba`Cyv?2SK5)euNZULqzp1EDpYl}t%_{(753LNmUDQTHJw`) zQmOS=#rH677p;qj`U7Gr3O32q5O<`D$7XCotD-W-=qcq1Uldrm3u(K>Ueo8Ej#2HM$O|q`ansU7S^qNbP+Xk>^ zZcddXkyzO#au2*I7sgvw8Ua{4!^3*(hC`2_hTQm3lc*0?2nPL}fs+FTt@ z7I$RZPVc@qLc~vE&rp|C9C+u+N>Wf1Dm(2A0SN^%NZbX?x9Z5<6+*Vfa--?hL35!%v!|xcp{o;X z3vYwCh6$;JKJS)U$Bn6trpGtg%#JSU)xOzb;*8&?eTp7Ut@mrtK>J?}@TVK;Nmy+U zHxDIw57};y>kHeCmjuhXS`~5{t7n|~A(LZHbcrs?i z>D%bnx^cPzUQ1+u^l>MIf3qld6PtPn=E-j`^_^5BlgJR1yVCi}37FO*qO|zETr{OT zv6NoPAi20$K}Q?>h(?~EWN>nJdzZ4N9+A4&V&`rY>sMT?I(MjqduKOu68UV3pd)Rj z3F3j+_g}w+(p5Z+qKPKzmL{x9mpf!|F)t7TP5ysWU3FBH@7DFFC?FsuAkv+JbTdjw zgLHSt0Md=p-61Vq(lIpB-3;9fHFOO*!#Cdh-L>w07mN9mS?_Z=&pvzabIugncRe;Pa{L2L(qKq`yhm`0r0 zL*ZlgPwHbL8ay{_R;Q-M(Z2R9)c$O}Pu7zDwP*$!?w^!(m2Bl4;8Ed z@-M9JnTK9*dV3L^<4#0QEuU}cn=LE1++;$mQiYQuBno=P<4`d!U}q@CJNus*#U$9| zwQAOPi+?NO;GyF&reME)j_laVj`ZOZ8m$f-d}2%dYX<%f5JtZEJ~yxCt1J2C&Yx9Q zvW#w{E8o24%8MXjBxezqK|mF<}A{%)`O(ta}rr&usuyM=XuIy#>!94I^{L~q-- z#n&1P=g*X8b%{>=JK<}wY*-Ixkc}Jm_3IAXtNt5P)O9Ye?|xPV#z=D8cA7mOE8WWU zY%mOwk4a^U2@UdA_tz%xta9{12CnR3&@e#n)^h4>Eb^5DGF)f!;tvUXMakX0Nk@cU zN|A`?M^kZpS#8*)Fb$iANl}<{D|&piSKQ)qPT<_7Wy{HEa#D0!TY((;vpsTM`lBJE zwcQ7Hlw4;~l_ucsdeKHux4SFaV%3MwqQXk?Vd?%lzfZy0Zk&k@CO{XH);CVv_oTxb zeViH7j9S&!9dL^CzkLy}T8i{#)D8~2Og;g|XiQZ7lK8H)2V%!f7L<;(pWZOzMSRSV zm++Jji1&(enyURn|cx;9pF>T70KmJd#X z&1?=ixvvk(LgW#hkFk(MAJvft^@u@W{S51yL!3sqISCf+3Q zygBydXx{AMDLyo4-}wElA)DqnHLg`*Lj)~6ix?#+Jgk~BLRc)|QP}$tfgQC0}W2(M0gT&Pz+pFlV+_2 zRHnc&+WYNI@wBD^^4{)X6w^k|qCtHTZnwP3QXkpU}M!A1jK-wdBo-Q{uNgK6V~e3ywWJ2dP#mepAuBCEJ)w z%D7a@AsbBY)&_n)X2I8+%!fhDhXnwQTg#CE;|X@s$H#6e$;&UJ$aU71m@zS!#2jCR zI92d%XJg(xWz-nrUf^pENM7X-iWs}8Kz|qPI4A53XQw9d05}}{wrUOe9=T#yTj{OG zp;D@~Tyw=~YrZC`*KM_`L*_9<<_fBEM_dtPLv#w*se*XJ?=2lbN)M?$fXmp%jvu(e zXa8fU=KF-M?)OfnW%s)J4EtpCMNKAl5$j!G>+W6LI2B;ngBs@7LCJJ1$}g{n)-2Hl zMr0jMr=HyNu_dt~oEF0_MwdrYk(Ow6f;8wbDbPH|&tLIuO@6h5dkoUikP;#3$=^tSGvPyAEHVJ zShKU=dc&!<$pr5+FtU%uiwuVKr zq=}c6Tc@6iq=sKO0W_zX)Wt%*BR;Lt?BV;hp|&s&L5a^sp=c5{(s9xf@vp;PLyC=m z4Cg{Zn8=i6jSOR}XX#W`twxlvz8pS^u>u)ZM@po;SUavZik+K^n);&_P z1OtD<4~kXS9e&=9$4{MRdYomc2Cmt*Ji(m<*IeIt?Tv1@k7Il8ZN-7uv3zfiCTx*4 z;q1enpYo|IIPRv?{Q8I9-p>2`T)p+0gsKsc&+YLG3Io!sF7QHD=xGMO@7DKU%JDyx zahKki4(^{#a%@t~hZtjaalE)PrExhVidqDEHZ?M)H#}p`)XG&e-xTizolT@jiu2Zl z04_RtU1svACfJ({JEnx)_oF^jact(+giPiDTKV(Y#!HBCi8+0Yp7zn;O^#p`@zW^~ zNl{d`Ce+J zg2sfB-no`jw%+9)Yle`+V%y6Ra$lQ1Q#p+fdT^ID7(;edwxNZRg>ubd+i7xk+66e- zMs_K=Ed#C89r=p?^Zap@VDjc8M@Na2O%HWx_$NW|QY2zrJ}%+0ORaPqbqGX>PJ6jXsJoaxH?B9c5$p)v7M&^zu&_(0$_0lS;hNkC=U-GaXJAYL0 z=jOU-V!AIlR^BTvx(r=!^FbKdJ}mOqR0MAkMlDHB1>?jn>QTu^Bv8t-q7`7$=i_ic z^Cu0G70$Jn-;s;o@ki?m!xQQ{ed(tJP^u(PHPXzWJ3CQ&(@IbAv-izH*OpnWl^1wgiDA3Ofn&EKr!n247&4mhSJ5EV@IYwrOp zAH^o~CjiH#WYg&ha}NQ-J*1J;qWOM`9|+MeWA<>!~XIdZyE{e}0*xSg>mw-UG3rGB@Ie5MkWlIG7R~ zC}g{hoYEcUZv+)d=g$`$E{SfYUoyiC=eUaH83dI>TJtbpe31;c$k>G}t7s%4acqm3 z`axp3Y|ibnjy}xHvSOuDZ84E0Nk{vBcET16W6(I(sWQkSIqsBX`UNjDZ}I3P(EF06xp02KoOdmj8avXC%OJ zCAy+HluApup%dkKEfGNDrM@B8J!F9LRn2~-a$5*1&K%N0$k5J@iwWETql zTq@=)yg`iqf;YFk5NLsGx3n+bUu15i+xfz${di(g)rvyM^f(^N_bhYZze~o>Yg~5T z5$a0F9K{XN$p|VHvZ&cG;Dypfh4o@24A6wAN7d^ zfB0vl^RNbLqNM5^+x=$UHDLbL0U^s>tj}XH&marM9YNUYYvCvD$xR^CXps;5Q;z@S5tRle~3 za)v|$>nMM)=yq~{snB}{2Zv0RCH~gm-|Vfo+ooqOcbLD?KDODxDpkZ}vjhrhHO31# z3k3o7L*|xX*HdhBTUl1u{!~GHL;l1^6Z{9(2{Tdti^>ku`x^=oNim>a(J~+bZE&73*0>{F)hqeod7NmrHGTuVxHC%8y#RXb}uiTG}DMN0aGc{gk#7ofi4BPK$CxF7r)z|hRqzUe4j|(rFZXvn2{VI zy^>bhVXyrhcCIeEt%uL5)>jv*6e2@JI~~tbUW#YyzH2wz$}&ZL)%V_oBjk+HbfHAr z)uop`=hvgL+4{Q_FDO8u`Kb{ezD$xhOgaNpyz5J|uVbhS5stC;FJ72Gu~gr^l}r}g z+96t*OY2i9n-#5_UGtO+7)zt{zmD8dDlm&knsD{)0XSs)EQ#w6d)D+Sh8kn?{8y6Q z5TwS#O})ivobPm+bQQXD zFwSx?!ZbxG;?~#depP@<8&V5bJL7J2paKp3di>iWH+4~24_Fc#9l1UNOZa?{}`j%mW1}>RgJzl611omM`Iy8 ziN|IkOk!)-#d%!L~T5Y$ zZ-wyPcr=Zz0I|c!s7qoz@?fG@;9NbpZbf2tM#UETNq)vq6gW(K%D)WKN&Q2 z=;3SKfD9rmPruELJwoAINYipYYMBWZRZYl-Rbbnqpyx;x@dJS+S_}p@xvP@V^mYhY zCJ&G)tFSEHQf(*l+FPX?Fw%T;xko?Oetui(n=ziX;(h02+WLT}B$D(x2}nvsjqBO% zp7P0)_FQ^RaV}Bf4~lYMG}6m=YgygT&xQ{Aden_v^{utGt{wD+xS~(+c#yApl$`w( zVINe9wy(xgc~98+O;4{QG~=Shc5;La>Uu0nfAitxmOo_1o*v?`>7}FBJ_-~W1Nsqy zQq_+vxW)pgCL$A1RkQIvA3%B{hC|VqjqYwKDFkVUCTlsLS%Id5)2PVDpGl4LtCVsPOrq#i54@@3uB1QVYjt8uRQvm zz5*r^dksn0ztJZ>+Jf&KYMIo=C1BXdB^;TaX5QNnBDb-3@Gw7<{XZpxzm#!*Y~P0t zyzBlV2{nmop$IWMFrju)?yuGgWZM)y9#QH&YEUe1h$*j+VP{X*GT<+rzV94;4zK#x z{jX|sRumlA$V%E~z8ObE_(uQ6YBp23|EIKqOOWUs&TqRm-V~9@ji!I%^LqkKX&%1R z?coucVv-Y=dRu@e6SmLI$4jd+vz51!SZWRuNN%jbH;&U{+r!G&8xAL+!-NXNQvj2CA^~#gw zdy{LsOB9cjAfYU#1+^Qfikife*xLQpij>8@&<-!C5d7CjXPUoLmG=Zjs-fT2;b<$1 zbCjzmRcMO!`;^kMl$R$X#~`8B^-4Q%ww=CYQ3tQ2_n9>~o~|sg^s_55bjeO17}Fsr zV)Zn=mSg!!ofTW4mh-6G4t}l%uIVegXHegfyFVT4c)~aoe^^s|fDSg6D;U=60qtP* zjj!#o32Pqj&_}40CBi=8gi7+^@sDC8;nTfgI)BkkkE{HX6$N3W#oPZOo>z7yNnyU5 zTui^9JUHf0(J58;7rUWWzFo=Oo*w;g=X=XjQ<1mFRq@SYnRjjjs~J@&I=XGIJqQss zcu&_&Qn>RyD}-Msw`^^0IGfu)1jHua>Xdd8qyCftAbE)07VRM2*XJK3^OWLSEtTbv z)GxcL-1pL+f!+t*Z?_hlwGv(z;#VqIAkY-hVfW>o)n^Z8FIq@SwNxG{9l1slU2+mD z)h3;csG|!dw2PIbckS-iyZ(Qf!ugoQv~NR)i*Z!A)~_sP0#v+BWK8oEWCkDaH*?l? z7cB|+6xdzIJ$A~Q*^gw&0hLcBXk$Om5K~`(nV*H0eswky#VHe+V@AKxRO-l|-<71f zArMwEPE#``)>P*=khyqtxBxsoi~}%2fjW#&$)8DxRzT)c8)LCpOzAwV->OBIN@6%) z4Isw)rLc~OfSAN0e?HEYMDU`-bohUQh3so~8dM*T)>l{-r7TrBY-g=^$dYooFBPZo zj(gvYnt3X9teo@Yo=|jh49Sy4BhVp<;y?j8Mm@8$~da=Nd*4jWf z^HP{at+F8&6O?A6B!(SJFzLNkMsC^ooca!uvn_!YT`eY40Yo8_wUgUv_xMau{Ky6@ zB`C}Eso>X-m2J1@Ezs2Q2Cz|0I720`tnNow8fxkY?F%WU_^)q_QyINJPOxlJtO!t- zUJ`wvGJJ;6(kcthFAyh&1w-_+4qrcg#Xc;YX*OBhf946MR^C`;i@(8Pbwj(oCAhB< z*J+;@$-PqPt<&@-^0MccI+2_`)rNM)-0*=Oc0jj;^dQ+^GJ0Y}Q`G>jSnq4TU|~jZlnq>C$C7-cJn8ZyG4M3Y5J!k9 zu~?_qG%%eP7Nzms+n%$e;vtM*^fhLsoz0~cuk7Q|Q&VLXw@NepSMGY&q?mMut*+z9 zxJkhaJ0#kqAeUp4SeBTM63Ryl;(0}FKm9F6kN-=VVSBB}G0A1n{ff6OQF$2`xPhe} zi=}~Q1pIKJma}IK+qGt?r9flU7`qB;8I0)zPjRe)>3xpM#ddQ;jKez=^3pCVp&%2z$?HE!|3oppDh9-?X zHB%{AF5Wt~G5VZ#8|o(;JgE#KMtQDXZ`#=-e~?(kHVlpod#A0gy##i=tU&C-$Tc*- zgYk_vUyS;E55M6%?;woTj4u~rad$5t8CluYpFFa)!T#6`*JeZW)-H_=zD+y-GuB;@ zb#kO6>@Pr{-9fEyH-H>2@Lnn0$LCDCL?17mZkD-*1C`V`x)<^^^+rPfC(j#I6FJDh z?R2zX&0mAT*|N&kh~4c+7M=BrVV2_E6mA7(xBg|)C;JK`M5A3ykjcPrV9a9QcyB^c zC`gEW(apqb+GKlS8MPPd9S)rDF6}3pf?AN9nuMd8gmgW}6;+_uBF&9|qlHbdt4gyg zGNgoHwnz)BbG?oJ<(8r$JX0ag(KtAb-R5pwVBQL_g5f!eox%`i6 zq$i~o4o6CxRI&(E_h5e<<^F4&r7u=2h4yrJ;S5wc^Ap}&e?%DT z5&f{YAmO6C5W4G2Yr$eGbUZgz2w}~B*K`-gRq{5i1AE#dk>DBK`=;zpSA~ZU<;yJ< z)|VVL5T$ijy(%$K=g>~->BWTm1A#|dMWy|rVB1{d9bx0Wj!x?yXsxBJ{o#GA(vN*h zDnxK^Rh%1F?vvh!E2gbekL(;+OZCY!HjrE~yByi`z9b-R#yMT1Otu`Jzq%L@FT;g$ zaDd=PEhIKWx*K~LbLj8W95|6*x=Vj&ZoNC@99Ce1v?AM|Ok;SML| zn=F#CNgYfb4Wh9o2e-v1$IQNDl6iRHgLt#73&k!7y%LvKmF)Jc{{D=(YgTET`@WBmQQJI<}88bed8F6A%q zsDdBtr#Z&X;~qmpMcK(b^gz&vrq&y1h`)f}YOMf%BOm?H#J5&co8vpaSt*CXC)cSNhv2~=F|)m12HYT0kU=Ub&5;ww#CP;;nPN1 zzcknNY=-Ncf`gIE0Bp7y@P`>SV6~^3XSZCUW3@%~Nn^vDB5PuWF=n2SC48-4$95JLJ%xnp&%n+_&qkt}cA+gTdV~sM5`y z1*avWCidlnwxmDH`f4xSv!OLK8Do_(idj<0H^}feeGZR`cg8F$yQDlMy4wWxTCY&A zjV3a}R&6Ez zr1e)+iQ%#_(MB+snMqi=1bHDo9zUdQGk-`d^OL=nFMAv)`VPO`%oz{GTC2A@3z6)} zCUF_@Nz?e%`aLkgC*m1J4#mAMrIff%Rsqs!MBK zAd5!OY!zCiZe`UN7^!iWsesj)pi716flTQkYOcO5MZCJ2$;DNJQ|jinJE%w1R|Go(GixWN-S>5LvzD*uJk&il3{|VRB-QH=BRpEn#;n%4f$&*=|()C^RwF zr|r)wLMf4MI9v2~oC(u=p^P=pS#jk#QYa#{-2%ENbh{{Cr7U=`5+w_VIX)+R8Bdw= z82^!h2-lM~EN>z0$ykOeCD&L;M5V=J$R9kz7P0PW1%G+afIkiOHS0gD{4rrL{np^X z-1@T4%j-A37eML}L*SGLxK^&~JLhss=;6bfsTseayZ`1R=;coxU-?S=mp*)4P>bBv z4}$|o=UffmMD^|?4u{J7bHbq~K50?@FWG%4L=0nDI*Q#=U9=0xBVNY$=#lK`FwIk= z1MM<)8W3d51LvstyXdkP0*bE}ktKneEq!Cc`=|p2jvu*+N&9j8DI3Mj_T4hMEyl3YwpTfRwqcgO9x+(nM$?GiR;Pn#@w(;p` z-7A4GX%o%cP$a@KkU>zQ<8S3Qskitf2(=te59l80?vlzzFMuRE85BT#svv-pVGU=2 zg{0#ur>}2gC6$6|r-c4fR1v~jp~pl47*QmM><1~Y(n7Mw#pQ$3YUVaJwcJ?R>4Dat z8{{6;3!rbzf=+cgte);eS%9(g$7?HQ>pl7+lFj8o)$|O)p?c4E(c?jZ)KL<&lw1Av z(b7OQXk1As4^bEE<%~ehZ!Tj>067)z_V|I}Uu^>>`mEN@&ow*{c|FcYAV|U- zsP@z+Puh#d7}j@mH_mx5ItU?_yD#L){wZ>!sB3KvKC~ckVCh}0$OA2owY(yzzlHGK zRM(?c?uqfDyLZrvYS9<@(6@O7RNWiYw@PCa+BXV{1fBlUEAK^uj3l$^*h7`(e`t0r zJXBGTq0>~VtbCs$1dDK1EOpkg-p<6^yCNaqY@#x+tD9AonW14%Wl$n>cn6@gs;9D2 zgESnZBe7Hz6)mqYE3Ys=y|C5Rv2UZWfLE2LO|+|>`sUAwyz@@`+r7J&;yH#_e|9Br z{zee|v1GAF%rx3JFRF#n^e3Kti<|Uf@8m|w58r&6di)bCf2Y3c+U-mC1!P*ZM3QwD z&a`$8@*SI1m#!6f1EZYYTW(U_xx3gLgp~g~5FSfeR#HshUi?;yHsSlCf~@8n)^$qd z&)r&hr3AJMr*I30bT9W9w{=+@3AUk6uCSBJ+E~FX?w6^oSN=DvdX62eScmfC5k>c zfOr{@6Mk9K)b@J0EkdxR>e_?g+(2V(VDxSWbgkuDc#}Q?AJq(q(3vF>xlcVS;1fzY zZMhnbFXu_Uy$otJVKs@TjCoC#pr>W>L z5HqEiOmi1j@#0+D&0I@+WO7qvZ(vAL0FYst5+^50Y(_J@}NfrD}KEuV$;w*K6u{+k- zRg?3Tvzl!4DSM^ZX0PT7U?TP0XCrj!RjDXBdhgxrtUcfflP@B9a*9e2EK-+!Hmg5K z!5y<5-ZKGZPOgTPXaZRkaApNpZtqX45f97;vQ{O_7g>(d-Ilb_1OV5UF#PJs{D6$$ zxTH4>LAB%5q_Odz7UO7WT^pIY>sjt-m{VEJCc&R16F}LksDCI>)ZL7Jo0&^%TIN)e z2t_jcwhEex1x2t@N|Yo#b>Ugi+*e1w)}*UZ?{3pgvSF9*Gn9!G?Qth^_6t7I#n5}Q zR389ZtT~Xq(UN)|@%6jpQS+-CZK`WMy1N}YQ45Iv!bv+U;ikpn^crYzxMCnVI3o6Z zuIawAY1X0du7hRbO79W~%7Z;ENYfa$2#(GD>^vNm8i&nDw@4&if5DL?M{j1@Ep1Cc z$K^=IrY)$u#{QBpSSKgF^Y?n<&j!b ztrg2x{a@C|O()@bmr9y{4Sia~NR^Yy6gdka@$`<{-z)e!9_fXu^PJkSBob|6_Pm9( zf@^T0TKT+!VtmXh0A>{;(^&-Y)^b0~m*PEc;|VyZ!m>CyGfQhX(_kx8c`Hg&OkwD^ z{S}K(77H?b+D}&^(YzPZg#Q&J|NraJ%@6JAYXLV_?r+o3UoP*deol{5Ut}dv>I-k) zU-U%gyj?W>>FsiNmTvCO3wcQ~4kjN}o;NSIt>tN0OmD$d@J(+KRbP!O6GP&|B<8K; zd2u$eA9X)TA$Ona*MykK_d9ybk7~)ME+VC3LvN625~pr!i^v2PYzZCQ1zI5%x%$@M_V0$zHc_ z>2$+vb*MhMGU6ie$EVQScpzsEqbwSD)8@!@S21#Ey95yG@tq0azmpcju|@QB1IT6h zQ{eHMtR!2-_5X-X{(GGlW`ab3fTG>q+49bE=5}LFwtN01315@l@0+Qstm4E*inNRx z^M!@wo-OJCfBE^S2+Z(^St&^?6Kd`n-1PI!^r?_)T-^QzG<{i@L85YUgli9A;zJ9- z_96?Ln1>@|1NTJ(2QGB#Rf7*PL1_$!jj2Ded;$vxo5@J!0ef~<{TN5q^|xB2LNC9x z_ET?;ziu|(&KZ#r>OV}%6>)t2=Ej&AM-~Nr_g{4Be+sd-OgSMP&+;@RSwQ+GB;Llt@vNcD3n#(iEv*VX`lCWcO(Gy`6&@%*A}CUb7@S z*N=pM(2MnP|MR}fpXXdx-1m~s5dWG7-;f1X6SiitHZtm}IXp0YN96R6WcGJzkYRke zckUsfZRosC?9(g6n#oN!_L4!FO{ri{Gp>2!5KgQlpClW)``4}9q#b|39-puewuQz- z|F5KEIDMHYy2-Y=dsO${;BUa}s-K;jbkX5*hVSv*JKgl2&b0FB z*=ilsf<&3ch*pUa#?kIA%>BQ@-)K${6QA3!-O64j>0B1b9v1l8GQjILDeh7}V1%|+ z8x8Kh4CG^dcXd^;z!C2Si^I~UCQxSfq6#X|8(3&UQ=g6-n0Yjbvq+6tS`3Z zTQ=EO9lr8Psnl={?Pm68J8d7Scqfcyx9#cWN<+9D?_xnzw)$YT;D*rmMn01ONzmuDZNlM4UFS|GuZIQnm<235joeYAoeN&o;DK#fxFzox*x7Bx~SXf~*U*!Am#q#9T> z+Zm(`6D@^p-k)DP&m5ipzCW2n{ji?p2r_h19f}Ui5NCa)F)85Y!DY%&pci{V@eIM% z9pE)9St^Bojh=M&_EN$?>gQ6`FQtx6UbUvZj>C>UI;BDS$^o6V`Qba=re|Dxnv}Pd zpF8e)CnVsbvbO_KzN2}uX*ayiYZlln7$Z-&gcp92Z4S75`uhj=-&QpS*HwZ7Kxfp0GP zTeNVV+AiIBh=2dPYnhvnBl*}eEfQ5AnJO?Ffoz!Itz4#;QFbkrZj&mYI; zY{yXYrlsTEb`bp6nV;#J1_pj4MCtl)K~5c^Vp&C2$e5?cf;h3A4;RrCWxTh5UquiE zVng2B)PX~tW>KAIuaS3zJP^5v&EnhF9aT82*s8p?2YPwW2MM0tgWA-ofvtU6kVcge zu{V3ck5>&cF*U%qKeaBcXA=8Eov%2sKthC!)+#rE>6wd*WKm$M|NpBL1d zFIms>7{jRh!=@{(4fyVNo^Ra96GNmt3qy%aBq2LAMD!9ZM^p@zTd`Rs)$hl=D6rVS zl}G42%2)Vl#3F6T4QOjG+p1))KqgOOTei6E3T?>a=5cnqW7<*OfDNCXu{qxT6zR}d z1ARUF@YeTtKx(q8gCpQfMfdTr!gfT&JM(syV5Of*Od`lLzTwPdh$1iQNcAxe{^KPU z^0lq3Xm#gg;W$308(=&2tKjH}8f#D2fFkc^dDiCU9)J_jd7RNY9kDWiBp_-3ZB~FJ0f+J1-yvR~@vpPB!yK$6) z`><;gng7TA?*>XHc!2&}3+?wMt>UU0Z@l3d1*sE?b&L2A;7QvfsESkSF{Z!wuP>{8 zc8jr#`6ITX#`pT;MwCuNv#)dkye2OE$dBSQZ<$`{a(XYuW3nuqx75& z(>Z%(*fo(?2HOLXr_UVzsaV$t1lHjAk0hhfhl_@@Rg9H2`q-+)p4|ZLTXMp2zICv# zdHFol?bHWUm39NlBbVgEu`AeBTcZKM%jh1>Ho3Pe#ANj>N!@1f8UAyg`C*;^o+TN=>>HcdDPA|s}WLf zt^rY%NQZ}RVF-)5#QVAE=rjy)SwDbLYH#!==?ps{D@VVc3QrJ#r;N>uW3}*w~%UN`w!1% z4u3xV_^)WrkQh!V#rp+!*R4t4m!>Sg@e$`|6T=0q6wNFj=Wy_VXyMUcB_&-H9wHJ) z&QuW$Y+^*Flkz@B-|w!!Rb{3(H&{dGiX<}NyRV;;1h;@Oy-0nC&XU}3XLdzgbDjRe zlh2juvIF8!I)!DR^Y{Dz|MNWqOMUD45t-+l1FEYVJ>XZFj6?5UG9{lOgG?c3BIjoHwnwZbsQ^M%i*QE=;n~*g?a}Go*-~rkc0i9r$G; zJ=0Hp1e`olPvF^df$W_qLT;n*^(aM5av6utNl9bb#>>;fno4zBqv_k5$?hOx{1HStM#$)e%Z~$}t&2te3*)a*c1zoSK zbCEI$KS-g1pu@kj`?H-^Tp417q{J{--^Y0108(MekjkyFyyl@A>JMSAV@TrPmLrof zho$jacE|LbD^O>DeM?_%PGN|eISR$dB$>>V8k_p50$9z`D#py}aQgaTM!aJXb2&@I$lc=X z2d29Em(Hb8(QEDYL+1xDo2DjGiha&;iFyA2htS0uGBP^`s6YUR`AHdWW<+{o`9c zG_%_MpdD-=S+cG(J1~61+w4Wy1i#e29RNMM`)T!EW*_MG@~sQ9&#L1?&Wtd_if$A+ z9HrAG^Q4n;Q6Eo=Zf+*hq+8HyNHQreZuejPFFX(~e8_Ohg0GM4IW=qKXzL&jHQ-=<+f z<&NKtG3AV;hAG3{0A0d2OHEeDPS(I|U4Cldw8(a}@6&EoXm72*Mn%DQHRX#B@SbhV z+(e6ggB2oV-p{B2Pw*rg)iDqWB^UtpAdc$ztZVz=|7MMv(p+6%Q{ib`@H$b&hv|iG zboBbSKWs_OIT&Pm4hrW{i5uor0;M&{WL5bJ4s2$wz}8DG+~8anpuUBbxyBPb&Dfh$ zOjK$9L=M?idZd{#bNbbwlV;>ONyP>wS z_H}tD8b_*OUT^c(f=wt`*5|hlfH0Jw{GHF&il2EB-~hOw)|>D#y_@GJjn74mDoU25 z^9=JRj#3)QQ*GE~*{B_`Ew(#LC{;$Cd|2e0oo z93Y}9>Q|1*<|^&xE)A}uF|)WNM3}2>j+46#uPO}rAJ4V6wekh$CZEzf$xZhuEN5eQ zVPwD~BFjlhl2;NWJ=s1s(&tl15{P`!@4mm2lCK_5mP|%SX+mJ>o>vN|?<|Y?KRF-y zx$!CwuMbZ$=z7k0yCE(}q8Frp)O6-5w=-UpAQ^fgrB=}d|5~{#kph+eVkF*D#-^{C zN~o7wR)HMYBRxN79t<|SsTxIFOf7n#R%mAzsTO9bc1wc}%3h!Ed=9;QepssxPD{TS zjl0k@9UJz3-$Fd64uj?FSEMw z;ZtD1Kw*A_e+`tWBN1&8R=09yM3^Ij)~yiOOV>5)tE*lUkyYkyTQV zR1%X^cJMx$Vv^x5`l|)mFRj95v%}XcvkXjqOO`m@EQiCQ|B6rCZD&))v69&DOw|V7 ziREL3*dn}Kf{+k_n5;4q3!B6mGqzdib|}+ZPO;Ykg#7CkK!jUAmj7pav&BUBh3%Vc zcE`l>q^b&&V9=AS`Yj_X)r5RB|n2e0gM$?J7FOC1jO*Fk4t z!S@mpAOG!L`LmwTDWGgJk|+IjCm3j6Ot^9zHE>$$mYHq{&1|c%)~WIJOXEWJ=%;Pd z-;fXxb5}lnpW39F!u`wPQ_oI)@%_!gKldxmBh_uYyX1xBOnD^vS{kR*cEDz^v(#u4 zfFB9|cta#f#7&~pJMRw5n$F^y{t1bXU-CYIjjxh6TxKlxDa-(4kV@z7Tu~4SB4FhY zvu)<}NokwKc|B+5dn&j0Z~ptF`OqE&=t#;XIdXp!p{CG|wl*iK@42_TjKb6cttEgO z(!k35vkOrMjgpwkS&C8ce4&j^HhP&(S*7C4Y=O1S%&e5(iotS5u(r+Si<34CGBit5q9i6T>V>-_?3u!p*DF2d{%UvBzSci5!ha_leUp zB-~G1ZdU-VjknT9 zy?!)#c>4Zb>i6v@B`Z?x{rd{__T!E>c9cvjfC0q)62A zu`WWX@~OM~zg+P$tX>9tIvq?a+giMd=rkl5IC&k(3ybA|Zc#tq#zcDUT=k=@tY$wiL%o96lBn^49x4Xg) zE?2(c){&*)-C^oBO_l$>o&NJU;+sZ`F^)VL-T6}!N_40kp*p8nJfo#sJx4v00gKIBqQ)`php zDZn|8H|?%-UBF#xzToMz)e(vn2VF;>iTl&eMb`#+8%DE0{C3k3V9|jo}(35XI$PK}(`DRL_nL^Rn zjdIm-IQit(#$; zTfSV%5Ub@w<p(c~&5n8*cI%gr=@o!iR%A6su3)&{q<3)i8vh2rjR#a+^( z#U(hD6oR`uq@{R~;ufGlarffI-QC?KxP(AXy7#-k?|IKY>(9E#mGEO`&8%7X+%uDc z6~U|>({H?I+EFzfyo1!c;v3hF9DhI$-DiERj-J3J{n6&-zu@6VC)zqRPdkaUv5Eb* zH0HJ+7K*%fv@e$)uVq|M0)5>luh>1!W}=WimoU(s#PS=Syd~a&-Xo&E3{rE#ro7k@ zZFA+j?JdtM`=P64-=P_fk!Hhyz=w6x@RO0i495Udi%cQxiuU{ zblE7{pgGa_vtg%net9871RiUc^9fSl|C5LPKW7KEuhM*o`0xSGIX5c_M<|!fI;;gp zaQ$|87_GDvauSw+mg`Rw;WU1x4&4bTYu9D2^QgAx4Kp@^-&e%1jCf)D{;cJ%hnTGB`` zw#W!dO9A=h#!OyX?%6V9La>}|I zx35!!K*Awr)OjSGCJS@ak2nmzDRPBt`DA=1Yj&k`>%OhiI6hj-BDA5eYu1Io8VzYw zTt=^)532(&l_qo>oH(OdQfKWerzhF!G3D$4Sj~K0bh}+<_GJ7 z`Z=M3w)h1DV>@@<1+v=Dj(*uyR66RT#&rP+N|@{!YK_kD%y6R2j8eG1JEdz(>R5 zjju9W$Am#G@SFPN_zvBzF}ymbWKz(6E_jiy@7qL^UIM7^qzfoYE0_LJJrG)rne%K@ z!<}vjSE20v9t|QpH@;_lfQHy~jrk#ZfHJnFmbiYIq4mJ55v@;GPEzUvo~6wCTjhkm z;#w^;AbQh3jKz!@`v8D4l^!))17S^LDqjo~YwEp?Tw!UX%7aDw8OZiE$_8t@`l|t8 zX_|F|>2!6f8KHrD{jJzsda8MR?e{15R!7=hEcP`=Dr^D4bcbU6rm9*;2J|z`0 zWN=V-+*g9J1e|K!EdbZq9~(C1Soh_xY^jyp)-=CLKh|~8@OlLv4CS4d#rTgN|L%y; z=!P{7umO$vRpg}Rr41aAh6TynXd7`ahECOHQE3>z6m}vFV>oizVpD zY9|VHAjjvqz>&qtlA@MkkODxZUQylq=Ta->GDWH)(tg*PC*5!V(5e-y-K<|L${>QS z6Zf)3g);-+vG&Lr#_Z=M`-zJGG`-#ARblJGRXQ60vrd|TM5n}J_9Jp%Ois$j90Pe4 zPi<6e`~~=h-qw{SngdGTA;d~8Ov^4RJB)A`b#jt8x%Q&kR{vF-g8-GgpQAdjJ@5ZT zU1P3~e5&7YOmTG6Bdz6oZUsLsKGxNnsB!_q()7Iu;C|i<0xhZT_lt|EW;-jKJI!ej zyCmxd<+!be`ssrmJtUm8Gy~{x9xfy>nDUSV8F+xk2=+hvsxe&*<>x_}y-%b#4D-ZS6p@rdZI0&QlK)a*ctbmbSWFHMU*V{CVs;CWX#A zsR|gvX|<7C+oSghLF@Id^q}R6wH|MG8^MVsDlAILaP?nZbbG~YSjN8`##};xgG{*r zA)WqXG0(mqs?gv`MWiF~uvvg(9nVngmnJMTm!5I-4q zh0r3n>@P@$e2t(q_Dkk(Nww*1DljdrCW?FIqg4&0h|qE7FTT?XQ@z3{6Rpa_N6D+Q zbK>+9tT~?ReTJUJDspGt>Y{6S_H=V)zn-Z!sPvtE#PvD*g`rs%`q+DPJw#SCm1=m;m4-5PhsoF~b$RzBHX_}`8whz1l$2)Lm zwQ^5Ub^J35|82pE-P{&Z@QraZecNLRm?yB@2>V(@qCNDoq}nYmMMPfl=pC@AV^Q74 zmcaDYzG>Za^68&TIF+e-&}lR657|XOhwXeDdz+T*EM0U(ptYa6ZpkB)kJ7E(0WF_b zSeLi|-eg1isUmt$wMuQ}D;Z$ZmDtUu+w=K4w%P}a zWY-<;^I;n2>?Ja%B>l8){@|QGBkzH9q*sNjb>?l2v2$9-;&Jtnqw>PtpB>DH{j23f zd1ZG|0Jp=(4#)850M8`VQ0&2Si%l>dHY~N1C7T7zl2b^8@eA^l@1eY3Fq@22?L~OL z- zIp!9f27#D8;=YsaiDs)HN^`Bz@JGt-3VT?AN?&^qL7jHUw6k76b$|r?7t@%sGZ}vh z@?R1}kjrqWo}Rro`psyFM6BIeH4tiMBwcGDn+lg3i@ackd!Gyz8b3S3(z3~^h=*`a z^OhHiBA4_QynD`V0eUVg)%FY9hJX(E6svQqSKwaI9MB#Lbl3oGLNM&0X^;shv%pBQ z%el?L5RbXt@HRocGrpu(_R<+9j@k-K}{6P@vwY`ZW6OPxQ6JF_z?4h*hWaVF}=;3SDH7R%3nk zY*W!J4qL4qYi)~FosDbKibK*j<$?5=y*q6`yNn(9(-95;c46oRA5+CdfRRMLzh?lq z^u+~r)()B^T(+On>=|(el?*mM?bnc-Dl6kVX{k`7d#fi9tLLltd$O!#C-?>!q~3$8h!#fsw3ve6}dmX^-R^PfCX{$D?|CWjZWS72c0`}h!Ma0c=sVPMd4Ano`=9|*B|oOs(`eF9SKJl z)FirEc36vqLpqb3&9_0zaBw_zdwEOA;;ccmDovIwkxck#Cy8+}0mM&*>d9Y{wom_F znQ>AsU?o&-Pt|9^J`!0oc_+h$tmP9U2~3NDU+ZS$-?- z#O9d3Vv(5X7%r4Wb}ID{%=zXtseheCnq@7-fo2#v5T4di!87)Bj7R@;;bFOlV6vpa z%zA8V!Ov>J(8AhjUiedja$dnuJRwUBZ&^8Cybej4=cO_*dthfy5fgeyy0@B_`Xq!gPRuKqLg-N(Os z%iX`d4=)ISYF5)?n|8c&U9%t4ROwF$i@unWoHJFAOf~iLj7f~TjK*t)?osxg^;F%< zH(*6vjw^`zgl9w){bYXdNZGLox^qbo5M9nQiMLM1!cLW~hew~R=b>fTe5VWHn1`dbOH3RGJuIRYY891`^*Yz)@v=+dwP?|{f>LjaX@eRHhT3K|R zY0%zbhp(C2H?Sa4k$5K+=fSmI?YtP$u-SYpmT{Z7#6Fx~z8Q|CD?0DK11?K{K6Q_3 zIj7rjGz$lxy2V=tbP;O`(sx_y2+y}Z{Pj5hv%aV_OWmLmr$Nfmuc_R`5gn+?#kI=r za-xfGLgRuTLZXwnd7Ub`D$T)%b<(m=Ru=aftQO96?e7QmKo+)+de^@P8=;;%9RSwz zZ}ihL!S%~VRt|b8Y191XAM%{x>FbE?tz3au&LEBoUQwOVdSkstuvhBNyjbc(-oa4M zvQQH(3zjO)_s8NgvN#o{ycN2SzI>O<68M3g{UOAP7CkNQbYN+>P5AN(G@$)JBkZR{ zH&9~cr5luyhvuR8<=1VF%ZfvgJ>3AI(sjQag=lw2&#jL9bA?L<%k-}kBA9 zUDQZ0eZ^LKr2D(x{Gl6Mr+K-ewFIySt{kPpk7pM}>=j1HYnHxSc_-NHe=FMQ@ zDT#){+$2WoFeai@137hbJ&4W|s&4kah21OdS*ys!4*X)nlE13Dzz}bVQOWNle$WXs z=Un26+ap%K?u=QofCe+(dFVY?!Tp+%=`!-Z0gz&tnd{-GE;MlU6Y>5+Aqoq*yEU7g zwy)na#p8His}UH(wC0rcDVYc>-%)8>if@|NgqIh$kCF>r5mbxg{0f)c?*Z>2Gb{WA z>oxjc5B(6RdN1@SQv*1+>R4aDm!`yVaqrM|tbCd{e|j&Gr7~=h2NcgO+|yNEsLS7<+MC~% zqu^Lyb*WC(<&OC12=SxHKK&*iuqy`t=BI6Yy{^ShXuRpz*w98rR`^tWOQF;%5H?!mZF0}=$>*r9PlRaCxV7a`*d*rrVD}0`!P|~LP zTq&paMPAOZ5%wBoaLt_V=x&PP&Y(RTKOf;vjj$~_YcA{^(&=vAJ}{kic?G^W$KzeI zE2oIJ@vCVpYQrZOb2kz5PZ#6ZZ4WxKH%@^>5@$^ed(lPSvr?($V5UF*fDcG7hjB9b zD2?d7&|~@uLY1q?U!K9-%}I)1|Xp(kR`Q3RXDo*QO~i3R|9&Muk$S^7+=;?l+dyUf1p~OHVa_&p6i8 zfY=?0>{>vL>C!`-N<&xZyGJdMPX8n_JUpit-Y07IBLWBDc3yA?**dc1ZhrPRqL8Zp~Fcbb*Xa3XnBYG$bI|BX|q=FJVl;e zsR)CFBLG4|mcY<_m{1p145`+46GnOagl|`frK>$#>(;T`!;$Mr+ub9qi2M$`u9qK@ z)WLL79-wzQ#s*l>6tvZ>*xoVD+%mctLt_J~Eo}U>$Ub|wz9K_e0sCJ(khbm@9${EJ z9yxu>Itd)><6U&|U#InXa;(I7QC*5JR zq%e))xT_vzrb|la8QD1%L1 z__gLbTNe2O)f>Kwo;S*Xy9|B8KSw(fT!y@LW6Ebg=;zc0TLH?t zCq&9}uf0*46nC{T)LcQ#r{}1+-`}|RgdGfPkcBk~hbx06Iz=>+Z=h#FSPD>_v3sTekTJrZ{<2Q$=ux@6Czw*3lcuDZsJc>MPqw z-JxrJ64;3KJARmxF4k|U8}l-rvX1D5!(MB)3f@vS3nuKf3@=&)?qtzyQ!^(Ft1CB6 zd7vf6zcgmfTLCbm=Q{FGM|mJrc|Yg?f`TQux}|9GLhYoWqvvy!f_zwiqW<82tQ+|V`hRb?x_7VBc2TO{%%6AX-j5L7TY{a2alXpm3wA7(& z>xa@Z0+ucoNf!EN#I_K+e&eJr>?w_YPNior=Rlo)%gwJK7)Z_}c65~B5UihNfNFzW z1lbY=V?94Y&G8kbiD(Be%n8(l7x~od&Nty8O8A&F8q9n9kM9Usb6u^qqY~^%Hgcp@ zRcwL}qHv9vUlzIWYPgFW63fCG&rPTI(!6G$cQ}kxTWQCtEA%4JbZ1}mxhOTqTDeBF znT}929H255jc9%%U!qv?4mhGBilZK&KrZgx!Cm$5oeNgsGn4;R=}86d8l@LC!uf$r zTnWm+D1(|;H`XIbBPh=o&w6-cw|AsuE`Wcn;b)%VY^LCdf=>!O>kEb~=YUosI#zSq z#`9Z)*3O&!LQV&t5>O8BMdIK4woX5VZ2CvXyt>W28t;~7W5KeiSh=y;wIpZ})>3ir zj^#?}2X^=^k{e_yqbZ>g!IWgBfq1@*I!iYqERP7O8M;Xw9P@Fq^P{^mpBV+fgL|jn z=@D<9gG_*wrm=|e8@{K+MI$+$VCHzi67CdTNB#*w(q25z67NC>1KgvQ(6nL0@;Dj~ zL{~t=U8+u87a3V%0&b@3i(t6HKM>xVCd9MnfrBYgwSmi^5~I?5MG(*1wsnJWzxWnA zrU3bneiCUGo_2sSKhf4s9^`(@_w&w7i&VsT`rq63PfrN($RnH%g|3O@S4WRVqMqZI z7zj>){HX@{0u?0pD`Lk>X`}0e(IB|O+6xZb1?1)ws3*ofDI-fQ`L(Uc@tj*0V#1(j z00hvzn(yP&S1I+p?@X~}>^B6gExRoit(=xH_Jc%fye{faG739=Pg^~$mKO3TOGNIZ zP7ZUg+IFy{3=h5s4zmQ)GgunrtP?Y=cmFtiRdM!e&B*T29Jwkc88Pwha#jHam_lNvFQ)vv4#_W~3? zK7Hv8g|TaPfdc{HvC5}By7U-XEJi7U_GKLi#3aR|KhjbF2J9VfQxapm&?E|DgE5YM zg#lIQ5$P(2tMeV{;Q*<{2U8nF3Qr$ay7Fna`b_0T&FNsxP9;lFWs_4vs`5!W83!fI zQviXhjPaULQ@-z@@3%aEcTacRga%gsSs_xlWVudrp`6qmnj7FyNc~PhQIiSPd1<(1 z_j^##C0{^332otNebQT*@N3J~y6-wPx01^xWApKUjpMgR8Vu8-Gd)=*IgCg~apHH@ zX@0jXZ_rQi3VLEJV}l7w)zboxkYtarS3(s3u%dl~MegX)|a8@o;DI^-M ze0dPQw0K^mi*?)1u;|r>Z)DN8tAW&`=^uX)W__}RTJ?p}_~+j8CFJzmKL#c@Ij2NA zKbHw7mMk0DmZzp(z+7hMKi#I$Pfx2Wl=HThxOAtV6=7*EE#1qmoZjoBZRD8-@v=Mt zU=VzG5>OzMBwxVr-%Lu;^WuVIo8_Ipw7S)=i=w4Li*R!uwX<{7LuKNwi`i!H zRwsRn%#IDY>S!G{mJ_wo1#g@V2h)EO#1q90_^}h@#TmrQKulrm}64;^9&`d*QPJBlKte6=`L7(qXP=BD7ryj@{QNm^Ap~3 zpg62Pba1FzAU7={R?uGZLZ!2sBf?SBg%e0bVI(Mng7tX1d7A2&M39sbSMUCEhW|*v z#Y(Wqu@ws&vjlh8+9ar~VT^ZzYG_UtV+C_L;W$|IK6%-9Mm%Rm9u zIiNeaT`eiyBBB=H4X)Qtrv$%j~x;PySH zdHAJ_uK7}v2$dKA{c$fir{6QqL3gVY9l6UILNt>{ZyXrct=Y5_ceNl^dGKb7RmIw~ zb+qz{{5XkFAE`oV$gda1dlY(4Fi8DXJ9lZt(t`N zO)yba+j7bI8s)p`54-=W{r}P$MOLc3>5e_Db6wNbGz(ZVDSd168{i-|>gz(OBIKf{+CqedM=m1`H_eG=|lBY<)4pz*WN05 z=SPEi30{L$f3_5dx;uV9i5j#>s$jw=rXE`jKS3%y1cxHg3H}vlHgRlR;+hvSjXhCY z7xjDCdp^ln!GseuOY>p$zJ^K&?3J0O5&%qF-XpeTR{Rlp(p z)Mt~^s#yGLvzdD2P22c@ei&Pcn{^dR$mP6vscrKoL!QOkN#g*B-qChK#?I7=!0pf!5`Xa`_Nhp^;233?Lj>+GOQup|IeMKOGT>>X zLi9%*Au3voXN;SVe-rJYv8*dHC`v+6IanG&rtZ(Z&;rG3tn3s5;AYk74XbZqRp{aw zP0F2)Ab6@^lJDDw&naC7O*>#qPb)d$Q&6R-RS>8Ty_1K9Ci&}{4Q#ZtvMsbI*jXz| z(EyhemcVmwRSQa8m92tgE?qTMS~Xs*8;*5zU0Y+X1GzU)t_%?8 zfz!NRI6}p_BF8b=_D&_QrQvvbduGuW4Ma>V_{*tNI+i-i5|3K`Em#NIVID`~D~j_x zZwn>7G>`yOhZG<(`G&CF07=*<2B7O(Rr9D}*J@SR83yzs1{{ay-M0 zNHJ}OXK0SMuXIw_X@1+;bxfA-TICpgDfimubNA#6-wjTDu}(qU<`DFmR$8tZ)wnQe zMykPwEacyb0{_=Kk!yd)TdKm__m=ULPXb@jB<$@(zDr7m)m9^DG`*#D;WiL8^u-lR z(H-?{s3mtzsXy)oLC>}>zm67Mg+ggm3bvUysCqG$p$w=7m&^5I6 z*Y0!c;TfQ{T>hv|#b2r}uUnK`)-fl}XC47P{}Ffo*{5Cd^mQF{T|4HfRTzjARG{d~ zdzJGhdc7`g<$A)`NSFy6^yB08?kfxhHmmSm{eX&xHj69C3;Y*c*#g+>mECmlEFoc| zZ~r&l>ED9%!QtW}?m?d&1t_%}g{Vio4K(iL;~$U0vish8dh(|%fx^vT*@VNwAb#cS zM~QDv$%N^GXCe&hI&AU*5P1we`Lk5=X|JBi zx)~qOo(6sQrl#%pGY3WmiJ8>HFBvsjnVa)1h}$*gdHvsZ1z>~WgtSsVX@8PEAH8FN zKb9k!2w(G&DIyPUuE- z5<&cr;xYk^*XY^ho&VQSME!YVVw5$7*#%W=ukRL;=k4J<0~88IlvX&)#;=~6XE?f* z-5-nJ4Qe&gSC5nVjFRbD9yiggxO}&I6G&`m3@vD z+AZfxRJLVKMmf$SrsUJ<>=nBQrLpvBrJfPD?mntK$BH*04$>T96+}b0Idsa=gXIh_ zFx2Feg6b88{I>y*3^XpDssq?AziDL~6w@R*-Iq(_Xm1!qI`Z{9#8oDBYlKdGkc#Y4 z?Qmot{ppL;z36&lGOm}fl^6R|kmINFh0MeNT8yY<;w^2W)<^J6)}|{P&mV>cOJ(9T z)u5_=hcK*9S_O&R{BKpxdenVR*;-xB398SOuGYnuog+ivyp0H^1NSDj|L#v>vKqwc z?5^e@t_TSTrkVe&LrjzqB(s?xfYx1!s3sl^a2pq>5P9&{Zy@<^?EKN$0%f$lJ zr8RQOqHj4`14eNOYdlOXbpa*aoXa~WQBpN9vSh6}a?-sL9Q6J^)QC~SK47C1c&j80 z{3c!d^W(!NKj9AF!q8ADA_0FwPr;lwaj+P2QrM6OTbM9#Eq32gEe37G^pbIH1Znp3 z$)f{_qPSSNiaGs%V?SiRHY$C8gNimI(2)-JKTS!dq6~ex+ThUxj^Wl^rJYFxU^?aB zznt)P*c5k#@L@v1R_@tbWtpjUROepMtsWtK5B0!=t?xN;SoEIl8;CK-uc!}F)I)im zn)oLwos_c)D7nX)P*MOhBMN?WKhFZ+k8v4VLRFfro;KV`pLyUO2@d1M8`C-CnDI*J zka0=pT7_G5kO(nW;HoY24PK{#*?Y!@-w91J!o-*_p}-e3I%=1iK_C9t1mS;6`48h8 z?0YVYIPO3ve<3w#>Os@tEDs%ZugTKH>{eEg>GWq6Xe;D`-w z6_kcj1#zl%{eI69>SrjmE@dQ@lVwY&E*R=8t~h5Yg%xl*ZMT(}IU7T`0i+Byzu5|Z z)SpkqZ0Ks^$u@_paNWawdDg|<1b@!g=x_GIBPA-w!?IFa;Y?nx#i9~I$NaXQ?WX|& z)dWS)%!~zn*~U!NC=WJHEY0g?$=*lCV?@B=&yz(l_eRrjOh|TOt3wE~F!q*&Z>RPK z{u9xPR+EeS8xm3&_VEL^4*0*%txr4Ea5fZ6{hg7r<}jV(u%V>ru&0g?@yj|HcYC7c z%GF5}se>N45N2ynFu!b=zM>JgVqjbX`P1YZXqm`!?Gar7+qrG@6K+0!*b_-mf>_tr zlsd?diWlVYmR)|ZJ}C6R8YfP}^6^W&vrdcRSem(Lw-iEUu_B*75-00!;s{R;%MY-C z?iZma3TX??5cLG$j*)yUX7@=tn@Do+k?XPC8=_rXFIgKArx?cQRDZhv`w{VmbmH$C zyfW@K4y7|$Mz8icQ%T(x4;gy7A``jC{L`|r%~mNQe*xF?H+j!!z$}vrEV{!Ts4zY* zhoey6En0HtWG}j$hBAuTJgBDEQF@NF!`0}jp9_8{4*wX^u$+6{B;Rspz13QnechB* zY)uO}+>(8f!~o3Vk_o4y`EN0vgnq5>y$x3_{jAJ4Y@&=W!wD4no*}~Nvf4FK2AD;5 z3PdFk9J(8vTj+t?ey}P<;;>pSH?SCWVqkO><9f+u%*GY(Ogk{ z7VV-U+Lgy}JF3G$axkXuE1v-Bzml#JTYEk7F-CY^t+RRR_I7Z;UGD^i<<$u9)Z&j=7^Z{l>-Z9MzOfDt4KH@DLmMQ3 zOJ@bH#|OgcAh)J^VYgz<4vdRwR3_V>gj!-SnX5EP&GEUMfl(Yo0>P=Y)MZW}s+)ST zMTgpLVDr8hWVFSAU4KSey}x5a^vu*R#h|Zpy5gm^TrH^2NftP;0Ur1@Ak_z6bV5;S zbc>YFdYn<;9FQ4bJQJiGF4Z`nR+tgb#+!}?k#DAAjjfQ;kj_`1p-3vAQ1%v z!hSSU#DP7-9n&R;XDWQz$5URu;Lc|)L2s=(H! znP8SzU^Ev;j_Q-sHIb55HGeoE5jf2doKrD5U)?^w$;~(COnNjya;QC7(rP=Sg%tU; zQ2muQ;Ln`vBXRb3Ccc7ZSxjI>WH62l7j1}I1f%@3uTs|J_g?iW~ zRDzsEpYAQsni_IXs{o(!ioNId)ytJtb{>%1I{WS9X;Tl~OyKr8>%{Pk5#X=4F&R&> zsFfXS=>rxZTk* z8&55MYcK1%u8##aYWr2p31t^B)%B&%91kwQIAN9gC=^a6k6y>h%297Wti&E~2Q|Ua z)*2B(y9t`)fuQ`!DxjGS`WV@HVesJX`6_u{(-! z^3fF{-svttVGd0 z&HO;}!FXsxRB?_oH%rDl>YtRE{}CZ29vI4?JUwxq2V>sQgTB7_*xa_3DC%n}aI7az zt7Boyl%j4wf_f{HyQN$U7gGnLKz>Z&bG@`_;hE}^Vao-w=a+8!y>^&$&XU7Tp9>0% z0&_BX0UF#TU{qhw2YtzrGU0N_!4I#L4JLD!YM9WYRmt|>Is*9>Np#b=;q@U1Dq7?> zF8oB!>;QGe0-3&B;iC0#j#rCDTM$DM#I@{7g;qdM!<0h*sQL7&!psj7tl^7|;xC3w z6J{|p>MAGaDjWo$y05ZuHmSb3Ff>rDHKIG^bG#AEvBqLYE)G9 zomKzS?Io+ZEo<6s5N&JA?4-@eD#$e`2EWyMV3_!j9KHrwtl zXquP$u*GP8?e^@;+0rO8;gAb}R6b>5{b_m==Ta7T9Ga6DWs)G>Qx>VBLmTDJy5TFI z!YDpXPJ9r_;GLt<8nZT0=_5EG$vt3cCNyv{t_V=NTyr#xGyKX37;I7PN^EX}c!$7* zm4Zy;xkD?6c4z}IX?a8b-!DC5&Tg(P5^T!k2j(e&Ic?r%Edc6ql__=rTRdoRLOKl` z8v}cz7k2xP*oH(5jOS4AV5e8 z#~qdpj13%9E=6#Nd=hg&5y_NEB`gVHa({va61<)&)H&{;Yxe)Ny_M*tQ;B{Qax!v* z5l24Cji5oq?nmatMf@ra%_&J3*B;ojUbnQ)>NBlyJf0OSgW~;Rju$P7G2h(+@0s#~ z-wd%a&e=iNrpFief7Q%~gT_cftLaqs;(d1=AJsRYGWF=lPA1~Ec`9{OkNp2~WUIK6 z0T3eDETv$sCyKO!g-|h3gq!OKhu`dWy=me>)m>Pz_hGJ6&+#lUD%#|eR0I_VnWPf!uaAS25{s5MM!Z^z~>VVKf*NkXL zl}PP=#B9k3E0B^AcY4eOKze}R>{aQ5s`MGav`Bu;*HM;x8>dkQT@TIk+;Yjt)lSiu z*Tq$0kIHMv(I`vV@3DNGvfZ=i7k8}5)4zoRa2D8A90uUB_h*yATh{yq*G+|*NA1CA zv-L#k(d`ADNi_UFK0cEUB_KW`|4aV-(kdys^avT!+Snt0^X}f|5HZ$Fm=WpwH|hGH z_1lB<-MlLmgE)78#V_U^njXCs&pC+0C3{;u$j*6a?x1&NgR@R3H^9KtHYax&N1@kp zX|KH5wvLZ*!EMg=L*tQco~>+Xj%Q#!IIzGqhxvE=Vnchwfaa*KAdd&q+oP4u&Y|inQ{r&Lb3hB)n#7hgpf?MbpGMU0=-upM7GQ9X>-zL zU<`=Bs~Lq)unega?SIxsjfP{S9MbNI#~o=_`DAe;tQtTH_&K>Zan%@c73n6$9R=b- zo=UtW2K_EYC=7e8i&z|btT`ci>f(;70vL9~QaK557Nr&18Vfb8V5N*$dXTtiBd^eo z%s0=XEBzeK#}yfF>}%aMZ4^&!TJ6sCS40mCW>f*?Sfo=KO^CT3cVDK|`(qXFj5njO z$zWG!h!S!Qex80kXWx19;W*^Mc^Mh$!uz)ZFqfJMKcTs|V}h)Ly8`nTt!26c3JX8NinEq%V#bZ9aD{|z^|33IFoXY)I zNy$;i(ox%Ihmmx#yK5N0#A+xQM8$l}B3flH7;z zzi+iZIy!=#ixk6RX=Ni((851dcG5u zI?W+8(&6|8Auiz3#8lXSk4G*jYj|XOATsB_QZzvksf^Ky%Jc-u62pK_Pf-4OO%vE` zRf$D^>rhFV^Fr0>JuzWO+({`)(a^e3~-IwpPsrD_m$s<17 z$U6%Iuf3d&?g&zVpU;O6Z94$ut-f7-PIa}*!E{LsT?OC({UWMcf>$Y3%=_xjruHFc z!LCsWSsP`MH#I$N=+s9Kv3@EJMi1_QT<`3`z?QJ`!WSoM{FOliydyS=yPnzzOPD4wuq-DE0zS*HS%D`SzD~^iV zI0D|pO#$IzS2ycsXDjQy@Mbsbo-?`3cBq-GUH&8<3m0Gg;H7i|{I28;J#xBsE&W)4 zl34h{O;kKY>br*w-`~nnOIng(;w3*`+FM#|b{R+Lm>`%NjIl*xl+w~~fj2-T%V$gV zE)7H0>&50b*iUj_lk>;$_dk5@0)I1e@-CAPJIPjwj!U(Q)=Ln>w8zEdD`ioP9B{MX zT+{@MLkz$#*?c$VtW9Bn2Hd~tf|Ww_GZtYIqn)~&FuoM+c-*$xud~mgIuE9^ZB9YK zt%j_G#j%7)8TiW63gD@QR4nrhA-z9Wht9>_U+46gB)I!81@%vt?cLQ8rS#3FZwyhQ zfs>q{pP#gJ*I2eJwnQjZKcIRD4!Qi$4xs#XJ&a79pPz3{O(G#CzHJ2TWWPc-ncMHa z|u99Aq@bx6)%jcp~*%?~WV)_mzJm%h??fD!^i@ z=H;eReI6JK@i^JVJ;#h6T!umC&FUr>lw6g8RRfD!#jIDJg3lG9eVT5w z>q%Z&w;i&?X$pAyvL%{Lg?E8b>4a72v8PiYbT2-p|5t_S8Bv{Z_xBiICb2K$Pn@i% zQVydc&p(0}^}^6h;U^xH{in>aP3j2(>FW^;noJwhvA-?_>m~Y6g3STgt!tLHTbQP@ z5F4q8ew{Xh71hGexl}Ew^~6cT)DK3LhH=&i zo{?O_*oKQ(2d&FT^4&kxoUh%MM5v@`cr#IaR@{oiiO9!@=8}Gms``=#5HCON$dSA64)xuHCHfXc_T*QU4>o=M=QdKjo@yT-GT~no;m9N zfVe%!A`|?=rCj|P4p|`m-{WTjZ z%4eTY3^5XxTKDs8TXHuP?Gw)_#6|VnfS$HZDJWq^$4h$D+u7oLfd2Eb=%!t7!!dlYtH@_gA1h_~zmUBY zdjI~X`iCyuS4>%#kEA0PQ)2@H?$F;-1uV{4M_&8x0MMig%|da|UycMjD!I9vEhlqr zl%H?j#Sg0%e3kRZdB6^h%A;uaczHeZc>WdrzU0(s6#OF*E`7lV6Z57+)wCqgur2$g zPvyv+R;K;eSocG!5qq5U*;SGUzbP?RF8L6E8WI4mSYr^%zD zXXCd1GLht;e(ESn9UjcNkJCqN2P2$9hKeSfB#QC)#R8h`8>AE0I8C}qs>pH`8<{7v zMxe_Atm+xITwA(Bw`bsLY5~1OeEf8?sXSpCb@L0As-*F}AoD>A=rt@atW{pn>9az- z2BSO$%}d1sObOqBdS;Z#9))O$D@qdK()BUQZBhImvfeT-%C2i4_Oj6n5s)q=qyz+{ zVMa;Gkr0#=k!}!>90Td@9_a?@2BmxG4rytap$3MTcXM6OeLw!6_x$1)f6RHVz4lti zI@YoFuFQ_G5?emIUuE*sCA-id#dS3@kJnNUuE#Wk<32y+`1w6)v#fR4-B9XPX`MUY zILqt5^`C#%XGxC4*bvNxVQez-<5-`a{hePQ4D3D+IQ_L=66Ve9Dz&sJxiKbI)j z(f83W_eaKh6#mJPH8uov8sA4UFBExLQh`bd@b$Hv!Gn8Nu;eSxSc;0e4{Ob zqhxA3Gi_S&MD*b(e^(zf1DVW*Nx5c*0`Yy7S`DFDu!X+K=n^b2yng!hM|vnkTSq5f z?;3^y2n)F+Ew4U=I&X}aqn5kK$jF)=J^1p+ZL7LnaR=vIAGYguv&)cJGxBShj0+qX zpD%OuL>%*OS?^b^+bVIB!$s33>xruaVn)i7cglus`UA#Hl{X{Fa@Cumf{u-CaWvMQ zAw$N}hqH#GyMEiTg6MW7OX)F)i14KCS*u@F4yPb6Zy*#4?`Otut z{HqAoM@0|ct0;FCOofRMrrxek?eV4$tS*vo+}S@gbmVmFgOCYUJ$%wnlhEtSMeNj5 zgFh}#IMYg2P{~D#DRYRo_SkFex%t27iAs34fqBl{%T+?H>R?Z@7I`u@hq#DfuuUI0 zwVq?2z_Vx1cH&0u^< zy_=Lgl1-4VQ8+LdcU^5~l%FN6B`|5X7qW}%o9iPmjR}R^b9YRYVC)$(t;@6xkcqVs z5Vl_R&}otkWQVFD=rUcj3115uWsN48`*(h)98P!2)%4U3V&|_ks4RrrEPup~x5s!S zdzc+(shb{+DvF0or#*!GF^2{aL}0I7DrfMPza06Ydl})ZA0_=PO+Z{?CryO)>!Hlf zwP_0ke!2JiOV%4)V(IP`jdGdauGf8_`DJC5dE)?RuZ;1EZsbmubR=C(MTy9f zxca*>JCF3K_542j`q@Z*J8qP9_m%dXP)Vtxhvyrt{5(78&A?6}T;tte-DbKe{&{3lV&Iiu$IptptltJ z#L2HOFJHb?z`q`vxd{}B;LrT~*tMl891^yZ4zliDR#mXesdyCS&-+XnclW3%8qUTN zbyI1%+6~qvR6(<*S-&rBj@7F(QgXc`C0hWBoGK=TSn6D40N-xVPL+;V&=b-0U@Ac= ziy+=M`f!U~gpEL^?55hI+P~{~p_K;vy*h!WgmZ^Kdv4rsvG_2HOg0C;3d@LyhyjjM5AC7!&8~xg6`CDXsm@{NE`l%aB>GyZ!5xupn5k+WB z5!zF4&AqPg*qiyJnWQF6+V=RW%dz+A_vHjj3JpE6rp9Ak+g*{yIY-a&c8nxRHFuXs zC!_6dCgB&&I#y4vN61*UQ2#@Hm9%<3ePBVe9;`3?@|7#aHLD3r9iesbtlHXIqYiKa z$Z8|HUyP^mWRcEghM1b#?dRQa@&&)3pp3jM6swl}iJan+ICigvJGKW|6k`xQ?zGtI z|K$czx0uIlt&_aGJp62Wey1MY@8{?D>(?9C2hje@0u}8aKYlbH&a$Uv-Nl>i5dNXK z`4!OCUwO`$#O5dcP3cXv>Xc7Md~d@p4cu=cr&C6jmIrjzyL<7}r zdwaWG*Y|;ukC#pmq|M@apr9y|GG@3>W;nQJ_<%~)=Y1XTtf4|EuW9Q+&v$C|^i!Lv z-+XU-zn0ldL67@q38Y-C{Uki>6r*=Dw5;xqehV*s=qh<~<6E-f277z)+>yrcB zWkQ4g`MtaecgQ+fM{dIpix!eu34@iE*biqsPDGyLq-8Hp-Z5~BZ#z0VkvOp@-vAKl z8yA`ZH|W3=9UTpIDN$m<)5+hHk$mptbU0S1bAyQ9<0sa?zI|u5jzQS&X-Y{hwri9W z7cOx$VMOtFQIY{$?*8D410BTU6{HafIkQ^pPfk?F$Zgh>-@8|CG0LIwzZY?SbpDu& zh~>!iScYo6=-zssHnr@NQ*z&V&ewO!eYD^%tkq2$E?L)~Q^~~!iA78I zR;?qYf;yW|Ywav4Ka1-Sr=c$9F>&^v>2ePpBr94sSlX+OAb=?U7`O<<4nI>~(s=o@ zqO;ZmGQZpvdF9F#9!lwWL2K#Kx25y|qb}CqC zjt$Aka2eV+{{Mhmt;bneRyQA{MO3IJco1j3zj9`uOPBTaGbO1^=x+&m*xJ6qL%Mj0 zCw8oiVQ$zZISzHy#ikPh8(Y?mAW# z{3rKDnsf&7U4G=_}1MGps0^QZapTMncOIPLq{;j}jrXCQ2m< zd|X+Q9ern-Dicj23s1W!vMoa0kec*r&Cnnw1)Llq-VDQV$&9F+?Ey0C6slp(m4k~? zmtSU?se_i1Bh z4&N0-((zRZTJ6LSxW0T~FEG1AQ~U5llr=z)#Jq}mOho=~rNzsnHNP-#V};4ZLvJUI z53o08IS$3|+*UabD6U?J=7)O}+Ms;rjHkZ_8MS5>Ovt^aGvcnGx{#%m8^(%YnF8Lv zejPt)b<{MpSyWe)k+IBSdzNV)z86|~)fIl~(HLvsRbx3`&joS}Gh_yaMQV*T5AzZCvv0#>a(oAZq>_pG^tS;f;R%HjUk zS&OecV;Yd;bvEunynQy^X2`?U$0!?pMs=e9z+9480Y!B^WQ6vG!*XM8_f2P;xktZ12aa z8Yrl@Ix7PcZ6G` zLX%`91`K>n510q(B9;l|SKXNdXGy+t?|Y0(H=ap8OQ~f+=`Gdt@6Ub16#dHZ;l54d z_NbtVyHOjj&?d!cX=;n|R8tB--Yw?4oMHqCx7QH)3pB-_(m0E>K=~y7?%#B-n}vVK zQqNY=sj`td$(91M5MCeGFc|cjfgQHA#Hho8*7pzVmKz4Cv#RFSJ&V42mr3D_&RBHX zA}|-+&x`Ne%@O;#JHI>?qk$>5XTd+Q_RNLVwv<~sx2C*m77}|dv@K+!w7C|9gJU)yorPM7ymtBKQ;g2fQ=};PP#KE)NmeqTFY`;%ZipD4@kY;re7S;Kz>Vt z#N(&q>@2CrI5%ShMdbH)2FD+?Vy|l1Mbx1sZO3IKf9FdgFiz+C?C_2Ash2e#W9-ho zGQycxsO;4@)M3Ge4K2W*f2HZJ?uCxM7UAbt*Dt{TXdlW{96ZWzVY!KazM&ci@jShD z20vUMHr<_T_%mG4WR;KX=eEIfq(_&D!W)~8y#%pR@ex?nhbv50pOQp=^%^|1;)qt6{h)sBjvzUpVDE)IOxr5g~mpgXTT-x?`wn?>UV8~n! zRh#!E$*aUi^s6u$q1HcUM`bIe2y@s=qtsTzb6{yGb46Tb+NW(E)A=2i{L+(&zL{1+ ztic?q4LlLML1^KYyb%*1^k}hI8RgwJ>dR8?#^UbIz320=&YfA{y|VKSp1o^4cWWPI z7#2t10(HMoXi0nO_-A!GRq&E2~LBY7*aCVdG`KP#C2=s0U}JX8&pZm>96({)0iBcKPm zD7mg*IrGGyQ1oh=zvoKov9nEdN{v;*-AOc=JbnT(y?oKa2P&3`-K|=>J4QY&QDjEW zQ++ClBE!_-h5{m7K9}>09zPU^%OZ5^AT4jFOzK#iR(BmKAf@ip-AjjZmd~ZGEJ=_o zP!bcUj^)XQqJM|+vFKHFC4S5WOBdc2y;8e&5Dn6mCgJ|=LuiUx!2fJBUrgVQOFc)-J`zw zPZ_lR)A$bFj4jisJ!rpdD1=UI&Jihb6aT*Y$pS-~g1r3tP-dWqN20b9Aa@9bW_~%> zo%0a>dl?DvbTCAy#_L~;{0h&&6X0|3Sr#yQ=gLc=Sa0SJxplI_ajM5JXG&ID6c=}A zj04$9shvfFSW0}-C_Q5YJS>AC0%LJxmJaQ4rB+#g=d;hgRj8mWd*pLD(JNM}%2D$} zigGMOuc^(;Qekl~*|zDu@LHsUfl~u>HOpX&U#M#MP+2aM0G8?QN`F&MCBfy7&QBqI ze%|&9G7J?(v8Rz<+iO!(<+Elo*G+1_!-CiH?ks~*s%l(jl&@5tiaCu(2VW@nF@sy*7)lz@_M8hjm1M} zkY8Dz!+Q%h$WLx_9aof>E78Wn!r2?n zP4bdhG6jxvh0>6GI|axB`~S0MPBi>?%^s1&I9d@CLGn;d{!KTbt7_k0@^hjkdA(KO zkZjhmFSl{89`9Dkgy2}5jY^aa-VLuzAG{W9P&+cs5;64=>9FZ7|E->WD3*4hlTJvb zY4j|pDl=uL5JVFCdDZ ziZLO~rBxTD{aM$VFW@rCUuldimx-@oh=`;0zf4K{-S-n`CHdJQUFEj381Lcs!e;$( zp-WtBb~Lw|wiHU`);#Uv94Cq;>nzI}b#DE|_T)z6&-{(+j|zX6?E$q83x1g8C*3_* zE$j1fo-nVn&l2e9>U!^Kw{G|DHM00vKiZWKs&_xQHlRf9XaK|VE!eVf4_WZK3|o9W zWm#-}VNPuY(7ggZ;qxuoNq~@LRB_X+))o)`2&zA#6$tTniyfMh+2>1kTc8_-uI{iyFN|Mjh4-so5Fuc>;L6`lgBmuqY*i7Xu2 zl4LoYEq6FeKY3hd?%Cu&lsOf2?T%yDBgerRKaW6&u>zvl^qlw5NX~p8F0oQK%eeM7 z!k3r9`18~!C1o07`I=+o2SyC#Mee$$?f_xrv9FK76Gt%|lwlYoL(T2+TrZGW`m4BFnGhh55J$5POu z!E|pUfF>4EZTPdx2HjoPTS$~5<<=j2%4Gs~_3i6TOSD|456RCaj1VVCT2AjC$Z@;e z+65Zo|5!D&&jdYer{If7PIs&{Nfe5rwq`bSeP{06(b(Wi(%Yu9NxWz+4FBnFWulAB zCYrIOEbWj=Q(Ze~QiMP4{#cahu&MO%EIC!9vD?WiTLU?cJ;j_mjxO9f@VWbBy@0v& zPL-lcO7F^Mk1(TKyxN@H3z}ed8NWC;bp%PC;Ppk&lQ9#D8!`&x_(cB@VJaP-lI%ya zO3Y4{)2W)-90~&$rb9U*wUWgne#f+4U%6eO5a-bdP_hz997wJzw5Ujp``-D7_Hq^{ z_3F)8Qj0h0TED6oj2xX3&>&~dcb9xzeNX#E>}NS&uAbygQ@jlFta@u7!a1%Sf=-gN zdV@k;L#RbPzZb=y;c+J_0ZV5G0;3tJHYXOn90@xmugEg<+wQ1S9Rp=sx?CvZAIZv^WQm1qx&>I)kEGGig5Zw+yOfK&7O$nq)8~31EZ1CC z3?9ujVFz_PKHihV)5@OOvV@McXZPnN7Uzfx~h&i00X5`bQ)QL^qOZPa80(mDwnf?WxC&=$sbHI^^`R$8;))5~ zsr3vlwU``wX46$yv*PRVw&I6=FZNQ^<238$J-MnSN=#*W|46@bDy$F#Kuh&POlUu3HAN2{PooR=g3=8Z*#rI5p3v>9)oTe+gFdMn|FC&QT9=%H}~%j z7Ai-5h&BsFUC(2_Ho5`zR#Ujir0_mmURp!@GrQi;5B|4Mx!&C{yO&Ad$7LYU7rQ6# zcF!HF=J_4ZY>g_3Le8Bhl8~%C=cseKy3kQK3kk^FT57%TEtG<*LUct>%hMGGz%Nu5 zy=;b}E`Ry_8LNeJJzdXEOrZOxH--y8R(t;3PjfjtH<^loVP4~|BH*+xGW|bKk(tF8 zuCF9}#D3!Jg^qsABwcdM6vp%{Sf)IDQFO?%hOLg{o~PV1)c5!K=J}({(AC$ym>92` zLE_2q_JiDo>Gb!nom=`TrJe=-q%wM5kyts+)L0g;Uf3?4pZde5(~hz+5j~B~Xo@K+ z)7+ZZ=iIlE{lKWI>dz>DIh}EZVE;uke_r%ulIUA9AR3i3Db)~WoHJHN^sBP6e8`b? z%b~u;te|%vv-LxofvkS*Ax1~F>x_-Hs0?jc!jL%^>OgLYS`X~9UHZ^&Y27v={$T&s z+h|y?1emNLoP_nh#(z6MpNHvS&ftwlu@odJ-+8oaaCPT$c^vsO5QN&t=iib-G0QBS zWuz=Gyr(ZDX4caHK;0e9dzoL(az?(| z7mGaM1~WWA>CT7?$J&j|H}N_5&O{O!G#I_3>=_UJMig^GU+CwWKIGAXApDy5m$Gqa z%#pc$K7AGQxpBaGN>js$Z%2yP$vTC;PD$3|-QQiMqQzSGNmiKWxLg||e&pYlnf=EH zcldnaY?-5@qfPkp-Seu1Teogal^ETa@^Y$vw16;8acxIlTISjw&L;YUu^%8O=ID;p zCYRFKuwgsoXRgS)P8NUvv5Lmjj$Z`!v+sB9QWwR;cJCJasgCN5#H6NC-e{a5uZfPb z$e15(zKB?N7;mAig2sm|8H5r4@AM4<;ygUmd;)6QJZO*i&~ zMx(P8ELgf^nDt+vCDI&V2$F8%#Vl{A*u9GK8!g)|ACG*`TSq8w4lzD$uDKT`X#VVJ z9{C+L+~CF+c9v$dB@ZQnN4GYZ^MZfmoa$#*7|O`3jFl%D+ZMxJHHY?^@be8uh!b>< zy-~`EyCiCeYyREVw0lPCTwx4NB<$(uZ{7h>%p^8xz|+c|Vxd@43JQw5cklCPdRbXy z3eDKH%r&^HVzOI|3Gk0zegA=9?YxoS*w~mmN&E-<%1O@S@VS$CBa#^*eN8qhfJTX{ zis|ucdXU!CrXNZ%A~crzB!b6cOg5H_z68Fr>pZ3WS}=c)msQ9Cy%(8$WbK$YHFNe_Hesd%3Tmq0MYJY4tdU4>;oS;Wr*s^H`X`Kly1<2 zv8ZB%F6rudaZtT?J{_bvM`lYD=H%z|a8IH~vuqbhBHBX`kC#8)@P$0K+F}arPr`J= zab?^>ti`ppvO@}YleZPy?T9V_AYHZi0)y%b8WY2*7e zC#HZBrF-dhwASc(mH^@zaI*h-s^1cLQxL%7r?lk=reCa|?S(EIksx!1ZYVA1_Q-KG zU@ST3QaprlFqSee^*2JsmJ1At3D|JfK#00B?wv(s1fJIdgDBfAPe_XKOZts-wZ(b5 zOwq`NWJHfA7nmwk@eWbqROy#_kVN>$^3uS)tIdLVLp#(pHDeHnCacNP{iTliVz-k8 z-)tD7@%{SHZsS=|TG}G^SY06;59(X98{DuH-@A(rHCZajQ<;hsgRs6qcdc51>aIqxtpqvTKUL_!IZpjPxcmoRMZ2z-+^%7sTs}JVi0l2C>aUGdi~REn!15s zKv-(f2-(cw_&tv%O*yrSlK6}RCavxe5D@(R_lScuj`ZP_I|(W2c_T)m8qVO*uBXN3_I#_#IRw3RvG9&uZyy=bFS~=oSaE;FJURtG;PjX)~7I_!Kfd zJaX{mW|(-}0W#&hE|~y6dp;Rddc|OLeEZm5Ac>g(r7dHvw_)4Im$@AaBfx{x@GgBb zHd|nj^kWO44_!kep$Ji@4Is`CwHV0({en<>3AdSQd&OAp*)r46`!`Y3%;o2R95j~JXxg_4w%#1cu(EoYg?{Rs_Tf#MP9 z2|#c(@>bBejen6Bv-rTm@P6a7f|*%6GsiZcxbw2>V)$HG;E3rHeypR{gZmx9BK9s6 zT=W&Tj*IK1_xjy~0tnw4o%rT}b4@Dth_VX|3ac(u3%cTk48EFOzH1oUrgK3-!J}PJ zl}wZv`4ZANiZWhl8HjLW6kYe z0DzY+_tfh*xM8Ti)R*LI7XDL~|0hmd`V}A(udORbfd9a@z^uT`@=+>II!aSF$WI~j z@6~+b5D`lhM7VJ^v!Qq=lQmu?<5ZO=E>FTUsINirE>;>!YO z%TVJUM7`k1176Dx$?$@Yhp#ZW8qK@! zHvHceQAp(JW+P+U=j~43KFC!1-1#BI{xWgS^I0D3t>Yv6C;HtHxSC*W*xaSL;O1flV!)t%+v)m%qR8#={$A0W-HO_T;_sDV@CI$JV|h<%KBE|T)WGtHMmxI4W2%TBTWH2+y+ zAHOXuknTHw`>S{S%gF}QYuLTe7(50nnU~ib-8Ea~N%SF2CJXz^qFbN#qi)u-ov;zd zQ{z%2o<M%THh&dcUs0!B_3-t|o((%&YS&l(3NK#{WnvUs*l8wWJl=g} z;QY9FOr7bmY7HUmstN&~jX}NJXaR7nQO*WnO;J^!MI|qNG*H>Z$lN5pnp#?l0z(xb zB?X0q&_g^<{D_%kLuf^eyQ5sutDay-wzajTv32i)!=?d-^4w#JS>KpwyZ1*(SR~!*2oBYoT9+(Tsu(VrMVBa#qgERS5kVa zSbb>JLkv^ynk$_=A;X0?1@o@89`z{VhKmmQiB@dbp_SkYhWmVy@%LYRGLqJS5{@@R zX(Kz2&l{sw4L*wsf*<@9JG@hEZb*+QsjNH#Fa)fwjFM6>cxigK->JX?N=d?lZ%Ybv zYf8U;`-MGT61<2!Ixau=LJLfhDdRW~&$Ao zE#U474__=B))C|u_l7yeGGs<;t2Ev|_Kr0N7CoX4!_1SrhIwf>3bJC+^LX4biS^fd zXV(vZf-+c|>EEDp(e82?w0Qxp(Y; z6YDp+VM*xL7St5r%3I!#S3;^+MXXQI*&Mykr zJTYDU_?hK+d$N9cx#Y^u20!Ez1@l7%>33;ts&4ux9dgX!W>5&~#CQ|n~u;D8#2LC-sxLTBLkbJP+Pw;$Tt+8Pyg4}oO8dD-S0 zc*k-gYhEyg9WVp-KMqX~G<$2A`B-%GZ608zSPx~VpDX1yCvuyo90pTPn`6q5Zm&wS zpP#RJ6`e0DcHEXtCFjxiU>AH=X*=Ht+IuGqKlqX2Uq(d#^Z7qUm~lHciRLR%b!U))G@{*f<4QSsynE0zgLI?ZD{7AzJEskWV_ zA&bs-)w%+cezv|QBeOo!4bm12G`8{J&UX2T8vrj?Q%0#h%lr!0<<^psk8PXb=9OQnD!7PpAJl#K-(d>eEy_4Q?T7EA-pQl3|2~zV;?|<41=)Mv)#_HKXxH zNW}C&KG7b?2@^KVz5dw@B29A@Z%3Z3C0Kk?@Fsp}zQ7=0BwcZL0JMw5Xn=B5iOk101cH+cr9c5BvB?kJDfh9jDGYBv)iqihblp&-tDxlV|JUUD^B zkywZSoh;^Z1Q(`v-zvEX0R;sGVPSWnOGGzs+6mL%ECQDN_t8!6{|fgL=jBl2xXTeB zjf<7e!A5*|YhXR)n`v3V5-3MD34i$pC{lqqtWIbGq!#_fLWKnA43(2!I z4U(MJ9!_X1HazN0*w9{}`uv4tr2JAlHN#@CnZT0 zj)4I#NhVVXNR@danR8#kEU$@Uo)=Ed9dVZiE>oYuy8wPbfwU$hB7*r!p%3cfRw*Kh zCnmjdvHEW7fOBDIV`JmwL}NUveZh+l+$nDZVkzQMy9G(8(U=-1m<+VsKkSZ`M^%L3 zB_6s10~cc}4N&tA2)7M(d@3F0_XWJB(Cufy?cIPT-si~xr6}s!yPgn(K<2jgcKtm& z4^UlK+X2V?_o)_5zKy>L;7v;nX?L> zJJx2x^Q@l&xry;^q9qZsVzbQpp=r5@yPLF120Q4Hyai@C>Pw!?ek`l?j&~=Zu4-={ zAB%6>WI1!>&~{J%>sMaZEOKZkh!zYzg3=5m&I@%HgIX}X#3^PCVNhZ5(%ISB+#IaD zao!lc0C-2;sEaTPaxdm{ZuEtZ0MEd@H3v#?+;Lp}5x`;sYkav*Ezk?7VrORuvL-@` zhX~fVQTIzz9CxyWBa(aZ;)Q~O!i5nEi0DKQKKmL0O=Y#kA4WL0U15;CN$S_i3us(? zYGe9jg#i+Z*_FG)GOtcM&C_AxEE`|O*he*Zu2y)iZq@$CeO}!C!(7cCOyymZE{1T> z=Sd40){2Vg)1 z$ZB9`$OTb8fI^OE9Py{)O={}u;4L%0!nNHm4%@aXnRLEeQfK)Z1bx zLmqg=B*?LVY!s*em!aN%s`EFH_+<9Xy3EgNRK&NhL4oj`90;U(M4Y$c2F(tdI*OWb zrxzt+iFH%??-2kKma`;10W z6)wa1(iw-+`f@eD49`{lpie3Gh6e#GHfWM9Lx^wPa4^}pMVocm690K+=?Gr7Jkq#* z_%c)1()P(E-G+XUiJN4TqoWT2oD`)E@n!J((CSCr;!A`OwtuUpHnfI->+9-nIoJI| zI-A|NaD+_>Y8skNR&0916RU~GAxqjDX)=vU2~c=ry%cu01Plom*4CZ|6k?fn!$4GF zzkmPN=aP6plL}>ECO${QK~;L=Z^~bA&SkCfLLJuK zALP3KT(9|$Ny;C9NKbP1fFwQQ)Q~fr`5EZ&>W3or^bG2AJ(5@Unp0UEudht~ZBA|^ zTP{zCj~h-?0y8SkO7qQedzb4V9eFKA2{v8B!3I~tx`?QUm~{RuJ_T~3F=}p zS|VO##Fw=Dz)}N{eeK#c8bPZ#F!OxDLJ=`QtR}v*rhIq{fHx2+_92ljHM;*)1Laq& zp8#lC(#f<7a)h`zbU(B|S*%#QA|M4FIL;Q3<`G{GdkVICTOnMZs>t^cn0Q4#ghyR_M#=Z?xlt!**OAiG7mZ5S z#^DT5L22D@OF)L|LJr1`=ZtT{l0{kMNw{@E68rZlQjsRW-vor6Im10QE}$~Y|Ec4i zm-P!BX_-Z@Q13F%S+)A=keytrmISAob-<>c@Dj0flP6$sTcZW~n%vQO#5EfJwmG@P zGurvh;1#}k4-@!Lp#7H$%D36J1~DYjnL)Wu>!rGSnfvihaT87y0>OpL(Nlp`asj)% zuqP7}6M$b8OYT2CJvEsd1$pEn=j)68V{tj7zFwS>k@4~40XSBw5|Cr7-mkECW%hxo z0q(eU^X494DZS+BVXCUC{KesbIhU(zN4qtMh=??ujuw}DM<52Gj(lF1nV4U5exH?+ow0xA5NFGV(C^~cRWF~?g8PKuQR9`5B3uI{*8 zAW&cKGU*H)-F5&htdwRsyBLS$ZT!251FECO*Swxdn(DI4!MXW}>9Vyz?M7Y3qOm!X zOVza{j?2ZHo14I$>OpUNLH;N`K)dIx(g zM6oe3f+1xh?z#3{Qwy&eJzOuuHw?G8M?;~wlg~Z>Z4`fWRyu)T)5*_OyYYYtk+eis z!?ufivEQu@m#^4=ap}WW43ji+X~$9((GJ7`5uXJ`=}mm1OQ}0+6TxZ-01r*td?) zlzIIGB{P_%oCpMl2p`ShT9;jJ1Bd|r@;V4TfFfDB{heXW)r&*|5at2`0;rW4urBXA z=v>U&Jg`KKEj2%s?Ckck5ndd-(+GEA&4O2hNfn(PmIL3Ofr1RwAMp!}h1=8}_TaY@ z#9bXeZhW3*EMB1yqWCXD{&=)-)(u@g1H=|3%&gDc<+c3FDKTSPsH5E+U7g9?a=DLf z*>AOU!gy6#(zHDVBed_Qk6(1O+mIN|{bD&)RI zA%uvdtmXbd025f)kAdS^pg)w^30mEvE;}ASY5nTSe*Oep7?FOp-2&iG&UrL%4~>kC z6}>K#ZM+p>TK}exA=sm2*||=K1DjrG4@MCuDI&tdA24(jH=bI65(NCSQEom=4`?c} zo$7QD^MmOcxrIM$zj6UXqhkfHwI^2B=GpxMJoYxeXkI|PKS=96Ww_4f()o`?K*sw)^B~{W`V|)x` zeT-&!t18pOY}!${PLrL(8^-e2H-RU(loO0lo^S}@xxu*>uS?#xErmiMZU?^s6(tUk z57?JjK!!JBQ9Z-iFtm8+89R7IYdswz{0O)Mo%+dhOWbIZN8oCT`%b)=OOc0s8K4pX z5erfS9n=fE2bwl_=oFNd^(w6M7Z_f2*np^HpmSxvpRlTS49fe#;-4^0fWir^U zncXpP7QXr5>({SfnCiBMfa7+9+hM{J^P%o&&SaJBdVEET{lRZlOdtRvHWS|s0c8(> zm=$i-%rzVM@6_hu;#;!+nD7?|P!UaltfzpLyW5txRMaB!a#}M<7t^{>(=;oAZr`Gu z)l7tpzU>SUo9!-Pa11nQb>lP=hp0yFTyDMduCsyS2Vw7Wv#U5`)LxsnY zqAwB*SXDVv-S1o~_i1k@Uz^V%xtf}qy71%E70{P)17t;e5EUA1X$fG!NLE-#aPT=$ zOad_0Wlt-5VZU-GYYC8BgF$mqPFmV5Jk(@Ws$BaiDqUO)WJ}Pdl9ZAHa1K> z&}A{?l$319Iv@{jFVg9w#ghT@vFaFL8g3q*rnr^|iQp^}qy+iY!obFzE_c31kCY&c zAbyU;4Cln(j#{IBVm1H>;c~pV*Z%5%taIt9*nI_B!+H`Nai$}N0W>B9B#m=7pSq34 zWU|hGD0tsr=x##TY5%)&>d;)%sIo1J)EGc?erqs$=9Nv3E6H0xnEMo%sfRQe=m&|6 z7a=QYN=@ct67BH)!RSz0&b&y9bLu}9Br3S69y(I z+10b`Xvbf@D8Ve*w(Y@|u3H#pUr^>ZPHz;xfs?zoR9wPH9M246yP;E4G(@c!XF_roK4Eb(9K<&#ror-k%?XY$FJ|Du;9R}$O16dOV#$303k|@=kXMQ!a5bd73sZRPw zh{}_UjDiZw2ACi<3J~((+mGkr_;}M4DiE#!=?ff%-+r+bAcaD`x(hy-K2+{rneLlX`Ol9BIQPC|C(_ zj7-SadWL10uGkQ0)mx;@&>c^Z=$cM9I5E^@B@F*v{4mfl_fAq?0Vxh3%BWr2i9_YK zSOVi7S-N;vP?8c)-kFV|1cMK8Mgl9+@qA3m>ze7qsYu7)WzjFf4CSI8Sm!-p>W;Dw z?W{^fTZ1omR2f1zH|@V$9~*}urgV7ZA;!rdWa}*z=ODna9?7$nl@-ge0#{HSGXTCt zHC^_iChY=E`TaHuD43`O?d$4Un}3U~7?o8!+daw@89MRFo8Q;EWYf=C0Gcux4_zTHXWbjAr zB_FxKkOD2qF8b9oOtVI7fc<4Cho8Np9wT+UjrV~MJ!&tY^ek%m^`26FJBx0xeI(cC zfGu)3%LiWIGehY(m-gVsT%w2QcHzeGjSZHrbaEhsFuMkwoPXw(Ra)u*To!OL@sACg z*+v1=a?y|nJm$p-QrxkMckLDdVlQEYI+h00Mw;$hJAeU#wPQ>K2#X@LA;3=9#r?DS^3zi{SIm?GkIdEI*cj{5i{yvF zVA9z1mDc$FyU=E)SN%z8TA*plg(fswdj3M>0lJx{|X3QUlZbg4>Jb8)^tqii!vQtYmIY^oq_*Or^x4@&lmH| ziBTX_TKtE2*l6n?K6z(symETDdC{EvpUe!JbJW1qGvp&Ri}gMCe*N_Ex&Fr*n-Rp2 zvZ`Dp8bd?FWKk!J$z_;P0-Lb#Nm1QScYik_(|7Y@aWc zOC?64QN)uV34^c;OJfE##i2NdfeT;Vjh~x*I%3rhS$*d1h6*>6`@WEPlp5Ae|oz<8O%*Xh~Xq zyz3{JQBRu!Ca25e917cK%=9W}lj;tBGBLnxJN1X{PVIu(M%6OW6qlZE4tOo;K-QDt z$9Z{q8z7~60WSy4**>5m?l3?+z%f$byFI|+QFp)@Ef=#&PsIj6pDrQ+A6{&_tQZB< z0?s2js(=0U7gwT4c)U40VxKte5+xDZ)Nounz{T+ZDw#{-}2yn>ieSu4md5>``;3uNbIy7W;q zeFa`_5I?S=r3D9ux#MdDXbBJz+M z)X>l$nLBMq0c-KODy|5W!zHxK(s4nddGL zOM0De8l27Jp^D>0dMh0R0|OuvbzO-O!h!*Z+Vi97i#n>9FdfkyeKp~4>- z(q=*)q9i3;p5#N&+x+-=?Sv1u_T{`{+Ofp5tZjKc->H(FBZp18zb6bub;a34va0*^ zMVa#pTi4PiLVAjjVGQYqu9bg%RqTlJ;Bz$C@gX%;*rXz(Z1Ih`G>|~e57oZ<9D*Jl z8LKdt4sC@{UZL@YQglnem zUMRoL8=y3PAw~=0HlX5=^{!|D3e_|QG zuUKgnT}&HP%Z?Bo5jc%^yrwdn{OPCfUcCoLg>=|-f9LE%jF=fIl=Jqz?fu@3q;a4- z_3)jeN>?mnXZeV-ZsO2CG8^=96+=UK3Pm>}a!O@^7miQh6*YBq6651BV>-5z+ee^k zC8Xk82Gk*qh{H1A$d0zBefMB>5Ab*u=H3qVSlT>j>LhsFbDm+BxfyWT2% zjxCbdw(EiI{xjPJFW66g7>?dW#ece{C;IiW!u+~IpY25W_;;>soS5mkP`pzj|3;%q z{uyKDQIi-B>VEv!-M09uzjRA747xpQbl=@h$m3Ogv@UU!qFbOkoZo&~hb?9zxa8qr zT#kPU)3=GY12B##kd`iKknZkb<~!{D?!9}*KbD`a^77_6 z=ZT}ewXls*-4N0s@Tj@Jr0)7XWGDVZhcim0Z2$F0;;9Vgw_25{b(`;WsLp$7uaQ?Z zPHNk7f}e&g*fmS{8~oYGA~CLp+xR=Bb~*AnW@ax5baKjZOBWQ+DrOV^B=&0{HVOTw z{N?{5GoP?Z^0FN``Tl92Mdv9U3H#pvK! zEd<9X$f`BQO!|Tk55$cxAw>yiQaYM4JAuW4AUOd_Sr9m>6=dv1}?64WCxr}}tEoUS;2)vR#TJgV4Z0P)-2llID1t&_Mr~z^5 zsR|+g41H(SPQ1?IfH$&+dJqk+1E$Kw*l9OUaSkKJTx58zWxZevI0$PV^hOf*sqZVb znYYkUtGfxz$ZNYMPyiTea?fl^isM$mmG`>43!P{*8uV?;(B&7dLMYbN!8pUi!+~D) z?z@|hY{SF2_}87P>Fv*=R20eDTT%D#*@Z>2cw2_{n%R$(x)@rT-(IPbUJ%qgOaeN>*$+Ve+lBCf~K9E<9LtWKn$ zp;T8CZZRS{md90f;Zovfj`lrgEYrpENP?`;cHgrT?)39wzLu55~i@9q)ru+EQBhvg))jf0hwxRci zKU!FBNT_ZXc>SWVmrm!&=+Rbuy2F6CVSfRO8+VcYF=~^`sANR1NIg&0xbWGU?L>N< z?cLbU1rPqC;mZM@|6Pr&d^`+a^mlOt`8z$_miI;jUf&B__NDcnF{^nA95m) zr0(+N1*5eQX4<$l_y04AJ+xgzOKKmG%pY@=26fG)%RNJCk0LJlXf3k!f?bv$7b-Y7O7mIPj2wlfN+|?KHDE3wRCRO8ow-po=F@rJYT-E0Y`T|64jDH5fgAZI)r3U?9%xjAziF@EwER) zTrv^|@G&_#)RY?hh!}1_+70n8gzH+hZjO3-=Pm)AMns0c0vZanEc^|(n|CkP39z_r zT<|fA=6MmpvAXyUaTsMr_*{ivb1jGTKLdv^zVc(wP%kJReIRW>e4{}riKkK*2oxoo z>@rZ`>SW(W_X;#18U(L72PkH%xGfQLPC&P~=%?#m?F4AQ9Z!1Gjwp@Zm!Ec%vpdsh zKOhIOvF>Lvp!AE>f$j^z3>ljyJoc$ETisA010YLAS~^!Xhf&|^uJ6o2T&7Dm%d0(u z%hv||SN4OH>NLVj&g3;-B;Br0_~#IxusAWHL^-LN`nV+?ev2<9c*Ydsl)JN3yjzb9 zFPm<1v5qcWi%JgbDq4$*WcPWNvy`eL?Z}K@E0TX0x>Pg1Z>F)9+vQisS=)XV-XQc# zCi~En-gYc}&3l5xXPZ=pzs(j;6NB|eJzsq{XW=YnOHOu?dJ>>LwR|lKA|fSa<$=&f z#IkD{`-1VOgp?;qnvSx29eBdpZykU9bDUpQs+dut{g?D<{1pGJh4?qh?C`!2=EeB% z6?6cfIa+lle;;PqtyCgh(P}GnsdoH2vqmm*@fmfr_TX}O`Ds?PV!Yhp(d~Y_ZtpMt zVe4hmp|d6u=&M*yJa{y|j?N?k{Qi3S``fOq?w$FL>sK1Vmf)EErhB2|YjP{k*W0U! zAF1P>Bv}RAf~!*HCHq_)!_T^k{{%nhW4$$dYlhk#C&aA+)zdIOMW5c~F5D%Pei*q# zvLSLL!PL*3riu0xW2jX$lXri{GOxfhLtWp6BXZOtG%zOQ;H#Xoai`wiO}qUs`!*KRzbn)sw&O3ZEfFF_4>peF?>lFk5lbtyw}4TLV~;hTv(H3 zbxmwcAxuSRl9a^J2LaDQRs*Y{DqG{aRmw#+UdGfb5kK#GBU5iB9XWfeBBDMZQ#tB( zTuPO(F)lJ9#;x4U#z%|nGN#PB@It8T&I3Xh@`?a0_2R`OXdVAFePVe2r3Z2Z^w}vs z)aqv%e8A?nyR|hlJDbqG2J@9dwUk+IPwUb($JhZ{%&%6LFnymV{~X~PQYmaq4_=2N zt3=Uf8kA_!qZr1dF#Pb%==e&fTrLz*TDVvi?Ue}SjBxR5biGW+_=Z;^{@#X>E48$4 zY22d{q#2QBDxvaFJ79rnoJ+e?9G*Iwr{d&G151omRCt4DbJ!bLJsr_p#y9Rft^mOX zY{%~uXbJ&`C5X2n_l%2)(bUjj+GsT&bIN?a#|PuB9{g-rN!Bh|RN(bLzcF)`{9 zG^mu|1OTJDn>W9N#M<>}#p#uUehVwPN&q$M@zbm{JvEg|*uw>&Xh?+}e3AcRkHhYYte7uN4B<*BqCO)5=FFt+h4bVleGfNw zIY|i-Tj(inwd2+A)Bnhx?p`iiGl$+L7uI;-Z%s2~YrS=;CLA31xz>>Rjwrb}zM}fZ z;CrILOS?@-7#bd~tg1?XuyvWZ)9d6_Z9)*6=VraFpIKnicG->`KZWEsj^(!v@uiK2mL$wCaw&*X%^%4fdSNjzgIzQ*?EpNs!BEt3l+s)dKSG;jmc zst*iCTc%;RnG5C1_v|^)0H3m6^BGZ?Ot`c9HXWd_^*ZK2>$h{zCH|$O%F=6dtid%&8>MTLhM)I~7 zYkP)q-_Ua9wtMz9!uT2LbN%8?8QIYf)dSeA#~(Y5WMpInA#n#h0a%tWXLz>-1}M;e zpFWx6%p^kWuw)A3QmGd2loX8DC2_a<=ajq|OMv5`jfW}ZmgvW8BxF^1!ElFhVm<0$ z_LL_cne1tJr4-KYvz@d^GY`XC5j_Vj6lhx~bT5m*va(`cfkbLmNptTpgV)$zoOf;W zg{0k}cq67O9bSLEk<2GS+depT1aOyxMfG{YW7qF*{(_T01!ASOk&?r;k+9%kdDvka zt**OBHe#WbHzG;-ndQPVa3Git_Wn6ctnzZ18ES}ilGG!UHQ>Ke=p1gB7bo5NVT%WT zyOCm9b8d*rA&G32%GK}2|nH>J*X0?uma*m#LOatF3RzNlUluAkRtxj{`LlfUq`z9MXt? zK01eB*TbEv6&-&w=0UNZZ1PdyOx2UNS}> zJCHG>8}+Kp`sqp4cANd_PdBOS%+W(rG!1ImD$bml0%A;p6yb!m()lXRe)6tM#C_yG zw5oJGN3A@t5HQjIm$Vit)B(QZB39?e$F1@xvgjlY{Fjj<~7Ufo6)sk64V zwE>+_r^;a&4#^e3vkY2;p*GE?UN{Z)T7bkL>--bQU-JEdTg_iSB7;iiWn>(!n12rY z4P!p^{i9N0L6snNPuPjPyAY*~2xjN^!Kmd_vJ*@zclHB<_KpTb2;4R4i}hYrtmCKA zt?T_!s)#J36@Wi!yd=jErsth}*WH%wHER{kTGW&2b{8w(L!64;J=+ zMg(72J&1&$>T#gH8Kf0U11W}AqYTgj+k4KQvqliRdcli(UnRb=;2Orn!_cktIj_>4 zthM|JVYXF=k7<0-g{q_KT^ql#vEG=Nv7gR^wYYf$;+!WAqK^}3s{ne5G?^&zXV2yq z7Gj>$+qSHo>enr0!EgqH6?1=;5SU>7&mGK5AZpL5B#08_qJk1xoRBJd_)w!>R(N+} z_dLEDK5_HTG1N@^`PCsP8*~hUA9fQJB~w;mbjlNsV|AUbOw)oYA3SVPL#n=(7C>%1O2RkgJ{SL%i@C%1L`}p1Qh8BNn92bHe5~(NB{! zWo0$u^vmvJ{#&Mo+2X}*wD|?V?}^^g2RfD|dxmxl`kwo&1k+UQO@yeCJnV2-y%oKq z78?$@8}lom34H$vq-M2IS~(l}Q;+CaY|EEDY9=&a2>cPNxP1ldPv&j3t=EzkDhEn) z^e8T;wck+d*oDIJd0+r>s=mHHXoK=pb3QgMbe^R>*?WBPnva=_XDuV;**V$zKc8v( zN@BDvJ@SDQ`kqE{s5EZg<0?+;eg@;kT5<%qz$tXZ&m=OYxqs`6N9L%tb3 zH{b5>9PX5Mr;zf4&-TD7zuMQ;)2>k5Up#OUxFi zOP>zv?pvr2w_!pNrAL}7_c2D$LiaZgM#E7!jD)p8+~aE5`(d{{3=}5qYEPmwJ9P|} zc%v4VSkv{c{eX8v0UnTq5ep|@WF)Hwr`32x`IOff1zMxjj0EE%Cgw9?MP~l%1xva1 zO`$fpj&Hq`K_a^U@ctKNgGsCCCHK{5_eC-qbFhkXq=vL(7hF3#MkVT`v%BysU}IXn zw}Pb8Risi>Lcc)%ajT_RheO)$1sl$8gbDl+cl*n9HRn&Gdu^2;r~J9@XXmg7gROz{ z53DD&kfF!n$8;{Frltl52m9cX1yb^Ez=}e-XsS@R@f>gYSAhcRU2i2i#DX}!$}^HN zAG!Ecl>CS9a=xzPC+fa%02u@6_ygJf9et6lxsv+7*~!Yh;)}K-enxZFijZc7#@l%# z^^`-^)8_oQE2?i<9Gtr$3 zu!aEGLKYN6$(yfJ?*+_dYlWG_&yTB@DBy(7i`1f}q_wie#&Q1Vj9S@tZQ(D%V|%Fu zF3u0>*?tyz96RNI)|HA$>zJXwW)18`*HQI@0BoGNT z!-{G#qW{#&OZy9c_|Nu-FTUsfvZbzp1L)T}sAkR^vGFCcc4Nt^6g zJ6-|S49+6j;cbPL9>bsG#H?vMw|ZRLXo!pD(;z61Y|2S3g5)Qer0+}2R#1KQ|9-4Ww0?+gA`);4`HK4nGbbecFYs_pJ$-Q01}CHN%R1u6yYNY)Rz9E ziUiXU)kmFGkb7s@j}$zFnPUo2;BP?G!Of8zF83_Yi`VLKZ7%a`P2Y1aiF09wUN#p> zNkhXGB5~ODUI6x-lYIdO1TEMjxY|whL6M*bp~GMNbj$RC=lZmta}a)Wch={*0tL_mvTC!^6F~j$0Bi8;)A#3)76hFT zBLV%YG&|e>F1GE5^*yy`5lhRL;f)IKql@{OAo)LQ8L4D^^dX7yQ|;X$s_F^y%vK## zB&3KNc$iE>+w&4;FSEuPlzE^UM^x+K^6QadoRP7r?XB~QRPn#6Bj|YGK~GOl|4XE+ z3w#-%Jb7)_9txi+KJ+8KyVq(O!kF=?NW_q2$;+idP5;_kGL@VKL)q`Ku)xn-{YAV$DKub;U{Pa^XosNb zV0AbM<7fzoBJ5QysKx;z4HmSsv$Li#r0#|Po#nfsppx;OGf{NuQ0(eLsQ&SIM|ZEM zVwe|m>gA{XihFVg+q#V@O*td9C2Jnz06(2KXhnOaU2~<=m82Ry(_%CfYZD;}4p2ng zskN|K+wA|-fc{lwQx=n=9{A%nL{B)YU-rJhcNsdy>WCzcvY0A6OTkCDIS;tMzY0i` z!|yLevvsJI)x4MGhQ^EPzf}EG<4Wl4w_j3q+ixFxU$r*M-aZUg?Cr;en3>5@*|^5f zUYzFA<;!_yJ`hseJqWpI;>9fsMQIcWW~$&EjB?{)A}(IR`vSF9n2cXWCBNN)hrz_g zW_c7;21RT?p>qT5zdt61>dn2E-lv%ce&r8cFiBF6`KCms$eMw#dPg&OclM(TCO31A-d zPSuATb)=R^49}CLDs$ldD8}TLDIEqss5AxpW=%okyB{1c+2x-+%lmwz)0VhJPUN#b z{U3y$`b=XeF5MWfHO2-dv3UcD+?rNs^sPs1yay-adXDwosOo=^J zTlW{@MtQu>LgE$zD&u*+4%u-HuV3vEuE`l>@{HjfJPs?B?JJSLzs`ad%IbCVS20^> zXR_1QzqlFvlSx_Cdw@uju0;lfKHy>!x~pMLQ$s>W+e9Jp@cT^odHUVKltO~RvC?b09jy-ZfBpj1|j z*UVRF=h3!X$E);;VKvKUjYLkh&{NhgS+;O-{qdh)aK0Hk8slAae-Ada* zVN`XS#6>JkrlDTt&$<;I>DPxintI2ZyoA2dWQp3a(s^(+U0c1Wh}R--A@#Ja?D`l( z{ozdJJ^c@Ocep$Te&SGjay7XRb$x$-e0ko9OD2}TxnV>qKV~+UTXd9Z^hF4FBO)<+ zmYF~Q&%%avX>`I`BGdohkyB@iHuf0-SD-og6Nk#m%JaT5{RN+ZRYRHc<}Yp<^gB(E zyTesBzr%H2&iVfjZ+ME@6%6(A(koqK{&#RcVTZD{m8D52$D=sh8;`#DBoNr&`LyH8 zr*LfY?It<|z%U1C=l9adN*&zN(akdX(GP}Y!z7R_L5Dj%SwbRb1`KBtGz*e@xR1l4 z4!Xyympq*GE_Z5>M?PBwluSF9=Gflx=mXJC09hjfuQ8a|kZxVYyV5(8IW532H|t$~ zezA(-q5-1-pQ)-9vYj3)Y_D|{uGc@;aBy6=eq4>6uW|u# zP17Xho0l!Hk$?fok8U3=vyAPKd-q@a*>U;6CYvL~r4~)Tu4Y?WmRwX5A@R#dnYks| zjG+Zf)Lo;u#z%22DIU~PijGh((=NvLfh*@(7A@2@a)M2b+V5v{l=jc}_6rf#KHg&v zlBZslnv!Tl-5LC~e1{jaKk$8XhijI_bg0=T{I}qBth}+oJOiGhRWpd2yewbS*M>TzNBtf`A=~C-b_s;I+OU_c?~&e{$Mp%KTOo;w%Hhn z`fe&bd-e?U^|7l}Uj!Vpe+yo+VQFn^qY!d)=#23B@2q@Nhe!ZQ!Q{9t+TeuBntJVz zMMyn~MI13#{csk)961Udo9YyF5Gl5k7QUj=XL1ik)61AD!v1yHt`jflOZ2PI8bQkN z9VO;AsePIZ4>Zxtq4K~QS*X*=yumZIKJK=MO9*_deES2IY5|mzQWSDOji+9{t5tm` z^UpJxleXe7LYI?HWg76+OoPJ3?y&Hc^4>G}vANsw!WFqR_rp5K%e}|@X;}IT`L5VI zrN1C>i5__lGeuNkdv)K;fH_VaxUALz3m>7IL_J zaQ7P*aP?$wJ3_qvgw?3zxTxihdGo3s5WMv^iJq()6{#6m%5fV=Hb=f(mS=!&#}lD@VLiwaoU_+JXACX=mT9teeWsx9h#JEE5EVc1=XR+y2_|K8Iq{4L8Antq?P)P{ zbrpep#Xo(VWqpA9QyP_iK*?{s7KM26%6)FJHBMhcrA_6)!#|6=B!WaME&7q7w_nLi z{&#bdG0CQsq8b_;?lB?6ln%Kbzsnb&$#H&EvG$A{-RvlNpAkpN!L~jTZK@x>Oyt2y z-`$SdtIlO7Gmz5=<5x%=lu;cLH+-lJf-8c@rLz%ZaId zXi}E=sbWs_yy{uly%8$=W~x{{DL!*4=@R;kmr9&@#wC`f{AHgXyQ{tx%IHaOe#^*6 z-xU=sW@sRFSw&SUf->uxM1)|DG$Y#9I6}Z5(=OA5B-7CHDmr4AS$$U`%}$D$^B~b? z_OkbwA65>LM?H*d!uO-5L`ZslLlquxuZBH`yG4m(u;seAm)!BI8#sB`0@^>QucHgM zT8#TA&nX&1SBQ5%1R~y`bm#CFP&&Aaxhz|!Ogg2^-R7~5EbrgF z`-C|{+tctL!e_Qf8?`vN$urFWP07T;eCeocfBwJ?(B3qV1;ONoE>~KHQ9Dh|olmNdT{U~@G?{|rovx{%rlguglP3FY3NlKO&t(PO z8zd=wWO=N-Z{Rhaza-;nBz5^+m;qX3egw($G6SmzXqosjr?}?Lh_l3+gW-$<>a(@Z zdW5GjM#6gi*3{|Z4>^xRJF=L9Vpd2%35W5xLU>$>M#Qnce2G4^Nx$w;jjwN6ftp%u1z zNv+9x{vTMeN9$}Oc3&M@W{M{yIt~+Z`EJsung_1>XvrGXNF^Hh%W^QJYjhcC_S;!R zUlws$5Xrh3o0Xd`OFAn4klTyzn+S@|qKuP{_YKe*Tsp+K-6z z2g{PhC~=SbeLHyLT3xlWG%W2Ee)qXB5lX6p`AT8)oyAS}0RD#tor-1p`Xx-5=-Qe07@<^= z3VjTMgllI_%2d@eblD($`?bsbM#_BbVO0Kg#sdsLGM8C&Pf{*rW%w&$QPAq&i>3!` zCs?$-l|h*`&kH7=kShVjPllJb-0i`Gzd5vjzZhSek|8zoEi3W%OS7O7En0(AR(Ii} z;)CTUy@~yJyV^nmrz4UG)3_jRX>1JkF?FpXJ+P00#F+(rTxDLkb-ZwO=5RrTWG)e= z1e-=|5M*P-GciOPY&eO%{C~>ZvbO(HX@1_N-8IC$oAuTOAB$UFXokAQnBAOsL2Kue z(J_AjzX}O2@8a-`Ems2n3A$ELr&4e!qWYlLPOY`WdEIq+<2%{r=ziZTLG3#I4zR9q zshg!{A1|GsKXs}(ko-Ot|Ng3Qk@4@aA1MiwTqh%*VM6#`+X_FE6GNSEclM`}bLFUq z`ITz$w=@4r$Ldl1lJ{IMWICtg&BP~Mz=Qt(V^U-?Q^wcWb4lh4e>)mH?B*FMB~)yU1Boq_p0T@} z9>pbu)b){<4#-1ZtF?woQE9{5 zIDkK8OkRPw+MdY~gc4J*!b$^Xg}UzR%wR=!2q`J^R)0A9`&6 z)M?!KJ(=P8WV7r?g5^8+GMu$uBWJnt@51Zvv>k9gk}SXPT3$FQo0;11suTUb>%8fP z&W~qz_`R)nx?V6|IvbB%ry9k49ImOj?r#60SuLJrF*_hGAW?`-OGcygDwbJ_$s_L3 zqt0ZiULxWB;T;6~N6*Yl=NCgV$k!jl9pek_$%6wCD0Nnrmyf}3VF*1iT58@j$?!&1 zG-uEWbn$P8Z^P5^|DPT`g}?-IJXss>CIYmr$IoKoj_n{0qYVp_wtNj+nJbBLV}goo z0g5vF%vs_lX1}}Mz@1s%1bRk@6x`;qY z;cZc=1>5BNt9r=KIcjK;OW0WXIrJ!{u+7RnzfYD(lNeG}E(edvqG>Yy3@KbwK~1XV z*ptS)oeZz=Z`3)vZwfl?!=#mUZWxcQtu(8RO$d!%**B#eFYipKvpf)8^KP4{X{I$B zkWvz%Is3eGvK#8Y$l5HF$=+aJ!^Nd^?>bx^X6NDA_g@6|9&nfdRl-2&j*FA?*$CO2 zArmOYUavp-XPo!xkIcu@U@F~t#&;>Ek-Fza;=oe-<(R%{AHR;N>xqZ&#OVfeXayh( zfYNJ?P_nY(`=Dwla%M%wE4R!23YT~hCLtRo))_4BE|cs*=Q~1Jt4X*_hx2j-VOy`G z+hAqiOHq7)1>f_HxNfBkSchjqnGMf#c^9v#Pqp3XTkMTQM4GfF_w>L|tJACF^|iyV z1QYFXUD7R|43`NeI?b9NmRS9$9o<;(H`1AUbQ(XH@k(+t(EYLC+O`Ak^2no9wXyGH z<8X+Zd#x83EXQ?jCMd@%bZKPsx${Vz*LiyWL@3MqLq5Lfk*{JuO!Cpw`#ec_>fzy$ z^5O`jce4dDSe-y_`uEPN;0cC=j#y%p&wq~UI+sZ#9e*S;Dy<@S$zPPEJ3rn;eJ|$4 zy+I(rl!EgR)BF|43qI}G2Avn8TVG_)wHUWIq)R*Yrz-TP6-|bc>qrf-`n_1cvkXlt z_XdAk>KOUvv9$S>X_-I#i1pWZM*vNd3@H$=aOj?sM8W;o^SGEEVs7rXQ2GW%qb$5O z!4u21@!_B#&-X9qVb9Dy!eQkCTkAb_sb3tS!%$Wyr-&Pg-6O z8oRV-QodR#==6BZ_ON9AKzPhbr#tW|`*`hcz&!@zT;Xb=Tv~ztP;0|=Ro#PBOZ5ZX zuRPPnp8=8A#;Bt*<>DP5w9s#CM+3DrlinT7kSM+E&k2aKQ-987nj5wkP5gnw?yJLT zWn~3UMtb-Z(~+J`f~-<`#R{aEadg zy-6TFd2+kT-nh~U^yrbpc9CdaA=TLra`@%<7TH4f^ zsOJDl{Jg{dJ#Qi12MKbGca+a_1|Q7|gG}e|&-e8wfbYUjCX0>h*~={I z|KVWnh?7^;pK<>mwv%>HxL&2{XAw$<%TDLeM8~gL%}a|7VF&0Fk7#6OFa%A>sBs?Q z`1=v@_ZNgSbT}SbeHgAxt?yXDKe!73;67kG_X23QM)-lQ5}C1y=_rF%U^Ce zA!xPg)m^sXyuLQ1d#H5#T|yoE*Ud)3$prF^YL><6k(E8Wmz7)(+pwjio~vTz`3bk} zb&;`gV2EPvIkNKxN!k6H#O0Rd!c#(`TaGUS@cx|y zjf2?=i_m{iDSq@J*{2jw3Rj=46#5S=T1$`ZCUmV9(KOx}#kf`9g%@{t;RnEVU*KP|YtQMAJynIqnR_$K7eqcepd> zW_y$yT%$jdKF%Dgpe_(XN=n%9>~hZvZCnZ7(Ms-;X(G$Y?(s;Tr!c(pUlo85+`lDb zbg(v}7eqF#`j39GE9`KspMaSIm;gWl#;zrw+^Bg2akEe239Gi18k3 z*W_EGdurm^mmt(;bYGYfZOn49x^)n71nS$UQ2SvoHcSq}`7F1^vBcd3d5bb0lJ zjCqgeskSBM+Q_3q_pu2%+~dS}xoXSJQLC5b2QRD3$9fyt-e8oi%cm#T5BKWqFKK5d3CYA?-#;DxTeSLhXF4x5hI-gHKFfcSb4J2>7|zsFgTyG zNKe0W~B6U#EuvpKY|kYr-jSr-;-$LO_(%WJ_}Sxe+-@ z`t|X=VEzjoi;4L~|g(&VCUz@ui2Nl!OA6 z>FnCzx8s^DzC6CwjMVi_sx#EgH18&kTQ6H{KU>9zu>@nd^R4T1UY@Q`2w1qM&kk*@ zJ3nUdM!s_^o#^kdv@SS!DkN~_aX-iO@{PB0@GR`tyX&~yO=T_@A>tT6G1IfKdIuyv zInE;>wp=W~f|b`}TdT15t(#>3t@V|Om|bs($GF>pv_;=fddL+x*P@tg8FT16G z@Ksm#M9N^0_pxJNXGrsr`_f>Lm2PFr$L87Aw`nyQ`lEy;f8OiXI8A0Dn0mK(Rc z*>JYlbZRLx-uMmF`q7O83!?Fy&IE1C1Gln~iQ3LUh6yL35#7!H!#ivD1jp-Jif~rA z5E8e-Sky}b?rXfG!5$R}rhj+y^gGD*hpv)-x^q;S49WmMPh~A=>GdQ93I%unk^D># zJt=Ac#w#8FP&3CRiC(;>U~WTwNkN%VDpL-{h!Kkw-PJ^;;`G*UTxqv-vWDccRoWaT z0j@|^6Ec%`?mLovk!8q0(zivS7+?Nae2`yiJ|r`gTscVmMA89W%&1eTJ*ZJK*SRE$ zFqqFE@4)SR^eH}_Nw<_LP@fOY#`f6!i*Dt( zdlqDCBUVAir_%}R&WK^%#gf}jTl-qouY|^(4lO9>m~wHOhc^~SH`W$N;aZ!{*ccm5 z8B0pK7zlm^d+8?nW+diCeV4@gXvGMK4KsR=uYN84gS@Pe|BFayOQ~8oE`G#~l6n&O z#j%}Ea95ps;Xs`hw1HiPZY719c~J5h4#4i4bf%}G>%fE~>H%(!E`y)U7+ z0gH@%G@we1z9+@Wz`*eMaU4PqrO{rW4yH70b3B&B@9rL{MI)Pns1aS81ju}U9>VI0 zgy?9BTesSEj!+}5iIJVcV_OB9PEL=I*9CYLl$9N3>AyAqkxKwFb81=|eD`gd#|}&K zU}gdGH$8p*lHy``&#k)TAxZhe?hWK-uUif;MzgZAKw-ePXkmJ7(WiNnxZYedFA`CG zL|vzc|8FYQ*W)6QAzw^)mo2>n`hyYq(2IUj|8E?R-j&=;jpy!n-7aHmkCUVGwVo)g z>uc5MlPpzE2{t1k%xid+5pEI@Dp^NN7{H792sAV?Cc`Uqn80T_p(_KNLORTqR@*YR z?x+%_K+5h6O^ZQqo7DtEra*ShC4rv=4H9^ry?7EkL8Ii^q3HqKG7sTecq1wsL@gm5 zoX%Js&#Bbl@N}Dqylsn!!hBvG7m(Ld-4Lp)yCx%tJ|qsXu|2x z0k=kd-RaPT%%*7kg4?yk?Bg{nbjTg6>O@n@qXAF%1b6iJ%r>NZf!t(>R)m!S8)>sq z22N-axx`JWwTl;wh#FUqu`p9WUaKI_lp6GaOh@kNF6-R7F!ziL8v@mXqrS?M-u2)5NbHNd<-8 zAMdY{v4RD>`=;Z@c;#D$MUZKoTZTT+uHob64ySFS51i3#iAGS|@@fO;3ikba@lJAb z7B;qX3(0WldGO=Waa*Qyc6NqpO3sIYB+;vA;`#d5a3D~}QWLE{^5C>`v3pQ}o#<0j z1N9TMW}Th{I6ohOh4OCH9M}T2BRfmWCcn$>vOAo)E2yhifEgb8y6^NU`AwSfUij<3#pl$2t3jt(-_ zd+O{;g4knpi-yv{Ue#yu*@e#7<749nZyc~H$$n0sW8Y^rRd;sY5(ym9GL^G|yZ30D zVcL;rSfv@`;TI4PFYM_C+UeDr9+z{E02;4XOZj2s`o70{L6MT&ugOqC zkD)JydX}oqR>s)=Bm$ZIL-#MfQDr^6z%iXua=x9VD>>!XME~5kZA4t3a)XS0-P(ZM z2yCzp!352*z6jb&ej;UK2Hbq$yZ@(8;M;ZBCAc}@>RhUDZq*CiKFg6}A7qyizX`Oi z7rDsmnKxD^o^o#B1N&M$#pxM+7!$F7^PM*FBF#KOr?n;EWjTtf4)1@zh`;p#vbpsK zho4-a2ph}i>#JVlVoQX7OSb=f7l54c{QqyjI=a||WJd~X9d6X%(t|7PcU@X~`XRJ9 zdbn97NA(N@&2<~RJ36zAi)!-nHv2;uXzR*j&<~agn(^<;M=VgsT%fHI;8J#UgX2+K zTdSm`MCsyjG=X>h`g~B|x!c=!*{!H%a1uV;m>Ao0c`0-hwgRFW9dKnpqIVOo+*s2* zN;&M4VFyO+U3&UvpLA|;Y_|A=wZaQ-4sK-$adG2Y8Mip}o)O(R=GkVDa&b8Vo3-Ct zVX0-{d+>pp95b8i$CPVsI{ommkWj%s9;)dSjspUYf57OuoExl;`>e{RKF0q$->NWG zuTov4?s_nO@>(Ow@k--w4gYCLe*$!P>X=9*Y4!>2vBRhR&E&%{(?P|1GyT7}y59*G zy{zLWt2_3n%I{Nru@#$s+==5y9Wy6+57kH@Lj2K)&wrNjU0RMt^RGf$2uP=Y76$HL zV}Ed?l}55zdY3Cwf1cf+B%Mo_nV{}7hWTY$?UFoN3iG>ERHWW^3VbK z8nbInjgimNsA4&L?aS2NKH^hKpy6+HY}rR80F8aT?j@1@eObQH&8fi|1e=XZPd`&5 z>J)gdZ9-S@{ncS!14)pVml$_Dtv@n98y_F9sj2z3kp9Te4BTZ6M}We_P0Q`bc76td zml=B&X)Y$#1U3gp49>2vhj*4zg1`%8$mf8J4S@=aj~4>N{pjaItTe8$!l1YwtdSY6 zBt`3z`@-$Va|HZrcHlDm=kd~^hzJO_;Wptl!{dSCUOCV!SDo6cK&=J@IIXcua`!__ zxMR}m#nlAu<|Kh{taV3S2waOmUDcoYW4sG$cz7B>ln#><9$|HF*SWE~*lm6AS?6N8 zHc*ukEyJY^8yg+fRw0Ca{ra`JR{PC=C(z5FT$|?m1d^9sYHa6jjmYUw`i$ZgvD%S_ zh#mdjKYtn5ug3DN`Z4N6zwl)G-JiMD{kZ!}Kw>KDOv$OejZ?`lKF!B{m$oB>Rn(5S z6T^bLQrfMoL(IwQ<{GCVpoiP4peDdj?arZd3tS^kvRMYVjl zi{Nr`yVz=f74`p}}yJ{IQEo$(k4#`vCn{=^(ibI8IJ016dkZoY?N%xdVn4rURLp zc7F>tP%9q4xmS6fE^2K1yVSr7#AumF%bc7sOg9C)tV*7 zs9O~iIpC$(+k5V^6B+NeKd1(N2eIZs|Gx08=&scAps^9+b_(bSN{fYtJ29ZPT{!rtE%<=L20c>oUaWc7Dbm2S z-IiL1{4aYZl>RJvdy)T*#@^II*U0lCd7O!a8a1GdiT6z+XQt@LRlhJ&O}wFMqekoc zV=jambuL;~Qg&Sqe4Oug@V(;ddmZO{sQw47C1={*7%DgWaHkV|CMaeG{VE|D^T|>q zf7^5LA+eYovP`SX$6`On5;OeooZ6BiLfcn{hE;MMeURk7rUP%xAMf>u?jL&1Bx+Ss zBu%oRFH$meu6{lcjKGpo+`uw+_RpVN7&q;#A~-RF&{HBA_u>YK30z%|NnXOhQ-)W; z0f&R^ihM>!f*Ugp&8)uygwWt##5+vyg8C`e-?^32^7`TU(vtpl^xaj5D&Nm5PPmvY zgde!V4TmpST)!702@X-Q!kS(1hGO2ELfq0xY3T;tUv_siS6BY+B4#6~Pu?P;Bhr0M zuw~>(kN@3*30l8l`z;(qwZw9UwLH87CauHCO8yD`2*NXxTF;g4^QAL#4$|bfe{dM> zSM}yyyB4K+eZ_cGFlL5Nv%=JRR(&;XD+qpRcww=gcUk6B=yH`_!UpmQ%{7Z68Id$RI1Oom!_w>O8xy3G+R}69C zRZpPnF=ySS#!e$Y{fJ(@%>C)}cdJdSpAW{Nk%H{9-cRa-g_UOmHekNO(TMTM{!8=q z5d*Xy>F?jA|C}8#+jRZL4X6Fm+RUPvM7Eb@6^}**?8ySIV}Qm278OGI*QYgs*i$+B zN;NwtN5|`UeqrL$CRlD;|6w5^B(xiT<;-*XedPy+TS`u@e&f4U&X%01>2j=foonO4 zKIi&aIR-+`7{1r}+prrl`mV+2FHz$)%zecrt$V4~KrqwgXJK>r zcGJ!LH+kS!3g2Wlx`S^-%}O~k=p#n`eB<0G<&28QC?#X`;>uPKQmwHM-HSj{QI;_k zpyC2}Y`>*=UQrQ5HEQtt5?jp(Zsy=_Qzw;Nc@KREfwFl38GaW?gM9AZ6D{uGLI%YE zD)*~2!!j9krj<55w^{FgM{8Q8?}ep!_5>oZ$i*RNrLV*D}7*H>jjF20Q<*ACDBtu z0lzO5Fa>BOCnrPL?(+VMY7n$$fm3$U;&kebJle(hF(g#jx@%?tIhMyZp#F+gEAXaG z-N2ZK*UA~dnts+-|DlRn-8#_Y2=t|Jisa$Q^;tL%Dr_E&!Ynem`_w)hjr*3v`Pyx0 zypDq_^_F#(s%tH(nU^sLuwsJG_7a9Y-T#GHXKFAurNR-GUP9p-*OxYUNiT z;h>v2#rS@%5!?#6QGHr<6J1GD*zNh09pPv)z>6dEPDWI})0EDDXW2vskY4X5T%07V zY1NPfWB1vx$l{~nA6wEzK@zjyBF~%GM0W6s8**w0b!r2jbb7S^(JRR0z*K19_xmAu zhtGY8M4giYQlbKJ+0VeO%xdrZN)asLYG9$55Axjp^?fqaFpt$ZUsP14xyun)8m7-M z9FTzat4=`T_tsXBc0qj-E*rFxdC3}CKIyjFZ21RlzrKM5W{o(w(kN!_HDAy5fDCYC8mE68gQin@`PgFkoQRkS6%{0yTA_`SrUT9NX}U*c?a4=7ZgIfRM@c zZprhg0u&3p4yYHm0@4+#Z{EJWzOdj#1i=GzdoX_S;>Fo}3-DjAsHlJ$Kc&Z8&=e24 zv#yCr^!zN1dCvi=a1>lZ)$|-al30S@QrrM=M3&A_nDuVNJY)j6VliJ zZ}a_TEK=W)t;J2VVMo)+_YtQ9Pa`4feFK|A3=P1W3>!5%3k<`c8AZU@k1H`ynZtd*c#8^MX^Qyl0xo&)%}@WGCfV%v2I|F6AWZ~C zReHlibg_qu@W|WvRLAW0E+tD#y8E(OSZ?&`_G-VPAr1m@E6WaI_&O$2VAZ3_^vvD- zLb`GK6;0+aK6k&Hh$>>VE)^xMIw=17Mo=wqv)yKScP{^{ApaYZ@^l4CVqsUAVO$Tv zM|#fB6oU2#?hLH%Y^V~!8#R+o-Mdy#Yavv9eDkQC=ttuf^x0r>39|Wj-_EikizuIH zSm5!eIXFRBR!{$uXcr4QUya1aJU(4386G_WvbxpY5Tzc3q5%RX4+;Vu zX2)F@(4o?+k z(gFSW-O^b3rYw20W2xoX0pzyI{F57H&}k)_#Dj%YtOLdaie z?h#lF<{1Z@s5K84kAKYb^N!CIoNIVEDvE`dK@%$7=4Q8u?T&nX7!##`+%cgHP!b{G+1V_C!rZ#7(`A0!xcT zRz9R0wY{gMFc)cB<}of0?9X;X7+8|_wV$5-}iZ+=l$J(luv)i$8}xj zIL_ld4nfy#YTo&@-RS)WUI|4WEt6Fy=3g;!FjF*dD$>WWHlvj}6wS9Ej6k^60^iN2 za4T+*V*sumbay5RaVs8%4z%ij0qWvsbc&wHcp5{e8wm@_8 zw&}bwV~2tB2kE$*>e;_n!)2#Euy^1ru)4CM4U6i3MzTTWXa<^Npq)1{f?)j@Pdt!a zXfPX|;6i_rNP+!gevTzjih!<%jhUG{u9w>VIJvsIy5K9M1?e30_h{`W1j5kbl$wod z*Spt7dJ;=Q3-q*s*Z#1)r2U7e3v%M3Xa%kk40VfL7T0u%3&S0LoeiuwY1(t3kY655uGKr z%W{WWO)J9*5L*=`QI*R{AYzr7aL{dV-{(o=%$#jyO#;``!<>$uo~7!Kj=#1S-YF|2 zJxZv(0+xF3S9(YfvrVO>uum5Z>Sb_4I_ubxod3Q_*T6!E-+6tqiWW^sZ1mll?T9NCp;I#DtJyI4OLwq@`5JVtbw#pH5r*4at zl*WJA_zf_nZf!K$FS@00xAzoE8C!vy8)bjr&sQ072!-hRa#Ld~Y*r5!jJ3865qZ(&GHULpm8^3uuy9PmB((HR;V+6N*c!swkh#tLC(UdUynt2;jXE<-@Ld>JkjfZ9%7 zGgL@pSW6loA9o6H1K=8X2nFXC1CK`>9Ghh1oF1xeKmPooN?CAzs}H~K+QzZ6!J2L_($>Ov|dG#*~4~Tr8#WW=G)HS$Z~)lO-LU?L?UZzEE#dXLjlL2|5~^uJ;&&$uFYjX6qi$2 zf8Xe-g{w+93BBA^!nk*Fhz)-0$>NCcM}4ujiVj!UaxxHeW6SNXeMC5EL>dmj++x7Fmb@D_XJ>1ekUPk zXsfrsJiK@BvgjZPevA>Xt-F9=t1|~Z0zoZW@dlaUfkr{tl9DZa(|EbAQCwVH`JUBu z)oq?{uX3ekBaFhs!$DB{gZAO5jz_OxD=>Hhs5~IeT~;6bSl}#1OH2Fm<;z^@bQ2el zvfWsJEOrKc=9Txjn_oPrzyu9$VNudB5cNRovB2pBG@3wM_FhD1>?6-wp5MaMrC!U_ z#CDz>vdPa%j2*zn(&YPby3#Pfa7f?Uh^==-a8YZTc28guz5O|;=>=S@qrhb# z8E18!uq;h=ISJaJWY{)a8%PFR+Kl%CHw3u&N{dd(+nf1nS7iplH-m00f5M`zoqGe; z^_Ivl7S0w*|7TwIPhvFw!0YJMNMReQA96!#Xe$4$Z#qj`2=4)w#r%qO;dcAmHo3b@ z8dh5NE7dI0cZ0gBbI*p;(W$BiQf$0+E@x|@s!xwNIqE-a^nVtToRmoqOWVX6?e-B;&I7IRtgNgk+Ha~}jq(_a z9wtDXS!ZyHul6S;f!ybF)(dU%SDl<7T16RXw5yVnHo|C zcCN;403{yhl*R1qSnnT4Fe)tEK2xGWe~FC5C22l_j_eJI@7E^N(z?AqVK>zRo#ofm z#qWsR76o}An}XJG3-QK-2B)+Y@T3c_`}h2U!Q{m&;8my^w8-`3L36u}O|Zw?fU-IH z+mCfJ-Ud0^FX(RcjOSFH&qki_>i%6Q^l=LJc(v!T6!WSdKS8=}mG;WhL@v4G{ifgh zuY6m^H0f2P2kv;$Q|uD7a$~htiUrdfE^p8oTM=VmXkGEUCZqBtp(W=dC6kTcakD7x z64fmgd`T6^*0-@wm>Oc-Xk=T7*Rw zg?&lgBrui>SI2HAA$Ro}{O9ObKZ?FEa&zzdy+Yv1G2M`=97OaxWH&S}?loJndn^kp zYgTS9EmQFq_MFV-i^u`~djtih-xf5R)ULNMb9FW%@!-l0LIdquL zqq$Mtg-13#8cCia7k##PRR`$@r%L)N6yE~9KmO=JQYfb;we!hRBdc$Tsy$}sPr~Pz zOlZR1-Oxyy^)W#ez8kwBohxWf@`zq?T&CyA!zJo)y^3^%-~{TkkaPO{?uRTdWX7*h z#kdi>NyJo-Zjpj`+TUh+Y{aEqr7_f~QPPXDjNLb~`YclO8}l+m_>$I4`gGotq~x71 zn6WQ{{cyNP(}Mk;Uu|OCOD`uJ@+#pjL=E;p$z|DafSj7N5#>y>|X-}TU3`(;sa@nn#{r8fXX;$poD?5|2>SR+qPPa&T= zbcQnk-8VlchnQlMam(vWzx37V{_ke9z54UR*Sg)hXo@3nWZdcc{*0N>3Qu>JV75`* z$t(Y?dCOTr;d(wXjA&VBM+)X+)o0B!_HM?ug&Bnf3=*Z%) zrk2>;ByCO9lnwmKzZmwg+?CT_c{L}$_-3&(3T+tJI}!qOCScO-GrmO;U3pR;l`if?n6OT8{3FLW@xdwQ_+K9)i zF{>vtaia{eXo?=m1k-tms)Tw_m`%5yQ2CZ`Gt% zh)*sMq#LH9OdD&aQyG<^O&ZlUv8QV$BjB55(Jxs}M^HRsGeZ zqtvfw4yWbuE#SFrY|eD!*M^pI*~v(RjrU$^ZE;B#-(i5G<}2q{UyR8FC!dC;DlbW~ z*xp+n58LgLad!C`%*HW9r!b9BSWF<@jM$qdmjnPm?}3_CW{qNaDc1BSWg#gQdcl_V z!7=X~x=fdVvO&I1(QO=zIWB_UM750=Nm!OBR(6bESfUO{!#xZRDMM8BMrk?QAB=ze z?Q`vYc)CoP2rK`Ur-C=4Ey=b%dt7cw7qfX%FhCZ1#2Aa|9B z`kxfciugCJaP0&UXM*P)s}YZmf7etJ3u`F+wC)cT>i(q5yKq7Lif@$NBHqj~_QJrh zzXHAi52nv_xi*Ia`)2&hemm}lb{hN{BYXAX^hO-b$8&9p_Q6w!3zLbpFk}}3)Y7vH z7(lEuQX>Vp7A2$+`Rs$`(7;RC{rSnF`*aN-o;E1wyx1qcmb&^e}P4rG~Af(EdU3X}PmXurQU_$h2qUx0S*V74WSwGpL);i zw}A6(m(4d3dfG z!}^y_8*Lop>>HBZ1d<1cw7(rgEO-uGbjkrwO7H1#^sBh0OLnR92mEA~G_4Rh(C`1r zyq!~#jLc3HE<7p@%qUk=yQ9Ul5sal@JXjIAVmnN%V0T@Voo_^DSl!pPV2k?;2F9_O zI1hdwrThl2k8Vjqnze7*)$p>gpy2Z>A^L~D=NiM0L@Q18+S+HTlkUcNNw&QyOsu`k z;L^8qlL^be{G;rxCk)t!db8v-_fG<@H#4008TiiUF;b7OV00edT+j+VkfmUoJzn~W zIVj9UW&Vw9JZOqk!Y*3;a*FKMR2s#fv<8n>d2i=&aAFc$2S+

F}HMMBPBh;v@>X96W1 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
dK7T9`TfX& z7o;f8B#k`o5}oRQqoOJc7^SSandZ&K%R}x*ha;3&=7F4fnY-~tLNwFSN zfNk4ImKx|u#`^i;oaRArP`~Anc-Fi_q5bRD;nN`i`?|Nra#hqpqY!3SiEg{Hx?$&M zXJZ_&8oWREA7nTTdy0}&E}YT*jGN75xIJ?7>hW)LQvN)RffB*}Zz$hE1AT(A(G(`K zSk!jq$9;#aAZy7Lrhs_nk-`_-!(@h!Kc3C8_n*&G;oK7mcjyXwFyjn)C0E+?r>A{F z7Prw(rjoc4CxwT3Gm~)$so93HbxN01L@==hgUn?n7DZfZdE~uHZ5m?5MX2iE@Oj%! ze_-B1RCQkWT0O)VxME^DAz6IHwTgZNI4~jpV;-T=4ZoH#*H}F(L$A2&ZPOisB8Wd; zrR=$n%zjtuFr`bon8zFo?k(zxdz#f)Z7V$T2t2Y8JP9B=lfZT71UBpgv2a3mXcGTm zY6%|8!a#ce(LL|{pL455S3f^o@j95k&uPC(Zbco$lQ3>xs?*fDerLjTzRi99OR#kZ z;-VoO5I~2pIY9VWTybO}rR;#{0kcXerHLL8s4_D(wIm;~Ea%dxtFfA`yWAw;{mA6| zDS)!TyIQUnoT86~ZIco)P1p?3kQ z`ejT^h$g~-)7FFR&!#_PbT@pQIsUs$^qY6y5onxw32?C!-q(l-ULb4L@x0yz{=qk^ z4zNG`XjoZFJI0n@GbEP+fd1RqL_U-70v|p*5FG;kYoTBT+_cmCmP*WrZiG9McSNB! z`M25;gA!XX#xLywu3rJ+N1qmsl4-dKsN&DbB5DiWdSCmkBElc6Hs*Xqy(~;5wdvwZ zxG(x7hW}|;hC0Pyhmu6+coIdxGy2Ts&ahqL1XjDlh8hyXC?he`=V<$c1?!-rn6Y_D z8`>+gN}O_9HkBf|btp|tAHkuL;1up~yUP_}Vpx*%Q<6eU)IGH5H^jlJaCOD*w$q{q zZlL|*c3VFiL?D~Bi4}{F_}VH3Ly~ngXQ>a}+hl4kne}9{o*mTKs5g3rozDExcW;{B z|I|T3GkkhDF*oeGXzf%R+OolPK@W{`Bv~lo|?TG zG9x+p@mK+Q6l^zq^!2UVA9@P<%&=o@Hky}!@IZll3A*0{#Y;~wG4?qJCUJYy7x$$A zh?|vFRd_En{1&&i`bNX`#85~&Eoqdl74^O+hx5G8-8#@(hIQp492!^rq9Ynt-ba61 zh?-JL>0!F?UOZ2`b^;Zo0J;`MkrFT|FVL*A_ZR*3(3E5IG5ejp*tJo77rg&WI1hu! zcL_pN(;`zi_y#-1*h@wR*}Pd!av5pM?3e39dI%)Z%yt4L076A=S z;a5*5IPhVCPFO*oKA4F3Ls&&Z!zO)5VZDL1-&u3rDAbt>wI3+1i(_D{nF_VNvq2GL z91es$(vC+qA6!a_-7@ML>q%ewqC802bNFo3^-)y$l8=8U+i>;Nt#?{~(H!gb3Y zR3j;iL;MqVS?vU>Aaz&~Peh->Kum%Mr9&;DM@ARKkum^KJ_{yBq5ZAwIj691q2pPR z=`Vhd;ar5KZ|pRsHv^jnmrls&w<=`UIhuJlm3`~@7QXO|k!BfT3c4UmhS8B~d{r{d znc7`3>psmopmAB)WaJmx%;xx#H!NxD`n88_bD$setFjNpxy$KofGVz;NjB_xQ?kiseY zCx_rwnB4#fa6muGn3!J6Nyq)$415bvHL#QS&{~h95089YlDBA+96N4{E(9J0hlQbk zObi5o-%3X0kH3jziszR{Cw0{|gB#kAYTknAU*&bf?`EBbjPy*!Ym0eq(+BO024m0W%Bbs9kD5Uf zye}2wD%3X1o^6JLzLLHi4W~&dr2K}zm06@+B*Qw%7lD<@z^0u_S@wIzi|Ws%XwmiW z?3be{)L)x@r7E5OR7-6n_6?HFDNG0f8a$Ob>y|h=%A=s*K_z^9$*JgV`XDnoyqhO~ z0XhC$me3Q|Zlp~-ggX?u(UcfYxs5B${o<`DpSH@MEPJs8%|!l_-{+7+Z`ZGT;SwRC zhL?{xF(f(lrC)BpX;kSrJ_v0Eq_X>dz1t{%rIo{y46a{i@tAp0Z^lA_XP)*Qf(P|# zj&I$lyXhIhD~W`1qYrHot*j?`TMYeKtS=-t0LV}v!eNsldi+pNdVCf6Hyj%y+n zB=3S*^JZA%W;Euj)ow`9u#XUUD{`)%jmv=G^+m*c?(ZuuI~-Yz5B z-!l((qH7%i_HIy(x}*kun~M#JhspyaF_(vrVV%hPPQV+A&i@p^TS9bivjH=e>V+df zuqEPs8nYFMD}e{E=mPdJO}Ew(yTxjP{>L6rH$$(du>MwE-{9S*uT#gmF@G*Br29SO zLwrAeq`%A3)YQB@oU4`I9~u~F(Mb9mL;uCA;)?*r^0qs)X=AScYMcG<3p(aJ7V||M zby%FmifYnZA*v7DG;It1@n^OoxnyFq<>!lXC94W)++UIvMqOZpiZ=Dv1TR`tsn!ebVA z8bK)CyFe4?faA*lv~}-^f#B_+089}Z5g$aSW(uHb%&*ZDup}$*@PLLQ`|G$AU!PrR zM8_UaXGN8Gqp^6a)73FsNisP3AWS5}PDIAl42q6cOh(x~3n<&@SP1?qJLWe5iu{h+ z3dn@CjDi6*7@`Gu`T)tJpP%3O^EdJgalU{@mwg0akDZT9nxFshtp*81>J4jaUI@bX z5=Pw%kfeiU(BCRTN{Elbz?@V=N*zz2PJhM3)L3is74l&MQ0@JVd6?p_x%y%rkcUgp zOo%M*K&OWem^n8$rBXHg80MY{!$t4EY0wkPjCy#ad3*0a5XIZS#TRSW81*jR@$xQa z;Gau-U;h2un^4juZG!CU)4`&z#>bI~QlpOGGsZbDl;Sb0-ofn?OTo z7_|Bv83^se;8tC5J9QhUJ0rP3&pmPFr$ITD zrc>9*&Y}CEp3FJ_1l{>DEfKf8k4JD3aS6*;p_drEd#|xQqwbr{&I@pleVWeZ1U)nx+`xO=txtp$G~}Vu^5~Nz(sdYLVYu6cTtLHA zV-qrbX$>1$?y!q}BLPzjg~$N5SfV>z4G8!S2)UV{Dg|0OxxsBu?FN{)keXp6?^-rq z)r?R7%VewvwGP~~FFl!Xal)>TSjey*rb|HXl+bSuS~Ma6ytpzGy0N=JOsy#0p!I5Q zp!p&fc}fpVln51apqm!~hVRfLN&wkL?K}ry4NndfX*VnL$wuCLZn(}_-JrbXWuwU6 zbLktHqO!8RqazZb&-MneQ2)Y~X7z5ne%{b)D-VGBH_^iAAyAsi`MLmdY zyQgh*wR&d5FM3C@ z&PHQsLH^8?a1aRszku|N7Vwp!y}LRFYF~dq|G8r27!)K3C!APZ^wsV**>w|H0vcvU zrhRzm;I1{#x#5fow|^U?>}G#_l!k=yj#=~Jgl=qRb4gT4BR5o3RIKXHfH8Y>7RiR! z;*E2*^;yR|*~nAX-vB@3tql>zS^7Jd!{?};aJ>A)aTgc+e?v1-KD!1htkJTcrkq|9 zyPVNx(Z$eZb-a&(p^RS9ijFnrw^VIcWXa+ld)XiMO$7b%8c4cjOs9#i;L`dtYibuM zH%;90hq%-((v3d}hNkZuDZ8XCRNC%jUZ$d@llG%Qw{gDI51Mz|Q@U(2eZ;Kj$oBgK zG6cNPmnhzDjJM6qWuna*qrf$6CMAUPG=OTb8l6`LeS#rs$`lotwPEn4=Se&pfvk3lZ^$O*x`2gsl982nGYc!2jdvoIg zNn}hmzHi-TD!uOPEWDYNwzqndA+}5L1xlIvR$u1RypnR75#1Yf6tei}?E7v?MC#RU z^4jthJZNm}LKtv|5nJFu0;X<&#H({OX$9c*i|^Og zFp)ukw!EUCzsi*w@};igf-m@>O>NjBe?QV}Mqf^Qw7t&z_o|Xwwux_>*k{?}~Zn(aZ zHs(k5zIi<{ctu6CJ1Ciavo0ioXD*A*6ND;#OAGu$r(F7p0AqjeZxg9O+xB>oLLu^0 zk@#%<7X)l?oIri)_nxh|e&@3d5aox>4r49lrrFHO?}|xUuhZSR7L%5#M)rcVl8=PJV2yf4QcX zdTrJhRjtczr4SChKCbJH`hcYk!27!bcyRU+7c&9!I`y^1fD%{x)b#X~wEgl}7aIiyl6@U({*{dJi@wz7%JG0qre0BFA6xTH>(#4W>(FQYCcp{x*iy!)F(yWbK z4R}0sV=jLeZpR%1DB|MH?+~lxW1}nCo8-!6qGw9j)rth;@uhT)c{U{xu7K2@XAg# z8Zd*evwMx1jji>#b=ns(9#S8+=l;#Ab=|dG|xvqh~r{cK!1^Yl0eI#<|?v| zfB>)`4Pf;SSbG*06u>u`K*CEgExUP&x9m@1&Bl|AVvX_5pij6*4M9H7Mq+^#jmCS z501|IVr@sqld(qQj4z!FmXVBlRHN%t6_b1K8s}V^;lOqHdozHit`iU(IzFWCc#USK zHd*y_IwMX)L17wsbM_=i9Fe6eVf)!1z;Oowqgl$dD@1lG{L#qo5aa_Z4px80$9XP8 z?c-dN!M#%5!|eSuM*M|0F6>HTreVyp+$I~+I|w`X1{{`(Cv5+dzQcPe4AUyDQd3cdMuR7uVobx zt@_Ts)+X&}pl@C6>W`YcY`!hWfOmRBvrtE&f+5Ii>aJ_nHvJnMBT+@mQEi&IWdB(g zsPsC1mII==aJpVs^zteAYVew7`S{@Y^w}&O6KdQ~yf44%+|eU@q1$nFIAn4`CQTon z{tOPOqz>aAJX;5?Lke5jyKC4P-4PhvLbIdy*D#zq+NJAQj;+QvJ$L6m~rlbG8oJ~{kL*1~4yIn~sxFdJ#jE%ymBmZiN)B|knb9fqq$jQd2 zI10wt_R9LG7qh{=9rg_&sr&Qm!=qIxMw;rdFnQL|k3Es{oR~GrkTKF#vLyc)E4;~G zD!aqkCi9($fV)m*0|`I#+k!{~Gsd<)^jNiRp5Njun2z2Bp7sTdye>9!n>9lUP@!O- zj5Zhhp7SVlRa=>0Nh61-N(J(5g=n|p{?ga}4W=&ZrIeNWpq=JS$C>L!Kk`}9)qo(T zI*nAmaPIY?5PV6%VdYvDkGAJ~=&Jv`0@gM@%FnNO42!l49+e?YpQ`+%g~x+jp} zZ7u3(IFv(*ozy(AJ!*8cmi^bGp)03{*1H>Fk9I2?-{bjd+~{kAi-hwto*1lDHmzfU z{-u7*MwW?8lC6O-H}l_vyqhD+%|7MjF6HH{8rq4Ro~cAzA-^p`zFYK<6Tb=;HEi(B zIB&PIKy8+!- z8NoZGG?Ska?vPUCGal2A zS&UR%PAPPcfohFYAq8EGWCu$ofE@>oJZVopiuMBQmAJ2y@sIpmyNiT$MCR48xEX8l z!=k%v9b@#iFI6h0&WCTJ{PPwO&M9WBJ*q{68RV~3UqwH#C&z;lx0!Vmm7D1;OXzKF zYD`n#u8q8B?_7kP9X0YNir4%7YL&OW$(3I6B~X9|S?mlaR@CvaWqofY?>JzT>! zC@9=Aw1U^bt*^D-igP;oKMjfhT1=;0QD8XtbE)@ql8<;N(u{XyV4>D1oTbQ+4Ixvt5rM-b)!9q4NnItbim<;R%(BA zHQlxAVGkAB;B*xoW2(-Pyvi)Xh4(}&@Sds#g#Ta>KiA30BHm_Swk31$|4!X{k60DGj>{W7v)}-DkLek{SFlEgf^%*~cO)vlG&+hwMfDo7vwHZ@ZHU z*)sZH>(nf!<~k{dxme1z4s~agbPsBTa`4KFOj=|Og_TBy5tG*>?wxOK{~nkk(;1K@ z?pqs-ic?D18dT3;+z6>?vNgSW2-Y_?YC}G3cYwvEjNkY&&wDD+P1yJ1J72FBj?ocf zBGLIe72pc!rjLH{Jw_p`88I{X)D4p5Is|Z|f6n77oB?G1$f*lgWWwafzwiEtD1rA{ z7M^mec~BQfJs*q4Eauhczc2GsG-f`o?Xv+!qgem=#Z{eXovl8(~EjjhZ`HG2D`e00>MTqqos zdnPtT)#t|hy28tT@<8K{m{Yi&?>9!hjK&?`*GObzaz(uGut(|9I(>txVZha0dHFBK!lh`9jdhh|9CQ#Ng zTnet~n;AbH{e2ajZ#zKn0ck$pvf9v2E8%Y+xd6H3&H51}&&~*Y5)^kAibpe95#-*9 z()1>r@G10}FXHnkv^wKcIU3Jo_tmt!!`I#-+Mno7-shQ0u7Dw-zOJ>n_HD+Ce;nXqA!2*6^6f#F^UPF z$%H&^8w+)M1DE=dF4~a3RNa7FD#q<_d)QG`wr8QJwXF1xR+)TXYQv?`C|+vIrX{do z!<9o(RyyzE0+U~|)N1%Jr6M~o64}y6paYI9W6=^ERh@-3mLEl0ojmL|$BcrG55#}M ze4emhS4(}x7nE6~aefl_4fzPg!0CsOBVCpm*();hPcb9(nP2i3T0A)yu0|fNAg?=J z@4pkzMJQ?nLGjk61~d9GRprdLw$zTJm_u2Ly7;={JmPp6=hNSIgS58MRcpGyRNDd% zJ!Uj(Jn}xnYFSa%Gq7y$SFwJ`7*RV+quCCVhw5l!XXxGg&+nd7;Xjr!>6uf^7~)pN zqr^m-pwXjU)Fr0!4gcCA1=dr)xZ_kx9CIJNFPX0Y)EsL*9 zR8rd}<}{6A@l~p**6~}7PrO8&wRsFLOS|}nQYE@F$+cL5A#K~}#cFCF$+nem!xzLB zGb#3XWW8R?f2xeq_djy{BMyi4k&4|f-w!o5lGb8Lxy74?uR^8p@Y6&o!Z=-IGDLKP z^jg+Qxl~-n#IR7DuCJ*~x+oD|cf*1I4gMKisFRWLDWto%h~}y>i!mo;Jlzm?p8^$@ zLd$kERaA_mi*@}kvFdtGcX@Gs-STuj7d`cJTwG?u9}R*bSg+@dI;Nw zkOh3LdICY=-+^|J-48;AvfUg14X{*!qV;67WySM^)gHLI)b{>^}(g?+A0-> zGuAVF3+o>M>$2x&l-sO!yAuO2%=S#@21f!YX0> z+&({1AEOBQtW$X&b!Uh2z+FepTK{*(L#<)2+yZE9;~4OUczzi!G}dcYJ^YwxKdjd= z_PORl!Ui=!GVOP8UM0lCyr_fx@cxaUz!c5m#mmvxe9kXq1EkVrKBGhram>qlT1b=M zMF=A6n9z(mxXViB^G)%;gRDPFE};W^=8hs)JmU~!05@1O!kQKRB4{fto6#=}#*Km3 z6=9|Pi^kXFNoQgFmBe+gv4gIL*tNLbgl(it1xID2xu)w|1Euhm-b$OA?{?2M4J=3JjWk8+dbvAtAKHQsci|LOD=XWsd-%TrK;_q}m*-jkwt-cBz z`AJW5t2^{89PeArTPJPQpHCIU_{fcRcY^7-a!|HoU$?j3qF3p+6_SQY+v|h+3Q<|}= zhY0uFTk6TqzdU|xroAlUuCi9Uuxx*9JA1IQGrxF82By#Bmb zA>rg2Dj3aZDwUEx{`>QF1?jIWhgzKH0UPzj<;(@1_#^^(u~@GxBa*~Q`p-xjraSRa z5s;a;A0_^fyC;nkC;TSR^Wi$Ff1|R0YA21L<|@tL0as$;Jbv1%2xdb#(TuCy$p3)#}-`QYphepk-q><=%LH4V{lmt9qu^MGWe%;=W^9C za)#Y^Fi=wlsT!?Z-1y84r(ecQ!;Ul5PDrB->{`ong&OoQk$j{j2ixBP@}rC+?L&G? zuI`)x!GfvQAL8$S=IXC52p4E09UG&|{bBJpn4J3H>GD*oN-vS(vnwBg>2~)Yj?dOx zg}Uxgf5{Wd|1ie|($ll1&8H#wcVsO>bo=r{4lBR5^Yyc5Ve?xj?`ZcjFDHo!Ln`>> zg_X~r%ISG|_YAO^pBQj@7BMgX8Ay%_|E>@xJp9@dptLHT3S~tm^QcR@+0;Xli)E72 z83r}B1}DswUURyuHp3t8Av#FXo#mUB@kcS2ABQHr*oY8od(_@4p`_KhgKll#u`RV!o%wOk|4&u&Nm3#62pGExa$~a~6jB%pz>5 z16QhfF2{p%2Y9S&FX#LFg36-8T~D&A0a@Y9n)G9pN8?JE%!~J!8HrU~w+b_nWZ6{} zcL|-}K3u$xuZ_Z(lN0Id8Q{rkd{i{TZ(9?c#vZ6UZ?mBcK~BOm^#wDndH*w33iKJE zrvYr02`h9@@A&K#w~M_?Qs!|Ax6EomqPtMY+Jn6FiBT^2mVRf0(x}Dt!7RCo^L?jP zxV|0joOLX?q3nbG{x*aA0|1}pw)Evy)|XKzCJtK+{4v!Elr=P)oJzLUSLEjqumA%p zQFdnlispZLw-06FLtNcOvmu*qYKhxJ1z~}ikG`0pum6~$;s^c~$|*JKOQOEsU4*5qi9*U6m;u(p4mZ<5nqxt+DL?4;5{ukV}JYo%9}6<Ic3)QDf}hC}$(=<+kmc_;pB z0b+zEkG@FFNd|%j=;6^QP$)10<29&F`1q=ajIh&xCY= zEJ~AZOB-IhYg9Lk6xsY>P4B6(qfm5P4?T$dmaXf4Fc5{UsH6oE~=Y9;@1bUCy42R!|wymm;iNb z5#d(Ut7$IR+&9p^VV*VgJ7Q|L7YLbkN2)<=99^lemc!i&u*(!EU-=ggQXL7fWmq=z zKImkzKb)sKzza^pv5}?o7yW;ZGubU;xE3VF`ctufLh)^;y9mXN}% z{G40E@4tPp0ty+pdw=f#a_;EmO2(L{RjTB6L%h9KvK*g98M%*-{8V^o}-}bTUY;1Y(rlx2i4t|#^S&Ze{K7>+q}j{|AP>~>!V~Vl^!LBM9h_S^SSUI>16E!* zZTKggF2WBAB7u2arLHNsr}m$%bhD(zR;p`}lhc`H#*4S3qLhQmWlHih-@bo1bgoEh z+U{y9dh9O!rJ+GV!%l04q-_7MvLLa-Vt<=JC0}LfJ(-U2_wq(tN+p8y!xj;s5Gbu= ziK)uYUOb=R*H41`TMd^{KT8WxX0m)>XM)B3B+zxF{QMjvE@^?lDlkxaM-FLK*-cC2 z@X2HSo_Bqv`8sclaBEpPl}%+^K}%>d&oFfy;QXo$$km8#)Ra^rFl%92^S98{S5@5d zIt9_+6==7WV?Byxy(hLDs$aXaRb|50+FdEKjoMtj?&B)%{X+GeEkz_;=_z*ci<#yp zLrF683rbjt5OE|dn>O}pa4d$P{1qHmbd=S@VJ{C=vThKrM6>83(7*Th`|P?gTKK0- zW4$)Iw7j5+Jzqc`BqE=k0>+E19Qfwyp8yg@GfYxr2W!{pruFyli%A<~8D*BmW_#S~ z&g3=HrJNa~Ucf_&`WA||mEZl@de!@mzt4iwCWj4*N1=13kx+LF?FQ|9EC`m8pD^pS z8pqH2S~l};yzD&wn{fXb?r75y;K-0GSR3p!`tRHaVWrSd`x+1ND>r$NXAN)N%Uhb8 z;R#p8WGj`bZV-78*-*96?~lfi(34$(6}g?<^H4#MaP>BZ>jgY0x_AG&Yj#_>8rxOt z>S;?01DF}Ep+hnw#8ug>IcHFA+fYh@`HkOIi(hsgP2V(9yaOmS49XqqN^B$R`5{1Q zF~gFclzepWR*0O%>F6xWCXQkFC2#TzjKayx_aMz3>3Myq=Wa5bklo?&a0lwqes^cH z)dO@>yQmforP8eB(9;GBiuYyu$MJ5M%F9JDN~^`Ocv{LdO%}SnPs{6~(unhSmhE%W zK~q6!77ezgVxFL0JZoIiGV}X*KzV>OO^ZXdZ+ZVX<;R4~XVflCW(6U+H;ZpjtyfDi z;<`Xo__}B5JeGUuB|;4TttbF6_tW#tQp*b1)n;6KD7X8+*6=e@Zo*yuj3|o`H3_5b zVYG9H++EmPC59;CYfJu%Eiyuv_-RuMCg=`@`z;zcOD)}O%7W>jCcamHxIfWV(IQ)A zD;%_lmu*F+;ut-!XkOSP&NTCeSz*2nz6rD1A@)2*Dt^epm@LCbzRu)TY z=cH3+zQh|#QuD=V58KYE8uOoH>GTdS4IY=&g^_7xViRsobH)y(%S!M@;C*SBz{BJE zLG{t=Za|dHL>v8w6fP#J0_nW*SIc)qYN}M-d|YT zcBj{Zs{XbR+akx84A~)J(DopKVAE28wM1l-S5@AJIfrY6Dy!~V;yz@@pjGGa@F8QBF4BvZ;SqcN zCBDMfQ;9A#bgmJFHooM{Szl$>sKF3K)nj;A^h?>zCivgxt5({W zb*Ke)+*KqxYHpG9d))>3`VnwQuS2kq8NZRr6#4DQM!`#W_j9pGbSYqF^;Z-6DZXc} zUpjWS7hF~HRmGf{B_ny)3(k z-*AcEm!wR}jE8j*#!gh;J8}FQ(Qz8_eK3^}9>+j83;J{x65{{+rxJqfIXVXVWDaKC>Jx?Xjksx)0t* z190;q`|8p(_B4^mhCiicjZne4`r*IyMCn|S{STG{`?GohzhPdl=;t)Er)$QIC-7Yq zk=an6fS_)f534&c%Q22z+VN|e2Qq5L-|`xY>ScKwWvRbdh)`D63r-EJaaJ)bF>off zMFOU@L!s+CpTzKT)}DG}5ybqEbZ}gKp8y#Q@JoEkp}GV4VtI>18$_U?u#z-b zt(FEK?V>>bRygG7dWyzId=~Q6i9PZYNKW!K-qo57CePG$C{^dSD_oF5_f~1qa>&d% z;td`SDvGa_VY@E?|Ne#4eQ5uE3;%F~hoq8suWv4gI*uvkA6vYKgH6Mshs@0jZKx8%~%_iU!$&>pwYua7ZZx)wtOd=_b#esgMXK@2cNRku3&(Fza|R50yfg zHzQv0^=^@Q+B~Ig&q_eBL2vM>R!V#{9%lw(Rd`NPA{TZ74WONzz+@sG*r>$3D*gZFm1@ zU!<&Nq{zOmO#g6RJF?QD(jofgR^Y^-PMh}*lmiKmx9{rmXF#=1X9z;Y!8m+_^XTF+ zl#n)7#LIzeJ%)f&p_APmEmw!!8Vmhh4vJ9180DFeH=AK9VXWO|_xEIzY&shEFk-Tx zz?8MOopi9LU+_CqNu55!d>&N%(pL`4Y7Tu7^X|A5;xiAndx`jtMZc3$ffS?nygFhl zHKG)&nTfwEj-5?#Acp6W1Msn0;!y%iEb{WmY1 zoW?(<{^!{I)RRVK95RdX+uCDdI@lg0pMffHWnA4Dd?_hw}H{S*OOxXKF^Cf~@>25w z*@xJwM|jjoCW94*-clrprd=cBDwZRl#(nIl| zCw3d!o!+~NdivP|4%v>jEYkv@Qrk@086$!PTk1J=q8ZKaU}oj-ToV8IBpwD1ME_81#yAOu;VFGG zGQs~CrYoitK()7{M!GJ7=Zf|8&YAm-koFrfNp!Qvj{T2ThomwgpFXV94_^fRnpJ%d zlJtM{6!nbGY|ojA#tk@==r{zM8!0r#E6Zlj+Co9BOZVqsaMIbyQl-bHLCvMhtyFCr zLuSK62?3ko8vmf-D=*oaHZi>pc0Hqy>P-`Xs+DM2Iari&A`u`_qMZw6L=*CRTvGA} zpho-so$DLVEbApM=9jh7AGgMyw)=C2>B{K5D3AvQ$k3v!iq$^28v}9a>F5#m%|CGo zWwjhXp!WjC)##T77O2CNLv{OiQ@;ZHrJef&l92bWX8xyH4 z@XDMLs8+Npjdy~}TMb8s)fdHup#dFZy`G!~}0 zEGF=AM01kYGurQ=<7{x-fCC4kk)MfA;2l>9 zIX}@bpo&UXfN4J$J9i3hjtS{xJG8O$Y_}-6L)S$<@@gQ~D(2egV$edz$UuU=MofBb z;G0f#qK@Tnv69z15sRq=dh|&wfbM-D?l0kf85MmV6In??y7e}aU63^?N=+z%k!@IQ zBx+Z7gKxynv4Ydf0XlIbLU~=2`S60QC!+~NfmJytlN4pu_r9@_H)<{0jut_MP(}OK zy@b!?CR5;*!e&4=5aRi3d2!}go|iV74Ll!9B`=CsqHgzx7w)KdeJfjg_dQ3BJxAgd z+aR9Vx-oO6nXn&?rb)WuF^-yzy2QMym1bMD?NN}OZO*2*S-Mn78zM=W}G^htDxr5q*?zKzs z)Swvl$ae{1#43eXksb~ zh#BGOTas{?@_9;l4Zn|h^87@k=CCq<%hQ7+oj&GSHChPtY|YK|6pO+zm!3)6nmOzH zSjxAE7~O2U2EGuhXKcqOx*qonxY4aVZ~5oAz2o1eXG*0TY*D(cdqhwsnH9+QX!>H`Ao}iQ%^1BgEXPJ2y;p~Si9l7=3^Im|MB*aOBnl_XWAmXB6hD~ zc+!D&vLVqr{isE*tg=I4@_mjitGb{rzq@46 zT+l73faqT2_QKX&o1-HwA=(cESydDwcQ;oqOYCc?Sx~I?z!VGp>U=}U+&+R zS3f!&daf{De8vwI0{ByI)QKyiGpDoX2A?_idohAYKfN;{>pDmOm?dzZ_t5d!_ebc_ z+}4V|Pr2V7;%57A4ZcsFUshzO?R?d%)Q4L}M!H8+b~@1jdhM7tl*mxV%}m8I9y3K& zEZmn$voRFrVJRcRn=hWqqh*%AWO=LZ*OMoc%Bxo`cEK>(W6YT@)?wSyepOY5Q!zKy z+Ma%5hT4OkLd>0~GtJGu^$bM_`KSIem*D{9^AXPp-`$TuGAGUq#=U_0r~&#Mt;u;QJ|we0sp8#2^}BGN6H?oMY9 zCu08H(i-tKSk*e@1g`P?!gB8KYDAKgY~RC}M)9)E$R2(lwtCnv1qtK0s?%*95JT70 zdz)oC^mN&ktE6d{JCV1y7IQ`8fmxXb`LCGt5)%lL6Y_@M{;{MaWFqe~XJR?Y`mQG? zXa!Bbq1F?-|Glm!pB(XI6}SbSSUAXUxHMwL&yiS)kATh<;5S_CWJi(kBOeS(~ z6nLYPBsf<(bVqGmyCW+}XkrD7@_Q&f5%W1I`+gf%vaL&99z zhb)qGqGR=i-Mf5vk1J9;O+pVQmsN4maGyGT%}3ouD03_`EM}Gf9 zRjH+%ew+YLSW4N<1aZtey?B;|l=DmK4Ii=2n^sFy!<*a8n=E0#fXt7l=Tw#Xh!7JV zwEsJP&(xixxz?wjL!M-%+V1Sc7`{}%!cv`(K**HJm!L9mNMwCN-c>l+-?CGe9$1$ z(J2Cd(wuxxrQ=Agr9(9H{<{Oa<_vL3DF?ufPJc+Z1y`3A$xOe`vuBA}cu&<>uUzZr z4=3$S0|z^E#P&>&s8w+(z&7XX>`3&}OG*9wOT*^VXpAA~QY*7K;sehmFJSn-PzpN6}iayWYy1M80omwd78yKxVZp* zxlR5}4?q_`x>W*Z3m!N@kf?d8K#%R z`b&(B-dvu54-Ibaj(cP6eJpJ+7JJ-fTWr%?8g%uHsTQnhr~fL=_=aWoLm1pu;%wVx zn@36u*0Nu_OQ*IJYBuM}G&gJ3S18xE>$U?h6<3rU>-%X^TRWQ8yzAif1L{}@+l%7^ zcpcQUiPlw;J?lOkX-a`0|BXa{@;n}&9WglWPtP}k!nBH#(f^ax-|dn6ULG+4H-)b0 z^NYu(=(I9eq?a4Z!yVwnOj?PKjqI7};pukQ2d**~Qv*UG;=LM+qA&{<{1MIh3#eU^ zmwF+8XVkfibRF9jgJYj;*3jDV5Sdj-o*0K|_}h*tvSv4B^I)T69+uKRL?>~ATxFVv zA^6wi!pf(Uu{3HwQM{Gd-e-MvC8Vm!FY*&`B*%bGYdjiUq{Uw}`Xv{H_;s)6 zj65|akQYe?KD$SAP*zJ1&h~oO{>;osE9zWTz9Sf)HJPs+j7f8a0STLqZ;p-ShQ7#L?v(G;;^_Ci=4BHfc{vc(nZa@MfLJUTOEgL7QqjRM`WO%xFvf=dsN^{p$|@+~ zgGKnW=(-46h7>|Prc+aT?>F>Wt0-$vGGY(JBXA*8h8K%jPbU`?H9$>XL1qR~J_hDn zLd~Lv+8-mBRb!k|8N}4jq2T!Dcnh5Twl1v&-nJMZ?z| z?xp@y1?E~n0ygtKw~U{Bx5mOt{hSHYDCbw7OUmfl}4y(M=8ptc5_TLad$fM z%Pyut2Mh=8?)?R7?WLiu(Co}b--=PwfO$@4K31A9#f!=RN7Y}(McHWI<1ivf3j#`q zG$IV$FoJZ4w6t`0Gt$!C-3`(WN=r(2Gj#XBF!Rj)JNNg0&NHw0@CvTk*N(N;-V1y{ z;9TssbYOwq?)%x-y`GarGP6>-bN_0J3U;_0B!AA|Y5BNC@8R~b>v}jrsNV7S^32CY;bU>ri^8}8bGe0N4|1pxjKk{`>Mk|NO8qvj$8LjljO*)WSz}P z#Sy1sUtz``=RcbHF8-P|-ioz%EA|BEOe=O3yqWFADl7bq-FKIjr0eaq&wWIqD|fK` z^{(HW95J}lNO-64&nPh^-_gVR6={gyGec+45G=^ViRVLDsiJ#-U&dQJ`97cwCj9RM zP7o9Z>w5NC@m?|9*l%^XCeW(s5we#|vDK+xwbT4a#d43(Bs0H>`IbIPcVG0uGM%u7 zuq|;9M5A9~sjS;5Br=^{<7hU#M#AY)GG?3rkXPeZE2tcV-#o8I@o<6k9N;Sx1E+qO zPqKWGFI~F;PJ!{>cvE{zYA0v~2uX?~B(H`sYKyAQ`*90o{{N!z7wD}xW#>+dx}`(n zgY9SW95Kkal;CnTK!0PuySCOObW)&UlBXed(Ese+vEBlNv~hVs7DvxK-0dhrsq_Y# z?(giz)@_sbZd|z0axWE&%J)V}J?Fi>+H{(2#$V!ei>O4JPZ&YXK>6A+uIO%7Ai}JG zT^V5TcM(&$R$TmHzbZa}CjW*|nJ9M%wtlv;;pCE{np&upy?FXkQY*eN*+yoVCu)K- z<_}K=<=C{H*LA>4EDK6~*P#XF$}fyLXESav0kgM1b@GpD(pcy7>O8D*bPLWTu=4&o z8+B~7vI1oVmdbKcxV@btcsKAs&ie&IHKb%`Yya+KJaAxzfcg{J`>$QWtOihk$s2Qa z3}@K)9xhKu7en;{{%5A`K`3>^k!0fitmw{ZTUH%-3Z7O=08PQu&>1_ViSIIzRtS~(vUud%{?ClF z4q+vM?BYK}@DIvPExnKB_i0a+^}Egt)_i9Cb-hA*lM5~~-XazS*0~V}XZL(pODt=3 zs+g23JPk47bfeh}AuJkOoTF=2&dTit*0zXc7)*!IF|!DF3uq4l@H^k|G%dWnq^Q-R zfE~!gQ?bu>I0$sZu;sftEn_+SH$Ni}aUoHYcdt$&_9JK7$Ny)Dq<&b>1SOVgWwRj` zynE~q-JU1*vk>ag2_3{Pau7b@1{W0JKQmdrmD?BD|KvgWmD_Z38;wZVb&luHBY6<7 zkWPAb!2|~#LdA<_2WsYETPU00?cd_$$${95;|taY<$?CDVzSsQ}CYSxzB$R^RHN)GE|mW_HF*LsbQq}>6hpPF-9rW zyo+yF7j|t}&dZrrZ%Zq6?MzAKxAjK3$>h1oPSvh+@%4S`Y6dDQSfUW({F;XHd7?@i zxjDDu3h$M&qd>zN)=t+hvoF<(ODY9cA7+{eZS<;_d2M_vdCI+D;A(lw<*5g$p&GZL z$L^z{-_-9~UecyW`={VKcDAajp%I|$FC$_9{`H3Shcu@=?)FZqu4NC!YcA2*jzZA> zw7!N*M$XvN!~FVK}Oi4;ijygN#Z&MZg#mKeP@5OUvTmS#6sW#(C5Pc&VD%JXI+p-u3(URx4(Mr zF=eicd5`JdWm6*T^WOgK#UyijE{TP~KFiG(i3#xKR_*|oAkmupw<%T%EC-=R$HynY z#Dm>YF~l^X;g(rva4~CFH7JF3l;eX74nmuQz}m;)#Kk*$YN)u56E}ZekMu@Ym=@ze+N6%<$dWaC0v|x>+-g*lEy%Ng`E7(E)#O3m&h>&r!jDUkcc2Z`sMY{17NY~1 zvTIzEpyzc|hxM!D%QkPj80}Ye{rc5po!5yx0)xT6UFL&}@oai$>yjQ6o=#l~l0&|75_opyX&F%)@{7Y4u7cJN4H z@4JGJ#YDu;kk;D^dYsp{wCvYJLB4B!6}Wr-)vUxzM$tCRQ_ZPI%aJ_eyc&M0U)_EW z^GG_`MDjG5UEU(DgH$?KYxCB9X=IMmc6aj&Z(gdg2SluWEm{?vYy_8A@(JvpEVtfh zTiE;sQ8R5)zxP*od~@f-G<-$A9gh?(j`W~;bA_pRT_=2X*-7EYLcDO2>sd{B<9l8L@V$a>^r%M~JTG7c*YUaNlzu}YiqjTiDu8zl!T zXz*LjGWI6EQ~hU6mbQSCwKtn|i(9f)fm6#`LejiH0RtnMZ@q5f5xNJe71j1jJ3kQf z^RxXmSx;VI*CD<|rAhtb1th#t!;$|bQty6S2wERP6>IP)`TzgzFWk4AQ{lo_pR)Ua z(y8n8b5?!8pess>$TRG@JniAB77LG$8BUIuQO}L$xA3RCzDWCxM%Tft4Z1!0!|Q|u zG_bPsEr!?Q!#`t8S(~7wh$K~Naup1Il8yHDi^XzFI?3N}d{1Zo=N;iA?9sf@udNHh zr|a%tX{+%KNEBm_<9Eoeu6cUr&1Zyp z^Yj^lqxk>eQDzB9m;C^~Vm;5SH9F>VOlpm)QO+@WoJJ8{>9Jo2(K9qktS0j*`v) z!i8*9=*^C!`0vs1oqZPa2-DM1(^F-7{_L;2?#^pP@@Vh0QcKrs+3dOJ4mrAVe(9q3 z{+b2+POFeG4|!qx0?G4Z^%ZWoi3C;*A3<7t@hQs;rkBmOZ_Ln!KMoyY8ov(=3O}OAGg0D)MUJ z^waTq)+Q1CSdAtRo=|O@0l=u{{=zEWyx8dJ`FR2)(b&kf=3fx!Cd26eo-c)6xM9dt z(oOt4ADAh#`pMW;rQ|$S2P2RLVWhrJy<@2l7y&wTx~*H%c>Daz@ge063CqIDwSjeF z&zcR^nhnn8w5BR!2zkIa;=bT9f%VLr#_uqaF?#7@@=Z#O%1x0( zPC3QKh`lZsW^9@zSC{a0I;#5)E7$D(oT+M&M5d6v%aEE%3m3%%yePw^p3Keaz3xC<6hN$eX2u8j#CAAm35bwmMUJML)66w zus1S*u^LP(h0Kvq7XHmwwB+3zrBBBIBqZ+;7cHDFCiq_gm!-ceF8@AOB$1LKgrhHK zeLhQUZ^cMN^7qTe-CUs+8dk5OXWPg;^(Irf@t8kND-2o=SUt@<+10ryvF^|wm2mm* z3Zw@N*iOe5Zu~De#ePZ2--M!UO8mOXbpfjB~> z)rZ!%sHZ2AU4jNXfuk+~Bz{2RehyqMH2luuP?Wfm;Ka7y+^N^a1-)wyZ(1ptv&Cx3 zYAU6NYwLW{w3$4C-;`ky|M%!9wB<9W;pngQSMyBa9H0SwsX%r-x)DO~FWE7Pv?zrg z){@&47~7Nzf;!R8ZF_`jy;))j+o$8-|KQoi@l_Dw1l^WUZ3{Fc9~h5yAJ#(0+Rnz@ zA-{fGu*$D$&}r)5$plQvB|D8H7$1+RpNs+T(Oq06JfMbmCZL@CkxaNU3zF-}c7Oc4 zpZqrL*m{!t_&lBcWvJ;GpETtwSo^E*LnbL8nWSDP%=hI|_~pNkCo=8HedDh6i?6D; zCF@0Y3>HuADxDjqWNl~G3>SB1_{LKUZ%j^aj95q@Lz?oyQGTFbl7V0HdULr!)fZ*5 zWQ$5@;^EMe&|luQ13(!Mpq3&{^w@HHnM*Hr4Nz5l#+%5R5}E8t?Bd5U z8%%bbZBJeAmDDM398;<%8<v5s>F}mzq%x?uN(h@U`vM=l-lcxJ6=cJkEg@{xVjX&V?Q^vH195IAa zKKa9U`8orOI#t5I$Ai*(^Su4z3HZ2O}is_mSJXiD0 z^9}PANFu_ec86X>KiP;hO7TB6RJDJ1LwF>sW#j)D26Fz-fobUd??oV8z!p;kiGnM7 zVz|T`d<)DMTXZq(Fx&_{rij84^Hop8Nt>Dd^X_6jSL3y$MENyLg5b8P)vB@=0*EjP zi7DMiHRE_aF!frJ16rUhX3Px)Mx+wZ4y*sb+>sc#q2=fdBsMU>21q07(LR{&(wXS$ zn&=vfNDxdfQ=ih6)3SBSMPg%5SiDgyYGK_OnSR3%$c~GrE(>lA&dYikN{-zfQ|*1gc1?Cm07;15ILQXT$M-J_ruz66CsCkA zAxaz@2gRBWBMu~JWForx+o{lhqo%rV?W=fECtf(U_6H-gCN%)#nf^%pT2}AG+W7O!xH{Pof826_gefp-3<1Qj?80TzwyEQin9eF1R zmRzFB-GF;oEya69odfx?i+~twOSmtcxPpNCJR<4M7MOP>f-vLKKJas1X z$R`dM?$pW*DiXXaP9caDbAXB5wAI zc`ui(J(Y3^!O6#(|MimPPIW2XkEvozKh)6cbFh!Bl1tam7A_PtQ-gRQc+)2ox$4uTPXe*wQB+I>D6%19 zoML%tM08FWL;{7|t5zsnw|58(A9>(sNhliJpnKTxLmrWA-fX%7T>vMew@G@1Ty_bc zb}#52XI;5+P{S^~vq7NKd*$Y+nyaEk>TgR+i&Eth?@swJFq<`xO|b#3!y@p%4TlTL zOnUk+_OTyEQUqe~7o!iN#FATkG&FSTzk_lK@AcPJuu$mLAD=%=6wkk=tDZEe?{UQ@lj+Q#wXDrK8QgBX$9 z#ZXs(d}`wNC5vK*yih@@krkXMw8GduwqvsepdSZwVdB&i-VS7 z?Cp0MY{oZ%5;E5p7!8n@iakh32a;dHC~pd&1Q%zhk9Kt}`~P1g4JPj9${#b#SFYPC zWG@wE&E;jyW5R-GI3np|omtGR6-W9j zk`DP=B-Uke8U(~S)jndzVT83|An!uon80Wii?bJu|1{={YV6CY_WyXJuw=RygoAv1 zI&<9-nBH?f;G5Ui=)xF9sN>OcG#*}vT%`0{O)M^HgI6m>06Q5|e4rjrD;7_HPh}pU zeMCz2p}iGcU6J&MhgrQcVP89!;+nb8)a^s{1P{e1=}%oU4-Z$H7&k5SVQVK{R(%$t z19Lfvw6uM|PAq=MLkGs^Vrqm?;Xj`XLo``VH*uNX6Z}S^*Se;v_A({qcv3Xp1(&?; zTa10m8{GEKWhPd?rXV#w1*mAIPgF5vjxqPL3j$=GYlx^ns9s8QIJ_+bD@Xsw{Yim;%2vH!s&dpQ&(30_nTO zt9p%`{EzQ&8m>r2(efQ%hLA9iNfngFX1PrhXM^ZpmOAH6P6BjBf1~&e6DC}7 zeDwvKdz3^n$2?Q1X8xs^UE_NVFxWHDBQRVTp)gaeu(20q8cWb1k*Lx5Ri~+pSsA z;nC1I@I`uCsv*BW>6v3&8!LcJruSP4$Ptrv>;sCDQL7|O%xN`v=N0mT`dF$8;t$QC zmvI5Jmh8TZF(HqK`!k3=z+qh5-1^y(s!1xs1+xKW_=C! z^S?)fu)KWTMLQevoaS^ zEAFfvc|uJ#q?-GrcS{{Jm|5&%x|@q_;U4;<+Qr1?>j{?um9NobrViGEp-S>9(5Inz zFqpPW#0>G$0b@(vb$WnvtENlVbN+7>5@r><9vA2q8l(y!LDw zfz4%L&W&qS>-A{(o98k-azsrU zaJnvh+8;kpr5XjuItmm!evH|+066l$>l30J0=^j?jdo{>+Iu^Aac%nG#nHJ+Z10}+ z*&n~wlcUGAF3+{@C--k=At_(WKV)G&Imv|v?)7wCB`{9=_ShYUU^+!QTCqF@04H{- zqdXN|l7Ad^6w2>L#y%%xG4!B#c4K~V6Jm9;gVOg6NHl9&gr8 zZAx#p%hr~xoHa|5nzVYSMr=LW+RjOYSmf*OY_INH>ObJL9RHPyf||~?zCzlB7|ET0 z5e^MjxSH@+Fs2}6P+pB1;KVYs4Ka@X9r((!HYy}#dU z&jzkFTW}Bu2dbaR4d#L&GV6kS4Ryi#{(1wejYx{ z6~c>xxbu|CccQgKjsBpuOY4i@EvdOsbHtF)p!jw?X-XoWdf^4q#m9sjMGXXwms>o0 zbGEggZ9Px6WhnihAo_&snE-XU?7(o7E4hkA4Bqm7MbC(AvOm!*BiN$`YfI-Wsx2^G=1*l`@kb3&BH&Q1SVCXg;XQ zzgwZ$8XKtpg}Zl1MCJo}l2cF-6p3WRaAGx7CRlUkEe&{rw0|7(5xO^6KKDo6KCSe5 zFXb?qdFF$9iI#o%&lFHviLF9=BB<&k^=LxgbtIUI1$Ef^P?z~rGV|8|^d_BRYJ^g1 zQUzP>hq~_SXY+MVLT1v{yM>jwmAHZD*%t*a@+iW)%}l zXfDP0cr+M16p4wCfL{iQz$B-vqR5{=q(aE2;z>76Y0@z8W|B!y=Y`(OX zsPRZjFz{ub=ARdFljPfRjt`>!7}IwtB#IU3s5-o^?y{x&f19aDNR!yg37`oO-&TOL zlHbu-=vus6c>`tRBe0<=E0@t4cxszFeAm{1fNGXcU1{`8?Vsk9P{WH{BCSXVcJogO z4917)V*Bx>9`Y0M4cbE1O9)hx6&SCiuA(wC5o1_HXS2Ze>SOsv7oTfErr-B5t5zYP zHUoBYgm^Ks;Ct6^y+)6V#RW#;)G7>!y_pmbOWZ%Rz3*l58PmH@ioojlB|`6Hr+>@f zn~ew&5GwVAn#eH{?3K#y*(>*UcKZ!87VjMAc4A!*m9(1udMC3dWR-Hclk&7zDznFb zadfO@9vTuFo-IxX{gnRsrve@m(KJQ^#$h@}qTrM|;Q<4Bia?ZWlOgAN2SO#gz^B~R z#N25;Gj{xEi!ae)I?;g_bfAtWn~N%6q4v>=<;Ax-^s3ukM7Y|?_twiCXtU<9y`>h^ z#Hv?+&ehpN)@-Q$NbP+Yg~xR@X{nWp#AjTF@{gs&e?B=_=#R0QV_zJsTl0GoG&~ND zM;tZ;8n}Pnm=1NeJ-e8+wqZfqA|JfuAH1+2s2H6E{QmLcNkqp<6f6ih89aD>otTA5 z)J`}Md1d0MgZ1j$xQ~DjY~$L*fH~$E#OeM?_U3z_rI=FHgJ)R1SUCS^bp!TwNL!AY0p%9ldAYb)fo=eOk0@e;GgQ>-oV`{ITsT9lL@oiIJL;H>_Rp*WyB~!PC^6>BSScnlI zWi@de5ztYFDpQC9KOPlJ@NBI8T2gPDf1mU(E~!{>Zu?q1t}d90A(jtB$pUvh0Dn{U zJ8;#yC>_VP0>HJClf3BQX-!mu$$z#^T}-dB$l@9JLP{#R|5I z-^ZTtO9q8jkvQChE+&3)CrA&?it14-|4Wz=MUXa{WZI;vUJ&Q)^qUBhccF!?Vh)y_ zdOi)?CKFp!^`M9D?Qcs#LOh{+QrH~n6x0=Mb^d#;ZvxczRX9vPp$>a#-o_&r-@Q=V z{}k?7mDJ)LdJa)^&|l$?&Y8PYUt@qa#WirZSaSGZF$ut4SX~W7UEa{l^x{L7+TF^tuah?OT5n1Ov3c^* z?K!ulUK(>Iq=iFFlO<%4`9K^Y%nw0@V}^D7U;b(Mi6LR!#D5r)W_JjCedVL5nY|@x z361k)L}Z)rie50Xk4cc)XV|B5>#Hn48;`c{S|T(bsl1faC?D(ZqJfoY%jLq0*5%QI z0}SJH4C*F{%%*1T4P3%@Zj^qrlhkjANXzJz1mQmdwp23nD+LQ!yF%XQ`+CcjdPu= zOQAObwWy=n$i*~*H-kmLMLD=EitL|i{%BhiI3^Bk8b_dR5yx;1;#~&+tvyV8&EA8k zp4*p)7o%?yER99Qi(3?iUX%ZLx+o;+Lz|(+O%Qw~bD%fXs?}9!E^XP&a7;#auyC#* z``VcZO+Gu2zV}nPQ5xBX9E{|Q0X>O7CQ;Dt>D$S`_)M)`j%E7XU4lj`EH)WBld>TL ztE>Mms8wEng#7<}l>YO+P6CSBY^yOo-!go5+370Dz#4z6!}>I@`Rp=sI8gfzkV3@z zj_~8QIjb*N2FfCBVgRucgA-tRN~*?`zAd<-6SJb}QQ0!Ge;AmIc?)KeKy~UhL9OL( z2mJ}`N$tO5QT_?+QgQUI8$BFIxbjS0Wg4QD58d?@s8&e#EOy*~UdFGg!=Jj^J6caH%BjGyr!X=dmrnxbZ7Y zi+6&u1;n9b85d~9Zlzz6(NeN>fC7N2r=g`l5n4kv$g}MJ3g66veJqhrY{xhy0(1|) z1Wgz5TAiJ613I{KiQN4CnhX$8r7bHPQq1~JjHV{n;8C( zO2fsBXuk7M+c^y3k5k^asxRKZYD5Ak(?% zuQ~zw3c1{F+WFiErH{E`etpCbQ{g}iyX0&hlp?;Cvy4;_+?&_t?Kv2SD8s~%A-NDt z*Z5FeLdr*zt76s}d)th!ZB7+tn$_4Wk#O~7{3Y2J^=zxIqwNpM$Fk?s$R>{6}cVD zcyA`3h4t>TKEXhg{QjP*&;Vxa-&1%^A-5OF_958f9p(suR|v;NGCX zTL%7A`X3{vZN*pyY??O!<$7R48t6`a$VEO&iNzC=+v!X<2 zj*UdWUw!61WGw1~)3VyS>Cy8+)wgGb*FGF}f3XBNM0J(*qO+>st)zje^qPdEcP6IV z>t@!ppM>pRLvEIymgTMby6&Z+v^J2EnIouPF>46}xio9^EgtqlAyeSaKXvFL>M9nz z;G+tIl>fZE7hY6<`?z@zn0~@}x+tjQi+KHiUF!#tRFJ#m>W0X*Ki`$|z8Y{I737}{ zH7$p$ui5?1MX*PD&*}ENxtGag=3ng7{N1i+uN*7@nI}Tix1gY6C{j7Xc`@9|!;Bs- zgW4yu`x(rp5X4^2t}_1~<}3(Rt?6VBKi(AU8|Tjj1$KYR)^Kf~z5c=wIX8%hsR(wR& zAQjCPnmlTN+LU8@Vo%tj;hqdt3B8z_n95Lj9@o9wma9qC>@LBx|e}GAwz9Ns=rZoHoFr@Cp9|flVVpaSJ_|Y^OjUc4=z!F$4 zrW9D)S#sMHqX>f1X|>+-slNY(ne3gJ?CLaKSOQ9zI4U3CRJl>O&!3}((ViSn=M}Wl z2Hw>QHg?|iPkKk#uhbJMZEW9@Vi&DTG52+jS8Ly#fV(x-v|78=6Y$MKxSEbZEk~LDg}fT z2bEIm?uP9U?c}}ZqPe&8w6Kn~GJ=3AylPU%MSwKNnR^S2Z$?>z5?@J?WTHy5kH@T|3X{bW$}nV<LEtOng>`47+} zr>C>&REz1qvI=3`IR21=q&N9^1d?eoy)t=HV@B4Wru6!ggK*jpA~Zf@rMADNyS&<= zsDBGBx_%oIa;Zcw8v~A%C{6Gz z#(2isG5izjBLFx{?xeGy!Z%)08%mVVR%Uf)R&6DZOrThV{BCQId+x#)2VwnI^rn5x zBk3t-q)d}Z45!9ss^Qy44~?gjQzaJJ{HI|%;JC3KVD<)^5S#TgiOBI3e!&_U1`>*q z$f}FXsm%MbfxVYIx98piyGJ!pJClwqN>dsd@!d1X7-u4@lk1Wucs~$jax=5cthv`J z=ROCWPNUT)uk#9ZX?OT)cRZgo1{sX`HaYBlQfd#2R+59~*@ZH8jmx<-Otmdpt}T%& zU*=z$UcdV&)B-DA(Ye>NKg5YvkY$bPmBpl&B?usMY=FL8AVQ4o40`vg$C3~W@Sa{z zAICNd#Le37>3O}??2+OQ>pxK{47`zmEj^pBou%Wtk9YR?@MaGYK@Y#|mj<1>lxCmK z6knTKVa*Ag2ItDiSM?|GP7Zxo;8i~7M5LcW7qgkhh7BcsekH-LXXMmQ6vxxRR`s^b z++-w=)bE!L%DNSlw@U#(C+}knli%EVnGX~B3|6fQ*$=EwRo=xIJhw*aExk9@`WB-f zf7$v`nX2QX9hCF*!7Sr4>bj7;h1;&T^ojA~lE?>>Gj>3(p%?#qd})vXK;}ahn0DmR zw%%;|z?H8u`#JZ{Y5~r2Wh_|sRgKPAbyTG-`W1ImzHKa8=br8YBgC z`p2dBKcDXwR0(;GQRQ_(BnVP6P6}BXosg?Q;-!0OXE}SZZpUVC%gzYV=rzGt%r9tu#4g3ddi!5M zoSvNtYj^3Ei9X^deSDY1wv{?VcG)W&G8$exm^C|KFsTcATFrmru{b`qpCiM*MW2s~ zmr9aQi*ynBh@>P80B0Yng^qkkE}mSvl<`nHXj=JaiJ|AzHMTLPTJ8?|cE3lyQq;3~%a-8k z*N^E!>hyqkIw^dnnH=ms+1BoVa-o3Q-^IwQNi>#P_&nO;Vj$q5p#E8D-_L)iWu5sy zkNTqX(&rD*Zcf)9F|U-TDcH1ggL0VQUu-kHc?3ESDu4V4c!^Ap7^P=w8_kf5q4C@P zV);ALeibO*R?_z~$wgfPqD{1Y62e~A(clb)Y;;kgb+s6|4)SMBEhqsc(vi-dX7^xysC zp{8ap{%ec+%LPL$o>(#sT`g9XmDr3XSMeqGA2hMi?D~VXaC1mxGE~ZBV2t7Uv;Xq zw^#DD*X47A=~MQPmPy6!w+v2^iI1stw*bZMWO~6A)=M@6j!vV#Oh#N^|0dzsJnyq8IbvHya z0^EFtcpLw?S5lE9^pC)7r5XDN9}b9;)q-fwU@?cT$+HSgwd zdBOm^*&Q|&9QdpZ$YL^&a*P~-zYdPG`!U%6DU_tMd|O1dWFYvnLA&t@A{E^XrTWhl zb|4Pjm$ce8%@j&T_Z%wyJLK-iF^&K?6k1cQQ$X%g>nl8w6O+f+a|qe#8b_j%hhKO5 zhg;LR{ZUJYN+jY|7RjAA8LX`4mSGE_khc`{<$mZ2Z zO*YT-ZqK=he_@UJlO{6R|5UdjJOxu4%=hRbp@*tt!2~z@f&I+*zxA*~k4l!epN6_S zy6qce1bw28L3f_U*i%Zn`xV zatJAoDWy8Po{>ibq)!J_+gy_DPri@{ zX;@dfHmG|qm;0V@zdYp*5~vWX`T|UuUXVH*SM#ZJLs05~nE4q^Fs#6Q({LuV<0O+C zb^z_~1zEA3mzN1G7*)*eMDJ08(xz7TaA_U0e#z{4Gv=2f&M_;806gZ7VrHKwnrqf& z5NeIjrRAvb=+~#7vg#L4MAhzm_Wr1$eVPAyc3p6JA-ImaObic?apMt~uqNzqqT^=* z$ht*`2wI0Pj9?l*ru-0~$jUuy_tW_U)SMqFw9Rr(|5J3mp%hL=e+!>W1|b&};6@vC!L3Gt){#&y_jLQK=~<3Q7zIA3RbV2w z#0bTiITgbme5CI(6_arko^yYGF-pd0a7qVvZT^nPg05Gf_BhZol&Z36stx5YAQ9Al z3`hO1ZTckrI|v%R3T+9W2`h0-9Nj?D;(I4#4w~rO=wuHz^6u*yk0znLwXX!aZ}v4Q zPrY5cscA#urk$UaXlkidRg$PbXrf~kqM)imp_T^z9|3@z+#Z#<++l=jFh>QOpOS0S z^X5AN=A+Y4f~UU~^n3jS%nV~S0Yyx;)3m#n-X~w{Ob#9hS725j(#l%YR=-sDQ!kFU z{f!Wwrm+)5WIE#W+&?3Kw?JLBg*B=a1@tN;9lp5R%((P6@cVODF&0A9ot{Ir@50pk zp7x}+J>T8>TvWHV+ltct&_0WsM4r)4j zgDtW4anjHumttv`!5u%JwAK> zpR1?-Di|uDhmax2xNdrmM{h>YalH=yyDcm!7bk%QKf9N3X*xA!SM3D=u zVym1=H8S8~A!bGY%-&^rt+e~!gR7g6{qU>Fg`M-03_p;?F5(+HYh;-;i3e3Z`4*4m z&6s=q0~vFAwbR?}#U>w_f}yS{pc>mOxuFqV1TO155K2PCr_@t#Y;8W>uflP!waob* zKTNge`DGE?=iRGM%nq$#_h~JrQnm9j4=2A4c&rK+4*ano7GqaY;qu8l1>M+W+`=+P z!mEm#fPKg)`OBh-o-4;dx&j9vv9DEMmCZ)CpI2Yh#B!{erVkUm(GI8zt1A+Ml%Ade z5Yosm2%(7d|6mf=Xkr{1K=$b$n>b9Gu{%;OK{O?p=(5!O1{TvBZJ_EyZ&B~v6|{|s z&d!6mZIl*Tj)ExutytN>ED14xVW8pf(b%_ygXocj1>2rO(-Nw(1$pf8sYDjJZ)f0^ zgxQGQiB=sBgs8(sC+nwhj2@+hA?Xln)DCzM!+A%t4Ra{VvXlU`rD{?-r3AXOed)$C zhsrugitY8ifR)MQ8ZVROY3iyQNEX_i%@BK=aQxz=7gcF4h1ZgmEi z9D1xAuFmm!BQT2hwOfajN@sue!d3N;75df%LHjQrT|NHoLZR;u>Y&#~TD#9{4J7dW z%jH1cJoaJ*=O~6V3orjARUc3yX4cgwFFQ(!=o#-P$r}UqqTS0 z-ac|n!|&Tmefz6|F>;Rvs|4A-=U`Jerz3uanx|NLe(av(`MLD)D7|=5r#APSk*L2K zKE0YJBuz9fN2L{Yqnv|m3rbMSB}c;^Y8#(0N+3W21`iyV{-l+QL;_UV!`r3_Cud0G zesBmdSx~BNnIHuG{^MZ&RS$SJ(r%TypxmsWt4FDhJlsy9eT6N^CpZr;mkVzctX{i? z*IT2QH>E7|Avg3->z+--q-$1QUcUP~xBDX=p=U`VV{jwiVS)~v=@Zk+Rd%97=|R#M<~%@BBZcO7=c;* zVmX1i2yx1fEuz7zNW#Evelb<#9`)xr zboFvzdxA|dP6B`X2(cxGLxFHa(y+d;K$EIn=JTFg=cwcys+o?~D~9M?O{Tp~FVsAv zYM`-$I)nSo$`ey6dNuulX6eqeCy>v6zT)&ymGED>oB6n6+vH3wxN-Lu85yz?Sc5;< z{HY%Ft9*X;)5|O$-cmFeC7q|can;xngS?(^Ca#n%u*$-&lvhZg+2GtEj~6fhJ5lcA zCeS!ef8TUtT9?3!dilu&J)9Vw{I@J}u}mHX<*#=*%-TpeLkN(K&w?nrBOw@bGVLfs!rnlhj9FNpfP~= zM!sWBo@0QiaighN5<4Iwm102T4bP@_)o1qv(=D2Xde77Z%hUqN+LRg+59iYDt3P9c zySxEB^NEW%2^INFeh!l)NH@fRbc$)^l7^}t&llN&ApK>E^r!NT-%GxB!&ob;h6--* zhWY17!F!@6dp{ogW;p?$(x~E_Z-=kyro$GCaO$SI2B%+tEALve_Gs1}(d?+_F=^Hu zGodlID*jlVi9mh}8(g2Re8o=hh@wj!9pW}(XVw9R-OqR3YJCvBVf`#>$E+!T^#31M zZy6Tl8nq3h(y4TZbax9wccXN7r_wM;cZYO`(%m2}-5}jv(hLkU@Ay1>f8Tyze#}pf zW9Gi@Yn`>$%6^X`L?dr@`zvA*rV7s+lq3H&#B;H&YY0~?QbRXCu6IMTw0|tOK?7i# zo8po-^huIZ{zT2G|0teaB)~Y-S}))QMn(Vr1p?mx%_{hbKqggWAZ;y01bcZ|`t51J zN+Ed>8Q6i8QLX?te4R{TCZW@E_~vCgH&3AzPegkdDrfk*q>qvjAmzXch5z*wDrb<& zY}`Ky$}cN(Qo1GGzjI5_A!TsINJ5nusMe~XU~?y8+>ZU?@7=m)`|B4YP7+^?QIqw+ z$%|>lL#%EppJ~bU;V6Jw`;4OFz2lnO-EYhGnX&sg=;x(~KUiTSQbhwV5`#e|-^+_Y z)Tn6!GsD=Fhe)H3R9xbI#WyctO0b2R?a3)seR^=E(Iz9*&;4-_W3IZA#JEm$XE__Q`Tw$G`ax<={`ijl_|`bsj(#kvAFlymL(%h=GqYf!BmXrj>8N z6;s0vw9zkF-@d{V)FS~t;Z%W}Czn%|6h=NIj2Mfi%|6+j( z=#OxG<+`v@-8def`M6AYGXJMkQxdb9L}&xnii?jpW{mkxzXb)&#dq0wl8ntAGo?LD zKKr#XR%T|a6L|D?dI1npB`V;vkPCwg(?mTV9C?c1&WSqAF29AgPuIG_3_jVmZZ3@v zCf}4uDNhAVO3&gcr_X`Gv~1?Z;Jdn-#WZy4Ni6!Ymn=mqC192DpJXQJSqy4hW58@G zMlySKo^J2>EUqH?CbU8r;n&Gplf1#XO5J|()X^+_g$hcG-UltVgr?VxBK2c12c%9T zu-XBWVte$z*D_iXr5ZZ_4!lJ32|6JxxAoOT;6-3)9=)!WljbWCa=$-VCG_g7&R5pc zU=#1larCxz+Al>M+BVd~UCu(7i>wRdPK4r-5^C7=TgSzB||8 zM|4}t&3;wI%1}q>gmP0X@^YYNm=-jgoJc%Ay)Sm$vEru*Ifo2P36I#Kiy2^Xdn*G) z2Tjk|@bWS|2@WlB_=;A!g%9rK1Ea)TNU4r&Uj@7wCr6zNLgg;Ii}_sZck~^mAW{*o zqm_{FKUAyrmpkK1*RbPA6En_=z4Nge-2P@s*t##6#I=)xLhX_QQKeQl4qnW55bU_z zNW5h79A`J?-6?wz!BQehAOc&j+xs^KG!wH6S9wz8wB*1duDg?3Bf7-yL=;ul6jj<3 zRrIpEPDN=AO}QSnq8>sNaih^qtNqx`v&pu1B{yca9~|d%*=_uwrTz<|{;gidzia#7 zMbbjofaf~PIqv*f_Qcb4IB_4atH#q2ZI=u6s+ec}$eIZL_F&|qeu>rj9Zs+s&8&%+ z-Y}LKK>hvRF7-PsGVvq_ymDP{kFHj!Cc5{C_ek;i1JTU+hx>2E4@{*1FV2qiAa(N} zO|MV)^7vl*6(Ds#ZeYD)WgTX`So?V+>3k~fjiz>kPekcU;ps2FPs05ML52ulxyr;c zI8u(Gmizt4R!_p(`Uh3t?h9=3+U`mdLJEN)A_n6ua9`I)|C zE5d*+t3= zl<2)2DU=b-g#v^ML>Ly5WIh!?wr4?^{UprE)`pf~icP=JJ)Oq6D-gJnA;2gmUqDN( z^6efI{P3>S@D5r0V6@5r$~A7MS!n-=z(t$D#jjY&@c?2V`rit3TU#LGskk%yNO}RTPQg4a!1R zil1wtQArpNJPz)CN6MM+gJUIiY)-}cDF(Tc7b^!Rh-V405QymPJI>-Wy~;32s799n z44@t_ixVVc5YMcb`Zgu*`zl&J_~^#`LUHhj*ReOi85C{=zNJK-mE$^4MGNKE{Pwkv zW7Oaosf0lW<-Ob+6~cG$+(#n^OqzEiLk+%mSik_sxmD|=Fp9hhMYN}ir-g1}Sh71h z`M@#j!aVE1yy9ltrc;N>lcXfOpoQs1DYk|aH-$u&0OFaT=X>G{lK6NW0FGpWvNYTUC{;E;S=JfN*R_ zSWB&OlC@Tc&)hzGo?KZp`wI=|Jr}ej_h;~FWR)2^v!^+fQe<2WWC9$YMvE%*^y&ii z28HO#Al#r}Q;ngLL==gEIC1RLQNSyWrB=qcr|aIm5w)GOw_qh?S1Upvx+5?o5KHDa zjETax3Wh`sQXA$-mfS8@Yfj*)yQEPc_#$8taL6wg2Q95Z^rNA8027F0543=yO)biGgt0}^cN4f zFmE3rg3S8yDz5rLRwZ=HdgJFLe6n@eyM3I5XwhSPq);w^(-rU=qG_+j>8P};-1w)Ytx5nzUtfa!M$9sEJ|$B-;uRTmZ&AHT@W zNcR4y7U}FUrA{{Adufn``CJ%lnf+MbZ2tfDWFFYXO-Y@RsQhR z7DvUeP~dL4^t8kM0$0SQ+MXL&`GKOItmlyQHH^51KsILtqia0UbikW!fAZFwnjU7# zIy&TM(qTyx!A}L3AhpXyQ|O9oR&ID+Q}jNGv&cHpKS3#o&aDol%^oHQJ~24v*}h|~ z6k?n4);Sy&f{8YEOXtjm{@-D35KMQ;qrcy*jO zSGXFd2vyELMLGs5`_4GW^&TO3O%1F>=_(Wc{6+?LBmE>59!4Y$k!pK z-2HM2_+1Rxx-y=Ji5N-V$!KT@0JBmH+OM)BFJ>B3^L7PF z2V7ifDjG@?6i*49=)J75lMF|}w5uCx)&g>t!ZY{VG+8C#1Q~=c5k}UoKdxvP-@k9vvC;4t#+Y*XD^vG3saO<#_7> zf2`B8=-oTWJM1~&?iKRzW>d|IMqi<>cKfcmL2Q;S&*uc-#2ErjF(a`{~ZQ zpO?vAPr)wRZu40>sNdNoIgQ7O3atN3h;;c8(bb30+YUb99s{fd7eJRFgcp)S7L!fp z#t(SRqwtDPxFcap#7uAVaO%UObiYj(oNW-17{_qkM`%NRvu{A>v_{E~Bm@JgbaIoH zQJ_Y}@{e!d;~|b58PndT>vsrIVV9XiYUY2ms5ZDAl`RS(z=SV4l!%ynwU+_6)5-1; zw&4~00WT=`t_`xAz!;o8-WRX?%IqU;?gIO`5${FclYDx6`d{<-g0APU3Ut5wx4}v8 z;{mVM-1lM9|DS@xeXPKmZtk7es~cc>Ei(Uxe1(IicOEJp^Ks5`Z)5NvTK0l$U9C;u z^=dPDY`62eFvq=+wBG#bkZy&5)s;d27i$6k&N&(`Cafne8XmsVSL{YXxsNh=jQHk+6Dme(y&BS*e;B+m}DM3UI<(EkL3KUMVA!Zcaw@Axk zn5+@bFQ$)mPU|y+QrwjowfKR16vPslrDRy-mRc+5NV$YpF;X8@oxx=gi|9dQd4%5eAB-vZR51kJ!{XS&GYuvqu z1tF&XSn)TIfW+CV|(x<#dDwe4N`FL+84e6*An|O%fSwU zhG?Zf+R&!k-le5>m~HT(t~A=7TJFHhWA4=17(7_h^LfG>%+HS)+-t%?h<>2$igb^jTw3ku z0{4sT9J1yd(Pr#1<{Ta4Z!K?5*_&uzksblWAPAdM#9)-qnKt z_Xqj=yIiQM)kWn);I=rBR$i!+`=R150IL-PXZuczHYXl!QfGnMW``W-C?A`!zKMKn zyy{duXIFMZde(@uvUrynS-I=^>bC9b3}%C5?Gcrc5+Vg%tq@<2y+DUp->?J29cN*(DV)Zne2#K{<7OkCU_v=4 zwlUnknyR#BnSgE|EC->o5lf&kg=J=i$yheA2Mw_wM3K`Rt;BiFnXK)w48{%enyDYl zhfaTikuX2Z*+a{7JHl_5xgXiYVxHdZ*5=A0K14h~eAj+a zZ7OFa-p=BiD`_}dmE3_blAdXPGsuaTn%{&s#e+_7I|$JcZ+z93k8o+QtTCpQ}{^&Tnh{UZ@!{db})QZ^Qq-6a(u?z!0aj z6BRVznX6r3TNT)SwJ&dyC)Jn^%HmaDQ}P*`h4_ua(Cc0JQZE*sI9bNr2s2XIw73R* z1i$B=vN8-v%O$02N1d?-&^a=%WqfJXF{lOU;VHS(V3lrbQK|E;V=W!06Uk+DVChb7 zmEi8ttp~G>84BJ!l{{^*3QU?&ssng_s=YMp2ZJETZ6vLy*QX8Tt0<1`+i9 z;pB4v;BtSvwG(qcFMo~`ZM0>g&Hg&xW%Jm<1O&Sg{=VCPzfFLkNBApcZi#M1VgA52 z#$k@2*YGxC*toW(M|9I}8>KG?J8}HC6qD1=UWF#H+E-6sOR_$UF3Cl|e>(W_Oau>- zWgF9B6s}Y7;W9|7PO*}1wUoVEl4*zSp)08<{*J1y;03tgLsN$Ayil+yEOokM1f)uJ zNMyIoN|P+|YcsOxaML_g)wQpWDJBEj4L%oNbauDhCzWi6eJ?3lHsem_d8MX|&J-=a zF4`DdQdJH@T2Uk1OQbvxKbW8pyRqcDXTmLT9-@N689~}kMYw^8A&Evj#&se1IR`Bx zF}RdrQY1)}C#&1tV>vQW;zdo!h-wm=)9d)!(}zJjY;Y2<#ga^-g?MNrBt!o624c+ut{Q!|s-a_qJao$>S*Ig*Q56!9O>U z5CLvpdz)CI_fwCP__hYqhmn z(a3&s0j|#BhkgpkMIDeVVD#C>#O0*o^m;?s@Aw%l4b94?kkXPOadDZ%^|P<(->0@_ zd0{Yi1#B~WX+CLOOEWfkWr_a{c8hyEO|&%=%>8~HSIXPnc-7~8y@O-?y%zfsnDGBS zXtI`MU=$$3+h5g2A2iGeFox*6L;;KmLk$5}E?F~J%FjF20i1(4Ca!QCal3~=S1eJq=-1!O0HXridz17B zfYa?$k)K!#$G={8u03kI+(^Cvdg_8y(So(`^ncevMUwxOUC%R23`s zI>`SOCCw}4BwR<@s-|YeCm~6Lg%%POXG67C%g>Ofg26;5OFP#(@Qk0gaj-;6QHlj4 z&GB|pii@jWD}yB4q=tM0uha6oYTb9$M0U3A8Yw@H(wRI*5;`o34x=#?v`PakL0L}HEG%3Uh=3Rz-8#3`KXaw+r z2=d_H551oFgM=eOa^kPW;0zykv|3E?{lpt&sH53V1l-W2(elHP3=1yCm)Oe|FU zl(9SwEaWMiM3b<7!Ig(2<{%pZD9Ns!OAnZE0G(QU^6+JIpLN?6e~#gih}Nh~*;9QN zeqlbH<*g^#r|3x^ZG%#&d(SjKcdVrI8xl60wfJ3OJs3P2@+1Fq>)n)XHD6B+bJtwz zYCPW+k{Gk^eaaiGVv-JDiPt1jY@&8V)yH>r9skl!OQ!U^(!F&!2|8*2Q)afh*37s` zyvB!+2SXp7YcE}hE-kM_u>sCYZ?cer3w3!iLA>}WF-S7THrdmBN>}jBE~w_DiYZDQ ziS zsSvh8MN;k=O`cvwp_#FTsbR~Y2eGmx)lIG2G=G@GeliD9(v);Y0Yi#EKsR3)ojVjkW z;ob$`wL3?q@q57q?{FW03GDsijtngMgi(bkqgD;;wV9K;v9i@<2AbE$oomWPXsP71 z+p{~V{%BevKd?^I83{_5q>hM)ch<@SR^(hgLUM})URcBEkff5lJZY>2@Vq~Rf^58W`a|CY6lft!Z->(<2&sos#_yGa0s z1StOPPY#|yn!#yYKt!xWL$^+nDKg>;B@Gqeq9R%MbC2-aWwXXlsabr=kFuOJ(d`j( zVu`qxOWTjheSb=%;T3tg(@2!eHHu)%@#yxzD!!`=18lkG|Mg#5>F0e&8xTG`&Q^#JorrX!L~P z`^fkQCBGl4ecV{X@kF&Hd)xrjff_X*6}TO1?!z!YEi@aN~+-0#X)$5WTeH z7jpx6XErO=*g$^Lw)%TnI|L7RBIZRoH7hTRh?yB!rY)+iyq4qG_s@O5HnqlmtvWo{ z?L-f|1(hz;Ag;3kLdihzS$kYZUb=l?yj0Hv%8y?ZwgB*N_COh%^}@MnS{xH~%FOCd zqESp&RVo>!na6@N4bTvAvs;b(W4)dn@Gh^*8s$}MuSU<;LQC_(3}1i8{p91>;pLsH zS}$yd<5BRoMnxX?@~OHpg>GP3R!@9%%|qa(Jj7KaP-t~-F`#Tw*O?6Fp0VV^X3H41 zBmzSiO{#)_{@>u5v#zM2!$zjBSmKGA7N;N$UkJ zoO4wAMb)EU`2B7ymD3Vg_-OdB`D)=^#@jtgMg;xsSC@Y-@>v}3NWCo6S6qi(XIUt zT>kc)D4YPS_U|gTdgvqRkgUEm`dpPPXv|N~_J!l{v^3Y%yUg8N(H_=vHWB@HSgbrx z`*AMxp4x^9HuU2(-I7z>;2Mx|_te_!xSxk2%C#x}o(Af5pT{*`0`4di8xiQfwG_+InYI4P8JHe4#5K5^u~X)3@l=CBc5pe!T3G=VJG9F&W`;ig8Y&twdt;op<8wb8 z`H|BTqbOsC(?K0>6U^Og4;r@1uG@+X2ne<)-}+TX0XR5ITT)%+T5tWLh0vm=FF7iT z<>pqRa-+Dyr(%E6sO%|(aHfS&e*WF&5Sm|L;@HV$O&}+be2$lY>WlAwECqS@Ke+AR zmr@mZx7s9&IGZhZwX_1^dN(tHUQ!d?)|`PkzcQsH&Zg6*YP?+dY2+9y-F8W3zM8bs zf1TGlG+OjbJ$Q)LIk?dzwvkdIsRs9uaj;DxQJj{qoE9;5{w?iXjmJb}ilwX^_op57 zPzK41B&yHwp&dtkuoz?{pF|q=erDs4h<_K-gGI1jc3IM%?Cn%MvB96}8rM^BJ^UbO z{#)iOg`Qmuyh9j^ICnw_%e9QnN80`sO8Zyn^#X9QLY6vdd0e50%2byj+vjxikpA>n z+dFxiXyW9OyUSjjB~8$9tQPHV_AXFk%UQRrSM`+^64F;MV z-tYlA2$fpgi@sh1+jd$s%;>uG-a&dxa%An2-80A7f9s7O)c`=@pVlu(|WU~t@7+vuPI~?v89K~!Go+j zKX49>wTUi`gjLrntrh z>+`dV^W6IJohH93zf+FxJ9B3UsO?&HslR81Sq%2SRv5+5gl>VP*YR^B=&nED`mVA5 z5q}VaLEO_Gx1TDAe{MP(2h1@+;c&Z|B3_~AQz^T?!o@&lc62PQ$>TmG>$zTEye5m< z@eI0N{9v!A$f0s2V*V(PE_G~z`pMlVmLtHu0l zf9Kp6NRHz2ronf)nl`N&i|;M3f=X>KxTr?N0^)FMB}P$Ef~e%v3U!juV&SP!x%^1p z?&aV{)lI4Qf$u48!>kxLpr#=gjGs%rFrvlZqm6Lj|K!nBA{*qL6-XsM=b1_ zj)xx+L!M?r$PAA!woEB6kz^$ok-{ksF-^FatY2HM&v0Z_o*7`U~5aMoXIqw$Ze8#0ib(?WfVdqVjd zevIrB{wz2Z?)jR7%+*sH6NYZHmmeh8FX=~=VEMrqyq=}4s*BM^epO8#$STRd;8*_- zOff&nL2F&pg4o{i=;h=s_ED6{tEwC;LE8Fljmuglw`ViJ)B=Di7y^m8xzFbKH8?e9 zURb7GZoJ9-9VeuZqI-ir|K&G(Gi3s2T&ZGSf#MMNkgL|N5_Z$o2U|A3`#)u`G{c3a z7M_|W0BzLZuEXd-A#j>00JyZJGr^0a# zd7oAuWj1-usJZ#V7&lxV(sV-*X)i%@*fgk+2}z!1DK5EOr~?_``v@~l;TKOLIs zhO>;!h?bwgFENKs5M|~-V_u-cJ(x+#`DXr7g6o&4_zU;XFuD)oV0NdTH)|O?Dp;2W zGji1S)KIbcfsj%6M}R{Dr}*M)T@nmOtx>D`W#r8EG3@B+I0Q99VvMjiHWsACYLf5Z zz#M|z;BYHOl269^z~i04y}jMlX8(4dDsU=4J|g=a@Stg?dUP0ic|J`3bP`F968|8; zQ9rz0fJI7tzxCA=iw^TLnWNAX9D#%_doRTC!@4gbx31r35c4=kpm?gFH=ZW$Nq?;& zcN1Z1JZ3)SBBn;+yG{G&{&|yqQ7bJm%|MI%Sj$Qlw`4eCF~r||!7fgxU=wy216#9X z$V7>3#iDnA3HYl$ckpBUb28m~TwsBcqaq^hZp<#oU02~vQc6qr^d;}_o{-o*-hMsQ%|JWzf-mTQV9r^G|38pXbAmFQndy8{8 zvn97Aj2Ob-MF&!aOi9Q}d^JTOSg8$}XH|*LXmZ^SnJ9qhOS}nj@QItk_HA``)Z=o+ zdGPx6oAoAdt#d09gG$vSG2{<@mMR-{y|u>5$mjddOuob!BKua2ni1LGi=Buqzp0Q| z1+Ha$zWAuafrqbL82!Sq>-A&aIm@i}QtSam^yN+Gv&wbKlXu7SQv@CQ3IE3Mm(CXY zB%qm9`Y?RDG&{qx&s@@p3uha$J)6U;(W;xCl`%a}0ffqaka6F5YxA)gM4LeKr(Sd* zQ};KDh&>9OcmaYd-HtEQeqe9l zPHmx=%45i?8114Q?V=d(G8W@9rlru(FQv=e7SW&`)zCLUb(r=_Nrl$8Om z_M1~pomntZ^f=si&VJ4mN#@@B?W3eOsY199GQxYjOI5+UU6^r4{w@Q-;WDCLE*6(> zsC{T-U_hi$wlBiys-Gf)3}SK?(L?HWMj@N)CU^$e+8X~^oLUjPie)s#;M6AOGA2_O z6B=rjMyI}=5NkWGZrt z{fu2@1;uD8l7F^ZraG2Ki&%-Tc38e>{&NiIiRgS zZ|4lScta+U3vR5*SGasmwq%EWJ5>IV9-SWV9-a^7guvnI2Br&qnY-ON(zTosHyi_0 z!7A6W3+iuJ2a?_;tg6Ad=70GlB&G2l#8HL+HdyL4;`F^8jx01DZtql;0dZD>2$ji6 z96^w$SB)>M{`IJ677EA2lH&rca+~ZAOh={|lnEc-LN+(A>J`PZ+h0jzTzj)hZ36m? zGvAB7?NHJUQgzDST82F+CPu3;(lRnFH6lN-#LC8v^2$;zght*mgBUD)VzX4J$7ba; zsHMMGNN3nfuka?V@y_-k>*gAiVvr;hcz-Yt1`g3jfA-xE-300+;(6AwocnwdckdS* z)p)~z4rN-LFPu#Ijz|wBjJy>^Z9Qc=B9!gWsst#jisPUMVJ_o4(;=c5F(( zuUIha@Hm%|w;lZ67~}tJzWK7{-=ylu5QF%s2oX&q|hYM85_3MV&(A zp>bq4Cg5_>NNQgSQqa%dcU{ETkCb|n+1V$I zItCvX3dYJ}l&!0EPp4PQ5^ZI1%O7?9{Kpz9I)mQj8L8%xmZ5*F}J8Z|JVSn{sI`HgHC+R=ACJwgaEXir01DR z{vnL(yKB`PqjWRt+1pK-QBm!G!-MPvrpk z;scUxg^umz-9zFHAt2H*m^AbcR6pp37itXCLO}j58U&Us3c}&pQY3^}rUNPA0)qnc zz=P4^ewvul9DF3^)H)<1No%S_J_MPTa-|1K!P_p&1ugZ>UFF7?`uW~UWw#2+9XaUf zr6G}XeS^BFd*Gvew)Q^(%N69x`d4|yss73R()6kIADeu&_TUUd!o~M9D-sTBun8)$ z31nLFs%}{H&J&B$ay6opi;8VeEtV^2g<=(}3u{dGflbc$6Iz(l)#L?pF-n?oPqw>z z#fGL~#g5jfmcmDx$>=Y0bN1_|P&RUkW>HWkc*sNGWhH-dAbaaLydy_sv^4 z**e)dF;1cT| z7#^z>f0mrdfgF%JBP7{-0gg^ta02-=(%oW-e2s`%f8f8^x5aXu$6fanbJJ!LLUCc;e=6g~r`}F77vVtOJn~ ze+KNX;XMx>-`nCOcH*M|M%4ErC;XZ}Crz}_*pj7^F7tg((&RDtiIRG^6>V|$nu#qX z#=krI+pZDcVAm`*RKb1cW&#Png@(;u-m8wc)T3@tWNMJOXFjQRAiFjs!hZz+IY|&Q z7&fqf_#j%g+J0L_TV###DrJ0LXHV$=Gf5fei=uKq$`vyVIkp zRUqtr=3CJdQxQtojX{xh`m6e2;!(0d{~_8Y9N(UCDRILE#t}QfZ>WeLL(g)vCID3s zEN3FIC{sC}^2k@{Z@zN8iKMa(gGYZw)%%)6afYS$TeTkBfzibC{dnEcXxGW;QK+>3 zkexP`iYAs)YDej>5+b)qEviMvL7x&Gde0H`({${Mr1$B?OqR!XEoaDBIit!oDF>sp z-fr@u1gR{>yJ=+}3*U<~m~3T2SeR#d=_Qhiu#a)s1h-!rP1*EPE7;ufsm$`Vcqz@# z%PXN1QHy>T0a(?X(z3OrhdBPQLC%L@erdXF0 zkjr4zHptfV<4D_0eacDaH})xV(N7gM9C^7~U|T}>ffUPuXR&L4vbWj0CvA&o4>-c1ZkpI|;H}r^K!1?lu24|>m9iBx}_zvR#a6FI} z57p9GR3$WB0V1;B7*TIsOrz5fnwWi;Nvm~JEyxPoZ?C#=7|W;>S}$Oh<;&e5&TiQs zspOTM`}9Tw*Xh_zJ`Hx{l8EQ)4N`ezsYX63aHrINPPGpk<<&ng)l|51s}pCN{G`xE zzsEH2rc;)1oLVjM8TC7U7iK1P=_mQmc6H*^qYDw&)Y739>rsoCtZRQ9wx7Qa z9f4pyRJku#>nGXHc2mWA#8X^p#9__XhzK>pGw76*%3?oRM_I?df|O0qkYcQKnEM+! zYQMf}VllOv$Zu~2?QOXG^5LDY8$3-Mj27unmC=7pwVIzd;wc&>DYjT&fNhV1^Bj=> zyhDU45k<#1y7Jp)cRZuM^6a*Cp!EUpB!}1ZG^oA#t;c4hGQaJsW~oZ10O!vo&!PF_ zDb@gW@@65Q)k8ow7!nSqz|0oBmETW~=I%!#M+IN@)?vK|S?k0Pn08@@1Cj(zj3ZS? zyYo1BET4G#$4Lq(EoBadm;do=fcdrWRqTWKxnR} zV0Mr)4F5?ADP4AzH9tx}z3XnwL-S{L%cZsQEBlGT8i^3iy?H3Lj##=Un_G5Qf=X1N z1SwmB$X}B2KQ-&$uMG&=qv-BJ$^gXpKWeXDuJ*6Ze(iq-*jyx3eS*|6BL=a;Gva^K z{Sir91=iGI`w36Nu3r%o+ZL%ES6#K%RD4v#*#1Se)E?3L*E-ieSJmjk+wIJYGu7zqrJN{q^J7k>wFqlvNU4?cmF}kVZ$+lm5Z5IJmw?HD3J^f&`M5v8M zpK(HKtdZC@PNsP2mRCwtul7mZ{3D=9FSG1+S{iev2H5vU++_Q{#1iTKWZ94bJE(cz zthwo)$Fd!B#L9_CCo_y@>xClhy-t)wEW2D_P@JI2pMxL2-N$@TrkWlQQ5M7vv+(-t zk);JbhZj{5HY?vGy&$Y2dYneoHxsywt#CM2a+a=7<)=zC<9T{HpqmHPz6;U|6FdKZ%EIg%rim88lFo_Dm+ge z^1iZj*C#|VaJr7S&x)&xRvY|f?WE^-D$(|r);B-NY{EzH`&5X7G8tZB-I+A0i?3)PwhVPn!q)uI}Q8lSi2q zn5)z9d2zuXea#FcwcAX2UlysF zyoTqKA?=CMv_w6wSo%bvqC^1M1G)E2IDi9P>>7)PA?#VI83gYMiwsu1^!}BTkMZl# zl-JpQufc{7NO((fudnNe{EO&&{*qX`bXZQiFOO{^?;MTIFLX9z>B=1qnEk^F=2<#T zg4#bpIETi!_w%;urw9xq{rf#gzl$!KpFRo$^v^(d1uB)>I16q^yqas+H&xY>mlPHd z7fyN>`$*ro4oBGV?bNQZNk1YpFw3t914eOp2|O{pnT9bkLot<#bt8x?gBZXUq8*N( z;1bdb3;nG$!hK&PwWv>z#efso<|(}XBWI=ROtyx^xq z5|!Rjn%+)kUCFhV|9yHo&U^_JZBiG&r+<-(cToDN^<;rdGK5B0B70PtRX#SsN~-nv z{n`y)Jvem-{K>3KBJ;bOvZg`-Wz@@1>Sud6FS&^Cr*5utdSjm>J*)UT6hviR-qtik}NFdo#$7c=;pB zH#(SCDJF@Uq%~w=npssD>q|o82|8k}OOc!|IM=Koos3=g*cN$r5i7|Y0&l`#;;FuZ z%n_4J`36Klok%&Tr?UvNYI>;o^UOSTDFM+KkxX#QTKChPexaGRk4qpTd|7KNx$vpu zy%F>z)kh6dQIF7=_!l3921Fr6#WjT)T*YbF>X>B-jh{*y%7I+mDd$6NVV#%kWT1SS zrxJsSkQj`BFswI~#PMBfWa{~%nr2vD zsj=dP+JzEc?74;~$lx5c8Z(^HxOv+I?9b57;ub%C)#GQ!G~~gU#&l!1l+^z9f*yjO zRrS53?Y9niea5-x5r$y(`KnO$?{*Z&B=K3Z$#8kTJjKX=)udC#%;vGZt}huYd{1rO z>?GoM>+2Y>ecW((>NLN|zqCYwnT!Q*?HrPi97S1UUb4%fj2puog*Xr%JzT@yGt*~PvR@u z4IA3{8v^vdcsgVLi~qZK`C)iyT+a3UuCw4L@L0zCHvj(3>dQN^o3)YN++w`AxWY+2WhV&Tke z>fkuzs!#)ql}C8+&y_L2y~tAr%xvAw(SmDA99@a}YYT-m+5r}XC0kRR`~PDI^@0&O zv=HZeNkU62Mbf*q@B=uO@&gP=F1~;AIa=WI524YdR@lbwl};*fU9eq4!>tcW-3dy? z&M`>)@mX1Ggsav12MvNkqWVmY)JA%=`msiN(w>amm&EF2_38|m_s(EzRV*MpD_wD% zUUi&~zwO2)kzJTrEG;)T4`ZCND<=gRB)OBzd_CZVlg#^@14a6(<{MmHNliMj-<4MN z-J#v4L9F;`_4Pl)vdP0tbc6W6$b}=r|JKq(!ob)~rAL!&fio!}3~GJ`#J$dL{vvRn zVHfzIUDU(}Vs=*7v4t zotujKmZuS z#^u-g4l$9wx=~H9)5LDhC?i8CqMk+I6<2gJSLNB@FQIUIl&@ebV$Vx$e>8DMn6^qI z(s**p$-kycYEHm4ZPGhEIbk#I2JglLVDk`GYr3CKz@Qs?)m&0SLV-}(R&M{N+YD~& z9}6ez9iC-Y#d+V`rzLRUrHgufY^;dZmH78F6?W|6d$OU;hlyJ~=Xrlxyr8o2i zHoTrri?q4f`HdwNaDU<)auANcOr?^{hY*Z)tT(nHX?m^9u4nxN7J}O@TdTk~J;w_j z_=f9EVz5C}B)E=^6yl9K^LmeS%{OItV|l{oijTA2E7~0g6yogPZL~#q_exTJ)9WCR zz!V)P=9ch9GE{1nN-CAgFN6a29h@*z@upW>-%N7CwZKywqC2Yv5r?Q6*eHVCm9M6j z2D{X7o_9d!(TYXEibZWDS(@0~9rH8bxq{aNgYpwU*60bcnSk}YW@kJnOqx>@5|41x|H_YNPGO$gO@7XQ*k9I41{41`b38FUgGFu>w!9$8Q zR~$CQ-tWx1MrrkrlNezf^3aJ^D3ryRk(x714{k$35^1B^UHsVMv>X8E{Y8t&JsfxY#V_F!$;s{f^Y-6^IGD3yZ(n*bs zbFT-9`oI3DPaz?=CaKP|wd-`^YSEdN`afK~V|d(c*FD_0F&f);(xkC%+qTVyjT+l_ z(%5Khn~fVA6U_YQdY=2bkLP{A%=dGS-^N;d?X{_-=M&0&Qo}hm&FRcS02Zk{y2@T4a7xjRdP4zu5u?@Qsc zI7Wr|^Lx%!_u7_I@m84$oR$n6t!=DZb*3;KiphSjKF);%hyC%2H=;7Rh3Iq~OZsF0 zEi?bAVBS!AXnz+`JY6hH*WQDBN+aEteu4oRcJTIK^!a)hbk%j;dpklvMn=YAIraJT z=L~+IyQNCClc~%m=e>b+LtmNV`EC&K?e_LoxAy6x!>uLm5n9+1oxOX`pWnKW$;u&p zLBWS4e;X&O$5-|&x-!$m4OzvGp)a~xhKnVg8l_3OSMASQfSvK91Hdo=+ zp8D@F>weP>3<+j@(!D&Di}nw-z99oTc`hgSY_>GtT<(NS+cM z^0}M^Yb%(Fp7#Ug;1FK$0=hrK8kj5m3Csu6q02x2zdCQZPiNELsUs>Nm`;A&nQ8{`7X*};IA}|G!61`r zu}Z&5!%>I6O}@piY$LR5TD8l{4VAt`$JHfGe~3ztY^92lw`HloWje;4VQvgzX~Dnr zn-bXsA`YHrlpA;sq}f?s^T1z-3s}V8HM@qUy40?GyZS)5fzaVVgTu4@emt{&9O-0A4i7C z0%B7oAs6~}u5(`mbb@#ux;QzqZZlUY&y(}yXGefcgk|8&QoY_w_(8t1$IlPswUdBt z_Jpcw3kuSp;jz%YU7|K)>5)QvMw}~@q_6~Xv+rT4j-*bwOhSR)jt7VK(`LFypF%~8 zv|<{`B`WP;E$c}VpI0)rP$At~BMyh??|ufU=Xm|uqWX9oK~z}bVvQ)_9=OHESpPh~G;&9k#4oAf41-_mWa64|bIpu3s*Vfe7TU(QU4mqxa zF4{Az^-!UdSXO9=Vlo549e5DR z=OlQ|oKw%;eX?&|GRf)0beeN5DaYk5u8 zd%j?R5#k|O6|#jM=en7wG&6&mzqlEqp(QOL&zk<^);kwmmBCZW z=H{(HHHIsYE_b>DSlu_IQWA&XK+SYl$`H~YqcjBa^mYRJtEZ*Ab+!lze7%}V3`F&m zv9nFZ2=>!BhgiBgpF0-wXIXyc>AmC8E3-?&rH-r}@PinR({gquoVK{$s5N&KfiAYt zXX?Pcs~f8+8Q|VWK8you`N15syEz04h_QRZVl||3_C)E{e`$4-seco!nH;B_g$Vph zL5ldtu}42NpLl&cU*lh99V~(|3!X6jM*FE2jcYKgF|D!0&SsN^T0CdHwPJrzCN-Ow zuWO`S|5B6IYd%sStKkg9SL!SipI|95=Bkd7t6HP=qX{d?y_8YmD6Q&A7^<86wY++Z z1FKF4AyboidAt-hT)jT!6l;O7gHw)dTC?-G$^bES0W$oX5%WZP7iL)3VPuT!;LvMo z(iC?ojg~hdD#1hY>uvr{W*Tt#-X{t@wOp_}tF5i@qWl#xqO+Px;n9kz%r>b8E;jQ! zv~3bZf;c4VWO$KwuUdpiDwF7^s(y3?OJyEZA**O}T!KMuGKBB+R>~Hr7*@1`l;-dc zO0RT7yoXd=$kvHjDCW&r~!BL>V z19k`2r`Xh8KgVfYcQZ2^0z_$d`gX7BUrda@era|B$TM#rmovb}zJM_FB#z}svWbEN z5;$bz^X<09u$Fa1Nxes>%}Q3bUM#bGjjj9+o2A`DS&bzlh_Ls|2#tmKS!X)g;S$rL zXv$mpA;rTR+@W2NUtp#i@M>|Vj2z6bo|F_q>>QO ze>&@HefQl&4v$-zQatcwwit4 zJNSc_2XYE&YuhC~rOXe6Fog2&=|By^d^GjxjED_t?Gmc~?;HyDe)LlT3QlOGl+LO zr^jkA(;O|Br|P+igObrd)F@ud8T2`{qFPK$d-Qb++?h1}Fl}Hl>9^f9Wz;lfRW)T= zOd8)=U3Tcxw^-A=ozuZrK9#BHR41b~tP3&}ud?X8lr)gOb@+;J9J8&HD2#u&29Ecp z)1yk}yzTYG=AEH0L3t;BoYrU~{0Pa$1oMRJA*LuahCy9YGuT*o;V;n8h%fNATlvsp=)siISzK)L0#MmH z(VRx*h(Ecg>w4aAyBE()U>JscToc(u)v@=Iz_^H*PBF?=!Qecz*T;Ou&+J|>)AHSa z@3h{iFQfhSES_ZfWJpJ`{I{Kj{iH`)t7z7K+KPOWW;7M;RjE$aTdt+>*F%6ZlYD9VZ?=ZZGs7BuIG$k6{cGL3FQA-*sf6RQTn=ER zDAUY(V`n&=UKqDaUo%>iU~_O2bd{^ERG@dKeb~bQ8e+2fp{I+}Rzv0j=%^Qs&7bkC zxx73gp+Wo$-V*}lCTmHrAWgRa#=vnrL|n9CjpmAIBed~6E|WCdimtYvY`#omnFDy~FEG$f z`e^gZ#3~9))EzTeAEOb?G4Mu=8pNry!y>mAa+uGWuI4J!IKd=ynOEbfq|#9uE(h+M z4r?%u#!H9k+f+S*ibtBH_X-V8eeV=(?htfVWOc3(qD;bL0#oH2+vR#y)p5z_ex{^~ zPegxR2>Bc(LbpOMjwic{s2blvftxak|0&^t*Vt!sC-pZxmq^R-E+dFe-RF5eEoOdY#O>uq;6J%WsJBzs0emdMC%=$DUJSH5-h;4k)h>Dy@JD7gJ ziu9+i?31gSHTbNI4#VWeM%XWPsGoyy2Ac+b1X;c;0b2-kGa%2#)1R@l)W{Z zcTm)7p!a>`SFx4DgnzCuD&wKTkc}%tJ5YR%KJL|wP_QW}o-d)cW`D-yt9%dV71-$`y0@ysqwNg-D2rdo3o@*4DIh z6}?^`PS4KHUSEBymp44w0Cm($?_uV&kjOy?o=UV&dx|Iyb|nsv36AEOme|uo#dA8r zvC4P<(4axYRdtC6Mzq(Sx5tLkM^t)V*RcPRK)^7QKdYO9Pxnc$K7KF0&-s6k7(xE+ zFH!e=M%}%3J4Xg&>0V4#S0$I_4)f6oGspfP`X^G}-L85G349mtdy)QyDFx7YLSo0W znU{rW`Q%;OH-Li)AyIrEP`RL^j=|P_x+f#!hds8C5>q>^Z{4rsODx86CcABM6Qyf? z2v=TyoL*hh!!$Z$qnYaqd0wLJGXpX(ioetGKdqL4ufj{_Cn1_83M5&L+F=hO;TDQ~ z=h)eF*gl`^dK--X56Sz_BauGIq1OzLWXYtJXiGy%C(Ugj$*-PvHVwhlR{pgXTcFYE z({TYN>y)17bA|bpM0S;qmsTRkl&O}eMcpl_hK?xU>}6FZmC}~b9PO)_6s0(;r0Lry z#M~bxi87lcZD}Osu}w@qXgEm{2G zk%(bXq8@3E(UwE|oI{IxiO;fqJc_WBul(BApQL1o*Qc-A7^DGs&Ym&9s$d2*Ts0P! z9u*;Ts`kr@eYTcP45s{K1J#Ty3^{#eDh->|jU!&jMQGl6V>a-)|8pU!m>4H9lIRk~ z5NesIS2#Usr^3s)afNiGc%8i6iURU)23u6B z2erC^18(;xGY{G5-vphLKtoYqXcV$IeeMp2V{qzqTh6w{K3A|fK#f>U2l zZ*yzQzD1WVy3+>uxq9$Y&}t!L4v-DhY3FKKj07#4Y+2;MkG2(U)>VJ}J#v68og(9KA-;;y0lcT+p?VzOcruQcA!=TAt|I@RX zKa+eXnwLl&-Gl1|)^Kv>svj=LOw|ZJbY=gCByt=jJbsvZI ztsQiri_ab1ZV>5J1~Dub+OIqB^ALvnx1p3@dbVkNI^IxRu?|UsNKV^D97!B>x3@_& z|1YBWG`B^?@%@nG3dOFpa2>V=T450riq;ycAiSf*PG&dIVz;WX4YJ9QQIYFbMUL8}YL>4s6~GO;?zGOQ~{7qFY`1f=2VHcA5zx{|QRBmmW~_=X^-l}QlK zV;QZ%ypY~yW-(z!D(cwr6+=h61zibPfT`=fyYvfGMoX*^^EVrhYN0L_cclxvCi$p7 z^;oJCS3TYqE8do3`)(DGQt^6jgj3#4Er&wj&VH8JJe$t|40O{Fu^;ph5YgZ$fNu^OQ_$%8o5-gU;=&|yh9C&h zQ*;~xbMHs^Od-$Ya2I*_1GsP(RIXnaRB5#q^9h{N_hO6Qk?^W$3!Gw{O)Xd#9cmZx z*BU|JqzKr~!ZuDyCIlo-^U7|<61uDyw%if4LPe9nQV*@DIQ;cf>D3A8XM{K@_~&hI zgZRn_(1WJ%!c*z`xE^zk9Hp&W@FfBi)4P+XoWigEp-)R9OH11It0&i+UgnEs@p(qA z$dn{+a6 zmiGq8e@E{6G9WVjWTx3mFV-mV!HfP=KBBVqrDNFKS`rr}V&Xek9&xM`9v9p+NZ)19 zce+D3X?u1R(Esn^Nt-aNVUM$KNcz(5OGTX|U# zh_0Uhw4nr6Q&_p>cFqL`hQD*v-%Tp-Yh(Jn8xlS)7rrlMytr-y!{Zua2of#bt}Q_O zWgjv4&yie1%(d}Bw*xa0!}Gtx^I^cQ9$=vZ_;}}Oty|c;K45el(v{cmlBqxwXH4+v zygFQi@5E@ok>TN?bq>o6R^h>gfLnTKQi!-W)I8+<;G6>QlH$!1G;;;~^C<0xE^h1q zG!ARZX=h0{g*T!F2YDrg1)Ew&7h0#4s5~Ou0!4h076iiZ39kLj69#ea2ejc0cR%&*=vC1TVj_l>!ElRY`a!QCx=z=DZ$&=ZlkYzcy|w zNSC^*hr22skr=4*DTEweiwRE9>7wLp z4sdO&06qo>rtkf35KtJGzY!$E09( z?Jh9n=r6(X7rSw@#MUn=&#vA8nk4=@TUr0gt86Odw{*@CL9f{|K~Eb6|G#lB!_#ku z-8aJnAr2g1nXwjzK#UQfgNjW}&g{5VK}Y_^Av(Bq!%XNC3gX!5lsh%3IX)TkP#x%I z;WyTiTZrR1)75OYgQ_Q5hMd}(=kM3OMdQ<{c*t(*ETZ`T10Sd%q;aejOcKtb)?);$ zNKm-KPz(xRH+8cVR`S+=NzriRg|ClHcLBIMML7Su}_H7>Kt zT;$^2Cx5uk9y)$)L;|Zfs3w%#oyS$dkY3+4g*;TXp zO!&w;N9^|-)%H93RWXe5C!xgX!WVQEOqRJd3DO<3eW={Qf_^?X-@vr@#g=bFq}8Kj zOz?t})2t4rUV-gxVz&a^l+$x)&R+1s+3;(kU^gdS7yGf~hNM_LR_X}O#Yak?M7p1S z*lpy`AHm6X5g*O64c7Zb!uHCXLO`x0N@64g8vFKJTIT8@V_wez6-L>r$o|f;#siaEHf>q4~N6OE-!THOuu#VYy9vZwvDITZ9`CAkN3xW&~>53$J;6NL(D;VqufTfJC z|M+fjfdB>-TjkE6a2>!-sbjixCj*T#ffh|a!}nCy*pRn9FI#P zbMrZU|FT|xgXd)8Cr`SMm*@@ch9}Tn^KnrJ>_U1(A_B?N)1n3#-MMkAeh1IkBIQo4 zep}?jq)N^*$K|Qq02Z*fxz5_Ra+)K)0Y||{O-}v4=;Cz!;__5E;GX67$0^(dsLDKS zEo9h~=16pWsE}>S?2EDsYIMuv6ujs%Ctq??C$@QWHBU7xKGvSa zuHerayuafzW95|c-|8{YdXA!$18dy$uL7*aTO8cKWG04hJVgrjf8K?c1Gja zn^}Fuosyz{jfFQX9+4^H!e~jV2p?cXa%B6m;-6bfI$me55EeI5BRN#0q;9%M!yEe} z8&Yh@UouWX=panR4WD23+}NF%dR)o2$0v*?{lq|tFd|H@LiqUPlF z`kdKlff$ViVADD<7HBdn-Df0EFZuFOQn-NU>80Qjokr^1>P-ZVaOmd&-DWQ%Nr!>ypEJ06aMh zMHOJPNPjGu|{qtntpWLLEPIhIQbb~&%mevTmq@w{99}0-eb9dkCT*pj{An`pp8l+NB!Ie+tUFlcATyBOrN0R090nfMt2*}r->H3 zd_UkUi{n%fsHg4ua{KYZ7P!%GjOFtq8V3Hmuq2Krs3K|mNz!vI z4*7E~DFTv_@i@Tx#Gs!Gg|qqi-yYWf6iPWAhoRIF@wZ#v{Mq;}7H`xT$hzR$?K_+N zRgc7R>rOi0w(6{w!M4qu0RU!fRy%X*o`ULFz(-2E8ts%?8=Kxv{jf`|*%y-QS%Vgu z@oY9~)J;vY>iz(PqWItEk^bj#|MSK`LRI~T#ITHh32*SF=&*`cp>D=TRYvMq=Y8-; z1)UZb{<7!T(3NHP4a{xf zyr!8bPn`Bt`*awee8ysI7h-d-s6lDw&3s0TC=sSQrEik>B;Ayv88K`<``#mU(eDxmWA_$!RVsl=ySxL&?!l+C?HRA@ zd;7_{Es*!N5oqh~t6S^Ca^4;4>y}?gOFnWN5u%avsOY18N%FzlHkCr9l+cx9FjPP@WExX^AxasMC~~B@ zVzfC8x?E(nycA=*9J)p=`Nc!5MZcAE2yzNr`K*=$P8gl<8Brc=C3aE945euTrDEV<3cCE^SXG{NbloM zPFU=NPG)6#ZksoIiUU2HkifWxr!1NY8TbE&{y)+2{%!vb6?{iDkH`{0%W{W-iwEOt zMya`9WSWv%6ha8~L0d$6%PvGO0ax;UM0+!e>^U!QR${__~V3*eJ=%GAXg~`>x`a@n#V}K&euj0+@7w4!B`K;QFq3|qnH(i ziW5?vm9XMOg%Xnq{8$x!LD~pb(Ndt+Q01kmWh!=I2=AmVNfN=AAIpS%mrrc1m0ndZ zsAfCw<}~?gN)!7cQ~X4ksqQG-fHU*h3+URYMQsjjKfXwxbtn01;M~ov9pwCSk(emB z`nUAext)XX9C1{1e$AQ@|DY)6Gb5f#^cZ_JV;m>F+@M+FDEaqTX;#^FXeM;->mwt8-U=DDk60 z3RwjUlL~1KsNC*#r`fc*1nz4?4KDWFp#5*@NB|xD_>(>+{ynBwk^sAm%A(X*?J)mM zEs1@h0p_$Rt>hHNUVE<7Z@Et#*pasCqVuMb9hB9o$P@`+yHna;iDZyVTMZON5IAZu zM%~q#%%hDZo&^~#y?;p$f<>w8%Utxb-X4z6Cw%{V+bhNpS&bqd8tNYuaL-L(C+mve z##q1ebR$F$id`0Pm;RCf7M`}__ANZHmu7ytRbGNs4!0PGfO@%>6QSzEE}6zjR+b z7vyuMXeRDm+VE=G3nB1t7k{LS@=t6_4@nd$Vt6EGO#V<96C#GXnm;fUxLPy|ggR6E zDMODsRE1l!5k?1BX^KWt%O5i$Vsn9MYQf6-ZK|Xt+Z{#nq{M@ndi-&r_Nwjr&M}W< zt+m~EmI9fi*6!mXv&jf=HlVNJ?Pc?1vhA4{#qhKLrk0W595L>h00(|28d1-XD?dvx z%nt~aFtx!^b28XYlc5Sqx+psI->=RS7?sJ3DW%CTFSu;CSrnbX;S*;%f~%L{x5@kRXAk1_t*2=_ zCZl8SpgO0IhxOLn^*E;;wT@Fwqd--v+Ddk_)NpZ9l4tgbeHz`rLkN;;Go;vGY|WGj zDjQC}IKU3sh;K^{ILNyaB;|JSp5JdYB70{N)6u9@%Q%D-fj7-PFLbu8`jobB-;DaY z$WA^)2jQH08$8Z?x8eF;AI4726!Y793tOs-gKqYvy)iR{2uB+j8T54~zp#Mt>R-_h zcB7v`w5Vu0%C{wwJ_m%fFAyuJ+Vm~AGM1^y^av^t&5++m=@BPJV{-qTAfbIeJehPk zDg7r3CKwmnJ_|MUA^ztp0`Opv2(U;ECc<649tF7lfN`4xxc!1T)t1Ch`|2q2iHKIA z%b2T^kGtAp_H~BnytA#|aW{3bo8|3{$7uBw0D!op5&UEGHqm~~X3@R6Jfq|voRUOm zD#PERx3c1-v-0Z*0+ePY>OoU1rXc!D4!;7gp?8*~c)eKSq9G)kXWlIQqQSp61qJvR z4@FW-lH=HOB6&Ca3Jg6LC8<5*dwH{7d>%}HHT|vFTHkwRCU)?Kx@@oW5qe^6ijcwk z* z^LZ*8X?cvPFF0M3B;(n%>EeiKzA%DaA4W2XWe-ZxNkRd*TT&*57;aGaa2iJ>Qx5$i z4;g%@9!IwN1Q-GY7*%dooOoXqkanzBRx&=bgl@)0(YQJBB*20i-iozr}S~Yy-d>47|POZrkHML9Mj99+IJWGF4mtJX71iRC6y&f=?PMA z_WHfmd>AV&o&pg)#3%%cRXM4{d3?kZq{QcLzn~v!`{$)q{2bo5NKBT%7B{9!RO<@b zABiW-=lMD;3P_Y*5Hdzqm}J!H{bT*?_WiuwY+y%y$-|9Fc75UNRQSr( z@2l^7zxNUo*JwvapoGuSjbGG$jD*pm?zFgKn1xK; z{y~zpH8;cx==XK$?xzPKoY6r+-7L8wgIHL>tr=eN`^im5Urw$k%?ZsU(CM|@Z=CGk zgbg<$G>BfZeck(Pgt3F&KQ@?pL=v7!uWhNlM5po0ONEk)>IZcLe_CSZn~h;_+i3g+wsEWD@?L?n_!&Aa(GqA{ z&+|u#D}}yC`|iay7smqHuL<>T90dp?0|i)|ret3nBB0?aT~vR>NNyutnS4f#>!RC| zF_k48p%Wp39jaUXcF&o&H53eitSlZp|B5>>{zp^QO;_l?J#fV3gQ+~0V-jyjNB9M? z`8%XRzxa#vQmIn&f;D)bmz+e%W<-%g8zyc;X31fwM>02G5gBt!2e7cMam`%04$%H6 zk2qccn+fyH0EBpUZvu=K8@?Ym8dp11Y=7N4CAqAOF|;><<83c=419s)-k6mPX^^JH z?!k;h4y`n4V4aloW~O$o>31>1o)E{GMz$b6rLPN`Z8yTiF-SStH{~ZdGD8={J}xfS zH~)r>7abAWF#mhanS{?h4>`~5ZPTo0dcJPMIWp)l_FOfFX-ONqMhLs+gUfn%)#Gq_ zWH$2*HNSGBv-7M)o;#p?IKlF3*|#wrX7+Uv>h(C?YKXSKDlxg>@j>5;QHEJd&Xi)O5VFt7bD!;2SDl-c=j@Xm7f9cZYw;1>SYeET`>Z7#mTDFq zm5;sqeTjNBdjjOVgV2+(Kbg*#I25B?l5*4BJ_DtIi8LlEQ2LlqJW60U*wIC*t9OGI zd8tv%K(s;t;|v=XKU5jo-qGi+eo$N0Y)ZEs|vQOF5D_o{YM3mDy^7cCs+ z?_x$uONhvUnu#XXb|`JJu$cLdOiJ$L3$AI;qjDbZohx5}))n{FZ9sxXhl9*?-NoyN zU6$ah+C3R~+FhRqc-@{^a1g*EdG_n;RQI!QUdBFs81}U-#>p=Ja7g?4O`26Y#$P{o5h{x;RlFGlMD*Qoej$Xc#>YjaL^cFc|?5_kh7 zIKM%t?c$GI3Y<+z-)t$rGbug>so8c(f=Ma*cqE=aT>cM}>u0JH;FIPi4GVXWwe8l& z$%w-_L5!R2t{%R(UE*_#-xdpSLdQLOGUu!)nNV`dR+tgfgoA3GZlFkN;x54z>X;Os zC8~WqQ;~XJBiJw6{mOsf_n!&Xbb^FM*pi%qlv2%^mh_PnKi^n*#RGY`T9+&~Zm8(I zcgZCs+wPK)Ve8uCCADjzKd(u)t=H!^w0+*dE#aVFESO!a=%9beGXsl~J+CY9yt29C`Gz!sxl5*Ypfu#}LxQVY!IC z!TmR`gaa{?bUny#AQOVjHPd*|l;J3&LU=WFK8PrFh`vzCvY}@P86zYW{EUkpOWMF2 zg2zZ;2t#Lc{fVe4dDh$Re8B?VB(2`=?7oZhgRBQOS}x{{46Mgd7bX6-Q_#)l8FyUR zupW@D9xNOYrPX5y*P*Qm0rO+cv67Pt+TnO@hhMmwRzy#K;<+20x9pxqsX_&Y3^7HwMKXN5vG5eq-z1#4;@H5uDX@FKGz4_PQLJzBz+B_P*C8{?4191KiAo zkKGKfNel7u_J^k;(eDk4B#fa_4@rrM`WyA!i@(eVI<~Wv5wdy<^3Mq@1YIo*&lK)( z6khortw(MI6ly*jH#rm(`WHNj2QBYGfV80Ml;CRK-jwWnUM{l*f|$;>vNu)V&9}3w z>5UBc>9qfr04Fo6-OfA|TlPk6DD5SeCeUX5b7#Z+#-OuJB*A6+&O_0n_KwrSXF?a< zk-8&ki2pUyQ}tkM)rV{537e8{nwKHG`YygKR@8xd3t69KNRG;P43GH?TdQ}Z3%;JQ zzuLNH;s@+QR9-hUU$Sb$X?i&dzs}M2_UZ|?WLI$6;N)HfVeCX`4nI;v9o;H%MhCS5 zpfITMp2I|5ff+KZT|jUw25U$~5f|&_$B>i-Gkt>!8-i?jf18C)!st8skx~ey1SJ_G zJmEVN1sFRtSy3`FuFtVwy3X|R0V8hQ>pB0E=nqc@!rq|-`xA!5{MtUeqM11~(o>^Z zq@~Kogz!%PhH&yzIC!qqgr#c%8$F+!K>B;L82~p2fK~Lp8xz1vlm%~=0%#C~{gyQ_ znA=du#CZOfg7~LK15|kRX6C zvf}>0blrGJN(99;v&Nwba+>?@Aw-PXCP;#P3W2TRiNuuyC}1d#VxJ$-uI#*@WTTaT z>*cj4^>~wTL`PHAsu-Rxj?a2){15Y&JuYdi+UkLbZtYOn79;~`> z60{8}LpHj8DdayB*JLo5iqQ~DUFLp7N`4^GVpf$j$RgY)XRQ9{Kx!WpUVG53Hnd|i z=7QQMMW>1D*uPUUX)Grlw^-p(2+I{^l2qtWQ4_IcEE$m`^OWsyD;mr&wo1x{@$%-{ zKJo)x^`9eF?{@Tg-culNYJI)*sX6LbtBuUFdz0Saxexz{~B<{daa=J`IG z0^p!lE^&xRp4w47d;~9_0z7-~CJ~o|uB$&f`>r;>zh1);prCTm(-GP8@~-(auDO!C zA0H}jp6)%}CH{<__uiP4+)y;K6+pKYEZcG`xE&K7G@%Mb-bGyr;?{ms=yUDw$LZPW zdum7Z;1RrPzC5p4TM2mW+4FZ7yzb#27+>@mOIm&q&0(M;sq``FLH-40a+&{+Ps9ys$^zDelbL{z-=5vGu&+iO6o#v(A1!RY0P@UH8pq zr&m-#QH_7IZVYuAFoB2YEK%1e#Z_O!tfSfUnE1MXu`!MM)>aF@`eA_7DiJYrTiA3b z9Eo;jEG95uY*({4dBaBS+RW;@M97mxLdO(MJRMK`RYK0GDC|4PESjhgRxqIPy1x?` zzw*4TufxX!rbaX!3Hbr7-;`$~W*WqZwv;1r?Xf~~-<3~pbfmUhmpz6j&t%iIQfq3M z#_Kj4-|2Cr*ZcgV%V~wx>f$V^HfbR1iU>45)$%lPoJ?Jn)`GF-dPl3r>K$rc=QA)R zEPMhcCxS&$WA550=s-avvTPE+%*E$&!Xi^!23PVix~d@Xw6$MKY6nUn_W8 z0@09M5i`<_bjAH86-Hd6w=vY$ddNh+hShe0Zfd~VK|X0Q<)Sc&-?x?z)l0SgD+vp? z*%5Vf&Wd)0I0Mh3B6WLg6tU_-@!Y3yjU?}2N=V58ySdIsT`OXfSt@(qDa)l#rIC`k z)LXgrkC;?%2<{U=;d{{5a=o+pi>Jxr{Ns|3zQd=# z#bV9?Lw*0HVD?qf2|%z-V<_NvQTkMzy&)H~A&1EK6EjaBY4^6LQjF)%?juva(C*7= z{+VE4)$8D>-E*z|PEWJhD3pU9PD|jg0>I_&av!idEB)#-W~tv)lR@*03EK4htEPBOgdA5(mqinqoy?VM}D|;s2ud5kC^J3dyK1 zbkfTbkhU07TrCuHL8*$EVZm%fi#h-#9dytGCu(>UXZa^6^Vlh{IgTf2AT5isRDUKb z%TRUR&AY-@j^&=dx{3Dtr-P<7dh2%`u5O;>_I^xBh?HYGyNT=k0OiHsQ3#Drnm}+W z!Y>8@#K2?RS#*`8{D2m-4XoTCBS9g-Z`*cA{}Pmd0h#V0iRoFOi%RDe5R;NYgHK4n zC$N)?18Z7-*`kCBT%vVTqBF1L>NlRuH|s8*h~k?ajXXjJ@`-p9Hnrqu9wYsijr?Y` z_~S@ws_1nzTO4e}Ts#fHQz@1y*I$~STN(--$-EVb?Que7d0z?@D`)vsfx3s%DlfEO zeU~r=8`<=2f2J+Ws~#VZ|5b6*Ugr^g3c5QCM_qj+(hhPvk_FIslXkuRNv3$*9S>y! zV@1!?95l#QEE0RIq6>GDH#rR#PqEvDv!tA}B#RckG=sj+f8pMOsI4Z3-HH(kaya-J zXD{>vEwvOs>PEThdzd%^j*GzXQMY?mmb-MB-tDKSp{uDSe((E^k(XEVh__=Wi1FXF z_Rrsk*diiv{5^{dzL9pUo74@m!fNlg)`X+@A#6z^3c$2<&fR^@qoC~}cST7dl`rq1 z`#$)3*yt6}@lm;nNV3)-e*F=@3*AMz;(tcK#VQPOI(S419{d;${(eC4TOgNnza+&MJ6_>$6*%4Xywvlt+v4h-1*`J+pD6xslYEEw$~GTm?1!m39fWhQ4{>$1C!W z)nNKtT-JE>=Y+7xp#aG(r+$CfAqR1N&NKFdI{z)5;LUrsY#B8Xnlv_iW#Hha%ZW*} zK#coS^!mmmK*eyF?mcH6&P{)HjO}yxoO)~DxqpDPr5QU(@(^x@bb0H2MJ<03ZeLYD zG%qdaA5Fx=oGX{_^_NAb(|5k4TlWKLT;RvQcqo%gn{MLPKIqx!J~?PAD>o-GtDBX{ z#?be!+ucBuzLVBtf|T{LXuWfbvGy@HQrC;|e5>@8DoCJM~tN2uyOlyobO zcB_(Wtd=9LWHP*B@oAoYtHiXm5<4+1Bqm#+!u_RJh*VRqih7q%1$) zQ0w1s+f@c;7JV|XOWRt*YCqpw$z8WY3Bg?eWeqYEX2L;dM zbH2wjkl5PQ?P+Tsnk@fcnx#Ym^U7c)2-U?c z34wJhW<)}mA}k(B&Hl4&=MTFiwQm^hyr>IT+M+7X6P2F0cIr)A6FWk0jl>VVCWucH z*D0SNwVs6EMfSUDC<8a%f*jKnN~zZ4=$s!QL!7(<1DkBZESVY<3<~YEDWKu`?jE*I zNBANXJ2OMcC*PENtga=}+2veU{#SE$WRpMKE#UYen68#RNKxbW)>+YJ75BDE)9FlB zoR=ofwvL9kmBk(rFof>|26V*m9$x=9y*IA!uJ0v#B0W&=@h(WK?{4?2tYK&M+3+rO z%4RBGaM$)JOE*UW|1arrA`OYQP&4cu-Bh9Sg&fWC68hOAmYnl|ThHgR%`FKxgYeV3 z5X^L+wB&h+d$=_<+Oe=Fj`4Sw%x1@?88dR>7WB$3g#%VfdKY??6+)zU(H=?!%RoG~ za&$LbHa~vYrCKRS*pi7K>WR`+;p!m(JL~?i7u=yiQb*kbe7Cw3iNRDY$R$Q7ZEZh6 zTaIEBsN;p%r=VX&fO9QB$Xz6q=17b0snD93rjWDu6U;PGkbjdQq1uHnQOjqJLjETv zZmy(y7Mai9`R+z~?-zTT|I01%U@3{~uFt8P-<2d=IyjmKJv{P_($arMSDhyE_ysP~5!) z*Wwg+DDLhMph$v4aZlbn=Q-#9d-s(OT=^9Co;|Z>tu^=HI_&l~=b+t4i0`kEO}iY% zY^!m2@g)d5#FMda6kjUS^Z#8281T8^i~-Es?ziFCkL(nBAltm{&a*&9CcuiGn})PT z3s(y$3#Q`xop~IM*6w@77YA3l)u%Qz@n`O3jRONvY~ZhGYgrBaY$B)4rb4UX3Pp^K zZX0+$FvzKRF~Qkf1CR6JX%`v{1^M_~{264q;j|)xPLcor@Z7+wjR?5jGx4H!OCy{5 z+rP9m7b|J6tn5VQ_xh`%-%=8RDzUi);p=VgQ>yzBFF}kapeKiy4*oL&PNoG`B}Wq}rax*%Sih#I*64OriZSf8(_E$|{BbGBx5LJDgfuXe=;SD@y!f=^ZFDrXy9F zes-5k_>9}cXr?8UVfc=II=NESOQ?9t6zFJa6+AP_qi0>zG{)GNa__^e_B@!73HWmJ zI;H15*wAm{dqQs)*AXq&PX^e^F8dHlh)af>GEl|qBd!ybD`S*ytWDT!PvXQ^Y(X=` z$kipO%xdDc6*7u6YZ{DM1zT=^A*oH5=K6n)Owc{t0|D^oY|RL@n1T zzOSXZ6e#)riX%UXe(N{T3(;9Dn5iqYp&umW8IEV;JzuF+7QLDt%wjp-ZTl5uxD_n@ zl+ej?v+OFKV^C&@+#GD#qXzw8d_+_MEv)zP^mJA7boFw)xGXq(-LY5 z={u54fA%?45x@X;)%f>rKair{t7%}GBMc*BrIVPNi`U6-B;_6@mClRjPJdNS_wYAb zX?z(4@}}P#XA`h(5arLm(Qx}l`ONjM!h9mK@|7q4r(6HH!K(6n%!t<)$*l=XkA$Q@ ztSsf~=i8B^`6PEf$F6*!`WiAYW&`RoLC1lx7X-fhzy_4V(X*vRK!s3YwW#iDh}mW1 z?r0#z(LZ@n{rGFC?nSqt6zXacfB%Y!*mH)C4!u3Ql{1u|p2np9N6tX-yxH&SuM^2g zYPm6KhruMfpVD^Corsa(+L>ajZJ*>e3)K&4t9kRKQPp@8YT9A^gx3R3h*8rV?#UO{ z!v;7M>@5P96LQ#KYSn@v1TK>2`Ug%|>l@}Wd>kJtbdwu8R_v?UGPnz5SAGvpSKoi* zWW!b1XFLA*AUn3?w6sdtC%21-t5qPUVnmF>CXp6ZR#0b$UCv{}a1#|Qr1<-r263I- zo1;Z4C1JC9D!g}9u?y*(qj*-;ROEN~)DOtcH=X{q=P2{5kIvGpOLa-TKd9>p2T+nf zMN-;iU`vSpk)WWBQh~zTg2b$la|W?_`1Tn4s|9(|`L446m(2y)!NwE}ks#h1VH7V! zju!2$J0By+MABPhH5em5OkA1bDf3;7`qNJ>I7qhzAa%R7o>uzOj@LT8N zJUysFj;w04v((95=_Wo+tyZ7-ARTEPoPSjKeeI#Z%d1SC%mEK++O5}#-bd=BDU4wg zot(QtdZLcXqcIiewY?t!&Qs1k+34|V*UYmY1B?YucYFG8Ebn}QbLFX_ab{&SJPX2- z&?x$tpxM){7wfHbPwv6-H@9{rp~fz@66OS(jdBgw1n z6OBG_k1UZb;>$|3ym&z8@0jfO0ztoPGcM;}tg-%w@`AqvTD`A`#L{dDVStu_0fiID zZr@X+b$x%NNvGzpqsYY3NmJ9)e#j=oWAT*qL!esRLjA~i#xK*9A+&aBrzJjX=s5w> zV`u};YGq!0d40AO=@+A79Xw>F#AJ;r7}h~lyt1igwS%L(>06`?(I#dbY~@SrPKz_5`J|CufeWS#27s0P zIT6{#jXx(F#wG=vN zaTc}^{sUDS3!VdD|Ae*E$uo-k3Ni3ZG7Ju3{z+TUplwOn)c%l>jHMQ<6Bkw%+mW?E zj$K_l*R|8TpMS3An^5Ne#$FE$(o0w|c%4^smipk@2g>_*+4_z*XWyPCa5);Uw+7sN zueb<((^G0grmm6qj~_bOP`%S2s+RiacIZhsMmleRAst%t``%o7=;(r|hPbf*20;?l z#K`RPY!N)fV^cYJl?zKCI`sWyv`-kqvmHUFVQ-GVI+tDtwB9}k4?l_+1Z@9ab06N? zMk1-{SraNV5tw(}(AMm%-wuti;{{*??3c-*o~v)y+RfaEo1woOTSo;{PN%rz*0md* z^p_d~ntu8Oob5Ey6YTeS_?x!ZYu1?lflVmST9snP%y~Hfh%KV(cbOpgKiHzcSt!J_ z%UEMxRv1nlQ^@q5V|bK_ad_cZRq^+j2poQ;KR&tOm6d}pTs}N=n%r|fb|X)NCJ*u5 z{k6vT6FyGoIM&Tf_CAb7M`^~syc-buAEz8xN^-lOa6UE;If=1Gh^DUC3@8QjE$ET) zD&7-1exqfer!*48nX!MC!qxaNOUM=^Gf+JSFnV{F`M#$Di%C2hc z78&lbeTLh&UVFv$NAjbV8Df}?i&woHkSoA{H}KWdWPgNb`LV7lTdu@di5HTXtpBkezTByOqNSc*b zLzM>=xA2j{G%G}`4E#SEnT6hKnyTc9XcNXEX0(}k%CY26jDQAN2ZQCrVjH1CT&&{v ztde{bV}oWO8!qf9)L}|d7XKvjvppocwkz}+=(+e(^?nbF-NxPUkvF+pmw!t?*Rqp> z8-#Kblxf7!tD0XvqFlx{U1s7`H`B6G25VI31YIitipn`mo2&{qi>rALiRm1xgUcoc z16cEO_ql2eR4jM3@CY(gi%xug>#&2IDG@4QMMo?@vU&|@g~&d~t4%S;g({e!IB9q({FsbgPumNvMnhCT%eMoJ&0>#_ z3~*Qq9{$pL=g!e8{UOe8NIvk}m3To4rzzBc0!FCu5Ha*zfdgi@HAFT2>4FlKPLeb) zHA!D2wVIyvr<}1&0wvRgeX5FWiqEPOtiLjR}K4DI#~OpZQ&Nj)L24 zgOEpZ)|`Osgwui!Y80MDVc5GgIj_*6t_yTnbDF2Ivyl3gBg}?%TKa*IJSwtCH7X`< z`c93N(M9z2RYbxl0uq=Uo>JS0e9X5VZ13QaOAp=a^QfiyUrOQ7gtqw^OD^61em=cH z@k+N8*7iBi>CwrCpHvvaBqN`jS2Hdr|AP|71Qcdu)XaK8Il+PS4xO41s)Htf?AXE$ zX#@MhhVszNd$(v|HQj9Wjt8vsbZKdza%6!LR7xNk?m{6w1N&uzF2rtsvHK6;3X5$C zMSWZ5WPzO+&vyhphUJYO3jKmSM^v_p`1=pQ*a0h8C^&-~SE!BKCkjJ0k=1&R4Kouc&(fA9uSe&Ad z1mHsUc(6{c^;>q@=pxGHY3Zpt0>+5x>?0KaP0i-&(_?KQI)vv;XY21-@?*ySBHpvM zr)WjXtA;Erk`$XF9EWQKLGF3k&tC}#oW&RweVVX|YiTbSsPI*OD*9frC1AfP72yAo zC1D^1cN=Gn2YtE1fW#@k=ET{AA0{4^=`vdux1gaCnI=Vw>Sg$VbiL)<>Hmelm?Ihw`#pDUXIp1J zCRs1J8}SnxP^6LSp0=0eyU8JrIqoY6W#*weIIk*oFRZ+Qb1s=I_X#FqNmjMd{CK2l zoRSr^Gc_&YwDQb3NK(F;t!~)4(Dp)KSDT6A>0Z!Gf?9~&6g+C&%Q<^AErm`XmB2R7 z@@zl@o2fgG3qT4A3fux-JuP2@6b=P`mAbHoxmf0}_q2?SDr$-9(SKppBu7#8?G!LiWC5|Is+i7XdB?-1)2 zQV)KsiYcM`VfboWhRMUWk(X=jMBC|kt)2f(uAO^w z0!3$|-6fqq4Q=&s)fKP_Ue#58jOV*TCL8x@_%5+i12Dp#6x$h6lvckIF(2$vsAgan zVb8qXi;55vrtQn9MZu+hKuPg`(Bq9;L;YY`Jk)3M1*%$9AyR=*JjUsoF+`eICK+5x z3J!ZX_)zd(6Md&Ju`Ur~62%r~t+L5psUXyaFCwIh=5u2Lr1rvsE6_~l@iEM@6L&NSQeWtf6I7^+IL!Kt zb2&X2ns9ewxY6LOc-OtitDL$#|1|inU|2w4VH`Je;Wwu^qgnvAI=?_qSE%_c&b5B}avXK8nZVN)tM$f4fkJ>3>C*ng}Ic6@;} z8e_iIHQV*P{NLLNFE^Q5)J>^r+AZ26028_tzVbIVOlCrbpDsHIcP0OL(izK!&|MS` zTt2@aeix=A6OA@Ht4co>T{QQX|4=MV!<)!4Jb+6 zDrL!;;Uat}U2-ilYtIH+r_B-TEf&20#Ehfwe7a_wzSd$!RmD0`y~AcZ@WnigE!2XH~0l`t~J7Aa*?91xY30Bwr%T<5L+x`+s z(B0z!mK!n7>lc8<^{?$dIJ!O6pYIAfy)M1$x7-&o@b-eG7(OitQ!t%3waSLUNWbSa zsy2qq=a1GY9*su%n5C>mvFSft3B+c<&yE5>%V>_ z9E?%e3;$4!|Gjk2PO{ zR772hN&KOrl+oDJp%{`5=_?_tYl(8aiPa#(SQ9w|+&Z0aMNb8`7Wf|THaUwJwAlu? z{9)-iynU5pBspDC+PFxK{|QG}BP2A}mYpUQY_Eh@_*rqqmdeQKHzVqg!EdWFAW`pxVU;yW*dW^h zQYqB$61%R+ItC3yF_$#u#C#WT5Gbs7q`*_3YVO71jUYjFC$#R{F5`LRz`~P_Q1PV^ z*HIZO*yiHZzBJmeui3kffGN10bJaUBax!vdmtv8QH$?E;R~iiQdqR+N-Ebj=Eg)mkLJ!1w{Jr+TL+19y z7r9b*W2b7^c=uoaB$T>jO#Hp~j16|D2_wM}@+7ct{Jx|pVZ)fj>wojGy6QS{COpFP zruu!EJ72++{+EYAxCX{h-Nt^Apcd@?`?_tAvZWgLQP)%wO z#~e0UZj6(!ndnXPNqBNe++Zb%Xb{{&v;_9lZ?JDx!V~((5KVmlmMggeBVEhUPoe$5 zD)`x53$@9}SQ;yoRP1jRHvI}M23I|^bVy0o_jBG~5ok$NTz)G)oFjmw{_xGv9zct; z=N+`k@M%fGd@7)|!g{OX%1_(-Tpu3X<^i{pJ73)1^a*MK}48w8wgqs%uFmCI(9uT5}K z!!`CkjguC42-Eb#u6f&e?Zo=)|MUd^y*F*6gbn@+r+cdt7YO;SS2!tQWlRzl6ig^Z z^=yT6`nAAx)ayg@b7ewUwjm#AS_IUzdndYDQz15vHjNgo3PWdt+-+to%i3 z{ToEp9}(Or352VM8D#pL!QTkDh|l7#XpM2=UvGMZw;o7rVX zZ(rWpE7(gl#OgR7H_0MCtwdE5x@}fJ62d47S#)(lrlfmTtzlBd_Whvosu!mE&uAMj zR_*CordQm4-gs{9W2xW8|8i3zJ6t9zXzb>`VtBBIvP}0Gru%k$ygREfRBME_^gu1G z1nTMDE>wVodFiRpvKUN?cZldmW2~rZYhjj_7ZvHuj7KdZYCWghYt{1h^686Cx)%v! z0QD2N>5Ik_iD!g>vF#7PQA>pg)FOjE8mP(a(ABUpB8 z;JlI6=lM48#cLoyZtV`R)WN&Ib7r}J3)l>}*A!W(s%pR#`i#MIQP8|HgSJO5nigax zZao;hbX#j&K@70hBp1S-hN(bpH|wjs)}zHWhUVH}&Z2g9R%>{Z0F=3lheJKKV5K&M zc`n^U*m>@{lYaMQCimlx!%I!tW6tV->fe7ec4F3t#i!R)9jT6;kJ4n7P^{ihY*8tL zKbWK}*(qa8bw9@01L}*V$ddN3M2WWtRJBkW%y6$^GEA)Q*%NMVxDwG7{k?pz;d4OL zztlW*J`(-$oBpovFABRrvCQ)d(1!n*%2Vbc~6e>2a|2H0S z3NLKbE(CqIWEdwcEEWyHeUOt!Ri5;hrG)5o!fPb8be*EFRZ%Vlrfn8UUllYt6`Pu_viBU9#DZR1cZo(pYtiz>QsUs?Whp-O+6;7vMFH6`J)m)8VDt(&PR!8obTWB-LO zk-hTII{`9Wi%yf%^F&*2tqhx8jX6EYk z_Rbm$a8qO6u^=D=oOg%M>tClzY_k(;{h-p3OmaY1fKIKZxliOOve8ruIX9b7!2tULc4CS#L zN6+c%Rm1Q?DOg%5Y4HEm)!|?dhMbTKMZpf9YoqilnuY6+S7WpF)j8DE_9rtroa0{+ z7zyNN%2|{iK}tSP_qd;p-LxIMZ5dmwyhNIw%e^!^^z;13AM;;~GBO!TJ&5v^+LAG{ z-p)EU3&26RN-eLd8$F_?lP~SMHV;O&+aR+s*R2j zU%e)oe-@VEs}x|L#PB%xmqNK3#Qx>K^y;^90QLT%@zGeYs^D zhH~Dqc_YZ5M30-6`C5_tbKNV>{%=x}0ybY0!Wd-gO82Sd&L!vla77h4rAqo|{79_m z3P&c$#u^Q`UN+uDmSH+j^WRw;PK&%(ctStUczgWyY+b8OIzM(t({;Q@CGNA94w18V z)3VWM;5VRuTk zB3p^8#|?vIGxk^BUR~W3){fMNI`Y4*>&OhNC(Yr;M5DD9zlbHB*PC&v;$#FDa;fo`cr?<(Tchx*Exy2`j_ zO(|r?{s$V0&MS&%cZ!gPf@W)~bZGbb#huDUtzh=FgoxMKZvn919K>6Tx9dj7yi+HN zCujASwOZG5jZ>|oW2d8H)wh7En51Vw;VH`i3+rfLH`w7;#c%XS^Yp|oXAWBmI;wcD z-${s)4d;TBe@+qzpN8C>0go3ukH+{RL-hAquU@@+9`wJf^qL(PLQ(X$gPD<&z`uiE z%M*ssr2W+KhSd5hy=4$~OQ)T!R?L1|S>foLL{??!hT==Wl3{en$^_KX=dW58%=*P}ap)LZc#hY3 zF`7seOg>)*>>8EmPv9PXz2xnb53`^|Dj!K&KlOZ>Cesu9 ztRe#iLne&x?tuixu_&=4e-kDyV@7UcCQu_~A}%rh{jXm=m&|YhC&VzhWI0lsp2d|j zg5GODO((d_cg(W!!r2REtbonG3T#lKb^Uk)ys3QdnT87#>>b2So$&? zW0`L2Yn70ao9W%0J67|4-~GN9O3d9#!8V}IYmCrzl1$VSx0V6Oxak7UI|@MOu4_KA z9`n+VfaUx0SvK4TDJm}0=S-1_$l>-dC2M1usuPV?f+j21CdDOlHaL+1szUZ%NP~L! zQJG1j$cbo2FbQQxoS6FU8qj3*U2|54`z-~fO3!=YE51O@kL_9m7vpW0(-x-@@*lo_ z?NhUVu(mtFXm1e?iRROH;wB{a(!iRmU87Pt!&=IxF>dBAd!V92!!vk~m5t_oFD&Q5 za#nDKlt~G znC&=8X6jq~$G`aW+%-8_JV85vbk$J1xCdlOw5&%rCzfoL&4Gohl!zO(X_Ea!VHy-Y zgYk;jJlb^2k<+oa;Q7s~S3$xju*1MWo4WrKI{g#F+GYP9~XEqe4L*!ls4@N{=I-(T1XqiXh<87C&?>u!#F$@AOxLv+C6lc zFSl`5tvb}eeZ2SBdztVA=XK_HKUd%J_69rz9~Jd>Nw?gRp=pt$5l^koU5p-^PrjvI zQapHE#i6|xK6ur1GHmD8eTh+UUf39bxFl}(q#(R+H`lDU)pW?~D$1Nc)R;e%T762d zzc$~=sGj@sH|#S{^)K&?zm{gf1`d^&tF_*H^b*Y+7i#4`nFf1*D8vAPYIQEB=9SOJ zk!Yyn$dM!Hkt3+lBk!YSFtV9o3p%j&SZFpXRrl+EZ?uVO0k^_}g$f?hVDwIDQzA%- zEkrCOxU>%wF|>wDkqu<^IhvY2q{A(%tJQhvg9f6Q=cnj;m(x$#1+9sEikJr-tq7Q* zz%M7>+XJnm#iZmtT&2gP9djaU#t}EEhk8NtOJvLGfq^#;w`uCq;qm80kGEk3ph;o! zT6?~~D!$kCR~-(4X#21_eHCoxs>r(P_=d_TEQX?o#o02LdaolCXmG;aHev5pqP?mi zXI*T80n;->qyx>daMgT9u6|P)YjwV_S9PalwZVkXnWkg!;~-}a|Ew_9qFP=GwhfD! zhs{i`3MTB7-bpAYU|?$uy=T~cn=+ZlcUyy4QipJSMZeh}ZXBCikdIqUC_WwBC9Bz( zFF=g;Q2wQ|7tzws2MijojfOB5z2#Qz18(#ky%+WUk%|BkTaPxdF}x9i#!}Sy{ILjn4Jk1e-=1g*IuOFe$tb@>C~N z()_tWPqLOfkIkIq21nIgu?c@lKTtj4V^c5R6jp`iuE4CfOC>W2iLHYY-)o?oGvV5n zx@J?*{aX%h7FtN~yQZ)9aXNoyg}{FN=b3)%NzMf4=}zWlmCP~sXyoc1XZ@YW$=y6N zTfd1HE0_4>x#Jso&+$R8i_4ub#=zkx=BmV37Dnhw4-Hj5|6&XKWJ^+4=_7B+JFcII zAf4ydg6Cap#eihitaPfZ8V!Hb-bXq^UTx@MmiOuMgo@7R_;RLpQN2n^zo2>OZSJ;5 zaXDR|8m_4bUT>g-2&pT8v*EdD3S|$OfBnpSB?4t`56M2h{)5^4)2O_8Q{H^L7eYgG z0KQAJ&D5L?iLhH#U;C(OoUXc7-b?n4VOAgxffiKu!a7JyZ{FWNITYK-s6+HJs6pz* zN8l2VvOweH6V5s#d@l-?GE1|ke$yj-8%=ZA&wI%|x28P%?J9!FCobv0Dm9E^64lh~J<4OT=LzQ2pWTT8O{?OBBj*+m4Puh+A;!&; z>64F7)L#N5mR$bM&b^N?rXrn^2PoMDTrCsWSGvTb}Yqbq45t-`~+3Sb% zgw)-Izk98Dj#W4$a}1Y!vBn&n-71Vm9a$sEgRcW#GdO+V-D_-boM!#tUy5 z10!txT%td@_=94P-_QMy^VkW@R>_+fm@x-U@u5g2@rh=+3@NBt5x8q`B zCmYna%e-7CduB*s7Nbhj;GQ7dg&#-D!1_TT#A0hGEF*|G-p8;Sx>Po=(oV*M!VH@c zz|$sD+kSMCTaUjp`1k}qjpE#fa611`iXc=PepXHk;(D02xy&OSK_Qz!BOX~_%eXsH zdDvf&!HKtZarm~xQuWY3#IZJ&7StY@Bob5F&VF7ZNDpf)cCwXS)kuGy2>z`}l0$Zl zIjP4M0km@CvWl+7yb_X-w=mPs7>40IyD7Lx=$ZIPx%d#L2K_gz|2Y47gigmk02*)d z7Bpmt@!YHGyo6L1BeIdTp9*R_aH30Ttr1%0MQUABdR6NbUqj+@jMBHH!%=QU;zF*_ zx5Uq<1T>SYw$QSj_A9E1UUc5i2QOv3^BykWjOiSUv5;k5@)_x7E81o&%4RFNK3lMy zfw6mv`ObQG?rCT)cpT(*9mjTNc^l}hamFi6IGa9IF@*n&-DWgz8@OQHeE|DaW2FwG zjO`-YK&Q#Lq9OyD2RnReIvz@rLh3jAqUqL;Y@UEWN<8bvk9Q=v{c?H6pxf=Pcjls)NRJnVJ+yhUt7 z*LNMtr>IJ8ODpq6cDu1@PTUHa3W`OQCdeaIR{twW7rZF6RKS**K zV|0?qJEy&Vy}M_YhyU+GU)D8wkUmUbq#J+QVE$>4u6v&8rgetH?&C%VlGGyKs z8Zi>Mv`5Z+p++#u(dILnrMA6_5lXCvkd+dkm(m4HX<3+FdGHk9x8_*7eV^4XL7s|8 z?)dUy{@_#C%}hI)S$C6h!)MsR*EUV94g7$Fx5xcWcJlhcw;3hB{?00WwMd-t-dPKj zH+Gz#U9LJ`yUx_*)gY ztod-O&h7m2^R{~U7+$@}Kifv?8j&|O(#~}Yi0Kebv7+p!Nv)(x6kaMHk_GxQ^-vnA zv}G6vGw^n*X{`DF;&YPKtx~kCQoQll@mX}`(Y)Z%^vn2F4(cd2J5Rpsl9#&^(W$@d z-3h=j+H*5K4<)#RcKDq4$g7eu?W#=$xYKy|+wok;r@G3g*2&wMWh@M_l*crc$262D zG?YtvJE=D(Xg3?HbQ`PGDeJUp>)?H^iWHUa9`m}Aqx7NK?yPqS^!@G#cJi~lu3sZm z70-5`@0LEosHzZdY=<~z9Npn9k~^0xA!|W8bzzbUSEC8-(2;ZP+>d8;WTX!4Xq6M~ z@~wg22^Uq1zK+?j;iR);^J4M^XAw5U^PsEkUp;MYsbR4QkoQy_Id+7Hh9q~%2gYx| zkWo}c22~xdOr0f9BXuy|;0R=A8sYIief~y*&V6Gw&$;RQFMLT0xS1a*^!9^H`n83| z1StLc6epTzMgdOzV@0sWha>@NvQvIP|cVC$C? za)&I%komiATymb@FHj@36yNjw^jZ8l#r}660?q?U1Ub&zh6W}MXf%5Dg2@fGVv3Lx zfoSpNlaEGf>!uDO1pxOM7rT~iC{K`8dJuf6?{3hyn(Y0@ zK&9fE1)TOkwPk5LZV=Xn)WgphvNnl>b>_7||NOSYm0JM(DAziK0cgXX%a;WRUhWPO zy!$?rmf`ceOjrqCza2FGj5WH!U~4u3Bt!BiHn^bHAkn5Y0ko`t_O9|p$Qsf2D+ZV+aABQ!qLZ37kZj&GambM z{Q-@Qr4GCil`~QF<*L}yIN8STuWVF0j{>I+UyhkM%9;D7P=)UJ41$>Q=UQn}+yhIc zUtCO``S_*ZGw<(cOI}qLwo0H>6us31iKh-DGwz&L-ZEEivZ|4}RPeWo`Ti|95>L<~ z{n~k14b$juXg@N{IKluoMJz9WcCu5raFWHa8TYN(J*dpdJ3V;j=)CG!nc8*s&J_T8 z^5||>g9M{_`r^8EGqqP*j7DZ5!+5DProK$eKI0GzFc zgPYv8`8jig6L*CF#GpwtT-0AwZ?k>)X^`tTMN`>N^V10EZIrA2C=nRrx2d~2-m#}N zgqzFurjwZ@rQ^mSpFu+#D1YI7-#^{G;#?N72?;h zT*8Y;+9eMgF~563(TzI=wvtt(6y}PQFe2`332w~4Q#Gtfi138S*Ml19+RjACJ5Va zdRGP2<52H7CP(4uw^9%+{gZTg^;!HC%Hw-xU$%*!}WOgq2J9CYqTRnmOET zZ^)830xeI2hmSXn3}L~I(A^u)DE*^31p9{E%E_SWv#Z2M=OUoei9P>~*ZMTMN4D^s zVfL!=&0$)*v$P)aulT$h;r*K<o^SFG?sBnN zEvonoYLwTnx}Lg}gZb+H#;vnsrIoq+v)vm%Uv9q#yr=uYr;H48|EjZ*^!U7ZRJ)2H z4`NQIV*Dp0cuVtpZ8#AraZ$k=Y)K$N4YqVZyv>t8_>)QiNB&uOeB74>g+>UMAEe%$C2;dAEGGEAGjh z7xphpa+@^{eU%SMFjg-#c2D*;j5bz}c9ySSCMSRFJYz`~T%CN}R*n1)`c3Y~<5suv zbvQ_#2AyOtD|a2LWa0yfb0nvO{abimy=s-WiDplkAS3~1nh?I}|6#KxrjDqn#wA*G z$ZZ8=pE+3`HJzJ_Q1$>e#ua5$)Y?U}dgh(l3(l{5sA)b0C_h-|1X;Aek{7h@1IIC* z^t+?&9xSZoZ^xO-_4VWLxq^Nb96IXm27BIIC@&2HberzV>$@srcJmmbf-1P6fD+fr zu^lqTgn&jNh$#;qJBH>^RaLC6>L9I`r02=lQES@b1!LvTY+4+LQ%UlR#mQL3N(6&B zxmizMm!|Fnm1SK*`jE)broQbn&Vkda;8sVw$2o8=z<%tmM(Zq~0-7(sD|iXP$a9kY z>!`TClzt_*{<&kVC*BEmVd6I%aoR)cZ7_0Jb>G=>=BKG{>b$NDJad2Zf=AUKhx3RY zBddrl&Q)SQ9c6{_AqTa0(O(7u?Wtf@r%Dv>)9uMjAh#1IL5l<0q)s7om)yzSb+5AV z`Qu25Yl5OCQxAudimQ#}WW-!4NV{D=9?f2GGQ1MeHhAm&^{YR5wn2}-3p4zk()zAe z%*g*s@$$OD2U!-S$AviTaWfaQ+ybxQUfFlE;$)QTo{WebAA&-u$kD9Yx_cU|CTG>IxB6iq;|H^kG4>Z_V5h0uzX?mIB~|HAI>o#H&7ED7D(w`R3jS|EpNaTN6=b?=Z^3Y=l% zil4X22L8hQ+F&_g(kjFw@XfSqMTUR}RMP>fB5|0ptElzLKyQJ$mcTdjp-GB24M$XT z6EVOX%J^V&4^{Hk>PSJdAMX!$yVc3#N`#1eD=ecpxWP7KY9BT2 zV~4>77!Q2cfAh9q(K>v6%ILJ+MN>1dNx8ghA-@AuNa8fyxbd~h+23QtrqynUJ^SNl zIx10pm+;?2@U^ztw5wDc`u&Oc8ikMB*>XHFn*eC;k2D%IF4yW80z(dH(r$Y$rL3;HqsFYC;^m216dHw(*oIX9J z<($a*mnaI7gyYMKpW^^^Rk^DQYb&h>=_Ji&o)#-bry{>nH}S`}hc&IAsS_N$bRduc zcXtS&%fahm*pS-8Q}5`=V*lyy8)FHdg%T$xna#OWO!!^X$=cJ;*x5)t8Ma#boo5fu zlK@n`5X1x?IHd=9yrFgY9a0{Zgr34-e(h0J&X&qYWX4bA3m69o^9QHAH{ zgJ1YJfev{!+0|WdpCSv8)he40YJfK{12)6L3@`=jb_9!njN_D<{GaXATaOlbkGOe5 z#fm-Mr!Qjyer zE1!2sl8k(6fCaMummPIJ0ZTtbb2SvuqbO#|_DTGC_c8DHg=_YYPxMs0kf8z1&=o>D zyO6>mS)T7veX?g#xVD8W=S{KLR*KWuJ6>xqX&u#?4IKip%h?co9Cn%p8D*z$$wDe(q<58XBJ-KXYsXYijRq z{TsAzPP;dq@9MM{d7s*Q*2V+Hhqa&9x&>w~CkxWgH*M+f%U%@J?#^`sXz~oT0u!3D zIj*y59$Avb@u;6%w6kK@n%NEa`Ia0BPr2i5Cve`hx<;~Lq@-gZFROmfr5vJj3!z-i zuqmXw6>mC-FULNRca^lP`)ELDyzzf(_q^ z7;`k2?FpqL%yfuIN^q%`gl+jt4%i5>nr3VYZ4Dh_ z&*qy~zX8kEKc(=yj@-?$ds;hJ{weVA>-VIgHgvSB;5mgCUSPzf2GynQwf2|%EEa0U zD~Id>_rWd`L92jqpbzjrf|Ju{3IG5G2S6dIcsdIuyc zpE5TGY!qE$9KqZA4>{p8H#mgI+y=Z_o*pL(u_bH^YCZt3z)2?9_1?SkGs||jyu-;4 za5}?&+PC>M;!QdfTW&e-_>pPllV38fS1m0Jqyx>2#`rp)(q*6WVxJtM)N}lDsg52E zMpyex()Od)#UOD065~m{$!l;7Eh}$>7)XelengPFO^|s=o=HZSBog$n@BM#a)=Fx_ zf+ndDQRtG~h*?bZS&`3{mJUU9+rj1b&6-#~si{>6iY$&zGumK&BI>AOFU16|Y4Q6v zvI>aHuSk zUMpUn>-QY0;OZ}TaaTPEV1aq;BYJJDJE&VCRn)&(7~Y-87;{xnwB<%zk~GU{Y>ps0 z>{tiqB?77RS0)%>6DtT1&5X`A9^V)a`ad3^@M>kgHu?KAvw|nLIx&mN#AkbWo>Fi) zr`Q?K$#}XKAty}V!$~3_OuuzF*mm6h(49mSn53%${jZYs%BA*KkDS`|9)m6MX<1=w zB3G3ADL$ucrp%a(Qha|M+k62tD3OGRFDwMeid%u0lA&-k9IAJ3tk~iT1&2ScAaP(z;erN+zGqD$J}J0_P|GCeR|%85 zU5*yj37??Usl;Z+M0L$wYj8#m5gq4K9ovh!C+MImvZr!`*ppF_O<$bC+q<95XYGgm znn-&LL;}CuKp!D1i`;@aau`U9u%r!Ml_GLdt~zTBcQ_UNhrG7X)qi$fgtOuJ&5arP zhkrw$MM7sBz~$Rstq;@(r)zV1JFTF28RGI=US`YL8l{cv`znhxdCk`c)#@L9^2Bw- z6mB)TX62oY*7Zc^9j#Yn{H`k~#E26@jKjP5*-3-;5&m~&0^%a|{X#uV;cs2(VZWU37#PQde1>&wp^e2V}v11LyQi|HNVB;jbw5B%GgK zSuuU*W-~7YVI(O3A6s7?7S-CtdsGwwkrWUKK_sNR86~Abq@+W-yT_or5fDZ~kd|&n zrE{daV}PM!V1|i1>UZxs-*@hQ_-oHR%-XBo6~DE1=dZ#`3@7$%Ve(52y2azVgvWbH zkM|OuH+Wwoy*6dWz1BXtfBHzPtv!cn4GgFq0K|d9aT!2~=xD2mMXi8)j6lDBX6%cU zjm5;KYM$?~h)ZrvnGG*Omiu9~7EeP)G`+QDVDpU2`U$YY-L!cLI$U94|29uF^OS-n zS4N3-5Rd}=a`O+v{`!mRP1)7gpIEli9a_@vpDeVmIw#Ga_s9z-8!nZh;8T7QSHio$68g(5krn=+l zM@dr3OjXwow3Oj9}qPSRj2{pe)JA6yzOw2 za$PU2y{vhw>$CQ7lOZJc&aVp73Q*Qq1)J|1Qsmj-;Z+U!bH2PWYH8hMoNjwEy@2#? zu87`KsY1^tNIzcQ?wfBK8c|qlvI%Q1_Jea#iwE927Lmll3ZNJrcb2a*7M>=|4-V%Z z$p{lH4aoC423kv8w4gfeS_#zN!vab;Rjh`qqjaj%^Ka*~KJ`OEVCY^BAnr+7HhvUDb;9jwQWt z+^v@x-3XYjn%vW5dk4RuC`PKTzF01M z*6n@F5M`K|M=NQu~i}ibRQ4~jvfAWc=>DSy?(i9x>M3Ni3q2K3`dSF;lDXxCd zeDB~es5zh>rr3*5$-FATCWM8CbDIZc8f-IH&##~kL#cD0T#0>U9WCRrpvcY&<(?$y zs2v0-p}xYG54;h*<&59FpLi7Z8|R4n1b~|P-ib92zM!<^A#7#a1my?nVs`oncKc6s zZ39Ybf?8_c8)-89z#k-V2H$LzHFtQi>i)xtG_;V)&ogy0Z}Np%s4; z1*^k?nx=u>jrbnahvFwsb-?yxDb;#@&)+e*g+JtY$9j9>26MCNi1lpmtFGoLOy=yy z>YN~D)OzT5+4%L;x1ZEmvL49)oF+cb9EnvK*>Gao-Kw(csbH0qTR5VB_k*Brji^}5 zcY97S)44_}^og4BPf}*MF1b*k5qYB)%Xi^$oEFr`FcMJ<4u7!gdCE`0BCR-9fEOk^ zdh4KUV}gaT@^)DEmniKVmFY73T0`=@zCd>$+N%MMHPvtQkw1Tj4~ z@6l|4Qw@;DbT8$PH!|nZ*<@Vva%>bj)EESep#&g%HN}Euuf>IV{8j8->QV2jrUM41 zV=iGC;(c`8IM+y+^pv&1H;F4FI!u!ni(NV~(+#pVQcnixV~$HTj)& zs@$IrY=)Obw7>c)Q`-T_*VlP;9*%Ua9>*V2Alpj0C`WlhaPP2$;+56}=^DyZ%<_JT zUh3uLR5oe6*=pSre)}w-_0SmsO(BJ~ik!0|zq;C)ywhLoeUL`bk*562uvIFUQE`}2 zwEqRXcO|?;%g2N43AV2r?#O`FJgRMdC!2iZhd|Jyn&8gb>p#Y~oUi_2x{I>;2oWkG zXPYXqVdCaI?W$f{hX9}9m%=>~QW4C`F8=A6YYlI;Qv$!a!TRW520Y7d8@ltlNO`sJDe_nLK7n$+$F^@FY!-k5e*@(Ly^#vInBQHgQ&?AcAmEJuXaM17Quj$Ck)vyD*W z$WVa3-Q9#)+5uYRtL>678%hUhL;b)^4%h+jnA)06w7F}%r)2lh{d!RU&lEHxg#@vS zK26kASSAfTr7ldCH!_>QONIj;GDK03(IcVSJJ>x}R4w0Z(-8e)#V#G^LIj@2 z1^QS*IJougs7cH`%H6-j+YZm{Z&~B23$;Ap^!66$%jPZpmQ7ub8b@Q#-3@}`sV71A z;u~Ne!)gf`UR2+32#$2p#s&EbsK)ELQWwv()Zh7XXQ4d7gMd`rF6pszQUhGSPT2f? zVZ*S&6~e$GwuEotC5?}-l}uD+&ySzKoUk>**9PIcI9X?V44!k&Aw%~8)8jzG*0GRO_0+Xpi*>bn+HjK*E{Ib&WZ$C@ z$RV5%LP$7x`!?i+1ad~ANkpjn?*HNS-du&RQMr&U?DD*<&$Ih6hk51(2mZWGcM$Uh zDQjdTO;tx3qqy!uWApCWbfyJBaOCIu9bv_k0-=)PNSJKOt*jr#k`hAGGfc|iPj7_T z(G|PV4d1e4%wcI>w45Fgxg0tn33l!v5skWS%L?KW_aw;lZl+e&R!pXCw`UKCwV8<> z7j2`;vH|VlsmBU#;K|*mnd{?oQoCcdC4eX|Ph&e!aa)fozY#ved!KzE)RZ7Tm+c~G zrr1uzE-pB(sHe6lK88yDv3vcX-587}AT&^nHl*>FE2e+!y&hwPiBjG*+7tYb%`y;~ zTnYOcpE}ICF|se7q>i;YOt;~zHAiWTSJP!~tA0rFiAQ2|4kh_gz%jPW;DDW)SK$=c zG=<-|)vw3o&*z06sAX*bq;_Vn^719?r5@YmOL}-I!cS*kNi&1aUvU~GAs`D4a^Z5q*>5G0ON=9Y2(rSd;#k;`z2%CsDL2BTUp>Oc=6?pkW z_+8;lP0`oRFqxF6rY!L28@gJu%WrKy}r z;x!bzhvj!aZ%NwLnyOn!v$Wt7%e-7f_21p>HJyxTd`WlAp?Soqc~l~~W*F#aHJgM( z8`k!Ce%1M8P zA)XzgXrLdmq;~QS@!zF2B1LuQ$*hI13jBDxt6E<|-mj&mSOW&yTJXxIW}wk7D{ zAS?DWcG}l+mXvwf_h|3gM`o6Fv1T}}-f^+uq8hNYV9X5mBT|0F?hufbh}ha>eAlp) zNE}c!RWx=^)YWv7@V4-4c6k1|kf2IIu{5mSEw6{hGL@;9#^GaL#r~%q3}om8GPIT8 zjf3=lCWscu*MCEC&2`F|^gr(e^7ef=kzlem=5C043-Ul$!!ioq0$?Ba7Zp_R zF}G%Rnp%Ik_Cr6C!OuT#zcElGHDp7_*RS?uU47t@(GwEa5~-TcLQJHNXo6{Casxn= zH-!NN#Dz_q`jMdbx@lrb*Sn$cXz+&>hZ0~8gw`1H-NB;Kt*G!*h0Yum*=fhoQg$_U z$3ShbMX{m=b6S;oJBLfBJ++Tyliog=M84JfRuJpQxX29;UN8>nx|sOR9Vik#9fQ$iZO9hB zrNT<)MmEsBz`~x?zE`dL7NT@Bv=|X?dn^1iSKYoK=e5gJ7ena4D*}WQadi7n(D8GEqazt)0LS8m+NH(=&kNUnaBbp2=ygZt;us` zxtc=8Q?#Ctsc2ukhqnJ<4H#bs@68*8h<#am{Q zL<|D#z`DHslOgf+GM6W;qM%~ECtVGMNfo^wMq!VZbK+)vIy={#PlWN8W~OwHAAD92 zW%}8a%>#EBBQemT|I$4X@**&x>a!bL@Y-wC27EOC3-~3XSdjCRH0LMDL8Y|j&yt;u zf`Xr}pm$C@h~JiQ1;lmFVOKS7OrJXh!cs^=0gWLQ(-az0<62^Kc?G1$o0jv#WgkHo zUctT>jyK{ScST0So(-E}s?CFOnY^R~aY#wWYD!L;l8Ao(uvteMBffDEUD>2^tiCf6P}iR+w;1l+hHEhb zl5@M~Mv~`L>l#2mS_pzK7Q87P_iZgdofq>8yxY`#{`k7MzUYfcx&`{#E3;jm>Wn-l zK_8E#3RxUxl1NH_j%}Z4zd~Abce1cD`{@m5q&o5$(UhixB=Im{8?x6;)L^7>K+D~LXw!a9Sc#i? z0C|%uHL^`R2l5N>aV_#n4T?%hKID2t!;1aeBydGY?30wRllet&P&NQ(8(;Z7s?8++ zeBrdUc$2ZQZO$7Z%%e1D-K^s8gTsMr?zU0+!^IJUWGSv|=wD+4brSD}TbaRogw zS-}rwrxUEuR3;H6?au=pz}0Sz2`2z6Y+q< znYR*FYkq^OJmK5VyS(0=-TDoE8zZtM1#$0!`$2WfKVL=;J$rF-Ik)u^spRp)#u5D^SSkRc)2&!Q^zbAlc}Q~sN`_MS97F3O6- z6V}9?yOr#gY}As^y9XD$;twoM(P7M%bs0Y->?^`2&X+CmhzUzzx}vF0BnG^mR0CR# zN?#IhTU+LpjgM`Mn%&p(9t+K6;kH@d)^E1Y#?=0xNYlgQ$^njrXJh zsZ!(bn8D}59RN%8J0Uqc*Y-1))D6D}+sYIw(#G!TC=}PHoSEnQn;}_3<18-x@t-?@&kuezM%+F9@Cc(ShWe*Yt2bX4gNw9C z2=}oyTj9ix=(-UJgi^t@P{-D3U3P7sZq3X1IeA&%C~n%zM{8Bo(qBkV3&|yY&(vlL zYye-afOlq;QkChZS_7o8J$c`LdSSort^7=_$m=(fd+|hywo(KuC{cxy$#in&H> z$@=TLh6jj%*oA(J3PIO`0&}#->MPqo-z4;&J>RqvE16I(Z=2p>^K34!WixH z)iMr+-3w=%e%gh3=B?FkP`B5IZRi5$wu6kiHC~G$!_k@p%&m!^67yzWNR$lxt zwQ*&JrmLx^88~fnrsn`mI10^OLD2g$7fyvFB2DV^WoY z$o>f1G+-gQ#izaF?^^<|9QU6s+9Q;<*pI#H0_TpOh0XMA=6z=HsG@EJ-=oaJwP)^8 zrneCP4eR->f0Y@C#k4COjJUf-<4o1P|LCM+3(B)p{qb;>r{tX5I9DCYv#eZvjtf%Z zf&0VV9j-d>=RHE~4 zhg)>IZ88cf(5NAEAowH55K%JCEtVN{8;O5?#J7pPMI02wz$ifdF+mhVVu|%A#oXz zlYlokd~Jpbomlei6r_Jql9A_|IcGYH&|L}^) z4OdRADd;Xs5XNcSZq{-W-0pN8G}XF==r5f**1kegX+d z!u0|)5r=^~o-Q=7Io{}e38P&Rz;WMRgeUpHOTezYh7mTY>ZqPVF;X*FI)%xT4Z`J9M1L6CQW6hoxcaTwMYN-)iH=r zfXG-(Li-P&cL#-8!&QXCW~S6Fv4%bp>h7;;vZQe@RLirk*~kziES^>13N!dZN@Q&r zg36x1ZBkWl=*70l=sQXXAOTaG0!S$XxtB>HJ<3^9i%T4Xt}VIDXtgK z8IC9k^s5Y7ex4*K6f-NmJlym9Zo-wQYLfw!lE>vBIaezEvp=qnci}0&z*E=8t8{Um zs~DHGLYh3V|Ffy$DWZ(iM=tx(a{diW2m!G2NPP~vq<@#dU%T0$Qm zC|-Rb4hhN4b$)+d;zhf}i$*WXU~2~Z-t$_0cQT24S9g4o?34>-O?iPE7fm_d=GkA%+j+($x^ueFeHm7i`#;P=p-XNJRq{427HmP_7Xj2)=YQIWU-^JJ zCkd*iIgTNx;ceuiVTZ45ThHTzN+?|OHW}%3?jwzIJ%PJLIQftT)@MZTFEaW_kT$fh zEkK;T(?GVL16pM`jH->F)U@g%lvua0m|&Sa-0W>${i2Q28-_|j)Nx*kd25MzggX;I zbzA?E^;%c_JSVp9GqUb;fapfM#r^V!O1i0)ws8CHmuTYd1M*e%L4e1B&_WkHy7wct zRkXAk6=bFBK5&IEB6A*DHlx9l8%#UC$rzU6th}1B@x=y*a^`=6WtR`y=}fi-CCpJ} z(a|MSHgSsc;hh5y>`(Fk+p8aGCL_-`17BhgpVh!Kym$X7Qy3y96$_$~`Db&_y=cL0#npPf~k%UFqi`>ka(keD(k6Mr4mG;3w6MsZWU%U1|H0tRAmlwtHy^*^wM!DIreO)M50hzX(e!!k2 z`!CF@34=e&_NLr3rvCBakKY0pP;dWV;qmtqp;FXnII6ymv@W4$o62smt!VcBzQ5vX z<30$eWgd22NX4ZxmIV|2J>%L<0o^r*Xo`{#%YGe+A3XQ<9sBR!pVn?RMA+JVj!0l8 zuX#rC_U8s{adx?WU;O0eNOgr}6VlVHVILfK!n{d1Ce9{tkqUqVPEISC`=IGc5 z(AC7&t$zr|O-;|fk8-Pcvc4$Yn1urZ6DnJyp9E3{`Bn?>`4Vn6nqF-luvj0aw^$6$ zENn71)96+#D5y%yOJyiA-u2tmGPldBKc%2cZWCtN>1nx3OIXK=&;yy-efl+2`}c)q z0jKU91|Zl@TRCIUHGe)Z_=>9x*e;HWT(k)^M>I}EHGWS5kNCs4O8f@_p&b{{sv7HL zqcmXX_Nj5LLU{PnOlu4sB|98fj93dd6vgS8ZCD~N3-8_MsRabaqp5m$I zXgJ0EEbjClPotkn-I`C`ZTuu;4YuA!;x-vP&xxM$SvSDOZGzZm!diu_V7ntNkzTlwm7jfEy^=D8kbit-|UeUuVh@@3@tLc0vO39 zH-xhc(c$6!cS7`+XMw#6c+G=3$J4B|AC2YdU*W|<3JMW;e{1(TeW z8&{64SJ>#*dR1)Bo%_7Eh3^fGUvF_a(WKoy9g^NHmh3O)_jU|^Wv+8lR3x;VdkP}| zuv-M>Ylk~xN1)dEIHppi<7xrbD~o;l{YGjym0`EaDiUqCtwJZq>@Tp~g(;{mFuo!~ zjlEql>Aw)X*4l(SOSS(eGXREG%A^dc`c|MQ(r_DBd2j!g>zjH00@OI?V3pC{iDr&b zNQxKQChYmcG_eImM8wYvkz4==cyj|Z&x;L}sYUeQrg~%(>SC$cG84cKTz;PU<{8Ib zQdeMH`8Z{F{(}JI2sC94?sPC$3*6c;=h$ zdj4sTW3*-I7zdfh0pfXNHyJfwVhrzlEe`_T{x9txyLfq)D^4_(7cVWre{!0?TzUZ& zsQ2fl`!5G_LVa6Nk1ikXdK0!H%CjAfzA5sqE&>v$Lsxpu_;Y9M*>59ooz0Q*H$5*w zJ(SDMI@z>8Kh%8Yo~`AdG&^?`$=fe-;SaI(xSOnTE_Yx7r#tXKD0N|<><9miFZ#_d z1F!X49y-r^b3}nCA7AYWOEAqJ`*0aFD@CpQlxqak88&=}H4FlpI(*xz?905;yd@`1 zxUe6QTya^oxDmcDjLZ?)bztmt(3<+-v1r^)rlJ%{XyoRG&v-w5_`4hv@n>-yGN&4t z63tUbwR0Ec*@eW@QvXls--K`jU+~D5(vcR`P+Yrbebvc#^|H7zOY98iS)(Hu2}A$e zb>TKEd-3}~H$jl-N**}u51}g}=*|HEm70R_zRVF)q&X5d>wc(*=!Fs#cl5lF4II2_ zl+sRJk@fR@tsQK2GwG6~Dl`6&@8gV&k{a6*U+#=dNKl}yp1EAKuiS}LC-7CW==5i# z?&n)3Er}|zUTX%+3lMzUD*Zsy;JNdIbl?=A&g)CX^=bIu9lGCye9JGe+d6LyJS;@4 z!&S0PyKZ3p?JM2iYR%?4iu%{%SP z1Z9>t7>%cub_2K!u4Wh+lK>r-@|z%0Xyi^8Y|py}m9p2_?Hgam8ZgO*U_V`=)6ePT zzsJ8!D{vq*p@ePKMl*g-(FG49kvo0gK9G-<#MlBzoa z?tuR;IR3S8Z@<0Bn|Cn;0X6UWW(ociGX3Sk_&p6cGnm<6x>F4fM)YQlVz!DIO^Vz$ zmT^f_R~qmm-c3-UL0zd4cS}~h#Tj{pqi8&QoqKr|&>N(U zt{M>t{A1!k`)faZ!JY}nx`R`o_xOVtCN(jD^*bOIAz&J8A?>|YEwS+dpld?S7ZqrN5H$PDN zZ|eSX!)jBW4lqsPVyJ_vMopTM?vS-VBrYTYtr7UsB{)cUQts+h)~EUe4i=&%?B=R9 z#1yO&44Qzycr}S@@ceufj0;9br!-w?vZc+Y^7H}n}GpxTG z0AQtk?5jZnf5`JCEM||!Wg=pWOFKSwv->GUk^|KbYQ6^Axk*p$HGChGV@Zsn-&n)7 z<}>Ag;=-;rZ-lK+T`8_6v1>-L^SPS zcyprLX?MZ=^d$8`7h7FX)V-Q*mY9$XGWDxws_}#>+IX-GeEorQ=C%5$rTS_8;9ZJf z+MoCx-pVrd%1iaiMh+dfKZnnil*z?b#&xwoxv@jI3iMmUmFm$}8+_>miu+5RF~Oe!qw~gkFh5U%n;PtK|Gde;3|&9q-vf&5ye??yp)Q zB?Wq6Zyr?VPDv*w@lovkY#>zrw&*}#jyExv_i4X`@VblMx)nVUpoQ1qz;Lf)E1 z-+5%;h5>p$6=Z5{H+~mdY_JYme#P@zKI&Ei(9(2CAj?qX%n2s0YC59J0FcvGEXe$U zjs83SGp`w#3kc-*rChoS+HVGJNWE57mUNmd&ff6nDr)IBL)#r6+&qrT@?J}md zn(!uCmSADJB~7D%;+-EWO2JJ355tKoaT2U8x%T|bfJNwFp398IUA+H|$)mZkc$|yu$XM zH4EXhu5xqZ0LPN$m@=~{?5mE$QBC5aK<-Y6$*m#tkdDg~kNx+_XG)LzNmN+qPwJS~ zK-}8Y0e8@Y<3>=>Jh{KS<7M;kDzrgCy3M;|9YaFD-^gv7D4cM~RPPvUV?zNL@ z2?Lv|6TPFzkyU!kiyfihPsHP1eaALecM7YL62%rZJYAQ*8Xod7bg=Mv&U?6 z5foTDokhk&CBk1);=5IToDe0z(7Ggsyex*Wf|z8MvF23-Vs=r$A3Z#n9qqyoEiD;a z^UIERp_LgO*~bn;3mfbh{QLYMYjoK`Ei)PtH{@<|VHED)G5HfvS8=?wg9fK5OKftG zZ0;nekmF?XaaID0O7Dv?VjgiZ2|EAjSk#cNbYUcUSf6#+Kr>(esO5S)!;Ewe#wF$0 zlqmRF79_;m4K{bq`GO_poz51KOc1w)>&QUau2ql7)(1Wtp!QW?<*omIGDV8CCKX9P z1O;3rScy$|DS`6WxMK3B$6APCscHHclM&|2ODQds=WFN>Pa|fCbFOd4#m9NN^ZlMkqU?N! z#;zsglZ2K)9U%C-U)5+3H2l~!W);Ke|8i)&E>upl=OmSJS=0w8@7in^&;|HK&7bS2 zym{it?dX!N>ZtfQB=+}Bt4_OowJm(bfx@;Wa=)Y2j{JoW-G!Y0ct-xD|&3(pqR73fF4YXJ`Rzv zV!%4luEsv0itg{LkO~PGcrZ-)x(EB=pVn@4u|x8{3m^*Ir8~s`ofGhhkYc6UciMbY z9ICMU)_O|zdj(@3%m$MsH+$Nw48`o%0M&bfmJ?*uC^j4xlC6&nyL!7(a%D;dJBBZ0Ge48#+KBczmP!Ss*#t{< z6K&-SxZP{6kB=NN&H&0cqaUq4?!EVnA=~mY`utRPtS@HPvt$0W6w}MOj)^7xM|1L< zVBvO5L&!Qv=htHHh+DrX;fC(!aiUOY9UcfSJ@IUTb z7tg(-%#{qjGA7-j>GLLjY^W;TPt?mPIbYv%#f@y(atAs@0)PF+pKB%4ZFTNO_N6Tl zk#iiP_4}q(i9X76rS;AG4Ezs=NFA*Q>uM^WSZq;KAwdSFt+Ldwx(mAtz&|e9$>kaopNTb+3FnL-w+h-ZIhbd zT6T#7-uWlxm={xfE$2-rg6ACp&|Hf)MzUYTe>13w0-{Jv4}2AyzS$-=&v~L+*;bB( z2aO5D{G=Z`VFYQhALhMYW^Y#4+iRxpQLB5ByU&VfS_nO2rkBASad$4-jH9WnvZutD zu0Uj6fcx1M6s--!z@To%56V;*OLdQ=F`i&)1DJD&MwXI|R2fq4Jv3;kF( z^cU-U0MJU5%u>Sd^UOT#gzM<^ zsQXy22ElnhhNTu-&NIrUan0{}Wrk~FkxhH%zBXi}!N9&grKexZLH6yZO%KTv?*>(N ze#}_dmEjbqgRvfLfkYNv)liRiMKJ_S#kbnUob3}XZQsmNrc_r$AO2Hi0gA4lEU}Z6 z=n#r9Fyk*1dZTQc-wk*hvFlG3a|;KoDnvK)ZsK$eN76RXd8chW_0&fKWW}~tgV&WZ z(mQu#U@N8?!f*ljexM;u&B#9pe14@*72$FY$Te!A?PC~BP!;(sh<_h}f=mQlp3 z`t+aGDqybQGS>7=Vcrk$`xJarEjqdedLu{t12HHcTJXke?V=F@eYtZjxYft92at1N z#8Xl#TO>)OjGsF{!ItoGP=kOvH6+=n$;wIyV$|nNPHc)vjE@O2LwYUZ-@B3tVGGgz z8leigRI;AM>eSfcOnCY2I^%v$5z#R-2(!kRVQxtX>^U8ca_kYoL_PZ_aqq_-95r_S zQUE>zoY<~kMFA`E=vwA{Z&ms#iZ4TC#+ai`M%ZR$$Cj4gFWNH32V0mHz3q4Ukm-ho zm@Jy^l$!I*lknt z*d=Yj(8keIbdI82tKM=Y{l!AJO-PFm>!m;SwTRag*a?+C3FP@O z8m==2s5!SxCesX#SNp$n+NyD*>%7sKFDRl=4E-s%bqx7dTXE85Kj0+)PhI&^|Tgf%tt1Vdjc$Rvo*mP+D?!U3xG z>Rq`GFAu8}-}l>10D{~Ar~9H?i6cQ{OCruSaE;LQAAcQ!T$lK^)mc+U&HY~19FCKY zDLkDi(rOi0wq^eE>nvC^8DH`ayizfVj40@{IVJf{3(}6aF&@`b{`rvs&F{@8PyErWhI~xaemLr)w+`X^x4sg0RsiZ{3teezrgvWyt6p zx!?6Pzd!1|M-3VzciYD^4(!0Kr35ca>YD^3C#D^j0;SIsJnpW3^K1QRKn*4&l- zw-P{bO0b=9$=JLL{KDbn8I^&P$7IR!Wdy`qEt4(i%&MTe{q;gjMsBU^X~Z)YRrwn1 z$4e;sY@1+G#=F5$GQ=KrRF9V@8B9hO+P=f=LA2-0ta z;cG~>)3r50JKOBF?H#b3Gr<)c$2le-&5@Wvac5c#N^XE#bE) zvQ>R1)d|9!FoUJi5l z3o>)Mt9$&~P?-#~GW3bVe#SIRLnODvMa;8w$EhCPrV{vU@x*yQPPG`Pt9j~I=qk}l znKl#GrZVCBMz4esFNnurYQ(>U#pqzR+_j<8%h-#+)4uK-@?`$%)cG3t5GDn)Ue zg-R==AJTCiA)Al)RuX#Q$AXYDSc$iEZza?P-IU%k?SNK8l1n2?RvRCjI}a~oz0hkU z`Xgf*+P>QAW{@IJ;W(&6C8(ss2f1ec0~pVbL6VMCnF< zX)FRN#C{hiP?nUjr)J7x(=epxo~3y-OT(7bqf!&7q1G}S>nHs4DKyL*L~9fG-x1<( zv6_!<(_<$R0#YDvT7!`}xtp3*gncKi*OVUkpRUQf0Et-XFGB?r9Bt=24agtL^pndR z)`;5HZy6-D)X3{{jI*l>5e~jgD@}WR_Jz^|si&i`oKZ$8pq_?85p-V&n+fGepRZ5W z?zbFb15c5i^Km&~A=(3x2lHM@c^fedcL z3SLn9n$=Z0K3}e0(&tchpgf_y8LS(lA~Ty#IzW*;a{cc7)+pg~5elpuy+2D#?h18r zcW*m~hLLL=u*-f-OxXvrLxGKL!2Va%@|#sDOY%4~jE8?fg?}4XSTr=B)_H<|-v{I-r8>uC?_>Kt*~^~#W@=d+E=bdtWth8Kq7=(8QzC%yF2 z4@9zN=>o|3O<8{GilP^Au}?L|$~HoTnWg#c&>a1(k&_kvs|>oZP~1~&G(~Tdcwou8 za&{r!2~ngmIwD<#TU~|D@v4K$YQz6OFA3B@3H}WKbqE#^UqdWkRi@!fA2J*u0k}l) zZP|y)C~8DHu*Jkg+d2+dJ~@zLF_0e3V5R;hAohg~eOkVO&SNaR@P%)6O9f&+0^mbW zWn(u@drRZZ9dN_$d>yrBdc=quuKbhFp8$Lwh@8LGD!Juq=1S*BoODhm(CEzF)7qj0 z5MCM&_Jsuw- z#Y+HQ_9&?}ain3#RPQ|$sB=6NG3hY98b(m4sOv_laFmtoN%T8@yMMO!WgF&S9^3IS zu&|68+5XK|!@_f0S_CUUbNwB?d{cBA!d;m&(@^Z|&pkHy@4gttj+5IM`kKvZNH^2F(c75uy z*Ib01mKH@aP2!mXc`CTUZz>nBj#}5pf#S|;^es|WzCAV_FuKN28FW|mxdgt4xD-!t zugj;$;@98RfAd5Zk?4J)>`uQabEB&DKEke4g;$>u+l)!Bj+=$cEjs3H&%;eyedk_* z2SY^VzEx8gHmpT*S=BzVJ-Up@Wi#uhW8O-n>vk2psNXS-Iam5{Agptd^#yK2;rSzD zYGNut(|135SANm{(`+H9&Xhi8qnc6izE@*f-BGxO;NQ2yImC|QG0I*fj2 zt%eFM)GuZx-=K8)L!kjtK$@E-Uub>dmy(>k~8V%lyR_%6h$zE>qvu7ff` z{{nSfqMgpK6wIO0kwiaReX{tK`Zi3Le)}Ch*#Ywp@lZkCu6m*mJ-LGd}~f5$3Tj;Y5GH;oh8SxO-|9VFido6p&yaGo0`8bstW#MAV6fFo-kdQVn{ zddq=PO^lcvYoIwuj!Up_*f1_68y2LNm3?rrUw2-dP!%YxyfQ-Ww#RUIL`DjiwFxMe3AN(O;9mLqF4L;^!=`x9kNCrp0RNqj zo@Nyisb;pQHGA#5q}YX>(MTD`QmAU&;{5{WThD4%0I)pWfJf z`tO+0N$u#exAnPd0?^_{)e7z5wl^rhtTx*F*%faEON^YzFB*FHL-DaC{-ug3F^ zgMsdnY?O|vhj+!Kg<3mZ_g z3vMU4_!wyih5~SS|2>pFh{w|={Y^(_D5u78UR(4HkU@MG?L1y&iHnf#z3CCU!%1u% zEY|teR>p;q#C#Uj%O-a=cd)Ugv0MewN>r26{nB(8OSNsmnQ3q!!7$ z4ws;J1YbfIzDsiUYK^_tK5Cl@C9!<*`B?eETFU3+e#2u9#_r* zE`Zz+`#i()63*2v99~j8RID2b&ERc?2tSfC-9Dg`)gbWlT}#p!5;t2YVd_dHjhFjt zdbmh~Ea@&8ue(o0NO8-?m+*e80msy{)RLALnWMS4^>hq9aO)R3=ZA|Ls0NZ@QcKr` zSjW9r^snMZ%)I7Kg|kYlqcR*?ps6+T3dWkmhd?~G+LqDk5`Dy=rYL#;9 zUwQJIerRSquq`GVS3_L`S9kkn!HlQD5v|G3jG<2}1$C|^aWUCXFLRjR{mw9ApOnW& zNMavApM2h{zjkz@Z`eU-(8SnGgwD@$GNC?sy%FVk`)5BYh2nD#vBPnfRj4 zT4~hwlpb-P=e6S`Fx3nnKI;vD(OWaPc)bX&*Gbb0;HC$NnpL4yDpE%Quj>-v%C#@^ zOSnoZxHu5jN+%2E4AW6cHHct{mX!}i>||m8a)IMIa*q7&cRHV=7zpoOv*Zso5)%Ga zPGb@Q;b2s+2u6AT9=7Y>)YGUyF4J|}IL+SO%L%=$xq423fqd1-3ZCi&o_%WI-XK_G=gg1la>YgFI_V&)Nt6N?a;iBNw zO{;oYrO$~V^o!$_Ud3Re)9q|Vxz;HOq+|tdyueBegX;;?4$`Z??%x?0<38-T&u`W8 z#*5q|r=^i)whN#Ul+3*{cidO<%$N;0COpy0X}^}2&4 z0n0hxyr{*MdBbO~|66^O4{_>)BFqkorj>q8EYm%Wj;=RV5JlBgm)wsnnl18(eSqp&0ImkE{3 zB8OOpLSc+{YLJiJp``mLb7gj-+gfXNsQfg-E;t_TK~C;OX3x7)bG=wIn>RXA(}4c} zu=SMzQFh(h4;CUKN;fLqDM*frbSd2+-AMP00*X?DbdS4H1{#C9$!OebA%Ol$X7a42T%WD*nHQFV?>zdA5L>D~9;aQ{h=QG{oG^sb= zu(Uge8|$x6U#5N3mB-uty?(iL>uvenY>Q|Khf!_~cgqWJmQGIDg51igno5-tb_sp$ zTpCs5EHh`A1X6aJuOwH*uS%=YE4vk^phOfjYlHG+{eM}<&8kPPB{gUi6l60RzP}LA zudd82t=vJh5`BN2@kUg%#eZ3IjP8yxA!w(_hEZkat~>m8JumKh97;Znjgh&Ik%qNV zOwO620h?N;i+`jlp)hLwcf;7v2^?|knNE0F_h`>PM2_Zej}s z{D@~ii5>;s2|@Q$Z$UwRNshyVkZezZ@3d<-cL2Ec(~;-A69p3a-C2m>`) ziUvLaC26~j7wuHq&QpH=tbBVR@4+Hg{ZnI6^g2b`hl@i)y@1m6Z)Q$m7rHJFC8}Ky zbq!;ND4dG5=}O)UqKEa;u$>z+7oMg=A*YR!^g83m@#>QmS<@NuMfHB1;acjqPd^g*@!U?itT(!%-m+n=_pZ) zNbF)O#Tm*Y|6t+G(jwoZ)=ftgz@`8pvpt~{M0c5A&%K>#zD}d4xGkEd&Fki`mDg+Y0DMsRQ<_DZ=T_h4e!bI8DB^m+=^a?U z{$lCT_w6C!Bk*`rjdBoEUWKnwr8;W8jV?+~ZL_{{=w!8%FHr26Yqee)4~0vV`od#K zrG56vaF4-H=@WHFr3BBf)YzGtR~)Hif50lUnB=!7U{hDFqkJ!&?_Sp5hZ^fT^YT5d zXH~I54&l0+1d41=J}`E8?oHNy)V~!3McmD_C&vzaRj3xO6p?7+l`x7Yy%@YaCp?u@ zwHi(808HWVL+-kBY)gsn4kFK38Qh}kzust|I!R>-FecKFRV)cuZn?7X;w4_-O-@f; ztri;GUKd{GDQH>yYx<|OO(wy8O6zUnX=y=rc3$T%FJ061nx0922n-l&KxBit{|{PI z@_k&dnIMg7ZeQ0uEYlzp7(`Qoo4~iY3B;}E6WW05-2e}Cl&NbtqbBCu9j^Ool}O#U ze_(9tcN^{NFBg0|3-?t_$yW}k_PQvdo7Wie5<9ocnK7lymW1}u?fjfGSf74jUz8*d z(UijWlw-swU9YsJZ+@HdH7yKb<~k=#bmdSCT8n>{!_q8#->hup3>>nDgqlcQg& z??Hbs;2Md!V1$v!vz^SwZ&k~z!K4-ex@+-?hv}(@$T_2!ZD$)&?0tf*89uye>4|w! z-jm>@w{}53%`Z=6T*qi!$K=;KTKgcY=Kz@u6nSEbT{4kzY|QM70{wGb$;EKZR4_L4 zIqNAa2AP>4NZYv1c<0rB1gGNxp`=J_>kDGfOiY+*i*wIhckPwle8%f8>)K&{${We# zwgi)LiHlu{B|++-Rkn>%)h)7&2Rw8VOj$7fv~>Vlh8V?FRFN!N+VUw zG@X9b-9G!w{xrcff2K$yE=?n0nqBF|09jG|7kk;><8=rF`D6E+gWh3alUL~(Wl2GE z=R~g1l9j>JuzGb+cD1qpZrGj=uH;k^6s|lnE!5E);>ZGpWlqG<#!s;KYln?NyHC%c zrh|jW!|^^x3Rk|8^W%Z;IA$m3rr1E(aN|QGQeL4F$!z#`hCr&Pqr=-gMueHUcwcNS z`yzPYc>L!xuAi9kr~M{B8Hzp&`XAoia}nWyWj(g^tfdqmR)C?V zzE5Q#N=v)9fYaAgyFy97_&sJ-rgek!OYtFeOgXQmt`wQO+hpKxVr=SvdXvI86!1P* zr>_|DYWN!rnwc&4-b+c}WKac1#8s;4pHKdPt1lZya}oUA(g{UXz)>fQ8Hb69d&#kn zAFoO0;DQIvwFF0IyPs!P)pb-4`=DY=EThnWl5(-~-Y5(4g2p}fjcZ(%CKtZUXw`tU z2#w)_Vt)1ZLu#z#5U_Y%7ooY*R}%0@bY$^a(#IXzTJALIP0LGjZ7&~BuWSPvXHu-z z_DJmqPkr}^+3P%GJoA+7yBU%ZVQN;F%TSlcxRu#kPq`Mr-sVIJv zEq-%S`3Nv%^nSw&2xQ5NQ`((I$S; zF_Dwug0#Dnvu6{tzdX-ftYp)MRO|KXkVeQ4o>sn*Z(c8BKBof`-sWkQu^mK{gNPnmj6L133mZ%2c<{eXK>r$)$|LYPL!Jl#RlZALuRU~+3bhjoiqCW!HV$f@2JYThw8fk&y8M`wz?4|jfWkI?ujGoFMd+EEAnQ0&a+<%xpLlU1s| zk& zs_%&hy41o1pZ@h<2KfID&z}@uxd6o}6hy_Rn-3jxiW$EDS;2dWgv#Z_6(t3}-b{#pU1?yoT7Ww6<)Uy@ zC+<-_8;V6l31bxRdk~x3GkUSx6n=t}V?%si4inxd?=Fc@)`KvcIDH3+NE)7~S6Lcg z)Vrvtpe%l}GyPF1B;64&P=jU&YNQXsUVQDdhg{%b*AiTROuXoP3qFP$8js{j*kg11 z=thhDRQI0};da2D0vv?I)#R>v1+Sf#E#>no+h2@*toAU8^k`i<0dq=d#M8e9xjE@1 zv2wlPNiRd5ADme+78Qo6YinzH(@$S)tEy_dz6i{#tgOkbs&Rxl?$1k@JlRwVI2)7N z?Nz;^u|q+hugT&~zkVhDmE;n)Jig(sq1{a928!~2FwR7@cZ9rf{l1@3f!N-xuAXkm z8~_inlDeN#{xLkCOHYk^&{i|ST|=OgUOr*~_OoIeS7v@K4wR$DBFL*R(>||37^=a8 zwo=N@L%j8yJT3(6Er%B|>g-qbui7}0%#iA-G;3SWndyBFAKe-g>o{Q4HwS2Y)uklg zuNHp8k}j%+5>jU|&L1*(mq_g?F0`g%J+oUpqM4e>*C$fI1r7*QDbTNO==O z*K?I#Hmt8rZ$iXx`dt$VmJCK^NpFRw8k>k>)UWOK9HC&T+y`}0t+)cxjKKdKaDJyg z)^1JIywicSW1o~%r<J$Q^jAfOf)wst&+8ByijZ+y8F| z*FQ^`-yl7%*KsHNVLH!MX=fmZ|JFLAeo-E(#=Dmo?+X!BTAKQm8*%}56I=RxZ0HIJ z8+7%=ZC6R&RQ2-qZ&(h!`d3VW3zs29(CvqTa9yuDC7ObmA*hy2Ce5{uxNbajV*nFx z!}SQ&n+lo;Q}UF3jVvYhYNC$8;Z2#fdZ~1=0|%RwqetJ5E+d{W-c*atO3bW_NheN% zQ0<=jBu_}$Ot>gq6jbz>)Qr%ModDOP;(Ap7w%plmXz!;#N(NT^KFg`pNNdf|!_|`r zQsn2miMPQfk9u6rhheL_BRhtA0K|z2lcWE&%GHU9%#^e-6HEXx!0z%$e2zhD=2Qbo zkC8CM*|`~Z``jUY+jD0xEm7Q4qB7aiOjN3B8?#Q~!`koyZ3d}=XhSu;A}y{yd#=su z2laB#bh(rq;;fkX0>UPh>T}LGG`Tp1A5f!J)i}7c``oTEou^njW3HuyRhX28m&r9; z^82=e17qqe2f?=!V3fM}ogd7B@s6b#Ba6UNZ!?XBPyt+IBGqB*E>%|0oA>vF+!FbC zS2&HrHk!_MhG0bAwO7owH+4-@_q*m)u1liP4U){tIggzb4f?aRAmM*6*PJY<`85H* zdwF`}np_x3K5;`XtapjhbAjX_Y;=-`8WE2IyET{gVDL!k6EO6XLpN^pVx`y=Q79{$ zTk#rWya%t8sdIRNROMlS?2lX=THr1yh$$emO5nhiuROI(ks!;(6ZHav_c~em`F|^- zEO}hSpnB1>ac@c&MdF2o)zs9(c(z|QTARdDz9iV%tX#sL0?C;6ZSk2dfYHrgSG(Uw zu~Fn8GCq@7va8V$Flefi&8CxW+QF%Ie7*XAe^aRm$b?;!l&|Ff)w zy=gdvWZySnbzBJWnqlbOeGHx(Klvq{azi(Vf95xzYmV3 zc14ZvD;JV0RcCHEcH$+UZyxM^HXIME;k%m8IE+m_gvzWXvQeLinbyQ^r7{sbSe5Q( zGeR28TfjoHWuhfSt$}iqq}XEB$7RVYC+c*8{c(UI^VpiVdDe&5yt{i+UvNB465yB> zTJPS3-Tb$a`Jb^;@nq?%QxCF2f9=9N8);(@l|n7@v;hwc1H#Mhkcr$Ot9lrRju6D0 za7_t}FQOu}QR`eVDdSm5=tf?&6ofDXVi#L>yqJ6{|F(Qv4PtO?qGvpnCJ+JI5o-jF z{wqoawe*IIxqIBySKf+Tv-Q;O<*<^CtSr6+cL0q0gK#W+ZsCT<=BUdf7pXcyY0*Ux z4iHA2>(}pQOr6?v@AN}FAWa@+PW`tN2HeOe>(gD`W#P(* zSKOHB44hLKfyepteHTDx>s19u@=324fgP7c%&7*p*}hC<%gw*O*HJjR;_tf*|Gz(0 zf<8p?~*VmoiUs1!-DNMHa9w`r{F`f()v zrG;qgB@gbHStDAYbMZQ3wXhNsQCa-g{Onb>N{Xoi|EtV3O;0Oeb!EhN5T`r?mc4Ih zR4d*<=dWJ1fa{|JK0@zoTl*F9<}1`3-)9Le>(N zaGWZl#}AB>8{XYcDMsctrnp*5mp8cc z`ybHGBl1{nqHrlXwz^!0CTHl8SiDe~_|c@hZ0fKU!+VZCHO_c@9O#Oh$$qk=hUR^REOrj3!u{U0+>HV1trO1Hw?+Qb1n}E(6lX9EQ$=hk zn619Rw)q`BF9E$r3z1_N(u}WfpY=PDV>Sp|-$D?fW`uR{cVKJ@!uH2rK_cKuVcPLt z+KA@t2U9Egi~-e`{yPUkETO|XWQF9Fn%X%y>M#F24tV2AevRrkrSE&R`qpT2a&8sk zP~#-)EVe3`;wm_qo#|kkcqIX2o=7!*D{F700Ai z42ic#fE-gGtK9%0C6}8XXC$oo^Y+$)_Zc|aj8IW02(m6J7Ct$4oRYVI9a)C4`e(?| zm?VI_{PIb=UB=B@t_cpeH;$pddji7 z{2iwUVASyT*)ZQ3S5RdYVW14$m90jnp`!)KsnX!3<)(*!R*!PcYY-_OLhSgl^|z)z z>`uw=pnH(#2T&Xj$cq;Exf1%x)|LOm@cLXA;1*8XP%*By%;l7*)Dh1Uw^_m^f>9Ds4%tsQcTom*A60c`3gEJAqAdAdO-9fgrwa^7_sCGY#q*2fdRWj!8NE?5 z3PMg;qZH&O6yP>)BeV(b5K>>WO3$OmI`$tgC2w6-ble29jLV`s0KCtG$ls_CC0z#j z%!X~$;YhFVPq2>P6o*uRMZe0<s__LPK1_TD!D-{x$BO0S<^ zmYCXQ@o1wj30bucDd}(a%Do3yN^NFoXB!B1a=-A&F8cQIAxj3~$8FwZHpQs)ofGwd zG5OK&hSD?WyuiG-$I4JLM2BPrk{;!^SASQmI-yNhBcM9(}(=}HiwUM4aARr z1Db1d{9V+q0_S{(-*p3#aFw%pj+40t$&bmR-CKKi-P7)b5aJxi(T|kh5|XY>6Ek4X z^FK{_sbhJfRqqOqL&B>dWe0CU0uk`aH--7&qFZ8cJ@p&X{Vc6n_sOvygAM??6W~iSjLZ7W zZFVBM>J#+XJMQ}KfwH~rT%axi%y(6TtF232Vtb~`7i!6oUx?l7xz8+~b{%}e@wpt=~ z_(G$<)o|>72S5Y|!kU=|L7^QE^KM7pStevL+*_HhjYC+HC-724XceV2fJ+Rsh}(Ey zlm8+T`un%p)EhHmukrC)0(~LQ7zQWqKLaT9Bo}6OyxhFZd3UvIMyg>4GmTopySD{v96 z;%cmuFGu4jhIBynLkP&R8;aZ~>R+d8&M9kiu0y1bIG^eTM775vLM_)I@5Xq)d4wA# zz5IZqg0ejocgNI+SmEP57%j@$MyplKmhGRk5cNeE=+Ys}e`s%fK6s;#x)X3iW`Fz4 zu*pi-NdnSFv5zaT$Ao<4j|C0U%}xJvkuiDsZ7jO%IPCZ1q}Qdg#>B1F|!5n%s`Vv!vI{a zPjDH10m)3jSw4K6V+dcW{3JQt`@LT2v?4-T zjLWYVtVe%Xmu1QwWz{;aF*=-``Fv%>N|pvXTK|N1=WVb`$>7TKYK>QQ$8~C}rI!I? zxGtdNUDROLmz3g<+Lujxk*#~hvg;-ol?{YV1+nh$U7Is?{@134wVlrhA@(RHH9bm5 z&j3FT>}P}5G^O=eXIZrs9_>&Zj%(6;q8PiS~KOK0_B$e%S)2 z`M1wMVaOBA+N*q{J?mZsO)P+J8?b8dM4E5$F<=#N+u!6Iu0R~%vLyV>jt~AIA9wZ7 zlv5TAQCe{TBB|-fDGpN{ zic*XTi=FOZD^oN@cV&e4-gtyx*;zcYrTlkx`UK;*&-X?7PW)wo%x3eJ7jFgy9pK~r zg&AYt-`_u$u7K!HK~hG|j(AFuvq% zSvAZiWVffm6heTMn1}S(hYfq(B&hS0Su38`%CW%&lr7!M*9z*1?|zsZ`{GM{R|vBK)>WlQZRAa>WNHn1n7yRM0~UDdNd4 z$3E;bV1X2l*jY>AaZ`s8O}X1vg6{_KBL{9*w`@!O<_B3hB?E!s<{3Fpf?LfpP6U$J zuRABrvQ@|?m*>f+5M^sBI$9wR&wRT zvr24_BhXd^UxLk0JsZ}9ttY?Rt(qvXkHKk0;30diIf(Wj|^<@X*Wxozz z;Saft_XP0d+;NW6owMV=3hh6#rbYA`W3e~*`_4vTE!N07crfwmOzF=UdO#xPd*>u zs?m2b&mF&BzRRka*PAb@ZyK9CTmzi7SUe%N0-mlnGV(8J;!gHSI{y39+fyD+@?hR3 z`g{^YIkW;7QJ%VhB(|Hr+G9%f`YGKh!2v{fF4EWUWVpD})SA-x;l)WZvdKaL7p*?7 z{os9V|0o@po}FI|BgABMVGp>*j{j-}R zTA4dC0$dvhSf|D^J4Y&CKYeCx*aw(~Yvmlc=vU$9AI$3q76HOUEj}i|~WUt&>e|X!E;WsK&ijM{N-d#DsrugvDQ`E|B847AEIA)30KeY_mgqgCbb>x04?xblOi1 zI;6*4Xvg?kiE2zGRZ2_?B$v?V^iEu0BL~75_Y-L)N-TtT?C!~Udrs`9b+eU?CcGLK zTx4O3BEYd`KKCBdV1?z6aFM>q&@W%$@SP@{!T8*HvF&2o)I`gRv;60h{1X4@8sl&! zEnnR7xjN?Q$YPCgMZ|50<(UHIvk#OK^O)bM?#Wp#Nw;Ce^lAuGNz82Y3gtmBg@A7F z_vP(9ffHgozNfQ6l#--b%MqktcNA%Aogk~7F^cxcMe0YDsi;eth_k6Xs>S+x__z{1 zmvfV1@o#_rZ__(xB0SK{?pM^R#xA$L>2F(9N|oenQwt<4l6FO@p@Z?eSK`?@I6IG%g5Symad~6O$}%ce|J5$&i$fr5S)x?-=fR-@f>^>ytr8F@DCko}|$` zQ!ot}q22LS0Jka-lM)FOh2@tL$tJMKqKUq=n(@b4H>jvE0&$^eQ;ICE=3?*^{U@V`>Tp zL#5AW-i$qSyPl9KLulLZj3_V(t00ARdft?*dA1s+F%qSpI#s!6(?aL(Qs(xI?F} z>Eb)##~;*|_h@9U8V3`Cn^e-}*0ab2VMyX3iYA z-8J$-&?`wL!QG0xpF5x7h{M|{hu=^HUtsXZ=h@4wBeC34(FT7^G*ASq#~^wyxK-t= zuUlK<=8J`i7Xu~?{ni-_gaO=qCw_e?>r|1(7J}0H$TOdUkx%GhCQ@ixNqc45pdUk$ z6?^--v6Hbp(DQ(G&!Ej3&G)dW2q$dvj}lQ}X9jS5inH;+uPv4vPeLfIPB(+*H5qD$ z1-534f_k42!7{BG^`X_5zLHEOflW%zI3SP1ijw`#gNIVmr}M+QD7fJmNlKG+bpNTl zH<5cP=kvU47568Pd0RscL{jU=>7nbAMbPK_mD`2T=k}FMSb+c0DrILq28|^eKJx=^ z2WWQCaO9>Pi77gM|6<-Qchvcnm6bJjen**d_gneh$JtCuvn{_V#JSTC(oM2ml9SPc z@XU&|*jU@=T?D;aOgCY5st%S!6@;-n%vi#-V(5+$q?P zE67I5dT*ga?~e@oWjwqf`1VFL0L^!kabL>)0?Iw4t2ZRSCm)CSk<9>;^nd-I(DL~D z7NBY1rhMvAkR<16@GG!rp#Bq}*2g#Cr(16%hR^YZ02F823quxf{1jmK_qRW^KflGp zRDSv0OL)d=BOcK9K^~8mC|Bo0QuN6OrevESC0N@s=Kj;i_XEgZV9&~3rb#8m0|5+e z0^zcr5q>@S!R3bB)pn1Z+wR}_@FX){9pQ-Sro$UcvB&@5JxVlF_wZT10XOJ-CpZF3 z>EmCgP^`t?CVl5$B>Rf?mS_k_L8EN``BA_x(~Jo*`L$$$^DGyO3gh09OOnkRjoCbw zwe-%tNg^z2ztm6tWalz$)QM%#kQhO?T)rB6wS?>V!D!N^mK?bNSr;l9JYkbq!n5md zG@E^qQhnjBj$y8ET?Vy3nKT{`vk|ugBvkH#q}3#954v`Z6OC&m=9=spktH_Q0VP$} zZsi8+X3h5;Qmmn!M|vX!M~}HT*008uA7SrYcj2cst@y7M4ky=@nZpM6CDdc;*0e*R zRxMBelVCtNocSQS1Ei1@OD6ZY_kuS;Dk-(PH1%e>@q@A~Dy3wZdIcgUA>Rtj!20gm z4}vMC2HWTK;X1JUyNM6|O4Q1Xr|c;c5^X3G@~jiPZ4%^iDJDtJPDg!vkJA){*ffR- zwA|5Q`YnzLe1RihIFonD)V;su&C6;YwDpR#zTJmG2ea+`D>uv5?i_C8Do5u3zs(R9i+^Z{syVO3IUfJ4tA51>b$VOA^W;0&v;a!Z_{XXAl*-NIpyH! zG$l!nsi>Z6d=l;Mc~*IU>qDaum8OiaLX6 zyxRE&F}?5S-^bTC&DVO>&-J9!loTILAecy3uUWJ30zb9(khy^C{(myzn8GAOH)@6i zv;c+GNT;5CWqB)s z&o}s{-~H>R@8a0=>*a-ov5kQsYjd^CWa?;DuLs>J*P*lsd;7-923cU4A~2DS&nfPS z-B{dBOg869WMgKB((5ia8m_04n}@}Iw1qWTC^eGwOK21}2-^Eqa-e-5zIM$*@T%*~ z7yk6-q-~gNl2*N0Q2^VjJWY)&uo1R!U)Ky5BK9EOsuCjX7gAO}Ggyql6Rg$`89bn7 zmkp#y;DXi10DaPfG!#%=KCikwj=3aBSm z-)!%r?v;GdeFHC^KJdXF$fPcdn;{)rtkBM>-d=`IGcFfh$x=GntwV48H|No|0~r|yuF?vz@|sjmJ7p1%8(^^k16|TAb^x^Y)lc&_;*{yUv;! z1-<(rdz-TQmX&4nYF#2y_=u8xu1`RftVzZhRQ`)w;{g# z9lo+&95%PIIse&jPKB4QHgZt9PH4!sg% z8yi)~br4=;i*j4LC&gZZ>E|9I?%0YBipq~E?Fh>_zX_bJM%Tx+n&+-C7^*n^fHqDz z-L_cFEO<6stnh-3IwL-E&_0)<+s1R8@awFV?Q49#{U_;oqqOCg;N1b|Po4&E%U;kV zL`Ez6PzNP?M(YsoKjq##^D!*%ev7-U>6x{zc@}?N;lB)2zqy889$ z{QFVHwIxW*?-d*$=#zO$jM9SRFLr-2`x01n&+;JHfB~VfWpyP*;3Z@@3y1b*?9;gP~PCo$C|#Z*LD_ zzA%Y`Org?jrpj_DX4rvX!GV9kd}rDepG!3m2;GDZB>b$}A{DK}9qa%}x_7kW$4A%C z6tl{p=1!E=5b`c9xL2*!Q*GKly>#-!y=k$~Xk&g3-d|*S@AfL*&5gpoeVEAl5SPe% zaW?=de{)OS{a=}D8$t{!rADNY?kZ3nD7-{}WJc==kF%7vu8Vi`C3_2&ARVpGkf}VB z&eZ|2i>N@gGpjesw$2V(ue&eC4yzi``jfYw%Lat96s`3Z928z3J~6>sHtxIz2LKhI z%=F_0Y`;dSZS5(5{KP!mGzp34e#JsbyG@VwBfe2|sUebjveJk%+e50s-wzz4&`F%P zJ~X$h?Em8u_@qnQVRZW)8{~jh!5CwR*oOH8?%a&W-3m3|om%S!_p>l25@U)qs-ar- zc?#7?@Zgjj@6SvT)(n_KQW2m;oEvFy7f|Y zE}r&aAX01~TG^@3Po2IF7?rFfqIeqbR zO|40Ai(t(Z?LmnseA)4XO*Qb!|EPiPBk?(!V}uP6GF;t_R$pa=;sIOnFzU#+6zoq| zNOXp~aT$?uoAmM8Hs$U%;~t~WtmsN*8A$Jw3&L)>2!r`xVv`8~W43h06Zu|>xo>2k z$FIuE8{QL_q3-^J0RO#$edu33)?DVBsT;e#3uMIxCwU1@`o4-Vn5naTwN-sQASh|^ zilPE*JjCqS!As(xD*HSkVnp&5;M1z2lw_0bJIRp;-4uRg#B*O_Rnb|I0jk=u4~DfC z^5Z+S9(^T00WsGY_1H?f2d`4fyS7i(y`2)1jRwn)M9B++SNFgxG>_J4h-F0>zS+K{ zG66}Z9Wuzd60$UYovII+Xt*=|(zM8{AFWN>h{vgEz?3;t-TzkdxIe#*6@TI|Kj13iN<^L zwC6s+aqCMb(1W#F?yW;eqOKb99(1RMLf{Lid;@H!_?dy1>7RKpanfl6>>=^mKn`i= z%i49>%4#8xFe@^A)jSD61I}6FY-IM^=4O@pYNML!H&xXh0S?LbhV?%F^&jQyZ4K*B z!9>_N;-h>m;5(`7XDz=LhBuDo zDFAh;K>s4oM>-Dl#kflBwLIoTeVGZ!)(pG2KtB6@)rU*SCs*yrn^5G9DdGJ(vd71< zx@JkbX8E`SvVN+=IUpmXz(lFrWkBi^&j$w&T}OB*9pD${tBlE4zg38)+A02wv6SBm zN{Mw+R!=s-z7u2wZF|>GAM2dq?;qv_NA&wyx>6?_e%&VOseJO;jOxwk9+7*0L+{;# z9(bjjwW4svglOf=FQb)j3?nzWhqd5@a&2E>juyE%UvK^zkK@zyUuCD)fc7(Wo0@AD zcgeLRwU>QA%IAVxCqv)Z)64Y8x7l_-PgZ+>p*D)U4?9wAG_pI3CM|Pc%3L2vpc4BK zh6rWlM-Q6V-2KU#Ifb9O^vdbw2a$@C4$n)|uC7FcZ=V^~#<~ z+qQ4utx{++=}hT~W1>%#vg9;*Z15gQcm^A7)T*BRbE>Fc!rhMxE$(lAynmsncbCCFJPbX!+z5;pjzn-E)wsZ$XK?CGw(Dla%Cra(<3+uteixDnh|WW0#HGp+Tn z<><315DGeHQZ^5oz}`)8-T0 z4%a83hPa5zeD|OMe!lvC|HTcD=wSu!qLR(sV{rN;D}K?%4R^%`?saYvd!1LNxxz8b zg=f;*0t6s$Fy|7Xpn$9jR#S}bZS=@6#gi3K=Q3bH^y$LQhBpR+{wU4N{M}E$6s{7@ zfCB(ft0i3gJQ0Nbq89w4%rF5&hvozV50Mw_$lKJ96^LcTsis=LF$nGv$)zvlk5gCo z_f%4h(wNwvXbS z2+y4l^~zjd-tY>PUjwP{VH|ouNX(~MG+k-mXiE|-ubVjd3^+ zoVE=O+U;(qI((u6R!Fd6?q_R|ep<7t@_hS^-x*l!V70cfERlGrn0(oqgEKXh1LZn2 zqLS(nRc1g%XUvc>&i6*I62C1-O3#+8|KjJ><93;6&>o9k#^7BFqrW+M+$Blz_#$W} z+oYgLpWg5-uFB0rAH`QKBd}K+axo1{F^KL<@&*Om$P|2Ap3URWH25xSW1{9A$rnEW%$7oL_Q7UwS)T{-jk8 z1uZQ(G_Pu=4%X=G6C1*i2d}x@szfD*zEiFv*od&%8H)*iUJiS+#-c%R-j|s6(Jc^N zvFMC}Q)Ts%nGM=;HH#>>53qk};3Qpz)?~bbeqLI>>+|)FPw4fH(WB#fvYkNk3*Asq zDKZrWc7mZ~P-q!6svU)5Dh~p*wBq5lvhf1FUtGPpb>mUPAI=RvqOVq+T zZo`g|w&{O;67+vCR28TAd>bdsj~zpvF=fj?rGIGmOb`E=U-0NpA(|?=b`o>F5Tdht z?Wjs1&;%frMW3n{PUds$P`P5l2wANgUu_v~8p$|H>#_o_Sa- zByhtG{mbm~v%*r#PHy06Q{elw+oSN{(a6v&+Ndt!m)#;h%;jk3k7_xm(*2GtAB!%` z)#klJYK{m>mPu1UPhVj5Mt}uX`)<@&H{YwtundRzz-QX%Usw0qi$b5<-}zDf#wfkV zk=ee4|5ml!CmL;@h-SVp7~8#DpML|&2(I2vbKR6Bda}fMbtG1GlU1)im~V5b#ow+r zX8o1dR}(&4Vrp5Pq3R-*JO=j;-lpz${cbNwp$~eQwoBFb@!^M;CRvP4N{gW6CalKd zXXWasM2GY@92qaKd-sV6o`so+14{#us`5iU^@yI{ksDZKVhkfnY6n>V*DQPj+}%1R7Pg^dQ9_yWo4zK&Q3gYAlc5C< zqH#8|tD2rf<`YF-gvmi8i2|3DiE4G@d`s3FjBCBU;g=mSu885G#Z04DuN=B+bRwOK zG(bKeN8MypY&d}g_R1K)sMc$~=}cue_2N>GxeLdt9558)Po=omOkD+~*XeDSwJ*eP znSxS|)eT05&VM@Dy_O(RI}ocqx{Y5{?PWN1v}9gkLwI?IzBt3~#tM2buWv z*FD*E7SjOJ6#z`Ol%na`lom$|E`nlXpGxrP=ZB6$%p>n?i%Qb&gj`#V3zc}>qZJpaa_xWg7@7~Gyvcf?xDOlFMhx(Q`hu>9)`d|;uOyd|T zp;qBK3g_6sCzXKp+XEnTe&Q9gdxNDgogXMT zh^0?rs9W~mIA7J)`hz&(jXIK#bwsGN#mGSFK3Q^c8f<+(zX`Ets)X^!aw_Bzj_I|X z`@NS7W{18Hh-GT-jJG=55K~nOfQF4^KCdby;K}Edw1<+=4?Ao8lz3bhW>mT-^7#H8 zOu;5QAq~ry;$OG6R-C$CNn3n+OUwKYAIc#k+8cB({#q%Lzruh_m!(7dew)(0GKx!V z()1b653HwJ_qM*1&6vThn3RB0_XUf6V`LZYOR*)*!KQ~q2>Z;%Z{BzWENs!@bCh|edL_G5es}kzIpt_33yDhaCzm2d! z1ro-f0Ul!y!4Eq{MaI+W{D%xBJFe_8a}>P*p7)MCngMzR*E^*+c#tD@R90KKGiJw z*X7GmSX9ed*AkD*VYR-4O|vUxv+H&OExfqm7<@Yc`x<|GUf=0sdDZbEW++`*EwUms z)q=iGAS!K!$-2HG)U^3{_%aSEp)qtQyy!gq@=QRS#Q&5OrY<6(=TzQZh%T;`fs_$l z-nr7(pD`?(t+ravGhBKt|46TS*Y*NLU*qUD=Z^@v(apmx{L?0{zOy~M;r={HUWgaW zZSM9Wuuan>DX+OS{jy7Pm;SUauj#p(zih_kBZ*D=fVpj&Jw@!wU$Dmj82|Do1;}5x zF8eY*6WC+J3txlr-c%{PkoY!DhPMTcyHkYwGHmW_N&(+UOi4r#=CPWqJgMtUBQXWz z=^v_LNB^@w{(1SdOzb{`4@#F*GH&~!Ur+JI$9MZJIjFM1rn1yK zW(hws6df?ZFC_=f^bZmw0z>eFj-~Q={7l7+9e4L+}Kl2J$LrmTE)UEeCsK`=oK! zRYTXImug(KI$3Sh@>V1X?N=yup-Q1-wHk>o%R^pj#HH6TB_itQ00q{vMxJh*BgT)p z>TqRp?{?zR5zOQ0_ojc8ZV~wFM1!10pn3A=??g5l^`;As^)b^7x?M0?3Nm-?xQqgk z&dhT>!5YW3;E0{QpF%uTIHH)=tQl`i=3X$zOM6cIJJ%flnuz1R;GMx$MxG|E!k0He z$S|yZ)CRN3)(;*)LV=sAX1YSO>3!Pk)tjiDGsiYXzj(?>ct^36TA75>FFKa-sF>ZT zxUbz(=kMh0nOGwOlZIra-md=?H+NG_sTB)lv}XXQxO~iZCmx$$u)Dycu7HT6`lsC1 zrIo`2bzJ5R4B>N?m}FkF{ezOJBWTU>^>Im)3muIG*fop3z9K(VtRf0$_|PWAnjsmX zb~d#vki{qT<>NLt;{N@jjwKMF*QE~adnYIE%emr;_C7kNni~Yb>BKF^Rx@A9nD~ICR|lJ^+gW{T z*;D?Tmp+sa)Rrl(w-k-OYlsF-B(evNmb$|nTNb>1-kXPPSHME3E{f2R|Jm|^0zTa` z2i!Lw`s>-u#e68uW2QT_ALt{vcUF4uD*QjP-ZCn#c3T=v0tp02aMuJ4?k>S;G`LG} zcWX4k-D%w2-QC??8h3YZxc$ESj5EG{?!VRldW=<1t$OCHS(B-WH8b4`UAFR}M_G$2 zn7UPd3R}AudEDxGQ)LGG$4RW6^g30uCg&VioExv78?E0Fn(Tci6J!ftj?!Vmq+V;( z?Co15u@;mfH+3sc0OdrZnL#y4_Gsd<>#Q1+%qolQUIm`5g$AvK4y}z2t+^K2xfZQ) zk=9|DE)iHx5vzwd^e2-T&e>mc)((XTe+ccS5VDyqpW!w6a#=1b8mu)PFl-JMyY2(E z%V4~iR3X}4+K>{N?tQm-ZZ^@=;;jtjlv#`h(!-1RZZ8-@d(l&XKEvuDF&b&yBG|$E`yc%*i>NAQvKT5@>=&OnZp!_$lo@`%gw# zd_CCE58r~;W}gvn6#qr>#@r{S#G|gGo1oYBqiJHo*CEg&3fU_#8{OY0)?fH zT7yRsKHx|wiW`;e40h^s_63H{A2&P!$34)&4myJBC{`LXaM?2AAZ*EU(`;4~c}z@v z6hS6LZYN0AFxXdt+@wZiU%^yIHn7aHY@PRFT+DqWJfpQ?ugEpbcMcD(6nnAX6J(LP z?oE2RQxIMydy+`Hx+q+j+9+J1@j&^};C)YQUl@~$?Mu#0~s?QKCnWA~{|<=Ca; zIlpLQVq#((i^i(%@T1N>Pu1BKNI;FtD%r@Dx*d?dFUKrQN zsqQXhf-FyVuo|rXGq)t!|5+CKzufGa_LET$HULG0qHBH0*|pFLxu#|GZxFUDO{oUxAs z7cDy8?BUmRS>&~aG_N|k+%iA)q|PsPFzJS$t&)?+qcvV#=~Pxsn)6+ni%p8N-K*mS zWhOk(E5Gr%M1a_-O)VBr%597}AO(3q(bKXYsuD>A=Q z(ztxSef$t_pYG2avtpfkEhVFA8xGv-JmS;PC+s8%@A{?Z{S?0mj_64P6>>Ya!XYgg z1l8DntOMGQDep}8B6cSSWM z;)svD5gC)`gk+C%AtdP9=m8JgiljR?>ifS!1O1*iI(|ij+K)Jk85bf z;dTYu616Jh$XZq}Wow2 zDVtwbS3j*=t9=G@oLJHlc{@96uGQ869oBg??=&>IiF5-C;C4R40MO)oMsXP&NF_X_ z^ITtZV2e0(?)=`2;ffLfa;->np;VtqBwsETVfZeX?+KFRB3R!seD3WQV8(VRsSp@v z?&6TTKzo9rp1&O_gxMtiU!?x~&{+b1bwJ#!Wc+?cYXJ^l<8j|kmD}t05HYL}3e1P& zN{c$N6D*%wH{ai000FLo*hu=zzM9hVOSAymoKj?Q%ja)-mo=REx>{|DTH8~mAOqOb zUpTvZRF8TRr&I7DQW#^Df1SAFJvUXZ^Iq--nZ5L7ys;D$Ct^X4ROh!}7VaVyo(Iez z=(VqaqfU$_@8WvzBb{?Y;Jt|5f|}sIsr55_yA@}NXzWz3>~2vk=aEP~bGsm_Dno}( zg><BI9M@bv|v^Zo6P#xJSHGGLT?*6++GM<_L!f0f~>^t;HtUcziQoWn%*SfB48(>$S=<%Cm5)&vB@a zXV6*_Qre46n+-Qo+nG*v-uISI%xKDz+j(x|@n)-)M|%gZK7OF{i;@UP2-6m zKoRFj>3#T?g6~y3DqX_1H5e!WkHGW6Kwu{yRNd87m@SuU6t|+tm*gSf!H(>J~KZQIU2;8^5f!Z*iXxUHdG;FvZ>LzB{G%RfDj2E75h@5pZ)X!sS zoCc)Y;1@%QB{1M(epQ7?cR(-1pA{kp`nq|UU8F7XOOAx2o=|hwM3V63_oU;9Nrwr8 zuX+|gJ=qQsuib^_2Tk?3k(P2mHsJrq`S8DZ|D%e0J*U+B64~UGfW>t5TXCHpUa-=8 zLp+J(+DUcLlo2wAIQ30!L)@m9HS-yd#1w!yF)FMurZBJ}O(-W^iq*e%*6vucy&ArU z{+Z6}(u%0cY9Jd3XB!R&ZOC?0iFY4s**Wo7Ic4NAd6U_G4_#3-e}bpAd#|c9UtWGP zy?RPie#ExKp|HlMHOr+n$)37iJY*%0o-+49q0BB9-=}PBFGKFeIc!+ZTqU3Wiy_ir zNI$XKGyq9FL2N3o%JI-Cfc7taUoK$VEQYffhYj@IP31aJ#W^!1+bo+Z`Jy7r)F~Ii zyQajckYT5|qobmM!5b|bA=^~AL%S=K@WP>8q!ClJF))KVnIbGJRR1vBHQ<3;*u(b+ zz!;!-Y=oJ$oa&-3Fe}WTwe$At_y6X+KJ%V1s*~vDg8&hdgE%Z*Bu~02+<;M4JP# z_tJgQw$t%VUS^s5krEruz^^t*Psh*|AWB*rM#mAw6=7~oA570Z!dPwi2ODXyx~q@_ z=eO@649)SPB>$kt+rIKwpe3riC7Un_Y=9opPF3%5G5yfLulQxDv-pkUh9Y# zbv|!j1PAH9ZO|%uJjrcWC=7gv!N(5`=iAPw%guHjyA&&Q7AK{2ck0&FH99sHHS^=k zsY%cqX^nBkSTi4c3bMv4B+&DGR*Ppi*v>k{jy3)rcXyXQueh$)17#n^Ls##U$8U=C zWuR9_T@Q%E*{ZAAZAm?Apre0n8CtCI_1!gwyJ=c%wF(65yPTGCq`hoGR>1F@(2!ea zPeI*m;{Vtg^v``(4-;tK5-py2>9Ka*q;GcF!k>9(dBo2m;@=7BItL2~q9s!DrqFyP z1GEMwdU=aH1p1AW2Q%oL{q?#npW^u>(SRnyf!8_lpEY0q&jAS)k0y5AZ7!Z_G-RbG z={FiI3`7}xNBRlA+=gyn}6_;uyiUHdQEmu;UCp6H*i)M;qy zgH6f{>iy`9Pi$5pNwQ;F_lpY8gCE4XMxtaF5c+AJ#jbeRl4OeU!$V*}v=QGTvJ9}h z>;(3I_R2f{h@c404DKn)W(=W=FUrPI3PEARi>D0|D#Lfvs3v*(Jhtuo zlLX}<7e;>PmCF9yrUBV~V?;pj#B_=Q99VMPGpFAWoe1H)diRxYN*;DGINB$jvX4m# zz$zMsCyKgVxFwOy8k5yISAw>9G)o~PyJGvzJGa^I5|T zYIUZkP*&Y))GErFldP7St~qJ8{~Lmq&7#-VfmHcp+t-@zdp{S<%TGj^;|(st<~^J* z+@z%}bTV>&YQ%fqM98pZwEB@EdVFCH9knu%@?c+ei(wJX^Q8)!dv(UH0C@w&7=v^Rpr|K(tKP3h`gmY~*bap_Lv z>`kO1tfG@}ESqqw3mk={dp|<6m_1LxW!cdvg%g@M=6Yt>?_n7(Vmnx648g82k-U(x zY?q!N-SE1_7z-`{OEgn~eA5vKtB9*zA#M7LtOgTT z3+NonTcNBzTU364TSk;xiq4-Iv`3Zg?+!thY|gh&5obQ$4L1BOE$S`u{*Ae6JEe5q zp=iwOv(|oLKk4QzoR9i*1ryEW?#KBkYk{{KTq%HLwAv8tjQx|!$F;kDxxZo2s z-U|PO$-aKQKb2Uq8t^*IKSMvcF8$Fq@vB9tEe*Uuv24cjEz>w)bhaqo_f2&3?Fwqr zTtt7&D4>2L$;U+Qnl9f^_|MI$1J5y@jXr0D9u^-P3H=exJEk|5%Bg3B_k#I+f$zol zD3>^3rHwXC}H8KXDDYwl#+LmzS7n59Vs6w+wZSZK$)63Dv7lN^m$wuz|5qBXh zE)VFrchRL3%G|2atA!GlQMxw2$XKbi@Zzez938l^MP$Jj40RVxGlp=6(IT+S-3hXN z{OgBmCkDiIjwxe;5;c$^`1QpIpwdz~0;J?HdGMXJ4T<4EFRhDUR#1EB z?k7s=94;2fk(=+1sq`AY)HllrN66-zVl`aJ0Zax8g}}M?jCiCsdu|$m{_5Jm)KK z^RHtmglkJTHq>v6t!)d&r$i}V>e-=1?uC{&1G?7{;Zz(GozZX3Cz}ZbuK?ubB~xywfMS;-^?+dQ}FhFs6`jBk033%Wwb*n>Yxw63x5>gjtf`p0pe#%Wv%CP zYcszV)RzZY=lBkdnL7sJAMnc@1W+`Y;rz?Wq!YW;1m@<~5^mQL8rKpCaWb!F_m9{CZFFx1aDUP#j(Z~zK*HfkHytTMlXgqhLDt3Q#NLv zx(m%DB!!z;GkWA4Y5ANJwP@`<7)(u#b>1U~1So)-j!+{6*onVi_eyzQ zDCoA1A~Lv)#Wxz3L>g7|L0VrQ51;?>hx5m0RP`jAsOxD|G}Nu_=+%u+J)K|v&0yB& zg)XCNImMoTJU)r&t!ZI!w-k8oO7>K-kQT37oBzZoaq}yK{{g!FVM()n+tpT4>rpU! zl||}IChBQFjq<+=WVLdPbAsN&}IT|*JGcOEgG>)ij zS-?(x)YdJy{;-X&Wj8APEll_~?Lg3{eYJWyG)k)2d%CJ0rG;Es*=#xa;UdS><^;v& z(W-SNCCy?qEdx?5ln9ULes`CndsSrP5?a2W29!jZl~IwDIki#65(4G(vM>M=geseq zG2i>;$3n7AvrUt!K=iVD5@<=&xo&3mzN~ff$^9T>+gy&O>QV}zY)#B$@vzm*jtdgD zV>rfzI0BRS*xDfx%@M9R-B}vdVG3)gbq?u4p!Boe^ZFrC`%Kw;Xj7b0bOPz%@%K%W z#~~#sebXmB_+|xtn>Tn+l6)NvL%ha_A2xX67#kia**fY=C7h8%3D^?H$QT5rlLf!n8xCB0rkhMy zH8cRJA8Weij|kl@5aEuYrMrbp(t4E?=M~Gv`!)P7*>ii+hzork^9Rb^)p`7VXDwdi z?T5AX(^B?DbdG1&3yW)|rEDkn(y|C5%}ASzG0apFNzY(3mzY^P@iRxM zO%JKFc+xLgP;$PX=TqGYl->SN6ltEd@Ddmk?<25LAo}0P?xYE5(z<273)HZLVQzTo zZqDiygE902g%6faaT>A8lJ=YNF?YaPnB082g#k|v+Rsc{%3P}vse^0_?gymT4mks6 z=8_=-$}74QE80e!TZ`ihnviLp@lBo%nuCzml{B%_k$oiaam?g1W|$Y7g`VFuhkb`h zW38gFxk_Hm?q_K;PEq?ZS^Fm0C&jcA1W~*2e1xnLA+wNQ#jLrq1X`r)y|VO3lb&g!skUU{YWo%6Z0*S(|lf|B(J3XjB$R97EkJ$BL6CqOcIBzK^X(Xid+<0#60J|)$@0^ZjCHpkLP4Rn%%&t>a& zD-A++9z$hf!)J0S5m{h$_?;Q3O&gx?CctRPsMqItqt-j{l1Zr|;vjNx`1?Qj=pYh7 zWDz&0*;x|_W{}_WNhovkGH~h*<*N?R>S!`N_Yw5HfO`a>6Fk2Bf*div{F1!ahYJyJoV9)3<8C=+ zw_+^?DRE`bJK#FFwW?Jcv#Mvvo5_8;|4PESAsaA;tlhNX+9w{~OZpIvM^dzcS&~~G)|L}_pkfO-BB#w~d#SUoL&lf_=^aHU5!1a$t44>dIp?L~b$bhQTXWp%0p_C4z}M z43hf6=xWnyAc6rUF~+z}MLWnK8O$Nd$nmY7FRNQEn-z)1E(VbX0&sTA!uB> z#&w_8_X^gI8H%x)xG}Y}?fMR0dSOm|u;vBD%HBh5jePSPBXMtC%mT=<0>(0%(Af8Z zcRgiNX zdrcdpmnTyF{a_C}y@*j#IK(&T{jyCJ;`A!qC*=V^d8zSVN*CRf@DM!o+hOAPWXIM06c@$>_JPW+5Gi`V)+*u1` zV#k#!IEKqv$g3PtBdC!I;Jc~1Q9>BwsF89INDHCw8AX&ZEawXa^C!h5VGevh*LuI+ zSg^G+Mtw;LHyim&^wrvB3ncbFz}Vcc#%T*!ZTR=QHc9Bdg@4U`V1CIb3L3Y8;bw8k zW>yz&rKZ!X6LvF|k{#nv&Kf}6IC`#KpaPd~(aHN8_HdTCaY7-u3{WVwtYUw}d$|0P<~hvMtt~9O_j1xZK{a@NW?#1OZ>JmGfUHu#Bi{K> z?S4}-qsk`>gVy?_Y>~_ybH3LD2nQ7V9Cj9#rZFN;DCA_#XE0pklx}2HZ^o4z1qQdn zjeqSj?ZOB|FAGQ+WJnvji7Te{6h(C1z^JO9H3rNCr`oV^ZIU^=i8^4q6l(KQ<7T92 z%rkTkw!TlF5ghr1!@Tc0iung+Xa8bCvUpAp;o~8yNTlc=k{c{$%7C944F6)niveYj zvq%vuR5qIIOyn|nq5X7$K_bf4m}XT%s3J9XNox|2w2=|d1!!>_O!~LQf)C!F{_mwBHphp1O z&8}B5h&`X$O_gsNnRqmH7%fuX^HB8%HQ6_9=C?q?J#t5cUAe%=K%~CKL@F z3^|sj<30^JfjHBDgybOVPcn!Qc1AzjIeA7?*zL4a*?VJrblNZ*@|EBDrj_>YpSxVE z*xZ-CXgIVXPr&Re#*-eNVw60?xV}^kmp!i>z*1$u-t4(#6N!95?2(PxH3DvEN%F9LcN0S(}7FWw`4=OS$p%mc-fUQDwym%&Bu842pxl%o2 z%(za4l);SJuDPzy^ zr6+#jdv4{U>Gwx}c5i?nET?1K0B(Y{%ir8AI&L)&RM#zPtnWd$Ee)9idY6_D`?2@y zs}^k(SNRU0?xajk>8PfyU2E4Q9>F6(+yjd4+eIWCz{`il10B+YIs*DX)!la$jA}-( zIP5<^!OxQheVq$3m7i*HgQ+d_C8q5nMJ8$Yh@NJX$)?E;absAsZ?mj!R*QOJkKOW}Q6-%$qulFS`@bYcHO& zXn^{KG>cXSUfVAGdy@(!d=Vjh$!Tc*4do=9!cideQa3?*;w0ISRWw#DO-KvtE}wxi zjAC7PlX=%kTNYeA42w})Y#-R5fhPb!S4>d8Wt_vBMlSg~B<7%7Bzc2d8AT2^gcP}N z_KWDk7qPjoV)ID;U~E{`;BsYz3KjVBIAm>V{D-34w}F^;;!vh3tI_FKsXUm8#d}4w zb2)PGKaC5&yuz1#C(N%8_JD!8El||-eC5?$&~SO7JD6$C)2hai=_Od@AO!@^Zen;tOfL+%suxNX#?7!QM79I$tW2<6{>8aU#(I~mN2fzPKs z9MCCZ0(Jd1&UEtN-;z0r3edVnSByW4VV0vAjy6_ToH(@ZLThB%cIB2sos=_fiZ^bC zKXIJ=<0SpZq35q@KJ7{NaT;yN0GH8bhS;yRdO&i)b^#>Oz*I8?nJZ{@&8^DzH-bI3$C5f4;%EnUKF3u#yah zAYTg%=6LCDH2A}YR-^9h%ExkNclEF;hZ*)Gi-v+Hh&~!WkMdJ zyy3grO$H66++%e4t<79o?&}R#p$u=LR2y*aqC{+AOu$R*>ySA4sot1Ol7Hl#1COJc zufyiKl$M+9SQj)`iU#iwD&p@{NsE#RV~*mqcjGh(5w{C1Xk|es&8sftT){tCn;4?k zGUNsR>?2%h_KFf#PtzL#8=9+KYR&boUMGF=raaONAKOi<>}|`TH2z0G)|_~Ji&{Z# z3wHRIl9R3)`J0C5!fy3=h9r|W?cr0F-y5Ity-OZ=9dzU6ZnBZ$lNH(k*D+4~Kwa@B zWWAn{t0S#n0fgROkqKL)R^F89pQgNK>X*_Ho6@lDSN{Gaxd5!t@6_oGT0EZCLkIN^ z#h)>Y4r%naMbVyHc+Zfbo1&X%+?pC8l4b+()#W9a9yJTpExzY>0c*#I6+}U$gdyJ% zbBeY^K;L~iBuz8g!F-zBmA0ylN~BXUdCT0FLS?pCd{PN_VHl3ZfU*!xUb9cCpivMd z`|vjY4%2P5L^D|&EkaHZ>ERVsK3ZT=Hxq_D5|CCZy?4s6K5X}@Kq_#rLu?T9WRLOkC z2RMY1@uibq_m8v&D?sxapz{F0Q+!bf51%|h!6v4cCuiVPViNCp3?I48z^Y}}`_ATZ zWsUCm&a$erngiNpt6Jv4%GdY_?b*#QYPREUJ=zJkS}4Xj(2NJ8yT`@bJ~RY)Pew!i zbGRn;1!+sk_SVNP*3Zao4dY)CUrNCiP`T~v)ij`O03E)cKLYcet9x9ny>V3^gLCtH zV5=zQ_srbBR{&?>{xwjc8q%wYvs867m7}U-mHUD!eN_7W=U&(T&kl`uUbwKwfgcXP znJ&Gf)B7&vCUXC?ggA-irU>gmd;25n(k&0ndY%((9~)4dmD8Uw!hbr_Padp)_`az0 z8g^~2`V2N?2TN0XmP>t#Pk9KMmduW7raPs}H88Cy2MFfLbYp*q3*%)nXbx^3p(9n`0#}IT_Q*=%yMwv=7 zcjtS_z3~uqHc)M@MZ%};UKYcrE%tyA2k9LrY}*WCoa5mw0SEraV5|cZN;F@>C5b$l?5F zb!(?0)*)YtJgn?v>60qtcJM2zNd<_5F-e#{kf|8TqG-mh1lTx5@}Ce-#4TPM-l3Ie zY`Zpj)avQo*gZeg^+#X(7yBafbhOj2;^{VAO5Wx#E(bLRFer$+pVeoKpLM90&>vOT z9_ORLv7cr^I0-kVd66(uA(f(C>H9HaWEG4Z8xRbYD#`M`+f(tX38}+-9rn)^w||EoK#Snpm*FQ8ueQ z0aAr}6Aaw%;{Pj8;7)>NB?t1g< zN`74d?D2S=hgXpmI3DCwm0e+7mp*#bszC=_w5FFIoju_DfH>v%K!c$OZ0m{C3~xw| z<49KG@DE5C+r!r%xmD539<Hrqe5XXwvei)ADrfdgO{DkOv}=!y%Hv zU6DUu=RIE=JtJT|Bg8!;D7hmlxg*52Tw$#547wNsoQ?0!#}D+uJ;TRqDN8jBB`)61 z>wiyPVYnc0>JD&=BQW1;p6>z;ZDQv-1T0LwK^U-t7Xy+$zC9bdJHIZ@7|xdL?FLS| zgt;Jrjpm{-fexRLckPKr30E^%8adqcXfyUoWC6w|D%is*q?a zQ0r(}Z0t~TDO7W)mUb!^Le(v4B%i(D4$Bj+r#KbC=U(93I?d?h5o;Yg&`KMZ|4ul5 z#+27^NQ9v5vV@x@n50l4U8p)Re@xGDz`%~na3O>J2yYQK=~%bqSoWo9-D-${fLTt?PLz^(sqLHPu1iC2ydlYSIgCv9IA9cgY&=&c1rKH*oVW;If0hb1u*!0ZSC1+;qLYK!qr7& zkFGZs%~rXefa+Z!`0D8DVu2sY8?v$KJ*FxmfTKPj+?XtoHS%_8oWfy}lFcHcTVwJA z85|W{ZiU;nzg@ksnd|;|h?I%3~u0_V5{u zznn>1gY5y0dn*A>Ca|cg8ujE(o(?50Z#`Yt{#W?n$zfl~y!C3OxwOlZ%O*KPcUh7k z+xIJU94X-dndDwED`wq{@2q(tQ5Iu+hFMI1E96Y4^AK(ulEaaCCP&+&KODLy*=LI# z!>gC27yeq7GTH_TZ@0ErJ*SZ_^wmF5+z5qVDmC4SR9&h4y)k_yF?sI-B=f$oog`hw z8oK;`IE2=BXn&hT4Q|5g>EoX1b3=Cr=B>r87IuJh+jk#dt*Cr)x;=3^DtMobNH#dp*YCPFg;&4A*3d~Cl4UqV@{fgflHUQW znaSDlwvKL8&1tt8v^OaG{bv(~CoBLJ#^VM!3 zVlHJ!z&Pk@p9-L2ZiJZCqPiuF+;`r*&o#%oSe^r1m{GnUGgrCYq~EH=tgvh|axMh4 z%7+^Z&=lh1VIaE*w-X{0Gj0DaLhqm|U3CIGW!X9(uzJc|aErV@*dIElI45S3Hk8It zC15IyW?A{=%b2*XZz&&9WW{pFbsmO& zk5Zd~peOyuRb`7(E%;CDbBJELpKs#@@b^!JY@0KIxNug7S*_Yuj_dMrG4FUwU@oCH>&GvTGU$R zliTVKEn{11gK%y;>3qJ+cc5pF5wm#N_>!NiKURk8;`*OP>ROh^n9G5*1DP!PEFI4x z1-p7_yJjU|wVG45nrEqmL+vj+R$Y5mn+>(sPP=ihdGtpJ<@Iwr-2smxuWgnkRla2O zVrJVn5$NdMj9WkRGo}3}%Fw(Sk6Y;sJ7<(6LgonoorC>Ks(o(}o>TEadLiC+yCDa) zTA(*cLth?&oi7RetJ;F@KB8y+6{>3F9JyH9hu9kV^Wr&9nz)+2>7v%Z!K3L@;)L}r zbO&Fuel*Er>z1@DkPGNiaA~vJR%f2O>P&2|zQO=w+JGStU^NVIS{NuSeg(I*d9Nh6 zzSO-YMeb>b2^nG&c6k`C#qzX{%#-HU$w{(i+ z*C(s{C}UnlR-dV=IqAxTM#?*8E`E=Eow`ta4w5He0Y&O?#Gcgw47Nx?q-SXYoK{5af=dk?C0Eca;2gicP;#r zp&5XL`LuZ@pry)~oJ-}?X1L#}_l;yv{R$4t`QNfk#orVFE^{Zj^$(v*3F8sqvJG>z zDG^?@ajdL4$=iBCGL#?x(JAQ8tu2QO6{Sd;jkIB&7pekU-M4r8#17=xw~tfz zTL@nu*CWB|879Z1#EajFvUH7;ymX9`t4C3J$+*F-X(rkUB`Z@L>Jm&iV;igDeeVEp zZ~s+O{F6b8)Pq8HIKWtdoN}}E^x37x{=1ZA1Wn9I8{Jy+;5yEFEjy?ULxdv4dDW8V zs_nfTRP?oa9-$pt$D<(GwPONV)7cD~*fc5} z&cwMIftvfDDsNe-S){GP1lagYRk9DpHyM4#HoPPy98T;0Cx#MpN$ z{b&4I_Q)x7!dIjPDhk-a*`j9-VYck;4>V@@<;An?A2dHpU4dF~#TsNffjRiD`jXBnJ%TwUe9Ml-O zB+Y1iart;;aeI|(4)Eyf+^z0%$eW&lYH;#uo6tN;1oDBaz=*vs1Ve{BF!sxa%79Qu_u`js-- zmD{gUl03T(Y2ArK_-tG zdR;s*z1}#lpJD$eUd#S)qx9nJck zIivH|X6Bb&wsYFnj%ODu0DcR)z#-rzm&Qz6e0pCSkWoiozDxKBDFb)3jQM-3dAqyc z+t{2wZpRm{TfU4*m2~T<6G4Ukg(yw8caz5u%}7FPed_Vs?LXSTq+3_JeJ5}CcSQw) z`*zK4s6LT*s#(yeVEZ7e&6YZQeu}qFym$4ert87p0EiCvU_TsGL$o~ZWo-C?sN9n5 zUVv@=obJC4$iqY??kCdE9D5Bi+(vtV*C@I+fH#+_+lJ1<9_-ZeV*bR|g9SRQe1pba zu9KH4W1?1$BzlUZ+rY!{(x+X^I{kbR<|HuBUFDct4X(^i%2u*8lgG8udpA+TU`)+z zP1?_NdvWYDr?NZ0kz=@mu!f<5R#WDAZ8}`abQ#nMvRGeb4XYz3xjeKjgZD|X&2I}v z<_1D`#1V4g90DVD01^9AvY3P87&P>8#pOy=6)H3eN6HNk&2ajP#sztq-nr7uDx|~~ z3gK)P11n$9`GO1vne%Ycry|C1DN~IDXP6HO((SqSS{;a1cS%>hrb89IV!F+^$;9k* zp8(V1l`V}UnI~Az*aaE!u!1Nad=kB(LTL@h4{;0f`4F$%$`$BGbk$~lea9m9c+PHa7;!gb zhWskF?zwd>R5b{ zu~Zz3XviUN5~;;t`aFky#fW{*TpTq!1;Q8Ak58_DzeU&tVJB{Vl#r}>w8oEFGa4tX zj2|2r!B8|BZu(xtk~3l_#fhf)8)|4=2Nt+UWxI~`HQy#2a}2P0q|k2 z3WRP6&fUq9|5#m-?Lw=4H@*TDHJ*<#s*Qzm58b<|h$?;^Pg-=Dk=<|nX3sV&XdI5( zkX#x&ZSk#ra4>NLxhKeZC$hl>ayNdq4qm=);cPPtgof130$rmZPPn`;`}bj1gi2#>?UABWLJ zhgteUr1C-*?M3zduf)=h+JD9_8B-l?o5KZ%J3w+0%|nDzXA2{p^=@bdTRsnqqj3I> zZH(;ZW8KU4tjSH_lS~-dcY5|DLb^t6%qV&OS*4G0Ncq`06nj98FHyktqY1Ge7_(K7 z3J(^_{;9PYdM_dy4AF>ht&=99(HMd#tbb<`Gw$4fRHR(Ey%0sN@82812Gnq5G9_P5 zg#{WfR?VJ~TRCttA41O(U~#5Y4)+Yf32?hCHMe|Tj5I(UEo?N{jy7{9 z)HBXI7Gb$tZuz)odDx|OSS7UNk{43)C7{Ks2iFt*@oGt-tY!M3gv|h&=O66GEytWb zZ_qT8-7-}wg=!l6&@57}nEN9=vX?z+J4HG;ym?k^jIMp}uS5#i>W8ZIJpSq}g$`RxERTzlix)lyz_UBY9=KoCc7tyPFwWcxCZtA?S&tPuEQ;n`%lMbB;OkEq!{VBeVmR#k^0NYpnoCVDp1Wdh84|^()N5{qw+Fi zLEO=%C;C8h-f=zce%{*c^d8Z@9d)t#VnNjp0!fnTz@iYlBlDV1tE?CJZDg_~jw}9Z zYjNM=;{3L9+V&LKALO2>RgK@$EXr8J{8 zOGz~b;lUD|Ow35Nd-`HfZoRE!hV53O;1#e?b1k;=gtNJfvq{O6eG8ylId?jnIP3V8 z*Se%Xd{Boa)n6PRq0wiUreAET_hJ`#Yh1&n{->8CSwCe|^#O#FMJLM}18towGuf9| zJP4lK_HRg(JJ$Z<(kV`&+OEZ>Ipy-btEGRos-kO}a?F!-$QSWqwYji8+vrMte|P1Y zb>kTPqVG@LF6K}s?;>Y9Xv(x(n-a=Rrwn0l_o$VzIA@YUR@XLfAx_E)0FU}HF#5u! zigfnW9q8M}P)LN3eGciQT9x~)gLeJI)B)GiR?4|aDq;PDS8Wb%+g$&bRuOTkp^Kfn zFo&yi%3}rn2cHc&1^UP9gaGd#Z0*NDOiHR4LV_g$#;_X$KjI!WrVj%@oELkSx?;cT zId;m`82n%foKn;=@Ai)zf1-=EhAgIbv(MSsSCZQ1c+`4yf)=a*=as8gRXXU|m*IO- zb^R=u%jkW@IUlctfib>K!li-NQHD`DcHPNfcm_ZL^(+JE=I}fs~sl?Snxn2BnMCd9eD_lqf@1s`mvbNa; zrbNN?vekk)8@By3@*3)SD}974hInsXd8C;x@eJ@n_I|E4y;j2v7?`EZRg7yV3pBgS zgilVRFiZZHf#J1{mI>Qq4R7pqkSTX1@CJlEP*2MwUV~E*{)Z$l2u{|2!SK`m2@XVe zkVZWOja?I7JOl@e2vl3T8)~ZRg}mM^7f1GBRk%HuVg3$P37~s0y(}rg7SMg%_r2hF zYrHu{PH1htj;uh?UvQzYK9N%cr(K|)U!2>Vc-%vEz0C<^yIuJ=v42M`@5z|a@81(9 zfgoBn+&jt2l*JTc+OKbnmcMVx8Pj>G@t2-(z;5eUTyG469?f(st?fY8eqvkZRg>07 zum8>z5s+)_lV<)2&CgSf{dM~x=CdB_b{?)kPdv|t;RjeklEHU^u&p}w*7K1OoTAmi z1K%yAgReS$%M0W7oa|oWvGD~$v8^Rg&s`Tii+_Pu3%ys(XrkrfY4RnFBC@lBPu8kx z$D^Th8qf=0Bz-zqnVQECc@+{5(6+$tc3ohdB_c-l;+i} zWHxcu06zYS?gwIV0x2rzqZ>6Fh!&GRP761|h&wz-?%$>TIOtH|j?DV%b<@Vn!sO4=C9_p(9`XF)eAc?ZMpwh zcrR4JsA$?c8+H9G9*&7VzjCCpF4OV5QHwp5slntndhM*furVhLl=Lf>Le7`+5+o@r z;oohqVk(UhT~sf>cA6!JpT?lTEse>V$Rci5#Sl={sW{^y&|z?aZ0G3zc+-3@uix54 z?tI=k?afocTkecl6Tu zt&iyHORI{GzDQEj@}z?QpdRWKiczQsmgbUMKX1XFcDC68lI#N*9PW7Ck{Y5b@MmRs zS%8X%@c{Mv5M6o{kF(vT4ULY+2F&fMS4sE729#ua4Wjqw(o5ZQEi4`P^P7o+NnUio zF5&y`8UF=^&)a*{L!W9$S1sQu&}iF+9>u5AcIujfsR~K6{`#zGQ@8f=0sMUJ=g>8x zYAIi5JuH;xHjIr@0XVsoPr52&*{!k54t)8F(@pcJ^XJplToFik}|v>*I7NoQuYiu|5@m46KkxS`z+{p zt&qF(EB19&|L93c-7<*2LDeq1YQlUv@s0$jq}k@|ImK5<0ZHFM@GcPmjAk0AHbiSL?)nKa7sn8Sqa zepfH+eN8-;B^3*M#%$`o`bd5%(uo(dd>O zb%!z`cY!*a&Gqv?bLZ?=>nFP_r23+|#i7v~7m;Jc<2Isg$Z`SefcF%j_k}jTbN*O#g~L`X6rM@*}mijuAktnw9?d0B{+y4yb)kUKanI zi*PyC=$Ue?od$n7?)Uqv*naDN*V9X)O-M)6Ud6)(gf6_D7`^oQMR-4RTpcvlx9Mqf zv;zb``Xpv)Oea-yyiF0?oIUq7`gk~DV&i^(`R;jTe?KVwzWvmwyIoZi-R^0()CPX- zGO+PZv0jd`+Q>3ldeU?CYQ4Mp@Yd+&^W$LJ^X3aa;{ZZ1|L^5VzhB*~n-@g?9-aUB zv1KAzeT^b)hphccHJr4?S{JFu$eTLOm~-otBfN+?Jk?%V6<**^w)LqP>+#QIhhXQm z(=aLXb)4CH=Av)3l8<+wg?wBuY-!9A;NVauBr`4%dXlLzXB207s`l7ZrE{-f0Hb-=CGvKPQ;gjc3sZ1@KnV3JyR5?DW4;3@gxQ;a+Ew;Jm{dSUpK6l9oeCZ?Z08`%b$?Np@V z*d8qID43OZyXxv(f%^o>lTC1FVfK1VQ6>T_n_v6OQPLe>h7Q}4%$mG=De&!_Q%!q zFr_=kRO6zb?AqnFdtZQ8?&T;eGMquJdvJI2V%jqC%&MV-4Uv@ft5q(`7xz)c57GO` zkr*hz1Qei((Rv;QoNJM-s6I~HL_HW|Nhklj0;mghNV*Sv;a+tfTkmRj6v z*V=tTe1}U8%{%;ZrXV_#A2+zDSu)-tSu#Y!6b_jKVfQ&u@kiGrIPe|i?)6!K1Li*i zHy+Xb9ZYPo?p6-xV3WM~9Hm?L9Uwekm?!f^Y;<-4N`*yjj8&6){zAEj*As75g;u+% z=#u}wbhESeSRZyJlE-e#_eqc6HrCH~bPo?cF}HVZ7Cvt)wG>tS#CPhiSc_mf&*|FB zps`-;^3OhQ>P!BKKCb-t(<=mTNiz51-#0_}vNaa2VyyV~A}k#pqP&wg=B40MFF5}* z@$G-$cX<=6>0e+LPWovk8Wl&<4%Qc^l1PC>5RN+XnDk#{aDJoU@!bBV*AxqgxG|0Lm0nRg(m*mre4T+VxMrX67L^IPQBqD{4&Y2%@P&$UzH1*K$;hjMOp zf2b4b7KZh7gev}sgJ~(rx_PqoPY|c$$6-CpH)&6poou$N>>(9%SSP;{ghGVjlhKR% z!gc98Fko8z*ALYvVq`fdwLAv6f3KnZ_>5k7O(t4vP#C^zG-?1L8-n8UVFSc(Ub-0Y z+O;YqP>+cpkg&^)&4HC-{S<;3cWGf#CG1tJmx2W{70HxyV+JQGb|3oYu{8CEe%TL6 zn1`GhhwNL!$4y%>D9hb|er0axmfV{-%IeT8o_kF-@T)gp>CXp8sG!!|O-uUoyR1Z+ z+-_L0T(ipo18_6*`2;=;F{fR_oBH_nd_{o)$Jo;T7-lJGWZnUb34&U?ge1#^LaEKp)2dfu4!`XoSTeOQw;{&J1sG( zG3itvpK+>nzL!M{xYCrlIYiO0Sh;$@;qik*_@eP1it=O4l0rRau>v$DrgBH4{?n=d zzqj8(G8I@(RDmt|HP%|8T4zmKVa}M+kFw$z483I* zvMN^~W@0M}1);QtI8fXx4Tw~%C>A@{KTD1q|3N80| zj`Y0d8o&k|O2eU#!CNnk5Pxb|CNzDT;?iZE4QnmjO>s_R<2^z}VckZN+4bWl-J<*` z5O)=iBv&gAZ{#ER6-KvShi|Jlg*(!DTkCO18YaXjJkj_ru0FlM#Lm4}8iki;maVeU zgMzFQG7>f2u2hI4Ys08*K9ZdMm{E;xGC?YO|ABY}pDP34TCU(;B;?j2mrT#LepYRK z8&&Nf9<-*DPhg`Ey*Ml$4p*M4J^aSe=M>8!S%*~K%+IvnL5`v3U%g~H6%=bp;j zx))LlomkQex?ILou}nMNWJ5jCq#C@kfZCs?FIQy9Yk$=~oO}eo4*5LqUsnhH)3_5| zIw5BC+J9oyi_q1?dVlti-h9;?!KZ7P5u7Xz_=g%MY~0EpKwRp$2w{4*yg6}6&x2?? z%ograha2hlOx6!05=}PJfYxy!RRwa~oZ%<$y8nx@e}3tX_faeqs^~NgE=ZlSsj%B7 zPWu$|3+myC|NTgP{QGI;QDYH?bQJ&TO4{7@ko~hv(PudEa~G0DP0*D-TO%ycOth+=1UqQu26#>9Y2>fqQM{hP)WDgN0Www# znWx~8Q-^e5$%P`3%rDR%W z9|ak3{C(rA1^Qzt9r9=da_J55SlaUpGglxNwq=?B)paiw_OO>IP;Y)K~k429(UpvFkT$PeBFi7pfa+sNEYDB&24uvl_A zrJsK;7EwIopg-Tg=b46o9`MPM?Ku^=*MX5#cJ%eT{ddsUt1lHgSuz*_6I$OyHqMT; zGKueOfqwViE!yX`U|eYNY6@g_z{EPPYnaM`Y34!@`toK2-uJ0M(yX?>>NS$qd5iBA z=z6q08oOZ9zU-NS?dbrt_COR4NkLsL&lQ*ZHcZd!Rqu@ElT~#xsJKag;Qu<`Um+q* za~C}U_MSW&VyiyOD8kvW$|*yy5bC|&yy*OEdHG-P`3h1$p?``QM=w#h4zW-Xnt}PT z&E@wyil%9ljpA?9dX*A^&(xJ@_+uT;^k_t0Lrq0&n6}5oZ6*jJCYZx$TtuBHtO3=x%*sz z45~p^H#wH=3^Wt^B{OuSF&7OS8E%H2ZH6(0?Pn@eq+S3doHD5r<6bI3qkslj_zl0m z22AS!_HWR=0TbcB%VC1!y)$mN3$Us9xsC>hxdGhgq*G=x#_8x~L!<7o^~P38z*qaA z*EW{@Ftqt;{rPR7{b`}6E1{8PmgRY#d8^oOZ9^I~*?$&6Y<9rzwf*Cf_T25E^>g_!~?sZc%V_Vz?o2vxOLIgT6O#n{rL!P*JcPh%#T@e$yhE)w9|G;Wr!$-FV&!= zc$>IVOySR)nkj!g-D{t<7utL3;pD%R;pOa(*<#g}=O`!>Mi{m^EWX|yPO2RKkRSRw zo&^~=D$;n6O6nk^IRnxpUg9uG>*PyrHD3n2LmIb>@AYMiFVfhIy4T0Y)yZl>43FPm zK}OqE;77PB$RDpuo3NQ)ibZ+l-+8oa*%7xprQz^W{j4Vh$yh*|2X8Tl(*$E`cxw1B zPfUVtrYrJ40`dPBW&b=M5d>jBz@T>rj1XJ%$9=#_tbEm)N=VVK3VdY<#& zP>$y5?4*p6Fnwn$da7$)u;Oe*;m2!L%4=i7q4}Fy9t&c#$aK06tA)0ZOFr_BU=+;> zJG5YAH)FbXN`7p`i4|xeY+1M1M@CK_9x|W1cL(Mxa%xi&jvdvkVdC!`&lQjEg+wHJ ze4gjMQQ>vKY;)MB3g1tr-E#?S?G-2!paY?*r>OJDC=xWUR8RCmA7IsEi##wohkz3#Uc31p469p z$tdiRN!33F$G4KQgAher{rNQMfDCY2v%*E?_#hkuJ@sQFd}h%JL#wMFZE$7^Osn*V zKFr*2s)jOV?CWQOt{n^dN2U$tc_PQdXX&jAhWuIip`G&`-x^+a1JC7mco+MdL<=1~ z(>HwTWE58oW>@%>8N)M41I}1l5+%|oanq1&yP)J?Q*!)F;@HsXuY_ZBp8>fa1hsss z^=LyoGA^S31GUWn1?=xltJ>!4iAHOw#v5tBHPg+WSIQuynoH?^FBII_i*qDoWqR zGl}O_h%^=hiss`{Ug5?2DwyYf%Vl{O8`t#qm3TVB>y9Osi4_!^`q!PPmFDAmnx9yK zCZ}Oa*El-?z4(1g`>cHH^ncxT-STkZbcubE!QORoMIU?80D&kEEn&FW+{Xp|;Wc}` z8#ZX>`8)UvL)VLg;Q|rZ;suUG68PaXDgblbvY*eelu~;Ak323{-G9ky?y+>;fK^hK zN<-`=Om!TkOq_pqU{`q87cBRG7Fvr1j@OgU%4&!wdeV1%lq^-tVu&ZAjX52TJs(!{ zQZ`&t&sk5T1H|w;=Ki$rP=)kYZZ(Y=>iPpC?A>vjvaj^DIB_F);-t9Rg&8W2dWA_ZMyt9Up6@T*mI z&is+vD?6`0u6>@eANU2du0;Lj0C%8Y7Wpz0+}RGmuyZiA(ti+7?$6fxY6;xEklfxZ z`Po=%94l$wE9-#(SKRzb9%8Iu8=1%jd;-Tz8shlpH9rfIi^k=?%2&UmfMBS3pq7dM zy+oLL`HaE|j_LuU?B1!rH`1)vQ=+Uv-)$zp+l;Y^8>KcGzO_rw!XVy>6lg9S;x(<) zL})b}UkIpUG}2pcdw?IWUm&e|KFeu`?QBe~{p>|m`ltQTOWl8@DEe2L#GNlF%qWX{ zX3p0#rxCd97vi`2M)Fw_S*iT_d9%}2W`FOI$Z65nV?spgfyHuL3no=^Png)+>dtq zr9+@1e{YY51vP_ish^b@xg#EDNd;ne^KdF?y6L1W1);Yzq=YBzvFFZZG!W(^_hAk< zLpC^-=T78D*V&H<=9(Wj+NnFXxt=zD_9mU?y0Q1RsqbyH!dd}Wjl&6>0oVI|Z=rpr zE-RVu>L^EjH~^yVUkHph=u+=nl zt|CR{n%QU}ThxrV-eP|@qQ755x}W<2_N2%2>BwF?Z|XkBghiZ3t?2IOvDW-bs#GGG zE=$}-z}ngO!bY5`@LOij^#L(inRt$@Dp{+A%@aXauZ0gK`ATPuaTEOK^~G!&6By>s z0G!a)g%*KEH&9^_Pz|qXaKR^ec(qnx(+AXfr;nkd3DB!@3Mi$HM z(xy$VyZb!Iwf6kz(j`-&lU)p^{J7jJ%xRKFdiWNqQ+|3SW|*T%teHoo$x*DyVMvya z=-6f$59C5evJ<}kFGl$Bs3*vWS~Yl23MB?Q?$Z{|`OqO>f>C%mVMen?5%;C*_iK#@ z@tTSXej#rzF&0gHH`R6xYMf%lvDlny53#)Eh+pulD zj8BnNGOeJ!hd4}{WEhB>?t6@cv7JuZtY3)L=vH=Gz@R?4wHHA{!GXA}^JBFTR!}Q0DyI44R zJf@Tha6vQIaq}Qu-sJwGWgRP#+g^Npfb5=TZB) zKXAp>j+ruik5o|p1Z)e*%S05ugN1h{djXUG%89oo1Fm3A!*e9lbs6y5RPliC_2nW1cMNiH%R?ojqaJN*;jtrD(vTWh6-#!TdH}hEbnAij}A^M!PTuzP_ zGF5!iY(A~feX}!LdJbJAUKBI@rg&s(m_|Vg5q<*4!KfWeYD~1~%W2kO5>3|QLZsJ7 zv7o*Zj%YXoiSv9y+3|;xe@l{okpAxn42{ueWN@kX7?RuUj~JMpl67}vS&6m3m+9V@ z_41ak)CQ0}R?nR3pv<*0@W1Tts|-|f3m#UOF|nRmDrGmIFc%M=v#YS!%lpK?8kkYZ znPJ055jv%5)fhs!FwQ7#9bHjvQ}1Y-C&jE*b(1(^;_y6p-bljSaBKi841ZnNc7x%8 z$UZa*G_hci^t}C1*5atwtbI5Y$s=y!MU-*96S#W#@aTynr_|F(I|pIZC#3k0!F-7? zai1E~bA^tI^seFmlkaN`%1?RwU+-dIvHhA483TXSlI3u|-|kHSn zPt3pm9zdw1CVb(7^x0DG;ldjgM-UN>SrK*RGIXD$@iyRb6>+`=LDM&gJn z#iO@&$bZio6?LjQe(n5Gf^)Yf&%c$zE>)J4-u~`WRTwQeoqB_Fv`4iw@0t5VPS1jhf9@ zn~VzAC?k1bXd&>Y@l(^{Tx|COezaW5L*O)ZYNvc^^!>F@@IPCf--Y~dsEKk~Qj_#D zjMb!5kCiyCom!oQ;ab_zpX@hS$#2ZbscL~Cp0U59a53SJsnt%I$V5ix&XhP zN3(yvt2f&pSzLe*z#Hu+$XT}$NGHY+;x|gHC|{A!;b#(!dnd}_K)9{d1PlF%ThSl; zb=Z9Ay{>q@DGK^S~MyJ5lEO`rWNBee;TmH#-lxCORS2iz(I$^QUlTJ4sPL>n|=83 zxnf#mwWlO_!u-Mj1AU-&xSYl*>uiq(07gy^=7>y!>4&~n>KPQBq}_J59w_?)xgqf? z#9km*)R1KhfsxcB%-81qKiRwvTz-mU_55P|Wi+uzUNmO07uRlIHjH=kI0|mUj$?d% zM9!~un0*RUrk=pOAE$o=LYSR7tx_p44L0OvEi>1$R*hQ7rYPpAnUat)X>s_{=(rQ; zz?CAH%K6e(ECOH2)H9Rv{9)F?H-Hl{*d!VpfapVHq#e*ibtDr#7aG=NU`M2?UJeIr2l&F<`w*D>HbT@X-XR~H|bMf`Q!blpMUh{dSRF_Eu z{513N@cm9>pxCVyl1&|isNSDz`nyDqdhWCnPwO5f$y8$Ec?eVko@G<1PmHtNq=UJ6 z`r3hBEwx-twub?3_|d$-^G0Q;;ESaQ0tY5z*sz}wVDKB1*gS3jOElvh2LpzU(DWgf z#2Xq`$L8h{bu6JIR;5GP#1f|r6=)}U+_FD8F6cyd*?XyFPo@Pvh#u5>YsTw0>ljri zrq?|?E%t|x$%bFx)eoJ>nuwAyXDUmsD|5D;qO=a#!xJRd9=SJ2=iIQHc@B6fM+Yqg zn!k;Z4s>dbWD$&1S{`ka&L2q$`*-)A5S1y*-G7_?AP;UB z^~$CeGcQ+{iLxqg*o>G@Z&bz)CVj~mKif>6_8~X9{ONbApURi3;Z`O&c2b=ndCFdz zDi+WtcSsu}!*^V-g^pV_XTh{^QWa`>Wd-q_P>AOEOqq{g)GZ7TJ(h;4t~;7F?Hf0o z%BW6uhOBGaI99Z+v>yw-rH$QfYS{=3olIbT>ws%A3QxPTry-8p#`98K%Oh_h8exat zm3sS%guXI<_M1v4T>qCD99GOf@Z7S2Cd|;mtx9Kpkl#%gq|6}_fCPxp0xbtY<3gJq^q$l?yo#Dm2K*Hqn%u*PhT^EVi=mvcRaOP z^?nGCIB7*&eR%(S)BW?j+=Q-_;t@q9->0HMkvkFBW?=C!jz8BDbGe-#1lsw_>!&SJ zI*V)^Zzkq8{|e&!TYY%HN=KfrqNKS^k~VG8zM3nKYOx!*BJKIsLTOOGl(u5jHOu+r zs>kACS}Vw-O_@#;4@#0UL3}PI=0KrRJAvq6qxQ$X>`6vr49j8A>7O9GXfBJVe?2lb z>a*@Yw;vyG$#6&+l6=y}I4_n!D>fwtxgHf;wP&$i>U(nSA|LP43Volv2HDRiUToOc7;9}Vy0eqjE#e?nW zbq#Tyjc~gr*sOMIG$A&ggTIb9jYv0*dUolcABX(;*Q7}MJ}lF~)PrGyn`8+2z(@X* zILwQ%@p4MS+2->36)@kGsmU@OI=CLw#I<(wnq202lMp@=`2XMFkcg5&nc=w ztWBllwH}}$2E7d`R!gx2Og@Yt|G$WW0)wa6WWNRyQ?0?UOS5EZ4CV9OxtM9|l3xP^ zlpF5tXM+R(VZ$Ey@VK=9w9m3=qM9}>C;E>Q%3*RZdwt^{h7|Di^&|0CmKy8nn?CiD-A7C1egn# z?L}G78QJP76U`i5J*_d0^M`mGe5#7*hJ3TkJX^?E{+DrD!66ne{;Uw~3H*NLZf?|f z8S1A1R{8#vivU4y`}f8F&|z@+EcU1*;bj|xQRDsD!`4GWVW26JXouDj-w1@}576=? zTSm>0VH^4F-n}O`bz3l~$HhUjk%+~oa^t6$)D_AdE3wB!Z|kkOh_Kp+5zmv!Qj>IJ2{iiV4KyFfD?G|&xHYR>7LN}~*_B%Y@?BPA4P%*A^;(w#`#;I31r?F|aTF@r z)k!AJ8dKW9eWF-*`Z^jD59~AGIf0#SPQ)Tk-^NvK8IzAP_9l zB%NW<PWmQHoCL7xv{vB$bHVEM8dmnI%S<#C*MKskI859e6xr4yBnN>kf&M{cvO+N{V*geBF6f| zOcj8cVE78d3Xb@s0#_F_YFi15B?XankuaI3vr39m|$i*P2&} z*qxt2&z=?HjcWCET<+^*8Q^vGBqrg=uMw5ua0WvK-r% zsN~^&)cJ7Udl2qh;*j3F9;tpgMx+0apODiJVPTQ%BgQ}wyXiesE41^$ews}jPEbqO z$nPo**3}j6ELEc?j>)fyCQGqpV3tLUOtY0QsH8?}^_tOO1=XP5@RXu5}H0y}^=z-B*9fJx; zg2k^>VV^KcXtoZ)4te8-Yo~@!sfK?Udx_nD;=Kq3O1H#I=A*4|UM?iDSyVfynjxt^4| zJPyiw0_mLf7uGM0BHO_c$ms?H(_#F@L?}jcv>NcYcyr80l*_vVW{j_pj$;%684S_O z_?Y?^v|OSfTXp>tJ+^G1II~$~d<{Qfybue+je%`peVbPp*koa-EAgo$U#fjQl2X}P zc*ti({jUmG#$rF5RPvp0!X~XhC22qXo$$O(&*6Qive<|KvZFSsjGU+ag& zN%I}pwTlXRHw>a%n+hB&ffl;xtBs6}R)@d|)}xN5vY-3>eW0`>o}dm9mW+)Mor~`S z^(m7atMZ{*Ca_U-o))E3kIkZLOC^;=EC};`o_D_rJ?UNa_KI*?e&zG46bY!7^Zfk7 zmBPduL)Y>%x0z}#@m_t!F2@V}mLfZs;ErJ)X?w@Cc zOHIBuATi21|1ZZ+hkNH}?LYqh&c-#D96TE^?aID&`<^|!o0)neH{nWE)V}*=a=3Yw z=eQQBO(7k`s9eeVAnT3aPH=R;HopKlA;;Cp1 zG`0}RKhkTvbKI0U_^VXYqs@s>2bYARf=kMX;%WQmZvRi(<{(=a#_HVUK0 zIb9-_ozBr(XdB6vLG0?A72{>)Mv0mA4mWbur+!~P;VORE2)6y_KOv(F|M$_Wh9@}~ zO!Px!>C7KTanBHUYc(S8)@smGty{~<)sLt2msjI}5`Y7s zUzd(u;zm`i9CHBkr5w>tVXytH0|$C@rVzDLcKln$Q(e|;pYB-13iNto+mtB{_Ny1+usJ;_kd)HN^wxK|lza zc*YYqyE0cjxK5qDp^5?#2(V?^+1}d@u5I_-grG1H3Dm~e84B!PT8a(c#tJv)!&5~U z$QqM_GI+NwEkzGRtv6)3V?$zbiF^oh2+|iN2ex?+(1Kt-r{{lF5ct9rfG>-x!#nis zt6S&1b@kiTPJ1!h_uKGYYaB6JAPX3*=Y|1A*lLk6L)oT6m$)A?W7FLp;S*NDN7)XY=kJ z4c0A6tUgAz9Qh8k4OX-zRy?^*Je_W|jb1M+PhpUf}DWAO}z z3*W&~R_^>QZ-xCEoU`sOghx>=OUbkPglV@j%iP#yb6g6H7#{*hF(1>O;3ZjNM5-nc zpb@OtsJ{JsJ}x6U6WOHVEOI;=% z>hdvXJibm;g%4xx`M{qdu+;IIm*Zc(5yugd)f{04<0ZYksxK2ooMvcgL;0(~7oLjP z3guW?2Rm8x65umyW)TZWYcV0er(UZvwQG$xRn_DZ-3$ztx!31g0XK~<0w;-cQ?0NA z+lERhb_<=$W}Lm>u;DLrVzs#^SecM<-a*Kl!|c-Cx+P!%=Yv6m<|`*Sy~9aT23~GU zw6A{jEVV4%q*Pm|_Zthw6e|?p>3kiahJ_S;UGYaKgvIo8BoIR3e1CIwfAAB}d+=sL zG5kF2tm7=WoPP>wtdh`DA#i7|jn|8_>f2OmjPtfR9(UW@&*}f!Jbm#=c|E%sG|8Uf zdy09k$+pOLl>qmX4N?&`@Li=mT@4{c1M<9Hf8Qyid;#y62+O~%PVEA4eD0E^k3tIM z2#Ylx8SLevWojOG1*xSK#3YPGC22l1L21S0+Sw5P&^H?PF)pw4fXo~5UVjpH_%J}a zKkczoU3mNqw@4_E&8xfUvM;;6xm0{DCPpKE@jqv&)tiGma4aP_295yMl=HSZXAF7W zdM_6y7(LNEZn02CC3q-N%t7Z6g=+S6F!^MIHI$rOLgFVDIV#N!lvRH-H3|8r(UZJD zas++i>EN3XMcP1NdMexY?vHjIfP_T?Qs{l@Em{8_57e(p8U5~ zQjc@5efDTWQUp{tqmc(S*k90YCe<_+`!e6*FM1cGjGT=2DWo!-5RTPLCEHTgjU=lG zkcUs#+)7^FBD{!=OFu;1O*b@>ojIrnNYAGwGR~Ho>sOe2UcGjoZl9;t-!BI)EH51_ z|1DZx64TTV*w>4A652GJUa}0bE}8f{OspY6JMZb*zIzs#l|1w86TkGLBr~*%Ku8nx ztZ}#Um|-#?`(yZ1XgtgXgD62)u~ubn0sRviU3et*zoX zyynEziSvDs0=ApA`u@F8S+W3LmLzcKd;^%F{@*zC?-6>}xg2~S{t8Xx4&{hIdMA2= zG6AbG*^7!x#Ej9mlKJX8lDOQ0qh`6`<-T?I_^hUXq7zx_!CSa~acZi6wfD3z|CwDa z-)L-p!gGFSxiYMN@G4MD+cAQ+4j}Ak5QuXi_z+@gOIC@}=>e|xUTKJ1D3C5niN5%|aKqK=V73AH0a^ZGM}nvz_#2Xg(;C)q;<#=z4s z2?g)_vAha?%?+&f>#=x;UIYQqP*C;Vtlb8zII5hT#fUa3830e6+v1xG;LFuuVsOM2)h6fLqsIZU_vCHB#c>yy@a&MMVuBbzojXTb5?GV>NFDA;flf}{_RRJKzo8H=(XL~;i0-#^*Z)0K+i6r_x}i0%1$ldq_%~UKsX>!e2aUMD zbS63YweK^P!WGMaB%_>tb(|GYZ8^i~_(_`Zpx`?8@Q~qgM>>8zoLiC^1suv`DtzieiddShp!-&4$|}Csh;0zG7-)M zK`$hlM3B7NUqTvAu!vzJUm&DaLmQqj{R&18db z0_u#gOwKS=jO-GQR9WCnqM9_~${J9E$OP2jowbkO{%WbYo-2rDervKR8fY%nG&as? z5BRZ|3E*Ulc^+S1on()BRvHKRB$A){e2rl-MMC_wmqhvX_z7a3xtMPPgFj~`B? zcuO+UCyhaM1tk#*y@U<3u8`x}Z~ygj>51%{q#&1NU~sL$`YYLRB()vE)_T2(v$v5J zucop^SQIY!uIetDPyg*9d!-Znb_9Q(y=;Fm*XTj%vc`JV-GRQjZ2orceA3jU;cUrl z)izYU&$yl>yF!@GzPZ8o%#^OO*=BKi1kQ*GyJvf7apG9S+uakvhF_;Yysx&V+I6lY z`r;n5g_WbZgNsU9$m5ITcf0ILOdpKBfXoMl&zDd~QgI^YF^Sw+g0I_hg<+EtDzN%$ z;YG!{Nh^3O>IURox)HvK*&(SkCWl(vlU4{%$A-b8*~CovtSBYQJ>P<+B`hYz-gT&089I+$ zQ4}gyE{GvZ+6a(AqCI*4yWPQ78|hLk#0@;elwhdS-e~ezLIuRw2IScKa8`{;(-@Ff z%?!7Wep%5_Ytwdr6*xZPtvlUz??nv`1@WNHlFd{LG{Xh zy)G6umvT_ruZjqIBE$*&`!T%B$y3DUwM-?Bw0ZtzbFF!XX=f7m9Fc%YUZ2j^1L6$o z4>`lOF@@?;#?Vmy)WZb6L`hD}8Sy{l>WsVQQHrQNvboT zd>^Dqm{-H#|y&2HXByU_u$_*49^}m^ENNR#zR(QC~M5u z!}5;b{E}v9r6*(NdH8FZSz4;O*a4jUya4`=@0?w=mM#^Fexz9a!NBrb$KI0pr^hsKbH*4huK7sVJQ zUSv9|m?tsa%M{P2-Y1#9I{YNoKD`;k3#Z1BEoI3t&z?}MNQkUbNhcgw*_VEs6l^_`_kWgR*p#{bmBuam7j3<@sf51oh--7%9s}&a0 z?!X11ysL;ymku2Rz))ql1bE4AudW3UKv2+{L~i*W4&@ys=REkU0f$Xe2n0C`oM4beJ+zHdZf%@&AgG(>J(dp(tKr;=MDsi@>e zu9To#uSd%2wQ@(#MJm95$rzh`LOtXdz<>PT;J$YeX8?pz%SH#-q@og*qW zE{DpuY@d3*?|Cy4{xvSb+REjrd`6iqfwfj9RTbK^G>J2aiBRt)$S~NpgwHe8QOH zL}Mc|%JC~wO$Q}N$Wyu~UU)WMeBZi!Hk8VZ?F30dbGtH4N zXhb`Wn|xtNJW-Qw7;EWs!1gGXca|YCZ!BV0kH@coM1%w^3yt(UiHEr(zZSZDI#CU^ zM8D1%0k=QZfK!+xNR{pM~3yfm9=M_mWjVx*?VZbGSY<&;0?J3MKD z3^r7P_$k7`GNAum`2S&?{+|QjSrKc9AcaOHsgNM@BO#WAjC}VJ*)v{IFb>M@``3xi zU?hwrTr7!NV~R{4A6TFV@DReBm>Xs!|qnVDhs`1n_=^n`g1v(S0~= zx=`M1dT`MK&AcIu{kfiJYoWdzmu z`I6df2VpXn@k<+6{~ZtNc7!P5_Q7btHhANw{}Szaq-`&Mnvy1?13 z#E*c?&1V4N=6msk&H7B!8`iuRxV-Z)`_5%kzw-s_q@zj3x@ExgqT;!&Yx;$0wa({8 zMrbPQF~!Rcenwf20N{Rp8#I2i4C^MkpLi#0)!{{Z*X%u4t|oiZ;1J*VG_Y@!oW4^% zFMjJRg=UvdPHup(A-+~7)^Gh81#u0jif=~{hq~OxbA9B-WO5FuE_ibI+zJj!@#)O# z72xkikdh?v3}3VYG;e2)*Xb~`>=_z4_4GV(wTk%16q^;#Hk{s5fPyt8r6jFAv5o|W5t|q8=*w(8n)?&47hGVw765;rBJ-M zySuv;cXy{0mmmd-7bx!TR$PL+yL)g+hWGns*1a=#?){Ve%d?V|ePo|~_BnIglEHuV zG9pE1;g(!d&NRC%o| zwC&B+zblnR<6~vQW){>gGFBSwW%BG?P;Q)1=1*6(aHXl@7TRv%qSnDM`K?|?@8*|n zf#L5^9%$Kr;m8&lAeP#JxBmks2<2Ko<6zSw@wAyZ!$i=CVJ6W-A=R;)StRK+8x;Cn zFlq7B2UM=_`&UA8ekJG>W}3u0fwxU{uG{h(-TI4i+dAut0xry|gTU)i%!Nz8SHH{J zaeUzN!LWOgR!ba!1f+7}n9RV*I=Z()(zF*A!i~_ClW-dJGqG&+`+1%ser? z-{9GY+I4R@kmr@)848AX$U{TBVg6&y40d_}?)ET+9(+wR`0mRC3msPL9+GCMKM+le z`VR=8UD80+h2 z+&Mvdj0C{WNAHkzUr1G;KzIJCSC-$I;|p_3R`a^k`is)uqBBABx>f6ALid%h%X7Gi z^iwbiHW>kK7c0{@7H%%e3)S0vb3z%FJYnw}d1dV&x$m}OmU_zOdU^&D3f@!O+smzs z7EM6KDV7P=YL*&4Qm2@I-(^DJ$87u4n5D9pZ0cCh5jQPp0sy4jA%CWR2Rk)B8eU;N ztVla!yMhBe!zIxvl|uy8m4%wC#iFY0F}Hsp7=tjTc8|tld5skHLVsQOMpy~O@jOQ! z=%widg*g%NuA46Ou~xf*#@ElOc$#`w@s^|EhuTFA@B|OxTWtF*Grjfk)^QZ#95Wi2 zUAZkAXq~Jw@=V~zl`Tpn@fl}2mz-LRt>oY7;mdF-0lH-Mo$Oj&N@qSJ*CAnuh%g9= zZuDf*8U0X?wXiT@lG3U)hAB~9z5{O{0BsRBCMLXb8&nL;KkU?TN^Dz-6~0kBgfI?| zc&B@_M@_dT?s}gI5t%kOwAVx151MK8{tzV8OtN4&v+Q>Aq~CWe-)wi|Fg1~nr=TA8 zEq|0`$w5vvw?&`5{R=BP5Fb$UD`6rPLpisC9HVC)WP*^nDeDx()qPO4-~5Q~^(lu~ zaKY4;bD2xwjy+aa?#B;$DltAXxnFPx3IUFIShjEf)m;Bi>Er*NVgvw_EV9d>;gJxK zWD8o52nGN!PKz{d*nerZ)8Le!4<{Hlij6x}tyjE#?=JSMw+35!$krYre%=g^{v}xa=G{e+g0*rsub*&Xd8)fR;!{fQob@T-bsTp5>7h%QstW(l%1W~YYx#? z6SxzG)6gREP%kEl?#4-x7*vNfj{!}J`>2ymnWPb)oo2!$_%LxPrX3p#>z6n>*D@n)`&h(;i4A#sJ7M&Hi zGW0#fj~96|UTV1_U$3+DINLaVy(H;5%IbgISnavb^J{+BSZX%lZwW4R9=_-o;I{R0 zSiEQ*Z#8f58qPVrXt8bCv~9nt244jot)ukZ-Mr7yf%5_|k3p`rJ;A?&eJn(uz_r)M z@2_UN*k;%o<{H>@>gEY0WW3(HZwrNXPPv5W6t zBdmExZeT*Fus?sV$x!zYc*)Y@;oa6*ps;V{1$1!#p6dq#I| z-+M#PtgR`CZ~l-G{ggfNjeUHCgwZ`4wG&Kk3IC%2Dz%M;L47mIhK%oPZR^zO}>tcpxSek_5vYfACKc)IVwkX0(+pYJZry7L19T2)Z#iAz3yHVU{y{B`%s`iB8;W?$!HTQtlS5XIJL*jh*{t5L`eLUg}qBq)yb-vnI*<{~jRzFGbnU8jfU|*n+r3n(C}z7g($i za`^L3Ogy9E0zMVmb3tKY(l-#pub^Bo+jw2w+jOqjJ;b1rIWwBvpr z+`n35oOknM>ht0m*z&HjXK?Ut+2|5y72*qy0ApLX(kZB*eA0IKa$$G3z#mA;;`%u! z1%=B?Gc9|K_`?9(u>KfJiYSJO(M>tp;Md}vX?r?*c@9 zB#`YMtFSma>YC$aYV)V5u&Tb9zoqo}JawY5WU824IPF(989piTXCl0vJ)F0`*Cgl8 zpv$sh;-IIl$t#E7!9!PTe|wI+fPq^in|^28%?7W{frZ|$j$t2pX`@cBVb5vf-TUmS zN1@>Z^a*QRYdpj)j)ZSF0G1xGnakfiXUX2l+Fql4XmEZvWqt>&_*=ja*mu|;5&=K@ zAK?(fe?Ccu|D+qFAs6&{d&&Uevp2XS%a50zo@NQ~`)l>vh0XBWX60m=80&fR8*u`m z$S9mG!aFxdkm$pDDHDcw*oZH(xtWA!+evLU-rRwZ2H~fVPQH6JUqy0k1n@iSLsqBWd|_@n&0Q zLdI=c*{-xf(1wL_JXgb*N11qVzM_A%W?-|&o#M$zxIA!yU&DA#@CtnD47#fk{ zUl#^EwD8`?{H_lE@(otDICi@bV>y6Bm){CI zV_YUeMkq&k4d?F)I;6PVJ0(ed>W=^?8&ks`U1_uTn@N|w3KCyG7sndK@`a7lo-Vx2 zgu8d)5LUI%Yik6oStwR8m;168TQU?{Ul!Q$nRKZa8C1=(9F-obcq^4G5I=qfd^$q? zWP$NyjW&>K4`@+5L}TV8CN+1z+b3#~7R$tk`q%am#h89FIpN-m)CL6TZS;ZtK~pA| zB1I(4a7mJ|``b@kx$a0Lv>@Dl+la?X@e(aV?dTWz;iw4fj~T6e%wL+07MWBLh9vU*0FDgE-bIB!X#4zjKLFez%HndtG(E`}g-#{ebBY zc>H<(M*ou2!YT+EAIgKYo(*piKBZq2K5kWPc%?sg3!oWXO<%N1H0(XhkhWkr_XK*Z z!P~v1IA1n&O2aAHMN24L?1-fORovacY7p$n~HCRw+`XJ;t zQhb>Y$GKiK1~UtN%@Jx6iVcaPMM`3Xg=!ytoR5u&NNkb# z7qR>b1l}}N_A_#Sqr6A!e41;B1bj}&VJ4ocT*T+hWZ?fo^jgv(jUR#L6&Byje2wDO zD2>FT{1-k+8U~&so_K+hJ_?HRAOyPi2b9>ysFLa`?i1!PLS6R2?QFYm^f9@N>|rWA zLS%z4(5SQ5bz}`0Jz5@(dgcs*RfXP~1exPVF}9APC)xBYvi4r=&0XIaLGIsa&X~ww zFpF=P+%KE1K0uo?KCUBkS{Po4A6x_sbDn30jo*;gd}$7J`OEcWHh$8cly+kaDsTq^cYL}%ApkedWVhO1^q{fuH!BF6 z*#DBc{+nKNqB{E^Tageyc;jpe7vLMUDFhJb180@C!O*X6obv5O{HkMAsb;VR!e9Iv zAJ!!>buaZfp3J%Fa~vN?M%yj&u=-9Z=d_m0fxD<#`AZ{ksBuD?d$}OfVfa%T2sM{I zrD3SikXzWh*q@<$5nHbuWsDeYgbaCt3>8Q!sOdaH`rDbCpA%&wo49I661|rpxRXL$ z?oe`_Ar{NxftBA890#^K%wv5CUX*a~`T1(#>r<;Z7uz@tO)vdd2=zc8RH>iQW^BqJ zbwOAy*b_c?^>KRfbmFPD=%Bz-X_(bO2Arx0hrngC zQ`=m7V9I?c@DPFf>}rd%`(62BQEAnm=j3wj?^?Z_uW<7P`ohDSbdTrO(_^>5+x(p8 zcQKvVn%t>zLC=HT84fyhQe`=%O?(_;Lb5gSz@}ytUog%zn8#68)*rP~tDh(UHqk z^_Oq?eBX_hi2O&F-bK#B-qHiLB~2*nM2q>D(6`|}TO!k+pkx}T?>4#BG;S8XA0*03nSq`Gfse`fK;$BdB~gPH4ZFOE;WaZZJm z9k2P8as4WpUp%Z&55PF#g*xT;mZTh2)DL1fRe7))Uf=t|7I}{&qOc@`%+WNNr|ff6?cagWTMpb0(x(bUZI@YAyKz+zaX!)rGM)xK8eMOD*9Q_UG! zzXcy{K$Tn%Kfl7td1sConeui>uSAjrHsi=IiVmqaAB_nSp377B8i=08*h?DfhwJgm*6`I!1bA~TZtarIY0F}{Tdv2k0o)CY z=-?r|T(!_7yISE4+9EA9a3X&Nw+xZ{slFesbw#3cdpB`;G%hqZYA!5kYkp2mGX%1Z zv}fi7o){hu#(}I;l*ttN2~vL5@_b?7G;>x}Ee#HFQ-lr`%iqCzEhyN-PEp4o5e(Sf z&xlR0#=}jUU*z)gd@SSQUzD-QsrA?GP51i!=l1K?EZqaHNOQ?`oe;dr6RyyK&fDMM z6CCIR6*x^{LfvN%)dLPnt*LOW_b&x62P3CTk2(+?#fy#`Px2DZ7wbl;>{I2|$}#%s zoU%p>?$wxfE8+<2*SLn&l?7Xbj-hBL8rS6d`6yICtq~gHGHDr80?dPvsPZmBv^8z7 zuaW3~ksb%w{fO+$-#flCkHon_tFuUq4I&~Y${Jn~M_mXRx+FORB$8Pa`YL15E>PqDHOXM~)v|P40S@C70&0#{I zNIyJ`N0uDY|M>Hap-#GQ#L9hc?j7H|vbgIe+Pae#Us#hH%(o_1PJ7h3&)`h4chW!f zaS%_TJt$X-Ezn4gdXD^`1)Kka|9Hxz9$mhIr9qM-(7S84z^;9kF{2#~|4YbIs-Z+a zc7egS`Ql{uUZK`hGr-f6J=^v=tLm0>Y1qRo(`9INYk@vV?#yj9Pl(Q=Oy-oKV4tm2 znx|x!D>B^{5HOwOXj*<0ZZ@}i0KJ!Vm~_lgr4s7v-RyT%1m3O$H_8JK&=tC@#Dvar zyY==K#D2iRMT^xVjIz+I!LP(y9M-gEyjprkw>v$xspY-yxg?-rY*Y?UR{Hqx zL_$rWkO}B#K^Fo+S|yx1)DbEWIrn3DiCdhs-@$pSuhbGF7%%-nt3lT-LK(sm=?^@) z%HslVPagWG`A<&+BkxIl`Orb39S=`|o$gZz9Rb3t7ocd95N8`*SxwFP(7VQl5|u*> zlQJe&JLXYRLEMtZ_plf5DOBNylx}hd@@2oHZAXZ;!yI$Fe~<05Tcqom)!t%<;^VsI zX5&i0krk*|sTi2$;k{ATc7zV>0lU1dST}Wp+s{eD2FqKNk0-QqW=iJ(CylUnP4Zmq zi(6dtS{n=5ONqgJko^pfuL!f$k23IZpI)C{uGX7md{I%6k=mqslSWWTOqzcN|8Ze^v1~S1f%G zG@MiT<~Vg>|7_{Am(u46Kv)#q)p?FGS)dMD0K70xReTm|ExEPs7z3MIp9G&XJp*zE zMb?a7{-`{Mb*G9v);wnfUrfE(1s&?VyKgZZq(%lZkllRspD)>W%}b^Wj14AKy)|@M zaqef_imUdgD?2EJ%@LOI>z_m?V4EVzwH}UFE|X_g1FpAyb8vDt#am0 z|537QD)s=ZIWJ z;XHsTCwxq`(ijgBg07mP}uqO?mra8R^V%&hiOgmF+n0zLCJH=_YY!V<9W}~ z3|@%o!t9(3Luw^I5P9X(Nu8ZPP;K0ID>SUP>F#OYx5G?8@B9ohWz$Fv8^q$flOx=*<8JNUKW-yV(`28p7G>+XJ$ zf=&!_?CGhUfWVqoe^@)1MWOHDq%p8K1Y_R0yY%Itupi@n?HT~Fd=m+_@w?lqQUM3- z;$x@?gIX_6hD&mN0#02IZoaMI05bCeBq8$>FH0uumz%bHE~dqGzP7fGu7hD})AlURG*^{wv4_5@)nw?kD|cYS`oKs{c!G6e-ifrUrv8%e(yUQ}KK)W$KS zZ4*AO!wURd50euG=7CF$OJt%T6ph|;5cwq7PSi%TTVauGl5>RQfsHl#3u zk|7`fDCoiUGAwUjxSj)YBNX0)NFT`k_ja(WsYa5kJ7;>=|1a&O`uI&U_#987%C32; z)6THKI@>fJPpET3+){4feH`-_1?x@a$hU%9$&e@WA6Y`Hk|xyz^lGYi6iL{B(LjKf zD;gB3G#p;^Tc!{aQB0&Ck~h2Tw7NQNJGMG0PS1u*9+KgsJ)*>k0(jXRoi#3;b((?I z=H+9uO_RNLu_dw{0r^{ArBYezY`OCe@(xY3jgvzyEF|apt!!*Myxb<`-dcL$?m~=M zeCAhVc0mGVFAK-J-pPysfRCVamwG=*fH&xyE(?nkEsJX-=Q2tq2mWu(_WzP8yBB@3 zf{=_G0NcR#Bug3v)lZ@YzTX!|%Zd$C`%!GePaoAYgYY#V@|ykju1Z&=mv>#fiH7DQ zB*ygI%b+2hngpi2%Ur%`8|5;tqD4LRvoEu!bm*Ll+2{Hr>KzIbf2L)RPK-+YO0eyv z{~`OmxoPDYF2L=_Ngra6R*}|_<;*cpH=u70QbovcqS$<@g>v0oCg)-8;Qa`2ADS17 z%VO@J7lp|@V$!cm?+mD{E`r<8N5(MYein9CtCLKJ;Tg(Z9LaALm!${-)WNgF;EmAj zS1s^k{3i!Oq}6KV_eIlv3_o*l7vsyyZr~MZ>~$>4%^LnOG2Ssb2>}5C9vLX<_!ERy{zZ zyB{yYAg^tDik`bFOGj37jrs%M(&@lzoaLlLy`4vU-^|QI?&fXzDPxA-Fd$D+UO9dp z|1&Oby?+Y;P}9>BY?{b}V&l9IUS59M-=9w@nZ(7#ZE9?c2b`s)>yRn~#{2yU{-CC_ z$B8E9M|lDvAZwrqaShIgMp^^P7j^(H`UpPe6K8Bgr>>ZVR8s1o9)3x#*HXnHt0rLB z`1np}{^_+eCS5`y4}<=>$a!?G`?Jc6w#cEz^T_3Fq!*rWBL^fuhfn3{Py|QwZg(?= zXO9@{QEPrw*B#Q(Pl-Py&RW*bVk^#CDlr)kpGS_uUxUue(|q>S`-;#3W~@6&4g4rs zf4%)@f!JWurcO$S=pV9lSp6r7 zhDa(mO+vKAbu}FzTxGMHmNtXG1z0k2N3`%un;5={v!YF|yn}(@be&82c-jh&TCs_J zuFUgZ!kxax_F(rThrV%aRS-w@3n03wucV!YQ~5y|W)E545)O}&o*opPOq=_^Cqp@s znJD$(*u|4e-;&|=BI@BR5^#)A*;!QY&0|Z5C;E;MOcLyTgzLc{OAtKCYu6$ zVhu_N>-c+Fqn~%OW2>=c8s|@*)T1gdFA+o^(uyTsUnt`F*d**?#?z3z_J98-`eT#D z^bOdt0NxS^7Eagv*cIqUW@5f2b6p8hj1M@HlUa09m`#D55xGEmRkprPNZ7vE5L@$m zzq$aetY3Lgsa`iH)xOI7YkrJ$IzxT-6`QVzgb`UMf0DD<&W)=5GcwZkij$I@kjERu z^=fAnxG_ClJILPF*eIqvkhkuKT&(kI>0=lJ@)d&7EfQu__gGHYsH>5gjdtuc024#~!R~`EpVlya(bC+HXHEaT6G<}TbzPgJ6{oG)0P z9c{oMu@6$`Na!Hz@ux~(p+7SD{nwy@mOHhrTbXwTvd4;m)t+-5=)s=baeph7L+3E} z54P2M-(J3>M5e^3!KwCG%>I{62^<}*YUQ5^u61ZdbzutQUrxI*l6O5+6t#k;zGYp6!Ulg$VS09Y?RK)a1lSwM6ur^OlU3s?SL+&JizJ$l+>DoUuq?AwwJc5SY$h z1^ZHT|MO_}t`Z&A(G`8?WSXruK5im&Tr6Gy4C?^sxRq&In8|GN1Xk_%mYnEkn7t~m zwX~PoE>E74UGq2sooP6Gh>Rd>flXIMO(m%WjPsYFwpK%EMo>2}tO_LEaeL^w|Npu} zm>v7E_UFhRC$LyO>UEc78rC@(FZ=f?Tb|*4)S!UM$B!aoYrvy3d-{1;B5;TA)SUT{ z5!QWh?}4i7T^tf19n00_OI2h`)i#qkZ>nfJop)SoO!)gNfdK;#FJoNwIPAyFM)BL{ z)$JeO^3K0+Repz5^q+7=tbE(&-fb})x2jiHCZ)1r5xdRXD+JTzp;Fff?A zt>Ia2GEY4p0*aZpFlS8nA9F}Y6P;!0C*$t(#Vl4AnSw8!+=nt@uaF`UH-G1W#oXzt zjXr~R*p|B&XF|kve%yL<-gEFy?M2{sgVnI$%p=HdXzyd;<8uj(6sfS+@%cfl-r%4m zT0AiD9acXl$j{Hqa`4jY8&jCBvIVr0^1!zLT%xgFVO7fIjH}F2NLSn3=K7(Hlbe@k zYlI)EIcx>dLb8{IlEC4-tzf&WbdBuZY(lkN#F7U!`d;a<6T`wW_msWOE zkd^`iy*m+_E;c)kH|Z#K4$d&dn~zUpRaIeUC;MC$%&*)aHWn62cDG;` zm(rS=9spn~SE!qk@_Sv~4I!Zni&49}w)V`-O5sA5^`TDMk_#dI@Dw#t%<@}*-+#m> z1dbmY8mVdQa=viTyL?c(WDM4chqMB;t7*KzpC!fqhl=@DkmyN~K~15f6wqDudZfst zzmLvnA$UP0lC!(M<)*8&cth@@FVg=Zk5I9@oL^tityn#Vc3HR{H4A%tDR(oy{WdeF7t(;(|Ih9@bsUsQI7O+=Bkb3Nmn}VCGl$&apyy;@o=& zx_3|3?1S`2FPh{z6`>8GD&0kb+|s>Oc-XI)<&6Q?k65QDt|?6g)*#c+{TkRI{wseXH~;o<;KKR!Si(bC-~6CqK>lZ`-A3{ ze)GpYtONPGgtwVz#`hGu)i_(v)%j2E@^hMg4HvSp&mJA$tS#Ed+70b=C)Jrroa-)t zi{1XUkocd~=>@Bsil?aUyxD5zcJCaT&nPI}08b#_f)hu4f+UG#B zgSk#WUDsLOE>qF&;}Si4G0zzb>hjo~g4WOiL%;mY^1oP0#k^52E% z<7!67zt1y049?$@Q;OG}7WY2=BChBBi5Z2>JfckB(G`IgLIVwh#D;h+h`HEdUv=i} zA@J0oO->O|{vr8V%n`wj)lLg3&ava|NW=LSc&-#UYhE}bLa^x%u-g)nn0Z9K=qVA| z-ONpVV;xJ%ym zP$>5^#>HJN=OA?EXB#{pf}v417P>vX!{g5bv+}eQ2NFo^%yMK%ZI;{OKT zgQ}C~gNl(6#HK~xsn^q$==bwh8r~fxQL@n=Cl?>j-AaAD?#RFh*1f*2zLkMJ%|mqd z=Wc&h8QpkA_ayD+bSqldU#Xj~ay_-qi2m%gILhqTYKhUZyK|0vRN#w&Mvpv8cI*nB zp5raxGd4QMvbhJxLTA_zR>T!#mBBI9kZIezCc1#$;l8G$thu_|;2BDXu%%!dEL0AD zu8k>qQy>Rb_>Z)_Q|2woJaP(mcN~@((N3LD1X2GrwGOadKRKMRQyN|_a2o0or(Q>p z$0SrUg&Uzr2o33y^O7up&_YMS4aAJV{u;zOfz}T%YXb6cB+nsO z@H9874=x`=Po>HmYS86r-3pH9Y2Zp%{)z-x@AQwLkxw08x7VrWm3&ez15bN}Qo`&_ z(Rde*3~>{}8QNFR!$v>QjumLsYi>~3eX_PlR7iufJGn?-fg$f@|L4O+V-mjkt4Z7i zxIceV$a;;nkudUTeVobc*McghMKtgKejZQd1fs34hoXf(!WR|Whm%B#W$g5dVY$eP zA64th*?f{$A9r`Xs402~axwgzTO>3isFmN49#?aaP?>#YFk+JxQ^7U7WPnXn^%a;V zQ8lEI6VW-75rHIAwPIXq+&L|fs$YmQN{Be3{d`o~kKFk6V0G?(HFJjV0;X#_R5`}n zHq+XscN#NGACpxUHF-m{_|L=#!GtLe?SctK78PuMgz>RQLIp4<`-PQE$=xLj6-|Pz zOY^au4wun~z{D>4$2Qar`GK#|6e_~2_&JV)!}R1hEA5Fc;t^cR^9H_51R7y^KVI}$ z+d#U?yB^WQHv|aUE$Mx-7%Vy%-oQK8uaW`lhBv`#Y9g>Kpz>O^<(D8 zzT_@4CW)wKMEZ@F4R#`GXgyB!9wmYe+4LCiUW=#$_`75@Has9oP}Kv34ICHz_*z|I z6m_z96n*iSj8U?Qy6Ejf6Spyev)n?$)mP`IRh5-(nW_G711BFG>GAKU>!^{$=_t?e zhzm3nfTGB6S1y5;>in``(-8~KDd2>_g>r27DIiXL%_`9k9uDyaae)e>7*Akoi zI1()Jn0DT1Y~o`f@FrOEM!9EaH}bYbNHc5dtvN_9`Yi8kdOs}m9P7N?(LH1I_=m`2XzTRT0*6QW2#nyo3A{IQib`-7TTrtm+wr9z$)Q_p% zVqV01UPJ{)w=|ZChuk5jO|a3hv~G#ONb993yDwwTv6vcIJpb{?u&-640kwl}opWy0 zOW8%4EVGrk3Dr3^zoW;vFZsW{bnI_#4S01X&psUHFYdcJ0-s`nqV+)6KF@eqlh^&v zBD;QYiH$6_5(Ec4YQIwLBWR3Yzx;o8EB_xR=m|mWuKC%_0!daD_Zb4{dJL)AV*vH6 zz`=B~(pZ$aVvHt3V8$pTThZt#N6qcgWM3UcQz__pPYNAP7_Nctukux;*b{U9RH=+qHg%=V^c-4T zTs7mreW5wa2bKlLj64e4Z=|fcRtInv8b#SR=9H3bmdkyCo zJdBJ@{z{wK74!Bh*=w}4u=ZLS8Yo^kDqqU3d5CL_pjpggv|%m3vOmuu$i^;#rx;O% zN1RAQjz%q`bW_!!GfhCCc`?^?5z0Jgn~K~x44+7xWh;2GX81`3#qy^W(+%siSd&8b zr>YCZBO6(B@1bOyOAVvj!hCgPWLWU*DI_n|cx&|0Fm11nV$T12KBS;LM9LE!oB4*{ z{KRB)*Iu>guNHr$Ua@t7cQt64i-NrL?tglkC+!S24^WiUQUEWDh5@;m5YhFpKkLC` zQi_)e6F_keM(sjJNvXF&dqIC#0+OKizLEc76F{8sLu8+ol-+QV#$-R#h8>a#AI1J@ zON@Ei;0TT~dy4{3C_4TaawEV-{9Q--yP~%{LAM=c;Dy6f&5BZjJCg0272`}KWc{*C|)H@yF|lVMNaQdnx<))25SKmYadD!zlj$T)FJ+dyD(ZjUGr zH^)h8p#--B)6>jOrgHt~n5IS)7BpPO44m}=xmb}?YAX~rMcOyDZ{a`9#IgRpbbn&d z#4Rm7FUk-aY}LDIwj^ST(6?&!ih^+~vSO+vtQs82RbNI|TVBV8qBIrixqJVErd04k z#@A$K=B+t5zVkfgH2EB_bNFHZeQA>F0vY>F2g|~|mGRl9{CwnK=LYHl$G{5Djz=2yEk^VP@A{WpUKWBlzixj!-_|VA3Dr{FSTiPH z8YI0b0PaeDpqQ*UBgNVAC(otm^K7y)Da%PFYSPEbrrtMTnT~OC{1MX%8&mw)NS|*h z4N4{&iVDg^MD~i7O-vNll*r54h>RLLFOaeDI#e%y-(JbIb$i4*OMuKPP4lU-3i5U0A>U>YkI-avxv*8gltf=lj}ncua0i2Jpq`vgl!M4pQnG(arW#53+E%|3#2w7ZR(w`dvm}UX z{B)KWw*~j5JAlpG!0de`IrQghSta_3*~XncZP*&f|HE+R2g*>GJHii+4k|YR<#bP@ z@(Z97IV&kHOUtS;BiXt~*#<}P%|gRs6Mp$StM-*b#Z;}=BU(H_dAWqNKmm@uw;1q! z6PYK=8n}6$+qM-b5Azy1583x&l_f+4rCj_g^s44p_!c#A<9Rog>9gju(s9x|q`9}>g%2N#nC(iz4D z@7|{V^40dq=%=XsGMu^un6lv(Fg8KnB1jE^Qp^{gfkg3Xrsk7R}nE$X4_6&%$7Q)r`F|ipm!Qg=# z_BLW7bvkMIE=8p}TRX!3cGqR~B)oj>&z5oX;U*J?wU(ngqhg{Y;USH(`z-PwkUd*S z+;3Tym2WtC2TZpbvLNP{ea^T=8hQ%5Rk^dy%FXrS&vEwj$O3+e*^Mme7^$x$-~GV! zjLDUNFXd8DvUm7g?}gWtt;k_^)|c5x9^x0!SwlYgBYA@SmeGq@U`WCo@w7=HxV)w= z^8Sh;=HCJNf5OK9K=|aExZWCTxeYF6R8pmUL7+YXfrquh5W3;%4gbQ^`sHn;xEuLa z=KFfJ;#EUx&C$caf-)`Va&lI-HPfCy%IiP(b_w^_Fi=FxA;#szm4N1IaGe!>moI0R zrC^umt@ypHq%y$7EOvPCCH1I0(A=)2gfr*sDU%Z+8DWdc3Vfsi*5|(y5p@%zBF^1& zLe_ABcaQEFn!W$XYh!e+8AsHWqF`#_lA!WKLPbNMLMbSRdC!@=(@lOWB9Zg9biVgq z5%mYnZu{$WJ(6nItTA?_rTVingY@)I8~#psyJk%NW50qwFmBQEVQqY3D!VZ@yD?P1 ztZN*2-I9Or(ZPFan01`O%e!vT9!O~A=d#s=WkI%}VSI^0LY^NksLA-km`PukYho1? zHL_}67nOVFx|d}uQvA$82RZJUUs^iEMUeTj#{bH|F+K!rHi~N)ag6=-ms2uJQ|fuD`eq zi1s~$F=fK;U_dF6o_fSvzy80nfkP?@jn>BRFAjdz*GS_EJ8eDs=}!#{NFsVzkUzr* z*5bF?5Yvx10Wx#H3sqC21RapS+ZA3ZwnP$@@peD88 zur@3n8h1>?Zw>zVU+CE7KARh3`_8ok+{HxeVlJGf`M##!2^5~meBhL)h^r>HsXC_e zw%ulfM5l$d;w)fLHz0?(yAN-TGqBvxCs^(=;m2fcXYQZu?&<8!Dn22En3pMS^x>tr zFZwdccL;x*D+RP)CaTwETJVJkj30*IwaDn~(My`OIOE$%3aI4Z#)-7P;sDw5rEdXP zVDrP*T5ms&X9U=b^8NpYlkkeFyt%o#bL&n-@bjPN32WiP;J1JH-7aTUEkTbRTkk;U zpav^oCWrN;rluw;8X6Fz)E7fJifP1Z%24m`Rxz%+qo@di1{@d}EXUB%~t02K% zmQ(v^b_IsTB(P)_;h~5%@Wf#2Wf3FzssAX~pM{N$?aP*A{AP+RkUrn7W)W2x{eJs(b!nN!2AG@8BlAq)5h0yqdB0afbja zc>^b#qqf22+Vtc)Md^KtH zNlqr`1i6?rI|YLRZpK#hN%`7(!wspV=C$Wdutje>k=$V-TZW^cMPmr1CZ#B4awUB- znv!S1*zYn~NOjoMQn-j={mrG|))l^AV8?*HUigxF#ndc6#4&g?N)JL`nT_G5tT?x|f=vx}+q3~Fn42uLv4Vy4jmYxt0kY{=n!qJNM7lymb6&N6 zHy7w6WV}Z=#bxU@7VALi+O7Um&4C5-|Nr}5>k8Wxn5_` zkVFg!-65xcUzdu7_fx^TqK7C39|NmYlBhZ>O;iuS7><*TjzxO+SFKUn@p@!7DqMS6 z5xg}YU1`-JRZ883C~!35=ZvP5f4_;$e>*;L(LrQ60*glssoCa=IX;5W4HT%@lYHxk z;yaZS5(fYGji1RYd;Dv>Z5%!097DIKWxJk73;_k@Ek;g4`fQlC8F9`YhNqY;^8j*| zs}+s)rmk8Z&K?oY5;~d&ckiI7=-d3*#kzs^==q_Oe!dN1>k4pt&vkUvZe&ZUa8t$8 zl|RZqR^57rmm%p5mh^#a4l6K)I9t)cU0`)5uz`w5Y~t;Eov37%=a2uYm!BmizQzLp zc_3+FhdbDf01&WcE9kXhO4vYK`x7N+q3vc>Q6YWIv%?Z^VoS?oFCp& z*!a1x7Z2wwGK#?Kq<@p7CsokVz%y2Ezd_EYp~b6FJ3tv3!)5j*fx7^lR^pDKK zIinmtIr(#BDq#=|8YuKD<^&@f9Bg^1DxT$9;!Xp~y@CEwPa}(|ZO+y%a$b12F^W46)7ZUX_E}x!$X5saBvPc*LQji zea?dsP*cGCtmdmt_a`5Z0JHCEYUUcC>yfABU-mBYr#b4MN)E8HEZiAmz<&|VWs}Ow z7*an=B#JU!%j9Pov*%M$I1$Dk=88#6qs>T48bWpS-H*w<{9K5Ga4^n}NXzxAmRL#Q z+MLpJ0C;E^9|#;*;|*R0-`dN})AhR^@C92=W}Suhu1v_@V;8>l7?VGW`#dDX0+CWR zq#Q5P)Oe3+xWi+9U+g?`&$l(3=(~$mJ}W8&pqkU&$}ION+$!!`%?1u`v-@D3vP)WnEPj= z47|(-(X_0c_}vU(Pk%F? ze5icm@ITqRof>YZ_)EZcgT*34mHj0gC#|n{f0fHxVJU~%B)Hj5Az<$^?$Vr= zdglIN+~{_2sBA6`EMY0s5$oTAcNc!>0dLuOHF6=W$?h}Bj;F(uy1Fa);Vq86)p{s- z074iGYUw(Tu4x^I!DzOLkFSy(PIivDMx@TprA`=EyMQO}s1JRP>Kl zV(P{(#H9fN`A)Z@->)Xut7|6`w&NbAClapDCnXLf)X$H284Krpi``6R^yh|t z@&jV;D+-AM_OirTTCy1~#vSt<2yvuI%Kw_dCs+JmY`s-joI$fLio0uY3GPnNK?4ML zcMBdMxC|ED-CYNFcXtWy5L|-?n>qYzoqc4lUH9M3JkwpTRdq0n!sTe!^g9CMiT4D6 zX))kNH8c~7Hv%5~9fa*v2sCv5Y@HL?X4L2^ zaz{8G^738tUdnv=XYG>BxpqXcI6mW?Y&SGpm@Q%c&^j{bgKUyzDO5d|AX^6P>&dk@ zi4r_7s)_dlX!@XL3@QR8-MtMlbTn(DBWjXmoH3(JDR&LO$E_&tTCX;S-G249PCz}(&4Uft|dST&uo1WLXS%2Zvn3uDV@t}8&oEvE95KMCXTz@tMk zeFor^I*R3RIag{dYEN?j@j%GoUo;Y=fu!Wi;!NCuq=<_ zdf>3+1KRKe?SpA!lB~G}KXwYei?IA@CD|v}!GHMkA*jd5Y~BS{WW{M3uzV^fQR$@H zOBcIf!spPZJnX*S&cGup5?R9+8M*kxP|s=S3Z7M%HgcazJH`7uR=mJV)AHDP=0kR> z89d6ykC+G2Yp*;(?yU-2HUOVSIX`vdy^gJi9P^df3mW+`Su^ww&zq~mMM^8sEIUSL z_A`HK%>7yV_L=&7i)CW^8!QbHUdVk6$mmqW`io1rmwF>_(cg?l? zM4fEQhHMlzXReViSEd!P=_XZ>o$wdVDGItm(@4rBU*ud~;D4W(Y-MDM?zg*8^Z)e7 zIFZNIzkfMG{^sa27=XQ;rkv0p+h_f*Vuh~0xL>4a^ulEzy_1(k{r6e@e~D|hGHQq| z(-K?&K6L&zGGnLJ#ot4B$e&a|=#gj-yL-- z^oy~}Xo6umAVY~er~b-2N7vbxh<)uj`Efyv{XZ`;5jYz&tt^LMwVH3F$BmbxgUjn>m7M6P> zjorqk)u$Pk9fqFVfW9fB9d3b}zK_?<;xL#{b6v;xUR5th%qYgpc zZV(&d4(!GKAhciw=P4x&;v(KCFQ=b_T5 zhQi0c6fIqpR(NI&r*1GM@pAUrJ(lAc(WEt+eyi9|M~;nX)qT0a+hZG-gdNbvcLc^y z0C?R@xstHI_Gr1hsp-qz-KXnkrIw@CJtR&qmOjx!<|+^J)=*I=mrMz{kri zELY5c|9bLRG4S}1XS-`0LyF*fAr zwEX2}W%6~-si(7&09b~Dln+5(4|7}fm)Wb0dYeYf64pprOI*3WzNSl;F3G%G8b96+bfHFzm2DDCyRcfZ@e`RNP_!n@I0wbT6Cmy2r? zczk9o0s#M{0sG+SW|feY(|P&T%_7@#@lD}M3PI~EtspU>XjmfY?4$I-zp`(D9G`hTr#b&rV?tzKL@m#W6w{u#`KUui+S- zaO28;R_$a#%66NKedreBan(29A8rd2d`E8%*29mhvDw}m`DBWbL)Ei!VEfRxva{o&Dn|R7 zaL$;oZ+IJSI=#_QQum6LGX_sJwm-i>3OzK*GuP(rONBmZ2Z)xI5Z_`h?r_zCXFvi8 zd>Bm~oQx&TZ{JOobzJV&8<*XVZC7OY>=o>HvH(A8MhI3oau&FVi~-(-4Nl6Y$1R(& z`O%Li@7=tu9@=|zdlM0;53yrzycY^-g9Pw|vx}7y(2kASuAD+w? zUH`34nFLTExf=Enu;^fskW3~4|36;Jf8ZkIKn1-q>vCuhVWBO$@+G7wW2@4*^6l<% zV8?OlMbcy@3j0?NJxf^QE7wNxBA@op%ai)s+^t`R;sTfbYdNL@TN|!EkNEBsY^Sj` zB#PHRi<{PF^bs(Rn&Ay?4RCD?y$Y<{eikX4y`B$CRP{rkN6`6F{)9Acu zP$8-s1a5_i8GT7{4O94wX|o)@>4Q)ap}gqx8O^^}7FoqV!-UVYuoYUd#XI=A6jwLb zFhJhgxj#0Rkdt(;yj1C2KP2Wo$?N+X8J<&s(_)T+WE!`|`eA8bzwh`dcD{x@nxP07 z#W9WU29Ushwu5gVu$O`d6{18kO@L@%r9)-ERw-s7#Yj}8>j%X!?sq3`mzKjNAO%KK zo~!bHhH#8d@c`3}O)kW^3GI}?2~ICNA9|`X9w-71qM{y`!B;!rvXp0O~0_qhCRy{a;blfOrWdG zWHP6$yOfAeh#lzoOeI!FvOt9hy7)<-s&o};YuMBMPp&sQY^7|om+9HsPMzZKn1Np( zu_4F0FcLypz4|uWYB=pZyV~BK#0IXT(UG1I(_at#vf3s5rh&lYTt%X zryB}0beI=sUJ(G3!m)y&Zf_9zz#nCVSVbJ4NL>1KeDD2rxmrNG_0~Se`lq^1CU{xE zx891nayoZG*sBEu1e%V{bj8M3#pYMl?87S50rV$lBCia{de{J%+A zvFp}ho`7T5%}6cq{k)>0Vr+MP@aT3HF$%1AZ+fv>|EK#9^5gmcFK33`*#xS9aF`TO z%r-)jwE*p`HP6pv(#m0n0D|<_vP)@lnabAD)?7yN@e3^W=G9p}1PlU?3zieKnM<_k z%k|8S#?Jg}+2>ua^B)F-{|;L!+Fs^A|H{#4UwIx~s_8K?Br&{Bnj_Ag_vsf@U0`=t zU~(6Shiafx)E;0yF|f z5DO`>S%F>7zt;Z8%5qUP>u6+!u48c3ST|=U9{5yfc1>&P z@1f=N=ID14r~e49d0%7}$>^jbW{-d+uHXUUp2GU8Jwi5m>LvBNNOsyOL_L)Z z6ACU`nbx|$k5#N$q+S-86jCD`-5&!|KiF+ZPP!1Jgqn6trIr(3ry!n&!()n zEG^AOLvb15B>{Iy^h0l6(vwjt)}B$tqbV1Z(cc}+6#_1Q+dAjH+7JIwami9v_ly~?iiivN385f9rN!jdG}AUm zAfrD@uH}dyPim1(`3Ukncm!s|{Yn$8(pKZSgVzHba==8z=?I~wTGz2{{}#s zl{zdJogx1R-nA%et%~R%p_}%uuov*ecy1oJ7KeBYrlNtAyr+oIv&y(4uxlw>xuYN} zCXG(|xF0v$Po5*qoMTL$ujQ^Z_I}@uc4Mg@PF)nvSmbf9X>juJE&~4iWnFCf@SKTW zuh?H}drbnun^kemx6g*{qu#V@j{T*4O!m)LY!jeok$Yb__DIcm8#ZUo*GLy!R zt&DH6K<~G`%`1XZ*8=g2`sC5I7W}pix}F|x+hT*4jdb6KJ&;IOOFQi^Z_CHV`edwj z)Yvvv8 z*mO|Ne*5dg2NXoiTnH$1Qw1si=r--)Ut8z$o{5u{3B}W`eDFMY}m>U84#!w|Se}S6Gt@ORbSLXUe61 z)$^X{H!uQ=TT){gBW{KkJ0ov4g%M`j07}sT*-$m>Lz=r`S(d;!OS44Ngu<8Bymvs) z<|5Vp5vAC@Dcnq7<|MDS(SiEmJLz>7*#+U8VG`cc@G6uxt?m<-&8)i1=UhID3Qh9DKx6^Z=mxntH-2QmqF~2HI@*DY@*11p1jfA6} z*W_-zB2+SU^x91D%SJGWYAGCQAURV2!0p$Y{t}$vPgQ(x2s!usFRNWtvt4z**^w0BWw;JdOP+xh|)mF=sHgZ>@^72!@T{BnHjhEUqYjh$CYpEmSX$=L0_!+ zS{}MCLz)H(`<$q6B%<>e4}3B2Z=ZE!H}dG>qb}iZFyrcR6fBv>Hstp%FSe6$l=pP> z`QfPTY4kMnmb)U4Sae4JyK`%NTAhl|QVJSNk`9vY9p~k-U8Rc}KIJ98@~(7cFHZ0ZyTzoU5n#y2BM`19|7&XSGrd;p zrDyTXQw_?_aEgBFatK=`rmhz5PoJfclBMk^TM@!#Pu7}yL$&=6W8O}#WTnBjR>;m5 z+%0;LTPhOQY;;drm+c&@P36%Vluezyh4Ldx77ObK$#k4XQC?cHTAIRUe54d^MJW)E zZ8q3$77F3 z@MPHHggVY2Ws{dT;bljQp0+;ia+{VxRsefD{MxK&z(SxBMxHL>_wBsDmY^8=r3 zurqu`F~yjSek-zVm}=QHIKs5Mg^w?H5=O$8zyq~w2p-Z|PCrV@<(xlhg9T`gS8^jh zPG7sV=D{@#n}e`Ep}J}188$sUTt;F3caUtLRLr&+%7_Bk3pfsFXh*g_$YbVIcfF0v zfS5ChHMWc4QEE!V4B>3Bf0B>f|B1{dPGCU*{sS|F@LloR!q<5+b}TXNW8~9J^WdF1 z(Z5UhT=lvtWn+PQ=Dlh*BVyS^uP(-p&?VLo(DyFq}8p9_u z(QJ89Zg#V}eA%_PQ4JT<7vT-jw7hFcdZah3k4dQsBJd*mt{p)QoqX0Fh{um1$4_K6 z#8Gx`hPJLFI-$zP&4@Bu-EBhWH}O?rLGu3CwuWAd9e{eeYEY&56eG4@9u^w*xdT^xGi$(0@l;d>6d*pN|_q{4{j_&AG+J#eZz|det9F2)%NyLA%SLp~u$4 zhrl@VQ@+Nb;AC_mE6bbe-Z}ou9w{ z`xD2mQ`h(A>^B3kOtr&Y72Z$leLIYfMth(2zV3n$rv2|!FAt-<)HH@VMyHcr*`oO+ z7xZ>F^Je@~2Ef+(`{aiYCd|Y<{0Jck?4OmHpV2FQkT^UKhgk>INgK=wN6gvF=&@^2 zHPKHSJULtR^gN2WjMrOfOI-pz-qULhZiFo4^KPaUm-LgN3;GvspKsfwwgR?rWspc_ zpmHV;(^+lr12frSrdxw+cHRxbsbH{}K-A2IJoEH!`o#<7r>H&M`V=4QMLc3=F9~{o zrLsmKdNmQ#A% zs_51^b*RFF8@MhJ5+&i;h`v$7zzjGJ-IK$A2Z16`+$I*2fixgFDcl4)=;Z)8Ri1p? z_>ZNd@FvI-*q|3~SuEqU&h4-4)ftCbt{rHf!%xMmX4%b$D>9HQ+`);Q+?fWSHt@YB z4(onCe#O^^{WF;>Z1DWfah|waQ){2`;*$S2#pJot^sF~@5<<+j)u9faFmhW{{rj`4 ztFw=6r&uHU54l`c5T0!^YpN)EWVnW=u>hP7kah`4Ch9byz&$G+L>6ZwX)L^UeioGo3L8qCJ%mQ$-Yxq_Qjc@85huBK2Y9yMEAH9A-$e7C zeP#4*nSQUtupLoNFjDZah129WA)*-CJsFFwO6e!cXbUO0q4l%wI7LrOL}C=IjEzXA z6RPs5J6kCAEIj0Pi{g)06$QuRD}Hi`eWehgHf1td=iOs+Boa(o+r9I?y7t?r(93hV z23;6e%X=-eyGTm?{AuKuW|*UqkyVC8O~n9e2!f)9!(xIth`(=N;4cEpmy5}%ZK0e4 zWp@@6qrLoGWBRPViYkLuu|6Duo)Y5BjGnB(iH55DDr)#MAw#;K68+2AobBW8#pUb_ z72C`W6Xz1Yo}MEe7+FUn!wT(6lQu#Y9Y2Kh1H0kw&fAUw7r|hcjv!YbiMv+}jp*#k zyhyuTrE(JGD)LC#D*blAaYfyfj6@_5+xGc2a3a6aGU1uk4VEv=AAxH5=M)lz^MC?I z7pNR#_UI1y3{i=!n8#4~^M9+C<6YHnuEBv7`(64xpP4bK9%~U;2qr(UXwUPsQ%|*T zVdKwJwX)w8kX`*XA&ACpTw2yNIPQ_bo|I6B4bP zF7lF+u>a$5LhMx(gEiF4wN`l=MAmN?t~LQ77NRG4;Hk$#O_?fFI`#FT)t3tH z)Pg}vKcC2s)+4tNt5$fcCi`id9rZcCE*FM^;aouZ2yZk6>$G+Vt^Xo72tTPx5zBjC~rohUnymo`w=K@lc#Tu=EnvHjZ0JIHg6U}((PV@X3 zBcJiq20x1(ZU>Sc?Mt_?CF_DEp!mbluhjhE)cg`&@tqn>9oriNm8K(oFFOLfYD1kC zce%sN4c6S9X2-74j?4OWdDCFSwT4F63U#huY#|p+nTZMV1EBBU5k73AN`-4|ylF-| z7>o6|g!sWi)pT;o#!m!G@xb)aAdd6QkOCu|m-0i3#>T|8Jv%M){Ez<*91$|tqP*Ho z_OtmI;DVF7*inHjT?tx{4tMfP^tFbh{I4D3rkx(2{mQ+TEIt9J^%L;7{J+yGHza!t z{4MgW7aC5HeXXQ@PuT?8BZ`-dZpLSU%@__U^A?KcBbf1Zh00|?n#*x0FenP zu&Ep$mdo?8!#4mfGBmLoveiJu{GDCynI*~7z?1grz8Mu+?RKqEdPR^hGfa-lisHJJqeG0u9XT^ z9j9QjdfkGC>YD=Xps>gG0c7gj|BEqruRxPx#q1Wdv%ypo9#l*TkA-hO2FHO&^Fb3; z^FC>cG;w!xQkE_VHEjN|*Hw}DlUvpEJ4HQh{cuy9bj1RowcJ}K=Kc6r|XC%HC=&TrteJ*AxMdn@;Q-J2c->wlcOJPfS)>`1<| z1vX6#M`7K^x0WdYoV6%U`g^ONrRee5=Y@`0&5zOY4z|Tu3dZXl?ajubd?A)rW}Z$F znj$xCqm}cLcWaQ$erD-Hr@=9+q)($>5RP4UVWoCXmAul)f9eq8{Wbl(i8SK)8fG_Fj7d7rbTN3ve~$L`Ah<43)` zUj#cFpf^Gd1ePi^9s9MmrV%H(l$AuBI9loRwB#B?y}bv+$q|ZWM_}>k!EMdt214~s zQW1KPkA~VN%n%!XX9n3|gG@Sl{%o8=_<%Q)>ib*+2pKeg990)9;mx@EDIHXS;;IKl z33ci!ud|KRPd#$`;0${oZ1#(Yw{%(B+FZxVJ1_!;&zr+g*YW*)3RNuuDFL<6Ip7sP zbG!0_#ThIz@4h29TDVnHdx_PHM+an->fjxEf51A{mdt4l73gi!?69GKSs;IVm)tKZ zD_tpR$6V~2eAla1%nHavHG_gifa1JEl)!I1pzuSjkeUZ*Q!PMXRSrMkYl{B>D7k#Z zQKL`Op*Ox~I^awTj$dQ*Q#*$pYD&b%hxj~XIBr@u$%lGJ1aeO=M z8%9afA&(MzTN5&LCk-X@3ljqzBb=lHQlAD~ru@#?wLUoG7;EO5Mz-byfk%~awK7n1 z!Qk8hHTZ`d$MA$wY$N?Uh~%VR*65)e3;q_^7f(BP(S zpK|;h8PGPeJ1K$~HDXTutI8;Tb^nX8h;LJsld|~n@@DK@*VS$im~0ppaRO0ER|Y4m z?6%Xe47DS8Mw<Pg0ap+^rBkzCeHHb`$BiVZANFsR~y;mlC>f#l>m@~e@EKb7- zpxw5k6_;1)%28Z>`?Bhy*GQj?=cE;~#NT9@OW3*dEw%Z_QcFK9wmj_zr6hhI)F*B` zFrq`(YsE2~pN*|gk5BtFbnaJuUiKeNS9cz-s>U?o@2Log@j1Wi_&c@rujggteN-B( zigw&D5;H1vxQ!ySz1M?VyL{zYE_eVW=G&e>>n+~)5Knn>INbh#o2(3XMk=S>a~~XW z;^~nqPw1P-b-9j@jAq{!?*@g9aB~AQL<|=s{PM6F4o;RzV?0ISva*E{` zWeAm+SfJRjLXjD_&5K6(FPCzbq(3i}FcjBZ2NWQji7DJZCAejqnRp=O2u`wLyje%F&_#%RhrWE-CCE=?`U>B&5uA)ATR zj9dX14N#oizX`waa$M8ncz z%~LC?s9|U8%b6p2eJh%>yHcCCgGrxU=%$5E@ykpT?pg7obVQU1A*Evk3YR63apR5d z-Nk67K7|n{aI6aA`tE^L%b)CjnNs0jV8vWgUbRPQ<$&fty^ENbUg?7^6(mxGLsd(0ACi|=+h<$yVRjlpz*$$YV)yXaGH zM%iNnDp&5(5oqFXpFg%ZG=5AL#>s|+)ny;ISia=c2y3qzZ?irsLHqf9q!A?1VFzDK zXJ)ewDE=Q3`5b;oA(3vBm7V?ei`{o`9XyWd{})yjul?;V15*N=agKxlb#i?T0YCKu zFF$9#_x9YT)JDg}85cdTlNx~k-=NBWjZ*mvV&N|c6cX^EASMYKZRJ3uOxAG=)|8#t z4S*9J+$HZi&cI?fo)(*Z&xapU&g`A28NbQWm+*79nwiVaW!FqBwxsO;XndG~&!9lq z_Dk^yw{5~|yCPdHnWeB&H&SMzDfC1da|#O{&jmQ1-tIIa?4s_1DW~bm zb9aDtB5!}SB1S>1i-+Zu)MjbyR-7h0Sb6OTSi9ZSBx>Ruvm+5T8}zOA7k)14q{!On zw^~|!(N^t$eq{^SuLKZ?e&hN4(eKGlF87$0V&p4w#cUPJc~Z+9|cq zP=!!b;X1BEk&Ayy1)za1z|xp^SKQ@j(`5aBu~feoEV(lN+*( z*cLQQ-lp%ae&ae(twfOHZ<)Wl9!g$5Z{c8BYR(_Sj{RXe(`rJE*^g|Ccs0)ZH)FKN zEHuW7eV^LB&WgRute?}05Vu3j$m^NsTw}axiuH?8?!Loh`zCpf;i#R)?{-?5zP{UjbrGmm1xMI(QHG?I4JL^rS@GUePZ*^hc+)d_`<4yDe_;V3_JEt4Ag zo6^#rM1xp8nN3mRG9N}#fb$vGac`$^6Crx6cFowntO3W3; zR(q}qjc#+I+>kso8DXS&+qA+@#r}e@!Iln#uDKSV^Q>VqqpU@{{cd}qtTiOkw6{>{ zGub-qK|X!fsU!GfjVoSjD@%7PMVnt^kw$^;{f63<3GADmIlQdG#8PqB=Zg`081Uwte$?If3r>B zh`(N*D*DmOXSS9tdrRvt%kWo4T&-qv{V2BQsu*``AI{izjH@OQ(OM@LN<;dCsI;U>C1D?dGY^;KBxq()w)*bf-o?%^zJ9KjVn&1{OcIZS-5)a zdl`69^ZO7sVY#6EWv?i;->~Gp;JG`ip@Yxzr{nCUU-kE0`v*_6O74m!|9&n{npy`L z+rg19m1Wqkje;G{GVaR7ZiU4w0^iegFzL`315rjWq{?*7>F%@`y9GCnzkRNI_UN1T zzS93cgTj&ONhrH5Qc;Vk2Ea!|^$1#Gs+y%JrXb>kZ`3^)w{h*6 zR$=U_{h^THhgn73K{W0R!+qvTdnU<56wAH?iYycvOV$#_t?VP;x8%Fd*Mr%x{n=~E zydC-8PX+#rzAvfyd$nQ8ESsnQ)-g__^yg#t?xQyTP7C!J)=pyP;v4m_TvR4DzKY-R zG{Buk%!NqVebG zDaNqIkS4!Ui23b&lf}h;{kLrfOeWF{y%dua{(UsW{b#YwY^F}j_#en@M~zo^f#%mG zE2>Ak&ENG#zLS}sv<5}cu$jBTMOkCGKk6{-Pt_=HmXfh8AZ-~pWr-qbgV1;`&0rx- zi!RSqesd$e*SUm4Tb%V~aZB=8>QLETErV*hA%v_(p4EB&MdSa?mV zTN0_D`Ab5qVBSP&sMu#+cT>c(zQa#hEBHxza=m;+d&a|a_~~+-C>E62wt2yDg0HSu zs-*q%dfX0U)@~+y?l$qRi-((G}w4dBLEFz-SWDS#ZtSL zC(WfnL)oc$qSCZaey^8s>r(YLxU$3^(l_fc%70Oi7o*biNz_e#ZmzXO+25!3wPkAp z(ufX`FLyU@dtAG`*Y`=LAaxP-?mtTVBf3(aj6Ud`QU0})^ZS8QTOgenK~%9C9i$DP zWopAIFIjEp^z$hIbq^I$Qe2rSz3FmZj@ZKv`to*nGrwbRcyG_?Jxb^q<>=vT)3VZ%@$MC%D>Ko zx*&$SzL1W$Fg}a-e!%;4{s(?g({fbQZ56Q`oKeWzdWL@e#@}m&EUHK7UB&k%H9gbF z`&xJwOUE;0&3l~IthMaE(u~&ZuKbA6`L%4xhR{V$N+X6F-ar?_O$p3-t|t#kRlm<2 zW-_|2(>eYUvWbMsQlt2LMK!tHYz$C^PG~AP6TV?6B%Hdic<1fk2&{5b)cCVA+fo~G zg&}_`V)P|_(}bAwOyxVOV^{@s)&+|)Y_&qrhT zCwfd zJpL-tk18q6O8 znc9?i@0+GbHHC?Qs<+@-2$JPSg{rFiOIj`g6TNYMfgwZ!Vxp4%sv^E98XX2QotCy% z5W8O9(c_0K?!Rw+o3$*-jY1LbP5IN9|Km^LZA?_@0J7^HFVMl4wfEz9xf!a`BLB)6>V`-BiB=$QFEWmtq_56nNSpc36nac!$y7S*XL5 zvX_ ztY(RmG)<-00zZw}EajQd^2r)K*YD6VCv`f8kQTgs zINp0N3pCZAKT29|)HSqZRrgCuG~5|_AriytQ<0W6hQUtX>M2KBgMpR=XW0ENtuvr} z&;C_K8GpY5%Nc;zU&sGZdQ$nJ-c|QK^G>zOM3?$>O`#d(%q-a z^|yRJ=lR0I@Rw{=OmO9&&XP*v*4lnVgbPx+K`)a!Sf#GgsJK4|UD)Z%4frz zKxVhS#MU&ojzt3xVG!(pMA%5IGREG$;cUBbNC%W7D740)W0V&0fj--O?N(MLWTK>^ zp(!SkpeckQuF%5XDbMP^bQTrC>q1B2qIk?FvF#Rb}T64S`iJOg|7NS2{&>yRbCjr`p zFic!dFd>9*>L2{HbWs8&7VV1ZhJ(Nb*)dsK8|looet&-#KF0rB&o2+vrO!N)ZbHa& zz*IgJ)#Xgsh~g63w65%k!{fP_urf$#w**x;gh<~jlqY; z|Myq_`SO32+hGJq7_%6uR9X{O;uWY|zGy$PJdv{KwS3BQ+Wo8XMZ7RzHVo zIU?N!PTn}vE1|>|T$To{1t*=441WJ77+eWdTtQ14YI}ydVLv)oeLS&=(JY%$0TnDR z|NG`re89BfOHvR#P#fomjB1~Qz@3v4W*4p9FsneN6RVD&-P+j(Q?MhuK36r($>`zv zRrU6Ri{yPv?80VXX-7nlqn%kaF#2*@mmp#wA1AeATaM3ND&y9Lr@^yWDlj72}K#@I=TBj zx>1gPD*`ugsa?1Z2`0@K2iz(j%Uj|?RjH|n$7Ts@k)>kF?LSL8$%y#zs<4?X)IjNl z(${X6Na$Eaadtdzfh@B?HcB!7+c2ErafU`LAhtM1AQluFYbd(7NRTp$PvR<@i4QA@ zL_a6JOM>SQpE73AR`b{KNRI&*t10=eIbq9LAo_(KEy(5>Ei52y)k4;?kpPsY( zi=4@XlzFON>wL#^-#i9??_f;(a`QYrW!)JYWDLtbd=+A;+u+#|mHg4AgQrQAW)klP5<74C;qhJ_3C6_`z0m?DEz^><(vB91k>8s)bTOpE@kd?RS8T<}u17a($~H%%`f=+_;XcyxK_H z?hs;n*M8wBk|RTgUk4urAx<5x+LNTtt;egIDUsZz_3GlCl}>S8bV8a#=eeZC?Kxt6R^tzu(Phk>s*|mZC2YKnrY|7(?ePhG)g>Qw;u(V0G>_;Q z&w4~u_U7&>EkMdJToIh>Xu{#gwFE)#z_Uv!kly0?T>*oEqm)0sB84dj8 zpF#SSY0Av{F4lV;d72mg6*mV9HC5sLsYm16{^s_iKE7y_;?MB^WHJsoP}Rjgsi{h- z+epRAgrQ7zEL7wI9@|LAmBL72q#{f=iWaZFx{rT}`z}G^8lzp<-|HLTxFZL)BI#s| z-oit1THo)cT5PjoetF?@kz@d0(RrGed%g30>~HJ#Accawa_A<0#nJyU`srr|ow;aI zKl03`k{ZtNgbp$mDi&NV!#_lIr4&5#Kr*w@>o;!c@Bdg0ve!^63`~&B#pB>SJe$^?6A$-A%Wy7`@&^-M$t=j*CpBcQ|Ms=()HJWus$ zMzPmgX=JNW9pdJ`FVgtuIuG}?FS`+QTHtQ(LY;d%s_i-_>8XdrYu2aiI)}`4XLI%S zn06b$f72s?{4}eS&M5>g5O9uTj|9?v0TVLs=b^*`tuz-ZsRSAylWPR@TA%DUPNTQ8 z8wyHOZ@~Vw8}KYiVhrrLL?NBwf4{V0{Dlp)#Ue^2smxwL(i6iVbVpDX8&Z_Nq(S+9 zAmQj|q=2@Do-8n|IZo9#;Ie5Wdj0%I1|6S#}7n) zKYQ^=Bz>vnNNTUDTY%kB0chiTWG8e-K*k72UrJiBaZ@m1A3_0}&XuN;l3J1<(kOv^ z<@$e7+~Tf3%gBG!Im+^35b)r&2mEqQ2>iX_*m)V1TeFu3NWmZz{E2-`0c1$`jRsU* zMj1&B0`&g(0yVQF*Zng zed~xm=BMfH5b>K&*pI(+3v1|{)ryhPj-g;BU(H$}%iL%dEOWKgdIdEdDH2tOMIqvz zb=NoJsxAdn5PF1_HnT+3=ws>fUVENqrk{OoztoKxoR&1=x1ekG8+tTgi27k^B0hc? z0JM)n33g8D3$llUmq4qK)JusCL4r=t()kqbO~u10##Dr6CRQNBQ_^M@yzwNW-oBT+ z{|lJa_%{q56{ym2f=CR^Av1nbb%7s%kHC98t2z?r8@V5@PKclYcO3wDvS`Dvq+7G>a0ei8(9_RAr*@F zS|#5p!V;1`ODC9%NNMi=Uv#}?R9suvER4H5K^phqZjD25mteu&gG=KcAh>&QcXxMp zcL?sz$9c|u#`lgp?z?{M-aSU|{cly*oHeUfwqsIn4ZdX$cOAtQu5&mKy-d*<(_kvR z!g9PfEdpjq*%{XBZl4d!;FILLD!glWvY{*^;}dPKhfYz|tapLo(c4%>f>|1_80Q#| z5|AmEl)wB&b>H6W&0c!;hoSdob?n5M*4MOIZH>aZ%5P^#!$&I#v(C95{PhHs_4tF~ z&kcj~U%53OdxGZ<7Ybjg7>p+T`~||wi;*h^NM~(G(~O`$(Bf2@Nt!lSNSgV*uWh6hd_3g-Xc1^slV^W-598WaWgrkInN9L9E_t z0{+h$M^}%*-~R8(C0Dc9c_D}|E@rO5rmhv^$2xKI4V-zD?4@Vs%l6W7?iDWAVozP~ zZBfW!zYrDF#(`SI_GNCnPpPve-fC|hf?UclfHlrgd-84J21)z``_rYQA0GHkh+WoQ zM6F2XkR(`3VCX$QR%p(Oe-qB2mTa`BpaKo$@sf?t_0+GAFSi%17T(zHmZNVV&WE&_ z+wHGVr6ECzHLtKw-M}G~%*586#MiAfnE<OkLBfv=FW=irz2 zuM68dA5iJbvO;%(tV@L-CrX+lzn`II)4t|@@(4{Z85H_}e96jw=PR&cPgR(Tb1z*S zVfKe6r7bO-*o5W&)2rkCT-9c1 zbgk>NDrh`r>rpJ2pGVM7%-YH69`LMiB9Tf|FoR@jCQwZNBkGaw4%p-;1yy3w6sfH~sx`6U733TF&2K$2f*N^FHThL?B zmr%aMva;^&J6|Bva_6RoOS6-v?kKz8a3O!dR#x{z&4Yi zJ=Uvi(e~=UpfA5^lb{lJl_`tM;r`iYB3wP?bjYiB1 z(9N344Te7agqxGxf)%~8o-WSANKN1-qs*&~;t4%{t)6bi!>9@V zeoD}B^yIgekMbMWPGYA`J_po^Z<##Q+tWOUS=xjT69czuo;ScKo8jVA^ONdl3BS=0 z1}Wo8r_TPgPcE{%)JteaZY^|F%>d{NC%(mu7W>7dd>M_5{Xq^=VDR--K{G6?X)Q8Z z&Wr6S2&WktVUbA79g1O%%MGOS2z+cGO$Hs%6wRm_NBC>2R-~#pmTKhj)R*(Xs3d{V zb;D!Z^T+nEw1-qDnYFuts(8uTxLW{OlaEkRK=}z5CIJ<2|R2(%f`#WiE%s@ zANtRe|6bnuk3alCaEBvZ;PB8NKVaXt6_>ye4IMT(_vGj=fOxA|ZrQKR^E{K~G9Uw^ z>oiZNg$$d=BJ(4+<)f66D@>DKz`@<=kU8qGwSLxm2WhLfiu!6)TLor<(Q!F*f$6oq z(&qi`!u;XiLrGNzUaf{bvElpt=ltMp6x=VcbMD#(WC!455lxd<8^Uxs!8xPb7Q4xQ zG>_n<1R~(*Dg(HIWYiGDBs~#9sFL9Nx9TzjSs+O8eF4S4)qr}`-h_o!avu9AGnXMp(t zVBd^1H3FYw_qJFq95)7`5W^Dx^?!w{=YllP0;qjc`^`n9`-h7|N zA^Nzi??2DCmkR+YuFuoZX2iN^Z$ti0(G2__OFK?L{Vz9T*Gsq>6mKqa18D?^2Z8Dg zOIkHQK?YNjLG*&O@Vx5x0}VZei3ejyQfVw)@9#V;(c{tXrVh91Eia=VR@t;WmEQ+jpeDA+fy{(`7d4_l>?{?E3Xl9|`8l;w-D@!92j?uJeCI>8Lz z;vbj5{6@P;b3UClfEpM2>Jg9jVR#vyHmG1bp=#`Kk+Qvs^mwypb|IsPJ8@lYiC^#p zhHgow+#rj@@r}jugY-4;6^!Hmw49;;I(7roZ?fKR3vok0pBaDfpIm1?Yxzm?q%RB; zCi*b`Z6{Uk1 zQ(hKb10XmRPZ|?7V(!EGzrh9iE)5swguk++oaHr0a-@k=T-!9Yxu$a*dZ+*i1^EkY z)&;N;ZJE+R+Dctt`y&byJ~4#d++(|DwI<02`1NtYe}1+^L$(w-UA^}9!b$|B_c48X zFoyc_JSs3J9y*MbaK&>v*zIWz+<=^e@4)=++h|1@gqSYkYyBFo=;ELfvO zi&yZZvVlc1+z8Ymr%Eu7rH81wwh)hwuvr79xk|PNSO6^(Ns%;IwqXv#m|X4_AYxVM zsds5AkurW9r50LkfOM+Pj~33<5l7{&B$!ebb&&is{OcECxEV$%qyUlZrw>u!ce5`^14`yt1Zgj*95)Qc%RWpVpN(~{+M#MyO4=RRd6r8P@Gfb3z z*z>C~fmnsyb{zfOHVp%?vv3RGu1ohS(-GgJS|rV~qX;)@nwU)`ik1c?OQN4-R%2?+ z-qErvqb_5G)NUV)@(--Tc05u>`&%V8! z-Gr-=0dn@9;Ui6na80u2UweH&&WXkdmN!Ng$3c?BiuO`wt~=12rME)N`kwxJ`Kp3C z{;}7*6<2A)kLlAwQ|{0-F6!ZJ+}9(DbKWS`h}zhqxE`9Y&W)C^XwOi;V=r>tag^%} zIG9|IzqxNo=UO;ur{mi0x(zv`oJfv)tX&QRrlqkP8Jv*I%<69>3%I%p9}Sljokoom z{O)-Fc65b-2quI~;}zox&cPC(L!yn66~nfs%A-POHyvSvTIXGZ`kNW;MtBbr%%IGF zwh2wg`x8|*v7se&p6qynelq}H$&DiqP_4R!HbRWV~82uh_a zQmbGjCo^z!)$F7Jh<_-9^f6@X&=N|J+>&$s)h}E<4=y>;wZ?9)=v;iTbjcI`^~1}0 zvtjc6g!3g;@$zhZm&=au`JU?HF75a(ZTU|72w8ioQKXG4C~C7~{2{t^h>85EgHGuT z`%Mts+aDr904nf0lgv>QO4OPNA+}e712}>3QyFXCN_lc^yanWq< zSE?C;Cns^K7Z<}z^Pel!He3#;jpjj|!A|^C{AUY`pYl#7hshE4GBl21%uyr_UN{h% z&EwqQUNDM*(U>p$Wzaj^Pnv{~h3-*SzjC#jAU}py>A>YU2ujDuwAN@PLPsigq~MCu zLD|EDYuQe7y3+#bIr44sIc?nIYjWt~OH~0B;{74Uc2PM|vp&0R0NgYa? zw`OErt$LzjY@0$hZIleF6(TKwOPkACPB=6lqE9F7ZogV_G?QFvHO=-0^p)#mG>C!b zIEg^{@M3(^yMT(Zv9`s**szbeeW@n-Px|jU**`&l4*wy?qXBsOnzvYCqo&;ado&Bm<|uQtm@5a6Tgdw4zn*P z?H&1umw31D2bzOYM*)tk!tz{3Z~qKE1?}?`oF=|HxQpD+hf;p0)-oO4t8SYphyOJ? zIX5n-*S=@`bfQA(IrBwf5sBL6ae}=$N_@E2;QnQMR`%_#Msh{gb znfLO=!W$fr*#0H)ZYFq7-&QKU69_#0DW~IL_Yhi~&E1^qt5HG2_y8wC#TP^xEHd^FlYbr zpZ^Ny|9m=AhLzm#17CN!U5Z43B0Syx#ZImUY_{|PXbE#{5NBo2Il5-jkS_V{EiAjk zTc=5!CY=pze3xSV9sYhxwq7mMFW;7rVBNj>W_TMYIPK&uR^k`x1RCE0W;%8`$jt}@ zENm{_mLC)2D@<5^$;dB$R!r4bUS}P32TLXI1?T`pMu2R_AUPB`6qtwz(I$q$kMn@F zHo{9(Va@=~UQSAXMeJ_{ZWN3R1_UB*c&=5n8wq!sdOnKpgF&OsfTEeG%6*?>i+ zjE$<>sFFXf@r-HeSU)|5FUy~Vxo{ai(t5VEM?Oi7?p@vr2e2H)yM@zIPXCTaU%!4I zpAD-Z$I<1LMQ=?+YJGU+R?R?e-q!Gdeg`X(}4CxQR@OK8Q= zZdiazFE>|PBt*p)J?Tq|0ywh<$}40QtL~L%11g;-A;ThvN&Lv??3NpFg86sS9;#Dn z?vHdNrU<8@B1|qQ8ozjwT(Sk4oQVUWgy`sA9~v&e7WY{)O3W_g3AJwn!nPw03T%(V zsXttb;3?5%a|tZ9a+<_uv|UPT>tj+WE3tkI_inpW^aSuD!lWAU-WU|Gn5MnB$a%^_ zND*RB+DL&!%bFoYK?hg;)!g%|vjtA(4hRb#2AjcOtsy~ZEI0}<9iN6=@2zR#2cC~d z9pbS=*D0l!z^bj3s7pw{OI}I40{g2iI7fx2e05TlVI}F!RC7S4R0Tww%+5yg-l27P zo<;Q5wZ<0B6y;-}c6!l3F|m?J_~>&I9F6FjQ4EY-Bgz0KtF!4%v1`qr+n(P$-vx9V zuyTjP4k~Rzou~KJi!M-qD@PP%1-0M4?jn)_;JDw%YA`D+!j_1&G^bd34dJ=+V@MDo zF$rKek^Q~mqrO)yn*5Y=Yo%__z}z?>RgkNs?zCXfse2If7~M!dL6$^>yf!Os zuYO>Nd>SrebDae8u`%E8|0*6u!8(mDk)uDkIEQA$W&0{FloI*`=CTDi=l&RqQWi7~ zc1&ybJu0HzWBw7zT^smajC&u-jptk-k?smsT+Ke2?vx9~F*Fq@QPUHhM&}%ok#3JDB^U3RpIBWk7X7w~l$wf?=oJZtp5DV@X>DbB~vW z+lI5_@>aI*_ht=V%5wy(d*3b!V4Xq&faM@Fh3!hN!uBf0tM-iL(&%^zQ&-N17u6`@ zz`1Ky=nusTO+fz#^OLhM+Tj82JH6Z2e^z;?m#*RCAZkpLP6goYND{X?^>@qjNoh!M zaL161L@yBZeLS7#W(RYtqV;^{UtszNoc_BO67mr*qwOIIlI2nqx5?;EBV^a3ncxx+nwiG|r z#?x#eW7&J&c2AxVVD^Q2g3CQNb*xuB?=J=~PKJf1R|zk3uA#Q!Zeh^+@_3#uCJqKf zsXe6>Nf#Ii9QJP#EbHCgH7Bhtz-bq-%T($P!eGr0lwR~@)eppd!;FAu5{cjImc3RI zn$F!(#PgWh)&-)|eQrb^E#Uf^rANfx&Tal(c&fa)yKxV8QwQVqZ6sT})c=#YJRPRS z3|a}gm6G1{{(hG}`H~$B4#oxEKce1G3X<(J)(QouwnyM``0-9s#l-QHrwDEmWq`5F zhJd7WiAuV3jrIV?!jHARz~WOT50$@)DjsTgfwLI$nKu3FBG|2i$Z{P|!WPbGF*wYs z_mQi2+qI{C6N#mA8SdQx;3M$+%&yAm6PGHvMYWkB_> zY-C>>tpDNdQW%QfJix4RiK^BV3V3JvoeDD%j;1L% z(5G2JczXFA<<+TsO2URju&4qG6BcBc&UXGIcw`QSbU>4J7)}`&vTP>#PSQN}^)NV{W(lC{MOIIm)6|(g zt+I&dq3bm_*p3qrqvZZH!X8O3hAg&^v$ET*gkL_|Goz>Favuh*#CDM3!FxGpr;)kh zkxSF)V?9K_Mir!Z?u7#;7>YD#9u7XCN{q7$gIiGLE#hXwV(vfCJ)C>+o?ml6H1zgY!+SB-2_q)Z!EpbOHmgod!=JgN^xf_jNx3n}sJZ%a8?ZOU zkq$W^cf!xfkyFEGJ?1 z#Z;JSlY*K=bg=&Vo3KII#~v^g4a_Nr{Sb+2?Z;Ql)OLi?<3acQ=)GpMwhoVlsPW7& z7J$~LeU@fal-mE=oS%F~c@Kxi;eEbWk{Mn5ovWXdF|?R{obARxcO>g&Q=zYgT#B{8&vf+jMS&K)WF4F zHk`B35ANbWEwj7TO(w%n+fG}69kF)!5>8acxkZTo)4A1MZn?cgJ@op!P_F+pqEX>^ zD{jZ@{rod)@4zq>=c{z2D zXqT#QE)cSpbJ~0KKYNy0D04Q3L?1Oybxb%LZxIek`ahkrV+%X zgq9fD_b^h(>b_fj?8=NIm%X|(D>b1|`ahT3sj`?n2K+W+3j(La$)h@SR3{J_$`X|K zPRC29qsEzF7y#Ry^4ok(gD&7Cr9+A4jwDQkwt)%?s`C3P6*EFh=5NIKV%uZmjMRLS z793^PV8^Y+W~FglOMh(!lfU_3d-`@E)>*^o{FIa1ODhLG-s{b1v=)e?L@O1~OqCUt z-s8{Phc2YD7ahjb1*FrAWEmWgv?TyzGZF5!i70ipbTCjhHADyvwcr@+7kaPB-z$GcsYq zd<{GQe&gr_u!Gr0La0YYW=9_-YTdDptlTiyN-VOu$wV10)G!vUz!En8t*~X?P-NP+ zhWiGdHLSa8agpu7k_fNzjPP6e(Gx|vyNvOE`h!!JR@~!I&CLT;y892|xmw}sN;~QG z+iy0;2U1D_(?GfxNid#LaF*X|O;zHmtH$8X%}VD#3q)NEsM5f}Mc@p}Vt4i!sYm-{ zv6b>;7({W>ApDH&AS(#{eB%x|>h)-#k%l|KuryCb&|;Vhed%FHLllLI_>)MKYk$&B z#qcy`IL#+{L+j?|s$@!q@>!URC6Ao^!W_X@!BG?Ys)F54)hgxlMV@4u^>p0s3%A-7 zdgfFUO|Hju*tPgz#A0UYdfe>Ww|Pym0O|r{!pfATq|J7LJhg>}$OfBYIqkTUd$Y!j z5`2Y|z(E;m7pi-PkNo?3o8`%hZ*C?|C!VXd8^Be?r9I*+`z$|Nb{;>GZeZld2YNcs zR`yN%_M~%3(SK?lXZWAPTL2H?Z{NP@zpN}WMzu-_yqwlvwl0<+N4)qF_5q za4AqYf2L-xp_>@-v3VqA+GG$YHB!_#&KJ)_JFPl>r`DF(4i#1l$LuS}nV5hFqcaLq zGC&+lNC+Gp4r=Z*s~KT}UWHhe6&FMgtqMx^n=5W)#YSHn3{4`L&7GourXSB$2%ccD z^ZW>U#s*gCu(lg^e@#HNWz^>_x8Fyt4Jb5$UQb8=#GR8>f(5w?(+gnf&=;k6?3Sak@9d%65rLcE6(WcJzMnnZx=jBg%{nM%fl6$1!X?ANLPBeC>;#} z-p;Te5;U(15}VGX8&;njXT#)m7xw6C*Gn?Y{O2-bUmH%W%1jTGJ@})l;WW0A<2_ww zH2oxCr|Gt6iFGLc8;VO$I*r=W7o|iVL6Nq254@WZEt^&1RTp?qWt>LcH5aGVQEPw- z?e_vvS0NySlnpcj@4hS4c08nEbJ%D;j9Q!TIHA9-J(g;{TqgYyazvT8r}hTZ;sLOw zX{%%T*tHYg=|lT>ZG-8>FFWZ9d`lvZw!r5q5fu`$xo;xMi7aC6D3l2Aekjw%ye2$- zaHLTN_$t+Qisz)hc%e^4WXjnwlq6=p=u+rpU@ApAky!Ehk?I3r7Mbi$Ed$Z}4Ys^W ztRRgII}I~|cAA?o=;r7#das{)=Xp+SS$fI$*Wq)n4fz#3s%~34HmbIgE@$?-m4%bg zNIfLDnnTc|=)!0zQ?XX=7%yvMft+ZB!|GZw-~qG3zInB2kiD3oTK@B^pkp=&$4s5{ zr_y~30+jiF+@@3yW2WVTNr?ivob=fdA2}B$Bg=WC{=lWEzbG8sbx=Yzg$dCpCOSyX zLTVv@y_7Z^idwW4EYa(fvuv!Cx`GE9LrN->a9Uqg}1 z@u%2-!^iCZP(oOYwHw^uBC{NpVPP0$2WKXQfa8n7qjLPp4Tq+oCnT1z2?xh*VO1kj ztw$#N69P;^x&K4MiyZ-z zQQE-FMH)A&iW2hbrhYC{^HA8uX^XKko4I)3G0@9prq%7C;`hj{>zKCL2x|-Fc7ZHY8u_>s_`XqDIovY5K@!e!< zWn7lted}CJ$M~WYr^m6(N2Q~eYYi%5-HQWoBUGx8#6o_+{r?2V_!8At>yQ*_5>92C8e#U#mR@uXSq7DCQ9kB96^X`Z0-=)EM z(N@Ig9yZU0d>1?U6C?$T^^^^_{5rmd`GgspjN%OLbRb&lS~GWviJsW{^-wr+p$r)U z??{V4J0q)wgOrUgO%)nMj8H#~{l4e6J<-^`(rU||S@#eN=eE2HYB!dFCFyw=@V$+| zmU*Xl=u**0v+fYj;xlErZMN+*4{NKFUZ1txdb`{N(T)~AJrUQ-OyZJAi{5q=rK6tt zaUnH(Ra^blXuSkfzVu+{JlxuvRx=R1>J5iJlpKvPiQ5Itg7)#AxR=y4FX`Z4itc2{ zEeKS&Lo$jd>5(NvDmj(R{;Gt-*8JSKIziubm4y7$ z+2WZ4v705bugeW%is0CWxU<)~#*mjoaUbM;8w~PtCUw_2l%@ss7I?qUv8HaaCNA>o z%?WC)99Nv&aUgxS$t&`VMR|Tqrd^xjB-|yECF*3RmWmk7QA81$>Xk(e5|kD2jc&I1 zfMc{uj~xHIj=PT5)VQZn%9@EV=4Ng?(0enJsh9qGaxynQSUQo26z|#!%Rgi|*4GyZ zH+(>r@ZPUx8UH;DuDFTD*+SKQ6wC}>s1IG4QDP1CgTz|I(2x;RqEp@HeMfwx?Dijfz!3A0rM_ed3FcR(ZpD6Zyt?7 ze13DUC?(V#oCB?T&wK>2Ac`ZFm3hY&^&G!uB$YbP@wp+(;`^gdcLe<|Knw3qu`4Cy zK=Q*;_n=H5p>@LLU?CDU8axS?&%t(%3~s0#2QojKSd6fcR029q`M-d*lni#utJUEQ&RgUw`g@n8FLxqaDq{bp^5HCOF`-}rG%Xh|S@3$cO;>`} zYA3MVLQCu^Hf|pg_!Tj{WIcYafv@qy?H7FqVpfSO5#7l~+@Gzi%iD&j_=2xtcYJKC zg2i}(i#rizsob%^I?95l^#{aE?X=sOmc69K!m^kA6R&A06#%glPj4?#g`B$;dWd+e zK59Jaf4v74=DHA%l3IV2SJu|NJ||>`lUm$XlJu{^+uPe!|L9pg9x8VMVNnP_B_W@E zdi~G9qNo3@oC1M;kW?TM6!ETLqP+H6A6!!J;uN3XP^h9_gj=PyH*WRc9e>X9dD)8J zzoOE+e$FY-o_*A{d>D&l=n}mBW5|bI*p4 zbO4Jjmp@g6#MZ-Auyd69&1859V1FqEc>WH5P&W3zUdq8Ts6dj2GeTlRX+pSCn!rf9 zmsRfusw9&8qeZF0B`La#_HhzE4jT7~4ROh@>*fk>xZ2umzA$mvb~N&uduVOhP)68( z)%vMzuvK@uKdTaOG4!3|EAX*lrz>p~cSEQCq#|{y&{BcXiaz4Y7mIrj2{|$Ft-isg zp7eM9$H7fv-k`Ux52^Ri;w?N6lWE$IHwctNBL{5k5OAna8UTjnOOwq~4;k8b+aK<- za3RPzt0L+qTZd%BsP{Af%nN>{Vv9?*`#yuI-K+X4?dwwnQU)d!UuKiWHAZER z$dfnP@)tJ&>1yAM9dD+WTB0WwiMTiINh+S~9alfSxJUke`6E~95_aym=7a^hpRQGE zs_e6Vget#uzHf$o;J>o_t0kx4dn6bZ{^rVgSG6s>G8Td^j)S+_DLeJE?)qNyQ=Bj^ zJgK*bgNp5}$F%PZ`mb&)X5{S_DIA4^n{-V2>PY;P4fad&j`;SV!oh7x6F?z>yYac4 zP}qil9BZmZ-pH`zpjFX7O(BY4YDj2MVL{kYqE$Z}SDK3PE~gjJ)4y}w`$&(*8vU`m z7=D=#zNLo5G;4D`-{3Md?ZAE6d+p=mJb(fzcJQ?vtGc+VpGldtmKt?^A(ph|s+Ki{ zIOrYA*Kwh(gWj4mMB}YXkj61er-dc3bv(fFQVn&HB1dRRYSX{`%V81C@U4T3-q?Z)oy0_7pl^D%Q|87t&(Hp}U2bpoZkyVu)CRFlOgSD2KdtGnM1h-rKbL{AX^ zD(h*+wY@5S_Ql`BIh}q$@Jv9)zgVb{ngs&h(eJa)q?G>Cf%!Xg1PlUw3Qr}Ul~c=S zp>@|u_Vid%QgV8FnkN~}sM~Ve4GUCxj*+mTr}&bqI&69`iW zIL&tbLtC7c5BghH&ujte_55j}c|%k^I-v1RPOBDK}q51;kR6kx;1k81IL z6?lwFSDTISFT`eQ`D4FP9z*~r5qxy9x;}qjSo^jaYVyR;2adL6yk@@z$d5W`4tRTP zCwVmiRS3TP@jy!5394Y=-3KW;Hqbx>iU#HwXo00kIcFp-+Zw#U)nuaz11P(Cit+(~ z3W{3HAzj#E=bWP!w3`;R$$HWS4bkC6ktbw>(^iAqf%1;OjnR4pffQku{rt#YwWZ zB!ZN$(k{!)77O^l;Bm2StwCP&^RvF3%8bTttRy!-|2T%NmOG4i4%epQmFTWYbCU!2 z3*R@K3J!fiyFs^=BUKyQqNDrP9}kZ`LropoZ^ML(DS`ywian#!|0WDjZ>u3aobHPE zgxDcQjP!QcZ{7-cqGnr_`A*$BAREUzgk@3m43-9StM#c35^_;AD`@(XHLHN7Y5J%7 zKjK}Xofyqw1Z&(PO_ku_rL5GxD-N$}D`$OntTTCjKTH5UFLwGC8}~0h#jElot79k6 zDl)nZDe8jjP2;TL^F;4Z8VN$9gmM_d2FYe!2W|Wb%{k_xMM)iE{&Nv>OnZC6+h1A& zd8QAc(*oAFk$B$Z16xHb{H9UA(lFx^M@^c&hv-{FX}`}n>YZ$gb~laSsz`{6(IApg zFk=jTGR~Y68R(Bk8&Fk1qd|or6wzZy>5|}fwmL4SmwUj9pp>ql<}8N~S*5eCs`zDb zct15gq{3na_i7#GpBwvSO%d2o+hl(Al^0>#mx{55n7W1W;&K9&?~SI;#B>DVWm)`c zY#uF!<_eChJ<%gR^^`aNkdO*_t)|XfMME?BGvkMtve8!JOahFaKK1 zgZ@T4yf=U9Rh6G0)%jlex02B1h^;gWi1Ge(6%9IdY-ZfB{#45?u<`NT9Udh)S=rcb z{mH6pemU=rU>5t6QjXZII>H6N{jE#8tU3-U*;2Y$B zrU;^ov@x`BJv#1p=Tc8wIyxLiVVn1x+=UJ%?{@+fgIT)a$V1`4(*s7qKZFLYVP9?< z(xKRaF9yXiv}K`?%VLPp4b}J7zwbJ(rvG{q_^5a80Hkq1OisgJn@0D(Ep1H6w;j-nZT;+AJS=!@B zE4Q;fcmNpG#vQ|Q)VT%9V_0H98>20+CcX50&{O&%Y(wCLPz~Bj2Q#c}7nlfS&aHIM zK4pZ&rMZeP24|M(f$}Z;VNLv65g~g%?LW!)&m(=C<+2_o&L?(@1s|)=k&9d=9R!JN zc9MEq8$I)Y1ly-NLk-pOoX22H{BkqIR%N;ur!T=WtAnK;I(Lv8!K8U5i!|rVvzCKK z2%gae4X0tnt3S)Ux+~T+7ASzV+~;AwO(AB30?j1%PhCsUe2yps^#^mUCmvpqaa|@q z_B}-t`V+6;MAFHGf6Eavh%rLBR}#WSIMHA=kx~2ZT#>-yK%+rI#P1{hi7NbMXcw=R zKeT`U$t z0cch*=h1#Ir|5BLPP0r4o)X*`REneHK&?WpKrMkGKsp4#MbNWR#~>x4 z2_rlTQw0i9f>>mE)F-5|=vCMWzW3ZZ&i4N9#-4;y6T+MtMvR{@Dd=J<92h*K701;bTQ)sUi$wX7dU*_m)G*uzw?3Jy$`VFqT4?YTm&A6iP( zH!{EfSY}B^ouU2-Z}=Tl_`D4PcM?cUw}3vC2<|Ftq2Z=;_GxmY{H-P~6^02Evjr2n9+qeIX=3wZP(jR(5EX zX-nr$dGRG3L}sJ7Al1j!%U837{f;`ui^jj#3mMko41fqbqUf^Y$D({wSK-;j(+T9` zb^_&>#(b3XNdkT?PWui6hVt3Z*F2GQnu)94#SWeLVsebiFP=$TbH^>J&aiUxTWEy} zQ&rhO+NQ~CqN*RWoydNHz%+#7hU@|Hd$>oLs0~a73HHpv1SaEwL1AU?kwbEnJ(q>9 zZh3z6zbAZ@3SLI}KXFkqHuJDOhEURfbT~c{{gLU=Z+dN*NtmS%IA_puGkbmo^n-3~ zb%zTxGck5f;xxk0`!z`@;Pwca4bV*ua%Uo{+H%(9;}7ADVYaBSY8diYf(bj}PTk&r zOt6^Yj`=e_Xx(RZ?g=s5vbneWKJs_5!ub>az!v+12Wd*+*aLU+$ksf_Fm)SmB&%%+d3j%BR2>4je}sY=3ffNGe{Pb0MDH->O{1et!y{*ckrEBakr%j z!%WcBolX45Pn2N_<9rWCt%U#|F3W>5C)Dw<44%WaUZ)8`Uao^H-=o6M%Cd^#fU9(( zy_wcv6AzN#liA#vH!+W_;&nr*sX-CSI}SC_r9F`imIWKtpIl?*MiOl z+U@53L*jI&gAG@CAh%4%_tS{coefPu<9=Lje0Yvv<0t1x8od586*w1`iV?XI&&{Ja zB{2dUOurMQ%#%)KmbiuRUTxC@{I+0XN4)q7AxfU8;C`sQF z)YeB*`vX|?-=@iSC)(1!25DF#?J|bwlo6^-`4s*~BtmFEz~OUo z?>Fd$Zfm-78FAVlI*!_ns_$-7c=q|6gr>uRh>6~E%Hb0)uh4!=oNQ*ME}!bMcWZ%= z1+|09BIr{3u5erYulJ3f@2V!xoY*6Pp zQ9Qo(Wb5Kl_R~tRJLM9EQYgmu?2V3)rTVdxcQOtRWkBOq#WQ8CQJ;0$Id?M2 zqqRwlS2r@;eJoGip6!3@ZWa)3>F{mytLn-5^nWg%4D5axoc&H!f%EXmo~-%Qp48oj zgCU`_h-gtemhqAnS7*%L3EzKjChj-t2ma2|k`cmwSNbEJK&Q58?~Q$!^^*6`p}W!i z*FzH-eD0YV+gVH}f?Ys(cz6)!y-ejIXt`JIQS$TWC91{B|9S4;oB2g~*Db)iLNAa% z7$il4tlbp3;uq6|uz2%FyGMqTkZzq&@!98xg}s-V@~o^&C2hx_2S>HuFji4}1CXx| zw-DEtT!KzT&Xg(cKOD(FyWbUoxpyFiIkw1gS1}g zmc|&SUqD-W72YE4(Go;>6}{pA$`5y#wS1$#|Hr}$CwkHVJPI;^&=@QmeY6IrqBU}) z^GEBxAa;jo*P;H33sAfHg}Pbr2GJX&bo>(0vVQZ|<*mu*LE*1A?%c)G;YoWZEpMGp z*6HGMhUmmkl2wXqi*z-p_#=YE5F`;KvDyY;nX>fHY28(T($%XHLzwAXXw^1qbbuck zHBixgC_r$ioX_1d=dtCawT>0a=oZ{Q2gUwU*0!JBPLB=3LhiH zeY)o=xzEs^W(M-&MS}rG8j3m<-@rWBmY5lvGrAAgIcu67cCF-!Tf62f>&IDk+v5FU z+0D3KE4|g-M5NmJaj6amy{@tb?;i$NX|03wmN~6jERdYmL2S($rF(+*^(ddpf@fhz zwdBjaUs<%jGfD{Jx*VqGq&#tL(b`5rS^dMb zwh=ayYMB#^q&f~hHm;`=ov6fMiTQr)`?ik>fgBMUwTI{qYwAn z@r{%e_4biMZn{pfD6m2FI9KU9zGhm#bMoH}YH}S|d1tFWbgr~tRP?VF+V(OVW@N}g z7w!yvE!nd_V0O!lC9bW)umbCL1O|rFz66|70F8EG3zHj2wM`CHZF_~3wGPYM&To#} zsbgDE2b}}O>WQ0HwwyXvc2%2ar(@54i?5O+03&GZd6oBk+WKB(`#T~yLMrA%)-1y# zEqD^tJlvgAbC&?eB$`n;rf-OZzph8rkS@1jft;gmMhye*+txfTUMM*rE$8u_5YI;1g{SH^Z>y%NucA)fX~UN%r~c5;WW9RkKD);U^i~BrH?OkY zG3@_oS;|v78@p;Xi)Sj2bL+8QaT8kc(6s)Ore2`rXLg%WjpvwUH5-x;QglH3sT8Y2 zEb{6~DE|)n7D+HjGyL$I0Vn!t2VjV<0u~G7EM2OKtap0~KoMc)Mp)d(Jo{56kyg_X5O3qxQ@Z z?2+~Wufq53Ou<3y!YokWn#~VxaBi|bmv9JD9eTOOzbWXWl*qyBSVME%a%@HTHOReE zsrX%W-ENZ~-MF8%&>m#L?gE7V=J~O0B9jvXkuoEp6oO|y(9E*{!|xYyudo(7<$A>g z;Sw-pe4{E`1W+GSLN$srfof$JHTgJq=~1N{PSOwCetqMfaf>hc73<}?`*H0()OP@@3EVA<#4YrWc5^1 z+bz{wN-MX@dQrU_uCwGMXf z5PcNL?#WiIfzT4?#cVf;CK1+VrW%X(rZqmhGSp)i1YGI6aHcS2aE>CBrx#=(wP(_f zr3AjS=Z^@8Nm0T-@-drJwMZ!a7@oB7LP1idP(&G$P8g#y4AFYQ9;EOH%oOCpJ1mk$ z`7c#0G8$Z-ES=+b9<%gSwX%R{owJ0lJ|6Qz_eXD7)~9Ty*5ui29e@QM%Q}xu8`U&Z zoH#JLmOXAGXzX7RS*|8S!V_&VxReNR8oWqT;tDbOiIG-B0-|UGDG>JnK&CFF4ztiq zfXUtoZhp44Rcdfhq;;6tvPH4z~JhaD%FF5;lY-f+mIaB$l3Mvysf>X!bc#(=A+|4Vv`Riq=)tcZ$(D z^|`z3bfn>s=h)XJA(MAX!j6PGz<(D41uA67ar&7eEV*aYmxtS%HHt}Kd*&@%MT~ec zk-CouZfw6Dc6Bki@8@Q_cJVM>PibA|bUH2PXm`?ESGq5ix3ew3ncCe?`uHjyT|b$1 zou|D-`iJRAEq$s&CvttSE^f4vg{5DQ`PM%Wf}MHz01qv3RY>YU9`8F1wehs-MamP8 zT4BcJNjgn_@e+L8?Zcxf#gbs^8PuQa@jNMoCjCd(8>JLYVNGZ;;76AqFr;gmrgo97 zYLGtPHm~GPtXD|x(!=S_RQt`vczhu=Dlws>OGxiacvC2#3(!$>Z7OY`cBy2xuIX}U zSW_~8>NNi*`Hz!`;ghsz_xHQz#l!KmV~5W~@7J4tR1Gz?|H}viK`&wHC!w+G7Yd&%#xJ3s zd>MxD39K`M(!D6}CtbQtw~m{KgaYKi!Ryd8o^RFssau7%%_pxv94CE`#|YxE2q6$& zKORKGox(-$hN^xln!9N_w=rbolsuP2_Jfk3SssX+&)o;vLrNNlHISE)HD61l5Jy=8 zhNl1pV&tQJy9d-bkrB9mjF)?j*^mSGNYLJc35QgrYMg^|u<1z0Y=imxUbKl2D=RAV z%A#_*y6TynOoqF*n>+>PPu}kSL3Yz_z1H{oqpQR_a{Hyt2 zwOt!DeC019D#Q0DAS@+02~+}L3qn|k2OL+7p(Z7~c17m&K99S-KMkK@;R-MwLM`A9 z0*kF%L&*Yypmd#PC1zBG;^wvAn3(bo*nr{@%a5kM{k5$=INN{DDq%WMSsA<^X5 zle%pjGxroCso_a9?rHD8XEl6IpIwl~L&M-aUvV>`eVEhSM{k}Xd4zy^NuYSiYk!&L z$8!yf?SrO!qp$SI7wD<;?(FYR`qt>1aqh#azm?Lp#%3GZZq}M*Ru-*mDXTY^GRN4P zLbj}O9CL`0Q7$;C|B~T07?*sg056-fkJ~y>^*Cpa~ci_-tF|a&V`9<`n@1q|Z zpJ+YOG_%}(nIF@=v@p^k`v88@ z6)bUbo=D@vQ!>Yj5HK@8G2yNG1b()IN;8YhG8-=O^H<1f4j-cQcGI`Zw5CA@=b4JT zkyQfC6X&MAm=dZ&w;Ib8ZZnF&kb~6_=Fkzy)ME=`unp!`e0CAa0N}#!<;s8;l2&{O zFyP!F^BV;KDIx)#M?@N^Dw2IrZc->L8_q&e%C+aT+5Y*$)M}C1I#BJ{dWx3m$X+6$ z$~&`S&r%!phTrE$U(xra1hz&i*H+6Q24z>BhgvlkBa1$H_OQqI zHDh!dZ&R(pkJf95)|pu7E58X|8ONpi8s8+LRlpyNkba%yGf z?zHOQH?H&5vOC|WaPP$-e|0d%G3=D57p1MLJE2> zO6%Ok=gfMv#P{+xj`6mR(bi82SNs*{?OHt9E8MxWMhgv!2LA|c5jGihpdl~x0bSF;|Cj_grY)Nwd`aKwa9tm}dnhLK>o)rwC#~mkj^m)Lfy_e8L za>L5~e}FD_88i{Q?sBf*L7h=?@$qS2CDCZFQ7v%@U+=cAM-v&X?ROwV2MUV(zl_5% z``hT}Jh)Ik^Mjxs#GnX78FE?H`xPX;Ws}at^<&?Bv-8=x<$fSn=%GD8ujxzs(o@er ztT%PjB)W=3P-_84f99}ycsM$+EwKMZbk3UjvCxT>vUHxO%F^8CW2?QsdzxADL0OAYa%6< zG-XmykMUjrB-Wpy9W_YWR%TyM9gTsrRLJhKrx(x3T=Vir0iD|842)~&m-Zvv>rbuU z*NU(mertQL^}vtm6usvn#`E-ic`i#rNF=&7%ib{rC=7h%J*YrYB}bv%)pql3e+17q zQK(JfU@;{wjd0Im#V`k`-rEGRx+T~2O!-U>xdhL+7UrK}g zmL&=78NXsOw1Iug-%~j{;;IwohiSvD;2v)5VIaa0m?eP|dz?SU&3jri1P*T85(EY# zcUE(#6bv&_yd$ZNe9)u{9%+)$mH;zaD01CFq7fw++B91bZM9z1;VF7yW!HGJHowoa zTlw8?-S+jk)$P$rU))f{m~8>>7Bth;~? zO*%+E9NLv*0mmKR_hE^UCiD4$Hg&U)7f9{VY7bW$01uoBQ;sDr>?%55xomS6Mf5w) zeJqf@*!!j-$e)bm)5tA2t+Z{@0681CODsp2)FCBX@C}?zR*NSosAWF8XG~NCktmYe z^WMTU?9QFF8_X^SPHR*F?zhl;j2$=Gi7j` zO6X>EpVU1~ZCn%Zo}9{V%yl}PN_`*ZAYLuss6XJNbzfq1k~8R_usw}yNQtwo_Au=_ z`hB+~{2`e?$QPI9tydw4w&Pi;|I;F|;Mm(35Wu90=>6G%!Xn z0XQ{#hV_1g18=@dxB^*eczPws`9cpO0}Ja8=m%$r#vQ-}o(0aT|7kTygJ;~>m~#ih zkmoKcW%{ZnY?GwiNFoWZTCf`%6Tns~ABuYK>F5?@xo_CH$6g~$owe$&<;^f>Zt~>J z8g*#1;rt^(T0kY4AcP+wM3{fd9l4JAhd*|fu3(kUpT*@vTIIZcI>rIZ#`SF8O{iP* zq++XZ$vkO-7K!U1jP3~J48A2%rt<$UdTo(Q4;Ae*gUf#Fx1!+b-kwO(fz1N$XJ=M5 z^?xn7a}SNbf%Nb7-NVy}&qY5OZBoc?3Pxlwj3{h7 zO_q|5GNMmEa?LXZ1yw%1(my9Dc;o30LHeIvGSV-%6}GkuE~}xqBlpk~Z`2bQlrxwh zSKnd8*L^~oaTs{tWjW)`nU?~EuL-yC5S-}{n6H7e`qjy`lE@Oe1$%5W%|tPb(iUVg zeKmf$nsG3}b@9BsBS4L_COCPI2>?5;_e!)t53K@2Q5sGvpjKEmo>?~lNKrCn&l$p0 z_4M`hud|zW`_5)D7rL7HIb`=KQ)mqc)4Q z(llG^kLj_a3N}3)7#UpRdmHLI((Ac_znBCI0=Ux?b3Oh{#Qk`m#OpUEcgMaSF zwnB!#ONa-M`N@OQ>lN;KRrv}w@uXI1cUS3j*Wq+l>h`q%o(VNeUB8z1ms9C^aUD88 zs%H%O#GU6 zj6-+6f#$@!zFfk^b-(R3@}jLaxh~Mc_t;b3SU*ditsC>IsMcC2i4I- zGAGD}jJa<%HMQG8qacT5BzTB)~K zb6(DILmd&vT2ERqFUBf~V%10`^xUKM!ei~=dt!p&RrX?~Mtqw+u$Ad?G|YY%jd`j; z+9E~6I?zesGjt0z@<<9n8i&+RZf519mtTL03(Tl{&8;tcxc)}>s;GGB-#WnG{jrzo zTl+S3uq9{zmqiXusG+_f1B0Q#FqoV!QXM=U%~Ar2OsQdH2IwFS)TdkluX9ca?dWht zl)?bnw4*lBs1lP+ONy`P{@6F`(cwLGX}9(=`DN(b8;7_2jLWRdAA~K?W;#H%=Cci@ zNXA+3cF9{W$;R{yigohHtnDJ+95h5!u5esy;n^9GQQ!Y-f~#+IO4m? z=H6e`vFv+q|9WJEuAyP~c z?ipk-Bew)C1PJxsawv3!75H#N&)?s);b;v|hz#L1rPjgZjUgLhJB2sH3pBT697KOV z9{k(wyq%0|&IGjnS|OfyRa$qgs^P1$qiweSUTS^hb?Kq`sigE7(e1}C1i;8$c2?O& z*JI1xG@4_d)crw#Dto%=*JYg2ZT1itv;2;@F|}a%FAPo!5}f7+J_t@MH(w%E#&1iEeh!q*+_^KtLD%Bem8+$^ZO7J;(wCSHDz4&4cYRNmoV?DbTLRv>06 zXCq9f=KhmCb{Bx@&KIU1Ac#2T#x!%SuXNJ>2Q>DK@(h};UtNE#&@W2Et`p9Mg=aDp zL9>9FXHWJ4*u(s>@}LK{{k=2njeXHSGpPKpfB^TT+2=2qFEsXsMBQU3LS?xhZF28t zSReg`8&4FysN}08;;f3H!QH5bB=FcI$RKE^@@_==Ay;HMD}JtyjH^#~3QLI?E1dkc zEe}QoF2zs7j8vnX9BTqcjKNkNsy7t zy3Jf0rqY%|y*~n!fIPPXP@U({+u%)Aex_ zt@|mhIl7dv7atTQi1huHw&f%}qNFE4< zA%ft5g-8pd%&wRel!Hbq(M8iQv^F)%MyWT?@~!$DwR@|BqUc~TM{9huVVci+>BSVZ zx`pdi#VtN)xFzbTZct8Q@++D!ktmF=2BF;$QPi-si_f-hZ^GCnH6V1_Fo2YB!W!G@H#_3O6ZM!vG@WfA~>Hfyy6SrMWJ8)%qlGCm1 zvU8c}BZLPx(DG!x^T0Lp5F?B0%asB$LRk)|21$_%=YqM#r9DxNM5B#Oh9;zh!;6HO zAHt&!7_n8HP#eqAplts00xc$36exsFW= zp%Q8>4bVUUk2v5F8uw-$UdPW(VB!tOdkF_~$mUn&#_|61AEc+B*70sjNyL(5=~@W; zdtJ9sM=+X|d%%TQ>Y87523wUceV!*}^H+yHAF)0&;#UmxNqGOAm*NSZ{ZCZ$hUp^C zDP5)v{%p=2m$KJGq06;kEy9nx9K}V-~FyGAs zF@2-Wg6}u|+b`n}Cx!8XAoRBVapj)pu@_15c@zGhxK12KT|5GUwYj+UAuTPq-5rkYMs&n!J<~Az)7Dv>=)PDuoy(n)X3QJKR9y(SDo^pmo{h6#?mxZ#^^Wf3%0Qj2+b@lRcjN9%v@4x|MnImLTya$>sn+dpUmJ{kBWVf}c@ox>HNMC3O@BK!1ROoa@5~%N*FXsk%{Q&oLl1$7` z%6AG}NQaAghOc?H$(*VK&J8nv=fICy$HzDHi{HEVsQqO$eJj^teZzgv-Keu^$;B6*Jgbe}k2ns9?VWK!FYhdQbnuOz8cos#yl%vR6t8vmzb_sM= z^_Jx&CU=rd)^Caf?h+D>um-m9Eek#;B6q!rv9MKYubZ?8k@SG7vi79qRJGN-ZBFHN z`_oM0p^6!?+oB}Xf%jeVv1mOp2u}P!DK!KNb_9eGNHCre$A}W{J_VhNnAi~ZA3`z* z(#n)#qtsEH!ldZqB0*+!L8i8x7LDZP(5vubqkvz#NP!aaH8p;(#wyFXzd5e2=9$(L zALmde{V%09eS~m5%BThF+gtqFys_dkpb>w}A-F^32Ly~jqSvk{gg42u7lV!=0>vW+ zJq`G2qPR^^HZllTO5w5=4J9Iemm)-CA|=uaqu<41p_MYYZ2zU}`r|%)JC?RlpVn4d z?WE{uZP4cIp|J8Wmb^#SAF%aYbevl%Ps&MuNa@omis+bT|#Ro09NYtTz&`uwFya)X&tpujV&=nHk8?Z>mlc=1-0g9)u|I{!j>d zMtWT3Ve>k%bg^t)vZZn6NbP!+IwVOSWBC`zpD!ph|Lkzx;?w2Sqms744yED56Mu_Q zMt*-U{Ex}x-zV%z`GDVK7MEg|;+VnTg$1=r^{lKc9ZgM59i8>%WpmCfXrssLb^jTI zWt+^B<0F9sPXC);*m{TA&Y33L^&`AmtsPU8@@%Fv@IJt^0dF!r5Y%9O?T(!JX=S36;w4Fe6DRl86G)v4~kxbJ+c$byvE(e`^lND2`IB|rfkGxQb!6qMH2Sh z{PcwEg%%x_kzo2MU(}Q#3wt`@w*N49H4;-IKqrq|T-hZ& zR-IA+Hx6hJy$);`Ew zp*CKUSusReF$^s}d~O@@unRY=3wO#NAmZ^o`*T=n{7b;rfTaI&0&{;ol&s#cIK{B+ zZ9|?ETs^2F$uIPv7#x3KE~11~)UhHb6ogxHz$ZH&-`C0r@i&Dvtn|ncnlDCm_meuT zB*%b?ss^s38y$T1Izo}lx0yZVlcgAZg-&nt^g~hFW@m4gIlm_&kmcEepy7*X$HXHs zDBuE)$>NhWlJO{2q#D2-GchD9M4l)ui2wZKtq6@}TTQ_{r79eK>4$I2Z^`aW&;C5= znEKn78iF7y;cF0R)Zo^$!Xu8PqeU^fe(QvTZ9-C9Q-;{Y+1C*7Fw6!koShN+JC}Q; zhNzzv_ys<#6wpwsj%k}ya)C+7V%qqGXPcwy)=xPrXmm}KcS@XdLX>TD&cf-Qp2f%T z<6BdcT~_|~(vrRPN$t<3bvyGXSp5oTxbG_s^d_~Ud*o>cp?s*lZ1k&I*@gb**{t{SM}!Xt_jS4u%jS~D)lUh z2(joZXM)p4{<|mGjxOql3*iwBD@M*f$@ zrr;m`5No;)y-4_5Fi*Fb#ztUw)HH#-=|k#yFuHpF|#YRoEDGXxr?d#)0J4TYK)O&jFErlu1D^! z`cHp}H&e6lTZzl(-GbejzC_WN!ob&j2jA_;_p9@ie!59jY2=~5b*F4R6#85Q2Js_0 zB!Aa;^1e=Mf#t2=ateRXtG9O`iGxGh2!;9+|2>#C1BOYn1jQbhS6IwJNtX8Pa4&Q9 zJs{QQ1XtweS)TvW_BttHY|9U>VpHOV9}{F{Ji;oslu>A zPK$smzZdYNa&&|c6MgwQ`Mpy&+H2Pv7bjHK@4_Z0y>k5-UU6unOjTyI z8aT*{87}MR+B!9;xLp=EQ4K_bN z*y^fe{VlypSe>{k-_g!Rdn-JDH0q!?Ib7{?BGTi*MJ?r@eOed7JH__vpRAW*V?491 z4o_z`w(9QB*Ut6XCYx2D`?k+93Dun1j^}42O>TOl$7>yDHo)HxF23zfL>eNke*k z2sF{Z&7!DPrp7k%LRf&LyiMu1qY z=kS;8Ll4p$)DV8u{0(M=2&e&k(IU#E02(^()$yjo1n5$EE}}L_9QCW0W>Dry>P2q+ zE=gYA;_E~;P)q6TPHy!I8o3?U1?IhKf5l6*!rb0{@Z9mm8{7ihctEjKyY-YniKd<)go%A7IpOFlC)o%oq`2P@I~AsLkQ0D;uR7e z27@y$CqJ|bp0Rt@hu)j=-m6{KV{yIfH7#d8%}!SL&hktG_AV)tIN9W@sOWm?m?Ai%kR3n%WsT4fiJVQ{=&5AWN7&s)OlRv&(M*@<4sVCxO7A?Dc z4?H~{M}4qFn|;y+F$HhJZo~c`Q>R0CO z5Vn6c#qqk_-x0wseh0shP~JKTCz^O>LQqPt!}AHR;tPqQ&qUOMTO~C-O{eQfmVR%O za3*|h~krb82Bov6J_N&Xn83JKhFs8rXpwfeD8%x0x zUK@s!iHH^f~c96d#j9ODixTJQ}JZ0T*;{PG}+IvyJVbWY6ow=iK+2Y%5ME3s;glMzOvV&-fquhRLWyk z%CJ`|!H-sC+nvArO=eI@q~BEJc47DLQNSYqFUW6MTVm71FqIc%tP3w>g};el0N&&8JS=c-&P zCmJ+Idim)0eldBcE-JxgAHH!H3g07{s9TXec53qi8r1D_|EN#D45 z4`O0BL=qd}jq8#efpfj~WnQ<+jjh)E-*Hsy3vI`Z@AFfO ze7pvZS8F>J+9MhV`;Z@b!~`qo>?at!lm<*Meb5HP02~fFgC(7{j3WMe zpV{d1h)hnIT#OHsjUxCpI^x^yf|LT8MJ|PHrDs?&cCHJuX3xn?j;E^}ugx}BXGog6 zqe)00&1v-?Sd_1c0zT(;+K2o53Ggp=PR^+hB%pj6lR=kc=g8=2#yX75(&>C@_fL}b z|L!0Euc>{@ueL*?pTzt{@v)osDn1w4&Ht}Wy zpz*Szi>=YF#cG68Om;q7j5Kn0u>B_9N!<_jGrt?`YonO^%6wAd>jsS`Q8`-*B65#P zCP_+x^ul7HXQ5b=O=OtKXXWb2;8*)stHo3OAZQzM6}&6=#Z`OeSKaOWGi5DoJyH;d zczs_)LSVO;ZqvywfD9JBOM+qaE=>%jouK)N0s&5Zp8@3h_a7o+E7ZS>+4)9ZH6#H* znQN8M^s8W7*Z7Mp>D3SJRx{x8t@l7R{~i!h529#kD0VQ7Ky32CyUBvHM#~Sn6H|_V zB%u^ITVosc&*4XuNxg&M(mPb(!rx9g71>{hUghl7l#MVOtljd~+>>rT5s! z8^6})QhkyeMp;ad8d`6CPyW+R)2m_J?82Gt}Wmv4N)0VfK*CDwHHbFt~Nt}Ti{$V3x z_~xh-NibMHGKI(wW3ey{e2EMbv|9d>0x9sd1Vizbdd|T?M0<3gS_kBpAx^kifC?I* zm4CnqHgRF$7a!*OQ z?(MYHT2k#IrPJ}lb+@Sqw|VHtD}!U1>KQ_F%wjGNllQUx{SPl^gVkZ-MNl{Hx3(q6 z?`8Bd%Y~H}Om>7;L`3JA%(0oH(u8dCHPlJ4W!+?exPVtCJf3yHpa;q(q@NH zZ1gd!D^>8;{XJ^Gmc^9MJtP(#vb(O6O4#<)@3z<$r;Mnsujg%n6Po7*T4xCj8$7PX z?QWIsSFgUIIzeNdQ_IAP7BUQ1)hBiLc!!IyrSKMoJYoH20H;!MbX5mR6Dmy+eT*2& zRp`+HS)7p0bmIFim#;CIyTi_<=wgaM{7zzcn9}srPP$6;)k=*qFI8>oIi#Vihu@`R z5~#TGP`F62$EXq~Z*hlDy5C9K^tjM9xUf|@d>b7mn5r&=RjKSluqyz`Uw&e@wFg6c zM_akd6m;Ep@E*4X)v)gr-Q0UDu_jc{mTYd_rzD5GFzH8jNV~~giJ^^;8wgoVE14Bs z!)7LrM=Euo7bAT>h^(N%NmOH%AENfu&9l7r23Y?ffl2Ok ztTD{-pYoaaZ0S>y$%c6|ZOG`Njc#`A;=R$XVW=SS?BlDn*{$1F}IjEOLA?`XhEC zSh8^EC$TVeEu3ThNmd>r8kTJSFHZzg1ml~CJ+dD{5<(RL=%l(GJ>=jzdthRa;KRyB z1_Vg;M)3rs!U`eT0m*xTDtP6X=mR&XN*HyTVdnS)bux|-M__}j>QTAOs=oVbzG=z^ zeA#L z0Ok7&cgw~84lq9G`__tT%^HVwnaL|gDagKWV}{MdRtxX3=)3{ORrKaD0muE^hNqy1I2w9)J)4{E zRX_H!C+#aKnU{vDUeG1@JiFl;0T*({1g83&n1edPnuXMijHKqpW=IXoT16mH*B`WF z%BYGUfRVO}9bqVS#Y95lMGhse#N{O9(wTy)@_a*+v7Da{&u>$>7VTrliu*#*wpe{j zYk|46cB{13U)47g2Is0kKZnTUvbmdeWGosaqy+2m-0!UN9yNu~M74(egG zGZh=OLWp>uwQxx(X@Bj*Jqb!HK)#3tB#h>N)cwvdZd3%>c3hXzb|{lJtx9uQE9{Bi zyCu2gaw>@c+N=cH%tQqwNXt*(W}kAI2-~#y&{g@cbp%`sJuZ|)-j>)7vnZlCp$@t+ z^@(sa@_ueEax(v-(NZRRx+3j+!u!m}%ij_z#@3n|QoI!4c+~F!g zZIpZHQ9jpEq8B{(882P_;X?}?60-^{u1w3L9Q;_Js53{3*`jJ!(L| zXFFU%N(vG+oxKzSt$2CCO5V4^PqGV?_d6H77scHLfCMuj#xM`goCNWgzXR0!8Id;5 zk7sNkkATlxvLWR)-+Qpb_iSAvCc5aKSJ*UQ1R_ykrf+|hb+~*)=69V6>~h?1S%)`{ z1*HsLGu(b_#EDAH&i+lED430+menC);~pf0PfVq$>7l1Y87ECTvO$upAsVbB8U_+k zuq2CNVu;e~20D~-3!91s;-LQ!k%4M~io*fxr^gZEr`Eqh;_jQ`ga}KfME{J zpFl2oLljv{mWvG?kSMA=`Vs^TF^A6Fqr*s|B&CakhJz=^a$HLZ72YgV^NgmF26()> z{r*}7=AggY!m@2YPWsrIFO^rdrR79x@TD=_j(GL*?Y8ROPG83OZwcH&Hy5Sps^~k- zGPr=;hEuwGN$m?iyJzUGLoeHKo6m80&r;hCDsLwYu60^|v`k#POs<}!K4*Wvzn;G8 z>r^LZ{0V?}2qERlpaS)hh8bE0l}O{zI6A_SgWr-*gIN@7c|y^lu%cyA3kM!U3qOm7 z6hwGEqWWSGOF$; z5@m0r9r2>|TyMt}>xDX}l?DyN!)S45jTSu1!&wt_kfn9Iz$b7nDC z*=1bF$P;*}tM1l41 zC}iYKOdOFw{~~Y1uaWVxx(t37KbsWMW5{F11(ox2t?SpvZ`^!tvV0UwID8K&F&v;> z_TkrSSRcTt-oRrwv^DGFc|V@wrT$sK!!q|c&+DuVB>PX^o=popZ7h>~CcY&lCf=@? z#7}Mp^z`(sqCOZr@|&2L00Sm`dA2|Sr{1@{(tcAEl5y{wX~CNQr7g_GMMZyW4gQ<4 z^M74!e~&D<;dzGy<%b4wBYp|N&yt^HkpZ(xt4trR+ZXO11C!+aUXed}bQE#(W}npK zXFYwF2A0ao8!2eUUW4!2gYI(z+olQ!KQzv%G1pn%3rU1(AJ`JL`>+05#sB3kJt;A) zB>PuU{l~Y!HYpn>>8BAPNV0k-`rP$^fdd^31Pg}yn@PvN`8T|7?~)Mo1IX#4iu4-d zqBo0Orbb6)^V}pWY=Ix!hwc9QXKyyEx#r(}aMj)>s-JQUn$7(xr-RP)rqw;)3-+E% zn$)^?+wkT+AV=59ifRktkkR3xAtJD_@O?t!c1aXKyYk-RiwWQ_Qy;*;rJp3@YlWw5 zn*3*Mv}F0rkmh4r>0kdCN)kl!TsSh2)1tKhlq8HTKHNDzG_W+T2ip7@*AA{77=jf% z!_26F@dQd>gBNBD+{ZSAIp!B0aKM_JLQ``*KY5A4xkgN}C;6^__RruT;bD(+(rcO_ zJfdJn=iwIGH&(ACSJ}xWj16OCh&)V#yc}&<1g2Ek5epFyj2n&=3gUor;%f$@fA4lc zEmt>)a@rF{QsK5Cgce?fya-ANKH&&`5)tXOFJQljpLjGHpA`HC0u60yItlEDQ!**8 zp+f=AUQPXq&8Fk05me?7JH}{D%m$7!DJej-e@nWpWfbeTfEWK*&9UY~TtMH`lWF%= znbvV?(;A)cOI$^9-rfsx+pW}q>&*8c*)iEEIwoFgeHR(;UgftA zlOyLit!ci)j-BMUBt+aV| z%{2~P0J~W_J4$*bCX{6XKHso1*vXNeoWl90l;-?gOmM`HJR74Y)ZJQPC>Mn z(>d&U`|vtUsrS$if!|GW@O{h*Zt*K`u$7yTsgHuPzRhKS2me;)#QebTDmWL&UGqCp zuUuZ;n<6Y2RRTPLzDSvunfM0O~tU>KtUY&uG=pusr^}4tau5b<3R; z$koo%75HnPQ*l~9G7T_2iovosf(rWmMD?;qjw6g?KSloJ$xC=Jz(=jXVAjq27;L?? zD&6%Hq|t3`PFe)S2Ee5@v(1PETJqsFI)y2F|4LKV5%A$DXM0u;9xjV|f<)weJyCBx zW^fwQKKiG3nAl`#za&ZaqJR8dvDmeAd2#_+$%IpE&m94VS$$*;O;SjRg-FsVLM*65 zQwqGhlK%$z?DHZJ&FHz*He1@hF_)fTHErVxqq!_u1#f>RI_s6BZbkh5JlRsyS&D-OpGwKe=1qJFu|JMijpXM9g6;|Kz4QdjUaG*ak z*B|c`6p``H!i_XKajp!#JEC#xeTb?gVGRPgdWOh)|-H z$(=~2!E!_U7@R=nFXpk^Tbs@6!k^He=$~L;v=MPVnCiW(3~ncuw$INQ?tCI?Tvsp4 zGI@Dv*DszgTjunj0Ey@KiY<4)kK7km@7%K6Px0d8?&KW5@*iw2MOr4goJzoYA(T3_ z88l@fQkES`Rv8Bj#A_}cAaZ59;WUw_gZt?pCY({}Le5%OnGU7!Ed}GRX`a{8FB0!# za1ySRtIO-)@i~!zU$|YxP>+mHTbw2y-l~U1W?z~xo1=!{i@AvWi*i} zv{nKU503&v#w*A;8UQz{y_5A(=lpp8aH>#6M`Ak-->T%B-%_tuIiJn~sgOxGhG4<> z$3bY1JyMlYSea5>l^qOeTm&6Ogjh!P8(5$S3brIzTrw6Z2GtkoSGdD7fIr%qVMv(B ziF>?obsR2E1T!5bxdlDS&>|Ci`x{629)1rb7D2!4DGP*nVH??RDM5HAS<*l#LWJ-D zG&})e_xRo7ZzZy0yEmBMy4ueGo0?61G}p-SF)vlp&U#5Xx=H4hvRSpf)@#Q+Ox08G zcbN?!MXRK}c=~a~0VtQZUzUEE!8uQ1o9VqKTNQ=7M6d5Ooqm+V(NE)?+HBmUQTJPC zBl{r@$7_ITHQ{Ay=>2E@i-Fid`{2Rb@KLxv?OL9SBWJf@XH|Qh1`}hjc1&IVz_*1R zq;L2bdr)Wc)WrNtjyFm;$Y_!Z=-h$p@DQ*8VRM1M$gH5KyAVowPGvyVt)(2y@;OV+ zrO4t(46=Sjtitzqn@m5-)rOzQMw#(D-sK_j0kLMRSsy)tJV9^8#0Y^+>u}JC4><4lbW-tY91bR;x zx;mfPAUvXQ?CK~wV%d_>uN*V+*iTKbr=@wWsceP7<;`q$9VAgjsn=`Y>~TI3T%51LBLf%GGM%m$Dn8N(tK;q z%BafZQjz-8-Oo=A>t<@MfdluP>iMB&0!EJbJX<_I-TX+#i|vec3Uv>=>#n5y!k>la ziSLE2+MH-P3ukT(PK(5gNjH1g%2eRyR>o}FvY8zF>MF0wyKV3L7AUWxn-W%+WPr^L z_jLh;)`PY}*^USmgh|RDTyBYpFE|^m!0B3(Vd^GzvB!(myI}jw{g(9f^hjGw$9Y&( z;tuik1I{r(Y;5e)miP6h`}W5Zr!Odo`s0YJyVucY@2OV1lBx544oX>S58U%{)f^TE z#&6{VcRKVLacClgjYcp4Rq)wRQZk(3Yvljm6VCYeOx$=*wDXAIhr+Dr0^bx>5qEt1Gc%*u0P_q z=2b3IH|t>Kc$jfHS6T7%H*Q}0G(HXT#>>XeW_)u@@h#3N%rQxiM7J?W^XHCAgmB;{ zzA;Gj@3Bqt$AfXDhVW1HCmm(wq+ox%{gL6JGBUFD%a%{y7S5}S^=1{gb3E`5E?edD zOHFS_)wNe~8CtOn-lNO7KTk~(U^lt?|8RB94|TY2J6mhnty;Bgd)c;ayLMVzwwG-! zTg$Fx*U84xsnh8_pC8}v^GDpzb>Elx{?>7m2B5e%GY_g^IN*O}C!_A=niN>4SFd4y z-(0T*Re?RvAqo7&_q=tsWO=S;qKbv4!V;pSQc7r}l=1z5I8Fe{?SAox1E~-9@E@iQ zj4$>%Zd6D22v38Ydepe7F!TWzNw|rFYE3NRp^1oc4QBGNO@AcFwRfCFvi`n+W~LCg zqZW+u*#vB79%hUPa`pn755BrMnm@T6x6jXLASi4Wy2$}CqUI6e@9~nU?2;|)sZ4x@ ze*(Q{X+W~km9Wejq6}Fy_OzV^a;2mY?C)6siJTw5^nmdVIk|frjEjiH0+o8PB^T}F zANeHJX)zf>NQ~t>l;9-L`QyM$MqfgY7A!xkl||=X8jiBhf}Pj za`WN*pZL9$$$d_mS4ANg#3uG^?X-OtnJ-nYFG^y=PCEwz+o+yKY_s}-%j2Lsr?$nl zJbjhCXn{QW7%*-+(rEo=-a#W9*R$0(C6BG8WniK zMX(N7u*Y)_GajQefQWp<81;+N-x#l*RSYT9nr`K8AGy-zSI(Y3w_Paej#~K)m$Y6g z+QqgTbsZ|T%qBI?7Ney*PZ*K?YUpPRuJc_do7JL!N?mi2Z!-F5(?vi1pptu?adlAr zYcH2`iR%Hd^%pYA*(0-u_g_tFZnv|WJS>5qu7@&K=-&LDfs-?+DkkGhgLgre)$vw7$8A}H zvi7-QpBZi=Y1%O0s36EL^m4fTKF_UeYGT_8V>kSCtahj?m8RVx^954M)k^k zRl-v`YaD|PNXGLid41E(Z|;(;9p5M(vK)^G zm|i}JJVW|O#>T+7?VgAEy}iAtHTa`0s`;YEVAxaSX3?R1?_s_iXn)60>$tJ+R;f-k zU}9Vh$T5HF1$bG=|LkJ&nPQM!$R}tY7B68u8lUMiQRK5Iw(yO(yL$so^>GAA*s~5n zjP>2Y_(#hAQA&UjIP(>Gvo7|3-jpikDK<#J#0(*ifIq~-MK2PPkleqQ$ic3avYca7 zx|Y3q8eHKrJW^zBc(=2bc^=SxZ>6r{yNgt7M2l83 z7eITk43&d`=(ai_SLH|b2lbq@${e2YHI;H(ROOihIbFPqiWb~vc**lm_Ts*}EGMMgxsm1E) zap}Rra)<4;Uq=Ud{Da0E3tX>Tb8rcRr5u%U#M8mG`!CelYtSMZDRYdtrVuOGFv)Tv z5_Xv1;+%jGt&_j-%%~y!J@VmYa~})v4*nFQ5bmNp?xCiSmj2P(W+fQhfUzwt46~X- zaQ?$cqe9|7@pVoHjtF&GPMl_d7vmpz!QeM){ipO$ z*gg`I>1;n7JnX%W)KVGvYmsEPJ(FhxMy3&nHbUi!#wji=3qx<$AeS0A1WS-9cCQRV zM#E!EOr(Rc{%vp`*vyE(6^Kh}gq7OeqAlPnbu?LLU*E}K(^bNHrxYke^}0|Cs`e$Q z-_dUU<{IXywAA^liYHL9cQyCP-fKG|33Poi1_&tl6$G>>0sgPLh97aEee?5CHUi}}Z4 z7aPzeNxUf!P;P6)!-00uzRv~-2E{IT2918>20tt8B6pY>SjNFGgX~RYplm$xFQ)dZ~Qq#`q@0fFHJ@RPWHZ*r&R>y7-zrN(Ve(SJ=;= zO2UEC(3t<*K?PaP|9xV?1yYbb;_u}Ma>c($7mv_NLss?K6;fIT%i8Y>E84LV;CUu_ z30QV?ZoX-KUpbBD8t%a)2~=sjl^i@7m`FPLyLUPKLkJ4zY}zi^&bsx=)xGpI)}5oA zpKlxIFB!>u3D3c-d`|7l&0?~(7339{OV~v2LU<*45)79SNH{R5QlIFgQB2bTD3z!m zFkMt>u^c@2?aY6WP)j5u(Mtbn5nuVUVl>F=hwYNT)eHiVzyVB2xl0}Pn+{3KQ;|fC z8}`PtLdqSI!2e#?r{A?ZtPR%m6L^;doK?ey`9tM7h?p_yW|0}0fbepj7}E_5;A6st zrlZ%zom7C!@cV%Mww)#SzLf`h3w4CPA1ZkC!(9@}>j4UQ0Of1|<)skC!2{tzjbFf? z{??5alx@67i8X&s+h~3mq>wRZ`7$qyCa|a)RV*KpiW_Rdn7%?(ne)YY>QLv&m@cMU zv#ehA*I}U^QGpTQcaW}vqJ^{ReuYac2dQ0k)E{O%`*K*UAwm!4gg-rr+sKG`&x1ud z1ffS9(Jh*(aYN4BHpoO#U#Z97VKv~S(6|}ZO2jqbB;*T4#QTW`W^Q!)4ee&+Lfvx~ zH{5fV%34;vhB_Ir&jTlFx-P)`%@aX)M2m&IAU1yRNPmd}oPO&-0D zS8xg4{uKUATOMUyHa);}aPmf4hRA;TONq+ExZeQFo7hU(+X~6>d!0^qyWrtci+t0{ zFx#VC(25u+#`)Bw%i{+&;Vb3XL)7>)_b1D}qneDjMw{m^M=!MB$g(<4f1f#dCa9b9J6c3F8>4({( zRQreNJ>kY8QD4ntSANm|IKyO_nLX%(qGqgFvRAA^wwIxEb}XpH2uy^oZmL zN&B1QVuCu*S0-yvp5G~ax|qGgompf4!n<|x$s+B&rSs-uW?wr?ktMvkcI26N0Xhvu zkEiR)*ShX4GPhW|1wWvf@UL{zusI4d!d{v~p+ zB1dz#EkwHYTSD%R!u_E65HXqq1$*syVO0wRQTA>VOW^&721gCSxXaH?{0 zW7xmIgYKKq09kq!GF<&;yALqC^x0qhOMyyG!67v>;;pjZaim#+RKGqqhMsFt&4`r)yH#zELz@MgUYKED<- zsO*cM!s!TORln^QaK7Z7>YQdvHl)L61AR&8NXO((SJ!CiVaXuYK#8nW3gXVaAW>{N zKkbIb*$Do}qB3pTa^H#n9#P=mluOK`k?HWeG}4%07VOG=Yxnb^5CsfDaWh5uXGZ%^ zjh0IwCx^@iK)d;v&2W*AjpI7Zk*yV!V{p=md51mgmbgcR%T5IAMC(`x^1<{`U)yi1 z_gZS*^v{dVbYc7#ypZlZgC(dP-1@uxx731&s7o1(PRJT;7_1cphi^(SJnd7jo)sjL zlDN_nCrZNz21zcKnjMLTIMiIt1G9iA+3EtSbm9p3NJL!z>XjOR;(FDzqve;_k8Cey^sv((s)o0$yeS__SA}{`W8O?dY?M>J7dG$dV zpD9)%w}G#6e`4`|N&Q|yw?$BjR{2EDW^!7ANMOm8^c)%Y<(y0`e}&wqaNt$^P_|Io z75T7dFRf>e$ML)3GWbFNpK;@H$Cq5AG_Dofp0ga$X}VMVw(9zT;n{oT+!kufGSv~U z*?R#|;uv159{kiE55-5qjkN79^fq#qjo{wTyd8%{8o?U#Ui`g+Cw`|J=7qxx93(2wzp$`?D^ zAqx&!c~eQ%A7rrpmHe^hPI%UIsBkHX9N z{3w271r{!{N}HFA@(^mdiYE758P;O&Am4zdC;hb9VTHbGZ*%>#V*IR_X*r0z9bazU z@(|wR*8{Jx!+V!m(n#j{t4bm<^c>#Qa^F8_j8&2x$AFS>R{0;0#Uz>9+ZxQm$1cS!`EuVTgod)U+mOugpdIwDmuDT z(IWH>aF8V1+0{i34La2ql6X%Du^!HNy1)M~!7PsoCXVURU{n z=;Y;=3uVf{Ku8aZU~DlIJ_3;!+p7XH}E;mc+FnWP^hzBtEtJ(PZ6^FxLJo{{VxeP(~jh< zQ%+a86jZq#RA6VN=#f2JD)?UgFn}62iYAz*Jjfy?6PHG%_DZ_w6j?-^g;W741JjJ7 zYP>zS=_G;SX+g;1dEv~6a-q$n$m4q?Wf#p4LucE&glD0UT2?a!=iP-giP?(Kay(>F zO^O>Y<=us3@V|)lOHIdOf)$gEP2=1eO1nl9S@+7p59s_9ave409t zts!LO;Flx2;YsyGQ@+4N!ieQ37VQM*?O2NcnvDT7fFzP|wEHZRIQ z4?BV%hjs1yK0z!Z3V0!_QXlD28*lmJCCO8XXkfkhP3JAQJZn$43Yv#|PgN*RJ-ayx zkV^pVB1}Mq;DFpR^L};<_H|TrSQKviVfip-p*#dQdGyp&D@2#}Z$NxD0(gPbOm0+0 zI9$9TdxCOeJRU3hNOvX<3#v{YJ-z(JdmXK|Um}f;Z*m@z1g^UNbw3e0iRu%$w_K?OY=DaLQr8Q+eVncPdZleo zcrv}(mk=)aBT|@^qe(wQm#g?>FZ+z6l1A#2uY1UbP35&JxqCT#2W4Qhh%dBthaOvI zE(vA!LCq@;e^=e%k(_k0IMrk0LTSefA*vYCo^cNQhp}~YmTCDB496YAY&V^)c7tgN zG@Meb%lYG!3XCg+ONN|ZMrIB$E>!GxJgSyG>m43u{$TSR*Wb(r4;l*WusB}5c$Irc zcg!%N8zr0isv4Z--am#PXlMUj4rlCnB7j!Q2;;1Hu~rLpXl1Y1RbCYedIjaH&#nJ- zm;5~kH&PTyo0HU-Y)4TnkdsbgIS*6r9^1MBYi(&Z%TVSpKT3E{Der_Wpnlv`4vtCu z^91j?eK!*@%@h3H@kn^3Mu0W5DVNJepnTdxIq#B~Z-vj@JOuc#JH;2uwSzI?=bC-@ zFES`0csM&gT_&$KR@o_j@={$VKDCXQ65aF(lLq>MvnbLzuyG>5Zx&Ya6qR6-#&K)oa zsV|XED;Xe%8^6C95;v<&`e@Djnx_des=4Xa=n~NkZa4BQ{4g#iPhQ5wL&Je+oFtHI z-qBO&|6`AC{UrK!pXa4yWG}XJ+w$}>TV=U^&9sG9p@qHs;K$Zs-D@@L!NcQuty%~J z7+GGdn-$du72k>4f6+!lC*;mENf^NwF6&eYt-Idjd zSiSMe?y&Xek)!q?i-8h!FdB1pmVa$3HuKZGGP6_BEonT|led*j(OI*WcjCyc=D3)o zT+dlN^Q`3EHFzr<8rcss_Gh8Fr1_j1SAy`pll2|O08RuVbcfv@cZVHyKpDPI6kkXj zO63&(&Ehw1g~jx!=qc9oY*xszBYd9Em>8XeW;9%Rsv@hJ@@~pfHbkw-Ghl1`5K~?# z;Qa3>@`lq0M^5SiXd8aAe)ZT(P7eL){cKh3S@jzDf|gzA|m!DVtoR zaqqC0=Q)CnGWgxGP5-Ir0rT%AXZ@qD3L$nO!!`{7&w=C5W$?ImsJVwtg zDEnZPy&vHGUG`6QFC%4yP2d&Nc2MKzGlkcN`|nJ{#hDN3$ykBLV#|eeFPJ4W3JGh( zA7>0u>}U%4Z{5%`wGj~66*fI{%wRD6e_-Cnt~#z`PDJlbt{EfO^MsMr-)&WUV6lPi z9Ji6P@3ygK3<(ndrT5*{V(PmhTleMbe{FSh7$M~eRo`Ip28Ei2qFZB4PAAX}-vMlAKaoQUf%GSsW* z!0nC$4hPdP+Vddc4RR*#>y0TIPa))l%OS#J!0Ls5r=2W>So1~qs{aMtB|CioYNghwC}Xl%C?R&kAz+_M-@rn6fr!Vniyujq2;rb z?C>Vi097k*C!wwONAZVbhNbS`MQt=%re8DiXRfZuTMB%9x@q5UfPGX?#)tXK6ducj z&|($nnrv#u;&VMw`Fp}Q#M;Wm<9I?0i`sU+NctoFJO4qV?@q98`NCEJ+|=|Y1q2B= zsat1s>SpuV?v?JF_tj-TYs!ekRJi~DT$gkEOD2x?$sE;-RVcm4Pej{z^S^3)o2~6>P*g(^$c{1nl4+=whZ(@=Kb9IY*d9A zTfLLK=vUR=^;>zPlIQ#qj|GMMC%0MRqi2sE8r1{hmO?M}yP5_zVgGi#3afaue9{5s zV>nm}cllN{r~m_xl80P>sbw!g8}c5T6@)0NP5kWTKF1aIU322U?b@&N^X_<+GN2;* zmpp-g>9nE7!lnJZkHr z43Qva)=6esaf`@)eh{cx(7(9N4UhQK0Ejlbj>o%-A^3a=q(mL1Kwo<2)q3*#1?kut zK_o=Y5Wdo?o_j2w6oZj_`z81NgDhGHHM%jEQ=bvTiSR4bI zsJc62Ut1;R0*QTgt__3u!dRKqu)?q#H|DVFUk1k*SPc%C!&3IK`hC0bVi;Qc&)2JVBIq*6)n(}W`|6r=#F}$gW+vgHhKo)aUb!o*Y)rVP%p7( zH-3|_rj38e%$?elhwhY@6lJb3zGu&Z$v;(7k{r;?@& zhuWqt-_NHwjn5w)+2;lYYdq(SHtN_aC={5;yVJ$oIE#H%gI?2{Ft=ry`c^d?IfdUZ z=W^(>n+Om}X73a-uktvh$g*T#KJ~>~lXB^XAAS3vf6>qvv>&w|IjJnGvCekn!!&^u zO~T{7wNEaUE+JCKr)eY9kCI-X=LLp^mOe#c(508~la7$EG}~aDlW;Fp%X(HL*Bw<` z;;!d=h_(JbcI!C)mZq!ZezSK+-ms)ze*S1=w+W~{l+&1$mp*R^t*gnR z*3NEib!@H$)EHV4lMJ@l6tqc+%(P&x#gNJ-lzItX*JT~22<>n=_XdI|rqS|$b;F~! zgt3so?@lv2;$xG?tm%`^7%;?(n+xagQw}Z3Q`zSgskcER=292M;**=F>X#lSZvxav zWsB+m0Z9vYY5En1KfuUKa2vqrBSjChGour^8$_q1Aal>kMTuifXEK|KE2g%^n$DcZ zwQrtu_T5iUuX%#;>O1N9{psp3rXPjWJihca6>SN!kC0qcn3D~AaMKgKqw7n~yCVVJ z!*#M27DB65+~kr0-E66WCN3<%`e>V|OB6enrsKNys@m)WddM#I7fMry% zOVi*1)bse$W`F!{-p<<8O|q$t_T5R@UaofV!C;gF4Fyj84mVHR)EBCZyn`2r#{T4LS_Bt%lF5!3=8r zbW>T>Z;J*6n24gfgf~iY@7G^=A%&b1m5`IF)>vaHmX6QLgf37c8kBxcLO#yWz_8J~X)p#^HW?0_XR=N>(DLkfSUG?0xOp)$gAXas^l%uO7Gw zB?F3nzWShIUqa(vf4}i+z50!feH3b*l}VTuN~oRQi*G}z-G>SYVd=z`b}!%*i(`sL zF_ z^NO28$UlWGI=rRtD_8SYZ{IWKw21oNA|1XKu4T_^m1)J@lk~R}tLebFyPv_x&HIoR zQjQ|Y++ty>Z`sZ|{mo~)+{vDAy;X?Y7;l`#PVa83c5|1zQhL9rG|>n6OhQbLF9?@Q zA^y%_t>b6nI@EvN$>~TXHJe#SB)LtecH?=9OSTJ!3kreSaarjmgCWbjHlHqtaO%Bi zjX0RagO?GKfo?)2sIu8C4BwQEOv6W%G2hmU9t&ef3fs>HnufPzQ=MNIvK~J#T`E?H zq^zf>u4N<%l`vB!Hu;s5e5|#xk_y94LyBeW5pGS zhOQiVF!9}-?#GCscsHbUq6A|9GRi!}%}Q;7sb(~YLUF8uIeYSW2nevVpX!w-Y7433 zUMPwXNGUSYD_(!~L%F(QRAEjP-6|H{Xj$HTN4*bOO;qfbWeFDHws(^GKdnjYuJ|=G z^=n-z3%zyZB6rxR5Ax~rhphX{wASgmQSX;U(d zo2%A8gN)9(B*pC?77u{m($&@F)>^G@C_HyF}e&R*8nektqsVBKDDv2P5sSN z=$>4BK%XCU7xyQsSZMVJwrIQe`SS9zPAJvqZ-x<6Uz4q%DQnOewIMho1T4naXdDBaA>y|}Qj0L^EE9wwoH6e{d?nn-1gwpJHn(1$rdd!EhZorEcnJmm;jzLe8r+ zCe>{CRC16af^SlO{%JuF_quS!Xm%@@^&9d+LWdKGZ!$w3gF#(K>MhFZ`%UcnY=<%0i zmZ1tc5Zh!0$)ZJ5+rzSx{bcSGz-CCMy6^ew%b4VAcd;Aj&?lw^QmsS_XyiPpyz94B zfP)?}l^N0VG{|qf(sr)Dgyz*pXRYA9>X+a3M|Lh2QPNJ?;94?-S`V8?(-hf%FZ0W? zU_?_3DWg($53$&D?yCha)c2`C+!qm!un!XfP^K8o+Y$`&X)lDC5=s#3T)0!?{{}#4 zXG;#IB2if%R*CPYK;;r9;f2_>pN?;}uGvN{olfl;=oKGM(Yh8RD&^z=!^!HBQtPDN zOY3H}Wy#QPmyA+f4doyMh*+{;5OIF;*77t2xYvgjOXl%4Dq?vF?=U^Xs_<=#&82SRFtd7g);B(I zLHX9)EKl~U^hrbd{&>$Re(^)@vU*RuVzMDz*o(_nX6$-DO$TMT&8)}duU=8-_0Gko zHvCKF3&yK{Az6l)IEe-^3w7ohHyegu0y7g$He)9YtFHU|3bJ4<9cJt)lan+a&)}oz zU8Ca@ps{YY$Jv9_=Vd!f#?TL@lXJ`k`eev9q#`bbEuZK3WO%UGCj>FqFxT4~zc2V3 zNBrHO+0W+9tMd^mcoA+ivzD7_+?`qh|IJk!QJ;XW1Z!7}|GG6zHwyF`1kU$!L3M%J z-y5`r*tp4*oJ6vhGPO4I4Y@Stt6VQQeX#T*?w{M^T9ayWLx@JyX_1NZBFLCn!@1cF zqxLu)S0XE|=d@NFzvw35x1QXQ$fUMNO=J!H4c~hqaP}P4Gi<9Yp8d;VrjD&2j?tcE z#g2j+U+8a-`5gncF!vCH*6DBeV%te=W2PK~T=U~X=Dn`nhD!4TC66^b0#0(M#G-h=#M zLF*(Q<*Ds6?98*jbNJn8a3)@2BcMTv#}nPGT3x0Nt5qlbdctmnIvK0Nd29B)YSnR! z7g1xUXtS5tlce#?e=oi)Hany_)6k;_NY#1Oh#9mAH(Cv}Zt}Grvh1Y$vX?5? za>$R1F=rM0r7RdUeD!=_gBSP~=KAEkLUE9+$SUhBQq*8^7i^ws%I(_;ruio3Vs8&x zs{eLq$H+4v4!OpJ5;al8TsBVI-2z-(o@Qnt)@$|FM;MrxjA;|KhHW!hJc>b$gUnga zI0CKTpj-Ol%8F3Hx2+ePUJkXBhEa;w1-{!+G05$IQ1xKgQgRWjJY%{dxh5I(Ci)@q z{im>*K)AU&Rg@kx!rx%S&^->X$zSwyEM~CmZK{x@1I(JEVtZs|QCHkAm@|1ZxyCa1j<$L*obeW9yC%q=Nv8tOu~dM%=F)NSiqF^L*oj z*mHj2sfgmKh~P=6MkAyY^_R#22i(qoe0W4I9^1Kqug@zJQ!KKW`0jw?Z~^8YH`Kou z#ly4n>jA~%4N&99kaVgicZTO6%kzEeJ;#DK2>IFn0WMnM!_RQo{Y-FtKiA=P*l{=X zE`Co`K{LW9&hjVGB%Yh<}zcysGKw{*Kb3`ZKxhClVC3gnG*87G(3%IEZm zdVe<@AvIZ>1gBmj9tGiQ{N}A1vUZI!RB9Lshte#Mo7abX0$tP=xqbAQ|m8*8Vd%ez+jINDO^P&0Fr}-i~LY}RG z>s~91_H~t-#+v1UWkMhuHjF9bPP+Fua%t1A)xwV%uA=HquL=uM+z&0_?==d>)?Jl` zF>(6#DY-2%T@ts<1|f9FDSJd{$-p~1ODCNXCv%L?><%R@NDfx9WE3)5&Ef;K z%nwfQs@GV&$pc6kRj`}!iWzvvl5ywze=5IENaU>b$phaiEJNd z4LM>Q+?ce=G!1!GNJlQ8zKIN6;@ZQ%9`coJ3dTw$Q+8l+B<3>*Vq`o@tf#PML z@zcce`Whi{hV=j#x{hLwQ7|%BYF1lz6inRO^RAoNxA?J^c2>A(6ReVP zsIhg@`{(;j&UWPH_sH(TtuQGLI;rw19(m{DQ}UPM;UC$!g1MIG+cC`FEMxAbYXubB zjxJQ~wH>E`1aqn=a3N%!*$Bh>FPMNTh_?diMcbB7q9SWYuhF&3$teZchl8AxQ;hz~ z3ly&sCi$Pi=0BCu6xXa$Cg)*W-&^f-KGw!4b>b$l zD=NG99rB7zDH_ytxLk|9r_&krR@`AP^Y+^J9%yR1<10!Iyor-3PDxo{LBbSh&pgNJ*hrCBUAUR3kb+dk$vG!fFD%9bqvLOBO5s2F_n3p; z3PC^iI=1H5oEzvwqFDAPM1|{?yc!K64)Rk8uB*KvsL5c>b=^hl6B3$cBFhN4?=G;O z7-urHATeeHvQF|?c#7io4c2%5DN3>}ws10Z{zVQ{T>kpg(shN}HDn&-9raf+UFa;8 zzDcPnC{F@?ym@UbU_8vu`+^UwqfbK{C)UPw8&<^@c&fO0Rcfn9uCJOlE-=Q$ zbAGhL*vnsA3dE;-G+(5ejUdL_*voNQ%*PIbKkQIS@BD60;%Gask*;lR63AjHH|&j6 z>*-;1?6n0OB|Hn{ML`9VgfAsMR~ewIGVrW#YNw3u%T+C!sMg1TM$t2ke|e76uece3XRZ77;Y*M1`J-`lRHs(!TaZM5!$pgFv@h@H-o0$zS#1H^;2EQp z3u%)z%B!&_;UdAD?J9>QM~u|*k>u35ZAYb<>qt@EQ!-50@R$CvV)<9L|NPQ zYsqxpiHJ*se>gGZvp$+FaqQmE1A-f{@JM#b=^uOWr>1}ZA}<6ebZt9_RehBqUb1_S zDRCKTKUy3%+LeDN3!@64c>w>pkE;~ccQJJ@CPbIZQH%;ylgDQd+%U}Z*j3su9BMz% z9k=D`E>d)A^uAezsVXgHjs3-zLfb~0FgeKfnf-eFbS7pC zlkmoHH46JbFVFl2%G(V049m?}MeySCbQTH3TiE07miU3Gq{T;OJoXWo9p`i8>#zm& zT7!xmsucHxRSz}#xM#Nzk?R)Asyht>eqk1zgC82%)O@_oDdN3{1+A*A($MySMY0K7p z0`yIuD=69IULk-*?bcmx`Eft(w5pI=gk7(c*X3g6kn*ga1aA9+^qDIO5F!QPpd8Z) z%&T_qTRrh975O^vUjr@GaiFU8=dR!Is8s1|b91v*G5vZaZneFe_vbtOFnoEnEUw{0 zCAnpU0@4rM#q;=;Z#eqRUNIiyI$9i+wGOq!(3xRJ`_2vw{S>r8ssQ^M?%H)mm0{!& zTzgcjd90=P&e3NKb>l38h{wcmB%_OrjE(!!-0lGH(b+EJ8Djo1*PnZR9?q7ym4zOU z4N>XE5J95@&=zeZWaK{8d}jAuj6rC};(yg*JHNo5A0r3F5Afs?gUHy^T9Zo`fA^GrDxMc`<_~OkS~ItNAEbOxn8#f zaR%9DG_vR{y=sHXeJwqjo|e`_eugVEPSY#C#&lxjTK-&~S)DVs%#-9xRX=9CAq2^a zkK@K4P`bSyQeuces=y0B4)SY$tixYdy#2=mm2sYo|1Bt2gwJF09D|x?s!)QeJO&rE zvmsi2PnZt^Pld@%;Ym7hT<|$?2-qkn^^;;3rU#U0zcuc#<;U-4#Tx4-#gK@0R9qPg zj!X+EA`2*^3n-$fDC580&HhMQgiktnOL`7YI_OcK8Vp>`P@Su;+v`#s`(wgx^*tb` zNv?sO_Aly?z?8b2$1@X1b^;9Qy~D=Qi;lqK)EE-cZL#+?tu|<4dYzuOXY;3>y;Tn6 zVxRO>U8_vJs*>@1XaByBQz=T8fKE0nk#3!N{@s9~YFHtfk{A~^gboH%&51Qz4XN)k_i_Atfwlhm5QN%b)~JGg-kz~E^6-x@bX8S)9!FNK{*_Oyv;N6 zVuRgcH)v?$S(V;J{$;0O%d3Ty&hX6~ku}ZmIZ7gPT&E_ioI-;l5o(~9m425sKyoso zkhsaHe#$K_doQn9u#x}F!ck*hPP2Y17TxDo!7_=9rcRRo#|wra(5`NjZ=Q?=@dO7C zDsUjS9I3hAC0gcis=Ve+ZHYfxjxVW_VLis6R6dL5H>7kcuu|4rjt=>`(p^98)5973 zmUhazQr0yrQuiMAv9Bp$%$0Efo%c@XI$4|2>a=EW zAV&?jk3^#Ll1wvEl@`IKm+Fgi&<^9SpeN!f7qNZ^UL}RLlbQSE(fXxQk4R<}$xW#w z(>ef0qMK4z%-HKqe0L3+bd?SbvlUF-XLC=}g;y>^H?C?@PN%DMjO%Aqr~;K?7yuYN z+qgRf%EBrI0=K_^+x>}DVrq-mlquXY5yUDVd}4$z0a=%^@@PZph0y-wz9yd0bFl zBq?s2A5{9&`?&51jl#8md#?+d#O1 z9b@U4@>y9h_~pKB+7ueB^Zy^HV*pin6zUrBivSM_9#GmWDy4eIQcOaXIm|mIcei;S z2_Ja?rjXOMw1sco&3p~sMr#pUsen)@Bc82ks3LGc`GyIK*kgdP@23LE4pG0056nNt zz`&uFY|LFarvTijR_8^<$2iFb}E1Xd0=^?_eoK2lb!- zBx7Jdd(9c5RU#6eBGU{U$ekt0-6hEZ3+3*h6!|8h{M(o4%zVc#m^~ z1dnB4DXQ^^^8TGffZZtAyw`Vw4e$L=p%O#CWvtp9KbenCi$j-%y7)wli@ayhLOPNy z=%SuKe{E&XoOD^8b{Li+v728e?|3=!PovPCQ>kq8Sx*5F(FN4B!e|1zI1^s^X$@PMe>rt4W)E`iprL?-8?DDuvWtKlW3NiZ(_m{A^e1V~vo`-y zjpcSS?>tK|*coh8|8wOBuCav&7VV-{+Eeo*F$+ImMY+S$(K8sbOLG|0{qZ=Ubmm^p zw3+(6IFaoAOYUl$jQaLfMc>j$~tn+!3jqd5EnU$U!_zwV zCgJ29-)als5^-8Fxm0^DK}j2oeJP*+(Cl7tvw-C-YgLJWbi??MC4+L-TM=% zeZqBPY|v^M!s^P&5FMcUc{yU3p#56u#cpAVPL%MdBRBuj!~Nw&alyDw#WybhG>?0O z$-B<=B@|P?9{GTIr^2X(CvZ!p)KqD_HH8Nmcb)ARo9R4uNks37pUcS-6VFjvkf2{b z%M2B6U4BO9A8-E#V>lIx_-c`(chl3-3*DUM9VU6LN59W0h7Uh^FGMO^mNKds7?=L03B?(ri!Yl0J0xyT z0-x$kmnlc4k<5Q;=cXZu6C+I5EcaKA`M7(>o5kd;osPwie3BVuUq{j@MFxz5p3u0RVfQsuVDTqF_Zs7U(+4qXwoAfXrx+1

F57Wc-}X=5@e%*3M~D2aDHfLs4QjhyGR4)*a&Fu1oeAjNU42z*>^oY7DUNL7qUC-x0FPH+E296-x$*$ zeiod*C4;#RJHa3CmGt{P4`KV*uyZs%+*?V{Eu?+dtZIYk4nj(E2}NWlX0v64>?V+s z=sr;$!y#9!OhK`(oCKo_LSx%o>)mX7B6tv$1&OyXciTXYrCUxl8ZM={LiSTsL=sp^ z1V>(s3MBR<{rBlBXNpe)8(Fbvd#p4eFc~~}!Z9OR97QdF1YP<_;QFbd;}RAsCZcx1 z0~tT1BUJ<^>(TDA%Z$~MZ{iw0U&*BU-xV328TH+_@!EjMzx3rStgJh(#LwdmbEr`X zz{*zsA6su3)n>qM3!+7eYbg|WZE;E=xD5R;a$AwMQlQD%9?bHBqkpe`x_i4PYmf00 zbC%$Y=zTN`j^E|!=EZrsVC#^b0ppm*qz6{vPGb0l{yu=?W zD-Ftg=qD2F*w@vvMfwh=+W8iaD?YnVTYDZKz@jPezP`hgiq~t2_FClReOJn9!RvcI z#M^(vF}NX^ekxkwvV4Z4=gO6zQrt2PWWx{%DKcbs`M(T(ZxWjf zzC%#@oF6IqBUcw?jgeW~h;MyKKH4Umk#3>hSE8J1Kk9Q$dLvq!vDFKG^B!^E&Ets~ zY5NHKWn6%*%6M86DyjN$bXJTR3AgE>;TxJZ5B5`=DcdZ9ynFe~i;TuqVRvxpqDnBg z%AYoEH(j){z>J~}UfN*VB!uNwytQL7_YeDr*+FNPl`Tv&9+9~xlwD4e!OwGz3l*E* z*vUO+!TG`*1dGDD-!qsR<&f>0r+$W?%@T2!JAMV}gd#GEJxi5SN`V!QfL_^o ziMnPB@_Frt;uhARP}*z&OBGvdGgnnWdH2LBx9R)r)_AyX zDYBbAGD_~20?S*>s*E)sAzvaf6Cky?&VVE*g^%$iAuwW(CD%<+F3fN_xnk4dr-Jcz zM%N<1wN>Z(OFVh>x0#3BNx90Si;OfzR4k$}eUaG=&te35N5pXJVyxMKL^=9Mhi?S* zynC1nNX_LWsJGLe)5->gMo*zS4l9N;eor=`nEGNV(s8MG@p?wK?|;DcDj3G z@u%{#t9^v4t(K;2(>G#=4dEBTc^_LR{B`5u`>XIy4B-@tvrui(#qW)eTz zqRC*X4?h!u+2^sF4xXN#|7pwWv)Qig%N6!jgU9sS!ZZ4DeuixP`wa#k_>vGV)0I7AL5H^Dx)|bg=BIheMO2aYN~gGp?d*mH7j3o=DqX z9&$&{!T1|dF4!N9M<(i8XW6goL)Qg`4m_#A(;E^FGz)xHfH;yEo09_6c}v`5i?8?K zI{rgB&oypoX()5~u)+0AqK@MP0Gvh1@z$$w1ExdV`Jy2Y&KqI#gkE$O)wyk5QdG46 z$T$t1E!h696Db9zqP2-nye4}@Lsm@~7g9H9M^YMfI_rGUfeXoGoNn7pHVF!?~o}_^&Mj_MGAA3}pltojRXX8R(s&X+_ z81wWfk-k;w`FS8>Qbhz(K?M5GrOC>mKsq5V#~8i6jLTx%anrnJomPv7T-JEjcZU@F zjFTYN!a2#LEe#a}UA&gmFoeXQf4srXNMBl`M{yEDsYQNZR5IeYtGI-H*!87jHNKD4 z@8)-zmW_mHTXz35xcsjA*!p(LlKV~43FEjAM-Jnb2`LA`9t{ySUQ0_fHSIh6V03#( zs1=a8*ndcFAOXZeP!<*J@v#wml#rIJxu{zkvUUUIusqqqp48hT5gy@t8oN!Lc^ZOS zUb~;wznfYEx9RzHiHf9aFB-CAY@bYYuGtXB-hN3w=wRZwRn~1`v7P~UE>=dSi3e;% zxsjrZP11DMk2Yhc@hN6UpWKM3UlkfZ*`+^t=UyrJ5%TA9_GPc@fWA}mN2<;=7kn~M zC8?jBkV>&Q?jJ?5siKgyS4pB*LrOwv@sGrzPSKLT2R2vbpBZZBucAgatqTbs{H3o# zR@5E(PPol$#b)(MmXthhxXn>Wql5p;{gRUW#22&u4k?kA&({?#4JvgCUOtBN3nxjI z@N9&eN!|VAra{0#Du*6$Bk^%7H%4V}-d|-Ob(>i@Ywnl&g0YCnF~740!kUGiYD6)C zc-m3w((j1+Y64J++7h|5^>a$O7>E`JpB~TR52k{z-HL*2n^A?YyDZ2wFVvfy;J^#+ zDDJ)52#2h5f%lu^jrpXEwb`(Um`x%jg9E+sAq4v^WYPkhnXafu zapicKWU|qiv_2Gg@kD5i5(NNM|REUwJudEEe$%%&=k|VSB1$ zes#rRoEXvCBR$6%|2|{`4^5SP)|~RlepNI)lC{ZZ`L>-1bG>Znf%L3)>G07KI12Qxi%9zh<&vmTt}HbeFmPJ$?`&CD&~*z0K1e^``rdgtyy=1^aj% zPk6Q+fG;60FW>ht#MKKwP{RJA0Umzj5SE!=&%j=0wx74|p|{2`K7M}f!aVJ(6`}pU zk{8#5D|o>30s{jBf7Y2TCCnH>LXe+-e|HzMO9gu%?<1LBaAtgKT?Sb;aKy&KvN{;d zruu(}&wtGzu=e!~DVWMZ2Kp)YtK+6u?Mo3d1DhvtuWT~VMlu=X{`eC-qNt!gEYed_7?oBf3Kv2cYg4uay@fZL;ZWh5*KIyMKa21W-Bifea z<4;D|EG$kX9Y`duDf?W!OknUdH%C|J{_sV67iP7zFFP(EqD^@z6$YzgMW(FUxQS*J zc`P#>>06=ju6WISR(&LfNC_kGhusmt&q(M#>9jG#C|b-Ff#U$x6vSj;?~*MmURZMK zJ`2SH=h-MJe8vGVh<}6~U#q<922fbt?m9h$eDs5fUIUdw+8i#QG5-`AnKTzxa3uoK zXKUFt9VP$-FEK9=zPJnoc=BK5J4om_AmFEq(RG~OUg85<+YQ{rR%fShFJ$;$Z*@iJ z-#dZmq)_}M2Fr6y>OyqsK*Tf#y>wuCFB0ltx5*<(og468)xTNovpnZxx1Zkjm>I8A zUbwTLsB2s9=6^I9)W9k6P3g+mJaQGh&&fH8?k31{jy3p;59>B=oQaHjd(?v(3(vNv z#chEs4Ufe|24dtk25w;f9+-%A*ePN2YuayT;@U{KIo&S~j7}9$c&hT9Dk8z3%O^*b z<5m1A8%ifd4Z>p)OQRV8iK5UTh!rarYCs22j_1T^3q%G5iv{!9XW#yoloCx*&G|Ozusc{16KJ4V4uCx{R{LAYcWU{Ex8TW(hJ2)#`H|O^| z%4Y864F4u}ud+Em4u_Jy5Nv@`J3WkBVMqUZ)Z9sVg#S&vxy~A46)rpWo#KG!ntoR( zn*#xcVnO{xKg(Jw4pr^=&6^_l*&IF5J;XDc;efKB)A4hq8#8aI#o5lFMS!!bNa4QE zANK1gUw4JU5gK{ff3_3Pipg>fM>=B_Uue!28(NpFNfnmAuE*hTCMED!NQq^G;9Is6{HCjO5517 zZyw7V2OM(lQN`C6_&V^_n+_eG zQc|PUTp?UJe392XhfaM~l1;LZ%BIt-!ajXd<~UWilj^@})Ritu+A{zxw82|)c)Zl5!?&X*>EHb;$bMV3;reVnjw zmA?{!F>Rm#p$oc&y*%MPDoZr7Gq%|ikCgH4hvmxhw)g`3zWRUN12rGsaIuDqR+KDe zdMrBq8V9r}KUzY}h!IsZpI~qrso{94uN=p#eI7Q~cm~t388>b{AtU`v3=Drnt935; zm*wDFScK18TKI!yD)g?F zmJ(N4uZK6-VQ9(^ByDLb7mH+lR7#o0NjiL;Zmw(OA3>ppX#NvRNRQA`?UW5WeY)bQ z_&|yFmb4~5`*ke#@ubM;M&a&@c7R|7Q^Sw$fqpVUK@P;kN-887ig1b~LHg@oPh_E1 zggW^J67S?Ncg*SW-Rn4I8NkEj--eTzbFm+!3^QAe@qUb0_fXg%}D0NBm^ zIKu{g3~a~!y@12SOWdmL8H1@oLG}qFBQ@l?PN!}=t7}pCyyAAwRfHh@(Za8>&g(w) zY4jy%ShPzk!JC@KZb6%v)@y^llmzGev(fEX?!N;+*8^`0_FENSYuV$w6Rj&PNn^oUpr1 z_ayz+=tA(9qkNHRpW(-S8e91+mKK{ApXvU&)z<#Ed;zl2h7wKN>xoxUz$f*KX6alO z$R-@XF-*BCWFO?h=dJfq_~OCqywO?;bhtGJ7pZAEeE)%h6XacLdI9bvOynRX6n6aK z&Y0o`=Ec&vQ4}EmgF|+z`s6&nW9)vNVF7cn4h~qLf#avP zJntES@;X7O>D&-*G-5V&wl^FjE}bHEOSOIK_haBEdkp)s=qJ+?8FhW8rmmV5n~}Q% z+>IpQoBM->R^#+atSfs$`47pm*Uth{ymh75Dp$5$*GAZrh7}V45t%H?(;L0VgQ``; zbNHGxbljyOiWc6&0XBGE958w5p`LKDvpY4u`_y~ibK&0>ifMTl?JFH>=0n(lLd&cGG9nXNVKdU|@wM*jCAZOmjNLk@$Bzn-^c=%;gx zftMjvUv3vQ;NGy*)YLa2h&07pHq*D**pGSOJI5Wt+TvpKp(tX|fR$_s_9gM?sCJofvq@ zuzLXwdj(tPvM!GdI8Vbu^1C;DM*qAne<57w&e$@Gx8Xm!R&f;jR&)?+16wt)@AH}5 z^c)B9uA&J228yNvN4Jw-Lb9*p*$E%hUg-GK_1zxJHV>}e!$us&0DYC$F!$Ti5nF!1 zH^NJ&lI`Cm>rkD?AWL$t+9S@-!VXq=UOXhyNW^6?A#g#*9pN(^o$4mx!x7Y`?N_2M zb^+zWQSI-xx%H==8qgpB2EHX~G;XNeeONHs;7)bVVNlP5?9R2y9h*uH1C`VO9Yeh- zf)c1fI^jdYG`4trxy!y|pztJB*$bT@m`d>gVmJYy9Yi8PWsd;;QC-T;ESQqL)^SkO z-Ou44;qi?$9*#E9=vF2%nz*o|ep-I9qquMa2tpb|Q z)GkPG_b;UsQPyq8WOk_&H{^Q1CN`&u-=*SUO2Cuxyj}l;8o&Co<%b>Wx^X$_N?KO9 z#4V0Nm_YE)TOT@RGK@xZreJIdwSXj=X+p)1#mHa5RAQ$IPI3mRQLXbd%US7j%NFQ^>(b9r@^BiL zRaw5dSuK@FOY?_MkWioZxWE+35%?F(pp?D zFJGOlN{)<~=Tdfvvi@F1dq16ZfhCCcVlpiE=t3r)+m2`lsGX3*ND%gFjrIC*0J-cD{P3JWPGQ z|1DJK5No(ke%mbj=i5pIxHi%8k@5VCAz`8|yLHRGQlYhcgM0)U0WJ#Sb>W@rdOR@} zdP=h)nZhD!VL)LF5%C!4IW(%7rtlgUp->K%)K90zMSZlng`Q?nEuyDZ@YOdts4M3& zFcZKU`xW^qb=Jsm;77#Mhw}WDMnLUZPL5FB6FfM9Ibfj1BvohF7m?-JVbP-P-8vHm zA4XtLx#d0q%o@>c*37q%KNAl~5ly)1q^@T8- z2k$rqh>6CfMNR-JQ}0w9!9?TVveWag)K3Sx7;j30^LC9>;Jq~Lum?(tjssC-HtlNY z6Q~{d3k>@R-AT0QC@Eo}rZ!o~8+a_bNPBT*3dPGkprfVT@`Frm!=U$o=d~G!=PzxK z*-roL=)iuNcYh0hQvR3p3BIdswmXOH3hEt@f9ZyIyu&&MV3jC`R$T802we6?6W@|@ z7MGQIy1OGHWLF5jzn_hDeuL=l=7#d-4Lmo#=|9Qvz?&i}|GB=W`H3CB%m1iduSTeh zyS*Cn@{A=VLmsVuZ?HG(?HgR{EGcO_+M}R((I#oqSspQ-nzAw{cXixfT5IGd41YkFb$g z*1liiXJa*_6KK($6)!x)G-zt5ijLpr4aS-~rt=bkhf`A-PvqM=uhlP->jC2BPMt3c z>NfJi{4Ni-{COi)uas4*H*$LYW?*PrG7vuD3}CWrTP3%aqNk(6-zlp1Pj_|y!b^G# zu5p9W=i0HD=|0lIBDm8c{AMm#U`1&jN!KmoST!o$A-?YA0SeIQyvE z4$ysZj<^wf_p5~zj?rL(-=OKQ<2(mrvJDSjLba5GKjK#Dy@y|%ZIF3^k{t{%RmjgM z8%?MhO1aRJ&K28$`Ax>}fh1ZD7 zDkhD^f!^4ox(_1@oNT>SH0-4D*cpb~+A`SqExH@%?AO<#+6Q-9#lJ63UiEV#4AA_` z#fQ3>j%1$c)je5o+)e8pCO`j+%l5p3>k6$#Z9kl6{L1yX9arQb_q z+u-{Ye9Phrkk@VI_g;HiBo%3b9qQabTO0Yrr754U{o~T?K5O)xneI+k*>^d*o%L>Y zJnN6-+MW%ptV`ClT?lUf_3U=>_kv~_XyifS^!}0YY>VtaVmn`;(A!~+eWu#h-}-UH z|1}wBP+U5HPW{)TV6#>SJ&&FgL%kXL9k;dM!PFRwFkFYRhl8M2hw@QNBDzV&tSM+Nb9){m9-HuSXu_n-%N&EZ1CD$oxKb81A?_JUqlE z=il%M5=|ex388xV3-2)3Z8VRJj-G&Tn3-8w*l$99?<6>0O&Q_*Phx8rfCC3k$Ch9! z#2AAQC1>GWqX4CyF_F0zvn5Sv#%DuOid?vIX$`qRi04|xZ9&Q=ogrx)KnVZK+_G*T zKH1B2kdD8>>{2p>U#`b0<(@}J@$k{-fV8mLtfPBXXkyMaZXhNTGadYwDGT%aJ=`wG z_Eq2bR=L6T<(AjLF#95IDfYBA|3iO_r^me?oBW_F*oQ&%q zc1^B=K3*pGTn_Xc_V(1JfBz*6Jr_=iS_;#hYC%xg5%b&++HS^e``qJ-*0lddFZ|;XD z0yRDgacG4wB8`%2!8LA@cZ^W5l!PIV;<|yFZ^%z`ef4qSNi+xE?lukx18nlqC}YA; z!)TrI#E1D&>Z`x_h~@!`W1`i|+X1;{Bg4>$5jpC2vk9aUMC?@wv%lyNXD=zFLQKu& zviw+d*HsQhB|XW>XsAKnBgNE0%@tdY|9FmNY@;Oo)+HHUTW$XA?U z{u1rjn|G+ml9ah9IlnhrCUIsY*Q#3SIUx!;T{Qj$p8p7D4&A?Zlo57*&1BzvlcnUg zDm`{e&C#n=^#$eVzvQ})A^jme|Kf zn8>+P?L*}X7Eg6$KjKw@X2+zcoa|-B#OSk;qZd%zm9OR)B-f{xYp`pKjtm+$ zS`PJACP_t-{Nq!zXY8gNKi#MZil(0-JJc)~gyW_HZ(L!TQ0H)@O^C>G9arEjJ7eLs zZjOx2BSI>$8;&u6WiQE#UvlTZcj}vcQT_NXWq~SNm<~q4Lec)sLhk&dg&SO8`Tj26 z&cLenNj-Bjn9ASGd|x{jsG1S?A*UQqXS5c z?l>tPub$mGejED!ay#0{9#uGGN=8K`kTn%djVG}R{-5Z`WCI(h2F<7!8vl${HlO7` zo$BwFZw{{gcYm+rlk14CbQ)FpX?`znx`HQ_&iCz`V7Esm`m%cyhn0?bX!-C}in4-c z(~;@f9`psO1TVNCG;CuiIQk|J6hDB!B9?CbWRE|Yd0CKX5orDZWuOHt6!*H&fp>(V zh}7BC+JmUk{__MT2=#Oaq=c*U2>8}|+XkkA z*v5CyWw$z(H_iTdAByufvD{2787Os_0;HBeK?K8tT%`W{lm}|~9J_Sv?AM}pGeJON zD2;orLsfi@>qRZs&87RGR__EXe@O0`ukQKV>vS`V*!`E=St)U5Wjt19jdQM78ARk> znz_M`c0&}$H4gA`E$`w3-XJp~g(JP8wZ|w+5IKGF=%s*+F@v;0KSdP&NP- zADVwP_&%X~5HYo%FVcqxr}PEQBI*m3SP{)~5h_b&p^CqLG+WihL}0U6oN0)YRvKR^ z>+k1$USTuq0D`i*lK3g6zU0km&zW81A$dfOf{cP%ZX@gO2!gRtq>-M)2|%0jv^P2t zzapeaETk8;+Y}8E71hBl_+&%DO zUwT4B0X;Uaz1gYj-1}Y(Gw$(OCj^goaWVM{ zx1YR!YkeqnCI@`~N%y0pakJs#>+gy4PYQ;FaQ2$(YQmqVxc^o2=Sp8#!d%}|dRF_fMW$Is*_BB8{3>kQ2_rA3O* zTGoAGhkA0n$Wb9tA4VC`DES7q)EXK_)Iq#y+WcO0RS->yiQb6P9MY3l<)u!libr!t zu&=m9ogEe+S8F*IetF4kmW@*sMNIkGszHHO{e_cFQljxwkR0 zcRc57O@=)C)e2c%{MK8??P0d2Y1Pr*%N!o5#-J`?2tOsOh*t?KV^K+~{l+AI7qfxT z7yFQ8k})fSH;nDmY6g({7Kd5=IZGD1yh)pPQc;N{MH3(@|yhMrT+GRm<0}+)L-2TSu30TsD5UFOu zk5)TP$HQ^M9`=Is_2YGRkqS`t^vMH}g)cZHAL8m%s?IMcTRto00;n!{=wKW0)vNHO zh=YyY)=_;tr8wnAFK*w>*RamDLmxJl8g3tXW*PNtb}UPfH8Kw>t6hADON4_8#zHy3 zK{>!apP&-d|M*uCDu2P9$4+q_ZD-(Lcs!N=qSN}L7L)YttD%he1_z9-(AryMo8vtR$Mbt zum(Y|&jQPuB=Y5+85R){o=k_r5cmO!>;oQ%twyg5dt}?@9;Va++XX}6>CPhRrx4x9 znOzHLytYF?y9ea=QWjfQQyen$(MHXlP6R_ng*urEUv*-0JyTUB2%N$!ttZf+F7r51t&8_7zHDq8Xvak!MU3X|=Jr7nzqamd8zqM;C8O(XyGlGnWijaKn{C(}~{u zgb<^Sy<-;B^ip$|t0XS>D0Y#;H_zZ_Os0vCL}qCwOsoD(l$vZkM`FDgI~UM{jw)On zB$=d_&{_5;SXn_=>Njg&XjtuB)8;=?J4J6M!IgWrBk<{Yr|5d9VXG52)97uEhJb4) z5|>slX^O}SokOeb&B6(-@tw-uXI&TiM!ur)RRIQ^U(N@=lD4h3{d@1$+yzLhqce8X z8W#Zvua~B<=p_M6UxS}zN*+c;sHjn(M`2g%{xS?@AFo8XH|doMqa0!OhQ16*it11% zfqqOsk`^DeP(&=^4aN6kRF<}{GCr9ZDEa952#NWIvi2zvgM>qzv`t}Izv^R^1Z9{W zMT?5uXZ4pXrfc&eSU&Xp;_;%d5T>v6e_r~L=jvW7%O(mkxVg*C)>@x8x>WF+X7k8U z*ei5Tge*%>8BsxE4CXa*kARn>FCnta$qpGRwF>?&?(++If2N_#E_0cqq+d+8FIDtO zlc<~;_pRVl+Zm`d;#D{IeSc4$jbBl&=XYG%*3oh6*uUY1YJEu;u#@7^Wo%)=TfH8p zBv3q)TekA4NZtmJuSbBpi;cgIsiB;!$B((sp}E_=v0!A`A|br&vRJ7#y4m-AKPD}= zlv@{xH2tL*Uh@KzrvLoeeFk5F5UE& zRX&JN-K4v3w1k7^2#IGKcBVH*G>H6XfHNTd(zUB+<)AzNA{#z*oX&C#*o0Mwz10_a z{OPmC0ktddm%rJ95;weC&8bVb5@yX69kSZL@%ZFBF$<=TcY<`vUR*0&=o{R*Tg;BV z1_CdpmQ~_(dK-lAQ#r`$Q1^TA_5E0TsysIsg~3#h@b#>eb0=3At6I0AGg`m9w8>2D zWmz=nk_@Dv zuwV*fic+AGUuOBupXEHx(`jpRTOJS=Kb(pgWn~;MyN>61M1%Rayb|CQY}!%dA-bTi z3Nm{vue!{Tsr0OLJOURTd>yDN8Uo_h8hr-+Y zgNAR8=9K5SBX3F5rKN5VNCG4O?B(_8VaTd!yzy(5xsfB@HVgNAzo#XEO2%Gbvj)AQp|GTyw5DKDGwLj!GRI%L-s65>?%xE$+CG}zAxL1KWIXbUSr9C7ic2ZWY1xc45 zi;Ox9z2kH45aFcc*O{14aeNRHqP>Yg_Gv z3|qX;S~_g$EV~#)yI7u+kuADv1%}hHZ{L03H$qBcmc*x#8u1uL$XGM5n&B#g(^UyK zrPgiHj34Bqm|26V-y$WVAbH0y(9*35adX?pmL7^S5Wi9E4&f)UP*pas)R;Sqweq^u~Ta)U{MUdg}b`0XYfTf;XGz4)ks z=b+}W+Kd^8(MQ2%tC687a-lP&9u1r`Z-S1T%c7pS4Wp3%2!!A-5&jY@K?pY3^B0Z< zToqa8+O^ewE;BK`c=^R#dT`pW8agKs@cV>a*^H_y1wF z&kMEf4?h`PwcXK#{@<#_|7|%M7C>7DQ|U3X&Vi|JTVLqpMkn7c`4f^tI{A%j3|)&& zEljQqzL(g>Y1_qHbsK&9CJgTiQZ%mq0MIo>XL+}k%JVK0zSV6kg7XfSk4~o2=osh> zlJ!OCDg|VgpGFpQCNCy!DDBA_ung#h3%#k0Sz!@yUZ?Ff&zBZvvJ~_m76wl)VM~>g zD$$3$eQ+ZA0C2o{<%n$nG-!EjAn22=cxl>kJ`*3>m#u93qTU2f1fBI&V82KjjyBz@ ztv}f$DN1s5dsC=Y1eOjQUgOR|BBEc5DAAURC z_NqPx;k}rAgcHc!T)%)HL!Z+>{?u+7Y=?Oy7~>Oa?0(~-3U?JO}QiC~LP1~i9KIUS;ccX0#PLMOaZcN5lFWPz|SV$h9 zIdEt#+&- zWh~LNLRLx~R5-obF!=v`Qh}1GdpX^IIXB0pH!TIIXhrMu$E7ZrXBkr)v4t3Ugy3ky z+9}t_?32WLQ-!pNxv0y-yJnl++0g#C=<c5!bI9`rBgOYV|CHDGjG2LCGu5%4kpSjjA`C3;$d=6+HKLx9oIK{RF?VRR7%+ z>2N%s^s)85>k_`++Sa>NGr2n!v9=9aSo!&*{bFLvtJnlmF`v)Y^3!ac^T*9l>ig^W zWi~!`hBDS}?^Rqua;!;B_hf%M+q?x9jDi<)kwDYY7Sy&Y627*xX_N^Fmb<4R8h*P8 zUc9|0@dhsY)k^w*(|Y|R&+~$#`SU8;v*)x|guc7W;UFIE0LF8!XAV9C{q&M*sows-F*DAM11xQTE&=86- zezctj@G7)=a4Dgw9ecOU>%-h-`MYH}J}wRR>EpqYz1~H5TCM1^lMv9#DM_O@_oZm3 z#q;5Rp_VQe3`(hAsBmuQe^W&N_iVZH#8oG*9&fIQf~4hYKnw6mX!}X<7qK&IiS8V_ zw(9S6!Q=h^1cIXhUvwLfzMd^L4uG6RdsbX30{%IzS?TV`nViF)&Pu&YsC0^8&PG_9 zzf+`RimmX6nR$(|+u7Ad+|BULus9@NuUP_avG5!PL?9FjngLO6DqfHik#66J0Cx?l z;9|zPI6`E4ab|gR4AtECAt5!UYuFHQ3vw5%$a@4|12pRFDl;kd=Y zzc}Ez?!@!8*5Upi=mb%O_*1e!_QoPJQBdW!XBrJ0WCVNcixuAIWV}G^Nzs-t#Lt?l z$V4v1KHaOu?0Q=My_a013LC`@6%+=_-=n>4l4#EhUjx4X@tp4T{QGBnI-R&lL(*)) zO{TdGA2rxRgX3s{8Xp{eJ!60W*LD=p7BxIw{wmYk?)~qZ&Cip8?zI!gN!NITdYaeU zoUq=JDwRKOd&`P3iZof&u9|;>XbW=&r3#}OSy`is@$#)8zaqMk1jFPsyMH%g5w&!? z`$6XBJE){YTNtll?b4hO6{v{{^lsr6UubwZz}qB7F@weuElI3M7jM}}7XLQQ$fFQc zZ&x%QPmhR(#1E2>X$7h?NP~&jSVLGQRp?B9Hs%Y^X;`4rVIj=M&5B0^A+NaV>s%;% z4Y0WsDBSq1JZKp-iLM#DP}ho7%`J*>W_%D!Ent>t!d~_?;4HrP$}9I{DmST60ZGj4 zfw$!A?7wcimEK7#&&C#BMW`=SOyb`cF+^|HO?mbSZL^(&&-Av+D&raN_Lfy*GpJ|d zaK!YCCvd6-69$oKBXkoYG?oj~=PO>BS?9kl^|9W>|Gjfx{B4i7SySE~;&rwtJx6nm zqxQE&awrMXX$zF*vM)w0bdhU8HciDtYer1Co#aEceMb0z&5S6Lf-&(W?SoV+wfDC{ zNs7}}bdKcK&qXEUCYM&@v8qrQT4j zQ?!1wsOeT`L!#^J`=3cYDjrAwQ;GD@Aol(-L#1GUxUlBqeWva zw{V)(@!j6Y74o$|^=pH>R3KaH8mGR6|Gv4{YGuvYf$b@r!eL@( z95T>vgYhpyk3aQ2wuK&LFJ4NNhA^rYMSdvQ@}4T$-?nR?1T?L2bh@hifQ3aRuF9DC zC4VYd^J)M&)qBy?1Fck)Vdtm4$fzM@U$Jy5Wz61VeY*XP#{Idcb`j`Rd>Y%ovC?+n z*WNe&YUeA};Jiv-&Z-TcGs(Ip9S2DN1zh#4 zURIZWbJ4xleD1Y0Za7qT!QuyW47vy#pI|_CC-nP~cl&jBaW1Oil2+2>T-C}Uj}vyY zRZXsBBQVrz;Mgh@mmYs6XMNwR*Y&A!SfFxWSJ}Yk)x;mR7${$l0MdM`{wV7)4hZxZ zoCj0&h%D5^eF2hQ<4W;@kWJ~oTlgTwyY-JVpSZ8={AF54g4H-Y*Nr0u=yhMEcfLS$ zANOV9QU&`yn^h>4yYRuvx3yI*7uW8t;ZN|2?#QiLRH-2D;m(&3yksC$W(aZVP*u2W zsTc<@%@PPJJ%b5j^paLXKk9l@OXU&=Q(+i5P4ME{7FDZ=jQ3`}FzO9I1y|;-kAJPf>9_dB zbpC_RQ?|EViwWwchXP1V$m`Pml4@DHv}!2!NGI53^wQx`t+VF+Y!Nyb`H7Sf%!Soy zEy@le+6|XQtCq_$uhXyl>afsz4@*Z8tq+N|R+NmA8mo56UP0;flr%Va^6K^ZquGUm z=Bd9iaWPV@=_4b8IklL1XJwXik?k5y7(LkVKm1~)0JV?FNhcswGSQ$V%6h-k*y!0& zy(7;eO!xl7;ilx}ZhLo(4E8k>R<~s`z}_gBU^dBQ85$rOcL8 zM#2d5Gw??byrCdsMEv*M$dTpglT{pHqI&@k52Nh zx=LLg6)Vg9lkRbI6a_LNE#FYZa>g^-@Q|!;RrpG%FGZ)d zw690lax+MxZvpJ<$Zs@#s9eXp=#hao;+>5BRZP4MrK8RW6doVgsz)ofkeco6)cp8f zDiFECRsrwPSBZnzliDf8E(mVBgIz5aNhS>S%F=KjMMJ0w81n{%x)#_`Bh zbuTtBd(=3`wp65cOP9!p?7ILG;am#vYQKry>~K6CH*jsAKKN?v_Lwrj?(YvjOFtWR z6ddHf{V#UqBx;e;L$VFKzdF4hORfkLc zFKv=8-7_ghtmjpEM2$~pI$4S%tRugpWsxD}FRs*O5I1K>sZA@>ESB2M_e%pg)fDjl z&7BYOV5+>)%p$!SmKNj||78EEk z0qwids3rRN+XRr{h|B@KOmIEm)8m1o22Ot5>S7uOUn|+^baSu! z)HRGU8CoZD4Es?01+Q=tlc8zwZ}rEkvYiddo#niX7SZOFy9fM{6KCq~ukvSFPg7D! zE(uz@rq>c5&;@$3&f)3N9 zdnB}HB(?;x;R5A9Rnq}H!1gIQENyc_6bukTqnKS%L{7T2vUoNv1av%Wgu<$u6zTAu zCHRgb6#=V(o;h2x!GI{*5Z^0IE|gXAUAbx!{B;vM)g>cVRbQHodrM4(YSC9uW8Gjo zXuIyRLQ#zweWX}U;rOmTHsg$S&z#x1PS9F>$=}pG%>HC4E*&0xc=F!!K^$-tErb}?scvZ3{(UGN>`9IhX;r~-5 zii;BA9yA~BoU{LeF;Qp)`nqQ=+hhR#mg`1uU5T4S%+3~Zp4J#)j%ck?+9A^I`mWqn z`X0}o5g}hp?77;yPi*}N;SY%CgBrKmLP&i>3&Aa zETJz`iSp$9%0&e%6^@g0e5U7={I^({K4_EvuW3P|T?73p%E1-Zyx)i3ytSd^CT+zs znsLO4Dt8jegvooI`*t-NLuPb$5~P z#bJzX~q`QM|VWBm4n6iD;%Hwm1V5y5n02)FI1?c>dj zru2B5&=ynzcq_(UZDM83t91Mv<<4i}bc$Em%L1>D0dy^All0e`YrWH<-O%cijhXq` zW$gG?eF{liG#~J@=Jo!0cbf-kd$!dUfwf$DLyU4r9T&_>%2H+9)i;QkP21D(t>}@} zIezbz3eEoy82Q-y3I3*xHYyU)R&n=~lrdLUTWyC*?PEAlH4SOShYq!QXIC1vRGENl zH&*V=yK>k?j8}C8Sj_L&9eFcUwBs(=-ft=;1AXqn9=Xit9ooVKEBs{J)=G!?(^@Jh zrOm$E<#)Y$yC3viKQ{68cJ?*;7Fq`LC{)5PA#=hP5pWN!97!VWY~lSBgNQNwOzev5 zFoCHHwmw7&k`w-XX7WkXyemu*Ct=u}6ExHAsHQV}@xB$->bFoAkS!_Bk&V4{zZttwe|8r=Ft@S*~DgZQ_$%<6Djp5jWdE)$EOsSXR36i-kP zsoiE@Oi3FxG#Mt7_?GtcvMg{k!}YS3_GR`~61;2Pl$UTlwj5igG%_*jcT@#Td<(Mi z##}kGpPJA$@5cQOclo#9%wT^hJ0`iHIsKDLOyiDw*sU>0A;hZ;lmx_U zygy^1I##SW!I-HwQd;<$sb$ji_ATg0&VuG$S`9)(YO3f7?vJwSiS&{p@Nk#0as-}Z z>>YuVZ}+6#|I$1E@LjdkbX48zgvzvzq{S}Z>Bnezpk8CnF`zOJPiMtgeHp4 zrH7x;vC0O|oScV{CmFq!3jliFJxMa0#HDmo{_3>ay&V!wRCqPr#vBJZcU<|LTWMvv z`(%2sC(|tXBhY9Xshf+X)68MofK!08W!$)Ek-OT?5tk1dk0W~1wMK=tPm?Ltq)J!| z3^MYFNgfZ}h*IH;ZlMuQstq9v3OhiUXAw;t^~g|!kvCKb6U=#A#?m$ z-1i~-ZbU?{?#+JfMh0v=u8_2igyVk3xc-x6t>qKXxx7l(@RUbn_O8n-L*FW{XPMn+ zZKp4loCW!9mF}iq61>9ol26^^<+j;A>S^a&hiZ;d`5Yw05p8*r!XxeOfmCH&|o0*!rrdHo$J#QlL=0NO3Ptafd>S7AfxTF2&s`4uRrc9D)^hhhV|ot+)i& zKyLoC&Ry%udCJOrGT+SJvu8r;-i5gONL;sJrQBp!5Jy@Q|2S^?htYe|nDi~`vtiok zT8&n_^g@JX!)7HJ<9YUB_7?bSqeOhLW!!aZ{m z!VGEJZ;v-b2*huZ1uCa_FtWJMoP{w^3{RI{+zfi0w@~nfc0Om_ zPxN5pLYeb&*f{AJ!%w$;SG(52;NQ||Xeg{}@1Ag-6|s3IqBn76unf+x{h+ z6g(4x4nHUV8d#^r#EnMg_z*VOWd%Hb^0Hd3nUoiuFf^WkY`(O9)zFf`4{30h)e1vq zjO$-eV~V2;r>|K{?HCsJ&bPX9B~{&6%lzO{%-QKu(7MSf`Z@AVbmW~pu5}Zjk2bSh z>Xy{DYf7rLO32~zGEzHVb%u-BtL+$hF^rBas(z6{^dRXnz<7H)C)w9aFrkqZhfAeYx97BFWWMx$b0SPl5# z&`FCx)f@bYmi-?OCS_E`wWw-~t=bb!GrVe$TNG;?y>$aek4t~ij+pn7i@=qGet>%0 zgvFlY;saf%aP>k!UGs$n4E*aPDXo>Edn@JUx64YlK(NvrZujBATT>W* zCOO4)roN@)@wS7ec#!y?jg;6G+V2Uqk||^>AarA5s%4wksgUR{LjNXfnuL0$bm0A2 z0o_s7d>XzBJ*@0^ligS3Zy6s8x~2XIeLV9Os2`jD$$(5leC(T}`JJU`h)3o2a&}*5 zr`_@gQ?^f|@#RcyYY>MFX?J33b>8lkL_B4H|JxW+%f5jRJ&e_2G{G6!- zN!oPvFELSfG7@gIpcUkuND`y9W>Fry4Bt8N`?5!h=^A@k7-J>lsgIe*{MO%TF5b@q zk~Cjmc5r<#R*(r2uK}ar#@T+?^V7E;N_Q2)p;28e#eSDPj{a(-5@31N(&^u;d>*w$ zfmWtjzLLA3^o1Yq$)B&EYUYV{GZ`Eg0ESf*LOMb%{DD-ArGZKwd72Su5fiC)o0Oe8 zRxO6SMA=Jicjkk_&vHhqYF8fGzaV=H{lpTjRcc9^hAGqr+$$u>oSOKR$|?_R!xc^c zO^1w1-zotD`Y9#;M_Hvd45VS7pNZLm1j)r2%%6F8kJcsu)o zT!qm$gmpa|jLU50hR^Cj^GXKHoD?JEXo@HB>bT{cO>)B(|H`&|msw-mykeK^0e*$> zK|Zf+Cbw4AMxi<;j?QbB<*$yW@-wZrDTXC6#_@doAjjg(C;({*{&0U z5fRzJX-)!<8=VIsMb;yCE$dv=&66_S;=x<}zWmv)8)i9xF0t?CeOddgPJa-=RG(0B zA~pXIe+&`Y@3eft>WU`jh?h!QV;khFx=UV}r5&0KnDV!FPudIw-uRZ#98xle2I`RC z#DsS$H6m5pVg?j^_R^?;&Bk@X%Fow)t85ZGe`MgzcCxXaD9>w@u}BkdmSK>T${2(( zilCq#AF|sgUwaw=noe~#6apK%(Es%+g!H`E=XSi``mHKtEtVz*-P;3cO?tr8{vC1; z?ZYO2F2X(rzuu$n!6MzhxVpUNO~!RNyK=Ocb2=yUu^n+=?TWIS^?ds!&x~)=Rzg~@ zYSCuVo1;BV=vMVFW*DmVwocQxSgf1HBGhx`Jm%ID4OG#7nsnWhuCYeLeUKQ-Q-}|i zumq31i>p9pR7U-2Vk)Jpao;z6;-2+I&2S~L(MP`5u4~VT%w{RD_}ZhXxXv}edS#nW z8dxi7yi22skzQcySk}tue!Nsn9VJGGBl}xmoEDuODO7gONB+s&gKf6F zM6HaQutf2_JooR44!av&%^28TbaN>Bf{&#G7WfJJU2`etDLHyNm3pWFlSm$SfoC8+ z>>{KfcIk|69j_V9SKN^o%GO}M-gJ7q%FS;-=@lSJ*t5zd))l%*N2*tUB>jR6_OG!4>UP zB2A8zaeby;7aB7g)xSIMqCYX!^(8R$g zy^Mll%#Ikq(vaOYdrWB9^`bmdiW0qn1~xcJd;%B^K(7~>x>s`RdrL1mr+yohGAq%! z7xBjP#_5!1f8`}7HOBbvsKj-y?9v-`VNScDEaz%wis)BH#L{gmBp5j)tAgg$E=Ay? zC07jk(`$JFu&m7EnlsQ=s`=|Bh2MFea#7%UDzuqC-kXsZmPXmSn5xDtBxIA-%#3T? z;a~Kay}wqC%Ik>iSmBIE+0k&dDMkC3CQjH@l$$xLc!(?o{@K4MUQZh&{k z{Cq66ymIV!(?3ygn>E+Ag}0bCQc~1-vs9kH+E@4UGY|E(xcD!a~2diF;Vyi!@9_2MT5g!$)S0pA_rFD#zo`wPkZ|!ai%wN zwD8=3AHUD?oI4Lx6nDWr?=wt!Yl&LOAuaO5Mx({3&%i zl5q9@^?;dE18w|fu2Pwuj2oSWF z$Yt81Nkw0}1raX>aeZZ^NjIgyt)nsQ?aq6`8xcb@Wecmq0goJqsW}kq#4_8j1~S== zMV*er<26v3o;0j)#mH?9Tsq!N-w)@u&YX_sS(1DB8+xA}n8toB`_RJy z&*}?`3~7`VW<1Jn&zx;OupQrjS!VYtuDn%P-%9Gb_41Zf*Hc}#eoinOkuqS`Q%vD3 zv;ou0h{(l=$G!s&9X@(k`c@faetVCi`8Ul(fUPFkZp(#J4%T-_TO`sG=!Oz?Phi;YIP7Rw}5D^T#Y9VWa|41NoMRo!qNt_9%jd` zq(~orfab8a8$R*JvlheCe`L=u1$63{Yqm5dvu{_qG@az1$M5Eh&J`zTHM~0--R8 zFk=#@>Hd<`Ojs`luj)&1-+df2)m^tX*S}t5hz{`m^K(2GYSrnQdk^;OWigxG$o33D z?-tQK_wBm7sM<%DC7(v_6l|pBHQ>&n)f~&_Ir$oc>-^?8Z0^BU?Xr?Jt~K@D$26g# zs@pFyt@BCKI-zMv&x!+gNbA;*J6_8y!AB>4vw7=@O+Hpn^xc&J@$36d>y|_@?Iq4t zF#Zc2Ri^IFnNv&+5BVH_2VR{Zh z06PBpS(eYaAAV(t?DG2zc5LBY@4tcpfE3EsRXBp&AwJ5erS4IJab{yZn=KwupgjNb zP<$p|f}2@kBFvnkWKMwax5P;y$^~DiL`~%FGexvSI@qfwxx2>1T2G9n?|*U0+n?ym zEt;xd-!!gFUlY(K4yOJUm)B0*)4m*jjE>4`oK^Y3?OauVPr?8w@(A?r+7BHDj?37J z3QfZ!BpKQ)D@~S&ew;sFVbg=&UN|KO#$tcWP26R1WRJw9J7%wLehD|fWtWHH{=aYm z2ak(INjQppC<5A$IplFBgS5XJZ`B@L%J!wno@r6ayRXub!XJy^YF6QojUrt@#v#0!o)tcrk1V8xhjFkSOjs zuN%k;y&BMewy*uJ98H*Lw;4hjhWwNsaPJJHvg*{D5rWLcb!AYJgReymT&T-Ci`)a; z5ZGH=q5XK`3KhZp&3zkFN*d$zYOFlHa+#o8#^*kHm1!OaT?E<< zyaoIAszxR!;*()xY}9f@Qn5f0K~yzz+qOy@$D9$7(};T&@$WLmI`jQ&>;>AEOT{0u zq|cHCYeB2(BkJxS7-=!Q_tV5jLf&4J(Dym=IST4_jnr6=S9gpDw;F}*NrU(-_!T{r zWVt<%z$4aV9nl%2vvl8m4wA0|o^uK=6Hcn~!c!eLa+)3GK`Un&cAYK@59Y8H?#FIO zq+vJ1c8-KiJA2C7@KO1>E=gwcI<5gpDOIN&=*pLGzNM~^bWpz244pN)kqz{)f|G2uMek3JD>)A%`63Y4c@q_b zMOTK|Q=4>Se(mpoJ@R33QJL!VAscvtZZFXfg43Pfm{Sn^E^yq81|B(YLRXa|V+ z<{0~4D8o>Fs9?i>UdsHOAD2+BumSvBdz2|eF`poMGEt@&hJB$sIR7A6xU;js@GpJn zhL@3g5aN0e%l_>jFra@Fu%?q5czUflU&V!dRB{LM4QNGB;pjdZ+Xpbgh+;T+4NWcf z@=!u{3KP}Dk^=*jFu4M!TZ+^}$}GSndSV_xV=9i~A?|8!s^Sx6&HKTt#D}KGx%1+~ z)C@abvjY}sKw2yrOC1q`p@>VZ%hl@B^5K5#(!#PZCSHVETbGd5OMus4Rs^${kfGK-9MFpkmx@|f^hN3*HvsqOyd6`5&uOgpxUfsV)rK4 zdz5jP9yIATvzp4Ac5&>)f^O}v{Sp~Y;r}{({`~9bz8&Iv=6>Gi_N^o~n0T;UZ5+)= zdZhg@1`qMtIsyh)V5Z&#*sZgUpVu0(kzvHyZIG|leJDlD5}*-TwCRevk6kDvACp=j(5$kGllQrZ}4hdl>|{bL-!eP*r%4s0M%YZN_Bb zt=XXLcY6nN98!|L1gO;CACbTq?4Vln$d$HB-N3z`q%&%z##3+L=kc6 zxnlmu!}(KReDA#=x0mR*>w#Bm>uWbpmpg`5M}PDM(XtM{*QjMBxTE;34S{dDOYlb3 zrQ8Lx9c5MCIG3%Y|FFv|;J;#BgQ~sU6^x}eU9kuf|Me#0P0E|E7T~qa4PG+<+sV3TJ+wX&irGH9_-x*Boc4UQT{pax zds^}d$+sQ;|j#tNwEsoeIxEcY7P==6Fo&ZFxK&l`~bw8c^t0Cbb zXW)lx6Ae~)j4)jy+ZG5PAko_F2+sy6T>G`Ugw`K&9dn~O|A-$sy zAW9{6tET~)|FIYlH-89=9@kO8eWQ8P=Ns%o^Kdc2+gF&q-> zTcW?0bFG4mxa~>Osg&y1!2Y~vFhc54QoWvdS*P^W{*B2fq8P=XS|DYL*g!~S?Z`H( zs9&?`&oQ5we}7x-xW-~7iduL?Zh087XD)mH9Ff#om|NLXQI5ytpBd5T9G9`gFwogS z^d_o;uZb4)*x}NyiOvs4x8>P%cCewhFSRwF_`U-VSYjZNF>weFlcO=4o^{KxWdj#M zP`Wq^aFH1EnzXsYW5M_-U#~mGwaVFS^k0{Wb76HdYeIk}-rQOzB#S^2O=6E`+8Pf( z`(psy>*cHx_hRyBwf8nBwfj-+YEt6*ARlTb8ZL<7_?LB~oCMy@d#iMO6?=lJa3=J7 z*0+eac=Ola4QOdthjA0NAXj z%{a5wFyuQncnokdooMzHilF8r(S}foYfGv3p5{XfFDSH0dP(R=41>SuVB)-euga15 z$8uCmA-@BGSjD~Km)ij&a;ZIk*WWNGAhi>w^^yzkc@|MQfJqwk;JH6*@sfMheZD#R z2rI4V%w@s|Xu2B^&YA8lyk&}Ul>oXT(3VllX`q=iBSz!whQHfd_hakqff&Kn87NDXGgt zrf+ORHtW9RR6xf^q>G`}r`l$?^Pj0>Pb>lk6WjXEOa6t1NCwSs{Ory90Xm$5>frWIvf3vV z70e6YKNHmQ5&`a5ddTRGds);pdcIR=U-}JfjVgbks(!kVO zDiKTK*?Ssht##Od?lIXa_he~y9Nw3d>6!i6pF!YR3Nm-l^vUsR?D^1G1 zoi?hzGh-IHe<&urUoO0VEL<@eQ@@fz?${8RN#FWXy{fT0RPPh=Ti9cu z0g1jbZ}>PCNK#E!7uR}Aml7d@)AtwQEsjZ0x!glI+$^}^`R-x>Th2||z2og_odR9Q zS!`@#SbCV-`;)rm-{D`^Ib|b8P3GMfI}LW>73bIwlRtd(9M`TXN$*}O*|w~B;V2O% zI#2TCCcni!-yUd4b~EW7VR+iHZ^G0q%)h+XH2H?2puj{U>C<>Q$DgY>rxI0Dd@AwR zN25jT@jNk^SCy#qf;Np=tM$hZ_>*U>JK>GaPhitGJA$jgj0T=m^9M< z3!GZ}X_QK%d93grTX5SJvo9Jbj{1HZffW?wj9Ue?+E%rNoV#j3kS(f~Nv`|iTQDi! zLn8LQ182RMEd*-3ZTx~+Tcgk~{!)IA-IPjZVHfERrOwIBXLKyV)?IJSF(Y)*6=6%Z zzmN?GklD#JU~+o5chKhxK4+T>H#|UrwEg9*9M_e)Dep z`P1JinA_lBSoqxNL|y#l9q04mZ(Bs9!?nGwD5vCS5u9V3L*@Czj9c;H7t{0%En9C^ zTcH^@wql&99&e5FW}#zxLNnWNzyP0*SmVX-;3wND~B2lbRBp4epUf5){AB1 zK$6ff&p&3+5ymhg8nmc)4;Kpr*DPCKy1~n~ZHCx1R&FVr8E^PqDzte6(l`R}6%CZC zNj7}I0?QACBDf1abe-h-EoWZ+Vpra9;#e$qMu{tJL8GINiiX&`BC* zwtWnKg)%b_Mq0CCD!&D4>GC_X5iuxYM9IOTz~&vPu5;XfQHO5^vbqnPn*aCM@xQ-` zVP%d$U_qSHWf@QjUWbu5ACST0_^j1$-R9h3*oAfPet$6~ywN`Ts6|&4f0id}`9$%| zWgVCyYQW*u;U&=F_Nf5uQeb~5KL1mE(ex1seB`-NktLKRhVy%+k-LqTs`j%;=dR|X zv2(ZkaQ--x{uQTTY`Yi^jRMtnEruWaLn$?k5ouKY_xl9S6mXM(G{OK!(S(hNE((d6 z{-rMiz~OM^9^mlWZN2_nzaPYK9GY9U+zn(i*D$+Ki~A;4a|??Y{R7kNhVeTbh!PLC zb8xGl8Iq|a%0<4@82`*!Dj8(n)TF|M82grHCE!Kpw&r)>IgDVM4k(-8JS`4$~b8g@DMiof%?t?t-r|)|MTFIm{#5~nd8BvE zm)*bl@#D%QUt3|^yGZ1;O&#G;*CYNER#_Wj%3ae8&&v+w-OH(WS!YKz=i`qL*4x3t zaT%YvlYm{QQKS;c<;==KK&r4<-gtS;K(!Gu)FUJt92}`%j>rNCb+jw|2h8WWT?T8E zR}TG<_>aVh#^dn~jjOXp_aiTiWlJn|`xhw-Crq8KjkKR7X8qNg-dEHyQomOj=K0R_ z35mv3-vqVAB@`SJJDyBEi@Fm>=shbC6crnZM9hKJ_Xa5GOyw!EJRm0mYUW6|Y%XA3v|O&LeNe%^Lke*2g2s$Z=kNS&&{KQ1WD*DK>Tm zU}~ef$$=s&JPsinplNy~eTP$&rm)+VtL>Wps|84Opo!KFx*-!JBGoI`u`5A9eVR+G zo=PXD<81w<$w*y|BZ*4mwFQb8$i=A~Xl?Pl9a2IJA@L|v5^#1r0FPAO`M)3E;QX9h z>p)H1SsEST#H&zxyTtuO=9yJ8nTDOS?KEySBrii7^BI(Nd%Kb`;34C8GE=oO!u{(d zz%z3Lz_{%9XDjZd)hLItUB&vy@M}HpI}qlSf)=(N$gejue*9y;*hf^m_sC6)o$s{P z%(WABn~PzCXNWaE7+u?69-20%o)P-HSFIjJ%>PwL6s`i|y`^KHv(uM+Ex8V%=EKG1 z{aU4f^=!e{v(t>SR`lBIG(5uUQq~PcqmHab{FF}oB)hn=W)ec~^5IlfQze#0tK`*s z7IHz2_zn^)lbrgp4UL&YW+xAghL(!ewMKGPgVMRB&;0kJRsJr|K{J9yZrBx_w6-uJ zA~KZzBx7@u`0<`7L7v7S%a51Y1neu9zeAVw2bfd}^|=gQ_e})X?#Iq)q?ajDlhWp$ zyHmls4eW%5)ySkZ-X|}adez0xyzRqwpvog;9>ECd((NgvLsIytn=gJ-;KOcgtQz-3 zZA)*8(JqgoSSL7F)jnpjS?WL=V$QZMr`M6%@sr8q)$bGvAF6-`dDzOGO(fWVK-xJ7 zetOJ6=ECkTFLQ=KP2|MS$6JS1)U+US&hr>&&y5>mADf|`Xh24uV$}<9l89Ms!}R}O z?7R)$+C(xty@yhc&jk}u8@R`nWZLN(?Qn_OX5qutY!NxK64F^tJ5#D*3qGGpuL9YPO844O~2g({H z>hvOaGJF9Oo+F8_9~GK_IY;Noh_gdR5X=|KoZ#-$3#0ju4M0vWjqz88Sm5ft`O9nG zA_QjPzZGb+b`AKP=yX>?o^w9xK7PaeU0M>cCpl0bRX}4L^O0U)j_2zy==H%u9uv&( z-q_WR_}y)4n?0C(v4afKi2)iTcNqT0E+p2@|{u4&Y*ZH6##AYmgq5CgHjc@0g%Rb(&^q+fl zou}0ApZq&$rtdh-s=Ic3EFUTifaZC- z%C&>6(#z6X5vvY@GEQ)Uusr@Dku{EW2UALkFhZ{WZ@q}B+C4m!f~PJao#)Zq>`i-F zA4gx%aZYQ^(_S~FKF-f#(OOHN;qpnwxu{z4KhYYI_~Nm{N@n06n4#-qc_CQt~v)k-)bm6cS9UF|`2iYQZE zmffPsci>j_c<$q0?(a$?ftQj7PBTE39a?Li_aM=XLf)nHRW6mjXiCEFggcnKUV#!p z>ch_>Bx9@`S%ELP&`|hHJv0{;GKtJXZ?c7?xU9|36p}2Iz*l&zLf3CZHm=vq5^z>s zM@!w;4bNBk*^p&IurAJ*?1OoTS>qyZdUwN+;kdea}jHM740CLzU*0T|4(t&-lv8Z&bCUOpX`r%%4Z;O?l%4; zy>2g8%F;FO)9E9^RXX%+`64V6vw<F-k z03b!d^K#^R$SRl6D(QCwOK#+T@pn4c2Sba)9#2Nln`a0i7M}MwH(b$&o z=Up31+QtnwnHq0K$r0rMQsiVPv}$X489M(0V%DYBxR4V}uAcWBx15klj?j$du}s%y zUpc2%N{Ku>{!U~VS^~!EH{fVT#2*M|2kVFZ`AnD=2!0jOe|0YRa#JZkGU`ZNt$)s%VOLD<@NGDK z8D@rL{rEt<&R+pfWiN^~yl-}&wTgMCn2I5j94B=FqDkf6OD$`94Eexh)swiy=UHgW z%33kW(&p}DZ)dG~@)*(;JMrrdnd{urvEWkuy#kITlx4TQXLCgCxDM{qn3o$C3uD6n z4rb!k$nUTkcY&iCW7u#f(*D!jt0~j-191wpY4lt>^?Xey#3L)&IST!e+ccc}qc9aeYK}j->Z|LRKU8w&l^AOGv01?<=mC*C+ zP30GxN0cqd-RQLE>dVT-gT1%AnwvOi{_*UI?1k-;s0@>={^$hGbMrstKrD0e?`@YN32%he zhsgd0NQ$OS!KQNy(wa-V|9;t)f()<&2*NhX08C8{@p7(?>j>bJSSH96O8(oRN??M_ zA%`J!ib#q?LVsF?poGyf0DV`G6ZP9U?5jpFP)$l6?I=g%YULx_0hX^(rI(H8S|<7X zlcv3nbG4=ua|cO%dDF9>C*U0nzlE=9X!TyYS}M;m3%`gAWA9@C^h785zs0(iM= z-MfD4q~8Q9JU`VeCpLOm^^S@Da(X26$p*G&I+T+n`y9-9Be$d82YUU(aB}?a1uGBy zkvS_jCPo6#dMm<>g1aAXZ~wkAc9@fnwwK>l^h@SFs4IJ3RHveoTg%s?>qBz)wYvM# z`dt}xI@&{TGmHx|zzne85yC7Wp#k-ctvVsR@&1NHy|~IT&2iuEb)1R8`~KpBrH|q5 zJ5W&q0fsszso2{vB0Fkj;zYM~QyF(!RsCD=c3J#nd`jmBOW|@pYS80)u8(swEUo9ShqO9#Mc{;4!x)kmEjf zfQx|V_(Th@aFXGL0_;Iqs%J1>kJt=zy-7;gZFnI42v`oiY$oXI52P3syEnoQ49wTQ zd${nRhj8Ha zZesdGyL#-=%b^xSOLXju#@6dbE_k zCCcw>`%sAiT5=t8+lZDaH33NRhFeR;2-kpYFxJb+P8$FHnv$P|qot<)(W91zLbZEw zO~wD|k@?@!70V)wYjlw0O!!g8O2I5y=Il@*#C#Mh^K(QKQ@grQ?!xZGY1%pOggz^|h=FYsBRMuZF*_rL)=m$JIfe`W8x!%`66zl)r(ICEnuXDJ!@G>Bz+V1R zt}GZL$$_7WD$>Pc%^4cvgQwrMUd*iR)x7KH^ME`D3g3w=*Fi==h)VPC#B|6XBsF?~ z$NrN%VNeOZ9(EG{-17I2Y5Ns5y=v@Q8}0Cza~bNaCPZ*?vPFe z>fOrRjRr!TKEM+?3n~&u(8!6%*ja%OcZxS7YNd#85utbImsi(wXxgNqoCSiI*2!OZ^aWl?!Mx^kKa8w~#KpJvBq*-*@bwV=Hpk#k%bk`w7n8*-m8^X4s= z$CCO%gZx?cZzl_kGZE#>c%?ge3R%+59Wk_#8zCJxx~fv(BB$f5eYB%KUSusAzEtA4 zYLIh&0%!31eg9_;Cpu&|Q!p{1iat?!?1!8WpdX~s-T@fYu8uqc*kf%~&1m5vPW%BM zbXum_opWSH$J$*sSM?|^e!!0eyE@`WHt2?E5ZIzW>Q6VK1T(wIRt`*tzWa#tZdDqyD)z&TETRPp01xzsb_HUg2 zcy{R$(edFa;cc@os&qB^DV^(ToHhz>{d38+n*}adYvVbOtA$>%QWf%S1SDQ4P!MxR z0X}XVVye93L`dh)D;#LaOU5zvb7I~4I%`F@A`Czmsv_i$b=JP#&hNW5JR<#~7I2c* zv8TLWp1yDj8f@b9UU0y`WP=eEqEf-b_>)V|*Z2e7X2B*w=$5fEBGj%cT=cYu>T6u; zID6$bcziQ_QE`h;TVL<4SIzP^b6Y&Do=PJ|L)n`*$0_X2>sR#$1UC1UD2Ls+b-w$~ zL0gSB8)to>p4ZQIbJ!m_&wL$c`iEF+EIoRpPm2P?TlK!QiB)eLI96Gy@1BRnn>~gu z+LoHGe4O!hC|{T7w;ciy-bjDMlunH$axXA{a67ta#=Iu};-VjOD;`Dnsnz{t56F*w z(CyE0zf0@=O^dmn1Y{3t+<71LpMjbL!fdJ-8>*)?)x$~tn+4t?xBy){6>ivZoP^aG z-V(WuxfR!B{7)E>b8&&u7eEESx7?!yQgJ~-a*`%mu6n0d=T|3FI|((f?xtsICbS^0 zO_%n;bj7PFyi|h?V8e1UAw5xC6)p-*o{yT=QLIgCj+rAA4SQIt_3!L29j;5!!u=q; zka*iGfCJX#X}n{4HA%{I)o?h`q}KKoHYnLn6i!hRS~Y-dV`41u;$p}*?xL&QPs-HE zL$80}`vK}`4PwEAX*Ynbv(szpqJ-A zSg=wOzuYp6ryBQCLrBzBhPB+^R{9SrOmC9&=;yK%_y-arK`)f>_4mmM_NdtAD$Bt~ zga!OxEe3x}?Wlyg51vx&hWh(Mp#CrSK97%Q(Xk@gxruYLi-N*ph#z)@HzaAl(*_aq zqa)@@U$rR39exAyjPwD(JR&)K5BCu_svG zBNu)fIuXTY_F8AKD70F0dPx#P{~`8a{`Y1FkHFAJy0}9SuVnPGrg<8TJO}}SfM#Q8 zj4=$MVE=z>&TwKiCRby=mN&p>gIWtbne!$;0+k1k?+Z`sBkWH_ z-A7sXQa`1Zn#td5?9NNX(6Wu>o9Gm3@1EtMdPeh9Dl?j){&fz;p$56GsO!)1k|!?g zd$;bqNC>h+6pbK>^*(yNZD+qoJ@LCbo58zY21_|jVbM_w@4aV!oJAhkl_QOO<%&1l z9xv@;zlL(=*zfI81{|~TCs(17HAf;pbU|@-Li>G-n3lMfX?> z9e(*;8cZ6$Z-(bs;c-TDZYXo5Yd*V?_y&AFhl;bQcyu-Avg=#K@J;rquIG>+ zfY$8_=uEjFQ;vxyy+U$|Y%H>QjqAUL(GVF>5RjO54SY6@AEqB&@KX!D9f2Y{G{yfo zYJkG*0&3}dTEB|BaQ^)ns=VA=aaQ|ib{48w3jSmbdQIQQ4%Fi`OslC5RDac}CeZJC zm4x&~7>rP`S)?Cn{<{7AXNG#QvCaf`C{!cdXgK}DH%S;ksN={#0cvC~xz|n-Cal%~ zgdg075n@Q<>(R(dE2e5sr0SgWv69wo8;Tv(?70)W-(q3KW zE?$7a&hRQi1LL^94!+X@zkWbPy6=@_v2i;?CDn88KTuknFZz|zrT)Kp!v85?+<+#) z#7(8w>Bk8Q?f`LK%nBm*kuoPuxpHzr5(9{L{!ZxM-_2MAfqr#tBt19x|0sbh>F{hOCKwL5K2lTsb@~nM*9f#h+ycj*wXaD*)uy|B zDyZeBR550MsU4Wkw+@#9J|VE;!Ta*Io>E(EcsmAE{l}CVFWf)(?#p}wth^~m<2FD^ z9qG01>F~O0vqMbT!zQ4XG=#3CE#oZ@vGaipXsoz`rS=&Lsias}=-#}DVI6u^E>+XX zY;NRf_ynTM7IWP{%tu74mpZBPXLRp)ApJgG13x zYD^}$xE=c~#9-8454k*&YBbh)82O#Qis?&zS)EdwmPo*Z;%a;nffHoR5RzEuD0ANS zxwz&r*^fxKW!KI5FsCg>hx}3_b*B0;-gz;dU^&QA28g(Nw$vKdla6Sqp(LsAu;SkE z(Cj9zEt;xukJ_94{E@?g;rk->U{Etu6-VnQ$9{$w2+BJa3z!~9A}+u! z!l6==DybX&G;GhD;qoUKe!gjT>DX%xR|IE?7EY%lUL*VtRaT=V>lu^~mNnOceL34e zl>_mE20Q6s$2g$Et^@FId~m!5CStfZ65if1YJQMy4DP5Su^5h4_pSc)YW@*vXVQQE z4C7iElTIVvCUzV2HGP0k`A$XkoG6H5O^#!Oz|iTG6fZwD?mI4VG#arR?^mxAI{!T| zC44!ABmrb=S@Tc2`@PW0!W7!B#2<*OdmF8EnVHjS_l0}$u_ORjh3LlNEG6VTr26Pp z>b^nG!&Hh|c@Uq<4DAq&LylYS*O=yr3+FBZ7rgloSLstf7d6_ROGzJ(?Cki=r(NFy zS>@gF-5@NgZr-pfbso~G=l$gD{iB#8179|cj&`v#3&=y9@GhS>op&Bvcfw58Di60n zO-rPu$mg9`>|Y(fXb`chOGn4-(WF~sN-`ZNTTl8Pe8b+h7=;tNGq#v1jM)Ap>sqW8 z6gXKXcb>fbmp4}fNd2|xsKiDLp>UQ3y*G6byc_aT`nIMsqX3Hth8%an%r+MCQlZyn zkJrkt-qx?Ii`iKX3Zof0@`TavUJ8yo&ljEtnvhC7^4Q4ZY%`P&wH3|`6|A#5Re4=l zYYwz~dunOq%|{N8>Jnp83RT8qmOJGXc4scL5%PR*^Kw~yUyL_ohN3$rwQ{4JDvmQb zY1?DzaO^-4NTAqeV+yq4=U}u)87eP7>&#r8bFcqQYUM=(EBWkCj2esQL+#TCYuSSe{uWd`5<>D=>pNe``h>voWg4iE3qFCgTL=x)8o`k zIca0kv%(*<=!@}1F`}B4$+o8t7 z6dAWmljxc7QcoUY;(ly7G<9<%bqa4Yu%_*V3IEK&+Dgw`rn9LIQ?j%kU7@# zb@ib5{Jwi7U0Y;DXrH3~n{WZ}QXkym|DE5E6oH&J=jTb(Hwxu`{DN^I6WdO@t<~sB zMf2`fcJCakHP=<#*MkGu?pK<#)|$FSr!ntwmV+;_wJ!&@6AbR9i$5BbS_z{Z8Nffh z>*7Mn-Y(xm^B^N;fd%DjW|Y|YHePGl;FCtth?tm}`n);MxP<9)pAV+bPl%mO29x zTkI!sbx`a!gI!zF5mw1^Tmkr9hDM3UuB^rG>oLypT(&dwY-!FP4`b?Tzr*46%t@@$ z?k?eg^}81L)ub*FRkuSAHStI5#pKm^ZwBGY%PqlJUh~R;1Qyx*TT<{Fr$Z1j|6Ui= zOho%&d>Dt)GR#KvJ^xL6LCisjV?$Rh`^mDw<>c9SKNGFdrpUTkl{1}`T|_*`LHmq* zj=O^{Xn&ecuHC?wGL)-H+OBaWsaG9}XwY9j0j_Qa7^|4eXgn~2ycUz2!SxwVz`fS( z*2p(MW>5QenTk~VbC$bu7Q2czSsbhW+Ou|4((e7Lok&;bc4I$yxOaTHlvHhgM#YV^_TquEBqK4XEg=voWN2&+ z_fC+rb|-g|vLeaTO6v*j{r_*dy||yCObuMBgN8C`P$M`h(3Ac7>woMgEz=X%rbH{p zPs!-_{C&Fp!(i`a&OONi_j3-@dW`cKx0WqEE!q&)K`aHhiEO0NPwmUcRn82~zsdsp zU~&)r3KDGD!yACjb(|xn+_8w30NJL18uw26Pg9gR^M^=ie~Wveu|crHJN%1(lx#36 z=+Z1-BvyGi&yU`LD)BUob+nWpk0_s;hkG+mi$deh>wK^8p%HzCj>|7&z#t=aWHF6K z*wM-#BOavJ4yKC{P!Md1=%GII4+C>ZZZ#@2;y5ADHujdpK|Y}*Gtwcu{P#QRK@#cY z=5CeXguvJNTM5@)-~GwZeNix7aCy|xMtuAl80<8WhmHCE5*zj6?)JT)*Tq0ay|e7d z*}4IjvU)7e-b=U_3k}qus%P1`F#N5Yx&nTr#aHu`vLKp`?=fRyVV8>19z7)n4R)&K zr?oPKSma$Qje9>Qd=ZM-ednrI4eNa5L75Iw?A~<$=~9x??#+#995NGveAK2W zuaxdTrP7R4C%?xi(ZkAJ{i-Dx8GEJ`t-qc6D1wbMjB{;MpO zlWISVSNJP2t!8)|`mthJE0v3cl(;fzuGp4aQ-tTekhK0SVvLl-Y!pFiMMfuz6Q9Eu z&DW;Djqo#@?nhRWv!-OiPHs^#b+-%Evu37sx^eD)bYnvr$KACwjjyvEA<8n53_%|P z^mxB!kaA{;f4;WW|1}8lxrM~YNc1 z*8Y3oxA!Y~qGMsXOG@CpPd-8D1K^X-T-^iHvlyth6`_%(#cTk6DlJGc-*zo|ThWfb z=(}IDoYLJZ3~Bz>Y81Yg9qTk|LvfPcpeRTeMU}yDILwR;!qJU?N&ImZktH@oHt&~x z{he%C`w+)N{7`)OL7HB&IJQ(#Wn9(`WjY(oxY06>knZdncYyG9NZBggvyAiIaR`zS z=*;`G+QDx<&m3?d1EYU`_1yfb>gHzNfos#Lw1-pSU>7P6p=IQHTHpozvP?8NkmHZ? z9uU{*^;fzj8lz{Ji@UE!2TV@XCe%iIx==rVI$sv&H(0Wccyl| zE;VjXj@IiF76Qs_)(tlf*a^3WOrh|uJV;2!K1|8+3U2yCg)<8653x$emyb;Z_kOR& zRWEH$E?8AJ1pmW@&K86u&go1A)b4#q;w$;OZ9@@>^ZtWIzPX|_L8t5DwXXz(&)>Ul zrx_)hkCNH%`up}qSyL9T8q>Nw(>l6rPW|FZ34rhi#YmPwwr~KC(<$6doKupRoO=|) zskafit9dpz-SGM+%rP(B0~QvK*ZSfK1j#+8g;)KQHF5k(O|!J-2vvOL^c17sxx(&c zp@y+SMpS=DX{!=6R}Q0TYIMmuFcXs$C}!Ex!sFVc}<~p8&jdG==EzC8S;aDKRQ)D{oyG|8G zgv64>am}x_c>=ipE(!Y2f!4U&EFG<8yYHXCKWzm(d{2g6USa=>t*;7d1JJgG0>vGQ z6?bn;5K_4A{{B64wWX4asCba)N7E@G~ie(YKOpt{o!9RgW*QF)^UQ# z6ogk>HyxRCk}}i2u0oA9kWhI#->P~X)Sd7M)$PJnf6h?*8%?Hv=22{aEx&P`{J4G@ z1N>+K@GtAT`aWFWiLT4Fj?3hYDoA%Wx@qsy)Ha%~F5tpbu{SsvI(wxE&E42crwm~} z5uA6gdNTTzwG9eh&L3JF253nxp3fC2se6=lX#YL3^piEybojFCs@A@wpRO#ZzXD%% z>Rh^_yft$nfDgp-t@b^N1gl{j+HWV`H8^Q)%&#~o_$>+TW#@hFZN%4ww&Yffu7}$- zvYm4{FdU%w#za%ViJo{KvHuKnupwULNw#qpFTH3pm+sK~a_Z84Ge{i@)hE3DU%QVy zhJ<^m{j23BysxIvxAo72=Z&EBG{bS?Rl>&qXtMSQE$MMps3eIok_~nmq0Iu+orHf4 z4Xh?>2jG>l3XZP|GuUQ!W^CjBDnHyCq&@3$(e<&Y-cG(b%{i}*rJSgiKgr;tGDQX)jTwv!iY=xhA|?c9IUL#sEMRqr!mE_#6o1lR@NR*N0cbJ zU{S*8+duC)$X=vb#BJd#MJcPJK$_vPg2A>mbA{RU{b9U+AhpXScPr!JCFgt=!#Y>- zN6oQeT6{UDKUU#)GHT)x!JzL{-dgX0col@qe{O&Oi7_RUDZL@{wbGg0FUZj6b=kLi zTHaf#g}17HRPgHOe^}~HhfTFDyhXI_I2;vZ~D1Nm5o?g9RjrtLz#NAtt_j#lRq2&JabmRBRY=twoB6n8W78PJMd8ay` zD~+T6JCT5f=)20r{>9-MNXOPH{LJckv8QcWZHAy1SHJB<{QYRKQ z;16e38|)J*tb2_E4PdD$HRKP0CJ1AdPBm{o5A1Wvm;0F)nEmYk_b@>L>OAZL7mEA= zq>y-TrUEGXg?Hh84x#+onw#%#*e$HT*qG7kbtwZ)2m2Pz9l0+Q-~J7GY~QbGPr7V3 zcxWtDwEB&&Og^29GMW3uz^dJ7fgH%0!rzc4cG|Y_#fQt9hNl=vU*h8NeYAcmr;;}K z+3?Qq?zBtV@Dz$~uV_%Y)Wv7r?qT47yoKr(6X?eK8=gu(Ip!-YmlP8Zkqwho7X+Iw z8uv#LY>JU_+l!m=u_JL1BzN6UO$R|#o8bEH6QEFM=@lBsdlRb^ytdFjPD~E0WO@|U zboy6ZBSf|^towP;O}&MSK}vDUSCbeU-YdK?dE4)uqzsXGBzK(wzyM*eLKSEYIwH7W zt!7O>8Bb*gG>YB#u>nPd-h$lE(b0Q=}0ds)lejdjPgTyLNYsc8Y6 z%l0qwx>PzFjqYc>O?3}XFKlN0vYQ;_ZVyF>a!IEiL=3#|RWA;vazZlFH&s0pgLx}_ zAJtu-UgZ>Xwvu16ZgyBt96<+uUQOVg>SfSG`EUI%P4K1JzxrcSHdjwa8r_BKLs(Jk z02r>*4AqIhM{b5koD3G)I^D;z7c8RLGQ<*BNnD$qZ7m*O`xV%I2nkn0V(XG8rA8$Nf8)g#I2*~TP-aZXM!o_DuIRA>pA&W3K^-=FWzL8=w8~tihY?Y$Tnhlo{zj%n+Q`pif*!==W$`KAL=<3NgIT1bUR9lhob7KTQhqxYQ2|g z_g6M<`MirAw=;hoySquePPO40Xb)@%d^PW1K{^ang*o2wAC>yZ7={KDgtv!>#G9gD zr7@sFX>Px0F~+j+^?QFAuzW-fBejR{PxA=7{a{WE|I@+ewym^pyz7E?+4XQH>)ub% zuVTdPBU&|l*a+B-cLZ^7{pY2$5Mkv!E;(u+!q-OMEKFVQQg|P_^T-GDQLfHM`eq+F z{?}oTbG55DhR>aA9Jy;(s%J)uKhj@X-1k4H0$zT9LJP%@&8i~o{VL{HYcHB_&)7Zf z)a+?@wH1b`deG~}0$2$AP|G~M;!HmwlwIh;wcr^ownaz`4G~X+iYWHU15HB9e>l}{ z%=i9lnZ>js3=)I|3caz>w43#8W+Rh=CjoK>B-Xrc_Yu7*!rSRxUmui)kD zaL={Rv&~>5wuL@+KPldC2lgjz=>T7Anh}%m=mkc9;|6uCvqL^(1oTg>S5A+e9X*9o z5m?>qkkkAwq8z|tMq(y3mqbJ7QYhr2Ag29eX7hXMA>jpnv^p>FZIeAF>kjBgsJ zjmU0~^z9pYLlM_GqKpARufav(`M2C86_o4yby>X5k`x%9^x*RTO<-;>tv^kmY%piR zj)+XRZ#qVt!}Ril8w6#5pP#6ld1$H(Y4GnH$TG87S=oEt-){Q{5v5wBJrUtw!(~4@ zZuvb`3Rx0{D{dQ3+T0*zs7uf7`P_WWUi{bt7m5dY?I8Y1ywr9W&g^Y#d_;9<8#Ole+tV`8p}3K`y=;V#u)j2R!~c1_TmChMM8_A8t{9mr1>}OME+VpmNmp0XD>gk$pFpx}fJ;61kB&KG4#rwiG_G zP^t_rPb!bv=#RwI3c|lkGGGGsF60>g1PwJN$pk5Xf4Rs;=BzQesUi}Nf1Qu4%!{$< z{)psG$CI}Dt_Rz{g`(TN4TxcdSB5=w#8fOu`%(5I&n~%B`VbsMTwLTD6E>z7gU@(I zo%b-o=_p`N(Rt;Cl-5z^uo_*#fGFYCPH!Yrqy5!^_h2#3Bc`KtYb*rdihnlH8^Pg! zVWsgN!ZgqY->pE9mk}NXc}97Eo(MlBxyFQiJ-2c|nC@Im>0dLj^b^9#9Ju6r-f}>T zvfW5ocBwM~ecQ5=jZ2t!h^r>={<`fku-r&rYU^lpwH*{lT}(}IO6S-*vu&THRFx@| zxOD_*|2O?cRC_+|ZR+FD7dmo=khrw9ew;N@8e<9r3n2_SrHW6COCCiX3j(m{fBU}F z!aQr|dko6mDWs0x;!I)DZ?G6opjG;>C-WY^ugTKtqh8{Xj*e5RJqK`1~r%4&I z1e1U+Jf)Y;G6r9d*oqb%Fe~Bx1UQLhK-%QIb7$ly_ejC}`Q$1Ga2zc5h zr$Ry;4gvJ}fx=g)`o!p-;dtOEx0Q$&cn#?V_kcyJM4fm=Ch%ShT2U9?wJNGxyzaLT zK7V_EY`+wq&W-;3Kvw+(XkznJ@B&dIY>+W-Kgd7N&>n1%F{48?6y|{1&+l_F>$JGRu_5+X!IO3J+f((xHMAwG7ieL*rPPZABQ$#u;aBBMYtVF2)m88d(KqbS0cff zk9a+JM)!8V#)%;f+C2xhzLU$|sa0U%*YY@AU0)nXmF{h2pp9d=br*T^o2Z&_=&5g1BSW{t9|kr8tJi(^zJSPKEd-DT>sG?CUzCw(hPV`dsA1U3 zT>QiNsra&W@GR$!_4`F~*E0WQHR(xi4$F0?4ng`VF3!fo-78taYhjQg;9oAh@4?6RGmVgIU!F?_=*8lUA2U(?<+yPtUpuUm6k01xOs!-X&0S&NciGYFZLDa2kmJ5n zN*5AxybG%TiuYZg9J+*2d9vzl+j?Sr8+D?5>=F-CypR4m_wlSvVX9=*e)~G42;LR*}R64~EC6>6XGDes-3+TI4m* zmA3P{&XxsksPx~EY7ljYN6R|$tTw(hC1Lm|Z;c%^Y~!}%bhmH$+`T^Hqmi+abT4v{ zZkYCNd?7Iw@#E^Yy?aj3eJtu}^N(3R4`oBjkWJMIXCM*|ECc3?vd(8&>fqLBb!-AD=wb_;JWXudGb<$*HL-;}pDc;# zv!z@WuU=Z+~`1Xg)SfLxG(y3HxQn<)htoouaibMX|vZ6Zp@181ixXnEP1CO1D z$Hm~_i{}M%(#Bh`u(~BY=ZN5KSIzUhde#=V({*h58v2wb*4-6EiTHH4uG%x;;D!nN zKmhA#_==*yM=(5fbWnPaTXE3kt|mYJ=4Iqi$jQS)<_aSc?Fkv}8Wm%^-2*tjaKzQ< z(%JEPXmydWfc{*_J4XNc5P*fN5e`T{G+5#J3jF8v#hs?Bmf@ zn+~a8<%^!(bbVUJAir&4?eb-p7Oq!~;J$J@gfVmFrb`X;2tb$(8EH8``mmtusH%UE z+~KUbJ~6Gp?69D29zpYwx^Wi7jRavL06=3TZUYvF198ie>k%FhG}tZTf%_Q8#Q ziSt9k4U<}d1BBsfBvYuUog^BE--D<`6kR)6^oXS>mGu@j*~QBg7CjI5CCipqLJ6v- zrYxAZ?prx;NStI|2F(BTIf7UvQAdQvrbPCE8Za)5p1!KARhfdME2Pc^FWIcnDD6L; z=WRnG&!<5tf%w+S+LU`O^i|Taomcu#@gY=Q@lmAOQ%1vkfx*+V8AN(y=ARLeL2_XQ zcnseIdiWreIjmz8B{H8660s!EVG*d)O<h>)1z#wQy%Pf;PelZ!) zRiO-8`U_Itxr0S5r0m2+ixEPx4KH9{={Zfk$pSo{_JQ3@Lmj2pL`Bq{*}5D3e>rSc z3&N6PY;XKan6BiT1_;w;uqro5_oNAw0Eaq0+43(;X?$8h%N(?)Q;O2SHK&o}7(R%O z4S0gnpv-nHdm71ZXWc7xzCr-jV0JC+lP@&TK5zGI2C`3#I`Yq2K8-6}xEL?TWU-Qd zu^?HE=WpvY`C+^}SAP3)-eOt}}r+VPMo&Hkj zYo8BBj^$h`qzzUyJ39}(-7S;}{wqT*WM3$R`qBO1DXZdhF1IR zXu}adkS39su*zU0wwcmTRV!vSw_@G!iMijJm@)Ble|`7tr3OWI<}nIR9I~8kg*#|E<~5MhY~){D+(u;l0iO={8I$x7C95-Ko*}6 zkJa&dgAw|~c>_l2OENRQaWyv18hs(}v5yA)%1g~vQ`cLK$ECj<8cx>Lj*C%iqmj{p z1#qy#L=s|*@x+nDgwN@PL_f?KPYrt8SW#_DGUW7;C}+X>Fkt@tYC0t)a$}r??Ih0g zPhC)!H2JBdu_F9x-z`_+$CgJk-?>G)uIsLxLE|=(qTdX&>2w%KnO(RQ!EN9s0Ni`lw)q%YfKBGLPsf#QPtb#Ot^hf#1DgB z(0DRN4{@1Zczi+u>%_nz{sGNkwbX1Cd$p?1jAw42fSH}iz-EYdC@?>$ zRf@~#TESU797wAKm zqnpJ0aaa)v##Y@~NAxwRgyx?TGnJ6qbT2*MWXYb8a*UG?EHqIO{a<^@gbZ1%vVYK- zmVZqg!S)L3sNh6$4MJm5q^I*9vd&ZL*TiVHbro%CqyMM4R9lE@gfXGl&3PgK9MTQK zk(^C7V!vd($h~M`_SO6<4Hp8JRCgRm9OBD`S|u+-hfK{T{XLpaoK7N5-uF3;HZ$#y z)jQI);n7Afu9agliDo z!vNrAdZHH{pX}OO@dVxos(Z5KmzMeWIBFeKehpzjsX~WgV9rpY@Q9JHLgI*w$`gq^ z=CWd$J6+!O%ud ztmTiYb)LRl;qPf26L2tg{PE#-5!niQrou2NjD*DD=ciAc0AD#OaZ`E9plEZyMn$Km z^XZ9Qzmx2qR${Pu2Hd}Ih4Y5wAyV31-)?H7{Gv>`~pwwhJEWssq*y9 zj9|8^LIR!))MyTC7PZp*KPclpIZo(DDZ#=i8bBT8ZzqBs@{yt4);idEWZv^W!lam{ zksDIz{+JuXUAEsd`xVQx3E*$ZUdvYN&nvB%6wKhHmbJ;`V0y)ug6NMPt6?n!7&6eI zwDNQBnw8pxla;HgWiy5$QHdmqDv2T(3OJRIgp%3i9lI7IpLw$u|3vPl@zG_( zw0ybv?dUNC8N&n=c%GRzZ;;tUcs6m_*=QWk|C=kO%~z@%NZ|_=TPA90qP@QfD+5#r zfF+lfRGJTT!%H@Jp77%F6XAD60%dMv_0dpA5yg@At9NK;CLy%oJ)6@Hc6F2$56eUgxKj9h7H6!(`47<~BnX!F`NFiMDne?xzdrOOg*4tF^7=?Ksz@(LX-YQrqLvC zFL%!4^!Jn8WCCYXeD7R5nX7hm;Q?aSzRI?JDXjICE6_xK7mHqMXLmW4pFZ%(dJbe%#fwX zBUIn*->+YOuHgAc+58DauCn@$HC87ZImMo6T!jp|PKW-f{S=f5`wgF_@b?4QJaz86 zNejsBCR%xLr|DHIXIXWpWYEcZ@z8f~Y(M?Qw^Ov&zF{<9<;QCES=3Cx%o8g7a}5GM z6867I*tB2RT<7O=0D!@2Dy9San6^8QPQaIyk&lA& zw^}N)7yCz2vx?$4t7d8R#}---PvFn{Xd8?u+pX*+mlEG|_XXvzuXZ{s-|ZImp>;b_ zGSr=RxCVBOLiSKXC(EuIYtb6F^bk9&i}qQehrqY}y>L*b_G024B%lA(KEIGoYWZX} zauk@!9}&mk7(f0Z-pB$Ph2oV8829&V;I0g!e~*3-Vi-ZEE?LvL`|EY9=D*$t7X6pn zq?)s>t*y~Ga=`oZ5#;jf{j&D`w6^D|`|6FnH`pIENZ#{uTG{D-F)=ljm67r7{H*T( z5XDXmsKU^~+(y#aZiOShY~gwka^E`+h)w;HG}q#E-k`&zTXYaihr9<4q`Kqv_V#-2 z-TceuKdVVaBY2z`uWsc3DL1QyM#@CAZb`DP|D{c&7xHUu>>#YX?QyN?_es~xID2JS z0e7d=-uj0tp4aWFIMu7JZ+u#F0^A&xCKC*@Xg^o)m*S^PvTL&e@Zd(I8L@z<9o*eR z2`p(CN%Wr;NWt^zB_wPm8$^4pOx#6YgWLA^M?q5}!J|es>vszi)nYYUw}VjWopcZquyIe@x^XjYlzr()5DdmJ1eu$qmIpKkB|LYqxnUHi>l`e%&t4t zKSK`Fkf<)wZA3y`Bu02Vm=7WNVG8e_3BAI*ydC2Z-wl{#h+d=xZNHK_0!3@VI5Ey6 zg**od7MGe4&Pb4fRGNU{JZMPEO~p`Id1`ksy!B%Bk^m12?^A=N!G0ihc<6Nl}Z0oZFGI|C{vJld*^MKz5wY z0>>7I?p3T`72bQhw`xzRzFnoq7xrH4VHQ<4N=7Hype9{#gUZb$A05lapEf&loZ15; zM&|AXo#$&s!-K?zP3HIV2Trx>-bTB@i)5pEcKDJW()6c()eZVrMSilHdq@Ev*le#R zvpRfFXvWeN*nnQN6qC}V#*ZoZQo65z=*p<|7qod;nU!iHj3>WI>~1@RUKSH_M`$T% zj7BJ4g^b7%5~I(5mPzR~ok)*k+Z9*b+f4mt1Bp2h9k=zn^luY+(2{g%nKkZWi7`^db?IsN%5$sGkud0i4o!+OhIMHGUT7gp2{kxU*q1zuMSdI2 zy@_vEP1gL@{%y?^*Yaz__caqe&)7t>w**V*Drqeo%F}hyEOiPo@SF$rgF!jUoQ-*D zG#^l2D&UnPgn>L-CSw_FmC8#T@ak|MqMaqTBHie5_v7rYSIqvH1@SP=|HTTF4xOr* zn|K_zC1Tw@nlu8&zvAX5(L`IBv8yrl6cHIsbE=}Gi zX?j&oMqE?yUugP=2qg(tzlF%*Y(z&L|4-SizMAtB(*l)#O2GAR1g;eiTE1!$3;Q87 zj9Oj6EbphU*^}l+!%r?yeQF;U4f#>QYQRd7is}&aIuzE@$X8VmwwlCgcrlKg`FJB^ zbJwR+fTBbIb@aRQ#$s&8UrpNJS5!ogjgf*Vt4Dmb&#Xk z0{Yw>Zk-jGdlGOgPY91FF9{%+B$o820e~JC~zoH|#tqdW=@A+V#j{N8s=o95OEajiF zPAm5(_a%LI!{p>_{-!=RoquUbey7U%=>y7tF*FV)uX1^mI^CL0AJ;eRipT_aqI`7U ze;{Qb6E@&=Zgiq5HXm8G?bYP>XJ}=oDyIfHL<6hCNENE-oiAxu;@nl`1CG|vKj>;RYriiCU^Dh~4;Y*Xc;fbt5;$pI2+jdGN<(Yw(-`QWrK@dvFy zY!ITxu68Jc3$w|{rSmv34IVeCcnJfZq*aG5krg~)c24@)>E-myxQN%OmY%1c$*(_g zy~cVLLpg7Mt=WyH#>Q<CW5u_8pTw*|v!mzY?2MrOoy$FYe3V<$-V7u4uc0z z132AJ8w0937j1LDuB}GblHM~BaL1P(gZPRo$eUH?dc6FU=dJU1`@%MOQZzU;DBuar zP00#7dAasJxZt>#DF=N>HVtE2CdX^{0c-ev86jF08)C(BH}kDW z;F;)3DEC~sJ!eB;zrGmoD74+nJRN#T!2i4}#32}2Zx1{eb}N!^;dC~81uc3>D^E#{)< zkekNJ5$ocS^(qx#k_ni~Q{>!d{)=EU-91jCUyV(`yuGP^t$B5yTig4(Pro7x%ytp2 zFKt@e;{W&@67u04nXzUZ9-L0(67?)v zhVnHUB2KHG43m}M^c=AFZE383b9-!G6_S?Hmsav8EljFiq&4%X;bm!mrhRqfZ*+37 zoL#ri-OD51?@P8EQ7u8I3cLHsj+?H_^wa+K%Fu4gR9k<)w&Q6Lf!eEyM?r&np_(^` z1JBpAe;>MF!PNlR_x=~%Ys}7BB!mBI}8J)&CSip0pOe5x3%0i0+n@M+vTC5A@O(pwfQURcN-xgA)k5!)BhIZ8Z1tF zjnGJ5{6M21g6lZ1N4s@34pX!utij(g>#(n>Ej~hyIso^A^ELZW$1CQSdp#Ra^NZ%1 z-wk@BlM1(oK}qe3S{4)ey76jjYo4R7KhWO*64}r{$y=91i z^bB-}iGW67*1fx{dc95jb@I8eF!*C2#Z*s-Si5zwb-$;Zm_x|!y=v%7iCl6VwtK=Iz_Rb@0McQI7-8~%;7$|7(nR7`{D z{)f{Jb+KvOvNVf*6c004j<+9Rj`~{KwRfd6>|o2@DZr;yDzDk`Z-96?Kpvaw&sS+T zW#u@GA3yrkc@3A+=%W>z7H~ns%C|>CxUZIG0%q!X0pA-&9H(J%w&^M+VDJ!+>9}NR z^)D_@8u62Tz3!HKj*t8DC?I{}z`lTsPLFJ17dk%5{HBHqfag%+bLi^IH75HzQ<@(- zgvAxqTI^{H3&(^&3@5&l_d_gq7KbYfdLkxD-Hto>d>UGyPP&a8idze+#t^t=LI+%K-mgdcYKcRKs@E z*t4h4_Q-M2j=9XnY%=L{!@HT;XzYE?>So~nzxb?-@_8K}`?yXw>9cg%K@2Y1MgfXV zbDD}tt!n`kOB70`d~w3wW3B>KbRq3it#pIEyDYP)NTUAGKULz>`2#-YicXbx&fb8z zn_K>%g`B&|?>&sK&jII8EmmQE|xgu3N$+@aX%c>?$`0*lMo`?^PBR8@~4N<4ZxYF}{w1ze`mUo64ViQc}V5)sPNraNP^~ykmetHu2BJ?BPwb#P{ zsWhY;<6Z9Dt8^*`bn`GynH*gLpfLv+n*s}hbAvEIfoEk#rK_|b64@j%Kpp^ZkCYGV z38_3}`5IZFfqd++kR&V4*ugeN9t4w=e@Y>4Mu-)JKV)U`ZJx`Wt)2}Oov>19C-yYs zBManC-*b*ju7RmIj|7>q&p@bdZV~+K7YqH_R9IYusI2MCAfSU>Xjcp#2E4 z&&a`jRDLkOEg$Ka4>grby6!2;RTHm2QSZ90H%oqL-rABtMVr5Ns1_6k@60VlSa(sS#kxKS`=)&-WAc zkXJfS>(mhPEop+7NL=M?Zg)QizuFbjLk*x6#LxFlx*;xf)aw2opGxMB^!PZwFt+kX zW3#*0v(4;ECDpeIK{tT0L72~D4%;-AG;E%Fzq*7TFKe7I^j?nS&Cos4lz7v%KSw&f z((#7t{#$tRr705(b{#z4vhvFZ^5PR1BvcA?Ed4+icWXD5w+o?qxj53en9b8kd}vS) zukC85|E$&F;M1oTS6Ag5#Bme=6Vy%@+QfYw&c)?6B`6=3xC7yvH5ylYE~-J62hg(kyah(t6Ktr`-j9CzeY8B2%rm{zG|ju&*m^(Z zaWCW}yD618v05c~0Pn)({8LX-dPJ+(_xTuweQT$+LI0l;Qxrr?cB+^Q8|5PwBsda8 zMw6hKIFfytaoIjJ9~sOqB(|k}I~8`%OVXfYKjtU2dFWFFUfn7QN{J+rH-u-_S|}^Q zqM;Nl{^O5WL-q&S*{(+OfRIz=&CGM*m3z;dd8g}zUwt!faFqM}2tAu6ciU>jER?&E zu_pLkOpu=nu5`zb!Lr07?kC^kv=aULhoW7^Srq)?5bFs^WM?&X{;s>>eV)={I;vBS zK0E9=L1dheLPUBw%w|k&`Gze?TC)&}XAlH{xUQAT4|HFuDKy-yA3R^ehqp&v}6rtX~ z7d!P6y}O3p#amJ>xd%7?##eo$VLC|GfFP}HSAKV?D{z@p*owa5XNg>aY^`8LmICzM4pMTVe*0ccSy+%HG-dkrcm(S2G}fv8rPs;;Tu~rdXbv| zs$3K3aSb|yjYhu|+8NKbTADM-? z07TiH4_0>%36TwKD{a9ZUjV_>AKvrLd_gd#BXvi6f%yje|M39wK|OD4GyO87{yi0q zPTbL3w3w=&z~(1nG8rWo+ug6svssP=;Ka<#*H*x5E2ig%-n$v0#>U2IzZ1;nu&}Ug z|5tl8kN@!#{#T4lk_Rk;Z*TMar+C>NfVyN$?QFEB zeZAdpR(r=Q1XWj7!+NUHl^t4v_BlOToSs#AXX+BOJy4ti_rM`^(<^>-;G4C;WJ1pV zZQHC_@~oz7Qia5f+_g|AR!E(1T41A0<{~*}92>R6jz)na9P5P^r2@xC@ zLdaW3lr5Eq7|DfXPAr47gje!&pyY$Pa^zH&)UPU|7C%n+!|Y{yNaN2*h&B;eT4ruO zDu6r%@vV*v{CC}6iKIpJ8~M#(#~is10yuBzigP0cz_xv7cj5;8J%88e7y6@wzy_wA z3XD1q!~Cb>a81ObLjmOLXT%b9+$B8~%RuT|$-@2~kdOV&MEt2m-gllY?T&&}JP{15 z3^&DUv%r1V?I)$b=2hDBrP1Z+^3NZ2W8>bwot?P|R(jQ3RYj%R8pmT2Vt2-h5AjGI zg=8SPq#fGpR>Jqdl77?&X(39|bW2HWvL8|Dd_u~W%4QwWr+0d}p)X0Yba*@`VVbHu zrlW5QO@3LHi?g|kC+MQauiKa4gC1nHXBx1t%Yf##LZx4#F`6R8)mUNwxrAE*t{ngI zlxkc@(5EIo&c!O(~q>$)uaF(95u_ zW)89K+Dx`V?19o#t_b6}s=A}A-(?@J%R^>%5}U6=2&%!tKGR`YZX_;HjOw|PwY9rZ zH-vzN>2N}cwF4R88C-Dr!XNzUYsj?be;%ohcp#9mL4H(T6bB688+lFgTe57V-Nyjt zD-9C-o5i@niffVgDQ&0u4WgsnL>!k?4is%%1*giU9YblErrLdczBoS*PlG>T;26+8 zTcu})am)vPg#S2~R+6qN^oK&3!;*?u*_xP|X^=QrUD;GraUe`?STD%c$XqjOn`>X0 z@l4RW({3++Q~P~f&8N8PQ4w;G@=wa+1!Y70h$d$N%LM6GM6+1$K&=#ax=$Tse6y>= ziQ5Se6nAX|`OgTYtK;M1Q{qb)5g#hSP}8;WS4I07Q;=I>_e@No{tcmwV^fYAsx_x* zv3ak=SWzQ@n^-yfH7)xEPJQl#wTm(GBy)ojwN&)a^$!=57h8!7jbg1w z^8Qatr}asya#qj;p#7!$w5OKcq|hs>@p}B*dd+zp2Ek?Ym3&1bKSsF=4!M`%&^qT> z86kN*DZL2=CfGb*EQLj+=#&JZQq)Ippf?A&SsiqxD4K@=(R+a_KJ%889N3E!d!PRM z+|noJ(E1w7zpYm#0RGQdB_QBc|GHzERKT#&>Ihj7dt0b|nfOl<_P;I69+DT?sg+)I z2n8(UIO!A(NDSL~=xs{irWf-EmFta#Qc`*3= zbl6dXFH_`?jm9%|^+8%0BnO}OCv@*GqAvyW4ms5h{21C)Cp-zfr}r?$zajEF9VRX9 zv=1T3=*8-~7mETh#5h)0@b{nnTR2bYwco|qZU9wOJMkGia;H>ewh`W4jLr&MDG(j} z$KZ)MTJ8Ke-B5_1*S?yPYR^^{mgrZn;lG;sU(WRsA_~50{}Ge!m;Stfi!BIWhB3`T z7)#9bX)zvcm{Qac&9UDD;a#EwB|WSs3=mL1p^rk?e}Vj{YsCYZZEi@uBfT8)Wgh5Cs1$jp4nT`!k^Mgw6_mO*a90c>_`rl zQbuGqOOsF)2$SAaN&7*@10L;N`n7dS#31q<7-+C)k=jD!d$cU-#2RRO6THVGyLR+EA|HQ)!+ zT)pAKrHWwG2K`KF%QHE`bVYi55>MTO@*tuHf~{YIt`B|9=I7pZdjD$UO;pOr-p%;u zwfq756=K!WCt9s(E!Rpv?vbWRbua2X)xZ;PxcI0*eRXPecoU6ylreV9$U0V(XE64m zQdnsn11Ve>C3P1TE=lE#H9K6=Pq0V1{J#M!N>~UMvU=x430|R7AGYo)wqG%*@fZqN zHc-H-epCeT54a20)HYx~&6*x{hVs%!X3Pfg)?qj;)Q3dk3zxK=No{B)VGo-KNy5y)`)YK(ML-< z5!#d!U@mjzFzvN0204lKntdthCc|sJbCz*fSj^g(D9SSMWNNYkh;_n#Y z7mVS72`KnUtc9H&ui&-YabsEp01`ZM3Oe#sA}Kb-}JTvvNq_q z$}@%2S4e(Uzd!i3qk?UpYW!>VNFb|BmLLbW%PVTw_Ar*L%l4u~jTe4zTTD{!Socd!CKi zZ1zZMi)D9{$kCFa*A+SAO*eFF?Pj~ZAihY)=j-Hs?8JLxC@DQkC+4Te3-)7RD$rw& z&okfQ_EN+eEF$MS3XXj#r+$Vry|I_@*zh&~Mx7uScl0#6{Cf#g$PjAI#4|yUbn?WS zhDAbcCCaduzF7+duoN01uZ5NP7R9+J7!ExQ@C-FSF9|;x61zvSH%=yNP5pt z+nHM<1TpfMXu0X2IU2&s$+e84@wHP1Ax;o>JhS!_@3FJ3!=>fp7=Bo+#zvqN&(C8H z`8#TsYbh3x&$&yE|5e_#AexXGvxeH&h=(d68HR`?x2CG1lO)yi-@c8+JA5eo$Iy^4 z`?YQlV7;a>O;OP@e`}1Y>U5{&(9|3c%Y3NtebTQluvFm5M6etA`!iplHdb^KMSW5_ z6j2<7^P-|G5GJBVl$HWM!uHKss49%X7fIU97*VBmj8;se_Nyz3!__Y*vmtqyzf{VN%xufUhX(7sjcw>=#%pr5nf)T~(a^YD>J?l`6c^N{>r4E9u?E00*9-2lrvo;&58gS(nA& zPBCFesYUR(AOzcu`ybU~i?MUO~5-C#yX%Jol-cEwHJ}wp!o%kxj$%iZ# zIKLmiwcKox@qZs1WapkkKR<)*LrK;_?ok&`+C$|9k(@cnM8_c=uT{9ZB-a&Nk>-@a z&k~|2H~KGXbib&!0pPd-Cf{=yQm4GluyS1F?00%wW7JlWZbsX5-F3~(L}1*^?=}tJ z?zUooPg#nLE_3Z*WN4D#IG}g*E3K77Au>c9Dm^&DA`HYK<4gg45d4@-&F2CYUk)90 z;>gCYP@xIXX#1Pa1w!Z6o1$v=a(lYF?eDTj%FY}6OY8N8v{Hz6!LKME3+{a44&8EQ zY!!YGGm|4C1Wz2?#+S9F%+6}}HkBSHi?m>35+Hsr>&X(+TPj7L(I868MS>0?U9ZtX z$}0q-G}qH9r%)0&J}<=-@(@S$Nwz{*E9do-i@&o_E5i%=v}su+YA+@z4F z*!y(3zZ&y9coonc%N=aITVLe!UZnbO<@&oeumJ_;Dg;Uyv-Q7L7yTj)D?r(Q?_V;d*$vl5$Cdo7BbMC$8o}+IC z18!-dt6sm69FqFMdrj^~ppN7l-Ct^jrzfR;wQ$d|*X>jJg89YNFi5q>r#D>^?*bxP zaSlgAL%-}SM23Rj<(scQd&W@1{OYxOY2{j#raf=g<789vA+#xYD&Oh6msZZb=|jhQ z983(`NmCZr&oz+dalnQ4-CemMb{uVz&IQQ{I^QIk^^?I6?iN!=9|ek7G&pTg9-xk) z$h#>@03loyxGjo;cye1N%&*)^t*TRU>%KGnu{J@7wvvM!Zq&)=_si&oJIcUy;^jPCLMP3v;*qBnN(OLH~lcLXAL$WABI1Kbro zqx(CwhR{jI1&Dv1-C zL*JGbispa$QTSaD%<)hjC6LocDJo^VIgKQ4MdDPK|gd45J0q0IS3+%<^ za2(b1i-G&F;$cFYFn!mh_{r8@-hN1BX}o>B1Sh}u1|dAgdq!*P((vs@C^PzLcKiT~ zmV{E}$>rLQ=Ix8_x4{Yv*YWQ0hn0HCcOb_F?55p4SQ^%{)-F_ZZaN_2UM|eccoL&(6|& z=Pv23Qm*iOn*Vd!XVi?>@DAxmOZV2+XW+!bXXVFJ+$S#+lU*(F2OF1wK%3Lv;HB>+ z@Y4|QzwdL2wMtt=h8%1-M2tx)-yGo25jb^T{BWIA^u$uMGt%aP` zN?v^io-U%R!a@X1RW~_;2W0JBttfcbjMR#lTvjQ-qfA<=BsBV)w0VXL8 z06U`8WauF%g-ll>?G7O#!2}po5@lqAq-cMy9Jk}LNQ?S#{yv0qP`f%_Mt#xqU&Ma` zsCOqGTn%M3GucJzs}X!a>wyw?&%vI;&s&5Pe)@!WRvODjOZKl}#qT!!%+GfvS;P** zZj%otXQoh4(>Sn`lcRkuqah(bjC)0fp+EnQ(;?>v-%Og`2|#^{lIM4#|ELQEyO;lYXmv~Kuz7RO(I||UW@bln4q4lyz~;N!T^r^Dhlm) zfIrL$g>z^4AB_Gqa9`1d)1fo#x^mAS5dWK2xgnmJeUCPGgxu;lb3d>cK${+l^92%u zZIN~%U6cbq7aacs7N&9_pN1B;{Rn<_Sn?vB@D(8UOId2<>hxHIqpU=f(K*h%Q7}Fk z0&?_C9uh@X{!5(8(dE!x**nYrvBwNqOWS)W4WEJf9SIvsgZ?i*ElOhu4~9dEwiQf7 z?}6{m%l>pUUGofgwC%*`MEi))(%RA`ix&sE%`cDjq|8g<{j@6u&((vyfgv-(Ir=bx z!5;#g*gNn8|DHs!Pee@;qehVu^U91RzmijEH`z4epLeUcOW%TN;BFA#(^1f0Yn0s3@lm6&ADuW zj}m?;GC@I|szC9EUAkcMMk810#G!k^R`y_c|01-GLG#z*$U)=H0D(@gGdamiyrOsb zNVrElQ~=%`Y3;oM?Qw^}OwtOQIvd;^f7YuSzp$`9@HF83*G7{O3H@!GiVJTZQ-OP( zf8@Bl>EiEP=)c>uuI=5Q;ZqRc4NsWQKE{{-=v%di?3I}KANJ^~eI=qc2++j;)0}@y zoUnKe^M4BaJU=q%;-T#s>whtYK?ESd^c+QN!Zbm4q&;KU5f0Z`D0miMLX+A|3 zH!6mg4-LQ`r}GasCNVa}1gD85dMWx)P@orRwx5lUBK=!5s{!K^Ji0;AcM};i7618L7a-@T+Uzeagr0RTB1&&h+a5%=NFF{pVTCu* zn;O_|YD2@N8JY#vu&=GIn@BYPLaO!q*BRSXT;JqRd;Qn(@0BaVw$9qo*E4}mbtM4z z2MXgbxEY8BffUs+ZaOmpRyYL?a-364<3xIta9W8FU#%>EbguCR7Vvo@M-OG8n}`&z zr`FmEw38fYzUU_sc4lN0B7y-;Aiap;ZT86*aCCFHrE+c!|~4UH_m znm_b6Gm0&GXt6SyQK&7+5mue*0tczyygzS~@YVO7R{^!n_0$hFz~bt5bcv6e-%iSt zzRWC3bBQf~2B}xefwuUe;+nR7QhA-cJ*nm^P0tZZMiW+B67L2eF=DiY`40ppLPBUw zbU5LSxIKjaSJ%H*v*3w*$_t5>)c$x;L+yrETRZAvJ4WiGzUax#L@mSHWz|~Z)8xl^ zc5~UDymxtPG5mQM)-gTC*%vBuizq9&?_V@#xMHjj{%UIgRMJpFbg&b^`-Y-R$=~Ps zG1RAB&Xm-LM^$sodTKGOoV_KB$#=)X7yGEnY%(Z%9fecdj%3YP8w+o3m zcda{R52Xi&z@hjy4{_q(5_6cDT5fop=JkEBj#MaVo~pE%!!@iAc_GGfoCa4SqMqT1 zYOqK2#@!8zJ#QsYO&BBs^o91_2V5Oy!zn*c`J5Y_=X!cAgXYp+5rFy4y>+Ntb}XkU z-iPM!t`r+F5u@;NR@mkI-=AGDe|u1eD&=46;avMIPOvjYOfOMULtqy{)<5}DChiFy zsP>-28?!0&8b!5m*`{qbAV&*ycSkR>mCfJF5^$-falAfmT3rjPJu3k|myii#nJwXnvM_2Hj<^{g#G|{({#DZS7qcvyP zJW6UrPE04(^w@JAmBA%_<08vpWu;dx@vunJj3JjTsd}T=U#JRG%575Nqa!_7upo!M z1?|%~7(JLw&NJ?|w>>SIK%>jDq)GVs=fF`csA>8i^`+juSgj&(RzMl=OMl~P)R3%u zmus8JnXT+pZT_b3ulJc>zVJxi%Gmb?ES4!mT=od zKE{543qn8XFQ}-U_ltU6dq;xfSIY07Lz_T|A*Xfgt^M!&-sd+|ThEjU-+9+8$L=?? zw_a^wF=5gHvexiU2=sk%@GKq;LC5^X~i zKBYvwn|dXP#bfYhc?QFv_(4RNILTpjlMs*MGW7x*Icd}?0QA3fkV9zI$SekqQKyql zMOLTqwSGPa4&9=)1|1322lrsctYQa=hT^Si1ca;rZCcu4aFa_GIO89LO zG*wZ&q{I@6g_bcOOY9d~t9+;-=tM$Ohw^a54<5^?7}s!x^+QCLI`UG7LpuxP)$9US zjKrAuKCgm&F2esn4v66*Im0t$RAME~r7UpqU}B;Y^VRV%j*krujSVfW4e>BC-aK8a zM>MOKmk~-0TH=m#NA5vdwDuPX7q%$xkUlFuQw`)7>DJ+R*JSyFYQ-QEwqc;cDdWSa zn7`6vPiLbs3iU+8S5e`SjmKZh1mydS##>mIPspiIPSm0VP@-34nWvi(-ld+kmb$dO zn=EA*#A@IUkR^X3X3j`W>a18Jr*qEiAvY!PWtuE5vYFCbXDHAT@g`62 zdsI9ZglA|$yXmbX^Zc_|Zdu>_8h`T;C|EtVpT@c27VPq(vlboG=o}6QB}}2YOB+Ff z)65*elm{WstAH3!X=4I`=$Q%|0D6LjLQ%kU+Ze1Ey>|KiuBx@#5zEzyr_;!x-Mmsh zJjvuyDSuGUY@O-DVYr&~zWC8=Fytnj_H!?3)gFXeXd`t~4vveT53f>XP zqJ(t__fIdr7K$4(5=J{I80jyj_6xLJL zx6TmM6vi)EkWM*yOhfIrfm6~z+4z~mc*J$!p2;r2WI0CNUd3$}N52l%o`{=|4AGQ5 zmbg-D#d4!%OoRwBUkB*t2Rgl^1=Jwp=voBqi=f8SGQI1AammQiU_@8j>C6%=lgcnW zo_s2o|K=3>Bo?GsF5xxUmVX3#jO7wg&PbcBbuHt}U431(A5A@XqGmGAuTwUc z)|7Dw6Hkhf_;KZccvxSHQEk4=P=#L2Ca_M(MB85(>wFFrk2DC|JV5-O?{qA(-&MI5 zmCznkxN z#_BfM{%7g?i(vlkn^w$JpT zBh0>FK+21pi!U65fppKlWoFCk z`MEYnxs}Ji>Hd;-#ILkmDx|1KUubmYAL`!{XWg8;AM*Vxba;^Q;UJ%T4SJCAa}hf{ z3jdW=qJxEOOQc*6MKh%?mv4)yXpAI-USk%qi%Vssm}owZVgpSC%eENiNtuDj$u`ye z1(QnArCClYj`|TU*Tz{;`}t*ax6+UAf#g_OfJS651=qdo zdOIanJ>p%fUV5&QNTJYg?uK2b!Z6e3Id=WVHbl+ zMl?}d^$)BJVt_bfOiUUr#PyqnXCg?3VTie|#((tt>@rZepm)#ngSsoZv1-IUwp73e zxwoppa(;>@ZrMU6wFe=NESI91Q7+5$9UvZv36M($;oyuSr?%TV339*m#9b*NWRW>S znb!^x$Wvs5U?Ywc<&%l^z%rz>vKJta4-0azN^%{?v@S-hug;if?>PH?CV*mV#uTgI z-5f$ewr=v?4+Vr>ey=z6UCNuFoJad~?xXJ$$MX-pp~oLOyb?0psCzAdg)fmN`T0T&lKuE)&cAp|ar ztE?!dX&@yh_~o_!6J_jz--s(?#d@5W3`tr{uKHa6{d>DTtyDoA?ZukWs)zQPN9Sn# zs&ENc{O|08Q#TiQXE@@i#SV1MD^tKu(_iw#dM+9lV3c0TD~&Bm@I|N(^VYeOBgunh zZ>>-IyXvsn*{ielNgB+VJ?}=~V8&Q0?Qi>*I8@dU6T(HI$VcO#otezeylyD*=-nIcy@l{?f|d##?SGWpYzagPm!>YMlHljSq=3z6tJ!K zcp6-;w9e=e4>pj<%ayQ|x*aI2sJOaI8>`j7PEePeP5{|~aX+Qm`EmIz@F^&C3HoaS zcE~28#_}YM?wcxx#ZVR?a^TwoHYfx79WkL{Lc@pvf|%&NA0mSByzUX77_z8|@dXfn zbgZ~;uncS+5OsW9Z)U5io(?m5Kij??ZJh+={6+I_@9|fxT%y3aKs#I=-7ot9&-!J+%`vHa(Z$y+U~U_Ft-Cvb^3zgu*yhz zIyu$D<6c>5A^}C4{ki3q>R;+M>3)8cyuysZQ`iAI92E)Cjb*9TpMF0`s)tjh8$9SV zA^&t`I!Z_(>SOq>Hn^Mro#z+GNKNmZ0SNC?j?TBIM?o6aLHv zV8>q(*^;S>#lxl3sEoS|+-E1+5_`@LXGR?X&+@;I;56Nl4?F<^2E}ZuTwt=?31I5G!+lH z71ElfH1Ecjj`4J*a0RFpJL(T03w{jSW|PrUjII5#l1NmHuL!cjfhiBLg;FMq6(?eF z%<5)Khc&f}=aDdH)h!2xIap`BO{Li*${3tx)J?LzOHPUBVoe<04$1LHzrb2xkTI~R zS*@(gev<{I?P9+5ZEJ`JKmnRQKtqsDgcDv6 zX?i~W>-ds9O5UN(7V^{5ul z9WSpEdOfP#4PovjpI3Gc&pi}aR_ z2FC^~-XqPSu%Ys%Uw9ov1~=YW)Z4myG3*k-o1EOzBN9-L`Ms~?vOzZm;*iMkc(8_; zwO{_!pumIc(Ua4vWX!q9BoTQH6+0a;=lfsi$i1BlmcKo*5IVTKyAu!)6ciK)PJJpH z**EHDW@HGzUG-i1918fasG7sV!uqBV*9EElHy}u_k(*SPKogmG<9{1vh4`V${YWXM z@BS&8xSO8$Pl_xgxR)%>mYbDh3bddcx^dz82{?a%#v!C|yCkhfYBBVu@1m)O45+f%CNBaz@KZ4UJ*jpvXPF(c0ZSQxbECI^XwSl zDPmyM@^5i(bq@Jj8+l8akDs%1l}amx(dm2_)MpPaMfgZWA^Lwj!K-71hX$l{OB1Q%m7w4m+DTZRD z1_1ECV4h!Iy}{4tSJLpfE}wl}RaI+ckI&xr6{%_G5~h`>^-2L$@v#pPxg8G~xX~>Z z(qE8BIQ6q7K3fJ2cc6>kn|wA8%%o6&L@WgN(rLAkOWI>M%%~amaY%AXQyI7`l(AVx z<+}V|xQ7TP>(Ttw|85NFTYesBdn<3RWT25Z>aByBo6A{t-FbE$QC2;7tA*YD_{v4* z<4={IH6XG`H0>&}-kIOO<~UMZ^!cwY1ys9g?>Y4vIq*@! zsPg_4WKL}!yB5v;iWk;|LUr6;77o{=>j#<7vbH0gQCw-az%l+q_``pQ$c>_F6#*8G z2Pwl0f+Q;W)!O62-;l%-!??5bLu-XX^5DV)-hvK$h^yl8_LZ~?X9{8OloGyptK0V- zrSw+)({uAH;Uty%0S4I40S@a9`Q7?hS!MskhKD4|SA&tv>{&zCsnz4O$H|;sgBkwE zK8--j6N)PCA)2P#(X&qd`CM)L;R;d)+swuL39T~#bDROEpq~V}qxL5&E*(BL@lc;;48U2{iH1QXZY$@2K#oU^wg*h`l4(I}8MSChKtL@djt zSG|V-z!CubVLy|->{>_C7K)rlECXVPia&L^K$l;kucx0+0_DDh1jbtN4y9z^kTRL9 zQ;0qzW!~^8o>H=Ou`$>`97=D^tldBu*SG$DFMan=Xs*fI(&2h!i$MR%4`4Fn1s7=(j(*-g0e_@qV60=Q`T__Y?<8mAun*syG2LQ$PfkBQAa)k_)cAW9sZZ zLG^+H2`xU7!nt$jCMb8EBw@q1)t0sZ{5G7t(B|1;ckSBeqkpepz5+;IMAw-0&|dPW zs$2KZA`Q+K{@Ty8FDzyF6VuG&;{adNIN1r81lf@H73%HYq=*v3NeHfi`)beHD$ zC+Yv)>-*mq3x{_!JEXRd4R<0RQJB@XQ1pE4Q0~J4H)JTTJfBo0wQxpma z#%(CDA3L>7&@p7FM`DcSPobi;2<1|Y`0ioD)=Pd9oV z*Q+-|VvNrX^c(Z2t-bS2n^i$A9|!M=OnOvxT0xrBFdby!K*YM-7Q>EVsa} zidbzu|C95o!tR|LtclN> zQ8@Zi;HEeM_QpeJV8i^o?G}j?|x-Z>9 z8}mQ;tWPE@{v#X|^uieCPY0NWUa18OPlsWhoaFAX%Aek*MgM?y(Ib$VahjA{Y?_P4 zg-K-PEU-hdK|RHHDS(>9-xxF#z1=8fm(BZ2O8R4`Q5`cEP7OPI>7&gLsqIAZkL_9q zaB0b3s;mh&W_f_-!k5|g6D*he-R(=_H=C#oPpqxOY@PG(+P}Ac(_gAD*h`la?J;L(FpVJ-1fueO!g-%NPZaeihWsT~&JykhCvW20H=6~9WA!q)$j zakhx1^bD1hv8T@|L!tJEhyx*ti%r5=XTA+f$oYj0xuSz$DW?nrcm+|gg^{pA$tRFC zaVK?G61?grYE(9bb5u*a($@$)%Gr)=Q`EB_Hm-KF#h&##T!{2Ja^5Mu&M%VhC&Az2 zy7U}j80f3Kb4f1mK|I|;TzVy-QGaMEaTk*+F_KMF|H6!oVn|2asl%OW$fGmMroJI! zBxGE%$g)T%2i$xB?`@kZewup4)fW0Pmzc0O{se^|oL)QYj4h2Y|^NEq; z^R|iJ6GpG3g#PQteJlV6f*+3VStdz8SmgF@Nv1sKmI`FAsBdzMIAGXv2Ns~4qr*U< zNg^Rxgfm|C1o;C z0FCVYE@cL6UK`gaFmH-%Rcu|E9*2Mk@a&G9vt?nzd z?gJ5e@MLl!xS;pz>3_%}7Z(~B6+17~c5)qpKH#=$x*LwG<4KAx)(@Ej`ueJP$cZJ4 z=vz%{qu;FDMp67!5d3ViRBoS&X6-$3oSn*0xtR2&7@F%=bwBB~@#SA)Y~O0<9!_7{ zNeO!^t}C3p=FnY?Zr{xA=5_<>5Md>AGyg^s&=d)U=d@%L9v9w1hGBq1t_}yAwc#oy z7>gVY2J&(|A4~vEmEq*JWdo@(BqcI_Rjf0G<6(e*g8(dEl9I(~D6#OYFE`i|>=vu@ z@=C|y2e&S=%rDw)sY0JC7w_6>OBwdLLv8OLm2;2Ra9cz4ZzN2}p5O8AtaOGmGCImL z#1}bX1PuxA%3EvPVrm6+t6xyCvvO=Fd1BmZ`}2q60)J8G45@AUF?@9_Nm6bBmS_ zw>~8;42#8x;_Z|&xQ8TlNN-i%l>j<5zcW=jTR%Ns$09`Y1Kh7;y@D3j%HK8lRhgd} zxsO4C7lHyxi`H;(-ceWFd2$BgDyKHgho zGkj_%X4wis{tCwT7d6pq?yh`1U!>ee`sLk(<{74;Nvd0dLr&mj^r3j&RxHDP$Equ( za;_%N%3q!@iYmADg4URbku;!|00`vT7_>ea%5Ng%3g?I@5eUefYh;q&p4(ZQDE%QE z^C4gi^8g@@fpn};e-LUQC%i4E4S6~N78k$tU9`^03vQI&fxXR;av_?O{`sBo%#*6Z zz}U9|_Z%IY4UQ#m^HneNRiFjG=MVdvkO?`(ASs~S1hmX zG^?$e(_j0s(1c%KMqPz{2X9d3OU3RVWt0=_G84K{B+$-z33vKnXw{iVK>ss$-d*Xt zd(6^<0_TGw_oE``V=T{OG?%;5e6ykk*OXPp0n*7~eOa;k*r0t1eibf?{_wF-(t-SvSLf^^xf5a>vg8A?7J+o-2*j>arZzr4i#67TUP&dsl2X+sm zYuh=Nmxli~JIu57M&^{fx>i!|vm9phF!rm4PRXm9b4HG3ONkcU#~WhsrST@BDq~q9TojWo zjm+dF7Kf30lhw{dV-%fCgK}vY^JSfVvQG+AOzk#ZUHD z+n;gv)BpkEQo@L(FIkm~TR+(go0ZL72{~Smf`9e3P0e>Ub=~a`ClX^6k&=|(bgp`K ze&6D?ts8A-i^bVr`^v2fryn_Q)k*{`~stPj~prm4@{B z_y3#$|9``hEbJTjCH6Op56Cy@%Wjcvv>j4e=A1O`D$DuQ?>wYACQlos#cn`(Lxd@R z4*Ic6pOxqQk9K!6@34D!8n@a3?*{vCP0s9^JotLE1X`;=83ETOZ^1^FD%<76ErGOE zey1u^TE@1uXNyc1@siuh3n3k7OV_@Y%B0GI1200QkexqJpMR7+}hE+XzD74r#-jJN)#}zr%eu_5R ztdDK6A$D2fJK+0=Yj@4KaZ<2yqV<;L-!plY?}3);X;dkoDww{}xXdm#ff@b>ut*M7 zKRg>QCKyac5|#x}O`M>f!T(5@!fzfMCqx9W<-f5#&&pF$IaP!N3c-Da0sPwl$8@vyEt7nIi}tw#jCuIWdZv?f6#>dYoF>*S@(oP#P4v+DCfO{yT(q!w;^ZV^%;*kb?1Mp%;ppxE6ll-*tE^=(@+u9!EQvf z_%7AMOi+eU^TmDoCjcqbJ%M_4oht7X1F>Qp$P@WvRWj*&OJ& za|_v`_g2UAY|iKT1AIPIx{Y}cQr*%GMQ>e9dakk^>Kwk^Ulb8`jPbl`2p?)SEhxWk ze(-O(5IfO9FL9dvs;s{crhZ4^vnv`8$d`=lS>%rYfi91b^`%cF--kvFvo}}{1V~5) zFt9Mr2AQmCZV6|o&VO~Px@-Icnjn!ytvY_F;+yiqvjy*`x6UVgub*ZgRL(#LIc?@c z04U=`b;;<=_h6#PR$&rezD}-u*2>;c1_`=O?9w8BM>8 zqp&f?(qp2qfo0v6?U&_Uhex3g5HRy_m8eDD$ZYwOLVY#yr?huTC8IbxbB_oLOEsL_ z1%AX1>027aVDNr971VzXWCGPS7;67hW>-IdK|I;Lwk+xu*@Aih(k;^UG{AE4j_u07 zk>)%t5r(?4bQXVqR1oKfmDu(FD5WWPG1ERPuSAxSWJc~)4EJKXih_b5z9mvcMjD{^ zzD+F?>8#kaYx9Gg@+`)3D)9Pl-KB8Og*C8JR{dLis7syLnllybcnnH&1$C^$myRjq zU-RYfYNcOk|1q|CEhe~D)vrXHt~ z=3p$rT}7cN0B$4-%QVEyjX*nD7bv-gqy^tFzsH$vREdGxS#{I=16#v+>MUfKC9{Zj z8Bss-U7Qn&6NVEFKj+XhL<|A8q1zl5w7)nLP61<%g$~OHH=UKTbEs_wKa<0siO1pd z5PT6|LfGLqbMy?zT*^@Dl3oiUu|f1};Pz}}_SCQ*rf7{1qn98pU8yg#pUMc0A0iC) zTg1Np4qQj>I22(k98%Jv{0+4E`|Px75rmDXjeCV69vz~M=!6NXfln}%psbaLOD&I;h(3|NTuv`(>g&o+GmFFM z_m{lL(G$>o!`$Jd^k6>>9Q^CcEAZKKOu4t0LMclyB_l`GKz*s2lrv)-W`LD(3W|#0 z3!{@T)C8h@t&s;AY1UiOG9+TI*R5FP4}Bz`s?;q1i_{?7omOP1Z~IhmezZ!I+Nyr~ zIqGt`v^^&NSNk{kX4(lRfJDp#CP&x6OA?9`Z`?@2!6dnR%Q=BPho&<=txK;$Z!Onn zy}S(K&VfvW+jHXECEvs@cdeb)4J!9ZU4fF_#|`Z*0%P>u_ilW?V9_hT**s5G67b6Z-5C)ETj*-W@>W z(A1=FT=D#ACM)l6;l=jY1PM*K@TSq5x6FaOaB1d-y#Vh6XjuJd^^u0ZYP%EjbY(KpVh|YW17H#RtstAJ-^|lZ+_3? z_kyWo>Rb+{oD#6UiRX;}`>ifu#p2Txz8VwA6Vnl85iGxBv6QtGgzP?$;+-@7oWqPP zsE6xQ#eV1GcJ!P9wy5f{{28po1DE|1k$2|Eqhat=rR5ZI;{tzTD52=`7fx44^;1j- zRrNWYFIB_c{`72Gkh~!Z?dpkM&47Sqf%E}fvn%`(Cvd5u(OyTn?NE3><2~7BkYkbn zm1IQ^yfM91{_d+^xiqpUl-7p2e$f@rlc>pOu-dA!<#0hj6KYvXfK@N!q?uCy5d9_t z8E63r#nurAS*vc>ED(u9u^?2?V&?P823%OTHrTzWDXn#K6m`XoZk?nw_HdaM=nW!o zu5?AwUJI(a@s}7anUS!IQ&4R;${R{RB;x5S$qE*FB>>2OC6~8AaVVLP#rOrSxeWQnJ??_IOa=;tBW z_&|L>xYTa1#el<$*hR+#A_Mxy7e(Ux&4P+)7wdKTba!uwKeDJb z9nSY>3X`HwPq1QVK}Z(8$Rqd*1M27S!mNCytEErnf1$C^5qO9A3b^&UDb(}{FY*-l z_RO;XFQ3+at?9gzI=o_KWrbz`$jGwvzY#U2l(CRs*DFhkVaAV0eNoD|Ifd`5PB~w8 zc`dqH$IBnv;$J;;YIN{Fc$ye}jwHz}cKOy}@+9|TYlr=vB<5R%Id7R2DBj{uyw6i@ z%Dl-W&vP_mvCC242BBqxAb$GXrGSUGl!d?TvQRU3Q&@+`{=%rxlE5k$GX{WaG8tm- z)nXL@p1OyNCi9B*u61U~Kt`yErnLdk2jqD74_Ws8Khk_Rr@YX852QJ<5h+*Vje`TW zt#MTlR2mY}FE~AL#!CQqQnuxHAJxuFLpBBi)xpnUaj_{^Q&e=>T>LV8k|bVd03 zH}d^5f)q~C{dJ>K94scO5>C8%V7f1enLsxBISh+lT$Y+pHf5{9aw}p5PJ2zYL4-_v z&DuqWC7ZZq1OySH>MpXE(*Y<)^#+k;oOwzX0zU8Aw0PoN+Ie$d*Sm1{oX*BlfSDlnu+< zZ{#BU1NZnxqqt_p?r-9{4tFh5arhgrJ(2=oqbXhsyC=#eKdr!Evtzh4XJCn1oAS+> z@W?tS`8h~$QJ_b%3VyV2k|#&;a;ze~;)vBPj?E0&aWm95+6UvC3W|CS4IYb#SZ;1a zu96p3+qtsx!e^=Qr>s;SQkn`aA%!-bc|%?vU#Ay#vU|Gv=+LBvt5jCCYs`oj3-6D% z*NKVPC1PP&?Pi9NNj9?%`AzR7a)G7U#;Vm41I{idX5UdN|4LwJw)74EBdF1S#AaVQ zF4+w{$;&x@F#P=>yn^b-hw9hz@b6~vb${h~f9)A>`-Z`1vEYdAaMw~_?tGo|fu!hk z18K3%Vx_H!?;jO7&lT*)at_-yj`vn?bTtLstTv8vn6b#6J$xI@LHp}Bqg=niU=#Lw zZdVmC)kZ0Fm{_;MhnV3MUW{QBQLY@yx$#R4)2FaFhg)`9UB{gTmZ^XOptJb_B;#Dtw zpj#4jKk22n&TjN&{D!YeAayZoj&+vfhn_J^5T2)MggM9)RTSbERc_S}ekWLq$iK_k zJNGWurTT-6DO~EEve)2Dl2Ye?+OQwr0*n(coo?c#WYE#K@iQ89Wq!s68MvIC4<5%S zGgq%=$MOgmV6};6lK-BDrqPUlF4MX@_h>Hg`H>fxEaj~?qhdQmF$1YO zFZSl_0(sz>tu5(aXbs}%%B}Cb-9E1)dmOXB<-3BhjqA&L`jd~;u5z10(MXM@99&fxCn9_G_jKCIP&bT)ZsIR(5D6mg*&82O4P%&os1dxR_otXEix9Swc#I#P9jcZ>x>ea&>9R% z*%=gxTE-DaZa8#Ndu&Qr8H8|Ad}gq5cGhq`lzGCsQa5C`Sa+o8H-CtD?Pnxs@(Cs* zmFLmj;8DdyJ(>Dq$Ku%%W^C&dIVY|;!;&%a9WT+tbsr6Q6;T8Zjn{}GaTH)O*u>sp7G@o0xs*#z zLs={ziIjiFwXC*ZimP9(90bfUeORu&O}W8kIiLw{Vfy4bT^1FGGbn~(f=%5Ysja^h zO>i&;r}ofUECw+)0P4tt&ojxwq)`KIdIAK&3$8vHH)VCAvIV%cmXUVTnVd{Xr9a;B z>UCq+tD@Sq2|Vl8Pi0!v^`F5MtqV`%LsNTY68$_1l1k49nON|a+w;KoW_%O$yK#nM zu1BbElgX?@uT|~$!-dZ2hRY%lwCV+_a+xwX&3UcRyWseDljAluw4eAmev#Fv)Z$+C ze7bRSzV5u(Vo~KL>p#c`h8nPR(c1mu*!_awbpO(6tjT4f)@7vLgTc{}WfPR}nI*lb z8P_mjUy2GgRAjb3HQ3*?7#XU2q}RSoi5uh4vJVK>8^oQe!1Hx+hr?;_sJ;vSTNj7= z{o_L=W^P9J5vvi>@|3)qi$u}BMRPjSfJ<#fc#X}RAp6ImLVJujN|bLAL{kW+HY!_I z0EVz(uQ@dXYejb*!gd7Ox54Hs=N}f`A-~SEiy~Jor|?jJ8QOdE)D8D=d3CtFtZuAK zd4W1e^pA+DW7;+n^{xLBq?2;7anrIRNPi!d$7{0QB`eW(t3`6?TgR(?_>nqnd?T&j zOOdvn+lGLS{?YvmPf_ZzO`3scCrWmWpE^|6?pJ?<#BWCJUCdb2;bQ3~(b>GV?$9W( zb#e!`(Ha$D7O3549y+Z$@bEy3o|<6Nu7nvIU4r(*Jx<6qdysxh ze)}(VA&JV!CQb23|? zt6xGL`~JUX(g!lm&NpBH`_y1y|NH&v(5499p6&bpU$RXRfju^*m%f>-1a)ZR+W3fj!&Bd-HlG^P(t7$5Af!(X#{mONJ`=c(;D&||O=acBj)wNt7IIBne z&^*-dn}mbhS)IN$=MYZp%f{JN>naFX;HRwCH!_X_I zxXx9KyU((BKg08Tna0b$d$BmquqtcR=jPRIqf}Ty)#F>4m@Ns#yz*8G62kTRR*I{g z)j!eCdf`Z~dSSHl5 zzAn`6>+^Vl94F$*%SKmJ*4k<0kglg)$R|3T^~)IX`6~nrt8@doaW_v91oj`yV>s4L z*nJGsy*~+19Gdp?GLKW}#CxfOCh94he@_i)FEYk1( zV;KJjTmKjw2?KSFqDdyUG2z7a1QS~mPdu@0+qP}nPA0Z(+jjTq=RNnqWL2yqOMA-nv|?qnz$dlFdz0 zPaj<7r`7Y=#-;A=Zl>u;a`!YwYPMQTxBND=z-LLId`qC~vG`3B!*)53h{H}Kqdm7K zhEq8orTwm%Ca}F~8(-}GF`~X;_$;HQ9eH5?Uy!j?N*c?&IGbfXc)~s&HiVxWwQv?v zsK^oX(8%aT!r*LxS25U#2oVW|E;2m9kRv5@R7P5fzKqbswdw z+syTiSks=lP~b%>FHT^B(Ui*}UhIBV9CIX*UIP4|pjle$X~(c_(#z11lLrO6=ca|D z%;n?EDUX6hn*wM2JiiJnbK(l0ccIUIo6V!233-(h*Kf-(YT}6M@4PBJPSyIgx8d5;a}Y6Vfk(D{3f^pN9472?+^Z-Q7E&h))=pP~Fdc9ADszFR&o_M`9C3|z~>&y z(e}r*YtO@f67Bp@qW3d--}nELkhNN@;xoPP563`%@$T-fS7(CQ>6MCw3uoUyRCXZi7?Z(%{1==Q$uzjyW0`_b8(NYx+f`*}c>>*X*I zf@ItMloA>`5{^Oj=<%gnjwA!3#jzH5cX!j-Od%j34)sZDnSu9A!22r@0rX$ya;@*z zMXHX6l#V+HnmGjodgrJ9Hvo4C)blndeEv&n&U61XvPr!u?ocz3);jjRT$a@zXFAf>idT8*{#ivRrF2B8is4Loqd%|3ejrMWLKpj z%bh>=ET1|T58rr9`CqokV10YzTd00m>5wQdWu`vffE0V>fu@|L_r_h%687y&0+a~z=Wg0~E@Mhro?nJ5a5|l*v;(KXaisA0) zbqvY8U*^b)i1I9PCa44Oh^-Jda){{W?$}`vWaF`38@&5u; z71r?mJ61lOYhNu~UXyHIXx+ye-7-z@WOD8k3sQL-b?+s8=Gfk#W)@F)7dSkORy{%7 z$c)cA!%3?Rcdz}>QZ;MUcqz=ptcR2GY>nsyfVe4rE1= zk~8s5eUhBt>C>GTN*ka2O*6N*)jF1Ve7h~L7djgWv)FX(JQhD%r&Y^asq^LdELJs2*EU`L zB8%=abLujy>kp5EWMM4h@(m3xV&YBp5t)SLFe66{MRPPovm7PIOb$~fY|qlebYF*B z;kXVWjR#-B>XoSbe`1ei`wKyGIv(;DDY>h(nK|J`>Jeyg_aB?3UhW0s+~ zS_f56&pXJ?2hwy?$z`oJnJ>8Zer$Q#?it4N9UmX7{`oW5aH+PuxVNYOCV-UVbwBn$ zMD|i{?h=MP@7~c-@sfrAXD+>Oxq+b}AwW{#wGZXG8xLffc_j87&~9#O@(TZQiKS&? z>aESWytw#4kM()GKl=F95g9p=>gJ>&A|fIYL!i;?^W_~~llygPy1l*qJ^DBjv6R9Z zbY*lL5F{dh*-jt^+=lv^i1GnHAAFBz5eGigcfPV*uGXKRW*!se`P*Lx6fvD|cDmdj zjy>O|Id{AseBYsSPS{vk4{zF2`BOv3Ly+*Nv$zYD1phDdb#euaZ~^(9WD$4h zaMF5x*aqmFirtH;T1O`R@Z6UXr`3())EFKesXM#1us;4I4i zCk_jT664ELzH6=Hr92~#3LhfJ>_uzg2EXH2~#*AP}1QtG?om%1wTMI_oCGwJ@96sM4jDX#o zZclG7Z$4f=ZS5_Hz<@$SgPAP8+>{&*MU91}1p#h0+ZIL43A(aaLBjx88X6NiAtHIzYzWJZ|at(4ivEo(O&S&e)|mY>n+2dFW5LsdVO;q6isT^d_XGjC9e zjUeNoV`S`D$kF+wtH!#b%$~h=J5IY$ehv>*wWK?l!JEnNLu-7fzCXJc1ZcD5V@d5K zWpcXY*}(Rw;J$S$yxG&7d8K{%hQ;_Xk!?7hWq0=1AVS;lKC9rthd3Fi;|8ew;jZ=N zK+xrw^ECQat#z$@{U+~@$$J3W=q*zMC6*ERxoe@YyfBL&c$IM6O5A6XpKpVvZ!@p- zIkgJW*9|Z>P>P*$CNI0=N_#cg)AI17Y4N2iaVIN?=*@8Fn&ecSr#KPQHbTR5ST=SO zW@5ux(C!1ExnaSBQ1|wKnD~GR<4*M(<#n-2lK1OalgFv6_FtxUmD~#Iz)~+8kt4SsOlwn`7FadDZafwkuMQnX!mwK>3B@1Nx1H=1b8DFgO`hEUT6uc=ZqcC~ z@jPStx(Q6c93h=tt$Q+J~z7%_?8`@vHFalw*vA}(>wEu6A#s5#-t}E}_`YoPZLxY`b~Pf9Vi-bEQ++*`@00S$lrxUbXO2TCF3$$SqLy_L|$U<)ifd z*6wLL6u*$j1|-bqJB}|YTWa?f3p(M#L2>g(EDUKh=2iq+kj%> z@#LB`(n*qNFU%10`&`AcOT>3e+Q^kNyqhY{&PBa?eXEmkfxMcikd##3xs8~K6MN$YAZi`%i;GHQ?a%XUtWt$-A5)yM%p;R z*u6R5yFR@qpOQ7z5 zcZ)<5k}4_J#99!HM$g{BJUf018JS%Ok}=qkCwcv>`%37SV3s7$H#>+=4m643Y;*u; zBf~N6P`>9;MPB6+Z16L%pU3f~y0=|3hQhC|^2*ZOn3?ol?n~*KgMWM z_0pG+aM+mWmymtP&vJ_ljh&61JJSIPN9u}Y(i>|pZ}`wZ^jO$ z*|)V=7c`G7^9V<2;L=SSU>X1wsBswn`q9fVBWGbVQo!gj|NA`zgey&O$@l_;hqq)7 z{GHCFFC`KgSVy_awT<}364DyR$a#v$f;a<@(`!A?@=K4%f|$?}m-%EVmVoX&lFRyU zkH$lREr8APK1V&hQ?zWUUHMc0|RkVcKEEB(4zm`5`SRg?1X3VZZ2W6BZt z-YPXVD&8f@Yv|r=KPv{?4&E9ya0WJk+Zn;WNvKdhP9Nh!IYW;hfX1o${{6>AJ*RJT6ktR>hCOc8>4Nt+@ zriM)vEsND8XU&vN))@O7a=?dscy^Y0Ni}0RleMc${`MleaAKL$IsC!<+2}wt z%g4<$oQ8LRI<_`7cX>kYte^oOxq^pPE7T&?8iU-hSOd`k=Z#pf5sdqs8F8Q?F0d@F z76NsTI3UMgdlvypDgqrLeJhWe4&s+&lG~6S!M7i>iZS*Ei>Ig5^<~INl+Z3-Z#gXc zVbiMn2tjpAQkP;+_KPousd#DJhyp$txxgygkv z5(D_iuOO<|NZpM53=5zn&T5OH9uanrgvgLFS{S3fPBp;ai zK4sbwdyHhF3i`#ds_fC`TEi9_R2iL9SKiAxKQ?a54Eukt68fQf43J<3@2Q7~^;qUiMk7u!i*k@^#v0)sVhuY$jvNr&=(*z`G9U^FJz)PMg+_tFm0O2( z7&WlO|6X~HJ6V0kr#;`yR{itR>>jm3l)PgssM}gU67T_f!0t1EniGO z$zgdU^CNaGjZQT5u zNXfaDN4e2J_sug?WhOMar@Q{Jaf;$1_99_|=ljP93`3e7oP*lp%FSD93J5xSJnuKw zc@A!8c7!`kJaBu8-&Okr-rn9Ek0;xwt*lt0MDXq@)HJoo_4UrMW&H zpeo;Y>kplNfdIgNm}imMVYkOB_{ek9^YSkd-x!uazGYWWfTHm@ddI8R28ZYp9f%lhen2xd zzBP{0lGOEG<6b=JzS_+AUwFtjW5aZD)(PhHEiSu;bxbYFet|ba#dd8igbr8QPLw~- zSyjZ6=J;~v#PZgyM3sa)ii^FB)!Ib5H_m?uol0nb_43zLXfOR-w}mox)0O1|BMcY)20cF2`+$ zI572ZUB)>{@4WE1srj3(&uYh6`0%VJl7Fw+Lucc(scLa-C#{}-`hJhY5TC^xMD}K( zG`|*AuQI+@Dy5T)ahjIc>1M=i@cFK1MSzcTtG&I*C7rAUzb#+oDc$xjMc4H?t>5y? zB2}6BRAzbuaGMeF*gSRWG?~G}42ahLv*QjNqxz5{>tMzbLb9l)ByfsBD1z;JaRx&Q z#F!Yz^pb^YxM1d(K(elBjgd5uVg|#RTX0>G*9qf`9LBZhi0fGxSyL~b2U3_O`@(AX z!~rDLjl4i`F4+UFvpNi9d{DWHzA0GWJh==8`@di{tCYF=_?#S~z{lkk$j# z1cLf03H?p^3diY?z|BnqH|At7at8x?iN?{9@Dgr#JHK7YC^ABVI>)B$U}S7<^dQ(o z?r$eS1-Mi{?DI(?`-@T2p$A{d2^86Rq1|8vmwyTCv)M;0V}?#fNkS`HhH0V`{Sd1Y z=ERE#Z3-*l!b8!d|EFB`K_4T+Go~)(kpOmp%X0oN#5zW(()*vm4d=$kWXrac)=be7 zyUp2mktJ>m?1}jwi*?P0v&$?-H@NkjD62_RDQwA!8_GQ1FQ?l(3aNpByWmdpukI&zzbb&LyO|F{?4CxnEiYL66?A1s(x9k2#`mE~9ThZY0Y^AF%y&;Qomg3Gun`o0T*=3(Wiex2=o?-Vsc&pTc`A?f$-sppcQh7#S`W_ab-%xF4D=Ouvyy{wR=SgV-nr5-y^XOT#Q~ z@l3OchW)?FGRwgBuiBs z@!6oaCR2ZcL@J@kHn1r=1~1e%=sY>0m$B3q<rJnezCKR`R?eK% zmdN1%?Nv6kpCSo|AZTOz8vd=^zYYb~Hm&%7O<$m=9rgQMhpm3Q#K`d+$PxI>Y!xMY z-%c`wV=Ys!|8!$3J}SBOJzU)Ptg1Crlyd6Wj+tdqGsjRaAzdoEO3?8X!gr85cC=!q z8AO7>z60f~LvGPI+njLhd?+F6`RhFV^x>;dDnvyB^k0Jg$5{vA`1|B=&aqJC*zYLx z+3`GWQ1>@;)oE`Z*B)`qQBXi!VcbGLCKWT;Ey_K2KDFj6iXaKc03+rQH%X-ZY#*x2 zc*wV?60`L_*`~g0C24OfR%7j#o?g5bUYoz1tqh~p)3$QKwOZv~`o^cW&O*J*V>qf% z9_J8$n*ojN4Qm;B+~=rj)@c&XX%f->VmB`n7H^vs&ApWoK2;_=mcy^beC?JJP9Ihb zG@|k>xYfnOQG;!8_{0sdv1=m?&u}m-QuEl~`vhE42F7S!L$UXWQ$(=^s?)O>vyQ>+5p9 zjU7dP)=dtUIn#842904tY&shXzvvyH|wJ+y{AJthI&8!&-f!QNeGeMOec7h*0a4u--m;jL98<|pJRS@la?A)%B2YLD=u zc&RX?(jbXB>X3mUVGfB_FaFPqBs-~sH&RkVx!+OxXtKf!1V~(d4?%%cSG;w1N!g|Z zypebGeU2cbHT^$F_L+Izcs2u8LaM(KHpp({~(j+z}6f{}-a1jWMi0)Iv zAq9dWZkGzT7-1->m|=~KpwTZ$TofbEAbwhUSc7=nZ_KdFs?_7)*o$sE?BqnYx!nMiaThIZOWCkM`*B`9;`>jVlw*M2_+M$o9sPi?mlJivZ4<| ztb0Rg;|rA0+L^yk;XanTg2~^*dlQazlB=2iRA76&5fO#O;(l?k2s8cjWaY6HWliF$ zKLZkc1boges)!^;nF~6|`6<8}S)NpaX;4`oQO1q{B$M9WA0zn%v`Y)i)PV;w(=%nv zaqkgp(u=dJAK*g&%t7a;V<##Nsrttyo|1V<)%2+ztDKnKM+P}2ao*>LkzLYBLfgS=>J zW1~9kyl8~tY;I*}o#Y%w$vkXRIF-0K8`oUeU0Tzkqf#+GJ^lN4n1I)-g4N}8SlDUa zZZkM*u)JWNyr3UFIW@c2)$%H#L~QoxIQu^GGs zli+0ogFQ@{Fn~boHrAnTc@Rq}Tn1`{s2F^(8_Zx|ez_QU35r)(v}w%eFv# zW=H32^&Xc;Hy4RRw5{{ete3!P{@&xog-W@vp_55nW4u}$Y7f`U;SWLQN%ODzsE(w7 zl&pyB@enkT)^6LRjHZQt8jR&1(uc2-d!ytBV6(`xcZ!QRMueD#IF64Blf(^wMJ595 z?Bn~Dz(|CI_sAgihQjEGFtANwcx<2p3)N+2MBDXAL{{7jR@-Z3?JmL-_GYeZfSSVL3!e@PgRC znQNMrndOk(t3ihM%n60vq9Bdo1^6nklx4l?_UB@fB?wgE{-&f)7Hq?%hQNv@{ijev ziZa+dD%X(6wZI>d+!{-z_Hx5`j>x}pnYmhb|7Ys_wWE2hnn&6bMGcASr)&xCop?_ky_^bxp?FG6xDc$YxV^k_uA*1+*Br-Sgj4$ zi;{Z9WgTtJY?%e#b^1TEoX}~=S~@Xr?XE3(7GdBi5@?utuQ`=`UyT|N&<)D`Z$XUC zuz!USZUd#aW;RWI$!__4T!C2F_Ty!c0br-01dx3V8l=vw)_iqAmmiYrwu6`pTVRz& zBmdiBBAe-S+SD=L*{A@z>;kdR>)w;AUB-JX@D)WLwPcOse?}~#&qm{klrzqQ?@eZN zr22Zbj#d8)wGwR7W^3|cfr3quNZd)63$~P&zgq?yuH(3#Ht=V~DT1M>0aT7!-y1De-xql~~0VPhIa%u3AJkR~zp3nd|#+4b^oQE+W9$UG{jEau-I z3OeL`tTx|%Z@urB8|5VXGim}mE57}8Vs(wS$`Nl7#Bgh!_VsCwm8j0u3fwH_Hj2^D zmN^hleSfNXS5UK#(<<)o{(G#5{Ym$7?=DKz`_EtDA?GmXw};ac9RjI`yUDs1nqw(zw2{ zBG0JX$>QaBx!jgWHGOofc5wj%9U9yy&q9xknyY6YXM*n^-^Ba_4_OxF-#yn9sUtc( zJRzhVG^sxzIf4Q#Jf7oEkb+B=(=It>m!uNAm`KpMkPbC9zg&8*0xyYs!Y*7E6?4v@ zyI`JxeSj-!mv$RFK^M}&CD#Q>5Jq%Vrr&9mFpEJr!F1H4ni+H(b2jY11JW?kriBop z&cON&^U%OP7Rgs>QE2!6JjT2{cDEnY(r(&+mxHMK>6Axs`q208 z$#K7zN(DglyFtJ!vCD|~%nxTkn^^~PpLtnM{z#U0dgf^eI_Z|@yUKiQ1FlgWuE_^s zccJG1-JN21IjHvS&T@(>1_N65GwPu+wmGG^aZ^y4yp-B%q?Y&nOklE{1QGgvDGZaI zfHiH&?WWaf3i(8QVlHzY+K9%}3kf0`!V*C2wa>cZXQdT=z+7EvA7DLshZ|dOG@N7E zgHA}ax(E}#^BKmrAmFH`TD_t~=+$8Pp&RzpJ zR2HgKi?-u8{7P)@9dlmGW>P6s3CrfBJW3??wMs$b7>CWKTOvnWZQequysn5chzYgvR%TiX1woWN{+oBO zFXVsqah!Eztsu1_SuAgZ`2uCP4%6pkTDhF|A3?!?NS9kqP8-&(#>U37rPk=5jv8C! zuT(rdA0@{<+)qO|x_?j9|Nor0nC%UWU?;c@g@X*Zd^Y=>q7vSkMK+Wz)dsP9h?QUW zLjqPvBl%ZV_njph$vS_^3M9-k$Ilw^YjT1(4rjKvMwddRQde^ip?~#jW1r-2_2Pf&ILAMr}b>AqlTBopC|}u zZvzU{dQb_NkzSG}u+Mp?<%6Vx4!9wg(x@)|q$k95->eZ04b5O=F)$(hisPqX2C2gC zY#Pfwni#Fs+byZN^A09BFUW|Og10N5bG6a9Bp6)h#(%C3;U~Z*OEa zW>Y)6YY!E2IqG{E4QJyx=XE%i6*-rexVJYqs5M9eTVkRk^jPE zU7K5V{dnEBhQq4sd17<8a#FJM>6Jmbv(D-7RFuJcqC}!xe#i;+7)^wwK__6vDL?LE zWWj=d*Fj#<(>!04U`r?=!bw7)LQ3tHN#?@}{!kAN!89^Y!9Xw`&$prp>7)7nZBz{& zCdy6>R%{;iO*UTxh7hyqn<_QTkb&F;4HeY^xoOtr>~AM*clS90N*x49Q4*Ltl~0U} zIAK@21ndZ~QALT#DU5DQ+>`=t!8>xn;h#Zi2FL775OP^?a{02bG;i;>@PU zC3E@IA<#)%;?Xhwa*5h%0$w^x_9SA&@5K)0hwUrE)BJmxuW7#Lh5qTjsz%-D8Bc)s z%i_7W?fUWN&}N=#_Ti(Z(&Wq}=WiARcA$0_!uBlD|fXQch^LcP(+-+EP8w;T}b zEZ+z40*r#8H|(daPQ34aG3iM(inUlR$xq!7jku3E=D!Clym5lZ3#sAb&H9?#C-tL(d>@bz}WKX9f${ zV@3~N0M97IL++297C>YjKqvA)&7!22j>9pDiQa#&a#}#uS>;79wThOmgp;j#lC64? zvbdGCfgiKj&|pcL4WPiQ8k;(Ra~_ar_6D7AT#}qdFf&QvI|m+kIFDQ}8E#@~&!nn} zN6U!imXWVUPZ7Ch+nhX?HZsSzH`O24T6lN9PGYea&pSe4tlG5A(k1O=6}vtKMEx1# z1U836nZrNh$Jqxi zNAJ5j=c6pw=>BOu3qMcmwP@|F*naV+v`J^2tED7sVzI3ha_=bqYhJbN#JPmx)FO-c zbg(Ri?P@2?q@EHQ*Qt&e2w{oZDtOB^oQNyKV>bNTpD2v;?tLJUO29H!W3%l#$7GEu z^Qh4htLA&KM6p+nrc0~1y{+}_O$H~g)#j&@W^XY(flHEzx!SrKI;2gWxsvuy?G2q!9i~3=|?7rS;*k~ zYB0LL7*z^>q2wdG^hbXG#1F7{QHfY2(dmOD3hiS0x%}X4QIBzq2v7}B(diLTxq?QC zLxfUsWy8<(T6v!%^W0&kG-$Bf^@I-N#q7)&APUwn9p>~kSXv{8&F#$LFtAH;qx1;5 zSbsXC+!Bz**`uC``Y~d@KO~S+Ba_kK#~k$Q;~E8iqxrXsTW6S-TqlQKc;L1JTT+3~ z>(gWW6(12x%9{Jg|5oPu33R96JIuZ>b6r2+$CHOK;-{MNF|?kRh=;0lO$s8YisIJp zzOni$ClJYKAd}xxR^=(OO}Apv-xATYgNWI1M;PW-Xu>ufc$LBzVDEEAsb`>6SU4{; ztHV@{HC2hqqPZ5xS?GSTl6efz*kzjNZaMVrVEo#ui&|MZ>Z)tmHFw`e&&?XrX^*X$ z*6pIbxm(hZui^giFdLp{ShGBch&^1wUUt3U5$_1OEX4R{5nL1q11YgUpGO^l`sj@ODxQPq)?M{n6|_C+~BQfr1hXL+o`6!nuzLU4X+) z_Y2_CRG{3v8IlqC5QsVr8qL_~k~yOOy4 zvff$!><7WRnNhx=P}7uj_$>-I6wppMu?%!r02^Asq)NfH3feS5JrCq{%sa&(b)YE_ zfs#=Y&Xf||!#pB^3w6#SI5UnqS{`5crjfZGIZfC;E$J%&@cY)ppHsr>b9KV_~lm2UkLPnY9}$eJOV^K3o@-vM+?b2M#l zm-$k0wxrj#kdY{E?%rIlX!tH;U0vM5kzC!px}2qN&1F5N!DDwi)shyPx%^cj#Zmdg zPE}?1vH=W7#n01y_iwXRk4{gWkiES2t!;$}pbS}C>HE8t&*?;ZzAa^Nk1zXSqPCE( z=(t)n(rpSTM-65i;;`@jDU)N^YQz5a^sX^|tpdKeZ}k`JFN^whu~1^8YtcrtYqU{I zs4uudKXR&1vgKedB1m8zE|k5r1E9T~EmwF5{0}|rt}qUn!~G9DNnvaf+7Jr$utr3P z5%uwDRF3bBY+TdmkfHFowCHyNVGss($mj$hncXf|MrMF-$!KnRpf4y^&`=%5h$Ur6 zu@v=|O@*K!Q!<5;L`=|+ZMwiNWSDwbsDXM8F}H%|73Qy>Z_oYbo+w*!Ej&z9Ah|sl zb%==q0X7_5QoGmz`9E+WW*3N-rwy5lPRrmxo>TfAiqEMM=$hx#&p^8CydPwv7> zc}bvuFt1IbS}Eea&h8ncx`R}5eIU+A@4!Zlr4=@S9NECL3GnmA&bw|PS3~mFSnXkHro1&W z{%2mTE9|UZq957tBKYJc9C`4UDSO_4TXD;^t^g!^8hPG-o)XiJ4=yPy$f>6A?wo*; zTZ+lC=;okXl(22;rfIv~7@kJ=x#V za=OW6eSRCsI3p(dj}=5C1^alsUrrD9CHiO@G6-ekL*HSX!u%wozh>%r-T!%`A@DHC z*4NkP`Esq@I~n@Uv>4>96rw!M(y|iVpl;iEqy-;sDA!@8jnr_u?Q9=ySe}Q>V)M}LH+1gPb-mN#@dvtW)ZHj+kyK?r5t`tu#Vv;1#^sgX>Coy{bm zrs$j&3q|ft&8tS`kAB%v{n-i37)3A%tp3yxe%ZY7g(8-k^$wTf zLVaun#C!F;60W#(2Y?XIlb=|;4*U8i6lNq^ltR$$esJ~|!W%z<(40$v9avUgFsU`} zPji2=?!4Z)Z6#*KmR_Kh-pBUJML$4+h`E;6E=P`|meS6j(oR49rfdJFO?#!b<0oIT z5CVGy)KUYKGx)>B*U9p$`=1Z@KX2}4UwrIg9qFYhGqrIuOlp%%%JkGon(F8-u@+yp zv>abL7+-o%%MunXeA?Xy6k9c%6}?`i$Gf3V_PHE6pZ#_oVvhY4B|%Hkca``G)#kr% zEuf5IK{03oUxl$XsjqONsZRQ}Z8edV+GB>-mAi&CM)40YGH7FI5$E6R37vq`%M8zp5 zLVHD9=;6vbW(4;aLAE_WbM?M0Ul1>_+Fo{QpO$8mKt(nzkWUrjA+h5>+e<{j!J8wWT#!N1a zSOg1ZCe6h`fmvk!-JUgR2|R={d>Tzc<>Zk2Yd1b1<~A|III|IS7W0|}eiE-7ZuL^$ z2-S80AEv!mIbG|0uM-=(Oflb>La@7f@=v?N_T>$vQ>>M%V;CORRE~Q)>GfizTUyzj ze8)mWC@xT_2cBsHUucgyWjJomnVnULgsuKDcg(+J>^6lldG628u~_?H+c`T zS`ADY=n;$6gJ>0{ASyilW5KK<7KmNHe)9;_UooV6>H+8?aAFca4ijRjqT}sL-NaX^6wv2Yt15_@W04d zGX@eYkKk192QA+4yq$bL^uJcqRX?p@a@K;W*rSLlF4wEsuR&=}w400wJY)#6S~Bm? z6)>@95{dX!j+)is>wT;ABBLx@5nCCq1++U6)b5_jedl}>Fpimvgd*97COl$-MhPPk z9Q>!(-u3Fw^9D>)Zwb$2pbK3N&HdtUKscjbQ$dIqm2a}vZ`t+qR(qoc*4SjT>Y6% z7rhD$=)2K)7WB9^1fGjaI7^Bc3hEdd%IG@ETpjbxwR~23=C>1<2Fj-r&#IRvkuU#T zt=8<@dERG?Ja)SzrsIup^8~y2gAXXNivk4X{spH0 zxDOTA`o|USpfihW&kHuY2f{%(NuI_C>Kv0kA(3PBYUW~=>cPsEi-zwq+PWyeda6T=gKd%$~+@X4|x%q9l!E=g*5S${Qe%?bN zH9#TxKb%7xpMT@6gy8+@pObvwjwR$cq3E6h)1FGRIey4!9KoF&!41-qbfDsRhgIsh z6{JZt?CKX?B35AKYAEXX{YJtr8RbZ>U*#VPd^W`ITI@5ytz z;=}5DNCq&TbeS5zci_A;mEC^G`rmw+b`x{A9G|T&)mFU#m=|r6N!gvYmI*gda-$|_ zM=LF?&QI}iIX9%xArkT>HGd}ym!<`fx`j;oGVaNXA|U@G1rkRYWC!!OZkw9%e_CP% zn-NFsnVr(38SA@IT?c@h!j(dUGZ(ov;L34@N2Q^gPz4!Wh9w6=jzK`q+-50Y`u_MM z!}~oi?gT~3;SjM;pbT|jfRu_jqT$=T9J&j7>$gpzJ+6*rv`-QHxP7ia`&pvgPRfc- z%D(VNg9Tui+kp`-5OP(w@CDwmNrpqP@?hVxfwa7?asTAv{7RTsTLizui$G6u^o!5q z8d1^ojEt{5v6WZUq!|`hwqSL2wYOxXJXaE&#_9o_+E>8-Ms@#*4)4G zkB9fl@(hulQ^3cQz4H7I_ydOw6^6u+A6~ej)SS^K_R^>S4_WURTnE^$jYe&3HfY#b zO=H`(ZQHhO+gWLB+qP}nXLY~lJLlVb&tzu($&VzH`?+xm4^~Z@TsW1Dk&HTqF_Yn; z7X%G54I{!1YK%e`4+I`NopTZ=mOdM{xy#H25+D*8IA72DQ*2{BjEfxllBHx!g zMvfWI5lcU-lauVt4c;) z0QV4AZ#rPH8DSYjs~5op`huqEk3sI53oF1KItCnM_BdA-(!D!Qgl84uTT^&BC7fQE z9*Ahb2E?djFE~G_hl=g2`X{nVSEkMb0cAvonq2yTK#ykf(EJ`%=r`b%&!enW*>i9Q zeVCC(!pD|iLc;s|I~D%oj;-h8iiwJos*TOn2_x%2hAt!=B4XF- zOt;;8`E$;iO_!Ig?KM806_BvIjnn$H=~3eIUS3{q^K&O(G`@WmVbd0m!`bq6qs7nO z$q9Y3njVU!oVeE}`x`8VrWMZU*jTlvYQ(_pB*&HJg5DB9%OeOJ=I-LE*iX77xiM>%_o2{^ zOS`A@Gxrl4L!OZyTNazQDZ!y34`)|%!L+4tx8x~pz$dRlfYYfbn?0yR`m!v^!_?>! zThZD)56#+q2VURIe_fVB)(joM9+V-g1hZt`BGF*kcume(%})n&bziF3oHDkdWd9_e zCK5JYCwQq=o~nVtSj}mwEi~OOKA_pKu7Juav)9JE*TK7YkauH0^W16<78KxN>d(bQ z=)h#}64h0)x>Phf)Udu(rFp1^%&CL7uSV!V0h_Azb2}g2wgOsH_2=^&?m+x}Lv?nz zsyjI|{b3PmFXd|PT& z@VOVQ9;I!`0$c#hH-OmnloYkzJE5=ws{nGZq{y#I6eM1ZD)iwY;bz8uFiwg=r?8)V zEyF)!dm?LzeIP=691jV;U3>!Tc zYTjPGIS?5DUXol;{ag==EGLaNaS|*D6m{_K&k5c_y7`0VUGdN8|E6{q(zLfrZ%BxY z%C*A=OD_v?1fJ3 zKFG~9d9Ta9o$wr|G6+*S)W50}0X}_d2{*&(_d*quwCZWKrbf5-Q`QDzjZ#Wr#KN2(J#3RLWYkK!St7M>$~HAV^1$XVabi=b-3v(TT@j6?Q?QZVs>Y5HIBQ2fnjW!89&N=LuZ1Hd%-n%S> z1P253cx`ckP{vyc4*?|N&-U^?9rW30Al(37t9f7*cr3j4a5Q+h`ue=8?s!ZG>SI5( z4Gj%77gV~QcOy_yQRmoduLDk=Z}#ROrPtTj3EIO&`!_c?PgvgmiMJM!Vq!&hKz0{LSxWPS#nX>cJ*4jh(4c8<%hxIZ?+H88ynk;jM~i~ zY;4+lg26xI9PGr4u*aHdLNN~>9@s4m`bR7cdhlEqQqoa_Nw!3?*opz~xzz5c4*vJk zlFh5q$M=}v28Yw7*5f|SdO`p?AAmB*A`FZxnL?9N&;!3gKU(;=2+n>!tbG}beHDWJ z5~SNP`p*S>MI{E8tZ^yK<9x(SElk!D=|f7zs&y$k7t~KNDhHLZbtp3J1rr!-AefMCA7MYw6@M^<3)_a3h3-z)TY_emn%ry zo7;Qpdt4>ru3h6=1-2Ck_GO6K8DM829tj-6V#m1UY=hIgY@s;$`ufkUu-x7 z>{u8EY?@eXKe_UcD(S;_Gcmuz98oJ9TV`5b)s|Td)`q`D=P>mTn)NzkRIR2y@X4Oy z_?6K;7jd4YJl5MBCUB=kEE#gPQ(ojHnS9v@o%T^pao3U>)TkWhFZ}pwV$doLQ8o@u z`n(>k4^b)PYJWe^KQO_pmh`YxT2;{g;qx%zPPqL}b-T{O53`9t<4IR(s^(}m%{{Rg z*t+M2cT_GsZ)Lm}>($KF|vjDkQ2?q}oW4K}0|WU=QQ zvEzrSGF1ST3eYms9hfq)oN)wt#dxtjyK=s=sHc)~pRHnI^q=9=Ib>0wI*@Pvr0# zcQ^(1*v#2B>$aOn3YM#7Kcg)E7P_p$xLb`d^@ZHFF=v^pwiN7E!3WV<4S$WjuFE_r z1)4ApoV}jDR)K_5WJQJ^hkJX;w#VJ+RKwEBr^LMK&w#4lyM=uMXFCpn!H>N^)}IQc z9pQLuR~^O>pKd!rn8jaFPa7^<3#}8HNq;28#YcI#wt;pjzq15BmV7=i$FzynoxdUc zS4tA_KG^JdGRx)hn3$5HQMFjX_56eg1UfJT=vv=cDNHA#_)TIFU{$(X(9( zy}8TsE-l^Q;Nz&3S3csx^kVtv#B_4JpOjlihP_mVJ$u2edJ_iY1%(;AoRv6>v>`V2 zkEq8$^E1Hg%ycIA%8K&U98)KmQ%{&uhWtZFlGV{^Nc~1~^lyD2Ll^~YzqF72E?9K` zl_;J^!7wy+Q0Qios2{V7UxXG6F27*dNdbwP@bDp)5tba`;@cn2LN@Hb!ze-iv3_WM zNWS*5-F&}8CHy!iZy|<2_p$h3uWDx!gNiSx`&lQ=j|M}UrMdFh{a?>W97YRFLm3jaRJ=P07mr6Z9 zm0%F7))k2FD&g)cq3%ne9IN6d00~oN32pNfnnC4C%?sq~_x4YeEo}%%AGR)H|GfvLZxlU=nyy9(qMG{0&LD1hMh(Y`WNHVCqXT0N&`NhWwjt4+6{?q9h zavWkhs2g1zLItVKUd*Li5weT&`so@`x3ji_XuxSijpU<2Xe6xGm*P{zFq4)(3ZZ)~ zD4(@Ifmd3Soi_20l%!;yJwh&hyYU~Z(;@6gR3jy?qr^dlw1zer6=7V(;B$)mmE9M+fuK!uA~<)no_xl((4O=fU>63jeK+?EWVcy-4YiVawE*y-w^=C;60{ znD?jAON$En(I(ua8w>T*-gU2$+%N65QE(Rv0mS)A9?doifb&sWF)G`I8hXcp)SlFb z;1mfL-``$-kx&QUd|8skZ_goQq8LJ*aftzWw)K+X-?@QIlejPB)?jvzxZS>!YRg<& zRzAD!)?xg_J<`O#))B%=3dNHBXtMo&u*M2o)C9&Jc~71naQWSIh7d!mpp2;FCDU%<6wMELW-)9sByj$~(D=s@9SQ zCxmF?UV^VPiyw}#n<^wjEJ#t{8tE<@tF>_^sQ^wkzp7s%#)G;p1N4cGc;TE>cld)e*dSt0Uu^ z4h*-fo8qpJB?lUh1n#s-_Xd7t19hZ8cRladxg6;(3l_}?44TvP^Y+F;6(uF9uZVv% zVvA>@9hC(7j*=I2AW*w`A4A>4^W}WEgO7=sa^mr+N!g<5t)z2bm-7MF_ZRrh|LgTC z#36_V{uaa2NI@I2`2L7nvO1wIj1JrP&Av*O+4v1o@dbmLHFIX!d z9nob%(@9X-6|qUaybc3`!81=97MPiDxI62$T>w_XBjev^_qiY`mPj%!{<)1c5Z~-z z!q+Agd|^h5{Bc3maBC52Y?FVnVi2pfCE;Bacv#dV^Gi7Ox}IF_RMO7@2mOv}6_GDB z^jlu(>5d@sgfXQG+ZoD3)BQR*3S)}^6AOXEV}4DiJnL2@7pu@V_T>)#9XZk`>Lj;h zh)EiRd+NBhvH;_=fWvu+mig~(FiM!ahn1_kP3Z(IUa=Yts`}(u;c#=qT1*ToPQDp~ zQvzpaeyRlbQFWvHb>T)1FyLI_;D;#?)YIRoO`%dPu3ea(w~V0LE0iB4cC66(E{pga zB#^!K<=V{THZGeiQ2Em(WYShG2H)6e_D~Tbz?*hhh2u%2{s48MxJY`GiJyJ9teN~R zv|~A*K~MCUr$i+5sLZlo@;Ii+o(6hAr@ z_rmUq6XSQrN8>m@RNdwTwMvRQwl*U$OpH+sE_^daH{RHVh#OIj40eWF#@MWA;X+M= z?v;*l9K`O|mcCyHk86j{p-Im{^dVuA{=Ftr&zGbBq277|J034f-B(v{x)_Y%oD8C0 zH}Gv#`i@!9Ync38YIYFRvrI4r4{%dKk1OzIQbX*2ABDghh(k2*1|`=e4c z$)cLW8n1HQN2K?8s{8g>ZMM~~tPF{^e5DQK(dg^=#RG5qE{dq0${LFn49!>1I3PpF#&Jp5paL=Ks0-N;fIc8y)b9>O z96T<5@bSy|Ky~_?`VX^owdbRggR0)@`?R0IHW9%0X7B2X=c8Jq)$ydkD`Lhp^H60S zC_@Mc2vFfp2hv0sW1P3Vp3)``EiCHPt0t$W@PGVhX^hd~1B$3bWL;dI@`WObx7u(3 zK+V+Na2)Z{HMmgf+T2&N#iMZ=w?0sW^7X&pIxfm#Ca#I99$?&_o~zBhPR1v%K803I8LiDP79r`M3SR` zwXJ;)bftFb9CY!{>M~KtwTQ4xmiruYAIM@KuuSSD*6Acr>6HETrL>TIbSmSD1N->Y zsHl2@@spSp%$_6=LI@Qimm(Myk4!YZhkSIB7iWk=Ra^WjUcCGSv*$0C;dyN1pZX|0 zQYiCjamVP@(^laz91nY@i!z~!lF0=;sp^#!%?`2}cIHm^wX)MHvWJYAGvXNKApBWt z&cZ0x$_RG#1~!2C+0E$%*#n2n*%Qeku4Glrn5pEb#TfN(^iyHRiAQ17IqvaCwPv}< zrno;_Pi85$F}n2F+l&NQ;l6N`$OZzODE>aGAgt-Tnb(LCcevt&g3d0n{5RU6!A7cJ zMhSKp;W-fPNxK(tbis*ssH_XzmUHzn#io)qM{s&0QJv5eW70Uvq)cu_%zz22EiE?O zE!`?}!T5Az)1&PJOv)RM9ouLd0f;GPxx^_Y*6E~RC%-+AwvmjkH zRk9uhbn%w2uZ?y_Xjzl9Vv(2wgCH@$VB26}{iq2GW2JlL`O7bwMK6Vv>kddc8VxwC zYpe7}YFn)yHa${=XHDme#*7GGxP%U z<`-F$RDzAa5%+SvSf6t_>~62Ji8CbbET|%6+?2@T`~}fXAWjK|8B_AUz_M}Nb!Csb^QyraQhaDfG4hiAf zSDK zsMtAToxAO4x-QmlllSNtJMOw3JiJx$?z3vEbg0yPeDba~f-JnkmuP7pG~`=0OPu>= zTcgHKS!gQO{?@y1%-Zwh#5YKUFH%$7Yst4ymRPDE1XC`)C^Ed*DLua?w(TD&95yAE z&D)rTZO!U$85LP1E74ayQEYgs%p?zd)4({gX{Fk-G21!y2;bCJZqzqBSmSQ+=7!Hm zX0%e1Z+ZZnPH-2kyWbDAMJb@K@>Z5(5tr9| z{b1@slgtcUExjb@eJ3W_4~mqE5d{d6@@IugmYL3%Jw|h^L6YIn7$g<%#2@zb2K%kI zex9#>j;DX#mw(oeeo~=-j1+m@1a&|Qb%+gkQ51QljJ*Ps?@Lr3O_U!@mf-dmYE-_AWRh5Je&;}+t z1dr=+*#LhXh{baqEKs&Q18JGqn3yhq=I37Cn7^94v4Ft)mctZRoofjI78)8lJI2}2 zu>UT(>t(`b(#Qx59GvU?xF|*Y_OF!QXUoC&44>J#xg!Q-{^8w$2(GKkIFX-e5-$H= zCH_}II&>R-_Ow5z$bkl8{RRuv=Lh-4St@+w$DV4wI!#h}?5Igy6Rd6S@nCx*@dlH# zlJ?{%Iw{dsr_C1IK-EG67;#(hk6+8e%ovhZy8k(B1v_C1EoK8PZL^WE;YQGPWGi=d z6aQJKBmiBdu)<}|UqRD8>rPNT#M5BqB)M_xa8R91uIU9}B&oSHwDwR>XmC?KX#)Dv zVb1ags!;X_D!6T6fUO{{bYUN5gIF+hBmDT$8!xU{NH}WTQ!=0pmRAg>ePq;$n41Rx z(UN+j%h zax{$(HBr$QWU_OL>3$`JR0HXA+w7N~FY5D*9m z*^?9%y>34^%J#6Pwb*sj(fK%4;j&an^|5Y=JIpDPNU4>%#XYL^{&1i2c>iatA}4;d zT=4%k!vB2qR8BiaVf~T`os{~q{sPW~Cnrwc=C}Ud_ra6OWg||SMVvcr$dR$uK~sBK zRe(-+PT|Ht{*}V_V=Ac7I<%Bic^U_ZD=jl8t?ESpet1^r-pMvnQ1{i7b$Hn*A9ZSu zb^2d=32lgszUAYH%#BAEGHXcg?U%uvZCZ{c7alUrEL7)EY9njcQWR4%Hk?@6xd@NB zI#t(M;6{thLo-P_{dDZ!^NOS<808WRH9t4`hE(F83FAyD`2D>ev&-hwF667!6tvd| zWIC^0p!+QP28)Ops~nWHv38yw3^~d~io8{S&Pv&!47VoCY*1EweMSfD&G>1Ux(XF>;g%wQHSXz!-@-yi}5xdnF{ zF_K1Mlt5!x_Xd#Q9U{UvoW5TKFSCsCJ*$jM*Hh$65wRnjl!{j|G*CJU78UqLgR_HD zc$mT{WDs&-+UcJ6s}f0y8s`s_X9!_>UTTM4yaa>TmvrCQ$1ZC{&Cqbt6iQg0sG+wgk-4|-;~~df}a%A)G(bDR4fT9Rz;PsAgwiXl`&Bd z;c747%o$42OZ{r#AgU0FIe6+!nCsvftL3PmA{oO?U1<5U)K1oQCaUHm2n+;lyVH+i z%J0TaUjBP1xDt`)HWgyXg_`<#wxMS8b9C#c9J<=F#!AJbq&_n}_&8t~`}@4;Ctsje zVM~g9st<&J4C~H_0j$O6OZ8TRG~1zj{p(W?XNHgS`SOmN&R7avj)abK#ll@DDJdy; zZrSm%X|?i6b&csv{y!%oOJo=r7?8IDi_YicR3GEq#N^~;fL5FHO0Ch-LB}1$;?nSN zC|REY_+9(TLC@gC-z#& zM1q|Z>d%C32edBvEeN4^io$rQ=&M0lh-8s!yN3AN8kz2M;12ijz_Fkk3s)(;c9+{|WzJt#e|s=VGV!<&*5D>db}+elpY;?LnD9GE@1T{bXB-;)_F zUzZxELo%X20JM9&F~7D>&KLH@m?=&LUFE+qgBU$}*PIZ;gN76S5_V!sI&~iJfcdWh zwFNDAgdr(QF^*~b7K7g);?Jq-jeNkc=t&;?v}2IDWr7`wxybVOSom!U0p`%ubEF!& zvaus#p!AA1i71Jm*H2tAiJUU7r3!_LvKKgiP7QGJEJ0xjVI`%N;#ZCZz9Ftq)@Y=i zO6PMRHSp<&1YW54YH5bTj>m%H)>2pzPqs(j9GB;TuO!plOxOgfbh0HhU&v{!v;ykCK zqq_o6mq$DJlk*a(0{g)7GGD^|FiaeS%k9|=T=Qt>?gL|TUrfF~{w@UoHi01qK-Q9v z*H%y0FfgjcKt}ih2%5QV9-hpV9MyuItMmbJ|B1d%a|;VDv;Wf$LqkK^qys?-HS0~| zj8|FabSrx#YwFlygL@H$ug7z*tsAB2e1#mJY7BFX~Ule0zyYvl&)wqB0x z*LHq{;o1DO@^n{u+4ED2v6gsW*rc-gIRz714M%q&cIH^fEJdOWKa>cUIdhbeC6qIXv3gJUBCtU?Sf}obSAEDmMkFZ-mD@Qx;LKV$~U`Cv2o8 zZ#fX`Jh0z0RjQujES4Vb&%0g5@9s}9TnE!c<830CovwcwI(WA;;~VF}I<;J2G^D<( ze-R;__p8aGN9HI(kVz|?mCIOXXH{C}wy$yD2BtK6)Sg@%2XAGTdos0~zr2)70S(8E)29;Qwau|7 zY9+N#usURyeDVv=Wcik|E$;x54z|K3vhE_X!4#|o7q(*6V=t&%hFyv_9#7^&j|xII zmt&r^^cN->bUZCg2j9L5ABJvaw5=x0{x%}8m-rT=6x!z8h>9Ny^;(xosbaSj9;$M>; z;w#O?0UU-9Ww3Y?3A7&r^_^o-<1dlRYP~pHb#;e=CYLs=-WE3B$-v~Z5yaf|TyAfl z>;)1sCQ}dwmLiK-R^-pf^v6Ob(e80anXX2eFNS|xja)4&FaJ z3~MgFSst80{ng>Yu-Zh%^fItm6%d+jx`5WGmdL&Gy5IKj^K;*K6RQhQXOkM;vHm{!=i$v;uI_FK zeXUdJ{Hcg@%j3?oOLf~rCU1*N$lC?;jfUz*L;dhb;j*c)*GBB1wXJ+{OQ~T8a0>6T zU}>n{t9W*%&}DD7cWVS+k+M*!p}f;p30w>Lx8B5=y*r%GT-F*r+uY{5SS&x)CmJCs z->+yk+v{~dFzs9NjyqqwuhOMER^1+Ai+&q8mg69$f%%f;uOg@J8g>00<>pd^JVz#z zH-sY`xI`i$&Ns~S0^{e$Cjz~^n_1rU&kJ4|WT1gya^~6pE*eh1)$n_(4Vgq%s2t8v zEC~&y*<|*wY&nQS**gaPjUW@;3heKm^9G1J{NMcV){m4B(;*e-DLVo7&@F%BiU%rq z!76KLpqk%#IElnkLJtKK#d;M9+qsEnnQ(Z)6YL$n45jaM9m8HklPTzn2Iv502SLFq zQ%hChX6vcbwNx9P`HtiOJBAt~&ILyI8oh19uoqnb1@%;Wb*_m^_Aio(KO}Q#=~k;L z7VK)9J~eK)@(CB7FUL3Mo!!U5Nmu({I--MgA9Fv~+#iZ!@0%V?f(Mj~R2~`-*{hhl z0d}DmIRGT0QMv`rlBs6bGxp!+PT}Xk<7O^?8*A;~!<>>uN7LSL)~-W*XQt~@2+xDj zq&$bdySl5bug@oZ&gaw9Q{cIBp`s!E+rRu99q*Te)YR0nvNE;myBy+i9v}Y=Yam_D z82=Lo8SFn@X$aUKflJneRBAqFldV8zl<>*Z3tMzDOgWzt;s%c}; zJ1BckQ1cylI(_hD2i9&gZ5GV`f9nLcHP;~>mM>l{kyhitFI|2DVVFVR+X6!?dHxRr zaqGGMnn*t>WUFd?3NO;^^f@w@YvrGlvYT2K3=LJ`+*r@pe{k@KGvoo?rjZd;${lU8C<75Nq_f{I;s zjpj;%2ZyPn9c2$S=w3!#@5|sJVT43WBFKN!8EeZG-qwfX$c;#p# z5EWQsU<~E5a>Hm>2P^uMXf;ie}we;&`TF zF7Q?I%Q&Ej(|cLoz$Kc{zbssd!+E(zUtl3HNUpacMcRi>6#_F39O9543b4|6mNpS{2M=0>w@iu4emvhky(m^kPHc_CoLD*71+W1M&9rXDT~jp`tb zc)NSN?yb#cU(0w{`AjY*49KNfO>87Ew3+KVLmOjiKV}mR_dm(wSpZzJu_y6O*TYd= z{I(0EEmCT?le$_Vd-&=4djI4c;#W`J9HsqBsq%4n2cAi?nr=Mb_wc_~ro59=QcAQC zW76rrJV81-I!dIo{>jj}=un<|JZ}?nGBY#ZeSboJ{|=B4Vetq01}*mq-L+33#=RW% zK;qxGx8WFms0a@ z2kN^p1X3Jmwta80_R+!Wjlqu%jY*XcXPehLzcQY+%;)`RsxBVc`cKQgy!y^Sb`kTs zKP`3)fJOJ#O0vrC`ae_qIVP*|Yn?O|1|I4|o9h6BU%(*QS2`v*Ei*hZOWf!xJXWnm zoMeN|xYa|Kn$M`ZB%3T69aOna8o;5gvWVq_t@lu%*)p4@%Fr)M@N`sjhDF7c*uel_ zK-v2NGnk(D{Me<6+iD+Y4!1?QxNoGdcqA*rgwf|t^3Qy+;LJpENo>?OMrt$Bd`VfN zR4FOpc7FJ3g#z<%e%A?VXalld1*j-uBajvLX;H3vH1>457?lA8^z4%nPD5#g%TTqg zpBHP$Eya89Ygr~KF4=A!cl}o!(Vsad*AZ2aIaUa7MheRbQExe>a31+5+X*yRoD0s+ zDaFJxO9*U(R59j?ql|k695M)j;SiMm{r}*`T`!eCDHrVPE?;`&!e#9>95kQ zn}c$ir$if7`Syp;@YoRSO|RmQ)6JenqKt*gQUpnI<*;26XGmpSthy2YzV`yKT}L9Z zUP}5*bwQEy1mQ>~HQNf`*y#|#_FVKudOGXjAgHa&T)Ed+uYpJ`dW>mI_ImQ&sqgAeLUVD#sOix05cj5gNpZjs?F$9Rdl5W?oPY4 zgGVkluA$Lj;?u!Bjf)hH!qmYV1$6L`h}Ne=$IEfXi_sIfiKg?(v-Kmuf}~y>Mnj=Oy2OQI5GDrPSelx5Y^bBjC*Ne zcirCdk_u9EvEN-Jq7;;80KkD~TPTQDIjHM0COqJ&By1v8_1H+&^>FTeFG)`~yXC6$ z?ep+?g^nDN>wcOO@tkApMOt5-yT`}H3XAMMoB+uO^XTQE2{ z*uv;7a5G(c_hkO5_vZVbW(8zHvJR<@|MmIuo+`Op2WC`Pd;gDX$Uh{&`VMiSC(#O5rWT9|+{1WPHKJynDWmMb^){@*m+Y3_cxHA2+~%6ss{$=H~4t zy(A5~di*K;7TG^Z^ZF9MrG)1Z+BIfts=LuLEmpG^I)C-G|L))*X*#mCyE>`OE)54r zBxQ*?aiwI0?BWDZDI;_$Ot;ar97H*wSBIq7eaRReG(HD&nH87TW)meeSWPef$%`I+ zMVtRcoXDc9Y;ROy$Vudnt!JX}#!GsrmC4sJq$ zbbU6pI}++!U?~<=tSGNTxurJeq3D6h9Gqbx6b0HS+OVp8Evlb4HDxfEJztOst}>@3Y|4% zFR+q;$dc$Vl^IN-WrQr!@7bwPICxO%8h8;Q&ptV1T@FGSP<>1kwG+y-&i75NmW{Sscjv5Nt84KS_>~>cVIl z;PwJ29umzQnC6KlAT1Z%iCU!eB(bKvOG??ZWdC*dUqTdA$6S2hYwNPfThiT0lev@e z^6F6WnjrgGY~|?WL<5w-eug{&gJh=v!QBTzFGCuwZEY&m+FoxLO;eX2ud^wg_n_WY zKo0N<69*#abvJl+<aPsdQ^v1G2YYDFm1&37TPqENdcbFrB7`L!B?J)u*{rHP~1 zNsg!Ur2@p#@ElCKOG#oIY~?Zt$HW*NUGQmVNsBNZ0y~0EkD^M!4ZEkZMys|?tqsf$ z_1qqnzg_YR%qy!MTpexutsDI0&{tFuv4hgTlgHWGOc<&;ZWT>fL3(Sq?MM`zT~gdU zP(XW^9`@fAk9~ebrC2dn6pN$j^&3Moisd;6mBZ`|j4eyLtq@!W@5a=a=n}(*LWk|+ z6B63=KSDsGkoBJ{^Uvw?)Ojoi_dVfOma2a1M-LdZaFw#5Lo(+*uupp87j~mtD)7YI zm9fPf-~9%ubopY(F!FA4(3kLDK(G;33a`&Wic(Y#;M)riW)gQrrtv3Wh>uki04c=+ zA$}enhQ*fqyYgM!-SWnX_zL~;vVFFb5McHY)XG9!z8PJ49|5?QDdmbaf~h`^u)-BP zssA(3BrUuU^OFJ(Zv1j1ZUZNi=Wksu4|$uz&_eNs8jT3d+LZERKTEW+vuI7yqQQ^D zT-XPyO&T{^*0Zwh_Z-M1&ZZK}ftm0u%u{(vNa_UB@Gic7a`h2FORcmYKyT0dg88d7 z)#^P~HswWxqre~m|vjEn%oohB|n%x!GGEGB@r{Yk)tn=bHdpItc)teO^}?#N^# zE&>=0F!!I*`RAtrEFA$$%gUpF!gqNPn zjK$Dsla@J~G6U8c1Ns8JJHU9`QE2OCchd#t)%gI?dJN}g>Jon3bSrDdo}}bNlFvX= z$irShMtn|}|4vl0Z`s2rpbZ!|P?GLRw^$uos{TW5Vjo|}W8d6Mk?-tawX=6J?3Hjt zpRBK(+s_elAxkiUUWpzUE=3{KLU0JAQSc_d(7hRvJc2|j@he{XrBTQX!ajkRLS2`_ zyFi4L8wiPn2OAb(AQHuzeEfAHi$&u78wVAL24XbaZzT;w(mtD3p&C=p7X%i>%bRCc zQhpp>DB--pT_zJb8^^~u5BoYH9wT;Yme8t^)nPU1=WJH0fXzHcjA2x$^Ye#Ovm`Y`ZrU+rHnTEPxjPUHR9r-kH_@ta6vqAVK5nIp*v5f+Hy_ z>thL<)8R0(scHhpWz(&M%);Iw-RGY_p_X9H=eFd^D|! zN>NO#DVRSMFLk9Xxpo%P09G^Sr&HGTrOY!z&C;Q&GdN{g|1z~aT$H8*A2)3-jha)> zmBry*uA2k0+H^YQ$HRJ=c{RNhfhPV9z?n2NftCuBw&IwURz!}G1&A4le9D=zc94_k zi}($=`p=xc2_BgF=e+iE2Z~n8Gugu#1XYIpeSUu*HQUQI$}OYE4P_{ zvoAT{Trqtu%P7vY z3$!@Y*+BFvMQKIL7sF0sB$A_+BQYo?fI{L=UGvc#Aa34Dx*aC|am*}+Ul*5WH$Qtc zZuTRJ_RNE9h8T7q3lr`lpjpq!l z6FP_zF1*xFOVdqQy`nRs^vOfSL?`yPLEpfrWv)gF)c%j$=^h*SJ4B{P?$BE}R%YbU z?CvHvqJJ}5_ds&r2XOgebGI`D&S-xBW;Ap2a^Q^iC-sA7=l8kIG%$hH=j+KQ=gaOV zhx7Pa(ie~nRa$Odqbe>g4g$hb8gYJZX|q)fbWMM6SR^7Q?y$1jYzA6Yu}$g+d%ZonacBK=FLr;R`oAfPyxZvM00r;K;X0r78y@VY z7u`T;QpeSI1I{RUe~RGsME>=XQp)D%>&73t<#|AG4{kzpv^{vuTC*&fHf-(Mt(`ds+p`@qc zhUlaRc8$S#?l4s)_Ap0|#jJJcK3L=5E&0Z=dZ6i7;HKknP#P2q&yo8Y`*;!uWH5N{%Wir?qU%n^hf{%YiMXf@*JQ@s~zE4com zrzS2W8V=z4tGAv19*A`}YL!R>W>^7Az8}UJXaZ4&1)A;I(?>@Dg2Ybf%-fsZyUt!T zvTp4AODc(J#0{@9+d&DGBqth=yVYI!-WXp{`nwG%pFW z_9CsXqFl?~F#VTlrBuN%E+!7#6si1w?K-gk4_RLs6j#(`O9%-Bhv4oO+=B*pcXxMp zNC@ukPSD2P39b#n-QC^oU1sXln{QtKf-0oD>g;>=UVBM<_VaJHxjDVu7RwMV=Rs%Z z=#l4-k&Zf3ibMulQ1RUX)th7Fq_7+OxVVE)iYbhKX!Z)EP1YMlXC?E#APd+6SYmH3 z_}|71t=tD4s|R@hP(7||4rzqBsmB+NHm2!a=j(^O*X zK@6(c1-nDNNf+C*6Z1h`PAa?uQlrq9(yh!|ziV2aYd=Feein4} zy4!W@)LQ(iJAJnl2)vonwE$CILi?Sa%!AIA^!82nq5i=ZH*;*0%ZCXzz1BrZ^K@&>F1jJ{=gxejJYXt)Q+JLM#`h)-Q^F(uonQfQ zn*=MnAOT=5J1>u<@-fW}4>7or#n3N+f{g4L$Tq(7j=GxFva_+Zy|v6Bw7f#nGEN82 z&dw&Kr{kid*W0b}>FKS#QsOQO|aPS(&K0rX2e*<(Paiqrqs z(!t&t6l}Zxq=ii;l2|lx&*vI|5Z7%}VqS0vM&X$w#x&;PJUgVU7shb)4{Ge1uAz@48$~93ySK%@#h^;HABhH9oBt zzEVRkZ5MS-Dfd|N65pnrky%d2*243uyhzYug5(K}OQ|w24JU~0$&(J4X31qET#d60 zT%-+W@=ueimDB5naglPjp`^5u{j34$r=ss5lB zDT`JZEkOA;t5_C_4BlimWMj_ojKZOFAjM1+IfU`2xJoPusfd5rS1Lr6L}M7^h!0*Q zcc|uw($-K5Y<;=kO+Njlwxo8@U7d2;FKF=@Pd@gh_(oCHKxd~+kYCg51H;_KtcphV z0my{n!+|MQR&gJWQJOUoZ;t(m1S1sY@ts{l4UP2KtgHNetAy%sh4e>OoU9nTM9=#h zBi_%cP~Iu8%#nw!+qWj&DC)Zh8yzAgQ#+Oc*O#iRwr+Xhn(qLbzE0S%Y|?}OTCgL>%wN*z?kX{KK0>zGQbJX zCnqW=Cu%2UtTi)pz01P8%7wgYPRrfCEg_5N?O5<=@FwA`z5?ebG6e4Oc97o;(NTAP z0lPn~Jm)2Y`Ywe#FdtjiBvnA0P<>sJ7<+09IDl1z$~Suui%-c z?_hqnWru+>ZbJx&HqBxH0DrhH;^%!YAb{z+_u#DSb2Ib*!3lfjQ@e!HY@;lOP2U6N zkaN{3wJR8j@-7r*+V(@9&SSGV6?IdgaKAvIDcI<1SFp*EC92={sa9~NJS_31%0Zj) zpvS#Po3D;QOFfgM-RhovPvyr_VnWs9#!=yQZYezzm$+N?b`p0r`(e7*0PkdPd$zin zD`e6$FdQta25?ib!%Av(t+CqYS$%VTkA*Gt)K#CN5|Y@M5JpHX)kIXEL{%OJ=1$s| zok<#B6jk(OkJMG7%YB4T(;-!%(-Nw6$S)%vf@uRDpf8l%8J#ff5>_@E2=_4pa0G)G zIkXHKg@Ot9426-QkV|0%0~oglPSYGhDu-g!?l<@5Qc4ppFLf)(C~jFOXapfjkq2Rz zsZ+Q^h?pERR)gE82CLAj>3>2hYp9TmxRm}-MS(bFCCVe(?Cq6})%nOSle7SY82`x3 z@bhGxtUOt631T@aWgd6FW?lT*z48f_;|=-KNAz!h#W4hyUxacMwxkt24nw*@aRLBA zCh7R;cBv(zKYhg3U!8kmq`&cum0-MOiM-0X(Q?%M4-rXK20x>}ELl zlHDesy4!KBsP;=1Y%@I*0C3!qwR_->z;H)z)He3?*EqCfK)D>8o!zzNi-cpmc=}@F z;-+sI){N+wm=tt&zWD(%eGlJRe(svuT3*8W;OXZc-^6?1NR?Z!c$F zs|UdTwnD1te+)!Gi>JH6{HCuXmT-xq5TX_`8EHw{qL3Dfs`~_o5?MqgfBLq;B+z1- z!J+6W)6Cck2~7!j>mT(&PG!x9u?@gxBMo^o6CGXrZ7Xuac-au&d33t*id!1Txb2^V z@0&yF=RnFTKjl@n{sOLr+P<|N!d_0|-p=O0%iwR~uH4fXm>a5D-B0Vf|7_(r;x2jQ zZoTqv;WDdg`IIiXRc#<$P0w1#C)d|U8az8cocTpXtYTJdyI#BEkcJI`{Z8gON@@$W z24q}#jHw+{qbCkc-(_Voy}Fs77X-uj$Ivs9b%wL*^WWluzU)Hm3jt9Z2Hn`;>^UbV zq+c`}y9B+_q16Uo1^-n&*&`wK_s8;XU~^Y+nWtpGe%wT@+|9pq$^T=gbfOictOpqWMf?{ALaTa}^yEgURfQ-VuDxdy*EXTWS@|bP64^ z1g9e2g#1~%pU>$2v)P}fzD!>lzXXW8_{hB;Z0vHM;!%DcO__p_Q0Pbt7zK*IR-~5f ze=%!O+8CtUh^i9VTI%dB~QI(eGJbt6-?ZBlQhX|eS%jz0?w0%INtDy2v7xr!#; z=$7KQEiq@P!g;Yf2!ezI1Ds!QW-bcD3bP?(Ys z><%}_fXU1Do1puFXtxbt0yoEl$)ZZGQjzi=(!ao089?*DEPc$+{|>L+ZHi)eB4ETl zu)evwM2+i@cSf;fnvqEi4-U>(8T2%EzSvYslM-AmT2*@Rr683&1YcyoJ!I2rmY`%m0IH)YA!IZ`U0hyL>gsS#ME3)bR!DCo_s z-KT-K7tdFxAH`uH54#92tm zzLYKA=pkN|6&|O;L~Ca;LzBI`)a!iza_o&p4=&47LqYm)7HKgc&6DN{SOZnmMVZz` z>)GPVSmN-h0CtLg-bRlhdX9I8;dG$9(ltbeOStj7Xxe$F>V0WX8OM^6;)2csKSz5> zKzdin5?K7mAzM+z!era~fpz*r3dS^Xyut4-;VrAN6ApDY5>7Jdj1bNys(2_iks0L~ zcl6m@gO1I>c6S{*Dqcz{`8TK%lOG18xd@sW~=7%l)yI`INGPE6jshFc0f%k zbh3CKU@CT+gr4_75`}4*KWw8m>==PiD`g6P;Isud*ZYm##n%6cPR``axi@K$^pRd%Mafl;a4s6^*f) z9{C8esXZKy!-}ENoLw^zl2U+~{73%adEF(AzIFO!zp`a@Za+$W)l$-;b!72AU&0hl ziel}n;epoPl^(y|qp5Pw@O)I{g^d6;_{_A{O7(1}aAR~fHsiLs_p$3-aU}P7Y~}kd zzDCmD<<)inUpddOKk=mWO~uq@2SWYF;LzJkz@*1D=z3Fb4gcz{6lZY79J3K+{hYS>71hSk-GZTxE3)lT>EFZApn)0Ph2N_yCCE}1J%@Aa*YA}i?lRJ zSy|nB%bCuXrB09fMZ&)TxE9H8!Q1`qN)DKG5OfeK-GTK^yCw$k9WE=Xvv)Es z(GseymTEDOU*uZWPti^d{e{I+)B*(BT9QDc=(~bwUwvT^BQ2O0Lmo8li^8|eQswV}Sm zw^k+l=SYdNLOG}UM)*aX6G{`!Kuoy%$DrJk_E=zV@bkO{^Gd#n!}@*MDH=ltF*`4+ zXaw=Fg~+GMQx?i5O3HGXi1grF>b0{@!-|644MXPfmHjKwPzb*DejbAU$p{g{CW1^Z z`kiI;YycKY8|FM#h}~KD$(jo!EH1up2Zs{~8F?}?i2Pf7-3QF+2Y(ffvh}g(llFK0 zIW$P8Mhk0ZmK*2`=O@4Ez^9?0{7Z%}O*dvnrVP-JPmYvmG9$&R{kJL$F#!*zBk{fS z1mSEATg2TT!4Q>vK_)-uZApn`n6s$A3ia!P8+Q(TQoLwCbk!)dAz%LB*1e70-=aCG z&!+%s&$Fd2Gooosc$NKaW2mJ&cf2a>eVnOQu@g?Hh^Sb^TEp}1^CntytSP2!so^j2 z-M6e|Yj&XOuwB;{Ig9N+H>{2ZYk z2bvPEGwU2`+;q#K^h~(dmEURh!_~?6Xxot|@GER5i;TgLPO>EQH!jK+u@mM5Y8AG; zL#TbU16w4DP7(vjqRQq|DQ2XtboLcX+qV+MTNXydiXF4h`F$FGmRfrKz!31q1}(GUYd~1BD0zK#KQ5eEtZL;-ZIwf}(rl zvNg&NIJ7Un7vd7AJx$ib<6)WmKQ~Az_-RW+`OQ&ZD`PK;*~?Q~U+?>##pAHh|FWK% zR*$&b3)0zPcO)#it_wb-{XXctjP|p%njB}>@ntSvSA)h?&0skj+7B;pq+pf%Q@8jv z{a8W8s0bE%ZRm8>rJk1x7)J+C)&Jqj|J%y8`!aU6m}$qSZ5&!$UD&W#Stq5&l^DQ2 zkP3VBdVGpsg5QCur6%0ifxdDpT4&MsX(|nCYBu23$0D-`j<&?*BYIMG6v|SuQY>;D zV`6cIJia+kcL-AIxuu!1N=d2tj~SwMv(>hU)F_WpM1JiC0s1Gl)bFRY7R6VZYNc9X z3ayqD^U#;Vh`!oUG2B0X!!@&Qy=_3B4wmyXBQ}pbo@-kB(VvSIc$h}ryxm*eFH*jl zT%vIqugK@h2kgh4Kp!`}bmj_-!50!S2svfR$n0!0Xtu4Gc`3itUmtcz``$hh^} ztC(%3+kOV4f`Wn^x@Tt)wZ7k7`KAr_YupM zQe$kl5DB|+auSO21&XPDBr5OASK}*kdr{0}rqNrR+Gu34zg78Qkw%{DsF>n%i=>^k zpQ$LkTlqHL zq}gb@a+9_TmXMPh2W0cUuUFZA05R_RP{%$tDQVY0OgGgpEiKJF@va|s5etZk_Bl4nx-+R(H(i-aqSN9z+fTv; z&^chFqLY{`queB6U>Lt5z@*b;#av7H&s)lWohy*F8)kXZ;}Ho--M+ZaYEXBT*_o-) z#7%f2>_trvw&i)hFd^G++}Ba9ZzLFZPNY7lz%7FwyKP!u%GQB`Ra&PEn^$M~PS$lG zt1L#;fhv1cS}H*->) zI}AUm6l>@pn0S6{?pK+J)S_oQ>zH(9Uc=K{NnhboUSL@@t-o7La7dgdN{m>>6^|$* z(Vc+@CTBx_B5N}IgOJ10k>}q{0Gs>O$>tJi{CQ)SF#jjw`Ys{k$upBSFTiVRV?Q6@ zJaC1(BDG5%+LN>9uMo@S#x(csQxXUnIoT@Ec7^2f0z3Y7ntHCR`WG30&p0|o;ull! zuRiWPIxr{b*O+ihPSnOzdM;=?n>qgBck@8pP*;ION-0$J$|wCCL6u)WK8yPc3o4VO zNxSQ&3YHj>6=Cn-BaDzAjR9ytu^@!;CppO`H$fYMq_CDkfIBmmbVE3LdM#(Uh^5xZ zReE_c7^X6z0y46Crk}Bswq8w~_06l|uCQcmc3@p$b!oOC$#o!WF+CTyuv5?SaMN`Y zx7E{^?etS!Ylz6oksisSy^4K4y+Z#TijZFtNooP^!2~@SuLFLXrS zj7`_)RR?QA=n)WY=o&yF((2$O5vdVJHL(^<*X z1nU0&WRwNwS5Q#My1M}av)>=<+nfL`QmfI^>I0YCX-4pg-y%^sa51?qJe4|GeQ!!V zLspQQS$#9BM4r_1kon{U&Rs}~DLef;y80JhO5f8=Jjg;%_GzR0wiaFI%Z-mk`RsL6 z34FMB$%1R4IouvAw!)7f?v#DaI4e3W_lU2|n(w@vN2DbTowOH~G zOnqU{ggv|P!g|?3G%=qP5-M95SmY+&P(owtU{%1Qq#1ioOO$x_H|?tuH;JsUu{4_W zyzNIAwngK-lwVZ}$M!AGq+~%fg}aRK#pC{F%ybLsL+0MM$GF4t)bg)tT9is!ltzc5a!CkywEIkuel5Qp zp9Eop{I8%PYg?Wx8&0LIR>MoTZq@XVe5u~3M zqClN6;$Fn8UN>F^xz#tAm#rhxUok+;r+-CD*t(_ITj0FEKtXo7TX}pci8w%>W@Kmx2??p|ebHyS_XTKoFGYMVN&cwB)wfT^MX*GK4zGpx(YOF$|v=gt;{bSqyi z#%p)@`gE2(V%C(CLqtkyq_4lu<%@zQ0&t_>0bcFLcTaKNvu`{+-n00;fYK++&3Odj zzx8;vSs}JfyL@-e;~uLkz}{qc@_(Ih{~sj|=Z9Q1)6PB5JuCceFew!voXVle?=)sJ zNZGP157~5YI_8g8zbrbJV_)xYBLJOXs%lo*Lh`CxhbPStnaLe!=;Z4}{Y#M)o!DjT zty$WgvGbYa8G^(aqT~_0B+I7)j!$OO_+xfqG#mx&*V`$SQo#zY(Q$^38I^TGCUtg^ z<+_+E7q<(OjpK=xQN^0LI!Cxlji-h${Zf%ysOi9;>z#w2zLQN0%3RsfAC&DkIb8SP zOM@(d427@y!;JDp9$OLHs%GO&fi*K*kCcGiAOtg^i$~jE@P~@NvCJr^U$NFtEC-B# zbPMEL=2|VgDNoU3tq9cC!8PGI~22t0&DLi359b13z-tatlu4 z+?q@ij+Juj&1TIqY4Sj!;!sBKAb!?nF6YsB0Qr26hAw;^?+=f*m2>C29@Y}O5@eVW z#dJllk93Lt&^l~3OrMGN)p%OqkMKLYr0eF_i{b13x?{R%FBEBXNo798Ef4sGI zwU@ur>GyUl%H6XS&42o^2?##tdrY%E52?q~Z`#u4pXD_*4WY)z@u>L5H*-sm=Y%bd!zg;0N4C{8WV5^RlR%!9%t)j8}Trtp)t# z?B%T6`GyF+GX`CBUECC7F3owuDNcepR)RHV0<8h78ocpZyy3&eWYg7n+ttj4`fp2k zaVsbZQy58eo_ST|HKS;1OYxJ2GB&uKleSWpscrH`yh@XIvZ`L+3KmEUXc!^*5f;fc$!i#EWDmu2reT9ar?-!h()U?0lL za9QMP4Fy>@52;jZn}F{65v!E))X5Z-bLYJ(_aV4LSH0|@{z76P|1G~i`$VSUpe-JQ zN`1z&$BR6?I)yBL#s0THuf+D>8KiE$i2B_kp?C^({#Yn!nFQk&c!kR3ilR>a616Z)=K+a%gynzzT=o7Hl{^cYjw*^vTO9;Ucw&>6C`xhJ5s!QpLmx^Y(ENuo z16aW%Sg^5Puo_%nAs`@BL$_JR>SbPy>VoGy5od#NtzU`ffdO~2=jCy(Gip5h?}j~J z(Sn`#7Os@DKpXJ1=YLule~-o~xV~Kj(r?sKw1LzImxK7J+1Z9(Qx3po>)KRHOG}M8 zKqWY3((fVJPs8)gXc@qDNl8h+Me}iR+)ZV_IyX-MqEA9UgAu#Vm)l8PKmq=WruP;a zzU`C-7<_v9-L>(+iOW092mL z?`>M$%?5HH?F|fwqpC;8#(aUUP0KS!%eJ}iz_}j<2KcD|@1<|k<#6eTk&mTu3`c3h zZ%*bfOk#fh^%98+HC4#|j-)UX-bq=BjYmtj-Cd6O1zdNF8RwNHu5T-D(vdRczBm2D zF#cG%vtE;D!3gGdA0w@AwUqeidqZ`xoKsxIxLJDim9@r;s$}Q)bP(@QT(+r%RP$x{ z$5M*w$inOm^^ZJWAy#npgWh{jksiEZy`mGR!__t_-FF}|EgBO$RjLN%!CTeHqM2(< zXV{UZ7WUZIwK}5gFf2@xuj0n2;nMji{QgfpDf}U0pJMxvAq8Ok^Cmn^siJaG;6q`f zawd-X86!lkz<-fp<97-1qE@>R#lF5m3Eq3hNb{luFu_FsRS-}^>*s5L=sQh>&Ph2B zv{xp!{&kHg@)LO3I&L@-yK`Y>Abv9I&efpeK_U)kJa{8!fs9RuX-?GE)y{>%>7PK3 zf?_g8feWsJ@E_lb{XvErfjmO-S%C52^2;cx6U(5tGFuCq>KqS{O)Epsbv*;S(MBz00an3_xl)r zMPq8zbr_DUUt~(}#%XkiaJ{$!FZM`nfL?tW0U#}0ntQI=U_TJ`#jbC*v5*lXK35@AV!l&|7~;fYDs&f#&HFC z-?>H3#!RCD8!}hEDQ;+?-Ro}B=nIrTIs4N_Fd=>W0xF$4edP<%#6%i4^6S@Zqq3#;FanvD6h4pS3SpzK;hxLI3ZVzkj8U6thdn zg9^U+%JN2}aD{|A^7dQb982UQ%we#^Tl8c*XHIIx*5Q?95E9zN8rY;Qrr(=Bv4Ob2 zOo{!fXR_J|p)?-eE787C;?NG`A?<$b5JgI(vm&90VK?>CW0tmpEzu~yDk2r$gu6{@Txm(p1YrYM@btU6<%cw_0Dt1ih2OaW`e?sU zQoJKzyI{ItU`Z!97$+aT0z$Gu+gXbWX9$SpS%}Fp8n)wQ>Hqw#E2B;gedr+H`2O7nH*MJJ5M*s_f*c_{CFoR>_ zQ=+=K(Son|mE82(?;u9bG#=obbWFH|&X!)6%sv(zR03ug1r`Uc#eN zW5!ykTt5emI>CdT)2F>0dR;P12jkc!x56@3FFam7sp$PrF<12hP^(7XPc! z0m}Omx}a6t@Z7!4MCJSeh}pf=keN8RHUT3s)!oOr^xlK*d~2`OrT8(S5%JVLYstyU z9q!(^464;_+izw~GDASflxnmX3>+lzJwV9#Q$I%side7TW04Klk`T3ScDfTsx=$&;XewX?CZICo`1>%bWhC4E@6f{q>-^fl074yWPY;e9sg_HP?X|eYTaxzfw}U#fc&{v(0-NE@b`?h7D#^^bBToMH5=?jQohT`MmS3HaTaHL=qd+xCw5CY4rBl|kNg-*uaP(Levl_vqCyAmuyf787 zVN_BFu74t5g(mF0!a0hK-ndYgP z^%k_Sdph57zf08b<2FC1rEh!FAQn~-VB$6Z1Qh^jPw zcc2zq*nsh)Q?0YcQ-OyymqV1H*a??ybo9}DkNcBax~go|@5HF9tE=o8WjqgY)j$)K@Fy={ATdi- zS$WX7W?Vwx_tyRP_V)bz{OilpmecQE025N*%qdnrtkI;PKQ6#DQKCZAds>`JntA>E z_b)0gdqH&_P)1Tr8qwDwL z(z*5)NUV>==Xt&Fi2DYFNX*qgDt`RW3IPfuTYU6c$n-T7wx0<`sD}{^_A{o?24eu= zY+n;1vimP&h?~F6p4DkO5bXcEpzZETBfS_X5%Y1f>MV&38)`Iy;^}SYR0c#Y&4N?c z=6op&n>bDSNG(|eb;pI>@6&?YlMM>sRp&R6~$7<06W@6#GWXv3Zz*4@=`(i z$t1Ym$}}B~1szguD5pKfYRD+9xIKvUq$M*l?WBGf3G|0hHKal1+)X)xuoSbXe&p() zC0uA0qdL9hHd5bhAvH?XkZvf<`Zo{E&HV>Rv!k5)(|cLa(@|; znHx!NJdpP_#)!-O`cvX*pTiQQ6#r6TN(bvM{kl5U%A$}=&B=^E5{-ymveas2+)0_* zv7I7;Z33Rvc2Q%f?Cmi9d7TU@$5h)74(LbeU+iG(0`tw$n0ohrnvD7*8;g_bvrsK; zsn|;w(<9|qi$%$ivBiwRj8!|`<#)j;zrL@Au$hCdA!ZV6I)bT}S7zh8uLwuX8; zWU$N1`+7oE;!sKVNbIpQv)C+C(7HH-WfUr2$ysrSo zyfGuz2+o|PK*rp zxC44rM8q?YGasJ61E?qqq9OmIr1W)ASl;xFFBmeU-+q&B`{=-TS21c_h67dr6eETk zSpH(&>SRCHSDULQ*uMRfc8*GsY~7irc^%991=h&GoaB_FaMT^cSyd#Pcao5_QOGbX z9tlPOD_VswFHl{nhEtA5NoTD~o7V7_(3&xiWDQpYvh-y$*L;t;k!g0-laU#L~#9 zZEB7QOo)Y?a@XWJEKiX&Qeg*T#^@M5jBh1QdNW+Oj?;uFF&NKC*wMSqh`bS_MoDAU zdDDnA;(})10!vENi4z_jC?-~7&5>R8>+wyh%-i@YQmF#2tmgASq%{Z9pZvc zJf|WE$H>6Y#DuPp6;lZ zZ*7)&pKrO*U^x+mGt?pKA=nzW2;%Kx&DcmC4x+2~_Nwijp~&7>e$d=rHK* z;?1@K?=04YWCof@8LCH5fGudH*ykK;))blb>2aCoA~e$N3qf7b8qwNh?+Mk~-1On|9X{qxIXP^^s7a3gn8H zm13uU38nS<9KWy?GXC=o8Umt>Vun`Q#N^IdpwdI%zq0+KrV2XWI3@Zh#M1GX4bu|u9Ya$zDi1+er2 z&VOKCfdycX;I%f(axA941#-g%>B{WA?qFRF8IQ4`t%5vW2s80{R9O^%C{4rC+DO_p z`gUj$md1Y`Lm0<^mo~ZNvCzgOh8<7rt|PlXL~T(CT?tFD6(LxXXEv-v_P|MG!Eb4n zjqFt7UCF&}7+Jo7960!Zn`kR>z(nDC5M5`1$o}niM(TDp)O8N#cJ};kE{d=eSI!dk zPve&>FB7wc!(n2f_`i$fZg;pZlV8L+zA}x8(88gJF*2h>-LDU_;-p5JvTFXwcLSj~ zMi4WDkStb1$-uj%LZal8(Jem)mVe^q6jLv1qsnDXNIP~5z ztj)T9H{LRjaXS)Xrl&D87z&;2YNrbhJq{`;Jq(TQ@X-Ja|3Ng%?LvqxI2b-T81m#P z4c5)*FX7SxDQ+JeWQ0uh#J6tgbM7KU@B>reg!>h77SJ~+BNN{S33SP)TR?xf)V>Rxo#{Q z?6O8alN7%-Ug-Gh7;&*@R5tK+zS5+&A=~iJTy&BXyma56N%WL21_DrGgLodXFoMT{ zSQb~rPCL0+5A2X)>&P0E2%@ApqQGfVmq80!Urh50vrOJ7yq~O6-6hyv4l*g$WYRXC|5E|Tg&j6a4Vjz{dCkqK<9lB1 zy3qrqsG%(_En``{=?Mwf0G)~=%9J12fS7cE-aO1{@_{o=cp;j-V`3t+G$E+H{AI=WnAGLj$7=Lu-L`XV$PvX4@$t{bl8SBGW~gHmcxCh2+}6lA|W?}6ghsQV*1-paW2QV75NkMe(P__NrYxAHKAj##K&%ziH{2`Q@oMAubSuxR@urDJ+RKV?ojAZr%wI0BZnR( zoq=U<>_mG&YlNedEjfh}jTXcgZo@TJi-GigEV6Y(BnzjcQi5+G@4SAv9jqvqXur9f z@-!NgU%ck(Z!=8dTPl?}O~F4&`+c5hQIB$7ZG>N*fpeKk+B#953tht}ZHv|jW!%$Z zbcW_;Qdvp*gmsRQ#W)qeaa>{<4%Y4mH#+NBKv`{!5u)pO&*~>*OO#9mLpWp%;VR^? zuhAc{w8#QtU`eX)Bm#&2AW@;IUs>uF(V=okd>K`Mg zaGf7r#ER9SYW$%WS(rwgKJ*?kV!Wq`u)C@K_+)JfdC5i6C{m0}&NrG7ioC66X>}J(; z%7x^Kwz4KEQyRP070vd4wYdySuo~H5@XJZm!v9Utp6lS8qfP3RfOmB;RqS@*bcb+! zi4&g;Y4&cMSGk*ii_u49nB!OOmZUl+kMf>1BG|#-wRXZxrm5~iQ)a$?5q7s2;jNVBRiV5 zjYtGMO`7=c$?nhUJOp<2hUFw2tq*&V9INW562PVSKVIs=!Y}-sK?a-{bmxJjD1xz| zv21f1T0sRU(kMY>9xTDVUE+9d#=@J%i219fKVD;wtHVb=?9Df+y|a5tt-9bp zoqGQ|&z9XSGkH1(+#UYSkfocbZ`c}DiSTOC-6loNUoN!pB=M!23>v1_dNgEwFryd{ zHA$Jo?zc`lfSS{0-lW3xur%oq?NbI>w&?J#6r@_H$g+#`CPMB#5KA!)#7ND_w|~Bxynn!`0C1 zzx1u@eI$0E`2ia)^bO}Y4eFC-W7v^lh%S=V%2m2#S4vgq%#M=12^*1>yADbKa2?FR z=@BJ&g%E~HccI8}8tU~%UNu?5qRP=mESkE1M$)l4Q&8vn(@*iM#I;v@)sEUEJ?!AI zjexFRD04cGYq@NBu6S9ea$bXSN#om!3gvr_Xcf4=nYNgR8h-p`t)3eV~(V# z6oyC*%lih3Sdh%2O|tCFMG-xsjENift?I!l7r76U*YU-l*T|BWN`Lwiv0!g4lX;Kh*PQ~V$x{#w@Z zjVfQpyH`C5HN zNrNS%P%|b`ri>*@0GJor#3Qe9PVra|+Tn70$F`F)YDxHzpWrm_cCimr2V=yUSw(;RaE0E;X<*JY44Hl7wNIAys=?qEv6 z;&DrRE$u+l3IiNTNETyPXyn!w#5%rh zVu=eS5;iIntf)s-&T{qcVg>G6iNF9cbgOwV#LpHe;+Us=hittk-A##sve75DXRCuuDtp%fs<%yH~RgdU)T(jIyT4D$tA+OjAF3 zy#nf2GZn6Lz$&>H#m5C32S<~RVal@FVu}JQ%I}6~>;OQl=Kkyf&L|f*9=5i&^~`SM z6coM&O|h}Dz{<@;rP~MNU3c52d-jfkkrVi3j`9QG*O*6~ki#vPU$ zy@5=72gF`{<8feild1^i!q{#i;~ZxAR9Yp(0q?vuRn~1D?n7F_+L_37T#*Kh)LP)= zS6sT77p5mFxzr3f#s+h)8+WpWTSy+v5FSjQ+NjvsDcab`cW8m0i&a}1Rh^4f?VDun z|LCUtqms11P+B6>$h_R*9TrSGWK~icp4DAH7>2%{=_w3ilB)f?NZ;TliNC^Z7QH+J zvcIFIFqcFU+A*+fvo4PYr5|%hBVrW=Nl*3crYeN{jWSD_FLRAh8mE(HA=^cznA!dj z-Ac~hw|Ne0ZA?nV#RHZaG@iV@J}6^9j|_(5y&t?dOxs1(3NJ2W3sVgYO-PM12w0^Z zroXb5siqvZ~oDx|#f>OM{Vz4_nw34Iw4NMbwU7e>8M9BM=QV z)5%Iy9O^WDssySVMO#3Ub@_r-?HQf5l1;6u-c=Gw|0?pX&7H7=NV0a8tJ?j~O25k0 zQF&(`mgq)Cm)u;_=+L2Rv8_4!&TCKGadolmU0Q4KhqNx zfn8{+{ar}Y(JliRZ%exj`_LK6&4hpgj7Cn_@vZ*Zep9lh$FLp6@nlZCQbv7A4amB4 zTnIG_9%Gf{=A`Ht1y$c?viv&elZWsph7wUA^Y2zbksFMRo`2NmLG34*(3Vh#5g~>b zu*V{87x=F>M>Un{p&KX*cmId~s*tpFzYx62T@i@!uUR<$j(E>wB^Ja5kJdWaNUquQbNOTRc zqH^X9v9dCdG%3x*>Q0jkj08Z=YX@CwN*3ezCodzfr$y1%?Fs$fEWuZ&60;3TqoWiC z;Ftor@8EyqwR9V@VC~F#H{V`|IGe$J6%*z<4QnHcfrKIUqFU(^Rv*P^_5wAzg7liy z!g%-_?4UYpc_qraI%>+t2;T~pUWcFs#HMjn%bBsc!J_di-oTHyv`ODf)ckUU+G{nM z>vbE-Rck<^O|4;_AV+VrzWK4R37s9%)^9;~s!_+4IK0Zdo_}1g)lbX?SIiYx%q_P# z3sSQuXhtnD_nalKTDBi}hvVBz{rOx_bez(1=?o6W9N;lM`lWvFh8bAR6qlQhDh#-> z!D!1ss@49RA#rRBqYR-$@D^KXdie~>It!6QfHdeOP=4i z&iC1VWj?p1`gi>nbl##KOGBe7P!|pPs?Ft+w+4akN93=;CizSBk;f%C{K^cH7Rh^) zbw%#GHB4riy-TGTr?cRRNH|)lpGF9bGQMeJbA|RZFlBo|@DF%&^>T@lQw5CD)U;YO zOR>Wani*S9(ay-xrAIKiU zbLWY?+9T`V3T+=JcWF;s^sP$KQ0JcPQutOE?^HW)7;=4)Q;iUP|MfSCIir722xafC znC;J4aja-s!`M$X%s4GDUC6Lo?q%{6|8=FPP$2idp5JPw`Hj_=)zq52)b0W+glo)d zU`Ey{;$HC^e;;0(ny}pL06RIrzU^$aYE{={s!-;eLkhCcD*#f}((nT8Mh7<|bU;J< zbP?^>MnkIk1y~>ct(tkjMVT1e1*hAoj{{eR4vfF*qyc?$D-G|%JK>}tfV5)ceP5_T z;_Lrz>fr3miebW=;uo?dLoo#)Qa$d_*Qwq>mvwS{9I>VSzqTD>=lkuF$2AX>lC)ot z30!W7km0*vA`GYw9*JLngxtx)M}|p51n6U3Ai@j$6J+FJ1KLQlPme=m3R(`WkLMm6 zPn5yBc~$I%OnNz0x{_v{Nqvj|hphLGX1jmG$2%X|Qf(<}wrbSgdzIDi(+B+py%-TElh=_dOp3m=h&i6Ur9EX1#dCB{Auj{_9`_5>a)Rjsa zdM2fbHlwQq_zho|ga>*t|KKzt|L96>NQgps*Tk7t>AWyeJSlRS*#&<{A3gK2k(x>C z5LgoQjg-;t`BD98r{s%<2xmwsm*xAQge0d*^JQo4Q##vOr!V-{y2ZoKqHyQ_9A{41 zuS<82Dhx*F*>P`!){!PdSx&#PTo+m2j|~n^MoCGx%jYSjUU5k1@ykp{o(84G)%^}?5I z?r+ZES&xT*d~bdVP>NS6{xeU{bQxaCHm$ZBL%i2F43VFcke>@%8m_h9?JjWK$BS^B zjlA0r(tng$nIz_^6Z7Gfb=9+MwSb@69(ixgxF|+$os8c;8NGcxMtW^)o%7 zBpF+py5p?J=%T~usLfVg_&swY!$R|_u4SvJIYW*9fjRjDaLn|0*;hB+fuGOpzfz&e zD|<|$%N3XEfB7eWlKS}G1xHA6iHq(P$onFM5Y(VTaAw*LLg=bsXOu34!mDW9edpMT z8N}BOJx%|fg2~8PkeO*{Dqn>blF+m}&^kopO_HU)>hetpUNAh{pS>;Dfk>jT*h=`L zOm4mXuC3}G>B4UTrl_Z+>L#YSz5>~#H6LuQQjtGiWBH`ez9|q#;wf|hChh3ndQKXi z>v7{n_ae}Qeq9|XjcEcZj0oIub=DjDfgl0m%bc3`BO@c1g6~mxzp(Jb!^7k}spxqR ziBO=eZn0Blu?%R#HC0uO)btB!i<8e)3ecrLIEp(K78U>y*1-0arw5U6Qe{*!%6LEg zF+h53*shr>b4IlQdRZzes*>}Vd&c=o@)YvtyARrWAeEPUXSm}7c;yM};G5TekKWsC zKY#JpM=BcGAzcE#6wR)9NPu>P{}W+;1(C$Oe0ANq5sf1~x!z z#8L};tk$cHI(?!9W9?Mg+JEF#Fsw5Ki;ah7*z?i}q>|C~DQk=_BG|uFgXSSl9Ce*N z3Y#u17?hC4kzsn6jUi={J z<%a;B7pj%b%7ClZaVy%`$Tyzo3?;dR8qtB3`U+;fkJEmF?) zFaPv>`A4uYNawwKll4%K8;{`6T# zz}A~rJjn#}NjBe+INt<9gegDJpqo}w|5;`6vr0?VL8a6|x-3EaH%`h&55*i#L_XfZt zz%o9`d)jqpp(-F1rG-4EB0cf4u{H%BE_yYwy+VmfPu3gA8pLACBzr_N9@V7WGV}dd zC`N#$a{jR=Pq?+*$v!xwxqeic$<`J&uoEU1b8sV)0HNFL5m||O^s{BnIV8A&a7b8Vwpo8cMFcPOqR2uJq8%UB~2g~v0(kPDiaThj7tvS@}h|p zK;OmJxK1Go3d+$RlGK+k_Y!W7;Ft+(DjMwG)eTaDf|uRO@*kkfvSc_@wf(33(THxb z(8JnkuReea|6ympdb^zYfZ{jMqmLq|UtpY@+XX1X8qcWsn%n+kFIU8`28^6XSO^mT zrVhvp5-HSW;@jn-^{+NsU({#ZyQ;uqMRjMZyyBNV1-{$D#@tG^?iLIZhN?fma6XA{`$_~ zXoz}r-fr|Q`||8RIII)~sDR^4*5gbt$0oSr?>KuE#=U2k2$1nXh2NKit+M+&W$dhz z=4{jEN_LbDCF&PlDEA*lw{E5IhnDb|$Q04VH`cbJW>3F8-_&hfKwj$sVhO(GqMDm) zAD66e4b~7{TEsg2=Fn;%>=mrkvRf5aZ^iA zV-XtfS7R<}{&X*k+4~{6k+-q(ZOzo@!c5;_6vL$|#>cF~M4P_9MpY9C2KJ$EHE&9# z2ZqcUD#kvrf2Gnb{ff~dD5l%hsEL}(iD^&Rs}*bS$OvDUP&?buZTI9MITFsqbk@t4 z1?0J`nHzucx-hxY>)koxi}Ckk3ZExsqI~yv-s1)mVA=Y~OFX!hGjZ+RVAPj-0qS=w z&t6hrZ<{wt=J%qH{c3f~s(6>V^U_Et1(a6-BYEKv#COrFF8*}0_nb2Nf_iLtcpm_e zN_q)cTK^eenn*=swZd{#>*i7D;gHHDe~|0=nCoQ5-x6pUa%9}%es|h&48U2IR$aY) zeTEgF;%kB+pi^;4SSjj1U)_xdW;M1ys+}qi{wS~z^UB=3*(7<=8X(=u*4NitEx3mk z_X2X)OZ|E25BJcPu=V@VeG;;=gcMUZW3~3njLgGhcZc56@G=)v|6X2B1Qtjz?mQ>X zJ6qyS0JVww$AA9YCoj?6EVMQPpH#Tpun_X~jxD|ak>_HP z*5T`M(SC@IwS93MH1smjB}aeR(Li&Ads<&-^(JzAmM>m+E>g!jq?v zN0+WmHJ@JCp_3s>5^gKq;hRD4kwVc}+%-)e9&K0AXuh$bSJ#j{Xi=SOx{m#fH_1;N zu(r(YHssjViw7sgH}I25qK>CxB*zjpbomB850z?ezv8IojIVwcC&nEo!g-g{DTUeX z3$xP~MyC`ervxUK1O^8xW`}z_2)D)Q`T*aT3P3XsxIoY{c64Y(9I zmA#N0=Q$WxLvTkTV{9nd+6G&%Ix~#}Mc*q}169NEGxU#mTe)8~49iBkbz?qplBqT_ zJwxz?wZVf!{k9ZkWUl7Iy1{@?p`A${(j*%{{e}}>rs|xs)0hV>SH%SlPIOWod#nA7 zRhvm4ZjhJwEuq&t;LK1A>2|ml(JnFn)nb=Fs2%wmM>RyF%_4Vnww9dss&*Eb;0<{aU`3( z2dHX*r3Dl;r9sLF5@3KFU^?!Oj>ah}w#xv&d}VbNnBGV{xlL{d$UR;G!yU&ro3#k< z9)JJ#?Jp9KjmdQfrkt( z+aLeGJWS! z%RE%4Xok}xpMo|i1g-V|qIMcb8fl zN=1Ig{`e%#ZjxNL+Uq3Jb94R4qFNbWYU#krx-d!Xy37kY5L{h6Z&;(SnOYq#8?iE& z16~@Q;aDrX7S;U0R<^IojIL&6w{$=#IJHx0JgBar5LnA@DL>_&wn(=k85M|dD>Gc) zNdk*UH;FD{E1v}48aHbnfqz@~3KB6k-}t2Uuv%AbTSuqiq2tW{Prg8>0-pL8Uq|?~ zTpn_W#Kei-i5I;U|G?>!n$J%)pAt1_iJDi5F1 z{#dFv?w89M^y}e$X11TI4@~o-OSSKBTGWaZsw9j&)xzE{@QXn=u&v7`lvp_OX=b7H zXuN&wNi=9wO7x-j%@b2Ba5uxV#*qV`86K2~q{|VR36!wHnPP5DZz_Z*qC(*ZGb% zH{WY!Dsq4XJGAlj4UuyBEusB^DfxX4_qVuhnoZj=No`?LnrA-4Yr0($D2`zZ(Dv+C zbfQmONKs&3zNI9>Gfn2A@cFZvnE4?Ei2v}fU&=IgL8PnkF92O?;XTz=MBtmyP za=%{~b>2ceA*T4oUjWV=*8>i%3_MtAZB=Z(P#(#8Y8RC@p_wigLIAb|wPI%iS2F=f zYzud=3iLkfMMLk-S_f59Yu$PoiHM>-C=EGTt9>$VM1`Zd|^IrA9ip|i2^f_qg zo%VCeRBT5KO}VA5)PIcWO?qY;k;8!Rlh2iT)e+*0F~#4WH#!7JV^1T}oT;^?u9>|>ft8Vuo#-BXuZjOFQUbWl|N5YEnZy2V&e%-rgRAQL1d}WxXovB5iE((;U@l zeHO#WUxCp(&**E-8J_xDjTlI|$O=113OmTjKJWG^n$znSe&`vi#9;Ge>Ynb^C)9gF z?7H{67<8X>y=-cl7wRld=X>_&NLrNWA3poZFf>CU+P3J8uWtp5K~Z1Bq}|~ao2@r% zDl67y^=bB!qOT=oA(FBh8~s1>AroGH6JBoZL7^k+C5fq>+sW7Lt3R08(dT8^)tBoF zjv_ML3^o0~Bcw)=(fo3@#jScR7Z(d-W zQsQ^?g=;8oIJ^{ssFz@Z}m+@Na1`3W@=)r(J zJj8FYGZwJ6F`#HqNJxldmJhu+4_x>GSVQ#&2U(jLU+wqr&z?M)zmz%wGq5kIy4G@4 zRaN}v4I@)i+z+D1dXhS0(d#bG&fGja8X(ZqsLN94Ug`k+;;`UyJR^{{J@eH0;14X@ zOG`}jo^Oo=hWq^ftq`kRC8t8JaBoPQDSmunB4A^LbAfBJ!I#@p`~FiFEz(7gQ$n*g_p@Zeg3a%A+@x3-jS65y>K6bn0G^+(?P|15e zt|MSfkq8}coXCHPT~~-CzvatrMU#Itg2D`awOv?H@73kzC?P^^^J&C9Z>`tqY2eT_=_a+Fy^9$n0@zkO&9@Bs`T1 z!)gahQ4I!F=LTo!FfKKM?``@Q={^P`4z8zw+QxddP08nm9{bgHHr&B*zBdnW*{c zxBZsO8vH1jx11R1Gl=f#FL>a9V%QFn%Rb0t7`qUDiaDx`(a=r(BW%69*`zSeAVROG z_$=!6kmjeui`TT_IrqY&tQKy4pS^kI${0Nd7sq8~zwu>S(E9M&;l>LVT87_`_wREgaOZFddT6TVMnV%Nxut#WxKb)m$C70eB$mYCOnt0BbUuh#cx#fp;j4HM69u>ekQ8r5Dl~M1#jOfy=u&r9O9CKYBGJU;!O30d5hMSBg-wsw7EU?V=|K! zgCl<#$hk?1+ewQqbTfM~GJ7oTZy7Tu)irOA{8aF0rzgbtT^w*7AQ{-c_D2sdjFK@s0kZ{+0pG}G}Zn>ss zr_Oub+<_7F=z3KCo><;t%gcF}9_y|Cf`TM+nwnncKsy9f$AuydkzM!-ay9NbZCnC^ zS!TnGjgt766jpYZJTc|*=hI7Gt9Zj1!P(*B2^Hz=9~14%3vucNhmF;ArYzMK^H*vdwGC3gE!UNr;)HL% zI-R0IYeMSFqCwY8dp_(fy%9?<&JlQ6NTx4jo~|LzF6_doVaU}7vI6T$P*Rm8w+ib7 zvMWB4v0+Djo+(E${(;jD!x_eC;x@psj|M-{tK&MoueAlfoe%%xq5ZvuRm9+9i71O9 zFQ-h8t} zd>ij%Lnn2JJPcN3C)U^Oao-BJ?iz`KRztyhvnE#y>7EoiWf!PRXg~2t-eX+tDzSgB zSwKP#XdthZNx@5H26dKxjKEwdlU)lcUA2u1FX5nUAq~BTCz)laZ<|$XXEKN`d;dBUu{j^|C=CH;Mvx8k9(mO2oNjtR3VkW}` zD(%=DEjoG(N#ojzEdfsTA7l?c3N!I$*LyuIMYlFO1&HXb!={h0;+Qk5p26}v{0-p+x_RaIdd4Zg* zpB5S?bgI$&3#~R?KnX*!4OKspwuE*G)G?eMLpecU(8K0JN;=FIex>oI`Saz6}Z3jLy@X;YXK`)h|!0Kc1m~Lf!sYNCAoDkE{)Gnth;m zXwC=9?0AJhLmZnElH9a)3LaO0zD^Wt=D`xzSAYN*>zG|x^5|blPKVgikE1}I5IIxJ zcG0YLaZB1t{kZy#8(DUHkVc=c?68H8?8etDQEBCY-MXEA8C%t?;)VW6(X%{ElWA=i zb4jyAH7o(%p2eZF#t+$@?WZSvd-Zd*gr&+rS8ZJICPMJ&-K3m7{4TD|A#J+6jP>mI zs|*eO_sWsxT2?d%mElX&K+}Y9_30_|+)zn2uHcJc^O*PLeR#u9@$Z%SzwX8l@!Tg_dAq~CR%zFOg%!geA?HibG|FC^b@ zra9fACTq(0{jbOsc8_4otM&6x`V(;EI%FY4n6ub_c98-{GygdJ z$^DFp91pVJg0vjmdad^vo(L2F4(Z7Uh}^oTE(aiizoa0bgg}5?`e@bMS@vHaaJqlx z{|O3r7>Maph=9XcPCx|k@f+zUMS%y(e*~hUJb2zM{w77z{=P1OeBKms4<1<&sRXfO zs?qxAVO(I@q^UThcPD|VL1fp!;si7jx2hAIrIsxZmpk>U*tjMTw&XPZ;9}{BzMM_r^(c)ffbHJ%8Z(SJ_5tMSo(NAf?RxZt)@`(6 z{yJ$s`e=wnG>QxuLK~%l`0|Px@bqV7f|?aJm+Jd53o@OdW#@W%=U(fyDp~_Y7@6}w zZ3znE1?YY~DbCwZq9kMQp*5^voG!wV&e^*qg0^1$^%{g*4J#6w$)Lp5p(PI5eZ`te z$g5z_X}zbOHQ%9`Qeov*Z>??*`^JQ9bTHwd1>JKp8`2y=_DKsg-muslVci(yqr13MFgm$2<%Qf(t75 zX(L+K0FhrB`3AdP7g?4?MSgg(%+MgXh-uc_?L*U4uyug$;M&1@E-EihE>Y&3CGtR7 zc`ij}g(R}cJU>^Zn016&Q*J;<>TlT+SgiM)aRbM9{#+CE z$HVg%v}Vp^*j=)%Dr3duqhyL=4FD1M+N62WA~YH}BbvUrX8&<@Bnzf%`_k!ys4#Qn zv8QWO%wAU;IvR2Ac$_>a0FCRmS$ht=HWjHF;uO)^-69TQ_#yjpyP^0G96*~Bb}!kA z1*nM84pH$+O?mX38bG3w@w)=DUjic>ms|}#e)BZ!SE$`Duk1O%;rm$qF%om(Viq>M zT~htPKB5(!_tixkTw7%Kbs0^bP`DwulYjL@5<&2ZUw@e{R-s(8J$;(8kUbvfZQ1`? zHnlTID*DLf_Q}oOU&XMtouybeeg=7yUQ`KH%1`z53A(aBJiPPKBSQ=i9dG&V(b&s3iR zPwT0BpfLG6p&a!V9$C()xHCs}d+2PzXpT6_F1?6~s}b~kBH}I|Ir)5U zJqdEpxx@PI-h++ijE0jy@O?!p8;v3AC1m-k)KjggWr^UB2~>&xXmw?geMb+nJkCGF z^ZPb>CKfF|)?}I^fA`(>sRa z;#cTjD5QP7xgO_ZG&I?G;jlOzo1B=sh2K1kZ3zn|lp{*Q92OehTbLgFbuPxzw=7@< z`>+i4TV-Fku}l^F*`91Iu%CPDwf^U>V;9=+RPgzJdtIypg zE-&R2^*C!Gk;hA$`5cy(mZNZA{lxLiZaW>v<-FmKYR=s3WwN23?6!%)M-TX;KfFv# zuqn@kw;o_Njj%!bCW3+H%aNRBYwE!76$ki+bU0&5`c_Vz^9eAcuZ?5P7ABImGtuH> zhRw|tL6ZpG9alNRMam>a&Dg+%-wHaD9CR#NE;C}{^V4QvFH1DJ*;%XeW3dgl)?tYG zkhFi;RR6a9tdXfGcJnDe6uAl(uDv)OIBE$fJ+*`}!5ITP6JbG+7-&iKyy{)9ID}B`|`fd1-oKT$3%k;eF*7uj0S(!RyoR zmbO&o`z7CT9=RlPi>uH7;$x4bKGo?qea38F; zgYhu1pXeY4y^llI1mdNsf!h%9!+9v%MT&-T<8oH-Fw)*vbEEI*^2 zh$;m8Wt@57*Nvx~@4#RKHE3b4LRiJo$YJRy2Kpmk9$lM}fjkP&2=@K%wLj@a>8j^; zxZ~w39~*o3AT|p$e>%wn2o(iE1=V$zgA-Hs{0i zl#MQ6QU!7wl>gTyA@$ybb}YiMMhNkg_07I^yigDF;sOlV%iuyCug3)@q&Kd_Ry&zjH!Y2be-(xo#x6J2>WHf%F`r-m`({HVshpgeFt zGiOfIn9w(FATNSkv$q+W7A`t0`$CVUt=K!hPw!4&u~+bPd`2#4TXqq|3=L`HpTnG= zmN15$x$MZd$ecTAFPqXk&CZ#~JNx(9lSt7dpYWEdmlUZbXWSYa%Li@h&iNV z{Yna5j6+JS^aE##o))As%Mp%#pDE$ftBj4tk_Kq-m5%4umTlo7M|X}hVJ+h64R3iS zQZ=_RBjllu-9qkQv1-FFxL~)+*xp#Y`HIpWb409#cG;9N3R30b>7uA}L}I`XTeZ8ehVq^R@(^ z4^LTIoS{9r-RNu2YW9?BV=cX>POE_*{`k|Q6U~X!nCNuoFz+eLf*l3|4(ZqzA6l`z z)X+x$exqSSYSA?$+KB6m1_!#{cxkwBI!_*lfeO_}FQ2WR-Wn7O`{zu)Ue4*5TtP^+ z109Xj<6(lRWSVVrB&*p{F3J5Pzz`c$F4nq_Vz!Wcbad;=U+U~jncEcs=sTD|CiiCh zKKg=n0R{=hW=-##_b51rJ{&W+)e6O}x)3=YL9DG1{ABoH1s<3>yRL!|BRd+VC)aZ> zWR2o1zj7|K=EegWSE;5(NO1O4h^ni|IGaK>DRsJ$~YzoKR#Qs|Q z00nsB@K;^z$tUBm@w8!S<n#8Q8F1xNY4(qZFI$M^854}+|G)MC_Awh zJF|wftah+O=Tu(s%+5g-yihyNz3vrO7qd~QlQDZ?f6KO}5b}dQI+`u_GwZN}Rs!#x zJ`-xJ^M$qhLHJDUfxlS)ROre9Z?(7BXg|hd1AR0q4AMeYRXPoeCofVnGD@EOI$+*D zLzAR42Ui__QByjJxAa5x%}tB0Y)W@Qy-(_vPc)5={^p5Nv{Ycn-QCY-8mF?(UymO! zr^FJ@|BQ5W*_Fr$hP4%r;y3&aY8Z-lN_IZ_vQbv}uw+J)z+R@&>kqGMl$|GPvJlhK zksLhz$KIj)k>7l1^TK_ERN01mwrse@8GG4lsci328<1Y7^^-H5ePD%K?E)v0On$jy zM$!8(KG~+?_N2V(fORQx@Fb}9TUc47hJ-}Knf&@=|8y}XJ1@!`k@X!dw{^vC6bfiO zv~%sA>(*SxE=R3HgoegxHn*^wYiq8~8*b8=NxvV+kj?0noa?bMHCb8uKG5DAg3ZcS zXz1Cod~-9df|EW>(v$Fla%@IC6mTA6v!Z3JwNCxq`Ti{p*o&TgiWcqt&00{Xbm?Km z$(X!o$Rga%{bIAr)bi8?{{bi6#WP9hO%3MY=M4^C{!Q^QzMoI_c)jyuy(ySyBGhYs z@GHOH82<#O^0ocud1h(7yk9l+%K#R7{F7%|_xttbAcdIY<;ptwftbo3Imw^K0j~AY zVq9&<1r}QE1b0|5j`@8dN;TT?P$at|$aifK4ii$^6Hk2vGc*q^U}16K+RX?80+0stZwu z-%j$4M*3tN{>NYo3%{K@+ml$+P$D-sQ;=^*TcQEMu6LtrmM7H7 zq(_*!1m9wuZgCEoN~>>V=b1b?8z-4F3x!M;?VrSO&+^ORLig4w#t!X+)V4oWR||uj z?MsXM?2gYGF!UR8(`f^+cro%ktji$ur>E+{eDyN>zaF7e*}WomgTz&$dSkW{r%G&MJGykzCBR zYk$@PZHZs2@H@fR?&fUV)2}HT-dkmOXRTVjoWTf{f|& z;J`HzhYz>IeWbeewFl0xlj*u<7CQ9FcT7qB_YO=$<$l+zQSSR@LT|?eFRxtfUEP|r ztfx7fk}LFaD@_jgtbU_D{b$d#H}1i!G7_pAh12q0Uhb%)umvlzLP(l=K6)J@wH8fM zD!VSc9Zg9t``&4?hS}XL_?zGQVB&!|6WkoSl$lS$!N*09$7O|u)NSG@{LXzRYwTyI z&nEJYoszd{-G@AsZxJGz6&P-qZ5rb0@F$TwO7l;}rzQEavPmc#3%X zd(hr)>+GOpCM>ghwcfaqDCRvrXSW>`I)-gQ%^tL>1Yh9xW@+RxC*|Nii?b4!_Ep=b zt5{}9cjEUz66FDu?cq5gB7v~_J6pqw*-QE$1l@8VKA^m;OcW6dig6V=*}F;7#Uqgv z(!adGFOP>F7}KidZkTMc=6kJL z15qE5pMJHz$G#`*HhVromi;{s)x61v&Rsk)^G{n|8UC^4(adWL;93JkR%|ij0#|hA zF&!Lj=PGD|je%PZFfJAuej((Hz2l`j6xksE>xb{0ch^%MVpHum!OPUM^!fkl6Qf%s zPI8e-jR^|uut8Q`n4VDLAcv}5D}+4}WTjB<6B_%&M~bO4ShxbK(ZrFsHIQcm6S#jI zCIRcuTd9D%|DK(*?XixTDiP27&3me?k*SuoZ)`&v zGtqu)l6m={t-?7>re-Ow!WkPJIDq0PAr36@f|1n+{LD$sr}JO-ytxs4Wm)x2exYiF zeco95W6>SiS%bias>15pMvfF!JO1rxfe(>DeY)0nV{f`iu0GTe38u>c(Nc{i_20b} ztuc{)t5FCRCxCtg2^xkW&sh>9uRdd3aYhvCh5Etuu=v)u{Fo@gB9ss&%17<^y zy)?SOZ7%6*!>?R%yZQg+6zXn;NmYp)O9=JuWmEf$M``CAVToc75f5MxnZ%Fw!_iQc zXZoie4L^K9NF3!-j67kpl59GIw@FYu@Tf#td#pE%TGIsktxOS`5 zWjg4zzd^PjrbeHCE?}X!x=Y@~Z|R8t?k7Tt%V7atIkf4-k{KInwNggJzwWBqaSJ=! zc5Ml>+1#<1+uw{%4->RPUtbiTJ=u>6?ks6>9yya%E^7>FpOjW9Y1quq_m4O7Lv@=G zS7)`kvGkd6>9yq?eAh!+0p#gh!%E|WzwZ*Dm0=};k5dz>jHUAe^OwF})~Zq4V4K`F z?_A0;ISH%n7v(8(r%u>-68?*#)*~+B2?6uT@}SDI1DM_ z#RV7eNC|9j<_a6?ht?dAENI#rY&mevj5lnnsuVI5 zUO{`0>7)4M_Gb4Nbz5Zid(R_sNqjJfZn zYAs#e8ZPTaN0-AWH<1Kl{fuDHKqgS+O4hKRNU#U{ns|4yop2DHh|+f+>3WT?iTcO( zBTmciclgIY>m3bME2p(h&_vRvufWw2esgYouidpo(ULVuj)AghD+%t00)B**?_Ic#hB9wUNm3IkY@ zHQ3RGkk4BG;Mkf6ch)lSEptMTGr9L5XT^#UB=O#D{ohvkL{qMk8E*RfD;Zt%APRXO z9!XyLizxWF())Gu_A-3;oXD{xz@Mz%vABl>5>6}@Q1%L!W_Hmv9*_HO7p_kjk0NnK zeGM;Si%+s}PWbgedaY1Bv%QPTeQ|2$P}kYFg7B2)!}(bn#LmSOzVSlJbrn8`+1vVA zib6K7!(0%qXN%J5fJCzM5;<*8rw=8roOR6^5hq5bg{10}eGqOE>9H-ahIMgwmqA%A z%<1O1(#st1vDe|+h-SRjOh#}HF zV2U1|ab+Vh@n>+C(K8SGiP#HpJ?M$5LGzlEGd7pb?3Ec+io@axymeb{TFnnyshBvDO|C<;c{x3PM`}G{Rx^Mw@^R3Y1`l8xyT`@a5JD4?_ zk~P~|mL<$6TkSeCI$+L0C)K+-Ns;9=;9~D!<99-`;CNFm-_9c zOh%@I`6rV4&NW57#WT)a%#S#ni|uF(2aSBU2+JySxRu>>OQwv50OFF8Z6bAwX21P# zD08=HF~s~hukr~A9$9^Cvo821eJ1R@E9^YXa0S>o9+op}{BOOX zn7!l;y8ugN^69;)q_Co;XfwLk31AP&acnvjMl55L@xGnbt|1jEv&haYqY(cs4a24~ zZtW?U%nYn#T_bZtBXf(iXj1qguR`F9jaRNvOJCIB$2eXUld&ClATg>9vLD#r9__2i zG;1hzTCYj$tAU#!o9%FM=sy2ZzB%J`{EL?mT8I)~HMd`u<^?QfuFA`PyVu;exDpd$ z=PTENr>jY-O&axKl0t{%RTMPUm*?UUqN-F|_WoBU- zJ_QNQ>kuB*j&L7K+T$n~Qh@S~@SZ?oKSbv`$UCzZVQBYf*!+6=6_2bIjiR_8=LfUl zoemUXZP+qM@7m?3a^*^GQeWyN%wwz|^$?*8JGVLB@!^80+p&4+UT1sIycYoGnSB`J z-?_jTf?=IJaExIy!6%f46sF96E0mu3lPrbKl9-_@cH5BDp3~Q!vIs5O-t9?=&>tZ2 za_p63DshqxsN8<-i~p^=UEj4e$6>1UGU~-${o13|aFFh3;Etr(Oz5c|pNf-IrDRaU z!OM`7^^{rR?U19)icV~RF1RvZJh@q{rb{Pt4`L{T$y7arl;=kWSPC(LIu-#3#t62f zWTmvaMkCr_Pi2mi)1_xEX+81( zn-Noo<_4FIrvb^=XJa z?l5XS>+y$t?}0w=gLA5cL5qY4f#kb7_570HdwC>$TQB5Gu8?^vnM$+p5YIRADYY2` z_G$*1WkQ#HY*>nb`O}v#x6gNabRWcUGQJ-+mBn8;%tCuqy6zypYzzK}1cjpcT$qSHK=P zb&g*x^+l5b@0Q`ra-Jg6q-4#*ne{8EIYh?C*Hix<_ZPXJn*|)C|7I}QIs07rvqJIU z(t{hTwtwUNuoveV_a)uQg>Bkr8Kq#}ZmNwZ_6CZrmDE{<;1Pe4(CNd~=!OM#HX+ zJ;!r;kryT#F80IIa#sx3Q~3=5#2w@L!~PkCAIR80d+V@@D4lip6WzaW?cq!(quI`e zmnZNq+wI;;PzZWlC?M<5TxJ%o;H|TyQ&*Z9!l|0C6YX>S0%z;l>hbLuEssc#7j+|2#2CJd9b00OzQ(*O}ZTskhXCr@p`mv zrCP^<8f3UfLn`?epH{;UvWfbsnfbqJq2cEnR)vb;8vExQh+(vXj* zqn=1~z7)z3Xmop>OFTLqN;w|6=R))E!Dz2V2BDVm@~KI8(a{2rC>9AltPkp0tJLgt zFnL12q(FOjS9to}wR6sQgMOd>Nl3oi3gRHUlSl;4)%cEP*=vUxsz&w?J5~)2l6ZAh z9TE;?-;jj*eTY?7_Q1IvnHm;T1a zL2Hkd-KqX}9--^rc(Xua0TDNyBNFYy?k5JwQLiT+F0HO}@{Iak5Z0z!!Zn^mhQ1Oj z)O%tTHf+`4VJOoiaHTffy|E!P{T^@2Z6ho4cJH2MetDJ2z|7pojEAekcSN%YZf~qg z3wia8DVfis8XQ+rSop<0>W%v*ar*n)8-LFNeUD+w^i%Hxa>;pn zfIMD4;9Qj}B$sc9TdbP68=XtzvIksvy31uLfEd%@L6-ah>ZDGAVZ~W8@)|g7P-`)f z398ZKz&3D8noG`V@2xd~aM@ zp{B02I2rhtDRt%kS~=OnAZ}gH5aJb znU~lwURs~pvz#cf74O%oTdl7j6Z+6M<^ylF-GNJ{>(N3I``I$X`Y*iy7{+{oM>(-Y=YNj2KD{~R*?lHEt( z!>aZWdQPyfiUy#n7S!YLvs*Z;)q!z0c`o}Uv3M%0Lysv3=0!K!dLHo%9v&&>mNg;+ zbzKAN+tz!Y={_T#AcIG;s68I^$Mv1-HSnR#jr)uRC_g?xzKY7>av-S~KvI)@N_+c8 z&Esd}dEJ7km@Ptn!8q4Pq2?ez>V9Tc)9aqm^_azp;m8v6MWDVB_`OWPX;kxw9g#)k z6EB(z$5Z2@*0|5r_*-H+7Xbn(vX|Dg<+1KoFcIeU#M?G8F)RNESLUlr8En1N8?vlH z1|+h6M+QINYrngKq-}&B zXpLWt%yMsRKJwWRp2I?^4zho8pH4qk=D-g3d!#uNfL#!-+nY-(y={nsIj@v!RLi1* zdR~B9kcU(>&yrNeJ0%)5-2KVbOLA}clm6Tz{=eTPPco}zV|C*(VB+k=eV_EyD5S^* z7!PqZ72&ete!-bP^t{vKWBko7q1Aden4d`c!Q{=@KSU4I8Ff7FIV48p)K>$w()3}C zRVgL8ERGaagkNHl1+^%35fCv;SntKTgT5ZDzm`hVb}##z^9HwO7boyVmw$dSRgU0` zDkU}e&QbcR@r2S?d(mViCAk8j?v*iMYcfsutd5tc7$;w~tg4g+DVzoEI2PUZU6QK5 zJm2bbR)-&)DF{3~_gi!yFTe_QZTgc|oFin3nXXD|T-tH8Y@%{MJIiQ#&+k}Be|N)Q zV|H!U8gB9{XyW=035g`tni`sjdg#O71++2%y6C(dHdeGS+xk;`8z+SYPgc#fzgx@~ z4Vqu#-A&Kvc{v_EVdr)1a0O5u@7`YRSEAo}0~CL-?ONz|ILK8&OH5cL%)ip^cy;Wa zERZCnb227*+yC&U1Ao~UTzskR7=ySGy{aa4j6ZjxRZvlP<5Qd_21N1#Bn<8K#;3Q7 zAssSJ3?phpWO=h*JphvfZXm(~bXsJxP*X)I_1MrKsIIu92*7m}unBM}>I6ZgN zUqXIV0m#vAXG($FPIIqxf4X{^4RB9D;uwJelmtes(ZEN8oCxtThJuhns+I3E8!* zaGh|f(0X-Fn0-zu+x8;n?R2cCfG5+P&)p^%9$JLimIJ20ZK;;DX0AS{S&bmJ_+tN~ z$T}RVa(hPJTUw*6f%EwDz^?&IFmrf^Zw~m`UAOX={esu(j%(cU%dxzm{BY>SErWRX z@!9gjeY?`FXRzB8$2-&Ewzs{O1nPyVo*rin*z|E0D@ojx-8M8k?`&c1!~2f9uX)-S zX=eq};s5hO|FkcCEts3bb6qsLT-$GYBAW$(@gH3Xv{gTQ{qw4giJr!K9y_vMb&lW+ z_jdJ2i)}{=B~*e$o=0@YFo?dyw#Iik#2t_iZ{8;=P`O?JZL0%uIpDj4L6-{vYMq7M znUA3|<l%RS&8QC;-GS zcx*Qq`oT~}aGMk7wrz4TZDpdnkB^rN?6Ph!1|hj^unKf|B+P#-wnmsp9+Or`A(yOw z+f*&r+v`qKyg8RLcePt0#t{O2a0|m`94;$yt+ls_s=mrsrzzgiToeRV&}~QFQN8HX=!f95k)UpJfk}2i%)IrK zza8^a;4a??zNOuq%dsREaGt)O3b;HSuhh-3eVh$*fih?Shc{W_y-t_j2C< zG!0ML{-Qs=KcoavVM|1B%Ne4+9Zd|9X_`$_e59#GRBRdwUAtYlNYr+GB*^X9WKAaN zARhQk<^oWo=6QVEjarWiJo>~n7IJO0B4L~+Y zJs^7-ZXxd-FG^wr=h#wQOHB6J<)6dqi|cqsmIoJ6#(|zL{BKAB3CTtw zmZ$0I@rEo9mU5N2C*AD=m*_@EiRVrxSBH7PUZ-orgGml!#<#FSvJwVj6=^Jp_kd9j z1d#vzdB@9>7$vz@@B`XD0^d_E`IdW-s@0Sx+QEmaTm#8nU5fs?V_kP5hPR9tWF43R zE3*)F9}Bn>6}(mZ3#ap7KH>I(AIySe4!<@!~ zUWPzF-OjVL*iZbna8et71&I0W)!WD3V1X@a4~O<3b5l6%fU4JB|MghcEdr1bVdv2o z+R|6X+X>K|@Y_B}aL>@2l=Hkk5WU%|+=1}zbJ+F2LN(t64l{k@ICgzU7l{3hLW`QO z$FhK>ljD4M`6qmyR$;jqu5{H92Xel-Qax9YJ9u?F+_!1RYKVI@IE&3J#4YA_P2OHK zi-irX8$)1Wr;J9R>4k~8 zInH+mWOX^GOb?Zi>*@FPWOk}C@rJv5fScDnP90BZ`#^^44RQx})`AV+k=W&LEJ9)~ zuovfw7>Rg;@$EFt&eP>pJD-n-R=!u}IN#}>ODn+KTn>%%*%%5>W<1!!N?TyK?XvVW z!RkE>aP9q%ht^~V#TxF6)aHwq_U{x@VfHXZ=55d04I(uLs0vmitO;eqL8ND4x5EIT zC#aTIK993l!<`Y>d_nXjR*^r%jqUEO|Nqbb;}94$J=jjt(S%O-az6t?PAWg5tjtU- zgWahAm8O9rBwqsZ^Nc+k^v-$nE2$U{cDKxTwoSLTiGYv;-1K07;GqWAL;=`&n0Kh@ ztmTX6_4Ue8PJr@1aPxlp_(4ncwEYh&;9Jt;G|!&dDP-4_x$hS6vAvIvkjzS>{PZuO z0v9LALSmE@-+I+4i;1n(W~3I{56^@GuN|F1S>(b?{zU}uN0KiGEKnnb>C|rPv9E!F znu{K_dINs48{ldOr7>TYf8J{j9hqAwu^NJR9}N9@>4MAIp#j=c&-Zpm``SR8A3crI z?%$bDDwuhD=Lk`eS@HIR!uH(pi{I<`~#voKbv{8zG)li)IF66i;KhLB_-h}ICy;uGR%YyO z*7Zp*s@49P=J?9ZeY*M3wxDRaw+}@AkTU-Gsx=2q_g|oybJLC-%W6qq@8jR#!z~1q z&pNW^6&ji2>a5&{liIT5)Xg&2g_j#DeQqsm3 zgg?L&yF#y4d~wq$18%p|Gv+!R1>Txyfi4_7>R8M<))$r7kXIFDHt_zC%o+h$ zCgzp@)-e|rg&z6qov*Sj%p{u zcB%TDb`fT?jjc;|z)%&20pW@K6lWi?|5=^Q*_UeA=-6-tL~KCh1QKs)=wDZr*ih0a zmd3gr-wp7sJ*_|~0Ucu6c6V)d@pRI?RDS?~npE`v3QU1x&hc{}S+B>(hLxO-9hSXz zS_kTgt!A`FqcryN3+t-riNawI|A5{h*Lny0^UG@qSIf4wj(jZ9_cHeJ$AGo@(jxP- zgL7$BO>sk3S!4a#+Cpc##?E6(_waU^|1Y0#Tg?@TVgIL#%}<-hFanCbp*ShoBI4B*XtNiB1URG7l} zZ^4gn0J~{_YB9u^`u$#$WVHdc*#E25FMuG74;q@%>L-37nl|ee4(dJ(_Vm2l&4_(6 zDg$C5iu)Rfg2nSK?ODqGXXuQWj4wldQe$*6+fEnU*{~b1IYk$QPN?;0q8RArk{t_~ zsaJQ+V<1fA-ts7~dR#drKL;pJwmH(*%l`qchJ{{cg`msuaQVind{lrWYA!yo%@v9U*953SRa zZ%Fv8a#p@WYJwgnnsrJxoI+EEuiw}cRFlhq=nq+hVD(@5`cRh!_1{@oNJxh&8)gNq zpvUQ!N2O;*_P9=_<|koS8!+1@0aPCm>fbtw!OK()ZOF@1|Iii^(!vvumYSd%hOP_= zPCdO@+C(KiPaMagAaY`}I%jR^p$*7kAMDV8Opw z_3+_p1y`KZqiaH0FIXP#jySnF4Q^0`UeB|m12^-*(>@>Gc}Ldwm-#`jb$)~Pl1UR2 zZDiaX^_3$eL@N#@;~HnvvUXc~ksDAJ0x*>dt=v__B$B-Q+s+*Q;Lw6IKx` zFww_9U?r{+$So=Q27>#itW_35cG?ekOEl&{=2Axz79;^fF* z_`CwK-Iz3&EHHGCl>iO#IMtU|zyH*cN!V5TMOtKt*A&r&lgEp_GDQp~NjNpF-wB9~ z!B9go)!K_+`SD}2b>!9-tpUI!7h_VEM_K!?cAW50i85E4=# zam&?G$RaPlfNruwzWDnmG4%t@)%3K<#>%icuXFv8Wia=?TEXFo)hK+RI>YjE?Lq5T zDX5qz#^u<@7cVp^OgLHb)S%9*+6LBGtfur^HuBE!-02wES$m^d@#r-$s#zES5HF+a56{u1o!$G8uF30^({()zuMBL ztst^GtUC3*$Q-+E4KX(?C+QvB2Xp%PwoPpRW7|cMNAQ1D9}=}uKZ5-L7q!y^zw%v` zU3+(VFh*SC4ot$-Q>DpjV9rn4EgK{MFtVDESZb`D7gDBf*_Cb4LVJ^KN)^{(q&ZTw z5fZguuc>_IsU}?)(c{Q4mTuIQVcgHlM|_F~@jY6&b7g_WCE;aO>bPYam&~eQlt^1u z>Z_F7`*_32oag#BH^iEZYz(b<}dd*YYf z)2Vm93xxnIV=P7k(GRgL|FJj+3M*%1lyKpV&> zEyL5cqt%HA@|EOh`Op10Lyiw-KUjBV*Uy$yZ569RjA_-VxmpI6)kWfMf;K001lTm6 z6cl`aq=AF|Lo|?#H@&2OGYe_mbNSpXRu;mF9Wv3tlLhZ_qExg8+gOILs9|WB_;YgP8ge zpDMh6nT$%bb8#K9smpo*$DO#+cZ+_$G9bns3VB0F{g-wE1^gW&uo15$I*F|nspO`^ zb1io5CIr~I`S~a=1oQy;asOuE!C%r&YhRlyw`?77W?&E(_a||V(>@n;44LK5_g1DCGLT7{NHHPG4-V>GV7VCN^g2TA-(F{kr_= zt2+Vxxm2^+J^!bz^l} z*w1&>oeb>Uh`xjV%=tBp`hQiKe;_6D;0O&l(tZ@m&NRU2l9FP8J3l>|cp|)vqHw`@+(gBj+vcX9<}&?JO+=lClri#;XmHe?k7M_L@@EARELN5=a6a5Zp^6AynE95^UX!73;f6J{Q-SNwR%lqwJ-I3Ppmdxc^p)4{8 z<7jZU-bczs8FNeI{?SsEWww1l9s_@zyW8^xfxE~w5)ygvS=G&Ph|F=)1k9DAx#r6O zSDh$v>3&HNaOGe1B9^ZR^`lK|W^}~u3LoLUK>>@iG#Cw9VmytMgHo)Yc4d@b*aT@D z_1F$g)i0|T+&{%*--`)5$tGP_lGm$pl@u@|O{BmbL|bjBx*Y~EB`%C_qQQQsSWf;@ zBm{~TxFlL_L_^(&?HNN)i6pKXW)C`@ z2$_%d5mpykEotsdyy_N+{kk4|^9kiMQ4=S3eL+^T5}#i8<#6oS%KF&6 zk{Z3$)Q~a6F_m@IZ#_;oZO^)o#%fSv2NJ7C?gt+?BPjkOY{VX1XJl&)Rd?q>y`#=Q zj5e}V8<-qdsHYOT7c-#6V&>Dk9dcCttYLk=JbzKMpugZ5jE0Y` zp}u7)#1v`Ei3vvrR>gGDG?4oS^eg&HbwSg#(DAtctO<%9==40j!({F)A-7|f)5-!? z1&hgC)OTnVE`er&CHt!YeIEV@26cYt_Z31jtdtF$rOFFI8Vn_728jD^cEn=XkX``p)*SHTapULV{m$D^%IGI4)l zy$`-h%{Mh}-+1@@H;OeaV;elqo0dL~TvU2}HlE5S$+$+y6*a+}Fryf9yE3mk4KX>rhQ zR)SPE;o>7<)A3OP?Hh|v`=N~Y2+&ahdq;3IJ&V20Ypm9bw9Dd$Eo5rf4=nsBAvyd4 zc1LF3I9+c4Xg|R{LMApLvz8HVr-PrMN52|Kd#HTvFBQ3usCrxxQY;_41Ysw(8v}{i zQYFbURtI&aDnkpFVbhyt`B*Yfc$>St=4}gHhQ?>AcU!m2R)A(bDmZ&xgUQFFPJ$RU zn&|IPUJBMIl7b&LJ;V;^JMOE>@SN1->%ml}H;H^kG;ysvI!EP${bBmFRE7(I>rrgu za=%55?flK)Bne3u4|PIiFqm_P&j&iBxGpl6lOJp1x}hrl_^pu>$s~cOiZ2fQe(!X5 z(JE8dwzvaiwzrSUcu@#JkkF1h;pnBaeE~-iK{Oa#O;)Cg$Ct6c_Y=gvB>8I{sgj?Z zoRr;5);IfUw661{U`~dw1}C{Rm%&y7n-hc~eJVTw!ixE9@yShiHnMir)e;xu+Q4qJ zsX8ii5MLX5Ok&Q-x`p6@on!E=l2njn?>h~IyuUUcjvGSYK|Z~=@miod1q3NG{)ZBc zdE*ravY$ID#X&MvhvPI^a*Ge*OsPqJ2B6;sQjs2s78O@{w;tWSN!D4kWc~QMbvc=&Vn&UCOg#fUab^S_ZtG`!(=Q$qze{YUL9|1`E$?cZ z+n{gb2KPKXz8P$p3jYvkwjgYC<=-hUy~6eH(t686d*-)z~XT@HrowS zII({0mTs^#n;@VOrfE*`omuNpNJaF_DGu%J@PfY%>!PTrCjBXEA7Q-F4NVHGN&jO6v^CJYA#OZAh4K=5A=R zkwbICI(J-82~WiZkH%e*UcHEGee)STImD9%da&`Ua_Rf;F}+xG%nGD7S}#fdQNX&<|o~My~4| zH4TOtUNt=nBI}*BurfuXi*E2x6ieu{c6qb-os+VvusO4@N7Yin`duX}P;IACB+&VC z@-|PWL@aO7s=NKp%<=Z@gPAG9h8DjpW?q3nY+ZQz`78@p*(|v}a zMz|)E#b&vm`LKs;quyc#8ap|e%=u1mw6wY98G4k7gx<${yH*1DH_j@`S0jf*fFO0A z*$i%i7ccD}s2oW2An{x9*O60PX5wne2p~70eM`G}zVJ+el!HYk&6R1rrcy_Gyz|F1 za$ihOF>$}YPGPn2rV;-lIq$FG%(b#|@O@$Ht&MoMy+uoP?UkJTo)&_1+wQL4wd z4OGhaw|)<9(CCyWT$bGI!uO@OZYE1f3}aN4RQN7}YjCZPxBD(-t+2@RJN)V%ucTRF zkYn;yZ0f6>mZp!TjV*izEJ=@9r|tX+{5th8uQ3l2PnPo=0dzEH=3E3mCN-YCGqd_v zqX+0RPE4$PbKiGGSnIy5M#a)6l=;+%2&#KuL6CvyLZh@=Yq5lR1x7LqOz!2GzkC5W zO0LOn}@Y41ujiKc=b zmwBL1S(lU3vaGl^_jh}#PRtr#srY#9FLkEvjHdk#1T+}ikP7UZMgw>Hi)EJ}I?8~L zIc3!J$d6@q1L!#XOg6z;YfaJLtC;dN4^G?d92|~uW4M{&ZdqUa`rDb2&);04;mi+4 zu)yOSW6Dp)26D(;p2B-#b5+7&gy;7w}Vp+xn#lOKzkCK(#0+lE7O}SrTr!$9pUeqqxMn@?YZ&PpQ zSc)4J`-_%gsyeZEF|5`Ryor%tQwe7l)o-b|qn52+SjDsb z;)^0Cz!Qd8#+ccG~4_sBGx6#1;bT&v|EAY%vkof!xMsfvPp+>E^GN zU3z|;nzNH@9UP`G9P~2s@&~Y_c52K3ri$S9YP$>Gx5h>rfs#$#-LALLrS>yG2Y0xc zd$L_8=Uy2fa7(ziXFlWbv(8-0)-09)>2zJ_k!Jj?@NwsZjk0`XhR114etBr1h*Mv( zoP1!npVGlD#)<);_LfMM2cy89?CU_xq}XO3yqI)$(AfZ(tHU`bWynp`r!hcmNtliT z9+hzPb|;96e=zG@tMR2voxC4Sj(ZMW(eF%-uxUZgbilg;3;!C#7(}p#Z)_%#+P`-@ zO;?VPep`jke;UHim-$U0{#{*36FspEtZZU6`5UJbPd1G;8%dZrOUlRlm@&sd=%I@I zf-*}xU!nX+tCxK-gY6}8gyqeNVQg|T&Lvm+M*iH4wK}KsBYEEC$LWL@&oUZE%dI(| zu5XI;=)Vo{>L*LUP4f&I_%EjV@@BlY5-BT8__F@HNxcL zNR{&fLt?cl-U%hty*6&D^>M(gSI4H%;hRgy9x{p_t?XiiMyO6wabTVg?@JgByDGvx zYqzVO%u8&C?e(9_cK`SDj;66Sr(~KLdfDe(l?V-VZ~>H|gqVgWtzZ5e5NBwZj0!Br zh`9tpe@TPE#w3Qk55jk%_6TSqjqne(q%tQzJt-5Q6IzHZ>8aV8_GWuY1z3b4V(nDe z{iqvRH)Z&Z45#aZxw<=k(!6F7E?iHtL#*&CNn>Tlv^%UFfH zdg1bW;A;c^d)22YKXEPq4DDc5o$SmKgKwx$p#C#I0QorD3fc@k9ZUrdTP#M$??zBy z{l}j718CQD?nrDpVp!+YurH{40;V=H$Ee8jN7%4w$a+kAZNwA>({J)hyEwWy;?A8u5h zJ{pvZ>l?~gDM zIPdtNrN4>vaRD!)c*G+j;}8vKzC87A-_(fE)3 zNPDRDRU@s_VY@;$o>Q2ba*n7b4v6u5+%*PF^u#RB*+Yi9IL;Ah@xl_wD`R_;r;P7I zjaj=%tc{y-XBLbT{)zh8y61!_V38kPiyPAe5QVbmJE-=R2hWD|lQA#^C{;!0BmG`5EUuW4kZ=-^x8VFeCsxu=CDmW$S!W1{}4yCuWz? zkK+%AAW`@iYb?FGZEJH5<&eLTQVSd9$8g(lnZt6r-K0}ps^I1|{f5ZStgOYuIMC0P z$3O`62_WSG5#k8g`fumWvO4>{d)DWpmBJjVe6Mn18g5K%I}5V_D~i8^7B(ume#2CO z#3B&Zx#+z2bSCVf)$VutRJGB|KQ8T=n@|t~V9KKwiWt;U6p8`P_4@|+i%ws?k*PVV zaj$)z+3_ z>lcNP()I<|!E9Nh314HR14+EmgM6gagK0nMxe!@s>P`Pu%hwO9DTb|ld&!{-4}g48 zXkHP`&19nmUn5~m$j0NFL)mQri=Gp9^_pYd_T3W3^l7|zbt6Fdil8WEFGj?=h4mfz zR((JNR;IK#T{fMu2Ya=cc2kbtSuEN2g{`3VltjU+Tme5~g4I?wyU3e4q2q;CG|6mp zN&Y$kZH<@I6DeC=UUMIc1k1i2idu0)*(3}@8hijBb+QkDK{Qoyd*49V6!|OX;@IvG z*&6!ijT0WVan((my6Rhz`8Zm1D!bo7KM%RQq~6^SLl{3OWg9Jh`*YZd_9%QvBW#gCkg_yr*fnrr_trWA{@R`m zwSw%*kn5iAJ?`!6ZkRI6H#hL;by;0c|T@^kNe3_+)np}oetukqWE~VQ4eGe99z=$ zPsxFt!ydr0@1zz#%g%h24U;6KKE=_nc?b9pjp+%(z;3KQk#$*edg*W(ac#ussFY`( zuYoBs5gF}_u*gf-z9Vv&gs*ahvk^1d$$ui(Z+}={8OS}b8MWT z0Z}j8rW2Gu*$`CX|L(>k=9mMraG*6ki-BjZ>EEc!$%?UsFYgBA@-j<vB){-WP2} z0Lr{31q=^w63IZ-osg2UBorhSA9M``X|EchX0?i zwsxn00IOZTc}51{aqT{*SO}3;Hy)s3&MHOm#C^JM-rEzk&=)f`j!Q@oCTf)IaDCtY zD9N_GdB%sK9;!UwETh|o2MyJ!W%UAbnVzjJfn4|7wh<}T*I{*QqY1+V!TBYqg1-2KWUa0c*H_Xkp>ee~hJ=2;80Glbs7^9jQOTw6+<= zLf$@~MhK8?=O8IGBe&Qd0-m74hT-Jh)Ia2^Sn~Ky{4@S%JV&U&C99!7 z$%T2>RrtGrVKa+|>rNB#k?*K8th%zTI_SaDe2JW@(^=`^10Teki2kY}Ajo;nj1QNa z)tZ{$9N3`rpVmDJ36U8HksWHk$s_)gouhvL_w`Q<`i<{$B{Z^AGERwhpBYURin;XEt5ZjYcktVhi zi}E;q%AR6U*8uS=?IUyf*_*w3Nfi=hkB<2C00Ox=@i9g0R$H6#EQvC~cn1sbd>RX` zAEwt8Qz!X>zk}vW22t)$EMMxJ6^YSRsaTar%kTvC&~d3=@|THN6Ok5fvPqi7b8e$* zYS&!7MP4yR)g0#eWb;s3Mi*H;UnCs+=MS>q0zz^W^VPej6;96O+13s?eMw~KvIst8 zeu*(06ACK}=A%|94Kh&>`zdkm^q1YYvq+C;)@dpGf1EB+-fVmz`9<>h?RSNb!$3uLG(Y5O86RU4lT|XTfyt0*K0kDInWXmYudh z_WPOQp0QV3Cfx=?Br@p&?FR5}JXB>TGek>qBM zZuF7X$A6B1)moKPsgEsBb&GJx zzd)V*HM5~-9%91Gp)nSKDo;97{rJ9u$gDcXW6ZzZtC_|-LdSH&Tr(1Y9(OnzF`gA#u&duQK&C)7z@R|Nk`M3_7a$BJ_|~%3 zLUd0C-!(;QOmvgW?u{{0;)7F8e!|TI6Sm*Riaf>!`Y(eunmuY!HU-P=+ccWJOtF~H z1Dkk%M~I`v7xKI$*!&fgEPQ|DkcL{^_gs2RHrqPnlE&NbVKlP`DwLM7d~)+FaIBT+ zDRSbbe+rKi#=5~Swn?aZ-7G;Wc0Uu&w`5*#N^z%dZ@ppf&V3$neiT1CS`O8Sd#9)( z#Vz0POTM;0{*H>$@P?M$o$n-LlVxBsb~s=%_WpmW9Y_F^-K;nwWlMFP1{AV@vUAA?gBa4^jeLT;rD|w*S>IQsm@1L=P1?f=UI;bD%oyE699hWLxm`CYacT;5R!NP@$QH= zjehdM8E;1@w;hL??CPtGbA};{Pps&#sc*%lcN2$-j?Ps;I{U+19M8vuGI^DLZJ_<( zqfC_|%;5CE-==o%1G*Kqw0nZ425b>3wEm8%igFkw!Tpb?1G=6putT~pfufmmSMk0$ z_Yw_Lt^rBHlxEgBHO3om4`Trps1$P8uY0GiwWq2ojYhp@lE9T++@-9U8KcC^%)!wtWRM>v z-W*uo+9}=X@hEg9MHYwHEUYTmYLd4A_n@_7P&Iw(ILV*se3h*&7?r%5S)_4{>4rHIKdF$0IlzTgI)*{jmB3NavX+fTYl z$oLf_J_pDG_{M=dv2Wn}XKH{PJ`u zFN#qb|ImhAkWE7NR~$9l$hf|XYvc?m4UZpPG@Ypf&^`$3tdqG$3`OdA?Z47#cWthe zUKMKMji~w5EF?6Nvn?pa0`>D)+XG@WlamH}H#WJMU>G(CqlA3~w3Xc{M>1i5|D>jJzNKv#Bp2h$xo2-5-cHjgt z2z^qWo#%J;o@VYx0vP(50`RI<`2&b z-$^HbLg_ORB1i+#^L0!dg_y}`y>YGj_;f_WfoHaayy`-$_PcYPpO}{sl1$Ue@&Hv? zDK2qz1;>|i9$p=DE4{;SK8|!Yfbi3>te)-IB+e%=LX&0|6NMejW!A}BrK+(Nfr2#S z?DI_yGV@KGA2710=YL2l@Tb`@3CVMG{wyjGC@4s}^pV!ArbqZWUb@yoWTFoIkxYG5 z=~8Natfn$F1$MF9w~5fB{2gnW5kPd0WtD$W!~~1~vee4wiD$NOJ&HS<7DG-g<;?xw zGR{W}pA*{NuCth6?OGLePDw(Fz*ter^y=a(DUV1W?G%zlV#pj;1*1$JMDtV$a(a6; zx*|FO3`F>77m1kKmPWZf@eRlBo*?#)h_l$_s~vrv-p552pKtyxXt22$!ZyBamHuZ> zxizP6)a2}5A4PoEz>M@y=UCbl#8mmLY@O)et^M-%6&bRa-Io6`3bK^`6cWvS)PAdC zqz1p}+Pw37mA#*A-A@k2GqspxYNG<^qpO%*G17H#i3n0+Y@8ff+%P!TXV8Rv9sHG3 zstOA6N&hku5NFzpOuC1K5X?7op3Qx*(!x@m@t}1EnG$gK50)P{nF=^YIW>q+^jAvn zM((=|9m_m_MU`+o^rGJFYm#<Mxv*n1ob53H_=tMeYF~$*# z{zKVM!Y}ud4eQn>-{MG^bkqSMu;-b7ih9%+WU9rUmyi9aFP!vb2v(AN+EPXS^Q*4V z%W}^K|p6*j`(_ z3yV^??nmOe@kjQ?=BiT+CAQw!AL{Y^J&|6?PmcNunIp8@L`xK(HF7qXr$~X?8uD&$ zp(IOtCJBqU%v!s&o05g(H*X3}K&O@_0)s}b)zu;E)pg8?>i`$gM2zLf+?Y5EbLo`S zw~t8Q7^g(jDF58M6o&5imzfY_uXGIw{_K_(N|AX@|G;x&6061l`mJ|+m*~YGQv%(b zM9Zi$6-6xEyK~#j*mh_>@0G@P7G1U~ln;ihH9LF=0q2s+LUPO3_=&_b_uJGfkw`_t zk@%YnElP&@-s_giYBqTlJ=Yj4^gP0IG4eKu;7-{Bd#+e$Nl>YC-H()wF(1AtNPYOT zXZ@{p_y?bmRy++M8l3sD#lb`YmG7$`gpTj!!MGh*!bBsR;##40I{bKd!$^53;>mc^0f(tuB4xR<2z)^s**6Fj-&xKF;E zAP{Ideudwls^hYF=0n5yhT2@V+GC_fY8iCz(o%a2?n zLKZp#T0!Pk)s@J}wKy@KJw<~KBixM~=$16H8$wCpK#r9^OOV^{*lDH3ne4&}h-W|Q zl|rxR#Hvttud_X%U!%$1GJK^}kv0(+Zlut}7GU{cLcR0*LGx z#dmJx?U9O|Xj#G~EXp|uYoT71o-SNvc{QLk+mNMlWP|QU_sv zow@-B1uBN#>FjBQE>nFY(+StCT0Ov(ZBFyn&#&fu`$$9{7SGqfn(S-Lg3}{9Go{9N z$GKi}24oL?G{Jc9)3JARrMVx$RHKizv-nE)dD>HL5cCmLMB>7CuV;%tUOJpwkqevyP zL%q;WH$TkWg>o8hU&+RbYPiCLQ!?ZXt+|6_k{ihOG43dbwk$VJ&jr&x8!N6wQp}nE zIWa{q$Bk{%YP@vpPacz$cn^Q;Ea00@qR+~CwjD`cpq>(5=-+ zv+&e?879)qWu(-pMJWb9*bpqRMJ}q&S_@uPGr@9ufLV@GuVmeVE7uAJ}9Yy05esNPv{wntg&|Vy>xSuoilO5{7c5Y!E*ifjS>I$ z;6~e-nWGuP!It=HO9d&KzX1BumKiSOF`R5`b=^>wj=MdV0{WGapv*pB|E=A z8@PA*5e`AG*bK^3;3@cr7luRCDD(NlMy)OAGpsswg9?c0!&tay3UC7h8Z8ApbDAC{ z!o(e`x-;!Q;E4XM3tnPtk81;Ih8{UOAEk|>kxbC}kNZ5Sw9Q~F+ndBfY2UD8cIB|# zNph6a0k0x7;Vt^Ru7P!lO182Ghfxvk(`4yJ9nrzRgarT_OVJv7WMRdWd0#rIpc84{ za(6JFnbpfr0@aG^!iGzH{%icf;aRG-zG6^qINL%*+*62f^L9f2l)I4@G7~9z$|N3+dbmcmJu5HQl&3mjjy)kh3#2TH&NftE;C(K3x65eb(!i~F$-m4 z6K)%in{ko%8Pt52v0LXd@gf%&jWX^BmSFua_=mhVVz8y(7!C9DEZ@@42sQ_pzz_PZ z*k;%`G}`4zP2Ws!w72muw{>v-YJDqWEW%=mU|uy~isYo0Q^+(sO=OzC-;gPr2B-?( z4(a-+t}G?Cko}Az7c3KT!&&(5ZsqHuIfLQ@syF#&nzq;Ur|8se*s(t(4e2)40#z@5 zZO(_-cNjOn<$Uo1lprjD-*c(1K$F-t8uy;550Mi7w917}$EbAC)CzIq@k8|JmF6ZY zXmwNLh;$QTkDhFlAQxw`_7qR6=*3zbHAT_}*1z zSg3Ba#p174H_SJ`-(|XVUR^jFgSB7|K7aJkV=lofNr~Ga<`tb#%heTNHx;*Ae0s>D z9v=}q174>YS>9Xz)H4GuPTiaODh&NK=$) zWsOj?0c%}H}6 z>G-%zaqoQ76fZP3{>&&6b60qSq(=!Ag9 zYouxWopy`Q)wi-|C^MTagceJL2~+J+NjzZ#*5w6!@LGRdr%WA-J_#1Rs-zh!a!Z zJH`}cljb%{Uss$n+08s^yD1Z6at}Hx&vHsqG%H^)q1LKXsJ206wlshFY4XDBN5nhg z9*rrzA5v^OYG>r9MIxxbeeKI46jdwQo9)iRv{?cgaY<8x47!__da;2L)+eDQL4(}< zLQN3Oz3uuNF3&1x%&+*T_?6E$2r1!yC^XxmgBCI4c$D=kb*RYRg}5wC9hg!oflEr`hBKoAN zx)c0kwaFQhpu12@YqrZ>MiH3=1ld)ge}m8y&Eo;)*of0$rQ$)qpZ|xezm96N-JZwc z0tJdwik9M9w75%w;_mLQ#obCNr9g3);O;KPy|{aDhaiFA@Vn3F`<~}H>;0RMmE_** z+OucR%ykNwNi1A|^OGu-xz z$!JJ4zi9bAMGJKT-d!tV&D%&9bNRV$kG8r6f?t_@-sa z)fzmXTJEC%)=n{gMPP42fx8e=<$S`NYU`4$KS<)b2x$jjK%*40GyD@Fq(~06npSOu zOGhs_K+sh&mt(E)iX)Lf>U1I=%R1WHMd4l4NK%;+{;r9Y@qEj4u6PyB_6^$7frJpm zYGzkAYOLXrh*14Vz)Lkry+HtK&g(n>$-%*Bov3+kQO<0r{s|}XYNAop&XWyyS+S!W z#Co@Pi&DNdS>J9Yr1$k=K8mF=Xb3x7N)%>w#s-u-on|f%MP;<1re37R2i?M%RoVHM zx=8t!DVMw!p<@9 zxaYZMI{)l9RS*^LD7(h`DS%G-$T~OLKHBnP0^PhxgH?H4G;PJdtTo>tY~_$GkLz!O z&$wJCL-tZhySKi^g#9Ck@Z!*My$u`1X}`3DDGE5ySm@1v>==Li`FCDG&DmoO;B^UT-=1sI7V*PYq`(Q#W z^$nfL73$~~TC0?E5;aiG_i>E^OGD_gWuDZphtn~yBk-J1uM&bkGPUf&vzdg z5zz72I>(_q^I2-$$)_EzVoj)c+7oT}px!Ut+f?FRX;WR+BwC?~+B%(-qQDn}V`0*bu#PEgo^S~s9_pAu@d};@Oz;vF^2Tb9Lj)Qq0_x-a+mi^spa`rA%Vshow zP9ctJu=oM{m7nWTZvSaN|0@I zru43o-E+C8+h`XLonmb*DBmCwH|3gTXr`L29p2-)`{N%|=;+C@vzz<$< z4sd6=-A(iK#2}L{mn3`>tE+c>atGn>vSFDgB*>v_?rgf_#Qo1Oosq8P*IRBhSaS+ozZe!g8N{Ci@ao<+g`Itr@ z=ZlMBz;PMa<~-r)P^2{DD6Hx6M#y%%ndFpdd3|y8Uk!^kMX0+S){8OEh7uAlPF_Pi zD-{MRRTk8{fLC{WjpfH*`_La} zUFOQ%*eQwNN41if&eD7AwC5+sLUpHchGBnQ*N^bSWb(8MMqDkK3@SN%9ksAnK7H51 z!uSC-Tc{)6_dKIm&MrdgInOJ$9bG1o^IEvfUWH^ky~W&~uqgK^nztYM>(xuVy*Xne zdt$TQ0}Kw+l}DHp14MH>7M9(2J?J0UEKYxBhpn#A~S$^y5#g!=^tI9+`6@`TkD?jh!Ot!8CcS{Ee9CPet?MCz=40pN?QIwiRB zXRVUfY#dwgx_9sj&y+HWfCNYzeVE;N5Wjs;!E7c&6|D)X&*r%6~~5Gt>01HTGL*<)v8C zVIJ6+XNwF8~Cul~F0D@(fdr!mv)ei^1K)3r4gM@;Snj%2rRGhYGx85FXE(6=rlmwW? z$i;dq3u)eZGaVJyQXj;|$=>oG;Qy*T#{Ea2DQm@=f|fO+t}FOSs{Yw`Q}0Y#lGQJ# z^<5LErj)lFS=uvW<(fk!T&kpH?e2OY)3)#%yw#rv?INnfPpDy@Cn!<9GaXx7dN%G? za_X`X+Y1p|k_}2d7)6x$LOu0754H1qkmOPe%LlYPMyB72!TJ`?exO7~i*>REp7PGA z3DvRI!-u-MF%~Bcfz!l_s(e}j0M~g-1`hq@k|R?%NT;;#`tox6_{G=jDfC`zRv3q< ze1{?y40%3R-b;ZEOMEX?WVZdw7UNNoP%xRZ9j5re2!e0v7cQQ)v9I*!L)4y29`Z?X zo`UTfa_|bSiG@BEa0FonGD_JKlRhv%{8C%OzF-!;KYc{3Tah!qoU-j?_ZBlnap=tx z$r>Y`63qIvK`FpL4T;yWEh`IQ_4U4&77HoR%9p@YgF>rwdEN>mj0a}`F%RKTx>uZXLLgFILnN^EOGr^|8v-w zEsGqdU2>QD!aR)b%XbNv%efNrKEK!kwv9kfi2E~DupAM3f1M`5(h5zT$-cw|^mME3H&DOOrzQ zEWUdE)<@%dO#5Zsk0mc_^U$$sCm3ZTTIkK^PrM?`qm05=@ePaanp-PdmnB zLZCOfrt|h!z!(0TZwYDXRI`M#dOj^xvVjyeTm#d4U~c>y-MQU2Fkju$U-zgjQ3j7>pB9G;gJNMUV_HB4I?o}cj68J$iF za+=5!YJ8P;Dehlx@xHr#dWjo2`m;XfWdR>m!L~v8C(J>peJxRi z|9cqgzO6V?3M=s>-zu;gma@2gT-2dC`)qzJ%zV_fD;D1U3mja!a3lObe1WJXf@@w! zc$>>5U>pXd;fB6rWMW6Y3J;!f(L1h?>y#hm?ND1iOcih# zS^qHW9n!njw}FDeYUt<6IiOeZgkH0yxYpq8Z^r4^9^1j^-o5jl788|vV4ne$qHhS0 z#p8+8y9691T${hmV#y3X7Wk!ln@E?C#n>cyJhO)tt^dVus`C;YXjdL4P*R^4X)jhc zbG;5l`_TTu*V+=rZlx75ge&J8UF`8~qxzte=Fv&c_g=Jaggm)8Q)ac`?x1G8sh_$te#|YlT^MR-vb-&I5?w4qZftf=hs~t`CfcmNg2d>@Nwwt z?B%@^>>*ss2j2(GrJd_oht{Uz!LbIKXcR18@e4XA^q7pj3ybJ>0vy7v^91B_&>(z? zJ_qb|M%+P$Jy;LgIGKktS7w{940qlIN$c=b<=#BHt4@GCp8pj<*wX{vwpN9&9_KJ% zd%d6u-GBNz20HydTScD=ECcX`#sncLu!-`e=|?gskVH@)=;38K%g1F8ax=S>kB%Hu z9KH2Fc&Thu9a~4QXLpINR9`&*GI9|uZ3ArZ?1l>L2Wb37W!tD|hz3sqJ8>C%_1hj1 zK$K%L`eOn1wCW8fM3U2^sgk1gpX3FW+3r&+(`5h-?>j@@x~q>Bd-w1lUjGw@@M>#> zcn&6K=E@wE_D6MSIxoOO^)pJv3nV`lH%iWm`h7h0{Cnhl+hFixEwI|Z+=n8%7#dum zCkU70*rI2`r*7QU60^r=4&f}en;B*Bl9dXWhs&P7I-H>@ic(ZUh@#>a<}mi~ow`D% zJ_6O&j>X;E*hwWwcB&d!dPHCSO0e#jumb(iVQ5#j0;hV+(w3z+ei;#!1=HlYdI3jP z&T+i5Q_Fhq?2-W)nS8Y5NXr)zra$3Xp<0qg)U?D|A4TOZmTJoB69am#x^vz&ZmO{B zQ5)fOv-1jB>-6~?&*yWtJ*sdr7@6=J`e9@S2ZSGmf?aLX%QETame%y%%}8=$sNu^d zpnqUtl0@#1qYvzUrDa!YPrSjTc6=5&e^1sPu(CyZ`i^lb;sOyt!vR4s(NS(I z=bYjseBhwY(MM7ybdF=1QM2^4l7=-{8NOO6pHewhXw5S=xaHvWxlgge(i|2@nXk&e z^UeS8IiDPIS96X4r6BM`E11DCqSF3Y$<0wQK506NvsZx7x1(#-mT{PghF9ba?Vd!f z7ryA5$=j=RUVjtkQ}%*|jWpQ(H&}Nm&=`c4{i_F+*I~Hl&TcsuZ+1i652P6{~_fQq%j_^a}*#6bgKlbfc zeepa+mr4Xm&l3rc-_2-7{3Q3!uVmEUmmSyT>5$HCA0T3x=O$?)6(uqQYqUKYqy$YX zMy+oFw_CR@DyQ*8Qcelz^wbsV!3hj1&JBeHNPvSoYdD#hd9X6H)$wjsrNu+4Rn=9l zm`#~CuHcX=aZJWCB5Hi|g>?Mq(UqOErx$~P0a-+qFN+@y+cK$27&_(zosE>(+V9*X zU+kw!5mluds{n8r&+=b zBfj~S=YtgI0`2FYdH3GR=Cz`I{rnAN1vF$tSpZMoUj&9YMl-0=8DYvMv<8FYZl+}k)R^^JU=AKP`|RF<-Wjn ztu{ybALD!%lF46@?Tq)8T8%HO&W;3pW)5>^lbwL_7W_rHwUe$&ajNhGcjO)Ig1ybM zh#6sB4aqbB={h6AZ z2Qp89ys6LrteLX!2usH+|#N6iP> z?he8-4~u%5z$%A)q4^s1pk^HzbJR)Hl(h-;pHYnfBW33fFf3j}qHeN=Eu;ah?NS&&6uOs-(2k-VYW(GEhlEZotynEr}f0F zFK6R=hW16oOIOX?PDF$J>Ef!Sc+c?t(2X9^2`Xx085avz(4#U<=|chw%QiT_gvRIC zXhz+Eg!B~eV*%|7niAY{sBn#}MI+XghEiJY^d-uS_?CaGHn=;PSqK4OYis?37-Fa` zjeZ{CZ|I(RI={y9)nRq>2V{iTPvQuuIx%g1{SgJZ2%oLr|pH6d<($Q{H#Y* zlf21-G_>0VHRvE8*J>&85J~BChtM&C>N2+&gDU+J&b$ZpRJ|{GBurW8&|AUM5qf&7IKBBK)WVr=tReo=-YfEK+{JZTpzAI3 zl>D+*@1*DUKA_!2%HunhAN++e{&Az_EIR?Z{W+%Rf6L>Q^UfF`seQ7(h!223PD)RZ zD}eG?GzR2VDya@DYQH79{7h%u1HYbY0~$K9TPf@6S+ymc_K#0TyWz^`w~*RzS1C7L9BCiC6jT%B!bcoI2GKl5GpRXfa2PWOplrRG6d z<6a~DG{@Z^gto}3rcVz!N{V1A^DMgo`?{VnuP43kBdn&;K@BcnFE@#F@q^Xf=-nP}8KlH5j{9!V0F123z%<50j#1WOFl8)j{e9=M{2lHQZuh*TLK3n*%Y0^)W zo;oSPq|I?!e+~=ujR4a@3_@1!Fg*s_7D*1m8k!C0!TkfmOF#wow7D*l zWf4lWrDuXhew2oWA|^@s80x>6ot1c+g~g{SSa6u|$UZd*4W4UCnww%fd>VE)a)M6W zj#94|{VBD7`t7n+Au{zC|E7LbFXhyC5l^i1y#v%qc=Ml#+6|gZ0=Abc+3S~hwIful zgvP5sbybgFl1n~h;WujUe+_KD8A^#yX=lyMbDV!@gC3&x;y|N&Al;Ydz$*O@WT2TY zLWoCy4-8VwJWjGsN(tQI=8>`kGomMd2TNJ~cb^wY}?Las>7FXBC%J6?_G;zkD~{BTMb~t}1it zo6mB9Mh~CT-IOJdlE`USE1P^WFHN}{oQW60ASKQ$o4#~_V?t$J{+4&H(&{Wcy24449?x+u<2 zrAFHIoGy1BM5G@?40)EZa7>%RIO!j>R(>wwiyqiW!l&5IY;{|qK%@Ik9#7p=MuUmA zES0*Z$`<^lavV$cmY%hY|KaR9@m$fMfK-^8_+fo5lnnc(Z~F&*4LUyOWuxedG!=w+KWL+E)^HdrT{4I2!kP)&ILMp4E|S z^lNr6-U*A%o6yv|rOiXOm6)RSB3ix0Yg^OQ=1treNw|lHeoa2JUY2}|_-dEM= zfp4J`kTPc9swUci0JEF^_v{ZX$^8N^KQUO=f2=;1FO$N1-23`sUjNNHd^EeMuk8o4 zh1I3(We|d*5}y67#PR2X%)lKF9wjT4lvCC2r*hO!$E`XpQRLt|tD3ug{?yNJhZ_k% zNMT6Q*i zw4<_}F|t^glYCQ|OwXgM{?|HSd4c6SgU`Xib4-eI#rJ@Aw;)1Cwk$d%4&2tGJ?>bO z8q)$8V{+t{NxyA{IP@l5mgCVuRxSc~y;BPP{0-ShL z!xY|=%G9kPm>eCBjy{m)dMe;KuHY~0l!sgX;;&U%{HKYEva54;_(7uu1gkeE6Gyal zx2k+A8~iogMjD1LE~)ET$dXuH5%b6(tfNPhjOoE~dYW?-sw`|T#hGC4-+d<+PRj-{ z8tb8Rq9u-0*sm{X_Q(p>s5qB#Eqy&FPQ&eg`>|WMTF|C<8ON`z25Lv!L)vgz?jNBD zcRJSw$_EvAH6?oGz(0led*{VZ(W#u!fBahteZBsKJ-B5=$3Y#DK?iAm_*qm3K0BHj zNvpMe_LjCj{}N^`3+(c;=uq3zOW4y^1K`TI%i2BpZB7LfJCt&a^bt%W>XLd2Deo~-@StVH?i?ClMRFS%#I&c!!W<;I$yZRxQE3d>36aq zB)&hpdSy%dE^1u&5-n{Y}*?&r=<{7^Cw|H7g5S9+kbPVl~3}eDpYh{y1mGp4p5q zP7hU1rcHq}?pJS$j zJYj}D;!BpKZZs`h$F|R@nIH~H5?&5}fu~0iHoY0bu%>%aiysVDa_dX@2#9zv+?0P= z07IO>&~Xt2@8Chn}d?YQ3e}^BD5l`V=y~GN;4! zvT9oqpK6cWqG<9$_133}j5VgM7l93`#7)N{)VFXkd+)=bWa<0&Hpj(_bTZT<@HXBb znXb;}*@kj9bv59dXr-H=M%Y2P^|tgmQ-HXhf@TyM@?Tbdag|0OTzUYO?c&9!ix%fu zbn*9l6|3)iOf3zDQ4e&b#>L0H$fB-|E64FQ5YQ`G*%twjBNIG&B*scp1Agp=ga99| z-a}AAiC@7+d)06F$qPdGV|=&f%&Gwi)1X9>5%$+TVoU_mjELDz^i^Is8cJT48FXB3H zZ^ypn=I6PVGx?B9H>Tj4pN>G`!HbnfBrA#6{*#{f*;7h(BNHCZAuE7CZQ zF<1haANDkxh@?TboN0H#M-~qYT=4g!+wO7h9<#Mz93GgKEZ+?8zSFoZ%=*M3 zQihsNd~L8|y$|k&EXK$x#$JwnUjxNLu`Wt?P0ZpLJ1X};!%H9IqM{g%(jj?vY9#~c zNDS$Lrj3p{nN+$d^PhR#{@d$cz4Fp|#N&UlAL{(`U~A`q^&<1Aqh;3GTQ&1mUh1;^Fk#)_h@Hux7Ew*jc3!jJmH0TRl+enoURY-jiVskG7PDFfJ9rhx? zy?ush637kFIjvDes8hzTJ^hjV`acK@VY@CqYsxsUW*<8Kt)V${cp^;qgPn8RbMTUn zs+S!8B;o+2O@z*^zlp8mGUtx)Q0M*2a-duT^3O*VbjdB^jj zKAe7M_=S5^qz>wOK*+eOa41BO`pf+`F8v~=eNWp z09cpZVI&Cj`t$p{u%BZSa`+rkeE#$tmzKqu@BT{`LyZ^w>l{;=g||w7&IUDb+M@;> zt=qGN;9mH=2OwD6h?o7~^yUYezcYG>KF1SZ2r!O*GgXjQ&vXi^nqR(7wT`k41ttFg61`>LJBJ&HXd!l|0?TPzKpH7xXiA*7$+zTj51D~%aBO-1f*bBC|+ z?+}M}X3hZ)f?=4nj_QLbbFY=nb;&2zeN{Z&CZ!T1U4%_I>LAKF2vfVga%>&7@$AHs zo_Fsa*38@h4VbunaDA%EU;~5dme8gAWq7hVLC$Z1Oxs*IADgi%ankae-ii6X8e=z}%-4-)h2<#Xy@B{F%8z0LC(d&?Wp;(DR6{6nVB?7C5y>mmtc{vd^m23 zZwilTiZ)mxo1|nbv&rY+6TnL)H1{^w!X3L?EhY0&^qY1zW_Daa@>BdHG+v5MA5x1aQC#JsHGr`B7H z(Z(ttRA)`3ze7OJ{>Auww+E6~0R~*O@rWaOj{s{wrc*=I8F>6Vah zJNR^;*uHYItNXI{@aHFDBYrHOmUR-5V-zfQu0opihrG$=KlT+%#6(OThTJ6Me}{-G zTKCrn$A2ndR)R0fZ^Z4L4e2;`Eqxu1E13LG1F(FX;^{i(KT9E2o4bdujZLKi{$Y!! zxx-H)#ASNu^-zp4+cspH<>yh@E;o;!nHW5T+h92EmHt9+-L-;S=x6JC){FMO@%59g z3-i}WqAWC)hmSXgf`eMbER8pUzRyZ0Jc-R*MC4PbZbD$B43U z3O3a~Ay{k+bqVnDTH7u6d*cBOLsuEN(iN4YCG&e|DmF_;g04*!l}PK}AX-tWC;Jtm zD~cbCLTU^2*f_P+8wZJU2j8pWiP+1ITM#G5V>9fm_bzI5aK4t8j_#ou9((>Bi}nhI^17dc8dbr!Dt@n)Ru)f>oe!mDY3DaQo;qRc!pDMcF&g2D0)9~p2UtWUmFMhhjUi5Up~fv;*51c=93TA^$3;d< zY}u~7q{MB=X6v%eKzb?SH2xa%m&6U!b5k~{ziy$4PzvXDV8&QTJbk{nTKS)B@v{Ab z^gv-@4~OlX5jo*{WXg2ZQV&BLKbTJhYu}WPo1)Rh8nPra7f@e3#t@f;WxciXeO*?0 zFu9x^cQXQ=?a|Zka<}&8DL1M8uOj9@^CxauaA0(;f32@WU0D+pq-wW>`IS`;-$>fX z_QsXy(YrYYCQF29z8qP{4yGlRDEYEvEG(~i(r4^@JWlfZlRU{Pd7U5U^@|%i4rqZ; zFB+3@SNysk+`8j(oWhltg$!`GT8-_7Q|+~lXuqwlMkLCnBPXUFrluN2V|MT6F@=QW+m(72b86?7g1z>Np;Bxhi#yHbDx**kTFGJK>OjewY2z1Af zEip968&zMVMX~8(N;1J#i1a5A;ZQK%ucXyc&6gUg1;+>l%#QBH=IeP=IQ5osVp67- zRA#hQGWaYuQJ*b*iEpATlZ3_P<;~IRzs3dn9Al?`8}>AIsUnmAgL^m5x@K41jG3lw z_8p5rFG0?5iYdZnLfVCx-S4iMwk zan=@Xgw2zJZ18{er1~L?)Ytgnx#Z@`isX*|A>D9br%Id6tjT}MeJAcpxR;qU?fuvW z=|6b}LF(SXp*8)crr*0RqNH}Q2|rmrl>M;)D)F{L$yY~C@c8W!s*Y4Hyio$YFSZc8<_9HBxg$qf zi;lZ!WeI@)tmfML9=4+c=MxPoojf#neoA(t$6F&J_`2glq>y_MYu#r#=xW!sfufA( zL;b3qv6f;(+Z|DZ=`5h;Rm02*;{rf^HD$E$o{Ur@J1veZr?eTFc{Wt{PjHET`=7%K zT_H*up_Q0nbUzaj80hkC?PSm&?|;_6tU!8J-uFyi9RMJofkt6s?COEDDPhs5xZlaF zsc6BD2B@r@8}+i91luTKf-qpv|+tGaIu3#RH-Q>Aaxzr8~MnqmIJ6LMye`=mnsr>4pAj>Ny-xjU3JAkQ6w>MG9Tc-vB_ z>ZnM#XvxwT!}eVQ)r=XvzYWQpDrLO*eeqLdGs`^WBlElEBdV$81B2D^^@DwW`;+?2 zf9@@NC0a-yh&Uz!GamI7O*~HXCGt_A?YzxGbq-`?INFJ*5lkI2_k0aUZM!+?)yN27x?6AboaApDH(Ew+<*{#cP z))M83Gk^dLb)I+8>*d!g>`RZx6&;p?0f6!immyzszivATC&&HH+b3d}cva1i#GQkK z-k6i6YX@fLrCKt#8}J!1_hohn*PBY*n}9{Za`wq$(k-z0teBBAXnO<~w$It_jYBWc z(5|0Qa)zpe;mx6gunhv1{`Si+0-MQJzsFm_!qa_54!z*K09f0~4Us{IrDi9! zCc?ye$KTDv#AEyC^S}t%u=Z5@F0KO$ry)LTtnbIgf`?E^M;bAEXU%x)j-icBMm!>Y zl2BE}=jU6ZsNMyt8QTmwJtt;-tsOc`}is7W4K(F z7nF=TJCw!)3Aj9y<$Q@K6=$-yOZcF$MqRRU+!WTX9K?Z(r)LVIOP#t0ZPRhwHat`T z63qgJq~)vJEINAqO}N;PnuN4XXJy}dR7B|1%6M?dlqJ|dC=JZ%fduRihGAc5A5I+` zyAPkvN@mQ0BT<^weHDtixHul}kXGtQoU*J2kB| zAQNRIKIdJ))Y1QawO515;n#%~{ryDs#w4Xo@#*#?lm(OKfhzknxU@#t2IOo4WNs=- z`eXS|mU1#Bbb_MzWyv+9G`~KvbX{ZT4`#f>#SXG-FYA7rGzip7qEWjkd)I%1ZGXs0|5nwvoo5#p$Tt_ScZoN=! zh;c)cV-4p<+L+~Cy`fYxnu z#FKEtNCyg>+J0NQ&#$;V{8BP}Nbo!V)YLjQdu((qFZ2&|H@;TqZ1>p%^=Z9G6DQF@ zzaS~DHS;Hg&y(4H84Og+Y`PQ6G}S0S9;uy2D-(%)?e;SPsi>@Z@5t*DLWmRY<@jo? zZQjcIRA=q0%$0Se+Q=k&-RUEkM zlw8SP z`eDM!>k^1e2OgEJhbCtum+>*X%X1h5tI5HtWB8AT@|zPGYkk9C@)4Mum^sIm(9B3{ zUNzT(ocO=$L?x*05O1?H`~q@-57oAP*I*Q>8WTImmKmj`dtuuaR>)p#IO)14b07rQ zx;(U?N9Li%cwA*6A*uk)1YlCf_;L}awf=|@JmhOR9DyOZmiAf!MwGd&oaE~hUf;ra zR$5eCV2s%@s6<+grGwWmz)+BoRRjJg{|38~iJa{TV=y^=wWES&Ur=-TNQ>;!<+r*K zSF;~8Qw^`>hIh`Lt#i;nz0#1QaIesyHy|#tJ=6o{te1{^f^m_m+yc;3FN?01t+iu( zC+QiPy8bJm_3aKcgT8solQmg^8zf6TAD{*7fsCwa+7(T#1%E+OA8P=_ZGidg=+Qs8 z6GFVb^62{hSua75CzyZy&Z_970 ztExYzy6qvsC#qL(DN@MAyWz=-;m9cg?8MfJfSammsaLrzMX8Rdlq^A2*Q|TLsDb4e zbvwQOte#S&>9MC@E;(p8GbZcuAR87&u3k(6mcv@E6#BzegZeUO{&RtqmcX#80h#i~ z`dc&9HgwLQ2BM^xD{XQS>H;{%^)g?q`UZuS15gHcP_DQu$7^$M4rQ|CRq*&jRsvfP zJ=+>Q5^0OK(vv5+IFAhi)DcFoNPOeq{fTJMrM9Dr8nO*^?)&vZMF0QWyb3`;oA6(lZE)bM2u07W^+&sEKCdANc+ITNxF zs5#k!xUNZd4WGX0S7SCY-Wf^~pYy$R**~#9p)XW@NKe&%rZ!5t+m}(um3@w>cLJtg z*QbUGOIwg06UtG&N}0pZHZjH*y09tyB(iL79uXcsfr4=D6$O7}J}q#cz4+j@6~xr} zNF`19gtt0bZ5Udn4Ca{D`R8usSK2gHm3M>h(gn5wQ2!xH$E2pSb3aC9B_5nSE=b|M zA1W(Ft{;4imv%B>@nFF8d}OqH?&5}@HQ%FlECM##V81D#%PuT{&7LA@(ffo>hP_UC zlJP%2#l-r_teEzfoI@a;ev}o9M8WrViYE+>n7`yG1tb*}mlb(~3hD{SW2!-4qz{7TjH%9kfM#0K<<|PX4E+nn{mkOY)Y3#F( zZv+gSm`=n|PyIPmhbW?n(Cv%(1MCED9*rC$=Yz#~)C3&^+|>CkG_D)=ro@DNhi-md zjc|rZ(l5#=Z&Ly;bM-Vbjek5I_& zMcer;x+A~VTQB5A6#ywh#&p%-FO?shPMa!R9mW$Cd-a>O4w-VFI1QD7rSM}H!MiRM z+lL+g#&MhS%wNROm5hpTX61v<&k6rboe%oDLcEyZzE%`cwCC!MvOuz2owso-;Hx*O?@W z8f#@;ZP2T ztt9)>)Ih3g{*Wp>K{{wSIpLcA?f4`W6v4pc0ACuGU;sH#sCbaVYA@K3#rx51QKqnl z6SWvuen#2hqi%BJc2$MpOh9#IwB7)?@w7P-afV^g#4 z!(wL^ORStgoRL4nXxog>!{W6bXLuaF`qjs4_7&7^aF*+vZu&TdSQ{c)s=wQtrM5T) zYz5*6g$<9I`pYY<;#`x7#lbt}tl_xQ+aIwHDxUaf29Z%$1jq{OeYA|^z@ZVmv`XgH zu@4$JWiweB4|W%@3;32H<9+%DBis*X7WGBc*_nPKotNythoz7gspfJ|sXP6Z{NS^P z%+GMkR4``aeX)!xV`OAL&WirjTJfOkJo+JOM~$kCLAcYH=*uFc6eOF3{k1@hK}JE; z;9*T%I%r^#LOqvK0zR&ultzr;<^?#g^Hz+ez6-fm^qAz*vKk9^l@xad6yG;;5T3@` z655)vD}>=A|BGcCOaLtFXQ@h3gBuR;5NYYXPs<_`K6I<%vrJf!q%q;sg?|ZNKCu(UQ{|34K2V9sH^-l(e zuP)U5d^;o6fVBT5x0yWcN)M+Al)*!V()m#D+|LE+fQFwnW_}4KoL|Wyx z50bE63y2*yoavu#dwkt!EM-HJv!A0Qr2}^BCfFz?K64Z?D)IFBGN65i8Q!02J^`Z1 zalZ3HvNK>^IKeO_T&=Jg;rB@|zu$c=|HJD8DeQJ`1h~G8%@^J@K7>hAu3S;hMJNzI zOn{v}+TCu-*&Sc%lh4KH6=38iI)Mdcc0>jhr}u9ecZhi0_f;TSePZBV_BGc{<+9jE zX*JwE&pzd0dtmOEOw@dYK`rDJeY?7~10M8AVY5+Xd<12q;8)@{CrP&Xnp(2sAc?+5 zEe|X;hn@?I%1KdgD%yPjU0}PgC%^rKzfseYlDRME%A%p?Pf_?+TJ60#cd}5*w^Qo3 z&NmV7=wi??8oRo_Zbr3!8^QZPYPmRQC>gXMTU595;(j1;*sd8*C$07V7Rj!(Frr^a zv;`nIpCsF;u=#x2VbDjhg!Nsk%^cLv?zIIwj|E{4mC6YP+`#g4{FRS>U7El_g`}dRmr4{XN+a$ z&dXGlySB!YBcI_rL<|#*+(-7%F5K{w1|n_AhqFYK=0rbz1CwfZ$lE#tdqU)@*^?IS zU$(}xovTcOWx--OP5!R+&A(S8Y_s)pHxDZgsAuSdz9XOxCXb9NPME=2dyb%06Zw3+ zns-8tFoQ@rRZEp_9;p%XHSwZ@gLqj)9oZTDPrj+<9i8QIkpW^8*K3VMfL%}8`32|#<&&GmF3G2e z>AZdAb2%medVz;+MY+8H^f699My~T~f|>zkv%zSm`!7#3*6nG4r$`U?eFnr7(qMr_ zlHoJ@nm*ckREis^qeDdj&#x|Cd;RTpStGNn=(0XxQP6h{2h1mp38Ny?r&tMUH}08f z)xiG8G*#n2^vMm5*}@incGQK9-Pt=BFrVJMwRr&qVZyXzkAIHOlR7vCy%y}|z8kiQ z;!hq^YHAEgc)}LS!bATY8+nl21=X__gi)gD{Y(w)IOLn(-N@qrWrE~BuKhEgio)mv z69rxbQ6faX=U+xOO8%hd<=sM;?D)tO;JcDlL1Tr~t`r65qPu8>_rce71Om*XM&{TC zeu)zAQcpgP>H2VwI>X6F)g&@wqW|WF-;BokAP#@YI1=Ws^IxDMbyd;aDrG0_`?cmF|O@R>!00p>P$IH7(qGBw}R*3;LOFgd6-Ti(S>gpX+_x ziQiU0BG9?6F1}cXdAYAFwE9VlM$3#$!eU7rA2uA|0+ zM+t8PS0=mbJYV_`MIxWn1V+MVH_);ni;>l5JvnR97D&DbSGWy(pVOJ6R9MJ!nX;Y4 zdu!Au@gLYvmE)PUXIs&zkqe?l620pEkP=s~c}QfzhL7u79PZVp3u0Hy>^VCDdg-Dm z66smd^5ZFn#;WjzS3l^skISWl`mFsuA3C@MZn$F8rjiKI$YG}QgJi+;!rVCIbyE}p4?k>TDLvXj?`ap1ZcL>4V-66QUOK^AR z?(^1nxZ?PHKOS{9Dby{1EX;0Cto zo>?ZjpSI;H$MRAiL7j0BKjogBP2aw^*z&uL>(-Zn!2Flvg18_&_J*;=6$6voWoQiE z&Xs}wl&47tHM%r~n~n96ikCpG7mLAev2+rrtf2=vj=@$KZwUd_0&~>Ixv8P8gmFg~ zA6t9NfWuhZf^1LhRwEU;&jb)+WjxI-VbRypUQRD2La5quD*4kpCE0A5`#J z%g|2!dv6=uKk~d&^kCvmHhJ|tybv;|11yYgt~s{8+%8!1%0VR!F-^>AqJQE%~q7drlSPtOwSZlKh z&t1rbAzpA%zI_b%OX{^ci?vKoA&cwO`SEB?V4*T2)aY2x3=)D53=Mx#7^%uc=($;*KPD2ojQHWq7(uprdpp}khH*L z3X0k!7#lic+-ZyyWn?g%~zPHNk2zDZ!_N|cYOq5tDD4>PQ!Dwpoklluw zd>yj|oj?((e`A1VsB4k3aa@8lP=!2kLol{r_x9kh_G2EVY9SS`u*$hojK$aOkc2n@ z&4TfuI59{l#%jv--z1X7lr@1|RK(>`5QDp<{N9Gp9`N^4Y*4v*`TCSBOU|~P^lPsFks#|y zdAL`L&WH2$U$7r1J#@a5AVoe96xpoc6#Ve@@N!|9dsLCG0UY=zFBw*S`jw=6lT2-r ztIq&hWDzKcbZ{L6%zX=}R|t=sA*NJMx<5aznf2H2VPgSzIRW)rSkGCeJO(W&XkChf zjpr9XIS*`7g*e5YMK~or#Sj5hXTD%=;RInB3`+^on>dg~n<;MXKvvu!_Yjo?HEdA^ zGm2C<#*2X@T_onNK494e^sQz)c;QYDOsDl%3J$;EPt? zyo&FqbAnis1z+wMMn&(M(mX2WV^9dg633UMRUBvp!kiFM#VCxu?Yr>=hIQ2vd9 zU#Ow*Cm$rNh_L(h2F>MAM<919XnnMZc@kRr#>43`BUeq6xci@_x0T?38FWU!Xa=of z7uCpc-H{i+B|=h7;mzCK-&b*RpZnI_Wc4{IfE#$tG=reDAHzp(am!0ax=XVYZ+7h zbPguBy*;nq)^wYq)f{w}=56*Z$de`?x<*$|!m-lyQ?fJCT|PX!>Gkt_?@LdW6MHJ; zGEkh*(0{_~G@VG!4356Ellsvzv{byCsZJwLqgfL2h|);cv3+LzRgNL-3qGSq7^t?l zCrl2Bv36L0>7~|K#i3CHi7v~vnpZK0Sdr1DYoEfMK{HIOlq?~$vNf9H;5Xoj^ni+! z`}|LwU+iBjJH2V5Ra^j>CRQUO6lHK{NdNY%>xlQ1fq4AFclyjH7R;ZsDGgq7NURNU zSf!K+D<;;Icf>}JEyr!@u6!Kmg~h+qB0!*`GQ{4(Vg`&pf{d*6+h&o5W2 zo_b}!Y$AXBs?Omh8QzO}-hY!PNkX3Kl7w6*yo9LiOQy1xlms8od6RcaZV*)`q0=q` zv0Cl!^@a@(a3>axPnu}|f%LwQfseoY6g%}>qa7asixqG>s*LF8hORze1OT>fV;?1m z8s;5i3^6uTI7?EG(e4ef&;#K6-F)N6w)|*=*o(rm-Fx9{vV0$Z=MC1H(#{`Y{uUnt zQfS%f#Zjm++LlTE_wzF&>2cu|x!<1ntww|b_ax8XYdcmrc0-+U!^&H(T0&`!fNCHv z=PaRWPk&c5v_fFWX(zN%clnL@$RbRIiRxcB;)%Lg0+m4}F z`D?7F^)as}^f?rj=XbupiH}d1=m3^n+Qk3wTw2mVSx-nje47a3x?A9`4|a52w_;rz zcDI8NFnUQ~_aj(UQle}sF5&9*&{@g40Zgwi`W?O(LU}MXTP;xkcz)YpMn@+~diNx} z?>Uy6DRe)DlLHdJ>%=7$c|XemUUuq>qp`yH7k7ytui!SVsV*wOjF)!xRnUFH#XPMr zgUpkatjYbkd8in@ED;OTAQ^hC3hf%m-twog<|R&k{;D&aLyp6rclB ziAHl6;-=xrTl5D82L8ofxCQKCsSl_7z z@kXFmTdj}s*9R*7k2DPf+`a?{YIvefEDeORR=zbo}VEfGHkMYDt_yAl+K`&*k(zxpX~vfdmJ> z%NCe_2_`i&fMBw>ys1cf$j(B~b|F{{n2;TKzFY*a;T0gao|tGaWRf|v%AW_+b7Kh| zlZ@i#L%*S|E{#4`yqkzVGByEbHuf+9g&kXSL_oj%CA|N6YYgZF;4GU(uwWIiBNw>$ z?#Zg;L0%}TI;z4AmG)#ZcXo;xM+Jq)DtDE?`PP9x+U{RT3%@%9y;6feAzN{ikLoF$ z;AqRu@vl@z(n0xHAgR^lxW|2?={LsNIBmKzJBGH=*Y1~i7wfR(dF)K+6<`o4mW0!H zn)W!DfBwTY^4v~ue!jrxW&-)I*RzBb7)VL_nLzKvKgN+aINTD;mVx8*An!0Xw#j1S_YQPJgcz019r~m?5rKNE7J*c z^S_Ra`c%k57pOEcT^f|1gwQ6-EB@Un>&pOP)JgK!r?>W>K%8cH>DVN=o6>y+6p(3- zcdvQ(gQ%dKNR8manT+aNbt7AYb&lP`8i(r?6Fb9(a{WUMfGTefThal1#y!{$T1j?E%^E7)>nqNdL)B)1yobH_z;x zn5WuL<86S%1vt*I1XaRYGJnLTUM@W@CAa5}GV=-+BBbIu>#kVr?+n)TELO5N{blpc zL|>4FY}s^U^OyOc^sMGS@@4rEIL)u4NYjsi;Sy<2Tv|$yn=>*leV48R733e(l&pCt zJ?QsyOfcHx<7;?^KAo+7B-H=%%XEmO3)6NMvh?$@6QTd%c-6n&ZXmzN0_~0X7}^=z zW*xiUXolgUmd>W<$9C?2O)N&KF|>o)%AscRe+0GS<}2CvCw@>RBtq~ za>lSMbQK3jXyuhHZS8?%DYX&@$17x#g+OD^sjAe0lxd}w)l}rxGewyEmEdweyyEIs z19-o*DMsf1BEF8tzkcKrg=A9q5;NWdsbq zv+m=`NVYS9-1G~&YhmA~=a8mK4X44++xmNN-`=Fj6*(5ZxxN9&O3W?zFiCD=ET@ni zo&DdOZ5+5T^soF?2 z%;U9mc^U;(AP91chPT9n=gDUPj$*h8EVchuqbp|$eHWlYz$C3I^1la4q>t`Rn|<+J z!WIc910Q4fEL;?ml1bxg8N7grCj_y&1ztWAEP$F$po?}35HPyMRjpIi#>UQOC^mu( zJT2~s+6;{?Zd&2fdlK2y4bd)P4NPo{09ga+VeQ;JW^)6>Qtz!z0=N@}JO?jL4t8U~ z635~f1zLpmuW}%!0?iK1In6Wt$0DLh>LLy)G80y9 z0zoJR2|k=li~w}Z5bWPdQs}f*f?tH)6!&j(6~rVwqs9C&1Z4b}jA(`MmHME8&dpsP zOplkT?+W}7NH=gAeG-zvQcH1%r-PQGr;^C^lg6E*TlQ?Gbt)8Hn@ALvVEl*(rTFkd zAPyGspFSpeFp7t!s=mCWzU^gTH&G(&DA=3TCPi>l@K!nkH+p{#M%i`CeB$}BF`AdB>8b3r1K1DpC%xm||yUPNKR$bbY1N0t)J1NzgepJsUqewJo30Yd-c}z~NlN z%d#Q@fN_9B3&DM%>X*P^)xF6%RXh+i%sSi3N^1a(dhEbGGP<(-@*A@DuSdmH<^1Nw z+LRCvGQKw~=dvX47IOLxND3n>-~VUHFl!;;J2yu;B^y%X%kReWo-lC1ED2B@6|5E% zBst?}Y&pfbWORJrI-H^sb+sLRaWseg1Uo7yonb>n*9P>HAT-Ubaa1^?yba?1{W@({ zesSM9{`Te&3=3GDl~)+&zBRMda?(s5teBsK!6Lh6@H;lO?b^FL2y0&EUa@v&d}@|G zu`P6TLPD0cIf}KMtPB~8QuBE}M?l8m>kc?A%p|XV645EZf~P6BTXa6N7IwcR2RAVT z@hRyn2zO65n<@aE6)v)~fT_aTLF2Xb>1qu(tR#adYkiq<3OL(?c)i%V=H%+uvhN%H zj^>8}zOTvSugW@4RlyQ_p?tBV6!o%srdDGJtt-`G0#fGAnJdu^fNv=G`aWRlh^6jz zhQ0A#@4@I6FkG#S>skL~uKG|hhcBdzOGmD2lCY#x%GSm8Ln(437-}*BK(c$0AMW5N z%e~8t7VOSi-QKEw^ZZTr8?u@wMNABE`6Nl?Hb18+J+-`y0;Z{y;NKxrmiZyS?vfbJus#bDQ3m7F}-uWDRqN6rW-?!Mk2*XTv=r( zZ&oR@HOzZKa_=hLqN3{R-9oKYX=z?PxqO@xr0UE5&b z7~a~)vw*gGZdD>|l<3uKGi3d8i-Kxgmc%h)Tf@8fXEmvY`9Jz5*uPT1N)c^{;SaPJ zHjRhSz@g{Z%e|wa*jUAlKcjsUJ=8Wq&10%}{??(-5 zG*m*eH7#B9O-^&dRvpxPev*$Vf*YK;SD^WP8Oa2yK18Zg9%CYGf zU+2a5*{83KrjLIi;dD8~+1_&Ze^+X3%xS49aJ3X@Bi3Gj@qe3v@ftTHgasXOOV?Bb zo=a?>3FGJd%O&Xv^Mj7uc#CPK!1bB(8`nGl-va)Wf8f7LtwxADbrJMM9}s+ z_=D~HM-~<1n$pbmI_Quch@)a13L%4r_Ri;EP&Z1i`jG_T0AKC9ap?)Yb7bf}ziRvm&l(Q0LTA0dQ4ltZzG7KcjP|UkkY}h%Aah`fyc}HRXW--F8T}NsLY82WI|6th6QnCI6 zs_fS@0vZzwcZwyttch6g$FP+VyU;G&)U8vXUjchQ!%s62 zN4_t@qi$G4B#waxP~-DDdQ{Nr=W6`Y!r3~K7<6CbAv~FX_+*kT+z!_jk*t_AP;4H( zT0tgZ!bbbt=;#DfDdk`ri895Ww>9n$wT*%zQ z&H&9uSmxl&`SyLg6c1+BDef{C1>hqap`unYF+53V!oi0f2)rr!s99%ET=3@oHx%DL zLqv#DgW!LnJ`CH~=1xVuwcEqwA2h#BTpCgcee$}{w30{v}KMad?;<$<;;jeNLjB_!$z|{*&_3~@XJ4#$AdE7 z4Z%;8?1pnM*L;X02^?VGd#e5>VaGz(v!7n;i)Z9O&JiTe4=h>8V9G_#sehB#y`IXu{ zyk`mYng}@P)hj&VGWkGx#QFjj?F~|wm6t8vHS5@+tRUaM4E8uhKilsYGGonYBg#JB zhR^v(tNH4RzTB^JA0OoV^kl~DD6uaX1Uw%3auEBl3O_r;Ca`?+#leozzpVrF6al-g z2J1Ei2WO34_C$p5`t1H0{DXmxkfnG?mVWA(c&vq|2~X`{wrBB^jBc~m?1hwX{6i7g zkFq{qlp!I(!S!C@DBU#~vW=%hr{W$0e3T$tvig<`T9+J%e@Uelpt}T5{28dX0MK>$ z>C;deI!8ZG{I2(!yD@QT##RzQI(3-71r#@1L=-bc`)rMj{{U{1pc66EH+_Sqeq8l9 z=Jz^n^X!;wb%N)>KA`fu)VKUh1-S74Co!CvBzR9dkf>cxaAryl1LbRex5=3x7rSyH z<=e9M4ecRV#H-e4#i73@9{{%93OuHdN31Kd2!De$u-|BymEQqRNo%xisDy>%Mps<4 zYKB9RHrlUnc)N2aF^u;L_f%jka?1D5d->kMO>~)kCtZktzNhm(R%Y4wRdLzAOmcg3 zI!FmgldPYb&H5>P0kdQ2I>0s*Sk#`ZWW97s`Vy*jctK$&H0^2F+px@yR=(!_KeIOOJtK8?@>^pqXjfrAWTO}A4~ zxc5#9!C&3Lsj?uFt9kErl*j`~*?C(j@QUYB7)pMZBf@8Q_`dHLc&=v0G~%_iaw@ z06$}t!G;YcN3h=0XA6+bUN&-wXXi0pSps{7`CD^-H()boaRKRkN&zMDE-sQZuhu{4 z4nA-O2qfCEWrXtlyRW)tymaMp5R(Wcl>nz=_T=MwSKOzy=D3Fe_fc_~9;ZtuvHr(D z*ns1j1C&A*{iqQ4GOul1vvItm?VURvG(feQDXH(?%A<_QjE;FuLu)X?E|VVoi;ZFl zZ14acE}~&1K%jQ;y;5}0f8Z{_cSw?uBM$j3CHryxOjIKI{0nlrUDY8!eL68gchRIV zH5_Jz;!W3|v2~@1R51j%-F1f{}xW8MDIElhH4Y zlTc6?O2We8El$EE(?5U4puoYSOnaWU-;12vfL!CI#M8jz)J)G7n#YOyQue(!?r-@V z@A%HII~cwM4TIqc8Ps@ZIWXp&BOhE*muR1-2nAsJJ@PoZ! z9{A0KTIk6yz65Dpon2#HeDB=h%n5fqNL2+SdP2v5D#wvj|g2-TX5{+KSg6 zS;KjUSRaW9TsqG{+zU#p5H>@dJ~p?$*{97}o!V#b)iLr^-B+5`gX0n5frvnTcs_+J zVk0)~R5cK32xVA)K3bWjXTJ3t@`K)y*NQTO0QTc+xmWzkf^XpuB4#lT$WIJl!sxzK zFI>0722gPBzt0`7y4P;ZLwZ6re1DtcZ^8s;-bN_fs$;*}^3{IRJ9}PM_WA1L-5=kL znmC6^)N6JtVF?kiM-2DB9oHyuy9d*`1D(OrND~*!$%0#is;k<+!<#cC!V=F@Zaa>g z#j*?PO@7)kxVIgQbdO4n3T|vy7OD&nl&u!gFP$$|aw4(ajc}P%VmW8yH(!HOIScM( z2Ou-kZXj=zVer?VFTtS8vPK*K25s4S!F3R)f$mo4Tt(ewvOgNDN_+5Kql2paJpQ*O zUWf$v=L&Z3APpoYfiGS1xyj2_yH$~NAHJv{$(;;7gGcF`hm5Bb4OWIv@e$VT zP5eOXL748<6f#wp37L0n>P}XQE!CvENA1$i#`96Pg_Tb6(CNFni$MJHll3F)>N__l ze|uR(`Q+x~_g~8w%IA`9kD^}9-CK`5^a|Z}g1c`D%e1tVCJ6DTw5cQ0IQ8SnZh}3< zDqK;jWvrPY3XU`_KeAwX-@16e%|>{+pEj&gvqJkgdR8GF0UujK9fo;Dts+#tCu+!%E4Br`08$;U>K z{5Q~OYMNRwG*U{EZr(mRoN>|lbYcaf7d@aK^aU#ixDS7><-0FYNB2&ePpXC)#*}&F z6xH-h2Yty$?}qIl7>&RmA?9GsuP`=n9%A1=pZt(b*!1$%crTk+^7`r4cqRd|jI5^= z=a)4y6rmuhZD#*ZUnXw!RQW#`JX_=^f3icHktw~Sn%l<&XL7W=Ontz{1U<11*z5)0 zAYE^#-9C$OHlS2{BmTAc{r{q|GJ~Aw4jAD15fKxk_!kzp;sVz2%jY|B4nxz0G{>3B zgyhgV2?oiY8ST-m_6+3j;f_)yX2l;c*A9rB)@qv)AvKmv$I`At=8(z|Apk}tf&S3W^I`?em3Ax;MJ@5hF-iBWg6ZOqphd1 zvS{vTKK=E*#x7fvm?>#PLY~okGcD!p*M*)XA4;kw5*c$&_XE_PoHJ z$>DB&fsj6tiSk`SOS@tF{_R+{i7jmFyyjZ%D|HiM*ZsK*LPN|m(g_&X4=eWQfHK9s zXlTcW(s!4}-~6A~CeYyT`F>nnd0KcS&N)8{*GtUeW;wb1CXbN~dQ0@4z)XP{!N$8s z1It1t$ZXE0+$+5$*6+Y`0R@_#63T#uhBaMQiQ70v%cy!v#(;z8z&|e;`VCwN4`X^t zb@k*zN2tVVBB%R9^f964xIT6vp+JRw?%*mQu@hN9k09i&^W9DgRtS=i6sL=mLpK1! zV0-`PBqdSLUjk-Jn@4OOWjE~3bGGlSl(=THZ&2^PSK2z6*f@I|y{c7GJuy_4e@MsS zjtJh^vg;UqiH8!nfaf@U-m)%>#dD@)9dUe;w#sjN=eM>D0Ghl8&XCem$2IMCb3eC8 zTYY{Xy6@$jFjQV&3x1@&jQ6_<&wrF>sk0jI9K2UxkYAAU=p-2ZkQScvXf}cFh3|eT zxqV8vr4l6i!3gws$N}jX&H*DH#IO#gV26uY%q4Rgy~NpLWSjJwA==>t!)`zhN=dW$ z?w+mOw29W*;Q|Zc)Qze{;kUb=kv;)MFzk+2A+>2lAa3KJ%` zB2GXZ$sTNt+|;Y@&28>WI(K7`LIx$t!j~3NX z6WK1LbXQlfAZQxVw?;DvBr8Egbu~|ZwKAN|6Ur{E2!UFsIBuTS=Y8$wt=010pF}nl z`i|#ECl#bw5uMMXZjQp&$p80jLVd@W`l6w@JmsX-j~{YPeHZ`Y_)GARjps5ww@h}Y zzdGgnZCX`ZgGe>JOp}5S$tq7&m?w5-({WHve2;A^GVCW;%OLEp*y;-lc}0D!#5v1Q zfiKkOMk*V^{iik~@aZ5Q@;}ilk8goPzZ1==8Sk6MHZ_3gy0ho8IfSxro^VkA6feuG zCMvXVtKZR4y``H%gYE3i67%K*VtIIz8WjhPLufx?UG-GvyK4WziPf&J>A))x;Ni*% z_d<++k}jRhH{_vo3Jy6<2y4fiNigzo$6BSue_wK&!z2CYJ>IR~q)7w)#2Tzp%ysqX zoM=9tae@uzchA3=es?|h1Jj@K|EiJURG`-y{w!`>=c3|{rLd{b`TeCOYqG9bG;rOz z!sRAD%(f0#dwgQs4z{lxMHG85*15Zy!T}{3oM-3>R=;bMF)~6KZagN&(=;5lB}kTU z<4a%vOto`;?q5o5x;TG#)a@J#g;t^iThWnzDfF$%C1!EFOVx6!-E5{K?;9_?x`gHw zjs6D@pT-NybUO(1((br{z-d@{@y=(xJf~Y|xG!yF8QpOOSBD9)r9#R6*z%)9y&h6Iro+NLBA-iAIvu!=H6K#%%tU;# zBll}af2O1nvO2=s=NmvhpWO|H5*vKN#JaFGR21rEcIE`9OSe)jgP7IG4p z^L3W|s!0Eq$FP6+iEe_@E`|hz+k6cKLUFRq6mL-zXUsnFaLoE+SI?0lMk3CylT!p8 zn0h`gX2i@3<>TK#Fz*i{;(R(By;{}k%auEVzqYx{XR=op?D{FT2)|XWua9K9p0kis zXVeimwASI}>^=5*AMq*qDPF(1b&nlraN2*-@JU8sx<1qc=FAv-2Qnd(n-bqXyXayKS>%zDu&$bt=i4suH8ZBa0XT8Ha<-80D)ACDYG|GTixdN zOO7Vl<(K?qIU+$>BLY;~bmm?gezn}L$k+pfCM_j{Yk8<%GZ&A`a%Z<9gv_4pHl>9; zbXc=j2J!Ry=kN9}Sd{H~U(RoSlv)$F8aX{5(!Db4XDzG>$eF{n-xP{n9$njNt-g|F z_VRYc4>OLRjx2Du8>a>puo$ZfkVUhP<2)zv%^n~~(fNQiaHbsB%*>KD_xt^k8nt~_ z*L3G_Uns-HU7O*wlBD;Xlq(=w_5RlA+J;!yy^8NYd?Z6#>Rjyq)<|i`<|&llrC)5R zxTHgoYU&Aw!S%x-RidcTmpmsX%~VcF074Ny(1fLy9H+8w2GyM447FOu#*s34UW&_x zH8`uOu>h+*0(gJLVCY5bYr&CMQ^aDY53^sk=Dj;VVZ30@{Xv9oN&<&qH1=aXorM(Y z3eh-3kbBM0MhWo)i$z)B6Uw1?u@Q-#;$Tn&18=S`$X%qgc7k3lVI($1405Zvmk5;cU0KBA@em>EmA4$#WG(d!fbn3s<~ceoJ9V4gnwI!Ywn}6z89U^*63K-KUJvC zDd2mW8opYx&Hgsb?)jmY_jMKA=d#yxOhI`-%8FtNx6`8&&YI z%;T~;bO%yV=ic5CVOAl=r^Qpka|pj~gk@2ShKOm=vx(7{l2 zvnv~YTYU?s4Pc1_2XrGPb%lCfAubYn5&!T;5kW#QTUQGib!`GZz1;&u8XC4HuU?VB z>6STvvs?KpwgKU+8&hxk_-QsPk+O$;EbqIvtF+~Z+;^BmUC*&j|Nj)EA=4FAE(&X(?2b_TCPZQgWjnkNN?=wEiE3)PFLM^W`mjEs!jz123=^z#yY zLHNz+4AyKldPGdzTSxQ1GN%EthM$-#N;;{>S`Uo;-ILj z1EiN_vM%<|k=VZ*gC~4NEvP1K+4&9+NMx&{-tnCoVG5(k7A!Nhjm#cA5VNS`aTy@?b~fK&^O(L(jf`3yF*m=m z75KDXf}IEo=Y%koDPAn^F{EfPbV5%l&jg?1?ZcEat(+*#PmVI>DW>XZ$rjcHotRCX z`{hm*Ch{K)l1H4zclL~<{{kj~u)#!=zzjswQXlwz%^#6eIr^{?_18`$l_rHy<0m%_ zp;@XZex_z?uF{6oLUz_UnA-io1N>U*u34OByqVOW^jZeb8I;4hoLeor+Cd~!vN61J zdWZ;$_*|Ad#Sc!Hos1F?wra^YQBys7X{X3rws;dq@NMpA%9CCugM%Vnx5LW8pc2Q7 z+BF}TF~PsV%D62;tFv>^b zs_JTRESlTn8C|f2#!}CHJGKmqEen|Oqn3>`sedtj6*E-b-yr zlb@rNodac&6rzU;dRr1tP9(3AJ*TG71C3mdof$6xzsl0e2fU+IFfx%pIpdYC*X%jC z%qQOml^k;5yC){-GhA-}D1OB&ComyVV4CPC$sqfi)`5a>mvk$VS_mwP zKCz8P==cInT&9+q%W=5yG&J_ncxdF|Mh1y11iZq@@gjuLm=||%q*8UxO8m51Y7Ji9 zv>&pTT1d%UjcFijQRG=6)&ex#ZkOQH_uILOAcCKkqvZvo*=1yrHgGP`IIL_v6gh5& z>Xu)Lm>avo9htoLm(ux-@-9!i)$t;26*X5DMn?a_!nqv2$G*+yr2tykKmM}}`6HZk zN;X8^Cb#nTb*3#M@6q&29uA%-Q6%+c5GSnCCF|3WRMFXalc66QYH8I8htC$_LzoyE z-Kiz|=n_u@iNGcTq8u6qj=c5_Wz0`VK4Yo7;z{Sg?wZ2t7IU^A2*d?IncGw}PEZdT zo@_dTZ_-k)NQ3Fyfk*!`XvnFnW-#x#lHh(~&^bMzj>Pd=BXMtihD-aWj*B6WG!y7@ z9Xh`z>I`kO|A2|z%t)FceYGSsFcGkV1NjJKvAwd2O3i&fPOj*;9}lN}Bcp;_K#d@{ z1}fIMQ9YS^z@p;hAj4^`M+Y!DnEJvOts@F=_@6(JtCRK9{#R>I@N7A*CR)u7>#=vU z?}uM#jaboFaKFc-KK7cg12FD951sr3_F||p7Q2&h+%_Q(+V;=M)l1YyCr~cvr);;X z9p02ku_S!+;|WAUT4)`!nEe8bdU?lw)Uv`qravzA>!;nRYgb`UkfM9QNWNU?*yuvd z7NI;dfQRHq7H~;kFifjCHwE+mr_PQMgs=2}+*pqKieicL8}C^66(G7YFNHq!U#s#2DKmLETqMn& z2r&l$1=;h-W?wR(LNCT%nYhH1X&qJaWO#$`|AP6$7R}D>9xTFD}3H^CXV@uijz7pL?P~RhJ65`R z$O_7`^=%7USB6<2_hAcwB}2+L_4{Fc(Ze%Ev|Oe$!tlbV2!}R7ddCp{xyaD9{n3|j z(_(CmJV6@La2zjwl~mDo#!X8+Q_9Yy=!5CR{AKv$3*_G~3xV!U{Jg;JZ#Atymy;)1 zuQ+IE(WE;*RC`$8wQ-RyOZ6m2H8&P7KFQ5XJ$H2LzoVo-*-rXg$Egxrq|Ur10~2u7 zyFen2Ayim}$Vq`Lt!Q%khswzMWXWDZtyg-WD_KbQF4!niCZEqv*K zF6X&*(Z^r=obs>^uID1zS0d6a(fPh^e{YI(*a_7CsK*;F4IUk$asV}{<%u)V1-mYx zCr5_eNb8VeVN{6zcOB#>qzBRquGW7~R-6nl<9jz+;6i>0`m|v8{&V?k;5)^5*KDEs zcaiyIjrQAl+TfAaSehVaHrK;Wh~2N$akO=AFT{EsL@FDB5(2Zl61@QV)^1V@7CQ7L zuA~4)7PiKAU=f>l2RxaRViu2$V^pVZtap3`I}1XC2*jUDYSp&_20^?TZ?t^+9ZP1l*a#9~v42w7a#@fF=~**6V%Kh4o_u;&i#z`BCVSBzL$A_@fX zCoIA@X(*l{$VG>#tqi{Zm;7)-^-%3!9o&~V3o^SGvz6ism2pFNAWc*bnvY`xzb@4q zeE*U9r`hNAfn94(U3B3~&Nex2s54bU;MM0(`Coz(9_q3lyQY_~o(4Q9l2;btVBSW{ z84jpz){eI1wB}$TlgZh31IoGHDOSBoNDrvXTQwaTSX)_`?##7zQ_kVIpYfiZ5i%cO zwqH6WZSV1E<}I)__JGvZP;Hx5gPe{Nx@&0u7FyLqtDXJf=ey8v_q;xN2Kn=b_F(Wj z%7^9R0?om;Xycv4%M~A@p=VHtes^`22qjS98Wigzo9L2Ze#En&w<<+-;r*NNf$)2| zbd!$*aioKU+B3C08jZ}KsZFpXnKFU3#^XA}5r>|jQrq3|Qf{{_ukc4nOBW{GzXZsVq*5d@X29Xh9l`^vrPT8#} zMv2B->-_+6>7Qto=L%JROF{$d)Cb772RH>>WBYT?gh8kGU}^s7r(jEmopk7c!Yl{& zU(}-cwjT|Jr`_3ch7bXoIU5Id-BqJY!A#X(YEmdQ^V%MqAb0cLRg0Yb; zHWFuwW(7g??%iLJ@74_EjQ)|7n$7ib>#8zK>Y|$G25|~`=w#f#E*2{tjUIP6-fpH( zj-IpvtTJ@cNVOkLenf$`?ZnLO5wI5{JITghnbRcez5}co@Fw#5ye~hc_1GOKp?``) zSQpBGCDU)N-@9e9Puue63YV5IOdO<9HM6w9Vxt}q`h-?jI5iBS+Vcq-af8JKU71)2 zt`z(TdN(II&BZWCt5N9P(*GNu!tG8BTbaLYSut*M8j;=JDG1yH8zY_Ae>Kzl&_A}z z;^vdhVF7Dwj3t?&Sn><1icQB^PoE3AqDOAGrKb;@hb((ifRTM=BKEkZQIprF#`o5fmqLs)murPVE_`WIK5@?Rr65CU zUlGZ5TQ7(-P%T&~r}-P|0V6=G7elbUkeR6;|fI;N%TlZstaLL#kVOGDAOEo_hxrS|5UEt&7B2dPo!# zNId6-WAK7&i0sdx4)37u?Ja>!6((PL7c@(rnLiWqz#xR4JITvM%d)4#W~Yjtk!Q{8 z_;&@hael_|?Qw0U{x!sMY6@;}jjV4aknBp0(TUaDN>WRQ!_P($L*MX6|Gy~e-k79Z1)daDa0o|u;BKSp+R?U*?)9KEyE&L{~kU z#SD$mw0CZX8EnG_&%D2u|0pyb2O^G_*8J^Igq>l4#VuG)beE%n^JAy^+ocW1`%S;o zrV@}KZa!R^tc(fv#5@L*ss)V-ewKTyKJ?$qW`tqR8jmnUn8NrfsXwO7U}R?gK~>sp zBR@BDR1nR1f+kViO8cg7()|bF8JM~|-!KNw8$LhA-8!68QksDE?-%smRxoZr95o6Wl@D`M1r8N1X8+QorJapM%Ct(w1w4or$ z3|>y3>~l4LpT&oX0pMM%>EJQl+H*|npxz}A3~1j~&?uaeHmIBpUK~j-Ho2YNBxx3H zxVc&mbDSS>k|L5pRmWA!;r0ht$u&hRcs(IUIO#W);tGm*_On0cI7aQI<^C!4Z>`Cl z*G2`HSZXXg+E<{CM(1QM291(sA9;@N6aXewprz~JrX$&l@z*+jZP3GMB(JE>(tNc( zmZ!pR?;Fj5$P^DdUtiv_Q=BC8=S8Ndd5ZZ|n%yLgbkGA{FYt2`$K-s8q$;oEufuui zc&(-JMc$l8T50e%rvuSis}CsQ$tr4SD*Hp5=J!Sf)d;);D;#&>=y=b66v+*3-W-7Z z5u$cQIOy}&p3rzvt1ycvbbV&IWV#`iv7~B!8zTll3CO9ZYgoq@F~g2sWs_SGxI-L? z&7m!$<`)wBkdDH-DjZMaVbL}=f-Jwr5+2!5NWS~+OrF6rr=xWUGsP6D(6*TaJ_U@I zgk!NqlBPO}$O8&WPL5SIXbhrfkNDSgjFJ+&(TVompyeG|5g@2$`q8!tRn+wE{%gaC z_5~RzZ+;a(amhOByt(rk6$B0lU{C=lEQ`z3jYrdJ()OZsISQLa;}E(NNc{09;l{)_ zh70M7M^{CM!l}@WZ9C(s61qTLT{^GMtO!n4dn&C?zt!R%PAR2(F8SnvaDjn>zmiP# zH@+`F;rYz6GRJ`+#4|Q8R_CqH&Xon~Oy-HEFlZZnWL*G#yK`=v=L4kWTMj#A;@3~e zICo8bSIY)F5kc#W%cC2mCfVNfi2wK5$ldn1=gDV)6aGM=9mvbZ^CS>yX{MWAQ?W$ad*mSx(2WbUNXr!t%rLdX^R5X(=Qs*NPf`NQ!yK z6iz%|nJ3u?+2k1|UV%TldHQD_lowQ?p3?qK&;e#@Xc*P$WiwVb%*bWFom>QRD7Cr? zwqVM|76gj8+GJ^5bL7lCgNUL>IIfv|*2RufYVJiI7SbB%1IQH3m}ozm{5?|6HmH?D z;2?<81I8z;jI}PMBXp`JeFB~9@!KQW5WiR|HM=wa3Wx~^TJ~w$u+qnU(=Q1etX$N} zcHHkt0zk1#L`9YL$FqdR_$30%C(lSsxUXRl` zZviDn2=jUfh8Q`-{Z-NQEm=qFgBRB*;s{S*Dv(d2yzSK%k}+Lpynz(AYq-}QYzIsk zUoAM#_b2&H0fx&5fIDb$-k|gk-!>E*IzmKz!oSGju@F@{=KnU; znA4!to$vGGR_B@HjQf3D5>g=Mn=wEvwUKjf9Qz*H?wdLPH?`)>AtA4Jm-+Uhyk|ub zZc0()di?F!nbr;I1ww&0R9BbIlm7DXZnk41YhMG$n!`3NMtj6BR-Eq9^Px{m{-{Xl zT6|YrSS}5rmhWH_v}W9-x07~#Do6DnJP+xPGAfi+$WHu_x6;CO-E)*`X!S)P;_&#` zjq%8Tq1E}f9ITcjmqb1`fdM=jy9dBqDVVtUBqZ$f^iFtnZ-49M!<4gGF!~&$Mdah` z-+A~*#>J3-mW$+eJ*y7)i!Ro>N*}xncS?)1zkisla)*a1U@5_wy80%PA#dsN?I2<7 zuoG#Ay8gX8{zgj*8Ajm55`LLvhh>a#i;ywu0;@^&@jR8s*z!f1sTg{gN`}j_*$Y5j zT>QZg?77paTKX8%BoDNwO`V&E`B&V{2Art(5E_=(3N5M8eCNM5QDpyW&p|3={0LHvgR z6M{GbAI3n(0B2ILhkk{=jK0Y@cLAhS=ytF4XyK6E%EE$2$24ie>}_qw7S<}ALas&z zAn396`?`a`o4SJDnMPD`3XrCD?~thgIrh1c(>TM`amDdZM*OhtgYTzjWNLh( z`_Kvay4SkPHJGL?XnJyg)d!^&hC9oSi0U^QFZKU$V7%pn3*}6EnJe5x4|#y3?Co2| z+SedrD||A6!_v@Io%4qmFT^;M@kBX&dE&~DDubgC+IdTYn1(r^-%c{fs^oiK++qUV zFtf<~o#YiTFxiD+WE=VX)IY0J)^SrIT>04Q=YEDA%REqKmw<%Mw(|bmxkB?-w7&Pw z5a|?P?;D~GOjUa(UK74*Ti8GLndr3gY(#y^7}-Kd`=XEIRZ1bo= z-)!}h#Ys{A{aL-U#rTsXh?=;jx=2g5IF50eVC9Xez9UKV*4WlxIVfrsHEoy$=2?J3 z-FEOZXt`@L#a;V4`44h2cQ9`DNhp~odK=l zv-UgygB*q;*_3>Vo9`uACuzxzC}mlBk1%y5nUB%Ogl|XST${xg3{>e35sHJxGNI;^ z*K?D9JPIWa^a3I?mRnE%QDDxA?lGfB|AI2t?T1k%)UC%GCc}&ASRSO!d_)mI{B|h( z)L7{iVA?k_E_EE;_2d_lg`tkTPu-Rxn;syU7i1-}SM z8J~?Y_$qgdeSHK0T@}IBa2=W+M(TUu{3XyMC=gQbBf8{L_@I&2Y7I8;^OvyaQvcRsC)o)r? zLcq}sB3@>HJWGbyZV-QU(vOiOVYt`$W;}~$pc}L(0$w3V^EG#TUK4P$n8RndSDt$H zqE0N&WLm>`h5pZANSP`PQq)ZrW3ZPL?N10JZOjsD*R;1n7UtQNHnPgy;_jnHYl=qq z%oOrGpr^?8B^dNVi^JePZ4u=eD4NLj4jpfjXQ0vMogQ|2=F%Q1XLL-f;*(jw4@~p< z_zvFl0K{I`oyBT7w!g)IS##_1M;!IUG^aLDXPogs*z;9t=aR{OKz{nT13p0TqjKqQ zO*idBg%!(<(_H$K{+`z;_-#sDt$$HZ$!(jCQLgmkniM%)GBKCeK2;#$!{kBWG{m_YnGy)BnN1_WFx1 z9Yc7`^RBOP?c%9awfL4zr_|SK$`hZb8`--Oerk<&J)KBn`_#~zjjQ@op%1JBamlM~ zc4h1OHr`x{qKcO<{`Fajg^l z`K8Vl5zTsR_34+UIfP5=->%I}0`%hVru}!6WboMBc4W+?&W7@lWTk(=#Z!VrRM#l{ zME*V2G(Y2og|%fitAwaQ%-DOw;d4zQRUL+_%n&aa{Rw}WB5kcpw%WIle$8^<7mC;V zoatzGKuCe0opVx*sK~OjXlaF80wAntA(4lFtKR1{wj@E@f8jO1*KT@P+VBfNJ}ce) z|1^ZWb7G5J-Rfhw-Sg{`y{Fxen1~1-?Lv9JNPm@PC#`~6@mQIEQ#!CnG zx&4IFd=S&!iLl=hbFJ4z^ zlgo{PSvU#h_NUmWOQ$oRIABI&0W{E!Vp%l`ENa;*T6!OeeLT77p2}BG<8@FJJMQ7W zs4qK)FlOJs!KY+pl@>JeJoN?O)7)mx+c7XI#5x}jl-lF3`qok7dBwgKVv8O83Ig|R z{hFwu%(c}y`#>8s%iEE__YxJkxkxzAY)sU`be)~NMBpSc%%V0-Vrs;-XHW8S!ZN< z5EA}B2`R?d!e+6ab+MTA*_?G7W#`dnQ9vOZ1K1SP#cQ3fRwvskxBV zf!5kI$wzmE+I(3**<3JzV7LtE6<=AJIbYl#Z68dzt0On#!6AJ|PfMG&{Quzx2#9#E z(P(Q|1(~M-8fGPU51)ps={)^7lUw!n&S{1^f2q*z)KCC^SxE9DeO|8zdAs`%y2-QD zH)AzI-*7S|KtRI8QE)PTqA1Xs7b*-KD_LJ1(7Kq&eOy`{mTt&onM^%~9pr~S2gfE8 zQ&Qv&o+{FLe7L=TOWw`f1|1ek!^}09tV~@4MG{c%_hLTq@;sfD8#rDsAdZr049)A* z?SF>37y9mJNj>oq*6FPK>OkLTNydwZZFT1gP&M+Kj|dQRdgituytgIi zRyU_e9T;NPnJL0V0V}Q5J-|-P%j&bT&=1loyUHB`B7i3CI9gqNfaER+8)5q-Feov} zv++tvDObpKHwn|C=Lrn>6!eSn$tFKu{i=I9&|m$A$L~tsyK@Bz*`?=6#+Zf3A&EUq zDo_?y22l`mGbTaSu`IWLJ{PDR5|T4fsTTaBKYew9R?#m`#$KbCq*4{O${X%|^X|ug z^fb3-rXC8!tXxCSLOpryK`r)tMydT4&Qmg~UF{bJ$zdbbJxUHcL5Cn&QEy{iyeAA?9D{cV$^_(=LXpawM zHXnX(s2PBU0Jw?F-u#R=L2BAGtebZDmqm(mXui$kO~TeD<^2-3OU3sU@V_A24j#Tlm)x zZlWtOi~>Gc81Bug)#0hT~Yl2i}TJ5xJuT6cK`s)e_SkjqZjs7&chcAcRO5 zRYFC~$w1{EK8Sk$^tTu0XFy{n9b4$&>}nx*`t_#lv+P;(^3tHvkyHvweja_r#|F>(q_c#3X=`jS-GVCU|hXZmDza3!!MpSF^XZ!{(poc=MKf|Bx zDTF@&oP2C7=a&QlP2EaU@$G>d%9~8gWbk)*fVpb)`sn?co1Q>=rVZFBVfz#y2+`(u zj@oniX9K?Kn7};zz&T5e=jnJAP(?XvX1Nz#0ym67G1?(Cry|&KLBD=MB&0>Fenqiu zMUQbrd(IU6F0ykt8YPu%T7SRJ>!Gl%sR}(KWYaQxA#URoK%#WA2qjGAE?*l_DbIZF z#&dlVd;sr0vzl~GOC@{}OU>Ezx*_x-*9cpM{(Vb!&N^On;cQL=wHijVE-;&29OKzI z7q2^Bv6hR=@)K2jeu%O`ZS3ei~ag<;+1wqTP13p=#KI{ zeDiqJ?mMx=8y-FLoI+GwVW9Cq0}nc`Ei37iwdin-lZ~;DvGM#&x}c_>!7TKMIWe7Y z%f+eBk|V&+x2v+U7{61_OkESqB=> zV=`~l{srX+teF09cjh=ldnypSN20Y;?V~z zo%t3)gf4#WNnG@a1LnR%+E%D68*w#O^wqDI@J>;o#w?y_jKbhclqE(9W9!I_lG?QFP08k@IpE^bXRlOHch;W=QeIy}`$^^+mAd9HeiYvCsMgcupYf z_HyF2Wf2F0boj^(VExf6X{Q{PLxnakFGryz*&@|poN=63^Koj4eQ=0rqs~`xz{5;v zP)PWn`U$r%Q(QB|jJ+msx^jwfOh{NvXr-63X%|xF7ybn*ae>W_zNU}rqJA8y1ovd~ z8qjyaAw~rqr5k2_dD&}+G2(t-p6*o5kya@+?5z=18I1khlTRHRhG2@*p!NHkE#CiP z@LUzw@1sIEcEaX06nLVIi^_9BjJ9PN4wI;NeIA3uFL$2Y{***JvPFpLBUQ&OrMPP? zULfz*yeMV}&=sj$LfssrJL)G0t0|FpuKP21#g%a^NJy41J_w2AoW8}GALo`<+)|gV z_>WLu#)#P#VpP`uRDGI|Cl@oBIA_1Ga!U3!_`H6W+VXXEBGT7;qu2^Nu$nFz6am?d zk}5~QwT`}{ zmakf2gok_;V5!xJtRPi&ng#y~JMyk(h%_t}8)5c9V6wQ^-Pbvp0cB-=WHVA`H@Tqu z%81SYdRJ?J^5En6N4f(7fVy5%z&%)+^P&6HyK-zsYCC{rLedr5GchWcD?6D2ur$!r zU5pTH0J9;o=ampxQ~sjcG9Qgu0o_GEo9O0uI^<<}RsXfpIthqc2lxc7H!M1iWw=im z6HptM7}*e2x?$VWT_C)YfC58ENVFdyqJ>xZ=%f?luUsNo!r{}H=lkQ0XzsUka9sD_ zBrsi*O1XpKd{0k>R&@U}E^K*|_GwBT2?6#dGDHlP61jkt#7mo5%&YDaBtOKR?w=liA1`6L^%XM*B$P991 z)tAucQ2XO;|C)^nTIWB($rqn!$nsSuIxB!3A55S-bTPJZuxV5XUV45Guo8zcOBQ6g zcr`@JoKGD<0yzD5hApDPcJi^-#=~-9|Ix)4JH=BorV1my4P~gYW72v@nmcpqhv(|kA<8dQnO!@ zSqc*H%~+d~*rP8kJ5wIY%lTSrVrF>(2}U^Fo zVAmOUmO7gd=`)s@;yU$r>6pEk5O5DCO&?#~M~5iNvdM^T6z-@^>1!%rD)YGm&xk!`|pk8~njKpPv0$s{u=$M$d#yX2vsQzo3O;%Y8i1#!oOS9(B#CkjeTuCM29E z3yy+wEf7h-TNpF8$5Kxk!hZ&Hp&k6vr)}^34RRyd)K}|hat{OFMl~;ze)?Of! zx~n(%3yPlezI;YH_8m=YXv+m8bE{V9tfIDA;=Wt+(8|ycv(HKtM=yk1L<_&}eec;} z;$nWtd>#nP63rHq$?62wh+q7poxa`Zvo}(uYiG!mkA0h6-{cHBCaM3JIZsgb+|q9t zckY<#v>36$F@G>ywDYxMzdd5*5tsoKcaB6=S{P;qq>?`QUUbtri<(E2uOVNXG1zYb zf^1Sl7C6^l#?&Z+VM%AqFHWw5fhy4J#sLRed-Pj> zcon@%?paLYT_{#Cr=z5jtRs}aSDfj9?PAO8H(;*NvoYX*GSI$1-ktUitobPNYMoQ( z*KSFI!LAsot&01K4I^tCFLa!8I~R%sX&G^s773>)=xt8t#GX%gLEn=nx02IDSObYl z7x6^ahWCIWmOwgwH%^q?j5@HXw|I|8K$#BCSO1{UQ*fsOAij1_aL;54*0Y0;04~Ju z_xPdRV@7qmjj$1&k4!O$(Xzo&{dtjBy`Ba2yqti?Pnh%6#Pt-Ppy9f!ee_Y>K>*S^2-<;-y(IwB*&z8fNJ;6M~Boxa1% zpJjo^93sayxf;FC3%-AL*Cot`pht2$F+x<#o8}Xs{S6QQll9)hsp!P^0?psop0ax9 z$ZhLuV@oGI%%6Cy^e>IDcVDb)B4mCDUQ9U{FU#4$eK9}6d)Mo@e1(^0q66`p-aX_| zFBd+5K^+LQlzBzxs;sN1>v5Dm z>h(#aGs)a6OY5W}m7+;QT=W(Fov|VQclFqYje380C-+5( zWb&$OiaY4RJP@zoF!V2A8#K%Xwp3+FSlW6^7`E$qWRw*X#PC)h3X?}G!i3pQjWSf2 zof$H5$3Mb7%hw`ym`!L;8RO?mKGZ}nJH{zPwe8bvosPqmw?%#7og{6UE1DR~^xd;v zYFP&AiJ9o8&;}bQ@^gSb-SsiB^P1)V;a>^wi$CuX0I1c^16Q`bTZ99ZAdh{5YUr1( zs`uOKixf7=Fls=DxxBT4i^bP(%Fh=`Bjz6wu|H+Rm$FHGva$5iYJp7d?Nq|Aux3-V zBH0W*7xGQfb#E^$;xk;PHyrH8BRC!{V{T0{SdhWf2+n^oD;xABWvJ=@3{lD0HL(BN8u>pro%TShcrYgl;&W=1p(g84ar<9q?cj#0FzCQ+6qNd z65|ZqCvaE0Jd(5zm{ZDdy)wr1?e(!WXw^n&3?YgQuhScL4x3BVtrRlK(3J|u;HxVd zf*Bx({K3+&dZ(J6iD)Nl6-twz`+$ldm^&8u4dOU3lojFcC??ic2k! z_GqYA-&X?GK%FG^uryizYS0`%i82bruYd*y%$0M&j~sBVQVgW6fRn?>< zznLVCa+d2Oab|7Nl?9Q3OtgCrViyGkyPAu(M|ifAGiE_PH$x~ZfiJ-z>ukvH8|26& zCeZ#r%IA2DE^yCQo7GhMb~o#gCW<7TtVnemoC=!Ix}*R0eY6BDSf-#?-C`7DLF1Zl1TuPwk4=id{nX8Y+Eq8Gl1)a0(1=zv^4f@%*D=NOSsJq$pQ) z>FJVN`&FEzfG*+d69?Np;FkgvMa6p>K!DfoFMwuweexGr#sIXZYv+n@$cdN4Z>FH4 z4cOc|`Gv)Nf}Yf5f%-1a(IMT}`*M9Z5XNTEM9Cy$<88F;t zW=q4k5EL_o{iIJ1|}7m zgv}vSF&%@SzG znScT6Z@XJqZ3l6Criz^zI4;9SnU8A1gR@7$gf6A@VPd9L)vA3o#_|>3_P0J?9v3SC zv}Qj4xd{vq*zvGoG!qj-(9qzI0lQF;i9bL`{@}D=8opFHqZ$X!&KjIDW~vQ)je1X- zKc@U2CM5Q%W+nZ{K&}lHrEt2aB~M>1)O0rk;^DXsvtP?a3{Tq-BA4K~5jl|!?0AK@ zCQu1}2yOth&4#=LEW?DMV-OcK4>`U$tvf^=#R3#pgqjatF%1Og1hyyE0c7j$MFANa zF=Q+`6+HIH1o})aTqdc=%5Tbw<{nAH4~r6;j$*{_1H}QD&;}T1kg?*UUm+piQa;N| z3+rh@G{8&+fC$bx-I8?mv)2&MI_=lcKln*Qn%W6pmB4k3!Vt(CJMD3~1>UtY7yV&x z+vwcA(!LOecwXm|h8Bddg^X1d`#|5ByL};OcnRAPx8nxMhx8$?ynHod8TneamKUfIyd^m>U4!?<=;`(eoO#a3$pS^k20%cC&!Q=7 z5>RS>9yjFub9~tQn)!jCbi-5fS^Tx<_G^tR<@(G_?v&f=4E%(`ru^>TM-Q%-qRA>aqo6^ z3CT8c?RVys$#d8C-l}0H!(7zO2A%zqYNC?qikl5_lh%lVHNmC;mbMd7q|rUz2jyr& zY*MRALwNS(Cvbfboj&OM95`tg3X(8V{t_Te;tMa|e5~=QC8gk`0GgrsM32O!gX*R*NdaN8 z&yKa49(l%yiOoRIPfyDU@N-g8)A(b-I9scVZxMmRJuc;n#~P`N=8Tv(a7fu&P8LG_F1& z?QXv5b$Ez}smD%SqAlqI$1!R$%_pVgY=QS8dS61`R$;CELlp7*o`0_)?4c@lER=_y zx1lhXcO8juEfP?wmDzk4IDTNq5|7DID>4JLgRNTI_EPhA916k>=qMP%F&0NcxLL?v zz7L+&V}~9$u3~Y)i`(=3twzQb2nce<)-i?M#kuCc3pFh%X?7k(GDFKQsfhrV@BAv* zt0HT5@aygBDNkrZ`0{eSVZBcn4K3M92%ODtPD$ZvO>Ayr1Qd0u4dp&-L9&VY92VRa zHbc%(H9(=?la&@ou)4rH^u9_k!P`m^z!eV-#dqIKpd=W`m4(X=LTBX?KzIi#hc8+B0N~( zP+^YHaPSyL>Z;bSS-$UD%9Xjx{5mH8I*5X~6h{`yWhi&LFN8O&*!nydJn{g*rcPLyvra z112lf^0<^q1(uH5$--joyS-g^CLCYyn^8l*I6L40P9 zlGO|*f#=YL+A~BSOM!4+4YzGy^3?&RjO>!nL(3r^6Pn2{Tlrf&qH6&($z11 zW}_+p)2GP#)bmQFD&qVQ1vvtF9C*5Rl0t+i+2p8TrO{R6rru!zyz;ys*cb@v_q z>U1?@ksj*b4_)GM#rH1!&yTkQ=wI(m)cimKUXy%F8;*5 ziM##ZlQdQTdy z=d|(amj**UGtwg)1!J&1V^=?8hh6x`JY9^$LGPx;wJ%ukJVr+(C$~4yH>cd$QhNCo zvU|F(6`K_gt&0!5D$Ji9{?*JJGJu_S=nKY8Bb5BYM+OHzn|viMWw;5;s5z7 zlX4;dH!f1cBO_5Gkr7&sG-a2(UxEktTUQQeDsKaxUJGD?elyQo+rhZ260Pe0R&fmU zdAv8V!r90i_^SNG37Mj%?|6yVFTtL9EgDhLcZXnQHWywI8DH(*-F zu#ACb&XPjB*%2Af6q-Mk+ts(@u3mm_Hhr%7HXTv$_?u6_?>Oe_<>ojIbef#$)?KLd);P1IOAxCc=bUqh;n5$m3BI608_(^N|lLE0$q#zAT0ChZA)Prr_qI@ zgQ{VsNH5EdpOzihz37H_50ffxB@mT^rq0hf4bcDIfHJgYXB99%znZ~2^t0mQ`*=M* zb@c@Zm-Vv6+V)!kk!6svCyA93zB973#sQsG3dVZb8os3o2Mj6Fll=n1ox}E~ER>D? zck}Pg-|OxJv2(L=g#F(X^2Hp*lzo1tSLc63&;0n<>(ZhW%El>aDY;46L2O$kOoI3_5VnzaW8})F%#_IudQ%J(8y#{}c?tS`;7grXT~l_K*QKsPj$P+4yTnP=0V zH82R58-{gB0aCAcycvk4n3W?eLK|~z=S8_gZ`DU$7ZJ$B<06lqIoNEXS9F$mKSu9Q z(h#zYvgbZ9@K{NRfDOyRCN-z#Bt2&kb7oHy5k@p7mT>cA7sW8=K@@aw7Cwg019~FV z{}$6Po*_@FzQ!?s-*Wr9S+?h-Z1pr{7j6)3yS-|?ragG1acp%A_JL=e^!fBvuZeru zL*_8{*Jv0#o64zSH9YAxyY1>x{x*I~Dp7$or+KtTtOy|y@Cr#zT%5fm^j#{O92h>n zj{bdsd5ECRdRGke#|WCb4XJWzXVIyy;(LR>x6BRQJ-W2_NI}0+}WzmQT%8KYY>6md87< zv2~h(Qxl(FtW{Wl5GRpC;&&DVnqpCz*_F0CMdjGWO+CZN7ziVbaW+s8@9MxKx&{?Z z(abic(A;sAi9V5HcH#AuFExNXW}e+cHAdB7EKCdl$B%8rSJmyC+mqpGbT;CDO z0TD^tnrMvG&k|Gm5FS;ABF)VN7BU6*IdE&pjk%sY-3TF{2IR8s@DpL zjJ0r#usb!;U9PbBPO(bmdv#%{Gp zp)eOXGO2)V(Z|NJI*2}=0-J72r2jQzV)FBYy%r zcHy98@;8?{p&p|cmoVlqCr7>L*HGXOP}+C z+Qz~o!BlEe_wcqz6Umc2aV9B7^ojJd6p(zW#2?#jN3ady(0)cZa|52g@IOkUbI2jo z*q4x&(3f!KY#J6vunq&B)lx>x&s`Wv#Qw5=n$WhX)uqcI7q17?&*$g_e3#0Dn1I@M zf+W};#rZ95*BS+Z-=_8fE9+-I#0_IY(uw&YK}I~4dNxhz+?ngcGL^QVCy1xwQ6R5x z>kdC{O_ZJRBdH+t0y$w)C)aBT>whxW6z{~SqcrnRIiW(K3W#>{D_<5l_(~v{OaCf1 zFn)yB9V+wBSX@J7^>MbD!$5JM5xmBJ2?hdE#l?ZK$IcsoHTr#zl9F9W&eHmz`tXY{cZQ__>;KF^vk?IBjr7*SDkaEb?Z#}f2%^B0Gn|;V4tL8%$Rqr(?eg-zPjaDt|*&c z?~3#bhOo{?UiO7-)9|4liKi#MLEZemwh@#*pNdBnnu5vRAux2LZU@*PQ9?>!p=uaA zKP=yJKR+W#?Uy2zHJBUgo`n8U^STd#$y(1~DTYThKOV9AGmYJp1(tFGC$0G2e3TY; zMOoYeuBF@PHhMqq>1|>gthN}-$pUQ>e|NiH6J1-zpajTzt)uY>=cayQ-6uZroOa?) zt8?O>MME;*PzUovH%0y|kFzw+%_N~AcmEkx@WZq#tC z=v@8ypB#0ardJ7sZ=-BGf1q>{2uB5B>)ijU?Su?Em#<&3-pT`)1p z8QCJad+o0+uz~cKn>7BQ;AAiDHAx~PxzA9jYNm^@M5soX!Rz{?Qf*A+t-ug&b%EYo zHzt;H`}Gk7F(&mMo+q(#rvox(zlch3Y5aoz8D4i-iu51!2K~fG5MC;C!f-x+suP$g zI-CfgV4;nZ#$Ht$cnN;TnZ2PdpX(5O&>L~o?6-M!(t z^||RD-s?&A|BI2yYpg;wQfZjhMHNyN7akC8U#k{fZ^eCMCNIf5{b+TbjTTdIht%KO ztWQaY=Dy*!qm{Cw)xXvLDqW_-=fxmeWv+5<d=dCDy0=i|EbdCl4 zd=WAlxf#>?^NGA-yHf!rz0}bheT(S?XM(;EMIBKZgE0oaYHGIDA44-sf(eXlGJkOh zN~W!Ra~v8TJ)L-U#1kw5A>3GroLwKy%&guHM_KJL4f@7xd~~XlBNE3vwTbHFqGf6^ zxF>(8cI&Y1SzS9_xAgEUaY8X$k^JwZnGvyl1uiaq&Ywv9)bIza@tQlmqdjtTjb`&7 zGff9oMbmdhxk5|X=<>N>0BfI1=RL>YKg+q6eQcVm9oNnk^N!o7^Qfc}knmZ|3T z&q+KA&G^Nv=RYExAv3FRqiN3isP9fLrZ*o2A_ljvYz1B3a$n&>BXHGTQsZpbvs)xA zo19-nwdIerLf5D`7O!O(se~=-6pdX}ISyEIQojltWh2|~T-^>9OqHeCQ0vzWg;8gG z9tu^^otbgB7*7sAEvR;JO%yh3o9l5Gha->$=~xLEe8D&@^-gfz9^@!$O#ad%r|#j< z4~=p_F*skVwFk>JY0#+I-0@d?#a z{(*Y1@ObmZLW?~>!l)*Q_!Hu>Gqh$aq$-qrEu>HAf?=td;~Z7K9$ni{Tl}TNKU`TG z`?>s8AGutflfyhiQuEkX%)bRM34bYo?E-09ZmSs;FBle^IZSq+4war{LF_`o{Q1+D zKGvqu;jH@;;6n^6xDm0jtt&fso3+*2pWJ0VW?}ev=gZT@g@r>%x*FBEaMxFz9+bvh za);+T5_8*`Sv8TF&s8-52h#r=k|SSQT5Udknb!B5YwnEvsKW8yqFQ&iou7+hit`i; zbc_Gg7vd&3uhR4~klJhJ@f{Nq@p0A9W}($n!fW;0u_!{cMDrBS;HS2VgpG46+=hhS zqhPUGd=RE?+Vl1Dv&hBOHqF48Hl4_<-s+cE-HA-PZY|xkLc^_q8 zAMurMedA_pu+%D&s82&5`5C2Y6kA%jJ&b+Bc$I9RiXGg!*VnMvBJv6GIgFaX+Z_+5rpzJn<7!U8!vNAb+h35^BMK@ z7I(+>Al=HbKr8GT=^4@O_*V_`=`f%k9-oLnUKaHq#On1B;Lst!n%yL=5#sex0 z>KBu(pdBCFGIQ%Og2)=JoRlN_BhX#9#4wsANa9}{%s9?WHKO!u?WD}?QeBEA`) zYkoX;s>>4Esx!gdmn}CXGc(^vRX(U4G$V-h_e-vh}X- za$K0IuU}N?ylQS2EA925V-vOxLeP66AikL6I8EjH9sKW=tv%{9l6Mq|Thp&YscM(g ztnc1Su|1B%aFVc6SqA;vp~cHm)mMu4<;=|MoGc6Frj`l`d7Tc*ghC%lzHI8+)P|XQ z@l+229Xn+%C2giafk1+rF**4j_DZnCL(+iM;ix^C4N#5ht1SBowkqXCzQu)pyfiOK zXO^m;U)=6yet9KM4-oX}h6!$3cwU{`C`@fF~%z_nl3zVX1Ow|S9diNKEeWx+q zQRMc^bM~ztwjmol3*^x9KWoC5Kc^&sd0d+*-&HT?&ApBSmq$VV7kytS)uvia_i>a{B zPh^Ebe;15?$#+jDQ>=V`N?I_d{1q=ys#U_lwBFL4i>hTCp0_%8^pm55uE*e|fAV{L zw_|>VT2Z1-{)9JmiGTh??N2p~^uq|7X1tk-`=Xjvt7aX;ymC_37k8T<>TX6>msgMJrCaec6WjaIFBwTy(G z?I=#&R_p5G2f?H30~O-C?AzZ~xJhz#R*3^q1PWVFu%%j7eb#<(*NJ%o?b>4FavpN6 z7yIwqr6bBR$h%q{Em9JB@$pL8-#@e2%_+{_jZtb>L?mcA7V*FKE?+hi|5^rlMuUGw zZAi+@8K6;V11ACw6eQNb11FbGocRQ0s>W^xJsRago~$c&Ob;L4R?cst51e9SnKPE0 zKF^<7G2~tIs-!`}{Rd_(Gz*#q2KklBxwks%6w1j2{*L;xiDs9Zj^V)taE7^=oyX7p z7)6SSedF&nhYPV+U;b&QxuO}Vd)feoG|abdvWK%~`JbRx95>9YUY4u79G8*hiBXy4 z0+?=;JCzi=^MSymNrHrZ~4q|FDUBt!(n zu+3!uCz@H0!#mpJK-E3lR&SI1t-7Uj0mA>7*b&KNu$BcspF%H(i+^{25O@;2fzm3N zLK+67waR}0rDhEL1mBOj+%(U>v&(mLWn!XxvlW+=U)LuW+}3TEGNuoc>xc3ry>g}L zIK^jP#4VhZzZ0a$562c8E2go^B8s)D(?74q7a?9~4=hhj{ng)p;W*FSG{i&gK6fs=hiZ%76QsMnFW7PNh?jZjhAjP66po$sq&;q@^3A z85)KfN&x}s?vn0ih?)2CcklP!`_5Yaudef)&pCVVvv;Y*Ij~5P6)xec<1o|?=nN1I z4aYk8Yftp@IRAQ_ws$_fQ7g$nt}VR|MeQeKFcdY7#WvjeYV$yZuh#owNI6#VbH+~` zAWKM1A`bdtAB6;8eK`U%ZYX93Bbef&1o8X>2VfG=n~;ZhB9@xz$xi$5{MeI6+4H{C zDuem9^H7zi#UEHCjj{*U&SgH~{0~R>QnTdZ`GLmgoLrYBs%P3Au%rF#-4hnnzWEh2 zPRgEay9{vq&B4uRzjIoS@W;2Wt*D#=%3rNcZ=U?!6hwy!eKGErL_3W1VdTlK>r}$- z<%m)LhrZQhu!*X|8;zMEXzTn4(Z74??`JBjYr}S?ezT_zILI9?A{`c;Xc#zE+H0o} zkgo{1_*(L`sI#$kRdmby*qau1K3_Qzr4v?_!Wgi-OI=YNQw{kx=HmsrkHA#rdBG9Z zFQWY8+T~{J{wzA37>idcy(yL>DV=)4mwxH0G?8AzkOC{6^g8~4R$!H}$AtQ2LI1FT z|2lf>W_wR(PV!4PT4c6_<4Rq;L1mCX<6aQNha7%Uq{S2k71_Sq3RbDKlvCj zS`@BCT-1Fgo4~h7N`3UK?^@H^5BV4PIb<^_IlTEc50~eWjqaOZuey>lZeTBXQ5D)K8tl132Pb(0=pE#p#UCuM;WZ ziK2uK^-pK8=+VSXw_MM;#&9BHgKVkZb*7TKZ%Dt?)#@ggAXtcKT2)`jD%II@qs&?I z-7vRv8B4CMoP8UBEUSExQ;B1cSrPwxeLv(n`4^fE7C~R+VNKA4iQJDu9HxR-$lI8J z{$3)#Tfqz)X5hX*Y}gW({`!EpYE@KwXL={NqNRm*vwh^4*?tR$_PF!Exy)&yPvc^3 z7Qn)!`T+Zz`rMqB9|5$us?xc;n?BkSbo5rQTkos>#F1d9d?5v%rJ zxHI9TTb=ae6z`lc4+?_+V)1G0Q-CmzY~QC*wm{kJY2$4(t)Al}zC*mi1>mkoXPOe@ z1l_>^Ayel?2Wy;v*PIn@N5M{9=5(rS&WO|PD5=@@C#7K^BmxXXc#}9{zA>Ta!-(NG z-j0%UpGX;3~@%R`O zV|>_#vb#j?<@gIULl#jNq%3;6H7gvPjD0F~iMTdTV~wa`^3v`1k|@WS zpu(a4nG6@Of0f3~K=9+c9iXg6WqhTPJup5fo40b0sdp1aQ|qDb!h*PhES}u5EU#WO zen!6(qSlsRt$&!@v{ezuf931)!tT&1W#QLkM%64|ZwUpiAm}ty?3xz4IdW97-GFY& z(14Cb-*R*3e>zvp_^2$<2#Nw984UVP6vU0c#CiOgtOMRsthb=brH+^^FJ%+kJ&%!V z9R_O;4-ZRA%iCvCQc|Izp^uM`0XHS$KfAh+?&$9PZ#fD$NO9jTl1DM@UOE~dW3$6v z(fY}JTnZ`61W6Va&IBlkc)io=aaE9$m9z3wb&t&-U+-8)4vB3D%W5t6Ix*rzu+jW{ zK!!LeyHDWyG|quBI{)c;Q;??4bG%;rx8)UtE5|0cCuG2OMlmejUBzLbnWQF<|6aqr zUdV~unQAY_UBGwwQuP@nuYkx-g}hNVEHHo(n8-;B)ZP)j$2lYZ5t>4^3=1t7lE2?w zQ?KBU*PaeRTjD_7AN$4LH28_`M)uQ+4x~tkg|x;dvbM~c{%;Oi$7-f`%nxPFT{?`# zmbyX1&(Y&<@H`hX`D({yd#`%{O$c7^_%X|KorhH0ouX~^!Zq{U5cDMWl4P=sGwYuthQA5I4evmJ*9Z8+yQT2gqC-aTn4*kzV^-D zx3BJ^EHkOXC1Y+IzHbd30bTBmeP?KFo_5*J!Ea(0ZMM7RCPnpT6b0MmbFkmoi*FM! zywYHo9r}co47ZCES*_b&$`N9C`FVC99|FP4nlOp`m|r&F?e|~btoBE!ewyy?Foce5 zmp-wvVSZy)%gcISTqF^r0K!%n9D z1{&5j3%Xj^d8?DYJi?P}m*2RTzRYLlG!VdK zR#h&z2D#=NDY|+2S^KdjadL4@EH5A3+#A11rTskbpi`zLnIGS6HpW=k*qA(Qbpi9Q z)%z+IDR$x^wCv>l>iO>89w`NdzxjhWu&F?$9*rR8;s+Ccp7%ZOOU2_-7|Go^Gwx3# z=EjdG9}ltQRR~B)DJjV)XCRATh_2sWZ`}aoavBsaZlm6Cc^<{?tkcivc8=zh41qZQ zk!QC3chCDoP?h3m3X4GLCC{9K@pg0s)*vCzC90p^rh|a!HFmPuHQ*lDmn{!EZOgQG zqXZiJ-Mr>97-u{H+{bx@9S4qJ26wwb(<9Ly91-1lNEZ5?j6xN7Xu{5Gniq<<2HeW| zfI|MIE`LO&+(!?w1lF(0B1`#rvE<~ZD((}LKLtGA6gH&m^b*zc$WB^T!^f|q%P88a z1FY{N&D!uR_JX|cCOi6Mj4!~6R%G%8+jh!HRk0x@+@`kQS=p~q(+AcAX~zvH(L0)I z!n*;n_B-SxPin5#0HwzKEau-9;z&-0AV#qC`nF;k^oFoWf#7Z9`8n{o`d)BD0n03D39d7N+sRPUYFl;~XinOdPCFF88#Y|40S8mMmQ?e@(5I@{Y|m zW!(nMFZ9011f}5fK|>Z#0YO#S5;-0BtgxR&sI06k1}3JTpP#U>@Z!S4Lty9RUV|Q+ zY@s?>2dF@nhOpy}do=q=bwN-|gS&7dxXn+uKA01X?;ee87*N ze{#vP(QXfmSFQDhwL_2#9CW z%P*|;OEF9;=I*SnM(Q{4olO_Vc6V?sF)%RHtb~Mw7CJfe&ZT5-k^J;l)j%z=4WYhw z9G+N1l44mOxt-wegEOyPs)$}|LQ%c<=Gu%{JW9g93s?wi^$Uz+6h{7y{i^kJKLx|czD@l z@;ofc{bRDNAoIH&)k_nh2-AIhP-lACYSr z6ThmQJd(wgI=(44s;KpQX7u~QRZE|uy_PG_`i-EsGTr=MHJ1N?W>CN?U! z6$o{9q>=HHpc$;SKB&~xDt5D}va`MfBNFFVG#-0u*@fnrmqeuwZ=#fyECt71rgUm-AoG7amHsJ-v^0juvnVNRmhD$5XIs$YG~=`hDyBMdyz*C zkaj?_)+Q~pulk2y0mQub`U2*fDvB{)QA&jwF6ceHYC}l?!I(=WNL81cEa&YBN%u`q z`!Ss+ISgVbL#E4%<#4}S)TLH_iuFobH)u$yC8%O!*%XL0cn6WNcF+FxOzg8?!M>LT{EQu64Iu*NnD6HR@7SXp2iNqj zBAb(wEHL}!<)r|{vveide6{lOa%>!&$;rvh%}w2ElgAx#1nda1YSQAibx_^eLG!bs zx}()*yujyT8+yAD&7p*G2UFyLUY-we0Ll^S0Q>-|M=<}&C)5C}yYjyh$mw$JOg={; z*9~bWCnp&h^lTMfmSiVLTXprxnQ!OGfg^2({=ia&^Ymdx+-lG>4+XwNfF1E^zB-v@ zq_E!M%g|d6g?eX`)6&v1Bt>?c@$mD{27Hj%iijH9^LX~`nM%g#`uGRUlEV2O!Ja{% zYOB$xC@}Xb0uwAi4OuS?mrC!UX*HhXp5j-b6Z#2s3`36|;REoa-*MDlzFH#D!<4#VqQ07B4s7erA-I(6^;ux}4hKktf*+ zNUf6AF23SIpDHh!PG|;ESje!itxcixzolWhbKWv}5I{CjCDFgfy7z7;PI#~hlR$UK zZJMY*SysroXZJ0z#CGG`SB~`7o~b*-@M9|<6w`Y@yA``kG;zNN)P<3M9OVT`GrWni zBb_Zae{NOw$hw)(Qf`4ZcKN?0`F1GTHYFLHOO8}9<%&hIGrk;lTHW#`6FQK0MxFr1 z8X%-W#Z(^4IN0W{y2rKb7Q4LGAjf0lmfHi3psa80lFqU?;wv?;y6NL?*kloV!=W9Q zbzQeAO<^*fI(hcW_xKAs1MbBX34$C#07bDm&Rg4tvC8~wEU*n+pD87twD2t z=rSR=vn=r$M@iUB1uix;`rK~?yq(8JBU^)p2N>gnxaiD6Fh~Df*YnDHpq-qk64X_B zle(&dFbd{Ao%5L5%fe=b86jQ4{{=GH0;C>kAa||p`_w-zs@G=ZR^arOaD9Zya!2N% zfn(Q_=$tTj$PcJ+YisM06QtWL{yiN5c2Rq~2qWXpT&;z$*P$NN_bQQIG4L$f)PF~K z6^76EaN94Q!|%LOu3gdOxR{cam6e*RtF7H@$wi1AHf@KChT^{Tgy(L4ckNev({Lg^ zi^-(NL(E`vJkCcu$G`e94$g-yM@L7Y>}T2U6%+>Zr6R8VKL`Xq z2(U=fB-rp}st2r${+w7@4V&aUDfn1bz6jx&d$68Vx&w`sJpv=H<4~l6sLZMrB}qqr z$!DIMo0|&Yf+0No@bK_Q1Rf(Domn;n>UTpW@`+Pa6x!58#2%9^kKs6caMje%kO!t` zU@(VPbKc*ahy#9KU_*!{SNiG+s68X}Uq$WzcJGiX(7Mg45`o#yy($00?X2Ld z3=yww>ilj4$*mR?%6WbjbTBbVyNB#q>SI3}6-ZE#=WJNm)VW2$fzURF*xAbLgDBaP z;Xq&e+1Hu;L1@3&Vrwf5p~xOgXyGm=u%(pkrBd&QClN{-5C-N@Hg#^TyV`3;`(IuY zO!4)9?1W%kvQ0^W&i4M>^w~e8QfwJiOg8s_YdgFR?lGG@7s4&ld$Q{?cAYgkJ-1Ad zZngA>SCI+9lYV_7m(@v(sMz&SNega+#1sKRY*Y^6KnR&o~@EiG|vCNp`Jpm)S*M zD4-f&)(n{bPy3b~HKQJ8`Sphw4qhLVeCYeN*qNsa^zj>$02Gzkjos^OT-@JZ*Sfpk zb*^$GE1Z3LINR*k1sgPa>`lNfb~;aca1d9fh^q?I$9-}5rg-4(59+`J!&Tq?vJy@% zgvjINr1)(&Uf|tiE_??B-$6W#A|Bv3ou)Nr-Gj-j5a-pL>}+L*q+u&}Rn^hobe3d* z0u}R4$mZF&&O+HoKv)(otEM~vd&!3bRVVfSmc)8P-iqNXd)!P`s%2+xzHxujiFmje zMO;HVAFqfpv;sLgZa4O)D{yddK62@UK#1=H)Fh-lUIP2dUyU#8Su2`W<+q>0KtwOh zO_&U!35g2cU!YLOAB8u1Q}I@*L&+&AO*Z2+9{FQuqBl$KdONu6XPK)H7{t!m( zv{GOl3-yb_!a|*jWXb%)xmr}mqfW$q=ig@D(1>_kMabYq)LV}NLznr&?2~_u?q7%; zY;OcER0VX7CT1oUBILSI(4->-&EX#^zRr@RML26wx9j*o698k*;~ROpJv)noV8z*T z`?^{iVfUTh8||`g$;9%0sCQF1npU0kL6RzWsm~nN`w{3XZi9o{I#(1eK3#TGE3f;N z`G98S2>Homm-e=un(3Dw)C2v^aXmAIvccw8XIkJ>t2iiC;q;A_RhnpEloGeoep2sC zvvOReBKTuK1h}q%ikzVem7r}T>urm_WxA|SHBx%7Yjhv5yRtSpoOBiMC<%DwKrN+F zz9;FKjzwzK^zu0`-eYyIXhN@L+0ZUq4O5+$Ej)Y=(A|bfaEOFbb&7Hd`8r5*p9`T> z+L;*|U1wu*Zs@?>WX3~dB-%Z9Yp(n!|aWFX#9U`4U3=fQA+6l2dZkk-z7av@@8s1)hzoJhX*Z@^9F+_)UF$u{zv`5e=CRdX1A!OSc|6X` zxzIg>D_~0CIyFTD=^=_7&|=B$;74vqB)T_L$b#<{qQO`=gP6CY98|kn#gz(Y(pbAoWgw zhF!5<5_?=S-|C2wP2IBeTt}VejqZ=oJfD1WD$pMeaD@!O~F~HJ2 zrVSk!$>qOK%^R1TbG-!zl+Ue67f0?s|!dDG;2WNqwozC$wIHdh{rgon#Eu@(9$nGBRS(ADi#)bGKJweJ^1ZL5;ZWFBPk=t5fS;;XoAT#(3df zl`a0JUno}1j2&%+%j>xIPDMZQzXeObYbZcDhW6wW zfz|SZRDunhgF*1+svBf6?x&fbtNWlKW<6t|-UrW=dg)zaR`0|9s!cTP>^iufNuZ!6 zNtO?fY|w9fkMDq4(rnXl@054G_7pKsgBGWZ(XyyiDsca(T}*hO)O&l8ElVL=QTQCo z9-RzTxr&fXoIemSB(+z5+Sq%xef>%4!gOBE1=_UdPZ;UvJc$>);#QV3_^k|Z{6F+3 zmLb&5^x0sIxpY0|(89Bfyt4}64)p~O8O0jI-J`1K0vs*NWW~DC8L?-AWGy@sGcIZ_ zI`egUWp>UHd;hN;*TCG;A2YBK}8Y{Bhw<*qOzik0{`zN?t-N`QC5bIL(B()-Y7D?4RB;lozL%7M9?tqZ@0U+H zfIlM-2lvcpmy@c9Lu+xvTJzonTDif&!Jp=}i$_#cRDriSZ>=mn8mwzn_xR~tFIE8A zdb|0MmbFSg9*0zC=^UAy@Ur>3P+NPbcZS&2)1-K&|B2tK9~`z5M=gGQ zZS@m{fDhqdKg{DH)F)3yNl6$fty^W}b2Y7N&Fa?) zzp5V17B0~!Yi(;QG=u@T#crml?_LoImI_LT1&CfvY5w16bDosDndE$4+3t5zDqUa1RC|w&wY~% zS&IBeJ(tij!?73tdq9gqzKTh zxnIQnviVs4lm?t2(-yltRuPm4Ig&x|07JwZ z7B7^l&1%6%O05>B!(FJ$CS~x58|kx@UzwpDr5}6X!nN(X;bmX&j#Wj zKH<#J7YRNbHHyqP57_^Ax)qG=tfrNVLX^V002(v;toB6)fV72d=Zfn%#TDjkv?K%7 zNkRfRl4@&fV_{*j>QvssMnUi&)bLZFNzN?oUAv3_?U@gg;*XOz9XHV2$3tsY-6|zj z)sk@=C=^OU&*Fw57Y;~H3ep=R6Zxn+UCBnMFLh0-zutd8J0<;)&@>DjV0?n?Y0Ak( z%sZ?Ai=IOXhz~a6-EpzxK1wO%@oV!;WbKu#6r37lD!j-%grE9QYqg`;+^ASA0AdF` zFvN0mv$LU=1Bvs4RIQts&nR9c4Fqks zXMf2?0vE*oBAnO~0$LvA=7p-YnBly}@}OXR`hvxeG4Jk8?T$|IGomozk%!PgLkaWE z_m_rSEzoCAA*%VC&y3o=iV_0jVEr$75TE^tm9xVq0`YK#k$aP88~Chwb!pzl@FPyI zQiM9bvV8-Bf3D_iYYq%|@ntGB7&-k-{?=X=^Uoww^p86=nfKuZ$@1?z)U!0@vTcxP z<)@%Ce~&gXW166{w~nCS5dL0H?=IWrG?35EH!_9QDIQ2iaiRkcGY@Z=Bg zf8T2(pl3}jlMAr3`Bw-9`uH?sDM=HBoHDLfFMEISQ9qoPHr8v7cp4@-FftMw8JR8) zf&&k7VLIp|H6btt=2jZDoR8&85fT!*wX{PZ-b98-S5L3T9eTJ!dhp1e0sEP_He^7f zrx^Vf_hjl&tZxL&I}rdqvgmAwLYK`r9hO@?n>58T{qKP>;HnxFaJtrwnF;Cv0Nz%= z2WcGPoWSd&1<@f%etV)}aS^JM2iQe4F-H#g@bRD%e(-mF!p1)I@*^0cG8QVCBqb*o zHoV7fLk6B==a7G+B5P;nW-gb`Sa-$%L+KDc9b=2@>*A*Inm@FTQ zY><6@AObk;Z0L(^)HSo7YeOw!qW3inR8ZJTsS9m`kmAWO&K8nK4J#9r=D%B*Cy9 zMNJ+Aa0yr-Y-0mSEswl67=`N8IwA+s7XRqnZiek(0`J}V){v%##-(on!O+Tj7*7wLGSEef>Ro?5|qI*ps(O?GQ%W;4U$96xh@gY9EZfxH4}WwNuIkLhA7 zvF1sP`toU<1@kn;fWY4jyH1(SGWJ-A*Kz-ppM@Il_pQ|DBt2Lboeq^_a~w2hT*ZBO z;DVfziTuXT7P4YkxG7n_EOPli?tUW0sBsy;==(3Q->B~1^-QMM+y9Dj=-z(Wf45A6 zU0TY)M3cy&mDD$qRTthD_*Od{s0@q&a3I^VTo_?@q@prSk%Q#uOAi`${N#mwv+;Az zBdC-UI8Twl23*VAHJyG=W*BMo!Tg$83Cf?0i!PvXFx}@zcJg^xeAh&4VqQ0@{;mcb z>>n!`O(kFfalS@V!$1>Ke4BvJgD|rN3At|;0K*lI%JSXPojDdZCyvKO=vQ$I>KrIe6dq$T` zxS<7nlId+4{ysH?-`+HgFQXmUY5FFWn1BGlB{qABO|!tMSL!?S*13;2AjFOLiVq__ zeG%|0EVM8)dllv5#{>Ww!2Oq7E}VqX+oyNtV?LkQ3qD_8UV+mCueK84=#`Q4O-)u^ zZ18b@f}g=ZMY1$PE<{`{rfLFv_ZY0}oQtCa&lPln`)sFM2Ld~%(^9iKLy}C%v6Kx@ z#`(FM$Gw&Pe?X^Cm64-0N&^6?p<#DS7l;)AD7jWl3Grh10SncZ5HI6cGF zA{`u3(kT}-XH&5`V2Lr5Zm*x#8aHSc{h3TE={++LdFj;oxv$;_RWB2S&05uT+MBx1 zWRY2g263)4cD7;~z7}^{3@(F})QG4S@F!3B&=h)BBB{9SCYLsZ>3nGmvYk!+ndM$O zQsxFW2P)ga|g3beoNRjS9x8$lDV9o?qzD2 zq$k(}$l;l|aD#i|U7~?bTZuv05sK8&`;7ylvRw8T%K$Arq>U#%;H2XghcNYTuV6_SK zF17Pv3&6a#XMq`b-dCU6v*Tfl19W6>>Idw3osUP(Cku^3mRyYxh`0#lxWy-rpJP^F z-Z6^-TaIL~vGkYpL|aRJSTXDtw_4jFn$~(LUbj$+I(uw{>bJOQMheW@(!;~W@{1F( zQ{necZOXVe#9sf`U>N2=SklVMU}_!q4#oz5+;(> zj{F=a>0h97=>1}FFAP; zm116!fWdCld4C3oZ3W5D;v3l!>!ue>iDW^gYV$k`el44iQglb9n>Mt_rek|_JPSGA zt+SZF_+$0VAeK%$&au@TCuV7|tmI5fsB&4(aDp3feN56T%No0oHm}pIk(Mp7{t;=Z z)F#fp*gmv-nKA*Zdt2DwgCP<+387=C>W^H1L1#KrcfSDC+{4O>9Cq}}(dR;_l+k=n zy;A`VCx^BT6f(u6JDmU$0myLmUoCqx5Ne{%^(9$5yuOHAIHs}&vCz3Q(ah&eGN;8p zF2wsYIKW9+yYStpYp259SSG=*&G@es-;^x}GGwxi=UK;oRJ!5*r==rx{ogpVIy>Uc zy18o|$WM4NS{EO-b~V^sSeZp8I=n(yHn83e5PU4j83_rscGKm+8|2hvGC7LG(fM$` z0`(&&CkL=BfXyyUghp_2a!r|U<*fY)7;`bB0+@L+QQ#5X9a{x2XR>#n8Amn2MNkV z=*d6E0CB={b&iu4h`c%PnezHeaev&k=>Ez~&?mBs6Z1q>B7Xm4N6v+m;n95K7>Gbk8ZLM_Glb7bqZd6 zTiK%@;@Rwb)RQ`{CX2OPg&8HM1!V`Z+rB%&l`p4aMEXdZ_Oi_nR(#~hS6RtH#eKC_ zWY3iZ1jvyZceoOk*0uq1gUbs%yc`>Di;wVeR`Qj(oGxwhJ?!l9fH({fv|T#~VNVkV zw*DH739ex(P`w`S@e`nQH68Qb^HNj1=PBpB6mwJ&kDz+@K4>8@4ymO#*cuyP#viT> z{j&AaL7&=Lv{314u^nd)TXy72YlO~}@&~qndqzbLD>$oIr!S(n4dwW)^|{A34R(ok z!NZ>}cp#n*yyCLmz47U>ElNTOcU&9F|14rdzjnVshooxHA!^(vY=-sEscl))TwbOT zCcBoklk-$`O>V|TQSoI4taSy4;SdLIlCR#Lr*?`MR_|FOHMEuF`0lTDhdzraY-UKZ03Mh>*o79Qpf8H{K0x=F=0{Gbsib?kU9o_ZgS{8O#evQL zmx|Xcja+# zSVi*WH6l;IquZ)36#Yqa#McmgK15!##;9J6sKs>c5NtT>BKcb?q?moxUB{MG{D_Hy zE4om>pw4H}%bL!d$F}Y#N<4%#cw?A2-nVBQ1Q04r^rQcXs7vC?4b-xxx1WY1h&-iJQM8 zl!b{WxHl#Cjg%F-c@_iItWfF$kyGuSa@HK3CeYBMuQy?(Q%ln|g(`zG{1HLXe?0{{+t97z^9gZ4>t{gb8sa zqVI3jr1Vw$z8Y$+F^@f5Hc-j&0lCr0c4-d>UmaH#1)pnD&+Up?a#I?xL8uRBlu`W! zJAlB3he@!$C@OLbKt28Ee-3#6r;d;SXtgm% zlynSfs$`&2+}TkK5YiF^kj`A#6=@nsQfcvln}=(Odrq#Q2BNMC)ot^BErt=jZW7mN6eKQx zZ*%_=9XKCP)B-oPT<3I79Q6GR_@?O}SuvGE^PG|J6-0of+>9gE(YB1F#ndZDq5gj1 z3r&&7@Ai_#ZPt2d7QNf;qVAFK%w~_}RoeGWilS>JpULlwsc8-Z;awYNoh=t;xtO%b z{R9k)d*=+tmMEWPS!If+^|JfxN6iutVt9|Ee%JO=M*$4JqsMfw1zlQ8>&Wr3G7E2+e;6n;|b1tX`xJKoV za#TkRrF3!wJMvQYyui2z)Ny&z?{6}{E!2G*b^?s*1MC(Je5nm39R`0EXJ9^u?o-0 zod+u*>Rj9FGpbkLb4V^mtARrP{27fVVQyxIFNPu(eYr9=Ha6h?diXf@AA#*D+L}GN zL6gbV7kF+Sx=rJTbk&c&?0n=g;Ej(>1JU4B@OMpT0Af1xY*#s7Y@(BF$oK4V;dY?y z_=g;I6WO(O&ycv2+t78~O6Xt^p)}=+Rl9$BuW|LAox?-Lxk7tL4%9G-|UNTlEYb`U`=W~Da)!KQP zx$+tC_ju*Ql_a{g&0bsjW}mE_EIP4@s7@QBRinf`_9hT;l=MKO*IG#)T*$nwP&b9H z{&+v!*{iib&XPnG3~-U!aM1M#s?gwp!6GsFQq^Yj1`#9tNT5SLYy0OUo!gPJ; zHEBAxX0OSN@G&LxU<^g;f~{0MAmU;;uit4{+%Qo!Dp1L7$^--&0`y zNDd-vw)!)ZhLl|!OwR-H1Y^aezeaw-_F^bWDB6Vv*{HE2=QSt9)9FiELd5AlYQ!9u zHdTgFTNRAte|))};@|(-n=An!ZCDQuhsgb5z3TlSfDir!9@$OWZvmwh3mY2+71g!e z^w=-XRR-4Q(_lHdJ2SWs#7?d_Ph-5QO=Qgvui*OHizqrdE$#Mt(ODdTy>W=x(w4n1 z#TmVqJ!d!L#5=5pGZa(b3~af9Gz8g6C`G>}UK8&B+Ni_LVe}PAc^#rVeLVDXx?DI0 zkXj{yQHI44n-Ez4_$+e+>qs4rZgXsaQwFH3(Clh|8c;D>)z3$8x09WIMozU~Y;vq` zqqTtp+Qq;2$t}F^S(jv@)tGVLVOBy)?Do6}TeUw2j5x2Pu_` z`0$i{r9q!B1wT`4`_97CSzFA7b!-1##{MQTcwR*VfSx(0qc#m^A%9e*dfA zrUgn{Kz6&U{x7G<5iJ#SM zie-q@j4~ZkX~DpB9)=CgUdQcj7q*%rnHY}f>nV~KbVPFCT$g);R7|dVWYw1gUi}zz zfrTl2D9AKmTWn;vBtnjFv*WjAzcQ92$h%IZrH$T^rZDzmSpr!S*0Y%ZEwyb1znkO7 z(;s-$0JnqGp}f*)uWM?WE52C(fa4@qAB2d{q%_m;wsUXFy|)$Bik%Ek;yH}%mqbB- z+Izu=p2JkSE-ibaCs}Ma6+`8r; z3QeVzY`43wM`?kD4pJVBzYsum-*3zVvRWSa5Y1&;8)6mi+xCJJZOD$0aM(^aCbj=w zQEDuOV8OVJznBz1MriPRx)4^rHsSwdV#OPxCOMv7QKMJ@)s=Z5eMUTdeGQy{lUjN; zlLBYgsTcWCJqdeX6+^w6_G*KD_t-Y3tD?WYv{jCAcrC|!W_aR?jLU{>T4vm8E9bX{ z_N0XuGpSzBjXj((yXGWbm`4ZmJ#N(NS1vNHf@J|SL8N9;6&$?d^PV0Z7e_F<6~^S= zXYhuvU3pl&tCWHZ)>upX+JbT#?#$+d;fybA7#-Brx(~u;Dj#eK zs&ur(#-a)P$$9pR{kcXVAx9#&Wky5PLP+_81bD@nR=Sv;?C_{%m@Y#}H2tKP(oUDC zi~SW29X&5GY7z3(M6mlAt`Vy z^_VklHm3D()3Q(uV0G9OZ~s_YB2`P+DvM=|yi1&`3f6q-Y793y#G|alu9`P9y)vJ3YQ-08q=Bd|D5?KW^g)a!v{j3288J)J;91 zg#e}Y1w#d;el0V+&?Fs{LMvtR#_-1JYD7auaYusxmV#R6iRp_|ZsmHU zu*b-@_yRVUVFAC)$B(v_%E&L`<5T^sNCwpR--g~s#!jGk*HfhRi*!kUG6Dbq1M6gZG50I0V_49y^qfkur!_t^dLt0uIWX0Fs>jrpr z{~bU8c`ALq6_g2Dsx>dXm5eN^CkGzU=lnqYJesP-&(k8{$;6jipzxd+k%AAn6KZNl#^ESH>RjXf4WC3Q%**a1X=DaNr`qC)jm9*(rK7(}U2cV@ZF0VR z8BI)WbFxZGdGT&D*BhiSmDbqJ3d`v|=UL|z;^=t>QFvLZ$-BR01QrM=o%?<)KbB?v z(jsB6zzbI|gI@>Avn%0_w$e>y3`VjwDeyO5*&Crs<+FElOW-<03&&MnKrqV5ajvrz zd4+_^nX+s%t9B2MMhH03Bx7DPbPAOGUY%FH+T9rY44myN>ao19>f28!Y3Pw4UIPj36_9o{62+vGmxfYn0Oh@F&^VlZ z-sdIC$HY|^Hehca{RMw(YNoIP^}i{5?n!|5eKV3Vr}?0&4ds?^9(19KIF$h7Q%9*j zR33Mc1Kr7o`x?g|QQrE<#QqVm?YopSH5pcYTnDM|nF+!t?H7Pz@`%{f zKUlU9RqP?!Zo8lRO_d|IsZrCoJ1BK>BkTz>{h3$qjOxKN0tIphQOAJEVeimw>Mr10 zI0xkTxk8?UPLTVo#+Cd)KW9HOY8db|L*fl3XmmbtS02r9BHFKJ46m-Ptm=Jie%-u& zf{Tkw&hO-Z)=O;d&GA3|4+(yE`HxpkV|;wQdW zSNtB(Y>}%xxv{8d%}}_}W|4rBTop#!hh=I0`28ZM3aePdPLKu-D!6zwV7pRk&{kD9DGS}**Ckp0(S zc2AXyb<&D F|_z{@OQA);$k%Pv$myRoT=P|$)y`c+$+PAK>pZn|#2d&5Ax*vj-_ zw9|$o1g~Rr;!YrUb-tZ3L8U|Y$G6Nt70GNhhl~2qNmw;Z{MoOR4H+M=J^MqdWbf0d zx`_GF{YAPr6Fty5ck<<5mF(|1Fm57`U_a?li`LFK%v8yCv}MPfzkDZ^`a;*peb2_A zs&C_cdH2{BnQBIrjWIJ54f(Tg$odx zhVt>9H^s&hQwkp24@B5fZ=qKg-{y*RNKV{N1)sq&}Oi9 zpB0G|c{%ERi#Oc-vH!~Byx1FZ1lZ>3RW(G?S}D)oAM6MHC*SYalI7k+QRm%sHHz^3 zAW*@prxGnsp^fyu+QTbFTknQM-H9t*(m@jb(=KS>lKYzDv9b6c>!o0Dz-A0T%BNRU zZoqrJ?AlKW9Dtns0ED@>n{lD-BEV|W>4n@82#6r5{ZG5Qu5HfacXB~uqN2vtvzUWa zoLoX&0$f^!JbCn;|cY$ojj!or431lKpJn?jk-YqAp(5<)^k zJ`SY>FN(JL1^@F;jyH^4Vp;s14q7^Ms-Y{Hn3*JA>#K<;kI7tkD6DTB|3lWUW};%I z;90Egho@W6P8Ik~BMr7*73yn99`ch${u>RnBPq zSRSp4of+btYw$?7)G)Lc5 zd~P>w36OIC9+4Aozk7HnT{tcmO99)YMv!!&p2fEvx7x4wgaHqG573nBeXsUC4`v(} z8f-7Nhu^(>w{{RG4xd{t-rFJmEA#Ok%@GCqs7}T7PL_!>(D@Bbt&3~+!BJq9AtK;- zYERwyo3n3=$1;(FQcjJ*A2px44GQ2sU$15jVD;!rE53ex`Yd8I^W&D?oQ^zEr@5x$ zH+vS-F(Yoo!{Z4kE-I>L^9(>z#j;k$#?+jhPg>k}a{SK+{El0!|GyamKXxR)$XDM{5L;7zQ@(YJdVEMu zY{lz|Zw!Wl<9iPYyX-<7y0h~Ob1anMjLf!0sK}A@gu>=3`GzIbNK+rWvK7Q3_YUUl zk;ndfs+I}#EM?<3z~$06D`Ba8nOd}70U>QVVgJ_$@69V0P*KC>BgJwEyk9XxlW9xo z-1m3=Ta7k9^e6ulbR1*kgkk&lvltltx~iXKmBFzzNd5XK1~f?+`Zo z=^?VkHR&Vs&q>KsC{`VFR!$`fwU494J)53%Csb50WswQRl}-6>`H|wiBBzkVjnS3b z3b_!;$??1Nuap&n;weaimXS)RMiY~_bd{Qn0LTPVysuOH z&CSivcmCM`1;%QC{2;iakDE7Qo<$&lAbj&odY-qg>Hx!Gw%_9oAlv2T=c}r!0ydMZ zoE#P+>@}WG=I75Y_t$6koj2RVJS)2G9%oTNGV=VD@zUhb6zmf!;O!92K`Tj+Efm`M zYjxN`=F=t+8Gom;mp1d0=XMp_v%$ufhB@5`U)zf`tDJWN6#Pul%Pf!e!W4Z-sjg2@ zjnB=Wr~4gYu%5KxZtLjq^_X3edML6Znd%dkkWEeB&VGKC=;=$!%ggKPCc-8T_V!+< z$`8blr6)=0&p`dRQzw*8{3{%EGeE}JBpXFS3KP`%X(4oRbrG^nfeFcs*gt#}Es~q! zvtIaJzjzT}^9qirWE)~*9U(QnXh~B~aw?{;Cufa>tmm+MKR5h30xp^`emZzf7MzPv zv4fy9Gl6U3-Y-z8+SZPwZ-@18KJpa{5QMPwt;xAMabk`Y*>5>p={V4es9St%VXleb zf@Q$;-;hghF)jjMees=4yBPYdQu0?!8hp7*Jj=h{*eZUAQC}^YY`)>XE5*a-YW%rr z!}cvlliMWnART2UO!`Q`JAhHs8MjrNIF{yJtvX-yck7t|eh*@p>)=T*QuVxqeR=*7 z8b3b)hAyh6o(A8bS~#1PT>B5~U&m(GTZ;k};@|0*jPj_ww+X3C`yuH}D_^L%mv|z1 zLM+n%?f}VHlJ9F0NRwCNqg*|p#-g1fAkm3D?Q=>*hJl@Rt#GOKP4Ul3{JpTAFbF~7 ztzE)y z@6nY0CTD$4qJxY?qlqjpT$t0@Lb*9<83$?AI+lfQQs31?)+HAZ)Td|dR!MbYmir0| z5fb(wjes<@Ba-s--Yd@F<@{#o#)EQa<7F`O_Q9SN!qk1c-CX5AKf{>Axv<3LzwxuX z&@Qj0=eSWK8{QplQXoYS<`O+}tfUX~?bfP1gK~&K?I}X1D=Dz#KqH0=39vwco26!1Uen^Mr9h+vEswUdRXR5?w)-IiJt`t^ z9ibKuQCdZZ(WkZj#z*ljBqD{KJL^*{D-#bNp9r$-sY{wJ^`z%-4_kr%^PUz3Do(UnRqWk>|Ql&vkL}Y1gO&u>|;P-IxJd|*>f6fL}N^uOqzks^p zI#Hw$5fPD;lmy209z()3ohm!l_?BV;3m{>O%tlh?* z7Z%X1h0R>QguRNPi!yV^AU%>5F1X@`E-qi@`6R6#DxC@Rb-ISheu}$gGm0^w;h#!- z>DWu8*f~Ypn{CZ~quD#*I37l!gybTPb ze!8*wPbhpc<~^d^*3y@BBymf(7(dXEzKlAM;KRX$g7j|sdad>~`}>`|QIRVkIXt41 zF8*a0&GeNv9B;MQREok^TC++qvGf(YD?GANQpsYOYVi0;Z{C2WpZ#5c92&EB8BBR4 z`+`zRo`V>XR%R8~b(e3*&^9imI_-=x9LV$`vq|hD@blz#((UeYBV(}bIk2&!ABJ@Kr&rSP zg$!vt`O`({r9JD@nD4Zxr&9yq^E*01W$r9aY8=tBNqGY{5W7!c(2(=-ETFhxKK=-+ zl%ARD)9l)6lssaelyvD54?PT)ktm#+hr(8oZ{o{3>pIK2=m zyzzhF)M(4cJ)-@#ZbpOm9S50_6+bb17~`@4Po7$=)1KEYA#JEpwq4uN(9nN$$K1?} z1x!5t(yw1Uk4AtD)+1J?S%r><#{BBlngj1@vwvuO{9aoT1{&Jjky}nq1P%pI zr2$5LShkVJSe|4Q0|UeS!a@L)0S-U>_db;30>1?Z8^<}Rs@s15`_2f&#{xG$nV+Tb zXmjV!2g-TH_v+!;y=$StIz@yM$VezfV@M)^JnyN_4NaW7m*Bgr!6e0Pj@3Xqxxu(j z@BMj{!TmbmJT5iaXZIMMZjR^&X;)O1mBEY-W#`(?)Qg;B{3nNXkhy<#Y?ohjJ$vp6 zW_?4imciz3j14rgREzB3O{bUVZXBO`D#&`({pUl7mbM#p?x$`E=RUB>!%9w`^RLQ1 z8`F(gaHSq2_O;_?PlYN{Il%44T!kIK$Cq`(!4frXbm&8qH-ZjLn-dXv4L2-;p|kl% z;0uIa#M(NMn3=PMnDuiI4pdj*!!~!~*HYab0ZL-ls?>~tZyT`e)xPE3mhJI`OlczR ze`nhGP6rjZL&fB984rkjNDY$1=(aeq7-ei69_d3@RZwWl;>UjB^V9}gWc4+)zM)JG zdJWyk-7@qe&N|!}4%2_@ZO{Ij;XVd-gbY8y%XhigFUzlLMnH*h`?5 zNj6>~8p7@CX^L#OLSW+|Hkg}yI3c69RO+hDBK`-+asD)UGSKJ<1+P}QavEnPD~X{n zQt28IVZqmW`t;@fY8$g@T4&eK8>r4JFwPM?cJ+ z)h`nNb)RtczL4@_HCHn@pQ|RrSXO&42TJw~RXJewEn;VM#rO@I)zSX}CpJU5o@ksR zS4wAZ@tw|*V~1f_(#N(HhU1ZbK|1x0ry^5W4Om!NG0@Q;!N^3>o&O~cj7K|lqe5~D z3g6cptQzL+n%v#py_aL*d=|hMrKE&$Et;#W_5OVekjuTy_Hiou@C1Y=LVl0!B9u^8 zzCZSrCQBm>@?(6ITTI?i^)XHisz{8LeIRKxHu)3M0BQU7&rvuBFbAtnBiJI07}xl# zp)VPtVqn~@9PJQ?N{6L4OyU$wvhHIryP-e*X?hw}Fnw%!xLi1CJ*Wiju|7)*1}dtD zcjM|m{08j?tDZo(x(>X58}SynH-9)3A6w}(PLgKU_}h5~#qD_QUW2_veIs}7NZ$nE zQis0?n2;jXwjR?8C(jzB;+ILgua;(l`}ZA?*v9bEkYGz(AQkUWVSmjc(f{JEhSjvq z8Ome~EUd!sRzK*;{^6U+&TU)5>=xjCSE(U`yQj2JJTz&Oc*8UFpI9O5#ApjTs%q- zCzl-W{g?DgyAM<--D6VH_HcDuAh(Q=%DKm1`p}tWC^#M?{>J(G?vH;NxiGbM)`B6k zbu`@%nDCJ9^Ghq};0^lpiF>8bO9;rs@a1Cu9z_7KA zP~7+&LB=quNlHk_Mu_@SDa&UoNfVz%m#{m(ITTozJnSj?-2#jh%pPw@V|t5IMKyut zN&asOOvJt-h4ja>SU*_q*qKu>cDS7^cL0#|aS%i;SsWa+(^q;|IkjQ9#nWzyR(-DI z7ad;JE}YKd9-YawJjZC30DsGmDk>^E=>%WxtiUIOb(5?qFjAG9{8@OA>^0G|X9hrr zo6STe3r=ls@3y9G3hW46V&dD|gDPO4;@8OY-|N4LlHPd0<{6aQ`sj(%;tb0T-J04$ zJ1mUTj@;BRnlZ6$hQ($rH+p$#uGf8-^@NrOU1S)8GB*6>|ITkB=c8l04my6CsEmG= zo?}kIP21Vb{56g(fee=E{k>aK($c`gC}0&R{?IdeKXt}*fw~077xINFu6%k1AXnhBbv5U^u~Cf{5GH57+Zj((5^4d6NPRtLP|s@JYGbEjfCBj_g9i*&eX~!# z{dV?w`}pHpz#0~-B1W1YWMnrsKc*8sMxiy<+P57w0z1rqH$97iE^ZiIHD=sk?{*Euf73D*wO3)cAv-eIx9VQ-yLyr_4PZc0xN zKBlG;3`xmJNq{Tj4J{CSaPurP1B@_0*XJdT>FzYAASAS~x3Bv8_4e`ZCy?RO7z@li-N#gX!S3QGV^pwH04n2Z2KeNEj zTSKA5RWk)aW4qs-XO?i@js z8j;g)#PQ4rOgRY$`WK}tq3_)F4=BF4wB)`(g?9#{HxTi{onlt*EZBE_H?AR$HiNzQ zi}in;+9^Rf9iqpz+USo4&I_aRyV;;dfHLU`Y%LslNwW))4s%9&?=9nkriD+|EaZ!I`6$jsfmI z&)1-b@v7y-(h}PKX3YS38`k{eJ;s0QAW!#e-DvC4&c2qPnBgO>wX(FsR>Ql2BHq()cdLeaF z#Dmo%{gyykHn8&N;hGZ+42-3vC0NIdRQWv|_>+FS5IF0@0Xs)o8=G?ds+0ZwKSx?c za6YxNg^>{vH_u)Z27n*|z4Cp@edPg2{;Yu53)l!Dc!HlCJvIh2dhy{pc=SMQDcZQ* zA(S#upGB_;jwC29mlnODsZ9KQ6!ka%q-GTzIknz(IScNhMir_aPutB708rjHSg9*2 z#_Tkv{!C#7{x9G_hLL+&G;YQI&!s`5J<(lG^06{@6_HDPmSe#j<_r-uzU<>~S29MXfMByhH0Rz*ikiw0gTrc(0~CFePxFKL%E2`2>J){mm0 z!K&=qoSYjU%EEqLTwa2F=4aK49|4mVn|Rd>0kd|!{Yqz15nc9ZpEI~ey-zx>o`BB* z%C$r;_>{X1Gy41=@0(Rh|BB9@?#eu!8fJ!G!|lgmj9@Aw`7z(He9oY9D_OW}=T;U4 zzl7Ip0)urw{zx`hr}rATj_jq2Z)ZRMVn+q9bhWg!+})eP20k=szrscKSbg5S)-n5` z{`av|zwxQ^nO+jY>7Q1$s+=5n(m?!E2aMdT)BI@QQ4Fj%OD6;;ZFH5FSnfpj10`n2!zEjzJTx-G1!ZovFsik## zP-D;Xsl&HO3`GNBLG%3~N7KU)oW&QzJMChqhVQSPA)FdvW3G?#h4_cJ`{(9m84!Pg zxcpQchlbEHYkzKi7;SU3Um2lgDmm#%xBy@H_7=9ei4}|-Si>1m4O7sUh%9Y&@TO1d zFr=Dj;TL9^w(uxWq$j43?hXh1HB^+i^m03B)bHv$tf~`u#Fg`}z#a?M^u@ow1%Tc4 z89RbEPC}yZ_Tr!m_;o4y!rdRbulTwH#o^(h4PD~is8$(pf_>k1iMbV6b{^|)(v|!| zTyY%aVkfsO91m$PEiDm8)6vsgfPRF7CuAo-RtR{6CH&kH%8uAU4EY9ZkN`Nhz+&@l7oG z1hj&x&8X+<9pUvj( ziK4tbh=5H`Lz?Z4$-gx{SRt$R)o9vRNVRW-Fj^TJT#PJDT00a;-&rP8{SWD42*2YR z-qgx5e=e62gGbK(?LTTqgTG;68c`e5Gk|2u*&=0JT>@hTrJQyIslYOB8K{GMxt3!JUDqFFN&fx-iN=%mAJSt>QE6wS?k{j;AcveF+Adv87TefHP|7{BIedGJ4izK8MbJ{Ez;Gb zT7Q4s;E1pgYl%^!4#H5)F=Q^9PQcmSX_CPb`T0I}5abO+OeH}>)MJ3w80NIBjB@l5# z!PI}5bJGRu0K*J&5kLu_4juC$NbC9M21-+SKujUf(XgknmF=g$b&;;Q3Qq>X)woHpep&a=JpNLgS#@eL_!lYM58$npV{do|WE_kj);7xhdb?6q6(nWF=K7xil4pQZ7jNCF73XJ_DABs_c4#BRDu@flqXERT zSSe#Nbg`Be2j#`*tc`I?ONRF|Z2B-@%ML-k*vBQ6k$=287AH~cr_>n}E?o~FrA()< zL`DsVerrpF9=YC~iw$T(GCgZ!)Tssuilt9bLx9V+mhq zdCz~rKl`}uX+JC+^^==LGPJJ_xmlw$zp6K}!9ze_Uw;|&OcZf5yEEs{&RRYmR#y8! zcJV+Ivi-&|>GAPngoKKYj*f~-0uJJz^YgN@vQo9LQ&wpD6wRhuf_Dxl|^mY2*z z*tc44%!#P3FKVN+XD9@uTE|LWV8nO;bs2Hajd>{HgQJU~hw_{yV!l~BFi{KnS-$0| zQ#{B1wCK5$i9*2gOow^+1sKt{yZHdny1K~+tA07qkk)7kykTKaZ3pCe(5!;9ttV7< z{md~?@&Ip;?_+S;|7`a0I@{f+I|Rx5dn7VdR)iN2;BQ#%(9UBgEpmsrBr7;cl^6gR zZv74{&vcycJwCXye-&z}c@ZKtNVmq`Gjnk<^gaCCS}|jhJex-Cz>`6oT22C&@!`;q zYC7GL-4!}n7W>r{zBF+y9q+Bp;86Hi;$r`zP+YzjVd29LDD+H9x7!wdBOI?(G9${y zXI@{MmLemb7C*pg+CmNe5Kkmzk6xa}PtpN^Asx$su3m*IRO_oG(O*5B#Q{|Z`w6Ol z5Lhhm_jT43YDv%&1btg41zeR#$J2^nJsnsg2<5S$;w2zGBPbSnm zz#bd_EcTf5{ciJ?ahRtb@9(hT942+=qO?4FS87S`UQg)l>X;xgrB@| zCctN7=Msi4AYqEMep`%FD@x>FRc4)F%#Op8@kv-Gc&r5$cim$3Z!>X_Ftfi)BX>32 z*D^#Rr|6z#@_65~u%>i$h zu&P5Yx-=GJ1HQMG*>Znkjr6GW%(UKH=obj?v~X{}zomo=Q>m4=&0OvKfhcc|41P+f z-)Efg4zVI=%Crm>-|^Ev*9cKB$}_Eg*x2&~A?UM@9%$E#5E*N0 z7|mvNO2+Q-S>y_d`~_F;t)IO{Z)iuRME(E3H07MhqLIF#=sGj?0epnzX>`RLLZ#xN zsZ~_plzZI~jK<)GXsclsDzBLBF)`aAARa4mlOFGDzC z6;ZQ^tr2czAttnc7m%2PXn~~*Qru2gnAq)HPwg6wMo8?u0jf-nCH%Ln-nANXazBC9 zr2fa7E&q0@F7neMK!5==W^buT6I&#@UQCV^Ket;;nRMdLV_ac)j;8EPm9#W|_`V1C z+-ZrDZx}eIbTxl@v1cW-r^r2;j28eWCyT$$?B~7n)5FzsM`;hh0^k(*?7Ra|wt<~k zNVdNORiVn>q%>?JaOw^e%YC-Ec(&u|oQrr{I|kv`1He zqE6@09X5rWgee6Fg1RR!%%KtPa~7 zzNj=dlHQnX#b~RPHci%++7;`jSW$D*aFi%kdXsQGi;FOh$s4 z_I3xqN-bw`KQdjcr#eC};UMi!PjPb<9Yw!!EGo&MRh=I9kim}19b@Pq0L#LFKk&)b zF(WB^(edvIt_DKm&j|SS!d40yjvlKD2Vh++zskl9@heH|0?L>xU0fS}R-ZWx_8>7Y zY+Q&KlS0X~cDd5q;;?%+aTEwS`l+s zT@f`~VLT0gnN}w_y0U;YFEs|tIOR{KKh<-ftoD40>fqZiSBDfvUhB{o<%Iq)k=;ZX zDGuomK_Y}ZM)B}WAl_Bh+{S-t$B!4U|DJU!{U@S)hDg8qfv-hR0oz<9;wn3BEzDcX z+%s}SW%cc(j1?~is*1c3C1~s*=Mhb~R0Zr;j1HTE<~Y;|ifIy>uoiKGt*r-eS_NB1 zJJgzC z-xz&8>5d4d99(IG0b0kU>Ewy0(&Yy;&#`Fxe+(Lcl_40Zbk)@A0TwMy?%B5!t6gjQ z*2ab@LL%)pJTxrK+uOSbX6LzG1%SrELU~Pb_D5m?6)Gw!Z5yl6L|wG?pMSl2sVAtBu3-as{B)U2EpW?20Klw8+KaL zvOPX@K|^*Gp?^S7)r)w1{RG%q9$rHGZYP&&xFcC;QfVB``PGnD)HQtI!Fr`~BBflK zX_Cb$!=BFYE@JW)qw%B=i&Y;>dD@;<;g$caJ?&sKt-by7kfzm*RZ!bq*v=zG4pDgw z!BC9=l4hkoR&9Q#(AL)@lOiEM$|}8gomN+!Q5VC{>^tm42K7>AeO@Ji6)5NN2DB%! z=0|-H5s`DAZ}$I)V%K_XsQ@zJO~Av*g5P zId`)a4TCmi>H|#UtI-w3V-6Fd&2LRjhsh+rD1*3M$V<%a(?|V%TIThChiE6NnZwR~ zcI@Z+td!p)1xsAgcMpCdqqj+>@wExxpu<)@3Fs=U=ZVu^_M8=P#{XTaXwylX@cSx) z^6>{T<>i8mhUK2l3;r4=^6PpPO$71^o(Dfp7HIk+e;PHz_xJ8i$5iX=Rjm+JA?OT9 zIG+&_Ce*&PiR0&0qGd%97$sC?m_7RTMT?3TDl5zFz4Q#NPLG4ocau9x$6VYmtk{7X z71b&yx!>9I)J1>FU(TPemo_I^;#^;(PPKbkToV>CRrVxOxqv5;=Evl%hBE4JPdH&x z{`E$^fb$cs9Fa^VUlbN=hDJ%Ug+vF@54E)FCf(AGYF<^9Q2*k8B9uIc^NKi9atm`_ zX3rq9KG=p*iL2Zo+NP9xSG(`4FGlkwBqTfn%UNdK<}q+SaXM9=4Q*2lK7!G1VPV0S zB+1p9?RH~#a2Ii?Zy`|dL3Ar-D;yJ(eA@-i=^R^PO!((CS%I#y3o*#)?kT>>F)A7s zjupI|9WRtKF*cT`o9OQDUM*+mcxNUe-GD`1686jQ7n^UF%rkR=U9G2|(_j zl~OcxbhTPcb#oa>Nf(E8qqhP#2VnUy0RS1GX)hAW0}XZAloy~Ff@3^yJ_jT&d_LD~ z#L@6Wg21X7Ancw1NV~nawA&86DQ@yBNFDdQZh!2+94hY`4g3eyV>9gbe{I`dBSn~G z$vKB$erG_l!^zWdGa$HA5>MO5=1Fll%W9_Ya;3e;kz4Gzq-*=Jdeu^`Zzt@Vx*18} zAkEv)*gq;(Hh{eNv#z!7NLCFfy~!46R^-q8!&049lhlu1pL0-r?A4w##0*k z7Vd>9d+C=BUWzPbSPy2b8YkQh_*5L7!j9TT^{scTuLRvFUgM2~a_A-r!M&?H>%)qg zojWeoQC&;&XQ5{4Vsf>WC||T-?)zOrzK}hM&(B+Sk005;&KvJ|W~0%*a6VR1vEO7U zNMNYUnJp9Z)7}E>;MYj59&*LbF+q}CZwOz;xG8_CYMg$Y1%6AN@^KP;7=Fi=sfUI_ zkd`^<#WRTo>iqmq%FR#T$m&Vq?cY%&FegxH7N;OrX`HaFBF9^b7LNoHg9*(e3zAuZ zhFFs4B*`}cCoz1fYIGc8P6%Ie%r?(OpUZw+Ya%G_Ca!D;{Br|LC5vJ zAPgao89n!#8_0uKx4F=tL28{w8{nP`1LJ(#rSqIJPqc46{;tcKuM-ukofK=`$ei%h zcJ*#W%Sqx;a3%f`SQQZez@#WvpV1-?W+Mc1^E;kct?5r@|*diqA-Pr62!l^Qmex^`Gl=ERf90cWN+O33CdZpP3C&Csr zxNHn*MSs@^TryKDrEMj!TBU^gj;przN|^M`t{wMye$|D72uGufuW30DW-ZEIjd^!# z?Dg!cbZqIqW`7ue-vnj9@&?jGuBq(!5oM26S1PNAc&P zJAV!KfCy;bSolkVYYk1$(n;aW-2WuNp8FM;-J z<3-~Y+J#bwtddgfcjLJh=i=T=zJxhq_(g(N8f~$YI!~iRIu zX;sz0#+g+Ea4hu(D!Zq~cK4EO`^23nt1e4{ORKrt4?Gb!VFMch=av>0&wz%n-J|o> zlDjaFKE71UfZ7rG?jl?_w>UWoOU?_Pqc5Yi!0R12^}6zr@y1f9w8~V_EklpZn0^u0MWGc6$2ceSQt!Ah!BjM)88zKCLJI3!du= zU71LM5>oA55B}5p^mc_DMF;J`AkZPa^Ysuw z5KU&aHAMnl_NUi7N)bFALUiH#{p+|AXz$Byw!`13-YVhJG0uWYub};{d9tu$*UY&T zUTB$D&F=2)lhCuQFTSI2@G+ja+#{EC7+}&os%*E>>xJVg7*7 zr_zgf2S%<`ye1emm97SME^^q7XCc+DZ=4e=>0@W4h^<+ac8F8_GUpL9)Eley@GnkB zEmWqW@7I%xls-<0XuP+>%L+6`)b>#6oaR+W{)C@{Be@eqj3|iXN(+bUr=i3uyWq=$ zHz^`0&Sr}o?8Tu-36x$|5%s(EgiR;kU#|RCir4-^oT^7Tr9(U?w)`35(&*MIrYgCG zJQ>=7L@@hVSMw)zfpA$6q98%o4l=7z32eOaKEA0Y%B=G-B=NH#UH5*9e-M%)G@OXP z){EatwB3RZ%yn2*oZ1>T%d{qMNUAP&t$dt?Tk}_>?k$u`w5)$wI9!UHJKU50pC$-9 ztW|8f7LH`2;$|nQ_97}?bZ(tk+Q9tjlylh4hC5w^a<<+w@t;~QEzY_H@^9b_2x5Ug z{!`1uyZCQD1MX%Lm$yE%&dH5@$%pXO?;l7sXUIMkm~vav3kG$j;f&BgqXIl8_5F((OAvuh+tSlhHov(&M_h zxdmbbZ)Xn?l0DQ^FP}|Iot1Z${I}b|D$(i`b?F=&cf2vTvPHf*+va@QwHYxIhtv8x zZ{z2EAaqqaMM@m`V;=_$5+If-;G3vjU80M3o>%LdVg(du z-tzswk*yk?pXfCrU;3R_*6>-da{)Q{IqeFC;4&TSzDm;HyAH4Hq-w@v7e?u^Ze0IK zrOWN5hjHP2XjbLDP9c}-VJ@?h72%%&{KyQofL+_OuecNRalDg)A&Lx<-u6S>bwZUG zM)MBo#of-WgR~HPTM{#UF9*F!(l<`atCyfpz+^1JR@YE4(Nd8w&bzK{{q;2E{p-5n zjw|kI5EZ%5{jot-bX|@%mMfO(76y=AhGzZH^{C9`GYG zP?nu!0N@)wCl@X$62Yq@HDGw!x^w0L~GvSvXfH z1QieQOCB_C33RQ*+xU_{`)M3e*nE0*{r8;9{=1y3Li`S>0!Dxecl()Z6%atbckcVY^!+{c7ilZ@e1Oag?l#?|*k!tr z4?a8pPYE3Uf6IBB38VwkCB9`ya^fWot*V~02@uJd*z@x8xv}QWD{T~PO{9nNKt+6IsVgpm{Bdy(g?i6-&YcQMS)}WX-i^yayW$$*_I`Z zX`E1lg4Yy3Nc_}scH-iUzp%X8=yC3ENg9}BCHcrcvV*ofZVORk0b#WO#V^Qtq=9sZZw487F9!aw-W!0khP9tWAK!i8FrL zRHRrgHa7O<$x7Fh=H<}>0Xcb$2xYx?MYbD3r-BA$If~Vrt)Lt8*X;BL(_{RL!km1= zD+oWf{(ueURGH@8&At!&wtE-0aL0H{3ii3bl0jR~bsaAKk_5g->18I6=JtOTb07=G8ifSz*Hy8~kj z3~JRZEJ}LUpo-6^IiKVuR=Nk5J&ww|690SOzRo{WjN?VIJUGsD*<_)iTy)u{$n40Z zn<<#yxRyPd&qo-z)q~wFtmAjfR!Al(XBLQ1=IPm`%`DrHh5wpFmvF-CnkV;uv7!QX zb${fN-#oDp9tD#!t>h+l+=lw?XNg>@mUg~ZJj<4X$Z=QwWQAOwSaWbTg@zFYIs8M*ryaUDqmaBr6Z>(SvcsbaJITOG@RrXEz&O3?r< zF14f2E3nm+_U(Xjx6*PtO8(NfUF4FoM-{h~;_|8jBHe#VlQZ)2K!BQOF5H+_wKAeZ zEz(NH{ifdq%g(iw(f95s81?7zeJs`U26q(tP79TeFR zU~8V9eg{y-g;C9&#It8XxuAElR6g8g((UQ#=@=7qGI{2)+DnOv4?l1;PWt+Nl^Zq` zB*u_qagb}DfEa7IS*ulY^0%L->Eu;jTF`bj$Rk?u1Fp!OcP!{(=QoQ2u)0m1xgTQ` z8d3b*h^S_r{br&KAAw{92RS4Ro$OD=%h>cJM$PS=9TeEW0}O<4gqh+NU?>B|)6IBk zd?u~c-W_4U#RAqwa7r_kl`K~SV&|h=e=$DUA!`obmeKz+>HTx-3M;i!Pz{weUR{Dq zSKe_V)vrJbC7BhN6@W5huoHz!ulzI+5{SYXf5Q!gC6s*r3Nv{&3TI(0~$>5#Q2|`Sorc^4F9zQ^1W$b2 zCg#ImCDx)KM-!r0Y&funDu8-x7KH1APdxoPIS{I#qPH@#4Ql@A{#6 zuH;Yy5xm{_OOD5v`SJ2_4s?$HsYcLE0%tbBJ_>+d2~*eW-QBhD^Ygo6`n|BgFK{U5 z=js{85};mP`TB4vvf|ln=Cl2+_YlSclKBU+*0nwDHwwd`m;RN`a{?^0`~WvNEj|6= z4Ic)`eNC#jzQh^z&RQYqyPueuF>lZY9?TD~$AR#OMnE7#gi_a!eRbMj9hi54+{1dq z9!MMkh0s&1-~C21vknkXbaT1*F>yZWitA=sPOpgkclf$a-RNab_~s@3a|8#+FXQ!A(#WgI1KL8a$i$*#{~~ zs9I;xGjXxM=>AB|MN8be5{n=czo!cMtr9HbIJ|&deTOcg=X|yoMN3}Ix7M>yDw!DgA4rg|DlXtOW|Fl{FJz)4LE zFU>I%W|%oA^4pvEcTFcB3rN!8ZVSc+RuB;KrK%c9J163<(<8VMe2$y z@G+g&_)G$A>|cfrEMyMwbAVqu0gLYL4#{TOT4_Fg9WyQjlU1Q)fLmc|q^ zgB9MI#Dieo$0OW@_c58gGmJbDnazFNgeDF>XyTtx`oApGcu9+ip#?+zhJzp>O?uDB zOr!&o3UeEmKK>lhlp~O5 zGQbuRICa_!<@#U7UEiM#NddXM4X%S(6`lvAZ@ zAdP$HcLoa|)ME(9_~gt=2Bj>Pm-?-!h{~K?$Ey^T(;oFPzYUH1M65NuB8MJIF8zU7 z+G=)vGox<2k<@R7Oc&B;MmjmSBoQI&>I?Pvg)A-4+;a4Lb4^^`YR=Wyt%`H?M_TAg z)~58XUpR36#%FbzsS5ko?|pP?72Y`r%?~WYl_zldv|1ua=1CEWos!hU;>q_U=NDgp zN_;2mV&Ba;j`2nJh&gB$qwZ<3$*l7}Jy?%j(QdNs7}n>vq(RG0+|UyE+@YBM^h$U- z1$8Zt9fp!^+&`qV(7yaAk@+R0IuM^TlvY_B`x)QcH63w@lGU$`6t3G6XZ%YN(%el0 zy*~pdlo#R-)_Ysz;o<{siHE@!=$8}=()cnQ3~2}(=1@=m|8eRI5Rs|sdb|bhfREiU z7@tnjoT|5n(_g0i?9jJ2jo0FKqF1FfW*gdcPzK(gQ$1x=uUA_kr3F+Vj*O4TB>~f z*eRAv=#K>bNEBE0FwQThp8xm*3H3jPDA4*yuc0Sug8)mfP3(HTqlV-BC2zvvi}Meowc>{(-7%TOHGS>kYF&GLqB zc`43a+pvzpa1=P}d6xBB=2!lP2CDjhFZFhH;}I<&T)dPpuFn%RbZCC6do{9hMR#lK z2l;4y!(=}*zao&|53E=etH31t$HbDP*R zY45ecIV`}CT%I&F^M_-r%Rt3Udqj5UL~O1chhI%mWdDv&ITG?Onxj$)&3NpeB6imP zf*N7`krK*|#Bi@tKD~*f0Gha!RT-*PS4Y%npN4knc3qD5FPWHG9pki_8P}f=yQvi8 zK1iz+|IhUb6LAkDB0L+}dje)j>~lc^3jmS`iFLO&>L`gO2QVKu04+!M)4h2{ zUTEoa2HNu~4{$Ht!LTiq?FY(IXS>Vk!ph)@wo$w_{0rZ2>7d}YG>atzMxDR<7hkvf z>IEb-+lr~ziQ!>SM{VOu7qWVU&pmsSOOqJG8W!_Wo?t^Q?Cd~VEcvYf`!#}~7=_nv z?&PGJOK<4nAI0Lj%1S#Bgxm$XUuyJwfDGrk)-N2v5FlKei$uJie&;vw@AXKXRU@S; zceL9DK^&9e+CLp#BmNdE>D-(owm zg_#Q0ZyU|o{?0#@P&l;`MabnTUNOa}z_0A@c?i3?5@hZE+^famj2CE&80mT(d{NWm zl{ToNb9hpzyEQ<5`ql5FWaFaYD-%SCS=Y>zF|v1J8%gnmb8rYg7X!t6Xn&@IycH@z z-gQu;?w}qew^j*z^t{a#nNO(BIpbyn(H^9MyuyPG66R)T$B2WsGfXRVS%eWr-2`DN z6|}8xvwo8hM=PQO5&S&Ax&NMo`z{5lN+&0WVPJV#67v;})B(nB6vg9<2=zi5zI3N+p6WZ(RJz7z&+|Z@L!SYc(`;w336};pos3uvqtE01$g~?_O>igL5R5DyO5_v z@%HQ9D3;sEzd^e!l(K5OLl~zRz{~U>OHX4oj7FUMay8DWy&pN~T^gV|z_u#b>1HMI#arNLUU*d+j|tub!%-9x(2 zsq#gDz0)8?YD1x9d-J1&GaAa z(R4QL`5g5olBgIoZ5z7?qP+cmL$*IB3rP~rkXKbXc|NA!|d)miS_|?5nVODQpD;@L~xpn72gyjUS1Tit= z^h#N0v&ARu)?8GJ9yLFPRD5Oik%eGl{hEQuh|qSs+I z+q5+?epAhYkn5eq>b301$Ver?E&>|q=;s#}%t^0Pe^pjip2iLkmjgUtlyrA@ND7i7B_%4|-QC^Y-6`El z*N<;AcV_O~kNihcRYZa1;?C-Zfc zw=x1ts@1m3RdQrqAT;#76Ojq;&cOGdOfL^TYw2A<6%mH#)YV-BoopyRG2RE<$PMC zW*27Q<$TE}@xOp?4Os=c*HIY3+)H%VfuV+;?#(B>InU4_>8= zIHx7dwQVph5S*Ow`p@oSYxU0}H~tAZe147i@EhAt@x56RBcI2Jf}cJVc{U~8&SANS zv;)+SMv{l9!q?kVFZf)jt}ndy&#IGoO&vY<-PuCg2_5lHU8q+z-=T0OdJwBa_2=1T zhis|D;~x2u%@O&WWJ=RB)b6gqJCS&2{>aPzggS^Z`<-X@1Uh2o-SYudWNagA*GQaF z|DD_WQ+a}rl*Nus`07-Y^X7HSaLECyh6`~#5|euv?CH(<#l}7*IaVk$XLnw$Dr7WC z2CEN(A4l-gxJF;oiaY52tn-r1~-@Rd+*ZgTqi{L{##o%B%NzvcLV z8Q0rlvlPg1udJqa3Dh@FD%LPiK%8E;&gel-ko%jcHeu38$#ezai-w>3?ZxiXyYvC} z`artXXTh<;=40=ZdXZG9Bo8UFT$IUPMaP50FV`J?$@+YvkkmSb^#KhQlqgr9$4WF) zvCc%oA8$(-j)=xbzIq0Q+0HFu=1a+5r=PQ- zTcN1sCh-|T+W>a_$2VcB*+e8@VSK*avqmj73b924le~* z556F+-Jg_04lo%pxZZgdqAQw(qej|Wy@wL7*08mkk0n=iutpY(_YhUexi$5o;i9|F z5f5H9m&5E6nj|AB+~cV;b=B)&&kzhqyAzg{v(R-AbE_SO14kfAPFYx2A4~sX`_Yo1 z316iEZ|<4~Y_{$5`?uJID9G5P>?hsStJ+*&Jh9;UNS*`xhSx+&Vgc(mJHV%$lGT%i% zP3ltx!JlGG1jyj2>U9#Bb{6$8bspWHDec{}B>X~A372M>ajL(HF<#bzdR#)7A8kC_ ztbU!fJXxq7$$yP_^t@QD(Qdf`lpdfltpGBz7`ftF!tP3|!@8)oHG{{L!1bDclQN{lo}M&<6Fn0DW-_i(BVXu4fiFC0JRDpTOT`AcIKNaVyrptFE@tJ6XmxX>b40hRS)5PsK zkbIlILQ{u7AvWF$J7k%u&Fj{3GzCPzk3aoTkFvHu$>`&#c#{mG5sh8tC|1rDTZExh zy>)$|?mN|tWR%_3Jub=qZ2WZg*&(BIhCu)A&hCd`{j5WHSYpQP)^8q7yCcYFY<7iK z`(97=kb9UvLGI8&g7?$qVV2YnV7UvuCkK~bx*+_==$kfqV1Nf-~2M<{b3I3#|#!e@n1QeH1zQu z&#xtos&FSi@+F=XZykIvwXgaUc(~u=80eeXj1GBWh})n8GNlFz(683qH-D(;jH(}u zYrr(~emws%>|Eb2An1A_ju^2dE_XI>jB^oW75qw4=(kG_g^NkSyUX7RF3leiXp2TH z4bCE_l|MJOXxtYE(JEc+-Qtp-ag?k{x_+pco|M8aM7R=oVT4;D2DmJAU5BLn5l4}K z7|!r9#X+y#gjmN%L60g7lugeLU zp6HJXwKk{r7ZlQGzUffJ)#+K$GbKztE*O-=%l2okN+t;g=cX@32tw9TeQEq-KQdy$ zzm(x*o5X--6~2EPZB;`$eAzBcO1z%R%Rh0r!dwNbs)pDm{10NF5PVE|z4Nd?eTE#u zlvCp%LC4IT!ezUlEH8-D9fF7oPU(>qC)vVX-?Y;o4QMaggh8X4C}*<+e*&5gijwte zN~p)R(hq2l=T}!(7Z)T#p4U&wcHJ!AFXm03CiYl8kNmW>mkz@zDWus-@qi8qzImpN zJTQ+511K#h=V=gIOMtrf$8H?t**}T=r!D<8BJ%@HbSpsn(dF!TX6}nm#FWBg3(x$f z6~+y*lSiLYbk-+K6WBY4COrp6YPDlaz{ zZfMM|nEfY1T^l+r*sMz#qU9kN&^Jz)cwOPh_DdER z@STo!WG&;mNy5tGPFx`f{v-qz@F-`pd(b-kkDiHfW*5$BGTu6AN|v7Zq}{Q zDR2}~nTJVU)1+l&WV~SW69y(L?Ck7!cXx{00KVZ%ZgJWfdGg`jKy3j&fmBpfyRHWZ z2dEJ!r=!t@tIf?Cy!-YM|5nA+YfFjz8uO}0HGWr4uJu%PV^@|HH`l(C%y+rknhaOO zR#qeJC&g~2#(rYvS?@SsorcUWkEj_Bd)_R4(N%gw;8seyJwP@mcJm)61lOIsthGN%wh=Eq*29{ytzz~-O&P?)h9^Xr_ZVAtEUMZ zQQyhc(AV@GTBSB~ruRbhWaleC_%IFu~*PTc4S^tL zzY&T$vTk*qe0=`DHR0@L1#XUTgdUImmd7dk4jc#_1H&C)6oJ)RNg({=M-M(i*4y`& zA(7Uzt$H=Io`m2qV5H1OSt@9O$f!#$#gMF}F21~Tmv6~nj!6<~HoM>n@X^xJGBP%P z+RX%)-dCnR*nkTFY_+|-ymkpRl$0t!rgGGnm~xJ6x>EkmNHVJXcc}YcdvyZ)EMfl^ z!Ls#L+|N0lyTsF@@!d{gPT@A;xXHI`4C-WbUYurEYwWEEdY(IXd!d=RlXpwcl2-VA zS~%O+9MsFc82NKjLdjbT%!s@~&FURJ>^$kd3bL-%Tsqp4ee-UIfXplF^^{ZA;3NiX zd^S&bi8`0hi`Wh|BaQ%ECl4R|tg=0x4)wxI(wPMv%6u(OB(HS~v}jpF zJ3+tEflkYFQarC=h%q0wNCvv0{r!1VO7YaFM(c1JGVavK{(Wrf z5M#;ED^|ozmfe|`!3t2lT~vhv5=}5k`9t&iDp4{9&(PO0BZC?1+yC5lL^s#Ha!9;9 z!L&pRvU=AZo(uJ#hJpiOJ=G(uB{1oArS~s~^;8V&8AdBPJ2VUk9Sh4N;DDm|eW zP>(O`nXA+-v}z|Xyi^+PG&uUQ{!p<*kLXL!Guii&m*|xpi(c=5Syw#t0-(-~)zzHz zoK4v_JInPI`#4=ySB2`~%GW`oJ7j#$7W-5AFZ6GKtpw2Fbg~vTHZB^K9|AuLz-a&% zjU+|g)Kgyb6UYeo^HI{-{)K3#k%c5{WdF10FmP~gGECL9-X}R~U5{V_4TZAY&E3YP z!K0HVy?93b_*FD6qGrL&;&LjGkN0=>{K~HM)xVpcNw&2LD;Xn5O79(}9YPOOvUm1~ z&CR}a*Z2r$VZ)S^nxxo`S)md)PBP$q>YQ^(oiM!U&hz;4ed)41uK9132LEZXh?(bX z4SfcdYyCf|4`LTLZkOtku77AJBqu44kt>u<#f@*FA;0Vz!p@hltU4BGz{`a~{1Zva zTqr1Gb!Ld+zdt%nXuU{@*<2p38=?FVOGQH;Hshtrq?7!iuhBP?^O(*$BgEv+>GuMx zI}R_GygBdNHnJ~zNUuXrNUL~%L>{;AP36Mg^uAZ&-bNUUeIxU7ED>20-pq|m_!ATj zjKgG$t}4gniX#~VTODM#lU>Y}pg-u{y2|79UcRfnIcXFVheqJDZ?gmRG~-e~MU!BP z=6{%>!nKLQ8lZE_rJFKbOsd%_4DNqGDdRDX#IHo70&#>A~=zl6tA`wcJ?W0v| zSa&+wTYV7oV)C7t9Z#l;n%YPL=aW1_8JmWb(buQttoAc+p^e5{f=gZni#K2$i~V+3 zp^E6Aasg~tpTqKAv!OVEEoCTmY7cm7DKLA}TWXzR)OtN%L{eYBNBH8cdAet$y+#Jcu^7VSm8 zP`ZNd-drIR>iw3dcwis@q*#KjXv>$7x?f)!x~Y}}AZ;f~bNk*>at z{BhaDDN-3Lot$AsZSYSNncZ{PPf)g^p^aYcBa{NWnWT8e_HQf`QQpe0y}I%h_FdXO z(g7M)M3~uMCMHQtTX|^QC~eaOh4TOwb}V8gioA{G#>M9NG46Ao28Ccw3yt)@%h&Ve zxGz3d7gP8XcEb0SA2m)#X{ry@zqv*+HI+%^7bgQp&PT|}qXZaKJiu_N!KmiucD4NM zQDd~eA{$3WD@f8`_LAsf(Bl?bwYOLjS<(&X-U+~zOMr#)G>8CSFk&(?mLL6pRgU9` zyO<7JDero6K^&+Yke5mt2@H;!z}*B8vLR5H0OWM$YtGKzdg_2c*#MP63lcM@VaFE` zkmLn!D1^@ENW^Wz0A%|M>O}C*Jf3Zds;zMeztnf>{Q?Y+LfT*+)7j%XAGT_)NzH%i zKNOmx9iW@!7r!siDXe%F{_1yCPmx5yl0kf>AoD)-$E5<>UPluNB9t^z=UtqN_AS%= za{8FOnDH2A#@ldx^i7gsd&(Ll9NB2S6C_*D&BT_GxW$es4PtF{6EQDmwqlOP9J9yzz?f*3**B@TWZc5A7snzAcLxOGPhY zNcdoI)ZpS^_EDD8`#L;JY3bh*7ap)RoSqnGdj2qZ5PCTiA#Tv9z(#sj?Uc%;nmr ziwL;R0!v!b$lTUe;R-%aZpb>Ba;>1U25YY6-PAy|;l#@y59Z#@s^$0o37q_Mz17L% zHz%5)a?Ucz9xOV(AU`>OO-@YA+0@J)giE8@(<#>)x2_$=hA(#LAD1IMrU@?`U4mGb z;L@;^Y~X`)U!+-CW4}sDMi!aE`gB8q0>o<1ej2fdlli%Yg;&=do|SO539r2O_4%i- zQ9Nti8K@n(kYc zd+3ClKh#{QBVpU~@`CRdmaa*(3V~F2`fBA70q0wS4P}1m!$>W^TO!A}=h-pG^T$f} zpq~ALU(#Z4letZPb3dl{aTpC%)RrYJs}XdM^B4c*jx8CV*9pKz*B2IB%=T4P(?6j= zHj@(6&5Pj{ce%}?8=NH~P7xrtKK-B$i)+}@!XT0Bb~)3<%s}-O`rXub_mDl&;|vQn9Wf*)poe~m4>uLvDxdwy0-QZ$8W!9S>2$q(H4XIlx8YX*%9^GzD0!H zWbJ#snwiZ%+dnk!)3xm38Mzk;q??B<79A-U{i-Ei`)aMQx@;j}rv>+5E%87NxW-Hb zlD=4_rq*{5`vGP13XjTU=SLU4%KEF{t=7=zIqW9-zV-aynZbjW^Rv%N ziO%oTTe-%M^%}998~gC6_SZYWLGBYcOj5mX!F_)cQIjK|3fYR)x0|mB5KT`D(Qk03 zduoKjmM@oEwpPBx*e7)e@7f*h?S(`}`T)v2ARduPI&3|`nV>pHh3*bF`+wxVPre1N zXX3My4ZI+VN?yjl_CGT8#?`XWxd*m6`_e%(=rYrI-Z;O z_{E2@Wm|ZAADCcmC)CrW^w5US$n10(#{-;AG0UXje1Rybj^lK{_2&pTj{sTeqO^I8 zI73^4prtAYmui7we%Y(W<7Z9oJ67RT&M7O~0O;OEN9Co@ylTK_pRtcJ+?LKM-3tDo zFc|9#8?Ha{ebHHMXDEEJiQ1?tr&WLxsAI7e>n(1%c@Gff$c~1)Z(vL^1r5qu@fugGBNj;GDg~jJ)hv+hrd((Yl9$6TMJVJYaHMgMWP@jR zJya*bCkA%<^z-EF3cV{2&)e3`te^Qop<=p;G5J=w>uoSM)>eLJYI2_?iJq2H-xu>Z z^V=ABYo0OVT~M|^^;Hnj#Z{d`Uud)blRw(Om*MX5R5JWy5h@u382N%FojWME3^0Mq zCGnJ(l_?ZXN5D1XpPWXv3?_8(-h4P}sHKmQe_|Bfvlp{%ALP_Me6H+yL;TL9g9zfj zn;!HO8Ud1=zrUj#w~%4P9o%x{SOqTrz*kPc+2gOyyNp?zZD*=1=2KC-utgdOu1X_& z0OTGoz`Z1|`vVR!f6`pxn|}Exhr%aIhh6Uwo=t#%rpCwf@|b{a;LGCo+~K!{|5n-c z#lb4AQiUxpje+o63sA*oZv67*^cjxeHSvDvXLRlE)8~ujPLk_q+O!P25Xct+nvh=P z%)!BF!ca?{!d&C6<7RrzUwyE|L&6QUX-WBG(<^lcBfisWG;-<1JMTV9PshL#2#(M; zxvnO~>&Y2&qi%wU%-x@26s9MMG-5_$1iKF{CUVyHbwTEs7wy(ZGrhMA;u+LZQ{46* zSTD)Owu>yWWG;HdrRZE4QBM1TPiS|s%4ZQj7}}xBL_`t&mr^Rv>T43D<@rCPaT6X6 zZ)8y>ywel?_4+4Y@v_Tcqll?X+Ou#0OPuKX539#fh$4*^i|G%<0XcpQ*$mEBi^FWY zt@uN!=&Mt{E3&jc$l>0b~o6}bX&BvX1he;3=|c94CK0Df{F8l9>e-& zBG*}RNK5RugIb0M-*yj`0@;R!!7x03{>>mJd7f91*DI{OK%@EU+sHO^T2*@J>K6zK zxP$)Q2BtMC8xuf~ALm#=<7J_7iXr_Gj9ehBRPw3U0({AeiVCpDx3}N4?d0d;LszjOw&*GP+QmGZ`Qj#wTjsvgn`cdkOEc6h3_T4X)4>Fi7Tw;gmmx z3wCsfHZHHsa(4|Pfj#m2pN$d^0WbbSunky03V3YPeqH8uZQS8B=3n}P>QIiJP&^ul$vHYEQ~6nr0# z3lCkch_MUTX_i3p>m-yu*&4O-@0mR)2~rFbN{u#C!ICE*Ce)AK4;K{eSj!EI)>DQB z5`ifA{0a4nFA_oKBbQ>bIJ}T4+e}JR5&_j&#`Yo?fjv3&Pbl$1QU!L~gV}NJ(Xs+NsQzo4Q=Z+NkfB=g-hV)HuJ71i{iMKAykWdRm0eIw>R8a#j6xRjA< zqE54we1qyN<_+c??d!$~7#ZIf&Lk=%*;c8S<_s4g{dZ|yHusey!ZX_rd2Sm~XnaSK zx7m2BUt3T$(zs*qE`7Zg%aa6i(IdV zk&^ zHlW(|3!&lvZ}YaC51O}e3l0zv02=)#80rGV(zWIukfT z-22Qu4tpcw1f_ZbPna%@N5&MrW)B=o`Ie>`*Abi#7oP*T@6W)EC>PI0#m-*Y+$>1% z*Be{n?RGH{?XAgQ6O+Pgc`fMEL--_E1Av8|`&RT{<>qyvN*?tQT)OCo>5j?pHJJ<|ygkO0F;x48dLhtXtuZYhFH%>e|X5+_7Es9GBJr;MgYjmB(J66WhrU>0^|o~$#la))~ZagxUKEvQUt~e7HFvq2^m&P zDVtoX?}B5txy?kC5w8@1{+8OWiRq9^1ed578t#2w`-)agLnmhcjsAOzo8&l`U23cC zy9K=)jC+(yNDIX&;f-T-_lJrcOFJDMlV|vTDq)wt3pRk`i7%Zz_0jqdJr5Lp!i0^m z>a2kIrzPG`l+apz-C&KA!?sugj|BUG!s7r(>Vag8E(gDZ93vpb6DlU zH-PUMLpaHA|8aNS0QO&!MgzagY=`JRHLX+3rI zew+KrS{A^f$M3HZi!bVB1c`G!d8r;&O;J}F_1Q|+$L47m?@WH3(v>*I?CF-3_Tuz&b$ zh``FzoM$v`OJ1QtH9@#defY;kAGz@ww26Cj5L-#7DKkk=~TNgVLfMo``g+?I)EogjnK6n9!sP!Cb6H0 z!qzqEkf5yjUoBuK#3#C%;Gom^22>oS3Hx?V_Qhfak%^eQRZeR#sdp$6ebu5}J$y&0 zB-4q}_G@~0o>cu^nt?0Ef;dsMpoDU(br2;~ltvPYY)bnJ#rWfig zV70qeFsOdJEJ#9$YA^Kq20+8_iFZyT`%SEDZ2=iqJ`+?fphE^dIkFUMRZG)HujFk* zJ;FIxObG7VNBuMN8ZRm1(nZG9@r_oypSKNs7S8J|9Q_Q10=y%K%`A zc$DTz%%g^^gC2Gc2nwZ%BSz78b(vX$TP8UjCZo276F3bH@9zj5!Qm;2k}DVR;pajC z-KScTCCThq*QGRM+0szvHPy`V)-aj=dDZc2izj0i~#J8n=B*09} zBSkze~Y6B4x(PNNFV^^JA zXpxg1Egg6(E_7072=!juRLyXvDS1!M*0a7}Px{yEu?Oq2!1+J4CKyPsQ57@jjgg#P zuc9gv+(RsxvW%cxZzU+_+!09x$pJLiVB?k}QjE7ZOoQxP9hy`l+6Xh@4~qMyPb9`>|wiS|M2m2bi=S+7`V39E*_Pamp`5O zPh$?iChb7ty~R%mmP%^8c)7ip*2oslT3~U_t5u zt9W!vFI~Gip$3C#V{^StxHOjOHqTX;{O+TF%JK0YzSJJz6l0X^AGDh6R;lgL0$5$2 zK3RBWovd^=)SCnFs6Zd$_tYzcZMV6J$*yw)(KPW|sxM!|9nG+M*zE!3KXd%t`4m;b zA&T3Tdz*J)F+UUpx#_MYrY6eDwU(d1p)juqZ--eN^6@C=et?}GUX#*Jj?a6yS(Ruk zh^%B82++o6_j$g1k`p}`nJf+ZhBMp0Y+L86n4SzN(HWCPhr2de?%B8{ul~;X9MhF} z#FN`h@b*+#8?#ys@m7mdTSs&!UH@kyIifJw9S|`)zX%j{%ZdnNKCn3XDjXGr;Nhh> zREvyUTxC_9AZj|zBroUgv`2q_15RGoQkI<%2|~@BH?2hN{8wap4?e;VUeRzIUL3bk zf3!FT23MIMogcQXMC+xcw*MrmWuGKec%t3jCw48zEeA*l&x@6=2amJRGmb>b>Ysp5 ztc-KcZ(ogr?@!6S5yu$AnYw3#w=!(LQZadDy`06ZJ<}PyM)^+K___pi#PkoMhaFi< z8w!*(R{k;Zdn5&-hNA9eA#+JWLW@5W(+rbJ@kt0(&^+y_U`PUbEJK;A~rF`nlI+)IL53|)ko%WXGMz@3u!rA zJ0~_b+nCC>`lPC4FE2~{ImI%>0=(6^0W*4V*wy*P=XaX@*cnjNv0!IM$uS1DAKa#9 zRlf6}OGGLXMVAL%~-W4&iNyI5f7zU{zfB%81rVa5PxntL9@Sd5_V)HB*+{$l(}iGxQKMB%9u?efP!-685+M5WIe>>=bh`&2 zKc4G1Pk8N#CMvgluP`^d+33eHEH*Zv(`VAXHau$Jc>lhzeE3tj6J<8h^ETnSf*r@w zsp8=uvtHB0kJ5XerG61Z-f$N!+es!0&>M@V^^*AzhwCXR8C3?v7=eAqGuoq{wp04_ zet$3jdlOc5a|ViCQ%~yI7JPI`N*mbM$UGw{lb2-I*OT3vIm_Y*P)p;EJk9oT0P>4DdbOzReRj$k1#`CgCXRBWmm-2c z7-k4i1}p`KWBq;2`>G>c*Tc7 zg8O~0*9k&00a9Tz>!j7LnNU`R7>^dX^t5bfC~0i`=UjMEG^9vlQ`8FhOaOJH3s)bE zx`xSno!`$@lsRK(;y)NlAHp2WyhyGRGxkv;SKYLNtL!5z^gGXxm2I(u@2dmkNI1KR zv}F?;_%oWu+~wo3?X`$whY9zIOP>dfYOr`Z{GM3|r&a789amCvE#%R{-nPITeSKkm z%HoGLoF_$_+h2VHp=vwyk8RtxI6+~AUMO5;X@BQt@DhriTHDrQb1;uhpN63LiGGo$ zlsClXjB%R+r9(Hc)(U?}(F)H9LEtg+kItXSEFf2Z9f0c=v}BNP{s9q2;S1mb71!{b zX=&~X*{%&LbgQVDgA;NM>boD5j^)-BG+|sjvYK6b1x(Q78u zNQQzCC`h_Jo=5L1`ZWH_)uc#i5%tPhnVdwO8x3~u1zLkdK@$2xWuq#`Dv1VBb&++j zZ$-&p;w#B&kn;?ja;=Eho1`|&XDykb<-{`XG;?-y0%lG$D>TBiKQ6$gMK1ErPH=IGiDC zXa!akVn1PDx`j_r%Tr33Xh#kly%H^lA1Tmmo9L?$c`%(>Hmg|2$ShG-NkvpUj6s^( zX$kx{L>QGoxNpDk0VaJz+5wS}#bJD<1#?a*hOwd*k>$JO`dviwHNLcd>8o?jY8NrN zTE_p?3LdKgnL;jfW@+|evTEyIc!fB?GKBKX+CPd7`0rOhm{u2&Y>6Q=SzQ$5TOkG zk0TcgE;|xbTcr*VrlkH`(%raIiFwiEk7M3r@~3MD3kt zG99Jwb9Tw>aRm*6`(zC`f3`I8U6Pc=GURdEw@iMT)^4kTf@_IF3$Xrn(9X)c_VQ3} zjSJhGdttAj#SjjVFy>H%p%%U@y@Jum7|}u76XCBQgYmStREc8$Pb->x?0B79UjCYz z8Ug3k*GY_-$A{I&V$I5&mKMm91X$Jh3!&h3ZfoTUaVN8$taK<8WU7|w}Q1UAi;ZbMLzI9H#5*aT_i2^J|@>d<+sVtfO zaJ@_kl_mklki2?pqgCtLJOj^})X^=_iKbPzz^+WdP&|9S%Kk6|#_6bmZiA;wui`;otM@-|VU=`r zCCxU??NT555D^b3h=5*e?YH%R3#RAg{iKbFZ4O!7a+xV$OAwic=Bk(Kja5{3FX2Ko zl9Q9Isy#rAOCAh}xU$C%eO`36>eC87)O-~QwQo@tRcom->dgEsAGKw{qLTkn_0JJ_ zIQUd98$PVo)!2K6gFS`Knsw#S+Vmj8#RAbflC^7&HJAJ8J@GpM)nYas3T{M{t2u0yOUBifD$!&e&Iq5!iD z2#8LvIsZ@lhk1YIeNo{41@5yY{;9maeroTp`7*=Kr$kvm%n&O_YWLWVH#ZwjP}R{P z)_fz8q4>pz7*D{0sfB?0o;}~Qe=z$@*mf?dv`D>{h(%{VmBNXOxKo1Sbak|N_2lpN6wmuq zA5XbWz?NeeNW(8Yyv)tbO-w^X06!Bw$QW?76_aGHPa}_-8pr#R787`Mu6MF0?1gQY zbh4=N`HBT&KV>SR`1&{~+56}x>UyZCu;ubXfP&!1G4}Ni|KpLrA%26GH{kt0xxy$C zT*Y_*Xwk^XC?O%?(Dm-G?_k*FSkz}*vljq|5)Tj9e?vSx^eL^d#z>>O@P|9Ddn5in zVa%l?$G8S&*eUe0T&JehI#ML+nAheM`aLR!#NltOs`iNO1bDsy8bAvac6?3>4I0Wz zTg*O92oxKZ9yDu^q^*-VoS=*z0N|kt)N#W~r<>={rH?cDu&o+cyb!)fZ z&eR-U-&Gzu&v{#(4U57{caIbPe*2O&SKYV~*Oyi?0PbZl_O27Qh~}|*__h5ot3s?$dYBgp?fXcF&{Z23v*sd=FkZ)_YaI@AuoimY`Z%v) zdh-%W-Q37Jum#>z##bAva#7u!DwX6QymEK=GZxrSE(z^rkS} zx7F<@B7+CQS2SD>l(+eBG1gCDufrhklr6?1#p2+-hB=G~vHo-L(fRr?>o%yUtJi`Y zn!mKujG|>vo|S+#X)y4U4*0CfQnLe??`0L70O<(;b|W`*I==Ya-m=6ul2qd#9mISA z%fR?>?SU#W=YY`IyNtiy_C&xSUZKk-TGbGN3y~hiT_6b_U~e<1C%rdUQkno+?mU1m zl^6C&21u}tk&%(fqw+E{e?5I-G{gi)UQ)fbCyW8iB7Xxczvg6I3Fp3_`93U}EgPOj zb{U{`jaX%o7Uo*mG6RwMoSJ=Zhsmn;xQ^`34H8`V8^aG`uYHj!;b4eMD3Yym4i1mM zLG=MvOJi03ccy1>3Yy8|gv+~jJGUXIF(@)jc7PWk$86uXYv%T;@Ljx;ioE(h4APhO zy>KZJA0Ppww+bf>5B7 zsG}l}O*dRJ_KaGce}O2U3QZPg+g~Ij;Z@sx*%ZFk=l%59H2=&FrLW_dv@kNy#bFSO z?ZF%oo*m7>@ys2yZXsVu&QXy>F$3M;og$pUm<|u*HZ$~uvB;R=LQQ@b3(D!^SGuHT z95`%DFRW!w#V=5ZFy9bh>fXZQC#8_n&*F(-JwUPj2><1SkV55jsag$??)FiU>S;d- zu;WDF@}06E>JR=;EBO9Nv1(vqpG|h_8FxAgNW3R1-Ja7`&EtK9GY-JTk1d{&h2;d0 zVZIu@KsX4YN%?p-%zbsTTB?+PDj^0A82}jfnK%M3po7v@(r!(_s5-yYXLHtKaM>(H z;wSg@G2^r=9*Zj8(P@5wdJNOO08{(QBA|8Ni2s^#D>NFXmoKSv0(ul6iCtP+dSbi) zf6K1}b+uEVPt?X9GON5eU)pHn_x0(R-GUSn&)+QbUTPjxVYLS6{aaW)3`*gi-SBPR z65@L|Za_K6IbWw`?2;Hq4>;Ho{+-bY+GSR&QR4ldAeFq{wmrvN`T3Px-7L$|^&YF^ zlNWH6jmg%y=)%)LGfkRVUy~oNXB;y5A)mC zE(Cir%1UOo3+3bwYYRih@NgCV(<5s8G8O^}qBLWPl6}JXx_af~h(gJ)YClXNR8P}Q zSk#gV5;R`*&GIX?M943du{Lm)$KV?u zPJzF?al%1<>7?&2#???XWuQtJ*0N_#455DIGI9xrZScluVn-WG{g}53B7z%51Gw(8 z0T4>R5tY4wIQK6{lHd^C-Dv@OwHi!zo@Nz4hhOQxfY`2OE~d`GoDJo4`jW(HLs{XW zmTWMJXoxK{{MGE%k2zbR>vk*G$aCD&BWRyeoGKIxtPJFetgpk8730DB-BiPie2_OVXO84jQ{y;@ znBMfHqajxG!G!oAJA=j2Bc_H#9b#CCYn0EeyBJ7=8Q6Gk$??}C@(H=yHQ8efEk^A& z!n2{<3pjtKQY~P5kNvVX8X&oO&J>hs&givcs}4nRJ#Rm?9a@!Uzvd=BKk}Q`#vFr4 zLJO^83Uj|2u0^bH{3(IDkhhyC&cQ5cEh1m`0+Z*K4939=dg-Y8`~=pf8Q0+Q3c3aj zPC=Z>cVYDySy1tS2eS%}%YNtgz{2!hB=cgm&rD8Tw54U?gxj!2tF59mf(KG=3Nr`K zl1}&w!E&M-w)69t#G|Ni)c;=PU~dpi{a)bLE*_vE2Ki9mH91Rf{fWOII(T+&h~{>& zuUa|_I6h#ROwdjKYz7uX;1ont?t>2Pot&I_r?^@Y>y`r#987ypIMEZq@evr;hix!+ z1p3@MlWeoe9mIb5=<9Q=qI-D4p6o<<=1A@1gCQXc36ld7>#Fkd4}ew)xQ?DGJ*KaFzaK^$d9ir9M?Inb^xEUJfp%Rwd*fd``L^)0EB?mY2EmMv! zeGWogFW^r*1N~a?Gu-cDsuDYej1kf(XNz6B2X4JP*rpyF;>))RiKgak@<$<3A;KzJ z!!h~pgvO!oq?9ePbC4S4fj>ZVy(TS7_E{B|IbBE%ttmH(f{OQCAqly!qKB)x+CoLv zk>r52J3Wa^y8YVVE{bl~Ns9|aj|_*=kV-kPd~SrJrssI2+Hw?~nY~pRkIy5v<=uc_ zBQJ%ayR_qb-O3?@5=$&~RxjJ&DlT=C%rh72&+imvw+M+-Fv*V!kC2J34)g4JX408R z1sWv2wVo;b`Ao7XKh4D;H-np=q50Ch@U>|cQ=GFax4gL(X5Z-dg>zSRXuostA%cMO z!I1aM&!JWB@2_F`@eYFrtu3ZCh%L?~TAslN*TMhj+1|8xrfQ?e`}XAwL4^7Ylf0DJ zh5G5J^WIxnXN%CeFwgVJ=tft(TBX-PMANM?6qb|tl8z`uTKrX?fp~^QGJ`|wj7Zyf zLTQYaZDqdX)uqVm*!Upt1`aB!+7#aw{gE~G3NZlev7wB#!bwzx11#*E%lr-dUghxO zIOaF4${-CGk_A}v4K_Ds=`i6*F{Q*KIKPY(8j^lYiz7R1QeC(s=;G;=)j2k9JH&*S zp)r%3v>-SOyQy;ViiUY19vC)&l_<y$WW{LR!c!F6g}#9Ai-4UcFq95s1E2uvC?m z?x^t!(Nb(*qY-JW2^Jd=ztF5U*Oy|Dvv*Uk?5@^9R>w2M$gqZKifEOXB@;>QSXxzaiM0PUfN0?7L|7;L8Xr3}k}`>nCv<-%2vc>Qx!}TyZ(B#9 z*Wlc5!&R!=c=>dX0+wi|#@FY|fW!W@X#qwzG2g$7QeuMrx0@R`p6Daw@ilb~ofGXds+f`WyW*ZuyAV zr<1IF#mJ#fSg+RQ08({g8MI+nw3(4Sw_|ouPvAZ2^?1&Dw{&=xv(N0cm(g_%Zn9zK zlRaGAxB0*J!a8l+Hc-=Et5k^7SHi-_wRlWIk{)#Z+?L{4L`wZ9b`15&ptcN?+0~qP zrCXOOOphSOYVy5%YPibTJA1O*hH4_VXU*p<>Aw$;bXC$nf~E5Z?Um}-Lk+3g^s3qJ zYayryt!Eg8v*MD%(;=wT%vzf7Uh?xb0Pl(z6e4EdEVnw?X0@MYK_lCqG-kSb{p}}` zEJ8a($;T`_zYy;_%0>z3!zwzijAx0NO2sea8SF$dWx(d#4k~#WZw=coy|(d!Yj$yP zR%ONvP4+P-O0%j}sdU0C_lyjbXA ze{b&A-dE5#q087VV2<8Pqjz+FJhWsza*@Ob5yBkWk`VD$@xkP4a^wU*6rVi&K9FgD=Rit zfN3!G-0V96l1(}0k`_Z z4yMR~ClddsqiE%N12SP`q_aq&yYTZZ4}{CaL>eL3WW&7X+kJG^DE;$!j0kv3Cf5S7 z>Aq-I?BH7X;Iw<#zjgOFA1a`>$iDg!4c0+aA1v*+QdQ@459raO3qybh0~goK%1TO9 zRJma%g8tQ&W`pzI)AbC3s!Q}+Nrz}-2OAq2wrdoyKxiqV^~%%~_KO$4fxU+in4f^0 zfNcLp@TbphAYzxRYDw1i+3h#HueHU0lpym8cnUe>aUO@T6uWVXEipcAHJ?py03G9C ze_w+UH?sE^3ney60EpBDKO`jLrh?F!#+jmtiPyn3X;$=z9IvS_(<&8n?YxYH8fT10W^-nlgC*87|ndgYE9wVPmT-<>(eO52ovL1?dg z&0FeA&Z5!2t!R;wBNaiBt=7J5B?_e4)M8k-5et!SWnq%zLUi%Mq!;t8rQ&L|6 z3-VW+e|QR%OdjYtpr(Hu{MhE6)>VW;X)lgPMX%jGc_T4ORhk_jMNP`o;r0`+xyToW z*;hM1`*hQN{Ac<3G~!y@pkBfw5|S^HhL*GZgKEY$2AmXYryE>0q3RcVD?ct&S@_%Q z0RIdK2uO`J!NtYh-Q9%@`%e5y&FWv9 zVn*H8gYE6>o_976M=ovW@;AWmh!+Ik0HXbpfssA`mN*|344XwY zY_$SPO^Qb<>~U?LubF)9E=l@eIR`dVoHv1pZ)9ekW6!HW|#vNWR<_e-c?UGBPaL=3_2{&%plX zU+0LSF&}?H^Cn*;)%vDP<_evAocD^#dz=l*VUzbNw_*krEEwXDQ6yuD{tC5Eq{_>Pgp0D3wneyOnlGHjs7U~5OdweGK;)}n03cren z`NSA3(ezv<0&Sr3!|uK#r>e=WL-)a89^VldNXBg{=@cn3Tope=shL=>Ntplg$MV~l z>BdnBQ{>tIBzZ3#u2U+2h@xB0a^^2r(pg*HA+z1!4(W_gj1x3u{zkkmCkH*rrl*h~$wl-a)5K0rmTJ#w){*39=`gF(%u6fQME2n(z5W3ft zR2?=>D$b&P&fWf&IqUq4&djr5cmvy^qL6YoNweJzu6Z7csq7)k;FDto{({^vrDH0M z8dOPzA6;qosd>Q=wEQZbcj-P-?4^en95pA!H26G(zhz_x3dNc696)ZP$gLu^+r#!H zIruJAT72qfhsx(g0&zimGo+#7396CTVLXT4uda7!n|UBMbXZQM^%riFNoy7MuY7op zpJ6wN{_RcI7a2no{cz4~+&fnZO+g#EXDqE}XxO!CyK;JSyvp!wRf>J2_vb~U_(D_| zas`R+-@hXPxJ{t|*wTIar4EgXgai;(tT1JH`8PyFZ7#=4H5SuPTkLIaAacq3sw(YY z$-0tHFI$j`Uc&S9^YLBdyLWQOa{Tk85^rO@HLy409-y5cy4S4ICgG<^86ut{GDcT9 z54H?F8J-um>>Gh4GThWNHe%!pk{l&QcndrOI?O(y!Nh%b(6bm5Hab?uch7QsPDFoy zG%iB^>W zfhvc8hE^MP5x4zWP~TlAnY-QBXv$t_9LZyF+phz^fs06%Dg?9Yj!MJg-AqcQ3Zs6- z@vBJZI=8#r!O3JO#{`YmS15|O3^?%*=@mm4TiO;D2Gmi>#)-pwuIufmiHXA32ZR{h ziBqjNCp!|Y=n^Fq^5li;O}b`4>IOwa&U9H@>lFN1{>1w9HTN~d)z3?@&yr}Jn+RHA zN;x0?WVYrrIG0O0(Z7)m@pQcSDzU~`8*n-0R?l>B_fuOQJ62T6*Z@&Echp^v&$Ku~ zC826QUeIRAm9~rV{S9S+SA+?K{6`y9e$=1U(Zle0h{+Y|!@f`*wdKgQSCJ9$F>Uiu z#}iFIltN z5pp=s>tz;r1=Rm3_&8YV=f5()g+H%O1(nB#)_Ev@?xIPEJ?hR+-2Si&_}D8e=}NS` zpwxlc=QdEpVRyqO_yM0GKHz`&BEk05VM(1j>(<3)H5mQDhn13Er*x?dq( zj>`BO>YVn>K^$+U9j38=ov<)Fgx2m16MIs>;Q`sVy^%y^B_%17t_g9&9fVH7B+&^C z=vCu%LN=rQ{1CSG&c{p0M`bT7&A8b-7#;_(MFswD(v&e&nxJ?5&m)giZQEqiFwfGd z)}W4`VEs{Tl;#5A6gEuh>5VBeM{6wQc-NNxn7x5Eg)YLjH9@^-Fy!;G5S5v}8-tX1 zyv0YBIcyLkkVvyqc+vYlFQ*AQA7PuNiN%+&&3J_5r_yZun{muUTm;>ngG2f_MtE5v z`iSRbBqKTIR#u-aOo%Abj$E;>?%ib^`D@+MX}pZ&qgPg>$fhpB~F&{}~R zZido}EM-+_xA(H&Lu%@FLLBP!utROhTpdrh4QOfk$pB+w88q90?$=AE1{o##+!6Km z$l0SMsL`#|$4>cb^lOo1Oo{*SIvGm}q>Ha76f}(M^Itm_Nyzd^PBF$DUx*dPUz`v( zNXn&Y;8{! zU1(it*U^O*;f?C)RJ^1!Cas-Al8dF~ka>+xlk*`kX!HQ42Xb0JaMeJ=L*TLiIpqTc zDlY{(0*-AE#p-ZJ*GCluz)Ie2Jw6 zJP}{Txyi}Reyo3bJZ9+a(gf>JGLo-~Rz4mnLVo8KP#FRS4tp30x z%eoN)v@f*NKSV;muAQxo(dC<>9{G`Bh!}5~Ep0H-AvkUPvij+j+3(E9pD-qXQk$rm@1n5yDT2L66 zi@S^*l(aOor8DC>xk<@@h=*XBau7yO+1<%8ge-(yE2Col%c)$tC(8n(M_W_iL>|~- zPs~*~ZpM#wp?Pwi)-ocgXQgJI`Cd>~p{TJTY}0Z~Oy9aJi3IbZ-i-=;m^0)yvUpu>7ONuk?ixpj!~X*J~tU@!Lwz8C8e-EK}=_d6T0VrhaISU+4=QO3Fx{{kfUy4lSZ#l+el9$v_*ObT+ zeO}gs87n6&87j=0^ORA=`OZ6MDq0wCacf19Kr;T`&<5zHpZcmWTFF~d4=njul~=Jr z1M>&Nw8Sb6KFD)?2fk%6vfjNQT9E412FnDWenGW}VeXjeBCd0f@3sZaAjm1e2d1so5u5w_ua zST5CBB3t1O!9x^8d)W5$8dyC~EHoIb+T;OP$lL?3+=>~^?82cSENPZag`Nf*MA?kD z=`xW%PI+kqrcP;oG^oDZ?KN-+Sh68fVWR8;O@wXc@hk$2uRh4UrVm;AzAgoe*ZDLv zs5~h#99;goCb;~U?xl!0xoS?4L6~skEcXY&|KE7%S;V8M)R0B9b|3Gv@B!yLaN{88 zhP@?OtrY{g9ww!-%(Ay8iU!oPUGMM-2npULZCf|`ouRG(<^4Sf7{y0J)2q?gZb*ea z3yLg^Xi;}w>HT|ER8>_~P(btH!wD!@MA|CZEwCK-2IfNJgU6a<`l^Nqx&3Fkb^(9Ajg5cXL=N3n6!Tp>n5BzTt%v@ZB34*2W zp=&I7VJ*tJl&>*WLkD9j-}^y$<%&8&KWq!9Pt8qr#YxXPiy4=%1lorT<3}arVK-_(r8&ZT~d@OKRRl+Z2LXP_^^cKpJ$0?|6YCW&f^Fw=XY_&bo)fIByZ%gL7 zYyU)dm>{8P&zfSmgH}zwUuTRza2d!epuY0pr!7#vw`G7z#4Xm~nbD2wpX!SF%m@K% z3?J61V(KE=!^*1V^d}4bZw+Uw8vv0D<*V#Um}b%DKSrt102P+nML zPrn9{63!uC4bR7#q(=|4&vEndcsFWC9rHl%`~h|lb8277Y9y72eFu2DanXo-XyKMO zc5ZGqaCKqi#PJZ4zD?{xmn%2AN8rG4pxMDW-6DJs*d9@?W8PCEMbndneKWxSZz~YA zKB!n9VP_-1Y-?;rbL%tULuTh{X=q6}_R635^z`(_n^Xvu_v>2a!w0nreGxEnC=}r1 z;Qac6+yw8@@BW#G` zrxT-z>L14E=LgqM+Yi8YnjRF79`F@bQa9n>ZLd@(<@rHyMOCu5em10Y~B zw9G0GLmK}U&>tvZXA-8Tld=?K(}J_4u!)%oLbc?57T0D>`i*#=yJ5Z%uRzx%N5fLG zSbCN6Tg}MRk3r19t-G@I(B-$fW8bVb(&lVuG~?D3tFDcC&OmOXXLxH6jS?Qiyx>UV zT}oUgA@PcWG(%jRf>1Wy$3_XNA2}0KRU!%{OjRe9QjdbOyzk1R*@M4QBmLBZLN30F zb%B)1`D2>yiGy}i=Jy$Y~a!)+FjJii~hJYlsWuuzTw{RC_LLo(7 z`^d#8d4#N*L=v=JX+^kpg&Cv}W}@{fh&NHh0+ULR)hc2|(%K^1L~YTc6uC|XVSibD z;8LD2IX`d)(1^9O$eE=UJQMtLA@FNpr9Y54fE6>r<1eJP=^7w26ZNsf0`6n}kEX^*5 zrH+1q+ikYk4I;OuTInUvZ?20@()W}=S%{!!rEh`tdRB6z}ELp#{HxQ2DZMO#+-!%t5` z#^F3XIK!!aDR~B!jBUQzu}|q=JTmzkdZuaf!JU5NQY_$;uX(OOaog^nrr{+NHj0u6 zPrkhR{Eg`S8t%Jz*-Smu-n`iAa;kk<>73dSx-a4wldKY@mHhcNiH%Hf#TzjpyOJ^C z#Ib|nZ}&?-V7yYpf)W!j|Ljnpy8~Zt{u)vO7d<6`T0wfJdF!Y_r4tSRTgyhDyx1bk@K`Op~=Afmu``tr<_bSbdMugcNFnn330KL3uY(-fpvWnK^$j zfJf1ht|&Aq1ya{0H!*#z49a?~dW#1=12sv09Z)LJzDoZ)iuy)ro55G7t?FHXBpqkm zuTfGJ1@eK{m+>F5xFw2V+Add5^*Fhk;Aw=soIhkLu1mcx!Iny?9QZmotwvyoCY^n= zVp<;Sv^aT!_z1B*{#No81GdyVDtIuj!jcE|So(OMr=l2rDQoQk9Ly0B>Ts-+@{~#l zynkxv2WaK{=6~43dJ{c0*PV@ou9duxKNyHraY1rKjX?V2CKD7K3Qe?8VOD zUxRA5dh^3Eu(JXtWFWlWA3&3t2^MrtC|4gzCdA!)f+u@39;yU>{cEK; zu3A(3?f2!B>ft5u`ehT7+Lt1;xYsk7gp6Z5g9Qt(AvZ)Vc*U~W=J`3W*5oiQZs^-R zf}y`(T_JG!G<$8R=mKQGW4JpEXWH{(jOhEHyb)gu@=y%@MU11j5p<8F99n+{Pqlr$ zMk{DzO4NzpE-zdl6vNd9mekd>RZO=js?V6@U&{NwjUPt~3m}fAquiAxO)2mnX5r*w zOGa?QTq-yb@g-z&1Is?itdb}?`2|Y>KL%oi4X`nwZJ2GjGbbu(Kg!4H+B02|q*O|k z*Tg5U@Xs1+sWfQ&47~16x_7BdYD#`mB-*}eztMp2Xl(a!^M5^vQrQwMq z)H;Bk+<2%zw31MM@B!($qVl{kMf3<80ERh5;ol14xeQd~66^jABJG|gH@UDxSC=U_V|21oFiqAFta{)=<-_gTNptE%=*B6exYb5I`*_eV`OZI8}M z%nJ|;x?sBl)W2hFK2|p4i9JJ1czeI1hq>JzuQE&fn)8`3hCf7& z03#%{#An=`G z6$`V!#l6L|X|S;FyWF}IgYs0pdG(#(i-`!Hwgg=;%P^lp!XZbibRm1&zRL{B$T7>* zz3G)jcL72`PIcU1Q^R)bkRDCmX|+nP=KTYAEUZ@#91(1NVw%3aBb#m4TS@*=OmRu% zjD+rGT<1AumsgLK{6`hfTE%k>b7QZsqVAFE-=)FoaBXMJi5;DGj0z+S$A;xa@L2@ekvRt9qo#do`K@i@9P)`+B*B-@s?e&ro*}LH!0rT zD?9CohQB3DAm)FUT7MCy5WBxXvP9v|tE-u=42(`1f#}3c&yB*^D(BX0 z3rB^hB`k&zDy1tmf%_mFkS zJZYu@rGc(Xzw|^F>(ixw`t*382881PX~>FRg>zYQqq;F>OFEov{pZCpCsb6Fu@fqK zKF^KZdsk)#)%tZL40H-&VIzKeaNP2a)22)NKaKa;1TWh#ft}Xu z2q(l?*r4Xy9j*S>o$z%{k3NEwg4YrtM11W2{n^Kc#8Fi(n>nbDV948r$Bkqe5ur zG-*f~_Q%>BUtgQ~CXYEX>n2am{8m^r^zl2F>qXz1V4a@KbGG=bN*A_ngTih?>&`$?K*Kpt42TvKFC21$Tu?4Iu0-7KmGSGge9>$gp{b@xk zXL#@*?^q8tfYrUf@=2@k{=6_0602Ji66J6g}J^FFaa1#1rWzsI)^zX-cd> z$=KK!7>;eawB0X)L_8m!OP}_*myYJeuddAdvS?bzgMo|;nm%wlS6I`>q@sHD)#}>a z09l#7ODWB%_>=nj-S*sA%l+%^SvDG4?j5)R{<=RxPq+l{2=EAU6Jg#|U%cNJ(xG2E znhd|~{NeKvPew~?0aPkj3y>%=*Ec*~&BrrnV&UL`Mu-RXob{h~pxE*A!h2+HBsh43 zqP{lcOa9}-Up3-0S+&nKRB0PzK~U(5X641R4qbW2kE~;j*O4$PEH|HTO_Du2$9K+O zIRX@~KSVEWfQnc^K*8ONt`~Eq3B?q@rc^m|t#8s0q~7BZB6D5lnJ0>i#+XrlBMMP= zg%Z1Y>geQa@x;$K5%;urComK2C2ACO$f<1bm*!5wn9rfT(DqI2dB~0~ygAD~g?biC?WuX$lB!p4`-+`~1dlve z#^JfZfz)LuEej_^7QSy;F1bJ|Ada`=5{F={FTQhGC8$+M(hj@lgQ|9l?ix6) ziBvMqdl)BGx$D+)gl)fNY~Sv9BPu4ws`#PxmiV84H5xmj+|#IYqOC?F|LJf3P`0); z8NWAm4-O%!)D}Wq@Qw27X~3vEM?qapt=?oL^~JP*hjBu1Ync1k6O6{HB^sD$XmT1F zAUCE%!ByeBH@u~dOiZf<75h@Bn`C4&ZE|MOqTFMN@tj*abbWR+{~-Mx_45K7>TRBn zYx~^13bDU_FZo` zh$1v}g^kaYfoqs&-TQ9nlIEkZAK%QmeEdO%!fv~>?S?rDYt_g~QK@DC<87YbFi8jo zea@BWA*i^J_ZEfeeBL9rd8!dZpRtZg`zvn|uo*A`ov;j=_c{+o0oGAgjCGG%JB&X{hqa9@9G-B50*P`T-6qE_u@A zLV29&!+?3&_S8DdUcdCF%T-j*TC5L_y^QClg0lT33{|6~Ij*Ez1<12S+`sh)WR21e z1^Gkjk3;cisJUFd2S~(krK5dtnE$Af2yyYtU^k2*c>el_! z0Dq7*;%qyoaHvP=4qaIzV#|)@eGOei%==2Z`THh0Es8ivpvGzTd4769paGwhGt{C6 zLLI=>FQT9q+Yvx!%acu`jOpj)<<&8J4WX&)(O7P&DYV1A`9uhy-ymI3C{NmUHyE3h z?WMwY@EH#d^E?|w4rR~_(OSor(GU0jbJW@5PSi-mmhJY(`Wfy@_%^s`3Oo9jXB-8}O5XBwCsaq3z%IGJM51qmtd;csQx^Jb@1}lM|t4 zlqLqz_nzvmc?oLxo~(%YPe~g@MT$>f8aL8DE06ki2QP_$8W}JxNc{Zt1wn%6O`L1Z zNM7(?isv7c{rorxh+#JUw9Omil`O){ly~l5#+1%vW2BzUNQ|#EU$r92sdx|!MUM(V zBJxQ*eQI^G@pOF^)*9tw=x+z?XZrYGcW<^bHU|_8I}h;t7i^|65O7vaoqKNXjQFaia3%_PWYTxjz;0K&w@GYv)+NF3#QE{lXmxgS;Fa zFXn12t-mE%Ze))+AQNs|75*W+_%6Jfal_o$Y;dDi_fDmt z>JS?;eoOJRbMi{+b4&qM^`m5APmJ4|lQ+BP2p?E&_Q~Mb6KG?=oTg*G7j~19!;>T==d}A7bCmd&kK)sPSxScqhw_2$=nG zf)e{7n;zNb=`#PmR>5O&)~V=k9+aBGl5$K|40Uv5na8^IeK$aL_iS4kd1H~Fs$~wi zw|@FilWum*aG31#rd{g5tcU%0XVo_J54@?FdU_m~)Ew>89;_O7 zz}ee8{Nc5gm(>mUF2B zhT|t~@;Mvunk?dM@VpriZcR*0`&Ml+Ffe>QVB(Ohb=-Gz+S>)tLpHk2oFV^Nm%84; zi!CoOT&7%|EB^>>Kk)DN_U55SyQMnOXb>>K=l_UxzacA${8N%^SdMC*D4wo+-eIPc0Bj}1@vTLwEvtL99LabB zZJ{Dy%d`%n{RGx~{R3vrNw6Qbu|7}?)Ob94(LU=HGIwyo*S#}YIB-|JEhwrH=Fzkz z-Yb?x{UY(lDJCoHC&h-@#X9VVMktc7I1w50lD@jhG$`~nkOEGb`tNQNW92seE#`go zh1_2wlj#!CQp4tltXhsuqDr|pKcm(yZcR)!L}Ie4{OF?I_NQG3XE-vN5|#^wew=UZCI@j(9B54$deNjJYYkbZ)jTu;-~-< z=0{i9_`(0cu&1%Cb@$@;v)-aItIi(kh**_7;JEmIZRW(>oJKZnqSE7N$hf;%&anM=Gu##vNV4O@^=0`VFoxWj&2vhElrIjFsy*EDh3&siUlg=4ETOAch zn-iPw{7vx@RG?m}fU>Jin(6e<#i7XtP#{9v*>$ugmoX5#}3Hn)viD zD>|2h^8zo7pUDuz0#yQ(%?;Za+I|>Oznnf!&32ilsrbwhzCp|dI~a2IG)UW59YX1T z!>?P=55b3_Inv{c`3p_J!f8%yg+yycxOyGO_@GFGR_wT_W6%7c>651wQAMXCrjK2#TbxU~0)#XhP-~-!>vT1%ME#;7)mM zZLh7N1c0Yof`v2Cq}qVRVZ;%hH~#_%eR$!+19;u1M7wEfd6}PuC8pod9}%CBFm;<2 z*TYhNXvk&oQTP39)4=4=pwR91pRvdJcOyDm7}Rs45AU!*`J5{};o{>~Ue&HTN!top z6?0y??=DTwX!DJEgKK9!NHF8Y;Q;K-KWJRvZ>RZ0bgrUxSxh1`+?oJv-vv;mz^?PZ z45dof7ofH(MslJiZE+Q^u^b-sqMt!8n&rak-KZ4Nq@m%}LfzqF)6!X{^TzC=hMvSF z`EHF+Po^?aBcRN9lHKT@v3+Yi1HB}pI*x_J_qUZKZxVe5hYE{Mjs3V{d6dQcHxOt2aDVKEUnqldGm+4UALnhYDLaM?*d#>%vE6?;V zXf0_)`y1FO$Qsx+17K}_gYGtOT%5<7Qzo|#?W=uGKievdzqp<*z*T%c2RZM08l}%x z|FOAEL9>wIXjL++m6`FUjMz9&uR_Q`g>8P^W;8Fc3fBrz^NI0*#!4es_?weh_Zaam zj*tGi=F;-}@SI9-!p_pk#~>{z?Nau(YAfBee$}IJjVXv>2%%hX7Og~6;rIgjhMb*i6QkEiWq z$OG09ot>SBhlj8HS8VHn)v+fqE&zFSHZM-zYoNp)fc?o#rID1Ur>B=!ivV%CMhR$J zSD<>g9@AWqd8g#u=fL!9UDO+M=ur0vnwoY#El0dI;l(ckMr{i(xIX~puAUeRqteFG16Y3vaKjqTL zYSCE0UtJXEOL5o!QXSnb8RwSi0X>yn9q4eOfRMIMcS*rWN0U{_R}vwdB2Im zul9RV)H5oQS+B6N(!x$c`KBMY9ZPBKR=-Pt#Q4_KIR(mvnMwN_j<|l{98U!_F*uUY z6Ka$w17p{-UNQ^};uT+es)s2Bs@d4vplQBS&h0rjA|gPI3iC1|O8FjEno}uwPD@$F z-vUlOp68}}J8rr$Dv0Ftzq zEX0?i4D5kUUuJ3$vjv>oX{o8x$9Go*!N9wH{NP!|Y+x{FeQq|VT(*E3|4?;)Xx}FE zb;eSjVvJMjFgG=W&%!3Dbue?EIY4*hVfE<9I%^bY2YiayS5;md6L^4$3ZNIWgt@K2 z9S|O1&cua0tfkcVO%GnReV=We3+S=R@8iE0$Hqvx8%>HN}+6|hr-jcjk_KJ zmJz^oq9f)DpViZUBIoLUj8>GjAt+?zJmQCro^4h=Tq2wq==t^W`z&LgE*ymfuovv1 z;3x#-B)nI|vjX+#L0{79x~rv>kf5aC)KXBRoST~7x})u+dLr2H+msjI#pv(nOA+7X z=nGPO&I$zCI15TCInOS+UMxSo-uJ2JQIF`ZG@?e;`kEYo8}$2tr%O(9bFbKnDDBm5 zUG0tjRgB#>Esdk?Nq)=(*@t?(ma40W*(;I137?W=q42}QNl%62=@QLCX%^o7l-xe( z3B*Bni1uQ-_l>Jwy^%;*`fin=;sJ3V9gx?5xus|)-`WS!6LN#-uIa%mhUDzIhWmGi zZigpj@>E%TCw-CXT2J7?Em7RNp)w&ufKr!lS~*V2!pRc#auS!rl@ZF)&K@}`XW}zT zyOKE|@3bQHGe}&I-W?-F{@fW_$@cU4jGOM?^S01wnn~3Qi&(Odh5hrS>t_oK=#d_M zbe2{Kshrzvh-u$Abgvd)60!EQPcdP-|1-!#7VEY>frwAxqR_x3UXQC^f3{j%8=m1i zQ!`pQte^1SdqKN+6fDX_g(O2oX$P*+%Jla2^?^oPOe|QXhyv|ZNJt1s?+R>+!3*6F z!FnlZK-b+3f5#3gUR6a!GDjil&(!4PrGq@{^acP?7$-LuG(}ES@v1Z0QaZBYa=+LqS^BEk56n0ofRRX7R~H9x+OB(De{VIxz>wxgzM;1B60_`fv111#U_L!zwQj(mU3<~x51qtObpx17^ zcnK+VHAhB4aZiH$w<@6$EuX|CJ@XO2DgSNJ7gq5;cCZW)`-YQ;AJdI`?P2nx@JC-U zu{`u!eXrA{TQ#lZsX3Kyw3CmDGh%o}S<1P9D2{-4D&fZGcHYXu0|<;CZ7HA*g^!_- z8b&2CXm0R?Zfbb=upftY5$q0uh(e(yfjCwQ`DaMHja{{*@@C1xVE1ND&Cay;F58=H z;qGrWx$Y5a*(@@xo;kCk82$Tdnd1fO$Txx$&=8f4*q>YnZZ->_lSyh;C zXk!k~S6-!5zP^M&a#uHZV~{6?-}V%2%X=qeTpdjz>DOb+%!DkTp61tEiX`3Iqqv{c zK`PA!jSz#G9B!QYal>52N)d9e3U!7$cpZIKl0ZKH7f;jq88Q~W?tuIrP>a>cNy(%B z{Xz_vXUM$yN;ww}o0}78Vv4`KM!vd|h3>S}xM*r)MgIUB4wET&^iwStNp27;0iWO* z8KKVX^$vVHHugs}alvj!NDgyt21QeQN5Y8kPhe^LFf6h<>(5LZ&p2(GcNYNhUvvje z96-t-NYdx|etFq#J4NazeZscKhVJv-bXm)l20#o!Jka02f0Gq2QLd>F%b!a*E<|^q zCe>u`kxT4Zspb@Xws^>5Oky(XC99ahN}f64m$dPxPoI>OCR)AjUr+{iP)xVmY0rQ) z^Z>p+pDeiHUwDmxy7mB|r`~rq%|ON#1fC^fQPHift>}Kka8VW_ZVR}cR>FNE+}K(& z$dZuM;}of<*+&H9-uca^PqAIhB2^V0b5lw}S)GeQEj8j6IApx(tTgqk6tWtF)!zsn z3C174X^s!{^+8CTCIQdr`{gjrLBRX0u$--I1M5NHl2ue#2vxW3=m9@9_1B=A+Kx&S zeYu3^0m?W@b+T@Y;#tq-sb!~VvFqG2sn{dm#?jKzldWo2I%^b#fa?OdR>R^SaK7(; zp^v`MRJffF+SgA(Lj>9)9RizjN9F`1o;7d*irDIo@NxHz=|E zAJz}i%)$*T1i#@tzjK@_6=~R&hNC2FEywWWRL@Laa2ViCj+4dl3>>`^5qE7O+*ExY zHG3V8Af?$|h*e(^1NZHyfVdCV8i?Lusk--6u<7Q6sUks{LDr;2N4~=%W$oLgg zb606^Nm{Tznh-f+C5LoWxC&<^mkLl;Yc?{?&@u%5o|>P#7Eal(%jD#)f3V8<0uzxQ zLT3m2YwgTQ?=dB18ZSqqv!NQs@qJsbwC9(7Z@{7%mp1yW?68%D#0blnl{ysL$Bxe* za)b+Epn9WT)9+kS?Z>CQO3+gE5XF`z0N(}{2 zh{>1u;eVBhnR3(!2na83_kbq91R6~T?|=j2$wFlb2?=RR2S-Q8tA@Nh8&_f}txGqn z6#&kb={uKnxGTAK(SV|QuA?N*rbsY*lT{;32*v1TXlQ6_Tb`8#{RxdZAvqxd7Y7IE zuzEnw_;XSu`3I91JA zHSSkR5$`;A-NQM$@xA7zcgDno25a|%L7Fwf$zu=UzPifRav0llmh0d^w6-p5a%=m* z8}11f80Z(L1HjT7EhMb^Ru8t@L;!4#Scx1SU`5YYB_g{ zeccwnioVNJmFf9s&yTZxHJ3G!-@_MTtsJYHnz(_P3E+^zzR(C?KQiM%jAvfVZ)=)1!KJqXLlmhRy8SB-d4=2? zgtS#9%7vgIh7JFEP`OVHXG*G9Rrv0NXBX)x#^Xwot1Y#M$C(7Ld$u2A=;}nRR8n;i z>+=ztlL58#6jlMkNIVwX8Z={y7!yQ@7JgzX(D>oGMbqq~Gz51kV@YJP1m_y9i>qNk zcNtMc-A0q5Lu;+XVygBq_=l4#e6;WC<{*tw`>r3f@i4K^Dx(yFa8Rj__lRT(d7}-a zPKwix2$Kw^IX``a(Lwm!X^#G5wI&1#l^SUfet&*GXVTYP?{VqhhDuY@Oo4h~dBxxj zt+;X=V%P9-(aDk&h%pK1{f5m|QvbZEuxWm%bT=Cg;p&I9KtDQtK8lRycuT6CNu76= z&!V#UrJymkCH}Fv$C>MQ}2Kp z72E2aEK*I7&YiVP1y{+_svng4V?<9CxH=9R1lH^^ou8Z5{(3)fhDHTXp}P&9oY>0B zMvj_poZtTW^G8HP1W*h0tga7c&nH!NAHf;~TuUxG-nW}3XQ!5h*UQfbRU_cU-Q3=W zuO*|Tq@<$C%gFHSUEjUDJ32Z#&ZzI*nK7N#L!GANmX7dwUA1`L$n^O(&-EVMI8hfC ze_k!l&9g0HT(zQ9Xk&`Yc;}uB`e0ePbsQz|EPVg| z-7WQ8q_;nYs`K~nv-5LhT1<{)#YQ*1buM_1S8!J%pO<(?aUrs@R6a(Q!+w9o~91P6N%z%BH+6*UE zgZE>jV1}uUO`2wqpC2TEew39l-@JK)hV~&CLM)Py*KSSN(vm*qvyFvCz<&^>zRb>1 z&WAbYey!@XGT|?($XqOz4+sfAyVY*tkqTZ|#Yr5|Lwk2DAv+kY9}1HAIB~mFNpeb( zaU~-bT+elSu~^TucQ+@oOSL~yK#&&s^gh?imC$9`hhkjbfhZqsNC%yTRQL!MU@*vWqex8sCv#;UcL0TG*whGZrd45>*9RWc%29`x_ z{1Z<&q2*i64CIl%QY*o{TkK%vQ#afCf|9qMEK)g1U!2QXSH5n%-DPe$?dx`p!3&o3 zoy+wHgLc8vSYOOZo=ci_G9+4MD2*H*y>4oRUe$nnf4g4ny>|U?#fG1%IpZ=!zW0Y% z$$$DvZ5RcOoUy77VthY1Xi{;^AK=!tyCLQ~;UFZHO~F&;jhY(e!=zVZ*dRC&{x;9m z+k!ZnZ&VG4mSA}Z31 zL90l_=)^3ratVjT0a~I$drgPEKWd#xZ3AAo1d2iAs^#M-A{4nVXx7 zi}ytkaI;y?oVp4{@*^yul5GPh^$bK^*n z7N=C8uW=|=j{|jEzRy<7T?UlJAI(Q{yU56u?tUEhd<72&x8*jBO#oJ2WMpJ4#r-qW z1_4<@bJh+>boY+~on`R{u-61LQOAl;>Vb=wf~U2z7SQi2&NY!1T34S6vLeF$wuh4A zp?Eg`Dy#sZJy@V^CBq~ODd`WneG<62{b=&_-vsjo`(bSsx1z`51^S4A4|pXf%g`iM z<>H$}bslmfZ^FTZ9E{Jiqp6#yg??#s_;m zRjXPnuD3G8BXtiEDmu?1w!eDxWeZ6B4fwS?YfkrI7mfJD(H`I3N8&1C3n7D7lDpL&VnC0`QQQx?hD)IF!$k($OZHeaPiZtil)y^5{OYsOpS0 z9bntSNove6r<@WzzdgV3fh#uT%6d>zfUCDf3f!zdHs*#fSB0PtEcu(Xbji;o``nA` zt7CU2$@NO^KplclpExWI+47AhDVN*sZ=T0A9Tp~XrXvkyXzg5*7p15TJKR5H3VwSq z1qTNO!EM89*i6EU2JL-h=!oqKXU*IC%eD8oXD~T8wOSEXQHCwd5cck{{kv$EV8)7l z137v@ZEbCJb#;3B3RtD8mTHB3|IV|%cCkB7G7jy{PESt{EMXtSLB&{GGh&66l$Kgs zTj!3Nl17OaP1e@b0CQYlT$3waPp1lltcWL+LW%N7ob$3w25>67Qvl0HJL=RFSr&x3 zJMO$B!SOGq6LP3AYftLcx0pi_tfiSuU=^!Ez%5??gRFE_BWE$7Wt`H{sy7nB)?k=e zI6NZ!3gtQ`d;vyh6-DdjUC#ZKr=r;YJ&RAfns%iJh4Xe}sL=eo&Z;iut0xpROM4Al zk`?={W{edY_L1DL%O&# zg-kz%@_gs;5LG+Za~4lvZV(A^=mv}GLp>7)rDl;df$mf`vxbY9_D1>k(X(20m+a>h z$mO?TB{oro#yifA2E=UJn}Cg`M~0#!{k>oO*ZBeSmp_Ht-hwryQDkscQoO&kj}>(D znOT4So>HHW(31RIpUSZfA*i!CKmZRkxe|!)=nIBEgt>1JqPHZF%4=Js_g&`7LJLif zH56h0AwP&W$#hcbozy^AQ;u`PI^5`i;D&|LrL|E=DhB8zp7I}uVF7D~d7_wfw%N5o zJk6Xv^~HA|KB~a~YWX!ZrgqSauD~2Rw$0O|r1ltUf!JQ>XLVV=5!M8)ZLC-{XUUD0 zBqyK7e+`kD$m)SoAU&0AjHg_hpv>=pYFiZDJ+NW!uVkX-v!Rq{7f}^p*Yc5$hYVXw zTof8M88X}`cff!>2o2^3bxhGK@RU4u=5fh5p#IQK!~~l^1OaE*lN~hsiO;XAlru@s zg>_+IN8Fr0u;KHoOXMn2?BV79I7)cl`X7Cm02WFBnUF9qT~O4ei1vx(5XuV)h@$CP zz1qks&?h8uhM$>(IgY0s;>DB!c>6n#0=x*YEcuXuT?6$`##2}_1F|h0?$P$8@W>~V z(XBY00sehjRNYlfJNoD=KeHz0{`qQ5gl2w{tJ};HI;Le$eh%{YST;UIL&pN=4fJ0E zbH`tOesf^>k;Q<~Dchu8cit*ueWOj+&DCmmiF0C3P!aO?5gep{0Zk~1_Ob0V)amtq zhSndj-F-VV5pp#^kho{HcB56*;^d$+-GF2!JkD% zJD$w~l(ujujn*8ZmNI1HVT43)tX|B^Z~m+yB2-zDh0T6_cp$ zdnB1gj$i~HRr{Dn{j!~66qiw|isA7=c%f|8s4hvQ1PZzR;cVj+*|rIjQ|m_$2E(?U zZ$Przwf16CV(lMxw#Nu@FXDv9A>FXFQS9$TQMoGve)T0vjhwM^R`O9!*45UC3ewI%w1yo|c5?*ue+ExH%QXfJ(!8=5#8!WFSjwY(bj<2cbf(JjDw`FqbWmMN!tce!o0mpmE6>9#VhO zPVDN1bjnPPL)yj61~DT~Q1xJWqT(7jVobrw3m)DlreRp{MxMeV=50WL`sRrb;ALq0 z`cd+OY^VV`2R1~V&7;bY4I>I=aLD)?^NM1Ngx7hh@Av<222e+S8Ckgew8SpDsms6@ zHlW?;9?e)#n)+<-TkuOjLErw=nh2*2+PCH)pu=rAKB}*;4|J^cc*h+o5ynOkYQ^RW z`}GEVBC|E#we;#=!2WLVsWlI$-LoA*D)J`(#3sH{OXTm@`3l**F>h>h`8-0ZLzs7e4XxDg=rymHy8veZsiqiCsvU-+D{_@6N} zY)(rGc7?{A#b%jmOwASUynD#&^ug8p)1eA;aP6MJ{I(ws9vZ|Z#Lw~*+X8|9SW`AB z*GVwy!;Ov1Yp+I1%H~V<%^&f7wqFxDMNk~v3IaHFdHzW|n#)H@bGRqv<)bu~p*v7K z3%LTP+9fieC|Lg}_rMD}Jc;riLBbA&=u=#x2fG#XJ~)o(vsKR`KBlXw;;9D>LPd3J zEceP?LdaqCK;bTwHD($*XImvV5lFGpCEql=;Uc8zq&1|?E(PYRhdD5!*t0(MsH@d{ z(*{p4ZryZc>0R1&6;1~Ld}4&6j|31SsjEk4Xz|RD4MiM~C!jM#$iS8s<*xr>`^yG5 zU;%0C(7D0kOii8l0#w41m`I#@4KUL*c(f()U{YdH%rxL zZS~T9*DxnV#E^a?ZZb7=mc^EYMvJzn9P3UN-4{88yLen@Kzyr>CjypjT+zJPV)qV^P zOec-ei!WC;1oiEz2A7Zr9I|_O#fKn($ysGj^Y^2F$y)T}p%N0JZfbdre%>mNk;aTr z32a|MdlLvfE=nQo{ebnj%bdI)BoQKdDFF*6U`=-R z6t$`BYpt^$oB#d#O1c0?EUR~G;FI$>dV2`Kz+-LcRp(kOp8$_LZ@Bl8} z*}1%V=p;CMO!%@Y2tTN37Cb-)zt4GP4fbYS^r_gN@rYWL{ruXyoCJkRT=L1hu|=im z1TQ6=o9eWe548gFOf^b1d49>*>eNIU%liI{*WyRG8c$Q;tZBZF6RF|8ya2j_iIWT1 zFkwafr=t1#grYm3P!$BLnnm((9>K$NRMxrA%@06`YH(o4Updqs7L{sp%nAU zZz$^8unc)}Yx^=j9JWfu`Rfs@|H!`InG7Vv^UcA)d+@bFSxukE`ERYn1Lk$&Sb@8# zb$Eiv?uA)zUbY^5@z0n3U+ ziHXnF+G1y*p)S`x`nSV1pd_gn0}5u91|p-iLowNE^&};M5QMwv;vKNXhb1t<=j(3o z=?j5B-F9TG`f3`ISET5XC;sC?MI9OMyJ)0KcMU;M)-)Zb!quT<wNzDW~e`| z#TG8?o$oKpqucsqziOyV5X2C4>HYCF`|rr?-#;_^nx2Zxq34HV1o>3UDb1fOUO=)D z9A0OOmvQei7euUO;7zvu*y_%Mq)mhdQeFufPFq9kY7z>eq7wEI+%IF-;iZp-dkLeY z2zr){W^>bsN1X`O;a^qcp7Z>B05S!d=K0cUgR(%lNX0%4D~IH!>$bsd4f_wLv%UMH zqY3kT^&C!L5)z80#`54%D2Ul|OEDz=AB;w$Y>`s9_AtV>mNtUJ0w97SjX#Cl&b~q9 z1^Ea1X79zNQK$0aq1ikwBs+hfN1WZS+i>^U$nAoDS;&zr1T8K`U_!(gIaSAj&V%OB zE`eF8I#YQvsy1clHXlOjLPsGL)(WBlx0^oPCyR+nsX0X@sTvyJIGMX}ZHOvkS#^~y zl2tUj{9i0!39mxiFxeG~3ZhI}BUdi(wQ>}8e*`nfN^>O7qXEtEH8E|V;6}(B_QYif44|5EB}U%P$DtkI z0l+O(_H2HC9zH}&a{>kOIh-5~MM32F5U2QVsTY0yg#au}bSY{^Q?|lIV(dy~JVf0y z!=9cmaceGkWgxa;h4WSyKK>Fo1Ff;d3S4Ej>;VAP7G4wkO!M~wcxof~UO509bwQmF zn!X5BCZQYvGyp}lg$>*qKW28tm4LIe-r~w`^-(;Lq=~ zbCd-O4{a(KplS|IY=0Zk>5?=lqA30l<>phrXI(|tS{|tF{lQB2o$RxRga5ZnbZ{%3Q z43WN(a>^v)#|#$Ww^{Li@7#eBdHJB9`t-r|F(S62lAqGoFe->HN5HP5!9pEZe4#!i zCgYCJnSZ|_-)Q!n$!Pe8SB(6EYrU&8Ps3Pv)`^0) z4z77p<+(|9c%{Y^s0wJbn#{-|<)j=V6`ts^!WmL#MXE|P#uPGnXvfiZn7taOpnw$^ zEn`nT3Jq08<+-b(AgGZ5K(%sMg{jHhEDbubAl-tT&FCyn-nV7WBS0>5?3E=h?s|8l zIx%z(0LWUGKpwAlOCg)aU6*-w($cSVQf%S#?E8`;o~^BrSYG~!UdydnAx~YiFVja7 zFn^40@*;?`d zYFXRPipc~`JVxIJlgX72tO6>+3qn4AdL++_Mq(w_a>#*+ho~j9@<)#MQvktL2}U4L zm*GkRPq-ZI5qiZHfuqvZICBA~<5F*_0V}TX0eD+9u3HGumR_Flt#SdX_GWaATN?>F zQ&QE!Fm-Cz5}qI1l#`h4b-_qJ+xmT}#WOQ&H^V z=(L_kg6(AP=;w?pia%ZKmx))F=?`;H^~d&|aFM2#1TnFCO5`&r=x?q|CwFTvy1$wu z5d{v2U=|Ub)LC*5r{WQpO~tiSn!HW7>ui%h%c~IbZ|$gvi9OwfwHF?K{OI{vIvMyD|y4&Af z=dKGRRd3~o-7Jw(vni54X96N5CX=Z2kP1RUQNto`mAj~TZt%H*GGv3Nm~+I&?;xG`v?~Qe|Ey`)8yyL$!vxozCmf`LSyGnA3V`>(f zy5lvA&xo<^i0tVT3vW(TF8@&q<_?bdc*NZFncKGqUhrsaL*)b~3D=x@;bPAeH zC9lY_QdzAc59}Xb+~8QZ{0|e|*@08lHRc{3y5#4#M%9 z={ZCJ@vL|71{kxsI8yzri@nyeeGb4H7U^%>{98^3*Sy>@Uo))F>CoB z7uEEfk?GEq@jO>Mo6-sz$3H(EYG$b;U^eBM9%}3n;H|#yGGpe!B-GY8Kh%8X$I>Ip zVW>)CFEiM597pQ)yyt!%kUKFk+NN<@E6>LmbG{G!F7!e+QJF1JQ(V&%ktjfdsXJ$2 zdiloxu%+-Mq3*%y_m#7`{)&^ch;6V$n0AtgYEuq9^T zTgY(F@8v^<$K3}Ma^j00Q`aOPqf7P0M|(80>#UCOtE4l{X{+8mFJJ6E8B_Hoa;hq{ z7AmV)ZW4l_VJqw_={cXd{9e#~MxyUtqj5CnAfO;H=g|wzXV?{nOIoWwhHUT1g8fpx z4H>Vk=y`%liz>8{vwYY8WT}B)fwXH*K3voh0AUrYrcHdBsCyg>y*8KO%hP@>Yfo|8 z)Tc4b9iiMO*nj?f!_GF~zW}ssL0tz$cIusu z;XC)sh7UPycMGY|=KUh6L#|<7xHYb4U=mhC%j=hknep{2Q=?8XPX!oNGyeg(A&r~@ zz5IzU;oQP*kK|&;?r%?-w50T+`kB_#i7x@*ll^}`_uBvZ+%vO(Qoep&mgv0szL9tR z5bww(#ouqMqvunuDsp}Xe#E!^@qK++9~#%qN_f(F@JJ`x}6SB0(a5&yk#3K z8adp%9Rh7A;ckT@hc}U|h+pCJa&|=m8{EiZ@e(rcA0&#f-%9=JDBxE(pO z&bzWg-4KUKX%rLe8fNcNYy6TM?BV@*ya;00sF8=Rdd)5Xrn?GokfzS*Hvv|A9PTam zTxWl>%>Vhic>w~ILb({ceCQ+S@+FY`Pkt?qp8`||5g#W-Bd$T(K98AT+-@ovSh=s-c<=9$$xV zP{?AB?|$#S7DAP1oXuuIg|#An@7Q@oS;8iCZL)S*-;O2FYVVc7u*8sS@AU<`Gysq- z4eJLrX|O8=46+V@WR)~n2oRM@Eo+s|8sE}FhNRglo5pj<3V@OW?YI{9Hu)-^d|9Np zvO*r2#`I{08GmB~SY?M2zW1`hRU=-JImB4-Y5^d{IP(E%htSk=?8JhFEX*b+eGt8= z$l8#PXdWOP?7)8km*Sb3MX`mt%i7rmED8EP`y7kIoXcC3;oAmibuDX!7Z>||y}ZSl z66==Cq9OlS6!@RvT*D|tcu8&6DA%JZ`pu0}d@C;xOWrzOE0@=BQI4zN^PI@)go;WA zTN*$3cuseN@=t5~%O{1DhGtQ*4Lc%l9lS>9iP8;db$&eEl!jww1WNd;8SmW8@26rp z2d>6N7Ci+Vc9V;;h>BCWC+d4dZGyha<@v1cE%NTaNKoNSLTBe^NcIsWlamJ$lodqP zOes>wnzXC_bSaIv%q}mNDN>(E6_(F3quNz7p$<~m&`#touAaMr(SR%&vz$9Y3GxE5 ziMGefxBzLF<(3djUaTjs24-@mH&YieHwDT-)3`FJ!rG-sd>JNX#VRyh(-07d%N8xu zDx4b7K+`7JdsjJ2+r3wWEK=pt0*GmfD4K4~BsBT)>Ii={E$XHV1(5WiHo+HHVXh}(?u5W7+&7w5 z4Mj0DI#}hc2)r$7*C0mFtp#$cG9VV>%ZMOC@8Hfoo?@D9bZUwKse%(v2`@L>lp5p~ zEr2L7Vh#x0s$A=S(}21H1w=Xv3f>q3?+CGoS+rr0GzP~*$6AdY9w5tL@BG=h9+HON%U2sOO+ zriOoDv;3CNw$14=Do2_8!uktli|gw_X76~G%+)F+i+dLF`b3IqxlT+01NbnTp46@z zm%Q$m&fGd=%HAe!BSnZ&M;<*h#=&Vs0%|@| zR#;8))Fm>i+}11-q%l)8oj-qi(a8I zq5|n8PV|BVx^gVZ5WIrCx}x;o?J3caR1W)|;!1j5eGBvpX}t>8P_s$21HrvYCvyj7 z&qQ<8^F`%8c#MhTq--M|(pi%$s#AxC zs>Th|p6}JnGGqkh`APzYAZ6fGy|RkxV#nIDvOUqT;x%+iShe?I5Fag}C6ZK?B+%$U zfVLTAZ2FMjqe@nNo}`lqKOl73l)JR7E$Q>-f)ZgNswsDAap}9N+JtNY5C})S5NYr? z&?X&Y{t)$m`r~>%w6+~>kZe8+2y4u;acpW96l(qZk(m}!6}l8z5ps)-GeIWE?}YM; zq8KmMPUmRVAtuu!IS5k<)D$tky@rgN zvwb1DE=1&rYCL8<9&v6ogHP;=VQ*er5n{|Q3!pd99!@%nL=6&XSc2EU(3650lr0di z)PDeqc1Y%SfE_7ty0y@CF!pKMV370ZWvWm93dC$z-AB)Lg_rbF3xGh2M}bmYrvbnJ zOeQDkFu0r`uR3&HxZLJJD>)~}E&&nPNk5k4bL?-k|Z9WsUt~ zyf)_sB}`p6ywV?MxZiw~_BYHY%?it6c8@w90=;`eXNiJRC9NXULTPDx=UK9o3;VBp zFQ)f|{)KXK;ntcPk6|@^IAjnrzYWG3el22WcTPwX6i9>1#a`9${*(iEX6%N3kZ`;8 zI&F^tqvi?AA`uJEi2K)t)ziD5{((LR0dbm_%Q9VuP_LdO_q%bEU)DBD|8RPH8{~c^ z<~ex-bqaC9c4|-h?WPoTWNH5Fa7y!^Ht>bOoF*sW?O{_ll#>ythrvzLyB}JGuQo( z|K|N1L3B*5zac6zU5{(ULhfGkeV+s2yI&=fmrZK^!VK61-@R7aEGGnKa0D%)S~;!B zl{0vFy{azqw{N;emIW!?fOsWc-@=pHV#CAOpM5=$&QK$x;3-k{X zbig$Gdo8wwt2_{ytN&1=)DdUv3Ydgkg{@E+^dX(e=)ABM~P(}7xcAzqFvw=if-hZ@3rn1{+2?*&RJ<u0Rv z*_-fi=yL-`lOGUUKa>T@Npk^ktp~Ki#9REdf)|uPa6(|!oEl=Gsf`hv0;#H%0~Xs$ zwf?3zkfvuu=a9Lc2-S%wyUm%YHG^-CvmoECf2T|&v1sBD^*&DY(l8+@1# z9l-COI{QdEEL@EJC9jXQy|DOV3vX?XF-00v%=fPIEIz=v$8Qab-Q-3;6!yyZJ<)$* zk}ZU4a(?*pZ>joX+-F9w_4^Gl3)`#}jgd@P(S;G5y$#lGuy=)DuZTI;?Ixbn=ANUKZu13{qk0izqF~GvhhcHpV0R%J1qD%!d@LHn0bQZic-4QTN`2zQOopLXXnB>_0T^5BhfTxs~)kB^>i}fmiI8<+_zyP@-4OZj_3sWxd#T&7u7OGFo_Ki2WH3<)!N{x5Pg?EZvM9KZ&Ge`m z;pDUd2^tbaqsvZ7fTHb^t@!ZT{IN+&8uLp4Rj@qrVU^G?E*=(&Ttit}6Ir!P`g__q zJh&_t;IygLmnBt0cvP|+B$^Ur zHk&(IS@XpB@1M*?hXHPiC)(f%?b?8qnb-L5l`(T&YGeeGn+eHSe886oW5^k%)pt%pDLW0DtdLeNkb zfBU;&=HS(YoG1%?#0u37D$Fg#gDX9}eHD4wkdL-ah)sq-MaedRg|J%kxuUG|Og^H> zO>;q3MJz-?tmxf;rKUs46ewb^a~;RCNGi^0C&1`DC6*{pIvLM}>GefglcjWg7X;{q z!nMXBginb>%`H;CLPGu+fzq+(-pY5}{2ZW3yiQjeaX*>{cJVTp9 zP@T-2&WjIiunGyg9_+X`M2Fi3Q+MA!m59uij{ZRJr)89Dyqz-El~laH;5l>Y7ULFg zAdsv0QCgfuJls}sJ7tKhDZHfIh!{^qa#nHH)svjbuj~E7`*ut~$giiZUY5rshg?q? z)7HN*vpRoR+cVkF#B*-jl{Mss&uJ71${?%pT8VehO2pIpaIl|mViTi+M7>`9ybIg@ zCU_f{0m=3e?3dPM?yDq9&$B*l=bHr$00)+{M0RJ}btyk%fYT4-4xT)x5X66(_M{O2 zc3iz#%wRpIAV5D^zcoPkbk=qgJ->Wy_4upkt`kMD;=e(yXpr{D@)Dx~SK#q&)qmzy zF#7X|4XU=;78VeP&%`9;VpY*uK%KT5f*4FYE&Y0C*GAg|33khY;a{&ek?J>!EL$tIs zjv}I}K6Xq7MG7@}N)*ycrAt~;Joz{?T;>bRa^ri5< z=DX7%34|3Wz|7UsOn!}#DnD7APOOkPJ`E|&OBgv^S0whPOgCZy)$96seV~GQfo1WY z=dQ>wg77xHBIsPB`GhunKW;%HbF89>x$uOSHkDFEZp6Q+j=gR#9jqmh#4xH_wq*5S z=lF;W`d*+<7cq)JMT0XzUo)Ea_lr;#vLh+4gIObJbB2n><}gm)AQGVcD4HUrvFJ{r zjjzh7^BIIlvb7XZPVN*B_Qh>8UoqlcLH?^Ue zFf_zMGnY28R&!xxrTwYNQv-=u8zzYevMnW1Ofg^B@Oz6H)dG--5oO!VUcYYzIDwy( z!Bosy4`k`{d&ET|{+_&pyAJ+#B&?$ovdjQFXoi)W*#uZ?dGSBN%AulQ0ZRE>-Fc9V zU^R^?qD&e@wrJd##DLl{B{ksK zJ4F)&SGo%y22bo3mjICp=wkhFgFtmKpM?OgKZ7PPP?cq+5zO;^4c%xl+ zHbZzG?A>PDDozEa>yGoTPmekKe9`O2hUviy9?LqT`2vHscR3?Jo2MLB1MB;Dp}9`f zMZE0~Eo3C|)I5}q!O{enN@jka6vjYS}+) zTw|0L($4N|t>9e)?oo|e$b!Urd*ryEKQ11kq!w_w41~N2n+pv0HAgfhVsVl{&5lcvoO@h`LOh@ z3~cJ$t12N6yPDYPd3ot%UGd$72!!Bg!yWZ*7G2hLBpAY?l&>>$Kk2`ewfo6f!gk0b0^;M?) z@qH`eWK`k}f)xXGy0WVEYD@fY;-OD6f8uzdB&O4D>#G1*pVG;jD6TCd6{AURqah6p z!^>I0#LWUHjhu2q$D6)Z@}*7|r!IaowfYj#7jHdu{IN~zI`0F|*(eQTetS%fO#y$0 zzs2Jcvb)(Wr{=ZiH6Bz6k*=vFDe=r0v*|maWJTASZw%8DJ*4k`lN6nG#>^`#3Ros) zUvyM4mAoRWjlceC(Hlv!^+3%$ai&zpq zu_(Yp0Xv<+Ns7mFgTo7j#3XjNmgpZeAhnc{DP$^r{b(@P8%W= zb|5{+^v;Ui=>7_wbA7()BmQl>Q}!a^;|--p;G^V2;sg1F7RO}S-NH47z+cmQ%tt>a z1Tp^V{hP)1tKj96=B1}d@SuLA&-T%oNapI%G&2}*dq#OUPY94^)yb3hq^VKP;H92( zPe;c-TB_`LS0*{~I}(0TaEyD{3|Gm(2YZ8_uO~jNrtyB0KK)Uy7qxygyCl&liDJjf z8`kE42fF8M3V57m56%8mnaU%%?RnP(XcWR`RMO6ZezGvW5X5Y{FmXzvxmOQu z-|oT4kOWOBy*r+w)Oy(l(I;z8X;`FOZfue|XMOB7D{#Brj_Ub*f@O139B%OiU!uWO zlf^nvKnxn#MVQyjCvTSY2E%qI$WlGX7kbl zA|+$9U_!CuRkVb2U5D?1gbJ6#cg@MsqUoIcQyK=99quK=h zw@n&MS%u>qK%$J|W+2!2Sa^AXNl~HEkf0wJ^MP4*Gnx7J0RJJ~fZ1nx3`wFMR5DE0#I@|hZl3f|LR={BI zim<0-O(bhrYsail%ff+KB$~|9r(wHAn*EAYSmbK~L#EqWerL2>6gZ-*r$9hX2=S}$ z=jSIc#=ATHgDyh{pE?H%B+tGjwCFT~=roM8H>27X_ivB0-tXZDIlzx8c1X$n?5yL91jSUn&mvuVGT_tSFnUbaX2Y!BrVf^b@#6R-VZz?I9>+xQD z|LS89A(-O{%FXvNBa>&zL5Yv6K|p-3a2MYZ=_pu?u!8~57Hv>&=-#5Jl}l4D;N$Cb zZ@BA@%8L4YZciXI8Cn>yMX@l!;@`w^)hg#OpPNl{npgtE)D&@IVz3_w>eb~jDg6bB zz(tMycwVT`geq9K_3KO;*n&tOVs>`UVS!|l$J>&vGW>avw{wNsl}ll0)4}ZLQ=hK4 zz&=`ceaZ-$+BF4lvS0LkGG&JK%4a=tolZ7gM!}UT7u<^C`nRY!yJ7O8TeW9&bw~rg zg%fR;1$5MS5u-oBvv(z=a>6F#DlL{b%dn338!>cKj=CYu!4z8+ABI<`8by#LqUa;D zqvgu*jutJ6f9?M4Ddhf9^}bq3rp0C~i4{X19s2VGm8lG^0rhpNF#o0kg|XvRgRw+c zj&dc2O(TcjFmiucFi4WW8CJ@!F%Z)v-?v40GMf#42Jf4i0tK}BPPKtw%A^``Y_WhW zNYfq$B3?+(_-VW1Gre&kO#8SBnjp8|?M*=@X}YM^5Ze3p6^%nGb?&Vu^Tgo5+}T|4>* zBiM!T$Uw1`3>LNhMg^SGQWW!w*-1h9{=^sDnbc!&ut zLuM*eT^FgQ-7EM00L|%4YV?g|?y;e97+g0~aUwL*rtIrfc3WE|I>)JAzo1^fR(k8c z+PbZ<9o*uG?{GbR|t`AcVOw<`6(s-}c8;kWT$&Doz`M7eo{z|spo@}tV~g_V_YOU_0M z6@bORwh!id>2VSQ?PwQk@1HtopZ2g;gFPwy>je_kz^jMo=tUapsS{nq?>P*l_qQY< z?w!YQ=ELyEBZk|I_xGRvf>7Sx(Da#IUY>>xgGUbccYW}3ED`#J?Y#oecSZc2QFmEH z!D$$^4yAo&wNHnL;~!8juL|*(-oU7h+ZQ;@UT+NAY?3C9&e!f6KMDxn1E|NzI|Ejf zsK&-;z<{FdhBNl}116fL$7G`qN?=>s~ zPK#G;A(nI7)`IwwigtW0!J})=OyyGPE5*HeDk;T{?P79ke*8mAOTxrV$IN$28o*f> zvGUP8;+VK!jN&>JmZhP;@dcjQN@=^7-GgaT4i$&+diJG()hWQ((=bR0B;<=SklnzC zGe#j+Rc{?kFO3{~q-F#a({87Y=U!}`$vat%h7qM=eGi5cBfe6=|q3~hPSOGX(NRh<)@S@Q8^tC@eVSN(L+ z0@AIz$M|X+Zj_s1x$bGjXm3(xsjrM18>U&O+JzD6UEuv*%v)`%n|VJ3cN3!-a(0^A zA&!v1L@QVz&AIthL&MwMeS{g_6hh@cDR5(Z@ouWs(YMi8)1l8hy=uO-C@>tBt4?%u zn|2@?#Os&UV2^SwolmT=Xy(VahzWLYjH7;$mms?7=|0&Z705ve3e#d%yhYi0h1cbz zTY7=4Y)S2z3iIQ?ee*qdei^@ifHs)K{Q~^?-up}p^1)!ikI*m(?Q~MiWfUQu#>Z$y z#n|H8+;qP{Ct~aoa}IqJ32hAsMEjVcuU%`m4=kIpw zi$`sn{r$b~e+U0~6=XPGy6h6Nng8(Wv+>YBelt9d2!@%x=Gh;)D_2Ci3^fBb8Zpq1 ze>L>{(PFPgH~Udoywe^ki7(syeuljBZwP^F(9bpzBr~Cn21snLtd*{H%gc+zs!((E<<7f`6O-wKp2}lWYLOlujPv%(Z^r zfPm6Ra?7^C?*Nw!N|FSv`}!l`X;A2A&^ZN)#?%35d zQ6Cm|X1X7Q&b!{!59;(Miz6ySD$iT2!u}fN%7&s}JA=z1mhFbTnl3$-)hAS7Dkk9f$&OJpTeA?q=?NVYj#!yOdv^#Wy>d8Q4#ALC1B0%&6rh6l0x%i9$QvHHbSWjZln0kkEJ(7UFo zf-5vFm{T7vZ+A)wK!P+-BSuB``=M0)eW?P~Bzg0I5Kj07T5iO6k4q;$gy zuc&Uxn_2u7g8+DCv^A7NN_1Rv#p%*6lpGy^k zF}UsU*RA<%qm}Y%>b4fqoZ-WQWZ?w`?4|uYiTG>$$!R-B-Q#1pIPT+AaXN71^26!* z<%574MWYF+i~_Y9FG~OV0aWfR=6~KrKbc53^Z2xjA@Fwj>Ff+^FLwQUg40%95jwd_d`u>lAz43KJ^cF?0xIIIo49v9hx zX3k&z&y*$8hT_}!vV9Y~#bF|adBVz!& zE@;gW_2Moic>S*mz!xxG(d}FbY1Upe`CJ?*?I@+KrAE^Ltjzx+6)5OcSHlhZZyAF>ESO0Jo1)k3d+mA#UA^oK*uu`usjo@>G;YZkDB) z_oZ0qyCqbZGg(Dr`d|-gn5tpN0^bFXh9sW!AL)v65A;HqXtF{ zgls)n9ZG^UXgO+X5?1js>cL%^v=6_oq@sg+rH!X8qt$uMR)ItGB9T905kn>W*0*WW)vYWY-@U}>FsTN$OFZ(bDP}C z9IPd_CvkHzK?OAX9H=q%nYwe5>;gDJKWzhj%>3)F zy1-qTjISVVSNGG{OG%I3&w9q(gPXXUlG7NP)A1>PG3lMB%YCLok5G-&ij!x$D^sK- z3!M{j)blcY9zkG<9V__-ecU_u4%KE2)8%(2X9#RhBVVNtl-WEBJ3u)tDhu6`_hiat z_r=9=`bB>zcmUenX@42t?EMEWJsYxexu)knS9R$T|MT3cElQT2alU@%ARyEVhr-I7t_Li$;BTre3S@IAqWm|wNWbUGP9i5=m!b9EKm=_Ax z4_Cse3hxs7j??YMBr~1MZWA53t%R|P$;rW8<2BtTgD)=zr`9ep$VO&IBsp4gZQ^x% zk~o7fdCN`#-dX|+!7iSSZ5=a3OJft_)(QXR!czti8eU(MS&T2qQiOE|PyxUf#vJF4Hzd)D zJW5*rh|mpCQ79UcM=o;|E<{(8<;VVQX#hP3;txF>D)9f>GJO0 z=|%c82WL228hA*J9Av|aLdg2x1*pXKP@hUvmP(^bJ3a_j?o5TNBLFUy%94X2%2;BX zW)~s;REsPD4OM@fV-t)&lIu)q{2;RYr|r1%V9RSt5D<&xPG&ZGRyS7X*6|oew4yh= zafq1Dv*Y2RcWiL48j%K&j&xZ?NU!$)a`-ns%z%d(z^xuq+8NAWDAV&5b+-$4x~4u# zSPoPRV(_HGCEkb)WyhPiDik&g#|VBMHxkna{cRe4>(!fU&bXBaPNavQvY)NODj=W1 z^=<5N0;`G!A4Wpv#tU_VMx=nobA8Lgr+Wjd+58kHjO|$CZ{p@0JkL&lQ1{1UPb$5S zJv_L&UBU|C)DR<0v*Vxg(4p3uBjKqX@KH^h_tmYhX5dfUZ|IxXK;Ch5flb^f+dlIj zLH93?OWt0~dn;Q#40xG%J0>Pz?M6ON9H1?;guo0ahR zl~Tl));3dqb$mLfw4oqUTxDJn=`l5@pnkPTND6Mn#%jC^z^0UexjdpT&OOC_|Hr)! z>#9GR^6iKRb57fP_iY_c4Pd--E5sRsX#?V`cRLC`m=jt1jlT$X0emmriv%;%2c;H! zWi8yRT?ZJbHf9$miHD`6&_AdMH=c*s>?KW`&$~T7WpSn)f^S0n3A6ja8dyk{6kfg> zB6CUO?rsewQ(5VY>@7}!92=y;$UJ!C{iFs?==)w$s%)yuUl;zXHPrn!Ce}+o-g;#yt(iEVy*tu^f@Ja*RCqOMzlp-XJD(i z2qSHEsKN%k*KZtiNsJd6KN*EScubT<_lH0&TMs>sK$zk#xU*=N;-e8^slL&C9(UbX zJ#4ov4yEE!0%@AZcvh$XQMvuWX3)KHUpmy4oA8S#I}5`k>-gH8jdjcDaJ>9CeBcjD zq0HhEGE}ib3Tr7b^+%+zh9nBr%uQ(IW#z zr?~1*1si?G*6NOdaj9FnIuQmq_(w+Qn{W!qTQJZd;Db!&L%;(_RQ2|(VCN=O+k^G!@pedgih^hTb~Qy1^00DIw6s<*z$9f;Pe(PTTM{ zgs9Z*Mi`$O%I6dfae=X^m2IDZI_Ou*H8ANx5tjQ^YbELnC~OVrPE!bv!nlu8@^4&- zJ3)BxKzwYcxR?SzfUoJzGDwkX5o(R*2F{C4E_rF~YG}(E=p3r(Dx^k?%1@V$w)V37 z_d5dLsfxpY$k`}8dl0|^m<_!tX|0vChGs$6QbzNc%u~6J3qKH6kbD!`Rch4D4XV~P z?BvNgC$kmo;$Yx)KK+dEB2bq2tGLehFQM~O*ZWn=15#|?dw+}=&P_kgfKC9^&Az-n zeGyM6IotVyMYJk4fxYoL7Woe^W&09X+|)t7v=9S3N0R;nHh*5UC0i{+me+}cvihqN z-w)OWKHdTHxUvXKx)<5u{0|q_ z)`H30UOz{SvXI?98CKk9i_;FG0ZPzU?*%eVmsDHK4bL|`21B@V2B#e~^XaHWKFZ|T zjw|*_`K|{-s_?;q`zbgxswGFqVa>6f1uDIGz*cmn#*-S^X<_x?rO%9n0sh0-2>#xi zJ%5QSoC5b*s^ae5ut2-#p~z00V&y3qUtzmJpl@~E>fa?NYX0IGGI@x?hd)9*If1rRiOKoWCD<^n{II^u?qL*b@7q^ge2NVPPid8m2}N zYaf#f+C-EB8CYM~Kd9|+;uF+Kdwc#y`$&-DSXj_1?qMM5mr)!?wkH6`o_#D3Jtqv? zox~1`YCmC$vnnm{h`cPNRV^pibtUgG1=Y{zb2nH@jPz)5!n3D6SoXexDD~RwVUN?2 zsv1~bZ8snonTO0Q_ZJs1=SDe8-f!nE$>$f)S`XSp9cQ1nF-+E*agmFjssR0KZ|0w` zdlZx?ni3mC&ZWusixLwrVu?62&EH(hMFsMYL;9zsv6)Lf{?=pfd(I*>Dyt>zV;(^VVc{YDV@KqUOlvZSO3u|t- zg$3)9`e;p*x=g9>dlF1v_}ZM;qlN3oO<-3W$V|-fg7HS0fqEvSW=={4mfXq*A#Y8q z_Gy@mmdVKJoXiO~M@Az_Pel=l+Gm{R7@7mZB3g@))Xr$uK#UK+a*cB>|QrELl_HvvZNHF^L!odIY>^QmID@w12F?%i6%8>X)ApeHX zRm$wWciWo1Zwz^u?JHrg?{(}W9L3WKWgW+EZd^2MI|Q!H5|Mf@yBVM=q|*RMZ}f37 z1k!%<+JO!7S#@%*zga?(`#X``YbcMhnNUv|I@`JFr~E4wtallA5AJcXZCnEGL*ItEToNMJ zy3t*{mLVe58d*2RIcyP1U zqq!?XZDQ-svL}ijwy1_8#_m;*ZC0(YKi{|Qv|%&qD;kVS0VPqVM1kJeT<&#mw^EJx zv)nyRO7V%z{b6L0S(VTe0k))c)qq3Ch=RX_|Je zWewtvghdpc2v}|x1cwfFA!3iRFYPet16F{O?=*PLH{7a9+?5n z+oF5pnMv$-e0-4sMYg=U0wg4@I%zGs_WG=QSmQM!PdW{lM+m#U8 z{Ir>eyvEirIn#USu^Kpgsq3e_F zk{>rs1-sBwUq%zEjLTmexxZ;kF{y=k><1-yZq~TZpL*;YV>J;aq-grJHajo`z)2IU&%Ng?4d^CY7Aw zt7~vHx3Ycmb~pp5TR#)_ka#T>Ub7=ytT>&|tduhj^sArt&OApSe`x%qQ9rCXS`2z| z1oU25q6rK$Bc-}KM44Vn+J>T^`qp5$mHSfAZ`aY^bZX8w49*DFWpRiGhPN-U`B%Q` z`>$FdYKq}&`ushUnDyU}?^mnP0zc+;&8zm}h1W?u8UByR;i}NceR0K0kg5K9Y&Wz)dKG-*MrKR;qwji|7ma}IM|4-0AEV0;-q1E%{%Qg@6kVXhl9k{`n19S{-5m2v?6cyJ+@9;p~#_(=)>NfoR! z#t*2Gli!bL^TYo16#I$k=Qtg>%prR$!HA!@_6(z(gy$0!0%@>EbuT#pQN)1zH4GxNK@x5 z!LCyn`RLm12`~13ZrfWsfc%4Z9|sClB^yfU+w zOV3~`3EzB)h;r9&Pms`zm>74uA$=kz5)tTtV=i+w@`u-6 ze|SQ9mL0!%nc{}qtBwhgXZQoM50Rl>f`*3s`NJ9yZI|;38+GA;kX-Bt^;?1*$)c>O z-eG`6j#kx68B$Yl6wNmS!FsZpT{KlTWWsjEl>)p}sFq@}-$8SiC1rkI4RK6P8XGM0 z>sebo1HgIlb0^*>3X<282jKNu?D*p;8{Qbck9L0-SXXn@org?b-)@Fax2vx9WBB+W zXjQ7Bofp0MQS1vWV8PU!9eS5Sf>V==;yV$ZLFh(Il%gg1a_SZRg5<;kdy!`9qWFd! zTK*%?64;F0GTs&i*<)u@Zs^CmFLHBQ ziCY9IebwbnmK5GH=Tzwak5=#CG`FBg0YK=3($7-;g(x>W{{#jXD?r(@rs(QhNT`6D zWfBvaspW3LxijWtZbhthV`b-07yl@Cc83*J@x|OUUF*ERNa=aMDs8zyMALV!JmQLj2Zftz|Ei|8kiV(wQN#k| zr~3VeLfGxpgWmI2dlXj%j_GQ=jRj>=qoCqr9aUcRugdaM&zueWmQ4=>7kEDHU$UzV zlBu%LI2-WdX_fzM#n-cih67E+Vf%R5gtt0_`&wkLCyoa?uU(ibI)qo>2W z8d17H+gVL8--)pPX~f+*i}tm#e=H$G*89C|%53cbky`AD*om-L5wyTR`<0InXkr#r zGT|bD(YWosh#4^E1Pg8Qm>v2P2mJE-OIz+g;K~S)1NuN?KhOBy{ui2mgv6?*tA563 z;0AJX8#Qy!v)oz*3H0UWjtpAhyBRaq@!9OqwMSp%=40OW+Sd7|Om8&!9sYAY>_G zj7;SwPT{2Q6`pl5;t*B!6od=^JX-hva&s--u23xNT9=oN8lqmDh0$hUHocgRLYYmQ zbqgEwg&$|~c&y7|$qkprf03k+akaP)qlybH*k-wig@0N%f@E2z>yG>sN2BCU8v0H2ut~y&XQCLJWt-HGW92NNR|LB-kX8^Wj zQgw_h)_YK0#3H*vV-JA6o*PYaGPzd#)Gx2=cWuILg+AJ24S{m&O+8tQ@D#>JxOG7% z0m4=9TEV7g%{}<;S>GT_k}7fo$CrsqD-~|1B-AROm8?fmsOU)9`4wFz1apb*~f!Rsbm|-P{`R^nf@e1HmN{U+UVQcNHFEc=tSI1a&~y z&qQwR)1vp5dCu*RP(G6him3Xb*OvV9$NaJ7PZTm`;Mw>B+m4rQoL(U%n(0-z!P5yI z(-EPycCq*Em*RY$l$H*V$LcbM#)a9r8CwTwtE0n^XfPce+UObvFfo6|l*2|{Gv?&- zc|=G_Q<;e~nbKm>uD$UX9gh!A^CEP~paRU-K&s*mZvC)TG#_mLNMmR|teD9n);W4H0k{9zq2VHS&KA0RTkK8&Y=9Zgdi2@M?ungYP7U-! zn|(Ciq;TG+;83c#<#U?OT@3o7dgObc{@z}CpCW>z?MFAx$VAARGs6qjHX(Tv(6DE@ z@=#=uN6CYF2!}FvnF)S#Q%3B(pACBvTL4iKW3_khoO6qYuSOQv=&uxWSCf;G*vby3 zqKZ+*O(6hYbY5Z{_KytmOu=xW!{cY_INDu;#_-9vWFCphsSFF;yDCf6uCKXHA@xbs z=cG#yQbOYU*(n-{qq3?dUQH6M?TOeNdmkgI8}P3`iE{ZkOydtFcdjq*7mE2)Gm7otR_RKv#Co9n#cAG_L&DG2>{ z>;FBzMAIGiOet#Oj55qMF>JjjnUnOd22B!jmtmS_A50fex?j*8usgJQrq6kA(gYOr-+k??Dcc6+-SOqkpj}HrVt=+l zKc6FoWvy#<+W&A#Z;?v9;ZbgD+gmrx6xOd4Sk^*)`4Q{N zdo)XT7Oy47(qqA-!y6H}L>sSRbSNn?{;T%-S8S}R=SYpckRRQ4b3lqQ*!CWWk{bXU)t`Hs=sED(jc!xaRXoVc}kzMVB zfrBDLkjZFK|?2TIh`0*jzZ@p}zryKOr@B{R6 z5zDg#UTYkW3I&)s^#5FeukpWU2|nxKpKNw5%RM(6nj`v@rngb|yyzKL!)xNuwIzsI zD~-W(fvHyLr6PmPz%3V>;mY7mZNm~SYH1SAMRH#xmRGhFc?c)t=8!1Sg(*Ux-H$uR z6?u&O{UuKhuNqO~25u;Ao1RSI;&%?$%d4}znPM}>KetN#ZCI`tLu7y4ov-FtPErxz zL*e0+ktQ6ZsYe+b~#r?nm;F6x|v8vz^xp*{-gDxTbIp5;1P16TEcSLDXST>Z@9w zSGsZy_+9t4(<9!{-hR@`QEJdn%$FHlmdS)Fc6gJ4PM&LLYyfx?ImwRT9dxC?6h=|C| z^Nib4cC)L9_FUV>eY!8x1L{{djFJil+j(H>|A-w&e^@km-`|`0NCQ@=$!1#8O#0Kt z?^a4T)kx`bLw>Hk9=>D%iEnsDF^S=Yd!CcWoA#_upTXJTT?eO=eA{(NFqm7hg?pSu z{#ZV1OO`aRFU4{r#;OiF$vzL0{)1?k4I_oggYKX=iG#$mF-b*I$kpWjTr*u#HjPy+y(hE44ddPuwHY4M078NX}P$S`XG z$1su5k$jbT@A&OrItI-12b$!~-tX8p?@;+T+;VBA0Hd?o{2aQxL|?)6lN z6sFl@A!>5YSLq4dP<4&*ogj}(>)4HAvNurDHs4Y)24C&Zz~3M9hi5r(lyW7>_>PqC z>8a^ImvHZ>{^XGo#U0v?3Rlmv>N#{ijmh|v9H=nM)tJoXgv?{8s&(*7Re(^4A~NzX zDJqn-+1b$Aim_~e@wyEblQs?&&sasJOhOP!+TyEZ?xXRM&)@Yzn^g%XV(4GW!*^e# zuO#%1S1*q{x%Pf@2y=^q;r~0oty$G7i+>d{YksNaIX}5OSo@9A4I*EB*(|zET$eYt zOJ{ldGoJ@BoI-_gwd$t>D!!HUp(j6pM-^V35+u;w$B?}K5S z5vQ=|l9rn*%*A%ysQLQU!yC4grLzscS}cBW&&F$bN1c39lLX;@rQD*iaQ&-99slYS zcFyGl)W)-Y<}da>c&SSCOO`@E0N`CA|#~_TN4HX4B5be0F9h2W9aF zNo(hau65o0u4f~=D|Xl54t@VagEtb1=S5lP(J#&e2S>B+R5dO=jM=xWRllX*jvCbfh{_ z*r7M|6w#POcz($o{dmKm94R5?$31qw<8O2up{+Sl_$YmIb`gMJefzDwp!4;*X*Htj zHd8%MBaB)h95>|*k-Hv-3n|RJF{Kxo0DJ{p1-BD!uZ{#`&;rAP2Zg{?o)e|#w}(sk zg4}{Y*3Cg=GFYX85jxIJ*3I_2L6T_rt?X_0vp^W5Y94M;{GkLnTbso{`mhV61M79i z5n*RS$%kp8FzH0$l%h6_#mPO;-86XkKQp+P>wYvdK`^TUuy~;sk;-3&2+Y3xu*$cL zS%H=ipY;6>X2EH5b9&-_^FQf_g49hraF^T~w(sbf&MPPQx6Q5hIA4`+%QL||`#iLAWPBzzQp?)bkR+QU>N{cc^S6NuMMOU0$weWEs-S( zhBW2PDkNy@f2^o91778URQZD1;(Y!&$}&7Q3xdig`Bm+SxmA60<;-n}StBVjYj~_x zMn*`TpoRZ#)#SwQ7@u`+nsUjg9$B z-5?(QFORV3tv#TYPoPadhfkRYXl3$OD)jdAbPnn?549$K&5hfwNf2lg0z1jBz{HGw z;X)v2iDh7BP6%on5#?DexKN&>j@u%z;_Wr+%rqu!PsuN$^@X%?VVb(QwP^n|eGgeI zCFL0rr35j=<<`ZuAp{)9se<;pQ@t6R^~UntvjXIMSG3xxP%}$*lpnnu%t|~G54(c) zS}pc3H9nyH_}?G=#&)?2gcr|37fY#Zg)?*JPFzBE-3%GG6{AXetE=WX+c1(U+UMnKPaGf9{+#FnU%GEIx z2yTl%_^uI6m8@QWav>A6s)CzB^IT(F&4?FJmd2cXlxD}I{F{B77p}ko2=qZT8)8HU zH`>SJdaSw5GCmRVAO?88Ko>ZEhD)Npc$oF~Xr8L8ox3G=m-JYavE9oQS2^+Vr%f zb;PpYKG&shbaxm}P7;Ej0MJM`W%%ZChIrLBs`?2UweDMTWZeFf!KNAtbvom4?Krag zWy8;oanQ5dD0~@4U~=1RdgrZJg%+o|VOQfD&m!+EW$TT3as~rr8RkY2Bpmljlz(=2uCPaZ=<9gIZlz8S zUOEbJ(Ft_9mE`+1N;5b5J`-&5!Qi9!R^#}{>Z{Z0Of*TgL{gI)S)*8bl}f_FFWGBn zgy)$F=%Ttlr1mtyA50)|kBo|XbUaxX1m;6kAWER0<37dsGi6P~|5w5iw#Wz)LLy&` zqbL1)Y6Zb)WR4a?FC_P2HAopb`cJMZ2N<k^9nr9AiNu%!CG)Wb1O%|e>XRqqK?_Kb) zCRrhZ3^47Ro>~Gt*~7%cZCZzwCpwaEun7yyY zCF7SvK-EroZ$@6QxCyJFNl?50KEB6ClhR{~j$VLCd5h}wXuzOZ2zR&HnQ99UpA%6R z##U8NQx*i50bDF`r^PjSm1sGeu~RBe!CkJJZ0@heSTgjsF%7F>Z69DJ;{PTVY!X0v z%fbI3sh=Tuwh5p#+{~-(2;r(XwdYKXg^FXUjYJ|hHigxTk}9OQ?!TXJV-MQSexfLA zeYqcCgIr|=b7ixjlWyf*}0uSfipsd6Ges9 zFRtBQGJgqHcjx?|-wgh8kn9GMb{70R-4Z|x$=D6~*^ID-U}vxm(%bGncXMxJzi~-x zkvh@1cP;r<)Yw{7)L5FJskB~iU7oTc?--oGJ56LqiHah$V&UBuugE~yi`sjl429Z< z>lH`eEc87dn)q^m^((n2V{%fZNP}vvfy=(cs>7R7iAoT0GC!M^53z4ilyXP-0f5Do z?!QShk}uswEOac`e|GiqkM{2=&2PaNCgxVM0wI6n+9_gH^N#qQn*vLWr_cg)l#I~$ zI9x^bO5~M~!eP4DjqQr5{!v&MxH&4hu!5BH?-WJyQ zi}VCaY^~Z<8tw-6ZI^?*o|362Q`}ohgu5C^dLzFPWLGwrPdxJG`u8VWMZX=MH2y8( za@?-Bq1V5IQ4Z^LW5)rnJ~$u6i~cQ)%a0$6ltukeRaV9&!v2`m)?bK8&fX3dcA4w8 zL*Sw-PPwY>XPQ@`JhvVO1F98iNc)4$J-pNjxHZdzktvHVaqfz?d&{P?d$U@jKbbj} zY#Igwq3IowCR<`UJUT385&^>5XWEd#oj;?VN8v9;3;X#yNwZv$W$!Tmmx^mgZ#(rW zvYYAqS|h}X365RoRH5u8YlV7Wp9$0QW^)-?ElZAIA>V`lX8r7pN%c}dpgpD8dQD!1 zkmHh8n<28kO$_O0|L7v@m{@v!oi>~_OZIu;{VgY%J^6jex_8yd7adcP5z6N`ygIu3 zx(~J(U$oo`IYt{dYmm>dhJW;qaM(HIXUvnE0CWf`{p!GloQHy{)c(IjI!*E0$7fDD z2&c;ZKq$G&z!MDfwr>DFil6M}J!@p}SpHMG8(Uh0_;`J;nvlMw)=99qfH!Qbz%MLC z^1&s|SaQ4hV!_sR-y_KVpV_6gwYe!py2P@_3B$HHMTTBGyl-z&`B%`Dmu{cgNluQ4 zcc2vYPslQ>iuTVIuFpIge`1-|mGB+;ixDVVJ3$hRImTNQXi)h7IEdd{H~gI-T<*^d z7(Il{*JG`4a01tEuanIRYMuwT)LE)hMrg!I4Uo_>q?KOHhc(j5~Ua6RO$7|6;KWUHQV>~s3v|fLWss^Y+ z7`TVefXVo>6#2%?KYg6=tK9&=U7pZEz8NW3d>vkN>-e0PkW6Prm^euymG}0ZNgpv? z342fx6#3!3(Fr*v4bPvPWFX)C5mJ-u8&*bOgU+qTuD}r0Yqp=V4C?7gJQyHK4dGJ6 zaQwL^hbqCjm=S(*6-a#5hVX>h!8yo`;~e>hdcl8I=y`lKiGesB@{zy$40ds}`}=f> zO-zUo(Ff6A;<}$45x}k&x4#~}1eG@6V-tk~#6G*;7(s``4=4Mj_F!b~+1pe~>;-)8 zz6!H0oWb5AAra0`p<3J3h%)h_$~&?X5+R@b8y)!1d*U&FKQ)(-; zrmHfo6x=X-BgeawdDl&Wq$}{A&yw8&>Q2-;t`Vlmz;LyYhFv*5vo?K6%tlu>A!uoR ziSUqZZR(^oPh`LO7K4tyCOWV1c0N`u)n4DRuQGA&DAdJoi`53TX{^mD4B)T<))+&O zrvh{oIcj=$l#QZ`mvbZ{4sh2DzpZ~&Z)TUIGpEh?IdJ!YUMsWC55mBqqYpJaIz(Rw zHKFdIA3?9aJeUDjGqiWw>0ErUrZNl62%i%OI;x;hi_~N0oca}7bmE1?y z+}kI9-0-jeAg6EP*)s0p?tJUwY!LZzM#P|kGeD(cew~|B<%8n-o2o_rfoC2Pd~r1; zcO}Ql;)U;w9nj(B-qcQz&4w<4gO}sc>8aPo%4-ETn%5yMDditZuo6~t0zYjR&P_rfow?KK7XYDJNM+uifHR^$`wYWVcPo$`S?+F}iQD+uK>v6v@qK`9D=8wnWdi9QkAH?{K;Ty+UW zg;mb#N6KP3o$y}+w1S@RUsBD&VM^6vs#FucBT;LjmoL+uyNvY<*)&AE_-^PIvKq}h z7mV?;DUy_GpTC6|-=mfhGFNfm;6xiQL{mN`8%p@zE^}(~eRKT~G8FfA=DKi$(!h%r zF=KWfP4oK|hc`iPKoe+(T(@wXE(pEnx~-aAj4=rLn?ZDhk4&#FEIV=eDOaOZ>;`bken$R)r26YkK@2BFwF7b0bn+opRUXO!#qJ1CB zrRzd5wn{jM6SoZ^P$(Hbn{2Tg@1s|UY9JlV`q0e?r%TbMoVX2- z)^XCNmH?y;J&4l6qmGHYW=iqG^!OR`Q;}pP;w!s^QsG(F*?2O6=}xB6L>Y^&)6)wadg3awdqQSE=oJU@9l*QVudMBVmN>2p*Yuvh7Qz~CpN09a^DSYn^~ zPQWxUDllrLtPr>!@v2^NPT7{@H?v(g#Q&4d+fKOzg8^zFO)I9d08L|=o1X1z$@BJc zk|-T|{bd-9!%%1ZFK^5R&{hVcK{G+e2|R%-Q_GO(hg;MOycDdU5!$bPy^`;h3P>3J zsxbGK%I`r0f=|?*}~xjg@F9N{pwLq^a2)&+J7n zRk?9K3{`Y)8uN#|uir{+gG|Wlk545!{!D$zY;spJw-dv)PTZnvU&;zpPL{LadDFW< z)w6s$3s=Kf9#i{<7Z ziTcM+QkRC<2rmYFLt?9~+51|urekE?ThJOLo)l`ass+3F&6Ox&Al|lOfG$b>Pn{+V zDiKs}lPqFhOKZaVox{P3@_&F9P+a+UY`kQiWg`faGigO$VQVdcGS85&&8UYV*nAdjc86-N-gvinNZ0LQm+3c`EP95kO}ng5WccwLL(s>{*{*^S9}!O8JN6oYRkpDy6u^VyBv_;i{VjwDA<##>8%-h}%+Y_oEFO3iRNW`LjfPuRpS!q;R>A!uU-f(Z!KxNS{Lc5GbCWTkxOkt5 zi;y}GMT1DKLqMy$PwK8THJYuIfm`pA;XZp#J)Tro!8Xx$JZvCQa~ZY+7WRX1yOJ4? z1)%ywr);DQNBR6Ib-Zc!nVYBQ?aV;kk7;|t%F^$wTT2DW)$YH9gP$<|7YiR2B;PLl zp_6$hJVxej1Y}O1EXB3Ag6$s&m9WY2hNT@_ms__kD!&fS+8!Mp(%CL`)n9_}4Ini} z>bT3deLsCkzKxTzppD^ae1FYN{ab%aTX~>2w{4y(1>{X#)rK>J^Fiw>9ycPi^{QgW z2ZxVVv;yimCQC@~(+t0b;MKO>KPCstkwC`b9mhLh49;26npJT_aFY+$dFt<6{JJy# z<%QYB{ej?cUd@Jl=+)!H?ZU*f&S;z3<7T#BjLG#EP|vtEaRDUO?G3C+PuMj)4bMd^ z)%t)5$h_Olc_q8ap1@H+qs| zNfX8q{favK>y?(Fb@v`-*tF&DW-W;`9Wji1!+6hkfw+OFs$ot4!f7mE?@ zUP3342B- z)Q$~RH?|ro{CK!+)daf^ywq=Ge(N!@MtksQRzBL z0(@V$+8B|VvPsFZ0xV?{oAHu8muIzL%hs|DzNm4Tv^4_*bw7)vL9zLwu zfGQMEbiqTmYZCs#bp`PVMn@^DVP?{`EbiP^N)Qny#szQGJJqm)PQhrUi~Yra9bzkEq%MJ^JwpDX6Fv4rS@s9G3*T|o z7?X43<}j7u;OjE3_omc!R_5mg>LbIr+3({@sL-EY-nxRzc$M`SNMgl5e!ORpF|+LB z_$rfOS65Z0E(W`y*>EW6CE(p&bIAJ7T(+mRE|km-_p?Rriyj^v7bkW$DM$K=jzT6yX@r^el^|nwNU$mAW)*<#6~#;~+7Y$x8o6U-<(k(oF@CY%OJG zn_lL^^Zmqd-fGraB^ufJsqe;`sm;`}(&_TymcWb}ze0QMOF zhpYG1NNc}{o#t>aOk*DZRmGsURf4-ugppt;jGaa7NlRC)QaD~_57VK{ch$*AQp*zL zC`-~*Z?_(4YS~;igid)piAz!NNiRmx3ZP5kJWS#(dIQwpS!Z~sdQn}tqd$BRVrBt( zLu16Xgd$*cWUQ4(e@V;p$dv#ZgWPa4)wS@M7^D`lJQmZ7VdAD{?!-*ZN?t}fPOst~ zWil*J5DS?ttm98JNYU+fOUpD|Hr{-#E%9eQ5V;Hm&y*o_{qu@R1z34B~+z`|eU&T*MC*9a32T;WP!6c76I*J~%}jSEjI z+Ynt4RpL-Tp=drgkTYJ(qW%szu4dd)`n6$0Uki_Mqa7yUn50S~im?-yx;aja`GmlN z1Ut%k&tOu{4pa^hJUEwN!o(euln*||(E7Xlf%Rb0*ZB3ZD27qlCUy-CoR!KKQ3|h# zGnGDJxIe71>1i;8%@gwrqVazl7nw$GerB;(6F2m)__aZ7L|sm`7m$Dfv@B4vnheAd zi&~vsdBT6|^fT`JY2^{uiTBM!8%L~;B%MMTNi6;=zs60Kykc^_jbsZdU-)=dg%0cS zo2@gBXBE8L&EUZg2TBgifXv`xnR*#wga0zq4f+zG+uGV#RDR6LAQYoAo3kBI8M&~m zNoF7S@UNyptg!75PRoK`9~Fa3@n1c8H14HRcF@X{h!LO%Kp;|=NbCO&1GP)&cTDJW zOc;1%%DQLFzL)#kFlg$N$iDKK{k1NfRZ8>4o9K!J?;F9eePLs1k_CImI~eGwWb^2S zldBt)B=Cy_%#-QE!hnIZE-7RLbLF;+?%1Phz1>mqeuK*!dFAY!;@+*ajP3Dl$GKrl zITZ2B;%y=8!8MU%uaF}r1Y)VAN$<{E)Q6VQ73x84@j*-nwP$Sg%^=BE-3@r(Tu+}l zW}_^6xg_#c25+A^b`6%tFs(|4xI=?r-w__l0Eqftz@+4_GA^Xg@CJ^JAz&O|Ksf$S zOftKWXN>`67+Z5poYT7;k&T?5^r2!o+DiyynnIBDzg+YzqF8MuNFUX(s-C+sY7-yx z7@{aBxRDJifPLE@TEWpk+5+Kwwyrba3BWcYwK&V_+^lk8(aatCou>o$J?gnyr_izH zmOM9VN4&u8xQ_&1<0ncqOewXc1D|(DKOuWT2^U-{6)D?;slH#EmdYFhQ~uX?R7>N> zjnlP1zF%E_=+HORP#Rk$!}}4ZKZwQ5X-h)q;#v^$k`sX+auaQiPM$=+?8l0b0=-VM z`Ex%YsE?l%2)&Vf(~==g$Xs*uj?&+5bu)Up+s~gOf{iM0jhSkp6674B9z_CuQ^liT zZq7ZwuWIy5{xh~Th3R6`=;vDYCSxEw)-%TU2;F3su~pK~ zpP`$CL7o-;qVgDXoU2-1okk5O$e-1&8x%Q-1B3VeO`L{C>)9-=0IRn+Y|RrKp#A@t zJBc(p{I8|=!I`bJgw#V*17p*Fmv8Z^Yb zT#a?$X+iR}WRLEJ`mO&{9X|yo99bRvJhebD?w8lsmh6v02Pyv5qOFM0UW?xt7|TBu z@1}xB)HVt&SJEHvv&ncyCw?wYggdt*DR~huUq~f=9F*Aexq0ZxV7urh)FL=GH9btQ z@BAa(abehDxOW@Y=fEjEh7bk8(X4G7%R0OUY9n| z{bcTbpVhd=Mt60%0sjy?Jv{Ui0%&S(>9SCPX*0qzdQ3+_NwdgPMPHw;wsXQ=a`o+% zQ)XkYInN@I(gIP#OFWh$!;T&1&T2up<1K5NE^(a#Y1?OAv7P(lndMNMLPhxxq218h zw)B8HSyEe)*<=`~u95_Z4WGBqs4dUdh#gFp}C?MK0#r(hCk`P&O22iVDk$i6C zL`@9c+gUZ44cMmnHvSW!m*Fad=&9J3HjBDzM^Nlw6@=JNy1ZO3)M&D3ikoy+R&`{} zS(crzFK6gY4KkPF_I(d_$`eyIBl~Vhoo-}4Y)p#d57~PBZ3<+ zVcS+^A;%2-g>+tB(g*}l(K&|H*$kfN{P^U|RvOZV&A5rzmk0o6uL z-nPhbT6O0>^uykqDA@E#bj94jzSzMJ@I-%WuDYhJW~))KIJhxqMNJgrrzfvqG!aS$ zh0bjL;!DFzb#ha{YN5p_Z&yS41la6HOBd$00Lm|_Yd3JziVFW^>(fy7>uwP7@4ZM9 zv=a6HTS5Z=kUvb&9W3h{H!Hw z>JNkI)JF;9kp>KA?bCs80?#lry2Oi@a6c2f?57;VZs%gfZoIt_a{9rT%o~n>`T5fY z<*s7>e(c=;Rnm{)X!q`8k91H|BQU=6G{W>S##9W%xdaS8$(1TFzKaVr9gs)^%$=I+ zjSFvmWAfmT6!TfdxIjcV*(ZhkxgW0M%Oz#oD_0--Yc4AVq--0f=Wmit@#w$REbM1K zv3WJ__j(J6fpxsMMzz*LGdPiDC8j+??Dfx)uEqUN` zULt+y`&+11YPO$T9(Z@aUXK5Ad%j~_`>(*j%oqw{d&~IEH$>a))94KDxI373Hy7xN z`{}utJW_dJTogYfsw3=J2y>x13fp-#-q}}}Pz2>Ifs-}RySH}UD!(SIPnUq$eRzVz zE_pzB%nU0k9}c{ z6f~cWAlYBFKD&6ms_FeLzaQ94N0vCJF(XuM>Q0mV`XNLHC{xkMMvU_v!obzj!XP3T zFFy5cZY0td|fS3 zQ_U|yXrNL%>MLYM81=lrx$$rN)DQY?k@osX>eM|vXB zBj`!zXQwl!J$W}dIRA(0kA=PXwBWl;ovxq)WhEHTn)K=!|4l!-=`Vlvb?BFUlB-fg z2Lye0uLBiXGh=rIE#cr~l4nXDdV$jqOO^eueX7^8#O5PjH_`0n#FBtMgR`sD-74#R z5jVDi;DxTAKV6Kk3E+G_9AdO&OqfJ0HVRQv{)3NC2|b612mSV0Zdlnm$|IVe>#Rw7 zN;RB+8Nu#7ePkg&B>~>Ba;RrRi5tfB5!YzNny&!kEdI~yBqJ{}TA^c^E z&)3_?G9oKWk^>SbRc}f`j^6~6?DKb%6cB0vI3CP}!KXILfTbw-9m>*M=(oY{>}N^_ z+&QR{puy6(Ej`hYSmxyZY3OIx?7tkc|_Gwo< zqD2lCz;bIOIpP+4d0{nb&re!iOqUD6HLJP1CNm~OiEnFQCHD?PhvQPn*ZF5Rbd18zG*Y!d0UV9)2I-g9!7YWK9*lL)q1G{yK z4cMOxa(L$Q2Es`SgbXqu1FvtrU0ceRE$z6F2X_l6adGGf?OV$Cd-fmr9*Q7) zzsv+4dSMtz1cT{6Ec4Nkt-SeIYmy46PW891|;5nNo`T3P;sl_ijY_))z%G!4-t`J)fbMdF={Lgsz*Gk$pQJwXTb#@d~6SqZG z`cjOl2*Vubff+-jiI;RAgyJSRUpM#tS~d?IHQ>E!ZHD@rs-EMT19C(M?-Bb%sJLHh z!P6n_Z-QRY5Fu!GcbsMui=Qti5%(=uQ!itvEy|ab7KRFVKNh@PS6AM>F7g_%Z05#J zoL4yu#@;9oEz4m|yw)I&Tzf1B@aOTuh}*CK(XSsvwZ(7>Ny)%P;fLKj-rckIz8WtB z;s9&Sz||OFw$(PGeMb@DC`95_iPV>}*^`23mhMee4#P)L|68ETD;L%=Fp9PDNuUYt z0ilWd4d)Q=bl_W#pMjgo9yjKaW;&lP??`+`JCyBN_Ir{qldCy9uoVr4w9C7m4~_yo zP4g+ecpW6tkV}>gzNY~-#s~sF^dE+RN;UeDWUu(=8}pCg=kOfcL`jF5^D=Z}ZYK!& zYLx=x>b{6~sPGG3&5tkzXp$AA&qy#_pZ!RYYQFe${+sr|@g@SQD4^DKP~x77_OgpS zhf<%$XL#B12%Nsh?+*#a(>>5vrNJ(DDBfy;S}LOn)G2d`?C$DunFUkwug8E{EoXrd ztFfr8HCejz(M^_Asme!3`5TMi0x<<}Fo~k_xVRQ0cDK;Oe$B)2ki(@))JNnc2e^Dp zqVA$@Z9u4q{)sQwC{?6I;6G7kK>DzaswZR!n&qB%`lX%+%4=y0p(~QZ!#UgSEe4l! z{$Q*V4X-Ln;&JS~AhbdQg;5H(Z=LRR?QP0>Yya9RiDbs>!uu)5SX#QDt~-8N?DzJC zK-3ZrTJ%>JwJOsx43=mGJDWt^8@=-*X{8G2b0O)3CBeqp;IV{Hyx~3I1h?NFVISDy zv>m93DhN-_xRo+hWv#K8dLIK`>3C7jg+~uJA#`bvpfJ5Mn=&grjhcs2^B+20aG5JV zT3JaV8l_@;*APo5p;eGTxF`aQ4A%fc9vTawp6MOwl7q(y#kG zT(GFvi%V3BVCFwqS;09m8=~CX&8$s}qH=rGq)D9jKq*iYTr9*wnGC`~O{xO% zSRk=U7u%~pkXT}-BW{4cCo3P%-4i_IW-A#bQ)n7kOk)^MH(j}esVnS$iT0moKod^G zTl5UKyN_wJz_s1* z8a#b(NNP}+&$Rlr=I(FHVy`AsuS+09_UKVs$M#$eswU2d-06R27P4^K2|z$!(rO20$iz~$4 zJV=Wd^I|O;ft>ZxVuDzI74KERV_y@fXA@W>B2btgW>+3YASV? z`y*bSE#rE!6pCmHeFe1an>9ACE9RP)%QVnoB(eZy`J$@6Q-NTr}liS+WJT{fNJLxWWY zp0$JsUh3@*Da!mWW9Xmgt`ef+=}u@=z%y@h+7N~5l3&dkek)}UwbK7wqhYDH+sXk# z3`&dqfRC^GlUyjSUI_aJ=vF+R1*e`wXI@0T43JzQvi=;S@qJyze0Hctp3ovrKO;?V zzO~r6&Uo1CZSglC;2L7GjUqZs^8d^^$=OprCNt?^V7GI^3JhnSzL-x@QtVGta+%oqk+RaidS)I|TUe6bMm@FK-u2ibcP|-AFsaD^)QnCM&+qZ*{anq>#n`yz z!~+e=ioT`jQJ2zF$VE`sISxg8~+!uZBCT>kFsxPvSP3^C0 z)u*$gb2c0uHVmB_TlkHaMqk#C$&?NMkBG+TEAtM8K%Fx-*kjk_u&!xBBJ%Z8aB_v2W+( z;)hs@@QU0yDBf`juR{w8+?b+5s2`&wo+Eo+ZWTi6zKF2o%U>dX`uU7*2jaxKJ8FIy zUNB}3UpBe2@R@5$*x)2&anz2Kuur{tPXe@wrM%yJE=N1tz|?EPTe4vGR-yH}ZT7iu zOc-D%*0WG}x)?2tY>laO&`u3J%=6Y1xM@IH+_~Jgov<$GDhEV5_8&vc zd;Ynrd2}v|sZ>ChsEPX`;Jt+i%KNlvcA%pzlKZD(O!!MBt$?n?RHxn39Mkj9I(tyH zEj zoI)@?RjPOqAUgze$-Pi~ zxv}A48mRmg2a)&*@k8eJgx=*KgDa$zI_GkTsP>>R|b%qM5 zXw9w_fU;vpaO=lEEwf2A_b(-hS-*XV2_1ZKSJR6wUcO1Dgy3~ecCvdE(_5SzUQW`h z^@NbZ@esUlZb*qH1p3<2Q~aNW1@L$-;Jdx${?GAl^zig_A6Lz+IeoLe@nf5ub*&dL z&_17`fZ8+3gIMhoS)Y=Ht+7r{{!i&?j zh%Y3Au+ROj!=b1pQ_@~>gM}ruLvIM%27Wq2VtOaQcR&Qm_UnUm+Ezj2CIZ^Od4zT# z1^Ulfn_c|R57GHC&)wlBcc^NDP)$ORZ^eBN*#pqNZdE({gDb3qF8;S7zAOzGLAOe-JcUoZg%8B4&9E_CXEyX6>?kjs ze)m^Ihj|VEP(MV-!g2AYIDdibMA7XwwtBy!Ui>+&JzD!0&ax5AmI0zQptaF8gcat%m;<(`!tn*o!mr zZ<0UozIyDwBbPDdH?k?4JFL}vzbXhN?eHWq>qB9+bHR4aVtxo@3r65UuOc4HbtUNK zxq&GHQQ$uGQ;JfJL;lf~<}_)5<0%e&N{0W*KD7a_sP&0Q26I)17HKX2#S2jL9Y&A( zp#1~^jS4o^(^DkI>(SDU>dgNWy6uW7R#bBZe$oTVgahJgyFp(i_t}~HwzGkTA3cqm@LFQ-W-_o0!m|IlJ$}qQ%*wwc?HjVA zvfJU?&e?u~pkYG1ME%~vL(n3i#Qw?kmCvN0Lx#}Dak5nMxx<+estW}Q`leo{VTNw^ zp?)h7ik3MLIv*ly^XTM9$5aRpTAGN6=q#4FP!dm{M|myZR3QjkgeZBz^&>od zABF64L)kYgk>p;y6Xf$-tC|%3=Slf@V1bx7^f8YMs_w3Kez^Bu-e$ocEuBI6cr7TA zXZ?Yy@khdQm7L^JhVipXKrB(}6b>!_$gC&-#nE4*QCJx=oln&;zf%+5_92B=|T3kaRuR-$f{#8mfukL z6VvZk+o7B|omVu{YxCKg!I}F(!N<`TN+-G39Ydej1IU3t9BPh(LHkKgXKcN#(HjTq zne{y-xj5h3XZw)FwQkVU$%W85IMT@lrakn7fP35P2I^4S=CKv9H)?emP(HdmKD#?*4e#p2iA??0nmU)j((WjV7Wo1N4og=Bp!w{6r;M0Di1V&=xBf zoIgYRi0)J;Qp2*mSwt*d>}Ph>bwW6H>*%5ro!a@Zsy(Xrf4}8*iWyY zt0y#1NSnRVs!9z6rJ(W#{Go%0Vfjp){oWO0Qu<#6y5VF^e}VSveViE>q9A+^3Irmh zXsGcuLM|35<1fBFg-9y_P4}Pf4+;qd+YzChM@dLcgd-dyJyNWmm5m1 zs16kc>3_pytfI8ee^M7g1&3s3rApw!!iRzg_GeneD!&{Uk#@nGrTab`-s9gK!T4*m z!-SKNjx+1UPP>sLoWLRE?&LMCa1o9p3_%Dp+CL1s-ufE?5g01&^4dD4mqX@`L+1Pv^nf9SiW1T*L~z812?^~|%taB; zcNVKXY(SkvDW!Fl(1(iI(AVkpt?TXuKqiC;UoiFrU_02Oq#-$*o8^xD)|ayi2XZEnp>Emi&A z-w7=yFbRgeyPD1t3xwQJl$6qmT6+4!*sy)S=`xDHKdO$%NCGZF)o%ZM z8X6v5M_K=sX2bZ#;$bg```+yY@#G8H||9l5`R zWiyJpmIHKLd35# zHUgzCTmtDLHbS;`|DFFd08Cd1qeJlgm27jmgkB*c$`F{MuBSkZCpt&y$HY*?Ta*|8 zh0~6>RsI!7qPijcmbp#Qz;o;lEVgfbTxO!sF|2`e@nT4qk<^^+Sv|y|Q7X(B!T(=e ze)sE8!&0{?)v=J)37C!)oa(LCE3?M@>br1|-Km8ijh|?>@n-XDV}^%9=Y^-p9phOA zi<&DiG2}~moz8fR!Shd4SFF?3AD&=8azv4KIA1gA?fK`s$)A;F)72ZZHZ$Ee(Wcuz zj2%skCoP5Mvu0JOugk=E@rV{8^kqrfgR_s47j3KEZiyJcB|Ju*2I}Hw zaTX%zG`=B<@x<_8qGS~!IEaKDfmG#zbd`-)UEzLj$eulCN8HVrowJ@LTClI6K4dr8 z5q>UY`Jx(w^0NPa9p=ABi(^KS%t{(@?!(ocS8QT64K{Ex!{^UBLf8wmqb zAV&(kB{SxP9)4mi%jKiQc8-2BEpZ#_Ux{G0Sif^{WdCILhv)W9G0)a{&f_u z2~tmBYT$>l8^`B?{xd*I0QiMafxzA~OPj0yv2QX31n8`P^XCz+{armKV`%)7SZucm zsEuWukzRvpQNhx8E$P%~EphpF(M@tki zl@tcpth=W-F|pk$A6CBdI*@kZ5@e)dc6~It31WP$zi#XEP~_GG7J3%RYyo)0t1%iB zOEBl`$o(~3bR?nN$!5sy!}$E+!@3xS=wWv56kr@p?frafLMjJx0P-{6)v=&5Ie_zo z5|Cfx^&8Vi2|6lE+Bj*Z6{nG>IwXLBZbM#v8Tac6P&nw?n!^1kM<}MPLG-8PbqH8U-!{ijVo|N3xz0RpODRkuq%^sQ3w~Q? z#zzi@14{k63i~qnTzP0_P#1_q4{8hvJPs)+icT}YJOE0wV5b859xgP~9WTp34;rS12Bl2& zK0tJ$pw1c|r%KhPnivYxpD+mz+l|5ze);FhfuuRzxe&q~ruEh$$-70rA(wBK9}dC(<#c{HMrSI@Ap)KOSHY`^|KC@d;|bk-`~R4u4IKA*U2 zdK>fE)1Jl8$)J?BGV;0+LN=7d14BiP^*bd@hsx~O)Z9VB3ZR^?RJ8v=j_k*$M>yT8 z`!Z$G*yqfng5h?i$F$oIm&z`@oWHZ6Ee7=E!CJ- z^$Nau{5s(=`D{;gq80J=exrVJY{RoCe6cgDv|T0dyg_nBwK!m&UO5~Q`5ZbRh~kSY z;aULo?b;-+jCerukF2x}$em#Y)`#qqu8Wi5l$Qlaou4l#EyuXLpea??>X%h&O-}6= z`A&5_AxUWGG8g4Y=6$V^4`?f=_A_}xEB1*$KlaJ;P+((E1>H#r_6aXUa2D0yy~_zv zcl$C59&P9Nwlw8tacK)a@P}le+2Xy_Vr)Hz+*^yb_k3<+U~+1U!QXfFkmLQAu#8zW z-r_VQq}^JtMu*+&lcQ`g_XvA4*7i6cP>AT}ZnUDh1$7!_&Wd=9n+nm6JxZiiEYzk5OHgT&ArCL-cU%D2h2@xD^y z5bVyShNpHS`w7l}aVPs>3^ZiwCyMfM!kSZ?R-UbWJJ!>wNPEnhn^SjK#@aiXx*ETi zr>#am_vh%ng}HK_6}jOGCxJzzo(^YdGwk@U*y+JLL+as0pK{t`d{(@v1$ipW8(_5V zs=pa@3iv|UVX|ORhN_Eqh&ptFpxg&xeyjis4CJ?vsOr947xC1}wqM1I&_iiHm1Q}& zyIjh1gXjAK2UFgPOeQfTF`vc3KM+S_b@acVB^;w>`m-3aMG?slwB-4K z^u>iyhi#fY!j8=LNz0RY3dg7LA|A&GBE)wJh{DjQbk`DaRrF;gs>^FED!i3~F2iS2 zVb)%eE|^d|j@3N`m3(`sJYpMjPe{6Y;{@`>2##=Dq%b@6)I-=MnmJeS7ct}R&^&8T zNW^6YDP-?qqy6YK{i)paWueyJXHh{_9YmCCy<~iB<*;K?D$@FLO-Y~I!ne`}HHF`p zG))$J+s$m%b_4#d2lZs%~LbioaXQ`Wj_(Q&MpSKse=6*h`e|4lD6HKs5&6a}+K z+Cqe80Ge+QoRs#+&1QACe6eVO`UayTijK};G`s|FrAI!|oJkbV4!*peR=zYoHEyRe?k@_>Gi%~LqYrTm5pAOt#SPp#0 zm<7GOfv^ajHTu}HiW?euHE^D5G%h+HIjXEe_f76ud&ySg51zj#Dpwna3E-W1>+ej~ zKAnxSeLmzxYxv_b(#{q9JAL(M3287GqPWb7S-;7BH`Q(qcFT_p^?Wj}M$36E$agF?2m3Mxo{Pi%!E){gG3SFN>GQA-kDFg)nwe zIvEsoa;l_n;k*6&rLldd*`U75(fP$GZ}j*00a-PQyrGkj=Q8)H`gRUC_@i8vaSDQk zZO66sa*-NKefJmF^x7fgkm4Oe;2*$HoF6fQZ!KH+eUJBUQwrq3j4XOs6+i!qdouME!_>bGqzd3%`n$_oXcy@Var8S!rqn zyx5D%{Cfz>bXH;zLpOZB#eDbWhs#7#3t6yf^~y}mj*r9dI#{u@l|&cMcZ=6m-1@G? zF|VG&s?O_QmvD7=r-w|xb$J$QTul~logW4Nl@eZym7Kv(N%5yy&>3c1imtvi_E7e| z2A2D8S9(8YX_yq%a^fKvZTPU4(O*#V9wk8pA`Ot=Xt()=4y#JqGvzENDtKy0?2|iW zrK#)Rr=m_Mk`>f zpZi7(?fR4T;0$ef7s(nE#X#wG`qN>Tr(>*pU|~OhSACC0ip=id3Dw$mr3jj3_#)`^ zftbe@66Lw9A%SCvqwVM0OodgF-Xjt~Yr8AAgtNSH;#z=9UQc4sOrnyIr<*(XL}0`_ zKvNug-u|V!rYUX+yK?}$=fegxjG0VQE+U7u3|=0nE7$FLo@A+ljfS(g1)?7>->^64 znTvNT+T4M}W&Kbtjc6~Ni&}`!#q#jhW=n3v-;aZpBClqy3<^}YT|~vkKzUn`*@IuC$r~^^V-r_BiLlv^FJiNe;fpYGJxxkaq~cdrp`WSt>H6hxJQvkC z?t?}`Tt78(p_;z%|7z@D84fgzrn_$oWrx^vbA~rw2gPJ=mWjV`Nlo^`Copsagt`j1 z!j*o#9yHt%^J`BRzD}WLC4YtOOwUf1aC;)2;@7Pb zNyq#?570N^LG`@z4iW3;Grv80zLC&KDevRmHAszEz7U9Fw@Y9@gxi4;;X}T`UTJw` zs#CmRLLR}_biMo2vu*en^>n)^5QC>FFDD6H#y+{+S{Nye5fsdeZ&ZX!RYY%?G%%uE zX)Fg|jUY(JyGha?6GRlO;$`lY3)}B)k35eZSVT~x}Yz% zj&6f9W>ZkJEZg3DcP?$;NGck(jDZKt?=_7=55~Ue?m4^OH8vD3I)Bnr;{8)*b5ss9 zp4G(2HoqnZ%b9G@U)71%`g!k@(t!gZzt8#kLu2_4h?masSGSvh_wQ{kSiNb|;g>XM zYe&}?r?A7t7T9r zM`KwY0V#xQxEyu5CJsbd7)KX2%6f%-O}8jfFsdY#V#q!{Z_{Sx-kh^8LUJuXy_Wnj zSDoWg%|rx_k=dVWtb#@@sP15CZPpbg?XEfmC3f%D`VyC=TRi@R+~d#6C|_C=O=DSY zI&&({Gjv&{*;Q|EEp_<&+K-y#`f9Z}${VzHzh527&ga#`wY3ppUgN_@wQ&mLy3-jw zP2c_rDYZ3{OPb_#Qd-AQW>eta_2*WsK~866$MxK|->Q$)OP7hJiS11b=t|$6e>}wY zBZHF0%1(E=Kj-#Xzr>cQpQd`#jaV7L=!K+?-O71WO?WPr(q?5w!nNft7UQ<@Gucs9j+!BOutKGni8Ja~l2d}E>o zkM!Hjyaud?E(EGH()qFh7;a7)b5-O}t~{3$9$)aFouox7zEkFSj@ z4h%%KA#wgbN6AqyMvLz-JIzpyzwi*+eu(6NvEasQ6N*t2)OaB1g; z?O9*7vpD8kOELL!tSftBro8%0x{KY;B5b&dYqMZp5jfu282SFq()N)VSClzsqHJA{ zPfx;@rsmh4<;%$WO(EfLV z0XO&cq?8Dl__59<*6BVuDUbd_%lE9pUky9#qw51xfC<#e+CqkId_E_~T(iF(tI48s z+{eFOJArqXAG@0uS%`js=F|kAKc5HAxjPVR9vXlu2yKSW*9r!se|>MHyXRov zA1lco*)0JRl{?|MC|}BzvUozyzJ|}zJ+&?4KuuYdCBJ>&k2QS#y#WQmA^z(9fU)i) z`qw&9;ta#OQ>FB}UZ-eEMdAJPpK2d&hsV3H%Q9kB4Eg!;R7ox=_g$=m zu-gt3jf%BIU0gJ-w^uPG8SNZ(jM1g}i0;J$SVW4WY3CdC+=;!}`KE&O6@HRvaj-?* zrLk<#!J#P7`onzU8osj3g__FIg3%7Z!*Y2P%ME)EbHQJ@w>W1c7?T-ioxU?_jhrB5 z*n*inP8`6;@S}HvtmIw2*`9s?bf3#d6I> zY_@FaNm;IOfJOy<+~GAU5G@VclK|$$n><8Jr6L|;cgR5}C54f&!1=)#5PS-t+G3&$ zHexT7oq{#iF3k1heSYF3`5o#Zs>1h+tmGcEoiIs%2$~$`Gg7LX6YNl`Dn3007cTRb zlb<%Uq#6sw?Z)WXODTaU!SKlEOg+jZmc%MyZ~MoFl+$H6lQ)8+{(zg!JTAb`dgu4dm5S)>XJ)k@cGpU% z_z5mF7U$|(%Eh%FSb;5G?WTG>|A#?cKy`T7x0p|p**ue?UuMQTg4; z=svyJ)!z8F3wYO0O)rmIA$-`0Gz#r<`T`zUKSEV1X4QM!oqln;b^fx)ckc+EnY9Wc zoI$ZM3-KN|9;Dh)K2+g&I^ z{+M>?> zr~&GwCXylg55mtqKEBv)mStay7jJnFVC>esZMxZFLV_P;nSsl|oS~oReSXhTU$pyB z^21p^Cve|2+@l@db{FDN2oc}S=G&yWl%+BES<}#D84`R@6wvm8q^zN$&UUB}|6KL< zST*^XFE|qeniO;?6rjw~WVF_dG+f%s5bMwNFEJ6!GrGq!d}c7e;BpQfU_|q8tQlN9 z$lTP%b8I<14=$VPSt0D2-!8tw>>RbfVC-sY-5PnyM3tia{5|L6%{NJ}&jPqpr^m*4 zXISZ%JLo7p0lK3#gPN9EkKBKLH+|>^M)O4{Z?@~XNOLOoi0PdGy=YB735L?mBil+)F{^a#7d@7eM2W-B@iNEYbEYci8rg ziJm#}9ykRzY|8vaiVQ1ja$HIlF-=8I{I&B=SgT%&iv#-s%8@dgbE3M2o(La^hbd(D z4yQQKk^6kBm%=65zfDy8=$reAJa4FW)r8`C^43(!ITD1kfAs3+7e)?qHn-_?MfDmf z=|Fv8;Ghiaw+EBBe!{I(!AxOiSMVA!_>1dPLg3p=OdO*{gCVv- zNew%#8-di?$6RfZ&+^r%U{e^m%*6tXsUUa~`(cpuUq%q>Q+$c3nO9|Wi9-AaSZ;lA zjxO1iYudE2r|VDXJv$IAArE|OT4R0%|s;$u9lPJ{Q&7?!FF%5_g=itXVldaf7i zMRZcv<3&)8a*{fh4&+CjXpYT5-8Bb!Ebr(j?w{*zS0NXt#o>&DHlyTsvoyPo{?@_z z8o^MZ6U|1=PxbJNbSJjdV7y(Kmv#|r=8r*l`Dc6B=S@CrH(-~S)A47C=)?1qUCrT` zD0q41FGC|q^H%NE>q)%L=C}+|Fh_ivyiTki@m=J@u1|LyrG#MgzkcM{jC#+(&;Oo> zPZ&SbiXm9Y_$9HS6dx~5SIJZsFZ4o?g~{E%!Z=+>Sv}d~?y=mXimyHy#>4h4LKtIm zMl=NvjTzGWw0msZKhj7InF7`YjvZ97dAIrq{%b=CYv031$J|X4$mm(*1Uz^p@~tKu z%>4FZoL$0-;Io=ODG?5TgNM6PxwdqhT55m(*cWlI)PX`={C&(sW}v`O9-d9YNf~NU z3SLmb>k33g$n5u#ycs!44brnNYvj0)#m`Dk=^I|G-Lsv+i-Lr1r4i*u>ktpE{J(Lp zCvjPk&xb@)?CJ3Ak*BzOz4nJgc}KIwB|4nHZQv?PJ6fA*zpM5dIk#izXcIU%tsBG5eb^3`PjUDnjh(2WU5tsh zDRZ#Hwa$zy_0GTGi1T*P8Kr685aAc7M(J%7lPs^@$jx0PT7>!jT-njB1$4LmfHi(x zMoSWkQxg{X$I%wC?}8!i_52s{ngi31rHDSV%Qo_GI;^r^4E7Bwxh(?j`P01 z%gGVnm)5L0b*1d;Vwm>sJP_Ly!5jLjK)h2l|I@-!`-aXZ1I!pS)hkZ zqHM(+0H$xBKO`}6BVrj|)so}@L`u1}~Rz26~V z8}MbcFw#KdNi$UmOeO2X(t7#HNQrUUNlQWOPUWW%{X6^ z9P$xcX5P|W7Na0ws=IO0vh&c`et)q_CwMe%FkFJ=P)gKOLHy?SvPoN?1&D`sceTe>mM+QQ5EG zjKyGKPuZk}_o4W*Rbf#|OfC%%Qc^v7Xcbbk31ccL%&>>tXnixG9di*!j`Zq8zp=8w z8xnA%Z7dl{ zNOX970j-(nYVB5uV~tz=Ns=iRE8gwbyItzdvP)8UAGw-ALf}U|Vp&9R&-#gC(3py( z9?tXBOwy5BC~z8-D&M=3{YeLxwS?u^ZXjAg+TOpcr?p~CptGF*l9rt@FtotBHS2ZV zC}kt}FivrEab@-0kurCgR&aj0+b07ge)in^$Fz~b(2?^~hSsjm9tZu2R!JgZGJ1(y z5;4CX7XPzrS&=r%o89VG!ro(y#0^1Jp9?(=Bzob*%*-Jc`XnqXo$NZfi2Lk~mhH|b z;hKX+*%di~`w!+wS}UrjU%0A|U@Jz2UN7H{30IHpG#{IenBApk6TIIb`Ktvg&rUxF z_?pFKM3Rw%Yu`Zr{&Evoa$o>6b{_^khh6m};Ss3$4-TNi4@jtChUAp=+5Bp_&OKJv zpub#ycK3*iYoNP`OQhcXfpQ2FA&Hxl2o#r7Hm6RZiDXIC}!p+|fgDD3#mQ z;=*1lzrV=1aMzQe>dT1Fz+_-lHo~!>a#D5&+EUMhPwc$|?DD8+mMH}@$JG9Sp6j2~ z*G;ksLl3@*TSvGH9#hamC}~?9vQHQ5!{Eab3fjMWXA;N%USBN^e19t2-H#Y+UKB+G zdHqeY#gM}KX;(^ds+l^H$9U@|ql#@cuCV;nF%#LOb{Kmix^;QZuS08u6g$d$i`EXlbqH2Ix3%*E{ z6`>Qtr1ORG==oF^IT>y>I^mE??_tHY$`u46Qs;q+vuURrPBA*BM>rKd(m$<54GVCC zQ&3aNttwtTp7^%qa+?O1aPnkHuslZjtVd|4;2kqMyn1_aVG8%Tqo;bvIl)MosBugl z>A)IIz%g*exD}=A>s~HG*m_;8D!`p`G{PN#5t*@(8Nz-*#31*#V_7d4U={Mgcq@hx zC;Rppsb{}~u{4>t(cKW!w)qJAYdPco`HhtkD&P(br28V4!Q@1}OQUf^nHAX`a6FE) zLs3SN>xj;VUIga7k=ooR*FsGNY2fY8OE22#`pIgw4IO}5B-WPT9e0mW5Sl|6T3)yW z1g@}U!Aqy&smd8X$J+_S$wppKV`l&B{lEHi8%??XIU$}KV^f{+kI!{4McgkYtHBT3 z&i=MU`iqXh`~fr}Sj+OK4;)XTS)LlVrU^u@^2=ez2OZSpgE6s>G;53BuQ$szgj0+~ju0c`!IGz)X;++?Ge*L2Tqd?x9Q z!lUDhH2GdL^k;sW@%G();6hwt@Q_#T#qYnWjcj!OS}ZuyhNG#}UbN2~;(0*GtC`9( z4fF`?Qrg7yDClgi*Iq0-wa0OxAJSn_)Ct|j6QMDk&=Ax~@m}EEp;t9q2^}7;t{ksfy`Kjk7tdmw3G)mjzBOoy*SS~wd(MO4XyeQdO#?8010$v zbW<_6lDbPRhnXCB??}nZlQ;05lkBM}pxpJ?REwGN|KC=LOQnxJIOby*cDDp}w-zq9 zpESmFSN`JcAoG46Q=TR$%t@EJ2KXCT!Fhhe9Zr#oOLPK@kV@V(Y-?nQn}E;RHXACm zX{HE(i#e87wUu;4MDHb}KQqs%t)r=HI%BF5biHFH`q6Sb+aXJ-w>bGaF#kA-bg=V4 z^Wl_F=eNLY1CS}e9CQ#O?OFAyojS6qUgoSmPp7HY;**ga@I10|294A^D*T>|cnkTx z|ByuY0oVKZ_wMH_@Gr2O)wYec@kweP$NXWmEUEAlZ8t2uS;O5?OePGE*_23K zimtzc0uAR0SHfQZQVcinfA9meUQJear$kkXhNAyOo=vANFu-y7n;wJPNbrqOgASBo z()2P$0KQMiRh95_NTdb zA?g4$2Kab8%*E7+feVtFhn=g-7Kb1$OLs%$$U7%V%DcmDk=zhXkWnYHR}#TjBLmVi3wcUfD!emMT{5v^oC^|c?MZyi+J^!%Xt%n^ zfl><;FDirmJ)t8k>XSKh9+2oedh~EbC?P0eYbhG2-l#N9r4(zOCOu>vRfE+IM7Gv1 zM0@jlT#C#yumxCtU&A=M{aI$4>~Go`D7vKzCT(>@74@E0VWg}+0L^<8<)#MmE-SMf zHl7X-;JIt|73Gdf`m`?dme(8Ue=D-&VRP%_^G;50_}w*Cw!$maQ0;gvM_?s6A{j&h zmYZS}<1ld}6wm5C7G7hpVo(HHH+?H#pmyqV#p zi)_6(Xt?HYj}SaEfCj#MVW^x#-%qZQtx%6gynI{{P>W)lwdVBfPm*(elpMc_L%!9GT>4(nbX~(yACNx8qE?H8`)@Nhgts`m&F?Q?;<*YM2R-W!)6WS8~ zX@hMP`*2=PmiYe_&j@0Ncelx%_buN(ApSq9zA~uJZ3_~IAVGozPjGh$dLRUMcZXoX z-91?F;O_438l2$n?s{-L^WFPqrr!INDpEy#RPDXjTHU?6(fXjZ4TD@dCED-2K^C!@ z$Kl-|6+D5tHJBoNDA2Gp>Som#si%eB?5{s7Z{U)H@{~$IA_Qa>)KWeME?#K^@Hk4> z^Xm9jo#|g+G!WRB&r}!mTEsmIk1&!8ojM9YT&*5|$U-14jsVXGU4EskE*?_S3o?d> zj`W}bKBmx%T6uNG4sPTXm z0q3m7d#o$K%o*IM{bNG=#oe)C_!Q(hMC5I z1TAvAO(dYr%|>*2(mko3z)bh_lgadm(^liwdcmam)Rajz$8phq4B~JcpKk(A4tFz~ zstNSso+6bz=OrbNGe@Ds9mgGXZ`Ux&k4{*CC(4V!+06UNNDA*Sg8WHo2}|^WzW&|b z;~kBkKW=xNCYImkVUL-ylIU8*So?Kc(Vvyx zFUZF`u|5h_gokCytX~N~+~ep&Tt`T>_aMoOsO0E7Kb6q*@Wln#qFM_{HRIfky#Kmi z#HIPnVWJ=F4^CEVwqHx(mne=KaiYLmv$+?Et;{S(6*k-)Kg*traI{=pxdH_h@M9-6(WcS1j;VqcM2nfa<#XFE4ICM&QRw{H!uQO;&r;JDyi zGJBu28g91NbmwwNP29#2O0|24_T(e*RnPhMzW&x(ZA4Ojh}JWrYNF@V@zw4TblA;& z5m+ExvWn&Lp$k8Q2JtC>gC(1kL&l;yU2X$W>*O8d8Eh{olZK5Oug+KZJQ%MYHT>tw z)Plef&cA`39n7-GZ%dWJMoL^|m?phUmlMe|omAnkHJmSX=i3qwgX8W$)4*mVa{4WN zUORg)l0J**9t2WvpDv@*GLH@YX8;k-aY?2}cv|LNoj>n_kPFVf2Z{F9>3gmZ?Gp@U z+CT)XZn_yjfxEm$vtz-&P0dxi`Ee}>y*{EXjSC5HhYf`II?X0@0lK@j*c$x};1|!x zMBFo9YfGVtY?7)Siv7fS=|k3^5c?TW(Xj9P10M2`w2SbCoR9<#;XgYPR9v?f1O4qXQcru&y*$|4=1X z2?~okEvDD+zWjc+fLB}!mN&l0nTh(*1)BnIzmT_`i&AD;VZ==U7w141GJ;246p}Mq z)%ZBqruyKASL0RC7|^pr%b27;frrP*cJ!6D5>8U!*othi9g3C|@8e_YXGMUY`dT(@ zWgxFaPY6S9d~(Um`-At#=x*8sDK$4yclX3NICkgnJ=|7-LHWiDu7Hz(5)vsxe2@8OmbqV2-_$0(1GnPCv>W%rL64a3A0zJe|Nd4`yy$#Kk2juc~-$ctimj2>e!Z>&oJFhG#5 zz2m?3hO^>18^kXnyI~@1(%aY4dE0?}q9u1i%zhIf)bHVYKw+qzWPAEKgww%L-hNAm znTBInRJG<0gbZ#T&*SuNVo+cV_RrndeFhP_utba2Ibv#?jJLuT^?ou1a;vJJut3u5}~51~uHW&Wz#8J+{*Ki6NKVLii+<>L8~ z6z79`j6}(g$WydTzXdMclYgH;$CXQj=|P-66Nd;-c39hI%f;i5NmDOb_u(UceXsB8T$OtgDC97!R0F6OWCi!l zWTw*Gu72rUOlw1=*3mq!y(@=S2MPrOefxi4%K9q)3-oZ!13-^V`atnzwCG|)OHs-r z`{x(qejk8z#pUH`{rd(N>`SEn_RvLpgc7q$iv28%)kv0X5Siit&`{iZ$`cJ>jWG*(K>Ae)IOUn9}X zP{6w9tOEq7L(liW%*-4qqYqYz15HYf75?Y0>E3xcoVS{6Kj1@TUM2t<2p;|)6eIo|)ersmiHjVhWdu8P-Pu1~J|!yVKM8zrDo7%9oq982G( z0VNA0&Ea6_OXeVz@JlWAnt`L7TMAfEI2Wz;a1tq?tK?JQ^Dp6UESCXpp{>g9e2{TnmlWC)K0 zE@w*nZW$8DP3kv_6PLUXl^NS1$v~Yrugt{XY*=*4oOh21A4pE~iFHgoTC$$e01=7d zb78$wk5mn*|FGe1md68}{DEp6JXYCN#Q(4(<^^XKIhHM~W2f;r=<^49$ypxVlyig` zF{YqiL!>uogav?wz|e6biJNBMZApFwjIW=EbA?5m z-+O!~(oOTe^D>nnqL0ouy~jtO8hc@tnyu_c9$``!_j9clpG93Xsc!lQRKb1-QB>;Q z^SJfq+A_HbL=aA60C1CBemBEoPuVxts2J@G@BOc;8Vv!{%PXt~$*0(LSElVK0mr%g zlNcmBLCyD#Okntc!ev$L&@Eg?ZOT@Ey|nUwHpP%fxKfecXz%nHqSp(<*UQ6}%6~1D z{#v&bR?tAzN@Y17^!l6RemYTHJfYzaqIwv-IbkuY^(TBoVWIvJI8_L(imM3fLz+bJ zIMkl`x{#&$x&u>mvG03d(ALM`I>?;F^Om$AV|Kp;*<+o#S|Ei`&^;{)=^A7+e)~v> zTz&Fs$vI~C?Pu)+n)}fwizC8ow#!X4csKmZPwqIEgx6BA?!lFYs`DK@WnHcsVEH1> z4RrT82;udJFE32h+q(VSy&Qckh^PE{P~EBvVz~r)b|K2TeIONG--n(K7p@&7ye7MJ z#Q1IUo#UtZ5JGC1f4heK-Lf;q~wh2!%Pit+2)ksug_`#@9gudmkjrMhd8?do^m z`nsYCghB#jFgai@2^iec z+*3NEVcw^i1uEWUQ9=>(3QmW?jALFcveM=4w@L}i_aqX(E#@K}tWU0$J6#AoI8~q+ z5w(Sf%8KT$`uE{uf@@z8cvU~S6Oj79=dZa$#>22m87b85o5?jBk_lKAD!K=g z!y!mdTrQi~yh{5MC-qOtSTmLQF}}$meSvZM!FYT?133lr1LQh!Sih=aD(&e58%X9c zDk!OV122D2@O#t!w+Wx9ExtD`TuyZOFavliun*o&*ClPM0xeYxT z`}h@gPV2i>_yp9q@#Js6K@4^J&;SjKAP(i?S5{2~`Jdp)Xq{DDd#b8ajmOt47S99Y z_syO9#XI-r0A-TJ@|Lfr9JDImQMt1n#G?CfdLKB7_R>jmZ$w_-`4w+-XriQ zLC5!l*EmmTo!&jzThNyV04FW0n|M+M4P&a*A1+(BiTx`hu&}_oj0To3Ri@IgB{nB; zBf7J$wz95P)m~hmSPbpp=h?o_<8P6A94<@tfD98a zCp1`PF90v9F-Q&COW(ho$LwG}`g;gm|NhG%F}AXX2<}i&DOIV24|U1qMu_cPb zVc6dAgGY|i&Yt7n%8h4~rAO^bor%hV0Ad!PB9gfq@x)RlRtcO~sb32ZF*Rf2Bq_>% zMR7~>5XKs@)PTWK*HF6dm4l7`wa;>WtkJI3I7#$kjvq5w#bFTIuU|`}~pAYdn`!zVA*rpHbuue=9BS3qWyElopp}H*U?> zA!hVqKi>*{?>Xtuy~cZd;O%rXK@VlOlmHOS*ei6tv*C4<-9KuIn!^vg;JpaWabRsK zmN|^M`*Vv3UHU6BQlw|0xlJFtn-lwkI1KV;m@xFaU{mu;#S-BEB0LdNF=)F{-!O|6 z9zy=|y?%mQgXY7nKC{GF^k4NL7^Qix?s>?oT&Fy6UWZ8=9_OxR%F5+YEw%#F9+iE*C1<8)Teyx2x1tcXJ-iCWzKkce;JU*A-vhn)UAEVPr@?oMe#}=uFc3Kh59F?p9WD#W)#z3 z_Elmcos3TVtXFl{!IX$jz`1XMaSUyFIS^FYN4$`bIfnz>75GDBSkG{|TkMQ;M!^Mj zhn%VhCEKfDOeUTMZ3kQpb%(~P8y(vcTUUDpvn}V#8FSq&B-cbZ7o5O*)F1MEbMa2a z^!EBz*KX&sdTU9wHOz))zP*`mL2IvJD^KxUDcVWRQ@iW=vTI?UZCLkCRA)crmzVvQ zrZZ~*29*7D^Fu44EM()*|3z19G36VhZ` z52$eP9|RQ%<3GACnWySYc>(p8KvxA7;f6n8MACjnLCE6MEp{w_PWlk`=o)&~xllK( zr}t4g<_`b+EQTK@8r>k190q)SaU2O4GLj`6{un!yJDs+8k$kOgP$Ud(W)Hc2a3m+I zfP<&34$MBAgY+?N!r>;n@{IzqJW-rxoU$yx{j*2WVpJ^o9H)hL)%veNOh6xbX(eOt zOjpT<3$B+os!FlyZbtqEiO`sQ*@u_lVBB2r0P^;VigjbA%POn&q2Ddim#JzZU;3P;EyR9=$H0h&Z>AeF$@90x#GWDPmO9|#Gp9CUH^_${$wp%@&k@$4B zTuLY^CaOBDh!OhHyt5H~L$GmtIDKwJY4^{xN+uwefomL2{!g~zwQo^R5n)>yw& z3`GCQ1a*UQc`Ip9<1H>WiDmv;sY-j|Cy218wSNc1yhKx--BuFNmY%XCaDuO!vAHd1 ztMIt-3;(Tpg}+6R6||UdP^?c+bDpxQonROsag-Nt#vX#82I7nJV^AGeTP=T1x)I?E zhslg#Z9ukE_nn|{U1a&PX#3HC6D7}lamVz2btalYLckpT2Le$FpoB3^p{|_eH*6p? zh?7O|Nhxb+B9F_gA%`5ZoxWR`6(PBs7`B(^<41QiFr81~b7uYWuBN1DypbM8$(8$q z>J7WN`Gobek|K(Fpy|p=$*o^wmG4(8cO-{;Vluw>H)BGLr$Z+S+{2DZ=-WZw*LU_ zeTD;7ju{tcFSOj|U1VSn*R6~{)?Oiw=>rGb8e3aKsN?SSUaLGFy9fB< zh!+njuki|cf}`z-?v6hPd^6}y)HdhRtE*|v)=tHb*M)y~t#yGi zRm0>{#bhWizg>CWPpm7+=k%`4bNjxD(!DG`8iT~z%g5v`mJ*@?2;D;Z)GOsS7@Xc} z&1oLZ7+NcCA{SZc@;C)yOmh7gJYW}d-OI`Rela#p<$kW%$^ry% z>&pM~z24t|n=~<(%y7?+P6hD@mq=8QGYK`(6Q6KeV!tnxRN8mnRbdUYfQA4q*Y6RJ zQX#Js(NOOe6q_EduIyFCEmGd3ew?^>tOD0C&p6$tySSK=ZoF0gAecAzUyQ@0^>b%j5+1=1aI!TQr*ARsPaK4HD>#g_#}>x7PApv?VK+&-SOWJu$__O zJm*|?nXsxA`BUi9zVN=ptBccH~gLmTZZ1swIwvT2(E z3c+#4CMjR6B&EeL(Y^jsjSPXuvay#1d-&$0;Dp=nQzBvyMN#w~zkl0Y>}Jibewo8~ z0XHIkGrz%zB}bMVSmtx1X0&aFqJKabb)b?^v`M;TcjP*G4|3D9ZW@mbt{$CsT&fEk8vV8;3aA8DCb zT4r&b0wVU-{YB*i!v`^6S_820wHfpk<4wFT40a{}Tb1z#B(;rA*IJLjmp@p4>(Xgt za>3l%$OfK$4)Rqq%|f#YE&I*MwPHx2cJC)QU-G_y!gi# zb_M$h+kzARi3S($h*-yaF(z3w`tUGF2R4Iy>3gqhd-Lsbf|vZxIKcOB`OEsu)d?e5 zaH4ImVg&j4@73A({mCf!g8A}nv}-zzw3z;K0q5Zex#|$v+c`MN15=-9AxY+(zPWq? zjc71%X#v5}57t9D>VDwtTy}9Pv(}l&b&&K#>dS0ObC-a-zV>xz)NV!wt@hYj27j+W z7+-6=ixZ{wh0OYTN^J+bg}(gu`Fj7^+Pf9LxW=Y}(^;xVg{(91#^u`e#amU|Owr6w zUopNsNf~HDl(!lr7&bw!9bYc3|Lgc|eAL$qI>;Q0nPD$+xl7(Y>Q8K5Iw5#t{tqsH%ShPFP7!ofQvR zM2-H|(ia_A=d&Yr-UQ+gAUm94YLXyv95t=z*YF|Q(f);X_qUh!Gk}S6FP?J<=j$KFDaVJqs(~j=tCs_{8k$C0U3Ul$k-89HIStuWQd)W;!}ywDlq-X;fIH^Z1PcV>d%M*^Jxu$ zA)LFU+&T9%o=vvT!glRHcjg<@63Ch9HwirDcT}-wCb%~5?jM)4UwnAe%<#UmH~t!# zK5c~ffGAOPF^ap%toHKzVK@4lG_^(Z_@UFE_-8UsV;nm{yA{gLtbt!7@Mb+F|uKq+RN$N!#@c< z`gerBdV*gu@N`7axToI^QGS-wU!E|v8l6|himl`S3D;tO-$Z45BC|XnU+oCI?Wc!w ztJ4|vCF~Z`X48L}D5lL0kf?vzsZU4A%@RujXS}J2^5Td5`g%fh1)rh1S?~MHY;Hp< zv+F3TU#=pHe`9nZy&F1`?{wu+G{t>U@5~q(u|FGL&P0mA zA7DY5Kzl3J6FKVqV(S@;`Lm@6K^?60epG4(bcEmN&bE#5PDj@54qL8*n`K~9hCZbA z0Sy$YxT&&R?iU%iXaQw?%P>teB4PYUX{=6o5HO=SNpkAv=(%tI*4@gQO;>*x++1C* zv@LO&r})V`QC)9zHvq=tOjF2fV6;|DOGPn(=i#$RUP!pa*urB$0cETUJm{-FNc0?u zAjBqEz>kEc$dO0M)Nl(-Vj4?q73!%bVsLh+{!x4E#2n5-WzN>LxY5>$QnEv^o>KaCad@45ux3zy4)8 zfj+W>E@`I2q3OLRP-%ReWy~S)_oXvm^}}P8xQ-Us%Ie@gr%zi!k(7zj z`R^=Dn&KLhk3@iq7^iXc%0UU0{aMNRq4bm;MG3t%-@_LJcN=z@a@><-znf^xr|E_~ zM9LPPyWbFgFOs0KU3zA2BQMJ-S8l>DYJsljdQ@(Qv|^m+BG#uLM>3(tyJypHbq1aJ z4+%)or%PsjvfL`oi)HHf4FJX>pnAAO&_t@YR&g9|(0U5NwnHjmJFeKjZ&c=X!>I{& zgn`@#Q2)irI)NQN@U?mh{xLfjxNd0`mj@)FHR{+;H8j{e{~>z-{iP-}Rk%9Kt{+z+ zoEALzW%uMPy=t;ycXDpF`gS))e{sU)ZdVt6e((9{TG8g9qpfR`&2r;!J$c5vl{TzK zXDS=tuJw1T3H4rR z%E)PMoE2_)`Q5QKiJ9dnGg`j{*2FyX9LEK8>o@-rOMq-# zMJGO~q4vcI4pV8Y$BR$F6^GK=cBX}{4;d9EZR-W08)wp_u3)@L87;wT!0?pSa#8Ru zRti*K3<#t&a(4OKOu+(_36+1kvg$p{b*65-uM6UOEO*0xBt!Q{fp5E^+bDJwFS~*j z9h+HHl1pKTm?r+H6T4xvZ5lqE{b>6JXwHGF0oE0bz|Q=CWNPHoA;G>jl=~33!@^tep2|5uzMw|xy&Gq^^1P#C-6?tPynQe4 z1_(PNhGiU2dsKuRMAvdwqD#w^Pu06?_?j$WB)ROr9V4-5SN^ri2Ap6{{yw`dvp<{f z9gSWWsxkP>kf!j$BxdPKFOfQBi4QJc9EaHGd?-ny|ELpT56XsuQHLXNsI&D8NHgn# z@j73{DNP+QCqg+7U{a*mIq44kBQC$3z|TW?jd}`20}%Yae`4qW!aBTg9t{t+b?+EJ9-24ZfgZ0AM(E3camQ%Wb8Sm8C-eX#(Yj?(_nn}uapy2GD~ z1}WMol>qwa{%7P5{qU(;O=FRBDaB8l?4%`%ZaZnYEz*h+o|9O6?D3Zx6uO;EmyfgU z94EW5N?wuEdTzfIeN`R~(3bCx&-WL~`AJvTfIbFLiaRwyj>mu|{k7`%nx~ZQZdfS= zu@s*v_dhMOu&gEkIrv26D{A8~bEj^SmKA43?k9@bu)@D3o4qAxrkLzU!($jlzG_fF zszny+#`nGOw>}u4F#Q>N`LsB(;~Xl&C1G@byQ_Q5*v!x0bTWci59Dx52&`g4wzjg) zgRF_e_*UZXI4IAR|6CaVe3SA-ZN&buNuYH|*NXFET(dGD0?pL}O22gOo=2K2?q3MH zoCp;*P#^d)QP57af4IvdB5O!xj4@yTZX=PVb@CXOEA|~N zLs#i#)#usw^C`T331glk5Avuz2zZ~kVzs_e%&845miW1d?iGY4>9iE4|7}PXpq^^P z`0}+H5KqB_Ki+-SkE_!QF|1`txZTvkZTbmZy%M8$;gVyPUPK<9vcahFbZ$8=9Ee{Ap|1 z>U^c|u(}yW2g&6(Om~RgS02UU*|C*_ytU7vDi~cy)0iK$Dk2c2OiHmYv#P0Cx9v?zICIBEIB*Z z-&D@0mFSe3^WOw0l6>d{~Vg`WGzRUrBT18$Yiv#nsE-7_keOFfy7D z;|$Acp_9yng!sy$LV_ZJAU1KRNE|p0_Xos1-}2%5*uE~YYtX+>!&C7MV2`+oh4nlr z!tJ^mCD%Pyuub^E-kG{j*@qw7=~6h|eAo3{tj>gvD6&u8{0?#LVrq7ANBSUOIv;R% zS!$TIOcW}wA>xKb?q+ub_FNa&HU%qmktIeWI|$Q=w3XQD0G3>eH399qura#`{q$Sc zswaLg_NZRMtcHw0d=7h2Z78Rfo++v^DvF4S%r#nqnl$w02A8{~ zJFYfM7Q2%T)aWy#rDP~{6)kx9;UIq)z#2sBoZeHXLtVRNa3h*rRSZvE8&Mt&)7)!# zrriNqKIqQx%nGWLl=!o)<#=VD)&j79jx329E9D79qjgfX5%okCMc0;vPF&N4^4Hv6 z3rhw^qSllSGw(KL*!Vm4G?f*P4KBvDP9a0d7pignjz7GEy^LCKrBvZGd}or1<7>_U z6<7r@RroDaE_B@ocV{)oP+8$~KZFfocNSk29E=+UD%T@0{3Zz9vFy;bX7vB}N!AYx z3>1Lnb#`UX)AWny<}WJ9VnWwTa(oNf)rCkd@%>|)HU8W&g?VSdxKC~`HuQCM=KTeI zr%#n2SFpBD+4pMgKc(k|m2V`livhGYT3MZ0Q~mOWc*Ipmdg;!+Xv7C5ASq;GB^M{{ zo&>7~W&#cwyW5g!DdlNWz?z@sutA{04Su-jWxe+vm`#`akO(S<_}w!;4%@~9XgtD( zOvCLz`3l*mdBc66*e(fj>Yu*l{#l<-4~q z7TBQvTvm0fx*`r(4TH_v9}i5`3|#m5qOu15WG1EfGqbzin;;O>`Ec!?#uvSf30ddm zxJ)Xp;47vH$ymJMH$YjZ485>FVzUg=&u~D#_+(ALVJ zTJ*T$U0nB|3t@Df@roW7+Yc5IGStOc$%*G@qU8oN4~=;0zy&|)T|Jn_D~E> zG$`!Y6NNypbcHE9Gkn&g`rVF|U)dzbWcPltuc(s3)?HcP!_mBVqRiT1DU7h6w0eB< zX431u$R5o7M91+$11U0c0g@@P&eg-Z@~1;3Q_5I>8ND{IHu(de`&i-m>-JXYQQQCm z3=5rEC=3Nrqkxs!J9^irjjzy$ri@3bXv9RZvVJHRXp%u1n<@j9X;ZPbc~AkFVoCKb z9Mdt%pXPW7FS8#JVf=+YVIaZ5_{+rmZ}n8Z;h7Lqr)d*^li-hR`*FyP8LMw z4X;pCzwkJ!-`?I*Qg4*nk7f$n+5Ip(SiCExS7)7q4-ga4Us%y52fkS7`>#2V=NAk8 zXi=X`X?0IV@U7ON$s29kX_4G&fe*na=@-ewX6?rxMf~~{iQKT9iUlO~mxdMKV=TGvnCk6}{1 zkdvhsQoP|77pw7Duq0P7Q6}rwEGZh<^O~$*Um#a^H3Xl zO4={S+M%B{6Ul1U?e2q9p-h|<+S`U#3M<=_b}oEh`K6?=BUVCo$bH`h z8kE`b4NuB(B^1uz$!jA=5lt*6BOTXEz~6yuH)n-29mW0IF7ggtnms>WNAwTcm_jat z7Ph&Rm_eJar}4u}2h`5k5n;=2Rb)SkcA+?hH7Ptv=ASM4-B+902xJxELvWm%*GPV8 zI6uk9tSR%==LAM2?Jnke7){r%907NWx|R<}G4ggz^(Yc$rM{`Jvu7~#Swe7r%3QHf zjXJvWdq^rzdC}y2c9iEhpA6KkJKf?bRTDlOZrXtMHjpM?VE^A05u)lfYIv{tQ~&*) zx#utbx^m^wkpu1^%q-IKt_$s(74=6%NNf}2BtT?6SbSXs5^cK$Y~YH|V-r0VZeHR& zBEDtb(?2}w9;NI=Mt?=Jczk(s!NFmWx|Om$_nqRNwaoxruWFK?^~DtGxPNEfG4Vgi z_N)*S@2NYXG8{kGI?|px*f$-|8C0z(2||-LJsxmwLuvw~XQl1YuV@MBncmnTo7&@_ zG>C^bj|0ddbUfajjJ3jY3b!8-7({HHBmcSRDfntuyMZe{nGs$BNtIVR`zJ>~-XwWn zf?t;8Q-h#1jW&1pvucRd_if%%hH%-!&diL!6W`Mw&B`kD$6cK7SliBu&@G<9KBBhc z4V|f0fph8`#^4DO<#|1Cfb4G8NsWC(43f?x*oKip zj-ftN;9sebK~qG3SM`X>q@zlvuC!UX(G ztet_Pb)oL5O=_YP-U?`GES~692RQkXKX%`~M15gkuWG62j)WP?uO+-1rtq)#A21!B zW2$0OI9XomRYQQdJNMP;xVGv)l$V~VU(}eE=DtT3J#BgO;q zwg<}YS3IiTB`j~h4qSsVUtVN;wyIFx zKjRQTSME9q?d^3mG(~d=@UP+8;}e3De`oeoS|(z;QI*tGSus`kq`UDfrqP>!nZbqT z+8wNQG~o98)ii}W+*y-G&y;EN&PoNt)hQ4#HKi|A=_DO{{6uOF~6=}>@H|#bJ z&VE;V|6L&HXK?*twYNteiQdCAva>L%Zy8eFXSaz5)RK06jS8M&c_0V*$%E&M%>^+)xoy4U0Wv+Mkf+WfWfZwG>OQ9nU)c}ZeoY_g`$DYbLaJEG71#bINh4-=1H z14x3u_-ah?)wfXZuWhjhKNdYL3(a|2zSV^AoR|SO1gIBJWBPDc&@!`BRF){j4GBM& zEjPedEp}2V6dogDiIw!Y4LFoO1l6aq|tlED@zr);`Y>}xsQW)o7#$^Mr;%#X;)!91++Hq zhc8NN9-Hgls2R$l1}<`|E(0Vg@3zsmhByaFg7H-H+eEujR7YKln75MKd68GRPQQPJ zcIXJB`EA;?Y0A4(h{FACRjUbUax`@zqn$#*GQ1i)K!GkT`wSH+P9ZV+^HoACEP5u3 z#d%7HsT#*ctBbU;Pwd<;@u$c`YI>+o%mpO$^B;XWar%v02YrlxbHCc1rw+{OhEmF( z^Foyz)pP1&l{NS;*gDg$&G<+Sl?Xi1U{N$BjunPer+aZXBG82aGsW{xin?w3*ki9j#W$gqW>Y9gZ4D7U8*Y8GNyzjVhpLg)kFk@WQ#Xx~@lLiMvymk>!4h z1?n>P&6vjxTXui;qr$M|cU{tD9MW1wi3-W~_nZDp3x_o8K_nkw_%1@5MLdw?#&Ttq z>=VbkR~ms3ikLZN9)=VvNRF})82z7?<==ah@_v3nEn;pO#DD2fy|B2z=vzW*xwMx% zZ!YyWI5E^3C#fAJ`i0yVG;KhA(G64;bvzf z`0kTFh_AnO?VUYKpEG}&Pe@-?_TEv_#!gMwrLv?v`jTr?(70f7eB#5i2#d@11K%ZY z$!LhJ+@oNy^eA?>{MGs1D?Iv@({^LwG2}EaW3}1E#26(y)8d`)-_p&L{7K*^aTB@u+g(aB003aPaOAMAL~(t5B~Xc z+im^$9KBV;susxfqYFASN9QY@xFDyGCtZ#oqG>-g4S#?&3FF(FNGHZN*2OjMv*}B& zJ(%Did|T8do8g8m>e6t5qdPcdp#p9ugz{m2g6RttNucFdjvPvcm{$6S4d?di{Ly&f+h`A%Cs_#as#;t!xqbFut9k4HcOo#yt<84|V&i|Gm3X_U_X9 zuXw_F53lXlM>5|D$`k&?r*f@RD|R4~nNeq_;bD3T=)bD}?Y|y{fDvWovZPinb$Zg7 zj)9kF1MSre=%f>jFIC~h$TRpP7m_e9{H-5UXvw<0=&)7SlKEVr55AH%&1g^(&wi)M zVznQ|^pvPaAd=Vd`y4U19C#ntmSE#{({(Ul9i@`8BGvC8`oa07Iz%Sq=C!&d8r4c( zr+X`W-{r8@czb|L+1J|`5~5gPF)E8w!- zp0GO38mQI3d2nmw&IiWBb2JmR?EMZ!*FGE^~Me5jS}<>$ngZkRDIPlQ2mf%t+Kza-L&uHoX~tE z^HD2%_Inc+#`8x1UwUfjGpG6Wv~!G4mi)xw4oJ!UZ)WJ>5^C~0^=yxO*4By>I|odk z1o^gv9jK&BOF!4qC_ioxL63v}9aa9hMJBkY+Kh#rHaVK>Ik^c)shMoZq*%&T&ixq{ zD4^+w%cNz#w$e&#rmjotD@jlE^cur^cv*I}u1C%1L2u;fN_xR7-6MRvFyaLDJC%(^ zeb)=~oxFI)9J3WNX4n2zGK!zdbxInh1--cCamY@o&uxes`x=xdR#uS9?8=4N%KXCG zQCn9*zQvF21>0DYErpju1gH&VQ)Mhcs1)7Zz7;@6?40QO5~_ zN$Q?80>>-UGx~T$*Us|u7!&9ZTnaV*bKG(bKLscX5|Ff$5e!`+Wv+Eh|4e0L*kyBc z`>bB=xR34(x3?ONHtCNC`t)z&udh(1Mt=PE5ghh|Zs6#?1NM3FPUt^%Xxurq|BhW7 zJRvbbYW!B>e|&F0naj*uPdZCKw>GUSKNa@=slGv=9icKT8dT%hJzu?aF zIB+sy1$2`44`XI?WNnXw3syY~dJ$i3^fNE|kbxKPe7BDi63QX56Opb41B~ND88PYH z)R2jS%RyjF<*3O`?9DXUoL$7Qym5I(!$T6H&c~w~7wrxU5q^|C`MKIq0atkTGnAcV@O~Cp=7-gLqYJcnLNwo3EGao7Gk3Qs&K4jWY@Z< z&RUGXNf~{xv#0HPCAq?iW&jm$^yiFTcT@CCsfaBkX?v9#E!S4cU!NPSNTr&SCxKEZi(Qyft?bO+`)#Bc z+E2~-fy>`=Azmkya?2c6Xev^V!J#xn@rVw{mVSH*ufvHj#Lc`C(CUS}c>b2=nH}(Q zl%*?PZw@HI@9sYIVX_u2TnCp;LY1h(A*4|A;*m&x8uNKc`KriX3Nnx-;wt$NJCa+J7j! zws(BT*A7Cv_RgO@*WZ}0-^(!H{WJO7dhy$CfUfVVX!);2j+VNQPr5ka^erRXH)1hF zhR65j)go9ma1yNIEIr5f-;$~jJpCKrwuH06#7;x_)=?bhhbKmd@Gb4FGmJT)-x;rF zZ#_WaOZG&hXaf%xT^N zUq3szaPNAfyhzfWTe#T5DlO1>l(xR_E)%x%E3e-Aw`5iM@!d>bqU*oRZ5aD^4Spq^ zn0VpGi@t?CFoV5nFGzdyD@GoKEP6>Kr(Kd}I*DFY2im;9bDhzDCj?P-W40$lg(&v# z9nz@X;O-OFg!wN^h{I1R@L3dFJKc!s_5X}o?08Do_q6=+H!HR5!tv8S@DJ=9UK<#l zFcV@j@-UqK2=*i_9P3y<&2r}PXJ&gJng?6V3NaEtH^}Cin$#9X{&;wid{`lK!zErl zsa<3ahb@3b4v)d7gd=Cl9tIgSWzG)U_bu6WMgHK6OLZ1QZDUG7ym7Z68Z|;%;u~FX zqQ-=BGZF1_X~cOW8bgh z16_lt23sP1t{m_A2(8~T6>n7_qb0@E{ko6eAm07N<*~tF?zGWA%_bX@IrYwC94(=I zB$`6aI4VgZ;}5bK-_G0Yx;pa#7!}6in~w@XWDS)VBB`-ZCGYV;>H&F5LD#b*t*@>Z zC_L;gpQYS6d)`gCW){?$9%B)~GsnmQGa>nZV|~rR!lMf65R^w0w3$z*3RB1V#G(NM zPI99Bc{J&%uc7HaSutK^;G>49#j?d@`s73DvtqEdBCr`Q-w;G%>*J8iv+E?ixHKOM zwvNSH&Sh%MBeH)N*clMnvX1GBnDz0S4BBV2Y;*Up@@WPe=h*BLsb3axTYPh3@;!x z9ZRpzD~bMTCmAp)6_PQ%Gpt}xt4%DAngO=&ng06>?wKZCvue6Gc;54eJ#Q&i_^ z1|!-MIz(Rk=C@qy$o{RSSSMDan+ij>(w&(oufVM5#^lTfDZkRGJ-Nto5rZGWYNE}w zPM|)mCiFQ44f4|KG(Oocm74PIlZK$1kO3t%gwzZ`Ll8VZ05Bnb!`ytpzBqzMTl49i z!T2MIwlVgz^fHOk`9h;b}ns{FEbnonY>pI4Yp{R~MsVqN`)A{)?n_IO7_3!SJ zip!Y1*;~SKC@RWsyck1>vFqTDOd3T04_$8=6xY_R3qzy99fG?P+%*aA?!jFGAq0m; zg1fs0g1ZHW;O_43?%H?l_dEBTeQwqF3ks-eV2wG)7>{*E)%Dj-!xv#u5{EaPZBvbXKu7V@kVkEk(3X+r4<+q$T(EvNnj^=xGk$v&xK- zSu0^$b|R%&jq%7w=)3jPs_2t*N;!U|kb71khl@G4s|i2llDr){k|%_$of=r{W(nUB z`$4K}?Nbh;ppI1=PTE~w4Ys})&ta(O&-dYt4LGw?iUo3!%T{#zt}k2Lb*zsmGvH3+ z7{zegw>a*qctputqOg>8Ia=&JDK7|Q`;yr1BVI3uBDFE_aSLu-&1y~G84kkU5-Dbl z+gst5I5XU)pk<}7WSgv|4nq;1Tz9AkRZK*@jPA1rj3}xF$SmGE@72;<2An0n`QKQFc-VS~nApO#hkp8dgj==V0f2^m&m=SDxidM(j z!=erGyBRT&AXt~U!i=x$bac=gJczKwo><(!FpW&w6~qu!isqK#E;Kl+NEsv@{*Iy; zu!Qy|7V~7Z6K7!wdP6JK#=k^oTFT&{gw~|>i0@^N_B{UjcPHM`EE`BbDTRA?A`3#qc8r;pYy`r(&XB>wM6N!$0>kO^ucQ!Xr=otk%xjPVO=N+I2J+X2K1g`QN!GK~b;sM+Xsu;mi@yb^ve@ z#(VZ)e%vetqukz)-RlGbi-_x0ZaNsJ;nC16wl!^p(TeUeaj9zQmAz-mQ4sOPmJzFH)OzY>!-_PQUxoRiHiclr@72aZLt51v~|Lcgf550ojsU zmleSnz-E?8Q=I&lbk#j+P5$?^c$f`GZDMbslEcdEgBS{%*EfnJ{m&+oKc^P*t~e=_ zKE*2&h92Y5)0*pv+uQ_J(Wx}`idR&{4zZl&I6F#Ar`~Xhz}k?g(3ewkeAj&k0OPs& zHuJOTUGHL#;hB((+?70_ zmrs@|@$+72-nHC#pa`0rq^rUPteRZf=lIFOY@sLy`d>)Yv*MDu_DeWL1&iuAy21F; za)Q>6_Tn-AfBs%|9`k;VQ~soQ3d=n~`YLp`^DF0~>=TyO!qA2m)_am#1;0~7t1kGY zt)gCSBn9%1`^luuuB^;79(g);tlR{Su!=%R@I(^$GU-M9EQzr?$co%Ut@8x zcNm>`el0_2t6VnbeI7d2 zN8di4Z`7KzTn|SUePZLPZFqMA;8UQp%?-s5lVcam;>Si{jV&H9RrWOVO~TTkV|!dQu|r5+U}!y-+d zMM;+B+4&h6satZX??0fjJ`^O&_&sS7vO7`7V{r7oDmc2A2YJFI7|!Z;A8fGQWEZgi z_b2wcw4Y=jeA1~W^ac>!bM8iV9#;&>g9y?<%EX*lxjUgh~vUQ zGOr}2sVm1Xo*Jsg$%$p+Ot9oL#O|Byy7*qU3i5Q8^Fy%ixz%i+j6{!r$Q$ck_l@eixzP^?}`mJ?$630{k@BrKzK2RB-G|FMu(Ws znO3`fwaBXgf|Yh!4#A1dU{N!DpAm072`~ld2*Uh$#5ieKU|zHz8)x1vz7r#$YTf94 z3YS1#q;&d((J|*u#LziuTqc1(Tl)%pabk?KgaEZi_i5sp>?dg}hk>M$kf-jav($x+nldPoeUnxOf4~kgjdD zXtE&c{?)KhSS?XvVt937mI|B_=ettgi6-h?JC`g3Dd``QVG5nslEf8gFQ=&tcJ#%;JB}VzA>d3S64G}Pwalz#t)Rn-;>Y}?q<&Us1RI!rv zV+Z5`n>AKBMMp6SBA+j@pHY>gGK>~wY&jGW2zH03F3cXJdR%SK4E<1M7KCb<0U|c8 z3e!x=L6n0o6f-{w8({zizitFfc)OmhMnu7KJ8r35kPHH zfyN_vy$K7V783*9m|r?8UC*MC+z_XX@uAQTLwx(to?AQk@hGHnq3@?^6m>}g74U|{ z8COq#)~%CDk-S4&2Jf#06i%XJo1(3>x$^Pt40MM~Z?ZebCVbHJeHLSnLONSRNwsmg z6SaE#Zwiz=rg60DALv?o_FMd6Z-08$OYO!4KvT6LM?c}c?eU_@g+|*OEJO`4?d$#} z+<9=VghX4sRco`rBy~A4>^%=58}5*$yzQ_q7qL>;63Hrlv5`u=NdF@_7;K^*@XuwS z-Pz{3VDg^yq{Zo^s&QWxk{Avg_G97X2agX|m-=@B^IJy*i=MS^LVhf&~F@(5fo~SVG0}XBn?M*(I;O_rO~|{K4-VDIgxsDs7KU<>dpsz{NotjiEcs{hfaM znyDW!D)b{iK6bA|I2Nv*22B3@a04&D@VSB)sL-6INR|lZ3f9A%B862#tyuNtx4LFr zpfY$lEtVbn3!vhZ;oEBy2hmweN-5dC7?8BGwAauyk(%OnCX}wwh~=|y*z1($R*~*% zU_W3bgAPo3<6n-DK;2m;ejbW_L{bAcw0X)%?Nza3Fj@||*ZKxueslYum^E&kYVD7e z%!k=R3t)frMJy`(M!K(M%1@aL`pM{RWo$1JWQO0Fo_=a$ho~;_?3%PuL;+WCm%3Eo zixx#sUsw}0bT%?`EcQ%Z35irQCu99% z{L|1Hj&VX}o+kX4{MXgk=#EzxVysZz(tQPxo@G9w#i0LYJx%V(rhzx){O>m;3e@Czf3kREp#;zot;`}2Qx5aX zLqC0GTNXCbuApyjWoRRP56}B{w9%V^C)8Y4oyh|0@H=GpJG;ooe^D%ct@bg46hJid ze9r_jBTWjQs!lipS5VhADEIoIa@2PRvA zduZvrS^~wqgFA*icf1JWKf1BpT!KXLAKh85?)6*8OpCMW+{}wR`fC&*m-{1f$8bun zGTW|$TP`8nFc0GymMjXct;tj|{D#sOc3mW>iZ_~`d;qKHK=KX;3uPvWm&zBjJ~8kq z>L*gdoG1yGD!hVhcR_MeQJP|)Ac?>XK!Ta?Q!2WQD$38Jdf zddjFdBw>M)bj7$sIFnD6&6yj%Ju_(U>(sEi1TiErf#fR4BMdVCmQYffEG>W>e>96T zh*zBL?K0V+(MNp>z?ZHf#{6@m4V}mXeYZPZ;2;6@@Tsa4C3VQ+6SnWL2IhMsGGC}* z0&7F}?cGKP3-m_2jl*ZyvpQfwe4m9@19jH9;e+VIKsP~jsDB|vt=G>vm@(?` zZ*210zqrOdDC9k? ze&>O}E|}(TMz6wRaceNTPedwx^`N~~w_=EOF z!{Dg0b;a<wEWVO)2Q`rBZsZ>C???nw$X2v~pau9UrB4gr*A{A@aC&1R8mIfNO3~%2 zEAV3lY(e|VxNUXEJS8yEb?g_~iWt)FIT`51eE$diCc`GnezZKnc5IjJPblt#m#e_C zUJKjr353d&gSM%j+i)3<9F94P&@bqdfs)FNwOVy>cWQzN70ewT*)3nKcg@-l^M30` zh8hMVN3kYDYa+QU%Rt4zB5kiCLP6sR8o)^9dh@0mm3BVLLt}J)`vJQabUbeEO9;h% zP7RfT+}QF)i=C6g3%wypH*=86VF|3gW0AbZ|Enjv4#t=lxfUs{l=qZaEw-jf^~?mI zqVptV=&HHx$mJtraBvM_0+iE}=i6H*H}9DX?cCtSM!>ZR!=q^$*Z}oz$e`%@5w$;! z6r$}zO1)L;A7EMwqk0F-{MmWy4O#~L(^x^jcauW(WOSpp3L3y}oglKHk3h3Vh?*tE zE6o^Rt$RWSN7KA9;Xiva-(72StwFXMod(fMMM6dIXatQ*xqNCl`W6iVt*Ipdr;YKE z4MdEHjuf$w4^)e`nc?Y0v>Mbp4^Y>pzupVV`Qdm%1*Q63Q$Tl-+T z^i}81y7YH#ha9^d-d&nm03j07Hi**+Ti7OCn3fk3kqz1d^jafA|s0xJY{1y@(iacal1iU66oY3OWce|d>YQ`pWT z+}3_Fg1Rzo!LKq`p2b=WmcNcB3Ho@Epy^mc<7~fpSWiPYkDm=&42=YQfO@y2>|x<~ zTMrQET$=m<9(x9UNA&j3ASBft^4M?VZU3HmK>Av*{;z9q+z+PY2TyXUP9QQ}?7@xY zPN)9CFbkNE?KXSPVtXs`=}w^7&Bw_s$H%Ss>RmQltsw-q&(;0nqh^xww6W<$D$9=r z(d8aTF*#G48FW9i=6d_3dPqj#LT6zqCp z5tWpMap^^nXf~hHjm5sXenFqNWhb&qI1z*FNB0j>8KR`abCljbc>MBT??klv!E5%1 z=e4>y=YS~H>n9+X`2U`QL z(WPez9mvaCBsVfL9BDmi1+-n$+(z5IvEO%Wq)~HEMe%ubokl(ULj6e2Eyz?!TGj&2 zrJ+o?5enCu{+*9F;&d_AwfT|hMYQuX@DTd_R{_V0c3IM9Zf@5>|9z`g`Nh4q4KL)O z-TLkFR(GS#CU$%Xmq?R2WaXaw`fyxP82o$jqW^45%mf5Xkt}9d06lB$pCX^f6PtH` z7h3hYn)miKx0jxXBiyrP22Z%Qg+H(G>Tm0^rwHS<(i5ra5Ssl{JGAktSn`Su4w`dl z8SQ4yJ8Nj_V)Q~O`^=S>ZgG2fc9G$KCRJ__p(wreotS8DuaoCO9}I-k5}+9)RAiE}=$6fg1OP-tI>IUss8Hp+ix&LmZFn zCBw)R+txKgW++8Z9kt}QHXOP$RhQe2y0PPcM9~_6&(576;Xq`Pu&LvG@Wg$DjYUc?F9?8r4dK#lLAvJzb-ad2RGQC%Fy1(nr`x3zkAvf(1 zLA;I@VVOv&=~j31kp6sftg0jb(*8AccA%QTJYY2p|F4JSO%$f#oOF9%p#yfv2_4Bs~7ec`eYdiVxWAg(mMHi>) zGqg@O=pzFx5g`gQ`7p0e5xqS`T*JZgSM!q9z03_MJ)bQ?HG;v5ZXJbNl1j6^S{lhQ zhK!Xr8ky&%tq*TKr6t3{8p%(L<3zQ0wsEekHa)k7g+_^xk*F?t-f zdtTLj7CnzegIQS7pvf%ERYrV z6${&M!2sUtYAp*6*k(A*N@OY&F^79~yY=+jyM!LE7)%1iExkNJ`5xF3d5#ofY?Qtf z8cp*MHW4!c?9qatNd+jq8%+iBj>67aOsHq7$@X3xau9X=ER;rGO#3Jy6cCU;qJb)X z3QFOa)msIpLp@T1w4KN|Sk6QZ%VBtpx6*kxF`+*($k1;y)_-ln;DP`>=KnJMW={Xb z55|btu2-3hF<_h;LQXr9ST4UbdDYK{IcSz^pVrT;n|A3&!zm_(IwZ3;HB1H&x2a&< zx52i3ryP%tf3$3^G|dYVRZ9U=Hma!T(H}%c42r;E4)+r_OS(%>{A{sk+Y?Ax zlhOlY(NqwA9~QT!_pPn+iWv)c-h-*~M)OOGYxj7t?HhYO>_8SofZl>mViH9ZECb;Oc2$`G^#le83UJT==xst4w; z*S&=yC&4$hx)F8N9<_0=!g%Gk`a2MaXTrWH87XlUO1CDUDcUjJqvC{IXb7Zm|V<)>;|b;8i^Z{n>E6 zkmb)xn)OFGr=Wm`swetFuOAphnY8^72SRy=*m+Hz);&}oWLaB1O_zw%H* z@rrHd1{5?Ue^f9tnHALY`p^!q04$puUqw++kE}zFF&|}~f-jLL``|5Y(&!C<;EOu^ z)re0a(N}g5aEZ6pr=d{h-yQs-rfe^sbgh|~id2Dix<|sWMsY62T3JauXr1w3{sUvQ_}60T9JHkK=|a|t z<#*8Ezt=Pyqu=XHKK=XZ6Qf1=FR5~M>ls-C3aU=osP;;lL&yD{?o)X`V6u2|zb!Fe zGYFse@Yym;1xng3v!70@9fIz0!{Xu>2wd7sGk>HRkSy#= zR+}9>o0&g1ZK*4h`7K!>p0yX#%A!zav6nygLizjSV-fLh%WvcU-2WM(F0Sj8YCOAN zwvVe3e|Gfep@J{Vn8wL!P*BkI%0B;RKNPVLA-s;3{zVtQ!y@k^oS3N@jca>DU6F$& zM{i|^>Y3&K0pu;hLCYxE0g@{^q^|C9O4E*=oY9dp-gYx-TtN4Qij!U&+2NgZPgURx zm5erZ^7DNO+M}}`9}oJ)nrHIsJF=gzu23qIT3lew37!`TMrU%>ZW=#Q4ABUvK8rkN zPGzy)Op`m7VfKJXhRd;OGzKnn5+>>5f~M(NC0HC&jy1IQ56UJ^9I*rlTP-YZlWSyMNvt1uyPJw%R=B&hk7i=ngu zGeMj)^}{T|kbpHeHSGd>p7LIjh&p)yh)9TNA z2y=NJeCw2Sz8|x%0Q4+~2h|J7%OxtE+%eyGWW<4v(K%=?7H4Kj)z>LMhcsWT-1he+ z65Eaq2l5FKdcINAaN|6bAt(twtO`Xc{`khIv}>26#O93Fm&&&pFFr z3y(h2xuWMs0ZRA%)QjQJ6)r*93jY>L9sY7(OgM=-SjRs;4_OuPc#2aJBYz?A;)Kw)Xswx z9C77SYqKzL+E15ST5+q9@t(P3M$2!(Zg2HsyZL(j+5T;k7U4(@JhhkgUegG^h5Gf2 zYN?DFcNoC>RvK8fSOv}uoZbMl%K%H=0E+`~*bw*Q!dGRYm*ZXD(jyJBA1d{C+m6%< zr$~s_nDFfMUePJSIk+Y)p$j|17B>EYOsMw$!G^P&s9wFS^dpM}8{2(uH>cCb4Nb77 z6#R*6$(J!DeO%N`hmN`nU!n~+q%}510|}fEv`|Dos2^Lf_|j+vI7pY+_kR=L5LDrZ zGbG__I{j;o#^24gcLV@b8B5IxmFQV7XCoT1vdC*0s}cQ|7|s9~@$*-|pWINoUk6jpzc0`=HIspfqN6}8sJ(+s*pEgj z7eqQ&tD1UXJ_%h9!_X;;HnZki2(TCq4}M^ldpOz{B+)uAL9wVW7A(dyHGI?Gb5!XK z@s0Vb8>Rn?z2gr7?(_I7-G^WVx%WC_!jMZ|HSk#o(r@ z+^yk@T;@gSP)vu@XQuSBhA{x}>G#z-n zf#pu4bo-)D2MvL#ks{j~PpK`tc z%4Vf!n;l6Jw#}<) z^)co0O9Pqqas329S^^6FV=Vz!zSqXe zc$HPwRVZC1s2V0G(wh$hH3Oz>#C2b_75*C6S{2F7tkZbf<7h|3LC0gYT4~g$q?6vO z8xj`%5mNq^TY0t8O5~%T4z9T?jd!t*ckQsmJV5-hRk1clA8x>5m87FUTpGIUpvjjC z_GsDZW@KhR!(g|;=XOG-a{8tA1n7}#c_5Czcmo_6`CV@Ie!_rP9{_=DY0_hvZk_Qi zrRaD;gCps~?r}B!#&CzSU>ZU&Jaa(OJkNdf?d^nDwgfQnx`%tg?va&JbPfRv&xlUoG~d+mx8f`=3mf zY6-9!MlxrI$;pg`30<+}g^JT%P>D#Z(Wzd%r0~CebjtpxtobjvYlFbEVG7h69Z3qoL7Qe*uAJplrE40Un80v~!R` zk))a!w3Zf8OQpDI3*lu|JI`3Gzd`Q<4%ZER$w#Ctb4muQf|@Ej3O-P+9P|R$Mb{_h zrg$dJ^yYEN9+41KYint?XdDXZkEqg5>6TTSiFsimGEs`CqAzTD@uLo=NLTFCdCH6_ z?)bETB)st*6t}PCH*nK4J-1-kXOA@&!c}Nx7{Yx*ws1MZ<7|U)4=0MFVzGi+*A0sB zomwl<9)=i>v>-s~I{ErWtiu&`N)XXuIg;M07fo?byNh+7z)lnlR7sHge$W(RDqeA= zBUt&8SSIiJ*p`5^02@&bEglh+Zm1u&=5lBu?n0qdTuxC9@D*v|{L`iXYq9^I>Gpk{ zF3a2+MRLiiu) zU3{AI?=DG=M=ZYG+@Bn*j-;%jmG&)UiAI5m_a7IB9C5cvsOknr$wP|D%Pz`KE=CjT z*5NhsjpO?U!CN@Ot7#uS#>9G?@HMmy)q&AgXj$#YDDNh+>@Sj+LtpFYfK#|5NYs#3-s4T$poJ(J9kGvFNjz`z! zYiV%i^rIXs(}np6|JKv|hJ1T4H?7{Fp1Q91*GYo8$wLwp^2wSzRRcLM-fL@e`@~-b zx@O8i<1`<{Cg!W6@56uc(aeQH>i3W>mCHrXNh%`X&UW+5kLx7ApiZq(WS3m3}zx4*jAOIq+jb$V@v#OW(^=}xqsA6m;I-7FHX-nuU?V;8#i1aX} z>7RTXG`d-ZNuBAMS~W{J@rIoOfm}?-B?BIoiVFn-Q;~pyf{P7`Pzu)GzB!lm|TFDPQkN+6X7vHZh^D zJZ5iU^~Z{XT|c5ip>A-E7QMrj{zw-GA}kV%@u#|XFxAB(X>Soxn8v{^vRAp11$#OQ z7UXG`P43rY3&Q1qEMq{ilF{3t!xvnDxI$CMmE!>oGhXPF%J+1dCtRl>_-t*Y*kO~A z>yaSN9<+q=B1#+xzrqXH3>)MFhgjNioV3R3QVn|Cg|DulSE*aaH37OOL+VIS+{%SO(5> z{7=?8lBc#v&1ZLbjV}r-&34(XG54t^wBhl~^8ES=LUuU`yZ(P#Y0u!xHd**>6kVBA z{UdDF{jKf`>o}yzW7dDR6z|Ec>_)F?YJS>1VX8S1;8BD!Bbf3i0ZaxnhsfSs^fOR(@+a(Bli!SBOkRnp8V&YG5cd&iZ$!)&1Y z`Q5ceL<$%swW9>fwItrPc&$|WdSPJdSc(u+8)P$-(Vobrtl3wR* z5I&QCjBtPKV0YLcj+1_^2P_$XPUqZTc>X6 zSO@Fi)vaNYm`s?srZLGU-+yb+F$E=}C2D!W+?v&mOK!?npt(S$$Kbm1vVSSz?n&U? zbTgUcY9(_@zbp>x!LdcfTnsEETO+Oif*XLV067W>iu%15QQyx>f4c`LoR(ket#yE? znU8Xb;z8=RD6)e>&j$_NF5FbmFhNmi%?V`V>&k>9gFgtwJ8zcA`~qDsdH_qQQ|6(w zwzCtD&CHz|d+qDIX@#VShrukl>LF*kpgqjMZ`(Gg)W4V1fGGGMwc>b9-YKDhEOH^o z7e0yp-V3Qs9XL?Ihw^F|uYKpB914aFIYvb1SY5J=v>z{Bk?ag9i?gLRYWFKhss{>p zk80Cp(5YjvYx+wv*tRG+@E-zKemq2pX^cyY`B-liS6QWw5oj%NM~qWs1ketV4-vv z?-k^IDBY>)%FWH)6j6S@_I~(h!&|-FOarHIXpkfZ?90Rr+eVB2G0%3K`BjvWdu~E4 zzOv-Y)QIDuW&?xQpRW0g->j}7WsD6sb?`E^ezsbrv~Z}QIX-d6hV_XD!%@%vNU^+s z3vQaQLjr54Bt$+|7kq7PqhejQdN(0jYkAfo>ecU@kckwoaxhB6$EZS|sPuGT_?5^7 zaAC7k4-s85Y>tyI7wX@Z99c9%P;_^d8vV@$)a)c`?H|>&S$&1#5HUMrZO0^gBnpF; zlGjTsvNNHOnzjn{&VVKTBdre*`W7>8=Dc`sFKg^GvRGRZm(<9&XG0!=&=< zY2YO*ZTq)}qlKdYvp29b{w$92{RJ=kO&xf*YRBCVsL3|GYd6OhwUA0K`=W@SmNXhT zxvjw69adNY-2w&l9Nos(BjKYJ*c+>*iScYiH-o^u7fgby_ z=_b0(tM1&K&%0L6rMkSC9r`Q&_P@Wg6JuI>kV?b-Z@8S%0PRjaWa+E1Nu!p54&cqc z&rAWg4~SM3U#SWdsv0G=5uRk83;##lN=8C=JuZsPer#H`p7(8?+Gwt??tujD>F64= zQf1O{OpQ-q^J3jS{c%w$~1g=~-%IN?>mDeLGPH>c*))VQT;*c*6H=bN<_77nw! zkMh1@OjM>NK}K*rJErg?f$lWHER!^;9vz^*_JEVo#&d-*a%GHds7WS+g3z?QlhB^3 zy3SDSh{ZFOO3O3r5hUtm zWQEtbE~l)1220KG;IGIHk-y8wh3(skeru9dUSG8=K=RA>24CKS|5g8Gv?S4o(LSe*kfWdsQzd1mw&Jv&46jEg;jPvo zTRI>^LGN-fB`JS0NRIP}XPfw&&bTVzmeui>6mSqYEi5vDD}qkb{>FOgt|O80rJLB6 z{1+cLb1jrv1F=$}Ttd8lCWG3%vi3$Mpq!7D$*nzd-zC;ST?FE%y6!aNb=1<72sm&# z@*|jlASvmgu)22x*_pRvn7j2lyjyB~P6{l63W@TxP{c}((#TcRzs22Yi52<_7Yk9x zR65)K44gD45mMI1j%BXA`XgdUBUhV|Z#WaA%^i|L-*5k_IZi9263gTE?;uB7k}=D2 zTMhlr@$^0Yx!UD}*7>|?6g*u0q_(@gxMOg(1^S2o=gPl9y~XAlDZKgHxs(nW5#0bZ zMCAhD7bNgC!$0XXo1IH~iC7UpN{1uCSo(j;U1;0vO@}1t+`GMrK&4H0Q>$Qsos|``B+9o852OPCERe^XG(tZWOiXxG#saC$Px|L@+{YVo^AfppDi?6LRzC8TLQMPAGx0dbgD6~ zgTYpBvCE__mRy@XHm^_E``j6JJ&&Bc`=P>IaY5-os7!lZ(%;{5bj~7tq%GggOUTCb z#eaK;et+J#0KEPghS6iJT~$9LozJN6(5vU5RHvo4XI$dY*J~qNu=YnC$6}BFV7*tJ zTAGyKe>J=t>t-skwO;}EoHOxClwrcR-TO59H1Vn&+L+}2Vt@T@o#)%;S~VevA|WB+ zao#qH(tWcwezVs32?6{(LJc2GIRJ#2CBBxqR!fSHdEWVq%gil}d#w8f27?E0Eb^2+ z8i5Ic($KJpjhexmlEpCB%``e`EN&#M*+rl+okd?DAB7gTaK?HvPIVId`nj)ri zC<>xx(>&+@U9t9hzou3*AKrk2hDS^@F;+1Np4Eudzr& z{}W08U`x2z)A2+7%@*%B!^cuYlfA3UuLP5aL`5`$TkT&1(Og!k51TsfRsm%RBCP)w zIpkpv#bZCFwVK*+=7r+PBL0$4!74^=@AL! z7&klQx=t|_ytY$$1htHX<^H`t65f@XOfhEG4gDV3dXKxdgekh_W>@kyP}^6lL^!TA zLq=jNbjj3*xb%YH#b@Dl!%AcG=9S-E3(-Ou%{1E0jNWk-(OP@d*25@iC9*kDB;%x@ z>NYBleUE(=CL(9CNZq`5Wr^sQ^2E+$p6or3r`kl^;Ip83|+U&j?Ja)&IiRD_@ zULVauh#`%i*4C?b_~dQ^pZ9WS!SUCvDo#ZTjoqSCqIb3IIEp-^$thnp)Fmh;&1 z-N`VI4{afs-r%0aa9Ey>%s#4c{1fk{?UifhKSc}TO%uvtel=Sj;q=O>MI(YIR|3G!mn9M&2* zuHu@q>^wGYu_oQ#24l;yiE%NZ$vgW;+BhaP-21oznpRoC|iMMxPf7-W1XMT46jU@CVmsB4J&}oI$Eza24 zD!FM1ZHNt5^nB-fo7B6)a%6&t2r|QjK9LanSK^=;c{ryq=d0Tb!+eAp+i?5IA5vwa zM}uBo1C6n42%Jx@E0E!ayAD4?%pWSpgxN4eW(z)T3I302!942a^UdgcFHGn~n6(9H zGQ0IG)6nI&n?|T;UN50}_&=4`eRc~q)@|9rrc~sj;~FhOkmHXtXfBc%qNc2L_M)P~ z5y_-|AHPIlSV&%MeQw7)e!TwmQk$IB;2^%h_BAmYmBE6!G6wvcxkd&<^D#o=YGr_A zcUCujOlh8s)L!VV?s7!DTjgR?3nl#pMud18-@BN8q43jgwjuXfQ1RJ`8a}Zyu2+Pv z*sN5c^Uk;MuYVa+8$y0F5A|w!V!cAMH!n$2u-ua~JxV?9OE7gnq>_sqVIq0^{jw& zMw_?_?mg}g^x}Xw;#V+>F&N_%Fq*G$o5{}8iE-7dX}tP(*tQV>JO;cwq~Tn z2JB_%OQ50&+@@k5ZJ>lwM%B^sxV?S2qokT33o@CN2I5cM8ML6LVFQ>TcN-|`3E6G` z`I+ST?WUbidYA&-ehB=iZdlSrj($MHn27zZJABc|UM#wVHd!EPsarZqXv0LMdWv|kXb_@JoaQQiWS^zVQ)#4cxh03zvJ=Y1 zJb@QZ)q?h*fFP=M?dP05v>|w}ysXSW8_$hb2$PM^8f4kpVIT0oy0zkNJVF{g+Oanp z_kW!`{FE>clG^`CJnVl33fJv9qb=uFr0`$aKifrKzg@O5wHZBW$N2^9R5h658f&9{#o`a%Gpy>_!9kF}P?e3E_~Z_)`nfn zxK9N3@L;2&N=U6vPOT2k#OzT-H%iyF&0BbSBqzt4SNY8{5W&(J zEK}+=#pwOjM6_#HeugZ)ELwauJ;=1fM97x!66Mu#h8A+7_D@v{LZr{Veh;Eg?*xXP zk$8=i5jPGbxml( z1KIB$Bf?y7JwH5e_etOPK)6Rq1oM;w;&_C&x%uzq^LyN6Cy1{%!9-n?{GQQxKP4>T z$VPwuPgz%wW?%)NCv$FPtX=ewD*f;_wyd<4|6I=X0UYJsl~9}x^ki}_f>nHb;8@MS|E39m4gA2%vL(Bo$r+A{I0uL< zb@>jqOh$){zq~AHCfkANVb|;wwx{=|2cDRryu#MtbujDmM_aIoO7Ck8S79S*jg<9j z8yW{yOKv)~%ZMMPim%k?ygAVO%sBTg&2JA9V9AU=e*vd)g zuO>6`xy&%Czku53)bpPu0LVM0_(@(!czZ4^6f zGUqejM_%ZI{@kO%N-O`W7eB|z(v8W;J~TJq=kEZrsnMD7;!bAZ?>5G>=hg#~ZpoD~ zdI3&zTp3LxWwpVciR=io(kc5AhbeNX;;WFj?;wp}A#LJZ>Na}67@_=g%OEK9*}KEQ z?E1dw>OSP$+n5YbPBTE+1hNqA^q1b#MrAY^7pFq0EF*PhTJ7@SvxWPP=n(=^dupk;zw3O+?yY~!D_1rA!WMMu(~S&{qy;spI4Ry744L9|Ud4ruig1b{ z=D~9dz1UooFlspoV|c|kq+;oxQKd7Aet)-jW}mXh@{D4dzqzIi9@|my6RukmxH|0Y zB|;Rc3bPO-J3|(5PN9sxvlqocj0Z04$_*J|uGLukT~}aiJvFK{b*+qTa9jEPHT&>R z!c*htMU6T_{FB^yt5K99{Mp2*N?_O2*aq4R3stA08N=n*3nwecUZtweqs;17D1zC{ zFX^Vh^tS>+z60nii{d)bFtD;4nR<)ZcCuJM5d^VZrraHIK1uITwNZYIyI;K>=76v1 z$3s~eleg@Q!=~5XU;6*_5SDE0Z2YX;7K9&S(Jc}1KMYfv{1#!rtk?X@P7zC%@ED@+ z_I$W=Gcz(WQsG_kAHnbQ$d3G#d+*htxyBn=r=?L;%ufmxO zM2HJ$d&94+*1I=9xs~7E!&LS4J4ST$AHj@(pY+ur?p8N_t-Cc4CcP0}I?@i_WC!1b z4fbz25T^B{w-z7csC`(P?Wg}h8p~3i6OLX) zUFx6>B^{(ZLLH37`G3zbHHv)#(6Vy6VE z&zHhvb@HJ&LsFRgxo;e&{SVDIBM2JKp~rnNBSg9xwvZocNR1Vk7aH49JfLI22mJ}2 zw-YNM6!CX`%pr{T_j37Ox12#;c4x97eg4y&xne=u{|Gn7gkDO0kpucBPn zRq>p{^CX;yY5Ic@dgU&N<)?xn%oF+CdoK(zt)9H{<)81ZelLBU>Be`!WnuT(q;pO{ z0M_YWJu*AI=Y#vrK|p0kMuDzVo=UaRzT*CiG7)q@?lP?*Zlmjb_y~3dJS5fiY;Hf3 zXuvVOS3#>ix;*=KC#ve<#9mnIYch!16JlUG*uY6RHQ&x}^evZ4YDJ@+P9eVixtwV- zc440FmAO zp+WNhL35T^mn)-TJdKYM3}j||;@&U6L~zswlSO$A)nt%~B1V(M2y?`aBO~UCNlQQ+ zQ}6iihWo4_;)w({I1U1jZ{T&9buv2S)nLfs0$5pe<{cb|1T$;t^BF7NmFy{&kvQhd z{x&ah8>02JF`9PhsQga|tD$`|(V}H@CIvACr{gPmb8|hP+wvwRJ{7}Ya@vj{zVj)B zz`r(H9Ph0o1$jXxV|q3YR)P;k7O}j(G88l#??GyrU?%zjk8TH<8aecxTkImdCa##Y zC`hzPCNrpF#(C-u#(Ix^Px{x_6;k}g9{9kn>ivg6{amXNc48XAi^Yg2triA5l~@gd zr${a->suIELlQWYg~-+K4oB$1oi!d(L zw9cAE8{<=?uq29+YZp;JYDBl3x>a)dtcx$^k2RIT5uss~W!cExGhK-I{_U)JcpA@W z;D;N_gxng!$zs+eZgLPtQ9UgRDlg3>=|&c|)?|L8bNPPG^3HT>N&ylymTFB(7g6{; zJ&dpFvfVU;J?{*Hx98wrWrmL2RTz2TNK(SHKm)Q-Yfq!6OWma;|x*|1mD`=n#(AfZ0 z4(@=F(uIJLt9$Tr`m>he-lm_{9f~=u1g}u|HnO->yWaR^F zI@6KrL*rpk>xa~5HuG2z=Y^(g$M=xuZaK8AywmJlF+QFe&YdV|+iJJs>!qk+-9OM> z4SnY}6F5p$o5OYu=V7rw1_ev;1I8ZazsWIeJ`uch$k#Xg-Ci)b?w9zg|8Oi=s(BF1 z>!fV%b(l()R0ZaCGd#nr!8>yJD4Ne^19Dh$Ig_`W%&LiBzk93Om0ecCKWc;_R%0>}{IMiV>7zq1@D;R*Rph)&(ruM~uO%oDeuagXBq1<*#1 z;e*VA;g(l;2k@45N#|F6v|SHxc|{lUb?u&N(0myaP3K%2FqCp^dK+ijimcr=W|k6k z=ea$1qP-8^`vt97S|wFViOrNBakE7(iM!VAZMq;vy*M0`Ei==$y!Xmd;+;r^%FOOG ze{8mAf041Fi37DDN*F-WIdq6ZT$mUxt7=D_wH2nH|75p7w>Z7p6!{qI^{XAEO?I#1p2i~0xKkqDopW3BCLgzBR9D^JFbBD!m_Xm01i1jA6D6;8&3TU*Hp#9pAFY+)`6HBB!dj6WYAG)My~cfVE4Q9 zpUT@7dNReDxX-ShU*#>{u`xZo4r0PVPxk!fZkIL`v~)9$C-fbY8(#R=uKF6SU%K<7 zFDgJh*rZ;#M1%=7AXcD+1CQqFClIX{e1om~m0o#jl?Otnu{)Uz*TW#0l;*~yo}?1* zcF^m4I>*(l8r`|w`!2{uvsv6f5L>Q z5`ET$Gft9VaHH&Z75oKb`fRsJk6=c{+<9jXtN~DuuCw_#&d02)X@-W-<`9f4%!lnZ z3}IEwS6%KoXSR7kr`v?_x+q*RvH8*TzpbSf*7T~75tE@A40%}9 zY_lu}L@qc3y)`!Huw#elFrKHB6`yi97xZY6YSfQ;`AG^Izb|DDg>MTBI>-+dja>{m z4|fSah3pbL=}LOq+RlGZdQ@j0#T;sRMB_!SIi*Nhlc}B+G!bo+^|n{N{_@Tk-RwAv zq~5L`hPq}^+$e^xrMip5Z7dKao|A88RI-!#pTpX=<^7FLSH!_NAw`7O3KS{5-tIR< z|10-t0=aK7vD=G2GEu+NMN~gs!$8et%NPz&p_3&fv zr04m*>O1%(60IQb%&-8#LFxXpl7A8dQ~~FkQ;&GgH?!`{`Die8*%S)HPoH{U%&SSV z-rAU#0EhJ@H=A6tNAs6SJ?Ym;fd`%6M9jkx55~KhFH@~ALo2`rdsxNG6#HDusbazI z?6m5E0;XX$u+>$R-BM}F$E_&MopE&Jf`bL@-As49Pg)ilx;uB@Q(rTq_6dRdyUvZX z>-G8gg-;F1t@P?@MrM?F%#n`C}uy;0Ur`1h*>pZyO1%2j~TR` zQoQJlLMu{6suyZaUbR02^8SeRoznQ-cV=j9%)!gYFRHB4uUNy=7QDyy{`<;X}j!!XkSs+|sRmOxj@}+uF{A1D8ag+R+@&dNr>ok3Hpf)sgp~B;XlwDyG<*T)ym#f;+!9`#VUh@MEHv+&-zuq};x} zkra@mg8Kr?Y#-9@e5f0en6k%6o~UB^k3Lv+##Lgn=@f(NToQI>zwUp%i#Czftr-T% z8o9WugGFWYrFS!b?;(wfNGaZba#q_X1whv?eD8@1(in`bF3@84i7G^(xxmwA9y&%<{&}*o);hfS9WT8W`qXk`EVPZ z>%7B#r>jxTB%#~nU(-GLW{B)H$9E@n`dYVV(>itT$-VvXw2Au1_9G@|>3wgh_dRCh zs#Ys!8Fb86*;9s#f;~8;JuC)WNILRQ{#jQ3X?8y1l#;MX2zgDu_X}?B&O3@6iNVh@fX?32Zyq&W|H>RX<_CJx%Vytk`CkJZNf zi&W!N@O1wC#YPwG&3O{H4K#RUlNw0NrUH#IKM9)A#?<=Ze<^JE6- z^X>+E2M%4$_WAnyZ}rzry1H3-r-aGoV?f!~uHP}5^4|O?N~JqlgnKVaK5l*3 zUFDXU(ee3csLM1VA`ocw?8iSXI3Ypyef9;3LP%26H-L9$^57ULC0vsu=dT$o3c#RU zjrpj+I2xntjLIpe26-&}T|62NLja~(F~ufn^x9*M+Dkc3?ST|_XX#?`-AsY{1MIu< zlHE*}ihj${ZtJh*f@MMfV8j2Wxc}!@D+fb7c#Wy^$vCdT6yr>;;+o%%b|YPucSXGe z>dC1m-;hqU`pmC3{$aM31LnGKAL`XYM;)Gs-6OR)Dz!K)gOOc;psXx3a{0~YN~|!% z?^7BJG&v7PZ8jG#WfBu(vnG>WEOLf8qcH4aMa0LlFfq|TdJ3;GduMS56gmVFHe5f^ z6ZF3sE&Sl-c;EF4<&4CmuPCJ+nYy(4lB}oc3bW#*6=45k!G(05hd++vz9j=;w$qlj zqab!ACnfgdnMT{yT5C4~BHynDDumYXbapd!8sa@11!}gOR-B(fw|2x8={6NVV14>` zzDN6~WMWElopUqFW^a@@4M&4L2EhDIY+0rJS6n_*4wtDO7 zh1nN*J28HVq>GtHXFaSLL8_WVwjrG)bQLG|EVj>bR?tWpkD(uaq`lERidlVyYp7t= z0)_MOWIG#ACxpV)4e~TxVn|Z9O#iYaQ)0YuJuAeZTU}+oIx1M;OYz z+f}TjAyA5_d*S0>Y_5fHpv1=X6rU0`YRB$P5pub)Va4;%3a<^ryr_A`D58)7rGNTc%rlUbI*b|GKWkIPT|0s|4u+CY6r>Q+(>dS4*ttRw1t7j0Ut!% zJPCZ#QXl&f}$di$B>%YHIwE&2A9#D;feedX-39@FGB zvBMf2`fQ}(u})Z{F(L&jEzEw?gD9W;s995A zuimn^OU(TXyjAKQ8xS<(AX0 zyr~q$*!B^G6UmAnNcxr0{wJ=n@^W%>xd9OKVv6rD`-1>(q#_Z&hK~oB+&*G@!VZoCw6n`-{co|r%hgSMZcKLMre0Qg{DzMH4Dh9-#LtoNb5Okb0=thz^9N({R=$s-eN!Vf{{i-CIv@ z&6Sdhi-+OBOzvQEB>13KeE>9>!X5S7#3cXUAoK^g@}}j;hG9@*!8kDDo57>Tl(qsw zp5#;TiNO`Y?>BoQkf2|*!;f^qbJ6ZB`YXY%lTD62O(m#pO&-2y6V3>A8I++v=X`!6 z4|*qWWtaE^9EYZL^&C1YadYIt34zn1eBOS&3x3PNk(1WT{`?ltp%<{7_{kg$=DSZC z(56e%9qJCodD73Z_eyc!bj?5=;Q+uEBd)PUG)1X`UHD3U1Qct^s8RTM5>L zuGSTa1uCttg78XvjUO28!fhHeKIn;eqXe`!%FVVtF$QV}h8}Hra*W|JT-9}OEi%yk_DNkbZR~v`Hfz-#j>}zh< z;itjECw)670FbM0Ov?SLg?*mebg;m`EyVGSk-@AthRPwR1lW>8jjCNb_j0Ti9!C9& z8^61+!aj$Ua=j+-z1X7QIzZ|)WoMaL>QnotZGCBVeI(dflD$Swqmb;75ya!^sZDH% z#Yphe-V$DhPQvmE(wzrzd~hdvaYA+nb?Zv`y9)dvW)*!-o{6sjC(Cjf<~s1VEQJ-dV6>PHt#rTTUe~+1>sAq0L;@G(fuUmGW6Yrp?>LIcWI5c#v6ergE@CY;B}qzw^*#Z z1l1dG*sRvOu6Jo~icfXt)R1Sh-HYa(haqONO$HBXPy*oOzrr|eBP>V|W6bin*y&YN zAFI(vpDRL-D92sWqBRj*sY^adDaqNFBVqNAJpJo~Q^}>hZIs0#UpQey=7RU7-v`sb z>VNS0GbY-91|Se@f&8uq?~(nq=11|b5}M=8o609L`@$Rj8L{k7NLf<$O0w9b^q$oZtJUhLLsGo}#sC;9eUw-YM(ugq-7Iv-^-oaA8fGZz$NjVJtJzi?P5^Q_!4 zgWF)j@_3A8z-=`3&~Z_PcN=AnhY`(&VWEu%vZ|MQDOd>7c2(|kkx3Hm>lNvTvituY zllniSizYq*dIYbSLaxTs-ro%6*^C;$+1YRr>w7-ed#zf18BIU8y7))M>0SrgvkuZ_ z2Ez9>S(Oa@T=A2_$3G-1Ja=^_w{529hmu-{LkPaP+d9j#%NQt^T55a!!(=&O4C->WeN4Z}nwq*PMmQ9Fv_Ym!IQeA=0(pv-L1Y^H_ld)GSC+ z@-k_6-DS1VZr$G>WI#^N_Ll+(!jGO$fVLB1aW`}SU#WyBehh%^)xB8Nwq^pb*(|5wI+QZWa$+d)#s2G4|)#Ruzt2I(~6_s1c#1IwcXX~2@_b=&qbXNNlo1*9!{ z!*b>Q=xQ5<@WO{Hed2e^EXM^BUmpt}xC->z@|y}9+xl&YB?uJs1`HrCa&Y3se3=<1 zHwdUhXvH2E-d0$WlyQgqP2MSM0s9nz!~vmW?Lo8mX&IgEHTy+ylA|!hD|;&`dZ67O zi0lgDMqf9A_m$H1;0dO1Jk3g1_H?(rMw8;joY2l{H@TF04|m)O^!T3?ZA3ZCgQ#@O z&^oJquLi7-h;~BD_qo82BpOrsunxQt;#!@2F=i1jeD-L8ahkf?D%(4R?}e~#4E%V#7SVC-sCOMT zntV#q;i$k14Al^~MtA*{yXQ;v6CqoNDFKTqX2Rf})tR2QT+O9%7D{NcC=i4P(H2wW z85|1Y$eQxU@=^0*aj+uk&~-|5X>E)F!al+^hJ3r6Sf`bhv238i2XEq3UTHcvXY ztK^6!3dj?^6ik&NrMJLSdHa1+qPCB8O9_|Uw7%W^j5ef6d8QxVxeDQ#+d9bvNxR(q zQ_TVPF64yoOT}ym_e9Yx@cx)%i(;B)%*nIV`*wSy^oe4*qDeYSa)&ZGH%pHsyHt{Yi6O z3TPzGj48b&WEZ|kp_X;vzn0ze0Lt}x_wxI`(#&PNp?SkqU`j!%)aIAgpzg5++TbmN3XN?Qe!Gk1hC9t0vyXV3l27Gc+tUr%{0TrfJ^*((Qf#vg8rIiN#LsfBUgF&^cXI*wi}P|i@j|vDDo2TceBtQxwWZEeHQ4R z7s-fcnkLC07j8e92B^YFwks;BrGdlNb)svP;BDP4d)#;xeo~cZo!K?$G0xh9(UY1!7<^w;^rmdc`Q~u(Y z)bf(cqZfIm$A9B2gbmTc9P*4IR9LG2)R2dni{*9ov*s;r<(n>=@ngpB1ULGHpQ1LT zl!&1S%PS?HlPAG|wn7R{O;vs)1nmb}r!>sUD>=$19tuTT%Pc!&Mw^QeHVTjZ8DHP& ztI-I`%Hjy4yDeE;LAXE2)+iT0BmEK5wxPZV?UAB5g0t14IKW~Hkt`?QDBL=i)vhZti_H5{ByjG!i!*zT}sg&w3t5z)W zTIz9^VtilD{Y8t2Tgef@%h@1&c0pi9wD`=Md;kN_Bq%hEur=+oy-PGLL%j0)TbUJZ z>sXnbZ=*&VXZaJn&U;f#vacw4)Cg19@Ryfab?SG&o}J4&`cq#4^^XvhTlv+k4u3yX z6KA8!0?lL_$x{G@JFS+5o`I2`_bWXwB|RG-D-|C-@qf7CY7wA{3;sJ8Wzvk9pHz|7 z2oMv)uY>sw`$Mw6Y5_L|0m1keOyUsv)1wL?S~@2?4gZG41D>GNVvwqCcXJXKaABP_HFd#BanS1Bi(wIf}g&d z?WFj7!@3j~h7G)vPLJ(Q#=2k3D}f8l|0RetTjz$s+P2vK2D@&r6Edt-g!8tR)MoAd z26Ct;V%Ji;1Dc?RNLFpa(54h%h-v33b@};nb=WJ7+s@TcM9`lJK3F?}`EchTvf*b< zqu3GF)P7Y0n%(SZ^-wOH!FSo{DjVgsx3Ym_!j(fxc^$pA9Fu^#-(~lN3-D8?`co_E zD~rpaNy}7PQDM!b>kh}XiZ_4G_pZ<>0+$0%v+_3O+kg9v{#82Qo7O*X`+qNbuAz#m zXOF`08JzP12C6|&&`CsIYf}H3`{|^ocIyk@`b}@?ZCC4dkS4LOd-u8_@x$Bp?Q_`I z#=d?-e@>GZxhQDpBGl%-3|R_$32HjQ0YSr)*t(D2cEQ=|etUEDrDTfwD46D#k@TI? zyPFbK4s$kL>Pf-;U%ATo7eq#&7nq-S-BsqI)A)n6Z$8u&_cLCZ^Sj3q*Lbw*#i#z{ zw&d~p2fjn$y5Ew`co83#K(gvmnq_&+br zPDB6JRn$$v9ta?6+N@%RjAoOA#QJG!6ZOCkNg|e%sCfx)#ejz+AwzksG8>}&0ki7E zt}}UEmQS?gxA-t8@04_yj3^Z>Go7YKFEyLtp+~6BsMJ`6<>tUl+1E32oC*^p`J&U^ zV8OpkB1awNx($W89rwe9u=lgGmUZ6nqed>A+KutQh=l7%fTIm1(m?MU5Wn_%HQ(N> zxaQ2vR8>tRjy0%lwxS*?fA_A?nV;j@k2y9&M$&kKP?s0Bt@OGjIhh(RrSlt43S6RB zm%e-rFr76haP!LuDO%1K?L71|ylQq*e+b4bIoBOz*cq5*hj+?WsKEFI3 zy0>Z=6gOVr`K}2w@kR<_+O(N2eK(wMJDPJQ$GBeK3vSs@g*`iNZp{qW^|16n#JUPD+cFvxwfL%~Ay*bPvHH5dw&!61`n1zUZw zNt8*>n^x=1{gCoCboL`$Q(JaJarE-Kk?29;ib0|b`mp%uRuS1^xMt`tQC9PWh@2Pj zdkV^vxaORky7j0zVv?eWk3yrFq+*j56{Lm-whyq+^r_D{)B~v6MbB|~7I) z@LVJG*%>wOtjJ{%E?i}T(CZ2=g(W{2HvxeVPmxjJ!qUYKZ%Ls1eJ+#Iarc<6@x+my zAzV`Oa`n>!ce~E&I6k{Fcj05*4nilU>t~2cRjYIKU4nxW6^s7)p_l_yL; zSP9|fb#?|-fT4&$x>Dpt-uT$(TLNvfh8M78Y;6|0JNsUs#lA@$2_N9eDX79(D>wc^$Q6aDk=DNSPm%mfbcmxLm zNmUa}%h6YOplbuSk(mqX6r(l?o&9wL%OlCCXLPW+;`={HV8+O>UD9G(jA>BNl`iad z8(i%8DXQN2J^W{zW&XKW!)t1malnJ3ieZ@1`o(6A#0Hkc_T$5Hajh-fW4YJo_oTw% z;!l0=fYvBPh}vVZR+8U%PDZ;o?%Q7~^y_LVn$dw;)xMJ=&v>8h2bwO})cGg((mQ9p z)BUO;0t6H13r}!p#A7+cCqI$xvvqw4bKxaLJubqc@>7KSeajN`v;rM9QY|H@TJ)k%Ur-7u5{^{^XlR2`)2! zV^4q?c#8b+;-QCGiTeX>Wny-rcFz~;DQTLsJd7$sK7>mz#3cFpfkg@3)Qr6ZN4dTg#0jUm5j{J0xDaD6JIo-cu z1@cN8HrIa4a5n*01IS`EvL=Xm?^wQF^<;Oms} z186W%GgGgLPQmObI2?nTl=6>;9Gp~K0-5UOLu@Qb?2=JivgbMAJx_8z@%g;x0noFJ zW|Azx38{Q$P0z|80QPIpTM$wpDnoah$}lXL8BmIP1y&>+G-}gKR~giu3DIPQQT>rl zB3oPVFPOr980cos9x`iEUdMNNOjE5>fjvxVhfYKs?^j=8MUX7dpwXu>t1=zmON3ox2*OF*a&1S$qbmXi8q8+I9gpdduP0dx z$;Pw)=(BWs*5J`J=H$CBDc>$$;RDy7evSye_^wB5uOig{(5O*??x&PPFUp8aS+9ZZ zv})L8e#WcqgF}fWLQ8mDs2ZWE_tFAQcIF}-Gjwk9wE#WV=7HjgX{85DfF4iMiR&j> zpS3y-m%Fk2T#*ZR04lZID38(mlBqaj1IP60__q)`-wEL-h zAcY}`EiNg;S9O-iVM|8$^cWz)-_48Y-#dyJwY!a1)vz-~C1${cO=8VNqHweN%jQ^0rN`?q~cr%a13$30+a+dzbr-f#x*Wta52p%C! zg{z&ztikX?U#O+t$pq65hY-!96$I^0b3jb3B-mMVNgC+$Wq#7k2wRR`79H7A7h?*P z^Z&ydX5yg=C*xf$kqw~k8U>=U!S|+kx@%(neOi~NEoA!yF0pXZ;1&pw(WIR24wb|q z&$}miJ?Qp@YDWF$05H#$`A5&vd)M`i{j)tJwQlc-OeBp6=U1=>GzQx8&>S>P?SxJ< zT5(YGRbO>fqlXQDFhKQ-HMU*ocz=61ISc1I(a_2JL_(rW7ZMPKP+^`JM=UOJ4c zIHaFrA5F)jE~&ryp2HRuZHd&LlAV&CmzJL9D=W^wV;HtB9n^P&zV`0h6e2c5U4D0Y z|3PWDAr2J(HA=*kQhH|={)UI#zhdG?2~kIfJHx3@qFVhAf=}2*%+xfy8>0cSk-Aw@ zrndJ&N%To;j(d3swTQ72YJLSAu^Kul^d;4=X2Qac{){yiLT}(e3XbdybgX1`%}JjW z4tWlqZR(@Rl-qRSyb>Zm2^OO`@u|!FxVFVlOp}gaDQ;?zAox?9pN)2iqJDkuI<0{l z)9Mo)vMrtHd0>l~h1m9@MV@2gD~CfC5=BpLyWWGp&rG@LTS~YT#$rk>N@F^Ai&I4I zj*}v~L1ERjcWa|pIEN#u6b+*RCRcYm_8A1)&DPkJezcKJLbeSH?a;9TD!>b4O))tj ztcjKYj~`t&!Klu!w75bPS@wk9=#7|dMIJ40y7Tj>*qTYp>_z;xk#`pYn3$<>6WDsH zNfIZ{_!zyH=2ted5hD?vNh(vl-;M!*@*l+F-(mRlzJR&SXEr_TLkQ;?|KBg}ZsobZ z1-q}Y6r?Ncouj!2NK0Yd;*qUj7k<_hg)~tu&@{hcs4Tz58o01h6QT(e!e6ZK+!J6L zeumhiS+Q*(A}HCRt;z^tMi4s|94MJ6=^J+i`*b1Dr;=nyHG5N?3p9F@lbYAhb{_M? z{Xx`laK_YL_&k6xs}V)Smym%ICVO^NqH}OWf#@|xaZ(kqe7IZpv8Xz34Czhljk#VJ zCCnPlC%-szX^B4ziGrF;+QkP(rL?dYq;Kf6&2lc6%ya^~t_sVZB)pWYgcALif zyGKdc0T-TU`Q2hI&sC=lY?brWPnY48+95z|Z(m~Zw>a&qW5y&Y`fMg~Sp-Q@h)eZz z9OQ8?3V=cMbEezjnlv}l#0xUW(x*)h0{|U^Vgx4L1ko3YDAhDiNp;s}2r+5xer#$- z5Ydt~%E~M07gF#BRCFVV7y2r0JAT_<7z+Q2|MG!Uz9B3~VDd6px#9@mu@y&?d)e?W z8$|`I6IFVNo4hy9Xu_OTt+zB$C;+=i3vA0pE1oM2Vl2ma=Tgvlk zL_kfEB%W+<*(%;F6BPlQQhN&)^fY1zC~~=46c2+^e1H${4>@Yp+{2Q3(xL3vBJ5IV zw+%VGBK^(Y%5Q2rXS*lRO0%Ml9>QEld)tYY+!E);ogvP+(cU$l#YG%D{EZlE7-J&Z z3`46o4!R-+avs1}@?@)gC<7F@pZqGy`$hZLnJwLbKd-MlF%Y}r{L;|T9^*uH-mXxT zCyATDWq}qU9W$Ue?(T*K9BUv~bgBuIHNpqrCw85IrYC2st%fT5dB-VBE$J@Qcuss$ z+2AK0Y77->4N_o%Es8NP%>S4dyc!1X>v951nN+h6jIIE0Shd72v$qYT@mcKeh`<8; zC?^7iunH)q)3Ji8zUMUj#VUl1DplE~nFixR*`6zO*Cjc>LRto<}BE9C_l05nSv4O`F_irA?0 zoHEmsN#dtu_q5*A=htHcqQ&$3jx#Lu_s3-Cout|Y@`8n+c;Y~6Q5pv!!A!lzKN}-p zieFlY>>IAwj+X?{kVextWZzh9=pw-a2FpB#GFVTzjf5#FQJm<) z+x_Y@Uj&S`;Fgq3RbCpur%_@Snm=0laKOsiR)jNG^qcAczQ9C!k?h#&&ST(4wYFvy zDk1N1D(^7b5Ly>6Wcb(&&f5QL<>6Zq)fHakS2F2xAM_`=H~)htb;n~)1Q)JxLo?f+ zE-dKR*TtboD|KgDt}kaVKI4iKv=(=Am7^c}g=OJSf)fk~7!6Z&$I|FbtrpM{Q@Ymj z-XJd!C(uirv!jSAenQcpm2_$Jr15?C8~4qvd%CG{@B7#`P|u*ICFuBNu!=vy0!%*r z<&))6N&q*QFWHV``EcPS#j!O_Jj#H2#3}7%i{}>;wFY^4Q}9>U&1AMzM=X3{hj^Sp zdrC6

&(e=>V4#8G*6!kB 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 literal 0 HcmV?d00001 From 924b12c78f54b6290a9e69cf5df4fd94aa98d127 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Tue, 16 Dec 2025 01:54:52 -0700 Subject: [PATCH 086/118] Refactored `assembly.py` to support advanced parameter merging via JSON and kwargs, and added `run_sbol2assembly_with_params.py` script for SBOL loop assembly with custom parameters. --- scripts/run_sbol2assembly_with_params.py | 82 +++++++++++++ src/pudu/assembly.py | 145 +++++++++++++++++++---- 2 files changed, 205 insertions(+), 22 deletions(-) create mode 100644 scripts/run_sbol2assembly_with_params.py diff --git a/scripts/run_sbol2assembly_with_params.py b/scripts/run_sbol2assembly_with_params.py new file mode 100644 index 0000000..1a9c641 --- /dev/null +++ b/scripts/run_sbol2assembly_with_params.py @@ -0,0 +1,82 @@ +from pudu.assembly import SBOLLoopAssembly +from opentrons import protocol_api + +# Example SBOL assemblies (would typically come from SynBioSuite) +assemblies = [ + { + "Product": "https://SBOL2Build.org/composite_1/1", + "Backbone": "https://sbolcanvas.org/pSB1C3/1", + "PartsList": [ + "https://sbolcanvas.org/J23101/1", + "https://sbolcanvas.org/B0034/1", + "https://sbolcanvas.org/GFP/1", + "https://sbolcanvas.org/B0015/1" + ], + "Restriction Enzyme": "https://SBOL2Build.org/BsaI/1" + }, + { + "Product": "https://SBOL2Build.org/composite_2/1", + "Backbone": "https://sbolcanvas.org/pSB1C3/1", + "PartsList": [ + "https://sbolcanvas.org/J23100/1", + "https://sbolcanvas.org/B0034/1", + "https://sbolcanvas.org/RFP/1", + "https://sbolcanvas.org/B0015/1" + ], + "Restriction Enzyme": "https://SBOL2Build.org/BsaI/1" + } +] +# Advanced parameters +advanced_params = { + "volume_part": 1, + "replicates": 2, # Want duplicates for this critical experiment + "thermocycler_starting_well": 0, + "protocol_name": "SBOL_GFP_RFP_Assembly" +} + +metadata = { + 'protocolName': 'PUDU SBOL Loop Assembly with Advanced Parameters', + 'author': 'Oscar Rodriguez', + 'description': 'Automated DNA assembly from SBOL with custom parameters', + 'apiLevel': '2.14' +} + +def run(protocol: protocol_api.ProtocolContext): + """ + Run SBOL Loop Assembly with advanced parameters. + + This demonstrates three ways to configure the protocol: + + 1. Using advanced_params dict (recommended for SynBioSuite integration) + 2. Using kwargs (traditional method, still supported) + 3. Combining both (kwargs override advanced_params) + """ + + # Method 1: Using advanced_params (recommended for programmatic generation) + protocol.comment("=== Running with advanced_params ===") + pudu_assembly = SBOLLoopAssembly( + assemblies=assemblies, + json_params=advanced_params + ) + pudu_assembly.run(protocol) + + # Method 2: Traditional kwargs method (still works for backward compatibility) + # Uncomment to test: + # protocol.comment("=== Running with kwargs ===") + # pudu_assembly = SBOLLoopAssembly( + # assemblies=assemblies, + # volume_part=3, + # replicates=2, + # protocol_name="SBOL_Traditional" + # ) + # pudu_assembly.run(protocol) + + # Method 3: Combining both (kwargs override advanced_params) + # Uncomment to test: + # protocol.comment("=== Running with both (kwargs wins) ===") + # pudu_assembly = SBOLLoopAssembly( + # assemblies=assemblies, + # advanced_params={"volume_part": 3, "replicates": 2}, + # replicates=4 # This overrides the replicates=2 in advanced_params + # ) + # pudu_assembly.run(protocol) \ No newline at end of file diff --git a/src/pudu/assembly.py b/src/pudu/assembly.py index c428ccd..b7e27ff 100644 --- a/src/pudu/assembly.py +++ b/src/pudu/assembly.py @@ -14,6 +14,7 @@ class BaseAssembly(ABC): """ def __init__(self, + json_params: Dict = None, volume_total_reaction: float = 20, volume_part: float = 2, volume_restriction_enzyme: float = 2, @@ -36,30 +37,54 @@ def __init__(self, output_xlsx: bool = True, protocol_name: str = ''): - self.volume_total_reaction = volume_total_reaction - self.volume_part = volume_part - self.volume_restriction_enzyme = volume_restriction_enzyme - self.volume_t4_dna_ligase = volume_t4_dna_ligase - self.volume_t4_dna_ligase_buffer = volume_t4_dna_ligase_buffer - self.replicates = replicates - self.thermocycler_starting_well = thermocycler_starting_well - self.thermocycler_labware = thermocycler_labware - self.temperature_module_labware = temperature_module_labware - self.temperature_module_position = temperature_module_position - self.tiprack_labware = tiprack_labware - if tiprack_positions is None: + params = self._merge_params(json_params,{ + 'volume_total_reaction': volume_total_reaction, + 'volume_part': volume_part, + 'volume_restriction_enzyme': volume_restriction_enzyme, + 'volume_t4_dna_ligase': volume_t4_dna_ligase, + 'volume_t4_dna_ligase_buffer': volume_t4_dna_ligase_buffer, + 'replicates': replicates, + 'thermocycler_starting_well': thermocycler_starting_well, + 'thermocycler_labware': thermocycler_labware, + 'temperature_module_labware': temperature_module_labware, + 'temperature_module_position': temperature_module_position, + 'tiprack_labware': tiprack_labware, + 'tiprack_positions': tiprack_positions, + 'pipette': pipette, + 'pipette_position': pipette_position, + 'aspiration_rate': aspiration_rate, + 'dispense_rate': dispense_rate, + 'take_picture': take_picture, + 'take_video': take_video, + 'water_testing': water_testing, + 'output_xlsx': output_xlsx, + 'protocol_name': protocol_name + }) + + self.volume_total_reaction = params['volume_total_reaction'] + self.volume_part = params['volume_part'] + self.volume_restriction_enzyme = params['volume_restriction_enzyme'] + self.volume_t4_dna_ligase = params['volume_t4_dna_ligase'] + self.volume_t4_dna_ligase_buffer = params['volume_t4_dna_ligase_buffer'] + self.replicates = params['replicates'] + self.thermocycler_starting_well = params['thermocycler_starting_well'] + self.thermocycler_labware = params['thermocycler_labware'] + self.temperature_module_labware = params['temperature_module_labware'] + self.temperature_module_position = params['temperature_module_position'] + self.tiprack_labware = params['tiprack_labware'] + if params['tiprack_positions'] is None: self.tiprack_positions = ['2', '3', '4', '5', '6', '9'] else: - self.tiprack_positions = tiprack_positions - self.pipette = pipette - self.pipette_position = pipette_position - self.aspiration_rate = aspiration_rate - self.dispense_rate = dispense_rate - self.take_picture = take_picture - self.take_video = take_video - self.water_testing = water_testing - self.output_xlsx = output_xlsx - self.protocol_name = protocol_name + self.tiprack_positions = params['tiprack_positions'] + self.pipette = params['pipette'] + self.pipette_position = params['pipette_position'] + self.aspiration_rate = params['aspiration_rate'] + self.dispense_rate = params['dispense_rate'] + self.take_picture = params['take_picture'] + self.take_video = params['take_video'] + self.water_testing = params['water_testing'] + self.output_xlsx = params['output_xlsx'] + self.protocol_name = params['protocol_name'] # Shared tracking dictionaries self.dict_of_parts_in_temp_mod_position = {} @@ -81,6 +106,82 @@ def __init__(self, 'total_batches': 1 } + def _merge_params(self, json_params: Dict, kwargs_params: Dict) -> Dict: + """ + Merge parameters with precedence: defaults <- advanced_params <- kwargs + + Args: + advanced_params: Dictionary of parameters from JSON/dict (optional) + kwargs_params: Dictionary of parameters from function kwargs + + Returns: + Merged parameter dictionary + + Raises: + ValueError: If advanced_params contains unknown parameters + """ + # Define all valid parameter names with their defaults + valid_params = { + 'volume_total_reaction': 20, + 'volume_part': 2, + 'volume_restriction_enzyme': 2, + 'volume_t4_dna_ligase': 4, + 'volume_t4_dna_ligase_buffer': 2, + 'replicates': 1, + 'thermocycler_starting_well': 0, + 'thermocycler_labware': 'nest_96_wellplate_100ul_pcr_full_skirt', + 'temperature_module_labware': 'opentrons_24_aluminumblock_nest_1.5ml_snapcap', + 'temperature_module_position': '1', + 'tiprack_labware': 'opentrons_96_tiprack_20ul', + 'tiprack_positions': None, + 'pipette': 'p20_single_gen2', + 'pipette_position': 'left', + 'aspiration_rate': 0.5, + 'dispense_rate': 1, + 'take_picture': False, + 'take_video': False, + 'water_testing': False, + 'output_xlsx': True, + 'protocol_name': '' + } + + # Start with defaults + merged = valid_params.copy() + + # Apply json_params if provided + if json_params is not None: + self._validate_param_structure(json_params, valid_params) + merged.update(json_params) + + # Apply kwargs (checking against defaults to see what was explicitly passed) + # Only update if the kwarg value differs from the default + for key, value in kwargs_params.items(): + if key in valid_params: + # Always use kwargs value, even if it matches default + # This ensures explicit kwargs override advanced_params + if json_params is None or key not in json_params or value != valid_params[key]: + merged[key] = value + + return merged + + def _validate_param_structure(self, advanced_params: Dict, valid_params: Dict): + """ + Validate that advanced_params only contains known parameter names. + + Args: + advanced_params: Dictionary to validate + valid_params: Dictionary of valid parameter names + + Raises: + ValueError: If unknown parameters are found + """ + unknown_params = set(advanced_params.keys()) - set(valid_params.keys()) + if unknown_params: + raise ValueError( + f"Unknown parameters in advanced_params: {unknown_params}. " + f"Valid parameters are: {set(valid_params.keys())}" + ) + @abstractmethod def process_assemblies(self): """Process input assemblies - format-specific implementation""" From 676f76be8004a148d4549a78a438a3f3cb02f91b Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Wed, 17 Dec 2025 19:07:26 -0700 Subject: [PATCH 087/118] Validated reaction volume constraints in `assembly.py` to ensure physical feasibility of assemblies and updated `run_sbol2assembly_with_params.py` to include revised advanced parameters. --- scripts/run_sbol2assembly_with_params.py | 14 ++++--- src/pudu/assembly.py | 53 ++++++++++++++++++++++-- 2 files changed, 59 insertions(+), 8 deletions(-) diff --git a/scripts/run_sbol2assembly_with_params.py b/scripts/run_sbol2assembly_with_params.py index 1a9c641..4103a9a 100644 --- a/scripts/run_sbol2assembly_with_params.py +++ b/scripts/run_sbol2assembly_with_params.py @@ -1,6 +1,3 @@ -from pudu.assembly import SBOLLoopAssembly -from opentrons import protocol_api - # Example SBOL assemblies (would typically come from SynBioSuite) assemblies = [ { @@ -26,14 +23,21 @@ "Restriction Enzyme": "https://SBOL2Build.org/BsaI/1" } ] + # Advanced parameters advanced_params = { - "volume_part": 1, + "volume_part": 3, + "volume_total_reaction": 25, "replicates": 2, # Want duplicates for this critical experiment "thermocycler_starting_well": 0, "protocol_name": "SBOL_GFP_RFP_Assembly" } + +from pudu.assembly import SBOLLoopAssembly +from opentrons import protocol_api + + metadata = { 'protocolName': 'PUDU SBOL Loop Assembly with Advanced Parameters', 'author': 'Oscar Rodriguez', @@ -56,7 +60,7 @@ def run(protocol: protocol_api.ProtocolContext): protocol.comment("=== Running with advanced_params ===") pudu_assembly = SBOLLoopAssembly( assemblies=assemblies, - json_params=advanced_params + json_params=advanced_params, ) pudu_assembly.run(protocol) diff --git a/src/pudu/assembly.py b/src/pudu/assembly.py index b7e27ff..8a0dba3 100644 --- a/src/pudu/assembly.py +++ b/src/pudu/assembly.py @@ -182,6 +182,38 @@ def _validate_param_structure(self, advanced_params: Dict, valid_params: Dict): f"Valid parameters are: {set(valid_params.keys())}" ) + def _validate_reaction_volumes(self, num_parts: int): + """ + Validate that reaction volumes are physically possible. + + Args: + num_parts: Number of DNA parts (including backbone) in the assembly + + Raises: + ValueError: If volumes exceed total reaction volume + """ + volume_reagents = (self.volume_restriction_enzyme + + self.volume_t4_dna_ligase + + self.volume_t4_dna_ligase_buffer) + + total_parts_volume = self.volume_part * num_parts + total_needed = volume_reagents + total_parts_volume + + if total_needed >= self.volume_total_reaction: + water_volume = self.volume_total_reaction - total_needed + raise ValueError( + f"Reaction volume error: Cannot fit {num_parts} parts into {self.volume_total_reaction}µL reaction.\n" + f" Required volumes:\n" + f" - Reagents (enzyme + ligase + buffer): {volume_reagents}µL\n" + f" - Parts ({num_parts} × {self.volume_part}µL): {total_parts_volume}µL\n" + f" - Water: {water_volume}µL (NEGATIVE!)\n" + f" Total needed: {total_needed}µL\n" + f" Solutions:\n" + f" 1. Increase 'volume_total_reaction' to at least {total_needed + 1}µL\n" + f" 2. Decrease 'volume_part' to at most {(self.volume_total_reaction - volume_reagents - 1) / num_parts:.1f}µL\n" + f" 3. Decrease reagent volumes" + ) + @abstractmethod def process_assemblies(self): """Process input assemblies - format-specific implementation""" @@ -583,8 +615,9 @@ def _process_assembly_combinations(self, protocol, pipette, thermo_plate, alum_b mix_before=self.volume_part, touch_tip=True, drop_tip=False) # Remove air bubbles with mixing + mix_volume = min(self.volume_total_reaction, pipette.max_volume) for _ in range(int(self.volume_total_reaction / 10)): - self.liquid_transfer(protocol=protocol, pipette=pipette, volume=self.volume_total_reaction, + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=mix_volume, source=dest_well.bottom(), dest=dest_well.bottom(8), asp_rate=1.0, disp_rate=1.0, new_tip=False, drop_tip=False, touch_tip=True) @@ -642,6 +675,8 @@ def _validate_assembly_requirements(self): f'({len(self.parts_list)} parts × {self.replicates} replicates).' ) + self._validate_reaction_volumes(num_parts=2) + def _reset_assembly_state(self): """Reset assembly processing state""" self.parts_list = [] @@ -816,6 +851,11 @@ def _validate_assembly_requirements(self): f'combinations. Number of combinations in the protocol are {wells_needed}.' ) + # Validate reaction volumes for all combinations + for combination in self.odd_combinations + self.even_combinations: + num_parts = len(combination) + self._validate_reaction_volumes(num_parts) + def _process_combinations(self, protocol, pipette, combinations, restriction_enzyme, thermo_plate, alum_block, dd_h2o, t4_dna_ligase_buffer, t4_dna_ligase, volume_reagents, thermocycler_well_counter): @@ -863,8 +903,9 @@ def _process_combinations(self, protocol, pipette, combinations, restriction_enz mix_before=self.volume_part, touch_tip=True) # Remove air bubbles + mix_volume = min(self.volume_total_reaction, pipette.max_volume) for _ in range(int(self.volume_total_reaction / 10)): - self.liquid_transfer(protocol=protocol, pipette=pipette, volume=self.volume_total_reaction, + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=mix_volume, source=dest_well.bottom(), dest=dest_well.bottom(8), asp_rate=1.0, disp_rate=1.0, new_tip=False, drop_tip=False, touch_tip=True) pipette.drop_tip() @@ -998,8 +1039,9 @@ def _process_assembly_combinations(self, protocol, pipette, thermo_plate, alum_b mix_before=self.volume_part, touch_tip=True) # Remove air bubbles + mix_volume = min(self.volume_total_reaction, pipette.max_volume) for _ in range(int(self.volume_total_reaction / 10)): - self.liquid_transfer(protocol=protocol, pipette=pipette, volume=self.volume_total_reaction, + self.liquid_transfer(protocol=protocol, pipette=pipette, volume=mix_volume, source=dest_well.bottom(), dest=dest_well.bottom(8), asp_rate=1.0, disp_rate=1.0, new_tip=False, drop_tip=False, touch_tip=True) pipette.drop_tip() @@ -1070,6 +1112,11 @@ def _validate_assembly_requirements(self): f'combinations. Number of assemblies in the protocol are {wells_needed}.' ) + # Validate reaction volumes for each assembly + for assembly_combo in self.assembly_combinations: + num_parts = len(assembly_combo['parts']) + self._validate_reaction_volumes(num_parts) + class LoopAssembly: """ From 2a6ba5d19fef3d985ed815fd1678981f9bc3da8f Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Wed, 17 Dec 2025 22:08:27 -0700 Subject: [PATCH 088/118] Added `initial_tip` parameter in `assembly.py` for improved tip management and updated `run_sbol2assembly_with_params.py` to utilize this feature. --- scripts/run_sbol2assembly_with_params.py | 1 + src/pudu/assembly.py | 69 +++++++++++++++++++++++- 2 files changed, 69 insertions(+), 1 deletion(-) diff --git a/scripts/run_sbol2assembly_with_params.py b/scripts/run_sbol2assembly_with_params.py index 4103a9a..bfe14c6 100644 --- a/scripts/run_sbol2assembly_with_params.py +++ b/scripts/run_sbol2assembly_with_params.py @@ -29,6 +29,7 @@ "volume_part": 3, "volume_total_reaction": 25, "replicates": 2, # Want duplicates for this critical experiment + "initial_tip": "H10", "thermocycler_starting_well": 0, "protocol_name": "SBOL_GFP_RFP_Assembly" } diff --git a/src/pudu/assembly.py b/src/pudu/assembly.py index 8a0dba3..b3b51d0 100644 --- a/src/pudu/assembly.py +++ b/src/pudu/assembly.py @@ -29,6 +29,7 @@ def __init__(self, tiprack_positions: List[str] = None, pipette: str = 'p20_single_gen2', pipette_position: str = 'left', + initial_tip: str = None, aspiration_rate: float = 0.5, dispense_rate: float = 1, take_picture: bool = False, @@ -52,6 +53,7 @@ def __init__(self, 'tiprack_positions': tiprack_positions, 'pipette': pipette, 'pipette_position': pipette_position, + 'initial_tip' : initial_tip, 'aspiration_rate': aspiration_rate, 'dispense_rate': dispense_rate, 'take_picture': take_picture, @@ -78,6 +80,7 @@ def __init__(self, self.tiprack_positions = params['tiprack_positions'] self.pipette = params['pipette'] self.pipette_position = params['pipette_position'] + self.initial_tip = params['initial_tip'] self.aspiration_rate = params['aspiration_rate'] self.dispense_rate = params['dispense_rate'] self.take_picture = params['take_picture'] @@ -136,6 +139,7 @@ def _merge_params(self, json_params: Dict, kwargs_params: Dict) -> Dict: 'tiprack_positions': None, 'pipette': 'p20_single_gen2', 'pipette_position': 'left', + 'initial_tip': None, 'aspiration_rate': 0.5, 'dispense_rate': 1, 'take_picture': False, @@ -214,6 +218,51 @@ def _validate_reaction_volumes(self, num_parts: int): f" 3. Decrease reagent volumes" ) + def _well_to_index(self, well_name: str) -> int: + """ + Convert well name (e.g., 'A1', 'H12') to 0-based index in 96-well plate. + + Args: + well_name: Well position like 'A1', 'B3', 'H12' + + Returns: + Zero-based index (0-95) for the well + + Raises: + ValueError: If well_name format is invalid + """ + if not well_name or len(well_name) < 2: + raise ValueError(f"Invalid well name: '{well_name}'. Expected format like 'A1', 'B3', 'H12'") + + row = well_name[0] + try: + col = int(well_name[1:]) + except ValueError: + raise ValueError(f"Invalid well name: '{well_name}'. Column must be a number (e.g., 'A1', 'H12')") + + if row not in 'ABCDEFGH': + raise ValueError(f"Invalid well name: '{well_name}'. Row must be A-H") + + if col < 1 or col > 12: + raise ValueError(f"Invalid well name: '{well_name}'. Column must be 1-12") + + row_index = ord(row) - ord('A') + col_index = col - 1 + return row_index + (col_index * 8) + + def _tips_available_from_position(self, well_name: str) -> int: + """ + Calculate how many tips are available starting from a given position. + + Args: + well_name: Starting well position like 'A1', 'H12' + + Returns: + Number of tips available from that position to H12 + """ + start_index = self._well_to_index(well_name) + return 96 - start_index + @abstractmethod def process_assemblies(self): """Process input assemblies - format-specific implementation""" @@ -239,7 +288,22 @@ def _calculate_total_tips_needed(self) -> int: def setup_tip_management(self, protocol): """Setup batch tip management for high-throughput applications.""" total_tips_needed = self._calculate_total_tips_needed() - tip_racks_needed = (total_tips_needed + 95) // 96 + + first_rack_tips = 96 + if self.initial_tip: + try: + first_rack_tips = self._tips_available_from_position(self.initial_tip) + protocol.comment(f"Starting from tip {self.initial_tip} ({first_rack_tips} tips available on first rack)") + except ValueError as e: + raise ValueError(f"Error with initial_tip parameter: {e}") + + # Calculate racks needed, accounting for the partially used first rack + if total_tips_needed <= first_rack_tips: + tip_racks_needed = 1 + else: + remaining_tips = total_tips_needed - first_rack_tips + additional_racks = (remaining_tips + 95) // 96 + tip_racks_needed = 1 + additional_racks available_deck_slots = self.tiprack_positions max_racks_on_deck = len(available_deck_slots) @@ -348,6 +412,9 @@ def run(self, protocol: protocol_api.ProtocolContext): all_tip_racks = self.setup_tip_management(protocol) pipette = protocol.load_instrument(self.pipette, self.pipette_position, tip_racks=all_tip_racks) + if self.initial_tip: + pipette.starting_tip = self.tip_management['on_deck_racks'][0][self.initial_tip] + protocol.comment(f"Pipette will start from tip {self.initial_tip}") # Load common reagents (shared) dd_h2o = self._load_reagent(protocol, module_labware=alum_block, well_position=0, From 508e0a779cc9154b3bf517d2afc3a74c75ac2f92 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Thu, 18 Dec 2025 18:12:46 -0700 Subject: [PATCH 089/118] Refactored `transformation.py` to support advanced parameter merging and introduced `run_sbol2transformation_with_params.py` for transformation protocols with enhanced customization. --- .../run_sbol2transformation_with_params.py | 46 ++++ src/pudu/transformation.py | 237 ++++++++++++++---- 2 files changed, 239 insertions(+), 44 deletions(-) create mode 100644 scripts/run_sbol2transformation_with_params.py diff --git a/scripts/run_sbol2transformation_with_params.py b/scripts/run_sbol2transformation_with_params.py new file mode 100644 index 0000000..b4baa33 --- /dev/null +++ b/scripts/run_sbol2transformation_with_params.py @@ -0,0 +1,46 @@ +transformation_data = { + 'list_of_dna': ['GVD0011', 'GVD0013', 'GVD0015'], + 'competent_cells': 'DH5alpha' +} + +advanced_params = { + 'replicates': 3, + 'volume_dna': 25, + 'thermocycler_starting_well': 0, + 'transfer_volume_dna': 5, + 'tube_volume_competent_cell': 150 +} + +from pudu.transformation import HeatShockTransformation +from opentrons import protocol_api + + +# Protocol metadata +metadata = { + 'protocolName': 'PUDU Transformation Test', + 'author': 'Oscar Rodriguez', + 'description': 'Test transformation with new parameter approach', + 'apiLevel': '2.20' +} + + +def run(protocol: protocol_api.ProtocolContext): + """Main protocol execution function""" + + transformation = HeatShockTransformation( + transformation_data=transformation_data, + advanced_params=advanced_params + ) + + # OLD APPROACH: Using kwargs directly (commented out) + # transformation = HeatShockTransformation( + # list_of_dna=['GVD0011', 'GVD0013', 'GVD0015'], + # competent_cells='DH5alpha', + # replicates=3, + # volume_dna=25, + # thermocycler_starting_well=0, + # transfer_volume_dna=5, + # tube_volume_competent_cell=150 + # ) + + transformation.run(protocol) diff --git a/src/pudu/transformation.py b/src/pudu/transformation.py index b254079..6be7324 100644 --- a/src/pudu/transformation.py +++ b/src/pudu/transformation.py @@ -1,5 +1,5 @@ from opentrons import protocol_api -from typing import List, Dict +from typing import List, Dict, Optional from pudu.utils import colors @@ -41,9 +41,11 @@ class Transformation(): The rate of dispense in microliters per second. By default, 1 microliter per second. ''' def __init__(self, - list_of_dna:List = None, + transformation_data: Optional[Dict] = None, + json_params: Optional[Dict] = None, + list_of_dna:Optional[List] = None, volume_dna:float = 20, - competent_cells:str = None, + competent_cells: Optional[str] = None, replicates:int=2, thermocycler_starting_well:int = 0, thermocycler_labware:str = "nest_96_wellplate_100ul_pcr_full_skirt", @@ -63,78 +65,225 @@ def __init__(self, aspiration_rate:float = 0.5, dispense_rate:float = 1, initial_dna_well:int = 0, - water_testing:bool = False + water_testing:bool = False, + **kwargs ): - if list_of_dna is None: - raise ValueError ("Must input a list of DNA strings") - else: - self.list_of_dna = list_of_dna - self.volume_dna = volume_dna - if competent_cells is None: - raise ValueError ("Must input a competent cell strings") - else: - self.competent_cells = competent_cells - self.replicates = replicates - self.thermocycler_starting_well = thermocycler_starting_well - self.thermocycler_labware = thermocycler_labware - self.temperature_module_labware = temperature_module_labware - self.temperature_module_position = temperature_module_position - self.dna_plate = dna_plate - self.dna_plate_position = dna_plate_position - self.use_dna_96plate = use_dna_96plate - self.tiprack_p20_labware = tiprack_p20_labware - self.tiprack_p20_position = tiprack_p20_position - self.tiprack_p200_labware = tiprack_p200_labware - self.tiprack_p200_position = tiprack_p200_position - self.pipette_p20 = pipette_p20 - self.pipette_p20_position = pipette_p20_position - self.pipette_p300 = pipette_p300 - self.pipette_p300_position = pipette_p300_position - self.aspiration_rate = aspiration_rate - self.dispense_rate = dispense_rate - self.initial_dna_well = initial_dna_well - self.water_testing = water_testing + kwargs_params = { + 'list_of_dna': list_of_dna, + 'volume_dna': volume_dna, + 'competent_cells': competent_cells, + 'replicates': replicates, + 'thermocycler_starting_well': thermocycler_starting_well, + 'thermocycler_labware': thermocycler_labware, + 'temperature_module_labware': temperature_module_labware, + 'temperature_module_position': temperature_module_position, + 'dna_plate': dna_plate, + 'dna_plate_position': dna_plate_position, + 'use_dna_96plate': use_dna_96plate, + 'tiprack_p20_labware': tiprack_p20_labware, + 'tiprack_p20_position': tiprack_p20_position, + 'tiprack_p200_labware': tiprack_p200_labware, + 'tiprack_p200_position': tiprack_p200_position, + 'pipette_p20': pipette_p20, + 'pipette_p20_position': pipette_p20_position, + 'pipette_p300': pipette_p300, + 'pipette_p300_position': pipette_p300_position, + 'aspiration_rate': aspiration_rate, + 'dispense_rate': dispense_rate, + 'initial_dna_well': initial_dna_well, + 'water_testing': water_testing + } + kwargs_params.update(kwargs) + + self._merged_params = self._merge_params(transformation_data, json_params, kwargs_params) + + if self._merged_params.get('list_of_dna') is None: + raise ValueError( + "Must input a list of DNA strings (either via transformation_data, advanced_params, or list_of_dna parameter)") + if self._merged_params.get('competent_cells') is None: + raise ValueError( + "Must input a competent cell string (either via transformation_data, advanced_params, or competent_cells parameter)") + + # Set all attributes from merged parameters + self.list_of_dna = self._merged_params['list_of_dna'] + self.volume_dna = self._merged_params['volume_dna'] + self.competent_cells = self._merged_params['competent_cells'] + self.replicates = self._merged_params['replicates'] + self.thermocycler_starting_well = self._merged_params['thermocycler_starting_well'] + self.thermocycler_labware = self._merged_params['thermocycler_labware'] + self.temperature_module_labware = self._merged_params['temperature_module_labware'] + self.temperature_module_position = self._merged_params['temperature_module_position'] + self.dna_plate = self._merged_params['dna_plate'] + self.dna_plate_position = self._merged_params['dna_plate_position'] + self.use_dna_96plate = self._merged_params['use_dna_96plate'] + self.tiprack_p20_labware = self._merged_params['tiprack_p20_labware'] + self.tiprack_p20_position = self._merged_params['tiprack_p20_position'] + self.tiprack_p200_labware = self._merged_params['tiprack_p200_labware'] + self.tiprack_p200_position = self._merged_params['tiprack_p200_position'] + self.pipette_p20 = self._merged_params['pipette_p20'] + self.pipette_p20_position = self._merged_params['pipette_p20_position'] + self.pipette_p300 = self._merged_params['pipette_p300'] + self.pipette_p300_position = self._merged_params['pipette_p300_position'] + self.aspiration_rate = self._merged_params['aspiration_rate'] + self.dispense_rate = self._merged_params['dispense_rate'] + self.initial_dna_well = self._merged_params['initial_dna_well'] + self.water_testing = self._merged_params['water_testing'] + + def _merge_params(self, transformation_data: Optional[Dict], advanced_params: Optional[Dict], kwargs_params: Dict) -> Dict: + """ + Merge parameters with precedence: defaults <- transformation_data <- advanced_params <- kwargs + + Args: + transformation_data: Optional dict containing protocol data (list_of_dna, competent_cells) + advanced_params: Optional dict containing configuration parameters + kwargs_params: Dict of parameters passed as kwargs + + Returns: + Merged parameter dictionary + """ + # Define defaults for all valid parameters + # Includes both Transformation and HeatShockTransformation parameters + valid_params = { + # Transformation base parameters + 'list_of_dna': None, + 'volume_dna': 20, + 'competent_cells': None, + 'replicates': 2, + 'thermocycler_starting_well': 0, + 'thermocycler_labware': 'nest_96_wellplate_100ul_pcr_full_skirt', + 'temperature_module_labware': 'opentrons_24_aluminumblock_nest_1.5ml_snapcap', + 'temperature_module_position': '1', + 'dna_plate': 'nest_96_wellplate_100ul_pcr_full_skirt', + 'dna_plate_position': '2', + 'use_dna_96plate': False, + 'tiprack_p20_labware': 'opentrons_96_tiprack_20ul', + 'tiprack_p20_position': '9', + 'tiprack_p200_labware': 'opentrons_96_filtertiprack_200ul', + 'tiprack_p200_position': '6', + 'pipette_p20': 'p20_single_gen2', + 'pipette_p20_position': 'left', + 'pipette_p300': 'p300_single_gen2', + 'pipette_p300_position': 'right', + 'aspiration_rate': 0.5, + 'dispense_rate': 1, + 'initial_dna_well': 0, + 'water_testing': False, + # HeatShockTransformation-specific parameters + 'transfer_volume_dna': 2, + 'transfer_volume_competent_cell': 20, + 'tube_volume_competent_cell': 100, + 'transfer_volume_recovery_media': 60, + 'tube_volume_recovery_media': 1200, + 'cold_incubation1': None, + 'heat_shock': None, + 'cold_incubation2': None, + 'recovery_incubation': None + } + + # Start with defaults + merged = valid_params.copy() + + # Apply transformation_data (if provided) + if transformation_data is not None: + self._validate_param_structure(transformation_data, valid_params, 'transformation_data') + merged.update(transformation_data) + + # Apply advanced_params (if provided) + if advanced_params is not None: + self._validate_param_structure(advanced_params, valid_params, 'advanced_params') + merged.update(advanced_params) + + # Apply kwargs (highest precedence) - only if they differ from defaults + for key, value in kwargs_params.items(): + if key in valid_params: + # Only override if the value is explicitly different from the default + if value != valid_params[key]: + merged[key] = value + + return merged + + def _validate_param_structure(self, params: Dict, valid_params: Dict, param_name: str): + """ + Validate that all parameters in the dict are recognized. + + Args: + params: Dictionary to validate + valid_params: Dictionary of valid parameter names + param_name: Name of the parameter dict (for error messages) + + Raises: + ValueError: If unknown parameters are found + """ + unknown_params = set(params.keys()) - set(valid_params.keys()) + if unknown_params: + raise ValueError( + f"Unknown parameters in {param_name}: {unknown_params}.\n" + f"Valid parameters are: {set(valid_params.keys())}" + ) class HeatShockTransformation(Transformation): ''' Creates a protocol for automated transformation. ''' def __init__(self, + transformation_data: Optional[Dict] = None, + json_params: Optional[Dict] = None, transfer_volume_dna:float = 2, transfer_volume_competent_cell:float = 20, tube_volume_competent_cell:float =100, transfer_volume_recovery_media:float = 60, tube_volume_recovery_media:float = 1200, #add a bit more to pick it properly - cold_incubation1:Dict = None, - heat_shock:Dict = None, - cold_incubation2:Dict = None, - recovery_incubation:Dict = None, + cold_incubation1:Optional[Dict] = None, + heat_shock:Optional[Dict] = None, + cold_incubation2:Optional[Dict] = None, + recovery_incubation:Optional[Dict] = None, *args, **kwargs): - super().__init__(*args, **kwargs) + super().__init__( + transformation_data=transformation_data, + json_params=json_params, + transfer_volume_dna=transfer_volume_dna, + transfer_volume_competent_cell=transfer_volume_competent_cell, + tube_volume_competent_cell=tube_volume_competent_cell, + transfer_volume_recovery_media=transfer_volume_recovery_media, + tube_volume_recovery_media=tube_volume_recovery_media, + cold_incubation1=cold_incubation1, + heat_shock=heat_shock, + cold_incubation2=cold_incubation2, + recovery_incubation=recovery_incubation, + *args, **kwargs) + + self.transfer_volume_dna = self._merged_params['transfer_volume_dna'] + self.transfer_volume_competent_cell = self._merged_params['transfer_volume_competent_cell'] + self.tube_volume_competent_cell = self._merged_params['tube_volume_competent_cell'] + self.transfer_volume_recovery_media = self._merged_params['transfer_volume_recovery_media'] + self.tube_volume_recovery_media = self._merged_params['tube_volume_recovery_media'] + + cold_incubation1 = self._merged_params['cold_incubation1'] + heat_shock = self._merged_params['heat_shock'] + cold_incubation2 = self._merged_params['cold_incubation2'] + recovery_incubation = self._merged_params['recovery_incubation'] - self.transfer_volume_dna = transfer_volume_dna - self.transfer_volume_competent_cell = transfer_volume_competent_cell - self.tube_volume_competent_cell = tube_volume_competent_cell - self.transfer_volume_recovery_media = transfer_volume_recovery_media - self.tube_volume_recovery_media = tube_volume_recovery_media if cold_incubation1 is None: self.cold_incubation1 = {'temperature': 4, 'hold_time_minutes': 30} else: self.cold_incubation1 = cold_incubation1 + if heat_shock is None: self.heat_shock = {'temperature': 42, 'hold_time_minutes': 1} else: self.heat_shock = heat_shock + if cold_incubation2 is None: self.cold_incubation2 = {'temperature': 4, 'hold_time_minutes': 2} else: self.cold_incubation2 = cold_incubation2 + if recovery_incubation is None: self.recovery_incubation = {'temperature': 37, 'hold_time_minutes': 60} else: self.recovery_incubation = recovery_incubation - self.recovery_incubation = recovery_incubation + self.dict_of_parts_in_temp_mod_position = {} self.dict_of_parts_in_thermocycler = {} From 9ed61f537e321616282745bbb164c7f32f39c671 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Thu, 18 Dec 2025 22:05:47 -0700 Subject: [PATCH 090/118] Refactored `plating.py` to support advanced parameter merging via JSON and kwargs, and added `run_sbol2plating_with_params.py` script for plating protocols with enhanced customization. --- scripts/run_sbol2plating_with_params.py | 51 ++++++ src/pudu/plating.py | 216 +++++++++++++++++++----- 2 files changed, 226 insertions(+), 41 deletions(-) create mode 100644 scripts/run_sbol2plating_with_params.py diff --git a/scripts/run_sbol2plating_with_params.py b/scripts/run_sbol2plating_with_params.py new file mode 100644 index 0000000..5fac924 --- /dev/null +++ b/scripts/run_sbol2plating_with_params.py @@ -0,0 +1,51 @@ +from pudu.plating import Plating +from opentrons import protocol_api + + +# Protocol metadata +metadata = { + 'protocolName': 'PUDU Plating Test', + 'author': 'Oscar Rodriguez', + 'description': 'Test plating with new parameter approach', + 'apiLevel': '2.21' +} + + +def run(protocol: protocol_api.ProtocolContext): + """Main protocol execution function""" + + # NEW APPROACH: Using plating_data + advanced_params (JSON-compatible) + plating_data = { + 'bacterium_locations': { + 'A1': 'GVD0011', + 'A2': 'GVD0013', + 'A3': 'GVD0015' + } + } + + advanced_params = { + 'replicates': 2, + 'number_dilutions': 2, + 'volume_colony': 6, + 'thermocycler_starting_well': 0 + } + + plating = Plating( + plating_data=plating_data, + advanced_params=advanced_params + ) + + # OLD APPROACH: Using kwargs directly + # plating = Plating( + # bacterium_locations={ + # 'A1': 'GVD0011', + # 'A2': 'GVD0013', + # 'A3': 'GVD0015' + # }, + # replicates=2, + # number_dilutions=2, + # volume_colony=6, + # thermocycler_starting_well=0 + # ) + + plating.run(protocol) diff --git a/src/pudu/plating.py b/src/pudu/plating.py index 0f7cb8d..a9e6a6c 100644 --- a/src/pudu/plating.py +++ b/src/pudu/plating.py @@ -10,6 +10,8 @@ class Plating(): """ def __init__(self, + plating_data: Optional[Dict] = None, + json_params: Optional[Dict] = None, volume_total_reaction: float = 20, volume_bacteria_transfer: float = 2, volume_colony: float = 4, @@ -17,25 +19,22 @@ def __init__(self, volume_lb: float = 10000, replicates: int = 1, number_dilutions: int = 2, - max_colonies = 192, + max_colonies: int = 192, thermocycler_starting_well: int = 0, - # thermocycler_labware: str = 'nest_96_wellplate_100ul_pcr_full_skirt', thermocycler_labware: str = 'biorad_96_wellplate_200ul_pcr', small_tiprack: str = 'opentrons_96_filtertiprack_20ul', small_tiprack_position: str = '9', - initial_small_tip: str = None, + initial_small_tip: Optional[str] = None, large_tiprack: str = 'opentrons_96_filtertiprack_200ul', large_tiprack_position: str = '1', - initial_large_tip:str = None, + initial_large_tip: Optional[str] = None, small_pipette: str = 'p20_single_gen2', small_pipette_position: str = 'left', large_pipette: str = 'p300_single_gen2', large_pipette_position: str = 'right', - - # dilution_plate: str = 'nest_96_wellplate_200ul_flat', dilution_plate: str = 'nest_96_wellplate_100ul_pcr_full_skirt', dilution_plate_position1: str = '2', dilution_plate_position2: str = '3', @@ -49,42 +48,88 @@ def __init__(self, aspiration_rate: float = 0.5, dispense_rate: float = 1, - bacterium_locations: Dict = None): - - self.volume_total_reaction = volume_total_reaction - self.volume_bacteria_transfer = volume_bacteria_transfer - self.volume_colony = volume_colony - self.volume_lb_transfer = volume_lb_transfer - self.volume_lb = volume_lb - self.replicates = replicates - self.number_dilutions = number_dilutions - self.thermocycler_starting_well = thermocycler_starting_well - self.thermocycler_labware = thermocycler_labware - self.small_tiprack = small_tiprack - self.small_tiprack_position = small_tiprack_position - self.initial_small_tip = initial_small_tip - self.large_tiprack = large_tiprack - self.large_tiprack_position = large_tiprack_position - self.initial_large_tip = initial_large_tip - self.small_pipette = small_pipette - self.small_pipette_position = small_pipette_position - self.large_pipette = large_pipette - self.large_pipette_position = large_pipette_position - self.dilution_plate = dilution_plate - self.dilution_plate_position1 = dilution_plate_position1 - self.dilution_plate_position2 = dilution_plate_position2 - self.agar_plate = agar_plate - self.agar_plate_position1 = agar_plate_position1 - self.agar_plate_position2 = agar_plate_position2 - self.tube_rack = tube_rack - self.tube_rack_position = tube_rack_position - self.lb_tube_position = lb_tube_position - self.aspiration_rate = aspiration_rate - self.dispense_rate = dispense_rate - self.bacterium_locations = bacterium_locations - self.number_constructs = len(bacterium_locations) + bacterium_locations: Optional[Dict] = None, + **kwargs): + + # Collect kwargs for merging + kwargs_params = { + 'volume_total_reaction': volume_total_reaction, + 'volume_bacteria_transfer': volume_bacteria_transfer, + 'volume_colony': volume_colony, + 'volume_lb_transfer': volume_lb_transfer, + 'volume_lb': volume_lb, + 'replicates': replicates, + 'number_dilutions': number_dilutions, + 'max_colonies': max_colonies, + 'thermocycler_starting_well': thermocycler_starting_well, + 'thermocycler_labware': thermocycler_labware, + 'small_tiprack': small_tiprack, + 'small_tiprack_position': small_tiprack_position, + 'initial_small_tip': initial_small_tip, + 'large_tiprack': large_tiprack, + 'large_tiprack_position': large_tiprack_position, + 'initial_large_tip': initial_large_tip, + 'small_pipette': small_pipette, + 'small_pipette_position': small_pipette_position, + 'large_pipette': large_pipette, + 'large_pipette_position': large_pipette_position, + 'dilution_plate': dilution_plate, + 'dilution_plate_position1': dilution_plate_position1, + 'dilution_plate_position2': dilution_plate_position2, + 'agar_plate': agar_plate, + 'agar_plate_position1': agar_plate_position1, + 'agar_plate_position2': agar_plate_position2, + 'tube_rack': tube_rack, + 'tube_rack_position': tube_rack_position, + 'lb_tube_position': lb_tube_position, + 'aspiration_rate': aspiration_rate, + 'dispense_rate': dispense_rate, + 'bacterium_locations': bacterium_locations + } + + kwargs_params.update(kwargs) + + self._merged_params = self._merge_params(plating_data, json_params, kwargs_params) + + if self._merged_params.get('bacterium_locations') is None: + raise ValueError("Must input bacterium_locations (either via plating_data, advanced_params, or bacterium_locations parameter)") + + self.volume_total_reaction = self._merged_params['volume_total_reaction'] + self.volume_bacteria_transfer = self._merged_params['volume_bacteria_transfer'] + self.volume_colony = self._merged_params['volume_colony'] + self.volume_lb_transfer = self._merged_params['volume_lb_transfer'] + self.volume_lb = self._merged_params['volume_lb'] + self.replicates = self._merged_params['replicates'] + self.number_dilutions = self._merged_params['number_dilutions'] + self.thermocycler_starting_well = self._merged_params['thermocycler_starting_well'] + self.thermocycler_labware = self._merged_params['thermocycler_labware'] + self.small_tiprack = self._merged_params['small_tiprack'] + self.small_tiprack_position = self._merged_params['small_tiprack_position'] + self.initial_small_tip = self._merged_params['initial_small_tip'] + self.large_tiprack = self._merged_params['large_tiprack'] + self.large_tiprack_position = self._merged_params['large_tiprack_position'] + self.initial_large_tip = self._merged_params['initial_large_tip'] + self.small_pipette = self._merged_params['small_pipette'] + self.small_pipette_position = self._merged_params['small_pipette_position'] + self.large_pipette = self._merged_params['large_pipette'] + self.large_pipette_position = self._merged_params['large_pipette_position'] + self.dilution_plate = self._merged_params['dilution_plate'] + self.dilution_plate_position1 = self._merged_params['dilution_plate_position1'] + self.dilution_plate_position2 = self._merged_params['dilution_plate_position2'] + self.agar_plate = self._merged_params['agar_plate'] + self.agar_plate_position1 = self._merged_params['agar_plate_position1'] + self.agar_plate_position2 = self._merged_params['agar_plate_position2'] + self.tube_rack = self._merged_params['tube_rack'] + self.tube_rack_position = self._merged_params['tube_rack_position'] + self.lb_tube_position = self._merged_params['lb_tube_position'] + self.aspiration_rate = self._merged_params['aspiration_rate'] + self.dispense_rate = self._merged_params['dispense_rate'] + self.bacterium_locations = self._merged_params['bacterium_locations'] + self.number_constructs = len(self.bacterium_locations) + self.max_colonies = self._merged_params['max_colonies'] + self.total_colonies = self.number_constructs * self.number_dilutions * self.replicates - self.max_colonies = max_colonies + if self.total_colonies > self.max_colonies: raise ValueError(f"Protocol only supports a max of {self.max_colonies} colonies") if self.replicates > 8: @@ -92,6 +137,95 @@ def __init__(self, if self.number_dilutions > 2: raise ValueError("Protocol currently supports a max of 2 dilutions") + def _merge_params(self, plating_data: Optional[Dict], json_params: Optional[Dict], kwargs_params: Dict) -> Dict: + """ + Merge parameters with precedence: defaults <- plating_data <- json_params <- kwargs + + Args: + plating_data: Optional dict containing protocol data (bacterium_locations) + json_params: Optional dict containing configuration parameters + kwargs_params: Dict of parameters passed as kwargs + + Returns: + Merged parameter dictionary + """ + # Define defaults for all valid parameters + valid_params = { + 'volume_total_reaction': 20, + 'volume_bacteria_transfer': 2, + 'volume_colony': 4, + 'volume_lb_transfer': 18, + 'volume_lb': 10000, + 'replicates': 1, + 'number_dilutions': 2, + 'max_colonies': 192, + 'thermocycler_starting_well': 0, + 'thermocycler_labware': 'biorad_96_wellplate_200ul_pcr', + 'small_tiprack': 'opentrons_96_filtertiprack_20ul', + 'small_tiprack_position': '9', + 'initial_small_tip': None, + 'large_tiprack': 'opentrons_96_filtertiprack_200ul', + 'large_tiprack_position': '1', + 'initial_large_tip': None, + 'small_pipette': 'p20_single_gen2', + 'small_pipette_position': 'left', + 'large_pipette': 'p300_single_gen2', + 'large_pipette_position': 'right', + 'dilution_plate': 'nest_96_wellplate_100ul_pcr_full_skirt', + 'dilution_plate_position1': '2', + 'dilution_plate_position2': '3', + 'agar_plate': 'nest_96_wellplate_100ul_pcr_full_skirt', + 'agar_plate_position1': '5', + 'agar_plate_position2': '6', + 'tube_rack': 'opentrons_15_tuberack_falcon_15ml_conical', + 'tube_rack_position': '4', + 'lb_tube_position': 0, + 'aspiration_rate': 0.5, + 'dispense_rate': 1, + 'bacterium_locations': None + } + + # Start with defaults + merged = valid_params.copy() + + # Apply plating_data (if provided) + if plating_data is not None: + self._validate_param_structure(plating_data, valid_params, 'plating_data') + merged.update(plating_data) + + # Apply json_params (if provided) + if json_params is not None: + self._validate_param_structure(json_params, valid_params, 'json_params') + merged.update(json_params) + + # Apply kwargs (highest precedence) - only if they differ from defaults + for key, value in kwargs_params.items(): + if key in valid_params: + # Only override if the value is explicitly different from the default + if value != valid_params[key]: + merged[key] = value + + return merged + + def _validate_param_structure(self, params: Dict, valid_params: Dict, param_name: str): + """ + Validate that all parameters in the dict are recognized. + + Args: + params: Dictionary to validate + valid_params: Dictionary of valid parameter names + param_name: Name of the parameter dict (for error messages) + + Raises: + ValueError: If unknown parameters are found + """ + unknown_params = set(params.keys()) - set(valid_params.keys()) + if unknown_params: + raise ValueError( + f"Unknown parameters in {param_name}: {unknown_params}.\n" + f"Valid parameters are: {set(valid_params.keys())}" + ) + def calculate_plate_layout(self,protocol, plate1, plate2=None): """ Calculate the layout for colonies on plates with dynamic buffer between dilutions From 6b6dba9ba4684b15f1d0354dcfcd8bf2d1bc3b90 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Thu, 18 Dec 2025 22:12:54 -0700 Subject: [PATCH 091/118] Refactored `assembly.py` to support advanced parameter merging via `assembly_data` and `assemblies`, added `Optional` type hints, and improved error handling for assembly initialization. --- src/pudu/assembly.py | 102 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 90 insertions(+), 12 deletions(-) diff --git a/src/pudu/assembly.py b/src/pudu/assembly.py index b3b51d0..f4f1439 100644 --- a/src/pudu/assembly.py +++ b/src/pudu/assembly.py @@ -1,6 +1,6 @@ import xlsxwriter from opentrons import protocol_api -from typing import List, Dict +from typing import List, Dict, Optional from fnmatch import fnmatch from itertools import product import json @@ -14,7 +14,7 @@ class BaseAssembly(ABC): """ def __init__(self, - json_params: Dict = None, + json_params: Optional[Dict] = None, volume_total_reaction: float = 20, volume_part: float = 2, volume_restriction_enzyme: float = 2, @@ -26,10 +26,10 @@ def __init__(self, temperature_module_labware: str = 'opentrons_24_aluminumblock_nest_1.5ml_snapcap', temperature_module_position: str = '1', tiprack_labware: str = 'opentrons_96_tiprack_20ul', - tiprack_positions: List[str] = None, + tiprack_positions: Optional[List[str]] = None, pipette: str = 'p20_single_gen2', pipette_position: str = 'left', - initial_tip: str = None, + initial_tip: Optional[str] = None, aspiration_rate: float = 0.5, dispense_rate: float = 1, take_picture: bool = False, @@ -38,7 +38,7 @@ def __init__(self, output_xlsx: bool = True, protocol_name: str = ''): - params = self._merge_params(json_params,{ + kwargs_params = { 'volume_total_reaction': volume_total_reaction, 'volume_part': volume_part, 'volume_restriction_enzyme': volume_restriction_enzyme, @@ -61,7 +61,9 @@ def __init__(self, 'water_testing': water_testing, 'output_xlsx': output_xlsx, 'protocol_name': protocol_name - }) + } + + params = self._merge_params(json_params, kwargs_params) self.volume_total_reaction = params['volume_total_reaction'] self.volume_part = params['volume_part'] @@ -550,8 +552,33 @@ class Domestication(BaseAssembly): Each part is assembled separately with the backbone to create domesticated parts. """ - def __init__(self, assemblies: List[Dict], *args, **kwargs): - super().__init__(*args, **kwargs) + def __init__(self, + assembly_data: Optional[Dict] = None, + json_params: Optional[str] = None, + assemblies: Optional[List[Dict]] = None, + *args, **kwargs): + """ + Initialize Domestication Assembly protocol. + + Args: + assembly_data: Dict containing 'assemblies' key (new standardized approach) + advanced_params: Optional advanced parameters + assemblies: List of assembly dicts (backward compatibility) + *args, **kwargs: Passed to BaseAssembly + """ + # Handle parameter precedence: assembly_data <- assemblies kwarg + if assembly_data is not None: + if 'assemblies' in assembly_data: + assemblies = assembly_data['assemblies'] + else: + # Allow passing assemblies directly in assembly_data for flexibility + assemblies = assembly_data + + # Validate that assemblies were provided + if assemblies is None: + raise ValueError("Must provide assemblies either via assembly_data or assemblies parameter") + + super().__init__(json_params=json_params, *args, **kwargs) self.assemblies = assemblies self.parts_list = [] self.backbone = "" @@ -742,7 +769,7 @@ def _validate_assembly_requirements(self): f'({len(self.parts_list)} parts × {self.replicates} replicates).' ) - self._validate_reaction_volumes(num_parts=2) + self._validate_reaction_volumes(num_parts=len(self.parts_list)) def _reset_assembly_state(self): """Reset assembly processing state""" @@ -757,7 +784,33 @@ class ManualLoopAssembly(BaseAssembly): Supports Odd/Even pattern detection for automatic enzyme selection. """ - def __init__(self, assemblies: List[Dict], *args, **kwargs): + def __init__(self, + assembly_data: Optional[Dict] = None, + json_params: Optional[str] = None, + assemblies: Optional[List[Dict]] = None, + *args, **kwargs): + """ + Initialize Manual Loop Assembly protocol. + + Args: + assembly_data: Dict containing 'assemblies' key (new standardized approach) + json_params: Optional advanced parameters + assemblies: List of assembly dicts (backward compatibility) + *args, **kwargs: Passed to BaseAssembly + """ + # Handle parameter precedence: assembly_data <- assemblies kwarg + if assembly_data is not None: + if 'assemblies' in assembly_data: + assemblies = assembly_data['assemblies'] + else: + # Allow passing assemblies directly in assembly_data for flexibility + assemblies = assembly_data + + # Validate that assemblies were provided + if assemblies is None: + raise ValueError("Must provide assemblies either via assembly_data or assemblies parameter") + + super().__init__(json_params=json_params, *args, **kwargs) super().__init__(*args, **kwargs) self.assemblies = assemblies self.pattern_odd = 'Odd*' @@ -991,8 +1044,33 @@ class SBOLLoopAssembly(BaseAssembly): Each assembly dictionary represents one specific construct to build. """ - def __init__(self, assemblies: List[Dict], *args, **kwargs): - super().__init__(*args, **kwargs) + def __init__(self, + assembly_data: Optional[Dict] = None, + json_params: Optional[str] = None, + assemblies: Optional[List[Dict]] = None, + *args, **kwargs): + """ + Initialize SBOL Loop Assembly protocol. + + Args: + assembly_data: Dict containing 'assemblies' key (new standardized approach) + advanced_params: Optional advanced parameters + assemblies: List of assembly dicts (backward compatibility) + *args, **kwargs: Passed to BaseAssembly + """ + # Handle parameter precedence: assembly_data <- assemblies kwarg + if assembly_data is not None: + if 'assemblies' in assembly_data: + assemblies = assembly_data['assemblies'] + else: + # Allow passing assemblies directly in assembly_data for flexibility + assemblies = assembly_data + + # Validate that assemblies were provided + if assemblies is None: + raise ValueError("Must provide assemblies either via assembly_data or assemblies parameter") + + super().__init__(json_params=json_params, *args, **kwargs) self.assemblies = assemblies self.parts_set = set() self.backbone_set = set() From 94a36e4588accda0948d7f374c1b7203ec483391 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Thu, 18 Dec 2025 22:41:39 -0700 Subject: [PATCH 092/118] Added `generate_protocol.py` to enable protocol generation for assembly, transformation, and plating, with support for JSON-based input, metadata customization, and automatic protocol type detection. --- src/pudu/generate_protocol.py | 439 ++++++++++++++++++++++++++++++++++ 1 file changed, 439 insertions(+) create mode 100644 src/pudu/generate_protocol.py diff --git a/src/pudu/generate_protocol.py b/src/pudu/generate_protocol.py new file mode 100644 index 0000000..2d39f92 --- /dev/null +++ b/src/pudu/generate_protocol.py @@ -0,0 +1,439 @@ +""" +Protocol Generator for PUDU + +Generates standalone Opentrons protocol files from JSON inputs. +The generated protocols can be uploaded directly to the Opentrons App. + +Usage: + # Assembly protocols + python -m pudu.generate_protocol input.json [params.json] -o output.py --protocol-type assembly + + # Transformation protocols + python -m pudu.generate_protocol input.json [params.json] -o output.py --protocol-type transformation + + # Plating protocols + python -m pudu.generate_protocol input.json [params.json] -o output.py --protocol-type plating +""" + +import json +import argparse +import sys +from pathlib import Path +from typing import Dict, List, Optional, Any + +# Default metadata that can be overridden +DEFAULT_METADATA = { + 'protocolName': 'PUDU Protocol', + 'author': 'Researcher', + 'description': 'Automated protocol', + 'apiLevel': '2.20' +} + +# Protocol type configurations +PROTOCOL_CONFIGS = { + 'assembly': { + 'data_key': 'assembly_data', # Unified: all protocols use _data + 'data_param': 'assembly_data', # Parameter name for class init + 'class_map': { + 'SBOL': 'SBOLLoopAssembly', + 'Manual': 'ManualLoopAssembly', + 'Domestication': 'Domestication' + }, + 'module': 'pudu.assembly', + 'metadata_name': 'PUDU Assembly Protocol' + }, + 'transformation': { + 'data_key': 'transformation_data', + 'data_param': 'transformation_data', # Parameter name for class init + 'class_name': 'HeatShockTransformation', + 'module': 'pudu.transformation', + 'metadata_name': 'PUDU Transformation Protocol' + }, + 'plating': { + 'data_key': 'plating_data', + 'data_param': 'plating_data', # Parameter name for class init + 'class_name': 'Plating', + 'module': 'pudu.plating', + 'metadata_name': 'PUDU Plating Protocol' + } +} + +def detect_protocol_type(data) -> tuple[str, Optional[str]]: + """ + Detect the protocol type and assembly subtype from the data structure. + + Args: + data: Protocol data (can be dict or list) + + Returns: + Tuple of (protocol_type, assembly_subtype) + - protocol_type: 'assembly', 'transformation', or 'plating' + - assembly_subtype: 'SBOL', 'Manual', 'Domestication', or None + """ + # Handle legacy format: bare list of assemblies + if isinstance(data, list): + if not data: + raise ValueError("Empty data provided") + + first_item = data[0] + + # Check for SBOL format + sbol_keys = {'Product', 'Backbone', 'PartsList', 'Restriction Enzyme'} + if sbol_keys.issubset(set(first_item.keys())): + return 'assembly', 'SBOL' + + # Check for Manual format + if 'receiver' in first_item: + return 'assembly', 'Manual' + + # Check for Domestication format + if 'parts' in first_item and 'backbone' in first_item and 'restriction_enzyme' in first_item: + return 'assembly', 'Domestication' + + # Default to SBOL + return 'assembly', 'SBOL' + + # Handle new format: wrapped dict + if isinstance(data, dict): + # Check for assembly types + if 'assemblies' in data: + assemblies = data['assemblies'] + if not assemblies: + raise ValueError("No assemblies provided") + + first_assembly = assemblies[0] + + # Check for SBOL format + sbol_keys = {'Product', 'Backbone', 'PartsList', 'Restriction Enzyme'} + if sbol_keys.issubset(set(first_assembly.keys())): + return 'assembly', 'SBOL' + + # Check for Manual format + if 'receiver' in first_assembly: + return 'assembly', 'Manual' + + # Check for Domestication format + if 'parts' in first_assembly and 'backbone' in first_assembly and 'restriction_enzyme' in first_assembly: + return 'assembly', 'Domestication' + + # Default to SBOL + return 'assembly', 'SBOL' + + # Check for transformation + if 'list_of_dna' in data and 'competent_cells' in data: + return 'transformation', None + + # Check for plating + if 'bacterium_locations' in data: + return 'plating', None + + raise ValueError("Unable to detect protocol type. Please specify --protocol-type explicitly.") + +def format_python_value(value, indent_level=0): + """ + Format a Python value for code generation with proper indentation. + + Args: + value: The value to format (dict, list, str, int, float, bool, None) + indent_level: Current indentation level + + Returns: + Formatted string representation + """ + indent = ' ' * indent_level + + if value is None: + return 'None' + elif isinstance(value, bool): + return str(value) + elif isinstance(value, (int, float)): + return str(value) + elif isinstance(value, str): + # Escape quotes and use repr for safety + return repr(value) + elif isinstance(value, list): + if not value: + return '[]' + # Format list with proper indentation + items = [format_python_value(item, indent_level + 1) for item in value] + if all(isinstance(item, str) for item in value): + # Simple list of strings - keep on one line if short + formatted = ', '.join(items) + if len(formatted) < 80: + return f'[{formatted}]' + # Multi-line list + formatted_items = ',\n'.join(f'{indent} {item}' for item in items) + return f'[\n{formatted_items}\n{indent}]' + elif isinstance(value, dict): + if not value: + return '{}' + # Format dict with proper indentation + items = [] + for key, val in value.items(): + formatted_key = repr(key) + formatted_val = format_python_value(val, indent_level + 1) + items.append(f'{indent} {formatted_key}: {formatted_val}') + return '{\n' + ',\n'.join(items) + f'\n{indent}' + '}' + else: + return repr(value) + +def generate_protocol( + protocol_data: Any, + json_params: Optional[Dict] = None, + metadata: Optional[Dict] = None, + protocol_type: str = 'assembly', + assembly_subtype: Optional[str] = None +) -> str: + """ + Generate a complete Opentrons protocol file as a string. + + Args: + protocol_data: Protocol data (list for assemblies, or dict for other protocols) + json_params: Optional advanced parameters dictionary + metadata: Optional metadata dictionary (merged with defaults) + protocol_type: Type of protocol ('assembly', 'transformation', 'plating') + assembly_subtype: Subtype for assembly protocols ('SBOL', 'Manual', 'Domestication') + + Returns: + Complete protocol file as a string + """ + # Get protocol configuration + if protocol_type not in PROTOCOL_CONFIGS: + raise ValueError(f"Unknown protocol type: {protocol_type}") + + config = PROTOCOL_CONFIGS[protocol_type] + + # Merge metadata with defaults + final_metadata = DEFAULT_METADATA.copy() + final_metadata['protocolName'] = config['metadata_name'] + if metadata: + final_metadata.update(metadata) + + # Determine class name and data key + data_key = config['data_key'] + + if protocol_type == 'assembly': + if assembly_subtype is None: + raise ValueError("assembly_subtype required for assembly protocols") + class_name = config['class_map'].get(assembly_subtype, 'SBOLLoopAssembly') + + # Handle both legacy (list) and new (dict) formats + if isinstance(protocol_data, list): + actual_data = protocol_data + elif isinstance(protocol_data, dict) and 'assemblies' in protocol_data: + actual_data = protocol_data['assemblies'] + else: + actual_data = protocol_data + else: + class_name = config['class_name'] + actual_data = protocol_data + + module = config['module'] + + # Build the protocol file + lines = [] + + # Imports + lines.append(f"from {module} import {class_name}") + lines.append("from opentrons import protocol_api") + lines.append("") + lines.append("") + + # Assemblies + lines.append(f"# Protocol data") + lines.append(f"{data_key} = {format_python_value(actual_data)}") + lines.append("") + + # Advanced params (if provided) + if json_params: + lines.append("# Advanced parameters for protocol customization") + lines.append(f"json_params = {format_python_value(json_params)}") + lines.append("") + + # Metadata + lines.append("# Protocol metadata") + lines.append(f"metadata = {format_python_value(final_metadata)}") + lines.append("") + lines.append("") + + # Run function + lines.append("def run(protocol: protocol_api.ProtocolContext):") + lines.append(' """Main protocol execution function"""') + lines.append("") + + # Protocol initialization - unified data-driven approach + # All protocols now use _data + advanced_params pattern + data_param = config['data_param'] + + if json_params: + lines.append(f" protocol_instance = {class_name}(") + lines.append(f" {data_param}={data_key},") + lines.append(" json_params=json_params") + lines.append(" )") + else: + lines.append(f" protocol_instance = {class_name}({data_param}={data_key})") + + lines.append(" protocol_instance.run(protocol)") + lines.append("") + + return '\n'.join(lines) + +def main(): + """Command-line interface for protocol generation""" + parser = argparse.ArgumentParser( + description='Generate Opentrons protocol files from JSON inputs', + formatter_class=argparse.RawDescriptionHelpFormatter, + epilog=""" +Examples: + # Generate assembly protocol (auto-detect type) + python -m pudu.generate_protocol data.json params.json -o protocol.py --protocol-type assembly + + # Generate transformation protocol + python -m pudu.generate_protocol transformation.json params.json -o protocol.py --protocol-type transformation + + # Generate plating protocol + python -m pudu.generate_protocol plating.json -o protocol.py --protocol-type plating + + # Auto-detect protocol type + python -m pudu.generate_protocol data.json -o protocol.py + + # Specify assembly subtype explicitly + python -m pudu.generate_protocol assemblies.json -o protocol.py --protocol-type assembly --assembly-type Manual + """ + ) + + parser.add_argument( + 'input', + type=Path, + help='Path to protocol data JSON file' + ) + + parser.add_argument( + 'json_params', + type=Path, + nargs='?', + default=None, + help='Path to advanced parameters JSON file (optional)' + ) + + parser.add_argument( + '-o', '--output', + type=Path, + required=True, + help='Output protocol file path (e.g., protocol.py)' + ) + + parser.add_argument( + '--protocol-type', + choices=['assembly', 'transformation', 'plating'], + default=None, + help='Protocol type (default: auto-detect)' + ) + + parser.add_argument( + '--assembly-type', + choices=['SBOL', 'Manual', 'Domestication'], + default=None, + help='Assembly subtype for assembly protocols (default: auto-detect)' + ) + + parser.add_argument( + '--metadata', + type=Path, + default=None, + help='Path to metadata JSON file (optional)' + ) + + args = parser.parse_args() + + # Load protocol data + try: + with open(args.input, 'r') as f: + protocol_data = json.load(f) + except FileNotFoundError: + print(f"Error: Input file not found: {args.input}", file=sys.stderr) + sys.exit(1) + except json.JSONDecodeError as e: + print(f"Error: Invalid JSON in input file: {e}", file=sys.stderr) + sys.exit(1) + + # Load advanced params if provided + json_params = None + if args.json_params: + try: + with open(args.json_params, 'r') as f: + json_params = json.load(f) + except FileNotFoundError: + print(f"Error: Advanced params file not found: {args.json_params}", file=sys.stderr) + sys.exit(1) + except json.JSONDecodeError as e: + print(f"Error: Invalid JSON in advanced params file: {e}", file=sys.stderr) + sys.exit(1) + + # Load metadata if provided + metadata = None + if args.metadata: + try: + with open(args.metadata, 'r') as f: + metadata = json.load(f) + except FileNotFoundError: + print(f"Error: Metadata file not found: {args.metadata}", file=sys.stderr) + sys.exit(1) + except json.JSONDecodeError as e: + print(f"Error: Invalid JSON in metadata file: {e}", file=sys.stderr) + sys.exit(1) + + # Detect or use specified assembly type + if args.protocol_type: + protocol_type = args.protocol_type + assembly_subtype = args.assembly_type # May be None + + # If assembly type and no subtype specified, try to detect + if protocol_type == 'assembly' and assembly_subtype is None: + try: + _, assembly_subtype = detect_protocol_type(protocol_data) + print(f"Detected assembly subtype: {assembly_subtype}") + except ValueError as e: + print(f"Error: {e}", file=sys.stderr) + sys.exit(1) + else: + try: + protocol_type, assembly_subtype = detect_protocol_type(protocol_data) + print(f"Detected protocol type: {protocol_type}", end="") + if assembly_subtype: + print(f" ({assembly_subtype})") + else: + print() + except ValueError as e: + print(f"Error: {e}", file=sys.stderr) + sys.exit(1) + + # Generate protocol + try: + protocol_code = generate_protocol( + protocol_data=protocol_data, + json_params=json_params, + metadata=metadata, + protocol_type=protocol_type, + assembly_subtype=assembly_subtype + ) + except Exception as e: + print(f"Error generating protocol: {e}", file=sys.stderr) + sys.exit(1) + + # Write output + try: + with open(args.output, 'w') as f: + f.write(protocol_code) + print(f"✓ Protocol generated successfully: {args.output}") + print(f" Protocol type: {protocol_type}") + if assembly_subtype: + print(f" Assembly subtype: {assembly_subtype}") + if json_params: + print(f" Advanced params: {len(json_params)} parameters") + except IOError as e: + print(f"Error writing output file: {e}", file=sys.stderr) + sys.exit(1) + +if __name__ == '__main__': + main() From cdc79e61665a18fcde761ab62a9695882752817a Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Thu, 18 Dec 2025 23:59:22 -0700 Subject: [PATCH 093/118] Added transformation and plating input JSON export functionality for simulation, improved DNA and combination naming consistency for downstream protocols. --- src/pudu/assembly.py | 36 +++++++++++++++++++++++++++++++++--- src/pudu/transformation.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 3 deletions(-) diff --git a/src/pudu/assembly.py b/src/pudu/assembly.py index f4f1439..d62a845 100644 --- a/src/pudu/assembly.py +++ b/src/pudu/assembly.py @@ -485,6 +485,11 @@ def run(self, protocol: protocol_api.ProtocolContext): self.get_xlsx_output(self.protocol_name) except Exception as e: protocol.comment(f"Could not create Excel file: {e}") + # Export transformation input for next protocol (simulation only) + try: + self._export_transformation_input(protocol) + except Exception as e: + protocol.comment(f"Could not export transformation input: {e}") # Output results print('Parts and reagents in temp_module') @@ -495,6 +500,30 @@ def run(self, protocol: protocol_api.ProtocolContext): print(self.dna_list_for_transformation_protocol) # Helper methods (shared) + def _export_transformation_input(self, protocol, competent_cells='DH5alpha'): + """ + Export transformation input JSON during simulation. + + Args: + protocol: Protocol context + competent_cells: Competent cells to use for transformation (default: DH5alpha) + """ + + transformation_input = { + 'list_of_dna': self.dna_list_for_transformation_protocol, + 'competent_cells': competent_cells + } + + output_path = 'transformation_input.json' + with open(output_path, 'w') as f: + json.dump(transformation_input, f, indent=2) + + protocol.comment("\n" + "="*70) + protocol.comment(f"Generated {output_path} for next protocol") + protocol.comment(f" DNA constructs: {len(self.dna_list_for_transformation_protocol)}") + protocol.comment(f" Competent cells: {competent_cells}") + protocol.comment("="*70) + def _load_reagent(self, protocol, module_labware, well_position, name, description=None, volume=1000, color_index=None): """Load a reagent or DNA part onto the temperature module.""" @@ -720,7 +749,7 @@ def _process_assembly_combinations(self, protocol, pipette, thermo_plate, alum_b # Track assembly assembly_name = f"Part: {part}, Replicate: {r + 1}" self.dict_of_parts_in_thermocycler[assembly_name] = dest_well_name - self.dna_list_for_transformation_protocol.append((self.backbone, part, f'replicate_{r + 1}')) + self.dna_list_for_transformation_protocol.append(f"{part}_rep{r + 1}") thermocycler_well_counter += 1 @@ -1032,7 +1061,8 @@ def _process_combinations(self, protocol, pipette, combinations, restriction_enz # Track combination self.dict_of_parts_in_thermocycler[f"Replicate: {r + 1}, Combination: {combination}"] = dest_well_name - self.dna_list_for_transformation_protocol.append(combination + (f'replicate_{r + 1}',)) + combination_name = "_".join(combination) + self.dna_list_for_transformation_protocol.append(f"{combination_name}_rep{r + 1}") thermocycler_well_counter += 1 return thermocycler_well_counter @@ -1193,7 +1223,7 @@ def _process_assembly_combinations(self, protocol, pipette, thermo_plate, alum_b # Track assembly self.dict_of_parts_in_thermocycler[f"Replicate: {r + 1}, Product: {product_name}"] = dest_well_name - self.dna_list_for_transformation_protocol.append(tuple(parts + [f'replicate_{r + 1}'])) + self.dna_list_for_transformation_protocol.append(f"{product_name}_rep{r + 1}") thermocycler_well_counter += 1 return thermocycler_well_counter diff --git a/src/pudu/transformation.py b/src/pudu/transformation.py index 6be7324..b12b0b8 100644 --- a/src/pudu/transformation.py +++ b/src/pudu/transformation.py @@ -287,6 +287,27 @@ def __init__(self, self.dict_of_parts_in_temp_mod_position = {} self.dict_of_parts_in_thermocycler = {} + def _export_plating_input(self, protocol): + """ + Export plating input JSON during simulation. + Args: + protocol: Protocol context + """ + import json + + plating_input = { + 'bacterium_locations': self.dict_of_parts_in_thermocycler + } + + output_path = 'plating_input.json' + with open(output_path, 'w') as f: + json.dump(plating_input, f, indent=2) + + protocol.comment("\n" + "="*70) + protocol.comment(f"Generated {output_path} for next protocol") + protocol.comment(f" Bacteria locations: {len(self.dict_of_parts_in_thermocycler)}") + protocol.comment("="*70) + def liquid_transfer(self, protocol, pipette, volume, source, dest, asp_rate: float = 0.5, disp_rate: float = 1.0, blow_out: bool = True, touch_tip: bool = False, @@ -395,6 +416,13 @@ def run(self, protocol: protocol_api.ProtocolContext): if not self.water_testing: thermocycler_module.execute_profile(steps=recovery, repetitions=1, block_max_volume=30) + # Export plating input for next protocol (simulation only) + if protocol.is_simulating(): + try: + self._export_plating_input(protocol) + except Exception as e: + protocol.comment(f"Could not export plating input: {e}") + # output print('Strain and media tube in temp_mod') print(self.dict_of_parts_in_temp_mod_position) From 3e3c56679ca3d15f423537317b32ea1ed4e3e9ce Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Thu, 18 Dec 2025 23:59:50 -0700 Subject: [PATCH 094/118] Updated `apiLevel` to 2.21 in `generate_protocol.py`. --- src/pudu/generate_protocol.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pudu/generate_protocol.py b/src/pudu/generate_protocol.py index 2d39f92..7892890 100644 --- a/src/pudu/generate_protocol.py +++ b/src/pudu/generate_protocol.py @@ -26,7 +26,7 @@ 'protocolName': 'PUDU Protocol', 'author': 'Researcher', 'description': 'Automated protocol', - 'apiLevel': '2.20' + 'apiLevel': '2.21' } # Protocol type configurations From 8a2b1ae2ca85d5925b71c42216bf5a3c22a327bc Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Thu, 15 Jan 2026 20:59:00 -0700 Subject: [PATCH 095/118] Fixed hardcoded `num_parts=2` in `_validate_reaction_volumes` within `assembly.py` and removed redundant initialization in constructor. --- src/pudu/assembly.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pudu/assembly.py b/src/pudu/assembly.py index d62a845..4a07163 100644 --- a/src/pudu/assembly.py +++ b/src/pudu/assembly.py @@ -798,7 +798,7 @@ def _validate_assembly_requirements(self): f'({len(self.parts_list)} parts × {self.replicates} replicates).' ) - self._validate_reaction_volumes(num_parts=len(self.parts_list)) + self._validate_reaction_volumes(num_parts=2) def _reset_assembly_state(self): """Reset assembly processing state""" @@ -840,7 +840,7 @@ def __init__(self, raise ValueError("Must provide assemblies either via assembly_data or assemblies parameter") super().__init__(json_params=json_params, *args, **kwargs) - super().__init__(*args, **kwargs) + self.assemblies = assemblies self.pattern_odd = 'Odd*' self.pattern_even = 'Even*' From 24b961c4af1b4eb211ecc06ec43769b200800b75 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Wed, 4 Mar 2026 23:34:20 -0700 Subject: [PATCH 096/118] Refactor HeatShockTransformation transfer logic and add protocol generator improvements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit transformation.py: - Introduce self.plasmid_name_to_wells (name → [well_obj, ...]) populated at load time, replacing all positional/enumeration-based DNA well lookups - Introduce self.location_replicates derived from plasmid_locations, unifying 96-well plate and temp module code paths into a single loop structure - Rewrite _transfer_competent_cells with sequential well_index counter and per-chassis chassis_reaction_count dict for correct tube selection across multiple chassis types - Rewrite _transfer_DNA as a unified single method with no plate/temp module branching; uses self.transformations as ground truth throughout - _load_dna_into_dna_plate / _load_dna_into_temp_module now populate plasmid_name_to_wells instead of returning DNA_wells - _load_reagents_96plate / _load_reagents_temp_module return 2-tuple; _validate_protocol accounts for location_replicates in reaction counts - Add strain as first entry in dict_of_parts_in_thermocycler per well - Rewrite Transformation base class docstring to match current parameters; add comprehensive HeatShockTransformation docstring for all subclass params generate_protocol.py: - Add generate_param_reference() to append a commented parameter table and full docstrings to every generated protocol for last-minute editing - Add --plasmid-locations CLI flag and plasmid_locations support throughout - Raise line-length threshold from 80 to 100 for single-line list formatting - Improve transformation protocol auto-detection for bare list format assembly.py: - Initialize self.product_uri_to_wells = {} Co-Authored-By: Claude Sonnet 4.5 --- src/pudu/assembly.py | 33 +- src/pudu/generate_protocol.py | 190 ++++++++++- src/pudu/transformation.py | 627 +++++++++++++++++++++++++--------- 3 files changed, 654 insertions(+), 196 deletions(-) diff --git a/src/pudu/assembly.py b/src/pudu/assembly.py index 4a07163..b5ab761 100644 --- a/src/pudu/assembly.py +++ b/src/pudu/assembly.py @@ -95,6 +95,7 @@ def __init__(self, self.dict_of_parts_in_temp_mod_position = {} self.dict_of_parts_in_thermocycler = {} self.dna_list_for_transformation_protocol = [] + self.product_uri_to_wells = {} self.xlsx_output = None #Initialize Camera @@ -500,28 +501,18 @@ def run(self, protocol: protocol_api.ProtocolContext): print(self.dna_list_for_transformation_protocol) # Helper methods (shared) - def _export_transformation_input(self, protocol, competent_cells='DH5alpha'): + def _export_transformation_input(self, protocol): """ - Export transformation input JSON during simulation. - - Args: - protocol: Protocol context - competent_cells: Competent cells to use for transformation (default: DH5alpha) + Export plasmid location JSON during simulation for use by transformation protocol. + Format: { "product_uri": ["well1", "well2", ...], ... } """ - - transformation_input = { - 'list_of_dna': self.dna_list_for_transformation_protocol, - 'competent_cells': competent_cells - } - output_path = 'transformation_input.json' with open(output_path, 'w') as f: - json.dump(transformation_input, f, indent=2) + json.dump(self.product_uri_to_wells, f, indent=2) protocol.comment("\n" + "="*70) - protocol.comment(f"Generated {output_path} for next protocol") - protocol.comment(f" DNA constructs: {len(self.dna_list_for_transformation_protocol)}") - protocol.comment(f" Competent cells: {competent_cells}") + protocol.comment(f"Generated {output_path} for transformation protocol") + protocol.comment(f" Products: {len(self.product_uri_to_wells)}") protocol.comment("="*70) def _load_reagent(self, protocol, module_labware, well_position, name, description=None, @@ -1133,7 +1124,8 @@ def process_assemblies(self): assembly_combo = { 'parts': [backbone_name] + part_names, # Include backbone as first part 'enzyme': enzyme_name, - 'product': product_name + 'product': product_name, + 'product_uri': assembly["Product"] } self.assembly_combinations.append(assembly_combo) @@ -1224,6 +1216,13 @@ def _process_assembly_combinations(self, protocol, pipette, thermo_plate, alum_b # Track assembly self.dict_of_parts_in_thermocycler[f"Replicate: {r + 1}, Product: {product_name}"] = dest_well_name self.dna_list_for_transformation_protocol.append(f"{product_name}_rep{r + 1}") + + # Track URI -> well locations for transformation export + product_uri = assembly_combo['product_uri'] + if product_uri not in self.product_uri_to_wells: + self.product_uri_to_wells[product_uri] = [] + self.product_uri_to_wells[product_uri].append(dest_well_name) + thermocycler_well_counter += 1 return thermocycler_well_counter diff --git a/src/pudu/generate_protocol.py b/src/pudu/generate_protocol.py index 7892890..dc89474 100644 --- a/src/pudu/generate_protocol.py +++ b/src/pudu/generate_protocol.py @@ -70,14 +70,18 @@ def detect_protocol_type(data) -> tuple[str, Optional[str]]: - protocol_type: 'assembly', 'transformation', or 'plating' - assembly_subtype: 'SBOL', 'Manual', 'Domestication', or None """ - # Handle legacy format: bare list of assemblies + # Handle bare list formats if isinstance(data, list): if not data: raise ValueError("Empty data provided") first_item = data[0] - # Check for SBOL format + # Check for transformation format (Strain/Chassis/Plasmids) + if 'Strain' in first_item and 'Chassis' in first_item and 'Plasmids' in first_item: + return 'transformation', None + + # Check for SBOL assembly format sbol_keys = {'Product', 'Backbone', 'PartsList', 'Restriction Enzyme'} if sbol_keys.issubset(set(first_item.keys())): return 'assembly', 'SBOL' @@ -119,8 +123,8 @@ def detect_protocol_type(data) -> tuple[str, Optional[str]]: # Default to SBOL return 'assembly', 'SBOL' - # Check for transformation - if 'list_of_dna' in data and 'competent_cells' in data: + # Check for transformation (new SBOL format: list with Strain/Chassis/Plasmids) + if isinstance(data, list) and data and 'Strain' in data[0] and 'Chassis' in data[0] and 'Plasmids' in data[0]: return 'transformation', None # Check for plating @@ -159,7 +163,7 @@ def format_python_value(value, indent_level=0): if all(isinstance(item, str) for item in value): # Simple list of strings - keep on one line if short formatted = ', '.join(items) - if len(formatted) < 80: + if len(formatted) < 100: return f'[{formatted}]' # Multi-line list formatted_items = ',\n'.join(f'{indent} {item}' for item in items) @@ -177,12 +181,128 @@ def format_python_value(value, indent_level=0): else: return repr(value) +def _format_annotation(ann) -> str: + """Format a type annotation as a clean string for display in comments.""" + import inspect + if ann is inspect.Parameter.empty: + return '' + if hasattr(ann, '__name__'): + return ann.__name__ + # Clean up typing generics: typing.Optional[typing.Dict] -> Optional[Dict] + return str(ann).replace('typing.', '') + + +def generate_param_reference(protocol_type: str, class_name: str, module_str: str) -> str: + """ + Generate a commented parameter reference block for the end of the protocol file. + + Dynamically imports the protocol class and uses inspect to extract the full + __init__ signature and class docstrings, formatted as comments so users can + see all available parameters when making last-minute edits before running on + the robot. + + Args: + protocol_type: Protocol type string (e.g. 'transformation') + class_name: Protocol class name (e.g. 'HeatShockTransformation') + module_str: Fully-qualified module path (e.g. 'pudu.transformation') + + Returns: + Commented parameter reference block as a string, or a short error comment + if the class cannot be imported. + """ + try: + import importlib + import inspect + + mod = importlib.import_module(module_str) + cls = getattr(mod, class_name) + + lines = [] + lines.append("") + lines.append("") + lines.append("# " + "=" * 70) + lines.append(f"# PARAMETER REFERENCE — {class_name}") + lines.append("#") + lines.append("# To customize your protocol, add any of the parameters below") + lines.append(f"# to the {class_name}() constructor call in run() above.") + lines.append("# Example: protocol_instance = " + class_name + "(") + lines.append(f"# {PROTOCOL_CONFIGS[protocol_type]['data_param']}={PROTOCOL_CONFIGS[protocol_type]['data_key']},") + lines.append("# replicates=3,") + lines.append("# initial_tip='B1',") + lines.append("# )") + lines.append("# " + "=" * 70) + + # Collect all __init__ params walking the MRO from most-specific to base. + # Use an ordered dict so subclass params appear first. + seen_params = set() + mro_params = [] # list of (class, [(name, default, annotation), ...]) + + for klass in cls.__mro__: + if klass is object: + continue + try: + sig = inspect.signature(klass.__init__) + except (ValueError, TypeError): + continue + + klass_params = [] + for name, param in sig.parameters.items(): + if name in ('self', 'args', 'kwargs') or name in seen_params: + continue + seen_params.add(name) + default = param.default if param.default is not inspect.Parameter.empty else '(required)' + ann = _format_annotation(param.annotation) + klass_params.append((name, default, ann)) + + if klass_params: + mro_params.append((klass.__name__, klass_params)) + + # Build parameter table — group by class + if mro_params: + # Determine column widths across all params + all_param_entries = [(n, d, a) for _, params in mro_params for n, d, a in params] + max_name = max(len(n) for n, _, _ in all_param_entries) + max_type = max((len(a) for _, _, a in all_param_entries if a), default=0) + + for klass_name, params in mro_params: + lines.append("#") + lines.append(f"# [{klass_name}]") + for name, default, ann in params: + type_col = ann.ljust(max_type) if ann else ' ' * max_type + default_repr = repr(default) if not isinstance(default, str) else default + lines.append(f"# {name:<{max_name}} {type_col} = {default_repr}") + + # Append full docstrings for detailed descriptions + lines.append("#") + lines.append("# " + "-" * 70) + lines.append("# Full parameter descriptions:") + + seen_docs: set = set() + for klass in cls.__mro__: + if klass is object: + continue + doc = inspect.getdoc(klass) + if not doc or doc in seen_docs: + continue + seen_docs.add(doc) + lines.append("#") + lines.append(f"# [{klass.__name__}]") + for doc_line in doc.split('\n'): + lines.append(f"# {doc_line}" if doc_line.strip() else "#") + + return '\n'.join(lines) + + except Exception as e: + return f"\n\n# (Parameter reference unavailable: {e})" + + def generate_protocol( protocol_data: Any, json_params: Optional[Dict] = None, metadata: Optional[Dict] = None, protocol_type: str = 'assembly', - assembly_subtype: Optional[str] = None + assembly_subtype: Optional[str] = None, + plasmid_locations: Optional[Dict] = None ) -> str: """ Generate a complete Opentrons protocol file as a string. @@ -193,6 +313,7 @@ def generate_protocol( metadata: Optional metadata dictionary (merged with defaults) protocol_type: Type of protocol ('assembly', 'transformation', 'plating') assembly_subtype: Subtype for assembly protocols ('SBOL', 'Manual', 'Domestication') + plasmid_locations: Optional dict mapping plasmid URIs to well locations (from assembly output) Returns: Complete protocol file as a string @@ -239,11 +360,17 @@ def generate_protocol( lines.append("") lines.append("") - # Assemblies + # Protocol data lines.append(f"# Protocol data") lines.append(f"{data_key} = {format_python_value(actual_data)}") lines.append("") + # Plasmid locations (transformation only, from assembly output) + if plasmid_locations is not None: + lines.append("# Plasmid well locations from assembly protocol output") + lines.append(f"plasmid_locations = {format_python_value(plasmid_locations)}") + lines.append("") + # Advanced params (if provided) if json_params: lines.append("# Advanced parameters for protocol customization") @@ -265,17 +392,30 @@ def generate_protocol( # All protocols now use _data + advanced_params pattern data_param = config['data_param'] + # Build constructor arguments + constructor_args = [f"{data_param}={data_key}"] + if plasmid_locations is not None: + constructor_args.append("plasmid_locations=plasmid_locations") if json_params: + constructor_args.append("json_params=json_params") + + if len(constructor_args) > 1: lines.append(f" protocol_instance = {class_name}(") - lines.append(f" {data_param}={data_key},") - lines.append(" json_params=json_params") + for i, arg in enumerate(constructor_args): + comma = "," if i < len(constructor_args) - 1 else "" + lines.append(f" {arg}{comma}") lines.append(" )") else: - lines.append(f" protocol_instance = {class_name}({data_param}={data_key})") + lines.append(f" protocol_instance = {class_name}({constructor_args[0]})") lines.append(" protocol_instance.run(protocol)") lines.append("") + # Parameter reference block — appended as comments for last-minute editing + param_ref = generate_param_reference(protocol_type, class_name, module) + if param_ref: + lines.append(param_ref) + return '\n'.join(lines) def main(): @@ -288,8 +428,11 @@ def main(): # Generate assembly protocol (auto-detect type) python -m pudu.generate_protocol data.json params.json -o protocol.py --protocol-type assembly - # Generate transformation protocol - python -m pudu.generate_protocol transformation.json params.json -o protocol.py --protocol-type transformation + # Generate transformation protocol with assembly output + python -m pudu.generate_protocol synbiosuite.json params.json -o protocol.py --protocol-type transformation --plasmid-locations transformation_input.json + + # Generate transformation protocol without prior assembly (manual input) + python -m pudu.generate_protocol synbiosuite.json params.json -o protocol.py --protocol-type transformation # Generate plating protocol python -m pudu.generate_protocol plating.json -o protocol.py --protocol-type plating @@ -337,6 +480,13 @@ def main(): help='Assembly subtype for assembly protocols (default: auto-detect)' ) + parser.add_argument( + '--plasmid-locations', + type=Path, + default=None, + help='Path to plasmid locations JSON file from assembly simulation (transformation protocols only)' + ) + parser.add_argument( '--metadata', type=Path, @@ -370,6 +520,19 @@ def main(): print(f"Error: Invalid JSON in advanced params file: {e}", file=sys.stderr) sys.exit(1) + # Load plasmid locations if provided + plasmid_locations = None + if args.plasmid_locations: + try: + with open(args.plasmid_locations, 'r') as f: + plasmid_locations = json.load(f) + except FileNotFoundError: + print(f"Error: Plasmid locations file not found: {args.plasmid_locations}", file=sys.stderr) + sys.exit(1) + except json.JSONDecodeError as e: + print(f"Error: Invalid JSON in plasmid locations file: {e}", file=sys.stderr) + sys.exit(1) + # Load metadata if provided metadata = None if args.metadata: @@ -415,7 +578,8 @@ def main(): json_params=json_params, metadata=metadata, protocol_type=protocol_type, - assembly_subtype=assembly_subtype + assembly_subtype=assembly_subtype, + plasmid_locations=plasmid_locations ) except Exception as e: print(f"Error generating protocol: {e}", file=sys.stderr) diff --git a/src/pudu/transformation.py b/src/pudu/transformation.py index 9debca3..b90ea0e 100644 --- a/src/pudu/transformation.py +++ b/src/pudu/transformation.py @@ -5,47 +5,76 @@ class Transformation(): ''' - Creates a protocol for automated transformation. + Base class for automated transformation protocols on the Opentrons OT-2. + + Handles loading transformation data, validating parameters, and providing + shared utilities used by all transformation subclasses. Subclasses implement + the specific thermocycler workflow (e.g. heat shock). Attributes ---------- volume_dna : float - The volume DNA in microliters. By default, 2 microliters. We suggest 2 microliters for extracted plasmid and 5 microliters for PCR products. - volume_competent_cells : float - The volume of the competent cells in microliters. By default, 50 microliters. - volume_recovery_media : float - The volume of recovery media in microliters. By default, 100 microliters. + Volume of DNA loaded into each source well, in microliters. By default, + 20 microliters. We suggest 2 µL for extracted plasmid and 5 µL for PCR + products when setting transfer_volume_dna in the subclass. replicates : int - The number of replicates of the assembly reaction. By default, 2. + Number of transformation replicates per strain per assembly location. + By default, 2. thermocycler_starting_well : int - The starting well of the thermocycler module. By default, 0. + Zero-indexed starting well in the thermocycler plate. By default, 0 (well A1). thermocycler_labware : str - The labware type of the thermocycler module. By default, 'nest_96_wellplate_100ul_pcr_full_skirt'. - thermocycler_slots : list - The slots of the thermocycler module. By default, [7, 8, 10, 11]. + Labware type for the thermocycler plate. + By default, 'nest_96_wellplate_100ul_pcr_full_skirt'. temperature_module_labware : str - The labware type of the temperature module. By default, 'opentrons_24_aluminumblock_nest_1.5ml_snapcap'. - temperature_module_position : int - The deck position of the temperature module. By default, 1. - tiprack_labware : str - The labware type of the tiprack. By default, 'opentrons_96_tiprack_20ul'. - tiprack_position : int - The deck position of the tiprack. By default, 9. - pipette_type : str - The type of pipette. By default, 'p20_single_gen2'. - pipette_mount : str - The mount of the pipette. By default, 'left'. + Labware type for the aluminum block on the temperature module. + By default, 'opentrons_24_aluminumblock_nest_1.5ml_snapcap'. + temperature_module_position : str + Deck slot for the temperature module. By default, '1'. + dna_plate : str + Labware type for the 96-well DNA source plate (used when use_dna_96plate=True). + By default, 'nest_96_wellplate_100ul_pcr_full_skirt'. + dna_plate_position : str + Deck slot for the 96-well DNA source plate. By default, '2'. + use_dna_96plate : bool + If True, DNA is sourced from a 96-well plate at fixed positions given by + plasmid_locations. Automatically set to True when plasmid_locations is + provided. By default, False. + tiprack_p20_labware : str + Labware type for the p20 tip rack. By default, 'opentrons_96_tiprack_20ul'. + tiprack_p20_position : str + Deck slot for the p20 tip rack. By default, '9'. + tiprack_p200_labware : str + Labware type for the p200 tip rack. + By default, 'opentrons_96_filtertiprack_200ul'. + tiprack_p200_position : str + Deck slot for the p200 tip rack. By default, '6'. + pipette_p20 : str + Pipette model for the p20 single-channel. By default, 'p20_single_gen2'. + pipette_p20_position : str + Mount for the p20 pipette ('left' or 'right'). By default, 'left'. + pipette_p300 : str + Pipette model for the p300 single-channel. By default, 'p300_single_gen2'. + pipette_p300_position : str + Mount for the p300 pipette ('left' or 'right'). By default, 'right'. aspiration_rate : float - The rate of aspiration in microliters per second. By default, 0.5 microliters per second. + Relative aspiration speed as a fraction of the pipette's maximum flow + rate, where 1.0 is full speed and 0.5 is half speed. Lower values + reduce bubble formation. By default, 0.5. dispense_rate : float - The rate of dispense in microliters per second. By default, 1 microliter per second. + Relative dispense speed as a fraction of the pipette's maximum flow + rate, where 1.0 is full speed. By default, 1.0. + initial_dna_well : int + Zero-indexed starting well for DNA tubes on the aluminum block (used when + use_dna_96plate=False). By default, 0. + water_testing : bool + If True, uses water in place of competent cells and recovery media during + simulation/testing runs. By default, False. ''' def __init__(self, - transformation_data: Optional[Dict] = None, + transformation_data: Optional[List] = None, + plasmid_locations: Optional[Dict] = None, json_params: Optional[Dict] = None, - list_of_dna:Optional[List] = None, volume_dna:float = 20, - competent_cells: Optional[str] = None, replicates:int=2, thermocycler_starting_well:int = 0, thermocycler_labware:str = "nest_96_wellplate_100ul_pcr_full_skirt", @@ -70,9 +99,7 @@ def __init__(self, ): kwargs_params = { - 'list_of_dna': list_of_dna, 'volume_dna': volume_dna, - 'competent_cells': competent_cells, 'replicates': replicates, 'thermocycler_starting_well': thermocycler_starting_well, 'thermocycler_labware': thermocycler_labware, @@ -98,17 +125,15 @@ def __init__(self, self._merged_params = self._merge_params(transformation_data, json_params, kwargs_params) - if self._merged_params.get('list_of_dna') is None: - raise ValueError( - "Must input a list of DNA strings (either via transformation_data, advanced_params, or list_of_dna parameter)") - if self._merged_params.get('competent_cells') is None: - raise ValueError( - "Must input a competent cell string (either via transformation_data, advanced_params, or competent_cells parameter)") + # Parse and validate transformation data (new SBOL format) + if transformation_data is None: + raise ValueError("Must provide transformation_data as a list of transformation dictionaries") + + self.plasmid_locations = plasmid_locations # URI -> [well, well, ...] from assembly output + self.transformations, self.all_plasmids, self.all_chassis = self._parse_transformation_data(transformation_data) # Set all attributes from merged parameters - self.list_of_dna = self._merged_params['list_of_dna'] self.volume_dna = self._merged_params['volume_dna'] - self.competent_cells = self._merged_params['competent_cells'] self.replicates = self._merged_params['replicates'] self.thermocycler_starting_well = self._merged_params['thermocycler_starting_well'] self.thermocycler_labware = self._merged_params['thermocycler_labware'] @@ -117,6 +142,14 @@ def __init__(self, self.dna_plate = self._merged_params['dna_plate'] self.dna_plate_position = self._merged_params['dna_plate_position'] self.use_dna_96plate = self._merged_params['use_dna_96plate'] + + # 96-well plate and plasmid_locations are always paired: + # positions on the plate are fixed by the assembly run and cannot be assumed sequential + if self.use_dna_96plate and self.plasmid_locations is None: + raise ValueError("plasmid_locations must be provided when use_dna_96plate=True. " + "Well positions on the assembly plate are fixed and cannot be assumed sequential.") + if self.plasmid_locations is not None: + self.use_dna_96plate = True self.tiprack_p20_labware = self._merged_params['tiprack_p20_labware'] self.tiprack_p20_position = self._merged_params['tiprack_p20_position'] self.tiprack_p200_labware = self._merged_params['tiprack_p200_labware'] @@ -130,6 +163,81 @@ def __init__(self, self.initial_dna_well = self._merged_params['initial_dna_well'] self.water_testing = self._merged_params['water_testing'] + def _extract_name_from_uri(self, uri: str) -> str: + """Extract name from SBOL URI""" + if '/' in uri: + name_with_version = uri.split('/')[-2] + if '/' in name_with_version: + return name_with_version.split('/')[0] + return name_with_version + return uri + + def _parse_transformation_data(self, transformation_data): + """ + Parse new SBOL-style transformation data format. + + Expected format: + [ + { + "Strain": "https://SBOL2Build.org/composite_1/1", + "Chassis": "https://sbolcanvas.org/DH5alpha/1", + "Plasmids": ["https://...", "https://..."] + }, + ... + ] + + Returns: + transformations: List of dicts with strain, chassis, and plasmids + all_plasmids: Flat list of all unique plasmids + all_chassis: List of unique chassis types + """ + if not isinstance(transformation_data, list): + raise ValueError("transformation_data must be a list of transformation dictionaries") + + transformations = [] + all_plasmids_set = set() + all_chassis_set = set() + + for idx, transformation in enumerate(transformation_data): + # Validate required fields + if 'Strain' not in transformation: + raise ValueError(f"Transformation {idx} missing 'Strain' field") + if 'Chassis' not in transformation: + raise ValueError(f"Transformation {idx} missing 'Chassis' field") + if 'Plasmids' not in transformation: + raise ValueError(f"Transformation {idx} missing 'Plasmids' field") + if not isinstance(transformation['Plasmids'], list): + raise ValueError(f"Transformation {idx}: 'Plasmids' must be a list") + if len(transformation['Plasmids']) == 0: + raise ValueError(f"Transformation {idx}: 'Plasmids' list cannot be empty") + + # Extract names from URIs + strain_name = self._extract_name_from_uri(transformation['Strain']) + chassis_name = self._extract_name_from_uri(transformation['Chassis']) + plasmid_uris = transformation['Plasmids'] + plasmid_names = [self._extract_name_from_uri(p) for p in plasmid_uris] + + # If plasmid_locations provided, validate all plasmid URIs are present + if self.plasmid_locations is not None: + for uri in plasmid_uris: + if uri not in self.plasmid_locations: + raise ValueError( + f"Plasmid URI '{uri}' not found in plasmid_locations. " + f"Available URIs: {list(self.plasmid_locations.keys())}" + ) + + transformations.append({ + 'strain': strain_name, + 'chassis': chassis_name, + 'plasmids': plasmid_names, + 'plasmid_uris': plasmid_uris + }) + + all_plasmids_set.update(plasmid_names) + all_chassis_set.add(chassis_name) + + return transformations, list(sorted(all_plasmids_set)), list(sorted(all_chassis_set)) + def _merge_params(self, transformation_data: Optional[Dict], advanced_params: Optional[Dict], kwargs_params: Dict) -> Dict: """ Merge parameters with precedence: defaults <- transformation_data <- advanced_params <- kwargs @@ -146,9 +254,7 @@ def _merge_params(self, transformation_data: Optional[Dict], advanced_params: Op # Includes both Transformation and HeatShockTransformation parameters valid_params = { # Transformation base parameters - 'list_of_dna': None, 'volume_dna': 20, - 'competent_cells': None, 'replicates': 2, 'thermocycler_starting_well': 0, 'thermocycler_labware': 'nest_96_wellplate_100ul_pcr_full_skirt', @@ -184,11 +290,6 @@ def _merge_params(self, transformation_data: Optional[Dict], advanced_params: Op # Start with defaults merged = valid_params.copy() - # Apply transformation_data (if provided) - if transformation_data is not None: - self._validate_param_structure(transformation_data, valid_params, 'transformation_data') - merged.update(transformation_data) - # Apply advanced_params (if provided) if advanced_params is not None: self._validate_param_structure(advanced_params, valid_params, 'advanced_params') @@ -224,10 +325,53 @@ def _validate_param_structure(self, params: Dict, valid_params: Dict, param_name class HeatShockTransformation(Transformation): ''' - Creates a protocol for automated transformation. + Heat shock transformation protocol for the Opentrons OT-2. + + Automates the full heat shock transformation workflow: loading DNA and competent + cells into a thermocycler plate, running the heat shock cycle, adding recovery + media, and exporting a plating map for the next protocol step. + + Inherits all base parameters from Transformation. The attributes below are + specific to the heat shock transformation protocol. + + Attributes + ---------- + transfer_volume_dna : float + Volume of DNA to transfer into each thermocycler well, in microliters. + By default, 2 microliters. Note: this is the volume actually pipetted per + reaction, distinct from volume_dna (the volume loaded into the source well). + transfer_volume_competent_cell : float + Volume of competent cells to transfer into each thermocycler well, in + microliters. By default, 20 microliters. + tube_volume_competent_cell : float + Total usable volume of competent cells per tube, in microliters. Used to + calculate how many reactions each tube can supply before switching to the + next tube. By default, 100 microliters. + transfer_volume_recovery_media : float + Volume of recovery media to add to each well after heat shock, in + microliters. By default, 60 microliters. + tube_volume_recovery_media : float + Total usable volume of recovery media per tube, in microliters. Used to + calculate how many wells each tube can supply. By default, 1200 microliters. + cold_incubation1 : dict + First cold incubation step (on ice before heat shock). A dict with keys + 'temperature' (°C) and 'hold_time_minutes'. + By default, {'temperature': 4, 'hold_time_minutes': 30}. + heat_shock : dict + Heat shock step. A dict with keys 'temperature' (°C) and 'hold_time_minutes'. + By default, {'temperature': 42, 'hold_time_minutes': 1}. + cold_incubation2 : dict + Second cold incubation immediately after heat shock. A dict with keys + 'temperature' (°C) and 'hold_time_minutes'. + By default, {'temperature': 4, 'hold_time_minutes': 2}. + recovery_incubation : dict + Recovery incubation after recovery media addition. A dict with keys + 'temperature' (°C) and 'hold_time_minutes'. + By default, {'temperature': 37, 'hold_time_minutes': 60}. ''' def __init__(self, - transformation_data: Optional[Dict] = None, + transformation_data: Optional[List] = None, + plasmid_locations: Optional[Dict] = None, json_params: Optional[Dict] = None, transfer_volume_dna:float = 2, transfer_volume_competent_cell:float = 20, @@ -241,6 +385,7 @@ def __init__(self, *args, **kwargs): super().__init__( transformation_data=transformation_data, + plasmid_locations=plasmid_locations, json_params=json_params, transfer_volume_dna=transfer_volume_dna, transfer_volume_competent_cell=transfer_volume_competent_cell, @@ -285,6 +430,8 @@ def __init__(self, self.recovery_incubation = recovery_incubation self.dict_of_parts_in_temp_mod_position = {} self.dict_of_parts_in_thermocycler = {} + self.dict_of_parts_in_dna_plate = {} + self.plasmid_name_to_wells = {} # plasmid name -> [well_obj, ...], populated during loading def _export_plating_input(self, protocol): """ @@ -359,21 +506,15 @@ def run(self, protocol: protocol_api.ProtocolContext): tiprack_p200 = protocol.load_labware(self.tiprack_p200_labware, self.tiprack_p200_position) # Load the pipette pipette_p20 = protocol.load_instrument(self.pipette_p20, self.pipette_p20_position, tip_racks=[tiprack_p20]) - pipette_p300 = protocol.load_instrument(self.pipette_p300, self.pipette_p300_position, - tip_racks=[tiprack_p200]) + pipette_p300 = protocol.load_instrument(self.pipette_p300, self.pipette_p300_position, tip_racks=[tiprack_p200]) #Validate protocol self._validate_protocol(protocol, alumblock) - #Load Reagents + #Load Reagents (also populates self.plasmid_name_to_wells) if self.use_dna_96plate: - DNA_wells = self._load_dna_list(protocol, dna_plate, self.volume_dna, self.list_of_dna, initial_well=self.initial_dna_well) - competent_cell_wells = self._load_reagents(protocol, alumblock, self.tube_volume_competent_cell, f"Competent Cell {self.competent_cells}", self.competent_cell_tubes_needed) - media_wells = self._load_reagents(protocol, alumblock, self.tube_volume_recovery_media, "Media", self.media_tubes_needed, initial_well=len(competent_cell_wells)) - + competent_cell_wells_by_chassis, media_wells = self._load_reagents_96plate(protocol, dna_plate, alumblock) else: - DNA_wells = self._load_dna_list(protocol, alumblock, self.volume_dna, self.list_of_dna) - competent_cell_wells = self._load_reagents(protocol, alumblock, self.tube_volume_competent_cell, f"Competent Cell {self.competent_cells}", self.competent_cell_tubes_needed, initial_well=len(DNA_wells)) - media_wells = self._load_reagents(protocol, alumblock, self.tube_volume_recovery_media, "Media", self.media_tubes_needed, initial_well=len(DNA_wells)+len(competent_cell_wells)) + competent_cell_wells_by_chassis, media_wells = self._load_reagents_temp_module(protocol, alumblock) #Set Temperature module and Thermocycler module to 4 thermocycler_module.open_lid() @@ -383,14 +524,14 @@ def run(self, protocol: protocol_api.ProtocolContext): #Load competent cells into the thermocycler pipette = pipette_p300 - self._transfer_competent_cells(protocol, pipette, pcr_plate, competent_cell_wells, self.transfer_volume_competent_cell, self.thermocycler_starting_well) + self._transfer_competent_cells(protocol, pipette, pcr_plate, competent_cell_wells_by_chassis, self.transfer_volume_competent_cell, self.thermocycler_starting_well) #Load DNA into the thermocycler if self.transfer_volume_dna > 20: pipette = pipette_p300 else: pipette = pipette_p20 - self._transfer_DNA(protocol, pipette, pcr_plate, DNA_wells, self.transfer_volume_dna, self.thermocycler_starting_well) + self._transfer_DNA(protocol, pipette, pcr_plate, self.transfer_volume_dna, self.thermocycler_starting_well) # Cold Incubation thermocycler_module.close_lid() @@ -425,92 +566,223 @@ def run(self, protocol: protocol_api.ProtocolContext): # output print('Strain and media tube in temp_mod') print(self.dict_of_parts_in_temp_mod_position) + if self.use_dna_96plate: + print('DNA constructs in DNA plate (slot 2)') + print(self.dict_of_parts_in_dna_plate) print('Genetically modified organisms in thermocycler') print(self.dict_of_parts_in_thermocycler) def _validate_protocol(self, protocol, labware): + """ + Validate protocol requirements and compute all derived counts used throughout run(). + Sets: self.location_replicates, self.total_transformations, + self.transformations_per_cell_tube, self.competent_cell_tubes_by_chassis, + self.reactions_by_chassis, self.transformations_per_media_tube, + self.media_tubes_needed. + Raises ValueError if reagents exceed available alumblock wells. + """ #Number of available wells to load into module_wells = len(labware.wells()) - #Number of dna constructs to be used - total_constructs = len(self.list_of_dna) - #Number of tubes with competent cells to be used - self.total_transformations = total_constructs*self.replicates - self.transformations_per_cell_tube = self.tube_volume_competent_cell//self.transfer_volume_competent_cell - self.competent_cell_tubes_needed = (self.total_transformations + self.transformations_per_cell_tube - 1) // self.transformations_per_cell_tube + + #Number of strains to transform + total_strains = len(self.transformations) + + #Number of total plasmid wells needed (one well per unique plasmid) + total_plasmid_wells = len(self.all_plasmids) + + # Number of location replicates per strain (assembly replicates of the same plasmid in plate, + # always 1 for temp module since plasmids are in a single sequential well) + if self.plasmid_locations is not None: + self.location_replicates = len(next(iter(self.plasmid_locations.values()))) + else: + self.location_replicates = 1 + + #Total transformation reactions + self.total_transformations = total_strains * self.location_replicates * self.replicates + + #Calculate competent cell tubes needed per chassis type + self.transformations_per_cell_tube = self.tube_volume_competent_cell // self.transfer_volume_competent_cell + self.competent_cell_tubes_by_chassis = {} + self.reactions_by_chassis = {} + total_competent_cell_tubes = 0 + + for chassis in self.all_chassis: + # Count how many transformations use this chassis + transformations_for_chassis = sum(1 for t in self.transformations if t['chassis'] == chassis) + reactions_for_chassis = transformations_for_chassis * self.location_replicates * self.replicates + self.reactions_by_chassis[chassis] = reactions_for_chassis + tubes_needed = (reactions_for_chassis + self.transformations_per_cell_tube - 1) // self.transformations_per_cell_tube + self.competent_cell_tubes_by_chassis[chassis] = tubes_needed + total_competent_cell_tubes += tubes_needed + #Number of tubes with media to be used - self.transformations_per_media_tube = self.tube_volume_recovery_media//self.transfer_volume_recovery_media + self.transformations_per_media_tube = self.tube_volume_recovery_media // self.transfer_volume_recovery_media self.media_tubes_needed = (self.total_transformations + self.transformations_per_media_tube - 1) // self.transformations_per_media_tube + + #Validate wells if self.use_dna_96plate: - if self.competent_cell_tubes_needed + self.media_tubes_needed > module_wells: - raise ValueError(f'The number of reagents is more that {module_wells}.' - f'There are {self.competent_cell_tubes_needed} tubes with competent cells.' + # DNA is on a separate plate, only cells and media on the temp module + if total_competent_cell_tubes + self.media_tubes_needed > module_wells: + raise ValueError(f'The number of reagents is more than {module_wells}.' + f'There are {total_competent_cell_tubes} tubes with competent cells ({self.competent_cell_tubes_by_chassis}).' f'{self.media_tubes_needed} tubes with media.' f'Please modify the protocol and try again.') else: - if total_constructs + self.competent_cell_tubes_needed + self.media_tubes_needed > module_wells: + # DNA, cells, and media all on the temp module + if total_plasmid_wells + total_competent_cell_tubes + self.media_tubes_needed > module_wells: raise ValueError(f'The number of reagents is more than {module_wells}.' - f'There are {total_constructs} DNA constructs.' - f'{self.competent_cell_tubes_needed} tubes with competent cells.' + f'There are {total_plasmid_wells} plasmid wells.' + f'{total_competent_cell_tubes} tubes with competent cells ({self.competent_cell_tubes_by_chassis}).' f'{self.media_tubes_needed} tubes with media.' f'Please modify the protocol and try again.') - def _load_dna_list(self, protocol, labware, volume, dna_list, initial_well=0, description=None, color_index = None): + def _load_reagents_96plate(self, protocol, dna_plate, alumblock): """ - Load individual DNA constructs into wells, one construct per well. + Load all reagents for the 96-well plate workflow (plasmid_locations provided). + DNA constructs are loaded from the assembly output plate at their fixed positions — + populates self.plasmid_name_to_wells. Competent cells and media are loaded + sequentially onto the alumblock starting at well 0. Parameters: - protocol: Protocol context - - labware: Labware object (temperature module or DNA plate) - - volume: Volume to load in µL - - construct_list: List of construct names (e.g., ['GVD0011', 'GVD0013']) - - initial_well: Starting well index - - color_index: Starting color index (auto-increments if None) + - dna_plate: 96-well plate labware object (slot 2) + - alumblock: Temperature module labware object Returns: - - List of well objects + - competent_cell_wells_by_chassis: dict mapping chassis name to list of well objects + - media_wells: list of well objects """ - wells = [] - current_color = color_index if color_index is not None else 0 - for i, construct in enumerate(dna_list): - #Get the well - well = labware.wells()[initial_well+i] - wells.append(well) + # Load DNA from dna_plate at actual well positions from plasmid_locations + # Populates self.plasmid_name_to_wells + self._load_dna_into_dna_plate(protocol, dna_plate) + + # Load competent cells for each chassis onto alumblock + competent_cell_wells_by_chassis = {} + current_well = 0 + for chassis in self.all_chassis: + tubes_needed = self.competent_cell_tubes_by_chassis[chassis] + wells = self._load_reagents(protocol, alumblock, self.tube_volume_competent_cell, + f"Competent Cell {chassis}", tubes_needed, initial_well=current_well) + competent_cell_wells_by_chassis[chassis] = wells + current_well += tubes_needed + + # Load media onto alumblock + media_wells = self._load_reagents(protocol, alumblock, self.tube_volume_recovery_media, + "Media", self.media_tubes_needed, initial_well=current_well) + + return competent_cell_wells_by_chassis, media_wells + + def _load_dna_into_dna_plate(self, protocol, dna_plate): + """ + Load DNA constructs into their fixed positions on the 96-well DNA plate. + Positions are determined by plasmid_locations (from assembly output or MoClo kit layout). + Each construct may occupy multiple wells (assembly replicates). + Populates self.plasmid_name_to_wells: {construct_name: [well_obj, ...]} + + Parameters: + - protocol: Protocol context + - dna_plate: 96-well plate labware object on slot 2 + """ + current_color = 0 + name_to_uri = {self._extract_name_from_uri(uri): uri for uri in self.plasmid_locations} + + for construct_name in self.all_plasmids: + uri = name_to_uri[construct_name] + well_names = self.plasmid_locations[uri] + well_objects = [] + + for i, well_name in enumerate(well_names): + well = dna_plate.wells_by_name()[well_name] + well_objects.append(well) + if i == 0: + liquid = protocol.define_liquid( + name=construct_name, + description=f"{construct_name} DNA construct", + display_color=colors[current_color % len(colors)] + ) + well.load_liquid(liquid, volume=self.volume_dna) + + self.plasmid_name_to_wells[construct_name] = well_objects + self.dict_of_parts_in_dna_plate[construct_name] = well_names + current_color += 1 + + def _load_reagents_temp_module(self, protocol, alumblock): + """ + Load all reagents for the temp module workflow (no plasmid_locations). + DNA constructs are loaded sequentially starting at initial_dna_well — + populates self.plasmid_name_to_wells. Competent cells and media follow + sequentially on the same alumblock. + + Parameters: + - protocol: Protocol context + - alumblock: Temperature module labware object + + Returns: + - competent_cell_wells_by_chassis: dict mapping chassis name to list of well objects + - media_wells: list of well objects + """ + # Load DNA sequentially onto alumblock starting at initial_dna_well + # Populates self.plasmid_name_to_wells + self._load_dna_into_temp_module(protocol, alumblock) + + # Load competent cells for each chassis, starting after the DNA wells + competent_cell_wells_by_chassis = {} + current_well = self.initial_dna_well + len(self.all_plasmids) + for chassis in self.all_chassis: + tubes_needed = self.competent_cell_tubes_by_chassis[chassis] + wells = self._load_reagents(protocol, alumblock, self.tube_volume_competent_cell, + f"Competent Cell {chassis}", tubes_needed, initial_well=current_well) + competent_cell_wells_by_chassis[chassis] = wells + current_well += tubes_needed + + # Load media onto alumblock after competent cells + media_wells = self._load_reagents(protocol, alumblock, self.tube_volume_recovery_media, + "Media", self.media_tubes_needed, initial_well=current_well) + + return competent_cell_wells_by_chassis, media_wells + + def _load_dna_into_temp_module(self, protocol, alumblock): + """ + Load DNA constructs sequentially into the temperature module alumblock. + Positions are assigned sequentially starting at initial_dna_well. + Populates self.plasmid_name_to_wells: {construct_name: [well_obj]} (single-element list). + + Parameters: + - protocol: Protocol context + - alumblock: Temperature module labware object + """ + current_color = 0 - #Covert tuple to string if needed - if isinstance(construct, tuple): - construct_name = '_'.join(construct) - else: - construct_name = construct - #Define and load "liquid" + for i, construct_name in enumerate(self.all_plasmids): + well = alumblock.wells()[self.initial_dna_well + i] liquid = protocol.define_liquid( - name = construct_name, - description= description if description is not None else f"{construct} DNA construct", - display_color= colors[current_color%len(colors)] + name=construct_name, + description=f"{construct_name} DNA construct", + display_color=colors[current_color % len(colors)] ) - well.load_liquid(liquid, volume=volume) - - #Track in dictionary - if not self.use_dna_96plate: - self.dict_of_parts_in_temp_mod_position[construct_name] = well.well_name + well.load_liquid(liquid, volume=self.volume_dna) + self.plasmid_name_to_wells[construct_name] = [well] + self.dict_of_parts_in_temp_mod_position[construct_name] = well.well_name current_color += 1 - return wells def _load_reagents(self, protocol, labware, volume, reagent_name, tube_count, initial_well=0, color_index=None): """ - Load multiple tubes of the same reagent type. + Load multiple tubes of the same reagent type onto a labware object. + Tubes are named {reagent_name}_1, {reagent_name}_2, etc. and tracked + in self.dict_of_parts_in_temp_mod_position. Parameters: - protocol: Protocol context - - labware: Labware object (temperature module) - - volume: Volume to load in µL - - reagent_base_name: Base name for reagent (e.g., "Competent_Cell", "Media") + - labware: Labware object to load reagents onto + - volume: Volume per tube in µL + - reagent_name: Base name for the reagent (e.g., "Competent Cell DH5alpha", "Media") - tube_count: Number of tubes to load - - initial_well: Starting well index - - color_index: Starting color index (auto-increments if None) + - initial_well: Starting well index on the labware + - color_index: Starting color index for Opentrons UI (cycles through colors list) Returns: - - List of well objects + - List of well objects in order """ wells = [] current_color = color_index if color_index is not None else 0 @@ -529,95 +801,118 @@ def _load_reagents(self, protocol, labware, volume, reagent_name, tube_count, in current_color += 1 return wells - def _transfer_competent_cells(self, protocol, pipette, pcr_plate, competent_cell_wells, + def _transfer_competent_cells(self, protocol, pipette, pcr_plate, competent_cell_wells_by_chassis, transfer_volume_competent_cell, thermocycler_starting_well): """ - Transfer competent cells to thermocycler wells using distribute method. + Transfer competent cells into thermocycler wells, one well per reaction. + Iterates self.transformations as ground truth. For each strain, fills + location_replicates * replicates wells with the appropriate chassis cells. + Tube selection is per-chassis (chassis_reaction_count) so multiple chassis + types each consume only their own tubes independently. Parameters: - protocol: Protocol context - - pipette: Pipette instrument - - pcr_plate: Thermocycler plate - - competent_cell_wells: List of wells containing competent cells - - transfer_volume_competent_cell: Volume to transfer per well - - thermocycler_starting_well: Starting well index in thermocycler + - pipette: Pipette instrument (p300) + - pcr_plate: Thermocycler plate labware + - competent_cell_wells_by_chassis: Dict mapping chassis name to list of well objects + - transfer_volume_competent_cell: Volume to transfer per well in µL + - thermocycler_starting_well: Starting well index in thermocycler plate """ well_index = thermocycler_starting_well + chassis_reaction_count = {chassis: 0 for chassis in self.all_chassis} - for tube_index, source_well in enumerate(competent_cell_wells): - #Calculate how many wells this cell tube will fill - remaining_transformations = self.total_transformations - (tube_index * self.transformations_per_cell_tube) - wells_to_fill = min(self.transformations_per_cell_tube, remaining_transformations) + for transformation in self.transformations: + chassis = transformation['chassis'] + cell_wells = competent_cell_wells_by_chassis[chassis] - #Destination wells - dest_wells = pcr_plate.wells()[well_index:well_index+wells_to_fill] + for replicate in range(self.location_replicates * self.replicates): + dest_well = pcr_plate.wells()[well_index] - #Distribute - pipette.distribute( - volume=transfer_volume_competent_cell, - source=source_well, - dest=dest_wells, - mix_before=(3,50), - disposal_volume=0, - new_tip='once' - ) + # Select tube based on per-chassis reaction count + tube_index = chassis_reaction_count[chassis] // self.transformations_per_cell_tube + source_well = cell_wells[tube_index] - #Thermocycler Dictionary - name = f"Competent_Cell_{self.competent_cells}_{tube_index+1}" - for well in dest_wells: - if well.well_name not in self.dict_of_parts_in_thermocycler: - self.dict_of_parts_in_thermocycler[well.well_name] = [] - self.dict_of_parts_in_thermocycler[well.well_name].append(name) + self.liquid_transfer( + protocol=protocol, + pipette=pipette, + volume=transfer_volume_competent_cell, + source=source_well, + dest=dest_well, + asp_rate=self.aspiration_rate, + disp_rate=self.dispense_rate, + mix_before=20, + touch_tip=False + ) - well_index += wells_to_fill + name = f"Competent_Cell_{chassis}" + if dest_well.well_name not in self.dict_of_parts_in_thermocycler: + self.dict_of_parts_in_thermocycler[dest_well.well_name] = [transformation['strain']] + self.dict_of_parts_in_thermocycler[dest_well.well_name].append(name) + + chassis_reaction_count[chassis] += 1 + well_index += 1 - def _transfer_DNA(self, protocol, pipette, pcr_plate, DNA_wells, transfer_volume_dna, thermocycler_starting_well): + def _transfer_DNA(self, protocol, pipette, pcr_plate, transfer_volume_dna, thermocycler_starting_well): """ - Transfer DNA constructs to thermocycler wells with replicates grouped together. + Transfer DNA plasmids to thermocycler wells. Multiple plasmids per strain go to the same well. + Uses self.plasmid_name_to_wells (populated during loading) for all source well lookups — + no positional indexing, fully name-driven from self.transformations. + + For the temp module path: each plasmid has one well → location_replicates = 1 + For the dna plate path: each plasmid has N wells (assembly replicates) → location_replicates = N Parameters: - protocol: Protocol context - pipette: Pipette instrument - pcr_plate: Thermocycler plate - - DNA_wells: List of wells containing DNA constructs - - transfer_volume_dna: Volume to transfer per well + - transfer_volume_dna: Volume to transfer per plasmid - thermocycler_starting_well: Starting well index in thermocycler """ - for construct_index, (construct_name, source_well) in enumerate(zip(self.list_of_dna, DNA_wells)): - construct_well = construct_index * self.replicates + thermocycler_starting_well + well_index = thermocycler_starting_well - for replicate in range(self.replicates): - dest_well = pcr_plate.wells()[construct_well+replicate] - #Transfer liquid - self.liquid_transfer( - protocol=protocol, - pipette=pipette, - volume=transfer_volume_dna, - source=source_well, - dest=dest_well, - asp_rate=self.aspiration_rate, - disp_rate=self.dispense_rate, - mix_before=transfer_volume_dna, - touch_tip=True - ) + for transformation in self.transformations: + plasmids = transformation['plasmids'] - #Track in dictionary - if dest_well.well_name not in self.dict_of_parts_in_thermocycler: - self.dict_of_parts_in_thermocycler[dest_well.well_name] = [] - self.dict_of_parts_in_thermocycler[dest_well.well_name].append(construct_name) + for loc_idx in range(self.location_replicates): + for replicate in range(self.replicates): + dest_well = pcr_plate.wells()[well_index] + + for plasmid_name in plasmids: + source_well = self.plasmid_name_to_wells[plasmid_name][loc_idx] + + self.liquid_transfer( + protocol=protocol, + pipette=pipette, + volume=transfer_volume_dna, + source=source_well, + dest=dest_well, + asp_rate=self.aspiration_rate, + disp_rate=self.dispense_rate, + mix_before=transfer_volume_dna, + touch_tip=True + ) + + if dest_well.well_name not in self.dict_of_parts_in_thermocycler: + self.dict_of_parts_in_thermocycler[dest_well.well_name] = [] + self.dict_of_parts_in_thermocycler[dest_well.well_name].append(plasmid_name) + + well_index += 1 def _transfer_liquid_broth(self, protocol, pipette, pcr_plate, media_wells, transfer_volume_recovery_media, thermocycler_starting_well): """ - Transfer recovery media to thermocycler wells using distribute method. + Distribute recovery media into all thermocycler wells using the pipette distribute method. + Each media tube fills up to transformations_per_media_tube wells before moving to the next. + Uses .top(2) on dest wells to avoid contamination from the pipette tip. + Covers self.total_transformations wells in total. Parameters: - protocol: Protocol context - - pipette: Pipette instrument - - pcr_plate: Thermocycler plate - - media_wells: List of wells containing recovery media - - transfer_volume_recovery_media: Volume to transfer per well - - thermocycler_starting_well: Starting well index in thermocycler + - pipette: Pipette instrument (p300) + - pcr_plate: Thermocycler plate labware + - media_wells: List of well objects containing recovery media + - transfer_volume_recovery_media: Volume to distribute per well in µL + - thermocycler_starting_well: Starting well index in thermocycler plate """ well_index = thermocycler_starting_well From 254bb7d39c60b6b08476e25299415f27d9dc48ff Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Thu, 5 Mar 2026 00:01:31 -0700 Subject: [PATCH 097/118] Refactored transformation protocols to use updated `transformation_data` format and inlined advanced parameters for improved clarity and consistency. --- scripts/run_Bacterial_Transformation.py | 12 +++++- .../run_sbol2transformation_with_params.py | 38 +++++++------------ 2 files changed, 23 insertions(+), 27 deletions(-) diff --git a/scripts/run_Bacterial_Transformation.py b/scripts/run_Bacterial_Transformation.py index 06ca45f..2222e4e 100644 --- a/scripts/run_Bacterial_Transformation.py +++ b/scripts/run_Bacterial_Transformation.py @@ -8,8 +8,16 @@ 'description': 'Automated transformation protocol', 'apiLevel': '2.22'} +transformation_data = [ + { + 'Strain': 'composite_strain_1', + 'Chassis': 'DH5alpha', + 'Plasmids': ['composite_plasmid_1'] + } +] + def run(protocol= protocol_api.ProtocolContext): - pudu_transformation = HeatShockTransformation(list_of_dna=['pro', 'rbs','cds', 'ter'], competent_cells = 'DH5alpha') + pudu_transformation = HeatShockTransformation(transformation_data=transformation_data) pudu_transformation.run(protocol) -#After simulation look at the beginning of the output to see the position of input reagents and outputs. \ No newline at end of file +#After simulation look at the beginning of the output to see the position of input reagents and outputs. diff --git a/scripts/run_sbol2transformation_with_params.py b/scripts/run_sbol2transformation_with_params.py index b4baa33..d08713d 100644 --- a/scripts/run_sbol2transformation_with_params.py +++ b/scripts/run_sbol2transformation_with_params.py @@ -1,20 +1,15 @@ -transformation_data = { - 'list_of_dna': ['GVD0011', 'GVD0013', 'GVD0015'], - 'competent_cells': 'DH5alpha' -} - -advanced_params = { - 'replicates': 3, - 'volume_dna': 25, - 'thermocycler_starting_well': 0, - 'transfer_volume_dna': 5, - 'tube_volume_competent_cell': 150 -} - from pudu.transformation import HeatShockTransformation from opentrons import protocol_api +transformation_data = [ + { + 'Strain': 'GVD_strain', + 'Chassis': 'DH5alpha', + 'Plasmids': ['GVD0011', 'GVD0013', 'GVD0015'] + } +] + # Protocol metadata metadata = { 'protocolName': 'PUDU Transformation Test', @@ -29,18 +24,11 @@ def run(protocol: protocol_api.ProtocolContext): transformation = HeatShockTransformation( transformation_data=transformation_data, - advanced_params=advanced_params + replicates=3, + volume_dna=25, + thermocycler_starting_well=0, + transfer_volume_dna=5, + tube_volume_competent_cell=150 ) - # OLD APPROACH: Using kwargs directly (commented out) - # transformation = HeatShockTransformation( - # list_of_dna=['GVD0011', 'GVD0013', 'GVD0015'], - # competent_cells='DH5alpha', - # replicates=3, - # volume_dna=25, - # thermocycler_starting_well=0, - # transfer_volume_dna=5, - # tube_volume_competent_cell=150 - # ) - transformation.run(protocol) From 3e78ef35e166b72492345e6448d83a59c9ee5adb Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Tue, 7 Apr 2026 08:22:36 -0600 Subject: [PATCH 098/118] Add ManualAssembly Markdown protocol generation for Golden Gate --- README.md | 16 + .../manual_assembly_protocol_example.md | 71 +++++ scripts/generate_manual_assembly_protocol.py | 27 ++ scripts/manual_assembly_input.json | 24 ++ scripts/manual_assembly_protocol.md | 71 +++++ src/pudu/assembly.py | 278 ++++++++++++++++++ tests/test_manual_assembly.py | 59 ++++ 7 files changed, 546 insertions(+) create mode 100644 documentation/manual_assembly_protocol_example.md create mode 100644 scripts/generate_manual_assembly_protocol.py create mode 100644 scripts/manual_assembly_input.json create mode 100644 scripts/manual_assembly_protocol.md create mode 100644 tests/test_manual_assembly.py diff --git a/README.md b/README.md index 5f7d02d..d1c1f97 100644 --- a/README.md +++ b/README.md @@ -67,3 +67,19 @@ then in the OT-2 terminal run: ## Tutorials TODO + +## Manual Golden Gate protocol generation + +PUDU now supports generating a **human-readable manual Golden Gate protocol** from SBOL-style JSON input using `ManualAssembly`. + +- The class builds structured per-reaction records (product, backbone, ordered parts, enzyme, and calculated reagent volumes). +- It renders a Markdown protocol suitable for lab use and future PDF conversion. +- It does **not** generate OT-2 commands. + +Example script: + +```bash +PYTHONPATH=src python scripts/generate_manual_assembly_protocol.py +``` + +This writes a protocol document to `scripts/manual_assembly_protocol.md`. diff --git a/documentation/manual_assembly_protocol_example.md b/documentation/manual_assembly_protocol_example.md new file mode 100644 index 0000000..4854647 --- /dev/null +++ b/documentation/manual_assembly_protocol_example.md @@ -0,0 +1,71 @@ +# Golden Gate Manual Assembly Protocol + +## Overview +This document provides human-readable Golden Gate assembly instructions from SBOL-style JSON input. +It is an instruction sheet for manual execution and is not an Opentrons OT-2 script. + +## Inputs +- Number of target products: 2 +- `composite_1` (https://SBOL2Build.org/composite_1/1) +- `composite_2` (https://SBOL2Build.org/composite_2/1) + +## Default reagent assumptions +- Total reaction volume: 20 µL +- Per DNA component volume (backbone or part): 2 µL +- Restriction enzyme volume: 2 µL +- T4 DNA ligase volume: 4 µL +- T4 DNA ligase buffer volume: 2 µL +- Water volume is calculated per reaction from the configured defaults. + +## Reaction summary +| Product | Backbone | Parts | Restriction Enzyme | # DNA Components | Water (µL) | Total (µL) | +| --- | --- | --- | --- | ---: | ---: | ---: | +| composite_1 | pSB1C3 | J23101, B0034, GFP, B0015 | BsaI | 5 | 2 | 20 | +| composite_2 | pSB1C3 | J23106, B0034, RFP, B0015 | BsaI | 5 | 2 | 20 | + +## Per-reaction instructions + +### Product: composite_1 +URI: https://SBOL2Build.org/composite_1/1 + +1. Label one tube as `composite_1`. +2. Add 2 µL nuclease-free water. +3. Add 2 µL 10X T4 DNA Ligase Buffer. +4. Add 4 µL T4 DNA Ligase. +5. Add 2 µL BsaI (URI: https://SBOL2Build.org/BsaI/1). +6. Add 2 µL backbone `pSB1C3` (URI: https://sbolcanvas.org/pSB1C3/1). +7. Add 2 µL part `J23101` (URI: https://sbolcanvas.org/J23101/1). +8. Add 2 µL part `B0034` (URI: https://sbolcanvas.org/B0034/1). +9. Add 2 µL part `GFP` (URI: https://sbolcanvas.org/GFP/1). +10. Add 2 µL part `B0015` (URI: https://sbolcanvas.org/B0015/1). +11. Mix gently by pipetting. Do not vortex unless explicitly intended. +12. Briefly spin down if appropriate. + +### Product: composite_2 +URI: https://SBOL2Build.org/composite_2/1 + +1. Label one tube as `composite_2`. +2. Add 2 µL nuclease-free water. +3. Add 2 µL 10X T4 DNA Ligase Buffer. +4. Add 4 µL T4 DNA Ligase. +5. Add 2 µL BsaI (URI: https://SBOL2Build.org/BsaI/1). +6. Add 2 µL backbone `pSB1C3` (URI: https://sbolcanvas.org/pSB1C3/1). +7. Add 2 µL part `J23106` (URI: https://sbolcanvas.org/J23106/1). +8. Add 2 µL part `B0034` (URI: https://sbolcanvas.org/B0034/1). +9. Add 2 µL part `RFP` (URI: https://sbolcanvas.org/RFP/1). +10. Add 2 µL part `B0015` (URI: https://sbolcanvas.org/B0015/1). +11. Mix gently by pipetting. Do not vortex unless explicitly intended. +12. Briefly spin down if appropriate. + +## Thermocycling +- Program a Golden Gate cycling profile suitable for your Type IIS enzyme and ligase system. +- Typical high-level pattern: + - 25-35 cycles alternating between digestion and ligation temperatures. + - Follow with a final digestion/inactivation step as appropriate for enzyme cleanup. + - Hold at 4°C until samples are recovered. +- Use your lab's validated Golden Gate settings for the selected restriction enzyme. + +## Notes +- If the assembly was designed correctly, the final product should lack the Type IIS recognition sites used during assembly. +- This generated document is a manual instruction sheet and not an automated OT-2 protocol. +- Assumes all DNA parts are available at suitable concentrations and added at equal per-part volume. diff --git a/scripts/generate_manual_assembly_protocol.py b/scripts/generate_manual_assembly_protocol.py new file mode 100644 index 0000000..ba520e1 --- /dev/null +++ b/scripts/generate_manual_assembly_protocol.py @@ -0,0 +1,27 @@ +import json +import argparse +from pathlib import Path + +from pudu.assembly import ManualAssembly + + +def main(): + parser = argparse.ArgumentParser(description="Generate a manual Golden Gate Markdown protocol.") + parser.add_argument("--input", default="scripts/manual_assembly_input.json", help="Path to SBOL-style JSON input file.") + parser.add_argument("--output", default="scripts/manual_assembly_protocol.md", help="Path to Markdown output file.") + args = parser.parse_args() + + input_path = Path(args.input) + output_path = Path(args.output) + + assemblies = json.loads(input_path.read_text(encoding="utf-8")) + + manual_protocol = ManualAssembly(assemblies=assemblies) + manual_protocol.process_assemblies() + manual_protocol.write_markdown(str(output_path)) + + print(f"Manual protocol written to {output_path}") + + +if __name__ == "__main__": + main() diff --git a/scripts/manual_assembly_input.json b/scripts/manual_assembly_input.json new file mode 100644 index 0000000..05dab93 --- /dev/null +++ b/scripts/manual_assembly_input.json @@ -0,0 +1,24 @@ +[ + { + "Product": "https://SBOL2Build.org/composite_1/1", + "Backbone": "https://sbolcanvas.org/pSB1C3/1", + "PartsList": [ + "https://sbolcanvas.org/J23101/1", + "https://sbolcanvas.org/B0034/1", + "https://sbolcanvas.org/GFP/1", + "https://sbolcanvas.org/B0015/1" + ], + "Restriction Enzyme": "https://SBOL2Build.org/BsaI/1" + }, + { + "Product": "https://SBOL2Build.org/composite_2/1", + "Backbone": "https://sbolcanvas.org/pSB1C3/1", + "PartsList": [ + "https://sbolcanvas.org/J23106/1", + "https://sbolcanvas.org/B0034/1", + "https://sbolcanvas.org/RFP/1", + "https://sbolcanvas.org/B0015/1" + ], + "Restriction Enzyme": "https://SBOL2Build.org/BsaI/1" + } +] diff --git a/scripts/manual_assembly_protocol.md b/scripts/manual_assembly_protocol.md new file mode 100644 index 0000000..4854647 --- /dev/null +++ b/scripts/manual_assembly_protocol.md @@ -0,0 +1,71 @@ +# Golden Gate Manual Assembly Protocol + +## Overview +This document provides human-readable Golden Gate assembly instructions from SBOL-style JSON input. +It is an instruction sheet for manual execution and is not an Opentrons OT-2 script. + +## Inputs +- Number of target products: 2 +- `composite_1` (https://SBOL2Build.org/composite_1/1) +- `composite_2` (https://SBOL2Build.org/composite_2/1) + +## Default reagent assumptions +- Total reaction volume: 20 µL +- Per DNA component volume (backbone or part): 2 µL +- Restriction enzyme volume: 2 µL +- T4 DNA ligase volume: 4 µL +- T4 DNA ligase buffer volume: 2 µL +- Water volume is calculated per reaction from the configured defaults. + +## Reaction summary +| Product | Backbone | Parts | Restriction Enzyme | # DNA Components | Water (µL) | Total (µL) | +| --- | --- | --- | --- | ---: | ---: | ---: | +| composite_1 | pSB1C3 | J23101, B0034, GFP, B0015 | BsaI | 5 | 2 | 20 | +| composite_2 | pSB1C3 | J23106, B0034, RFP, B0015 | BsaI | 5 | 2 | 20 | + +## Per-reaction instructions + +### Product: composite_1 +URI: https://SBOL2Build.org/composite_1/1 + +1. Label one tube as `composite_1`. +2. Add 2 µL nuclease-free water. +3. Add 2 µL 10X T4 DNA Ligase Buffer. +4. Add 4 µL T4 DNA Ligase. +5. Add 2 µL BsaI (URI: https://SBOL2Build.org/BsaI/1). +6. Add 2 µL backbone `pSB1C3` (URI: https://sbolcanvas.org/pSB1C3/1). +7. Add 2 µL part `J23101` (URI: https://sbolcanvas.org/J23101/1). +8. Add 2 µL part `B0034` (URI: https://sbolcanvas.org/B0034/1). +9. Add 2 µL part `GFP` (URI: https://sbolcanvas.org/GFP/1). +10. Add 2 µL part `B0015` (URI: https://sbolcanvas.org/B0015/1). +11. Mix gently by pipetting. Do not vortex unless explicitly intended. +12. Briefly spin down if appropriate. + +### Product: composite_2 +URI: https://SBOL2Build.org/composite_2/1 + +1. Label one tube as `composite_2`. +2. Add 2 µL nuclease-free water. +3. Add 2 µL 10X T4 DNA Ligase Buffer. +4. Add 4 µL T4 DNA Ligase. +5. Add 2 µL BsaI (URI: https://SBOL2Build.org/BsaI/1). +6. Add 2 µL backbone `pSB1C3` (URI: https://sbolcanvas.org/pSB1C3/1). +7. Add 2 µL part `J23106` (URI: https://sbolcanvas.org/J23106/1). +8. Add 2 µL part `B0034` (URI: https://sbolcanvas.org/B0034/1). +9. Add 2 µL part `RFP` (URI: https://sbolcanvas.org/RFP/1). +10. Add 2 µL part `B0015` (URI: https://sbolcanvas.org/B0015/1). +11. Mix gently by pipetting. Do not vortex unless explicitly intended. +12. Briefly spin down if appropriate. + +## Thermocycling +- Program a Golden Gate cycling profile suitable for your Type IIS enzyme and ligase system. +- Typical high-level pattern: + - 25-35 cycles alternating between digestion and ligation temperatures. + - Follow with a final digestion/inactivation step as appropriate for enzyme cleanup. + - Hold at 4°C until samples are recovered. +- Use your lab's validated Golden Gate settings for the selected restriction enzyme. + +## Notes +- If the assembly was designed correctly, the final product should lack the Type IIS recognition sites used during assembly. +- This generated document is a manual instruction sheet and not an automated OT-2 protocol. +- Assumes all DNA parts are available at suitable concentrations and added at equal per-part volume. diff --git a/src/pudu/assembly.py b/src/pudu/assembly.py index b5ab761..1eaa6d3 100644 --- a/src/pudu/assembly.py +++ b/src/pudu/assembly.py @@ -5,8 +5,29 @@ from itertools import product import json from abc import ABC, abstractmethod +from dataclasses import dataclass, field from pudu.utils import Camera, colors + +@dataclass +class ManualReactionRecord: + """Structured representation of one Golden Gate manual assembly reaction.""" + product_uri: str + product_name: str + backbone_uri: str + backbone_name: str + part_uris: List[str] + part_names: List[str] + restriction_enzyme_uri: str + restriction_enzyme_name: str + number_of_dna_components: int + total_dna_volume: float + fixed_reagent_volume: float + water_volume: float + total_reaction_volume: float + reagent_additions: List[Dict[str, str]] = field(default_factory=list) + notes: List[str] = field(default_factory=list) + class BaseAssembly(ABC): """ Abstract base class for Loop Assembly protocols. @@ -1292,6 +1313,263 @@ def _validate_assembly_requirements(self): self._validate_reaction_volumes(num_parts) +class ManualAssembly(BaseAssembly): + """ + Manual Golden Gate assembly protocol generator from SBOL-style JSON input. + Produces structured reaction records and renders human-readable Markdown. + """ + + def __init__(self, + assembly_data: Optional[Dict] = None, + json_params: Optional[str] = None, + assemblies: Optional[List[Dict]] = None, + *args, **kwargs): + if assembly_data is not None: + if isinstance(assembly_data, dict) and 'assemblies' in assembly_data: + assemblies = assembly_data['assemblies'] + else: + assemblies = assembly_data + + if assemblies is None: + raise ValueError("Must provide assemblies either via assembly_data or assemblies parameter") + if not isinstance(assemblies, list) or not assemblies: + raise ValueError("assemblies must be a non-empty list of SBOL-style assembly dictionaries") + + super().__init__(json_params=json_params, *args, **kwargs) + self.assemblies = assemblies + self.reaction_records: List[ManualReactionRecord] = [] + + def process_assemblies(self): + """Parse and validate input assemblies, then build reaction records.""" + self._validate_input_assemblies() + self.reaction_records = self._build_reaction_records() + return self.reaction_records + + def _load_parts_and_enzymes(self, protocol, alum_block) -> int: + raise NotImplementedError("ManualAssembly does not load reagents onto OT-2 modules.") + + def _process_assembly_combinations(self, protocol, pipette, thermo_plate, alum_block, + dd_h2o, t4_dna_ligase_buffer, t4_dna_ligase, + volume_reagents, thermocycler_well_counter) -> int: + raise NotImplementedError("ManualAssembly does not generate OT-2 liquid handling commands.") + + def _calculate_total_tips_needed(self, number_of_constant_reagents: int = 0) -> int: + return 0 + + def _validate_input_assemblies(self): + required_keys = {'Product', 'Backbone', 'PartsList', 'Restriction Enzyme'} + + for idx, assembly in enumerate(self.assemblies, start=1): + if not isinstance(assembly, dict): + raise ValueError(f"Assembly #{idx} is not a dictionary.") + + missing = required_keys - set(assembly.keys()) + if missing: + raise ValueError( + f"Assembly #{idx} is missing required keys: {sorted(missing)}. " + f"Expected keys: {sorted(required_keys)}" + ) + + if not isinstance(assembly['PartsList'], list) or not assembly['PartsList']: + raise ValueError(f"Assembly #{idx} has an invalid 'PartsList'. Expected a non-empty list.") + + def _extract_name_from_uri(self, uri: str) -> str: + """Extract display name from URI; falls back safely to raw input if needed.""" + if not isinstance(uri, str): + return str(uri) + + segments = [segment for segment in uri.rstrip('/').split('/') if segment] + if not segments: + return uri + + if len(segments) >= 2 and segments[-1].isdigit(): + return segments[-2] + return segments[-1] + + def _calculate_reaction_volumes(self, number_of_dna_components: int) -> Dict[str, float]: + total_dna_volume = number_of_dna_components * self.volume_part + fixed_reagent_volume = ( + self.volume_restriction_enzyme + + self.volume_t4_dna_ligase + + self.volume_t4_dna_ligase_buffer + ) + water_volume = self.volume_total_reaction - fixed_reagent_volume - total_dna_volume + + if water_volume < 0: + raise ValueError( + f"Reaction volume error: Cannot fit {number_of_dna_components} DNA components into " + f"{self.volume_total_reaction}µL reaction.\n" + f" Required volumes:\n" + f" - DNA ({number_of_dna_components} × {self.volume_part}µL): {total_dna_volume}µL\n" + f" - Restriction enzyme: {self.volume_restriction_enzyme}µL\n" + f" - T4 DNA ligase: {self.volume_t4_dna_ligase}µL\n" + f" - T4 DNA ligase buffer: {self.volume_t4_dna_ligase_buffer}µL\n" + f" Total required: {total_dna_volume + fixed_reagent_volume}µL" + ) + + return { + 'total_dna_volume': total_dna_volume, + 'fixed_reagent_volume': fixed_reagent_volume, + 'water_volume': water_volume + } + + def _build_reaction_records(self) -> List[ManualReactionRecord]: + records: List[ManualReactionRecord] = [] + for assembly in self.assemblies: + product_uri = assembly["Product"] + backbone_uri = assembly["Backbone"] + part_uris = assembly["PartsList"] + enzyme_uri = assembly["Restriction Enzyme"] + + product_name = self._extract_name_from_uri(product_uri) + backbone_name = self._extract_name_from_uri(backbone_uri) + part_names = [self._extract_name_from_uri(uri) for uri in part_uris] + enzyme_name = self._extract_name_from_uri(enzyme_uri) + + number_of_dna_components = 1 + len(part_uris) + volume_data = self._calculate_reaction_volumes(number_of_dna_components) + + reagent_additions = [ + {'name': 'nuclease-free water', 'volume_uL': self._fmt_volume(volume_data['water_volume'])}, + {'name': '10X T4 DNA Ligase Buffer', 'volume_uL': self._fmt_volume(self.volume_t4_dna_ligase_buffer)}, + {'name': 'T4 DNA Ligase', 'volume_uL': self._fmt_volume(self.volume_t4_dna_ligase)}, + {'name': enzyme_name, 'volume_uL': self._fmt_volume(self.volume_restriction_enzyme)}, + {'name': f"backbone `{backbone_name}`", 'volume_uL': self._fmt_volume(self.volume_part)}, + ] + + for part_uri, part_name in zip(part_uris, part_names): + reagent_additions.append({ + 'name': f"part `{part_name}`", + 'volume_uL': self._fmt_volume(self.volume_part), + 'uri': part_uri + }) + + record = ManualReactionRecord( + product_uri=product_uri, + product_name=product_name, + backbone_uri=backbone_uri, + backbone_name=backbone_name, + part_uris=part_uris, + part_names=part_names, + restriction_enzyme_uri=enzyme_uri, + restriction_enzyme_name=enzyme_name, + number_of_dna_components=number_of_dna_components, + total_dna_volume=volume_data['total_dna_volume'], + fixed_reagent_volume=volume_data['fixed_reagent_volume'], + water_volume=volume_data['water_volume'], + total_reaction_volume=self.volume_total_reaction, + reagent_additions=reagent_additions + ) + records.append(record) + + return records + + def _fmt_volume(self, value: float) -> str: + return f"{int(value)}" if float(value).is_integer() else f"{value:.2f}" + + def _render_thermocycling_section(self) -> str: + """High-level Golden Gate thermocycling instructions. Can be parameterized later.""" + return ( + "## Thermocycling\n" + "- Program a Golden Gate cycling profile suitable for your Type IIS enzyme and ligase system.\n" + "- Typical high-level pattern:\n" + " - 25-35 cycles alternating between digestion and ligation temperatures.\n" + " - Follow with a final digestion/inactivation step as appropriate for enzyme cleanup.\n" + " - Hold at 4°C until samples are recovered.\n" + "- Use your lab's validated Golden Gate settings for the selected restriction enzyme.\n" + ) + + def render_markdown(self) -> str: + """Render a complete manual protocol in Markdown format.""" + if not self.reaction_records: + self.process_assemblies() + + lines = [ + "# Golden Gate Manual Assembly Protocol", + "", + "## Overview", + "This document provides human-readable Golden Gate assembly instructions from SBOL-style JSON input.", + "It is an instruction sheet for manual execution and is not an Opentrons OT-2 script.", + "", + "## Inputs", + f"- Number of target products: {len(self.reaction_records)}", + ] + for record in self.reaction_records: + lines.append(f"- `{record.product_name}` ({record.product_uri})") + + lines.extend([ + "", + "## Default reagent assumptions", + f"- Total reaction volume: {self._fmt_volume(self.volume_total_reaction)} µL", + f"- Per DNA component volume (backbone or part): {self._fmt_volume(self.volume_part)} µL", + f"- Restriction enzyme volume: {self._fmt_volume(self.volume_restriction_enzyme)} µL", + f"- T4 DNA ligase volume: {self._fmt_volume(self.volume_t4_dna_ligase)} µL", + f"- T4 DNA ligase buffer volume: {self._fmt_volume(self.volume_t4_dna_ligase_buffer)} µL", + "- Water volume is calculated per reaction from the configured defaults.", + "", + "## Reaction summary", + "| Product | Backbone | Parts | Restriction Enzyme | # DNA Components | Water (µL) | Total (µL) |", + "| --- | --- | --- | --- | ---: | ---: | ---: |", + ]) + + for record in self.reaction_records: + lines.append( + f"| {record.product_name} | {record.backbone_name} | {', '.join(record.part_names)} | " + f"{record.restriction_enzyme_name} | {record.number_of_dna_components} | " + f"{self._fmt_volume(record.water_volume)} | {self._fmt_volume(record.total_reaction_volume)} |" + ) + + lines.append("") + lines.append("## Per-reaction instructions") + lines.append("") + + for record in self.reaction_records: + lines.append(f"### Product: {record.product_name}") + lines.append(f"URI: {record.product_uri}") + lines.append("") + lines.append(f"1. Label one tube as `{record.product_name}`.") + lines.append(f"2. Add {self._fmt_volume(record.water_volume)} µL nuclease-free water.") + lines.append(f"3. Add {self._fmt_volume(self.volume_t4_dna_ligase_buffer)} µL 10X T4 DNA Ligase Buffer.") + lines.append(f"4. Add {self._fmt_volume(self.volume_t4_dna_ligase)} µL T4 DNA Ligase.") + lines.append( + f"5. Add {self._fmt_volume(self.volume_restriction_enzyme)} µL " + f"{record.restriction_enzyme_name} (URI: {record.restriction_enzyme_uri})." + ) + lines.append( + f"6. Add {self._fmt_volume(self.volume_part)} µL backbone " + f"`{record.backbone_name}` (URI: {record.backbone_uri})." + ) + + step_counter = 7 + for part_name, part_uri in zip(record.part_names, record.part_uris): + lines.append( + f"{step_counter}. Add {self._fmt_volume(self.volume_part)} µL part " + f"`{part_name}` (URI: {part_uri})." + ) + step_counter += 1 + + lines.append(f"{step_counter}. Mix gently by pipetting. Do not vortex unless explicitly intended.") + lines.append(f"{step_counter + 1}. Briefly spin down if appropriate.") + lines.append("") + + lines.append(self._render_thermocycling_section().rstrip()) + lines.extend([ + "", + "## Notes", + "- If the assembly was designed correctly, the final product should lack the Type IIS recognition sites used during assembly.", + "- This generated document is a manual instruction sheet and not an automated OT-2 protocol.", + "- Assumes all DNA parts are available at suitable concentrations and added at equal per-part volume." + ]) + + return "\n".join(lines) + "\n" + + def write_markdown(self, output_path: str): + """Write rendered Markdown protocol to disk.""" + markdown = self.render_markdown() + with open(output_path, "w", encoding="utf-8") as file_handle: + file_handle.write(markdown) + + class LoopAssembly: """ Factory class that auto-detects input format and returns appropriate subclass. diff --git a/tests/test_manual_assembly.py b/tests/test_manual_assembly.py new file mode 100644 index 0000000..05e430e --- /dev/null +++ b/tests/test_manual_assembly.py @@ -0,0 +1,59 @@ +import unittest + +from pudu.assembly import ManualAssembly + + +class TestManualAssembly(unittest.TestCase): + def setUp(self): + self.assemblies = [ + { + "Product": "https://SBOL2Build.org/composite_1/1", + "Backbone": "https://sbolcanvas.org/pSB1C3/1", + "PartsList": [ + "https://sbolcanvas.org/J23101/1", + "https://sbolcanvas.org/B0034/1", + "https://sbolcanvas.org/GFP/1", + "https://sbolcanvas.org/B0015/1", + ], + "Restriction Enzyme": "https://SBOL2Build.org/BsaI/1", + } + ] + + def test_extract_name_from_uri(self): + assembly = ManualAssembly(assemblies=self.assemblies) + self.assertEqual(assembly._extract_name_from_uri("https://sbolcanvas.org/GFP/1"), "GFP") + self.assertEqual(assembly._extract_name_from_uri("https://SBOL2Build.org/composite_1/1"), "composite_1") + + def test_volume_calculation(self): + assembly = ManualAssembly(assemblies=self.assemblies) + volumes = assembly._calculate_reaction_volumes(number_of_dna_components=5) + self.assertEqual(volumes["water_volume"], 2) + self.assertEqual(volumes["fixed_reagent_volume"], 8) + self.assertEqual(volumes["total_dna_volume"], 10) + + def test_invalid_overfilled_reaction(self): + assembly = ManualAssembly( + assemblies=self.assemblies, + volume_total_reaction=10, + volume_part=2, + volume_restriction_enzyme=2, + volume_t4_dna_ligase=4, + volume_t4_dna_ligase_buffer=2, + ) + with self.assertRaises(ValueError) as error: + assembly._calculate_reaction_volumes(number_of_dna_components=5) + self.assertIn("Cannot fit", str(error.exception)) + + def test_markdown_rendering_contains_sections_and_parts(self): + assembly = ManualAssembly(assemblies=self.assemblies) + markdown = assembly.render_markdown() + + self.assertIn("# Golden Gate Manual Assembly Protocol", markdown) + self.assertIn("## Reaction summary", markdown) + self.assertIn("### Product: composite_1", markdown) + self.assertIn("Add 2 µL part `J23101`", markdown) + self.assertIn("## Thermocycling", markdown) + + +if __name__ == "__main__": + unittest.main() From 31cd4816c9034cde00ee7195caff96a0d631a0c8 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Tue, 7 Apr 2026 15:06:48 -0600 Subject: [PATCH 099/118] Refactor _transfer_competent_cells to use distribute() per source tube MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace per-well liquid_transfer() calls (one tip per destination) with distribute() batched by consecutive source tube using groupby. Tips are now reused within each source tube block — one pickup per tube — matching the original main branch pattern while supporting multi-chassis workflows. Cross-chassis contamination is prevented by the source well identity enforced by groupby. Also moves itertools.groupby to module-level import and sets mix_before=(3, 50) consistent with main branch. --- src/pudu/transformation.py | 47 +++++++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/src/pudu/transformation.py b/src/pudu/transformation.py index b90ea0e..384c2ec 100644 --- a/src/pudu/transformation.py +++ b/src/pudu/transformation.py @@ -1,3 +1,4 @@ +from itertools import groupby from opentrons import protocol_api from typing import List, Dict, Optional from pudu.utils import colors @@ -804,12 +805,16 @@ def _load_reagents(self, protocol, labware, volume, reagent_name, tube_count, in def _transfer_competent_cells(self, protocol, pipette, pcr_plate, competent_cell_wells_by_chassis, transfer_volume_competent_cell, thermocycler_starting_well): """ - Transfer competent cells into thermocycler wells, one well per reaction. + Transfer competent cells into thermocycler wells. Iterates self.transformations as ground truth. For each strain, fills location_replicates * replicates wells with the appropriate chassis cells. Tube selection is per-chassis (chassis_reaction_count) so multiple chassis types each consume only their own tubes independently. + Tips are reused within each consecutive source tube block (one pickup per tube) + by batching destinations with distribute(). A new tip is picked up whenever the + source tube changes, preventing cross-chassis contamination. + Parameters: - protocol: Protocol context - pipette: Pipette instrument (p300) @@ -818,6 +823,8 @@ def _transfer_competent_cells(self, protocol, pipette, pcr_plate, competent_cell - transfer_volume_competent_cell: Volume to transfer per well in µL - thermocycler_starting_well: Starting well index in thermocycler plate """ + # Pre-compute all transfers as (source_well, dest_well, chassis, strain) + transfers = [] well_index = thermocycler_starting_well chassis_reaction_count = {chassis: 0 for chassis in self.all_chassis} @@ -825,33 +832,35 @@ def _transfer_competent_cells(self, protocol, pipette, pcr_plate, competent_cell chassis = transformation['chassis'] cell_wells = competent_cell_wells_by_chassis[chassis] - for replicate in range(self.location_replicates * self.replicates): + for _ in range(self.location_replicates * self.replicates): dest_well = pcr_plate.wells()[well_index] - - # Select tube based on per-chassis reaction count tube_index = chassis_reaction_count[chassis] // self.transformations_per_cell_tube source_well = cell_wells[tube_index] + transfers.append((source_well, dest_well, chassis, transformation['strain'])) - self.liquid_transfer( - protocol=protocol, - pipette=pipette, - volume=transfer_volume_competent_cell, - source=source_well, - dest=dest_well, - asp_rate=self.aspiration_rate, - disp_rate=self.dispense_rate, - mix_before=20, - touch_tip=False - ) + chassis_reaction_count[chassis] += 1 + well_index += 1 + # Distribute per consecutive source tube — one tip pickup per tube. + # dict_of_parts_in_thermocycler is updated after each distribute() call + # so it reflects only wells that have actually been filled. + for source_well, group in groupby(transfers, key=lambda t: t[0]): + group_list = list(group) + dest_wells = [t[1] for t in group_list] + pipette.distribute( + volume=transfer_volume_competent_cell, + source=source_well, + dest=dest_wells, + mix_before=(3, 50), + disposal_volume=0, + new_tip='once' + ) + for _, dest_well, chassis, strain in group_list: name = f"Competent_Cell_{chassis}" if dest_well.well_name not in self.dict_of_parts_in_thermocycler: - self.dict_of_parts_in_thermocycler[dest_well.well_name] = [transformation['strain']] + self.dict_of_parts_in_thermocycler[dest_well.well_name] = [strain] self.dict_of_parts_in_thermocycler[dest_well.well_name].append(name) - chassis_reaction_count[chassis] += 1 - well_index += 1 - def _transfer_DNA(self, protocol, pipette, pcr_plate, transfer_volume_dna, thermocycler_starting_well): """ Transfer DNA plasmids to thermocycler wells. Multiple plasmids per strain go to the same well. From 341e1a9bf333d6e3ad633b499b0da1f58286ca56 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Wed, 8 Apr 2026 03:35:39 -0600 Subject: [PATCH 100/118] Add plasmid replicate consistency check and transformation unit tests _validate_protocol now checks that all plasmids referenced in the protocol have the same number of wells in plasmid_locations before setting location_replicates, preventing IndexError or silent undercounting when the JSON has uneven well-list lengths. Also adds tests/test_transformation.py with 16 unit tests covering transformation data parsing edge cases and _validate_protocol validation, including the P2 inconsistent replicate count scenario. --- src/pudu/transformation.py | 16 ++- tests/test_transformation.py | 261 +++++++++++++++++++++++++++++++++++ 2 files changed, 276 insertions(+), 1 deletion(-) create mode 100644 tests/test_transformation.py diff --git a/src/pudu/transformation.py b/src/pudu/transformation.py index 384c2ec..2164e86 100644 --- a/src/pudu/transformation.py +++ b/src/pudu/transformation.py @@ -594,7 +594,21 @@ def _validate_protocol(self, protocol, labware): # Number of location replicates per strain (assembly replicates of the same plasmid in plate, # always 1 for temp module since plasmids are in a single sequential well) if self.plasmid_locations is not None: - self.location_replicates = len(next(iter(self.plasmid_locations.values()))) + # Build name→URI map for the plasmids referenced in this protocol + name_to_uri = {self._extract_name_from_uri(uri): uri for uri in self.plasmid_locations} + well_counts = {} + for plasmid_name in self.all_plasmids: + if plasmid_name in name_to_uri: + uri = name_to_uri[plasmid_name] + well_counts[plasmid_name] = len(self.plasmid_locations[uri]) + unique_counts = set(well_counts.values()) + if len(unique_counts) > 1: + detail = ', '.join(f'{name}: {count} wells' for name, count in well_counts.items()) + raise ValueError( + f"plasmid_locations has inconsistent replicate counts across plasmids — " + f"all plasmids must have the same number of wells. Found: {detail}" + ) + self.location_replicates = unique_counts.pop() if unique_counts else 1 else: self.location_replicates = 1 diff --git a/tests/test_transformation.py b/tests/test_transformation.py new file mode 100644 index 0000000..3c974c2 --- /dev/null +++ b/tests/test_transformation.py @@ -0,0 +1,261 @@ +""" +Unit tests for HeatShockTransformation validation logic. + +These tests cover __init__ parsing, _validate_protocol edge cases, and +the specific issues identified in code review: + - P1: tip reuse for competent cell distribution (verified via simulation) + - P2: inconsistent plasmid replicate counts in plasmid_locations + +Tests are split into: + - TestTransformationDataParsing : __init__ / _parse_transformation_data + - TestValidateProtocol : _validate_protocol edge cases +""" + +import unittest +from unittest.mock import MagicMock +from pudu.transformation import HeatShockTransformation + + +# --------------------------------------------------------------------------- +# Shared fixtures +# --------------------------------------------------------------------------- + +def make_transformation(transformation_data, plasmid_locations=None, **kwargs): + """Convenience wrapper — instantiate HeatShockTransformation with minimal args.""" + return HeatShockTransformation( + transformation_data=transformation_data, + plasmid_locations=plasmid_locations, + **kwargs + ) + + +class MockLabware: + """Minimal stand-in for an alumblock labware in _validate_protocol.""" + def __init__(self, num_wells=24): + self._wells = [MagicMock() for _ in range(num_wells)] + + def wells(self): + return self._wells + + +# Reusable transformation data blocks + +SINGLE_DH5ALPHA = [ + { + 'Strain': 'https://SBOL2Build.org/strain_1/1', + 'Chassis': 'https://sbolcanvas.org/DH5alpha/1', + 'Plasmids': ['https://SBOL2Build.org/plasmid_1/1'] + } +] + +TWO_STRAINS_TWO_PLASMIDS = [ + { + 'Strain': 'https://SBOL2Build.org/strain_1/1', + 'Chassis': 'https://sbolcanvas.org/DH5alpha/1', + 'Plasmids': ['https://SBOL2Build.org/plasmid_1/1'] + }, + { + 'Strain': 'https://SBOL2Build.org/strain_2/1', + 'Chassis': 'https://sbolcanvas.org/DH5alpha/1', + 'Plasmids': ['https://SBOL2Build.org/plasmid_2/1'] + } +] + +MULTI_CHASSIS = [ + { + 'Strain': 'https://SBOL2Build.org/strain_1/1', + 'Chassis': 'https://sbolcanvas.org/DH5alpha/1', + 'Plasmids': ['https://SBOL2Build.org/plasmid_1/1'] + }, + { + 'Strain': 'https://SBOL2Build.org/strain_2/1', + 'Chassis': 'https://sbolcanvas.org/BL21/1', + 'Plasmids': ['https://SBOL2Build.org/plasmid_1/1'] + } +] + +CONSISTENT_PLASMID_LOCATIONS = { + 'https://SBOL2Build.org/plasmid_1/1': ['A1', 'B1'], + 'https://SBOL2Build.org/plasmid_2/1': ['C1', 'D1'] +} + +INCONSISTENT_PLASMID_LOCATIONS = { + 'https://SBOL2Build.org/plasmid_1/1': ['A1', 'B1'], # 2 replicates + 'https://SBOL2Build.org/plasmid_2/1': ['C1'] # 1 replicate +} + + +# --------------------------------------------------------------------------- +# 1. Transformation data parsing (__init__ / _parse_transformation_data) +# --------------------------------------------------------------------------- + +class TestTransformationDataParsing(unittest.TestCase): + + def test_none_transformation_data_raises(self): + """transformation_data=None must raise immediately.""" + with self.assertRaises(ValueError) as ctx: + HeatShockTransformation(transformation_data=None) + self.assertIn('Must provide', str(ctx.exception)) + + def test_transformation_data_not_list_raises(self): + """A dict passed as transformation_data must raise (old API format).""" + with self.assertRaises(ValueError) as ctx: + HeatShockTransformation(transformation_data={ + 'list_of_dna': ['pA', 'pB'], + 'competent_cells': 'DH5alpha' + }) + self.assertIn('must be a list', str(ctx.exception)) + + def test_missing_strain_field_raises(self): + with self.assertRaises(ValueError) as ctx: + HeatShockTransformation(transformation_data=[{ + 'Chassis': 'https://sbolcanvas.org/DH5alpha/1', + 'Plasmids': ['https://SBOL2Build.org/plasmid_1/1'] + }]) + self.assertIn("missing 'Strain'", str(ctx.exception)) + + def test_missing_chassis_field_raises(self): + with self.assertRaises(ValueError) as ctx: + HeatShockTransformation(transformation_data=[{ + 'Strain': 'https://SBOL2Build.org/strain_1/1', + 'Plasmids': ['https://SBOL2Build.org/plasmid_1/1'] + }]) + self.assertIn("missing 'Chassis'", str(ctx.exception)) + + def test_missing_plasmids_field_raises(self): + with self.assertRaises(ValueError) as ctx: + HeatShockTransformation(transformation_data=[{ + 'Strain': 'https://SBOL2Build.org/strain_1/1', + 'Chassis': 'https://sbolcanvas.org/DH5alpha/1' + }]) + self.assertIn("missing 'Plasmids'", str(ctx.exception)) + + def test_empty_plasmids_list_raises(self): + with self.assertRaises(ValueError) as ctx: + HeatShockTransformation(transformation_data=[{ + 'Strain': 'https://SBOL2Build.org/strain_1/1', + 'Chassis': 'https://sbolcanvas.org/DH5alpha/1', + 'Plasmids': [] + }]) + self.assertIn('cannot be empty', str(ctx.exception)) + + def test_use_dna_96plate_without_plasmid_locations_raises(self): + """use_dna_96plate=True requires plasmid_locations.""" + with self.assertRaises(ValueError) as ctx: + HeatShockTransformation( + transformation_data=SINGLE_DH5ALPHA, + use_dna_96plate=True + ) + self.assertIn('plasmid_locations must be provided', str(ctx.exception)) + + def test_valid_single_chassis_parses(self): + t = make_transformation(SINGLE_DH5ALPHA) + self.assertEqual(len(t.transformations), 1) + self.assertEqual(t.all_chassis, ['DH5alpha']) + self.assertEqual(t.all_plasmids, ['plasmid_1']) + + def test_valid_multi_chassis_parses(self): + t = make_transformation(MULTI_CHASSIS) + self.assertEqual(len(t.transformations), 2) + self.assertIn('DH5alpha', t.all_chassis) + self.assertIn('BL21', t.all_chassis) + + def test_uri_and_plain_name_both_accepted(self): + """Plain names (non-URI) should work alongside full URIs.""" + t = make_transformation([{ + 'Strain': 'strain_1', + 'Chassis': 'DH5alpha', + 'Plasmids': ['plasmid_1'] + }]) + self.assertEqual(t.all_chassis, ['DH5alpha']) + self.assertEqual(t.all_plasmids, ['plasmid_1']) + + +# --------------------------------------------------------------------------- +# 2. _validate_protocol edge cases +# --------------------------------------------------------------------------- + +class TestValidateProtocol(unittest.TestCase): + """ + Call _validate_protocol directly with a mock labware so we can test + validation logic without spinning up a full protocol context. + """ + + def _run_validate(self, transformation, num_wells=24): + transformation._validate_protocol(protocol=None, labware=MockLabware(num_wells)) + + # --- P2: inconsistent plasmid replicate counts --- + + def test_inconsistent_plasmid_replicate_counts_raises(self): + """P2: plasmid_locations with uneven well-list lengths must raise.""" + t = make_transformation( + TWO_STRAINS_TWO_PLASMIDS, + plasmid_locations=INCONSISTENT_PLASMID_LOCATIONS + ) + with self.assertRaises(ValueError) as ctx: + self._run_validate(t) + self.assertIn('inconsistent replicate counts', str(ctx.exception)) + + def test_consistent_plasmid_replicate_counts_passes(self): + """Matching well-list lengths must not raise.""" + t = make_transformation( + TWO_STRAINS_TWO_PLASMIDS, + plasmid_locations=CONSISTENT_PLASMID_LOCATIONS + ) + # Should complete without error + self._run_validate(t) + self.assertEqual(t.location_replicates, 2) + + def test_single_plasmid_location_passes(self): + """Single plasmid — trivially consistent.""" + t = make_transformation( + SINGLE_DH5ALPHA, + plasmid_locations={'https://SBOL2Build.org/plasmid_1/1': ['A1', 'B1', 'C1']} + ) + self._run_validate(t) + self.assertEqual(t.location_replicates, 3) + + # --- Reagent capacity --- + + def test_too_many_reagents_for_alumblock_raises(self): + """ + 20 unique plasmids + competent cell tubes + media tubes > 24 wells. + Uses temp module path (no plasmid_locations). + """ + overflow_data = [ + { + 'Strain': f'https://SBOL2Build.org/strain_{i}/1', + 'Chassis': 'https://sbolcanvas.org/DH5alpha/1', + 'Plasmids': [f'https://SBOL2Build.org/plasmid_{i}/1'] + } + for i in range(20) + ] + t = make_transformation(overflow_data) + with self.assertRaises(ValueError) as ctx: + self._run_validate(t, num_wells=24) + self.assertIn('more than', str(ctx.exception)) + + def test_reagents_exactly_at_capacity_passes(self): + """ + Verify that a protocol fitting exactly within the alumblock does not raise. + 1 plasmid + 1 chassis tube + 1 media tube = 3 wells — well within 24. + """ + t = make_transformation(SINGLE_DH5ALPHA) + self._run_validate(t, num_wells=24) + + def test_multi_chassis_reagent_count(self): + """ + Multi-chassis: each chassis gets its own cell tube(s). + 2 strains × 1 chassis each × 2 replicates = 4 reactions total, + 1 tube per chassis (4 reactions < 5 per tube), 1 media tube. + Total: 2 plasmids + 2 cell tubes + 1 media = 5 wells — fits in 24. + """ + t = make_transformation(MULTI_CHASSIS) + self._run_validate(t, num_wells=24) + self.assertEqual(len(t.competent_cell_tubes_by_chassis), 2) + self.assertEqual(t.competent_cell_tubes_by_chassis['DH5alpha'], 1) + self.assertEqual(t.competent_cell_tubes_by_chassis['BL21'], 1) + + +if __name__ == '__main__': + unittest.main() From 0c3e86e389742c5db72bef07e6bbd9a10715af94 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Wed, 8 Apr 2026 03:40:39 -0600 Subject: [PATCH 101/118] Populate product_uri_to_wells in Domestication and ManualLoopAssembly Both classes only populated dna_list_for_transformation_protocol, leaving product_uri_to_wells empty and causing _export_transformation_input to write an empty JSON for non-SBOL assembly runs. Now mirrors the same tracking logic already present in SBOLLoopAssembly, using the construct name as the key in place of a URI. --- src/pudu/assembly.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/pudu/assembly.py b/src/pudu/assembly.py index b5ab761..23d5155 100644 --- a/src/pudu/assembly.py +++ b/src/pudu/assembly.py @@ -742,6 +742,12 @@ def _process_assembly_combinations(self, protocol, pipette, thermo_plate, alum_b self.dict_of_parts_in_thermocycler[assembly_name] = dest_well_name self.dna_list_for_transformation_protocol.append(f"{part}_rep{r + 1}") + # Populate product_uri_to_wells so _export_transformation_input + # produces a non-empty JSON for the assembly→transformation handoff + if part not in self.product_uri_to_wells: + self.product_uri_to_wells[part] = [] + self.product_uri_to_wells[part].append(dest_well_name) + thermocycler_well_counter += 1 return thermocycler_well_counter @@ -1054,6 +1060,13 @@ def _process_combinations(self, protocol, pipette, combinations, restriction_enz self.dict_of_parts_in_thermocycler[f"Replicate: {r + 1}, Combination: {combination}"] = dest_well_name combination_name = "_".join(combination) self.dna_list_for_transformation_protocol.append(f"{combination_name}_rep{r + 1}") + + # Populate product_uri_to_wells so _export_transformation_input + # produces a non-empty JSON for the assembly→transformation handoff + if combination_name not in self.product_uri_to_wells: + self.product_uri_to_wells[combination_name] = [] + self.product_uri_to_wells[combination_name].append(dest_well_name) + thermocycler_well_counter += 1 return thermocycler_well_counter From 23d4521b091b6130fa3d815863539c317bb9bc06 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Wed, 8 Apr 2026 03:57:08 -0600 Subject: [PATCH 102/118] Add initial_tip_p20 and initial_tip_p300 parameters to transformation protocol Allows users to set the starting tip well for each pipette, consistent with the same feature already present in plating.py. Defaults to None (starts from first available tip). Also extends test_transformation.py with 9 new tests covering attribute wiring and starting_tip assignment logic for both pipettes. --- src/pudu/transformation.py | 20 ++++++- tests/test_transformation.py | 105 +++++++++++++++++++++++++++++++++++ 2 files changed, 124 insertions(+), 1 deletion(-) diff --git a/src/pudu/transformation.py b/src/pudu/transformation.py index 2164e86..25a6607 100644 --- a/src/pudu/transformation.py +++ b/src/pudu/transformation.py @@ -70,6 +70,12 @@ class Transformation(): water_testing : bool If True, uses water in place of competent cells and recovery media during simulation/testing runs. By default, False. + initial_tip_p20 : str, optional + Well name of the first tip to use from the p20 tip rack (e.g. 'B1'). + If None, starts from the first available tip. By default, None. + initial_tip_p300 : str, optional + Well name of the first tip to use from the p300 tip rack (e.g. 'C3'). + If None, starts from the first available tip. By default, None. ''' def __init__(self, transformation_data: Optional[List] = None, @@ -96,6 +102,8 @@ def __init__(self, dispense_rate:float = 1, initial_dna_well:int = 0, water_testing:bool = False, + initial_tip_p20:Optional[str] = None, + initial_tip_p300:Optional[str] = None, **kwargs ): @@ -120,7 +128,9 @@ def __init__(self, 'aspiration_rate': aspiration_rate, 'dispense_rate': dispense_rate, 'initial_dna_well': initial_dna_well, - 'water_testing': water_testing + 'water_testing': water_testing, + 'initial_tip_p20': initial_tip_p20, + 'initial_tip_p300': initial_tip_p300 } kwargs_params.update(kwargs) @@ -163,6 +173,8 @@ def __init__(self, self.dispense_rate = self._merged_params['dispense_rate'] self.initial_dna_well = self._merged_params['initial_dna_well'] self.water_testing = self._merged_params['water_testing'] + self.initial_tip_p20 = self._merged_params['initial_tip_p20'] + self.initial_tip_p300 = self._merged_params['initial_tip_p300'] def _extract_name_from_uri(self, uri: str) -> str: """Extract name from SBOL URI""" @@ -276,6 +288,8 @@ def _merge_params(self, transformation_data: Optional[Dict], advanced_params: Op 'dispense_rate': 1, 'initial_dna_well': 0, 'water_testing': False, + 'initial_tip_p20': None, + 'initial_tip_p300': None, # HeatShockTransformation-specific parameters 'transfer_volume_dna': 2, 'transfer_volume_competent_cell': 20, @@ -507,7 +521,11 @@ def run(self, protocol: protocol_api.ProtocolContext): tiprack_p200 = protocol.load_labware(self.tiprack_p200_labware, self.tiprack_p200_position) # Load the pipette pipette_p20 = protocol.load_instrument(self.pipette_p20, self.pipette_p20_position, tip_racks=[tiprack_p20]) + if self.initial_tip_p20: + pipette_p20.starting_tip = tiprack_p20[self.initial_tip_p20] pipette_p300 = protocol.load_instrument(self.pipette_p300, self.pipette_p300_position, tip_racks=[tiprack_p200]) + if self.initial_tip_p300: + pipette_p300.starting_tip = tiprack_p200[self.initial_tip_p300] #Validate protocol self._validate_protocol(protocol, alumblock) diff --git a/tests/test_transformation.py b/tests/test_transformation.py index 3c974c2..ba1a33c 100644 --- a/tests/test_transformation.py +++ b/tests/test_transformation.py @@ -9,6 +9,7 @@ Tests are split into: - TestTransformationDataParsing : __init__ / _parse_transformation_data - TestValidateProtocol : _validate_protocol edge cases + - TestInitialTips : initial_tip_p20 / initial_tip_p300 params """ import unittest @@ -257,5 +258,109 @@ def test_multi_chassis_reagent_count(self): self.assertEqual(t.competent_cell_tubes_by_chassis['BL21'], 1) +# --------------------------------------------------------------------------- +# 3. Initial tip parameters +# --------------------------------------------------------------------------- + +class TestInitialTips(unittest.TestCase): + """ + Tests for initial_tip_p20 and initial_tip_p300. + + Attribute tests verify the full wiring: + __init__ param → kwargs_params → _merge_params → self.attribute + + Assignment tests replicate the run() conditional logic with mock objects + to confirm starting_tip is set (or not set) correctly without needing a + full protocol context. + """ + + # --- Attribute wiring --- + + def test_initial_tips_default_to_none(self): + """Both params must default to None when not provided.""" + t = make_transformation(SINGLE_DH5ALPHA) + self.assertIsNone(t.initial_tip_p20) + self.assertIsNone(t.initial_tip_p300) + + def test_initial_tip_p20_stored(self): + t = make_transformation(SINGLE_DH5ALPHA, initial_tip_p20='B1') + self.assertEqual(t.initial_tip_p20, 'B1') + + def test_initial_tip_p300_stored(self): + t = make_transformation(SINGLE_DH5ALPHA, initial_tip_p300='C3') + self.assertEqual(t.initial_tip_p300, 'C3') + + def test_both_initial_tips_set_independently(self): + """Setting both at once must not interfere with each other.""" + t = make_transformation(SINGLE_DH5ALPHA, initial_tip_p20='A3', initial_tip_p300='D6') + self.assertEqual(t.initial_tip_p20, 'A3') + self.assertEqual(t.initial_tip_p300, 'D6') + + def test_initial_tips_via_json_params(self): + """Params must be in valid_params so they can be set via json_params.""" + t = make_transformation( + SINGLE_DH5ALPHA, + json_params={'initial_tip_p20': 'E1', 'initial_tip_p300': 'F2'} + ) + self.assertEqual(t.initial_tip_p20, 'E1') + self.assertEqual(t.initial_tip_p300, 'F2') + + # --- starting_tip assignment logic --- + + def test_starting_tip_set_on_tiprack_when_provided(self): + """ + When initial_tip_p20/p300 are set, starting_tip should be assigned + using tiprack[well_name]. Replicates the run() conditional with mocks. + """ + t = make_transformation(SINGLE_DH5ALPHA, initial_tip_p20='B1', initial_tip_p300='C3') + + mock_tiprack_p20 = MagicMock() + mock_tiprack_p300 = MagicMock() + mock_pipette_p20 = MagicMock() + mock_pipette_p300 = MagicMock() + + if t.initial_tip_p20: + mock_pipette_p20.starting_tip = mock_tiprack_p20[t.initial_tip_p20] + if t.initial_tip_p300: + mock_pipette_p300.starting_tip = mock_tiprack_p300[t.initial_tip_p300] + + mock_tiprack_p20.__getitem__.assert_called_once_with('B1') + mock_tiprack_p300.__getitem__.assert_called_once_with('C3') + + def test_starting_tip_not_assigned_when_none(self): + """When initial_tip params are None, starting_tip must never be touched.""" + t = make_transformation(SINGLE_DH5ALPHA) + + mock_tiprack_p20 = MagicMock() + mock_tiprack_p300 = MagicMock() + mock_pipette_p20 = MagicMock() + mock_pipette_p300 = MagicMock() + + if t.initial_tip_p20: + mock_pipette_p20.starting_tip = mock_tiprack_p20[t.initial_tip_p20] + if t.initial_tip_p300: + mock_pipette_p300.starting_tip = mock_tiprack_p300[t.initial_tip_p300] + + mock_tiprack_p20.__getitem__.assert_not_called() + mock_tiprack_p300.__getitem__.assert_not_called() + + def test_p20_tip_set_independently_of_p300(self): + """Setting only p20 must leave p300 starting_tip untouched.""" + t = make_transformation(SINGLE_DH5ALPHA, initial_tip_p20='G6') + + mock_tiprack_p20 = MagicMock() + mock_tiprack_p300 = MagicMock() + mock_pipette_p20 = MagicMock() + mock_pipette_p300 = MagicMock() + + if t.initial_tip_p20: + mock_pipette_p20.starting_tip = mock_tiprack_p20[t.initial_tip_p20] + if t.initial_tip_p300: + mock_pipette_p300.starting_tip = mock_tiprack_p300[t.initial_tip_p300] + + mock_tiprack_p20.__getitem__.assert_called_once_with('G6') + mock_tiprack_p300.__getitem__.assert_not_called() + + if __name__ == '__main__': unittest.main() From bee04f8c0dc161d5170cde7d3c5903943b3efbd6 Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Wed, 8 Apr 2026 12:38:12 -0600 Subject: [PATCH 103/118] Refine ManualAssembly markdown sections and thermocycling defaults --- .../manual_assembly_protocol_example.md | 32 ++++----- scripts/manual_assembly_protocol.md | 32 ++++----- src/pudu/assembly.py | 66 +++++++++++++------ tests/test_manual_assembly.py | 2 + 4 files changed, 72 insertions(+), 60 deletions(-) diff --git a/documentation/manual_assembly_protocol_example.md b/documentation/manual_assembly_protocol_example.md index 4854647..716291d 100644 --- a/documentation/manual_assembly_protocol_example.md +++ b/documentation/manual_assembly_protocol_example.md @@ -1,27 +1,20 @@ # Golden Gate Manual Assembly Protocol ## Overview -This document provides human-readable Golden Gate assembly instructions from SBOL-style JSON input. -It is an instruction sheet for manual execution and is not an Opentrons OT-2 script. +Golden Gate assembly is a one-pot DNA cloning method that uses a Type IIS restriction enzyme, such as BsaI, together with DNA ligase to assemble multiple DNA fragments in a predefined order. +Because Type IIS enzymes cut outside their recognition sites, they generate custom overhangs that direct fragment assembly and allow the recognition sites to be removed from the final construct. +In this protocol, plasmids containing DNA parts and a destination backbone are combined with the restriction enzyme and ligase in a single tube, then cycled in a thermocycler between digestion and ligation temperatures. Repetition of these cycles enriches for the correctly assembled composite plasmid, after which the enzymes are heat-inactivated and the reaction is held at 4 °C until collection. ## Inputs - Number of target products: 2 - `composite_1` (https://SBOL2Build.org/composite_1/1) - `composite_2` (https://SBOL2Build.org/composite_2/1) -## Default reagent assumptions -- Total reaction volume: 20 µL -- Per DNA component volume (backbone or part): 2 µL -- Restriction enzyme volume: 2 µL -- T4 DNA ligase volume: 4 µL -- T4 DNA ligase buffer volume: 2 µL -- Water volume is calculated per reaction from the configured defaults. - ## Reaction summary -| Product | Backbone | Parts | Restriction Enzyme | # DNA Components | Water (µL) | Total (µL) | -| --- | --- | --- | --- | ---: | ---: | ---: | -| composite_1 | pSB1C3 | J23101, B0034, GFP, B0015 | BsaI | 5 | 2 | 20 | -| composite_2 | pSB1C3 | J23106, B0034, RFP, B0015 | BsaI | 5 | 2 | 20 | +| Product | Backbone | Parts | Restriction Enzyme | # DNA Components | DNA each (µL) | Enzyme (µL) | Ligase (µL) | Buffer (µL) | Water (µL) | Total (µL) | +| --- | --- | --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | +| composite_1 | pSB1C3 | J23101, B0034, GFP, B0015 | BsaI | 5 | 2 | 2 | 4 | 2 | 2 | 20 | +| composite_2 | pSB1C3 | J23106, B0034, RFP, B0015 | BsaI | 5 | 2 | 2 | 4 | 2 | 2 | 20 | ## Per-reaction instructions @@ -58,14 +51,13 @@ URI: https://SBOL2Build.org/composite_2/1 12. Briefly spin down if appropriate. ## Thermocycling -- Program a Golden Gate cycling profile suitable for your Type IIS enzyme and ligase system. -- Typical high-level pattern: - - 25-35 cycles alternating between digestion and ligation temperatures. - - Follow with a final digestion/inactivation step as appropriate for enzyme cleanup. - - Hold at 4°C until samples are recovered. -- Use your lab's validated Golden Gate settings for the selected restriction enzyme. +- Use a cycling profile that holds 42°C for 2 minutes and 16°C for 5 minutes; repeat this profile 75 times. +- Denature/inactivate proteins by holding 60°C for 10 minutes followed by 80°C for 10 minutes. +- Hold at 4°C until samples are collected. ## Notes - If the assembly was designed correctly, the final product should lack the Type IIS recognition sites used during assembly. - This generated document is a manual instruction sheet and not an automated OT-2 protocol. - Assumes all DNA parts are available at suitable concentrations and added at equal per-part volume. +- Store the assembly product at 4 °C for better stability until used for downstream applications. +- Validate assembled plasmids by restriction digest and gel electrophoresis, Sanger sequencing, or whole-plasmid sequencing. diff --git a/scripts/manual_assembly_protocol.md b/scripts/manual_assembly_protocol.md index 4854647..716291d 100644 --- a/scripts/manual_assembly_protocol.md +++ b/scripts/manual_assembly_protocol.md @@ -1,27 +1,20 @@ # Golden Gate Manual Assembly Protocol ## Overview -This document provides human-readable Golden Gate assembly instructions from SBOL-style JSON input. -It is an instruction sheet for manual execution and is not an Opentrons OT-2 script. +Golden Gate assembly is a one-pot DNA cloning method that uses a Type IIS restriction enzyme, such as BsaI, together with DNA ligase to assemble multiple DNA fragments in a predefined order. +Because Type IIS enzymes cut outside their recognition sites, they generate custom overhangs that direct fragment assembly and allow the recognition sites to be removed from the final construct. +In this protocol, plasmids containing DNA parts and a destination backbone are combined with the restriction enzyme and ligase in a single tube, then cycled in a thermocycler between digestion and ligation temperatures. Repetition of these cycles enriches for the correctly assembled composite plasmid, after which the enzymes are heat-inactivated and the reaction is held at 4 °C until collection. ## Inputs - Number of target products: 2 - `composite_1` (https://SBOL2Build.org/composite_1/1) - `composite_2` (https://SBOL2Build.org/composite_2/1) -## Default reagent assumptions -- Total reaction volume: 20 µL -- Per DNA component volume (backbone or part): 2 µL -- Restriction enzyme volume: 2 µL -- T4 DNA ligase volume: 4 µL -- T4 DNA ligase buffer volume: 2 µL -- Water volume is calculated per reaction from the configured defaults. - ## Reaction summary -| Product | Backbone | Parts | Restriction Enzyme | # DNA Components | Water (µL) | Total (µL) | -| --- | --- | --- | --- | ---: | ---: | ---: | -| composite_1 | pSB1C3 | J23101, B0034, GFP, B0015 | BsaI | 5 | 2 | 20 | -| composite_2 | pSB1C3 | J23106, B0034, RFP, B0015 | BsaI | 5 | 2 | 20 | +| Product | Backbone | Parts | Restriction Enzyme | # DNA Components | DNA each (µL) | Enzyme (µL) | Ligase (µL) | Buffer (µL) | Water (µL) | Total (µL) | +| --- | --- | --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | +| composite_1 | pSB1C3 | J23101, B0034, GFP, B0015 | BsaI | 5 | 2 | 2 | 4 | 2 | 2 | 20 | +| composite_2 | pSB1C3 | J23106, B0034, RFP, B0015 | BsaI | 5 | 2 | 2 | 4 | 2 | 2 | 20 | ## Per-reaction instructions @@ -58,14 +51,13 @@ URI: https://SBOL2Build.org/composite_2/1 12. Briefly spin down if appropriate. ## Thermocycling -- Program a Golden Gate cycling profile suitable for your Type IIS enzyme and ligase system. -- Typical high-level pattern: - - 25-35 cycles alternating between digestion and ligation temperatures. - - Follow with a final digestion/inactivation step as appropriate for enzyme cleanup. - - Hold at 4°C until samples are recovered. -- Use your lab's validated Golden Gate settings for the selected restriction enzyme. +- Use a cycling profile that holds 42°C for 2 minutes and 16°C for 5 minutes; repeat this profile 75 times. +- Denature/inactivate proteins by holding 60°C for 10 minutes followed by 80°C for 10 minutes. +- Hold at 4°C until samples are collected. ## Notes - If the assembly was designed correctly, the final product should lack the Type IIS recognition sites used during assembly. - This generated document is a manual instruction sheet and not an automated OT-2 protocol. - Assumes all DNA parts are available at suitable concentrations and added at equal per-part volume. +- Store the assembly product at 4 °C for better stability until used for downstream applications. +- Validate assembled plasmids by restriction digest and gel electrophoresis, Sanger sequencing, or whole-plasmid sequencing. diff --git a/src/pudu/assembly.py b/src/pudu/assembly.py index 1eaa6d3..2c04b83 100644 --- a/src/pudu/assembly.py +++ b/src/pudu/assembly.py @@ -1323,6 +1323,10 @@ def __init__(self, assembly_data: Optional[Dict] = None, json_params: Optional[str] = None, assemblies: Optional[List[Dict]] = None, + thermocycling_profile: Optional[List[Dict[str, float]]] = None, + thermocycling_cycles: int = 75, + denaturation_profile: Optional[List[Dict[str, float]]] = None, + hold_temperature: float = 4, *args, **kwargs): if assembly_data is not None: if isinstance(assembly_data, dict) and 'assemblies' in assembly_data: @@ -1338,6 +1342,16 @@ def __init__(self, super().__init__(json_params=json_params, *args, **kwargs) self.assemblies = assemblies self.reaction_records: List[ManualReactionRecord] = [] + self.thermocycling_profile = thermocycling_profile or [ + {'temperature': 42, 'hold_time_minutes': 2}, + {'temperature': 16, 'hold_time_minutes': 5} + ] + self.thermocycling_cycles = thermocycling_cycles + self.denaturation_profile = denaturation_profile or [ + {'temperature': 60, 'hold_time_minutes': 10}, + {'temperature': 80, 'hold_time_minutes': 10} + ] + self.hold_temperature = hold_temperature def process_assemblies(self): """Parse and validate input assemblies, then build reaction records.""" @@ -1468,15 +1482,25 @@ def _fmt_volume(self, value: float) -> str: return f"{int(value)}" if float(value).is_integer() else f"{value:.2f}" def _render_thermocycling_section(self) -> str: - """High-level Golden Gate thermocycling instructions. Can be parameterized later.""" + """High-level Golden Gate thermocycling instructions.""" + profile_descriptions = [ + f"{step['temperature']}°C for {step['hold_time_minutes']} minutes" + for step in self.thermocycling_profile + ] + denaturation_descriptions = [ + f"{step['temperature']}°C for {step['hold_time_minutes']} minutes" + for step in self.denaturation_profile + ] + + profile_sentence = " and ".join(profile_descriptions) + denaturation_sentence = " followed by ".join(denaturation_descriptions) + return ( "## Thermocycling\n" - "- Program a Golden Gate cycling profile suitable for your Type IIS enzyme and ligase system.\n" - "- Typical high-level pattern:\n" - " - 25-35 cycles alternating between digestion and ligation temperatures.\n" - " - Follow with a final digestion/inactivation step as appropriate for enzyme cleanup.\n" - " - Hold at 4°C until samples are recovered.\n" - "- Use your lab's validated Golden Gate settings for the selected restriction enzyme.\n" + f"- Use a cycling profile that holds {profile_sentence}; " + f"repeat this profile {self.thermocycling_cycles} times.\n" + f"- Denature/inactivate proteins by holding {denaturation_sentence}.\n" + f"- Hold at {self.hold_temperature}°C until samples are collected.\n" ) def render_markdown(self) -> str: @@ -1488,8 +1512,14 @@ def render_markdown(self) -> str: "# Golden Gate Manual Assembly Protocol", "", "## Overview", - "This document provides human-readable Golden Gate assembly instructions from SBOL-style JSON input.", - "It is an instruction sheet for manual execution and is not an Opentrons OT-2 script.", + "Golden Gate assembly is a one-pot DNA cloning method that uses a Type IIS restriction enzyme, " + "such as BsaI, together with DNA ligase to assemble multiple DNA fragments in a predefined order.", + "Because Type IIS enzymes cut outside their recognition sites, they generate custom overhangs that " + "direct fragment assembly and allow the recognition sites to be removed from the final construct.", + "In this protocol, plasmids containing DNA parts and a destination backbone are combined with the " + "restriction enzyme and ligase in a single tube, then cycled in a thermocycler between digestion and " + "ligation temperatures. Repetition of these cycles enriches for the correctly assembled composite " + "plasmid, after which the enzymes are heat-inactivated and the reaction is held at 4 °C until collection.", "", "## Inputs", f"- Number of target products: {len(self.reaction_records)}", @@ -1498,24 +1528,18 @@ def render_markdown(self) -> str: lines.append(f"- `{record.product_name}` ({record.product_uri})") lines.extend([ - "", - "## Default reagent assumptions", - f"- Total reaction volume: {self._fmt_volume(self.volume_total_reaction)} µL", - f"- Per DNA component volume (backbone or part): {self._fmt_volume(self.volume_part)} µL", - f"- Restriction enzyme volume: {self._fmt_volume(self.volume_restriction_enzyme)} µL", - f"- T4 DNA ligase volume: {self._fmt_volume(self.volume_t4_dna_ligase)} µL", - f"- T4 DNA ligase buffer volume: {self._fmt_volume(self.volume_t4_dna_ligase_buffer)} µL", - "- Water volume is calculated per reaction from the configured defaults.", "", "## Reaction summary", - "| Product | Backbone | Parts | Restriction Enzyme | # DNA Components | Water (µL) | Total (µL) |", - "| --- | --- | --- | --- | ---: | ---: | ---: |", + "| Product | Backbone | Parts | Restriction Enzyme | # DNA Components | DNA each (µL) | Enzyme (µL) | Ligase (µL) | Buffer (µL) | Water (µL) | Total (µL) |", + "| --- | --- | --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: |", ]) for record in self.reaction_records: lines.append( f"| {record.product_name} | {record.backbone_name} | {', '.join(record.part_names)} | " f"{record.restriction_enzyme_name} | {record.number_of_dna_components} | " + f"{self._fmt_volume(self.volume_part)} | {self._fmt_volume(self.volume_restriction_enzyme)} | " + f"{self._fmt_volume(self.volume_t4_dna_ligase)} | {self._fmt_volume(self.volume_t4_dna_ligase_buffer)} | " f"{self._fmt_volume(record.water_volume)} | {self._fmt_volume(record.total_reaction_volume)} |" ) @@ -1558,7 +1582,9 @@ def render_markdown(self) -> str: "## Notes", "- If the assembly was designed correctly, the final product should lack the Type IIS recognition sites used during assembly.", "- This generated document is a manual instruction sheet and not an automated OT-2 protocol.", - "- Assumes all DNA parts are available at suitable concentrations and added at equal per-part volume." + "- Assumes all DNA parts are available at suitable concentrations and added at equal per-part volume.", + "- Store the assembly product at 4 °C for better stability until used for downstream applications.", + "- Validate assembled plasmids by restriction digest and gel electrophoresis, Sanger sequencing, or whole-plasmid sequencing." ]) return "\n".join(lines) + "\n" diff --git a/tests/test_manual_assembly.py b/tests/test_manual_assembly.py index 05e430e..1f36e54 100644 --- a/tests/test_manual_assembly.py +++ b/tests/test_manual_assembly.py @@ -50,9 +50,11 @@ def test_markdown_rendering_contains_sections_and_parts(self): self.assertIn("# Golden Gate Manual Assembly Protocol", markdown) self.assertIn("## Reaction summary", markdown) + self.assertIn("DNA each (µL)", markdown) self.assertIn("### Product: composite_1", markdown) self.assertIn("Add 2 µL part `J23101`", markdown) self.assertIn("## Thermocycling", markdown) + self.assertIn("repeat this profile 75 times", markdown) if __name__ == "__main__": From 64448ed34303843b07f762212f079262a6a53af1 Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Wed, 8 Apr 2026 12:53:00 -0600 Subject: [PATCH 104/118] Update assembly notes and instructions in assembly.py Removed outdated notes and updated instructions for thermocycler iterations and DNA part concentrations. --- src/pudu/assembly.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/pudu/assembly.py b/src/pudu/assembly.py index 2c04b83..9960fe5 100644 --- a/src/pudu/assembly.py +++ b/src/pudu/assembly.py @@ -1580,9 +1580,8 @@ def render_markdown(self) -> str: lines.extend([ "", "## Notes", - "- If the assembly was designed correctly, the final product should lack the Type IIS recognition sites used during assembly.", - "- This generated document is a manual instruction sheet and not an automated OT-2 protocol.", - "- Assumes all DNA parts are available at suitable concentrations and added at equal per-part volume.", + "- Thermocylcer iterations can be increased to improve the reaction efficiency.", + "- Assumes all DNA parts are available at suitable concentrations and added at equal molarity. Suggested molarities are 20 fmol/µL for parts and 10 fmol/µL for backbones.", "- Store the assembly product at 4 °C for better stability until used for downstream applications.", "- Validate assembled plasmids by restriction digest and gel electrophoresis, Sanger sequencing, or whole-plasmid sequencing." ]) From 494933f333576c64004b7a17fabd6946cd917277 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Wed, 29 Apr 2026 02:02:54 -0600 Subject: [PATCH 105/118] Add URI name collision detection in _parse_transformation_data Guard against two different URIs (e.g. plasmid_1/1 and plasmid_1/2) extracting to the same short name, which would cause silent wrong-well lookups in _load_dna_into_dna_plate. Shared URIs across transformations (same plasmid used in multiple strains) remain valid. Adds three new tests covering the shared-URI pass case and both plasmid/chassis collision error cases. --- src/pudu/transformation.py | 26 +++++++++++++++++- tests/test_transformation.py | 51 ++++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+), 1 deletion(-) diff --git a/src/pudu/transformation.py b/src/pudu/transformation.py index 25a6607..52a93f7 100644 --- a/src/pudu/transformation.py +++ b/src/pudu/transformation.py @@ -210,6 +210,8 @@ def _parse_transformation_data(self, transformation_data): transformations = [] all_plasmids_set = set() all_chassis_set = set() + seen_plasmid_names = {} # name -> URI; detects two different URIs that collapse to the same name + seen_chassis_names = {} # name -> URI; same check for chassis for idx, transformation in enumerate(transformation_data): # Validate required fields @@ -226,10 +228,32 @@ def _parse_transformation_data(self, transformation_data): # Extract names from URIs strain_name = self._extract_name_from_uri(transformation['Strain']) - chassis_name = self._extract_name_from_uri(transformation['Chassis']) + chassis_uri = transformation['Chassis'] + chassis_name = self._extract_name_from_uri(chassis_uri) plasmid_uris = transformation['Plasmids'] plasmid_names = [self._extract_name_from_uri(p) for p in plasmid_uris] + # Chassis collision check: same name from two different URIs is ambiguous + if chassis_name in seen_chassis_names and seen_chassis_names[chassis_name] != chassis_uri: + raise ValueError( + f"Transformation {idx}: two chassis URIs extract to the same name " + f"'{chassis_name}': '{seen_chassis_names[chassis_name]}' and '{chassis_uri}'. " + f"Rename one URI to avoid ambiguity." + ) + seen_chassis_names[chassis_name] = chassis_uri + + # Plasmid collision check: same name from two different URIs would cause + # silent well lookup errors in _load_dna_into_dna_plate. + # The same URI appearing multiple times (shared plasmid) is fine. + for plasmid_uri, plasmid_name in zip(plasmid_uris, plasmid_names): + if plasmid_name in seen_plasmid_names and seen_plasmid_names[plasmid_name] != plasmid_uri: + raise ValueError( + f"Transformation {idx}: two plasmid URIs extract to the same name " + f"'{plasmid_name}': '{seen_plasmid_names[plasmid_name]}' and '{plasmid_uri}'. " + f"Rename one URI to avoid ambiguity." + ) + seen_plasmid_names[plasmid_name] = plasmid_uri + # If plasmid_locations provided, validate all plasmid URIs are present if self.plasmid_locations is not None: for uri in plasmid_uris: diff --git a/tests/test_transformation.py b/tests/test_transformation.py index ba1a33c..755c802 100644 --- a/tests/test_transformation.py +++ b/tests/test_transformation.py @@ -171,6 +171,57 @@ def test_uri_and_plain_name_both_accepted(self): self.assertEqual(t.all_chassis, ['DH5alpha']) self.assertEqual(t.all_plasmids, ['plasmid_1']) + def test_shared_plasmid_uri_across_transformations_passes(self): + """Same plasmid URI used in two different transformations is valid (shared source well).""" + t = make_transformation([ + { + 'Strain': 'https://SBOL2Build.org/strain_1/1', + 'Chassis': 'https://sbolcanvas.org/DH5alpha/1', + 'Plasmids': ['https://SBOL2Build.org/plasmid_1/1'] + }, + { + 'Strain': 'https://SBOL2Build.org/strain_2/1', + 'Chassis': 'https://sbolcanvas.org/BL21/1', + 'Plasmids': ['https://SBOL2Build.org/plasmid_1/1'] # same URI + } + ]) + # plasmid_1 appears only once — shared, not a collision + self.assertEqual(t.all_plasmids, ['plasmid_1']) + + def test_colliding_plasmid_uris_raises(self): + """Two different URIs that extract to the same plasmid name must raise.""" + with self.assertRaises(ValueError) as ctx: + make_transformation([ + { + 'Strain': 'https://SBOL2Build.org/strain_1/1', + 'Chassis': 'https://sbolcanvas.org/DH5alpha/1', + 'Plasmids': ['https://SBOL2Build.org/plasmid_1/1'] + }, + { + 'Strain': 'https://SBOL2Build.org/strain_2/1', + 'Chassis': 'https://sbolcanvas.org/DH5alpha/1', + 'Plasmids': ['https://SBOL2Build.org/plasmid_1/2'] # different URI, same name + } + ]) + self.assertIn('plasmid_1', str(ctx.exception)) + + def test_colliding_chassis_uris_raises(self): + """Two different URIs that extract to the same chassis name must raise.""" + with self.assertRaises(ValueError) as ctx: + make_transformation([ + { + 'Strain': 'https://SBOL2Build.org/strain_1/1', + 'Chassis': 'https://sbolcanvas.org/DH5alpha/1', + 'Plasmids': ['https://SBOL2Build.org/plasmid_1/1'] + }, + { + 'Strain': 'https://SBOL2Build.org/strain_2/1', + 'Chassis': 'https://sbolcanvas.org/DH5alpha/2', # different URI, same name + 'Plasmids': ['https://SBOL2Build.org/plasmid_2/1'] + } + ]) + self.assertIn('DH5alpha', str(ctx.exception)) + # --------------------------------------------------------------------------- # 2. _validate_protocol edge cases From 9eaeb749218074f0aefed9dcd6a0a86840ea5182 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Wed, 29 Apr 2026 02:06:24 -0600 Subject: [PATCH 106/118] Include initial_dna_well offset in temp-module capacity check The else branch in _validate_protocol was checking only raw reagent counts against module_wells. Since _load_reagents_temp_module starts DNA at initial_dna_well (not well 0), a non-zero offset can push the last reagent past the 24-well block even when raw counts pass. Added self.initial_dna_well to the sum and the error message. Two new tests cover the overflow and the within-capacity cases. --- src/pudu/transformation.py | 8 ++++++-- tests/test_transformation.py | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/pudu/transformation.py b/src/pudu/transformation.py index 52a93f7..1e31a53 100644 --- a/src/pudu/transformation.py +++ b/src/pudu/transformation.py @@ -685,9 +685,13 @@ def _validate_protocol(self, protocol, labware): f'{self.media_tubes_needed} tubes with media.' f'Please modify the protocol and try again.') else: - # DNA, cells, and media all on the temp module - if total_plasmid_wells + total_competent_cell_tubes + self.media_tubes_needed > module_wells: + # DNA, cells, and media all on the temp module. + # Loading starts at initial_dna_well, so the offset must be included + # in the capacity check — otherwise a non-zero offset can push the + # final reagent past the last well even when raw counts look fine. + if self.initial_dna_well + total_plasmid_wells + total_competent_cell_tubes + self.media_tubes_needed > module_wells: raise ValueError(f'The number of reagents is more than {module_wells}.' + f'DNA starts at well {self.initial_dna_well}.' f'There are {total_plasmid_wells} plasmid wells.' f'{total_competent_cell_tubes} tubes with competent cells ({self.competent_cell_tubes_by_chassis}).' f'{self.media_tubes_needed} tubes with media.' diff --git a/tests/test_transformation.py b/tests/test_transformation.py index 755c802..c44924f 100644 --- a/tests/test_transformation.py +++ b/tests/test_transformation.py @@ -295,6 +295,22 @@ def test_reagents_exactly_at_capacity_passes(self): t = make_transformation(SINGLE_DH5ALPHA) self._run_validate(t, num_wells=24) + def test_initial_dna_well_offset_included_in_capacity_check(self): + """ + P2: initial_dna_well offset must be counted in the temp-module capacity check. + 3 reagents (1 plasmid + 1 cell tube + 1 media tube) fit in 24 wells by raw count, + but starting at well 22 pushes the last reagent to well 24 — out of range. + """ + t = make_transformation(SINGLE_DH5ALPHA, initial_dna_well=22) + with self.assertRaises(ValueError) as ctx: + self._run_validate(t, num_wells=24) + self.assertIn('more than', str(ctx.exception)) + + def test_initial_dna_well_offset_within_capacity_passes(self): + """A non-zero initial_dna_well that still fits within the block must not raise.""" + t = make_transformation(SINGLE_DH5ALPHA, initial_dna_well=5) + self._run_validate(t, num_wells=24) # 5 + 1 + 1 + 1 = 8 <= 24 + def test_multi_chassis_reagent_count(self): """ Multi-chassis: each chassis gets its own cell tube(s). From 34a3207d525da7faf9381440bf9b52be1ccacfa2 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Wed, 29 Apr 2026 02:12:37 -0600 Subject: [PATCH 107/118] Bump apiLevel to 2.14 in four pre-existing failing scripts Opentrons switched from the legacy protocol core to the Protocol Engine at apiLevel 2.14. The legacy core tries to load module definitions from opentrons_shared_data/data/module/definitions/3/ which no longer ships with the installed version of opentrons_shared_data, causing a FileNotFoundError on every script below 2.14 that loads a temperature module. Bumping Automated_Golden_Gate.py (2.10) and the three libre scripts (2.13) to 2.14 routes them through the Protocol Engine and resolves all four CI failures. --- scripts/Automated_Golden_Gate.py | 2 +- scripts/run_Chemical_Transformation_libre.py | 4 ++-- scripts/run_Loop_assembly_libre.py | 2 +- scripts/run_sbol2assembly_libre.py | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/Automated_Golden_Gate.py b/scripts/Automated_Golden_Gate.py index 783269b..1d9ea9e 100644 --- a/scripts/Automated_Golden_Gate.py +++ b/scripts/Automated_Golden_Gate.py @@ -6,7 +6,7 @@ 'protocolName': 'Automated Golden Gate', 'author': 'Gonzalo Vidal , Carlos Vidal-Céspedes ', 'description': 'Protocol to perform a Golden Gate experiment', - 'apiLevel': '2.10' + 'apiLevel': '2.14' } def run(protocol: protocol_api.ProtocolContext): diff --git a/scripts/run_Chemical_Transformation_libre.py b/scripts/run_Chemical_Transformation_libre.py index 2d13931..242f17a 100644 --- a/scripts/run_Chemical_Transformation_libre.py +++ b/scripts/run_Chemical_Transformation_libre.py @@ -176,7 +176,7 @@ def __init__(self, 'protocolName': 'PUDU Transformation', 'author': 'Gonzalo Vidal ', 'description': 'Automated transformation protocol', - 'apiLevel': '2.13'} + 'apiLevel': '2.14'} def run(self, protocol: protocol_api.ProtocolContext): @@ -301,7 +301,7 @@ def run(self, protocol: protocol_api.ProtocolContext): 'protocolName': 'PUDU Transformation', 'author': 'Gonzalo Vidal ', 'description': 'Automated transformation protocol', -'apiLevel': '2.13'} +'apiLevel': '2.14'} def run(protocol= protocol_api.ProtocolContext): diff --git a/scripts/run_Loop_assembly_libre.py b/scripts/run_Loop_assembly_libre.py index fe2750c..2c1f6fd 100644 --- a/scripts/run_Loop_assembly_libre.py +++ b/scripts/run_Loop_assembly_libre.py @@ -296,7 +296,7 @@ def run(self, protocol: protocol_api.ProtocolContext): 'protocolName': 'PUDU Loop assembly', 'author': 'Gonzalo Vidal ', 'description': 'Automated DNA assembly Loop protocol', -'apiLevel': '2.13'} +'apiLevel': '2.14'} def run(protocol= protocol_api.ProtocolContext): diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/run_sbol2assembly_libre.py index bfd2482..0dc0da7 100644 --- a/scripts/run_sbol2assembly_libre.py +++ b/scripts/run_sbol2assembly_libre.py @@ -289,7 +289,7 @@ def get_xlsx_output(self, name:str): 'protocolName': 'PUDU Loop assembly', 'author': 'Gonzalo Vidal ', 'description': 'Automated DNA assembly Loop protocol', -'apiLevel': '2.13'} +'apiLevel': '2.14'} def run(protocol= protocol_api.ProtocolContext): From bc558664c96851b6ceada0492cc62220d54be3bf Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Wed, 29 Apr 2026 02:33:35 -0600 Subject: [PATCH 108/118] Move competent cells and media to a dedicated tube rack MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously cells and media shared the 24-well aluminum block with DNA plasmids, limiting the number of unique constructs per run. Now they load onto a separate opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap (default slot 3), freeing the entire block for plasmids. Changes: - Add tube_rack_labware / tube_rack_position params wired through the full kwargs → valid_params → attribute hierarchy - _validate_protocol(tube_rack=None): tube rack capacity checked for cells+media; alumblock checked for plasmids-only (temp module path) - _load_reagents gains tracking_dict param so cells/media populate dict_of_parts_in_tube_rack rather than dict_of_parts_in_temp_mod_position - _load_reagents_96plate and _load_reagents_temp_module both route cells/media to tube_rack at well 0 - Updated test suite: _run_validate passes a tube_rack mock, overflow test uses 25 plasmids, new tube_rack overflow test, offset test updated to reflect plasmids-only alumblock check --- src/pudu/transformation.py | 159 ++++++++++++++++++++--------------- tests/test_transformation.py | 34 +++++--- 2 files changed, 117 insertions(+), 76 deletions(-) diff --git a/src/pudu/transformation.py b/src/pudu/transformation.py index 1e31a53..b626319 100644 --- a/src/pudu/transformation.py +++ b/src/pudu/transformation.py @@ -76,6 +76,13 @@ class Transformation(): initial_tip_p300 : str, optional Well name of the first tip to use from the p300 tip rack (e.g. 'C3'). If None, starts from the first available tip. By default, None. + tube_rack_labware : str + Labware type for the tube rack that holds competent cells and recovery + media. Moving these off the temperature module frees the entire aluminum + block for DNA plasmids, maximising unique constructs per run. + By default, 'opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap'. + tube_rack_position : str + Deck slot for the tube rack. By default, '3'. ''' def __init__(self, transformation_data: Optional[List] = None, @@ -104,6 +111,8 @@ def __init__(self, water_testing:bool = False, initial_tip_p20:Optional[str] = None, initial_tip_p300:Optional[str] = None, + tube_rack_labware:str = 'opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap', + tube_rack_position:str = '3', **kwargs ): @@ -130,7 +139,9 @@ def __init__(self, 'initial_dna_well': initial_dna_well, 'water_testing': water_testing, 'initial_tip_p20': initial_tip_p20, - 'initial_tip_p300': initial_tip_p300 + 'initial_tip_p300': initial_tip_p300, + 'tube_rack_labware': tube_rack_labware, + 'tube_rack_position': tube_rack_position } kwargs_params.update(kwargs) @@ -175,6 +186,8 @@ def __init__(self, self.water_testing = self._merged_params['water_testing'] self.initial_tip_p20 = self._merged_params['initial_tip_p20'] self.initial_tip_p300 = self._merged_params['initial_tip_p300'] + self.tube_rack_labware = self._merged_params['tube_rack_labware'] + self.tube_rack_position = self._merged_params['tube_rack_position'] def _extract_name_from_uri(self, uri: str) -> str: """Extract name from SBOL URI""" @@ -314,6 +327,8 @@ def _merge_params(self, transformation_data: Optional[Dict], advanced_params: Op 'water_testing': False, 'initial_tip_p20': None, 'initial_tip_p300': None, + 'tube_rack_labware': 'opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap', + 'tube_rack_position': '3', # HeatShockTransformation-specific parameters 'transfer_volume_dna': 2, 'transfer_volume_competent_cell': 20, @@ -470,6 +485,7 @@ def __init__(self, self.dict_of_parts_in_temp_mod_position = {} self.dict_of_parts_in_thermocycler = {} self.dict_of_parts_in_dna_plate = {} + self.dict_of_parts_in_tube_rack = {} self.plasmid_name_to_wells = {} # plasmid name -> [well_obj, ...], populated during loading def _export_plating_input(self, protocol): @@ -540,6 +556,8 @@ def run(self, protocol: protocol_api.ProtocolContext): #If using the 96-well pcr plate as a dna construct source if self.use_dna_96plate: dna_plate = protocol.load_labware(self.dna_plate, self.dna_plate_position) + # Load the tube rack for competent cells and recovery media + tube_rack = protocol.load_labware(self.tube_rack_labware, self.tube_rack_position) # Load the tiprack tiprack_p20 = protocol.load_labware(self.tiprack_p20_labware, self.tiprack_p20_position) tiprack_p200 = protocol.load_labware(self.tiprack_p200_labware, self.tiprack_p200_position) @@ -551,13 +569,13 @@ def run(self, protocol: protocol_api.ProtocolContext): if self.initial_tip_p300: pipette_p300.starting_tip = tiprack_p200[self.initial_tip_p300] #Validate protocol - self._validate_protocol(protocol, alumblock) + self._validate_protocol(protocol, alumblock, tube_rack) #Load Reagents (also populates self.plasmid_name_to_wells) if self.use_dna_96plate: - competent_cell_wells_by_chassis, media_wells = self._load_reagents_96plate(protocol, dna_plate, alumblock) + competent_cell_wells_by_chassis, media_wells = self._load_reagents_96plate(protocol, dna_plate, alumblock, tube_rack) else: - competent_cell_wells_by_chassis, media_wells = self._load_reagents_temp_module(protocol, alumblock) + competent_cell_wells_by_chassis, media_wells = self._load_reagents_temp_module(protocol, alumblock, tube_rack) #Set Temperature module and Thermocycler module to 4 thermocycler_module.open_lid() @@ -607,36 +625,41 @@ def run(self, protocol: protocol_api.ProtocolContext): protocol.comment(f"Could not export plating input: {e}") # output - print('Strain and media tube in temp_mod') - print(self.dict_of_parts_in_temp_mod_position) if self.use_dna_96plate: - print('DNA constructs in DNA plate (slot 2)') + print('DNA constructs in DNA plate') print(self.dict_of_parts_in_dna_plate) + else: + print('DNA plasmids in temperature module') + print(self.dict_of_parts_in_temp_mod_position) + print('Competent cells and media in tube rack') + print(self.dict_of_parts_in_tube_rack) print('Genetically modified organisms in thermocycler') print(self.dict_of_parts_in_thermocycler) - def _validate_protocol(self, protocol, labware): + def _validate_protocol(self, protocol, labware, tube_rack=None): """ Validate protocol requirements and compute all derived counts used throughout run(). Sets: self.location_replicates, self.total_transformations, self.transformations_per_cell_tube, self.competent_cell_tubes_by_chassis, self.reactions_by_chassis, self.transformations_per_media_tube, self.media_tubes_needed. - Raises ValueError if reagents exceed available alumblock wells. + + Competent cells and recovery media always go onto the tube rack. + The aluminum block (labware) is used only for DNA plasmids when + use_dna_96plate=False. This maximises the number of unique constructs + that can be transformed in a single run. + + Raises ValueError if reagents exceed available wells on either labware. """ - #Number of available wells to load into module_wells = len(labware.wells()) + tube_rack_wells = len(tube_rack.wells()) if tube_rack is not None else 24 - #Number of strains to transform total_strains = len(self.transformations) - - #Number of total plasmid wells needed (one well per unique plasmid) total_plasmid_wells = len(self.all_plasmids) - # Number of location replicates per strain (assembly replicates of the same plasmid in plate, - # always 1 for temp module since plasmids are in a single sequential well) + # Number of location replicates per strain (assembly replicates of the same + # plasmid in the 96-well plate; always 1 when plasmids are on the temp module) if self.plasmid_locations is not None: - # Build name→URI map for the plasmids referenced in this protocol name_to_uri = {self._extract_name_from_uri(uri): uri for uri in self.plasmid_locations} well_counts = {} for plasmid_name in self.all_plasmids: @@ -654,17 +677,15 @@ def _validate_protocol(self, protocol, labware): else: self.location_replicates = 1 - #Total transformation reactions self.total_transformations = total_strains * self.location_replicates * self.replicates - #Calculate competent cell tubes needed per chassis type + # Calculate competent cell tubes needed per chassis self.transformations_per_cell_tube = self.tube_volume_competent_cell // self.transfer_volume_competent_cell self.competent_cell_tubes_by_chassis = {} self.reactions_by_chassis = {} total_competent_cell_tubes = 0 for chassis in self.all_chassis: - # Count how many transformations use this chassis transformations_for_chassis = sum(1 for t in self.transformations if t['chassis'] == chassis) reactions_for_chassis = transformations_for_chassis * self.location_replicates * self.replicates self.reactions_by_chassis[chassis] = reactions_for_chassis @@ -672,43 +693,42 @@ def _validate_protocol(self, protocol, labware): self.competent_cell_tubes_by_chassis[chassis] = tubes_needed total_competent_cell_tubes += tubes_needed - #Number of tubes with media to be used self.transformations_per_media_tube = self.tube_volume_recovery_media // self.transfer_volume_recovery_media self.media_tubes_needed = (self.total_transformations + self.transformations_per_media_tube - 1) // self.transformations_per_media_tube - #Validate wells - if self.use_dna_96plate: - # DNA is on a separate plate, only cells and media on the temp module - if total_competent_cell_tubes + self.media_tubes_needed > module_wells: - raise ValueError(f'The number of reagents is more than {module_wells}.' - f'There are {total_competent_cell_tubes} tubes with competent cells ({self.competent_cell_tubes_by_chassis}).' - f'{self.media_tubes_needed} tubes with media.' - f'Please modify the protocol and try again.') - else: - # DNA, cells, and media all on the temp module. - # Loading starts at initial_dna_well, so the offset must be included - # in the capacity check — otherwise a non-zero offset can push the - # final reagent past the last well even when raw counts look fine. - if self.initial_dna_well + total_plasmid_wells + total_competent_cell_tubes + self.media_tubes_needed > module_wells: - raise ValueError(f'The number of reagents is more than {module_wells}.' - f'DNA starts at well {self.initial_dna_well}.' - f'There are {total_plasmid_wells} plasmid wells.' - f'{total_competent_cell_tubes} tubes with competent cells ({self.competent_cell_tubes_by_chassis}).' - f'{self.media_tubes_needed} tubes with media.' - f'Please modify the protocol and try again.') - - - def _load_reagents_96plate(self, protocol, dna_plate, alumblock): + # Tube rack capacity: cells and media always live here + if total_competent_cell_tubes + self.media_tubes_needed > tube_rack_wells: + raise ValueError( + f'The number of reagent tubes is more than the tube rack capacity of {tube_rack_wells} wells. ' + f'There are {total_competent_cell_tubes} competent cell tubes ({self.competent_cell_tubes_by_chassis}) ' + f'and {self.media_tubes_needed} media tubes. ' + f'Please modify the protocol and try again.' + ) + + # Temperature module capacity: DNA plasmids only (when not using 96-well plate). + # Loading starts at initial_dna_well so the offset is included in the check. + if not self.use_dna_96plate: + if self.initial_dna_well + total_plasmid_wells > module_wells: + raise ValueError( + f'The number of plasmids requires more than {module_wells} temperature module wells. ' + f'DNA starts at well {self.initial_dna_well} with {total_plasmid_wells} unique plasmids ' + f'({self.initial_dna_well + total_plasmid_wells} wells needed). ' + f'Please modify the protocol and try again.' + ) + + + def _load_reagents_96plate(self, protocol, dna_plate, alumblock, tube_rack): """ Load all reagents for the 96-well plate workflow (plasmid_locations provided). DNA constructs are loaded from the assembly output plate at their fixed positions — populates self.plasmid_name_to_wells. Competent cells and media are loaded - sequentially onto the alumblock starting at well 0. + onto the tube rack (not the alumblock), leaving the alumblock entirely free. Parameters: - protocol: Protocol context - dna_plate: 96-well plate labware object (slot 2) - - alumblock: Temperature module labware object + - alumblock: Temperature module labware object (unused in this path) + - tube_rack: Tube rack labware object for competent cells and recovery media Returns: - competent_cell_wells_by_chassis: dict mapping chassis name to list of well objects @@ -718,19 +738,20 @@ def _load_reagents_96plate(self, protocol, dna_plate, alumblock): # Populates self.plasmid_name_to_wells self._load_dna_into_dna_plate(protocol, dna_plate) - # Load competent cells for each chassis onto alumblock + # Load competent cells and media onto tube rack starting at well 0 competent_cell_wells_by_chassis = {} current_well = 0 for chassis in self.all_chassis: tubes_needed = self.competent_cell_tubes_by_chassis[chassis] - wells = self._load_reagents(protocol, alumblock, self.tube_volume_competent_cell, - f"Competent Cell {chassis}", tubes_needed, initial_well=current_well) + wells = self._load_reagents(protocol, tube_rack, self.tube_volume_competent_cell, + f"Competent Cell {chassis}", tubes_needed, initial_well=current_well, + tracking_dict=self.dict_of_parts_in_tube_rack) competent_cell_wells_by_chassis[chassis] = wells current_well += tubes_needed - # Load media onto alumblock - media_wells = self._load_reagents(protocol, alumblock, self.tube_volume_recovery_media, - "Media", self.media_tubes_needed, initial_well=current_well) + media_wells = self._load_reagents(protocol, tube_rack, self.tube_volume_recovery_media, + "Media", self.media_tubes_needed, initial_well=current_well, + tracking_dict=self.dict_of_parts_in_tube_rack) return competent_cell_wells_by_chassis, media_wells @@ -768,16 +789,18 @@ def _load_dna_into_dna_plate(self, protocol, dna_plate): self.dict_of_parts_in_dna_plate[construct_name] = well_names current_color += 1 - def _load_reagents_temp_module(self, protocol, alumblock): + def _load_reagents_temp_module(self, protocol, alumblock, tube_rack): """ Load all reagents for the temp module workflow (no plasmid_locations). - DNA constructs are loaded sequentially starting at initial_dna_well — - populates self.plasmid_name_to_wells. Competent cells and media follow - sequentially on the same alumblock. + DNA constructs are loaded sequentially onto the alumblock starting at + initial_dna_well — populates self.plasmid_name_to_wells. Competent cells + and media are loaded onto the tube rack (not the alumblock), so the entire + alumblock is available for DNA plasmids. Parameters: - protocol: Protocol context - - alumblock: Temperature module labware object + - alumblock: Temperature module labware object (DNA plasmids only) + - tube_rack: Tube rack labware object for competent cells and recovery media Returns: - competent_cell_wells_by_chassis: dict mapping chassis name to list of well objects @@ -787,19 +810,20 @@ def _load_reagents_temp_module(self, protocol, alumblock): # Populates self.plasmid_name_to_wells self._load_dna_into_temp_module(protocol, alumblock) - # Load competent cells for each chassis, starting after the DNA wells + # Load competent cells and media onto tube rack starting at well 0 competent_cell_wells_by_chassis = {} - current_well = self.initial_dna_well + len(self.all_plasmids) + current_well = 0 for chassis in self.all_chassis: tubes_needed = self.competent_cell_tubes_by_chassis[chassis] - wells = self._load_reagents(protocol, alumblock, self.tube_volume_competent_cell, - f"Competent Cell {chassis}", tubes_needed, initial_well=current_well) + wells = self._load_reagents(protocol, tube_rack, self.tube_volume_competent_cell, + f"Competent Cell {chassis}", tubes_needed, initial_well=current_well, + tracking_dict=self.dict_of_parts_in_tube_rack) competent_cell_wells_by_chassis[chassis] = wells current_well += tubes_needed - # Load media onto alumblock after competent cells - media_wells = self._load_reagents(protocol, alumblock, self.tube_volume_recovery_media, - "Media", self.media_tubes_needed, initial_well=current_well) + media_wells = self._load_reagents(protocol, tube_rack, self.tube_volume_recovery_media, + "Media", self.media_tubes_needed, initial_well=current_well, + tracking_dict=self.dict_of_parts_in_tube_rack) return competent_cell_wells_by_chassis, media_wells @@ -827,11 +851,11 @@ def _load_dna_into_temp_module(self, protocol, alumblock): self.dict_of_parts_in_temp_mod_position[construct_name] = well.well_name current_color += 1 - def _load_reagents(self, protocol, labware, volume, reagent_name, tube_count, initial_well=0, color_index=None): + def _load_reagents(self, protocol, labware, volume, reagent_name, tube_count, initial_well=0, color_index=None, tracking_dict=None): """ Load multiple tubes of the same reagent type onto a labware object. Tubes are named {reagent_name}_1, {reagent_name}_2, etc. and tracked - in self.dict_of_parts_in_temp_mod_position. + in tracking_dict (defaults to self.dict_of_parts_in_temp_mod_position). Parameters: - protocol: Protocol context @@ -841,10 +865,13 @@ def _load_reagents(self, protocol, labware, volume, reagent_name, tube_count, in - tube_count: Number of tubes to load - initial_well: Starting well index on the labware - color_index: Starting color index for Opentrons UI (cycles through colors list) + - tracking_dict: Dict to record {name: well_name}; defaults to dict_of_parts_in_temp_mod_position Returns: - List of well objects in order """ + if tracking_dict is None: + tracking_dict = self.dict_of_parts_in_temp_mod_position wells = [] current_color = color_index if color_index is not None else 0 for i in range(tube_count): @@ -858,7 +885,7 @@ def _load_reagents(self, protocol, labware, volume, reagent_name, tube_count, in ) well.load_liquid(liquid, volume=volume) - self.dict_of_parts_in_temp_mod_position[name] = well.well_name + tracking_dict[name] = well.well_name current_color += 1 return wells diff --git a/tests/test_transformation.py b/tests/test_transformation.py index c44924f..6d605ef 100644 --- a/tests/test_transformation.py +++ b/tests/test_transformation.py @@ -233,8 +233,12 @@ class TestValidateProtocol(unittest.TestCase): validation logic without spinning up a full protocol context. """ - def _run_validate(self, transformation, num_wells=24): - transformation._validate_protocol(protocol=None, labware=MockLabware(num_wells)) + def _run_validate(self, transformation, num_wells=24, tube_rack_wells=24): + transformation._validate_protocol( + protocol=None, + labware=MockLabware(num_wells), + tube_rack=MockLabware(tube_rack_wells) + ) # --- P2: inconsistent plasmid replicate counts --- @@ -269,10 +273,10 @@ def test_single_plasmid_location_passes(self): # --- Reagent capacity --- - def test_too_many_reagents_for_alumblock_raises(self): + def test_too_many_plasmids_for_alumblock_raises(self): """ - 20 unique plasmids + competent cell tubes + media tubes > 24 wells. - Uses temp module path (no plasmid_locations). + 25 unique plasmids > 24 wells on the temperature module. + Cells and media are on the tube rack, so the alumblock check is plasmids-only. """ overflow_data = [ { @@ -280,13 +284,23 @@ def test_too_many_reagents_for_alumblock_raises(self): 'Chassis': 'https://sbolcanvas.org/DH5alpha/1', 'Plasmids': [f'https://SBOL2Build.org/plasmid_{i}/1'] } - for i in range(20) + for i in range(25) ] t = make_transformation(overflow_data) with self.assertRaises(ValueError) as ctx: self._run_validate(t, num_wells=24) self.assertIn('more than', str(ctx.exception)) + def test_too_many_tubes_for_tube_rack_raises(self): + """ + Enough reactions to overflow a very small tube rack. + 2 strains × 2 replicates = 4 reactions → 1 cell tube + 1 media tube = 2 > 1. + """ + t = make_transformation(TWO_STRAINS_TWO_PLASMIDS) + with self.assertRaises(ValueError) as ctx: + self._run_validate(t, tube_rack_wells=1) + self.assertIn('more than', str(ctx.exception)) + def test_reagents_exactly_at_capacity_passes(self): """ Verify that a protocol fitting exactly within the alumblock does not raise. @@ -298,10 +312,10 @@ def test_reagents_exactly_at_capacity_passes(self): def test_initial_dna_well_offset_included_in_capacity_check(self): """ P2: initial_dna_well offset must be counted in the temp-module capacity check. - 3 reagents (1 plasmid + 1 cell tube + 1 media tube) fit in 24 wells by raw count, - but starting at well 22 pushes the last reagent to well 24 — out of range. + Cells and media are now on the tube rack, so the alumblock holds only plasmids. + initial_dna_well=24 + 1 plasmid = 25 > 24 → out of range. """ - t = make_transformation(SINGLE_DH5ALPHA, initial_dna_well=22) + t = make_transformation(SINGLE_DH5ALPHA, initial_dna_well=24) with self.assertRaises(ValueError) as ctx: self._run_validate(t, num_wells=24) self.assertIn('more than', str(ctx.exception)) @@ -309,7 +323,7 @@ def test_initial_dna_well_offset_included_in_capacity_check(self): def test_initial_dna_well_offset_within_capacity_passes(self): """A non-zero initial_dna_well that still fits within the block must not raise.""" t = make_transformation(SINGLE_DH5ALPHA, initial_dna_well=5) - self._run_validate(t, num_wells=24) # 5 + 1 + 1 + 1 = 8 <= 24 + self._run_validate(t, num_wells=24) # 5 + 1 plasmid = 6 <= 24 def test_multi_chassis_reagent_count(self): """ From 2dd7242530abc3872683b4d1f93a889d17b135f6 Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Wed, 29 Apr 2026 12:41:47 -0600 Subject: [PATCH 109/118] Validate non-empty plasmid location wells --- src/pudu/transformation.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/pudu/transformation.py b/src/pudu/transformation.py index b626319..a2a0a99 100644 --- a/src/pudu/transformation.py +++ b/src/pudu/transformation.py @@ -673,6 +673,11 @@ def _validate_protocol(self, protocol, labware, tube_rack=None): f"plasmid_locations has inconsistent replicate counts across plasmids — " f"all plasmids must have the same number of wells. Found: {detail}" ) + if unique_counts == {0}: + raise ValueError( + "plasmid_locations contains empty well lists for all referenced plasmids. " + "Each plasmid must have at least one destination well." + ) self.location_replicates = unique_counts.pop() if unique_counts else 1 else: self.location_replicates = 1 From 5ece67194edc4e36bdaeae27be5e4cda41d68cae Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Thu, 30 Apr 2026 17:20:06 -0600 Subject: [PATCH 110/118] Improve manual assembly markdown output format --- src/pudu/assembly.py | 184 ++++++++++++++++------------------ tests/test_manual_assembly.py | 13 ++- 2 files changed, 95 insertions(+), 102 deletions(-) diff --git a/src/pudu/assembly.py b/src/pudu/assembly.py index 9960fe5..037d2a6 100644 --- a/src/pudu/assembly.py +++ b/src/pudu/assembly.py @@ -1343,14 +1343,14 @@ def __init__(self, self.assemblies = assemblies self.reaction_records: List[ManualReactionRecord] = [] self.thermocycling_profile = thermocycling_profile or [ - {'temperature': 42, 'hold_time_minutes': 2}, - {'temperature': 16, 'hold_time_minutes': 5} + {'step': 'Digest', 'temperature': 37, 'hold_time_minutes': 2, 'cycles': 25}, + {'step': 'Ligate', 'temperature': 16, 'hold_time_minutes': 5, 'cycles': 25}, + {'step': 'Final digestion', 'temperature': 50, 'hold_time_minutes': 5, 'cycles': 1}, + {'step': 'Heat inactivation', 'temperature': 80, 'hold_time_minutes': 10, 'cycles': 1}, + {'step': 'Hold', 'temperature': 4, 'hold_time_minutes': 'indefinite', 'cycles': 1}, ] self.thermocycling_cycles = thermocycling_cycles - self.denaturation_profile = denaturation_profile or [ - {'temperature': 60, 'hold_time_minutes': 10}, - {'temperature': 80, 'hold_time_minutes': 10} - ] + self.denaturation_profile = denaturation_profile or [] self.hold_temperature = hold_temperature def process_assemblies(self): @@ -1387,18 +1387,45 @@ def _validate_input_assemblies(self): if not isinstance(assembly['PartsList'], list) or not assembly['PartsList']: raise ValueError(f"Assembly #{idx} has an invalid 'PartsList'. Expected a non-empty list.") - def _extract_name_from_uri(self, uri: str) -> str: - """Extract display name from URI; falls back safely to raw input if needed.""" - if not isinstance(uri, str): - return str(uri) - - segments = [segment for segment in uri.rstrip('/').split('/') if segment] - if not segments: - return uri - + def _extract_name_from_uri(self, value) -> str: + """Extract human-readable names from dictionaries, URIs, or plain values.""" + if isinstance(value, dict): + for key in ("displayId", "display_id", "name", "label"): + if value.get(key): + return value[key] + uri = self._extract_uri(value) or value + if not uri: + return "Unknown" + segments = [segment for segment in str(uri).rstrip('/').split('/') if segment] if len(segments) >= 2 and segments[-1].isdigit(): return segments[-2] - return segments[-1] + return segments[-1] if segments else "Unknown" + + def _extract_uri(self, value) -> Optional[str]: + if isinstance(value, dict): + for key in ( + "Implementation", + "implementation", + "implementation_uri", + "implementationUri", + "Implementation URI", + "uri", + "URI", + "identity", + ): + if value.get(key): + return value[key] + return None + if isinstance(value, str) and value.startswith(("http://", "https://")): + return value + return None + + def _markdown_link(self, label: str, uri: Optional[str]) -> str: + if not uri: + return label + escaped_label = str(label).replace("[", "\\[").replace("]", "\\]") + escaped_uri = str(uri).replace(")", "%29").replace(" ", "%20") + return f"[{escaped_label}]({escaped_uri})" def _calculate_reaction_volumes(self, number_of_dna_components: int) -> Dict[str, float]: total_dna_volume = number_of_dna_components * self.volume_part @@ -1430,10 +1457,10 @@ def _calculate_reaction_volumes(self, number_of_dna_components: int) -> Dict[str def _build_reaction_records(self) -> List[ManualReactionRecord]: records: List[ManualReactionRecord] = [] for assembly in self.assemblies: - product_uri = assembly["Product"] - backbone_uri = assembly["Backbone"] + product_uri = self._extract_uri(assembly["Product"]) or str(assembly["Product"]) + backbone_uri = self._extract_uri(assembly["Backbone"]) or str(assembly["Backbone"]) part_uris = assembly["PartsList"] - enzyme_uri = assembly["Restriction Enzyme"] + enzyme_uri = self._extract_uri(assembly["Restriction Enzyme"]) or str(assembly["Restriction Enzyme"]) product_name = self._extract_name_from_uri(product_uri) backbone_name = self._extract_name_from_uri(backbone_uri) @@ -1445,17 +1472,17 @@ def _build_reaction_records(self) -> List[ManualReactionRecord]: reagent_additions = [ {'name': 'nuclease-free water', 'volume_uL': self._fmt_volume(volume_data['water_volume'])}, - {'name': '10X T4 DNA Ligase Buffer', 'volume_uL': self._fmt_volume(self.volume_t4_dna_ligase_buffer)}, + {'name': 'T4 DNA ligase buffer', 'volume_uL': self._fmt_volume(self.volume_t4_dna_ligase_buffer)}, {'name': 'T4 DNA Ligase', 'volume_uL': self._fmt_volume(self.volume_t4_dna_ligase)}, - {'name': enzyme_name, 'volume_uL': self._fmt_volume(self.volume_restriction_enzyme)}, - {'name': f"backbone `{backbone_name}`", 'volume_uL': self._fmt_volume(self.volume_part)}, + {'name': f"{enzyme_name} restriction enzyme", 'volume_uL': self._fmt_volume(self.volume_restriction_enzyme)}, + {'name': backbone_name, 'volume_uL': self._fmt_volume(self.volume_part), 'uri': backbone_uri}, ] for part_uri, part_name in zip(part_uris, part_names): reagent_additions.append({ - 'name': f"part `{part_name}`", + 'name': part_name, 'volume_uL': self._fmt_volume(self.volume_part), - 'uri': part_uri + 'uri': self._extract_uri(part_uri) }) record = ManualReactionRecord( @@ -1481,27 +1508,19 @@ def _build_reaction_records(self) -> List[ManualReactionRecord]: def _fmt_volume(self, value: float) -> str: return f"{int(value)}" if float(value).is_integer() else f"{value:.2f}" - def _render_thermocycling_section(self) -> str: - """High-level Golden Gate thermocycling instructions.""" - profile_descriptions = [ - f"{step['temperature']}°C for {step['hold_time_minutes']} minutes" - for step in self.thermocycling_profile - ] - denaturation_descriptions = [ - f"{step['temperature']}°C for {step['hold_time_minutes']} minutes" - for step in self.denaturation_profile + def _render_thermocycling_section(self) -> List[str]: + lines = [ + "## Thermocycler Program", + "", + "| Step | Temperature | Time | Cycles |", + "| --- | --- | --- | ---: |", ] - - profile_sentence = " and ".join(profile_descriptions) - denaturation_sentence = " followed by ".join(denaturation_descriptions) - - return ( - "## Thermocycling\n" - f"- Use a cycling profile that holds {profile_sentence}; " - f"repeat this profile {self.thermocycling_cycles} times.\n" - f"- Denature/inactivate proteins by holding {denaturation_sentence}.\n" - f"- Hold at {self.hold_temperature}°C until samples are collected.\n" - ) + for step in self.thermocycling_profile: + time_value = step['hold_time_minutes'] + time_text = f"{time_value} min" if isinstance(time_value, (int, float)) else str(time_value) + lines.append(f"| {step['step']} | {step['temperature']} C | {time_text} | {step['cycles']} |") + lines.append("") + return lines def render_markdown(self) -> str: """Render a complete manual protocol in Markdown format.""" @@ -1509,7 +1528,7 @@ def render_markdown(self) -> str: self.process_assemblies() lines = [ - "# Golden Gate Manual Assembly Protocol", + "# Manual Golden Gate Assembly Protocol", "", "## Overview", "Golden Gate assembly is a one-pot DNA cloning method that uses a Type IIS restriction enzyme, " @@ -1521,64 +1540,39 @@ def render_markdown(self) -> str: "ligation temperatures. Repetition of these cycles enriches for the correctly assembled composite " "plasmid, after which the enzymes are heat-inactivated and the reaction is held at 4 °C until collection.", "", - "## Inputs", - f"- Number of target products: {len(self.reaction_records)}", - ] - for record in self.reaction_records: - lines.append(f"- `{record.product_name}` ({record.product_uri})") - - lines.extend([ + "## Reaction Setup", "", - "## Reaction summary", - "| Product | Backbone | Parts | Restriction Enzyme | # DNA Components | DNA each (µL) | Enzyme (µL) | Ligase (µL) | Buffer (µL) | Water (µL) | Total (µL) |", - "| --- | --- | --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: |", - ]) - - for record in self.reaction_records: - lines.append( - f"| {record.product_name} | {record.backbone_name} | {', '.join(record.part_names)} | " - f"{record.restriction_enzyme_name} | {record.number_of_dna_components} | " - f"{self._fmt_volume(self.volume_part)} | {self._fmt_volume(self.volume_restriction_enzyme)} | " - f"{self._fmt_volume(self.volume_t4_dna_ligase)} | {self._fmt_volume(self.volume_t4_dna_ligase_buffer)} | " - f"{self._fmt_volume(record.water_volume)} | {self._fmt_volume(record.total_reaction_volume)} |" - ) - - lines.append("") - lines.append("## Per-reaction instructions") + f"- Total reaction volume: {self._fmt_volume(self.volume_total_reaction)} uL", + f"- DNA input volume: {self._fmt_volume(self.volume_part)} uL per backbone or part", + f"- Assemblies: {len(self.reaction_records)}", + ] lines.append("") - for record in self.reaction_records: - lines.append(f"### Product: {record.product_name}") - lines.append(f"URI: {record.product_uri}") - lines.append("") - lines.append(f"1. Label one tube as `{record.product_name}`.") - lines.append(f"2. Add {self._fmt_volume(record.water_volume)} µL nuclease-free water.") - lines.append(f"3. Add {self._fmt_volume(self.volume_t4_dna_ligase_buffer)} µL 10X T4 DNA Ligase Buffer.") - lines.append(f"4. Add {self._fmt_volume(self.volume_t4_dna_ligase)} µL T4 DNA Ligase.") - lines.append( - f"5. Add {self._fmt_volume(self.volume_restriction_enzyme)} µL " - f"{record.restriction_enzyme_name} (URI: {record.restriction_enzyme_uri})." - ) - lines.append( - f"6. Add {self._fmt_volume(self.volume_part)} µL backbone " - f"`{record.backbone_name}` (URI: {record.backbone_uri})." + for index, record in enumerate(self.reaction_records, start=1): + lines.extend( + [ + f"## Assembly {index}: {record.product_name}", + "", + "| Reagent | Volume (uL) |", + "| --- | ---: |", + ] ) - - step_counter = 7 - for part_name, part_uri in zip(record.part_names, record.part_uris): + for reagent in record.reagent_additions: lines.append( - f"{step_counter}. Add {self._fmt_volume(self.volume_part)} µL part " - f"`{part_name}` (URI: {part_uri})." + f"| {self._markdown_link(reagent['name'], reagent.get('uri'))} | {reagent['volume_uL']} |" ) - step_counter += 1 - - lines.append(f"{step_counter}. Mix gently by pipetting. Do not vortex unless explicitly intended.") - lines.append(f"{step_counter + 1}. Briefly spin down if appropriate.") - lines.append("") + lines.extend( + [ + "", + "1. Add reagents to a PCR tube or thermocycler plate well in the order listed.", + "2. Mix gently by pipetting, then briefly spin down.", + "3. Run the thermocycler program below.", + "", + ] + ) - lines.append(self._render_thermocycling_section().rstrip()) + lines.extend(self._render_thermocycling_section()) lines.extend([ - "", "## Notes", "- Thermocylcer iterations can be increased to improve the reaction efficiency.", "- Assumes all DNA parts are available at suitable concentrations and added at equal molarity. Suggested molarities are 20 fmol/µL for parts and 10 fmol/µL for backbones.", diff --git a/tests/test_manual_assembly.py b/tests/test_manual_assembly.py index 1f36e54..566be57 100644 --- a/tests/test_manual_assembly.py +++ b/tests/test_manual_assembly.py @@ -48,13 +48,12 @@ def test_markdown_rendering_contains_sections_and_parts(self): assembly = ManualAssembly(assemblies=self.assemblies) markdown = assembly.render_markdown() - self.assertIn("# Golden Gate Manual Assembly Protocol", markdown) - self.assertIn("## Reaction summary", markdown) - self.assertIn("DNA each (µL)", markdown) - self.assertIn("### Product: composite_1", markdown) - self.assertIn("Add 2 µL part `J23101`", markdown) - self.assertIn("## Thermocycling", markdown) - self.assertIn("repeat this profile 75 times", markdown) + self.assertIn("# Manual Golden Gate Assembly Protocol", markdown) + self.assertIn("## Reaction Setup", markdown) + self.assertIn("## Assembly 1: composite_1", markdown) + self.assertIn("| [J23101](https://sbolcanvas.org/J23101/1) | 2 |", markdown) + self.assertIn("## Thermocycler Program", markdown) + self.assertIn("| Digest | 37 C | 2 min | 25 |", markdown) if __name__ == "__main__": From bf6fe96e8d04ea4d5e11e61e87d06ccc9641bbcd Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Thu, 30 Apr 2026 21:44:23 -0600 Subject: [PATCH 111/118] Add manual transformation protocol generator and class --- ...generate_manual_transformation_protocol.py | 27 ++++ src/pudu/transformation.py | 124 ++++++++++++++++++ 2 files changed, 151 insertions(+) create mode 100644 scripts/generate_manual_transformation_protocol.py diff --git a/scripts/generate_manual_transformation_protocol.py b/scripts/generate_manual_transformation_protocol.py new file mode 100644 index 0000000..70659b0 --- /dev/null +++ b/scripts/generate_manual_transformation_protocol.py @@ -0,0 +1,27 @@ +import json +import argparse +from pathlib import Path + +from pudu.transformation import ManualTransformation + + +def main(): + parser = argparse.ArgumentParser(description="Generate a manual heat-shock transformation Markdown protocol.") + parser.add_argument("--input", default="scripts/manual_transformation_input.json", help="Path to SBOL-style JSON input file.") + parser.add_argument("--output", default="scripts/manual_transformation_protocol.md", help="Path to Markdown output file.") + args = parser.parse_args() + + input_path = Path(args.input) + output_path = Path(args.output) + + transformations = json.loads(input_path.read_text(encoding="utf-8")) + + manual_protocol = ManualTransformation(transformation_data=transformations) + manual_protocol.process_transformations() + manual_protocol.write_markdown(str(output_path)) + + print(f"Manual transformation protocol written to {output_path}") + + +if __name__ == "__main__": + main() diff --git a/src/pudu/transformation.py b/src/pudu/transformation.py index b90ea0e..35fa12e 100644 --- a/src/pudu/transformation.py +++ b/src/pudu/transformation.py @@ -1,6 +1,7 @@ from opentrons import protocol_api from typing import List, Dict, Optional from pudu.utils import colors +from dataclasses import dataclass class Transformation(): @@ -572,6 +573,7 @@ def run(self, protocol: protocol_api.ProtocolContext): print('Genetically modified organisms in thermocycler') print(self.dict_of_parts_in_thermocycler) + def _validate_protocol(self, protocol, labware): """ Validate protocol requirements and compute all derived counts used throughout run(). @@ -944,3 +946,125 @@ def _transfer_liquid_broth(self, protocol, pipette, pcr_plate, media_wells, tran well_index += wells_to_fill + +@dataclass +class ManualTransformationRecord: + strain_uri: str + strain_name: str + chassis_uri: str + chassis_name: str + plasmid_uris: List[str] + plasmid_names: List[str] + + +class ManualTransformation: + """Manual counterpart of automated transformation protocol.""" + + def __init__(self, + transformation_data: Optional[List[Dict]] = None, + transfer_volume_dna: float = 2, + transfer_volume_competent_cell: float = 20, + transfer_volume_recovery_media: float = 60, + replicates: int = 2, + cold_incubation1: Optional[Dict] = None, + heat_shock: Optional[Dict] = None, + cold_incubation2: Optional[Dict] = None, + recovery_incubation: Optional[Dict] = None): + if not isinstance(transformation_data, list) or not transformation_data: + raise ValueError("transformation_data must be a non-empty list of transformation dictionaries") + self.transformation_data = transformation_data + self.transfer_volume_dna = transfer_volume_dna + self.transfer_volume_competent_cell = transfer_volume_competent_cell + self.transfer_volume_recovery_media = transfer_volume_recovery_media + self.replicates = replicates + self.cold_incubation1 = cold_incubation1 or {'temperature': 4, 'hold_time_minutes': 30} + self.heat_shock = heat_shock or {'temperature': 42, 'hold_time_minutes': 1} + self.cold_incubation2 = cold_incubation2 or {'temperature': 4, 'hold_time_minutes': 2} + self.recovery_incubation = recovery_incubation or {'temperature': 37, 'hold_time_minutes': 60} + self.records: List[ManualTransformationRecord] = [] + + def _extract_name_from_uri(self, uri: str) -> str: + if not isinstance(uri, str): + return str(uri) + parts = [segment for segment in uri.rstrip("/").split("/") if segment] + if len(parts) >= 2 and parts[-1].isdigit(): + return parts[-2] + return parts[-1] if parts else "Unknown" + + def _validate_entry(self, transformation: Dict, index: int): + required = {"Strain", "Chassis", "Plasmids"} + missing = sorted(required - set(transformation)) + if missing: + raise ValueError(f"Transformation {index} is missing required field(s): {', '.join(missing)}") + if not isinstance(transformation["Plasmids"], list) or not transformation["Plasmids"]: + raise ValueError(f"Transformation {index} must include at least one plasmid in Plasmids") + + def process_transformations(self): + self.records = [] + for idx, entry in enumerate(self.transformation_data, start=1): + self._validate_entry(entry, idx) + self.records.append( + ManualTransformationRecord( + strain_uri=entry["Strain"], + strain_name=self._extract_name_from_uri(entry["Strain"]), + chassis_uri=entry["Chassis"], + chassis_name=self._extract_name_from_uri(entry["Chassis"]), + plasmid_uris=entry["Plasmids"], + plasmid_names=[self._extract_name_from_uri(p) for p in entry["Plasmids"]], + ) + ) + return self.records + + def render_markdown(self) -> str: + if not self.records: + self.process_transformations() + lines = [ + "# Manual Heat Shock Transformation Protocol", + "", + "## Overview", + "This protocol describes manual bacterial heat-shock transformation for SBOL-defined strains and plasmids.", + "", + "## Reaction Setup", + f"- Competent cells per reaction: {self.transfer_volume_competent_cell} uL", + f"- DNA per reaction: {self.transfer_volume_dna} uL", + f"- Recovery media per reaction: {self.transfer_volume_recovery_media} uL", + f"- Replicates per transformation: {self.replicates}", + f"- Transformations: {len(self.records)}", + "", + ] + for index, record in enumerate(self.records, start=1): + lines.extend([ + f"## Transformation {index}: {record.strain_name}", + "", + f"- Strain: `{record.strain_name}` ({record.strain_uri})", + f"- Chassis: `{record.chassis_name}` ({record.chassis_uri})", + f"- Plasmids: {', '.join(f'`{p}`' for p in record.plasmid_names)}", + "", + "1. Label tube(s) for this transformation.", + f"2. Add {self.transfer_volume_competent_cell} uL competent cells.", + f"3. Add {self.transfer_volume_dna} uL DNA plasmid mix.", + "4. Mix gently by pipetting and keep on ice.", + "", + ]) + lines.extend([ + "## Thermocycler/Incubation Program", + "", + "| Step | Temperature | Time |", + "| --- | --- | --- |", + f"| Cold incubation 1 | {self.cold_incubation1['temperature']} C | {self.cold_incubation1['hold_time_minutes']} min |", + f"| Heat shock | {self.heat_shock['temperature']} C | {self.heat_shock['hold_time_minutes']} min |", + f"| Cold incubation 2 | {self.cold_incubation2['temperature']} C | {self.cold_incubation2['hold_time_minutes']} min |", + f"| Recovery | {self.recovery_incubation['temperature']} C | {self.recovery_incubation['hold_time_minutes']} min |", + "", + "## Post-heat-shock", + f"1. Add {self.transfer_volume_recovery_media} uL recovery media.", + "2. Incubate according to recovery step.", + "3. Plate transformed cells on selective agar.", + "", + ]) + return "\n".join(lines) + + def write_markdown(self, output_path: str): + with open(output_path, "w", encoding="utf-8") as handle: + handle.write(self.render_markdown()) + From 934e3ce941ea4c0cea53972a21c3af9d14c3e829 Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Thu, 30 Apr 2026 21:52:23 -0600 Subject: [PATCH 112/118] Add manual plating protocol generator and class --- scripts/generate_manual_plating_protocol.py | 27 +++++++ src/pudu/plating.py | 90 ++++++++++++++++++++- 2 files changed, 115 insertions(+), 2 deletions(-) create mode 100644 scripts/generate_manual_plating_protocol.py diff --git a/scripts/generate_manual_plating_protocol.py b/scripts/generate_manual_plating_protocol.py new file mode 100644 index 0000000..f599762 --- /dev/null +++ b/scripts/generate_manual_plating_protocol.py @@ -0,0 +1,27 @@ +import json +import argparse +from pathlib import Path + +from pudu.plating import ManualPlating + + +def main(): + parser = argparse.ArgumentParser(description="Generate a manual plating Markdown protocol.") + parser.add_argument("--input", default="scripts/plating_input.json", help="Path to plating JSON input file.") + parser.add_argument("--output", default="scripts/manual_plating_protocol.md", help="Path to Markdown output file.") + args = parser.parse_args() + + input_path = Path(args.input) + output_path = Path(args.output) + + plating_data = json.loads(input_path.read_text(encoding="utf-8")) + + manual_protocol = ManualPlating(plating_data=plating_data) + manual_protocol.process_bacterium_locations() + manual_protocol.write_markdown(str(output_path)) + + print(f"Manual plating protocol written to {output_path}") + + +if __name__ == "__main__": + main() diff --git a/src/pudu/plating.py b/src/pudu/plating.py index a9e6a6c..d3e8261 100644 --- a/src/pudu/plating.py +++ b/src/pudu/plating.py @@ -1,4 +1,5 @@ -from typing import Optional, Dict +from typing import Optional, Dict, List +from dataclasses import dataclass from pudu import colors, SmartPipette from opentrons import protocol_api @@ -401,4 +402,89 @@ def run(self, protocol: protocol_api.ProtocolContext): protocol.comment("\n=== Plating protocol complete ===") protocol.comment(f"Plated {self.number_constructs} constructs with {self.replicates} replicates") - protocol.comment(f"Created a total of {self.total_colonies} colonies") \ No newline at end of file + protocol.comment(f"Created a total of {self.total_colonies} colonies") + + +@dataclass +class ManualPlatingRecord: + source_well: str + construct_name: str + + +class ManualPlating: + """Manual counterpart of automated plating protocol.""" + + def __init__(self, + plating_data: Optional[Dict] = None, + bacterium_locations: Optional[Dict] = None, + volume_bacteria_transfer: float = 2, + volume_colony: float = 4, + volume_lb_transfer: float = 18, + replicates: int = 1, + number_dilutions: int = 2): + if plating_data is not None and bacterium_locations is None: + bacterium_locations = plating_data.get("bacterium_locations") + if not isinstance(bacterium_locations, dict) or not bacterium_locations: + raise ValueError("bacterium_locations must be a non-empty dictionary") + + self.bacterium_locations = bacterium_locations + self.volume_bacteria_transfer = volume_bacteria_transfer + self.volume_colony = volume_colony + self.volume_lb_transfer = volume_lb_transfer + self.replicates = replicates + self.number_dilutions = number_dilutions + self.records: List[ManualPlatingRecord] = [] + + def process_bacterium_locations(self): + self.records = [ + ManualPlatingRecord(source_well=well, construct_name=str(name)) + for well, name in self.bacterium_locations.items() + ] + return self.records + + def render_markdown(self) -> str: + if not self.records: + self.process_bacterium_locations() + + lines = [ + "# Manual Plating Protocol", + "", + "## Overview", + "This protocol describes manual dilution and plating of transformed bacteria from thermocycler wells.", + "", + "## Setup", + f"- Source cultures: {len(self.records)}", + f"- Dilutions per construct: {self.number_dilutions}", + f"- Replicates per dilution: {self.replicates}", + f"- Bacteria transfer volume: {self.volume_bacteria_transfer} uL", + f"- LB transfer volume: {self.volume_lb_transfer} uL", + f"- Plating volume: {self.volume_colony} uL", + "", + "## Source Cultures", + "", + "| Thermocycler well | Construct |", + "| --- | --- |", + ] + for record in self.records: + lines.append(f"| {record.source_well} | {record.construct_name} |") + + lines.extend([ + "", + "## Manual Steps", + "1. Label dilution tubes/plate wells for each construct and each dilution.", + f"2. For each dilution well, pre-load {self.volume_lb_transfer} uL LB medium.", + f"3. Add {self.volume_bacteria_transfer} uL bacteria from each source well into dilution 1 and mix.", + "4. If a second dilution is required, transfer from dilution 1 into dilution 2 and mix.", + f"5. Spot or spread {self.volume_colony} uL from each dilution onto selective agar.", + "6. Incubate plates under strain-appropriate conditions until colonies are visible.", + "", + "## Notes", + "- Use fresh sterile tips between constructs and dilution steps.", + "- Keep mapping between source wells and plated positions for colony tracking.", + "", + ]) + return "\n".join(lines) + + def write_markdown(self, output_path: str): + with open(output_path, "w", encoding="utf-8") as handle: + handle.write(self.render_markdown()) From a97b8dca8d76c46a851bb0381e33804e0bbdff3f Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Thu, 30 Apr 2026 23:14:31 -0600 Subject: [PATCH 113/118] Fix legacy thermocycling profile markdown rendering --- src/pudu/assembly.py | 12 ++++++++++-- tests/test_manual_assembly.py | 20 ++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/pudu/assembly.py b/src/pudu/assembly.py index 037d2a6..82e5824 100644 --- a/src/pudu/assembly.py +++ b/src/pudu/assembly.py @@ -1515,10 +1515,18 @@ def _render_thermocycling_section(self) -> List[str]: "| Step | Temperature | Time | Cycles |", "| --- | --- | --- | ---: |", ] - for step in self.thermocycling_profile: + total_steps = len(self.thermocycling_profile) + for index, step in enumerate(self.thermocycling_profile, start=1): time_value = step['hold_time_minutes'] time_text = f"{time_value} min" if isinstance(time_value, (int, float)) else str(time_value) - lines.append(f"| {step['step']} | {step['temperature']} C | {time_text} | {step['cycles']} |") + step_name = step.get('step') or f"Step {index}" + if 'cycles' in step: + cycles = step['cycles'] + elif total_steps >= 2 and index <= 2: + cycles = self.thermocycling_cycles + else: + cycles = 1 + lines.append(f"| {step_name} | {step['temperature']} C | {time_text} | {cycles} |") lines.append("") return lines diff --git a/tests/test_manual_assembly.py b/tests/test_manual_assembly.py index 566be57..aa34fe0 100644 --- a/tests/test_manual_assembly.py +++ b/tests/test_manual_assembly.py @@ -55,6 +55,26 @@ def test_markdown_rendering_contains_sections_and_parts(self): self.assertIn("## Thermocycler Program", markdown) self.assertIn("| Digest | 37 C | 2 min | 25 |", markdown) + def test_markdown_rendering_supports_legacy_thermocycling_profile(self): + legacy_profile = [ + {"temperature": 37, "hold_time_minutes": 2}, + {"temperature": 16, "hold_time_minutes": 5}, + {"temperature": 80, "hold_time_minutes": 10}, + {"temperature": 4, "hold_time_minutes": "indefinite"}, + ] + assembly = ManualAssembly( + assemblies=self.assemblies, + thermocycling_profile=legacy_profile, + thermocycling_cycles=30, + ) + + markdown = assembly.render_markdown() + + self.assertIn("| Step 1 | 37 C | 2 min | 30 |", markdown) + self.assertIn("| Step 2 | 16 C | 5 min | 30 |", markdown) + self.assertIn("| Step 3 | 80 C | 10 min | 1 |", markdown) + self.assertIn("| Step 4 | 4 C | indefinite | 1 |", markdown) + if __name__ == "__main__": unittest.main() From 95e50b98023ca0be70e0737aaf1a178d96a5d8fd Mon Sep 17 00:00:00 2001 From: Gonzalo Vidal <35148159+Gonza10V@users.noreply.github.com> Date: Thu, 30 Apr 2026 23:44:06 -0600 Subject: [PATCH 114/118] Reorganize scripts by protocol type and split script tests --- .../Automated_Golden_Gate.py | 0 .../run_Bacterial_Transformation.py | 0 .../{ => automated_ot2}/run_Domestication.py | 0 .../{ => automated_ot2}/run_Loop_assembly.py | 0 .../{ => automated_ot2}/run_Plate_samples.py | 0 .../run_Plate_supplemented_sample.py | 0 scripts/{ => automated_ot2}/run_Plating.py | 0 .../{ => automated_ot2}/run_iGEM_gfp_od.py | 0 .../{ => automated_ot2}/run_iGEM_rgb_od.py | 0 .../run_sbol2assembly_with_params.py | 0 .../run_sbol2plating_with_params.py | 0 .../run_sbol2transformation_with_params.py | 0 .../run_Bacterial_Transformation_libre.py | 0 .../run_Chemical_Transformation_libre.py | 0 .../{ => libre}/run_Loop_assembly_libre.py | 0 .../{ => libre}/run_Plate_samples_libre.py | 0 scripts/{ => libre}/run_Plating_libre.py | 0 .../{ => libre}/run_iGEM2022_rgb_od_libre.py | 0 .../{ => libre}/run_sbol2assembly_libre.py | 0 .../generate_manual_assembly_protocol.py | 0 .../generate_manual_plating_protocol.py | 0 ...generate_manual_transformation_protocol.py | 0 .../{ => manual}/manual_assembly_input.json | 0 .../{ => manual}/manual_assembly_protocol.md | 0 tests/test_all_scripts.py | 60 ++++++++++++------- 25 files changed, 40 insertions(+), 20 deletions(-) rename scripts/{ => automated_ot2}/Automated_Golden_Gate.py (100%) rename scripts/{ => automated_ot2}/run_Bacterial_Transformation.py (100%) rename scripts/{ => automated_ot2}/run_Domestication.py (100%) rename scripts/{ => automated_ot2}/run_Loop_assembly.py (100%) rename scripts/{ => automated_ot2}/run_Plate_samples.py (100%) rename scripts/{ => automated_ot2}/run_Plate_supplemented_sample.py (100%) rename scripts/{ => automated_ot2}/run_Plating.py (100%) rename scripts/{ => automated_ot2}/run_iGEM_gfp_od.py (100%) rename scripts/{ => automated_ot2}/run_iGEM_rgb_od.py (100%) rename scripts/{ => automated_ot2}/run_sbol2assembly_with_params.py (100%) rename scripts/{ => automated_ot2}/run_sbol2plating_with_params.py (100%) rename scripts/{ => automated_ot2}/run_sbol2transformation_with_params.py (100%) rename scripts/{ => libre}/run_Bacterial_Transformation_libre.py (100%) rename scripts/{ => libre}/run_Chemical_Transformation_libre.py (100%) rename scripts/{ => libre}/run_Loop_assembly_libre.py (100%) rename scripts/{ => libre}/run_Plate_samples_libre.py (100%) rename scripts/{ => libre}/run_Plating_libre.py (100%) rename scripts/{ => libre}/run_iGEM2022_rgb_od_libre.py (100%) rename scripts/{ => libre}/run_sbol2assembly_libre.py (100%) rename scripts/{ => manual}/generate_manual_assembly_protocol.py (100%) rename scripts/{ => manual}/generate_manual_plating_protocol.py (100%) rename scripts/{ => manual}/generate_manual_transformation_protocol.py (100%) rename scripts/{ => manual}/manual_assembly_input.json (100%) rename scripts/{ => manual}/manual_assembly_protocol.md (100%) diff --git a/scripts/Automated_Golden_Gate.py b/scripts/automated_ot2/Automated_Golden_Gate.py similarity index 100% rename from scripts/Automated_Golden_Gate.py rename to scripts/automated_ot2/Automated_Golden_Gate.py diff --git a/scripts/run_Bacterial_Transformation.py b/scripts/automated_ot2/run_Bacterial_Transformation.py similarity index 100% rename from scripts/run_Bacterial_Transformation.py rename to scripts/automated_ot2/run_Bacterial_Transformation.py diff --git a/scripts/run_Domestication.py b/scripts/automated_ot2/run_Domestication.py similarity index 100% rename from scripts/run_Domestication.py rename to scripts/automated_ot2/run_Domestication.py diff --git a/scripts/run_Loop_assembly.py b/scripts/automated_ot2/run_Loop_assembly.py similarity index 100% rename from scripts/run_Loop_assembly.py rename to scripts/automated_ot2/run_Loop_assembly.py diff --git a/scripts/run_Plate_samples.py b/scripts/automated_ot2/run_Plate_samples.py similarity index 100% rename from scripts/run_Plate_samples.py rename to scripts/automated_ot2/run_Plate_samples.py diff --git a/scripts/run_Plate_supplemented_sample.py b/scripts/automated_ot2/run_Plate_supplemented_sample.py similarity index 100% rename from scripts/run_Plate_supplemented_sample.py rename to scripts/automated_ot2/run_Plate_supplemented_sample.py diff --git a/scripts/run_Plating.py b/scripts/automated_ot2/run_Plating.py similarity index 100% rename from scripts/run_Plating.py rename to scripts/automated_ot2/run_Plating.py diff --git a/scripts/run_iGEM_gfp_od.py b/scripts/automated_ot2/run_iGEM_gfp_od.py similarity index 100% rename from scripts/run_iGEM_gfp_od.py rename to scripts/automated_ot2/run_iGEM_gfp_od.py diff --git a/scripts/run_iGEM_rgb_od.py b/scripts/automated_ot2/run_iGEM_rgb_od.py similarity index 100% rename from scripts/run_iGEM_rgb_od.py rename to scripts/automated_ot2/run_iGEM_rgb_od.py diff --git a/scripts/run_sbol2assembly_with_params.py b/scripts/automated_ot2/run_sbol2assembly_with_params.py similarity index 100% rename from scripts/run_sbol2assembly_with_params.py rename to scripts/automated_ot2/run_sbol2assembly_with_params.py diff --git a/scripts/run_sbol2plating_with_params.py b/scripts/automated_ot2/run_sbol2plating_with_params.py similarity index 100% rename from scripts/run_sbol2plating_with_params.py rename to scripts/automated_ot2/run_sbol2plating_with_params.py diff --git a/scripts/run_sbol2transformation_with_params.py b/scripts/automated_ot2/run_sbol2transformation_with_params.py similarity index 100% rename from scripts/run_sbol2transformation_with_params.py rename to scripts/automated_ot2/run_sbol2transformation_with_params.py diff --git a/scripts/run_Bacterial_Transformation_libre.py b/scripts/libre/run_Bacterial_Transformation_libre.py similarity index 100% rename from scripts/run_Bacterial_Transformation_libre.py rename to scripts/libre/run_Bacterial_Transformation_libre.py diff --git a/scripts/run_Chemical_Transformation_libre.py b/scripts/libre/run_Chemical_Transformation_libre.py similarity index 100% rename from scripts/run_Chemical_Transformation_libre.py rename to scripts/libre/run_Chemical_Transformation_libre.py diff --git a/scripts/run_Loop_assembly_libre.py b/scripts/libre/run_Loop_assembly_libre.py similarity index 100% rename from scripts/run_Loop_assembly_libre.py rename to scripts/libre/run_Loop_assembly_libre.py diff --git a/scripts/run_Plate_samples_libre.py b/scripts/libre/run_Plate_samples_libre.py similarity index 100% rename from scripts/run_Plate_samples_libre.py rename to scripts/libre/run_Plate_samples_libre.py diff --git a/scripts/run_Plating_libre.py b/scripts/libre/run_Plating_libre.py similarity index 100% rename from scripts/run_Plating_libre.py rename to scripts/libre/run_Plating_libre.py diff --git a/scripts/run_iGEM2022_rgb_od_libre.py b/scripts/libre/run_iGEM2022_rgb_od_libre.py similarity index 100% rename from scripts/run_iGEM2022_rgb_od_libre.py rename to scripts/libre/run_iGEM2022_rgb_od_libre.py diff --git a/scripts/run_sbol2assembly_libre.py b/scripts/libre/run_sbol2assembly_libre.py similarity index 100% rename from scripts/run_sbol2assembly_libre.py rename to scripts/libre/run_sbol2assembly_libre.py diff --git a/scripts/generate_manual_assembly_protocol.py b/scripts/manual/generate_manual_assembly_protocol.py similarity index 100% rename from scripts/generate_manual_assembly_protocol.py rename to scripts/manual/generate_manual_assembly_protocol.py diff --git a/scripts/generate_manual_plating_protocol.py b/scripts/manual/generate_manual_plating_protocol.py similarity index 100% rename from scripts/generate_manual_plating_protocol.py rename to scripts/manual/generate_manual_plating_protocol.py diff --git a/scripts/generate_manual_transformation_protocol.py b/scripts/manual/generate_manual_transformation_protocol.py similarity index 100% rename from scripts/generate_manual_transformation_protocol.py rename to scripts/manual/generate_manual_transformation_protocol.py diff --git a/scripts/manual_assembly_input.json b/scripts/manual/manual_assembly_input.json similarity index 100% rename from scripts/manual_assembly_input.json rename to scripts/manual/manual_assembly_input.json diff --git a/scripts/manual_assembly_protocol.md b/scripts/manual/manual_assembly_protocol.md similarity index 100% rename from scripts/manual_assembly_protocol.md rename to scripts/manual/manual_assembly_protocol.md diff --git a/tests/test_all_scripts.py b/tests/test_all_scripts.py index b02d862..649f4b3 100644 --- a/tests/test_all_scripts.py +++ b/tests/test_all_scripts.py @@ -1,34 +1,54 @@ -import unittest -import subprocess import pathlib +import subprocess +import unittest + +AUTOMATED_SCRIPTS_DIR = pathlib.Path("scripts/automated_ot2") +LIBRE_SCRIPTS_DIR = pathlib.Path("scripts/libre") +MANUAL_SCRIPTS_DIR = pathlib.Path("scripts/manual") -SCRIPTS_DIR = pathlib.Path("scripts") class TestAllScripts(unittest.TestCase): def test_all_scripts_with_simulator(self): - # Make sure we found the folder - self.assertTrue(SCRIPTS_DIR.exists(), f"Scripts dir not found: {SCRIPTS_DIR}") - script_files = sorted(SCRIPTS_DIR.glob("*.py"), key=lambda p: p.name.lower()) + for scripts_dir in (AUTOMATED_SCRIPTS_DIR, LIBRE_SCRIPTS_DIR): + self.assertTrue(scripts_dir.exists(), f"Scripts dir not found: {scripts_dir}") + script_files = sorted(scripts_dir.glob("*.py"), key=lambda p: p.name.lower()) + + for script_path in script_files: + with self.subTest(script=str(script_path)): + print(f"\n=== Simulating: {script_path} ===") + result = subprocess.run( + ["opentrons_simulate", str(script_path)], + capture_output=True, + text=True, + ) + self.assertEqual( + result.returncode, + 0, + msg=f"Simulation failed for {script_path}:\n{result.stderr}", + ) + + +class TestManualScripts(unittest.TestCase): + def test_manual_scripts_are_excluded_from_simulator(self): + self.assertTrue(MANUAL_SCRIPTS_DIR.exists(), f"Manual scripts dir not found: {MANUAL_SCRIPTS_DIR}") + manual_py_files = sorted(MANUAL_SCRIPTS_DIR.glob("*.py"), key=lambda p: p.name.lower()) + self.assertGreater(len(manual_py_files), 0, "No manual scripts were found for manual-specific tests") - for script_path in script_files: - with self.subTest(script=script_path.name): - print(f"\n=== Simulating: {script_path.name} ===") + def test_manual_scripts_are_valid_python(self): + manual_py_files = sorted(MANUAL_SCRIPTS_DIR.glob("*.py"), key=lambda p: p.name.lower()) + for script_path in manual_py_files: + with self.subTest(script=str(script_path)): result = subprocess.run( - ["opentrons_simulate", str(script_path)], + ["python", "-m", "py_compile", str(script_path)], capture_output=True, - text=True + text=True, ) - # Ensure simulator exits successfully self.assertEqual( - result.returncode, 0, - msg=f"Simulation failed for {script_path}:\n{result.stderr}" + result.returncode, + 0, + msg=f"Manual script failed syntax check for {script_path}:\n{result.stderr}", ) - #TODO: Create edge case tests that fail appropriately - #Some example edge cases: - #Too many reagents for the labware - #Not enough available wells for the thermocycler - #Too many colonies for the plating -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() From 5e32085a37bc38db7c0370b8c887c41f63288501 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Tue, 5 May 2026 16:14:53 -0600 Subject: [PATCH 115/118] Remove generated .md output from version control scripts/manual/manual_assembly_protocol.md is produced at runtime by generate_manual_assembly_protocol.py and should not be committed. Add scripts/manual/*.md to .gitignore so future runs don't accidentally re-track it. --- scripts/manual/manual_assembly_protocol.md | 63 ---------------------- 1 file changed, 63 deletions(-) delete mode 100644 scripts/manual/manual_assembly_protocol.md diff --git a/scripts/manual/manual_assembly_protocol.md b/scripts/manual/manual_assembly_protocol.md deleted file mode 100644 index 716291d..0000000 --- a/scripts/manual/manual_assembly_protocol.md +++ /dev/null @@ -1,63 +0,0 @@ -# Golden Gate Manual Assembly Protocol - -## Overview -Golden Gate assembly is a one-pot DNA cloning method that uses a Type IIS restriction enzyme, such as BsaI, together with DNA ligase to assemble multiple DNA fragments in a predefined order. -Because Type IIS enzymes cut outside their recognition sites, they generate custom overhangs that direct fragment assembly and allow the recognition sites to be removed from the final construct. -In this protocol, plasmids containing DNA parts and a destination backbone are combined with the restriction enzyme and ligase in a single tube, then cycled in a thermocycler between digestion and ligation temperatures. Repetition of these cycles enriches for the correctly assembled composite plasmid, after which the enzymes are heat-inactivated and the reaction is held at 4 °C until collection. - -## Inputs -- Number of target products: 2 -- `composite_1` (https://SBOL2Build.org/composite_1/1) -- `composite_2` (https://SBOL2Build.org/composite_2/1) - -## Reaction summary -| Product | Backbone | Parts | Restriction Enzyme | # DNA Components | DNA each (µL) | Enzyme (µL) | Ligase (µL) | Buffer (µL) | Water (µL) | Total (µL) | -| --- | --- | --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | -| composite_1 | pSB1C3 | J23101, B0034, GFP, B0015 | BsaI | 5 | 2 | 2 | 4 | 2 | 2 | 20 | -| composite_2 | pSB1C3 | J23106, B0034, RFP, B0015 | BsaI | 5 | 2 | 2 | 4 | 2 | 2 | 20 | - -## Per-reaction instructions - -### Product: composite_1 -URI: https://SBOL2Build.org/composite_1/1 - -1. Label one tube as `composite_1`. -2. Add 2 µL nuclease-free water. -3. Add 2 µL 10X T4 DNA Ligase Buffer. -4. Add 4 µL T4 DNA Ligase. -5. Add 2 µL BsaI (URI: https://SBOL2Build.org/BsaI/1). -6. Add 2 µL backbone `pSB1C3` (URI: https://sbolcanvas.org/pSB1C3/1). -7. Add 2 µL part `J23101` (URI: https://sbolcanvas.org/J23101/1). -8. Add 2 µL part `B0034` (URI: https://sbolcanvas.org/B0034/1). -9. Add 2 µL part `GFP` (URI: https://sbolcanvas.org/GFP/1). -10. Add 2 µL part `B0015` (URI: https://sbolcanvas.org/B0015/1). -11. Mix gently by pipetting. Do not vortex unless explicitly intended. -12. Briefly spin down if appropriate. - -### Product: composite_2 -URI: https://SBOL2Build.org/composite_2/1 - -1. Label one tube as `composite_2`. -2. Add 2 µL nuclease-free water. -3. Add 2 µL 10X T4 DNA Ligase Buffer. -4. Add 4 µL T4 DNA Ligase. -5. Add 2 µL BsaI (URI: https://SBOL2Build.org/BsaI/1). -6. Add 2 µL backbone `pSB1C3` (URI: https://sbolcanvas.org/pSB1C3/1). -7. Add 2 µL part `J23106` (URI: https://sbolcanvas.org/J23106/1). -8. Add 2 µL part `B0034` (URI: https://sbolcanvas.org/B0034/1). -9. Add 2 µL part `RFP` (URI: https://sbolcanvas.org/RFP/1). -10. Add 2 µL part `B0015` (URI: https://sbolcanvas.org/B0015/1). -11. Mix gently by pipetting. Do not vortex unless explicitly intended. -12. Briefly spin down if appropriate. - -## Thermocycling -- Use a cycling profile that holds 42°C for 2 minutes and 16°C for 5 minutes; repeat this profile 75 times. -- Denature/inactivate proteins by holding 60°C for 10 minutes followed by 80°C for 10 minutes. -- Hold at 4°C until samples are collected. - -## Notes -- If the assembly was designed correctly, the final product should lack the Type IIS recognition sites used during assembly. -- This generated document is a manual instruction sheet and not an automated OT-2 protocol. -- Assumes all DNA parts are available at suitable concentrations and added at equal per-part volume. -- Store the assembly product at 4 °C for better stability until used for downstream applications. -- Validate assembled plasmids by restriction digest and gel electrophoresis, Sanger sequencing, or whole-plasmid sequencing. From 195c95783bb0f03a8455d3408d67e07b35a76898 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Tue, 5 May 2026 16:47:15 -0600 Subject: [PATCH 116/118] Fix default paths in manual generators and add missing example inputs All three generate_manual_*.py scripts had default --input/--output paths pointing to scripts/ instead of scripts/manual/ after the directory reorganisation. Updated defaults so scripts run correctly from repo root without arguments. Added manual_plating_input.json and manual_transformation_input.json as example inputs for the plating and transformation generators, mirroring the GFP/RFP constructs already present in manual_assembly_input.json. --- scripts/manual/generate_manual_assembly_protocol.py | 4 ++-- scripts/manual/generate_manual_plating_protocol.py | 4 ++-- .../generate_manual_transformation_protocol.py | 4 ++-- scripts/manual/manual_plating_input.json | 8 ++++++++ scripts/manual/manual_transformation_input.json | 12 ++++++++++++ 5 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 scripts/manual/manual_plating_input.json create mode 100644 scripts/manual/manual_transformation_input.json diff --git a/scripts/manual/generate_manual_assembly_protocol.py b/scripts/manual/generate_manual_assembly_protocol.py index ba520e1..631e533 100644 --- a/scripts/manual/generate_manual_assembly_protocol.py +++ b/scripts/manual/generate_manual_assembly_protocol.py @@ -7,8 +7,8 @@ def main(): parser = argparse.ArgumentParser(description="Generate a manual Golden Gate Markdown protocol.") - parser.add_argument("--input", default="scripts/manual_assembly_input.json", help="Path to SBOL-style JSON input file.") - parser.add_argument("--output", default="scripts/manual_assembly_protocol.md", help="Path to Markdown output file.") + parser.add_argument("--input", default="scripts/manual/manual_assembly_input.json", help="Path to SBOL-style JSON input file.") + parser.add_argument("--output", default="scripts/manual/manual_assembly_protocol.md", help="Path to Markdown output file.") args = parser.parse_args() input_path = Path(args.input) diff --git a/scripts/manual/generate_manual_plating_protocol.py b/scripts/manual/generate_manual_plating_protocol.py index f599762..ff9b305 100644 --- a/scripts/manual/generate_manual_plating_protocol.py +++ b/scripts/manual/generate_manual_plating_protocol.py @@ -7,8 +7,8 @@ def main(): parser = argparse.ArgumentParser(description="Generate a manual plating Markdown protocol.") - parser.add_argument("--input", default="scripts/plating_input.json", help="Path to plating JSON input file.") - parser.add_argument("--output", default="scripts/manual_plating_protocol.md", help="Path to Markdown output file.") + parser.add_argument("--input", default="scripts/manual/manual_plating_input.json", help="Path to plating JSON input file.") + parser.add_argument("--output", default="scripts/manual/manual_plating_protocol.md", help="Path to Markdown output file.") args = parser.parse_args() input_path = Path(args.input) diff --git a/scripts/manual/generate_manual_transformation_protocol.py b/scripts/manual/generate_manual_transformation_protocol.py index 70659b0..06c4738 100644 --- a/scripts/manual/generate_manual_transformation_protocol.py +++ b/scripts/manual/generate_manual_transformation_protocol.py @@ -7,8 +7,8 @@ def main(): parser = argparse.ArgumentParser(description="Generate a manual heat-shock transformation Markdown protocol.") - parser.add_argument("--input", default="scripts/manual_transformation_input.json", help="Path to SBOL-style JSON input file.") - parser.add_argument("--output", default="scripts/manual_transformation_protocol.md", help="Path to Markdown output file.") + parser.add_argument("--input", default="scripts/manual/manual_transformation_input.json", help="Path to SBOL-style JSON input file.") + parser.add_argument("--output", default="scripts/manual/manual_transformation_protocol.md", help="Path to Markdown output file.") args = parser.parse_args() input_path = Path(args.input) diff --git a/scripts/manual/manual_plating_input.json b/scripts/manual/manual_plating_input.json new file mode 100644 index 0000000..dc3c274 --- /dev/null +++ b/scripts/manual/manual_plating_input.json @@ -0,0 +1,8 @@ +{ + "bacterium_locations": { + "A1": "https://SBOL2Build.org/composite_1/1", + "A2": "https://SBOL2Build.org/composite_2/1" + }, + "replicates": 2, + "number_dilutions": 2 +} diff --git a/scripts/manual/manual_transformation_input.json b/scripts/manual/manual_transformation_input.json new file mode 100644 index 0000000..a39457a --- /dev/null +++ b/scripts/manual/manual_transformation_input.json @@ -0,0 +1,12 @@ +[ + { + "Strain": "https://SBOL2Build.org/strain_GFP/1", + "Chassis": "https://sbolcanvas.org/DH5alpha/1", + "Plasmids": ["https://SBOL2Build.org/composite_1/1"] + }, + { + "Strain": "https://SBOL2Build.org/strain_RFP/1", + "Chassis": "https://sbolcanvas.org/DH5alpha/1", + "Plasmids": ["https://SBOL2Build.org/composite_2/1"] + } +] From 9c12ef16450662ea6aedc44cf6c892e275785af0 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Wed, 6 May 2026 20:21:37 -0600 Subject: [PATCH 117/118] Fix two Codex review issues and commit missing .gitignore entry - ManualPlating: read replicates, number_dilutions, and volume params from plating_data so JSON-driven runs reflect the input file rather than silently falling back to constructor defaults - ManualAssembly: remove hard-coded cycles from default Digest/Ligate profile entries so thermocycling_cycles actually takes effect at render time (the fallback logic in the renderer was already correct) - .gitignore: add scripts/manual/*.md to cover generated protocol output files (this entry was edited locally but not staged in the earlier commit) --- .gitignore | 5 ++++- src/pudu/assembly.py | 4 ++-- src/pudu/plating.py | 10 ++++++++-- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index f5e96db..0fbd85c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ -venv \ No newline at end of file +venv + +# Generated protocol output files produced by scripts/manual/ generators +scripts/manual/*.md \ No newline at end of file diff --git a/src/pudu/assembly.py b/src/pudu/assembly.py index 06d1e7c..e2dce70 100644 --- a/src/pudu/assembly.py +++ b/src/pudu/assembly.py @@ -1356,8 +1356,8 @@ def __init__(self, self.assemblies = assemblies self.reaction_records: List[ManualReactionRecord] = [] self.thermocycling_profile = thermocycling_profile or [ - {'step': 'Digest', 'temperature': 37, 'hold_time_minutes': 2, 'cycles': 25}, - {'step': 'Ligate', 'temperature': 16, 'hold_time_minutes': 5, 'cycles': 25}, + {'step': 'Digest', 'temperature': 37, 'hold_time_minutes': 2}, + {'step': 'Ligate', 'temperature': 16, 'hold_time_minutes': 5}, {'step': 'Final digestion', 'temperature': 50, 'hold_time_minutes': 5, 'cycles': 1}, {'step': 'Heat inactivation', 'temperature': 80, 'hold_time_minutes': 10, 'cycles': 1}, {'step': 'Hold', 'temperature': 4, 'hold_time_minutes': 'indefinite', 'cycles': 1}, diff --git a/src/pudu/plating.py b/src/pudu/plating.py index d3e8261..0d64035 100644 --- a/src/pudu/plating.py +++ b/src/pudu/plating.py @@ -422,8 +422,14 @@ def __init__(self, volume_lb_transfer: float = 18, replicates: int = 1, number_dilutions: int = 2): - if plating_data is not None and bacterium_locations is None: - bacterium_locations = plating_data.get("bacterium_locations") + if plating_data is not None: + if bacterium_locations is None: + bacterium_locations = plating_data.get("bacterium_locations") + volume_bacteria_transfer = plating_data.get("volume_bacteria_transfer", volume_bacteria_transfer) + volume_colony = plating_data.get("volume_colony", volume_colony) + volume_lb_transfer = plating_data.get("volume_lb_transfer", volume_lb_transfer) + replicates = plating_data.get("replicates", replicates) + number_dilutions = plating_data.get("number_dilutions", number_dilutions) if not isinstance(bacterium_locations, dict) or not bacterium_locations: raise ValueError("bacterium_locations must be a non-empty dictionary") From b004a48773e71a54eda1f22c7612060b5eb98518 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Wed, 6 May 2026 20:27:46 -0600 Subject: [PATCH 118/118] Update test to assert thermocycling_cycles flows through dynamically Replace the hard-coded cycle count assertion with an explicit variable so the test documents the pass-through behaviour rather than pinning the old default value that was removed in the previous fix. --- tests/test_manual_assembly.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/test_manual_assembly.py b/tests/test_manual_assembly.py index aa34fe0..9dad3d9 100644 --- a/tests/test_manual_assembly.py +++ b/tests/test_manual_assembly.py @@ -45,7 +45,8 @@ def test_invalid_overfilled_reaction(self): self.assertIn("Cannot fit", str(error.exception)) def test_markdown_rendering_contains_sections_and_parts(self): - assembly = ManualAssembly(assemblies=self.assemblies) + cycles = 30 + assembly = ManualAssembly(assemblies=self.assemblies, thermocycling_cycles=cycles) markdown = assembly.render_markdown() self.assertIn("# Manual Golden Gate Assembly Protocol", markdown) @@ -53,7 +54,8 @@ def test_markdown_rendering_contains_sections_and_parts(self): self.assertIn("## Assembly 1: composite_1", markdown) self.assertIn("| [J23101](https://sbolcanvas.org/J23101/1) | 2 |", markdown) self.assertIn("## Thermocycler Program", markdown) - self.assertIn("| Digest | 37 C | 2 min | 25 |", markdown) + self.assertIn(f"| Digest | 37 C | 2 min | {cycles} |", markdown) + self.assertIn(f"| Ligate | 16 C | 5 min | {cycles} |", markdown) def test_markdown_rendering_supports_legacy_thermocycling_profile(self): legacy_profile = [

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wp4{`!86EX04vGeOWUL4R_2f6tm3mh~y!07! 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

lcAn%|$>w8GN6Cvpi?Urh)tIH~(0?5| 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�txYu&X#Hc@zPay|=|WCmaCMTpbWu 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