{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Network analysis in Python\n", "\n", "Finding a shortest path using a specific street network is a common GIS problem that has many practical\n", "applications. For example navigators are one of those \"every-day\" applications where **routing** using specific algorithms is used to find the optimal route between two (or multiple) points.\n", "\n", "It is also possible to perform network analysis such as tranposrtation routing in Python.\n", "[Networkx](https://networkx.github.io/documentation/stable/) is a Python module that provides tools for analyzing networks in various different ways. It also contains algorithms\n", "such as [Dijkstra's algorithm](https://networkx.github.io/documentation/networkx-1.10/reference/generated/networkx.algorithms.shortest_paths.weighted.single_source_dijkstra.html#networkx.algorithms.shortest_paths.weighted.single_source_dijkstra) or\n", "[A*](https://networkx.github.io/documentation/networkx-1.10/reference/generated/networkx.algorithms.shortest_paths.astar.astar_path.html#networkx.algorithms.shortest_paths.astar.astar_path) algoritm that are commonly used to find shortest paths along transportation network.\n", "\n", "To be able to conduct network analysis, it is, of course, necessary to have a network that is used for the analyses. [OSMnx](https://github.com/gboeing/osmnx) package that we just explored in previous tutorial, makes it really easy to retrieve routable networks from OpenStreetMap with different transport modes (walking, cycling and driving). OSMnx also combines some functionalities from `networkx` module to make it straightforward to conduct routing along OpenStreetMap data.\n", "\n", "Next we will test the routing functionalities of OSMnx by finding a shortest path between two points based on drivable roads. When fetching netowrk data from OpenStreetMap using OSMnx, it is possible to define the type of street network using the `network_type` parameter (options: `drive`, `walk` and `bike`).\n", "\n", "- import modules:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import osmnx as ox\n", "import networkx as nx\n", "import geopandas as gpd\n", "import matplotlib.pyplot as plt\n", "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Download the OSM data from Kamppi but this time include only such street segments that are meant for cars by specifying `'drive'` into `network_type`:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "place_name = \"Kamppi, Helsinki, Finland\"\n", "graph = ox.graph_from_place(place_name, network_type='drive')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Plot the graph:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = ox.plot_graph(graph)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Okey so now we have retrieved only such streets where it is possible to drive with a car. Let's confirm\n", "this by taking a look at the attributes of the street network. Easiest way to do this is to convert the\n", "graph (nodes and edges) into GeoDataFrames.\n", "\n", "Converting graph into a GeoDataFrame can be done with function `graph_to_gdfs()` that we already used in previous tutorial. With parameters `nodes` and `edges`, it is possible to control whether to retrieve both nodes and edges from the graph. \n", "\n", "- Let's retreive the edges as a geodataframe:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Retrieve only edges from the graph\n", "edges = ox.graph_to_gdfs(graph, nodes=False, edges=True)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['u', 'v', 'key', 'osmid', 'oneway', 'lanes', 'name', 'highway',\n", " 'maxspeed', 'length', 'geometry', 'junction', 'bridge', 'access'],\n", " dtype='object')" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Check columns\n", "edges.columns" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs'" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Check crs\n", "edges.crs" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
uvkeyosmidonewaylanesnamehighwaymaxspeedlengthgeometryjunctionbridgeaccess
0252165941372425714023856784True2Mechelininkatuprimary4040.885LINESTRING (24.92106 60.16479, 24.92095 60.164...NaNNaNNaN
12523887413724257130[29977177, 30470347]True3Mechelininkatuprimary4016.601LINESTRING (24.92103 60.16366, 24.92104 60.163...NaNNaNNaN
225238944252165940[372440330, 8135861]True2NaNprimary4025.190LINESTRING (24.92129 60.16463, 24.92127 60.164...NaNNaNNaN
3252389443198962780[25514547, 677423564, 30288797, 30288799]True[3, 2]Mechelininkatuprimary40242.476LINESTRING (24.92129 60.16463, 24.92136 60.164...NaNNaNNaN
425291537252915910[30568275, 36729015, 316590744, 316590745, 316...TrueNaNFredrikinkatutertiary30139.090LINESTRING (24.93702 60.16433, 24.93700 60.164...NaNNaNNaN
\n", "
" ], "text/plain": [ " u v key \\\n", "0 25216594 1372425714 0 \n", "1 25238874 1372425713 0 \n", "2 25238944 25216594 0 \n", "3 25238944 319896278 0 \n", "4 25291537 25291591 0 \n", "\n", " osmid oneway lanes \\\n", "0 23856784 True 2 \n", "1 [29977177, 30470347] True 3 \n", "2 [372440330, 8135861] True 2 \n", "3 [25514547, 677423564, 30288797, 30288799] True [3, 2] \n", "4 [30568275, 36729015, 316590744, 316590745, 316... True NaN \n", "\n", " name highway maxspeed length \\\n", "0 Mechelininkatu primary 40 40.885 \n", "1 Mechelininkatu primary 40 16.601 \n", "2 NaN primary 40 25.190 \n", "3 Mechelininkatu primary 40 242.476 \n", "4 Fredrikinkatu tertiary 30 139.090 \n", "\n", " geometry junction bridge access \n", "0 LINESTRING (24.92106 60.16479, 24.92095 60.164... NaN NaN NaN \n", "1 LINESTRING (24.92103 60.16366, 24.92104 60.163... NaN NaN NaN \n", "2 LINESTRING (24.92129 60.16463, 24.92127 60.164... NaN NaN NaN \n", "3 LINESTRING (24.92129 60.16463, 24.92136 60.164... NaN NaN NaN \n", "4 LINESTRING (24.93702 60.16433, 24.93700 60.164... NaN NaN NaN " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "edges.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Okey, so we have quite many columns in our GeoDataFrame. Most of the columns are fairly self-explanatory but the following table describes all of them. We can also see that the CRS of the GeoDataFrame seems to be WGS84 (i.e. epsg: 4326).\n", "Most of the attributes come directly from the OpenStreetMap, however, columns `u` and `v` are Networkx specific ids. You can click on the links to get more information about each attribute:\n", "\n", "\n", "| Column | Description | Data type |\n", "|------------------------------------------------------------|-----------------------------|-------------------|\n", "| [bridge](http://wiki.openstreetmap.org/wiki/Key:bridge) | Bridge feature | boolean |\n", "| geometry | Geometry of the feature | Shapely.geometry |\n", "| [highway](http://wiki.openstreetmap.org/wiki/Key:highway) | Tag for roads (road type) | str / list |\n", "| [lanes](http://wiki.openstreetmap.org/wiki/Key:lanes) | Number of lanes | int (or nan) |\n", "| [lenght](http://wiki.openstreetmap.org/wiki/Key:length) | Length of feature (meters) | float |\n", "| [maxspeed](http://wiki.openstreetmap.org/wiki/Key:maxspeed)| maximum legal speed limit | int /list |\n", "| [name](http://wiki.openstreetmap.org/wiki/Key:name) | Name of the (street) element| str (or nan) |\n", "| [oneway](http://wiki.openstreetmap.org/wiki/Key:oneway) | One way road | boolean |\n", "| [osmid](http://wiki.openstreetmap.org/wiki/Node) | Unique ids for the element | list |\n", "| [u](http://ow.ly/bV8n30h7Ufm) | The first node of edge | int |\n", "| [v](http://ow.ly/bV8n30h7Ufm) | The last node of edge | int |\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Let's take a look what kind of features we have in the `highway` column:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "residential 112\n", "tertiary 78\n", "primary 26\n", "secondary 17\n", "unclassified 11\n", "living_street 4\n", "primary_link 1\n", "Name: highway, dtype: int64\n" ] } ], "source": [ "print(edges['highway'].value_counts())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Okey, now we can confirm that as a result our street network indeed only contains such streets where it is allowed to drive with a car as there are no e.g. cycleways or footways included in the data.\n", "\n", "Let's continue and find the shortest path between two points based on the distance. As the data is in WGS84 format, we should first reproject our data into a metric system.\n", "We can re-project the graph from latitudes and longitudes to an appropriate UTM zone using the [project_graph()](https://osmnx.readthedocs.io/en/stable/osmnx.html#osmnx.projection.project_graph) function from OSMnx. \n", "\n", "- Project the graph:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "graph_proj = ox.project_graph(graph)\n", "fig, ax = ox.plot_graph(graph_proj) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see a modest change in the appearance of the graph. But let's take a closer look by seeing how the data values look now:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "# Get Edges and Nodes\n", "nodes_proj, edges_proj = ox.graph_to_gdfs(graph_proj, nodes=True, edges=True)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Coordinate system: +proj=utm +zone=35 +ellps=WGS84 +datum=WGS84 +units=m +no_defs\n" ] } ], "source": [ "print(\"Coordinate system:\", edges_proj.crs)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
uvkeyosmidonewaylanesnamehighwaymaxspeedlengthgeometryjunctionbridgeaccess
0252165941372425714023856784True2Mechelininkatuprimary4040.885LINESTRING (384631.322 6671580.071, 384624.750...NaNNaNNaN
12523887413724257130[29977177, 30470347]True3Mechelininkatuprimary4016.601LINESTRING (384625.787 6671454.380, 384626.281...NaNNaNNaN
225238944252165940[372440330, 8135861]True2NaNprimary4025.190LINESTRING (384643.473 6671561.534, 384643.045...NaNNaNNaN
3252389443198962780[25514547, 677423564, 30288797, 30288799]True[3, 2]Mechelininkatuprimary40242.476LINESTRING (384643.473 6671561.534, 384648.006...NaNNaNNaN
425291537252915910[30568275, 36729015, 316590744, 316590745, 316...TrueNaNFredrikinkatutertiary30139.090LINESTRING (385515.553 6671500.134, 385514.557...NaNNaNNaN
\n", "
" ], "text/plain": [ " u v key \\\n", "0 25216594 1372425714 0 \n", "1 25238874 1372425713 0 \n", "2 25238944 25216594 0 \n", "3 25238944 319896278 0 \n", "4 25291537 25291591 0 \n", "\n", " osmid oneway lanes \\\n", "0 23856784 True 2 \n", "1 [29977177, 30470347] True 3 \n", "2 [372440330, 8135861] True 2 \n", "3 [25514547, 677423564, 30288797, 30288799] True [3, 2] \n", "4 [30568275, 36729015, 316590744, 316590745, 316... True NaN \n", "\n", " name highway maxspeed length \\\n", "0 Mechelininkatu primary 40 40.885 \n", "1 Mechelininkatu primary 40 16.601 \n", "2 NaN primary 40 25.190 \n", "3 Mechelininkatu primary 40 242.476 \n", "4 Fredrikinkatu tertiary 30 139.090 \n", "\n", " geometry junction bridge access \n", "0 LINESTRING (384631.322 6671580.071, 384624.750... NaN NaN NaN \n", "1 LINESTRING (384625.787 6671454.380, 384626.281... NaN NaN NaN \n", "2 LINESTRING (384643.473 6671561.534, 384643.045... NaN NaN NaN \n", "3 LINESTRING (384643.473 6671561.534, 384648.006... NaN NaN NaN \n", "4 LINESTRING (385515.553 6671500.134, 385514.557... NaN NaN NaN " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "edges_proj.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Okey, as we can see from the CRS the data is now in [UTM projection](https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system) using zone 35 which is the one used for Finland, and indeed the orientation of the map and the geometry values also confirm this.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Furthermore, we can check the epsg code of this projection using pyproj:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "32635" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from pyproj import CRS\n", "CRS(edges_proj.crs).to_epsg()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Indeed, the projection is now [WGS 84 / UTM zone 35N, EPSG:32635](https://epsg.io/32635)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Analyzing the network properties\n", "\n", "Now as we have seen some of the basic functionalities of OSMnx such as downloading the data and converting data from graph to GeoDataFrame, we can take a look some of the analytical features of omsnx. Osmnx includes many useful functionalities to extract information about the network.\n", "\n", "- To calculate some of the basic street network measures we can use [basic_stats()](https://osmnx.readthedocs.io/en/stable/osmnx.html#osmnx.stats.basic_stats) function in OSMnx:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'n': 124,\n", " 'm': 249,\n", " 'k_avg': 4.016129032258065,\n", " 'intersection_count': 116,\n", " 'streets_per_node_avg': 3.217741935483871,\n", " 'streets_per_node_counts': {0: 0, 1: 8, 2: 1, 3: 71, 4: 44},\n", " 'streets_per_node_proportion': {0: 0.0,\n", " 1: 0.06451612903225806,\n", " 2: 0.008064516129032258,\n", " 3: 0.5725806451612904,\n", " 4: 0.3548387096774194},\n", " 'edge_length_total': 19967.856000000003,\n", " 'edge_length_avg': 80.19219277108435,\n", " 'street_length_total': 13659.232000000002,\n", " 'street_length_avg': 74.64061202185793,\n", " 'street_segments_count': 183,\n", " 'node_density_km': None,\n", " 'intersection_density_km': None,\n", " 'edge_density_km': None,\n", " 'street_density_km': None,\n", " 'circuity_avg': 1.0244213943099583,\n", " 'self_loop_proportion': 0.0,\n", " 'clean_intersection_count': None,\n", " 'clean_intersection_density_km': None}" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Calculate network statistics\n", "stats = ox.basic_stats(graph_proj, circuity_dist='euclidean')\n", "stats" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To be able to extract the more advanced statistics (and some of the missing ones above) from the street network, it is required to have information about the coverage area of the network. Let's calculate the area of the [convex hull](https://en.wikipedia.org/wiki/Convex_hull) of the street network and see what we can get.\n", "\n" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "" ], "text/plain": [ "" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Get the Convex Hull of the network\n", "convex_hull = edges_proj.unary_union.convex_hull\n", "# Show output\n", "convex_hull" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can use the Convex Hull above to calculate [extended statistics for the network](https://osmnx.readthedocs.io/en/stable/osmnx.html#osmnx.stats.extended_stats). As some of the metrics are produced separately for each node, they produce a lot of output. Here, we combine the basic and extended statistics into one Pandas Series to keep things in more compact form." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "n 124\n", "m 249\n", "k_avg 4.01613\n", "intersection_count 116\n", "streets_per_node_avg 3.21774\n", "streets_per_node_counts {0: 0, 1: 8, 2: 1, 3: 71, 4: 44}\n", "streets_per_node_proportion {0: 0.0, 1: 0.06451612903225806, 2: 0.00806451...\n", "edge_length_total 19967.9\n", "edge_length_avg 80.1922\n", "street_length_total 13659.2\n", "street_length_avg 74.6406\n", "street_segments_count 183\n", "node_density_km 148.885\n", "intersection_density_km 139.28\n", "edge_density_km 23975.2\n", "street_density_km 16400.5\n", "circuity_avg 1.27082e-05\n", "self_loop_proportion 0\n", "clean_intersection_count None\n", "clean_intersection_density_km None\n", "avg_neighbor_degree {25216594: 2.0, 25238874: 2.0, 25238944: 1.0, ...\n", "avg_neighbor_degree_avg 2.14315\n", "avg_weighted_neighbor_degree {25216594: 0.04891769597651951, 25238874: 0.12...\n", "avg_weighted_neighbor_degree_avg 0.0838789\n", "degree_centrality {25216594: 0.024390243902439025, 25238874: 0.0...\n", "degree_centrality_avg 0.0326515\n", "clustering_coefficient {25216594: 0, 25238874: 0, 25238944: 0, 252915...\n", "clustering_coefficient_avg 0.0954301\n", "clustering_coefficient_weighted {25216594: 0, 25238874: 0, 25238944: 0, 252915...\n", "clustering_coefficient_weighted_avg 0.0165222\n", "pagerank {25216594: 0.008697876082389044, 25238874: 0.0...\n", "pagerank_max_node 25416262\n", "pagerank_max 0.0239018\n", "pagerank_min_node 1008183915\n", "pagerank_min 0.00143337\n", "eccentricity {3216400385: 1657.5310000000004, 1372233731: 1...\n", "diameter 2153.57\n", "radius 1007.06\n", "center [1372376937]\n", "periphery [319896278]\n", "closeness_centrality {25216594: 0.0009352922781262002, 25238874: 0....\n", "closeness_centrality_avg 0.00143723\n", "dtype: object" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Calculate the area\n", "area = convex_hull.area\n", "\n", "# Calculate statistics with density information\n", "stats = ox.basic_stats(graph_proj, area=area)\n", "extended_stats = ox.extended_stats(graph_proj, ecc=True, cc=True)\n", "\n", "# Add extened statistics to the basic statistics\n", "for key, value in extended_stats.items():\n", " stats[key] = value\n", " \n", "# Convert the dictionary to a Pandas series for a nicer output\n", "pd.Series(stats)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we can see, now we have a **LOT** of information about our street network that can be used to understand its structure. We can for example see that the average node density in our network is `149 nodes/km` and that the total edge length of our network is almost 20 kilometers.\n", "\n", "Furthermore, we can see that the [degree centrality](https://en.wikipedia.org/wiki/Centrality) of our network is on average `0.0326515`. Degree is a simple centrality measure that counts how many neighbors a node has (here a fraction of nodes it is connected to). Another interesting measure is the [PageRank](https://en.wikipedia.org/wiki/PageRank) that measures the importance of specific node in the graph. Here we can see that the most important node in our graph seem to a node with osmid `25416262`. PageRank was the algorithm that Google first developed (Larry Page & Sergei Brin) to order the search engine results and became famous for.\n", "\n", "You can read the [Wikipedia article about different centrality measures](https://en.wikipedia.org/wiki/Centrality) if you are interested what the other centrality measures mean." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Shortest path analysis\n", "\n", "Let's now calculate the shortest path between two points using the [shortest path function in Networkx](https://networkx.github.io/documentation/networkx-1.10/reference/generated/networkx.algorithms.shortest_paths.generic.shortest_path.html#shortest-path). First we need to specify the source and target locations for our route. Let's use the centroid of our network as the source location and the furthest point in East in our network as the target location.\n", "\n", "- Let's first determine the centroid of our network. We can take advantage of the same `Convex Hull` that we used previously to determine the centroid of our data.\n" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "POINT (385170.0891607622 6671717.293203074)\n" ] } ], "source": [ "# Get the Convex Hull of the network\n", "convex_hull = edges_proj.unary_union.convex_hull\n", "\n", "# Centroid\n", "centroid = convex_hull.centroid\n", "\n", "# Show\n", "print(centroid)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we can see, now we have a centroid of our network determined. We will use this later as an origin point in our routing operation. \n", "\n", "- Let's now find the easternmost node in our street network. We can do this based on the x coordinates of the nodes:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
yxosmidhighwaylonlatgeometry
252165946.671580e+06384631.32237225216594NaN24.92105760.164794POINT (384631.322 6671580.071)
252388746.671454e+06384625.78722125238874NaN24.92102860.163665POINT (384625.787 6671454.380)
252389446.671562e+06384643.47327425238944NaN24.92128660.164631POINT (384643.473 6671561.534)
252915376.671500e+06385515.55324425291537NaN24.93702360.164325POINT (385515.553 6671500.134)
252915646.671673e+06385779.20701525291564NaN24.94167460.165948POINT (385779.207 6671672.709)
\n", "
" ], "text/plain": [ " y x osmid highway lon lat \\\n", "25216594 6.671580e+06 384631.322372 25216594 NaN 24.921057 60.164794 \n", "25238874 6.671454e+06 384625.787221 25238874 NaN 24.921028 60.163665 \n", "25238944 6.671562e+06 384643.473274 25238944 NaN 24.921286 60.164631 \n", "25291537 6.671500e+06 385515.553244 25291537 NaN 24.937023 60.164325 \n", "25291564 6.671673e+06 385779.207015 25291564 NaN 24.941674 60.165948 \n", "\n", " geometry \n", "25216594 POINT (384631.322 6671580.071) \n", "25238874 POINT (384625.787 6671454.380) \n", "25238944 POINT (384643.473 6671561.534) \n", "25291537 POINT (385515.553 6671500.134) \n", "25291564 POINT (385779.207 6671672.709) " ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nodes_proj.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Let's find out which node has the largest x-coordinate value. First, let's ensure that the values are floats:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "# Get the x coordinates of the nodes\n", "nodes_proj['x'] = nodes_proj[\"x\"].astype(float)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "385855.0300992895\n" ] } ], "source": [ "# Retrieve the maximum x value (i.e. the most eastern)\n", "maxx = nodes_proj['x'].max()\n", "print(maxx)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Let's retrieve the target Point having the largest x-coordinate. We can do this by using the `.loc` function of Pandas that we have used already many times in earlier tutorials." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "POINT (385855.0300992895 6671721.810323974)\n" ] } ], "source": [ "# Retrieve the node that is the most eastern one and get the Shapely Point geometry out of it\n", "target = nodes_proj.loc[nodes_proj['x']==maxx, 'geometry'].values[0]\n", "print(target)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Okey now we can see that as a result we have a Shapely Point that we can use as a target point in our routing.\n", "\n", "Let's now find the nearest graph nodes (and their node IDs) to these points using OSMnx [get_nearest_node](https://osmnx.readthedocs.io/en/stable/osmnx.html#osmnx.utils.get_nearest_node). According to the documentation of this function, we need to parse Point coordinates as coordinate-tuples in this order: `latitude, longitude`(or `y, x`). As our data is now projected to UTM projection, we need to specify with `method` parameter that the function uses `'euclidean'` distances to calculate the distance from the point to the closest node (with decimal derees, use `'haversine'`, which determines the great-circle distances). The method parameter is important if you want to know the actual distance between the Point and the closest node which you can retrieve by specifying parameter `return_dist=True`.\n" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "# Get origin x and y coordinates\n", "orig_xy = (centroid.y, centroid.x)\n", "\n", "# Get target x and y coordinates\n", "target_xy = (target.y, target.x)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "301360197" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Find the node in the graph that is closest to the origin point (here, we want to get the node id)\n", "orig_node = ox.get_nearest_node(graph_proj, orig_xy, method='euclidean')\n", "orig_node" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "317703609" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Find the node in the graph that is closest to the target point (here, we want to get the node id)\n", "target_node = ox.get_nearest_node(graph_proj, target_xy, method='euclidean')\n", "target_node" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we have the IDs for the closest nodes that were found from the graph to the origin and target points that we specified. \n", "\n", "- Let's retrieve the node information from the `nodes_proj` GeoDataFrame by passing the ids to the `loc` indexer" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "# Retrieve the rows from the nodes GeoDataFrame\n", "o_closest = nodes_proj.loc[orig_node]\n", "t_closest = nodes_proj.loc[target_node]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Let's also create a GeoDataFrame that contains these points" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
yxosmidhighwaylonlatgeometry
3013601976.671721e+06385166.707932301360197NaN24.93061760.166212POINT (385166.708 6671721.244)
3177036096.671722e+06385855.030099317703609traffic_signals24.94301260.166410POINT (385855.030 6671721.810)
\n", "
" ], "text/plain": [ " y x osmid highway lon \\\n", "301360197 6.671721e+06 385166.707932 301360197 NaN 24.930617 \n", "317703609 6.671722e+06 385855.030099 317703609 traffic_signals 24.943012 \n", "\n", " lat geometry \n", "301360197 60.166212 POINT (385166.708 6671721.244) \n", "317703609 60.166410 POINT (385855.030 6671721.810) " ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Create a GeoDataFrame from the origin and target points\n", "od_nodes = gpd.GeoDataFrame([o_closest, t_closest], geometry='geometry', crs=nodes_proj.crs)\n", "od_nodes.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Okay, as a result we got now the closest node IDs of our origin and target locations. As you can see, the `index` in this GeoDataFrame corresponds to the IDs that we found with `get_nearest_node()` function." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Now we are ready to do the routing and find the shortest path between the origin and target locations\n", "by using the `shortest_path()` [function](https://networkx.github.io/documentation/networkx-1.10/reference/generated/networkx.algorithms.shortest_paths.generic.shortest_path.html) of networkx.\n", "With `weight` -parameter we can specify that `'length'` attribute should be used as the cost impedance in the routing. If specifying the weight parameter, NetworkX will use by default Dijkstra's algorithm to find the optimal route. We need to specify the graph that is used for routing, and the origin `ID` (*source*) and the target `ID` in between the shortest path will be calculated:\n" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[301360197, 1372441183, 1372441170, 60170471, 1377211668, 1377211666, 25291565, 25291564, 317703609]\n" ] } ], "source": [ "# Calculate the shortest path\n", "route = nx.shortest_path(G=graph_proj, source=orig_node, target=target_node, weight='length')\n", "\n", "# Show what we have\n", "print(route)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As a result we get a list of all the nodes that are along the shortest path. \n", "\n", "- We could extract the locations of those nodes from the `nodes_proj` GeoDataFrame and create a LineString presentation of the points, but luckily, OSMnx can do that for us and we can plot shortest path by using `plot_graph_route()` function:\n" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot the shortest path\n", "fig, ax = ox.plot_graph_route(graph_proj, route, origin_point=orig_xy, destination_point=target_xy)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nice! Now we have the shortest path between our origin and target locations.\n", "Being able to analyze shortest paths between locations can be valuable information for many applications.\n", "Here, we only analyzed the shortest paths based on distance but quite often it is more useful to find the\n", "optimal routes between locations based on the travelled time. Here, for example we could calculate the time that it takes to cross each road segment by dividing the length of the road segment with the speed limit and calculate the optimal routes by taking into account the speed limits as well that might alter the result especially on longer trips than here." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Saving shortest paths to disk\n", "\n", "Quite often you need to save the route e.g. as a Shapefile.\n", "Hence, let's continue still a bit and see how we can make a Shapefile of our route with some information associated with it.\n", "\n", "- First we need to get the nodes that belong to the shortest path:\n" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
yxosmidhighwaylonlatgeometry
3013601976.671721e+06385166.707932301360197NaN24.93061760.166212POINT (385166.708 6671721.244)
13724411836.671672e+06385199.0404231372441183NaN24.93122760.165777POINT (385199.040 6671671.820)
13724411706.671610e+06385239.9569981372441170NaN24.93199960.165235POINT (385239.957 6671610.080)
601704716.671704e+06385382.61673860170471NaN24.93451560.166117POINT (385382.617 6671703.996)
13772116686.671789e+06385514.5733401377211668NaN24.93684360.166917POINT (385514.573 6671789.024)
13772116666.671703e+06385570.8862771377211666NaN24.93790660.166160POINT (385570.886 6671702.892)
252915656.671586e+06385647.12421025291565traffic_signals24.93934460.165135POINT (385647.124 6671586.216)
252915646.671673e+06385779.20701525291564NaN24.94167460.165948POINT (385779.207 6671672.709)
3177036096.671722e+06385855.030099317703609traffic_signals24.94301260.166410POINT (385855.030 6671721.810)
\n", "
" ], "text/plain": [ " y x osmid highway \\\n", "301360197 6.671721e+06 385166.707932 301360197 NaN \n", "1372441183 6.671672e+06 385199.040423 1372441183 NaN \n", "1372441170 6.671610e+06 385239.956998 1372441170 NaN \n", "60170471 6.671704e+06 385382.616738 60170471 NaN \n", "1377211668 6.671789e+06 385514.573340 1377211668 NaN \n", "1377211666 6.671703e+06 385570.886277 1377211666 NaN \n", "25291565 6.671586e+06 385647.124210 25291565 traffic_signals \n", "25291564 6.671673e+06 385779.207015 25291564 NaN \n", "317703609 6.671722e+06 385855.030099 317703609 traffic_signals \n", "\n", " lon lat geometry \n", "301360197 24.930617 60.166212 POINT (385166.708 6671721.244) \n", "1372441183 24.931227 60.165777 POINT (385199.040 6671671.820) \n", "1372441170 24.931999 60.165235 POINT (385239.957 6671610.080) \n", "60170471 24.934515 60.166117 POINT (385382.617 6671703.996) \n", "1377211668 24.936843 60.166917 POINT (385514.573 6671789.024) \n", "1377211666 24.937906 60.166160 POINT (385570.886 6671702.892) \n", "25291565 24.939344 60.165135 POINT (385647.124 6671586.216) \n", "25291564 24.941674 60.165948 POINT (385779.207 6671672.709) \n", "317703609 24.943012 60.166410 POINT (385855.030 6671721.810) " ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Get the nodes along the shortest path\n", "route_nodes = nodes_proj.loc[route]\n", "route_nodes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we can see, now we have all the nodes that were part of the shortest path as a GeoDataFrame.\n", "\n", "- Now we can create a LineString out of the Point geometries of the nodes:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "" ], "text/plain": [ "" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from shapely.geometry import LineString, Point\n", "\n", "# Create a geometry for the shortest path\n", "route_line = LineString(list(route_nodes.geometry.values))\n", "route_line" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we have the route as a LineString geometry. \n", "\n", "- Let's make a GeoDataFrame out of it having some useful information about our route such as a list of the osmids that are part of the route and the length of the route." ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
geometryosmidslength_m
0LINESTRING (385166.708 6671721.244, 385199.040...[301360197, 1372441183, 1372441170, 60170471, ...951.40388
\n", "
" ], "text/plain": [ " geometry \\\n", "0 LINESTRING (385166.708 6671721.244, 385199.040... \n", "\n", " osmids length_m \n", "0 [301360197, 1372441183, 1372441170, 60170471, ... 951.40388 " ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Create a GeoDataFrame\n", "route_geom = gpd.GeoDataFrame([[route_line]], geometry='geometry', crs=edges_proj.crs, columns=['geometry'])\n", "\n", "# Add a list of osmids associated with the route\n", "route_geom.loc[0, 'osmids'] = str(list(route_nodes['osmid'].values))\n", "\n", "# Calculate the route length\n", "route_geom['length_m'] = route_geom.length\n", "\n", "route_geom.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we have a GeoDataFrame that we can save to disk. Let's still confirm that everything is ok by plotting our route on top of our street network and some buildings, and plot also the origin and target points on top of our map.\n", "\n", "- Get buildings:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "# Retrieve buildings and reproject\n", "buildings = ox.footprints_from_place(place_name)\n", "buildings_proj = buildings.to_crs(crs=edges_proj.crs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Let's now plot the route and the street network elements to verify that everything is as it should:" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAASUAAAD4CAYAAACqsPAyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOy9d5Qd5ZXu/XsrntB9upVjC+WAspBEkISEJIRwAJNMtLGZMfYEz3z2LK+Zb90/Zq1779w1nusZY+43M7YxvsZgwJhgBhAgEJJMVEAB5ZxaWWp194kV3++Pt87pPuqW1JIDEqpnrV7d562qt6pOn9rn3Xs/+9lCSkmMGDFiXCzQPu0LiBEjRoz2iI1SjBgxLirERilGjBgXFWKjFCNGjIsKsVGKESPGRQXj076APyV69uwpBw8e/GlfRowYlz0+/vjjE1LKXp1tu6yM0uDBg1m9evWnfRkxYlz2EELsO9O22H2LESPGRYXYKMWIEeOiQmyUYsSIcVEhNkoxYsS4qBAbpRgxYlxUiI1SjBgxLirERilGjBgXFWKjFCNGjIsKlxV5MkaM9gj9Fnx3H6HfimZksFITqreHRULvOIY96FO6wssTsVGKcdlBSolX3IRX2lEZC/yTmMmxCKFXxgQatHsd40+D2H2LcdnBd3ZWGSSFkNA/gZRhZURoNoY14E97cTFioxTj8oKUIV5xe6fb3MIGStl3iSWiP13ERinGZYUwaEZK9wzbsoR+E76z+098VTHaIzZKMS4vyOCcu7jFzYRh4U9wMTE6Q2yUYlxW0PTac+8kfdz8+tiN+5QQZ99iXPI4cOAAy5cvZ/bs2TQ0NJx1X6ElSNV/DkkAMgRCkCEy+g1hFOwOop/4EflTI37HY1zyWLZsGbt372b37t1YlnXG/TRNQwiBpmnouo6maZW/y687Gy+PmaaJYRgYhkGpVOL48ePceOON5zSEMc4PsVGKcclj7NixnDx5kjvuuOOMBiIMQ3zfx3VdHMep/PY8D8/zcF0X3/cJguCsvx3Hwfd99u/fT7FYZPny5TzwwAN/4jv+bCM2SjEueRw9epRbbrnlrCsWtdIRmIZFOm2jwqlq5XQ2SOkjgxyaUV813t5ljPGHRWyUYlyyCIKA5cuX47ouQ4YMOeN+UoZ4pe14xW1A2MkeGkIoI6UZ9dg111WMle824hY2kMzMQ9NTlSMaGhriFdIfCXH2LcYlicbGRp544glqamq45ZZbEEKo8hFnL2GQrdo3DFrxilvo3CCBCm77SOkSeMfwSjuRMsAtbsPNr1fZuMLaOBv3J0K8UopxScFxHJYsWUIul+POO+8kk8kAEAY53Pw6Av84mtGDRO2sympHN+oxEyM6KS3pHL57AK+0pYrTFHjH8N19mPbgP/g9xahGbJRiXBKQUrJp0yY++ugjZs6cyejRo6PxEL+0E7e0tWJEQv8kvrMHMzG0cryZHEPgHSYMcl04mdspydIrbEA3ele5cTH+8IiNUoyLHqtWrWL58uUMGzaMr3zlK9i2DUDgN+Pm1xAGLR2OcYub0K2+aJoyIELoWOmrKLUu78IZO38spPRxC+tJ1F57xiOl9PGd/Rj2kHMG0WN0ji7FlIQQ9UKI54UQW4UQW4QQ10bj3xZCbBNCbBJC/Es0dr8QYl27n1AIMUkIkRJCvBbNsUkI8c/t5v+uEGKzEOITIcQSIcQV7bY9KITYEf082G58iBBiRTT+ayHEmQkqMS5JZLNZXnjhBd59913y+Tz5fB7btiPjsJFS67JODRLQKStbN7pjJkac87wyzEMnHyfNqMdKje38GCnx3UZKrctwC+vxnb1duscYHdHVQPePgDeklKOBicAWIcQNwK3ABCnlWOAHAFLKX0kpJ0kpJwFfAfZKKddF8/wgmmMyMEMIcXM0vhaYKqWcADwPlA1cd+AfgauB6cA/CiG6Rcd8H/ihlHIEcAr4swt7C2JcbAiCgA8//JDnn3+eqVOnctdddzFs2LBK+l2GRbzSLuDsgefAO0LgHqwaM5NjulBqEiKE0c6gCczkaBK1s9H0TIe9pZT4pR04uVWVILtb3NAh4B6jazinURJCZIDrgccBpJSulLIZ+Avgn6WUTjR+rJPD7wWeibYXpJRLy3MAa4CB0eulUspyBeRH5XHgJuAtKWWTlPIU8BawUKh18VyUAQN4AvjS+dx4jIsTO3bs4Be/+AVCCB588EEG9LPpWbeL+++7s8JD0vRazOSoLs3nFj5Bhm2qAMqNm3LO42RYQDMyaHoticxsrOSYiDZQjTAo4GTfxS1uOm2CACe/ukqfKUbX0JWV0lDgOPB/hRBrhRA/E0KkgZHArMiFWi6EmNbJsXcTGaX2EELUA18ElnRyzJ8Br0d/DwAOtNvWGI31AJqllP5p4x0ghHhYCLFaCLH6+PHj57rXGJ8Sjh8/zjPPPMOOHTu49957mT5tHG5+BU7uQ0L/FG5hQ9X+ZmJkp6uW0yGl0+FY5caNPOexhtmPROYGdKNbh21SSnxnP6XWJQT+yU6PD/3miIoQ43zQlUC3AUwBvi2lXCGE+BHwD9F4N+AaYBrwnBBiqIzWvEKIq4GClHJj+8mEEAbKUD0qpdx92rYHgKlAmSbbWaRQnmW846CUPwV+CjB16tSYaHKRoVgssmzZMk6dOsX8+fPp1as7XnE7xZYdtOcV+W4jutuAYfUFQAgNKz2FUuuyc57Dd/djeAPRzT6VMTM5OsrGdXSxND2DlZ7SqTEqI/CO4uQ/Pue5vdJ2dLMPutnznPvGUOjKSqkRaJRSroheP48yUo3Ai1JhJeoT1P6dv4dOVkkoA7FDSvlI+0EhxHzgvwG3lF3C6BztawcGAoeAE0B9ZODaj8e4RCClZM2aNTz99NMMGzaMe+65h+71HsWWt/FKnTOv3cI6gsCpvNaNbpiJ4V06n5NfR9vCui0bVw0NM3nlGVdH7aEb3RGajdDSaEY9utkL3eqPYV+BmRhG+0fLyX+MDL0uXWeMLqyUpJRHhBAHhBCjpJTbgHnAZmAXKq6zTAgxErBQxgKhnO+7ULGoCoQQ/xOoA/78tPHJwE+AhafFpt4E/le74PYC4P+VUkohxFLgTuBZ4EHg5fO68xifGrLZLIsWLaJHjx587WtfQ5DHzX1A4J/ZvZYSZNBKqXUJ6W6fq4ybyTH47iHkOUTZZFjAK27BSo2vjCmjpkiVutETKz2pa3pLgNAsUvWfO8v2JG5hY+XcbmE9ds3ULs19uaOrPKVvA7+K0u67ga8DeeDnQoiNgAs8WHbdUMaosb17JoQYiFoJbQXWRByO/09K+TPgfwM1wG+i8f1SyluklE1CiP8BrIqm+e9Syqbo778Hno0M3VqiQHyMixdhGLJ69Wo2btzIggULGDhQ5TNK2Q1nNUhCpJDhySj9fxKvtAczMSTaZmCnJ1PKvn/O83ulXRjWIDSjrjKmsnEZdKvh9+YV+e5hpHTQtCQy9ND0boTBqWjbAXSnL4Y98ByzxBCXUz3P1KlT5erVqz/ty7gssWfPHpYuXcqoUaO45ppr0PW21kVhkKPY+k4nLGodTU8qFrYM8b1jQIDQaqjp+QCa1vad6uTX4Dv7znkdp5eg/CEgZUDonwAg8E4SeIcIgyy61Y/QO4GUynUTwiSRmRszwgEhxMdSyk6XjnFBbow/Kk6dOsVvfvMbPvnkE7785S9z3XVXo2nVHztNr8FKjK68llIitBoQgjDIKZa0fzIq//CQYZZS9t2qOazkOIRmn/N6Qv8kgbv/gu5FSonspPxEShevtAuJiW72Igzy0X3VY6UmtdvPw81/HBf2ngNxmUmMPwpc1+Xdd9/l4MGDzJ8/n/79++O7hym2vIeVHItu9kXKYiWtbySG47uNhEEWKfPIUCVZAz+HDFuiVVT0MMsAr7gFPzmmLRunWVipiTi5lee8tsA/iWFfcc792kOGJZz8WoQwO8SGNC2J0JI4WVXCopu9MZNXoun1CCEIvMP4bmN07hP4pR2YyXNTEi5XxEYpxh8UUko2bNjAypUrufrqq5k7dy5IBye3Ej9iV3ulnbjFjYBOsm4eQugIoWEmxlFofgkICUObMHRBOlRn4jRAgvQotiwh3ePeyspLN/ujm/0IvMOdXpvQElipCRfUYDIMcgTeEXUet1/VHKrebW/Vvu2zd1ZqIoF/EhkWAXCLW9DM3uinCcfFUIiNUow/CPbt28drr72GrusMHz6cr371q5imie/uwytsVHEVYSA0mzBorhznFbdW6skMuzeGPQivtAcpc6fFmMoxoDD6OyQMmnDzK0nUXqP2EAIrPZFSy/Gq9L+ae3Dk4pkXdH+62RMzMVwZ1Pw6NKM7mpYsb0VoCWRYQtNVED0MsoRBK5pei6ZnsNNTlftW+ERl4/KrSWTm0MZqiVFGHFOK8XtBSsnGjRt55plnOH78OJqmMW/ePCzLwituwc2vJQxdhF4LUiKjeEsZXmkHod9MGGQptizBSk/vJDakjFAbPzYyTDLAya8j8E9V9tS0JGZyXNuRWppE7Uzs9OQLNkhlKJcsg5Qubr5N9E0IQaJ2BoY9BISB5+ym2PI2Tm4lxZYl+E4jutkTw+qHHXGjwiCLW9h0ttNdtoiNUowLRmNjI7/85S85duwYd911F/X19RQKbXwhwx6MECk0PY0MsqiWRadD4uTXgkggZYBf2hpJgxgoYyToSOIvj0nApdD8dtWMhj1YxXUSI0nWzUM3e3V6/WFQiEiV525QCYpwqYyKRuAdrXLZ1GpoEnZqIrre5roJLYFX2lp5rVZcwwDwnd0EXmclo5c3YqMU47zR0tLCiy++yIoVK7j11luZO3cuw4YN42//9m/JZDL88pe/5MCBAwTeIaQsnZPYGAbNBM5e7PREAu8Ymt4Nw+oHwuDsSgAayIDQP4qTb6tvE0Jg11yHlRqLEHqnR3qlPRRbl+A7e/BK27t875pRj5VUmUK3uLGDaFwYFqF94W77AD2Ky+Q7jdF1Wue4v8sTsVGK0WW4rsvSpUv57W9/y7Rp07jjjjuor68O1pqmyZ49e1i+fDnqgetalbxb2oLQ0tg116CbfUhm5qGKBDTaVkbt0W5M+pRyH6nAeHlrJzyk0G/Gya9Rbpd0Qfpoeg260flK6kwwEiPRjO4gfVVC0k4JQDe6017aS0oPMzESKT2c/Bqc3EdI6aCbfaNVXB+kDGKaQDvEUbYY50Q5brRixQqmTZvGnDlzOn/owyKzZytVxtmzZ2PYA1Sa32/usG/HkwS4+XXYtTMQQiCMDImaKZRyK0B6VLJuQLWREiBMdL3mLNfv4xW3VDSYND2DkRgBQsOwh55xNXUmCCGw01dRbF1K6DfhlXZgRVIqQrNIZK5XeuAyxLAbAINiy9JIPM7ASo3HsK6Imh34lLLvYaevUnG3GDGjO8bZcfjwYd566y0GDBjArFmzztiB1ilswsl9hGENIFW/sDIe+s0UW5fRVTfFSk+uiPOHYUih6TlVglIV94liTEIHLOyaSVipaR1ImVCu5l9X7UIKo0PLpAuBV9qDW1gHCJKZOR16wwH4zv6KmoBmdMdOX4V2mgENvFN4pa3YNdPP20BeqjgbozteKcXoFPl8niVLllAqlfjCF75A9+7dO90v9FsptrxF4KuAre/swXP2YUbkRK3SSaRrcRuvsBHd7IOmJdE0jUTdPPInX0C5gWU3SQNhYFj9lHFpV8tWhgyVjpLvHuiwTbVMWoddc+3vVW5i2IOVuqV3BCe/mkTmhg5GRTN7IYSNkRiGmRjRqVCcZtRgpcZdNgbpXIiNUowqBEHAqlWr2Lx5M7Nnz2bYsGFn3d8tbqoYpDJKrcvRe9xXqU1T2kWHutRJpMzlSdRcDYBh9sJKXamE2qSnVkciSaL2WuxO9LKllATuQcUHkk6H7ZX79I4SeAcxrAsvkFVu3GSKLUsIgyyBd7jDfJqWJFm/oFM+UuCdRDd7IISJ0KvpCmFYbMeDurwQG6UYgGpD/cYbb+D7PpMnT+bBBx+sKpo9HWFYotT6TqdFsDLM42TfI1k3B4i0i1KTO9SrnQmBewjfPYRh9QfArrkO39lHGGQxE4NVUauW6OS8Hk5+dYV5fS64+U/Qjd4I7cJ7TggtEekySZUx7GyfMxAkdbNHhzHVFGEDvttIMnNDB1fvckCcfYsBwNtvv82hQ4ewbbtDFf/pcIubyZ341Vmr8r3SVnz3aOW1bvbEOI9Gjm5hfUUYTdMMUt2+QLrbLaTqP9epQQJAGJWK/K5ASicqd/n9YFh9z2iQzgeBf5JiyzuK/yT9y1bjOzZKMQCYP38+lmWRSHT+wPvOfvJN/0W+6SXVO026ne7XBkmp9R3CsO2hUmUeZzAopx8dlqoMhm50O6cWkXKnpkQB8K7Bd/YReBem3S5lgFfahZNbje92bXXW+TwhbnELpdZ3VYYuQuifilQ4Ly/ERikGAA0NDfzd3/0d+/fvZ/PmzZXxMPQptLxNofk1Au9gl10jUKRIt7Cq8lpoJlZq4nkc33pGtrUMvUqBb3toeg1WuzKTrsAtdJ3V3R6+sw+38Am+ewDf2Xnex4O6x1LrcrziVjrLUHrFrQRe540JPquIjdJlDikDnPzHBN5xLMvi/vvv5+WXX6at84vfJfG0M8HNr6/iKRlWf/QoVnRGCAMrNYFE7fVnzEgF/nE0rYbAO9ohgG7YQ86LEBkGObzi+a9IDPsK7PRVmMkxVbpJXYGUEq+0k2LL0qoC5c7g5FdfVhrfsVG6jOG7R6Jg9X6c3ArCIEtDQwMLFizg5z//OYVCAU1LYKen/x5nCSi2VHfSslMTEaLz4ljd7EsyMw8zMeys6XrD6o9m1BH4zRVJECi3PtpJEDSd8djO4JW2E/qdd9uVMsAr7qDYupxi61KCyMgKoaObvbGSo88rIK16xb0ftX46d8yorPF9uSA2SpchAj9LKfuh6qkW5KJusB6l7IfI0OGqq65i8uTJ/OQnPyEMQ+z0eDSjrVGNYQ9BN/uex/mOVdemaQnMVLWLJYSNnZ6GXXPNeZEareSoSsFt6DdTyi5Xgv3n644JjTDs2G4p8E5Qan1H1bn5TVEvt42VshAnv47AO9rhuDPBdxoptS4lDFrP6/KUi9gJ5+oziNgoXUZQHKBNlFrfqTCcdaMHyfqb0fRaZJinlPsIKQMWLFhAr169+MUvfgFAom4uml5Hsv7zJDLzkWHpvM7t5FcQBu0UBKwrKsbEsAaRrJuPYQ+8IDJjOY1ebF1G2E7GpKtQtXbzqzhGMnRx8msoZd/t4B4G3nF8V7m0VnoiQju3EZWhh5NbjZNfhZRuFPAvP35dewzdwrqq9/CzitgoXQYod3NVPdW2AyEICys9Fbt2ViROpkokQr8JN7+GMAy57777yOVyLFq0CMPoQU3P+zDtQWiacf51WtJTzQEiCCGwUpNI1M5QbbQvkFntu0cotizBK+3kfCvudbOvCoynxlVWZ23v1VtVsTTttD5wXmFjheB4rrZMvnuCYus7FXa5bvYhUTsTKzUOMzmGZN3cLmUMpfRx86s/88W7sVH6jCPwT1HK/i5qiFiqPECaXoNpq7ZCyp2ajKbXK0Z00ILv7EDTNB5++GE2btzIqlWrquZN1s0DcX6kw8A9gFfcVXmt6TXoZm8A5HmuAMKwQCmn2nqfSxrldAhhYaenYtdcg9AzFaH/MCjg5D6MKv8V5UGJxM0gUTsbMzmmMkeZeX42SBngFjbgFtdWzgGoGJjQMOxBUTyqFis5/iwztSHwT15wpu9SQczo/owiDPJ4pT34zg41IAys5DgMezC+s0tJb0QQwkAISNReh5P7mMA/SuAeILT6kUhkeOihh3jsscfo3r17W9lJGCCEWXl4uwq3uB4zWV26olQBOtavdQa1ktmFW9wCp0nedgW62Vc1nYxKOBI1V0eZsF24xc3t5hSYiZGYyVGVDKCVHI0MHXxnNwgd3ehBGIYsXryY7du3c9ttt9HQoBo6B/4p3PzHlbbgyj1WbmAYtFJsXoxm1Ffq71Qd3eFzx6eEhVfao+oDo6YLnzXERukzBilDvNI2vOJWJAJNWAjNIgwK6GbvygPgl/ag6XUIoRMGrQitVpVyhM0g9Io8rV0znZ49B3D33Xfz61//mm984xv07NkTtFS1mNk5oWEmx2DXXHfB9xb4zbiFtV2TQjkNQhgYiXGs/Pgga9Y8RqFQIJ1Oc+uttzJwQE/c4qZKcFwzumGnp3R46N3CZnxnj8q4pSaRzfm88vzTnDx5kubmZp588km+8pX76dOzEFEM2twstToyIxkWxSYPvKN4pe0IBEKvO+t9SakkV2SYQ0oXJ/cxiczsTgt8L3V06Y6EEPVCiOeFEFuFEFuEENdG498WQmwTQmwSQvxLNHa/EGJdu59QCDFJCJESQrwWzbFJCPHP7ea3hRC/FkLsFEKsEEIMbrftQSHEjujnwXbjQ6J9d0THXngB02cAUvr47mFKre9ERDzQjXrs2hnYtTOxkmMqbGo3vx63uJFS9ncqzd3yDoF3At/dj6Z3r+hIA4rD5DcxdOhQ5s+fz+OPP06pVELTNJK1c7p0bZrejVT320lmrq9qIHk+9+YWNqis1QUYJN3sx7GW0Tz67y+wYcMGbrrpJr73ve8yc+ZMnnrqKfYfOIaZaGt5pGnpTlchml6DnZ6MXXMdm7fs4fnnn2fAgAFYloWu63iex7JlS/Gd/XSMb5VXltXj6stDEvrNZy4gFqaSFA6zlXnDoPkzy/buqpn9EfCGlHI0MBHYIoS4AbgVmCClHAv8AEBK+Ssp5SQp5STgK8BeKeW6aJ4fRHNMBmYIIW6Oxv8MOCWlHA78EPg+gBCiO/CPwNXAdOAfhRDliOP3gR9KKUcAp6I5LkvIsIST/QAn9xFhkFUcIKGj6d3QjfpITH9kxQ0pkxdDv5nQb0IJn6mUvNBMdLNfG/lQBtG8BaZNm8bEiRP58Y9/TBiGGPZAJZZ/RhjY6Wmkun8Z4ww62edC4B1tF8g+PwhhY6au4rXFB3n22Re46aab+Na3vsWwIWmc7BLGj+3HF7/4RV544QUlK6KlAfDdRgLvaNTrbU0l02jYg/BlH37729+ye/duampq8H2fhx9+mK8/+CX69+uLYdhVRr09ZFioMnaaniGZmYOVHIWZHFmJr1X2lzJquBB2GjfzituqmiZ8VnBOoySEyADXA48DSCldKWUz8BfAP8vIvEspO1NAvxd4JtpekFIuLc8BrAHKOdhbgSeiv58H5gmVG74JeEtK2SSlPAW8BSyMts2N9iU69kvnc+OfBUgpFQEy+y6Br0oRDPsKknU3KqZxYninx6muGlOxkkr6QwgDGbpoRh1mYgSl7O8Ig1MY9qDoPGEU/PVZuHAhvXr14uc//zkAicycTgPeutmHmh53Y9dM7VR87Zz3FpZwcispZT8470A2KANy6MQQHnn0WbLZLN/97ncZO3YYTu4jnNwqVVtXWMe4caOxbZsPPvgIO91WAuPk11BseRvf2V+J8+zbt4+nnnqK7t27c+zYMaZPn878+XPwS59Qn97Bgw9ch23b7G/MVpoDdLyvnDKWiVHYtbMrWlCqbm9qu9pAA02vOa3hgoaVGlf5vwB4xc0XVCJzMaMrn5ahwHHg/woh1gohfiaESAMjgVmRC7VcCDGtk2PvJjJK7SGEqAe+CJSpvgOAAwBSNexqAXq0H4/QGI31AJplW3Ov8ngHCCEeFkKsFkKsbiuduPQhQwcn9wFObiVhUKp8y+tmb4RmY1gD0PT0GY837AbM5Eis5DgStdejm4ocqekZDGsAQkthpSZXVkIyaIXI9bj33nvJ5XL867/+K42Nx7DT7QQEhUUiM5t099vRjAsLxIZBqzIIndS2nQ262QcrNQnNns5zL27mhRf/i1tvvZUHH3wQETZSallSVbsnwyJecQt33XUXv/vd75CiR2UVKcMSQrNJZGYjtf4sXryYDz/8kJ49e9LU1MQDDzzAoIHpqIXSXkA12Zw/72qWLFkCxshOqQKarnTIDXsQTu79qsC20OxIFrcGhKwqztX0epJ1N2AmRmClJkTdd20C7xhecXOH81zK6IpRMoApwH9KKScDeeAfovFuwDXA94DnRDvmmxDiaqAgpazShhBKXOYZ4FEp5e7ycCfnPb2vTlfGOw5K+VMp5VQp5dRevS7MhbjYIEOHUvY9Au+Y0ipKjyNZNx+7Zjq6eX4SGmZyRAflRsMejpkYge8eIvRPAjIKrn6IW9iMEIJu3bqRy+V49tlnCbWRJDI3kMwsoKbn/VjJK896Tt9txD1LrZnQas+bB6XpGeyaa9m0tYUf/Z8nSSQSfO9732P40D6UWt9VUijRd5gQZmVF4pV20bOHQUNDAy+//DJWajwIAzMxjETmBo4cLfDkk09iWRa5XI6RI0fypS99ARFsoZR9v6rEBcBkC9OnT2X58ncjnaW2j6qZGIZdO4cwOEWx9R1CvylyD9symLrZG8PsW8VIN6wBJDKzo55zEr+0JypWLkX3sJPAO3Fe79fFjK4YpUagUUq5Inr9PMpINQIvSoWVqCKenu2Ou4dOVknAT4EdUspHTjtHA1SMVh3Q1H48wkDgEHACqBdt6lnl8c88VDnIu6r7qtGNZN2NmPYQhNDUCucPIKmqMnSDkGGOMGjFTl+FbvYm8E/ilbbhOzuZO3cuPXr0YODAgTz++OM8/oul7G0Mz6x1RMQtyn6Ik1uFV9xyxniIEALd6CiAdiZoei1uOJLHHnuMJUuW8MADD3DnnbfhlzZRyi5F0lbMqlv9SdTNUxInEdz8Wu6443a2bdtGNuspdnliHO+++wHLli2jf//+HD58mLvvvptRI3pSanm3quebbvSoKBOEQZZRw0xOnDjB0WPFiFJgIbQUml6Hm1+p+E2R0VFuZHVdm2p62WaUA/8kSJ8wyFHK/k5lCk+rmVPu9WejaPecRklKeQQ4IIQYFQ3NAzYDv0XFdRBCjET1wzkRvdaAu4Bn288lhPifKIPz/5x2mv8Cypm1O4F3pEpTvAksEEJ0iwLcC4A3o21Lo32Jjn25i/d8SSNwDxMGWTSjG4maGb+XauK5YCZGYdhXABK7ZnolSOsWNtKvj85f/dVf0Sn1RKoAACAASURBVNzczMmTJzl27BgvvPACjtMxg6R4QLs7uE9ufs0ZRczOpbukvo8UzWD1Jyb//p9P0tDQwHe+8x369bGqguMyyKv2TekpJGquRtOS6GYfDEt5/GGQRWc/06ZN49e//jVhaPLcc88hpSQMQ7p168bdd9+Fre9RqyM8FYQWZhQbmoGRGI5m9ETotfjObhYumMGbb76JZg5HaGlkWMDJr6k0n9SNnhWumO824ruN7e5Nx0pPpbzKKgfcy6urM8EtfDbcuK5GIL8N/EoI8QkwCfhfwM+BoUKIjSjj86Bsy3dej1pdld0zhBADgf8GXAmsiegCfx5tfhzoIYTYCXwX5R4ipWwC/gewKvr579EYwN8D342O6RHN8ZmH7x0GUNmxPzJHRQiBmRiNpteBDKoq+73iFoCKEbJtm4EDB1YaUZYR+q3q273KfbIqnWtDX7kdZZJhGYY9rENph4KGmRxNsn4hBX8yP35sMWvXrueb3/wmC2+aR+gfi1yituC4XTMVu2ZqJRkgZYhX3I7fzkB6xW3MmT2NpqYmfvCDH5BIJNixYwdz5sxh6lUjcbLLohZN5SxaLUZiOIbdgF/apc4niQLTPgljJ2PHXskHH3wYrcqq/1e6NVDF4qLFvptfrxpZlrcb9ZjJ0SBMhEgReIfPUGSsoendCIN81HG368XBFyviFkuXEKSUFFsWtz1wQkc3eqNbfQmDAobZQ31bt3PhwrCAEImzkuwC7xhCS3cIjAfeUUq5lVXMaSFsNKMuyhTZ/OAHPyCfz5NIJCiVVIxj2LBhPPDAA4RBLpIt6bgaslITMBPDkKGLW9yI7+wjUTuzqsW2CngvrTpeaEns2vksXvwWa9euZdasWcycOZPAbYyaBXRkmGtGdxK11+M7O9H0etzCBsKgpTJfGJTQ9BqEZvLks1s5fPgIQgjuvfdurhgYVhEhRVTrplwqAYRoepogyCNOu08jMYZfP7+Sz33uc9SlmyK3C0CQqJuHrte2a9OkAvVlhne5Bk9t63w1qel12OmrCMMiTu7D6PoSJDPz/qgr6D8E4hZLnxEIIUjWLVBtrr0jUUeOw4R+E1I6+CVAGJVgqdAzlFqXqTISLaH4R2ZfNKN7xUipOMX7mIlhmMnxlSp9z9mLm19H+/yBbvaLMj8pCoUCTz75EwAGDhzIqVOnKtc4a9YsQJENDatfdRZN6FiJ0ejWYHz3YKTFrVZbTn4tybp5FaOq6RnM5Mg2MqjZj+OnevPc4z+itraWv/mbvyGVFDi5DypuUWcI/SZ8Zw+GPYxiy9vIMB9lKAfhlXYoV1C6hH6WL35uEj99/A2klGzZ9AH9e7T1cjPsIVipsSAlxda3IyqEp7hhVf8oA6SPX9rGTQuuZ9GiRTzwwANo3mECvxlNT+Pm12GlJuC1i00ptQGJDD3cwrqzZh8NaxBWehKgQdCqfhNGMapPsGs6fd4vCcQrpYsQgXcSt7BWGRGrH5re7YySHjJ0CNxj+P4hQu8Ysgv1YEJY6GYfdKsvvnuQwFU5AmW4+iOEUdWnTQgLMzkKw1bCaytXrmTJkiVMnDiRhQsXomkaBw4c4JVXXiGXy2HbNrfffjsNDQ3IsKQMgfTQjV7qQRI6bn69cklOg5kYqR788v3JECf3IZrZwMuvrGDXrl0sXLiQiRMnqhq4whaE0M5ZgyeESbL+JmWg3IMqMC1MpSnlt6AyjA5Cs9l3eAi/+c1vuPPOOxjc/wAyLKLpNSQy8yrG3HcP4uRWRvEilbrX9Fqs9BRkoOJHQkuBMFi9XiORSHDVlDE4ueqMnabVIvGx05PRzT4E3vGoeLrY2W0gNJuyK5iomYlX2typ8bJrpldiZhcjzrZSio3SRQYpJU72PYIo1iKEQbL+812qcZIyIPRP4LuqQeKFkA5BfWOXjzWsQZjJMWh6ilwux1NPPUWhUOD++++nT58+SlXAO6JKM4wMjz/+OI2NjfTr14+HH34YUMXBYdCMbvbHd/ZGImlnMp5CtRZqR1PYuXMnL7zwAv379+fuu+/G0FXgt6KdpCUxrSsQmt2pQqOm12KlJle1NJLSRwYFPGc3XmkvmmZWdI4StbNYtnwl69evZ/TIOqZNSpBMJpXsbXJ0ZY5S9gOVQZQBZnIEZkKx5lVgfwde5K7p9lieee59br/9dlL2ydOuUSOZmYtmqGxbqfU91RG4E2haLUGQQwhZeV0WphNaEis1Dje/Dim9Styuq40a/tSI3bdLCKF/rGKQNF3xddobJCkDnOwHaGavqFK8vrKKUvKsfdDNPkg5ARm04ntHIhev6+UIasWQjApPJyOEYMWKFbzzzjtMnjyZhQsXttu3hBAGvrsfU7+SBQsWsGjRIk6cOEGhUCCVSkWxqmpje5az4xTWkqidjRCCl156iQ0bNjB//nyuvXY6XnEbxdxOVJxFU1QI+wqElsSwriBwD7Y7h4aZHFkxFm3XLCm1vlvRxhYCECaG2Q8rNZ7jJ06xfv16stksK1e30r2+D+PGJPGK2zDMfgi9JhL0PwbISIKkTdYk8A7jO20SLYG7lRvnz2LRokXcfffd6N6hSgcVO30VmlGrDJmzp1ODJIRVUcZsv2AOglY0oxZd74aVmojQVCLCySkhOSe/Drvm6t+rC/CngdgoXUSQUipJDsCwBmLXTCMMq92S0D9BEP14xS0IYaObKtitG30qH8yyHIhl1EFyFDIsEXhHIyN19KxysVbqKvzSNgyrgWKxyJNPPkmhUOChr99L7z6DqvbVtCRoyUgkTtDQ0MA3v/lNFi9ezGOPPca3v/1tNE1DhsUuGCSiazdxXYfXX3+DLVu2IKVk376dTLqyteLWlCv5hZbEK+1WaX8hsNKTKLa8E22f1KGwNgxyuPm1HVZqmpbCSIzl9TfeYv369cydO5eamhpeeOEF6rpfhxD7kFEvNgjbqVFq+M4BDOsKNL0m6m6i3CmhJQGBDAv0rDtCjx492LhxI+PGTqHUugQpA3xnP5pRh5tfh++dQNMSihQpdEWWDPKE0kOc5tGYiWEILY1X3I1ZM7byf9fNAWjGTkL/lJJCcQ9UlaVcCojdt4sIvnsIJ6c4qsm6+QithsDdH3GFFEK/Fc/Zje/sqTpW02sJg7wKclsD0M1+lQ/q6Whz8w5Hbl77+IVGqtvnEcJg7dq1vPHGG0ycOJH5N4zBK23AsAZWVk/nws9+9jNSqRT33XcfoAh+qoL+7DCsQby/soX6+nrS6TQvvfQSX/7ylxnQp7miBmkmR1dWJ1LKKE2fjt6jZoReV3WNUobtdJiUQRZaGqSLmRrH8ZMWzzzzDLW1tTzwwAOkUkqJ8u2332bHjh38+dcXVrJkaoWmI/Qa7PQUPPcggbNf1aBFlf4qvjQZZEAp+6GKPWmDePY373LPPfdgGydxCxs7KAMIkcBKT0I3uiFlSLFlMZqWJoy0mFQpyjQ0owdecRteaRu61U81d5AOTn5tFRdMM7pVVp0XE87mvn32xFguUUgpKzVMhj1IGRm/qQNXRzMymO0q883kaHSzd0RCDAm8Izj5jyk0L6KU/RDP2d9BT7vs5tnpSSTrbiKZuUHFjYxu0RzH2bZtG2+88QZf/9pXmHd9L7ziOpABvrMPv7TjLPehjg/DIg899BBHjhzh7bffBsBKjqcrCjMSwe7du5k8eTKjRo3illtuYevWrer4svxKcTuBd1JRCgprKLa8VelGohn1VQ9h6LdEXKnqhgKa0Q2r9gZef/MTnnjiCWbPns3DDz9cMUigmnQWi0XWbzxZUU4QQsOuuZpErSr9sBIjgQBNs1HicKNIZG5AN3qgm73R9DpkmEUE27jhBkWq1K2GKqE9KLcAn4Rh9Yuyou8CUvGXIo6YDD1kWKLUuhSvpHrFBe4hvOIWiqeRU83EMBK1My86g3QuxEbpIkHgHiQMS6gPtQqmhmEWoXWsASsTKJWM6hjs9NROgtrKQLmFTyg0v06xdRlucQuB31Sl6SOEQDPqsZKjSWbmkKxfiG72ZtGiRdx22210qz1UxTYGcIubzpiu9krbKGXfw8m+jyDg4YcfZvXq1WzYsAGhWVip8ZFbc2YcP6nTr1+/ysN05ZVXUigU2Lf/oOqvpiXRhIFbWEMp90FFv8gprK26t3Ln2WLr0qqYmtBs7JrpnGzpz49+9GOOHj3Kt//6z5k0vvMOLffccw9vvfUWmFdGWtpaJArnRRK6K5ChE5XkTMFKXQkywCtuQ0qJlSqv6Hz692rCNE127NiBnZ5UZaQTtTPQzV44+fVRr7dC9H+uwUxeqUT79DROfnWHbiheaScy4jMJLRlpgE+grRLr0sGld8WfQaiHZzMydDETw5Sgl5QYVufdPcrfhuU2R8pIdXTDhZasuGahf0q1gS5uraIEtI9Dbdu2jddee42hQ4eSy+VIp9MILajKxpXhFjYhw1Ikvp8m8JvwSjvazhdkcfIrSddcy1e/+lV+8Ytf0LNnT/r1G4Rm9lSkyk4zcILde5sYMWJE1ejNN9/MM888w1e/+lV0ozuBexAZtMXbNKMeu51bGZQbIHRgig/CsMfyyqsqXrVw4U2MG53GLX6A4ysDfXoPt/79+zNixAie+82r3PPlmbiFTxD+KUq5D5VxkH4UaB+IV9qOZg4g9A4reV1hYlgNFepA4B3lhuvH8exvljNo0ANY6Uk4uZXqPY1Y3TLMI4QN6BiJ4Rw8YitX1h7cwW1v96lAiBRoNSQzM6vY94F3HLe4CTMxEuNcjUAvAsQrpYsAvrs/+iCKSlDSLazHya3AK+0mDAoE7nHVDTYsVr71y4oAutEzKuKsrvbXzf6nibCpf7eULr57ACe3ikLza5Sy7+GVdvLqq6+QzWZZv349YRjy9NNPs2WHj107n2TdPKzkWDSju5LR1SzcwicUWxZTbFmCk/2AwD1UtSIJvGO4hfX066fE1J544omowWWqouV0OnSjB3v37mfw4MFV4+l0mhkzZrB48eKomWV5hSGibrpt2kRSBrj5T6oMklo9XMexpt782w//D01NTXznO99h3JhuyngQggyilHpHA3/77bdz+PBh9jeG6JFLHfpNIH0Mewh2ehqBdxyJJHAPoFuD0I1euMVNFFvfrnCZhJYkmcrQu3dv/v3f/53DR8NKa6fAP9FuP4tiMJEXfruObdu28+KLL9Ja6HvWdk5CS5BIT6sYpLY2Ue8R+qdw82urSlkuVsRG6SKAX1LffppeV2l1ZCXHoumZyDh9hNBsJAKvtAcpBUJYlZiEptdgJUeRrJtLsm6BahlkdMdMDEGPmkgKYZPq9nnsmmsr9VYKUn2TFjbg+z4NDQ1ce+21mKbJoEGDeP/99/n+97/Pj3/yFB+uOoKwro5kSpSrZ6UngzDPWKHuO3vxnV2MHz+eq666qtLgUrXW7hldX7QaFAZu2BvDMLCsjrGnMWPG4Louu/c0YqUmVK5fNdRUH+XAO0mp9Z2Iv6NoAIY9lOMtI/jhj57kySefZOHChTz00EMkEgkM+wo0o421HfjHo1hNNTRN49Zbb+XFF1/ETEZM6uh/ZiYnEAbNhGEWGeSQYZYgOKW4BtJvp1w5hJbiOJ5+djE7d+4kl8vx2muvRen8Nj6Rbg1j7aYkr762lDmzpzNnRoovfv56Xn99cXTuDleHlRxLovZ6NKMmEv87SLF1SVWbKCndqAj64k5uxUbpU0YYFit8Gd0a0MY50sxK2lq3+qEZGfzSbvzSNpXu19KE/okOHzBNT2MmRpDMzFY1WuUCXquvEs+3+pKquxErPVmttCL+TrGkIyU89NBD7Ny5Exl69Kgv8K1vfY1/+Id/YMaMGezatYtHHnmERx55hNdee42WlhKmPRg7PQUzMfyM/c/cwgZ89zA33nhjpcGlEAK7dgZWzVTKrqdh9Wd/o8fQoUPP+H7dfPPNLF26FC/sqdjnei2+06jqv/LrI9XMHEg/qnmbxf5DKZ544lfk83kGDhzI+PFt7YyE0LBSE6vO4RW3diqrMnr0aHr16sVri5ZVSJRhWMDJ/g6vuBU7NRHd7ItX2ombW4HvHov+l2mM5HW8v6KJd95Zzuc/dxP3f3kiUyf3JwxDSk4Q0RvSNBfG8OzzaxBCcM9d06hLbiL0m8ik9jF06BA+XrunStVS0+uiRMVIhBCEQREntwInt7LThqGBd+ysiYqLAbFR+pQRuG3ZEqNdK2zFlD4cjfdHyqBCrFOdZDVkWMIrbqbYuqzTls4qE6aqxnWzT2VcaAlMezCJ2mtI1X+eRO11rN8s6devTSBu+NAapkxIUmx+Eye7jDEjLb72ta/x93//99x2223kcjkee+wx/uVf/oVnf/1f7DlgYdfOJVl3I1ZqfFRY2xYPKwdn77vvPvL5PK+++ipCaAhhk6idgZkYhmE1sH379g7xJCkD/Oh9SiaTzJo1i7feegsrPR7CIuDiZN9XrY/UHWImRoE5mV8+9QovvfQSs2apLNSECRM4HcoVrI7dnenBvffee9m8eTMnWzJoZh+QAWGYJVE3F91qqKxMZVhCNzKYieGczI7iqadfpb6+ni/feT0JbTU1qVZumNWP+fNm8+abb5IvJnl/lWD579bwhc/PZuKYAoETNQ5F8aumTqpn69attBb6oum1mMnRJDJz0IxMxCLfQ7Hl7aoguGENIpmZW9F7AnCLmyuKCRcj4kD37wnfPRjJxIZRkPT8JGDbp3Cd/MfoVn9lQGSIDB2EllINE/1jUWBYfbOXsyrqQ5hFmupbUYYebnEzhtUXKUXkVmlVRqk9yvSAbdsPMmPGDMIwpLm5mfvvHINhqm2hdyxKqy9HhgX69erLHbfNRmgpWrMuK1d+zOLFi3nxxRfJZDKMGTOG6dOnk663CfwThEGLkveQAbqu8Y1vfINHH32U7t27c9111ynyp9kbz/NoaWlRLZw6XGObqP6oUaPYvHkze/ceoaH/uKidddRfzajHTk1hxarNLFv2KGPGjObeu6Yiw5Ok0zexdOlSJk2qdoE0vQYzMbKqO4jvHkR3j2BY1Rk527aZM2cOzz77a/7mr79O0VsK0ieImg2UmdqansFITmTZ8rU0NW3mjju+QMLYh5tv48lJ6XHFgDzNLf15/fXXGT16FHNvuJpS6xIENR37obi7WHjTLF5//U3uv/8+NE2tcsMgi5tfVyGnSkllBWwmR0aVARl8d29E+pRRi6Y5aBehmkBslC4Q6iGQuIUNlYyTkrWoq2S3DHvgWeeQUlZ9q4VBC7gy0ipSi1gVVJWVFY9m1FUMUhjkKg+jHj08gX8U39mN7+zGrp2JXTNdBZ+lf1osqd29RIZo/PjxbN68mUwmhWFE7aVrrkZGBtIrbsD3TymuUiQ1krYPM2t6wJyZMxB6b7ZuP8G6dZ+watUqNE2joaGBq666iqFDF1YaCCQSCR5++GH+4z/+g1WrVjF37lzGjx/P9u3bGT6882YHp9f+LViwoF02rpEgOIWVHENLrp6fPfFLwjDk6w/eTl16P4GrxN4mje/H6tU2b731FjfeeGPVfGZyFBBUdU1xC+vQzXmVwHEYFnDz65k6uScff2zw7vvruHaaMmZucUu0nyptacn14PWXFzFq1ChmzxyKV1pJ6NuROFzbqsx3DzJl0jVMmdSgsnpiJMnMPIrZd5Vhacer0o0e9K7rQ6FQ4N/+7Yfcffdd9OlZilQU2uRNdL0O3Rqo4pH5j7HTU6LAf5mAmUJKD6+wDis97aLjMcVG6QIQlDMZkSaPYQ/Bd/aoUoqKgbJoa9bSOU6XIvHdw+3Y1epD5rsHlfGJsjK60bZiKK+yhJZGaCqNXXYHhWajGz0RQuB4xyk0v45u9MTuhEy3Y8cOamtr0TSNlStXMm6MMnDl1ZUQGkJPglCBYSk9Qr8ZzeipjLJ0ooDqPoYN1Bg59Ep0YyYtWZtVqz/h9ddfJ5/PU1dXR69evcjn88ybN4/evXtz8OBB3njjDdauXcvJkyeRUtKzZ0/GjBnD2ZBOp5k+fTrLly9n3tzrCMOQ199YxoYNG5g16zqmT+lG4G4nDNpoB15xK/fdeyv/8Z9PMHXqVLp1U1k0KX1kWMRMjlP98yI5EZU+L2sbtRUSB/5x7r3nS/zkp79kypS/wtAPKfkSPYOZvJqPVm5iz55VLLzpemqT+/CKUXtvYaoOJe0aAoChpIGDLKY9EE1PqeagwgQspMwhhIGZHMep1jRP//xn5PN5fN/nrcVvcM/t/SuflfZdkFV8STHglaYVgIi0oFoQQqjVoNmnqmLgYkBcZnIBcPJrKlkNVXYxXn2Q9FqQHm5xC5qWxEiMIPSO4xa3IjSrS3T/MCwSuEcIvEME3gmkDBCacRoTuTu62Y/AUyl4MzEMKzVBlSU0L0JKD8O+Ajs9JRKGexMZFtXKp/Y6Av8UWlRUqpu9efa5t+nVqxfz58/n+9//Pn/x0FhMMyBVf3MlK1Sex7CHYCVHVb7xpQwotS5DSg9NSysXQktGsR7lxuhmPzB6s3XrId58800KhQLDhg1j9uzZvPLKK2QyGTRNo7m5mePHj2OaJgMGDGDu3LmVNtidQUrJE088QXNzM6VSiZ49e/LlO+dhsE3JjWg1SOlhpSfgl/YQ+CcQenc+2WKzceNGEgmL2bNvoHe3wwR+E8m6+SjXZiVmYqRSxgyyOPlPlPsc1aOF/il0oxdL389y4MAB/uyhOwn9kxxvSvHmm4u58soxTBqfIfAOIYNsVME/Ed3oTrF1GTJ0kNJXsaCwiGlfgcQkcPdg2EPwiiqWJKXEsK/ASIzm9dffYePGjcyePYMhgyx++8pastksf/vXd+CXykbPIJmZh6anovfHo9iyNNKPSijW/+kSL8JQqgyncbP+2IjLTP7AaOs+IdCt/pEOUW+0iKwYuIfwSrsoNr8RaePkkUHutFosiVfcTui3VGXQNC2JmRhConYGTfkJLH+/mVw+VcX8DYMcXnFThRMUBll892AkxarmKhMrZdBSWX3pZl+lT5R9n8Kp1/BKOyllP6KxsZFrrrmGbdu2kU4nMc0AzehWlaYOg1PKsEWC/uqbthGvtJMwyGJYDdi112Amx5WDGtFxrbjFrfj5FQxvaOSr905h6uQGZs+eSUNDA3/5l3/J6NGjOXjwIM3NzfTq1QspJXv37uWVV145Y/o6DEPWrl1LY2MjLS0t1NXV8dX7Z6CH66IW2TrotSTq5qkvjvRkQCdwdjJlYh0jhkimTzjCh+8vjerorlRieMLErrkOzeiBW9xGseWdyKD3JZmZXyktCfzjzJ0zimw2y5q1u1j+3j6WLVvOLV+cw4TROfySMoxC2CQzczGsfgjNxkqORjPq0PQ0AqGC/MnxBN4hQKu4YkpC5WqONfXikUf+k6NHj/KX37qNSWNayaQO840/+xL19fW8s3x7W5MF6eMWPqkIxwlhRi2bMoRBqaNBio5RTQc6V7f8NBC7bxeAsqCYYTV0ENLSDNVnXoZZZOiqso4wXzESlTnCrCpVKG6KYlGZyLj1QTd6IzSTp59+jlKpxOZtJ7ntttsYMrg7gXuEMGipCpAH3jFkUCCMWNeqc4ZKz7fXoVbXEGImRuA5e5FhgRPNNrquk8lkePHFFxk7pj9CpNC06oB94B6u4kYBVY0aVUzLwEqOiJpg+ir97Owl8Jor71lNymHOzG7AeorZwxhmH6ZMvpJFixYhpeTECUVzKLc0+qd/+icSCaVnBOD7PqVSCSklmUyGmTNnsm3bNmpqajDMfhXpWis5tip1rhISHlK6lFp/x4QxHq5rMHeWReAereIqhUHZPW9FN/sR+qcw7GFAiJN9T62KtTSGUcuVV6prv/baa7nj1gn4zjrC8qI2oiX4zh7M5Cj14Is0ds0MQu8gMnr8vOKWaEVlIaXATFyBZo7mhZf+iz179nDzzfMYNaRE4G+pBL99Zzf33Xcfjz76KNOmPkDKyIKw8N1DBP4x1ZhAr0E3e6j35bSyFPV56KMIuX4TXml7lVbUp4nYKF0IogdM6DXI0K3SQ1Zi+20saie/Ft/JE/gncIvbsJKqKUz7Pl0yLOEHJYSQyi0UOsK+gR49eqBpGrW1tbz22msUCgW6d+/O+PHjmTL5BnTRFMniKiZxObYgwwLFlrfRzD5V0rLlZb2ZHIXvHUaGBVZ/fKzCCzpy5Ai3fm4SUhYqPcXKCLzDEWNc6RipOesqRsnNr0dKB93og272QDf7YlgDMKwBOIUtBO6+KE4iVfxFSxB6R3C9IwhtOyNHjmTXrl34frm5gKBv377s2bOHbt26MXPmTABSqRR9+vSpIlfOmTOHV199lW07DjPsiijwXNiAbvRQVfjCVEWxCIRIImURXdcjQ9cCwlAumalWaW7UqttOT0W3BuLkV+IWPkaGAeBhJoZT8gfy6ktvcfCgqgFcu3YtN8weCe2K/g1rAGZqKl5xQ1Qj9yFhkCNRex2+d5zAbaR9eZAQJonMNHbuOsnLLz/KwIED+e53voWXX07gt9MpF7YqCBYGM2fO5JlnX+abf74Ar6h68pWZ6XbtDFUlkBiJ7za2U8iswUpNQegpSi1LkdJRWlH2ILSzMMb/VIiN0gWgzF72ilsRmo1pDz7LvsqAybBYkbUAKl08Epk5EAaEModf2k0YtKDr3dixay/jxo3jmmuuqRzj+z5r165l/fr1LF++nEQiwfDhw7n66ul0r1eGQ0mRqPOE3knAr5y/lFujSI6aVXH99uw7yle+chONjY1YlollFKMYSFvaPAyyUZYvSyn7HsnMHIBI+1u5rOH/z96bh0d1nnf/n+esM5qREEKABBIIJFaz79gYHBvwAgnExsYLMW2TOk3j1HGb12nfX5O2aZO3S5w2SZs0TZx4j/ctNgYDNsbs+2YMEouQWMQqMdJsZ3t+fzxnRhK7E5L3/YP7unxd9lgzc+acmfvcy3fxzyIlyKARz1HzNs3oGlYax9WMx4wTKZwSKlGeoiniyAAAIABJREFUxc3UhsmgjGg0y/z583n//ffp1eMsAwYOJV7Yjw80wbRpN11ytgRqG/fMM8/Qu/ddmPpRlQSSW5Eyix0bi2GVYdp98JzjysgxUBK4ml6Mm6kl2uUWAj+FECZmwUic5GbVwqW25OWCdaMnRnQQ27YfZMeO15k+/RYsrYGNm/fy8Sen2HcgTb/e3fN4Ms9twpQZ7NhI1YYKAwjItK5S50cvDM+rwIwMxBd9efa5lzlx4gTz5s2juro6vI5l+M7RPAdR6bEfxIwOYOrUqWzdupUNm08ydnhRfpvreyfxnEOYdhVeZm8IJxGoJKip89+2Rs22QmXO/xcSElxLSp86lHaPE1I9gk7ER1AyGZ5zWM2ANBMZrmENqwLdbCdD+l5zODjtgjA0NNkNNxXKp5o9qavbxU033UTgJdQQ2SjBMAzGjx/P+PHKIb2hoYH169fz1FPP4rouuq4zceJEbrh+AtI/pbho4YZQSpfAPUbGORSSPSGVieD7AT179uS1116jX98e4fuXKViC0EIbpHYOmQzSOKndaFYZRmQgRmQg0j+L5zYReAkCvyV/R1ZCY2fRjBjKBUVt8zRdOafkbJp0s4xTpzZz+vRpJkwYx4A+DYAD7OXO2aXo5kk8x0Q3u3Mxs03Lspg5cybvvPMud981Aye5lsBvURWi0Q0pA/WjxkW3uuM7DjJIEQRJ7MgYAj9NpnUFAg0jUo1udCd99j0IDZnN6CBaWruy+I13qKqqYsH9s/Czas1+y9ReDBl6I6++9gaPfv3L+P7K0JIqguc0hosBxZnr6NvmewkMswyr4Dq27djPkiU/YtCgQTz44IN5+AQo5xff6I5hVykjUu8MTuaTUL89zv3338/Pf/5zRo5YiMaG8HoLvEw9utkTM1KNlz2IpsfDG0wilORVIFNlmJnDPCU+Ndbuase1pPSpwwehIRDoZjclFNYhPOdIJ9H9XGhGMbqZQ/uqH4QQJlKqGYbatuTawu60tLRQUlKS3/TpZplSEDBK8jilPn360KePIvA+/vjjtLW1sWbNGtauXUs8HmfQoEGMHzeZeEEqrKAySN/JC4tt2tpC795qJnbw4EHumjMUyIQOJEcRwiDbthEQIGJq2xZk1DYxewAhDHSzHMMqz4MPFRCyVKlcZuuRgAzv3l72IMg0ulWBEBF1VxcGp5sl3bt358CBA9xx27hwUE54rjJ42UOqRZVZdKM7ulmGbpUp1csOUVlZSc+ePdm2o54RQ/viZvYT+Anc1Mf4/ikl/gYqyUofIWLY8XGYEYUgN6zeeNlD4bBZqLZPK0C3R7Bm3U4aGzdx+20zKYqdwE2tQQhDbeP8BJXlbVRUVPDa64u5c85Y/OwhgqCVwD2ODM+NH8q96GYPzMhgAr+ZjNuTJ3+hKDALFy6kV6/zWfyaFkXYfZSOU2y0sp0KWzQrPomSYsmIESN44cVFLHxgkrp20lPfq8BVypVaFN87qxQoglRozzQmP0tTVlc78bIN2PFJGNans3+/mnEtKX3KcDP78pIbVsHI/JwmF2Z0ELrZLaymHNz0njDZdLzDC8zo4DA5nSWTWEFuWyW0CEeOJaioqAipJmpmo2ZHTSh0dqn6YYayIaBmLT169OCmm26id+/e1NbWsmXLFn7+i6cB6N27N+PGjaFf30FI/zi+20TtvnruuGM2juPgOA7dS1RSdFKfoBld0O3+6GaZ0vj225DSQQbJ8DMbCoCX2R/SOwyFpykYgtBiyrIpUk2mbSN+mJRkkMTN7Ef6GUS4gtbNHuz/5CBVVVVs3bqViHkW77wlkZaXTsmfhxRoZhm60RXD6pW/u0+bNo1nnnmGqqo7KDDU+XIy+zppWwsBGCUgAzWEjlTje2fyaOz26mggx45bLFv2BqNGjeLee27BTW/Fd010swwrNhKkVMRXp4F5d97Ev//wGY40TaCsRF1v3ztNJrFczdFEJLzGUXSzG6vXfsyqVS8xdsxobrllMobZPmzPhZQeTupjfLeJaJdbOtlOBUErmcT7yCDFbTOn8e8//AWf1PkM6CvyNzgntS1PKVHb3wAzOhQzMkBRlaTEd46EnnnqZuUkt6Ab//dMB64oKQkhioFfAMNQV+xPpJRrhRBfAx5GDS7ekVI+JoR4APhfHZ4+AhgjpdwmhPgu8CDQVUoZ7/D6fYCngGLUr/evpZSLwv+3EPjb8E//SUr5VPh4P5QzbwmwBfiCvJzPztWIDm9xbuumHtPP4ZkVhHOT0g6Pme1SrkEWw+6flyUxzJ7U1dUxYMCAsBXKhD/y/njO4bAlOhGK1u/AjFSTzFbSvXt37rrrzjz0YPDgwQwerLYpiUSCdevWsWTJUpLJJCUlJfTqVc7Zs61EIhE2btxI99LcEBskIYBQuuhWBWZ0KCAQQu+k9S39NgJcNFGAFAIZ6l+76VoMqwzd7KXMEu2+HcChKXy/GemqqsEwyzh4cBWjRo2ib9++5zm86lYvNKMUN7WTczWjpN+K6zbhpj8JN0290K1yZs2axTvvLOK++bfiptZyIWiYQIJQP9702WVq2B3qfOtGKYE+lPeWrSWTyTBv3uew9QM4SSVVrOZUYxDCws3k5HV1Anc/s2ffwSuvvMqjj3yRbNtKcoN9FQF2fDwtiQg/e+JHAHzpi3OJW/W4qY3oRTfT2Ug0jRAGvnM4vMHtxioYob4vjrpRmJG+yjkls4158+bx4osvMviRB/HS6lg7ctyUEcTIPCYp8NMqaXXY0KrP55BNbceOTfi/gva+IvCkEOIp4CMp5S+EAswUAKNRNtyzpJRZIUQPKeWJc543HHhTStk//O9JwCGg7pyk9D/AVinlT4UQQ4FFUsoqIUQJsAnIUck3A2OllM1CiJeA16SULwgh/hvYLqX86aU+x6cBTzY2NrJ06VJuueUW+vZtR7xm2zbhOY2AoKDrnPMumgI8ZtV6P8SPSOmjdJ0vfIGzbRvwnCMYdjVWdBC/evI5Fi5ciO/U4qb3YEZqsAoUs71jUgjcE1gFI9m87RjRiMmgGoGXrUfTi4gU3XzB9/M8j+3bt/Pee+/hOCrBmqZJPB5j3p1T6Fbs43unz2GYawjNVijxfIVWDDKb1/n2vZPIwFeC9gI85xiaHiNSOCX/Kmoe14qbbcQLW1wzNoNfv/AqpaWljBjej5L43o6Hix0bj271zgNADasSzz0KqOTheyc7AUuFFkM3u7N5exopJeNGRTvJd1wqNL0YI9KPfQfSrF69milTplDdL5JfQKi/KVQOIVpcSaT4CTSjJC/2Ztj9ee7FzXTr1o3bZ9TkW3nd6oUZGc57Sz9Uzr5TJjN+dKRTQrDj4zGsCmSQxUntwHePoxmlnfzx7Pik0MAzjWH1xo5PwEnvDRPWMF59YzNBEHDXnMH5zy2ErUjSHUQDPedoaKXeEVCpDC01XVk52QXDO8Eqrmb8TuBJIUQRMBV4AkBK6UgpW4CvAP8sw5rv3IQUxn3Ar3P/IaVcJ6U834FQJZzcdK0LcDT891uBpVLKM1LKZmApcJtQZ/Zm4JXw754C5l7us3yaWLp0KY2NjTz11FP8+Mc/prGxMfwM7cBJ3z1fEtbN1JFt20CmdbX6p2096bPLSTW/gQzO1xxSTH516gyrnLOJNEVFRei63oHh345xEpqiekTiE4kWz0K3elNXV0e/vkV5ekQQJHFSWxWgUnp4zjE8pwkpfQzDYOzYsSxYsADTVJWe53k0N7fwxK8W8fIbtRw+0R8rNjnvmCGEQeCnCLwW3PQeMokVpFsWK76XFsGOj6eg+A4ihZPCBDqCaJeZ2LGJ6ni8hBo0C6EQ3qEYm2Z0paGxiT59+tDU1ESPbuc6rAilP+4rFxPN6IoVG4Np1xAtuolI4eROGyM132kj8E4xceJY9u/fz9m2sitqQ3SzHIfreOOtjRw8eJAH7v88Vb1OhsJoqdCIwCDwW/HdkyH0owY7PgE7PiVffXjZA8y/+3Z2797NqZYuaEYJdnw8p89W8B8//CkNDQ185ctzGDO8rQPvURApvB7d7BnSQpapFb508wlJiJxhQI/8osJzjuA5TaoV0wpw0p9w5+dvo6GhgaPHC/PflWiX6Rh2ZYjA98gmt4QSvhlV/aJhx8YoCIEWDR1/JU764/Nkd/8QcSXtW3/gJPArIcRIVLXyCDAQuDFsyTLAN6SUG8957nxgzhW8x98D74XtYAyYHj7eG+ioyXE4fKwb0CLbfXJyj58XQoiHgIeA/FD4SqKyspJsNks2m+XMmTMcP/w23QqrO+B3ApzUTnznGFbBqLykbD5pSf98K+kLEGKV5barhqZGN2prNzFgwABkkCHwmvOPX/izaXkgYayoF5lEnapwcgL/2UOoKsdSjwtdDYqtcioq+lBaWko6nWbKlCl88sknjB8/noaGBhYvXpJv8wYPHszY0aOwIy3hhu107s1DAbf69tc1yyBMOEKIvPhbOvGB8rjvMhMhRP686GY5+/bto3fv3iQSCQLvnNbN6IbQLNxQAlY3yxBCw4wORggthBa0gjARwgo5Y4LAbyPbuoI77riVt99+l/vvnYGb2nCRc2hjFgxn244mdu58m+nTp1PWPYObWZ2vwIQwsAtGE/gtOKltZFO7QEo89zBWeCyRwimkW5YiZRYt2MX06bfwwgsv8cjDD/P6W29RV1fHrTNvYsgAh8CrDTtRTWGnkPheM9m2TVxoAmFYfUJtc4XNsmOjSSdWoAjh29D04vzMLcjuYtasWbz62ps8+uhfoOvteC7fO6PeowP3Trn/qg2lpscRsTFkWleH/9Mnm9xCpHDqeYTo32dcSVIygDHA16SU64UQPwT+Ony8KzAJGA+8JIToL8N+UAgxEUhJKXddwXvcBzwppXxcCDEZeEYIMYxzRW5UyEs8fv6DUv4P8D+g2rcrOBZA0RjmzJnD6tWr6Voco6pPjM5EynAz5BwOKQwqdKMb0m/DsKtUMpFOaOvjXbCdyouwmT0RQmPfvn3MmTOnkw7Spb4Q+/btC5n1It9yRYs+Q+An8NxjqkoJE5JKlE0EfguG1Zfm5ma++tWvEo/HGTt2LKBkQWbMmIHneezYsYPt27ezbt06NE2jqqqKiRPH0KunqQbDTqMSosu9bpAMfyRd0K1ydLOMwE+C0IjEJ6mEEaQxzAq87CEMs4yjR1cTi8Worq4k8EM+od0fZBYt1CZq15VSFWO7dfYxhFaoyMoyd21yWBydwuhxhgwZwroN+5k4puI8AwTD7sPZtnIW/2YZffv2ZcEDn8XP7FCD9lxLKHTVQppdlUuKXhj6xqUwIwPIJreG0jKn8s+RgcvY7Fmq/u3faP3Od8j8zd/wtT+fjfAPEHQEQWoWplmJl9mfh0d0DKEVYMdGnSc7oxnFCpWfqe1EAgeFTxo6eCAffGDxwx/+J3fffTcVFb1xM7XhVlGGqHyZx6pJv7WDcqiGEFY+OQZ+EjezDys68KLfwasdV5KUDgOHpZTrw/9+BZWUDqNmOhLYIIQIgFJUVQVwLx1at8vEF4HbAMIBeiR8rcPATR3+rgJYAZwCioUQRlgtVdDe8l2VaGtrIx6Pk8lkuPfeuXgpBXhT/DFHURYCJ7TzaT+NVsEwzOh1nRKQphfBRRJLe/Ipx3EcXNclFouRaduVf79LRW1tLdOmTWuXNtG7KF0noxjD7hNyxyRIF987RbZtA7rZk5aWFoQQxOMXJmIahsGYMWMYM2YMACdPnmTdunW88sqbOI5Dr169GD9+HDX9uyH940qETeYEyc4SpM+G4NJChfz2mxGajZuuVe2PVkCiTVJYWEh9fT2jRoxHyAiBn1E8tFzlGWRVxahFER00yJVu+VFlXZQ7z6F5gO+34iQ34WVbGTv6el54aSkDB0yjKHICZc0dQ7dHsHb9Hhobd3P77TPpEjuBm1TXWKIRiU/ETX9C4CfIJjcRKZquKsPMHuz4RHSzFC+rBtAiSOUTkmFVgjGI1b/+a25sUvOiaS+8gP7lMQR05pcZdjWGXUXgnTnPwdiM1GBGh3AxNxIzOlgRsvOmmKF4X3QEO3YdIZVKkc1mWbp0KfffPTC/WVTWWuOQQYZ04gPUckORkBEmMo9rk8oMM0jipnerje85llC/r7hsUpJSNgkhGoUQg6SUe4FbgN3AftRcZ4UQYiBgoZIFQt3K7kbNoq4kGsLXfVIIMQSIoJLbEuB7Qoic+dlM4G+klFII8QEwD7WBWwi8eYXvdUURBIGa6/g+hh7gEdIACidf8nle9hBCL0TTu+YTU0deVaf36KiHZPZkf91B+vXr12nOdDFxNgDf92lpaaFbt25kWpVSon4OvkQdgwBhE3ih7K5ZzoZVG6iouLS0Cij8iu820b17Hz772c8CkEqlWLduHcuWLeeNtjZKS0sZM2YMI4ZXg39SIcvDNk8GKcXz806j7r1aODAv58DeA1RWVrJ//35M7TS+m0HTInmBMujo3NKzU6LPJjeE+C6QCEy7X9jCncW0++I7DaFxwVbuuONW3nzzbe6/9xaEbOPYyQKWL1/EyJEjuW/+DNzMXtyMAjVqejF2bDQi1EuXQSuIKE5yHb57AqEVhpvSNpzkdpRbbitCL8Y6VsDHWZN33/0vqqdN40xFV2LfeZzKbdsI3q4nfUdn8To3/bEykiwYTTa1Tfn86UVKqvgyCUAIHatgdOgNB4ZdRTLTm9dfWUp5eTnz58/nrbfeorW1Fd3omU9KvnuSdGI5dmwsVnQoTlrd/IIgja5Zqt0QFpqmq8+eO99tm4h2ufmiSfJqxpW+w9eA58LN2wHgj4Ek8EshxC4U/HZhrnVDJaPDUsoDHV9ECPGvwP1AgRDiMPALKeXfA38F/FwI8Siq9v6j8LXOCCH+EcjNqr4jpcxBYr8JvCCE+CdgK+Eg/mqFYRi4rippc7QNLgAB6BhqiLgNCLCiQ0PhsItH7genGPkWtbW1jB8/PmwFPNXja/ZFn9/Y2EhlZSVKKjeXxC5eWfnuMTX/MbtTW1vLzJkzL3l8oFqMc22fCwoKuPnmm7n55pvxPI9NmzaxceNG3nvvPYqKihgxYgQTxs9AF6F1tHuiQ3sgws1RGfv2fUhlZSU1NdX54zfsvp3aVaF3wbD7n2cNlFdN0KJo6PjuMXSjBD1sMwy7r3rfIE3MPsqwYcN4d8kWDh48SElJCfPumoOtHyDbthaEpbSIIoMwIjVImSXbtj6kX4SuK9EhGHYV2bYtaoEQpMlBKIzWYvRv/jfilVfZ+uij3P+1P6NnyRmFQu/y1/DVv8f/2mOYN76OW9heEUnp4SS3Y8cnYscmKIvtSM0Vz290s1RVU1oJm7ceYM+eRdx+++307KluZI888gg/+MEP2LarhWGDuobVWKBAtEEaEWLclFOwSxC0oOnFIWXICVH4xfjucaR0cFK7sWPnywlf7biipCSl3IZay58bCy7y9ytQs6ZzH38MeOwCj+8GbrjIa/0S+OUFHj8ATLjUcf8uYRhGnhyal/7oMHCWQRaEcQ7tQWDHxqgfyGXaLujcukkpOX78OD179sRN7wwR3Jfu4/fu3cuQIUPUXVD6CC2Sd0M5N3JDYdV+arS1tZ2nhf3bhGEYTJo0iUmTJhEEATt37mTz5s2sWrWKSCSCaZrMnn0Hlb0LwwoqAdIl68ZIp9M0NjYy/ZaxIHNbJgPfPRUK11noRjF6WGkGfirkc1WrVbmXQGAggzYMu2/ocBKQTe7IbyJzrymEy86dOwmCgIE1XTCCdXg53zjpYMXGYFi98JyGEBNlYETaVTA1vSuedwaEDBOsRNPi2G8dwH/kTzBaWvBtmwXD++IU7sEL4Rbu/dcTvHAj1kcf4X3jPxE//9NOHnq+eww3U4vvHMaOj//UA+WW1hLeffddampq8vSUHPRC04u47777ePLJJ7lu6JfAW0Mn8cAghdDiyKANIUx0qxLPOQpCxzDLsQqGI9HItq0m8FrwsvvRze6/d7T3NUT3RcKyrPZKKRz6+d5JMomVICx1Z5d+HmULqqQ27EoM+9LkUfWabl4pwDDLaGpqoqysDC+7T9FKrIrLCm8dPnxYDaXT7fOni2GhOhpYKsnbok78qqsRmqYxcuRIRo5U7iCPP/44p0+f5pVXXuMb3/gGutkd3/dZuXIlq1b9O8OGDSORSBCPJnHDpaaTVvw/TS8iCFIhbaUnRogs97L1mHY1vnsCTbOR0iFSeANCC51jvRbanWULCfTreOq5t0kkEkydOpX169czauRIpGzInw8zMgDdLCXTuhrPOYluhBwx9yiYpeFcaUv73EcIrFNd4eF/Qlu6DA3ITrkB+Z9fJ+ir5jAIA6SHlBmMX/433rAxHNv9Cb30wWSCLbkzhtBiebv2bHJruOm6PGDR931WrVpFQ0MDs2fPplu3Dhta6arzFB1OeXk51113Hc//+k0WPjANJ70LKSVBkEL6KYRmKtOGyAD1POcwQhSgW5UKRNnxcwNOciu6UXLJCv53jWtJ6SJhWVYeXNju457BP8e2JocZ+bSh0MOGqrb0ImprtzFgwAC87FFykqxetj5k2ucAi13yX9jTp0/TtauaW3nuERBW3pzyQpFPSlZPtm59lUGDLt1aXo2YPHkyH3zwAalUiu9973v5H87x48eRUrJjxw6KiopoOgE9SyvCNqFDyyw9fOcovnMUBxBaobJV0izs2GikdEOiaTGZtlX5mRmAGRnIx3uzLF78JMOGDeOPHpwD8iwwkWMnJKUlvVW14DWHW9VSdKsqT6cBcDP70c2euNmGDgagZdjvH8W/73aMdBovFkN8/9v49wxB4qmqq2AkulmqVB+lh9OzGWPjal5+bwU37jnBiCGV+F6zAtkKMAuG4aR2EXhnQtrLxS2mAI4cOcKSJUsYMWIECxYsOC+JKXv09jZr9uzZ/OAHP+DjvUkG9+9BELSFgoAQKZrRgUMYxYz0V9Qh57DC4cnO2DEps2RT236vaO9rypMXCcuyyGbVLKl9uHchvkIOn+Sru4/0L6qW2DF0o1jpE0kXGbRRX19PVVU5gd+cF2kTwsJ3z+CmPyGT+ID02cWKoOscO4+KAn4nKkvHyFVlmt4FTSvg6NGjTJjwe+t8cRyHxYsXU1tbi67rSClxXZdkMklhYSGFhYXYto1hGCQSCZ557je8/MZennnpCC3JgWoW10FpE9QwWwZt+E6DunvnQH2igHRieT4haXohWJN55tfreP/9D3jwwQeYeXMfnORqnNQuJk8cws6dO0m7VeHqO0s2tQPfa0E3ijAiNUSLZuRJupnWNXjZRoRehFUwkjOtfXliwxak7+N8bjbu1l+TuWeASkhomHYfRCiba4aiab57gmzFEe677y6WLVuGK/srFLV0Q7hB77x4ngIsdrZIz4Xrurz33nt89NFHzJs3j7Fjx15RYtA0jXvvvZd3332XQB/YCa2fbV0TMg5UmJEhCinvNNKZrxmebmETeIkrRsn/NnEtKV0kOlZKQouj6XEKus6moOtniRRNQzO6hpWLOoWB10K6ZQlOaifplncu+/oyUCt6SUAyFWBZFhpnAImUWWSokmhY5aGPWg9k4CgWe2YPBw4coLq6ur0CMrpfdDOiNnkBulVOc3MzQgiKioquKHl+2qivr+epp55CSonnedx4440Yhjou0zRpaGggkUhgWVZ+ZmfbNseOHaOpqYknfvUqTz+3hl21RZjxW7AKRqGb5eh6YXhuPLzsIbJt68gkPsDL7A5VBZQMx96D3fjRj39FaWkpX3t4AV1jezr4wYGf3c7MmdN5d/FyjMhwNC2OQJFQhRbDMMvx/RY63oB0WYT10h7eWbSNp556ipFz58K29/CefAjZQ1UZmlFMtOgmDKsvbuYAbvZQZ06Z9OladIJJJSUkxk7CXq2SqELFR9t92aSHkzrfOry+vp6nn36asrIy7vr8DUTN42QSy8gkVnayJ79YVFRUMGjQIF586W2s6ND844GfCPFLClyZaf0Q3z+rIBhCIMPzoOlxIoVTMaNDkUFbKFyXvOB7/a5xrX27SNi2jeM4aJqG0LsT7dJuyaMbJXmhs/ZQPzAvezCscE4itNh5KgK5ULbSEt0opW7/QWpqavKDb8OqwIpeh5P+WNlv21WYkRqyya347ikCeuK6DRQUFJBOtM+KLhY5hxPdLGPtB2vzyPbAbwktnH73cByH5cuX09LSQkFBAbquc989kxH+QQZUjWHztmMMG/EZlixZzuEjhznaepQ0afTiDH/8+b9FEz4rPlzHDTfcwPHjx9m2bRvLly8nGo0ycOBArr9+EoWFbp5rJzsABoUeQxhjePaFdzhz5gwLFtxPj5Jm3OQahbVBVbtSegR+G927Ki3w3XvPMLi6kMBtQ/pncZKbQ/lgpd6IMLB3uQRf+ipGbS3dH3yQmT95HM3fg+OdUXtivw20KLrRDc3oguccC5HfO0EqrXPN6Kb4gc4RbjyxH6OujuyffgN98zP4HMN3jygzCKuXalfd4/jOEQy7gkwmw7Jly8hms8yfPw9DfoKT3N/hzLfhZuqwY2Mue43mzp3L448/zp59GWr6ds23pG6mFikzqiLU4iB9ZCgpHMiAwKlH6CUhZikHIXB5Z/cTHEpr1JTUcGv1rVetnbuWlC4SlmWRTCaxbZtsNktBwaVV+TSjB9EuM9VdJHOATOuqvMvIBf9e70qkcCoIjbq6ZcyYMZ3AVeA9ocVAmAR+AiuqVtI5x1wZZDnc5FBVVaUsv3PYI+vCSUk9rym/mautreVzn/ucwkI5x65KUjp06BBLlyp8TCqVYsb0KfQoacZ3a5FALOoydXJXEDuZdetA/vLZ5aSdNMc5zo62HZzemOHZO59lwQK17erXr19ecfPgwYOsX7+en/3s5+i6zoABA5gyZQpdu+h47jGQAXv2uSxa9CsGDRrEgvvvwMtsx8vmWiCBGR2GaVeRaV1B4LfhOce44foRPP/rd+jX73OY4pRo89ALAAAgAElEQVSaT3VAfBtuKcb3XkT8+CcYUuJUVDDx/hk43lb8ELCYc4bxMvtxMgfRrd5qMxUfT7ZtI5pRhmH3xk3tbJcS+bPrCV4ehr1zF+53XsD/P3NwkjsQmpWveHLqE7W1taxcuZIpU6YwaNCgsHU9nzpqWFdmkaRpGvPnz+f555/n6498CbzV5LZxvtOEEFGUOmqAaQ/AsKtwM/uQgU/gH8IPFUWllHxx2c94Z/9qfOmjC505g+bw7J3PXpXEdC0pXSRy7duVJiWkg9BsND0WkjaPt+ObLhBCKJE43/dpbW2lMOaRaVXVlpvejZepQ2gF+KHsiZJwzaLpcfYfOMrIkSPzFZCmF58neJYLxa1zVFvhuqTTafr37x9ihy5+fFcSruvy/vvvc/r0aSKRCJZlcf891xO4e/DdAN2qgCCTd25F+qw/tZR3g0Us5I8or69lQ58Ub+19iyX7l3BbzW3nvUe/fv3o109pnh87dozVq1fzxBNPIIRg6NCh7Nql7tz33z+fnt3O4mV3hds3pRZpRtoH+mZ0NG56u+LIuTuZPv0Wliz5gM9/bgJOamt4XUzsNS34X/4a+pEjBELgP/owwWOfxbWSiMBB6F2Q/ll897RCVjtH0Qlwklux45Pwsg0ILYIQEie5WTnd6F1xM3uRukT+9zcIpn4R82dPIObNIDvGQvrqWuhWL5ygmnff/hDbtlmwYAGRSIQgSJNNbj3v/Kj29sLcyAtFnz59qKmp4cWX3uH+eybjpD9G6IUEfhK7YBCGpUwx3cxexUKQPuAh0RChy8qKY80cX7GScUZXVpY2IZGXvIafNq7NlC4S5yaly4WXrc9L3yo0s7yitemhQ4fo1auX0kyKDkYzcgaJLhCQbVtLqmURbkqtjTWjnGPHjtGrV6/2mYXQ8N3TF5wRtUMBytmyZUveEtsPgXSfJjrOLnIKCo7jkE6nmXrjBKZMNAncdrdWTS8kUnQj0eLbQkJphP0tTWRlhhHvPctPn/yEr60HT3rsO7PvIu/aHuXl5cybN4/HHnuMCRMmsGnTJjKZDIMGlFJaVIuXPUjgJdCM7kQKb8SMDEb6rWQSK/CdwxhWKbrZPfwsbZR3b6WwsJDa/UkihTdg2H3R329Dn/0FrCNHyA4Zgv/R62S+NQPfSobXxQsF0kzV9vgJ7NiYcGvnkT67NLRHuiVfHVnRYZjRIXnrcW9wEfKxP1f//sXH0NwYQotgxSbwSZ3Fyy+/ybhx45g9ezaRSCS8jsc5l95pWH3Oc9O5krjzzjs5fvw4tQdchVvzWxEEihiu2RiRaoQWxU1/ErZ2DpoWw7AqieqT6PUPP+f9n2X41Vs63QL1fb3Sa3glcS0pXSRyyehKk5JmFCsRfRnk5V/FFWgdx+NxWltbeerpF/lozVFOJ2qIdLkVKzZaASGFMqIMQsj/2bYCSkpKAD8vUB94Z8i0riTdsohsckun5NQRxb1jxw5GjVKGANJvPW/de7kQWpz6+npefPFFVq1ahW3bFBQUcP/8G+jepfE8/lZOoVN52dVgWH2pLi5D1zRe76uA+f+8XKPmjKCm5MJ23eeG4zj86le/YsOGDcyefTs33VjOlIlRVR0JO+9Am01uJtu2nkzrR+hWX4IgQ+AnMKND8zAON7OPm6aOYu3atWTdONs/9viPT/ZxZuBA/H/8FsFHP8K9LtbhPGlEi27CtCtDfStJNrlFOeNGBiKERaTwevXvmo5VMBIQZFPbALAKRucTU/aRz+AMHECkoQHrX98h7Y3lpVdW0NzczMKFCztpeIFq0cyI4spFiqYSKZyKHR/byUnnSkPTNO6++25+85vfoFmDyKUBL7Mf32sOq/z2DZ3QIljRodjrWnCHjmD0iyuQQvBy5WHOBuo66kK74mt4ubjWvl0kcuDJSCRyRUlJCJtM2zp0sweB34YdG3seD+1C0aNHD+66axaBLznU0MTOnTtZsuQopaWlDBo0iH79pmNobSF37RQ7t52gpqYGGTihyNlpJX4Rbut89xROciOG3T+vjZNDcZ8+fZrRo5WiQRCkEOLKv9D79u1j1apVdO/enbKyMvbv38+tM6dSUnSEwFEMd6HHEYh8ReVm6pRypN6FwG/FjA5kRr9p3NFvFYtYx8sjAu7e4fDi4i4M+bfLU152797NW2+9xYABA1hw/+246W3IoDuaXoimF2NGh+OktuK7x0K3Yg+7cCqaHlebOudICLhsv576iTpmv/IKP62rQ3bvzsIv/Qnxr88l4+wHWiEgbNdaAcVJ1Iwu6FYf9NwMSrqqVYwOwMs24LSuw4wOxIoOybP53cweRVgWBggdafqIn38Hd+Yf8eEndex/9XXmzp2bp4icG0KIi84nf5vItcUvvbyI+XdNwEl/jJQu2da1nc6PYffBylTgf/mb8NRTWEB2yBD+YWEFP/JXoQcelqYzq984ZlTdeFWO7VpSukjkcEq2bZPJqLuG754g8JOdfN1yIaUfsr3PABpCL7qgXO6Fwk3X4jmN9O8/S635/RSnTrVSW1vL+vXrsSyLmpoaBg4cyIED65g7dy6aXkCk8HpyzqaBF3rAeaeU+JfbhBaaGuimSiIFBQX59bwMMgj98pc/mUyyePFibNtmypQpfPTRRxQVFXHf3TcQeLsJvPZqy7D6Y0b6hq6yqt1xkpuxYhPJtq0j2uUWIoWT+eWtX2fZoU0cva6B9MLXGbq7CX7xC3joofxrKdeNNmVi4Hk8//zzNDU1MX/+3fTq0YqTXNvhKG2smMLsWLGRZM6eUi2JXUa2bY2qbqJDlLCZzKHvI0Re34f/9YWUtbZyS1MTmx5+mJKi00qHHUDoWNEh6FY1fnY/TnoXTnq3Mi3QC7HjEwj8DNm2jVgFwzoQrwPlo2aWY9j9FXUlXLvnX7dgBM2DC3n+scc4q+uUwUUT0u8r7r77br7//e+zr96jqrfaxuUSktCi2LHR6LIrmUH9iRw5gm+aiL/7O4xH/5j/L7uDCfUT2d/SRHVxGdP7jEb6p8GIXeZdLx/XktJFouNMKZ1W62c3sx/fbcIIAXIdQze7Ee0yA+WjFbvihJQzB9CNUnJC7tnWDym0BRPGlHH9pNtIZ6Ps23eA119/ncOHD/P0008zYcIERo0alaeKKDOBUtzMQTyUvVEOYKhbZaxf/2pesxtCTaJLtG9SSnbt2sWGDRu48cYbqaurY8uWLcydM5OIsQ/pH0QGPkKo4bCULr5Tjxnphx0bk2evSxkoWdyiaUoYLb0bQcCMvmOg7xj0Hw2EhX+L9+ijGLffDpWVCmyZ3othV7F3717eeOMNqqqqePSRL+Cmt+N74bkXOlZ0KIZd3a7IoEUVQjq5Fd85RBC4ZEITSADfb8U8XYD46vfRlimKSNsNN7D/zrm4rotmViOyDSBMDKsXhl2DEAIRqcZzj4Qa6ScRWhwvWx9qZYViaEU3hUnoCIF3mmxyo1Ib7cBn043u6JERrF23jUOHDjH9nntYvWoVzc3NBKkU2uUWKlcxNE1j3rx5vPTSS/zlow8ReB8BgeIRRoeTTGV59tlfMnTUKCb16oX51BM4fTy8jFIxmtF3DDM6dZlXB/d2LSldJHRdJwgCbNumpUWt3RU4UahZyQX8xy7HVbtQyKANGaTQIzlyrMSMDA55XofwsgcxzHKG1GgcOxJw5LCP4zhs2LCBJUuWEI/HGTJkCJMmTSIej2NG+mFG+hEEaTUb8BPU1TVQX1/PxIkT299YGMiLDLoTiQTvvvsuxcXFjB07Nr+Wrq7ScdKbVXUkdLVV0pT+c/rscgXEy+zFig7BsCpws40IoeE5RzDtPnktciBvrOjOGoK8Yzr2omU4//t/Yz71c9zMPjR7JC++/DKNjY3cdeccKnulcJLr1BmSEt0qwy4YkT/nUroEXktIGO2L7xzBd0+gG8V52IQQEaKv7CF49G8xUinceBz9P76LdudAZls92LVH8tGq9Uy5fgROchNuuAE1I/1R9kZjkIGL0EwC74SyCJd+mJS90Loojmn3J+udbtc6kqH+t13FyTM2S159lWHDhvHA/XfjpndS3WcIm/7qWZzevYmsXAnDh3/q79FvG/3796eqqoqXX3mXe+66Hk2Loj+/mD0H3+Q122bs2LFMef11ZHCKdHo7Mpu+6GvlqvbfNa4lpctEx0G3FRsXzmquHhkx8FvRrSq0DqqKucSi6CEnkEEWN72H8aMi9K8soWu3/nTrMR60Empr69i0aRP/9V//ha7r9O/fn8mTJ1NeXo4WOve+/fbj+L7P+vXr88oAdmwCnIMpkVKydetWtm3bxvXXX8/WrVvRNI0FD9wJXh1OSunoaXocOz4ZRSg1EcJEM7rgu+qHqpvlGLaiwAR+G25qB7rZHTN6ncJeFQxH04tJn12GxMH//oM0RApZPHIkD2kRGo9FeeWVH1BRUcHX/+ILBM5e3EyLOlxhYFg9CLwz+ZmY754km9wMSHSrL1Z0AEakJmwBW0JLox4kNzQT/bO/wpAS9/bbCH70dZySFMg0XvYQI4dfz4svL+NMy1C6FPTEd4/jpD9GN0pwMnsRWiFIge/W5wfBht0HKzochI4QOk56H256Z6fzqps90exhrPxoI8ePH2fu3LkUFrSRSSzPb+gmyTbMlhacBQuwNm8G4w/305w3bx6PP/44xzY0Uv53f4e+YgVV0Shf2bGD4v59cNK7cTP7rwCDdK1S+oNEJBLJz5Ry2KJzIwjSyCCDphV86oTlZQ8S+Ek0bdR5/08IM7/yNex+2PEzFHVtUiBKGSDdRvqWN1B910h081ZOnvZZu3YdzzzzDIWFhcyePZvS0lJs20bXdaZNm5Z/7XOR5s3NzSxatIjy8nKGDBnC2rVrufXWW+leksRJr1JKhMJS+joh5KHja1gFo0gnliMDDye9m0h8IrpVSZD+BCld5W0fn0Sk6JZQRzuheIPSQfaM0/Ppb5H46XK++93vIoTg83M/R/++Tt4qSDMKkX4r0cKpCL2IbOsqnPQuVb1IX2k02VVowiSdWBVuQAOEiGAVjGL5B9vZsmULC/74j+l101jc2dVInPbfkdBxUtu49dYZvPPOuzzwwF0EniLUpltXqteJDcTL7O5AveiCVTAmFOSXuNl6PKceKaVq+YSJVTCco8cFS5e+zNixY7nppkm4qe1kk531yJ1vz0W+swJrxw6Cxx9H++Y3P9X36HcJQ9P4QksLpdOnY7ou2cJCIj/5CUZlNLymmVCF8nJ0lmuV0h8kcnQTpbqrIYM2Au8sCIFhKeVGJ7kd31UGAhcagl8spPTw3VMYdtVl70K5hKiS4nVKfsJvRjd7hK68+ymyDWbfMZplS5vZuqORDz/8kJEjR1JcXMykSZOorOwsqVJXV8eKFSvo0aMHzc3NTJw4kQ0bNlBdXc2CBz6Pl9mOk1IrXwEYkUGYkWqybWs7CMrnfqAxrOgw3EwdgXscN703BBYq2oWiWTQo2d/MwXDwG4qk2VUcPVFIMpnEcBymNh2jqtcxvGy71KumFRJIgZs9gB0bjRUfG3LewLDK8K3KvIaS0AqBAOOwBl/5R94cPoKTo0bx8Fe/jKXtJ+McBplCaDEkJpH4aKT0ybatpzB6jJqaGjZt2sXY0cPJtm1D0wuQfgpNM7AKRpNOLA8Bh2fxsgfRzbJw6xcK7RlFavtnDGbp+2tobW3l7rvvJmqdIpt4n3a/iw4Rt+An/wvu/Cvkt74Fc+fCH0DJgb17cb7wBXptVDqKu667jr1//hVmzx2Il2w3W1ByLCbI8x158n9zlbiU15LSJUIIgWVZZDIZnNQuDKsS3zuBm96DpseVR5eUeU8wz2lEN3vjJNcRKbq8ErDSUwouKXl7qWPTjRJ0oyQ8hhYC7xS+e5rxoyP079ONrt268dG6WtLpNFVVVfnnBkHA4sWL2bRpE1JKEokE48aNY9OmTcyaNYsu8Ra89Jb85wLlv2bYKgkbdl81H8ruy7Pp1eP91CwnSOFmapXUa2wM6VZlyuhmasPVs0QSDqWjo3j9zZUcOHCAz0ybxpAHH6R7YyPeZ8aQvUNViblNl/QTZFpXIaND89ZKUsrQ1rsD/SLwsJ/YifjW99CzWW49m8D+j/+Nm9mE53V08khiF05ROk/uKRAGXvYAE8bdwPMvvMuAAQOIWeX4rmpbneQ2IkU3YkWvI5vagSYsJSeb/jiPyRLCxogMpuFwlg8+eJnJkyczeFAlbmobTqrdGBLU0NuKjQp1oJpxp/WD++Zi/foNnIULsdasgausedUxAt8nMWsWxfv345SWcvaf/5ltts20adfjuwqsK7QIpl2tkN8iQhA4591AJQJdj3OtUvoDhGEYCCFwHCfctnn5OYYMQgUBIZT0qtOIafdV7rfx8Vf0+soeyEA3S9XWrW2NImaa5Z20ky783BQIVMsoBLrRFd3oiglY0SF06daE76c5fXo1Xbp0yUMBDh06xLJlyzh58iRSynzSTSaT3H/fHJzU1vbqSFNfNBkoxUfd6o3vncZJbg91njonU7WSH0M68b5iuyc3Eyn6DNGiz+R/eLkw7QEcbrJ49dWnKS8v5xvf+IY6xm99Cx56CPEX30a//mn8YpfAbw11k2IYkQH5FjkIUqEvWzpffZj1IL/8txibNgPgzp+H8c9fwkltVpzCDmFGqjHM7jjpTzqt7N30dm69dSaLFi3i/vvuDAX9vLx8bC75Bn6Kjo7JhlVBoA1k8Xsr8TyP++67F0s7SiYv0N/hvaNDMCODEEKplabPqr/x/ukeWLISa/16+MlP4OGHL/0l+m1CSg4fOcILL7zAgHvuYdaRI5j//gNKCgMWhIh3N6vhJLciRCSUCHZwM3Xnt3FaFE36ajZ6bab0+w/btvE8T5WlIctct3ph+G0YHQiwVnQwRDuu2y/MQzs3fPdISFkIzR791nBYvAehRTHtfsqPy+h6HgTBzdThZQ9SUDwr7/yRC00vQNP7c6yhgUgkwoABA/LOFplMhvnz57Njxw4+/PDDvDxLNt1ApnVFCBMQmJGBoV60wEntwLAq8JxDOMmtaHpJp9ZNGU1q4XvHlMJBajuB34qb/hjfa84nJBFWR6+98SEHDx5kzpw51PSz0ESabPIA1p98geDXv0b/4AP4xi8InvhiWA0dJPATCpwa1OC7DSHRVV0fXRRj/fR9+Id/RXddnO7d0f/7/+B+pidSKnKuDJIYkYEYZimERpfqmEPkvTDQja4EfislRafp27cvm7d8zOgRw3BS25QtlF2F0KIgNKRMha2ii1UwigP1raxc+TJTp06lpn8PnPROnGxHS+yc/RPt/nmEmDFhKsma4gj8+DHO/NV/UOf7dNiX/u7hOMjvfpf6Vat4ccYMbr/9dkaOHEngtZBJbiVobSFSdBO60VVtMLOH8b2TeJl9mNEhys7JPQnhtlHX4+H5zyXma0np9x6dhN60KKCjaVHs2Mjf+bWVk2tznuEtNJNol1sJ/LNKy9o5RuAncdK7EcJAN3vmFSgRZiiU3+28hNQxamtrcRwHwzB45plnmDJlCoMHD0ZKSSzWuWpoSbR/oczIQKyCofjeGRAR7NhYVa2E3mRGpG843PVxkptBmNgdvO8Mu5/yncsexM3sB/QQ99ObxmNRXn31KXr37s1fPvpl/OyOfGUGgHSwf/lL/OuuQ3/9Tex5M8nc3ievmGBEBigMUNvW/PLQjFRz4oCg67/8iLjr4j34AME/LcCNe0jpd5LmM8zS8yo8w+qNjF6HblWo2Ze7HTdTx6SJN/Lc87+hpmYOBUZpaFG1UQnzhbMV3eyGJ/vx1tvvYxgGDzxwH7o8RDqxAinJI8gNqwKz4DqyrWvyNx8veyCcS3UWTHNvG4h2y3KWP/EGNadPd5a6/W1j0yayDzyAXVtLlRD85Q9+gDliGE5qd2gtrq6/k9xCpOgzCKFhxUaRTryPk/4EzSwNb8xZ5RYcpAmCFHZsgjJfgPyM73eNa0npEtERDmCG6/WrFXnTAEv9QDKtq0F6+cRjRgYhAzdctTfhOUcV3ic6FMPsiQzS6Jfxed+9ezeJRIKPP/44zzZPJBIsWrSIbt268YX7JlFf/zE7dmsEgYUZGYqb3hnic0yc1C50szu61R8nuREI1IDXS4ANoCGlr7R/rF7oZk+k9PGcpvwcBpQ8q2aP4LU3PqShoYE5cz5HdV8dJ7mSc9sazzmM3qsXxuOPw1e+An/xbfSNT+J3ARD4TiNOaoeqbtwspj2ctxZvoK6ujnv+5V+IVETITikFmQ7xQUUYZhlCs3BSu8gmt2LHxqEZ3Tq1x2boguJ7Gnnjzsw2brvtVhYtWsR9987Fb30/r/8ttChWwSj21p1m7dpXuPnmm+lb2QUntQY3xCcJAWhR7OjovNi+FRtDJvEhAE5qR6fP3tEE0o6c4MYp1/Pcc8/xF/fcA2WXN6K4YKTTBN/+Njz+OLaUOH36YD3zDNrQCpU4z7Hl7og10/Q4VmQITnpXeMy6Mv/0WjDMHlgFI+js6Ht1ZkrXCLmXiI6V0tWO3Lpf0wpU+2GUIGWAm6kj0/oR6ZZ38Z1D6FYv7NgECopnYcfHqzaqA/P/YrFmzRqam5vxfR/f97Ftm61bt/LKK69w/eQRTJkAXYtaGD2iNw99cTZVVVXs3tuGbpSiLMmVJIjQogTuKTStAM0oRfqteNn9ynFECKzYKIQwQwG642QS7+Nm9uRlWwy7isMnqvjhj54hCAIeffRRqnqdCg0CAnKKkR2Bp05yO/JLf4Q/dSr66dPoL+9ACAMnvYtscjNSuhi7T6FP+wab5y6ktbWVrz/yp5Q/MBTnxor80BmAIBUSWWvQjG7IIE2m9SOlPw2hfLGfZ/kH3hk0LYrQlARNt+Kz9O7dm63b9uS1rQy7H542kdfeWEljYyNf+MJ9VJSlybSuzAMmhRbFjAwkWjilk/uHbpRgXuBmYkZqiBbfqqRx9UICv5kJwyLMeO453AED4Ohv4bW6ahXZoUPRvv99dSoefRRz906cccVkW1ciwupIM7oSLbo538a66b1qwwwYkWo0vRihx1Htp0ekcCJ24Q1oxrkmq9cqpd975OAAuVAM6hMoS+luv5VsRC50qwIRbpByZEszOhwZtOI7TSrxCAM3vUe5mxilSshNlxhWpfLkugCCPJlM8t5777Fvn+JvRSIRxo4dywsvvECPHt25d94YpLeXIGSY6EYpmlHC1KlTefrpp6nu/1k00axUE/UueQ0iYXTFjFSHd0zFjo92ubkTrSPTugZQVbxuFKNZg3j19RU0Njby+c/PpaoS/MxadKMc31Oa4XZsTOgt1pNM68rw+VmczE7sJ5+k8dVX2TV0KNMLhqrBq2ti//tyxL/9CC0IGJ1KMXbOWJz0KhR71kBpS/voZk+VNDUl/2HHRpNOfKBUIvUSfO+MksEVNr7fjGlXhex/jcBrJtP6EW56L1Oun8ozz71BTc2dxAunsuvjRjZvfo2ZM2dS3tPESX1EEGQVtUi6GHY/rILrLko1MqND8Zxj+arLKhiJYfdDCIEZ6Ue2TWGzPHmU6qICzLY23IcewvzNb84DvF4sHMeh/lvfYmB9PU5NDdazz+KPqSKTXJt/38BvRWgRBe40uoRV3Ap1fVM5ZxUNKzaaTGIFQljh9ep+kSXM1UlK4veh0/z/aowbN05u2rTpiv9+48aNRKNRNm3axMKFC/GyB8KSW2BGh2BdxmzyUuGkduFm6oh2ma7E7i8SnnMU3zkcOn0orFRB11nn6XHn3EE2bNhAWVkZx48fRwhBSUkJLS0tzJx5M926nCTIibsJQ81owh8DKB3oLVu28Nk7RqrPKUw0LU7gN2PHJ2JYvTptqsxItcIdJXcSBO3wAcOuov6wzRtv/IY+ffpw1+dn4md3EPgt4fOGKN2ec4wnlbhYu9SrHZ+EYZXz8ssvM27cOCoPb8P/4jex6+qQQuB/5U/x//5LeLpi6wthgTARQiPwW1WiD6uSIEihaQUEXgKhFyKEwM3UtVeEwsaKjcSwehMEaZzUDnwnRLAbJTS3DeDtt9/m7Nmz1NTUMHvWTALnEzynMX+8ZmQQhl3Z6XqqQbB7ngif755QLTuEsslxdKMUz2lsN0UAtGMpzAkPYaRS8MILMH/+Rb8rALS2srO+nnfeeYfB5eV87sgRePRhHL82NAPoHEqYsBuRwonhNVDfS7Qoll2DGa0JH/84nD2BHRuLYffBc47gpLbnq2IzMgCrYNilj+//Z++9o+Sqr3zfz++kSh0ktXIr55wzohURQmBMBiFhfM2MZ1hjkj1e99733lpz1501yc/GAXvGCQxGQggEFjkpIKIkUEJSK7Vyjq3u6kon/d4fv1+d7pJaIOxrv/FYey0trT5VderUqTr77N/e31B8XyE2SClb85K8vOWbEKKNEGKZEGKnEGKHEGKy3v6AEGKXEGK7dr9FCLFACLG5xb9QCDFKP/ZP2gK8qZX3uEMIUav39UyL7fcKIfbof/e22N5bCLFOb18qvowOx2VGGIYYhoFt2/i+rxDDZiXCiP1BCQkU1gfUFK21cLO1FDKbMIwksbIJJNpcT7z8KpzkiIsS0vnz51myZAkHDx7EcRzatm3LmDFKs3nw4MEsvPsa2ia3qx+lEBhWBxIVszSnq/mO16tXLyzLYt9BH9OuVjpOQb1ODl2RUmLHB0aNYi+/V+GG8BSK2UhgJSaybHkty5e/wq233sKtN43Gy34QJST1ul2YdlWUkALvFIXMFgyrfcnY3s1uQcqQefPmseNf/xWr5hZie/ZQ6NUL/+2nKPzjdRhl7RDCwbQ7k6icTaxsvNLkNpK4ue242a24uR3kzr9D4J9TSw5C3NxO3KzymLOc7iQqZ2PaXfEKh8g1rG6RkNpg2MPYvn07Z86cIZvNIsMGvMyaKCEpMbtpOMkhJQnJLxwh17CCQnqtIua2CNPuGP0GZJhBhjntZNKIYVZixRQIN1AzhXIAACAASURBVOyShH/7rjpvf/u3cPp06z+ohgb8b3yDhv79WfHyy9x9993cdO+9hH9/L/nCB8iWWlfCVMJz8YHIsKCHOCqseD/lshPmcPO10XLUTgyKKnM3+xn5pnUUmtY3L9Od7l9onnq5cbk9pR8Db0opBwEjgR1CiBnAV4ERUsqhwPcBpJSLpZSjpJSjgHuAA9phF+AVWnG1FUL0B/4ncJXe18N6ezvgH4CJ+nX/IIQoikr/G/BDKWV/oB6478t99C+OU6dOUVVVFfWWhDARRhwZun8wetUwyzGdrviFw4RhKclRSonvHsQvHIgeE8LAtDuWIMb37dvHY489xpIlS2jTpg3nz5+npqaGw4cPU19fz9fuuZNe3RpwM59EkhRWrDfx8qsuaWgwZ84c3n//fUKjb9Qv8LWtkZvZgBAGVqzUl0yGWex4fw6d6M6PfvI0pmnyyEP3Ud3hMF5uB8XeUXG5qlxsNyq3XCDw6vHye3GzW/TySfU54mWTEcLg6M6dzPjtbwmFoHbedYQf/xR3THHpGmgxNQnC0RVHldaXknj5Ovx8HU5qJIbZlsA7q/peuZ0YZgWxssnEysYhpU+h6SPczAYMEQMMnMRQTtX3YdEzy+nUqRPz588nFosxdNgEvUwEMIiVXwUyVBCI/J6IFxeGTcgwRxicJ9/04UWEVScxrJm/5zcqCV0jSbxiOk5yRCSFUpg/EveqSdjnz+P93d9d/KW9+ipu//5Yv/kNZWfP8tCECXTr1qEkcYQyB5gYZhvtStJfwVGMuJoC+uf1uXmXMMyoRCUD3MwmTZsxcZKj9e/Ti5K2EDFlO1427vcSnGstvjApCSEqgBrgcXVA0pVSngfuB/5V6l+7lPJUKy+fDywp/iGlXCulvFj5HP4a+JmUsv6CfV0LvCOlPKcfeweYK9TtfSawTD/vKeCmL/osXzbOnDlDhw4dIv6bDF39gwspupf8IaHQ0CGhV3rqZJjTzVojkm9tLV544QXOnTvH+fPnadeuHUOGDGH16tXUXD2FqZOq8DJrWvx41A/mInXIFuG7RxHBTmpqanhnxQdRY7fosGFqWo1f2B+9RlVHE3juxc28/PJr3HrrLdzy1ZG6OlJLOsOsJFExnXhZs5N76NcTuEdU9ZXoo6gcYZ7APUq8/Cri5TWEpFi0aBG/W7GC2t/+lie++11y//sfEWVK0lcJqw3AdKpBSrzcVnINKxXdRHoYZgrD6kS8chaW003d4aNmtABhYFgd8fL7yDWujGgiGBZmYior1+xj3bp13HHHHQwZWEl15zwLFixgy5Zt0QUKIYX0B+TT7ysNbZGIpmp2fEBkox769Xj5OgLvjEK0hwVdCRZBuFoCJszhu4eUKkFyjD5OCH/6LYJYDPv55+E1beF15gz+XXfBV76Cc/o07tixGFu2ENYMIN+wMvru1Y8qUMqoYZO+SQUK6JscBRgUMpsiocB4+VRiKQUADvwzEX3HtNtjtZhCW043EpWzsJyul/xN/T5xOZVSH+A08BshxCYhxK+FEClgAHC1XkKtEUK0BmO+kxZJ6XNiADBACPGhEGKtEKKoPl4NtFwIH9HbqoDzsplEVNx+UQghvimE+FQI8enpS5W+rUSxEjIMg0QiQS6XQxIQBg0IEYtwKpcTgXdK6e5cEKbVjkTlnKiML4ZhqrtlvGLaRUs1AN/32blzZ9SELy8vZ+/evaTTaRbMn0vbslr8wn71gxcWTnIkico5CCOhOWhHLtqnm9ulqSP76dNLLaH2H/LVksosw7Q6YtodKDR9ogi5wsKK9eLg8Wp++OOncRyHRx6+j+oORUEzdf6EsIhXXI1htSk9Z8JCmMkS4iooqo4w4uzatZvvf//72LbNtx+5j2HX9eSO//v/YvPmzZjOUIRw8PN1hEEjbnYzQXAOL3+ghfWSCVIqjaqgSZtKKv83y+lOos0ckD6Fpg9xs1siORonOZyT53qy+JnldOvWjVtvuR6bzyhkNuLldtK1c5Ly8nJ27TnVvMQKmgADy+6MaXdS2CP3WCR3AgYIW3n25WoJvFPkGlaUuqc43bSu+AC87FalDKqrPoCgRxL5j9/hs4kT2VxWBi+/jDdgANbSpQSxGOEPfoD10Sry3epxs9tLzrXlVJOonKXQ5yKmlBt0X9Awy7WTynm8/E5Mu7OiCNlVUT/Oy20jLDblE8PUgKJsArGy8X8U++7Lmb5ZwBjgASnlOiHEj4H/obe3BSYB44HnhBB9pL6ahRATgayUcttlvkd/YDrQDXhfCDEMWrOkVS2DS2y/eKOUvwR+CarRfRnHAihNoYoKNSItVkpCxEm2vekyJBxKQ/VKWl8uGWbrSn0XNr/r6+upq6tj//79ZDIZevXqFSlBFpdtI0aMwM3taKGvLIiXTYh6QE5yFIWmj3Gzn2E6XUoSnuV0Uw4WMsDNbOGa2dN5Zsnz3D3/FqT7IX5wSJlnhllV2lvDWPrCKk6cOMEdd9xGt84F3Kb3af4aDCDEsDqocZwo3ml7I8MMpt2Z0D9LYLbDy9US+mexYn3B6MTiZ17i+PHj3H77bXTvktf7hXiinLFjx7LmvbVMv3o4hcwGcg0ro88gTKUkYDnVmE4PCk0fE4RNmhdnAhZ2vC92YrCq0sICUjaBcDDNSrCHsvLddaTTae644w5i9hny6VUlEAM3u5GZM6fz9NOL6dXrdoShPOiEEcOMdcfP78CKD9IXdhcMqxI7MQQvt0O9l5nE0NNAaMY7FRkCdmIggXcMt+lTpHRLzBrCv5tPh4Xf4oknnmDf1q3cUl+PO2UK9pNP4ncXuJl3o4oIqXhrTnJkVMkont0m9d0IkzDI6uVdDtPuoqar6Y8RhqMwcfFBeIWDSOlrlYfJCMPW4Mo/jmU3XF5SOgIckVKu038vQyWlI8CLOgmtF0KEQHtUVQVwF5dXJRXfY61U6X2/EGIXKkkdQSWqYnQD3gXOAG2EEJaulroBvweQ49JRW1vLkSNHOHz4MPF4nFwu93t/EUIYGufx5eOtt95i3bp1pFIpunXrFgE6Dxw4QHV1Ne3bt+fkyZNs2LCBoYO7lnC44uVXl0itWE5nwvgATLvjRRVYMz3kM4VAlnuoqalhxcoPuG7OcOXaGmaxYr2oO2DyyiuL6Nu3L488/A383Ga8fPHiMbSEbBcluuZ0KzlvTnI4UkIh/a6yOsIm8E5gx/ux96DgpZd+Q58+fXjkoW/g5zfh5ZtnIl5uF8OHTuO5ZTs4cXoQ7Ss7l7jQytCNJnYKR6XAiKbVAZCEMo/vHtSo+RP6u7Gwk0M5ehxWrnyRSZMmMWhgD7zsZvx8QSckgWl3JvCOEwZNmME+ZsyYwTvvrOYr108mn/4IGebInX8bRbDuQrz86uhz2/G+SgVTI7lz3rvY8QFIWbgIOiBlAWGUl4BPDbNcmw5UsedTxavbOmgQbb7zHab/y/9DPreZMFvf4jzkVLNaGC3ccaSqnqSPFeuLHetLGJxTlb+RUFWPMHESg/AKdRQyn2EYsSghqxtSUzS5/GPGFyYlKeUJPTEbKKXcBcwCaoG9qL7Ou0KIAYCDShYINVa5HdWLupxYjuo/PSmEaI9azu3T7/HPLZrbc4D/KaWUQojVwG3As8C9wEuX+V6XFZ9++innz5/nd7/7HRMmTPhi37c/Uqxfvx4pJa7rMm7cOFKpFFVVVdi2+iEfPnyYF198kcbGRgyrSqOqfZAeXn4XhjX5gqQw9JLvpaRcjxD655RmeK/J1NaGHDjs06NrD0I68eyylZw8eVJpZXfK42XWRksFw2qrcCwahNca1EEIE2RBYYeCRoKgHiM+jWeXvdKi6spSyHyAUbxYNcIaJG52I9ddN5cXX/wd99xzO6F/hjD0MKwKheWy25Nv2kTon0ISagxQL80prFWmtl4LV2F7MCtWfUwmk+HOO+8kZp0gn14dcQCFiGHFemmN74/UfvK76dVzOtu2CfYfTNO9cw989xCqMmyLkxxWwlX08rsusNYOCbzjJRVHkd/nasUBw6xQZgvxAdiJgdTXN7B48WNIKbntttvYtGkT/adNwyvsLekTCiNFLDWaMMji5bbjZtTwQBGXs2rIYbVTZga5Xeq9wxxefrdSDI31xsvvRhjxqCdYVDP4fZRVf5+43OnbA8BiIcRnwCjgn4EngD5CiG3oxFBcuqGS0REp5b6WOxFCfE8IcQRICiGOCCH+l37oLeCsEKIWWA18V0p5Vkp5DvhH4BP973/rbQD/Hfi2EKIO1WN6/Mt++M+LRCJBz549qaysZO/evX9yUfdi9OzZE8MwGDt2LB9//DGe50UJSUpJ9+7deeihhwjDkE8//ZRYapySgA0aCbyTJU3pLwohBLHkKIpSv252E3OumcmaNWvYscfkx48tIpVK8chD/43O7fbh53dTtCuyE0OIl0+LEtKFE8ViBP45cg0rCLzT2PGB7Dvcjh//5BckEgkeeejrdG63T6kcIkGYmE53kpXXRr2VMGgkGTvByJEj+eCDT7GTwzHMlEaa71f7dg+opCID1VeTvmL1hxmQeS2KP47jZzqzaNEyevTowc03zcEMN0Z22yokCEO7xOZUc1tXmG5mA9dcM4t3330XaQ4o6a0UwZpq+ref1i4zYcSihBQGjeTT7zX3tgCwiJdPx0kOYcWKVfz85z9n5MiRPPjggwwe1IsFC+6ie/fuOgGqIYZhtiFecbWSBI71wEmOJPCOK4VP6RErGw/CJN+4Our7CSOBYVXh5Xbphv8q1fAOmjCMMpzUaIXe/hMlJLgCnmw1fN9n0aJFfP3rX+ell16itraWhQsXXiSS9mXDK2gZVRkAga5oFM0BFHkUqf43rbY4qXGsXr2avXv3cuLECcIwZNDA3tx26/UE3klC/yyx8qkIITh+/DhPPvkkDz/8MMLfEukLCSNBovKai1QGLgx1p96nAHLSR0ofYSQxnDH8xy8W0djYyLx5cxk5NFECcJRSYNrKZz5eNhnDaoOX242X362b6060fyEEMvSUoL7Zl+eef5OTJ09y++23UN0pj5vbXVLVWbHexFJKkTMMmrQkiqpg4uXTWLL0NWbNmkXbsr2KvX5BGGa5YrSH2Wb5WqcaaQ5i1eoPyGazzJ17LTHzGG5upxJ907IcSi+rJ25uu24GJ4iVTVFmAdrHzU4MYu8BZS1+zayRePkdhH4TTqKv0pzKbFSk61gftfR1uuLl90YVSKxsImGQwcvVEvHGtIOKFevL6dNnWLx4ceSUW15ejl/Yi5urxY71bh4OFI5QyCiRNtPqQKz8KgL3iAbAJgBXDwBshJCRzEsReR64JyhkSq8L0+6iYAmXgI78ofF54MkrNJNW4ujRo1RXq2HeoUOHcF2XNWvWsHDhwi+9r8OHD/POO+9wzTXX0L5iT7OY/BeE7+URbj21tbWcPXuWCRPGQ3CC8aPjER0DiITWunTpwsCBA1m6dClf+9qd5BvOYFhVmpt26YQkpSRwD+kGeXN1Y8f7smuv5LXXHo+0mNauXcfwgc1qAGoKMw4wyDWuppDdqtDU/nmk9Cg0rSdWPpkwOI+b2YKdGIzldGHvoUpeeeU39OvXj0ceuhcvtwUvn8GwKpBBGsNqFy0h1Vg9qcihiSG42a0IYePmapk37zpeeullFi64lcB/t0WFoyLwGyOogWr6juLw0TyrVmnxtQHVFDKf4roK2BkGaQwzDjIgXjEdIWzCsAm/cAjCAr6rpEsC9yiBfxovt4uB/aezbds2jp3w6VSlGu1evg4vv49iogm8kyQqZyKEhTArm6kcmk5SNFEwrfY4qdEgkrz++ht89tlnzJw5k4kTJxL6jeTTa6Klmpevw3SqldCfU43pHtYWW6fJN64i8NNa+6gZaa8wZj0JvGO6R9WewDtdMhlWyPYRmHb1H713dKm4QshtJQ4ePBgpNRbBk4MHD/699rVmzRoOHz7Ma6+9BuLyxqem1Z4jJ3vywx/9imw2i21Bm7LD1FzVkUTCBoyoOermdkT9iptuuolTp06xZ88h4hUziZVNwjASBH79RYhiQE9fPlKuujohGWYZRmwSzzy3kTfffJv58+9k4V0T6dWrmsbGNK4cSLOTS0gYZCg0fYzp9CTwTqtmc/lkDLOMwD9NoWk9+UaVRH3f4sknn+T111/nzjvv4CvX9cfNfBR5xCF9nNR44uVXqSWJ9Am8E4RBoyItO30wrA6EoUfon6IscYYhQ4awdt2WCFPVMoQQIEMspydm/GreemcjGzdu5K677qBfb5Nc4+oIaa5MM+MgFTiwWA06iWF6qWXhZrYiZQ4nVVziCgq5WubOvZYVK1ZEUIXiuVEHYZKomB4NFgwj2WqvzU6OIlY+lRMnG/nhD3/I0aNHeeihh5gwYZxCpDeuvghj5mY2ai2rIjFae/pJD8N0kGGDFuprRq3biSHEK2ZimOUUMhsVIl+f/+JzrAuGE3/quFIptRKZTIby8nL27dvHgQMH8DyPHTt2MHbs2IueK4vaOnoU23KqFfj1zJren2w2w9mz57DiQ3Gb3rtoH1EIC8MexLLl6zh69Cg333wzZYkm6s98TKeO5eoHb6SIp8YShk3qTisDCpkNxMtrMAyDm2++mRdffJHvfve7KLb/Trz8HqxYD42ZubipWgw7PoDd+0JeffUp+vfvz4L5RRfaLHfdOprVH5xmybO/4xv3zsbNfkYYpLVJwCSEUYYd64ZhtmnB01MYLTs+hF17XV577XG937l4+e34hWZpWsvppig0RrFHNYAwyGLH+5BPr1WNX/8soX8G025P6J/By+1k3JhpPPPsKwwcOJDyeDttBqpPp5EklhrFwcMZVq16lquuuooB/TvhZtbhBWlNafH12Lwa3z1OoWktwiyPzCQNqxInMUTZcxvl0WjcSQzDzdUSeieJJaougiqAAkPGK2qiJazvHtdTzGZLbNPugpMaCcRYvnw5O3fuZO7cuc1OxkETXm43xSQnhIXpdFNo/yDdLDNiJLATw/ALexXRVtjK7ik+FGGYESxEhi6F7GYlnVOU8C0aT/4essx/jLjSU2olnn32WQ4cOECPHj0wDINMJsOcOXPo0OaQtohuq9QgjRT5xhXRkizRZm4J8bLoc2YnBvHs85+QSqX4ynUDW+W7mXYn9h1K8vIrb9KrVy9uveUGAnd7CSpXGDFiZdMwtQtpoemTCIDnJIZGmkBPP/008XicW2+9nnzDyihBxMunIIyUMmr0z0T7NcwKsIe16PHcSteO6Yua5HZyIj/992epqalh6IAcyAJh0ESiYrpm+p9VXnWuEi0zrDYIaxhLlr7KmTNnuOOOW+ncvqFZ4N8sA+lpnE5XpAzwcruQsqCWTEIQL59B4B3Bze3CEJbqc9hdKaRXEwZNGGYbMt4wXnvtdRbcfROF9LsoQ8U+SLMfK1asxnVdrr32GmxxsPTcC0cdewusWKHpE7zCUQzDQZgJ7Fgf3OxWPWE0EEacePlUhJFU6HDtiByvmM7S515j+vTptCs/EOllOcmR2PE+uNnPcHN7MYw4UuZLlkmHDx9m6dKltG/fnvnz5xOPx6NltQLrxnVvq1It76QXkXnBIFExQy19paSQ/pDAP616iRWzgAA3fwDDUEJ7fl4Jy0WYrlgfnOSQSyoa/LHi83pKV5JSK/Hoo4+STqfp27cvHTt2ZOjQoVRXV5M5t5yWGM2iMyyou02yzdyS/WTPv6mXRQZmYio//NEvuffee2ib2hktuRQQcTDPv/CuTgi3062rjdeCglCMeMU0TKtd9LcM3cgCBwwSlTMwzApc1+XRRx9l4cKFdGrvRY1ZIWJIVHNdjdkldmIgew+EvPTSy/Tr148bb5iCX6hFthhhG2YZYdCEMBKczwzhqd8u5sEH/gq8jyOJE+XOuxdhlCHDLE5iMDv25HjttdcZOHAgN8ybjJ/fUtK3klKQqJyGabWNmv65hpXqnAoTgQBhqX6LriiKST/wz0bLQjsxmE83qQppwthqhJHi4OFGVq1axdSpU+nftz1efucFzXChyLZmm6iZrqZlOyM5YnnBBFE1f0dimOoYwiBNrmEVRShAPhjJ8uXLWbjwNrymd9WwQMQw7fYtTDjjGFYHYskRSCxefPFF6urquP766xmuTSjDIFvijuKkJuLndym4QWIICDuCJ6jj6kisbArKuipDrnElyEA3skdo/e+geZlMETowtlXLsD9F/MEqAX9p0aVLF7p37860adOwbRvPa51S0hLK3zJZQNELrvijDsGrZfbs2Tz77HPqboeBHe9H3aHO/OSnS0ilUnzn2w/QpcMpJZJ2QUKy432btaR1CMPR3CX1HgXdY3Ach7lz57J06VIMu4cGD2pgHgInNZpExXTs5NUsXfYJr7zyKnfecStfua4PXnYdaOKoMJKahzZNE5E9qtqeZ8iQISx97hV1gQBh0NA8kRMWOFN4eskHvPXW2yxYcBfXX9sLL7u25NgNs5Jk5QxMqy2F7E5yDSvUebQ7al5WklCD/WKpccTKJpZUoUrXWi2VvdwuJowbzJ49ezhTH+ONt9ayZcsW5s+/g97dC1rU7XTUXzHMCuIV0zHMCvzCfgLvtB7Lr2lBv2hm6gvhECsbT6xsIuDju8f1c8pxEqrXGPr1lCXOMHToUNau3YydGBad8+aElCCWGkO8bBz79h/m+9//PplMhm9/+9sMHz6cMMyRT68l17iimYcHeLnPcJLD8QsHFWwANKdOIIxyfPcUfmGv3p6KvhclR7wH8DQhW/XB7PgAEpWz/n9LSF8UV3pKrUQikeC6666jTZs20fQN0NVF60Rc48Kk1KK3AQoRO2rEaD75JM67azYzZfI0Fj37ImfPnuXuu++ma2eTQnq1Eo9HYAgHYaZU4zg1BtNu3+r7Wk4XAkeB9xTpcw9OYiCjRo1i/fr1vP3221w7p4Zc48pmEJyRYOfOnSxfvpw+ffrw8IML8POf4RdUr0OGGf2jl4oiIwxFUcl8gp/fy7y5k/jRTxaxqy5Pvx5V2pzSwEkMYfuuDG+88WsGDRrE1+65BTezFr/QnJwlJk5igJa5kLjZraoHFebINbwNWrxOBg0IlHxsS+XGIpG1eKGDbs4bBl26dOHxxx+npqaGKZMGUsh8jK85W+q1SqDftDtgWm2AXviFg0rNMnSBACEcnOQITT5Whgh2fKBe+tTh5ncgEBjmLAwziRXvh+8dI/TrcXM7GDtmOoufWc6gQYMoj7WPlsnFZVIQCBYvXsyRI0e48cYbowFKGKTJpz+8qDpTx53Dd48Qr6gh37iGMGjQVZiDDNMIAW6uVrvgpLBifTUItl7DDfR5sjsTSwyO1Af+s8aVSqmVCIIA01QTppbqk5+37r44KV3MxvdyO7j77vl88MEHfO///TGO4/DtR75Fp3YnFAdJy4sYwsZJjiZePk3f0VRCUn71F1dtTnJ4BNjzcjsjKdO7776bTZs2UX8+T0JP48LQ5umnn+bll1/m9ttu5qvX98fLro+ar0JYCjBXNgUp8/i6ArKcLlhaftfLbeG2227h1VdfxYiNULSV2BR++8x7vPPOOyxcMJ8b5o3GtMpLGv+qzzENJzFIKTs2rlLAxCCLYbXDivVWrPNYDy0rMqlEJSHwzihibZSQBHZiENKexMuvrmbbtm2KgrF1K15+X6SwCEXNoyk4qVF4+b0E3llMq51uricxzCSm01W/f3dNFDaVDnVYUODG3DaNK/NVw1oTfiPSrQxws5u57rrreOONN7CToyKpkFhqJLt37+MHP/gBpmnyne98h8GDByNliJvbRa5hVasJqXj+/MJ+kAF2YiCm0xMpVRUW/e5KZEZE8zGpT4+TGEq8bOJ/+oQEV5JSq9EyKZU4mlxKR06YkURFMS6slAyrLdjjeOGFF6NtthVSSK9uvsiEpRndswEPv7AfIUzd69hLrmEFbnbTxW9vOKVSGpkNSBlSVlZGTU0NixcvxjDL2L17Nz/4wQ9wHIeHH5xPl6q9BN6JC0woDCy7C8JwsGL9MZ0e0SNKYC6GDHN07Zimd+/ePL/sNXbuTfHjn/yaqqoqHnpgAVUVO1Qz3TuNoyd+AIbZDtOq1OJwzXrWpt2eeHlNRM+w4wMUBcOIIfVzFMhwh0JlY2g5lBnsP2TwzDNLGDZsGLfffjN9+yolzULYt+QmEkuNwzCVcacwy3GzG/UAIFRGnkEaO9YvSu5KQH8fgXcWN7+rlMohbExNcpUywDArsLXFVuifpU15I71792bDxh3EK6YjRSWLFi1i+fLl3Hrrrdx5553I4IgC0wbpFppTLb5T4RBLjSdeMY3iZepmNymnmUR/4mVjiVdMI15+dbSsD/zTzUMGswI7MRDDqiJRORM7MQAh/jwu9yvLt1aiqDgJKillMqpBKIwEtHCNjUIjsSkaVcqQIFJaVATVTVvrWbny1wwZMoTZs2fz9NNP07ZdZwy7MpqwxVKjteuuUkZUsrWmYpjru6jvHsX2GzCsypJDsJzOBLGe+IUi4fQUltOZqVOn8tFHH/Ev//IvANx+201069KIl9UNf6kcVUyzQk3FhKFEvkQBL7cNw0hgmMoJWDWKVQaTYZ45c67hpz/9GXv37uWGG65l6ABT9aTU2UKGTVhOPyXHkd+NX9inGPxWB92jCrBivXCSg0twMcWLJ/TrVWI2UmoZpFHmTnIkbtCOl199B8MwWLhwIZZRj5vdzO03j+Tk2ba8/fa73HzjBAqZjQAK2Gk4BO4xDLMtMmwid/7tqDoF8PI7MazJePk9JbbixeW0lC6m3TlaAkspyTWuwXa6qWcZKWSYIXCPM3nyZB5//HHWrVsXDU2++93vgsxGEzKFYZqNHe8fSc2q77K7rn6L8IiBKiFryREnObSkgnSSoyJArZfdpjS3tXFB0fDyzymuJKVWwjAMwlD9IB3HiZZvhllG0ErPWxjJEtW9MGhQUymrDQV/AE/95iUKhQLf+MY3XYBIXwAAIABJREFU6NihLWFwnvvuu48nn3ySaTV/h/DOIKWLm9mszCeNBE5yqBpPX4S07teq4oCUUjPDTeJlk6Mf7a5du8jl1OtHDOtO1/b7CKLPU46dHIOf247ldMe0O2OYFdFnsWP9ld2SWYaX20ngHdd38HF8vP4A77//c2zbplAosHvXDgb1bm6ctlQosBODNMM+rQ0HZhNLTcTNbsIwU5dEnIdBk5pS6kmg6ssMZffuvbz//lvMmDGDPr2VeFtBQyP8wj6qu1xNMplkz74svao7IsOsrnRC7MQg7PgAAvdohCdS+1aUC989VNKHATQPz8JJDtemDQIZuorGIX0K2W3qwhcmTnIYVqwfuVyOs2fP4nkeXbt25Y47btcUkR3NyHMZ4OW246TGEHjHkDJoFS9UPF5Vve1RLjhWUTzufNT8Vr8DDy+3m1hq5J9NZXRhXElKrYRpmgSB+uG07CkZVnug7uLnW21L/jbMSuLlU/ngo+18+OFTTJgwgdmzZ+O7R8k1rkDKgE4dZ9GvXz+eX/Yyd90xnULTJ0jp4WY2ESubjOV0I3COEXj1CLMCGTRixXpiJ4ZFd77AO42UvuLBBTlC/wRqIhPHdV2effZZTpw4wezZs1m5ciXdew4BzjYfY8U0hDAJ/fa4+Z3Ey5R4fBEj47sHFF0k8wkyaMJ0upIt9OTxXz6PlJK/+Zu/IZvNsmjRIiy7DFuz0UGJtRWTkhAmTmoMhaZPcJLDI4a6EHa0XGoZMvRwc1vxC4cQIg7CJJYag+unWL78FUzT1NXRWfLpj0r0vwEKmY3MmjWdRYuW0HP+zRB8BCgYhEoqiuhrukcjg4HAO0ngHsO0uyKM3RhGHNPprrb7p1R/SgYIIZRgfmZLVGWZZrmisaRGY5hlrF27ltWrV9O3b18KhQIzZsxQCSlbKi1mxXrgJIYjhEmsbJKSw22lb6kcRcaQT7+vlpgaES7DAm5uV8SlU5O1/tFS8s81riSlVqJlUmrZU1INZyVe1jIubHJnMlmeeuo5giDg/vvvp01lgnzTOr1MU693s5u46aabePTRRzlyzKdL+2p896i+OA6pBJQcQdCwEhnkIhAeoBut2yMlRUCDOpVl0fZa5WbRr18/Hn5wAdI/Rip1IytWrGDE0DvwchsIgwblcWa1x3KqEUZ/4GKMjNroEktNZPV72/nkkye46qqrmDZtGqBoOA888AA/+clPaEhPpyzWKVInsJzqqGIzrXbEUuNxs5ubLyJhXiT3G3gnlTRrkfZitSFWNl5XR8t1dVRNIbuFgnsMhA1Y2Il+SmLXO6mmh+E+ampqWLnqI+Zeo2y3VTN4M7Hyq6JmcOCf044cWQLXBqHkPOzEcIRhYsd7E3inyac/wM1tI/DPlrqCCAsr3hcr1pt0Os3TT/8Mz/O47777aF8VR4iY6o1Jv6T5XnSHafn9FUNpeYclQwLTakuy8lq9L4lfUKacYVjAMMsQworsqv7c48+zvvsjh2VZETbJMIxIGrc4Tr44mjvFhw8f5rHHHqN///488MADlCfTWk7jGFasJ8k212KY5eqiD49yww03sGzZMqz48EgGxM3VaUuguOJZIfHdQ0gZKrZ8w6qShAQC06kmtCbwxJPLePPNN5l/1+18ZW4PvOx6fPcIQwdVUllZyTurtkYmlm52m244pxHCwnfVxdcyIVlOdxrzw3ns35dSV1fHt771rSghgaLSWGynpuZqFi9eXMLBUrgpX/fIdpBPv4cwU0pCA5BhNnIUUeoBGyLBtOJSKDRHsnz5K+zevZuFCxfSs5sdnU8Q2LEeJCpn4iQGl7y3l6+jb5/2uK7LkeNEWK3AP92MKNeW2sVEIaWvcFJhlkJ2YzQwMO0O6pxJn9A/G3120+4YucK89957/PSnP2XQoEE89NCDtCk/S65htZJCAZ00msnMoX+G1oDLod9AvnFNyZIs+paNGGGYpdD0MYWMUqYUhqXMIDSq/r9CXKmUWomipRKopneJnIbTLaIQFKM4/fB9n8WLF/PVr36VQQN7KTlW7yRCOFqGdShCmFjxfriZTXjZbQwePIsPP6xg5ar3mTFtFF6+Fhk06mXcFCynmiDWQ0ueKDBh6ai7Aic1lo2b9rBixWMMHTqUry24Bj+/Db+FkaaX28b8+Tfz2GO/Yty4BbRJxfAKBxFCah5bY4RkBoU8tuIjePPtDWzf/g6zZs1iwoQJ+IVD5NO1OKnR+PndeHm1nJ0wZgCbN5usWbOOqVPUMk6GWdzMZ4RBvdbzGYelzQeC2Fn8wj78wj5MqwrfPRJhegyrHbHUGPbUHeP9959hxowZ9O7dBTezETdItwCtStWD0zQRw0jiJEdrUbVG3MxGrr32GpYufZ6FC26F4H2EkcDNblfNYDOJ5fQkcI8iw0JUaQjhqMazcFSz3T0UScHIMIthtsGK98ZyelJfX8+iRb9GCMH9999PRbkk37g68m7z3cOYbjcsp3Nkq+QXDmqwqYGTHIaUIVL6+Pk63fCWhMF5LKdbM2etFb5iUVXgT6l19KeIK0mplbBtO+ojFXEfxTCdrojsZ/rCEHrsqu7C7733Hh07dmRA//Ya6u/rZDTkAj3s7lr0Po2b2cydd97Jz372MyZNmkTMrMTXsqm+e1C7to4BJF5uD767H7RMuR0fQM7rypO/WkI+n+frX59P27LjeLmNLd6rG757DCl9LLmb6dOn88wzL/DII48AAb57GBnmIySzDHPY8X4cP5XkueefoV27djz4wNdJJqtwczu1WmFI4HbBa8GN8/J7uPuuG/n5LxcxevRoYlZHpMzhuwdxEkOw4gMuUsAUwsTL74m0gAyzHCs2EC+s5qWX38KyLBYuXIjJ8YjDZ1odscvGU2j6BNNqq23GVYRhoCyNNJ0iDNI49mHGjRvH+x98yrSpQ6MKpJBZr9UIbGKp8QT+OaSueIs62VJ65NIfIFos11tO31asWMH69eu5+uqrmTp1Mm52B4X0gYhrWJzGudnNmPYshLBxEsP0EjOPl9+DYVbiFepQrrzNMBJV2VmK8B3mNV9RVWlCWNiJYVixXn92k7XLiSvLt1YimUxGMIALaSZCqHLZMCtIVEzHSQyOphxbt26lpqYGGWQR+tQKoxRAqPahGr9CKH3qVLyR8ePH88wzz+AkR0bNXze7lTDIIsM0+fR7ePlaQGqaxDQ+3Xyen/3s3+nbty9/d/9NVCZ2lWhWKxDkeE2FMAnDDONGdyUej/PWW2+VsPLVsSZwUpNY/uoOljz7PHPnzuXrX7sB3LXkGt5qgacxCP1TOPGWDVVJwq5j4sSJehk3GnRfKAwaL7p4VN/pUPS3YbUjVjaRvQcCnnnmGUaMGMH182YiC58ooCISJzmMWPkU5QJTMYNY2QS9BPMoZDZTSL8fARyL4eXrGD5sAKdOneL0uXjU/wv9+mZ3XMPRVd0GLbQX6ISSx9DUlCJuKFY2iXPnMvzoRz9i9+7dfOtb32LKpIHa2qkORFwz+buSqJgWceiKy1SFKRuJGkhUUMhs1vy7SdGxOclRykuOgELTp+QaVkUJybQ7E6+chR3v/V8yIcGVpNRqFAoF3nzzTXbu3EkikSCfz5c8rsB9F6/hc7kcffr0USN1DXp0c9sIgywXhmm10xw45Tg6c8ZUstksmzZva+azSR+/UEc+/WEE3rOcnhTkWH7+i2dYv349f/VXC6iZlMTLbgZt8lKsHoq+ala8H6bTCRk04eW2smDB7WzYsIHTZ87rC0SNxI+c6smjP/othUKBb3/72wwbNiRaqsoWFkSJNnNwUuO0m2rzOQiDBmqmdMfzPNav34Id2SYdwddYLBkWKDStb0aw632G5jheenkFdXV1LFy4kB7VhpZmzWNa7UlUzFQ+ebKgJ24KJhB4J3VC2E8Y1EMLfpxK3jUYZoJ58+bx1ltvYcVHRnpQfuFARNK1Yr1BOBQyn2oPuBP6eNNYTg9lr2535a233uJXv/oVEydO5G//5j5iZp2mh2T1OUhjJ0YSL5uoTQDi+r32E3iacuJ0VXi0sBHwtZEDuudkIKWLl9tOPv0RgXdC6znFNP9uEsYlnHH+q8SV5VsrsXPnTtLpNK+++iq2bdPQ0MCGDRsiPSVhfA7dxDAQVnuQPqalxN/d7KaIxd0yTLtTVOL7+a3cddddPPXUUwwb9h0szWcrEl0NsxwnNZZ163fw7rvLGTduHDNq+uDmthD4qjKQYQYnNQY71pNC03oC76TW2xlELDmaAspY0jH2MmPGDBYvXswjjzyCH5/Kcy+8ybFjx7jlllvo16+f1ruui5jlijc3+gJLKDXByjWuptjsd3M7mH/XTTzxmyUMG/YtbLuj8r3LblYXW7a2eZSueyK79xzhgw+WMHPmTHr10r2jYjIkj5OaqsCWUul2K6+3jQizikAjmKMjkgESAztRBA6q+26bNm0UWXbdViaNHxxVSQo3NQvfPYIM83oJpQcbRizSWjp58iSLFy8mmUzywAMPEHcayKfXlGgjgRKW8/K1yDCrLKsIFQpeFihkNhGvmIFhWDjJYRpNrxU6y8YjjDKEUXYRTsq0O+Mkhvwfc6D9zx5XKqVWYvLkyZSXlzNt2jQaG5Xq4cqVK7/wdUIIfN9HGA7CLFc0CuEQeKcI3EOtPN+KhNd89ygd28PAgQNZsmRJCZ/Njg/AN8bzi18uYf369fz1X/8VV0+Kl4jcF/3s7VhPBaS0qhQ9JbeDMMioZnOgEkzgHmP82O6Ypsn3vvc9Hv3Rr4jH4/z933+b/v2Va69f2IsMM81cuPKrWvWoM6zKCzzkQyqThxk5cqRejo5GCEthajKbdHWkdJECcwzLX3qburo67rnnHnr2aKucXb2TqtHudAfp42Y3kWt8T9NubO3W0YQMzl10PEIbebZcVhdj/PjxHDhwgPrGymbroTBLruEd3ZjPRE1jy+lBomI2htWFV155hSeeeIKrr76ab37zXiy2a7+0DELLmJh2R5yiMkCYw3cPAyHCiJOonK16RNLHzyvIgZLnHR4dmwxyypklaIy+d2EkiJdPIZYa9ReTkOBKUmo1iuaT+/fvZ+rUqRiGwaxZs77wdY7jcPr0aeXkIV2EEcMQWrDrgoldMUy7fTQid7Nb+OqN8zh58iS79+wnlhqne0cNPPbYz+jfvz8PP/wwHTp0LJFKsZwexCtmRttC/xx+YT92XElveLlaCk3rm220rTZksyZNTU3kcjnatm3LjfP6KWnaC3zjneQI7C9oqNqJgSUToMA/w6zpA2lqamLzlp2RjAeoiitRMZO6/S5Llixh1KhR3HDDDcRiMQyzUqtBgpMYjpMag2G1VRAFWcDNbddWSerCDoN0C/ClJp2WT8O8gIJTDCEE8+bNU2TZhLKrBkqqnTD0iJVNJlY2lqPHTvHoo49y8uRJHnzwQUaN6HCRHbYMCzjJsWpSGu8XTcvCII0V60uiYjbCcDCdaqRUze1AL8VNpwem3VF997ntWn8ckAIr1keTsf9zqEH+KePK8q2VWLduHZ7n4bouM2bM4NixY5EA1+dFMpnkzJkzdKgKkAjCII9hBMRS47Bil3ZCsZxu+PYRAu84fmF7JGl7//33s2jRIlzX5Zvf/Cbt2zdPmuzE4MgcMQyalxwApl2FaXdWF7gwW9hDKx7e2k9P8v77Srj/+PHj2v3X1MnsAHa8N6at+jgXcuxaC5XExpQYGgSFWu666xZ++9tnGTz4YUynK6bVATfoxPKX3sJxHO655x5isRaNdmEQKxtHrnE1bm4rCbsT8bIpePk6pRckZQvFRR1SYpjtiJWNuQCAqJUbwxxOC4RzVVUV/fv355NPdzB21KCSpZLi4Q1DSpNly5axZ88e5s2bx/BhCsLhFkodU0ynq1LCbNHHUi7E63CSwzHt9roJv6UFrkziZjZpYwIDJzk6mtSCojI5yTH/abWO/hRxpVJqJaZPn048HqemRnlptm3blrNnz37BqyCVSnH27FlFjQAsu4OelPS4ZKUhQ5dCZkOEgwnc4/Tr251OnTrxk5/8RKGyH364JCEBJdWMlLIEuwRgWJ1Kl3dWO3LBaP7jV2+yadMmvvnX/42vXt+Xv7v/ToQQbPwsgzCS2je+iKb+4oRUDNOuwor1af5cQKcOCQYNGsQLL7xALDWBuv2FqDqaN29WSUKKPpdRhuV0V2Pw7Gbc7Ga8/C5t+ZS44MkmdmKAbmY3J6SWhghebgeFpk9LgIqTJk1i9+7dpLNVCq5hpIiXTyWWGs3Bg0dbiK89wpCBSQrptYpAe0EYRiL6rqNtevlo2u11U39jlJAMqy2GWa5F8fZEz1eibAI7PlBVvH/BCQmuVEqtRvfu3RkwYACplFpKVFdXc+jQIbp06fK5r6uoqOD8+fNI4SDDgIBGBJe2N/Ldo5rioBu/+s4rjDgLFy4km81SUVFxyderpd8E1TCPnCx8vNwOvHwdwixDhnms2CBWralj06ZFTJ06lSmT+uJmN+EXCgTeae6663Z+85vfMnzoQgxZd0khuy8K02qLX1ANfCc5CsNMMmvWLH7+85/z4osvEo/HWbhwAaY8Qq7hHVVBtqBagMIP+YWjGGZZiwpPhQybosGAaVWp5Z1ZhpQBfuEoptO9VUME3z2MYVVFy1nDMLjuuut4/fU3WLBgAXa8H0EgI232G2+8UdkvZdfi+/VKTRMTCBSYVRsjePm9GGbbVqtgv3BIQTo0DcSO98aK9SUMGsg3vouX24nldNXYrD6YdoeLlEX/UuOyKiUhRBshxDIhxE4hxA4hxGS9/QEhxC4hxHYhxPf0tgVCiM0t/oVCiFH6sX/SFuCtmp8JIW4TQkghxLgW2+4VQuzR/+5tsb23EGKd3r5UXFLs6PeLwYMHs3WroggMGjSIbdu2RcoBl4o2bdqQTqcxjRgCX/dBtl30PBnmyTet083SQvO4NzUhWgpYlvW5CakYllMdJaTAO0OuYVWEshYiQX3TEH76Hy9z6NAhHvjWN5kwJha9rzqWHO0qzjJo0CCef2ElsbIaAvd4hKu53FAWSNUkKq8hVjZZ+a1JyYYNG/A8j+7du3Pd3KuR7roIS6QSsgKp+u5RfPc4ltNTsfClS/PPU2DH+yq9bulhxYcQK79aqzacJd+4SlFUGldd4DLb8pynS/7u2LEjPXv2ZMOGDezcqXSmwjDkO995hH69RamlkfQxzDJiZZPUTcCpjvbjZj/T4nsF3Ow2Aj+taSAbFA1EGFixftjx/sgwgxeRckPF8dPg3CsJqTkut1L6MfCmlPI2ffEnhRAzgK8CI6SUBSFERwAp5WJgMYAQYjjwkpRys97PK8BPgYvsPIQQ5cCDwLoW29oB/wCMQ60INgghXpZS1gP/BvxQSvmsEOLnwH3Af3y5j3/p6N+/Px9//DGjR4+msrKSvn37Ultby7Bhwy75mrZt27Jjxw6lqyQcZFjALxzUxNROus9xWLtjqItRaeeM+IOmK1JKJRGrEdZC2Fjxobz82gb27HmfOXPmMHJYe9zsWgJfc/rMChAWoX8OL7+XG66fxg9/9Gv27N5Jjy7HkKGHHe//hcclwzyF7BZMq6pEVqWpqYk33niDo0eP4vs+x4/Wkut3HDWRSiHDnH7tJgSKeS9EjETlLJzkCNzsZ9qEoEk12+N9EEaFTmhNCCEIvFMlPaYitaO1CIM0yiOt+T581VVX8Ytf/IIzZ85w7bXXMm5MP9zs+xEGqhim3VFXfs1NeDW4MIml1HTRze3Cy+/B904i9XEYVltiydHasqkON19bMi11EkP/ywIg/5D4wkpJCFEB1ACPA0gpXSnleeB+4F+lBp1IKU+18vL5wJLiH1LKtVLK45d4q38Evge0BH5cC7wjpTynE9E7wFyhvsmZwDL9vKeAm77os3yZME2Ta6+9ljfeeAMpJZMmTWLdunWfWy1VVVWRy+XUD00WMC119ytkNhEGjaV3UCOhpzzj/uBxrzod6rhMuwtHz/ThR489TyaT4ZGH72foQKnJsdp5RTjEK6ZHYD2ETVDYyU03fZWXXn4NKzEWKV3yTR9qxvrFobhYh8jpaZSbq1VjeinZsmULS5cuZeLEidx666307duXMeNmKP2meH8SlbOwEwMBBU9QypvKSAFhq+WM01VP15IRQdiK9VTLusIhAu8khtX+C0moQlgKIV025SKIgGmalJWVIaXk0MGdETkZFIbKtDoQS40hVjalBA4hDJt42RRiZZOVDbd/HjsxUDndaj85JzmMePk0QCqCbW4bAovm3tGMv/je0aXiciqlPsBp4DdCiJHABuAhYABwtRDin1CJ5O+llJ9c8No7UdXU54YQYjTQXUr5qhDi71s8VA200IngiN5WBZyXMqrTi9tb2/c3gW8C9OjRo7WnXDK6du1Ku3bt2LZtG8OHD2fw4MFs3LiRceNadYahffv2kcwJwtEXleqB5BqacU7FKU9RO+dCft3vE05iOFJU8eLyDzl8+DA33ngj/XrHcHPva8XGhH4vTyOGa3GSw4mVTcDNbCTwTtK7ewc6duzIK6++yw1zB2E6XVoVCpNhnkJmUwmlxXKqSafzvPHmq1RVVfG1r30N21afr2h3LmX3aH92rDd+fp8GUgrtHdfcWI8lRxJ6Z5DSx0kMwXdPKN0ovaQqZDaRqJxFLFkK3mwZpt1J89QujYCeMWM6hmEwafI0rNiZFp50KY2xav5eitpVpt2VwD+rDSEbKITZKMmHQRrT6Y0QEi9XqxvaGoxpVRJPDPtSA4S/xLicnpIFjAH+Q0o5GsgA/0NvbwtMAr4LPCdafINCiIlAVkp5cVOlRQj1K/0h8J3WHm5lm/yc7RdvlPKXUspxUspxHTq0Jjvy+TFjxgzWr19PNptlwoQJbN68udnd5IJwHIcwDHFdV7tllB5pyymP8owL8XK7cTOl06EvG1JK1rz3Id/7/lPk83kefuib9K4+g5vdgkBpXgvhqAol1lPZBzmqOWvaHTG0MYGb38Edt9/Arl27qE9XXSRe1xxmhHkqVnzbdwleePFlpl41gZrJbfBzHxFeMBFsmeCEESNecbVSy0Ti5ndSyGxu8bgGF0qXfHoNhaaPS+RaFJ9smwJv6qqr+X1sYqmxqrf1OQkp8E7RvmIPd8+/he7du2uLbpW8/cLBEsBr4J0m17AKN7OFnJYWEWZKV3QN+Pk6rQLQh8A9SD79YcT4L8qwxMsmX0lIlxGXk5SOAEeklMVezzJUkjoCvChVrEetH1rOre+ixdLtc6IcGAa8K4Q4gEpyL+tm9xGg5WijG3AMOAO0Ec1M1+L2/+Nh2zYzZ85UvCnLYvz48axdu/aSz6+uruadd97BTg5XiSfIYBhl2PG+JCpnRnpMod+gHTK2K9kO7+gl9/l5ce7cOZ5++mk+/PBDpJT0qA4JChsI/DPaUXec0t0OGgi8s9iJoRFvTxk6rm4GA8oAI9jJjBkzWLKk9KtTAFDNUjds5Wob601BjmXp8ys5f/48d985g3Zltdre5xyh9/kwCsMsJ5YaCwi1jCvsL5m4mVqiV7ZsXBddcs1yAvcYMnSx4wOjRrFyJJmNFbs0DEN9HmV3rigruuFs2BEXEBQhWkETasmnP1RARmEhg3o1nEiNJZYchRAOgX9Kyf2mP8DNbibwzyGEE4FF7Xj/P1t52j91fOFZklKeAA4LIYq3o1lALbAc1ddBCDEAcFDJolj93A48exn7b5BStpdS9pJS9gLWAjdKKT8F3gLmCCHaCiHaAnOAt6QqK1YDt+nd3Au8dHkf+ctH7969MU2TPXv2MHz4cPbu3Us6nW71uTfddBNbtmyhsbGAkxyFMOLYqdHaCcSKBM9yje8S+vUIfSd3M59FE7HLCSkla9euZdmyZeRyOaZMHsNXru3IqGGqr2E63YiXTcW0O2LH+iiJ3MynEZ7JzX5GvrG5hyKEDcIkCOoZO6orlmWxZs0aoOhJ9j759HsEWl7DtDuxZbvL8uWvMn36FKaMjxMUNkd9K8upxnQ+H0IBCgvV8nktz4MQAic1MpouGlY7LarWFyc1HiveF5CRXGysbALxsomtSuw2nzefMEhrAX5FfA68U9GyzXK6RJpPUnrkm9YRBvUkKqYTS41UU0BAygJerlbz40YoZ9qGVc2aUFpeRNFz/mvpHf2x43JT9wPAYiHEZ8Ao4J+BJ4A+QohtqORzr2xeg9SgqquW8ogIIb4nhDiCmt4dEUL8r897UynlOVQD/BP973/rbQD/Hfi2EKIO1WN6/DI/y+8Vc+bMYc2aNXiexzXXXMPrr7/e6pKroqKCyZMns2jRIjUir5iNpZdHgV9PvnF15JRhWG2Il0/GMMuRsqCE6C8jzp49y9NPP82ePXtIJpPcctM4JoxyGTigM4lEAsvppjSYjDhubif59AeAiUTqCZUoUS4wna4a5DkAZIiX28rd82/nww8/JN1YrxOoqnpC/xznzp1j0aJF5HI55t85jbbJbRGNRjHaLYSRuEiy5VJh/3/tnXecFOeZ579vVXWewMAg4syAGEAwYmDIUUQBCiAswCggZO+ufdLJ/uzZ2vvc7UV719rb9d1ZXlnrdLbOCgaTpCOIRWCChEAwDJkhDkjkMDAwuWO998db3dMDAyI2jfR+P5/+UFR3VT3zdtXTb3ie3+MpTGyrdmhSXTQMP5anwHlTpe7YsTrCDbuINO5PfNa0crDcLU4rOueNEKrfQbBmPRKBy9fDcUCqI56s5qB+QNyosbeBOzAUYQQI1e9oqgQMTv24C8RidSTLJJuuDk57FujVtVtA3M5cxv3GwIEDZVlZ2S0ff/DgQQ4dOsSUKVNYtWoV7du3p7i4uMXP/vznP2fIkCEMGzYMKWNEGg8kldFR6R6WtxAhDGcYpVI0PBlDm1WETca2bUpLSykrK6OmpoaBAx9m5GB/IgbHtHLVvIa3O+H6MicFpakklOXJd4ZLqqx4LHwSYfgTD7O0QzSSlWcAAAAegElEQVRW/xkpw1ieAtZ+co4TJ07wrdkjiUVOY/n6UbbtMAcPHmTypLG0yjjZTDrXsHLwZgx3KsZWXTVRfD3CDeWJ9nF5e+Ly9cKOnicaPovL24Ng7Xpcnm6Ynq4Eq1c3K43kyRh8XYcEODLCq5126JKQppV2mMaaNUg7iOl6IKHmEA2dJNSwC2QYy9NFZfTbQRAuTFcHNdxO0m1CuJSIm78I09VJO6MvQQixTUrZ4oqRHuTeBD179iQWi1FRUcHYsWPZunUrdXUtxoHy/PPPs379eurr4pVgDyEMr5pjuKI4oIrxUcOCcMPOREBhMvHeUUVFBdXV1UQiEVziXMIhuX1FeDJHqqVpYWB5CohFL2OY2SqNQZhqmOJo+qi6YN2x3J2wo9VqDsTwJDL+o6FjTBhXQk1NDQcqItSF+zB33ofYts3s558my7s74ZCE4cUTGJSIt3J5uuAJ9L+pB9PtL0q0gR2tItywQ1XDDR1F2jX4sifi8vXAMFxXVeuIVwS+EmlHEsNJw8xIpMFEQ8eIhs86trtbHMaZ7k6JBOdo6AtV8tsI4M0YgjdjAC5Pl2bXstwd8GaOxXJ31g7pNtFO6SaZPHky69evJxaLXXcY17ZtW/r27csf5y5ExNULDb8zx5B51efjOVjSDjaLArdtm88++4z333+fcDhMYbd8nnt2GoZh4M3onTiXHatuLtvraofl6YRtR7Cljdv3MHYsSKRhp1JXdIhFKlUCbP02J6q6SZ8oFv6cp59+mmXLlvPWW3+gf//+jBgxAkGo2eSz5e6E5encTLngVoi3gRL3P5ZYtTKsB0iuDWd5ujoFLQN4M0fh9ve+6lzR8Fkaa9Y0K2ukJshbAdLRd4o59jvDOOEiGjqKHWtoYT4rB1/2OAwrRyXYhlW4nTD8eDNH4AkMwDC/PvIidxPtlG4Sr9fLmDFj+Oijj8jPzycrK4vy8pZTMiZPnkxtbS37KyyEcDlZ+Edb/KzSVlIrP9HQMWKR81y4cCHRO/J6vTz15AD6PHSZ9m3OMXPmDDZs2Ijlc44JqzLQoFaWwo37iYXPIgwDJbCfi+nKUZO8SdVYDas1hhnAjtU58ia1KO3xh/j8ZDYLFy5ECEEwGGTXrl3OMbmOCuIQ3P6+RMOnksT8bx0hrGa5cL7MR5xVK3HF5wSejIHOambuladRhSLry5SuUeiLhOKjEMKJD3M7vbKm29/lU/NIyatxhuHH5SsCnGhxGSNUu1l9hzKmpEmyxyfkRzR3Bu2UboHCwkKEEBw8eJBx48axZcuWhKZ3MoZhMGvWLFau/DNYavEy3FiuxN+SkNImFq1KSMaa7kK2bD3M+++/TygUomePLkyf2pmA5xjIGHasmm4FhhPouKFp6Fe/i1i0hmDtp6rYoxHAjtapXoUw8PhLAEGk8SB2tBopI4nVtITNZjamdzh/WriVZcuWM336N5g9+xl8Pl8ixUYIgeXurGRdPV2VZlALRRRvBcvzYCJWKO5kW0IVbmx5Il0Yblz+pnQgFc2uekWmqy2+VpOucnaG6cbtV/ODzVbjPF0xrTYgYzRUryIWrVShDJlD8QSKb3gyX3PjaKd0i0yaNIkNGzYQi8UYP348K1eubPFznTt3pnv37iz64DP1i+oURIwP+VS80scEaz/FdOdRFy5m/uLtVFQcwe/3842p/SnqXoWMXUYYgUT9snDjAZ6ZpQIdKy+1ckILbCUTK3yOXo9ACIg07kIYviSVSEmofiuN1WsI1+9ynKSBy9ebw8fa8PM33sLv9/ODv55Dx9zPade6iu9+97vs2LGDWCymSgI5815CiOvKA98shulPTMYrXeurJUNuBMtd0FSeyK5PVGsBrulILHd7LLeK+o+vxqlhnJOOI1XZ72RBPc2dRzulW8Tj8TB27FhWrVpFly5d8Hq9Khm3BZ5++mlOnz7N+SoVfBcviGhHa2is/Rg7Wo3p7saW0oMsXbaWYDBI715defrJ9vjdSlYVp5ihJ3NowgHJSDkTJ05k/nxVzFJiAAKXvwTTaoXbkdpVcTlO5VdvIUJYKkHVbsSO1SjpE88w3p37KR99tIpnn/kmUx57kHD9Z0i7gWj4BBn+IEVFRWzatAkQzQMa7yBS2k4qierFqEz6m7+WcibJxSkPE4te/pKjaJIhdmR4pZROkGd/fNljW5TZ1dxZdOveBt26dUNKyZEjR5gwYQIbN26ksbHxqs8ZhkFxcTHvvjefmnr16x1u2EWwbiNubxGN0RLmLSiloqKCjIwA06cNole3C01L/U4lVtPVluRKq3a0iuKibPx+P+s/2YvL3Qk7WkUspHoFppWjklyBSPCQipOq3dT0kAsTT6CY8kMe/vmN35Obm8tff/852rY6SDR0TA1bHOcQbtjBwAH9+Pzzz6mqqsIw73xFDSljiSh3lTVkYHnyudXb1DD8iYoqSvFx+1UJxnasjmDtZ4mUGLUap9q3+TAuT8uLpAjtlG6TSZMmsW7dOoQQjBkzhlWrVjV7X0rJnj172L17N9FolEUfbHFKIAlcnm5UfBHkN//nPerq6ijuU8hTj7XF5zoOwq3iXgIlTpZ6kxMwXQ9gutoDEG7cx3PPTqOsrIy6YCeEcBEJHk1Eart8vRzda5WtHpdMMa1cpDWUt95ew/r165nzwrNMHt+RSENpYvnbnTEoMYmriifudcTRWl5xvF2EMBOriaaV65Tjfui2eiZqGKf+hniOWhwpbadM+VmnqIF0jlHDOGEEtCO6B2indJv4fD6GDRvG2rVrKSxUvZKKCnXj19TUMH/+fM6cOcOsWbPIy8ujpqYG2yzClz2O0u2VLF78AdFolIe6u+nR5TzSrgMklqudigq+QrRf2mFCdWWJDH1h+HAbnzNixAjmzlvkTPDaiYdMCCvRWwKJ6WqLJ2M4O8otfvHm78nPz+f7r8wkJ+OwIyGiggt9WaMTsUwKgR2tIic7Rl5eHtu3N1XhvZO4fX2UXEjmyBZDJ26W+JxQfBgXbtyflFpjJCqQxCsSJ+wIFDure1peJNXoiO47gJSShQsXMmzYMHJzc3nrrbecSWbB1KlT6dSpKdp40aJFVFZWUlVVhdfrZfLEEUSD2+nUsRU+n8+JCi7GdOddIZshiUVOqdwwp0yREJ5EXTZPxiD+5VeLGTBgAAP7qvgjl7cnseglp1SSwO0vob7RzbvvvkskEuHZZ2eQHTiVSMg1nLJQvqyxCDOLaKiCcON+dR0ZddI8fLgCo3n33XnMnDmTzMzbdxypIBL6gnD9DkD1wjyZIx2FS0movpRY+DRCWHizx3/liz2mAzqi+y4jhOCxxx5j1apVhMNhqqurqaysxDTNZg4JVMJuZWUl0WiUh3u1okvn8xR264DP58N0tcObPa7FDHdp1zsC+ErzGSeOJtEDaNjDc8/NYsOGDUTpCcIkEjyIHa1MlGD6dFM5b775Jg899BDfe3k6me6dSQ4pA5evH4bVSknL1n5MuGEfQvgdFcpCQKjJ8fAhHn300WuuOKYjycO4WDRJN0kIlelveJ20n2sn82pSg3ZKd4jMzEy6du3KL3/5S/x+9UubEHxLwrIshg4dimVZFPUZAU5PVQmuXVv/xzAzsLzdEYYfO1aH21+EJ3NEIrhP2kGyA5WqCOS8D3D7eqko5Kyx1Da25Re/+Bd2797NS//m24wY7CNYv41ksSchfJiuNrh9RdixGrXkL0xMKwtv5lDcvp6ObpFBNHSUju19SCn59a9/zYkTJ1q0OZ2I9xQTq3FJVVuE4cGX/aheWUsT9DdwBzl16hThcBiXy4XH48E0zRYlTiZOnEhGRgZnztYmBMrsWM11c6Zi0UvEQkeRdlDlrHm6gowmhm+gstYnThhGbW0t5QfqcQdG8dHqTfzmN7+hpKSEl77zBB6jTFWgRWK42uPNGq3y4qKVhOu3E6rfgenuohyft4dTLSUXKWOYVptETFKofjvhUCPnzp1LSJykO4bZtBonZbSZKoMOgkwftFO6g4wZM4aCggJCoRAul4uhQ4eydOnSFleqZs6cyZo1a5BGFwwzq1mSaEsYZraagM6egMvXm2joCxqrVyUqlwAgDJA1zJw5k6VLl/Laa69x5MgRvvfKXzGoL1dV+hDCwLRa4473tmQET+ZIPIFiTKsV0cgpFSgpI4QbdhKs3dik+SQjjBkzCJ/Px8iRI+9MA6aA+DDOMFvh9j705QdoUo52SneQvLw8vvWtb+H1eqmrq2Pfvn3k5+e3qFTZsWNHunbtyqJFi52IYRULlKwQIGUsKQPeRhgZ2LGaRCmh+PI+KFF9X/ajHDhcy7x581SBSikpyAtg2psT4mOqUq3KF1N5YZVYngfxZg7H5etNuH4rdrQST6A/drSacMMeGqvXEA01ScNa7s74sicQyOhAmzZtKCgouNNNedcQQuAJDMKbNVpL06Yp2indBZ588kl8Ph99+vRhxIgRHDp0iAsXLlz1uenTp3PixAmOn6jG5S10pFdV0mskWEHD5Q+dEtb7aby8SlWLbSxvVgLIdLXHlz2eiOzB7373LitXrmTWrFnMmTMHIQQdO/dqVhBTCK+K9Hay7uPibHa0mmDNOuxoFaH6HQgzgOXt7kiHxOdevHgyhuIODGTnrn188MEHTJ069b6T6hCGW88dpTH6m7kL5Ofn853vfIft27cjpeSJJ55g+fLlV5VnsiyLKVOmsGjRIkxPT4QRIBo+qbLu7ZAjIiaJNB5IiJrZsToQbiWoljkSb+YwPtmwnTfeeIO8vDx++MMfkt85h/zOGTz55JOsX78Ry9sncc24k/H4+yoH44/H6Zwjrpwo7UZCddvU3JNQpbUtTwG+rPE0hjKYP38+Fy9eZM6cOWQHWqqspdHcOtop3SVycnLo27cvq1evJjc3l169erFhw4arPldUVEROTg4rVnyUSB8J1W1tJi+SjGFm4An0w5s5mvMXorz++uuUl5fz8ssvM3nyRKLBAzTWrCNUv41+fQsJBAKs33AA06XULKWURMMnsTwFCYXLRNJpkmZRLHIGGasG0483czieQH/27T/MggULGDlyJBMmTMCyrKTgSo3mzqCd0l2kpKSESCTCjh07GDx4MCdPnuT06auLrjz33HPs3buXS9UCy9OFlqpFKWc0EG/WeAyrA4sXL+YPf/gDI0eO5JVXXiErw1b638GDIAykHSJY8ynPPjOTsrIyGiJdEIYfwww4VUCahysIw99MKxuUbIcvcwQ1dW7mz5/PqlWrGDduHJ07d046Tgubae4s2indRYQQPP744+zbt48jR44wdepUVqxYQXV1c/lWv9/PI488wjvvvMP7S/bS0Ng0zFNSs/3xZo3H8uRx/PhxXnvtNS5dusSrr77KoEGDsGMNBGtVuelESR9fD6QM4fdcZOjQocybtxiXtyfSbmhWpEBVVzlAsHptYiUvrujo8hWzZcs2lixZQm1tLTU1NWzcuBGN5m6indJdxjRNZsyYwaeffsrly5eZMmUKixcvJhgMNvvciBEjaGho4NDho2wuU7XoLU9Xp4ZZQWJidsOGDdi2TWaGB7db9VIM04/L20Ml7zolfUxXHsLIIBo+ztixowmHw+zYfT4R1azmrk4Tri8j0rgf265FmAFc3kJ82eO4VA3vvfce0WiUOXPmMGnSJLp168bo0aNT2HqaryPaKaUAj8fDN7/5zYSCwOjRo1m8eDGxWJNWtm3bWJaF1+slM1s5I0+g31WKjqNHj2DU8E5MeMSdKA4J4Pb3TojZR4JHCdauQ9p1CfnbZ555hjVr1mAbvcAJFAzVlSaScJVmUAmWt4iNGzezYsUKHn/8cUaOHIlhGOTl5TF79mzy8vLQaO4m2imlCL/fz4wZM1i2bBmtW7emV69efPjhh0gpqaurS6yevfrqqxw/fpyLVc17UlJKIsGjtMnYy5ABbfD5PInYozjxopFXBklGGg/Srq2fnj17smDh0kRmfLwCusvbE2/WWC5cjPDOO+/gcrmYPXs2ublX619rNHcbrRKQYi5cuMCSJUuYNWsWmzdv5uzZsxw9epTi4mKmTZsGqHJKy5cv54UXXkAIQSxyikjjoUQNN2F4cXkLEytfUtpEg4cJO0UuW8KwWuHyD+JnP/slTz31FAUdzqsI7kB/pMhkw4YNnDx5kieeeIKcnJyUtIXm68ttqwQIIVoJIRYJIQ4IIfYLIYY5+78vhDgohCgXQvzU2fe8EGJn0ssWQvRz3ntNCHFCCFF3xfl/KITYJ4TYLYRYI4QoSHrvRSHEYef1YtL+rkKILc7++UKVNE17cnNzeeyxx3jvvffYs2cPR44cSfSW4rRp04bCwkJKS0uJBg8TqtuqHJIwcXl7OKWrmy/Fq2FYk0MyzFZO0cVBANjRy4TrNjJt2hSWLFmCyz8Qb9YYzpyr5+233yYzM5Pnn39eOyTNPedGsxD/GVgppZzhPPx+IcRY4CmgWEoZEkI8ACCl/CPwRwAhRB9giZRyp3OeZcCbwOErzr8DGCilbBBCvAz8FJglhGgN/HdgIGqssU0IsVRKeQn4J+B1KeWfhBC/Bv4S+NWtNEKq6dhRlRGqqamhbdu21NbW0rt389plw4YN45133qF794n4DAspo3gC/RN17pMRwsAT6E9jzXoQBm5fbyxPN9XLilYhhAspI0i7gS6dY7Rr1473/riAS5cukZ2dzfTp08nO1ikXmvTgS3tKQogs4BHg9wBSyrCU8jLwMvCP0gk1llK2FNr7LDAv/h8p5WYp5ZkrPySlXCeljBe33wzEn7xJwGopZZXjiFYDk4XKaxgHLHI+9zYw7cv+lnTiiSeeoF27dvj9fl566SW2b9/erLdkGAaTJ09m5cp1WF6VMBtPCWkJw2qFJ1Di9KIKgRjhhj2OBK6qyaYKVD7I4MGDOXbsGNXV1ViWpR2SJq24keHbg0Al8H+FEDuEEL8TQgSAHsAoZwj1sRBiUAvHziLJKd0gfwn8q7PdCUgW6znp7GsDXJZNZS7i+69CCPFdIUSZEKKssvLWyvXcDfLy8njppZd4+OGHWbt2LZMmTboqVKB9+/Z07NiRvfsvY1q5REPHE5VZW8LyFGCYAaQdojE57ki48QQGYJv9WLZ8NQcPHmTQoEEYhkFjY+N9oYek+fpwI07JAvoDv5JSlgD1wH909ucAQ4F/DywQSZmZQoghQIOUcu/Vp2wZIcRs1FDtf8Z3tfAxeZ39V++U8rdSyoFSyoFt27a9UVNSxsCBA+nQoQM7d+5k1KhRzJ07l5qamsT7o0aNYufOnYTs7iBMQnWbkXbwmuezY3WEGw8SbyLL3Qlf9gQqPm9g7ty5FBUVMW3aNHr37o1pmpw5c+a+0UPSfD24Ead0Ejgppdzi/H8RykmdBN6XilLULGvyGvIz3EQvSQgxAfjPwNT4kNC5RnJgTGfgNHABaCWalLni++9Lhg4dSps2bdi5cyeTJk1iwYIFieIDlmXx6KOP8tGqT3B5ewGqgomUspnMCSghuFDdFqKhIyAE7sAQoqKI9z9YzpEjR3jhhRcoKChg5cqVlJaWMmPGDB0QqUk7vnSiW0p51lkx6ymlPAiMB/YBR1DzOuuFED0AN8pZIFT48UzUXNSXIoQoAX4DTL5ibuoj4B+EEPEloYnA30oppRBiHTAD+BPwIrDkRq6VrgwfPpxdu3axbt06nnrqKTZt2sTu3bsZO3YseXl57N27l8NHw3TLf4Bo6BixyHlVz977IJa7E+GGfcQiamhnebrg8haxb/8hNm9ewfjx4+natSunTp1i5cqVDB48mIcffhghBD169LjHf7lG05wbXX37PvBHZ+XtKPBt1DDuLSHEXiAMvCibgp4eQfWujiafxAkbeA61encS+J2U8keo4VoGsNAZAR6XUk6VUlYJIf4e2Oqc4u+klFXO9n8A/iSE+Alq9e73N/m3px19+/YlNzeXpUuXJrZXrlyJZVn06tWLTZs2kZ//DL6MWqLBo8SilUQaDyRKUgsjgCdQQkPQy5LF/4+srCzmzJmDaZqsXbuWc+fOMXPmTLKydC0zTfqigyfTkGg0SmlpKfv370/MOR04cIBdu3ZRX1/P8OHDVfEBM0w09AXR8Aksd2cs70Ps2bOPsrIyHn30UfLz8zl37hwrVqyguLiY/v3733eCbJqvJtcLntROKY0JBoNs27aN/fv307t3bw4fPswXX3xB69atycrKwuv1UlBQQE5ODjU1NZSXl5OXl8cjj6hR88cff8zZs2d1lLYm7dBOyeF+c0pxotEo5eXlbN68mfr6esaMGUNJSQm1tbWcOHGCy5cvk5GRQWFhIX6/n8OHD/PJJ58wePBg+vTpo3tHmrRDOyWH+9UpJXP69Gm2bdtGZWUlBQUFPPDAA2RkZBCJRDh37hwVFRW0b9+eMWPG4PP5kHYEKSMYpq76qkkfrueUdLGr+4yOHTvSsWNHwuEwZ86c4fz581y8eBHLsmjXrh1DhgxJ6CwBxCKnCdXvxJ8zRYvla+4LtFO6T3G73RQUFFy3vJGUkljkHIaVrR2S5r5BO6WvGHb0MqGGnRhmDjJWTSx6EZe32702S6O5YbRT+goiDB/R8DGnRBMYZut7bJFGc+Nop/QVw7Ba4c0YQixyjljkPLHoRQxLOyXN/YN2Sl9RTFc7TFe7e22GRnPT6NlPjUaTVminpNFo0grtlDQaTVqhnZJGo0krtFPSaDRphXZKGo0mrdBOSaPRpBXaKWk0mrRCOyWNRpNWfK30lIQQlcCxa7ydi1P44B6ibbj319c2pMaGAillizXPvlZO6XoIIcquJTqlbfj6XF/bcO9t0MM3jUaTVminpNFo0grtlJr47b02AG1DOlwftA1x7okNek5Jo9GkFbqnpNFo0grtlDQaTXohpbxvX4AXKAV2AeXAj539/YDNwE6gDBh8xXH5QB3wN0n73Kgx9CHgADDd2e8B5gMVwBagS9IxLzr7g8DxO2DDs8AeYDewEsi9GzYAXYBGZ/9O4NdJ5xvg2FABvEHTED8lNgB+4EPnOygH/jHpOilrh6TzLgX23gsbSNE9+SU23Oo9edh5vXjTz/W9diy36ZQEkOFsu5zGGQqsAh5z9j8OrL/iuMXAQpo7hB8DP3G2jaTG/7c0PTDPAPOd7dbAUeffzs5221u1ASVNfD7puj8FfnQ3bHBuwr3XaNNSYJjTtv+adHxKbEA5pbFJD+WGVNuQZMvTwFyaO6VUfhcpuSev813c7j2Z42zn3MxzfV8P36Sizvmvy3lJ55Xl7M8GTsePEUJMQzVU+RWn+wvgfzjntaWU8UjWp4C3ne1FwHih6mBPAlZLKauklCeB1agv+lZtEM4r4Jw/K+mYO25DSwghOgBZUsrPpLrD3gGmpdIGKWWDlHKdsx0GtqMesJTZ4LRFBvBD4CdXvJUyG0jhPXmtZuD27slLjg2Tb+BvbeJ2eirp8AJMVJezDvgnZ18vVNf1BHAKFdIOEAA+AzKAH9HUS2nlfPZnqIdgIdDOeW8v0DnpekdQ4fd/A/yXJBvOAKFbtcF5bwZQ45zrE8C8SzZ0AeqBHcDHwChn/0Dgz0nXGQUsT6UNV3y3rVDO+8FU2wC8DnyDK3oRKfwuUnlPXq8dbvmedPb/V5Lu8Rt53dc9JQApZUxK2Q/1azpYCPEw8DLwAyllHvAD4PfOx38MvC6beldxLOf4jVLK/iin8b+c90RLl03eL6WMAb8E/u5WbRBCuJxjSoCOqDH8394lG84A+VLKElRvYK4QIus610mlDfH2sIB5wBtSyqOptEEI0Q8olFJ+0ML1UtUOqbwnr9UOt3VPXrH/hrnvnVIcKeVlYD2qq/gi8L7z1kJgsLM9BPipEOIL4N8B/0kI8T3gItAAfJB0TH9n+ySQB4kHJRuoSt7vEB/D36oN/Zy/44hUPzELgOF3wwYpZUhKedHZ3ob6levhnK/zFeeLd9dTZUOc3wKHpZQ/T9qXKhuGAQOc7+hToIcQYn2KbUjZPXkdG+7UPXkjQ9UmbqZblW4v1CReK2fbh5oUfRLYD4xx9o8HtrVw7I9oPnT6EzDO2f4WsNDZfoXmE3oLnO3WwOdAIVDgbHe8VRucY88AbZ3//z3wv++GDU67xbvhD6K68q2d/29FTYrGJ7ofvwc2/AS1EGBc0V4psyHpml1oPnxLZTuk5J68lg3c3j2Z47w+v7JNv/S5vteO5TadUjFqHLwbNcb9b87+kcA2VKjAFmDADTilAtSYeTewBtWdBRV2sBC19FmKM7/hvPcXqDF6CDVOv10bXnJunN3AMqDN3bABmI6aZN+Fmq+YknS+gc45jgBv0hQSkBIbUL+s0mmH+BL1X6W6Ha7jlFL5XaTknvwSG271nqxwXt++2edap5loNJq04iszp6TRaL4aaKek0WjSCu2UNBpNWqGdkkajSSu0U9JoNGmFdkoajSat0E5Jo9GkFf8fEbpGz3s2OyEAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot edges and nodes\n", "ax = edges_proj.plot(linewidth=0.75, color='gray')\n", "ax = nodes_proj.plot(ax=ax, markersize=2, color='gray')\n", "\n", "# Add buildings\n", "ax = buildings_proj.plot(ax=ax, facecolor='khaki', alpha=0.7)\n", "\n", "# Add the route\n", "ax = route_geom.plot(ax=ax, linewidth=2, linestyle='--', color='red')\n", "\n", "# Add the origin and destination nodes of the route\n", "ax = od_nodes.plot(ax=ax, markersize=24, color='green')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Great everything seems to be in order! As you can see, now we have a full control of all the elements of our map and we can use all the aesthetic properties that matplotlib provides to modify how our map will look like. Now we are almost ready to save our data into disk.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- As there are certain columns with such data values that Shapefile format does not support (such as `list` or `boolean`), we need to convert those into strings to be able to export the data to Shapefile:" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "u int64\n", "v int64\n", "key int64\n", "osmid object\n", "oneway object\n", "lanes object\n", "name object\n", "highway object\n", "maxspeed object\n", "length float64\n", "geometry geometry\n", "junction object\n", "bridge object\n", "access object\n", "dtype: object\n" ] } ], "source": [ "# Columns with invalid values\n", "invalid_cols = ['lanes', 'maxspeed', 'name', 'oneway', 'osmid']\n", "\n", "# Iterate over invalid columns and convert them to string format\n", "for col in invalid_cols:\n", " edges_proj[col] = edges_proj[col].astype(str)\n", " \n", "print(edges_proj.dtypes)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can see that most of the attributes are of type `object` that quite often (such as ours here) refers to a string type of data.\n", "\n", "- Now we are finally ready to parse the output filepaths and save the data into disk:" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "import os\n", "\n", "# Parse the place name for the output file names (replace spaces with underscores and remove commas)\n", "place_name_out = place_name.replace(' ', '_').replace(',','')\n", "\n", "# Output directory\n", "out_dir = \"data\"\n", "\n", "# Parse output file paths\n", "streets_out = os.path.join(out_dir, \"%s_streets.shp\" % place_name_out)\n", "route_out = os.path.join(out_dir, \"Route_from_a_to_b_at_%s.shp\" % place_name_out)\n", "nodes_out = os.path.join(out_dir, \"%s_nodes.shp\" % place_name_out)\n", "buildings_out = os.path.join(out_dir, \"%s_buildings.shp\" % place_name_out)\n", "od_out = os.path.join(out_dir, \"%s_route_OD_points.shp\" % place_name_out)\n", "\n", "# Save files\n", "edges_proj.to_file(streets_out)\n", "route_geom.to_file(route_out)\n", "nodes_proj.to_file(nodes_out)\n", "od_nodes.to_file(od_out)\n", "buildings[['geometry', 'name', 'addr:street']].to_file(buildings_out)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Great, now we have saved all the data that was used to produce the maps as Shapefiles." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 4 }