{ "metadata": { "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.9.0-final" }, "orig_nbformat": 2, "kernelspec": { "name": "projectname", "display_name": "projectname" } }, "nbformat": 4, "nbformat_minor": 2, "cells": [ { "source": [ "## 参数初始化 " ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "from pyathena import connect \n", "import pandas as pd \n", "import matplotlib.pyplot as plt\n", "import altair as alt\n", "from vega_datasets import data\n", "import json\n", "import urllib3\n", "\n", "athena_output_bucket = 'smartmeter-workload-hxoq70dmst7-athenaquerybucket-e7ny5e3pg3iy'\n", "region = 'cn-northeast-1'\n", "\n", "connection = connect(s3_staging_dir='s3://{}/'.format(athena_output_bucket), region_name=region) \n", "APIUrl = 'https://rw54mkowm9.execute-api.cn-northwest-1.amazonaws.com.cn/{}'\n", "ML_endpoint = \"ml-endpoint-aaron\"" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 32 }, { "output_type": "display_data", "data": { "text/plain": "
", "image/svg+xml": "\n\n\n\n \n \n \n \n 2020-11-19T13:47:07.251463\n image/svg+xml\n \n \n Matplotlib v3.3.3, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEQCAYAAACgBo8fAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAABOOklEQVR4nO2dd3hc5ZX/P2eauqwud8u9YxuMMQZMDzWUBBJYQighbNgNTt0km/yWVDZkkyUJ2ZCEkATYAIGQwAKhBDC9uBdwwb3IRbZVbMmypCnv7487dzQzmiZ5Rlev8n6eR4/lmas7R1fvPfe83/ec84pSCoPBYDDoj8tpAwwGg8GQHYxDNxgMhkGCcegGg8EwSDAO3WAwGAYJxqEbDAbDIME4dIPBYBgkeJz64KqqKlVXV+fUxxsMBoOWrFix4pBSqjrRe4459Lq6OpYvX+7UxxsMBoOWiMjOZO+llVxEJF9ElorIGhFZJyLfTXDMjSJyUERWh79uOV6jDQaDwdA7MonQO4FzlFJtIuIF3hKR55VS78Ud95hS6vPZN9FgMBgMmZDWoSurN0Bb+L/e8JfpF2AwGAwDjIw0dBFxAyuACcAvlVJLEhz2cRFZCGwCvqSU2p09Mw0GQ3/g9/upr6+no6PDaVP+4cnPz2fkyJF4vd6MfyYjh66UCgKzRaQMeFJEZiilPog65BngUaVUp4j8M/AgcE78eUTkVuBWgNGjR2dspMFg6B/q6+spKSmhrq4OEXHanH9YlFI0NjZSX1/P2LFjM/65XuWhK6VagFeBC+Neb1RKdYb/ez9wUpKfv08pNVcpNbe6OmHWjcFgcJCOjg4qKyuNM3cYEaGysrLXM6VMslyqw5E5IlIAnA9sjDtmWNR/LwM29MoKg8EwYDDOfGDQl79DJhH6MOBVEVkLLANeUko9KyLfE5HLwscsCqc0rgEWATemO+mupvZeG2swGAwDjQceeIC9e/dG/n/LLbewfv16R2zJJMtlLTAnwet3RH3/78C/9+aDWzsCvTncYDAYBiQPPPAAM2bMYPjw4QDcf//9jtniWC8Xs1OSwWBIxEMPPcQJJ5zArFmzuP7669mxYwfnnHMOJ5xwAueeey67du0C4MYbb2TRokUsWLCAcePG8cQTTwCwb98+Fi5cyOzZs5kxYwZvvvkmAMXFxZHPeOKJJ7jxxhsj57ntttuYP38+48aN47XXXuPmm29m6tSpkWPsn//Sl77E9OnTOffcczl48CBPPPEEy5cv57rrrmP27NkcO3aMs846K1IF/+ijjzJz5kxmzJjB17/+9Zhzfetb32LWrFnMnz+fhoaGrFw75xy6Ux9sMBgGLOvWreMHP/gBixcvZs2aNfz85z/n9ttv54YbbmDt2rVcd911LFq0KHL8vn37eOutt3j22Wf5xje+AcAjjzzCBRdcwOrVq1mzZg2zZ89O+7nNzc28++67/PSnP+Wyyy7jS1/6EuvWreP9999n9erVABw9epS5c+eybt06zjzzTL773e9y1VVXMXfuXB5++GFWr15NQUFB5Jx79+7l61//OosXL2b16tUsW7aMp556KnKu+fPns2bNGhYuXMhvf/vbrFw/x3q5AIRCCpfLLMAYDAOR7z6zjvV7j2T1nNOGl/Ltj05P+v7ixYu5+uqrqaqqAqCiooJ3332Xv/71rwBcf/31fO1rX4scf8UVV+ByuZg2bVokyj355JO5+eab8fv9XHHFFRk59I9+9KOICDNnzqS2tpaZM2cCMH36dHbs2MHs2bNxuVx88pOfBOBTn/oUH/vYx1Kec9myZZx11lnYGX3XXXcdb7zxBldccQU+n49LL70UgJNOOomXXnoprY2Z4Gj73KCRXQwGw3GQl5cX+d6WcRcuXMgbb7zBiBEjuPHGG3nooYeA2KyR+HRA+zwulyvmnC6Xi0Ag8Xrf8WQDeb3eyM+73e6kn9FbHI3QgyGF1+2kBQaDIRmpIulccc4553DllVfy5S9/mcrKSpqamliwYAF/+tOfuP7663n44Yc544wzUp5j586djBw5ks9+9rN0dnaycuVKPv3pT1NbW8uGDRuYPHkyTz75JCUlJb2yLRQK8cQTT3DNNdfwyCOPcPrppwNQUlJCa2trj+PnzZvHokWLOHToEOXl5Tz66KPcfvvtvfrM3uKoQw+ETIRuMBi6mT59Ot/61rc488wzcbvdzJkzh1/84hfcdNNN/PjHP6a6upo//OEPKc/x2muv8eMf/xiv10txcXEkQr/rrru49NJLqa6uZu7cubS1taU8TzxFRUUsXbqUH/zgB9TU1PDYY48B1qLq5z73OQoKCnj33Xcjxw8bNoy77rqLs88+G6UUl1xyCZdffnkvr0jvEKeyTfKGTVQHtq5nSGHmfQoMBkNu2bBhA1OnTnXajAFJcXFxrx8Cx0uiv4eIrFBKzU10vKMauj8UcvLjDQaDYVDh7KKokVwMBoMm9Hd03hccdehGQzcYDIbs4WyEHjQO3WAYaJgq7oFBX/4ODkfoRkM3GAYS+fn5NDY2GqfuMHY/9Pz8/F79nON56AaDYeAwcuRI6uvrOXjwoNOm/MNj71jUG0weusFgiOD1enu1Q45hYOGs5GI0dIPBYMgaRkM3GAyGQYLJQzcYDIZBgslDNxgMhkGCidANBoNhkGAidIPBYBgkOByhm0VRg8FgyBZpHbqI5IvIUhFZIyLrROS7CY7JE5HHRGSLiCwRkbpMPtykLRoMBkP2yCRC7wTOUUrNAmYDF4rI/LhjPgM0K6UmAD8FfpTJhxvJxWAwGLJHWoeuLOy+kd7wV7wnvhx4MPz9E8C5ksGGe8ahGwwGQ/bISEMXEbeIrAYOAC8ppZbEHTIC2A2glAoAh4HKdOc1GrrBYDBkj4wculIqqJSaDYwE5onIjL58mIjcKiLLRWQ5GA3dYDAYskmvslyUUi3Aq8CFcW/tAUYBiIgHGAI0Jvj5+5RSc+398EweusFgMGSPTLJcqkWkLPx9AXA+sDHusKeBG8LfXwUsVhk0VDYausFgMGSPTNrnDgMeFBE31gPgcaXUsyLyPWC5Uupp4HfA/4rIFqAJuCaTDzcRusFgMGSPtA5dKbUWmJPg9Tuivu8Aru7th5sI3WAwGLKHw/3QTZaLwWAwZAvTy8VgMBgGCabbosFgMAwSTIRuMBgMgwTHHLpgKkUNBoMhm5gI3WAwGAYJzkXoIgRN6b/BYDBkDUclFxOhGwwGQ/ZwTnIRCBgN3WAwGLKGw4uiJkI3GAyGbOGohm7a5xoMBkP2MBG6wWAwDBIc1tCNQzcYDIZsYSJ0g8FgGCQ46NDFZLkYDAZDFnFUcjERusFgMGQPRyUXv8lyMRgMhqzhYNqiidANBoMhmxgN3WAwGAYJJkI3GAyGQYJpn2swGAyDhLQOXURGicirIrJeRNaJyBcSHHOWiBwWkdXhrzvSnhcToRsMBkM28WRwTAD4ilJqpYiUACtE5CWl1Pq4495USl2a6QebXi4Gg8GQXdJG6EqpfUqpleHvW4ENwIhsfLiuEXrz0S6ef3+f02YYDAZDDL3S0EWkDpgDLEnw9qkiskZEnheR6enPBX5Ns1yeXrOX2x5eyeFjfqdNMWhIZyDIFb98m+U7mpw2xTDIyNihi0gx8Bfgi0qpI3FvrwTGKKVmAb8AnkpyjltFZLmILO/s7NQ2Qu8MBGP+NRh6Q0u7n9W7W/hgz2GnTTEMMjJy6CLixXLmDyul/hr/vlLqiFKqLfz9c4BXRKoSHHefUmquUmpuQX6+thq6nZ2jq/0GZ4mMH00DGsPAJZMsFwF+B2xQSt2d5Jih4eMQkXnh8zamO7euEbq9ubU/qKdkZHAWe/x0mfFjyDKZZLmcBlwPvC8iq8OvfRMYDaCU+jVwFXCbiASAY8A1SqmU3lo07oceVMahG/qOPX7MDM+QbdI6dKXUW1hp46mO+R/gf3rzwVYeup4O0Z5ZmOZihr5gj3sTEBiyjdmxqA8EQiZCN/SdgAkIDDnC0eZcumroIePQDcdBwKzBGHKEo/3QddUQTYRlOB5CEQ3dOHRDdnG026Ku7XODJkI3HAeRgEDTGaph4OJot8WQ6pYvdCJgFrUMx0EkIAiY8WPILg5G6FbiTDB1duOAxPbjRnIx9AVbatQ1KcAwcHFUQwc9i4tM2pnheLA1dFNYZMg2jmrooGeUYtIWDcdDd+sIM34M2cVRDR26y6B1ImSyXAzHQfcMz4wfQ3ZxXEPXMdPFROiG48HkoRtyheMauo6Si8lSMBwPIdMLyJAjjEPvA0HT/tRwHJj2y4Zc4WgvF9BTQ7cduslSMPQFU5hmyBWO9nIBzTX0gH4PI4PzdGvoZvwYsovjaYs65qFHenFo+DAyOI/pp2/IFUZD7wMBs+OM4TgwazCGXOG8hq7hoA6aRS3DcWA78i6TJWXIMo5r6DpOO82U2XA8hEJGsjPkBsclFx0jdFNYZDgeTD99Q65wXHLRUUc0pduG48E0dzPkChOh9wFTuu0s/mCIu//+IUc7A06b0idMYZEhV6R16CIySkReFZH1IrJORL6Q4BgRkXtEZIuIrBWREzM4L6BnhG5Kt51l3d4j3LN4C+9sbXTalD5h9qQ15ApPBscEgK8opVaKSAmwQkReUkqtjzrmImBi+OsU4Ffhf5PSHaHrN6iNBuostiPsDAQdtqRvBKLSFpVSkeDGYDhe0kboSql9SqmV4e9bgQ3AiLjDLgceUhbvAWUiMizliW0NXUOnaEq3ncUeM51+Pa9/tMxoggJDNumVhi4idcAcYEncWyOA3VH/r6en0489V/hfHTV049CdxU7307WwK1pmNKmLhmySsUMXkWLgL8AXlVJH+vJhInKriCwXkeXNzc2AnjufB43k4ijdEbqekkv0xuimH5Ahm2Tk0EXEi+XMH1ZK/TXBIXuAUVH/Hxl+LQal1H1KqblKqbkVFRWA7hq6frYPBro1dD2vf3SE7tdw/BsGLplkuQjwO2CDUuruJIc9DXw6nO0yHzislNqX8rzhf3XU0E2WgrPYMyRdHXqshq7n72AYmGSS5XIacD3wvoisDr/2TWA0gFLq18BzwMXAFqAduCndSXXutmjyiJ3FH3Hoekou0bq5GUOGbJLWoSul3qI7oE52jAL+tTcfrHMeutngwlkCtuSibZZL9/dmDBmyiXOl/2F0jNBNlouzRBZFtZVcTIRuyA2Ol/7rHKGbm9EZAtpLLkZDN+SGAbBjkX4DOmCaKzmKff11jdBDxqEbcsQA6IeuV5SrlMK+H3XeoEBHqcvGr3mlaMBUihpyhOPtc3VzLMGYKj+9bLdZvbuFqXe8QMORDqdN6RP2oqiuC4oxY0jT38EwMDEaei8ZDPrn7qZ2ugIh9rQcc9qUPjGYNHRdH0qGgYmjWS4el2inodvRVb7XhT9odcvTDftBdKxLU4eoueQSionQ9Rs/hoGLow7d7RLtInR7P9F8rxvQb4YB3U6kXVeHrvmiaCCkyPO4wt/r+TsYBibOR+iaRSi2vQVhh66j7GL3D2nv0nPHn8iiqKaSSzCkIgFBl2bj3zCwMRF6LwmEYiN0HbMU7AhdV8klqH2EHiLfG47QNQwIBgPf+MtaHnxnh9NmZB1nI3S3S7ssF3v7OXvKrGWEHrQjdD0duu5pi6FQdECg5+9w9a/f4alVPRqqasObmw+xdEeT02ZknQEQoes1oO0IvcCn7w3pj2joekou3Rq6ng+kQChEvkffGZ5SimU7mvlgz2GnTekz/mBI24AgFY5r6Lqt8tsaun1D6mY/dE/zdY3Q9e/losjXOCCwZ9XHNN1gBKzATNeAIBUOSy6ineTSneViXTod84jt9rPaOnTN+6EHQop8O8tFw4DAnlXo7ND9wZC24ycVDkfoLu0WRe0FOZ0ll4D2eeiW/cGQ0nJRMTbLRT/77SypDuPQBxyOa+i6ReiRLBedJRc7Qtf0hvRrXmlpOXSNI/SA3gEBWNdd1z1pU+G8hq7Zoqj9AMrTOcKKROiaLopGXXMdF7aCIYXP48Ylms7wwvdAh4bXHqxF3UBIad1cLxkmQu8ltr2RwiINB4XuaYvRY0bHaXMgpHCLlbar4ybRtiPUVUP3a76onooBEKHr5dC7C4tcMf/XCd1L/6NT/XTMVAiGFG6XC5/bhT+g4fiJROj6XXvQP+01FY5H6LppiMG4SlE9JZfBkYcOekZZwZDC4xI8bv0kR4iS7DR16LoXpqViAGS56HVRB4PkEgjpLbnEROga3pSBkMLlErxul5Yauu7dOm37dQwG0pHWoYvI70XkgIh8kOT9s0TksIisDn/dkemH66yhDwbJRdcbMlZD1+93CCkrQve6RMtK0YDmeei2/V3BUEwr48FAJhH6A8CFaY55Uyk1O/z1vUw/3Jpy6nVBA3FZLjpHWLpG6IFgiMJwHYCOUVYgGMLtErwevSN0XTX06Guuo2SairQOXSn1BpCTLjYeDSP0UJzkomPqU7QGqmOE4g8qivI8gJ4RekRD13ANCbolL39Qz8Iuv+Zpr6nIloZ+qoisEZHnRWR6pj/kdrm0G9Dx7XN1m2FArM0dGjrEQChEkU/fB2ogpKwIXXMNHaBD0+tvo2NAkIpsOPSVwBil1CzgF8BTyQ4UkVtFZLmILD948KCWEbpd+m9r6LrfkDrKLoFQdISu3/UPKb0denQig47rMDERuobjJxXH7dCVUkeUUm3h758DvCJSleTY+5RSc5VSc6urq3FrmLZljwWdJZfoWZGON2QgWnLRcMociElb1CugAeiKyp3XUUcPaF7HkIrjdugiMlREJPz9vPA5GzP5WT0Li+wIXV/JJboXipYRejBEsaYaeiikUIpI2qKWAUF0hK6hQ4+RjDQMCFLhSXeAiDwKnAVUiUg98G3AC6CU+jVwFXCbiASAY8A1SqmMvNxgKCzSMQ/dHwhFHqZHNSwu8oeUtlkudgDgcQlet2jpUKIdoo4zvNhKY/2ufyrSOnSl1LVp3v8f4H/69OFaauhxW9BpZj9YEVZpgZemo11a3pDBkIqK0PW6Ie0tDN0uF163i9YODR+o0ZKdhhF6bKWxfvanwvE9RXWTLGyH7nFbEZaWi1pBRWm+5RB1lFz8wRAFPjciaNcCNTpC97hcWhYWxUoWel1/MIuiOcOK0PW6oPYNGclS0HBA+MMROujZzyUQVHjdLvI8Lu1uSHsLQ5dL8Hn0DQhs9HToereOSIXzzbk0i9AjU2axHLpu9oMdoVsOXUfJJRCyKi3zPG7tHLo93bcjdN0Lc7SUXEyWS27I97rp0Kxa0R4MHpcLr1u0LB32BxVDIhG6fgM6EFJ4XYLP49LuhgyquBmelpJLdNqrjuPfSC45YXhZAf6g4kBrp5Nm9ApbQ3e7NZZcgiFKCywNXbcIKxhO+/PoKrnEZbnoKbnoHaEbh54jRpUXALC7ud1JM3pFREPXWnIJUejz4HaJdhq6fTN63KKlQw9Eaei6VorqvigaU/qvof2pcNahVxQCsLtJH4ceipoye3SVXEIKj1so9Lo52qnXgI7OEsnzuLVb1IqO0D1u/eowwBo/XrfgEk0d+iCO0NPmoeeSEWXhCL3pmJNm9IpuDV3CW4jpNyACwRBel4sCn1u7RVH7ZvS4XOR59dbQfW6XngFBIITX7cLn1nNRvesfubAol+R73dSW5mkludhpli5Ne3EEQ4qQsiSLQp+bds0iLPt6ezWVXIKh2BmebuMHwovSbispQEcNPTZC18/+VDgquQCMKi/USnIJhnebAbTUQG17vW4XBT4PxzTT0CMzJLdLz7TFYPSiqMt6wGrm1LuCofAD1a2nQ4/adUw3yS4dzjv0ikLqmzWSXMK9rAEtmytFR7iFPrd2aYv2A8nKQ3dpt6gVX/oPVqGXTgSCoXBA4NZSQ7fv2eI8j3YBQTqcd+jlBew7fEybSDcYjHbo+k2ZozVoHR16jOTidWv7QLV3LAK0WxgNBK1F9QKvfmsw0F2Ylu91G8kl24ysKCSkYG+LHlF6UMVG6Lo8iGzsohCvpjdkMBS1KKqlht69BhOJ0DUbQ132orpXU8klqMJZUvqNn3Q47tBHldupi5o49FCshq5fhGjncYcjdL9eGnr0AylPw0rRWA3dGke6VYvavXTyfW4t2/92hSUjHdNe0+G4Qx+pWXGRpaFbl01PyaXboRTmeWjXLQ892K1B+zz6LWrFl/6DfhG6PxgKSy4uLTV064EkWqa9psNxhz5sSD5ul1CviUMPhRTh+1BLycXOe/Z5XBR69dPQ/ZEZRriwSLPrH1tYZA0k3TR0fzhtUVvJJRTStnVEOhx36B63i+Fl+dpILtZ+kHaErl9hUXRzsUKfdUPqlDZnO0RvWEPvCoTIcIOsAYE9o3NFSS66FRdZhUWiZWEaWBKXV9Nunelw3KFDOBddkwg9GIrNctFtx6LoXigFPquurEOjaWdMLxevNXzT3ZQHWzuZ+4OX+GDP4Zzbl45gXB46xO6gowOBULcGrWOE7g+G8HpcWqa9pmPgOHSNInSds1zi89BBrxa60WsAeZ7M9hXderCNQ21dbNzfmnP70pFQQw/oFRR0BRUejfPQI1kuGqa9pmNAOPShQ/I51NbZo9n/k6vqueKXbw+oTQBCcQ5dN/0zOg+9IOzQdZo2R2fp2Pu6plvYamzrAqC1w59b4zIgvvQf9Cws8oXTXv1BNaDuz0zwR7JcjIaeE6pK8gBoOtoV8/qyHc2s3t3CO1sbnTArIYFQKJK2qGO3xa6o0v+isOTS1qlP6mJshB526GkyXRqPWv32jxxz/veMLizyRSJ0vcaQPxiyAgKvFRB0aGh/t0PXJ5jJhLQOXUR+LyIHROSDJO+LiNwjIltEZK2InNhbI6qKfAAcaot16E3h/z+1ek9vT5kzgiGFSyyH7tNRconK4x5elg/ALo166XRLRi7yvJlJLva4OjIgInS7dYGru1JUs3UYu1I0X8MZHoQTG9x6tl9ORyYR+gPAhSnevwiYGP66FfhVb42oLLYidDuSsrEj9hc/2D9gBk0wPBjAcipKdU+jk3H4mJ+/r9vfH+alJVqymFhbAsDmBue15UyJ7+UCmUgudoQ+EBy69a/HJXjD9us2y/OHQvjcURG6Zjq6P1zpauWh63Xt05HWoSul3gCaUhxyOfCQsngPKBORYb0xoqrYitAb4yL0xqOd1JTkcbQryMsbGnpzypwRvSga0UBT3JChkGLRo6u49X9XcOBIR7/YmAp/lGRRnOdhZHkBHza0OWxV5gTiKkUhfYTeraE7L7nElP67NM1DD3T3cgH9tqHzB1Vkx6uuYEirtN10ZENDHwHsjvp/ffi1HojIrSKyXESWHzx4MPK6HaEfaouN0BuPdnHetFqGlubzf6v3ZsHU4ycYUrijJBdIHWE98M4OXt9k/a6NcWsETtDtEC3bJ9WWaBWhRwpzwmlzAB1dQfYf7kiaj27P9AaC5BKtoXs96QOCgYidtljgs8bQQJk9Z0ogqvQf9JshpaJfF0WVUvcppeYqpeZWV1dHXi/N9+Bzu2I09EAwREu7n+riPC6aOZTXNx0YEAM/Og+9tMALdGv98WxuaOWu5zdGdmZqaR8IDqU7jxssh771YNuAuLaZYGeEeF2CLxyh3/TAMub/8BWWbE88kTxkL4oOAIceis5ycelZ+t8V3rEo36NvhB4zwxtEOno2HPoeYFTU/0eGX8sYEaGy2BfROgGaw86vstjH1GGl+IOKPQOgb3q0hl5XWQTA9sajCY99aUMDXcEQ//mxmQC0tDsfodt5t75IhF6MP6jYcSjx7zDQ6O7lIkyoLmbumHLOmVIDWPnmiRhIkkvCLBfNJJdAeE9Re1FURw3d3sIQBteuRdlw6E8Dnw5nu8wHDiul9vX2JJXFvhjJxV4grSjypXWc/UkgKsulrsrqFJnMGdY3H6OiyMfEmmIAWgbAolzEoURF6ACbNNHRuytFXQwp9PLEbQv4xbVzEIGGwz3XKLoCIQ6Hr/vAWBTtLv23/wY65nF7NF4UDYRUuFI0sywpnUi7p6iIPAqcBVSJSD3wbcALoJT6NfAccDGwBWgHbuqLIZVFeTEasy1jVBblRRznzkNHYXJfzp49QlFb0FUX51Hkc6d06CPLCygrtKSZASG5RBUWAUyoKcYl8GFDK5fQq7VsRwhGVbraeNwuqorzaDjS2eP45vCsqLzQy5GOAEopRKTHcf1FTIQenvLr5BCVUmHJwqXxomgo3Mtl8EXoaR26UuraNO8r4F+P15DKYh9bDnRHibZzryz2dTvORufzpQPB7va5IkJdVRHbk9hV39zO5NoSCrxufB4XLcecl1yi+4mDtVH3mMoibRZGA1EadDRDS/NpaO0ZoduzvrqqIlbtaqG9K0hRnnN7o0dXilYW+QbMuM6USB2AS6IqjfWKcANRWS6Alj3dkzEgKkXBinYPtXVGMhXszISKIl+34xwAOm/0BhcAY6uKEkboSlma/8jyAkSEsgIvhwdChB6Vh24zqbaYDzVx6JFNrl2xQ7e2NI/9CSQXWz8fW2XJdk7r6BGHLoKIMKGmOCaQGehEb9Kdr3GE7ulFYZpODBiHXlnsozMQipShN7Z1IgLlhVaOel1VETsGgIYevQUdWI6ivrm9R5OfQ21ddAZCjAzvyFRW6I1M/50kPkIHS0ff2diuxdQ/EFS4xNKgo6ktzedAa0/JxV6LGRd26E5nusTPMCbUlLBJk4cpRGUZReWh6zBuovEHrcKowSi5DByHXhSuFg1HVI1Huygv9EUGfl1lIfXNzm8mHZ22CFamS0j13HHJ3rDD3pGprMA3IDT0RBHupNoSgiHFtoPOPzDTYZVt9xy2taX5NB3t6nFz2uOpznboDi+MBsMbFNs6/qTaYg60dg6I2Vsm2H1nvG4XXrfgdol+eejhWbYvw8I0nRgwDt1u0GVHVE1Hu6gI93gBy3EGQ4p6h1MXo5tzQbej2Bk3e7DtjI7QDw+ALItEEe6EcBZOsrS/gUQgGHv9bWpLrfFz4EjP4jSrb431YHVeconV/yfWWtd+y0E9ovToXjoiVrXxQOhi2RsikovJQ88dlWHnfbC1O0KvjHLotgbqdL50MKhinKFt1/ZD8RG65dBH2BF6oTdthB4KKXbnuFGWP7z9VjRjq4oQIamWu7mhlbN+/CoNA6B1QSBuDcOmttRqNHYgbmG0sa2TyqI8hoSLwJyWXIKhUKTSGGBijd1PZ+A/TKG7jsFOuSwr9A6IdNxMsbN0fO7ofvp6zTBSMWAcelVcg67Gtk4qi6Mi9IjjdNihq1iHUl7opTTf0+NBU9/cTnmhl+JwRkVZoS+thv7M2r2c/ZPX2Hc4d7OQQHj7rWjyvW5GlRcmjdDf3nKIHY3trNndkjO7MsVufRqP7dDjUxcb27qoLPZRkm/9HZyWXOIfSCPKCsj3utisycKoHaHbRVFlBekDlYFEbOsII7nkDFtesTXPeMmlsshHcZ6nh7TR38Rr6CJiZbokkFzs6BxgSIGXzkAo5QLS+n1HCIQUH+w5kn3DwwSCPSN0gPHVRUkjdLt510BosxtdqRuN7dDjM10OHe2isjiP0nw7QndaclG4o+x3uaxMF10cevQWgGAFKjpF6JHmdL3YwlAnBoxD93lcDCnw0hjeuajlmD+yUAp2zndh0pzv/iIQ59CBhCmV9c3tjCwrjPzfztZJFc3sDMs2G/flzqF3hYtC4plQU8z2Q0cTtgK2c9RzLQdlgj/YvUl3NOWFXnxuV49c9Ma2TqqKfOSHawGcl1x6SkYTa0rYokmmS2RR3Y7QC70cHgDZW5liZ+n4oppzDaZ9RQeMQwe7/L+L5nY/ShEjuYC1MOq4hp7IoVcWsaflGL99Yxt7W46hlIpUidpEqkVTFBfZUf7GHN7cVqe5nhHu+OpiOgOhHv1ylFKRtLrdA6CXTiAUShihiwg1pXk9yv8b27pneqX5Xsd3LYreIMVmQk0xew93aLG4GJ/2Wlagl4aecMcrE6Hnhqoiq7gouqgomnHVxdQ3t9Pe5dxNmSjCunjmMGYMH8Kdz23g7J+8xisbDoRz0KMcekHq8n+lVLdDz2GEHkgiWSTLdDnQ2hmRKQaC5GJv8JuIoaX5MRp6e1eAY/5gpD1zab7H8Qg90aKu3U9nqw5po3ER+pBCH4eP+bXpKR6I6gVkHHqOqSrx0Xi0K6YxVzRzRpURUrBm92EnzAPCzbnibsjJQ0t45vbTefWrZ1FVnMftj64CulMWAYZE+rkkjtAbjnTS4Q9RVexj+6GjOSvWsHdriWd8dWKHbkfnM0aUsrupPWnP8f7C7sWdiNq48n97Pcae6ZUUeAdA2mKshg5EmrfpUGDUFdcLqKzAi1LOp4NmSveeulYtgG+Q7Ss6oBx6ZZE1Zba1WjvzxWbO6DIAVu5q7m/TIoSSpM2Blf7360+dFNGhR1Z0R+jpNHQ7Oj9/2lBCKnkK4fFi97GIp7zIR0WRr8fn2l0Yz5lSS2cgxMEE1Zj9idVLJ/H1j5dc7N/FnimV5nscz3KJ3iDFZmR5AV63pMzgOtCafAOP/iQQL7lkICUOJOI3eMnzuEweeq44f1ot7f4g3356HdAzQi8r9DGhppgVO51x6Eqp8KJo8ss2c+QQ/vNjM5lYUxxp+wvRAz+JQw/fzBfOGArAhhzJLqki3AnVxT0i9M0NrZQXepkzqgxwXnbxJ6kUBUtyOdoVjLSPeGfrIXweFyeOLgfCGvoAWBSNfyB53C5GVRQmXR86fMzPwv96lV8s3tIfJqYkEOq5KAoDo5NoJsT3MsrzuI3kkisWTqrml/90IqEQMX1cojlpdDkrdzU7otnZHxkfYcVz1UkjeenLZ0aaFwFWx0W3K0WE3o7P7eLUcZXkeVxs3J+b6XdXMLlDHF9jpS7+7q3tnP2T11i/9wibGlqZWFvC6EpLPnLaoQfCrU8T0Z2LbkXpb29pZO6Y8sjfobTA47g0YFUa97z+YyuTN5/b1NBKhz/Eb9/Y5vgmKV2B2H76QwrCM09NFkZt++0xZEXoRnLJGRfOGMoDN5/M1y+cknBqfdKYclra/WyLG/yrdjXzid+8y8L/ejVh6l026C5K6H0/bRFhSKGXw0mmpjsOHWVURQE+j4vJQ0v4MEcOPZVDHF9dTHO7n+8/u57dTe18+fHVbG5oY1JtcWQbvd1NTrdeSCwZgSW5AOxr6aD5aBfr9x1hwfjKyPtWlovTEXrP1r9ApJYhUaBia+utnQHuf3N7zm1MRSAq7Q+iI3RNJJe4GUZVsS9hUzddGXAOHWDB+Co+d+b4hO+dOMaaPq+Mkl3+b/Uerrz3HVbsbGZXU3vOKi2je1n3hfJCL81Hk2votkQzubaEjftzJLkk0dAB5o+rpLzQyx2XTuO+T5/Exv2ttHYGmFRbQr7XzdDS/AERoSeKcAGmDSul0Ofm8eW7eXdbIwCnjq+KvF+S76EzEHJ0EcxuzhVPXVURHf5Qwp7umxvaKPK5uWTmMP7w9vZIFpgTRO8YBemztwYa0YVFYD1Is1l9Xt/c7ug604B06KkYV1VEWaE3RkdfvPEAtaV5/OZTJwGwK0fFRxH9rY8OvazAl3DxSCnFzsb2SHuDKcNKOdTWlZOB4U+hoc8YMYRVd3yEm08fyzlTarl23mjAesAAjK4odLy4KFWEXlbo48YFdTyzdi8PvrOD4jwPs0YOibxvb+rtpOySqDANutv7bk+QuripoZUJtSV84byJHO0K8tSqXm3Zm1Xi89CHaOfQYyP0sVXF7Gk5lpWsMqUUn7p/CYvCWW5OoJ1Dd7mEE8M6us3Gfa1MHz6EqcNLAXK2A0zYn/coDMmUIUkadB1o7eSYP0hdWKeeFO7At/lA9mWXVHnc8Xz7o9O459o5nFxXAcCoisIebYL7m2SVoja3LhxHsc/Dku1NzBtbEbNeECn/d1B2SVTHAFG9ihK0ttjU0MakmmIm1hRTkudxdF+AeIfocbsoyfNol+Vi/w3GVoeb/mXhmq7be4Qdje28t72RAw41stPOoYOlo28+0Mbhdj9dgRBbD7YxeWgJQ0vz8bld7GzKzYDvXiHva4SeuIWuPeWzb2q7A18uUheTNbdKRL7XzWWzhkfy7kdVFLD/SIejGxoEQ4krXW3KCn3ccsY4gBj9HOhu0OVghJ4oywWsDJ08j6tHpkvT0S4OtXUyqbYEEWGkw7Ok+LQ/sAIVbfq52xp6uKjInhllYy+A597fhwgoBc9/sP+4z9cXtHTokXz03c1sO9RGIKSYMrQEt0sYVVEQ6YmSbY5bQy9KvMmF3SvF1tBrS/MoyfPkpKVqbxx6PKMrClGKlD3pt+RgVhFNqjx0m8+cMZabTxvLFXNGxLxuSy5OR+iJ7He5JKGeay+I2n3TR5UXONqCIb45F+jVQjfyQHLZkktmXVz3H+5I+dBSSvH8B/tZML6SybUl/G3tvixZ3DsyurNF5EIR+VBEtojINxK8f6OIHBSR1eGvW7JvajezRpbhdgkrdzZHskGmDLXkljGVRezMUQQT2T6sr5JLgZdj/mCPHV7e2HyIkeUFkQIYEWFCbeZ7Te5uauerf14T2RA5Fak06HRMC0taK3Y2JXz/1Y0HOO/uN1idwza7qdYAbIrzPNzx0Wk9CtNqwpuoLHeojgGSa+hgPdDjHYv9sLfbA4yqKKS+2bmKXX+cQwR7Ny49JJf4B1JRnofa0ry0EfrNDyzjn+5/L9I6IJ4PG1rZfugoF80YxiUnDGPZzqaEe9zmmrQOXUTcwC+Bi4BpwLUiMi3BoY8ppWaHv+7Psp0xFOV5mDqshBU7m9m4vxWvWxgX1sLGVBayq/FoTgb88Ubow4ZYedJn/+Q1fvHKZkIhRWcgyNtbDnHW5OrItmRglYNn2lL12bX7eGJFPTf8fmnawplAGg06FZNrSxg2JJ9XNx5M+P6L66xp5vH0okm3nVlv1gDiGVNZxCUnDOM3r291TLZIpqGDJbntamqPSbvd1NBGSZ4nMnZGlRfQ4Q9xMIOHdy7wR5XO2wzRKEKPXwMAGFdVzLZDye+1YEix5UAb6/Ye4XdvJU4bff79/YjAR6bXcvHMYWHZpf+j9Ezu7HnAFqXUNqVUF/An4PLcmpWek0aXs3p3C+v2HmF8dXHkDzSmopCjXUEOtWU/YjiePHSAK2aP4N7rTmRCTTH//dImXt7QwLLtzbR3BTl7ck3MsRNqijnU1klzBilqa3a3UJrvYVNDK595YFnKfVf9SbotZoKIcNbkGt7acqjHpthKKRZvPAD0fROSVbuamfmdF1mVorWDP0VhVCb8v0um4nYJ331mPYFg6v70uSCZ5AKWnusPqpiOl1ZhV3HkYT+qwlo4d6oewI5Qo3+HsgJ9NPT41gVgLYymGrP7j3TQFQxRkufh7pc28ZvXt3LVr97hN69vjRzz8oYGTh5TQU1JPhPCC9ivb0oc+OSSTO6MEcDuqP/Xh1+L5+MislZEnhCRUVmxLgUnjimnvSvIO1sOMXloSeT1MWEdelcOFkZtyaWvWS4ul3DxzGE8cNPJjCwv4Nevb+XVDw9YFaJxC3iRhdEM9vlcW9/CmZNruPPKmSzb0czrHyYfSMcjuQCcM6WGts4Ay3fEyi7r9h6JFGj01aH/8b1dBEKKV1PYHwwl3lM0U4YNKWDRuRN5eUMDE771PFP+4wUWb2zo8/l6SyqHnijTZfOBtojcAt0Ovd6hbCN/SOEL7ydqY2voqWbFjy7dxfq9uesiminxefRgPUhb2v1Jgyc7Dfo7l03H53bxw+c3srb+MI8ts9xia4efDfuOsGBC9z08ZVipI5uuZ2tR9BmgTil1AvAS8GCig0TkVhFZLiLLDx48vqfXSeECI2tBtDTy+phw6t+OHCyMhpSd8nR8l83jdvHZM8axclcLjy/bzSnjKij0eWKOsdvZptPRD7R2sPdwB7NGDuHKOSMYUuDlufeTT/X8gb4vioKVOeJzuyLRuM0rGw4gYv1d+uLQWzv8EbuXhIuCEpGqMCpTPnP6WL572XS+fP4khg/J59evbzuu8/WGZKX/QEQ2tPv47G5qp+loV0zAYq+zOCUZ+QM9+9GXFfgIhlSkh048Hf4g33ryfX6xeHN/mJgSv73JddRD1b7uyWQXOzicN7aCJ25bwLO3n86XPzKJbYeOcqitkzW7DxNS3T4JrMXW+ub2HjPZXJPJnb0HiI64R4Zfi6CUalRK2aLe/cBJiU6klLpPKTVXKTW3urq6L/ZGGFFWENnpfUrMgC/EJfRpYXTDviPc/fcPk0Ya9nStrxp6NJ+YO4qKIh+tnQHOipNbwPr9CrzutJkua8OthGeNKsPrdvGRabW8tL4haTVkJouKqSjK83DKuApe/TDWoS/e2MDsUWWcNKacnXE6cCY8s2Yfx/xBTq4rZ9XulpzZD5Z+esOCOhadO5GbThvL0u1NrNvbPy2ZU0XoVcV5TBtWyt/DaxF/X2/NHKLHR6HPQ1WxL0ZyCQRDfOMva3kt7m+SCwKhnjteDUnToGvrwTZCCt7b1uh43/T4fu5gFRcBvLOlkZv+sJTfvhH7gN/Z2I7HJQwbks/koSXMGDEkUpuxfEczK3Y2IwKzww3swIr6Q6r/ex9lcmcsAyaKyFgR8QHXAE9HHyAiw6L+exmwIXsmJkZEIk/E6AjG53ExvKyg13uPdgaC3P7oKu5ZvCXpYuTxLopGU+Bzc9OCOkQsGSOe7r0mU6cBrq1vwSUwPZyBcvEJw2jtDPDW5kMJjz+eRUWbsyfXsPXgUd6vt5xgw5EO1tQf5twpNYytKqIrEGJvS+803seW72ZSbTG3nDGOrkCItfWJHWw27I/mEyePotDn5oG3d7DlQCt3/N8HkeZeuSCoUqddXjRjKCt3tbD/cAcvfrCfKUNLIql1NiPLYwu8lu1o5k/LdnPbH1dG/ia5oivBGoxd/p+oxgKIBCXN7f6cNZ3LlERplyPLC/C4hP9+aROvfniQ37yxNSabZWdTu3VM1ENgxohSfB4Xy3c0sWJXM5NrSygJF66Bc5vap3XoSqkA8HngRSxH/bhSap2IfE9ELgsftkhE1onIGmARcGOuDI7m4yeO5ILptZEMAJsxlYXs7GW16C8Xb4nIG+8lmfIHVWyV2fFy21njeW7RGT1uWJuJNelTF1fXH2ZSbUlEsjltfBWl+R7+lkB2sdv/Hs+iIsBls4cztDSfzzy4jNW7W7jpD8vwuIQLZwzLOK83mo37j7BmdwufmDuKeeHIJ5HsErE/iw59SIGXj584kqdW7+Gin7/JQ+/u5IkV9X06V31zOyff+XLKxbBgmjz6i2Za7ZMfXrKTZTubuGD60B7HxFfsvrS+AZ/HRUWRj888uCyn6XKBBHUMZWl6/W9qaMWW3N9NIaf1B/4EhVFet4vZo8qYVFvM1y6czKG2Lt7b1r1GtLupPbJ2YZPncTN7ZBlLdzSxamdzjNwCVvdMgO0psmdyQUZ3tlLqOaXUJKXUeKXUneHX7lBKPR3+/t+VUtOVUrOUUmcrpTbm0mibc6fW8pvr58Ys0EA4F70XEfqGfUe497WtXDlnBMOH5Cd36KGeK/zHg8ftYuqw0qTvj68pZl+KvSaVUqytb2HWyLLIaz6Pi49MH5pQdgkk0A/7QlVxHg99Zh4d/iBX/PJtth1q4/4b5jKhpjji0HtTSv3gOzvJ87j42IkjKS/yMWVoCUu298x1784yym493E2n1eFzu7hk5jDGVRcl/fun46cvbeZgaycvpEhXS/dAmlBTwsSaYn79+laU6nbw0YwqL2BvSweBYAilFH9fv58zJlTx+xtPpuWYn1+9lru+6f4EaxjpNrnYfKCN8dXF1FUW8u7WxDPH/iJRpSvAw589hRe/uJCbTxtLcZ6HZ9bsjby3s7E9sjYXzdy6ctbWH6a1M9DDoQ8p9FJZ5Bt4EbqOzBwxhOZ2f49MjES0tHfxuT+uoKzQx39cOo354yt5b1tTQq0vmxp6JkwdZklJ65JkB+xqaqel3c+sKO0OrGl7a0eAJdtif//IYPYc/599Um0Jf7jpZE6uK+ePnzklovPWlORR6HNnvMLf0t7Fk6vquXLOiMiGJvPGVrBiZ3OP9MvAcaaNJmNcdTFrv3MBP7tmDgsnVrN8R3OvF7M2N7Ty5Kp6XEJMdBdPKg3d5qIZQ/EHFXWVhZHGaNGMqigkGFLsP9LBhn2t1Dcf4yPTa5k8tITzp9by7Np9KVNXj4dEWxim67i4uaGVSbXFnDq+kiXbmpIW5/QH/mAIkZ73cJ7HjYiQ73XzkWm1PP/BProCIQ63+zl8zM+Yip6zaFtHB3o4dLAWRvs702VQOvQrZo+gvNCbNHvh6TV7OeU/X+ZHL2zkXx9Zyd6WY/zm+hOpKPJx6rhKmo52JdTRbcmlvxz67FHWIElWeWm/fkJUR0Gw2g/neXpmonTvB5kd+08aU8GfP7eAuVEDW0Qivb0z4bFlu+nwh7hhQV3ktVPGVtLeFeyho0eKQo4zyygR9t90/rhKjvmDrK1v6dXP/+TvH1Lo83DbWePZfuhoUtkjnYYOcOEMa0nqgulDe8w+AUaVd+ei/339/vA6TC0Al88eTuPRrqRrKMdLotYR9qLow0t28bF7344s6oKV4bKzqZ2JNSWcOr6K1s5A0gDFPn8uF079ocR76kZz6axhHOkI8Obmg5FFzdEJIvQTR5cjYvVUH13R8/1st+bNhEHp0At8bm5YUMfLGxoS9hZ5Zs1eWtr9/Ob1rby9pZE7r5zJSWMspzR/nJVLmmhqGJny95NDryjyMaaykNW7WhK+v2xHE8V5npgsH7B+/wXjK3n1wwMxGTuJVvhzQV2GAzkQDPHQuzuZP64iRno6faL1QIpvE5vNRelknDLWGge9kV1e33SQF9c18NkzxnFR2Bknle0y6EUzbXgpv7ruRP7lrAkJ3x8V3qv2d29t56lVezhpdDnV4bYGZ02uoazQy1Orc9NiN1HaaJ7HzZShJRwIzxii1yC2HGhDKasXzanhe+uVDYnz/v3BEOfd/To/fD53ORWBoEpbWHf6hGqGFHj507LdkUZ/iRz2kEIvs0eVcfqEqoQP3rHVRRxo7UyazpkLBqVDB/j0qXXke13cF5eCFAoplm5v4orZI3j1q2fx4M3z+MTc7qzMURWFjCwvSDhtDvSDQ4ln9qgyVu1OXDm5dHsTJ44pT6gpnzOlhp2N7TE7O+VKsohnXFUR9c3H0soW72xtZE/LMW6Mis7BWqi8aMZQnlq9J6aSM74Xdy6wNfxUskk0zUe7+Lc/r2FiTTH/fOY4pg4rpTTfw7tbEzv0TBd1L5o5LBL5xjOirIDTJ1Tx1paD7Ghs56Ozhkfe83mstYAX1+3PiSPxJ0hbBHj+C2ew4j/O56IZQ1m1uyUSSNiL+pNqS6guyeO8qTX86vWtCTd6X7zxADsb23nw3Z0cSLDRRzYIBENp12B8Hhc3nzaWl9Y38NeV1oMxkUMH+ONnTuGuj5+Q8D17YTTZXrG5YNA69IoiH5+cO4onV+2Jmf5u2H+Ew8f8zB9fwZjKIs6c1DMffv64St7b3tgjlzrYzxo6wJxRZTQc6eyxC1Pz0S42NbRFIsp4zg6nQr4aJbvkUrKIZmxVEcGQinQKTMYbmw7i87g4c1LPtM1PnDyK1o4AL0S1IY3f4DdXnDq+kuU7m9I+kJRSfPPJ92lu7+Knn5xNvteN2yWcEh4/iQgqFWlH3Fc8bhd/vOUU1n/3QpZ96zyunz8m5v0r5oygwx+KkT6yhVWY1tN+O0KdM7qMg62d7AmnrW5qaMXjkkgn0Z9cPYuhQ/K57Y8remzg8qeluygv9BIIhvj9WzuybjtYe+pmEhB8duFYhpbms3jjAaqK8yjK8yQ8rijPE7N3cDR2r/X+lF0GrUMHuOWMcQRDij+83d1Qx468ThlbmezH+Mi0Wlra/Ty7dm/M6/2toQPMDu9YvypOdlkWXvCdl8ShjywvZFJtcYyOHgj2T4R+cl0FxXkebvzDsqSdGQHe2HyQeXUVFPh63hDzx1YyprKQPy3bFXktfnOCXDF/XCUd/hDLU9gOVvbG8x/s5/ZzJjJjRPc6xvxxlexsbE+Yi5+qOVdvcbmE6pK8Hg+Ik0aXM2xIfq97cgdDiu8/uz7p7AKsh2oqyW5OeLyuDI/XTQ1t1FUV4fPYe5D6+M2n5nL4mJ/PP7IyEmTsbTnG65sO8qn5Y7h45jD++N7OnPSHSbWFYTSFPg//dsFkgIQZLplQV2kcelYZVVHIJScM5+EluyJdCN/b1siYykKGhzc9TsR5U2uZXFvCPa9sjonSuzX0/rtsU4eV4HO7eiyMLt3ehM/j6rEgGs05U2pZur0pUvCRqNNcLhhVUciT/7KA4jw319z3XsINr/cdPsamhjYWTqpKcAbLWX1i7ije29bEtnA/m/6SjBaMr6SyyMd3nl6XsvujnSt/xezY1ka2Vvz9Z9fH7P+plApnueT2+rtcwkem1fLGpoO0d2Uuuzy8ZCe/e2s7//LwiqQ77nSlaY42ZWgJ+V5XpMHa5gOtkR24bKYNL+Wuj53Aku1N3PW8leH8+PLdKKwK6n89ewJtnQEeXrozY9szJRBSeD2ZjZ8r54zgjIlVnDYh8RhNR77XzYiygsj4zYSX1jfEzKp7y6B26AD/vHAcbZ0BHlmyK6Kfz08RnYN1Qyw6dyJbDx6NKdDp1tBzanIMeR4304aX9lgYXbqjidmjysjzJJ7uAXx01jACIRXpCtcfGrTNxNoS/vy5BQA8sWJ3j/ffDGdhnDExeQuIq+eOpMDr5kcvWDd9IJKlk9s/QEm+l59+cjabGtr47jPrkh63dEcztaV5kUVKm6nDSvjy+ZN4aX0D5939euQG7c9F9QumD6UzEOKNDDv+HWrr5McvfsiskUM45g/ylT+vIRRSPTJOAsEQvhTjx+N2ccLIMlbtamH5jiZ2NrYzd0zPWeQVc0Zw02l1/O6t7Zx39+v88tUtnD6hilEVhUwdVsqsUWUs3pD9VgZdCdIuk+FyCf/7mVP48vmT+vx5U4eVZrw/QIc/yFceX83tj66isY/tkQe9Q58xYghnTKzi169v5Ucvbozo5+m4aMZQJtYU88PnNrDo0VX88LkNUa1D+/eyzRldxto9LTy9Zi/LdjRxsLWTdXuPJNXPbaYPH8LH5ozg/re2U9/cHrXJdf/YX12Sx5mTanh6zd4e6xFvbDpIdUlejwydaGpK8vn8ORN4cV0Db20+1K8PpIWTqvmXs8bzp2W7eXl9z6wMpRTLtjdxcl1FjwwHESsgeHbR6QwtzefmB5dx72tb+nVRfd7YCsoKvby4Ln0nSaUUd/5tAx3+IHd/cjb/75JpvLn5EFPveIFx33yOX0e1ifVnIFnMGV3Gur2H+dELG6kqzuOaeYmbr37z4qlcd8po6ioLueHUupjFxQXjK1m9u4WjGS7sdviD7G5qZ9vBNg60diRNfbQWRftPMl0wvpIdje2RNYVUPPf+Po50BGjrDHDPK31rZJZY6R9k3HHpNL76xFp+E85LT6Wf27hcwjcvmcr3n13P8h1N7D3cwdUnjQT6L23RZuGkah54Z0eP3cST6efR/NuFk3nug3386IUPI9kk/TmgL589nJc3NLB0e1OkRXAwpHhryyHOmVKTMN0rms+cPpbHlu3mO8+s44LpVq51fz2Qvnz+JF5Yt58fv/gh50ypidGq65uPsf9IR8q/wZShpfzltgV87S9r+a8XPsTOIO0Ph+5xuzh3Si0vrd+fctvBg62dfP0va1m88QC3nzOB8dXFjAsvatc3t7NqVws/f3kzV84ZQW1pvpX2l6Ywbc6ocvzBbSzb0cy3PzqtRydRG6/bxZ1Xzkz43oLxlfzqta0s29GUsHldNP5giAt+9kZMuw+f28VHZw3n+1dMj/l8K22x/wIye8y/u7WRq8L+IxmPLt3F2KoiTh1fycNLdnHDgjrGVRen/Jl4/iEc+sTaEp76lwWs2NnM/iMdKfXzaM6eXMPZk2s41hXk5Dtfjsgvx5ul0FvOnlzD6js+wsHWDnY1tbNyZwuNRzszcujDhhRw68Lx3PPKZmaF9fb+HNDnTa2l0Ofm6TV7IoN78cYDtLT7WZhCbrHJ97r5j0un8dmHlrPlQBuFPnePvhq5wuN28YVzJ/KFP63mb+/vi0kPXBpuTRBdLZiIAp+be66ZTfPRLu591SrJ76+A4ILptfxlZT3vbWtMKG0dbvdz6S/epKXdz3cvm86nT7WyZUQkUui1s/Eo59/9Bj958UN+fPWssGSR2v4Tw3v+DhuSz7XzRvfJ9rljKvC6hXe3NaZ16M+u3cvOxnYWnTOBcdXFHOmwmoA9unQX6/Ye5t7rTow4xq4M0hazyeTaEiqKfGkd+qaGVpbtaOabF0/hijkjeGrVHr755Ps8cNO8pFk0iRj0kouNiDC3roJLTxie/uA4CnxuLp45lPbwAll/R+hg5WZPqCnhnCm1fPWCyfzwYyek1M+j+ewZYxlS4OVXr1lT5/506AU+NxdMH8rf1u6jvSvAjkNH+crjq5kytCRh46lEnD+tlle/ehZLvnku73/ngpjumrnmoycMZ1JtMT97eVOMbLRsRxOl+Z6EpfnxiAjfuGgKR8Pjp7+ypBZOqqaiyMf3n12fULr46cubONjayWP/fCo3LKhLOFsaU1nEjafV8cTKej7YczijfvQ1pflcd8povnf5jF45o2gKfG7mjCpPmXEDllz0m9e3Mam2mC+eN4kr5ozg06fW8Z9XzuSBm+ax/0gHF/78TX760iY6/EErQu/H+9flEk4dV8m7Ww+l3QDE6xY+fuJIakry+d7lM1iyvYnPPLiMrQfbeO79fZE++Sk/L5vGD2Y+dmL307U/0xazQUm+l1tOH0tjOOOiPyUXgKtOGsmRjgDz//MVrv3te7hdwm8/PTdhumIyxlYVUVua3+/X3uUSvnTeJLYePMrC/3qVrzy+hqfX7OW9bY2cXFeR8WxtxoghXD7bCib663fI97q555o5bDnQxr89sSbGoWxqaOV/39vJtfNGx/TxTsS/nj2BsgIvd/5tQ0r5Jpo7r5zJ+dNqj8v++eMr+WDP4aRtecGq0t24v5VbF47v8bc4c1I1f//iQi6cPpSfv7KZ/3jqA2uDkX4e/6eOr2Tv4Y6kHWAPtXXy2LLdXDxzGJXhjc2vOmkkP7lqFu9ubeTc/36df3l4JTc/sCzpPgE2xqFnyLy6CkaEpRp3H7egc5IbTqujNN9S2HJdWBTPaROqeOSzp3DOlBqUgl9ed2K/ySbZ4MIZQ/nxVSdwwsghLN7YwKJHV7GjsZ2TM5C8ovnqRyZTUeSL9GLpD06fWMW/XzSV59631gKUUnQFQnzn6XUU+dx85SOT055jSIGXL50/iXe3NdJ4tKvfZngLxlcSUt3yVjxdgRD3vLKZoaX5XDYr8cy7pjSfe66dw3WnjOb/1uylsa3/7LdZEJYa30ky27j31a10BkJ84dyJMa9//KSRPPLZ+Xz/8un84IoZ7DvcEalcTcY/hIaeDVwu4aqTRnLva1v6PI10ktJ8LzefPpafvby5V5FxtlgwvooF4/uWz+s0IsLVc0dx9dxRBEOK1bubWbajmWtO7t3WuaMqCln+rfP6fQ3mljPGsr3xKPe+tpUOf4g19S2s2NnMf145M9LhMh3XzhvNg+/sYOvBo/2SZQRWtky+18UPn9tAe1eAS2YOi+jfXYEQ//rISlbuauG/r54VKVxKxj+dMpqHl+xi26Gjkc0n+ouxVUUMLc3nf9/byWkTKiP7HgPsaTnGH9/bycdPHJFwAXT+uErmj6tEKcWfV9Rzb5rWyCZC7wWfP2cCz9x+uiMOMRvcdtZ4fvvpuYyv7t8BPZhwu4STxlTwuTPHRzZ26A397czBeiD94PIZXDtvNL9/ezsb9h3hF9fO4Z9OyXzB0ut28a1Lpka+7w/yPG7uve5E3C7hC39azbl3v84jS3bx5+W7+dT9S3hpfQPfu3w6H0+TPQJWCq9dhNffa2Aiwncum0Z9czsX/OwNfvbyJg4c6WDrwTa+8Ze1ACyKi84TneP2syfEbD2Y8LhUQn0umTt3rlq+fLkjn20w/CMSCin+vGI3J40pZ0JN7xeWlVI8+M4OTp9Y1aef7yuhkOKlDQ388tUtkZbKtaV5fPG8Sb3Konl4yU6+9eQHXHLCMH75Tyfmytyk7D/cwR3/9wF/X9+A2yUEQwqfx8XXLpjMLWeMS/vzSikuvuctXvjiwhVKqbmJjjEO3WAwaIFSipW7msnzuJk+vDRtDUM8rR1+5t35ChfPHMZ/f2JWjqxMz/ZDR/nz8t3ke91cO290pPVxJqzfe4TpI4YYh24wGAxLtzdRXZKXdB9fHRCRpA7dLIoaDIZ/GDIpxtMZsyhqMBgMg4SMHLqIXCgiH4rIFhH5RoL380TksfD7S0SkLuuWGgwGgyElaR26iLiBXwIXAdOAa0VkWtxhnwGalVITgJ8CP8q2oQaDwWBITSYR+jxgi1Jqm1KqC/gTcHncMZcDD4a/fwI4V3q7BG0wGAyG4yIThz4CiN6hoD78WsJjlFIB4DCQvketwWAwGLJGvy6KisitIrJcRJYfPJjZTioGg8FgyIxMHPoeILppxcjwawmPEREPMATo0YlGKXWfUmquUmpudXX6XtgGg8FgyJxMHPoyYKKIjBURH3AN8HTcMU8DN4S/vwpYrJyqWDIYDIZ/UDKqFBWRi4GfAW7g90qpO0Xke8BypdTTIpIP/C8wB2gCrlFKbUtzzlbgw+O030mGYK0V6Iru9oP+v4Ox31l0tX+yUiphMx3HSv9FZHmy8lUdEJH7lFK3Om1HX9HdftD/dzD2O4uu9qfynaZStO8847QBx4nu9oP+v4Ox31l0t78HJkI3GAwGjRioEfp9Dn62wWAw6EpS3+mYQ1dKaeXQE/WzEZGHw699ICK/FxGv03YmI4n9vxORNSKyVkSeEJGee2ANEFL1ExKRe0SkzSnbMiHJ9X9ARLaLyOrw12yHzUxKEvtFRO4UkU0iskFEFjltZzKS2P9m1LXfKyJPOWxmRqT0nUop85XmCyu7ZyswDvABa7D62lwMSPjrUeA2p23tpf2lUcfcDXzDaVt7Y3/4vblYGVZtTtvZh+v/AHCV0/Ydh/03AQ8BrvBxNU7b2tvxE3XMX4BPO23r8X71W4Se5An5+fD/lYgM5B2EE/azUUo9p8IAS7GKrgYiyew/AlakBRQAA7V2IKH94cZxPwa+5qh16cmkH9JAJpn9twHfU0qFAJRSBxy0MRUpr7+IlALnAE85Y1726BeHnqJj49vAecDO/rDjOEjZzyYstVwPvNDPdmVKUvtF5A/AfmAK8Iv+Ny0jktn/eeBppdQ+R6zKnFTj586w5PVTEcl8L7L+JZn944FPhtt5PC8iqXc6do50/aiuAF6xAxyd6a8IPVmEuEoptaOfbMgl9wJvKKXedNqQ3qKUugkYDmwAPumwOb2hELiagfsQyoR/x3qQngxUAF931pxekwd0KCvj4rfA7x22p69ciyWZak9/OfRMOjYOZJL2sxGRbwPVwJcdsCtTUvbjUUoFsR6yH+9nuzIlkf1bgQnAFhHZARSKyBYHbMuEhNdfKbUvrNh1An/ACnwGIsnGTz3w1/BrTwIn9LNdmZLq/q3Cuu5/c8CurGMKizIjYT8bEbkFuAC41tYRByjJ7J8AEQ39MmCjgzamIpH9Tymlhiql6pRSdUC7sjZYGYgku/7DIHL9rwA+cM7ElCTr5/QUcHb4mDOBTc6Yl5ZU/aiuAp5VSnU4Zl0W6a9NojPp2DhgUUoFROTzwIt097NZJyJrsPT/d617kr8qpb7noKkJSWQ/lsTyZnhBSLBW/m9zzsrkJLv+DpuVMSnGz2IRqca6/quBzzloZlJS2H8X8LCIfAloA25x0s5kpBk/1wB3OWZclumXSlGxWupuAs7FcuTLgH+yL2p4yjxXKXUo58YYDAbDIKVfJBdl7WJkPyE3AI+Hn/CLRKQeK2JfKyL394c9BoPBMBhxrJeLwWAwGLKLWRQ1GAyGQYJx6AaDwTBI6M/S/5TNk0TkNREx7XQNBoOhj5gI3WAwGAYJ/erQReQsEXk26v//IyI39qcNBoPBMFgxEbrBYDAMEoxDNxgMhkFCfzv0QNxn5vfz5xsMBsOgpb8d+k5gmojkiUgZVisAg8FgMGSBfmnOFe7l0qmU2i0ij2N1ldsOrOqPzzcYDIZ/BPqrOdcs4LdKqYHa79lgMBi0J+eSi4h8Dms3kP+X688yGAyGf2RMcy6DwWAYJJi0RYPBYBgkZM2hi8goEXlVRNaLyDoR+UL49QoReUlENof/LQ+/PkVE3hWRThH5atR58kVkqYisCZ/nu9my0WAwGAYzWZNcwvsjDlNKrRSREmAF1j6JNwJNSqm7ROQbQLlS6usiUgOMCR/TrJT6Sfg8AhQppdpExAu8BXxBKfVeVgw1GAyGQUrWIvTwDuYrw9+3Yu1MNAK4HHgwfNiDWA4cpdQBpdQywB93HqWUsjszesNfRug3GAyGNOREQxeROmAOsASoVUrtC7+1H6jN4OfdIrIaOAC8pJRakgs7DQaDYTCRdYcuIsXAX4AvKqWORL+nLH0nbbStlAoqpWZj7TU6T0RmZNtOg8FgGGxk1aGHNe+/AA8rpf4afrkhrK/bOvuBTM+nlGoBXgUuzKadBoPBMBjJZpaLAL8DNiil7o5662nghvD3NwD/l+Y81eE+L4hIAXA+sDFbdhoMBsNgJZtZLqcDbwLvA6Hwy9/E0tEfB0ZjNef6hFKqSUSGAsuB0vDxbcA0oA5r8dSN9cB5XCn1vawYaTAYDIMYUylqMBgMgwRTKWowGAyDBOPQDQaDYZBgHLrBYDAMEoxDNxgMhkGCcegGg8EwSDAO3WAwGAYJxqEbDAbDIME4dIPBYBgk/H99Nm3K4UUBlQAAAABJRU5ErkJggg==\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "def get_forecast(meter_id, start, end):\n", " # Access API to get cluster endpoint name and temporary credentials\n", " http = urllib3.PoolManager()\n", " endpoint = \"forecast/{}?data_start={}&data_end={}&ml_endpoint_name={}\".format(meter_id, start, end, ML_endpoint)\n", " forecast_api_url = APIUrl.format(endpoint)\n", "\n", " response = http.request('GET', forecast_api_url)\n", " return response.data.decode()\n", "\n", "resp = get_forecast('MAC000003', \"2013-01-01\", \"2013-07-01\")\n", "\n", "# resp content like {\"consumption\":{\"1370044800000\":0.4627876282,\"1370048400000\":0.2913050354,...}}\n", "\n", "# convert response to dataframe and visualize\n", "df = pd.read_json(resp)\n", "df.plot()\n" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " meter_id lat long\n", "0 MAC000032 40.705614 -73.921530\n", "2 MAC000006 40.716059 -73.991908\n", "6 MAC000021 40.759570 -73.914268\n", "7 MAC000019 40.677274 -73.982820\n", "8 MAC000020 40.727434 -73.993790\n", "11 MAC000028 40.794566 -73.936254\n", "18 MAC000030 40.739355 -73.999318\n", "21 MAC000011 40.768009 -73.968453\n", "22 MAC000034 40.733670 -74.062500\n", "27 MAC000003 40.712605 -73.962644\n", "28 MAC000012 40.794067 -73.962868\n", "30 MAC000016 40.674706 -74.007557\n", "32 MAC000029 40.760683 -73.984527\n", "33 MAC000007 40.744449 -73.983035\n", "34 MAC000002 40.712419 -74.038526\n", "35 MAC000025 40.695020 -73.928250\n", "36 MAC000022 40.774667 -73.984706\n", "38 MAC000010 40.768762 -73.958408\n", "39 MAC000026 40.810949 -73.963400\n", "40 MAC000033 40.778567 -73.977550\n", "41 MAC000013 40.810000 -73.955151\n", "42 MAC000024 40.675327 -74.010070\n", "49 MAC000009 40.812346 -73.946168\n", "52 MAC000018 40.811432 -73.951878\n", "63 MAC000008 40.800933 -73.913863\n", "68 MAC000035 40.801194 -73.950074\n", "75 MAC000027 40.724605 -74.078406\n", "78 MAC000023 40.676530 -73.978469\n", "79 MAC000004 40.712605 -73.962644" ], "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
meter_idlatlong
0MAC00003240.705614-73.921530
2MAC00000640.716059-73.991908
6MAC00002140.759570-73.914268
7MAC00001940.677274-73.982820
8MAC00002040.727434-73.993790
11MAC00002840.794566-73.936254
18MAC00003040.739355-73.999318
21MAC00001140.768009-73.968453
22MAC00003440.733670-74.062500
27MAC00000340.712605-73.962644
28MAC00001240.794067-73.962868
30MAC00001640.674706-74.007557
32MAC00002940.760683-73.984527
33MAC00000740.744449-73.983035
34MAC00000240.712419-74.038526
35MAC00002540.695020-73.928250
36MAC00002240.774667-73.984706
38MAC00001040.768762-73.958408
39MAC00002640.810949-73.963400
40MAC00003340.778567-73.977550
41MAC00001340.810000-73.955151
42MAC00002440.675327-74.010070
49MAC00000940.812346-73.946168
52MAC00001840.811432-73.951878
63MAC00000840.800933-73.913863
68MAC00003540.801194-73.950074
75MAC00002740.724605-74.078406
78MAC00002340.676530-73.978469
79MAC00000440.712605-73.962644
\n
" }, "metadata": {}, "execution_count": 16 } ], "source": [ "def get_outage(start, end):\n", " # Access API to get cluster endpoint name and temporary credentials\n", " http = urllib3.PoolManager()\n", " endpoint = \"outage?start_date_time={}&end_date_time={}\".format(start, end)\n", " outageAPIUrl = APIUrl.format(endpoint)\n", "\n", " response = http.request('GET', outageAPIUrl)\n", "\n", " return response.data\n", "\n", "# Call rest API to get outages\n", "resp = get_outage(\"2013-01-03 09:00:01\", \"2013-01-03 10:59:59\")\n", "'''\n", "resp content like {\n", " \"Items\": [\n", " {\n", " \"meter_id\": \"MAC000030\",\n", " \"reading_date_time\": \"2013-01-03 14:30:00.000\",\n", " \"reading_value\": 0.084,\n", " \"week_of_year\": 1,\n", " \"day_of_month\": 3,\n", " \"month\": 1,\n", " \"year\": 2013,\n", " \"hour\": 14,\n", " \"minute\": 30,\n", " \"reading_type\": \"INT\",\n", " \"date_str\": \"20130103\",\n", " \"lat\": 40.73935542,\n", " \"long\": -73.99931783\n", " },\n", " ]\n", "}\n", "'''\n", "data = json.loads(resp)\n", "df = pd.DataFrame(data['Items']) \n", "df_result = df[['meter_id', 'lat', 'long']].drop_duplicates()\n", "df_result" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 26 }, { "output_type": "display_data", "data": { "text/plain": "
", "image/svg+xml": "\n\n\n\n \n \n \n \n 2020-11-18T14:42:07.636396\n image/svg+xml\n \n \n Matplotlib v3.3.3, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "def get_aggre(year, meter_id):\n", " # Access API to get cluster endpoint name and temporary credentials\n", " http = urllib3.PoolManager()\n", " endpoint = \"consumption/monthly/{}/{}\".format(year, meter_id)\n", " aggreAPIUrl = APIUrl.format(endpoint)\n", "\n", " response = http.request('GET', aggreAPIUrl)\n", "\n", " return response.data\n", "\n", "# Call rest API to get outages\n", "resp = get_aggre(\"2013\", \"MAC000003\")\n", "'''\n", "resp content like [\n", " [\n", " \"MAC000003\",\n", " 2013,\n", " 1,\n", " 1070.2750029\n", " ],\n", "'''\n", "\n", "df = pd.read_json(resp)\n", "df.plot()\n" ] } ] }