Skip to content

Instantly share code, notes, and snippets.

@kazimiersmith
Created February 19, 2024 23:29
Show Gist options
  • Save kazimiersmith/28a35c276aad078a36dfbec808014a6e to your computer and use it in GitHub Desktop.
Save kazimiersmith/28a35c276aad078a36dfbec808014a6e to your computer and use it in GitHub Desktop.
tree_nb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# <center> Tree-based Methods and Support Vector Machine </center>"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"from sklearn import preprocessing\n",
"from sklearn.tree import DecisionTreeRegressor, plot_tree\n",
"from sklearn.ensemble import RandomForestRegressor\n",
"from sklearn.model_selection import train_test_split, cross_val_score\n",
"from itertools import product\n",
"from sklearn.metrics import accuracy_score, mean_squared_error"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Tree-based methods"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this exercise, you are supposed to train different tree-based regression models. Dataset for this exercise is contained in \"UsedCars.csv\" and you will use the `price` column as the target variable and other columns as features."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Data Preprocessing"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Load the data and one-hot encode categorical columns. Split the data into training and test sets."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"UsedCars = pd.read_csv(\"UsedCars.csv\")\n",
"\n",
"# One-hot encoding for categorical results\n",
"UsedCars = pd.get_dummies(UsedCars, columns=UsedCars.select_dtypes(include=['object']).columns, drop_first=True)\n",
"\n",
"X_train_UsedCars, X_test_UsedCars, y_train_UsedCars, y_test_UsedCars \\\n",
" = train_test_split(UsedCars.drop(columns='price'), UsedCars.price, test_size=0.2, random_state=10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Fit a simple tree"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Use `DecisionTreeRegressor` to fit a simple regression tree on the training set with the `max_depth` = 3. Visualize this tree by `plot_tree`. What are the two most important features (i.e. columns of X) selected by this tree for splitting?"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[Text(0.5, 0.875, 'X[1] <= 2007.5\\nsquared_error = 333305140.254\\nsamples = 16050\\nvalue = 30689.784'),\n",
" Text(0.25, 0.625, 'X[1] <= 2006.5\\nsquared_error = 96343187.319\\nsamples = 8371\\nvalue = 16962.349'),\n",
" Text(0.125, 0.375, 'X[1] <= 2002.5\\nsquared_error = 24405215.916\\nsamples = 5458\\nvalue = 10988.437'),\n",
" Text(0.0625, 0.125, 'squared_error = 10711830.676\\nsamples = 2679\\nvalue = 8069.068'),\n",
" Text(0.1875, 0.125, 'squared_error = 21469429.499\\nsamples = 2779\\nvalue = 13802.756'),\n",
" Text(0.375, 0.375, 'X[0] <= 70527.5\\nsquared_error = 38978032.29\\nsamples = 2913\\nvalue = 28155.487'),\n",
" Text(0.3125, 0.125, 'squared_error = 39544608.116\\nsamples = 1250\\nvalue = 32009.03'),\n",
" Text(0.4375, 0.125, 'squared_error = 19000375.501\\nsamples = 1663\\nvalue = 25258.957'),\n",
" Text(0.75, 0.625, 'X[0] <= 42138.5\\nsquared_error = 162260922.09\\nsamples = 7679\\nvalue = 45654.278'),\n",
" Text(0.625, 0.375, 'X[1] <= 2011.5\\nsquared_error = 105934860.965\\nsamples = 3914\\nvalue = 54037.27'),\n",
" Text(0.5625, 0.125, 'squared_error = 87916801.383\\nsamples = 1784\\nvalue = 48231.098'),\n",
" Text(0.6875, 0.125, 'squared_error = 69141703.913\\nsamples = 2130\\nvalue = 58900.28'),\n",
" Text(0.875, 0.375, 'X[1] <= 2009.5\\nsquared_error = 71813552.873\\nsamples = 3765\\nvalue = 36939.529'),\n",
" Text(0.8125, 0.125, 'squared_error = 46019370.82\\nsamples = 2243\\nvalue = 32847.739'),\n",
" Text(0.9375, 0.125, 'squared_error = 48790148.191\\nsamples = 1522\\nvalue = 42969.676')]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAbEAAADnCAYAAACQcGjvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAAsTAAALEwEAmpwYAABhGElEQVR4nO2de1xU1fr/3wMoKChqebyVl58pZifvCcNthotIqaRlZl7QLDVNrU6lp6+Gl8TKTmUXNRWOdI5aejTTsFJRsLymZYqXFBU0RfEGoohchuf3xzQ7BsZEBZnB9X699ktnzZq1n/3wzKy91l7PZ+lEBIVCoVAoHBGnyjZAoVAoFIpbRXViCoVCoXBYVCemUCgUCodFdWIKhUKhcFhUJ6ZQKBQKh0V1YgqFQqFwWFQnplAoFAqHRXViCoVCoXBYXCrbAEXVoUaNGmeuXbvWoLLtUNg/bm5uGbm5uQ0r2w6F46NTih2K8kKn04mKJ0VZ0Ol0iIiusu1QOD5qOlGhUCgUDovqxBQKhULhsKhOTKFQKBQOi+rEFAqFQuGwqE5MUeXZtm0bQ4YMAeD8+fMYDAaKiorw8vLi2WefBeDf//43LVq0YNCgQdrnPv30Uxo2bMiRI0fK1Z5evXoREBBASEgIJ0+eBGDfvn34+/vj5+fH3r17r1vWv39/jEYjer2eDh06lGrb09MTo9GI0Wjk4sWL5Wq3QmGXiIg61FEuhzmc7JP+/fvLL7/8Ii+++KKsW7dORET8/Py098+dOycpKSkycOBAq88NGTJEUlJS/rJtk8kkubm5Zbbl2LFjIiKybt06+cc//iEiIr1795YTJ07IyZMnJSIi4rplFr766iuZOHFiqbaLX5M980esVHrMqsPxDzUSU9wVzJgxg1GjRnHixAm6detW6v17770XF5ebS5vMyMhgxowZBAYGcuzYsTJ/rkWLFgBUq1YNZ2dnADIzM7n//vtp0qQJWVlZ1y2zsHLlSp544olSbR88eJCAgAD++c9/IqLSHRRVH5XsrLgraN68OdnZ2YwcOfK229qyZQuzZ88mPz+fIUOGMGHCBJydncnPzycsLMyqrrOzMxs2bCjVhslkYvr06cybNw+AoqIi7T1L52OrDKCgoIDk5GQ6depUqt2UlBTq1q3LCy+8wDfffENERMTtXaxCYeeoTkxxV7Bo0SJ69uxJbGwsgwcPvulRV3FWr15Neno6EyZMoHv37jg5mSc0qlevTlJSUpnaePXVV4mMjKRly5aAOfnXgqU9W2UASUlJGI1Gm+3Wq1cPgN69e7N7927ViSmqPKoTU1R5cnNzmTt3Lhs2bGD+/PnExMTwwgsv3HJ77777LhkZGcTExPD2228TEhLCSy+9RM2aNcs0EouNjUWn0xEZGamV1atXj5MnT+Lk5ETt2rWvWwbmqcT+/fuXsisnJwc3NzecnZ3ZsmULDz/88C1fo0LhMFT2Qzl1VJ0DO13Y8dZbb0lcXJyIiOTl5Ymvr69cvnzZahHEN998I35+ftKwYUN54okntPIbLewwmUwSHx8vR48eLbM91atXF39/fzEYDBIVFSUiInv27BFfX1/x9fWV3bt3X7esqKhIOnToICaTSWtv4cKFsmvXLtm9e7d07NhRAgICJDIyUgoLC8ts050GtbBDHeV0KO1ERbnhaNqJRqORFi1asHDhQpvvf/rpp3z22WesWbOGZs2a3WHrqjZKO1FRXqhOTFFuOFonpqg8VCemKC/UEnuFQqFQOCyqE1NUSa63eq+yCQwMxGAwEBISwtmzZ2+7bPHixfj6+tKzZ0+ys7MB8PLy0lQ7Dhw4AMDo0aOpX78+MTExVvacPn2aGjVqaKokGzduRK/XExQUpKmJWPjmm2/w8fFBr9fz/vvvA5CWlkaDBg0wGo2lFrV89dVX3H///eXmO4XCJpX9UE4dVefgDi3sKL6o4XoYDIbbbvdG5ymLHSXJz88XEZG4uDiZOXPmbZXl5+eLv7+/FBQUyJdffqnVs6XakZ6eLgsXLpQFCxZYlY8fP14MBoO2eMVoNEp2drZs375dRo8ebVX3+PHjUlhYKEVFRRIYGChZWVmSmppaSuXEwjPPPCN6vd7me6iFHeoop0ONxBQVxtatW/H29iYoKIjY2FgAhg0bRmhoKIMGDWLKlCmkpaVpeoVJSUlMmTIFgH79+mEwGAgLC9NGGO3bt2fQoEHMnDmTHTt2YDQa8fPz0xZmxMfH07lzZ5599lkKCgps2nTkyBHCwsIwGAxMnz4dgKFDhzJmzBjCw8OJi4vj6aefpkePHuzdu5dx48YRGBhIz549uXTpEmlpaQQFBdG3b1/i4uJu2ifVqlUDzMv+H3roodsqS0lJ4eGHH8bFxYXQ0FC2bdsGwMWLFwkMDGTkyJFcu3YNgEaNGpWy5fz582RnZ9O8eXMArl69So0aNahVqxbe3t7s37/fqn7Tpk1xdnZGp9Ph4uKi5a4lJiYSEBDAhx9+qNX99ttvCQ0NtcpvUygqAhVhigrju+++49133yUxMZFhw4bx008/4ezsTEJCAm3btv3Lz8bFxbFp0yb69evH0qVLATh58iTz5s3jn//8J1FRUaxevZrNmzezePFi8vPzefvtt9m0aRPTpk0jIyPDZrsTJ04kNjaWTZs2sX//fm3KzM/Pj3Xr1gFQp04d1qxZQ0FBATk5Ofzwww/079+fzz77DICzZ8+ydOlShg0bprV74sQJbQrPcgwcOLDU+U+cOIFer+fTTz/V8rhutSwrK0vLH/P09NSkqTZv3swPP/xAs2bNmD9//nV9PGvWLMaMGaO9Lt4emFVFbPHdd9/RsmVLatWqRaNGjTh8+DCJiYkkJCRoQsWff/65lZiyQlFRqGRnRYUxatQopk+fTkxMDOPGjePYsWN07NgRgM6dO7Nt2zYrVQoR88pGk8nE66+/TnJyMtnZ2fTp0wcwP+txd3cHYM+ePZoaxfnz5zl37hxOTk54eHjg4eFB/fr1bdp06NAhBg8eDJh/tE+dOqXZY8Hy/6NHj2rSTl26dGHTpk2AeURo0Ty00LRp0zKpdTRt2pRt27axYsUK/vWvf/HRRx/dctmIESO0UWp2djZ16tQB/lTt6NOnj9XoqDhZWVn8/vvv2igPzB2hpT2g1DUCHDt2jJkzZxIfHw+Aq6srrq6uAPTs2ZN9+/Zx/vx59Ho91atXv6E/FIrbRXViigqjbt26zJkzh/T0dJ577jmmTJlCYmIiALt37wbMP5xnzpwBIDk5GYBff/1VGwEtWLBA62iKT0117NiR5cuX4+7uTkFBAdWqVaOoqIicnBwyMzM5d+6cTZu8vLyYNWsWjRo1wmQyodPpmDt3rlXblv+3bNlSG53t2rVLk4iyNUV24sQJKwUOgCZNmrB48WLtdUFBAS4uLuh0OmrXrk2NGjVuq6x169bs27cPk8lEQkICPj4+5OfnIyK4urqyZcsWzeaSHDp0iMOHDxMeHk5ycjInT54kISGB3Nxcrly5woEDB0qNli9fvszQoUOJi4vTbiYuX75MrVq1ALOm5NixY9mxYwerV6/m+++/Z//+/UyaNEmbulUoyhvViSkqjHnz5vHVV19x5coVJkyYgLe3N3PnziUkJIRmzZrRtGlT6tSpQ9OmTQkNDeWBBx6gYcOGeHl5ceTIEcLDwzUV95JMnTqVXr16ISLUq1ePFStWMGHCBAIDA+nUqRMNGza0aVN0dDTDhg0jLy+PatWqsWLFiuva/8gjjxAXF0dAQAC1atViyZIlpdTkLZRlJHb69GkGDx6Mk5MTrq6uxMXF3VZZtWrVGD58OAEBAdStW5clS5aQmZnJo48+ioeHB3Xr1mXRokXadS9ZsgQRIT09naioKO0Z2tChQ5k0aRJgnm7t1q0bbm5ufP755wC8/PLLvP/++3z66aekpqZq06gLFy7k4MGDvPnmm7i6uhIQEIC3tzfe3t6MGzcOAH9/f9WBKSoUleysKDduJtk5KSnJaiGH4u5CJTsrygs1ElNUWZYuXcrcuXO113q9nrfffrsSLVIoFOWNGokpyg0lO6UoK2okpigv1BJ7heIm8Pf3r7C2balqHD9+nJ49e1rl2tlS1TAajRgMBoxGIxs3bgRg3759+Pv74+fnpy19VyiqGmo6UaGwE9588026du1KYWGhVjZx4kQWLlxolTLw1ltvsW7dOg4cOMDbb7/N7NmzAdiwYYPVZp9vvvkmX3zxBU5OTowePZpVq1bduYtRKO4QaiSmqHKUVAopKCggJCSEwMBAnnzySUwmE2lpaQQEBNC3b186dOjAF198QVhYGP7+/uTk5JCWloafnx8RERH4+PiQmppqdQ5biiFDhgzBYDAQFBREUVHRTdtdUlWjoKCA48ePM3LkSLp3787hw4evq6rh5OREaGgo/fv35+LFiwBkZmZqqzuvt6pSoXB01EhMUeWwKIUYjUYtgTo+Pp4aNWowadIkNm7cSKtWrbhy5QqbNm3iyy+/5Msvv2TdunXMmDGDtWvX0qlTJy5evMimTZv4+eefeffddzXFDkBTDKlVqxbdunVjwIABnDx5kk2bNiEiVknc+fn5ZdrxuSTnz59n7969HDlyhLNnzzJ+/HjmzJljU1Vj+fLl1KtXjyVLljB9+nQ++OADq45UPatUVFVUJ6aocpRUCmnbti0jRozg1KlTZGRk0KpVK1q1akXbtm1xcnKicePG/P3vfwegcePGZGZmAmi6hB06dNBU3i2UVAw5f/48Q4YMYdCgQTRr1oy33npLS4quXr16mdQ8SuLp6Unbtm2pX78+9evX58KFC9dV1Siu0mHRdCzekSoNQ0VVRXViiipHSaWQ559/ntatW7NkyRImTpyojUqK/8jbkr+yqGHs2bOnlPJFScUQJycnnnnmGSIjIxkxYgQ7d+7E29sbuPWRWM2aNfHw8ODq1atkZmZSu3Zt3N3dbapqZGdnU7t2bSuVjnr16nHy5EmcnJysRm8KRVVCdWKKKoctpZDo6Gh27dqFp6cnrVq1KlM7f/vb3+jduzfnzp2zko+C0oohsbGxREREYDKZqF27tibaC2UfidlS1Zg0aRLdu3ensLCQTz75BLCtqhEcHEyNGjVwc3PTRmJTp07l6aefBtAWfygUVQ2VJ6YoN6pSnlhaWhqTJk3SZJsU5YvKE1OUF2qiXKFQKBQOixqJKcqNqjQSU1QsaiSmKC/USExxVzFlyhQSEhIqrP3PP/+cwMBAHnnkEebMmQOYtyvp1asXfn5+/Oc//wGgqKiI1157jdDQUJ566ikADhw4gJ+fH35+frz55puAeYuX4OBgAgMDWbZsWanzWTbg7NixI7179wbgf//7H127dsXb29sqwTk3N5eGDRtW6PUrFHccEVGHOsrlMIeTfTN58mRZv359hbWfn58vIiKFhYXSrl07ERF5//33ZdGiRVJYWCgBAQGSl5cnS5culZiYGKvPjh07VjZt2iQiIqGhoZKZmSmjR4+WrVu3SmFhoXTr1k0KCgpsnveDDz6QBQsWiIiIXq+XnJwcuXr1qgQGBmp1Pv74YwkNDa3Q6y8rf8RKpcesOhz/UCMxRZVgxIgRHDx4EIBPPvmEZcuW8f3332M0GunSpYs2ArIQFxenaRROmTKFpKQkRIRRo0YRHBxMjx49tHyxm6FatWqAeVn9gw8+CMD27dvp1q0bzs7OtG/fnt9++434+Hj279+P0WhkwYIFgHnDzkuXLmkJzK6urhw7dox27drh7OxMgwYNSElJsXne1atX8/jjjwPmzTxzcnK4cuWKtrQ+Pz+f7du34+fnd9PXpFDYM6oTU1QJ+vbty/LlywH49ttv6dGjB4GBgSQlJbF9+3bmzZt3wzbi4+Np2rQpGzduZMyYMVYKHQDTpk3Tpu8sx/r160u1M23aNFq1akXnzp0ByMrK0joTT09PsrKyyMjIoE2bNiQkJLB48WIyMjLo1q0b48aNw8vLC71eT40aNfDy8mLTpk1cvXqV7du325SPOnv2LDqdTtNX7NOnDx07dqRDhw6MHTsWMHfagwYNKrtDFQoHQXViiipBcHAwiYmJnD17Fg8PD9zd3fn5558JDQ0lJCSEAwcOWNW3ldx88OBBvvzyS4xGI9HR0ZoGoYWoqChtM0/L0a1bt1K2REVFcfToUf73v/+VUtnIzs6mTp06eHp6YjAYcHFxQa/Xc+TIEd58802WLVvG4cOHSU5OJi0tjTfeeIP58+fz1FNP0aZNGxo0aFDqfKtWrdJGYWDuRA8cOMDBgweZNm0ahYWFrF27lkcfffTWHaxQ2CmqE1NUCVxcXGjRogXvvfceffr0AWDmzJnExMSQkJBAnTp1rOp7enpy+vRpAJKTkwHzdF5kZCRJSUls3ryZGTNmWH2mLCOxvLw8wJzgXLNmTVxdXdHr9WzYsAGTycSvv/5KmzZt8PX11bZHSU5OplmzZoiYE6ednJzw9PTk8uXLNGjQgK+//prly5fj6upKixYtSl37119/rV0zmKcha9asibu7O/n5+WRkZHDixAnCw8NZtGgRb7zxxi1NlSoUdkllP5RTR9U5qOSFHWvWrBF3d3fJzs4WEZHY2Fhp166dREZGSocOHUTkz4Ud2dnZ4uvrK7169ZI+ffpIYmKiFBUVyZgxYyQoKEiCgoJk1apVN23D5MmTxWAwiF6vlzlz5oiIyKVLl6RHjx6i1+tl4cKFIiKSnZ0tffr0EV9fX5k6daqIiOzatUv0er34+/vL8OHDRUQkPj5ejEajhISEyK5du0REZPfu3dqikEuXLomvr6+VDQsXLpSuXbtK165dtcUexe1TCzvUUZUOlSemKDdUnpiirKg8MUV5oaYTFQqFQuGwqE5MoVAoFA6L6sQUCoVC4bCoTkyhUCgUDovqxBQKhULhsKhNMRXlhpubW4ZOpyudjatQlMDNzS2jsm1QVA3UEnuFw6HT6VyBfcAXwHPASuANEblcqYY5EDqzZMkzwAfAl0BfoL+IbK5UwxSKm0R1YgqHQ6fTTQeeB65i/hFeKiLnKtcqx0On0zkDPYAXgC7AJaCNiJgq1TCF4iZQz8QUDsUfI4h/AvUBZ+BpoENl2uTA1ARGAM0BD+ABYHRlGqRQ3CxqJKZwOHQ6XR3gshoxlB9/3BzUAS6JSFElm6NQlBnViSkUCoXCYVGrE/+gRo0aZ65du6ZW1imscHNzy8jNzW1YmTao2FRcD3uIz8pGjcT+QInXKmxhD0K1KjYV18Me4rOyUQs7FAqFQuGwqE5MoVAoFA6L6sQUCoVC4bCoTkyhUCgUDovqxOyQbdu2MWTIEADOnz+PwWCgqKgILy8vnn32WQD+/e9/06JFCwYNGqR97tNPP6Vhw4YcOXKkXO3p1asXAQEBhISEcPLkSQD27duHv78/fn5+7N2797plFy9epF+/fgQHBxMdHW3VblpaGg0aNMBoNBIWFlauNivKl7LEZHp6OsHBwfj6+pKQkABUXEwCnD59mho1amht24rT6OhoGjduzKRJk7TPvfTSSxgMBry9vdmyZQsA//vf/+jatSve3t6sWrXK6jwqTu0cEVGHeeWX2BP9+/eXX375RV588UVZt26diIj4+flp7587d05SUlJk4MCBVp8bMmSIpKSk/GXbJpNJcnNzy2zLsWPHRERk3bp18o9//ENERHr37i0nTpyQkydPSkRExHXLxo0bJwcPHrTZbmpqain77Y0/4kLFptw4JseOHSubN2+Wy5cvi8Fg0MorIiZFRMaPHy8Gg0Fr21acnjlzRjZu3CgTJ07UPpefny8iImlpafLYY4+JiIher5ecnBy5evWqBAYGWp3HnuPUHuKzsg81ErNTZsyYwahRozhx4gTdunUr9f69996Li8vNpfllZGQwY8YMAgMDOXbsWJk/16JFCwCqVauGs7MzAJmZmdx///00adKErKys65bt27ePGTNmEBQUxLZt20q1nZiYSEBAAB9++OFNXYviznOjmExOTsbX1xcPDw9q1apFdnb2Ddu81Zg8f/482dnZNG/eXCuzFacNGjTALEbyJ9WqVQPgypUrtG/fHoCWLVuSk5PDlStXqF27dqnzqTi1X1Sys53SvHlzsrOzGTly5G23tWXLFmbPnk1+fj5DhgxhwoQJODs7k5+fX2p6xNnZmQ0bNpRqw2QyMX36dObNmwdAUdGfykTmG0LbZVu3buWXX36hXr16PPnkk2ze/KdIeqNGjTh8+DCurq48/vjjhISE0K5du9u+XkXFcKOYNJlMWofh6elJVlaWzQ4Bbj8mZ82axZgxY3jvvfdK2VA8Tq9Hnz59+Omnn/jvf/+rve7YsSMiwsKFC63qqji1b1QnZqcsWrSInj17Ehsby+DBg2961FWc1atXk56ezoQJE+jevTtOTuYBePXq1UlKSipTG6+++iqRkZG0bNkSwOru1tKerbLWrVvz4IMPWpVZcHV1xdXVFYCePXuyb98+9eNgx9woJov/fbOzs6lTp85127qdmMzKyuL333/noYceKvVeyTi9HitXruTkyZP07duX7du3M23aNA4cOADAY489ZtWRqji1b9R0oh2Sm5vL3LlzmTp1Kk899RQxMTG31d67777L0qVL+eWXXzAajUydOpWsrCzy8/MxGo1WR0hISKnPx8bGotPpiIyM1Mrq1avHyZMnSU9P1+62bZW1bt2a06dPk5OTQ2FhoVW7ly//uf3Xli1bbvjDo6g8yhKT7dq1Y9u2beTk5JCdnX3dURjcXkweOnSIw4cPEx4ezvr163nhhRcA23Fqi7y8PAA8PDxwd3cHzB1VzZo1cXd3Jz8/36q+ilM7p7IfytnLgZ08PBcReeuttyQuLk5ERPLy8sTX11cuX75s9RD9m2++ET8/P2nYsKE88cQTWvmNHqKbTCaJj4+Xo0ePltme6tWri7+/vxgMBomKihIRkT179oivr6/4+vrK7t27r1u2f/9+MRgM0rVrV1mzZo2IiLz99tty8uRJWbNmjXTq1En0er2MHz++zPbcSbCDB+f2EJtlicnff/9dgoKCxMfHR9auXauVV0RM2mrbVpzGxMRIp06dpHnz5jJ69GgREXn88cfFYDCIv7+//PjjjyIisnDhQunatat07dpVFixYICKOEaf2EJ+VfSjtxD9wBH06o9FIixYtSs3ZW/j000/57LPPWLNmDc2aNbvD1lVN7EGbzp5jU8Vk5WIP8VnZqE7sD+z5h0JRedjDj4SKTcX1sIf4rGzUMzE7xGg0VrYJNnnnnXfw9/fnySefJCcnB4Djx4/Ts2dPgoKCiI2NBaBfv34YDAb8/f05dOiQ9vmSyam26o0ePZr69etbPXP56KOP8Pb2Rq/Xa8v0Lc9LOnbsSO/eva3s3LdvH76+vgQEBPDss88iIqSnp9OpUyfc3Ny0Z3OFhYX079+foKAgxo8fXzFOq2LYa2w+/vjj1KlTR0uyBti9ezfdunUjKCiINWvWcPnyZUJCQggMDKRnz57asy5bSdK2kvRtJfOvX78eHx8fgoKC+O233wCYOnUqer0evV6vraqcP38+Pj4++Pj4sGTJklL2b9y4Eb1eT1BQkGbDf//7X/R6PeHh4Zw5c6aCPFcFqOz5THs5uEPPHUwm0w3rFE8UvdV2b3SesthRnPT0dC0xdPny5TJr1iwRERk4cKCcPXvWqq4lmTQpKUl7DiFSOjnVVr309HRZuHCh9lxCRKRDhw5iMpnk5MmT0rt3b6tzffDBB1Z1i7crIjJ06FD56aefJDc3Vy5evCgGg0EKCgpERGTZsmUyY8YMEREZM2aM/Prrr6WuGzt45qBi88akp6fL5MmTZf369VpZnz59JCcnR3udm5sr6enpIiIyf/58+fjjj0XEdpK0rSR9W8n8/v7+cuXKFUlPT5d+/fpZtZeZmSkBAQEiYk6YFjHHZqdOnUrZbzQaJTs7W7Zv3y6jR4+WgoIC8fHxkcLCQtm1a5e8/PLLNq/bHuKzsg81ErsOW7duxdvb22qEMWzYMEJDQxk0aBBTpkwhLS1Nk31KSkpiypQpwJ8jjLCwMC3hs3379gwaNIiZM2eyY8cOjEYjfn5+2rOE+Ph4OnfuzLPPPktBQYFNm44cOUJYWBgGg4Hp06cDMHToUMaMGUN4eDhxcXE8/fTT9OjRg7179zJu3DjtrvPSpUukpaURFBRE3759iYuLuyl/nDhxgrZt2wLQoUMHtm7dSkFBAcePH2fkyJF0796dw4cPA9bJpJalyLaSU23Va9SoUalzN2/enLy8PLKysrjnnnus3lu9ejWPP/64VZmlXTCvOrv//vtxc3Ojbt26VvWOHTumnddyTY6Ais3SlIybY8eOce3aNfr27Uvv3r3JyMjAzc1Nq1c8IdpWkrStJH1byfwA7u7uNGrUiKNHj1q15+rqqqWdWOLexcWlVGrC1atXqVGjBrVq1cLb25v9+/dz4cIF7rvvPpydnWnfvr1NoQCFGZUndh2+++473n33XYxGIyLCTz/9hLOzMwkJCcyYMaPUMtzixMXFUbNmTWJiYli6dCnDhw/n5MmTbN26FXd3d7p3787q1aupVasW3bp1Y+DAgbz99tts2rSJzMxMgoKCbLY7ceJEYmNjuf/++3nmmWe0aQc/Pz8+/fRT4uLiqFOnDkuXLmXnzp3k5OTwww8/sGjRIj777DOefvppzp49S0JCgvZlBXMHVXJZcpMmTVi8eLH2+v/9v//HTz/9RGFhIRs3biQrK4vz58+zd+9ejhw5wtmzZxk/fjxff/01+fn5BAcHk56ezsqVKwHbyam26tkiKCiINm3aUFhYyHfffaeVnz17Fp1OR/369Ut9ZvXq1fzf//0frVq1KtXxWfDy8mLTpk306NGDxMREm3lH9oiKTevYtEVGRgaHDx9m7969bNq0iejoaD7++GPAfNM0b948q1gqmSRtK0nfVjK/5VyZmZkcPHjQyoYpU6aUSgz/7LPPSt10lUwKN5lM3HvvvaSmppKTk8PWrVvJzMz8y+u9m1Gd2HUYNWoU06dPJyYmhnHjxnHs2DE6duwIQOfOndm2bZtVcq8lqE0mE6+//jrJyclkZ2fTp08fwPyDaclJ2bNnDxEREYB5hHLu3DmcnJzw8PDAw8PD5o8ymPNjBg8eDJgD/9SpU5o9Fiz/P3r0KJ06dQKgS5cubNq0CTDfdRf/kQBo2rTpDRNM69evz6BBgwgNDaVr1640aNAAT09P2rZtS/369alfvz4XLlwAzAmrmzdv5ueffyYqKorPP//cZnJqyXolhVfBnDS7aNEiUlJSOHv2LCNGjODbb78FYNWqVaV+ECxEREQQERHB2LFjiY+P1/4OxenVqxcbNmwgJCSE5s2b06BBg7/0gb2gYvPGeHp68sgjj1CzZk2Cg4P54IMPNF8MGzaM6Ohoq2TskknStpL0bSXzz5w5k/79+9OsWTP8/Py091euXMmFCxcYMGCAVrZjxw6+/fZbvv7661K2FpfocnZ2xtnZmaioKB577DE6duxI69atb9oHdwuqE7sOdevWZc6cOaSnp/Pcc88xZcoUEhMTAfMDYzAHn+WBa3JyMgC//vqrdpe5YMEC7ctcXM2gY8eOLF++HHd3dwoKCqhWrRpFRUXk5OSQmZnJuXPnbNrk5eXFrFmzaNSokSbxM3fuXKu2Lf9v2bIl69atA2DXrl3al7OkagaU/W53+PDhDB8+nLi4ODp37kzNmjXx8PDg6tWrZGZmUrt2bUSEwsJCqlWrRu3atalRo4ZVcmpycjInT55k/fr1perZwsnJiZo1a1K9enU8PT21BSUAX3/9NXPnzi31mby8PE1h4a/adnZ25pNPPgFgxIgRdO/e3WY9e0PF5o1HYq1ateLs2bOYTCZ+/fVXbYovKioKPz8/goODtbq2kqQtSfq1a9fWFgJZkvmdnJy0kZNerycxMZGUlBQ+/fRTAPbu3cvs2bNZs2aN1t6pU6d49dVXWb16damO2t3dndzcXK5cucKBAwe0aXvLjVhSUhI//fTTX17v3YzqxK7DvHnz+Oqrr7hy5QoTJkzA29ubuXPnEhISQrNmzWjatCl16tShadOmhIaG8sADD9CwYUO8vLw4cuQI4eHh2vx5SaZOnUqvXr0QEerVq8eKFSuYMGECgYGBdOrUiYYNG9q0KTo6mmHDhpGXl0e1atVYsWLFde1/5JFHiIuLIyAggFq1arFkyRKrefzilPVu96mnnuLixYu0a9eO999/H4BJkybRvXt3CgsL+eSTT8jLyyM8PBydTodOp2P27Nk8+OCD2pz+0KFDmTRpks16lmtcsmQJIuYVhVFRUYSFhaHX6zGZTERFRQHmEVpWVhZNmzbV7HvnnXcYPHgwu3bt0u68W7VqRVhYGAUFBTz66KPs2bOH7t27M2PGDO677z4GDhyIk5MTkZGRNv9W9oiKzdKMGzeO+Ph4Vq9ezQsvvMCIESMYPnw4RqMRJycn4uLiSE9P591338XX15eVK1fy9NNPM2rUKEaPHk3Xrl0xGo0YDAamTp3K1KlTeeaZZ8jNzWXy5Mmab55++mkAq3hNSEjgnnvu0aYiX3/9dTIyMujevTuenp6sWrWKadOmkZGRwRNPPAGYp4QPHTrEzz//zHPPPcfEiRPp1q0bbm5ufP755wCMHTuW/fv306xZM+bMmXNDH9ytqDyxP7iZXJykpCSrh+WKqos95OGo2FRcD3uIz8pGjcTslKVLl1pNlen1et5+++1KtEihMKNiU2FPqJHYHyhVBIUt7OFOV8Wm4nrYQ3xWNipP7C7C39+/wtq2paphS5HDltKGrS3kFXcfFRmftuLOlipH//79MRqN6PV6OnToAJgXxPj5+REQEMCPP/5YYTYqbpHKzra2lwM7UAqvaIorjpc3tlQ1rqfcIWKttGFrC3l7ATtQRLgbYlOkYuPTQvG4s6XKYeGrr77S4rFXr17y+++/S05OjnTv3r3CbbwZ7CE+K/tQIzE7o6QaQ0FBgab39uSTT2IymUhLSyMgIIC+ffvSoUMHvvjiC8LCwvD39ycnJ4e0tDT8/PyIiIjAx8eH1NRUq3PYUmUYMmQIBoOBoKAgq6TOsmJLVcOWIoeF4kobtraQV9gnjhqfForHnS1VDgsrV67UVhJmZmZy3333UbNmTXJycsjNzb3l8ysqgMruRe3lwE7udidNmiSJiYkiIlJUVCRFRUVy9epVERGZOHGirFu3TlJTU7WRz+LFizUdt+joaFmxYoWkpqZKmzZtpKCgQLZv3y4jR44UkT/vdMPCwuTSpUtSVFQkISEhcu3aNQkODtbOWZy8vDwxGAxWh6VucT766CNp2rSpNG7cWPbs2aN91s/PT1q0aGGlS5iRkSFBQUFWn09MTFQjMTuPTRHHjU+R0nHn5uYmBw4ckDNnzliNAvPz86VDhw7a6z59+khycrKcPXtW6tSpo+kv2gP2EJ+VfajViXZGSTWGtm3bMmLECE6dOkVGRgatWrWiVatWtG3bFicnJxo3bszf//53ABo3bqzJ0zz88MO4uLjQoUMHTTXeQklVhvPnzzNkyBAGDRpEs2bNeOutt25qu/jrqWpcT5Hjr5Q2FPaNI8anhZJxZ0uVA8xpCsXV+t955x3GjBlDrVq1aNeuHffee+/NOU1RoahOzM4oqcbw/PPP07p1a5YsWcLEiRMtd+ZW02+2JIb27duHyWRiz549pbZTL6nK4OTkxDPPPENkZCQjRoxg586deHt7A2Z9w7CwMKvPOzs7a1tMgG1VDZHSyh0Wrqe0obB/HDE+LZSMO1uqHGCeSuzfv79VvXXr1nH+/HleeeUVK4FpReWjOjE7w5YaQ3R0NLt27cLT05NWrVqVqZ2//e1v9O7dm3PnzpWS6CmpyhAbG0tERAQmk4natWvz8MMPa3XLcqfr4eFRSlXjeooctpQ2YmNjmTNnDhcvXiQzM1Orq7A/HDE+wXbc2VLlEBG2bdumSUiBOT4XLVpEjRo1VGzaISpP7A+qUi5OWloakyZNYtGiRZVtisNjD3k4VSk2QcVneWIP8VnZqNWJCoVCoXBY1EjsD6ra3a6ifLCHO10Vm4rrYQ/xWdmokZhCoVAoHBbViTkAU6ZMISEhocLa/+6772jTpo2V7E9RURGvvfYaoaGhPPXUU4B5b6fg4GACAwNZtmyZVvfdd98lNDQUo9FIUVER33zzDT4+Puj1em3LluK89NJLGAwGvL292bJli1aem5tLw4YNtWtdv349Pj4+BAUF8dtvv1XU5Stug4qOTQuPP/64JksWFxeHl5cXRqOR8ePHa3VKxmFSUhLNmjXDaDSW2pPsww8/tClzNXLkSPz8/PD392fv3r0AvPzyy5psVd26dQE4cOAAfn5++Pn58eabb1bUZSvKQmUnqtnLgR0llJZk8uTJsn79+gpr/+LFi3Lt2jWrhM+lS5dKTEyMVb3Ro0fL1q1bpbCwULp16yYFBQWyY8cOmTRpklW948ePS2FhoRQVFUlgYKBkZWVZvW+Ro0pLS5PHHntMK//4448lNDRUu1Z/f3+5cuWKpKenS79+/cr1mssKdpBMejfHpojInj17pFu3bloy/MKFCzXpKAu24vB6CfTXrl2TyMhImzJXx44dExGRw4cPyxNPPGH13i+//CIDBw4UEZGxY8fKpk2bREQkNDRUMjMzb+3ibhN7iM/KPtRIrBIZMWIEBw8eBOCTTz5h2bJlfP/99xiNRrp06cJ//vMfq/pxcXHExMQA5jvgpKQkRIRRo0YRHBxMjx49tGTSm6Fu3braTsgW4uPj2b9/P0ajkQULFgBw7Ngx2rVrh7OzMw0aNCAlJYX4+HjOnz9PUFAQ06ZNA8wbGTo7O6PT6XBxcSm1Y29xOar27dsD5nyf7du3W23xDuZdbxs1asTRo0dv+roUt469xCbAxx9/zOjRo63KZs2aRWBgoJYPZisOAb744gsCAgL44osvtLLY2FiGDBli81yWHaCrVatWagfm4lJUXl5eXLp0CZPJBFDq+6O4c6hOrBLp27cvy5cvB+Dbb7+lR48eBAYGkpSUxPbt27WdYv+K+Ph4mjZtysaNGxkzZgyfffaZ1fvTpk3TpkIsx/r162/YbkZGBm3atCEhIYHFixeTkZGBl5cXmzZt4urVq2zfvp2srCwyMjKoW7cuiYmJHDhwgF9++UVr47vvvqNly5bUqlWrVPt9+vQhLCyM0NBQwPwjOGjQIJt2/Pbbb9oPquLOYC+x+dtvv1G/fn3q1KmjlfXu3Zu9e/eyYsUKXnvtNUwmk8047NKlC7/99hvff/89H3/8MefOnaOgoICkpCSCg4P/0vY33niDcePGWZV9//33hIeHA9CtWzfGjRuHl5cXer3eKplfcWdRyc6VSHBwMO+88w4jR47Ew8MDd3d3fvzxR6ZOnUpBQQEHDhywqm9L+eDgwYN8+eWXrF27lsLCQvR6vdVnoqKiiIqKumnbPD09MRgMuLi4oNfrOXLkCG+88QYjR45k9uzZtGnThgYNGmj1AIKCgjh48CCdOnXi2LFjzJw5k/j4eJvtr1y5kpMnT9K3b182b97M2rVrWbFiBTt27NDqzJw5k/79+9OsWbNSIzRFxWIvsfnBBx8wbdo0q2eilg6tfv36tG7dmoyMjOvGIZhHVYGBgaSkpPDbb78xYMCAvzznrFmzaNu2rdUzs5SUFJo0aULNmjUBePPNN1m2bBmdO3fmySefJC0tjebNm/9lu4qKQY3EKhEXFxdatGjBe++9R58+fQDzD3dMTAwJCQlWd59g7lhOnz4NQHJyMmCe1oiMjCQpKYnNmzczY8YMq8/c6kjM19dXe7CdnJxMs2bNaNCgAV9//TXLly/H1dWVFi1aWNX79ddfadGiBZcvX2bo0KHExsbi7u5equ28vDwA7ccxIyODEydOEB4ezqJFi3jjjTfIzMxEr9eTmJjIxIkTNY07xZ3BXmLz+PHjDB06lPHjx/PFF1+wadMmsrOzAfNCoJSUFOrXr28zDi31TCYTO3fupHnz5hw6dIi5c+cSHh7O/v37+eSTT6zOt27dOrZu3Vpqb7uVK1dqfgBzR12vXj2cnJzw9PTk8uXLN+1jRTlR2Q/l7OWgkh6er1mzRtzd3SU7O1tERGJjY6Vdu3YSGRmpKWlbHp5nZ2eLr6+v9OrVS/r06SOJiYlSVFQkY8aMkaCgIAkKCpJVq1bdtA07d+6UkJAQ8fT0lJCQEMnNzZXs7Gzp06eP+Pr6ytSpU0VEJD4+XoxGo4SEhMiuXbtERKSgoECGDh0qgYGBMmLECBERmTFjhtx3332aqvixY8fk9OnTMn36dBERefzxx8VgMIi/v7/8+OOPVrYUXygwffp0MRqN8uSTT8r58+dvwbu3D3bw4Pxujk0LxRdpTJkyRXx8fKRr166ydOlSEbEdhwsWLJBHHnlEvL29ZdasWaXatCzsKB6brVu3li5duojBYNDaEREJCAiQixcvaq937doler1e/P39Zfjw4bd8XbeLPcRnZR8q2fkPVEKpwhb2kEyqYlNxPewhPisbNZ2oUCgUCodFdWIKhUKhcFhUJ6ZQKBQKh0V1YgqFQqFwWFSe2B+4ubll6HS6BpVth8K+cHNzy7AHG1RsKmxhD/FZ2ajViQ6MTqfrCiwDioAk4JCIvFupRv2BTqebCjQGwjHfLAWLiJLduIvQ6XTJwN+A5cBDQKiIFFauVaDT6doD/wKyMdv1nYi8UrlWKW4VNZ3o2PQEmgJ1gVNATOWaY8Vs4CJQC2gAPFq55ijuJDqdrgbmDqIW0Az4pz10YH+QDMQCrYH/B/SuVGsUt4UaiTkwOp3udeDvwEsiklXJ5thEp9PdA8wBkkRkbmXbo7gz6HQ6TyABGCUiuyrbHlvodDonIBLoLyLhlW2P4tZQnZhCoVAoHBY1nahQKBQKh6XCVyfWqFHjzLVr19TKqnLG1dVVE9JV3BzKdxWD8qvCFm5ubhm5ubkNK6r9Cp9OVLpvFcMfmmmVbYZDonxXMSi/KmxR0fqOajpRoVAoFA6L6sQUCoVC4bCoTkyhUCgUDovqxBQKhULhsNx1ndi2bdsYMmQIAOfPn8dgMFBUVISXlxfPPvssAP/+979p0aIFgwYN0j736aef0rBhQ44cOVKu9vTq1YuAgABCQkI4efIkAPv27cPf3x8/Pz9ty3VbZZVFWXyYnp5OcHAwvr6+JCQkABXnQ8vW9h07dqR3796AbX8NHToUb2/vcj13eeKosRkdHU3jxo3L9dzlgaP601bZ+vXr8fHxISgoiN9++61U256entr34OLFi+Vqt91T0VtHU0lbq/8V/fv3l19++UVefPFFWbdunYj8uVW5iMi5c+ckJSVFBg4caPW5IUOGSEpKyl+2bTKZJDc3t8y2HDt2TERE1q1bJ//4xz9ERKR3795y4sQJOXnypERERNgsq2y/3siHY8eOlc2bN8vly5fFYDBo5RXhQwsffPCBLFiwQERs+9By7sr23V/hiLF55swZ2bhxo1361RH9aavM399frly5Iunp6dKvX79SbRe/Jnvjj7iosD7mrhuJAcyYMYNRo0Zx4sQJunXrVur9e++9FxeXm0uhy8jIYMaMGQQGBnLs2LEyf65FixYAVKtWDWdnZwAyMzO5//77adKkCVlZWdctq0xu5MPk5GR8fX3x8PCgVq1aZGdn37DNW/WhhdWrV/P4448Dtv2l0+mIjIy86XbvJI4Ymw0aNECnq7AV1LeFI/rzet91d3d3GjVqxNGjR0u1ffDgQQICAvjnP/9516U53JVbsTRv3pzs7GxGjhx5221t2bKF2bNnk5+fz5AhQ5gwYQLOzs7k5+cTFhZmVdfZ2ZkNGzaUasNkMjF9+nTmzZsHQFFRkfaeJSBtlVUmN/KhyWTSftg8PT3Jysqidu3aNuuWhw/Pnj2LTqejfv36gG1/vf/++9SrV89uf3DBMWPTnnFEf17PxxkZGWRmZnLwYOnNIFJSUqhbty4vvPAC33zzDREREbd3sQ7EXdmJLVq0iJ49exIbG8vgwYNv+k6sOKtXryY9PZ0JEybQvXt3nJzMg9vq1auTlJRUpjZeffVVIiMjadmyJYDVj6ylPVtllcmNfFjcxuzsbOrUqXPdtsrDh6tWrdJGYWDbX/Xq1StTW5WJI8amPeOI/rRVNnPmTPr370+zZs3w8/Mr1a4ltnv37s3u3btVJ1aVyc3NZe7cuWzYsIH58+cTExPDCy+8cMvtvfvuu2RkZBATE8Pbb79NSEgIL730EjVr1izT3VlsbGypaa569epx8uRJnJyctNGLrbLKoiw+bNeuHdu2baNdu3ZkZ2f/pc2360OAr7/+mrlz/xTJt+WvG9lR2ThqbNorjupPW2V6vZ7ExERSUlL49NNPrdrNycnBzc0NZ2dntmzZwsMPP3zL1+iQVOQDN7HDhR1vvfWWxMXFiYhIXl6e+Pr6yuXLl60ejH7zzTfi5+cnDRs2lCeeeEIrv9HDXpPJJPHx8XL06NEy21O9enXx9/cXg8EgUVFRIiKyZ88e8fX1FV9fX9m9e7fNssr0a1l8+Pvvv0tQUJD4+PjI2rVrtfKK8OGlS5fE19fXqsyWD3v27Cl+fn52uQBBxHFjMyYmRjp16mR3fnVUf9oqmz59uhiNRnnyySfl/PnzIiKycOFC2bVrl+zevVs6duwoAQEBEhkZKYWFhWW26U5ABS/suOs6sethMBhk6NCh133/k08+kYceekjS0tLuoFXXxx796ig+tEff/RXKr+WLo/izqlDRnZgSAHZQlNjqraN8VzEovypsoQSAyxGj0VjZJpTi8uXLhISEEBgYSM+ePbl8+bL23unTp6lRo4ZV0qWlzJ6wR78CBAYGYjAYCAkJ4ezZswCMHz++kq2yxl599/jjj1OnTh0tUR1g8eLF+Pr60rNnTy1lwsvLS0uytSfszR6AM2fOaL568MEHefnllwEYPXo09evXJyYmRqv70Ucf4e3tjV6vZ9u2bdet169fPwwGA/7+/hw6dAgwX7vBYMBoNLJx40bgz0R/o9HIkiVLAJg6dSp6vR69Xm/zOfP48ePx8/MjICCAlJSU69pvy4Y7SkUO8+QOTieaTKYb1imedHur7d7oPGWxozi5ubmSnp4uIiLz58+Xjz/+WHtv/PjxYjAYrObmLWXKrzcmPz9fRETi4uJk5syZcuHCBQkKClK+KwPp6ekyefJkWb9+vYiYfenv7y8FBQXy5ZdfysyZM0XEOslW+bXsjBs3TvNtenq6LFy4UEvUFxHp0KGDmEwmOXnypPTu3fu69SwxnpSUJKNHjxYR87UXFBRYnc/WMz5L8nVmZqYEBARYvWf5roiIbN68WV5++eXr2m/LhuJQ1ZKdt27dire3N0FBQcTGxgIwbNgwQkNDGTRoEFOmTCEtLU2TgUlKSmLKlCnAnz1+WFiYdifYvn17Bg0axMyZM9mxYwdGoxE/Pz8WLlwIQHx8PJ07d+bZZ5+loKDApk1HjhwhLCwMg8HA9OnTAfOdy5gxYwgPDycuLo6nn36aHj16sHfvXsaNG6eNnC5dukRaWhpBQUH07duXuLi4m/KHm5sbjRo1AqyTIM+fP092djbNmzfX6toqU369PtWqVQPMq9QeeughPDw88PT0VL4rA5aYtJCSksLDDz+Mi4sLoaGh2ujg4sWLBAYG2szDUn69Pj/88IM2WizpazDnt+Xl5ZGVlcU999xz3XqWGL9y5Qrt2rUDzMvyQ0ND6d+/vyZBZVkV2atXL44fPw78mXzt6upaKnfS8l0xmUxWNtiy35YNd5SK7CHFxkhs0qRJkpiYKCIiRUVFsmPHDnn++edFRCQ6OlomT54sqampmgxMYmKiTJ48WUREcnJyRERkwYIFMn/+fBERqVevnly5ckVERMLCwuTSpUtSVFQkISEhViuSTpw4IS1btix1lyAi0q9fPzlx4oSImGVqfv/9dxkyZIgsWbJERMyrgEaMGCEiIj/99JMMGzZMRET++9//yjvvvCOpqanStm3bUquCjh8/LgaDweoYMGCATRsuX74sPj4+kpmZKSIiEydOlH379lndQRUvU369sV+PHz8uPj4+8tBDD2l2vPLKK8p3ZYzJ4iOxLVu2yIQJE0REpKCgQLtLv3DhguYn5dey+XXnzp0SGRlpVVZyhPXRRx9J06ZNpXHjxrJnz57r1svLyxM/Pz9p0aKF/PrrryLy599k8eLF8sorr1iV/fjjj/Lkk09anXv8+PGyePHiUna+8sor0rJlS2nevLk2W2TLfls2FIcKHond8TyxUaNGMX36dGJiYhg3bhzHjh2jY8eOAHTu3Jlt27ZZ3RXIHw+KTSYTr7/+OsnJyWRnZ9OnTx/APCfv7u4OwJ49e7Qkv/Pnz3Pu3DmcnJzw8PDAw8NDU3MoyaFDhxg8eDAAWVlZnDp1SrPHguX/R48epVOnTgB06dKFTZs2Aea7RMsoykLTpk3LlAQpIgwbNozo6Gjq1KlDVlYWv//+Ow899JBWx1ZZcZRfS9O0aVO2bdvGihUr+Ne//sULL7xASkqK8l0ZE3OL4+npqY2IiievW5Js+/Tpw8SJE60+o/xqm5UrV/LEE09c9/3s7GwWLVpESkoKZ8+eZcSIEXz77bc261avXp3Nmzfz888/ExUVxapVq6z+JpbRoqXM39+ff/7zn1a2XLhwgQEDBli1e/DgQVJSUjh8+DC//PILEydO5N///rdN+23ZcCe5451Y3bp1mTNnDunp6Tz33HNMmTKFxMREAHbv3g2YvzBnzpwBzBp8AL/++is5OTn88MMPLFiwQAu+4qoBHTt2ZPny5bi7u1NQUEC1atUoKioiJyeHzMxMzp07Z9MmLy8vZs2aRaNGjTS5pLlz51q1bfl/y5YtWbduHQC7du3SMu9tqRecOHGilFZfkyZNWLx4sVVZVFQUfn5+BAcHA+Yv2uHDhwkPDyc5OZmTJ08SHR1tVab8+td+LSgowMXFBZ1OR+3atalRowYiYlM5RPmudEyWpHXr1uzbtw+TyURCQgI+Pj7k5+cjIri6urJlyxbl1zL6dd26dUyaNMmmfZb2a9asSfXq1fH09CQnJ8dmPRGhsLCQatWqaTEOfyb1b9myRbPZUnbo0CHtO7B3715mz57NmjVrbLZdp04dnJycuPfee7l06ZJN+69nw53kjndi8+bN46uvvuLKlStMmDABb29v5s6dS0hICM2aNaNp06bUqVOHpk2bEhoaygMPPEDDhg3x8vLiyJEjhIeHa+KYJZk6dSq9evVCRKhXrx4rVqxgwoQJBAYG0qlTJxo2bGjTpujoaIYNG0ZeXh7VqlVjxYoV17X/kUceIS4ujoCAAGrVqsWSJUuuK8hblruz9PR03n33XXx9fVm5ciVPP/00o0aN0p45DB06lEmTJvHAAw9YlX3++efKr3/B6dOnGTx4ME5OTri6uhIXF0fDhg2pVatWqbrKd6UZN24c8fHxrF69mhdeeIERI0YwfPhwAgICqFu3LkuWLCEzM5NHH30UDw8P6tatq/xaBr8eOnSIZs2aWf3YR0dHs2TJEkSE9PR0oqKiCAsLQ6/XYzKZiIqKsllv/PjxhIeHo9Pp0Ol0zJ49G4Dg4GBq1KiBm5ubNhIbOHAgmZmZWqcN8Prrr5ORkUH37t3x9PRk1apVfP/995hMJnr06EGtWrUICAigsLCQjz76yKb9eXl5Nm24k9hVnlhSUpLVw13F9bmZnBzlV2uU7yoG5VeFLSo6T+yu005cunSplcaeXq/n7bffrkSLqgbKr7eO8l3FoPx6d2BXIzFF2VHqCLeO8l3FoPyqsIVS7FAoFAqF4jqoTqwc8Pf3r7C2bUnIVHUq0p+9evWqsLbtlYr0Z3HJobuBO+XL4hJSRqORjh070rt3b8CcYN6vXz+Cg4OJjo4GbMtK3S3cdc/EHJENGzbc1mZ+ij/5+OOPiY+Pr2wzqgyLFy+mWrVqbNq0yS71Ch2J4r78+OOPmT17trbi8cMPP9RW1k6dOpVp06bRpk2bUp9/4IEH7rTZlc5dMxIrKYFTUFCgCe8++eSTmEwm0tLSCAgIoG/fvnTo0IEvvviCsLAw/P39ycnJIS0tDT8/PyIiIvDx8SE1NdXqHLakcIYMGYLBYCAoKMhq2/GyYktCJj8///Ydcps4qj8tUjv2hqP6s7jkkL1QFXxZUr5p9erV2s7l+/btY8aMGQQFBWlpN7Zkpe4aKlIORO6gAPCNKCmBU1RUJFevXhURs5zTunXrJDU1VRPeXLx4sURERIiIWSJnxYoVkpqaKm3atJGCggLZvn27jBw5UkT+FEEtKYVz7do1CQ4O1s5ZnLy8vFIyNZa6xbElITNv3rxK37vJUf0pcueEam8GR/Vncckhe/FrVfBlcfmmjIwMTeZLRMTNzU0OHDggZ86c0ez5K1mpyoaqJjtVWZSUwGnbti0jRozg1KlTZGRk0KpVK1q1akXbtm1xcnKicePG/P3vfwegcePGZGZmAmgiqB06dLDaIgVKS+GcP3+eIUOGMGjQIJo1a8Zbb72lZftXr169TMmRJSVkCgsLWbt2bXm55ZZxVH/aK47qz+KSQ126dClHj9w6VcGXxeWbVq1apY3CwKye8uCDDwJ/qodcT1bqbuCu6cRKSuA8//zztG7dmiVLljBx4kRtaXBxLTdbum4W6Z09e/Zoki4WSkrhODk58cwzzxAZGcmIESPYuXMn3t7egHlKMCwszOrzzs7Opfb1KSkhk5GRwYkTJ8rPMbeIo/rToqZubziiP6WE5JC9UBV8WVzR4+uvv7bKd2vdujWnT5+mdu3aFBYWArZlpe4W7ppOzJYETnR0NLt27cLT05NWrVqVqZ2//e1v9O7dm3PnzpXSRSsphRMbG0tERAQmk4natWvz8MMPa3XLendWUkKmSZMm7Ny5s9TWCXcaR/Xn6NGjb+o67xSO6M+SkkP2QlXwpUW+KTs7m6ysLJo2bWp17meeeYbc3FwmT54M2JaVultQyc43QVpaGpMmTWLRokWVbUqVSCytLH9WBd/ZorLjsyr5tbJ9WZVQyc4KhUKhUFwHNRJzUKrSXe+dRvmuYlB+VdhCjcQqkClTppCQkFBh7X/33Xe0adPGKsv/8uXL9OrVCz8/P/7zn/8A5r2IgoODCQwMZNmyZQCcOXNGU+sYNmxYqTJ7o6J9OX/+fHx8fPDx8dEUCWz5aPfu3Tz88MM0b95c+2xSUhLNmjXDaDSW2vPJEaho38bFxeHl5YXRaGT8+PFW77300ksMGjQIgMLCQgYPHoy/vz/vvPMOYN5byt/fHx8fnwqzrzyoaB9+/vnnBAYG8sgjjzBnzhwAioqKeO211wgNDeWpp54CbH/Xi/vQsrHopUuX6NmzJ0ajkVmzZpU6ny2FjqlTp6LX69Hr9dqiEVvnq3JU5Pp9saM8MVsU3369Irh48aJcu3ZNy+UQEXn//fdl0aJFUlhYKAEBAZKXlyejR4+WrVu3SmFhoXTr1k0KCgrk/fffl88//1xERJ5//nn59ddfrcrsza8V7cvU1FQREcnPz5dOnTqJiNj0UXZ2tly5csXK54mJiTJx4kTttb357kZUtG9Lbnlv4cyZM9KrVy8ZOHCgiIisWLFCpk+fLiIiPXr0kNOnT0t+fr5W3579WtE+tPihsLBQ2rVrJyIiS5culZiYGKt6tr7rxX1oNBrl7NmzMnPmTFmyZImIiDzxxBNy7tw5q3aGDBkiKSkpVmXHjh0TEZHMzEwJCAi47vnuNFRwnliVHImNGDGCgwcPAvDJJ5+wbNkyvv/+e4xGI126dNFGQBbi4uKIiYkBzHdsSUlJiAijRo0iODiYHj16aLkjN0PdunVxdXW1Ktu+fTvdunXD2dmZ9u3b89tvv3Hs2DHatWuHs7MzDRo0ICUlhdatW2u7qV6+fJk6depYld0p7MWXlpGVi4uLJsFly0e1atXStrAvzhdffEFAQABffPHFTZ+7orAX3wLMmjWLwMBAq2Xfs2bNYuzYsdprS+wCBAUF8dNPP2kqEyaT6ZbOe7vYiw8tfsjPz9dyuOLj49m/fz9Go5EFCxYA2PyuF/dhw4YNqV27tlYPoG3btuzcudPqfLYUOixqNK6urtpqUVvnq2pUyU6sb9++LF++HIBvv/2WHj16EBgYSFJSEtu3b2fevHk3bCM+Pp6mTZuyceNGxowZw2effWb1/rRp0zRxTsuxfv36G7ablZWl5dR4enqSlZWFl5cXmzZt4urVq2zfvp2srCy6du3K/PnzefDBB6levTrNmjWzKrtT2JsvP/vsMy3x05aPbNGlSxd+++03vv/+ez7++OObufwKxV5827t3b/bu3cuKFSt47bXXMJlMXLx4kXPnzlktR7cVu2Ce6vXy8rodV9wy9uJDS71WrVrRuXNnADIyMmjTpg0JCQksXryYjIwMm991+NOH99xzD66urlo9k8nEDz/8UGpH6ffff5+tW7cyYcIEXn31Vav3pkyZwsiRIwGue76qRJXsxIKDg0lMTOTs2bN4eHjg7u7Ozz//TGhoKCEhIRw4cMCqvq1Ex4MHD/Lll19iNBqJjo7WdAstREVFabvTWg7LXepf4enpSXZ2NmDOAalTpw5vvPEG8+fP56mnnqJNmzY0aNCA999/n6ioKA4ePIinpyc//PCDVdmdwp58uWPHDr799lsmTJgAYNNHtvDw8KBatWq4u7sTGBh4W/4oT+zFt3Xq1MHJyYn69evTunVrMjIy+Oijj3jxxRet6tmKXTCPhg4fPlwuPrlZ7MWHlnpHjx7lf//7HxcuXMDT0xODwYCLiwt6vZ4jR47Y/K7Dnz48efIku3fvZvjw4WzdupVHH32Uxo0ba/UsFFfoOHPmjFa+cuVKLly4wIABAwCue76qRJVMdnZxcaFFixa899579OnTB4CZM2cSExNDkyZNaN26tVV9T09PkpOTAUhOTiYoKAgvLy8iIyO1u5yCggKrz0ybNq3U1igTJ068YUdmeejar18/fv31V9q0aUP16tX5+uuvyc3NZfDgwbRo0UJLogS45557uHTpklXZncJefHnq1CleffVVVq9ejbOzM4BNH9nComZgMplKTctUJvbiW4t/cnNzSUlJoX79+qSmpvLGG29oZcuWLdNit2vXriQmJvLMM8+Ql5eHq6urJn90p7EXH1r8UL16dWrWrImrqyu+vr7s3bsXLy8vkpOTefHFF2nQoEGp73pxH7q7u1OjRg3c3d1ZtGgRJpOJAQMGoNfrrc5vS6Fj7969zJ49mzVr1mj1bJ2vylGRD9ykEhd2rFmzRtzd3SU7O1tERGJjY6Vdu3YSGRkpHTp0EJE/H/ZmZ2eLr6+v9OrVS/r06SOJiYlSVFQkY8aMkaCgIAkKCpJVq1bdtA07d+6UkJAQ8fT0lJCQEMnNzZVLly5Jjx49RK/Xy8KFC0VEJD4+XoxGo4SEhMiuXbtExLyQITAwUAIDA6VPnz6Sl5dnVXYn/WoPvhwxYoQ88MADmoDq1atXbfroxIkTVj5PTU2VBQsWyCOPPCLe3t4ya9Ysu1qAYA++nTJlivj4+EjXrl1l6dKlVu+lpqZqCzvy8/NlwIAB4ufnJ9HR0SIiMnfuXDEYDOLv719pfrUHH06ePFkMBoPo9XqZM2eOiIhkZ2dLnz59xNfXV6ZOnSoitr/rxX04adIkERHZtWuXGI1GCQoKku+++05ERE6fPq0trOnZs6f4+fmJv7+/JCcni4hZlPjvf/+7GAwGTdDY1vnuNFTwwg6VJ+agqJycW0f5rmJQflXYQuWJKRQKhUJxHVQnplAoFAqHRXViCoVCoXBYVCemUCgUCoelwpfYu7m5Zeh0uqqXnFDJFM/KV9wcyncVg/KrwhZubm4ZFdl+ha9OrOrodLqWwDbgfhHJK4f2vgFWiEjc7bbliOh0unGAt4gMLIe2agEngAdF5MyN6ldFdDrdeiBWRL4sh7Z6AW+IiO/tW+Z46HS6ukAq0FJELpRDe/OA4yIy47aNu4tR04m3z7PA4vLowP4gFniunNpyKHTm2/jnMPvgthGRy8BXgONJ15cDOp2uOdAR+LqcmvwOaK7T6e6c7pl98Qywtjw6sD+IBYbpdDr1O3wbKOfdBjqdzhkYSjn96P7BGqCVTqdrfcOaVY9OQC0gqRzbtPxQ3I3zXEOBL0TkWnk0JiKFwOfAsPJozwEZRvl+13cC14CAcmzzrkN1YreATqdz0el0HwFhQLqI7CuvtkWkAPgv5h/esTqdrnKUVe8gOp2ug06nex7zKGyhiBSVY/Pb/vjXV6fTfXI3dGY6ne55nU7XCfMsQXn+6AIsBAbrdLqHdDrd2BvWrgLodLoPdTpdZ+BvwIYb1S8rf6hAxALP6XS6QTqdzr43ZbNTVCd2axQBozH/6C7V6XRjyqthnU4XAWzHPAXWH/MXp6rTBOgHPA3s0+l04eXY9svAYuAFYPBdIh/TGXMHdgHootPpmpZHo38s0AoFDgMjgK7l0a4D8BTwIuY4+kd53QjpdLog4BgQAfQFyuXvdLehOrFb4I+RwnmgOzAKqFOOzV8D5gKZQEvgdDm2ba+cBryA48A8IKcc226E+VlGb6BCV0nZEaeBEOASMBa4Uk7tXsU8RSmYZyHuhtgEOAM8CTwGtCjHG6ErwHzgN+Dv3D3+LFdUJ3brFABuwEciMr28GhWRdZi/MPdhHoXdDYF9GrgfaA48JiI/lmPbEzBPz9bAPIK+G8gGHgSqAwYRuXiD+mXij4UywZhjvw3le7Nh73gAqzGPyMoFEdmJeWTbEvh/mDtLxU1SJbdiuUMcAOaIyCfl3bCI/KjT6cIwr3q8G34ozmJeCt9DRPaXZ8N/3DW//cdy+yr/fPEPjgO/AKEiklueDYvIFZ1O9xiQCKSVZ9t2zAFgq4i8Wd4Ni0iyTqfzxuzPk+Xd/t2AyhNTKBQKhcOiphMVCoVC4bCoTkyhUCgUDovVM7EaNWqcuXbtmt3rHLq6upKXV14CGRWHsrN8cQQ7HcHGktizzfZsm6LycHNzy8jNzW0IJZ6JOcouzI6yg6yys3xxBDsdwcaS2LPN9mybovIovlu0mk5UKBQKhcOiOjGFQqFQOCyqE1MoFAqFw2K3nZjRaKxsE8qEsrN8UXaWH45gY0ns2WZ7tu2XX35Bp9NRWFgIwPjx4/Hz8yMgIICUlBTOnDmD0WjEaDTy4IMP8vLLLwPw3//+F71eT3h4OGfOmAVD9u3bh7+/P35+fuzduxeA6OhoGjduzKRJk6zOm5ubS8OGDUlISADgf//7H127dsXb25tVq1ZZ1U1PT6dTp064ublpdhYWFtK/f3+CgoIYP348AAUFBej1ejw8PDhy5MgNr71SOrGiIsdQ/1F2li/KzvLDEWwsiT3bXFG2lWz3Rue5VTvmzJlDp06dALh48SK7du1iy5YtvPPOO8yZM4eGDRuSlJREUlISYWFh9OzZk8LCQubMmcPmzZuJjo7m3XffBeDNN9/kiy++YNmyZbz5plmk5Pnnn2fx4sWlzhsTE8PDDz+svf7www+183zwwQdWdevVq8eGDRvw8flTrH/lypW0b9+exMREcnNz2bNnDy4uLnz99df07du3TNf+l53Y1q1b8fb2JigoiNhY844Ow4YNIzQ0lEGDBjFlyhTS0tIYNGgQAElJSUyZMgWAfv36YTAYCAsLIzs7G4D27dszaNAgZs6cyY4dOzAajfj5+bFw4UIA4uPj6dy5M88++ywFBQU2bbLVMys7lZ32Yqcj2HjkyBHCwsIwGAxMn15a9tMebbZn22z5c+jQoYwZM4bw8HDi4uJ4+umn6dGjB3v37mXcuHEEBgbSs2dPLl26RFpaGkFBQfTt25e4uLi/vH5b7N+/n/vuu49atWoB4OHhgaenJyaTiaysLO655x6r+j/88ANGo5ELFy5w33334ezsTPv27dm2zbxrUWZmJvfffz9NmjQhKysLgAYNGlBSvD8/P5/t27fj5+enlbVs2ZKcnByuXLlC7dq1req7ublRt25dq7Jjx47Rrl07ADp06MDWrVvR6XQ0aHATmV4ioh3ml38yadIkSUxMFBGRoqIi2bFjhzz//PMiIhIdHS2TJ0+W1NRUGThwoIiIJCYmyuTJk0VEJCcnR0REFixYIPPnzxcRkXr16smVK1dERCQsLEwuXbokRUVFEhISInl5eeLr6yuXL1+WEydOSMuWLcUW/fr1E2WnstNe7XQEG/v16ycnTpwQEZH+/fvbtc32bNv1/Pn777/LkCFDZMmSJSIisnDhQhkxYoSIiPz0008ybNgwERH573//K++8846kpqZK27ZtpbCw0Krd48ePi8FgsDoGDBhQ6vzPP/+8nDt3TgwGgxQUFIiIyCuvvCItW7aU5s2bS3p6ulZ3586dEhkZKSIihYWF0rlzZ7ly5YqsW7dOWrduLSIiAQEBWv3i/09MTJSJEydqr+fNmyfffvutTJ48WdavXy8iIitWrJAmTZpI48aNZe3atTb9VdzOlStXyuuvvy4iIgMHDpQZM2Zo9YYMGSIpKSk22/gjLhCRvxYAHjVqFNOnTycmJoZx48Zx7NgxOnbsCEDnzp3Ztm2bVe8sf+RzmEwmXn/9dZKTk8nOzqZPnz4AeHl54e7uDsCePXuIiIgA4Pz585w7dw4nJyc8PDzw8PCgfv36Nm06dOiQslPZabd2OoKNhw4dYvDgwQDanba922zPtpX056lTpzR7LFj+f/ToUW3ar0uXLmzatAkwjwidnZ2t2m3atClJSUl/6Y+UlBRq167Nvffeq5UdPHiQlJQUDh8+zC+//MLEiRP597//DZin75544gkAnJ2diYqK4rHHHqNjx460bm3eTL64/5ycbE/WFRYWsnbtWlasWMGOHTu08mnTpnHgwAEAHnvsMcLCwv7S/l69erFhwwZCQkJo3rz5zY3A/uAvO7G6desyZ84c0tPTee6555gyZQqJiYkA7N69GwBPT0/tgWBycjIAv/76Kzk5Ofzwww8sWLBA+6MWd0jHjh1Zvnw57u7uFBQUUK1aNYqKisjJySEzM5Nz587ZtMnLy4s9e/YoO5WddmlnSezRRi8vL2bNmkWjRo0wmUy4uFj/DNijzfZsW0l/6nQ65s6da9W25f8tW7Zk3bp1AOzatYuWLVuWssPCiRMniIyMtCpr0qSJ1bOp5ORkdu7cSXh4OHv37uWFF17gH//4B3Xq1MHJyYl7772XS5cuafXXrVtntTgjIiKCiIgIkpKS+OmnnwDzs6uTJ0/i5ORUakrQQkZGBidOnCA8PJwjR46wZs0aOnfujKurKzVr1kSn05Gfn2/zs8Vxdnbmk0/MG4GMGDGC7t273/AzJfnLTmzevHl89dVXXLlyhQkTJuDt7c3cuXMJCQmhWbNmNG3alDp16tC0aVNCQ0N54IEHaNiwIV5eXhw5coTw8HBtbrUkU6dOpVevXogI9erVY8WKFUyYMIHAwEA6depEw4YNbdoUHR3NsmXLlJ3KTru0syT2aGN0dDTDhg0jLy+PatWqOYTN9mxbSX+uWLHiuvY/8sgjxMXFERAQQK1atViyZInN0TCUbST2xBNPaCMro9HIZ599houLC7Vq1SIgIIDCwkI++ugjwDxibNasGTVq1NA+P3bsWPbv30+zZs2YM2eO5oenn34agNmzZwMQGxvLnDlzuHjxIpmZmcyePZudO3cCMGXKFPz9/albty6jRo3SnpGNGDECgHfeeYfBgwfzt7/9jUcffZQ9e/bQvXt3ZsyYwX333cfAgQNxcnIiMjJS+7v069ePzZs3k5KSwvjx43n88cev64Nblp2yrECxPDS9k9yMFI2y88YoO8sPR7CxJPZssz3bpqg8istO2fWmmEuXLmXu3Lnaa71ez9tvv12JFtlG2Vm+OLKd9oaj+LI4JW22JxzRn1UdJQBcgSg7yxdHsNMRbCyJPdtsz7YpKg8lAKxQKBR2gr+/f4W1PXr0aOrXr09MTIxWZjQaMRgMGI1GNm7cCMDIkSPx8/PD399fU+mYOnUqer0evV7Phg0bKszG20WNxCoQZWf54gh2OoKNJbFnm+3ZtvLC39+fzZs3V0jbp0+fZu3atRQWFvL8888D5k4sISHBalVqamoqLVq0ICUlhX/+85+sWLFCK8vKyiIiIoIffvihQmy8Fex+JFYyK7+goICQkBACAwN58sknK9s8DWVn+VIV7LQnbuRPk8lEWlqaXdtoL5TVlwEBAfTt25cOHTrwxRdfEBYWhr+/Pzk5OaSlpeHn50dERAQ+Pj6kpqZancOWYsiQIUMwGAwEBQXdkiRVo0aNSpU5OTkRGhpK//79uXjxIgAtWrQAoFq1alq+mqXM1dW1lFqHXWHJehYbih2VRcms/KKiIrl69aqIiEycOLFUFn9loewsX6qCnfZio8iN/blu3TpJTU2tVJurwt+8uC87dOggJpNJFi9eLBERESJiVhJZsWKFpKamSps2baSgoEC2b98uI0eOFBERPz8/ESmtGHLt2jUJDg7WzlmcvLy8UmoelrolWbhwoSxYsEB7feHCBRERWbx4sbzyyitWdfv37y8//vijVdn48eNl8eLFN+2zioRiih12ORIbNWoUy5YtY9CgQezcuZOcnByee+45DAYDy5cvr2zzNJSd5UtVsNOeuJE/09PTK9vEKvE3L+7Ltm3b4uTkROPGjfn73/8OQOPGjcnMzATg4YcfxsXFhQ4dOpTSA7UohgQFBXHmzBnOnz/PkCFDGDRoEJMmTbIaiVWvXl1LKbAcZX1uVa9ePQD69OnDvn37tPJZs2bRtm1bq2d0K1eu5MKFCwwYMOAWvHaHEDsciVnucE6dOiXh4eGyfPlyTf/s//7v/+zm7kzZWb5UBTvtxUaRG/tz4cKFlT4Sqwp/8+K+LK7ZaNEZtIyEUlNT5cEHH5TCwkLZsWOHpqdoGYmFh4drOo75+flSWFgo+fn5IiIyfPhw2b59u2bP7YzELl26JCIi69evlxdeeEFERNauXStPPfWU1Yhvz5492ojQ3qCs2omVha2s/OjoaHbt2oWnp2dlm6eh7CxfqoKd9sSN/NmqVavKNrFK/M1vxpd/+9vf6N27N+fOnSu1tUlJxZDY2FgiIiIwmUzUrl3bassTy0jsRkRHR7NkyRJEhPT0dKKioggODqZGjRq4ublpqvljx46ldu3aBAUF4eXlxbx583j99dfJyMige/fueHp6ltofzF5QqxMrEGVn+eIIdjqCjSWxZ5vt2babJS0tjUmTJrFo0aLKNsXhsfvViQqFQqFQlAU1EqtAlJ3liyPY6Qg2lsSebbZn2xSVhxqJVSBTpkwhISGhss0oM/YsluoovnQUO4tjzzbbs23FuVN2Pv7449r2KfPnz8fHxwcfHx+WLFkCwKVLl+jZsydGo5FZs2Zpn/vPf/5DSEgIRqORU6dOUVhYSP/+/QkKCmL8+PGlznPt2jWee+45goODGTt2LAAvv/wyRqMRo9Go7cpcVFTEa6+9RmhoKE899VQFX/2NUZ2YQqFQ2Cl79+4lNzdXex0WFsb27dv58ccfef/99wFzxzZw4ECSkpL48ccfOX/+PKdOnWLTpk1s2LCBpKQkmjRpwsqVK2nfvj2JiYnk5uaW2p/v448/ZsCAAWzcuFHb42vWrFkkJSXx4Ycf0qNHDwCWL1/Ogw8+SEJCAv/73//ukCeuj111YiNGjODgwYMAfPLJJyxbtozvv/8eo9FIly5d+M9//uMwtllW/VQWVc2XxbXf7NnOysaebbZn24pzO/E5ZcoUkpKSEBFGjRpFcHAwPXr00PLEbpaPP/6Y0aNHa6+bN28OgIuLiyYbdezYMdq1aweY89R27tzJ2rVrMZlMhISEMHbsWEwmk1W9Dh06sHXrVqtzJSUlsXr1aoxGI6tXr7Z6r/iO0PHx8ezfvx+j0ciCBQtu6brKE7vqxPr27aslOH777bf06NGDwMBAkpKS2L59O/PmzVO2lRF7tteebSuOo9hZHHu22Z5tK0552BkfH0/Tpk3ZuHEjY8aM4bPPPrN6f9q0ado0neVYv369VZ3ffvuN+vXrU6dOnVLtf/bZZ9pGkV5eXmzatAmTycQPP/xAVlYWGRkZ5Ofns2HDBmrWrMmqVau0egCJiYmlNuM8evQoPXr0YM2aNbz11lsUFhZq733//feEh4cD5l2d27RpQ0JCAosXLyYjI+OG/qhI7KoTCw4OJjExkbNnz+Lh4YG7uzs///wzoaGhhISEcODAAYexrbK1xpQv7x47i2PPNtuzbeVlp2URysGDB/nyyy8xGo1ER0drGoUWoqKiSiludOvWzarOBx98wEsvvVTKvh07dvDtt98yYcIEAIYPH87WrVt59NFHady4MQ0aNMDT01NTkAkODubgwYP06tWL3NxcQkJCcHV1pUGDBlbtWj7j7u7OAw88oHVOKSkpNGnShJo1a1rVc3FxQa/Xl1IeudPYVbKzi4sLLVq04L333qNPnz4AzJw5k5iYGJo0aULr1q0dxrbKTtSsar5MTk52CDsrG3u22Z5tK87txGdycrKWMBwZGcmrr74KQEFBgdVnpk2bpm2DYmHixIlWHdnx48cZOnQoFy9e5MKFC3Tr1o0HHniAV199ldWrV2tCve7u7ixatAiTycSAAQPQ6/XUq1dPm+r79ddfadGiBc7OztqzrhEjRtC9e3er8/v6+rJ37146depEWloa9evXB8xTiRY/FK/n5eVFcnIyL7744i14ufywq04M4Mknn6Rfv36cPn0aMOt7Pf7443To0MHmsNpebQsJCakEC62pSr587733KsFKx/ubg33bbM+2FedW4nPnzp3ac6qIiAjGjRtHcHAwYF7lFxERoX0mKiqKqKiov7Rh7dq1gPlZVUJCAgaDgZEjR5KRkaE9n/ruu+84cOAAr732GjqdjvHjx1OjRg06dOhAjRo1MBqN3HvvvbzyyiucOnWKgQMH4uTkRGRkJE2aNAHMah2ffPIJEyZMYMiQIWRnZzN8+HCqV68OmKdGi6t1PPfccwwZMoRZs2bRvXt37rvvvlt1c7mg8sQqEGVn+eIIdjqCjSWxZ5vt2TZF5aHyxBQKhUJRJVCdmEKhUCgcFtWJKRQKhcJhUZ2YQqFQKBwW1YkpFAqFwmGxWmLv5uaWodPpGlyvsr3g6upqF4mlN0LZWb44gp2OYGNJ7Nlme7ZNUXm4ublpMiE6tXxVoVAoFI6Kmk5UKBQKhcOiOjGFQqFQOCyqE1MoFAqFw6I6MYVCoVA4LKoTUygUCoXDojoxhUKhUDgsqhNTKBQKhcOiOjGFQqFQOCyqE1MoFAqFw6I6MYVCoVA4LKoTUygUCoXDojoxhUKhUDgsqhNTKBQKhcPy/wEJpJLTEqsFugAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#TODO\n",
"regressor = DecisionTreeRegressor(max_depth = 3)\n",
"tree = regressor.fit(X_train_UsedCars, y_train_UsedCars)\n",
"plot_tree(tree, fontsize = 8)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The two important features are \"year\" (X[1]) and \"mileage\" (X[0])."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Fit larger regression trees and find the optimal parameters by Cross-Validation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this section, we focus on two parameters in the regression tree model: \n",
"\n",
"* `max_depth`: the maximum depth. The possible values are 1,2,...,30.\n",
"* `min_samples_leaf`: the minimum number of samples required in a leaf node. The possible values are 3 or 30.\n",
"\n",
"Let other parameters be default. Use Cross-Validation to find the best parameters that minimize the Root Mean Squared Errors (RMSE) in CV. To do this, use function `cross_val_score` with `scoring='neg_root_mean_squared_error'` to obtain the negative RMSE in CV. Note that the original `cross_val_score` gives the negative RMSEs of each Cross-Validation fold, and thus we need to take average over them. \n",
"\n",
"Plot the CV RMSEs (y-axis) as a function of `max_depth` (x-axis) for each `min_samples_leaf`, which means there should be two curves (one for `min_samples_leaf`= 3 and the other for `min_samples_leaf`= 30) on the same plot. Use legend to make the plot better. \n",
"\n",
"With which parameters does the regression tree achieve the lowest CV RMSE? Report this RMSE. "
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"max_depth = range(1, 31)\n",
"RMSE_30 = [np.mean(cross_val_score(DecisionTreeRegressor(max_depth = m, min_samples_leaf = 30),\n",
" X_train_UsedCars,\n",
" y_train_UsedCars,\n",
" scoring = 'neg_root_mean_squared_error'))\n",
" for m in max_depth]\n",
"RMSE_3 = [np.mean(cross_val_score(DecisionTreeRegressor(max_depth = m, min_samples_leaf = 3),\n",
" X_train_UsedCars,\n",
" y_train_UsedCars,\n",
" scoring = 'neg_root_mean_squared_error'))\n",
" for m in max_depth]"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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Dbat+4xy2hGLRR2JSOooWWSuhnz3Shg1iC8NGrt79NEobxERUMKoUfzDoLE71k9dakVSxcy45JJL9r3fs2cP3bt359xzzwVg9uzZ3HPPPVGFVy933HEHU6dObdJz3nbbbQwZMoRhw4Zx9tlnU1xcDARtFDfccAP9+/dnyJAhvPvuu41yPiWMGsRXfQFA7NhOEUci0nJ16NCBZcuWsWNHMKvC66+/Ts+ePfdtP++885g8ucmmj0s7N998M0uWLGHRokWce+653HXXXQDMmTOHlStXsnLlSqZPn861117bKOdTL6kaFH8cNHbHBneLOBKRJnDjjbBoUeN+5rBh8POf17rbmDFjeOWVVxg3bhzPPvssEydO5G9/+xsATz75JAUFBTz88MNcfvnldOrUiYKCAjZs2MC9997LuHHjDvnZkydPZvbs2eTk5HD22WczdepUXnrpJe6++2527dpFXl4ezzzzDIcffjh33HEHa9asYfXq1XzyySdMmzaNefPmMWfOHHr27MlLL71Eq1at6NOnDxdddBFz5syhXbt2/O53v6N///4HnHfVqlVcd911lJSU0L59ex5//HEGDhzI888/z5133kl2djadO3fmrbfeqiHyuunUaf8ftNu3b9/XLjFr1iwuvfRSzIxTTjmFrVu3Eo/HiSXZKKsaRg3iG6A92+nYo2PUoYi0aBMmTGDGjBmUl5ezZMkSRowYUeO+8Xict99+m5dffrnWmkdpaSkvvvgiy5cvZ8mSJfzkJz8B4PTTT2fevHm89957TJgwgXvvvXffMatWreIvf/kLs2fP5pJLLuGMM85g6dKltGvXjldeeWXffp07d2bp0qVMmjSJG2+88aBzX3311Tz00EMsXLiQqVOn8t3vfheAu+66i7lz57J48WJmz5590HGff/45w4YNq3Z5//33q73OH//4x/Tu3ZtnnnlmXw1j/fr19O69/9FDvXr1Yv369dUeXx+qYdQgvqk1PVqVYFl9og5FJPXqUBNIlSFDhrB27VqeffZZxowZc8h9zz//fLKyshg0aBAbN2485L6dO3embdu2XHnllZx77rn72kWKioq4+OKLicfj7Nq164BxCKNHj6ZVq1YMHjyYvXv3MmrUKAAGDx7M2rVr9+03ceLEfa/f//73DzhvWVkZf//73xk/fv8k2zt37gTgtNNO4/LLL+eiiy7iwgsv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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#TODO\n",
"plt.plot(max_depth, RMSE_30, color = 'red', label = 'Min. samples = 30')\n",
"plt.plot(max_depth, RMSE_3, color = 'blue', label = 'Min. samples = 3')\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"7"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.argmax(RMSE_3)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-4523.4274428918"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.max(RMSE_3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Setting min_samples_leaf = 3 and max_depth = 8 achieves the lowest CV RMSE of 4524.29"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Finally, evaluate the optimal tree on the test set. Report the test RMSE."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4267.127203919875"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#TODO\n",
"regressor = DecisionTreeRegressor(max_depth = 8, min_samples_leaf = 3)\n",
"tree = regressor.fit(X_train_UsedCars, y_train_UsedCars)\n",
"y_pred_UsedCars = tree.predict(X_test_UsedCars)\n",
"mean_squared_error(y_test_UsedCars, y_pred_UsedCars, squared = False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Fit Random Forest\n",
"\n",
"Fit random forests on the training set, using the optimal `min_samples_leaf` and `max_depth` selected above. We use Cross-Validation again to find the optimal `n_estimators` (the number of trees in the forest) in [100, 200, 300, ..., 600]. Similar to before, record the CV RMSEs of each model and draw a plot of CV RMSE versus `n_estimators`. Cross-Validation for Random Forest may take a much longer time. Be patient and wait.\n",
"\n",
"What is the optimal value for `n_estimators`? Report the test RMSE of this optimal model.\n",
"\n",
"How does the random forest perform as compared to the decision tree?"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"#TODO\n",
"num_estimators = range(100, 700, 100)\n",
"RMSE = [np.mean(cross_val_score(RandomForestRegressor(n_estimators = n, max_depth = 8, min_samples_leaf = 3),\n",
" X_train_UsedCars,\n",
" y_train_UsedCars,\n",
" scoring = 'neg_root_mean_squared_error'))\n",
" for n in num_estimators]"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAY8AAAD4CAYAAAAUymoqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAAsTAAALEwEAmpwYAAA2DUlEQVR4nO3deXhU9dXA8e9hF0R2RAUEdwRkSxGtUEUFRCRCBoGpSt1o31qtvrZqrdVW275qtVqr1lptcAVFQFCUzQ13DZiwuqCiJgIigq0Lsp33j3MHhpCQhMzMneV8nmeezNy5d+65mnDmnt8mqopzzjlXE3XCDsA551zm8eThnHOuxjx5OOecqzFPHs4552rMk4dzzrkaqxd2AKnSunVr7dSpU9hhOOdcxliwYMEXqtqmovdyJnl06tSJoqKisMNwzrmMISIfV/ael62cc87VmCcP55xzNebJwznnXI3lTJuHc87tzubNmyktLWXjxo1hh5JyjRo1on379tSvX7/ax3jycM45oLS0lKZNm9KpUydEJOxwUkZVWbduHaWlpXTu3Lnax3nZyjnngI0bN9KqVaucShwAIkKrVq1qfMflycM55wK5ljhi9uS6PXk4l4tWroT77oNt28KOxGUoTx7O5ZKNG+GPf4QuXeD882H27LAjcnHq1q1Lz5496datG6eddhobNmwAYOXKlYgIV1999fZ9v/jiC+rXr88vfvELAN59912OP/54evbsSZcuXRg/fjwAL7zwAs2aNaNnz57bH/Pmzat1rJ48nMsVzzwD3brB734Hw4bBPvvAlClhR+Xi7LXXXhQXF7NkyRJatmzJnXfeuf29zp07M3PmzO2vJ0+eTNeuXbe/vvjii7n00kspLi5m+fLlXHTRRdvf69+/P8XFxdsfJ510Uq1j9eThXLZbuRJGjIChQ6FePZg7FyZPhtNOgyeegC1bwo7QVeCYY46hrKxs++vGjRvTpUuX7dMsPfroo5xxxhnb31+1ahXt27ff/rp79+5Jjc+76jqXrTZuhJtvhj/9CerUgRtugEsvhQYN7P2CAnj4YXjxRTjxxHBjTTeXXALFxYn9zJ494bbbqrXr1q1befbZZznvvPN22j5mzBgmTZrEvvvuS926ddl///357LPPALj00ksZOHAgxx57LIMGDeKcc86hefPmALz00kv07Nlz++dMmTKFgw8+uFaX43cezmWj+BLVaafBO+/AFVfsSBwAQ4ZAkybw+OPhxel28t1339GzZ0/atWvHmjVrOPnkk3d6f8iQIcydO5dJkyYxevTond4755xzWL58OaNGjeKFF16gX79+fP/998CuZavaJg7wOw/nssvKlXZ38cQTcPjhMGcOlPsHaLu99rJS1rRpcMcdULduKiNNb9W8Q0i0WJvHt99+y+DBg7nzzju5+OKLt7/foEED+vTpwy233MKyZcuYMWPGTsfvv//+nHvuuZx77rl069aNJUuWJC1Wv/NwLhvE96KaM8dKVIsWVZ44YiIRWLMGXnklNXG6amncuDG33347t9xyC1vKtUlddtll3HjjjbRs2XKn7bNmzWLz5s0ArF69mnXr1nHAAQckLUZPHs5lumeege7dd1+iqszQodCokZeu0lCvXr046qijmDhx4k7bu3btyrhx43bZf86cOXTr1o0ePXowePBg/vKXv9CuXTtgR5tH7PF4Av5/i6rW+kMyQV5envpiUC6rlC9R/f3vVd9pVGTECHjrLfjkE2tYz1HLly+nS5cuYYcRmoquX0QWqGpeRfvn7m+Kc5kqVqI68sialagqE4lAWRm88UZi43RZzZOHc5lk1qwdJapTT61Ziaoyw4ZB/fo+YNDViCcP5zJBbKDfKadYr6g5c2ygX4cOtf/sZs1g0CBr98iRMnZlcqWMX96eXHfCkoeIXCYiKiKtg9c/FpFFIrJYRF4VkR5x+/5SRJaIyFIRuSRue08ReV1EikWkSET6VnKucSLyfvDYteXIuWyR6BJVZQoK4OOPYcGCxH5uBmnUqBHr1q3LuQQSW8+jUaNGNTouIeM8RKQDMAj4JG7zR8CPVHW9iJwC3AMcLSLdgAuAvsAmYJaIPKWqK4CbgD+o6jMiMjR4fXy5c7UErgXyAAUWiMgMVV2fiGtxLm3MmgUXXQQrVli7xF//mpg7jYrk59vUJVOmQF6F7aNZr3379pSWlrJ27dqwQ0m52EqCNZGoQYK3ApcD02MbVPXVuPdfB2KRdQHeUNVvAUTkRWAkligU2CfYrxnwWQXnGgzMVdUvg+PnAkOAiRXs61zmie9Fddhhux/olygtW8LAgVa6+vOfIQfXtahfv36NVtLLdbUuW4lIPlCmqiW72e084Jng+RKgv4i0EpHGwFAg9nXqEuAvIvIpcDPwmwo+6wDg07jXpcG2imIbH5S/inLx24TLMN9/b/NQxUpU//d/ySlRVaagwO5yFi9OzflcRqtW8hCReUEbRflHPnAVcM1ujj0BSx5XAKjqcuBGYA4wCygGtga7/w9wqap2AC4F7tuzyzKqeo+q5qlqXps2bWrzUc4l16xZNhfV1Vfv6EV15ZXQsGHqYjj9dBvn4QMGXTVUK3mo6kmq2q38A/gQ6AyUiMhKrDS1UETaAYjIUcC9QL6qrov7vPtUtY+qDgDWA+8Fb40DpgbPJ2PtIuWVseNOheCcZRXs51z6+/hjGDnSelHVqZPYXlQ11bYtDBjgycNVS63KVqq6WFXbqmonVe2ElZB6q+pqEemIJYKzVPW9+ONEpG3wsyPW3vFI8NZnwI+C5wOB9ys47WxgkIi0EJEWWEO9L4fmMkusRNWli63ml+oSVWUiEVi+HJYtCzcOl/aSOavuNUAr4K5gcfUtccPcp4hIK2AzcKGqbgi2XwD8TUTqARuB8QAikgf8TFXPV9UvReR64K3gmOtijefOZYRU9qKqqREjLLYpU6ztxblK+NxWzqXKxx9bL6pp06wX1R13hH+nUZHjjoOvv078Ykgu4/jcVs6FKV1LVJWJRKCkxO6MnKuEJw/nkql8L6rly1Pfi6qmRo60nz7XldsNTx67s2mTrfHss426mirfi2r2bOtF1bFj2JFVrWNH6NvXe1253fLkUZWLLoLbbw87CpcpKitRDRoUdmQ1U1AARUU22t25Cnjy2J0GDWDUKJsm4ptvwo7GpbvYdOmZVKKqTEGB/Zw6dff7uZzlyaMq0Sh8+y08+WTYkbh0FV+iEsmsElVlDj4YevXy0pWrlCePqvTvDwccAI88UvW+Lrd8/71NIpjpJarKFBTAa6/ZKoPOlePJoyp16sCYMfDMM7BuXdX7u9wwe7aVqH7728wvUVUmErGfXrpyFfDkUR3RKGzZ4l0XHXzyiX0jHzIke0pUlTn8cOja1UtXrkKePKqjVy/7Q/LSVe6KlaiOOMIaxrOtRFWZSAReegnWrAk7EpdmPHlUh4jdfcyfD6WlYUfjUi2+RDV0aHaWqCoTidi65tOmhR2JSzOePKpr7Fj7I3r00bAjcalSUYnq8cezs0RVma5dbR4uL9m6cjx5VNehh9razl66yn65WqKqiIjdfTz/vHcYcTvx5FET0SgsXAjvvht2JC5ZcrlEVZmCAti6FaZPDzsSl0Y8edTE6NH2TWzixLAjcYnmJarK9eoFnTt7ryu3E08eNbH//nD88Va6ypF1UHLC++/bwkezZlm5KldLVJURscQ6bx5s2BB2NC5NePKoqWjU/rFZsCDsSFyi/Otf1s5RUgK/+U1ul6gqE4nA5s0+TY/bzpNHTRUUQP363nCeLbZsgQcftFHihxwSdjTpq29fWyrXS1cukJDkISKXiYiKSOvg9Y9FZJGILBaRV0WkR9y+vxSRJSKyVEQuidveU0ReF5FiESkSkb6VnGtrsE+xiMxIRPw10qKFNaROmmSNiC6zzZoFq1fDT34SdiTpTcQmf5w9G/7737CjcWmg1slDRDoAg4BP4jZ/BPxIVbsD1wP3BPt2Ay4A+gI9gGEiEvu6dxPwB1XtCVwTvK7Id6raM3gMr238eyQahVWrbNCgy2yFhdCmjd15uN2LRKy8N3Nm2JG4NJCIO49bgcuB7S3Iqvqqqq4PXr4OtA+edwHeUNVvVXUL8CIwMnYYsE/wvBnwWQJiS45hw2Dvvb10lem++MJq+GeeaaVIt3vHHgvt2nnpygG1TB4ikg+UqWrJbnY7D3gmeL4E6C8irUSkMTAU6BC8dwnwFxH5FLgZ+E0ln9coKGu9LiKnVxHf+GDforVr11bvoqqjcWM4/XT7I/r++8R9rkutRx6xRmAvWVVPnTpWunrmGV8czVWdPERkXtBGUf6RD1yFlZgqO/YELHlcAaCqy4EbgTnALKAYiDUc/A9wqap2AC4F7qvkYw9U1TwgCtwmIgdXdn5VvUdV81Q1r02bNlVdas1Eo9ZtcdasxH6uS53CQujdG446KuxIMkckYouj+e99zqsyeajqSararfwD+BDoDJSIyEqsNLVQRNoBiMhRwL1Avqqui/u8+1S1j6oOANYD7wVvjQNiCwdMxtpFKoqnLPj5IfAC0KuG15wYJ50ErVv7gMFMVVxsj3POCTuSzNK/v/3e+1xXOW+Py1aqulhV26pqJ1XtBJQCvVV1tYh0xBLBWar6XvxxItI2+NkRa++INRx8BvwoeD4QeL/8OUWkhYg0DJ63Bn4ILNvTa6iV+vVtffMZM7z3SSaaMMHWqB87NuxIMku9ejBihLUVbdwYdjQuRMka53EN0Aq4K9b1Nu69KSKyDHgSuFBVNwTbLwBuEZES4M/AeAARyRORe4N9ugBFwT7PAzeoajjJA6x09d13PudPptm0CR5+GIYPh1atwo4m8xQUwNdfw5w5YUfiQiSaI9Ns5OXlaVFRUdU71sS2bTbnT9eu8PTTif1slzzTplnD78yZNmbH1czmzbDvvnDaaXD//WFH45JIRBYEbcy78BHmtVGnjpU95syBRPbmcslVWAj77efzV+2p+vXtrm36dLuLcznJk0dtRaM20tz7vmeG1avtLvGss6x+7/ZMJAJffQXPPRd2JC4knjxqq3t3m5HVBwxmhocesmTvvaxq5+SToWlT/9KUwzx51FZsffOXX4aPPw47Grc7qtbLql8/WyXQ7bmGDa3N44knbHJJl3M8eSRCrLvnpEnhxuF2r6gIli71u45EiURsadoXXww7EhcCTx6JcNBB9m3WBwymt8JCaNTIVoR0tTd4sE3V46WrnOTJI1HGjrXFhJYuDTsSV5GNGy25jxwJzZqFHU12aNzYZiOeNs2XJ8hBnjwS5YwzrOuu332kp+nTbS4yL1klViQCa9bAK6+EHYlLMU8eidKuHZx4oiWPHBl4mVEKC20lvBNOCDuS7DJ0qJUCfa6rnOPJI5GiUfjwQ3jzzbAjcfFKS20g57hxULdu2NFkl733hiFDLHls2xZ2NC6FPHkk0ogR1oXRx3yklwcftLtBX7cjOQoKoKwM3ngj7EhcCnnySKRmzawB8dFHve97ulC1ktWAAXBwpUu/uNo47TSbssRLVznFk0eiRaPWgPj882FH4gBefRXef9/vOpKpWTMbcf74497el0M8eSTa0KGwzz5eukoXEyZAkya29opLnkjEZlhYuDDsSFyKePJItL32srEEU6f6Yjlh++YbKyGOGmUNuy558vNtokkfMJgzPHkkw9ix8J//+BofYZs61VZ59JJV8rVsad2gvXSVMzx5JMPAgdC2rZeuwjZhgk0dM2BA2JHkhkgEVqyAxYvDjsSlgCePZKhXz+ZPeuopW/PApd7KlbbWxE9+YjMfu+Q7/XSbZcFLVzkhIclDRC4TERWR1sHrH4vIIhFZLCKvikiPuH1/KSJLRGSpiFwSt72HiLwWHPOkiOxTybmGiMi7IrJCRK5MRPxJEY3C99/blNUu9e6/35LG2WeHHUnuaNvW7vK8y25OqHXyEJEOwCDgk7jNHwE/UtXuwPXAPcG+3YALgL5AD2CYiBwSHHMvcGVwzDTg1xWcqy5wJ3AKcCQwVkSOrO01JMXRR9v65l66Sr1t26xkNXAgHHhg2NHklkgEli2D5cvDjsQlWSLuPG4FLge2t5Kp6ququj54+TrQPnjeBXhDVb9V1S3Ai8DI4L3DgPnB87lAQQXn6gusUNUPVXUTMAnIT8A1JJ6INZzPm2fjPlzqzJ9vZSufBDH1Roywn373kfVqlTxEJB8oU9WS3ex2HvBM8HwJ0F9EWolIY2Ao0CF4byk7EsGouO3xDgA+jXtdGmxLT9GofQt+7LGwI8kthYU21ib2D5lLnf33hx/+0Ns9ckCVyUNE5gVtFOUf+cBVwDW7OfYELHlcAaCqy4EbgTnALKAYiC0EcC7wcxFZADQFNu35ZW0//3gRKRKRorVr19b242qua1c46igvXaXSf/9r/3CNHm3rTbjUKyiwtW1WrAg7EpdEVSYPVT1JVbuVfwAfAp2BEhFZiZWmFopIOwAROQprx8hX1XVxn3efqvZR1QHAeuC9YPs7qjpIVfsAE4EPKginjJ3vSNoH2yqL/R5VzVPVvDZt2lR1qckRjcLrr9tsuy75Jk+Gb7/1klWYCoKKs5eustoel61UdbGqtlXVTqraCSsh9VbV1SLSEZgKnKWq78UfJyJtg58dsfaOR8ptrwNcDdxdwWnfAg4Vkc4i0gAYA8zY02tIiTFj7Kevb54ahYVw+OG2LLALR8eO8IMfeOkqyyVrnMc1QCvgLhEpFpGiuPemiMgy4EngQlXdEGwfKyLvAe8AnwGFACKyv4g8DRA0sv8CmA0sBx5T1fRe9/XAA60G/PDDPvI22d5/H15+2cd2pINIBIqKbL4rl5VEc+QftLy8PC0qKqp6x2S46y648EKrAx91VDgx5ILf/hZuuAE+/dQabl14PvgADjkEbrkF/vd/w47G7SERWaCqeRW95yPMU2HUKFvBztc3T56tW+GBB2DwYE8c6eDgg6FnTy9dZTFPHqnQpg0MGmTJw5fqTI5nn7XlZr2hPH1EIvDaa7bKoMs6njxSZexYq/++9lrYkWSnwkJo0cJWtXPpIdbraurUcONwSeHJI1VOPx0aNfIxH8mwYQNMm2bdohs1CjsaF3PEETbWybvsZiVPHqnStCkMH27jEDZvDjua7DJpkk1C6SWr9BOJ2HQxPkVP1vHkkUrRKKxda/V5lziFhdCtG/TuHXYkrryCAuui7rNLZx1PHqk0ZAg0b+6lq0RatgzefNPuOnxsR/rp1g0OO8x7XWUhTx6p1LChfRObNs2m0HC1N2GCLb515plhR+IqImK/888/D+vWVb2/yxiePFItGoWvv7ZVBl3tbNkCDz4Ip55qCxG59BSJ2Dic6dPDjsQlkCePVPvRj2C//XzAYCLMmgWrV9t0JC599eoFnTp56SrLePJItbp1bbLEp5+G9eur3t9VbsIEG4B56qlhR+J2R8TuPubNs27VLit48gjD2LGwaZMPnqqNL76AGTOsraN+/bCjcVWJRKyL+pNPhh2JSxBPHmHIy7NJ47zX1Z575BH7x8hLVpnhBz+A9u29dJVFPHmEQcQazp9/HlatCjuazDRhgo3r8FmKM0OdOtbravZsW+3RZTxPHmEZO9YGTz36aNiRZJ6SEnj7bR9RnmkKCmwmgJkzw47EJYAnj7AccYR9c/bSVc0VFkKDBpaAXeY49lho187nusoSnjzCNHYsvPWWrYDnqmfTJluVcfhwaNUq7GhcTdStCyNHWk/Db74JOxpXS548wjRmjLV/+JiP6ps503paeckqMxUU2OwKs2aFHYmrJU8eYWrfHgYMsNJVjiwHXGuFhTbIctCgsCNxe2LAAGjd2ktXWSAhyUNELhMRFZHWwesfi8giEVksIq+KSI+4fX8pIktEZKmIXBK3vYeIvBYc86SI7FPJuVYG+xSLSEiLkidQNArvvgvFxWFHkv5Wr7aSx1ln2XxWLvPUq2dr2zz5JGzcGHY02W/9+qRNh1/r5CEiHYBBwCdxmz8CfqSq3YHrgXuCfbsBFwB9gR7AMBE5JDjmXuDK4JhpwK93c9oTVLVnZQuzZ5SCAvuD8obzqj38sM2R5CWrzBaJ2Pxuc+eGHUn2u+gimx4mCW1MibjzuBW4HNhed1HVV1U1NvfG60D74HkX4A1V/VZVtwAvAiOD9w4D5gfP5wIFCYgt/bVqZVO1T5rk65vvjqqVrPr1s55qLnOdcIItTeADBpNr+nT7wjV+PDRpkvCPr1XyEJF8oExVS3az23nAM8HzJUB/EWklIo2BoUCH4L2lQH7wfFTc9vIUmCMiC0RkfBXxjReRIhEpWrt2bTWuKCTRKJSWwssvhx1J+ioqgqVLfUR5NmjQAPLzbXqZTZvCjiY7rVsHP/0p9OgBV12VlFNUmTxEZF7QRlH+kQ9cBVyzm2NPwJLHFQCquhy4EZgDzAKKga3B7ucCPxeRBUBToLLfquNUtTdwCnChiAyo7Pyqeo+q5qlqXps2baq61PAMHw6NG3vpancmTLD1yceMCTsSlwiRiE2S+NxzYUeSnS6+2BLIhAmWrJOgyuShqieparfyD+BDoDNQIiIrsdLUQhFpByAiR2HtGPmqui7u8+5T1T6qOgBYD7wXbH9HVQepah9gIvBBJfGUBT8/x9pG+u7pxaeNJk2sEXHyZP8mVpGNGy2xjhwJzZqFHY1LhJNPhqZNvXSVDNOm2d/L734HPXsm7TR7XLZS1cWq2lZVO6lqJ6AU6K2qq0WkIzAVOEtV34s/TkTaBj87Yu0dj5TbXge4Gri7/DlFpImINI09xxrql+zpNaSVsWPhyy9hzpywI0k/06fbt1RvKM8eDRvCaafZ2uZbtoQdTfb44gv42c+skfw3v0nqqZI1zuMaoBVwVwVdaqeIyDLgSeBCVd0QbB8rIu8B7wCfAYUAIrK/iDwd7LMv8LKIlABvAjNVNTtGGw0aBC1beumqIoWF0KGDNbS67FFQYKWVF18MO5LscdFF1j13woSkL1WQsM7ywd1H7Pn5wPmV7Ne/ku1/A/5WwfbPsIZ1VPVDrItv9mnQAEaNsmVVv/kmKb0jMlJZmXXpvOoqm97CZY8hQ6ytb8oUOPHEsKPJfFOnWq/N665LyWzTPsI8nUSjNnXDjBlhR5I+HnjAujB7L6vs07ixrQI5daqN33F7bu1aK1f17g1XXpmSU3rySCfHHWdTlnjpysTGdvTvDwcfHHY0LhkKCmwE9CuvhB1JZvvFL6xdMAXlqhhPHumkTh3rijprltWCc91rr9mMw95Qnr2GDrUu2D7X1Z57/HF47DG49lro3j1lp/XkkW6iUet94n9MdtfRpIm1Bbns1LQpDB5sv+8+w0LNrV0LP/859OkDV1yR0lN78kg3PXva9Bu5Xrr65htbZXHUKNh777CjcckUiVjHiDffDDuSzHPhhfDVV1auSvFkoZ480k1sffP58+HTT8OOJjxTp9pa195Qnv2GDbM6vQ8YrJnHHrOBxb//PXTrlvLTe/JIR76+uX2TOuggW//BZbfmzW3E+eOP+7o21fX553bX8YMfwK93NwF58njySEeHHGK/FLm6wuDKlTbn0U9+YndiLvtFIvDxx7BwYdiRpD9Va+f4z39CKVfFePJIV9Go/SG9807YkaTe/fdb0jj77LAjcakyfLgNAvXSVdUee8w6GPzhD3DkkaGF4ckjXY0enZvrm2/bZslj4EA48MCwo3Gp0qqV/T/30tXurVlj5aq+feFXvwo1FE8e6Wq//Wwup1xb33z+fPjoIx/bkYsKCmDFCli8OOxI0pMq/M//2CqMIZarYjx5pLNo1P6YijJ/qfZqKyyEffaBESPCjsSl2umn20BZH+NUsUmTbLr1666DLl3CjsaTR1obOdImTMyV0tV//2tli9Gjbd4jl1v23dd613m7x65Wr7YpSI4+Gi67LOxoAE8e6a1FC5u+YdKk3Jg4bvJkmxjSS1a5q6AAli2D5cvDjiR9xMpV33xj5ao0mV3ak0e6i0Zh1arcWPOgsBAOPxz69Qs7EheWkSPtp5eudpg40RbN+uMfbfaJNOHJI90NG2bTc2T7dCXvvw8vv+xjO3Ld/vvDscd66Spm1SorVx1zDFx6adjR7MSTR7rbay9rPJ4yBb7/Puxokuf++62x1Md2uEgESkqss0guU7U1Or77zu7K06RcFePJIxNEozZX/6zsWHF3F1u3WvIYPNi+ebrc5qUr8/DDtjDcH/9o5dw0k7DkISKXiYiKSOvgdb6ILIqtYS4ix8XtO05E3g8e4+K29xGRxSKyQkRuF9m1fiHm9mCfRSLSO1HXkLZOPBHatMne0tWzz0JpqTeUO3PggTY9Ty6XrlatgosvthLeJZeEHU2FEpI8RKQDMAj4JG7zs0APVe0JnAvcG+zbErgWOBroC1wrIi2CY/4BXAAcGjyGVHC6U+LeHx8ck93q17epyWfMsO6s2WbCBOtZdtppYUfi0kUkYuObPv447EhSTxV++tO0LVfFJOrO41bgcmD7UGhV/Vp1+9DoJnHvDQbmquqXqroemAsMEZH9gH1U9fXguAeA0ys4Vz7wgJrXgebBsdktGoWNG63XRTbZsMEGPkWjtqKcc2BddiE3S1cPPghPPgl//jMcdljY0VSq1slDRPKBMlUtqeC9ESLyDjATu/sAOACIX6iiNNh2QPC8/PbyKju+otjGByWzorVr11bzitLUMcfY7Xy2DRicNMmSopesXLyDD7aF0XIteXz2Gfzyl/DDH1rZKo1VK3mIyDwRWVLBIx+4CrimouNUdZqqHoHdQVyfsKirSVXvUdU8Vc1r06ZNqk+fWHXq2Dofc+bY0pPZorDQFrLpnf1NV66GCgrg1VdtlcFcoArjx1uvyjQuV8VUK3mo6kmq2q38A/gQ6AyUiMhKoD2wUETalTt+PnBQ0JheBnSIe7t9sK0seF5+e3mVHZ/9olHrmTR5ctiRJMayZbb06Dnn+NgOt6tIxH5OmxZuHKnywAMwcyb83//BoYeGHU2ValW2UtXFqtpWVTupaieshNRbVVeLyCGx3lJBj6iGwDpgNjBIRFoEDeWDgNmqugr4j4j0C447G5hewWlnAGcHva76AV8Fx2a/7t2ha9fs6XUVmxn0zDPDjsSloyOOsN/3XOh1VVZm5ar+/eGii8KOplqSOc6jAFgiIsXAncDooJH7S6yE9VbwuC7YBvBzrFfWCuAD4BkAEfmZiPws2Odp7I5nBfCv4JjcEY3CK69kfi+ULVusYXDoUGjbNuxoXLoqKLBp+tesCTuS5FGFCy6ATZvg3/+2EnUmUNWcePTp00ezwocfqoLqDTeEHUntPPWUXce0aWFH4tLZokX2e3L33WFHkjz//rdd4+23hx3JLoAireTfVNEcWWgoLy9Pi7JlXYxjj7UZNkt26eCWOSIR+0ZZVmbjWJyriKqNrj7wQJg7N+xoEq+01EpzvXrBc8+l3V2HiCxQ1byK3kuvSF31jB0LixbBkiVhR7JnvvjCBjyeeaYnDrd7IvZF4/nnYd26sKNJrFi5asuWzCpXBTIrWmfOOMN+0TJ1zMfEibB5s82g61xVIhHrZTi9ov4zGezf/7b56m68EQ46KOxoaszLVplq8GCbxvyDDzKvm2vv3hbzggVhR+Iygar949qlCzz9dNjRJMann+4Y3/Tss2l71+Flq2wUjcJHH8Ebb4QdSc2UlMDbb/uIcld9sdLVvHk2nU2mi5Wrtm6F++5L28RRlcyM2tkaHw0bZt6Yj8JCW5d97NiwI3GZpKDASp1PPhl2JLV3330wezbcdFNGlqtiPHlkqn32sVUGH33UGtwywaZNtkbB8OHQqlXY0bhM0rcvtG+f+XNdffIJ/O//wgkn2EJPGcyTRyaLRuHzz60nSiaYOdN6WnnJytVUnTq2SNSsWZm7LIEqnH8+bNuW0eWqmMyOPtcNHWp3IJlSuioshP32g0GDwo7EZaJIxCYNnDkz7Ej2zL/+ZWNVbr4ZOncOO5pa8+SRyRo1slrwlCm2cEw6W7PGesqcdZbNZ+VcTR17LLRrl5mlq48/hssus1VBf/rTsKNJCE8emW7sWLuNT/cujA89ZL1LvGTl9lTdutZR5Omn4dtvw46m+mLlKrByVaZ1ra+EJ49Md8IJsO++6T1gUNVKVv362Uypzu2pSMQSx6xZYUdSfffcY92Mb77ZplnJEp48Ml29ejB6NDz1FHz1VdjRVKyoCJYu9RHlrvYGDLCeepkyTfvKlfCrX8FJJ9lCT1nEk0c2iEatITFdF82ZMMHaZ8aMCTsSl+nq1bPS1VNP2fLF6WzbNjjvPCtT3Xtv1pSrYjx5ZIO+fW2wUTr2utq40eIaORKaNQs7GpcNIhFr50v3WXb/+U+bKfeWW7KqXBXjySMbiFjD+bPPwurVYUezs+nTbUoJbyh3iXLCCdC8eXqXrj76CH79a+uWHmsszzKePLJFNGq3yem2vvmECdChg/3BO5cIDRpAfr5N679pU9jR7GrbNjj3XBsE+K9/ZV25KsaTR7Y48kjo0SO9SldlZTBnDowbZ90snUuUggK7o33uubAj2dU//gEvvAC33godO4YdTdIkLHmIyGUioiLSOnidLyKLRKRYRIpE5Li4fceJyPvBY1zc9j4islhEVojI7SK7pmwROV5Evgo+t1hErknUNWS8aBRefx0+/DDsSMwDD9i3MO9l5RLt5JOhadP0GzD44Ydw+eUwZIjdfWSxhCQPEekADAI+idv8LNBDVXsC5wL3Bvu2BK4Fjgb6AteKSIvgmH8AFwCHBo8hlZzyJVXtGTyuS8Q1ZIVYb6Z0GPOhaiWr/v3h4IPDjsZlm0aNbGLQadPSZ2LQWLmqXr2sLlfFJOrO41bgcmD7ylKq+rXuWGmqSdx7g4G5qvqlqq4H5gJDRGQ/YB9VfT047gHg9ATFlxs6doTjjrPSVdiLfL32Grz3njeUu+SJRGxp2hdfDDsSc9ddFsutt9oMwFmu1slDRPKBMlUtqeC9ESLyDjATu/sAOAD4NG630mDbAcHz8tsrcoyIlIjIMyLSdTexjQ9KZkVr166t/kVlsmgUli2DxYvDjaOwEJo0gVGjwo3DZa8hQ6Bx4/QoXX3wAVxxBZxySs58YapW8hCReSKypIJHPnAVUGG7g6pOU9UjsDuI6xMU80LgQFXtAfwdeKKyHVX1HlXNU9W8Nm3aJOj0aW7UKLttDrPh/JtvbJ2RSAT23ju8OFx2a9zYZpaeOtXmTQtLrFxVv35OlKtiqpU8VPUkVe1W/gF8CHQGSkRkJdAeWCgi7codPx84KGhMLwM6xL3dPthWFjwvv718LP9R1a+D508D9WON9A5o3dr6lk+caL/UYZg2zQZx5cg3MBeiSMRmbH711fBiuOMOmD8fbrsNDqisWJJ9alW2UtXFqtpWVTupaies1NRbVVeLyCGx3lIi0htoCKwDZgODRKRF0FA+CJitqquA/4hIv+C4s4Hp5c8pIu3iPrdvcA3ranMdWWfsWFuxLKw/qMJCG/E+YEA453e5Y+hQW445rAGDK1bAlVfCqadal/QcksxxHgXAEhEpBu4ERqv5EithvRU8rgu2Afwc65W1AvgAeAZARH4mIrE1GyPB55YAtwNj4hrmHdgAqr32CqfX1cqV1vf+Jz/Jmdt3F6KmTa3tY8qU1N9pb9tmd9cNGthUJDn2+y658u9uXl6eFhUVhR1G6owZY9OVfPaZ1WJT5brr4Pe/t+kZsnA+H5eGHnrIFhl77TWb9j9VbrsNLr0U7r8fzj47dedNIRFZoKp5Fb3nI8yzVTRq64XPm5e6c27bZmM7Bg70xOFSZ9gw+4KUytLV++/DVVfZuc86K3XnTSOePLLV4ME2eVwqe13Nn293HN5Q7lKpeXMbcT5lSmrGN8VWxGzYMCfLVTGePLJVw4bWE+WJJ1K3ZGdhIeyzj6234FwqFRRYe9vChck/1+23wyuv2M/990/++dKUJ49sFo3C11/bwjnJ9t//Wtlg9Gjrf+9cKuXn2+SbyR4w+O67Vq4aPhzOPDO550pznjyy2YAB9s0oFaWryZPtDsdLVi4MrVrZtP+TJyevdBUrV+21F9x9d86Wq2I8eWSzunWt19XTT8P69ck9V2EhHH54anu7OBcvErFxF8mamue226xH19//Dvvtl5xzZBBPHtlu7FjYvDm5t/MrVsDLL/vYDheu00+3BZiS8bv+7rtw9dVWHotGE//5GciTR7br0wcOPTS5AwYnTLA/2izt6+4yxL772hIAie6yu3WrfTFq3NjLVXE8eWQ7Efum9PzzNmAw0bZutUFSgwfndM8TlyYiEZtVevnyxH3mX/9qi6zdcQe0a1f1/jnCk0cuGDvWGhEffTTxn/3cc1Ba6qsFuvQQ6yaeqNLV8uXwu9/Z58YWW3OAJ4/ccPjh0Lt3cnpdFRZCixbWddG5sB1wABx7bGJKV7HeVXvvbeuSe7lqJ548ckU0CkVFNq1ComzYYNOvR6O2LKhz6SASgZIS68hRG7fcAm+8YeWqffdNTGxZxJNHrhg92r45JbLhfNIk2LjRx3a49DJypP2sTelq2TK45hobuT56dGLiyjI+q24uOeEEWLXK6riJuAXv189WDVy0yG/pXXrp29d+vvlmzY/dssVKXx99BEuXQtu2iY0tg/isus5Eo9Zf/e23a/9Zy5fbLf0553jicOmnoADeegs+/rjmx958sx175505nTiq4skjlxQU2NTViShdFRbaWuk5Pr+PS1MFBfazpqWrpUvh2mut3eSMMxIfVxbx5JFLWra0Vddqu775li3w4IO2BKh/M3Pp6JBDoEePmiWPLVusy/k++9hdh9stTx65JhqFsjJ46aU9/4zZs2H1am8od+ktEoFXX7Xf9+q46SbrkXjXXf6lqBoSljxE5DIRURFpHbzOF5FFIlIsIkUiclzcvuNE5P3gMS5u+59E5FMR+bqKc/1GRFaIyLsiMjhR15ATTjsNmjSp3ZiPwkJo0wZOPTVxcTmXaJGI/Zw2rep9lyyx5ZPPOANGjUpqWNkiIclDRDoAg4BP4jY/C/RQ1Z7AucC9wb4tgWuBo4G+wLUi0iI45slg2+7OdSQwBugKDAHuEpG6ibiOnNCkiU3uNnkybNpU8+O/+AJmzLC2jlSuje5cTR1xBBx5ZNUDBjdvtnJV8+Y2psNVS6LuPG4FLge29/tV1a91Rz/gJnHvDQbmquqXqroemIslAVT1dVVdVcW58oFJqvq9qn4ErKCKhOPKiUZtivY5c2p+7MSJO/7YnEt3kYiVaNesqXyfm26CBQtsFHmbNqmLLcPVOnmISD5QpqolFbw3QkTeAWZidx8ABwCfxu1WGmyrrtoe7wYNssVz9qR0VVhoU50cdVTi43Iu0QoKrHPIE09U/P7ixfCHP9i8VbEeWq5aqpU8RGSeiCyp4JEPXAVcU9FxqjpNVY8ATgeuT1jU1SQi44P2lqK1a9em+vTpq359q+tOn27L1FZXSYmNEfGGcpcpune3JQkqKl1t3gzjxtncbH//e+pjy3DVSh6qepKqdiv/AD4EOgMlIrISaA8sFJF25Y6fDxwUNKaXAR3i3m4fbKuuah+vqveoap6q5rXx29GdRaO2bOyMGdU/ZsIEaNDAZul1LhOIWOnq+edh3bqd37vhBvsydPfd0Lp1OPFlsFqVrVR1saq2VdVOqtoJKyH1VtXVInKIiA09FpHeQENgHTAbGCQiLYKG8kHBtuqaAYwRkYYi0hk4FNiDOQhy3A9/CO3bV3/A4KZN8NBDNntuq1bJjc25RCoosBlyp0/fsW3RIrj+evsiFJvG3dVIMsd5FABLRKQYuBMYreZLrIT1VvC4LtiGiNwkIqVAYxEpFZHfB9uHi8h1AKq6FHgMWAbMAi5U1a1JvI7sVKeO/eHMmrXrN7KKzJxpPa28ZOUyTe/e0KnTjgGDsQ4fLVt6uaoWfGLEXFZcDL162W37T3+6+33z822+n08+sWlJnMskv/oV3H47fP65/bz2WmtEz88PO7K05hMjuor16AFdulTd62rNGrvzOOssTxwuM0Uidsfxxz9auerHP/bEUUuePHKZiJWu5s+HTz+tfL+HHtqxqppzmahvX1tl8JZbrHH89tvDjijjefLIdbGeU5Wtb65qYzv69bMRu85lojp1dozj+Oc/rb3D1Yonj1x3yCH2rayy0tWCBTZNtY8od5nummus/Dp8eNiRZAVPHs7GfLz9ti3wVF5hoa1PPmZM6uNyLpFatbJlBFxCePJwNpNonTq7jvnYuNHuSEaOhGbNwonNOZeWPHk42G8/W9984kRr44iZMQM2bPCSlXNuF548nIlGYcUKWwwnprAQOnSAgQPDi8s5l5Y8eTgzcqTNWxVrOC8rsynbx42Dur5cinNuZ548nGne3FYGnDTJxnQ88IBNZe0lK+dcBTx5uB3GjrW1yV94wWbQ7d8fDj447Kicc2nIk4fbYdgw2Htvmwfovfd8RLlzrlKePNwOe+1lbR/FxbbW+ahRYUfknEtTnjzczqJR+xmJ2F2Ic85VwKdIdTs78US4/HI4//ywI3HOpTFPHm5n9erBjTeGHYVzLs152co551yNefJwzjlXY548nHPO1VjCkoeIXCYiKiKtg9f5IrJIRIpFpEhEjovbd5yIvB88xsVt/5OIfCoiX+/mPJ1E5Lvgc4tF5O5EXYNzzrnqSUiDuYh0AAYBn8RtfhaYoaoqIkcBjwFHiEhL4FogD1BggYjMUNX1wJPAHcD7VZzyA1XtmYjYnXPO1Vyi7jxuBS7HkgEAqvq16vb5vZvEvTcYmKuqXwYJYy4wJDjmdVVdlaCYnHPOJUmtk4eI5ANlqlpSwXsjROQdYCZwbrD5AODTuN1Kg2010VlE3haRF0Wk/25iGx+UzIrWrl1bw1M455yrTLXKViIyD2hXwVu/Ba7CSla7UNVpwDQRGQBcD5y0h3HGWwV0VNV1ItIHeEJEuqrqfyo4/z3APQB5eXla/n3nnHN7plrJQ1Ur/EdfRLoDnYESEQFoDywUkb6qujru+PkiclDQmF4GHB/3Me2BF6obsKp+D3wfPF8gIh8AhwFFuztuwYIFX4jIx9U9TzmtgS/28NhM5dec/XLtesGvuaYOrOwNUU3cF3IRWQnkqeoXInII1rCtItIbawxvD7QAFgC9g8MWAn1U9cu4z/laVSucWElE2gBfqupWETkIeAnoHn98oolIkarmJevz05Ffc/bLtesFv+ZESuY4jwJgiYgUA3cCo9V8iZWw3goe18X+4ReRm0SkFGgsIqUi8vtg+3ARuS743AHAouBzHwd+lszE4ZxzblcJvfPIVv5tJTfk2jXn2vWCX3Mi+Qjz6rkn7ABC4Nec/XLtesGvOWH8zsM551yN+Z2Hc865GvPk4ZxzrsZyPnmIyL9F5HMRWRK3raWIzA0mbpwrIi2C7SIit4vIimDSx96Vf3L6EpEOIvK8iCwTkaUi8stge9Zet4g0EpE3RaQkuOY/BNs7i8gbwbU9KiINgu0Ng9crgvc7hXoBe0hE6gazMTwVvM7q6wUbMiAii4OJU4uCbdn8u91cRB4XkXdEZLmIHJOK68355AFMIJhbK86VwLOqeig2weOVwfZTgEODx3jgHymKMdG2AJep6pFAP+BCETmS7L7u74GBqtoD6AkMEZF+wI3Arap6CLAeOC/Y/zxgfbD91mC/TPRLYHnc62y/3pgTVLVnXC+jbP7d/hswS1WPAHpg/7+Tf72qmvMPoBOwJO71u8B+wfP9gHeD5/8Exla0XyY/gOnAybly3UBjbHDq0djI23rB9mOA2cHz2cAxwfN6wX4Sduw1vM72wT8cA4GnAMnm64277pVA63LbsvJ3G2gGfFT+/1UqrtfvPCq2r+6Y3Xc1sG/wPBGTOqaVoDzRC3iDLL/uoIRTDHyOzeb8AbBBVbcEu8Rf1/ZrDt7/CmiV0oBr7zZstuttwetWZPf1xigwR0QWiMj4YFu2/m53BtYChUF58l4RaUIKrteTRxXU0nNW9mcWkb2BKcAlWm5iyWy8blXdqrYOTHugL3BEuBElj4gMAz5X1QVhxxKC41S1N1aiuVBsYtbtsux3ux421dM/VLUX8A07SlRA8q7Xk0fF1ojIfgDBz8+D7WVAh7j92gfbMo6I1McSx8OqOjXYnPXXDaCqG4DnsbJNcxGJTRAaf13brzl4vxmwLrWR1soPgeFi881NwkpXfyN7r3c7VS0Lfn4OTMO+KGTr73YpUKqqbwSvH8eSSdKv15NHxWYAseVxx2FtArHtZwc9FvoBX2kGLl4lIgLcByxX1b/GvZW11y0ibUSkefB8L6yNZzmWRCLBbuWvOfbfIgI8F3yDywiq+htVba+qnYAxWPw/JkuvN0ZEmohI09hzbLmIJWTp77ba7OWfisjhwaYTgWWk4nrDbvAJ+wFMxNYI2Yxl8fOwWu+z2HK484CWwb6CTfL4AbAYm0E49GvYg2s+DruNXQQUB4+h2XzdwFHA28E1LwGuCbYfBLwJrAAmAw2D7Y2C1yuC9w8K+xpqce3HA0/lwvUG11cSPJYCvw22Z/Pvdk9sSYpFwBPYzOVJv16fnsQ551yNednKOedcjXnycM45V2OePJxzztWYJw/nnHM15snDOedcjXnycM45V2OePJxzztXY/wNN7k3nvzMQbQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#TODO\n",
"plt.plot(num_estimators, RMSE, color = 'red', label = 'RMSE')\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.argmax(RMSE)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-4297.726913286067"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.max(RMSE)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Setting n_estimators = 400 achieves the lowest RMSE of 4299.36"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4124.667841213942"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"regressor = RandomForestRegressor(n_estimators = 400, max_depth = 8, min_samples_leaf = 3)\n",
"forest = regressor.fit(X_train_UsedCars, y_train_UsedCars)\n",
"y_pred_UsedCars = forest.predict(X_test_UsedCars)\n",
"mean_squared_error(y_test_UsedCars, y_pred_UsedCars, squared = False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The random forest achieves slightly lower RMSE than the decision tree, so it's a bit better."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Support Vector Machine"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this exercise, we simulate a dataset containing two circles with the same center and different sizes and then split it to training and test sets. "
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x2a98e9f26e0>"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"from sklearn.svm import SVC\n",
"from sklearn.datasets import make_circles\n",
"\n",
"X_circle, y_circle = make_circles(500, factor=.6, noise=.1, random_state=0)\n",
"\n",
"X_train_circle, X_test_circle, y_train_circle, y_test_circle \\\n",
" = train_test_split(X_circle, y_circle, test_size=0.2, random_state=10)\n",
"\n",
"plt.scatter(X_train_circle[:, 0], X_train_circle[:, 1], c=y_train_circle, s=5, cmap=plt.cm.RdYlBu)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we are going to fit Support Vector Machines to this dataset and use Cross-Validation to find the optimal parameters. In this problem, we focus on the following two parameters: \n",
"* C: Regularization parameter. The possible C values are 20 positive numbers evenly distributed on \\[$10^{-4}$, $10^4$\\]. \n",
"* kernel: The kernel type to be used in the algorithm. Possible options are 'linear', 'rbf' and 'poly'.\n",
"\n",
"Leave other parameters as default. For each pair of parameters, use `cross_val_score` to obtain the CV score. Note that the original `cross_val_score` gives the CV scores of each Cross-Validation fold, and thus we need to take average over them. Plot all of the CV scores as a function of C for each kernel, which means there should be three curves on the same figure, each for one kernel. Remember to use legend. "
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"kernels = ['linear', 'rbf', 'poly']\n",
"\n",
"Cs = 10 ** np.linspace(-4, 4, 20)\n",
"\n",
"cv_scores = [[np.mean(cross_val_score(SVC(C = c, kernel = k),\n",
" X_train_circle,\n",
" y_train_circle,\n",
" scoring = 'neg_root_mean_squared_error'))\n",
" for c in Cs] for k in kernels]"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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9tkMGzaMWbNmccEFFzB69Gi6d+/OlClTKpf37LPPMnjwYAYMGMC4cePYvn17Sj8rneGLSN195ztQXJzaZebnw913R17M3r17efXVV3n66af58Y9/zOLFi3nooYdo06YNr732Grt372bIkCGMHDmSk046iT//+c+0bt2ajRs3UlhYyJgxYwAoKSlh9uzZFBYWJl3P9u3bueSSS5gwYQITJkzgxhtv5Oyzz+bhhx9my5YtDBo0iOHDhwPwr3/9ixUrVtC+fXtmzZpFcXExr7/+Os2bN6dHjx5ce+21tGjRgltvvZXFixfTsmVLbr/9du666y5++MMfRv5MKijwRSSjXHDBBQCcfvrprF69GgjOnFesWMHcuXMB+OyzzygpKaFz587ceOONvPTSSzRp0oS1a9eyfv16ALp27Vpt2AOcf/75TJkyhfHjx1euY8GCBZXfNnbt2sWHH34IwIgRI2jfvn3le4cNG0abNm0A6NWrFx988AFbtmzhrbfeYsiQIQB8/vnnDB48OFUfC6DAF5H6SMGZ+OHSvHlzALKysti7dy8Q9MPfe++9jBo1ar+6s2bNorS0lGXLlpGdnU23bt0q721v2bLlIdczZMgQnnnmGS677DLMDHfnySefpEePHvvVW7p06UHLqmhjYjvdnREjRvDYY4/Vb8NrIVIfvpm1N7NFZlYSvrY7RN3WZrbGzH4TZZ0iInU1atQo7r//fvbs2QPAe++9x44dO/jss8/o0KED2dnZPP/883zwwQe1XuZPfvIT2rVrxze/+c3Kddx77724OwCvv/56ndpYWFjIK6+8wsqVKwHYsWMH7733Xp2WUZOoF22nAkvcvTuwJJyuzi3ASxHXJyIxtnPnTjp37lw53HXXXbV636RJk+jVqxcDBgygT58+XHXVVezdu5fx48dTVFRE3759efTRRznttNPq1J5f//rXlJWVMWXKFG666Sb27NlDXl4evXv35qabbqrTso477jhmzZrFpZdeSl5eHoMHD+add96p0zJqYhVHo3q92exd4Cx3X2dmnYAX3L1HknqnA9cDzwAF7v6tmpZdUFDgqbjvVERS4+2336Znz57pboYkSLZPzGyZuxckqx/1DL+ju68Lxz8BOh5YwcyaAHcC/13TwsxsspkVmVlRaWlpxKaJiEiiGi/amtli4Pgks6YlTri7m1myrwvXAE+7+5qa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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#TODO\n",
"plt.plot(Cs, cv_scores[0], color = 'red', label = 'Linear kernel')\n",
"plt.plot(Cs, cv_scores[1], color = 'blue', label = 'RBF kernel')\n",
"plt.plot(Cs, cv_scores[2], color = 'green', label = 'Poly kernel')\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Based on the CV scores, which parameters are the best? Use the best model to do prediction on the test set and report the test accuarcy."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"78.47599703514607"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"best_C = Cs[np.argmax(cv_scores[1])]\n",
"best_C"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It's clear from the plots that the RBF kernel is best. Choosing C to be approximately 78.48 minimizes RMSE"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.1414213562373095"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"machine = SVC(C = best_C, kernel = 'rbf')\n",
"machine_fit = machine.fit(X_train_circle, y_train_circle)\n",
"y_pred_circle = machine_fit.predict(X_test_circle)\n",
"mean_squared_error(y_test_circle, y_pred_circle, squared = False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Use the following function to show the decision boundary of the best SVC model."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"def plot_decision_boundary(model, X, y):\n",
" x_min, x_max = X[:, 0].min() - 0.1, X[:, 0].max() + 0.1\n",
" y_min, y_max = X[:, 1].min() - 0.1, X[:, 1].max() + 0.1\n",
" xx, yy = np.meshgrid(np.linspace(x_min, x_max, 101), np.linspace(y_min, y_max, 101))\n",
" cmap = plt.cm.Spectral\n",
" \n",
" X_test = np.c_[xx.ravel(), yy.ravel()]\n",
" y_pred = model.predict(X_test).reshape(xx.shape)\n",
" # y_pred = np.argmax(y_pred, axis=1).reshape(xx.shape)\n",
" plt.contourf(xx, yy, y_pred, cmap=plt.cm.Spectral, alpha=0.5, \n",
" levels=[-1, 0, 1], linestyles=['--', '-', '--']) \n",
" \n",
" plt.scatter(X[:, 0], X[:, 1], c=y, s=5, cmap=plt.cm.RdYlBu)\n",
" plt.xlim(xx.min(), xx.max())\n",
" plt.ylim(yy.min(), yy.max())"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot_decision_boundary(machine_fit, X_train_circle, y_train_circle)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.6"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment