From 6f7d08f5ee908bbba63e98ffccb0e979a4b9f180 Mon Sep 17 00:00:00 2001 From: Majid Rezaei Date: Thu, 1 Aug 2024 11:39:05 -0400 Subject: [PATCH] (WIP) feature: add pipe sizing to dhn analysis --- main.py | 23 +- .../district_heating_exporter.py | 86 +++ .../district_heating_factory.py | 62 +- .../district_heating_network_creator.py | 83 ++- .../geojson_graph_creator.py | 54 -- work_in_progress.ipynb | 571 ++++-------------- 6 files changed, 350 insertions(+), 529 deletions(-) create mode 100644 scripts/district_heating_network/district_heating_exporter.py delete mode 100644 scripts/district_heating_network/geojson_graph_creator.py diff --git a/main.py b/main.py index ceb7979a..bb7b42c3 100644 --- a/main.py +++ b/main.py @@ -25,6 +25,7 @@ from scripts.pv_feasibility import pv_feasibility import matplotlib.pyplot as plt from scripts.district_heating_network.district_heating_network_creator import DistrictHeatingNetworkCreator from scripts.district_heating_network.road_processor import road_processor +from scripts.district_heating_network.district_heating_factory import DistrictHeatingFactory base_path = Path(__file__).parent dir_manager = DirectoryManager(base_path) @@ -61,7 +62,7 @@ UsageFactory('nrcan', city).enrich() WeatherFactory('epw', city).enrich() # EnergyPlus workflow -# energy_plus_workflow(city, energy_plus_output_path) +energy_plus_workflow(city, energy_plus_output_path) roads_file = road_processor(location[1], location[0], 0.001) @@ -69,5 +70,21 @@ dhn_creator = DistrictHeatingNetworkCreator(geojson_file_path, roads_file) network_graph = dhn_creator.run() -for node_id, attrs in network_graph.nodes(data=True): - print(f"Node {node_id} has attributes: {dict(attrs)}") +DistrictHeatingFactory( + city, + network_graph, + 60, + 40, + 0.8 +).enrich() + +DistrictHeatingFactory( + city, + network_graph, + 60, + 40, + 0.8 +).sizing() + +for u, v, attributes in network_graph.edges(data=True): + print(f"Edge between {u} and {v} with attributes: {attributes}") diff --git a/scripts/district_heating_network/district_heating_exporter.py b/scripts/district_heating_network/district_heating_exporter.py new file mode 100644 index 00000000..5a74f952 --- /dev/null +++ b/scripts/district_heating_network/district_heating_exporter.py @@ -0,0 +1,86 @@ +import json +import csv +import logging + + +class NetworkGraphExporter: + """ + A class to export a network graph to various formats like CSV and GeoJSON. + """ + + def __init__(self, graph): + """ + Initialize the exporter with a network graph. + + :param graph: A NetworkX graph object. + """ + self.graph = graph + + def to_csv(self, file_path): + """ + Save the graph nodes with their type, names, and positions to a CSV file. + + :param file_path: The path to the output CSV file. + """ + try: + with open(file_path, mode='w', newline='') as file: + writer = csv.writer(file) + writer.writerow(['Node ID', 'Name', 'Type', 'Position']) + for node, data in self.graph.nodes(data=True): + writer.writerow([node, data['name'], data['type'], data['pos']]) + logging.info(f"Graph successfully saved to CSV file: {file_path}") + except Exception as e: + logging.error(f"Error saving graph to CSV file: {e}") + + def to_geojson(self, file_path): + """ + Save the graph to a GeoJSON file. + + :param file_path: The path to the output GeoJSON file. + """ + try: + features = [] + + for node, data in self.graph.nodes(data=True): + feature = { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": data['pos'] + }, + "properties": { + "id": node, + "name": data['name'], + "type": data['type'] + } + } + features.append(feature) + + for u, v, data in self.graph.edges(data=True): + feature = { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [self.graph.nodes[u]['pos'], self.graph.nodes[v]['pos']] + }, + "properties": { + "length": data['length'] + } + } + features.append(feature) + + geojson = { + "type": "FeatureCollection", + "features": features + } + + with open(file_path, 'w') as f: + json.dump(geojson, f, indent=2) + logging.info(f"Graph successfully saved to GeoJSON file: {file_path}") + except Exception as e: + logging.error(f"Error saving graph to GeoJSON file: {e}") + + +# Configure logging +logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s") +logging.getLogger("numexpr").setLevel(logging.ERROR) diff --git a/scripts/district_heating_network/district_heating_factory.py b/scripts/district_heating_network/district_heating_factory.py index 55a3785a..027d092d 100644 --- a/scripts/district_heating_network/district_heating_factory.py +++ b/scripts/district_heating_network/district_heating_factory.py @@ -1,20 +1,26 @@ import networkx as nx import logging +import CoolProp as CP +import math + class DistrictHeatingFactory: """ DistrictHeatingFactory class """ - def __init__(self, city, graph): + def __init__(self, city, graph, supply_temperature, return_temperature, simultaneity_factor): self._city = city self._network_graph = graph + self._supply_temperature = supply_temperature + self._return_temperature = return_temperature + self.simultaneity_factor = simultaneity_factor + self.fluid = "Water" def enrich(self): """ - Enrich the network graph nodes with attributes from the city buildings. + Enrich the network graph nodes with the whole building object from the city buildings. """ - for node in self._network_graph.nodes(data=True): node_id, node_attrs = node if node_attrs.get('type') == 'building': @@ -22,11 +28,51 @@ class DistrictHeatingFactory: building_found = False for building in self._city.buildings: if building.name == building_name: - building_attrs = vars(building) - for attr, value in building_attrs.items(): - if attr not in self._network_graph.nodes[node_id]: - self._network_graph.nodes[node_id][attr] = value + self._network_graph.nodes[node_id]['building_obj'] = building building_found = True break if not building_found: - logging.error(msg=f"Building with name '{building_name}' not found in city.") \ No newline at end of file + logging.error(msg=f"Building with name '{building_name}' not found in city.") + + def sizing(self): + """ + Calculate the diameter of the pipes in the district heating network. + """ + for node in self._network_graph.nodes(data=True): + node_id, node_attrs = node + if node_attrs.get('type') == 'building': + building = node_attrs.get('building_obj') # Adjusted key to match your data + if building.heating_peak_load["year"][0]: + # Calculate peak mass flow rate + peak_mass_flow_rate = building.heating_peak_load["year"][0] / CP.PropsSI('C', + 'T', + ( + self._supply_temperature + + self._return_temperature + ) / 2, + 'P', + 101325, + self.fluid) / ( + self._supply_temperature - self._return_temperature) + + # Calculate density of the fluid + density = CP.PropsSI('D', # 'D' for density + 'T', + ( + self._supply_temperature + + self._return_temperature + ) / 2, + 'P', + 101325, + self.fluid) + + # Set the design velocity (V) + velocity = 0.9 # m/s + + # Calculate the diameter (D) + diameter = math.sqrt((4 * peak_mass_flow_rate) / (density * velocity * math.pi)) * 1000 # mm + + # Find the edge connected to the building node + for neighbor in self._network_graph.neighbors(node_id): + if not self._network_graph.nodes[neighbor].get('type') == 'building': # Ensure it's a pipe connection + self._network_graph.edges[node_id, neighbor]['diameter'] = diameter diff --git a/scripts/district_heating_network/district_heating_network_creator.py b/scripts/district_heating_network/district_heating_network_creator.py index c83b3aa9..f7f5f0d4 100644 --- a/scripts/district_heating_network/district_heating_network_creator.py +++ b/scripts/district_heating_network/district_heating_network_creator.py @@ -8,9 +8,8 @@ from typing import List, Tuple from rtree import index # Configure logging -logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') -logging.getLogger('numexpr').setLevel(logging.ERROR) - +logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s") +logging.getLogger("numexpr").setLevel(logging.ERROR) def haversine(lon1, lat1, lon2, lat2): """ @@ -30,17 +29,21 @@ def haversine(lon1, lat1, lon2, lat2): c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a)) return R * c # Output distance in meters - class DistrictHeatingNetworkCreator: - def __init__(self, buildings_file: str, roads_file: str): + def __init__(self, buildings_file: str, roads_file: str, central_plant_locations: List[Tuple[float, float]]): """ - Initialize the class with paths to the buildings and roads data files. + Initialize the class with paths to the buildings and roads data files, and central plant locations. :param buildings_file: Path to the GeoJSON file containing building data. :param roads_file: Path to the GeoJSON file containing roads data. + :param central_plant_locations: List of tuples containing the coordinates of central plant locations. """ + if len(central_plant_locations) < 1: + raise ValueError("The list of central plant locations must have at least one member.") + self.buildings_file = buildings_file self.roads_file = roads_file + self.central_plant_locations = central_plant_locations def run(self) -> nx.Graph: """ @@ -57,7 +60,8 @@ class DistrictHeatingNetworkCreator: self._iteratively_remove_edges() self._add_centroids_to_mst() self._convert_edge_weights_to_meters() - return self.final_mst + self._create_final_network_graph() + return self.network_graph except Exception as e: logging.error(f"Error during network creation: {e}") raise @@ -73,6 +77,7 @@ class DistrictHeatingNetworkCreator: self.centroids = [] self.building_names = [] + self.building_positions = [] buildings = city['features'] for building in buildings: coordinates = building['geometry']['coordinates'][0] @@ -80,6 +85,14 @@ class DistrictHeatingNetworkCreator: centroid = building_polygon.centroid self.centroids.append(centroid) self.building_names.append(str(building['id'])) + self.building_positions.append((centroid.x, centroid.y)) + + # Add central plant locations as centroids + for i, loc in enumerate(self.central_plant_locations, start=1): + centroid = Point(loc) + self.centroids.append(centroid) + self.building_names.append(f'central_plant_{i}') + self.building_positions.append((centroid.x, centroid.y)) # Load road data with open(self.roads_file, 'r') as file: @@ -184,7 +197,9 @@ class DistrictHeatingNetworkCreator: for line in self.cleaned_lines: coords = list(line.coords) for i in range(len(coords) - 1): - self.G.add_edge(coords[i], coords[i + 1], weight=Point(coords[i]).distance(Point(coords[i + 1]))) + u = coords[i] + v = coords[i + 1] + self.G.add_edge(u, v, weight=Point(coords[i]).distance(Point(coords[i + 1]))) except Exception as e: logging.error(f"Error creating graph: {e}") raise @@ -284,24 +299,22 @@ class DistrictHeatingNetworkCreator: """ try: for i, centroid in enumerate(self.centroids): - centroid_tuple = (centroid.x, centroid.y) building_name = self.building_names[i] - - # Add the centroid node with its attributes - self.final_mst.add_node(centroid_tuple, type='building', name=building_name) + pos = (centroid.x, centroid.y) + node_type = 'building' if 'central_plant' not in building_name else 'generation' + self.final_mst.add_node(pos, type=node_type, name=building_name, pos=pos) nearest_point = None min_distance = float('inf') for node in self.final_mst.nodes(): - if self.final_mst.nodes[node].get('type') != 'building': - node_point = Point(node) - distance = centroid.distance(node_point) + if self.final_mst.nodes[node].get('type') != 'building' and self.final_mst.nodes[node].get('type') != 'generation': + distance = centroid.distance(Point(node)) if distance < min_distance: min_distance = distance nearest_point = node if nearest_point: - self.final_mst.add_edge(centroid_tuple, nearest_point, weight=min_distance) + self.final_mst.add_edge(pos, nearest_point, weight=min_distance) except Exception as e: logging.error(f"Error adding centroids to MST: {e}") raise @@ -312,22 +325,48 @@ class DistrictHeatingNetworkCreator: """ try: for u, v, data in self.final_mst.edges(data=True): - lon1, lat1 = u - lon2, lat2 = v - distance = haversine(lon1, lat1, lon2, lat2) + distance = haversine(u[0], u[1], v[0], v[1]) self.final_mst[u][v]['weight'] = distance except Exception as e: logging.error(f"Error converting edge weights to meters: {e}") raise + def _create_final_network_graph(self): + """ + Create the final network graph with the required attributes from the final MST. + """ + self.network_graph = nx.Graph() + node_id = 1 + node_mapping = {} + for node in self.final_mst.nodes: + pos = node + if 'type' in self.final_mst.nodes[node]: + if self.final_mst.nodes[node]['type'] == 'building': + name = self.final_mst.nodes[node]['name'] + node_type = 'building' + elif self.final_mst.nodes[node]['type'] == 'generation': + name = self.final_mst.nodes[node]['name'] + node_type = 'generation' + else: + name = f'junction_{node_id}' + node_type = 'junction' + self.network_graph.add_node(node_id, name=name, type=node_type, pos=pos) + node_mapping[node] = node_id + node_id += 1 + for u, v, data in self.final_mst.edges(data=True): + u_new = node_mapping[u] + v_new = node_mapping[v] + length = data['weight'] + self.network_graph.add_edge(u_new, v_new, length=length) + def plot_network_graph(self): """ Plot the network graph using matplotlib and networkx. """ plt.figure(figsize=(15, 10)) - pos = {node: (node[0], node[1]) for node in self.final_mst.nodes()} - nx.draw_networkx_nodes(self.final_mst, pos, node_color='blue', node_size=50) - nx.draw_networkx_edges(self.final_mst, pos, edge_color='gray') + pos = {node: data['pos'] for node, data in self.network_graph.nodes(data=True)} + nx.draw_networkx_nodes(self.network_graph, pos, node_color='blue', node_size=50) + nx.draw_networkx_edges(self.network_graph, pos, edge_color='gray') plt.title('District Heating Network Graph') plt.axis('off') plt.show() diff --git a/scripts/district_heating_network/geojson_graph_creator.py b/scripts/district_heating_network/geojson_graph_creator.py deleted file mode 100644 index 407be813..00000000 --- a/scripts/district_heating_network/geojson_graph_creator.py +++ /dev/null @@ -1,54 +0,0 @@ -import json -from shapely import LineString, Point -import networkx as nx -from pathlib import Path - - -def networkx_to_geojson(graph: nx.Graph) -> Path: - """ - Convert a NetworkX graph to GeoJSON format. - - :param graph: A NetworkX graph. - :return: GeoJSON formatted dictionary. - """ - features = [] - - for u, v, data in graph.edges(data=True): - line = LineString([u, v]) - feature = { - "type": "Feature", - "geometry": { - "type": "LineString", - "coordinates": list(line.coords) - }, - "properties": { - "weight": data.get("weight", 1.0) - } - } - features.append(feature) - - for node, data in graph.nodes(data=True): - point = Point(node) - feature = { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": list(point.coords)[0] - }, - "properties": { - "type": data.get("type", "unknown"), - "id": data.get("id", "N/A") - } - } - features.append(feature) - - geojson = { - "type": "FeatureCollection", - "features": features - } - - output_geojson_file = Path('./out_files/network_graph.geojson').resolve() - with open(output_geojson_file, 'w') as file: - json.dump(geojson, file, indent=4) - - return output_geojson_file diff --git a/work_in_progress.ipynb b/work_in_progress.ipynb index 0151fa6a..e2028c4e 100644 --- a/work_in_progress.ipynb +++ b/work_in_progress.ipynb @@ -6,8 +6,8 @@ "metadata": { "collapsed": true, "ExecuteTime": { - "end_time": "2024-07-31T21:38:47.230085Z", - "start_time": "2024-07-31T21:38:47.206748Z" + "end_time": "2024-08-06T11:59:04.939687Z", + "start_time": "2024-08-06T11:59:02.897871Z" } }, "source": [ @@ -39,13 +39,13 @@ "import numpy as np" ], "outputs": [], - "execution_count": 110 + "execution_count": 1 }, { "metadata": { "ExecuteTime": { - "end_time": "2024-07-31T21:38:47.861524Z", - "start_time": "2024-07-31T21:38:47.843529Z" + "end_time": "2024-08-06T11:59:09.062846Z", + "start_time": "2024-08-06T11:59:09.045482Z" } }, "cell_type": "code", @@ -68,18 +68,18 @@ ], "id": "7d895f0e4ec2b851", "outputs": [], - "execution_count": 111 + "execution_count": 2 }, { "metadata": { "ExecuteTime": { - "end_time": "2024-07-31T21:39:02.661096Z", - "start_time": "2024-07-31T21:38:48.727802Z" + "end_time": "2024-08-06T12:13:55.585537Z", + "start_time": "2024-08-06T12:13:40.180283Z" } }, "cell_type": "code", "source": [ - "location = [45.53067276979674, -73.70234652694087]\n", + "location = [45.4934614681437, -73.57982834742518]\n", "process_geojson(x=location[1], y=location[0], diff=0.001)" ], "id": "20dfb8fa42189fc2", @@ -90,18 +90,18 @@ "WindowsPath('C:/Users/ab_reza/Majid/Concordia/Repositories/energy_system_modelling_workflow/input_files/output_buildings.geojson')" ] }, - "execution_count": 112, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], - "execution_count": 112 + "execution_count": 3 }, { "metadata": { "ExecuteTime": { - "end_time": "2024-07-31T21:39:02.992446Z", - "start_time": "2024-07-31T21:39:02.663422Z" + "end_time": "2024-08-06T12:14:09.413641Z", + "start_time": "2024-08-06T12:14:09.092514Z" } }, "cell_type": "code", @@ -115,26 +115,26 @@ ], "id": "c03ae7cae09d4b21", "outputs": [], - "execution_count": 113 + "execution_count": 4 }, { "metadata": { "ExecuteTime": { - "end_time": "2024-07-31T21:39:03.340164Z", - "start_time": "2024-07-31T21:39:02.993466Z" + "end_time": "2024-08-06T12:14:13.010694Z", + "start_time": "2024-08-06T12:14:12.546423Z" } }, "cell_type": "code", "source": "ConstructionFactory('nrcan', city).enrich()", "id": "c7d73638802e40d9", "outputs": [], - "execution_count": 114 + "execution_count": 5 }, { "metadata": { "ExecuteTime": { - "end_time": "2024-07-31T21:39:04.079698Z", - "start_time": "2024-07-31T21:39:03.342163Z" + "end_time": "2024-08-06T12:14:39.079790Z", + "start_time": "2024-08-06T12:14:37.862538Z" } }, "cell_type": "code", @@ -150,26 +150,26 @@ ] } ], - "execution_count": 115 + "execution_count": 6 }, { "metadata": { "ExecuteTime": { - "end_time": "2024-07-31T21:39:04.648022Z", - "start_time": "2024-07-31T21:39:04.081700Z" + "end_time": "2024-08-06T12:14:44.821140Z", + "start_time": "2024-08-06T12:14:44.208731Z" } }, "cell_type": "code", "source": "WeatherFactory('epw', city).enrich()", "id": "f66c01cb42c33b64", "outputs": [], - "execution_count": 116 + "execution_count": 7 }, { "metadata": { "ExecuteTime": { - "end_time": "2024-07-31T21:40:39.688386Z", - "start_time": "2024-07-31T21:39:04.650024Z" + "end_time": "2024-08-06T12:16:18.878636Z", + "start_time": "2024-08-06T12:14:46.050596Z" } }, "cell_type": "code", @@ -180,467 +180,154 @@ "name": "stdout", "output_type": "stream", "text": [ - "exporting:\n", + "exporting:\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\ab_reza\\miniconda3\\envs\\hub\\lib\\site-packages\\geomeppy\\geom\\surfaces.py:39: UserWarning: To create surfaces with >120 vertices, ensure you have customised your IDD before running EnergyPlus. https://unmethours.com/question/9343/energy-idf-parsing-error/?answer=9344#post-id-9344\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ " idf exported...\n", "\r\n", - "C:/EnergyPlusV23-2-0\\energyplus.exe --weather C:\\Users\\ab_reza\\Majid\\Concordia\\Repositories\\energy_system_modelling_workflow\\hub\\data\\weather\\epw\\CAN_PQ_Montreal.Intl.AP.716270_CWEC.epw --output-directory C:\\Users\\ab_reza\\Majid\\Concordia\\Repositories\\energy_system_modelling_workflow\\out_files\\energy_plus_outputs --idd C:\\Users\\ab_reza\\Majid\\Concordia\\Repositories\\energy_system_modelling_workflow\\hub\\exports\\building_energy\\idf_files\\Energy+.idd --expandobjects --readvars --output-prefix Laval_ C:\\Users\\ab_reza\\Majid\\Concordia\\Repositories\\energy_system_modelling_workflow\\out_files\\energy_plus_outputs\\Laval_602570.idf\r\n", + "C:/EnergyPlusV23-2-0\\energyplus.exe --weather C:\\Users\\ab_reza\\Majid\\Concordia\\Repositories\\energy_system_modelling_workflow\\hub\\data\\weather\\epw\\CAN_PQ_Montreal.Intl.AP.716270_CWEC.epw --output-directory C:\\Users\\ab_reza\\Majid\\Concordia\\Repositories\\energy_system_modelling_workflow\\out_files\\energy_plus_outputs --idd C:\\Users\\ab_reza\\Majid\\Concordia\\Repositories\\energy_system_modelling_workflow\\hub\\exports\\building_energy\\idf_files\\Energy+.idd --expandobjects --readvars --output-prefix Montreal_ C:\\Users\\ab_reza\\Majid\\Concordia\\Repositories\\energy_system_modelling_workflow\\out_files\\energy_plus_outputs\\Montreal_4494a5.idf\r\n", "\n" ] } ], - "execution_count": 117 + "execution_count": 8 }, { "metadata": { "ExecuteTime": { - "end_time": "2024-07-31T21:53:14.440222Z", - "start_time": "2024-07-31T21:53:10.290860Z" + "end_time": "2024-08-07T13:35:31.420040Z", + "start_time": "2024-08-07T13:35:25.840814Z" } }, "cell_type": "code", "source": [ "from scripts.district_heating_network.district_heating_network_creator import DistrictHeatingNetworkCreator\n", - "from scripts.district_heating_network.road_processor import road_processor\n", - "from pathlib import Path\n", - "import time\n", - "from scripts.district_heating_network.geojson_graph_creator import networkx_to_geojson\n", - "roads_file = road_processor(location[1], location[0], 0.001)\n", + "central_plant_locations = [(-73.57812571080625, 45.49499447346277)] # Add at least one location\n", "\n", - "dhn_creator = DistrictHeatingNetworkCreator(geojson_file_path, roads_file)\n", + "roads_file = \"./input_files/roads.json\"\n", + "\n", + "dhn_creator = DistrictHeatingNetworkCreator(geojson_file_path, roads_file, central_plant_locations)\n", "\n", "network_graph = dhn_creator.run()" ], - "id": "8403846b0831b51d", - "outputs": [ - { - "ename": "AttributeError", - "evalue": "'Graph' object has no attribute 'building_names'", - "output_type": "error", - "traceback": [ - "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m", - "\u001B[1;31mAttributeError\u001B[0m Traceback (most recent call last)", - "Cell \u001B[1;32mIn[121], line 11\u001B[0m\n\u001B[0;32m 8\u001B[0m dhn_creator \u001B[38;5;241m=\u001B[39m DistrictHeatingNetworkCreator(geojson_file_path, roads_file)\n\u001B[0;32m 10\u001B[0m network_graph \u001B[38;5;241m=\u001B[39m dhn_creator\u001B[38;5;241m.\u001B[39mrun()\n\u001B[1;32m---> 11\u001B[0m \u001B[43mnetwork_graph\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mbuilding_names\u001B[49m\n", - "\u001B[1;31mAttributeError\u001B[0m: 'Graph' object has no attribute 'building_names'" - ] - } - ], - "execution_count": 121 + "id": "df85fafcb61d6749", + "outputs": [], + "execution_count": 57 }, { "metadata": { "ExecuteTime": { - "end_time": "2024-07-31T21:43:05.521839Z", - "start_time": "2024-07-31T21:43:05.503748Z" + "end_time": "2024-08-07T13:35:34.786794Z", + "start_time": "2024-08-07T13:35:34.695855Z" } }, "cell_type": "code", - "source": [ - "for node_id, attrs in network_graph.nodes(data=True):\n", - " print(f\"Node {node_id} has attributes: {list(attrs.keys())}\")" - ], - "id": "9c4c32ed4a5b5434", + "source": "dhn_creator.plot_network_graph()", + "id": "6df32ae0a36411e4", "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "Node (-73.70263014634182, 45.52966550204674) has attributes: []\n", - "Node (-73.70252245592799, 45.52959782722166) has attributes: []\n", - "Node (-73.70277983402246, 45.52975956880018) has attributes: []\n", - "Node (-73.70292834674622, 45.52985289718704) has attributes: []\n", - "Node (-73.70299601156968, 45.52989541912497) has attributes: []\n", - "Node (-73.70304798829301, 45.52992808234479) has attributes: []\n", - "Node (-73.70315317772048, 45.52999418549968) has attributes: []\n", - "Node (-73.70322951375971, 45.530042156604246) has attributes: []\n", - "Node (-73.70334527410391, 45.53011490273612) has attributes: []\n", - "Node (-73.70388612860485, 45.530454786598085) has attributes: []\n", - "Node (-73.70321670301797, 45.53098320823811) has attributes: []\n", - "Node (-73.70309371940914, 45.53090572804479) has attributes: []\n", - "Node (-73.70336752508702, 45.53107818505422) has attributes: []\n", - "Node (-73.70300302780161, 45.53115122842582) has attributes: []\n", - "Node (-73.70298632291501, 45.53083806779961) has attributes: []\n", - "Node (-73.70284664272657, 45.53075006869057) has attributes: []\n", - "Node (-73.70282694240179, 45.530737657402696) has attributes: []\n", - "Node (-73.70268296446567, 45.530646950694454) has attributes: []\n", - "Node (-73.70262035905371, 45.53060750902034) has attributes: []\n", - "Node (-73.70250974072788, 45.53053781900757) has attributes: []\n", - "Node (-73.70248122664219, 45.530519855013075) has attributes: []\n", - "Node (-73.70237692791034, 45.53045414637121) has attributes: []\n", - "Node (-73.70241425825014, 45.52952983362164) has attributes: []\n", - "Node (-73.70258909924681, 45.53147671471601) has attributes: []\n", - "Node (-73.70246956317335, 45.531401341489406) has attributes: []\n", - "Node (-73.70281850395438, 45.53162108764596) has attributes: []\n", - "Node (-73.70235595692806, 45.53165968576366) has attributes: []\n", - "Node (-73.70235908646175, 45.53133168062488) has attributes: []\n", - "Node (-73.70226538550632, 45.5312725976791) has attributes: []\n", - "Node (-73.7022262934011, 45.531247948232114) has attributes: []\n", - "Node (-73.70218216283965, 45.53122012179686) has attributes: []\n", - "Node (-73.7020876584622, 45.53116053225497) has attributes: []\n", - "Node (-73.70208089954498, 45.53115627043355) has attributes: []\n", - "Node (-73.70195718026818, 45.531078259496624) has attributes: []\n", - "Node (-73.7019336727694, 45.53106343689135) has attributes: []\n", - "Node (-73.70183972286668, 45.53100419697237) has attributes: []\n", - "Node (-73.70182154258106, 45.53099273343045) has attributes: []\n", - "Node (-73.70170504466955, 45.530919275910655) has attributes: []\n", - "Node (-73.70169068527439, 45.5309102216234) has attributes: []\n", - "Node (-73.70191018896638, 45.53200952628766) has attributes: []\n", - "Node (-73.70343390828414, 45.5311199883841) has attributes: []\n", - "Node (-73.70308928370066, 45.53179149942939) has attributes: []\n", - "Node (-73.70154615235963, 45.53081908668964) has attributes: []\n", - "Node (-73.70149535566978, 45.53078705694076) has attributes: []\n", - "Node (-73.70139243548935, 45.530722160831516) has attributes: []\n", - "Node (-73.70235555653572, 45.5304406823149) has attributes: []\n", - "Node (-73.70223631048641, 45.530365556799865) has attributes: []\n", - "Node (-73.70218808966641, 45.53033517747947) has attributes: []\n", - "Node (-73.7020516180255, 45.53024919976893) has attributes: []\n", - "Node (-73.70202483520858, 45.530232326481084) has attributes: []\n", - "Node (-73.70189576536478, 45.53015101193401) has attributes: []\n", - "Node (-73.70188535693748, 45.53014445458083) has attributes: []\n", - "Node (-73.70176137113975, 45.53006634300427) has attributes: []\n", - "Node (-73.70171679336974, 45.53003825882077) has attributes: []\n", - "Node (-73.70161674578377, 45.52997522841877) has attributes: []\n", - "Node (-73.70157021391765, 45.52994591314646) has attributes: []\n", - "Node (-73.70145508528618, 45.52987338162208) has attributes: []\n", - "Node (-73.7015262783945, 45.53176766055835) has attributes: []\n", - "Node (-73.70142255824699, 45.531702316306436) has attributes: []\n", - "Node (-73.70132694890151, 45.53164208190352) has attributes: []\n", - "Node (-73.70249378379357, 45.529882494691094) has attributes: ['type', 'id']\n", - "Node (-73.70236957992, 45.530697070843594) has attributes: ['type', 'id']\n", - "Node (-73.7023772579133, 45.52982887967387) has attributes: ['type', 'id']\n", - "Node (-73.70310348189996, 45.530242710105696) has attributes: ['type', 'id']\n", - "Node (-73.70219141578475, 45.5309810002753) has attributes: ['type', 'id']\n", - "Node (-73.7015878987858, 45.53110506016847) has attributes: ['type', 'id']\n", - "Node (-73.70197756808213, 45.531335127032875) has attributes: ['type', 'id']\n", - "Node (-73.70171824652937, 45.53119684899265) has attributes: ['type', 'id']\n", - "Node (-73.70181225980849, 45.53125598840158) has attributes: ['type', 'id']\n", - "Node (-73.70212216033907, 45.53141309516707) has attributes: ['type', 'id']\n", - "Node (-73.70224797036111, 45.531522088920134) has attributes: ['type', 'id']\n", - "Node (-73.70319066728962, 45.53075184355254) has attributes: ['type', 'id']\n", - "Node (-73.70309318391786, 45.53066844829803) has attributes: ['type', 'id']\n", - "Node (-73.70326346262547, 45.53124343502157) has attributes: ['type', 'id']\n", - "Node (-73.70289161913149, 45.53100954740511) has attributes: ['type', 'id']\n", - "Node (-73.7031243168426, 45.52969124795911) has attributes: ['type', 'id']\n", - "Node (-73.70332165936908, 45.531298238343524) has attributes: ['type', 'id']\n", - "Node (-73.70291683392738, 45.531464843960194) has attributes: ['type', 'id']\n", - "Node (-73.70257423757026, 45.53123533603945) has attributes: ['type', 'id']\n", - "Node (-73.70246354979903, 45.53116600989907) has attributes: ['type', 'id']\n", - "Node (-73.70137270924536, 45.53098156462814) has attributes: ['type', 'id']\n", - "Node (-73.70228611728258, 45.52973374332967) has attributes: ['type', 'id']\n", - "Node (-73.70192277090158, 45.530832193189546) has attributes: ['type', 'id']\n", - "Node (-73.70247403248253, 45.530300013163604) has attributes: ['type', 'id']\n", - "Node (-73.70233258364674, 45.53021274328478) has attributes: ['type', 'id']\n", - "Node (-73.70150159992788, 45.530157998392504) has attributes: ['type', 'id']\n", - "Node (-73.70178207574742, 45.53033147043354) has attributes: ['type', 'id']\n", - "Node (-73.70279118480165, 45.53007116190442) has attributes: ['type', 'id']\n", - "Node (-73.70290386342012, 45.53015742711493) has attributes: ['type', 'id']\n", - "Node (-73.70199360008198, 45.529972641218336) has attributes: ['type', 'id']\n", - "Node (-73.7032815855412, 45.52978985115031) has attributes: ['type', 'id']\n", - "Node (-73.70166271484868, 45.53063422765041) has attributes: ['type', 'id']\n", - "Node (-73.7015006171488, 45.530550593136034) has attributes: ['type', 'id']\n", - "Node (-73.70265213028476, 45.529962782747816) has attributes: ['type', 'id']\n", - "Node (-73.7029326957311, 45.53056979610127) has attributes: ['type', 'id']\n", - "Node (-73.70166661687237, 45.5297928936099) has attributes: ['type', 'id']\n", - "Node (-73.70193452736822, 45.53043505670828) has attributes: ['type', 'id']\n", - "Node (-73.70320906423977, 45.53033165241546) has attributes: ['type', 'id']\n", - "Node (-73.70242433058544, 45.531020523149344) has attributes: ['type', 'id']\n", - "Node (-73.70229173916934, 45.53104634226288) has attributes: ['type', 'id']\n", - "Node (-73.70164581777142, 45.53024975981883) has attributes: ['type', 'id']\n", - "Node (-73.70181323564402, 45.52988517687263) has attributes: ['type', 'id']\n", - "Node (-73.70207977647193, 45.53050710203167) has attributes: ['type', 'id']\n", - "Node (-73.70180201572698, 45.53073366018695) has attributes: ['type', 'id']\n", - "Node (-73.70260551746348, 45.53038579346295) has attributes: ['type', 'id']\n", - "Node (-73.7015368490746, 45.531520903846236) has attributes: ['type', 'id']\n", - "Node (-73.70277909755795, 45.530494359508104) has attributes: ['type', 'id']\n", - "Node (-73.7016306503588, 45.531601992190964) has attributes: ['type', 'id']\n", - "Node (-73.703188128229, 45.531634438129004) has attributes: ['type', 'id']\n", - "Node (-73.70225201894137, 45.5306050266003) has attributes: ['type', 'id']\n", - "Node (-73.70250211711432, 45.53079519337939) has attributes: ['type', 'id']\n", - "Node (-73.70143287673753, 45.53147394391961) has attributes: ['type', 'id']\n", - "Node (-73.7015564456529, 45.52971249323039) has attributes: ['type', 'id']\n", - "Node (-73.70213321668199, 45.530060293550356) has attributes: ['type', 'id']\n", - "Node (-73.70205098392802, 45.53092949418992) has attributes: ['type', 'id']\n", - "Node (-73.70273955351598, 45.53092005042424) has attributes: ['type', 'id']\n" - ] + "data": { + "text/plain": [ + "
" + ], + "image/png": "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uu/Xd+/erby8PL300kt3PS9ut1tTp07VgQMHHrqaTZKaNm2qYcOGVT7vycnJCg4O1k9+8hOVlZVp586dkipWQd1Z7SRVPM8DBgzQkCFD7rq/BQsWyDRNbd68+a7bn3nmGfn6+t63hvXr12vUqFEaPXq0kpOT1apVq4c/MQ/x4x//WL6+vpV/vvt3Jt3/te90OvXv//7vGjBggJo0aSIfHx81adJEJ0+e1NGjR+85/nvf+95dLaXdunXT8OHD72kh9PLy0vTp0++6bdCgQZUrBgEAwKMRPAEAUEOKioqUm5urjh07PvCY0NBQbdy4UW3bttXrr7+u0NBQhYaG6o9//GO1zvWguTjflpOTI0keGTju7+8vh8Nxz5+IiIh7js3OztbatWvvChR8fX0VFhYmSbp+/bokaf/+/Zo8ebKkihlAu3bt0oEDB/Qv//IvkioGST+JkJCQu/7/TnvenfvNzc2Vj4/PPcHJnUHx1dW9e3e99tprWrZsmU6ePHnP17OzsyVJzz777D3Pze9+9zuZpqm8vLxHnmfixInau3evioqKtHHjRo0fP14hISGy2+3auHGjzp49q7Nnz94VPOXm5t73NXTntfvdod4Pe719+eWXKikp0Y9+9KMqtTxKFTPRcnJyVFxcfNftb775ZmWI+aBz3u/2H//4x/q3f/s3zZw5U2vXrtW+fft04MABRURE3Pd10759+/ve9t3H3bRpU/n7+991m5+fn27fvv3IxwgAACow4wkAgBqybt06uVwujR079qHHjRo1SqNGjZLL5ZJhGPrTn/6kf/iHf1C7du0UFxdXpXNVZQD4nblQly5dUpcuXap0v57QunVrDRo0SP/3//7f+379TtgRHx8vX19fff3113d92P/yyy9ro0yFhITI6XQqLy/vrvApKyvrse/zX//1X/XBBx/oZz/7WWXQdkfr1q0lSX/6058euBNfVUKvCRMm6N/+7d+0fft2bdq0Sb/4xS8qb9+wYYN69OhR+f93hISE6OrVq/fc15UrV+6q7Y6Hvd7effddrVixQjExMVq9enVlePgwkyZN0oYNG5SQkKBnn3228vYuXbpUvlabNGly3++9Xy13ZmX9+7//+123X79+XcHBwfccf7+/06ysrHvCSQAA8ORY8QQAQA24cOGC/vEf/1EtWrTQD3/4wyp9j7e3t5566in993//tyQpNTVV0r0rcR7X5MmT5e3trffee++hx/n5+T3xuR7m6aefVkZGhkJDQ++7SupO8OTl5SUfHx95e3tXfm9JSYn+/Oc/10rNY8aMkSStWLHirtvj4+Mf+z5DQkL0T//0T1q1atU9u7yNGDFCwcHByszMvO/z4nA4KsOXh70mhgwZoqCgIP3Xf/2XsrKyNGnSJEkVK6HS0tK0cuVKDRgw4K6VeBMmTFBmZmbla+6OTz75RF5eXnftJvco/v7++uKLL/T000/rmWee0Zo1ax75PYsWLVK7du30f/7P/7lvAFZdXl5e96y2WrdunS5fvnzf4z/77LO72mLPnz+v3bt3PzI0BgAA1ceKJwAAqikjI6NyHs+1a9e0Y8cOffjhh/L29tbq1avv2YHu295//31t3rxZ06ZNU9euXXX79u3KXdXutEI1b95c3bp105o1azRhwgS1atVKrVu3Vvfu3atVZ/fu3fWzn/1Mb731lkpKSjR//ny1aNFCmZmZun79euXsofDwcH3xxRd67733ZLfbZbPZ5HA4Hu/JuY9f//rXSk5O1vDhw/X3f//36tu3r27fvq1z584pISFB77//vjp37qxp06bpnXfe0fe+9z394Ac/UG5urv7whz/ct30rPDxc8fHxWrFihXr27Cl/f3+Fh4c/UZ1Tp07ViBEj9Oabb6qgoEB2u1179uzRJ598Ikmy2R7vet0//MM/6L//+7+VmJh41+2BgYH605/+pJdeekl5eXl69tln1bZtW+Xk5OjgwYPKycmpDA3vPLY//vGPeumll+Tr66u+ffuqefPm8vb21pgxY7R27Vr16NFDoaGhkiqCLT8/P23atEl///d/f9e533jjDX3yySeaNm2afv3rX6tbt25at26dlixZoh/96Efq06dPtR6jr6+vPvvsMy1atEjPPvusPvnkk4fOxgoODtaXX36p6dOnKyIiQj/60Y80dOhQBQYGKjc3V9u3b1dWVpaGDx9epfM//fTT+uijj9SvXz8NGjRIKSkpevvttx/YZnrt2jXNmjVLixcv1s2bN/WLX/xC/v7+lTsdAgCAmkPwBABANb388suSKlqBgoOD1b9/f/3TP/2TFi1a9NDQSaoYLr5hwwb94he/UFZWlgIDAzVw4EB99dVXd7UoLV++XD/5yU/0zDPPqLS0VC+99JI++uijatf661//Wr1799af/vQn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qufb77c7duyoadOmqWPHjlaXBcAiBE9oUB427NrtdsswDG3ZskWSNGHCBEVHRzf6trqqKimRAgMrZjo9is0mFRYycBwAgKrYunWrtm3bpnnz5qlfv35Wl4PHVFRUVDmqID8/X+3atZPD4VB4eLj8/PysLq9WfHuMhZeXV+X77cYawAGoQPCEBuFRw66/21Y3ceJElkFXU3a2VJ0LsFlZUrt2nqsHAICG4MiRI1q1apXGjx+vUaNGWV0OaoBpmjp9+rQMw9CJEyfk6+ur8PBwDR48WO0a8Jujb+8OHR0drQkTJvB+G4Akgic0AO+9p4cMuzb1wx8eUvv2X9JW94Sqs+LJy8utDRv2aOjQCAUGBnq+OOARHrYaEgCscuXKFX344Yfq16+fZs+ezaqQBqigoEApKSlKTU1VYWGhOnfuLIfDobCwsAYzPL64uFgbN25UWloa77cB3BfBE+q1nTul0aOlh7+KTS1bdlwvv9yHtronNHu29NVXplyuB78x9vY2NWTIVU2b9qHcbrf69+8vh8Ohbt26PfINNeEAatqjVkMCgFVu3bqlpUuXqnnz5lqwYIF8fX2tLgke5HK5dOLECRmGoTNnziggIECRkZGy2+0KCQmxurzH4na7lZaWpk2bNsk0TXaHBvBABE+o12bPltauvXul03f5+JiaMcOLYdc14IsvrmnOnDaqyq520dElOnjwoAzDUG5urlq3bl2524u/v/9d30M4AE94+GpIackS6dVXrasPQONVXl6ujz/+WAUFBVq8eLGaN29udUmoRbm5uUpJSVF6erpKSkrUs2dP2e129e3bV97eD97ApS65cuWK1q1bpytXrigyMlITJ05kJ0YAD0TwhHqLYde16+bNm1q6dKkOHRquTz8dJm9vryp9mDdNU+fOnZNhGDp27JhsNpsGDhyowYMHq2PHjoQD8IiqrIa8E5ISbgKoTaZpavXq1Tp69KhefvlldvpqxJxOpzIzM2UYhi5evKjAwEBFR0crOjpaLVq0sLq8+yopKdGmTZuUkpKidu3aKTY2Vl27drW6LAB1HMET6i2GXdeesrIyffjhhyopKdHixYuVnt5M774rrV79zQqlWbOkN954+If4W7duVe72UlBQoKKiKL399nRVZQUV4QCqo2qrIStW1rEaEkBt2rlzpzZt2qRnn31WYWFhVpeDOiI7O1uGYejQoUMqLy9Xnz59ZLfb1atXrzox+8s0TaWlpWnjxo1yu90aN26cBg8eTFsdgCoheEK9VbHiyZTb/ehfxqx4enymaerzzz/XqVOntHDhwrt2Y3ncmUxut1snT57UCy8EKDW1k9zuBy8rJxxAdbEaEkBddezYMa1YsUKjR4/WuHHjrC4HdVBpaakOHz4swzCUnZ2t4OBg2e12RUVFWdbKdvXqVSUkJOjSpUsaNGiQJk2axOYxAKqF4An1UmFhoTZu3Kif/rSvTpzoK7f7wVdbmPH0ZDZv3qwdO3YoLi5Offv2rbH7JRyAp7AaEkBdlJ2dreXLl6tXr16aO3dunVjFgrrLNE1dvnxZhmHoyJEjcrvdGjBggBwOh7p27Vorr5/bt29r8+bNMgxDbdq0UWxsrLp16+bx8wJoeAieUK+43W4dOHBAW7Zskc1mU0jIM1q8uK9M82G/fE1t3lyuceOa1FqdDcXhw4f1xRdfaMKECRo5cmSN3jfhADyFUBNAXVNUVKSlS5cqICBAL7/8spo04T0Jqq6kpETp6elKSUlRbm6u2rRpI7vdft8NW2qCaZo6ePCgkpOT5XQ6NXbsWA0ZMqTeDD4HUPf4WF0AUFUXLlxQQkKCsrOzFR0drQkTJqhp06YqL5dee+1Bw6lNzZixXpmZpxURMV+tWrWy7gHUM5cvX9aaNWsUERGhER4YsBQUVPGhvyrhgJeXqWvXTqtNm57MEsAjBQRUtGdWdcYToRMAT3I6nVq5cqWcTqfi4uIInVBtAQEBGjZsmIYOHVq5YcuGDRu0adMmDRw4UA6Ho8pD6h81JiE7O1sJCQm6cOGCwsPDNWnSJHZdBPDEWPGEOu9OW93BgwfVsWNHxcbGqlOnTncds2uXHjjsum/f64qPj1dRUZHmzp2rnj17WvRI6o+CggItXbpUwcHBeumll+Tj45mMevZs6auv3HK5HhwmeXu7NWjQOc2Y8WcFBwdX7vbClr14mIpd7cyHroZkcD0AT/j2B3t/f1NfffWVDh8+rAULFqhz585Wl4cG4s6GLampqbp586Y6dOggh8OhgQMH3jfc3LlTeucdac2ab94rz5ghvflmxe/B27dva+vWrdq/f79CQkIUGxurHj16WPDIADREBE+os77bVjdhwgRFR0c/tKf9QVdxSkpK9Le//U1nzpzRlClTNGTIEGYrPEBZWZk++ugjFRcXa9GiRR4dHvnpp+f0/e9306N2tdu+3VT37tbOOUD9cvXqVb36arq++mqqfHwkp/Ob10jFakhpyRLp1VctLBJAg3K/D/ajRuUqNHSN/v7vK9qigJrmdrt16tQpGYahkydPys/PTxEREXI4HGrTpo0k6b33pNdff3B3wM9+dlktW65QaWmpxo4dq6eeeoq2OgA1iuAJddK32+rsdrvGjx+vpk2bPtF9ut1uJScna+/evYqKitK0adP4pfodpmlq1apVOnnypF555RW1r84Qpmq6evWqPvzwQ507N1XLlkXJ29vrPm+G7g0H7sw5MAxDeXl51Z5z8Lg78aH+KCws1NKlSxUYGKg+fV7Wn/7kc9/VkKx0AlBTHvTB3mZzye226b33vAi64XH5+flKSUlRWlqaioqK1K1bN3l5jdLLL/d85DzUt97aqr//e7uCgoJqq1wAjQjBE+qU77bVTZs2rco961WVlpamdevWqVOnTnruuedo2fqWrVu3atu2bXruuefUv39/j53n28HAggULtH+/7wNbJR8UDpimqbNnz8owDB07dkw+Pj4aOHCgBg8erA4dOtxz/KOWmKNhcDqd+vjjj5Wfn6/FixdXvoEmcATgKRWtvdLD3lHT2ova5HK5dPToUaWkpOi3vx2iEyf6yO1+8MVWb29TM2eyAzQAzyF4Qp3w3ba6iRMnKioqymMtVBcvXtSKFSvk4+OjuLg4j67sqS+OHDmiVatWafz48Ro1apTHzuN0OvXRRx/p5s2bdwUD0uOHA7du3VJqaqpSUlJ069YtdezYsXLOga+v7yOWmNNy1VCYpqkvv/xSmZmZWrBgwT2z4ADAE2bPrvpmBnywR22q2OXVlNv96PfT7PIKwJMInmC58+fPKzExsUbb6qri5s2bWrFiha5fv66ZM2dqwIABHj9nXXXlyhV9+OGH6t+/v2bNmuWxwM80Ta1evVpHjx71SDDgdrt14sQJGYah06dPy9/fX97eY/R//s9TDJluBHbu3KlNmzZpzpw5GjhwoNXlAGgEKj7YV22HVj7Yo7ZlZ0vVubaalSW1a+e5egA0XgRPsExhYaGSk5N16NAhderUSbGxsTXeVvco5eXlWrNmjY4cOaIxY8ZozJgxjW5QdUFBgZYtW6agoCAtWLDAYzvYSbUbDOTl5SklJUVvvNFNR4+GPnSJOVei679jx45pxYoVGj16tMaNG2d1OQAaCT7Yoy5jxROAusJznzCBB3C73dq/f7+2bt0qm82m6dOne7St7mF8fX01Z84ctW3bVlu2bNG1a9c0c+bM+25D2xCVl5drxYoV8vLyUlxcnEdDp2PHjmnTpk0aPXp0raxGadWqlUaOnKSjRx/9hsvprJgvVVLCG676KCsrS1988YX69++vsWPHWl0OgEYkKKjiA3tVVzwxtxm1xTRNnTmTqbCwJjpypGeVLsDxHgiApxA8oVadP39eCQkJunbtmux2uyZMmKAAi3/LeXl5afTo0Wrbtq2++OILffDBB4qLi1NwcLCldXmaaZpas2aNcnJy9PLLLyswMNBj57IqGCgoUJWu8kkVHxoKCnjTVd8UFhYqPj5eISEhmjlzZqNbsQjAWgEBFR/Yqzrjid8xqA3Xr19XYmKizpw5o9mzRygjo9dDj3e5KjZ0AQBPodUOtaIutNVVRXZ2tuLj41VWVqbnnntO3bp1s7okj9m2bZu2bt2quXPnenS+VWFhoZYtW6aAgAC9/PLLtbqarHqzN0xlZxerdWt2OawvnE6nPvnkE924ceOeQfUAUFvY1Q51RVlZmXbs2KHdu3crKChIMTEx6tOnj95/X3rtNTZZAWAdgid41Hfb6jy9W11NKC4u1sqVK3Xx4kXFxsbKbrdbXVKNy8zM1Oeff66xY8dqzJgxHjtPXQgGqrLbkM3mVr9+xzV//t/Uv39/ORwOde3atU6/Thu7Oyv2MjIytGDBAnXu3NnqkgA0Ynywh5VM09SxY8eUlJSkoqIijRw5UiNGjJCvr2/lMbt2Se++WzFawO2uaP2cNatipROBKABPI3iCx3y7rc7hcGj8+PGWt9VVlcvlUlJSkgzD0ODBgzV16lTZbDary6oRV69e1QcffKB+/fpp9uzZHt3Bri4EAxVXos1H7mqXnHxbAQGpSklJUV5entq2bSu73a6IiAj5+fnVYsWoil27dmnjxo2aPXu2wsPDrS4HAPhgD0vk5uYqMTFRp0+fVu/evRUTE6OWLVs+8PiSkorRAkFBtH4CqD0ET6hxt27d0saNG+t8W11VHDhwQElJSerWrZvmzp1bb4KzB7l165aWLl2q5s2ba8GCBXddCatpdSUYuHHjhhYuPKDVqyfJx0dyOr8JoO53JbpiGOcZGYah48ePy8fHR+Hh4XI4HOrQoYNFjwLfdvz4ccXHx2vUqFEaP3681eUAwF34YI/aUF5eXtlW17x5c02dOlV9+/a1uiwAuC+CJ9SYO211W7ZskY+PjyZMmFDn2+qq4uzZs/r888/l7++v+fPnq02bNlaX9FjKy8v18ccfq6CgQIsXL1bz5s09dq66EgyUlpZq+fLlcjqdCgv7gd57z79aV6ILCgqUmpqq1NRU3bp1S506dZLD4VBYWJhHQzs8WHZ2tj744AP17NlTzz33XL3/+QIAQHWYpqnjx48rKSlJhYWFGjFihEaOHMn7EgB1GsETakR9bqurihs3big+Pl75+fmaM2eO+vTpY3VJ1WKapr744gsdO3ZML7/8skdXoNWVYMDtdis+Pl4XLlzQwoULKwPDx7kS7XK5dOLECRmGoTNnzsjf31+RkZFyOBwKCQnx4KPAtxUVFWnZsmXy8/PTK6+8UquD6gEAsFpeXp6SkpJ08uRJ9erVSzExMWrVqpXVZQHAIxE84YncunVLycnJOnz4cL1vq3uU0tJSrV69WsePH9eECRM0YsSIerPaYvv27dqyZYueffZZhYWFeew8dSkY2LBhg/bu3avvfe976tXr4dsIV0dubq5SUlKUnp6ukpIS9ejRQw6HQ3379pW3t3eNnQd3czqd+vOf/6zc3FwtXrxYLVq0sLokAABqRXl5uXbu3Kldu3YpMDCwsq2uvrwPBQCCJzwWl8tVuVudj4+PJk6cqMjIyAb/C9A0TW3ZskU7duxQeHi4pk+fXueXNh89elQrV67UmDFjNHbsWI+dpy4FA+np6VqzZo2mTJmioUOHeuQcTqdTR44ckWEYunTpkgIDAxUdHS273W7J7n0NmWma+uqrr3T48GG99NJL6tKli9UlAQBQK06cOKHExETdunVLw4cP16hRo+r8e08A+C6CJ1RbQ2+rq4qMjAytWbNGbdu21bx58+4KGurSUNGsrCx98MEH6t27t5599lmP7mBXV4KBCxcu6OOPP1ZkZKSefvrpWglDs7KyZBiGDh06JKfTqT59+sjhcCg0NLTBh7G1Yc+ePdqwYYNmzZqlQYMGWV0OAAAed+PGDSUlJenEiRMKDQ1VTEwM7f0A6i2CJ1TZt9vqOnfurNjY2Ea9y9eVK1e0YsUKud1uxcXF6ezZTnrnHWnNmm+GV8+YIb35pjXbKBcWFmrp0qVq1qyZXn75ZY9eHdu9e7eSk5MtDwby8/O1dOlStWnTRt///vdrvfWttLRUhw4dkmEYunbtmlq2bCm73a6oqCg1bdq0VmtpKE6ePKnPPvtMw4cP18SJE60uBwAAj3I6ndq1a5d27typpk2basqUKerfvz8XsgDUawRPeKTG2lZXFYWFhVqxYoXWrOmgr7+Okbe3l5zOb77u4yO5XNKSJdKrr9ZeXU6nUx9//LHy8/O1ePFij7Z+nThxQp999plGjBhhaTBQWlqqDz74QOXl5Vq0aJGlQY9pmrp48aIMw1BmZqYkacCAAXI4HOrSpQv/dqro2rVrWr58uXr06KF58+bxvAEAGrSTJ08qMTFRN2/e1LBhwzR69Gg20gDQIBA84aHOnTunhIQEXb9+XQ6HQ+PGjWt0bXWPsnWrU+PGeUt68IdiLy9px47aWflkmqa+/PJLZWZmasGCBerUqZPHzlVXggG3260VK1bo3LlzWrhwodq2bWtJHfdTVFSk9PR0paSk6MaNG2rbtq0cDocGDRokPz8/q8urs4qLi7V06VI1adJEr7zyCs8VAKDBys/PV1JSko4fP64ePXooNjZWrVu3trosAKgxBE+4L9rqqm72bGntWlNO54NDFx+fira7Vas8X8/OnTu1adMmzZkzRwMHDvTYee4EA3VhB7vk5GTt2bNH8+fPV+/evS2r42FM09Tp06dlGIZOnDghX19fhYeHy+FwqH379laXV6e4XC79+c9/Vk5OjhYvXqzg4GCrSwIAoMY5nU7t3r1bO3bsUEBAgKZMmaIBAwawwhdAg0PwhLvQVlc9JSVSYGDFTKdHsdmkwkLPDhw/duyYVqxYodGjR2vcuHEeO09dCgYOHjyoL7/8UpMnT9awYcMsq6M6bt68qdTUVKWmpqqwsFCdO3eWw+FQWFiYfHx8rC7PUqZpau3atTp06JBefPFFde3a1eqSAACocadOnVJiYqLy8/M1dOhQjR49mtW9ABosgidUoq2u+rKzpeosVsnKktq180wtd3aw69Wrl+bOnevRHezqSjBw8eJFffzxxwoPD9czzzxT7wJSl8ul48ePyzAMnT17VgEBAYqMjJTD4VCrVq2sLs8Se/fu1fr16zVjxgxFRkZaXQ4AADXq5s2bWr9+vY4eParu3bsrNjZWbdq0sbosAPAogifo1q1b2rBhgzIyMmirq6a6suKpsLBQy5YtU0BAgF5++WWPtr3VlWAgPz9fy5YtU0hIiF588cVa38GupuXm5sowDKWnp+v27dvq2bOnHA6H+vbtK5vNZnV5teLODnbDhg3TpEmTrC4HAIAa43K5tGfPHm3fvl1+fn6aMmWKwsLC6t1FMwB4HARPjZjL5dK+ffu0bds2+fj4aNKkSYqIiOAXYDVVzHjSXbvZfVdNzngqKZEKCqSgoIoQy+l06pNPPlFeXp4WL16sFi1aPPlJHqCuBANlZWX64IMPVFpaqkWLFqlZs2aW1VLTysvLdeTIERmGocuXL6t58+aKjo5WdHS0R3cntFpOTo6WL1+ubt26ad68eY0mbAMANHynT59WYmKi8vLy9NRTT2ns2LG01QFoVAieGina6mrOzp3S6NHSw/4l1cSudjt3Su+8I61ZU7HCymaTZswwNXjwDrlc27VgwQJ17tz58U/wCHUlGDBNUytXrtSZM2fq3A52Ne3q1asyDEOHDx+W0+lU37595XA41LNnzwYVEBcXF2vZsmXy9fVlBzsAQINRUFCg9evXKzMzU926dVNsbGyDft8CAA9C8NTIfLutrkuXLoqNjWVHrRrw/vvSa69J3t53r3zy8ZFcLmnJEunVVx///t97T3r99Xvv39vbLZfLS//6r1f01ludHv8Ej1CXgoFNmzZp586dmj9/vvr06WNZHbXp9u3bOnTokAzDUE5Ojlq1aiW73a7IyEg1bdrU6vKeiMvl0qeffqpr165p0aJFatmypdUlAQDwRFwul/bu3att27apSZMmmjx5ssLDwxvURSMAqA6Cp0aCtjrP27VLevddafXqb1YkzZolvfHGk690qo0VVQ9Sl4KBQ4cOafXq1Zo4caJGeOLB1nGmaerChQtKSUlRZmamJCksLEwOh0OdO3eud/+eTdPUunXrlJaWphdffFHdunWzuiQAAJ7I2bNnlZCQoNzcXA0ZMkRjx46Vv7+/1WUBgKUInhqBs2fPKjExsbKtbvz48fwC9KDvzmB6UrU9Q+rbTNPU119/rfT0dMuDgUuXLumjjz7SwIEDNWPGjHoXstS0oqIipaWlKSUlRfn5+WrXrp0cDocGDRrk0eHyNWnfvn1KSkrSM888o6ioKKvLAQDgsRUUFCg5OVkZGRnq2rWrYmNj1c5TWxkDQD1D8NSAffsXIG119ZPVu+bVlWDg5s2bWrp0qVq1aqUXX3xRPj4+ltVS15imqdOnT8swDJ04cUK+vr4aNGiQHA5HnX7De/r0af3lL3/RU089pSlTplhdDgAAj+XbXQW+vr6aNGmSBg0a1OgvkAHAt/HprZ562Kqa77bVzZgxg7a6eqqgoGqhk1RxXEFBzQVPp0+f1vr16zV06FBLQ6eysjLFx8fLx8dH8+bNI3T6Di8vL/Xq1Uu9evXSzZs3lZKSorS0NBmGoS5dusjhcGjAgAF16nm7fv26Pv/8c/Xq1cvS3REBAHgS396sZ/DgwRo3bhxdBQBwH6x4qmfuv7OZ9OabFfN9vt1Wxy/A+s+qFU/Xr1/XsmXL1LVrV8XFxVm6g93nn3+uU6dOaeHChXV6BU9d4nK5dPz4cRmGobNnz6pp06aKjIyU3W5Xq1atLK2tpKREy5Ytk7e3txYuXMgOdgCAeufWrVtKTk7W4cOH1blzZ02bNo2uAgB4CIKneuRBO5tV7JxmatGiNHXqtJa2ugamtmc81aVgYPPmzdqxY4fmzZunfv36WVZHfXb9+nUZhqGDBw/q9u3bCg0NlcPhUJ8+fWo9UHS5XPrLX/6irKwsLV68mB3sAAD1itvt1r59+7R161b5+Pho4sSJioyMpKsAAB6B4KmeqMrOZpKpDz88pZde6sUvwAakNne1q0vBwOHDh/XFF19owoQJGjlypGV1NBTl5eXKyMhQSkqKLl++rKCgIEVHRys6OlrNmzevlRrWrVun1NRUff/731f37t1r5ZwAANSE8+fPKyEhQdeuXavcrCegJgdrAkADRvBUT1Rt1YupGTO8anxnM1jv/fel11570Go3ackS6dVXn/w8dSUYuHz5sj788EOFhYVp5syZBKk17MqVKzIMQxkZGXK5XOrbt68cDod69Ojhsef6wIEDSkhI0NNPPy273e6RcwAAUNMKCwuVnJysQ4cOqVOnToqNjVXHjh2tLgsA6hWCp3rA6p3NUDfs2iW9+660evU3871mzZLeeOPJVzpJ0v79+5WYmKjp06crOjr6ye/wMRUUFGjp0qUKDg7WSy+9VKeGYjc0t2/f1qFDh2QYhnJychQSEiK73a7IyMgavYp75swZffrppxoyZIimTp1aY/cLAICnuN1uHThwQFu2bJHNZtPEiRMVFRXFxTAAeAwET/VAdrZUnXFNWVkSM5gbroftaPi47mxtb3UwUFZWpo8++khFRUVavHixAgMDLaulMTFNUxcuXJBhGMrMzJTNZlNYWJgcDoc6der0RG+yc3NztWzZMnXq1Enf+973LBtUDwBAVV24cEEJCQnKzs6W3W7XhAkTaKsDgCdA8FQPsOIJNem7wVVdCQZM09SqVat08uRJvfLKKwzHt0hhYaHS0tKUkpKimzdvqn379nI4HAoPD1eTJk0e+f3ffn1JJVq+fLm8vLy0cOFCdtgEANRpRUVF2rhxo9LT09WxY0fFxsaqU6dOVpcFAPUewVM9UZUZT97epmbOZMYT7m/nTumdd6Q1a75p1Xv6aZdCQ1crNDTb8mBg69at2rZtm5577jn179/fsjpQwe126/Tp0zIMQydOnJCfn58GDRokh8Ohtm3b3nP8va8vU1FRFzRkyE795jcxatWqlQWPAgCAR3O73TIMQ5s3b5bNZtOECRMUFRXFKl0AqCEET/VEVXe1++ij03rppV61VRbqiffek15//d7h5DabW263l/7wh2K9+WYzy+o7cuSIVq1apfHjx2vUqFGW1YH7y8/PV0pKitLS0lRUVKSuXbvK4XCof//+8vHxecjryyXTtGnJEi+99FLNt4gCAPCkLl68qISEBGVlZSk6OloTJkxQ06ZNrS4LABoUgqd65OE7m5n6wQ8OqkOHNRoxYoTGjx/PVRpIqlpo6eUl7dhRM0PKq+vKlSv68MMP1b9/f82aNYuhnXWYy+XSsWPHZBiGzp07p6ZNm8rXd6x+/GOHTPPhf29eXhWvQZtNmjFDevNNa15vAABId7fVdejQQbGxsercubPVZQFAg0TwVM88bGez4cNN7d27V8nJyerVq5fmzJkjPz8/q0uGxarSpunjUxEG1HabZkFBgZYtW6agoCC99NJL8vX1rd0C8NhycnJkGIZ+8pOeOnq0l9xu7yp/b0VYLi1ZIr36qgeLBADgO9xut1JTU7Vp0yZJ0vjx42W327lgCwAeRPBUTz1sZ7OTJ0/qb3/7m5o3b6758+czW6URq8uD6cvLy/XRRx+psLBQixYtUvPmzWvnxKgxFa8vU273461Ss3KlHQCg8bl8+bLWrVunq1evKjIyUhMnTlSzZtaNGgCAxoLgqYG6fv26PvvsMxUXF2vu3Lnq2bOn1SXBAtnZUnU2h8vKktq1q/k6vhuUmqapv/3tbzp+/LheeeUVdejQoeZPCo+r7uvru6xaaQcAaFyKi4u1adMmpaamqn379oqNjVWXLl2sLgsAGg2CpwaspKREf/vb33TmzBlNmTJFQ4YMYX5OI2P1iqf77aQ3Y4Y0fnyacnO/0ty5czVgwICaOyFqVXVeXw9S2yvtAACNh2malW11brdb48ePl8PhoK0OAGoZwVMD53a7lZycrL179yoqKkrTpk2Tt3fVZ7Gg/rNqxtODdjrz9jblcklvvHFS77zTp+ZOCEtU5fX1KJ5aaQfgyTysrR+o665cuaJ169bpypUrioiI0MSJExUYGGh1WQDQKBE8NRJpaWlat26dOnXqpOeee45+9kbEil3tqnZOUzt2eDHfp56ryt/1w9hspgoLvfhQC9QhD1qtym6UqA9KSkq0adMmpaSkqF27doqNjVXXrl2tLgsAGjWCp0bk4sWLWrFihXx8fBQXF6f2TzKcBfXK++9Lr7127+ojT+0uVpd30kPNe9DrSzIlPbi912ZzqX//k/r9789o8ODBatOmjadLBfAID1qtym6UqOtM01RaWpo2btwot9utcePGafDgwbTVAUAdQPDUyNy8eVMrVqzQ9evXNXPmTObrNCK7dknvviutXv3NFexZs6Q33qjZK9hWz5WCNe59fZn/+xp4cPDk5WXq3XdTVF6+VUVFRerWrZscDof69+9PSzBgAStWyAI14erVq0pISNClS5c0aNAgTZo0ibY6AKhDCJ4aofLycq1Zs0ZHjhzRmDFjNGbMGIaONyKentlRV3bSgzXuvL4yMnbr3XfzlJAwTd7eXg9dOeFyuXT06FEZhqHz58+rWbNmioyMlMPhUHBwsGWPBWhsWK2K+qakpERbtmyRYRhq06aNYmNj1a1bN6vLAgB8B8FTI2Wapnbs2KEtW7aof//+mjlzppo0aWJ1WWgAWPGE48ePKz4+XqNGjZKf3/hqrbTLycmRYRg6ePCgSktL1bt3bzkcDvXq1Yt2CcCD+NmN+sQ0TR08eFDJyclyOp0aO3ashgwZwmpZAKijCJ4auWPHjumLL75Qq1atFBcXx+oC1Aiumjde2dnZWr58uXr16qW5c+dWrqas7kq7srIyZWRkyDAMXb16VS1atFB0dLSio6NpnwA8gNWqqC+ysrKUkJCgixcvKjw8XJMmTVLz5s2tLgsA8BAET1B2drbi4+NVVlamefPmsfMHnhhzQhqnoqIiLV26VAEBAXr55ZdrbBXl5cuXZRiGMjIy5Ha71b9/fzkcDnXr1o02YaCGsOIJdd3t27e1ZcsWHThwQK1bt1ZsbKy6d+9udVkAgCogeIIkqbi4WCtXrtTFixc1bdo0RUdHW10S6rna3kkP1nI6nfrkk0+Ul5enxYsXq0WLFjV+jpKSEh08eFCGYSg3N1etW7eWw+FQRESE/P39a/x8QGNTtdWqpmbM8GK1KmqNaZo6dOiQkpOTVVZWprFjx+qpp56irQ4A6hGCJ1RyuVxKTExUSkqKhgwZoilTpjBTBU+ktnbSg7VM09RXX32lw4cPa8GCBercubPHz3fu3DkZhqFjx47JZrNp4MCBGjx4sDp27OjRcwMNWVVWq0qmtm51acwYn9oqC41Ydna2EhISdOHCBYWFhWny5MkKCgqyuiwAQDURPOEeBw4cUFJSkrp166a5c+cqgLX0eEKe3kkP1tq9e7eSk5M1a9YsDRo0qFbPfevWLaWlpSk1NVU3b95Ux44d5XA4NHDgQPn6+tZqLUBD8PDVqqamT0/S9OmXNW/ePObqwGNKS0u1ZcsW7d+/XyEhIYqJiVHPnj2tLgsA8JgInnBfZ8+e1eeffy5/f3/Nnz9fbdq0sbokAHXQiRMn9Nlnn2nkyJGaMGGCZXW43W6dPHlShmHo1KlT8vPzU0REhBwOBz+/gGp62GrVHj2uaMWKFXK73Zo3b57HVziicTFNUxkZGdqwYYNKS0s1ZswYDR06lLY6AKjnCJ7wQDdu3FB8fLzy8/M1Z84c9enTx+qSANQh165d0/Lly9WzZ08999xzdWbQ940bN5SSkqK0tDQVFxere/fustvt6t+/Px9egGp40GrVwsJCrVy5UleuXNH06dMVERFhXZFoMK5du6aEhASdP39eAwYM0OTJkz0yLxAAUPsInvBQpaWlWr16tY4fP64JEyZoxIgRdebDJQDrFBUVadmyZfLz89Mrr7xSYzvY1SSn06mjR4/KMAxduHBBzZo1U1RUlOx2u4KDg60uD6jXnE6n1q1bp/T0dA0bNkwTJ05kLiQeS2lpqbZt26a9e/eqVatWiomJUWhoqNVlAQBqEMETHsk0TW3ZskU7duxQeHi4pk+fzuwUoBFzuVz65JNPlJub67Ed7GratWvXZBiGDh06pLKyMvXu3VsOh0OhoaF8WAYek2ma2r9/v9avX6+ePXtqzpw5zIVElZmmqSNHjmjDhg0qKSnR6NGjNWzYMPn4MLgeABoagidUWUZGhtasWaO2bdtq3rx57CoCNELf3sHupZdeUpcuXawuqVrKysp0+PBhGYahrKwsBQcHKzo6WtHR0WrWrJnV5QH10pkzZ/T555+radOmmj9/vlq3bm11SajjcnJylJCQoHPnzql///6aPHkyK1EBoAEjeEK1XLlyRfHx8TJNU3FxcerUqZPVJQGoRXv27NGGDRs0c+bMej3XxTRNXb58WYZh6MiRI3K73RowYIAcDoe6du1KSzFQTXl5eYqPj1dBQYHmzJmj3r17W10S6qCysrLKtrrg4GDFxMSoV69eVpcFAPAwgidUW2FhoVasWKGrV6/qmWeeqfXt0wFY4+TJk/rss880bNgwTZo0yepyakxJSYnS09OVkpKi3NxctWnTRna7XREREfL397e6PKDeKC0t1RdffKETJ05o4sSJGj58OCEuJFWE/ZmZmVq/fr1KSko0atQoDR8+nLY6AGgkCJ7wWJxOp77++msdPHhQw4cP14QJE5iTAjRgOTk5Wr58ubp166Z58+Y1yH/vpmnq7NmzMgxDx44dk4+PjwYOHKjBgwerQ4cOVpcH1AvMhcR3Xb9+XYmJiTpz5oz69u2rqVOn0lYHAI0MwRMem2ma2rt3r5KTk9WrVy/Nnj2b1QFAA1RcXKxly5bJ19dXr7zyivz8/KwuyeNu3bql1NRUpaamqqCgQB07dpTD4dDAgQP5EA1UAXMhUVZWpu3bt2vPnj1q0aKFpk6dqj59+lhdFgDAAgRPeGKnTp3SqlWr1Lx5c8XFxSkkJMTqkgDUEJfLpT//+c/KycnR4sWLG91VarfbrRMnTiglJUWnTp2Sv7+/IiIi5HA4GKAMPMLVq1cVHx8vt9utefPmqXPnzlaXhFpgmqaOHj2q9evXq6ioSCNHjtTIkSNpqwOARozgCTXi+vXrio+PV1FRkebOnauePXtaXRKAJ2Sapr7++mulp6frpZdeUteuXa0uyVI3btyQYRhKT09XcXGxevToIbvdrn79+snb29vq8oA6qbCwUCtXrtSVK1f09NNPKzIy0uqS4EG5ublKTEzU6dOn1bt3b8XExKhly5ZWlwUAsBjBE2rM7du3tWrVKp05c0ZTpkzRkCFDGCoK1GN79+7V+vXrNWPGDD4sfovT6VRmZqYMw9DFixcVGBioqKgo2e12tWjRwurygDrH6XQqISFBaWlpGjp0qCZNmtQg58Q1ZuXl5dqxY4d2796t5s2ba+rUqerbt6/VZQEA6giCJ9Qot9ut5ORk7d27V1FRUYqNjWVpNVAPnTp1Sn/96181dOhQTZ482epy6qzs7GwZhqFDhw6pvLxcffr0kd1uV69evQjegW8xTVP79+/X+vXr1bNnT82ZM0cBAQFWl4UnZJqmjh8/rqSkJBUWFmrEiBEaOXIks/AAAHcheIJHpKen6+uvv1bHjh01b948NWvWzOqSAFTRnR3sunbtqri4OFYmVEFpaakOHz4swzCUnZ2t4OBg2e12RUVF8fMP+JYzZ85o1apVCggIUFxcnNq0aWN1SXhMeXl5SkpK0smTJ9WrVy/FxMSoVatWVpcFAKiDCJ7gMRcvXtSKFSvk7e2t+fPnq3379laXBOAR7uxg5+Pjo4ULFzaKHexqkmmaunz5sgzDUEZGhiRpwIABstvt6tq1K6ugAFUEFvHx8bp586bmzJnDTmf1THl5uXbu3Kldu3YpMDCwsq2On28AgAcheIJHFRQUKD4+XtevX9fMmTM1YMAAq0sC8AAul0t/+ctflJWVpcWLFzMQ9gkVFxcrPT1dKSkpysvLU9u2bWW32xUREUGgh0avtLRUq1ev1vHjxzVhwgSNGDGC4KIeuNNWd+vWLQ0fPlyjRo2irQ4A8EgET/C48vJyrVmzRkeOHNHo0aM1duxY3lwCdYxpmlq3bp3S0tL04osvqlu3blaX1GCYpqkzZ84oJSVFx44dk4+Pj8LDwzV48GBWgqJRM01TW7Zs0Y4dOxQeHq7p06cTYtRRN27cUFJSkk6cOKHQ0FDFxMQoJCTE6rIAAPUEwRNqhWma2rlzpzZv3qz+/ftr5syZatKkidVlAfhf+/fvV2JioqZPn67o6Giry2mwCgoKlJqaqtTUVN26dUudOnWSw+FQWFgYH7jRaB05ckRffvml2rRpo7i4OAUFBVldEv6X0+nUrl27tHPnTjVt2lRTpkxR//79uYAIAKgWgifUqmPHjmn16tVq2bKl4uLiFBwcbHVJQKN3+vRp/eUvf9FTTz2lKVOmWF1Oo+B2u3X8+HGlpKTo9OnT8vf3V2RkpBwOB6sI0ChdvXpV8fHxcrlcmjdvnrp06WJ1SY3eyZMnlZiYqJs3b2rYsGEaPXo0Fw0BAI+F4Am1Ljs7W/Hx8SorK9Nzzz1HSw9goevXr2vZsmXq0qWL5s+fzw52FsjLy5NhGEpPT1dJSYl69Oghh8Ohvn37ytvb2+rygFpTVFSklStX6vLly5o2bZqioqKsLqlRys/PV1JSko4fP66ePXsqJiZGrVu3trosAEA9RvAESxQXF+vzzz/XhQsXFBsbK7vdbnVJQKNTUlKiZcuWyWazaeHChfL397e6pEbN6XQqMzNThmHo4sWLCgwMVHR0tOx2O61HaDRcLpcSEhKUmpqqp556SpMnTyYQryVOp1O7d+/Wjh07FBAQoClTpmjAgAG01QEAnhjBEyzjcrmUlJQkwzA0ePBgTZkyhav7QC359g52ixYtUqtWrawuCd+SlZUlwzB0+PBhlZeXq0+fPnI4HAoNDeVDIBo80zR14MABJSUlqUePHnr22WcVEBBgdVkN2qlTp5SYmKj8/HwNHTpUY8aMoa0OAFBjCJ5gOcMwlJiYqG7duunZZ59V06ZNrS4JaPASEhKUkpKi73//++revbvV5eABSktLdejQIRmGoWvXrqlly5ay2+2KioriZyUavLNnz+rzzz9XQECA4uLi1KZNG6tLanBu3ryp9evX6+jRo+revbtiY2N5ngEANY7gCXXCuXPntHLlSvn7+ysuLk5t27a1uiSgwTpw4IASEhL09NNP0+ZaT5imqUuXLskwDB05ckSSNGDAADkcDnXp0oVVUGiwbty4ofj4eOXn52vOnDnq06eP1SU1CE6nU3v27NH27dvl7++vKVOmKCwsjJ8lAACPIHhCnfHtN5ezZ89W3759rS4JaHDOnDmjTz/9VIMHD1ZMTIzV5eAxFBcXKy0tTSkpKbpx44batm0rh8OhQYMGyc/Pz+rygBpXWlqqL7/8UseOHdOECRM0YsQIApIncPr0aSUmJiovL6+yrY6fHQAATyJ4Qp1SWlqq1atX6/jx47y5BGpYbm6uli1bpk6dOul73/seA3vrOdM0debMGRmGoePHj8vX11fh4eFyOBxq37691eUBNco0TW3dulXbt2/XwIED9cwzz8jX19fqsuqVgoICrV+/XpmZmerWrZtiY2NZYQ4AqBUET6hzTNPUli1btGPHDoWHh2v69Om8uQSqqaREKiiQgoKkgADp9u3bWrZsmSRp0aJF7GDXwBQUFCglJUWpqakqLCxU586d5XA4FBYWJh8fH6vLA2rMkSNHtGbNGrVu3Vrz5s1TixYtrC6pznO5XNq7d6+2bdsmPz8/TZo0SeHh4VzYAwDUGoIn1FkZGRlas2aN2rZtq3nz5rGdOFAFO3dK77wjrVkjud2SzSbNmGFq4MANatYsXYsWLVJISIjVZcJDXC6XTpw4IcMwdObMGQUEBCgyMlIOh4OdC9FgZGVlKT4+Xk6nU/PmzVOXLl2sLqnOOnPmjBITE5Wbm6shQ4Zo7NixXHgAANQ6gifUaVevXlV8fLzcbrfmzZunzp07W10SUGe99570+uuSt7fkdH5zu7e3Wy6Xl956K1f/+q+trSsQtSo3N1eGYSg9PV23b99Wz5495XA41LdvX9osUe8VFRVp5cqVunTpkp5++mlFRUVZXVKdUlBQoA0bNujIkSPq2rWrYmNj1a5dO6vLAgA0UgRPqPMKCwu1YsUKXb16VdOnT1dERITVJQF1zs6d0ujR0sN+ont5STt2SCNG1F5dsF55ebkyMzNlGIYuXbqk5s2bKzo6WtHR0awkRb3mcrmUkJCg1NRUDRkyRFOmTGn0oarL5dK+ffu0bds2+fr6atKkSRo0aBBtdQAASxE8oV5wOp1at26d0tPTNXz4cE2YMKHRv7kEvm32bGnt2rtXOn2Xj480Y4a0alXt1YW6JSsrSwcOHNDhw4fldDrVt29fORwO9ezZkw+mqLcOHDigpKQkde/eXc8++6wCAgKsLskS586dU0JCgq5fv67Bgwdr3LhxtNUBAOoEgifUG6Zpat++fdqwYYNCQ0M1Z84c3lABqhgkHhhYMdPpUWw2qbCwYuA4Gq/S0lIdOnRIhmHo2rVratWqlex2uyIjI9W0aVOrywOq7dy5c1q5cqX8/f0VFxfXqHZru3XrlpKTk3X48GF16dJFsbGx7GwJAKhTCJ5Q75w6dUqrVq1SYGCg5s+fz6BkNHrZ2VJ1PmNkZUmM+oBUEehfvHhRhmEoMzNTkhQWFiaHw6HOnTuzCgr1yo0bNxQfH6/8/HzNnj1bffv2tbokj3K73dq3b5+2bt0qHx8fTZo0SREREfy7BQDUOQRPqJdyc3P12WefqaioSM8++6xCQ0OtLgmwDCueUBOKioqUnp4uwzCUn5+vdu3ayeFwaNCgQWrSpInV5QFVUlZWptWrV+vYsWMaP368Ro4c2SCDmPPnzyshIUE5OTlyOBwaN25co20xBADUfQRPqLdu376tv/3tbzp9+rQmT56sp556qkG+uQSqghlPqCmmaer06dMyDEMnTpyQr6+vBg0aJIfDwa5YqBdM09S2bdu0bds2hYWFacaMGfL19bW6rBpRWFio5ORkHTp0SJ06ddK0adPUoUMHq8sCAOChCJ5Qr7ndbm3cuFF79uxRZGSkpk2bJh8fH6vLAmodu9rBE27evKmUlBSlpaWpsLBQXbp0kcPh0IABA/hZizovMzNTX375pVq3bq158+apRYsWVpf02Nxutw4cOKAtW7bIZrNp4sSJioqK4oIbAKBeIHhCg5Cenq6vv/5aHTt21HPPPafAwECrSwJq3fvvS6+9Jnl7373yycdHcrmkJUukV1+1rj7UXy6XS8ePH5dhGDp79qyaNm2qyMhI2e12tWrVyurygAfKyspSfHy8nE6nnnvuOXXt2tXqkqrtwoULSkhIUHZ2tux2uyZMmEBbHQCgXiF4QoNx6dIlrVixQjabTXFxcSw9R6O0a5f07rvS6tUVM59sNmnWLOmNN1jphJpx/fp1paSkKD09Xbdv31ZoaKgcDof69Okjm81mdXnAPYqKivT555/r4sWLmjZtmqKjo60uqUqKioqUnJysgwcPqmPHjpo2bZo6duxodVkAAFQbwRMalIKCAsXHxysnJ0czZ85UWFiY1SUBligpkQoKpKAgBonDM8rLy3XkyBEZhqHLly8rKChI0dHRio6OVvPmza0uD7iLy+VSYmKiUlJSNGTIEE2ePFne3t5Wl3VfbrdbhmFo8+bNstlsmjBhgqKjo2mrAwDUWwRPaHDKy8v11VdfKSMjQ6NHj9bYsWN5swYAHnT16lUZhqHDhw/L6XSqX79+cjgc6tGjBz9/UaccOHBASUlJ6tatm5599lk1bdrU6pLucvHiRSUkJCgrK0vR0dGaMGFCnasRAIDqInhCg2Sapnbu3KnNmzerX79+mjVrFtuBA4CH3b59W4cOHZJhGMrJyVFISIjsdrsiIyOZSYM649y5c1q5cqX8/f0VFxentm3bWl2SioqKtHHjRqWnp6tDhw6KjY1V586drS4LAIAaQfCEBu348eP64osvFBwcrPnz5ys4ONjqkgCgwTNNUxcuXJBhGMrMzJTNZlNYWJgcDoc6derEKihYLj8/X/Hx8bpx44ZmzZqlfv36WVKH2+1WSkqKNm/eLEmVbXXMSwMANCQET2jwrl27pvj4eJWWlmru3Lnq3r271SUBQKNRVFSktLQ0paSkKD8/X+3bt5fD4VB4eDgrUWGpsrIyffnllzp69KjGjRunUaNG1WooevnyZa1bt05Xr15VZGSkJk6cqGbNmtXa+QEAqC0ET2gUiouL9fnnn+vChQuKjY2V3W63uiQAaFTcbrdOnz4twzB04sQJ+fn5adCgQXI4HFVqdWJgPjzBNE1t27ZN27ZtU1hYmJ555hmPB6LFxcXatGmTUlNT1b59e8XGxqpLly4ePScAAFYieEKj4XK5tH79eh04cECDBw/WlClT6uyONgDQkOXn5ys1NVWpqakqKipS165d5XA41L9/f/n4+Nx17M6d0jvvSGvWSG63ZLNJM2ZIb74pjRhh0QNAg3P06FGtXr1aISEhiouLU4sWLWr8HKZpKjU1VZs2bZLb7db48ePlcDhoqwMANHgET2h0DMNQYmKiunbtqrlz57JbDABYxOVy6dixYzIMQ+fOnVPTpk0VFRUlu92uli1b6r33pNdfl7y9Jafzm+/z8ZFcLmnJEunVV62rHw1Ldna24uPjVVZWpnnz5qlr1641dt9XrlzRunXrdOXKFdrqAACNDsETGqU7O9r4+flp/vz5dWJHGwBozHJycpSSkqL09HSVlpbK5Rqm3/xmkkzzwTN3vLykHTtY+YSaU1xcrJUrV+rixYs10ppfUlKiTZs2KSUlRe3atVNsbGyNBloAANQHBE9otG7cuKH4+Hjl5+dr9uzZ6tu3r9UlAUCjV15eroyMDC1cGKyDB7vK7X5wS7SPT0Xb3apVtVggGjyXy6WkpCQZhvHYrfmmaSotLU0bN26U2+3WuHHjNHjwYNrqAACNEsETGrWysjKtXr1ax44d0/jx4zVy5Ei2+QYAi5WUSIGBFTOdHsVmkwoLGTiOmvew1vyHDbu/evWq1q1bp8uXL2vQoEGaNGmSAgMDa7l6AADqDoInNHqmaWrr1q3avn27Bg4cqGeeeUa+vr5WlwUAjVZ2ttS+fdWPz8qS2rXzXD1ovM6fP6+VK1eqSZMmiouL08mT7R447D46ukSbN2+WYRhq27atYmNj1a1bN6sfAgAAliN4Av7XkSNH9OWXX6pNmzaKi4tTUFCQ1SUBQKNUnRVPXl6mTpy4ol69Onm+MDRK+fn5io+PV2Jid61dO0Xe3l7fGXZvyuWSZs5M1uDBKRo7dqyGDBnCzrkAAPwvgifgW65evar4+Hi53W7NmzdPnTt3trokAGiUZs+W1q69eze77/L2diss7LRmz/6rOnToIIfDoYEDB6pJkya1VygahS1byjV+vI+kh7Xjm9qwoUSTJrFbLgAA30bwBHxHYWGhVq5cqStXrujpp59WZGSk1SUBQKOzc6c0erT5yF3ttm1zq127UzIMQydPnpSfn58iIiLkcDjUpk2bWqwYDVlFEGrK6Xzw65Fh9wAA3B/BE3AfTqdT69atU3p6uoYNG6aJEyeyEw0A1KLr169r8WJDX345RT4+uusDv4+P5HJJS5ZIr776zffk5+crJSVFaWlpKioqUrdu3eRwONS/f3/anvDYGHYPAMCTIXgCHsA0Te3bt08bNmxQaGio5syZI39/f6vLAoAGr6SkRMuWLZPNZlP//ou0ZImfVq/+ZpjzrFnSG29II0bc//tdLpeOHj0qwzB0/vx5NWvWTFFRUbLb7QoODq7Vx4L6j2H3AAA8GYIn4BFOnz6tVatWqVmzZpo/f75CQkKsLgkAGiyXy6W//OUvysrK0qJFi9SqVStJD9++/mFycnJkGIYOHjyo0tJS9e7dWw6HQ7169WIlK6rkxo3bCgnxe2jb5x2seAIA4F4ET0AV5ObmKj4+Xrdu3dKzzz6rXr16WV0SADRI69atU2pqqr7//e+re/fuNXa/ZWVlysjIkGEYunr1qlq0aCG73a6oqCgFBgbW2HnQcJimqcOHDys5OVkffDBNx4/3kcv14LCSGU8AANwfwRNQRbdv39bf/vY3nT59WpMmTdLQoUPl5fXoq58AgKo5cOCAEhIS9PTTT8tut3vsPJcvX5ZhGMrIyJDb7Vb//v3lcDjUrVs3fq5DknTt2jUlJCTo/PnzGjBggJo3j1FsbKAe9q7Zy0vasePBLaAAADRWBE9ANbjdbm3atEm7d+9WZGSkpk2bJh8fH6vLAoB678yZM/r00081ZMgQTZ06tVbOWVJSooMHD8owDOXm5qp169ZyOByKiIhgpl8jVVpaqm3btmnv3r1q1aqVYmJiFBoaKkl6/33ptdckb2/J6fzmex407B4AAFQgeAIew8GDB7V27Vp16NBB8+bNo00DAJ5Abm6uli1bpk6dOul73/terc9eMk1T586dk2EYOnbsmGw2mwYOHKjBgwerY8eOtVoLrGGapo4cOaINGzaopKREo0eP1rBhw+65uLRrl/Tuu6rWsHsAABo7gifgMV26dEkrVqyQzWZTXFycOnToYHVJAFDvlJSUaPny5fLy8tLChQstX2l069YtpaWlKSUlRQUFBerYsaMcDocGDhwoX19fS2uDZ+Tk5CghIUHnzp1T//79NWXKFLVo0eKh3/O4w+4BAGiMCJ6AJ1BQUKAVK1bo2rVrmjlzpsLCwqwuCQDqDbfbrb/+9a+6fPmyFi1aVKd2DXW73Tp58qQMw9CpU6fk5+eniIgIORwOtWnTxuryUAPKysoq2+qCg4MVExPD5iEAAHgAwRPwhMrLy7V27VodPnxYo0aN0rhx4xhOCwBVkJiYKMMw9MILL6hHjx5Wl/NAN27cUEpKitLS0lRcXKzu3bvL4XCoX79+8vb2tro8VJNpmsrMzNT69etVUlKiUaNGafjw4cxsBADAQwiegBpgmqZ27dqlTZs2qW/fvpo1a5b8/PysLgsA6izDMLRu3TpNmzZNDofD6nKqxOl06ujRozIMQxcuXFCzZs0UFRUlu92u4OBgq8tDFVy/fl2JiYk6c+aM+vbtq6lTp/J3BwCAhxE8ATXo+PHj+uKLLxQcHKy4uDi1bNnS6pIAoM45e/asPv30U9ntdsXGxlpdzmO5du2aDMPQoUOHVFZWpt69e8vhcCg0NLTWh6Pj0crKyrR9+3bt2bNHLVq00NSpU9WnTx+rywIAoFEgeAJq2LVr1xQfH6/bt2/rueeeU/fu3a0uCQDqjLy8PC1dulQdO3bU888/X+9DmrKyMh0+fFiGYSgrK0vBwcGKjo5WdHS0mjVrZnV5jZ5pmjp69KjWr1+v4uJijRw5UiNGjKCtDgCAWkTwBHhAcXGxVq1apfPnzysmJqbetJEAgCfdvn1by5cvl2maWrhwoQIa0HZgpmnq8uXLMgxDR44ckdvt1oABA+RwONS1a1dm/1kgNzdXiYmJOn36tPr06aOpU6eyEhkAAAsQPAEe4nK5tGHDBu3fv18Oh0NTp05lCC2ARqsu72BX00pKSpSenq6UlBTl5uaqTZs2stvtioiIkL+/v9XlNXjl5eWVbXXNmzfX1KlT1bdvX6vLAgCg0SJ4AjwsJSVFCQkJ6tq1q+bOnaumTZtWfq2kRCookIKCpAZ04R8A7pGUlKT9+/frhRdeUM+ePa0up1aYpqmzZ8/KMAwdO3ZMPj4+GjhwoAYPHqwOHTpYXV6DY5qmjh8/rqSkJBUWFmrEiBEaOXKkfH19rS4NAIBGjeAJqAXnz5/XypUr1aRJE82fP18nTrTVO+9Ia9ZIbrdks0kzZkhvvimNGGF1tQBQs1JTU7V27VrFxMRoyJAhVpdjiVu3bik1NVWpqakqKChQp06d5HA4FBYWRjBSA/Ly8pSYmKhTp06pV69eiomJUatWrawuCwAAiOAJqDX5+fmKj49XYmJ3rV07Rd7eXnI6v/m6j4/kcklLlkivvmpdnQBQk86dO6c///nPio6O1rRp06wux3Jut1snTpxQSkqKTp06JX9/f0VERMjhcKh169ZWl1fvlJeXa+fOndq1a5cCAwMr2+qYqQUAQN1B8ATUoi1byjV+vI+kB78h9vKSduxg5ROA+u/GjRtaunSp2rdvr+eff545d99x48YNGYah9PR0FRcXq0ePHnI4HOrbty/PVRXcaau7deuWhg8frlGjRrF6DACAOojgCahFs2dLa9eacjofHDz5+FS03a1aVYuFAUANKy0t1fLly+VyubRo0aIGtYNdTXM6ncrMzJRhGLp48aICAwMVFRUlu92uFi1aWF1enXPjxg0lJSXpxIkTCg0NVUxMTIMeVg8AQH1H8ATUkpISKTCwYqbTo9hsUmEhA8cB1E9ut1vx8fG6cOGCFi1aRAtZNWRnZ8swDB06dEjl5eXq06ePHA6HQkNDG337WHl5uXbt2qWdO3eqWbNmmjp1qvr169fonxcAAOo6gieglmRnS+3bV/34rCypXTvP1QMAnrJ+/Xrt27dPzz//vEJDQ60up14qLS3V4cOHZRiGsrOzFRwcLLvdrqioKDVr1szq8mrdiRMnlJSUpJs3b2rYsGEaPXq0mjRpYnVZAACgCgiegFrCiicAjcGdHeymTp2qp556yupy6j3TNHX58mUZhqGMjAxJ0oABA+RwONSlS5cGv9onPz9fSUlJOn78uHr27KmYmBhW0AEAUM8QPAG1qGLGk+7aze67mPEEoL46f/68PvnkE0VGRurpp59u8KFIbSsuLlZ6erpSUlKUl5entm3bym63KyIiQn5+flaXV6OcTqd2796tHTt2KCAgQFOmTNGAAQN4TQEAUA8RPAG1aOdOafRo6WH/6tjVDkB9dOPGDS1btkxt27bVCy+8wK5sHmSaps6ePSvDMHTs2DH5+PgoPDxcgwcPVvvq9HTXUadOnVJiYqLy8/M1dOhQjRkzhrY6AADqMYInoJa9/7702muSt/fdK598fCSXS1qyRHr1VevqA4DqKi0t1QcffKDy8nItWrRITZs2tbqkRqOgoECpqalKTU3VrVu31KlTJzkcDoWFhcnX19fq8qolPz9f69ev17Fjx9S9e3fFxsaqTZs2VpcFAACeEMETYIFdu6R335VWr66Y+WSzSbNmSW+8wUonAPWL2+3WihUrdP78eS1cuJCgwCJut1snTpyQYRg6ffq0AgICFBERIYfDoZCQEKvLeyin06k9e/Zo+/bt8vf315QpUxQWFkZbHQAADQTBE2ChkhKpoEAKCmKQOID6KTk5WXv27NH8+fPVu3dvq8uBpLy8PBmGofT0dJWUlKhHjx5yOBzq27dvnWuBPH36tBITE5WXl1fZVtfQ5lUBANDYETwBAIDHkp6erjVr1mjy5MkaNmyY1eXgO5xOpzIzM2UYhi5evKjAwEBFR0fLbrcrKCjI0tpu3rypDRs2KDMzU926dVNsbKzatm1raU0AAMAzCJ4AAEC1XbhwQZ988okGDRqk6dOn0xZVx2VlZckwDB0+fFjl5eXq27ev7Ha7QkNDa/XvzuVyVbbV+fn5adKkSQoPD+f1AwBAA0bwBAAAHuq7bcH5+flaunSp2rRpo+9///t1rn0LD1ZaWqrDhw/LMAxlZ2erZcuWstvtioqK8vhQ+DNnzighIUF5eXkaMmSIxo4dK39/f4+eEwAAWI/gCQAA3NfOndI770hr1nyzEcL06W716rVGXbpc0OLFi9nBrp4yTVOXLl2SYRg6cuSIJGnAgAFyOBzq0qVLja5AKigo0IYNG3TkyBF17dpVsbGxateuXY3dPwAAqNsIngAAwD3ee096/XXJ21tyOr+53WZzy+320u9/f0s/+Ym1c4JQM4qLi5Weni7DMHTjxg21bdtWDodDgwYNeuSg74dtkuFyubRv3z5t3bpVTZo00aRJkzRo0CDa6gAAaGQIngAAwF127pRGj5Ye9g7By0vasUMaMaL26oJnmaapM2fOyDAMHT9+XL6+vgoPD5fD4VD79u3vOvZ+q+FmzJDefLPiNXH27FklJibq+vXrGjx4sMaNG0dbHQAAjRTBEwAAuMvs2dLatXevdPouH5+KoGHVqtqrC7WnoKBAqampSk1N1a1bt9S5c2c5HA6FhYVp6VKf+66G8/GRXC5TixalqVOnterSpYtiY2PvCa0AAEDjQvAEAAAqlZRIgYEVq1gexWaTCgvvbbFCw+FyuXTixAkZhqEzZ84oK6uX3n//e5Ie1i5n6sMPT+mll3rRVgcAAAieAADAN7KzpeosUMnKkpgT3Tjk5uZqxgyn9uxpLbf7wTsZ+viYmjHDi9VwAABAEsETAAD4FlY84UF4bQAAgMdhs7oAAABQdwQEVMxu8vF5+HE+PtKsWQQLjUlBQdVCJ6niuIICz9YDAADqB4InAABwlx//WHK5Hn6MyyW98Ubt1IO6IShIstmqtlDey8utw4d3qbCw0MNVAQCAuo7gCQAA3GXkSGnJEsnL696VTz4+FbcvWSKNGGFNfah9hYWFSkparT59jslme/iyJ29vU0OHZmnfvq1699139fnnn+vs2bNiugMAAI0TM54AAMB97dolvfuutHp1ReuUzVbRXvfGG4ROjYXb7db+/fu1detW2Ww2hYTM0OLFfWSaD96tzstL2rFDio4u0aFDh2QYhq5fv66QkBDZ7XZFRESoadOmtfgoAACAlQieAADAQ5WUVMzrCQpiplNjcv78eSUkJOjatWtyOBwaP368AgIC9P770muvSd7ektP5zfE+PhUtmEuWSK+++s3tpmnqwoULMgxDR48elSSFhYXJbrerS5cu/z97dx7WdL7nif7NKsqiiOK+4wIiAomWKyqCCsoOIXSdqjpVpT3VVdM9U6f69pye6blPzzM9fWfmubeqe2a6qvpg7V2HJIBsAi4oKuCasAiKoqKisggKIhCWJL/7B62lpWyS5JeE9+ufekpjvh/QhN/vk88CO7uhk1hERERk/Zh4IiIiIqLnurq6cPz4cVy+fBnz5s1DZGQk5s6d+9Jj3rQarru7G5WVldBoNGhvb4e3tzckEgkCAgLg4uJi4q+MiIiIxMDEExERERG90lYXFhaGoKCgYSuS3rQaThAE1NfXQ6PR4Nq1a3B0dIS/vz+kUukrSS4iIiKybkw8EREREU1wd+/eRWFhIVpaWiCRSLBz505MNlNf5dOnT1FRUQGNRoPOzk7MmTMHUqkU/v7+cHZ2NksMREREZDpMPBERERFNUKNpqzMXg8GAmzdvQqPRoK6uDs7OzggICIBUKsWsWbNEiYmIiIjGj4knIiIiognGYDDg0qVLKC4uHnVbnTl1dHSgvLwcFRUV6OrqwoIFCyCRSODn5wcnJyexwyMiIqIxYOKJiIiIaAJpaGhAQUGBKG11Y6XX63H9+nVoNBrU19fDxcUFgYGBkEgkmDFjhtjhERER0Sgw8UREREQ0AXR1daGoqAhVVVWit9W9icePH0Oj0aCiogJarRaLFy+GRCKBr68vHBwcxA6PiIiIhsDEExEREZENs/S2urHS6XSora2FRqPB3bt34erq+rwKytPTU+zwiIiI6FeYeCIiIiKyUb9uqwsNDcWUKVPEDstoWltboVarUVVVhb6+Pvj4+EAikWDFihWwt7cXOzwiIiICE09ERERENufFtrq5c+di7969VtVWN1YDAwOoqamBRqPBgwcP4O7ujuDgYAQHB8PDw0Ps8IiIiCY0Jp6IiIhEptUCnZ2AhwdgoTOeyUrYWlvdm2hqaoJGo0F1dTUGBgawYsUKSKVSLFu2bEJ9H4iIiCwFE09EREQiKS0FPv8cyMkBDAbA3h6IiQE++wzYvFns6Mja2Hpb3Vj19fWhuroaarUaLS0tmDZtGoKDgxEUFAQ3NzexwyMiIpowmHgiIiISwVdfAZ98Ajg4ADrdL7/u6Ajo9cCXXwIffSRefGQ9Jlpb3VgJgoAHDx5Ao9GgpqYGBoMBvr6+kEgkWLx4MaugiIiITIyJJyIiIjMrLQVCQoDhfgLb2QElJax8oqH9uq1u586dCA4OZiJlGFqtFpcvX4ZarUZbWxu8vLwgkUiwdu3aCV0dRkREZEpMPBEREZlZfDyQl/dypdOvOToOtt1lZJgvLrIebKsbH0EQ0NDQALVajdraWgDA6tWrIZFIsGDBAibviIiIjIiJJyIiIjPSagE3t8GZTiOxtwe6ujhwnH7Btjrj6+7uRmVlJTQaDdrb2+Ht7Q2JRIKAgAC4uLiIHR4REZHVY+KJiIjIjFpagNmzR//45mZg1izTxUPWgW11picIAurr66HRaHDt2jU4OjrC398fUqmUyT0iIqJxYOKJiIjIjFjxRL+m1QKdnYCHx+v/rl9sqwsODsbOnTvZVmdiT58+RUVFBTQaDTo7OzFnzhxIpVL4+/vD2dlZ7PCIiIisChNPREREZja6GU8CYmLsOOPJhpWWAp9/DuTkDCYi7e0H53p99tngUPlft9VFRkZi3rx5Yoc9oRgMBty8eRNqtRo3btzApEmTEBAQAIlEglksRSQiIhoVJp6IiIjMbDRb7QABhw8/wd6908wUFZnTV18Bn3wCODi8nIB0dAT0egH/1/91B56eyudtdUFBQbC3txcvYEJHRwfKy8tRUVGBrq4uLFiwABKJBH5+fnBychI7PCIiIovFxBMREZEIvv4a+PjjoRMPyclnsHbtOSQkJGD58uXiBUpGN9rE43//72X48z8PZludhdHr9bh+/To0Gg3q6+sxefJkrF27FhKJBDNmzBA7PCIiIovDxBMREZFIysqAL74AsrJ+abWKiwM+/RSQSvtw6NAh1NXVISwsDJs2beIgaRsxmlZLBwcBsbFstbR0jx8/hkajQUVFBbRaLRYvXgypVIpVq1bBwcFB7PCIiIgsAhNPREREIhtquLQgCDh58iRKS0sREBCAqKgoODo6ihcojRuHy9smnU6H2tpaqNVqNDQ0wNXVFUFBQQgODoanp6fY4REREYmKiSciIqIxGmkLmbFVV1cjNzcXs2bNQnJyMtzd3U1/KJlESwswe/boH9/cDHCGtXVpbW2FWq1GVVUV+vr64OPjA4lEghUrVnBOFxERTUhMPBEREY3SSFvITKmxsREKhQKCIEAul3O7mZUarHgSYDCM3DbJiifrNjAwgJqaGmg0Gjx48ADu7u4IDg5GcHAwPDw8xA6PiIjIbJh4IiIiGoXht5ABX34JfPSRaWPo6uqCUqlEU1MToqOjERAQYNoDyagMBgPUajU++GAqamt9YDAMPQPI0XEwqckZT7ahqakJGo0Gly9fhk6nw4oVKyCVSrFs2TLObiMiIpvHxBMREdEIRrOFzM4OKCkxfeWTTqdDfn4+KisrsWnTJuzcuZPtO1bg3r17KCgoQHNzM1xcwvDXf70JgjBcwkFASQmwZQuTErakr68P1dXVUKvVaGlpwbRp0xAcHIygoCC4ubmJHR4REZFJMPFEREQ0gtFsITNnhYogCDh//jyOHz8OHx8fxMfHw8XFxfQH05h1d3ejqKgIlZWVmDt3LiIjIzFv3jx8/TXw8cevq6AToNMBe/fm47e/7UVMTAycnJzE+wLIJARBwIMHD6DRaFBTUwODwQBfX19IJBIsXryYVVBERGRTmHgiIiIahiVvIbt58yYyMjLg7u4OuVwOLy8v8xxMI3rWVnfy5EnY29tj586dCAoKeqk6rawM+OILICvrl5lhcXHAp58Cnp5XkZ2djRkzZiA5ORlTp04V8ashU9JqtaiqqoJGo0FbWxu8vLwgkUiwdu1aTJkyRezwiIiIxo2JJyIiomFY+hayR48eIS0tDd3d3UhMTMSyZcvMdzi91ottdcHBwdi5c+ewCYShtiQ2NzdDoVBAp9MhOTkZCxYsMEP0JBZBENDQ0AC1Wo2rV6/Czs4Oq1evhlQqxfz581kFRUREVouJJyIiomFYcsXTM729vcjMzMStW7ewe/durF+/njepIhiqrW68z6lUKtHY2Ih9+/YhMDDQOMGSRevu7kZlZSU0Gg3a29vh7e0NiUSCgIAAttUSEZHVYeKJiIhoBKOZ8eTgICA21k60LWQGgwFFRUU4d+4cAgMDsXfvXjg6OooTzATzrK2uuLgYdnZ2CA0NRXBwsNGGvuv1euTn56OiogIbNmxAeHg4B8pPEIIgoL6+HhqNBteuXYOjoyP8/f0hlUoxd+5cscMjIiIaFSaeiIiIRjCarXaAgH/4Bw3+4i8kolYbVVVVIS8vD3PnzoVMJuOmLBMba1vdmxIEARcvXsTRo0exdOlSJCQkYLK5S+tIVE+fPkV5eTnKy8vR2dmJuXPnQiKRwN/fH87OzmKHR0RENCQmnoiIiEZh6C1kgF4v4LPP6uHm9i9YuXIl4uLiMGnSJNFivX//PpRKJezt7SGXyzFnzhzRYrFVL7bVzZkzB5GRkZg/f77Jz62vr0d6ejqmTJmClJQUzJgxw+RnkmUxGAy4efMm1Go1bty4gUmTJiEgIAASiQSzzDlgjoiIaJSYeCIiIps31PDmsRpuC9nmzUBdXR0OHToEDw8PpKSkwNPT03hfxBh1dnZCqVTi4cOHiI2NxerVq0WLxZa82FYHADt37jRqW91oPH78GGlpaXj69CkSEhKwfPlys51NlqWjowPl5eWoqKhAV1cXFixYAIlEgtWrV7PVloiILAYTT0REZLNKS4HPPwdycn5JFMXEAJ99NpgoelPDJbJaW1uhUCig1WqRlJSEJUuWjO+LGIeBgQHk5eWhuroaW7duxY4dOzh0fBxebKsLCgpCWFiYaOvu+/r6cOjQIdTV1SE8PBwbN27k3+0Eptfrcf36dWg0GtTX12Py5MlYu3YtJBIJq+KIiEh0TDwREZFN+uor4JNPhmqNA778EvjoI9OcrdVqkZGRgdu3byMiIgJSqVS0pIAgCCgrK8OJEycsog3QGonVVjcSg8GA4uJilJaWIiAgAFFRUaxyITx69AgajQaVlZXQarVYvHgxpFIpVq1aBQcHB7HDIyKiCYiJJyIisjmjGQZuZweUlIyv8mk4BoMBx44dw4ULFyCRSBARESHqTV9dXR0yMzMxbdo0yOVyUdsArYXBYIBGo8HJkycBiNNWNxrV1dXIzc3FrFmzkJycDHd3d7FDIgug0+lQW1sLtVqNhoYGuLq6IigoCMHBwXz9ExGRWTHxRERENic+HsjLe7nS6dccHQfb7jIyTBtLRUUFDh8+jAULFiApKQmurq6mPXAYra2tSEtLQ29vL2QyGRYvXixaLJbOktrqRqOxsREKhQIAkJycjHnz5okcEVmShw8fQqPRoKqqCn19ffDx8YFEIsGKFSssLpFKRES2h4knIiKyKVot4OY2ONNpJPb2QFfX+AaOj0ZDQwNUKhUcHR0hl8sxe/Zs0x44DK1Wi/T0dNy9exd79uzBunXrRIvFEllqW91oPH36FEqlEs3NzYiOjkZAQIDYIZGFGRgYQE1NDTQaDR48eAB3d3cEBwcjODgYHh4eYodHREQ2ioknIiKyKS0twFjyOs3NgDk2kD958gQKhQKPHj1CbGws/Pz8TH/oEAwGA44ePYqLFy9aRBugJbCWtrqR6HQ6HD58GFVVVdi8eTNCQ0Ot7msg82hqaoJarUZ1dTV0Oh1WrFgBqVSKZcuWcVA9EREZFRNPRERkUyyx4umZgYEB5OTk4MqVK9i2bRu2bdsm6g1eeXk58vPzLaINUEzW1lY3EkEQcP78eRw/fhw+Pj6Ij4+Hi4uL2GGRherr60N1dTXUajVaWlowbdo0SCQSBAYGws3NTezwiIjIBjDxRERENseSZjz9miAIKCkpQXFxMXx9fREbGwtnZ2fzBvGChoYGKJVKODs7Qy6XY5Y5yr8shDW31Y3GzZs3kZGRAXd3d8jlcnh5eYkdElkwQRDw4MEDaDQa1NTUwGAwwNfXFxKJBIsXL2YVFBERvTEmnoiIyOaMZqsdIODMGQFbt4rThnTt2jVkZWXB09MTcrkc06ZNEyUO4OU2wLi4OPj6+ooWiznYSlvdaLS1tUGhUKC7uxuJiYlYtmyZ2CGRFdBqtaiqqoJGo0FbWxu8vLyeV0FNNleJKBER2QwmnoiIyCZ9/TXw8ceAg8PLlU+OjgJ0OmDfvgLIZI+RmJgo2o1US0sLFAoF+vv7IZPJsGjRIlHiAID+/n7k5OTg6tWr2L59O0JCQmyywuH+/fsoKChAU1MTgoKCsHPnTptvMezt7UVGRgbq6+uxe/durF+/3ib/bsn4BEFAQ0MD1Go1rl69Cjs7O6xevRpSqRTz58/nvyMiIhoVJp6IiMhmlZUBX3wBZGUNznyytwfi4oBPPwXmzr2N9PR0TJ48GXK5HDNnzhQlxp6eHqSnp6OhoQGRkZGQSCSixAG83Abo5+eHmJgYUdsAjcnW2+pGYjAYUFRUhHPnziEoKAiRkZFwdHQUOyyyIt3d3aisrIRGo0F7ezu8vb0hlUqxZs0azhAjIqJhMfFEREQWQ6sFOjsBDw/jDvwe6nnb29uRlpaGJ0+eICEhAStWrDDeoWOg1+tx5MgRqNVqrFu3Drt37xZ1y1xtbS2ysrLg5eUFuVyOqVOnihbLeP26rS40NBQSicQm2+pGo7KyEocPH8bcuXMhk8k4PJrGTBAE1NfXQ6PR4Nq1a3B0dIS/vz+kUinmzp0rdnhERGSBmHgiIiLRlZYCn38O5OT8UpkUEwN89hmwebNpz+7r60NWVhauX7+OnTt3YvPmzaK1j6jVahQWFmLRokVITEwUdbPai22AycnJWLhwoWixvKmJ2FY3Gvfv34dSqYS9vT3kcjnmzJkjdkhkpZ4+fYry8nKUl5ejs7MTc+fOhUQigb+/v81USxIR0fgx8URERKL66ivgk09eN4sJ0OuBL78EPvrItDEIgoDi4mKUlJRgzZo1iIqKgpOTk2kPHcKdO3egUqng4uICuVwOb29vUeIABtsAVSoV7t27h7179yI4OFi0WMbixba62bNnY+/evROqrW40Ojs7oVAo0NraitjYWKxevVrskMiKGQwG3LhxAxqNBjdu3MCkSZMQEBAAiUQyoTZlEhHR6zHxREREohnN9jk7O6CkxPSVTwBQU1ODnJwceHt7Izk5GR4eHqY/9DXa29uhUCjQ0dGB+Ph4rFy5UpQ4gME2wMLCQmg0Gqxfvx67d++22DY1ttWNzcDAAHJzc1FTU4OtW7dix44dHBZN49bR0fG8Cqq7uxsLFiyARCLB6tWrOVeMiGiCYuKJiIhEEx8P5OW9XOn0a46Og213GRnmiamxsRFKpRIGgwHJycmiVcr09/cjKysL165dQ2hoKLZs2SJqUuDSpUs4cuQIFi9eLOomwKGwre7NCIKAsrIynDhxAitXrkRcXBwmTZokdlhkA/R6Pa5fvw6NRoP6+npMnjwZa9euhVQqhZeXl9jhERGRGTHxREREotBqATe3wZlOI7G3B7q6jDtwfDhdXV1QKpVoampCVFQU1q5da56Df0UQBJw+fRqnT5+Gv78/oqOjRWsBBIDbtwc3Abq4uCAlJUW0TYAv6u7uxokTJ1BRUYHZs2cjMjISCxYsEDssq3P9+nUcOnQI06ZNg1wuh6enp9ghkQ159OgRNBoNKisrodVqsWTJEkgkEqxatWpUixRMtXiCiIjMg4knIiISRUsLMHv26B/f3AyYc1SITqdDfn4+KisrsWnTJuzcuVO0lq2rV68iOzsbM2bMgFwuF60FEHi5DVDMTYBsqzO+hw8fQqFQoLe3FzKZDIsXLxY7JLIxOp0OtbW1UKvVaGhogKurK4KCghAcHPzaZKeYiyeIiMh4mHgiIiJRWHLF0zOCIODChQs4duwYli1bhoSEBLi4uJg3iH/V3NwMhUIBnU6H5ORkUat6+vr6kJ2djWvXromyCfDFtrrAwECEhYWxrc5ItFot0tPTcffuXezZswfr1q0TOySyUQ8fPoRGo0FVVRX6+vrg4+MDqVSK5cuXw97e3iIWTxARkXEw8URERKIZzYwnBwcBsbF2Zpvx9Dq3bt1CRkYGXF1dkZKSItp8ku7ubiiVSjQ2NmLfvn0IDAwUJQ5gMCl36tQpnDlzxmybANlWZx56vR7Hjh3DxYsXIZFIEBERMap2KKI3MTAwgJqaGmg0Gjx48ADu7u5wctqBf/fvAiEIQye0zbl4goiIxoeJJyIiEs1ottoBAg4evI4PP1xlrrBe69GjR0hLS0N3dzcSExOxbNkyUeLQ6/XIz89HRUUFNmzYgPDwcFHby65cuYLs7GyTbgI0GAwoLy/HiRMnALCtzlw0Gg0KCgqwYMECyGQyTJkyReyQyMY1NTVBrVbj979fjmvXlsNgGDrhae7FE0RE9OaYeCIiIlF9/TXw8cdDtVMI+LM/q4G39yGsW7cOu3fvFrXyore3F5mZmbh16xbCw8OxYcMGUTbNCYKAixcv4ujRo1i6dCkSEhJE3TLX1NQEhUJhkk2AbKsT1927d6FSqeDs7Ay5XI5Z5hy0RhPSYBu2AINh5PdWsdqwiYhobJh4IiIi0ZWVAV98AWRl/TJANi4O+PTTwTYKtVqNwsJCLFy4EElJSaJWXhgMBpw4cQJnz55FYGAg9u7dC0dHR1Fiqa+vR3p6OlxdXSGXyzFjxgxR4gAGNwGqVCo0NjYaZRNgT08PioqK2FZnATo6OqBQKPD48WPEx8dj1Spxqw/Jtln64gkiIho7Jp6IiMhiDLcy+8XKi5SUFHh7e4sT5L+6fPkycnNzMWfOHCQnJ8PNzU2UOB4/fgyFQoHOzk4kJCRg+fLlosQBvLwJcOPGjQgLCxtzOxzb6ixTf38/srOzUVtbi+3btyMkJESUaj+yfdaweIKIiMaGiSciIrIazyov2tvbER8fj5UrV4oaz4MHD6BQKGBvb4/k5GTMnTtXlDj6+vpw6NAh3LhxA2FhYdi4caNoSYEX2wBftwlwuOQi2+osmyAIOHPmDE6dOgU/Pz/ExMTA2dlZ7LDIBg0unhCg0w39PsYZT0RE1oOJJyIisir9/f3IysrCtWvXEBoaii1btohaedHZ2QmlUomHDx8iJiYG/v7+osRhMBhQXFyM0tJSrF27Fvv27ROtBRB4dRNgba0XPv8cyMn5pZ0yJgb47DMgKIhtddaktrYWWVlZ8PLyglwux9SpU8UOiWxMSYmAkBAA4FY7IiJbwMQTERFZHUEQcPr0aZw+fRqrV69GTEwMnJycRItnYGAAeXl5qK6uxpYtWxAaGipaMqy6uhq5ubmYNWsWkpOT4e7uLkocwOAmwB9/TMfRoytx7Nh2ODjY/WqAvACdDoiNPYYNGyqxY8cOSKVSttVZgZaWFqSlpWFgYADJyclYuHCh2CGRDTl79iz+/u8fo6Bg72veNwC9HvjyS+Cjj8SLkYiIRo+JJyIislpXr15FdnY2ZsyYgeTkZFErLwRBwNmzZ1FUVISVK1ciLi4OkyZNEiWWxsZGKBQKAEBycjLmzZtn9hhKS4HPPweyswUIwkhJOAHHj/ciLIyDWqxJd3c30tPTce/ePezduxfBwcFih0Q24MaNG0hLS8OmTZsweXLYsIsniIjIOjDxREREVq25uRkKhQI6nQ7Jycmit2jV1dUhMzMTU6dORUpKCjw9PUWJ4+nTp1AqlWhpaUF0dDTWrFljtrO/+gr45BPAwQEvVSoMhbNarJder0dhYSE0Gg3Wr1+P3bt3v1KxNtxcL6IXtbW14eDBg1i0aBGSk5Of/1vivyEiIuvGxBMR0QRmKxfz3d3dUKlUePDgAfbu3YugoCBR42ltbYVCoYBWq0VSUhKWLFkiShw6nQ6HDx9GVVUVNm/ejNDQUJO3sZWWAiEhwFivLridyrpdunQJhYWFWLJkCRITEzF58uTnVW+vm+vFahX6Na1Wi4MHD8LBwQEffvihaBWjRERkfEw8ERFNQLZ4Q6jX65Gfn4+Kigps2LAB4eHhos4K0mq1yMjIwO3bt7Fnzx6sW7dOlLlPgiDg/PnzOH78OHx8fJCQkGDSG7rBbVSjq3T6teZmYNYs48dE5nH79m2kp6fDxcUFvb3v4/e/d3+l6o3zeeh1DAYDfv75ZzQ1NeHAgQOiVYoSEZFpMPFERDTBDNUGZQs3hIIg4NKlSzhy5AiWLl2KhIQETBaxhMZgMODYsWO4cOECgoODERkZCQcHB1FiuXnzJjIyMuDu7o6UlBRMnz7d6GdotYCb22Ayc6xY8WQb2tvb8Xd/dwqffx4LbiSj0SosLMSlS5fwzjvviFYhSkREpsPEExHRBDKaNihbuCGsr69Heno6pkyZgpSUFMyYMUPUeCoqKnD48GHMnz8fMpkMrq6uosTR1tYGhUKB7u5uJCUlYenSpUZ9/pYWYPbssf85zniyLbGxeuTl2cFgGLrikH/n9Ex5eTny8vIQGRmJdevWiR0OERGZABNPREQTyGjaoGzlhvDx48dQKBTo7OxEQkICli9fLmo8DQ0NUKlUcHR0hFwux+w3ydAYQW9vLzIyMlBfX4/du3dj/fr1RmsBHKx4EmAwjO35bCHZSYPGUvXGKjdqaGjADz/8gKCgIOzbt0/scIiIyESYeCIimiAm4g1hX18fDh06hLq6OoSHh2Pjxo2izFl65smTJ1AoFHj06BFiY2Ph5+cnShwGgwFFRUU4d+4cgoKCEBkZCUdHx3E9Z09PD06cOIG/+isf1NWtHLba5RlbaO+kl4216o1zvSaujo4OpKamwtvbG7/5zW9Ea0MmIiLTY+KJiGiCmKg3hAaDAcXFxSgtLUVAQACioqLGnWQZj4GBAeTk5ODKlSvYtm0btm3bJloyrLKyEocPH8bcuXORnJz8Ri2ABoMB5eXlOHnyJAwGA6ZPj8ZHH/lCEIb/muzsBMTH2+HTT1npZEsmYoKbxq6/vx/ffvst+vr6cODAAUyZMkXskIiIyISYeCIimiAm+g1hdXU1cnNzMWvWLCQnJ8Pd3V20WARBQElJCYqLi+Hr64vY2Fg4OzuLEsv9+/ehVCphb28PuVyOOXPmPP89rRbo7AQ8PF7/b+HBgwcoKChAY2MjAgMDERYWBldXV3z9NfDxx68fYK/TCYiJOQuJ5BxSUmLh4+Njhq+SzGkitfTS2AmCAJVKhfr6enz44Yfw9vYWOyQiIjIx8fZMExGRWU2ePHijN1Kxj4ODgLg420o6AcCaNWvw/vvvo7OzE6mpqXjw4IFosdjZ2SEkJATJycm4efMmvv32W3R0dIgSy/z583HgwAG4urri22+/xZUrV1BaOpg8cHMbrJJzcxv8/7KywT/T09ODvLw8HDx4EAaDAR988AFiYmKeV0x99NHgzKaYmMEkJjD435gYoLTUDgqFBMuWzcUf//hHnDt3DvwMzLb87neDLZTD0euBTz81TzxkWU6dOoVr164hPj6eSSciogmCFU9ERBPIaLbaAQK+/LIaH320RtR5SKby9OlTqFQqNDU1ITo6GgEBAaLG09LSAoVCgf7+fshkMixatEiUOAYGBpCbm4vvvnNBfn7kv1Yn/fL3PziPScB/+A8N8PRUwmAwIDQ0FFKpFPb2Q3+ONVTVlMFgwMmTJ1FWVoa1a9di3759orZAknENV/XGuV4T15UrV5CRkYHQ0FBs3bpV7HCIiMhMmHgiIppghr8hFPDv/t11TJumtIh5SKai0+lw+PBhVFVVYdOmTdi5c+ewyRNT6+npgUqlwr179xAZGQmJRCJKHCUlAkJCAGC4hKOA/+f/KcW//bdBcHNzG/eZly9fRm5uLubMmQOZTCZqCyQZV1kZ8MUXQFbWYIuvvT0QFwfO9Zqgmpqa8O2338LX1xdxcXE2+cEGERG9HhNPREQT0Eg3hDU1NcjJybGIeUimIggCzp8/j+PHj8PHxwfx8fFwcXERLR69Xo8jR45ArVZj3bp12L17t9m3PI1mNo+Dg4DYWDujzuZ58OABlEolAEAul2Pu3LnGe3IS3Uizwsj2dXV1ITU1FW5ubvjtb38LJycnsUMiIiIzYuKJiGgCG+6GsLGxEQqFAoIgQC6XY968eeIEaWI3b95ERkYG3N3dIZfL4eXlJWo8arUahYWFWLRoERITE8227Uns4fNPnz6FUqlES0sLoqOjsWbNGuM9ORGJRqfT4YcffkBHRwcOHDgADw8PsUMiIiIzY+KJiIiG1NXVBaVSaTHzkEylra0NCoUC3d3dSExMxLJly0SN586dO1CpVHBxcYFcLjfLAN6WlsFB4qPV3AzMmmXcGHQ6HfLy8nD58mVs2bIFoaGhbMchsmKCICAnJwc1NTV4//33bfYDDCIiGh4TT0RENCydTof8/HxUVlZaxDwkU+nt7UVGRgbq6+uxe/durF+/XtSkR3t7OxQKBTo6OhAfH4+VK1ea9LzBiicBBsPIX7MpKp6eEQQB586dw/Hjx7FixQrEx8dj0qRJxj+IiEzu3LlzOHbsGOLi4mz2gwsiIhoZE09ERDQiQRBw4cIFHDt2zCLmIZmKwWBAUVERzp07h6CgIERGRoo6XL2/vx9ZWVm4du0aQkNDsWXLFpMkwwRBQHl5Od57zx21tctgMAw9W8rREYiJgVFnPL3OjRs3kJmZCQ8PD8jlckyfPt20BxKRUd24cQNpaWnYtGkTwsLCxA6HiIhExMQTERGN2q1bt5CRkQE3NzeLmIdkKlVVVcjLy8PcuXMhk8mMsr3tTQmCgFOnTuHMmTPw9/dHdHT0mAbzjjTY+cGDBygoKEBjYyOcnHbgb/5mKwRh6OSWnR1QUmKerWRtbW1IS0tDT08PkpKSsHTpUtMfSkTj1tbWhoMHD2LRokVITk62ySpZIiIaPSaeiIhoTB49eoS0tDSLmYdkKvfv34dSqYS9vT3kcjnmzJkjajxXrlxBdnY2Zs6cCblcPuKA3tJS4PPPgZycXzYXxsQAn302mDTq6enByZMnodFoMGvWLERGRmLhwoX4+mvg448BB4eXt9s5OgJ6PfDll8BHH5n4i32BVqtFZmYm6uvrsWfPHqxbt45zn4gsmFarxcGDB+Hg4IAPP/yQrbJERMTEExERjV1vby8yMzNx69Yt7Nq1C2+99ZZNJgM6OzuhVCrx8OFDxMbGYvXq1aLG09TUBIVCAb1ej+TkZCxYsOC1j/vqK+CTT4ZKHgn4D/+hAZ6eShgMBuzYsQPr1q17qSKhrAz44gsgK+uXpFVcHPDpp+apdPo1g8GA48eP4/z58wgODkZkZCQcHIZuByQicRgMBvz8889oamrC/v372SJLREQAmHgiIqI3ZDAYcOLECZw9exaBgYHYu3evqPOQTGVgYAB5eXmorq7G1q1bsWPHDlGTbF1dXVCpVGhsbMS+ffsQGBj40u+fOAGEhwPD/3QX8Pd/X4I///PgYdsIR2rTM7eKigrk5+dj3rx5kMlkcHV1FTskInpBYWEhLl26hHfeeQdLliwROxwiIrIQTDwREdG4PJuHNGfOHCQnJ4s6D8lUBEFAWVkZTpw4gZUrVyIuLk7U9hGdToeCggJUVFRgw4YNCA8Px9mz9vj888EqpZE4OAiIjbUz+YBwU7h37x6USiUcHR0hl8sxe/ZssUMiIgDl5eXIy8tDZGQk1q1bJ3Y4RERkQZh4IiKicbO0eUimUldXh8zMTEybNg1yuRyenp6ixSIIAi5evIijR4+ivn43fvxxPezt7aDXj+7P29sDXV2WUck0Vk+ePIFSqURbWxtiY2Ph5+cndkhEE1pDQwN++OEHBAUFYd++fWKHQ0REFoaJJyIiMooX5yHFxMTA399f7JBMorW1FWlpaejt7YVMJsPixYtFjUeleoDk5LkAxt7+19wMzJpl/JjMYWBgADk5Obhy5QpCQkKwfft2m5wzRmTpOjo6kJqaipkzZ+Kdd97h/DUiInoFE09ERGQ0ljYPyVS0Wi3S09Nx9+7d55vWxBIfD+TmCtDrx/Z9tuaKp2cEQUBpaSlOnjwJX19fxMbGwtnZWeywiCaM/v5+fPvtt+jr68OBAwcwZcoUsUMiIiILxMQTEREZlSAIOHv2LIqKiixiHpKpGAwGHD16FBcvXoREIkFERITZP+nXagE3t8HNc2Ph6CggJsY6Zzy9zvXr13Ho0CF4enpCLpdj2rRpYodEZPMEQYBKpUJ9fT0+/PBDeHt7ix0SERFZKCaeiIjIJJ7NQ5o6dSpSUlJEnYdkSuXl5cjPz8eCBQsgk8nM+ol/SwvwZrO1BWRltSE2dqaxQxLNw4cPoVAo0NfXB5lMhkWLFokdEpFNKy4uxpkzZyCXy7Fy5UqxwyEiIgtmL3YARES2RqsdTAhotWJHIq4VK1Zg//790Ov1SE1Nxe3bt8UOySSCg4Px3nvvobW1FampqWhpaTHb2U5OWtjZjf7zI0dHwM5OwNtvl+HKlT+gurrahNGZl7e3N/bv3w9vb2/8+OOPUKvVYodEZLOuXLmCM2fOIDQ0lEknIiIaERNPRERGUlo6OG/HzW2wCsXNbfD/y8rEjkw8M2fOxP79+zFnzhz89NNPuHTpEmyx0HbhwoX40z/9U7i4uOCbb75BbW2tSc8TBAHl5eU4ePB/w8+vDg4Oo+u1i4kBSkrs8P33G7B69WocOnQIRUVFMIy1V89CTZkyBb/5zW8gkUiQn5+P/Px86Ee75o+IRqWpqQnZ2dnw9/fHli1bxA6HiIisAFvtiIiM4KuvgE8+ARwcAJ3ul193dAT0euDLL4GPPhIvPrEZDAYcO3YMFy5cEG0ekjn09/cjJycHV69exfbt2xESEmL04eqNjY0oKCjAgwcPEBAQAFfX3dizZwpG+ml+4gQQGvrL/wuCgPPnz+P48eNYvnw54uPjbWoWl0ajQUFBARYuXIikpCQOPSYygq6uLqSmpsLNzQ2//e1v4eTkJHZIRERkBZh4IiIap9JSICQEw97429kBJSXA5s3mi8sSvTgPKSkpCa6urmKHZHSCIODMmTM4deoU/Pz8EBMTY5RNa1qtFidOnIBGo4G3tzciIyOfzzH6+mvg44/fLPF58+ZNZGRkwN3dHSkpKZg+ffq4Y7UUd+/ehUqlgrOzM1JSUjj8mGgcdDodfvjhB3R0dODAgQPw8PAQOyQiIrISTDwREY1TfDyQl/fyDf+vOToOtjnZyhax8WhoaIBKpYKjoyNSUlIwa9YssUMyidraWmRlZcHLywtyuRxTp059o+cRBAEVFRXPW+K2b9+O9evXw97+5W75sjLgiy+ArKzBLXf29kBcHPDppyMnPNva2qBQKNDd3Y2kpCQsXbr0jWK1RB0dHVAoFGhvb0dcXBxWrVoldkhEVkcQBOTk5KCmpgbvv/8+5s2bJ3ZIRERkRZh4IiIah7Gss7e3B7q6gMmTTR+XpXvy5AkUCgUePXqEuLg4+Pr6ih2SSbS0tEChUKC/vx/JyclYuHDhS7+v1QKdnYCHx+v/Xfy6rS48PBxubm7DnjnScw7957TIzMxEfX09du/ejfXr1xu9TVAs/f39yM7ORm1tLXbs2IGtW7fazNdGZA7nzp3DsWPHEBcXh4CAALHDISIiK8PEExHROIx1nX1zM2CjBT5jZo55SJagp6cHKpUK9+7dw969exEcHIzSUuDzz4GcnF+qk2JigM8+G6xOGq6tzpQMBgOKiopw7tw5BAUFITIyEo6OjiY/1xwEQcDp06dx+vRprF69GjExMZxPQzQKN27cQFpaGjZu3Ijw8HCxwyEiIivExBMR0Tiw4ml8BEFASUkJiouLjToPydLo9XoUFhZCo9GgtTURX37pBwcHu9fMYxLw+9/fw7RpimHb6kytsrIShw8fxty5c5GcnGxTs7iuXr2K7OxszJgxA8nJyW/cAklkq16smuzubsPBgwexcOFCyOVys78XERGRbWDiiYhonEYz48nBwYCYGDtkZtpeRY8xXLt2DYcOHcL06dMhl8sxbdo0sUMyidTUWvzpn64CMNy/AwH/7b+dwV/8hWTEtjpTun//PpRKJezt7ZGSkoLZYynts3DNzc1QKBTQ6XRITk7GggULxA6JSHSvVmIK8Pe/hbCwy/j7v99rU1sviYjIvPixBRHROP3ud4Obw4aj19th/foy6Ed64AS1atUqfPjhh+jr60Nqairu3r0rdkgmUVjoCweH4R/j4ACUl28TNekEAPPnz8eBAwfg6uqKb7/9FleuXBE1HmOaPXs2Dhw4AC8vL3z//feoqKgQOyQiUX311eB21ry8Xyp4DQY71NQswRdfxOG775h0IiKiN8eKJyIiIxhpnf1f/3UDJk/+EfPmzYNMJrOp1iVjenEeUmRkJCQSidghGY21tmUODAwgNzcXNTU1CAkJwfbt221mFpder0dBQQHKy8vx1ltvYdeuXWwlogmntHQw6TTcHYGdHVBSMvKGTCIiotdh4omIyEhGWmd/7949KJVKODo6Qi6X21TrkjHp9XocOXIEarUa69atw+7du+EwUpmQFbDmQfSCIKCsrAwnTpzAqlWrEBcXZzOzuARBwKVLl3DkyBEsWbIEiYmJmGwJGT8iMxlNu7ij4+AChIwM88VFRES2g4knIiIjG26d/ZMnT6BUKtHW1obY2Fj4+fmJE6QVeJYMWLRoERITEzFlyhSxQxqXwYonAQbDyNVCllTx9KLr16/j0KFDmDZtGuRyOTw9PcUOyWhu376N9PR0TJ48GXK5HDNnzhQ7JCKTs9ZKTCIisi5MPBERmdnAwABycnJw5coVbNu2Ddu2bbOZ1iVju3PnDlQqFVxcXCCXy+Ht7S12SG9EEARUVFTgvffccPXqMhgMQ1dwWXplwcOHD6FQKNDb2wuZTIbFixeLHZLRPH78GAqFAp2dnUhISMDy5cvFDonIpKy5EpOIiKwHE09ERCIQBAElJSUoLi6Gr68vYmNjbaZ1ydja29uhUCjQ0dGB+Ph4rFy5UuyQxqSpqQn5+fl48OABnJx24G/+ZisEYehEozXMUunp6UFGRgbu3r2LiIgISKVSsUMymr6+Phw6dAh1dXUICwvDpk2bmBgmm8WKJyIiMgcmnoiIRHTt2jVkZWXB09MTcrkc06ZNEzski9TX14fs7Gxcu3YNoaGh2LJli8UnA7RaLU6ePAm1Wg1vb29ERkZi0aJFIw6i//JL4KOPxIt7tPR6PY4dO4aLFy9CKpViz549NjGLCxhMDJ88eRKlpaUICAhAVFQUHB0dxQ6LyCQ444mIiEyNiSciIpG1tLRAoVCgv78fMpkMixYtEjskiyQIAk6dOoUzZ87A398f0dHRcHJyEiWW4eZ4CYKAyspKFBUVQafTYceOHVi3bt1LSZmRBtFbE41Gg4KCAixcuBBJSUlWP4vrRTU1NcjJycGsWbOQnJwMd3d3sUMiMjputSMiIlNj4omIyAL09PQgPT0dDQ0NiIyMhEQiETski3XlyhVkZ2dj5syZkMvl8PDwMNvZpaXA558DOTm/JIxiYoDPPhu8IWtqakJBQQHu37+PgIAAhIWFDZusGC6BZU3u3r0LlUoFZ2dnyOVyzLKhITCNjY1QKBQQBAFyuRzz5s0TOyQio7OVSkwiIrJMTDwREVkIvV6Po0eP4tKlS1i3bh12795tM61LxtbU1ASFQgG9Xo/k5GQsWLDA5Gd+9RXwySdD3ZgJ+LM/q8GsWVmYOXPm87a6iaSjowMKhQKPHz9GfHw8Vq1aJXZIRtPV1QWlUommpiZER0cjICBA7JCIjM6WKjGJiMiyMPFERGRh1Go1CgsLsWjRIiQmJtpU65IxdXV1QaVSobGxEfv27UNgYKDJzhpNKwog4Ouvr2D/ft8JmzDs7+9HdnY2amtrsWPHDmzdutXiZ3GNlk6nQ35+PiorK7Fp0ybs3LkT9vb2YodFZHS2UolJRESWg4knIiIL9Kx1adKkSZDL5fD29hY7JIuk0+lQUFCAiooKbNiwAeHh4SZJBoxu+K6AmBi7CT98VxAEnDlzBqdOnYKfnx9iYmJsZmOjIAg4f/48jh8/Dh8fH8THx8PFxUXssIiIiIgsGhNPREQW6lnrUnt7O+Lj47Fy5UqxQ7JIgiDg4sWLOHr0KJYuXYrExESjJgO4bvzN1NbWIisrC15eXpDL5Zg6darYIRnNzZs3kZGRAXd3d8jlcnh5eYkdEhEREZHFYuKJiMiC9ff3IysrC9euXUNoaCi2bNliM61LxlZfX4/09HS4urpCLpdjxowZRnnelhZg9uzRP765GbCh2drj0tzcDIVCAZ1OB5lMhoULF4odktE8evQIaWlp6O7uRmJiIpYtWyZ2SEREREQWiYknIiILJwgCTp8+jdOnT8Pf3x/R0dFwcnISOyyL9OjRIygUCjx9+hQJCQlYvnz5uJ9zsOJJgMEwcsKPFU+v6u7uRnp6Ou7du4d9+/YhKChI7JCMpre3F5mZmbh16xZ27dqFt956i4lhIiIiol9h4omIyEpcvXoV2dnZmDFjBpKTk22qdcmY+vr6kJmZiZs3byIsLAwbN25842SAVqtFcXEx/vIvl+D69ZUwGIaeH8UZT0PT6/UoLCyERqPBW2+9hV27dtnMYG6DwYCioiKcO3cOgYGB2Lt3LxwdHcUOi4iIiMhiMPFERGRFXmxdSk5OxoIFC8QOySIZDAacPHkSZWVlWLt2Lfbt2/dKMmC4zU2CIKCyshJFRUXQ6XTw9IzCxx+vhiAMl8ASkJvbjqio6cb/gmzEpUuXUFhYiCVLliAxMRGTbag0rKqqCnl5eZgzZw6Sk5Ph5uYmdkhEREREFoGJJyIiK9Pd3Q2VSoUHDx5g3759CAwMFDski1VdXY3c3FzMmjULycnJcHd3R2kp8PnnQE7O4MBwe3sgJgb47DNg82agqakJBQUFuH//PtasWYPw8HC4u7vj66+Bjz8GHBxe3m7n6Ajo9QJSUkqwenUp4uPjsWrVKvG+aAt3+/ZtpKenw8XFBSkpKZg5c6bYIRnN/fv3oVQqYW9vD7lcjjlz5ogdEhEREZHomHgiIrJCer0e+fn5qKiowIYNGxAeHm4zrUvG9uDBAyiVSgBAX98H+E//adqQyaOPP74Cb+9DmDFjBiIjI7F48eKXnqusDPjiCyAr65ekVVwc8OmnwLp1/cjJycHVq1exY8cObN26lfN+htDe3g6FQoGOjg4kJCRgxYoVYodkNJ2dnVAqlXj48CFiYmLg7+8vdkhEREREomLiiYjISgmCgEuXLuHIkSNYunQpEhISbKp1yZiePn2Kv/u7U/if/3MfgOHb5b7++gr27/eFg4PDkI8aqk1PEAScOXMGp06dgp+fH2JiYuDs7Gy0r8OW9PX1ISsrC9evX8fOnTuxefNmm0nUDQwMIC8vD9XV1di6dSt27NhhM18bERER0Vgx8UREZOXq6+uRnp4OV1dXyOVyzJgxQ+yQLFJcnAG5uTDLgPDa2lpkZWXBy8sLcrmcg+CHIAgCiouLUVJSgjVr1iAqKspmNjYKgoCysjKcOHECK1euRFxcHCZNmiR2WERERERmx8QTEVmM4YY90/AeP34MhUKBzs5OJCQkYPny5WKHZFG0WsDNbbA9biT29kBX1/j/Dba0tEChUKC/vx/JyclYuHDh+J7QhtXU1CAnJwfe3t5ITk6Gh4eH2CEZTV1dHTIzMzF16lSkpKTA09NT7JCIiIiIzIqJJyIS3UjDnml0+vr6cOjQIdTV1SE8PBwbN25ke8+/amkBZs8e/eObm4FZs8Z/bk9PD1QqFe7du4e9e/ciODh4/E9qoxobG6FUKmEwGJCcnIz58+eLHZLRtLa2Ii0tDb29vUhKSsKSJUte+n0m3YmIiMiWMfFERKL66ivgk0+G2hQGfPkl8NFH4sVnbQwGA4qLi1FaWoqAgABERUXB0dFR7LBEN1jxJMBgGDkRZ6yKp2f0ej0KCwuh0Wiwfv167N69m4Pgh9DV1QWVSoXGxkZERUVh7dq1YodkNFqtFunp6bhz5w4iIiIglUpRVmbHpDsRERHZPCaeiEg0paVASAgw3LuQnR1QUsKbsLGqrq5Gbm4uZs2aheTkZLi7u4sdkmh6e3tx8uRJ/OVfLsH16ytHmPE0eOM/3hlPr/NsEPzixYuRmJjIQfBD0Ol0yM/PR2VlJTZu3IiwsDCbSdQZDAYcPXoUFy9eREtLPL7+2h8ODnZMuhMREZFNY+KJiEQTHw/k5b1c6fRrpkwE2LrGxkYoFAoAQHJyMubNmydyROYlCAKqqqpw/Phx6HQ6eHpG4eOPV0MQhq56MnWi8/bt20hPT4eLiwtSUlIwc+ZM0xxk5QRBwIULF3Ds2DEsW7YMCQkJcHFxETsso/nmm+vYv38FhtuwyKQ7ERER2QomnohIFGIMe56Inj59CpVKhaamJkRHRyMgIEDskMyiubkZBQUFuHfvHtasWYPw8HC4u7vj66+Bjz8Wt7Wzvb0dCoUCHR0dSEhIwIoVK0x7oBW7desWMjIy4OrqipSUFHh5eYkdklHExwO5uQL0+qETT0y6ExERka1g4onGhQNR6U2JNex5ItLpdDh8+DCqqqqwefNmhIaG2kzr0q89a6tTq9WYMWMGIiMjsXjx4pceU1YGfPEFkJX1y1yduDjg00/NV13S19eHrKwsXL9+HTt37sTmzZs5CH4Ijx49gkKhwNOnT5GYmAgfHx+xQxoXJt2JiIhoomHiid4It5DRePHmy7wEQcD58+dx/Phx+Pj4ICEhAZMmTRI7LKN51lZXVFSEgYEBbN++HevXr4eDg8OQf0bsxLkgCCguLkZJSQnWrFmDqKgoODk5mT8QK9Db24tDhw7h5s2bCA8Px4YNG6w2UcekOxEREU00TDzRmHELGRnLaGY82dsbEBMDHDpkmxU65nbz5k1kZGTA3d0dcrncalqXhksSDdVWZy2uXLmC7OxseHt7Izk5GR4eHmKHZJEMBgNOnDiBs2fPIjAwEHv37rXKjY1MuhMREdFEwzs5GpPS0sGkkyC8mizQ6QZ//eOPB1tZiEbyu98NJiuHYzDYYeXKAnR3d5snKBvn4+OD/fv3QxAEHDx4ELdu3RI7pGGVlg4mKN3cBqtE3NwG/7+sbLAKprCwEH/4wx/Q29uL9957D/Hx8VaVdAKA1atX44MPPkBXVxdSU1Nx//59sUOySPb29ggPD0dcXByqq6vxww8/oKurS+ywxmzy5MEK4ZFyZo6Ogy2gTDoRERGRtWPFE40Jt5CRsY007Pnv/u4xnJ2/hYODA1JSUjB7LD0qNKTe3l5kZmbi1q1b2L17N9avX29xrUtDV1cK0OuBuLgiSKXqUbXVWYOuri6oVCo0NjYiKioKa9euFTski/XgwQMoFArY29sjOTkZc+fOFTukMSktBUJCBj+sGQq32hEREZGtYOKJRo3tAWQqIw177uzshEKhQFtbG2JiYrB69WqxQ7YJBoMBRUVFOHfuHIKCghAZGWkxrUujuTEHBBw7pkV4+BRzhWVyOp0O+fn5qKysxMaNGxEWFmazg+DH6+nTp1AoFHj48CFiYmLg7+8vdkhjYgkbFomIiIjMgYknGjUORCVTG26Oz8DAAHJzc1FTU4OQkBBs377d4ip0rFVVVRXy8vIwd+5cyGQyuLm5iR3ShK6uFAQBFy9exNGjR7Fs2TIkJCTAxcVF7LAs0sDAAA4fPozLly9jy5YtCA0Ntar3BUvYsEhERERkakw80aix4onEJggCSktLcfLkSaxatQpxcXFwdnYWOyybcP/+fSiVStjb20Mul2POnDmixcL3mkG3bt1CRkYGXF1dIZfLMWPGDLFDskiCIODs2bMoKirCihUrEB8fb3UbG8XesEhERERkSkw80ZhM5CoEshzXr1/HoUOHMG3aNMjlcnh6eoodkk3o7OyEUqnEw4cPERsbK1pLI6srf/Ho0SMoFAo8ffoUiYmJ8PHxETski3Xjxg1kZmbCw8MDcrkc06dPFzskIiIiIgITTzRGg3NXBAjC0K0MxhiIyk9/aSQPHz6EQqFAb28vZDIZFi9eLHZINmFgYAB5eXmorq4WraWxvb0XXl6Thn2fecaWK56e6e3txaFDh3Dz5k2Eh4djw4YNVtVOZk6tra1QKBTQarVISkrCkiVLxA6JiIiIaMLjxFIak8WL72PfvkIAAhwdX85ZOjoOJp2+/PLNk07DrU4nepG3tzf279+P2bNn46effoJarRY7JJvg5OSEuLg47Ny5E2fOnIFKpUJfX59ZzhYEAVVVVfjmm/8DX986ODgM32vn4GBAbKxg00knAHBxcYFcLsfGjRtx7Ngx5OTkQDdc2ekENnPmTOzfvx9z5szBTz/9hIsXL4KfrxERERGJixVPNGqdnZ34wx/+gOnTp2PZsnfxv/+3o1EHog69Op0bfmhoer0ex44dw8WLFyGVSrFnzx44ODiIHZZNqKurQ2ZmpllaGpubm1FQUIB79+7B398fbm57EBHhOuJWu//7/z6Ov/7rkAkzfPvy5cvIzc3FnDlzIJPJ4O7uLnZIFslgMODYsWO4cOECgoODERkZyfcFIiIiIpEw8USjMjAwgO+++w7d3d04cODA861XxmqJG83qdGO08JHt0mg0KCgowMKFC5GUlIQpU6aIHZJNaG1tRVpamslaGnt7e1FcXIxLly7By8sLkZGRz9ujRlo3/7d/+xCTJn0HNzc3yOVyeHl5GTU2S/XgwQMolUoAgFwux9y5c0WOyHJVVFTg8OHDmD9/PmQyGVxdXcUOiYiIiGjCYeKJRiQIAjIyMnDjxg188MEHmD2Wqb+jxKHlZAx3796FSqWCs7Mz5HI5ZtnqxGkz02q1SE9Px927d7Fnzx6sW7dulH9u6MS0IAi4fPkyjh8/joGBAWzbtg1vvfXWK1UpI62bf/ToEdLS0tDd3Y3ExEQsW7bMWF+2RXv69CmUSiVaWloQHR2NNWvWiB2SxWpoaIBKpYKjoyPkcrlJfoYRERER0dCYeKIRnT59GqdOnYJMJoOvr6/Rn5+r08mYOjo6oFAo8PjxY8THx2PVqlVih2QTDAYDjh49iosXL0IikSAiImLI1qXSUuDzz4GcnF+SRTExwGefDSaLmpubUVhYiIaGBvj7+yM8PBweHh7Dnj9cEqu3txeZmZm4desWdu3ahbfeemtCDN/W6XTIy8vD5cuXsWXLFoSGhk6Ir/tNPHnyBEqlEm1tbYiNjYWfn5/YIRERERFNGEw80bCuXr2K9PR0bN++Hdu2bTPJGVydTsbW39+P7Oxs1NbWYseOHdi6dStvyI2kvLwc+fn5WLBgAWQy2UstjVot8L/+F/DXfz1Ue5yAjz++Am/vQ6+01Y2XwWDAiRMncPbsWQQGBmLv3r1wdHQ0ynNbMkEQcO7cORw/fhwrVqxAfHw8Jk2aJHZYFmlgYAA5OTm4cuUKtm3bhm3btvF9gYiIiMgMmHiiITU1NeG7777DihUrkJCQYLILdFY8kSkIgoDTp0/j9OnT8PPzQ0xMDJydncUOyyY0NDRAqVQ+b2m8cWMWPv8cyM4efk7bIAFffVWDAwf8TDLsuaqqCnl5eZg7dy5kMtnzeXS27saNG8jMzISHhwfkcjmmT58udkgWSRAElJSUoLi4GL6+voiNjX3pfcFYcwuJiIiI6BdMPNFrdXV1ITU1Fa6urnj//ffh5ORk0vPi44HcXAF6/dDJLc54ojdx9epVZGdnw8vLC3K5HFOnThU7JJvw5MkTKBQKFBQsQl7ebjg42A07o+0ZR0cBMTF2Jn0d379/H0qlEvb29pDL5ZgzZ47pDrMgbW1tSEtLQ09PD5KSkrB06VKxQ7JY165dQ1ZWFjw9PSGXy1FTM23Y9lAiIiIienNMPNErdDodfvjhB3R0dODAgQMjzl4xhsOHOxAVNRXA0IknbrWjN9Xc3AyFQgGdTgeZTIaFCxeKHZJNKC4eQGioI4Z73b6OOSoXOzs7oVQq8fDhQ8TExMDf3990h1kQrVaLjIwM3L59+/kgeLaTvV5LSwsUCgVOn/ZDdnbYK8nTZ9sTv/wS+Ogj8eIkIiIisnZMPNFLBEFATk4Oampq8Nvf/hbz5883+ZlarRYHDx5EWdkaqFTbePFPJtHd3Y309HTcu3cP+/btQ1BQkNghWb3BbZQCdLqxJzbMMattYGAAeXl5qK6uxtatW7Fjx44JkYQxGAw4fvw4zp8/j+DgYERGRpqkrdEWFBX1Ijx8EvihBxEREZHp2IsdAFmWc+fOoaqqCtHR0WZJOhkMBmRkZKCnpwdffhmAkhI7xMQMVkQAv7Q7lJQw6UTj4+rqinfeeQeBgYHIzc3FkSNHYBjNYDF6La12sC3pTZJO9vaDM3RMzcnJCXFxcdi5cydKSkqgVCrR19dn+oNFZm9vj927dyM6OhpVVVX48ccf0d3dLXZYFunLL10w0gx6Bwfgiy/MEw8RERGRLWLFEz1348YN/PGPf8TmzZsRFhZmljMLCwtx6dIlvPPOOy9tt+KAVzIVQRCgVqtRWFiIJUuWIDExEZP5j2zMxrqN8hkHBwNiYuyQmWneyqO6ujpkZmZi6tSpSElJgaenp1nPF8u9e/egVCrh6OgIuVyO2W/yl2ajuNiCiIiIyDxY8UQAgNbWVmRkZGDFihXYuXOnWc7UaDS4ePEiIiIiXlmpPnnyYBsOL/LJ2Ozs7LBu3Tq88847aGpqwsGDB9Ha2ip2WFbHwwOwtx/75xZ6vR1WriwwewXOihUrsH//fuj1eqSmpuL27dtmPV8sCxYswIEDBzBlyhR8++23uHr1qtghWYzOztElnYDBx3V2mjYeIiIiIlvFxBOhp6cHaWlpmDZtGuLj480yA+XOnTsoKCiAVCrFunXrTH4e0a8tWbIEBw4cgIODAw4ePIi6ujqxQ7IqnZ0tCAy8C3t7/age7+g4OCvnv/23dkyfXovU1FQ0NzebOMqXzZw5E/v378ecOXPw008/4dKlS2Y9XyxTp07F+++/jxUrViA9PR3FxcVgsfOz5OnoHmuu9lAiIiIiW8TE0wSn1+uRnp6O3t5eyOVyTJo0yeRntre3Q6VSYeHChdizZ4/JzyMaiqenJz788EMsWbIEaWlpKC0t5Q35CHp7e3HkyBH88z//M7ZtK4cgjPxj5MVZbf/xP04XtQJn8uTJePvtt7F+/XoUFBTg8OHD0OtHlzyzZk5OTkhISEBoaCjOnDmD9PR09Pf3ix2WqCZPHvx3OdKMJ0dHIC6OFbhEREREb4oznia4/Px8lJeX491338WiRYtMfl5fXx++/fZbDAwMYP/+/ZgyZYrJzyQaiSAIKC4uRklJCdasWYOoqCg4OTmJHZZFEQQBly9fxvHjx9Hf349t27Zhw4YNSE11wMcfDw5g/vU2Sp0O+B//A/jzP3/1pn1gYAA5OTm4cuUKtm3bhm3btpl941x5eTny8/OxYMECJCUlwdXV1azni+XatWvIysqCp6cn5HI5pk2bJnZIoiktBUJCgOGuhLjVjoiIiGh8mHiawC5duoSCggLs27cPEonE5OcZDAYolUrcuXMH+/fvx8yZM01+JtFY1NTUICcnB97e3khOTobHBOitGc0g/5aWFhQUFKChoQGrV6/Grl27XvrelJUNbv3KyhqchWNvP1gh8umnw9+sC4KA0tJSnDx5Er6+voiNjYWzs7ORv8LhNTQ0QKVSwcnJCXK5HLNmzTLr+WJ5+PAh0tLS0N/fD5lMZpYPHizV119jyOSpXg98+SW3qhIRERGNBxNPE9Tt27fx008/Yd26dYiIiDDLmUVFRSgrK8Of/MmfYPny5WY5k2isGhsboVQqYTAYkJycjPnz54sdkkmUlgKffw7k5PySLIqJAT777JdkUW9vL06dOoWLFy/Cy8sLERERWLp06ZDP+abbKMWuwHny5AkUCgUePXqEuLg4+Pr6mvV8sfT09CA9PR0NDQ2IiIiAVCoVOyTRvGnylIiIiIhGxsTTBPT48WOkpqZi7ty5ePvtt2E/2umq43D58mVkZWUhPDwcmzZtMvl5ROPR1dUFpVKJpqYmREVFYe3atWKHZFRffQV88snQFR7/9E8CNm16ta3OwcHBZDE9fPgQCoUCfX19olTg9Pf3IycnB1evXsX27dsREhJi9tY/Mej1ehw9ehSXLl2CVCrFnj17TPr3bOneNHlKRERERENj4mmC6e3txTfffANBEPDhhx9ishmurO/fv4/vv/8ea9asQXR09IS4mTMl3hiZh06nQ35+PiorK7Fp0ybs3LnTLElaUxvNTBtAwAcffIeICI9X2upM6cUKnMjISLO0AL9IEASUlJSguLgYfn5+iImJMXvrn1g0Gg0KCgqwcOFCJCUlcf4eERERERkNE08TiMFgQFpaGu7du4f9+/djxowZJj+zs7MTqampmDZtGt577z04jrQ+iIY0mtYoMi5BEHDhwgUcO3YMy5YtQ0JCAlxcXMQOa1zi44G8vJcrnX7N3t6A8PAeHDniZr7A/tWLFTjr1q3D7t27zV6BU1tbi6ysLEyfPn1CDd++e/cuVCoVnJ2dkZKSAm9vb7FDIiIiIiIbwMTTBHLs2DGcP38eb7/9NpYtW2by8wYGBvDdd9+hu7sbBw4cgJub+W9ibcVIrVEcfmtat27dQkZGBlxdXZGSkgIvLy+xQ3ojWi3g5jaYuByJvT3Q1SVeVZ3YFTgtLS1QKBTo7+9HcnIyFi5caNbzxdLR0QGFQoH29nbExcVh1apVYodERERERFaOiacJorKyEjk5Odi9ezc2bNhg8vMEQUBmZibq6urwwQcfYPbs2SY/01Zx3bdlePToEdLS0tDV1YXExET4+PiIHdKYtbQAY3kpNjcDYi55E7sCp6enByqVCvfu3cPevXsRHBxs1vPF0t/fj+zsbNTW1mLHjh3YunUrW6SJiIiI6I0x8TQBNDQ04Mcff0RAQACioqLMcgNx+vRpnDp1CklJSfDz8zP5ebZsNK1Rjo6DbXcZGeaLayLq7e1FZmYmbt26hfDwcGzYsMGqbsitqeLpmRcrcOLj47Fy5Uqznq/X63HkyBGo1WqsX78eu3fvtolZXyMRBAGnT5/G6dOnsXr1asTExMDJyUnssIiIiIjICjHxZOOePHmC1NRUeHl54d133zXLrJSrV68iPT0d27dvx7Zt20x+ni2zxkSBrTMYDDhx4gTOnj2LwMBA7N2712pmlwmCgLCwJzh1yh0Gw9DvBQ4OAmJj7SwmkfliBU5oaCi2bNli9oTfpUuXcOTIESxatAhJSUlmWcxgCa5evYrs7GzMmDEDycnJmDp1qtghEREREZGVsf2PbSew/v5+pKWlwcnJCTKZzCxJp+bmZmRnZ2P16tUICQkx+Xm2rrNzdEknYPBxnZ2mjYcAe3t7hIeHIy4uDtXV1fjhhx/Q1dUldlgjamlpwffff49Fiw7BYBj+rV+vB5KS7pspspE5OzsjKSkJ27Ztw8mTJ5GZmYmBgQGzxrBu3Tq88847aG5uRmpqKlpbW816vlj8/PzwwQcfoKenB6mpqbh3794rj9FqB9s4tVoRAiQiIiIii8fEkw158eJfEARkZ2ejvb0dcrkcrq6uJj+/q6sLaWlpmDFjBmJiYqyqBclSeXgMVjKNhr394OPJPAICAvD++++jo6MDqampaGxsFDuk1+rt7cWRI0fwz//8z+ju7sbf/M12fPWVHezsBls0X+ToCNjZCXj//Uu4fv1bnD17FpZSFGtnZ4ft27cjKSkJdXV1+O677/DkyROzxrB48WIcOHAATk5OOHjwIK5fv27W88Uye/ZsHDhwAF5eXvj+++9RUVEBYHD+XHz8YFXm7NmD/42PB8rKRA6YiIiIiCwKW+1sQGkp8PnnQE7OYNWLvT2waVMrVqzIw1/91WazzETR6XT44Ycf0NHRgQMHDsCDGRCjiY8HcnMF6PVDJ/I440k8nZ2dUCqVePjwIWJiYuDv7y92SAAGk8/V1dU4fvw4+vr6EBISgo0bNz6vfCwrA774AsjK+uV9Iy4O+PRTYONGA06ePImysjKsXbsW+/bts6h2wubmZigUCuh0OiQnJ2PBggVmPb+vrw/Z2dm4du0adu7cic2bN0+IRLter0dBQQHKy8vR2pqIL7/0g4ODHTdtEhEREdGwmHiycl99BXzyCeDg8PLwaXt7PQwGe3z1lZ3JL/4FQUBubi6qq6vx29/+FvPnzzftgRPM8eNa7NrlAmDoG1tutRPXwMAA8vLyUF1djS1btiA0NFTURERLSwsKCwtx9+5d+Pn5YdeuXUPO5tFqB1s0PTxenQ92+fJl5ObmYs6cOZDJZHB3dzdD9KPT3d0NlUqFBw8eYO/evQgKCjLr+YIg4NSpUzhz5gz8/f0RHR09IYZvC4KA1NRa/Jt/4wu+JxERERHRaDDxZMVKS4GQEGC4v0FzXPyfPXsWx48fR1xcHAICAkx30ASk1+vx448/4vDh+cjKCmN1gQUTBAFnz55FUVERVq5cibi4OEyaNMmsMfT19eHUqVO4cOECpk+fjsjISCxdunRcz/ngwQMolUoAgFwux9y5c40RqlG8WIGzYcMGhIeHm33j3JUrV5CdnY2ZM2dCLpdPiGpPVmES2Z7hPoQgIiIaLyaerFh8PJCX93Kl06+Z+uL/xo0b+OMf/4jNmzcjLCzMNIdMUIIgIC8vD5cvX8Z7772HhoYFQ7ZGsarActTV1SEzMxNTp06FXC7H9OnTTX7mSG114/X06VMolUq0tLQgOjoaa9asMcrzGoMgCM83zi1duhQJCQlm3zjX1NQEhUIBg8GA5ORkm6765KZNItvyunENMTHAZ5/x2oKIiIyHiScrZQkX/62trfjmm2+waNEiyOXyCTHjxJwuXLiAI0eOICYmBoGBgc9/nZ9KWr7W1lYoFApotVokJSVhyZIlJjvr4cOHKCgoGFVb3XjodLrnidDNmzcjNDTU7NVFw7l9+zbS09MxefJkpKSkYMaMGWY9v6urCyqVCo2Njdi3b99Lr1lb0tIyOEh8tJqbgVmzTBcPEb25ocY1sJqaiIiMjYknKyX2xX9PTw8OHjwIJycnfPDBB2ZvKbJ1t27dws8//4wNGzZg165dYodDb0Cr1SIjIwO3b9/Gnj17sG7dOqMmZ3/dVhcREYFly5YZ7flfRxAEnDt3DkVFRVi+fDni4+Mt6rX/+PFjKBQKdHZ2IiEhAcuXLzfr+TqdDgUFBaioqMDGjRsRFhZmUck5Y7CEDz2IrJmlfHhkKeMaiIhoYmDiyUqN7eJfwJMnBri5GaftRq/X41/+5V/Q0tKCAwcOwNPT0yjPS4Pa2tpw8OBBLFy4EHK53OZuXCcSg8GAY8eO4cKFCwgODkZkZOS4299M3VY3Gjdu3EBmZibc3d2RkpJilnbC0err68OhQ4dQV1eH8PBwbNy40azVmIIg4OLFizh69CiWLVuGhIQEuLi4mO18c7CENm8ia2NpLW18HRMRkTkx8WTFRnPRYG9vwMqV1/DBBwUIDAyERCIZd6IoPz8f5eXleOedd7B48eJxPRe9TKvV4ptvvoGdnR32799vUdUk9OYqKipw+PBhzJ8/HzKZDK6urm/0POZqqxuNtrY2pKWloaenB0lJSeMeYm5MgiDg5MmTKC0tRUBAAKKiouDo6GjWGOrr65Geng5XV1fI5XKzt/6ZEisliMbG0lraWLlIRETmxsSTFRvtxX9ubjscHM6jqqoKfX198PHxgVQqxfLly0espvl1SfilS5dQUFCAffv2QSKRGPkrmtgMBgN+/vlnNDU1Yf/+/RZVRULj19DQAJVKBUdHR8jlcsz+Va/scO0XYrTVjYZWq0VmZibq6+uxe/durF+/3qJmvVVXVyM3NxezZs1CcnIy3N3dzXr+o0ePoFAo8PTpUyQmJsLHx8es55vS118DH39sOTfSRJbKEhO1Yo9rICKiiYeJJys3lov/gYEB1NTUQKPR4MGDB/Dw8EBwcDCCg4NfuSF7XUl4eHg35s9XISFhNiIiIsz4VU4MhYWFUKvV+M1vfmPSYdQknidPnkChUODRo0eIjY2Fn5/fsO0Xmza92la3YcMGs1fvDMdgMOD48eM4f/48goKCsHfvXrO2/Y2ksbERCoUCgiBALpdj3rx5Zj2/t7cXhw4dws2bNxEWFmb21j9TKisDN20SjcASW9pY8URERObGxJMNeJOL/8bGRmg0GlRXV0On02HVqlWQSCRYunQpvv7a7rUl4fb2ehgM9vinfxLw8cecO2RMGo0Ghw8fRmRkJNatWyd2OGRCAwMDyMnJwZUrV9DRkYJ//MflcHCwe03iWMA775zH0qXHRG+rG42Kigrk5+dj3rx542onNIWnT59CpVKhqakJ0dHRCAgIMOv5BoMBJ0+eRFlZGdauXYt9+/ZZVPJwvCxlWDKRpbHkBM/oxjXoERbWg6NHzVstSkREtoeJJxvyJhf/vb29uHz5MjQaDR4+fIj29tX4x39MADD0J/Kc3WFcd+7cwU8//YTg4GDs3btX7HDIDARBwD/9UxX+/M/XYrjXGiBAqWyETGbeKp03de/ePSiVyiHbCcWk0+mQn5+PyspKbNq0CTt37jT74P7Lly8jLy8Ps2fPhkwmM3vrHxGZlyW3tI2mBRAQ8MEH3+Httxdj+/btXHZCRERvjIknAjB4I3zv3j3IZA64dGk2DIahW2W45cR42tvbkZqaitmzZ+Ptt9+2qBYlMq34eCA3V4BeP3TiydFRQEyMnVW91p48eQKlUom2tjbExMRg9erVYof0nCAIOH/+PI4fPw4fHx/Ex8ebfePcgwcPoFQqAQByuRxz58416/lEZD6WXPEEjDyu4Z/+ScCaNWU4efIkli5divj4eEyZMsV8ARIRkc1g4omes/QLJFvT19eHb7/9FgMDAzhw4AAm85s5Ydj6a21gYAC5ubmoqalBSEgItm/fblFzjW7evImMjAy4u7tDLpfDy8vLrOc/ffoUSqUSLS0tiI6Oxpo1a8x6PhGZz2ha2hwcDIiJsUNmpvnfJ0czrqG+vh6ZmZlwcnKCTCZjwpyIiMaMiSd6zpJLwm2NwWCAUqnE3bt38eGHH2LmzJlih0RmNBFea4IgoLS0FCdPnsSqVasQFxcHZ2dnscN67tGjR0hLS0N3dzcSExPNviVQp9MhLy8Ply9fxpYtWxAaGmpRyTkiMo7RtrT9/vf5+I//cZtoLbgjjWt48uQJ0tPT0dzcjIiICAQHB/M9i4iIRo2JJ3puLFUYdnYGlJVdhkTiZ1E3k9aiqKgIZ8+eRUpKCpYvXy52OGRmPT0C3N0Bg2Hki3ZrrHh60fXr13Ho0CFMmzYNKSkpmDZtmtghPdfb24vMzEzcunULu3fvxvr16816IyUIAs6dO4eioiIsX74c8fHxmDRpktnOJyLzGKml7e/+7jFcXL6HwWBAYmIiFi9eLFqsw9HpdDh69CjUajUCAwMRGRkJJycnscMiIiIrwMQTvWR0JeECgoPvYe/e7zBp0iSsXbsWUqmUVTujdPnyZWRlZSE8PBybNm0SOxwys4cPH6KgoAD/43+8hbq6lTAYhh7Waivz1B4+fAiFQoG+vj4kJSVZ1E2VwWBAUVERzp07h8DAQOzdu9fsG+du3LiBzMxMeHh4QC6XY/r06WY9n4hMb6SWtq6uLmRmZuLu3bsICwvDxo0bLbaiqKqqCocPH8aMGTMgk8ng6ekpdkhERGThmHiil4ymJPzZVjs/v3aUl5ejoqIC3d3dWLRoESQSCXx9fW1qVbgx3b9/H99//z3WrFmD6Ohoi72oJOPr6+vDqVOncOHCBUyfPh0zZ8YhJWXeqF5rtrBBsqenB+np6WhoaEBERASkUqnYIb2kqqoKeXl5mDt3LmQyGdzc3Mx6fltbG9LS0tDT04OkpCQsXbrUrOcTkXkM19JmMBhw4sQJnD17Fn5+foiOjrbYKsjm5maoVCpotVrEx8ezepuIiIbFxBO9YqSS8C+/BD766Jdf1+v1uHbtGtRqNe7cuYMpU6YgMDAQUqmUn4K9oLOzE6mpqfD09MS7777L5NwEIQgCampqcOzYMfT19WHr1q3YuHEjHB0dx/xas3Z6vR5Hjx7FpUuXIJVKsWfPHova5Hj//n0olUrY29tDLpdjzpw5Zj1fq9UiMzMT9fX1orT+EZFlqK2tRXZ2Njw8PCCTySy2olyr1SI7Oxt1dXXYtm0btm3bxvcsIiJ6LSae6LVGs+Xkddra2qBWq1FVVYXe3l4sW7YMUqkUK1asgL390C1Ftm5gYADfffcduru7ceDAAbNXU5A4nrXV3b17F76+vti9ezemTp360mPe9LVmzTQaDQoKCrBw4UIkJSVZ1Hruzs5OKJVKPHz4ELGxsVi9erVZzzcYDDh+/DjOnz+PoKAg7N2716KSc0RkHm1tbVCpVHjy5Amio6PN/l40WoIgoKSkBMXFxfDx8UF8fDy39BIR0SuYeKJhjbTlZCgDAwO4cuUKNBoN7t+/D3d3dwQHByM4OBgeHh6mC9gCCYKAzMxM1NXV4YMPPsDssawzI6v067a6iIiIEbemvelrzVrdvXsXKpUKzs7OkMvlmGVBa/sGBgaQl5eH6upqbN26FTt27DD7p/iVlZU4fPgw5s2bB5lMBldXV7OeT0Ti6+/vR15eHmpqarBhwwaEhYVZbCL61q1byMzMxKRJkyCTycxeMUpERJaNiScyuaamJmg0Gly+fBk6nQ4rV66ERCLBsmXLJkRJ9unTp3Hq1CnIZDL4+vqKHQ6Z0Ittdb29vQgJCXneVkev6ujogEKhwOPHjxEfH49Vq1aJHdJzgiCgrKwMJ06cwMqVKxEXF2f2WSv37t2DUqmEo6Mj5HI5k9ZEE5AgCLh48SKOHTuG+fPnIykpyWKrpjs6OpCeno6Wlhbs3bsXQUFBYodEREQWgoknMpu+vj5cvnwZarUaDx8+hKenJyQSCQIDA2320/za2lqoVCps374d27ZtEzscMqGHDx+isLAQd+7cGbKtjl7V39+P7Oxs1NbWYseOHdi6datFJaTr6uqQmZmJadOmQS6Xm31uXWdnJxQKBdra2hAbGws/P7+Xfn+iVcoRWTpTvSYbGhqQnp4OAEhKSsLChQuN9+RGpNPpUFhYiPLycgQHByMiIoIfvhARERNPZH6CIOD+/fvQaDSoqakBAPj6+kIqlWLhwoUWddM5Hs3Nzfj222+xYsUKJCQk2MzXRS/r6+vD6dOnceHCBUybNg0RERHw8fEROyyrIggCTp8+jdOnT2P16tWIiYmBk5OT2GE919rairS0NPT29kImk2Hx4sVmPX9gYAC5ubmoqalBSEgItm/fjrIyO3z+OZCT88tssJgY4LPPbHc2GJElKy2FyV+TXV1dyMjIwL179xAeHo633nrLYq8tKioqkJ+fD29vb8hkMkybNk3skIiISERMPJGoenp6UFVVBbVajcePH2PmzJmQSCRYu3YtXFxcxA7vjXV1dSE1NRWurq54//33LeommozjWVvd8ePHodVq2VZnBFevXkV2dja8vLwgl8stqmJMq9UiPT0dd+/exZ49e7Bu3Tqzni8IAkpLS3Hy5Encu7cP334bDAcHuwmxDZHI0n31FfDJJ+bZUKrX63HixAmcO3cOq1evRnR0NJydnY3z5EbW1NQElUqFvr4+xMfH80MZIqIJjIknsgiCIODOnTtQq9W4du0a7O3t4e/vD6lUinnz5okd3pjodDr8+OOPaG9vx4EDBybcMPWJgG11ptPc3AyFQgGdTofk5GQsWLBA7JCeMxgMOHr0KC5evAiJRIKIiAizD/r94x8b8PbbCwAMXeVgZweUlLDyicgcSkuBkBBguKtpU7wmr1y5gtzcXEydOhUymQwzZsww3pMbkVarxaFDh3Dz5k1s374dISEhFlulRUREpsPEE1mcrq4ulJeXo7y8HE+ePMGcOXMglUrh7+8/qk/1xJx5IggCcnNzUV1djd/+9reYP3++eQMgk2JbnXl0d3dDpVLh/v372Ldvn8UNqC0vL0d+fj4WLFiApKQks86oi48HcnMF6PVD37g5Og62+GRkmC0sogkrPh7Iy3u50unXTPWabG1thUqlQmdnJ2JiYl6ZAWcpXmynXr58OeLi4jCZQ+mIiCYUJp7IYhkMBty8eRMajQZ1dXWYNGkSAgICIJVK4e3t/crjzTFfYSRnz57F8ePHERcXh4CAAPMcSiYnCAKuXLmCY8eOsa3OTPR6PQoKClBeXo633noLu3btgr29vdhhPdfQ0AClUglnZ2fI5XLMmjXL5GdqtYCb2+D720js7YGuLg4cJzIlS3hN9vX1ITc3F1evXsWmTZuwc+dOi3qvfNGNGzdw6NAhTJ48GTKZjJs6iYgmECaeyCp0dHQ8r4Lq7u7GggULIJVK4efnB0dHR7POVxjKjRs3kJaWhk2bNiEsLMy0h5HZ/LqtbteuXRySaiaCIODSpUs4cuQIlixZgsTERIv6lPzJkydQKBR49OgR4uLi4Ovra9LzWlqAsdynNTcDZsiHEU1YlvKaFAQB58+fx/Hjx7Fo0SIkJCTAzc3N+AcZQXt7O9LT09Ha2op9+/Zh7dq1YodERERmwMQTWRW9Xo/r169DrVbj9u3bmDx5Mhwdt+Mv/3IdBGHkmSfBwaZpw2ttbcU333yDRYsWQS6Xc36BDWBbneW4ffs20tPTMXnyZMjlcsycOVPskJ7r7+9HTk4Orl69avL5JZZQXUFEv7C01+Tdu3eRnp4Oe3t7JCUlWdSMvBfpdDrk5+ejsrISEokEe/bsYQUxEZGNY+KJrFZbWxs0Gg0++2wxamt9YDAMPeTXwWHwU8bmZuO34fX09ODgwYNwcnLCBx98gEmTJo3vCUlUbKuzTO3t7UhLS8OTJ0+QkJCAFStWiB3Sc4IgoKSkBMXFxfDz80NMTIzJtkyJOU+GiF41mtekg4MBMTF2yMw0/YdST58+RXp6Oh48eIDdu3dj3bp1FvthWHl5OQoKCjB79mwkJSVxSQcRkQ1j4oms2uCnjQIMhrFfVBmjDU+v1+Pnn39Gc3MzDhw4AE9Pzzd7IrIIra2tKCgoYFudherr60NWVhauX7+OsLAwbNq0yaJuqGpra5GVlQUvLy/I5XKT3ESJtUGLiF5vNK9JQMB//a+n8Fd/tdlkSekX6fV6HD9+HBcuXMCaNWuwb98+s5z7JhobG6FSqTAwMICEhAQsXbpU7JCIiMgEmHgiqzbW+QqvM56btPz8fJSXl+Pdd9/FokWLxhcIiYZtddZDEAQUFxejpKQEa9asQVRUFJycnMQO67mWlhYoFAr09/cjOTkZCxcuNPoZX38NfPyxuDPtiOgXI70m//N/boKLy/fw8PBAcnIyZsyYYZa4ampqkJubC09PT8hkMnh5eZnl3LHq6enBoUOHUF9fjx07dmDLli0W9aECERGNHxNPZNXGMl9hKG/alnLp0iUUFBRg3759kEgkbx4AiYZtddarpqYGOTk58Pb2RnJyMjw8PMQO6bmenh6oVCrcu3cPe/fuRXBwsNHPKCsDvvgCyMr6pX04Lg749FNWOhGJYaTXZFtbG5RKJTo7OxETEwM/Pz+zxPXw4UOoVCp0dXUhNjYWq1atMsu5Y2UwGHD69GmcOXMGK1euRGxsLFxcXMQOi4iIjISJJ7J6o5mvMJKRhn5qtS8PJb99+zZ++uknrFu3DhEREW9+MInmxba6VatWYffu3WyrszKNjY1QKBQQBAHJycmYP3++2CE9p9frUVhYCI1Gg/Xr12P37t0vrTj/9XvKmzLW8xCRcQz3muzv70dubi6uXLmCjRs3Iiws7KX3BVPp6+tDdnY2rl27hs2bNyM0NNQs576Juro6ZGVlYcqUKZDJZJj1mjWAfN8jIrI+TDyR1RucryAMu9VuNF635ri0FPj8cyAn55dPMCMi+rFwYTo2bjTg7bffttiLN3o9ttXZlq6uLiiVSjQ1NSEqKsriVnNfunQJR44cwaJFi5CUlASNZvIr7ynGWnRARJZPEAScP38ex48fx6JFi5CQkAA3NzeznHv27FmcOHECixcvRkJCAlxdXU1+7ptob2+HUqnEo0ePEBUVhYCAAACvvybj+ycRkXVg4omsXkdHBz744CKyssLh6AjodGNPQNnZCbh+/QF8fOY9nyvw1VfAJ5+8OrPB3t4Ag8EO//iPA/iLv7DMYZ30ql+31W3duhWbNm1iW50NeHE196ZNm7Bz506LSgjfvn0b6enpUKvXISNjOxwc7DibiWiCu3v3LjIyMmBnZ4ekpCQsWLDALOfevn0bmZmZcHBwQFJSkkVVir5oYGAA+fn5qKqqwrp163D79h78+Z/bc7YdEZGVYuKJrFp/fz+++eYb9Pf3w9//3+Crr1xemq8wezbQ0iJArx86GeXgYMDq1bcQH/9HzJ49GxKJBJ2dAQgLc+bmKBvBtjrbJwgCLly4gGPHjmHZsmVISEiwqPkghYWdiIx0BzD0exHfU4gsi6lbup4+fYqMjAzcv38fu3btwvr1680yVLuzsxPp6elobGxEREQEJBKJRQ7zFgQBGo0G//zPV3Dw4Lvg+ycRkfVi4omsliAIUCqVuH37Nj788EN4e3sDePlCUa0WEBICjHSxcvq0AbNn34JGo0FdXR2UymRcv74cev3QVRNvOpSczKevrw9nzpzB+fPnMW3aNOzZswfLly8XOywyoVu3biEjIwOurq5ISUmxmC1Og7PohGErMvmeQmQZzNnSpdfrUVRUhPPnz8Pf3x9RUVFwdjZ9NbVer8fRo0dx6dIlrF27Fnv37rWoDaEviojQ4tgxZxgMDkM+hu+fRESWjYknslonTpxAaWkpUlJSsGLFitc+5uTJk/j88x4UFOwddXtLc/MTzJvnAYNh5E//RhpKTuJgW93E9ujRI6SlpaG7uxuJiYlYtmzZS79v7sG0Y9m+yfcUInEN1WZv6paumpoa5ObmwtPTEzKZzGxJ88uXLyMvLw9eXl6QyWSYPn26Wc4dLb5/EhHZBssZgkE0BtXV1SgtLUVYWNiQSafq6mqUlJTg97+fhpISO8TEDF6UAL98ellS8uoFpJ3d1FElnYDBC6HOzvF8JWRsra2t+Omnn5CZmYl58+bhk08+QUhICJNOE4iXlxf279+P+fPn4+eff8b58+chCAJKSwcrj9zcBttw3dwG/7+szLTxdHaO7qYJ4HsKkZhKSweTToLw6qZcnW7w1z/+2DTvGf7+/jhw4AD0ej1SU1NRW1tr/ENeIyAgAPv378fAwAD+8Ic/oK6uziznjhbfP4mIbAMrnsjqPHjwAN9//z38/PwQGxv72rkEQz1mNJUOY/t0TUBXlx0/XbMAbKujXzMYDDhx4gTOnj2LpqZY/OEPAaIM9uYn9kTWYbAl9tWk04tM3dLV19eHnJwc1NbWYvPmzQgNDTXLsoTe3l5kZ2fj+vXr2Lp1K7Zv324RSxoG3z8FVqETEVk5Jp7IqnR2diI1NRXTpk3De++999oqlqdPnyI1NRUeHh747W9/+0aVLqO5+LS312P16pv44ov7kEgkHFYtErbV0Ui+//4m3n9/GcQcTGsJN7RENDRLShALgoBz586hqKgIixcvRkJCAlxdXU1z2K/OLS0tRXFxMZYsWYKEhARMmTLF5OcOp7W1FXv2dKOycgFnPBERWTEmnshqDAwM4Pvvv0dXVxcOHDgANze3IR/z9OlTHDhwAO7u7m90VmkpEBKCEbbaCfif//M8BgZOob+/H8uXL4dUKoWPj49FfEo4EbS2tqKwsBC3b9/mtjoaUnw8kJs7/HZLU9+0jO49hVuZiMTS0jLYgjtazc3ArFmmiwcA7ty5g4yMDNjb20Mmk2H+/PmmPfBf1dfXIzMzE05OTkhKSsK8efPMcu6LdDodSktLUVpaira2Vfhf/ysBgsCtdkRE1oqJJ7IKgiDg0KFDuHbtGj744APMmTNn2Me8//77mDt37rjO/PrrwVkOIw0Y7e/vR01NDdRqNZqamjB16lQEBwcjKCjojRNfNLz+/n6cPn0a58+fx9SpUxEREcG2OnotS6piGO17ChGZnyW9V7yos7MT6enpaGxsxJ49eyCVSl87YsDYnjx5gvT0dDQ3NyMiIgLBwcFmORcA7t69i8OHD+Px48fYvHkzQkJCcPCgI98/iYisGBNPZBVKSkpw8uRJJCYmYvXq1W/8mLEqKwO++ALIyvplpXJcHPDpp6//VO3BgwdQq9WoqamBwWDAqlWrIJFIsGTJErNdsNkyQRBw9epVHD16lG11NCqWVsUw1vcUIjKf0bXZG7B3rw65uc5mi0uv1+PYsWO4ePEiAgICsG/fPjg5OZn8XJ1Oh6NHj0KtViMwMBCRkZEmPVer1eL48eOoqKjA/PnzERUVBW9v7+e/z/dPIiLrxcQTWbza2lqoVCps27YN27dvf+1jrl27BqVSiZCQEOzYscPoMYx1/Xpvby+qqqqg0WjQ2tqK6dOnQyKRIDAwUPR5CdaKbXX0Jiy1imGs7ylEZHqjaYkFBPzZn/0Rv/vdW/Dx8TFXaAAGt/Xm5eVh+vTpkMlkmD59ulnOraqqwuHDhzFjxgzIZDJ4enoa9fmfzWo8cuQIdDoddu7cOWxlF98/iYisDxNPZNFaWlrwzTffYPny5UhMTHztRcizx/j4+CApKcmiKosEQUBDQwPUajWuXr0KOzs7rF69GlKpFPPnz7eoWC0V2+povDjYm4hGa6SW2H/4h354eaXj5s2b2L59O0JCQsz6s7ylpQUqlQrd3d2Ii4vDypUrzXJuc3MzVCoVtFot4uPjjfZzuKOjAwUFBbhx4wZ8fX0RERHBMQVERDaIiSeyWN3d3UhNTcXkyZPx/vvvw9n51bL20TzGUnR3d6OyshIajQbt7e3w9vaGVCpFQEAAJk2aJHZ4FodtdWQsHOxNRGMxUkuXIAg4ffo0Tp8+jeXLlyMuLg6TzVh609vbi+zsbFy/fh1bt27F9u3bzbLURKvVIjs7G3V1ddi2bRu2bdv2xkk3g8GACxcuoLi4GC4uLoiMjMSqVauMHDEREVkKJp7IIul0Ovz000949OgRDhw4gKlTp77yGL1ejx9//HHYx1giQRBQX18PtVqN69evw9HREWvWrIFUKn3t0PSJiG11ZGwc7E00sRijHWuk57hx4wYOHTqEyZMnQyaTYfZYBsqNkyAIKCsrw8mTJ7FkyRIkJCSYpZVfEASUlJSguLgYPj4+iI+PfyXpNtL3rampCXl5eWhqasL69esRGhrKD+CIiGwcE09kcQRBQG5uLqqrq/Hee+9hwYIFr31MXl4eLl++PORjrEFnZyfKy8tRXl6Op0+fYt68eZBKpVi9erVZBodaGrbVkSlxMC2R7SstBT7/HMjJ+eV1HhMDfPaZaV7n7e3tUKlUaGtrw759+7B27VrjHzKM+vp6ZGZmwsnJCUlJSZg3b55Zzr158yYOHTqESZMmQSaTYc6cOSN+7/v7+3Hq1CmcP38e3t7eiIqKMlu8REQkLiaeyOKcP38eR48eRWxs7JAXcM8eExMTg8DAQPMGaAIGgwF1dXVQq9W4desWXFxcsHbtWkgkEsycOVPs8EyObXVkThxMS2SbvvoK+OQT81c2DgwMoKCgAJWVlZBIJNizZ49Zf349efIE6enpaG5uRkREBIKDg80yd6qjowPp6eloaWlBT897+O//fcGQ3/u//duH8PD4I7q7u7F9+3Zs2LABDg4OJo+RiIgsAxNPZFFu3ryJP/7xj9i4cSPCw8Pf+DHWrL29HRqNBhUVFejp6cHixYshkUjg6+trkxdpbW1tKCgowO3bt7Fy5Urs2bOHbXVERDQmYs9yEwQB5eXlKCwsxOzZs5GUlGTWEQA6nQ5Hjx6FWq1GYGAgIiMjzVI5rdPp8P/9fxfw+99vAjBcskvA3/zNUXz66XqzbeMjIiLLwcQTWYy2tjYcPHgQCxcuhFwuf+2gzNE8xlbodDrU1tZCo9Hg7t27cHV1RWBgICQSidFXGYuBbXVERGQslrK98sGDB0hPT8fAwAASEhKwdOlS0x32GlVVVTh8+DBmzJgBmUxmluuF+HggN1eAXj904snBQUBMDJCZyW2+REQTERNPZBG0Wi0OHjwIBwcHfPjhh68dMjmax9iq1tZWqNVqVFVVoa+vDz4+PpBKpVi+fLnVJd9+3Va3ZcsWbN68mW11RET0RrRawM1tcK7QSOztga4u07bZ9vT04NChQ6ivr8eOHTuwZcsWs7S+PdPc3AyVSgWtVov4+HiTfqhjad97IiKyTEw8kegMBgN+/vlnNDU14cCBA88/nXtxDsukSb88Zv/+/RO2THtgYAA1NTVQq9VobGyEh4cHgoODERQUBA8PD7HDG9Gv2+p2795tE9VbREQknpYWYCwL5ZqbgVmzTBcPMHhtc+rUKZSUlGDlypWIjY2Fi4uLaQ99QW9vL7KyslBXV4eQkBBs27bNJB9UWeL3noiILA8TTyS6wsJCqNVq/OY3v8GSJUteuxVlw4Zm+PoW4j/9p+1YsmSJ2CFbhMbGRmg0GlRXV0On02HlypWQSqVYunSpWT9ZHY3+/n6cOXMG586dw9SpU7Fnzx6sWLFC7LCIiMgGWHLVzfXr15GVlQVXV1fIZDLMMmPWRRAElJSUoLi4GD4+PoiLi8OUKVOMeoYlf++JiMhyMPFEolKr1cjPz8fevXshlUqH3Ehjb6+HwWCPr76yM8lGGmvW29uLy5cvQ6PR4OHDh/D09IREIkFQUJDRLzDH6llb3bFjx9DT08O2OiIiMonRzXgSEBNjZ9IZT6/z+PFjqFQqPHr0CFFRUQgICDDr+bdu3UJmZiacnZ0hk8kwd+5coz13b28vduxox8WL3jAYhl6AYo75WkREZLmYeCLR3LlzBz/99BMkEgkiIyNF30hj7QRBwL1796DRaHDlyhUAgJ+fH6RSKRYsWGD2Kqi2tjYUFhaivr6ebXU0ai+22PJTcSLbYsrX92iuIQABR450Y/duN+MePgoDAwPIz89HVVUV1q1bh927d5t1U21HRwfS09PR0tKCyMhIBAcHj+v5nn2wdOTIEdTVeeMPf/gNhttqx+s3IqKJjYknEkV7eztSU1Mxe/ZsvP3223BwcLCYjTS2oKenB5WVldBoNHj8+DFmzpwJqVSKgIAAk8+YYFsdvYnXtdjGxACffcYbFSJrZ67X99dfAx9//GrVtKMjoNcLSEg4ifXry0XZNgcMJms0Gg0KCwsxd+5cJCUlmXU+o06nQ2FhIcrLyxEUFITIyMg3qkB+8uQJCgoKUFdXB19fX+zZswd//KPHMN974MsvwYp1IqIJjIknMru+vj5888030Ov12L9/PyZPnswZASYiCAJu374NtVqNa9euwdHREf7+/pBKpUYttX92Ftvq6E0M1WLLGxYi62fu13dZGfDFF0BW1i9Jrrg44NNPgaCgHmRmZuL27dsIDQ3F5s2bRZmJeP/+faSnp0On0yExMdHssysrKipQUFCAmTNnQiaTYdq0aS/9/lCVaQaDARcvXsTJkyfh4uKCyMhIrFq16vnvD/e95wcIREQTGxNPZFYGgwFKpRJ3797Fhx9+iJkzZwLgVhRzePr0KcrLy1FeXo7Ozk7MnTsXEokE/v7+cHZ2HvHPD9ciwbY6elNssSWyXWK+vodLnoi5be6Z7u5uZGZm4s6dO9i5cyc2bdpk1iRYU1MTVCoV+vr6EB8fDx8fn2Er05YubUJeXh6ampqwfv16hIaGYtKkSa99brZMExHRrzHxRGZVVFSEs2fPIiUlBcuXL3/+66x4Mh+DwYAbN25Ao9Hgxo0bmDRpEtauXQuJRAJvb+9XHj/chei6dWyro/Fhiy2R7bLk17eY2+aeMRgMKC4uRmlpKXx9fRETEzNkMscUtFotsrKycOPGDTx5koJ/+IflcHCw+1VlmgCdDti3rwCRkQ2IiorC/PnzzRYjERHZBiaeyGyqqqqQnZ2NXbt2YePGja/8viVfoNqqjo4OaDQaVFRUoLu7GwsXLoRUKoWvry8cHR2HaZEQoNcDCQknERh4nm119EaYcCayXdbw+n62be7x48fYt2+f2bfNPXPt2jVkZ2fDzc0NMpnstR8CmYogCPg//6cSf/EXgRhuODgg4PRpA0JCzDcQnYiIbAcTT2QW9+/fx/fff481a9YgOjr6teXkbLkRj16vx7Vr16BWq3Hnzh1MmTIFjo7b8dlnUgjC8BeiBQVPERFhvuGoZDvYYktku6zl9T0wMIDDhw/j8uXLomybe+bRo0dQqVRob29HdHQ0/P39zXZ2fDyQmytArx/65z0/+CMiovFg4olM7smTJ0hNTcX06dPx7rvvDlsVM/xGGg4ZNoe2tjZoNBp89tli1Nb6wGAY+gKcF6I0HtZQEUFEb8aaXt+CIECtVuPIkSOibJt7pr+/H4cPH0Z1dTXeeusthIeHmzwJZk1/T0REZL2YeCKje3GopKPjAL777jv09PTgwIEDcHV1HfHPcyuK+AYvRAUYDCMPOuWFKI3HYIutAJ2On7QT2ZrRtNA7OAiIjbWziNf3s21zer0eiYmJWLx4sdljEAQBly5dwtGjRzFv3jwkJSXB3d3dZOdZS2UaERFZNyaeyGheHUItQCp9gMDAk/gv/2UXZo/lygbciiImXoiSuZSUCAgJAYabLcIWWyLrNJoWekDAzz834E/+ZJG5whqW2Nvmnrl37x7S09NhMBiQlJSERYtM8/3p6tJj6lR7ftBEREQmZS92AGQbvvpq8OIyL++Xcm2DwQ5q9Rykpr6D7OyxJZ2AwQubWbN4gSMGD4/BC8zRsLcX4ODQbdqAyGbZ25/F3r35sLMT8OsuXEfHwaTTl18y6URkjbZsGXz92tlhiNe3gA8/1ODGje9x4sQJGEbT72Virq6u+M1vfoNNmzahqKgI6enp6OvrM3scCxYswJ/+6Z9i5syZ+OGHH3D27FkY+7PihoYG/PjjP2PlymtwcBj+e+/oOFh9zmsyIiJ6E6x4onHjUHDbNJoWCXt7A1atug65PAN+fn6QSqVYuHChKJ8Ok/Wpq6tDWloatmzZAheXnWyxJbJRw7XQb9ok4OzZszhx4gSWLFmC+Pj4UbXlm4OY2+aeMRgMOHHiBM6ePQs/Pz9ER0dj0qRJ43rO3t5eFBUVQaPRYN68efD2jkds7HRexxERkckw8UTjNpoEBWe0WJ/RJhSLivoweXI5NBoNHj16hBkzZkAqlWLt2rVwcXExX8BkVR4+fIhvvvkGS5YsQXJy8vNkJVtsiWzXcK/v27dvIyMjA46OjpDJZJg3b544Qf6KmNvmXnT16lXk5OTAw8MDMpkMM2fOHPKxQ32fBUHA1atXceTIEfT392Pnzp2QSqWwt7fnchciIjIpJp5oXLgNxbaN5UJUEATcuXMHGo0GtbW1sLe3h7+/P6RSKebOncsqKHqup6cHBw8ehJOTEz788EM4OzuLHRIRWYDOzk6kp6ejqakJe/bsgUQisYifHWJsm3udtrY2qFQqPHnyBNHR0Vi9evVLv3/ixOCszSNHfqksi4kBPvsM8Pd/goKCAtTV1WHVqlWIiIh4ZXMfl7sQEZGpMPFE48Ih1LbvTS5Eu7q6UFFRAY1GgydPnmDOnDmQSCRYs2YNkwwTnF6vx7/8y7/g4cOHOHDgAKZNmyZ2SEQ0AnNWIur1ehw9ehSXLl3C2rVrsXfvXjg5OZn20FEQBAEXL17EsWPHMH/+fCQmJpp029xQ+vv7kZubiytXrmDDhg0ICwvDuXMO+Lf/FqiqevXxjo4CdDogOvoItm2rRUREBHx9fYc9g5WnRERkbEw80biw4mnieJMLUYPBgFu3bkGtVuPGjRtwcnJCQEAApFIpZjEDOSEdPnwYFRUVePfdd022pYmIjOPVbbW/VNCYugLm8uXLyMvLg5eXF2QyGaZPn27aA0fp2bY5QRCQmJgoyvuYIAi4cOECjh8/jhs3wvDTTxsw3GbQf/1TOHGiH6Gh45sPRURE9CaYeKJx44wnGo0nT55Ao9GgoqICXV1dWLBgAaRSKfz8/OD463VHZJMuXbqEgoICREVFITg4WOxwiGgYX30FfPKJuDN/WlpaoFKp0NPTg7i4OKxYscK0B45SV1cXMjIy0NDQgPDwcGzYsEGUlsDMzBYkJnpj5KQTr8OIiEhcTDzRuHGrHY2FXq/H9evXodFoUF9fj8mTJyMwMBASiQReXl5ih0cmUl9fj3/5l3/B+vXrsWfPHrHDIaJhWNLP9d7eXmRnZ+P69esICQnBtm3bYG9vb9pDR+HFbXOrV69GVFTUuLfNjVV8PJCbK0CvH13Si5XnREQkFiaeyCi4DYXexKNHj6DRaFBZWQmtVoslS5ZAKpVi5cqVogxuJdN49OgRDh48iHnz5uFP/uRPLOKmkYiGZmmVzIIgoLS0FMXFxVi6dCni4+MxZcoU0x88Ci9um0tOTsaMGTPMcu5YRh28iLM2iYhIDEw8kdFwGwq9KZ1Oh6tXr0KtVuPevXtwc3NDUFAQJBIJpk6dKnZ49BqjnfnV29uLb775BoIgYP/+/XBxcTFfkEQ0ZpY8u7G+vh6ZmZlwcnKCTCbD3LlzzXPwCNra2qBUKtHZ2YmYmBj4+fmZ/MyxLncBWPFERETiYeKJjI7bUGg8WlpaoFarcfnyZQwMDGD58uWQSCTw8fFhpYwFGMuwYYPBgLS0NNy/fx/79+9nKyWRFbD0bbVPnjyBSqVCS0sLIiMjLWZe3Ivb5jZu3IiwsDCT/swaTBAKMBhG22ZnQHS0gKwsVhMTEZH5MfFERBapv78f1dXVUKvVaG5uxtSpUyGRSBAUFAQ3Nzexw5uQxjps+NixYzh//jzefvttLFu2zPwBE9GYWXLF0zM6nQ5HjhyBRqNBYGAgIiMj4eTkZN4gXuPFbXMLFixAYmKiSX5e6fV6lJWV4aOPvHH9+nIYDKNJJgn49/8+E3/91yHw9vY2ekxERETDYeKJiCyaIAhobGyEWq1GTU0NDAYDVq1aBalUisWLF4uySWgiGuuw4YqKCuTm5mLPnj146623zBcoEY3baGY8OTgIiI21E3VLWmVlJfLz8zFz5kwkJSXB09NTvGBecPfuXWT86zcmKSkJCxcuHPWfHalq/N69e8jLy0NbWxs8PCLwu99JIQgj/xz8f//fbkyZ8iPa29sRFRWFNWvWjDomIiKi8WLiiYishlarxeXLl6FWq9HW1gYvLy9IJBIEBgZiMvs6TWosw4Y//7wBP/zwAwIDA7Fv3z4mB4mszGgSzYCAH36ox7vvilvN2NzcDKVSid7eXsTHx2P58uWixvPM06dPkZGRgfv372PXrl1Yv379sO+FI7Ux9/b2oqioCBqNBvPmzUNUVBRmzZo15HKXZ4KCgP/9vwefY2BgAIcPH8bly5exfv167Nq1i4s8iIjILJh4IiKrIwgCGhoaoFarcfXqVdjZ2cHf3x8SiQTz589nosPIxtZ6I+Dv/u4fMWfONLzzzju8qSGyUsNvqxXwp39aiTlzci0igaHVapGVlYUbN25g27Zt2LZtm0X8HNDr9SgqKsL58+fh7++PqKgoODs7v/K44duYBfzn/9wMD48/or+/Hzt37oRUKn1pftSvl7vY2QGRkcDvfgeEhr58liAIUKvVOHLkCObNm4ekpCS4u7ub6ltAREQEgIknIrJy3d3dqKiogEajQUdHB2bNmgWpVIo1a9Zg0qRJYodnE8Y6bPi//tdU/O53b1vMunMiejPDbavdtMmyEhiCIKCkpATFxcVYvnw54uLiLKYS9sqVK8jJycG0adOQnJz80qKFud4iLwAAOnRJREFUEyeA8PCRq8v+9m9P4N//+3XDbnody3KX+/fvQ6VSwWAwIDExEYsXLx7T10RERDQWTDwRkU0QBAG3bt2CRqPB9evX4eTkhDVr1kAqlWL2WHdO00vGUvFkZ2dAfX0rFi8245orIjKp4RIalpbAuHnzJg4dOoRJkyZBJpNhzpw5osbzTGtrK1QqFTo7OxEbG4tHj3zx+eeDSb2RmGqeVnd3NzIyMnD37l2EhYVh48aNFlEpRkREtoeJJyKyOZ2dnSgvL0d5eTmePn2KefPmQSqVYvXq1Rax+cgaDc54EqDTDX1TYm+vR1hYD44eZdsG0UTS3d2NzMxM3LlzxyISGB0dHVCpVGhtbUVkZCSCgoJEi+VFfX19yM3NxQ8/TEF+fiQcHAC9fnTfJ1NtEDQYDDh58iTKysrg5+eH6OhoVgsTEZHRMfFERDbLYDCgrq4OarUat27dgouLC9auXQupVIoZM2aIHZ5VOXVKhx07HAAMd5MkoLTUDps3mysqIrIULyYwfH19ERMTI2oCQ6fToaCgABUVFQgODkZERAQcHR1Fi+eZkhIBISHA8O+lr9fcDMwyUTFpbW0tsrOz4eHhAZlMhpkzZ5rmICIimpCYeCKiCeHx48coLy9HRUUFenp6sHjxYkilUqxatYoDsEcgCAJycnLw3XeTkJe3Bw4Odi8NwLW318NgsMeXXwJ/9mds0yCayK5du4bs7Gy4ubkhOTlZ9ARGRUUF8vPzMWvWLCQlJWHatGn/f3t3GhXlua55/KoCo4jibBxQI8YZB6hyiPOAigriBNEk7jixOis5PSS7Vw+rv3Wf1d2rT++kV5/eJnuLmpgYRVGj4KwxUUwcqgDFASWKOIsDyIxQ9faHOpo4IWgNDP/fl6xA8bx3aQm8V93P/fi0npqcEPo8nup4+qN79+4pMTFRBQUFiomJ0cCBAz13MQBAo0LwBKBRqaqq0rlz52S325Wbm6vAwECFhYUpPDxcbdq08XV5ddKRI0e0f/9+zZ07V4WFg546PcmpsLBcff55N40f7/tuAgC+d+/ePW3cuFH5+fl1IsC4efOmNm7cqIqKCs2bN0+9evXySR21mZf3R56a8fQ8Dx8+VHJysk6fPq2RI0cqIiKCN2cAAK+N4AlAo3Xnzh3ZbDadPHlSFRUVevvtt2W1WtW7d+8njqpuzC5cuKD169drzJgxmjx58uOPFxZWKiFhoyor7+njj5dwHDeAJzx8+FApKSnKzMzUiBEjNGXKFJ8GGGVlZdqyZYt+++03TZw4UWPHjvX6HKranhD6O0Pr1l3Re+/1cHdJz7+aYej48ePau3evgoODNX/+fL7HAwBeC8ETgEavsrJSp0+fls1m040bNxQUFKTw8HCFh4c36l+28/LytGrVKvXs2VPvvvvu45s0wzC0detWnTt3TkuWLFGXLl18XCmAuqiuBRiGYejnn3/Wzz//rD59+mjOnDlq1qyZW69R3QmAro4nQ05nzQIvf3/J4TC0dKld3brt0JgxYzRx4kSvvTFy5coVbdq0SZIUGxur7t27e+W6AICGh+AJAP7gxo0bstvtyszMVFVVlfr16yeLxaKQkJBGdcx0aWmpEhIS1KRJEy1btkxvvPHG48+lpqbqwIEDmjdvnkJDQ31YJYD64OrVq9q0aZMMw9D8+fPVo4d3OndeJDs7W1u2bFFAQIDi4uLU6dXakJ6Qmip9/rm0bZtrK53ZLMXESH/+szR6tORwOHTkyBF99FFHnT/fW07ny7u/5s2TPv1UGjXK0C+//KIDBw6oZ8+emjt3rgIDA1+75pooLi5WUlKSrl69qilTpmjEiBGN6mchAMA9CJ4A4DnKy8t16tQp2e125eXlqW3btrJYLBo6dKiaN2/u6/I8yuFw6LvvvlNeXp7i4+OfGMZ7/vx5bdiwQePGjdPEiRN9VySAeuVRgHHlyhVNnTrV5wFGfn6+Nm7cqLt37yoqKkpDhgx55bW+/FL65BPJz+/JoeGujiXpH//xvlq33qC7d+8qKGi6PvvMKsOo/rkfOCBNmvTkx3JycpSUlCR/f3/FxcWpa9eur1xzbTidTu3fv1+//vqrBg4cqFmzZj3xZgQAAC9D8AQA1TAMQ1evXpXdbteZM2ckSQMGDJDValW3bt0a5Du/KSkpSk9P15/+9KcnOhNu376t1atXKyQkRHFxcQ3yuQPwnLoWYFRWVmrnzp3KyMiQ1WrVtGnT5O9fu0MSUlOlceOk6n+bNvQf/kOyPv10uDp16qSvvpI+/vjFQdWKFdJHHz1/pcLCQm3atEk3b95UZGSkLBaL174Xnz17Vtu2bVOrVq0UFxen9u3be+W6AID6j+AJAGqotLRUGRkZstvtun//vjp06CCr1arBgwe7fU6Ir5w4cUI7d+5UdHS0wsPDH3+8pKRECQkJatq0qZYuXcq73QBe2aMAIygoSO+++65PAwzDMJSWlqZdu3apU6dOio2NVatWrWr89XPnSsnJTwZIT/PzcyomxqTNm38PiI4c0RMnhJrN0pw5rq11o0dXf02Hw6E9e/boxIkTGjJkiGbOnKkmTZrUuObXcffuXSUmJqqwsFAxMTEaMGCAV64LAKjfCJ4AoJYMw1BOTo5sNpuysrLk7++v0NBQWa3Wej1o+9KlS/ruu+80fPhwRUZGPv64w+HQt99+qzt37jyz9Q4AXkVdCzCuX7+uTZs2qbKyUvPmzVNISMhLv8Y1LNwVHL2M2SwVFz9/4PiLhpG/zKlTp5ScnKx27dopLi5Obdu2rd0Cr6iiokLbt2/X2bNn9c477ygiIuKJgeev85wAAA0TwRMAvIaioiKlpaUpLS1NhYWF6tKliywWi0JDQ+tVV9C9e/eUkJCgrl276r333nt8E2EYhlJSUpSRkaEPP/yQU40AuM3Dhw+1fft2nTlz5rkBhreVlpZq8+bNysnJ0aRJkzR69OgntrE9Hajcvi3VZi75rVvSm2+6t+bbt29r48aNKikp0dy5c9WnTx/3XuAFDMPQ0aNHtW/fPvXo0UPz5s1TRkaLagesAwAaL4InAHADp9Op7Oxs2e12ZWdnq2nTphoyZIgsFos6duzo6/KqVV5erlWrVskwDC1fvvyJbYPHjh3T7t27NWvWLIWFhfmwSgANkWEYOnbsmPbu3avu3btr/vz5atGihc/qcTqd+umnn3T48GH169dPMTExstmaPTdQ+Yd/kKZMeb2OJ3coLy/XDz/8oPPnz2vs2LGaMGGC1wK83NxcJSUl6ddfh2jLlsny8zPVem4VAKDhI3gCADcrKCiQ3W5Xenq6SkpK1L17d1mtVvXv37/Wg2s9zel0av369bp27ZqWL1+udu3aPf7cxYsXtW7dOo0YMULTpk3zYZUAGrpHAYbJZFJsbKy6devm03rOnz+vrVu3Ki1thJKSJrwgUDEUElKknJxAOZ1+L1zL399QTIxJSUmeq9cwDKWmpurgwYMKCQnR3LlzvXYC6969pZo2LUDSi4ecm0zS4cN0PgFAY0XwBAAe4nA4lJWVJZvNpsuXL6t58+YaOnSoLBZLjWZxeGNOxt69e3X06FG9//776tWr1+OPP9p6FxwcrIULF/p0+wuejzkqaGiKioqUlJSka9euaerUqRo+fLhPT8/cubNQM2e2VHWBivTo1+jqH7N9e76ioz0/g+nSpUvavHmzmjRpori4OK/MHXQNWDdUVfXiPwN/f1eXmCfDNwBA3UXwBABecPfuXdntdmVkZKi8vFy9evWSxWJR3759nwl1UlPllTkZGRkZ2rZtmyIjIzVixIjHHy8rK9OqVatkMpm0bNmyBnNiX0PhrdcH4AsOh0P79+/X0aNHFRoaqujoaJ/Ny6tJoOLnZ2jwYJMyMiQ/Pz23K2rBgsMaOPCwoqOjNXjwYI/X/eDBA23cuFG3b9/WjBkznjih1N3cMWAdANDwETwBgBdVVlbq7Nmzstlsunbtmlq2bKnw8HCFh4crKChIX34pffLJi25g3Dcn48qVK1q7dq2GDBmiqKiox10FTqdT33//va5fv/7M1jv4nrdeH4CvnTlzRtu2bVObNm0UFxfn9e9FtQ1U9u1z/fvbuvX3QHjOHOnTT6Xhwyu1Y8cOnTx5UsOGDdO0adPk5/firXnuUFVVpd27d8tut2vo0KGaMWOGmjRp4vbr1IUB6wCAuo/gCQB85NatW7LZbMrMzFRlZaWczlH6r/91sgzDs3MyCgoKlJCQoPbt22vRokVP3ADt3r1bx48f1wcffFCj48ThPamp0rhxUnU/tT01R4VtffCFO3fuKDExUcXFxYqJiVH//v29du1XDVRe9G/FMAzZ7Xbt3r1bnTt3VmxsrIKCgtxf+FMyMjK0Y8cOtW/fXnFxcWrTpo1b16fjCQBQEwztAAAf6dSpk6KiovTZZ59pxowZ2rYtRCZT9b+9+/lJX3zx6td8+PChNmzY8Hj+xx9Dp7S0NB07dkyRkZGETnXQ55+7/v6r87qvj6elprq2G7Vo4boJb9HC9f9HjrjvGsCLdOjQQfHx8QoJCdHGjRu1f/9+OWuScLhBUJBkNtfsvVmz2fV4yRWqvPnms+GKyWSS1WrVkiVLVFhYqL/97W/Kyclxc9XPGjp0qJYtW6by8nL9/e9/V3Z29jOPKStzBW1lZbVfPyDAtdX3Zedm+Pu7OsAInQCgcaLjCQDqANe7xoaczpcP0n3Vd40Nw9CmTZt08eJFLV26VG/+Yb9Dbm6u1q5dq7CwMM2cOdOnA33xLF90FbCtD3WFYRj69ddftX//fvXo0UPz589XYGCgR6957do1RUc/1KlTPV5yYl3th2aXlJRoy5YtysnJ0eTJkzVq1CiPf88tKyvT1q1blZ2drfHjx2v8+PE6csTklnlxvuzGBADUDwRPAFAHeGJOxtNbPg4ePKhDhw5pwYIF6tu37+PHFRQUaOXKlerYsaM++OADj88eQe15e44KN5Koiy5fvqykpCSZzWbFxcUpODjY7deoqKjQgQMHdOLECZWUhOl//+9oj2x/djqdOnjwoFJTU9WvXz/Nnj1bTZs2fc3qq2cYhg4dOqSffvpJly9P1zffDJOfn8ktwfJXX0kff0xQDQB4PoInAKgDatPRYjIZunDhhnr16vLcd8mfd+rZxIkP1KPHZi1Z0kdjxox5/NiKigqtXr1alZWVWr58uZo3b+7OpwU38XbHk+s0rydvIJ/G8ejwhcLCQiUlJen69euKjIyU1Wp1W7fQuXPntGvXLpWXl2vy5MkaNmyY/v53s0cDlaysLP3www9q0aKF4uLi1LFjx9d/Ii+xYcM1LVzYVZJ7A7UjR1xbfZ83YJ2AGgAaN4InAKgj5s6Vtm93yuF48fg9Pz+nBg68qLlzv1enTp1ktVo1aNCgx8eNv2h7lNnskNNp1v/8n9K/+TcmBQS43v1OTExUTk6Oli1b5pUbHry6mhzt7o4wiGHBqOscDof27t2r48ePa/DgwYqKinqtE9sKCwu1a9cuZWVlqU+fPpoxY4ZatWr1+POeDlTu37+vxMRE5efnKzo6WoMGDXr9Ravh6e8lHEYAAHgawRMA1BFr117Shx/21Mvehf75Z6c6dboom82m7OxsNWnSRIMHD5bD8Y5mz25b7faoR2vMni2NH29TQcEOLVy4UH369HHrc4H7HT5saNw4yd1dCk/jeHTUF5mZmUpOTlbbtm0VFxentm3bPvH5lwUgTqdTNptNBw4c0BtvvKHp06erf//+L+yg8mSgUllZqZSUFJ06dUrDhw/X1KlTPbLtmWAZAOALBE8AUAfcuHFDa9as0dWrM/T3vw+t8dyNBw8eyG63Kz09XQkJM3ThQl85nS8/sNTPz5DDIf37f39J//RPvTzwjOBuBw8e1F/+UqKdO2e6bS7L83BjivokLy9PiYmJKikp0Zw5c9S3b9/nbjd+emj27du3lZycrOvXr8tisSgiIkLNmjXz6XMxDEMnTpzQnj171LVrV8XGxqply5ZuvQbBMgDAFwieAMDHioqKtHLlSgUFBWnx4sU6dsy/1ts6iosdatXKXKNT8f7IZDJ0+LCJ+Rt13JkzZ5SUlKRJkybJbB7r8Tkqrm2fhhwOz27rA9yhvLxc27ZtU1ZWlvLzF+j//t8+Lwxn//mfHerX7yf98ssvateunaKiotS9e3ffFf8c165d08aNG+V0OjV//ny99dZbblubYBkA4AsETwDgQ5WVlfr6669VVFSk+Pj4J97drs22jtq+i/0I4UHd96gbrn///pozZ87jbUCe3Pazb1+Zpk5tJk9v6wPcxTAMffllpj75ZJCqe91KhpYv/0aLFoVo9OjRdfYUz5KSEiUlJSk3N1cRERF655133DZEncMDAADe9vL9GAAAjzAMQ8nJycrLy9OCBQue2VIREODa4lCTUCEoyPXudG1VVbk6Z8rKav+18LyioiJt2LBBHTt2VHR09BM3nrV5fdSGw+HQtWsbNHfufplMhvz9n/y8v78rdFqxgtAJdYfJZNL+/YP1shzJbDZ069ZCjRs3rs6GTpIUGBioRYsWadSoUdq3b5+SkpJUUVHhlrU/+8zV/VUdh8PVRQkAgDsQPAGAj6SmpiozM1OzZ89Wly5dXmutgADXu9NPhwQ14XS6OmdQt1RVVSkxMVGStGDBgtc6taumDMNQSkqKrl+/rv/zf/rp8GGTYmJ+DzUfzco5fPj1Z0kB7lRW5prpVN32UElyOs3aubNpvQjbzWazIiIiFBcXp99++00JCQm6c+fOa687ZowrODaZnv2ZQbAMAPAEttoBgA9kZWUpMTFR48aN08SJE92yZmqqNG6cXnqq3dNcHQAl6tChhVvqwOszDEM//PCDzp49qyVLlrx2MFlTR48e1Z49exQTE6OhQ4c+/jjHo6Oua+hDs+/du6fExEQVFBQoJiZGAwcOfOYxtf13euSIPD4vDgAAieAJALzu9u3bWrVqld5++23Fxsa6bW6HJH31lfTxx5KfX/XzOx4xm53q1++8FixIUr9+/WS1WvXWW2+5tSbU3pEjR7R//37NmzdPoaGhXrnmb7/9pu+//14jR47U1KlTX3kdQir4QmMYmv3w4UMlJyfr9OnTGjlypCIiIuTn51ejU/yqw79ZAICnETwBgBeVlJQoISFBTZs21dKlS/XGG2+4/RpPv4tdHZNJ2r+/QoGBGbLZbLp7967atWsni8WioUOHKoC7EK87f/68NmzYoLFjx2rSpEleuebdu3eVkJCg7t27a8GCBTK/wsCw1735BV7X9Oml2ru3mZzOF79+6/vQbMMwdPz4ce3du1fBwcF68GChPvus2TNvNjw6xW/FCrbFAgB8j+AJALzE4XBo7dq1unfvnpYvX67WrVt79HplZdI//7P0H/+j6ybkZTclhmHoypUrstlsOnv2rEwmk0JDQ2WxWBQcHEwXlBfk5eVp1apVCgkJUVxcnFf+zMvKypSQkCCz2azly5eradOmtV7jyy+lTz55ttOOm194Q0VFhQ4cOKCkpFtas2aJGsNpjFeuXNH/+l+/6K9/fVeN4fkCAOo3gicA8IJHJ9idOnVKH374obp16+a1a7/KHI+SkhJlZGTIbrcrPz9fb775piwWiwYPHvxKwQRerrS0VCtXrvRoN9zTnE6n1q1bp5s3b2r58uVq27ZtrdeoyWwxb9z8sl2occrKytLOnTtVXl6uSZMmKS1tuP7hH8yNIgSdNatKO3aYG3SHFwCgYSB4AgAvOHbsmHbv3v3M0GZvepUbc8MwdPHiRdntdp0/f15NmjTRoEGDZLVa1ak2k3xRLYfDoW+//VZ37txRfHy8x7vhHtm1a5dsNps++OAD9ezZ85XWmDtXSk6ufqaYJ29+2eLXOBUWFmrXrl3KyspS7969NXPmTLVq1UpS4xia3RhmWgEAGg6CJwDwsIsXL2rdunWvPbTZ1woLC5WWlqa0tDQVFRWpa9euslqtGjhwoJo0aeLr8uotwzCUkpKijIwMffjhh+revbtXrmu325WSkqIZM2Zo2LBhr7SGr29+6/oWP7qw3M8wDNlsNu3fv19NmjTR9OnTNWDAgOduS23If/4N/RQ/AEDDQvAEAB70aGhzt27dtHDhwlca2lzXOJ1OXbhwQTabTRcvXlSzZs00ZMgQWa1WtW/f3tfl1TvHjx/Xrl27NGvWLIWFhXnlmpcvX9a3336r8PBwzZw585XX8eXNb13Z4vc8dGF5Rl5enpKTk3Xt2jVZLBZFRESoWbNmvi7LJ3wd+gIAUBsETwDgIWVlZVq1apVMJpOWLVvWIG+Q7t+/r7S0NKWnp6u0tFRvvfWWLBaL+vfvLz8/P1+XV+ddunRJ3333nUaMGKFp06Z55Zr5+flauXKl3nzzTX3wwQev9ffky5tfX2/xe5G63oVVH1VWVurQoUP65Zdf1LZtW0VHR3utM7Auq6v/BgAAeBrBEwB4gNPp1Pfff6/r168rPj7+lYY21ydVVVU6d+6c7Ha7cnNzFRgYqLCwMIWHh6tNmza+Lq9OunfvnhISEtS1a1e99957XumGq6io0KpVq1RVVaXly5erefPmr73m3LnS9u2GHI4Xn6zl7pvfutrtUZe7sOqrnJwcpaSk6MGDBxo7dqxGjx4tf39/X5dVJ/B6AwDUFwRPAOABu3fv1vHjx7Vo0aJXHtpcX925c0c2m00nT55URUWF3n77bVmtVvXu3btBbDV0h/LyciUkJEiSli9f7pVuOKfTqcTEROXm5mrZsmXq0KGDW9ZNTs7XrFmt5c0j3evqfBs6UNyntLRUe/fu1cmTJ9WjRw9FRUWxlfc5vvpK+vhjOuwAAHUbwRMAuFlaWpqSk5Nfa2hzQ1BZWanTp0/Lbrfr+vXrCgoKUnh4uMLDw9WyZUtfl+czf+yGW758udq1a+eV6+7fv19HjhzRe++9p969e7tlzdLSUiUkJOjXX4coMXGc/PxMXrn5rYsdT3WxpvrIMAxlZmZqz549cjqdmjJlisLCwp47PBwujeEUPwBA/UbwBABulJubq7Vr1yosLExRUVG+LqfOuHHjhux2uzIzM1VVVaV+/frJYrEoJCSk0d1Q7tmzR8eOHdP777+vXr16eeWap06d0tatWzVlyhSNGjXKLWs6HA599913ysvLU3x8vM6cae3Vm19Xd5GhqirvbfGrTl3twqpP7t+/rx07dujSpUsKDQ3VtGnT1KJFC1+XVW805FP8AAD1G8ETALhJQUGBVq5cqY4dO7720OaGqry8XJmZmbLZbMrLy1ObNm1ksVgUFhbmlnlDdV16erq2b9+u6dOna/jw4V655rVr1/T1119r0KBBmjVrltuCvpSUFKWnp+tPf/qTevTo8fjj3rr5PXiwUpMm+cubW/yqQ8fTq3M4HPr111/1888/KzAwUDNnznRbVx4AAPA9pjMCgBtUVFRo/fr1atq0qWJjYwmdXqBZs2YaNmyYrFarrl69KrvdroMHD+rgwYMaMGCArFarunXr1iC7oK5cuaKUlBSFh4d7bQtmYWGhEhMT1blzZ82cOdNtf64nTpyQ3W5XdHT0E6GT5ApTPB2oGIah27c3KyamtbZvn1btFj9vbTUKCHB1V71sxpOfn6HZs02ETv/i+vXrSk5OVl5enkaOHKkJEybojTfe8HVZAADAjeh4AoDXZBiGEhMTlZOTo2XLlqljx46+LqleKS0tVUZGhux2u+7fv68OHTrIarVq8ODBXhm67Q2PuuE6dOigRYsWeSWYrKys1Jo1a1RSUqL4+Hi3bVm6dOmSvvvuOw0fPlyRkZFuWbO2fvzxRx0+fFgLFy7UnTt96sx8m5qcMiYZWrPmNy1e3Lg7eioqKvTjjz/q+PHj6ty5s6Kjo9W5c2dflwUAADyA4AkAXtOBAweUmpqqhQsXqk+fPr4up94yDEM5OTmy2WzKysqSv7+/QkNDZbVa1aVLF1+X98oePnyo1atXq6KiQvHx8V7ZUmgYhjZv3qwLFy5o6dKl6lSb4UPVuH//vlauXKmuXbvqvffe88kphZmZmdqyZYsiIiI0+g/JUl2Zb1P9KWOG/tW/OqVOnX6QxWJRZGSk/P0bX/P5+fPntXPnTpWVlWnixIkaMWIEJ14CANCANb7fdgDAjTIzM5WamqqIiAhCp9dkMpkUEhKikJAQFRUVKT09XXa7Xenp6erSpYssFotCQ0Pr1TYcwzC0detW5efna9myZV6bY3Xo0CGdOXNGsbGxbgudysvLtX79egUGBmr+/Pk+CQquX7+u7du3a/Dgwc8MSffGFr+a+OgjadCgZ08Zi4mRPv3UpNGjhygtzaGdO3fq5s2biouLU6tWrXxdtlcUFRVp165dOnfunHr37q0ZM2aodevWvi4LAAB4GB1PAPCKrl+/rjVr1ig0NFQxMTENci6RrzmdTmVnZ8tutys7O1tNmzbV4MGDZbVa68WWxkdbwhYsWKC+fft65Zpnz57Vpk2bNGHCBI0fP94tazqdTq1fv17Xrl3T8uXL1a5dO7esWxuFhYVauXKlWrdurQ8//LBedApV14V148YNbdy4UQ8fPtT8+fMVEhLimyK9wDAM2Ww2HThwQP7+/po+fboGDBjA90wAABoJgicAeAX18Sa4visoKHjcAVVSUqLu3bvLarWqf//+dfLP//Tp09q8ebMmT56sMWPGeOWat27d0urVq9WnTx/NmzfPbTf2e/fu1dGjR/X++++rV69eblmzNiorK/X111+ruLjYrfOqfK20tFRbtmzRpUuXNHHiRI0ZM6bBhTF5eXlKSUnR1atXFR4eroiICAXUhdY0AADgNQRPAFBLDfUmuL5wOBzKysqS3W5XTk6OmjdvrqFDh8pisaht27a+Lk+Sq5tlzZo1GjBggGbPnu2VMKG4uFgrV65UYGCglixZoiZNmrhl3YyMDG3btk2RkZEaMWKEW9asDcMwtGXLFmVlZWnp0qUNbgC10+nUzz//rEOHDqlPnz6aM2dOgxiqX1VVpUOHDunIkSNq27atoqKinjkBEQAANA4ETwBQC49ugs+fP68lS5Y0uJvg+ubu3buy2+3KyMhQeXm5evXqJYvFor59+/psWHFRUZFWrlypoKAgLV682CvdWFVVVVq7dq3y8/MVHx+voKAgt6x75coVrV27VkOGDFFUVJRPunEOHz6sH3/8UfPnz9fAgQO9fn1vuXDhgrZu3aqAgAC9++67evPNN31d0ivLyclRSkqKHjx4oDFjxmjMmDF1sisRAAB4B8ETANTCoUOHdPDgQcXGxmrAgAG+Lgf/orKyUmfPnpXNZtO1a9fUsmVLhYWFKTw83KuDmx91wxUVFSk+Pl4tW7b0+DUNw9D27duVmZmpxYsXKzg42C3rFhQUKCEhQe3bt9eiRYvk5+fnlnVrIysrS4mJiRo/frwmTJjg9et7W35+vhITE3Xv3j1FR0dr8ODBvi6pVkpLS7Vv3z5lZGSoe/fuio6OVvv27X1dFgAA8DGCJwCooXPnzmnjxo2N5ia4vrp165ZsNpsyMzNVWVmpPn36yGq1qlevXh7t2Hl0gt25c+e0ZMkSdenSxWPX+qNffvlF+/bt05w5c9wWVDx8+FCrV69WRUWF4uPjvXYa3x/dvn1bq1at0ttvv63Y2NgGN/voRSorK7Vjxw6dPHlSVqtVkZGRPgn9asMwDGVmZmrPnj1yOp2aMmWKwsLCGs3fGQAAqB7BEwDUwKOb4N69e2v+/PncUNUDFRUVyszMlM1m0+3bt9W6dWtZLBaFhYUpMDDQ7dfzxZaw7OxsrV+/XqNGjVJERIRb1jQMQ5s2bdLFixe1dOlSn2z5Kikp0cqVKxUQEKAlS5bojTfe8HoNvmQYhux2u3bv3q3OnTsrNjbWbdsn3S0/P187duzQxYsXNXDgQEVGRjL3DgAAPIHgCQBeorHfBNd3hmHo+vXrstlsOnPmjJxOp/r37y+r1aoePXq4JUR8tCVs3Lhxmjhxohuqfrk7d+5o1apV6tGjh9599123zbQ6ePCgDh06pAULFqhv375uWbM2HA6H1q5dq3v37ik+Pt6rWyXrmuvXr2vjxo2qqqrS/Pnz1bNnT1+X9JjD4dDRo0f1008/KTAwUDNnzlTv3r19XRYAAKiDCJ4AoBrcBDcsZWVlOnnypGw2m+7du6f27dvLYrFoyJAhNT7ivaxMKiyUgoKkgADfbAkrLS1VQkKC/P39tWzZMjVt2tQt654+fVqbN2/W5MmTNWbMGLesWRuGYSg5OVmnTp3Shx9+qG7dunm9hrqmpKREW7ZsUU5OjiZPnqxRo0b5vOPy+vXrSk5OVl5enkaMGKGJEycSyAMAgBcieAKAF/DU0Gb4nmEYys3Nlc1m07lz52Q2mxUaGiqLxaKuXbs+98Y+NVX6/HNp2zbJ6ZTMZikqqkpvvbVF/fvf19KlS71y8+1wOLRu3TrdunVL8fHxatOmjVvWvXHjhtasWaP+/ftrzpw5Pgk3jh49qj179igmJkZDhw71+vXrKqfTqYMHDyo1NVX9+vVTTEyMmjVr5vU6Kioq9OOPP+rEiRPq1KmToqKivDbLDAAA1F8ETwDwL57uZHl0Ezx79mwNGTLE1+XBQ4qLi5Weni673a4HDx6oU6dOslqtGjRo0OMg6csvpU8+kfz8pKqq37/WbHbK6TTp88/L9emnNeuYel07duxQWlqaFi1apLfeesstaxYVFWnlypUKCgrS4sWL5e/v75Z1a+O3337T999/r5EjR2rq1Klev359kJWVpR9++EGBgYF699131bFjR69d+/z589q5c6fKyso0ceJEjRgxwm3bOwEAQMNG8ASg0XteJ0tERLG6ddukd98N1pQpU3xdIrzA6XTq4sWLstvtunDhgpo0aaLBgwfL4XhHs2e3VXU/LU0m6fBhafRoz9Z44sQJ7dy5U1FRUbJYLG5Zs7KyUt98840KCwsVHx+vli1bumXd2rh7964SEhLUvXt3LViwgECjGvfu3dPGjRuVn5+v6OhoDRo0yKPXKyoq0u7du3X27Fm9/fbbmjlzplq3bu3RawIAgIaF4AlAo/biThaHnE6z/vpXQx9/zE1wY/PgwQOlpaUpLS1NCQkzdOFCXzmdL34d+PtLMTFSUpLnasrJydG3336rYcOGafr06W5Z0zAMbd26VefOndOSJUt8sm2qrKxMCQkJ8vPzc+u8qobs4cOH2rFjh06dOqXhw4dr6tSp8vPzc+s1Hp2st3//fvn7+ysyMlIDBw70+XwpAABQ/xA8AWi0UlOlceNUJzpZUDcVFzvUqpVZTufLb7bNZqm42LVN093u37+vhIQEde7cWe+//77bOoJSU1N14MABzZs3T6GhoW5ZszacTqfWrVunmzdvavny5Wrbtq3Xa6ivDMPQiRMntGfPHnXt2lWxsbFu61bLy8tTSkqKrl69qrCwME2ZMqXGw/cBAACextv4ABqtzz93dTpVx89P+uIL79SDuqekxK9GoZPk2qZZWOj+GioqKrR+/XoFBARo/vz5bgudzp8/rwMHDmjcuHE+CZ0kac+ePbp8+bJiY2MJnWrJZDJp+PDhWrx4sQoKCvS3v/1Nly9ffq01q6qqdPDgQf3tb39TaWmpFi9erFmzZhE6AQCA10LHE4BGqaxMatHCFRa8jCc7WVC31e51Yqi42OTW14nT6dSGDRt05coVLV++XO3bt3fLurdv39bq1avVq1cvxcbG+mT7lN1uV0pKimbMmKFhw4Z5/foNSUlJiZKSkpSbm6uIiAi98847z/ydPn14wtMuX76slJQU5efna+zYsRozZoxPhswDAICGh44nAI1SYWHNwgTJc50sqPsCAlyzm152/202O9S37zlt3fq9Lly4IGdNX1wvceDAAf3222+aP3++20KnkpISbdiwQW3atNHs2bN9EjpdvnxZO3fulNVqJXRyg8DAQC1atEjvvPOO9u3bp6SkJFVUVEhybSmeO9cVoHbq5Prv3LnSkSOury0rK9O2bdv0zTffKDAwUB999JEmTJhA6AQAANyGjicAjRIdT6ipms0CM5SQcEFVVT/r5s2batWqlcLDwxUeHq4WLVrU6DpPd6RkZGRo27ZtmjZtmkaOHOmW5+JwOPTtt9/q7t27Wr58uU9OJ8vPz9fKlSvVqVMnvf/++24fit3YnTt3Tj/88IOCgoJUUvIn/af/1PKZwxP8/SWHw9B/+S83FBT0vRwOh6ZMmaLw8HCGhwMAALcjeALQaM2dKyUnP3lD9jRvnFaGuu+rr6SPP3729EPXDby0YoX00Ueuj924cUM2m02ZmZlyOp3q16+fLBaLevbs+dyb+tRU17yxbdtcQajZLE2dWqrg4I2KimqjWbNmuSUMMAxDKSkpysjI0Icffqju3bu/9pq1VVFRoVWrVqmqqkrx8fHMDvKQu3fv6r//90P64os5kqp77Rj6b//tJ/3bf2t122ByAACApxE8AWi0ONUOtXHkiGvQ/NatvwdEc+ZIn376/NdHeXm5Tp48Kbvdrjt37qht27ayWCwaOnSomjdvLkn68kvpk0+eDbTMZoecTrP+3/9z6pNP3NMRdOzYMe3evVsxMTEaOnSoW9asDafTqcTEROXm5mrZsmXq0KGD12toTGbPdio5WXI6XzxVwc/P0OzZJoJ1AADgUQRPABq12nSyANLLhzQ/zTAMXblyRXa7XWfPnpUkDRw4UE7nKMXGdpRhvLgjxV3B58WLF7Vu3TqNHDlSU6dOfb3FXtH+/fv1yy+/aOHCherdu7dPamgs2EoMAADqEoInAI1ebTtZgFdVUlKijIwM2e12ffnlFF240LfajhR3bPW8d++eEhISFBwcrIULF8ps9v65IqdOndLWrVs1ZcoUjRo1yuvXb2xu33YNEq+pW7ekN9/0XD0AAKBxI3gCgH9R204W4FWVlhpq2VJyOl8+u+l1OlLKysq0atUqmUwmLVu2TM2aNXuFal/PtWvX9PXXX2vQoEFum1eF6tHxBAAA6hLvv+0JAHVUQIDrXX9uwOBpRUWmGoVOkis8KCys/TWcTqc2b96skpISLVy40CehU2FhoRITE9WlSxfNnDmT0MlLqqqKZLVek9nsqPZx/v6u7k6+5wEAAE8ieAIAwMuCglydJjVhNhsKCnr548rKXFusyspc/793715dunRJsbGxatu27asX+4oqKyu1YcMGmc1mxcXFyd/f3+s1NDaGYchut+uvf/2rLJZDMozqX2QOh2tLMQAAgCcRPAEA4GUBAa7ZTS/LYsxmh/r2PafExK91+vRpVf1xAv6/SE2V5s51ba3q1Mn130mT8rVp0w1Nnz5dISEhHnoWL2YYhrZt26a7d+9q4cKFatGihddraGzu3LmjNWvWKCUlRQMGDNBf/jJHK1aYZDI9+zrz93cNrl+xgjl2AADA85jxBACAD6SmSuPGSdX9FDaZDH3zTY4cjkPKzc1V8+bNFRYWJovFojZt2ujLL6VPPnn2VEaz2SGn06wvvzT55FTGn3/+WT/99JPi4uLUv39/7xfQiFRVVenw4cNKTU1VmzZtFBUVpbfeeuvx5zk8AQAA+BrBEwAAPvLVV9LHHz8bHPn7u7ZBrVihx8HRnTt3ZLPZdPLkSVVUVMjheEf/+I9TZBgvnptkMkmHD3s3YDh37pw2btyoCRMmaPz48d67cCN0+fJlpaSkKD8/X2PGjNHYsWNfuKWRwxMAAICvEDwBAOBDte1Iqays1OnTp7VsWWudPNldTqffC9f293dt6UtK8uAT+INbt25p9erV6tOnj+bNm8cwcQ8pKyvTvn37lJ6erm7duik6OlodOnTwdVkAAADPRfAEAEAdUJuOlLIy1ywnp/Pl65rNUnGx57tciouLtXLlSgUGBmrJkiVq0qSJZy/YCBmGoTNnzmj37t2qqqpSRESELBYLAR8AAKjTOGIGAIA6ICCg5uFQYWHNQifJ9bjCQs8GT1VVVdq4caOcTqcWLFhA6OQBBQUF2rFjh3777TcNGDBAkZGRatmypa/LAgAAeCmCJwAA6pmgIFcnU03CJ5PJUEHBVXXs2M0jnTGGYWjHjh26ceOGFi9erKCgILdfozFzOp06evSofvrpJwUEBGjBggXq27evr8sCAACoMYInAADqmYAA1+ym5OQnh5I/zc/PqdDQS9qwYZ06dOggi8WiIUOGqFmzZm6r5ejRo8rIyNCcOXMUHBzstnUh3bhxQ8nJybp165ZGjBihiRMnqmnTpr4uCwAAoFaY8QQAQD2UmiqNGydV91PcZJIOHTLUpUuObDabsrKy5O/vr9DQUFmtVnXp0uW1asjOztb69es1atQoRUREvNZa+N3Dhw918OBBHTt2TB07dlR0dLS6du3q67IAAABeCcETAAD11FdfSR9/LPn5Pdn55O8vORzSihXSRx/9/vGioiKlp6fLbrersLBQnTt3ltVqVWhoqN54441qr/X08PM7d+5o1apV6tGjhxYsWMCAaze5cOGCdu7cqZKSEk2YMEEjR46Un9+LTy4EAACo6wieAACox44ckb74Qtq61TXzyWyW5syRPv1UGj36+V/jdDqVnZ0tu92u7OxsNW3aVIMHD5bValXHjh2feGxqqvT559K2bb+vHxVVpZ49t6pv37taunQp27/coLi4WLt379aZM2fUq1cvzZw5U23atPF1WQAAAK+N4AkAgAbg6Y6kmiooKJDdbld6erpKSkrUvXt3WSwWDRgwQCtX+uuTT57tqDKbnXI6TfrLX0r12WeB7n8yjYhhGEpLS9P+/ftlNpsVGRmp0NBQOsgAAECDQfAEAADkcDiUlZUlu92unJwc3br1tr766j1JLw5ATCbp8OEXd1ahenfu3FFKSoquXLmioUOHasqUKWrevLmvywIAAHArgicAAPCEu3fvKibGoaNH28vpfPF8IX9/1+l6SUleLK4BqKqqUmpqqg4fPqzWrVsrKipKPXv29HVZAAAAHkHwBAAAnlBWJrVo4Zrp9DJms1RcXLvtfY1Zbm6ukpOTlZ+fr9GjR2vcuHHy9/f3dVkAAAAew286AADgCYWFNQudJNfjCgsJnl6mrKxM+/btU3p6uoKDgxUXF/fMIHcAAICGiOAJAAA8ISjI1clUk/DJZHIqM/NXBQYOUYsWLTxfXD1jGIbOnDmj3bt3q6qqSjNmzJDVamV4OAAAaDTYagcAAJ4xd66UnPzkaXZP8/MzNGzYDUVFfS2n06n+/fvLarWqR48eBCtynRi4c+dOZWdnq3///po+fbpatmzp67IAAAC8iuAJAAA8IzVVGjdOqu63hEen2oWHl+nkyZOy2Wy6d++e2rVrJ6vVqiFDhiigEe7BczqdOnbsmA4ePKiAgADNmDFDffv29XVZAAAAPkHwBAAAnuurr6SPP5b8/J7sfPL3lxwOacUK6aOPfv+4YRjKzc2VzWbTuXPnZDabNXDgQFmtVnXt2rVRdEHdvHlTycnJunnzpoYPH65JkyapadOmvi4LAADAZwieAADACx05In3xhbR1q2vmk9kszZkjffqpNHr0i7+uuLhYGRkZstvtKigoUKdOnWSxWDRo0KAGGcQ8fPhQBw8e1LFjx9SxY0dFR0era9euvi4LAADA5wieAADAS5WVuU6vCwqq3Ql2TqdTFy9elN1u14ULF9SkSRMNGjRIVqtVnTp18lzBXpSdna0dO3aopKREEyZM0MiRI+Xn5+frsgAAAOoEgicAAOAVDx48UFpamtLS0lRcXKzg4GBZrVYNGDBATZo08XV5tVZcXKw9e/bo9OnTCgkJ0cyZM9W2bVtflwUAAFCnEDwBAACvcjgcunDhgmw2my5duqRmzZpp6NChslgsat++va/LeynDMJSenq59+/bJbDZr2rRpGjRoUKOYYQUAAFBbBE8AAMBn7t+/L7vdrvT0dJWVlalnz56yWCzq169fndyudvfuXaWkpCg3N1dDhgzR1KlT1bx5c1+XBQAAUGcRPAEAAJ+rqqrS2bNnZbfbdeXKFQUGBiosLEwWi0WtW7f2dXmqqqpSamqqUlNT1apVK82cOVMhISG+LgsAAKDOI3gCAAB1Sl5enmw2m06dOqWKigr17t1bVqtVb7/9tsxms9fryc3NVUpKiu7fv6/Ro0dr7Nix9XImFQAAgC8QPAEAgDrp4cOHOn36tGw2m27evKmgoCBZLBaFhYWpZcuWHr9+WVmZ9u/fr7S0NAUHBys6OlodO3b0+HUBAAAaEoInAABQ5924cUM2m02ZmZlyOp3q27evrFarevbs6fah3oZh6OzZs9q1a5cqKysVEREhq9XK8HAAAIBXQPAEAADqjfLycp06dUo2m0137txR27ZtZbFYNHTo0BoN+S4rkwoLpaAgKSDg2c8XFBRo586dys7OVv/+/RUZGamgoCAPPBMAAIDGgeAJAADUO4Zh6MqVK7Lb7Tp79qwkaeDAgbJarQoODn6mOyk1Vfr8c2nbNsnplMxmKSZG+vOfpdGjJafTqePHj+vHH39Us2bNNGPGDPXr188XTw0AAKBBIXgCAAD1WklJiTIyMmS325Wfn6+OHTvKarVq8ODBatq0qb78UvrkE8nPT6qq+v3r/P0lh0P6H//jgdq0SdTNmzc1bNgwTZ48WU2bNvXdEwIAAGhACJ4AAECDYBiGLl26JLvdrqysLPn7+8vPb7z+838eJcOobj6ToT//+Qf9u383TMHBwV6rFwAAoDHw93UBAAAA7mAymdSrVy/16tVLhYWFSk9P17/+1x1lMjllGH4v/Do/P0M5ObMVHMzwcAAAAHej4wkAADRIZWVSixaGnM6XB0pms1Rc/PyB4wAAAHh1Zl8XAAAA4AmFhapR6CS5Bo4XFnq4IAAAgEaI4AkAADRIQUGuTqaaMJtdjwcAAIB7ETwBAIAGKSBAiolxnV5XHX9/ac4cttkBAAB4AsETAABosD77THI4qn+MwyF9+ql36gEAAGhsCJ4AAECDNWaMtGKFZDI92/nk7+/6+IoV0ujRvqkPAACgoSN4AgAADdpHH0mHD7u23T2a+WQ2u/7/8GHX5wEAAOAZJsMwDF8XAQAA4A1lZa7T64KCmOkEAADgDQRPAAAAAAAA8Ai22gEAAAAAAMAjCJ4AAAAAAADgEQRPAAAAAAAA8AiCJwAAAAAAAHgEwRMAAAAAAAA8guAJAAAAAAAAHkHwBAAAAAAAAI8geAIAAAAAAIBHEDwBAAAAAADAIwieAAAAAAAA4BEETwAAAAAAAPAIgicAAAAAAAB4BMETAAAAAAAAPILgCQAAAAAAAB5B8AQAAAAAAACPIHgCAAAAAACARxA8AQAAAAAAwCMIngAAAAAAAOARBE8AAAAAAADwCIInAAAAAAAAeATBEwAAAAAAADyC4AkAAAAAAAAeQfAEAAAAAAAAjyB4AgAAAAAAgEcQPAEAAAAAAMAjCJ4AAAAAAADgEQRPAAAAAAAA8AiCJwAAAAAAAHgEwRMAAAAAAAA8guAJAAAAAAAAHkHwBAAAAAAAAI8geAIAAAAAAIBHEDwBAAAAAADAIwieAAAAAAAA4BEETwAAAAAAAPAIgicAAAAAAAB4BMETAAAAAAAAPILgCQAAAAAAAB5B8AQAAAAAAACPIHgCAAAAAACARxA8AQAAAAAAwCMIngAAAAAAAOARBE8AAAAAAADwCIInAAAAAAAAeATBEwAAAAAAADyC4AkAAAAAAAAeQfAEAAAAAAAAjyB4AgAAAAAAgEcQPAEAAAAAAMAjCJ4AAAAAAADgEQRPAAAAAAAA8AiCJwAAAAAAAHgEwRMAAAAAAAA8guAJAAAAAAAAHkHwBAAAAAAAAI8geAIAAAAAAIBHEDwBAAAAAADAIwieAAAAAAAA4BEETwAAAAAAAPAIgicAAAAAAAB4BMETAAAAAAAAPILgCQAAAAAAAB5B8AQAAAAAAACPIHgCAAAAAACARxA8AQAAAAAAwCMIngAAAAAAAOARBE8AAAAAAADwCIInAAAAAAAAeATBEwAAAAAAADzi/wP1NkawCjBEUgAAAABJRU5ErkJggg==" + }, + "metadata": {}, + "output_type": "display_data" } ], - "execution_count": 119 + "execution_count": 58 }, { - "metadata": { - "ExecuteTime": { - "end_time": "2024-07-31T21:29:21.717811Z", - "start_time": "2024-07-31T21:29:21.697811Z" - } - }, + "metadata": {}, "cell_type": "code", + "outputs": [], + "execution_count": 54, "source": [ - "from scripts.district_heating_network.district_heating_factory import DistrictHeatingFactory\n", + "import csv\n", "\n", - "DistrictHeatingFactory(city=city, graph=network_graph)" + "def save_graph_to_csv(graph, file_path):\n", + " with open(file_path, mode='w', newline='') as file:\n", + " writer = csv.writer(file)\n", + " writer.writerow(['Node ID', 'Name', 'Type', 'Position'])\n", + " for node, data in graph.nodes(data=True):\n", + " writer.writerow([node, data['name'], data['type'], data['pos']])\n", + "\n", + "# Usage\n", + "file_path = 'network_graph_nodes.csv'\n", + "save_graph_to_csv(network_graph, file_path)" ], - "id": "25e14bd5433e3d95", - "outputs": [ - { - "ename": "TypeError", - "evalue": "__init__() got an unexpected keyword argument 'graph'", - "output_type": "error", - "traceback": [ - "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m", - "\u001B[1;31mTypeError\u001B[0m Traceback (most recent call last)", - "Cell \u001B[1;32mIn[94], line 3\u001B[0m\n\u001B[0;32m 1\u001B[0m \u001B[38;5;28;01mfrom\u001B[39;00m \u001B[38;5;21;01mscripts\u001B[39;00m\u001B[38;5;21;01m.\u001B[39;00m\u001B[38;5;21;01mdistrict_heating_network\u001B[39;00m\u001B[38;5;21;01m.\u001B[39;00m\u001B[38;5;21;01mdistrict_heating_factory\u001B[39;00m \u001B[38;5;28;01mimport\u001B[39;00m DistrictHeatingFactory\n\u001B[1;32m----> 3\u001B[0m \u001B[43mDistrictHeatingFactory\u001B[49m\u001B[43m(\u001B[49m\u001B[43mcity\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcity\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mgraph\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mnetwork_graph\u001B[49m\u001B[43m)\u001B[49m\n", - "\u001B[1;31mTypeError\u001B[0m: __init__() got an unexpected keyword argument 'graph'" - ] - } - ], - "execution_count": 94 + "id": "c82c1cfc3c55c319" }, { "metadata": { "ExecuteTime": { - "end_time": "2024-07-31T21:18:46.818842Z", - "start_time": "2024-07-31T21:18:46.799573Z" + "end_time": "2024-08-07T13:27:09.198869Z", + "start_time": "2024-08-07T13:27:09.180868Z" } }, "cell_type": "code", "source": [ - "for node_id, attrs in network_graph.nodes(data=True):\n", - " print(f\"Node {node_id} has attributes: {list(attrs.keys())}\")" + "import json\n", + "\n", + "def graph_to_geojson(graph):\n", + " features = []\n", + "\n", + " for node, data in graph.nodes(data=True):\n", + " feature = {\n", + " \"type\": \"Feature\",\n", + " \"geometry\": {\n", + " \"type\": \"Point\",\n", + " \"coordinates\": data['pos']\n", + " },\n", + " \"properties\": {\n", + " \"id\": node,\n", + " \"name\": data['name'],\n", + " \"type\": data['type']\n", + " }\n", + " }\n", + " features.append(feature)\n", + "\n", + " for u, v, data in graph.edges(data=True):\n", + " feature = {\n", + " \"type\": \"Feature\",\n", + " \"geometry\": {\n", + " \"type\": \"LineString\",\n", + " \"coordinates\": [graph.nodes[u]['pos'], graph.nodes[v]['pos']]\n", + " },\n", + " \"properties\": {\n", + " \"length\": data['length']\n", + " }\n", + " }\n", + " features.append(feature)\n", + "\n", + " geojson = {\n", + " \"type\": \"FeatureCollection\",\n", + " \"features\": features\n", + " }\n", + "\n", + " return geojson\n", + "\n", + "# Usage\n", + "geojson_data = graph_to_geojson(dhn_creator.network_graph)\n", + "with open('network_graph.geojson', 'w') as f:\n", + " json.dump(geojson_data, f, indent=2)" ], - "id": "ad48fbc87a598b85", - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Node (-73.70263014634182, 45.52966550204674) has attributes: []\n", - "Node (-73.70252245592799, 45.52959782722166) has attributes: []\n", - "Node (-73.70277983402246, 45.52975956880018) has attributes: []\n", - "Node (-73.70292834674622, 45.52985289718704) has attributes: []\n", - "Node (-73.70299601156968, 45.52989541912497) has attributes: []\n", - "Node (-73.70304798829301, 45.52992808234479) has attributes: []\n", - "Node (-73.70315317772048, 45.52999418549968) has attributes: []\n", - "Node (-73.70322951375971, 45.530042156604246) has attributes: []\n", - "Node (-73.70334527410391, 45.53011490273612) has attributes: []\n", - "Node (-73.70388612860485, 45.530454786598085) has attributes: []\n", - "Node (-73.70321670301797, 45.53098320823811) has attributes: []\n", - "Node (-73.70309371940914, 45.53090572804479) has attributes: []\n", - "Node (-73.70336752508702, 45.53107818505422) has attributes: []\n", - "Node (-73.70300302780161, 45.53115122842582) has attributes: []\n", - "Node (-73.70298632291501, 45.53083806779961) has attributes: []\n", - "Node (-73.70284664272657, 45.53075006869057) has attributes: []\n", - "Node (-73.70282694240179, 45.530737657402696) has attributes: []\n", - "Node (-73.70268296446567, 45.530646950694454) has attributes: []\n", - "Node (-73.70262035905371, 45.53060750902034) has attributes: []\n", - "Node (-73.70250974072788, 45.53053781900757) has attributes: []\n", - "Node (-73.70248122664219, 45.530519855013075) has attributes: []\n", - "Node (-73.70237692791034, 45.53045414637121) has attributes: []\n", - "Node (-73.70241425825014, 45.52952983362164) has attributes: []\n", - "Node (-73.70258909924681, 45.53147671471601) has attributes: []\n", - "Node (-73.70246956317335, 45.531401341489406) has attributes: []\n", - "Node (-73.70281850395438, 45.53162108764596) has attributes: []\n", - "Node (-73.70235595692806, 45.53165968576366) has attributes: []\n", - "Node (-73.70235908646175, 45.53133168062488) has attributes: []\n", - "Node (-73.70226538550632, 45.5312725976791) has attributes: []\n", - "Node (-73.7022262934011, 45.531247948232114) has attributes: []\n", - "Node (-73.70218216283965, 45.53122012179686) has attributes: []\n", - "Node (-73.7020876584622, 45.53116053225497) has attributes: []\n", - "Node (-73.70208089954498, 45.53115627043355) has attributes: []\n", - "Node (-73.70195718026818, 45.531078259496624) has attributes: []\n", - "Node (-73.7019336727694, 45.53106343689135) has attributes: []\n", - "Node (-73.70183972286668, 45.53100419697237) has attributes: []\n", - "Node (-73.70182154258106, 45.53099273343045) has attributes: []\n", - "Node (-73.70170504466955, 45.530919275910655) has attributes: []\n", - "Node (-73.70169068527439, 45.5309102216234) has attributes: []\n", - "Node (-73.70191018896638, 45.53200952628766) has attributes: []\n", - "Node (-73.70343390828414, 45.5311199883841) has attributes: []\n", - "Node (-73.70308928370066, 45.53179149942939) has attributes: []\n", - "Node (-73.70154615235963, 45.53081908668964) has attributes: []\n", - "Node (-73.70149535566978, 45.53078705694076) has attributes: []\n", - "Node (-73.70139243548935, 45.530722160831516) has attributes: []\n", - "Node (-73.70235555653572, 45.5304406823149) has attributes: []\n", - "Node (-73.70223631048641, 45.530365556799865) has attributes: []\n", - "Node (-73.70218808966641, 45.53033517747947) has attributes: []\n", - "Node (-73.7020516180255, 45.53024919976893) has attributes: []\n", - "Node (-73.70202483520858, 45.530232326481084) has attributes: []\n", - "Node (-73.70189576536478, 45.53015101193401) has attributes: []\n", - "Node (-73.70188535693748, 45.53014445458083) has attributes: []\n", - "Node (-73.70176137113975, 45.53006634300427) has attributes: []\n", - "Node (-73.70171679336974, 45.53003825882077) has attributes: []\n", - "Node (-73.70161674578377, 45.52997522841877) has attributes: []\n", - "Node (-73.70157021391765, 45.52994591314646) has attributes: []\n", - "Node (-73.70145508528618, 45.52987338162208) has attributes: []\n", - "Node (-73.7015262783945, 45.53176766055835) has attributes: []\n", - "Node (-73.70142255824699, 45.531702316306436) has attributes: []\n", - "Node (-73.70132694890151, 45.53164208190352) has attributes: []\n", - "Node (-73.70249378379357, 45.529882494691094) has attributes: ['type', 'id']\n", - "Node (-73.70236957992, 45.530697070843594) has attributes: ['type', 'id']\n", - "Node (-73.7023772579133, 45.52982887967387) has attributes: ['type', 'id']\n", - "Node (-73.70310348189996, 45.530242710105696) has attributes: ['type', 'id']\n", - "Node (-73.70219141578475, 45.5309810002753) has attributes: ['type', 'id']\n", - "Node (-73.7015878987858, 45.53110506016847) has attributes: ['type', 'id']\n", - "Node (-73.70197756808213, 45.531335127032875) has attributes: ['type', 'id']\n", - "Node (-73.70171824652937, 45.53119684899265) has attributes: ['type', 'id']\n", - "Node (-73.70181225980849, 45.53125598840158) has attributes: ['type', 'id']\n", - "Node (-73.70212216033907, 45.53141309516707) has attributes: ['type', 'id']\n", - "Node (-73.70224797036111, 45.531522088920134) has attributes: ['type', 'id']\n", - "Node (-73.70319066728962, 45.53075184355254) has attributes: ['type', 'id']\n", - "Node (-73.70309318391786, 45.53066844829803) has attributes: ['type', 'id']\n", - "Node (-73.70326346262547, 45.53124343502157) has attributes: ['type', 'id']\n", - "Node (-73.70289161913149, 45.53100954740511) has attributes: ['type', 'id']\n", - "Node (-73.7031243168426, 45.52969124795911) has attributes: ['type', 'id']\n", - "Node (-73.70332165936908, 45.531298238343524) has attributes: ['type', 'id']\n", - "Node (-73.70291683392738, 45.531464843960194) has attributes: ['type', 'id']\n", - "Node (-73.70257423757026, 45.53123533603945) has attributes: ['type', 'id']\n", - "Node (-73.70246354979903, 45.53116600989907) has attributes: ['type', 'id']\n", - "Node (-73.70137270924536, 45.53098156462814) has attributes: ['type', 'id']\n", - "Node (-73.70228611728258, 45.52973374332967) has attributes: ['type', 'id']\n", - "Node (-73.70192277090158, 45.530832193189546) has attributes: ['type', 'id']\n", - "Node (-73.70247403248253, 45.530300013163604) has attributes: ['type', 'id']\n", - "Node (-73.70233258364674, 45.53021274328478) has attributes: ['type', 'id']\n", - "Node (-73.70150159992788, 45.530157998392504) has attributes: ['type', 'id']\n", - "Node (-73.70178207574742, 45.53033147043354) has attributes: ['type', 'id']\n", - "Node (-73.70279118480165, 45.53007116190442) has attributes: ['type', 'id']\n", - "Node (-73.70290386342012, 45.53015742711493) has attributes: ['type', 'id']\n", - "Node (-73.70199360008198, 45.529972641218336) has attributes: ['type', 'id']\n", - "Node (-73.7032815855412, 45.52978985115031) has attributes: ['type', 'id']\n", - "Node (-73.70166271484868, 45.53063422765041) has attributes: ['type', 'id']\n", - "Node (-73.7015006171488, 45.530550593136034) has attributes: ['type', 'id']\n", - "Node (-73.70265213028476, 45.529962782747816) has attributes: ['type', 'id']\n", - "Node (-73.7029326957311, 45.53056979610127) has attributes: ['type', 'id']\n", - "Node (-73.70166661687237, 45.5297928936099) has attributes: ['type', 'id']\n", - "Node (-73.70193452736822, 45.53043505670828) has attributes: ['type', 'id']\n", - "Node (-73.70320906423977, 45.53033165241546) has attributes: ['type', 'id']\n", - "Node (-73.70242433058544, 45.531020523149344) has attributes: ['type', 'id']\n", - "Node (-73.70229173916934, 45.53104634226288) has attributes: ['type', 'id']\n", - "Node (-73.70164581777142, 45.53024975981883) has attributes: ['type', 'id']\n", - "Node (-73.70181323564402, 45.52988517687263) has attributes: ['type', 'id']\n", - "Node (-73.70207977647193, 45.53050710203167) has attributes: ['type', 'id']\n", - "Node (-73.70180201572698, 45.53073366018695) has attributes: ['type', 'id']\n", - "Node (-73.70260551746348, 45.53038579346295) has attributes: ['type', 'id']\n", - "Node (-73.7015368490746, 45.531520903846236) has attributes: ['type', 'id']\n", - "Node (-73.70277909755795, 45.530494359508104) has attributes: ['type', 'id']\n", - "Node (-73.7016306503588, 45.531601992190964) has attributes: ['type', 'id']\n", - "Node (-73.703188128229, 45.531634438129004) has attributes: ['type', 'id']\n", - "Node (-73.70225201894137, 45.5306050266003) has attributes: ['type', 'id']\n", - "Node (-73.70250211711432, 45.53079519337939) has attributes: ['type', 'id']\n", - "Node (-73.70143287673753, 45.53147394391961) has attributes: ['type', 'id']\n", - "Node (-73.7015564456529, 45.52971249323039) has attributes: ['type', 'id']\n", - "Node (-73.70213321668199, 45.530060293550356) has attributes: ['type', 'id']\n", - "Node (-73.70205098392802, 45.53092949418992) has attributes: ['type', 'id']\n", - "Node (-73.70273955351598, 45.53092005042424) has attributes: ['type', 'id']\n" - ] - } - ], - "execution_count": 80 - }, - { - "metadata": { - "ExecuteTime": { - "end_time": "2024-07-31T20:23:57.446448Z", - "start_time": "2024-07-31T20:23:57.431469Z" - } - }, - "cell_type": "code", - "source": [ - "for building in city.buildings:\n", - " print(building.name)" - ], - "id": "5b96a042e349e0eb", - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "65418\n", - "70816\n", - "73478\n", - "82649\n", - "84906\n", - "87241\n", - "87719\n", - "88675\n", - "88747\n", - "89061\n", - "89062\n", - "89251\n", - "91214\n", - "92337\n", - "92399\n", - "92520\n", - "92979\n", - "93149\n", - "95265\n", - "95266\n", - "95465\n", - "95704\n", - "96241\n", - "96579\n", - "96580\n", - "96930\n", - "96931\n", - "96996\n", - "96997\n", - "97648\n", - "98087\n", - "98666\n", - "98667\n", - "102035\n", - "103043\n", - "103740\n", - "103795\n", - "107302\n", - "108296\n", - "108297\n", - "109211\n", - "109305\n", - "109773\n", - "110561\n", - "110873\n", - "113368\n", - "116927\n", - "118062\n", - "118250\n", - "119143\n", - "120435\n", - "124177\n", - "125538\n", - "128322\n", - "129429\n", - "130498\n" - ] - } - ], - "execution_count": 75 - }, - { - "metadata": { - "ExecuteTime": { - "end_time": "2024-07-31T19:35:10.949715Z", - "start_time": "2024-07-31T19:35:09.846007Z" - } - }, - "cell_type": "code", - "source": "", - "id": "2bb88967eb45bcec", - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "IOPub data rate exceeded.\n", - "The Jupyter server will temporarily stop sending output\n", - "to the client in order to avoid crashing it.\n", - "To change this limit, set the config variable\n", - "`--ServerApp.iopub_data_rate_limit`.\n", - "\n", - "Current values:\n", - "ServerApp.iopub_data_rate_limit=1000000.0 (bytes/sec)\n", - "ServerApp.rate_limit_window=3.0 (secs)\n", - "\n" - ] - } - ], - "execution_count": 52 + "id": "f4e728dbec76fa37", + "outputs": [], + "execution_count": 56 }, { "metadata": {}, @@ -648,7 +335,7 @@ "outputs": [], "execution_count": null, "source": "", - "id": "f7c0742941b4f2d1" + "id": "499eb49027981886" } ], "metadata": {