{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 邻域分析 —— 缓冲区,最近邻\n", "\n", "深入研究一些最常见的空间运算。在这部分之后,你将能够回答一些简单的问题,比如“最近的温蒂汉堡在哪里?”、“在距离高速公路 50 码范围内是否有住宅?”。\n", "\n", "## 缓冲区分析\n", "\n", "首先,将导入必要的模块。" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# Import modules\n", "import pandas as pd\n", "import geopandas as gpd\n", "from shapely.geometry import Point, LineString, Polygon\n", "from io import StringIO \n", "\n", "data = \"\"\"\n", "ID,X,Y\n", "1, -87.789, 41.976\n", "1, -87.482, 41.677\n", "2, -87.599, 41.908\n", "2, -87.598, 41.708\n", "2, -87.643, 41.675\n", "\"\"\"\n", "# use StringIO to read in text chunk\n", "df = pd.read_table(StringIO(data), sep=',')\n", "\n", "#zip the coordinates into a point object and convert to a GeoData Frame\n", "points = [Point(xy) for xy in zip(df.X, df.Y)]\n", "points = gpd.GeoDataFrame(df, geometry=points, crs = 'EPSG:4326')\n", "# create line for each ID \n", "lines = points.groupby(['ID'])['geometry'].apply(lambda x: LineString(x.tolist()))\n", "lines = gpd.GeoDataFrame(lines, geometry='geometry', crs=\"EPSG:4326\") \n", "lines.reset_index(inplace=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "看看数据:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# plot county outline and add wells to axis (ax)\n", "lines.plot(column='ID');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```{important}\n", "永远不要用未被投影的数据(例如 lat lon)进行距离分析。距离最好不要用度数来衡量!而是,使用 `.to_crs()` 将其转换为投影的坐标系统,以英尺或米等为线性单位。\n", "```\n", "\n", "虽然没有明确说明,但距离参数是用投影的线性单位度量的。因此,在开始之前,需要确保使用 `to_crs()` 将其转换为投影坐标系。" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[Axis(name=Easting, abbrev=X, direction=east, unit_auth_code=EPSG, unit_code=9001, unit_name=metre), Axis(name=Northing, abbrev=Y, direction=north, unit_auth_code=EPSG, unit_code=9001, unit_name=metre)]\n" ] } ], "source": [ "# plot county outline and add wells to axis (ax)\n", "lines = lines.to_crs(3857)\n", "# check the linear unit name in `unit_name`.\n", "print(lines.crs.axis_info)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "可以开始处理缓冲区函数。你可以阅读文档的缓冲功能,不幸的是被分成两个文档[geopandas](https://geopandas.org/en/stable/docs/reference/api/geopandas.GeoSeries.buffer.html)和[shashaely](https://shapely.readthedocs.io/en/latest/manual.html#object.buffer)。" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 POLYGON ((-9737657.488 5113325.388, -9737601.7...\n", "1 POLYGON ((-9750364.761 5117342.850, -9750369.3...\n", "dtype: geometry\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVkAAAG+CAYAAAA5s3fhAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAABb5klEQVR4nO3dd1QU1x4H8O8WWHoHKSKIChYEAREbscfeY0GMKRoTldgbqaYYMPZY0DwTjVFD1MReo7ErRlEEOyJKtYF03QV23h8ICcncXRYYyu7vc86e88K9jnf3xW/G2TvfEXEcx4EQQoggxLW9AEII0WYUsoQQIiAKWUIIERCFLCGECIhClhBCBEQhSwghAqKQJYQQAVHIEkKIgChkCSFEQBSyhBAiIK0L2dOnT2PgwIFwdHSESCTC7t27NT4Gx3FYsmQJ3N3dIZPJ4OTkhIULF1b/YgkhWk9a2wuobvn5+fD29sa7776LYcOGVeoY06ZNw9GjR7FkyRK0bt0amZmZyMzMrOaVEkJ0gUibC2JEIhF27dqFIUOGlP1MLpfj448/xi+//IKsrCx4enpi0aJF6Nq1KwDg1q1b8PLywvXr1+Hh4VE7CyeEaA2tu1ygTkhICC5cuIDIyEjExsZixIgR6NOnD+Lj4wEA+/btg5ubG/bv34/GjRvD1dUVEyZMoDNZQkil6FTIJiUlYePGjdixYwcCAwPRpEkTzJ49G507d8bGjRsBAPfv38fDhw+xY8cObN68GZs2bUJ0dDTeeOONWl49IaQ+0rprsqrExcWhuLgY7u7u5X4ul8thbW0NAFAqlZDL5di8eXPZvB9++AF+fn64c+cOXUIghGhEp0I2Ly8PEokE0dHRkEgk5cZMTEwAAA4ODpBKpeWCuEWLFgBKzoQpZAkhmtCpkPXx8UFxcTGePHmCwMBA3jmdOnVCUVEREhIS0KRJEwDA3bt3AQAuLi41tlZCiHbQut0FeXl5uHfvHoCSUF22bBm6desGKysrNGrUCGPHjsW5c+ewdOlS+Pj44OnTpzh+/Di8vLzQv39/KJVK+Pv7w8TEBCtWrIBSqcSUKVNgZmaGo0eP1vK7I4TUO5yWOXHiBAfgP6+33nqL4ziOUygU3Geffca5urpyenp6nIODAzd06FAuNja27BipqancsGHDOBMTE65Bgwbc22+/zWVkZNTSOyKE1GdadyZLCCF1iU5t4SKEkJpGIUsIIQLSmt0FSqUSaWlpMDU1hUgkqu3lEEK0GMdxyM3NhaOjI8Ri1eeqWhOyaWlpcHZ2ru1lEEJ0SHJyMho2bKhyjkYhu2DBAnzxxRflfubh4YHbt2/zzr9x4wY+++wzREdH4+HDh1i+fDmmT5/+n3mpqamYN28eDh06hIKCAjRt2hQbN25E27ZtK7w2U1NTACVv2szMrOJvihBCNJSTkwNnZ+ey3FFF4zPZVq1a4dixY38fQMo+REFBAdzc3DBixAjMmDGDd87z58/RqVMndOvWDYcOHYKtrS3i4+NhaWmp0bpKLxGYmZlRyBJCakRFLk1qHLJSqRT29vYVmuvv7w9/f38AwPz583nnLFq0CM7OzmUFLQDQuHFjTZdFCCF1ksa7C+Lj4+Ho6Ag3NzcEBwcjKSmpSgvYu3cv2rZtixEjRsDOzg4+Pj743//+p/bXyeVy5OTklHsRQkhdo1HIBgQEYNOmTTh8+DAiIiKQmJiIwMBA5ObmVnoB9+/fR0REBJo1a4YjR45g0qRJmDp1Kn766SeVvy4sLAzm5uZlL/rSixBSF1Xpjq+srCy4uLhg2bJlGD9+vMq5rq6umD59+n+++NLX10fbtm1x/vz5sp9NnToVly5dwoULF5jHk8vlkMvlZf9ceiE6OzubrskSQgSVk5MDc3PzCuVNlW5GsLCwgLu7e1khS2U4ODigZcuW5X7WokULtZchZDJZ2Zdc9GUXIaSuqlLI5uXlISEhAQ4ODpU+RqdOnXDnzp1yP7t79y7VChJCtIJGITt79mycOnUKDx48wPnz5zF06FBIJBIEBQUBAMaNG4fQ0NCy+QqFAjExMYiJiYFCoUBqaipiYmLKnfnOmDEDUVFR+Oabb3Dv3j1s27YN33//PaZMmVJNb5EQQmqRJpVdo0aN4hwcHDh9fX3OycmJGzVqFHfv3r2y8S5dupRVCnIcxyUmJvLWDnbp0qXccfft28d5enpyMpmMa968Off9999rXCeWnZ3NAeCys7M1/rWEEKIJTfJGa6oONbkQTQghVVFjX3wRQghRjUKWEEIERCFLCCECopAlhBABaU2fbHV4WViMP24+xsXEDDzJkcNYJkVLBzP0bW2PhpZGtb08Qkg9RLsLXjkYl47P997A01z5f8YkYhGCAxohtG8LGOpLqmO5hJB6jHYXaGjDmfuYvPUKb8ACQLGSw+YLDxG8IQr58qIaXh0hpD7T+ZA9d+8Zvj5wq0JzryRlYe7OWGjJyT8hpAbodMhyHFfhgC11IC4dm84/EGZBhBCto9Mheys9F7fSNS/7XnjgFqIfPhdgRYQQbaPTIXstJUvluKxIwfvzIiWHkG1XkJnPP04IIaV0OmRzXhTyD3AcgmIO48T3E+GQ85R3Snr2S0yLvIpiJV2fJYSw6XTIWhrp8/5cT1mE4JhDcMx9htV7FkGvmD+Mz8Q/w+o/K19YTgjRfjodsr4uFrw/L5ToYdKQUOTIjOGXdhvzT25iHmPF8bs4E89/tksIITodsk3tTOHTyIJ3LNnCHjP7zwQAjL+8B31vn+Wdx3HAtMgYpGe/EGqZhJB6TKdDFgA+HdASYhH/2LFmAVgXMBwA8O2hlWicmco7LzNfgZBtV1FYrBRqmYSQekrnQ9a3kSVm9/Zgji9+bRwuNmwFU8ULrN0dBoPCl7zzoh8+x6JDt4VaJiGkntL5kAWAD15rgh7N7XjHisUSfDhoLp4aWaDF0wf48o91zONsOJuIw9fThVomIaQeopAFIBaLsHSkNxpaGvKOPzG1xtRBc1EsEmNk3DGMiD3KPNacHbFIfJYv1FIJIfUMhewrFkb6WBvsC30J/0dywcULSwPHAgC++mMdWj6+zzsvV16ESVui8bKwWLC1EkLqDwrZf/BqaIFPB7Zkjke0fwN/urWFQZECa3eHwVTOf8Z6+1EuPttzXahlEkLqEQrZfxkb0AiD2zjyjnEiMWYMmIUUMzu4ZqVj8cEVJXu4eGy/nILtl5MFXCkhpD6gkP0XkUiEb4a2RlM7E97xbENTTB4yHwqxFH3uXsD4S7uZx/p093XcTNO8gIYQoj0oZHkYy6RYN9YXRoynIMQ6uOPLHu8BAEJPboRfyk3eefIiJSZvjUbOS0ZHAiFE61HIMjS1M0XYsNbM8S0+/bC3xWuQckqs3rMI1vlZvPMeZBRgHhV9E6KzKGRVGNzGCW+2d+EfFIkQ2jsE96wawiEvAyv2LYFYyb+j4ND1R/jx3APhFkoIqbMoZNX4ZEALeDU05x3Llxlh0pBQFOjJEPgwBtPORTKPE3bwFqIfZgq1TEJIHUUhq4ZMKsGaMb4wN9TjHY+3dUFo7xAAwIfnI9HlfjTvvCIlhylbryIjj/9hjYQQ7UQhWwHOVkZYNtKbOb6nVTdsadMXYnBYvn8pHHOe8M57lPMS03+NoaJvQnQIhWwF9WjRAJO7NmGOf9XjPcTaN4XVixys2a266HvVn/FCLZMQUsdQyGpgZi93tHez4h2TS/UxefB8ZMuM4ZN+Bx+d+JF5nJXH43H6LhV9E6ILKGQ1IJWI8V2QD2xNZbzjKRb2mDmgpOj7neh96Key6Psq0rKo6JsQbUchqyE7UwOsDvKBhNH0fbxpACIC3gBQUvTtlpHCO+95QSFCtl2BooiKvgnRZhSylRDgZo05Koq+l7z2Ji46e8JETdH3laQshFPRNyFajUK2kiYGuqFnC3bRd8iguXhqbIHmzx5i4dG1zCKZH88l4mAcFX0Toq0oZCtJLBZh6Yg2zKLvpyZW+PBV0ffw639ilIqi77k7Y3H/aZ5QSyWE1CIK2SowN9JDRLAfs+g7qpEXlrz2JgDgyz/WodXjBN55efIiTN56BS8UVPRNiLahkK2i1g3N8fkgdtH3uoDhONbEH7LiQqzdHQazl/xnrFT0TYh2opCtBmPaNcJQHyfeMU4kxqz+M5Fs3gAuWY9UFn3viE7B9ktU9E2INqGQrQYikQgLh3rCvYGKou/B8yGXSNE7PgoTLu1iHuvTPddxIy1bqKUSQmoYhWw1MdKXYm2wH7PoO86hGb7qMREAMP/kJrRNucE7r6To+woVfROiJShkq1FTOxOED/dijm9p0xe7W3aBlFNizZ5FsMl/zjvvYUYB5uy4RkXfhGgBCtlqNsjbEeM6sIu+P+odgnhrZzTIy8TKfYuZRd9HbjzGD2cTBVwpIaQmUMgK4OP+LeDNKPou0DfEB0M+Qr6eATo9jMX0s9uYxwk/dBuXH1DRNyH1GYWsAGRSCdYEs4u+E2ycEdqnpOh76oVf0TXhMu+8IiWHkG1X8YyKvgmptyhkBdLQ0ggrRrVhju9t2RWbffoDgPqi70gq+iakvqKQFVC35nYI6daUOf519wm4Zt8Mli9zsXZ3OLPo++y9Z1h5nIq+CamPKGQFNqOXOzo2seYdU0j1MGXIfGQZmKBN+l2VRd+r/ozHyTv8Z7uEkLqLQlZgErEIK0f7wI5V9G3eADP7/130PeDWad55HAfM+DUGqVT0TUi9QiFbA2xNZVg9xpdZ9P1n03ZY034EACD88Co0yeC/tfZ5QSGmbKWib0LqEwrZGtKusRXmqij6XhY4FhcatS4r+jZU8Bd9xyRnIezQLaGWSQipZhSyNWjia27o1bIB71ixWIKpA+fiibElPJ4lYeHRNcwimY3nHuBALBV9E1IfUMjWIJFIhCUjvOFsxSr6tkTI4HkoEokx7MYJBF07wjzW3J3XkEBF34TUeRSyNczc8FXRt5T/o//L2ROLu4wDACw4th6tHt3jnZevKMbkLVT0TUhdRyFbCzydzPHFoFbM8e/bDcMfTdtBVlyICBVF33ce5+Lj3XFUJENIHUYhW0tG+ztjmK/6ou9G2Y+x9MBy5vXZ36+k4lcq+iakzqKQrSUikQhfD/GERwNT3vEcAxNMGhIKuUSKXvcuYuJfvzOP9dneG7ieSkXfhNRFFLK1yEhfirVjfWHMKPq+bt8UX/R8HwAw99RPaJfM/wwwxaui7+wXVPRNSF1DIVvLmtiqLvre5t0Hv7fqBimnxOo9i2Cbx1/0nZRJRd+E1EUUsnXAQG9HvN3RlX9QJMLHr0/BHZtGsMt/jpX7FkPCKPo+evMxNpyhom9C6hKNQnbBggUQiUTlXs2bN2fOv3HjBoYPHw5XV1eIRCKsWLGiysfUVh/1a4E2zha8Yy/0DTB5SCjy9QzQMSkWM85uZR4n/PBtXKKib0LqDI3PZFu1aoX09PSy19mzZ5lzCwoK4ObmhvDwcNjb21fLMbWVvlSMNcG+sDBiFH1bO2N+nw8BACEXtqNbwiXeecVKDlO2XsHTXCr6JqQu0DhkpVIp7O3ty142NjbMuf7+/li8eDFGjx4NmYy/hUrTY2ozJwtDrBjVBiL+Hhnsa9kFP/n+XfTtlM1fffgkV45pkVep6JuQOkDjkI2Pj4ejoyPc3NwQHByMpKSkKi+iMseUy+XIyckp99IGXT3s8KGKou+F3SYgxqEZLF7mYc2eMOgX8e8oOJ+QgRXH7gq1TEJIBWkUsgEBAdi0aRMOHz6MiIgIJCYmIjAwELm5uZVeQGWPGRYWBnNz87KXs7NzpddQ10zr6Y5OTVUUfQ8OfVX0HY+PT2xgHmfVn/dwgoq+CalVIq4Ke36ysrLg4uKCZcuWYfz48Srnurq6Yvr06Zg+fXq1HFMul0Mu//u6Y05ODpydnZGdnQ0zMzON3kdd9CxPjv7fncHjHP5rq10TLmHTzi8AAFMHzsHell1451kY6eHA1EA4WfCX0hBCNJeTkwNzc/MK5U2VtnBZWFjA3d0d9+7xl5gIeUyZTAYzM7NyL21iY6K66PtkE3+s6jAKABB2eBWaPOO/tTaroBCTqeibkFpTpZDNy8tDQkICHBwcqms9ghyzvvJ3tcL8PuztbMs7j8E5Fy8YF75EhIqi72vJWfjmIBV9E1IbNArZ2bNn49SpU3jw4AHOnz+PoUOHQiKRICgoCAAwbtw4hIaGls1XKBSIiYlBTEwMFAoFUlNTERMTU+4sVd0xdd2EwMZ4nVH0rRRLMG3gHDw2sYJ7RhK+ObKaWSSz6fwD7LuWJuRSCSE8NArZlJQUBAUFwcPDAyNHjoS1tTWioqJga2sLAEhKSkJ6+t+N/WlpafDx8YGPjw/S09OxZMkS+Pj4YMKECRU+pq4TiURYPMIbLtZGvOPPjC0RMmguikRiDL15EmOuHWYea/5vsbj3hIq+CalJVfriqy7R5EJ0fXQjLRtD155nXludePE3fHRyI+QSKYaPXYLr9vzbwNwbmGD3lE4w0pcKuVxCtFqNffFFak4rR3N8NVh10ffRZu0hKy5SWfR993EePt51nYpkCKkhFLL1yMi2zhju25B/UCTC7H7TkWTeAM7Zj7Fs/1KIOP6z3l1XU/HLX1T0TUhNoJCtR0qLvpvbqyv61kPPhEt4/yK76HvBPir6JqQmUMjWM4b6EqwN9oWJjP+a6g37pvj8VdH3nNOb0T4plneeokiJSVujkV1ARd+ECIlCth5yszXBIhVF35HevfGbZ3dIOCVW7f2WWfSdnPkCs6jomxBBUcjWU/29HPBOJ1f+QZEIn/SajNs2LrDNz8J3+75lFn0fu/UY35++L9xCCdFxtIWrHlMUKTHq+wu4mpTFO+6WkYK9m2fARPECa9qPwOIub/HOk4hF2DYhAAFu/KU0pOry5EX4LToFf95+ggcZ+QAAF2tjdPewxXC/hjA14O8RJnWTJnlDIVvPpWW9QP/vzuA549rqgFunsXrvtwCAd4d/hj+btuOdZ2sqw4GpnWFnaiDYWnXViTtPMGdHLJ7l8Zf92Jjo49s3vNC9Of+dfaTuoX2yOsTRwhArRvswi773t3gNG/0GAigp+m6Y9Yh33tNcOab9EkNF39XsUFw6xm+6xAxYAHiWp8CEny7jQGw6cw6pvyhktUAXd1t82L0Zc/ybbu/iqoMHzOX5WLsnnFn0feF+Bpb/QUXf1SUt6wVm77iGivx3S8kBc3ZeQ8rzAuEXRmoUhayWmNajGTo35X9sT6FED1OGzMNzA1N4PbqHT//8H/M4q0/cw5+3Hwu1TJ2y7lQC8hX8XzjyKVAUI+JkgoArIrWBQlZLSMQirBzdBvZm/NdU08zsMH3gbCghwptXD2LQzZPMY834lc6oqorjuEr99f9gXDqUdMlGq1DIahFrExlWj/GBlFH0fcrND6s6lhZ9r0bTZ/zPUst+UYgpW69AXlTxszBS3tNcOTLyFRr/uucFhXhCTxrWKhSyWqatqxXm92UXfa/sFISzLt5lRd9Gihe8866lZGPhASr6rqw8eRHvz/WLCvFz5CfYEvkxZIX8YZonp7vwtAmFrBYa37kx+rSy5x0rLfp+ZGKFZhnJCDvMLvrefOEh9sSkCrlUnSPilAh8GIPOD69ByrhBRDs2VZJSFLJaSCQS4dsRXnBlFH1nGFsgZPA8FInEGHzrFMbGHGIeK/T3ONx7UvmnEesqEWtP3T9+zpgByljtQiGrpcwM9LA22A8yKf//xZcbtkJ417cBAJ8e/x5e6fxbtwoUxZi05QoKFPx//SX82AH6z5Dlj1M6k9UuFLJarKWjGb4a7Mkc3+A/FEdeFX2v3R0O8xf8Z6zxT/Lw0e9xVCSjAdaJLPePn4sYnydH57JahUJWy430d8YIP3bR95x+0/HAwgENc55g2YFlzKLv3TFp2PYX/24E8l8ixrksxzzH/cccylitQiGrA74crLroe/Krou8eCZfwwcXfmMf5Yu9NxKVQ0XdFsM9k/3G5gHUmSyGrVShkdYChvgQRY/2YRd83G7jh016TAACzT//MLvoupqLvqvpnfjKvydLlAq1CIasjGtsYY/Eb7KLv7V69sNOzxz+KvjN556U8f4GZ22PoriQ16EyWlKKQ1SF9WztgfOfG/IMiET55fRJu2brCNj8Lq/eyi76P336C9VT0rRJrC1f53QVEF1DI6pj5fZvDz8WSd+ylngEmDwlFrr4hApKvY/bpn5nHWXzkNqLuZwi1zHqPGaB0JqtzKGR1jJ5EjNVjfGBlrM87nmjlhHl9pwEAJl3ciZ7xF3nnKTngw1+u4knuS8HWWp+xLheUm0PXZHUChawOcjA3xIpRbZhBcLB5Z/zoNwgAsPTAMjirKPqe+stVFBXzb/vSZawtXACgfDUmYmQpnclqFwpZHfWauy2m9WAXfYd1ewdXHF8Vfe8Og6yIv1Eq6n4mllHR93+oOpP9+8sv1pks0SYUsjrsw+7NENhMRdH34PnINDRD68cJ+PQ4u+h77ckEHL9FRd//pOpqQWmIsq/JUsxqEwpZHSYRi7BiVBs4mPMXfaeb2WL6gFlQQoSxMYcw5MYJ5rFm/BqD5Ewq+i5TgTNZ9jVZok0oZHVcSdG3L7Po+7SbH1Z1HA0A+ObIajR7+pB3Xs7LIkymom9C/oNClsDPxRIf9WvBHF/ZaTTOuLSBUaEc63aHwVjOf8Yal5qNr/bfFGqZ9YqqL744+uJLp1DIEgDAO51c0ddTRdH3oDlIN7FGk8wUhB1hF31viUqiom+o++Lr1RzmhQFKWW1CIUsAvCr6fsMLjW2MecczjcwRMngeCsUSDLp1Gm9ePcA8VujvcYh/rNtF36q3yaq5JksZq1UoZEkZUwM9rA32ZRZ9RzdsifCu7wAAPj2+Ad5pd3jnFSiKMWnrFeQznnOlC5hPRsA/vvhiXS4QYkGk1lDIknJaOJjh6yHsou8f2g7GIfeO0FcWYc2ecFi8yOGdd+9JHkJ1uOhb9RYuOpPVJRSy5D9GtHXGqLbO/IMiEeb2m4ZESwc0zHmKZfvZRd97r6Vhy0XdLPquyDVZVprq6n+YtBWFLOH1xeBWaOFgxjuWKzPG5CGheCnVR/f7lzEpaifzOF/tu4lryVkCrbLuqtDuAuY40SYUsoSXgZ4EEcG+MGUUfd+yc8OnvT4AAMw6swUdHl7jnacoVmLy1ivIKuC/LVdrVeRmBGrh0gkUsoTJ1cYYi0d4M8d3eL2O7a17QsIp8d3exbDL5a8+TM16gZnbr+lU0bfKywWlc6iFSydQyBKV+njaYwKr6BvAZ70+KCn6LsjC6r2LIC3m31Hw5+0nWHc6Qahl1jkV+uKLdcpKGatVKGSJWvPUFH1PelX03S7lJmaf3sw8zpIjd3AhQTeKvlVt4YKIrsnqEgpZopaeRIw1Y3xhzSj6fmDlhDn9pgMAPvjrd/SKj+KdV1b0naP9Rd9Va+Gq9uWQWkQhSyrE3twAK0f7MK81HvbohA1tBwMAlh5Yziz6fpYnR4gOFH1XpE+WrsnqBgpZUmGdm9lgRk935nh413dw2akFzOT5iFBR9P1XYiaWHNXuou+KbOFiZSmdyWoXClmikZBuTfGauy3vWJFEipBB85BhaAbPxwn4/Nj3zOOsO5WAP25qb9F31c5kiTahkCUaEb8q+nZkFH0/MrPB9IGzoYQIY64dxrDrx5nHmrVdN4u+6ckIuoVClmjMylgfq4N9oSfhP10709gXKzsFAQAWHlkLj6cPeOflvCzCpK3ReFmofUXfdCZLSlHIkkrxbaS66HtVx1E47eoDwyI51qoo+r6emqOVRd9Vua2WUla7UMiSSnu7oyv6t3bgHVOKJZg+cDbSTG3QJDMViw6vYn6js/ViEnZdTRFyqTVO1ZlsaboyLxdQymoVCllSaSKRCOHDW8OtAkXfA26fwbgr+5nH+uj367irRUXfVHVISlHIkioxNdDD2rG+MNDj/1fpilMLfNPtXQDAJ3/+gDaMou8XhcX4YEs08rSk6FvlHV+lc2gLl06gkCVV1tzeDAuHtGaOb/QbhIOlRd+72UXf95/m60TRN6cmgLX73eseCllSLYb7NURQO1VF39Nx39IRTrlPsWLfUmbR975rafg5iv+x4/VJhW6rpTjVCRSypNp8PrAVWjnyF33nyYzKir67JkZjyoXtzON8tf8mYup50bfqqsPSO75on6wuoJAl1cZAT4K1wb4wNeAv+r5t1xifvD4ZADDzzFZ0ehDDO6+wmMOUrVfwPL/+Fn1X6EGKrHEB1kNqD4UsqVYu1sZYoqLoe2frnoj0eh1icFi5bzEa5D7jnVdS9B2jlUXf6vpk6URWu1DIkmrXu5U9Jr7mxhz/vOf7uGnXGDYF2Vi191tm0feJO08Rcar+Fn2zTmZLH6TIviZLKatNKGSJIOb09oC/K3/Rt1xPhklDQpGjb4R2KTcxR0XR99Kjd3D+Hv/Zbl3HvmBAZ7K6hEKWCEJPIsbqMb6wMeEv+n5o6Yg5/acDAN7/63f0vnued56SA6ZGXsXjelj0zbouS9dkdQuFLBFMA7OSom8xI02OuHfE//yHAAAWH1iBRs/Teec9y1MgZNsVFNazom91IUpnsrqBQpYIqlNTG8zsxS76XtTl7ZKib0VBSdF3oZx33qUHz7HkCP/dYnUV+5osPRlBl2gUsgsWLIBIJCr3at68OXP+jRs3MHz4cLi6ukIkEmHFihUqjx8eHg6RSITp06drsixSx03u2hRdPdhF31MGz8MzI3O0enIfC46tZx5n/en7OHqD/7E2dRGriYuejKBbND6TbdWqFdLT08teZ8+eZc4tKCiAm5sbwsPDYW9vr/K4ly5dwvr16+Hl5aXpkkgdJxaLsHxkGzhZGPKOPza1wbSBc6CECEGxR/FG3DHmsWbtuIakjHpS9F3J3QWUsdpF45CVSqWwt7cve9nY2DDn+vv7Y/HixRg9ejRkMhlzXl5eHoKDg/G///0Plpb830iT+s3SWB+rx/gwi77PubbB8s5jAABfHY1gFn3n1qOib/Y1WXUtXBSz2kTjkI2Pj4ejoyPc3NwQHByMpKSkKi9iypQp6N+/P3r27FnhXyOXy5GTk1PuReo2n0aW+KR/S+b46o6jcKqxLwyL5IjY9Q1MGEXfN9Jy8MW+ul/0rfaaLIWpTtAoZAMCArBp0yYcPnwYERERSExMRGBgIHJzK98DGhkZiStXriAsLEyjXxcWFgZzc/Oyl7Mzo5yE1CnjOrhggBd/0TcnEmP6gFlINbWF2/M0hB/6jnmB8pe/kvBbdN0u+mY/HUHNFi7KXq2iUcj27dsXI0aMgJeXF3r37o2DBw8iKysL27ezyz5USU5OxrRp07B161YYGPA/mI8lNDQU2dnZZa/k5ORKrYHUrJKiby+42fIXfT9/VfStEEsx4M5ZvB29j3msj3fH4fajuvs3GOaZbOk4PRlBJ1RpC5eFhQXc3d1x7969Sv366OhoPHnyBL6+vpBKpZBKpTh16hS+++47SKVSFBezr7vJZDKYmZmVe5H6wUQmxbqxfjDUk/COX3VqXlb0/fGJH+Cbeot33stCJSZvvVJni76ZZ6rqtnBRxmqVKoVsXl4eEhIS4ODA/9c/dXr06IG4uDjExMSUvdq2bYvg4GDExMRAIuH/Q0jqP/cGplg41JM5vslvIPZ7dIaeshir9yyCZUE277z7T/Mx77fYOvllEfOOr7Lbavl/XR18K6QKNArZ2bNn49SpU3jw4AHOnz+PoUOHQiKRICio5PHP48aNQ2hoaNl8hUJRFp4KhQKpqamIiYkpO/M1NTWFp6dnuZexsTGsra3h6cn+A0i0wzDfhghq14h/UCTC/L5TkWDlBMfcZ1i5bwnESv6/2RyITcfmC3Wv6Jt9Jlv2v/jHhVgMqTUahWxKSgqCgoLg4eGBkSNHwtraGlFRUbC1LdlonpSUhPT0v2+NTEtLg4+PD3x8fJCeno4lS5bAx8cHEyZMqN53Qeqtzwe2VFv0/UIqw2sPriJERdH31wdu4mrSc6GWWTlqHvPFvq2WYlab8LcrM0RGRqocP3nyZLl/dnV11fhfmH8fg2g3Az0JIoL90H/VGeS+/O+11Tu2rvi492QsO7Ac089uQ7RTC5xzbfOfeaVF3wemBsLSmL+Upqap3yfLGifahLoLSK1rZG2EZSPbMMd/9+yBbd69IQaH7/Z+C/sc/urDtOyXmP5r3Sn6VtvCxToBqRvLJ9WEQpbUCb1aNsD7XdhF31/0fB/XGzSB9YscrN67iFn0feruU6w5UbndLnUFbeHSLhSypM6Y87oH2jW24h2TS/UxefB85MiM0Tb1Fuad2sQ8zrJjd3GuDhR9V7aFi2gXCllSZ0glYqwO8oGNCX/PRZKlA2b3mw4AeO/SbvS+w1/0zXHAtMireJRdu0Xfaq/JUp+sTqCQJXWKnZkBvgtqwyz6PureAevbDQMALD64Aq6ZqbzznuUp8OEvtVv0TU9GIACFLKmDOjaxwazXPZjji18bh78atqxQ0ffiWiz6picjEIBCltRRk7o0QTcVRd8hg+bhqZEFWjx9gC9UFH1/f/o+Dl+vnaJvdddk2TcjUMpqEwpZUieJxSIsH8Uu+n5iao1pA2ejWCTG6NijGBH7B/NYc3Zcw8OMfKGWqoKa22oZv4rOZLULhSypsyyM9LE22JdZ9H3etQ2WdQ4GAHz1RwRaPLnPOy9XXoRJW67UeNE3+0z21TizhYtoEwpZUqd5O1vgswHsou+1HUbghJsfDIoUWLs7DKZy/jPWm+k5WLD3hlDL5MW+q1bNFi46ldUqFLKkzhvb3gWDvB15xziRGDNeFX03fp6ORQdXMkMq8lIydtZg0Te7T1ZNC5dA6yG1g0KW1HkikQhhw1qjqZ0J73iWoRmmDJkPhViKfnfP493Le5nH+qQGi76ZT6tV9yBFSlmtQiFL6gVjmRQRwb7Mou8YRw983X08ACD05I/wTWEXfU/acgW5LwsFW2sp9Wey1MKlCyhkSb3RrIEpwoa1Zo5v9h2Afc0Doacsxpo94bBiFH0nPsvH/N/iBA+zSj8ZQaD1kNpBIUvqlSE+TggOUFH03edDJFg1hENeBlaoKvqOS8em8w+EWyjUPxmBvvfSDRSypN75dEBLtHYy5x3LlxnhgyGhKNArKfr+8PyvzOMsPHAL0Q9rvuhb7TXZGlwLER6FLKl3DPQkWBvsCzMD/s75eFsXfPz6FADAtHO/IDDxCu+8IiWHkG1XkJmvEGSddE2WABSypJ5ytlJd9L3Lszu2efeBGBxW7lsCh5ynvPPSBSz6ZoUs1BTEEO1CIUvqrZ4tG2BS1ybM8S96TsT1Bk1g9SIHq/csgl4x/46C03efYrUARd/MLVyl41QQoxMoZEm9NquXOwJUFH1PGhKKHJkx/NJuY/7JTczjLD92F2fjq7fom3kmWzpOBTE6gUKW1GtSiRirVBR9J1vYY2b/mQCA8Zf3oO/ts7zzOA6YGnkV6dkvqm1tardw0ZmsTqCQJfWenZkBVgX5MIu+jzULwLqA4QCAbw+tZBZ9Z+YrELLtarUVfavbwkWl3bqBQpZohQ5NrDG7t+qi74vOnjBVvEDE7jAYFPI/mib64XMsOnRbqGUC+HsLF7NPllJWq1DIEq3xwWtN0KO5He9YsViCkEFz8dS4pOj7yz/WMY+z4WwiDl9Pr/J61D3ji4WuyWoXClmiNcRiEZaO9EZDS/6i76cmVpg6cC6KRWKMjDuGEbFHmceasyMWic+qWPRdyX2yRLtQyBKtUlr0rS/h/1f7gosXlgaOBQB89cc6tHysqug7ukpF3+q7CxjjlL1ahUKWaB2vhhb4bCC76Dui/Rv4062t2qLv249y8fmeyhd9s774KhunNNUJFLJEKwUHNMLgNqqLvlPM7OCalY7FB1cwTx9/vZyM7ZeTK7WGSrdwUfhqFQpZopVEIhG+Gcou+s42NMXkV0Xffe5ewPhLu5nH+nT3ddxM07zou9JPRqCM1SoUskRrGcukWDfWF0b6/EXfsQ7u+LLHewCA+ac2wS/lJu88eZESk7dGI0fDou9KPxlBo9+F1HUUskSrNbVTXfS9xacf9rToAj1lMVbvWQTr/CzeeQ8yCjBvZ6xGf5WvfAtXhX8LUg9QyBKtN7iNE95s78I/KBIhtE8I4q2d1RZ9H7r+CD+ee1Dl9XBl6UvdBbqAQpbohE8GtIBXQ/6i7wJ9Q0x6VfQd+DAG085FMo8TdvAWoh9mVuj3ZN9W+2qcrsnqBApZohNkUgnWjPGFuaEe7/g9m0YI7R0CAPjwfCS63I/mnVdS9H0VGXlytb8nPeOLABSyRIc4Wxlh+Shv5vieVt2wpU1fiMFh+f6lcMx5wjuvtOi7WE3RN3ubrJo7vuhUVqtQyBKd0r15A0xWUfT9VY/3EGvfFFYvcrBmN7vo+0z8M6z6M17l78X84kvdHV8qj0rqGwpZonNm9nJHezd20ffkwfORLTOGT/odhJ7YyDzOyuPxOH2X/7E2QAWejEAtXDqBQpboHKlEjO+CfGBryl/0nWJhj5kDSoq+343ei34qir6nRV5FWhZ/0bfaM1nWFi46l9UqFLJEJ9mZGmB1kA8kjKbv400DsLb9GwBKir7dMlJ45z0vKETItitQFP236Ftd1SEVxOgGClmiswLcrDFHRdH30sA3EeXsCRPFC6xVUfR9JSkL4XxF32q2cLHSlDJWu1DIEp02MdANPVs04B0rFkvw4aui7+bPHmLh0bXMYPzxXCIOxZUv+lb3yG+6JqsbKGSJThOLRVg6whvOVuyi7w8HlRR9D7/+J0apKvreWb7om67JEoBClhCYG+khItgP+lL+Pw5Rjbyw5LU3AQBf/rEOrR4n8M7Le1X0/UJRcltuZa/JUsZqFwpZQgB4OpnjcxVF3+sChuNYE3/IiguxZnc4zF7m8c67/SgXn+25DkBFabfaM1miTShkCXllTLtGGOrjxDvGicSY1X8mks0bqC363hGdgu2X2EXf6vfJUsxqEwpZQl4RiURYONQT7g1UFH0Png+5RIre8VGYcGkX81if7rledtng3zg1j6WhjNUuFLKE/IORvhRrg/2YRd9xDs3wZY+JAID5JzehbQr/M8DkRUokPOW/pKDuyQhEu1DIEvIvTe1MED7cizm+tU1f7G7ZBVJOiTV7FsEm/znvPDnPDQoAPRlB11DIEsJjkLcj3urALvr+qHdJ0XeDvEys3LeYWfTNp/RMlnkzAqWsVqGQJYTho/4t4O1swTtWoG+ID4Z8hHw9A3R6GIvpZ7dV+Ljq+2QpZbUJhSwhDCVF3z7Mou8EG2eE9ikp+p564Vd0TbhcoePSkxF0C4UsISo0tDTCilFtmON7W3bFZp/+AKCy6LscNWeyRLtQyBKiRrfmdgjp1pQ5/nX3Cbhm3wyWL3Oxdnc4s+i71N93fNE+WV1AIUtIBczo5Y6OTax5xxRSPUwZMh9ZBiZok34XH534UeWx1G3hoojVLhSyhFSARCzCytE+sGMVfZs3wIwBswAA70Tvw4Bbp5nHUruFi1JWq1DIElJBtqYyrB7jyyz6PtHEH2vajwAAhB9ehSYZ/LfWcmoepEi7C7QLhSwhGmjX2Arz+rCLvpcFjsWFRq3Lir4NFf8t+qbbanULhSwhGnov0A2vt2QXfU8dOBdPjC3h8SwJXx9d85/U/HsLF93xpQsoZAnRkEgkwuIR3mhkZcQ7/tTEEiGD56FIJMbwGycw+tqRcuNqb0aglNUqFLKEVIK5oR7WBvsyi77/cvbE4i7jAABfHFuPVo/u/WNU9TVZOpfVLhSyhFSSp5M5vhjUijn+fbth+KNpAGTFhYjYHVZW9P337gJ+dCarXTQK2QULFkAkEpV7NW/enDn/xo0bGD58OFxdXSESibBixYr/zImIiICXlxfMzMxgZmaGDh064NChQxq/EUJqw2h/ZwzzVVX0PQNJ5g3QKPsxlh5YXi5BmddkKWS1isZnsq1atUJ6enrZ6+zZs8y5BQUFcHNzQ3h4OOzt7XnnNGzYEOHh4YiOjsbly5fRvXt3DB48GDdu8Pd0ElKXiEQifD3EEx4NTHnHcwxMMHlIKOQSKXrdu4iJf/2u/o4vulygVTQOWalUCnt7+7KXjY0Nc66/vz8WL16M0aNHQybj38Q9cOBA9OvXD82aNYO7uzsWLlwIExMTREVFqVyHXC5HTk5OuRchtcFIX4q1Y31hzCj6vm7fFF/0fB8AMPfUT7B91T/LuuOL1UNL6ieNQzY+Ph6Ojo5wc3NDcHAwkpKSqm0xxcXFiIyMRH5+Pjp06KByblhYGMzNzctezs7O1bYOQjTVxNYEi95gF31v8+6D31t1g5RTIjDx6quf8qfspcRM6i/QIhqFbEBAADZt2oTDhw8jIiICiYmJCAwMRG5ubpUWERcXBxMTE8hkMnzwwQfYtWsXWrZkPzkUAEJDQ5GdnV32Sk5mP7iOkJowwMsRb3d05R8UifDx61Nwx6YRjIrkAAAxx3/Gmpb9EhvOJAq0SlLTNArZvn37YsSIEfDy8kLv3r1x8OBBZGVlYfv27VVahIeHB2JiYnDx4kVMmjQJb731Fm7evKny18hksrIvy0pfhNS2j/q1QBtG0fcLfQNMHhKKQnHJZYX2SdeZxwk/fBuXHmQKsURSw6q0hcvCwgLu7u64d++e+skq6Ovro2nTpvDz80NYWBi8vb2xcuXKKh2TkNqgLxVjTbAvLIwYRd/Wzjjn4g0A8E+9iW4Jl3jnFSs5TNl6BU9z5YKtldSMKoVsXl4eEhIS4ODgUF3rAQAolUrI5fQvF6mfnCwMVRZ9J1r9veVr+f6lcMrmL/p+kivHtMirKFbS9dn6TKOQnT17Nk6dOoUHDx7g/PnzGDp0KCQSCYKCggAA48aNQ2hoaNl8hUKBmJgYxMTEQKFQIDU1FTExMeXOfENDQ3H69Gk8ePAAcXFxCA0NxcmTJxEcHFxNb5GQmtfVww5NbI15x0q3cD02toLFyzys2RMG/SL+ou/zCRlYceyuYOskwtMoZFNSUhAUFAQPDw+MHDkS1tbWiIqKgq2tLQAgKSkJ6enpZfPT0tLg4+MDHx8fpKenY8mSJfDx8cGECRPK5jx58gTjxo2Dh4cHevTogUuXLuHIkSPo1atXNb1FQmpHMzv+vbOl3QVH3du/KvqOx8cnNjCPs+rPezhxpwKPtSF1klSTyZGRkSrHT548We6fXV1d1W5F+eGHHzRZAiH1hphxClP6JyJP3wjTB8zCpp1f4K0rBxDt1BJ7W3bh/TUzfo3BgamBcLIwFGaxRDDUXUCIQESMdoJ/tnCdbOKPVR1GAQDCDq9Ck2f8WxGzCgoxeesVKOhGhXqHQpYQoTAaYEqvyZaWFCzvPAbnXLxgXPgSEYyibwC4lpyFbw7eEmKlREAUsoQIhNmyVXYmW0IplmDawDl4bGIF94wkfHNkNbMlZtP5B9h3La36F0sEQyFLiEBEjMfM8D0Z4ZmxJUIGzUWRSIyhN09izLXDzOPO/y0W957kVedSiYAoZAkRCPNJXownI1xy9sSiLm8DAD4/th6ej/hv8slXFGPy1mgUKIqqaaVESBSyhAiE9bxEVU+r/V+7oTjSrD1kxUXlir7/7e7jPHyy6zoVydQDFLKECIR9TVbFuEiEOf2m46GFPZyzH2PZ/qUQMYpkfr+aishLVIxU11HIEiIQ9jVZ1c/4yjEwweTB8yGX6KFnwiW8f/F35u/x+d4buJ6aXfXFEsFQyBIiEPW7C9h/1b9h3xSfvyr6nn16MwKS4njnKYqUmLQ1GtkF/LflktpHIUuIUNTtk1Uj0rs3fvPsDimnxKq938I27znvvOTMF5i14xpdn62jKGQJEQjrjq+ycXWhKBLhk16TcdvGBXb5z/Hdvm8hURbzTj126zG+P32/skslAqKQJUQg7N0Fr8Yr8MDE0qLvPH1DdEiKw8wzW5hzvz1yBxfvZ1RipURIFLKECETtNdkK/u3+vnVDzOszFQAwJWoHut/7i3desZLDh79cpaLvOoZClhCBsM5koeaR4HwOtAjERr+BAEqKvhtmPeKd9yRXjqm/UNF3XUIhS4hA2C1cr8Y1/KLqm27v4qqDB8zl+Vi7J5xZ9H3hfgaW/0FF33UFhSwhAlF7xxfjTNaS8XywQokepgyZh+cGpvB6dA+f/vk/5u+9+sQ9/Hn7sWYLJoKgkCWkhqm7JtvSwQz2Zga8Y2lmdpg+cDaUEOHNqwcx6OZJ5u8z49drSHleUNXlkiqikCVEIOp2F7BIJWKsHuMDqZj/AKfc/LCqY2nR92o0fZbEOy/7RSGmbL0CeRH/ti9SMyhkCRGM6icjqIrbtq5WmN+3OXN8ZacgnHXxLiv6NlK84J13LSUbCw9Q0XdtopAlRCCVaeEqGS8xvnNj9GllzzuntOj7kYkVmmUkI+wwu+h784WH2EtF37WGQpYQgVT0yQj/GX8VliKRCN+O8IKrtRHvvAxjC0wZPB9FIjEG3zqFsTGHmGspKfrOrejSSTWikCVEIOx9sq/GK7CFy8xAD2uD/SCT8v9RjW7YEuFd3wYAfHr8e3il82/dKlAUY9KWK1T0XQsoZAkRSEWeVss7/q8ft3Q0w1dDPJm/zwb/v4u+1+4Oh/kL/jPW+Cd5+Oj3OCqSqWEUsoQIRP01Wdb4fwdGtnXGyLYNmb/RnH7T8cDCAQ1znmDpgWXMou/dMWnY9hf/bgQiDApZQgSi/skIFTuTLfXlYE80tzflHcsxMMHkIaFlRd8fXPyNua4v9t5EXAoVfdcUCllCBKL2yQgahqyBngQRY/1gIpPyjt9s4IZPe00CAMw+/TPaJ8XyzlMUU9F3TaKQJaSGlZV2M7dwsa+ZNrYxxuI3vJjj2716YYdnT0jKir4zeeelPH+BmdtjoKQiGcFRyBIiEOY1WVUPUgT7TLZU39YOGN+5MfM3/fT1D3DL1hW2+VlYvZdd9H389hOsp6JvwVHIEiIQ5u6CCt6MoMr8vs3h52LJO/ZSr6ToO1ffEAHJ1zH79M/M4yw5egdRVPQtKApZQgTC3Cer7kGKFUhZvVf9BlbG+rzjiVZOmNd3GgBg0sWd6Bl/kXdeadH3k9yX6n9TUikUsoQIRN3jEjXZwsXHwdwQK0e3YYb5wead8aPfIADA0gPLmEXfT18VfRcV82/7IlVDIUuIQCrbJ6vJvQKBzWwxrUcz5nhYt3dwxbGk6DtidxhkRQreeVH3M7GMir4FQSFLiECYW7jUPBlB0+/7P+zeDIHNbHjHCiV6mDJ4PjINzdD6cQI+Pc4u+l57MgHHb1HRd3WjkCVEIMzdA6hYQUxFScQirBjVBg7m/EXf6Wa2mD5gFpQQYWzMIQy5cYJ5rBm/xiA5k4q+qxOFLCFCYW7hUrdPVnPWJjKsHuPLLPo+7eaH7zqNBgB8c2Q1mj19yDsv52URpmyjou/qRCFLiEDYW7hKx6t+Tfaf/Fws8VG/Fszx7zqOxmlXHxgVyrFudxiM5fxnrLEp2fh6PxV9VxcKWUIEwr4Zoer7ZFne6eSKfq3ZRd/TB85Guok1mmSmIOwIu+j756iH2BOTWoWVkFIUsoQIpLLXZCt9KouSL9sWDfdCYxtj3vFMI3OEDJ6HQrEEg26dxptXDzCPFfp7HOIfU9F3VVHIElLT1PXJVvHwpgZ6iBjrCwM9VUXf7wAAPj2+Ad5pd3jnFSiKMWnrFeTLqei7KihkCRFIZZ9WWx2d2s3tzfDVYHbR9w9tB+OQe0foK4uwZk84LF7k8M679yQPoVT0XSUUsoQIRO2TEQQOrhFtnTGqrTP/oEiEuf2mIdHSAQ1znmLZfnbR995radhykYq+K4tClhCBqL/jizVefeH7xeBWaOFgxjuWKzPG5CGheCnVR/f7lzEpaifzOF/tu4nYlKxqW5cuoZAlRCDsEH01ztpdUI0nuAZ6EkQE+8KUUfR9y+7vou9ZZ7agw8NrvPMUxUpM2nIFWQX8t+USNgpZQoTCvK229OfChywAuNoYY/EIb+b4Dq9e2N66pOj7u72LYZfLX32YmvUCs7Zfo6JvDVHIEiIQtVu4BNgny9LH0x7vBTKKvgF81utV0XdBFlapKfpedzpBgBVqLwpZQgRS+ScjCHOmOLdPc7RVUfQ9qbToO+UG5pzezDzOkiN3cCGBir4rikKWEIGwdhdAzZmsUEqKvn1hzSj6fmDlhDn9pgMAPrj4G3rFR/HOU3IoKfrOoaLviqCQJUQgam+rraFrsv9kb26AlaN9mGs77NEJG9oOBgAsPbAczoyi72d5coRQ0XeFUMgSIhD112RZ48Ke4XZuZoMZPd2Z4+Fd38FlpxYwU1P0/VdiJpYcpaJvdShkCRGI+muyNX8mWyqkW1O85m7LO1YkkSJk0DxkGJrB83ECPj/2PfM4604l4I+bVPStCoUsIQJhPhmhFnYX/Jv4VdG3I6Po+5GZDaYNnAMlRBhz7TCGXT/OPNas7VT0rQqFLCF1TE31BFgZ62N1sC/0JPz/MTjb2AcrOwUBABYeWQuPpw945+W8LMKkrdF4WUhF33woZAkRSG30yWrKt5ElPlZR9L2q4yicdvWBYZEca3eHM4u+r6fm4Kv9N4VaZr1GIUuIQCr7ZIQaTVkAb3V0RX8vB96x0qLvNFMbNMlMwaLDq5gXjbdeTMKuqylCLrVeopAlRCCV3sIl1IIYSou+3SpQ9D3g9hmMu7KfeayPfr+Ou1T0XQ6FLCECYT75QN0WrlrobjWRSbFWRdH3FacW+KbbuwCAT/78AW0YRd8vCovxwZZo5FHRdxkKWUIEoq60u66cyZZqbm+GhUNaM8c3+g3CAY9OJUXfu9lF3/ef5lPR9z9QyBIikMqWdtdmNg33a4igduyi73l9p+G+pSOccp9ixb6lzKLvfdfSsCWK/7HjuoZClhCB1IXS7sr4fGArtHLkL/rOkxmVFX13TYzGlAvbmcf5cv9NxCRnCbTK+oNClpAaVtYnWwfPZIGSou+1wb4wNeAv+r5t1xifvD4ZADDzzFZ0fBDDO6+wmMOUrVfwPF+3i741CtkFCxZAJBKVezVv3pw5/8aNGxg+fDhcXV0hEomwYsWK/8wJCwuDv78/TE1NYWdnhyFDhuDOHf6L6oRoA7XXZOvApUwXa2MsVVH0vbN1T0R6vQ4xOKzctwQNcp/xzkvNeoGZ22N0uuhb4zPZVq1aIT09vex19uxZ5tyCggK4ubkhPDwc9vb2vHNOnTqFKVOmICoqCn/88QcKCwvx+uuvIz8/X9OlEVKnMG+rZV1HqGNeb2WPia+5Mcc/7/k+bto1Liv6lhbz7yg4cecpIk7pbtG3xiErlUphb29f9rKxsWHO9ff3x+LFizF69GjIZDLeOYcPH8bbb7+NVq1awdvbG5s2bUJSUhKio6M1XRohdUplW7jqkjm9PeDvyl/0LdeTYdKQUOToG6Fdyk2VRd9Lj97B+Xv8Z7vaTuOQjY+Ph6OjI9zc3BAcHIykpOp9VHB2djYAwMrKSuU8uVyOnJycci9C6hLmCavaFq66k76lRd82JvxF3w8tHTGn/3QAwPt//Y7ed8/zzlNywNTIq3isg0XfGoVsQEAANm3ahMOHDyMiIgKJiYkIDAxEbm713OGhVCoxffp0dOrUCZ6enirnhoWFwdzcvOzl7MzYdkJILalLz/iqigZmJUXfYsYbOuLeEd/7DwUALD6wAo2ep/POe5anwIfbdK/oW6OQ7du3L0aMGAEvLy/07t0bBw8eRFZWFrZvZ2/j0MSUKVNw/fp1REZGqp0bGhqK7OzssldycnK1rIGQ6qLummxd/uLr3zo1tcHMXuyi72+7vIVLTi1hpigoKfoulPPO++tBJhYf1a0vtqu0hcvCwgLu7u64d+9elRcSEhKC/fv348SJE2jYsKHa+TKZDGZmZuVehNQlavfJ1tKTESprctem6Oqhouh78Fw8MzJHqyf3seDYeuZx1p+6j6M3+B9ro42qFLJ5eXlISEiAgwN/g09FcByHkJAQ7Nq1C3/++ScaN2Y/tpiQ+oR5uaAOPBmhMsRiEZaPbAMnC0Pe8cemfxd9B8UexfA4FUXfO64hKUM3ir41CtnZs2fj1KlTePDgAc6fP4+hQ4dCIpEgKKik2HfcuHEIDQ0tm69QKBATE4OYmBgoFAqkpqYiJiam3JnvlClTsGXLFmzbtg2mpqZ49OgRHj16hBcvXlTTWySklqh5MgLr6msdzVgAgKWxPtaoKPo+59oGyzuPAQB8fZRd9J2rQ0XfGoVsSkoKgoKC4OHhgZEjR8La2hpRUVGwtS35K0RSUhLS0/++6J2WlgYfHx/4+PggPT0dS5YsgY+PDyZMmFA2JyIiAtnZ2ejatSscHBzKXr/++ms1vUVCagf7TFZdC5cw66kubZwt8En/lszx1R1H4VRjXxgWyRGx6xuYMIq+b6Tl4It92l/0zX/fHIO6L6ROnjxZ7p9dXV3VbkepS9tVCKlOlW3hqtvnsiXGdXDBpQeZ2B/7350EnEiM6QNmYf+m6XB7nobwQ98hZPA83g/kl7+S0NbFEsP91H8PU19RdwEhAmG1cEHdFq66n7EQiUQIH+4FN1v+ou/nr4q+FWIpBtw5i7ej9zGP9fHuONx5pL1F3xSyhAhE3d2z7H209YOJTIp1Y/1gqCfhHb/q1BwLu48HAHx84gf4pt7infeyUIlJW7W36JtClhCBqL8mW/fv+FLHvYEpFg5l3zj0k+8A7G8eCD1lMVbvWQTLgmzeefef5mPeb7H16r1XFIUsIQKpb09GqKxhvg0xJqAR/6BIhHl9PkSClRMcc59hxX520feB2HRsvqB9Rd8UsoQIpD4+GaGyPhvQEp5O/DcE5b8q+n4hlaFL4hWEnGfvHPr6wE1cTXou1DJrBYUsIUJRc8cXS338K7OBngRrx/gxi77v2Lri494lRd8zzm5DJx0q+qaQJUQglb4mK9B6hNbI2gjLRrZhjv/u2QPbvHtDDA7f7f0W9jn81Ydp2S8x/VftKfqmkCVEIMyCmNJxVpzW42zp1bIB3u/CLvr+ouf7uN6gCaxf5GD13kXMou9Td59izYmqd6LUBRSyhAik0nd8CbOcGjPndQ+0a8zfBy2X6mPy4PnIkRmjbeotzDu1iXmc5cfu4pwWFH1TyBIigGd5cvzvzH3GqLqqw/ods1KJGKuDfGBjwv80lCRLB8zqPwMA8N6l3eh9h130PS3yKh5l1++ibwpZQqrZk9yXCPo+CrcZdzGVtXBp2TXZf7IzM8B3QW2YRd9/NGuP9e2GAQAWH1wBl+dpvPOe5Snw4S9XUFiPi74pZAmpRo9zXmL091GIf5LHnGOfmwFAxeUEbUhZAB2b2GDW6x7M8cWvjcNfDdUXfV968ByLj9Tfom8KWUKqSXr2C4z+Pgr3n7KftByYeAXhh1cBAC40as07R6anPX8sJ3Vpgu7N7XjHiiRShAyah6dGFmj5JBFfqCj6/v70fRy+Xj+LvrXn/01CalFq1guMWh+FxGfsgO2acAkbfvsKBkUK/NE0AF/2mMg7r7ENf+lKfSQWi7BspDez6PuJqTWmDZyNYpEYo2OPYkTsH8xjzdlxDQ8z2J9vXUUhS0gVJWcWYNT6C0jKZDf997h3Eet3LYSsuBCH3Ttg8pD5UEj1+OcyzvzqKwsjfaxVUfR93rUNlnUOBgB89UcEWjzh/8IwV16ESVuu1LuibwpZQqrgYUY+Rq2/gJTn7Cd59L57HhG7wiArLsJ+j84IGTQPhRL+gDUzkCI4wEWo5dYab2cLfDaAXfS9tsMInHDzg0GRAmt3h8FUzn/GejM9Bwv23hBqmYKgkCWkkhKf5WPU+iikqdhi1Pf2Wazeswj6yiLsadEF0wbNQZGE/9ZTkQj49g0vWBrrC7XkWjW2vQsGeTvyjnEiMWYMmIUUM1s0fp6ORQdXMr8BjLyUjJ3RKUIutVpRyBJSCfee5GHU+gt4lMMO2IE3T2HV3m+hpyzGb626YcaAmSgW83evikTAomFe6ONZ+YeS1nUikQhhw1qjqZ0J73iWoRmmDJ4PhViKfnfP493Le5nH+mR3HG4/yhFqqdWKQpYQDd19nIvR30fhSS7/liMAGHLjBFbsXwopp8QOz56Y0286lIyAFYuAJW94Y6S/s1BLrjOMZVJEBPsyi76vOXrg61dF36Enf4Rvioqi7y1XkPuyULC1VhcKWUI0cCs9B0HfR+FZHjtg34g7hmX7l0HCKbHNuzfm9puqMmCXj2qj1c+4+rdmDUwRPpx/+xoAbPYdgH2lRd97F8GKUfSd+Cwf83+Lq/N3yFHIElJBN9KyMeZ/UchQUcM36toRfHtwJcTg8LNPP3zcewo4Ef8fM4lYhO+CfDC4jZNQS66zBrdxwtj27KLv+X0+RIJVw5Ki731LIFby7yg4EJeOTecfCLfQakAhS0gFxKVkY8z/LuJ5Afuvp8FXD2LR4VUQg8NGv4H4tNckZsBKxSKsDvLBAC/+L4J0wacDWqK1kznvWL7MCB8MCUWBngyvPbiKD1UUfS88cAvRD+tu0TeFLCFqxCRnYcyGKGS/YAfsuOh9WHh0LQBgQ9vB+KLHRObzZ/QkIqwN9kXf1tr7JVdFyKQSrA32hRmj6Dve1gUfvz4FADDt3C8ITLzCO69IySFk2xVk1tGibwpZQlSIfvgcb264iNyX7Cepjr+0G1++uiV0XcBwfN19AjNg9SVirBvrh9db2Quy3vrG2Up10fcuz+7Y2qYPxOCwct8SOOQ85Z2XXoeLvilkCWG49CAT4364iFwVj6qeePE3fPrnBgDAqg6jEN7lbXbASsX4fpwferRoIMRy662eLRtgUtcmzPEve0xEXIMmsHqRg9V7FkGvmP9vFKfvPsXqOlj0TSFLCI+o+xl468e/kK9g38I5+cJ2fHRyIwBgRacgLA0cywxYmVSMH9/yR1cP7bpltrrM6uWOAFVF30NCkSMzhl/abcw/uYl5nOXH7uJsfN0q+qaQJeRfzt17hrc3/oUCFQE79dwvmHt6MwBgSeBYrOgczAxYQz0JNr7jj87NbARZrzaQSsRYNcYHtqb8Rd/JFvaY2X8mAGD85T3oc+cc7zyOA6ZGXkV6Nvs255pGIUvIP5y++xTvbrqEl4WMkmiOw4wzWzDz7FYAQHiXt7G642jm8Yz0Jdj0jj86NqGAVcfO1ACrgnyYRd/HmgVgXcBwACVF366ZqbzzMvMVCNl2tc4UfVPIEvLKidtPMGHzZciL2AE79/RPmHY+EgDwdbd3sa79G8zjmcik2PxuOwS4WQuxXK3U3s0as3urLvq+6OwJU8ULROwOg0Eh/23N0Q+fY9Gh20ItUyMUsoQAOHbzMd7/ORoKFQH70YkfMTlqJwDgix7vYcOrx6fwMZVJsXl8O7R15b/OSNg+eK0Js+6xWCxByKC5eGpsgRZPH+DLP9Yxj7PhbCIOX08XapkVRiFLdN7h648waWs0FKy/XnIcPjv+P0y8tAsA8EmvSdjYdjDzeGYGUmx9LwC+jSyFWK7WE4tFWDrSGw0t+Yu+n5pYYerAuSgWiTEy7hhGxB5lHmvOjlg8UFGkXhMoZIlOOxiXjpBtV1BYzL+/UsQp8cWxdXg3uqQRKrR3CLb49mcez8JID9veaw+vhhZCLFdnlBZ960v4I+qCi1fJbg4AX/2xDi0fqyj63lq7Rd8UskRn7b2Whg9/uYoixgZ2EafEwiNr8daVA1BChDl9p+KXNn2Yx7My1se2Ce3hybhVlGjGq6EFPhvILvqOaP8GjjfxV1v0fSs9B5/vqb2ibwpZopN2XU3B9MirKFYRsOGHVmHMtcMoFokxu/907PB6nXk8GxN9/PJee7R0NBNqyTopOKARhrRhF33P7D8TKWZ2cM1Kx7cqir5/vZyM7ZeThVwqE4Us0Tk7Lidj5vZrYN2BKVYWY8nBFRgV9weKRWLMGDATv3v2YB7P1lSGyInt4WFvKtCKdZdIJMLCoa3RjFH0nW1oWvK8NLEUfe+ex/jLe5jH+nT3ddxMq/mibwpZolMi/0rC3N9iWSc8kCiLsezAMgy//ieKRGJMHTgHe1t2ZR6vgVlJwDa1o4AVirFMioixvjDS5+/kjXVwx5c93gMAzD+5EX4pN3nnyYuUmLw1Gjk1XPRNIUt0xs9RDzH/9zhmwEqLi7By3xIMuXkKhWIJQgbPw4EWgczjOZgb4NeJHdDElv8si1SfpnamCBvGLvre4tMPe1p0KSn63rMI1vlZvPMeZBRg3s7YGi36ppAlOmHTuUR8uvs6c1yvuBCr9n6LAbfPQCGWYvKQUBz26MSc72RhiF8ndoCrjbEQyyU8BrdxwpvtGU/yFYkQ2icE8dbOcMjLUFn0fej6I/x47oFwC/0XClmi9TacuY8F+/j/CgkA+kWFWLNnEfrePQ+5RIoPhn6EP5q1Z853tjJE5MT2aGRtJMRyiQqfDGgBr4b8uzcK9A0x6VXRd+DDGEw7F8k8TtjBmiv6ppAlWm3dqQR8fYD/YXwAICtSIGL3N3g9PgpyiR4mDvsUfzZtx5zvYm2EXyd2gLMVBWxtkEklWDPGF+aGerzj92waYX6fDwEAH56PRJf70bzzSou+M1Q8q626UMgSrbX6z3iEq7h/XVYox/rfF6JHwiW8lOrj3Tc+xyk3P+Z8Nxtj/DqxAxwt+O9EIjXD2coIy0d5M8f3tuyKLW36QgwOy/cvrfWibwpZopVWHLuLJUfvMscNCl9iw29foWtiNAr0ZHjnjQU459qGOb+JrTEiJ7aHvbmBAKslmurevAGmdGMXfX/V4z3E2jeF1YscrNkTziz6PhP/DJGXhN0/SyFLtM7/Tt/HimPxzHFDxUv8uPNLBD6MQb6eAd4e8QUuuHgx57s3MEHkxA6wM6OArUtm9HRHB0bDmVyqj8mD5yNbZgzftDsIPbGReZx1pxIE3W1AIUu0yo20bIQdYl+DNZYXYNOOz9ExKRa5+oYYN/JL/OXsyZzf3N4Uv7zXnlkmTWqPVCLGyqA2zP9vUizsMXNASdH3u9F70e/2Wd55SZkFuPckT7B1UsgSrbLmxD3mnVwm8gL8tONzBKTcQI6+EcaN/ArRDdn3xrd0MMMv77WHtQkFbF1lZ2qA1UE+kDCavo83DcDaV52/I+L+YN52myhgUxf/s3gJqYcURUocv/WEd8zsZR5+2v45fNLvIFtmjLGjvkacQzPmsVo7mePn8e1gYaQv1HJJNQlws8ac3h7MLzmXBr6JdFMb/OLdh/mIICG/+qIzWaI1kp8XMJ9qMOGvXfBJv4PnBqYYM3qhyoBt42yBLRMCKGDrkYmBbujJeApwsViCn30HoEjCPqd0EXDPM4Us0Rqqnun0XacgRHq9jjFBC3HDvilznp+LJX4e3465D5PUTWKxCEtHeMPZSvPtdY7mBnAXsHuCQpZoDQdz9h+wIokU8/tOxS07N+acdq5W+OnddjA1oICtj8yN9BAR7Ad9qWax9n6XJhCznt5YDShkidYwN9SDN+OWS3Xau1lh07v+MJHR1xT1maeTOb4ezN4t8m8dm1hjLKsPoZpQyBKt8m7nxhr/ms5NbbDx7XYw0qeA1QYj/Z3x1eBWkKo5O+3qYYvvx7Vl7kyoLhSyRKsM8nZEd8aTTvm85m6LDW+1hSGjq5TUT292cMWhaYEY3MYRxv/6/7aNswVWjm6DH9+qmb+5iLiaLFYUUE5ODszNzZGdnQ0zM3oEiC7Llxfhgy3ROBP/TOW8fq3tsWxkGxjoUcBqs6JiJVKzXqCwWIkGZgbVcs1dk7yhvx8RrWMsk2LTO+0QeSkJ60/dR1JmQbnxpnYmmNy1CYb6OEHE2DdJtIdUIoaLde31/tKZLNFqHMch8Vk+HmYWQASgsY0xGlkZUbiSKqEzWUJeEYlEcLM1gRs9IobUEvriixBCBEQhSwghAqKQJYQQAVHIEkKIgChkCSFEQBqF7IIFCyASicq9mjdvzpx/48YNDB8+HK6urhCJRFixYsV/5pw+fRoDBw6Eo6MjRCIRdu/erel7IISQOkvjM9lWrVohPT297HX2LP8jHQCgoKAAbm5uCA8Ph729Pe+c/Px8eHt7Y82aNZouhRBC6jyN98lKpVJmYP6bv78//P39AQDz58/nndO3b1/07dtX02VALpdDLv/7mek5OTkaH4MQQoSm8ZlsfHw8HB0d4ebmhuDgYCQlJQmxLrXCwsJgbm5e9nJ2dq6VdRBCiCoahWxAQAA2bdqEw4cPIyIiAomJiQgMDERubq5Q62MKDQ1FdnZ22Ss5WdhnpxNCSGVodLngn3+t9/LyQkBAAFxcXLB9+3aMHz++2henikwmg0xGTxElhNRtVdrCZWFhAXd3d9y7d6+61kMIIVqlSiGbl5eHhIQEODg4VNd6CCFEq2h0uWD27NkYOHAgXFxckJaWhs8//xwSiQRBQUEAgHHjxsHJyQlhYWEAAIVCgZs3b5b979TUVMTExMDExARNm5Y8MTQvL6/cmXBiYiJiYmJgZWWFRo0aVcubJISQ2qJRyKakpCAoKAgZGRmwtbVF586dERUVBVtbWwBAUlISxOK/T47T0tLg4+NT9s9LlizBkiVL0KVLF5w8eRIAcPnyZXTr1q1szsyZMwEAb731FjZt2lThtZXW4tJWLkKI0EpzpiJ13FpT2p2SkkLbuAghNSo5ORkNGzZUOUdrQlapVCItLQ2mpqZ1qvU+JycHzs7OSE5Opic28KDPRzX6fNhq87PhOA65ublwdHQs97d3PlrzZASxWKz2vyi1yczMjP6QqECfj2r0+bDV1mdjbm5eoXnUwkUIIQKikCWEEAFRyApMJpPh888/p7vTGOjzUY0+H7b68tlozRdfhBBSF9GZLCGECIhClhBCBEQhSwghAqKQJYQQAVHIVoMrV66gV69esLCwgLW1NSZOnIi8vDyVv+bfD6QsfS1evBgAcPLkSeacS5cu1cTbqhZCfDalDhw4gICAABgaGsLS0hJDhgwR8J0IQ6jPp/Thpf98hYeHC/12qpWQ/+4AJY+watOmDUQiEWJiYgR6FwA4UiWpqamcpaUl98EHH3C3b9/m/vrrL65jx47c8OHDVf669PT0cq8ff/yRE4lEXEJCAsdxHCeXy/8zZ8KECVzjxo05pVJZE2+tyoT6bDiO43bu3MlZWlpyERER3J07d7gbN25wv/76q9BvqVoJ+fm4uLhwX375Zbl5eXl5Qr+laiPkZ1Nq6tSpXN++fTkA3NWrVwV6JxxHIVtF69ev5+zs7Lji4uKyn8XGxnIAuPj4+AofZ/DgwVz37t2Z4wqFgrO1teW+/PLLKq23Jgn12RQWFnJOTk7chg0bqnW9NU3If3dcXFy45cuXV9dSa5zQf64OHjzINW/enLtx44bgIUuXC6pILpdDX1+/XEmEoaEhAKh8XPo/PX78GAcOHFD5CJ+9e/ciIyMD77zzTtUWXIOE+myuXLmC1NRUiMVi+Pj4wMHBAX379sX169er9w0ITOh/d8LDw2FtbQ0fHx8sXrwYRUVF1bPwGiDkZ/P48WO89957+Pnnn2FkZFR9i2agkK2i7t2749GjR1i8eDEUCgWeP39e9vjz9PT0Ch3jp59+gqmpKYYNG8ac88MPP6B37951ugTn34T6bO7fvw8AWLBgAT755BPs378flpaW6Nq1KzIzM6v/jQhEyH93pk6disjISJw4cQLvv/8+vvnmG8ydO7fa34NQhPpsOI7D22+/jQ8++ABt27YVZO3/Idg5cj03b948DoDK161btziO47itW7dyDRo04CQSCaevr8/Nnj2ba9CgARceHl6h38vDw4MLCQlhjicnJ3NisZjbuXNntby3qqrtz2br1q0cAG79+vVlP3v58iVnY2PDrVu3rvreaCXV9ufD54cffuCkUin38uXLKr23qqrtz2blypVcp06duKKiIo7jOC4xMVHwywV0Wy3D06dPkZGRoXKOm5sb9PX1y/758ePHMDY2hkgkgpmZGSIjIzFixAiVxzhz5gxee+01xMTEwNvbm3fOV199hVWrViE1NRV6enqav5lqVtufzYkTJ9C9e3ecOXMGnTt3Lvt5QEAAevbsiYULF1bynVWP2v58+Ny4cQOenp64ffs2PDw8Kv5mqlltfzZDhgzBvn37ynVOFxcXQyKRIDg4GD/99FMl35kKgsW3Dvvhhx84IyMj7vnz52rnvvXWW5yfnx9zXKlUco0bN+ZmzZpVjSusPdXx2WRnZ3MymazcF18KhYKzs7Mrd3ZbH1Xnvzv/tGXLFk4sFnOZmZlVXGHtqY7P5uHDh1xcXFzZ68iRIxwAbufOnVxycrIAq6bdBdVi1apVXHR0NHfnzh1u9erVnKGhIbdy5cpyczw8PLjff/+93M+ys7M5IyMjLiIignnsY8eOlfsrVH0j1Gczbdo0zsnJiTty5Ah3+/Ztbvz48ZydnV29CxEhPp/z589zy5cv52JiYriEhARuy5YtnK2tLTdu3DhB30t1E/LPVamauFxAIVsN3nzzTc7KyorT19fnvLy8uM2bN/9nDgBu48aN5X62fv16ztDQkMvKymIeOygoiOvYsWN1L7nGCPXZKBQKbtasWZydnR1namrK9ezZk7t+/boQb0FQQnw+0dHRXEBAAGdubs4ZGBhwLVq04L755ptavx6rKSH/XJWia7KEEFLP0RYuQggREIUsIYQIiEKWEEIERCFLCCECopAlhBABUcgSQoiAKGQJIURAFLKEECIgCllCiFY6ffo0Bg4cCEdHR4hEIuzevVvjY3AchyVLlsDd3R0ymQxOTk4aFxBJNf5dCSGkHsjPz4e3tzfeffddlV3NqkybNg1Hjx7FkiVL0Lp1a2RmZmrcWUy31RJCtJ5IJMKuXbvKPWxTLpfj448/xi+//IKsrCx4enpi0aJF6Nq1KwDg1q1b8PLywvXr16tUD0mXCwghOikkJAQXLlxAZGQkYmNjMWLECPTp0wfx8fEAgH379sHNzQ379+9H48aN4erqigkTJmh8JkshSwjROUlJSdi4cSN27NiBwMBANGnSBLNnz0bnzp2xceNGACWPOXr48CF27NiBzZs3Y9OmTYiOjsYbb7yh0e9F12QJITonLi4OxcXFcHd3L/dzuVwOa2trAIBSqYRcLsfmzZvL5v3www/w8/PDnTt3KnwJgUKWEKJz8vLyIJFIEB0dDYlEUm7MxMQEAODg4ACpVFouiFu0aAGg5EyYQpYQQhh8fHxQXFyMJ0+eIDAwkHdOp06dUFRUhISEBDRp0gQAcPfuXQCAi4tLhX8v2l1ACNFKeXl5uHfvHoCSUF22bBm6desGKysrNGrUCGPHjsW5c+ewdOlS+Pj44OnTpzh+/Di8vLzQv39/KJVK+Pv7w8TEBCtWrIBSqcSUKVNgZmaGo0ePVnwhgj1zgRBCatGJEyd4Hzn+1ltvcRxX8gijzz77jHN1deX09PQ4BwcHbujQoVxsbGzZMVJTU7lhw4ZxJiYmXIMGDbi3336by8jI0GgddCZLCCECoi1chBAiIApZQggREIUsIYQIiEKWEEIERCFLCCECopAlhBABUcgSQoiAKGQJIURAFLKEECIgCllCCBEQhSwhhAjo/8+pyIGibI1kAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "buf = lines.buffer(distance = 1000)\n", "bp = buf.plot()\n", "lines.plot(ax=bp, color='red')\n", "print(buf)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "注意,现在必须使用 polygon GEOMETRIES。它不再具有与之关联的线属性。如果想要添加回属性数据,需要用新的缓冲区几何值替换原来的几何列。" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " ID geometry\n", "0 1 POLYGON ((-9737657.488 5113325.388, -9737601.7...\n", "1 2 POLYGON ((-9750364.761 5117342.850, -9750369.3...\n" ] } ], "source": [ "line_buffer = lines.copy()\n", "line_buffer['geometry'] = buf\n", "print(line_buffer)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "还有许多其他参数可以使用,即 `cap_style` 和 `single_sided`。" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "buf = lines.buffer(distance = 3000, cap_style = 2)\n", "bp = buf.plot()\n", "lines.plot(ax=bp, color='red');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "属性|值\n", ":-|:-\n", "round|1\n", "flat|2\n", "square|3\n", "\n", "还可以创建左侧或右侧缓冲区。左边使用负距离,右边使用正距离。" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "buf_right = lines.buffer(distance = 3000, single_sided = True)\n", "bp = buf_right.plot(color='green')\n", "\n", "buf_left = lines.buffer(distance = -1500, single_sided = True)\n", "buf_left.plot(ax=bp, color='purple')\n", "lines.plot(ax=bp, color='white');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 最近邻分析\n", "\n", "常用的 GIS 任务是能够找到最近的邻居。例如,您可能用 Point 对象表示您的家位置,然后用另一组位置表示公共交通站点。然后,比较典型的问题是“哪一站离我家最近?”这是典型的最近邻分析,其目标是找到与另一个几何最接近的几何。\n", "\n", "在 Python 中,这种分析可以通过名为 `nearest_points()` 的形状良好的函数来完成,该函数返回输入几何图形中最近点的元组。\n", "\n", "### Shapely 最近的点\n", "\n", "从测试如何使用 Shapely 的 {func}`nearest_points` 函数找到最近的点开始。\n", "\n", "创建原点(origin Point)和几个目的地点,并找出最近的目的地。" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "from shapely.geometry import Point, MultiPoint\n", "from shapely.ops import nearest_points\n", "\n", "orig = Point(1, 1.67)\n", "dest1, dest2, dest3 = Point(0, 1.45), Point(2, 2), Point(0, 2.5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "为了能够从原点找到最近的目标点,需要从目标点创建 MultiPoint 对象。" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MULTIPOINT (0 1.45, 2 2, 0 2.5)\n" ] } ], "source": [ "destinations = MultiPoint([dest1, dest2, dest3])\n", "print(destinations)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "好了,现在可以看到所有的目标点都表示为单一的多点对象。可以通过使用 `nearest_points()` 函数找到最近的目标点。" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(, )\n", "Coordinates of original point: POINT (1 1.67)\n", "Coordinates of closest destination point: POINT (0 1.45)\n" ] } ], "source": [ "nearest_geoms = nearest_points(orig, destinations)\n", "original_point, nearest_destination = nearest_geoms\n", "print(nearest_geoms)\n", "print('Coordinates of original point:',original_point)\n", "print('Coordinates of closest destination point:',nearest_destination)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "如您所见,`nearest_points` 函数返回几何图形元组,其中第一项是原点的几何图形,第二项(在索引 1 处)是距离目标点最近的实际几何图形。因此,最近的目的地点似乎位于坐标 $(0,1.45)$。\n", "\n", "这就是从一组点中找到最近点的基本逻辑。\n", "\n", "### geopanda 最近的点\n", "\n", "当然,前面的例子还没有真正有用。因此,接下来将展示如何使用 GeoDataFrames 从一组原点到一组目的地点中找到最近的点。在本例中,将重新创建前面的示例,但使用 geopanda,但该数据可以来自任何 shapefile。\n", "\n", "- 首先,需要创建函数,该函数利用前面的函数,但被定制为可以使用两个 `GeoDataFrames`。" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "from shapely.ops import nearest_points\n", "\n", "def _nearest(row, df1, df2, geom1='geometry', geom2='geometry', df2_column=None):\n", " \"\"\"Find the nearest point and return the corresponding value from specified column.\"\"\"\n", "\n", " # create object usable by Shapely\n", " geom_union = df2.unary_union\n", "\n", " # Find the geometry that is closest\n", " nearest = df2[geom2] == nearest_points(row[geom1], geom_union)[1]\n", " # Get the corresponding value from df2 (matching is based on the geometry)\n", " if df2_column is None:\n", " value = df2[nearest].index[0]\n", " else:\n", " value = df2[nearest][df2_column].values[0]\n", " return value\n", "\n", "def nearest(df1, df2, geom1_col='geometry', geom2_col='geometry', df2_column=None):\n", " \"\"\"Find the nearest point and return the corresponding value from specified column.\n", " :param df1: Origin points\n", " :type df1: geopandas.GeoDataFrame\n", " :param df2: Destination points\n", " :type df2: geopandas.GeoDataFrame\n", " :param geom1_col: name of column holding coordinate geometry, defaults to 'geometry'\n", " :type geom1_col: str, optional\n", " :param geom2_col: name of column holding coordinate geometry, defaults to 'geometry'\n", " :type geom2_col: str, optional\n", " :param df2_column: column name to return from df2, defaults to None\n", " :type df2_column: str, optional\n", " :return: df1 with nearest neighbor index or df2_column appended\n", " :rtype: geopandas.GeoDataFrame\n", " \"\"\"\n", " df1['nearest_id'] = df1.apply(_nearest, df1=df1, df2=df2, \n", " geom1=geom1_col, geom2=geom2_col, \n", " df2_column=df2_column, axis=1)\n", " return df1 " ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " name geometry\n", "0 Origin_1 POINT (-77.30000 38.94000)\n", "1 Origin_2 POINT (-77.41000 39.93000)\n", " name geometry\n", "0 Baltimore POINT (-76.61000 39.29000)\n", "1 Washington POINT (-77.04000 38.91000)\n", "2 Fredrick POINT (-77.40000 39.41000)\n" ] } ], "source": [ "# generate origin and destination points as geodataframe\n", "orig = {'name': ['Origin_1','Origin_2'], \n", " 'geometry': [Point(-77.3,38.94),Point(-77.41,39.93)]}\n", "orig = gpd.GeoDataFrame(orig, crs=\"EPSG:4326\")\n", "print(orig)\n", "\n", "dest = {'name': ['Baltimore','Washington', 'Fredrick'], \n", " 'geometry': [ Point(-76.61,39.29,), Point(-77.04,38.91), Point(-77.40,39.41)]}\n", "dest = gpd.GeoDataFrame(dest, crs=\"EPSG:4326\")\n", "print(dest)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "找到 `df2` 到 `df1` 质心的最近点(从 `id` 列取值)" ] }, { "cell_type": "code", "execution_count": 13, "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", "
namegeometrynearest_id
0Origin_1POINT (-77.30000 38.94000)Washington
1Origin_2POINT (-77.41000 39.93000)Fredrick
\n", "
" ], "text/plain": [ " name geometry nearest_id\n", "0 Origin_1 POINT (-77.30000 38.94000) Washington\n", "1 Origin_2 POINT (-77.41000 39.93000) Fredrick" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nearest = nearest(df1=orig, df2=dest, df2_column='name')\n", "nearest.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```{note}\n", "如果想用多边形做最近邻分析,可以简单地使用质心(centroid)。如果有一个叫 `poly` 的 geopandas 多边形,运行 `poly[‘centroid’] = poly.centroid` 以在属性表中存储质心值。\n", "```" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.10.4 ('tvmx': conda)", "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.10.4" }, "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "e579259ee6098e2b9319de590d145b4b096774fe457bdf04260e3ba5c171e887" } } }, "nbformat": 4, "nbformat_minor": 2 }