├── .gitignore ├── LICENSE ├── README.md ├── data ├── journeys.csv.gz ├── stations.csv.gz ├── winequality-red.csv.gz └── winequality-white.csv.gz ├── numpy_histo.py ├── pandas_histo.py ├── pandas_visualisation.ipynb └── wine_quality_prediction.ipynb /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | *.egg-info/ 24 | .installed.cfg 25 | *.egg 26 | MANIFEST 27 | 28 | # PyInstaller 29 | # Usually these files are written by a python script from a template 30 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 31 | *.manifest 32 | *.spec 33 | 34 | # Installer logs 35 | pip-log.txt 36 | pip-delete-this-directory.txt 37 | 38 | # Unit test / coverage reports 39 | htmlcov/ 40 | .tox/ 41 | .coverage 42 | .coverage.* 43 | .cache 44 | nosetests.xml 45 | coverage.xml 46 | *.cover 47 | .hypothesis/ 48 | .pytest_cache/ 49 | 50 | # Translations 51 | *.mo 52 | *.pot 53 | 54 | # Django stuff: 55 | *.log 56 | local_settings.py 57 | db.sqlite3 58 | 59 | # Flask stuff: 60 | instance/ 61 | .webassets-cache 62 | 63 | # Scrapy stuff: 64 | .scrapy 65 | 66 | # Sphinx documentation 67 | docs/_build/ 68 | 69 | # PyBuilder 70 | target/ 71 | 72 | # Jupyter Notebook 73 | .ipynb_checkpoints 74 | 75 | # pyenv 76 | .python-version 77 | 78 | # celery beat schedule file 79 | celerybeat-schedule 80 | 81 | # SageMath parsed files 82 | *.sage.py 83 | 84 | # Environments 85 | .env 86 | .venv 87 | env/ 88 | venv/ 89 | ENV/ 90 | env.bak/ 91 | venv.bak/ 92 | 93 | # Spyder project settings 94 | .spyderproject 95 | .spyproject 96 | 97 | # Rope project settings 98 | .ropeproject 99 | 100 | # mkdocs documentation 101 | /site 102 | 103 | # mypy 104 | .mypy_cache/ 105 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 techcraftco 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ipad-data-science -------------------------------------------------------------------------------- /data/journeys.csv.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techcraftco/ipad-data-science/92badf12d1e54773e6ccf1910d8751aa3d7d2e46/data/journeys.csv.gz -------------------------------------------------------------------------------- /data/stations.csv.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techcraftco/ipad-data-science/92badf12d1e54773e6ccf1910d8751aa3d7d2e46/data/stations.csv.gz -------------------------------------------------------------------------------- /data/winequality-red.csv.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techcraftco/ipad-data-science/92badf12d1e54773e6ccf1910d8751aa3d7d2e46/data/winequality-red.csv.gz -------------------------------------------------------------------------------- /data/winequality-white.csv.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techcraftco/ipad-data-science/92badf12d1e54773e6ccf1910d8751aa3d7d2e46/data/winequality-white.csv.gz -------------------------------------------------------------------------------- /numpy_histo.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import matplotlib.pyplot as plt 3 | 4 | df = np.loadtxt('data/journeys.csv.gz', skiprows = 1, delimiter= ',') 5 | start_hours = df[:,11] 6 | 7 | plt.hist(start_hours, 24) 8 | plt.title("Journey Start Hours") 9 | plt.xlabel("Count") 10 | plt.ylabel("Hour") 11 | plt.show() -------------------------------------------------------------------------------- /pandas_histo.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import matplotlib.pyplot as plt 3 | 4 | df = pd.read_csv("data/journeys.csv.gz") 5 | 6 | plt.figure() 7 | hist = df.hist(column = "Start Hour", bins = 24) 8 | 9 | plt.title("Start Hours") 10 | plt.xlabel("Hour") 11 | plt.ylabel("Count") 12 | plt.show() 13 | -------------------------------------------------------------------------------- /pandas_visualisation.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "metadata": { 5 | "trusted": true 6 | }, 7 | "cell_type": "code", 8 | "source": "import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt", 9 | "execution_count": 2, 10 | "outputs": [] 11 | }, 12 | { 13 | "metadata": { 14 | "trusted": true 15 | }, 16 | "cell_type": "code", 17 | "source": "df = pd.read_csv(\"data/journeys.csv.gz\")", 18 | "execution_count": 3, 19 | "outputs": [] 20 | }, 21 | { 22 | "metadata": { 23 | "trusted": true 24 | }, 25 | "cell_type": "code", 26 | "source": "df.head()", 27 | "execution_count": 4, 28 | "outputs": [ 29 | { 30 | "output_type": "execute_result", 31 | "execution_count": 4, 32 | "data": { 33 | "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
Journey DurationJourney IDEnd DateEnd MonthEnd YearEnd HourEnd MinuteEnd Station IDStart DateStart MonthStart YearStart HourStart MinuteStart Station ID
02040.095319917180478199171726251
11800.012581199171521122199171451550
21140.0115915917171639159171642212
3420.0237514917121675514917129163
41200.01465913917193360513917191336
\n
", 34 | "text/plain": " Journey Duration Journey ID End Date End Month End Year End Hour \\\n0 2040.0 953 19 9 17 18 \n1 1800.0 12581 19 9 17 15 \n2 1140.0 1159 15 9 17 17 \n3 420.0 2375 14 9 17 12 \n4 1200.0 14659 13 9 17 19 \n\n End Minute End Station ID Start Date Start Month Start Year \\\n0 0 478 19 9 17 \n1 21 122 19 9 17 \n2 1 639 15 9 17 \n3 16 755 14 9 17 \n4 33 605 13 9 17 \n\n Start Hour Start Minute Start Station ID \n0 17 26 251 \n1 14 51 550 \n2 16 42 212 \n3 12 9 163 \n4 19 13 36 " 35 | }, 36 | "metadata": {} 37 | } 38 | ] 39 | }, 40 | { 41 | "metadata": { 42 | "trusted": true 43 | }, 44 | "cell_type": "code", 45 | "source": "plt.figure()\nhist = df.hist(column = \"Start Hour\", bins = 24)\n\nplt.show()", 46 | "execution_count": 5, 47 | "outputs": [ 48 | { 49 | "output_type": "display_data", 50 | "data": { 51 | "text/plain": "" 52 | }, 53 | "metadata": {} 54 | }, 55 | { 56 | "output_type": "display_data", 57 | "data": { 58 | "image/png": "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\n", 59 | "text/plain": "" 60 | }, 61 | "metadata": {} 62 | } 63 | ] 64 | }, 65 | { 66 | "metadata": { 67 | "trusted": true 68 | }, 69 | "cell_type": "code", 70 | "source": "df.plot.scatter(y = \"Journey Duration\", x = \"Start Hour\")", 71 | "execution_count": 9, 72 | "outputs": [ 73 | { 74 | "output_type": "execute_result", 75 | "execution_count": 9, 76 | "data": { 77 | "text/plain": "" 78 | }, 79 | "metadata": {} 80 | }, 81 | { 82 | "output_type": "display_data", 83 | "data": { 84 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaEAAAEKCAYAAAC7c+rvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAAIABJREFUeJztvXuYXFWZ7//5ducKARKSGCEXE0x0BIUILQRRHhRF8HhER0CZ4yQqTtSBGTmCgDNzxIGZ3w9kFA+jgweFgaASAgjJzEExBhRRbh0MAWQwzTWdxBA6CeTaSXe/54+9ilR39q6qvTu169Lv53mqu+q7L2tV7ar9rnetd71LZobjOI7j1IKWWlfAcRzHGbq4EXIcx3Fqhhshx3Ecp2a4EXIcx3Fqhhshx3Ecp2a4EXIcx3Fqhhshx3Ecp2a4EXIcx3Fqhhshx3Ecp2YMq3UF6p0JEybY9OnTa10Nx3GchmL58uWvmNnEcvu5ESrD9OnTaW9vr3U1HMdxGgpJL1ayn3fHOY7jODXDjZDjOI5TM9wIOY7jODWjakZI0lRJ90l6WtJTkr4c9IMlLZW0KvwfF3RJukZSh6SVko4uOte8sP8qSfOK9GMkPRGOuUaSspbhOI7j5E81PaEe4AIzexswBzhX0uHAJcAyM5sFLAuvAU4DZoXHfOBaiAwKcClwHHAscGnBqIR95hcdd2rQU5XhOI7j1IaqGSEzW2dmj4XnW4CngcnA6cBNYbebgI+F56cDCyziIWCspEOADwFLzWyjmW0ClgKnhm0HmtmDFq3Mt2DAudKU4TiOA0DX1m4eX72Zrq3dta7KkCCXEG1J04F3Ag8Dk8xsHUSGStIbwm6TgdVFh3UGrZTeGaOToYx1g3h7juM0CYtXrOHiO1YyvKWF3X19fPMTR/LR2ZPLH+hkpuqBCZLGAHcA55vZa6V2jdEsg16yOpUcI2m+pHZJ7Rs2bChzSsdxmoGurd1cfMdKdu7uY0t3Dzt393HRHSvdI6oyVTVCkoYTGaAfm9lPg7y+0AUW/r8c9E5gatHhU4C1ZfQpMXqWMvphZteZWZuZtU2cWHbCr+M4TUDnph0Mb+l/Sxze0kLnph01qtHQoJrRcQKuB542s28XbVoCFCLc5gGLi/S5IYJtDvBq6FK7BzhF0rgQkHAKcE/YtkXSnFDW3AHnSlOG4zhDnCnjRrO7r6+ftruvjynjRteoRkODanpCJwB/Cbxf0orw+DBwBfBBSauAD4bXAHcDzwEdwA+AvwYws43A5cCj4XFZ0AC+BPwwHPMs8LOgpyrDcRxn/JiRfPMTRzJqeAsHjBzGqOEtfPMTRzJ+zMhaV62pURRY5iTR1tZmnjvOcYYOXVu76dy0gynjRrsBGgSSlptZW7n9PIGp4zhOEePHjHTjkyOetsdxHMepGW6EHMdxnJrhRshxHMepGW6EHMdxnJrhRshxHMepGW6EHMdxnJrhRshxHMepGW6EHMdxnJrhRshxHMepGW6EHMdxnJrhRshxHMepGW6EHMdxnJrhRshxHMepGW6EHMdxnJrhRshxHMepGdVc3vsGSS9LerJIu7VoldUXJK0I+nRJO4q2fb/omGMkPSGpQ9I1YSlvJB0saamkVeH/uKAr7NchaaWko4vONS/sv0rSPBzHcZyaUk1P6Ebg1GLBzD5pZrPNbDZwB/DTos3PFraZ2ReL9GuB+cCs8Cic8xJgmZnNApaF1wCnFe07PxyPpIOBS4HjgGOBSwuGy3Ecx6kNVTNCZnY/sDFuW/BmzgJuKXUOSYcAB5rZgxatQ74A+FjYfDpwU3h+0wB9gUU8BIwN5/kQsNTMNprZJmApA4yk4ziOky+1GhN6L7DezFYVaTMk/V7SryW9N2iTgc6ifTqDBjDJzNYBhP9vKDpmdcwxSbrjOI5TI4bVqNyz6e8FrQOmmVmXpGOAuyQdASjmWCtz7qRjKj6XpPlEXXlMmzatTHGO4zhOVnL3hCQNA/4cuLWgmVm3mXWF58uBZ4G3EHkrU4oOnwKsDc/Xh262Qrfdy0HvBKbGHJOk74WZXWdmbWbWNnHixCxv03Ecx6mAWnTHfQD4LzN7vZtN0kRJreH5YURBBc+FbrYtkuaEcaS5wOJw2BKgEOE2b4A+N0TJzQFeDee5BzhF0rgQkHBK0BzHcZwaUbXuOEm3ACcBEyR1Apea2fXAp9g7IOFE4DJJPUAv8EUzKwQ1fIko0m408LPwALgCWCTpHOAl4Myg3w18GOgAtgOfBTCzjZIuBx4N+11WVIbjOI5TAxQFnTlJtLW1WXt7e62r4TiO01BIWm5mbeX284wJjuM4Ts1wI+Q4juPUDDdCjuM4Ts1wI+Q4juPUDDdCjuM4Ts1wI+Q4juPUDDdCjuM4Ts1wI+Q4juPUDDdCjuM4Ts1wI+Q4juPUDDdCjuM4Ts1wI+Q4juPUDDdCjtNkdG3t5vHVm+na2l3rqjhOWWq1sqrjOFVg8Yo1XHzHSoa3tLC7r49vfuJIPjrbV7F36hf3hJoAb/k6EH0PLr5jJTt397Glu4edu/u46I6V/r1w6hr3hBocb/k6BTo37WB4Sws76XtdG97SQuemHYwfM7KGNXOcZKrmCUm6QdLLkp4s0r4haY2kFeHx4aJtX5PUIekZSR8q0k8NWoekS4r0GZIelrRK0q2SRgR9ZHjdEbZPL1dGo+ItX6eYKeNGs7uvr5+2u6+PKeNG16hGjlOeanbH3QicGqNfbWazw+NuAEmHEy37fUQ45t8ktUpqBb4HnAYcDpwd9gW4MpxrFrAJOCfo5wCbzGwmcHXYL7GMffyec6XQ8i2m0PJ1hh7jx4zkm584klHDWzhg5DBGDW/hm5840r0gp66pWnecmd1f7IWU4XRgoZl1A89L6gCODds6zOw5AEkLgdMlPQ28H/iLsM9NwDeAa8O5vhH024HvSlKJMh7M+h5rjbd8nYF8dPZkTpg5gc5NO5gybrQbIKfuqUVgwnmSVobuunFBmwysLtqnM2hJ+nhgs5n1DND7nStsfzXsn3SuhsVbvk4c48eM5KipY/174DQEeQcmXAtcDlj4/y3gc4Bi9jXijaSV2J8S20od0w9J84H5ANOmTYvbpW7wlq/jxNO1tdt/Fw1ArkbIzNYXnkv6AfCf4WUnMLVo1ynA2vA8Tn8FGCtpWPB2ivcvnKtT0jDgIGBjmTIG1vM64DqAtra2WENVT4wfM9J/ZI5ThEeNNg65dsdJOqTo5ceBQuTcEuBTIbJtBjALeAR4FJgVIuFGEAUWLDEzA+4DzgjHzwMWF51rXnh+BnBv2D+pDMdxmgiPGm0squYJSboFOAmYIKkTuBQ4SdJsom6wF4AvAJjZU5IWAX8AeoBzzaw3nOc84B6gFbjBzJ4KRVwMLJT0T8DvgeuDfj1wcwg82EhkuEqW4ThO8+DzpRoLRU6Ck0RbW5u1t7fXuhqO41RI19ZuTrjyXnbu3mOERg1v4bcXv9+NUI5IWm5mbeX287Q9juM0FR412lh42h7HyYBHXtU3HjXaOLgRcpyUeORVY+BRo42Bd8c5Tgo88spx9i1uhBwnBZ6vz3H2LWW74ySNBD4BTC/e38wuq161HKc+8Xx9jrNvqcQTWkyU/LMH2Fb0cJwhh0deOc6+pZLAhClmFrckg+MMSTzyynH2HZUYod9JeoeZPVH12jhOg+CRV46zb6jECL0H+Iyk54FuomzUZmZHVrVmjuM4TtNTiRE6req1cBzHcYYkZQMTzOxFYCzw38NjbNAcx3EcZ1CUNUKSvgz8GHhDePxI0t9Uu2KO4zhOf7q2dvP46s1NNTm6ku64c4DjzGwbgKQrgQeBf61mxRzHcZw9NGu6qErmCQkoXnenl/ilsh3HceqGZvIamjldVCWe0L8DD0u6M7z+GHsWkHMcx6k7ms1raOaF+ioJTPg28FmiVUo3AZ81s++UO07SDZJelvRkkXaVpP+StFLSnZLGBn26pB2SVoTH94uOOUbSE5I6JF0jSUE/WNJSSavC/3FBV9ivI5RzdNG55oX9V0mah+M4TUczeg3NnC4q0QhJOjD8P5hoKe4fATcDLwatHDcCAzMtLAXeHuYY/RH4WtG2Z81sdnh8sUi/FpgPzAqPwjkvAZaZ2SxgWXgNUUh5Yd/54fjC+7gUOA44Fri0YLgcx2kemjHJbDOniyrVHfcT4CPAcqB4DXCF14eVOrGZ3S9p+gDtF0UvHwLOKHUOSYcAB5rZg+H1AqLuwJ8R5bM7Kex6E/Ar4OKgL7Bo3fKHJI0N5zkJWGpmG8O5lhIZtFtK1aER8AXWHGcPzeo1NGu6qEQjZGYfCf9nVKnszwG3Fr2eIen3wGvAP5jZb4DJQGfRPp1BA5hkZutCHddJekPQJwOrY45J0vdC0nwiL4pp06alf2c50mx9344zWApew0UDfhfNcNNuxnRRlSzlsMzMTi6npUHS3xNl5f5xkNYB08ysS9IxwF2SjiA+Cs9itH6nTzim4nOZ2XXAdQBtbW3lyqsZxX3fhQHLi+5YyQkzJzTdF9Vx0tCsXkMzkmiEJI0C9gMmhLGTwk38QODQrAWGgICPACeHLjPMrJsoLx1mtlzSs8BbiLyVKUWHTwHWhufrJR0SvKBDgJeD3glMjTmmkz3ddwX9V1nfRz3QzBEzjjNYmtFraEZKRcd9gWg86M/C/8JjMfC9LIVJOpVo3OajZra9SJ8oqTU8P4woqOC50N22RdKcEBU3N5QPsAQoRLjNG6DPDVFyc4BXw3nuAU6RNC4Y1VOC1rA0a9+34zhDh0QjZGb/O4wHXWhmh5nZjPA4ysy+W+7Ekm4hyqzwVkmdks4BvgscACwdEIp9IrBS0uPA7cAXCwEEwJeAHwIdwLNEQQkAVwAflLQK+GB4DXA38FzY/wfAX4f3sxG4HHg0PC4rKqMhaeaIGcdxhgYKPWKld5LeDhwOjCpoZragivWqG9ra2qy9vb3W1SiJR8c5jlNvSFpuZm3l9qskMOFSorGUw4m8jNOAB4AhYYQaAe/7dhynUakkd9wZwMnAn8zss8BRgN/xHMdxnEFTiRHaYWZ9QE/IovAyZSaqOo7jOE4lVJLAtD3kePsBUXTcVuCRqtbKcRzHGRKUNEIhLPr/N7PNwPcl/Zwojc7KXGrnOI7jNDUlu+PCZNK7il6/4AbIcRzH2VdUMib0kKR3Vb0mjuM4zpCjkjGh9wFfkPQisI2QRTssx+A4jpMKn9fmFFOJETqt6rVwHGdI4FnfnYFU0h1nCQ/HcZyKacYVT53BU4kn9H/ZsxTCKGAG8AxwRBXr5ThOk+FZ3504yhohM3tH8WtJRxNl2HYcx6kYz/ruxFFJd1w/zOwxwKPlHMdJhWd9d+KoJIHpV4petgBHAxuqViPHcZoWX/HUGUglY0IHFD3vIRojuqM61XEcp9lpxqzvHnaenUrGhP4xj4o4juM0Ih52PjhKjglJmifpMUnbwqNd0txKTy7pBkkvS3qySDtY0lJJq8L/cUGXpGskdUhaGQIgiuuxKjzmFenHSHoiHHNNyHWXqQzHcRyIvJrHV2+uKHQ877DzNHVrFBKNUDA25wMXAIcCk4GLgC+nMEQ3AqcO0C4BlpnZLGBZeA3RpNhZ4TEfuDbU42DgUuA44Fjg0oJRCfvMLzru1CxlOI7jQOTVnHDlvXz6hw9zwpX3smTFmpL7F8LOiymEnde6bsXUs/Eq5Qn9NfBxM7vPzF41s81mdi/wibCtLGZ2P7BxgHw6cFN4fhPwsSJ9gUU8BIyVdAjwIWCpmW00s03AUuDUsO1AM3swJFpdMOBcacpoaOr5C+YMDr+2+ZHFq8kr7HwwHtdgjFcelDJCB5rZCwPFoB04iDInmdm6cK51wBuCPhlYXbRfZ9BK6Z0xepYy+iFpfuh6bN+wob4DAev9C+ZkpxGubTMZySxeTV5h51k9rkbIUlEqMKHUu9v3vmaUkWEglkHPUkZ/wew64DqAtra2uk1RVPwFK8xCv+iOlZwwc4JH6DQ4jXBtm21APqtXk0fYeda6NUKWilKe0NvC4P3AxxPAnw2izPWFLrDw/+WgdwJTi/abAqwto0+J0bOU0ZDk2R/t5Eu9X9vBtLA71m/h9vbVdKzfkkNNK2cwXs34MSM5aurYqt3Ys9atEbJUlPKE3lalMpcA84Arwv/FRfp5khYSBSG8ambrJN0D/H9FwQinAF8zs42StkiaAzwMzAX+NUsZVXqfVacRvmBONur92mZtYX/9ridY8NBLr7+ee/w0Ljv9HYn75009T6bNUreC8bpogMdaT+8r0QiZ2YuDPbmkW4CTgAmSOomi3K4AFkk6B3gJODPsfjfwYaAD2A58NtRjo6TLgUfDfpeZWSHY4UtEEXijgZ+FB2nLaFQa4QvmZKPer20WI9mxfks/AwSw4MGXmDtnOjMnHZBwVP7U82TaLHWrZ8MKoCiwzEmira3N2tvba12Nkvhs7ealnq/tkhVr9jKSpcaEbm9fzYW3r9xL/5czjuSMtqkxRziNjKTlZtZWbr9K0vY4dU49t9ycPWQxKPV8bdO2sGdPHZtKd4YGlSQw/Qhwt5n1ldvX6U89t2KdfGm2SLICaYzkzEkHMPf4aSx4sP+YUD11xTn5U7Y7TtKPgOOJkpb+u5k9nUfF6oWs3XHNetNx0tO1tZsTrryXnbv3tONGDW/htxe/f0g2TjrWb2HF6s3MnjrWDVATU2l3XNn1hMzs08A7gWeBf5f0YJjM6d+eBBphgpiTH/Uebp03MycdwBltU90AOUCFi9qZ2WtEntBC4BDg48Bjkv6minVrWPym4xRT7+HWjlNLyhohSf9d0p3AvcBw4FgzOw04CriwyvVrSPym4xTjK4oOnmZKD+T0p5LouDOBq0My0tcxs+2SPledajU29T7Hw8mfep+rUc/4+GpzU9E8IUlvAmaZ2S8ljQaGmVl95dyoEoOZJ5RXdJxH4TnNigd1NC77bJ6QpL8iWnvnYODNRPnWvg+cPNhKNjt5zPHwVmLj4I2F9DRCAk5ncFTSHXcu0WJyDwOY2SpJbyh9iJMHjZBp2YnwxkI2fHy1+akkOq7bzHYVXkgaRvklE5wc8Ci8xsBD9rPjQR37hnoO7KjEE/q1pL8DRkv6INGqqv9R3Wo5leCtxMbAu5QGhwd1DI5698Ir8YQuATYATwBfIMpE/Q/VrJRTGd5KbAy8sTB4sqzXU8+t/7xoBC+8rCcUcsb9IDycOsNbifWPh+znz+IVa7jo9sdpVQu91sdVZxxVV63/vGgEL7yS6LgTgG8Abwr7CzAzO6y6VXMqpZ4zLTsR3ljIj66t3VywaAU9fQC9AHxl0YqKA3ayRDHW63SMRvDCKxkTuh74n8ByClfUcZzUeGMhH55a+1owQHvo6Yv0E98yseSxWcZP8hpzyVJOI3jhlRihV83sZ+V3qwxJbwVuLZIOA74OjAX+imj8CeDvzOzucMzXgHOIjODfmtk9QT8V+N9AK/BDM7si6DOI8twdDDwG/KWZ7ZI0ElgAHAN0AZ80sxf21XtzHKceSAreLR3Um2XKQ17TJAZTTr174ZUEJtwn6SpJx0s6uvDIWqCZPWNms81sNpEx2A7cGTZfXdhWZIAOBz4FHAGcCvybpFZJrcD3gNOAw4Gzw74AV4ZzzQI2ERkwwv9NZjYTuDrs5zhOE3HEoQfRov5aiyK9FFmmPOQ1TWKw5dRzYEclntBx4X9x+gUD3r8Pyj8ZeNbMXpSUtM/pwEIz6wael9RBNHkWoMPMngOQtBA4XdLToW5/Efa5iWhM69pwrm8E/Xbgu5Jkvsa54zQVrS2ir9f6vS5HlvGTvMZc8h7byTOsu6QnJKkFuNbM3jfgsS8MEEQezi1Fr8+TtFLSDZLGBW0ysLpon86gJenjgc1m1jNA73eusP3VsH8/wnpJ7ZLaN2zYMHCz4zh1TOemHXsZndYWlfUaskx5yGuaRJ7TMfIO6y7pCZlZn6TzgEX7umBJI4CPAl8L0rXA5URe1uXAt4DPEUXj7VU14g2oldifMtv2CGbXAddBlMA08U04jlN37D+itV/CU4Cdu/vYf0Rr2WOzjJ/kNeaSVzl5h3VX0h23VNKFRMEE2wqimW0cZNmnAY+Z2fpwvvWFDZJ+APxneNkJTC06bgqwNjyP018BxkoaFryd4v0L5+oM6YcOAgb7PhzHqSO27eplZKvoLuqOG9kqtu2qLLg3SxRjXpGPeZSTd9dfJYEJnyNKYno/UZj2ciDb2gb9OZuirjhJhxRt+zjwZHi+BPiUpJEh6m0W8AjwKDBL0ozgVX0KWBLGd+4DzgjHzwMWF51rXnh+BnCvjwc5Tr5Ue8B7yrjRDIjQpi/olTDUMy3knYmlkowJM/Z1oZL2Az5IlAaowDclzSbqHnuhsM3MnpK0CPgD0AOca2a94TznAfcQhWjfYGZPhXNdDCyU9E/A74nmOhH+3xyCGzYSGS7HcXIirwHvgW3LStua9Z5nLS/yDOsuu6idpLlxupktqEqN6ozBLGrnOI1EtWf957VA3eOrN3PW93+3V3fcoi++m6Omjq15/YYK+2xRO+BdRc9HEYVVP0Y06dNxnCYgDw8grwHv/Ue09jNAAN29VjYwoRHyrDUjlXTH/U3xa0kHATdXrUaO4+RKXrP+8xrw3rarl1HDW/byaMoFJjRCnrVmpJLAhIFsJwoOcBynCchr1n9eA95Txo2mp7e/MenpLW9MfGmU2lBJFu3/YM9cmlbgbVRh3pDjOLUhTw8grwHvKAOLDXhdP/Vz9lDJmNC/FD3vAV40s84q1cdxmpa80v2nJe9My9We69K5aQejhrWyu7fndW3UsNaKx3Y823m+VDIm9GtJk9gToLCqulVynOaj3kN/m8kDGKxnV6+NhWal7JiQpLOIJoeeCZwFPCzpjNJHOY5ToBGWWM6T9ue7+PYvnqH9+a6qnH8wYzuLV6zhhCvv5dM/fJgTrryXJSvWVKWOzh4q6Y77e+BdZvYygKSJwC+JslA7jlOGwYT+5tUqz8tT+/QPH+KBjsj4XHNvB++dOZ6bPz9nn5eTxbPLK0pwMDSjl1aJEWopGKBAF9mi6hxnSJK1eygvw5DXzbf9+a7XDVCB33R00f58F20z9kpmP2jSju10btqB9Q3ItNBndTNPqN67dLNSiTH5uaR7JH1G0meAu4F9ttKq4zQ7WbqH8uzCyytE+/5Vr6TS8ybrJNc8aOYu3UoCE74q6c+BE4iWQvi+md1V9Zo5dUmzdQfk9X7Sdg/lOXs/rxDtE2dN4Jp7O2L1apD22mad5JoHzZzNIdEISdpC/Do8fyVpJ/As8PdmtqyK9XPqiGbrDsj7/aTpHspz7k5eIdptM8bz3pnj+U1Rl9x7Z46vSldclmub9NnWQ8aEZs7mUDaBaexBUivwduDHZvb2fV6rOsITmEY0W3LHRng/S1as2cswVNNI5uUVtj/fxf2rXuHEWROqYoAGc23z/szTUM91i2NfJjDdi7CUwuOS/jXL8U7j0WzdAY3wfvKeu5PXJM22GdXxfgoM5tpm/czzMOAfnT2Zww85kBWrNzN76lhmTjqgKuXkTSYjVMDM/s++qohT3zRbd0CjvJ9mnL1f7Rv2YK9t2s988Yo1XHT7SlpbRG+fcdUZ1fFQmq07vEDNQq0lvSDpCUkrJLUH7WBJSyWtCv/HBV2SrpHUIWmlpKOLzjMv7L9K0rwi/Zhw/o5wrEqV4ZSm2ZI71uL9DPUVOyGfyaB5Xtuurd1ceNvjdPf0sX1XL909fVxw2+P7/BoP6ei4KvM+MyuOz7wEWGZmV0i6JLy+GDiNKHP3LOA44FrgOEkHA5cCbURBFMslLTGzTWGf+cBDRGHlpxKFlieV4ZShmVK7QL7vp1lbsWnIczLoYK5tGk/tqbWvsntAWPfuXuOpta9y4lvekKnucTRC93FWam2EBnI6cFJ4fhPwKyIDcTqwwKIoiockjZV0SNh3qZltBJC0FDhV0q+AA83swaAvAD5GZISSynAqoNm6h/J4P40wEz8P8r6RZrm2i1es4au3rUC0YPTxL2fOLtlYeG1HTyo9K43SfZyFWmY+MOAXkpZLmh+0SWa2DiD8LzQlJgOri47tDFopvTNGL1WG41RMmq61vCaD1jt530jTdn92be3m/IUr2NUL3b197OqFLy9cUfL4A0fHt+OT9KyMHzOSs46Z0k87q21KUzRiammETjCzo4m62s6VdGKJfeMWA7EMekVImi+pXVL7hg0bKj3MGSKkHdeYMm40O3v6T3jc2dPbFK3YNOQ5VpNl7OnBZ7v2uklY0JM44tCDaG3pf7tpbRFHHHpQ2fLSGMmurd0sWt5/BZ1F7Z0+JjQYzGxt+P+ypDuBY4H1kg4xs3Whu62Qs64TmFp0+BRgbdBPGqD/KuhTYvanRBnFdbsOuA6ieUKDeZ9pabaMBPVO2s87a9fawPl4WebnNQN5jMNlvUZPr3s1Uf/IUYcmHqcBpmvg6zjSjhE285hQTTwhSftLOqDwHDgFeBJYAhQi3OYBi8PzJcDcECU3B3g1dKXdA5wiaVyIcjsFuCds2yJpToiKmzvgXHFl1JxmTSNfr1FhWT7vpC60Ul1rnZt2MHp4//be6OHDmqI7Lsu1HT9mJEdNHVu1m2fW7s/9RsS3yZP0Qllpr22WSLdmHhOqlSc0CbgzRE0PA35iZj+X9CiwSNI5wEtEaxhBFN32YaAD2A58FsDMNkq6HHg07HdZIUgB+BJwIzCaKCChkHT1ioQyakqzDl7Xa1RY1s97/xGt/WbiA+zc3VcyyWWz3kDymh+Tlqyf94eOeCNX/eKPsfq+LCuLV5P36rd5UhMjZGbPAUfF6F3AyTG6AecmnOsG4IYYvZ0otVBFZdSaZnS369mwZv28t+3qZWSr+mVbHtmqkkkum/EGUpgfUxyefMFtj9fFtc36eY/bfwQtguLVHFoU6fuyrKxGstmmSBSotxDtIUsztpbr2bBm/bynjBuNWgRFN1+1aMjdQPKaH5OVLJ9356Yd7D9iGFu694RX7z9iWNnva9qyBtMoabYpEuBGqKp0rN9ScZ6nZmwt17Nhzfp5N/MNJF2QRlwAaik9aznZSft5D+b7mrases5RlzduhKrE1+96ggUPvfQdM53gAAAZ8klEQVT667nHT+Oy099R8phmay3Xu2HN+nk323WC9GN3Rxx6IKL/vAcFfV+WkyeF7+tXb3+cVrXQa9X9vmbLUbenbledcVTdfHaDwY1QFehYv6WfAQJY8OBLzJ0zvSKPKO2Xvp5bR/V+w87qndS7V5OGrGN3w1rVr0tuWGtpL6iexwgLRO9GkUW18l5dXnRt7eaCRSvo6QOIxh+/smhFxZ9dPd8j3AhVgQc64pcrfqDjlX2efr2eW5YF6vmGXc8/zqykfU9Zxu46N+1g1LBWdvfuGT8ZNay17DH1OkYIe4xkd8+e+tWLkXxq7Wv09O8ppKcv0k98y8SSx9b7PcKNUBUYOSx++lWSnpVGaFnWM/X+48xC1hVF046FZD1mx+7+OdV27O6paMwlj8ZCfRvJpAmwpSfGNsI9opZpe5qWyeP2S6VnxXOSZadRUuN3rN/C7e2r6Vi/pey+Wd9TlnQ6WVPwhLmBia/jWLxiDe++YhlnX/cQ775iWdUmcddzIM0Rhx7E8AHdncNby6cHaoR7hHtCVeCIQw9kWAv93OdhLeUHbdNSzz+aeqe+W70RaYNb8l5RNO0xWbrwBjsWkoa8A2nSeHfjx4zkW2cexVcHTA4ud1wj3CPcCFWB8WNG8u2zZveLsrnqjKMa/kfTTNT7jzNLcEveK4qmJUv9BjMWkoW8ltDO0m2apaHQCPcIN0JVIq+osHqPPqtX6v3HuWL15kQ96caY93tKeyPNVr9sYyFZSbueUIE0Xs1gxmmyNBTq/R7hRqiK5BUVVs/RZ/VMPf84Z08dm0ovkNd7ynojTVu/wlhIcSh4JWMhkG6yeOE9nb9wRTBv0Xv68sLyXX+NkBG7nu8RboScIU29/jhnTjqAucdPY8GD/ceEKrmZ5vGeBnMjTVO/8WNGcva7pvbrmjz72Kllj88yWbzUekJJSzlkMcaDiRJsRtwIVZFmnIPiRORxbS87/R3MnTO96uMTWchrTK1raze3PLq6n3bLI6v58slvSfzcs04Wf2XrzlQ6ZDfGUVSgDXg9NHEjVCWacQ5KvZOX0c/z2s6cdEBdGZ8CeY0/ZUmUmmU8DeDtCV18STpkX8ohbZRgLcjr9+RGqAo0wgSxZvPSshqGvFZWzUqW65TXtc0aSVbtRKlZx9OGD2ultX+CdFoV6UlkMcb1HpkJ+Ta03AhVgXqfg9JsXlpWw5BlUbY8r22W65Tntc2jflnm3GUdT5sybjTDh7XQW7Ro4fBhLRUt05HGGNd7ZGbeDa3cMyZImirpPklPS3pK0peD/g1JayStCI8PFx3zNUkdkp6R9KEi/dSgdUi6pEifIelhSask3SppRNBHhtcdYfv0arzHwbR0qr0UdqNkCkhDllnhhUXZunv62L6rl+6ePi647fGyn0Ne1zbLdcrz2uZVv/FjRnLYxP37aW+euH/Zm+Flp7+D6+cewyfbpnD93GPKBiUUyvrmJ45k5LAW9hvRyshhlWWBWLxiDR/57gP843/8gY9894GKMjp8dPZkfnvx+/nR54/jtxe/v64agXlnWahF2p4e4AIzexswBzhX0uFh29VmNjs87gYI2z4FHAGcCvybpFZJrcD3gNOAw4Gzi85zZTjXLGATcE7QzwE2mdlM4Oqw3z4na0qTxSvWcMKV9/LpHz7MCVfeW5X0JI2QxiMt2SZBJo81lCKva9u5aQe9ff3r19tnJa9Tntc2S1lZ3lP78138cf22ftoz67fR/nxXyfp9/a4nOGfBcm5t7+ScBcv5+uInSu5fwAp/bc+rUjRjoy7v7sLcu+PMbB2wLjzfIulpoFQz4HRgoZl1A89L6gCODds6wlLhSFoInB7O937gL8I+NwHfAK4N5/pG0G8HvitJYfnwfUra+RB5ucCN0B+dlmzdG9kXZcvj2u7u6Y01krt7kpcRz/PaZgkzzvKe7l8Vn5H+/lWv0DZjfOy2rNFxe7JoG4UUQeWuU+emHdgAw2rBsJbvCs5vbaC0KYLOapvSrzvzrLYpVesurGkC09Ad9k7g4SCdJ2mlpBskjQvaZKA4RrMzaEn6eGCzmfUM0PudK2x/NexfFcaPGclRU8emSqdfTDVasVlb8nmTJnEnpO/eKIw1FFON/H6Q7do+ufa1VDrkf23TJiPN8p5OnDUhlQ7wQMeGVHqBUgYlif1HtNI9wLB29xr7j0gOZijkw+vuMbbv7qW7x/jKohVV857SJoDt2trNovbOftqi9s6q1a9mgQmSxgB3AOeb2WuSrgUuJ/KBLwe+BXyO+KapEW9ArcT+lNlWXLf5wHyAadOmlX4j+4gp40azfXf/FuH23b1VacXWc6YAyDbRENJPgsya3y/t4HoWD2XCmBGp9AJ5XdssYcajEpYySdIBZkwck0oH9vK2yukFshiUta/GG6i1r+5I9LryzIeXJQFs3oFVNfGEJA0nMkA/NrOfApjZejPrNbM+4Afs6XLrBKYWHT4FWFtCfwUYK2nYAL3fucL2g4CNA+tnZteZWZuZtU2cmP1LkWYgetO2XbH95Zu27cpcfinSeGl5ktSVUulSBmmCOj46ezK/u+Rkbpk/h99dcnLFId1ZBtfTeijHv3kCLQOaTC2K9HLkcW2njBvNzgHdaDt7SjeasmSBe/DZ+LGfJB1g18A7fBm9wLZdvQxcHLZVkZ7EmgQvKUkHWLtpeyq9mLTf8VIGL4mmHxNS5LNfDzxtZt8u0g8J40UAHweeDM+XAD+R9G3gUGAW8AiRVzNL0gxgDVHwwl+YmUm6DzgDWAjMAxYXnWse8GDYfm81xoMgffhv1gl2zUbWzyFraHLaFDdZW4lpPZTxY0bynU/O5sLbHkcSZsa/nLnvM7EXk3Z+0cCfTrmfUneCEUjSAV5JuNkm6ZB9UcndPb0MdJZ6jZJjVhsTGolJOsDqTdtS6QWyfcfTm/68Q8hr0R13AvCXwBOSVgTt74ii22YTfTovAF8AMLOnJC0C/kAUWXeumfUCSDoPuAdoBW4ws6fC+S4GFkr6J+D3REaP8P/mENywkchw7XMK4b/F7v8Ftz1e0gXOOsGuEUhzc5s+Pn7hvyS9cP6sQR1pb7yDaSWmNXhZJ4O2P9/F/ate4cRZExIH7weSdqC8c9MORg8fxpbuPd1xo4cPK2mM3zMz3otL0rMeM6w13tgk6QVe6Ir3RF7o2p74Ob5p/P6pdID9RgxPpUP27/h+w+O7EpP0Anl22dciOu4B4sdm7i5xzD8D/xyj3x13XIiYOzZG3wmcmaa+WciSamQwCSvrmbSttyyz1js37aCnt79h6OntqyhCKW3LMs9WYpbJtJ/+4UM80BF1VV1zbwfvnTmemz8/p+QxWcYNshjjcfvHj2cl6YVt/bOsRTePUse8PSG4JEkvkKUh+GdvjP99JukAHzrijVz1iz/G6klk9cCzGNYCeSX39YwJVSFb+G89J6zMQtYMw2lnre/u6Y3t9y7VjTIY7ylrKzHtmjNpven257teN0AFftPRRfvzXSVvOFkGygvG+MKitXfKGeOkcYhS5Ty19rXYzNaljhk+rJUWQfEQa0uZhgxkM3jbdvXGZnQoNY40bv8RrzcsCrS2qGQ5WT3wRuhhqWmIdrMymPDfmZMO4Iy2qakMUNpw5rzIEpqcZRC/VGtvX9ZtYD3TDP6nnayaZTJtqTk1pcm2cFz7CxvZ1QvdvX3s6oX2F/eK8Rl0Oa/t2J1KhyjKbUCMD31GySg3IPHalwvRjjPgpcrq3LSD4QMiIIa3qqLfxfCWaN/hLVTkgRd6WIqptx4W94SqwPgxI5lz2Ph+rdLjDxtfFdc2azhzVtK05rO23tJ6Gllae3lGAGXzutJ70yfOmsA193bE6qXIMm6QZUJolnK27Iw3Nkk6wK+eeTlRL7mUw5adsV7XK1uSl3LYtqs31nsq5QntP6KVnbv7f/d27u4rayQXta8mOiwq7bb21RUF3xzzpoNZ+MhLr3usbW86uOwxkF8iXPeEqkDH+i2x3SL7Osx4MOHMWYgmvd3L2T94iHdfUb41P5jJk2k8jSytveI8YYVHmrGdNNcpi9e13/D4n2aSDtA2Yzzvndm/2+29M8eX7ft/+Pl4DyZJB3igI967StIh22TVzoSw5SQd4L5n4ielJumDOW53T2+s4SrVFVzowiumXBdeqa7WUhQaQMUeayVphdL+1geDe0JVIK8w4zzDurOMUUA+4ycQjad99MhDU0WFtb+wsV94cPuLGytqWS5esYYLFz2OYQjxrbNKR5Jl8bpKGYZS7+3mz8/JFB2Xlt298WHVSTpkm4CbpaMwyaMo52kcODr+dpikAzyZ0D365NpXEz/7LF14WdIXQbaAhqy/9ay4J1QFsnQPZZkEmSWcOStZE35C9cdPCsf8j+sf4br7n+N/XP9I2WOyepFdW7v58sIV7O6zKPihz/jbhaVTrowfM5KzjpnST6tmLq6x+41g2sH7MXa/0tkVCiRFZZWK1soyIfSNB45KpQMcfkj8OGqSDvC+P4uPQE3SC7z/rfHbk3SAkQnBDkk6lM6ykESW9EWQLcffYH7rWXAjVAWyhKJm6bL502vxN74kvZi0M69f29GTSs9K1iUCvrIoWpZhZ08f3T19/M9FpZdlyNKdBHDnY52p9EL94gxeqfplMQwQjRF+4Or7ufD2lXzg6vsryh49c9IBvCemG6+UN51lfkyW7rjj3zxhr1EwUTpzxCkJn1GSXmBg2qxyOsABo+Ln9iTpkC3LQtauVkif4y+v33oBN0JV4KcJN6QkHbKlQckymxyyeRpZuioKpIney2KMH3y2KzblUanULlln1f86YdA7SYds34fN2+Nn3CfpMDjv7rcDxhse6OgqaSR7euNvzEk6wIQEzy9JLxA35lKKpFRX5VNgpQ8GOXB0vLFJ0gG6E8aLkvQCN39+Dt8560g+8LY38J2zjiw7/wv25PgrppDjL5ls0ZJZcSNUBZa/uCmVXiBtGpQsk/Kyrn+yO6GbJUkvkLZlnmX8JIsxnpxwviS9QFIXV6murwefjfeuknSAu1asTaVD9uzRDz7bFXujL2XEf/7U+lQ6wBsPjDc2SXqhbml0yO7lHnpQfLdgkg7RtIs4T63UdIy3H3pQKr3A1+96gvMXreSXT7/M+YtWVuTlZvk9ZTGsg8GNUBVoe9O4VDrsSYNSTCENShKF7ALFVJJdIMv8mMc74/uDk3TI1jLPElE3NeEHlaQDvPRKfJ6uJL3AvHdPT6UDTE/ookrSAZLGqEuNrWfNHv1iV/x7TtIBNm2PN/BJOmSLwvttggFN0gFeTfAWk/QC7S/E1yNJL5DWU0v6fZb63Wb1csePGcm7Btx33vWmcSV/T0ckGMMkfbC4EaoCJyUMZCbpELVYivNwAWzpLj2AuP+I1tiEi6WibLLOj8kyMFoqeq8UadcG2rQ9fs5Ikg5w22OrU+kFsnhCnRvjb+ZJOkDXlvgbZpIOsG5zfEMiSS/wzLr4MZkkHeCpNfGNjyQd4OHn4r2XJB2g/YX43oMkHeCnyxO6PxP0Av/n18+m0gH++uZHU+kAtz36Yiodsv+WOtZv4Tcpp4useCn+s03SB4sboSpQarJcEgt++1wqHeC//hT/RUrSIWoZjR0wjjNu9LCykVptM8bz1kn9W+5vnbR/yYHRwaQM2bRtF6vWb6loKYss5WzeFj/ImqQXuPP3CYEJCTrAr/8Y3w2UpAP8LuHGnKQD/PypP6XSC9zzh/jtSTrA1l3x7f0kHdjrZlhOB+jcnGDAE3SAFzfHTy5N0gs8vzHeWCfpAA+/GG90k3SAOxPGYJN0gJ8ufymVXuCKn/0hlQ7wnWV757UrpQ8WN0JVoD1h7CdJB/jxw/Et8CQd4Ol18V/0JB1g2R/+xJ9e639jX/faLpaVuOFANJb03Cv9Jwg+98r2kmNJMycdEBvRU24OU9pxpCyTVUckTPpM0gtsTogQStIBRiQEOyTpAL0J44FJOsCfXk2IlkzQC3QnjIcn6VnJMtydlJ2nRNaeumd7gqFO0gEefSHe40nSCzywKt7AJ+kALyWku0rSB4sboSqwcnW8sUnSAVoHDu6U0QEefC5hwDtBB/jOL59JpRfIMnega2t3bFdAKcOVte+7OPt43OuBzJvzplR6gY/PPjSVDnBywvyUJB2yzQE7cFR8N2ySXmBkwuYk3RkcWYxxS8K1SNIL7EwYD0zSAXYmtD6S9MHiRqgKrH0tvgspSQfo3h3fkk7SAf64fmsqHeD5hMHmJH0P6cNXs4Qm3/n7eM8vSQf4mx/F978n6QB3PxEfZZakF/ivhHGSJB1gXEJXZ5IO8OfvnJJKB5h6cEKARoJe4LAJ8QESSTrAuATDlqQDHDAi/naTpDt76E64DSTpgyorwT4l6YPFr36dsHlnfKhzkg6wszt+W5IOsD3hm5SkF3h6Tbzbn6QD/PIP8eG6STrAjb99PpUO8B9Pxo+1JekAv3s+vt5JeoH/tSS+Lz1JB/i/j8cbtiQd4Jv3PJ1KB+jaFt9HlaQXyLII3FFT4iOlknSA974lPoglSQfYL2EaWpLuNB5D0ghJOlXSM5I6JF1S6/pkJakRVKpxlGSeSs/2gZ88Eu+JJOmQbenjpPtlmftobmTpSnk5ofJJOsBrCY2CJB1gbcLYT5Je4Im18V2dSTrArzriw5aTdICfJzQKknSApLmvJebEkjSbpTqzXJzBMuSMkKRW4HvAacDhRMuKH17bWtU/G7bFRwgl6QCbE+aMJOlOc5OlAZSlayjJtNdJO8YZwJAzQkTLfneY2XNmtgtYCJxe4zrVPUnz/ErN/9uQEO6cpDuOM/QYikZoMlDch9QZNMdxHCdnhqIRigvn6ufcS5ovqV1S+4YNpfNuOY7jONkZikaoE5ha9HoK0C9MycyuM7M2M2ubOHFirpVzHMcZSgxFI/QoMEvSDEkjgE8BS/ZlAS9c8d9S6fV+TJ5l1fMxeZbl7ynfY/Isqxnf02AYckbIzHqA84B7gKeBRWb21L4uZ+AFq+QC1vMxeZZVz8fkWZa/p3yPybOsZnxPWVG5NWuGOm1tbdbe3l7rajiO4zQUkpabWVu5/YacJ+Q4juPUD26EHMdxnJrhRshxHMepGW6EHMdxnJrhRshxHMepGR4dVwZJG4Dkxd/LMwFIXmVu6OCfQ4R/DhH+OUQ08+fwJjMrO9vfjVCVkdReSZhis+OfQ4R/DhH+OUT45+DdcY7jOE4NcSPkOI7j1Aw3QtXnulpXoE7wzyHCP4cI/xwihvzn4GNCjuM4Ts1wT8hxHMepGW6EqoSkUyU9I6lD0iW1rk+tkPSCpCckrZA0pDLBSrpB0suSnizSDpa0VNKq8H9cLeuYBwmfwzckrQnfixWSPlzLOuaBpKmS7pP0tKSnJH056EPuO1GMG6EqIKkV+B5wGnA4cLakw2tbq5ryPjObPQRDUW8ETh2gXQIsM7NZwLLwutm5kb0/B4Crw/ditpndnXOdakEPcIGZvQ2YA5wb7gtD8TvxOm6EqsOxQIeZPWdmu4CFwOk1rpOTM2Z2P7BxgHw6cFN4fhPwsVwrVQMSPochh5mtM7PHwvMtROuZTWYIfieKcSNUHSYDq4tedwZtKGLALyQtlzS/1pWpAyaZ2TqIbkrAG2pcn1pynqSVobtuSHVBSZoOvBN4mCH+nXAjVB0Uow3VMMQTzOxooq7JcyWdWOsKOXXBtcCbgdnAOuBbta1OfkgaA9wBnG9mr9W6PrXGjVB16ASmFr2eAqytUV1qipmtDf9fBu4k6qocyqyXdAhA+P9yjetTE8xsvZn1mlkf8AOGyPdC0nAiA/RjM/tpkIf0d8KNUHV4FJglaYakEcCngCU1rlPuSNpf0gGF58ApwJOlj2p6lgDzwvN5wOIa1qVmFG66gY8zBL4XkgRcDzxtZt8u2jSkvxM+WbVKhJDT7wCtwA1m9s81rlLuSDqMyPsBGAb8ZCh9DpJuAU4iypS8HrgUuAtYBEwDXgLONLOmHrRP+BxOIuqKM+AF4AuFcZFmRdJ7gN8ATwB9Qf47onGhIfWdKMaNkOM4jlMzvDvOcRzHqRluhBzHcZya4UbIcRzHqRluhBzHcZya4UbIcRzHqRluhBynSkj6+5AteWXIFH1c0M+XtF+G831G0qEJ226UdMYAbWu2mjtOfrgRcpwqIOl44CPA0WZ2JPAB9uQTPB9IZYRCZvbPALFGqJqEsh2nKrgRcpzqcAjwipl1A5jZK2a2VtLfEhmS+yTdByDpWkntwWv6x8IJwlpMX5f0AHA20Ab8OHhVoyutiCKukvRkWNvpk0E/SdJ/Fu33XUmfiSn7zMF+GI6TxLBaV8BxmpRfAF+X9Efgl8CtZvZrM7tG0leI1lh6Jez792a2MXgcyyQdaWYrw7adZvYeAEmfBy40s6TFAa+S9A8x+p8TZSc4iihrwaOS7q/gPbxetuNUC/eEHKcKmNlW4BhgPrABuLXgZcRwlqTHgN8DRxAthFjg1hTFfrVokbjZRfp7gFtCwtD1wK+Bd1VwvjRlO04m3BNynCphZr3Ar4BfSXqCKDnljcX7SJoBXAi8y8w2SboRGFW0y7Z9UJW4pUUgWumzuCE6asD2fVG245TEPSHHqQKS3ippVpE0G3gxPN8CHBCeH0h0s39V0iSidZeSKD4uDfcDn5TUKmkicCLwSKjP4ZJGSjoIODnDuR1nULgn5DjVYQzwr5LGEnkcHURdcwDXAT+TtM7M3ifp98BTwHPAb0uc80bg+5J2AMeb2Y4K63IncDzwOFHW6ovM7E8AkhYBK4FVRN2BjpMrnkXbcRzHqRneHec4juPUDDdCjuM4Ts1wI+Q4juPUDDdCjuM4Ts1wI+Q4juPUDDdCjuM4Ts1wI+Q4juPUDDdCjuM4Ts34f+DEr6TEKxrdAAAAAElFTkSuQmCC\n", 85 | "text/plain": "" 86 | }, 87 | "metadata": {} 88 | } 89 | ] 90 | }, 91 | { 92 | "metadata": { 93 | "trusted": true 94 | }, 95 | "cell_type": "code", 96 | "source": "max(df[\"Journey Duration\"])", 97 | "execution_count": 7, 98 | "outputs": [ 99 | { 100 | "output_type": "execute_result", 101 | "execution_count": 7, 102 | "data": { 103 | "text/plain": "1984700.0" 104 | }, 105 | "metadata": {} 106 | } 107 | ] 108 | }, 109 | { 110 | "metadata": { 111 | "trusted": true 112 | }, 113 | "cell_type": "code", 114 | "source": "", 115 | "execution_count": null, 116 | "outputs": [] 117 | } 118 | ], 119 | "metadata": { 120 | "kernelspec": { 121 | "name": "python3", 122 | "display_name": "Python 3", 123 | "language": "python" 124 | }, 125 | "language_info": { 126 | "mimetype": "text/x-python", 127 | "nbconvert_exporter": "python", 128 | "name": "python", 129 | "pygments_lexer": "ipython3", 130 | "version": "3.5.4", 131 | "file_extension": ".py", 132 | "codemirror_mode": { 133 | "version": 3, 134 | "name": "ipython" 135 | } 136 | } 137 | }, 138 | "nbformat": 4, 139 | "nbformat_minor": 2 140 | } -------------------------------------------------------------------------------- /wine_quality_prediction.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "metadata": {}, 5 | "cell_type": "markdown", 6 | "source": "## A basic linear regression model over the wine quality data set" 7 | }, 8 | { 9 | "metadata": { 10 | "trusted": true 11 | }, 12 | "cell_type": "code", 13 | "source": "import pandas as pd \nimport numpy as np \nimport matplotlib.pyplot as plt \nimport seaborn as sb \nfrom sklearn.model_selection import train_test_split \nfrom sklearn.linear_model import LinearRegression\nfrom sklearn import metrics", 14 | "execution_count": 20, 15 | "outputs": [] 16 | }, 17 | { 18 | "metadata": { 19 | "trusted": true 20 | }, 21 | "cell_type": "code", 22 | "source": "df = pd.read_csv(\"data/winequality-red.csv.gz\", delimiter = ';')\ndf.head()", 23 | "execution_count": 21, 24 | "outputs": [ 25 | { 26 | "output_type": "execute_result", 27 | "execution_count": 21, 28 | "data": { 29 | "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
fixed acidityvolatile aciditycitric acidresidual sugarchloridesfree sulfur dioxidetotal sulfur dioxidedensitypHsulphatesalcoholquality
07.40.700.001.90.07611.034.00.99783.510.569.45
17.80.880.002.60.09825.067.00.99683.200.689.85
27.80.760.042.30.09215.054.00.99703.260.659.85
311.20.280.561.90.07517.060.00.99803.160.589.86
47.40.700.001.90.07611.034.00.99783.510.569.45
\n
", 30 | "text/plain": " fixed acidity volatile acidity citric acid residual sugar chlorides \\\n0 7.4 0.70 0.00 1.9 0.076 \n1 7.8 0.88 0.00 2.6 0.098 \n2 7.8 0.76 0.04 2.3 0.092 \n3 11.2 0.28 0.56 1.9 0.075 \n4 7.4 0.70 0.00 1.9 0.076 \n\n free sulfur dioxide total sulfur dioxide density pH sulphates \\\n0 11.0 34.0 0.9978 3.51 0.56 \n1 25.0 67.0 0.9968 3.20 0.68 \n2 15.0 54.0 0.9970 3.26 0.65 \n3 17.0 60.0 0.9980 3.16 0.58 \n4 11.0 34.0 0.9978 3.51 0.56 \n\n alcohol quality \n0 9.4 5 \n1 9.8 5 \n2 9.8 5 \n3 9.8 6 \n4 9.4 5 " 31 | }, 32 | "metadata": {} 33 | } 34 | ] 35 | }, 36 | { 37 | "metadata": { 38 | "trusted": true 39 | }, 40 | "cell_type": "code", 41 | "source": "df.head()", 42 | "execution_count": 22, 43 | "outputs": [ 44 | { 45 | "output_type": "execute_result", 46 | "execution_count": 22, 47 | "data": { 48 | "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
fixed acidityvolatile aciditycitric acidresidual sugarchloridesfree sulfur dioxidetotal sulfur dioxidedensitypHsulphatesalcoholquality
07.40.700.001.90.07611.034.00.99783.510.569.45
17.80.880.002.60.09825.067.00.99683.200.689.85
27.80.760.042.30.09215.054.00.99703.260.659.85
311.20.280.561.90.07517.060.00.99803.160.589.86
47.40.700.001.90.07611.034.00.99783.510.569.45
\n
", 49 | "text/plain": " fixed acidity volatile acidity citric acid residual sugar chlorides \\\n0 7.4 0.70 0.00 1.9 0.076 \n1 7.8 0.88 0.00 2.6 0.098 \n2 7.8 0.76 0.04 2.3 0.092 \n3 11.2 0.28 0.56 1.9 0.075 \n4 7.4 0.70 0.00 1.9 0.076 \n\n free sulfur dioxide total sulfur dioxide density pH sulphates \\\n0 11.0 34.0 0.9978 3.51 0.56 \n1 25.0 67.0 0.9968 3.20 0.68 \n2 15.0 54.0 0.9970 3.26 0.65 \n3 17.0 60.0 0.9980 3.16 0.58 \n4 11.0 34.0 0.9978 3.51 0.56 \n\n alcohol quality \n0 9.4 5 \n1 9.8 5 \n2 9.8 5 \n3 9.8 6 \n4 9.4 5 " 50 | }, 51 | "metadata": {} 52 | } 53 | ] 54 | }, 55 | { 56 | "metadata": { 57 | "trusted": true 58 | }, 59 | "cell_type": "code", 60 | "source": "df = df.fillna(method='ffill')", 61 | "execution_count": 23, 62 | "outputs": [] 63 | }, 64 | { 65 | "metadata": { 66 | "trusted": true 67 | }, 68 | "cell_type": "code", 69 | "source": "X = df[['fixed acidity', 'volatile acidity', 'citric acid', 'residual sugar', 'chlorides', 'free sulfur dioxide', 'total sulfur dioxide', 'density', 'pH', 'sulphates','alcohol']].values\ny = df['quality'].values\n\n\nsb.distplot(df['quality'])", 70 | "execution_count": 24, 71 | "outputs": [ 72 | { 73 | "output_type": "stream", 74 | "text": "/home/nbuser/anaconda3_501/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n", 75 | "name": "stderr" 76 | }, 77 | { 78 | "output_type": "execute_result", 79 | "execution_count": 24, 80 | "data": { 81 | "text/plain": "" 82 | }, 83 | "metadata": {} 84 | }, 85 | { 86 | "output_type": "display_data", 87 | "data": { 88 | "image/png": "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\n", 89 | "text/plain": "
" 90 | }, 91 | "metadata": { 92 | "needs_background": "light" 93 | } 94 | } 95 | ] 96 | }, 97 | { 98 | "metadata": { 99 | "trusted": true 100 | }, 101 | "cell_type": "code", 102 | "source": "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=123)", 103 | "execution_count": 25, 104 | "outputs": [] 105 | }, 106 | { 107 | "metadata": { 108 | "trusted": true 109 | }, 110 | "cell_type": "code", 111 | "source": "regressor = LinearRegression() \nregressor.fit(X_train, y_train)", 112 | "execution_count": 26, 113 | "outputs": [ 114 | { 115 | "output_type": "execute_result", 116 | "execution_count": 26, 117 | "data": { 118 | "text/plain": "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n normalize=False)" 119 | }, 120 | "metadata": {} 121 | } 122 | ] 123 | }, 124 | { 125 | "metadata": { 126 | "trusted": true 127 | }, 128 | "cell_type": "code", 129 | "source": "y_pred = regressor.predict(X_test)\n\nout = pd.DataFrame({'Actual': y_test, 'Predicted': y_pred})", 130 | "execution_count": 27, 131 | "outputs": [] 132 | }, 133 | { 134 | "metadata": { 135 | "trusted": true 136 | }, 137 | "cell_type": "code", 138 | "source": "out.head(25).plot(kind='bar',figsize=(10,8))\nplt.grid(which='major', linestyle='-', linewidth='0.5', color='green')\nplt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')\nplt.show()", 139 | "execution_count": 28, 140 | "outputs": [ 141 | { 142 | "output_type": "display_data", 143 | "data": { 144 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk0AAAHYCAYAAABQudw1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzt3X2UZGVhJvDnlQGHjxFlMAhiGFZFjBIG6EQR1Al+oe6aCHHVNXFxjWMOB2Gza3QM66FdDZpAXNx1JWEXJMYAuggaMeDIasf4BczAqIThU0BwBBUEBgFl4N0/qmDno3v67a6+QxXz+51TZ6pv3Xrq7bera56+99atUmsNAACb94THegAAAKNAaQIAaKA0AQA0UJoAABooTQAADZQmAIAGShMAQAOlCQCggdIEANBgXhehu+66a120aFHTunfcd0cW7rBwzscwarldZo9abpfZo5bbZfao5XaZPWq5XWbL7T571HK7zB6W3JUrV/6s1vrUaVestc755aCDDqqtTvjaCc3rzsSo5XaZPWq5XWaPWm6X2aOW22X2qOV2mS23++xRy+0ye1hyk6yoDf3G7jkAgAZKEwBAA6UJAKBBJweCAwBz48EHH8ytt96aBx54YLPrvWrnV2X16tWdjKGr7C2dO3/+/Oy5557ZdtttZ5WrNAHAELv11luzYMGCLFq0KKWUKddbs3ZN9liwRydj6Cp7S+bWWnPHHXfk1ltvzd577z2rXLvnAGCIPfDAA1m4cOFmCxPTK6Vk4cKF026x2xylCQCGnMI0NwadR6UJAKCBY5oAYIQsWvalzdx6xYzzbvrIa5vWO//883PEEUdk9erV2Xfffadc78wzz8wrX/nK7LHH7I5VmpiYyMknn5wLLrhgVvfvki1NAMC0zj777Bx66KE555xzNrvemWeemTVr1myhUW1ZShMAsFm/uPcX+eY3v5nTTz99g9L0l3/5l9lvv/2y//77Z9myZTn33HOzYsWKvOUtb8nixYtz//33Z9GiRfnZz36WJFmxYkWWLFmSJLn00kvzupe/LgcccEBe9KIX5ZprrnksvrUZsXsOANisiy64KIcffnj22Wef7LLLLrn88stz++235/Of/3wuueSS7LDDDrnzzjuzyy675OMf/3hOPvnkjI2NbTZz3333zXkXnZdff8qv5+KLL86f/dmf5XOf+9wW+o5mR2kCADbr8+d+PsvevSxJ8qY3vSlnn312Hn744bztbW/LDjvskCTZZZddZpR59913551HvzO33HhLSil58MEH53zcc01pAgCmdMcdd+RbX/9W/ujqP0opJQ899FBKKTnyyCOb3sI/b968PPzww0mywTmS3v/+9+dFL35R3v/F9+emm256dLfdMHNMEwAwpXPPPTdHvvnI3Hzzzbnppptyyy23ZO+9984uu+ySM844I/fdd1+S5M4770ySLFiwIGvXrn30/osWLcrKlSuTZIPdb3fffXeetsfTkvQOHh8FTVuaSil/kuSPktQk30/ytlrr7E+pCQDMylSnCOjqI0nOPvvsvOPYd2yw7Mgjj8zq1avzute9LmNjY9luu+3ymte8JieeeGKOOuqo/PEf/3G23377fPvb384JJ5yQt7/97TnxxBPzghe84NGM97znPXnLH74lZ556Zg477LA5H3cXpi1NpZSnJzk2yW/UWu8vpXw2yZuSnNnx2ACAx9jExETWrN3wFALHHnvso9eXLVu2wW1HHnlkjjzyyEe/fvGLX5xrr712k9yDDz4437jiG48WvQ9+8INJkiVLlgztrrrW3XPzkmxfSpmXZIckj88TMAAATGHa0lRr/VGSk5P8MMmPk9xda13e9cAAAIZJqbVufoVSnpLkc0nemOSuJP8nybm11k9vtN7SJEuTZOHuCw865qxjmgYwcdNElixaMuOBP95yu8wetdwus0ctt8vsucg95eJNN7kvftaarXIutmRul9lyu8+eae6rdn5V9nrWXtOut/aXa7PgiQsGGNmWz34scm++/uZ8+e4vb7DsA7/zgZW11s2fWCpJaq2bvSR5Q5LT1/v6rUk+sbn7HHTQQbXVCV87oXndmRi13C6zRy23y+xRy+0yey5y93rvBZtctta52JK5XWbL7T57prlXXXVV03o/uudHsxhNm66yH4vcyeYzyYo6TR+qtTYd0/TDJC8spexQeidkeFmS1Q33AwB43Gg5pumSJOcmuTy90w08IclpHY8LAGCoNJ2nqdZ6QpITOh4LADCd8Z0nXTzrMzSN3z3tKs948jOy3377Zd26dXnuc5+bv/3bv33041NmamJiIieffHIuuOCCLP/H5bntxts2OW3BI+66666cddZZOfroo2f0GH914l9l94W7593vfvesxjgVZwQHADZr/vbzs2rVqlx55ZXZbrvt8td//dcb3F5rffSjUmbila955ZSFKemVpk984hMzzu2K0gQANHvxi1+c66+/PjfddFOe+9zn5uijj86BBx6YW265JcuXL8/BBx+cAw88MG94wxty7733Jkkuuuii7Lvvvjn00ENz3nnnPZr1mb//TI45pvdu+9tvvz2vf/3rs//++2f//ffPt771rSxbtiw33HBDFi9enD/90z9Nkpx00kn5rd/6rfzmb/5mTjjh/+8E+/M///M85znPyctf/vLccN0NnXzvShMA0GTdunW58MILs99++yVJrrnmmrz1rW/NFVdckR133DEf+tCHcvHFF+fyyy/P2NhYPvrRj+aBBx7IO97xjnzxi1/MP//zP+e2226bNPvYY4/NS1/60nz3u9/N5Zdfnuc973n5yEc+kmc+85lZtWpVTjrppCxfvjzXXXddLr300qxatSorV67M17/+9axcuTLnnHNOrrjiipx33nn57uXf7eT7bzqmCQDYej1w/wNZvHhxkt6Wpre//e1Zs2ZN9tprr7zwhS9MknznO9/JVVddlUMOOSRJ8qtf/SoHH3xwrr766uy999559rOfnST5gz/4g5x22qbvJ/vqV7+aT33qU0mSbbbZJjvvvHN+/vOfb7DO8uXLs3z58hxwwAFJknvvvTfXXXdd1q5dm9e//vWPHmf1ite8ooNZUJoAgGk8ckzTxnbcccdHr9da84pXvCJnn332BuusWrUqvTMWDa7Wmve973155zvfucHyU045Zc4eY3PsngMABvbCF74w3/zmN3P99dcnSe67775ce+212XfffXPjjTfmhht6xxltXKoe8bKXvSynnnpqkuShhx7KPffckwULFmTt2rWPrvOqV70qZ5xxxqPHSv3oRz/KT37yk7zkJS/J+eefn/vvvz9r167NVy78Siffoy1NADBKpjhFwJq1a7LHglmfeGBgT33qU3PmmWfmzW9+c375y18mST70oQ9ln332yWmnnZbXvva12XXXXXPooYfmyiuv3OT+H/vYx7J06dKcfvrp2WabbXLqqafm4IMPziGHHJLnP//5efWrX52TTjopq1evzsEHH5wk2WmnnfLpT386Bx54YN74xjdm8eLF2WuvvfKCF72gk+9RaQIANuu6H1+3ybJFixZtUn4OO+ywXHbZZZuse/jhh+fqq6/eZPkb3/LGR4vebrvtli984QubrHPWWWdt8PVxxx2X4447bpP1jj/++Bx//PFJuiuQds8BADRQmgAAGihNADDkaq2P9RAeFwadR6UJAIbY/Pnzc8cddyhOA6q15o477sj8+fNnneFAcAAYYnvuuWduvfXW/PSnP93senc9cFfunj/9h+/ORlfZWzp3/vz52XPPPWedqzQBwBDbdttts/fee0+73vjEeMYPGO9kDF1lj1qu3XMAAA2UJgCABkoTAEADpQkAoIHSBADQQGkCAGigNAEANFCaAAAaKE0AAA2UJgCABkoTAEADpQkAoIHSBADQQGkCAGigNAEANFCaAAAaKE0AAA2UJgCABkoTAEADpQkAoIHSBADQQGkCAGigNAEANFCaAAAaKE0AAA2UJgCABkoTAEADpQkAoIHSBADQYNrSVEp5Till1XqXe0op/3FLDA4AYFjMm26FWus1SRYnSSllmyQ/SnJ+x+MCABgqM90997IkN9Rab+5iMAAAw2qmpelNSc7uYiAAAMOs1FrbVixluyRrkjyv1nr7JLcvTbI0SRbuvvCgY846pil34qaJLFm0pHW8zUYtt8vsucg95eJrN1m2+Flrtsq52JK5XWZ7XoxubpfZo/a82FrnuKvcyX52yej9/Gaa+4Hf+cDKWuvYtCvWWpsuSX43yfKWdQ866KDa6oSvndC87kyMWm6X2XORu9d7L9jksrXOxZbM7TLb82J0c7vMHrXnxdY6x13lTvazG8Wf30xzk6yoDf1mJrvn3hy75gCArVRTaSql7JDkFUnO63Y4AADDadpTDiRJrfW+JAs7HgsAwNByRnAAgAZKEwBAA6UJAKCB0gQA0EBpAgBooDQBADRQmgAAGjSdpwmg2cSHk4n/tuny8bu3/FgA5pAtTQAADZQmAIAGShMAQAOlCQCggdIEANBAaQIAaKA0AQA0UJoAABooTQAADZQmAIAGPkZlmEz28RM+egIAhoItTQAADZQmAIAGShMAQAOlCQCggdIEANBAaQIAaKA0AQA0UJoAABooTQAADZQmAIAGShMAQAOlCQCgwWP/gb0+pBYAGAGPfWmCySjTAAwZu+cAABooTQAADeyeA6B7k+1yT+x2Z6TY0gQA0EBpAgBooDQBADRQmgAAGihNAAANlCYAgAZKEwBAg6bSVEp5cinl3FLK1aWU1aWUg7se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\n", 145 | "text/plain": "
" 146 | }, 147 | "metadata": { 148 | "needs_background": "light" 149 | } 150 | } 151 | ] 152 | } 153 | ], 154 | "metadata": { 155 | "kernelspec": { 156 | "name": "python36", 157 | "display_name": "Python 3.6", 158 | "language": "python" 159 | }, 160 | "language_info": { 161 | "mimetype": "text/x-python", 162 | "nbconvert_exporter": "python", 163 | "name": "python", 164 | "pygments_lexer": "ipython3", 165 | "version": "3.6.6", 166 | "file_extension": ".py", 167 | "codemirror_mode": { 168 | "version": 3, 169 | "name": "ipython" 170 | } 171 | } 172 | }, 173 | "nbformat": 4, 174 | "nbformat_minor": 2 175 | } --------------------------------------------------------------------------------