{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Recitation Week 2\n", "\n", "Gradient descent + Intro to scikit-learn" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### I. Reminder on gradient descent" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "beta0true = 1\n", "beta1true = 1\n", "\n", "x = np.linspace(0,1,10)\n", "\n", "t = beta0true + beta1true *x\n", "\n", "tnoisy = t + np.random.normal(0,.1,len(x))\n", "\n", "\n", "plt.scatter(x, tnoisy, c='r')\n", "plt.plot(x, t)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# sum_i (t^i - (beta0 + beta1 x_1^i))^2\n", "\n", "eta = .001\n", "\n", "maxIter = 200\n", "\n", "beta0 = np.random.normal(0,.1,1)\n", "beta1 = np.random.normal(0,.1,1)\n", "\n", "beta = np.squeeze(np.asarray([beta0, beta1]))\n", "\n", "Xtildemat = np.hstack((np.ones((len(x), 1)), x.reshape(-1,1)))\n", "\n", "\n", "for iteration in np.arange(maxIter):\n", " \n", " beta0 = beta0 - \\\n", " (2/len(x))*eta * np.sum((tnoisy.reshape(-1,1) - np.matmul(Xtildemat, beta))*(-1))\n", " \n", " \n", " beta1 = beta1 - \\\n", " (2/len(x))*eta* np.sum(np.multiply((tnoisy.reshape(-1,1) - np.matmul(Xtildemat, beta)), -x.reshape(-1,1)))\n", "\n", " beta = np.squeeze(np.asarray([beta0, beta1]))\n", " \n", " \n", "beta_learned = np.squeeze(np.asarray([beta0, beta1]))\n", "\n", "\n", "xprediction = np.linspace(0,1,100)\n", "\n", "XpredictionMatrix = np.hstack((np.ones((len(xprediction), 1)), \\\n", " xprediction.reshape(-1,1)))\n", "\n", "\n", "prediction = np.matmul(XpredictionMatrix, beta_learned)\n", "\n", "\n", "plt.scatter(x, tnoisy, c='r')\n", "plt.plot(xprediction, prediction, c='g')\n", "plt.plot(x, t)\n", "plt.show()\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### II. Using scikit-learn LinearRegression" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD4CAYAAAD8Zh1EAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAjbUlEQVR4nO3dd3RU1eL28e8ORQhFQIJICQGvqICAEgRRBAEB0Sv2KwR9LT9jTygiSGiKNCkCKmAuF7CMjQtiJfQqolSpIggEAkivCSVlv39MuCImZEJmcjIzz2ct1mTOnMx59gKenOzZc8ZYaxEREf8X4nQAERHxDhW6iEiAUKGLiAQIFbqISIBQoYuIBIjCTh24fPnyNiIiwqnDi4j4pZUrVx601oZl9ZhjhR4REcGKFSucOryIiF8yxiRm95imXEREAoQKXUQkQKjQRUQChApdRCRA5Fjoxpiqxpj5xphNxpgNxpjYLPYxxpgxxpitxpi1xpibfBNXRESy48kqlzSgm7V2lTGmFLDSGDPbWrvxvH3uAq7J/NMIGJd5KyIi+STHM3Rr7V5r7arMr08Am4DKF+zWHvjQui0DyhhjrvJ6WhERyVau5tCNMRHAjcBPFzxUGdh13v0k/l76IiJB7UzaGYYuGcqypGU+eX6PC90YUxKYCnS21h6/8OEsvuVvF1o3xkQbY1YYY1YcOHAgd0lFRPyUtZZvNn9DnXF16Dm3J9N/ne6T43hU6MaYIrjL3GWtnZbFLklA1fPuVwH2XLiTtTbeWhtprY0MC8vynasiIt7nckFEBISEuG9drnw79K8Hf6XdJ+2497N7KRxSmISoBIa0GuKTY+X4oqgxxgD/ATZZa0dms9vXwEvGmM9wvxh6zFq713sxRUQukcsF0dGQkuK+n5jovg8QFeWzwx47fYw3Fr7BmJ/HEFoklJGtR/LSzS9RpFARnx3T5PQRdMaY24DFwDogI3NzLyAcwFo7PrP03wXaAinAk9bai16oJTIy0upaLiLicxER7hK/ULVqsGOH1w+XYTOYtHoSveb14kDyAZ6+8WkGthxIhRIVvPL8xpiV1trIrB7L8QzdWruErOfIz9/HAi9eWjwRER/auTN32/Ng6a6lxMyIYeXelTSp2oTvO35Pg0oN/tzB5YK4OPexw8Nh4ECv/pbg2NUWRUTyRXh41mfo4eFeO8Tu47vpMacHrnUuKpWqhOsBFx3qdMA9eZEpH6Z+9NZ/EQlsAwdCaOhft4WGurfn0em00wxePJhr372WKRun0Ou2Xmx+aTMdb+j41zIH95n5uTI/JyXFvd1LdIYuIoHt3NmvF6c6rLV8vflrus7qyrYj27jvuvsY0XoENcrWyP6b8mHqR4UuIoEvKspr0xobD2ykc0JnZm+bTa2wWszqNIs7r74z52/Mh6kfTbmIiHjg6OmjdE7oTN1xdVm+Zzmj245mzbNrPCtz8OnUzzk6QxcRuYj0jHT+s/o/xM2L41DKIaIbRDPgjgGElcjlmyN9MPVzIRW6iEg2luxcQsyMGFb/sZqm4U0Zc9cY6lesf+lP6MWpn6yo0EVELpB0PIlXZ7/Kp+s/pUrpKnz24Gc8UvuRv69cKWBU6CIimU6nnWb40uEMXjKY9Ix0ejftTc/belKiaAmno3lEhS4iQc9ay5e/fkm3Wd3YcXQHD1z/AMPvHE71stWdjpYrKnQRCWob9m8gNiGWudvnUqdCHeY8NoeWNVo6HeuSqNBFJCgdOXWEfgv6MXb5WEpfVpp37nqH5yKfo3CI/9ai/yYXEbkE6Rnp/HvVv+k9rzdHTh/h2QbP8sYdb1A+tLzT0fJMhS4iQWNR4iJiZsTwy75faFatGaPbjqZexXpOx/IaFbqIBLydx3bSfXZ3vtjwBeGXh/PFQ1/wUK2HCvwyxNxSoYtIwDqVeophS4cxZMkQLJZ+zfrx6q2vElokNOdv9kMqdBEJONZapm6ayiuzXiHxWCIP13qYYXcOo1qZak5H8ykVuogElHX71hGbEMv8HfOpe2Vd5t83n+YRzZ2OlS9U6CISEA6lHKLv/L6MXzmeMsXKMLbdWJ5p8IxfL0PMreAZqYgEpLSMNOJXxtNnfh+OnT7GC5Ev8Podr1OueDmno+U7FbqI+K0FOxYQMyOGdfvX0aJ6C0a3HU2dCnWcjuUYFbqI+J3Eo4l0n92dKRunUO3yavz34f/ywPUPBNwyxNxSoYuI30hJTWHokqG8tfQtDIY3mr/BK01eoXiR4k5HKxBU6CJS4FlrmbJxCq/MeoVdx3fxaJ1HeavVW1S9vKrT0QoUFbqIFGi//PELsQmxLExcSP2K9XE94KJptaZOxyqQVOgiUiAdTDlIn3l9iF8VT7ni5Xj/nvd5+sanKRRSyOloBZYKXUQKlLSMNMYtH0ffBX05ceYELzV8if7N+1O2eFmnoxV4ORa6MWYicA+w31r7t/VAxpjLgY+B8MznG26tneTtoCIS+OZtn0dsQizr96+nVY1WjGozitoVajsdy2+EeLDPZKDtRR5/Edhora0HNAdGGGOK5j2aiASLHUd38OAXD9Lyw5Ykn01m2iPTmNVplso8l3I8Q7fWLjLGRFxsF6CUcS8ALQkcBtK8E09EAlny2WSGLBnCsKXDKBRSiDfveJNuTbpRrHAxp6P5JW/Mob8LfA3sAUoB/7LWZmS1ozEmGogGCA8P98KhRcQfWWv5fMPndJ/dnaTjSXS8oSNDWw2lSukqTkfza55MueSkDbAGqATUB941xpTOakdrbby1NtJaGxkWFuaFQ4uIv1m9dzXNJjejw9QOhIWGsfjJxbgecKnMvcAbhf4kMM26bQW2A9d54XlFJIAcSD7As988S4P4Bmw6uIn4e+JZ/sxybgu/zeloAcMbUy47gZbAYmPMlcC1wDYvPK+IBIDU9FTGLh9LvwX9SE5NJrZRLP2a96NMsTJORws4nixb/BT36pXyxpgkoB9QBMBaOx4YAEw2xqwDDNDDWnvQZ4lFxG/M/n02sQmxbDq4idZXt2ZUm1FcH3a907EClierXDrk8PgeoLXXEomI39t2ZBvdZnVj+q/TqVG2BtP/NZ17r7036K+G6Gt6p6iIeM3JsycZvHgwI34cQeGQwgxqMYgut3TRMsR8okIXkTyz1uJa56LHnB7sObGHTnU7MaTlECqXrux0tKCiQheRPFmxZwUxM2L4MelHIitF8t+H/8stVW9xOlZQUqGLyCXZn7yfXnN7MXH1RMJKhPGfe//DE/WfIMR4YzW0XAoVuojkSmp6Ku/+/C79F/YnJTWFLo270LdZXy4vdrnT0YKefpSKiMcStiZww7gb6DqrK02qNmHd8+sY0WZE9mXuckFEBISEuG9drvyMG3R0hi4iOdp6eCtdZ3blm9++4R/l/sE3Hb7h7mvuvvgyRJcLoqMhJcV9PzHRfR8gKsr3oYOQztBFJFsnzpyg55ye1B5bm/k75jO01VDWP7+ee2rek/Oa8ri4P8v8nJQU93bxCZ2hi8jfZNgMXGvdyxD3ntzL4/UeZ0jLIVxV6irPn2TnztxtlzxToYvIXyzfvZyYhBiWJS2jYaWGfPmvL2lUpVHunyg83D3NktV28QlNuYgIAPtO7uOpr56i0YRGbD+ynUntJ7Hs/5ZdWpkDDBwIoaF/3RYa6t4uPqEzdJEgdzb9LO/89A5vLHqDU6mneKXJK/S+vTelL8vyYw08d+6Fz7g49zRLeLi7zPWCqM+o0EWC2PdbvqfLzC78dug37r7mbka2GUnNK2p67wBRUSrwfKRCFwlCWw5tocvMLny35TtqXlGT7zt+z13X3OV0LMkjFbpIEDl+5jhvLnqTUctGUaxwMYbfOZyXG71M0UJFnY4mXqBCFwkCGTaDD3/5kJ5zerIveR9P1n+SQS0HUbFkRaejiRep0EUC3E9JPxGTEMPPu3+mcZXGfNPhGxpWbuh0LPEBFbpIgNp7Yi+vzX2ND375gIolK/LBfR/QqW4nXQ0xgKnQRQLMmbQzjP5pNAMWDeBs+ll63tqTXk17UeqyUk5HEx9ToYsECGst3235ji4zu7D18FbuvfZeRrQewT/K/cPpaJJPVOgiAWDzwc10mdmFGVtncF3560iISqDNP9o4HUvymSbTJHAE4bW3j50+RreZ3agzrg4/7PqBka1Hsva5tSrzIKUzdAkMQXbt7QybweQ1k3lt7mscSD7A0zc+zcCWA6lQooLT0cRBKnQJDBe79naAFfqPu34kJiGGFXtW0KRqE77v+D0NKjVwOpYUACp0CQxBcO3tPSf20HNOTz5a+xGVSlXi4/s/puMNHXP+oAkJGip0CQwBfO3tM2lnGPnjSAYuHkhqRiq9buvFa01fo2TRkk5HkwImxxdFjTETjTH7jTHrL7JPc2PMGmPMBmPMQu9GFPFAAF5721rL15u/ptbYWvSa14tWNVqx6cVNDGw5UGUuWfJklctkoG12DxpjygBjgXuttbWBh72STCQ3oqIgPh6qVQNj3Lfx8X47f77pwCbautrS/rP2FCtcjNmPzWb6o9OpUbaG09GkAMux0K21i4DDF9mlIzDNWrszc//9XsomkjtRUbBjB2RkuG/9sMyPnj5K15ldqTu+Lj8l/cSoNqNY8+waWtVolbsnCsIlnOKdOfSaQBFjzAKgFDDaWvuhF55XJGikZ6QzcfVE4ubFcTDlIM/c9AxvtniTsBJhuX+yIFvCKX/yRqEXBhoALYHiwI/GmGXW2t8u3NEYEw1EA4QHwItVIt7ww84fiEmIYdXeVdwWfhsz287kxqtuvPQnDKIlnPJX3ninaBKQYK1NttYeBBYB9bLa0Vobb62NtNZGhoVdwpmHSADZfXw3UdOiuG3SbexP3s8nD3zCoicW5a3MISiWcErWvHGG/hXwrjGmMFAUaAS87YXnFQlIp9NOM2LpCAYtGUR6Rjp9bu9Dj1t7UKJoCe8cIICXcMrF5VjoxphPgeZAeWNMEtAPKAJgrR1vrd1kjEkA1gIZwARrbbZLHEWClbWW6b9Op9usbmw/up0Hrn+A4XcOp3rZ6t490MCBf51DB79fwimeybHQrbUdPNhnGDDMK4lEAtCG/RuITYhl7va51A6rzdzH59KiegvfHOzcPHlcnHuaJTzcXeaaPw94eqeoiA8dOXWE/gv6897y9yh1WSneuesdnot8jsIhPv6vFxWlAg9CKnQRH0jPSGfCqgnEzYvjyOkjRN8UzYAWAygfWt7paBLAVOgiXrY4cTExCTGs+WMNt1e7nTFtx1CvYpYLv0S8SoUu4iW7ju2i++zufL7hc6qWrsrnD33Ow7Ue1tUQJd+o0EXy6FTqKYYvHc7gJYOxWPo168ert75KaJHQnL9ZxItU6CKXyFrLtE3T6DarG4nHEnmo1kMMv3M41cpUczqaBCkVusglWLdvHZ1ndmbe9nncUOEG5j0+jzuq3+F0LAlyKnSRXDh86jD95vdj7IqxlClWhvfavUd0g2jfL0MU8YD+FYp4IC0jjfiV8fSZ34ejp4/yfOTzvN78da4IvcLpaCL/o0IXycHCHQuJSYhh7b61NI9ozui2o6l7ZV2nY4n8jQpdJBuJRxPpPrs7UzZOIfzycKY8PIUHr39QyxClwFKhi1wgJTWFt354i6E/DMVgeL3563Rv0p3iRYo7HU3kolToIpmstUzZOIXus7uz89hOHqn9CMPuHEb45brsrPgHFboI8MsfvxCbEMvCxIXUu7IeH973Ic0imjkdSyRXVOgS1A6lHKLP/D68v/J9yhYry7i7x/HMTc9QKKSQ09FEck2FLkEpLSON8SvG03d+X46fOc6LDV+kf/P+lCtezuloIpdMhS5BZ972ecQmxLJ+/3paVG/B6LajqVOhjtOxRPJMhS5BY8fRHXSb1Y1pm6YRUSaCqY9M5f7r7tcyRAkYKnQJeMlnkxmyZAjDlg6jUEghBtwxgG63dNMyRAk4KnQJWNZaPt/wOd1ndyfpeBKP1nmUYXcOo0rpKk5HE/GJEKcDSABwuSAiAkJC3Lcul9OJWL13Nc0mN6PD1A6EhYax+MnFfPrgpypzCWg6Q5e8cbkgOhpSUtz3ExPd98GRDyk+kHyA3vN68+9V/+aK0CuIvyeep258SssQJSjoDF3yJi7uzzI/JyXFvT0fpaanMuanMdR8tyYT10wktlEsW17ewjMNHFhTXgB/Y5HgoDN0yZudO3O33QfmbJtDbEIsGw9spPXVrXm7zdvUCquVb8f/iwL2G4sEF52hS96EZ3Odk+y2e9G2I9u4//P7ufOjOzmddprp/5pOQlSCc2UOBeY3FglOKnTJm4EDIfSCD0MODXVv95Hks8n0ntebWu/VYvbvsxnUYhAbXthA++vaO7+mvAD8xiLBS1MukjfnphHi4tylFR7uLnMfTC9Ya/lk3Sf0mNOD3Sd206luJ4a0HELl0pW9fqxLFh7unmbJaruIj+V4hm6MmWiM2W+MWZ/Dfg2NMenGmIe8F0/8QlQU7NgBGRnuWx+U+aq9q2g6qSmdvuxExZIV+eGpH/jo/o8KVpmDI7+xiJzjyZTLZKDtxXYwxhQChgIzvZBJ5H/2J+/nma+fITI+ki2HtzDhnxP4+ZmfaVK1idPRshYVBfHxUK0aGOO+jY/XC6KSL3KccrHWLjLGROSw28vAVKChN0KJpKan8u7P7/L6wtdJTk2mS+Mu9G3Wl8uLXe50tJxFRanAxRF5nkM3xlQG7gdakEOhG2OigWiAcM0pSjZm/T6L2IRYfj34K22ubsOotqO4rvx1TscSKfC8scplFNDDWpue047W2nhrbaS1NjIsLMwLh5ZA8vvh32n/WXvafNyG1PRUvunwDTOiZqjMRTzkjVUukcBnmcvFygPtjDFp1trpXnhuCQInzpxg0OJBjFw2kqKFijKk5RA6N+7MZYUvczqaiF/Jc6Fba6uf+9oYMxn4VmUunsiwGbjWuugxpwd7T+7l8XqPM6TlEK4qdZXT0UT8Uo6Fboz5FGgOlDfGJAH9gCIA1trxPk0nAWvFnhXEzIjhx6QfaVipIdP+NY3GVRo7HUvEr3myyqWDp09mrX0iT2kk4O07uY9ec3sxac0kKpSowKT2k3i83uOEGL1pWSSv9E5RyRdn08/yzk/v8MaiNziVeopXmrxC79t7U/qy0k5HEwkYKnTxuRlbZtB5Zmd+O/Qb7a5px9tt3qbmFTWdjiUScFTo4jNbDm2h66yufPvbt1xT7hq+6/gd7a5p53QskYClQhevO37mOG8uepNRy0ZRrHAx3mr1FrGNYylaqKjT0UQCmgpdvCbDZvDRLx/Rc25P/jj5B0/Wf5JBLQdRsWRFp6OJBAUVunjFz7t/5uUZL/Pz7p9pVLkRXz36FTdXvtnpWCJBRYUuebL3xF5em/saH/zyARVLVuSD+z6gU91OWoYo4gAVulySM2lnGP3TaAYsGsCZtDO82uRVet/em1KXlXI6mkjQUqFLrn3323d0ntmZrYe3ck/NexjZeiTXXHGN07FEgp4KXTy2+eBmuszswoytM7j2imuZETWDtv+46GefiEg+UqFLjo6dPsaARQMY/dNoQouEMvzO4bzc6GUtQxQpYFTokq0Mm8HkNZN5be5rHEg+wFM3PsXAFgO5suSVTkcTkSyo0CVLy5KWETMjhuV7lnNLlVv4ruN3RFaKdDqWiFyECl3+Ys+JPfSc05OP1n5EpVKV+Pj+j+l4Q0cyP8BERAowFboA7mWIby97mzcXvUlqRio9b+1J3O1xlCxa0uloIuIhFXqQs9by7W/f0mVmF34/8jvtr23PiNYjuLrc1U5HE5FcUqEHsV8P/krnhM7M/H0m15e/npmdZtL66tZOxxKRS6RCD0LHTh/j9YWv887P71CiSAnebvM2LzZ8kSKFijgdTUTyQIUeRNIz0pm0ZhK95vbiYMpB/u+m/+PNFm9SoUQFp6OJiBeo0IPEDzt/ICYhhlV7V3Fr1VtJ6JTATVfd5HQsEfEiFXqA2318Nz3m9MC1zkXlUpX55IFPeLTOo1qGKBKAVOgB6nTaaUYsHcGgJYNIz0gnrmkcr932GiWKlnA6moj4iAo9wFhr+WrzV3Sd2ZXtR7dz/3X3M7z1cGqUreF0NBHxMRV6ANl4YCOxCbHM2TaH2mG1mf3YbFrVaOV0LBHJJyr0AHDk1BH6L+jPe8vfo9RlpRjTdgzPN3yewiH66xUJJvof78fSM9KZsGoCcfPiOHzqMNENohlwxwDCSoQ5HU1EHJBjoRtjJgL3APuttXWyeDwK6JF59yTwvLX2F6+mlL9ZnLiYmIQY1vyxhqbhTRlz1xjqV6zvdCwRcZAnn+Q7GbjYx9JsB5pZa+sCA4B4L+SSbOw6tosOUztw++TbOXRwF58tKM/CpxdTv/F94HI5HU9EHJTjGbq1dpExJuIijy897+4yoIoXcskFTqWeYvjS4QxeMhiLpW/Z++nRJ4HQ46fcOyQmQnS0++uoKOeCiohjPDlDz42ngRlefs6gZq1l2qZp1Bpbi74L+nJ3zbvZ9OImXh+56s8yPyclBeLinAkqIo7z2ouixpg7cBf6bRfZJxqIBggPD/fWoQPW+v3riU2IZd72edSpUIe5j8+lRfUW7gd37sz6m7LbLiIBzytn6MaYusAEoL219lB2+1lr4621kdbayLAwrcTIzuFTh3n5+5epP74+a/5Yw3vt3mP1s6v/LHOA7H4g6gelSNDKc6EbY8KBacBj1trf8h4peKVnpDNu+ThqvlOTsSvG8lzkc/z20m+80PCFv68pHzgQQkP/ui001L1dRIKSJ8sWPwWaA+WNMUlAP6AIgLV2PNAXuAIYm3nBpzRrrT5NOJcW7lhITEIMa/etpXlEc0a3HU3dK+tm/w3nXviMi3NPs4SHu8tcL4iKBC1jrXXkwJGRkXbFihWOHLsg2XlsJ91nd+eLDV9Q7fJqDG89nAevf1BXQxSRLBljVmZ30qx3ijokJTWFYT8MY+gPQwF4vfnrdG/SneJFijucTET8lbeXLQYHlwsiIiAkxH2bizf0WGuZsmEK1793Pf0X9ufea+/l15d+pW+zvipzEckTnaHnlsvlfgNPSor7fi7e0LN231piE2JZsGMB9a6sx4f3fUiziGY+DiwiwUJn6LkVF/dnmZ+Twxt6DqUc4sXvXuTG929k3b51jLt7HCujV6rMRcSrdIaeW7l4Q09aRhrvr3ifPvP7cPzMcV5s+CL9m/enXPFyPg4pIsFIhZ5b4eHuaZastp9n/vb5xCTEsH7/elpWb8motqOoU+FvF6sUEfEaTbnkVg5v6Ek8msjDUx6mxYctOHn2JFMfmcrsx2arzEXE53SGnlvZvKEn5ZH7GTK/L8OWDiPEhDDgjgF0u6WbVq6ISL5RoV+KqKj/Fbu1li82fEH3d69j1/FddKjTgbfufIsqpXUVYRHJXyr0PFjzxxpiE2JZlLiI+hXr43rARdNqTZ2OJSJBSoV+CQ6mHKTPvD7Er4qnXPFyvH/P+zx949MUCinkdDQRCWIq9FxIy0hj3PJx9F3QlxNnTvDyzS/Tr1k/yhYv63Q0EREVuqfmbptLbEIsGw5soFWNVoxuO5paYbWcjiUi8j8q9BxsP7KdbrO68eWvX1K9THW+/NeXtL+2va6GKCIFjgo9G8lnkxm8ZDDDlw6nUEghBrYYSNdbulKscDGno4mIZEmFfgFrLZ+t/4zus7uz+8Ruom6IYmiroVQuXdnpaCIiF6VCP8/qvauJSYhhyc4l3HTVTXzx8Bc0qdrE6VgiIh5RoQMHkg8QNy+OCasmUD60PBP+OYEn6j+hZYgi4leCutBT01N5b/l79F/Qn+TUZDo37kzfZn0pU6yM09FERHItaAt91u+z6JzQmU0HN9Hm6jaMajuK68pf53QsEZFLFnSFvu3INrrO7MpXm7/i6rJX89WjX/HPmv/UMkQR8XtBU+gnz55k0OJBjPhxBEULFWVIyyF0btyZywpf5nQ0ERGvCPhCt9biWueix5we7Dmxh8fqPsaQVkOoVKqS09FERLwqoAt9xZ4VxMyI4cekH4msFMnUR6bSuEpjp2OJiPhEQBb6vpP76DW3F5PWTKJCiQpMvHci/6/+/yPE6AOaRCRwBVShn00/yzs/vcMbi97gVOoput3SjT7N+lD6stJORxMR8bmAKfQZW2bQZWYXNh/aTLtr2vF2m7epeUVNp2OJiOSbHOcgjDETjTH7jTHrs3ncGGPGGGO2GmPWGmNu8n7M7G05tIV7PrmHdp+0I92m822Hb/mu43cqcxEJOp5MKk8G2l7k8buAazL/RAPj8h4rZyfOnKDH7B7UHlubRYmLeKvVW2x4YQN317w7Pw4vIlLg5DjlYq1dZIyJuMgu7YEPrbUWWGaMKWOMucpau9dbIc+XYTP4eO3H9JjTgz9O/sET9Z9gcMvBVCxZ0ReHExHxG96YQ68M7DrvflLmtr8VujEmGvdZPOHh4Zd0sImrJ/LMN8/QqHIjvnr0K26ufPMlPY+ISKDxRqFn9Z55m9WO1tp4IB4gMjIyy31y0qluJ0oWLckjtR/RMkQRkfN4o9CTgKrn3a8C7PHC82apWOFiPFrnUV89vYiI3/LGKe7XwOOZq10aA8d8NX8uIiLZy/EM3RjzKdAcKG+MSQL6AUUArLXjge+BdsBWIAV40ldhRUQke56scumQw+MWeNFriURE5JLoVUURkQChQhcRCRAqdBGRAKFCFxEJECp0EZEAoUIXEQkQKnQRkQChQhcRCRAqdBGRAKFCFxEJECp0EZEAoUIXEQkQ/lXoLhdEREBIiPvW5XI6kYhIgeGND7jIHy4XREdDSor7fmKi+z5AVJRzuURECgj/OUOPi/uzzM9JSXFvFxERPyr0nTtzt11EJMj4T6GHh+duu4hIkPGfQh84EEJD/7otNNS9XURE/KjQo6IgPh6qVQNj3Lfx8XpBVEQkk/+scgF3eavARUSy5D9n6CIiclEqdBGRAKFCFxEJECp0EZEAoUIXEQkQxlrrzIGNOQAkXuK3lwcOejGOP9CYg4PGHBzyMuZq1tqwrB5wrNDzwhizwlob6XSO/KQxBweNOTj4asyachERCRAqdBGRAOGvhR7vdAAHaMzBQWMODj4Zs1/OoYuIyN/56xm6iIhcQIUuIhIgCnShG2PaGmM2G2O2GmN6ZvG4McaMyXx8rTHmJidyepMHY47KHOtaY8xSY0w9J3J6U05jPm+/hsaYdGPMQ/mZzxc8GbMxprkxZo0xZoMxZmF+Z/Q2D/5tX26M+cYY80vmmJ90Iqe3GGMmGmP2G2PWZ/O49/vLWlsg/wCFgN+BGkBR4Beg1gX7tANmAAZoDPzkdO58GHMToGzm13cFw5jP228e8D3wkNO58+HvuQywEQjPvF/B6dz5MOZewNDMr8OAw0BRp7PnYcy3AzcB67N53Ov9VZDP0G8Gtlprt1lrzwKfAe0v2Kc98KF1WwaUMcZcld9BvSjHMVtrl1prj2TeXQZUyeeM3ubJ3zPAy8BUYH9+hvMRT8bcEZhmrd0JYK3193F7MmYLlDLGGKAk7kJPy9+Y3mOtXYR7DNnxen8V5EKvDOw6735S5rbc7uNPcjuep3H/hPdnOY7ZGFMZuB8Yn4+5fMmTv+eaQFljzAJjzEpjzOP5ls43PBnzu8D1wB5gHRBrrc3In3iO8Hp/FeRPLDJZbLtwjaUn+/gTj8djjLkDd6Hf5tNEvufJmEcBPay16e6TN7/nyZgLAw2AlkBx4EdjzDJr7W++Ducjnoy5DbAGaAFcDcw2xiy21h73cTaneL2/CnKhJwFVz7tfBfdP7tzu4088Go8xpi4wAbjLWnson7L5iidjjgQ+yyzz8kA7Y0yatXZ6viT0Pk//bR+01iYDycaYRUA9wF8L3ZMxPwkMse4J5q3GmO3AdcDP+RMx33m9vwrylMty4BpjTHVjTFHgUeDrC/b5Gng889XixsAxa+3e/A7qRTmO2RgTDkwDHvPjs7Xz5Thma211a22EtTYC+C/wgh+XOXj2b/sroKkxprAxJhRoBGzK55ze5MmYd+L+jQRjzJXAtcC2fE2Zv7zeXwX2DN1am2aMeQmYifsV8onW2g3GmOcyHx+Pe8VDO2ArkIL7J7zf8nDMfYErgLGZZ6xp1o+vVOfhmAOKJ2O21m4yxiQAa4EMYIK1Nsvlb/7Aw7/nAcBkY8w63NMRPay1fntZXWPMp0BzoLwxJgnoBxQB3/WX3vovIhIgCvKUi4iI5IIKXUQkQKjQRUQChApdRCRAqNBFRAKECl1EJECo0EVEAsT/B17DrkUD0iT+AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from sklearn.linear_model import LinearRegression\n", "\n", "reg = LinearRegression()\n", "\n", "reg.fit(x.reshape(-1,1), tnoisy)\n", "\n", "x_prediction = np.linspace(0,1,100)\n", "\n", "predictions = reg.predict(x_prediction.reshape(-1,1))\n", "\n", "\n", "plt.scatter(x, tnoisy, c='r')\n", "plt.plot(x_prediction, predictions, c='g')\n", "plt.show()\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### III. Non Linear Data Distribution\n", "\n", "__III.a__ Adding polynomial features and higher dimensional space" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "\n", "x = np.linspace(-1,1,10)\n", "\n", "beta0true = .1\n", "beta1true = .1\n", "beta2true = 1\n", "\n", "t = beta0true + beta1true *x + beta2true * (x**2)\n", "\n", "tnoisy = t + np.random.normal(0,.1,len(x))\n", "\n", "plt.scatter(x, tnoisy, c='r')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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e++9KCoqwsMPP7wogzaLioowPDzMfz0yMgIAY9E6X8xMESEEycnJaGtrw6pVq5CTk+P3JqN7wZKTk+etyY0l6Drh4eFhFBUVIScnBwaDAYODgzEf8QRI15ULoVAooNPpoNPpfEYcDw4OQq1W8+IaueEGJVRubm7I9U4LhXB+m78xzTqdDnq9HsXFxUE79jiOw/e//31otVrs27dv0e6rXbt24emnn8bevXtx9OhRZGRkIFrxNxDlLDqdy0YHItI2P1q6SkhIQF5eHl+npu2VBQUFsvTT0YDb7UZTU5Pfa6HlN4PBwFv93NzcqIURVFdOrVok4HA4+M9AY16q8w8GuicsPz8/etJgibDZbPzSR/ow81eC4zgODz74IADg17/+dVSFN1/84hfxwQcfwGg0Ii8vD4888gg/F+Guu+4CIQR333033nnnHaSkpOCFF17Ali1blmeZzOv1wu12B4y3hUQB5mqS69atC2tNbiRBs/ZShkU4nU7+M7As69MQEwlES1cuBI15DQaDj85f3AFHa8vFxcWLOm4aOOdF5OXl8clSk8kEg8HA68xpc8wvfvELzMzM4Nlnn12SywmwXIUuv//971FRUYH6+vqgcTQd9J+dnY2pqSkwDMOXU2It3JiamsKZM2fCytpTouj1ejidTt4qhpvNpg+aaOvKhaA6f3GtOi0tDc3NzVF90Mi5RiG5xaCNPW+99RYef/xxEELw0EMPYc+ePRHvzY8QlifBX3/9dfzxj39EZ2cnLr/8cuzevdtnLREhhO82qqmp4eNZoVXkOA45OTnIy8uLypRTIWhbZG1t7YLPRS2KXq/H7OwsnwnWarWSyL5YunIhCCGwWq2YmJjA2NgY0tPTUVRUtChjnig4jkNTUxNycnKCxv+EEPz85z9HT08PfvzjH+Pw4cO46KKLojVyaaFYngSncDgceOedd7B//340NTVh+/btuO666/D2229j7969QfeCud1u6PV66PV6eL3eiLvAFCMjI7wiLNI3r1Byyh07huzJSaRs2IDUa66B0k+icanoyoFzktzKykokJiby+RNhxSHaD14KSu7s7GyfWrIYhBA89dRTOHXqFP74xz9G5O/5zjvv4L777gPLsrjzzjv5mJ5iamoKX/7ylzE0NASv14sHHngAt912m9TDL2+CC+FyufDGG2/ggQceQG5uLjZt2oQbbrgB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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plt.figure()\n", "ax = fig.add_subplot(projection='3d')\n", "\n", "ax.scatter(x, x**2, tnoisy, c='r')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__III.b__ Learning the linear model (in the higher dimensional space)" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPkAAADyCAYAAACPiGNTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAACdK0lEQVR4nOz9eZQl2V3fi352nHk+J+fMGrrmsedWt4QACSR4gEDdjSSQgIuMZWyZi5BY15iHMRfLNjIy1vI118LivmXM8B4YoxZSI6kRAowAC0mNpO6uuTIrK4fKeTpTnvlE7PfH3jsiTs6ZNai7lb+1uqsqT5yIHZHx3b/5+xNSSvZlX/bl1SvWN3oB+7Iv+3J3ZR/k+7Ivr3LZB/m+7MurXPZBvi/78iqXfZDvy768ymUf5PuyL69yCW7z+X5+bV/25e6LuJsn39fk+7Ivr3LZB/m+7MurXPZBvi/78iqXfZDvy768ymUf5PuyL69y2Qf5vuzLq1z2Qb4v+/Iql32Q78u+vMplH+T7si+vctkH+b7sy6tc9kG+L/vyKpd9kO/LvrzKZR/k+7Ivr3LZB/m+7MurXPZBvi/78iqXfZB/A0RKSbPZpN1us0+JvS93W7YjjdiXOyyO49BsNqnX6+7PAoEAoVCIYDBIIBBAiLvKIbAv32QittEk+2rmDomUkna7TbvdRghBq9Vyfy6lxHEcF9yNRoNUKkU4HN4H/TeH3NVf8L4mvwdizHM/kI0IIRBCYFmWe+zo6ChHjhwhHo8D+5p+X25P9kF+l6XdbjM1NYVt2xw4cAAhhKu9NwKrAX0gECAQCLhavlaruccHg0H3v33Q78t2sg/yuyR+89xxHNdM361spOlt26bdbrvHBINBV9NblrUP+n3pkH2Q3wVxHIdWq+Wa50Z771S2Ot6cz8ha0AshOjT9Puj3ZR/kd1AM4ExQzWjfzUC7mcm+G9kI9O12213DPuj3ZR/kd0iklLRaLWzbXge8tSDfTrvvVvOv/e4+6PfFL/sgvwNict9GM28UQd8UtFJCqwXh8F1Z20agb7VaLC8vs7q6yoEDB1yfPhAI7IP+VSj7IL8NWZv7Nub5WtkM5GJhgeBf/iWiVkN2d9P+zu+ETOa2NPl2YiL3ZmMyOXu/pjdBvGAwuOGmtS+vLNkva92j+EtTtwPChqCt1wn+2Z8hQyGcoSGoVAj+xV+A47jnv5tizu9P15l0XLPZpFKpUCwWKZVKVKtVN5C4X4b7ypN9Tb4HMcG1zczztbIRyGvz8yQaDURvLwCyqwsxMwONxj3TnJvl6QOBgPtvs5k19Losy1pn3u/Ly1v2Qb4L2al5vlb8IHcch+vXr7M6M0PvrVs0KxUS6TTJUIhkIADh8F0113crftCbNTWbTZrNJsA+6F8Bsg/yHcpGue+digFttVrlwoULDAwMcOzbvg0rl4MvfpFaqUSlVmPkgQewL1zAtm2SySSpVOplBRpzz/ugf2XJfoPKNmJy3zdu3OC+++7bUyAqn88zOjpKo9Hg/vvvJ5PJeNH4QkEF3lIpSKVoNBpcvXoVIQSNRoNIJEIulyOXy5FMJu+YKb+4uEi5XObYsWN35HzgNdv43ynbtgkEAiQSiX3Qby77DSrfKPHnvmdnZzl69Oiuz2HbNuPj41QqFV7/+tcTCoU6D8jlkLmc+89IJEI8Hqevr49sNkutViOfzzM5Ocnq6irxeNwFfTwevy3Q32nff6N03eLiIrVajcOHDwNK0/ubbfZBf/dlH+SbyNrc916kUqlw4cIFurq6XBN2IylUlakbDQWIhgIdPnksFiMWizE0NOSa/Pl8nps3b1KtVkmlUi7oo9Ho3m72LonfvDfNNlJKGo0GjUYDKWWHaW9SdvtyZ2Uf5GvEX5rqD64Z4O30JZyZmWF8fJz7778fgImJiQ2Pa9kOM4WaOre+znyxgRNpICIN4uEg4WDAXUMikSCRSHDw4EGklKyurpLP57l+/TqNRoN0Ou2CPnyXCmx2I/5ntpGmdxxnn0DjLss+yH2ytu97bWmq4zgd6aWNxLZtrl69im3bPPHEEwSDQcrl8rpoudk0lsoNF+ASkI5DvS1ZXm1iB2pIIGgJIqEAsVCAWDhILBwgFFCVaalUilQqxeHDh3Ech1KpRD6fZ3p6Gtu2yWQy5HI5stlshyVxr6L3W22M+6C/N7IPci3blaZalrUtMFZXV7l48SIHDx7k4MGDHRpso++2bId8paH/JbGEhSMlSBDCi3q2HUm70ababCNXG1iAZQlioQDRcJBYyCIaDhIKWGSzWbLZLEePHsW2bYrFouvTSynJZrN0dXVtSGBxN2Q31s9moPf30u+DfvfyTQ/y3ZSmOroabSOZnp5mYmKCBx54gFQqte67G4F8sVxHgtbiAuk4gEBYAhwb//ur/FmBBBwJjiNZbbQpN9quFRAKWERDAWJhpfWjoQBdXV10dXUBisCiUCiwvLzM0tKS6yPncjnS6fRdCYJJKfd83o166fdBv3v5pgb5bnLflmVtCPJ2u82VK1cAXPN8rWwE8mbboVRtIRAIAY6UWEJo0EuksHAcXKBbwnLNeoRASgdHCISU7kG241CuO5TrTXUWCZGgRTTsmfq5XBc9PT1kMhnK5TKJRIK5uTmGh4cJh8OuP59Kpe4IYO5EO62R7UA/NzfHgQMH9kG/Rr4pQb6273uvpanlcpmLFy9y+PBhDh48uKvvLq3WsaXEEkozoz+3LKFBLLGERCIQqE1AAkL/T5gvCo1xqU+hQSUBS0DTdmjWHEq1lvtZKGhRLdaQtmQgnaOnpxfLEtTrdfL5PFNTU6yurhKNRl3QJxKJPQHmToJ8rawF/fT0NIODg+uosr7ZWXO+6UC+1jzf6S/dr8mllExNTTE1NcWDDz5IMpnc8rtrQd5s2RSrTYVKfX2jxdVhQoNWaABLLEvguMa9uycgEAbr6lMTB0D79Ws+k+b69TbNZovQcgWB0fhBYqkujnT3Eg1aLuhNnj+ZTLqgj8ViO3pujuPcs1y4AfxGVFlms/lmBP03FcjvRGlqu93m8uXLBAIBnnjiiW2j7f7vGllabeBID9iWAOlo+Or/CaRbByWFAbIHYFc07qVvw1DnFCqIh94QhHS/r/vP3PM4QL3tUG83KRkDQUAkGCCWyHEg20M0FMBuKtCPjIxQr9c7cvSRSGTDe7+bmnw72SiQ981IlfVNAfLNct+7EcuyKJfLXLhwgSNHjjA0NLTj7/pB3mw7rOiIuoG9lCCF1rgSApYyz/2vmyU87S31l4xmFiYcb/50pHIBzAmEAT0G8Wo9+nAhlVsAKqCn3AWot2waLYc8TXMaopEsvYe7iQQtWo0atXKRK1eu0G63O3L0Jl13L0G+Xfbjm5U151UPclOa+vWvf52HH354z36l6a9+5JFHSCQSu/q+H+RL5boypVEa2gDbD0jwbQD6+gLhNv/bEgKWB1rpfk+Z+ZYQqDi9RAgLiUQH7r2NQUiwBNKobXMKs5toW9+sw5j89bZNrWW7x1jhHNmDPUSCglatQr5Y4tatW266rl6vb+vOfKNkM9actaB/pbPmvKpB7s99V6vVPf2CWq0Wly9fpt1uc/bs2V0DHDyQr9XirpYT0ueTKy3sV0qWBqoOvanou6P9dQ1uKZQ5YFJsxil3LQLhw69rtnvWgAdowz+n/XupNwuEh3S8zcKRkmqjTbUJQoSR8R6SyV6CFjRrFZaKyxRKo9y6dcvV8ul0ekduzl6e8+1+f20v/WasOa8k0L8qQb5R7nsvv4xiscjly5c5evQokUhkz79Qr7qtvq7dSGlxBSoJBHRKLYApiJHrouZ+YOKCT0HXUn9VQToHLweH3ljQ5j1aU+ugHgIcqTcQabS4MDeg/HRpMK5NfUsgJNg+VwPAdiRtB6xQnJoVI5fNEk0mKNYrzI1P06oNk4gE6enudtN1txucuxsVfFsRaMzMzNDf3088Hn/ZU2W96kC+VWnqbs4xMTHB3NwcDz/8MPF4nFKptGUxzFYihKBle1ocKVlcWMCRNtlMjnAk4kbWHQFCWDhIHWyz8IxmZYqDg3R0xF9KN4ruYFJsYBkoG5xK9AG4gTpLqPyb43ibhRvcC+gIv+NzJ4zbj0CaYKH26dW5QDoSqTc1R+fqhSXAChCJpwnH0wC0Wk1mVlcZmx+n1aiSikcY6Ommt6d7T+m6e1HB5wf9ysoK/f39Haw5RtO/3HrpX1UgXxtEWftL30kQqNVqcenSJSKRCE888cS23Ok7ESEE+VqbnD7/jRs3iEajBENBJiYnaTUbxBIJMukMmXRKaUzXfJbe9dVNKA0rVJDMjbfhKnQw2l+b2xKl4R1z6+pE2hz3B/DUPmB2GwkIyzseN6WnTmMJ3HiAow8xz9dy/XxvY/Sn9EKhMOlcFyLbBQKazQYThRLXpodpN2rkUgn6e3IM9PaQTGzfUns7lXV7EdMnvxmBxvve9z5+6Zd+iTNnztyzNW0mrwqQ7yT3bfLcW/mChUKBy5cvc+LECfr7+zf8/l6k2XZYbTqslsuMjt7g0OH7yGbStG2Hwf4BbMehWqlSLBVZWFig0agTjcYJhkKkUymlCdcY+h6g/Wa4F503atfWBxmAC/dYoTcL4397n/vvUpqAnWfku7EDS7sWUqgAXsdGZNJ5UlkmgBv8M9fx30M4FKG3txfR14vjSBqNOrfyZS5PXMFuNejKpOjvzjLQ2002mVAuhk/uZT7eXM//LvnLbEFp+p3WEtxtecWDfKe5761ALqVkfHyc+fl5HnnkEXeaqF9uR5Mvles0m23Gx8c5feYs0UiEtm27nwcti3Q6QSKZxBIwMztLq9mkWCwyNTVNMGiRSqXJZjPEY0qrCVRpq7AUSJV5LpXG9gFTW9Ems7b+uaA2AP9HRgtLHZ13pONmAsyBARPBl74cvZAIKdwdQ0p0rl64gHYNgY5CIPWZ1LuVEIJYLEY0GmOgvw9HZzdm8mWuTcxjt5tk0wr0fT3dpBNRhG3fc/N4K+vCFA+9HOQVC/LNRhJtJptp4mazycWLF0kkEh3m+U6/v51U603+/qVLSMfm3LnzWAELSwC2qjv3F7oYQAYDAYKxOL19vSAlzVaLcrnM3Nw8tVqNaCRMKp0hnUkTCUfc6LmnGYVrGvtz6+ZnFiYtZxwCSUB0+vcmui7RkX8dpTebimP8AB3iV1ZEp/kf0OF8S5i4vbeZWDoFaGIJAL5KXUBvJI6DAFLJFMlkksHBQRzHoVKpsFAoMTI5i+M4xKJRnHaT3FKJZCzSQcBxN2S7Db9are6D/HZkq5FEm8lGIM3n81y5coWTJ0/S19e35ff3oslXV1f5n1/+Oumufqq1GlbAUsCWAsuCdrGCtbhAIBTEPnAIEbBw0M0q2hy1LEEkHCbS00VPdze249BsNigWy0xN3qLRbJJIxEmlMqTTKULBIAZOAnUdR/vUUhoNbfAp3FicAbjyu73+dhVR97Su2ZC87cFHCqGj+SaIaOvgoWVZXkGuVHX3BszCktolEG4hDiaQKLTZLyUqjKc+C1gWyWSKVDLJ4JDaCJaWllhYmOfLL1xCCEEqmSKTSdOTy5CIht3OvEjozqfuNpJWq/WyIO2AVyDIt+v73kzW1p7fvHmTpaUlHn300R35TrvV5DMzM4yM3mTg0DHiiQRzs7MA7gvO/CLh3/99aNQRjk3g2HFaP/g2CAQJmKi5MXeFQOgceCBgEY3EiPXHGOzvw3EcVqtVisUSi4vzOI4knUqRSqdJJpMErACmCEbfPKCLYLS4oJVeyk6YfLglVYTfcTzAGb9aa3V37zOuAWBZ2hqQTkfO35/ScwDheP8WWvNLE80zAT79zNTx6iPL5AqRBAIWyUSCajLJkSNHcWybUrnMSj7PralbWFaAdDpNKpUinUpq4o2g7swLuMw7u5GXY6psM3nFgHyvnOdGDEgbjQYXL14klUrx+OOP7/g8OwW54zhcu3aNZrPJkTMPUq7bro8LEsfR2ugv/1IFq/r7lc4duQHDw3D2rBvUwkL5uHhmrj+d5UgQAYtkMqmYXBlS7DDlIsVikZnpaYRlkU6nyaTTxBMJt+gmYAnaUvoKZJQJLhBe1Bzj3/sjc74QvaOCbiYA7wbl8MAoASxjHWjkG/CaIh59Os979/L9lu+m/esyAUFTrms7DkJYaoMJBMjlsuSyWWX1tduUSyWWl5e5NTlBIBgmk1Ggj8fjhAJWB/NONBQgHPS9F1JCtQrxuA5Ubm3RfSPr9TeSVwTI70Tu27Is8vk8t27d4tSpU/TqySU7le1IIwBqtRovvfQSg4ODHD95mpH5kpuTlvjKTaVEFPLIWMRLcQWDiGpVOaZCYDuOW3LqRqIxQPG0oylYMQCzLItMJkc6ncUSas5ZqVhkYXGB6kSFSCRGKpXCbrcJ6N53d99w7XPh+c/C9/eNCnLwAOhP1xltr/rkLRThhefzq4PV/VlIbCGwfK6BMfnVRuFpeFOAIy31XB3jIpgUmvCdWv9eIuEQ4e5uurq7AUmj0WS1XGZ+fp5KtUIsEiWVzpDJpIhEoqqc1RJEwwGSL71I9v/4AImVJaz+Puq/+7s0T53atmLv5QT0lz3IbdtmbGyMrq6uPVMQSykpl8uUSiUee+yxPbGabueTLy4uMjw8zPnz58lms0yvVFxgOiaN5RajCOzjJ7D+/u+RgzGsVlOZw/19WPpaAQ12L2XlBcJML7nw+a/uveo/TSlsMBSiq7ubrp4eQNKoNyiViiwV8rSaLaqVCulMhkw6TTAU0qb7Ghtcq2pLZ707Sm47TH3w5/GVjy/p+JUZN8AU1Ehc8gv/Bu5vpnGfv36Gbm2A2XAkSMfB8j0vf5DPGA9qgxGEwxF6eiL09PaAI6k1GpRKJaampqnX68RjMVLpNBkpsX/h/6QoYhyLJ0jMzRF717uoffGLW4K83W7flbLdvcrLFuR+87xUKu2ZqaTRaHDhwgUATp06tWfa4s3MdSklN27coFgs8vjjjxMOh2m2HfJV07mlX3jMy65A5LzhDTjVGoFrVxEBi+Zb3gKHD2Prl7ttO77veyauumbn3zui5pgou/qOJTAhKySCcDRKbzSqDXNJPJ6gVCoyOrqIbbdJptJkMhmdn7fc3Dt42tkSvosi/Fh0gWe+4xgNK0FYuBV55ksB4UXX/ek2cy51Pc+KsnQcADyTXVjGXPf11vs2RWM9GavHvab2/aPRKLFohP7+PpCSarVGsVRi6WtfI9FqE7dbxFoNiESgUoGpqS3dvEqlsqceh7slL0uQr819W5aF7csr71SWlpa4fv06p0+fJp/P31Z980ZEjmYDyeVyPPbYY+5LuViquWWjfu2mIQGAiIaxv/8tyO//Ph2l8oBhWRbYts5tS7d8FHCB66XedNRc4OWafdrddLAJAdKRbveaCbYlkkmSqSSDQyAdm1J5lZL25y1LkEqnSKcyJJIJEJa+Hx/49HrcxWmQWhpI0lWjGDfe3XBU6avuqxe+2nl3x/CZ9ibop0Hsnt9RNFhSSqyA5a5Cmfn+qj5zChWnR28+jnE6pHF7BLF4nFg8hnjwQUJI+utlN6MjpORmsUgrHKbVam3Ipf9yypHDywzkm9EymXnaOxXHcRgdHaVQKPCa17yGSCRCsVjc00ZhZK1PbtJva/37RtsmX226IPL3gftNbymV6RuwAl66GV+ayUW90MD0TuK4pq1r/YPjA1WHn64Dd0az6g1DYqtKNOE1pFhWgEwmQzabQUqVBiqVyiwuLjI5OUE4HCGTSZNMpYlGo7rbzQsMmntWJrQGmK5EE+Y65mA8l0JpVXM/3obkoXyNye4zbETA0kU0DpYwlocXyzBxBTBkGMJ1LRxHKusCL+9vXA1LCJxDhxBve5rsb/8XEIJAMEj9F3+R1MGDrM7OcuHCBUxLbS6XI5PJEAwG96TJhRD/DfgBYEFKef8Gnwvg14G3AFXgJ6SUX9/JuV82IN8q9x0IBHYM0Hq97k4tec1rXuOZfLdRlmq+b9hNJyYmmJ+f3zD9tlRSnOH6XfKaP/A0i4VcV/0lffcrheWlpgRIaQxu41sK9yU3DK7m6yYC7RWhepa1Z0orwKkXXnR+T0i9EQjC4RDd3V309HThOJJ6o85qqcz09DT1eo1EPEkmnSKVyaj8vPCfy9PUfu1vwK49f3U8Xtmt1FaPSc/5iTGUxeJZI+CZ7FI/BANq87QMqI3Jbp6Ju8G4ATqBrr7tcFEy/8fPUHvLd2JNTOCcPo1z/jzxlRVyuRwnTpxwGXBXVlYYGxtjdnaWz372s9TrdXeW3Q7ld4CPAr+3yeffB5zU/70W+Jj+c1t5WYB8u9z3TjW5CX6dPXvWpSE2crsgF0LQbrd58cUXiUajG6bfGm2bYq1lKjxxpEfuYPxxx+l8idSPzWvmM1X1z/3a2IgLaqk3Djy3wNOsPm1uXmRddmrW0nlObXm4n+tIvpDueePROLFojN7eXpVVqlUpFUss3ryJ3W6TTKXI6Hy0FQh4m4vVuSmZ5yn1+kFo18bRJrvP3fAeRqfJb7StlEjboW3bqt3T9x0VldfWjlQBSwG6Uw5tvazJ9etLSdRQi2w8jPPYYziPPeZ+bPtKaIPBID09PfT09ADKwrt48SLPPfccr3/963nnO9/Jz//8z7OdSCn/RghxZItDngJ+TypT7ctCiKwQYlBKObvdub+hIN8pLdN2PrnjOIyMjFAul13zfKNz3A7Ia7Uac3NznDt3jsHBwQ2PWSrVXZIGw8wiHXSDibICFOj9UXNfYwcmhy1pacPX+NsuYNzv4aLdS2F7QSlXkesvCO3z6iPR7Snud6WjtgujUQ2AzCajAldeJZ4jvJFNgwziODblcoXVUpHpmRmEEKTTKRzHdk13E0PAt84OWirpuSBqUepYX19Lp8muTyIsy403mONcgg2flvc2CN+m4yjwWyiT3XUpgK7kxhwCpgNtI8nlcjz66KNIKfnwhz/sup53QA4At3z/ntI/e/mCfDe570AgsOnDqtVqXLhwgd7e3o7g11qxLGvPD3xqaspN420G8EbLplDtHJBoKrWE9sGl9NJoFqYRxK/lNADQAS0NOuWfq6YUoTcLv3Z0QeIzbY05YQxjV7MLExNQ7SxePllFus3eYSLdru/rAxe+jQdUtF2IAJl0imwmzQGg3W5RLJZptxe5dPkKkUiEdDpNOp0mFo1qK0XqBnrPvfGX0XrNN3oNnuGu6+nNc/Py8bqmEbSDYxIT3sbriVs/7xh3Sef7tZXQldjY1N6um9Hvk2825HIPstGLLTf42Tr5hoB8t6WpgUCgYz6WkYWFBUZGRjh37hw53/jfjWQvmtzMNXMchwceeIBbt25teqyZhmJeSNUEAt4rhtceKaFp2zSbTaLa6rAAW3ifGxoobWd7/rJPK3km+3o/HQFCGi0oPDAb/Av97PUKVXQbn1Xsay7VSJOOTnkJs3EZTavB6POVw8EQPT1dLMzOcOb8eZqNBsVSienpaRr1BrF4jGw2QzKZIhQKIaTYlHba3WjMitx79sCLdJCm3l9bB9L3XQQIx0TZhc+m36BFVkI2EVa1Cpu8FxsN0TByl6LrU8Ah378PAjM7+eI9BfleS1PXAtRxHIaHh6lUKm5uerfn2E6q1SovvfSSO9esUqls+v1G23bHD7va1DWvfYExR7WGVqoVhkdG3ai50XDJZFJXbSkwGd/Y9cmNiYs/z6s/MhaE1kQmc+UXoU1wpGlK9XSeheOeU2IW7KtucwHnSw26lkUnKN31aQ0phCASjdAf66O/vw/HdqhUq5TLZRYXx7DtNomEaihJJZNuJZ4wJ/VtYOY+jFVh8u7SUZ105qa0g4TR6P7AnNnw1Ibkndu1DgR0JzcPmNm2vWVArVKprIsJ3QH5E+B9Qog/RAXcijvxx+Eegvx2OM/90fVqtcqFCxfo7+/n9OnTOz7PbkA+Pz/PjRs3uP/++8lkMu73N8uzLxZrrn9rBhY6Jnxuri8sbClZWVhidm6OkyeOEQqFkVJSKqmhhFO3JgmGwoRCIXf4ocew4r2woIDYQayK8EWKPS3vBvOk4wLbWvPMpO4XN2peWfpePMCIKiLRQDAX9lsVoOigzZqF8fy1mS3N2ixSySSpZJKhwQFs26G8WqFcLjIzM4NlWaqZJJ0mmUxoN8U8R88Xt7CQQuXO246tineED/zmWVgSpPa6fWA3z8lV6iiLJhsLEwpsroDsbXrXK5UKhw4d2vTzjUQI8d+B7wB6hBBTwL8CQgBSyt8EnkOlz26gUmj/cKfnvusg38tIorViADo3N8fo6KhbOrqXc2wlfgvhiSee6PCnNqtdb7RtCjXt62vN4N6eML6vwsTY2DiO3VZ95Ra0Wm0syyKb7SKb60Kg6qpnZ2cplYtcuXKZeCxOJpslnU4rLnCjjV0/HVetGyIH8EeLTb5e+auGXALpxeyN72veeKOlXYwbE15qy93CtS78gT7PAnANCqzO+Lh5RO7jElhYAUEmnSabTiMOCVqtJsVimeXlJSYnJwmFQmQzaVLpDLFY1DxYtX1Znsa3LOGm1NyFY8qKzXAJ330LL/bgrg3oSW2d9tqJT75bc11K+SPbfC6Bn97VSbXcVZDvdSTRWhFCsLy8TKPRWAe+ncp2IDf59Z6eng0thM00+VK54ZmMoF8+4xMDCNrNBrVala5clgOHjitT0VGWiZcPVr50KBIhm80SCAQYOnCAarVKqVRkfn4eKSUZTRaRSiY83nb9Xc+n9vm1mECa/pEwrZzuRdVfdWR6bcBN35IbwBMazYZIQvoB4kvhGV9ZegYCwvegzLN0S2W16yIdh0AgSFd3F93dXQgBtVqdUlnn52t14om4StWl04TCYQSKIdbSFXkBZbi4/HT6Shi6K+POdOw4KHcnFQlt23O+VXQdvokq3kxw7fnnn+eJJ57YM8ArlQqXL1/Gsqw9D0eArUG+vLzMtWvXOHPmDN3d3Rses5Emb7RtNV9cm7dCCI8mCfUOlUolbt68SSQapX9wwP2uO7TI+I/S6DWh306VO04as3boAHa7RXl1laWlJW5NThAKh8mks6QzaWKRiGty+3PkrlJb07VlXm4v6ORpMrcwxjHn2qiHvHMjMedCa0fHb+e7vrC3rrUWj6NL8TqaTvS9RGNRItEofb29SCS1ao1iqcDY2E0c2yGeSNJo1mk7NlHhmd2mice9qrGszDNwXRqt3yV0b6PFYXuQv5xYYeAugHxt7ttUsO1FZmdnGRsb49SpU9y6dWvP54GNQW7II5aXl7ftTttIky+WTMTfYzAxZi5SMjc3x9LiIufOnmX0xg0cR7oRaWBNQEno4JkBmfKTjd8tgUAgRDabI5fN4UhJq9GgUCoxNTVJo94kkUzqPuk0oWDQ1eLeZuJPseFTZ8ILlgmPC85U4VnuPaG1cGeRj/+xSKm44/1Ws9DXkvjz1ubJoXnhcC0MSwjVSup0FsYYsyUejxOLxxnoN1RQq5SLBSbGxxFC989nMp1AM5uo8OrtO7cpQTwcJB7eHhLb+eSrq6uv3gaVvdAybSS2bXPt2jVarRaPP/44hmjxdmRt1Zzhdksmk7zmNa/ZNtK/VpM32moyqQtC6WMwcWxGR28ihODc/fer2m29SViWCVRJVYgR8F58U2oJ2vI1xR4GhLpizZTHRqJR+qJR+vv7sG3HHeU0PzePlJDOpMhmMsTiHlmEm4d3JCKo/q7qUEwJqPDy8DqYIHXU2cQDTHrQC4J1GPMdbK+OOR9e3ho8N0KdX/+OzPMzLoTWwsL3jP0uAUJgBQKkUmnCkQhHjx0jIASFUomVlWUmJyYIh8Nk0mmS6TSxWKyz3t4Xt0BuHVH3y0588lQqtaNz3Qu5YyCXUtJoNHac+95MVldXuXjxIgcOHODQoUOuNXA7zSXQqcmLxSKXLl3akHp5q+/7Nfliqa5NUKMPFOtLo1Hj+vURBvr7GRjsU0Ef/WK58TJ0qEf7z16ltclqd5rSxnxF6GCY32owGsqyVB15KoUQKqhXKpVYXFymUp0kGgmRyeRIpVNEwuZlVtcxUXM3QgjK1PXl9ZVJLV317Jn4ovNclhrh5E/hGe1p/HRztLtR6FNsZbJ7wTIv4iCkiuQbf14IgRUM0tXVRU9XFw6o/vlykdnZGeq1GrF4nFRKpSwjkYhLHhkOWaRjO4v17MRcf1WC3AB7I3DvlCVjZmaG8fFx7r//ftLptPvz2y1JNedot9tMTk4yPT29KfXyZuInjWi0bEo1NV/cvHSWJVheyXNrYoKjx4+TTCWRZnSRZWiM3MZGvNvx1babXlEhNfhVZFh3oipxg11e1NxAzduE1KC+7q4uurq63A24WCwyOXGLRrOBZUE6mSGbTYMVUOACL5inlokhd3DBKN1l+BWqq2UdXRdrgAfS1eS+7c2NeRlLwmx6Uls5yr/3N7Osf39Mqs5xVMAuqFNotm+IYywWJRKN0Nvbh3Qk1VqN1XKRifFxWq2Wy4d36tDWRJ4d192G4/1V3U++ERh3MtTAtm2uXLmC4zg88cQT66qJ7gSNjpSS1dVVSqXSjueKbyYLpbrbtmhMzsmpKUqlEmfOnXOLcwxQbBR4XAjqd9AyAPcHy4QxoVUlGQKk46sZBx8IPVNXXcrzYY2FoDYCiEajRKNR+vv7cRyHyYkJao06w9eHQVsBmXSGeCKpq1lkhyVh/HQXqvq6fmXvlomigYd0O9LMQcJYL0I165j4xVqT3aQD1LHm2rotFd+z1M/WEF5KqRpLpLYCzIEW4FiCRCJOIh6nf0D586urq1RWy0yMXGVSCHcoYyaT2RTI2ymt7Sri7rXc9ZWYQpbNQGXM80OHDnHgwIE7AuiNrnHhwgUCgQD337+uVXdX0mjZFGtN99/tts3ojWEi0Rhnz57F0Bp6lW6amc21BIzvKjv8YEtHpdV3hOubm6DXuvp032Pyes29H5qGEPDAb8xlyxKEI2HSmQxdXV20Wi3KpTLzi4tUJyaIRCJk0mnF6x6J6mlsPj9W+DYa8zPfn5b+n7Q9gBswgucamEKUgOZ3dHBwHJX4dmMCxiVxnXM3Zqf+dPvUzQl9BB3Ct+noZ6cIKlSE3dJBupMH++hJRWm1WuTzebdcOhKJkMvl6Orq6pjPttU7ejcGL96u3HWQB4NB2u32hqWnU1NTTE5O8sADD9w1H8ZE6O+//34uXbp02+dbLNdcD7pWrXF9eJihgwfo7entMEiNWe4CzPeCKH9TuBoX47OaAJf+rvsSOx4bjBuE8pmkAdPrbhpSpFdqaqLmHU0qGvIqdw2hsPJju7q71H3V6pSKRSYmJmk2m6RSaTKZNGlfyal7b779xR+oUw/A8aWwOiPZ/k3CMT3xBFzaKiQ6zy19/rknXuDO20R8+4DPRTCbgXAtDITnTgQsQU43ooRCIfr6+lwO/lqtRj6fZ3x83M1953K5bV3H24lJ3Q25oyDf6MY2Inxot9tcuXIFIcSG5vmdEMdxuH79OvV6nccff/yOdAM1bUmhqqrblpdXmJqa4tSpkzp6bd5rRWzsBpBcu1KobifDSyZUQEoIgVOpEPzyl6FYwjl9GnnfYVdj+qPYXsDN5yrgvbjCNf+94JQUpk1ULwPcDQhpjANT3aa+FY/HiMeVaY+UFMurlEpeyWkmkyadzpDQFMUqCKZP7OvPNuQT4AOo28HmrhB3VLLPBXBr8w2IfYMX1/rnYnqKruf/HlFeRT7+ODIQ6NhYzCZhGmD8YM/FN29EicVixGIxhoaGXHcvn89Tr9d5/vnnyWhLKJvNdrxfe9HmQojvRTG/BID/KqX88JrPvwN4FhjTP/pjKeW/2cm575m5bqRcLnPx4kXuu+8+Dhw4sKtz7TSAZ9pP+/v7OXPmzB3bVQs1m27HYWJyknq9zvlz5wgGQ3ptxlf1tW+65rKxcQ0YJbbUAalGg/B/+S8Ep6eQ4Qj89RdovvVJ5PFjnflhVw8akxSXGFEaOvMN3i0pZYe29T8J4wEY8Xq+UQEvoUzrbDZNNptCOtBqt1Wabn6eWrVKNBbT1WcZIuEQOIphxRLg2L6AoBvY026Dj1MNvHp6lw4KkzZEB/TwzG2NWiEFga99lfAv/RKHpSRoWdhnz9H4tV9DBALuRmfOa6rghC9q2LXDtJkQglQqRSKRYH5+nscee4xiscjKygqTk5MAZDIZrl27tuvJKUKIAPAbwHejus3+XgjxJ1LKK2sO/Vsp5Q/s6uTcI3Pdtm2klExNTTE1NcWDDz6464ogE93eDrCGHWYn7ae7kUbLZrVpc+XqVdKpFGfOnMYzRFXzhxvo0WgyYPeq2zo8VGXWjYwg5uZoD6kNTzQaRP/iz+HYP9YRd3BPq6/mnyPmuuP6M/N4pONFsIWFa767o4lRz9RMQHUcB9vnMuA7n2r4UPcUDofodZlQFLNpuVRifHwcu90ikUyRzqRIp9LaHLb078y3YxkX2vdTYwgIfUGpt0bLMsE/vX7DRa9N/NCH/z3SVvV1wmljXb1K6K//htabvsP3VDzLxz99NRvfuhFlIzFBZMuy3CAdKD68mZkZnnnmGUZHR/m+7/s+3vnOd/ITP/ETOzntE8ANKeVNvdY/RDHBrAX5nuSemOvNZtMNfO01sm0sgq0injdu3Oggb7yTMjq9SL1e58h995HN5Vxtqt5ZTQUkFMmDKR/1Pw8rILAdz2w2pqewbQLSoY3S8DIYRLTb+HvAJZ3ECYpCSqjglv90+i9Gy7ssr0ZxmcIVoaL3ymwFhHQ3DjP12A90/6QTb5SxAl4yHiMejzMwMIBt25QrFcrFIrMzswihXLPVSpVkItYZvNNrVev0KgaNq2OKjPzP0cQ2VNms+rtVLOJYAYTdxgkG1RdWltV9mmCb7/l4AT3o3UEJ61rZLIgcCoW47777+Lf/9t/y8z//83zsYx/bkn9gjWzE+rIRf9u3CCFeQvWR/5yU8vJOTn7XNXmr1WJ4eJiTJ08yNDS05/MYkG/kW5tNJJPJdJA33ikZHZ/kpStjRCMRclnPOvCTMUq8WeCGlMBdhZRa60ovQCU0t/rRo9jJFGJlBSscRJRWqb7+9Z2Rax1V8ueTVZoJM3Clw4fX+4e7ADPpqCO3jQdopEdG4abqMefRgSp9v45kzaQT/0YWIJNKkUkrjvxKeZWb4xPMz80wVq0Riyd0N1maSDjsa14xfrfRto6yPEQnU62UeMVA5p7On8O6dBnbccCxEVaA9vnzekH+PnjzPJVdlY6G9jQDbSfNKYlEgkOHDu2m3XSjF3at8/V14D4p5aoQ4i3Ap1CkjtvKXQO5lJJbt26xsLDAgQMHbgvgsHlBzGbUyHdCHMfh6tWrTOdrnD13nquXL6l5YWtM5M6/+xogMFpVVaSZUFm73WJk5Ab1ep1wKETuh3+Y3r/7O0LVGs63vZH6t7wOubjo08B459JXMS+/NIEr0O6AYYNVG43beknnmhzpPUvlXRgNKTrvy0SlpdGk6gz+LjQ2Od4KBYlGIxw/fhwJ1CoViqUyN8du4tg2yWRK15inCAQszwrRcQ3zO3BTih3aXlkBtV/+V4R/6ZcQ16+DFaT5M+9Dnj2rg4rSC0T4XCcJdO1Bi8POesn3UAizLeuLlLLk+/tzQoj/IoTokVIubXfyu2Kut1otLl26RCSifsHtdvu2z702gGeokefm5nY8mdR8byeavl6v89JLL5Ht7uHAkUFA6BpuNUXT8QHPX3gZAFWcYT5z92P13VqtzsjwMP0DA2SzWZ2jLnHzu95EpVIjlUwSrVTcezUuvt9kd10F6ZnZ7gvsS2GZeJ1J0/kpmywPscp0F7jjl9x0nS/yt06j4gXN3I1Hg9Fx0FNHcc+PUIMcYokkA4OD2LZNZVUNcpiemiYQsEhnMjpqH9OBOl0jgBcTMBdz6bFyOaq//uvcuHaN0+fPu/ekHoHfJ/fWnYzsrBFlI7kbveTA3wMnhRBHgWngXcCP+g8QQgwA81JKKYR4AvU6LO/k5Hdck5u68OPHjzMwMMD8/PyG/Gy7FT/I2+02ly5dIhwO88QTT+yaRmq7mMDKygpXr17l7NmzVGSEYq2pzFshQDpIxwwLQPt8Xq21Df7YkjfCV0B5dZWx8UlOnDhGIpGk3VYzrLt7euju6VGbQLXC0vIylXKZq9eueukqXYwh9TpMlbsZlmBeYjdFjd/U93rWXRvZp5k1dF0T2TPZhbuJ4UvhOWJNqanxn5HeGhwV+TPEiAJf0Ez/PjOZDGnNvNNqKg64hfkZqtU6sViMTDZDKpUmEgm7G6bZoBVBhC4rchyscNiXVlxPXGlESLnjRpSNZDtzfS8daFLKthDifcCfofTEf5NSXhZC/FP9+W8C7wB+SgjRBmrAu+QOc3V3FOTFYpGrV6921IXvZjDCVmIAalJwR44c2bULYDrRNvsl+QcnPPbYY4hAiJn5kneAGXogPC2mv+n6yuYTvxaXUlKprNJstrj//DlCobByPTQI3Q1BCOKJJH1WkFazxX1HjqjhhIuLTIyPEY3FSKczZDIZwuGwjprj+ei+ULuFVMSG0m/Om+sZq8R8RbrDDIGOQhvw0yYD0ldqqv35tZNR1F5iKZfA8K5hLChdkeaPDwgIhSP09PTS29OLIyW1WpViocjY4k1s29Y8eCkSybS3qesT2FJqE98LtMF6imWASChIKrr3mom7RRghpXwORfHk/9lv+v7+UdTwhV3LHQV5Op1ep1lNCu12JRAIsLCwwMrKyp5ScLB1o4tt21y6dIlgMOgOTri1XHEtRIUPiW07BMxTc99t4XZMdUaCHdq25ObNUVqtNgcPHlS8bnhBJkuDTrm6Kndu0kbBYICurm66urpBquaKUlGTJbRtxRCTVsMJEaIjteZoFW0Z37xzyfo6uD81ZZ/G7PdV4eANRNDPQXrNOm6QUR/vzkJUXMfuu+AyyOoVmPoTy2wUCJ81IkjEE8TjCYaGhmjbjuLBKxSZmp4hFAjoe08Ti8V1w4hnzpi+eDUoUbprF0JsS+20nbzSWGHgLjSorDWdA4HAbfvktm2ztLSEZVm3VSG32ZAGw8x66NAhDh48CKyvUZeoe3ENQWV/qr+4VSZeYEtKaDZbDF8fpq+vh3gshmWZmVu+MJ27ORj/3uvMdls0tX8Zi8dVumpwCMexKZXKFPTM9UgkrEz7VJZYLKpaL6VXs+0CCG/D8q/Y1JVL/UM3hWfy5hLvm/57NdaKLw7gxiukR0Rpdhp1fuHm36XsPJfv1O7OFAhYdOmctASaetTw3Owc1WqVSCSCbbdpt1uaLEODXbtT5p6DlkVmh+2km8lOAm+mLPblIve84m23YthZTQfV7ZTAbqTJTfGMn5kVVL+4CwBcFeNqMCnRkztwOd7MywRQWS1zY/Qmx48dJZVOMzU1jbQV8MwsNJd0wedIqxJLS5Mn6JNJT/MZQgVLWHrQXhbHkTQbDQrFIhOTE7RbLVLpFNl0hkQqqYYqrvPeTLebR5FkAOZGzV2n3pSa+hxc33cksMbCd6vnvL1BeAA24JYeOYXr4kDHQAR1baF8fB0wjEQi9PQq014iWVlaYn5xkRuafSedTpNJZ0hpplezj3RvMhFlN+I4zrac6y+nNlO4hxVvexHTDXT+/HlKpdId6Sk355BSMjo6Sj6fX8fd3mjZFGpq+IOFxqBQ0WN0QYs0GrnTHQVgfm6OxcUFzp09457XMKlKvIIZo9X8pdMmtWV+5L78LooElqXNW9OqKdSM7f5olMH+flq2Q2W1TL5YZHJqmlAgQCabJZtJEYnGQfhq2d1glQ+QaFPfVy9uquE6CB2EB0ZlzHTW17tMOP79ou0QmLqlgncHD+Ia8NoE8K/He66d9FpCQAAVAJQOhCIREokkR+87TMu2KZfKrORXmLw1STgcIpVK053Lko2luV3ZCef6q9pc32mDynZiZputrq66AKxUKrc9V8qAvNVqcfHiRRKJBI899tg682u+VFPHmxfOvKG+edYBrX0dH1il4zA2Po5ttzl77rzK/bpeqDHB8WaMGSWuNZdpUjXHBKZuYV2/gZ2IIR97DBkKaTNUby7GdcbzaUFZA5msF7luNJoUiwVuTc/QaDRIJhI0Wy2SWuMYkHqpOHNu07KiwnLuxiPYAIjqS/4GGamLgFQjjqRdKhP7wAcQ09Pq8DOnqf3aRyASdrW9Gxz0PxwTKTfFLZrbXYLbZ6/T7AQCAbq6smRzWWXa1xsUS0WKi7N8bWmSVCqlOu66uvbUtPRKI3GEe6DJtxtWuFYajQYvvfQS3d3dPProo76UyZ1hh1ldXeXKlSscO3aMgYGBdcfUWzalatPzSw0wUf82ZAju8EBfbcDI9etkc1kGBo/omdyedYtlYdumVUVBSbHFSJccwqNNFiSGhwl//BmkdAgAzskTtH7hX0Ao1Kl51SL0D4S7CRn/GCGJRML06xZKRXxY4datW9yausXc/LxLfJiIx7GEwDb+syk+0WsS+LvDpBvJdvvj/SFz/WgsSw2VEBLCv/EbBMbGwVG9DFy5Quj/9//F/sl/5COP9L4s8YBtuWZ+J/8cCB14C7gbsqM3PAuIxiLEYn2c7E8TsASlUomVlRWmp6dxHMftF9+KJMIvd6kY5q7KHQe5nybJ/HunYvLTG1Ej34lUXLVaZXFxkUcffXTT3XahVFv3QjsS1VlloSLG+H1HyWqlyuiNGxy+7zBdXTk3f+snZxbCT0EsdV5Zazm8slFjng48+ywyHELG4wjHwRq5gfW1r2K/9lv0BqR3BCndIh3cfcdn8spO0AUDqpsqlUqSTmeIx+OUSyXm5uap1arE43EymSyZTJpgIKgKZKRyI6ROh3mFJoZ6Wbr/N4U3FkJ1oZk6AiGxRm4gHRtpWVhS4rTaWNeu0ZadZbP+2IZ7G76gnUsMqTdfUxXnv3dviKGaaxbUjSiZjEpBHj16lHa73UESEY1GXS0fi8U2fHe/6aPrexUpJWNjYywuLm5KjXw7IDeTUarVKidPntz0l1BvtVmtt/D/av1D/NCjizw/UrK8tMzU9C1OnT5DNBb1fOeOF1ZvGo7jmungeyHpJDgEQahSQeRyqMieXku1ii3ADQbibaKmDt3UqEs6aYcldETHzOYSCYWIdHfT3dWNBCrVCsVigZGReZCSdCZNJpMllUi45/SftMOq0M611Dugy9FiOmWOHkFOjCPabXW/oRCcPOnGAqR2Y0wKUUi/xYRrnZjSVDcqrznXhDbzJV46UQA9mxS/BINBent73XLoWq3GysoKo6Oj1Go10uk0XV1d5HI517TfrphqdXX1ZUXiCC8DkBv/OB6Pu/npjWSv5nqj0eDChQvu2OGtLAuXuw3fy+t4/q6ly9eMWTg+MUG9Xuf++x8kEAioV89SmsaxJcJ3L8KycGy7ExXa9BTSq54z0e7y6dOEb9xAZNI4LTWBxj5xwtN4jgdio81dEIi1oDfFOt6mYsgOTXWbyQ4kEwlSiQQHhg6o8cOlMguLC4yPV0kA2WSCxOABwtqPFj7QC3xDFaQJvAVcfrvG+95H9Pow1vwsAoF97Cj1H/9xL/CG0Gk/cwqzkeH+KfUO1hEwlNrUkrjXNy2l6djOG1FisRgHDhzgwIEDbuHV8vKy202Wy+Wo1+tbvkMvN6ZWuAfmupGNasaLxSKXL1/e1D/2y140eaFQ4PLly27zytjY2KYbRb1lU6q1OtZp0kaueQ5Ix1YNJsPDJJKqrxztk5q3TrWB+r6nWVql8W9db591uSdhCYQtmXn6KbJ//TcEXvg6pNK03vtenMP3dXSTeZNMTaBLkyxo8fLOXgBR6HVpg2BN6yiemwIEgyFFb5xNE/qVDxH4n3+FtASrx09w7ad/mkR3tzvEwBLuWV3QurXy+lnKbJbab/8W1uhNCAQQx46pIYW4xg/Se9Lu+cyj9c4uvXuXch17qudO7JxLfa0oBpyMm1Y1/G8zMzNcvHiRWCzmmvZ+1t9qtborFmC13m1ZYYT+/C2oYYc/IaX8+k7Pf080+dqacT+BxEMPPbSjQMVuA3i3bt1iamqqo8R2K2tgoaS42/zace1k0kDAotZoMj55hQMHhujt8brezIZg/HS/1hTCMgSori/teQCmHVKCiWYLCzsSpf2B9yumV3CRZwgglMbuJNIwYMGswQTPjAjh+qrG9PZ41NaUmuI9B+uPnsH62/+FsNsIW5AZHeXBP/88i//4n5A3xTjhEKl0lmw2o1JMUnvsxr7XfeEiGEKePt1xLTfo6I/laNYbW1spHerBV7hj+stD7rr1NiUhEQ0R22Mjylox/G+Tk5M8/PDDNJtNVlZWuHFDdRNmMhlu3lQDNXbDl6Df6e1YYb4P1VZ6EtVn/jE27jffUO4JyE2u3Gjjy5cvY/jddvpA1k5A2Uwcx+mgd/affzOQ+7W4SZtZa4o0QFKt1SkvLHL27Fl341BAlljSEDZqEJuAmAabsBQLaScDuffy4wbdPC2ECc7haWi1JgHCcb/rbibu5+D+32hUDIe712Pt6OMNpZIBnTsSWapNyHrxRUS9gctd12piXbpMJpslk8kiBDTqdQqlIhMT47RabZLJFJalrAHTTWYu4m5GQvnTZqSyn+Ja6hoAy93IMCraHYhgnr/jOFiBsPtMTRlud+LOEoeA55PHdfXhwYMHcRyHUqnE7/zO73Dr1i3e8IY38H3f93384i/+4rbne/7552F7VpingN/TDSlfFkJkhRCD8hs1n3yzXHm73abVanHhwoWO8tGdyk7M9VqtxksvvcTg4CCHDx9etxbDUrNWFnVe3K+9/FrckZLp6WlWV1c5dOAAiXisI/rr70IzddPmhTVsMQBt2yvvVU0rVWI6bdUZBZeKEFJvFN60Uta9yBIzuEF1wLmkjcIrZVVBeOUiKF9egHTcklN/d5hrVOj7kI6EQwcRAQG2su+dQBBnaMj1/yWSsB7Z1NfXh3SgvFpmbnaOWm2FcqlEOpPRWj5qblID1vLmpukFC+FV1/nvxcwdN9u0C/aOpnkl0XCA1G2WsG4kGzGxqvHTWf7dv/t3fPGLX+RTn/oUL7300o7ON61qBrZjhdmIOeYA8I0B+UYSCASYn59ndnZ23XSU3ZxjK01uJpNuxe22kSavt2yKRosbsLq/REmr7TB6Y4RwJEJfXz9WMNChjUG/rybf5gOLny3G0j2XAontOAxfv44jJc1mi0g47IIgHI4os107tgHQRI2drZ1+l9XG82ldLW6CcXhWsDurTR+jNibp81Ewqt0NqkkEzXf/A6wvfgmxsowlHYhGsX/2Z901uF1q+rzCgkwmTa1Wp6srRyqdplwqMX1rinqzSTIeJ53NkkqnCFpBd1N0/MUz5sGi7t2tQzetu9Kry3f0SCe/u7JZRP1uiir+kXR3d/OmN71px9/Z6Mdr/r1ec64/ZlO56yA3UcparXZb1Mib+eRmGOLCwsKOJpOuPceCq8U9k9IwjzTqda4PjzA0OEBvbx8zMzPYducmYTQMxsT1Xw//b0KZnfV6g+vDwwxo0gghVMNFoVBkfGyMVtshk07Sbtteq6bUloH0XmJ/kMrywni43V6+jUrVppuOLNPlZiwB4TufV+VnYV5agZVKUf/t38Z68QWwbZyHHkIkE+7m4TaiSNWAY5pbtJ9CJBIh0ttLT2+vW4xTKhaZm5lBBAKqzj6bJR6LE7AsF+x6n/NKab1fuo5laEtEqtnk5ncRDux8rtluZasW7mazuWtuQW3RbskKww6YY7aSu2quG3aVUCjEsWPHbov7fCM3wE8esVX6zchaTW58cQMRIQVCa7tSscjNsXGOHz9GKpXSfrr2HX0R4M42TM+EXtv4YQlBs17n6rXrHD92lGQqRavVwkIQjkTp64/Q19+PY9sUS0WWlpa4dvUy4UjMjfKGw2Ffjh1M/ku4aHC0lvPoktwuMk0HLaVy5y1hGGDWcLZtYOIjQUTC8NoncAyAfeuQmr7F352m1uQgRMDbNFDBy1QqRSqZ5ODBgzRbLcrlEvNzc1QrVZLJBCndYBIMhfxVrV6ATmtvs+NJx1Gbg/7ZnWhE2Yvspdrt8ccfh21YYYA/Ad6n/fXXAsWd+uNwFzX50tIS169f5+zZs6ysrNyRnnK/VCoVLly4wOHDh3fM374W5PPFmv6bDnxJiWPD/PwcS0tLnD93lkgk7CuGMeOLPbPeaFehtZ6JWpmGFONXFopFCsUiDzzwINFoRCPJQRWtGkNeuSXZbI6Z8Cxnz51TAS3dQ27bNqlUmlwuRzKZUN/S1/Fy4fpehYV0pOvvGlCawJuj12tqxF0qZA0i6btnNxi2JoovpUQqYvQOFlTXr3cALCy9KQrUhmJLrxElFAz6euZNMU6RGzduIJFkUhky2QzRuNLy6oy4ww6Repyype4hYAmy8d3xnu9Utht0uBdWGN3Rth0rzHOo9NkNVArtH+7qGrta0Q7EUCPn83mXGrlYLN5RkJsyxAceeGBX/r0f5PWmqm7rrLeWjN68iRBw7vx5BSBDa4ziEHfstqupXURJ3Hpp6TiuyatKPCVj47eolMt09/QQiSpzTpW0eloOdwVeCawQgmgsxkA0xsDAoNbyJZYWF5gYr5CpVDjw7J8QyecR95+n8Q/fA/E4psNNWCAcD4DB554j9Nu/Da0Wg48+QvNn3q+uaar4jG/u5t/1moy7wJoovrlPPfJJFeqoyaZqz/Ci4sb8VvRYouMa0rsIiUSCZFKRRbTaakbb4tIS1dVVIrEomUyGrNbylm4YUiOP1VbSlYi4TSt3Wr6BrDAS+Oldn1jLHQf54uIijuN0dHfdKQooKSUjIyMUi8V17aE7ET/I5/V88YAGQKPZZHj4Oj3dvfQP9KNqrs0cMf0/HRwy5rdEaSVVXWaCYp7Jbrdtrg8Pu6ZpvlDwzinVNBKAYCCgus4ClsqV6YoXYWIE2iy1AgGX0F+WSsR+5n3YpTJtIQhO3cKZmKT+r36ZWDzhAtGNYn/1q0Q++lE3Mp35X1+knsnCBz5gvHmf6yE6wOwCErVxGdYZV8zeADqt5wUBrbUa3l2SOZ9nHfhFAuGQKsbp0mQR9bqa0TY6Nka73SadTpPNpHGcNpZQ01VyibujxWFnJI4vt+YUuAsg7+/vp6urq/MiwSCNRuO2zttqtajVakgpFf/aHnwuA/J6y6astbiDoFwuc3N0lCNHj5L1EUd09IwJb0SP43vpA6JD3WFKO+t1xco6ODRET08PpVLJZwGAkEorSClpt7V1oDVSwBJILHewgKc5QQiV3gvcuAGNJoFMhpDjYAPRkRtMjk+w6kiSiRjpbI50OkUwGCL45S/jtNsQiSCkQ9sKEH7+eRrGjNf+uT9q7Uel479HbR5Lb/dTh+nnpO0RvSH6fXS04+7omNx6t8DdWBxHFcHoCj0bQSwaJRaL0T8wgHQciqUSK/kC5dIq4xMTHBnsoZkNEdxlxdlOZScdaC+35hS4hym029HkhrwxHA5z4sSJPQdVDMhNdZsQgvmFBebm5jh95gzRaNR9r5XG9a5jjncce52/7Qa4UFtCqVRk7OYYJ06cIJlI+sxeh7bj4EjFbh4IBNQ5AwEkqrjFdhzq9QZSOqpjSwiPJw1MdItAMIhwHIRtIy2BcCSBgODIiZMQDlGpVikUiizMzyOBY0KSE6rnXdEtO8hkwl2b49fMJkJgUlnSGDLaZNduDAKXAFL4NkSzVumOcPHSeP4cv6J/Fu5m6/+1WpZlPAfv9+B5EGAJspkMuWyWer3OwYMHyUVstwItm826zSW3M4veL3eDqfVeyD0rhtkryGdmZhgfH+fBBx/kypUr2+6mW4llWdSabUq1Fo5tMzE5QbPZ4oH7z2NZATeY5EiJY9oq8ekq/UJ2/Nt3jJSS+YUFFhYWOHfuLKFwxKscEyjQSoeA9h/Bi8IHRABHqDTM6M2bHD50EJA4tgN6Tea+Lcuife4c1rHjBEauAwJLSNo/8KSKgoPybRMJ5IEhWq0Wq9Eo8S/8DcFiERDIgEXxPe8hjs8Ex0sfghdUXBPgxvBdqdCh+cDf4+3eHKaXwX0v9MMyJru7Saov4G4U/uPcDcKfShOeseE4DHSlONyTBg7jOA6FQoGVlRXGxsYIBoN0d3evmzO+W3kltpnCPS5r3Y34Rw8b8sadlrZuJpZlsVJpEWu1uDEyTCqd5ch9Rz0Npd44l45JSgchLDf3a2h/3UARdESfb02MUW+0OHfuLAEraD7GkZJIOEylWufq1WvksjmyOUXS4PZlS9WwMzk5yYkTJ0jE4zoCLnV/uqMAj9L2CIH9y/8n4b/4C8TsLPLcWdrf9u0ea6xmTgWIhEOEjh7F/q3fgr/+a5qrq0z09VFNJAlevUo6kyGXyxKPxXSWwSs19Ux2fCD2Rdm1g+K6FuZ54FkHxs2xLDe04TbmCN8lYI3Jrq+v8u7STfOtlbYj6Ul5wzUsy3KbR0B1Ii4vLzM+Pu52iXV3d3e0kO5EXomsMHAPzfXdMLYadpienp6O0cO7bVJZd962Q6HapHD5MvcdPkxXV5d6RaVLd9ARbTcll8ZuCJhmDulxtgkkrbbN8PAwqVSKk6eO6kkiGuCOVNZHIMC5c+ex2y1FLXxrilq9rlNiGer1Bisry5w7e5ZAMOhOKwlYFo6QCCxkwKT59HSVcJj6932fAlAggJCSYEAViUjpgcclWcikcZ58KwFHIsbHOdrXTyQcolAsMjM9S61WJZlKkc1kSKVSBIJBNyiHr3LPbSYRKh9voUp3TbANDWIpvdpzo+ldQPu0tyXMdJYNtL3x+5XDj8Dz8825YiFBPLI5WCORCENDQwwNDa1rIRVCuBtCKpXaUsvvJIV2u+PA7oa87Hxy0x56+vRpPR53b+fZSK6Nz1Cv13n4oQeJxmK4paLCC2yZ5gyJ4e9Wr64ELCuAbaZ2oPzRWq3OteFhDh08SFd3t/YhlUhH0rZtVQ1mAnXhEH29PfT39WI7DuVyiYmJWzQadVLJJEvLy3Rls4QiERWAc6QbD5DaZDcvopQOlg5StR0HISUtxwaEAr2rKY21YTSpqpGzUN1VPT3d9Pb0YOtqtGKxyMzsrDvlJJvJEIlG9XpMANAbBeXW1huweruL2lxc/nY6tLcOQer0mtkYfSa79P6ujSyd4eh0H9LhnZvfa1tITTfZ1NQU5XKZZDLpmvZrszc70eTftD75Tsx1MyBxZmZm09lmeyWOkFJy8ep1JqZXiEUjLi95wD9HTPii5loduSksvHSUMjvV91SRyoRbFScEms1ERcpd7aQ3Dn/3lJASpMP8zCy5riyHDhykVq9TKBTcFFE2kyGTzZJKJgAFbtOAoh6zKuXEslCvo6TdVvxptq2IJpRGtFRLqS78liaFZXxaCQhVB5BOJUmnUkgpabZaFItFpqenqWsCyEw2SyqVImhZINRwRTM91NEP0xSrONL7zNA1+W1xly7ZxAJQvwhX20vhtpyaZXrRePWDSChALLS3GA1AOBxmYGCAgYEBpJSsrq6yvLzMpUuXcBzH1fLpdHpHgbdvGnN9LXHEdua6bdtcuaI66x5//PFNH+ReNLnpfFuVYU6fOcPFCxcwxrmb4pHSa2sEV4OYVxG8MlDHbuM4MDc/z9LiAmfPniEaiaAVKqDMOikdVU+N9ywcPYfMElBvNLkxMkJffz89PT0IAbFYlFhsgMGBAWzHoVAssLS0xPj4ONFojFwuQyaTIxQKgpSaqMErOpFSEAwGFRmjowJ2bVtF87GVX29ZxpyXLuljB82yvmUhhCKA7O2hr7dXa/lVCoUiszPTWIEQmUyabDZLNBrVz8417rU4PqtDn1d6OXJ/QM7lszf5eOGB2sW1MePxwN6TirCyx0DaWhHC8N+lOHLkiMsBNzc3x/DwMFJK15/fqEfim9on30oDm/bQoaEhDh06tKVPtFuQVyoVde6Dh4mIuM9E7ORuk66GlJrkQLGemq4016fUgB0bH6PVbHL+3HkCwYAKVOmXz3Ycl+dNAcYbAihQfdLlyiqjozc5fuwYiWTSM3MBo6IsYdHT1U1PrgtbSmq1GoVCgZGRYWWiZjKqqSMRV1oSAwyj6YXaZCwLSyi6J9tWTS9SSuxWE2k7mt5KRcWEL6xtGlfMZhewBOlUmnQqjQVU6w1K5SK3bt2i0WioJpNMlnQqpYZOSJC2LjcFb5a7Z9y45BXGNPHcIOnGFQKW12LqB7uUqhElEwt3KJQ7KX4OOCklw8PD2LbNtWvXaLVaZLNZuru7yWazWJZ1W8UwQogu4H8AR4Bx4IellPkNjhsHyqjiwbaU8jXb3seeVrRL2Qy4O2kP9ctuoutmMsoDDzxAvmlBveXSHrkEgcL/4mhAOz6fUBgSCT0NxJEUSyWGhoY4euSI9g91+E1KHMdWYLaUtvKnf6RuGskXVpienuH06dPEdV7eaEDLD3af+yDQKbF4goMHFPfaSr7A3Nws1WqNZDJBJpNTDKvBIIYQUQrp+rZCCEKhEI4jmZycwAqGiMXjONJWa7QVi6qwLNeNgc5AmdmsbAmRaIS+SC99vX04Uo1sKhYKemRThGwmTduxO8xvz1zHM9lNR5xbc+DFEMzzUx6J17brb0S5VyKEspJ6enro7u7Gtm0KBWVpjY6O8ulPf5rZ2VlWVlb2eolfAP5SSvlhIcQv6H//vzc59jvlDuaSG7kn5vpaMeysS0tLbn37TmQn0XVz7uXlZR5//HFsLMqlsk8b443mMQFdKdE8SL6xwOplczQhYL1eY2RkmFgkwsGDXkOMQPdBO7ZO/1guaJW7qt5UWzrMzsxSKpc4c+YM4VBIN2pok1S/5JbwUmrmfgBNlqCCZVYgSE93N73dmmF1dZXlfJ6ZmWmCwaAqBMnlCEciKsJvzGPb4ebNUcKRCCdPnFDPQ2tytUk5OLaN3VYklAEhtFb2fGbfHuSa1pYIaBrnLEJAvVanUChSWV1ldPQG6UyGTDpDMpVU8/LwGkzcbj1LuO6Oq+3NJinVBBe/vx8KWGTjd0+LbyR+nzwQCNDd3e1Sh6fTab70pS/xkY98hH/+z/85f/M3f7NbQsengO/Qf/9d4AtsDvJdyT1na22321y8eJFoNMprXvOaXRW2bGeu27bNxYsXiUQibu385NKqa8oaLWmqtbz5CNpQ1IEiS3ovmiUE+UKR8fEx7jt6hNmZWdz2TSSOozS4CtQJT1P5wSsdxm6OYQUCnDl9Wg0+9DpfAK/Gey1nvTAA1D/z3A3LvZ9EKkUilcISKlqcX8kzNjZOs9UinVFmdCIeZ+TGKF25LAODA256i4DKc0tpqRdYqoyAlJK244CmkUYos9/SNFaG+tgPRPNcojE1sqlUKnLo8CEajQYFPbYoGo3oDSFDJBzWG6n3KIzHoFhZ1fP0l7+aSH4uHlYu1zZprTspWwXeTp8+jWVZPPPMM0Qikb20Vfeb9lEp5awQYrOpiRL4vFBpiP9HSvn/2e7E9xTkq6urXLhwYU+zxUFXem0SwKvVarz44osd1FK1ZptS3WNgNdaiithK1RHlhaq9KaJ4s7dm5+ZZXl7k/LmzCCvArJzxgVczheoKNl9g3k1X2e02wyM3yGWz9A8MeC6CMPl3A5T1JrtXXafXh3fytccLFACCoTB9A/309vcjbZvSapnlpSVGlpeJJRKaAqulTHf3HJ71YVmCsBUCJLYjdaReBRIdqWIOJiVorBQTx/A2KP/mFSCTzpDJZJFS0mjUKRaKjN+8SavdJpPNkstmVFONsNyvmk1M6t+HaReSuuCmS5vq9xrkW12rVqsRi8U23Qi+67u+i7m5uXU/v3z58lO7WMa3Siln9Cbw50KIa1LKv9nqC/cM5LZt89JLL+26PdQvm3G0mckr58+fJ5vNuj9fKK6ZaabySdi2JuOX3ixwKb2hfkq7OEyMj9O2bc6ePYdlBWjbbaRUUWuhNZ6/wsuMKTKR4Xq9zujIMAcPHSKbzfrTx0qEYTUR/r3GB/rOijA/O6tLbqiP9yaBemALBIKEQmEq1Qqnz54lFAySz+cZHb2B07ZJZdRU1EQiqWsEzAajXQShiB+DupHGdhx3QITtOEgcXW4b0PPORMdG526u5v6AaDRGdEC1zrbtNqVSicXFJSqVCWLRCOlsjkwmQygYUhuh5cUzhNbsXYmwnv7aOT3lbst2XWimjmEz+Yu/+IvNPnpWCDFvyBmFEIPAwibXmNF/LgghPgk8Adx7kPsfumkPbTabvO51r7utYoG15rrJrc/Ozq6jfqo125QbbfDpQrfZQ7qQ7yi9dAx4HZtrV6+RzWU5MnTABWHAsrAdlZZS6SFLV5ihI+wSU+xRLJWYnBjn2PETxONxz8wWXv372uCW0sZeE6bS8ibh52lvL8/suSDmJ5YJXEmp2VMnOXniJNFYDEuo/vTBoSHsdptiqcTiwjxjq2PE4lGy2RzZbJaw1vL+clJLP7tAQK3L0sPF27YD0lEcj9Ir1jE0TiqNiIt8qdcvhRlOqFtnHYd6Xfnyo6M3kA6k00my2RzxRMKbqoLqGTeyHfDupGxlrnfU5+9N/gT4B8CH9Z/Prj1ACJEALCllWf/9/wX8m+1OfFc1ebPZ5MKFC2QyGXK53G3vuP5UnKFellLymte8Zt3Dny/V9d86c98KZDaCQMfgPBVtF1RrVYaHRzh08BBdXTn8pico4sXFxXmy2RzhcFhNIsEzeYWQLCwssbC4wJnTZwiGwx0muGsimzSdfiaO9KaPuJoasxFIb+SRBj2OxExl86L4OkAFrCwvMzs3x9kzpwiHI25swLgHgWDQLfSQEmrVCiv5PNevXyMgLDLZHLlchkg07k5ZVU9TuTSWDsiFAyqQ5qXodABP/yelTdtRG4Rxl7B86TSzyVoWsXicWCzG4NAgtm1TKpVYWFikUhkjEY+TymY41N9DOOhpy3upybcrhrlNoH8Y+CMhxD8CJoEfAhBCDKEGLrwF6Ac+qa8RBP5ASvm57U5810BeKpW4ePEiJ0+epK+vjwsXLtw2cYTR5I1GgxdffJGBgYENqZerjRaVesvLv+CbjWUJ2rbECqzvdc7n84xPTHLy5AnVwYUX4XX0C3z27BmKhTxjN0ex2zbprDJ543FFx2Rq0s+ePasqzYTOOmvEmkEBphDFaHWj+bzyTjyN7U+tSRX9NyAzOXKVe5bYDszOTlMur3LmzBlCgWBHsUzAZD4E7iYiBMQTCeKJBIcPHaLRbJIvFJjUOfB0KkUmmyOdSoF+yf15a1svOGQmrkqb+blFTdekXB/p2CBUp1/AsnwZjDXuhrGaAgG6NEEGSCqVGsVigfmJG+SnVL15d3e3dinujU++FYhvN8ovpVwG3rzBz2dQ1E9Ixc3+0G7PfVdAvrCwwPDwMA8//LBrnu+lE22tBAIBarUaX/3qVzecfOpev9zQwS2l/rRHp/KtupPM76erCrZZVpaXOXfuLNGwIupX6TMdCdeWQDwWJRodpH9gkHa7TalUVPnqSpV22yGZSnHs2DE1A0yD0F/oohhndP+0L1Xmlrv6tCZSBQnXDldQH8mO45WfLJmcHEdKyalTpzQppd8Z0G6CPrfUm55hq3GkqgIMhUIM9PXSp4tAyqUS+UKBqclbhCNhMtk0XbluwuGwSxpp1iElzM7OUqlUOXPmjN5MhErN6WBlq62ssYAV8Kam4t6ySdZhrDALQSIRp787zX3dSVqtlltvXiwWAZifn9/zzPHdyGYgr9frG5ZivxzkroA8nU7z+OOPG5I6YPedaBvJ4uIihUKBb/mWb9l03lS10XK520xKS/ii5sKykI6j8O+on42OjSFtm7PnznlkBaigj619TmFZHdrLEmrj6urqJplIMTwyTE9vF1JKrl65QjgcJm3y1eGwO+McE9VHurlgZXQrLWw0vMrXqwva7s9QUW0MKKTPDXAYuXGDRELxowmhU4FCIISDO4zBn+jW/zZbb8BE/qW7PCzLIp3JkNYNHfV6nWKxwOjNm9iagimXy5JMJpFCMHlrErttc+LECW8KjQBLBNV9Og4S1SfvOLYhiUEIi4C6oBdAxGsYEgJ6tC8eCoXo7++nv7+fgi7AqVarTE1NYbrKuru7SepqwnshL1fqJ7hLII/FYusAfbujh69fv061WlWlnFvQ+yyUFc1UwM2tKmJBdEDKpGYcCa12i+vD1+nK5jgwNGRsZEwRjPL/pdb+nq9sae0kkFSrVW6MjnL0yBGSuvhBgGo2yRe4efMmjt0mk8mSzWUVUwzeuUBpaSnNmk26r7P7TGlKfT/gAQBotdqMDF+nt7ePvr4+L6UGKhOA8KwXvX6T4vO7Ap3WhPGbHTd4ZktJNBolGh2gv19RMBWKRRaXlhgbn6DdtonHoxw/dlyRKfr2E9cF0b65ql5UgU5bKv/ddiTSttWGqs1wsydFgwES0fVaWuo1HT16lKNHj7pdZZOTk6yurpJOp92uMr/SudPycmWFgXsQXTeyV5A3m01eeuklurq6OHbsGBcuXNj02GrDY2A1QSx3zpc+xhLKR6xWq9wYGeHgoUMq+GTWLg0CzFp9HVK+OLgtJfl8nqmpW5w6eYpYLOpqHEdCNBplYHCQgcEBHLtNvlBkbnaOaq1GKpkgm82SzmRdnjfwB7d0Og8DZs+16AziqUo8cx/ZbNYFs4tiOqP4xhx2i4PN8dJXcOOC3esdd+enC+8gYVnkcjmymQzDIyOk01FCoRDDIyMIVH19LpshkUh4feUI38alaZSxCAbV78W2bYQmobCdNo6jCCy7shubwmvz5P6uMtM7vrS0xOTkpFultheGmO187m86Tb7hhYLBXZvrhtvtxIkT9PX10W63t6xdXyzXTSxdiVxfo25ZFsVSkeXFJU6dOkksFu+okW47tlvKKrTG7ihC12b13NwcpUKBs2fPEQoGPY406Zs6ZCLpAUU/1NPTjeNIKqurrOTz3JqaIRIOkst1kctmCIWj4PPT1SnUzuG+ZJpi2UJSXC1zc/Qmx48f10Ays8F894sJZnkpOD+ITVGP2VKEm++S3pbmu775riWURWTbbW4Mj9Ctu9UcCQeGhmi22hSLBWb1xpZMJshmc6TTaYLBQOcjRbtSQhDSRBWWDr232w4hCxJhi1ar5Wp4A+ytimHW9o4bhpixsTFqtRqZTMZliNkuDbddFP/lSv0E9xDkgUBgV4ytc3Nz3Lx5kwcffNB9eFtZA9VGWzOw+pJewpsAIoVAalKEVtHm/vvPEwx65p8AHMdW0zgC2jzHK3d1X3SpxjIhJafPnFbXWFOkol5eBRRLR7HdQJcQpNMpkqkUlhBUazXy+TwjozdxHEeRE3blSCTimLpbEwvw+/XL+TxT09OcPn1aD2vAmzXu27TM8W4KTi/NC26Z4/0g9nLz6mfq3iyhNjhQVker1WJkZJjBwSFyuVyHuR8Jh+jr7aanpwcp1caWLxSYnvbX12cJR6JuGlFF2U0Nv0pJhkIWQ7k44XAI2za98rb793a7vWONvJYhplgsuqAPhUJuLXosFlt3zp3QMX9Tgfx2zHUp1XCGUqm0bnbaVr9MM9NsXU+41sg4kps3b9K2bQ4ePEAwENLn1F1NUpVxmmivQL/U0gNBu91m9IZquBgcHFTf1+a8GtLnYOu/r/dzvY3Ar+2j0SgHhoYYHFTR+mKxyMzMLPVajUQySS6XJZvJYFkBV/UtLiywtLzMmTNndNeZL1CnnqJrgrvmuS/IbjYA6f7AcUG1Nnrv3ov0cvDCgma9wfVr1zl85AjpdHqDe5aqTBVFzpFKp0ilU0hHjUYqFEx9fZtsJkU6kyWdTvusJ9WME7AEuXi4I1Xm6Imv7XablZUVMpkMzWbT1fA7SalZ2tUw3Y/1ep3l5eUOtlfTRmre3Vci5zrcY3N9O5C3220uXLhAIpHg0Ucf3fEOXW20qTTaCGmmhUgvL46k2Wpz/fp1urq6iESj2jTETZOZlwYfQFWgSV9AQqPe4MbICIMHD9DV0Rbr5Z0dM0hMiB11k/k8ACxtqhptIh2H1UqFQj7PrVvThMMhstks9VqNZrPJmdNnCAS8llCvDt0XNDMrFJ5Vsiajpo/vLJO19OAy6Ti64Kazpr66WuPG6A2OHT9GIpF0hyOagOHaezYVeGotgoieENvfP4BttymVyuTzeW5NThCJxshmsmSzGULhML3J6Lr3wNQIjI6OEo1G3Rnhxqc375nlC+BtJ9FolAMHDnDgwAGX7XV5eZmbN28SDodV9mALv/zlygoD99hc38onNwQPR48edbXkTmWhVPNFitE+qSJ9qFSrDI/c4Mh9h8lkc8zMzKjecABU84WQjvJz/b6vBoEQUCqtMjZ2kxPHjxNPJNzsLcbP9b2Enblp/TOzowgv5eX6zK6m9I63hIRAgLRmKTkE1Gs1Rm6M0m41CUciTM9M0ZXrIhaPe3Xccs0ARunX4oYEQ7pstODbfOj0u6XEzfWrb6uNb7Vc5ub4OCdPnCBq8sLGStFZCyFwRwx77otvA3KvIwlYAXLZLLlsFqSkWlMpuhujoyAdQkf6CTt9Wsvr+9TVjtFolOPHj6vgnday/mo7s3kboO8U8GvZXmu1mjuf/vnnnyeXy3WQRcDtmetCiB8CPgicBZ6QUn51k+O+F/h11My0/yql/PBOzn9PQb6ZJvcTPOy2eUXlxdv46XqNFl9eWeHWrVucPKHqx1WrpCrMML4dgAj4X2a8FJaAxaUl5ubmOXvmDKGwYVLrDFJZ+k+/b7u2mwzMtoAuTVXkZRsRRng0UZqMwraZmJigt6eHwcF+Wm2bkiZbNBTD2WyOXCaNtAQB14lQm44hg/Sq7Lz7dFNqvmidL8bXsbZCocDUrVucOX2aSERVt0lfbt/Nveufg3Gx/I02vvgG3t4mdIoznogRi8UYGhoiHbUItWvcunWLcrnsUi/Nz8+TyWQ4evTouvdhbVDO7ZPX/xkfPhAI7LhSLhaL0dPTg+M4HD9+3CWLuHHjBtFolHq9zsLCgir+2ZtcAt4G/D+bHSCECAC/AXw3apTx3wsh/kRKeWW7k39DfXKpg1iLi4t7mm0GsFCqg1Bbm5kvbtswMztDsVDg3LlzhHW5pSFWtB0Hu912e6PXprCQylSfnp6iWq1y+vRpQoGga+K7QTmfxu4oSdX3ZgmBFFIX3finlOhecJ+1gOZ4F9JMIhVecGt4mIHBQbq7VZ15OKTN+p5upCMpr66Sz68wPXWLUDhMV1eOTCarRh07SoMLy9Poa/1uOtaGC3qJ0JNRBcvLy8zPzXH6zFlCoaBvA/CmnXrf929w+oEK39+l7xpSuM8U8+z0c+7PJgkF0vT39yOlpFgscvny5Q6w9vT0bJoO88/iA9aZ9Lsx641PvpYsolqt8qd/+qd8+tOf5uMf/zhXrlzhZ37mZ9x2552IlPIqbB1zQnWb3dClrQg1xvgp4BsDcr2IDhCsTaHZts2lS5cIhUK7Io8QwiMKqDbarDbaarf2IXD05k0EcPbs2Y7zCqnqq6du3QIgl8sR0RuLsCRCqhnXbafNzZtjRCNhTp48pSu3fP4seKk60RnUUqDVbDFaZRqNKrSK8xhbPU3mIDxzVy+5Xq0ycmOUI0eOaJYRow9N1F9dNJ1OkUmlkAJqtbpuJ72JlDbptGoOiscTbnWd8dEdDXNjmRhz2jGbmNa6c/Nz5FeWOXvmDCIQ6LQ68AKJ/k1ks9y7Sb2Ztav/e8y45tlk42FCgc5GlJs3b3L48GEOHVJEFIZ6yRRJ9fT00NXVtWmAzGj5YDDYoeUN2G3dOrxR8G6zwFs8Huftb387X//613nzm99MIBC4W0U3B4Bbvn9PoWaVbyvfEHPdkDceOHCAQ4cO7fo8BuTzZTXTzLJUcUq72eL68DBdXV0MDQ665rvCvvqlZjMZYtEI+UKRsZujtG2HTDZDVy5HLJbAtlsMXx+mp7eHgf4BN4UGa0xqvR5L124HLOMPS5+W8zYAx/ECT0LqTUJYIL2SUy+fDeVSUTXLnDhOLB5312D2Mnc9+nijJBXj6yBDgwO02zb5YpG52VlfrrpLccFZAS+lpl0PQee6pYSZmWkq1SpnzpztyNevDSx6LoblbXDmfKq+ds2z8Wl7TOAOd1P087e1221eeuklBgYG3Fn0kUhkXaBscXGR0dFRIpEIPT099PT0bFpP7tfyivvO2TBFZ+bV7YRzvaenh2/91m/d8PPNCCM+9KEP8dRTT216Xp9spOblBj9bJ/cM5KZNNJ/Pc+XKlR2TN250Htu2adhQqSstLhBUK6qC7ciRI2QzGWXy6aCYlGrUkOnGikRjDAzEGRoYoG3b5At5pqdnqVYqtNsthg4coLe3zyV0cIwf6QODiWAbf9RxTFBLaE0GRh/6zXIvum0aZUx/u2fqr6wsMzM7x+nTp5TJLT3WGsVeqv1t80x8m4n0gSgQ9HHBScnqapnllbxr1udyOXLZLKFwGCG8bILUk0puTY7TbNucOHHSl7UwmtgXjVe3qq0AvRnhvYGGedWYo0bLe731naZQKhYiGlKAarVarkLYLCC7NlBWrVZZWlri6tWrtFoturq66OnpIZPJbFk4s9aXt23bLb4yKbrNim+2S6FtQRixU5kC/BrxIDCzky/eM3NdCEGz2eT69evrCB52I8YiWKwohhhLCC/AdvIU8YSua5cqwKV89LaOFluuBrGE0ipWIEB3dw/BQJDJWpXDhw9TWV3l0qVLxGIx17/1V7VJrYQNyFRaTInRaOCN7jX+uaGc8vdne3l0pZHnZmcpFoucO3tGl7wCa3LQBjC2BpvEkEV40fV1ZBjCIplKk0ylsYSkVmuSz69wY3QUx3HIZTNksjkSiQSOVKZxJBzm2LH7FFGEXoeB7saa2EvFmU3Inz7z6x23rl4/F7fQB+hJqXej1Wrx4osvcvjwYfr7+3f8jsTjcQ4fPszhw4fdXPrs7CzXrl0jkUi4Wn6zGNBaX75UKjE3N8e5c+c29eUrlcpuiRt3K38PnBRCHAWmgXcBP7qTL94TTe44DlevXsW27S2HJ+xEAoEA5VqD1QZIRzIzO02hUOT8+XMEgyE3rqxG/+ppoMLSwxPUOUxgzETGZ+fmWVle5szZs6rDqa8fR0pq1VWW8wWmp2cIhULkcjm6cjkVZfcBG3CbVhw2iDhLdT1vI/A0uPKJ0VTJk9jtNqdOn/Z8V9AgUPfksk+a6/q40My2YzSrlLhTTbyUmrIIIlFV/TUwOIjdblEslZibnaVSqWA7kkw6xdCBAx1VfG4KzGhwXyDSL/4go3A3Bf2h9KXtfIrA0ZtBPBIkHg7SbDZ58cUXOXr0KL29vbt6R/wSDAbp61ONO8qaWWVpaYmXXnoJQJcb92w6B61SqXD58mW38nIjLW82kttIof0g8J+BXuCzQogXpZTf4yeMkFK2hRDvA/4MFWf+b1LKyzs6/zaF9zuy+TeSVquF4zju8MK+vj6mp6c39Vl2KpcuXULGu5DBCDdHRxGWxdGjR1WnlDGlkUjd1QSdZqIjvQCTlIqDvN1uc/z4cTpTPZ0ppnq9QT6fJ1/IY9u2aszI5tZ0xPk1HbgR6g6A+AtDdDrLcRi9OUo0GuHg0CGwfKWyHesxWlxdS7WcOtq8Xv/L8hf2uO+vNL3sft9erc1uq6KhVCoFUnHMh8MhsrkustkskUikQ2ObNRk/w3Vj3HWKdYB2/W6fT+8/7r7uJGHL4cUXX+TEiRObcgbcCWk2mywvL7O0tMTq6iqZTMYN3gWDQSqVChcuXOCBBx7YFMCO4/B3f/d3/IN/8A+4cOHCXjekLcPqtyt31VwvFotcunTJHV44MzPjviR7lZYDq6tVZmZG6e7uZmBwsCOya0s6iyBcv6+TD822bUZv3CCRTHLf4ftACs0jJt154n4TORyJMDg4QP+AqtIq5AvMTE9Tq9VIpdP0dHeRSHrawJEeQYXCuzap17z07XZb9aJ39zDQ3+8rpJG+Wu7OQQ2Am1EwAIdO/jh89yv8GQD0G6Uj7SaablJ1g0NDdOVySJQD2GjUWVnJc/PmDRxbks7oIGU8gY8uT6/JA7jlX7D/vmFdxF3oL0aCFiFh88ILL3L69Ok9xWx2I+FwmMHBQQYHB91a9qWlJcbGxlT2plrl3LlzW2ror3/96/z8z/88X/7yl2/L4ribctc0+eTkJDdv3uShhx5ytd1XvvKVDfnYdiOf+19fZX65wInjx8lks/gUFKCIBV0mGN9eYv4uJNSbDa5fH2ZoaIju7u6NS0Hxot0mMrxWw6vrqvxtIZ+nvFomEY2T7lIBLXOfnl/s03COpNVqMDw8zNCBQ+RyWXetfg1soGEh3ToAl+rRpx39v0ZTzINxW9xU1cbavl6vc334OkfuO0LKV4feoe0RNNstioUChUJBjTmOJ8l2KXZVYZny1w0sFq3mhbY65Ib3CF1RweSNa5w5c6aDdfdeS7Va5YUXXqC/v59yuUyj0SCXy9HT00Mul3N99hdffJGf+qmf4o//+I+1Jbhnuaua/K6BfGlpiVgs1pEz/OpXv8oDDzyw44kpa2Xs1gx//bXLbicR+CLLWitaltF6lquN/S9SZbXCzbGbnDh2lHgypTYE6Vqc+gXs1HxgXlQ/uaIfZF7LZrVaJZ/PUywUCIaCigE1lyUSjvi0HJRXK4yOjnJc138bk9o/p9vzoztNdoAAAhvZ8XnHmKWO433zQzUAzXE1TXpx/NhxPVfN+54J5G1k2hv/Np/PUyoWCIcjZHNZl+Byo43TrC+AQFrexiwltJoNanM3uf/++/dM2X0npFqtcuHCBc6fP+8G0mzbJp/Ps7S0RD6f54UXXmBhYYFPf/rTPPvss5w6dep2L/vKBHm73V5X4fbCCy+oGWBbMLtsuAipOsiuTC4QjCaIRiJuIAUEtmODfiFN4YoSRWmszqEYTGdmZzl54gSRaAx8BSAC9KQkz+TdSNv4XFAQxlTWkfo1xzcaDYqFAssrKziOTS6bJdvVRavRYPLWNKdOnVy34fm1vlbcLig7LGCfWeyNZfJq09duUh3+uT5BuVzk5thERx26P0DnltyaD/SkFZMq9N9rvV6nkM+TLxSR+l4z2SyJRBxDN+nx0nVmXmq1GstTN/m2xx/+hjZ5mPqNc+fObbrRSCn53Oc+x4c+9CHFcScEv//7v8+xY8du59KvTJDbtr2uIeXChQscPXp0V6kGUxnXJkAoN8j8/DwBy6Kvv19TB0lwHD1Rx0CuUws6UjIzM8PqaplTJ08S0IUg/htca1KDMlFxNVrni79WexrwmOD32uNtu00+X2B+bo5KtUpvTzc93T3KPPbPSV+7Ht91TApus4CW96vUbZ4+/5w15zXcaKdPnyaiX1ZFlmFcHRP484NTXSPgf1Yb3Ktj2+QLBfL5vK6tT9KVy5HOZDADJM35VlcrjN28yVu+7VHSqW88wM+ePeuSTGwkw8PDvPvd7+b3f//3eeCBBygWi8Tj8dslkHxlBt42vNgu2WEM9fLg4CB2LEe13nbz5NJR3GAmB63E5F09uiRjBQQDQU6dOq1eZg0dy0WV3FTz+VFiaQB09l0rMcEtb5IJIBzFry7BsoI0Gg1C4TCPnjlDtVJhaSXP2MQEiXicXFeOXC6LJXSdtS9otTYFZwpJ/G2dZiGmaKaj4kwv0EGV1C4vL7MwP8+ZM2cJh4JunttsNpY2IRSIvbSdOaXhmPOsCo+TTkqpaw+66e3pwXYcVsur5AsrTN6aJhIO6cxElkazydjYGN/yyP3fUIDX6/UdAXxsbIx3v/vd/O7v/i4PPPAAwJbHv1zknoJ8Nzxvhrf9zJkzRJMZxhbLmIoz6agJJlI3dXivs9aIurDE1pHrrlw3gwP9iq/cpyG9ghFTfabOoVpCVZuI38+19YZgtpSA8IJgpgjG9c8Bd2yvlIyPjSMErv+W0QyoRpvl83lmZmYJBoPkclm6cl2EwyE6Sl59Gtv9O2tYXzYwiT12GIvZ+TlWVlY4c0YV2yDwutR8G4Pjnkr4Anm4OXN8z9If0VcbrmHkUZtRJpMmlVbWW71eJ58vcH34OrVanf6+PlIRH6HGPZZ6vc6LL77ImTNntgTs5OQkP/qjP8pv/dZv8cgjj9zDFd6+3NUU2lrZKcgN9ZPhbR9bLAPqBbKsAOXVPLl6k3AkjNvcgJ+sQDVq3LxxgwOHDpLLZX2fGdYUMBD1Umt+8gTPVDe34kbG3dSav5TVM1/NWs00kZGREVKpFENDqixTuf5C91ULEokEqWSSgwcP0miofPwNX4NJV1eORDzulsyq5+tpUmNwdMwyM2vVmlhKya2paaq1KmfPnMGtopNGE+Nq4nX15T4rwhJm7KL6uclCrGeF8ebCGbA70iEWjdKIRVlGcP/99xOSLWanpxm+do1MJkNvb++WTSZ3UvwA3yqaPz09zbve9S4+9rGP8fjjj9/1dd1puWs+ueM4tFqtjp+Nj48TDoc3nWhq2D4KhQIPPfQQoVCISqPN+GIZkDi2pNlusbiwQL5QQAjhUvhEIxH1ooOeATbB8ePHdfeVV1rq93M9K1/VqnljigygfSapPnQ9RfLmx7faLUauX6e3f4De3p6Oz6TvTzDAN89B/dlutykUChQLeaq1OulUimxOTTIJWBaITtdhbbTfW5uqpnNsm/uOHF1XHOQXd4MDN/MgNjjO/10DdHC0RbPxcQD5fIHZ2SlOn1Iz2o/1pYiEAm6eenFxkZWVFSKRCL29vfT09Oy5BHoraTQabiB4q3z83Nwc73jHO/i//q//ize+8Y13fB1aXpmBt41AfuvWLaSUHD58eN3x/tniZtYzwNhi2aNZ1hM1LT0qt1Gvs1IoUMjnads22WwWx3EolUqcPnWKYCjk+uuej+432TuDSm74SOKO8YFNouzCB9JO1x1LQKVa58aNEQ4fPqwaI7bYHDaKhgcs1fSi6vfUd8vlEsvLeVZXy8RiMbfBxAoECApTGqoWLnXUUTqSm6OjhMNhDh467HG7gzueeSsQC32TOwWx92w6jzc9BjMzM5w5fZpAMEg6FuJw98a+eLVaZXFxkaWlJWzbVj5+b++m5ae7kZ0CfGFhgbe//e382q/9Gm9+87oJRndSXpkgl1KuGzM8MzNDo9FYx+hhzKa1raer9RY3F8uKa8xR/nfA6sy/mvLIdqvNyI0RarU6waCaiZ3r6iaVUjPK/NF2V+NuooGV6Wu0rfp/R4psnabE20ykpFwuMzY+zonjqk104+PRZ5deCs+3xrVmvyXxUUtJVitVnbIqaD/eWDRhHF1dZ9tqNnomnWJg0FhPJujogdNCooe2I521G9Z6ECMkQoqODavzOBOf8O5naVENgTx16hQBXTtxrC9FPLy9x9hqtdzy03K5fFtmfbPZ5IUXXuDkyZNu19pGsrS0xNvf/nb+7b/9t3zv937vrq6xB3n1gHxhYYFSqcSJEyfcn5nS17Nnz6576DcXSpSqDfclNEEshHCnggqdJ79xY4R4LM7BQ4dAOhQKRfL5FVYrVZJJL4XTOVjQi1K7s8k302jQ8atY658bKWiq5FOnThIJR91kt3EP1prWHRpTiz8o6P5szQbgZ2NtNBqs5PPk8wUcx1Zc4+k0t6am6O3tpb+3Vw9alBtYERuA041zdGritcd5z0Z9xzykte2mS0tLLGqe+2AwABLikSBHe3fftXU7Zr0B+HY18fl8nre97W380i/9Em9961t3vcY9yKsH5MvLyywuLrpcWLOzs4yNjfHwww+vK5Ap15qMzpfcCLoQnlnrgl5fY3hkhIH+frp7etaZ4I4jWS2XWFnJUywViccTdHWpYQbC6iT5VxRSHuvKRhptrdb3m7Hzc/Pk8yucOHmSUDDkBvY8rWyeTafZvx5svmPp3Eg2LtAxeXFo2S2WlpaZnppCWAG6clnlx+tyVRMLEGaTELqqrWMD6lxTB4gFmPkWXixiTVux/p8AZmfnKRTynDx1yuWzB9WIkord/nDCnZr1OwV4sVjk7W9/Oz/3cz/H2972ttte3w7llQlyYN0whYIm1z937pzLrf7QQw+to8uxbZuxhSKVhoNlrddqRotXK1VGR29w5MgRMum08qPXpJrArwUllWqV5eUVisWiItTv6iKTzREJhzbxLY1/a4gP1oNSIpmanKLZrHPctVI6NaB/Pe4QPzy/eC3o1wbl0Km9tZH0ta5Avd5gZPg692nKqFJJbXCr5RLRWFznqDMEAsGOc/jLXjv1dSeI/QFIvO3UTUH6LYWZmTnKpaICuCFkkJJoKMCJ/jtfurqZWZ9MJrl48SLHjh2jp6dn0++Xy2Xe8Y538L73vY93vvOdd3x9W8irB+TlcpnR0VFA8VyfPn26Y7c1wbVyrcH4UrUjGKbSU56WzefzTE9Pc+LECeKxmGuCu3FrbSbjA5d70/qlrddrFPKqMksIyGS76OnOEQpH1gXZDMBd7jO8dNGNG6NEImEOHjysLQ7hWhxyDWg39P/BR4YoN9Ts/nW7mls/MwPESkXXwx87pqij/Rueoza4/MoKhWJRTWTN5cjqzITXseYF46CzFbQDxN6T1o9bgFQZCiFgenqGSqXKyZPrW3gP5uJkE3vrX9ipGLN+fn6e6elpkskkBw4c2NSsr1Qq/PAP/zDvec97+PEf//G7urYN5JUL8maz2WHGFQoFvva1r3H69Ol1bJYG4I7jML5Uodpsb/yiI5mZnaNULHLi5EkCATXoHtZrcaEjQ4YYcTOLwBLQaLbIryyTX8ljO46awd3VQywac38FrrsgTP91ixsjI2RyXQwNDbo8bu5afQD3r8/8fTMfF7OhrEmRbXRe81GlXGZsYpwTx44T1a6Pf3PyrAh1jXazyXI+z4quq89ksnR3dRHVs+HWByA9t2SjQKL5U0rJ9PQUrUaTI8eOuZu4OV8oYHFqwONQv5vSarV44YUXOHr0KIlEYlOzvl6v8853vpMf+ZEf4R/9o39019e1gbw6QF4oFLh06RKWZfH617++8yJSusR5lWabiaWKfsmV/+fvfBobG0MIwZEjR5SZKbQGl8p4NFRIa9sd3Rt2FaavZZNOE7jdtikU8uRXVmjUG2SyGbK5HMlkygVAo9lkZGSYoaEDKg0j8SaP6LN6nOqdZArgY29hvaWxYaun68976zbHFQsFbk1NcerUKSLhsE/Drt30Ngj8WYJWs63ut7BCtVrXM8e1H6+nlXRaIF5tvONbn+3ArVsT2LbDkSNHCVid7oAEBtIxulN3Pu+9Vgx11JEjR9b1efvN+ve///2srq7yhje8gf/wH/7DbY86es973sNnPvMZ+vr6uHTp0rrPpZR84AMf4LnnniMej/M7v/M7PProo698kM/MzDAxMcEDDzzApUuXeN3rXuddwAdwIQRjS6tUG51a3BJ6BvfIMNlsjsHBwXUL80erpXnNZWc3Wcfx+KLUmNJMhdIOVlbbplgqk88vU9VTMuLxBHNzcxw7dpxkKrkhKNWacGvZ/ab6Rmavm1JzNHGUEJuAvTMav7i4xOLCAidOnnLr0M0zMxuda35rs50OsK/RxHrcbyFfoFAsEkvElVmv/fi1G4+xbCQwNj6OkHD4viMd2QKz5qCltLhl3dV3mna7zQsvvMB9991HX1/fpsc1m03+t//tf+PEiRNq5PLwMM8+++xtXftv/uZvSCaTvPvd794Q5M899xz/+T//Z5577jm+8pWv8IEPfICvfOUrd/WB3PXa9ZGREcrlssvt5h897Oe8tiyLlu24Zqif1rhaq3NjZIQDBw/q4gWlrQWoLjTwaezOHmv1snlTQpw1/dFeW6nH4uKfakJARahzuSxSSubn57g1NUUwYDE/P0+r1SCTUQUpay0Hf+RZRagtHVswa9pgaorl0UWBFwn3SmmNnSCYnZujkM9z+tRpAiGdKVgzyEEXtqoNzzxTaVpwpZsiE6ZENxAgrevq7wM9j22F67OzBEJBctkM2Vw3kXC4o4z45tgYwWCQgwcOoovxdBTeS9vlkuF7BvDDhw9vCfBWq8V73vMevuM7voN/9s/+2R1zH97whjeoqbebyLPPPsu73/1uhBC87nWvo6AqNwellLN3ZAEbyF0F+cWLFwmFQjzyyCMbBtjMzGfzWShgcbwvRbvtUGm2qTRazCyuMDI65gaTvKYI7zpud5j0+90eGPzA8EeS/WDwD0iQ7strAlCq/ntlZZnl5RUefPBBQsEQlaoCwPTMLKFgkK7uLrpyih9Muuc317I6oux+P91YEh3r8K3bD3rj905OTVGr1Th9+rRWw2tTcArx6xpc0CST0ivg8cX8MPOPzUaYSCRU0OqgdOvqb46OIh2bdDZLNp1hZm6OWCzGoYMH1ZOV/ii7OpclBN13OdjWbrd3xO7abrf5x//4H/PYY4/dUYDvRKanpzsKvg4ePMjw8PAB4JUJ8tOnT2/YZ7sRwDsWFbTIBMNUCks4hVl+4NtfQ0sEqNTbVJptHLuzJNUt2DCBNDCMTT6TX5u5Pj9SCNMz7nVSrQ1QqakmgtnZGVZLJc6ePePmexOJBImEAYDiQrt+/ToIQVcuR1eui0gsolhj19ymigl6m43fb/U3iahNobP5ZnJiHCnh5MkTGry+82KCddL9zGwQlm8D69T2voIfnZlwl+t4lk00GmVgYICBgQHabdUfP3xjBCklkXCIYqlIKpV2xz+b9UrURJSgbyLKnRYD8IMHD24JcNu2+d//9/+ds2fP8ou/+Iv3FODgtzg7f3w3r3lXQR6NRju6zgxF0uzsLL29vZuOkzGNKpVKhccee8wtXezSmqDWbLNab7HaaFNv2WquuM/0lX7/3E39mGiw18RhSkQ7/XNjaXjqdmJiHKTkpJvyU98I+CZ3RiJRBgcHOTA0qCP1K9wcH6PdbpPLZcnluojHYxg7Yq2P7U/3eXlx76VQ5q96LuFwmMOHDnt+tz6X3+pQ96GfJx4BhCMdRZFlriG9SauuFSM9skU9Ls4Fulqzcq9WVpYZHBxSXGg6Hz8+Pk4iEacr16Vq9gNBhBD0pO6eFrdt2x3AMDAwsOVx73//+zl48CAf/OAH7znAQWnuW7e8aUdTU1OwwyEJe5V71k9uAmznz59nbm6OiYkJYrEYfX199PT0uBrftm0uX75MLBbjwQcf3PAXEQsHiYWD9KJe/KoGfaXRptF2fH6u8X5NGkj93w220Rlx9gf6lOVqc2P0JvF4jKEDQ5hYQOegA+nz5yVgEQ6FGRgYoK+/H7ttJrTMUK9X3VRVIpn0BQnX+N0mAIi3GTi2zcjIDdKpFANDQ52a2KxJrndJ/AQSKvYmfAUv0o3yqx92Ru3xXcPk/gHabVVGnMt1uX6v8eMFqq4+n19hZnYOy7I4PNCL3RWB4MYji25HbNvmxRdfZGhoaMuR147j8M/+2T8jl8vx7/7dv/uGABzgySef5KMf/Sjvete7+MpXvkImk+Fu+uNwl6PrhudNSukywpjuMikllUqF+fl5lpaWCIfDdHV1MTc3x8GDB92ZV7u+pu2w2lD+/Gq9Tdt21mnNDr/YBLhkJx95q9Xmxsh1eno9Yn5//ljdQ+e110bxjdI3wTDbcSgWSxTyK6xWKqSSSbK5HJl0Bisg3Kuvzec7dpvrwyP09PTodJBw4xAmg6CuvxG3m16v9La5jbINHVx3SBCW67v7RToO164P09PT7aamlEUjfBaAV4nXaDRIUadcWL7j3WRGgw8MDGzavgwK4L/wC78AwP/9f//fOx6uuRf5kR/5Eb7whS+wtLREf38///pf/2u3G/Of/tN/ipSS973vfXzuc58jHo/z27/927zmNa+5qzvOXQd5s9nc0v82sri4yJUrVwiFQkQ0UWNfX9+emV2N1JttKk2bSkNpemXad0a+/WIB9YaiSj546JAaNI9vHlqHH+35s/6zbNjKirmeaR2FymqZ5ZUVyqUikWicri6vddT40Y2Gqs0fGhqiu6trw9JbY5JYqEabzfLshjVHE+K5ln3ncRtvAFKq3+f168P0D/TT29PdEST0A9ukDh0g4WtEMfnphYUFKpUKuVyO3t7eDprjnYoBeH9//5YKwXEc/tW/+leUy2V+8zd/864C/DbklQvy3/3d3+XYsWM8/PDDW7YEmmmUDzzwAIlEglqtxuLiIgsLCwD09vbS19e36YTKnYqUUvnzDZvVRot608Y/UUUA5dVVxsbGOHH8GPF4AoTxZTv9ee+56Rcc73P3E19E2wWRCQ5qM0Ii3ZLTQkF1koWCQXJdXcRicSYnxjl0+DDZTNoNDG7Ww238aZWK0/NVdtD/bdZi62F+/u44I61Wm5Hh6wwODtLV3aWfZ+dGudHz2awRxQy/XFxcJJ/Pk0gk6Ovro7u7e1tSxJ0CXErJr/zKrzA7O8tv/dZv3RO2mT3KKxfkn/zkJ/mDP/gDrl+/zpve9CaeeuopHn/88Q6T/datWywuLvLAAw9sOICu0WiwsLDAwsICtm2r1sn+/l3TOm8ktiP1jHNl2i8sLXNraoqTJz2q5M75Xx5Nkr0O7Ojj/ZTKXm5q3fCGNdaEF+VXU0tm5+aZn58nHovR3dNLd1eOcCSiz6gqziReimzt9f1ievD9VX4bg90bIwXKBBdClfxev3aVQ4cOqYEWvvv26u79DDXq3mKhAMd30IgipeJwX1hYYHl5mUAgQG9vL729ves2dsdxeOmll+jt7V1XGr32nL/2a7/GjRs3+N3f/d27NTP8TskrF+RGarUan/vc53jmmWd46aWXeOMb38j3f//385nPfIZ3vetdPProozsyo5rNpqvhm80mPT099Pf3k9DNGLcjU1NTTM3Mcvz0ORptWG22sX3+/NpqNSml7qxSkXGHjcHmb2hRkzvXAmJ988fqapnx8XFOnjiJCFjkV/IU8nlavkh9LBbz6sJ1Lto/LWUrEBtXw1gF9ibHAbSbTa4PD3P40CFSmuhwc5opzy0ByYFcnEx89+5WrVbTPeiLtFotNxaRSCS4cOECPT09W861l1Ly67/+67zwwgv8wR/8we3SJd8LeeWD3C+NRoNPfepT/NzP/Rx9fX088sgjvO1tb+Nbv/Vbd/XLaLVaLC0tsbCwQK1Wo7u7m/7+/l0HdKRUlM2rq6vcf//9HSZdzefLVxrtDj/XH5U3YmaDCR/oNzPZpWZXMdO5zfk2rEPXVkS71aRQKLGSz1Ov19wa81Q6hUBs4HeLjroAd51ifeGMlA66b85dS6vZ4Nr1EY4cuY90Ou1uRrj2BOvAbs4dDgY42X/7wTW/H7+0tEQqleLYsWOb+vFSSj72sY/xv/7X/+KP/uiPNh1P/DKTVxfIAX75l3+Zhx56iLe+9a381V/9FZ/4xCf44he/yBNPPMHTTz/NG9/4xl39cmzbdgG/urpKV1cX/f39akbXFi+ZGakcDAY5derUlsdKaUx79V+92daR6s2nlZj01EbTVcDvCihULS8tMb8wz4mTp4mEvXno7nf0XwQSx3YolsvkV5ZZrVRJJBLuLHXDfmO+raLl6rvSd0b/RuXfvEDQqNcYHh7hiB6Gsb7rzNu8zGPzUnMwmI3TnbwzuXHHcbh48SLZbJZkMtnhxxtWmFAohJSS3/qt3+Lzn/88n/jEJ247aHsP5dUH8o2k3W7zt3/7t3z84x/nr//6r3nkkUd4+umnedOb3rQrtk7btllZWXGppnK5HH19fSpK7tv52+02Fy5coLu7m/vuu2/X67Ud6abpVhsqVbdpMwl4G4jWrGv987m5eQr5vG6fDWpgahZZU5qKAaJfc6oceblU1qOVCyTiCXJdapa6GUTogVPHCgRIZ30Dj0D3CtwYVg04yaSbc/ez1Gw46wzlnwctwcn+O9OI4ge4//e01o//vd/7PRqNBrdu3eLzn//8HWF4/dznPscHPvABbNvmJ3/yJ900nJEvfOELPPXUUy5n4dve9jZ++Zd/eS+X+uYAuV9s2+bv/u7veOaZZ/if//N/cu7cOZ5++mm++7u/e1cBNxPBnZ+fp1gskslk6OvrI5FIcPHiRQ4fPrxlhdRupNl2WDWmfb1N29eIs5HJ7ubcpeJDr9XqnDxxDIS1DsTmm4LOFtq14FSBdUmtViOfX2Elr0geu7u6yOZyhEKhdTEAk4IzJbCVqiKeMPPR1q9FFwBZlh6rtP7e+tIx+tK3DzLHcbh06RLpdJojR45seexv/MZv8D/+x/8gm82yurrKX/7lX95W26ht25w6dYo///M/5+DBgzz++OP89//+3zl37px7zBe+8AU+8pGP8JnPfGbP19FyV0H+sgw5BgIBvv3bv51v//Zvx3Ec/v7v/56Pf/zjfPjDH+bEiRM8+eSTfO/3fu+2M9Usy6K7u5vu7m6kVPO/pqamWFhYcH0627bvSGolHLToCkbc0ttqU/nxq/UWNW3ae+a20qqOhMnJCRxHcurkcRCmGs1LSbmlt67Z74sJ0KlVAYRlEYvHSSTiDB04qCaWrOS5MTIC0iHb1U0ulyMWMyD0at2rlQqjozc5efIEsXjcreKTeulehZ0CONr/N+QWaLekK3H7frABeCqV2hbgH//4x/nMZz7DF77wBZLJJKurq7fdF/78889z4sQJd5Dhu971Lp599tkOkL9S5GUJcr9YlsVrX/taXvva1+I4Di+++CLPPPMM/+k//ScOHTrEk08+yVve8pZt51kbc7lSqfDEE0/gOA4LCwvcvHmTeDzultfeqVRLPBwkHg7Sm4puXHrrOIyOjhKJRDl8+KBbVOPXrAbGfm3qalJ/LEB2alnwfO1YLEZ0KMrg0CDtdov8Sp6J8THabZtM1mODqVTKjI1NcOr0KWLRCI4LcEsB2Zd+czW7jyLaSC5x+40oUkouX75MKpVaR9+9Vj71qU/xX//rf+Uzn/mMOxH1TkxG3ahb7Ctf+cq64770pS/x0EMPMTQ0xEc+8hHOnz9/29e+0/KyB7lfLMvi0Ucf5dFHH+VDH/oQly5d4plnnuHJJ5+kp6eHp59+mu///u/fkI1zfn6eiYkJHn74Yddfy2QynDhxgtXVVebn5xkfHycajdLX10dvb+8dS71YliAZDZGMqvM1mi2e//pLDPVkyHT3K3/eaG8p9N997bQ+8JufuSa80fa+jcFE7/3OlhAQDIbo7eujv7+PVtumkM8zPTNNZbVC225z5MhRIhGvT5yOzUWn5vTPHemsqWtXa+lO3p6ZbgCeSCS2BfhnP/tZPvrRj/LZz372jg8e3MiNXRuYffTRR5mYmCCZTPLcc8/x9NNPMzIyckfXcSfkZemT71aklFy/fp1nnnmGT3/606TTaZ588kne+ta30tvby1e+8hXC4TAPPvjgtpraX08fDAbd8to7lYpptVq89NJLDA0NufXWjZbtmvaVpiq93ayUVoKZg2DK0d2A2tpilE5/2zO7vbg7FIpFJicnGRwcpFQqUVldJZVKks3m3MKXLeedq0wdjgOZeJhDXXs3k6WUXLlyhWg0yvHjx7c89vOf/zy/+qu/ynPPPbclxfJe5Utf+hIf/OAH+bM/+zMAfvVXfxWAf/Ev/sWm3zly5Ahf/epXt2SE3US++QJvtyOmTfUTn/gEn/rUpygWiwwNDfGxj32MoaGhXeVtq9UqCwsLLC4uYlmWW16718itGcV89OjRTVlLpJTan1elt42mva66bi2HnavlWRN5NxsF/gi4BKFSbEqTe2OLzPVXV1fJ5xVtdTwWI5frIpPNEgoGNy+nBU70pYjuYCLKZvd95coVIpEIx48f3/L39Fd/9Vd88IMf5LOf/eyW7C+3I+12m1OnTvGXf/mXHDhwgMcff5w/+IM/6DDH5+bm6O/vRwjB888/zzve8Q4mJib2UhuwD/K9iJSSH/uxH6Orq4ujR4/y7LPP4jgOb33rW3n66ac5ePDgrn4Z9XrdLa+VUrrltTutp69Wq1y4cIFTp05tOZ5nrawtvW227fV5djrTWJjiFmFII9Y3zKhW0FnOnjpNMBR0c99+EEsJ9VqV5ZUVCvk8oVBIDabIZQmGlGVjNpVkNMSRnr35wlJKrl69SigU4sSJE1v+Xv72b/+WX/zFX+Szn/3sHcuMbCbPPfccP/uzP4tt27znPe/hX/7Lf8lv/uZvAqqj7KMf/Sgf+9jHCAaDxGIx/uN//I/rSEp3KPsg36tcunSJ+++/H1Av0uzsLJ/4xCf45Cc/Sa1W4/u///t56qmnOOajDt6JNJtNF/DtdtvV8JtFdMvlMpcuXeL8+fOk07c3VKDVtnVBTotKw6ZtO1sSPhr/XPo2A1M4dPr0aULBwAbEE6zT2JYQVGs18vkChUIeKSW5XIburm6i0SiHe5IkI7uPYUgpuXbtGsFgcFuAf+lLX+Lnfu7n+MxnPrPnVuSXqeyD/G7IwsICn/zkJ/njP/5jVlZWeMtb3sLTTz+9beXbWmm1WiwuLjI/P0+j0XABn0wmEUJQKBS4evUqDz744G2ndTaSus+fr2p/vrPF1fs7wNLiIsvLS5w8eYpAILCuNt8vli6aMVF+KT3rodVqU8ivsJLPI5w2Dx0b7LjvnYgBeCAQ4OTJk1t+76tf/Srvf//7+ZM/+ZMNp+K+wmUf5HdblpeXefbZZ/nEJz7B3Nwc3/M938MP/uAPcvbs2V31H7fbbVdLVqtVYrEYlUqFRx555LbbZHciUire+kq9s/QWFDhn5/RcshOnsAJW50x0x1TYsQ74nZ11frIK9eXBTIRWpeT2iXd1dblVhpsB1wRLhRDbbqwvvvgiP/VTP8UnP/lJN2/9KpN9kN9LKRQKfPrTn+aP//iPGRsb47u/+7t5+umneeihh3YF+OnpacbHx0kmk1Sr1R29+HdabFux3q7WWwyPTbJSKHH61EkXnEY6WWEwrWTuRJi1tfPgDYcIBQKcHPBcEMdx3LLiYrFIOp2mr6+vY8ywlJLh4WGklOtGZa2VS5cu8ZM/+ZM888wznDp16o48l5eh7IP8GyXlcpnPfvazfOITn+D69eu8+c1v5qmnnuI1r3nNloCfnJxkaWnJTdmZF39+fp5SqUQ2m6Wvr29PjCh7EdNld+rMOaotm0q9TbXZpmW7vLWYnLs/XWe62FxizA2i9UPZOF2bNKJIKSkWi259uWkoKRaLANsC/OrVq/zDf/gP+cM//MNXZKXZLmQf5C8H8ffEX7hwgTe+8Y089dRTvO51r+vQUDdv3qRSqXD//fdvCGDHcSgUCszPz1MoFFxN193dfccBb9KJ9Xqd8+fPrwOUn/W21rQ3aR31afk13WbBgMWpHTaimNTctWvXqFarpFIpt+hoo26x4eFh3v3ud/P7v//7PPDAA7f5JF728soB+cc//nE++MEPcvXqVZ5//nle85rXbHjcdt09L3ep1+v8+Z//Oc888wxf+9rXeP3rX8+TTz7JZz/7Wd75znfy+OOP78gkN5pufn6elZUVksmkW157u/X0xiS2bZuzZ89uux4ppQ7gqch9vWVvGK33RNCfjtCb3lmsQUrJjRs3aLVanD171k1JLi4uuinJvr4+4vE4Y2Nj/OiP/ii/8zu/wyOPPLKn+18r271zUm44o+yOXHsH8soB+dWrV7Esi/e+97185CMf2RDkO+nueSVJs9nkz//8z/nZn/1Z4vE4jz76KD/4gz/IG97whl1VyUkpKZVKrmlr6Kq34qff6lzXrl1DCLGtSbyZKNbblluU02or096bfyY4PZghsEMtPjo6SqPR4Ny5c+vWYxh/XnrpJf7lv/yXtFot/s2/+Tf82I/92B2JX+zkndtkRtltX3uHcldBfkftw7Nnz6qxPVuIv7snHA673T2vVAmHw9y4cYOf/umf5mtf+xo//uM/zp/+6Z/ybd/2bbz3ve/lT//0T6nX69ueRwhBJpPh5MmTvPa1r+X48eNUq1W+9rWv8cILLzAzM+NS+24lpnIsGAzuGeCgTPFsPMKBXJzTAxlO9qcZysZJRkMELEFXIrIjgIOKCWwGcFDP8MCBAzz00EOkUil+4id+gs9+9rP883/+z/e09rWyk3duoxlls7N3lQ79nsk9b1DZaXfPK0ne//73uy/vm970Jt70pjdh2zZf/OIX+cQnPsEHP/hBzp8/z9NPP813fdd3bdsTL4QgmUySTCY5fvw4lUqFhYUFXnjhBbeefiNf1nEcLl++TDwe33WBz3YSCQWIhAJ0JSOqDn6HNt7Nmzep1WobxgT8Mjc3xzvf+U7+03/6T7zhDW+4Q6tWspN3bqNjpqentxzY8EqRXYP8u77ru5ibm1v38w996EM89dRT235/J909rzTZaP2BQIA3vOENvOENb8BxHJ5//nmeeeYZfvVXf5UTJ07w9NNP8z3f8z07aos0HVlHjx6lVquxsLDAhQsXEEJ0NNBcvHiRTCazbf/17Yri0N/+uLGxMTcIudXveGFhgR/6oR/iP/yH/3DHAQ47e+deje+lkV2D/C/+4i9u64IbzYLaavrFq0Esy+J1r3sdr3vd69ye+I9//OP8x//4Hzl8+LDbE7+TdslYLMZ9993Hfffd59JVX7p0iXK57KbmXg4yNjZGuVzeFuBLS0v80A/9EB/60Id485vffFfWspN37tX8Xt7zcRKPP/44IyMjjI2N0Ww2+cM//EOefPLJe72Mb5iYnvhf/dVf5etf/zq/8iu/wsTEBG9961t5+9vfzu/93u+xsrKyo3NFIhGGhoawLMvtbLt27Rpf+cpX3Nz4N0LGx8ddgG+VFszn8/zQD/0Qv/zLv8z3fu/33rX17OSde/LJJ/m93/s9pJR8+ctfJpPJvCpMdbjD0fVPfvKT/MzP/AyLi4tks1kefvhh/uzP/oyZmRl+8id/kueeew7YuLvnm11MRPyZZ57hM5/5DJlMhieffJIf+IEfoLe3d0NtaMb1+nvTwaOrnp+fp16v09PTQ19f3x2ZP7adTExMUCgUeOCBB7YEeLFY5O1vfzs/93M/x9ve9ra7uibYvqNskxlld31dWl45KbR9uTPi74l/9tlniUQivPWtb+Wpp55iYGAAIQStVosXX3yRQ4cObdly2W63WV5eZn5+nkqlQnd3N319fdvSVe9FJicnyefz2wK8XC7zjne8g/e97328853vvKNreIXKPsjXysrKCu985zsZHx/nyJEj/NEf/RG5XG7dcUeOHCGVShEIBAgGg3z1q1/9Bqz29kRKyeTkpNsiC/DmN7+Zz3/+8/y3//bfdtWRZeiq5+fnKZfLLl11Lpe7bcBPTk6ysrLCgw8+uCXAK5UKP/zDP8x73vMefvzHf/y2rvkqkn2Qr5Wf//mfp6uri1/4hV/gwx/+MPl8nn//7//9uuNug47nZSlSSi5cuMCTTz7JfffdR6vV4gd+4Adc7u/dAHUjuur+/v491dPfunWLpaWlbZt4arUaP/zDP8yP/diP8Z73vGdX13iVyz7I18rp06f5whe+wODgILOzs3zHd3wH169fX3fcqw3kAL/5m7/JqVOn+M7v/M6OnvhCocBb3vIWnnrqqV33xEspyefzLCwskM/nSaVS9Pf3d3SObSZTU1MsLi5uC/B6vc6P/uiP8vTTT/Pe9773VZOeukOyD/K1ks1mKRQK7r9zuRz5fH7dcUePHnVN0fe+9738k3/yT+7hKu+tLC8v86lPfer/3979hkS1pwEc/x5xlyTLyEsTblusKUFTOjlgexVhKdQaFtd5IxKxtVRLkRJRUL7aqLAIerEVtL0w1n1j7JQ3xKwbFP0BZ3Hpj5Reii0ybXQmMpfBBW3G375QDzP+GUeuM8c583zggHMcxoeBx3PO7/d7nh/Nzc14vd6wmvj5JvzUyjGLxTLjevrJHvb5+fkR/xmMjo6ye/duysrKqK2tlQSfLjmTPNKimz179kSV5B6Ph6ysLHw+H6WlpVy+fDkmiy0Wm6GhIVpaWmhubqanp0eviZ/reXkqpRR+v1/fbHDJkiV6wvt8Prxe75wJ/u3bN/bu3UtxcTHHjh2TBJ9ZciZ5JNHeroc6deoU6enpHD9+PE5RLg6hNfFv377Va+Ltdvu8n70n9x7zeDwEAgHWr1+PxWKZtRAnEAiwb98+tmzZQl1dnST47BKnQCVeKioqaGxsBKCxsXHG5bTDw8P4/X795/v37+tNHZPJsmXLqK6uxuVy4Xa7KS4u5tq1axQVFXHixAna29sJBoNRfVZ6ejppaWmkpaVht9sJBoO8fPmSZ8+e0dvby8jIiP7eYDDIoUOH2LhxY0wSfHBwkNLSUnJzcyktLZ3xTg7Gx2U2b96MzWaL57z3opKQV/IvX75QVVXFx48fWbt2LS6Xi5UrV4Ytunn//j1OpxMYv6Ls2rVLFt2ECK2Jf/78OUVFRTidToqKimYtbe3v78fj8WCz2cJu0UPbVX/9+pX29nZ6e3tZt24d9fX1MbmCm2yGRW7XRWyNjo7y8OFDbt26hdvtZuvWrVRWVlJSUqLfig8MDNDX14fNZotY3+7z+Thy5AivXr1i9erV7N+/PybTZSabYZEkj7dF3kUkpgKBAE+ePMHlcvH06VMKCgqwWCz4/X4uXLgQMcHHxsb07+rSpUsMDQ3x4cOHmHw3Jpthie1gxXht8KxH0gkEAio7O1u9e/dOjYyMqLy8PNXV1RX2njt37qgdO3aosbEx5Xa7VWFhoUHRxlYgEFBnzpxRa9asUTabTVVXV6umpib1+fNnNTw8HHb4/X519OhRdeDAARUMBhfk72/fvl1ZrdZpx+3bt1VGRkbYe1esWDHjZ3z69EkppZTX61V5eXnq8ePHCxLbApsrD3/WkVC7msZDNPtSz9ZFxCxVS5PURGPKyX3COzo6cLlcnDt3jtzcXCorKykrK2Pp0qWcPXuWwcFBGhoaFqwhZaSyZovFon/n/f39s5bYThburFq1CqfTSUdHR1JMo4ZKyNH1WJqtQ8h832MGqampXL9+nYyMDL0m/uLFi7x48YK6ujpev35NeXk5hYWFvHnzhoaGhp/dgDJaMsMSPbmST6GSvItINFJSUrDb7djtdurr62ltbWXbtm1xS3CAkydPUlVVRUNDgz7DAoTNsHi93mkzLLGsW1+sJMmnSPYuIvOVkpJiSNOPzMxMHjx4MO18VlaW3rcgOzubzs7OeIe26Mjt+hTJ3kVEmI9cyadITU3lypUrlJeX611ErFZrWBcRh8NBW1sbOTk5ehcRIRYrmScXwniydt3M7t27x4YNG8jJyeH8+fPTfv/o0SMyMjKw2WzYbDZOnz5tQJQikcntuoGCwSCHDx8O276noqJi2pZRJSUltLa2GhSlSHRyJTeQ2baMEouTJLmBol1U43a7yc/PZ+fOnXR1dcUzRGECkuQGimZRTUFBAT09PXR2dlJbW0tlZWWcoos9l8uF1WolJSUlYifducYtRGSS5AaKZlHN8uXL9f3SHA6HvnGCGWzatInm5uaIa8knxy3u3r1Ld3c3TU1NdHd3xzHKxCdJbqBoFt4MDAzoV/yOjg7GxsbIzMw0ItwFl4xbXRtBRtcNFM3Cm5s3b3L16lVSU1NJS0vjxo0bSbVO3oxbXcebJLnBHA4HDocj7NzBgwf1n2tqaqipqYl3WAtGtro23lwr3oSJaJp2Hfg94FNKTau51Maz56+AA/gfsFcp9TwOcT0Cjiulpo2+aZr2PXBKKVU+8boOQCl1LtZxmYU8kyeXvwORai13ArkTx5+Bq3GIaS7/BnI1TfuNpmm/BKqBFoNjSiiS5ElEKfUEiLT5+R+Af0y0JPoXsELTtJiV12ma5tQ0rQ/4HrijadqPE+ezNE1rm4g5ANQAPwI/Af9USsligXmQZ3IR6ldAb8jrvolz/bH4Y0qpH4AfZjjvYfyRYfJ1G9AWixiSgVzJRaiZRrRk0CbBSZKLUH3Ar0NerwE8BsUiFogkuQjVAvxRG/db4L9KqZjcqov4kWfyJKJpWhPwO+C7iQGvvwC/AFBK/Y3x514H8B/Gp9D+ZEykYiHJPLkQJie360KYnCS5ECYnSS6EyUmSC2FykuRCmJwkuRAmJ0kuhMlJkgthcv8HbB2otIgKE7UAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "xprediction = np.linspace(-1,1,50)\n", "x2prediction = np.linspace(-1,1,50)\n", "\n", "xx, xx2 = np.meshgrid(xprediction, x2prediction)\n", "\n", "predictionMat = np.hstack((np.ones((len(xx.flatten()),1)),\\\n", " xx.flatten().reshape(-1,1), \\\n", " xx2.flatten().reshape(-1,1)))\n", "\n", "predicted_target = reg.predict(predictionMat)\n", "\n", "\n", "fig = plt.figure()\n", "ax = fig.add_subplot(projection='3d')\n", "\n", "ax.plot_surface(xx, xx2, predicted_target.reshape(np.shape(xx)), alpha=0.2)\n", "ax.scatter(x, x**2, tnoisy, c='r')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 1. -1. 1. ]\n", " [ 1. -0.77777778 0.60493827]\n", " [ 1. -0.55555556 0.30864198]\n", " [ 1. -0.33333333 0.11111111]\n", " [ 1. -0.11111111 0.01234568]\n", " [ 1. 0.11111111 0.01234568]\n", " [ 1. 0.33333333 0.11111111]\n", " [ 1. 0.55555556 0.30864198]\n", " [ 1. 0.77777778 0.60493827]\n", " [ 1. 1. 1. ]]\n" ] } ], "source": [ "XtildeMat = np.hstack((np.ones((len(x),1)), \\\n", " x.reshape(-1,1), (x**2).reshape(-1,1)))\n", "\n", "print(XtildeMat)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__III.c__ Bringing the prediction in the orinal space" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD4CAYAAAD8Zh1EAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAtyUlEQVR4nO3dd3gU5RrG4d+bCgmEjtQACiggPXREBJWq6EGQotgjCFIEBUQ8KEU52FBAjIhYIgiCioqgiHSBhN4ltNCE0CEB0r7zR6LGGJJNMpvZ3bz3deXa7MzszsNmfZydnflGjDEopZRyf152B1BKKWUNLXSllPIQWuhKKeUhtNCVUspDaKErpZSH8LFrxSVLljSVK1e2a/VKKeWWNm7ceNoYUyqjebYVeuXKlYmMjLRr9Uop5ZZE5PD15ukuF6WU8hBa6Eop5SGyLHQRmSkip0Rkx3Xm9xaRbak/a0WkrvUxlVJKZcWRLfRZQPtM5h8EbjfG1AHGAmEW5FJKKZVNWX4paoxZKSKVM5m/Ns3ddUAFC3IppZTKJqv3oT8B/Hi9mSISKiKRIhIZExNj8aqVUip/s6zQReQOUgp9+PWWMcaEGWNCjDEhpUpleBilUkqpHLKk0EWkDjAD6GKMOWPFcyqllCd6ZfkrrDy80inPnetCF5FgYAHwsDHm99xHUkopz/T7md8Zs2KM0wo9yy9FRWQ20BooKSJHgf8CvgDGmOnAy0AJYJqIACQaY0KcklYppdzY9Mjp+Hj58GSDJ53y/I4c5dIzi/lPAs5Jp5RSHiIuIY6Pt3xM1xpdKVOojFPWoWeKKqVUHpizYw7nr57nmUbPOG0dWuhKKeVkxhimRkylVqla3BZ8m9PWo4WulFJOtuHYBjad2ET/Rv1J/a7RKbTQlVLKyaZFTqOQXyEe2uMLlSuDl1fKbXi4peuxbTx0pZTKD07HnebLHV/yeGBLCvcdBHFxKTMOH4bQ0JTfe/e2ZF26ha6UUk40Y9MMriVdo/8nu/4u8z/FxcGoUZaty70KPTzcqR9XlFLKSonJibwf+T5tqrSh1rY/Ml4oOtqy9blPoYeHp3w8OXwYjPn744qWulLKRX3/+/dEX4hmQKMBEByc8ULXm54D7lPoo0Y5/eOKUkpZacqGKVQMqsg9N98D48dDQMA/FwgISJluEfcp9Ot9LLHw44pSSlllV8wufjn4C/1C+uHj5ZPyxWdYGFSqBCIpt2Fhln0hCu50lEtwcMpuloymK6WUi5m6YSr+3v7/HLeld29LCzw999lCz4OPK0opZYULVy/w6bZP6XFrD0oF5t21H9yn0PPg44pSSlnh4y0fczn+MgMaD8jT9YoxJk9X+KeQkBATGRlpy7qVUspZkpKTqD6lOmUKlWHN42ssf34R2Xi9IcrdZwtdKaXcwKJ9izhw7gCDmgzK83VroSullIUmr59MhaAK3H/L/Xm+bi10pZSyyM5TO/nl4C88E/IMvt6+eb5+LXSllLLIu+vfpYBPAUIbhtqyfi10pZSywNkrZ/ls22c8VPshSgSUsCWDFrpSSlkgbGMYVxKvMLDJQNsyaKErpVQuJSQlMGXDFNpWaUvtG2rblkMLXSmlcumrXV9x7NIxhjQdYmsOLXSllMoFYwxvr3ubm0vcTIdqHWzN4naFboxh7ZG1dsdQSikA1h5ZS8TxCAY1GYSX2FupblfoMzfPpMXMFkQci7A7ilJK8fa6tylWoBh96vaxO4r7FXq3Wt0I8g/irXVv2R1FKZXPHTp/iK/3fM3TDZ8m0C/Q7jhZF7qIzBSRUyKy4zrzRUTeFZEoEdkmIg2sj/m3IP8gnmrwFPN2ziP6gl7cQilln8nrJuMlXvRv3N/uKIBjW+izgPaZzO8AVEv9CQXez32szP15nOfkdZOdvSqllMrQ+avnmbF5Bj1u7UGFoAp2xwEcKHRjzErgbCaLdAE+NSnWAUVFpKxVATMSXCSYbrW68eGmD7l47aIzV6WUUhkK2xjG5fjLDG021O4of7FiH3p54Eia+0dTp/2LiISKSKSIRMbExORqpUObDeVS/CVmbJqRq+dRSqnsik+K593179K2Slvqlalnd5y/WFHoksG0DK+aYYwJM8aEGGNCSpXK3WWZQsqF0KpSKyavn0xicmKunksppbLjyx1fcuzSMZfaOgdrCv0oUDHN/QrAcQueN0tDmw0l+kI083bOy4vVKaUUxhje/O1NapaqSfuqmX29mPesKPSFQJ/Uo12aAheMMScseN4sda7emZtL3MyktZOw61J6Sqn85ZeDv7D15Faea/ocIhntoLCPI4ctzgZ+A24WkaMi8oSI9BWRvqmLLAIOAFHAh8AzTkubjpd4Maz5MDb/sZllB5fl1WqVUvnYpLWTKFOoDL3ruN4F6n2yWsAY0zOL+Qaw7SDMh+o8xEvLXmLS2km0vbGtXTGUUvnAlj+28NP+n3it7WsU8Clgd5x/cbszRdMr4FOAgU0GsmT/Erad3GZ3HKWUB3tj7RsU8itE35C+WS9sA7cvdIB+If0I9A3kjbVv2B1FKeWhDp8/zJwdcwhtEErRAkXtjpMhjyj0YgWL8VSDp5i9YzZHLhzJ+gFKKZVNb697GxFhcNPBdke5Lo8odIAhzVIGln973ds2J1FKeZqzV84yY9MMetXuRcUiFbN+gE08ptCDiwTTq3YvwjaGcSbujN1xlFIeZFrENGITYhnWbJjdUTLlMYUO8ELzF4hNiGVqxFS7oyilPERcQhyT10+mU7VOtl4v1BEeVei1Stfinur38O76d4mNj7U7jlLKA3y06SNOx51mRMsRdkfJkkcVOsCIliM4c+UMH23+yO4oSik3l5CUwBu/vUHL4Ja0DG5pd5wseVyhN6/YnNuCb+ONtW+QkJRgdxyllBubvWM20ReiGdHC9bfOwQMLHVK20o9cPMIX27+wO4pSyk0lm2ReX/06tUvXpmO1jnbHcYhHFnqHqh2oe0NdXlv9GknJSXbHUUq5oe/2fsfu07sZ0XKEyw3CdT0eWegiwsiWI9l7Zi9f7/na7jhKKTdjjGH8qvFUKVqF7rW62x3HYR5Z6AAP1HyAasWrMWHVBB1aVymVLUsPLCXieAQjWo7AxyvLMQxdhscWureXNyNajmDzH5tZHLXY7jhKKTcyftV4yhcuzyN1H7E7SrZ4bKFDytC6FYMqMmH1BLujKKXcxJroNaw4vIJhzYfh7+Nvd5xs8ehC9/P24/nmz7M6ejUrD6+0O45Syg2MXzWeUgGleKrBU3ZHyTaPLnSAJxs8SenA0oxbOc7uKEopF7fpxCZ+jPqRIU2HEOgXaHecbPP4Qi/oW5BhzYbx84GfWXd0nd1xlFIubPyq8RTxL8IzjfLsSpqW8vhCB+jXqB8lCpZg7MqxdkdRSrmo7Se3s2D3AgY1GUSRAkXsjpMj+aLQC/kV4rlmz7Fo3yI2Ht9odxyllAsat2ochf0KM6jpILuj5Fi+KHSAAY0HULRAUcat0n3pSql/2hWzi3k75/Fs42cpXrC43XFyLN8UepB/EIObDOabPd/oxaSVUv8wftV4AnwD/rrymbvKN4UOMLDJQIL8g3h1xat2R1FK5aXwcKhcGby8Um7Dw/+atff0XubsmEP/Rv0pGVDStohWyFeFXqxgMQY1GcT83fN1K12p/CI8HEJD4fBhMCblNjT0r1Ifv2o8/t7+DG0+1OaguZevCh1gSNMhBPkH8cqKV+yOopTKC6NGQVzcP6fFxcGoUew9vZfw7eH0C+lH6cDS9uSzUL4r9GIFizG4yWAW7F7A1j+22h1HKeVs0dHXnT525VgK+BRgeMvheZvJSRwqdBFpLyJ7RSRKRP516Q4RKSIi34nIVhHZKSKPWR/VOoObDqaIfxHdSlcqPwgOznDyntplmb1jNv0b9feIrXNwoNBFxBuYCnQAagI9RaRmusX6A7uMMXWB1sCbIuJncVbLFCtYjMFNB/P1nq/Z8scWu+MopZxp/HgICPjntIAAXu1TiYI+BXm++fP25HICR7bQGwNRxpgDxph4YA7QJd0yBigsKZf1KAScBRItTWqxP7fSxywfY3cUpZQz9e4NYWFQqRKIQKVK7JryX+ZcXseAxgMoFVjK7oSWcaTQywNH0tw/mjotrSlADeA4sB0YZIxJTv9EIhIqIpEiEhkTE5PDyNYoWqAozzV7jm/3fkvk8UhbsyilnKx3bzh0CJKT4dAhXi28iUC/QIY1H2Z3Mks5UugZXUwv/SWA2gFbgHJAPWCKiAT960HGhBljQowxIaVK2f9/xcFNB1O8YHFG/zra7ihKqTyy7eQ2vtz5JQMbD3T7487Tc6TQjwIV09yvQMqWeFqPAQtMiijgIHCLNRGdJ8g/iBeav8DiqMWsiV5jdxylVB54+deXKeJfxOO2zsGxQo8AqolIldQvOnsAC9MtEw20BRCRG4CbgQNWBnWWAY0HUDqwtG6lK5UPRByL4Nu93zKs+TCKFSxmdxzLZVnoxphEYACwBNgNzDXG7BSRviLSN3WxsUBzEdkO/AIMN8acdlZoKwX6BTKy5Uh+PfQrvx781e44SiknGv3raEoULMGgJu47omJmxJj0u8PzRkhIiImMdI0vI68mXqXqu1UJLhLMmsfXkHKwjlLKk6w6vIpWs1ox6a5Jbr27RUQ2GmNCMpqX784UzUgBnwKMbjWa347+xg/7frA7jlLKYsYYXvr1JcoUKuO2VyNyhBZ6qsfrP07V4lUZtWwUyf8+4lIp5cYWRy1m5eGVvHTbSwT4BmT9ADelhZ7K19uXV1u/yraT25izY47dcZRSFkk2yby47EWqFK3CUw2fsjuOU2mhp/HgrQ9S94a6vPzryyQkJdgdRyllgbk757Lljy2MvWMsft4uOyKJJbTQ0/ASL8a3Gc/+c/uZuXmm3XGUUrmUkJTAS8teonbp2vSs3dPuOE6nhZ5Ox2odaVGxBa+seIXY+Fi74yilcmHm5pnsP7efCW0n4CWeX3ee/y/MJhFh4p0TOXH5BJPXT7Y7jlIqh2LjY3llxSs0r9icTtU62R0nT2ihZ6BFcAu63NyFiWsmcjrOLc6PUkql8866dzhx+QQT75yYb84t0UK/jgltJ3A5/jLjV463O4pSKptiYmOYuGYiXW7uQsvglnbHyTNa6NdRs1RNHqv3GFMjpnLw3EG74yilsmHcynHEJsTyWtvX7I6Sp7TQMzGm9Ri8vbx14C6l3MiBcwd4P/J9nqj/BDVK1bA7Tp7SQs9EhaAKDG4ymPDt4Ww6scnuOEopB4xaNgofLx/GtB5jd5Q8p4WehREtR1AyoCRDfxqKXQOZKaUcs+HYBubsmMNzzZ6jXOFydsfJc1roWShSoAj/vf2/LD+0XAfuUsqFGWMY+tNQSgeWZniL4XbHsYUWugOebvg01YpX4/mfnycx2aWvfa1UvvXNnm9YHb2aV1u/SmH/wnbHsYUWugN8vX35313/Y8/pPXy06SO74yil0olPiueFpS9Qs1RNnmjwhN1xbKOF7qAuN3fhtuDbeHn5y1y8dtHuOEqpNN6PeJ+os1FMumsSPl4+dsexjRa6g0SEt9q9xanYU0xYNcHuOEqpVGevnOXVla/StkpbOlTtYHccW2mhZ0NIuRD61O3D2+ve5sA5t7gGtlIe79UVr3L+6nnevPvNfHOK//VooWfThDYT8PHyYfjS/PktulKuZM/pPUyNmMqT9Z+kbpm6dsexnRZ6NpUPKs+IFiP4atdXrDy80u44SuVrQ38aSoBvAGPbjLU7ikvQQs+Boc2HppxFungwSclJdsdRKl9aHLWYRfsWMbrVaEoHlrY7jkvQQs+BAN8AJt45kc1/bObjLR/bHUepfCchKYHnljzHTcVu4tnGz9odx2VooedQz1t70qJiC0b+MpLzV8/bHUepfGVqxFR2n97Nm3e/ib+Pv91xXIYWeg6JCO91eI8zcWcYs3yM3XGUyjdOxZ7iv8v/S7ub2nHvzffaHcelaKHnQv2y9QltGMqUDVPYFbPL7jhK5Qsjl44kLiGOd9q/k+8PU0zPoUIXkfYisldEokRkxHWWaS0iW0Rkp4issDam6xrXZhyF/Qsz8MeBOhqjUk624dgGZm6ZyeAmg7ml5C12x3E5WRa6iHgDU4EOQE2gp4jUTLdMUWAacK8xphbQzfqorqlkQElebf0qvxz8hfm759sdRymPlWySGfjjQMoUKsPo2/WiMxlxZAu9MRBljDlgjIkH5gBd0i3TC1hgjIkGMMacsjama+vXqB91b6jLkCVDiI2PtTuOUh7p480fs/7YeibeOZEg/yC747gkRwq9PHAkzf2jqdPSqg4UE5HlIrJRRPpk9EQiEioikSISGRMTk7PELsjHy4epHady9OJRxq0cZ3ccpTzOmbgzDF86nJbBLXm4zsN2x3FZjhR6Rt86pN9Z7AM0BDoB7YDRIlL9Xw8yJswYE2KMCSlVqlS2w7qyFsEteLTeo7z525vsOb3H7jhKeZRRy0Zx/up5pnWcpl+EZsKRQj8KVExzvwJwPINlFhtjYo0xp4GVQL4bWGHinRMJ8A3g2R+f1S9IlbJIxLEIwjaGMbDJQGrfUNvuOC7NkUKPAKqJSBUR8QN6AAvTLfMtcJuI+IhIANAE2G1tVNdXOrA049uMZ+mBpczdOdfuOEq5vaTkJPr90I8yhcrky4s+Z1eWhW6MSQQGAEtIKem5xpidItJXRPqmLrMbWAxsAzYAM4wxO5wX23X1DelLw7INGbxkMBeuXrA7jlJubXrkdDae2Mhb7d7SL0IdIHbtGggJCTGRkZG2rNvZNh7fSOMZjekX0o8pHafYHUcpt3T80nFumXILTSs0ZclDS3TfeSoR2WiMCclonp4p6gQNyzVkQKMBTIuYxoZjG+yOo5RbGrx4MPFJ8UzrpF+EOkoL3UnGthlL2cJlefr7p0lMTrQ7jlJuZdG+RczbNY/RrUZTtXhVu+O4DS10JwnyD2Jy+8ls+WML765/1+44SrmN2PhY+i/qT42SNXi+xfN2x3ErWuhO1LVGV+6pfg+jfx3NwXMH7Y6jlFsYs3wMh84fYnrn6fh5+9kdx61ooTuRiDC141S8xIu+P/TVY9OVykLk8UjeWvcWoQ1CaVWpld1x3I4WupNVLFKR19u+zk/7f+LzbZ/bHUcpl5WQlMCTC5/khsAbmHjXRLvjuCUt9DzQr1E/mlVoxpAlQ4iJ9ZwxbJSy0pu/vcnWk1uZ1mkaRQsUtTuOW9JCzwNe4sWH93zIxWsXGbh4oN1xlHI5v5/5nTHLx9C1Rlfuu+U+u+O4LS30PFKrdC1evv1l5uyYwzd7vrE7jlIuI9kk88TCJyjoW5D3Orxndxy3poWeh4a3GE69MvXo90M/zl05Z3ccpVzClA1TWB29mnfavUPZwmXtjuPWtNDzkK+3LzPvncnpuNMMWTLE7jhK2S7qbBQjlo6gY7WO9Kmb4WUUVDZooeex+mXrM6LFCD7Z+gmL9i2yO45StvlzV4uvty8fdP5AT++3gBZ6ToSHQ+XK4OWVchsenq2Hv9TqJW4tfStPLnySs1fOOiWiUq5uWsQ0Vh5eyVt3v0WFoAp2x/EIWujZFR4OoaFw+DAYk3IbGpqtUvf38eeT+z4hJi6GgT/qUS8q//n9zO+88PMLtK/ansfrP253HI+hhZ5do0ZBXNw/p8XFpUzPhgZlGzC61WjCt4czf9d8CwMq5doSkxN55JtH8PfxZ8Y9M3RXi4W00LMrOjp70zMxsuVIGpZtSN8f+nIq9lQugynlHt5Y+wbrjq5jaseplA9Kf715lRta6NkVHJy96Znw9fbl0/s/5dK1Szz13VM61ovyeNtObuPlX1/mgZoP0PPWnnbH8Tha6Nk1fjwEBPxzWkBAyvQcqFmqJq+1fY2FexcyY9MMCwIq5ZquJl6l94LeFC9YnPc7va+7WpxACz27eveGsDCoVAlEUm7DwlKm59CgpoNoW6Utg5cMZt+ZfRaGVcp1jFw6kh2ndvBxl48pGVDS7jgeSQs9J3r3hkOHIDk55TYXZQ4pY73Mum8Wft5+PPz1w3qFI+Vxftr/E++sf4cBjQbQoVoHu+N4LC10F1EhqAIfdP6A9cfWM3bFWLvjKGWZ03GnefSbR6lZqib/u+t/dsfxaFroLqR7re70qduHcavGsfLwSrvjKJVrxhieXPgkp+NOE/6fcAr6FrQ7kkfTQncxUzpM4cZiN9J7QW89i1S5vWnTHuPbvd/y+o8J1Gt6X7bPqlbZo4XuYgr7F2Z219mcvHxSD2VUbm3rzAkM/eMTOuyDwevI0VnVKnu00F1QSLkQJrSdwILdC/hg4wd2x1Eq22LjY+mx/b8UuwKzvgGvP7dLcnBWtXKcFrqLeq7Zc7S7qR2DFw9myx9b7I6jVLYM/HEge4sk8vkCKB2bbmYOzqpWjnGo0EWkvYjsFZEoERmRyXKNRCRJRB6wLmL+5CVefHb/Z5QIKEH3ed25eO3ivxfK5aiPSjnDJ1s+YeaWmby4LYi2BzNYIAdnVSvHZFnoIuINTAU6ADWBniJS8zrLTQSWWB0yvyoVWIo5Xeew/9x+Qr8L/ef+dAtGfVTKajtO7aDfD/1oXbk1Y/7znqVnVausObKF3hiIMsYcMMbEA3OALhks9ywwH9BRpix0W6XbGHfHOL7c+SXTI6f/PcOiUR+Vssrl+Mt0m9eNIP8gvvjPF/g81Mfys6pV5nwcWKY8cCTN/aNAk7QLiEh54H6gDdDoek8kIqFAKECwfuxy2PCWw1kVvYrBSwbTsFxDGpdvbOmoj0rlljGGp79/mt/P/M7PD//897VBe/fWAs9DjmyhZzSCTvpj6d4BhhtjkjJ7ImNMmDEmxBgTUqpUKQcjKi/x4vP/fE65wuV4YO4DxMTGWDrqo1K5NWXDFL7Y/gWvtH6FNlXa2B0n33Kk0I8CFdPcrwAcT7dMCDBHRA4BDwDTROQ+KwKqFMULFmd+9/mcij1FrwW9SBo3VvdPKpewOno1z/30HPdUv4cXb3vR7jj5miOFHgFUE5EqIuIH9AAWpl3AGFPFGFPZGFMZ+Ap4xhjzjdVh87sGZRswrdM0lh5Yyuiyu3X/pLLdiUsn6DavG5WLVubT+z/FS/RIaDtluQ/dGJMoIgNIOXrFG5hpjNkpIn1T50/P9AmUpR6v/zjrj67ntdWvUf+BuXQ7dMjuSCqfik+Kp9u8bly8dpGfH/6ZogWK2h0p33PkS1GMMYuARemmZVjkxphHcx9LZea9ju+xI2YHj377KNVLVKdumbp2R1L5jDGGAYsGsObIGuZ0ncOtpW+1O5JCzxR1S37efszvPp9iBYpx35f3cTrutN2RVD4zLWIaH276kJEtR/LgrQ/aHUel0kJ3U2UKleHrB7/+ax9mQlKC3ZFUPvHrwV8ZtHgQnat3ZlybcXbHUWloobuxRuUbMePeGSw/tJz+i/rryIzK6aLORtFtXjeqlajG5/d/rl+CuhiH9qEr1/VQnYfYHbObCasnUKNkDYY0G2J3JOWhzl05R6cvOmEwfNfzO4oUKGJ3JJWOFroHGNtmLHvP7GXoT0OpVqIanat3tjuS8jAJSQk8MO8BDp47yNI+S6lavKrdkVQG9POSB/ASLz657xMalG1Aj696sOnEJrsjKQ9ijOGZH55h2cFlzLh3Bq0qtbI7kroOLXQPEegXyMKeCykRUIJOX3Ti8PnDdkdSHmLCqgnM2DyDF1u+SJ+6feyOozKhhe5ByhUux6Jei7iScIUO4R04d+Wc3ZGUm/tkyye89OtLPFTnIT2ixQ1ooXuYWqVr8fWDXxN1Nor7v7yfq4lX7Y6k3NTP+3/mye+epG2Vtnx070eIZDROn3IlWuge6I4qdzDrvlmsOLyC3gt6k5Sc6SCYSv3LxuMb6Tq3KzVK1mB+9/n4efvZHUk5QAvdQ/Wq3Yt32r3Dgt0LeOaHZ/QYdeWwvaf30j68PcULFufH3j/q4YluRAvdgw1qOogXW75I2KYwRv862u44Ki/l8HqzRy4c4a7P7kIQfnr4J8oHlXdqTGUtPQ7dw41rM45TsacYv2o8RfyL8HyL5+2OpJztz+vN/nmJwj+vNwuZDq8cExtDu8/bcf7qeZY/upzqJarnQVhlJd1C93AiwvTO03mw1oO8sPQFpkVMszuScrYcXG/23JVz3P353Rw8f5CFPRfSoGwDJ4dUzqBb6PmAt5c3n93/GXEJcfRf1J9A30AeqfeI3bGUs2TzerMXr12kfXh7dsXs4tse39K6cmvnZVNOpVvo+YSvty9zu83lrhvv4vGFjxO+zbF9qsoNZeN6s5fjL9Ppi05sOrGJuQ/MpX3V9k4Op5xJCz0fKeBTgK8f/JrbK91On2/6aKl7qvHjHbre7KVrl+gY3pG1R9YS/p9wutzSJQ9DKmfQQs9nAv0C+a7nd1rqnqx37yyvN3vx2kU6hHdg7ZG1fPGfL+heq7uNgZVVxK7jk0NCQkxkZKQt61YQGx/LPbPvYcXhFcy4ZwaP1X/M7kgqj1y4eoEO4R3YcGwDs7vOplutbnZHUtkgIhuNMSEZzdMt9Hwq0C+Q73t9z5033snjCx9nyoYpdkdSeeB03GnafNqGiOMRfPnAl1rmHkYLPR8L8A1gYY+FdLm5C8/++Cyvr37d7kjKiY5dPMbts27/62iWrjW72h1JWUwLPZ/z9/FnXrd59Krdi5G/jOSFn18g2STbHUtZbP/Z/dz28W1EX4hmce/FdKzW0e5Iygn0OHSFr7cvn973KUX9izJp7SROxp5kxj0z8PX2tTuassDG4xvp+EVHEpMTWdZnGY3KN7I7knISLXQFpJx8NKXjFMoUKsPLy18mJjaGed3mEegXaHc0lQtLopbQdW5XSgaUZPFDi7ml5C12R1JOpLtc1F9EhNG3jyascxhL9i+h1axWHL903O5YKodmbZlF59mdqVq8KmufWKtlng9ooat/earhUyzssZC9p/fSZEYTtp3cZncklQ3JJpmRS0fy2LeP0bpya1Y8uoJyhcvZHUvlAYcKXUTai8heEYkSkREZzO8tIttSf9aKSF3ro6q81Kl6J1Y/vhpjDC1mtuD737+//sI5HKpVWS8uIY7u87rz+prXebrh0yzqtUjHM89Hsix0EfEGpgIdgJpATxGpmW6xg8Dtxpg6wFggzOqgKu/VK1OP9U+up3qJ6tw7+14mrJrw7wtl/DlU6+HDYMzfQ7Vqqee5Q+cP0WJmCxbsXsBbd7/F+53e1y+28xlHttAbA1HGmAPGmHhgDvCPQR+MMWuNMX9ekXgdUMHamMou5YPKs+qxVfSs3ZNRy0bx4FcPEhsf+/cCORiqVVnvlwO/EBIWwsFzB/m+1/cMaTZErwGaDzlS6OWBI2nuH02ddj1PAD9mNENEQkUkUkQiY2JiHE+pbBXgG8Dn93/OpLsmMX/3fJrMaMLumN0pM7M5VKuyVrJJZtKaSdz9+d3cUOgGIp6K0GPM8zFHCj2j/81nOACMiNxBSqEPz2i+MSbMGBNijAkpVaqU4ymV7USEYc2HseShJZyKPUWjDxsxe/vsbA3Vqqx19spZuszpwgtLX+D+W+5n3RPrqFaimt2xlI0cKfSjQMU09ysA/zqWTUTqADOALsaYM9bEU67mzhvvZPPTm6lftj69FvQidNCNxBYp+M+FMhiqVVnrtyO/Uf+D+iyJWsK77d9lXrd5FPYvbHcsZTNHCj0CqCYiVUTED+gBLEy7gIgEAwuAh40xv1sfU7mS8kHlWdZnGcNbDGfGxeU0fKEom+uXve5Qrco6icmJjFk+hts+vg0v8WLN42t4tsmzur9cAQ4UujEmERgALAF2A3ONMTtFpK+I9E1d7GWgBDBNRLaIiI6L6+F8vX15/c7XWdpnKZcKCE3uP83Ela+ReCBKy9xJos5G0XJmS15Z8Qq9avdiy9Nb9DR+9Q86HrrKtTNxZwj9PpQFuxfQpHwTZt03S89KtFBSchLvbXiPF395EX8ff6Z3ms6Dtz5odyxlEx0PXTlViYASfNXtK774zxfsO7uPetPr8frq10lISrA7mtvbc3oPrWa1YsiSIdxR5Q6299uuZa6uSwtdWUJE6Fm7J7ue2UWn6p0Y+ctIGoQ1YE30GrujuaUrCVcYvWw0dafXZXfMbj6971O+7/k9FYL0FA91fVroylI3FLqB+d3n822Pb7lw9QItP27JE98+wcnLJ+2O5haMMfzw+w/UmlaLcavG0b1Wd3b138XDdR/WLz5VlrTQlVPce/O97Oq/i2HNhvHptk+p9l41/rfmf1xLvGZ3NJe1/eR22n3ejs6zO+Pv48+yPsv47P7PKFOojN3RlJvQQldOU8ivEJPunsTOZ3bSunJrhi8dTo2pNfhs62ckJSfZHc9lHL14lNDvQqn3QT0ij0fyTrt32Np3K3dUucPuaMrNaKErp6teojoLey7kp4d+oljBYvT5pg91ptdhwe4F+fpydycvn2Tw4sFUfbcqs7bMYkCjAUQNjGJQ00H4efvZHU+5IS10lWfuuukuIp6KYO4Dc0lKTqLr3K7Ueb8O4dvCSUxOtDtenjl0/hDPLnqWKpOrMGXDFB6q8xD7nt3H5A6TKV6wuN3xlBvT49CVLRKTE5m7cy4TVk1gZ8xOqhStwrONn+Wx+o9RtEBRu+M5xYZjG3h3/bvM2TEHL/Hi4ToPM6LlCB1/RWVLZseha6ErWyWbZL7b+x1v/vYmq6JXEegbSJ+6fXiqwVPUL1vf7ni5FpcQx7yd85gaMZWI4xEU8itEaINQhjQboocgqhzRQlduYdOJTX9twV5Luka9MvV4rN5jdK/V3a2O9Eg2yayJXsMnWz9h7s65XIq/xC0lb2FAowE8XPdhgvyD7I6o3JgWunIr566cY/aO2czcPJONJzYiCLdXvp1uNbvRuXpngou43tC8icmJrIlew/zd85m/ez7HLx0n0DeQbrW68UjdR7i90u16HLmyhBa6clu7YnYxd+dcvtz5JXtO7wHg1tK30qFqB9pUaUPzis1t2eI1xrDv7D5WHFrBkv1LWHpgKReuXaCATwHaV23PAzUeoMstXSjkVyjPsynPpoWu3J4xht2nd7No3yIW7VvEquhVJCYn4iVe1C9Tn0blGtEgOoH6H/1AjR1/EFi2UsqY7BaM/GiM4dilY2z9Yytb/thC5IlI1kSvISYu5apbFYIq0P6m9rSv2p52VdtpiSun0kJXHudy/GXWHV3HqsOrWBW9ik3R67mQ/Pe1TctdhOrnvQiu1ZxydVpStnBZihcsTmG/whT2L4y/tz8igpd4EZ8UT2x8LHEJcZy7eo6Tl09yMvYkRy4e4cC5A+w/u5/YhL+vo1q1eFWaV2xOi4otaBnckhola+juFJVntNCVxzOVK3HwYjSbysLeErCvBOwrDkeLe3MiyIuE5OyN/FjEvwjlCpfjpuI3cVOxm6hWvBr1ytSj9g219UtNZavMCt0nr8Mo5QwSfYQbDdx4Lv2MZJKT4jkTd4bzV89z8dpFLsVfIj4pHmMMBoOPlw+BvoEE+gVStEBRSgeWpoBPAVv+HUrlhha68gzBwXD4cIbTvcSLUoGlKBWoFyZXnk1P/VeeYfz4lItTp2XXxarDw6FyZfDySrkND8/7DCpf0kJXnqF375SLU1eqZO/FqsPDITQ05dOCMSm3oaFa6ipP6JeiSlmpcuWMd/1UqgSHDuV1GuWB9JqiSuWV6OjsTVfKQlroSlkp+DrDElxvulIW0kJXykqu9OWsyne00JWykqt8OavyJT0OXSmr9e6tBa5soVvoSinlIRwqdBFpLyJ7RSRKREZkMF9E5N3U+dtEpIH1UZVSSmUmy0IXEW9gKtABqAn0FJGa6RbrAFRL/QkF3rc4p1JKqSw4soXeGIgyxhwwxsQDc4Au6ZbpAnxqUqwDiopIWYuzKqWUyoQjhV4eOJLm/tHUadldBhEJFZFIEYmMiYnJblallFKZcOQol4xG7k8/XoAjy2CMCQPCAEQkRkQyOEfaISWB0zl8rDO5ai5w3WyaK3s0V/Z4Yq5K15vhSKEfBSqmuV8BOJ6DZf7BGJPjsUxFJPJ6YxnYyVVzgetm01zZo7myJ7/lcmSXSwRQTUSqiIgf0ANYmG6ZhUCf1KNdmgIXjDEnLM6qlFIqE1luoRtjEkVkALAE8AZmGmN2ikjf1PnTgUVARyAKiAMec15kpZRSGXHoTFFjzCJSSjvttOlpfjdAf2ujZSosD9eVHa6aC1w3m+bKHs2VPfkql23joSullLKWnvqvlFIeQgtdKaU8hMsWuoh0E5GdIpIsItc9vOd648yISHER+VlE9qXeFrMoV5bPKyI3i8iWND8XRWRw6rwxInIszbyOeZUrdblDIrI9dd2R2X28M3KJSEUR+VVEdqf+zQelmWfp65WbcYmyeqyTc/VOzbNNRNaKSN008zL8m+ZRrtYiciHN3+dlRx/r5FzPp8m0Q0SSRKR46jxnvl4zReSUiOy4znznvr+MMS75A9QAbgaWAyHXWcYb2A/cCPgBW4GaqfP+B4xI/X0EMNGiXNl63tSMfwCVUu+PAYY54fVyKBdwCCiZ23+XlbmAskCD1N8LA7+n+Tta9npl9n5Js0xH4EdSTpZrCqx39LFOztUcKJb6e4c/c2X2N82jXK2B73PyWGfmSrf8PcAyZ79eqc/dCmgA7LjOfKe+v1x2C90Ys9sYszeLxTIbZ6YL8Enq758A91kULbvP2xbYb4zJ6Vmxjsrtv9e218sYc8IYsyn190vAbjIYOsICuRmXyJHHOi2XMWatMeZc6t11pJy852y5+Tfb+nql0xOYbdG6M2WMWQmczWQRp76/XLbQHZTZGDI3mNSTm1JvS1u0zuw+bw/+/WYakPpxa6ZVuzaykcsAP4nIRhEJzcHjnZULABGpDNQH1qeZbNXrlZtxiRwar8iJudJ6gpStvD9d72+aV7maichWEflRRGpl87HOzIWIBADtgflpJjvr9XKEU99ftl6xSESWAmUymDXKGPOtI0+RwbRcH4eZWa5sPo8fcC8wMs3k94GxpOQcC7wJPJ6HuVoYY46LSGngZxHZk7pVkWMWvl6FSPkPb7Ax5mLq5By/XhmtIoNpjo5L5JT3Whbr/PeCIneQUugt00y2/G+ajVybSNmdeDn1+41vSBlG2yVeL1J2t6wxxqTdanbW6+UIp76/bC10Y8yduXyKzMaQOSkiZY0xJ1I/0pyyIpeIZOd5OwCbjDEn0zz3X7+LyIfA93mZyxhzPPX2lIh8TcpHvZXY/HqJiC8pZR5ujFmQ5rlz/HplIDfjEvk58Fhn5kJE6gAzgA7GmDN/Ts/kb+r0XGn+x4sxZpGITBORko481pm50vjXJ2Qnvl6OcOr7y913uWQ2zsxC4JHU3x8BHNnid0R2nvdf++7kn+PE3w9k+G24M3KJSKCIFP7zd+DuNOu37fUSEQE+AnYbY95KN8/K1ys34xI58lin5RKRYGAB8LAx5vc00zP7m+ZFrjKpfz9EpDEpnXLGkcc6M1dqniLA7aR5zzn59XKEc99fzvim14ofUv7jPQpcA04CS1KnlwMWpVmuIylHRewnZVfNn9NLAL8A+1Jvi1uUK8PnzSBXAClv7CLpHv8ZsB3YlvoHK5tXuUj5Bn1r6s9OV3m9SNl9YFJfky2pPx2d8Xpl9H4B+gJ9U38XUq7QtT91vSGZPdbC93tWuWYA59K8PpFZ/U3zKNeA1PVuJeXL2uau8Hql3n8UmJPucc5+vWYDJ4AEUvrribx8f+mp/0op5SHcfZeLUkqpVFroSinlIbTQlVLKQ2ihK6WUh9BCV0opD6GFrpRSHkILXSmlPMT/ATsMCNwVcbowAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from sklearn.linear_model import LinearRegression\n", "\n", "reg = LinearRegression()\n", "\n", "reg.fit(XtildeMat, tnoisy)\n", "\n", "x_prediction = np.linspace(-1,1,100)\n", "\n", "predictionMat = np.hstack((np.ones((len(x_prediction),1)), \\\n", " x_prediction.reshape(-1,1),\\\n", " (x_prediction**2).reshape(-1,1)))\n", "\n", "\n", "predictions = reg.predict(predictionMat)\n", "\n", "\n", "plt.scatter(x, tnoisy, c='r')\n", "plt.plot(x_prediction, predictions, c='g')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### IV. Overfitting and regularization" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "\n", "x = np.linspace(-1,1,10)\n", "\n", "beta0true = .1\n", "beta1true = .1\n", "beta2true = 1\n", "\n", "t = beta0true + beta1true *x + beta2true * (x**2)\n", "\n", "tnoisy = t + np.random.normal(0,.2,len(x))\n", "\n", "plt.scatter(x, tnoisy, c='r')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__IV.a__ Generating the high dimensional model" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from sklearn.preprocessing import PolynomialFeatures\n", "\n", "# Generating high dimensional (high complexity) model\n", "\n", "poly = PolynomialFeatures(50)\n", "XtildeMat = poly.fit_transform(x.reshape(-1,1))\n", "\n", "reg = LinearRegression()\n", "reg.fit(XtildeMat, tnoisy)\n", "\n", "x_prediction = np.linspace(-1,1,100)\n", "\n", "predictions = reg.predict(poly.fit_transform(x_prediction.reshape(-1,1)))\n", "\n", "plt.plot(x_prediction,predictions)\n", "plt.scatter(x, tnoisy, c='r')\n", "plt.show()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__IV.b__ Regularizing with ridge/Lasso" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from sklearn.linear_model import Ridge\n", "\n", "clf = Ridge(alpha=.1)\n", "clf.fit(XtildeMat, tnoisy)\n", "\n", "x_prediction = np.linspace(-1,1,100)\n", "\n", "predictions = clf.predict(poly.fit_transform(x_prediction.reshape(-1,1)))\n", "\n", "plt.plot(x_prediction,predictions)\n", "plt.scatter(x, tnoisy, c='r')\n", "plt.show()\n" ] } ], "metadata": { "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.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }