{ "nbformat": 4, "nbformat_minor": 0, "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" }, "colab": { "name": "05 - Clustering #bigdive.ipynb", "provenance": [] } }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "0S5AWYIRV3bk", "colab_type": "text" }, "source": [ "# Clustering\n", "based on scipy2018-geospatial\n", "\n", "\n", "## goals of the tutorial\n", "- cluster of point\n", "- cluster of polygons\n", "\n", "\n", "### requirements\n", "- python knowledge\n", "- geopandas\n", "\n", "### status \n", "*\"Teamwork divides the tasks and multiplies the success\"*\n", "\n", "---" ] }, { "cell_type": "code", "metadata": { "id": "kVm1kGHHY_Yp", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 268 }, "outputId": "7e01cba9-b51d-4399-caed-4a6d07d362f4" }, "source": [ "!pip install geopandas" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ "Requirement already satisfied: geopandas in /usr/local/lib/python3.6/dist-packages (0.8.1)\n", "Requirement already satisfied: fiona in /usr/local/lib/python3.6/dist-packages (from geopandas) (1.8.17)\n", "Requirement already satisfied: pyproj>=2.2.0 in /usr/local/lib/python3.6/dist-packages (from geopandas) (2.6.1.post1)\n", "Requirement already satisfied: pandas>=0.23.0 in /usr/local/lib/python3.6/dist-packages (from geopandas) (1.0.5)\n", "Requirement already satisfied: shapely in /usr/local/lib/python3.6/dist-packages (from geopandas) (1.7.1)\n", "Requirement already satisfied: cligj>=0.5 in /usr/local/lib/python3.6/dist-packages (from fiona->geopandas) (0.5.0)\n", "Requirement already satisfied: attrs>=17 in /usr/local/lib/python3.6/dist-packages (from fiona->geopandas) (20.2.0)\n", "Requirement already satisfied: click<8,>=4.0 in /usr/local/lib/python3.6/dist-packages (from fiona->geopandas) (7.1.2)\n", "Requirement already satisfied: munch in /usr/local/lib/python3.6/dist-packages (from fiona->geopandas) (2.5.0)\n", "Requirement already satisfied: click-plugins>=1.0 in /usr/local/lib/python3.6/dist-packages (from fiona->geopandas) (1.1.1)\n", "Requirement already satisfied: six>=1.7 in /usr/local/lib/python3.6/dist-packages (from fiona->geopandas) (1.15.0)\n", "Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.6/dist-packages (from pandas>=0.23.0->geopandas) (2018.9)\n", "Requirement already satisfied: python-dateutil>=2.6.1 in /usr/local/lib/python3.6/dist-packages (from pandas>=0.23.0->geopandas) (2.8.1)\n", "Requirement already satisfied: numpy>=1.13.3 in /usr/local/lib/python3.6/dist-packages (from pandas>=0.23.0->geopandas) (1.18.5)\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "MEu0WwUjV3bn", "colab_type": "code", "colab": {} }, "source": [ "import os\n", "import numpy as np\n", "import geopandas as gpd\n", "import shapely.geometry as shp\n", "import matplotlib.pyplot as plt\n", "import sklearn.metrics as skm\n" ], "execution_count": 36, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "tgNSLvfSYlUK", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 214 }, "outputId": "d57b38e4-19fa-4035-d7f0-dc42beb77beb" }, "source": [ "!wget https://raw.githubusercontent.com/napo/geospatial_bigdive/master/data/libraries_turin.geojson" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ "--2020-09-16 10:20:42-- https://raw.githubusercontent.com/napo/geospatial_bigdive/master/data/libraries_turin.geojson\n", "Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.0.133, 151.101.64.133, 151.101.128.133, ...\n", "Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.0.133|:443... connected.\n", "HTTP request sent, awaiting response... 200 OK\n", "Length: 113671 (111K) [text/plain]\n", "Saving to: ‘libraries_turin.geojson.4’\n", "\n", "libraries_turin.geo 100%[===================>] 111.01K --.-KB/s in 0.04s \n", "\n", "2020-09-16 10:20:42 (2.89 MB/s) - ‘libraries_turin.geojson.4’ saved [113671/113671]\n", "\n" ], "name": "stdout" } ] }, { "cell_type": "markdown", "metadata": { "id": "TzNbOX25V3b1", "colab_type": "text" }, "source": [ "# Point Clustering" ] }, { "cell_type": "code", "metadata": { "id": "AtHKI4pHV3b5", "colab_type": "code", "colab": {} }, "source": [ "libraries_turin = gpd.read_file(\"libraries_turin.geojson\")\n", "libraries_turin = libraries_turin.to_crs(epsg=32632)" ], "execution_count": 37, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "DG7l1dv7V3cC", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 294 }, "outputId": "20c6b726-1594-4f98-be81-a221c7e61b6b" }, "source": [ "libraries_turin.plot('cap',cmap='plasma')" ], "execution_count": 38, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": { "tags": [] }, "execution_count": 38 }, { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "tags": [], "needs_background": "light" } } ] }, { "cell_type": "code", "metadata": { "id": "C1_HRQXiV3cO", "colab_type": "code", "colab": {} }, "source": [ "import sklearn.cluster as skc" ], "execution_count": 39, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "evBHlY8UV3cW", "colab_type": "code", "colab": {} }, "source": [ "coordinates = libraries_turin['geometry'].apply(lambda p: np.hstack(p.xy)).values\n", "coordinates = np.vstack(coordinates)" ], "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "4iTTv6zuV3cj", "colab_type": "text" }, "source": [ "Like other scikit estimators, they are split into an initialization/configuration call and a fit call.\n", "\n", "Here, we'll use a local density-based scan clusterer, called DBSCAN. It works by fitting clusters of nearby points using the eps distance, which is the furthest distance at which points are considered to be in each other's clusters." ] }, { "cell_type": "code", "metadata": { "id": "nhn325EDV3cl", "colab_type": "code", "colab": {} }, "source": [ "clusterer = skc.DBSCAN(eps=1000).fit(coordinates)" ], "execution_count": 40, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "BC4Xj9oLV3ct", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "outputId": "a76f75b1-fdd1-41ed-dcbc-cbc16f1784a8" }, "source": [ "clusterer.components_" ], "execution_count": 41, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([[ 393686.21266102, 4987739.05695614],\n", " [ 398006.13582993, 4991047.62874006],\n", " [ 395600.71783648, 4992115.00502201],\n", " [ 396496.66746751, 4990776.1488995 ],\n", " [ 395687.78371629, 4991938.45993556],\n", " [ 395826.38018856, 4992252.14571934],\n", " [ 395231.86776573, 4991026.30287137],\n", " [ 392852.68398115, 4992239.39093971],\n", " [ 396579.9582435 , 4991755.95514291],\n", " [ 397446.123465 , 4990409.70795623],\n", " [ 396654.59095015, 4991550.9979057 ],\n", " [ 397446.123465 , 4990409.70795623],\n", " [ 395794.99853451, 4992350.3545602 ],\n", " [ 396547.4836093 , 4991242.81754963],\n", " [ 396915.24747663, 4991182.37469399],\n", " [ 396536.88599801, 4991401.43272043],\n", " [ 394493.49808673, 4991556.43669894],\n", " [ 397182.15697849, 4991461.74432875],\n", " [ 396678.83978574, 4991681.35893972],\n", " [ 396869.4827375 , 4991372.64894134],\n", " [ 396446.05794338, 4990890.42154212],\n", " [ 396404.31413481, 4991352.42865466],\n", " [ 396863.21122342, 4991306.76876053],\n", " [ 396438.17608447, 4991890.62276105],\n", " [ 392803.73482336, 4991369.19932552],\n", " [ 396465.60262229, 4991434.0039897 ],\n", " [ 394563.33910737, 4988202.85982692],\n", " [ 395416.00125735, 4988003.95062091],\n", " [ 396575.04656965, 4991074.67088532],\n", " [ 395214.24413648, 4990975.07812952],\n", " [ 395516.20206966, 4992011.39945768],\n", " [ 397644.90281642, 4991990.53313803],\n", " [ 396337.94172029, 4989821.85918624],\n", " [ 395256.77892733, 4990790.36630735],\n", " [ 397058.00412618, 4991009.91184207],\n", " [ 396350.05088481, 4990466.06779629],\n", " [ 395645.72241833, 4992264.2041528 ],\n", " [ 393891.65678265, 4988131.69614645],\n", " [ 396655.57092967, 4991552.32927325],\n", " [ 394597.89366868, 4989965.57432885],\n", " [ 395672.77791664, 4992237.72263465],\n", " [ 394734.11248161, 4991658.19656529],\n", " [ 393740.87903748, 4987947.26048586],\n", " [ 396785.2384284 , 4991457.32955286],\n", " [ 395467.79111415, 4991861.92811084],\n", " [ 396640.94178412, 4991633.7577666 ],\n", " [ 395542.11105192, 4990801.66060734],\n", " [ 393719.3013563 , 4991329.83376031],\n", " [ 395793.62418136, 4987515.07321384],\n", " [ 394239.97950703, 4992182.18704746],\n", " [ 395890.34748732, 4990903.11191255],\n", " [ 396330.27017027, 4991501.79809097],\n", " [ 395653.26676506, 4992259.70514409],\n", " [ 396103.59899679, 4988749.34377508],\n", " [ 393992.5575365 , 4987181.91980819],\n", " [ 396003.39764496, 4991381.5406005 ],\n", " [ 397589.83239338, 4991096.03457842],\n", " [ 396100.13933083, 4989472.72126752],\n", " [ 396122.00434114, 4989427.26215866],\n", " [ 396130.25672586, 4989529.10049346],\n", " [ 396120.59732041, 4989424.54047965],\n", " [ 397319.27533111, 4991192.02826518],\n", " [ 396719.46702346, 4991020.76924135],\n", " [ 396603.83651352, 4990068.67677245],\n", " [ 397181.42194045, 4991324.31726194],\n", " [ 397191.53954566, 4991336.15225444],\n", " [ 397191.53954566, 4991336.15225444],\n", " [ 396529.21204613, 4991312.92969857],\n", " [ 395581.03980382, 4989332.43937819],\n", " [ 397319.27533111, 4991192.02826518],\n", " [ 395581.03980382, 4989332.43937819],\n", " [ 395581.03980382, 4989332.43937819],\n", " [ 396893.89432728, 4991473.92650261],\n", " [ 397734.85034524, 4991372.24257096],\n", " [ 397319.27533111, 4991192.02826518],\n", " [ 396200.98443607, 4989622.22059826],\n", " [ 397191.53954566, 4991336.15225444],\n", " [ 395972.51857362, 4988630.66298086],\n", " [ 395048.11166138, 4990813.65716499],\n", " [ 396529.21204613, 4991312.92969857],\n", " [ 394693.1786882 , 4990752.83145005],\n", " [ 396440.88186771, 4989767.00470354],\n", " [ 394693.1786882 , 4990752.83145005],\n", " [ 396440.88186771, 4989767.00470354],\n", " [ 394693.1786882 , 4990752.83145005],\n", " [ 394693.1786882 , 4990752.83145005],\n", " [ 394693.1786882 , 4990752.83145005],\n", " [ 394693.1786882 , 4990752.83145005],\n", " [ 394693.1786882 , 4990752.83145005],\n", " [ 394693.1786882 , 4990752.83145005],\n", " [ 394693.1786882 , 4990752.83145005],\n", " [ 394693.1786882 , 4990752.83145005],\n", " [ 394693.1786882 , 4990752.83145005],\n", " [ 394693.1786882 , 4990752.83145005],\n", " [ 396440.88186771, 4989767.00470354],\n", " [ 394693.1786882 , 4990752.83145005],\n", " [ 396482.53012919, 4991898.01331931],\n", " [ 395495.98248751, 4987473.57391303],\n", " [ 396441.69975945, 4991388.66748912],\n", " [ 396719.90181719, 4991020.87331034],\n", " [ 396766.4906643 , 4990973.39318317],\n", " [ 395999.33826724, 4991861.11563008],\n", " [ 396013.52831709, 4991842.89387772],\n", " [ 394841.06090859, 4989792.83462849],\n", " [ 395669.98080966, 4992247.45002616],\n", " [ 395833.26073237, 4992740.59919017],\n", " [ 395495.98248751, 4987473.57391303],\n", " [ 395254.89730521, 4986773.04144043],\n", " [ 395918.67328739, 4991260.26091013],\n", " [ 396043.941675 , 4988870.05676279],\n", " [ 395645.73888864, 4992264.24833035],\n", " [ 394048.83488141, 4987087.13399429],\n", " [ 396054.95372395, 4992200.47428118],\n", " [ 394027.84660445, 4990292.03981794],\n", " [ 396495.03169036, 4991468.12786244],\n", " [ 396482.53012919, 4991898.01331931],\n", " [ 396199.07286235, 4989633.97465925],\n", " [ 394693.1786882 , 4990752.83145005],\n", " [ 393641.95769786, 4986932.52757974],\n", " [ 395681.68759749, 4992278.64924769],\n", " [ 393845.82169325, 4988229.74361415],\n", " [ 396468.40138945, 4991947.20160248],\n", " [ 396950.74129352, 4990946.00878078],\n", " [ 395756.172773 , 4988384.84827036],\n", " [ 393686.21266102, 4987739.05695614],\n", " [ 396926.3735749 , 4991079.16635258],\n", " [ 394955.59114417, 4991453.30382661],\n", " [ 396370.43633796, 4990293.43688099],\n", " [ 395994.53265843, 4992090.93130832],\n", " [ 397833.52521724, 4989764.50644922],\n", " [ 397191.53954566, 4991336.15225444],\n", " [ 396519.82806931, 4990851.06503219],\n", " [ 394762.60471322, 4992825.24310944],\n", " [ 393788.4954706 , 4991713.83110432],\n", " [ 394762.60471322, 4992825.24310944],\n", " [ 395283.72368111, 4989841.72739395],\n", " [ 395756.172773 , 4988384.84827036],\n", " [ 395826.38018856, 4992252.14571934],\n", " [ 396156.79315647, 4991729.59376336],\n", " [ 395412.49954078, 4989251.79728875],\n", " [ 393150.09888768, 4990741.79801617],\n", " [ 398427.703018 , 4990555.70462883],\n", " [ 393889.92929038, 4991300.29835019],\n", " [ 396161.06559897, 4989944.10145904],\n", " [ 396849.35950655, 4990925.92594675],\n", " [ 394696.67900742, 4993306.37957581],\n", " [ 398209.94779831, 4990040.0419535 ],\n", " [ 397028.64553174, 4991543.69544677],\n", " [ 396284.61631281, 4990041.02188 ],\n", " [ 397369.06990399, 4990979.20269375],\n", " [ 395681.68759749, 4992278.64924769],\n", " [ 397791.11633928, 4992066.84492765],\n", " [ 396391.65514885, 4992837.15072391],\n", " [ 393223.05462528, 4991242.16954723],\n", " [ 396799.00810383, 4991518.43236911],\n", " [ 395961.4567204 , 4991840.38573213],\n", " [ 395242.24895678, 4988243.21748792],\n", " [ 397775.32323241, 4990711.19016953],\n", " [ 397152.96050313, 4990015.81058439],\n", " [ 398375.11815105, 4989994.57035542],\n", " [ 394249.74050713, 4992199.72693934],\n", " [ 394024.90421876, 4992833.72294903],\n", " [ 397350.31937587, 4991128.69104069],\n", " [ 397817.14908256, 4990617.02530772]])" ] }, "metadata": { "tags": [] }, "execution_count": 41 } ] }, { "cell_type": "code", "metadata": { "id": "i9LW54ELV3c1", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 250 }, "outputId": "9dd9ecdf-f089-4e71-9a3c-734395b63e5a" }, "source": [ "clusterer.core_sample_indices_" ], "execution_count": 42, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([ 0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 15,\n", " 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29,\n", " 30, 31, 32, 34, 36, 39, 40, 41, 42, 43, 44, 45, 46,\n", " 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58, 59, 60,\n", " 61, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74,\n", " 75, 76, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,\n", " 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,\n", " 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,\n", " 115, 117, 121, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,\n", " 133, 135, 138, 139, 142, 143, 144, 145, 146, 147, 148, 149, 151,\n", " 152, 153, 154, 155, 158, 159, 162, 164, 165, 166, 167, 168, 171,\n", " 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 184, 185, 186,\n", " 187, 188, 189, 190, 191, 192, 194, 195])" ] }, "metadata": { "tags": [] }, "execution_count": 42 } ] }, { "cell_type": "code", "metadata": { "id": "eTcyDhKcV3c9", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 232 }, "outputId": "511a7d5e-462e-47bc-fcda-93fa07166d42" }, "source": [ "clusterer.labels_" ], "execution_count": 43, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0,\n", " 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1,\n", " 0, -1, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1,\n", " 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0,\n", " -1, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0,\n", " 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1,\n", " -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0])" ] }, "metadata": { "tags": [] }, "execution_count": 43 } ] }, { "cell_type": "code", "metadata": { "id": "Js4u-YGCV3dF", "colab_type": "code", "colab": {} }, "source": [ "nclusters = clusterer.p" ], "execution_count": 44, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "8giTNTfFV3dO", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 294 }, "outputId": "240b0c73-2b43-47e5-a94f-74073fbfee65" }, "source": [ "libraries_turin.assign(labels=clusterer.labels_).plot('labels', k=nclusters, cmap='plasma')" ], "execution_count": 45, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": { "tags": [] }, "execution_count": 45 }, { "output_type": "display_data", "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAR4AAAEDCAYAAADjgWuTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO2dd3gc1dWH3zMzu6tVscEY22CDDZjeiUMvpphu09sHBDC9hCR0AiFAQggdQgiBgOmdQOjV9I7pptjGppliG1yklbRlZs73x4yslXZX0srSrsp9n2cf7d65c++Z0c5vbz1HVBWDwWAoJVa5DTAYDP0PIzwGg6HkGOExGAwlxwiPwWAoOUZ4DAZDyTHCYzAYSk6vEx4RmSQic0Vkagfz7y8in4nIpyJyd3fbZzAY2kd62zoeEdkaSAC3q+o67eRdFbgf2E5VF4jIEFWdWwo7DQZDYXpdi0dVXwHmZ6eJyCoi8rSIvCcir4rIGuGho4HrVHVBeK4RHYOhB9DrhKcANwK/VdVfAacB/wrTVwNWE5HXReQtEdm5bBYaDIbFOOU2YEkRkWpgc+ABEWlKjoV/HWBVYCwwAnhFRNZV1YWlttNgMDTT64WHoNW2UFU3yHNsNvC2qmaAr0RkOoEQvVtKAw0GQ0t6fVdLVWsJRGU/AAlYPzz8P4LWDiIymKDrNascdhoMhmZ6nfCIyD3Am8DqIjJbRI4EDgaOFJGPgE+BPcLszwC/iMhnwIvA6ar6SznsNhgMzfS66XSDwdD76XUtHoPB0PvpVYPLgwcP1lGjRpXbDIPB0EHee++9n1V12dbpvUp4Ro0axZQpU8pthsFg6CAi8k2+dNPVMhgMJccIj8FgKDlGeAwGQ8kxwmMwGEqOER6DwdAh0mmPt9+czccfzWFJ1//1qlktg8FQHh57ZBrHH/MEquD7yjKDK3ngoX1Zc62cmfIOYVo8BoOhTb78cj5HHfEYtbVp6urS1Ndn+PabRey+8z1kMl6nyjTCYzAY2uT2Wz/Cdf2c9GTS5YXJX3eqTCM8BoOhTebOqSeTyRUe31d++aWhU2Ua4TEYDG0ybsdVqKqK5KR7ns8WW67QqTKN8BgMhjaZsOdqrLHmYOLx5rmoyqoIh0/cgJEjl+pUmWZWy2AwtEkkYvPUcwdz+y0fcf/9n1FdFeHIozdk9wmrdbrMXuWPZ8yYMWo2iRoMvQcReU9Vx7RON10tg8FQcozwGAyGkmOEx2AwlBwjPAaDoeQY4TEYDCXHCI/BYCg5RngMBkPJMcJjMBhKjhEeg8FQcjosPCJii8gHIvJ4nmMjRWSyiHwsIi+JyIisY5eIyNTwdUBW+vYi8r6IfCgir4nI6CW/HIPB0BsopsXzO+DzAscuB25X1fWAC4GLAURkN2AjYANgE+A0ERkQnnM9cLCqbgDcDZxbvPkGQ+d48IHP2HCdG1h26cvY7Nc38/xzs8ptUr+iQ8ITtmB2A24qkGUt4IXw/YvAHlnpr6iqq6r1wMfAzuExBZpEaCDwQ3GmGwyd4647PubE455k5swFpJIen06dx8EHPMTk578qt2n9ho62eK4GzgByvQEFfATsHb7fC6gRkWXC9J1FpFJEBgPbAk0OPI4CnhSR2cChwN/zFSwix4jIFBGZMm/evA6aazDkR1X5859eprHBbZHe2Ohy3jkvlsmq/ke7wiMiuwNzVfW9NrKdBmwjIh8A2wDfA56qPgs8CbwB3AO8CTQ5af0DsKuqjgBuAa7MV7Cq3qiqY1R1zLLLds6xtMHQRGOjyy8/5/eaN2P6/BJb03/pSItnC2CCiHwN3AtsJyJ3ZmdQ1R9UdW9V3RA4J0xbGP69SFU3UNVxgADTRWRZYH1VfTss4j5g8y65IoOhDeJxh5oBsbzHVlhxQN50Q9fTrvCo6tmqOkJVRwEHAi+o6iHZeURksIg0lXU2MClMt8MuFyKyHrAe8CywABgoIk2ehMZReODaYOgyRIQzztqcysqWrjzjcYfzzt+6TFb1PzrtgVBELgSmqOqjwFjgYhFR4BXgxDBbBHhVRABqgUNU1Q3PPxr4r4j4BEI0sbO2GAzFcOJvf42IcOnFr7NoUYohQ6s4/y/bsMdea5TbtH6D8UBo6LeoKqmURyxmE/44GrqYQh4Ijc9lQ79FRKioMI9AOTBbJgwGQ8kxwmMwGEqOER6DwVByjPAYDIaSY4THYDCUHCM8BoOh5BjhMRgMJccIj8FgKDlGeAwGQ8kxwmMwGEqOER6DwVByjPAYDIaSY4THYDCUHCM8BoOh5BjhMRgMJccIj8FgKDlGeAwGQ8kxwmMwGEpOOWOni4hcJCLTReRzETl5yS/HYDD0BopxONsUOz1f8KGm2Om3ich2BLHTD20VOz0GvCQiT6lqLXA4QVTRNVTVF5EhS3AdBoOhF1HO2OnHAxeqqg+gqnOLN99gMPRGyhk7fRXggDAu+lMismq+gk3sdIOh71HO2OkxIBnG3PkPYfTR1pjY6QZD36MssdPD02YDD4XvHyYIb2wwGPoB5YqdDvA/gq4XBK2k6RgMhn5B2WKnA38H7hKRPwAJ4KjO2mIwGHoXJna6oUcwd049P/xQx+hVB1FdHS2Y7913fuAvF7zCp1PnsvLKS3POeVsxdttRJbPTUBwmdrqhR9LQkOHoiY/x7NMziUZtXNfnlNM25YyztyBsKS/mzde/Y8/x99HYGDSa581t4IB9HuSmW8Yzfo/Vy2G+oZOYLROGsvK7k57m2Wdmkkp51NWlaWx0ueqKt3ngvs9y8v7xrBcWi04TjY0uZ50xmd7UcjcY4TGUkUQizf8e+oJU0muR3tCQ4arL38rJ/+nU/Ou4fvi+jmTSzXvM0DMxwmMoG7WLUjndqSbmzqvPSRsytCpv3srKCLGYGTXoTRjhMZSNYctVU1OTO5BsWcJWW62Yk376mZtTWdlSYCorHU46eWMsK7+AGXomRngMZcOyhMuvHkc8S0wcR6iqjnDu+Vvn5P/N4etx1jlbUlMTJV7pUFnpcMxxv+LMP25RSrMNXYCZTjeUnbfemM0Vl7/JV7MWsvkWK3DqGZsycuRSBfOn0x5z59QzeNlKKirK08WaN7ee+fMbWXmVpYlE7LLY0BsoNJ1uhMdgKIIFC5IcefijvPryNzgRC8exuOyKcRz4f+uU27QeSSHhMV2tHsjTT33J5htPYrnBV7Dlprfw3LOzWhzPZDwef3Q6//zHO7zy8jdmKrmEHHLQQ7zy0tekUh71iQyLFqb43UlP89Ybs8ttWq/CTAX0MB793zSOnvjY4vUqH380h0MOfIhb79yTXXYdzezvahm33R0sWpginfaIRC3WXHMwjz11EFVVhVf89lZ8X/ng/Z9IJjP8aszyZetaAXz7zSLeffsH0umW3mEaG12uvuot7t183zJZ1vswLZ4exrl/fDHvIrk/nR34WTv+mCf46ccEiUSadDr41f3kk7n8/aLXy2FutzL1k7msvfq/GL/LPey/z4OssuI/eOThL8pmz08/JYhG84/nzP6utsTW9G6M8PQgVJWvv1qY99jMmQtIJNK8/vp3eF7LrlUq6XHPXVNLYWLJSKc9xu9yD9/PriORSFNXm6auLs0xRz7OjBnzl6jsBQuSTPvi56IXHa651mAyGS8nPRq1zH6xIjHC04MQkYKL5IYtVx2M5RQYzvG8/M4hVZUnHpvO3hPuY+cd7uLm/3xAKtXzV/lOfv4r0unch9x1fe647aNOlZlMuhw98TFWW+latt3qdlZe4RquveadDp9fUxPjjLO3oLIysjjNcSxqBsT47e827pRN/RUjPD2MM8/evMUXG4JFcmf9cQtqamJssNEwWi/2jUYt9txnjbzlnXX68xx5xGM8/9xXvPH6d5xz1gvsvvM9uG4hL7Y9g/nzG/H9XJXNZHzmzWnoVJl/OPkZHnl4GqmURyKRJpHIcNGFr/LwfzvefTv19M34z6Td2XjT4ay00lIcceQGvP7WRIYOq+6UTf0VM53ew1BVrr9uCn//2+vUJ9JUV0c557ytOPrYjRARZkz/hR3G3kEq7dFQn6G6OsLQYdVMfvk3DBoUb1HW118vZOMN/0Oy1V6oqqoI19+4G3vunV+segLffrOIX61/I6lUru3/umE39iogtIWor08zasQ1OfvCANZdbwivvz1xiew15Me4xegliAgnnPRrjjthDIlQeLK3A6y62jJMnXY8D97/ObNmLmCDDYcxfo/V8g56vv7qt9i2RbOb64D6+gzPPjOzRwvPiiMHcvSxGzHp5g9pqM8AwZ6sddYdwvg9Viu6vIULklgF9oXN+Sl3X5ihezHC00OxLGHAgFjeYzU1MY44coN2yxg0KJ53D1MkYhUcS+pJXPT37dhq6xW5+T8fUN+QYb/91+LgQ9fFcYofIRi2XDXxykjOjKFlCZtuNryrTDZ0ECM8fZjtx62ctyXkOBaHHrZ+GSwqDhFhl91WZZfd8kY+Kgrbtvj7pdvzu98+TWODG6YJ8XiE8y7YZonLNxRH2UIYZx3/h4gkOn8JhkJEozaPPXUQI0bUUFUdoWZAlJqaKP+ZNJ5VVlm63OaVnAP/bx3ue3Bfttp6RVYcOZB99luTl984nNVWX6bcpvU7yhnCGBEZA/S/J6CErLPuEKZOO4EPP/iJVNJlozHLdch3jaoHpBGJt5u3NzF221FmzU0PoGwhjEXEBi4jiFBq6EYsS9joV8ux2RYrtCs6qika3fOozaxDbWY96tLjcP1cb4AGw5JQzhDGJwGPquqPnbLc0C00uKeS9h8AUoCHz0zq3SPx/PJtVTD0PcoSwlhElgf2A67tQP0mdnqJ8HUurk4mEJ1sUqS8G8phkqGPUq4QxhsCo4Evw3IrReTLfJWb2Omlw9fvgHw73H08ZpTanD7JjBnzOeqIR1lvzesZv8s9vPLyN+U2qSy0O8qoqmcThCVGRMYCp+ULYQzMV1WfViGMgaVU9ZfsEMZhNNFhWecnVHV011ySobNYsjKQznPExpGeP/3e05n2xc9su9XtNDZm8Dzl668X8c473/PPf+3CfgesXW7zSkqn92qJyIUiMiH8OBaYJiLTgaHARWF6Uwjjz4AbaRnC2NDDsGRpotZ+QOuZrApi9rHlMKlPccGfX6a+Pt3Cu0Bjg8uZp0/Ouy+tL1PUAkJVfQl4KXx/Xlb6g8CDefInCWa22ivX7LDrIVTY5yOsQNqfhFKLLb8ibv8RS3KjPnQU1UX4/ILFCET6nrOyjvLWm9+Tb2tkoi7NnJ8SLLd8TemNKhNm5bKhBSIWFc7RVHA0vv6M6o9Y0rktBaqNNLpnkdFnCL5qFhX2mcTsg7vU5my++WYhV1/5Nm+9MZvRqw7i96dsyq/GLNdt9RXD0KFV/Dwvd2e9ogxcqqIMFpUP4xbDkINqivrMydRltiLhHkxtZhOS7uVF+3ZucM8ko88SjBs1AAmS3t/I+C+0c2bbzPkpwXFHP86Ky13N6JHXcsF5L5FMusyYMZ/NN57EbZM+4tOp83j0f9PYdce7eOrJvPMWJee0M3JdnlRUOOx/wNo56X0d0+Ix5NDonY+rzxFMqwdT6yn/FkSGE7MP6lAZqotwF4tOi9JJedcTsbbrlG2JRJpttryNuXPqF/sUuu7aKbw35UdqBsSoT2QWj5eoBm5jTzn5GXbeZZWCUUtLxT77rcl33y3ikr+9joiQcT322Gt1rrh6x7LaVQ6M8BhaoJoi4/+P3LU8jaS8GzssPD7zCb5eubNkvv7Uafvuv/dTFi5MtnBklky6vPP29ziOlXeQ9uefG/h5XgPLDin/jvzfn7Ipx50whq+/WsjQYdUsvXT/6mI1YYTH0AKlkUIL1JUFHS7HYjj5e/IWjuT4heowU975YbF/npYIFRURamvzLQeA6jyhkstFRYXDGmsOLrcZZcWM8RhaIAxEyPdQCI78quPlSJQK+yxaTs3bQCUx53edtm/1NZchHs/9vbQs4YCD1so7hrL3vmsSj/evMZSejhEeQwtEhLjzF6CCYKE5NAlGhXNWUWXF7P+j0vkntoxBGE5ExlMdeRRbRnXavkMOXS8nZLDjWAwfUcOFF23LscdvREWFQ82AKLEKmx12XImr/rFTp+szdA/G53I/xPXfD8dxPCLWeGzZJGfg1fU/IuldhacfAnGishcx+zQsq2t+q1z/HdL+/ag2ErXH48g4RGw8/3PS/t34Op+INY6ItWvO2p9Pp87lhGOf5JOP5yIC249bieuu33XxGM7ChUm+nDGf4cNr+tXamJ6IiZ3ex1FNkPGfRVmII5thW2vmzdfoXkbavxVIhikVRK29w1ZOM2nvGRq941udXUON8xqW1f7DrKr4OhWfn7FlPSxpdraVdK8i5d8U2qBAZWCzjCPlnw9kCPxEV2LLaKqc+xDJdQObSKRxHKus0UUNbWOcvfdhXP896t0jCAaFM4BNxNqNuH1pi5aMp7NI+7fQLDoAjaT9h4j6+2Nb6zaneifnqamOBvdkqqO3tGmPrz9RnzkMn+8JevMZYtaRxOxTUX4g5d9Iy1mzBlx9A1dfpeUsWAOeziDtP5R3Nq26uucMGBuKw4zx9HJUPRrcY4EEwSK9DJAk4z+Fq0+1yOv6L5J/xipFxp+cle/9sJxcPN5o16YG9zh8ZtG0aBBSpPxbcPUZXP818n/tGskfrbCRjJ/jbdfQyzHC08vx9EM0Z80NQAMp7/5WaRXk/5fbrVycdr777et3eDqd1iF1gnVAtwDVBW0oVK/k9bZr6M0Y4emlqDaS8V/C1Q/ayNXy4Y9YOxfIZxGxds/6tCGBY4FcbDZtx646AhHJd2xRGyuWI+R3vx3v1r1dhvJghKcXkvaepTbzaxrck0l51wD5AtLFiVp7t0ixZBni9lUELZ+q8BWjwr6oxUZQy7KI21fmKbOKSqdtp5GWrEp+4YkRsXZEJE6VM4kgZkB1+Kqgwv4L1c4dCMu2sC1mHYtjbdlmnYbeh5nV6mX4+hN1me1oOUDcRJRgcLYSRzam0rkRkdz5A9U6Mv7LgIdjbYMlS+Wvy59D0rsMnx9wZEui1jFYVvvzESn3DpL+hTS3uCIIQ6mJPIbIwNCGNK6+CaRwZDNEasJ0F0/fCl1y/BpLjNfJrsL3lccemca993xKxLE45LD1GLfjyt26h83MavUR0t6j5I6fAMRxZFssWZGItSW2bFbwCyVSQ9TePe+xbCxrKJXW5R22LZOZTYPuBtS1OuLhyE6LRSewIUpEcgPpiTg4Ylo4XY2q8puDH2byc19RH245ee7ZWRx86LpcflXpN6marlaZ8fU7PH96GMeqbVQ1nOHJN+Pk4VgbEnfOwLE27/CvWNq7j9r09tSmt6DR/RtBFKLicb0vadCtyRUdAJ+M3kxteica3fPx9ftO1WHoPK+9+i3PZ4kOQH19httv/ZhpX/xccnuM8JQJX7+lLr0rdZmdSLh7U5fZlIz/apvnpP0H8Zle4KiFI1sVZUMifTiN3tkoX6H8SNq/ibrMNqg2FlUOQL23f7t5lBmk/bupy+yKp/3TyXm5eP7Zr/JurlWUFyZ/XXJ7jPCUAVWPROagUESSQAPKL8H6F51d8Ly0dwv5nbFDRHbHtlbrsA2uPxWPV3JtYz7JToWyWdjRmoEESbfjXbj28PxPSWQOoza9EXXpncn4T3ZZ2flYuDDJ3Xd9wi03f8js72q7ta6uYuDAGNFo7qC/Y1sMGFD6hZhli50uIneJyLQwfZKI9Jvtw56+iVJL7mI+l5R3T8HzgnPyESVmn1iUDWn/roLHXP+x4sryin3QFU/fBILV1J7/Car5Fyy2haczSKR/Q8KdgKevoizEZzoN7umk3FuLLq8jPPP0TFZf+Z+c+vtnOfuMyWy03g1ccdmb3VJXV7L/gWtj2fm737tP6PgPVldRTIunKXZ6Pppip68HXEgQO51WsdM3AU4TkabVYHcBawDrEvhOOKpo63spvs4j/2K5DNrG+EewBiZ3PkAYiCUr5J7QBkJbTrE67nvf1+9p9P5QVN0AShW16a1JZMaRcPekNrMuKffRDp/v+Z+TyOyFx2vk3stGkv5VnRKztqirS3HYwf+jsdGlPpGhoSFDMulx6cWv8+EHnXduVgpGrDCAm28ZT1V1hJoBUWoGRBm4VIwHHt6PgQNL74ysbLHTVfVJDQHeAUbQT7Ctjcg/M1WJYxUep4nZv0UYBDRtmLSBCuLOJYgU12uOWkcUrsc5ocPlJN3bKLS9om1+QJlNIBoKpEn6vyfjvd2xer1LCbZkFMJFmdsJuwrz7NOz8rYaUimXe++e2qV1dQfj91idWd+ezK137Mmd9+zNzG9OZsutOh89ZEkoZ+x0AMIu1qHA00Xa3muxZSQRawItnWTFsBjeYgVxayxZlprIM8Ssk7FlC6LW/lRHHiFijS3eBms4UesUmn3uhOnsTtTquP+ajD5cdN0B+WfxGryOdRkDdx1t4SN5V0J3nnTGy+vwXjUQn95APB5h3I4rs+12o/KO+ZSKdtfxZMdODyOJ5uM04J8icjjwClmx00Xk1wSx0+cRxk5vde6/CFpFead0ROQY4BiAFVcsjzp3B3H7YhzZmJR/J2gDEWs3YvbEvO4fshEZSIVzPNDaZUVhPP9TGr2/4OmHCAOIWkcQs48l7pxE1N+TtH8n0EjEOhgna4BaVfH5CsHJG1fL05nAog7b0THmk/buJ2q3PUsmDEYL1l1B1NoXkcoutWyHHVbCc3N/eysrI+y1T343JIb8tLtyWUQuJmiRuARr7QcAD7UOY5yVvxr4QlVzuk4icjdwp6o+GX7+M0Ec9b3D8MdtYlYuF4+ns0hkxhPs/m4iTtTal7hzQcHzXH8KDe7vUBYCisUKVEaux5aVF+fJ+M/T4J5CsAO9a4nKEcQjfyp4POU9TNI7l5bXBWATtQ6hwv4j3TFfcdON7/PHM1/AdT08T4nHI+y9zxpcd8OuZY9i0RPpEkdgWbHTd2+Vvjh2uohcRNDaOS9P7PS7gQ1U1RWRo4CJwPbawYUj7QlPJuPxxGMz+OD9n1h5laXZe981qKlpuwXR12lwT1/sbbAlUWoib7XYLuHrt6S8G8j476J81eocQRhETeT1xR4BPf2GRGYX8m/fWFJsKuwL8PVLQIhYE3Cs5vjtqkrK+zcp/58EIwZpHNmZuH0RltW9gWmnT/uFe++ZSrLRZffxq7HZFiOM6BSgy4VHRC4EpqjqoyKyL8FMlhJ0tU5U1ZSIVADvh6fXAsepBp1zEXGBb2he6vqQql7YVv1tCc+CBUl2GHs7P/6QIJFIU1kZoaLC4bkXD2HV1ZbJe05/oC69Cz7T8hypocq5ffHD7OkMEpm9CUSk0CrqGDHrKGL2CYvdaNRnjsPVV2gWHwlfVQSDv+2vyG4fARxs2ZRK5y8tun2qSXx+wGIwzROmhp5Cn3d9etofnuXWSR+STjf32ERgzK+XZ/LLvymViSXB1x8BC0uGtpu3IfM7MvoEufMCUWoir2FJEFGiPjMRV1+mfV88McCm0rmaiLUDqmmS3jVk/HtQGnFkUyqcP2HLysHCPvcA2p59KpYIMetoKpzTFqeoevg6E5GqTodbNnQPhYSnz6xc/u+Dn7cQHQhmGz784Cdqa/M5yup9eP7n1KXHUZfZjrrMNtSld8XTWW2eE7WPJtdNRRRHdl0sOgCuvkvHHIClgAYa3JPxdQ4iUeLO6QyIvs/A6OdURW5ZPA5kyVpEZK889S8JGVL+f3D94Aco479IXWaTcNvJDtSlJ5i9YL2APiM8doHoB0oQc6m3o1pLwj0Qn5kED38an2nUZ/ZHNYWvc0l7j5DxJ6OaDs9JkfT+TO6/2cPTV0PXGAFCftcYbVhEpp0VzmnvNjJ6H13T3comQ717A57OosE9EWU+Qasqhc/n1GcOLjrOu6G09BnhOfDgtYnFWv6y2raw2WYj+oRT8LT/OMHEYjaKkqLBPZW6zNY0eufS4P6BuswmuP7HpL0H8PQLcsMRe+HesOPx9GsAYtZRtFxXBEFLpdDgfBpfC+9T8nQmSf+veWzuKiaTzNyRp3wPn1/w9N1uqtfQFfQZ4Tn7nC1Ze50hVFVHiEQsqqujDB1Wzb//s1u5Tes0rv8eDe4faXBPw/XfJHfqGCCJq88RbB6tBxIoi2hwJ5L2HylwzuIaSHvBnq2ofShR6yACZ2I1BN2xHaly7idYRdGaCiJWrj+dJhrdcym83rRrcLmN/MIm4bYUQ0+lzzgCq6qK8uKrv+GVl7/h4w/nMHLUUuyy2+icqJO9haR7DSn/BoLWihIIgk3+bks+dwdpJK8T+GzcxeMhIhZx51xiehK+foUlw7FkCAARa+9wSr5pkLgSR7bC15/I+C/gyBYtFj6q+mVucTSS9u7F0w+I2odiy8gy2mLIR5+Z1epL+Po9dZkdyO0iBdPKzUJTEb7yuaSoJmYdSsq/lcKtnjgV9jnE7P9r0x5VxdWXSXsPEghfDa4+FNpjAVGqnFtwrDGL89dm1qSQCw9hQ5S2nNQvKU0C7QARqpz/4Fibd2N9hkL0+VmtvoTrv0L+f41isRbCCliMImb9lrh9DrljMwAuUetYotZ+NE2BtySKxRCi1l7t2iMiRKyxVEX+Scw6DFcfJOhGeQQiWE+9exiqyaz8E8htUFs4sgc1kbtw2KfdejuH0NwqdIFGGtwzzGBzD6PPdLX6FnHyC4+DY21J3Dl1cYqqS9p/CE8/IugKBS2QCvvPWNYA4tb5xHQiGe8tfKbh+u8S7MvahZh9VKt4Wm2j6tHgnVngaJKU9yCOtR62rI7oEHK7hUsRty8CYljWgG4YAhLyLQlQ5qP8gGDW+PQUjPD0QCLW9jR65+Y54hC1W7ZQRBzi9iWk/ZvxdBoWqxKzD8K21licx5IViTnFbbCtTZ+B8mBWyr8Q/oryQ4EzlJR/ISm/guaWUGsRSOLxHqIWab+ww7Ouxwe6dsOoYckwwtMDEamhyrmBevc4mn/FXSrs81ts0gRIuleQ8m8i6EpZ+HxBjP2WqP5F6XXIXW18QgeWFwZuTQvTgOs/h1JP9+zvalqvlW2pgy1jsKRrXWQYlgwjPD0Ux9qCAZF3cPU1IBPOHA1skcf1XyPlTyJ7EFqBevcIaiJvEWCJ9coAAB0fSURBVOzR7QxducUhGweoBu0qVxpCEIHUJWjVZPfdgnEtixWodK7qovoMXYURnh6MSJyIjCt4PPDPnDtjpaTw9D0c2bjoOhelu2vQF4Ku4t74+i0Ztzi/zsLyOLI9Gb2fYGmBhzAM5WfI64s6QpVzB7ash4jg6Zek3Ovw9FMsWY0K+wRsa60uuKaO47o+Tz/5JdOn/cLqayzDTruMxnH65/yOEZ5eTeEYWNrprkzHB5vbJkLQImlaNZ4Ju4qjER0RHi/kMrWK4NochBWosP9AxNoNEcHXP+Dpx1gMQhhOnbtJgTISCBFEBNf/mHr3IIKWoY+vs0i4L1LlTMKxCp3ftcybW8+4be9g7twGGhszxOMRhgyp5PmXfsPgZfvf+JMRnl5MxJqA6wWzVC3xcCRn6USHGBi9k0XpldvI0RQmuS2iCIOpdh7G42OCMMVbIjIAX+eQcPeitcvVAIuoHEGF88ewjmiunxvNkHJvwePd0JbCI08ZfQmbtUh6f6HlPfKBRhrd86iJPtPOtXQNp5/yHN9+W4sbejBMJNKkUi5nnPY8k26bUBIbehJGeHoxEWs8af9BPP2YYFzGBiLE7YvadfupWofiFYibPgzIFzXhz8SsBXj6HZDB1SlAHY5sgmNtR8Z/EtX5RKwdiNoTsWQpLLZvUUKjewHKPHKn2oWodSQV9hmh2OTuEfP9+dS5W9LcUmprLCqyOJJGcH9y8fkSVTdvfPmuRFV5/LEZi0WniUzG59FH8vlK6vsY4enFiATjGK4+T8Z/HmFpovb+2DK64Dm+/kiDeyqeTgEEi1WpdC5vMf0+MPoGtelHUX4fptgI7zEg2rajrfZWQAO4Opn82z4sKuyz2vTk1+ieR8cjWthErF2BIPxPMBbUmjhd67KjMAUXMPbTdY1GeHo5IjYR2YlIByJDqLokMvuj/ETTw+/zGQn3AGoiL7do/QyITgBK2QVofzWhR1uB8xyaN7N6VDpXY8myAEStiaT8a2nZ3aogah1aEpelIsLOu47mqSdm4LrNSuM4FrvuVvhHoi9jhKcf4YbRNnNbHBky3v+IOYd3uw3C8ij54qYLPrOwWaWNswcAC/IeiVl/wraGAYRLD5q7mjH7GJQ5pP17aRrUjli7U2Gf0tnLKJorrtqR99/7kUULUyQSaaqroyy1dAWXXVl41rIvY4SnH+Hrd+R3I5HE56uS2CAsVUB4fBKZXXBkB+LOn1u4dVWtx9PPiVoHk/L/ludch6h1MFYrZ3CqtaS9/+HzBRZrU+NMRvkFkRElX1A4bLlqPpx6LI89Mp1p035h9dWXYfweqxGL9c9HsMNXHUaMmAJ8nyfKxEhgErAsMB84RFVnh8cuIYhCCvAXVb0vTF8JuBdYBngPOFSbXOcZFtPQkGHOnHqWW66aiool+5Lasi7594BVYsuGiz95+iUZ73EUn6i1c5etd/H8H/GZ0UYOF1efI5H5gJrIC4jESbk3k/SvIPiqugRfl1+yzgnGuVqLjq/fksjsjdJI0MWySPp/CsbBrMNCh/WlfehjMYd99y/t2qGeSjljp18CXKWqownaz0cWb37fxfeVc89+gZVGXMNmv76ZUcOv4e8XvbZEu6xt2QBb1qfljFEEi2WJWLsAkHRvJJGZQMq/jrT/LxLuviTdy5fsYoC09zQJdyztr4r2UOrI+E+Q8V8h6V9JsL0iEf5dhMX6VNh/JW7/mxrncxwrd6Fkg3te2K1sGtcJxpCUBaT8f9Ponr7E12ToPGWJnS7BiN52sHgX4m3AnsWb33e55OLXuenG92lsdGmoz9DQkOHqK9/mphvfb//kAogIVc4txKxjEIYhDCZqHUhV5GFEYvg6m5R/Fc0hbnwgScq/mYz3MtkNUk+/oiFzCrXpsSQyv8H1C8c893QWjd4pdHxGqgFPvyDl3UTuGiUXny+IWFsTtXfMaelAMIPk6WsUHrBOktGnjVP4MlKu2OnLAAtVtWnAYTbk91kgIseIyBQRmTJvXv9wZ6mqXPePd2loaDke09CQ4YrL3lqiskViVDh/YED0DQZE3yHuXLB4NivjTy5wVooG72hqM2NIujfh6ZckMhPI6GMo3+Lpa9S7E0l7T+Q9O+3dQ8dFB4Ku32qo5psCB4jg6/wWKa7/JvWZY0lk9iHpXk/70+RRPP2yCJsMXUm7wpMdO72NbKcB24jIB8A2ZMVOB54kiJ1+D/ljp7eJqt6oqmNUdcyyyy5bzKm9Ftf1qavL77b053ndtYETgq9DoenlYOd5yr+KhswfyA3W10jSu4B8kahV59Dxf7uNUEnE2h3HGkvzlotsfGxZffGnlHsL9e5RuPocnn5AWv9JMHvVVgjjDJZxiVo2OtLi2QKYICJfEwwGbycid2ZnUNUfVHVvVd0QOCdMWxj+vUhVN1DVcQTf6ukEo4NLSfPo3ggCsTIAkYjNSivnn3VZZ90h3VevtRPtr2hrxOfzvPmUurwL9QIB6dh+JGFDqiMPI1IZOCpjaVqKT+CutcnHs2qCpH8ZLbtkQVcxODefo/oojmyMLaM6ZJOh62lXeFT1bFUdoaqjgAOBF1T1kOw8IjJYRJrKOptghgsRscMuF2Hs9PWAZzUYIX0R2Dc85zDgkS64nj7DJZfvQDzectYlXulw8SXbdVudlgyhIvQQmP+BbaKwOAm5q5sj1m7tlNeMI6sujgZqySCqI08Qs47BknVwZAeqnEnE7IMW5/d0KvlbNimE4VQ5txC1jkUYSZN3xoi1F5XOvzpkj6F76PR8YnbsdGAscLGILI6dHmaLAK+Gq0NrCabZmwYuzgTuFZG/Ah8AN3fWlr7ITjuvwsOPHsDFF73G9Om/sPY6QzjnT1vxqzHLdWu9MXtvItZWpL1nSfmX0hzavhlhJZQfadnKiBGx9kAkV2Bc72eCVRbtY8kqrT4PosI5hQryL/YLAhHmj91lyRAcaxMcaxPinIlqCnCWwE+RoaswUSYMBUl7T9DonU5Lb4EVVNp34embpPzrCFoRGSKyC3Hn7y3C3DSxKL0x5N0r1RphYHRmUTaqKonMLmGE1exxpHgY+aJ4n0SGrqNQlIn+uWzS0CGi9m6IDCDlXYOv32HJmsTtU7GtdYmwITE9Al+/RWQI6ieoy+yFMgOIErUOJ+6cjut9TEdFJ27fVrSNIkJVZBL1mYn4fEcwm+VSYZ1pRKcHY4Snh1BXl2L6tPksv3w1yy1fU25zFhOxtiJibZX3mEgcYSgp92bSel3WkUbS/vVk0m/g0LajLYs1idpHEbPbD7NTsAxZnpro03j+dJSF2LI2IlWdLs/Q/RjhKTOqyqUXv86Vl7+FE7FIpzy23X4lJt02ocfHfPf8aSTcA8g3DgSgfITLCm2WUR15jOZ5iSXDtlbrknIM3U//dPjag3jw/s+56oq3aWx0qatNk0p5vDj5K0467slym9Yujd4ZBHMGhccJ2x7GHdRlomPoXZj/epm5+sq3aGhouao3lfJ44vEZ1Na2F/u8fKjW4WmhrXvN2Na6SIFWT9z+c1ebZeglGOEpM/MKrES2LGHhgu6IPdVVdGxKOiITqXaexyY7dnkFFfaFRO3x3WOaocdjhKfMbL3NilhW7jaFqqoow0f0nEHm1ohUYssmtCVAcftabNvGsiLEIxdS5fyXGudTBkY/I2YfUvA8Q9/HCE+ZOffPW1NTEyUSCf4VIsEK5cuvHodt9+x/T6VzOcLyBOFoKoAYwjJE5ESq7RlE7d3wdQ516QkkMrtT7x5GnTsmjAdm6M+YWa0yM2rUUrzxzkSuvvJtXn/tW0aOWopTTt2UTTYbUW7T2sWSodREXsDV1/D1O2xZG1s2aOHHOFhfM53sxX1J70JsGY1j/boMVht6AmblsqHb8PzpYQyt3GinwkgGRF8svVGGklJo5XLPbssbejW+/kwhdxjKd7j+h6U1yNBjMMLTi/h5XgNnnfE866/1b7bc9BbuvuuTJXKF2t1k/CcoHHXUJ+M/VUpzDD0IM8bTS1i0KMmWm93Cz/PqSacDZ1unnPwsH7z/E5dd0fNCpPj6Cxl9qI0cFm076jL0ZUyLp5dw66SPWDC/cbHoQOAK9dabP+SnHxNltCwX3/+RBvc0CrmrCIgStcw6nv6KEZ5ewosvfE1jY+6DHIvZfPD+j2WwKD8p7w7q3C3w9GUKuzu1iFl/wLZWL3Dc0NcxXa1ewqhRA7FtwfNajul4nnZ4N7uvs/H0SyxZCXsJ/Q37+gMZ/xnAw7HGYctIfD9J0ju/nTMjVDo3FdzxbugfGOHpJRx3whjuuXsqjVmRJxzHYtRKS7H+BkPbOBNU0zS4p+DqZAL/xWkc2YJK5585HgNd/y2S3qV4OgOLEVQ4pxKxdmiRJ+XdQ9K7sKl08K4gZv0+DBvcllvU4cSdvxnRMZiuVm9hjTUHc9ude7LsspVUVkaIxWw22XQ4jzx+YIsFe/lIev8IRSdF4MIihasv0eie0yKf679OvTsRTz8E6vGZRoN7Mmnv0cV5fP0xFJ1U+EoDKVL+1fjaVpdvIDWRV4zoGADT4ulV7LzLaGZ8/VtmzVpATXWUocOqO3Rexr+bQCSy8cnow3j+OdjWIAAa3b/T0s0pQJKkdzERazwiQsZ/jvwhcFzamtmPyO7tCqSh/9DhFk8YMeIDEXk8z7GRIjJZRD4WkZfCyKNNxy4VkU9F5HMR+UcYRRQROUhEPgnPeToM+GdoB8sSRo8e1GHRAVAKz3qlvbsWv/fJH+BOmUfL9Tj5FMYjoze12oUeIAymwv5TB6019Ae6O3b65gRxudYD1gF+TRD4zwGuAbYNz/kYOKlTV2BoE9d/g7aC6fk0rx62KBTBopqm2FYRa/u2asPjA6JyIo5sj8WGVFjnUu28hWX1bG+KhtLS3bHTlWDbcpQgWFMEmEPQVhegKmwBDQB+6IT9hjZQraPePYbCA74Olqy6+FPM/h0Qb5UnTsw6bnE3yZLhVFhnEfw789FIRh+mKvIfaqL/JeZMzBvf3NC/6dbY6ar6JoEQ/Ri+nlHVz1U1AxwPfEIgOGtRIK5Wf4yd3lVk/OdpOzJolJh9aPMnew8q7D+GETgjQDUx6wRi9rEtzoo5h1HtPEqhcMf5ookaDNl0a+x0ERkNrEkQong4QfjjrUQkQiA8GwLLE3S1zs5XcH+Mnd5VuP675NsZHrA0Vc5di6N2NhGzD6Ym8i4DIu8wIPIBFc6JeQeFbWvVgi5NbVlzCS039HW6O3b6XsBbqppQ1QTwFLAZsEGYZ2YYzvh+yDMqaeg0vu+T0QcLHLWocv6FY62f96iIhcjAdiNuxp0/kRuaOIhtbjC0RbfGTge+JRxMDls52xAMUH8PrCUiTU2YcRQeuDZ0Ao/XaWuvlC1LHuwuYm1PlXMLtmyCMARbtqbKuRvHGoOv88n4k3H9j3r0DnpDeeju2OkPAtsRjOUo8LSqPhaefwHwiohkgG+AwztriyEfbUWocLpsTY1jbUIFZ9HonounU2hwf4/N2rhMJhgn8rEYSlXk9pxunaH/YjwQ9lF836XOXYN88wE2Y6mOTso9qRNk/FdocA9vJ5eNxarURHt+rDBD12I8EPYzLMuhIm/cqkoqnSu7rJ5G9/QO5PLw+QZPZ3VZvYbejRGePkzMPpQq52lstsNibaLW8dQ472NZS3VZHcGq5o5go5o/1LGh/2H2avVxHGs1qqPN6z59XUjSvQlP38eS1YjZh2DJ8ktQg01bK6Nb5JQ1lqAeQ1/CCE8/wtfvSWT2QKkHUqAvk/Zvpcq5p+DUenvYbIvH823ksIAocfsviBRa7Wzob5iuVj+i0f07ygKaZ7w8IEm9exiqhRalt02l8y+EVVqkCUsT5TRs2YqItQ/VzgNE7T0KlGDoj5gWTx9HNY3PtwiDcPUV8m+hqCXlTaLCOaro8i3LYUD0OVz/Czz/DWxr3axAfScsiemGPowRnj5MyruLpHcJgdhk2syb8e+lguKFpwnHWgPHMmM4ho5hhKePkvFfIun9jZZ7tQr3rJWGbrfJYGjCjPH0UVLev8ndIFpoHMfJ8avcFqouSfdaatMbsyi9NvWZI80aHUNRmBZPH8XXnwocqSAQIDf8W4EwkJh9cofLbnRPJ6PP0OQm1dWXSGSmUBN5BkuGLZnhhn6BafH0URxrE4I1Nq2xqXIeI2odhiPbEbNOCQWjY55nff2RjD5NS9/MCqRIebcusd2G/oFp8fRRKuzfhnGv6mle4Benwj4Tx1oVx+qcD2RPZxA4lGy9CTUdRqcwGNrHCE8fxZIR1EQeJ+ldi+u/hSXDiNnHE7HGLmG5I2np+L0JB1tMZFBDxzDC04exZASVziVdWqYtI3FkE1x9m5atnihR+4gurcvQdzFjPIaiqXSuJ2LtSdDlsrBYkyrndmwZVV7DDL0G0+IxFI1InErnYlT/CrhmD5ahaIzwGIpGtZaUdx+evo0lKxOzD8WS/I7fDYZ8GOExFIWvc0lkxqPUEuxwf5G0P4mY9Tti9kkmTLGhQ5gxHkNRJL0rUObTPLCsgE/Kv5pGN2+EIoMhh3LGTo+KyI0iMl1EvhCRfbrmkgzdieu/QH7HX0pGHwnX+RgMbVOW2OnhOecQBApcjSCS6MtFW28oA1VtHnX9N0tkh6E3U67Y6QATCQVKVX1VNXFvewFR6xAKDw06CF3nz9nQdylL7HQRafp2/kVE3heRB0RkaL6CTez0nkXMPgKH7QoctYhY40pqj6F3UpbY6QQ/mSOAN1R1I+BNgu5aDiZ2es9CxKYq+m/i9iVAPHxVISxLlXM7IvEyW2joDXRkOr0pdvquBN2mASJyZ3YYY1X9gbDFIyLVwD6qulBEjiaMnR4ea4qd/hrQADwUFvEAcGQXXZMB8Dyfyc9/xayZC1hn3SFsseUKXTrVHbX3I2LtEW4MjWLLejRHsTYY2qZd4VHVswnioSMiY4HT8sVOB+Zr4DG8dez0o0XkYkAIWkNXq6qKyGMEoY9fALYHPuuKCzLA3Dn17Lj9ncydU0/G9XAci9VXH8zjTx9EdXW0y+oRieJ0QQx2Q/+j0z9RInKhiEwIP44FponIdGAocFGY/iAwkyB2+kfAR02x04EzgfNF5GPgUODUztrSH0gk0tx04/sce+TjXHnZm8ybW18w729PeIpvv1lEIpEmlfSoT2T4dOpcLvizmTg09AxM7PRewJyfEmyzxa0sXJiioSFDRYVNJGrz1LMHs976LcfkMxmPoYOuwHVz5wGWWrqCb3/4fanMNhhM7PTezPl/epm5cxtoaAgiRSSTHnW1aU487smcvL6vFPox8fKIkcFQDozw9AKefGJG3hbMp1PnUVvb0hNgLOaw6WYjaD2O7DgWu+2+aneaaTB0GCM8vYBoLJ/vZBCBSCT3X3jt9bswaFCcyspg7qCqKsKw5ar568WF1t8YDKXF7E7vBRx2xPr846p3SCbdxWmOY7H9uJWIxyM5+UePHsRHnx3H/fd+yrQvfmGDjYax9z5r5M1rMJQDM7jcC0gkUuy43V18/tk8LEuIRGxWHDmAJ57+P5Yd0vbeKYOhnJjB5V5KQ0OG3Xa6h69mLcDzFNVgceClV4wzomPotRjh6eHc+O/3+OLzn6mvD2a0XNcnlfI48vBH8f3e01o1GLIxwtPDeeDez2hsdHPSG+ozfPap2TRr6J0Y4enhxCryz2ipKrECs10GQ0/HCE8P58ijN6SysuVslAgsP3wAo1cdVCarDIYlwwhPD+egg9dl/B6rEY87xOMONTVRBg+u5J779zaO1Q29FjOd3kv44vOfefON2QwZUsm4nVYhGjXdLEPPp9B0ullA2EtYY83BrLHm4HKbYTB0CaarZTAYSo4RHoPBUHKM8BgMhpJjhMdgMJQcIzwGg6Hk9KrpdBGZB3xTwioHAz0l0KCxJT89xZaeYgf0LFtGqmpOXKpeJTylRkSm5FuDUA6MLfnpKbb0FDugZ9lSCNPVMhgMJccIj8FgKDlGeNrmxnIbkIWxJT89xZaeYgf0LFvyYsZ4DAZDyTEtHoPBUHKM8BgMhtKjqn3uBVQA7xDEa/8UuCBM3w54H5gK3AY4YboA/wC+BD4GNsoq6zBgRvg6LCv9VwQx4b8Mz23qtg4CngvzPwcMK9KWg0MbPgHeANbPqvPrMP1DYEpWeus6ly5wXZsWactYYFFY34fAeVl17gxMC8s+Kyt9JeDtMP0+IBqmx8LPX4Y2fFiEHadn2TAV8IBBXXRPNgrTbeAD4PEiruNtYFRWnWeH6dOAnZbgXnXUllOAz8LrmEywZqapbC/rnj1a5P+nxXV1yzNabpHoJuERoDp8Hwlv5ObAd8BqYfqFwJHh+12Bp8LzNgXezvryzgr/Lh2+b/oCvxPmlfDcXcL0S5u+XMBZwCVF2rJ5Vh27NNmS9ZANznO9OXUWuq4ibRnb9OVvVZ8NzARWBqIEArJWeOx+4MDw/b+B48P3JwD/Dt8fCPy3o3a0qns88EJX3pOsh/humh/2jl7HfeH7tcL7ECN4uGeG96kz96qjtmwLVIbvj2+yJfycKPBsFHVd3faMllskuvsFVBL8im4CzMxK3wp4Mnx/A3BQ1rFpwHLAQcANWek3hGnLAV9kpS/O13Ru+H45YFoxtrSyfWng+6zPhR6yvHUWuq4i7stY8gvPZsAzWZ/PDl9CsGLWaZ0PeAbYLHzvhPmkE/fkbuDoLr4nGxG0GLYDHu/kdZwNnJ1V7jPheUXdK2BER21pdb0bAq9nfc4Rns5cV3c9l312jEdEbBH5EJhL0NR+B3BEpGlF577ACuH74QS/tk3MDtPaSp+dJx1gqKr+GL7/CRhapC3ZHEnw69yEAs+KyHsickxWek6dbVzXCkXaspmIfCQiT4nI2m2UOxxYBlioqm6r9BbnhMcXEXQROnxPRKSSoNvy3y6+J5cBZwBNAeqLvY5l2rgnxd6rq4uwJZvW35UKEZkiIm+JyJ5LcF3dQp/1QKiqHrCBiCwFPAysTdCEvEpEYsCzBP3g7rRBRUQ7Y4uIbEvwZdoyK3lLVf1eRIYAz4nIF6r6Sr462zDLV9WO2vI+wbhBQkR2Bf4HrNqZe1GAbQG3A3Y0MZ7gV31+VtqS3pNlgBmq+p6IjF3yS1oiaoC5xdoiIocAY4BtspJHhvdlZeAFEfmEQEx6BH22xdOEqi4EXgR2VtU3VXUrVd0YeAWYHmb7npa/riPCtLbSR+RJB5gjIssBhH/nFmkLIrIecBOwh6r+knX+9+HfuQQP68bt1FnI/g7Zoqq1qpoI3z8JRERkcBvl/gIsJSJO6/qyzwmPDwR+6eg9CTkQuCc7oQvuyQrAFiLyNXAvQRfnmmKvo417Usy98oAJRdiCiOwAnANMUNVUnvsyC3iJoCtW9P+H7qK7+nDlfAHLAkuF7+PAq8DuwJAwLUbYjw4/70bLAcd3wvRBwFcEYy1Lh++bZlNaDy7vGqZfRstBzWuLtGVFgpmFzVtdUxVQk/X+DYKHNV+dlxa4rveLtGUYzbN1GwPfhmU5BAPtK9E8YLp2mO8BWg5enhC+P5HmwcujgYc7akeYNhCYD1R18T15J6u8sTQP6HbkOg4E7g/fr03LweVZBAPLRd+rImzZkGDgetVW35WlgVj4fjDBzN5anbmubntGyy0S3XJRsB7BdOTHBNOv52V9GT8nGFD8fVZ+Aa4L/4mfAGOyjk0kEIIvgSOy0seEZc8E/knzA7pM+NDMAJ4n6CoVY8tNwAKap0KnhOkrh1/apinoc7LOaV3noALXdWCRtpwU1vUR8BZZYkgwOzQ9LDvblpUJRPnL8Eve9ABUhJ+/DG35tKN2hMcOB+5tldYV9yT7fz2W5oe9I9fxDrBy1vnnhOVOI5zl7My9KsKW54E5tJo2J5gh/CS8L5+QNTvYmevqjpfZMmEwGEpOnx/jMRgMPQ8jPAaDoeQY4TEYDCXHCI/BYCg5RngMBkPJMcJjMBhKjhEeg8FQcv4f7qKSO1SmwDYAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "tags": [], "needs_background": "light" } } ] }, { "cell_type": "code", "metadata": { "id": "Fth3dA_vV3eD", "colab_type": "code", "colab": {} }, "source": [ "" ], "execution_count": null, "outputs": [] } ] }