{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "tags": [
     "remove-input"
    ]
   },
   "outputs": [],
   "source": [
    "# Install datascience package if needed\n",
    "try:\n",
    "    import datascience\n",
    "except ImportError:\n",
    "    import micropip\n",
    "    await micropip.install('datascience')\n",
    "import matplotlib\n",
    "#matplotlib.use('Agg')\n",
    "path_data = '../../../assets/data/'\n",
    "from datascience import *\n",
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "from mpl_toolkits.mplot3d import Axes3D\n",
    "import numpy as np\n",
    "import math\n",
    "import scipy.stats as stats\n",
    "plt.style.use('fivethirtyeight')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# The Accuracy of the Classifier\n",
    "To see how well our classifier does, we might put 50% of the data into the training set and the other 50% into the test set.  Basically, we are setting aside some data for later use, so we can use it to measure the accuracy of our classifier.  We've been calling that the *test set*. Sometimes people will call the data that you set aside for testing a *hold-out set*, and they'll call this strategy for estimating accuracy the *hold-out method*.\n",
    "\n",
    "Note that this approach requires great discipline.  Before you start applying machine learning methods, you have to take some of your data and set it aside for testing.  You must avoid using the test set for developing your classifier: you shouldn't use it to help train your classifier or tweak its settings or for brainstorming ways to improve your classifier.  Instead, you should use it only once, at the very end, after you've finalized your classifier, when you want an unbiased estimate of its accuracy."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "tags": [
     "remove-input"
    ]
   },
   "outputs": [],
   "source": [
    "def distance(point1, point2):\n",
    "    \"\"\"Returns the distance between point1 and point2\n",
    "    where each argument is an array \n",
    "    consisting of the coordinates of the point\"\"\"\n",
    "    return np.sqrt(np.sum((point1 - point2)**2))\n",
    "\n",
    "def all_distances(training, new_point):\n",
    "    \"\"\"Returns an array of distances\n",
    "    between each point in the training set\n",
    "    and the new point (which is a row of attributes)\"\"\"\n",
    "    attributes = training.drop('Class')\n",
    "    def distance_from_point(row):\n",
    "        return distance(np.array(new_point), np.array(row))\n",
    "    return attributes.apply(distance_from_point)\n",
    "\n",
    "def table_with_distances(training, new_point):\n",
    "    \"\"\"Augments the training table \n",
    "    with a column of distances from new_point\"\"\"\n",
    "    return training.with_column('Distance', all_distances(training, new_point))\n",
    "\n",
    "def closest(training, new_point, k):\n",
    "    \"\"\"Returns a table of the k rows of the augmented table\n",
    "    corresponding to the k smallest distances\"\"\"\n",
    "    with_dists = table_with_distances(training, new_point)\n",
    "    sorted_by_distance = with_dists.sort('Distance')\n",
    "    topk = sorted_by_distance.take(np.arange(k))\n",
    "    return topk\n",
    "\n",
    "def majority(topkclasses):\n",
    "    ones = topkclasses.where('Class', are.equal_to(1)).num_rows\n",
    "    zeros = topkclasses.where('Class', are.equal_to(0)).num_rows\n",
    "    if ones > zeros:\n",
    "        return 1\n",
    "    else:\n",
    "        return 0\n",
    "\n",
    "def classify(training, new_point, k):\n",
    "    closestk = closest(training, new_point, k)\n",
    "    topkclasses = closestk.select('Class')\n",
    "    return majority(topkclasses)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "tags": [
     "remove-input"
    ]
   },
   "outputs": [],
   "source": [
    "wine = Table.read_table(path_data + 'wine.csv')\n",
    "\n",
    "# For converting Class to binary\n",
    "\n",
    "def is_one(x):\n",
    "    if x == 1:\n",
    "        return 1\n",
    "    else:\n",
    "        return 0\n",
    "    \n",
    "wine = wine.with_column('Class', wine.apply(is_one, 0))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Measuring the Accuracy of Our Wine Classifier\n",
    "OK, so let's apply the hold-out method to evaluate the effectiveness of the $k$-nearest neighbor classifier for identifying wines.  The data set has 178 wines, so we'll randomly permute the data set and put 89 of them in the training set and the remaining 89 in the test set."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "shuffled_wine = wine.sample(with_replacement=False) \n",
    "training_set = shuffled_wine.take(np.arange(89))\n",
    "test_set  = shuffled_wine.take(np.arange(89, 178))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We'll train the classifier using the 89 wines in the training set, and evaluate how well it performs on the test set. To make our lives easier, we'll write a function to evaluate a classifier on every wine in the test set:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def count_zero(array):\n",
    "    \"\"\"Counts the number of 0's in an array\"\"\"\n",
    "    return len(array) - np.count_nonzero(array)\n",
    "\n",
    "def count_equal(array1, array2):\n",
    "    \"\"\"Takes two numerical arrays of equal length\n",
    "    and counts the indices where the two are equal\"\"\"\n",
    "    return count_zero(array1 - array2)\n",
    "\n",
    "def evaluate_accuracy(training, test, k):\n",
    "    test_attributes = test.drop('Class')\n",
    "    def classify_testrow(row):\n",
    "        return classify(training, row, k)\n",
    "    c = test_attributes.apply(classify_testrow)\n",
    "    return count_equal(c, test.column('Class')) / test.num_rows"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now for the grand reveal -- let's see how we did.  We'll arbitrarily use $k=5$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.898876404494382"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "evaluate_accuracy(training_set, test_set, 5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The accuracy rate isn't bad at all for a simple classifier."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Breast Cancer Diagnosis\n",
    "\n",
    "Now I want to do an example based on diagnosing breast cancer.  I was inspired by Brittany Wenger, who won the Google national science fair in 2012 as a 17-year old high school student.  Here's Brittany:\n",
    "\n",
    "![Brittany Wenger](http://i.huffpost.com/gen/701499/thumbs/o-GSF83-570.jpg?3)\n",
    "\n",
    "Brittany's [science fair project](https://sites.google.com/a/googlesciencefair.com/science-fair-2012-project-64a91af142a459cfb486ed5cb05f803b2eb41354-1333130785-87/home) was to build a classification algorithm to diagnose breast cancer.  She won grand prize for building an algorithm whose accuracy was almost 99%. \n",
    "\n",
    "Let's see how well we can do, with the ideas we've learned in this course.\n",
    "\n",
    "So, let me tell you a little bit about the data set.  Basically, if a woman has a lump in her breast, the doctors may want to take a biopsy to see if it is cancerous.  There are several different procedures for doing that.  Brittany focused on fine needle aspiration (FNA), because it is less invasive than the alternatives.  The doctor gets a sample of the mass, puts it under a microscope, takes a picture, and a trained lab tech analyzes the picture to determine whether it is cancer or not.  We get a picture like one of the following:\n",
    "\n",
    "![benign](../../../images/benign.png)\n",
    "\n",
    "![cancer](../../../images/malignant.png)\n",
    "\n",
    "Unfortunately, distinguishing between benign vs malignant can be tricky.  So, researchers have studied the use of machine learning to help with this task.  The idea is that we'll ask the lab tech to analyze the image and compute various attributes: things like the typical size of a cell, how much variation there is among the cell sizes, and so on.  Then, we'll try to use this information to predict (classify) whether the sample is malignant or not.  We have a training set of past samples from women where the correct diagnosis is known, and we'll hope that our machine learning algorithm can use those to learn how to predict the diagnosis for future samples.\n",
    "\n",
    "We end up with the following data set.  For the \"Class\" column, 1 means malignant (cancer); 0 means benign (not cancer)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "    <thead>\n",
       "        <tr>\n",
       "            <th>Clump Thickness</th> <th>Uniformity of Cell Size</th> <th>Uniformity of Cell Shape</th> <th>Marginal Adhesion</th> <th>Single Epithelial Cell Size</th> <th>Bare Nuclei</th> <th>Bland Chromatin</th> <th>Normal Nucleoli</th> <th>Mitoses</th> <th>Class</th>\n",
       "        </tr>\n",
       "    </thead>\n",
       "    <tbody>\n",
       "        <tr>\n",
       "            <td>5              </td> <td>1                      </td> <td>1                       </td> <td>1                </td> <td>2                          </td> <td>1          </td> <td>3              </td> <td>1              </td> <td>1      </td> <td>0    </td>\n",
       "        </tr>\n",
       "        <tr>\n",
       "            <td>5              </td> <td>4                      </td> <td>4                       </td> <td>5                </td> <td>7                          </td> <td>10         </td> <td>3              </td> <td>2              </td> <td>1      </td> <td>0    </td>\n",
       "        </tr>\n",
       "        <tr>\n",
       "            <td>3              </td> <td>1                      </td> <td>1                       </td> <td>1                </td> <td>2                          </td> <td>2          </td> <td>3              </td> <td>1              </td> <td>1      </td> <td>0    </td>\n",
       "        </tr>\n",
       "        <tr>\n",
       "            <td>6              </td> <td>8                      </td> <td>8                       </td> <td>1                </td> <td>3                          </td> <td>4          </td> <td>3              </td> <td>7              </td> <td>1      </td> <td>0    </td>\n",
       "        </tr>\n",
       "        <tr>\n",
       "            <td>4              </td> <td>1                      </td> <td>1                       </td> <td>3                </td> <td>2                          </td> <td>1          </td> <td>3              </td> <td>1              </td> <td>1      </td> <td>0    </td>\n",
       "        </tr>\n",
       "        <tr>\n",
       "            <td>8              </td> <td>10                     </td> <td>10                      </td> <td>8                </td> <td>7                          </td> <td>10         </td> <td>9              </td> <td>7              </td> <td>1      </td> <td>1    </td>\n",
       "        </tr>\n",
       "        <tr>\n",
       "            <td>1              </td> <td>1                      </td> <td>1                       </td> <td>1                </td> <td>2                          </td> <td>10         </td> <td>3              </td> <td>1              </td> <td>1      </td> <td>0    </td>\n",
       "        </tr>\n",
       "        <tr>\n",
       "            <td>2              </td> <td>1                      </td> <td>2                       </td> <td>1                </td> <td>2                          </td> <td>1          </td> <td>3              </td> <td>1              </td> <td>1      </td> <td>0    </td>\n",
       "        </tr>\n",
       "        <tr>\n",
       "            <td>2              </td> <td>1                      </td> <td>1                       </td> <td>1                </td> <td>2                          </td> <td>1          </td> <td>1              </td> <td>1              </td> <td>5      </td> <td>0    </td>\n",
       "        </tr>\n",
       "        <tr>\n",
       "            <td>4              </td> <td>2                      </td> <td>1                       </td> <td>1                </td> <td>2                          </td> <td>1          </td> <td>2              </td> <td>1              </td> <td>1      </td> <td>0    </td>\n",
       "        </tr>\n",
       "    </tbody>\n",
       "</table>\n",
       "<p>... (673 rows omitted)</p>"
      ],
      "text/plain": [
       "Clump Thickness | Uniformity of Cell Size | Uniformity of Cell Shape | Marginal Adhesion | Single Epithelial Cell Size | Bare Nuclei | Bland Chromatin | Normal Nucleoli | Mitoses | Class\n",
       "5               | 1                       | 1                        | 1                 | 2                           | 1           | 3               | 1               | 1       | 0\n",
       "5               | 4                       | 4                        | 5                 | 7                           | 10          | 3               | 2               | 1       | 0\n",
       "3               | 1                       | 1                        | 1                 | 2                           | 2           | 3               | 1               | 1       | 0\n",
       "6               | 8                       | 8                        | 1                 | 3                           | 4           | 3               | 7               | 1       | 0\n",
       "4               | 1                       | 1                        | 3                 | 2                           | 1           | 3               | 1               | 1       | 0\n",
       "8               | 10                      | 10                       | 8                 | 7                           | 10          | 9               | 7               | 1       | 1\n",
       "1               | 1                       | 1                        | 1                 | 2                           | 10          | 3               | 1               | 1       | 0\n",
       "2               | 1                       | 2                        | 1                 | 2                           | 1           | 3               | 1               | 1       | 0\n",
       "2               | 1                       | 1                        | 1                 | 2                           | 1           | 1               | 1               | 5       | 0\n",
       "4               | 2                       | 1                        | 1                 | 2                           | 1           | 2               | 1               | 1       | 0\n",
       "... (673 rows omitted)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "patients = Table.read_table(path_data + 'breast-cancer.csv').drop('ID')\n",
    "patients"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "So we have 9 different attributes.  I don't know how to make a 9-dimensional scatterplot of all of them, so I'm going to pick two and plot them:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "color_table = Table().with_columns(\n",
    "    'Class', make_array(1, 0),\n",
    "    'Color', make_array('darkblue', 'gold')\n",
    ")\n",
    "patients_with_colors = patients.join('Class', color_table)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAicAAAFWCAYAAACyxj0kAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdeXwM9x/H8dfsJnGGCEEkJEjcgurhaqkStI4qilJFiftH3aruutK61VGqRVE9XKmrRRFXUcRRRxQREiRic5+78/sjpNIkrHZ3ksjn2Ucfj+zM7Lw/E5vks9/5zqxiMBhUhBBCCCFyCF12FyCEEEII8ThpToQQQgiRo0hzIoQQQogcRZoTIYQQQuQo0pwIIYQQIkeR5kQIIYQQOYo0J0IIIYTIUaQ5EUIIIUSOIs1JNggMDMzuErJVXj5+Ofa8KS8fuxD/hjQnQgghhMhRpDkRQgghRI4izYkQQgghchRpToQQQgiRo9hkdwFCCCGyR0pKCrGxsdldhsiDChUqhI1N1i2INCdCCJEHpaSkEB0djYODA4qiZHc5Ig9RVRWDwYC9vX2WDYrmp3UOHz5Mly5dqFq1Kg4ODqxbty7delVVmTlzJlWqVKF06dK89dZbXLx4UesyhRDiuRYbGyuNicgWiqLg4ODwxFE7zZuT2NhYqlWrxqxZsyhQoECG9QsWLOCLL75g9uzZ7Nu3DycnJ9q3b090dLRlClCT0cUHoku4DqpqmX0+g7D7Bi4E3iTsvkHz7OTkZIZO+YIPR8/hZmiY5vl/Xr3JzC++48DxC5pnA/y08xCzln7HteDQbMnPTiu/30mXwZ+y9ZcjmmdHRsYw4OP5TFywgfDwSM3zz/x5lemL1/OL/x+aZycnJ/PJ518z2ncNfwYGaZ7/NNKYiOzytNeeYjAYtP8L/ZCLiwu+vr5069YNSB01qVKlCn379mXkyJEAxMfH4+npybRp0+jVq9d/CzTFU+DOPJSkOygKpOSvQmLJ/qBo06P9djSApd/6EX7fQIniDgx8vw1N6tXSJDsuLo6yDXtgNJoAUBQ4sHEOXlXKa5K/+qdfGTVjRVr+i16V2L1mhibZAA06fMTla8Gggo2tnrWfj8K78Yua5T8SGBiIp6enppkvtB7ItZt30h43a1iHH5dO0CQ7PDySSm/0xvTwjYCiKATsWkY5ZydN8n2Xfc/nK37EaDSi6HQ0fsWLnzQ69uTkZFwbdCcxMTlt2br5o3mraT1N8p8mMjKSokWLZncZIg970mswR12tExQUxN27d2natGnasgIFCtCgQQN+//33/7x/O8N2lJRw0OdH1eVHH38Jfdy5/7xfc327eS+KoqNggXwoio61m/dplt1h4KdpjQGkDhq17q3NL2mAKQu+xaSq6PU6dDqFU+cDNRvBOHTiPFeu30Kv06HX6zAaTQyZslST7OyWnJycrjEB2Hv4tGb5zXuMTWtMIPUNSIv3x2mWv3jN1oevOz06RcH/+Dni4xM0yZ62eH26xgSg96i5mmQLkdvlqAmxd+/eBcDJKf27KicnJ0JDs/5DZu6toUsbb1JYTUgdNgAUNYl7ty4TqSv4Lyt+Ng8iI0lKSgFST2+lJCdqdlvr23cynsZJTEzSLD8pKRmF1D9OACZV5UzABYwJMVbPPnX2T1STivqwFVeAxCTtvvf/pGVuRGRUhmWqhjU8iMx4OjY6Jk6z/BSjKd3rTkXlzNkLlHAsYvXsi1euZ6zHZHqmY9d6lA3gf1OW8NeNEM3yKrqXYeGkgZrlPbJu3TpGjx7N7du3Nc/+p0WLFvHll19y7tx/e7Ps7+9PmzZt+OuvvyhevHiG9UFBQdSqVYvffvuNOnXqZLoPc7bRQo5qTh7557koVVWfeH7K3B9gXcLb5L+3hNQ/T4BSlJJlWlJSb/1fVAD1XqjOsdMXSUpMwi6fHfVeqKbZL5/PxvrQ+X8z0y17r11TzfLrVK/I0dOX0CkKRqMR+0IFadfqdfR6vdWznZ1d8V2xhYTEJHQ6HSaTyuv1amfLL/7sOK1jo9eTYjSmPS5cML9mNYwb2IUxs1elWza8zzua5Xu4leHPwKCH/+4mHIraU/+VuppkTx/dh1/b/S/dspdqVcqW192z+OtGCIf/+DO7y3iqe/fuMWfOHHbv3k1ISAjFixenevXq+Pj44O3tnd3lif8oR53WKVWqFJD6ontceHh4htGUf8OUvwIJTj4Y83tgzF+Z+NLDQaPGBGBEnw60a96QiuVK0q55Q0b06aBZdosmLzFjRC/sbPXY2ujp+GYj5k3sr1n+li8n0/K1FynuUIRyziU4tmWBJo0JQOHCBdj/3ee4uZSkuEMR3m39Kl9/PlKT7Jzg3O6lFC1cEBu9ntJOjlz3X61Zdr9urRnW+21sbfTo9ToGdWvN8D4dNcv/bYMvr71cE0cHe6pULMvxrQs1y65U3pWNC8eRz84WvV5Hg7rV2PWNdvOsnmdBQUE0btyYffv2MWnSJA4fPsyWLVvw9vZm+PDhmtWRlJSkWdbT5KRaLCFHNSdubm6UKlWK3377LW1ZQkICR48e5ZVXXrFIhqlAJRJL9iOxZB9U2xIW2ae59Ho9H3RoxuDub/JBh2bodNp++wd+0IZ7f/xA2KkfWDlLux9gSD32b+eP4eLelXy/cCSlnRw1zfdwL8MfPy/h4t6VLJn2v6c/4TniXLIEQUe+Jfz0D1zauxJbW1tN8ycP60HYqR849v1Mpo/prWm2Xq9n0/JJXNr7FYd+nIdjUXtN81s0eYm7Jzdy7PuZ7Pj6U02zn2cjR45EVVV+++032rdvj6enJ5UrV8bHx4dDhw4BEBwcTLdu3XB1dcXV1ZXu3bs/9RTO119/TZ06dXBycqJOnTqsXp2+kXdwcGDFihV0796dMmXKMHXq1H9V/4IFC6hUqRIuLi7069ePmJj0p7dPnTpF+/btqVChAmXLlqVly5YcP378mWtJTEykW7duvPbaa4SF/X1q/+rVq7Rs2ZJSpUrx0ksvsW9f1vMf/f39cXBw4P79+2nLgoKCcHBw4PTpv+evXbp0iXfffRdXV1c8PDz48MMP06Zq/BuaNycxMTGcPXuWs2fPYjKZuHXrFmfPniU4OBhFURgwYADz589n27Zt/PnnnwwcOJBChQrRsaN277aEEELkTA8ePGDPnj307duXwoULZ1jv4OCAqqp069aNsLAwtm3bhp+fH3fu3KFbt25p84/+yc/Pj1GjRjFgwACOHj1K//79GTFiBDt37ky33ezZs/H29ubIkSP06dMHSL3y9En/P/73a/PmzXz66aeMGzeOAwcO4OnpyZIlS9JlREdH07lzZ3bu3MnevXupWbMmnTp1StcgZFXLI1FRUXTo0IEHDx7w888/pzv7MGnSJPr164e/vz9NmjThvffeIyTk388zunPnDm+++SZVq1Zl7969bNmyhZiYGLp27YrJZHr6DjKh+ZyT06dP06ZNm7THM2fOZObMmXTt2pWlS5cydOhQ4uPjGTVqFAaDgbp167Jp0ybs7bV9xyOEECLnuXbtGqqqUqlSpSy32b9/P+fPn+f06dO4ubkBsHLlSurUqcOBAwdo0qRJhucsXryYzp074+PjA4CHhwdnzpxhwYIFtGrVKm279u3b06NHj3TP9ff3f2LN+fPnT/t66dKldO3aNe3WGCNHjsTf359r166lbdO4ceN0z/f19WXbtm3s2bOHzp07Z1lLcHAwkDoVwsfHB2dnZ7755pt0+QC9e/emffv2AGn3FFu1ahWffPLJE48jK1999RU1atRgypQpacuWL1+Ou7s7p0+fpm7dZ5/npXlz8uqrr2IwZH0DMkVRGDduHOPGaXe5oRBCiNwhq5GPx12+fBlnZ+e0xgTA3d0dZ2dnLl26lGlzcvny5bR7bj1Sv379DCMnmV3BUqFCBTOrT815//330y176aWX0jUnYWFhTJ8+HX9/f8LCwjAajcTHx3Pr1q2n1gLwzjvv4OXlxdq1azO9PfxLL72U9rVOp6Nu3bpcunTJ7GP4p4CAAI4cOYKLi0uGddevX88dzYkQQgjxb1WsWBFFUbhy5UqW2zzpCs8nXfmZ2bp/LitUqFCGbTL7o/y4+vXr8+OPPz5xm8cNGDCAe/fuMWPGDMqVK0e+fPlo27ZthkmvmdUC0KJFCzZv3syFCxeoVeu/3ejz0dzIx5vClJSUdNuYTCa8vb359NOM86r+7cUs0pwIIYTINYoVK8Ybb7zBihUr6NevX4Z5JwaDgSpVqhASEkJQUFDa6MmNGzcIDQ2lSpUqme63cuXKHDt2LN2oxtGjR7Pc/nHPclqncuXKnDx5Ml3OyZMn021/7NgxZs2aRYsWLYDUK1ifZXLp+PHjKVasGG+//TZbt27Fy8sr3fqTJ0+mnTpSVZVTp07Rrl27TPdVokTqhSN37txJ+/qf92OpVasWmzdvpmzZshabcC/NiRBCiFzl888/p0WLFrz++uuMHz+e6tWro6oq/v7+zJs3j3PnzlGjRg18fHyYPXs2qqoyevRoatWqxWuvvZbpPocMGULPnj2pXbs2TZs2Zc+ePfzwww+sXbv2qfU8y2md/v37079/f1544QUaNWrE1q1b+eOPP3BwcEjbpmLFinz//fe8+OKLxMXFMXHiROzs7MzOAJgwYQKqqqY1KDVr1kxbt2rVKjw8PKhWrRorV64kODiY3r0zv5KuQoUKuLq6MmvWLCZPnszNmzf57LPP0m3Tp08fVq9eTa9evRg2bBglSpTgxo0baZN//82cUWlOhBBCpKnoXibH57m7u3PgwAHmzJnDpEmTCA0NxdHRkRo1ajBv3jwURWHdunWMGTOG1q1bA6mTTH19fbM8rdO6dWt8fX1ZtGgR48aNo2zZssyZMyfdZFhLeOedd7hx4wbTpk0jPj6eVq1aMXDgQNavX5+2zeLFixk2bBhNmjShdOnSjB07NsOVOuaYOHEiqqrSrl07tm7dSpEiqff1mjRpEl988QUBAQGULVuWb7/9NstTU7a2tnz11VeMGDGCRo0aUbNmTSZOnJhuYq6zszO7d+9mypQpdOjQgcTERFxdXXn99dfJly/fM9cN2fzBf3lVdtwlNCfJy8cvxy7HnlPIB/+J7JZrPvhPCCGEEEKaEyGEEELkKNKcCCGEECJHkeZECCGEEDmKNCdCCCGEyFGkORFCCCFEjiLNiRBCCCFyFGlOhBBCCJGjSHMihBBCiBxFbl8vhBAiTf6Q2eiTgjXLM9qVJaHMGM3yHlm3bh2jR4/m9u3bmmdbgoODA6tXr87yA/vu379PxYoV8fPz49VXX9W4uv9OmhMhhBBp9EnB2MSfye4ynurevXvMmTOH3bt3ExISQvHixalevTo+Pj54e3tnd3niP5LmRAghRK4SFBREy5YtKVy4MJMmTaJGjRqYTCYOHDjA8OHDOX/+vCZ1JCUlPfOnBQvzyJwTIYQQucrIkSNRVZXffvuN9u3b4+npSeXKlfHx8eHQoUMABAcH061bN1xdXXF1daV79+5PPYXz9ddfU6dOHZycnKhTpw6rV69Ot97BwYEVK1bQvXt3ypQpw9SpU/9V/XPnzsXT0xMXFxf69evHrFmzqFmzZtp6k8mEr68v1atXp2TJkjRo0IDt27c/cZ+nTp2icePGlCpVildffZWTJ0/+q9pyCmlOhBBC5BoPHjxgz5499O3bl8KFC2dY7+DggKqqdOvWjbCwMLZt24afnx937tyhW7duqKqa6X79/PwYNWoUAwYM4OjRo/Tv358RI0awc+fOdNvNnj0bb29vjhw5Qp8+fQBwcXF54v8dO3ZMe/5PP/3E7NmzmTBhAgcOHKBy5cosWbIkXcbSpUtZtGgRkydP5siRI7z11lu8//77nD17NtPaY2Njeffdd3F3d+e3335j8uTJTJgw4Zm+rzmNnNYRQgiRa1y7dg1VValUqVKW2+zfv5/z589z+vRp3NzcAFi5ciV16tThwIEDNGnSJMNzFi9eTOfOnfHx8QHAw8ODM2fOsGDBAlq1apW2Xfv27enRo0e65/r7+z+x5vz586d9vWzZMt577720fQwfPhx/f3+uXr2arpbBgwfTqVMnAMaPH8+RI0dYvHgxX375ZYb9//DDDyQlJfHFF19QuHBhqlWrxogRI+jXr98T68rJpDkR4jkXHhHJ7GXfExkdR5lSjozy6UShgvmf/kQL2b7vd37ed5yoqEg6tW7K294NNMsWz5+sRj4ed/nyZZydndMaEwB3d3ecnZ25dOlSps3J5cuX6datW7pl9evXzzByUqdOnQzPrVChgpnVw5UrVzI0N3Xr1k1rTqKioggNDaVevXoZavnll18y3efly5epXr16upGkl19+2eyaciJpToR4zk2av5Z74QZ0Oh33H0Thu/wHpnz0vibZ56/cYNUPu7HR2xAbG8+aTXso6+xE3ZqemuSL50/FihVRFIUrV65kuY2qqiiKkum6rJZnte6fywoVKpRhGxcXlyz3CamNxY8//mhWDU+S1fPMadhyG2lOhHiOJSencP9BFDpd6vQyGxs9Iffua5Z/IuAK8PcvVL1Ox/GAy9KciH+tWLFivPHGG6xYsYJ+/fplmHdiMBioUqUKISEhBAUFpY2e3Lhxg9DQUKpUqZLpfitXrsyxY8d4//2/G/ejR49muf3jnuW0TqVKlTh16hTdu3dPW3bq1Km0r4sUKYKzszPHjh2jcePG6WqpXLlypvuvUqUKGzZsIDY2Nq15OnHixFPrzsmkORHiOWZjo6dQgfxEx8ajKAomVaWofUHN8itVcMG0xwR6PQApRiOVKjz5XaYQT/P555/TokULXn/9dcaPH0/16tVRVRV/f3/mzZvHuXPnqFGjBj4+PsyePRtVVRk9ejS1atXitddey3SfQ4YMoWfPntSuXZumTZuyZ88efvjhB9auXfvUep7ltE7//v0ZNGgQderUoUGDBvz888+cPHkSBweHdLXMnDmTihUrUrt2bTZu3MjRo0fZv39/pvvs2LEj06ZNY/DgwYwePZo7d+4wZ84cs2vKiaQ5EeI5pigKI/p2YM7Kn4iJi6eEgz2jfDpplt/ghWq0eK0uB38/h6JA0/q1aFq/tmb54tkZ7crm+Dx3d3cOHDjAnDlzmDRpEqGhoTg6OlKjRg3mzZuHoiisW7eOMWPG0Lp1awAaN26Mr69vlqdGWrduja+vL4sWLWLcuHGULVuWOXPmpJsMawkdOnTgxo0bTJkyhfj4eFq3bk3v3r3ZsWNH2jb9+/cnJiaGSZMmce/ePTw9PVmzZg1eXl6Z7rNw4cJs3LiR4cOH07hxYzw9PZk8eTJdu3a1aO1aUgwGw/N3siqHCwwMxNMz7w5r5+Xjz65jV1WVpOQU8tnZap4NkJJiJPBqIFXNGCJ/HuXE13xkZCRFixbN7jIE0K1bN1JSUti4cWN2l6KpJ70Gn2nk5Pz58xw5coSIiAh69epFqVKluHbtGk5OTtjb21ukWCGE5SmKkm2NCaSeXrJ5eGpHiLwsLi6Or776imbNmmFjY8O2bdvYsWMHa9asye7SchSzmpPExER8fHzw8/NLmwXdsmVLSpUqxcSJE/Hw8GDy5MlWLlUIIYTI3RRFYc+ePcydO5eEhAQqVKjA8uXLadOmTXaXlqOYdYfYadOmsX//fpYvX05gYGC6y5aaN2/O3r17rVagEEII8bwoUKAAW7du5fr164SGhnL48GHefffd7C4rxzFr5OSnn37ik08+oVOnThiNxnTr3NzcuHnzplWKE0IIIUTeY9bISURERJa3CjaZTCQlJVm0KCGEEELkXWY1J25ublne0OWPP/7Aw8PDokUJIYSwvufxzqIid3jaa8+s5qRLly7Mnz+f77//Pm2URFEUDh48yJIlS9Ld6U4IIUTOV6hQIQwGgzQoQnOqqmIwGDL9KIBHzJpzMnToUM6fP0+/fv343//+B0CrVq1ISEigQ4cOufqTD4UQIi+ysbHB3t6eqKio7C5F5EH29vbY2GTdgpjVnOj1elatWkWfPn3Yt28fYWFhODo68sYbb9CoUSOLFSuEEEI7NjY2ciM2kSM9003YGjRoQIMG8nHnQgghhLAes+actGnThlGjRmV6Vc7ly5fl5jFCCCGEsBizmpNDhw6xatUq2rVrR0RERLp10dHRHD582CrFCSGEECLvMas5AZg/fz4hISE0a9aMwMBAa9YkhBBCiDzM7OakWrVq7Nu3j5IlS9K8eXMOHDhgzbqEEEIIkUeZ3ZwAFC9eHD8/P1q2bEmnTp3kUxSFEEIIYXHPdLUOgK2tLcuWLcPT05Nhw4bxxhtvWKMuIYQQQuRRz9ycPDJixAg8PT0ZMGCAJesRQgghRB5nVnMSEBBA6dKlMyxv27YtXl5e3Lp1y+KFCSGEECJvMqs5KVeuXJbr3N3dcXd3t1Q9QgghhMjjsmxOBg0axKhRo3B3d2fQoEFP3ImiKCxevNjixQkhhBAi78myOfH396d///4AHDx4EEVRstzJk9YJIYQQQjyLLJuTs2fPpn197tw5TYoRQgghhHim+5xowWg08umnn+Ll5UWpUqXw8vLi008/JSUlJbtLE0IIIYQGsmxOkpOTiYqKyrA8PDyciRMn0rlzZ4YOHZpuhMUS5s+fz8qVK5k9ezbHjx9n1qxZrFixgrlz51o0Jy8Kv3+PoWPH0vej4Vy5cl7z/CVr/WjU8SPGff4tRqNR0+yY6Gi6DhjOq+17s+7HHzTNzm5JSUnUbT2QUi++S8seH2uef/laMM27j6Xn2MX8efWm5vnZKSYuntEzVzLu82/5/fTF7C5HiFxDMRgMamYrxo4dy+7duzl9+nTassjISBo0aEBISAgODg5ERUWRL18+du3ahZeXl0UK6ty5M8WKFWPZsmVpy/r378+DBw/YuHGjRTKyW2BgIJ6enppmGgz3afruIAwxyaCAnY2Ozcs+oWrVWprkD5+2jDWb94KqoqoqziWLE7BzKXq93urZxpQUqjR9jwdRKaCAosDIXq8zZsgQq2f/U3b825es+y5JyX+PPBZ3sOevg6s1yb56I4RG7w4nJTkFVVWxtbVh34bPqOaR9RWAz4uEhCRe7zqK0PAIMKnY2Niw5NMheL9aN7tLEyLHy3Lk5NixY3Tq1CndsqVLlxISEsJnn33G9evXuXDhAq6ursybN89iBdWrV49Dhw5x5coVAC5duoS/vz/Nmze3WEZetGL1aiKik7CxUbDRK6QYTUyau+zpT7SQTbsOo1MUdDodOp2OO+EP+PNKkCbZu/bu4UFUCjod6BRQVVjx/SFNsrNbRERUusYE4L4hWrP8oVOXkpKckvbvnpJiZMjELzTLz06/Hj5FyN0IbPU2KDodKvD5lz9md1lC5ApZTogNDg6mZs2a6Zbt3r0bNzc3+vTpA0Dp0qUZNGgQs2bNslhBw4YNIyYmhldeeQW9Xk9KSgojR45My8xMbvyUZK1rjomJQlVBNaU+VlWV5KRkzeowqkZU9bFBOlUl+FYw+W2sf3onLCws/QIVUE3Z9rrRMjciOiZba0iMj0d9OFoGqa+7xMSEXPkz+6zuhIZiNBlJMaZezWhMSSEh4dmOXetRNiFyiiybk7i4OIoVK5bu8blz5+jSpUu67Tw8PLh//77FCtq0aRPfffcdK1eupEqVKpw7d46xY8dSrlw5evTokelzctsPcHYM7X80aAg/+w8mIioJRYF8tnpmjx+mWR1d27zOqh9+STut41K6BG82b6xJdoXy5Zm5Yjv3I5OA1NM6g99rli2vm+z4t89nZ0Ni0t+jJ07Fi2hWw5e+I2jUYThJyckPT+vY8uXsEXjmgdM6bm5ufLP5ILfuhAMqdra2TB3RM9f9vhIiO2R5WsfFxYWrV6+mPT527BhGo5F69eql2y4+Ph57e3uLFTRx4kQGDx5Mhw4dqF69Ol26dGHQoEEWPXWUFzk4FGfvd4t5t0V1Wr/qwY5vZlCpUg3N8n3H9eWzcX2pVbUCrV57gdPbl2iWrbex4dwv39C2iSe1Kxdn+dQPGDawn2b52e3uye+p7ulG/vx2NK1fi8DfvtEsu0JZZw79NJdX6lSlVhV3DmzMG/NNAOzs7Ni7bjY93mlGgzqV+X7xeJrU02aOlxC5XZYjJ02bNmXBggW8/PLLlCxZknnz5mFnZ0eLFi3SbXfixAlcXV0tVlBcXFyGSZJ6vR6TyWSxjLzKwaE4sydNzbb8Xp286dXJm8DAQE0mwj7OLl9+Vs2frWlmTnL4p+xr7iuUdWb7qmmpo0YVymZbHdkhf347po344OGImUd2lyNErpFlczJq1Ch27txJo0aNgNRzxR9//DFOTk5p2xiNRtatW0e7du0sVlDLli2ZP38+bm5uVKlShbNnz/LFF19kOJ0khBBCiOdTls2Jk5MTR44cYcuWLRgMBurWrUuDBg3SbXP//n369etHy5YtLVaQr68v06dPZ8SIEYSHh1OqVCk++OADRo8ebbEMIYQQQuRcWd7nRFhPdkyKzEny8vHLscuxCyGeLsfdvl4IIYQQeZs0J0IIIYTIUaQ5EUIIIUSOIs2JEEIIIXIUaU6EEEIIkaNIcyKEEEKIHCXL+5x4eXmhKIpZO1EUhTNnzlisKCGEEELkXVk2Jw0bNjS7ORFCCCGEsJQsm5OlS5dqWYcQQgghBCBzToQQQgiRw2Q5crJhw4Zn2lHXrl3/czFCCCGEEFk2JwMHDjR7J4qiSHMihBBCCIvIsjkJCAjQsg4hhBBCCOAJzUm5cuW0rEMIIYQQAnhCc5KZ8+fPc+TIESIiIujVqxelSpXi2rVrODk5YW9vb60ahRBCCJGHmNWcJCYm4uPjg5+fH6qqoigKLVu2pFSpUkycOBEPDw8mT55s5VKFEEIIkReYdSnxtGnT2L9/P8uXLycwMBBVVdPWNW/enL1791qtQCGEEELkLWaNnPz000988skndOrUCaPRmG6dm5sbN2/etEpxQgghhMh7zBo5iYiIoFKlSpmuM5lMJCUlWbQoIYQQQuRdZjUnbm5unDhxItN1f/zxBx4eHhYtSlhPclICCfHR2ZJtMhoJC79DSnL2NLNGo5G4+MRsyc5uJpOJsPsGTCZTtuQnJSeTnJySLdmqqhIbl92V2aQAACAASURBVJDudLSWUlKMJCQmZ0u2ELmVWad1unTpwty5cylXrhxt2rQBUm+8dvDgQZYsWcLYsWOtWqSwjNXfzOaXQ+dQgVqVyzBq+Ax0+me6YOtfCwq+Rkef8RhiktHr4KOezejXq78m2QC/+P/B6p9+JSXFiKuzE1M/6kGhgvk1y89Om3cdZvycb0hKSqFgATtWfz6KOjW0eUOhqiqLV2/l8Mk/iYmN4Y1XX2RYr/aafajovXADE+etIcIQTYH8dgzr3Z461bV7M7V592F+2O5PVHQUNat6MOWj97GztdUsX4jcyqyRk6FDh+Lt7U2/fv0oX748AK1ateLtt9+mWbNm9OvXz6pFiv/uwtkD+O0L4NF7xxPng9n80zLN8vuOmMqD6CQUBYxGmP/NXqKiDJpkG6Ji+eq7XaSkmACFG8F3WfqtnybZ2c1kMjFh7moSk5JRFIiNT2TAhEWa5fufuMC+o2cevu4UDv5+jr2Hz2iW//mKH7n/IApFUUhITGb+qs2ajaDcCYvg2y17MZpSX3eXrwXz1cZdmmQLkduZ9bZZr9ezatUq+vTpw759+wgLC8PR0ZE33niDRo0aWbtGYQHXb1zB9NgvZVu9jqDbtzXLj4xNQqf7+91yUopKaOgtihRxsHp2hCGK+MQkCuTPB4CNjZ5wQ5TVc3OChIQkEpOS0T0cqdApCnEJCZrl/xUUgk6nT3tso9dzNSiEZo3qaJIfHRuPTvf3e7CExCTiE5IoWCCf1bPvhEWQkJBM4UKpv2ZtbWy5G65NQy5EbvdMY/oNGjSgQYMG1qpFWFGtWvWx27w/7XGKSeWlOnU1yy9fpihhF+5hY6NgUk0UKmCLW7kKmmSXdnLEoUghEhKTURSFpORkKpcvq0l2ditYMD9F7AtiiIxBp9ORYjJRqngxzfJfrlWZn/ceS3tsUk3Uq11Zs/yyziW4G/YAW1sbTCYTJRyLUCC/nSbZ7q6lKWJfEKMxdZ5PUnIyNSq7a5ItRG6nHzt27OTMVty9e5cBAwZQqFChLCe8/vLLL0yePJnGjRtTsGBBa9b5XImIiKB48eKaZhZ1KEmZEjbcCLpBgfw2tGn6Mi3f7KlZ/pvNmnD0d3/iEpIpUtCG5dOHUs5Nm+bE1taGGpXduXwtGDs7G16pXYW+XVpqNu/hcdnxb9+sYW32HQ1AVVXcypRk/cJxmowcAJQs7kCxooW5FRqGTlHp0cGbV1+uqUk2wEu1KhMUco+U5BRKOznyyeD3NJtrlD+fHZUruHLl+i0wmWj+6ot0e7tptrzuhMhtFIPBkOkJ2ClTpuDn58fx48fTDYs+zmg00qBBA9q2bcv48eOtWujzJDAwEE9Pz+wuI9vk5eOXY5djF0I8XZYTYnfv3k3Pnj2zbEwgdS5Kjx492Llzp1WKE0IIIUTek2XncePGDby8vJ66g5o1a3Lt2jWLFiWEEEKIvCvL5uRZzovKOVQhhBBCWEqWzYmbmxsBAQFP3cGZM2coV66cRYsSQgghRN6VZXPSokULli1bRkRERJZPvn//PsuWLaNVq1ZWKU4IIYQQeU+WzcmQIUNQVZXmzZvj5+dHwmM3bkpISMDPzw9vb28URWHIkCGaFCuEEEKI51+WN2FzdHRk06ZN9OjRgx49emBjY0OJEiUACA8Px2g04uHhwaZNmyhWTLubOgkhhBDi+fbEO8RWqVKFo0ePsm3bNg4cOMDth7c7d3FxoUmTJrRp0wa9Xv+kXQghhBBCPJOn3r5er9fTvn172rdvr0U9QgghhMjjzPpUYiGEEEIIrUhzIoQQQogcRZoTIYQQQuQo0pwIIYQQIkeR5kQIIYQQOYo0J0IIIYTIUbK8lLhNmzZm70RRFLZt22aRgoQQQgiRt2XZnJhMJrM/bVhVVYsVJIQQQoi8LcvmZPv27VrWIYQQQggByJwTIYQQQuQwT719/eMMBgN//fVXuk8ofqRhw4YWK0oIIYQQeZdZzUlCQgKDBw9m8+bNWc4viYiIsGhhQgghhMibzDqt89lnn3Ho0CGWLl2Kqqp89tlnLFy4kHr16lG+fHk2btxo7TqFEEIIkUeY1Zxs27aN0aNH06FDBwDq1q1L9+7d2bFjBzVq1GDPnj0WLerOnTv079+fihUrUqpUKV555RUOHTpk0QwhhBBC5ExmNSe3bt2iSpUq6PV6bG1tiYuLS1vXvXt3Nm/ebLGCDAYDLVq0QFVVvv/+e37//Xd8fX1xcnKyWEZ2SUhIos+YuXwwZhF9xswlISFJ0/yvf9yNa733KPNKV4ZNWaJpdlJSEh6NP6BYrQ7U6zSO4wGXNc0/HnAZt4bvU+aVrrT6YLym2QCHTl5g8vy1LPvuF8LuGzTN/v30ORy83kn7Py42VtP8fuPmUaxWB17uOIb3h/tqmq2qKt/57Wfi3NUsWetHYlKypvk/7fCnZN13qffuWJp3H6tpthC5mVnNiaOjI7EPf6G5uLhw/vz5tHX379/PdILsv7Vw4UJKly7N8uXLqVu3Lu7u7jRu3JjKlStbLCO7dBw4jb1HzhAaZmDv0TN0HDRNs+x9R04xfNqXxMQlEBefyOqf9jD+8280y6/YuBfhD6JRVRWjyYT3++NIStKmOQuPMNCq53gio2OJT0ji6OmLNNPwD8Wx0xeZt/InLl4N5uLV24yauZKYuHjN8lt8MCnd4zL139cse+bi79i43R9VVVFV8NtzjFEzVmiWv2LDTjb+fIDL127z66HTTJ6/VrPsPwOD+HDsPJKSUzAaVU6cvSINihBmMqs5efHFFzl79iwAbdu2Zfr06cydO5eFCxcyceJE6tWrZ7GCtm/fTt26denVqxceHh40atSIL7/88rm40dtfN0Ox0esBsNHp+SsoVLPsGUs2oqoqiqKgKAoqsG7LXs3yo2Mz/jHe4HdAk+wftvtjNP59U0FFUTh/+bom2QB7Dp3GxiZ17rlOpxAeEcWfgUGaZF+6ek2TnKwsXrs1w7I1m37VLP/Mxb+ws7UFwM7Whms3Q0lI1KYpnrPix4z1XPhLk2whcjuzrtYZNmwYwcHBAIwcOZJr164xY8YMjEYjL730EnPmzLFYQTdu3OCrr75i4MCBDBs2jHPnzjFmzBgAfHx8Mn1OYGCgxfKtSTWZSDEaAUgxGtHrFM1qty9k+6iKtGX5bPXZ+r0roDdpkm+rMz38KvXYH/W5Wh17QnwMUdHR6HWp7wUSE+MxRIRrkp+YxSkcrY49f35bYuMT0y3LZ2ejWX5cbCwxMTFpjamNXuHG9evo9da/xVORQnYZFyrP9r339PS0YEVC5B6KwWD4V0MSiYmJJCYmUqRIEYsW5OTkRJ06dfjll1/Slk2dOpWff/6Z48ePWzRLa1+s2cb8VZuJj0+kQIF8DP/wHQa8b/5nGP0XKSkpuDXsQWx86ik4Wxs9v29ZSIVyzprkD5u6hG9+/HvidOFCBbh1dJ0m2QDVmvUh5F7q5e46RWGV70e83aKRJtlRMXGMmrGC23fDSUxIwLvxy4zs29Hsj4f4r0rUeYcU49+PSzoW5Mr+bzXJvnM3gqrN+/D4L5mzu5ZQrkxpTfLPX77BjCXfERkVQ4H8+ejRoRltm9XXJBvA+eUuxD82t2zjwnG0aPKSZvlC5Fb/ujmxlho1avD666+zaNGitGXfffcdw4cPJyQkJBsrs4y/gkLZve8wLZo2pKKbNo3BIykpKSxavZWY2HgGdG9NCUcHTfP3HjrN8vU/U9HViZkf99c0G2DNpj0EXgvm/Q7eVCrvoml2YlIyfwWFcPdOKE0avaJZY/LI0Alz2XMkgB4d3mDMwB6aZsfExDB02nIMBgMrZo7C0dGyb2ieJjI6luDQMEoWd6BkcW1f8wCzl24k4MJlJo/oTaXyrprnC5EbZdmcbNiwgRYtWuDo6MiGDRueuqOuXbtapKA+ffpw+/Ztdu7cmbbs008/xc/Pj99//90iGdktMDAwTw/X5uXjl2OXYxdCPF2Wc04GDhzInj17cHR0ZODAgU/ciaIoFmtOBg4ciLe3N59//jnvvPMOZ8+e5csvv2TChAkW2b8QQgghcrYsm5OAgABKly6d9rVWXnjhBdatW8fUqVP57LPPcHV15eOPP6ZPnz6a1SCEEEKI7JNlc1KuXLlMv9ZCixYtaNGihaaZQgghhMgZrH89nRBCCCHEM8hy5MTLy8vsKwoUReHMmTMWK0oIIYQQeVeWzUnDhg01v9xRCCGEECLL5mTp0qVa1iGEEEIIAcicEyGEEELkMGY3JwEBAXTv3p0KFSpQvHjxtDkmU6dOZc+ePU95thBCCCGEecxqTo4ePYq3tzeBgYF07NgRk8mUtk6n07Fq1SqrFSiEEEKIvMWs5mTKlCk0bdqUY8eOMWPGjHTrvLy8OHv2rFWKE0IIIUTek+WE2McFBASwdu1aFEXJcAVP8eLFCQ8Pt0pxQgghhMh7zBo5yZcvH3FxcZmuu3v3LkWKaPspo0IIIYR4fpnVnNSrV4+lS5diNBrTlj0aQVm7di2vvfaadaoTQgghRJ5j1mmd8ePH07JlSxo1akTbtm1RFIUNGzYwfvx4AgIC2Ldvn7XrFEIIIUQeYdbISc2aNdm+fTtOTk7MmTMHVVVZsWIFAD///DOenp5WLVIIIYQQeYdZIycAtWvXZtu2bSQkJPDgwQOKFi1KwYIFrVmbEEIIIfIgs5uTR/Lnz4+zs7M1ahFCCCGEML85uXHjBps3b+bWrVskJCSkW6coCosXL7Z4cUIIIYTIe8xqTrZv307Pnj0xmUw4OTlhZ2eXbr18erEQQgghLMWs5mT69Ok0atSIFStWUKJECWvXJIQQQog8zKyrdW7cuMGQIUOkMRFCCCGE1ZnVnHh6ehIREWHtWjSRnBhD4JktXL+4C/Wxm8rlBcbkZNZvXMlXqxYSGan9Rw5cvfYXi1es5PipPzTPBljw9WYGfDyfs5eua56dmJTMn4FB3LpzH1VVNc/v8dFs3Bt2Y9xs7T+kMy4ujpEzljNj2Y9ERsZonh8cGsbm3Yf4MzBI82yAI6f+ZN/RsxiitD92IXIrxWAwPPU35YEDBxg3bhzr16/H3d1dg7KsIz4mnPET+nHtTjI6BV6sbM+4T9ag6PWa1hEYGKj5vWGMycnUaNaFe5EmFKBgfoVjm+ZSpoy7Jvnfb9nMkGlrSTGCAtSrWZqf1y7RJBvArUF3ImP+/giG+RN86NmppSbZUTFxjJy+gpB74SQmJOLd+CVG9u2o2VwtB6930j22L5iP4GMbNMkOD4+kcrPeGE2pv2Z0isKFX5fjXFKbUdgtu48wetZK4hMTsbOxoWu7Jnw6opcm2QAdBkzjj3NXSEkxUqyoPT9/NRU311Ka5QuRW2XZnLRq1Srd4+vXrxMREUHFihVxcHBIvxNFYceOHdar0kK+XjKQncduY6tP/aMQl2ji435v8lLj/prWkR3NyceTx/LllsvoHo6VmUxQo3wB9m9er0l+xYadiIwzonv491hV4eS2ebiVdbN69oat+xgwIf3VZDZ6PeGnf7B6NsC8VZs4fOICer2e2NhY9DY2+I7rQ+UKZa2eHRMTg2uDHhmWG85usno2QN02g/grKDTdMtdSJTj/65ea5L/YdjAPImPQPWwEdTqFc7uWZZjUbw2HTpyn+0ezsbWxIcVoRKcoVPN0w++rqVbPFiK3y3JCrE6nS/fOzsPDQ5OCrCkqJh4b3d/HpEPhwYOwbKxIO7fvPkj3WAGiYpM1yzeqoPvHQEFYWJgmzcm1m3cyLFNVk9VzH4mNTUD/2Oic0agSGR2rSfbV4IzHriVDJqdxImO1OXYAk9GU1pgAGE0m4hKSNGlO7oU/wPTYKTydTkdCYpLVc4V4HmTZnGzfvl3LOjTRotmbHD3/LTqdggrYF1R4qWHn7C5LE0M/7Mau3+diMj38Ra1A3w71Ncuv4eHEsXN30CmpozaFC+io41Vbk+zenb35bMWP6Za5ly2tSTZAs0Z1OH3hKjY2NphMKiWdilDN0/pNGUDtqtn7pmLEhx35eM7X6Zb1f6+1Zvk1K5fn4Ilz2Oj1GI1GXJydcChSWJPsJvVrU6RQQeITEgFIMRpp11y7nzkhcjP92LFjJz9tow0bNuDi4kKBAgUyrHvw4AFbtmyhZs2a1qjPoko4V8ezdBKG+zdxLp6PjwYOoaTrC5rXERERQfHixTXNdC7jRlVXOHr6IvnzKQzuXIdhg8dqlt+5TQtOBxwnMiYOp6J2/LJuTobTg9ZiX6ggDepWY9OuwygoeJZ34cQ27W4a6OrshEvpEkTHxFGkcD6mDu9JsaL2muW/UqcSG/0Opj2+dWSNJiMHAC/VrozBEMWZi9dRdNCzgzfTR2k356Nd8/oE3b5LQkISVTzKsWHhOPLZ2WqSXSB/Ppo3eoGT5wOxs1Hw6foWgz9op0m2ELmdWRNiHR0d+fXXX6lbt26GdWfOnKFp06bPzdU8WsiOOSc5SV4+fjl2OXYhxNOZdSnxky59jI2NxcbmmT+iRwghhBAiU1l2FWfPniUgICDt8c6dO/nzzz/TbZOQkMCmTZuoWLGi9SoUQgghRJ6SZXOyY8cOZs+eDaReKjxnzpxMt3N0dGTRokXWqU4IIYQQeU6WzcmAAQN47733UFWV2rVrs3btWry8vNJtky9fPkqWLCkf/CeEEEIIi8myOSlatChFixYFICAggNKlS2s2w18IIYQQeZdZM1nLlStn7TqEEEIIIYAnNCePXz5crFixJ566URSF+/fvW6VAIYQQQuQtWTYno0ePpkyZMmlfy7wSIYQQQmghy+Zk7Ni/7x46btw4TYoRQgghhDDrJmz/FB4ebuk6hBBCCCGAZ2hODh06xJtvvknp0qWpVKkSpUuX5q233uLw4cPWrE8IIYQQeYxZzcmWLVto27Yt4eHhDBkyhNmzZzN48GDCwsJo27YtW7dutXadQgghhMgjzLqUeMaMGXh7e7N+/Xp0ur/7mY8//piuXbsyffp02rWTT9sUQgghxH9n1shJUFAQH374YbrGBECn0/Hhhx9y8+ZNqxQnhBBCiLzHrOakYsWKWU6CDQ8Pp0KFChYtSgghhBB5l1nNySeffMLMmTM5depUuuUnT55k1qxZTJw40SrFCSGEECLvMWvOyaJFi0hMTKRZs2a4uLhQsmRJ7t27x+3btylZsiQLFixgwYIFQOrdYnfs2GHVooUQQgjx/DKrOdHpdHh6euLp6Zm2zM3NDTc3N6sVJoQQQoi8yazmZPv27dauQwghhBAC+Jd3iBVCCCGEsJYsm5OPP/6YW7dupVu2bds2IiMj0y27evUqXbp0sU51QgghhMhzsmxOli1bxt27d9MeG41GevbsyfXr19NtZzAY+OWXX6xXoRBCCCHylCybE1VVzVpmbXPmzMHBwYFRo0Zpni2EEEII7Zk1ITa7nDhxgtWrV1O9enWL7dMm8ldsYk8AOpKKtsRUqLbF9v1USfcodHs8NVLCsblegljXmWBbQrP4Fl37cvzCfQCcHW35c/9GzbJD792hzpuDSUwyoSgweVA7/ufzgWb5/cbNZ+P2gwDY2dpw7cAqChcurEm2yWRiwCcLOREQiNGYzLhBXenS5nVNsgF6DpvKln1n0h77ju6BT/e3Ncuv/85QLl0NRgUqujnzh98XmmUbomJ4b+gsQu7ep3DBAqycNYwqHuU0y1+wahNzVv5EitGEp7sL+9bPRq/Xa5YvRG6VYyfERkZG0rdvXxYtWoSDg4NF9qmPOYmdYSc6owGdMYL8979FSbpjkX2bo9CtUeiSQtCTiC4phELBIzXL/nzRQn6/EI768L+QiCSav/uhZvl13xpMQpIJFTCpMHHxVsLD7muSfTzgclpjApCUnIJn0z6aZANMnr+WX/1PER0bR2R0HBPmrCHw+m3N8h9vTABG+67RLLv/+PlcfNiYAPwVFMr7H83SLL/r/2Zy8WowsXEJhN67T5f/zcRkMmmSfe7iNaZ/8R1xCUkkJ6dw4coNOg38VJNsIXK7JzYniqKYtcwahg0bRrt27WjcuLHF9mkTfx6Ux961qCnoE65YbP9Po6QYQHn4LVd0qY818q3fsQzLzv71QLP8+MSMfxD2HDqiSfa3W/ZkWBafkKRJNsCx05fS3i0rOh2JSSkcPH5Ok+xDx888fSMr2n3wVIZl+49pc+wAofcisNGn/szpdDpi4hKIiIzRJHvnwRMYjUZ0D39n6nQ6LgQGaZItRG73xNM6Q4cOzTD0PWTIEAoVKpT2OCbG8j/oq1ev5tq1ayxfvtys7QMDA83aztGkw9EUndagKGoytxJSiL9r3vP/qxpGHXoSAR1GYzJGbM2u/b/yqlicG3fSX33lWFivWb5eByn/6E9KORbVJL+qe6lM6lE0O/aihfOTmJSMXv/ovYAJh0LafO8L6o2ZLtfq2F1KFePBP5qB0k5FNMu30SkkJyejPPzQUlu9jvv3QnkQfvcpz/zvyhQvjKIoaXP1jEYThQvme6Zjf/zGl0LkJYrBYMh0lutbb731TKMkP//8s0UKCgwMpGXLluzcuZNKlSql1VKtWjU+++yz/7Zz1US+8FXoE66gopBSuCHJxdpaoGrz6KKPU/DObEwpcehsChLnPA5T4Rc1y3dv0BFDTOofKzsbhRsHv6Fg4SKaZP9y8BCdB89NG96vX9uVnWsWapINULOFD8Ghf3945fZV02j4ouXmMj1JXFwCb/aewK07YahGE2+3aMScT3w0yQYoW78L0bF/jxTVqebCb98t0iQ7OTkZt0Y9iItPBKBAfjtuHl6Lra2tJvl/XgnivWGziIlNwNZWz6T/dadL2yaaZAN0GvgpB34/i0k1UdS+MCe2LcKxqL1m+ULkVlk2J9ll3bp1DBo0KN2kMaPRiKIo6HQ6QkJCyJcv338LMSWmjp4o2TAf2GTieuBpynvWAZ32U35C794mOiqGSp6VNc9OTkri3OUr6I0p1Kqt4UTkhyIiorgaHMrLtbQ/dkidnBkcHERNC07wNld0VBRf/7iLXh1bYl9Em4b0cTdDw7hx/RqvNXhF82yTycT9B1EUL1YEXTb8zMXExBNw/gIN62n3RkSI3C7HNScGg4GQkJB0ywYNGkTFihUZPnw4VatW1Wzei7UEBgbm6eHavHz8cuxy7EKIp8txlxI7ODhkuDqnYMGCFCtWjGrVqmVTVUIIIYTQSo69lFgIIYQQeVOOGznJjHwqshBCCJF3yMiJEEIIIXIUaU6EEEIIkaOY3ZyoqsqOHTv45JNPGDhwIDdv3gTg0KFDhIaGWq1AIYQQQuQtZs05MRgMdOrUiZMnT2Jvb09MTAw+Pj6UK1eONWvW4ODggK+vr7VrFUIIIUQeYNbIyYQJE7h9+za7d+/m2rVrabdjBmjcuDEHDx58wrOFEEIIIcxnVnPy6HTOyy+/nOEGaK6urty+rd0nrAohhBDi+WZWcxIbG0uZMmUyXZeYmJhuJEUIIYQQ4r8wqznx8PBg3759ma47fPiw3LlVCCGEEBZj1oTYvn37MnLkSIoUKULHjh0BiIyM5Ntvv2XFihXMnz/fqkUKIYQQIu8wqzn54IMPuH79OjNnzmTGjBkAtG/fHp1Ox9ChQ3n33XetWqQQQggh8g6zb18/efJkevfuzf79+wkLC8PR0ZHXX38dd3d3K5YnhBBCiLzmmT5bp1y5cvTo0cNatQghhBBCZN2cBAcHP9OOypYt+5+LEUIIIYTIsjnx8vLKcE+TJ4mIiLBIQUIIIYTI27JsThYvXvxMzYkQQgghhCVk2Zx069ZNyzqEEEIIIYBn+FRiIYQQQggtmHW1zqBBg7Jcp9PpKFKkCLVr16ZNmzbkz5/fYsUJIYQQIu8xqznx9/cnKiqKyMhIbGxsKF68OPfv3yclJYWiRYsCsGTJEsqXL4+fnx8uLi5WLVoIIYQQzy+zTuusXLmSIkWKsGbNGu7evculS5e4e/cu33zzDfb29mzcuJG9e/eSmJjIlClTrF3zf6IEzafwxUYUvtgIIo9qnl/wojd1UnpR8KK35tmbtm7Cwas9Dl7tGDZ+gub5fUZNw/mljrQfOJWkxERNs+PjE+g58nPeeG80P+301zQb4OBhf7y7+jB6+jwiDA80zY6Ojsax9js4eL2DS72ummYD3A1/wNApS5m+9Edu3w3XPH/rr0fpM2Yui9ZsxWQyaZqdkJDEhDmrmbjgO06fv6ppthC5mWIwGJ76kcLNmjXjvffeo3fv3hnWffXVV6xbt459+/axcuVKfH19uXLlilWK/a/016dTMGEnj65BUoHoMp9B0fqa5Be+2ChdN2gCYqoe0iR709ZN9J6wBh47+rfql2Hd8iWa5Ddo348//wpLe6xTICJgkybZRqORqs37EvEgCgBFURg3sCvD+7yjSf6W7X74TPgakyn1NWdfQMf5X76msL29JvkOXhmP03BWm+/93fAHNOs2lpjYeIwmE/aFC7Jr9XTKOjtpkj990Xq++n43igImVeXl2pXZuGi8JtlJSUk06TLmYUOmYmdry/KZQ2lav7Ym+ULkZmaNnJw/f57y5ctnuq58+fJcvHgRgMqVK2MwGCxXnYU93phA6p/pQiHa/KJ6lPekx9b04YRv/5GosP1oiGb5jzcmACYVNu/ao0n2roN/EPEgCp1Oh06nQwWWfuunSTbAhHkbMKmg04FeB9HxJr74+htNsi9fvqVJTlZmLd1ITGw8NjZ69HodcfGJfLponWb5P+0+jF6f+u9uo9dz6txVYuLiNcn+9dBpbt8Nx87WBp1Oh0lVmb1koybZQuR2ZjUnJUuWZOvWrZmu27JlC05Oqe+CoqOjcXBwsFx14rlmMmozxK6aVP45PKiqTx0wtFy+dlE5jsmk/rMn1vj7kX3ffJOqZojPwy8FIZ6JWc3JgAEDWL16NZ07d2b9+vX8+uuvrF+/ns6dO7N27VoGDhwIwNGjR/Hy8rJqwf9FfL7m03KfBAAAGUFJREFU6X45qEBsmema5Wf4A6lZMnw1rfs/ElVavlRas/xK7sXTPdYp0KZZY02yWzV5Ecei9hhNJkwmEwoKfbu01CQbYPL/OqNTwGRK/b9wAR2DevXUJLtyZVdNcrIydkBnChbIT4ox9XtfIJ8tE/6n3T2U2r5RnxSjEZPJREqKkVpVK1C4YAFNsps3fIEypRxJNqagmkwowEifjppkC5HbmTXnBGDNmjX4+vpy+/bttGUuLi6MHj067cMAg4KCKFCgACVLlrROtRagvz6bAgmpQ/oxpSaBY3NN8wtebIaOBEzkJ66qNqc1Hvlm3WqGzU6da9CukRurlyzUNP+9QePZe+wyxYrYcXbX19jly6dZdnx8Ar3HzCM49B79u7eme7s3NMsG2LX3V2Yv/Y4C+fR8+8VsHB2KaZYdHR1NuYYfoAL57Gy4e/J7zbIBbt8NZ9rC9URGRuI7vr9m800e2ei3n+2/HadWtQp81PsddDrtbu8UExfP1AXruHbzFqN8OvNKnaqaZQuRm5ndnEDqUPjt27e5e/cupUqVwsXFRW5x/y8EBgbi6emZ3WVkm7x8/HLscuxCiKcz6z4njyiKgqurK66u2TtULIQQQojnl9nNSVRUFL/++iu3bt0iISEh3TpFURg9erTFixNCCCFE3mNWc3Ls2DG6dOlCZGRkpuulORFCCCGEpZjVnIwbN45y5cqxcOFCqlWrhp2dnbXrEkIIIUQeZVZzcuXKFb7++mtq15Y7GwohhBDCusy6ps7V1ZVEjT8LRQghhBB5k1nNyZgxY5g/fz5RUVHWrkcIIYQQeZxZp3V27drFvXv3qFWrFi+//HKGW9QrisKyZcusUqAQQggh8hazr9ZRFAV7e/u0D/l7nNyITQghhBCWYlZzcvbsWWvXIYQQQggBmDnnRAghhBBCK1mOnAQHB1O6dGlsbW0JDg5+6o7Kli1r0cKEEOL/7d17WFV1vsfx92YjyEUFFdEE1BBBFD1eSk3LtDQ9TGlpD1qjY1OOis0ZZ7zrY3nIKyriyayU0TGhGWeSOZOYkhXTEU1tnGa0O3hLTDCRbSAXgb3PH+YuQhQR1tozfF7P0/Owfnut/f38Vrj3l3XZW0Qapxqbk549e7J371769OlDjx49bnpdycWLF+s9nIiIiDQ+NTYn69evp1OnTs6fddGriIiIGKHG5uSJJ55w/vzkk08aEkZERESkThfEXrp0iY8++oizZ8/Wdx4RERFp5GpsTt59910WL15cbXzNmjWEhYXxwAMPEBUVxTPPPENFRUVDZhQREZFGpMbTOps3b652nUlGRgZLliwhMjKSiRMnOr8QsGfPnvzyl79s8LAiIiLy76/G5uTo0aPMnj27ylhKSgpNmzYlNTWVwMBA5/gbb7yh5kRERETqRY2ndS5cuOC8W+eajIwM+vfvX6UxGT58OMePH2+4hCIiItKo1Nic+Pr6Ulxc7Fw+fvw4Fy9epG/fvlXWa9asGZWVlQ2XUERERBqVGpuTsLAw3nrrLefyW2+9hcViYejQoVXWO336NAEBAfUWKCEhgSFDhhAcHExoaCgxMTF8+umn9fb8IiIi4tpqvOYkNjaWCRMmUFBQQJs2bXj99deJjIykf//+VdZLS0uje/fu9RYoMzOTp59+mt69e+NwOFi2bBmjR4/m0KFD+Pv710uN8mODcHNrgbXbrnp5vltR+fELVBalU1n2ENbuiwyvX/TROEpLc2g9INPw2gC5eaepKCszpXZ5aSnnLpwlJCjUlPpXysux2+2m1K4sL+diwXkC2rQ3pb6IyK2w2Gw2R00PvvLKK6xfvx6bzUbv3r1Zu3YtoaHfv7CfPXuWAQMGEBcXx6RJkxokYFFRESEhIaSkpDBy5Mjbei77J0+zLvUMfz/hjsVi4eG+pTwe+249Jb25nUlDmfpqc8oroYkVXpnyLQ8/855h9Xs/+DAnz1/tR5t72zm+aRjuUc8aUvvw4feInvI/VFRasFgcjB3clo3/84ohtQGGPPYEH2UXAxbcLA4yf7+YyMj/MKR2RUUlS158nc9P5FBacpkJY0YwZuQgQ2oDvPxqAi9syqTC7sDD3cLv45/h3vv/07D612RlZREWFmZ4XVfQmOcuUhc3bE5cQW5uLhEREezevZsBAwbc1nPt3PQAr73fFM/vjhddKYcVE4u486H36yHpzQX3G01pmQWLGzjs0NTTwZlD/2tI7UVzh/Pibh+u3R3ucECPkHL+Ly3NkPpBd42mqMzC93enOzi2cxVBIQ3/gp3x1908+l8bq4x5NbFw7khqg9cG2PKndN585yAeTZpw+fJlPD09Wbc4lqC2rRu8dmV5OcH3xFBe7sDiBnY7NPe2cOKAMXP/ocb8Bt2Y5y5SFzWe1nEV8+bNIyoqirvvvrvGdbKysmr1XCfyrHhYv1+2AyfOWams5fa3q7wCLN9d5WNxu7pc2+y368DnTaqNfXXBalj9sgr44cfmOBwW/vrXt+l3e/1mrex+p/rRqbIKu2FzP/rJl5RfuUL5lSsA2C59y4FDf6dXZKebbHn7Ln9bQHmFw/l75+YGpeXGzf3HzKrrCuoydzU00li5dHOyYMECDh48yJ49e7BarTWuV9t/wH1Dy9n/eRM8vpu1uxWi7qwg0KAXAG9PB98WW3D77i9YX2+HYS8+T9xXyt9PelQZu6vzFcPqN/d2I7/QgcVy9aiN1eLgJ9Fj8WsVePONb9O4MY+y8c144PvuqLm3m2FzH3zPeU6de8d55KR1K3+G3tuP1i1bGFK/aRMLJVcczt+7Fs2sprzpNeajB4157iJ1Uafv1jHC/Pnz2bFjB2+++SYdO3asl+ccOD6DmIGltPS106qZnV//pJjA+/6vXp67NtIW2/D3tdPE6sDf107aYpthtZ+e+S7De5ZitThwszjo0q6CPyXvNqz+/tS1+HlbcMOBh7uD5c8OMqQxAejd6x5+Hh2GBQfgwNvDwj93bTKkNsCoYffwn0Puxr+FL/7NfZg1+XHDGhOAHetiaeFjoYnVQkALN/a8tsyw2iIideGS15zMnTuX1NRU0tLSCA8PNztOvWvsf0U15vlr7pq7iNycy53WmTVrFtu3byc5ORk/Pz/y8vIA8PHxwdfX1+R0IiIi0tBc7rROUlIShYWFjBo1ivDwcOd/L774otnRRERExAAud+TEZjPuOgwRERFxPS535EREREQaNzUnIiIi4lLUnIiIiIhLUXMiIiIiLkXNiYiIiLgUNSciIiLiUtSciIiIiEtRcyIiIiIuRc2JiIiIuBQ1JyIiIuJS1JyIiIiIS1FzIiIiIi5FzYmIiIi4FDUnIiIi4lLUnIiIiIhLUXMiIiIiLkXNiYiIiLgUNSciIiLiUtSciIiIiEtRcyIiIiIuxd3sAEbz+uxB3CkFoJQIyrsmGVa78pt/8sb2mRzPsxIaWMnYmDVYA3oaVr/J8bk0vbIfgAoCKOn6Z8Nqi4nspXidXYZbRR4Vnp0pazsT3PR3iYi4rkb1CuX12UiaUIoFsABN+RxylhtW/6VXZ7PjoCefnnFnx0FPXnp1tmG1yd1I0yv7nXNvwjc0/WKccfXFNN6nf4l78d9wK/8aj8IMvM4uNDuSiMgNNarmxJ3CKssWwKdwl2H1/3naHY/vjlV5uMPR08YduPItSMbyo7Em9hzD6otJ7KVYy3PBYr26bLFiLc02N5OIyE00qubEcd1R43ZBE2vVBO7u10/UEBx4XmdM/v158OPfcYelUf2zF5F/QY3qVaqo1bQqb8gO4HLQHwyr/7MhpdgdUFhiwe6ASfeXGlb7coffV5t7UeDzhtUXk7i5UdZiBA6HHexXAChr+VOTQ4mI3FjjuiC2zZMUenXCO+d5HFgpCfoTNGtmWPkBMRmEh/6Uc+dyaNcuiJZ9jTulhHdrCju8jdfpp7BwheIO/w3ePYyrL6a5EjiNiuYP4Faahd27B3bPYLMjiYjcUONqTgCa3UNx172mlW/ZN5n8rCxahoUZX9zbm5Ku242vK6aze3XB7tXF7BgiIrXSqE7riIiIiOtTcyIiIiIuRc2JiIiIuBQ1JyIiIuJS1JyIiIiIS1FzIiIiIi5FzYmIiIi4FDUnIiIi4lIsNptNX7EiIiIiLkNHTkRERMSlqDkRERERl6LmRERERFyKmhMRERFxKWpORERExKWoOTFIQkICQ4YMITg4mNDQUGJiYvj000/NjmWKNWvW4Ofnx+zZs82OYojc3FymTp1KaGgogYGB9OvXj8zMTLNjGaKyspIlS5bQo0cPAgMD6dGjB0uWLKGiosLsaPVu//79jBs3jq5du+Ln50dKSkqVxx0OB8uXLyciIoK2bdsSHR3NZ599ZlJaEdem5sQgmZmZPP3006Snp/Pmm2/i7u7O6NGjKSgoMDuaoT788EO2bt1Kt27dzI5iCJvNxkMPPYTD4eCPf/wjhw4dIj4+noCAALOjGSIxMZGkpCRWrlzJ4cOHWbFiBZs2bSIhIcHsaPXu8uXLREZGsmLFCry8vKo9vm7dOl566SVWrlzJe++9R0BAAI8++iiFhYUmpBVxbfqcE5MUFRUREhJCSkoKI0eONDuOIS5dusTgwYNZt24d8fHxREZGsmrVKrNjNai4uDj2799Penq62VFMERMTg7+/P6+88opzbOrUqRQUFLB9+3YTkzWs9u3bEx8fz5NPPglcPWoSERHB5MmTmTVrFgAlJSWEhYXxwgsv8NRTT5kZV8Tl6MiJSYqKirDb7fj5+ZkdxTAzZsxg1KhRDB482Owohtm1axd9+vThqaeeonPnzgwaNIiNGzficDSOvwn69+9PZmYmX375JQCff/45+/btY9iwYSYnM9bp06fJy8tj6NChzjEvLy/uueceDh06ZGIyEdfkbnaAxmrevHlERUVx9913mx3FEFu3buXEiRO8+uqrZkcx1KlTp/jtb39LbGwsM2bM4NixY8ydOxeAX/ziFyana3gzZsygqKiIfv36YbVaqaioYNasWTzzzDNmRzNUXl4eQLXTeQEBAZw7d86MSCIuTc2JCRYsWMDBgwfZs2cPVqvV7DgNLisri7i4OHbv3o2Hh4fZcQxlt9vp1asXzz//PAA9e/bkxIkTJCUlNYrmJDU1lT/84Q8kJSURERHBsWPHmDdvHiEhIUycONHseIazWCxVlh0OR7UxEVFzYrj58+eTmprKzp076dixo9lxDHH48GHy8/MZMGCAc6yyspIDBw6wefNmvv76azw9PU1M2HACAwMJDw+vMtalSxdycnJMSmSs5557jmeffZYxY8YA0K1bN86cOcPatWsbVXMSGBgIwPnz5wkKCnKOX7hwodFcHC1yK9ScGGju3LmkpqaSlpZGly5dzI5jmOjoaHr16lVlbPr06YSGhvKb3/zm3/poSv/+/cnOzq4ylp2dTXBwsEmJjFVcXFzt6KDVasVut5uUyBwdOnQgMDCQjIwMevfuDUBpaSkffPABcXFxJqcTcT1qTgwya9Ystm/fTnJyMn5+fs5z0D4+Pvj6+pqcrmH5+flVu/DX29sbf39/IiMjTUpljNjYWIYPH87q1at57LHHOHr0KBs3bmTRokVmRzPEiBEjSExMpEOHDkRERHD06FFeeuklxo0bZ3a0eldUVMSJEyeAq6fzcnJyOHr0KP7+/gQHBzNt2jTWrFlDWFgYnTt3ZvXq1fj4+DB27FiTk4u4Ht1KbJCa7sqZO3cu8+fPNziN+aKjoxvFrcQA6enpxMXFkZ2dTVBQEJMnT2bKlCmN4lqDwsJCli5dSlpaGhcuXCAwMJAxY8YwZ84cmjZtana8erVv3z4efvjhauPjx4/n5ZdfxuFwsGLFCn73u99hs9no06cPq1ev/rdv0EXqQs2JiIiIuBR9zomIiIi4FDUnIiIi4lLUnIiIiIhLUXMiIiIiLkXNiYiIiLgUNSciIiLiUtScyE2lpKQ4P0jNz8+Pli1b0rVrVyZNmkRWVlaVdZcvX27KNy2fPn0aPz8/UlJSarX+4cOHmTRpEhEREQQEBNCpUydGjx7N66+/TmVlJfD9vK99sNa/utOnT7N8+XJOnTpV7bGoqCimTZtmfCgRkevQJ8RKrW3dupU77riDyspKTp48yapVqxg1ahQffPABLVq0MDterW3YsIGFCxdy3333sXjxYoKDg7HZbGRkZDBz5kxatGhBdHS02THr3VdffcXKlSsZMGBAte91Sk5Opnnz5uYEExH5ETUnUmtRUVHceeedwNXvjGnXrh2jR4/m8OHDDBs2zOR0tbN//34WLlzI5MmTiY+Pr/JYdHQ006dP5/Lly7ddp7y8HHd393+ZT4Ht2bOn2RFERJx0WkfqrFmzZsDVN+Ib2bhxI8OGDaNjx46EhITw4IMPkp6eXmWda6dltmzZwtKlSwkPDyckJISYmBjOnj1bZd3i4mJmzpxJp06daN++PePGjePrr7+uVebExET8/f1r/LK1Tp060b179ypj+fn5TJ48meDgYCIiIpgzZw6lpaXVsiclJfHcc88RERFBmzZtuHTpEgBHjhxh1KhRtG/fnjvuuINHHnmEI0eOVKkxbdo0IiMj+eijjxg+fDht27alb9++zv20fv16oqKiCA4OZvz48Vy4cOGW9vEPP1p99OjRzlN0+/btA6qf1rl2SuvDDz+84dxFRBqCmhOptcrKSioqKigrK+OLL74gLi6OgIAABg0adMPtvvrqKyZMmMDWrVvZsmULvXr1IiYmhr1791ZbNyEhgZMnT7J+/XpWrFjhfHP8oRkzZvDaa68xffp0tm3bRlhYWLV1asqfmZnJ0KFDb+l7XaZMmULHjh3Ztm0bP//5z0lKSiIhIaHaemvWrCE7O5vExESSk5Px9PTk448/Jjo6GpvNxoYNG3j55ZcpLCwkOjqaY8eOVdm+sLCQqVOnMmHCBJKTkwkICGDixIksXLiQffv2sXr1apYtW0ZmZiazZs2qsu3N9nHPnj1ZvXo1ACtXrmTv3r3s3bv3pkdMajt3EZH6pNM6Umt33XVXleV27dqxffv2m16rsGTJEufPdrudwYMHk52dzebNm6udDgoODiYpKcm5nJ+fz6JFizh37hzt2rUjKyuLN954g0WLFvHrX/8agKFDh3L58mU2b958wxz5+fmUlJQQHBxcq/leM3bsWBYsWADA/fffz5EjR9ixY4dz7JqAgABSUlKqnMqJj4/Hw8ODv/zlL84LhYcMGUKPHj1YuXIlycnJznULCwtJSEhg4MCBALRt25ZBgwaRnp7OoUOHsFqtAHz22Wds3LiRyspK59jN9nHz5s0JDw8HIDw8vNr/y9udu4hIfdKRE6m15ORkMjIyeO+990hJSSE8PJzHH3+cL7744obb/eMf/yAmJoawsDBatWpF69atycjIIDs7u9q6Dz30UJXla9/YmpOTA8Df/vY37HY7jz76aJX1HnvssduZ2g1dL9O1PD8UHR1d7RqTAwcOMGLEiCp3MDVv3pyRI0eyf//+Kuv6+Pg4GxOALl26AFebgmtNyLXxiooKcnNznWO3so9vRW3nLiJSn3TkRGotMjLSeUEsXD1i0a1bN1asWMGWLVuuu01OTg6PPPIIERERxMfHExQUhLu7O0uXLr1uU+Pv719l2cPDA8B5nUNeXh5w9SjFD7Vp0+am+Vu2bImXlxdnzpy56bo3y1RWVlZtvbZt21YbKygoIDAwsNp4YGAgNputytiP73i6Nvcf35rdpEkTAGeGW93Ht6K2cxcRqU9qTqTOvLy86NixI5988kmN67z77rt8++23bNmyhfbt2zvHi4uL61Tz2hv9N998g4+Pj3P8/PnzN93W3d2dQYMGkZGRQVlZGZ6ennXKUJPr3Znj7+/vbKh+KC8vr9obf13V9z4WETGbTutInRUXF3Py5ElatWp1w3Xg+7/2AbKzszl06FCdavbt2xc3Nzf+/Oc/VxlPTU2t1fYzZszg4sWLLFq06LqPnzp1io8//rhO2a5n4MCBvP322xQWFjrHCgsL2bNnT5VTOLejtvv4WjNWUlJSL3VFRBqKjpxIrR07doz8/HwcDge5ubls2rSJgoICpkyZUuM2999/P+7u7kydOpVnn32W3Nxcli9fTlBQEHa7/ZYzhIWFMXbsWJYtW4bdbqd3795kZGTw9ttv12r7gQMHsnTpUhYuXMiXX37JE088QVBQEDabjffff59t27axadOmarcT19Xs2bNJT09n1KhR/OpXv8JisbBu3TpKSkqYM2dOvdSo7T7u3Lkz7u7uJCcn4+/vj6enJ507d3beEi4i4irUnEit/exnP3P+3Lp1a7p27cqOHTt44IEHatyma9eubNq0iWXLljF+/Hg6derE4sWLeeedd8jMzKxTjsTERHx9fXnxxRcpLy/n3nvvJSkpiREjRtRq+9jYWPr06cOGDRtYtGgR+fn5+Pr60qtXL9auXcvIkSPrlOt6unfvTlpaGi+88AKxsbE4HA769u3Lrl27iIqKqpcatd3HLVu2ZNWqVSQmJhIdHU1lZSU7d+7k3nvvrZccIiL1xWKz2RxmhxARERG5RteciIiIiEtRcyIiIiIuRc2JiIiIuBQ1JyIiIuJS1JyIiIiIS1FzIiIiIi5FzYmIiIi4FDUnIiIi4lLUnIiIiIhL+X9VS4mRL4U9owAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "patients_with_colors.scatter('Bland Chromatin', 'Single Epithelial Cell Size', group='Color')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Oops.  That plot is utterly misleading, because there are a bunch of points that have identical values for both the x- and y-coordinates.  To make it easier to see all the data points, I'm going to add a little bit of random jitter to the x- and y-values.  Here's how that looks:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "tags": [
     "remove-input"
    ]
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAicAAAFWCAYAAACyxj0kAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdeVgVZfvA8e+chR1kERAFQQUx9yV3zaVyedVKTTNt+WXmlvWapVmZ2q6WrS6Z2vqalS2ulWYqkvuOuIEiiLLvO2eb3x8USYJingMo9+e6vC6YmTP3PZ7DmXue55lnlKysLBUhhBBCiBpCU90JCCGEEEJcTooTIYQQQtQoUpwIIYQQokaR4kQIIYQQNYoUJ0IIIYSoUaQ4EUIIIUSNIsWJEEIIIWoUKU6EEEIIUaNIcVKDREdHV3cKVU6OuXaQYxZCXA8pToQQQghRo0hxIoQQQogaRYoTIYQQQtQoUpwIIYQQokbRVXcCQgghqofJZCI/P7+60xC1kLOzMzpdxSWIFCdCCFELmUwmcnNzcXd3R1GU6k5H1CKqqpKVlYWrq2uFBUqlipMDBw6wdetWDh48SGJiIkVFRXh5eREcHEz37t0ZPHgw7u7uVk1eCCGE7eTn50thIqqFoii4u7uTk5NDnTp1yt3mqmNOvv76a7p160a/fv1YunQpBQUFNGnShNtvvx13d3cOHTrE008/zW233cakSZOIjY21xXHYjmpBU3QWTWEUqMbqzkYIIaqUFCaiulzrs1dhy0n37t1JS0tj1KhRLF26lNatW5e7s+zsbDZv3syaNWvo2rUrixcvZtiwYTeeua2pJhySF6MtPoeqgmrnR2G9aaCxr+7MbllZOfks+3oT+QWF9OjYkn49O1R3SkIIIWqgCouTMWPGMHbsWBwcHK66gzp16jBy5EhGjhzJ8ePHSUlJsXqStqDNP4SmOAZVU3J8iikFffZmjB73VHNmVcNkMvPtxjASUtK5o1NLOre9zabxDEYjM95aQUZ2LlqNhsgzsVjMFpo0kO5AW0lITufXsAO4u7kw+M7O2On11Z2SEEJUSoXFyeTJk697Z61atbqhZKqSYs4DLm8J0v25rOqZTGZWrdvOscjT3NE1lXvv7mrT5lZVVZn7/leciI5Dr9Ox9/Apxj/4H/r3ut1mMeMTUklKTcfxz2JXr9cTfiCSJg162CwmwLbdR9nw+14AhvXvTs9ON89n9EbExicxc/6nGM1mzGYzazfvpklQfep5uzOoTxca1POSJn1RrqdfWcK52IQqi9ckqD4fzrn+882NWrVqFTNmzODSpUtVHvufPvroIz755BOOHz9+Q/sJDw9nyJAhnDt3Di8vryvWx8XF0aZNG7Zv3067du3K3UdltqkKtfZuHbNzB8jZCqqpdJnRtWe15PLW0m84HHkWo8HA+YTfSMvIZtyogTaLl5GVy+lz8aVX0jqdji3hh2xanDg5OqDTakt/t1gsODjY2SweQOSZWBZ/taE07oefr8XX24OmjfwpKjaw7OtNJKZmENywPv93fz90Ou019njzWLVuOxZVRafVkpiSTvj+SLRaDaqqsnD5j4wY1JNXpj5SJcesqiopGdlsWPEDRqOJoQO607SRv01i5eQVcPTkOTzcXGgZGlStBVhBYTGJKRl4e9a5qT5b52IT2HXoZHWncU0pKSksXLiQzZs3k5CQgJeXFy1atGD8+PH069evutMTN6jC4mT+/PmV3omiKMyYMaNS2+7atYuPPvqIY8eOkZiYyOLFixkzZkzpelVVmTdvHl988QVZWVl06NCBd955h9tus263g6pzp9D3Geyy1gMWjHXuRrUPsGqMyjCZzJyMisNOr8doMGCn13PweJRNixOdToui+ftLW1VVNIpCQWExJrMZV2dHq3+p+/l40r/X7fwadhCjyURhoYGomIu8/P45Rg7py7AB1m9B+eNAJJo/jyMnL5+M7DxWrd3GK888wqsf/o/TZy+i1+s4c+4i2XkFPDtuuNVzqG4Wi4XY+GRUVCwWC4pGQ1ZOHgcjolj7227uH2jbgnzP4VN89MU69h85hb2DHaGNAjgUGc0b0x8jJKiBVWMlpWYw460VZGbnoSjQrUMLnp84skoKFKPRhF7/99fput92s/zrTeQWFlNUZGBAr9t55vFhuLu52DyX2iAuLo4BAwbg4uLCnDlzaNmyJRaLhbCwMKZNm0ZkZGSV5GEwGLCzs+1FVmUZDIbqTsGqKixO5s2bV+Z3RVFQVfWK7f76w69scZKfn0/z5s158MEHmThx4hXrP/jgAxYvXszixYsJCQlhwYIFDB06lAMHDuDq6lqpGJWl2vlQ7DPOqvu8XhqNgkarxWIyly7Tam13laWqKtt2HyUnr4CEpHR8vOqQkZXLhUvJDBk3G093V1oEBzLrqdFWv9qbMHoQg/p2ZsfeCL7/eSdJaZmcv5DIwcgYtuw8yPtzJuNgb70/9EB/X0wmM+lZmVxKTsdiUQnbG8Gna34lNj659GRip9dz6uwFq8WtCcbc24eft+8nKS2TwmIDCipoNKUdmXqdjoTkdJvmUFRsYNGX60lKzcBoNkOxkdiLSQQHNWDdlj08N/5+q8Zb8c2vFBYbcXIs6Trcc+gkcZeSCfKvZ9U4lzt3IYF5S78jN68AdzcXXn5qNG6uzqxet4OM7DyS07JRFFj72x4uJaez6JUnrfoZr62ee+45VFVl+/btuLj8XfCFhoYycuRIAOLj45k5cyZhYWEA9O7dm/nz59OgQcVF8WeffcaHH37IxYsX8ff3Z+rUqTz66KOl693d3Xn77bcJCwtj27ZtjB07ltdff/268//rPJefn8/gwYMJCgoqs/7w4cO89tprHDt2DKPRSIsWLXj11Vfp1KnTVXPp379/mf0UFxczduxY4uPj+eGHH0qXnz17lhdeeIEjR47QsGFD5s+fT9++fcvNtbyuovK6fk6fPs3s2bPZvXs3Dg4O9OrVizfffBNfX9/r/v+Bq9xKnJmZWfpvz549BAYGMnfuXCIiIkhKSiIiIoI5c+YQGBjI3r17Kx2wX79+zJ49m3vvvReNpmx4VVVZunQpU6dO5d5776V58+YsXbqUvLw8vv/++391gDWdRqNhWP/umEwmCosNqKrKw0PvtFm8Tdv28dWPv1PHxRlvL3eiYi+RlplDdFwiEadiOH8hiYgz5/luU5hN4vvXq0tWTh6KRkNsfDJmi4qqwpGT5/l41UarxhrQ63Y6tQ0lJT0LBQUvd1d86nqwbfcxdPq/Cy9VVbG3u7UGi6ZkZFPHzQnfuh64uzkDJcdptlhwcrTH3k5P365tbRI7KTWDQ8ejibuYTFFxcWm3mqIoGEwmzBYLjjbo0jOazKUtZUXFxUTHJTD3/a/44offyr2wsoa3l31Pdk4+qlrSXfr2J2vIyc3HYDSRnZuPRqOUXNhZLCSlZhB7MdkmedQmmZmZbN26lSeeeKJMYfIXd3d3VFVlzJgxpKamsn79ejZs2EBSUhJjxoyp8LOwYcMGpk+fzqRJk9izZw8TJ07k2Wef5Zdffimz3fz58+nXrx+7d+9m3LiSi9sGDRpc9d/99/9diP/000+8/vrrvPDCC4SFhRESEsKSJUvKxMjNzeWBBx7gl19+4ffff6dVq1aMGDGC9PT0a+byl5ycHIYPH05mZiYbN27E29u7dN2cOXOYMGEC4eHh9O7dm9GjR5OQ8O/HGSUlJfGf//yH2267jd9//521a9eSl5fHgw8+iMVi+Vf7rNSYk+nTp/PII4/w3//+t3RZQEAAU6dOxWKx8Nxzz7F+/fp/lcDl4uLiSE5OLlPBOTo60q1bN/bt28djjz12wzFqouEDe9CxTVN27z/MnT274O1luztY9h09U9piYDKZKS42otfp0CiAopCYkkHDBt5cTEyzWQ7NQxqy8fe9mP/60Coq7m7OJKVmWjWOoii8MHkUp87Gk19QVNoSpCjw2P39+GT1L+QVFFLH1ZlJYwZbNXZ1O3X2Ao72Drj6OdPA14vo2EsYjWbcXB3p1qE59/XrTsvQIKvH3bRtH5+t2UJhsQFnR3vMJgvubs44O9pTUGTAyckBzzouPDL8bqvHHtj7dk5EnUdRNJw8G49OqyG/oJi1W3Zjb6dn1JDeVo2nqio5eQWlrceKopCdW4CPlzteHq4oKBQVF2MyW3B2Khlz5eLsaNUcaqOYmBhUVaVp06YVbrNjxw4iIyM5cuQIgYGBAKxYsYJ27doRFhZG7969r3jNokWLeOCBBxg/fjwAwcHBHD16lA8++ICBA//uZh86dCiPPPJImdeGh4dfNefL73pdunQpDz74YOn57LnnniM8PJyYmJjSbXr16lXm9QsWLGD9+vVs3bqVBx54oMJc4uPjAUhLS2P8+PH4+fnx+eefX3HX7dixYxk6dChQUuBs27aNTz/9lFmzZl31OCqycuVKWrZsySuvvFK6bNmyZQQFBXHkyBE6dLj+aSMqVZwcOnSIZ599ttx17du355133rnuwOVJTi65qri8wvvr98TExApfFx0dbZX41a1DiyZkZaSSlZFqsxiG4gJycnLRajWYjIY/x5tQMteLasGiWsjOySXAx9Vm/6/+Xk50atmY6NhLoIKHqzOoZlwcdDaJ2a6ZP7+GH0Wr0WCxWLijYwv86zozY+wgMrLzqevhir3GWKWfI1vH8nTRk1+QX9pq4evlxrgRd9H2tiCb5aCqKstXb8RksqAA+fkFJKRkYDCWDDpvHRrIyIFdadMsiKSEiyRZNTp4ueh4aEgPNu04hBYVJ3s7klLTcXN2JGz3YTo0s+4YFwB7HSRn5aHRKJgtFjxc7YmNPc+44b2IPHOO1MxsFEUhIyuHZkF+FOZmEp1b+SI8JCTE6jnf7CrTCnbmzBn8/PxKCxOAoKAg/Pz8OH36dLnFyZkzZ8qMfwTo2rXrFS0n5d3B0rhx40pmXxLn4YcfLrOsY8eOZYqT1NRU3njjDcLDw0lNTcVsNlNYWMjFixevmQvAsGHDaN26NV999VW508N37Nix9GeNRkOHDh04ffp0pY/hn44dO8bu3bvL7TI7f/687YoTNzc3tm/fXu4bum3bNtzc3K478NX8cwCbqqpXHdR2q/wBR0dH2/xYXnq6ATPnryQxJYN6vnUxq5CclomjomAymwnw82bKo0MZ2r+7TfN4dXpThg/uw4Klq3F0dKJpY3+mPT7cJnc1PBMSQreO7Th84iwtQ4Po2bGl1WNcj6p4n0NCQjCh5+ft+wG4s3s7Rli55eCfTCYzjo5OWCwlJ48LCSkUFBlo2zyY/Px8nJ2dGdK/N3VcnW2WQ0hICPZOrmzbd4Ks3HyycvMprOPKHZ3b2OT/fOHLk5n/8Roys3Px8XJnxsSRuLk4YTAa8XJ3o0G9euQXFqHXafH08rhlvquqU5MmTVAUhaioqAq3udo542rnkvLW/XOZs/OVn9+rjWOBkiLneoYmTJo0iZSUFN58800aNmyIvb0999xzzxWDXsvLBaB///789NNPnDhxgjZt2lQ6bnn+Gn5xeVFoMpnKbGOxWOjXr1+542/+2dhQWZUqTh566CHeffdd8vPzuffee/Hx8SElJYW1a9fy+eefM23atH8V/J/+GjiTkpKCv//ftxqmpaX96wMUZbm5OPHhnMkkpWXi7GiPq7MTK775hYjT52l9WyPGjuxfZZN1tbmtCXOfeqBKvrA7t2tG53bNbB6nJhnav7vNi8zL6XRamjZqQMTp89jp9eTmF+BR5+9B7Ln5hSSlZtq0OAHYvPMg/vXqkpCcjqqqFBQV8+j91u9GAvB0d2P+zMevWK5RNCiKQk5+AZnZuTja2xNQX77DrMHDw4M777yT5cuXM2HChCvGnWRlZdGsWTMSEhKIi4srbT2JjY0lMTGRZs3K/x4IDQ1l7969ZVo19uzZU+H2l7uebp3Q0FAOHjxYJs7BgwfLbL93717mzZtXOsA1JSWltGehMl566SU8PDy47777WLduHa1bty6z/uDBg6VdR6qqcvjwYe69995y91W3bl2gZFzJXz//cz6WNm3a8NNPPxEQEIDeSuePShUnL774IgAff/wxn376KVByQM7OzkybNo0XXnjBKskEBgbi6+vL9u3bad++PQBFRUXs2bOHV1991SoxRMlJxL9e3dLfJz50a423ENVn1pTRLPpyPWdi4mnfIpi8/MLSdS6ODvjWtf2MwKoK9bw98fasg9liQafV4OxUtWM9dDotPl512LY3EuXPe6SaNbHN3C610TvvvEP//v3p06cPL730Ei1atEBVVcLDw3nvvfc4fvw4LVu2ZPz48cyfPx9VVZkxYwZt2rThjjvuKHefTz31FP/3f/9H27Zt6du3L1u3bmXNmjV89dVX18znerp1Jk6cyMSJE2nfvj09evRg3bp1HDp0qMzDc5s0acJ3333H7bffTkFBAbNnz77uW5ZffvllVFUtLVAunyT1008/JTg4mObNm7NixQri4+MZO3Zshcfm7+/PvHnzmDt3LhcuXODtt98us824ceP44osveOyxx5g6dSp169YlNja2dPDvv7nTtlLFiUajYdasWUyZMoUTJ06QkpKCr68vLVq0qPCJghXJy8sr7VuzWCxcvHiRiIgIPDw8CAgIYNKkSSxcuJCQkBCCg4N55513cHZ2LjPaWQhRM+0+fIq9R06RV1CEg72eOm7OGIxmHO31THp4SJXM8zGg1+2s+OYXtFotZouZds2Dca2Ggahms4XbghtSUFCEm6sTmTl55OYXVksu16NJUP0aHy8oKIiwsDAWLlzInDlzSExMxNPTk5YtW/Lee++hKAqrVq3i+eefZ/DgkouvXr16sWDBggq7dQYPHsyCBQv46KOPeOGFFwgICGDhwoVlBsNaw7Bhw4iNjeW1116jsLCQgQMHMnnyZL7++uvSbRYtWsTUqVPp3bs39erVY+bMmVfcqVMZs2fPRlVV7r33XtatW1c6BGPOnDksXryYY8eOERAQwP/+978Ku6b0ej0rV67k2WefpUePHrRq1YrZs2eXGZjr5+fH5s2beeWVVxg+fDjFxcX4+/vTp08f7O3/3fPqlKysLNvcY1eBv+6Z/qcHH3yQpUuXlk7C9vnnn5eZhK158+ZVmWa1qIqxCDWNHPOt5YkX3icnt6D0d2cnB1bOf4azZ89W6TEfOBbF7sMn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",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def randomize_column(a):\n",
    "    return a + np.random.normal(0.0, 0.09, size=len(a))\n",
    "Table().with_columns(\n",
    "        'Bland Chromatin (jittered)', \n",
    "        randomize_column(patients.column('Bland Chromatin')),\n",
    "        'Single Epithelial Cell Size (jittered)', \n",
    "        randomize_column(patients.column('Single Epithelial Cell Size')),\n",
    "        'Class', patients.column('Class')\n",
    "    ).join('Class', color_table).scatter(1, 2, group='Color')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For instance, you can see there are lots of samples with chromatin = 2 and epithelial cell size = 2; all non-cancerous.\n",
    "\n",
    "Keep in mind that the jittering is just for visualization purposes, to make it easier to get a feeling for the data.  We're ready to work with the data now, and we'll use the original (unjittered) data."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First we'll create a training set and a test set. The data set has 683 patients, so we'll randomly permute the data set and put 342 of them in the training set and the remaining 341 in the test set."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "shuffled_patients = patients.sample(683, with_replacement=False) \n",
    "training_set = shuffled_patients.take(np.arange(342))\n",
    "test_set  = shuffled_patients.take(np.arange(342, 683))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's stick with 5 nearest neighbors, and see how well our classifier does."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.967741935483871"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "evaluate_accuracy(training_set, test_set, 5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Over 96% accuracy.  Not bad!  Once again, pretty darn good for such a simple technique.\n",
    "\n",
    "As a footnote, you might have noticed that Brittany Wenger did even better.  What techniques did she use? One key innovation is that she incorporated a confidence score into her results: her algorithm had a way to determine when it was not able to make a confident prediction, and for those patients, it didn't even try to predict their diagnosis.  Her algorithm was 99% accurate on the patients where it made a prediction -- so that extension seemed to help quite a bit."
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}