{ "cells": [ { "cell_type": "markdown", "id": "95b55d06-3772-4f2c-bbe3-49278d74ce66", "metadata": { "tags": [] }, "source": [ "# Demo of data cube functionalities: \n", "# Correlation of S5P L4 Assimilated NO$_2$ with Building Height\n", "Here we demonstrate how to correlate Sentinel 5P/TROPOMI-assimilated NO2 data with building heights using EOC data cube functionalities. " ] }, { "cell_type": "markdown", "id": "7f402fff-3dd8-4bde-a31c-37cc7a58d208", "metadata": { "tags": [] }, "source": [ "## Let's start with some relevant settings\n", "
\n", "To identify the relevant STAC collection, visit https://geotest.eoc.dlr.de/eoc/ogc/stac with your browser.\n", "
" ] }, { "cell_type": "code", "execution_count": 1, "id": "5231736c-210e-43fc-81c3-0f3a72ac2faf", "metadata": { "tags": [] }, "outputs": [], "source": [ "stacapi_endpoint = \"https://geoservice.dlr.de/eoc/ogc/stac/v1/?f=application%2Fjson\"" ] }, { "cell_type": "code", "execution_count": 2, "id": "b7551655-c442-4c88-a411-0506101d6cbe", "metadata": {}, "outputs": [], "source": [ "stacapi_endpoint_test = \"https://geotest.eoc.dlr.de/eoc/ogc/stac/v1/\"" ] }, { "cell_type": "code", "execution_count": 3, "id": "4eb5c5ed-c489-431f-a008-d36b2d442cef", "metadata": {}, "outputs": [], "source": [ "bbox = [3.8, 46.82, 15.23, 54.44]\n", "\n", "resolution=(0.06,0.09) # 0.06x0.09 deg is original resolution of TROPOMI L4 Surface NO2 Model Result" ] }, { "cell_type": "code", "execution_count": 4, "id": "753b1905-fc6f-4bdc-a3a9-afbd041432f4", "metadata": {}, "outputs": [], "source": [ "building_collection_name = [\"IOER_STRUCTURE_HEIGHT_GER_100M\"]\n", "building_dates_from_to = [\"2023-01-01\", \"2023-12-31\"]" ] }, { "cell_type": "code", "execution_count": 5, "id": "8675e50d-638a-4339-8d88-6b5b6ef143c6", "metadata": {}, "outputs": [], "source": [ "no2_collection_name = [\"S5P_TROPOMI_L4_P1D_NO2surf\"]\n", "no2_dates_from_to = [\"2023-01-25\", \"2023-09-30\"]" ] }, { "cell_type": "markdown", "id": "04276d0f-84d6-4f92-8e7a-e978b3fa70bd", "metadata": { "tags": [] }, "source": [ "### Do Python library imports" ] }, { "cell_type": "code", "execution_count": 6, "id": "743e2850-9344-4b38-b7cf-cf6d45293975", "metadata": {}, "outputs": [], "source": [ "from pystac_client import Client\n", "\n", "from odc.stac import stac_load\n", "from odc.geo import resxy_\n", "import xarray as xr" ] }, { "cell_type": "code", "execution_count": 8, "id": "f43dd3ff-2451-4162-9234-5fe9b6a0a7f6", "metadata": {}, "outputs": [], "source": [ "import geopandas as gpd" ] }, { "cell_type": "code", "execution_count": 28, "id": "8cafbdf2-547b-4015-ac3d-9573bb3c8b1d", "metadata": {}, "outputs": [], "source": [ "from matplotlib.colors import LinearSegmentedColormap" ] }, { "cell_type": "code", "execution_count": 27, "id": "c2a0a326-48f0-4584-b63b-b1e5a17e29d4", "metadata": {}, "outputs": [], "source": [ "import warnings\n", "warnings.filterwarnings('ignore')" ] }, { "cell_type": "markdown", "id": "7383d1e4-cb43-4733-ba1e-02d3b36d64fe", "metadata": { "tags": [] }, "source": [ "## Load NO$_2$ Surface Concentrations (derived from S5P TROPOMI)\n", "\n", "
\n", "Discover and access surface NO$_2$ in its original resolution.
" ] }, { "cell_type": "markdown", "id": "86a76561-25bd-4bed-935d-dc69b48d6613", "metadata": { "tags": [] }, "source": [ "### Discover Dataset\n", "\n", "
\n", "Connect to STAC API and discover surface NO$_2$ concentrations.
" ] }, { "cell_type": "code", "execution_count": 29, "id": "1a45c431-0ff3-4a20-80ac-8b43bbac5408", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 256 ms, sys: 20.4 ms, total: 277 ms\n", "Wall time: 8.39 s\n" ] } ], "source": [ "%%time \n", "\n", "catalog_no2 = Client.open(\n", " url=stacapi_endpoint_test,\n", " ignore_conformance=True\n", ")\n", "\n", "no2_stac_items = catalog_no2.search(\n", " collections=no2_collection_name, \n", " datetime=no2_dates_from_to, \n", " bbox=bbox,\n", " method=\"GET\", \n", " filter_lang=\"cql2-text\",\n", " max_items=1000\n", ").get_all_items()" ] }, { "cell_type": "code", "execution_count": 10, "id": "d9fd8fac-fef2-4fc4-aef3-9ed97c93438c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of STAC items: 214\n" ] } ], "source": [ "print (\"Number of STAC items: \", len(no2_stac_items))" ] }, { "cell_type": "markdown", "id": "ee3a6bad-8c54-4653-93e9-a3d66b5615f9", "metadata": { "tags": [] }, "source": [ "### Access Dataset\n", "\n", "
\n", "Access surface NO$_2$ concentrations and download dataset in its original resolution to your local memory.
" ] }, { "cell_type": "code", "execution_count": 11, "id": "06d0ab2c-c5ce-4129-8012-05c46a9e4c9b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Data is extracted in its original resolution on the server and downloaded to local storage.\n", "CPU times: user 6.46 s, sys: 15.9 s, total: 22.4 s\n", "Wall time: 44.4 s\n" ] } ], "source": [ "%%time\n", "\n", "# ACCESS AND DOWNLOAD IN ORIGINAL RESOLUTION\n", "\n", "no2surf = stac_load(\n", " no2_stac_items,\n", " crs=\"EPSG:4326\",\n", " resolution=resxy_(0.09, -0.06), # 0.0174532925199433\n", " dtype=\"float\",\n", " lon=(bbox[0], bbox[2]),\n", " lat=(bbox[1], bbox[3]),)\n", "\n", "print (\"Data is extracted in its original resolution on the server and downloaded to local storage.\")" ] }, { "cell_type": "code", "execution_count": 12, "id": "fa7c7433-c602-45f4-b8da-5809641217d2", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.Dataset>\n",
       "Dimensions:      (latitude: 128, longitude: 128, time: 214)\n",
       "Coordinates:\n",
       "  * latitude     (latitude) float64 54.45 54.39 54.33 ... 46.95 46.89 46.83\n",
       "  * longitude    (longitude) float64 3.825 3.915 4.005 ... 15.07 15.16 15.25\n",
       "    spatial_ref  int32 4326\n",
       "  * time         (time) datetime64[ns] 2023-01-25T15:00:00 ... 2023-09-27T15:...\n",
       "Data variables:\n",
       "    no2surf      (time, latitude, longitude) float64 34.64 35.42 ... 1.67 2.203
" ], "text/plain": [ "\n", "Dimensions: (latitude: 128, longitude: 128, time: 214)\n", "Coordinates:\n", " * latitude (latitude) float64 54.45 54.39 54.33 ... 46.95 46.89 46.83\n", " * longitude (longitude) float64 3.825 3.915 4.005 ... 15.07 15.16 15.25\n", " spatial_ref int32 4326\n", " * time (time) datetime64[ns] 2023-01-25T15:00:00 ... 2023-09-27T15:...\n", "Data variables:\n", " no2surf (time, latitude, longitude) float64 34.64 35.42 ... 1.67 2.203" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "no2surf" ] }, { "cell_type": "markdown", "id": "1b3636ae-10ff-4053-b51b-b92220c8036f", "metadata": { "tags": [] }, "source": [ "## Show Temporal Average of Surface NO$_2$\n", "\n", "
\n", "Temporal Average Over Complete Period.
" ] }, { "cell_type": "markdown", "id": "3a9b9e50-034c-41bd-90fb-3fa925a04cca", "metadata": { "tags": [] }, "source": [ "### Compute temporal average" ] }, { "cell_type": "code", "execution_count": 13, "id": "9a669c9c-72a0-450b-a6a8-a8e28d8b0e44", "metadata": {}, "outputs": [], "source": [ "no2surf[\"average\"] = no2surf.no2surf.mean(dim=\"time\")" ] }, { "cell_type": "markdown", "id": "c703b247-e736-4edb-814c-8a1680d5327b", "metadata": { "tags": [] }, "source": [ "### Show temporal average of NO$_2$ surface concentration." ] }, { "cell_type": "code", "execution_count": 24, "id": "56e4e1ed-3dfb-4df6-b232-88f27757026c", "metadata": {}, "outputs": [], "source": [ "cmap = LinearSegmentedColormap.from_list(\"\", [\"white\", \"violet\", \"red\",\"blue\"])" ] }, { "cell_type": "code", "execution_count": 25, "id": "5d92aee8-374c-4c6b-a536-df72630d5eab", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAHHCAYAAACRAnNyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/OQEPoAAAACXBIWXMAAA9hAAAPYQGoP6dpAACXIElEQVR4nO2deXgUVdbG3+4snYUkJCEskSyEhEBAGJYxgAsou8ii46CIgIqCGGSTRT6VRYGAAuKCbCKgA4NbcFAUBZVViKwOKARI2AmyBBKSSGjS9f3BpPtWp2/lVlf1kuT8nofnqVTdunXqVnVz+7z3nGOQJEkCQRAEQRCEF2L0tAEEQRAEQRA8aKJCEARBEITXQhMVgiAIgiC8FpqoEARBEAThtdBEhSAIgiAIr4UmKgRBEARBeC00USEIgiAIwmuhiQpBEARBEF4LTVQIgiAIgvBaaKJCEC5k6tSpMBgMTp3bsWNHdOzYUV+DBCgsLMSzzz6LunXrwmAwYPTo0W63gSAIogyaqBCERoqLizF16lRs3rzZ06bowsyZM7FixQoMHz4cn3zyCQYOHOh2G8xmM1JSUmAwGDBnzhzZsfPnz+PJJ59EcnIyQkJCULNmTdx1111YuXIl7CuCZGRk4LHHHkNCQgKCgoKQnJyMl156CdeuXXN43evXr2PChAlo0KABTCYT7rjjDjz66KMoLi521a0SBFEBvp42gCAqO8XFxZg2bRoAlPOAvPrqq3j55Zc9YJXz/PTTT2jbti2mTJniMRvee+89nD592uGxy5cv4+zZs3j00UcRGxsLs9mMjRs34qmnnkJWVhZmzpxpbTt06FBER0fjySefRGxsLA4ePIj3338f3377Lfbt24fAwEBr2/z8fHTo0AFnz57F0KFDkZiYiEuXLmHbtm0oKSlBUFCQy++bIIjy0ESFIFyIr68vfH099zGTJAk3btyQ/YdcERcvXkRKSooLrar4+q+//jomTpyIyZMnlzvevHnzct6rESNGoFevXnj33XfxxhtvwMfHBwDwxRdflJs8tm7dGoMHD8aqVavw7LPPWvdPmjQJp06dwr59+9CgQQPr/okTJ+p3cwRBqIakH6JKcf36dYwePRrx8fEwmUyoXbs2unTpgn379lnbdOzYEc2aNcPevXvRvn17BAYGokGDBli0aJGsr5s3b2Ly5Mlo3bo1wsLCEBwcjHvvvRc///yztc3JkycRFRUFAJg2bRoMBgMMBgOmTp0KwPEaleXLl+OBBx5A7dq1YTKZkJKSgoULF+py//Hx8XjooYfw/fffo02bNggMDMTixYsBANeuXcPo0aMRExMDk8mExMREzJ49GxaLBQCwefNmGAwGnDhxAuvXr7fey8mTJ3WxTZSXX34ZycnJePLJJ1WdFx8fj+LiYty8edO6z9Ean4cffhgAcPjwYeu+a9euYfny5Rg6dCgaNGiAmzdvoqSkxLkbIAhCV8ijQlQpnn/+eXzxxRcYMWIEUlJScOXKFWzfvh2HDx9Gq1atrO2uXr2KBx98EP369UP//v3x2WefYfjw4fD398czzzwDACgoKMCHH36I/v3747nnnsP169exbNkydOvWDb/++iv+9re/ISoqCgsXLsTw4cPx8MMP45FHHgFw+1c/j4ULF6Jp06bo3bs3fH198fXXX+OFF16AxWJBWlqa5jHIyspC//79MWzYMDz33HNITk5GcXExOnTogHPnzmHYsGGIjY3FL7/8gkmTJiE3Nxfz589HkyZN8Mknn2DMmDGoX78+XnrpJQCwTsQckZ+fD7PZXKFNAQEBqFGjRoXtfv31V6xcuRLbt2+vcBHyX3/9haKiIhQWFmLLli1Yvnw52rVrV6H36MKFCwCAWrVqWfdt374dN27cQGJiIh599FF89dVXsFgsaNeuHRYsWIC//e1vFdpOEISLkAiiChEWFialpaUptunQoYMEQJo7d651X0lJifS3v/1Nql27tnTz5k1JkiTp1q1bUklJiezcq1evSnXq1JGeeeYZ675Lly5JAKQpU6aUu9aUKVMk+49ZcXFxuXbdunWTEhISytnZoUMHxXuxJy4uTgIgbdiwQbb/jTfekIKDg6WjR4/K9r/88suSj4+PdPr0aVkfPXv2FLpe2VhW9G/w4MEV9mWxWKS77rpL6t+/vyRJknTixAkJgPTWW285bJ+eni67RqdOnWT3wWPIkCGSj4+PbCzmzZsnAZAiIyOlu+66S1q1apX0wQcfSHXq1JHCw8Ol8+fPC40HQRD6Qx4VokpRs2ZNZGZm4vz584iOjua28/X1xbBhw6x/+/v7Y9iwYRg+fDj27t2Ltm3bwsfHx7rWwWKx4Nq1a7BYLGjTpo1MSlKL/QJOs9mMDh064Pvvv0d+fj7CwsKc7hsAGjRogG7dusn2ff7557j33nsRHh6Oy5cvW/d37twZs2bNwtatWzFgwADV15o7dy6uXr1aYTulZ1HGihUrcPDgQXzxxRdC1+7fvz/atGmDS5cu4ZtvvsGff/6Jv/76S/Gc1atXY9myZZgwYQKSkpKs+wsLCwEABoMBP/74o9X707JlS6tXZfr06UJ2EQShLzRRIaoUb775JgYPHoyYmBi0bt0aDz74IAYNGoSEhARZu+joaAQHB8v2NWrUCMDtdSdt27YFAKxcuRJz587FkSNHZBIHu9hSLTt27MCUKVOwc+fOcmGvek1U7Dl27Bj++9//cmWcixcvOnWt1q1bO3WePQUFBZg0aRLGjx+PmJgYoXPi4uIQFxcH4PakZejQoejcuTOysrIcyj/btm3DkCFD0K1bN8yYMUN2rKx9r169ZBJV27Zt0aBBA/zyyy/O3hpBEBqhiQpRpejXrx/uvfderF27Fj/88APeeustzJ49GxkZGejRo4eqvv71r3/hqaeeQt++fTF+/HjUrl0bPj4+SE9PR3Z2tlP2ZWdno1OnTmjcuDHmzZuHmJgY+Pv749tvv8Xbb79tXdiqBUf/SVssFnTp0gUTJkxweE7ZJE0teXl5ssWrSjYpTcDmzJmDmzdv4rHHHrMu3j179iyA2+uJTp48iejoaPj7+3P7ePTRR7F06VJs3bq1nEfpt99+Q+/evdGsWTN88cUX5SKxyjw+derUKddv7dq1hbxGBEG4BpqoEFWOevXq4YUXXsALL7yAixcvolWrVpgxY4ZsonL+/HkUFRXJvCpHjx4FcDt6BLgd2pqQkICMjAzZwk77/CJqMs9+/fXXKCkpwbp16xAbG2vdz0YSuYKGDRuisLAQnTt31rXfRx55BFu2bKmw3eDBg7FixQru8dOnT+Pq1ato2rRpuWMzZ87EzJkzsX//fsVFrWWyT35+vmx/dnY2unfvjtq1a+Pbb791uKi3zDN07ty5csfOnz+Pxo0bc69LEIRroYkKUWUoLS1FYWGh7Jd77dq1ER0dXS7U9NatW1i8eDHGjh0L4HYo8uLFixEVFWX9T6tsfYokSdbJSGZmJnbu3CmbZJQlAuNlO2Vh+ywjPz8fy5cvV3u7qujXrx+mTp2K77//vpy34dq1a6hRo4ZT+V70WqMycuRI9O3bV7bv4sWLGDZsGJ566in06dPHKmldunTJoYS1bNkyGAwGWXTXhQsX0LVrVxiNRnz//fdc6Ss5ORktWrTAf/7zH1y+fNkaEfTDDz/gzJkzePHFFyu8R4IgXANNVIgqw/Xr11G/fn08+uijaNGiBWrUqIFNmzZh9+7dmDt3rqxtdHQ0Zs+ejZMnT6JRo0b49NNPceDAASxZsgR+fn4AgIceeggZGRl4+OGH0bNnT5w4cQKLFi1CSkqKdfElcFvWSElJwaeffopGjRohIiICzZo1Q7NmzcrZ2LVrV/j7+6NXr14YNmwYCgsLsXTpUtSuXRu5ubkuG5vx48dj3bp1eOihh/DUU0+hdevWKCoqsi5ePXnypCxcVxS91qi0atVKNsEAYJWAmjZtKpvEzJgxAzt27ED37t0RGxuLvLw8fPnll9i9ezdefPFFJCYmWtt2794dOTk5mDBhArZv347t27dbj9WpUwddunSx/v3222+jS5cuuOeeezBs2DDk5+dj3rx5aNSoEYYPH67LfRIE4QSeDjsiCL0oKSmRxo8fL7Vo0UIKCQmRgoODpRYtWkgffPCBrF2HDh2kpk2bSnv27JHatWsnBQQESHFxcdL7778va2exWKSZM2dKcXFxkslkklq2bCl988030uDBg6W4uDhZ219++UVq3bq15O/vLwtVdhSevG7dOql58+ZSQECAFB8fL82ePVv66KOPJADSiRMnZHY6E57MCy2+fv26NGnSJCkxMVHy9/eXatWqJbVv316aM2eONSS7oj7cCS88+YcffpAeeughKTo6WvLz85NCQkKku+++W1q+fLlksVhkbaEQMu1obDdu3Ci1bdtWCggIkCIiIqSBAwdKubm5rrxNgiAqwCBJdlW8CKKK07FjR1y+fBmHDh3ytCkEQRBEBVAKfYIgCIIgvBZao0IQlYBLly6htLSUe9zf3x8RERFutIggCMI90ESFICoBf//733Hq1Cnu8Q4dOpSrKEwQBFEVoDUqBFEJ2LFjh2J6+PDwcN0icAiCILwJmqgQBEEQBOG10GJagiAIgiC8liq/RsViseD8+fMICQlRleqcIAiCqH5IkoTr168jOjoaRqPnfssbDPuQkxOuqQBqVaHKSz9nz54VrsZKEARBEABw5swZ1K9f3yPX/vPPP1G3biKAZJSW/urRCZM3UOU9KiEhIQCA39/4HSEBIULnWK7yK9gar550uN8nz3FEBrf9lRyh9n45toJvlvB463ZpeJx125z4gMO+ZO0j4hzuV8IY7rkPB+8Z8MZTdi7n/nj34xPhI2qWra+aHhyba7axUWsHe64zlOZxQqRzbO9z2MKOtusxz+LG3592uB+Qv5+qSUiw9cu8N37Zts9OjU8HW7e/R1fZ6TlIcLgtuwRyKmwjsn8olsiOdcUP1u36re+1bt+4iz9WZYh8Ptl3W/RdYd8R2fPOcfydxe1H4XvGr6Ffhedr+Yz5hKv/TJdxveg6GvZqaP2/wxPUrTsNQAcA/8WaNWvwxBNPeMwWb6DKT1TK5J6QgBCEBoYKnWP5S2GiYipfeRUAfPyDHLf3C3Dc3tdxuXqjj/yRsB9ni8H2wS1l2pk517AwNpUydlsCxMbBGOjB/4w5z4A3/rJzOffHux+fICcmKsEeHJubzERFpR3suc5Q+hdnosI8F3b02XfWn3lPLXafl1KB58qF+Vyz740fcw229yDI/5MMgMlmIwIdXkKkjS+CHe43wvYfHtsPAIQwywRDme8Ef4HPq8jnk323Rd8V9h2RPW+Vz0jpe8YvSGCiouEz5lPD+YlKGZ5aKnDkyBEAywH8BmAXBgz4PzzyyCMICHD8PV8dqPITFSUsedq+tFmMeY5/bfhcPl7huX7HfqywH3ssEY5/vbH7SyMbONzPwl7Pvg07PsYI1/7HLPosfK6ccP4azC9b9n5Kr8j/8/WJrPhLTsnrZr2GBz1SnqQk9TnrdnHP2dZtdsyVnjfvXeOew3lP2fc/f/Qe63bX9RNlpycfW2/dXo+e1u3jsBU33IDuDvez2yyJsH3uu2ODw/32f+cPtNnIvoPs2+iOd4q9BrttiUy2brOfGV2/R1XenzPeUG+nSZOXATwDoBGAhgDmITDwfUjSOM8a5kGq5zcpQRAEQXgZ27ZtA/ATgCn/2+MD4C0AM5CXl+cxuzwNTVQIgiAIwsNIkoT77hsHYCKA2syRLgBSERk5wzOGeQHVRvqxXLUorj1RgivrMDKEiMTD4ozcw7qy9YK1wxIhl1XMSZ1sxzS4d7XKRrzxERk3dsxkMhdHBgLKS0FliEhCLNwFwRrd91rOZ881HzfLjvlkbrRu89419p2v8ck/rdusxHOj3TDrtl+S47UIasdS9BzzMds9saPE2m0vcSYw733PPMcyEAsr16iVfnpivawdK0mxuFs21EtCkcnFCrIyi9pFwXri6LvJ6OeZ3++fffYZgLMAxjg4+iaAVJw4MaJahiuTR4UgCIIgPEhJSQkef3wSgDcAOArMaA7gcSQk/J97DfMSaKJCEARBEB4kIGAhbsemDVZo9QaAddi9e7d7jPIiqo30Yww3Kobz8VyW9rAuZFHJxlF7Z6J7ZBE9tRy7nEXkIZ5L1v5ctffHIrNbQDZyZsxZuY3rZm4kz5nh0FZO/gtnUBsx5G4XPyv3lHsunCgxWSRNou29y490LFuw5/JGw5n7Fom04sG+H6zcCQA5eTZbspAMR9hH66jZ3zXphnW7sO3nsnbsWPk5IYepQU/5ROT5KX2uWHlVz/xGjnB1xKJWrl27htuTkFXgf2IAoD6A0bjrrnGwWDZXq0zr3v0ECYIgCKIKEx4+E0ArAN0EWk8E8Ae++eYb1xrlZdBEhSAIgiA8wKlTpwC8j9uLZUU8JKEApqB37wm4deuWS23zJqqN9OMIZ5KMqZUeZO2ZfkSiBQAxKUdpRb0jO3hoSaamd18iCfR4Y8uLqJI9F0Y6s492YpGNP5PGQGTMtcJziYtEE7FteFFM9vik2mQPIac7JwEYT8LQM9qJNwbss/c7aktPb8pcat22/+yxck8ysqzb9hE6jmD74vVTPMpxIjdAnnna1RKIqxCSgXRMCieCt8s9ZcTHvwLgUQAtVZw1DMC78PNbBkkaVmHrqkDleJoEQRAEUYXYu3cvgAwA01We6QdgFoApuH79uu52eSPVxqNSUR4V3q/zcsc4v+h57dlfeCK/vuxR65lQuwBWbf4XPRG1lTcGvPPZcU6ULZz8sXxjyPPFAHYLHJn9pRwvjLu9Lqz3gv2Fzlsoy/t1aZ/jRK0Hh8WZvChq4XmJ2PwvQUx6fHaRLNh3QiGNPfsuFLZNt12Pecbs+1iX6SeBuTabV0bJn1WZvCg8m7iFKhns30H2/dRrcblWL0qZTZZC13t/JElCmzbjAYwEEOtEDw8DmIvQ0DmQpGn6GueFkEeFIAiCINzId999B+C/AF52sgcDbqfWn4vc3Fzd7PJWaKJCEARBEG6kZ89XAbwKoKaGXtoD6I7o6Fm62OTNVBvpxxE8ucdeUmAX5fHgnc+Te5yxUUsbFpdJEpzcLu6AHQPeOPP2Jx+zl95OWbd4eTJ4+WfMsrwtP1bYXjSHC09aEVkoyztX1M2utqSA1kWzPKlJtmD3u8XWbVbuOc6ReNjxL0myVXcG5M+sNLWLdZtXwRic9+g6b+H7ceYdiuR/B3ij3COCiN3275D8O8vxmLCSksg1nFmwy8pFZdvuSKEfFXUWpkvxCOB8v4hyDY1xR4tvkJKSAgBIS0tDWlqaHiZ6FdV6okIQBEEQlZmEhARkZGR42gyX4lHpZ+rUqTAYDLJ/jRs3LtdOkiT06NEDBoMBX331lfsNJQiCIAjCI3jco9K0aVNs2rTJ+revb3mT5s+frzldsPHqSRhNNWT7ZLk3GHnHXkoRibwRkXt4bmmt8KQcT0oxWhGpWM22YSvdsuPMy1fD7t+A7qrtS8xjnh8T6ZN4bKt1m83DwT4jNrLEbJfi3z4CyRGsJMG61N2dq0JPhCJ6di2ybtunwS8jIcLWDyvxsONsP8as+98v0XG1ZxHY8gIs7HNREjB40TOVSRLiRgbZST/s57j0iuNx06u8hFI0kKPPjDuifgh1eHyi4uvri7p163KPHzhwAHPnzsWePXtQr149N1pGEARBEISn8XjUz7FjxxAdHY2EhAQMGDAAp0+fth4rLi7GE088gQULFihOZlhKSkpQUFAg+0cQBEEQROXEox6V1NRUrFixAsnJycjNzcW0adNw77334tChQwgJCcGYMWPQvn179OnTR7jP9PR0TJtWPgGOT94p+PgHyfaxcg8v7TrAj9gQSYnPwso9bJI3XnSC/fVEqifrlU5fCbVJ4kSjq1j48lmvCturxZlzRc55HyOs26xUlJhp2x6V+U/ZOWyisJJUeXSKY0OYZ8GreMxJEGcfXcNNPiYQ3cP2JZLiXxTe+1+Satu+MfAth7byopVMgvKO2gRnWmQjpeuJ4EyyM7VSIe8avH5k92P3cbFkqrq0aipLCn1CDI9OVHr06GHdbt68OVJTUxEXF4fPPvsMUVFR+Omnn7B//35VfU6aNAljx461/l1QUICYmBjdbCYIgiAIwn14fI0KS82aNdGoUSMcP34cBw8eRHZ2NmrWrClr849//AP33nsvNm/e7LAPk8kEk8nkemMJgiAIgnA5XjVRKSwsRHZ2NgYOHIh+/frh2WeflR2/88478fbbb6NXL8fufxFE5B57+YSNEmDbyaULx1IAK/GwEgZP7rGvliwi97BokXWUJB2lWkiO2qiVbpQQkVm0SD9K8KKztERwsee+g1GyY6OY5GXs82CjVtgEZzxphJWQeNhLOiI1fXiIVDZW6p8X6cPeH3tPIpE6PKmJrYkEyMeBPUdtwjG2jUj9G9F+1cKTYkTlELWyiVpJCJAn1uPBGxtnrkdUbjw6URk3bhx69eqFuLg4nD9/HlOmTIGPjw/69++PqKgohwtoY2Nj0aABJwMkQRAEQRBVCo9OVM6ePYv+/fvjypUriIqKwj333INdu3YhKirKk2YRBEEQBOEleHSismbNGlXtJUly+lp+x3+Cn68/N1EUK+/YSz+spMGez3P/82QIVgZyBlYKYGUgLVE4sv7tJB1+QjV18o2rZBkWLfKLvX28Z8nu744Nak20MgrvWLftpR/27+OZzLUztzOtbOM/Ks/WlznJ1qLGJ7ZoIlYyYWsL2bvKWZe6ltpCvPaKETnHK66pJGKfCFrOBdTLQHoiIsu4KuJFq6TEwpPb1NrhqFYPUfWgJ0sQBEEQhNdCExWCIAiCILwWr4r6cSV+OVvgZzByoyRY7KURnlzETdSW56Cxk/BkGpHoHl5yNVbOYCUdoBm3L5GaOSx61jIS6VdP6UcLbH0flpjU+63bxbVsUgwb5aME+37daDfMul0Y8bl1WyZRMtFtoshq0gjUE1IroSjJRrzPol+SuogeEZTOrUx1dXgSiCjulEpEx1UkYsyvobbEeizsGFDUkPdCHhWCIAiCILyWauNRIQiCIAhvIQZnEIYATX2cxGXk5OQgJSUFAJCWloa0tDQ9zPMqqs1EpTQ8DqU+vvIoAidq0LCI1NVhk52xsFKF6PV47bQkV1OSPURkHRHJRa82AL9GEgv7XNhoLlPmUoftlcZALo1VDDv+rAxU2Cjdus3Kj/mj9wj1y4t+YSnlRM6w0iVbI8e+H9b1zZN7RGoIiZxrLxvJ/3b8mVEr91QmGccZ3B3lolciOPtj7DvCqxnFyj163rej99PoV7mEhoSEBGRkZHjaDJdSuZ4IQRAEQRDVCpqoEARBEAThtVQb6ccSHg+Lrz83eZviuQq1eBz3paE2jV3EkJ5Sjlq0RNiwbXiJ7rhRUwrII14qfi68c9nrRdq1Y9+R55jn+vP6rdZtkSgoVja6n+lTZmui2PNif1FwE6cxfbHVbAJ2LrZus+8pK4vZw7rEeZIZe745r2JpSilKyNWyjjtq74hIEkpJ9rSgNQLIk8jqNsEm8Yg+M7VQdE/lo3K90QRBEARBVCuqjUelLI+KyMJV+1+a3BwPnHT6ci+IuvwjzrTTUslXtD2vnVpvCetNKImw5RaxrwzNKwsgezaC3ghHKM7QIxx7JjqnMl6iTNtCWd6C2/cxwvbH+vcd9nMj8S3ZOWpzk3BT3bPvzU7bptyjaHcO82zYd5v1yLDny1LzR9gWo8s8RoKeMhE8uTjW270UztjnjV4YXkp82YJbAY8I5UepWnjH20kQBEEQBOEAmqgQBEEQBOG1VBvpx3j1ZLlZGU+SUFrYybq+5dWFRzlqrnpxq2h7kVwmIvtF8pKIwo4bW6VXJve0fd66rSTDmRt1tW0zco+Ii1rP1O6ydow8FZfELLhtFG3dDmJS4m9Ad+s2+1x7HPvaul1s55bm2c4uNuWlGefBSjSii8nZ+5DLmjaZqyfTpiT1OdvJzLNj5Tle3hVAfk+8hbW8xZVqqxm7apGmCN4isdjjjTIQa9ONX29Yt/0SbQtuec+e5J6qhXe8kQRBEARBEA6giQpBEARBEF5LtZF+ymBlBNHcHTx3ORvt4apqvK6WddjxYKNwALnUIVJpmleegK3ka9q1yLrNli1QirRytSvaXoaQpYBn5SwmsoW1Hcz9FQ60VTP+7pMe1m32nRDJ+QLwJRDVOUdkeVdsdpTYPVM2X4rIu82+X3G8PDEcO/SElXLUykDuxlV5VJy5tivs0CohiUg25g2HbX90b2LdrOolE/Rg4cKFWLhwIU6ePAkAaNq0KSZPnowePW5/V924cQMvvfQS1qxZg5KSEnTr1g0ffPAB6tSp40GryaNCEARBENWC+vXrY9asWdi7dy/27NmDBx54AH369MHvv/8OABgzZgy+/vprfP7559iyZQvOnz+PRx55xMNWV0OPCkEQBEFUR3r1kmc3nzFjBhYuXIhdu3ahfv36WLZsGVavXo0HHngAALB8+XI0adIEu3btQtu2bT1hMoBqNFExJ3SA2Ud+u6JVi1k3P88NLiL9iMg1SpE37DG2Mi8vFXpJW1vF3nyeO56VMARhXfs8N78svTrHPtESBmpRii4RgXcOex9sJI1ImzhGHmIjmlwFL0pIaTzYyJ0OjCzUlZHr/I69Y+uXrVLNbMskPXa/Eyn09UqVr1UWUBtFIip78Pp1hSTkLdE8opizbekW/b5jykAwn6WS1K+s23o9Y0th5YoYslgsKCgokO0zmUwwmUyK55WWluLzzz9HUVER2rVrh71798JsNqNz587WNo0bN0ZsbCx27txJExWCIAiCqE7E4Axqw6CpjyJcRlZWFsLCwmT7p0yZgqlTpzo85+DBg2jXrh1u3LiBGjVqYO3atUhJScGBAwfg7++PmjVrytrXqVMHFy5c0GSnVmiiQhAEQRCVlOTkZGRmZsr2KXlTkpOTceDAAeTn5+OLL77A4MGDsWXLFlebqQmaqPwP1l1tLwnxKuLyEnrx4Ek8SpWGEyJsbkhWSijEUxVejyfLyCNZ1NdiEXIhs7U5ONcwJ9m22XoygLzWjyzhG/tsOLV+XBVdwqJUebgM9r7ldXFs+/2S/OAp7MdJFh0U0cW6XcjcK0+u4yVMFJZAOAnfKlNEj8i92rfxxkRrnoQn3bHvFBtZJ/LpUUrwVxUihYxGI0JDQ4Xb+/v7I/F/352tW7fG7t278c477+Cxxx7DzZs3ce3aNZlX5c8//0TdunX1NlsV9MkgCIIgiGqKxWJBSUkJWrduDT8/P/z4o+3HSFZWFk6fPo127dp50ELyqBAEQRBEtWDSpEno0aMHYmNjcf36daxevRqbN2/G999/j7CwMAwZMgRjx45FREQEQkND8eKLL6Jdu3YeXUgLVKOJiiU8HhZff+FIH5YsJFu31Ub3iGyzETz2sDVz2NXuvGRsIi54d7jRRMqsy6JG7CJhTLJIE9sMnx2DGxhmO4FTU4ZFzwggHiL3qlUO0QvRGkesvaWpXRRa3sbPiXHWK+qnMlNdZSD2vrnPe8CD1k129QWvPSv32NfGkr33zFd4dXjXLl68iEGDBiE3NxdhYWFo3rw5vv/+e3Tpcvtz/fbbb8NoNOIf//iHLOGbp6k2ExWCIAiCqM4sW7ZM8XhAQAAWLFiABQsWuMkiMarPtJ0gCIIgiEpHtfao8CJ97CUdLXV8ROQennRjb6MIvAgbdyaWAgAcZxLXCUQW2d83L0pG1o4T9cO9hmAiOF47ec0cx7IJO56yaCWN4ywiA9m7uMsQuR97RKQmtdKUaHu9XPAi8qPo+TzYfkWuodRndZV7eM+JfQ9Eor940T327xrv3Ss7v7RITBIl3Ef1+WQQBEEQBFHpoIkKQRAEQRBeS7WRfoxXT8Lo4ysk97BJ3eyP8bZF6vWwydyU5B7uPTD2stslbZ9XdS4LG1VU7hyVrmjWbRvEJHBjI3p4idKUEs/J7IioWO4RiZ5QkoF4koholExFNintZ+3l2cGTeFh496dn9JDavlibXBHFZI+o3KNFcuGdK/q8eccqqwwkareILKeUqE0LFUmLPv5VP/qnslE5Pw0EQRAEQVQLaKJCEARBEITXUm2kH5+rp+BjMArJPfaRPbyaPqzE0x0bHO5no3uiez5n3b7B2nbZsVQE2CUKcyJZnaN+WJxxMYu41G+0syVjc6aeEO96ztRTcYTmekBMVJPQ2DLtefVyALk0Zs5znCROJPpIz3pHvOgLkfYy1AVpuQxvklW4kSpeZKMeOBN1VR0SsBFiVK1PA0EQBEEQVYpq41ExXj0JI8S8KKwHxR6RRbMsMan3W7fNbNVcJhW8KLyU81rydbC/vM3HzNx2bL8iFX/NxypOGe+OxY7OeBZEFs2q9RLJK1bbFnQHrZ8oa8e+F7xnXMq8qyLeJq0LV3m/+tX+4lXrmXEVSguYRc9xhKxMhda8OVVgYa0Ser1TvHM9+X4R+uPRicrUqVMxbdo02b7k5GQcOXIEADBs2DBs2rQJ58+fR40aNdC+fXvMnj0bjRs39oS5BEEQBKELMTiDGNzU1Mc5XEJOTj5SUlIAAGlpaUhLS9PDPK/C4x6Vpk2bYtOmTda/fX1tJrVu3RoDBgxAbGws8vLyMHXqVHTt2hUnTpyAjw/plwRBEET1JiEhARkZGZ42w6V4fKLi6+uLunXrOjw2dOhQ63Z8fDymT5+OFi1a4OTJk2jYsKGq62QjASEwyuQekUWy9sdYRGQgdgEsWxGYh6ikwOZe0Zoq3FE/zsCTTJxxY7tT7rG3W+35Qqn1OQuh7fPKsO14i6wtTC4gC3O+1nwp5DpXj9bPjFZZ1JtRugctEo/aMaNFuZUfj4ufx44dQ3R0NBISEjBgwACcPn3aYbuioiIsX74cDRo0QExMDLe/kpISFBQUyP4RBEEQBFE58ehEJTU1FStWrMCGDRuwcOFCnDhxAvfeey+uX79ubfPBBx+gRo0aqFGjBr777jts3LgR/v7+3D7T09MRFhZm/ac0qSEIgiAIwrsxSJIkedqIMq5du4a4uDjMmzcPQ4YMAQDk5+fj4sWLyM3NxZw5c3Du3Dns2LEDAQEBDvsoKSlBSUmJ9e+CggLExMRgFp5HAEyKET08RFLls9u89mxOFXY/L608YJdqv5atX9k5KqsIy6QYRmqwl51Eonv0lHv0Qs8cInqhFFElgtrcMO6QfrS41O3751VWdkUlZVHcXnFc4NrutsPd6CV5iVRbtqdsPAuuF6BWy1rIz89HaGioLvbYU7t2bQy61AkxqKOpny3YDzwcSWtU3EnNmjXRqFEjHGeSY5V5RpKSktC2bVuEh4dj7dq16N+/v8M+TCYTTCaTu0wmCIIgCMKFeNWUvLCwENnZ2ahXr57D45IkQZIkmceEIAiCIIiqi0c9KuPGjUOvXr0QFxeH8+fPY8qUKfDx8UH//v2Rk5ODTz/9FF27dkVUVBTOnj2LWbNmITAwEA8++KDqa+UgAf4IlO3jyTX2UT4icg+v/YsRX1u3WbmmsFG6dZuN4FFKry5PGsYkVOOe4RhZlBBTPdkZVzIv4oXXl0iEjD2ulpHsZRKR6sQ8uFE/KlPg27dTC09KUcKTkT6urqbsrQnURKQOnozhSWlKK66QtpyRjSrDWBEenqicPXsW/fv3x5UrVxAVFYV77rkHu3btQlRUFMxmM7Zt24b58+fj6tWrqFOnDu677z788ssvqF27tifNJgiCIAjCTXh0orJmzRrusejoaHz77bdutIYgCIIgCG/DqxbTugOR+jxK54icz4voYWu3sHIPi2jCN1m0Dke+EXENK7k+WVmCJ0OIyjfOtgdcXw1ZSeph7VXrahexyRm7WZlErcQjKmvx+tIrCseTSbi0Rpa4OyKHN1ZqI1ucqXGkdL4jRJOxqa2vpLZqul5JMAnvgAQ6giAIgiC8FpqoEARBEAThtVQ76YdFKdJHC8nIsm6X1rrPYRsfpl4Li31NGBEpSHZOHnOAc66oS1Wty1RLZIXStdy9Ml9E8uLWFdGYbM7V0S882UgJqpWiHq0RKFrkCtFzXSGJOHNt3uebNx56fh+w/ZZJaeYibckZCf0hjwpBEARBEF4LTVQIgiAIgvBaqp30IyL3OBMZxBKXFGfdZp2ISnV1ePt50UE86UipL4d2iCZ8Y8oaqO3XHYjINaLwzmf381zcPDtcLem4EmfqplQmtEguWsdGbTQLa59IbSYlec/VkV16okUGsm/Dnn/j1xvl2pv/co/0E4OzSMT1ihsq8Dsu49ecfKSkpAAA0tLSkJaWpod5XkW1m6gQBEEQRFUhISGhyhclrLw/8wiCIAiCqPJUG49KDhLgi2DNcg97Pu8cVpaxXHbcRlarR0ASsu+XB9uXMc+xbMRDcyIswWR1jqgMNTdEktVplZ14rnpetA63tpATUpOsVhPnfJF6QN4oHSjh7QnBROwTkYHK9ct5j8yMYC0iX1bm5H1+iX62vv43Hj7Flev9rQ54//8OBEEQBEFUW6qNR8UV8LwrPK+GiBfF7+gPsmsYa6nL72J/vqNr8Bboupuq4kVxFbxfsOx+nn3OVE+WLRYWOJ/XhveLXumXtzPnVAW0eATUVru2f1d8Mjfatpn97HcTWwKkNNH2XcRdcO7E8/KkR0vmUfmfHX6FfrzmhIfw/v8pCIIgCIKottBEhSAIgiAIr4Wkn/+hlF+FVz1ZZAGuyAJYFvsU+qUc6YeVeEraPm/dZis08+QengQlaqtQWn+Nsg7rWtZSoVnr4lYefkmucQ+LyCwsIvcnmiqfRe0iXRGpSK1UoXSOt0hC3mIH7xmXZtrKedh/vmt88k/b+cxnmpV7WNjsIqXMdyRP9nP32Gj9zik73+hHv9+9DXoiBEEQBEF4LTRRIQiCIAjCa6l20g8r1zhTMZknEfFkoMQ82/6eeeut25YIMZnFRyAPC2+/ntE9bF/uiNbREm3jKrlHlr6ccw13yE4i8OxQHFdOmQT2vkUkL2cijtSeUxXzubgCJZlW5LtC9h6wkjHTxnzcJgqxUTQEoRfkUSEIgiAIwmuhiQpBEARBVAO2bt2KXr16ITo6GgaDAV999ZXseGFhIUaMGIH69esjMDAQKSkpWLRokWeMZah20o8I9jKOSHRPd2xwuJ+Vh97BKOs2KwMlHPvRum0f9WNOYraZiB4eInIPL9mcvZuYm9qfk6BJbRVaJQmJd76I7KRVfmHPV1slmXc9ZyJv9MJ8zOaaV4rykr97tndSJhGwZRkSHUunvMRxSrDjKfL8tMhDlUES4kXPqI2cClo/0XauXQThjXbDbNdgJGa2nfydcBwNRFQeioqK0KJFCzzzzDN45JFHyh0fO3YsfvrpJ/zrX/9CfHw8fvjhB7zwwguIjo5G7969PWDxbWiiQhAEQRDVgB49eqBHjx7c47/88gsGDx6Mjh07AgCGDh2KxYsX49dff/XoRIWkH4IgCIKopFgsFhQUFMj+lZSUONVX+/btsW7dOpw7dw6SJOHnn3/G0aNH0bVrxd58V1KtPSqiFZNF2o3CO9bt9ehp3eZFFrFt2MigZLu5Y5yAfazcw7rzRVby64mQ3MPKSVBvhzvqgqi9Bi+SRiTaRkma0tIvC0/usZcZZddgpAB2m609ZYZjzHna3q/KUAPKFfBkHd5+XqQUu//GwLds++3ea15NHz9GipY9e/Y9Skp2aJOesppa6Y69v8rwDsXhJJIRoKmP2riGbVkWhIWFyfZPmTIFU6dOVd3fe++9h6FDh6J+/frw9fWF0WjE0qVLcd9992myUyvVeqJCEARBEJWZ5ORkZGZmyvaZTCan+nrvvfewa9curFu3DnFxcdi6dSvS0tIQHR2Nzp0762GuUwhNVFq1aqWqU4PBgHXr1uGOO+5wyiiCIAiCICrGaDQiNDRUcz9//fUX/u///g9r165Fz563Pf7NmzfHgQMHMGfOHO+fqBw4cAAvvfQSatSoUWFbSZIwa9YspzWyygRPEkqGrb7GaMy3bo/A+w7PZdvb92m5YnNnWjgr80WQJWtSGZ0DKEQAcdqwqK13pHQN1f04IRUpSSJWItQnC3SEknSjReaSucGZ6JxSZtusIAVw+xWp88R5V4TGFeolQdGkcmU4U3OIxR3yBu96bHu1911ODuG8wyXMM2NlIF6Ul1o7lND6bAjnMZvNMJvNMBrlz9PHxwcWi+eiFgEV0s/48eNRu3ZtobZz58512iCCIAiCIPSnsLAQx5kM1CdOnMCBAwcQERGB2NhYdOjQAePHj0dgYCDi4uKwZcsWfPzxx5g3b54HrRacqJw4cQJRUVHCnf7xxx+Ijo522iiCIAiCIPRlz549uP/++61/jx07FgAwePBgrFixAmvWrMGkSZMwYMAA5OXlIS4uDjNmzMDzzz/vKZMBCE5U4uJEYk9sxMTEOGWMOxCpzyN6Tk+sd9Rc1mY+Rjtsz4sGst+fAMaFz3Gdq3bHw7E73hmJhgevL16EkhJcqckJCUstvCgqkQgDkYgcJbu5zxuOZTzZucx+XmSR/f7SK7Z3r0RAsuHJiTI72D/yHJ+rdA0eWmpBOQMrb+iZSE7tObz2XJuYZ2wv0fCS8cnei6Tu1k0/5nw95S+9InQqQ6SPp+nYsSMkSeIer1u3LpYvX+5Gi8RwKurn2rVr+PXXX3Hx4sVy2tWgQYN0MYwgCIIgCEL1ROXrr7/GgAEDUFhYiNDQUBgMBusxg8FAExWCIAiCIHRD9UTlpZdewjPPPIOZM2ciKCjIFTa5hBwkwIgQ2T6e/GIPK+Xw5CIReYhNqpTASbxlb5NMbuC44027bEWjePWA2H5E3ey8dnolkhOpS2Rvh6w2kcp6QjK5RiGKiVvanieBaJCd7PvkSk2cseVJUM7UOOKek+d4txZXu/19s/fnl+Snqi+tMpBIXSle/SE9JSG9pEy/hmLjJ2IXr+YQD947oXQ/qhMsCkQGkQxUtVD9NM+dO4eRI0dWqkkKQRAEQRCVE9UTlW7dumHPnj2usIUgCIIgCEKGkPSzbt0663bPnj0xfvx4/PHHH7jzzjvh5yd3M3qywqISOWgIQCx7n728IyL9iEQQidZZYWETLpWkOpYk2DZsUjiuXMCRM+ylGJEIHZFr6Ila9zhP7nEKJuGV2hm+qB2sPMjeq58TUo4WZPWEGDlSdh8C/bDt/Zh3iL1PQJur3i+xYqmDjXBxRipSip6xttEgjQDa5B49o3DU9usOmYWVe3g1jlgqW90fQhmhiUrfvn3L7Xv99dfL7TMYDCgtpcyCBEEQBEHog9BExVXpc6dOnYpp06bJ9iUnJ+PIkSPIy8vDlClT8MMPP+D06dOIiopC37598cYbb5SrFKk3Sh4VEdTmalFa1Msei2OrnTKLZtWm03fGsyC68FWVHRoXD4os3BO5V2d+can9xSaar8ZVnii1sL9UeZV5WXheCnZhbGlEF9t+BQ+RninZHfVp37/5uK0ONHdhrQYvila0LGhVzNPjxMJXZ7G/lsgCZh68MdDrfiyFnk0XT5RH9TfCxx9/7LCOz82bN/Hxxx+rNqBp06bIzc21/tu+fTsA4Pz58zh//jzmzJmDQ4cOYcWKFdiwYQOGDBmi+hoEQRAEQVROVIcnP/300+jevXu5uj/Xr1/H008/rTqPiq+vL+rWrVtuf7NmzfDll19a/27YsCFmzJiBJ598Erdu3YKvr1O56giCIAiCqESo/t9ekiRZkrcyzp4965Qkc+zYMURHRyMgIADt2rVDeno6YmNjHbbNz89HaGio4iSlpKRE5vEpKChQbZOo1JOFZFX9svIJu5gwMXOp0Plm2EoZ+AhUUvY7+oN128hpo9SPWhlCdXtB+UTTIkOBvCTOCA0iLmrewlNXyGiAayQTPa/hTG4Xbl+cisJO9SVYYkAPnHmX9ZJ7RCVOd0hCPHt1qxheCRbQxuCsYCYvPlEAcnJykJKSAgBIS0tDWlqaZtu8DeGJSsuWLWEwGGAwGNCpUyfZZKG0tBQnTpxA9+7dFXooT2pqKlasWIHk5GTk5uZi2rRpuPfee3Ho0CGEhMiTs12+fBlvvPEGhg4dqthnenp6uXUvBEEQBFEVSUhIQEZGhqfNcCnCE5WyyJ8DBw6gW7duqFGjhvWYv78/4uPj8Y9//EPVxXv06GHdbt68OVJTUxEXF4fPPvtMthaloKAAPXv2REpKCqZOnarY56RJk6wVIcvO9eYiiQRBEARB8BGeqEyZMgWlpaWIj49H165dUa9ePd2NqVmzJho1aoTjx21yxPXr19G9e3eEhIRg7dq15fK22GMymWAymTTZsQFyz1B3bKjwHDY6ZxTesW5zK/8KRt6wEhHbl0ikD5tfxSQgL9nbyl6bjTJSGzUkIgmJunzVuoZ5tvoo5PSQna8hMokX6SOTfhLlz5HnsOalcGcRyS/hbrh5LjjRQ6JolXtY1EY4EXJcVblcBF5ElDMykCfvg1BG1beZj48Phg0bhhs3brjEmMLCQmRnZ1snQQUFBejatSv8/f2xbt06BAQEuOS6BEEQBEF4J6p/djVr1gw5ORozfP6PcePGYcuWLTh58iR++eUXPPzww/Dx8UH//v2tk5SioiIsW7YMBQUFuHDhAi5cuEBJ5QiCIAiimqA66mf69OkYN24c3njjDbRu3RrBwcGy46GhYmnqgduRQv3798eVK1cQFRWFe+65B7t27UJUVBQ2b96MzMxMAECinXv8xIkTiI+PV2u6IkqRPqwUxEunz26vR0/rdnJelq1Nnk2KYZFJOoIRIWy0Do+cPNs8NIu1CTab4pKYSCK7RGQ8uUhtgjlXoSUlvtI4q40YEJGXWJQijrREmni73KO2jZ7oGSWkFqWEbSK2qE0q5+6IF7UJ6UT70gt7SacyRAQRclRPVB588EEAt2v6sGHKZWHLarwda9as4R7r2LEjJElSax5BEARBEFUI1ROVn3/+2RV2EARBEARBlEP1RKVDhw6usMPlJCAbRoRwI3jU1vMRPZ9NCsdus/JLAsRWm7MSg0gEUFySrX3ClcMO+ylu9Jx122fnYu61WRmIJ1WxkUFaa9YIRQpxqkCz8CJ6lPrnJswSkHjYNryILXfjqmggtVExzsgCekkBov2IVFlmx5Ane/Cup2QHb3xEpBVPJjvTKqvxxpx3TyKVrBWvR9E9lQ6n8tBfu3YNy5Ytw+HDt//za9q0KZ555hmXFwskCIIgCKJ6oXo6umfPHjRs2BBvv/028vLykJeXh3nz5qFhw4bYt2+fK2wkCIIgCKKaotqjMmbMGPTu3RtLly61ptG/desWnn32WYwePRpbt27V3Ug9SEAOfBEsk2h6Yr3Quew5x1VWZ+CdmxDBuDs5NWjsYWUFdpsn/fD64kkS1wd9xr02K28ErZ/ocL+FiUTiXdtVEohIv7zxsz+Xl6iNJ+vI5SV+8jhHKLmhtbq43QnPPq1RICLnuyqKR21iPWfsELk/tWPIk0y0Rr+IJD/U+rxlfXHGnx1zPa9HeC+qJyp79uyRTVKA2xWQJ0yYgDZt2uhqHEEQBEEQ1RvVP9NCQ0Nx+vTpcvvPnDlTrpAgQRAEQRCEFlR7VB577DEMGTIEc+bMQfv27QEAO3bswPjx49G/f3/dDdSLztiEAJiE5B7RCCA2sRt7DhvRw+vXAvUSCFu7h5UrLJzkb6wkxG47I7+w8lRxz9nWbdOuRbZtJjKIjQASSnymkLyNd75ocjw1fSod0xLFI3OzH+e/XyLvBa8eDU9+EZWNeNEbvOgekX71TAbGQ88kYyK1fkTuW8u5WtFa24Z3vrujZbxd7iTch+qJypw5c2AwGDBo0CDcunULAODn54fhw4dj1qxZuhtIEARBEFUNS+gdsPhqK6Ar3chHTk4OUlJSAABpaWlIS0vTwzyvQvVExd/fH++88w7S09ORnZ0NAGjYsCGCgoJ0N44gCIIgCD4JCQnIyMjwtBkuxak8KgAQFBSEO++8U09b3A4vIoeVdOyP8aKGtCaMK0Opjg4v0ZraqB/2XCUJhIdIkrcLn0yybrMRTqx8wtptX7uIF3nDnm9Ued88ecl+P2sLe388eP3K5DnWba4U2aUysZWe7nGX1FlhJBBnJBotyctEpQqe5MWTgUTkNpHEZQDABhHqJY05I9G4W+7hSYKukAft32ve86MIIu9F9USlqKgIs2bNwo8//oiLFy/CYpG/yHpVViYIgiAIglA9UXn22WexZcsWDBw4EPXq1ZMVJiQIgiAIgtAT1ROV7777DuvXr8fdd9/tCntcRlf8gBAYZfV2ROWaUXjH4X6Zax9iESxl8CJW/I7+wL0GTzYRgXc9LZEz9jaxtiYyEUDH8xId7mfPVZKg2PE0ZfITtTmCJ3MpJdkTGVvWJjYai8WcVGE35a7NS3LlLbCShojs5NfQT9P1vKWGDYuIDMR7jkrPlye9uUOS4I2zSJI3FlH5UG19IC1jYH9uRTWVSotck0CQcB7Vn/zw8HBERES4whaCIAiCIAgZqj0qb7zxBiZPnoyVK1dWqkifhshBKOReFHbRrNrU+AA/pTrPSyFLNy+YQ4RF5Je+XlWHtZ5TkmqrypyVed66zY55z2NsThulObPj+07MqzhlP89Tw3sWQPmFvY6QLSjmeJVEPAB+dr+wWY8F++ub98vdVZWReTZ5Em+pessbf/Nxc4XnKo2lt+QNccc4q83T4w5vU1lfPv7e7dWsjqieqMydOxfZ2dmoU6cO4uPj4ecnd+1SYUKCIAiCIPRC9USlb9++LjCDIAiCIAiiPKonKlOmTBFq9+9//xu9e/dGcHCwaqNcQTYSyi2mZVPd83Kl2MPLZcKTRmSLYTk5OZRydfAWg7IVjHl5TfSEl9dEZDEur6QA71kAYgudRfLE8ODlf7E/X62Uw7YQWRhr7+7Xkp7dVYjkc9HTBa92caXa/C/2tvLO5+1nx58n5fAWpzqzWNodZQhcQWWylfBuXCaKDhs2DH/++aeruicIgiAIohrgsomKJEmu6pogCIIgiGqC0yn0Kxs/oCsCYMJozLfu644NDtva75dFquTZIlVYiUA0eqYilGQL9tiNdsOs2/a5VyqCJ93w8oEA8kgYNvpINC29I3iSkD28XDI8eNIbr4K0/ZiLRE6plXX0lGvU9isaGaSlL63yi+gxZ9uz9onayhsPkfT47GeJ9z4CdrItc8wvyRakwBtnb5RWXGUTG1El8tnzxrHxBrZu3Yq33noLe/fuRW5uLtauXStbdzp16lSsWbMGZ86cgb+/P1q3bo0ZM2YgNTXVc0bDhR4VgiAIgiC8h6KiIrRo0QILFixweLxRo0Z4//33cfDgQWzfvh3x8fHo2rUrLl265GZL5VQbjwpBEARBVGd69OiBHj16cI8/8cQTsr/nzZuHZcuW4b///S86darYm+0qqt1EZT5GW7d51ZPtk79tQHeHx0Yds6XWV5ISHLURlYp4CcvYvkraPu+wjdr0+PZuadZGnmzCa8/CRvew48dKP/ZRPiKVonmJ2XiRTyIRWwA/ukdtxIY7krGJyECsVKGUcMwvUV26e7WSi9J+V7vqRfvnVU+WtRFIgCd7Z5XeNc5nhncNPWUgLdFVrki0Zo/sem6OPKtMWCwWFBQUyPaZTCaYTCZN/d68eRNLlixBWFgYWrRooakvrbhsohIXF1cuGRxBEARBEIAlLBqlAaHa+rh6GllZWQgLC5PtnzJlCqZOnepUn9988w0ef/xxFBcXo169eti4cSNq1aqlyU6tqJ6onDlzBgaDAfXr1wcA/Prrr1i9ejVSUlIwdOhQa7tDhw7pZyVBEARBEOVITk5GZmambJ8Wb8r999+PAwcO4PLly1i6dCn69euHzMxM1K5dW6upTqN6ovLEE09g6NChGDhwIC5cuIAuXbqgadOmWLVqFS5cuIDJkye7wk7d6In1DveLSj88RuXZZCCe5CJLmsaRLexdwSKSEg+ebCRinz1q5R75tZs4bMNKQvawdXxk/e5cbN3mVZPmVWV2JpGbWrnHHfVa1CY7c6Z2i15udHdIB66CJ6WJvBMikWP27WSfpQjH9a3Uyolqo7GUzueOh4ueJa/fyvDuuBOj0YjQUG2eGZbg4GAkJiYiMTERbdu2RVJSEpYtW4ZJkybpdg21qP5WPXToEO666y4AwGeffYZmzZrhl19+wapVq7BixQq97SMIgiAIwkNYLBaUlJR41AbVHhWz2Wx1K23atAm9e/cGADRu3Bi5ubn6WkcQBEEQhC4UFhbi+HGbt/rEiRM4cOAAIiIiEBkZiRkzZqB3796oV68eLl++jAULFuDcuXP45z//6UGrnZioNG3aFIsWLULPnj2xceNGvPHGGwCA8+fPIzIyUncDXQkbacJu8xLB2bfjyUWJTLInc5LjfkSiaOxRK+Xw6gSx26JyD68vmX2MnMXKL8mZP9u2mUgfJemHBy8CiDeGIgni7OG59vWSdZyJQFHbl0wi4NSacYdMVZnhjQ9PAuFJbCI1ogDI5B6176BWiUcEPd8XkTpKau/VmfpPjs4pLXL9WHqKPXv24P7777f+PXbsWADA4MGDsWjRIhw5cgQrV67E5cuXERkZib///e/Ytm0bmjZt6imTATgxUZk9ezYefvhhvPXWWxg8eLA1bGndunVWSYggCIIgCO+iY8eOiuVtMjIy3GiNOKonKh07dsTly5dRUFCA8PBw6/6hQ4ciKChIV+MIgiAIgqjeOJVHRZIk7N27F9nZ2XjiiScQEhICf39/r56oJCAHQfArl1isDFaSsI/6UZKCKoInufjJ5CHH0SuAtqgfHrzoI/tr63UNHrzkb86glFRLL7QkcHMmUsEV0Q1KdntL0jUtaI0sckY+cISw3MNeWyfJkSdN6SndsNfg1eFxt7TIi1Cyt0PPuluEY27duoXNmzfL5gjnz59HaGgoatSoobo/1ROVU6dOoXv37jh9+jRKSkrQpUsXhISEYPbs2SgpKcGiRYtUG0EQBEEQROXHFXME1VPeUaNGoU2bNrh69SoCAwOt+x9++GH8+CO/+i5BEARBEFUbV8wRVHtUtm3bhl9++QX+/v6y/fHx8Th37pxTRrgTe1nHEaPwjuxvkXNYSYmVctTKEPaJ4GR/MzVstMhAvGRziudwIoXYvmT7mfaJsO2XRUdxZDgl2PHUIvHwImH0RGv9laogxYiiJZLDW+5Dz3dKpJ4Nbzx49Z+UJA+RCCfzMZvE46rPj9r7dubZU7Sba3HFHEH1E7NYLCgtLf8BOXv2LEJCQlT1NXXqVBgMBtm/xo0bW48vWbIEHTt2RGhoKAwGA65du6bWXIIgCIIg3ISec4QyVE9Uunbtivnz51v/NhgMKCwsxJQpU/Dggw+qNqBp06bIzc21/tu+fbv1WHFxMbp3747/+7//U90vQRAEQRDuRe85AuCE9DN37lx069YNKSkpuHHjBp544gkcO3YMtWrVwr///W/1Bvj6om7dug6PjR49GgCwefNm1f3yEJEb7CUFtu4MT7oQkXtEEpT5Hf1B9jcrp3BLwquUgdh+zIyc5Ex9Elb6EUkkxxt/peRvCbC5n9kx1CvSp/SKfPbv6oRvsmu7IVGXO9CSnM7+mNox4bUXlYr0egYiEojWd0itrTwZyB42coeFTWLHfqYtcPx5E5WBtMh1ekp9ekV5ETb0niMATkxU6tevj99++w1r1qzBf//7XxQWFmLIkCEYMGCAbOGMKMeOHUN0dDQCAgLQrl07pKenIzY2VnU/ZZSUlMjqEhQUFDjdF0EQBEEQ4ug9RwCczKPi6+uLJ5980qkLsqSmpmLFihVITk5Gbm4upk2bhnvvvReHDh1yWstKT0/HtGnTyu1PxHGE2CldXM+HnYeC/SXBS6Efx7GH9QCw3gde1VT7XCa883mLbHmwnppTx05Zt2MiHNskCmufiPfHGcQqNNvgVnoWzG3BelhctdCWh16/Ftlf0q5aPKiX58MZ1ObCYMdATzsqU0kCpXwivPuQjzPj9eR8RkQWw3qaiqoy+/h7j62VFb3mCNb+nDnpk08+weLFi5GTk4OdO3ciLi4Ob7/9NhISEtCnTx/hfnr06GHdbt68OVJTUxEXF4fPPvsMQ4YMccY0TJo0yVq/ALjtUYmJiXGqL4IgCIJwBZawO2AJjtLUh3SzGDk5OUhJSQEApKWlIS0tTQ/znGbdunUO9xsMBgQEBCAxMRENGqhbrqB6orJw4UJMnjwZo0ePxvTp062re8PDwzF//nxVExV7atasiUaNGsmqO6rFZDJZqzsTBEEQRFUmISHBq2r09O3bFwaDoVxNobJ9BoMB99xzD7766itZGR4lVE9U3nvvPSxduhR9+/bFrFmzrPvbtGmDcePGqe1ORmFhIbKzszFw4EBN/TiiIXIQarePJynY72clHnbR5/sYYd3+7pjNO2SJ4FQ55qSoF66ezMl/IlvkxpGU2JT9bF6TEtzvsL2Sjbx28vuwXU8kD409vMW1MRz5TK0MJIr9QtsyRNz8vHwPzkgPevbFO1dLvyKufdE+RXJ/8J6LmITBR23FZJFruEoS0iJ/Ofpb5BxH+3nPyx1SGO+dYhcH+yX6cc/xJkmqqrBx40a88sormDFjhrVQ8a+//orXXnsNr776KsLCwjBs2DCMGzcOy5YtE+pT9UTlxIkTaNmyZbn9JpMJRUVFqvoaN24cevXqhbi4OJw/fx5TpkyBj48P+vfvDwC4cOECLly4YPWwHDx4ECEhIYiNjUVERIRa0wmCIAiCcCGjRo3CkiVL0L59e+u+Tp06ISAgAEOHDsXvv/+O+fPn45lnnhHuU/WUt0GDBjhw4EC5/Rs2bECTJk1U9XX27Fn0798fycnJ6NevHyIjI7Fr1y5ERd3W7RYtWoSWLVviueeeAwDcd999aNmyJVcDIwiCIAjCc2RnZyM01F6/AEJDQ5GTc9sbn5SUhMuXLwv3qdqjMnbsWKSlpeHGjRuQJAm//vor/v3vfyM9PR0ffvihqr7WrFmjeHzq1KmYOnWqWhMVEZEw7FmPng73i1RVVorose4XzYPCRPeI2M5G+rDXYHO+KMGLMhK5NjvObB4aHkp5VFhYCYvlRrthDq/Ni/QRjeZhJQZ2W61bW1T2EGmnRZbhVZh1BrVuc6X2atPBi+S6Ya+nJGtpkS5ExlDPar3sOyjLccJJae+M/KLluWpOb8/5vLL3KnRthc83yT2upXXr1hg/fjw+/vhjq9Ph0qVLmDBhAv7+978DuJ2WRE2Qi+qJyrPPPovAwEC8+uqrKC4uxhNPPIHo6Gi88847ePzxx9V2RxAEQRBEFWHZsmXo06cP6tevb52MnDlzBgkJCfjPf/4D4PZ61FdffVW4T1UTlVu3bmH16tXo1q0bBgwYgOLiYhQWFqJ27dpquiEIgiAIogqSnJyMP/74Az/88AOOHj1q3delSxcYjbc9Zn379lXVp6qJiq+vL55//nkcPnwYABAUFISgoCBVF/QUlvB4WAxGmQTCk1zKRZDkOe6zJ9bb+mfkBlZa4ck9ounwWVtEJCJepI+ITUpVldXKPfJoG8dSE9tnz2PrHbYpB/MsSmsNc9hEz8quvPNdFd3gisgRPeUeV8GTaXhttFRSFnX9u0MicMXz8GTSNa3X4Ek87rg2oR9GoxHdu3dH9+7ddelPtfRz1113Yf/+/YiL4+ViJQiCIAiiulJUVIQtW7bg9OnTuHnzpuzYyJEjVfeneqLywgsv4KWXXsLZs2fRunVrBAcHy443b95ctREEQRAEQVR+9u/fjwcffBDFxcUoKipCREQELl++jKCgINSuXds9E5WyBbPsxdiMc2WZar2N0vA4lPr4yiQJXh0de0blveNwv6wvVlISSOymtn6N0jGZ3MNE+sgqPbMyEKdisn1yNJ6N7PnsffNkKhG7zXb1itRGGWnBGVlFL5e9Uj+uSJgl2qer3eiidZdEoj20olYu0ivqClCfYE52roDE6a1yiKuTrolGmHnr+FRmxowZg169emHRokUICwvDrl274OfnhyeffBKjRo1yqk+nEr4RBEEQBEHYc+DAASxevBhGoxE+Pj4oKSlBQkIC3nzzTQwePBiPPPKI6j5VT1RobQpBEARBEI7w8/OzRvfUrl0bp0+fRpMmTRAWFoYzZ8441afqiYorKiO6A0t4PCy+/k6dK5ogrQxWfuFJK2r7BJRlIeu1ZTV9bDhT84ZnL68vkWuw96C1Dg9vbF1fYcR1NV5cIffw3NtKEoa73eNaoj3cgZYoIyXUSohak7m5AmfqTXlSciG5x7W0bNkSu3fvRlJSEjp06IDJkyfj8uXL+OSTT9CsWTOn+lQ9UXFFZUSCIAiCICo/M2fOxPXr1wEAM2bMwKBBgzB8+HAkJSXho48+cqpP1VPyjRs34u9//zs2btyI/Px85OfnY+PGjUhNTcU333yDrVu34sqVK5orKRMEQRAEUXmQJAm1a9dGu3btANyWfjZs2ICCggLs3bsXLVq0cKpf1R4VV1RGdCfcejuc/YD6ZGci/QjX92HgRdIE7Fxs3WYjfRIibG5l3vWU7ODVzFE7u7WAI9EojCtrF+8cZ8bQFYiUvOfB1m5x5nosesoQrpYVnJF6RCOFtFyDh5aoH614MoEbD3YMzMfN1m3RBIuusJ19P7xdSgQAS80YlIbV19bH9QvIyclBSkoKACAtLQ1paWl6mOcUkiQhMTERv//+O5KSknTrV/VExRWVEQmCIAiCUE9CQgIyMjI8bQaA2xlpk5KScOXKFV0nKqp/NpVVRrx06ZJ1n9bKiARBEARBVH5mzZqF8ePH49ChQ7r1qdqj4orKiN6AMwnGZFExdgnLKrweJ4LHGTmjuOds63YME3F0g5Gz2KgdXuSNvWud/UtrzRxH+CQlW7eVJBAtjna2X1fcg+i1WUTd0iIRHmpd6Ep1f1h7tUg/PInGHXKPVjt48oGWKCilMRd5rp5MUCZSJ4r3nipJn+Zsm1zkjdIW4TyDBg1CcXExWrRoAX9/fwQGBsqO5+VxiucpoHqi4orKiARBEARBVH7mz5+ve5+qJyqArTJix44dYTKZYDAY9LaLIAiCIIhKxuDBg3XvU/VExWKxYMaMGVi0aBH+/PNPHD16FAkJCXjttdcQHx+PIUOG6G6kHhivnoTRx1dI1rGXZXgRKLL+NdSjEU18JtLOzMhArE2ycxNtkpAz8o6ILMC6fXn9CssLkTaJyHzM+SRxPBlIa90erutaYDydkUO0uMQVa6CojEByVZSFFrnHVdfTIvfIrmX3rqitM+QqRCQeERmVPdd8jJF37L8fE/lRlo4QGYPKEOlTXcjOzsby5cuRnZ2Nd955B7Vr18Z3332H2NhYNG3aVHV/qr8Rpk+fjhUrVuDNN9+Ev78t02uzZs3w4YcfqjaAIAiCIIiqwZYtW3DnnXciMzMTGRkZKCwsBAD89ttvmDJlilN9qvaofPzxx1iyZAk6deqE559/3rq/RYsWOHLkiFNGuAOfq6fgYzDKZva8nCNKsOefOnbKuh2TamujtnqykseGm78kwvE1eG1cvTC2nB0qF2OKtuf9ipf9YmPWavEWC7O/DkUXV7Jo9hJxri3ybLSkc1fKAcJeW8uveD0XzfL6EvGCiNqh1y9xnleCfSeUxlUvTxLvfuyfPWsj7/PA+7yJvKd+SX7MX8ncdjIbdVrQrfie0yJdl/Lyyy9j+vTpGDt2LEJCQqz7H3jgAbz//vtO9an6TTh37hwSHbjtLBYLzGazgzMIgiAIgqgOHDx4EA8//HC5/bVr13Y6v5rqiUpKSgq2bdtWbv8XX3yBli1bOmUEQRAEQRCVn5o1ayI3N7fc/v379+OOO+5wqk/V0s/kyZMxePBgnDt3DhaLBRkZGcjKysLHH3+Mb775xikj3IE5oQPMvv4w5tlkljjm+A0mD4rSolW2MnIibJWKi2s9Z7sWpzKyXPqpeIGuKGqlHNFcB7xzPAnvXn2O2RZAs8+IlYTYfDM+qTZXtNL4yRaYHrfl2illZEM9x0ZkQSvvelpTu2uVrfRCpF8t11aSWERkE5FSA94o9yjlzWGRSzY2tMidot8z7H1oWeTuznIQhJzHH38cEydOxOeffw6DwQCLxYIdO3Zg3LhxGDRokFN9qn6Cffr0wddff41NmzYhODgYkydPxuHDh/H111+jS5cuThlBEARBEIRr2bp1K3r16oXo6GgYDAZ89dVXsuOSJGHy5MmoV68eAgMD0blzZxw7dkzVNWbOnInGjRsjJiYGhYWFSElJwX333Yf27ds7nQjWqTwq9957LzZu3OjUBQmCIAiCcD9FRUVo0aIFnnnmGTzyyCPljr/55pt49913sXLlSjRo0ACvvfYaunXrhj/++AMBAQFC1/D398fSpUvx2muv4dChQygsLETLli011f5xaqJSGSmNTECpn3yg2egcVn5RSmNf2m6YdfsGs62Uit66n/2DjdpxIqU6D1dF23gj7HiwchuvyjT7jNiRVBoD9piZkXt4LupKPZ4ejIYQiTQRQSQiSk/JypnoHtXX0GCvouykUrLhtVcrhdmfI2vHicxT6quiNhTlY6NHjx7o0aOHw2OSJGH+/Pl49dVX0adPHwC3o3zr1KmDr776Co8//rjQNbZv34577rkHsbGxiI2N1cVuoYlKeHi4cPZZZ/L4EwRBEAThOU6cOIELFy6gc+fO1n1hYWFITU3Fzp07hScqDzzwAO644w70798fTz75JFJSUjTbJjRRYXP3X7lyBdOnT0e3bt3Qrl07AMDOnTvx/fff47XXXtNsEEEQBEEQYlgsFhQUFMj2mUwmmEwmVf1cuHABAFCnTh3Z/jp16liPiXD+/HmsWbMG//73vzFr1iw0b94cAwYMQP/+/VG/fn1VNpUhNFFhc/f/4x//wOuvv44RI0ZY940cORLvv/8+Nm3ahDFjxjhliLtwRu4RicpRmxhMlthIYeW/K+QerfBcqa6q8sr2y4tY4iWXKr3iOOmdM/gl2q6hNe2+WrS4wVm81Q3OlUtVVjP21vtTiysiquzHRiRKTERC4VV6ZtH8efl2g62vB7s7tI+HtyZ/s4TeoTniU/rzMLKydiEsLEy2f8qUKZg6daqmvp2lVq1aGDFiBEaMGIETJ05g9erVWLlyJSZNmoT77rsPP/30k+o+VX93f//99+jevXu5/d27d8emTZtUG0AQBEEQhHMkJycjPz9f9m/SpEmq+6lbty4A4M8//5Tt//PPP63H1NKgQQO8/PLLmDVrFu68805s2bLFqX5UT1QiIyPxn//8p9z+//znP4iMjHTKCIIgCIIg1GM0GhEaGir7p1b2AW5PKurWrYsff7TlBysoKEBmZqZ1mYcaduzYgRdeeAH16tXDE088gWbNmmH9+vWq+wGciPqZNm0ann32WWzevBmpqbcL3GRmZmLDhg1YunSpU0a4A0t4PCz+Qdy6OkqRBmqTMqlNwKbU3pnkbO5Ea5IxLf0IuX1VVgTWikjlWTZxXNDOxbJ2bFI6Fl40BK+irbdHH4l+pkQkEJ4MpKUmkihao0u03J8ISt9rrpBwRcZf8XyeVJ5qy9Glp1jjyMbSIvd+Z7iTwsJCHGe+f06cOIEDBw4gIiICsbGxGD16NKZPn46kpCRreHJ0dDT69u0rfI1JkyZhzZo1OHfuHLp27Yp33nkHffr0QVBQkNN2q56oPPXUU2jSpAneffddZGRkAACaNGmC7du3WycuBEEQBEF4F3v27MH9999v/Xvs2LEAbq9DXbFiBSZMmICioiIMHToU165dwz333IMNGzYI51ABbieVGz9+PPr164datWrpYrdTeVRSU1OxatUqXQwgCIIgCML1dOzYEZIkcY8bDAa8/vrreP31152+xo4dOwAAf/zxB/bs2YObN2/Kjvfu3Vt1n0ITlYKCAoSGhgp3ev36dVl5Z2+gNCIOpaYaQonZeLUu9ERUHtKSTEzEtau1L2+HHWeeZKJVJmH74rny/Y7ZdF/TrkU2+5iEdPbtZNfgSJbsu+qqJFciEopauUBrVAvv2npGnvHu26+h678fWETugyfxODPOWsZNqxQsItWqrYdV2eqZVXZOnDiBhx9+GP/9739hMBisE6OyXGylpU7I/CKNwsPDcfHiReFO77jjDuTk5FTckCAIgiCIKsPIkSMRHx+PixcvIigoCL///ju2bt2KNm3aYPPmzU71KeRRkSQJH374IWrUqCHUqdlsdsoYgiAIgiAqLzt37sRPP/2EWrVqwWg0wmg04p577kF6ejpGjhyJ/fv3q+5TaKISGxurKqKnbt268POr2D06depUTJs2TbYvOTkZR44cAQDcuHEDL730EtasWYOSkhJ069YNH3zwQbnMeSJYwuNhCeDLV2ojdQD9XIXuqBWjV3SOPXpJDKL9qL0PZ0rQq44mYlbRmxjphpVoanzyT1tzpmZQIuSeR7+jP9iuwSQnZKUfkYgZVyXf413D3ddmUXsN0XdIllBQpdwjOgYispraqENee6VoRr0SzIk+C3ZsTZP7WrdL2j5v3Tbm2T4b7GeJresluzbzHV5V6m9VRkpLS61LP2rVqoXz588jOTkZcXFxyMrKcqpPoYnKyZMnnepchKZNm8oSxfn62kwaM2YM1q9fj88//xxhYWEYMWIEHnnkEetiHYIgCIIgvIdmzZrht99+Q4MGDZCamoo333wT/v7+WLJkCRISnMvE6/Hqyb6+vg6z3uXn52PZsmVYvXo1HnjgAQDA8uXL0aRJE+zatQtt27Z1t6kEQRAEQSjw6quvoqioCADw+uuv46GHHsK9996LyMhIfPrpp0716fGJyrFjxxAdHY2AgAC0a9cO6enpiI2Nxd69e2E2m2WVHBs3bozY2Fjs3LlT9UTFGG6EMdCzLkBepALrVtZal4IXAeFu1CbbcoetvEgA0aRwpZk2t2WAXaK2MkyZjiXSF/GedTsRNqnoxYivZe1utBtm3baPCHJok041gACx+jlsG9kYMmODRKaeVqSYC96dUWVKNW/0knuctaUMtXIPD1fUDLJHVGriwSY55EW98a7H1t8ShffZL5OOLMXel1izMtGtWzfrdmJiIo4cOYK8vDyEh4dbI3/U4tGJSmpqKlasWIHk5GTk5uZi2rRpuPfee3Ho0CFcuHAB/v7+qFmzpuyciio5lpSUoKSkxPq3fVVJgiAIgiDcR0REhKbzPTpR6dGjh3W7efPmSE1NRVxcHD777DMEBgY61Wd6enq5BboEQRAEQVROPC79sNSsWRONGjXC8ePH0aVLF9y8eRPXrl2TeVUqquQ4adIka1pg4LZHJSYmRpNdrlg1LlIyXWu/Iq5o0dXxauup8Pp1lcSjdpW/UhvzMVt4PRt5IGvTqKvDNmxEAhupMC/vK4fnXk/6TN4xI5uUMtsymCgjtWXiXRVd5ZOabN3mja0z19arHo3WCBcRecOZJHQiEg97Db0igLQiMh5K75DsHWHeHTPzzvMiMXlPW1RWZq/t7bXUiNs49RZv27YNTz75JNq1a4dz584BAD755BNs375dkzGFhYXIzs5GvXr10Lp1a/j5+ckqOWZlZeH06dOKlRxNJlO5SpIEQRAE4U1Ywu5AaWQDTf8swZHIyclBSkoKUlJSsGDBAk/flktQ7VH58ssvMXDgQAwYMAD79++3rgfJz8/HzJkz8e233wr3NW7cOPTq1QtxcXE4f/48pkyZAh8fH/Tv3x9hYWEYMmQIxo4di4iICISGhuLFF19Eu3btXB7xo6cHxR2pzHnXE0plzvyKUMonovbXhrtzF4j8ihf1EvC8KDJvB+dc1lui1tshCq8MhEj1ZNHF2q7IVyOKyOJdXnuZTTp6E0S8MK7yXrgKEU+NlsW4ot99spwxAmUgVHv7BPPYlF3b6F+5nmNCQoK1QHBVRfUTmT59OhYtWoSlS5fKkrrdfffd2Ldvn6q+zp49i/79+yM5ORn9+vVDZGQkdu3ahaioKADA22+/jYceegj/+Mc/cN9996Fu3bpV/oEQBEEQBGFDtUclKysL9913X7n9YWFhuHbtmqq+1qxZo3g8ICAACxYsqLLuLIIgCIIglFE9Ualbty6OHz+O+Ph42f7t27c7nXXOU/AWazmTUt0dKZv1coU6cncCgPm4vEaTbFEpxzXMu1eR8VCSk1xVCdgR9rlIeJKNkdNGJsXkNYAj2JwobDp8e3juePZdZXNHqJXknFkwKHKOO95/Vy181Ov9ckfOErULa0VtUittuepeRZ6Fnt8HWuROwn2o/kZ57rnnMGrUKGRmZsJgMOD8+fNYtWoVxo0bh+HDh7vCRoIgCIIgqimqPSovv/wyLBYLOnXqhOLiYtx3330wmUwYN24cXnzxRVfYSBAEQRBENUX1RMVgMOCVV17B+PHjcfz4cRQWFiIlJQU1atRwhX26w5N7tLqreRIKm0JcbUpuUXjuS9VRP/bVVdnolwgm4oWTtl3tfqUoFb3cuyLuXPs03CLp9blREmBlINv4sXIPL2oHAPxUvp9a3lul0gHsMZncwImIUronaxsn0unz3m1ebh62vTP5R7S8dyLSiKsig5yRYlR/V+gY+eQtUhNL2Rj4+LuvnAMhhtMJ3/z9/ZGSkqKnLQRBEARBEDKEJiqPPPKIcIcUPkwQBEEQhF4ITVTCwsKs25IkYe3atQgLC0ObNm0AAHv37sW1a9dUTWjcjU+ED3yCXOfSk7mcIx27Kc3ZZof7XRXhIpIsS8n9L4t+4bjRuRIBJ2KFRc/7FqnWLJzwTSDFtogkxMpAvDb2Y6NXxIxQWnlnrhXhOK2/iGTlTAp9XjSRu6M1RBKiuUqe4Ekgaq9nP05KyR7L4MnVekYcuSLZnBJqJS/C8whNVJYvX27dnjhxIvr164dFixbBx+f2Qy4tLcULL7xA6eoJgiAIgtAV1T+pPvroI4wbN846SQEAHx8fjB07Fh999JGuxhEEQRAEUb1RvZj21q1bOHLkCJKTk2X7jxw5Aoul+laf5EUk8OBKMYK1WETa8PriVQf2Y5KS2cO2YyUhtlqwzA6VUoC9rWpdsnqNjTNwo2JkieCY8WMkIftx0pI4TWuyLK58xnmWPPSU9ERqFonUANKzYrIIwjKjTlFAzkTIaK1yrQV3yz0sJPdUPlRPVJ5++mkMGTIE2dnZuOuuuwAAmZmZmDVrFp5++mndDSQIgiAIovqieqIyZ84c1K1bF3PnzkVubi4AoF69ehg/fjxeeukl3Q0kCIIgCKL6onqiYjQaMWHCBEyYMAEFBQUAQIto7XB3vQq1yNyuebZN065FsnZ+x360bh+HLdojuudzTCub9CNSD4h3385EhGgZQ1EZSCjSh5MEjSeXyRLBXZFH0fBkFle8L0r37ap6PSLw7pUXNcdDJBLMGfSUJ9QmpdMimWiW4XSM9PEWHL0jpUVU88fbcDrhG0ATFIIgCIJwBkvYHdwCqKJIQZHIydlkTb6alpaGtLQ0PczzKlRPVBo0aACDwcA9npPj+NclQRAEQRD6kpCQUOUTraqeqIwePVr2t9lsxv79+7FhwwaMHz9eL7uIChBJiiVrz0nMFvZxP9u5HAkDAOKS4qzbrAOePccnyRYJJiIdaI1wEoms4PXjTPI3peR4ZbByWdD6idbtwoGf2/ph6/7Yucrt6w65Evux0SKruTuJlixyTUByZBGNMNMiY4iOgZaoH3ckmPMk7ogMcnfiQMI5VE9URo0a5XD/ggULsGfPHs0GEQRBEARBlKHb1LlHjx748ssv9eqOIAiCIAhC22Jali+++AIRERF6dUf8D55LXXVCNE40SXHP2dZtv6M/cM+/0W6Yw/3sYjARi0Tdq3q5YfV057KyjCwa6Ljj9rxIHxmJjmvneAK9oqj0hPf8/JJsz6I0M8u2jYrH05MRTe6WVbReT0tUkqhEw2tX2SKICNeheqLSsmVL2WJaSZJw4cIFXLp0CR988IGuxhEEQRAEUb1RPVHp06ePbKJiNBoRFRWFjh07onHjxroaRxAEQRBE9Ub1RGXq1KkuMIPgoSV5nEj9odLULtZtXt0ee1j3Ls8ZzKu/wrPDvr0r3PNqbXLqGgJ1kGTt7dzbvAguKk0vyHGbDmfOsz0LVirSirc8C57MIir38KQV2edbIPJGRO5RskmtXKTn+FOkT+VA9Te0j48PLl68WG7/lStXZBWVCYIgCIIgtKLaoyJJksP9JSUl8Pf312yQp9BStbayIXp/7K+bGp/807rN5gRhf6ny+jUft+W8YHORsAt87XOU8HKWiFTyZe0Qea7OpO+X5aXhZZds1NXWnsmd4sNUqS6/yDYZFaE2Nby3eACcQcReM2f8ud4AjmdN9Hpqc/x4shoxi5K3Qq/0+M4splV7vp7j6agvH//K9RmpDghPVN59910AgMFgwIcffogaNWpYj5WWlmLr1q20RoUgCIIgCF0Rnqi8/fbbAG57VBYtWiSTefz9/REfH49FixbxTicIgiAIglCN8ETlxInb7ur7778fGRkZCA8Pd5lRrkQkDbo9ItV/Vffphemh7WUV1paSts9bt2WL7TTIZM48C550xEOr3COCzF0NJq8MI/GwsDJQuWO8Cs0aSxJ4A66yjx1/9p3QU8KtCpWDXZXDReS+7du4ulI04Zj4+HicOnWq3P4XXngBCxYs8IBFYqheo/Lzzz+7wg6CIAiCIFzI7t27UVpq+8Fw6NAhdOnSBf/85z8VzvI8QhOVsWPH4o033kBwcDDGjh2r2HbevHm6GEYQBEEQhH5ERUXJ/p41axYaNmyIDh06eMgiMYQmKvv374fZfDtyY9++fbKEb5WF0rxSlP4ldz3zXIiuqmCrxd0JuN/lyUb0mGHLCeInILmwiEg0ojIQry9vjNQSzUvDojYvDbcfwcrBPLRUT3amH150ltD5AlUIlGRQV0TliFZk1iIpeUs6fme+l0TyvjiTG6Y6YrFYUFBQINtnMplgMpkUz7t58yb+9a9/YezYsV7/f7rQRIWVezZv3uwqWwiCIAiiWmAMNWqegBmCDMj6PQthYWGy/VOmTKkwOetXX32Fa9eu4amnntJkgztQPUrPPPMMrl+/Xm5/UVERnnnmGV2MIgiCIAiiYpKTk5Gfny/7N2nSpArPW7ZsGXr06IHo6Gg3WKkN1YtpV65ciVmzZiEkJES2/6+//sLHH3+Mjz76SDfj9MQnwgc+Qc65ePVyDeuZ5loEPaMs2MRkpVdsvna9JBfR+1Qb1eFMIj/euPHkF7WJsFiUZDEhOYxJGc9LPMeLinEVvHFS+hzpVbmZ9+y0JmBTm9qdRel67kwZ7xOu8K5ddf67QmuSNxa1qfl5dvD6rIoYjUaEhoaqOufUqVPYtGkTMjIyXGSVvghPVAoKCiBJEiRJwvXr1xEQEGA9Vlpaim+//Ra1a9d2iZEEQRAEQejD8uXLUbt2bfTs2dPTpgghPFGpWbMmDAYDDAYDGjVqVO64wWDAtGnTdDWOIAiCIAj9sFgsWL58OQYPHgxfX9WiikcQtvLnn3+GJEl44IEH8OWXXyIiIsJ6zN/fH3FxcZVC62Ld/85IAa6QgZxBxM2stqqyvcteRHpQG41iPmar+yNSpRVQL/eIjIHo+SLymUgVW27dEgUpRkimybQllWOlH79jP9raPNjdZpNonSeBStM8Wc2TEVgi77wn7dC6eFLt+Upyj9p2IvKQM5K2lhpCFA2knk2bNuH06dOVak2p8ESlLM76xIkTiImJgdFILwhBEARBVCa6du3KLS7sraj2+8TFxQEAiouLcfr0ady8eVN2vHnz5vpYRhAEQRBEtUf1ROXSpUt4+umn8d133zk8zqbnVcOsWbMwadIkjBo1CvPnzwcAZGdnY9y4cdi+fTtKSkrQvXt3vPfee6hTp45T1wCciwJhcXf5dh56RUmw2Lv7ZS5ZVlbQEDniqggUtePhTKQCN4kaI5Gx0VFs3R9n4F2PfU6lqV1s7VmbmP1+TrznIknXRGQWT35GnEFL5IhItJMzCd+0oCTXiMpCjtpriRICtEUKqR0zd0RYEq5F9adk9OjRuHbtGjIzMxEYGIgNGzZg5cqVSEpKwrp165wyYvfu3Vi8eLHMG1NUVISuXbvCYDDgp59+wo4dO3Dz5k306tULFgu9UARBEARRHVDtUfnpp5/wn//8B23atIHRaERcXBy6dOmC0NBQpKenqw53KiwsxIABA7B06VJMnz7dun/Hjh04efIk9u/fb40RX7lyJcLDw/HTTz+hc+fOak0nCIIgCKKSoXqiUlRUZM2XEh4ejkuXLqFRo0a48847sW/fPtUGpKWloWfPnujcubNsolJSUgKDwSCrVxAQEACj0Yjt27dzJyolJSUoKSmx/l1WA8FY0whjsFF1lAqgPrKFRcT1rWfCJC3YSw0iMo2IPOFMRIim2i8i/es5zkzSNZ8rJxy3SRQoSAOx8RGRoHjPyx1SjJ7XEPlsiMg1Wm1S+xkVTXrnyc87K994UgbiYT5uixBkx40ifaofqp94cnIysrKyAAAtWrTA4sWLce7cOSxatAj16tVT1deaNWuwb98+pKenlzvWtm1bBAcHY+LEiSguLkZRURHGjRuH0tJS5ObmcvtMT09HWFiY9V9MTIy6GyQIgiAIwmtQPVEZNWqUdaIwZcoUfPfdd4iNjcW7776LmTNnCvdz5swZjBo1CqtWrZJluS0jKioKn3/+Ob7++mvUqFEDYWFhuHbtGlq1aqUYGj1p0iRZzYMzZ86ovUWCIAiCILwE1dLPk08+ad1u3bo1Tp06hSNHjiA2Nha1atUS7mfv3r24ePEiWrVqZd1XWlqKrVu34v3330dJSQm6du2K7OxsXL58Gb6+vqhZsybq1q2LhAR+NEVF5a1FZARnkkPp5e62d2tqSYakFbWJ1mQ2qUzMphU963yI1PphZRZejR1WBjKzUVNJftxra0mgJ7s28+ycqb2jFmfq3PDgPUu9ar+wkgKgEAWnIbEY+37I3pVI9e8j77PkLRIITzYSlYS8RfomvBfN+XODgoJkkw1ROnXqhIMHD8r2Pf3002jcuDEmTpwIHx/by182Afrpp59w8eJF9O7dW5vRBEEQBEFUCoQmKmPHjhXucN68eULtQkJC0KxZM9m+4OBgREZGWvcvX74cTZo0QVRUFHbu3IlRo0ZhzJgxSE5OFraHIAiCIIjKi9BEZf/+/UKdGQwGTcbYk5WVhUmTJiEvLw/x8fF45ZVXMGbMGE19iriiRd3VnoxA8Rq3r0r5TOvY8pKJqR1DUXmPJ/dw2zMSj0+qbUJt5EgB9ogkwWPPN2UutW6bkzoxbWxRRiIyEKD+fXZV/Ry19ZJ457LIItgU7pN3vpDUxEg0fg358h4PdjzZ58TbNuY5vidnvhu0RO7wpB+lSCLe9URkv6qCMcyoOemlMdiInN9ykJKSAuB2FG1aWpoe5nkVQhOVn3/+2dV2AAA2b94s+3vWrFmYNWuWW65NEARBEJWNhIQEZGRkeNoMl1I5ajzriNb03pUtJbgrUDsG3jJmWj0Asl/6TKp8cBbKas0fI1uEybs2A1sx2cIs5GXT6Yt6V7Sg5/NWmzuF54Fht83Z8sW0vAX2ar8rtN632vN5nhY/OPbmVDavRGWzl3Ad9CYQBEEQBOG10ESFIAiCIAivpdpJPyLYSwQiLll3V4x1R74B1iXuKplABN4iQ7U4cy5v4atFQO7R+h7wqjKzEo/PZVv6/tJatgW0pZENKuzTfiEfb3xcUcJACZHPkpbF0yKLopXOZ1FbIsMZ1EqWrLTlzKJetYik4ndVmn2tUN6WygF5VAiCIAiC8FpookIQBEEQhNdSraUfrVEgIpKEuyNe1LqoRWUVNlW7K6QOe7vVyhB65vQQkQZcJffwYKUmS4Qtoidg52LrNptTpST1Oev2DQxz2Kc5T6EUxV38MhSOUCt9KpWKYM+3j9Cxnq/hPVBy97uixIZSKn4tafp5so5M5uJsA4Bfou18LXbIru2lEg9RuSGPCkEQBEEQXgtNVAiCIAiC8FqqnfSjNoJHtC+9+nVH0iie3GOflIwnv8iiUZhz9Ix8EnHB81zUvHHmJlBzwtXNs0+kL62RBmyq/OKes23XZiKDZKn82SrOzLn2tmpN512GnlE7vER5vH5F3jt7WYuXOE3LNXjY3zf3XdXwWRJtz9rCs6OqJ11zdH9Gv6p9z5UReiIEQRAEQXgtNFEhCIIgCMJrqXbSjwiaZQtOvRFn+tXL9eqMHbJqsEyUCyuhlPxa4rAND9FaKrrdN+vKz9xo22ba2CdHY2UT1g72/rRWq7VeW0EOZKUYnixTGmGr42PmyCms3c6k/9IrkknxXt1QS4cHL7GhFvlFNPpOi7zEe++0SotVXQaqaHwshZQEztuoGm8eQRAEQRBVEpqoEARBEAThtZD0owGexOPqc53BGTmK5wJmE0WxaIlOcJVbWVbbht3Pyj2JiZDBeR68CBQt2I8ZL8GZWtjxFLWbF/2iBT0jwfTqy/5cLXV8RPpRwhVRYs5IQiJJ83jnVzZJyFWSmWo7Qo2av1MMQQbk/JaDlJQUAEBaWhrS0tL0MM+roIkKQRAEQVRSEhISkJGR4WkzXErlmgoTBEEQBFGtII+KBkRchSJuUXe4Tp1xa7oi4RWLnvfN7YtRdcywRciw4+GnkOhMFnnjhsRuIq5gWSQTY5+IJKckT/CuLYuE4dRBYu3QUyJTW8dHT6mJ169alOxQm3hQy2dGqc6QyP3x5GOn3nMvlIvKbKKEb94HPRGCIAiCILwWmqgQBEEQBOG1VBvpxyfcBz41fFzmGmbRq2S6O1CyT4u0JTIGrhonXi0jkQRq9miRMUTu297lrmc0i5bzRaQAWfQYM568iCGlulI8zMdtUVC895FNaKdn7Snee8RDpD6VEiKfNz0jU7TIWVqjFvWKZCKqB/T0CYIgCILwWmiiQhAEQRCE11JtpJ8y1Lq37c9h8XZ3pFY3Me/+RGqBuDvaSRaFoDJZmX0kCxs94yp5UKR/vRKR8c617593PXZ8ROQ6EVlHOOkaKymJSCMceUnps86eYz5mk5qMeTnW7UvzH7dur0dP6/ag16dYt013mRxez9XvkD2uSmim9nzRMZclZeRIsn6cKlWu+A6hWj/eh3f/T0sQBEEQRLWm2nhUSq+WovSmfIbP++Wt9IvQ270oLHr+slKbN0TtOCnZpCl3hEBuEPtfcSK/gNXeq+iYq/0lrnahspIdPG+EyCJkrQtJRc7hVedWm3vGHl5uGJa6A9Ot20PYcwWevZZFq4D68RR915zxLlcEbwFyuTE+fty6yXqrYlLvt27fGPiWw2uIPG/R7wx3p80nnKPy/K9LEARBEIRuzJo1CwaDAaNHj/a0KYrQRIUgCIIgqhm7d+/G4sWL0bx5c0+bUiHVRvopy6OilcqUI0UEZ+6HJyWILLIV6VMrQq5hwTwe7n7G7ixPIHotV1SNdgaeHSISBm9BcLlrMAtoLREJjq+Xmmzb5vTDG1slicUVi26VpES9ShKozbkDyH8hs3KPDEYeMufZnoXs+yey4sXTovddlrPnxl83HNtThSgsLMSAAQOwdOlSTJ8+3dPmVIh3fAMRBEEQBKEai8WCgoIC2b+SkhLFc9LS0tCzZ0907tzZTVZqo9p4VAiCIAjCWzCGGjV70YxBRmRlZSEsLEy2f8qUKZg6darDc9asWYN9+/Zh9+7dmq7tTqr1REXrS1JZZSCt6a/VXsNVqK3+qvUa3vKM9YyoYuFJKO7OAyKCFpv8jv0o+5uVe3wu2+SG0lq20tvmpE62/QJ5P5x5H9Wew0bV+DWsuHK26DEtcg+v5IH9mJdGNrBuF/ec7bAv2XvOKdfAu7ZSSQderhwkJqIykpycjMzMTNk+k8nksO2ZM2cwatQobNy4EQEBAe4wTxeq9USFIAiCICozRqMRoaGhQm337t2LixcvolWrVtZ9paWl2Lp1K95//32UlJTAx8f7fpjQRIUgCIIgqgGdOnXCwYMHZfuefvppNG7cGBMnTvTKSQpQzScq3uLKZ3FV4jNX9enuysgsItVtnUkGJuJSF4H3LJVc6974TmqRgdwhM6qVTFjZQQk26ofd9mNkBbURUXrKaFqehTPtZNWyeTIhp+QBK50B8uR9fiqTMook6FNqw96fT1JyueM+xd75n7UehISEoFmzZrJ9wcHBiIyMLLffm/C+b0WCIAiCIIj/4TUTFUcZ8i5cuICBAweibt26CA4ORqtWrfDll196zkiCIAiCqEJs3rwZ8+fP97QZiniF9MPLkDdo0CBcu3YN69atQ61atbB69Wr069cPe/bsQcuWLT1krWuxd7uqdZd7MkpFrZvfJ1zMxVp6VZ1rn3XH8+rXsLBRAAC/powWXBWVxENPmUVEYuDJQ87UOOLBk/fY65mzmYgO5nmzFbEtkXJ3f+kVW7RHKZNkjIV9J7QknnMHrqpKziJyf65K4sj7fPPaq76Wv9f8fif+h8efCJshLzw8XHbsl19+wYsvvoi77roLCQkJePXVV1GzZk3s3bvXQ9YSBEEQBOFOPD5RUcqQ1759e3z66afIy8uDxWLBmjVrcOPGDXTs2JHbX0lJSbksfQRBEARBVE48Kv1UlCHvs88+w2OPPYbIyEj4+voiKCgIa9euRaJCYp709HRMmzaNe9wboyqUELHXG0uVe+M4c93EdrbqVduG7ZcnjbhqnLS+Nzy5R0Tec1WyOJEILGeitGTPO7GJdZMnG4rck3AdJYHxVCup6vl9oEWSY2v1sPWRALHx1HOc1eDjX3WjfiorHvvfpCxD3qpVq7gZ8l577TVcu3YNmzZtwp49ezB27Fj069evXBw4y6RJk5Cfn2/9d+bMGVfdAkEQBEEQLsZjHpWKMuRlZWXh/fffx6FDh9C0aVMAQIsWLbBt2zYsWLAAixYtctivyWTipg8mCIIgCKJy4bGJSkUZ8oqLiwHcTg/M4uPjA4vFedemN9ZuEUXENVyZUBvNo/l6nCRQvNohWuElyBI9p7I+VxFpy/5d1lJnSHW0mRNygbfUO3JHAj0Wtfcte/bhTcTa6fSea/3seKOETtzGYxOVijLkmc1mJCYmYtiwYZgzZw4iIyPx1VdfYePGjfjmm288ZDVBEARBEO7Ea3+y+fn54dtvv0VUVBR69eqF5s2b4+OPP8bKlSvx4IMPeto8giAIgiDcgFckfCtj8+bNsr+TkpIqTSZatW5HXrIzd8shrsJV96fWPcuTe9gEYK6qtyMieyjdj8i9qrVVq3ubd77WujM8mcyT8pfaRHfORAmZj5srbCfyzJype6VWVhOBba90ritkFr3qlhn9vPb3e7XFqyYqBEEQBFEdMIYZNU+uDEEG5OTkICUlBcDtvGRpaWl6mOdV0ETlf2hdiMU7RzRNfHXBmbT57LPh/XLkLpTN3Ghrk9rFtt+Dv9qVrsf+wmYR+bWta8pylfk9eDbp+ctZy2Jydy9CFUn37+hvPa5n/NcH1m1zj2G2/YL5gbR4UQj3k5CQgIyMDE+b4VLoDSMIgiAIwmuhiQpBEARBEF5LtZN+eG5Kb3Ff2ksjrATiLTaKwFs0y96f6MJatXIPu9+S1Mm67acxX4qIbKX1vtVKAVqq2NqfK1L1WO07KFo6QETC0kuScIdEJpoLRostsjFjZJ2S1Oes2+w77yo7XCVv67UgX8m+qhK8UNWpPP/zEQRBEARR7aCJCkEQBEEQXku1k368naruiuRF85Rrx5E0tFQ21qsqMqD+OYm2F3HBl+wusW6z1YLN2WbH+zmRRO5G6d5cnbvGHaiNPnLV9Ux32Wqdsc/evrK0J+UeZyRgNX160g5Cf8ijQhAEQRCE10ITFYIgCIIgvBaSflwM606szMnfXJFYTCRiBdCWFEsWAcRJwmUPN0rGgy5q9tqmv9tc++xzYV377NiW/GqTilhYiUBP3CG/aHHZi0aBqH1OnpQOuGOeaNu0/7xpeU6e/F5zdZSRj0/l/Z6uqpBHhSAIgiAIr4UmKgRBEARBeC3VRvoxhhthDDG6rDZKVUevsdKr+q7SOSKSktL19HpH9HRR8/riSSCs3ey9spFB9tFAlkjHMpKWMdDzM6Z2PLVGgXg7Is9ea40jT46HWnlJqxxVdn7pdYr+8Tbof2qCIAiCILwWmqgQBEEQBOG1VBvpx5tRihZwhVTl7iRHzricdZMMmKgHntzjzLW8USIQsckPftxj5mP85GBqridS70j0HLW4+7mIJjDkofbzLSIBsjhTK8xb3m0tUl9VibYkbkMTFYIgCIJwM8YQo+ZJlDHIiJycHKSkpAAA0tLSkJaWpod5XgVNVAiCIAiikpKQkICMjAxPm+FSqt1ExZORPt7ijnS33MOLPGClGFfVQNHiTq8qsPeneK/fbrBtd+9VYV8i1xNFRI7kfX7c8fx4NonIPXrWOHJGVvN2XG276Pdd2bO0FKqX8AjXQotpCYIgCILwWmiiQhAEQRCE11LtpB9ncEmdG060gH2yMi11bjwJb5y0jl9ldnF7O6WpXazbJg9KpO6OSuMhEtEjS6yn8d3UkuCMhzNj6S0StVqckeco6WflgJ4SQRAEQRBeC01UCIIgCILwWqqN9ONT0wc+oWJuTHsXoivcgzy5x3LVe9yUIpE7rkhCR3iGgLsCHO739mejVh4SlQJE3nN31HPS0l5pbLz9uaqFJ3OJyullz9joR7/fvQ16IgRBEARBeC3VxqPiatTmU2C32Yq27kZpIS8Pyk1SeRH1Pnj78xO5D2e8lmyJAT0XyrqTyroYVgkt9+SXWHE5CMK7IY8KQRAEQRBeC01UCIIgCILwWkj6cQFqF5iKVKoFXJTPRaPcU1Vcy9URpXfIk/KB2vwgIm14i2Ttj1WF97kq3AMgfw+KNxRbt3mLvp15jo5y5VTlFPpbt27FW2+9hb179yI3Nxdr165F3759PW1WhZBHhSAIgiCqAUVFRWjRogUWLFjgaVNUQR4VgiAIgqgG9OjRAz169PC0GaqhiYoDlNyGPLe0WilGq4yjtWprGVorGFfFCIOqjOgzEolE0/N5u/o98uS7Kfq5EvlMV1eCugd52gTd+evGX5r7KC4uhsViQUFBgWy/yWSCyWTS3L+3QNIPQRAEQbiRvn374t2P3oUxwuj0v5tBN7H448UwGAwICwuT/UtPT/f0LeoKeVQIgiAIwo1MmzYNSUlJ+OWXX9C+fXun+nj33XcRGRmJ1atXw2yWe0CrkjcFoIlKtUfJLU1SjmfRK7LLGUlBNBJNLyrru+aOshZKEUtVGVe9E56syF1GvXr1MG7cOIwfPx7bt2+HwWBQdf6VK1cwc+ZMfPnllwgMDERgYKCLLPUOvEr6mTVrFgwGA0aPHg0AOHnyJAwGg8N/n3/+uWeNJQiCIAgnGTduHLKzs7F27VrV506fPh3t2rVDp06dXGCZ9+E1HpXdu3dj8eLFaN68uXVfTEwMcnNzZe2WLFmCt956q1KuXCYIgiAIAKhRowamTZuGl19+Gb169YKfn5gXMzs7G4sWLcKvv/6q+pqFhYU4fvy49e8TJ07gwIEDiIiIQGxsrOr+3IVBkiTJ00YUFhaiVatW+OCDDzB9+nT87W9/w/z58x22bdmyJVq1aoVly5YJ9V1QUICwsDBc3n8ZoSGhmiuOqkVrdI5IBWPRvtRSWd3xlRlXSwmi0WZ6SQzeKFs4U1HYGyuXE87hKMkbS0FhAWo/UBv5+fkIDQ11qS23bt1C8+bN8cILL2DEiBFC5zz22GOoUaOG8P+BLJs3b8b9999fbv/gwYOxYsUK1f25C6/wqKSlpaFnz57o3Lkzpk+fzm23d+9eHDhwQDFZTUlJCUpKSqx/24dtEQRBEIQ34Ovri9mzZ+OZZ57BwIEDERYWptg+MzMT33zzDY4ePerU9Tp27Agv8E2oxuNrVNasWYN9+/YJhVMtW7YMTZo0UVwlnZ6eLgvTiomJ0dNcgiAIgtCNhx56CE2bNsWbb76p2E6SJIwfPx5jx47FHXfc4SbrvAOPelTOnDmDUaNGYePGjQgIcFy/oYy//voLq1evxmuvvabYbtKkSRg7dqz174KCAsTExMCnpg98Qp2TMvSqscPW1REtPe5OuYekHnF4Y67WNe9uSUH0eiLttNyrN0kYlem999Yx9Dacke/Lvp9Li9wbFWQwGDBnzhx06NABw4cPR/369R22W7duHY4cOYL169e71T5vwKMelb179+LixYto1aoVfH194evriy1btuDdd9+Fr68vSkttL8wXX3yB4uJiDBo0SLFPk8mE0NBQ2T+CIAiC8FbatGmDPn36cH+Im81mTJw4EVOnTkVISIibrfM8HvWodOrUCQcPHpTte/rpp9G4cWNMnDgRPj62XzrLli1D7969ERUV5W4zCYIgCMKlzJw5EykpKRg9ejRatGghO/bhhx9CkiQ899xzHrLOs3h0ohISEoJmzZrJ9gUHByMyMlK2//jx49i6dSu+/fZbd5sIQEdpJcKxi1nJhcte290yAQ+eW7UyudCV0FK3iddPVXTTu+p9VCuraa0TJHK+XrW1nKEqvjuuQK96UT7+nvkei4+PxwsvvIAJEybg+++/t+6/fv06pk6disWLFwuHMFc1vON/vgr46KOPUL9+fXTt2tXTphAEQRCES3jllVewe/du/PDDD9Z9b731Fho1aoQ+ffp40DLP4hV5VFxJWR6VqyeuCq9XcUceFdFf2+70ooj+CiGPihwtz9hbvGTuxpl3Xi+PijN5VETQ81mSF0U9znhUHOVUcWceFUfMnTsXn3zyCfbu3Ys///wTSUlJ+Omnn5Camup2W7wFr8ij4ilcVfOB+4WaV/H1tH7ZqXVRO/PFXFUmJK7Gmf9sPCkxeAtqo+x476Pof1x6vc9aowNFnr2rfiR4y48PtXZUlLzN0bneUOtHiREjRuD999/Hv/71L2zbtg09e/as1pMUoJpPVAiCIAjCmzCZTJg5cyZGjRqF69ev49ChQ542yeNU+YlKmbJVcL18htrS6y7yqBRyPCpMfD5vwZbRT6NHhXNt3jXYyCriNkZfldJPgfNuevtrifSl1j5vRHTM2HtVO87s55t9z+0/9674DDjzjETuj/edpfUeXNWvq+1g27PffUrfcbxrlJ1/veg6AHg0g+tjjz2Gf/3rX2jVqhUaNmzoMTu8hSq/RuXs2bOUnZYgCIJQxZkzZ7jJ1wj3UuUnKhaLBefPn0dISAgMBkO542WZa8+cOUPJ4f4HjYkcGo/y0JiUh8akPJVxTCRJwvXr1xEdHQ2jsfJ7L6sCVV76MRqNQrNiymJbHhoTOTQe5aExKQ+NSXkq25hUVByQcC80XSQIgiAIwmuhiQpBEARBEF5LtZ+omEwmTJkyBSaTydOmeA00JnJoPMpDY1IeGpPy0JgQelDlF9MSBEEQBFF5qfYeFYIgCIIgvBeaqBAEQRAE4bXQRIUgCIIgCK+FJioEQRAEQXgtNFEBMGvWLBgMBowePdrTpniUc+fO4cknn0RkZCQCAwNx5513Ys+ePZ42y2OUlpbitddeQ4MGDRAYGIiGDRvijTfe8GgNEHezdetW9OrVC9HR0TAYDPjqq69kxyVJwuTJk1GvXj0EBgaic+fOOHbsmGeMdRNKY2I2mzFx4kTceeedCA4ORnR0NAYNGoTz5897zmA3UNF7wvL888/DYDBg/vz5brOPqNxU+4nK7t27sXjxYjRv3tzTpniUq1ev4u6774afnx++++47/PHHH5g7dy7Cw8M9bZrHmD17NhYuXIj3338fhw8fxuzZs/Hmm2/ivffe87RpbqOoqAgtWrTAggULHB5/88038e6772LRokXIzMxEcHAwunXrhhs3brjZUvehNCbFxcXYt28fXnvtNezbtw8ZGRnIyspC7969PWCp+6joPSlj7dq12LVrF6Kjo91kGVElkKox169fl5KSkqSNGzdKHTp0kEaNGuVpkzzGxIkTpXvuucfTZngVPXv2lJ555hnZvkceeUQaMGCAhyzyLACktWvXWv+2WCxS3bp1pbfeesu679q1a5LJZJL+/e9/e8BC92M/Jo749ddfJQDSqVOn3GOUh+GNydmzZ6U77rhDOnTokBQXFye9/fbbbreNqJxUa49KWloaevbsic6dO3vaFI+zbt06tGnTBv/85z9Ru3ZttGzZEkuXLvW0WR6lffv2+PHHH3H06FEAwG+//Ybt27ejR48eHrbMOzhx4gQuXLgg+/yEhYUhNTUVO3fu9KBl3kV+fj4MBgNq1qzpaVM8hsViwcCBAzF+/Hg0bdrU0+YQlYwqX5SQx5o1a7Bv3z7s3r3b06Z4BTk5OVi4cCHGjh2L//u//8Pu3bsxcuRI+Pv7Y/DgwZ42zyO8/PLLKCgoQOPGjeHj44PS0lLMmDEDAwYM8LRpXsGFCxcAAHXq1JHtr1OnjvVYdefGjRuYOHEi+vfvX6mK8unN7Nmz4evri5EjR3raFKISUi0nKmfOnMGoUaOwceNGBAQEeNocr8BisaBNmzaYOXMmAKBly5Y4dOgQFi1aVG0nKp999hlWrVqF1atXo2nTpjhw4ABGjx6N6OjoajsmhDhmsxn9+vWDJElYuHChp83xGHv37sU777yDffv2wWAweNocohJSLaWfvXv34uLFi2jVqhV8fX3h6+uLLVu24N1334Wvry9KS0s9baLbqVevHlJSUmT7mjRpgtOnT3vIIs8zfvx4vPzyy3j88cdx5513YuDAgRgzZgzS09M9bZpXULduXQDAn3/+Kdv/559/Wo9VV8omKadOncLGjRurtTdl27ZtuHjxImJjY63ft6dOncJLL72E+Ph4T5tHVAKqpUelU6dOOHjwoGzf008/jcaNG2PixInw8fHxkGWe4+6770ZWVpZs39GjRxEXF+chizxPcXExjEb5XN7HxwcWi8VDFnkXDRo0QN26dfHjjz/ib3/7GwCgoKAAmZmZGD58uGeN8yBlk5Rjx47h559/RmRkpKdN8igDBw4stw6wW7duGDhwIJ5++mkPWUVUJqrlRCUkJATNmjWT7QsODkZkZGS5/dWFMWPGoH379pg5cyb69euHX3/9FUuWLMGSJUs8bZrH6NWrF2bMmIHY2Fg0bdoU+/fvx7x58/DMM8942jS3UVhYiOPHj1v/PnHiBA4cOICIiAjExsZi9OjRmD59OpKSktCgQQO89tpriI6ORt++fT1ntItRGpN69erh0Ucfxb59+/DNN9+gtLTUul4nIiIC/v7+njLbpVT0nthP1vz8/FC3bl0kJye721SiMuLpsCNvobqHJ0uSJH399ddSs2bNJJPJJDVu3FhasmSJp03yKAUFBdKoUaOk2NhYKSAgQEpISJBeeeUVqaSkxNOmuY2ff/5ZAlDu3+DBgyVJuh2i/Nprr0l16tSRTCaT1KlTJykrK8uzRrsYpTE5ceKEw2MApJ9//tnTpruMit4Teyg8mVCDQZKqUZpNgiAIgiAqFdVyMS1BEARBEJUDmqgQBEEQBOG10ESFIAiCIAivhSYqBEEQBEF4LTRRIQiCIAjCa6GJCkEQBEEQXgtNVAiCIAiC8FpookJUCjp27IjRo0dXqes+9dRTmjO4xsfHw2AwwGAw4Nq1a9x2K1asQM2aNTVdi+Dz1FNPWZ/DV1995WlzCKJKQRMVglAgIyMDb7zxhvXv+Ph4zJ8/33MGOeD1119Hbm4uwsLCPG1KlWfz5s0OJ4XvvPMOcnNzPWMUQVRxqmWtH4IQJSIiwtMmVEhISIjXVCs2m83w8/PztBluJywsjCaKBOEiyKNCVEquXr2KQYMGITw8HEFBQejRoweOHTtmPV4mdXz//fdo0qQJatSoge7du8t+9d66dQsjR45EzZo1ERkZiYkTJ2Lw4MEyOYaVfjp27IhTp05hzJgxVjc/AEydOtVaPbiM+fPny0rYl5aWYuzYsdZrTZgwAfbVKywWC9LT09GgQQMEBgaiRYsW+OKLL5wanxUrViA2NhZBQUF4+OGHceXKlXJt/vOf/6BVq1YICAhAQkICpk2bhlu3blmPHzlyBPfccw8CAgKQkpKCTZs2yaSNkydPwmAw4NNPP0WHDh0QEBCAVatWAQA+/PBDNGnSBAEBAWjcuDE++OAD2bXPnDmDfv36oWbNmoiIiECfPn1w8uRJ6/HNmzfjrrvuQnBwMGrWrIm7774bp06dErr3iu5r3rx5uPPOOxEcHIyYmBi88MILKCwstB4/deoUevXqhfDwcAQHB6Np06b49ttvcfLkSdx///0AgPDwcBgMBjz11FNCNhEE4Tw0USEqJU899RT27NmDdevWYefOnZAkCQ8++CDMZrO1TXFxMebMmYNPPvkEW7duxenTpzFu3Djr8dmzZ2PVqlVYvnw5duzYgYKCAsX1BRkZGahfv75ValHj6p87dy5WrFiBjz76CNu3b0deXh7Wrl0ra5Oeno6PP/4YixYtwu+//44xY8bgySefxJYtW8QHBkBmZiaGDBmCESNG4MCBA7j//vsxffp0WZtt27Zh0KBBGDVqFP744w8sXrwYK1aswIwZMwDcnlj17dsXQUFByMzMxJIlS/DKK684vN7LL7+MUaNG4fDhw+jWrRtWrVqFyZMnY8aMGTh8+DBmzpyJ1157DStXrgRw2+vSrVs3hISEYNu2bdixY4d1Innz5k3cunULffv2RYcOHfDf//4XO3fuxNChQ60TQyUqui8AMBqNePfdd/H7779j5cqV+OmnnzBhwgTr8bS0NJSUlGDr1q04ePAgZs+ejRo1aiAmJgZffvklACArKwu5ubl45513VD0bgiCcwLM1EQlCDLa69dGjRyUA0o4dO6zHL1++LAUGBkqfffaZJEmStHz5cgmAdPz4cWubBQsWSHXq1LH+XadOHemtt96y/n3r1i0pNjZW6tOnj8PrSpLjqq9TpkyRWrRoIdv39ttvS3Fxcda/69WrJ7355pvWv81ms1S/fn3rtW7cuCEFBQVJv/zyi6yfIUOGSP379+eOiyN7+vfvLz344IOyfY899pgUFhZm/btTp07SzJkzZW0++eQTqV69epIkSdJ3330n+fr6Srm5udbjGzdulABIa9eulSRJslYKnj9/vqyfhg0bSqtXr5bte+ONN6R27dpZr5OcnCxZLBbr8ZKSEikwMFD6/vvvpStXrkgApM2bN3Pvm0dF9+WIzz//XIqMjLT+feedd0pTp0512LasSvDVq1cdHmfHhyAIfaA1KkSl4/Dhw/D19UVqaqp1X2RkJJKTk3H48GHrvqCgIDRs2ND6d7169XDx4kUAQH5+Pv7880/cdddd1uM+Pj5o3bo1LBaLrvbm5+cjNzdXZq+vry/atGljlX+OHz+O4uJidOnSRXbuzZs30bJlS1XXO3z4MB5++GHZvnbt2mHDhg3Wv3/77Tfs2LFD5mkoLS3FjRs3UFxcjKysLMTExMjWvrBjxdKmTRvrdlFREbKzszFkyBA899xz1v23bt2yruH47bffcPz4cYSEhMj6uXHjBrKzs9G1a1c89dRT6NatG7p06YLOnTujX79+qFevXoX3XtF9BQUFYdOmTUhPT8eRI0dQUFCAW7duyY6PHDkSw4cPxw8//IDOnTvjH//4B5o3b17htQmCcA00USGqLPaLOg0GQ7l1IXpgNBrL9ctKUCKUrZFYv3497rjjDtkxk8mkzUDO9aZNm4ZHHnmk3LGAgABVfQUHB8v6BYClS5fKJmbA7YlgWZvWrVtb17OwREVFAQCWL1+OkSNHYsOGDfj000/x6quvYuPGjWjbtq2m+zp58iQeeughDB8+HDNmzEBERAS2b9+OIUOG4ObNmwgKCsKzzz6Lbt26Yf369fjhhx+Qnp6OuXPn4sUXX1Q1LgRB6ANNVIhKR5MmTXDr1i1kZmaiffv2AIArV64gKysLKSkpQn2EhYWhTp062L17N+677z4At39579u3r9zCWBZ/f3+UlpbK9kVFReHChQuQJMm6juLAgQOya9WrVw+ZmZnWa926dQt79+5Fq1atAAApKSkwmUw4ffo0OnToIHQPPJo0aYLMzEzZvl27dsn+btWqFbKyspCYmOiwj+TkZJw5cwZ//vkn6tSpAwDYvXt3hdeuU6cOoqOjkZOTgwEDBjhs06pVK3z66aeoXbs2QkNDuX21bNkSLVu2xKRJk9CuXTusXr26wolKRfe1d+9eWCwWzJ07F0bj7SV6n332Wbl2MTExeP755/H8889j0qRJWLp0KV588UX4+/sDQLl3gCAI10ETFaLSkZSUhD59+uC5557D4sWLERISgpdffhl33HEH+vTpI9zPiy++iPT0dCQmJqJx48Z47733cPXqVcVFm/Hx8di6dSsef/xxmEwm1KpVCx07dsSlS5fw5ptv4tFHH8WGDRvw3Xffyf4THjVqFGbNmoWkpCQ0btwY8+bNk+XiCAkJwbhx4zBmzBhYLBbcc889yM/Px44dOxAaGorBgwcL39fIkSNx9913Y86cOejTpw++//57mewDAJMnT8ZDDz2E2NhYPProozAajfjtt99w6NAhTJ8+HV26dEHDhg0xePBgvPnmm7h+/TpeffVVAKhwUeu0adMwcuRIhIWFoXv37igpKcGePXtw9epVjB07FgMGDMBbb72FPn364PXXX0f9+vVx6tQpZGRkYMKECTCbzViyZAl69+6N6OhoZGVl4dixYxg0aFCF917RfSUmJsJsNuO9995Dr169sGPHDixatEjWx+jRo9GjRw80atQIV69exc8//4wmTZoAAOLi4mAwGPDNN9/gwQcfRGBgIGrUqCH8bAiCcALPLpEhCDHsF7Xm5eVJAwcOlMLCwqTAwECpW7du0tGjR63Hly9fLls8KkmStHbtWol95c1mszRixAgpNDRUCg8PlyZOnCj985//lB5//HHudXfu3Ck1b95cMplMsr4WLlwoxcTESMHBwdKgQYOkGTNmyBbTms1madSoUVJoaKhUs2ZNaezYsdKgQYNkC3ctFos0f/58KTk5WfLz85OioqKkbt26SVu2bOGOi6PFtJIkScuWLZPq168vBQYGSr169ZLmzJlTbjw2bNggtW/fXgoMDJRCQ0Olu+66S1qyZIn1+OHDh6W7775b8vf3lxo3bix9/fXXEgBpw4YNkiTZFtPu37+/3PVXrVol/e1vf5P8/f2l8PBw6b777pMyMjKsx3Nzc6VBgwZJtWrVkkwmk5SQkCA999xzUn5+vnThwgWpb9++Ur169SR/f38pLi5Omjx5slRaWsodBzX3NW/ePKlevXrW9+bjjz+WLZAdMWKE1LBhQ8lkMklRUVHSwIEDpcuXL1vPf/3116W6detKBoNBGjx4sOzaoMW0BKE7BklygWhPEJUQi8WCJk2aoF+/frJstN5MfHw8Ro8e7ZbyAjt27MA999yD48ePyxYpEzYMBgPWrl2ruTQCQRA2KI8KUW05deoUli5diqNHj+LgwYMYPnw4Tpw4gSeeeMLTpqli4sSJqFGjBvLz83Xtd+3atdi4cSNOnjyJTZs2YejQobj77rtpkuKA559/niQggnAR5FEhqi1nzpzB448/jkOHDkGSJDRr1gyzZs2yLnitDJw6dcoaYZSQkGBdIKoHH3/8MaZPn47Tp0+jVq1a6Ny5M+bOnYvIyEjdrqGWpk2bcjPULl68mLuA19VcvHgRBQUFAG6HwbORUARBaIMmKgRBVBrYiZk9derUKZebhSCIyg9NVAiCIAiC8FpojQpBEARBEF4LTVQIgiAIgvBaaKJCEARBEITXQhMVgiAIgiC8FpqoEARBEAThtdBEhSAIgiAIr4UmKgRBEARBeC00USEIgiAIwmv5fxa2j0B/uHxsAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "no2surf.average.plot(levels=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,18,20,25,30,35,40], cmap=cmap) # \"gist_ncar_r\")" ] }, { "cell_type": "markdown", "id": "2eacdeb5-c869-4de4-b979-fd92fbc38546", "metadata": { "jp-MarkdownHeadingCollapsed": true, "tags": [] }, "source": [ "## Load information on buildings in identical spatial resolution\n", "\n", "
\n", "Building heights [m] as determined by the Leibniz-Institut für ökologische Raumentwicklung e.V. Dresden (IOER).\n", "
" ] }, { "cell_type": "code", "execution_count": 80, "id": "98eab293-19f9-4ed0-8cfe-9abcf54780bc", "metadata": { "tags": [] }, "outputs": [], "source": [ "catalog = Client.open(\n", " url=stacapi_endpoint,\n", " ignore_conformance=True\n", ")" ] }, { "cell_type": "markdown", "id": "67def331-85d6-43e8-ba0b-44291bd7b988", "metadata": { "tags": [] }, "source": [ "### Discover building height datasets\n", "
\n", "Data discovery is performed according to our settings\n", "
" ] }, { "cell_type": "code", "execution_count": 81, "id": "d9de5aa3-6716-4e9b-83fd-31ab145fc0ce", "metadata": { "tags": [] }, "outputs": [], "source": [ "building_stac_items = catalog.search(\n", " collections=building_collection_name, \n", " datetime=building_dates_from_to, \n", " bbox=bbox,\n", " method=\"GET\", \n", " filter_lang=\"cql2-text\",\n", " max_items=1000\n", ").get_all_items()" ] }, { "cell_type": "code", "execution_count": 82, "id": "5be92994-7839-4c02-9077-6da90951b5e4", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

\n", " ItemCollection\n", "

\n", "
\n", " \n", " \n", "
\n", "\n", " \n", "
\n", " \n", " Only the first 10 items shown \n", " \n", " \n", "

Items

\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Item: ids_100m_building_height_median_100kmN26E43

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ID: ids_100m_building_height_median_100kmN26E43
Bounding Box: [9.721932749998519, 47.26818026776248, 11.046005504476401, 47.413251012534026]
Datetime: 2023-06-05 17:49:05.206675+00:00
created: 2023-06-05T17:53:52.582+00:00
updated: 2023-06-05T17:53:52.582+00:00
datetime: 2023-06-05T17:49:05.206675Z
gsd: 1
proj:epsg: None
eop:sensorType: SYNTHESIS
grid:code: ETRS_1989_LAEA
proj:crs: 3035
stac_extensions: ['https://stac-extensions.github.io/eo/v1.1.0/schema.json', 'https://stac-extensions.github.io/view/v1.0.0/schema.json', 'https://stac-extensions.github.io/projection/v1.0.0/schema.json', 'https://stac-extensions.github.io/processing/v1.0.0/schema.json']
\n", " \n", "
\n", " \n", "

STAC Extensions

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
https://stac-extensions.github.io/eo/v1.1.0/schema.json
https://stac-extensions.github.io/view/v1.0.0/schema.json
https://stac-extensions.github.io/projection/v1.0.0/schema.json
https://stac-extensions.github.io/processing/v1.0.0/schema.json
\n", "
\n", " \n", " \n", "
\n", " \n", "

Assets

\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Original data

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://monitor.ioer.de/fdzdata/100m_buildings_height/ids_100m_building_height_median_100kmN26E43.tif
Title: Original data
Description: Original data file
Media type: image/tiff; application=geotiff; profile=cloud-optimized
Roles: ['data']
Owner:
raster:bands: [{'data_type': 'uint16', 'scale': 1.0, 'offset': 0.0, 'sampling': 'area', 'nodata': 0.0, 'statistics': {'mean': 6.486128625472888, 'minimum': 1, 'maximum': 38, 'stddev': 3.3046448672227693, 'valid_percent': 1.0166666666666666}, 'histogram': {'count': 11, 'min': 1.0, 'max': 38.0, 'buckets': [586, 482, 463, 34, 13, 6, 1, 0, 0, 1]}}]
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Metadata

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://monitor.ioer.de/fdzdata/100m_buildings_height/ids_100m_building_height_median_100kmN26E43.tif.xml
Title: Metadata
Description: Original Metadata file for IOER Building Structure - Height Median - Germany, 100m
Media type: application/xml
Roles: ['metadata']
Owner:
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: thumbnail

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://download.geoservice.dlr.de/ioer/files/100m_building_structure/height_median/ids_100m_building_height_median_100kmN26E43_thumbnail.png
Title: thumbnail
Description: Thumbnail rendered in black/white as 512x512 pixel PNG file
Media type: image/png
Roles: ['thumbnail']
Owner:
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Overview

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://download.geoservice.dlr.de/ioer/files/100m_building_structure/height_median/ids_100m_building_height_median_100kmN26E43_overview.png
Title: Overview
Description: Overview rendered in black/white as 4096x4096 pixel PNG file
Media type: image/png
Roles: ['overview']
Owner:
\n", "
\n", "
\n", "
\n", " \n", "
\n", " \n", " \n", "
\n", " \n", "

Links

\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

EOC EO Products Service

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: root
Target:
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Parent

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: parent
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1?f=application/json
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Self

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: self
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN26E43?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Item

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN26E43?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Item as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: alternate
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN26E43?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Items

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: items
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Items as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: items
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collection

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M?f=application%2Fjson
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collection as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collections

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections?f=application%2Fjson
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collections as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch GeoJSON

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/search?parentIdentifier=IOER_STRUCTURE_HEIGHT_GER_100M&identifier=ids_100m_building_height_median_100kmN26E43&httpAccept=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch Atom XML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/search?parentIdentifier=IOER_STRUCTURE_HEIGHT_GER_100M&identifier=ids_100m_building_height_median_100kmN26E43&httpAccept=application%2Fatom%2Bxml
Media Type: application/atom+xml
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch O&M XML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/metadata?parentId=IOER_STRUCTURE_HEIGHT_GER_100M&uid=ids_100m_building_height_median_100kmN26E43&httpAccept=application%2Fgml%2Bxml
Media Type: application/gml+xml
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Queryables

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: http://www.opengis.net/def/rel/ogc/1.0/queryables
Target: https://geoservice.dlr.de/eoc/ogc/stac/collections/IOER_STRUCTURE_HEIGHT_GER_100M/queryables?f=json
Media Type: application/schema+json
\n", " \n", "
\n", "
\n", " \n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Item: ids_100m_building_height_median_100kmN34E42

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ID: ids_100m_building_height_median_100kmN34E42
Bounding Box: [8.128476840313308, 53.693700289292444, 9.682032900163954, 54.60562467051945]
Datetime: 2023-06-05 17:49:03.025212+00:00
created: 2023-06-05T17:53:51.858+00:00
updated: 2023-06-05T17:53:51.858+00:00
datetime: 2023-06-05T17:49:03.025212Z
gsd: 1
proj:epsg: None
eop:sensorType: SYNTHESIS
grid:code: ETRS_1989_LAEA
proj:crs: 3035
stac_extensions: ['https://stac-extensions.github.io/eo/v1.1.0/schema.json', 'https://stac-extensions.github.io/view/v1.0.0/schema.json', 'https://stac-extensions.github.io/projection/v1.0.0/schema.json', 'https://stac-extensions.github.io/processing/v1.0.0/schema.json']
\n", " \n", "
\n", " \n", "

STAC Extensions

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
https://stac-extensions.github.io/eo/v1.1.0/schema.json
https://stac-extensions.github.io/view/v1.0.0/schema.json
https://stac-extensions.github.io/projection/v1.0.0/schema.json
https://stac-extensions.github.io/processing/v1.0.0/schema.json
\n", "
\n", " \n", " \n", "
\n", " \n", "

Assets

\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Original data

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://monitor.ioer.de/fdzdata/100m_buildings_height/ids_100m_building_height_median_100kmN34E42.tif
Title: Original data
Description: Original data file
Media type: image/tiff; application=geotiff; profile=cloud-optimized
Roles: ['data']
Owner:
raster:bands: [{'data_type': 'uint16', 'scale': 1.0, 'offset': 0.0, 'sampling': 'area', 'nodata': 0.0, 'statistics': {'mean': 7.024810066476733, 'minimum': 1, 'maximum': 151, 'stddev': 5.566406227339314, 'valid_percent': 8.424}, 'histogram': {'count': 11, 'min': 1.0, 'max': 151.0, 'buckets': [82870, 897, 100, 100, 141, 23, 90, 9, 2, 8]}}]
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Metadata

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://monitor.ioer.de/fdzdata/100m_buildings_height/ids_100m_building_height_median_100kmN34E42.tif.xml
Title: Metadata
Description: Original Metadata file for IOER Building Structure - Height Median - Germany, 100m
Media type: application/xml
Roles: ['metadata']
Owner:
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: thumbnail

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://download.geoservice.dlr.de/ioer/files/100m_building_structure/height_median/ids_100m_building_height_median_100kmN34E42_thumbnail.png
Title: thumbnail
Description: Thumbnail rendered in black/white as 512x512 pixel PNG file
Media type: image/png
Roles: ['thumbnail']
Owner:
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Overview

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://download.geoservice.dlr.de/ioer/files/100m_building_structure/height_median/ids_100m_building_height_median_100kmN34E42_overview.png
Title: Overview
Description: Overview rendered in black/white as 4096x4096 pixel PNG file
Media type: image/png
Roles: ['overview']
Owner:
\n", "
\n", "
\n", "
\n", " \n", "
\n", " \n", " \n", "
\n", " \n", "

Links

\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

EOC EO Products Service

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: root
Target:
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Parent

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: parent
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1?f=application/json
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Self

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: self
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN34E42?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Item

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN34E42?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Item as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: alternate
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN34E42?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Items

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: items
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Items as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: items
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collection

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M?f=application%2Fjson
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collection as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collections

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections?f=application%2Fjson
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collections as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch GeoJSON

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/search?parentIdentifier=IOER_STRUCTURE_HEIGHT_GER_100M&identifier=ids_100m_building_height_median_100kmN34E42&httpAccept=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch Atom XML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/search?parentIdentifier=IOER_STRUCTURE_HEIGHT_GER_100M&identifier=ids_100m_building_height_median_100kmN34E42&httpAccept=application%2Fatom%2Bxml
Media Type: application/atom+xml
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch O&M XML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/metadata?parentId=IOER_STRUCTURE_HEIGHT_GER_100M&uid=ids_100m_building_height_median_100kmN34E42&httpAccept=application%2Fgml%2Bxml
Media Type: application/gml+xml
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Queryables

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: http://www.opengis.net/def/rel/ogc/1.0/queryables
Target: https://geoservice.dlr.de/eoc/ogc/stac/collections/IOER_STRUCTURE_HEIGHT_GER_100M/queryables?f=json
Media Type: application/schema+json
\n", " \n", "
\n", "
\n", " \n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Item: ids_100m_building_height_median_100kmN33E43

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ID: ids_100m_building_height_median_100kmN33E43
Bounding Box: [9.682032900163954, 52.80309977773747, 11.196067070437314, 53.70702802650191]
Datetime: 2023-06-05 17:49:01.941589+00:00
created: 2023-06-05T17:53:51.423+00:00
updated: 2023-06-05T17:53:51.423+00:00
datetime: 2023-06-05T17:49:01.941589Z
gsd: 1
proj:epsg: None
eop:sensorType: SYNTHESIS
grid:code: ETRS_1989_LAEA
proj:crs: 3035
stac_extensions: ['https://stac-extensions.github.io/eo/v1.1.0/schema.json', 'https://stac-extensions.github.io/view/v1.0.0/schema.json', 'https://stac-extensions.github.io/projection/v1.0.0/schema.json', 'https://stac-extensions.github.io/processing/v1.0.0/schema.json']
\n", " \n", "
\n", " \n", "

STAC Extensions

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
https://stac-extensions.github.io/eo/v1.1.0/schema.json
https://stac-extensions.github.io/view/v1.0.0/schema.json
https://stac-extensions.github.io/projection/v1.0.0/schema.json
https://stac-extensions.github.io/processing/v1.0.0/schema.json
\n", "
\n", " \n", " \n", "
\n", " \n", "

Assets

\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Original data

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://monitor.ioer.de/fdzdata/100m_buildings_height/ids_100m_building_height_median_100kmN33E43.tif
Title: Original data
Description: Original data file
Media type: image/tiff; application=geotiff; profile=cloud-optimized
Roles: ['data']
Owner:
raster:bands: [{'data_type': 'uint16', 'scale': 1.0, 'offset': 0.0, 'sampling': 'area', 'nodata': 0.0, 'statistics': {'mean': 8.155831294046989, 'minimum': 1, 'maximum': 158, 'stddev': 6.008103981196719, 'valid_percent': 15.6509}, 'histogram': {'count': 11, 'min': 1.0, 'max': 158.0, 'buckets': [149487, 6050, 488, 134, 141, 31, 154, 16, 4, 4]}}]
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Metadata

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://monitor.ioer.de/fdzdata/100m_buildings_height/ids_100m_building_height_median_100kmN33E43.tif.xml
Title: Metadata
Description: Original Metadata file for IOER Building Structure - Height Median - Germany, 100m
Media type: application/xml
Roles: ['metadata']
Owner:
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: thumbnail

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://download.geoservice.dlr.de/ioer/files/100m_building_structure/height_median/ids_100m_building_height_median_100kmN33E43_thumbnail.png
Title: thumbnail
Description: Thumbnail rendered in black/white as 512x512 pixel PNG file
Media type: image/png
Roles: ['thumbnail']
Owner:
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Overview

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://download.geoservice.dlr.de/ioer/files/100m_building_structure/height_median/ids_100m_building_height_median_100kmN33E43_overview.png
Title: Overview
Description: Overview rendered in black/white as 4096x4096 pixel PNG file
Media type: image/png
Roles: ['overview']
Owner:
\n", "
\n", "
\n", "
\n", " \n", "
\n", " \n", " \n", "
\n", " \n", "

Links

\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

EOC EO Products Service

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: root
Target:
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Parent

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: parent
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1?f=application/json
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Self

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: self
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN33E43?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Item

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN33E43?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Item as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: alternate
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN33E43?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Items

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: items
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Items as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: items
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collection

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M?f=application%2Fjson
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collection as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collections

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections?f=application%2Fjson
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collections as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch GeoJSON

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/search?parentIdentifier=IOER_STRUCTURE_HEIGHT_GER_100M&identifier=ids_100m_building_height_median_100kmN33E43&httpAccept=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch Atom XML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/search?parentIdentifier=IOER_STRUCTURE_HEIGHT_GER_100M&identifier=ids_100m_building_height_median_100kmN33E43&httpAccept=application%2Fatom%2Bxml
Media Type: application/atom+xml
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch O&M XML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/metadata?parentId=IOER_STRUCTURE_HEIGHT_GER_100M&uid=ids_100m_building_height_median_100kmN33E43&httpAccept=application%2Fgml%2Bxml
Media Type: application/gml+xml
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Queryables

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: http://www.opengis.net/def/rel/ogc/1.0/queryables
Target: https://geoservice.dlr.de/eoc/ogc/stac/collections/IOER_STRUCTURE_HEIGHT_GER_100M/queryables?f=json
Media Type: application/schema+json
\n", " \n", "
\n", "
\n", " \n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Item: ids_100m_building_height_median_100kmN32E46

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ID: ids_100m_building_height_median_100kmN32E46
Bounding Box: [14.050475775636494, 51.79992682956786, 15.196666387985227, 52.73753004022016]
Datetime: 2023-06-05 17:49:01.739973+00:00
created: 2023-06-05T17:53:51.064+00:00
updated: 2023-06-05T17:53:51.064+00:00
datetime: 2023-06-05T17:49:01.739973Z
gsd: 1
proj:epsg: None
eop:sensorType: SYNTHESIS
grid:code: ETRS_1989_LAEA
proj:crs: 3035
stac_extensions: ['https://stac-extensions.github.io/eo/v1.1.0/schema.json', 'https://stac-extensions.github.io/view/v1.0.0/schema.json', 'https://stac-extensions.github.io/projection/v1.0.0/schema.json', 'https://stac-extensions.github.io/processing/v1.0.0/schema.json']
\n", " \n", "
\n", " \n", "

STAC Extensions

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
https://stac-extensions.github.io/eo/v1.1.0/schema.json
https://stac-extensions.github.io/view/v1.0.0/schema.json
https://stac-extensions.github.io/projection/v1.0.0/schema.json
https://stac-extensions.github.io/processing/v1.0.0/schema.json
\n", "
\n", " \n", " \n", "
\n", " \n", "

Assets

\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Original data

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://monitor.ioer.de/fdzdata/100m_buildings_height/ids_100m_building_height_median_100kmN32E46.tif
Title: Original data
Description: Original data file
Media type: image/tiff; application=geotiff; profile=cloud-optimized
Roles: ['data']
Owner:
raster:bands: [{'data_type': 'uint16', 'scale': 1.0, 'offset': 0.0, 'sampling': 'area', 'nodata': 0.0, 'statistics': {'mean': 7.107420609202852, 'minimum': 1, 'maximum': 115, 'stddev': 6.44275077984265, 'valid_percent': 4.286111111111111}, 'histogram': {'count': 11, 'min': 1.0, 'max': 115.0, 'buckets': [28988, 1511, 153, 40, 75, 12, 12, 26, 3, 40]}}]
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Metadata

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://monitor.ioer.de/fdzdata/100m_buildings_height/ids_100m_building_height_median_100kmN32E46.tif.xml
Title: Metadata
Description: Original Metadata file for IOER Building Structure - Height Median - Germany, 100m
Media type: application/xml
Roles: ['metadata']
Owner:
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: thumbnail

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://download.geoservice.dlr.de/ioer/files/100m_building_structure/height_median/ids_100m_building_height_median_100kmN32E46_thumbnail.png
Title: thumbnail
Description: Thumbnail rendered in black/white as 512x512 pixel PNG file
Media type: image/png
Roles: ['thumbnail']
Owner:
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Overview

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://download.geoservice.dlr.de/ioer/files/100m_building_structure/height_median/ids_100m_building_height_median_100kmN32E46_overview.png
Title: Overview
Description: Overview rendered in black/white as 4096x4096 pixel PNG file
Media type: image/png
Roles: ['overview']
Owner:
\n", "
\n", "
\n", "
\n", " \n", "
\n", " \n", " \n", "
\n", " \n", "

Links

\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

EOC EO Products Service

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: root
Target:
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Parent

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: parent
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1?f=application/json
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Self

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: self
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN32E46?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Item

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN32E46?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Item as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: alternate
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN32E46?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Items

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: items
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Items as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: items
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collection

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M?f=application%2Fjson
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collection as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collections

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections?f=application%2Fjson
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collections as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch GeoJSON

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/search?parentIdentifier=IOER_STRUCTURE_HEIGHT_GER_100M&identifier=ids_100m_building_height_median_100kmN32E46&httpAccept=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch Atom XML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/search?parentIdentifier=IOER_STRUCTURE_HEIGHT_GER_100M&identifier=ids_100m_building_height_median_100kmN32E46&httpAccept=application%2Fatom%2Bxml
Media Type: application/atom+xml
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch O&M XML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/metadata?parentId=IOER_STRUCTURE_HEIGHT_GER_100M&uid=ids_100m_building_height_median_100kmN32E46&httpAccept=application%2Fgml%2Bxml
Media Type: application/gml+xml
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Queryables

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: http://www.opengis.net/def/rel/ogc/1.0/queryables
Target: https://geoservice.dlr.de/eoc/ogc/stac/collections/IOER_STRUCTURE_HEIGHT_GER_100M/queryables?f=json
Media Type: application/schema+json
\n", " \n", "
\n", "
\n", " \n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Item: ids_100m_building_height_median_100kmN32E42

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ID: ids_100m_building_height_median_100kmN32E42
Bounding Box: [8.206048815568566, 51.8970158968234, 9.694837258790294, 52.80841557673825]
Datetime: 2023-06-05 17:49:00.070697+00:00
created: 2023-06-05T17:53:50.601+00:00
updated: 2023-06-05T17:53:50.601+00:00
datetime: 2023-06-05T17:49:00.070697Z
gsd: 1
proj:epsg: None
eop:sensorType: SYNTHESIS
grid:code: ETRS_1989_LAEA
proj:crs: 3035
stac_extensions: ['https://stac-extensions.github.io/eo/v1.1.0/schema.json', 'https://stac-extensions.github.io/view/v1.0.0/schema.json', 'https://stac-extensions.github.io/projection/v1.0.0/schema.json', 'https://stac-extensions.github.io/processing/v1.0.0/schema.json']
\n", " \n", "
\n", " \n", "

STAC Extensions

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
https://stac-extensions.github.io/eo/v1.1.0/schema.json
https://stac-extensions.github.io/view/v1.0.0/schema.json
https://stac-extensions.github.io/projection/v1.0.0/schema.json
https://stac-extensions.github.io/processing/v1.0.0/schema.json
\n", "
\n", " \n", " \n", "
\n", " \n", "

Assets

\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Original data

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://monitor.ioer.de/fdzdata/100m_buildings_height/ids_100m_building_height_median_100kmN32E42.tif
Title: Original data
Description: Original data file
Media type: image/tiff; application=geotiff; profile=cloud-optimized
Roles: ['data']
Owner:
raster:bands: [{'data_type': 'uint16', 'scale': 1.0, 'offset': 0.0, 'sampling': 'area', 'nodata': 0.0, 'statistics': {'mean': 8.221597982570945, 'minimum': 1, 'maximum': 560, 'stddev': 7.0595861043128325, 'valid_percent': 21.928900000000002}, 'histogram': {'count': 11, 'min': 1.0, 'max': 560.0, 'buckets': [218540, 575, 159, 0, 2, 0, 5, 5, 1, 2]}}]
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Metadata

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://monitor.ioer.de/fdzdata/100m_buildings_height/ids_100m_building_height_median_100kmN32E42.tif.xml
Title: Metadata
Description: Original Metadata file for IOER Building Structure - Height Median - Germany, 100m
Media type: application/xml
Roles: ['metadata']
Owner:
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: thumbnail

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://download.geoservice.dlr.de/ioer/files/100m_building_structure/height_median/ids_100m_building_height_median_100kmN32E42_thumbnail.png
Title: thumbnail
Description: Thumbnail rendered in black/white as 512x512 pixel PNG file
Media type: image/png
Roles: ['thumbnail']
Owner:
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Overview

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://download.geoservice.dlr.de/ioer/files/100m_building_structure/height_median/ids_100m_building_height_median_100kmN32E42_overview.png
Title: Overview
Description: Overview rendered in black/white as 4096x4096 pixel PNG file
Media type: image/png
Roles: ['overview']
Owner:
\n", "
\n", "
\n", "
\n", " \n", "
\n", " \n", " \n", "
\n", " \n", "

Links

\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

EOC EO Products Service

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: root
Target:
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Parent

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: parent
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1?f=application/json
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Self

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: self
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN32E42?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Item

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN32E42?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Item as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: alternate
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN32E42?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Items

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: items
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Items as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: items
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collection

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M?f=application%2Fjson
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collection as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collections

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections?f=application%2Fjson
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collections as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch GeoJSON

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/search?parentIdentifier=IOER_STRUCTURE_HEIGHT_GER_100M&identifier=ids_100m_building_height_median_100kmN32E42&httpAccept=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch Atom XML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/search?parentIdentifier=IOER_STRUCTURE_HEIGHT_GER_100M&identifier=ids_100m_building_height_median_100kmN32E42&httpAccept=application%2Fatom%2Bxml
Media Type: application/atom+xml
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch O&M XML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/metadata?parentId=IOER_STRUCTURE_HEIGHT_GER_100M&uid=ids_100m_building_height_median_100kmN32E42&httpAccept=application%2Fgml%2Bxml
Media Type: application/gml+xml
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Queryables

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: http://www.opengis.net/def/rel/ogc/1.0/queryables
Target: https://geoservice.dlr.de/eoc/ogc/stac/collections/IOER_STRUCTURE_HEIGHT_GER_100M/queryables?f=json
Media Type: application/schema+json
\n", " \n", "
\n", "
\n", " \n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Item: ids_100m_building_height_median_100kmN31E46

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ID: ids_100m_building_height_median_100kmN31E46
Bounding Box: [13.971806714212924, 50.90355761474149, 15.092946318739278, 51.84046868365779]
Datetime: 2023-06-05 17:48:59.236875+00:00
created: 2023-06-05T17:53:50.304+00:00
updated: 2023-06-05T17:53:50.304+00:00
datetime: 2023-06-05T17:48:59.236875Z
gsd: 1
proj:epsg: None
eop:sensorType: SYNTHESIS
grid:code: ETRS_1989_LAEA
proj:crs: 3035
stac_extensions: ['https://stac-extensions.github.io/eo/v1.1.0/schema.json', 'https://stac-extensions.github.io/view/v1.0.0/schema.json', 'https://stac-extensions.github.io/projection/v1.0.0/schema.json', 'https://stac-extensions.github.io/processing/v1.0.0/schema.json']
\n", " \n", "
\n", " \n", "

STAC Extensions

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
https://stac-extensions.github.io/eo/v1.1.0/schema.json
https://stac-extensions.github.io/view/v1.0.0/schema.json
https://stac-extensions.github.io/projection/v1.0.0/schema.json
https://stac-extensions.github.io/processing/v1.0.0/schema.json
\n", "
\n", " \n", " \n", "
\n", " \n", "

Assets

\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Original data

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://monitor.ioer.de/fdzdata/100m_buildings_height/ids_100m_building_height_median_100kmN31E46.tif
Title: Original data
Description: Original data file
Media type: image/tiff; application=geotiff; profile=cloud-optimized
Roles: ['data']
Owner:
raster:bands: [{'data_type': 'uint16', 'scale': 1.0, 'offset': 0.0, 'sampling': 'area', 'nodata': 0.0, 'statistics': {'mean': 7.636791751350815, 'minimum': 1, 'maximum': 160, 'stddev': 4.700660216621013, 'valid_percent': 11.207222222222223}, 'histogram': {'count': 11, 'min': 1.0, 'max': 160.0, 'buckets': [78490, 2006, 118, 33, 10, 0, 15, 0, 12, 8]}}]
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Metadata

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://monitor.ioer.de/fdzdata/100m_buildings_height/ids_100m_building_height_median_100kmN31E46.tif.xml
Title: Metadata
Description: Original Metadata file for IOER Building Structure - Height Median - Germany, 100m
Media type: application/xml
Roles: ['metadata']
Owner:
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: thumbnail

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://download.geoservice.dlr.de/ioer/files/100m_building_structure/height_median/ids_100m_building_height_median_100kmN31E46_thumbnail.png
Title: thumbnail
Description: Thumbnail rendered in black/white as 512x512 pixel PNG file
Media type: image/png
Roles: ['thumbnail']
Owner:
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Overview

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://download.geoservice.dlr.de/ioer/files/100m_building_structure/height_median/ids_100m_building_height_median_100kmN31E46_overview.png
Title: Overview
Description: Overview rendered in black/white as 4096x4096 pixel PNG file
Media type: image/png
Roles: ['overview']
Owner:
\n", "
\n", "
\n", "
\n", " \n", "
\n", " \n", " \n", "
\n", " \n", "

Links

\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

EOC EO Products Service

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: root
Target:
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Parent

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: parent
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1?f=application/json
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Self

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: self
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN31E46?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Item

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN31E46?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Item as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: alternate
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN31E46?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Items

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: items
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Items as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: items
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collection

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M?f=application%2Fjson
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collection as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collections

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections?f=application%2Fjson
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collections as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch GeoJSON

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/search?parentIdentifier=IOER_STRUCTURE_HEIGHT_GER_100M&identifier=ids_100m_building_height_median_100kmN31E46&httpAccept=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch Atom XML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/search?parentIdentifier=IOER_STRUCTURE_HEIGHT_GER_100M&identifier=ids_100m_building_height_median_100kmN31E46&httpAccept=application%2Fatom%2Bxml
Media Type: application/atom+xml
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch O&M XML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/metadata?parentId=IOER_STRUCTURE_HEIGHT_GER_100M&uid=ids_100m_building_height_median_100kmN31E46&httpAccept=application%2Fgml%2Bxml
Media Type: application/gml+xml
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Queryables

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: http://www.opengis.net/def/rel/ogc/1.0/queryables
Target: https://geoservice.dlr.de/eoc/ogc/stac/collections/IOER_STRUCTURE_HEIGHT_GER_100M/queryables?f=json
Media Type: application/schema+json
\n", " \n", "
\n", "
\n", " \n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Item: ids_100m_building_height_median_100kmN31E45

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ID: ids_100m_building_height_median_100kmN31E45
Bounding Box: [12.549568948891887, 50.9431986066582, 14.050475775636494, 51.881440496132775]
Datetime: 2023-06-05 17:48:58.741763+00:00
created: 2023-06-05T17:53:49.839+00:00
updated: 2023-06-05T17:53:49.839+00:00
datetime: 2023-06-05T17:48:58.741763Z
gsd: 1
proj:epsg: None
eop:sensorType: SYNTHESIS
grid:code: ETRS_1989_LAEA
proj:crs: 3035
stac_extensions: ['https://stac-extensions.github.io/eo/v1.1.0/schema.json', 'https://stac-extensions.github.io/view/v1.0.0/schema.json', 'https://stac-extensions.github.io/projection/v1.0.0/schema.json', 'https://stac-extensions.github.io/processing/v1.0.0/schema.json']
\n", " \n", "
\n", " \n", "

STAC Extensions

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
https://stac-extensions.github.io/eo/v1.1.0/schema.json
https://stac-extensions.github.io/view/v1.0.0/schema.json
https://stac-extensions.github.io/projection/v1.0.0/schema.json
https://stac-extensions.github.io/processing/v1.0.0/schema.json
\n", "
\n", " \n", " \n", "
\n", " \n", "

Assets

\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Original data

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://monitor.ioer.de/fdzdata/100m_buildings_height/ids_100m_building_height_median_100kmN31E45.tif
Title: Original data
Description: Original data file
Media type: image/tiff; application=geotiff; profile=cloud-optimized
Roles: ['data']
Owner:
raster:bands: [{'data_type': 'uint16', 'scale': 1.0, 'offset': 0.0, 'sampling': 'area', 'nodata': 0.0, 'statistics': {'mean': 7.924777151173367, 'minimum': 1, 'maximum': 136, 'stddev': 4.32056703455609, 'valid_percent': 13.192799999999998}, 'histogram': {'count': 11, 'min': 1.0, 'max': 136.0, 'buckets': [124054, 7343, 411, 76, 24, 4, 2, 4, 7, 3]}}]
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Metadata

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://monitor.ioer.de/fdzdata/100m_buildings_height/ids_100m_building_height_median_100kmN31E45.tif.xml
Title: Metadata
Description: Original Metadata file for IOER Building Structure - Height Median - Germany, 100m
Media type: application/xml
Roles: ['metadata']
Owner:
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: thumbnail

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://download.geoservice.dlr.de/ioer/files/100m_building_structure/height_median/ids_100m_building_height_median_100kmN31E45_thumbnail.png
Title: thumbnail
Description: Thumbnail rendered in black/white as 512x512 pixel PNG file
Media type: image/png
Roles: ['thumbnail']
Owner:
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Overview

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://download.geoservice.dlr.de/ioer/files/100m_building_structure/height_median/ids_100m_building_height_median_100kmN31E45_overview.png
Title: Overview
Description: Overview rendered in black/white as 4096x4096 pixel PNG file
Media type: image/png
Roles: ['overview']
Owner:
\n", "
\n", "
\n", "
\n", " \n", "
\n", " \n", " \n", "
\n", " \n", "

Links

\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

EOC EO Products Service

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: root
Target:
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Parent

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: parent
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1?f=application/json
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Self

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: self
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN31E45?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Item

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN31E45?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Item as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: alternate
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN31E45?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Items

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: items
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Items as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: items
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collection

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M?f=application%2Fjson
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collection as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collections

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections?f=application%2Fjson
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collections as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch GeoJSON

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/search?parentIdentifier=IOER_STRUCTURE_HEIGHT_GER_100M&identifier=ids_100m_building_height_median_100kmN31E45&httpAccept=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch Atom XML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/search?parentIdentifier=IOER_STRUCTURE_HEIGHT_GER_100M&identifier=ids_100m_building_height_median_100kmN31E45&httpAccept=application%2Fatom%2Bxml
Media Type: application/atom+xml
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch O&M XML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/metadata?parentId=IOER_STRUCTURE_HEIGHT_GER_100M&uid=ids_100m_building_height_median_100kmN31E45&httpAccept=application%2Fgml%2Bxml
Media Type: application/gml+xml
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Queryables

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: http://www.opengis.net/def/rel/ogc/1.0/queryables
Target: https://geoservice.dlr.de/eoc/ogc/stac/collections/IOER_STRUCTURE_HEIGHT_GER_100M/queryables?f=json
Media Type: application/schema+json
\n", " \n", "
\n", "
\n", " \n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Item: ids_100m_building_height_median_100kmN31E44

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ID: ids_100m_building_height_median_100kmN31E44
Bounding Box: [11.12556474867751, 50.983258098685695, 12.600144782819065, 51.904536968776156]
Datetime: 2023-06-05 17:48:58.614387+00:00
created: 2023-06-05T17:53:49.547+00:00
updated: 2023-06-05T17:53:49.547+00:00
datetime: 2023-06-05T17:48:58.614387Z
gsd: 1
proj:epsg: None
eop:sensorType: SYNTHESIS
grid:code: ETRS_1989_LAEA
proj:crs: 3035
stac_extensions: ['https://stac-extensions.github.io/eo/v1.1.0/schema.json', 'https://stac-extensions.github.io/view/v1.0.0/schema.json', 'https://stac-extensions.github.io/projection/v1.0.0/schema.json', 'https://stac-extensions.github.io/processing/v1.0.0/schema.json']
\n", " \n", "
\n", " \n", "

STAC Extensions

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
https://stac-extensions.github.io/eo/v1.1.0/schema.json
https://stac-extensions.github.io/view/v1.0.0/schema.json
https://stac-extensions.github.io/projection/v1.0.0/schema.json
https://stac-extensions.github.io/processing/v1.0.0/schema.json
\n", "
\n", " \n", " \n", "
\n", " \n", "

Assets

\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Original data

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://monitor.ioer.de/fdzdata/100m_buildings_height/ids_100m_building_height_median_100kmN31E44.tif
Title: Original data
Description: Original data file
Media type: image/tiff; application=geotiff; profile=cloud-optimized
Roles: ['data']
Owner:
raster:bands: [{'data_type': 'uint16', 'scale': 1.0, 'offset': 0.0, 'sampling': 'area', 'nodata': 0.0, 'statistics': {'mean': 8.054209326724793, 'minimum': 1, 'maximum': 212, 'stddev': 5.690466013377018, 'valid_percent': 13.8205}, 'histogram': {'count': 11, 'min': 1.0, 'max': 212.0, 'buckets': [136560, 1382, 90, 50, 64, 34, 18, 6, 0, 1]}}]
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Metadata

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://monitor.ioer.de/fdzdata/100m_buildings_height/ids_100m_building_height_median_100kmN31E44.tif.xml
Title: Metadata
Description: Original Metadata file for IOER Building Structure - Height Median - Germany, 100m
Media type: application/xml
Roles: ['metadata']
Owner:
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: thumbnail

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://download.geoservice.dlr.de/ioer/files/100m_building_structure/height_median/ids_100m_building_height_median_100kmN31E44_thumbnail.png
Title: thumbnail
Description: Thumbnail rendered in black/white as 512x512 pixel PNG file
Media type: image/png
Roles: ['thumbnail']
Owner:
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Overview

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://download.geoservice.dlr.de/ioer/files/100m_building_structure/height_median/ids_100m_building_height_median_100kmN31E44_overview.png
Title: Overview
Description: Overview rendered in black/white as 4096x4096 pixel PNG file
Media type: image/png
Roles: ['overview']
Owner:
\n", "
\n", "
\n", "
\n", " \n", "
\n", " \n", " \n", "
\n", " \n", "

Links

\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

EOC EO Products Service

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: root
Target:
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Parent

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: parent
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1?f=application/json
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Self

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: self
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN31E44?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Item

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN31E44?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Item as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: alternate
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN31E44?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Items

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: items
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Items as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: items
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collection

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M?f=application%2Fjson
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collection as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collections

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections?f=application%2Fjson
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collections as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch GeoJSON

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/search?parentIdentifier=IOER_STRUCTURE_HEIGHT_GER_100M&identifier=ids_100m_building_height_median_100kmN31E44&httpAccept=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch Atom XML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/search?parentIdentifier=IOER_STRUCTURE_HEIGHT_GER_100M&identifier=ids_100m_building_height_median_100kmN31E44&httpAccept=application%2Fatom%2Bxml
Media Type: application/atom+xml
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch O&M XML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/metadata?parentId=IOER_STRUCTURE_HEIGHT_GER_100M&uid=ids_100m_building_height_median_100kmN31E44&httpAccept=application%2Fgml%2Bxml
Media Type: application/gml+xml
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Queryables

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: http://www.opengis.net/def/rel/ogc/1.0/queryables
Target: https://geoservice.dlr.de/eoc/ogc/stac/collections/IOER_STRUCTURE_HEIGHT_GER_100M/queryables?f=json
Media Type: application/schema+json
\n", " \n", "
\n", "
\n", " \n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Item: ids_100m_building_height_median_100kmN31E43

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ID: ids_100m_building_height_median_100kmN31E43
Bounding Box: [9.694837258790294, 51.005839435561086, 11.147911756717152, 51.90973081743419]
Datetime: 2023-06-05 17:48:56.675404+00:00
created: 2023-06-05T17:53:49.072+00:00
updated: 2023-06-05T17:53:49.072+00:00
datetime: 2023-06-05T17:48:56.675404Z
gsd: 1
proj:epsg: None
eop:sensorType: SYNTHESIS
grid:code: ETRS_1989_LAEA
proj:crs: 3035
stac_extensions: ['https://stac-extensions.github.io/eo/v1.1.0/schema.json', 'https://stac-extensions.github.io/view/v1.0.0/schema.json', 'https://stac-extensions.github.io/projection/v1.0.0/schema.json', 'https://stac-extensions.github.io/processing/v1.0.0/schema.json']
\n", " \n", "
\n", " \n", "

STAC Extensions

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
https://stac-extensions.github.io/eo/v1.1.0/schema.json
https://stac-extensions.github.io/view/v1.0.0/schema.json
https://stac-extensions.github.io/projection/v1.0.0/schema.json
https://stac-extensions.github.io/processing/v1.0.0/schema.json
\n", "
\n", " \n", " \n", "
\n", " \n", "

Assets

\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Original data

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://monitor.ioer.de/fdzdata/100m_buildings_height/ids_100m_building_height_median_100kmN31E43.tif
Title: Original data
Description: Original data file
Media type: image/tiff; application=geotiff; profile=cloud-optimized
Roles: ['data']
Owner:
raster:bands: [{'data_type': 'uint16', 'scale': 1.0, 'offset': 0.0, 'sampling': 'area', 'nodata': 0.0, 'statistics': {'mean': 8.136017701749338, 'minimum': 1, 'maximum': 152, 'stddev': 7.379785394431882, 'valid_percent': 10.0781}, 'histogram': {'count': 11, 'min': 1.0, 'max': 152.0, 'buckets': [98026, 2103, 165, 91, 103, 18, 142, 33, 3, 97]}}]
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Metadata

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://monitor.ioer.de/fdzdata/100m_buildings_height/ids_100m_building_height_median_100kmN31E43.tif.xml
Title: Metadata
Description: Original Metadata file for IOER Building Structure - Height Median - Germany, 100m
Media type: application/xml
Roles: ['metadata']
Owner:
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: thumbnail

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://download.geoservice.dlr.de/ioer/files/100m_building_structure/height_median/ids_100m_building_height_median_100kmN31E43_thumbnail.png
Title: thumbnail
Description: Thumbnail rendered in black/white as 512x512 pixel PNG file
Media type: image/png
Roles: ['thumbnail']
Owner:
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Overview

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://download.geoservice.dlr.de/ioer/files/100m_building_structure/height_median/ids_100m_building_height_median_100kmN31E43_overview.png
Title: Overview
Description: Overview rendered in black/white as 4096x4096 pixel PNG file
Media type: image/png
Roles: ['overview']
Owner:
\n", "
\n", "
\n", "
\n", " \n", "
\n", " \n", " \n", "
\n", " \n", "

Links

\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

EOC EO Products Service

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: root
Target:
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Parent

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: parent
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1?f=application/json
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Self

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: self
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN31E43?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Item

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN31E43?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Item as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: alternate
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN31E43?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Items

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: items
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Items as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: items
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collection

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M?f=application%2Fjson
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collection as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collections

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections?f=application%2Fjson
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collections as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch GeoJSON

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/search?parentIdentifier=IOER_STRUCTURE_HEIGHT_GER_100M&identifier=ids_100m_building_height_median_100kmN31E43&httpAccept=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch Atom XML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/search?parentIdentifier=IOER_STRUCTURE_HEIGHT_GER_100M&identifier=ids_100m_building_height_median_100kmN31E43&httpAccept=application%2Fatom%2Bxml
Media Type: application/atom+xml
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch O&M XML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/metadata?parentId=IOER_STRUCTURE_HEIGHT_GER_100M&uid=ids_100m_building_height_median_100kmN31E43&httpAccept=application%2Fgml%2Bxml
Media Type: application/gml+xml
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Queryables

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: http://www.opengis.net/def/rel/ogc/1.0/queryables
Target: https://geoservice.dlr.de/eoc/ogc/stac/collections/IOER_STRUCTURE_HEIGHT_GER_100M/queryables?f=json
Media Type: application/schema+json
\n", " \n", "
\n", "
\n", " \n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Item: ids_100m_building_height_median_100kmN31E42

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ID: ids_100m_building_height_median_100kmN31E42
Bounding Box: [8.241986564633853, 50.998486178073684, 9.70077914840818, 51.90973081743419]
Datetime: 2023-06-05 17:48:56.127556+00:00
created: 2023-06-05T17:53:48.749+00:00
updated: 2023-06-05T17:53:48.749+00:00
datetime: 2023-06-05T17:48:56.127556Z
gsd: 1
proj:epsg: None
eop:sensorType: SYNTHESIS
grid:code: ETRS_1989_LAEA
proj:crs: 3035
stac_extensions: ['https://stac-extensions.github.io/eo/v1.1.0/schema.json', 'https://stac-extensions.github.io/view/v1.0.0/schema.json', 'https://stac-extensions.github.io/projection/v1.0.0/schema.json', 'https://stac-extensions.github.io/processing/v1.0.0/schema.json']
\n", " \n", "
\n", " \n", "

STAC Extensions

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
https://stac-extensions.github.io/eo/v1.1.0/schema.json
https://stac-extensions.github.io/view/v1.0.0/schema.json
https://stac-extensions.github.io/projection/v1.0.0/schema.json
https://stac-extensions.github.io/processing/v1.0.0/schema.json
\n", "
\n", " \n", " \n", "
\n", " \n", "

Assets

\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Original data

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://monitor.ioer.de/fdzdata/100m_buildings_height/ids_100m_building_height_median_100kmN31E42.tif
Title: Original data
Description: Original data file
Media type: image/tiff; application=geotiff; profile=cloud-optimized
Roles: ['data']
Owner:
raster:bands: [{'data_type': 'uint16', 'scale': 1.0, 'offset': 0.0, 'sampling': 'area', 'nodata': 0.0, 'statistics': {'mean': 8.170301979599243, 'minimum': 1, 'maximum': 243, 'stddev': 5.777807335381301, 'valid_percent': 14.8818}, 'histogram': {'count': 11, 'min': 1.0, 'max': 243.0, 'buckets': [148005, 561, 76, 82, 44, 14, 3, 0, 0, 33]}}]
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Metadata

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://monitor.ioer.de/fdzdata/100m_buildings_height/ids_100m_building_height_median_100kmN31E42.tif.xml
Title: Metadata
Description: Original Metadata file for IOER Building Structure - Height Median - Germany, 100m
Media type: application/xml
Roles: ['metadata']
Owner:
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: thumbnail

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://download.geoservice.dlr.de/ioer/files/100m_building_structure/height_median/ids_100m_building_height_median_100kmN31E42_thumbnail.png
Title: thumbnail
Description: Thumbnail rendered in black/white as 512x512 pixel PNG file
Media type: image/png
Roles: ['thumbnail']
Owner:
\n", "
\n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "

Asset: Overview

\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
href: https://download.geoservice.dlr.de/ioer/files/100m_building_structure/height_median/ids_100m_building_height_median_100kmN31E42_overview.png
Title: Overview
Description: Overview rendered in black/white as 4096x4096 pixel PNG file
Media type: image/png
Roles: ['overview']
Owner:
\n", "
\n", "
\n", "
\n", " \n", "
\n", " \n", " \n", "
\n", " \n", "

Links

\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

EOC EO Products Service

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: root
Target:
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Parent

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: parent
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1?f=application/json
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Self

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: self
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN31E42?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Item

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN31E42?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Item as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: alternate
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items/ids_100m_building_height_median_100kmN31E42?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Items

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: items
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items?f=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Items as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: items
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M/items?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collection

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M?f=application%2Fjson
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collection as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections/IOER_STRUCTURE_HEIGHT_GER_100M?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collections

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections?f=application%2Fjson
Media Type: application/json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Collections as HTML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: collection
Target: https://geoservice.dlr.de/eoc/ogc/stac/v1/collections?f=text%2Fhtml
Media Type: text/html
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch GeoJSON

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/search?parentIdentifier=IOER_STRUCTURE_HEIGHT_GER_100M&identifier=ids_100m_building_height_median_100kmN31E42&httpAccept=application%2Fgeo%2Bjson
Media Type: application/geo+json
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch Atom XML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/search?parentIdentifier=IOER_STRUCTURE_HEIGHT_GER_100M&identifier=ids_100m_building_height_median_100kmN31E42&httpAccept=application%2Fatom%2Bxml
Media Type: application/atom+xml
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

OpenSearch O&M XML

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: item
Target: https://geoservice.dlr.de/eoc/oseo/metadata?parentId=IOER_STRUCTURE_HEIGHT_GER_100M&uid=ids_100m_building_height_median_100kmN31E42&httpAccept=application%2Fgml%2Bxml
Media Type: application/gml+xml
\n", " \n", "
\n", "
\n", " \n", " \n", "\n", "
\n", "
\n", "
\n", "
\n", "

Link:

\n", " \n", "

Queryables

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rel: http://www.opengis.net/def/rel/ogc/1.0/queryables
Target: https://geoservice.dlr.de/eoc/ogc/stac/collections/IOER_STRUCTURE_HEIGHT_GER_100M/queryables?f=json
Media Type: application/schema+json
\n", " \n", "
\n", "
\n", " \n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", "
\n", " \n", "
\n", "
\n", "
" ], "text/plain": [ "" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "building_stac_items" ] }, { "cell_type": "code", "execution_count": 83, "id": "72f57874-17cb-4a31-a854-5db82be652d8", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "54" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(building_stac_items)" ] }, { "cell_type": "markdown", "id": "85505e99-7769-4ecf-843e-206019149dbd", "metadata": {}, "source": [ "*--> Now we identified the relevant datasets which we need for our research.*" ] }, { "cell_type": "markdown", "id": "33de29f2-33c2-4308-8364-5003894e794e", "metadata": { "tags": [] }, "source": [ "### Load the building heights to local storage\n", "\n", "
\n", "Now the data of the identifed data sets is going to be downloaded to the local client.\n", "\n", "You can concentrate on your work. All ugly work such as \n", "- re-projection or\n", "- area-slicing \n", " \n", "is done on the server.
" ] }, { "cell_type": "code", "execution_count": 85, "id": "8bdaf9b1-dff8-4cc4-b6a0-3d1cbaeb7c1d", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Data is extracted on the server and downloaded to local storage.\n", "CPU times: user 3.73 s, sys: 4.39 s, total: 8.13 s\n", "Wall time: 8.34 s\n" ] } ], "source": [ "%%time\n", "\n", "building_height = stac_load(\n", " building_stac_items,\n", " crs=\"EPSG:4326\",\n", " resolution=resxy_(0.09, -0.06), # 0.0174532925199433\n", " dtype=\"float\",\n", " lon=(bbox[0], bbox[2]),\n", " lat=(bbox[1], bbox[3]),)\n", "\n", "print (\"Data is extracted on the server and downloaded to local storage.\")" ] }, { "cell_type": "code", "execution_count": 86, "id": "8aebca6b-657f-4532-812a-a2e904d6757a", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.Dataset>\n",
       "Dimensions:      (latitude: 128, longitude: 128, time: 54)\n",
       "Coordinates:\n",
       "  * latitude     (latitude) float64 54.45 54.39 54.33 ... 46.95 46.89 46.83\n",
       "  * longitude    (longitude) float64 3.825 3.915 4.005 ... 15.07 15.16 15.25\n",
       "    spatial_ref  int32 4326\n",
       "  * time         (time) datetime64[ns] 2023-06-05T17:48:18.629374 ... 2023-06...\n",
       "Data variables:\n",
       "    height       (time, latitude, longitude) float64 0.0 0.0 0.0 ... 0.0 0.0 0.0
" ], "text/plain": [ "\n", "Dimensions: (latitude: 128, longitude: 128, time: 54)\n", "Coordinates:\n", " * latitude (latitude) float64 54.45 54.39 54.33 ... 46.95 46.89 46.83\n", " * longitude (longitude) float64 3.825 3.915 4.005 ... 15.07 15.16 15.25\n", " spatial_ref int32 4326\n", " * time (time) datetime64[ns] 2023-06-05T17:48:18.629374 ... 2023-06...\n", "Data variables:\n", " height (time, latitude, longitude) float64 0.0 0.0 0.0 ... 0.0 0.0 0.0" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "building_height" ] }, { "cell_type": "code", "execution_count": 87, "id": "e2781c4b-1a9b-427b-b1df-f827f5dd0b5e", "metadata": {}, "outputs": [], "source": [ "building_height[\"total\"] = building_height.height.sum(dim=\"time\")" ] }, { "cell_type": "markdown", "id": "b7ff8bcf-a29b-422e-ba63-8e9a3d08e2a4", "metadata": { "tags": [] }, "source": [ "## Show Building Heights on final grid\n", "\n", "
\n", "Building heights [m] as determined by the Leibniz-Institut für ökologische Raumentwicklung e.V. Dresden (IOER).
" ] }, { "cell_type": "code", "execution_count": 92, "id": "8f141528-d27f-4b1e-afa9-2e4c61b573ff", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 92, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "building_height.total.plot(levels=[0,1,2,4,6,8,10,20,30,40], cmap=\"cubehelix_r\")" ] }, { "cell_type": "markdown", "id": "e7d8b179-adf8-4472-ac2b-f4f6359cddfe", "metadata": { "jp-MarkdownHeadingCollapsed": true, "tags": [] }, "source": [ "## Import German Boundaries (as Shapefile)\n", "\n", "
\n", "Use shapefile to only consider S5P-TROPOMI L4 NO$_2$ information over Germany.\n", "
" ] }, { "cell_type": "code", "execution_count": 108, "id": "5183a036-4dfc-4b78-bcfb-0a33286e0d9b", "metadata": {}, "outputs": [], "source": [ "gdf = gpd.read_file('de_1km.shp')" ] }, { "cell_type": "code", "execution_count": 110, "id": "bf8b8e3d-11c5-4d08-9291-57a2535101e2", "metadata": {}, "outputs": [], "source": [ "# Change projection to EPSG:4326\n", "\n", "gdf_4326 = gdf.to_crs(\"epsg:4326\")" ] }, { "cell_type": "code", "execution_count": 111, "id": "5253a8df-9b26-4242-a623-681feede41c4", "metadata": {}, "outputs": [], "source": [ "no2surf.attrs[\"nodata\"] = numpy.nan" ] }, { "cell_type": "code", "execution_count": 112, "id": "f72a1595-ed4f-48f1-9d59-0e351db39713", "metadata": {}, "outputs": [], "source": [ "import geopandas\n", "from rasterio import features\n", "from affine import Affine\n", "import numpy as np\n", "import xray\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "def transform_from_latlon(lat, lon):\n", " lat = np.asarray(lat)\n", " lon = np.asarray(lon)\n", " trans = Affine.translation(lon[0], lat[0])\n", " scale = Affine.scale(lon[1] - lon[0], lat[1] - lat[0])\n", " return trans * scale\n", "\n", "def rasterize(shapes, coords, latitude='latitude', longitude='longitude',\n", " fill=np.nan, **kwargs):\n", " \"\"\"Rasterize a list of (geometry, fill_value) tuples onto the given\n", " xray coordinates. This only works for 1d latitude and longitude\n", " arrays.\n", " \"\"\"\n", " transform = transform_from_latlon(coords[latitude], coords[longitude])\n", " out_shape = (len(coords[latitude]), len(coords[longitude]))\n", " raster = features.rasterize(shapes, out_shape=out_shape,\n", " fill=fill, transform=transform,\n", " dtype=float, **kwargs)\n", " spatial_coords = {latitude: coords[latitude], longitude: coords[longitude]}\n", " return xray.DataArray(raster, coords=spatial_coords, dims=(latitude, longitude))" ] }, { "cell_type": "code", "execution_count": 113, "id": "d0f4a228-eab0-4415-bb4f-715f7f076ce3", "metadata": {}, "outputs": [], "source": [ "no2surf_Germany = rasterize(gdf_4326[\"geometry\"], no2surf, longitude='longitude', latitude='latitude')" ] }, { "cell_type": "code", "execution_count": 114, "id": "bdc76b8c-ad7f-49ef-9eeb-ef4f4d7572c3", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.DataArray (latitude: 128, longitude: 128)>\n",
       "array([[nan, nan, nan, ..., nan, nan, nan],\n",
       "       [nan, nan, nan, ..., nan, nan, nan],\n",
       "       [nan, nan, nan, ..., nan, nan, nan],\n",
       "       ...,\n",
       "       [nan, nan, nan, ..., nan, nan, nan],\n",
       "       [nan, nan, nan, ..., nan, nan, nan],\n",
       "       [nan, nan, nan, ..., nan, nan, nan]])\n",
       "Coordinates:\n",
       "  * latitude   (latitude) float64 54.45 54.39 54.33 54.27 ... 46.95 46.89 46.83\n",
       "  * longitude  (longitude) float64 3.825 3.915 4.005 4.095 ... 15.07 15.16 15.25
" ], "text/plain": [ "\n", "array([[nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " ...,\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan]])\n", "Coordinates:\n", " * latitude (latitude) float64 54.45 54.39 54.33 54.27 ... 46.95 46.89 46.83\n", " * longitude (longitude) float64 3.825 3.915 4.005 4.095 ... 15.07 15.16 15.25" ] }, "execution_count": 114, "metadata": {}, "output_type": "execute_result" } ], "source": [ "no2surf_Germany[:,:]" ] }, { "cell_type": "markdown", "id": "cb676bea-346a-4061-b58f-d16d491032e1", "metadata": {}, "source": [ "## Show German Boundary\n", "\n", "
\n", "Rasterize building heights [m] (determined by the Leibniz-Institut für ökologische Raumentwicklung e.V. Dresden (IOER)) onto the identical \"work\" grid (which was determined by the NO2 product).
" ] }, { "cell_type": "code", "execution_count": 115, "id": "ed95216b-e97a-44fa-bf63-0e91ee47c95a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 115, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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d3e4u7sjPDwcx48flxWXUUt7v//+e3z//ffIzc2FTqfTO7d27VpjuiQiIqpRRJi2PFc04p4HDx6gdevWGD58ON54441nXp+ZmYnevXtj1KhR2LBhA3788UeMGTMGnp6e0v379+/HwIEDERYWBkdHR8yfPx89e/bEuXPn0KBBA4Pikp2MzJo1C7Nnz0a7du3g4+Mja5UNERERKadXr17o1auXwdevWrUK/v7+WLx4MQCgefPmOHnyJD799FMpGdm4caPePUlJSdi8eTO+//57DB061KD3kZ2MrFq1CuvWrcOQIUPk3kpERFQlqsOeI9VhAmtaWhp69uyp1xYREYE1a9agsLCw3MUqDx8+RGFhoUErcIvJTkYKCgoQFhYm9zYiIiIqxVzJyJMbk6pUKqhUKpNiK5aTkwMvLy+9Ni8vLxQVFSEvLw8+Pj5l7pk2bRoaNGiA8PBwg99H9gTWd955B19++aXc24iIiKgS+Pn5wc3NTToSEhLM2v+T0zFEUSy3HQDmz5+Pr776Clu3boWjo6PB72HQyEhMTIz0Z51Oh8TEROzduxetWrUqM0SzcOFCg9+crAtXyxARGc5cIyNZWVl6j2Ax16gIAHh7eyMnJ0evLTc3F3Z2dmX2Hvv0008RHx8v5QdyGJSMnD59Wu/1Cy+8AID7iRARERnLXMmIq6trpT0PrmPHjvj666/12vbs2YN27drpDUZ88sknmDNnDnbv3o127drJfh+DkpF9+/bJ7piIiIgsy/3793H58mXpdWZmJs6cOYO6devC398fsbGxuHnzJpKTkwEAo0ePxrJlyxATE4NRo0YhLS0Na9aswVdffSX1MX/+fMyYMQNffvklAgMDpZGU2rVro3bt2gbFJXsC64gRI7BkyRK4uLjotT948AB/+9vfZO0zEhcXh1mzZum1eXl5IScnB4WFhZg+fTp27dqFK1euwM3NDeHh4fj444/h6+srN2wygKFlFkudmU5EVJ2IogDRhJERY+49efIkunfvLr0unoYRFRWFdevWITs7G9evX5fON2rUCLt27cKECROwfPly+Pr6YunSpXp7lKxYsQIFBQV488039d5r5syZiIuLMygu2cnI+vXr8fHHH5dJRv744w8kJyfL3vQsODgYe/fulV7b2toCeLw0KD09HTNmzEDr1q1x9+5djB8/Hn379sXJkyflhk1ERGRRdBBM2vTMmHu7desmTUAtz7p168q0de3aFenp6RXec/XqVdlxPMngZEStVkMURYiiiHv37unNktVqtdi1axfq168vPwA7O3h7e5dpd3NzQ2pqql7bP/7xD/zpT3/C9evX4e/vL/u9iIiILEV12GekqhicjNSpUweCIEAQBDz//PNlzguCUKbkYoiMjAz4+vpCpVIhNDQU8fHxCAoKKvfa/Px8CIKAOnXqVNifRqOBRqORXj+5/pr0GbMChqtmiIjInAxORvbt2wdRFPHnP/8ZW7Zs0dtZzcHBAQEBAbLncoSGhiI5ORnPP/88bt++jTlz5iAsLAznzp0rs2To0aNHmDZtGgYNGvTUWcMJCQlGJUVERERVSYk5I5bK4GSka9euKCoqwtChQ9GuXTv4+fmZ/Oal98cPCQlBx44d0bhxY6xfv15vb5PCwkIMGDAAOp0OK1aseGqfsbGxeveq1WqzxEpERGROLNOUkDWB1c7ODlu2bDF4dqxczs7OCAkJQUZGhtRWWFiIt956C5mZmfjhhx+euZbanNvgWhOWVoiIyFLJXk3To0cP7N+/H8OGDTN7MBqNBhcuXMBLL70EoCQRycjIwL59+8qUboiIiMpTHbYgYJmmhOxkpFevXoiNjcVPP/2Etm3bwtnZWe983759De5r0qRJiIyMhL+/P3JzczFnzhyo1WpERUWhqKgIb775JtLT07Fz505otVppI5W6devCwcFBbuhEREQWQzSxTFOjk5H3338fQPnPoBEEAVqt1uC+bty4gYEDByIvLw+enp7o0KEDjh49ioCAAFy9ehU7duwAULL9fLF9+/ahW7duckMnIiIiCyQ7GdHpdGZ785SUlArPBQYGPnVjFiIioupMBGDKrzlr+g0pOxkhIiIi0+kgQKjiHVgtlY0xNx04cACRkZF47rnn0KRJE/Tt2xeHDh0yd2xERERUA8hORjZs2IDw8HDUqlUL48aNwwcffAAnJyf06NEDX375ZWXESEREZHWKV9OYclgL2WWauXPnYv78+ZgwYYLUFh0djYULF+Kjjz7CoEGDzBogERGRXKX3VrLUZb46UYDATc8AGDEycuXKFURGRpZp79u3LzIzM80SFBERkbUTRdMPayE7GfHz88P3339fpv3777/ntutEREQkm+wyzcSJEzFu3DicOXMGYWFhEAQBhw8fxrp167BkyZLK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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "no2surf_Germany.plot()" ] }, { "cell_type": "markdown", "id": "588aecfd-4513-4334-b609-9ed2c1566fc1", "metadata": { "tags": [] }, "source": [ "## Perform correlation between building height [m] and S5P-L4 surface NO$_2$ [ug/m3]\n", "\n", "
\n", "Perform correlation between averaged building heights and TROPOMI L4 surface NO2 concentration.
" ] }, { "cell_type": "code", "execution_count": 165, "id": "5352fc03-8b4c-48db-88d1-3695c0951cef", "metadata": {}, "outputs": [], "source": [ "correlation_x = building_height.total.values.ravel()" ] }, { "cell_type": "code", "execution_count": 166, "id": "eff752f4-690d-4926-a49a-60d0e92d146c", "metadata": {}, "outputs": [], "source": [ "correlation_y_temp = no2surf_Germany.values * no2surf.average.values" ] }, { "cell_type": "code", "execution_count": 167, "id": "10209bc2-f3c5-4020-8be1-284669f48d76", "metadata": {}, "outputs": [], "source": [ "correlation_y = correlation_y_temp.flatten()" ] }, { "cell_type": "markdown", "id": "914c4fd2-b951-47f9-8c90-509b34389495", "metadata": { "tags": [] }, "source": [ "## Compute and show correlation\n", "\n", "
Compute and show correlation between building height and time-averaged NO$_2$ surface concentration derived from S5P TROPOMI data assimilation.
" ] }, { "cell_type": "code", "execution_count": 180, "id": "5df411c7-65e4-4ecf-b4cb-683a1370f300", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "from scipy.stats import gaussian_kde\n", "\n", "x = numpy.zeros((0), dtype=float)\n", "y = numpy.zeros((0), dtype=float)\n", "\n", "for i in range(0,correlation_x.shape[0]):\n", " if (0 < correlation_x[i] and correlation_x[i] <= 80) and (0 < correlation_y[i] and correlation_y[i] <= 80):\n", " x = np.append(x, correlation_x[i])\n", " y = np.append(y, correlation_y[i])\n", " \n", "xy = numpy.vstack([x,y])\n", "\n", "z = gaussian_kde(xy)(xy)" ] }, { "cell_type": "markdown", "id": "71a07796-2deb-439c-a70e-4a8612677c85", "metadata": { "tags": [] }, "source": [ "## Correlation between surface NO$_2$ and building heights\n", "\n", "
Show correlation between building height and NO$_2$ surface concentration derived from S5P TROPOMI data assimilation.
" ] }, { "cell_type": "code", "execution_count": 189, "id": "81be3f7d-a881-4a18-9593-7c14597bcb2c", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzdd1gUV9sG8Ht2KUtvShPEhljBXjCJFTtGY+9YolGjr5pYibGLYmJMYqLRGEuiURNrLFgiaozYW8SuiNgQQQGRunu+P/zYuO4COwgi5v5d1166M2fOPDsMsw9nzjkjCSEEiIiIiIopRVEHQERERPQqmMwQERFRscZkhoiIiIo1JjNERERUrDGZISIiomKNyQwREREVa0xmiIiIqFhjMkNERETFGpMZIiIiKtaYzBSA8+fPY8CAAShbtixUKhWsra1Rq1YthIaGIiEhoajD0xMUFIQyZcrka9u1a9di4cKFBtdJkoRp06blP7B8mjZtGiRJwqNHjwqszp07dxbJZ3kbJSQkoEePHnB2doYkSejYsWNRh6Tj1q1bkCQJkiRh3bp1eutzOr+EEFi7di2aNWsGBwcHmJubo1y5chgxYgRiYmL06vnxxx/RsWNHlClTBhYWFqhQoQKGDRuG+/fvF9pny4/s47Fy5cpcy61cuRKSJOHkyZOFuu/s/dy6dSvP7Zs0aYImTZrkWt/rcuDAAUiShN9//73A6pRzLF4lntyu828qJjOvaNmyZahduzZOnDiBcePGISwsDJs3b0bXrl2xZMkSDBo0qKhDLFC5neQREREYPHjwa46ocOzcuRPTp08v6jDeCjNnzsTmzZvx1VdfISIiAqGhoUUdUo6Cg4ORmZmZZzmNRoOePXuid+/ecHV1xcqVK7F7926MHj0a27Ztg6+vL/7++2+dbaZOnQpra2vMmTMHYWFhGD9+PLZv347atWsjNja2sD5SseLm5oaIiAi0a9fujayvqLVr1w4RERFwc3Mr1P0Ux2TGpKgDKM4iIiIwbNgwBAQEYMuWLTA3N9euCwgIwCeffIKwsLAC2dezZ89gaWlpcF1qaiosLCwKZD+vokGDBkUdAr1Bss/LCxcuoHz58ujdu3dRh5SrNm3aYNeuXViyZAlGjhyZa9l58+Zh/fr1mDt3LiZMmKBd3qRJE3Tv3h3169dH586dcfnyZdjb2wMAzpw5A2dnZ23Zxo0bo1atWqhbty6WLVuGzz77rHA+WDFibm5eoNeRgq6vqJUsWRIlS5Ys6jDeSGyZeQVz5syBJElYunSpTiKTzczMDB06dNC+12g0CA0NRaVKlWBubg5nZ2f069cPd+7c0dmuSZMmqFatGg4dOgR/f39YWlpi4MCBAIAyZcqgffv22LRpE2rWrAmVSqVtQRBC4Pvvv0eNGjVgYWEBBwcHdOnSBTdv3szzs3z33Xd477334OzsDCsrK1SvXh2hoaE6f6U2adIEO3bsQHR0tLZZXpIk7XpDt5kuXLiA999/Hw4ODlCpVKhRowZWrVqlUya7+fPXX39FcHAw3N3dYWtrixYtWuDKlSt5xp4tJiYGH3zwAWxtbWFnZ4c+ffogLi5Or9z69evRsGFDWFlZwdraGq1atcKZM2e064OCgvDdd99pP1P269atW+jatSuqVq2qU19gYCAkScJvv/2mXXb69GlIkoQ//vhDu+zBgwcYOnQoPDw8YGZmhrJly2L69OnIysrSqS8jIwOzZs3SniclS5bEgAED9D5L9rkQFhaGWrVqwcLCApUqVcJPP/1k1PFavHgx/Pz8YG1tDRsbG1SqVAmTJ0/Wrs++vfIyQ03dhs7LAQMGQJIk7Nu3D5cuXdIexwMHDgAApk+fjvr168PR0RG2traoVasWli9fDkPPvl27di0aNmwIa2trWFtbo0aNGli+fLlOmX379qF58+awtbWFpaUlGjVqhD///NOoYwEAzZo1Q6tWrTBz5kwkJyfnWC4jIwPz589H5cqVMX78eL31Li4uCAkJQWxsrE6MLyYy2WrXrg2lUmnwttTL1q9fj5YtW8LNzQ0WFhaoXLkyJk6ciJSUFJ1yQUFBsLa2xvXr19G2bVtYW1vD09MTn3zyCdLT03XK3rt3D926dYONjQ3s7OzQvXt3PHjwIM9YXvT48WMMGDAAjo6OsLKyQmBgoN41p0yZMggKCtLbNr+3hYQQCA0NhZeXF1QqFWrVqoVdu3bplTNUX/Z5HRkZiZ49e8LOzg4uLi4YOHAgEhMTdbZ/8uQJBg0aBEdHR1hbW6Ndu3a4efOmrFvqmZmZRl3XjDl/Df3uCSEwZ84c7bGoU6cO9u7dq3dsjY0nr+t8XteNosJkJp/UajX279+P2rVrw9PT06hthg0bhgkTJiAgIADbtm3DzJkzERYWBn9/f7378ffv30efPn3Qq1cv7Ny5E8OHD9euO336NMaNG4dRo0YhLCwMnTt3BgAMHToUo0ePRosWLbBlyxZ8//33iIyMhL+/f57N2Ddu3ECvXr3w888/Y/v27Rg0aBDmz5+PoUOHast8//33aNSoEVxdXREREaF95eTKlSvw9/dHZGQkvvnmG2zatAlVqlRBUFCQwVsNkydPRnR0NH788UcsXboU165dQ2BgINRqtVHHt1OnTqhQoQJ+//13TJs2DVu2bEGrVq10ErI5c+agZ8+eqFKlCjZs2ICff/4ZycnJePfdd3Hx4kUAwJQpU9ClSxcA0Pmcbm5uaNGiBS5evKjt55CVlYWDBw/CwsICe/fu1e5n3759MDEx0V5MHjx4gHr16mH37t34/PPPsWvXLgwaNAghISH48MMPtdtpNBq8//77mDt3Lnr16oUdO3Zg7ty52otTamqqzmc+d+4cPvnkE4wZMwZbt26Fr68vBg0ahEOHDuV6rNatW4fhw4ejcePG2Lx5M7Zs2YIxY8bofTHK8fJ5OWbMGERERKBmzZooV66c9jjWqlULwPMvmqFDh2LDhg3YtGkTPvjgA4wcORIzZ87Uqffzzz9H79694e7ujpUrV2Lz5s3o378/oqOjtWV++eUXtGzZEra2tli1ahU2bNgAR0dHtGrVSlZCM2/ePDx69Ajz58/PscypU6fw+PFjdOjQwWCyBzxPcBUKhc45YcjBgwehVqv1EmRDrl27hrZt22L58uUICwvD6NGjsWHDBgQGBuqVzczMRIcOHdC8eXNs3boVAwcOxFdffYV58+Zpy6SmpqJFixbYs2cPQkJC8Ntvv8HV1RXdu3fPM5YXDRo0CAqFQntr4vjx42jSpAmePHkiqx45pk+frr2WbtmyBcOGDcOHH34o64+fzp07o2LFiti4cSMmTpyItWvXYsyYMdr1Go0GgYGBWLt2LSZMmIDNmzejfv36aN26taxYjbmuvcr5GxwcjODgYLRu3Rpbt27FRx99hMGDB+Pq1av5iie363xhXDcKjKB8efDggQAgevToYVT5S5cuCQBi+PDhOsuPHTsmAIjJkydrlzVu3FgAEH/++adePV5eXkKpVIorV67oLI+IiBAAxJdffqmzPCYmRlhYWIjx48drl/Xv3194eXnlGKtarRaZmZli9erVQqlUioSEBO26du3a5bgtADF16lTt+x49eghzc3Nx+/ZtnXJt2rQRlpaW4smTJ0IIIcLDwwUA0bZtW51yGzZsEABEREREjrEKIcTUqVMFADFmzBid5WvWrBEAxC+//CKEEOL27dvCxMREjBw5UqdccnKycHV1Fd26ddMuGzFihDD063H9+nUBQKxevVoIIcThw4cFADF+/HhRtmxZbbmAgADh7++vfT906FBhbW0toqOjder74osvBAARGRkphBDi119/FQDExo0bdcqdOHFCABDff/+9dpmXl5dQqVQ6daampgpHR0cxdOjQXI6YEB9//LGwt7fPtUz2cX3ZihUrBAARFRWlE4uh81KI5+dz1apVc91X9jk3Y8YM4eTkJDQajRBCiJs3bwqlUil69+6d47YpKSnC0dFRBAYG6tXp5+cn6tWrl+u+o6KiBAAxf/58IYQQvXv3FlZWVuL+/ftCiH+PQ1xcnBBCiHXr1gkAYsmSJbnW6+LiIipXrpzj+qSkJFG5cmXh6ekpkpOTc63rZRqNRmRmZoqDBw8KAOLcuXPadf379xcAxIYNG3S2adu2rfDx8dG+X7x4sQAgtm7dqlPuww8/FADEihUrco0h+zzo1KmTzvK///5bABCzZs3SLvPy8hL9+/fXq6Nx48aicePG2vfZP4sX9/3y+fb48WOhUqly3G9e9WX/PENDQ3W2Hz58uFCpVNpzb8eOHQKAWLx4sU65kJAQvWudIcZe1+Scvy8fi4SEBGFubi66d++us23298GLx0LOdTan67wx142iwpaZ1yQ8PBwA9Jpa69Wrh8qVK+tl3w4ODmjWrJnBunx9fVGxYkWdZdu3b4ckSejTpw+ysrK0L1dXV/j5+Wmb9nNy5swZdOjQAU5OTlAqlTA1NUW/fv2gVqtzzPDzsn//fjRv3lyv5SooKAjPnj3Ta9V58ZZc9ucEoPMXeG5e7pPRrVs3mJiYaI/97t27kZWVhX79+ukcI5VKhcaNG+d5jACgfPnyKFOmDPbt2wcA2Lt3L6pXr44+ffogKioKN27cQHp6Og4fPowWLVpot9u+fTuaNm0Kd3d3nX23adMGwPO/0LPL2dvbIzAwUKdcjRo14OrqqhdjjRo1ULp0ae17lUqFihUr5nnM6tWrhydPnqBnz57YunVrgYwEM3Re5mb//v1o0aIF7OzstOfc559/jvj4eDx8+BDA8+OrVqsxYsSIHOs5cuQIEhIS0L9/f51jptFo0Lp1a5w4cULWX46zZs1CZmbmK3cAF0Lk2HKTlpaGDz74ANHR0fjtt99gbW2dZ303b95Er1694Orqqj1ejRs3BgBcunRJp6wkSXotNr6+vjrnRXh4OGxsbPR+73r16mXU58v28u+dv78/vLy8tL93BS0iIgJpaWk57tdYhq43aWlp2nMv+3eyW7duOuV69uwpK968rmuvcv4ePXoU6enpejE2aNAgxxGrr3KdLYzrRkFhB+B8KlGiBCwtLREVFWVU+fj4eAAw2Avd3d1d70TKrbe6oXWxsbEQQsDFxcXgNuXKlcuxvtu3b+Pdd9+Fj48Pvv76a5QpUwYqlQrHjx/HiBEj9G5tGCs+Pj7Hz5u9/kVOTk4677P7IRm7f1dXV533JiYmcHJy0u4n+1Zb3bp1DW6vUBiX2zdv3lzbsXvfvn0ICAhA9erV4eLign379sHb21vbhJ8tNjYWf/zxB0xNTQ3WmX1RiI2NxZMnT2BmZpZruWwvHzPg+XHL65j17dsXWVlZWLZsGTp37gyNRoO6deti1qxZCAgIyHXbnMgZYXH8+HG0bNkSTZo0wbJly7T9iLZs2YLZs2dr48/uJ+Th4ZFjXdk/1+xbg4YkJCTAysrKqNjKlCmD4cOHY9GiRRg7dqze+uzkMbff/ZSUFDx69Ag1a9bUW5eeno5OnTrh8OHD2L59O+rXr59nTE+fPsW7774LlUqFWbNmoWLFirC0tNT2E3v5521paQmVSqWzzNzcHGlpadr38fHxBq8XL/8e5cVQeVdXV73f74KSXW9O+zVWXteb+Ph4mJiYwNHRUadcTtfY/O7nVc7f7GNhKKac4nyV62xhXDcKCpOZfFIqlWjevDl27dqFO3fu5HqxBf49ge7fv69X9t69eyhRooTOspz+ostpXYkSJSBJEv766y+DnZENLcu2ZcsWpKSkYNOmTTp/2Zw9ezbHbYzh5ORkcA6Ne/fuaWMuSA8ePECpUqW077OyshAfH6899tn7+/3332X9Bfey5s2bY/ny5Th+/DiOHTumHYXSrFkz7N27F9HR0bC2ttYZRVGiRAn4+vpi9uzZBuvMTvBKlCgBJyenHEfB2djY5Dvulw0YMAADBgxASkoKDh06hKlTp6J9+/a4evWqtjMh8PzL98XzJ6e/xnI7Z1+2bt06mJqaYvv27Tpfulu2bNEplz1y486dOzn2Tcv+uX777bc5jlyR+wX02Wef4aeffsLkyZP1+rPUrl0bDg4O2LZtG0JCQgx+7m3btkGj0ehd4NPT09GxY0eEh4dj69ataN68uVHx7N+/H/fu3cOBAwe0rTEAXqlfipOTE44fP663XG4HYEPlHzx4gAoVKmjfq1Qqvc7HwPNzSe51IPv3Oaf95ncOLUP7ycrKQkJCgk5CI/f45OVVzt/sY2GoT2RBHosX5XXdKCq8zfQKJk2aBCEEPvzwQ2RkZOitz8zM1I5myb5l9Msvv+iUOXHiBC5dumT0RS0n7du3hxACd+/eRZ06dfRe1atXz3Hb7Ivxi19YQggsW7ZMr6wxf/Vna968ufYi/KLVq1fD0tKywIdMrlmzRuf9hg0bkJWVpe2E26pVK5iYmODGjRsGj1GdOnW02+b210rz5s0hSRKmTJkChUKB9957DwDQokULhIeHY+/evXjvvfd0WmHat2+vHaJsaL/ZyUz79u0RHx8PtVptsJyPj0+BHjMAsLKyQps2bRAcHIyMjAxERkYCgPZCeP78eZ3yL47Qyi9JkmBiYgKlUqldlpqaip9//lmnXMuWLaFUKrF48eIc62rUqBHs7e1x8eLFHH+uObV05cTJyQkTJkzA77//rveFb2ZmhnHjxuHSpUsGOwo/fPgQkyZNgouLi868S9ktMvv378fGjRvRqlUro+Mx9DsKAD/88IOcj6WjadOmSE5OxrZt23SWr127VlY9L//eHTlyBNHR0TojacqUKaN3Hl29elVWh91sDRo0gEqlynG/BSU7aVy/fr3OckMTK76KVzl/69evD3Nzc70Yjx49+krHwpjrfE7XjaLClplX0LBhQyxevBjDhw9H7dq1MWzYMFStWhWZmZk4c+YMli5dimrVqiEwMBA+Pj4YMmQIvv32WygUCrRp0wa3bt3ClClT4OnpqdOLPj8aNWqEIUOGYMCAATh58iTee+89WFlZ4f79+zh8+DCqV6+OYcOGGdw2ICAAZmZm6NmzJ8aPH4+0tDQsXrwYjx8/1itbvXp1bNq0CYsXL0bt2rWhUCh0koAXTZ06VdtX5PPPP4ejoyPWrFmDHTt2IDQ0FHZ2dq/0mV+2adMmmJiYICAgAJGRkZgyZQr8/Py095PLlCmDGTNmIDg4GDdv3kTr1q3h4OCA2NhYHD9+HFZWVtp+EtnJ37x589CmTRsolUr4+vrCzMwMzs7OqFatGvbs2YOmTZtq5/9p0aIFEhISkJCQgAULFujENmPGDOzduxf+/v4YNWoUfHx8kJaWhlu3bmHnzp1YsmQJPDw80KNHD6xZswZt27bF//73P9SrVw+mpqa4c+cOwsPD8f7776NTp06vfKw+/PBDWFhYoFGjRnBzc8ODBw8QEhICOzs77W24tm3bwtHREYMGDcKMGTNgYmKClStXGjWMOC/t2rXDggUL0KtXLwwZMgTx8fH44osv9L6sy5Qpg8mTJ2PmzJlITU3VDqW9ePEiHj16hOnTp8Pa2hrffvst+vfvj4SEBHTp0gXOzs6Ii4vDuXPnEBcXl2sylJPRo0fju+++Mzjkd8KECTh37pz23+7du8POzg7nz5/H/PnzkZycjO3bt+uc4126dMGuXbsQHBwMJycnHD16VLvO1tYWVapUyTEWf39/ODg44KOPPsLUqVNhamqKNWvW4Ny5c7I/V7Z+/frhq6++Qr9+/TB79mx4e3tj586d2L17t6x6Tp48icGDB6Nr166IiYlBcHAwSpUqpTMCs2/fvujTpw+GDx+Ozp07Izo6GqGhofmaM8XBwQGffvopZs2apbPfadOmyb5FlpvWrVujUaNG+OSTT5CUlITatWsjIiICq1evBmD8bem8vMr56+joiLFjxyIkJAQODg7o1KkT7ty5g+nTp8PNzS3fMeZ0nTfmulFkirT78Vvi7Nmzon///qJ06dLCzMxMWFlZiZo1a4rPP/9cPHz4UFtOrVaLefPmiYoVKwpTU1NRokQJ0adPHxETE6NTX26jP7y8vES7du1yjOWnn34S9evXF1ZWVsLCwkKUL19e9OvXT5w8eVJbxtBopj/++EP4+fkJlUolSpUqJcaNGyd27dolAIjw8HBtuYSEBNGlSxdhb28vJEnSGe0CAz38//nnHxEYGCjs7OyEmZmZ8PPz0xslkd3L/rffftNZbmgkgiHZoxNOnTolAgMDhbW1tbCxsRE9e/YUsbGxeuW3bNkimjZtKmxtbYW5ubnw8vISXbp0Efv27dOWSU9PF4MHDxYlS5bUfs4XR++MGTNGABCzZ8/Wqdvb21sAEOfPn9fbb1xcnBg1apQoW7asMDU1FY6OjqJ27doiODhYPH36VFsuMzNTfPHFF9qfh7W1tahUqZIYOnSouHbtmrZcTufCyyNEDFm1apVo2rSpcHFxEWZmZsLd3V1069ZNL+7jx48Lf39/YWVlJUqVKiWmTp0qfvzxR4OjmXI6L3M6n3/66Sfh4+MjzM3NRbly5URISIhYvny5Xt1CCLF69WpRt25d7fGoWbOm3nlx8OBB0a5dO+Ho6ChMTU1FqVKlRLt27fTOq5e9PJrpRUuXLhUAdEYzZdNoNGLNmjWiSZMmwt7eXpiZmYmyZcuKYcOG6Y1aE0Jo6zH0yuvnJYQQR44cEQ0bNhSWlpaiZMmSYvDgweL06dN6vyP9+/cXVlZWetsbGp12584d0blzZ+3vTOfOncWRI0dkjWbas2eP6Nu3r7C3txcWFhaibdu2Oudp9rEKDQ0V5cqVEyqVStSpU0fs378/X6OZsusLCQkRnp6ewszMTPj6+oo//vjDqPpeHp2W234SEhLEgAEDhL29vbC0tBQBAQHi6NGjAoD4+uuvcz0+cq9rxpy/OR2LWbNmCQ8PD+2x2L59u/Dz89MZ8SUnnpyu88ZeN4qCJISBGaqIiIhIz9q1a9G7d2/8/fff8Pf3L+pwDIqKikKlSpUwderUN2JCu9eByQwREZEBv/76K+7evYvq1atDoVDg6NGjmD9/PmrWrKkdul3Uzp07h19//RX+/v6wtbXFlStXEBoaiqSkJFy4cEF25/fiin1miIiIDLCxscG6deswa9YspKSkwM3NDUFBQZg1a1ZRh6ZlZWWFkydPYvny5Xjy5Ans7OzQpEkTzJ49+z+TyABsmSEiIqJijkOziYiIqFhjMkNERETFGpMZIiIiKtbe+g7AGo0G9+7dg42Njazp1omIiKjoCCGQnJwMd3f3PCcAfOuTmXv37uX4TBciIiJ6s8XExOT5/MO3PpnJfjBfTEwMbG1tizgaIiIiMkZSUhI8PT2NesDuW5/MZN9asrW1ZTJDRERUzBjTRYQdgImIiKhYYzJDRERExRqTGSIiIirWmMwQERFRscZkhoiIiIo1JjNERERUrDGZISIiomKNyQwREREVa0xmiIiIqFhjMkNERETFGpMZIiIiKtaYzBDi7sRjUtvZ6OIyCMPqjEfkkStFHRIREZHRmMz8x2WkZ2Jc8+k4s+88EuOScPPsLUwImIG71+8XdWhERERGYTLzH3f9TBTuXrsPdZYGAKDRCGSmZ+LI1pNFHBkREZFxmMz8xykU+o9WFzksJyIiehMxmfmPq1CzLMr7eUFh8vxUUCgVsLBW4d3O9Ys4MiIiIuMwmfmPMzE1wdw9U9Ckmz9KVXSDX5Oq+OrQTDiXLlnUoRERERlFEkKIog6iMCUlJcHOzg6JiYmwtbUt6nCIiIjICHK+v9kyQ0RERMUakxkiIiIq1pjMEBERUbHGZIaIiIiKNSYzREREVKwxmSEiIqJijckMERERFWtMZoiIiKhYYzJDRERExRqTGSIiIirWmMwQERFRscZkhoiIiIo1JjNERERUrDGZISIiomKNyQwREREVa0xmiIiIqFhjMkNERETFGpMZIiIiKtaYzBAREVGxxmSGiIiIirUiTWYWL14MX19f2NrawtbWFg0bNsSuXbu064UQmDZtGtzd3WFhYYEmTZogMjKyCCMmIiKiN02RJjMeHh6YO3cuTp48iZMnT6JZs2Z4//33tQlLaGgoFixYgEWLFuHEiRNwdXVFQEAAkpOTizJsIiIieoNIQghR1EG8yNHREfPnz8fAgQPh7u6O0aNHY8KECQCA9PR0uLi4YN68eRg6dKhR9SUlJcHOzg6JiYmwtbUtzNCJiIiogMj5/n5j+syo1WqsW7cOKSkpaNiwIaKiovDgwQO0bNlSW8bc3ByNGzfGkSNHijBSIiIiepOYFHUA//zzDxo2bIi0tDRYW1tj8+bNqFKlijZhcXFx0Snv4uKC6OjoHOtLT09Henq69n1SUlLhBE5ERERvhCJvmfHx8cHZs2dx9OhRDBs2DP3798fFixe16yVJ0ikvhNBb9qKQkBDY2dlpX56enoUWOxERERW9Ik9mzMzMUKFCBdSpUwchISHw8/PD119/DVdXVwDAgwcPdMo/fPhQr7XmRZMmTUJiYqL2FRMTU6jxExERUdEq8mTmZUIIpKeno2zZsnB1dcXevXu16zIyMnDw4EH4+/vnuL25ubl2qHf2i4iIiN5eRdpnZvLkyWjTpg08PT2RnJyMdevW4cCBAwgLC4MkSRg9ejTmzJkDb29veHt7Y86cObC0tESvXr2KMmwiIiJ6gxRpMhMbG4u+ffvi/v37sLOzg6+vL8LCwhAQEAAAGD9+PFJTUzF8+HA8fvwY9evXx549e2BjY1OUYRMREdEb5I2bZ6agcZ4ZIiKi4qdYzjNDRERElB9MZoiIiKhYYzJDRERExRqTGSIiIirWmMwQERFRscZkhoiIiIo1JjNERERUrDGZISIiomKNyQwREREVa0xmiIiIqFhjMkNERETFmlEPmnR0dJRVqSRJOH36NLy8vPIVFBEREZGxjEpmnjx5goULF8LOzi7PskIIDB8+HGq1+pWDIyIiIsqLUckMAPTo0QPOzs5GlR05cmS+AyIiIiKSw6hkRqPRyKo0OTk5X8EQERERycUOwERERFSsyUpmhBCIiopCVlYWACAjIwPr16/H6tWr8ejRo0IJkIiIiCg3RveZuXLlClq1aoWYmBiUK1cOe/bsQdeuXXH58mUIIWBpaYkjR47A29u7MKG/OVwAACAASURBVOMlIiIi0mF0y8yECRPg5+eHs2fPon379mjfvj08PDzw+PFjPH78GI0aNcKMGTMKM1YiIiIiPZIQQhhT0NnZGXv27EGNGjWQkpICGxsbHDp0CO+88w4AICIiAj169EB0dHShBixXUlIS7OzskJiYCFtb26IOh4iIiIwg5/vb6JaZp0+faifPs7KygpWVFdzc3LTrPTw8EBsbm8+QiYiIiPLH6GTG3d0dt2/f1r4PDQ3VmXcmLi4ODg4OBRsdERERUR6MTmZatGiBy5cva98PGzYMNjY22vd79uxBrVq1CjY6IiIiojwY3WcmL1FRUVCpVDq3nt4E7DNDRERU/Mj5/jZ6aHZeypYtW1BVERERERktX8nM8ePHceDAATx8+FDvUQcLFiwokMCIiIiIjCE7mZkzZw4+++wz+Pj4wMXFBZIkade9+H8iIiKi10F2MvP111/jp59+QlBQUCGEQ0RERCSP7AdNKhQKNGrUqDBiISIiIpJNdjIzZswYfPfdd4URCxEREZFssm8zffrpp2jXrh3Kly+PKlWqwNTUVGf9pk2bCiw4IiIiorzITmZGjhyJ8PBwNG3aFE5OTuz0S0REREVKdjKzevVqbNy4Ee3atSuMeIiIiIhkkd1nxtHREeXLly+MWIiIiIhkk53MTJs2DVOnTsWzZ88KIx4iIiIiWWTfZvrmm29w48YNuLi4oEyZMnodgE+fPl1gwRERERHlRXYy07Fjx8KIg4iIiChfjH5q9tWrV1GxYsXCjqfA8anZRERExY+c72+j+8zUrFkTlStXxoQJExAREfHKQRIREREVBKOTmfj4eISGhiI+Ph6dOnWCi4sLBg0ahG3btiEtLa0wYyQiIiLKkdG3mV4khEBERAS2bduGbdu2ITo6Gi1atMD777+P9u3bw9nZuTBizRfeZiIiIip+CuU204skSYK/vz/mzp2Lixcv4uzZs3jvvfewcuVKeHp68tlNRERE9Nrkq2UmN/Hx8UhISIC3t3dBVptvbJkhIiIqfuR8f8semr1t2zaDyyVJgkqlgre3t9GJTEhICDZt2oTLly/DwsIC/v7+mDdvHnx8fLRlgoKCsGrVKp3t6tevj6NHj8oNnYiIiN5C+ZpnRpIkvNygk71MkiS888472LJlCxwcHHKt6+DBgxgxYgTq1q2LrKwsBAcHo2XLlrh48SKsrKy05Vq3bo0VK1Zo35uZmckNm4iIiN5SsvvM7N27F3Xr1sXevXuRmJiIxMRE7N27F/Xq1cP27dtx6NAhxMfH49NPP82zrrCwMAQFBaFq1arw8/PDihUrcPv2bZw6dUqnnLm5OVxdXbUvR0dHuWETERHRW0p2y8z//vc/LF26FP7+/tplzZs3h0qlwpAhQxAZGYmFCxdi4MCBsoNJTEwEAL1k5cCBA3B2doa9vT0aN26M2bNnv1EjpoiIiKjoyE5mbty4YbAjjq2tLW7evAkA8Pb2xqNHj2TVK4TA2LFj8c4776BatWra5W3atEHXrl3h5eWFqKgoTJkyBc2aNcOpU6dgbm6uV096ejrS09O175OSkmTFQURERMWL7NtMtWvXxrhx4xAXF6ddFhcXh/Hjx6Nu3boAgGvXrsHDw0NWvR9//DHOnz+PX3/9VWd59+7d0a5dO1SrVg2BgYHYtWsXrl69ih07dhisJyQkBHZ2dtqXp6enzE9IRERExYnsZGb58uWIioqCh4cHKlSoAG9vb3h4eODWrVv48ccfAQBPnz7FlClTjK5z5MiR2LZtG8LDw/NMgtzc3ODl5YVr164ZXD9p0iRtX57ExETExMQY/+GIiIio2JF9m8nHxweXLl3C7t27cfXqVQghUKlSJQQEBECheJ4bGftkbSEERo4cic2bN+PAgQMoW7ZsntvEx8cjJiYGbm5uBtebm5sbvP1Ez4/3tu9349iOU7CwVqHzmPao0tAn7w2JiIjeYAU+aZ4cw4cPx9q1a7F161aduWXs7OxgYWGBp0+fYtq0aejcuTPc3Nxw69YtTJ48Gbdv38alS5dgY2OT5z44ad6/fgpei19DNgMAFAoJkkLCgkMzUaVB8XsaOhERvd0KddK8GTNm5Lr+888/N7quxYsXAwCaNGmis3zFihUICgqCUqnEP//8g9WrV+PJkydwc3ND06ZNsX79eqMSGfqXWq3Gb1/8O+GhRiOgkCRsXbSLyQwRERVrspOZzZs367zPzMxEVFQUTExMUL58eVnJTF6NQhYWFti9e7fcEMkAjVoDdZZaZ5nQCKQ/yyiiiIiIiAqG7GTmzJkzesuSkpIQFBSETp06FUhQVPBMzUxRu6UfTu/7Bxq1BsDzZLJBYJ0ijoyIiOjV5Oup2S+ztbXFjBkzZI1gotdv0pr/oXZLPyiUCqiszDFgVk+0CmpS1GERERG9EtktMzl58uSJdgZfejPZOtpgzo7J0Gg0kCQJkiQVdUhERESvTHYy88033+i8F0Lg/v37+Pnnn9G6desCC4wKT/YQeiIioreB7GTmq6++0nmvUChQsmRJ9O/fH5MmTSqwwIiIiIiMITuZiYqKKow4iIiIiPKF9xuIiIioWDMqmfnggw9kPX26d+/eePjwYb6DIiIiIjKWUY8zUCqVuHr1KkqWLJlnhUIIeHp64uzZsyhXrlyBBPkq+DgDIiKi4qfAH2cghEDFipzynoiIiN48RiUz4eHhsisuVaqU7G2IiIiI5DIqmWncuHFhx0FERESULxzNRERERMUakxkiIiIq1pjMEBERUbHGZIaIiIiKNSYzREREVKzJTmZiY2PRt29fuLu7w8TEBEqlUudFRERE9DrJftBkUFAQbt++jSlTpsDNzQ2SJBVGXERERERGkZ3MHD58GH/99Rdq1KhRGPEQERERySL7NpOnpyeMeJwTERER0WshO5lZuHAhJk6ciFu3bhVCOERERETyyL7N1L17dzx79gzly5eHpaUlTE1NddYnJCQUWHBEREREeZGdzCxcuLAw4iAiIiLKF9nJTP/+/QsjDiIiIqJ8kZ3MAIBarcaWLVtw6dIlSJKEKlWqoEOHDpxnhoiIiF472cnM9evX0bZtW9y9exc+Pj4QQuDq1avw9PTEjh07UL58+cKIk4iIiMgg2aOZRo0ahfLlyyMmJganT5/GmTNncPv2bZQtWxajRo0qjBiJiIiIciS7ZebgwYM4evQoHB0dtcucnJwwd+5cNGrUqECDIyIiIsqL7JYZc3NzJCcn6y1/+vQpzMzMCiQoIiIiImPJTmbat2+PIUOG4NixYxBCQAiBo0eP4qOPPkKHDh0KI0YqIEII7Fl1ALN6LMCXg77HjXO3ijokIiKiVyYJmc8mePLkCfr3748//vhDO2FeVlYWOnTogJUrV8LOzq5QAs2vpKQk2NnZITExEba2tkUdTpFaM3sjVk5ZB0khQZIkKE0U+ObIHFSoWbaoQyMiItIh5/tbdjKT7dq1a7h8+TKEEKhSpQoqVKiQr2ALG5OZ5zQaDQKt+yAjLVO7TKFUoFmvdzBh1cgijIyIiEifnO/vfM0zAwDe3t7w9vbO7+b0mmVlqnUSGQAQGoFnSalFFBEREVHBMCqZGTt2LGbOnAkrKyuMHTs217ILFiwokMCoYJmZm8L3vSqIPHIZ6iwNgOd9aOq0qlHEkREREb0ao5KZM2fOIDMzU/t/Kp4+Wz8G07t8ici/L0NpokDXTzqg/dCAog6LiIjoleS7z0xxwT4z+lJT0mBmbgqlCR8/QUREbyY539+yh2YPHDjQ4DwzKSkpGDhwoNzqqAhYWKmYyBAR0VtDdjKzatUqpKbqdxpNTU3F6tWrCyQoIiIiImMZPZopKSlJO0lecnIyVCqVdp1arcbOnTvh7OxcKEESERER5cToZMbe3h6S9HyytYoVK+qtlyQJ06dPL9DgiIiIiPJidDITHh4OIQSaNWuGjRs36jxo0szMDF5eXnB3dy+UIImIiIhyYnQy07hxYwBAVFQUPD09oVDI7m5DREREVOBkZyReXl5QKBR49uwZLl++jPPnz+u85AgJCUHdunVhY2MDZ2dndOzYEVeuXNEpI4TAtGnT4O7uDgsLCzRp0gSRkZFywyYiIqK3lOxkJi4uDu3bt4eNjQ2qVq2KmjVr6rzkOHjwIEaMGIGjR49i7969yMrKQsuWLZGSkqItExoaigULFmDRokU4ceIEXF1dERAQYHB4OBEREf33yE5mRo8ejcePH+Po0aOwsLBAWFgYVq1aBW9vb2zbtk1WXWFhYQgKCkLVqlXh5+eHFStW4Pbt2zh16hSA560yCxcuRHBwMD744ANUq1YNq1atwrNnz7B27Vq5oReZjPRMnAg7g782HUPCg8dFHQ4REdFbRfaDJvfv34+tW7eibt26UCgU8PLyQkBAAGxtbRESEoJ27drlO5jExEQA0HYujoqKwoMHD9CyZUttGXNzczRu3BhHjhzB0KFD872v1yUlMQWfNJ2GG2dvAQAsbFSYG/YZqjT0KdrAXnL+0EVcP3MLJTwc0ahjPSiV7BNFRETFg+xkJiUlRTufjKOjI+Li4lCxYkVUr14dp0+fzncgQgiMHTsW77zzDqpVqwYAePDgAQDAxcVFp6yLiwuio6MN1pOeno709HTt+6SkpHzHVBB+nvE7ov65rX2fnpKOOb2/xi83vy/CqHT9MnsjVk/7DZJCgtAI1Gnlh5lbJzChISKiYkH2t5WPj4+2k26NGjXwww8/4O7du1iyZAnc3NzyHcjHH3+M8+fP49dff9VbJ0mSznshhN6ybCEhIbCzs9O+PD098x1TQbh96Q40ao32vUYjEHsrDlmZWUUY1b/uRz3E6mm/AQCE5vljuk7uPoeDG44UZVhERERGy1efmfv37wMApk6dirCwMJQuXRrffPMN5syZk68gRo4ciW3btiE8PBweHh7a5a6urgD+baHJ9vDhQ73WmmyTJk1CYmKi9hUTE5OvmAqKe3lXKF5o4ZAUEkqUcoSJqexGsULx8Hac3jKliQKx0frLiYiI3kSyv1F79+6t/X/NmjVx69YtXL58GaVLl0aJEiVk1SWEwMiRI7F582YcOHAAZcuW1VlftmxZuLq6Yu/evdqRUhkZGTh48CDmzZtnsE5zc3OYm5vL/FSFp9+0bji19xzuXH2eAJqamWD8qo8BAEkJybjw12UoTRTwbVIVFlaq3KoqFB4V3aE0UUKdpdYuU2dpUKZa6dceCxERUX7ISmYyMzPh4+OD7du3o0qVKgAAS0tL1KpVK187HzFiBNauXYutW7fCxsZG2wJjZ2cHCwsLSJKE0aNHY86cOfD29oa3tzfmzJkDS0tL9OrVK1/7fN1snWzw/alQHN95BmkpafBrUhWuZZxxKzIGnzadisRHz4eYu1dwxVeHZsDR1eG1xufk5oBPlg3Flx8ugTrr+e2wjh+3RoN2+fuZEhERvW6SEELI2aBUqVLYt28fKleu/Oo7z6Hfy4oVKxAUFATgeevN9OnT8cMPP+Dx48eoX78+vvvuO20n4bwkJSXBzs4OiYmJsLW1feWYC8rHDSbh2qmb2v40CqUCTXs0wsSfRxVJPLHRcYi+dAcl3B1RzterSGIgIiLKJuf7W3YyM3fuXFy+fBk//vgjTEzejH4fuXlTk5kOtn2R+jRNZ1k5Xy/8cPaLIoqIiIjozSHn+1t2NnLs2DH8+eef2LNnD6pXrw4rKyud9Zs2bZJb5X+SewVXRP1zW9syozRRwMMn/6PBXkVqShp+mbkJ185EwdnTCX2ndIaLV8kiiYWIiEgu2cmMvb09OnfuXBix/KeMXfYRxjWfjmdJqQAABxd7DJ3f77XHodFoMOX9+bhw+DI0GgGFUoHjYWex9Ewo7Eu+OS1ZREREOZF9m6m4eVNvMwHAo3sJOLPvHyhNlajXpias7a3y3qiAXTsThRH1g3WWSQoJwxf0w/vDW732eIiIiAB539+y55lp1qwZnjx5YnCnzZo1k1vdf1oJd0cE9GuMZj3fKfBEJiMtA2cPROLUvn/wLDk153KpGXrLJElC+jP95URERG8i2beZDhw4gIwM/S+6tLQ0/PXXXwUSFL2aJw8TMa7lLNy+fA8AUKKUI0L3BKNUeVe9suX8vODoao8ncUnQqDWQJECSgDot/Qo1RrVag30/H0LMlXsoVcEVLfs3htJEWaj7JCKit5PRycz58+e1/7948aLOrLxqtRphYWEoVapUwUZH+fLDhDW4c+3fn0/CgydYMHQpvtz3uV5ZCysV5oVNxpy+3+JW5B3YO9ti9PeDUc4390nzYqPjkPo0DaW83WBqJi8n1mg0mNltAf7ecgJK0+cT9v21+RifB0VERPli9LdQjRo1IEkSJEkyeDvJwsIC3377bYEGR/lz41y07vOg1BrcunAnx/JeVTzww6l50Gg0UChyTyayMrMQOuB7HFj//NlNzqVLIGTnZHj6uBsd3z+HLuHvLScAAOrM5zMPn9h1Fqf3nkfd1jWMroeIiAiQkcxERUVBCIFy5crh+PHjKFny36G7ZmZmcHZ2hlLJ2wRvArdyzoi5ck9nQj7n0nk/aiKvRAYANi7cofMQykd3EzC965f48fyXRsd378YDg8vvXL3PZIaIiGQzOpnx8no+K6xGo8mjJBW1IXN749LRa0h8lAxJAsxUpvjfooEFUvelY9d13mvUGty+dBfpqRkwtzAzqo6MtEyDy9NT0185PiIi+u/J1xS+V69exYEDB/Dw4UO95Obzz/X7ZdDrVaqCK2Zvn4B1oX9AnZmF94e3QqV6FQqkbgdnOyiUCu1znABAZWUOM5Wp0XWU9HAyuJwT9RERUX7ITmaWLVuGYcOGoUSJEnB1ddV5vpIkSUxm3gBRF2IwvvVcpKWkAZKEk39ewOwt4+D3XmXcuxmL839dhspKhQZtakBlJe8J493Hd8Bfm47h6ZMUSJIEdZYawxb0z/E5W4b4Na2Kkp5OiL+XAI1aQFJKsC9ph9qFPIKKiIjeTrInzfPy8sLw4cMxYcKEwoqpQL3Jk+YVluBOX+D0nxe0fWYkhYTSPu4YOq8XpnZdiMyMLACAh7crvto3BbZO1rLqj7+XgN2rDiI1ORW1W/qhRpOqsmOMjY7Dd/9bgVuRd+BZyR0jFgbB3cDQ8dxkZWbhlxm/4/DmY1BZmaP7+I54t3MD2bEQEdGbp1AfNGlra4uzZ8+iXLlyrxTk6/JfTGaG1p2MWxd1Ry9Z2VnA1NwMiY+Skf0jVygV6DC0BYaF9i6KMF/ZolHLse273c8/jwRAADO3TUSD9rWLOjQiInpFhToDcNeuXbFnz558B0eFz6dOOShemK9FqVTAu0ZZPIlLwou5q0atwe3Ld4sixFem0WiwY+m+fz+PeH6bc9fyP4s2MCIieu1k95mpUKECpkyZgqNHj6J69eowNdXt+Dlq1KgCC47y58M5PXEr8g6unLoJAHAt54yxPwxG/6qfQmh0G+KS4p/mWM+D6DisnrERsdGP4F2zDPp93hmWNhaFGrsc+o2KAmo1R9sREf3XyE5mli5dCmtraxw8eBAHDx7UWSdJEpOZN4CNgxUGzOiG37/eCXWWBm0GNIFDSVu9RAYA7J0NN909iUvCx/5TkJyQAgC48PcVREZcw8KDU9+IWXoVCgWa93oXe38+qP1cQgABfd4r4siIiOh1k53MREVFFUYcVIBO7DmHKZ2/gqSQIITAmfBIjP1+EFxKl8DDmEfIbtCQJKC8n5fBOnb9FK5NZLJdPXUTV07cQJUG3oX9EYzyv8UfwtzKHH9vPgZzC3P0mNgJjbv5F3VYRET0muX7T+yMjAxcuXIFWVlZBRkPFYB1X2wH8LxPTHarxZq5WxH88whY2Vlqy1Wp741e4zoYrOPKKcNJ683ztws42vwzU5lh1KLBWH93GVZfX4S2g5sXdUhERFQEZLfMPHv2DCNHjsSqVasAPJ9Ar1y5chg1ahTc3d0xceLEAg+S5ElJStXrT5L6NA0+tcthxbn5uHL6JiysVKhcr3yOT6r28DY8TNqtnHOBx0tERPQqZLfMTJo0CefOncOBAwegUqm0y1u0aIH169cXaHCUPw3b1tSZxE6hVKBe6+cT0tk6WaNugC+q+VfUSWQy0jJw9/oDpCSlAgDaDGgCE1PdRKdEKQdUa+TzGj4BERGR8WS3zGzZsgXr169HgwYNdL4wq1Spghs3bhRocG+LqydvYMuiMKSlpqNB21oI6NdY1oy5uVGrNTh7IBJJj57Cp245uJdzQe9J7+PJoySErTwIjRBo2K4mPl7QL8c6zh64iBm9v0VK4jMolAoMDemJjsNbYu7OSVj0v5WIu5uACn5eGPvDYKOfv0RERPS6yE5m4uLi4Oysf6shJSWlwL6g3yZXTtzA6PemQKMWEELg8KbjiL//GD0ndnrlujMzsvDZ+/Nx9sBFAIDSRIlJq0fg3U518fGCfmjZ511kZmShUp1yMFMZTkKSEp5iWveFSHuWAeB5P5vF49egvJ8Xqr/jgx9OhbxynACQkvQMKkvzHG9rERER5Zfs20x169bFjh07tO+zE5hly5ahYcOGBRfZW2JtyEaoszQ6fVh+nvE7hBBITUnDuYORiPz7ivYRA3L88cM+nDt4SfterVZj/qAliLubgP81nYHRzWZiXOsQDK0XjNjbjwzWEX3xDlJT0nXiUygViIy4itP7L6B/5bFobz8AI9+ZijvX7suO8d6NB/jQ71N0dBiA9tZ98duCP2TXQURElBvZLTMhISFo3bo1Ll68iKysLHz99deIjIxERESE3rwzBFw/E623LCtTjTtX72FC69l4dCcBAFDOzwuhuz+DrZON0XXfuXYfChMF1Jnq5wsEkJ6agSXj1+DGC6OOHkQ/woLhyzFz41ismrEJETtOw8JahZ7jAuFZ0U2vXo1GA3WWGlM6fQl1lhpCI3D97C1MaDMXy8/Ng8pKpbeNIRqNBsHt5+LejVjt51467he4l3NFo451jf6cREREuZHdMuPv74+///4bz549Q/ny5bFnzx64uLggIiICtWvzmTgvs7A1PGPugiE/IOHBE+37WxdisHTiGll1lyrvqn2YZDYzlSmiL9/VWa5Ra3D97C0sGvszNn23G/duPsSNf25jVt/v8CA6Di16vwMAMDFVQqGQ4FWpFJRKJTT/n8hk1/HobgKuGUjOcvLoTgLuXL2vE4vSRIlTe8/J+pxERES5kd0yAwDVq1fXDs2m3L3bqR7WXLoDvDBS2rOSO26evw1N1ksJx+mbsuoO/KgFInacxj9/XQbw/PbQJ0uHYNeqg4i5ontLyNbJBvvW/v3vLMDi+dO09/16BJNWfIRqDb1x6dh1uJYpiY7DW2LfmsMw9AhSU3PjTxkLG0MtOAKWtpYGlhMREeWP7GRm586dUCqVaNWqlc7y3bt3Q6PRoE2bNgUW3Nug58SOuHr6Jk7sOgsAKOHhiKkbPsHMHl/h9uW72uRCoVTAtYy8OVzMzE0xb+dEnNr3DxLjn6JyvfLw8HbDn+v+1itram4CQ9mJ0AhcOXkTq2ZsxOPYRJipTOHk5oB3O9XDL7M3I/lxCjRqDRRKBbxrlYV3zTJGx2fjYI33R7TC1u92Q1JIUCgkqKxUaD+0hazPSURElBtJ6D+tL1e+vr6YO3cu2rZtq7M8LCwMEyZMwLlzb9YtBDmPEC8sQgicP3QRSfFPUTvAF5Y2Frhw+DImtpn9vOOvELBxtMHXf81AKW/9PixyDak7GdGXdJ+GbWVniYbtamH/hgidZzRNXD4U345eiWdJqdBkL5eAr8Onwq6EDVZM/Q2x0XHwrlkWA6Z31ZlBOKfPCvzbMVyj0WD7D3tx/uAl2DpZo8vY9nAvb3hCPiIiomxyvr9lt8xcu3YNVapU0VteqVIlXL9+XW51b72szCzMH7gY4f/fWlKqgivm7JiEau9UwtKz83F811koTRR4p1M9OLjY56v+47vOIvFRMio38EaZKh5wL++CmBf6qjxv9SmJUV/3h6WNCkd3noWFtTl6fBoIJ3cHPH3yTKdOhUKBcwcvovungZi8eoRRcWSkZeDbUT9h/69/Q6GQ0H5IAAbP7Q2lUoEOw1qhw7BWeVdCRESUD7KTGTs7O9y8eRNlypTRWX79+nVYWVkVVFxvjd++/AMH1h/Rvr8f9RCzei7Ed8dC4F7eFR0/bp3vutNTMzCxzRxcPHoNwPM+MOOXD8OQOT1w6dh1PIlLAgCYW5hh9LcDYG5hhhFf9sWIL/tq64i6EKNXr9AIWNnL+1n+MO5n7Fn17xOsN369A1Z2lujzWef8fjwiIiKjyB7N1KFDB4wePVpntt/r16/jk08+QYcOhh9a+F924e8rOnO4aNQaXD8TBXWW+pXr3rZkLy4d/7c1TGgEFny0FI6u9lh6Yg4+WTIYoxcNwLJTIahYqyyA5zMG37sZi8exiQCAMlU90Oj9OpCk5y04z1txSqBpN3lzBh3efFzn9hUE8NfGo6/8GYmIiPIiu2Vm/vz5aN26NSpVqgQPDw8AwJ07d/Duu+/iiy++KPAAizv7krZQKBU6w5MtbS2hUOb7geVa92/GQqFUQK35NzHKTM9Cwv0ncC/vgpZ93tUtH/UQwR2/wN3rDwAALXq/g7HfD0Lw6hHYungvrp+9hRKlHNHlf21glcOQ8pyYqUx1F0iAuaV5/j4YERGRDPm6zXTkyBHs3bsX586dg4WFBXx9ffHee+8VRnzFXq9JnXBk20mkPk2DJElQZ6nx0Rf9CuTRD6UruesM74YEqCzM4eTuYLD8rD7f4n7UQ+37fWsPo0zlUug6ph0+GJn/210A0O3TDvh25E/Pw5AkCCHQZWz7V6qTiIjIGLJHMxU3b8JoptjoOOxeeQBpKWmo17YWajSpWiD1ZmVmYWqXBTi5+/kIMhMzEwSvGQn/wDp6ZTPSMxHoOEh3oQQ0aFsT0zeMKZB49q35C/vXHobCRIF2g5ujoYE44s4XVAAAIABJREFUiIiIjCHn+ztfycyff/6JP//8Ew8fPoRGozsD7U8//SS3ukL1JiQzhUmj0eDC4StIjE9GxVpl4eJV0mA5IQQ6ugxBWkq6dplCqUBA73cwdvHg1xUuERGRUQp1aPb06dMxY8YM1KlTB25ubnxSdhFTKBTwfa9ynuUkScKQkJ74ZtRKKE2UEELAwsoc3T/hrSAiIireZCczS5YswcqVK9G3b9+8C9Mbpd2gZnApXQIn9pyHhbUKrYMawzWHlhwiIqLiQnYyk5GRAX9//8KIhV6DOgG+qBPgW9RhEBERFRjZ44MHDx6MtWvXFkYsRERERLLJbplJS0vD0qVLsW/fPvj6+sLUVHd+kQULFhRYcJS3+zcf4revtiMp4SmqN/JB4EcBUChefQ4bIiKi4kJ2MnP+/HnUqFEDAHDhwgWddewM/HrFRsdhRMNgpKWkQaMR+GvjMdy+fBcjvxmY4zYpic9w7UwULKxVqFCzLJQFMHkfERFRUZKdzISHhxdGHG8FdZYaf208hkf3EuBdsyz8Cmg+mZzs+HE/Up+m6cwuvH3pn+g/tStsnWz0yl8/ewuT2oUgKf4pAMCvcRXM3DIO5hZmhRqnIakpafjty+24c/U+3Mu7oNungbC0kTfrMBEREZCPZOZFd+7cgSRJKFWqVEHFU2xlZWZhUps5OBseCYVCgkYj0H96t0J90OKz5FSDrWHPktMMJjOze3+Dp09StO/P/3UJ6+ZtRf9pXQstRkOyMrMwsU0ILh+7BgFAAnB811ks/Gs6zMxN89qciIhIh+x7DBqNBjNmzICdnR28vLxQunRp2NvbY+bMmXoT6OXl0KFDCAwMhLu7OyRJwpYtW3TWBwUFQZIknVeDBg3khvxa/LnmMM6GRwIANP//wMVVUzcgNjqu0PZZJ8BX54GVCqUCpSq4oqSnk17ZjLQM3LsRC4363zkShUbgxj/RhRZfTs6GR+LS0WsQAoAAhHjeapQ9kzEREZEcspOZ4OBgLFq0CHPnzsWZM2dw+vRpzJkzB99++y2mTJkiq66UlBT4+flh0aJFOZZp3bo17t+/r33t3LlTbsivxcOYR1CaKPWWx8XEF9o+G7SrhaHz+8DU/HkDW+lK7pi5dZzBfjCm5qawcbB63gzy/xRKBZw99BOfwnYm/ILB5SeYzBARUT7Ivs20atUq/Pjjj+jQoYN2mZ+fH0qV+j/2zjs+imr9w8/M7KY30hNKCL2KqDSVogKK2MCGKGIFr/5QUC+KiGIBRQXRi12KqCBiA0RBOtKLEIoEEkihh/Se7M6c3x+72WTZBbOQSDuPn71hzpw5884ul/3mPW+py5NPPsm4ceOqvVafPn3o06fPaed4e3sTHR3tqZn/Oo3axjl5SQBMZo26zWJq9b79h/Xh9idvpLykHN8An1POUxSFEZ8+zpsDPwQhMIQgLKYOA0f1q1X73JGbke92PD+rgIyDmcyd+Ct5mfm07tKMW//TW2ZnSSQSieS0eCxmsrOzadGihct4ixYtyM7OrhGjqrJy5UoiIyMJCQmhe/fujBs3jsjIyBq/z9ly9e1XcftTNzLvo8UAaCaN/05/ijqRwbV+b01TTytkKrjm9g58tGEc25bvwtffh653diKwjj9Wi5Wf/7eI5O2pRNQN4+7n+hIcXnt9rJp3aMySr/90Ga/bNJqnOo6iMLcIYQhWzlnHgZ3pjPh0SK3ZIpFIJJILH48bTXbq1IlOnTrx4YcfOo0PGzaMzZs3s2HDhjMzRFH4+eefueOOOxxjc+bMISAggLi4OFJSUhgzZgxWq5WtW7fi7e3tdp2ysjLKyiqbKebn51O/fv1/rdFkyq50Mg9n07B1fSLOwRaOpwgheO3u91m/YCuKatuDiqwfxieb38I/2K9W7mkYBg+1HMGxlMp4orC6dbjxwW58N2GeU3YWwHcHPyU0OqRWbJFIJBLJ+UmtNpp855136Nu3L0uXLqVLly4oisK6des4ePBgjcez3HvvvY4/t2nThquuuoq4uDgWLlxI//793V7z1ltv8dprr9WoHZ4Q36YB8W0anPH1VouV7yf+yq61ewmJCGLAC7fToHlsDVroTOqug6ybvwUAYQ8OPp6WyYo567hlSM9auaeqqkzfPYmpo78jeXsqDVvX4/G3BzL1pdk2QeW8W0dRXrEUMxKJRCI5JR6Lme7du7N3714+/vhjEhMTEULQv39/nnzySWJja+9LFyAmJoa4uDiSkpJOOWfUqFE8++yzjuMKz8yFwnuPf87KOesQQqBqKusWbOHTTW8RHV87W2uFecUuY4qqUJjrOl6TaCaNIRPudxq7omdbfvqgUhCrmkp43VBiGp1/24oSiUQiOX84ozozdevW9SjQt6bIysri4MGDxMScOqjW29v7lFtQtU3q7oN88cK3ZBzMpEXHJgx55wEC6wRU+/qsozms+G6t49jQDcqKy/l9+koefv2e2jCZRm0bEFjHn6K8YkdKuTAEl1/Xqlbudzo63tSe/0wazBcvfIPVohMTH8lrP/0Xk/msyiFJJBKJ5CLH42+J6dOnExAQwN13Oxdamzt3LsXFxQwePLjaaxUWFpKcnOw4TklJYfv27YSGhhIaGsrYsWO58847iYmJITU1lZdeeonw8HD69fv3M3D+iYz0TJ65dgylRWUYukH6nsOk7Ezng7VvVrtlQFlxucuYoiiUlZS5mV0z+Af78eaCF3jt7klkH83Fy8fM01MepUWHJjV2j8RNyexau5egUH+63d0FH79Ti81+w/pw2396U1JYin+wn2yRIZFIJJJ/xGMx8/bbb/Ppp5+6jEdGRjJkyBCPxMyWLVu47rrrHMcV20ODBw/mk08+YefOncycOZPc3FxiYmK47rrrmDNnDoGBrtVtzzWrflhPaWGpw7th6AZ7N+/nQEIqTa9oVK01ohpGUL95LIeTjzmCYHWrTqc+7WvNboCWHZswK2UKBdmFBIT4u62Xc6b8PnU57//nc1TFVhX5h8kLmbz69dO2LtBMGgEh/jVmg0QikUgubjwWM2lpacTHx7uMx8XFkZ6e7tFaPXr04HTJVIsXL/bUvHOGbtFBUQDn59Gt1a+KrGkq4+aPZNwD/2Pflv34BfkxdML9tL++zSmvSfgzkRmv/0heZgHturXk8TfvOaMeR6qq1ng6dmlxGf8bNhUEGPbPOX3PYX6Zsuic1LeRSCQSycWJx2ImMjKSHTt20LBhQ6fxhIQEwsLO/1Tk2qLLbVfx1di5CCEQhkA1qcTER9KoXZxH60TFRfDhn6+jW3VUTT3tNkvS9jReumMihmEgDMGxtBNkHMzizR9HnBfbMznH87BanFOTFFUhIz3zHFkkkUgkkosRj0urDhgwgKeffpoVK1ag6zq6rrN8+XKeeeYZBgwYUBs2XhDEtazH27+/RIMWdfEP8aNdt1a888eY0zZOLC4o4a9lu9ixeg/lZRanc5pJ+0dBsvz79YBNPAEYumDrsl1kH8s96+epCcLrhuIf4hz3olt1GrX1PHV98YyVDG0/kkfbPMu3439C1z3rAyaRSCSSixePPTNvvvkmaWlp3HDDDZhMtssNw+DBBx9k/PjxNW7ghUS7Hq35cufEas09lHSUkb3HkXU0B4CGrevzzuLRBId7EA90ii26iridc43Zy8Qrc0bwav/3KC2yBTFf268jfT2sX7P0mz9579FPHMczXplDeUk5D79x6YpniUQikVTicQXgCpKSkti+fTu+vr60bduWuDjPtlP+LTypIPhvMqLHWBK37Mewx9SomsoN913D818+Ue019mzez7O9x9s7T9vq0rTu3IR3Fr5wXmwzVZB7Ip/9CakEhQbSpH1Dj20b0f1Vdq1JdBoLCgvgx4ypNWmmRCKRSM4jarUCcAVNmzaladOmZ3r5JU/KroMOIQO27Kf9O9I8WqNlh8a8/v0zTH1lLnlZhbTr2oKn3nvgvBIyACERQVzZ87Izvl648TS5G5NIJBLJpYmsRnaOiGoQTnriYceWkKqpxMRHAVCQXUjqnsMEhwdSv1mMQ5wU5hVz4lA2EfVCCbD3TerQ6zI69Kq+UCgtKiPl70P4+vsQ1zL2vBM+7uj9YHd2r9vrOFYUhd4P9Th3BkkkEonkvEKKmXPE0x89yqib36K8tBwhIDA0gMfG38f2VXt47b4PKbHHmPQaeA0jPnqYZd9v5IMR36BbdUxmjeGTB3HDPZ1Pub6l3EpSQhq61aBpuzh8/LxI+fsQL/V/n5yMfAA69GrDmK+exMvn1EHK5wN9Hrue8nILP01eiLVc54b7r2Xwa7VTEVkikUgkFx5nHDNzoXC+xswAHEvJYPOSHZhMGl1uvRK/QF/uazaC4vwSp/o7g8f05+t3FzptraiaymdrXqFek2iXdfOyChl112RS/j4MQFT9MN7+cTgv3z2ZIyknHAX5FFXh/v/ewgMv3FbLTyqRSCQSiWf8KzEzkrMnOj6SW6tk9hxKPkbRSY0fNbPGjjV7XWJEDN0gKSHdrZj5cuyPpO096jg+cSSHiU9/xaHk407zhCFISvAsTkcikUgkkvMNj+vMSGqPOhFBqCf1cRK6QWS9ULfzQ06Rxp2UkObwvoBN+KT8fRizt6t2rcnWBRKJRCKRnAuqLWYsFgsjR46kSZMmdOzYkenTpzudP378OJomvxjPBv9gPx5+9U6nsai4CB557S4CQvycxgPr+NOmi60Z5JHUEyT+lUpxYSmATfyoqq29gqKAqhAWE+K+0Nz5H/8rkUgkEslpqfY207hx45g5cybPP/88ubm5jBgxgg0bNvDZZ5855lzk4Tf/Crs37QdNA8NAURUyj+ex5tdtFOaXVOn9pFCQV8z2P/exdtEOFs9eD4B/oA9jvxpKTHwkrNhjn28jqkE4aX8fchEvx9I8by0ghODI/uOUFJbSoEUsXj5eZ/HEEolEIpGcHdUWM99++y1ffvklt9xyCwAPP/wwffr04eGHH2batGkAF0Sa7/lM5pEcNvyeYDtQVQRgWA02Lkqwe1mgqhpZtyiBxbM3OI6LCkp5dfBnBAR6u6y9Y12S7Q8nf0an+cyyjubwzVu/kJGeRZPL47hv5G2YzBrjB01h7S+bAQiLrcNbC18krmW9M3nkf5WEVbt5f+hnZKRnEt+mAS/MHEaDFnXPtVkSiUQiOUuqvc10+PBh2rSp7N7cuHFjVq5cyfr16xk0aBC6rp/makl1sFqsroMKBIcFopmcPyqTWWPfjoMu04sLSsk84tqbqaykHJO5YhtQsb0UhbjmMW5tyc8qYFjXsSyasYotS3YwZ+KvvHLXJOZO+pV187Y45uUcz+ONAZOr/YznisPJRxnVZxxHko9hKbWQvC2F/97wGsUFJefaNIlEIpGcJdUWM9HR0ezfv99pLDY2luXLl7N582YGDx5c48ZdakTWD6PxZQ3QKoKAFVvzyBsfuIZ7nr7RFgdjfw0Y3oecEwVu13G72acoNGpdH0Wp/MgVFNpd28LtGqt+2kT2sRxHILEwBAmr9vDXsl2IKncwdIODe49SVlJ+Rs/8b7F50XasZdYqTTkNso/mkLgp+RxbJpFIJJKzpdpi5vrrr2fWrFku4xWCJjU1tSbtuiRRVZU35jxNu24t8PHzIqJuKKOmDiE0JoTvPlxSGdCrKHw7eRGBof5u1wmPDXHePlIU/IN9SUpItx8qji3Bnz5e6naN0qIyt9uG/kF+lWLLjm+Az3lfeM/L2+w2psvLTYaXRCKRSC4sqi1mxowZwz33uK+6WrduXVavXu2InZGcOaFRwYz/cQS/HPqIr3dMoNsdV7Fg2mqXL2JhCGLqhblcHxIRyPjvhuHt6+Xw4mhmjVGfPOT2fgW5RW7Hr7yhDSiKQxOpmkpIRBCPvHkvAXUCUDXVltatwFOTHzrv46Wu6deROlHBjtR3VVNp0j6eFp1kfzGJRCK50Kn2r6VxcXGn7YwdExMjt5qAAzvSOJ5+gsbtGhJZP7xG1nTomKqCQQjqNo5gyDX9mPbWAqwWnbrxEYyb9SRR9UKZs/tt/lywHUu5ha63XkFAkC8ms4bV4hzbFNci1u09G7VtwKivnmTS0C8oKSqjTmQQb/z8HA1a1OWzLW+z5JvVlBSWcWXPtrS5pnmNPGdtEhwexAfrxjHtpVkcTcmgyeXxPPrWQExm6ZmRSCSSCx2P/yWfO3cus2fPZt++fSiKQtOmTRk4cCB33XVXbdh3wSCE4KWbx7N16U7H2GPjB3LPfz1vFVCUX0L6vqMEhwUSGx+Br7+X2ywk3wAvsjLysVoNUBSKCkspyCkiql4o3j5e9Ly7o9MlL00dwhsPfeqIGwmJCGTMV/9xa4Ol3MrPUxZTWlKOatbIOpbHoq9W89R7g1j98yZ++HARpcVlHEw6Snyb+vgH+7ld53wiJj6K0bNHnGszJBKJRFLDVLs3k2EY3HfffcydO5dmzZrRokULhBAkJiaSnJzM3XffzezZs8+77YZ/qzfT3IkL+OLFb13Gv0r6kJiGkdVeZ+e6JMY+8BHFBbYCeH0evJaDqVns2rjfZW6DptGk789wGgsM8WPW1jeqZC45k5dVwOaluwgOC+SK61q5xL9UsHT2Wt59/HOX8SHjB/D5qNmOY1VT6dDrMl7/8dlqP6NEIpFIJP+EJ9/f1Y6ZmTx5MkuXLmX+/PkkJibyyy+/MG/ePPbu3cvPP//MkiVL+OCDD87a+AuVLX8kuB3futj9uDvKSy28PvgTR8dsgN9nriE/y33WUrabbKaC3GKOpJ66EF5wWCA97+1Ch55tTilkALKO5rq0VgBYv/AvFLVSsBq6wcbF2ykvs5xyLYlEIpFIapNqi5kZM2bw7rvvOormVeW2227jnXfeYerUqTVq3IVESGSw2/Ho+Op7ZTIOZ1OYW+zUVFIza4TUcZ+15BvgWhwPbKLobGl+RbxTfycAs7eJ4LBAF++bpqmnFUYSiUQikdQm1f4GSkpKomfPnqc837NnT5KTL92aHUMm3I/JyzkEKbZJNFf2uqzaa4SEB6KqzkJB6AbNr2jo0iTSy8dMeEyI23XqRAayct5fPN//A0bcNokFM/70uNXE5T1aMXhMf8ex2dvMSzOepP+wmxBCVHpnFLh1SE/ZsFIikUgk54xqBwD7+vqSm5tLgwYN3J7Pz8/H19e3xgy70AiLDWX63+8zaehnZB3JoXmHxjzz0WMexRAFBPvx8Jh+TH3tJzSTiqEL6jaO4t7hN9GhV1vefXomJ47kElG3DiM/fJAlP2xiz9ZUl3VWzf+LL17/xXGcuC2NstJy7nriBrf31XWDRV//yf4d6YTH1uH2IdfjH+THwBdup/egrmQeySG2URRBoQEATFj4It+/v5Di/BI63XQ5dz/b17M3SyKRSCSSGqTaAcB9+/alQYMGfPLJJ27PP/HEExw8eJCFCxfWqIFny78VAFyTbFu1h90bkwkOC+SGezvjF+DjOGe16I7g3l9nruGjl3+ovFABX39v6jWKdBTIqyAsKphvtrxOYV4xyTsP4uvvTZPLGqCqCu8MncqKHzaimVSEENRrHM0HS1/Ct8p9JRKJRCL5N/Hk+7vanpnRo0fTo0cPsrKyeP755x3ZTHv27GHixInMmzePFStWnLXxEmjfvSXtu7d0e65qllKfgV3Y9ude1i22pYN7eZl56eOHmDHhV5frdKtO8o50Rg+YQn6OrVDeZVc35dGX72DFDxvtc2wxMulJR1n54yb6DO5WbZvLyyx88t9vWD57HYqqcOuQG3ho7N0ylkYikUgktU61xczVV1/NnDlzGDJkCD/++KPTuTp16jB79myuueaaGjfwUkPXDeZ9vpzdG5MJCg3g7mE3EhsfgdWi88ecDRxOOUHd+AhuHNAZzaTx8uePsC8hnbzsIpq0rktoVDBbVuxh/65DlYsqCi2vjGf8kKkU5hc7hnduSGbelytdbFBVlbzsQo/s/uKl7/ht2gpHY6jvJy3EN9CXgSM9r7MjkUgkEokneFQ0r1+/ftx4440sXryYpKQkAJo1a0bv3r3x8zv/i6adb5SXWkhOSMNk1mwNJk0aH4z4miXfrUdBQVEV/py3lSnLR/PR6LlsXbUHzaRhtepsXLKLV6c/jqqqNL/cuTJz6r6jUDWQWNjGjqY5p2wLQ5CbVYBvgA+lxWVOTRjbdPGszP/KH9a7dLhcOWedFDMSiUQiqXU8rgDs5+dHv379asOWS4pjaZm8eMsEjtkFRrMr4vnvF0NYMns9AAKB0AUlRWV89fYCtqzcA+BoR7Bp2W4S1iXR/lrXVgIH92fYKgYLYa8cLMg8nk9gHX9bLya76FA1ldj4SO4d1ps3Bn1MQW4xmknlibcG0KazZ2KmtEptnApyMwvIPpbLO498ws41iQSE+PPY+Pvo9UBXj9aWSCQSieR0VFvMzJw5s1rzHnzwwTM25lJi4n++JONQtuM4OSGNr8f97DJPUSAvx/2WT66bonlgi49xXOz4KRg+8QHGPf4lQgiEEIRFBXPfiJsIjQxmVuJEso7mEBIehI+/+/o1p0NVXGNjNLPGmH7vcmBHOoZukJuRx3uPfUpodAhX9mzr8T0kEolEInFHtcXMM888c8pziqJQVFSE1WqVYqaaJCekORWlM3SDg/uOEhsfwbH0LMc53WrQtW97tq9Ldiqmp6oKTS+r73bt8JgQ8rKdu2H7BfhwdZ92TFnyIttX78XH35trb2lPYIhte9DsZSI6LuKMnyeyQRjpiUcqBxSIahDOnnV7neZpJpX1v26VYkYikUgkNUa1U01ycnLcvv7++2/uuecehBD06tWrNm29qAiPqePUFkDVVKLqh/HGd8No0CwGsBXGe2rCAPoMupYREweimWwfl8ms8dz7D1CvcZTbtW8a0NnpWFHgpgFdAIhvWZd+Q6+nzwPXOIRMTdD8qsbOAwJanDxm5+QCgNUhfc9hpr40i0+fn8nutXv/+QKJRCKRXDJUu87MyRQUFDBhwgQ++OADWrduzVtvvcV1111X0/adNedrnZmE1Xt4uf8kdF1HCPAL9OX9paNp0DwWgNLicrx8TKhqpd4szCvmxOEcIurWIcDepbq4sJTl87ZRkFtM66saclmnxggh+GL8fBZ/twHDEFx942U8++6AWk2Tvr/ZcDIPZzuNNW3fkHqNo1j5/XqEEKiaismsMWX9m8S1rFfttfdt2c+z1421b58pGLrBy98Np2v/TjX8FBKJRCI5X6iVOjMVlJeXM2XKFMaPH094eDjTp0/nrrvuOmNjLwWyjuSw9Ns1lBaX0eHGdrTq3JR23Vry8brX2fD7dkwmja79OhAeW8dxjY+fl8s6AcF+DhEDUFRQwvC7pnA45QSqqqLrBkNH30bj1rHM/3aDPdBXYfnCBDr3akPXPtVvrQBwJCWDGeN+4Xh6Jk0vb8jDL9+Bf5B7b45uD0yuitWi89wXQ6nbJJptK3YTEhHIwFH9PBIyADNf/wGrRa/cllPg85HfSDEjkUgkEsADMSOEYObMmbzyyitYrVbGjx/Po48+iqbJnjyn41hqBsOufZXCnCIUVWH2hPmMnPYE1w+4mvrNYqhv31I6E+bPXMeR1EyEsNWnAfji7QW0ujIewxCVMTYKTJ+46JRipqighK8mLGRfQhpR9UIZPPIWfP29GX7j2xTmFWPoBkkJ6SQlpDFp4Ui3fZgCQv3JychzHgvxw+xlYtCYOxk05s4zfs6c47nOTS8Fp+wkLpFIJJJLj2qLmXbt2rF//36GDRvG8OHD8fPzo6ioyGXe+bSVcz4w6+15FOYWYxgC7OLioxFfcf2Aqz1apyC3mG//t4RDBzKo1ziS+4f1Iisj3xZ3UyUw2NAFOScKnIKFEVCYX+J2XV03ePmBT9i3PQ1DFyTtOMi2NXvp/2h3CnKKHA0qDd1g79YUknek0/yKeJd1cjPyXcbyMmtGcLTr3ork7amOZ9JMKq2vcU1Jl0gkEsmlSbXFzK5duwB45513ePfdd13OCyFQFAVdd91uuJTJPpbn7FUACnOL0a16tTtNl5VaeH7AxxxKOYGhG2xbl0TCumT63t/F0YIAbFllAUE+dOjenMPpWQ4hoqoq7Tq7D8Y9sPsQiVWaVRq6QWFeCXsT0kEB+//YEAJLmdXtOkGh/hTkFDpq2Ciq4mhMebYMfu1eDicfY/2CrQA0uiyO57/8T42sLZFIJJILn2qLGdl36cxo0aERW5bscHgVVE0lrmXdagsZgK1/7iU9+bjj2NAFqfuOER4dTM/+V7LkJ9uXvK+fmTEfD6Ze4wiW/baDfLs3xsvHzAPP9MJq0Zn96XLWL/sbP39v7nm8BwEBrrE5ChDdIAwUlapNv00mjcZt3aeDPzz2bt4cNMUWZGyv1zdodP9qP2MFx1JP8P1788k9UUDrq5txx//dhLevF6/99F8yD2djtViJbBDuFBgtkZwpVouVlXPWkXk4m2ZXNuKKnp7FlUkkkvODaouZ7t2716YdFy33PH8r+7alsnHhNgDCYkIY/e0wj9YoLS53O15WaqF+8xjUAG8MXRBcN5SQiEC++t9SCgoqt5XKyix89s5vxNatw8LvNtq8Jwq8+uRXjP3oQSLq1iHL7kFSFAVVUylw05vJatXZtz2Ndm6qDnft15EJv77Iyh82oGoqvQd1PWVq9qk4cSiLpzq9RFF+CcIQrPllEyk703n+yycACK8b6tF6EsnpsJRbeKHXG+z8cw+qpmLoBoNeuZsHx95zrk2TSCQeIn+9rWUURcHkZQJNBU1FMWuoVfsmuWHtoh188eY85ny0lILcItp2bIS3r9lRl0ZRFXz8vCgptTBt8h8Yus3rc+xwDmOemsnGlYlUTbgXAnZuSeH3OZsq+yfZM50Wzd3EW7Ofoull9TF7m4iqH8rYGUPIy3RfdTh5Z/op7b68RyuGT3mEpz94yGMhA/D71BUU5Zdg6IZti0zAHzNXk3U0x+O1JJJ/Ytn94OaJAAAgAElEQVS3a9i5xtYmpGIr+OvX53I87cS5NEsikZwBnlcvk3jEnIm/sm7BX47jzMM5vPngR3yy7g2387+e9DuzPvwDzaQiDMHvs9fzv1+f5Y2pj/Huc7M5cTSX8OhgRk68j8Xzt9s0iaYACkIIjh7KwdfX7LKu1apXChnH3pEgNTmDuo0imbzgOaf5uzcksWX5bpd1Wndq4vmbUE2KC+3epKpaT0BJQSmcedKXROKWE+mZaJpW2f6jYvxQFlFnUQ1bIpH8+0gxU8skbt5P1bqEhm5wYEc6VosVk9n57S/ILWLW//4AcAT2njiSw69fr+W+Yb2Z+edorBYdk9kWb/PJxMVgquJcUxRQIDDEz2VrytvXmzJLKU5BMMJ9PRuA+5/ry6qft3AkpfK31G63X0kLN5lMNUVE3VAMw/bcit1Ok5dGZFx4rd1TcunSuH1DFyFj9jZR7yzKJUgkknOD3GaqZepEBaOeVHnXP9jPbQBwXnZlR+sKFFUhN6uQxB0Heez2D7i98+s8fseH7N11CItepaFkxUtVUc0mUBRElUaTZl8vBGCYVAwvk+2laRTkl7q1W7ca+IcGgklDMZtA0wioUzPZSaci+3geqqY6hAzYCu+dOJR1ymu2LEngo2emM/WlWRxOPlar9kkuLrrcehX9h/d1HJu8TLz49dOERASfQ6skEsmZcMaemeTkZPbv30+3bt3w9fV1pGZLnBk48jbW//oXRfkljtT1pyY+4Pa9iqoXSkhYAHk5RY7sJ91qUL9pNKOGzqCs1IJuCA6nZTJq6Awat4pFKAonr1RUWo7upaHYwk4QQGFpOcLL/nEr9nQjs0ZRqcWt3avm/0VSQjq27SvbNb99s5bbH+tBg6bRNfX2OGEym1AUBXGSojOb3f81/X3qct5/4nM0k4ZAMO/jxfxv3TjiWnlWYVhyaaIoCv+Z9BC3DO1F5uFs4lrVIzS6zj9fKJFIzjs89sxkZWXRs2dPmjVrxs0338zRo0cBeOyxx3juuef+4WpnVq9eza233kpsbCyKovDLL784nRdCMHbsWGJjY/H19aVHjx7s3u0ax3E+ExMfyScb3mTQ6H7cNbwPExeP5oYB17ida/YycdcTNzgVvIuOi8AvxI/i4nJ0BdAUdAWKCsvwD/RBwTmmV9UULIYBXiaEjxnhYwZvE0YVL43jpxBwimDkjEPZbsezj+e5Ha8Jeg3qitnL5PBkKapCp5vbE1E/zGWuEILPX/gGAN2qY1gNykstfDfhF5e5EsnpqN+8Lu2vbyuFjERyAeOxmBkxYgQmk4n09HT8/Cr79Nx7770sWrTIo7WKiopo164dU6ZMcXv+nXfeYdKkSUyZMoXNmzcTHR1Nr169KCi4sErZR9QNZeDI23hk7N20ubrZKeeVlZQzbdIiMJsdr2NH81i5YLs9yJdKMaIpHD6ai2FSEd5mDB8zwsuEVVEosxguaxuAcnJtFgVatWvAsUPZ/HfwF/Tr+DqP3zqZhE0HKC50v/1Um963ek1jeH/lq3TscznNOzTmzmduZvS3T7u9p2EIivOLncd0g9wTrpWIJRKJRHJx4/E20x9//MHixYupV8/Zld+0aVPS0tI8WqtPnz706dPH7TkhBJMnT2b06NH0728rvvbVV18RFRXFrFmzGDp0qKemn/f8vc3WUgBFqUw8AlKSjjsH7tr/XJBXAhWxN4pik6aqZutu4Gb+rfd2YP53m6oMK9wxsDMvPjKNDHudmUOpmbw8dAa3332VbcvnpKbqtb2V2LhdQ1774Z89fJqm0rJTUxI373ek1SoKXNatZa3aJ5FIJJLzD489M0VFRU4emQoyMzPx9vauEaMAUlJSOHbsGL1793aMeXt70717d9atW3fK68rKysjPz3d6XSiERQXbYlxMGphNYNIQqoLZ273m9PIxI1QFw6ximBSbl0ZRUDXFKerEXlKGJ567iev6XkZQqD8RMcGMGHsH/v7eHDuc4xAEwhDoVgOLAaKqblEV/IJ8iW9Vt5aevpKc43mk/n2IshL3xQIreOnbZ6jfPNZxfP3Artzz/G21bZ5EIpFIzjM8FjPdunVj5syZjmNFUTAMg3fffZfrrruuxgw7dsyWmRIVFeU0HhUV5Tjnjrfeeovg4GDHq3599+X3z0f8A3wqPS1gczVoGlExIdRvGO4otqeqCg0aRRAaG4Kouv2kgNAUgsP8HUtUiBovXy8W/PIXy1YmUmDVySwq46P/LeWEfVtGVH0JiIkL59mJ92P2NoOiEBwawOsznyAwxFXI1hRCCL4c/R0DGv4fQ68cxQNNn2HPxmQAVs3dwIgeY/m/Li/z04e/I4QgskE4n217h6+T/8f3Rz7nhRlPedQmQiKRSCQXBx5vM7377rv06NGDLVu2UF5ezsiRI9m9ezfZ2dmsXbu2xg08eVvjn7KmRo0axbPPPus4zs/Pv2AEzcGUE87bQ3ayThTQ+aa2zJmxBhQwFIUuPVuzfFWibYLiLGgaN40mK7vI1qkbWyBt81axfPHxMoQKFrvE0cstbNh4gLrx4Rw6kuMICjapKl1vbENYZBA97riSgtxigsMCbH2XapFVP2xk7qSFjuOCnCJevWsSQycMZMJDHzvG9209QHFBCQ+M7o+qqrLAmUQikVziePzt1KpVK3bs2EHHjh3p1asXRUVF9O/fn23bttG4secl7E9FdLQt/fdkL0xGRoaLt6Yq3t7eBAUFOb0uFAKDfd2Ol5frfPfteoS3hvAzI7w1Zs1cS3ZOUWUtmSpc060Zws+E1d+M1d+M7mPi/gevptRqIFTFlsGkgKFAWmomh+0ZShWemXIh2Pv3YcCWYRUaGVTrQgZgz8ZkNHOlZ0UYgrzMAn7+n2tg+byPFte6PRKJRCK5MDijOjPR0dG89tprNW2LE/Hx8URHR7NkyRLat28PQHl5OatWrWLChAm1eu9zhW+A+5ijgPAAKCpxioNRVNDsW0z2vpGO87N+2IyVyrRrQwjGTfq9MiMKHF6YnKxCmwfHrDnGhG7w+89/cXWPfzeYNiQyCKGflIl1CidcRYVkiUQikUg8FjPTp08nICCAu+++22l87ty5FBcXM3jw4GqvVVhYSHJysuM4JSWF7du3ExoaSoMGDRg+fDjjx4+nadOmNG3alPHjx+Pn58fAgQM9Nfuck3k0l9LiMmLiwk8Z1xEVE4LZz0x5mbVy68gwCI0OQqRnVqkJoyAMQUxMCEn7M5yEDMChjFycVYBCVk4RJsBQsXlnAMUKmll1bokAoKmUlVs9fsaNixJY+eMmVE3lxkHXctk1rt21T8ctj9/AoukryUjPRNFUdIvOwBfvICQ8gH1bD1Q+japw/X3ua/VIJBKJ5NLDYzHz9ttv8+mnn7qMR0ZGMmTIEI/EzJYtW5yChitiXQYPHsyMGTMYOXIkJSUlPPnkk+Tk5NCpUyf++OMPAgMDPTX7nGG16Lw8cAoJa/YBEBTqz6Rfn6dufKTL3JysQsp1w+YlqUiJ1jQOHcx2LW6nKlx7TTOSjmWjV8xVFK5oU5+/EtJP1jIgwDApCJNaKXw0gWFSXNO4hSCuSSRlpRYW/bCZzGN5NGoRQ4++7U4Zr7T0u/W895+ptiBlRWH59xt4fc7TdOjVttrvVWAdf6ase4Pfpq4gLzOfVp2bcu0dHRBCUFpUxk8f/o7VonP9gKt5fML91V5XIpFIJBc3iji5kMg/4OPjQ2JiIg0bNnQaT01NpWXLlpSUlNSkfWdNfn4+wcHB5OXlnZP4mcnPfcPiWeudxkIiAvl66zimvfcbK+ZvRzOp3P7gNUQ1DGfci3Nd1vAO9qHIcP2YWravT0LyUYfQUexBL16aiqVcrxQ0wq5RKgKCqdieEvj7emE94lqE8InhvVn501aSdx9B1RR0q0Gfuzvw9Gv93D7nw1eM4miVppSKAi07NmHSohf/8T2SSCQSieRkPPn+9jiqMzIykh07driMJyQkEBbmWnb+UmfTUtf2C7knCvj87QX8MmMtuVmFZB3PZ9q7v5P4l2vRQQH4epvdrr0/PcsWB6PgSMsWKvTp2RahVEm1VuDWmy9Hsf9XFVVVia5Xxyk12+SloVkNknYdRgjhiE/5fe5m0pKPu7WluMC5YrAQUJxvE7aJW/bzw4eL+OObPyktLjvNuyWRSCQSied4LGYGDBjA008/zYoVK9B1HV3XWb58Oc888wwDBgyoDRsvaLST41HsLJ+3zaW6bsL6ZIegqEABQiICHAXsHH2YFLColdtLjq0iVaF+wzCUEDO6j2J7BWpcc21Tm3fGaW2FiIhADp/It9WrUW2CqEyB3TsPOeraVCU3q9Dt81zVs43zFpQCHW+8jN+mr2R4z3FMe3Uuk56azjPXv0FR/vnlvZNIJBLJhY3HYubNN9+kU6dO3HDDDfj6+uLr60vv3r25/vrrGT9+fG3YeMEghGDP5v2smb+Vw/ttHoxbH+5uO6mqtpei0LhNPbedoK0nNX60eVUUcjKLMMwKullFmGw/DZNCeKhN5Ogm0M1gaLZrlm3aixWB4aVieKkIVeGDr1fy4EDnoFlVVbj3jqts7RPMGoaXCWHW0EwqPkE+jjo1FXh5m4hr4j4tPiw29KRu1wpBYQF8/N9vbfE69rUO7j3K/M+WevbGSiQSiURyGjwOAPby8mLOnDm88cYbJCQk4OvrS9u2bYmLi6sN+y4YhBC8dOf7bFu1xzagKDz8cj+uue1Kvnl/kS2GRQhQVW4adC35BWV8/cESpzWu6NaclDmbQa0iCxRb3RdUe+CuotoKB6LQqlk0aXmVXayFpmA2KxSUlDsJESEEWblFBEX6Y/FTUC0CoYI50Ez9huFomopeJSVa1wWde7Rgz8YDpO/PsPVoMgRX39iGkLAAt8+/7PsNKJrJ4W1SFIUls9djtehO8xRVPWVHbolEIpFIzoQzqjMD0KxZM5o1O3UH6EuNHz9e4iRkEILpb/5M0p4jWHVhj2ux7fPMePtX5uwcj7ePFysWbMNk0rht0NVcfm1Tfpyz2aUKsBrgDYUljmiXiu2cjdtSAcUpc8mCICjQx1F7BmzemrDQACZ9tRzdR0X3s9lnNXQ+mbuGF0bdylsTFqADCMGdt19JWX4p6YdywMdsE1FCsHzxbh54Mou6DVxjoypsqrrVZPIyERDiR2F+CdjFla7rNGpzYVRk9oSc47l88cI3HNiRRr1mMTw+YZCsTCyRSCT/EmckZg4dOsT8+fNJT0+nvNy5GeCkSZNqxLALja3LdrntVJ3y9xGbt8LRcgCKCktBwJ2PduPOR7s5LhFCEBIeQG6mc1xKTL0QshNd40wsuo5w1jIAZJeUOlfRUyC3vNRWSK9SEYECf6ccp2VMBBafyto3O1OOU5pZdNLCtvn7E4+6FTN9HuzKNxMWOI3dPLgbXl4mJg2bbov5EYKGLWO5+ZEeLtdfyJSVlPFsj1c5knwMQzdI2ZnOrjWJfLFzEoF13HuyJBKJRFJzeCxmli1bxm233UZ8fDx79+6lTZs2pKamIoTgiiuuqA0bLwiCI4Js20gn12Gp2jfJjqqpaCaN/YlHWbf8b0wmjetuvgzFpJKdV2z7VAxAtcW1KEJU1SWOPwcE+VKQXyl8KsbLDSu6N05ipqis3JbxpNgyngAUXVBWWs73v2xxMjkx6RjEhOLk3jkpAPlk7nu2D5qmsnTOelRN5dZHenDjA9cwpNMrKKpqq+yrKKQmHmX9wm1ce9uVbtfJPpbLLx8tJi+zgFZdmtF7UNfT9uI6H9ixeg+H9h5xHBu6QdaRHDYu/IueD3Q7zZUSiUQiqQk8FjOjRo3iueee4/XXXycwMJAff/yRyMhI7r//fm666abasPGC4OEx/fhz3lZ0i9WxzRTZIJzohuEcSc9ymmsYgjVLdzPuudmO2njffrqcMR/ebwvJViq9JAbgrZlAsx2ICoGhQki4P4eKClGrlJQxzHA8vxChKA79JIASixVFxSZyKk7oYC5ylScCOJJXZPOm2IvgYQgUIWjSIsbt86uqSoMWsTRuF4eiKtRvHkP2sVyOpGQ4zVNUhW2r9tClb3tWzFnPwaSj1G0cxQ0DrqYgu5Cnuowh90Q+igKLZqziwI40/vPeoGp/DucC/aS4oApOjheSSCQSSe3gcdG8wMBAtm/fTuPGjalTpw5r1qyhdevWJCQkcPvtt5OamlpLpp4Z/2bRvPR9R5g8/GuyjubSrH1Dhn/wID99sZLZU5Y4Ctapmkr9xpFkFJZTXOhccyW6Xh0OFZbaA33tgwJato6lzFsjOSXD4fxp2jiKxJJcSootKPaPsKLppNXXVkDP0GzrKFbbT9X+s1LlCMzl4JWtu2xVhYT4UrI/B4Hi8Dj5+3rx05L/uk3Z/uO79bw/4hunsZEfPcSExz53mdu+e0v8ArxYO28rmllDt+p0vLEdzS6P49vxv2Cc1J9pTtoUQiKDT//mn0MKcgp5uMUzFGQXYugGqqbi7efF1N2Tiagnay9JJBLJmVCrRfP8/f0pK7N9CcfGxrJ//37HuczMTE+Xu6ho0CyWSb+9wFfb3mL0tKH4B/py75M9aXpZZcCrt6+Zlz4e7CJkADIzCmzeEE2trB2jKpSVWPlg/AAG9O9A56viue/Ojkwedy9lwhYzU7XOjGGyZTVZ/BV0H5snxuqvYGhKpZelCoaP6lLbRgB1VLNNyIDjmqKSctb9udfts3/5+s8uY9PH/eJ27qH9x1g7bytg92oI2LQogf0J6ShuhFJBbrHbdWqKwtwiFnz6B3PemcfeLfv/+YKTCKwTwHvLx9L0inh8AnyIa12Pd5a84hAyum5QlFfsUldIIpFIJDWDx9tMnTt3Zu3atbRq1Yq+ffvy3HPPsXPnTn766Sc6d+5cGzZe0Gxdu499u46AyfZWl5TqzJqyDJNZc9mG8A/wwhHmW8V74uvvzaZdacxasY2ycp0NBw7RvGUMPj5mCvQyDHtcb4WwUX1VdMOg6j6T8AZhsR042hkooKkqVh9bwTxU21x0Kvs9ncTxI7luxwvzXAXHyYHMlY/mPgYmon6o05aNoiqERgUT3bD2soJyT+Txfx1H2ZpbqrYU9Be/Hsb1A7t6tE7D1vWZsvFtl/EFny7h0+e+orzUQmyTaF776Xkatr74srkkEonkXOKxZ2bSpEl06tQJgLFjx9KrVy/mzJlDXFwcU6dOrXEDL3Q+H7eg0nNif61amMDdD7t+Wd75SHe3AcSRscGM+t8CSqw6hqZQbLUy6sMFhIb6oXspWAIVyoNs3hjDBBZhYGhg9QKrt81bYyi2eJqT1/ZWFDBV8drYj0tNzmKm4qhDl8Zun9Ps5aqL/QJ9qBPp6hq8fcgNLh4YRVHoPagr9ZtXxuQIQ9D/6T5u164pvnv7F04cykIIgaEbCCF4f+hnGIbxzxf/A38t28mHT31JeakFgGMpGYy6eTzlZZazXlsikUgklVRLzHz44YeUltp675hMJtq2tXVC9vPz4+OPP2bHjh389NNPsnCeEGxe8Tc/f7GCA7sPAVBS5L4X0YBHu/J/L99Go5axNG9Xn1feH8gdAzrhH+BtyzqiUkCUYtg8JWqFB0XBKgTZxaUY3jhlHOnetlgZwwdb0LAKRoWg8QKrr4LVG6w+ttiaQsPi6O1UsQaA4as5Wig4nk+F8lMEtfa+r4vL2B2PX8en616jcdv6mL1M+Af78tS7A7nzqd48+9EjaCZboLOqqQyb/CCJm/ZzcN9RpzW+eu0HSgpLXdauKSqETFVKi8ocfaXOhr+W7nQ8I9iynDIPZXM46ehprpJIJJILh+KCEtITD1NSVHv/TleHav3K++yzzzJgwAB8fHyIj4/n6NGjREZG1rZtFxSGYfDMze+SvPOQY6zfkOto0CSKnZsOOM01e2mUWwz+XJnI/gO2TtOrVybSoVtznnyqJxMm/+4oVNeiSQxe4T5ObQ4AUO3ZSm7Spw3zSeOAMAMWQANR8f0qwGoSmLFtOQn7eooATVHArGJUpE8pAgwodBPrA/DQi7exY10S6XttX9Qtroznzid7Yjab+GjVKy7ze91/LR1vasex1BNExYUTEh7EJ899jcnkvP1WXmoh42AWcS3rur3v2dLk8nj+/GGD41hVFUJjQ/EP9jvrtf2CfN3GyfgHnf3aEolEcq5ZPGMFk4d+htWi4+3nxYtfP821/TqdE1uq5ZmJjY3lxx9/JC0tDSEEhw4dIj093e3rUuXbib87CRmAnz9fgV+At8tck5eZyeMWsGNrqmNs5eJdfPXpcqbPWlu5BaMoJO4/Rkl+ma0Hk7nyJRQI8fd1a4uqKQjF7qGx92tyFKg56bvVUEDX7L2dzAqGl2K7h0XHUEBoKmgKQlXBpBIc4v6eM975lYMHToCmgaaRmJDO3I9O34MpOCyQ5lc2IiTcthUVHR/p6NDteK/MGuF1Q0+7ztlw13O30OHm9o5j/xB/xv74fI3Utrnp4esICgtEM6m2DDAFej7QlcgG4We9tkQikZxLUnamMfGxTxy/fJYVlzNuwPscS834hytrh2p5Zl5++WWGDRvG//3f/6EoCh06dHCZI4RAURR0/dKsrbF78wG340dSTjjqzgCgKJQUl/PXxgMu/ZM2rEvieE6B0/WapmIptFTGu9jdMYYZwoL8SM7OccxVsImXYH9vMoxShGZf34AAiwld0VGriBkBRPj7UFBQ6hyroykU5pSAopzs9GHjhgPEx7t65db8ut2Rfl6x+J+/bmfg8OrXHur7+PWsnbeZnWv22h9V4ekpj+Af5F5A1QRmLzNvzn+R/QmpFOeX0LhdHP7B/jWydmh0CB9vfovv351PzvE8WnZuyh3D+tTI2hKJRHIu2bMhyfnffGy1tZL+SiG64b+/c1MtMTNkyBDuu+8+0tLSuOyyy1i6dClhYbJ+RlUi67n3HjRvV59D6TmO7QZVU4lrEklGcfnJO0GobrwBQgi8fcxuWyVoZg1LECgVHSVUW1zLcVECZir9bgYUYiU8zJuCgnJb3RlA94IwvwAKFNeto3LdcKk9A1BU7H5f1FQRpOuwU3gcuOvlbebt315k06IEck/k06JDYxq1beDRGmeCoig0uTy+VtaOqBfGUx88XCtrSyQSybkiOMJ93Zfg8MB/2RIb1f62CQwMpGXLlkybNo2WLVsSE+O+EuylypCx/Vnz6zangN8W7eP4vzfvoqCgnI0rbE0owyKDeGny/TwzdMbJ7ZMwmTSuvbopa9YlOcY1k0qjVlFwIMXlnjmlJehmoCII2ABFxxb4W1WJKIAJcovLEX5VzulwMCcPd6gBJkROuUv7gi5dmrqdHxwWQOaRSi8RAkIiPO9LZDKbuPpW960OJBKJRHJ+0KnvFbS5tgW71+1F01R0q06nvlfS5toW58Qej3511jSNJ554gj179tSWPRcsAUG+TJo/gjeHTCc/p5C45jG8MfMJvL3N3DLoavKKyygpKqP7jW2JiQvDQCDUyu0noSoIRWH9rjR0s4JiDx0pVQVbdqW77c20q/iE7RN07AXZ11RxFTOAsM91nNIg38+KX7bTNACuaN+Arcf3IqzCEUzsH+RDs2buRWz6vmMu3qO92y/dGCqJRCK5mDGZTUz4Ywy/frqEI/uPEdeqHjc/3hNV9bjiS83Y4+kFbdu25cCBA8TH145b/kIlN7OAlx74jLycIgzdYPdfabz5xHTufKoXY576GhAIAanJyyjIL6FjlyasWva3I25GUaBJyxh2bUwEk+rkEUndfwI9ANQybAXwFFuatUUDcVIRPAVhG6vaTlvY5lWNgbEPY/VS8Pc3UVRkqRRMCjQNC2Mz9ho0dgqLy0lJPUHTJlEuz69bXWOlykrKXcbOJUII9mxI4njaCRq2rk/8v7CFJZFIJBcrXj5e9B/e91ybAZyBmBk3bhzPP/88b7zxBldeeSX+/s7BkrXd/+h8ZeX8v8jNLnQERAlDsHX1XnQfb5f03PnfbWT2ihfJyyvhL3vads8+l3HjHe35eWOiS6yKj5cZVAvGSXGwQhFO7hTF7nYRqqgMOLadcKkZY18BUAis40e+Nc/h9jGbVYQhUFXFKUgZoKjYto2mW3UsFh0fXy8AAuv4k5flXPE3qv75E1clhOCDJ7/kty+X2QYUGPrOIO48T/6PKJFIJJIzx2MxU9EZ+7bbbnNKX73Us5lKS8pxKAsFh5g4djjHpXGk1aKTkZHH3sOZWP1tH8GO5GM8WCcAXx8TpaVWJ89Mj2ubc2DLNpd7Cg3HdpRtabuQ0mwipeKcoQinJHwneaLAwdx88FIcostAkK9ZMQzhFKTs62OmcaNIZny0jO+nr0HXDVq1q8+Y9+7l8TF38N5w50aTj718+z++b/8WmxdtrxQyAAI+G/k1XW69ktjG0efOsIucQ0lH2fz7NszeZq7t35GQiPO3YahEIrlw8VjMrFixojbsuOC5rHMTu2ixf/WrKt4+JkzeZjCpULGPKATCqvPe+787pUQfO5bL1OmreX/sPTz72lyKS2wl7+/o045hA7uRVJzLn39XBgF3b9OIBQXJtu2kqhnRJhBehm3zyWK3xSQQmsBQVRQDqiZcGxVtuKnsmSSAvw9mYGgKii4cY8W6ld9+2srsL1c77rd312HGjfyeidMexdvPzG/frEfTFPo/fh3tuzavqbf3rElPPOLoveRA2L5s/20xI4Tgx/d/Ze7EBVjKLPS492qemDgYLx+vf9WO2mb7il28dPM4rBYdIQRfvTqHD9ePIybedZtSIpFIzgaPxUz37t1rw44LnsTt6ThH10JZqRWrxerab8lsIj0922kLRzcEB1JO0KZ5LFd2bczWPQcJ9POmX9/LyS0pZVPGYSx+lYV9Nx0/jBEkMLwMW5E9Ydt2Uqz2AGBNIMzOW0SGD6gWwH5fwwzqKcJaDh7JthfLq6KVFIWlq/5GUSq9OLpusGtbOodTMpj+1q8cSbV1Ts85UcD4WU8SVHrEiAEAACAASURBVMd9zRZdN1g+Zz0H9x2lbuMoet53tVPp/5qmbtNol5oIAHXPgVfm9y+X8dnzMx3Hv362BN2qM+KzJ/51W2qT94d+hm7RHe97flYB00bPZvSs4efYMolEcrHhsZhZvXr1ac9369btjI25kNm2NsntuKXMgqgaeGsXNjExwaSmZjoEjaoq1K9Xh9tHfsmRzHwEkF1YwoAxX/P4/VeTZylH+FSum1NeBiYB5srtJQQIk60fgeJloJoMW7yMVcEo1cBeEdiBsFUArpopVfHTWqY72VuBn6+XrbWCUXlPk1njo5d/4NjBbMe8lMSjfP76Lzz//v0u74kQgvEPfcLa+VtRTSqG1WDt/K2MnfN0rUXCd+57BT0f6MrSb/50jD0y7j7qNv33Swwsm/Wn07EwBMtnr73oxMyJQ1lOgt3QDY4eOH4OLZJIJBcrHouZHj16uIxVjZ25VGNmgkPd11SxKqpLBpEC9Ot/FRPf+90hJARwRZdGLJiV4tT3UQDTF2xChOHk9RFU0RQnlek1eRtg1lEqdrbMtj4GotBkn1aR/SRQTHZPjlG5rlDA19eLQsqqLosAet/YlsSNqfZtM5v1nbo3Z9fiBAy9MoDH0A32JbhPzd65dh9r52+1zbO3L9j0xw7+Wr6bq3q2dXvN2aIoCv+d9iS9HuxORlom8W3q0+wq9x3Aaxuzl8k5xx5bpeeLjfg2DUjeluL4e6FqKs2uaHSOrZJIJBcjHv8LmpOT4/TKyMhg0aJFdOjQgT/++KM2bLwguG3wNc6FWgD/EF/qxodjYPOAGKpi+/5SFb6btwWLv4YlwP7yVZn921a3VXdLLVZ7J+3K/1DtlX+Vk7dOBMKso5oEimp7qZpAMQtHewPHGoAwGY4+TlaTrbu2UMGsKxgVYsj+MjRYtnS3o88QigKKwl+bDhAWHWwbt6NqKpGxddy+Vym7Drod378j7dRvcA2gKArtr2vDjQ/1OGdCBuDW/9zo0gj0jv+7+NocvDBzGHWiKgN+G7dryCPjB55DiyQSycWKx56Z4GDXbIRevXrh7e3NiBEj2Lp1a40YdqHRrG19Rn04iMmjv6ekoIzYuHBe/mQwW7akkLDrEGiVAcCNG0ex+3iuLV3a7tUyEORmFtkK2+HsbBG+tnRrw4zjN3rVItAMBR0DxWSgKAJDV0ERaJpNfpjsP3VdRdPA0AyEN7YKwQKwAoZqEzD2tQW2cR/VhDArnOxnKy4pc0nXLikuZ8i4+3j14c/BoiMAH18vHhvjPpvJMAy347ruGtNyMXLNHR15Ze5z/PTBQspLLXS/uwt3PXfruTarxmnQoi7T9nzAvi37MXmZaNGxCSazx//kSCQSyT9SY/+yREREsHfv3ppa7oLEP9iX4MgQdKWA4JgQfPy8yS8urxQyAIpCYZnFSchUjBtCoHuDVqVVkqHZUrAdjSYrxs2AtxVToAXNZPeyCNDLVRRV4G22OuaaNIMyiwZe2IQM2FSLF5gslUKm8gIwV2TWnBQzE9c4itTthx1lbFRVIaZeKO2vbcbHi0eyYckuNE3l2pvbEXEKz0yD5rFux+Nb13M7fjqOHDjO9pV/4+PrRedbrsAv0BchBMtmryVpawqhMXW4ZcgNtdqs8kzoemdnut7Z+VybUev4Bfpy+XVtzrUZEonkIsdjMbNjxw6nYyEER48e5e2336Zdu3Y1ZtiFRsq+Y7z65EwMXSCEYO+OQ4x6ZCrmeiEuDSWPHM4hKD6Y3PwSpzUCg305LgrRfSpbCKAotqDdqttJFYt5C4eQqdAcmpeB2WR1GhMCvEw65ap9nYq1dDA0xWV7TADFwk0WFtDr5naUZhSxYbVNuAbX8eeVCfcAUK9RJHcNvd5pvmEYLJi2ip3rkwiq489dT/Xi8u4taXxZA/bvqIypadA8xuN4mW0rdjOm33tYymzPG90wgg9WvcpXb/zIb1+uQDNrCN1g6bd/8uGfr+Eb4PMPK0okEonkQsRjMXP55Zc7peZW0LlzZ6ZNm1Zjhl1obF61F2GIysJzusHxwzmOqnYnb6Bc3rYBK9fudcok6tqpKUkbttnaDlTREdGBARygwOWeqq+zaLGHsKAqAkUBk2q7t7Ui+EWzbUlVzBUaiHLFRWwpQKZaioFtDiqgg4+m0aJxFMqAjuTml1BUXErXHi2p3zD8lO/Lx6PmsHDGahRFQVEVVv2yhbd+eIZjaSccf48UBTIOZZOfVUBYjHtvjjvee/xzrJbKjbCM/2/vvuOrKu8Hjn+ec85dmZCQkABhL0UQBURwF0RcrcU6qAOKq2oVnLhaQEHQ1lnrrLMO1J9CFbUIKii1ogIRZCNhj7CykzvOeX5/3JF7k4uCRCHx+369bsk999xznidJvd884/vduIsnbn2ZOa9/AYAdeW3jyq3MfmUeZ181eJ+vLYQQovHY72CmqCixerNhGOTk5OD1/rL/6rVcZr2ABSDkODiWQluRSMPWqJDDnEUrCbnBiHwW2xa8/79lKA/ouNwvGmhfkMV328rCCfKix1V4US+E6zEppXHCc1cYSpPmDWAakcDKgQq/OyGQibwRw63Rkd1MsV1LCvx2ALxxJ1tQ7dh8/OkyHpv0fjj5n4YNL86jvLyGP904tF7fy0sqee+F8FZ+rTXa1tRUBZj64PtUltaOSmkNNZV+Cj9dwaALBuzT99u2HXZu3p1wzLEdtq6pv/XXMBWlO8v26bpCCCEan/0OZtq1a/dTtKPRO/H0nrzy+EdUVUQWvCjo1quAZaUV6PgFrwZol0FQKXCB7a6dC9pTWUMoRYEnPKCjVXhn0dKNxdipDipSoiCcyE7jQeNyhfC4whGR40BVwEW6N4iKm5ZSClLdQcqSbJUyk6zJUSGwtmtCdaeZlGLqu1+jiEszo+HdaQu4+vohmFbi5riaSj91KQXBYPLt+y63xYaVW3j1vnfYs6OMIwZ05cKbzwpvZa7XboOsvGbsLi6trUOlFAWHtWbjqm1UV1THDtshh8MHdE16TyGEiLd9/Q5ev286e4pLOax/F8694ayfNKGnaBj7vDV7/vz5fPDBBwnHXnrpJTp06EBubi5XXnklfn/9D69fCg04lgmGCi/uNQwcw0Cbqk7RRxVOEBP5OrrtGaUwo8eNcFkCTEBFdv94NTrVwUl30Knh5ym+QCyQiV461RNEKafu2mJMw6F2k3X0uMZtmthucDy1DzsFnKCuP9KkYJffT50ZRhytw2UR6sjOb0ZB5zyMuAXQdshh8AUDaN25Zey4YRrktWtBmy55jD7lbj6d9hXfzF3Oq/e9w/2XP7XX73kwFJfYL64kwzGnH5nQxhatm3PEQAlmhBDfb9fWPVzbbyzv/3M2/532Jf+87WXuH/nYwW6W2Af7HMyMHz8+YfHvkiVLuOyyyxg8eDC33XYb7777LpMnT/5JGtkYfPrht1TXBHHcJtpj4bgMVi7dHC7WmGQhbcsW6YTcEPJFHi7o0SkPO/IHQHzYEUh3wmNokbwxGDr8XDkkBieRtTB1gpbo15aVGHAopWmVkgYWOMrBMR0cIzzfZJiqXs4bDXRsmx0OXhThPDSGYsBxXXC56v/lYhgGE165hvaHhXcvuTwWV074HSed05cH/nM7p/7+OLr37cigCwfwwId38Nm0r/BXB2NJ1rTWfDb9a3Zu2VPv2rbtUL67ot7xLWuLmfPGFwnHdm3Zw+xX5tU7Vwgh4v3nuY8p31OJHXLCU+MaPn51HsUbdhzspokfsM/TTIWFhdxzzz2x51OnTqV///4888wzABQUFDBu3DjGjx/f4I1sDHZsL02oYYSOVKo2QTvguCIjB7YGG9p3zGHTt5WxhSraBa3bZuGs2YYOxU0zmRCwApGBh8g1Iv+TPBLVpBh+AtodTeqLAlJdfry+8KiK44QXGBuGBndVOM+MVbtmxnEc0nPS2L25MiH7r1YwoE9nNs3fQlVVeGGPA5w0ZO9bb/Pb5/CPj+6kptKPy+uKZbptlpPBDY/9IeHcQE2AJHEf/qr6I36maVDQrRWb12yrzTBrKHILslla51zDNNm1tWSvbRRCCIDq8uqEjPZRVeU1B6E1Yn/s88jMnj17aNmyttrt3LlzGTq0dtFnv3792LgxeWbXX4a4rLgQGyZxTIXtM9CRRcCO18TxGXy9elO9LdHzV2xEK7B9EEoHOzVSBdtInmTOiK2LqR2JsQwHj2XTwldFpruGTLefHG8lPiuIaWgyvH5apFWRnVqFzxVkd01FLFFf7YWhukU4eHGMSP2mSGA2+51vYoFM1H1TZgDhIGjLhl1s37S73m43b6onIWV/dUUNL0yaxsQRT/Dc3W9TWVbNMUN7Y8eVRDBMg4Ku+eR1yE3a/9tfuIb0ZrWFLLsf05lR95yP2+siVhNCgR2y6dpH0ugLIb5f39N6Y4dqp+4N0yC3bQtad/n5C9KK/bPPIzMtW7akqKiIgoICAoEACxcuZMKECbHXy8vLcblc33OFpq1Fy4ykW9ZtU1F38YlW4A+EIqUNIsccKK2sxs4htlaGyOsuv0XQEw0gaov6uE0HDIeQY6J1eF2MaWjcyibTqiHDF/5rojLkYU/AR4orgGXUrqfxuUKU1wSSTCdpqlJC4W3ZcXdFwa5NpfX6boccNq3fwf03TmX1t5sB6D2gM39+7BJS0jz1zg8GQow95wHWFK4PbwtXiq9mLeGRWXdwy1NX8NTtr1Gxp5JufTpw23N/3Gvdok692vL8kr+yetE63D4X3fp0RBmK/M55rF+2KdIZjcvnptORbZNeQwghonqfcgQ3PHUVj9/wPP6qAK275DH+7VtxuX+5n22NxT4HM0OHDuW2227jvvvuY/r06aSkpHDCCSfEXl+8eDGdOh28ejcH24mnHsGr/5xLdVUAx9EYhqLL4a1YXFOBHaoTzShFyLDRbrN2bMyGGiMUWQsTd64Jqkahsmx0qDa6UJZNS69mT8iODYsqNB4jSJa3kubu2mHRZu5qDEIUV6cnTONoDT5fgN1osDTajExvBcNXczzhdildOzJTd/Vv9Nk/p7zHd8u3xo4vnv8dz/71fa6b8Nt636tvPl3BqoXr4q6hKVq6ia8/+pZBFw5k0IUDcRxnnypop2am0Pvkw2PPi77dWBvIACiFHQzxyRtfcN6YM37wekKIX7YzrhjM0Mt+hb86gC/1l51ypDHZ52Bm4sSJDBs2jJNOOom0tDRefPFF3G537PXnnnuOIUOG/CSNbAxy8zJ56PnLefbRWRRvK6X7EW24fPSpnHP10wRDtVMn0Q9/x5NYTRsD/PEjMnFCLgfT46DdTiwzsFIQ0FW0TAkQdAwcbWAZNobSNHdFA5naFS8ZrkBku3b8DcJ1nLTXAVe4cRrABbn42Gr6E+pBqRA0K8hgy5pdtTuyNChHs2zB+sSq2Y5myVdrk36vqsqr93r8iw8KefqOqZTuquCIAV0Y8/eRNM+tXw9sb4KBYP2DShEMhFi1cC2PXf8829ftpFPvdoz+x2W0bJezz9f+Pjs37+KJG15g7ZINtOmSzx8fHEHrzvkNcm0hxM/LMAwJZBqZfQ5mcnJy+OyzzygtLSUtLQ3TTNy98uabb5KWltbgDWxM2nXM5e6HL0o4ZpsarRKrETgWhKOA+P3TSeMYQGO5FQEip8edZJlOZHu1A9RdV1Mnp29Cde3aEghGyBcOZOLeog2ocYWwDWpHjlRku3iAxFpTaLSpsOsUnwQI1IQDC9t22LW1hNRMH6npPg47phMenwu/PxROWKMULpeJN8XDhN//PRxUac1Xs5bw5/Me5tFP/rxPozQA7XsUkNc+h+KNu3BsJ5x5WCm6Ht2BW06diL/Kj2NrFn78LbecOpGnC+/Hm1J/Kmx/VFfWcONJ4yjesAM75LBlzTZWfLmGZ5c+REZ2+gFdWwghxA/b5wXAUZmZmfUCGYCsrKyEkRoRpozw4l/bBbYrkpzOCEcl9cILJzoIEv+KonlWtMw1Ce+wVLKFwToyApN4dQNNa98umnsqSLf8ZLhqyPaUkxZZPKxMB+WyIxW4HSr9AXRk8W/8IuCyijqr+lU0CqsfzCjDYN2KLYw6dhwj+v2Z87rdwkv3vUuLVs255PbfhIMzI7wt6/e3nMXyL7/DMFRCSYg1hevZtm7nD32bY9weF1NmjKV7v064PC5yC7IZ//oYtqzZRk1FDU6kMrcTcti2bgcrvlyzz9femyWfLmfr2u3YkRE4x3YoKS5l/nsLD/jaQgghfliDVc0WYRs27GLnjnLatW9BdnYaaWleqmqCQDhvS3TJiXYpVCgxBHB7TSo8AUx/bYzpmA7lvnJc2iEYis5DaVyWTTAEHkvHjckofEaQNFVNpfbhULuWxqdqyPK4aW1VxGaIQo6iWAVRrlQMK9o2jTKBEju8TkbFbonWkJLjo3xXVeI0E4r0zBSqymu3UCsFzbJSGXfJE+yMbIvWWvPaw/+heU4G/7rvndgWdoXi1QfeY8iFyUsZ1M0s/EPyO+Ty0Ed/Tjg24+nZSc/d1xGf75OQ4TmOs5fjQgghGtaB/5f8JzR+/PjYNEH0kZd3aG6R01rz+D9m84cRT3PLza/x+wv/wdw5ywkqB9tF7ShHZIQGU+G4IsUeo+UETMIlDjIcQmk2oXQbJ0Vj2zYp3gAZKTWk+WrISKkhxRNAa0Wuu4wcVznZrkry3SWkWTW09+6ktXsPKcqPT/nJd5XS0VOMzwomri1WmmbeGoxISBtLpKugxgrWn/dSkN8xu3aaKTIq06p1c4b/8Ve1h4zwqNOQYX0o3rQ7YS2NaRn874NC/NVBdGRqSmtNMBAipyC7NkNy5N8jBnYltyD7gH8+A87uQ2pmakLW4TZd8+l+zIEvWj/i+O5k5TdPuHZqZgp9T+t9wNcWQgjxww75kZkePXowe3btX9XJprgOBf/7fA1v/d9XseehkMO9k96lqoMHx6XQkXUpmvDyFUfpcLAQ150ax659bkVPDp9vKMDUxJezbOauItddAWiMSKHJoLawlCbXVU6uq7bSdjBUO5gSz2PWXzCrlCagQ5i4awOayL/L126NnhT7d/PWEn51ztGkpHv55N1FmKbB0POPoXuvAh698V8Jw09aQ3rz2tww8eyQjW1HOx2+xZ4dZTi2k7Q2SsAf5Pnx/8e8f3+NL9XD+TeexeDhA5NeOzu/OQ9+Mo4nbn6J7et20OnIdlzz0Ajc3gOfGk3NTOWBORN48IonWfftBlp1zmPMk1fuVwVwIYQQP94hH8xYlnXIjsbEW7NmO6ZpJCR9C4VsQnW2MkfztTiGxkChI6drE7QRCXCUBiO8c0nbCsN2AfWDjpa+crxGAI8KoRQ4WlHpeFBoNLXlCDThbL9ag8/wk2YGcLSiNOTDVrV5a+Ijl72kdsHek2S3UKSvJwztyfGnhbMBR7eLX3Ddabz+6ExMy0BryGieyqg/n8PWou2s+WYDWodHctp1b0XZrnJMy4itPdEaNn9XzLb1O2ndqWW9ez5+88vM/NdnsRGev131DN4UN8f/pm/SNrbv0Yb7PrgjeccOUJsu+Tw4Z8IPnyiEEKLBHfLBzOrVq2nVqhUej4f+/ftz77330rHj3rO5+v3+hIKXZWVlP0czyc3NSAhkonSd0ZBYaGMoHIOEgCM8UmODpWtz41ng02nYugrQWIYm5ITnglq4K/Eaodi1FZpUw0+6qiSAhxZmFQrNLseHzwyQZZWT46qMrdtpblWyPZCGYTkYOFiWg20rbMcgw+2jtM4mKK2gZVoqm3cmZgCG8LqRh/8yjY9nFGIYijMv7M+oG05jxG1n0757KxZ/voqM5qn8+rKTyWqZyX3TbuL1Rz5g4+pttO7YkgvGDOX//v5hvSKWAB5f/dETx3GY/ep/Y4EMhEdyZr/6370GM0IIIZqmQzqY6d+/Py+99BJdu3Zl+/btTJw4kYEDB7J06VKys5Ovo5g8eXJCZuKfSnlJFZvX7aRFXiYt8jIZNLgHM2cuYfE3GzAMheNoLh1xPP/4YgHYdfYWGeFH3c1IjqHRlkbFjYoopQkpRarbT4Y7ECv7VBZw4zWCxOaiiC5h0TQ3a2hplcRmgvJ1BaW2RQurInJe+AUTh5aucnyeAC6rtjG2AzWA40pHxSXN0wp6HNuWzesSCz+eNrgHzz/0ITOnLYgFF289P4+UVA8XXf0rTv5tX07+bWKA4UvzMvLOxIR6p11yPP9+ajY1VYHYtuoTzulLi1Z7ma6pV0Nlr/vbhRBCNGGH9ALg008/nXPPPZeePXsyePBg3nvvPQBefPHFvb7n9ttvp7S0NPb4KepF/XfmEi4aeA83/O7vXHLCRF5/4mNcLpMevdvgWIqQAsNn0eWwfGx07eJfFQ0KwtuRtRnZ9hz92uskfj5HFuNWOeVkevyRLdfhACfT48d2miVpnaaFVZOYwkZBmopmCk78tDeVTghkILy+1zFC4Ta6wPFEcsyY0KFbSyaN+y2HdcunbZsshv/uGG6+fiifzvw2HMjE3eKzD7/93u/jrm0lfPu/1eyIVMXOa9uCRz++i1+d158+v+rBJXf8hlufugyAbz9fxX1XPM29I59g3r+/xjAMhlx8fEJROK01Qy4+Iem9hBBCNF2H9MhMXampqfTs2ZPVq1fv9RyPx4PHc2BJ0L7P7uIypox5hVAwUoxMwwsPfAApLl6e+gWY4Q/XoOMwftK/cVoZ4YrZ0V3VDhAKBzZQOwqjNYSi00t1eL1+6iXBA0qCNilWfFYahUeFkkaoCo2JjY1B/LUsZdc7N7yORcffKvbvxj2lDD+9N8cd2yXhPaGQXRsaa8LFKqvqT0dFvf/ipzx262toR6OU4qqJ5/GbK39Fm8553PzEZQnnLpqzjDt++0Cs9tWn077iuocu5er7LyItM4XPpn+FN9XDBTeexcCzjt7rPYUQQjRNh/TITF1+v5/ly5eTn3/w0sSvW7WtNpCJMAxF4fzvME0jVr9aA4FApNZSfJkCBbjAMTWON1wh2/aFRz8MO/mPw9xb1Wxtk27U4FEh3CpEiqrBqwKxH6qFwhU3BZVu1mDEhT4uQniSLCxWCnRwL4FVkl1FsX7Ff61JmC6Lt2HVVh675bWErdlP3vUG3y1JPor2xkPvox2NYzux97x6/zvUVNTw3eINbFu3k02rt7Fu2aZ6hT6FEEI0fYd0MHPzzTczd+5cioqKmD9/Pr/73e8oKytjxIgRB61NWbkZ9Y45jiarZQYhxwmPzJiRaSTActX5Fkc/9OvWYTLANAySZfr1WDYKB+JCJYWDA3hUEJ8RJMUI4jZsMoxqfApamT5aWSnkWym0MVNINxQGDplGFZlmJc3MStJNP24jGLl24j31Hndte+MeGakpSb8vHk+dqrIKUlKTj5CtXZok6NDsNZgp2VG/UndFaRX3X/E0i+YsC+ep8YeY+rcZzPjnJ0mv8UMCNQHKdldIMCSEEI3QIR3MbNq0ieHDh9OtWzeGDRuG2+3miy++oF27dgetTe275nHG748FwgnglIIefTtgZ3gSE7lE1sWoZItS4wOEuGNaAYYGM4ThCmFYNhg2KAO3YWMpB1OFyxi4DZvuKVtpZZXS0iwl1yyllbWbLLOKbDMFM+7iCsgyfXiUH8uwsZTGVA6WCrLDn4bHsnEZQUwVwlIhPGYI917y+aS5w0FLSWkVW7eXxnZwDfnt0fXW4w45p0/SazTPqR8QAjTLSWfeuwu59MixnNPmWu449yF2bStJWvfJMBQLPl6akJAPYP5/CpNee2+01jx752ucnX4p5+ZcxtV9b6N4w76XTxBCCHHwHdJrZqZOnXqwm5DUnyYMo/eALhSt2EJOfnMGD+vDuSOeqH+iUthVQbSnNmZUcV/ouFqT0XUqpsupzcSLxtCwo8pDQZaDiqT+12hMpWnn2Y2pHDIMO3YNm3A1biNujkcphaMd0owASgdiZQQMA6otC6UgPHukY9fxpWvK4+KwaDiRl5HK/X+fyXsfLgagoHVz7h//Oy65ZhAAs/69CNNUnH3hsfzmouTlCYL+5LlqipZu5IV7podrU2ko/HQFfz7/EawkU1u27eDyWPjj1uUYhiIlff8q3X7w7MdMnTK9tg1LNjD+3L/x+FdT9us6QgghDp5DOpg5VCmlOOH0Xpxweq/YsVCo/kJaIJyULm72KJp3JppXJjbmoED7ghhG7Vbr6JkaRarlDy/djQRBDmCio+uNY0wcFFakKHf4RR0Jggx05P46dp0sV3WS/oF2hQtH6cjzaEM/+WQls+N2KW3eWsKf7/03zz46gjPOO4acvEwMw+DYkw9L2GkUr6q8JunxJZ+vxjAVdqi20OTabzdx/Fm9Wbdsc2wUxjANOvQooN+pPXn53tpARAPnXD0k6bX3ZtHH38a20kfvuXphEZVlVaRmJJ9SE0IIcWg5pKeZGpM2rbOSHjd9kWDGpHadTLSMgZH40NH0wHGi8YChar+Oli9ytEpIMhcd0dGohEBCKRUZ0QEbExuLEBYhDOy6Wf0IBznaFRk90RBbrgNsKNqZMJ3kOJo1RcV8u3AdV57zCH+/5x0emTCdq377CJv2Uu36sH4dcXmsWBuVAstl0rJti6RJ84bfcjZtu9Uu+m6Wk87NT1zGzs27QGt05OGEbEqK66+v+T6pmSmoOnUeTMtImqhPCCHEoUmCmQZyxGGtw1/E71pSYEPimt4keWRij0B0CCfxE91lONQNORThfDUacDTYkcBG6/BYTvxC1ujXNia6zqpjy6gfPShFJPlNOGFe/MPtcYV3FNm1D5dl8OSU9/BX1075lJdW89T97yX9XuW0zmLcv64hNcMHhBPo3fXCVZxz1SBcbitWsFEZimOG9KTjEQVMfPtGfnfdafz6ykFMevsmWnduyayX54X7Fnkopfjw5c+S3nNvho0+A5fHhWkZsftedOcwLJcMWgohRGMh/8VuINt3lEVCw8QFv8k3Ve+FnXzRbTOPP+lxv6PA9+80LAAAIABJREFUNNBxCV5MHGzHwTTMWBCjlKI6GCK8WbtWJB0MthPZH+UY4Xw0hoOudFMvztFQXl5Vr1OhgM2GjcUJoypaa9Ys27LXrvY55XBeX/U3ynZXkt48FTMSSDz4n7H8a/I77N5eSs/junLp7b9h+/qd3DB4InuKy0DBzH99yqRpNyW97v7uRmrbvTWPfzWF6Y/9h6qyKo4e3IvBknhPCCEaFQlmGkjL3AySJmaJrvKNLoX53s9aFbcouPbEVHfy9ThWZEopno1BCCcykxUOEBxtY+MkLDgmcgsN1ARd2I4RaaLCUDZGVZ3prsi/G77bHR4KivZFRQOh+h0LBkL1jsUzDINmLdITjnXq2Zbxr/4p4diz496kdFdFrM3BmiCPjn6RwRcdz8yXPk3IV3PqRfsfiBR0a8V1fx+13+8TQghxaJBgpoH4/aHoHE+d9buqdggkPqOeHT6mnEjYYhDehk3iLifHAb/tEAhCNR6iUYSPSHmDhPuFvwjgoOwQ5ZFpqFTAMhWhoMKKW/yrFOwJegjaJlrXrlK2sfClJR9T0nGZj2v/1fgyfJRHA46IFnmZAGxcs42Fn64kOy+TY0/tieUyWb9yCw+NfomNq7fSumNLxjx0CR2PKEh6zy1rixO2YDuOpnjDLh77bDyp6T7m/ftrvCluLrj5LCkyKYQQv0ASzDSQ4h2lsYWysQGY+LQz8VMwgAoSXgQcPc0B3OFndgi0E56uUoamKqio1t7Iwl7QWlGtvFTZLlLMUO326cg9HNthLeG1M1F5wHY7kyyzEi9BNIoy28vKqpaRQCa+wRo7JRIohSKFJk0wDDCVwo4bD4rEMgz5TW/eeiZuvYqCs87vz7RnPubpCbU7jnJaNeOhd27kll//jYqSKhzbYc3iDdz6mwd45n930zxJUsJOPQso+nZjwm6mdoe1xu1xceXk4Vw5efj3/3CEEEI0abIAuIF43a5kyXsjuWEIj8TYgBNZ72uC0irhQcAkFDDQIRMcE2wTHTRp3awSlErYzQSKhVXtqdEW24IZbAo0p9T2Ua69bCVxWYsGtkWiq912GuuDLdgUyqLS8VLt1N+1o7UipMGqBisIZghMP1ADaXXyuETXLvsr/OG+Rh+OZs/OMp6+ezrELdLdsXkPU659gbKd5TghG5zwLqSKkkoWzV2e9Ht72T3n19/N9NTlADiOw45NuynbVb4PPyUhhBBNkYzMNJDcFhlJSkFCG08qWyqqYiMzGnCs8BdGqHbERqtIoUmnfmrgYMjE66o/7RPQFqv8+ZHikVBsZ5JpVtHSKE9MRhy5b7ntYb2/BTU6HMDkWGVoR8dGdOKDJbvUrPfLoTQcdWwH5n6wFBXZpqUNRcu8TD6avqhe+957bX54fU0dW4p2JgZ+ka+NOlukozKz07nr5Wv5v4c/IOAPcsaoUyjoms+OTbv587C/URQpg3DqJSdww+OXYdsOb/z1XVYtXEuLVs0Zfts55LTJTnptcegIBUN8+MIctny3jXaHFzDo4hMwDPl7SwjxwySYaSD5eZmxtSjxdpRVRSKW2okZI6gwQtT7QDccqLsJWwNb96ST5t0NkHCPVMNfrwp2qe0joA08OAnZhTVQ5M8hoGt/5DtC6VT4XQRqLNze2sW6gRoTHTISfjmid8guyMRtK0LRKR9bc8bgnryxoH5dperK5LuwtJN8PY7lTv7ruG7ZJsaccjf+6nD18DlvfMGEN2/g1cnTWb9sc+y82S9/RpvOeSz9fCVf/qcQ7WgM0+C///6apxbeR7O9lFEQB59t29x51mQWzl6MaZnYQZv57y/gztdu2GvyRSGEiJI/expI/74dwrtq4qZUvC6TUCT7bpSKrHtBq3ojOcpJthsKKv0+KgJWLPZxgIqAhTLCU0KJFMV2eIdQtCkAxXYaAe0iPvDRWhHCJOR3UVXmpbrcTVWZh2CNi9BePkBWfrYO23Zi00taa1556b94kySZS8v0Jb1Gy4LkCQaryupnIwZ4Yfyb+KsDOHa4crZjO/zjppdY/uWahIXBWsP8DwqZ//6i2A4nx3Yo2VHGR6/OS3ptcWj48v1FLJy1GDTYkUXmc9/4H0s/X3mQWyaEaAwkmGkgjz82G8Nvo+xwrQFlawLlgcjuJV3voermxoskpdPREZvIQwE+T4DN5c1YviOHFTtasGJHDpvLm7HTn5qw1VprCGnFtkAaX1cXsCWYydZgBgurCigOpiWb8SGoI6uQtcKxTXQkWV6s7Ddx7bRh+4Y9Ce9XSmHbDkPP71fv2ueOPCEc0NSJi44+oXv9v7YVdD6ybdLv7Y7Ne+oELZo920tJSUtcv2OYBr60+rWZlFJUVyQvoSAODXu2lSQ9vnvrnqTHhRAingQzDWTliq3hAo8hjRl0MELhhb9mQGP6Na4KjbtCY1VpjKDGiH62xgU1VrVCVZlQY0BIQdCACpNg0EWN36Kqykt5hY+qKi/+oMWqipaUhGpHPxwU2wLNWFZdwNeVnXin9Cj+XXo0X1Z1ZGFFO3bUpIVvGcsUrCgJpNRPOqwUBBRGlcZVrnGXa6xyjeXXBLWTOJcWudigs4/C67FizzMyvJx0Ri/ufPoyvCme2OknnHUUv7/pDK5/6JKETL/XTBm+163Zhx3TKXYuhIOWbn06cvm9FwJgWiamZeDyWIwYdy5Zec1qz1egHU3fIb2SXVocIrr261Qv6DUtg85HdTg4DRJCNCqyZqaBhBPE1Z+a8WAQCtaOKigHzEBk8W91ZDEwYATDrykM8INRGakoYGlsRxHwu9C2Ecsr43dclNT42BVKpySUgqk0ASdcZtIfSYBXbYd3WHmtIJXay55gKkFtkmoFcLRiT8BHje2CKgNSIm3UQI3CrDFw11C7OBfQBvjSXFTsqTMd5GgenzCNQHUgnE4YqCip4ulJ73L7oxdz3xvX8fl/vqFFXjOGXjQQ0zQ4/dIT6H9aL7YW7SCvXQuy85vt9Xs76u7zWbdsE0vmhacc8jvmcvPTV5Bb0IKcNtnM/2ARbq+bMy47hTZd8pn8/u1MHP4IG1duITUjhev/Poru/Trv989U/Hw69+7A9f+4gseuexbHdrBcJrc8fy2tOuUd7KYJIRoBpfc3/3sjU1ZWRmZmJqWlpWRk/HQLQEdc/ASbNu2JS7EbXnVb3dqDTd062FDRinDilviDaGpyNWa1iq2zcQxNqHUNWhl1Rk8gI62c/gUb2FLejIBjkuWtItXtx1A2a0pbUhkKj4h4zCBdMotZX5mN27QTpqb2lHvZvjY3nJMmsu1JaUXGDgPvuvq/GnklULm7Cm1Fs/ppVEjT3B+goqQqnOWPcN8KOucxcsypTL78GUKRdRBHHt+Vu6deh9vj2q/vr+M4bFixBTto0/aw1rj2slg4XqAmgMvjkgWkjUjpzjKKN+ykZfscMrLSf/gNQogma38+v2VkpoGceOJhvPryf2sTr0TWyliRnRl1E+gpRxHLVRfd7BRSmHUGPQxHoWyFNut8IGuorPby302dCDkGClhfmk12agVprmoqQ7ULcv22xbryLPbU+MhKqcZj2WgNFX435TWecGI8UyWskUl1XDgqWK/WUUjbKEdjBBKPe31uKnbHZQB2HNwek/uvfi4WyAAs/u9qZjw3l14Du/DXK59m85rt5HfI4aYnL6d73057/f4ahkH7w9vs9fVk3F6pfN3YZLbIILOF7DoTQuwfWTPzI1VV1FC0bFOsZtAfLj+Jzp1yw4t7nXDiuHPP68cZJx5OrNRS5PM/KzMFHBXO1RLN8WKDoSK7neJ3HKGhJnkBSmVCyAlvzY7m5N1Vmcpufxp1c9WUBXz4a1zsqEhjS2kGW8oyKPP7CJS5Mf0qnJHYBhUCs0bhzfAkBDKGUqT63LRqnphPR0f6ZQeC9doXqPLjrwokHDNMxZrFGxh75hQ2rNhC0B9k0+pt3H72/eySxZ5CCCF+BBmZ+RHmf7iEyVc9i786gFKKK8YP47dXDeLJ5y7ni89Xs3HDLnof3Z6u3fLRWlNR4Wf2l6tAQ352Os/ecxEX/vVVtlZWoKLLaTS0z85klVOSUA1SaTAqDJwUOxxs2AptajDBdEwcnThtBIqQbeJSdkKeGcdWVO9KwZdeg5UaQjuKQJmbULULtz8SQMVGiKBruxacOWAA9z3/EcGQTUaal/vH/Bpd5ufWP70ca6NC86shPfnm/fpJ8wzTwO11EaipDXQcR6McJzwlFT1mO1SV11A4dxmDLjyuYX5IQgghfjEkmNlPe3aUMemKZ2IVobXWPD3uLboe1Z4ex3RiwHFdGRD3eayUYuLosxlvO4RsO1z2AGihPGz3V8RSACutyNAuzGqFnULciI3C8huwQ2GVh4MOjSaUrnHlWviNavQeF9gKfDakh6isctMsozph01FllQejyiRUnIbjhK/hWECGjRkMjwxpM7II2YahPbpR810Fnk01WGiM3Rp/iZ9jjunIpId+z3OPzqaqopoThhzBH64exJPYvPfy57H8Lig48ayjKLh2MFOueja2tfrwfh0ZcEZvZr8SV8cpwuXev3U0QgghBEgws9+Klm0m6A8lHDMMxYoFRfQ4Zu9rPizTwIrbXrx5cwmekI7tZjKDmhJvNS4nvNPJsSKjMjXgaeaiojxxGscqV7TPz2bF+l21RSwrXDjlNirXZk+JgccTfk8gYGHbJq5yhRlSkQEYhWFrfAEPbVyprA+UxQo6eYOK5jUmE574CGVrTCAQ8vOXcW/xrxevYsYLn7FuQREAH+2qYNCpR3DFHb8hGLD5ZNrXGKbBmRcfxwXXDsY0DToc0YblX60lIyuVPqf0IBQM0bpLHlsj1bAN0yCnTRZ9T+35o38uQgghfrkkmNlPzXPq77BwHE2zFvu388IJORi2xnBq54Lsahs8YAbDDwgP0HTPyWHBtq2x90bX1Jj+6A6n2nkmo8Yks8zLLk8FgRIrvJ7F5+Ct9KBD0amh6LUVGbabHRtK8ZrguCJrd0Kad+Z8ixF0Etb0BO0ALz06i6/m1GZlLdtdycTr/sWzs25lzJQLGD35/PD5cXNfbTq1pE2nlrHnlsvkwZl38uy4N1i/fDMFXfMZNeE8UtKTZwwWQgghvo8EM/up/WGtGXzBscx+/Qssl4kdcujSuy0n/Pro/bqOFYJguB5A7Fhzl4fBJx3Ov+YujB1rlurliIK8hGAmyqUNTKXqZfat2R0ipdQdC5S00oRSE8snxK6Bgd/ReModjFA4l4ydZlK+oyKWgTjKcGDj6m3hRckRjqPZsn4X/pogHu++b4NulpvBTU9cvk/nCiGEEN9Hgpn9pJTihocupvfx3Vi7dBO5bbIYetFx+503pUfHPL5ZuRk7MkdkOooju7fmpnNOpFubHAqLttA81cfwE3szf/VG+B8Qv6nJhmPatuGbncWxQ6ZStM7MYMemMpz4Ok9aYUUS9DlmbYCigOaWD11Zjh2I7Ch3wCi16Xh4NkVsqtfuZi3SMQwjobxASpoHt0d+lYQQQhwc8gn0IxiGwaDz+jPovP4/+hq3/2koo8e9wbYdZQB07ZjLNZeehFKKs/sdztn9Do+dO7BbO7IdN8GN1RhBcNzgbuXjquP7k9UslQfn/Jeg49AuqxlPnvsbLv37VEr8tbWIFGBhoKscAj7QFqDDmYhzHDc7Aw5GyEHZGm0ocCksb51fDR2uQH3p9aeyunADe3ZWoAyFdjTX3T1MEtMJIYQ4aCSYOUha5zXjlUf/wMq1xViWQdeOLRMWCMcztCKzGEoj5QXMEGTuUBjA5f37MqLvUVQFgmR4PSil6NO+NR8v/S5hN1OXvBa0a5bJ3LkrsSodtAH+TIOBJ7Rn5ewirBontjPbcSnKS6pQNUG0x6rdKl7hB6V4/N0b+OTdRVRXBTh6YBe6HZm8ppIQQgjxc5Bg5iDyeFz0Oqz1D5731TfrKC1LTA1cUlrFgsUbOHlAV1ymSaavdg7qll+fxOIN29hRVglAutfDhPNPZeZ7S/Durp0ectc4tE5Jw6oJH4uOrRhBjVMZwLId7Ap/OJufE07LV15SRceueZwz4vgD67wQQgjRQCSYOciiWXYbcpqmdVYm026+lHkr1uFoh2O7tCUrNYVrPihMOE8pxQcfLqn3fsNQZLVIDye4g3AgoxRen4sOXaXwnxBCiEOLBDMHSU11gMf+8jafvv8Nhmlw9sXHMfKmoZhJppr69mpH88wUSsurcRyNaSgyM1I4umfbvV4/M8XLmUd3jz0PhWwcx0k4R2uN6TExDIXjJO5Q6ndsZ7q2z+XxKTOwQw5p6V7uenA4Gc1SGqD3QgghRMORYOYgefKed/jknUWRIMLm/56ZQ3qmj/OvOqXeuZnpPv5xz4X87elZbNi8m3ZtsrnpysFkpHn3+X6WZTKwXyf+9/XaWOCiNZx6Sg9OOaYLDz7wQSx775ln9ea447uilGLQmUdSsqeS7Nx0XC75dRFCCHHoUbpuWeQmZn9KiP+czuszjoo662C6HNGGR6dd/5Pds6LSz/2PzeR/X32H1+vi0vMHcN6v+wCwedNuiop20CInnW7d8mV3khBCiINqfz6/5U/tg8TttaCs9rlS4PH9tLWJ0lI93D3210lfa90mi9Ztsn7S+wshhBA/heR7gcVP7rwraqeTlApP+QwbdeJBbJEQQgjROMnIzEHymxHHkZruZc6MQiyXyZm/P5ZjTj7sYDdLCCGEaHRkzYwQQgghDjn78/kt00xCCCGEaNQkmBFCCCFEoybBjBBCCCEaNQlmhBBCCNGoSTAjhBBCiEZNghkhhBBCNGoSzAghhBCiUZNgRgghhBCNmgQzQgghhGjUJJgRQgghRKMmwYwQQgghGjUJZoQQQgjRqDX5qtnROpplZWUHuSVCCCGE2FfRz+19qYfd5IOZ8vJyAAoKCg5yS4QQQgixv8rLy8nMzPzec5Tel5CnEXMchy1btpCeno5S6kddo6ysjIKCAjZu3PiDZcgbs19CP38JfQTpZ1Mj/Ww6fgl9hIbpp9aa8vJyWrVqhWF8/6qYJj8yYxgGbdq0aZBrZWRkNOlfvqhfQj9/CX0E6WdTI/1sOn4JfYQD7+cPjchEyQJgIYQQQjRqEswIIYQQolEzx48fP/5gN6IxME2Tk08+Gctq2jNzv4R+/hL6CNLPpkb62XT8EvoIP28/m/wCYCGEEEI0bTLNJIQQQohGTYIZIYQQQjRqEswIIYQQolGTYEYIIYQQjZoEMz/g8ccfp0OHDni9Xvr06cNnn312sJt0QD799FPOPvtsWrVqhVKK6dOnJ7yutWb8+PG0atUKn8/HySefzNKlSw9Sa3+8yZMn069fP9LT08nNzeWcc85h5cqVCec09r4+8cQT9OrVK5aUasCAAXzwwQex1xt7//Zm8uTJKKUYM2ZM7FhT6Ov48eNRSiU88vLyYq83hT5Gbd68mYsvvpjs7GxSUlLo3bs3CxYsiL3eFPravn37ej9PpRTXXnst0DT6GAqFuOuuu+jQoQM+n4+OHTty99134zhO7JyfrZ9a7NXUqVO1y+XSzzzzjF62bJkePXq0Tk1N1evXrz/YTfvR3n//fX3nnXfqt956SwN62rRpCa9PmTJFp6en67feeksvWbJEX3DBBTo/P1+XlZUdpBb/OKeddpp+/vnn9bfffqsLCwv1mWeeqdu2basrKipi5zT2vr7zzjv6vffe0ytXrtQrV67Ud9xxh3a5XPrbb7/VWjf+/iXz5Zdf6vbt2+tevXrp0aNHx443hb6OGzdO9+jRQ2/dujX2KC4ujr3eFPqotda7d+/W7dq10yNHjtTz58/XRUVFevbs2XrNmjWxc5pCX4uLixN+lrNmzdKA/uSTT7TWTaOPEydO1NnZ2XrGjBm6qKhIv/nmmzotLU0//PDDsXN+rn5KMPM9jjnmGP3HP/4x4Vj37t31bbfddpBa1LDqBjOO4+i8vDw9ZcqU2LGamhqdmZmpn3zyyYPRxAZTXFysAT137lytddPta/PmzfU///nPJtm/8vJy3aVLFz1r1ix90kknxYKZptLXcePG6SOPPDLpa02lj1prPXbsWH388cfv9fWm1Nd4o0eP1p06ddKO4zSZPp555pl61KhRCceGDRumL774Yq31z/uzlGmmvQgEAixYsIAhQ4YkHB8yZAiff/75QWrVT6uoqIht27Yl9Nnj8XDSSSc1+j6XlpYCkJWVBTS9vtq2zdSpU6msrGTAgAFNrn8A1157LWeeeSaDBw9OON6U+rp69WpatWpFhw4duPDCC1m7di3QtPr4zjvv0LdvX8477zxyc3M56qijeOaZZ2KvN6W+RgUCAV5++WVGjRqFUqrJ9PH444/no48+YtWqVQB88803zJs3jzPOOAP4eX+WTTv94AHYuXMntm3TsmXLhOMtW7Zk27ZtB6lVP61ov5L1ef369QejSQ1Ca82NN97I8ccfzxFHHAE0nb4uWbKEAQMGUFNTQ1paGtOmTePwww+P/YeisfcvaurUqSxcuJCvvvqq3mtN5WfZv39/XnrpJbp27cr27duZOHEiAwcOZOnSpU2mjwBr167liSee4MYbb+SOO+7gyy+/5Prrr8fj8XDppZc2qb5GTZ8+nZKSEkaOHAk0nd/ZsWPHUlpaSvfu3TFNE9u2mTRpEsOHDwd+3n5KMPMDlFIJz7XW9Y41NU2tz3/6059YvHgx8+bNq/daY+9rt27dKCwspKSkhLfeeosRI0Ywd+7c2OuNvX8AGzduZPTo0Xz44Yd4vd69ntfY+3r66afHvu7ZsycDBgygU6dOvPjiixx77LFA4+8jgOM49O3bl3vvvReAo446iqVLl/LEE09w6aWXxs5rCn2NevbZZzn99NNp1apVwvHG3sfXX3+dl19+mVdffZUePXpQWFjImDFjaNWqFSNGjIid93P0U6aZ9qJFixaYpllvFKa4uLhelNlURHdONKU+X3fddbzzzjt88skntGnTJna8qfTV7XbTuXNn+vbty+TJkznyyCN55JFHmkz/ABYsWEBxcTF9+vTBsiwsy2Lu3Lk8+uijWJYV609T6Gu81NRUevbsyerVq5vUzzM/P5/DDz884dhhhx3Ghg0bgKbz/82o9evXM3v2bC6//PLYsabSx1tuuYXbbruNCy+8kJ49e3LJJZdwww03MHnyZODn7acEM3vhdrvp06cPs2bNSjg+a9YsBg4ceJBa9dPq0KEDeXl5CX0OBALMnTu30fVZa82f/vQn3n77bT7++GM6dOiQ8HpT6ms8rTV+v79J9W/QoEEsWbKEwsLC2KNv375cdNFFFBYW0rFjxybT13h+v5/ly5eTn5/fpH6exx13XL00CatWraJdu3ZA0/v/5vPPP09ubi5nnnlm7FhT6WNVVRWGkRhGmKYZ25r9s/azQZcTNzHRrdnPPvusXrZsmR4zZoxOTU3V69atO9hN+9HKy8v1okWL9KJFizSgH3zwQb1o0aLYdvMpU6bozMxM/fbbb+slS5bo4cOHN7rtglprffXVV+vMzEw9Z86chO2RVVVVsXMae19vv/12/emnn+qioiK9ePFifccdd2jDMPSHH36otW78/fs+8buZtG4afb3pppv0nDlz9Nq1a/UXX3yhzzrrLJ2enh77701T6KPW4e31lmXpSZMm6dWrV+tXXnlFp6Sk6Jdffjl2TlPpq23bum3btnrs2LH1XmsKfRwxYoRu3bp1bGv222+/rVu0aKFvvfXW2Dk/Vz8lmPkB//jHP3S7du202+3WRx99dGxrb2P1ySefaKDeY8SIEVrr8Fa6cePG6by8PO3xePSJJ56olyxZcnAb/SMk6yOgn3/++dg5jb2vo0aNiv1u5uTk6EGDBsUCGa0bf/++T91gpin0NZp/w+Vy6VatWulhw4bppUuXxl5vCn2Mevfdd/URRxyhPR6P7t69u3766acTXm8qfZ05c6YG9MqVK+u91hT6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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.scatter(x, y, c=z, s=10)\n", "ax.set_title(\"Correlation between surface NO2 and building heights\")\n", "ax.set_xlabel(\"Building Height [m]\")\n", "ax.set_ylabel(\"Surface NO2 concentration [ug/m3]\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "id": "849e0946-354d-46bc-8d27-7d690d216601", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "py-env-inpuls", "language": "python", "name": "py-env-inpuls" }, "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.8.10" }, "vscode": { "interpreter": { "hash": "c9cf2cf1fbfea15c12fdef0c7fa448d6ed0052a786563243501b003465a1259e" } } }, "nbformat": 4, "nbformat_minor": 5 }