{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "b501856a", "metadata": {}, "outputs": [], "source": [ "import os\n", "os.chdir(\"../\")\n", "import pandas as pd\n", "import numpy as np\n", "import dask.dataframe as dd\n", "\n", "import geopandas as gpd\n", "import shapely\n", "from shapely.geometry import Point, LineString\n", "\n", "import folium\n", "from folium import plugins" ] }, { "cell_type": "code", "execution_count": 2, "id": "ae97f634", "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
MMSIBaseDateTimeLATLONSOGCOGHeadingVesselNameIMOCallSignVesselTypeStatusLengthWidthDraftCargoTransceiverClass
03680840902022-01-01T00:00:0029.93174-89.992436.0296.2299.0LARRY B WHIPPLENaNWDK740157.012.023.010.03.057.0A
13681401602022-01-01T00:00:0030.33475-87.144290.0312.087.0TWISTED ANGELIMO0000000WDL533936.0NaN12.07.0NaNNaNB
23669418302022-01-01T00:00:0229.30919-94.797020.0180.2511.0SAN PATRICIONaNWCX667531.05.018.07.0NaN57.0A
33160059712022-01-01T00:00:0646.50268-84.356742.4258.6257.0BEVERLY M IIMO9084047CFP200431.00.034.010.05.399.0A
43160040542022-01-01T00:00:0746.50326-84.375060.361.9511.0ADANAC IIIIMO8745333VCLT31.00.024.05.03.050.0A
\n", "
" ], "text/plain": [ " MMSI BaseDateTime LAT LON SOG COG Heading \\\n", "0 368084090 2022-01-01T00:00:00 29.93174 -89.99243 6.0 296.2 299.0 \n", "1 368140160 2022-01-01T00:00:00 30.33475 -87.14429 0.0 312.0 87.0 \n", "2 366941830 2022-01-01T00:00:02 29.30919 -94.79702 0.0 180.2 511.0 \n", "3 316005971 2022-01-01T00:00:06 46.50268 -84.35674 2.4 258.6 257.0 \n", "4 316004054 2022-01-01T00:00:07 46.50326 -84.37506 0.3 61.9 511.0 \n", "\n", " VesselName IMO CallSign VesselType Status Length Width \\\n", "0 LARRY B WHIPPLE NaN WDK7401 57.0 12.0 23.0 10.0 \n", "1 TWISTED ANGEL IMO0000000 WDL5339 36.0 NaN 12.0 7.0 \n", "2 SAN PATRICIO NaN WCX6675 31.0 5.0 18.0 7.0 \n", "3 BEVERLY M I IMO9084047 CFP2004 31.0 0.0 34.0 10.0 \n", "4 ADANAC III IMO8745333 VCLT 31.0 0.0 24.0 5.0 \n", "\n", " Draft Cargo TransceiverClass \n", "0 3.0 57.0 A \n", "1 NaN NaN B \n", "2 NaN 57.0 A \n", "3 5.3 99.0 A \n", "4 3.0 50.0 A " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "path = \"/Users/czhang/Downloads/AIS_2022_01_01.csv\"\n", "ddf = dd.read_csv(path,\n", " dtype={\n", " 'Length': 'float64',\n", " 'VesselType': 'float64',\n", " 'Width': 'float64'\n", " })\n", "ddf.head(5)" ] }, { "cell_type": "code", "execution_count": 3, "id": "9c1c3570", "metadata": {}, "outputs": [], "source": [ "sample_df = ddf[ddf.VesselType.isin([70,71,72])].compute()" ] }, { "cell_type": "code", "execution_count": 4, "id": "7f675da1", "metadata": {}, "outputs": [], "source": [ "sample_df = sample_df[sample_df.MMSI == 441486000]" ] }, { "cell_type": "code", "execution_count": 5, "id": "4c595e7d", "metadata": {}, "outputs": [], "source": [ "sample_df = sample_df.reset_index().drop(\"index\", axis=1)\n", "sample_df[\"geometry\"] = [Point(x, y) for x, y in zip(sample_df.LON, sample_df.LAT)]\n", "gdf = gpd.GeoDataFrame(sample_df)" ] }, { "cell_type": "code", "execution_count": 6, "id": "bf1e4328", "metadata": {}, "outputs": [], "source": [ "test_locs = [[b,a] for a, b in zip(gdf.LAT, gdf.LON)]\n", "test_locs_re = [[a,b] for a, b in zip(gdf.LAT, gdf.LON)]\n", "test_lst = []\n", "for idx, val in enumerate(test_locs):\n", " test_dict = {}\n", " if idx < len(test_locs) -1:\n", " test_dict[\"coordinates\"] = [val, test_locs[idx + 1]]\n", " test_dict[\"dates\"] = [sample_df[\"BaseDateTime\"][idx], sample_df[\"BaseDateTime\"][idx+1]]\n", " test_dict[\"color\"] = \"red\"\n", " test_lst.append(test_dict)" ] }, { "cell_type": "code", "execution_count": 7, "id": "bfa568f9", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "m = folium.plugins.DualMap([37.06237, -75.18991], zoom_start=3)\n", "folium.plugins.AntPath(locations=test_locs_re,\n", " reverse=\"True\",\n", " dash_array=[20, 30]).add_to(m.m1)\n", "m.m1.fit_bounds(m.m1.get_bounds())\n", "\n", "\n", "features = [{\n", " 'type': 'Feature',\n", " 'geometry': {\n", " 'type': 'LineString',\n", " 'coordinates': line['coordinates'],\n", " },\n", " 'properties': {\n", " 'times': line['dates'],\n", " 'style': {\n", " 'color': \"blue\",\n", " 'weight': line['weight'] if 'weight' in line else 5\n", " }\n", " }\n", "} for line in test_lst]\n", "\n", "plugins.TimestampedGeoJson(\n", " {\n", " 'type': 'FeatureCollection',\n", " 'features': features,\n", " },\n", " period='PT1M',\n", " add_last_point=True).add_to(m.m2)\n", "\n", "display(m)" ] }, { "cell_type": "markdown", "id": "8e4a50ed", "metadata": {}, "source": [ "## An Alternative" ] }, { "cell_type": "code", "execution_count": 7, "id": "7af4fa2d", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import matplotlib.animation as animation\n", "import contextily as ctx" ] }, { "cell_type": "code", "execution_count": 10, "id": "cc8ee207", "metadata": { "scrolled": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "MovieWriter ffmpeg unavailable; using Pillow instead.\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7YAAADGCAYAAADmMBzEAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACCMklEQVR4nOzdd5xcV33//9c555ZpW9W7VS3JvYGNC9iAg8EGbEjCNwFCjQMkgbQfkBAnIQUIaSQhzXS+JEDwl2oIGMc0Y5tm4yrZsizL6trV9in33nPO7487M7trSZZk72pVPk8eQmVn7tyZnR3Pez7nfD7Ke+8RQgghhBBCCCGOU3qmT0AIIYQQQgghhHgmJNgKIYQQQgghhDiuSbAVQgghhBBCCHFck2ArhBBCCCGEEOK4JsFWCCGEEEIIIcRxTYKtEEIIIYQQQojjmgRbIYQQQgghhBDHNQm2QgghhBBCCCGOaxJshRBCCCGEEEIc14LDveDHv/FjUqsAiALPqQvHMN4yOKopxY5KnFEoaAKjAA/N3zzg8e3jePIv2TRmaNAxe64Hbw96u5n1NOqOQkGjtQIFWeoIQ03S0DgPUezwzmOtp9FwlCsG5zyZ8zg0qdU8vLPCSC18eo/SM+KJw1HSrIjzh3q4PUY7rNPkj9LxzhMFniRTnBj358CszbDWEoYRSp2491MIIYQQQoij7devPu+wLnfYwTa148XdJINt/QXAM1gNCY2nt5wytysh1A6loFywaAXWOVDgvSd/z6/wgDZ5EFVK4f3EW1K0soHHExiFCxXWerRWKMAYRZJ4hodTOjoDtAJMfr1GA5KGI80cSeoI4wCvFd7PRODwBDohszHOm0NeOjQZgbHUkvgonNv00woW9zYYrgX0jwT4EzTcKqXwzs30aQghhBBCCHHSOuxgO5licCygGLk8uFQD+kZDBsZCQpO/we8up8zpSOkqpfi80NoMsXmgxTvSJKNeD9AqD71KgTGtKm/r/yCMdDsSeUBpCEJFXNCgfLsKrLSiWNJk1mMCRSHQOAXaO4pRxmjdcDQrh1plGJOQZsXDuLTHaEuaBZwY1U1PKXLMqqTM70rYrIvsHgpPyHCrlMZ7D96DVGyFEEIIIYQ46o442Co8xchRii2LexO6Syn1BBqZwStNbBzWgfMQB665NHP8Db9zUB2zWJuQJBat8uXB1uYp1hjVXrjcWsLcCsSTC7t5BTdpODweoxRKKZTOwzF4MudwzuO8xu5XUGsd7VBB5HAvt7/AJHSVtzFam0e10XPI28hsSOZOnG3P3eWMcuxQwMq5NRqZYmDsRAnuk7WeoyfePRNCCCGEEOLYd8TBVmtYNrtOZ6FBlljqNUgSTxRlhIHOK6+GdgXWPykXeg9xbIgLBepjKUGgm+F3/0jQ2q84MTCMH06hlCaMwGiHc+CtwzqHNuC8wzmHR5E5RS1pVWubx5qwB3gyTyF01FONVhCY1h7RI+UxpgEoMnvopcVa+WaoPXGiUd9IyJyOlO5SRhR4FnQlDFUD3P4P+nFPKYU/wLNJCCGEEEIIMf0OO9iW44xqw2Ad7BiIcR0pMQneKjLrqVYdYaDQRhGGedXRe99enelpLTXO/5KlLt9rqyaHS9+8HuTh1eNxLg/UnubxyIOE8wqXOYIQQpMHXecUaZbhrMN6T2oNw7WYNBvf46oUE8JVayHzOKOhHDtqiSazTz9oRkGVetJFkpX2u40nV4LdjOwBnk6KegqP7CqydmGVjoKlp5JRKViGa0d3SfjRoJTGO4/XXhpICSGEEEIIcZQddrBdPWeYXSNF+kZihusG6yrM6wopGk/qFT7MiOOEUkkTBONv7Ft7ZVsht/Wr2VEK63x7W2L7d8Zjn808aery/bTtiqtqx9Eo0s09us3qbjP8Ou/x3jPWCNkx0EHmxs+pFWoj48mc2q+CGBiHta1/f3ohReGwNqSRdhz468phlCVz4dO+jWOfYrSheaI/Zu3CKqHxzOlIGamZE6q2mS+BVzjnOHSLMCGEEEIIIcRUO+xgG6qMU2ZVmd+dMlIL2DkU8djeEpWCReEJg5A48pgkIctUPpqH5pt+ADW5r453HuccjUYG5ON+2kuEVbMi6xxjoxmlSoB6cvjzHu88Sk/+t4kF2CzT1JIAY9yEvavji5qtz0Pu+CLS/Gv11JAedETNxEh2sEDqCcMxgmCEWtJ1wMt5r0E5tPLPKEAf+xSpHf8gorucEgbx01zefeySzshCCCGEEELMnMMOtloblIeuoqWraAFPLQlYNqeOUc3GT9qhMFjr2+N98qZPqlm1Hd97W6ulNBop3hlK5fE6l3N5Fbe1N7dQMERRq6HUxOCqcL7dP3n/9czky5dnd4wRh5Yn+rv3W+5rndrvqgCN9OChKzAerTxJ9tRNnuJwiMDUUOopZvS6AKMdnHDLkA/Ag/UwMBZin8Hy7mOVdx6tT5zGX0IIIYQQQkwH5z0jDUdiHbNLwZRt4zuCYKvxHhr1fO5srBw1AO+JQje+kZbxam3+Zb/fFBQPFIqGUllTroR4n064nXxZpweCwEPcuk7+P6Va+3fz21KTCrET1jIrhTH5qJ9K3CAKLPV0YvA42AP41A9svuf2qS9jdEJoqk95mRZ7AnVBPrC8i3bmFNv2xWwfiLEn0jpkWs9xJ8FWCCGEEEKIpsQ69tUsfdWM/lrGYwMJO0bTA1723RfPe8YB97CDbaHomwXTvKuwMYBPSVJFIQQ1se45oR2yUqpduW393XsITIAxGUpBo+EwRuWNpWh2QVYqL2S2i7Rq/P+VIkkUQbD/eJVWh+U8AOfHsZmZwgB56PFAYVDFmBrOxXh/OLsuT7wKZktoPLMqGVv2Ftg1FJ2wy67zu6WlcZQQQgghhDhpeO8ZS10zvFr6qxl7qxmPDyVHdJz3376bd18y/xmdy2EH24nBFKBQcMwOMhoNaDQ0cdzaX3jgWZ4T3/CniSNNM5xzgGmO/Mn3u7p2M6nxoKwm/q7yWbhpoiiVn7SnsbnHVilQWqOaf7cuaC87nloH3m9rdAPQ1Bqzse7go34C48jsiVzl83SXLJlT7B6OTsDOzxN46YYshBBCCCFOTNZ5BuqW/lpGf7MCu304ZV/94Nsuj8RULOg8ojm2T37bHoQeY2B0VBHHeWU2yzxKe4w++Jv8ONYEJmR0JC9Fa91czunyLsjW5kubo0i39+Smqcfa/Lhpqoki37xeu98UjuZ2VaWaTas89SSgf7Q0baFKKY+fcGytMsKgRr3RSy3pPfj1gHKUMFwrnFAdgicyCmZ3pOwZDrEneF+l1p5yIYQQQgghjlf1zLGvltFftfTVMvaOZTw60Jj2vHLanMIzPsYRBdt8dE8+biefvJO/mY8iRbWa72lNE5+P5jEK7/LraJ2H09YWRGuhVrM4m1dsfXtvrieONaDJMk/ScCSJI4rG5+JmLr+NUmm863J+TE+WeYIQFBq0QntPEECSTeMQFj/5L2FQJQxGaSQL887HB+msrJTPm209KRifODyVokVrGBwLOBGXH7d455pL70/c+yiEEEIIIU4M3ntGEkd/NaOvli8h3j6csHssm5HzedHKTs5dUHrGxznipciQ74lVgG7ui40iRxQprIVG3ZAmCmvANHNdlubLh1uH0BqKRc3IiMY1976qic2fgCBQGGPy48e63VU5y6BR9ySJQxsIjAblyazDOk9AnqJVMyyHgScOHKPTFDqevPA6CkcBT+aip7xeMUpopMEJujzXExrPop58Zm12gldrnXMoaRwlhBBCCCGOIZnzDNQy+pp7X/uqGZsHGtSPgU6ubz53NnNKR1RjPaTDP5rKWzd5yJcKAy7Nx/porQhDjdYKrQ3Fkmf8fb5vH6AVbPPlxZZi0TAy7Kh07H9zvnm5vILL+BxcrykWPcZYnINakmECRZbmDahca5Zts6qsPBjTGgs09SHSaIt1eUVYK0sUjKHwFKIhMlvE+wM/xKUooZrE03JOMyvvgrxyXoPesmXHQJET7z6O897jnEWbaVwVIIQQQgghxEHUUjdh76tl+0jCE8MH7j48k9bPLvDCFR2Uo+l533zES5EVUCqbZn/i8dm03uf7YNPUApr9twBP2IOo8h2xXd2GJ7bWcE5R6Wh2RW4eTD3pNlvSDKLIEwQK7z3GaDLr8AqSNB8rE8QaD3iv2DcaU21MX+gITYZz+e0Z08DoBkp5tDr4k0k15/5O6xLpo86jFfSWM5bNSegqWfaNGsYaJ34lM/9wx0jzKCGEEEIIMS289ww1LP3VvIHT3mb1dSQ59pdGPm9ZhQsWlgnN9L5XPoJgq9oBs9mfCWDyzFqXN5Cq1xRBqAjD/Tscty/rPVqnzJpVYHAgQWkol/NmVK2A4P3khb7eK2zm0YXWWeTV4kAptPGkKTQSj4kcoHFeMVYPGK0f7G6OV5OfLutMezlyFIyhlcX5vCPywUb9aOUZrhVI7YkQbPNAW44ti3pTeisZzsHWvoht+yJSe2KHPedcewSVEEIIIYQQz0Rqfd68qZYvHd45mvLowJGNzjlWvOzULtbPLhy198mHHWzHi63jldrxBlLNf0NRKCoKBUeaKGo1hVYQRs25t4pJlVjvPcVSxtiYplZ1VCp5pXfift6JfHMcUJo6vM+rttp4fDOgZqmnlkUMDYWgYKgaM1wNn3QPJguNJ7UH//qhpHb8IQx0o31beeOoA9PKNcPw8RiG8g8rtILQOMqxo1KwBNoz1tDsHipQSwyNTLWbgp2oWsuQlSxDFkIIIYQQh8l7TzV1+dzXZufhxwYb9NemZnTOTHvtmb0s7nzqfkPT4YiCrScPllqr5ophj2+tQyZvEAX5Utso9kQosgySRJEmlkJBE0ZMGouitWfO3JgntlYZHaU9xscEar+RQWkKxqjxfbeA8/mNZtaTOUellNI3GpJlBmsVmX3qAOn8+H17Ogphrbn8OG02jsr32laKexkaW4TzB+4IXAgSMmtwTxGAj1Wh8RRC19zjrBmuGTI3vof6RA6zT+asJYwiqdgKIYQQQohJnPcMtme/WnaMpjzSX+cY6N00Ld52/hy6CjNX8DmC5lEK7/IRPFqrZtfiyW/mFZAkDmNcs5FUXqnV2pMmhswqslq+3DgM838H0DojCg3VsTqVSoy1HmebAbp5bO8VjUZ+2Xo9rxyr5hghD6SpQxnQ2jGncwzQ7BosM9Su2B6Y9+oZzWUKTIZ1hkC39tfmOd+64KBLkVMbUIoSQmNpZMdbsFUk2cT9wSdnoPPeY7Msfx6q4+17KIQQQgghpkpim9XXZufhxwYb7BydmdE5R5sCfvfCucTBzL8fPqJxP0YrikVDlvm8UVTiMUEecpUCpSFpWLxzmCDvlDx+fUWhkFdzszTfh6t0vg83DPPRQbYVZpWaVNX1QJqMjwlqNazKZ9c6rHUkDY+Jmvtym/t6i5FFq7wqe9AHwPh8FBEe6458eXAtKeGcplyski9B9jgXUWv0PuVy4+FaadoHHU+fkzPMPlmWpUTxMx8mLYQQQgghjm3ee8ZSR1+z8/DOkZRH9tWpZcfvO/pnYkEl4NfOmoU+hlYtHllX5GaiDJphNu+E7KjXXTOQarTRxLHC4ykUWsFWYbN8wa9SnjDK991aC42GojrmadQtpXLYuvgkCkWSKLSx1GqWNHVEkW7/cj6/J87bSVcuxymF0FJNDn43k0y194tCc97uEQQ37xVKWbzX1Bq9FKIhRmoLSG1h/zsy4R6dnD8CJwbvPVmWYkzQ/BDm2PmBFkIIIYQQT591noHm8uG8+pqwdej4bN50KKFWdMaazthQDjX3760f8jrnzC9y1aquo3B2R+7Ix/1435wxm1dVoygPr5nNK7gKRZrZdrU2y/JmUNY+uTzt0Ya80ZQxeDxaR9RqEAQeE+TddvNj5LdVLCnwQbMq2txXmzhQDgxoNR6kIT9OMX6qYJtfznme9pJgrRzOK+pJF0aneG+w7qmXP08/P2HfsISuqea9x1tLEMUSaoUQQgghjkP1zLX3vu4azauvQ41jf3TO4dIKOiLTDq7jvzSdkaGzYCiYvECzfSThkz/f95THe+GKDi5YWD5KZ//0HHawTVNPFOqD5qTAKExBkSaqHXZbzaSs9aSZbXcK9u3/A6UVhYIhDDydXQFJo8HwsCeODNqACWB0xFIuAz6/caUUQUBzuTNUq54kdaA8xii0yY+bZoZ6ergbmJ9JQFF4byjFuzA6waFJspn9xhcjRym27BsNm0uxpzKAjX/oMPXHPrble2tTtJG5tUIIIYQQxzLvPSOJo7+az33dMpiwaaBx6CseJ+ZXArpagbUZVjujZgU20odcJjxYz/iXn/Q95WV+aX0Pq3rjqTztaXPYwbZWy4Ag30ur8nCp26N/PLWaJQg01mqUUqSpQytHFGuUBsY81aqlVNb57NuJo398a1+tR2kPZAQhZBlgA6x1pJnHkzesCidsTlZKEcUal0FSt9g0H/+jopjtA2Wq9enszKXInEGrPMEbnRAGYzSyjmm8zcM7r9QqFnQnVGLLE/sK2Cn5AMoTGE93KWNeV0pmFVv7Y2qJ5mQJt963Rk2FEmyFEEIIIY4BmWvNfrXsHk15eF+DvuqJ07xpZU/EutlFOmNNV2zoiA2Bfur3od57xhLLcMMx3LAMNSwjiWWo4dhXzdhziMfnjWfPYl5lplehHpnDDraB0XlTJt+cJ+s9Fo/3eSdkZz02s3ivMEY39+B6Gg1IU02xCFHk0EpNikBKqXZlNzAKF+YNqsIon1HrnCOOQ6LIohRkqUM3K7OtjshKK0ygKZQ1WZrf5p7BEoNj0VHYy6pw3qDwpLaIR5HZmf5Uw9NVyugoWDqLln1jIcO1I1p1PulYSkEhdPSUM2Z1pFQKllB7tFLEgWfjziKNDE70cJvvrc3yaq2e+c5vQgghhBDHolajpS2DSbNSevJ0CX6m3nTOLOaWDx0oG1keWIeT5u/tX+N/fzpjhWZ6ZM8zcdhpRxsIgvGlwJMiTDNw5p2RPYMDDu+bDZ5iRVzIR/wcqMKV75dtdkFWHjztMT5B0Brx43FW45xCK0PSsCjtKBTzB915D+THCCOF04axfWFzrup0hq3Jz5ZG2slobT7uIGN+jhaloKuUoZSn2jCk9kgeg+YIJgVh4KkULL2VlM5SRhzkzb/yG8lvp7eSsXhWg8f2FJ6y+/TxLn+eNjt+h0d/4LQQQgghxFTz3pM6T2I9o4lj12jKowMNNvafOMt1j2W/ecEcOuP9c0PmPCOJZbj+5OA6/ufGFA/Dfcez51IKj+/CzWEH20mZtNlAyjc3y2rlAU+xGKC1YmwUGg3o6FR48irtU+VLaz1BaPDe5ZVYnS9n9j4fDRSEEMcOUDgLjbqmUbN4n+GBJHWERYNqluS1ymfoHo0KYjGqUU8KeBRJWnnKET9Hi/ewta/A3uGIRqppZE91Pr4ZYh1xs9lWKbYUI0ccOqLAo/V4n+j8I4Tm914BKDoKjtD4Q9zO8ct733wupgTh8bUkQwghhBBHXzV13L2ryncfH53pUxHHiNefNYsFHWG7mj3UsGwfSXmor75fcB1Ln9kewtiodqOojthwz67aQS/7e8fIDNqpcNjBNox0c9wPQL4GWClFo5F3KFbkS4pbVVMIAcfoSEalEtBqWDyxattodh5zlmYQzY+vm6HWeQ/KkaWGKMpn4BqTd0dWOsBaj7Uurx6a8Y7I1YahkWrGY9j00MpTjMZIshDrwiMaEzS98j22ae2pnqSe0Hh6KymzOxIKkcMYj9HjH2JM+izjIEcZrmk27CicsKG2xWYpWhu0lqZRQgghxMnOec//vW8f24bTmT4VcQz6hZWddMWaoYZjpLm/9duPDTPScAwn9hmtcjQKOpv7bLuawbWr1Tyq2QF5YlBtZG6/YNsRad5y/pxD7tM93hxxxVY1/5dmjjS1ZJnPm0EBScNhAoX3CucM3k+s7O2/FNk5TxAoslShdV71hWaFLP8TpZKiXlN5V+aoGVWVp1B0+cifDCz5/l/f7Jpcih2dpYz+kSdX11rPoqn5JoZBQjEaodooYl0wZcedOnlQjQNHIXJUG5p6mj/RZ1USFvXUKMc2f+yVwqMnleYnfiygnvz35uVC0/rXY+2+T428C3KG954wiiTUCiGEECeRgVrGv/70qbvGCrGsK2I0sYwkjsR6vvno8NM+ViWaMJ5nwp/zplGacqiP6P1oZBTPWVLm7p1V5pRDXnVazwkXaFsOP9hOCC5p5rDWUywa0tShdKu5lGoHTJtplMqbS1nrCcPJgQnAmDywJg1HFKsn3R6g8hBtAkgSCCPazae8zwOuDjygJ33yEQYH/hhEke8dnaol6VpZAt2go7iXRlbA+6fboGkq5WG2GFm6Sxnd5YxSnDd72j0U8eieIqUoY9msUQqhbV5F5UvL1eSIqg5Ss1XtvysKkaO7nLFrMOREC7fee7xz2CwlKhRm+nSEEEIIMU2899x4d/8J1UlXHD2PDyWHdblCoMZH8xxgvmxHZDBTHDqVUjxvWQfPWzbTU1um3xEnMdWMO9Y6tFbEscH51r7LfC+iUhprLY2Go1BodkgGwE8KSyZQJIlndKxOp4lIEofWefMoFGjy5cRGg8KgsODz2aljVUsQ5JurvQYTTt54rdX+6dXTmrs6NUuUlcqbKeXV6Zldm67wlGLXDLPNzsWBb4dQD3SXE4phTDnOiIKs2XQLlFfNteC++WFCM9ROWJKcV8N9++8KJpfjTzC+udwgTRqEUUzenOzEvK9CCCHEycR7z3/eP3DYYeRoWDu7wLWnduXb/DLHFzcMsnlw/PyuOKWDZy8qoZRiLLF8Y9MwD+8bb/DUFWuuXtPNsq79G1zWMsen790noX2aBZoJofXAwTUyJ8Ze1mPVYQfbet0RR/lMWm3y/bStPbLeQxzn82mdy0OQB6yFctm0UlC+NLkVjprV3UolpDamiKL8G52mnizLQ3MQqObM2/Hr5LfncdZDqHDOkWW+HWwV4MiXIwfGkz2pI/BU9g9r9ogmtUVmJuB5jIJi5JjblTC3MyUM3ITGXvnvvjkXyRhPFFjiIMvnsbbvh0d5Nb7cXCn2m0yrPM6PfyTQuu9DVcO+0WNxGfYzl6YJJgjbzcyEEEIIcfxpZI6/vXPPUbu9ZV0Rv3pG76R/u3d3ja89MnTAy6/qiXl5M9SONCyff3CA3WN5CDUKrlnTxfo5RQAe7q/z9U3DVCc0FzpzbpEXrujYrwGQ855bNo/w053Vqbx7JyUFdMR6QmjdP7gWAymCzLQjWIqcz6stNOcaKUV7lmytlldavddYm182CsFaky9HHu+l2z6ebyUvlYfgKNYYk4fZfOmybs4NdTinSBqKJMrn16LycK0NZDVPGI//IHugnmgyqyiEjlGrMdo3Z++27snU0NrhvSKdgbm1SnnmdqbM78qrs1GQv8BlDuqpop5onFcExlMI88ZQmc33IncWG7hmdT0/lsL48WqsJl+y/aRbRDc/nABwXtE3ErBlb4HkBGwc1VqGbKJYXqSEEEKI48jRqshGRpEcYH/bL63vmfT3zQMNvr7pwKH2lK6IV6zrRivF3rGUzz04wHCzcFQwileu72FpV0Qjc3z7sRF+vnu8CVAxULx4VRenzt5/u9QDe2t8eeOBb1Psr9hcItzVbsqU72dt/Vsl0vmUF3FMO+xgawJN0nD5suNm52J8HiCdU2SpJgihUPB5yHWewUHP8JAhLuTNobRp9SYaj7o2c9RrKVrlp5KvAG3tyc1Dr7OKLM2DZN4J2WMzh00VYaTQZuITTTFWDxgYDUma1VrrnjSuaEp4vFckWdwMttM7L7d1/r75+M/rTFk9v0bU3E/sPDgHfSMh1kNoHJlTjDUM+5wiChzWwqxKjWKY4L1j4pJsP2FQkSK/jYkjftqfQ+CppYYdAxE7h6JmRfwE/EFvPdBCCCGEOOaNJZYP/WjvMz7OxFmeX9k4yP176we97IFC7ZvOmUU44X3pztGUmx4aPGAX3MWdIb90Wg9GKx4fbPCFhwbbs0m7Ys0vn9bL7FLAE0MJX314iMGGbV93dW/MVas6qUR5wcl7z3DD8WBfjdu2yIihg1k/p8CsYjC52hqZSd8zcfw67GC7byyiM25Qq3qMMWQWdKYIAqh0qPYs21ZlVmlFZ5eiOgbgyTJwSZ6WjFEYkwdglCZNMzKbon3eYTmK9KTtm0miiAt52PXko4BMAMPDKVFh/Imoml2lipEldWrCMmQ1XiGeQtVGiXqyiMxN72xTrWBhT4PQeEZqAT2VlLmdKUY7nB9fnj3WMNRTxZzOxvgeY6VwPn8sFI5AJc3l4ge+rYmhVk1M0+Tf3YFqyKbdRcYaesI1TjweL5VaIYQQ4hhWTR3/cNfULTHuik071O4eTZ8y1B7IC5Z3MLc8/p5woJ7xuQcGSA+QaudXAv7Pab0EWvHA3hpfe3io3dx0fjngl07roRBo/vexEe7cPta+nlZw3oIS5VDzsXv6GU2e2bzTE9nlp1Q4Y27xiLsIi+PXYQfbzXtLzO+AOZWMMIRCYXzv67jJXXS1hijOK7qFQr6n0zmwVpEm+X5cUGTWkiQWpTzFkiIMdbtYltl8pE+50lw6q1Rzf26+bDlNPSZq3yQeKMWWWZWU3YPRfr18p4rRllI0xmijMuXHnkiRLzleNjsPts43aLfi8q0l3R7rFYNVQ3cpQSnXbuilFBgNgc7nAieJwbv832iGt1azKNVMtEpNHs3U3KJLPdFs3lNohtoT9wXCt5dpn7j3UQghhDhe/dUPdk3LcV+0qrP959seHzmi684uBVywsNT++1jq+Oz9A5P2wrbMKQX86um9BBru2DY6qcK6sifmmjVdPNJf5+ZN+4+McR5+vEP2zD7ZWfOKnD2/yIJKKEuGT2KH3zwq1WwbLFOIa5TLyQHe8+8fBJSCKPJUq4osU5gg34urtScMARQjwwlhGIIPSFNL3rbIobUnCPO9td55bAZKq7zK2wzN3oOzkytrijy0hcYz9TXaiffNY3SWz8iZNp7ucsYpc/Ilx97ny4Wdd/lKWcabcY01AgJtm92OAe/xSqF9HloTq9k7HLJnKMIox7LZw5SjpP0hgVK6vb92v7PwitG6ZvPumJG64WQIfHl375k+CyGEEEIA1FLH3x9BdfaMuQXOX1hmfjng65uGJ+1NPZjl3XmlZMtgg80DR7Y/9zVn9LbfjybW8d8PDDBQt/tdrrtgePnabvZUM77w4AC1bPK71UcHGlNahT4RhVpx4eIya3pj5pQDCbKi7QjG/SgyB4/3FyjHlo5iNilQTh7kk1dmWyE0CDz1uqJUnrBtsbXcFSiVIsoV36zg5suWs0yTVvP5taUyZJlqL6HVGrSBODbojP2WF9RTzWh98vifqeWJTEI9LeKnLeR5ynHGKbPHKITjHxo473DOtUf14PPdsUNVQ0cxwTnbHmmklCIjoH80pm84Yqxh8B6KYb5H2uhWx2qF8xqbaYJocmxNrWLPUMDjfRHV5ORpUe5dvixelq4IIYQQM2c0sfzjYe6dvXp1J6t7CxTDye9XDifUnrughFb51rUj3aP6mjN6KTabnlYzz8fv6Ws3gHqywbrlxp/1HdHxT3ZzSgHnLiixrCtiVtHIezNxUEc4x1ZRSzSP98WcuiDDaDu+F7M9iiefcVut2vYIH6UUNlMMD1nKFU044QVH6ZAgyJfTtoJwFOWV3izToCCKbbvdlHeQplCve9LEEISGtK5RzS7JSkO9oRmqHvGI3iOitaPeKE7T0T2hcSzqGaUUWWA8pHvvsa1g2xyflDlNPVV0l7I89DaruI0kYt9okT3DRZzPq9jd5ZT5nTU6ig6FxnpN30jMnuEY5xTzu1O6yw4FjDU0uwZDBqtmyjtKH+u8s+hw/y6DQgghhJh+Iw3LP/340IH2Vaf1sLw7OmjYGW7sXzU9kAsX5cuIN/Q32DmaHv6JArc/McrQJkt/7fBuSzy1VT0xp86KWdoV0V2QICsO39NIf4qBsYi+kZT5XXWU1jjrcM6TZfnyTa3V+P5Oo5vNnjw2MwTB5GXDWgXYrE6SQBQ1d48299ImDYji8cZFeVMqCMLWaBpNoWSxXmFdHp69A2cn3sLUM9pSjoeppxHOTn2AVgrmdo7SUWgwKdSSzyTLg22+HNk6zUg9IA4TIJs0vzZJFaP1oL0kOw4cy2bVKEYW0DRSw9b+IntHImzzg8VHdxvCIB/rkznVPN7J84LivcdmKdrIC6kQQghxtFnn+cAPdx/ycu++eN5h/Xd662GO/OmMDYP1jC9uGDysy0+0eXB6xwqd6M6cW+SU7oglnRFdhelccSlOdE8rlVkP2wcKdBYTIu1oJA7vyEOrUiRJXjOsjlmKzX30pZKhVtM45wnMeMdeaz3lSgQ08F41GxXle2udA2Mm7z3w3uOcJ0lojqwBY4DAN2exKsLWpJZp2WTrMdrSyGK8n46luZ7uYo1ZlWo+A9jrdkfnVlMj5x2phVoSkllNGGQUw7S5PDl/kVdK0VlqUCl4GlmMc5pqYugbiVncWyfJNI/sLjEwlj8FFBCHnp5yRk85Y3AsYOdQyMkUalustYThwT/9FUIIIcTUO1RTqCtO6eDCxeUjOuZjg43DutwHbt89rb1ZRK4YKNbPKbKkM2RpV9QeVyTEVHia5cZ8PurW/iKLe8ZQHgpFk4/x0eB9HmBrNYtSqtnxOG8ClTQ0QTPseqdoNDI6OkKiyNBKolmmaDQgMFAdzZtGmQBMkFdslYIg0KQp+WxdAKPzy5l8X+g0TPcBQCtPYDKGqr34KW8c5SmEGfO6RjDa0Z4x22oU1Qy2mVUMjsUUwoRKXEfr1g7nVppvhls8hdBSKSYoNANjEY/uKTBUC0itotowRIGnq2iZ3ZHRXbYUQofRMLvDkjnFnuGAkyXceu+xNt87rvTJs59YCCGEmEmff2CATQMHD6AvO7WL0+YcfPtXYh3DDcdIwzLUsAw3LCOJY6hh2XKY1VQJtdOjOzasmRWzpCuvyJZCeX8lps/TXkfrgT3DBYxyzCuN4qwnDFoddvPGO8WiodFwhKEmDBXGaEaGHUZ7wkjTaFhGR1O6u4O8UuvzSm2aQrnsMCZvKJWmntGxvGOyNgqtFY06VDpAB6q5FDkfDbRv2DDSCA44CHsqKOVQ+GkItWCUZ37XCMUomxBNm4GL8WrtWBISmpQ4SJqPG+PNuCZ1iM7D7kgtYMdAsR1o8dBZtCzuTeksWkqxw4xvkwby/bjF6OSbjeasxQSBVGuFEEKIaea95323H3zZ8XMWl7l0aYXRxPHEUMJwkofW4YZr/p7/enJnYTFzumLdrMhGLO4MKQQSZMXR8ww2iCo8nv6xArPKDcCh9OQwEASKIBhfYtDac5tlGShHve6wmceYvAtdo6GoVS1x0TePpfI9tRFUdL5EFAU2U4SRJkkUKjX4ZvMqrTXWhdST6V3W4Jtdh0GhlG0uSX6mQcgzq1Knt5ygm9VCPaETMr7VOArSTFOJ65OCaL5fufnBQvN6WmuqScCm3WVqiaEYORb3NpjbmVGM8mZdBzvrJFMMjp08y0O89zibb87W+uS530IIIcRMONSy40UdIfftqXHHtjGpph7DioHi3AUllnZFLOoIiYwEWTFznmHnI0Uj0/SNFYj1KFGk8/myB3kJ8niM0VinqA6nFIsFCsWg2Q1ZkaWKjk6NUk+uFHq0UaDz/bUm8pjQglc4p/DK4MkH24bG0Uin74dKK9s8P4XCE5oGqY3x/pmFocB45nbWCYPWkmLyUT7et0f7uGbF1ijLxEUzrUqtVhqtdDPw5sfZM5yPJDplToP53RnFyLbDrHpSrG0FdusU2/aFDJ9EM2u992RZShjFM306QgghxAkrsY6/uePQc1q3jxxZZ2JxdBgFFy4us7w7ZmFHSKBP/PeJ4vgxJS19+8dieos1dD0hilSzc69vNz1SE6JUknmqY1AuG5TSOJeSpK45xsdRKueB7IDhuDneJg98zUCiFErnv0Zqhp1DMYmdEA6nWGAylGr3aG7+72BR/nB5KrGlUnCYZrW2dd9awdY1w5f3DqMdmTMYneVXVwqlNFprTKtqqxQj9ZBaGrBuYY3ukptc4T3gw+NJrWJrX8QT++Jp26d8LMrSBGOC9mMnhBBCiKl1qCqtODY9Z3GZ1b0x8yshRoKsOIZNQbBVJJlm71iMd6O4MYf1DmfzsKeNz7sWe02WggkgKgfooNAOp855rHV4FKOjGcZAGCpUqJqFyWZTJO8nVDFblbY81CnvqTUM1cZ0Vhk9gU4nhdhGNjWzTrtKGWHYXHzcDPDOOWw72Oaza+tpQGINZTP+SWZrGbJRCqNNexn3cC1CKagUHFqPN5UavxbtPbrew0jdsGVvRN9IeNLMrc3H++QfEMjeWiGEEGLqHWovrTi2XLCwxBlzi8wtB2h5XySOI1M0hFUxVIuoxJa0noDJyBKN0h6NRWX5HlQTOjAaZ0JUqDEUKBRCisW8k3KWQZbl83BNYFBAHndzeSMl2hVM5xze50twjTL516fmDh1UGKRYB8VoDOsikuyZj8RRQCl2+R7Z5j94r0CDdW5SkE8zQxykza7JrQPkVUatNSiNc5rEKoZqId1FS2CefGvjvIfMKnYNBmztj6gm+oCXOxGNL0FOiAulk+AeCyGEEEfXXdvHuPWxkZk+DfEUzp5X5PyFJeaU5AN+cXybomALqTUkTuN1ist8XnG04119dZjhnMeRz6pVKBwljAlx3uaVWKeIonxUj808PjzwbXnAOUtqbT7r1gNKE2o73iV42ii6S3tx3jBcm98Mts/4kOjmYzL+etJc6KwmxnoohAn1NJh05cwGjDUK1NOYRpZ3hDYaessZC3rSZm/l/V+oWlXax/si9g4HJ02VdqI0aRBFzaq7vJgLIYQQU0aWHh+b1s0ucPGSsgRZccKZsmCb8yhjsSkoNCayKONwmcYmBm0cRJYkS3Heo7AEOsD75sxWlXdIDiOd/6C1xrLSaoXUvBXvyZylkTXIrMM4C1q3q7vTmWudM/mS6XoXo/XSlBzTe9g3GjC7I8W0+kaR769tVXCVb35IgKKehWgFiQ0YbRSopyFKaSqxo7uc0Vl0lCJHaPxBs1pqFTsHQ57oi6il07cn+VjlvW/uqzUoreWFXQghhJhCEmqPHSt7Yi5bWmFBxxQUY4Q4hk1RsPWEOsUnDu9DTJCiggxUs6mS8ijjmn/3WOfQyuFQ6JD2Ptow0MRxfrw8oU6OqHnn32a7Ju9JU0uj4TBRgtEh1bqatvm14/c0r6ymNsK6qdvP2z8aMtZI6S7Z9i21GhlppUE5EmvoGy0Raks1KVBPI7SGhd1VukqOYqQJTbMifpCg5jwMVfMq7b7Rk7NK673H2gznHFFckFArhBBCTCEJtTNrSWfIZcs6WNoZynsccVKZkmCrFFSiOk7HhKEFZbEu3wPqPWCazYtU3qXIAUppbOoJinmjpLxomwfaVhflVoj0E0Je6/by8UAapxPwjrEGDFWjqbg7T8m6AKMdocmm8KiKJIPH98YUF9WJA98Mpz7vdOwcaE21ERMZx6zKCFprtDIYpTEajDEYzUFDrffQyBQ7BkK274toZCdflRbGQ63NMqI4lhd8IYQQYgpJqD365pUDLltaYWVvLM2exEltSoKt9zDY6MTXOwlMSkdhmFK8F08DcHlC1c1Sqs8rilprnAXdLHp6n/8gOkt7X24r4ubLcsE6yCwkqadez5sqee1IrWao2kUtiZjusOacBvQ03IqibyTg4Z0xq+YlFCLb3mOrtQbnqacRoUmbY300gdHo5td1azlt+wVtfFG2dYp9o4bH+2KGaqZZCD/5XvhaoTZLU+JCcaZPRwghhDihSKg9OnoKhkuXVlgzKyYy+tBXEOIkMWV7bK3LK4BJFrFvdBaNNKa7vAujq1hnJ+17VTSX13qF1s2lvSmkiSNJHMYonHeg8zE2WuVhOLMwVrU0koyUFOszvIc066CedEzVXXlKSvm8GdM05EIP7B4KqSWGuZ0psyopcejzfaDKUwjz7sitx0RrjWkG2vzf9j+tRqp4oj9i+0BEOo3zfY913nuctdg0JS7kzaKkWiuEEEJMjd2j6aEvJJ6Wcqi5ZGmFNb0xHbE59BWEOElN2bifiX/2KEYbHWTOMKuyA23G8nA7qRGUyUOaBmsV9ZqloxPS1JHajEaWgreYAAJlCLTBY7E6wYZ1nE/xzfKuMVUCUyPJpj/cBjqDCSOIplZ+1OGaZqQWs21fyLyulMW9dYx2lGJHLWl+MKA1WuW/lOKAS0+Ga4bNe2L6R4OTtkoL5POAszTfU9us1EqoFUIIIabOR+/pn+lTOGGEWnHxkjKremPpXCzEEZjirsgTKeppiYHR+fR2bEerKo58bihKodB5jygFjbqm0uEJgrw6GTiP15aRsQTls2aQUzjvSX1GlnqcAt8sQBrVoBgNkmQVpju8GZ2SOUM9LUzjreQdkOup5on+GKU8PaWM0YahEtXHm0rpvFJLc19t63XPOsXuoZAtfRHVRj5D+GTlnMVm+X7oKJZKrRBCCDHVHtlXn+lTOO5duCgPsos6QoyW9ylCPB3TGGwBFNW0QlifTVdpB95n+Na8VgxK50uQtYao1fdJKQyGQhhSNxavPKnLSNK8IZXzDgIHeHDjt6N1glJ+WmfYKjxhkFJLOqg2ytN3QxNu0XnPE/0F0ixhfnedwNh8P3KzO7R6UqhNMs3jfRHb9kVYlx/jZNReemwztDEYkz/VJdQKIYQQU+u/Hxyc6VM47pw9v8jK7phl3RGFQPbJCjEVpjnY5kbr3ZTjUYwZzJcPA/hW46O8YdRESinCIKAQRnijUVmdmrM4b3G+NQpo4jU8Wid5NdVO594DRSMt0cii5mLkoxGS8jvbU8koxY7UkjfgmhRq8+ZaYw3No3ti+kZO7qXH7XE+1mKCAK2NBFohhBBiGvjprCicQJZ2RZw+p8Ap3RHdhaPy9luIk85R+MlSWGcYrXfTWxkbXzaLQRuNMZY0yT+p8s3/a4W1MAhwgDUG3RxPkw//oR3sWi+oebBtkNmY6Qp0HqglRRIbTtttHOhWo8BRjBy+Wev2zcdnYqV2qGrYuLPASP3kXnrsvcdm+YzaIIwmjYkSQgghxNT67AMDM30Kx6zOWHPd2h4WVGSfrBBHw1H7yKieFtG6QGCaHZEzRZZZGg1DmjhsPqoVj28P0zFG4TImjLCZoFW1dXnQ82ism/67k9iwPZroaNAKZnekhIHLq7BKodETXiAV1YbmkV2xhFrvydIEgCAMJdQKIYQQ0+yxwWSmT+GYc8UpHZy/sEQge2WFOKqOUrBVZDZE+Q46iyFKwcg+qDcSklThCHBW8+Sff+99vvSY8ZXHvn3E1h8UWAMY8NMd7NRRDbVKeeZ1JSzqnbh/eHx/LUA9VWzanc+nPdlDrc3yUQNBmG/YllArhBBCiKMhNooLF5e5YGFJZssKMUOOWsXWeUUjK1GKAAUj3lLpMGBqaB/gnrRFw3tIU08Ua7JUYZTGaIP2Kg8x3ueFXA1KO1QCRlsyd6BbP954tIJ53QlLZjUwxuGhuQi7SUE1MTy6u0D/SMDJHGqhWa3NMuK4IIFWCCGEEEdFoOH8BWUuWlymGEqgFWImHdXd62ONCO8bKO+xmSUuK7y2KGUZGfZ0duYjbLwC1wyoCk2oAuKggHIWrxzWW5TPSF2GalZ0HUdz3+v0UgoWz2qwsLeBefJdaoa2kVrA5j1Fhk/ySi20Qm1KEIQHXrYuhBBCCDGFFHln40uWVOiIp7NxqRDicB3FYKuoNgzDYxBgyazFe4P3YAIPzuTjfFw+67aROMJA4SwoHxKhiWIAR8Om1LM61lusyo+NUnivodla6vjl6SpmLOxpEGg/eQl2s/vxSDXgsT3Fk35GbYtzFrzDNPfVCiGEEEJMl/VzCly2tEJvUbobC3EsOao/kanVZD6io+wojBlcpgkLmkB7rFMYYwgDj3XgvKdYzD8By/e15h3lMmvxiaduDQoN1uO9QpMQBTUSWziad2laaAXVhqFStCjV7PpMvjx7rG7YIqG2zTmLzTJMcOJU7IUQQghx7FnVE/PcZRXmVcKZPhUhxAEc1WDrPIw0DD0VT1RQjAylxIUIq0CRMTykKRQ8KN/ukIz3KJXPvPXkoS+zIYPVIkoNo9QoKE/qYxpZ6WjenWmzbywgsZp1i8eIg/F9tbVEs2VPkTEJtQB450iThCAIZVatEEIIIabF4s6Qy5d1sKQrmulTEUI8haO+hmK4ZqglKWFBo0cMURgSBGk+oVV7GommXHFo7bHOkU+vdTiXd7n1QBR4rC0xUu8iDofyIKxSUns8v+B4osCDB+sVlTijYMZDbT3VbNkre2pbvPekaYIxAdpIqBVCCCHE1JpbDnjesg5W9kTyPkOI48BRDraKWmIYaTgCUyUqdVGrQrnTg7co49GBoVZVWBpone+3bY250UpTLoXEgWbJrBF2DxXoH+3BOY1SGcdz4NMKVs+vUyk4klQRhw7T3GM71tBs3lNk36h0P4bxUKuUxgQy9FwIIYQQU6enYLhsWYX1s2XSghDHk6Nesc2sZqxhKIYJUVijOqIJCp7EVZuzSBVpLcIHNdAWcKAg0AbtImJriMKAjqLDmCrWa/pHOvA+QuEwOiFzMcdbAFQKCqGno+CgkId552GkZti0q3jSz6lt8d6TpQkKCEIJtUIIIcRMunRphe9vHZ3p05gSlUhzyZIKZ80rYrS8vxDieHPUg61HUUsKFEJPw44QRjFjowobJqQ2zbska3BkWNfAew8KrA+IMFjrIAKjAuJQ01POGBjzOKfwKJTyqPbE1+PnRck62DMc0FWy6GZYG64ZHt5ZYKQuobbF2gzvPUEYoZTMixNCCCFm0okQbAuB4qLFZc5fUCbcb86iEOJ4MSN9yhtpAecD8AkqqpEOlwnDInXXwHsHKkG5AK/qOPJ9p847HI7MObwHpRVGGxpZ3OyanLMuIgwykuxgHev8Af5t5l/EtMr3DrfOZKimeXhnkZG6NIqCvFLrrMVZ22wWJaFWCCGEEE9fqBUXLCpx4aIyhUDeVwhxvJuBYKtIsgjvioTaYFPQgScZjQjCCh6PdwrrHD7M99hCHmy8dlibL9HVPm8mNbsjY2DUMlrP9586r8nswYKgJw498zoTilHekGrXcMTIjC/z9XQWLYt7UpSCoaph446ChNom7z3WZjhr8z21EmqFEEKIY8ZVqzr5xqbhmT6Nw6YVnDu/xHOWlKlEZqZPRwgxRWakYmudIU0rlOI6HkhdRqPqKHSFNPwwVtm8C7JzzWsovG/ur7SWzDk0CqU0YeAIg4lVWIXzBwqDeag9dX6VnkqGalZui7Hlwe3lpwjDR0d32RIYz6CE2knySm0eaoMwRCkt+2qFEEKIY8jc8oy8nXxazphb4NKlFboLx885CyEOz4z9VNeSmO5iDcj30OIVxmhcZvHe4tHNVcMKvMICmbLUkxQ3DMYEBMZggpDOYkqtoWlkutlBuXm9J5nXmdBTTvOba1Z8S5EnNJ7MHqU7fgBGQ3cpY7im2bCjwKiEWmBypTbfU6sk1AohhBDHmNnFYz8krumNee6yCnPKB9uqJoQ43s3YK1HDhaTKgrIEhYgoDdFBivZgU4W3GjB4r1AKnFMkmSfzGZlzxEWL1jFYRVdhjI55CfUspJoY9g5FWAdGezKnJoTdvHmVAnYNRXhgdkdKaDy1GXocwDcbRsHGnRJqW/IO2RnOWcIoAiTUCiGEEMei+Bjfn/prZ/ayqDOa6dMQQkyzGQq2iiQLaGSaQpRSCAMaw3nlth1etANjUdCs1GkUBpdaLA7nNChPGGqM1tg0I1AZhTAis4quUkY5ttQahu0DMaN1w46BiCjwzO1M6BsJqSWayLhJwffo8nQULAu6EzbviRme8b2+xwbvPVmW4p0jjGIACbVCCCHEMWxVT8ymgcZMn8Z+3n3xPHkPIcRJYsYqttZpGmmBQpQABrAoPR4yPQ6FR+uQYtCB0QFpmtLwCcoZ8OOVTQWoIGBoLCCxhgU9DcqxQytPV9FSKTi27C3QPxrw2N4CA2MBo3VDI1Ns2FHCuul+wfMY7QGFda0z9lQKliWzEnYORAxWJdR67/HOYW0GIKFWCCGEOE7MKQfHVLDtijVvu2DuTJ+GEOIomtFNEbUkpqPkyRKHNorMJXk3ZA+uuV9WaY1HY5XHp4YgVIQxKO2wLiNzhnoa0T9SoBQ5FnYnBMZPiogdhYxT5tQZqZdJMkX/aOtuK7JpD7W5OV0pceB4oq+A83moXTyrwe6hiH1jEmon7qfV2uTdjyXQCiGEEMeFOaVja5+thFohTj4z+CqkaKQx1mmyDHQI9bSBdZ4sgYatE+gQ5x24GoEJwSu0Mc1/sySZZqQaUU8LzOtK6SxZxrOQbzeJqiWG3UNRs/PxVIelvMRsdL6nNzAeozyNTJNmee9lrSDLFAt6UsYaBq1gbmfCrsGoGbJP3gDXGueUpQkAQRCitHQ+FkIIIY4nx1KwfffF82b6FIQQM2BGX4UyG+BcAZuAjhxp6sgaAam3eBOTOA3OkDpNYMB40HWPMR4dQL3ajVZFFs+qU449E7OQAqxV7ByM2TkYUU+nurFBHmIrsaWrZOkoZsSBJzAOyIPtSN1gnSYOHeU4IwodK+dVsU6zdW+B/pGQkz3Ueu9JkwbGBJjAoNSx3YBCCCGEEPubdYwE29ec2SsfjgtxkprRVyHnNWlWxmR1iC1ZAlY5LJrMabzPQ05mPam1GK0ItUfbGJt1UoxhftcIpShATwhE3kM1MWzfF7N3OMK1xgZNEYWno2hZMrtOZ9Fi9Hh1GJX/ro2lGFt8+zqt+6x4oq/A3uEQf5KHWucsaZIQRhFaG/kPkRBCCHGcCrSit2jYV5u5+YmnzopZIt2PhThpzfjHa2lWIvJ1cBYVeJQD5RXaK5xvLfRt/UGT2k60iugoVekpe+KggFb5CB/nFPVMMzgWsHMgpppM9egcT6A987sTFvQ0iIK8k7NnfORu+1QPIHN5qN1zsoda58ia+2mjuCDzaYUQQogTwJxSMKPB9opTOmbstoUQM2+Gg63CeINWGuczjHE4lS/l1crhfWtPrEIRk9pZREFKudBHKdYEpkhgDEbn+1k37ykyVDU0mo2npjrURoFn6aw687sbzX+ZMCNXgfITAm5+gfYfM6vY1ldg91DUvF8nnyd3PY7iAiBdj4UQQogTwZxSwMb+qe+MvKY3Zl/d0lfNDnqZZy8q0VOc8XqNEGIGzfgrgPYWcDiVNw8y2qOVJ/AK0Cjyqm6SzaIUjVGMhwiMIjQRoQnRyoBXDIyF9I2E0zq6p7NgmVVJ0QqsV+1KrYJJlVo/oWbryff6busvsGsonsGZuTPLe4/NUpxzaGMwJn/qSagVQgghTgxzyuGUHm9Fd8SlyyrcuW3sKUNtMVBcvKQypbcthDj+zGiw1Qpso0Ya1lDaoSz5XlnV/J2IWqML60p0lgaJwxpGBwQmQqsi1UaBXQMF0kwzVAuaM2KnRyF0LOypE4duvwC7X1Ztp93xULt7MJ6GKvKxr9X1OE3yT3CDMERrM5OnJIQQQohpMFWdkRd1hDxvWYUlXRFf2jh0yCrwks6IQiDNJ4U42c1osA2MRrmUQkmTKDBao9BkrkCalUizMoXIMrtzCKUs1pVppEX2jZRppBGZ1RPm0E5XYPQY7VnY06Cr3Pq0UE34TaH8/mfggdQqtvYV2DMUnbSh1jtHmiUYLV2PhRBCiBNZKTy8/8a/++J57KtZ/v1nfQf8+nVruylHmv/30CAP7zv00ubzF5aO6DyFECemGQ22Co93KSY0ZEkH9SQmtQVqSQnnDJ2lBlql1JNOxhoh1UZMkgVHMSR6jIZlsxss6G60ekPlv1qhFnjyalrvYbRm2LEvpn8kbFZ0T75Qa22GzTLCMJLZtEIIIcQJbqh+eI2jxlLHvXtqB/36P/147xHd7ind8RFdXghxYprZcT82I01Shqvd7B0tkrnJS1QHxwoMjhWedK2jF46UgsW9DeZ3J2g9vqd24gif1i/Iv1BPNXuGQnYPRzTas3NPrkDnvSdLE7z3RFEM0vVYCCGEOOHtqx98H+xE//ijIwuuT+Xq1V1TdiwhxPFtZpciByGxLjGWdJI5x7EUAJXyzOlMmd+doLTH+fY0n/3WHHugnmj6R0P2DodUG+akrdJ678mSBtoYgjCfJSehVgghhDjxDTzFqJ+Ll5S5/YmxKb29Uqg5c15xSo8phDh+zWxXZKUw2vCkuucM8AQa4tARBQ7nobNkWdDTwGiPnxhqyZcaezyZVVTrhoGxkH2jIfWTtEILk5ceB2GElqXHQgghxEll4CkqtlMdal+wvINnLSpP6TGFEMe3GR734/ffoDoDjIblc2vM7khA5fNplfKt3lDtqqx1kGSKWmoYqQUMjQXUEjOhG/PM35ejzXuPcxZnrSw9FkIIIU5i9+2pH5Xb+f+eM49Ay/sMIcRkMz7H9lig8BRDR2g81iuc91gHmVWkmaKeGqoNw2jdUE81aaZxfvzaJ6P2GJ+0NX/YoI2RQCuEEEKchDbtm95Qe/kpFZ69qIyW9xlCiIOQYAtkTrG1P6Z/NEBrTyPV1FNNkmkyq7BeNTsxw8kaZCfKq7SONKkThBHG5E8jCbVCCCHEyWfzQIPPPzg45ce9ckUHZ8wtEsuMWiHEYZihYOtReAphihlfx3tQqjlL1qOay36nPkANVgMGq09+OCSoPZm1Fucs3jmiuIiSZcdCCCHESeuxgQb//eDAlB3v1FkxL1jeSVfBHPrCQggxwYwEW4WnuzxMb0cDOxSMd2U6IE9H0bJkVh2jYNdQxN6RcIpn2UowOyTvSdMUj8+XHUchIFVaIYQQ4mS1ZbDBfz80gH3K93GH59fO7GVhRyjvK4QQT9tRCrb5K55RHq09Snm8D9k3UqbDjx7y2qN1w1AtYGlvgxVxja5SyhP9hWYXYnkBPBpaTaLCKEZrWRIkhBBCnMweH0r4/IMDZIdeeHdQL1zRwbnzSxhpBCWEmAJHJdhqBYt7q3QUGljv2TVYppbEGB1RUVXCoDX37EAvbHkzp77hkKFqQDGyrJpbpbOYsmcoYs9wTCOTgDud8lE+FqVkhI8QQghxsts6lPCZ+/Y9resuqAT88mm9lEL5kFwIMbWOSrAtxRmzO0bBe/aOlBhrhKRWU4o8Wju6SmPsq5YnNGiaTCkITb7PthRavFdU4ozC7ITOUp0tezsYawRIuJ0+zllMEEiwFUIIIU5S3nved/vup3Xd1501i4Ud4RSfkRBCjDsKwdZTCOs00jq7h3voH+1o74/VKm8i5Q8RSL2H0YYhNJ7MKuqpZvmcMZRydMQNVs71DNVKZFYzXAsYqUsFd6q0OiB779FaGjkIIYQQJ5vUej54x5EH2vMXlHjhig75UFwIcVQcnaXIus5oYhmuxROaPuV7bR2akbHSQau1uXzcTpIpkkxRa2i0cszvtgTaUi5kdJfraK2pJ5oHtxcZrhkk3E6NLE0IAvmUVQghhDiZDNUtH/7J3iO+3juePVeWGgshjrppD7ZaOQJdxbk6WiVA1P5aGNTQLkWr7LBPRSuY01mnGKfsGS7SU65RMeONlQuRY2FPwlijyGFMEhJPwXtPliZordHGyCeuQgghxEng8cEGn7n/yEb4XLmig/MXlqfpjIQQ4tCmOdh6ClGd0FSxPiUKRmikJTz5p3hJFuFVFROkh30qzsO+sZjuUo3uzgYA1gdo71E+X9Q8q5Kxt5TRPyr7bp8u7z02S/HeE0bxTJ+OEEIIIabZHdtGuW3LoadVTPQHF80jNPJeSwgx86Y12CqgUhjBk+K8pRTvBhQj9bl4r9HK4D0o1UBROORe29ZRk0yza6jMwu4M6xUlBcaA8h6tFEZ7CqGUa5+uPNRmWGuJ4gIg82qFEEKIE9Unft7PjpH0sC9/1apOzplfmsYzEkKIIzetwVZrRxQkzb/lXY0rxd0EpsZofQFFFRKEnqHU44HA1LEuxPtDNX9SDNViqo1ZWK+Z1dFgUW+DUuzx3pNkqrnHVhwp7z3OWmyWEhWKgIRaIYQQ4kTzdDoc/+6FcykEsndWCHFsOgp7bPPdr0op8B6tHJV4jCJ7CF2JhtHUaxFKOUpxP9ZpqvW5zeXKBw9U3isSGwCevUMFMmtYvbBKqD31VFNLpTPykco7IFvSNCEuSKVWCCGEONE473n/EQTaixaXufyUjmk8IyGEmBpTHmy1AqM8ylsMGTYJCUyMcgbvIG0oBvbU8G4vC1Z2UMsKpFk33htGa/MoF3cSRcM0ku7Dv1EFYZAvPfZALdE4J4HsSLRDbdIgiouAklArhBBCnCAameNv79xz2Jf/zQvm0BnL6jchxPFjSoKt0RBg0baGr42QNaqgNToKGa2mjAyNMjQ0RBSHdPWU6Z5ToNDhcapKHCQYPQdnizhvqDVmU4z7SNMKzh9e86c5nTWWzKpjlCKzir3DEe4pxweJibz3WJths4woLqKUhFohhBDiRLC3mnHjz/oO+/LvvnievAcQQhyXnlawVQoCDcYlqGQUWx/BOYuJS0SlDuJKNy6tY+ujNKyno7eXBcsr6DhDGYvzCbZ5LI9HKds+dmYLWBtTiAaoNuYc8lyiwDG/q0Zo8mWz1YZhpC4zbA9XPtInxXsnjaKEEEKIE8S9u2t87ZGhw7rsC1d0cIGM6hFCHOcOO9garQiURac1XGMYm9TwJiAoVAi75qJwpLVRqoN70UajowquOBtvCtSNpRTtJgoGsN7TCp0eD8rTWdpJkpWopx1kWYkk66AQTXwxbpVfnxy4POUopRBYFHmH5b6RkMxKMDsU7/NGW2lSx5iQIMxH+kioFUIIIY5fn71/H5sHk0NfEHjr+bPpLkx7uxUhhDgqDj/YDj+OcxYdFYiKFXSlB5c1SKrDuLFBTFSAqIzu7sWpkMQ146gDnGHvyFzmdUEpHsn3c3qHdQ7rHTqsEgZjxNE+rI2pJ7PJbBmjHUZDMbKM1gPchAk+WnsqhYyFPTUCo9AKhmsB/SMRUq19aq39tFmaYoIQYwIJtEIIIcRx6kg7HL/j2XMphdLdWAhxYjnsYFvsmgPekzXGaAz3g1LoqAjFWaigSIrGOp+n2f32tyoyG9A3PJelsyM6i3Wcd6TWkdqM1GZYZ9HK4k2dUrwHoytolVAMA4qRY7QRkFmVV3k9RIGlEmdExqOae2t3DMQkmQS0p9Ie52MzwihCKS2hVgghhDgOWef5wA8PL9DGRvF7F82b5jMSQoiZc9jBtjawC2VCVFRGdy3C6pCGnVCV3T/NPomikQXsHOihszBKObJYZ0mcI7MZqctIbYrzjkAHxIEiChyBsSigJ0jz5bOtm1IeA3gUtSRgx0CBfaMhUq09ONucT6u0JoxiCbRCCCHEcWj7cMIn7913WJd9y/mz6ZHlxkKIk8Bhv9KpnmVk3oxXZe0hr3KgozDWMGzcVaEYOqLQUYwyoiDD6AwTWDyOQCsCYzDa4L0msYosU2jlCYzDA5lVjNUDhqohI7WARiZzaw8mbxCV4AFjArQxEmqFEEKI48w3Ng1x967aYV1WuhsLIU42hx1sG1Zz6KrsoXkUo3XDaD2fjaaIMdoTGI/WHqMcxngCk8fU1GrqiSZzCqPyywGkVpFmunlG8sJ9IN7n68KTRgOlNUEQyigfIYQQ4jhzuIH2Vaf1sKInPgpnJIQQx54ZWpsyHqw8kDlF5iZ+/UABWpEBjWx6z+xEMd4gKiEIIqnSCiGEEMeZobrlwz/Ze8jL/cFF8wiN/DdeCHFyO0Y3XciL89ORV2jBWYtzFudas2mlSiuEEEIcT/7qB7ue8uuXLa1wydLKUTobIYQ49h2jwVYcKe893jnSNEFrgzaGIIwAmU0rhBBCHC9qmePv79xz0K/L7FkhhDgweWU8zuVLjl2zSps1ux3LCB8hhBDieLNrNOVj9/Qf8Gu/e+FcCoHMnhVCiIORYHucalVosyzNG0JpTRQWAanQCiGEEMebxwYb/Nf9A/v9+7KuiF89o3cGzkgIIY4vEmyPM957vPfYLMU5RxhGKC0VWiGEEOJ4lTl/wFD7mjN6WdIVzcAZCSHE8UeC7XGiXaG1GXiP1oYolj20QgghxPHur3+4e79/k07HQghxZCTYHuNanY6zNMF7jzEB2miUkn02QgghxPHuQN2P33XxPLR8aC2EEEdEgu0xrLXsOE3qGBMShPm3Syq0QgghxPFvx0i6379JqBVCiKdHgu0xynsPzVAbBCHaBBJohRBCiBOE955P/HxyB+TfvXCuhFohhHiaJNgew5KkQRBEaGMk1AohhBAnkK89MjTp77+0vlvG+QghxDMgwfYY09pTmzRqmCCUUCuEEEKcYBqZ47499fbfI6NY1VuYwTMSQojjn3w0eAwZD7V1TBBiZPmxEEIIccK5Y/vYpL//3oVzZ+hMhBDixCEV22PE5FAbSKgVQgghTkCNzPGzHVUAtILfOG+2/PdeCCGmgATbY8B49+MGxkioFUIIIU5U9+yqUbf5h9mnzynSXZC3YkIIMRXk1XSGee9xzpGl0ihKCCGEONHtrWbtP1+4uDyDZyKEECcWCbYzyHuPtRk2ywijGKW0hFohhBDiBHb1mi4uWFhiy1DC7JK8DRNCiKkir6gzxHtPlqV455qhVkmoFUIIIU4C8yoh8yrhTJ+GEEKcUCTYHmXee/CeNE1QShNGMYCEWiGEEEIIIYR4miTYHnWeJJFxPkIIIYQQQggxVWSO7VHmrEMpLaFWCCGEEEIIIaaIBNujyHuPdVY6HwshhBBCCCHEFJJge5R559DazPRpCCGEEEIIIcQJQ4LtUeScBaRRlBBCCCGEEEJMJQm2R0k+s9ZijFRrhRBCCCGEEGIqSbA9ipy1aGkaJYQQQgghhBBTSoLtUeKcRWstoVYIIYQQQgghppgE26PAe59Xa6VplBBCCCGEEEJMOQm2R4lzDm2kYiuEEEIIIYQQU02C7VHgnANAKXm4hRBCCCGEEGKqSdKaZvky5Awt3ZCFEEIIIYQQYlpIsD0K8jE/wUyfhhBCCCGEEEKckCTYTjPnLEqp9i8hhBBCCCGEEFNLgu00c1KtFUIIIYQQQohpJcF2GnnvpRuyEEIIIYQQQkwzCbbTyEs3ZCGEEEIIIYSYdpK4pon3HmsztJZuyEIIIYQQQggxnSTYTiNrLSaQYCuEEEIIIYQQ00mC7TTxzjU7Icv+WiGEEEIIIYSYThJsp4l1FmOkWiuEEEIIIYQQ002C7TTw3uOdQ0uwFUIIIYQQQohpJ8F2GnjvAWQZshBCCCGEEEIcBRJsp5j3HmetBFohhBBCCCGEOEok2E4Da1OMCSTcCiGEEEIIIcRRIMF2innv8B6UlodWCCGEEEIIIY4GSV9TyHuPzTJMEMz0qQghhBBCCCHESUOC7RRzzmG0kWXIQgghhBBCCHGUSLCdQt47QJYhCyGEEEIIIcTRJAlsiuTdkB1aQq0QQgghhBBCHFWSwqaQcxZtZBmyEEIIIYQQQhxNT7vLkdGKlQt7KRdDktSyafs+GqmlFIesXNRDYDTDYw027xzA+2d+ouVCSBQaBkbqKAWXnrGMuT1l+oerZNYxr6fC4GidH9y3lXqSPe3bWbdsNuuWzqGRZtz54Db6h2uHdT3vPc45Qm0ACIxm1aJeZnUWCbRmpJawc98IO/tH6ShGaK0YGms87fOcLotmdzC3pwyA99BIMnbuG2VwtP60j/mstYtYOreL4WqDH9y3lWojnarTnaQQBaxa1EtPRwE87BupsXnnALVG/nzoKsesWtRLpRiRZo49g2Ns2TVIZl37GMU4YNXCXoIg/8zHOc9oLWFwtM7iOZ0APLZzkOFq/r1bNq+L3s4iY7WUR3fsw7r8yT6nq8SiOZ10lmKc8+wbqfHI9n7SzPFkSsGKBT0snNVB5hybdwywe2DsGT0WcWhYtaiXKDTUGhkPb+vHOU93pcAp87pRGvYOVtm2d/gZ3c6BLJnTyblrFqBQ/OyRnWzdM3TQy/ZUCiSZZax+5M+JhbM6OP/UhQD87JGdbNs7TCEKWLmwh97OYvs58PjuIc5fs5BZXUV27xvj9ge2HvQ1aX5vhVPmdROHhpFawiPb+xmpJkd8bodLKVg+v4e5PWXi0FBtpOwZGOOJPcPEkaEYhQyM1JiCl9A2oxXdlQIjtYQktRSjgJWLegkDzVgt5ZFt/XhgVmeRJXO7UAp29Y+yc9/oFJ7F1OmuFMisY7R24O/TxNf0fcM1FszqIMksdz20jb2D1cO+nc5yDJ72z74QQgghji1PO9ieuWIeZy6fTX9/P11ds1g4q4NbfrqZK89fSTFwjIyMcM7KpWiteGTbvmd0kuuWzubSM5cB8MSeIe7fsoe1S2fzj//4j7z1rW8lCAI+8pGP8Eu/9EusXtTLfY/teVq3Y7TiktOXcvPNN7NmzRrOXjmfW+9+7LCu62yGMfnD2V0pcPWFawi0Z8OGDQyPjbFq1SrOP/XUSdfZuLWP7977+NM61+kwu6vESy5cw44dOwAwxtDTM4coihgayz802N43ckTH7KkUOHvVfD7xiU/w0pe+lFOXzOLuTbum/NzPXjWfZ61dRL1e595778UYw3mnncbFpy/lB/dtZUFvhZWLeunv72fjxo10dXXxvLPWkZy2hK/f9Qh9Q/kb3MvPXk5nDKOj+Zv4OC7Q27sIpRRDQ0N47zlzxTw+/50HWDK3i8vPPoWdO3cyZ8UiClHAvZt3s3xBNy88byUDAwNs3LiRQqHABevWce6aBdx858MMjIx/SBCFhpc8ezWzOovcfffddHd387KL1/Lg43v5wX1bn/bj8ZzTl7Cwu8DQ0BCzly+gUoi4e9NOrr5oDfWxEer1Ohecupov/uChI3pzfzguWLuITQ/di3OOZ59xzkGD7S+cv5Jl87sBuP3+rTywZe9h30ZoNFdftIY77riDnp4ezl29mNmdJZ61bvw5oLXm3OZzAOBTn/oUv/Irv8LAaG2/2ypGAS88fyXzeyts2bKFHdt2sHbtWs4/9Qzuf2wPdzzwxJSGS5j8vX/kkUfo29nHkiVLOPv8lSilcM6jtWLv4Bhf/MGGKbnNMND88vNOp1QIyazjy7dv4IK1i+gpakZGRpizYhFxaHh4Wz/XPOdURoYGSdOUC049lc/ddv8x92HcC89bwfIFPQDc8cAT+732G6249IxlfPWrX2Xt2rWcsXo1//M//8PSpUs5d/VCvvnjRw/rdp5z2hJOXz4XgJ8/uou7Hto+tXdECCGEEM/Y0w62PR1Fbr/9dp7//Ofz67/+6/z7v/87S+Z2MrenzItf/GK+8Y1vsGHDBmZ3dpPMs8zrqRCFhpFqg807BhipJczvrTCvp0ylGOG8J7OObXuH2dk/uTJw6ZnL+Na3vsWtt97KBz7wATpKMZC/Ub3++usJgoA///M/58orryQKA6LAsHJRD7M6StSSlK17htg7WG1XmWd1FdFKMVJNeGxnfi4ARmuUUnziE5/gVa96Fa985SupJil7B6ts3T3E8gXdxGHA9r5h+odrFKKAFQt68vD++C5qmUcpxeVnn8Kjj2zgpS99KcuXL6enp4ef/exn/PEf/zFveMMb+M///E+2b9/OH/zBH9A/UmP3vlFmd5Xo6Sjivad/uMajO/IPA1Ys6KGzHBMFBq0V1XrKlt2DLJrdSVc5ZqSasPGJPhqpBWDxnE6WNCuLewbH2LxzgFIcsmJBD4U4wCiNMYr+4RqPbOtvVxghD6EAy5YtY+3atQDs3buXs846i9/7vd/jJVdeyZdv38CegTEWz+1k8exOPLBnYIzHduWV+QWzKiye00khDKglWbsaetNNN/Hc5z6XOCzRWYpZsbCHciHMq8JpxuBonYGRvCpaiAK0Uu039Zt27HvKqv+6pbO54NSF/MVf/AX/8i//wllnnQXA/fffz4c+9CGuu+46RkZGeO1rX8utt97Ks571LPr7+9m1axdf/epXOWP5XG67Z0vzeV3gr9/3l3z4wx9m2bJl1Go1RkZGuPHGG+np6eG6667j3nvv5fKzl7Nwdgef+cxn+Pu//3vuvPNOkiz/HszvqfDggw9y1VVXcdpppzEyMsJjjz3G1772NZ571mq+NCGknL9mIcY1uPDCy+no6GDPnj1cdNFF/Pu//ztP7Bni8d0Hr3Y+lZ5KkY9//GP81m/9Fv/wD//AW976mwxXGxRCw+nnn8/jjz+OtZa53WW6ygVmd5UwWjE4WmfT9n0kqWXpvC56O4oU4xCloJ5kPLZzkH0j+69iCAPNqoW99HYWmd1V4l9vuYUkSTj73AuY011i8exOKsWIWiNjW98wAyM1ls3v5j3veQ8XXXQRL3nJS7DO0z9cZUFvB52lmCSz7B4YPeBjcNopc6nVavz6r/863//+9ymVi8zrKfOXf5l/78466yyUUtx33338/d//Pa985SvZsGEDH/vYx3jDG9/Ehq197ee+Aq68YCVZdYgXvvBatm3bxmmnncadd97Jddddx9/+7d+SWce+kRpd5Zg4DFAKRmtJ+7Ws9dxZuaCXODLtx9E5z4qFPVSKEaExGKMYrSVs2r6P89YsRNs6z3rWc1FKsXz5ch566CGuuOIKPvShD/HTn/6EG2+8kf/4j//gktOX0jdcJQ4NpTjEk4e2h5/op1KKWNDbgXWOXfvGH6/AaFYu7GF2V4lGYtnWN0xPpUCpEHLllVfymc98hmsuOpUoNPz5n/85N9xwA5/85Cd5+St+Gec9OMvatWvx3tPX18e8ngrzeirM6iyilGJgtMaj2wdIreWU+d30VIoUovyxqdZTNu8cOGAQVgqWzetmwawKWikGRuo8umMfaeZYvqCbOV1lrM/vyxN7hukoRZwyr5tiHLZfF/qHq2zZNcjyBT386Z/+Keeccw4ve9nL8OSrZ+LmfwdKhRCAW2+9lWKxyOrVq/mv//ovrrjiCn7t136N55y2hL3N18liHLJ8fjdJZnl0xwBhoFnRDM2nL5/Lv/7rvxIEAW9+85vb3/uuSoFFszuIQsO+4RqP7hhAQft7HhhNGOT/3RutJczuKhEFhrF6yuO7Bw97RZAQQgghDu0ZD1xdu3Yt3/zmN6nValx+9nJ27NjBli1bmDVrFgBnrJjH6cvn8vjjj7Ovfx9rV67k2esW85ONOzj/1IX09/fT09PDI488QlexyNkXruHezbvbn4gvmduJc47HH3+cDRs20NfXRxiGQIH/+Z//IYqiSeezYFYH565eQJqm3H///SxetIjz1qzjgS17WDS7k0ohYOPGjTQaDU5fs4YL1y/mM9++94BLIXft2oWp7eO5Z56KMYYkSahWq1y4fjH/95Z7ufycU+gpBTjnWLd0Fp//zoMU44A53WWuf8OfcP311/Oud70LyN9sDQ0NkWUZmzdvZuvWrfT19XHG0m6ec9oSkiRhw4YNhGHIxaet4pzV89nZP8qK+Z3UajUKhQIPPvggq5cv54K1i6jVamzcuJHTV63izBXzuPmuh7nk9KUsmNXBpk2bsNbyvLPyr3WUYtJGjTAMGR0dZceOHVy4di2nnTKHr/xw4wGXx958880sXboU7z2f//znecUrXsF3vvMdLlx/KgrF3J4yDz/8MABXnLOKPYNzGak2WL14Fk888QQ7dz7B4sWLWbhwEZB/CNHR0UHm4MyV8xgcHGTLli2sX7+earVKefkcwjBkaGiIYrFIX18fAwMDXHrGqZy6ZDZfv+uR/M32AZyzegEf//jH+djHPsZPf/pTFixYAMDAwAD33nsvAL/927/N0NAQjz76KIVCHuA3bNiAP8gxf/EXf5F//dd/BeATn/gEf/AHf8B9993Ha1/7Wn7zN3+T//qv/2LHjh38wR/8AbfccgtjDcvGJ/qAfKnihetOZcuWLe391u95z3v467/+a/7zP/+TMNCkmcNoxZrFs/jA+/+KU089lU9/+tPUarV2qFq3cv3TDrYtF154IZ/85Cd5+9vfzoXrF/O9732PBQsW8Pjj+UqBi09finOORx55hHq9zjmrV3PhusXc99gezlg+h6GhIbq7u7n//vtZumAB561Zz/fufZwNW/vat1EpRlx94RoKoWLDhg0MDITtr5UKIddeso59+/axefNmFi5cyLlr8pUL9XqdDRs2sHDhQvr6+rhg9VyKxSKjo6M8/PDD9PT0cNb5K9m2d5hv/uRR3IQPYdYum81//ddnuPTSS+nu7sY5zyc/+Uk++tGP7vcc+PnPfw7A9ddfzwtf+ELe9KY3ccr8bh7dMQDAojmdzOupcOlLr+L888/nm9/8JlrnFcwrrriCv/7rv+aP/uiPSJKEWq1GsVjkwQcfZO3y5Tx73WK+ftcjLJ7TyZkr5rFnzx527tzJuWvWcOG6xewbqdFRMKRpShAEbNiwgbUrVnDemoUERvPe976XVatW8dnPfrZ93wYG8vPavn07DzzwAH19fSzoClh/yrL26+WWLVvAwbWXrsN7z4MPPkhHsciZ56/kiT3D3L1pJy9+9moUnvvvv5/5c+e2H/eRkRHuuecedu/ejVKK7u5uAC666CI+8YlP8NrXvpbz1izk5pu/ypo1a9i4cSMAzzv7FKy1bNy4EWstF6xezbNOXcTD2/pZt3QWIyMjdHR08MADD7ByyRIuWLuIW3+2uf04Q76l5MXPXk13pcDGjRvzlQPr1nHJGUsZHK3TUQzbP6NnX7CKrbuHmNtTJm3UiOOYwcFB9uzZzXPWr+W5Z51CvV5n48aN9PT00NfXxzkrZmOMaX+fHnjgAYY7At773vcSx/Gkn409e/agqnu59IxTOX353Emvk7M6S8zuKlGJ8pUraZqyadMmgiCgr6+Ps5fPaq8E2LlzJwMD/Txn/WrOWb2A0WpCbyVsf88ffPBBzly/nkKhwKZNmxjcM8jy5cs5/9T1fO2Oh9nRf2SrYIQQQghxYM842BaLRZ73vOfxpS99if/zf/4Pn/70p3nNa17D3/3d37Uv8zu/8zs89NBDdHd3c9ddd/GBD3yAX/7lXwZg+fLlXHnllWRZxsaNG3nBC17AP/3TP7G9b4Rte4fpLhcYGxvjX//1X9m5cyevf/3rOffcc/mzP/szlixZwsDAQDuoQL7v7tZbb+U3fuM3OPPMM3n44Ye55ppr+Ku/+iv27dvHORc9l+XLl1Op5EsOf/jDHzK7q8RYfXKA+MQnPsE///M/o7VmdHSUW265hUajwfr169myZQsXrV/MotmdvOIVr+AlL3kJ1/7i/wHyqi9ArVajWq3ifV7Fbb2BfPzxx/mv//ovqtUqO3fu5PnPfz7veMc7OOusszj99NMZHR1l69at3HLLLaxdupCvfe1r3HDDDXR0dNDZ2cmdd97Jf/zHf/B3f/d3dHZ28vOf/5w77riDX3zuaQwNDfG85z0P7z3lcpm9e/fyjW98g0JU5s1vfCujo6P09fURBAG7d+/mxz/+MWcsn8fPHtl5wO/tE3uGeGLvML/8y7/Mrbfeyo033si//du/0d/fzyWX/AJRFOXLlIeG+MY3vsH8xbN461vfyo9//GPWrVvHpk2b+Ju/+Rue85zncNFFF/GlL32JtWvX8oUvfIG3v/3tPOc5z2H37t309fXxb//2b1x22WVce+21zJ49m71791KtVomiiO985zusXtzLxif69zvHVsX/Ix/5CH/0R39EV89s/vu7D5BZx7mrF/Dc5z6XkZERPvvZz3LvvffSP5rwnR88TKkQcuG6xfR2Frn1Z0+93DyO4/Zz7E//9E85//zz+cIXvtAOjKeffjr//d0H2lXlB7fsJTCaZ69bDOQfaoyNjTF79myc8+2A1lUuEIWGr33ta/zRH/0Rg6N1OksFrrnmGr72ta/xx39ywVOe1+FYuXIlTzzxBPfccw9nn302H//4x3n961/PnXfe2b7My1/+cpRSBEHAT3/6Uz772c9y4YUXsm3bNs4++2wuuOACyuUyP/rRj3jnO9/J2972Nrb3Dbf3nl5yxlL6dm/nyiuvZP369ezdu5dyucxFF10EwBe/+EU+8IEPsGLFCu677z4uvfRS/uVf/oXbb7+dO+64g0cffZRvfOMbXH/99Sxfvpxf+ZVfYf369WzdupVSqcTXv/51Tls2p73MtKsc01mK+dznPsdv//Zvk2SWKDDceOON/OEf/uF+z4FLLr2MbXuHWbZsGcVikZ/97Gcsmb+8HbiWz+/m4Ycf5qc//Sk333wzj2zfx08f3slVz1rFn/zJn/D2t7+dP/zDP+QHP/gBv/Vbv0Vvby/z5s3jjjvu4N///d+5+uqrAXjHO97Brbfeyqmnnso999zDpz71KZ7znOfwyU9+khtvvBGA3t5e7rrrLm6++WbOP/98qtUqjUaDLMsIgvzluKcnrxL+zd/8DRs2bOD1r389K1as4EMf+hBr167liiuuoK+vj+c///m8+tWv5mUvexnz58+nVsvD31e+8hVedvFa7rrrLl7zmtdw2mmn5a9ZF13Ehz/8YW688UaGhob4nd/5HQqFQvsDnHPPPZfvf//7bNmyhVNOOaX9XGl9OAfwghe8gO7ubrz33HfffXzpS1/ijDPO4L777uOaa65hxYoVzJo1izvuuIP3ve99vOY1r2FH38+pNfseXHbmMob37eGKy15OV1cXc+bMoVqtcvPNN1MbGeDyS1/M7NmzGRwcZN68edx0003EccivvOqX0FrT19eHtZZqtcodd9zBXXfdxQ9+8AMefPBBvv3tb/OmN72JKIp497vfTbFYZNasWe0PlV796ldz3XXXAfC5z32Oj370oxQKBfbs2cO3v/1tClGZN73hLVx11VVc/gsvpbejyLvf9f+xaNEiXvjCF/KVr3wFrTUPPvgg1157La9//ev59V//dW6//XZWrlzJhg0b+MpXvsK6dev42Mc+xkc/+lGSJGHevHn87d/+LW9/+9tJkoRFixZx33338c1vfpN5vWUJtkIIIcQUecbBFuB1r3sdN9xwA6961av41Kc+xTe/+c1JwfaDH/xgs8oKjz32GJdffnk72AJcccUVvPWtb21Xq1796lezbukatu0dZsvuQS46bQnvfOc7uemmm/j85z//lOeSpilvfOMb+cpXvsKZZ55Jmqacc845vOpVr2Lz5s2sXr2a//f//h9Au1p3oMZIYRhy2223oZTi137t1/inf/on3vOe9/DCF76Qz33uc7zxjW9k586dfPe73+VTn/oU9z/eh1Kq3WjoPe95D9dddx3/9//+Xy699FKuu+46XvrSl7Js2TLe/OY389hjj/GhD32ofXv33ntv+zF63/vexz/90z/xvve9D4AtW7bw6KOP0tPTwx//8R/z9re/nYceeohyuczb3vY2PvOZz/Cud72Lv/zLv+TZz342H/jABwB473vfywc/+MH238Mw5Hvf+x5KKV784hfz1a9+lcte+JKDBts9g2Pc/9geVi7s4dJLL22f75/+6Z/yghe8gD/90z8F4N3vfjf/8A//wA033MAnPvEJBgYG2tWRJ1dE0zTlbW97G7fccgtnnnkmW7duZdWqVZMus2jRIj7/+c/jveecc87hhz/8IYtWnHbAYNtdKeC950c/+hH//M//zOO7B9t7WL/788fRSrHn8Q0YY1i1ahW33bOFsXrKWD3lq3c8jIID7p380pe+xAMPPECtVmPr1q18+ctfBiCx8MlPfpLnPe95rF+/nt///d/nroe2Tdo364FGasmyjIsvvpj+/n7mzJnDLbfcgtaqvQS2tUxyx44dLFy4kJ39IygFCxcuZMOGDe0l2c57Vizo4dzVCwibTa1ay/FHmo1sGmneDOdAe6Bf97rX8clPfpKVK1fy3e9+t/28arnpppvaz72vf/3r/Nmf/Rnf+MY3AOjv7+ed73wnz3ve89ixYwenn346v/iLv8ipi2fzk4d3UCqELJ3bxat/92286U1v4l3vehdJknDeeee1j3/11Vdz7bXXAmCt5ayzzuLBBx/k+c9/Ppdffjm/8Au/wGte8xoAsizjnnvuaVe6X/GKV/DlL3+Z5zzvF9rBtrezCJB/MHPGGaSZJTSaH/3oR/zjP/4jj++Z/Bz43s8fR2vFG198LmeeeSY//vGP+cVfWd8+v65Kgf/9/o9YuXIlnZ2d3HbfBkZrCY/tHOScc85h8+bN9Pfnz71HHnmEhx9+mFNOOYW77rqLV77ylVx11VXceuut3HHHHdx9990EQcAPf/hDfuu3fouf/vSnADz++OM89NBDVCoV/u7v/o5/+7d/4yMf+QhvectbeNGLXsSiRYu49NJLueqqq3jta19LGIb8+Z//OX/2Z3/GV7/61Unfr8suu4y3ve1tQL6y4Prrr+c3fuM3AHj961/Pxz/+ca6//nre8IY38JGPfITLLrsM5xwXX3wx3//+9/nd3/1d/vqv/5pPfepT7co20H6ta23x2LhxI5dccsmk2/7Wt77Vfq585jOf4X3vex//+Z//2b6PX/rSlzj77LN55JFHuOiii7j22mtZ1ex70FWOWTK3i1e+8o284hWv4D3veU/7OQHwZ3/2Zzz/+c/nb/7mb3DO8aIXvYiPfvSjvPWtbwWgu7ubL3zhC+3H4Nvf/jYveclLeMELXsCll17KG97wBgC+8Y1vsGnTJh5++GEWLly4389D6za/853voLXmrW99K3/7t3+738/FRGeccQavetWrCMOQG264AchXtbS+53Ec86EPfYjf/d3fbf/sbN68mY0bN9LZ2cnmzZt55JFH2LRpU/u57b3n3m2bD3qbQgghhDgyUxJsn/WsZ7F9+3ZuuukmFi9ezOLFiyd9/Z577uH9738/W7duxRjDE088QZIk7WXE11xzDY9s72f1olm84AUv4K677uLV684EYKSasONJb9Z/vGE7F6xddMBz2bx5M3v27OE//uM/2qEqTVPuvvtuXvCCF/Bbv/VbvPzlL+fKK6/kF3/xF5kzZ057b+RE11xzDUNjDZLMcvXVV/PJT34SgLe85S38/u//Pm984xvbe3HL5TIbtz3cvu537tnCi571bLZu3crtt9/O9773Pd785jfz05/+lPe+973ty2XWcceDT3DJ6Uv5yEc+wuc+9zlGR0cZHh5u7xMFOO+88+jp6cE5z+rVq7nwwgspl8s451mzZg2bNm0C4LbbbmPRokXtN71PPPEEtdr4Hq4rr7yS4WqDjlLMunXr2L59O8Xo0E8BrRTW2vaM3ttuu421a9e2b+exxx4jCAK01rzoRS/ioosu4qUvfSnXXnvtpPsB+ZvfKIo488wz2bC1j7VLl3LaaadNusyVV15J/3CVWZ0l1q5dy/bt21m+dvJxWlq5WbXO8UmjlgKj0VrjnGvfl4nCwBzw+3/FFVfw53/+5zQaDb74xS/yG7/xG/z4xz9m175Rzj33XM477zxe//rXM1rPuHfz7v2uPzRWxxjD5z73Ofbs2cO73/1u/uIv/oL3v//9lOKQaiNtPz+11u0/KxTe+/a/+WbsvmDtQn72ozv4wQ9+AMCLX/xiRkZG+P73vw/AVVddxTmrTj1gsH3lK1/Je9/7XtauXcvLX/7y/Zbvf/Ob3+Sf//mf6evrI8syxsbGOzJXKhWe+9zn8si2flYvXsj69eu59957WbE+D67d5bySfeedd/Lud7+bzTsHWDa3i1/4hV9oH2NwcJAbbriBu+++G+89O3bsYNOmTaxfPx4udw+MMjBS55S5FW644Qa+853vkGUZ27dv54ILLuDKq65pXzYO8+X/AwMDdHV1UU8ySnF40OdA63ucWUdXVxf79u0jCs34BXz+PWgFrNb1lR4PXa3n/hlnnMEpp5zCI9v6efazn029Xmf79u3cdtttZFnGO97xjnaH9HvvvZcsyyuVF198MZVKhYGRGuvWreOWW24BYMHCxTzwwAP85Cc/4fvf/z4f/OAH+fKXv8xXvvKVSffh7kd2cs7qPIS+5CUvIUktUWi47bbbKBaL3HfffUD+sxiGIXv37mXDhg187nOf43Of+xwAY2Nj/OxnP+Oyyy5rH/eeTbtYs3hW+++/+qu/ymWXXUapVOJXf/VX95vL/cUvfpEbb7yRgYEBGo0GxWKx/bUlS5bkoXZbP6tXr2bevHls3LiR7tn5kt2ejvyy3/3ud/ngBz/II9v6uePBbZy3ZgGnnTKXO+64g3/5l3/hiT1DdFcKvOxlL+OOO+5oB9sXvvCF7BupMauzxLp169i2bdukc9s7ONbuNXDuueeycOFCbrv7MS4/ZzlPdvXVV1NtZAxXG1x99dV88IMf3O8yBzNaSyhEAXfeeScveclLMEHII9v6ue6667jhhhvaP8uXXXYZnZ2dPLR1LysXL6a7u5vLL7+cF7/4xbzyla9kxYoVB+3kLIQQQogjNyXBVinFa1/7Wt70pjfxb//2b5O+5pzj6quv5qabbuLiiy8mTVOKxWL7DWPrMoU4PxXvPcaY9ht6YL+9lZ2lyXulJmo0GpRKJV7/+te3/+0Nb3gDS5cuZc6cOWzcuJH//d//5eabb+a9730vDz74IOuWztmvaumcIzDNcNE8J4BLL72UarXKz372M2688Ua+/OUvs2lbH7WGbX8Sv3xBN/UkQyk491nP4YorruCMM87gne9856RgGxjN+WsWcsstt/Cxj32Mm2++mblz5/LpT3+am266qX25VhAZrjbQWu/399YbqUajwYte9CIuuGB8CWu5XJ50nGo9pRAG7es91czd5fPzsU1zusvceuutXHrppe3beclLXsKZZ57ZvmxHRweQV/9+8pOf8K1vfYurrrqKD3/4w+1qHeTLeuv1Ot57ZjUrb43G5AYzURQxUk2Y1Vlqn+ec7hK/cP5KwtCwafu+9h7PgZEaSikuvfRSfvSjH/HGN5/Doh372stQl8ztYl7XWRhjuP/++1l/ygr2jdQoxSEXrl9MZynm1rs389jOwUnn0NnZyYoVK4B8H/lf/MVfcN999zFn8UogDzpa62ZAnfy49XQUWLWol217h1HFbp71rFN473vfy6tf/Wre//738+ILV5Ok4wFs8eLFbN26lavPOoc4Cti6dSuLFi2ilmTtYzuXLy+fOzfvzFosFnHOTf77QfYLd3R08NznPpd3vvOdfPe73530te3bt3P99ddz2223sXr1au6//36uuWY8RLY+EIijA/98tn43xuCcIw4NxuhJlfrf+Z3f4dRTT+VDH/oQURS1tx5MerxLMfN6KvzVX/0V27Zt41vf+haVSoV3vOMdpGnKxKdpI83QWtPd3c3Q0BAUupjVWWo/B9786+eyaXbejOjcNQtYOrervTx8eHiY9evXk6Tjrz8DozUuvvhiNm/eTF9fH6cvn4t1nlULe/nm17/K+vXr6e3tfcrHo9FocOaZZ0563XnTm97UDoatn9mhsck/s957xuoZq9adwbOe9Sxe/vKXs2rVqnZX7pau8vh2i1KpxGgtoTcs0mg0eOUrX8miReMf9PX29tJoNAjDkNe97nXtc3jDG96wXwWzp6NAHI2H/Hnz5rF27Vr+6q/+irvvvnvSz+aDDz7Iu971Lm677TaWLVvG9773Pd7+9re3v37Q50rzqTDxgxxrLUFBE4eGKMhvv/UcCgODaX4Y1XrdbT2GY7WUnoqf9Bi2dJRiguYosVKpBEDf8IE7fjuX73GPAjPp9b11bp3lmCg01Ov7r+apFKP2ZVv3OQoNru4IgqD9mto6h589vJN1S+dw1113cfvtt/PNb36TCy64gG9/+9ucvfIUbvmpVG2FEEKIqaAPfZHD87rXvY4/+ZM/4WUve9mkf69Wq4yOjnLOOeeglOKzn/1s+81Ay+c//3mWzO1ieHiY//mf/+Hiiy+etDw4tZbOzs72csBTl84+6HmcfvrpdHR0sGvXLs477zzOO+881q9fT7lcbu/Hvfrqq/nwhz9MR0cHTzzxBKU43O84X/jCFyjFAd2VAv/93//NJZdcQpJZGqnlLW95C6973euYP38+Z5xxBg9NaKRTikPOWjmfB37+U4qhprvZaXjjxo3tZX8T70sxDtvLcefOnYu1tl1hOVLXXHMNP/jBDzj77LM577zzOPfcc5kzZ87TOhbkSz5Xzqvw93//93z5y1/mTW96U/t2br/9ds4555z27cyePZs0TRkZGeGCCy7gj/7oj3jNa17D3XffPemYixYtYu7cudx0003M6S7zne98h4ceeuiQ5xKHAbXBXdz749u55PSlxM2K296hKsNjDd7ylrfwl3/5lzz26CO85MI1vOzitbjaIDfffDOlUonXve51/PZv/zbG1rnu0nW86FmreODnP+X+++9j+fyep7zt7373u6RpyqJFiw5rRvKF6xYzq+BZ0Ftm2bx8P+K3vvUt1qxZA+Tdp7/x5f+mYPJwde211/LpT3+aKDQMDg7yla98heuuu47dE+aG3vHgNhatWMu1v/xqrv3lV7N23TrOOufc9t875yzmxxsPPoLkXe96F+9///v3q6Dv3LmTrq4uVq1ahVKqvay0pVqt8vWvf52lc7vYvHkzGzZs4Kyzzmov9W39nF5yySV8/vOfZ9HsTqrV6qTls1u3buW8884jiiK2bNnC7bff3v5aV1cX/f39FJs/g1u3buXMM8+kUqkwMjKy3zJcoH3b559/Pvfffz9aKYbG6u3nwKObHuYlF67h5ZeshfoQX/va11h/Sv5zcN9993H++eczMKGz8+YdAyxbtozLL7+c3/u932NBT5GXX7KW0aF93HDDDVx//fXty95333089NBDLJ3bxf/+7//S1dXFggUL2j97K1eubL/uLF++fL+K55Pdf9/P8VmD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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "lat = np.array(sample_df[\"LAT\"])\n", "lon = np.array(sample_df[\"LON\"])\n", "\n", "fig, ax = plt.subplots(figsize=(12, 6))\n", "ax.set_ylim(37.00, 37.24)\n", "ax.set_xlim(-76.00, -74.74)\n", "ax.set_axis_off()\n", "ctx.add_basemap(ax, crs=\"EPSG:4326\")\n", "line, = ax.plot(lon, lat, lw=2)\n", "\n", "\n", "def animate(n, lat, lon, line):\n", " line.set_data(lon[:n], lat[:n])\n", " return line,\n", "\n", "\n", "anim = animation.FuncAnimation(fig, animate, len(lat), fargs=(lat, lon, line) , interval=20, blit=True)\n", "anim.save('output/basic_animation.gif')" ] } ], "metadata": { "kernelspec": { "display_name": "ox", "language": "python", "name": "ox" }, "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.11.4" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 5 }