{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "**Support Vector Machines**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_This notebook is an extra chapter on Support Vector Machines. It also includes exercises and their solutions at the end._" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", " \n", " \n", "
\n", " \"Open\n", " \n", " \n", "
" ] }, { "cell_type": "markdown", "metadata": { "tags": [] }, "source": [ "# Setup" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This project requires Python 3.8 or above:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import sys\n", "\n", "assert sys.version_info >= (3, 8)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It also requires Scikit-Learn ≥ 1.0.1:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import sklearn\n", "\n", "assert sklearn.__version__ >= \"1.0.1\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we did in previous chapters, let's define the default font sizes to make the figures prettier:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "\n", "plt.rc('font', size=14)\n", "plt.rc('axes', labelsize=14, titlesize=14)\n", "plt.rc('legend', fontsize=14)\n", "plt.rc('xtick', labelsize=10)\n", "plt.rc('ytick', labelsize=10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And let's create the `images/svm` folder (if it doesn't already exist), and define the `save_fig()` function which is used through this notebook to save the figures in high-res for the book:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "from pathlib import Path\n", "\n", "IMAGES_PATH = Path() / \"images\" / \"svm\"\n", "IMAGES_PATH.mkdir(parents=True, exist_ok=True)\n", "\n", "def save_fig(fig_id, tight_layout=True, fig_extension=\"png\", resolution=300):\n", " path = IMAGES_PATH / f\"{fig_id}.{fig_extension}\"\n", " if tight_layout:\n", " plt.tight_layout()\n", " plt.savefig(path, format=fig_extension, dpi=resolution)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Linear SVM Classification" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The book starts with a few figures, before the first code example, so the next three cells generate and save these figures. You can skip them if you want." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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WABatmxJVFQUhw8fplmzZqVunsyXrV27NoMGDeLtt99m0aJFvPPOOw7/w7nhhhs4fvy400VoLVu2ZMOGDaUe27BhQ/F0CUfHFxYWsmnTpuLHsrOz2bNnDy1btnQbtxUFW/ELcPzcca6tfS2t41vLAjjhM126dOG9995jx44dLj9RMwsrtkl+/fXXWblyJcOHDzc6HCFc8nQO8D1AX631Z36MxZSsst3H5s2b+eyzz+jevTvx8fF88803HDlyxG3RN2DAAN58800OHTrEv/71r+LHq1atypgxYxgzZgxaa2655RbOnz/P5s2b3Xb/mThxIjfccAOtWrUiPz+fFStW0LRpU4f/4dx222107NiRe++9l6lTp3Ldddfx3XffceHCBe655x6eeOIJbrzxRp577jn69+/Ptm3bmDlzJn/9618dvndiYiJ33303Q4cOZeHChdSoUYPx48dTrVo1+vfv7+HfpnUEY/ELcE3Na9g7bC/5hflGhyKCzIABA4wOwSv3338/7777LqtWrWL06NF88MEHRofkUuPGjV2u+xDCLDwdAb4IHPFnIKJiqlevzsaNG+nduzeJiYk88cQTTJgwoXhOrzMDBw5k3759VK9endtvv73Uc5MnT+a5555jxowZtGrVittvv53ly5fTpEkTl+eMiopi/PjxtG3bls6dO3Pu3Dk++eQTh8eGhYXx73//m86dOzNkyBBatGjB6NGji7f+ueGGG/jwww9Zvnw5ycnJPPPMMzzzzDMuO7+99dZbdOjQgbvuuosOHTpw8eJFVq9eTUxMjMu4rSZYi9+SIsJkna7wj4sXL/Lss8+SlZVldCguKaWYN28eVapUKW6TbBVbt24t3lZTCNPRWru9AaOABUCYJ8cH8paUlKSdycjIcPqclWRnZxsdQkCY8Tp9/TO0bt06n5wn71ye3nHzDr2OdXpjvY36woELPjmvL/jiGk+cO6ELCwtdHvPrzLIrbxU51lNF1+mPczsCfK0DkDeDhbufw9TUVA3oe++9NzABVdDLL7+sAV2/fn199uxZrbXv8ok/HD9+XFeqVEkrpfTmzZsrdC4zX6evBOoajcybJa/RDHnT6QiwUurjohvQDbgf+J9S6t8ln7M/75ZSarFS6pRSaq+T51OUUmfti+x2KqUmelXJCxEigmHk19Xq4ot5F0mYlUCDlxuQV1C+1qplz+tM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UC067vjx48X3//WvfzFixAgef/xx9u7dy+jRoxk2bFjx3DR373vu3DkGDRrEl19+ydatW7nuuuvo2bMnp08H53bQVpz24KiHu1V4us17IPvRC3MqapN85swZvv76a6PDcatsm+SiTwrNqmSb5LVr1xYPrgQjRznTKnnTm/YYVsub7rZBK7IFeFUpNUBrfQxAKVUPeBnY7K/gzCAn5wevHveX6OhoFi9eTFRUlMPns7KyyMvLo0+fPjRq1AiA5OQrOk4X++GHH6hSpQp33XUXVatWpVGjRrRt+2vjgcmTJ/Piiy/Sp08fAJo0acIzzzzDvHnzGDFiBHXq1AGgRo0a1C3xWdCMGTMYNGhQ8ch0UlIS27dvZ/r06dx5551u37dr19JdtefMmcPy5ctZvXo1AwcO9OavzPSsWPwKESrCw8P5+9//TlRUVHFONbuJEyeybNky0tPTefHFF02/yKxbt2589tlndOnSxdRbzong5OlP3CNALeCQUuqQUuoQcAhbK+Qh/gnNHKKiHA9wO3vcX5KTk50Wv2D77b9bt24kJydz7733Mn/+fH788Uenx99+++00atSIJk2aMGDAAN555x3OnTsHwI8//siRI0cYOnQosbGxxbdnnnmG77//3mWcmZmZdO7cudRjN910ExkZGW7fF+DUqVMMHTqUpKQkqlevTtWqVTl16hQ//BDYXzj8TYpfIcwvKSnJMsUvQExMTPGo6uTJk9m3b5/BEbl32223SfErDOHRT53W+nugDdALmIVt5Lcn0Fpr/Z3/wjNe06ZTCQsrXZiEhVWmadPArlSvUqWKy+fDw8NZs2YNa9asoU2bNixatIjExER27drl8PiqVauyY8cOPvjgAxo2bMi0adO49tprycrKKv4o6vXXX2fnzp3Ft71795Kenu42VkfdlIoec/W+AA8++CDbtm3j5Zdf5quvvmLnzp3Ur1/f9B/neUOKXyGspbCwkNdff52ZM82/5KWoTXJubi6pqamWmVrwww8/0L9/f05Y7XN0YVke/9qlbdZorV/VWr+itf5vKHRqi48fQPPmC4mKagQooqIa0bz5QuLjBxgd2hWUUnTq1IlJkyaxbds2EhISeP/9950eHxERQdeuXZk2bRq7d+/mwoULfPrpp8THx1OvXj2+//57mjVrdsWtSGRkJAUFpRsBtmjRgg0bNpR6bMOGDbRs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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–1\n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from sklearn.svm import SVC\n", "from sklearn import datasets\n", "\n", "iris = datasets.load_iris(as_frame=True)\n", "X = iris.data[[\"petal length (cm)\", \"petal width (cm)\"]].values\n", "y = iris.target\n", "\n", "setosa_or_versicolor = (y == 0) | (y == 1)\n", "X = X[setosa_or_versicolor]\n", "y = y[setosa_or_versicolor]\n", "\n", "# SVM Classifier model\n", "svm_clf = SVC(kernel=\"linear\", C=float(\"inf\"))\n", "svm_clf.fit(X, y)\n", "\n", "# Bad models\n", "x0 = np.linspace(0, 5.5, 200)\n", "pred_1 = 5 * x0 - 20\n", "pred_2 = x0 - 1.8\n", "pred_3 = 0.1 * x0 + 0.5\n", "\n", "def plot_svc_decision_boundary(svm_clf, xmin, xmax):\n", " w = svm_clf.coef_[0]\n", " b = svm_clf.intercept_[0]\n", "\n", " # At the decision boundary, w0*x0 + w1*x1 + b = 0\n", " # => x1 = -w0/w1 * x0 - b/w1\n", " x0 = np.linspace(xmin, xmax, 200)\n", " decision_boundary = -w[0] / w[1] * x0 - b / w[1]\n", "\n", " margin = 1/w[1]\n", " gutter_up = decision_boundary + margin\n", " gutter_down = decision_boundary - margin\n", " svs = svm_clf.support_vectors_\n", "\n", " plt.plot(x0, decision_boundary, \"k-\", linewidth=2, zorder=-2)\n", " plt.plot(x0, gutter_up, \"k--\", linewidth=2, zorder=-2)\n", " plt.plot(x0, gutter_down, \"k--\", linewidth=2, zorder=-2)\n", " plt.scatter(svs[:, 0], svs[:, 1], s=180, facecolors='#AAA',\n", " zorder=-1)\n", "\n", "fig, axes = plt.subplots(ncols=2, figsize=(10, 2.7), sharey=True)\n", "\n", "plt.sca(axes[0])\n", "plt.plot(x0, pred_1, \"g--\", linewidth=2)\n", "plt.plot(x0, pred_2, \"m-\", linewidth=2)\n", "plt.plot(x0, pred_3, \"r-\", linewidth=2)\n", "plt.plot(X[:, 0][y==1], X[:, 1][y==1], \"bs\", label=\"Iris versicolor\")\n", "plt.plot(X[:, 0][y==0], X[:, 1][y==0], \"yo\", label=\"Iris setosa\")\n", "plt.xlabel(\"Petal length\")\n", "plt.ylabel(\"Petal width\")\n", "plt.legend(loc=\"upper left\")\n", "plt.axis([0, 5.5, 0, 2])\n", "plt.gca().set_aspect(\"equal\")\n", "plt.grid()\n", "\n", "plt.sca(axes[1])\n", "plot_svc_decision_boundary(svm_clf, 0, 5.5)\n", "plt.plot(X[:, 0][y==1], X[:, 1][y==1], \"bs\")\n", "plt.plot(X[:, 0][y==0], X[:, 1][y==0], \"yo\")\n", "plt.xlabel(\"Petal length\")\n", "plt.axis([0, 5.5, 0, 2])\n", "plt.gca().set_aspect(\"equal\")\n", "plt.grid()\n", "\n", "save_fig(\"large_margin_classification_plot\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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PP7446xdu9ZrEtu3b18efvhhwFGG66mnnvKZxN5///3WYOCff/6ZxYsXWzNMJ06caLWvU6eOtagrwKeffkphYaHXhLdDhw7Wcx44cMAjiS7ZvmPHjlYy71oF3ts+ValSxaol7Joko4l15BCROsAPwHRjzHMAxpj1IvIFji+6+klSzsTExHDVVVdx1VVX8cgjj2CMITMz00oAXTVnv//+e/r378+IESM8SsJpzdmyK+taoE899RT9+/e33p+NGzeS5qzYcuDAASvhO3jwIAsWLNCKLU4XTPjC+eBXuXJlsrOzvQ7udiUbAI0bN2bhwoU+B4N36dLFanv33XfTvXt3r4PES/4zP//885w5c8a6v6yL0bqP9+vduzfVqlXzuk/t27e32sXGxtKlSxef++RKOMDxzSc+Pt7rPpU8FXby5Eny8vK8ziY9deqU9fuxY8fIzMz0uU/uMzmXLFnCvHnzvLYTESvhO3bsGO+9957P5xwwYICVnP3www9MnDgROH9ZllatWnkkfL///e85efKk1+d85ZVXeOyxxwCYM2cOI0aM8Ln9Y8eOWTP77r77bubOneu13fDhw/nss88A2Lp1K1dccYW1r+PHj+fGG2+0ksPp06dz9dVXA46/p7fffttrYtq8eXNmzJhhbePaa6/lzJkzXhPT3/3ud9bYuwULFjBp0iSfSexrr71m9QS//fbbbN++3SMZfvbZZ4mOjqZjx47WyvvHjh3zWES8ZNJ7/fXXWwPg169fby3RULJ9XFwcPXr0sPZpzZo1GGO8xpmQkGC99ufOnSMvL8+jTWxsrM/3rbSMMUeA86b/G2OGB2wjZVBYWEj//v2tiQYXqjmrLo1rBYh27dpZM0h3795NRkYGRUVFtGvXTkvCBciF1gL1Jjo6msqVK9O8eXOaN2/OyJEjATh06JA1Uce1hiPAjz/+yD333ANAu3btrFP0KSkpAS0JFykumPCF68EPHP+U/vSoVa1a1e/uXdd0f3889NBDHtdL1iX1V5UqVazfX3jhBb8e07RpU1avXu1X2+eee47nnvO+ekTJJTb2799PUVERy5Yts2aTuhLEmjVrWu0GDRrEhg0bfM6krF79lzEY48aN4/Dhw17buifJ9evX55133vGZxLpP9b/22mupXLkyRUVFNGjQgEceecRql5CQ4LFPd955J6dPn/Y629PVswqOmWSp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8ApAU2SllFJKBYWI0KZNG9q0acN9990HOErCZWRkUFRUdNFTuSUZY9i3bx/NmzcPRrjlmvbwKaWUUipkGjduzIgRI2jUqFGZHn/u3DlrMojynyZ8SimllAq5SpUqlelxmZmZNG3alJEjR/L222+zYcMGiouLAxxd+aMJn1JKKaVCrmHDhkRHR5fqMSLC6tWr2bNnD5988gl/+MMf6NixI/Xq1WPIkCF8+umnQYo28mnCp5RSSqmQa9Kkicf14lree+lK3v7GG2+wdu1a/v3vf3PnnXfSqFEjjhw5wrfffsvy5cutdjt27ODZZ59l7ty5nD59OvA7EGF00oZSSimlQi4mJobWrVuTlZVFUVERh989fMH20dHRVK5cmUqVKp1Xc3bnzp1kZGR4VOP46aefeOaZZwCIjY2le/fupKSkkJKSQlJSEnXq1Anm7oUdTfiUUkopZYuOHTty/Pjxiy6+HB0dTf369SksLDzvPhGhefPm583cvfLKK60FotesWcPixYtZvHgx48ePp0aNGhw9etQ6pXzkyJFynwBqwqeUUkopW4gISUlJPmvpxsTEYIyxaunOmzfP7+fu1asXvXr1AuD48eMsWrSIjIwM0tPTiY+Pt5K9/Px8GjduTGJiotUDmJKSQuvWrX2WhItEmvAppZRSyjYiQqdOnWjXrh3Z2dns27ePgoICYmNjadiwIU2aNLnkyhq1atViwIABDBgwAMBjWZft27cTExPD9u3b2b59Ox9++CEADRo0IDk5mWeffZYOHTpc0vbDgSZ8SimllLJdTEyM11OzweDec9e2bVuOHDnC2rVrycjIsC65ublMmzaNF1980Wp76NAhXnrpJVJSUujRoweVK1cOeqyBogmfUkoppSq0mJgYunXrRrdu3Xj44YcxxrBlyxYWLVpE69atrXYHDx7kySefBKBy5cr07NmTlJQUUlNT6dOnDzVr1rRrFy4qrJZlEZEBIrJZRLaKyFi741FKqUATkfEikikia0XkKxGJtzsmpZQnV0m40aNHe/QGXnbZZdbaf+fOnSMjI4MXX3yRAQMG8Pe//91qd+LECQ4cOGBH6D6FTcInItHAv4GBQHtghIi0tzcqpZQKuFlAR2NMZ2AL8ITN8Sil/FS7dm3efPNN1q1bx6FDh/jmm2949NFH6dWrF/3797faffnllzRo0IC2bdty33338dFH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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–2\n", "\n", "from sklearn.preprocessing import StandardScaler\n", "\n", "Xs = np.array([[1, 50], [5, 20], [3, 80], [5, 60]]).astype(np.float64)\n", "ys = np.array([0, 0, 1, 1])\n", "svm_clf = SVC(kernel=\"linear\", C=100).fit(Xs, ys)\n", "\n", "scaler = StandardScaler()\n", "X_scaled = scaler.fit_transform(Xs)\n", "svm_clf_scaled = SVC(kernel=\"linear\", C=100).fit(X_scaled, ys)\n", "\n", "plt.figure(figsize=(9, 2.7))\n", "plt.subplot(121)\n", "plt.plot(Xs[:, 0][ys==1], Xs[:, 1][ys==1], \"bo\")\n", "plt.plot(Xs[:, 0][ys==0], Xs[:, 1][ys==0], \"ms\")\n", "plot_svc_decision_boundary(svm_clf, 0, 6)\n", "plt.xlabel(\"$x_0$\")\n", "plt.ylabel(\"$x_1$    \", rotation=0)\n", "plt.title(\"Unscaled\")\n", "plt.axis([0, 6, 0, 90])\n", "plt.grid()\n", "\n", "plt.subplot(122)\n", "plt.plot(X_scaled[:, 0][ys==1], X_scaled[:, 1][ys==1], \"bo\")\n", "plt.plot(X_scaled[:, 0][ys==0], X_scaled[:, 1][ys==0], \"ms\")\n", "plot_svc_decision_boundary(svm_clf_scaled, -2, 2)\n", "plt.xlabel(\"$x'_0$\")\n", "plt.ylabel(\"$x'_1$ \", rotation=0)\n", "plt.title(\"Scaled\")\n", "plt.axis([-2, 2, -2, 2])\n", "plt.grid()\n", "\n", "save_fig(\"sensitivity_to_feature_scales_plot\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Soft Margin Classification" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–3\n", "\n", "X_outliers = np.array([[3.4, 1.3], [3.2, 0.8]])\n", "y_outliers = np.array([0, 0])\n", "Xo1 = np.concatenate([X, X_outliers[:1]], axis=0)\n", "yo1 = np.concatenate([y, y_outliers[:1]], axis=0)\n", "Xo2 = np.concatenate([X, X_outliers[1:]], axis=0)\n", "yo2 = np.concatenate([y, y_outliers[1:]], axis=0)\n", "\n", "svm_clf2 = SVC(kernel=\"linear\", C=10**9)\n", "svm_clf2.fit(Xo2, yo2)\n", "\n", "fig, axes = plt.subplots(ncols=2, figsize=(10, 2.7), sharey=True)\n", "\n", "plt.sca(axes[0])\n", "plt.plot(Xo1[:, 0][yo1==1], Xo1[:, 1][yo1==1], \"bs\")\n", "plt.plot(Xo1[:, 0][yo1==0], Xo1[:, 1][yo1==0], \"yo\")\n", "plt.text(0.3, 1.0, \"Impossible!\", color=\"red\", fontsize=18)\n", "plt.xlabel(\"Petal length\")\n", "plt.ylabel(\"Petal width\")\n", "plt.annotate(\n", " \"Outlier\",\n", " xy=(X_outliers[0][0], X_outliers[0][1]),\n", " xytext=(2.5, 1.7),\n", " ha=\"center\",\n", " arrowprops=dict(facecolor='black', shrink=0.1),\n", ")\n", "plt.axis([0, 5.5, 0, 2])\n", "plt.grid()\n", "\n", "plt.sca(axes[1])\n", "plt.plot(Xo2[:, 0][yo2==1], Xo2[:, 1][yo2==1], \"bs\")\n", "plt.plot(Xo2[:, 0][yo2==0], Xo2[:, 1][yo2==0], \"yo\")\n", "plot_svc_decision_boundary(svm_clf2, 0, 5.5)\n", "plt.xlabel(\"Petal length\")\n", "plt.annotate(\n", " \"Outlier\",\n", " xy=(X_outliers[1][0], X_outliers[1][1]),\n", " xytext=(3.2, 0.08),\n", " ha=\"center\",\n", " arrowprops=dict(facecolor='black', shrink=0.1),\n", ")\n", "plt.axis([0, 5.5, 0, 2])\n", "plt.grid()\n", "\n", "save_fig(\"sensitivity_to_outliers_plot\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Pipeline(steps=[('standardscaler', StandardScaler()),\n", " ('linearsvc', LinearSVC(C=1, random_state=42))])" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "from sklearn.datasets import load_iris\n", "from sklearn.pipeline import make_pipeline\n", "from sklearn.preprocessing import StandardScaler\n", "from sklearn.svm import LinearSVC\n", "\n", "iris = load_iris(as_frame=True)\n", "X = iris.data[[\"petal length (cm)\", \"petal width (cm)\"]].values\n", "y = (iris.target == 2) # Iris virginica\n", "\n", "svm_clf = make_pipeline(StandardScaler(),\n", " LinearSVC(C=1, random_state=42))\n", "svm_clf.fit(X, y)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ True, False])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_new = [[5.5, 1.7], [5.0, 1.5]]\n", "svm_clf.predict(X_new)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0.66163411, -0.22036063])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "svm_clf.decision_function(X_new)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsAAAACyCAYAAABMWnkMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAB0mElEQVR4nO2dd3hUVdrAf2fSQyAklCQkQBJKDKTRFZQiKgooiK5YUHHd1bWsFV37urb9dBXF1XXVddVV7GAHRYSgIEWQhAAhlBRIARIIaaTP+f6YzGVuZjKZZCaZCTm/55knM+eec+97T+59551z3yKklCgUCoVCoVAoFN0Fg7sFUCgUCoVCoVAoOhNlACsUCoVCoVAouhXKAFYoFAqFQqFQdCuUAaxQKBQKhUKh6FYoA1ihUCgUCoVC0a1QBrBCoVAoFAqFoluhDGCFQqFQKBQKRbdCGcCKbokQIkUIsVQIkS+EqBFC5Agh3hdCJLlo/5OFEF8JIQqEEFIIsdAV+1UoFIqOxlP0oxDi1qZj1wghtgkhzmlPH4XCFsoAVnQ7mpTtVqAWmA8MB65v2nyniw4TBOxs2l+1i/apUCgUHYqn6EchxHxgCfAMMAr4BVgphBjUlj4KRUsIVQlO0Z0QQpwF/AzcJ6V80cb2UCnlcRcfsxK4XUr5jiv3q1AoFK7Ek/SjEGIzsENK+UeLtn3AZ1LKBx3to1C0hFoBVnQ3XgA221LuAM2VuxDiISFEZSsv9chNoVCcDniEfhRC+AJjgFXNNq0CJjraR6Gwh7e7BVAoOgshxDDgLOCqNgz7N/BJK30K2i2UQqFQeAAeph/7Al7AkWbtR4Dz2tBHoWgRZQAruhOjm/5udXRA04qHSx/5KRQKhQfiifqxuY+msNHmSB+FwgrlAqHoTgQ2/a10dIBygVAoFN0ET9KPJUAjEN6svT+nVnwd6aNQtIhaAVZ0J3Y2/Z0CfNx8oxAiUEp5slmzcoFQKBTdAY/Rj1LKOiHENuB84FOLTecDyxzto1DYQxnAim6DlPJXIcQK4J9CiABgA6ZHZaOBPwJ/A9Y3G9OuR3xCiCBgaNNHAzBICJECHJdSHmz3SSgUCkUH4IH6cTHwnhBiS5MsfwIGYDK6aUMfhcImKg2aolshhPDDlHtyATAEqAOygW+BZ6SUNS46zlRgrY1N70opF7riGAqFQuFKPE0/CiFuBe4HIjCtUN8tpfyp2b5a7aNQ2EIZwAqFQqFQKBSKboUKglMoFAqFQqFQdCuUAaxQKBQKhUKh6FYoA1ihUCgUCoVC0a1QBrBCoVAoFAqFoluhDGCFQqFQKBQKRbeiy+cB7t27txw6dGjrHd1IVVUVPXr0cLcYdlEyugYlo2tQMsK2bdtKpJT9OuwAFig96hqUjK7B02X0dPlAyWjGrh6VUnbp1/Dhw6Wns3btWneL0CpKRtegZHQNSkYpga1S6VENdU24BiWj83i6fFIqGc3Y06PKBUKhUCgUCoVC0a1QBrBCoVAoFAqFoluhDGCFQqFQKBQKRbdCGcAKhUKhUCgUim6FMoAVCoVCoVAoFN2KLp8GzR5Go5GSkhJOnDhBY2Oj2+QIDg4mMzPTbcd3BCWjHi8vL3r37k3fvn0xGNTvRIVCoVAoTidOawM4Pz8fIQTR0dH4+PgghHCLHBUVFfTs2dMtx3YUJeMppJTU19dz5MgR8vPzGTRoUIcfU6FQKBQKRedxWi9tVVVVERkZia+vr9uMX0XXQwiBr68vkZGRVFVVuVschUKhUCgULua0NoAB9fha0W7UtaNQKBQKxemJ+oZXKBQKhUKhUHQrlAGsUCgUCoVCoehWdJoBLIQYKIRYK4TIFELsEkLcaaPPVCFEmRAiren1WGfJ1xWZOnUqt99+e4ftf+HChcyePdvp/aSmpiKEoKSkxOEx77zzDkFBQU4fW6FoD0UVRUx5ZwqHKw+7WxSFQqHocnQFHdqZWSAagHullL8JIXoC24QQP0gpdzfr97OU0nmrqwuzcOFCSkpK+Oabb+z2W758OT4+Ph0mx5IlS5BSOr2fiRMnUlRURJ8+fRweM3/+fGbOnOn0sRWK9vDkT0+y/uB6nlz3JK/OetXd4igUCkWXoivo0E5bAZZSFkkpf2t6XwFkApGddXxn8aRfM3V1dQCEhoZ2aFqw4OBgevfu3aocreHr60t4eHibMnEEBATQv39/h/srFK6iqKKIt9PexiiNvJ32tkfc8wqFQtFV6Co6VLhiha/NBxUiGvgJSJBSllu0TwWWAflAIbBISrnLxvibgJsA+vXrN+aTTz6xeZzg4GCGDh3qEpnvXn03b+94m98n/57F0xe3aWxjYyNeXl4O9//Tn/7EsWPH+PTTT3WfJ06cyOuvv05dXR3Z2dnMnDmT+Ph4XnjhBQC++uor/v73v3PgwAH8/f0ZOXIk7777rk1D8oYbbqC+vp73339fk1EIwciRI7ntttu4/fbbreSYOXMmcXFxBAYG8sEHHzBo0CDWrVvHd999x0MPPcShQ4cYM2YMf/jDH/j9739PRkYGgwcP5ueff2bWrFnk5OTQp08fli5dyqJFi/jwww/5y1/+Ql5eHmPGjOHVV18lOjoaQOtTVFSkybxixQr+8Y9/sGvXLgICApgwYQL/+9//8Pf356OPPuK1115j3759+Pv7c/bZZ/N///d/DBgwoE3/q+bs37+fsrIyh/tXVlZ6vOuGktE+L+59kRWHV9AgG/AW3syKmMVdw+6y6tfRMk6bNm2blHJsR+3fUT3qKajr1jUoGZ3H0+UDpUPN2NWjUspOfQFBwDZgno1tvYCgpvczgX2t7W/48OGyJXbv3t3itrZQWF4o/Z/ylzyODHgqQBZVFLVpfHl5eZv6X3/99XLWrFm6z0FBQfLqq6+WGRkZcseOHVJKKadMmSJvu+02KaWURUVF0sfHRz7//PMyJydHZmRkyDfffFMePnzY5jG++eYb6efnJ0tLSzUZ16xZI728vGRRUZFNOaZMmSKDgoLkPffcIzMzM+Xu3btlXl6e9PX1lXfffbfcs2eP/PTTT+XAgQMlIHNycqSUUq5du1YCsri4WEop5dtvvy29vb3l9OnT5ebNm2V6erpMSUmRF1xwgXast99+W/bo0UP7vHLlSunl5SUffvhhuWvXLpmeni7/8Y9/yKqqKimllG+99Zb89ttv5YEDB+TmzZvl1KlT5TnnnNOmebdFW6+htWvXOn3MjkbJ2DKW97r51dI939EyAltlJ+lle3rUU1DXrWtQMjqPp8snpdKhZuzp0U6tBCeE8MG0wrtUSrm8+XZpsRospVwhhPiXEKKvlNLx6KkO4MmfnsQojQA0yka3+LT4+/vz3//+Fz8/P5vbCwsLqa+v5/LLL2fw4MEAJCQktLi/GTNm0KtXL5YtW8aNN94ImFZdp0+fTnh4eIvjYmJitBVngAcffJDY2FheeOEFhBDExcWxd+9eHn74Ybvn09DQwKuvvkpcXBwAixYt4oYbbsBoNNrMv/vkk08yZ84cnnrqKa0tKSlJe//73/9eex8bG8trr71GfHw8+fn5REVF2ZVFoTBjea+bcdc9r1AoFF2NrqRDHfIBFkL4CyH+IoRY1ZSdYYfly8F9COAtIFNKadOHQAgR3tQPIcT4JvmO2dtvY2Mjn3zyCb/++ivHjh1zSdCWJWZflrpGk79rXWOdW3xaEhISWjR+AZKTkznvvPNISEjgsssu47XXXqO4uLjF/t7e3syfP5+lS5cCUFtby7Jly1iwYIFdOcaMGaP7vGfPHsaNG6fz750wYUKr5+Pn56cZvwADBgygvr6eEydO2Oy/fft2pk6d2uL+fvvtN+bMmcPgwYPp2bMnY8eanngcPHiwVVk8BU/yM+/KpBWl0fv/erPjiEOqScfG/I3avW6mrrGOX/J/cZV4HonRaOTYMbuqVqHoEig96hraq0e7kg51dAX4X8ClwKfAL0B7rMxJwLVAhhAirantIWAQgJTy38DlwC1CiAagGrhStmLR1tfXM3/+fO1zr169iImJITY2lgcffFBrNxpNv0jaWt3LU37N9OjRw+52Ly8vVq1axaZNm1i1ahVvvfUWDz74IOvWrSM5OdnmmAULFjBx4kQKCgpITU2lrq6OSy+9tE1ySCnbVWba21t/6Zn3Yf4/tYWqqipmzJjBeeedx3vvvUf//v0pKSnhnHPOcThQzxPoClGzXYEFny+grLaMq5ddzc5bd7Zp7Pabt3eQVJ5NTU0Nffv2JSoqiuTkZFJSUkhOTiY5OZmhQ4eqqoiKLoPSo66hvXq0K+lQRw3gucDvpJSr23sgKeV6wK6lJKV8BXilLfv18vLi0ksvJTs7m+zsbMrLy0lPTyc9PZ1FixZp/aqqqsjKysLX1xdfX1/8/Px0r8DAQJtKviv9mhFCcNZZZ3HWWWfx2GOPMXLkSD7++OMWDeAJEyYwZMgQPvzwQ37++Wfmzp3bZof0+Ph4vvzyS13bli1b2n0OLTFq1ChSU1P585//bLVtz549lJSU8MwzzxATEwOYUsR1JZpHzT465VHCg1p2RVHYJq0ojV3FprjZXcW72HFkB0lhSa2MUhgMBgIDA8nPzyc/P59vv/1W21ZUVKS5Ra1evZoePXqQmJjo8UFAiu6H0qOuobvoUUcN4JPAoY4UpL34+Phoxo6UkuPHj2vGsOVqZX19PWBK3VVXV0dlZaVuP8nJyZoBXFRURH19PX5+fqydv1YzmNuSyaGz2bRpE6tXr2bGjBmEhYWxfft2Dh06xIgRI+yOu+aaa/jPf/5Dbm4un3/+eZuP+6c//YnFixezaNEi/vjHP7Jr1y5ef/11gHatDLfEww8/zMUXX8wjjzzC1VdfjZSSVatWcfPNNzNo0CD8/Px45ZVXuO2228jMzOTRRx912bE7A0/wMz8dWPC53oWnPavA3RF/f3/Ky8s5cOAAaWlp2iJCYWGhLibgjjvuIDMzEyEEQ4cO1a0Ujxs3jrCwMDeehaK7o/Soa+guetTR51rPAfcIITz6OZgQgj59+jBu3Djmz5+Pr6+vti00NJTRo0eTmJjI8OHDGTx4MOHh4YSEhBAUFKR7JH/8+HGOHj3KoUOH2L9/P7t372b79u2kpaVRUFCg9WtsbKS8vJza2lqX+x63leDgYDZs2MDs2bMZNmwY9957L48++mirPr0LFiwgKyuLXr16cf7557f5uIMHD2bZsmV89dVXJCcn8+KLL/LXv/4VMH2puoqZM2fywQcfsHLlSkaNGsWUKVNYu3YtBoOBfv368e677/LFF18wYsQI/va3v7F4cdtS1bkTT/Ez7+pYrlqYMa9eKFrHy8uL4cOHc8UVV/D000/zzTff8Ntvv2nbpZScddZZJCcn4+3tzb59+/j000955JFHuPjii/nXv/6l9d2/fz/vvvsuaWlpXcoNSdF1UXrUNXQnPdriCrAQ4qtmTZOBC4UQu4F6yw1Syks6QDaXYzAYNJcHe0RFRVFdXU1dXR21tbXaq6GhQdevqqqKvXv3Aibju7lrRd++fa18XR3hnXfesfvZTGpqqvY+Pj6elStXtvlYQ4YMQUpJRUWFlazNj2t5PEtmz56tK5m8ZMkSevXqRb9+/QBTyWbLHwgLFy5k4cKFun040mfmzJk6f29L5s+fb7XN3T9KHMVT/My7Os1XLcycrqsXnY0QgrfeegswPUnLzMwkPT1dWzE+88wztb4rV67kjjvuAExP6eLj47WV4pSUFM4991yXPiFSKJQedQ3dSY/aW9E91uz1ObAGOGxj22lFcHAw4eHhDBo0iGHDhpGQkMDo0aNJSkrSFZUQQhAUFISPjw9SSmpraykvL6e4uJj8/HydAZadnc3u3bs5cOAA+fn5HD16lLKyMmpqatoV+OVJvPrqq2zZsoWcnBw+/PBDnnzySRYuXKgCZxzElX7mzkZAuyKC2l1R2AdKD7Sp3R7ujiQvqiiCvsS13tM9+Pr6kpyczHXXXcfixYv58ccfueiii7TtsbGx/O53v2P48OE0NDSwY8cO3nvvPRYtWsSVV16p29fixYv55JNPyMrKorGxsbNPRXGa4Co96gk60J36x1V61N061CyDPT3a4vKklPKGjhGpa2Je4bWkZ8+enHHGGYApe4F5pdjsZ2y5olpdXU11dTUnT5602ndoaCixsbGAyVe5uLhYt5Ls7e3t0asl+/fv55lnnuHYsWNERUXxpz/9iccee8zdYnUZzFGzt357K69ve50/jflTu1csnI2AdkUEtbuisKsfrnbZvtwdSf7kT0+CD102ymzWrFnMmjULMFV72rlzp7ZS7Ovrq+mz6upq7rvvPm0RIDAwkMTERG2leObMmVpec4XCHq7So56gA92pf1ylR92tQ80y2NOjjuYBXiOE6G2jvZcQYo0T8p02GAwGAgIC6N27N/379ycqKkpntA4fPpwzzjiDmJgYIiMj6du3Lz179sTX11fnK1tdXU1hYSE5OTns2bOH9PR0tm/fzq5du9i3b5/On66+vt4jVkxefPFFCgoKqKmpYf/+/Tz11FNWPxYU9nFF7XRn9+EJMngC7j4H8/FPF4KCgjjzzDP505/+xGuvvcaSJUu0bbW1tTz44IPMnj2bqKgoTp48yebNm3njjTe49dZb2bp1q9a3vLycp556iq+//pqDBw92GRcnRedxOuhAd+sfV+AJ5+CIHnX0GfVUwJZF4w+c0zaxuic+Pj4EBQXRp08fIiIiiI6OJi4ujqSkJAYMGKDrZw7OCwwMxMvLC6PRSHV1NWVlZTq3gtzcXLZv3056ejp79uwhOzubgoICSkpKbK40KzwXW9HLnb0PT5DBE3D3OdjyZTxd6d27t2bUHjp0iJKSEtasWcOLL77I9ddfrxW0ASgtLeXRRx/lkksuYfDgwfTp04dp06Zx99138+mnn7rxLBSewumgA92tf1yBJ5yDI3rUrgEshBgthBjd9DHJ/LnpNQ64CSiwswtFGwkICCAqKoohQ4YwYsQIRo0aRUpKCvHx8QwZMkTnVmEuQlFfX09lZSXHjx+nqKiI3Nxcjhw5ovWrra1l79695OXlcfjwYUpLSzl58qRVUJ/CPbgietnZfXiCDJ6Au8+h+fG7G2aj9q677uKdd97RuT+EhIRwzz33cO6559KnTx9KS0tJTU3lpZde0lIvgqmox3XXXccLL7zA6tWr7VbEVJw+nA460N36xxV4wjk4qkdbWwHeCvyKqfLbqqbP5tdm4EHgCaelVdjF29ubHj16EBISomsfPny4ltotLi6O6OhoIiIiCA0NpWfPnlq/mpoaXXDegQMH2L17N2lpaaSlpVFTU6P1raiooLy8/LQIzusq2Ite7qx9eIIMrsKZ4AtXnUN7ZehOq79tpVevXrzwwgv8+OOPmi779ttvefrpp7n++uu1frt27dIC7s4//3z69+9PZGQks2bN4qGHHuLQIY9Maa9wktNBB3qKDgXX6rD2nkNH69HWcnTFYKrelg2MByx/StcBR6WU7ndC7cYIIbRgOUuj15LAwECGDh2qS+lmTvHW0NCAt7e3ViikqKiI8vJybaxlareePXvSp08f4FSKMU8OzusquCJ62dl9eIIMrsKZ4AtXnUN7ZbB1fIU1QggiIyOJjIxk5syZum1RUVG8/vrrWtDdjh07KCwspLCwkBUrVujSKz777LNkZ2drKdqSkpJa1KMKz+Z00IGeokPBtTqsvefQ0XrUrgEspcxreqvyWXVhfHx86N27t1W7lFIzgM306NFDS+lmzmZRV1dHRUUFgGYA19TUkJmZaVVS2tJgVmnQHMMVtdOd3YcnyOAKnC2F6opzcEYGy+OLx8U2p4XphoSFhXHTTTdpn41GI9nZ2ZoxPGTIEG3bsmXL+PXXX3XjhwwZQnJyMpdeemmrhYQUnsPpoAM9QYeC63SYJ8hgT4/aK4RxnaOCSin/52hfhecghMDHx0fXFhkZqb03Go26YiCW2Srq6uq04Lzqauu0KSNGjCAwMBCAkpIS6urqdMaxj4+PWj1WuBxPKIXqCTIoTmEwGBg6dChDhw7lsssu021bvHgxW7du1Qp6mHO1HzhwgMGDB2sGcEZGBn/+85+19GzJycmMHDmy1aJKCkVXxBN0WGfIYG8FuPmRfAEfwOxYYcBUEa4WUAawG5g6dSoJCQm88sorHbJ/g8GAv7+/zZLGwcHBpKSk2HSrqK2t1X0xHD9+XOdWcckll3DFFVfwhz/8gZCQEM3oNhqN1NTU4Ofnh5eXl8NydvQ8KLoGLQVftHUVuKvLoHCcs88+m7PPPlv7XF9fz549e0hLS9NyvANs3bqVdevWsW7dOq3N29ubM844g+TkZF599VWCg4M7VXaFoiPwBB3WWTLYK4ShOUIJIWYBjwN3YQp+A5gALAa6Xo4OD2fhwoWUlJTwzTff2O23fPlyqxXczsTb21sL0LNH37596dGjh2Ycv//++/j6+lJTU6P5HoMpW8Xu3bu1fTd3qVCrLQp7eEIpVE+QQdF+fHx8SExMJDExUdd+ySWX8O233+pKP+/du5edO3eSnZ3Nu+++q/WdM2cOdXV12kpxcnIyw4cPb9OPeoXCXXiCDussGVoLgjPzPPB7KeVGi7YNQoi7gHcA+5ZaFyY8HCwyimmEhcFhN2UmMbsThIaGukcAO9TX11sZ5c3ljI+Pp7GxkdraWp2fcGNjI/7+/lpwXkNDA1VVVdr2YcOGae8LCgqorKzEz8+Puro6ampqqKqq0laP2+JeYTQakVKqLygXUVRRxJXLruTjyz9u16/1oooi7ky7k+/Hft+m8a4uKd2ec3BlOVZPLoXc3ejTpw8zZ87UBdxVVVWxc+dOCgoKdLrjhx9+oLq6mu+++05rCwgIICEhgXvvvZf58+cDp9JYKhTNcZcOBdfqsPaeQ2fpUUejlKKBKhvtJ4FBbZKoi2HL+LXX3hEsXLiQ2bNn8+yzzxIVFUVUVBRgevR/++23a/2WL19OUlISAQEBhIaGMmXKFF0+YEuuuuoqK384o9HIwIEDefHFFwGTgn7uuecYMmQIAQEBJCYm8v7772v9c3NzEULw4Ycfcu655xIQEMDrr79OWVkZ1157Lf3798ff35/Y2FheeuklbVx0dDQvvvgigYGB+Pv7U15ezi233MKwYcMYO3YsCxYsICsrS6ucl5aWxjXXXEP//v0ZOHAgTz/9NBUVFVRUVFBSUkJtbS3l5eVkZmaSlpbGb7/9xvXXX09ISAgBAQFMnjyZTZs2aand3nnnHYKCglixYgUJCQn4+vqSmZnpqn9Xt8cycre94zPKMto8fvvN25F/ldwy9hYMwsCtY29F/lW2KyijvedglqH5q60ydHYp5NraWp544gm++uor8vLyVJU1B+jRowcTJkxg3rx5uvaMjAw+++wzrWjHoEGDqK6u5tdff9XFS7z33nsMGTKEyy67jCeeeIIvv/xSzb0CcJ8OBdfpUWfOobP0qKMrwJuBl4UQ10gpCwCEEJHAi8CmNkmkaBfr1q0jODiY7777zqaCPHz4MFdeeSV///vfueyyy6isrGTTppb/NQsWLOCyyy7jxIkTWoaIdevWUVRUxFVXXQXAI488wmeffcarr75KXFwcGzdu5I9//CMhISHMmjVL29eDDz7I888/z1tvvYWPjw+PPPIIGRkZfPPNN/Tv35/c3NwWk9FLKbnooosoLS3l7bffZvjw4WRlZVFTU0NQUBBZWVncfPPNPPLII8yZM4fMzExuvvlmAgICuPHGG6mtrdXcJAICAqitreUvf/kLhw4d4ssvv8Tf359FixYxZ84cli1bhr+/P4cOHaKmpoZHH32Ul19+mcjISPr06UNFRQVSSgwGAz4+Pg6Xc25oaODQoUMUFhZSUVHBhg0bGDBgAAMHDtRl2HBkvHl1vy3jPQlnszCYx0ukU+Pbe3xX7cMZ3FEKubGxkb/+9a/a5969e2uP782P8keMGGEzHkChZ8iQIZpha6a0tJQdO3bo/IrT0tLIzs4mOzub5cuXa+29e/fmrLPOYsWKFVpb82w9itMXd+tQV8rgLh1qKYM9HL2jbgS+AHKFEObKb5FAFjC3nfIp2oC/vz///e9/W/SDLSwspL6+nssvv1yrnpSQkNDi/mbMmEGvXr1YtmwZN954IwBLly5l+vTphIeHU1VVxeLFi1m1ahXnnGOqdh0TE8OWLVt49dVXdQbwn//8Zy6//HLtc15eHqNGjWL8+PGAacW3JVavXs3GjRvZtWsX8fHxAMTGxmrbFy9ezJQpU/jb3/5GRUUFo0ePZt++fSxevJh77rkHAD8/P4KDgxk5ciR79+5l9erVrFu3jsmTJ1NTU8Mrr7zCpEmTWL16NbNnz6ahoYHGxkbuuusuxo0bp1XEa+6PLISgsrKSL7/8kvj4eIYPH66TXUrJzp072bdvH2AyIry9vSksLOTIkSNs376dYcOGkZCQYPNRp63xZhwZ74k4G7nr7vGu2oczuKMYhp+fH/fee6/m41pSUmIV9OXl5UV8fLzOKE5OTqZ///6dKmtXJCQkhClTpujann32WX7/+9/r/IrT0tIoLi7m2LFjWr/Gxkb69u1LVFSUbt6Tk5MJCwvr7FNRdDCngw50tw5tLkNLOOQCIaU8ACQBszAFvr0IzAQSpZT7nZRT4QAJCQl2g8CSk5M577zzSEhI4LLLLuO1116zWwLU29ub+fPns3TpUsBk8C1btkxL+7N7925qamq48MILCQoK0l6vvfYaBw4c0O1r7Nixus+33HILn3zyCcnJySxatEj3Jdqc7du3ExERoRm/zcnMzGTSpEm6trPPPpuCggJdZgkze/bswWAwcNZZZwGmHw5JSUkkJydTXl7O6NGjiYqKwtvbmxkzZtDQ0ICU0mpV3dLg3LBhA3fffbf2uaysjKuvvpq33nqLzMxMGhsbdcYroLXt27ePDRs2WO1fSsmGDRvYt29fu8Z7Iu4uA+oJpUydxV2lkL28vHj++ef54YcfOHr0KAUFBaxYsYJnnnmG+fPnExcXh9FoZOfOnSxdupT77ruPCy64gLCwMAYMGMBFF13EAw88wEcffaTdEwr7+Pj4kJCQwDXXXMM//vEPVq1axZEjRygsLOS///2v1u/gwYNUVFSwa9culi5dyv3338+MGTMIDw8nIiKC77//XutbUVGhStx3YU4HHehuHWpLhpZwuFKBNLFKSvmylHKJlPIH2YZvZSHEQCHEWiFEphBilxDiTht9hBDiZSHEfiHEDiHEaEf3f7rTWqYFLy8vVq1axapVq0hKSuKtt95i2LBhpKentzhmwYIFrFu3joKCAr7//nvq6uq49NJLAbQyyF9//bVWMjktLY1du3axatUqu7JddNFF5OXlsWjRIkpKSpg1axY33HCDTRlau4TsBYq0tKraEkIIzb3BnIu4teMLIUhJSeHiiy/W2g4cOICUEj8/v1ZXZhsbGzl8+DBbt27Vte/cuZOjR4+2aig0NjZy9OhRdu7cabefJ+DuMqCeUMrUWTyhFLIQQjNqH3zwQT766CP27NlDZWUlmzdv5vXXX+fWW29l0qRJBAUFUVRUxHfffcezzz7LVVddxYgRIwgKCmL8+PH88Y9/5NVXX2X9+vU2f7Aq9AghiIiIYOTIkVpbTEwMFRUVbNmyhTfeeIPbbruNSZMm0bNnTw4fPky/fv20vn/961/p2bMn48aN4w9/+AOvvPIKP//8M2VlZe44HUUbOR10oLt1aEsy2MJeIYx7gH9JKWua3reIlHKxAzI1APdKKX8TQvQEtgkhfpBS7rbocxEwrOk1AXit6a/bCAtrOQuEpyGE4KyzzuKss87iscceY+TIkXz88cckJyfb7D9hwgSGDBnChx9+yM8//8zcuXMJCjL5i48YMQI/Pz/y8vI499xz2yxL3759ufbaa7n22mu56KKLuOqqq/j3v/9ttYo9evRoioqKyMzMtLkKPGLECNavX69rW79+PVFRUTZLlo4YMQKj0cjGjRuZPHkyAOXl5WRkZGhGuNnobW78NspGjtQfIcwnDC9xKqrbx8eH/v37a354AwYM4NJLL7UyfkvrS1mSt4S7Iu+it3dvrV1KyZ49e5g9ezZRUVEMGzaMuXPnWmWdKK0v5aWCl7g76m7dePNKcHx8fKt+gM5GDzuDu8uAekIpU2fx5FLIgYGBjB8/XnNtAtMP5ZycHO0Rvvkx/sGDB/n111+tqqzFxsZa+RYPHjy4y7j4uIvAwEDGjRvHuHHjtDaj0Uhubi4DBw7U2g4fPkxNTQ1bt261+tE9Z84cvvjiC21sXl4e0dHRLp17V+gfZzIYuEKG7qxDPUUGZ3FFKeQ/A+8CNU3vW0Jicouwi5SyCChqel8hhMjE5EdsaQDPAf7XtLK8SQjRWwgR0TTWLbgr1Vlb2bRpE6tXr2bGjBmEhYWxfft2Dh06xIgRI+yOu+aaa/jPf/5Dbm4un3/+udbes2dPFi1axKJFi5BSMnnyZC2wzmAw6EqNNuexxx5j9OjRjBw5koaGBpYvX05sbKxNF47p06czYcIELrvsMl588UWGDx/O/v37qaqqYu7cudx7772MGzeOxx9/nEsuuYTMzExeeOEFnnnmGZvHHjZsGHPmzOHmm2/mjTfeoHfv3jz88MP06tWLq6++GqDFR4SlDaXUGGsobSilr09fq+2HDh0iJiaG6upqvL29rVZvl5UsI7Mqk8+KP+MPEX+wGj9y5EjWrl1LcHAwdXV1BAQEWI3fc3JPi+PNx7dHe2unuyIQz5VlQFNTU5k6dWq7x7tCBnfQ1UohGwwGu0Fflr6tu3bt0oK+LHVNcHCwlVE8cuRIFXDXCgaDQRcvAfDBBx/w6quvsmPHDp1v8c6dO3UrxQcOHGD48OEEBweTlJSk8y1OSEho99y3V/8034c5g0F79uGsDK44h/bibh3qahnchdOlkKWUMbbeuwIhRDQwilNFNcxEAocsPuc3tbVoANfX1/Pf//6X2NhYYmNjiYyM7Jb5XIODg9mwYQP//Oc/OXHiBAMHDuTRRx9ttZb9ggULePzxx+nXrx/nn3++btuTTz5JWFgYzz//PLfccgu9evUiJSWF+++/3+4+/fz8ePjhh8nJycHf358zzzyTr7/+2mZfg8HAypUrue+++1iwYAEVFRXExsby+OOPA6YV4k8//ZS//vWvPPPMM4SFhfHAAw/o0r815+233+auu+7ikksuoaamhkmTJvHdd99pBqctt4NG2UhFYwUAFY0VhHiH6FaBGxsbKSwsJCYmhsLCQqt9lNaXsvbEWiSS1BOpXN7vct0qrr+/P4888gjPPPMMeXl5uvzHjoy3PP6KFSvYv3+/ds1HR0cTGBjYrsjb0zEQT+F+zEFfloFf9fX1ZGVlWa0WFxcX89NPP/HTTz9pfb28vLQqa2bjrPk9o7BNS3NvmVO9qKiI/v37c/ToUX7++Wd+/vlnbZuXlxdpaWlaEPXevXsJDg5uNeDOlRlY3JUFxhOyFyg6D+GIG68QwktK6ZKoBiFEELAOeFpKubzZtm+Bv0sp1zd9/hG4X0q5rVm/m4CbAPr27TvmgQcesNympcVKSUlhyJAhmu+nEMItX+KNjY0eb5R3JxkbGxut3B+K64qpaKxAIhEIenr3pJ9PP7Kzszl48CBgcoUICgqyGWjyev7r/Hj8RxpowBtvzutzHjdF6lfJXTU+JyeH48ePW21bVrOMX6p/Me1DeDMrYha3Rd9mVZiksrJSc3WprKzUAgFbQgiBt7e3NqYzsJTRU+loGadNm7ZNSjm29Z7tw1KP9uvXb8wnn3zSUYeyS319PdXV1Zw8eVL7W1NTY9UvKiqKI0eOEBAQQGBgoPbXk1aKu9p129DQwMmTJ3VzX1tby6hRo7Tvyr1791JRUYGPj4/duX9x74usOLyCBnlK/9w17K42yebsPjprfFf7P3sqnSGjPT3qqAFcCWwAUpteW9pjEAshfDBVjfvelt+wEOJ1IFVK+WHT5yxgqj0XiNjYWHn22Wdrj9aKik51XblyJX376h9le3l56UrrWpba9fX17ZBVhoqKCpv+qp5Ed5KxsrKSurpT/kGNspGDtQeRnLoXBIJBfoPIy8kjJycHgAEDBjBp0iQ2bNhAYWGh1re0vpTb999OvTyVRs1X+PLKsFd0q7iuGv/BBx+wfv167ZrPzc2l3q8e7gQsbF1/L39qnq3Bt86X6OhoYmNjiYmJYcqUKfj4+BAZGUlBQYFDEfteXl4MGzbMqkRsR9Hex3edSUfLKIToUAPYkri4OJmVldUZh3KIkydPsmvXLp0LxWWXXaalPrTE39+fhIQE3WpxUlISwcHBnS736XDd1tbW6tzV5s6dy9q1a20GMf7xj3/kjTfeoKiiiNglsdQ0nvrhEuAdQPad2Q6voBZVFBH7ciw1De3bR2eOPx3+z55AZ8hoT486mgf4UmAKpjRojwN1QohfaDKIm5VIbkkIAbwFZNoJmvsKuF0I8RGm4Ley1vx/fXx8+N///qd9rq6uJjc3l+zsbEJCQggLC6O2tlZ7NTY2ar94bdHcILY0lr29vdVj4NMAHx8f6uvrtVXP0oZSm/0s2728vBgwYAAAYWFhOgN2WckyqxVUozRa+fKaHyH269evXePNPnxXX3215s8MphXthZ8u5KO9H9EgT60sN8pGAi4MoPqzavbu3cvevXsBU6L+hx56SFfVTztnFwTiKRTOYivoKzU1lQMHDli5UOTl5dkM+oqJibHyLXZ10NfpSPNYjS+++AIpJbm5uVY5i5OSkgCT32xDo/6pVk1dDRc/fzEPJT9EcnIyMTExdufeXvYAR3xx3T3eEncG0ikcx6FvMinlD8APAEKIAGAScA3wBKZUao48l54EXAtkCCHSmtoeoqmUspTy38AKTPmF92Mqs2w7d5YdAgICiI+PJz4+nszMTF2ErJSShoYGzRiuq6vTGcd1dXXaq6KiwmrfBoOhRePY19fX410IFCZ8fX11P4BqjDW61V8AiaTGqH8Ma3ktWbL35F4a0Cv/BhrYe3Kvzf6lpXqD29HxzceZ8fLyYmfZTp3xC1BvrGfkeSNZ/856cnJyyM7OJicnh9DQUG699VYMBoOW7s5Ma4F45uj+mJgYYmNj6dOnjzIoFJ2G2e/dsvywOeDO0ijetWsXOTk55OTkaJkPAC3oq3nAXfOAVIUeIQQxMTHExMQwd+5crd38w31j/kYrHSYNkq1FW5n3t3kYDAYqKyu1eV6xYgX9+vUjISFBa3N39gFXZi9wZyCdwnEcXsoRQoQBU5te52IyXDcAax0Z3+TXa/ebsin7w22OytRWhBD4+PhovpTNMRqNmgFsaRhbrh5XV1fr6rlbYs4v29w4NhdaUIaC62lsbKSqqkrz6xVC4OXlRY8ePVr8QSKEwM/Pj9raWqSURPlFtbj/bLK1x//mlc8jzfLiPTfkOZ0bgy33BfO4oUOH2hyfW53L/Tmnggv/EfsPBvsPthrfEq1F3iYkJGhBLampqcTGxupWocGxQLycnByuvPJKrS0oKEgzSmJiYrjpppu0cq9tveZramrIyMigqKgIo9HIV199RUREBImJiQ75eZ5OJaUVjmMr6KuhocFmwF1LQV9xcXFWFe7Cw7vPyl1lZSVbtmyhtLQUo9GIwWAgJCSE8ePH2/XRNN/fG6/fqN27Zl1cV1fHjtodbLtgmy7rjZSShQsXUlxcjMFg0Ob+ypQruW/Ufdy440ZqGmva7ELx642/8n3a98z+drbWtuLiFZyfdL6dUadwVfYCFUjXdXDoW0EIsQuIBrZgcnu4GdgopaztMMlcRFu+hA0GA/7+/i1+2TY0NLRoHNfV1VFfX68rp2smKiqKffv22TSOzW3qC7ptSCkpKyuzWsE0r/KXlZVhMBgIDg62+f8PCAigsbHR5v/Lcl9gymlsWVba0n/YjKUbgy33BThVatmWz+3LBS/rPi/JX8LioXpPoebn6gzOnMO8efPIycnhwIEDlJeXs2PHDnbs2AGgW5l74IEHeP/99zUD2Wwkx8bGMmTIECIiIrTzWrt2rS6wz9vbm9raWnJzc8nNzSU0NJRp06bZ9NFXmSwUzfH29mbkyJGMHDmSa665Rms/fPiwlVGclZXF7t272b17Nx9++KHWNywszMqFIi4u7rTS1Y2NjaxYscIq6NBoNHLs2DFWrlyJv78/M2fOtLmgYOveNePl5cWoUaOYPn0606ZN09pra2s5//zztbnPzMwkMzOTjz76CGaB1zjTcRplI3ctv4uLvS7W5r55QC/o7/+79t6l23bzqpt5KfelTr3/PaEMsMIxHL2Tg4FGTG4JVUAF4JnZ2i3w8fGhurqawMBAl+zP29sbb29vm/uTUlJfX2/TOBZCIKWkpqbGZnSzed+2jGNzxTKVAugUUkpOnDjRahU3o9HIiRMn6N27t03F11rwV319PY2NjdqxzPvw9fXV9TOvnJofATbQYHMF1ay8vby8dFkgcqtzya/L1+0zvy6fvJo83SqwK6+B9p5Dz549WbZsGWD6P5SWlmrBeDk5ObpiJtnZ2RQWFlJYWGhVzGTs2LH8+uuvGI1GvvnmG2pqaux+OR0/fpxvvvmG2bNn6+bBXFK6pap65rZ9+/ZRVlbGpEmTlBHcjQkPD+fCCy/kwgsv1Nqqq6vZuXOnzijesWMHR44c0aprmvHz87MKuEtOTnZLwJ2zNDY28sUXX7T6w7qmpoYvvvjCqniP+d6trbW/Dtb83vX392fp0qWAae537dpFeno6v+z4hXeC36ER0z1b11jHsuxlfPzCx1BpmvuRI0dq8z569GgtqPjo0aMcqDzAodpDumMfqj1EdlU27KNT7v+WygCrVWDPxFEf4CghxFBOuUDcCQQJIX4G1kopX+wwCZ2gf//+FBQUEBkZSUBAQIde+Ob0a76+vlaZCioqKhg1apTN1WNzW0NDg5aSxhYtGcfm1ePu9KVeVlbWqvFrxrxS3Lt3b117RUVFi4rf/GOmsLCQ4uJiamtrWbt2LdOnTwdM2RiOHDmiGVeOBLFZBtFFRESQm5ur9W2++mum+SqwecXUFTh7DmC65kNDQwkNDWXsWOsg2w8//JB//OMfmnFsaSibqxOuXbtW+5HYGrW1tXz//ffEx8cTFRWFt7d3u0pKd1YmC0XXICAgwCrgzhz01Xy1ODc3l23btrFtmz63fnR0NMnJycyfP5/PP//coaAvd7NixQqHnyoZjUZWrFihKwlvvncdobkONRMQEMDYsWMZO3Ys277dhvd2b70froDohdGIbwU5OTn89ttv/PbbbwCcccYZfPLJJ9r935oe7Yz735WBdIqOx+FnOVLK/cB+IcTbwHhM+SMXYMoM4ZEGcK9evQAoLCy0+6i7o6mpqWnRrcJgMGiP481GsHnlsb6+noaGhla/3M15Wr29vfHx8dHem1+OKGF7MnoKNTU1+Pr66nywjx0LRErr8xNC0qfPqR8TAQEB2sqhlNLmD40G2UBZQxnB3sEIo6C4uFg71vHjx7U5GjhwINu3n/IXczSIzRxEFx8frzOAj9Tb9u1t3m6rVHR7cfYcHMHb25vo6Giio6Ntbq+pqbH56DS3OpfH8x7nb9F/s/KDrqioIDExkZqaGoYMGcJjjz1m9VjUEzJZqCjwro1l0Nell16qtZ84ccIq4G7nzp2aq84555zDokWLANP3T/OAO8ugL3dSWVmpexr5xz9eTFmZtf4PDq7hzTdNRYxqamq0vK327t2/5v2VJ6KfsLp3LXWoLWwFoTXQQO+E3mz/53bKysp0cx8REcG+ffu078fW9Ghn3P+eUAYYIK0ojdnrZ/NL/C8khSW1ax+eoMM6WgZHfYDHAdOaXpMAP2A78AIOBsG5i169emmGsLtITU1l1KhR7R5fW1vLwYMHtRU0yxU1sx+mPQYMGGDlgxkbG8vgwYOpr6+nqKiI48ePExoa6tFBQ6mpqZpvmpkrrvhdi/0/+eRT7X2fPn0499xzAfj11191BqiZe/bfQ35dPlG+UVb+twAZGRmMGzcOb29vhg0bpinf54Y8p/Xx9va2KnLRPIiuuLhYt31pvOlx4H+K/sMPpT9wfsj5NjMwFBcXuyxpuL1zsEXzc3AFGRkZNttfLniZk8aTNv2gAW6++WZeeOEFBgwYQENDg5UBbC+ThZSSnJwchg0b5rLzsEVXiwJ39IlKd6d3795MnjyZyZMna201NTVs27aN/Px8vLy8eO6559iwYQMrV65k/fr1Ovcfy6Cv5gF3nblavGXLFt1nW8avrfYtW7Zw7rnn2r13q43VLd67Zh1qi19v/FULYm3+fQSmDB7nnHMO55xzDgA5OTm6H/GO6tEvvviC/fv3a/8DV869J5QBBljw+QKqGqu4etnV7Lx1Z7v24Qk6rKNlcPTbbAOwDVMFtyXAz1LKKvtDFK7Cz8+PYcOG2fzSNvthWj5itjSQ8/LyrPwwhRDMnz+fmTNnIqUkICAAb29vCgsLyc/PZ+vWrYSGhjJu3Di3/3hoTkupwNoyzrJYihlLP1xb/rfNxyUkJFBWVsbhw4dbraLWv39/XRBd8+wL0HoGBvO4mBjXVSU3n0NrLgReXl5W5+AK2vN/EEIwefJknnrqKVJTU63SFbY2j0ajkTfffJOJEydq6Zw2b97Mvn37tB+GYWFhTn0hdsUo8OrqasLDw60Ms9Mt6MuVNA++NBgMeHl5ER0dzZAhQ7j22mvx9vYmKytLF3CnC/pqon///jYD7mwFfbkCZ/WoK3SoGVtBrObvI3tBrO0pSd/Y2MihQ4d48MEHtbZ+/fppcz916lRmz55NVyatKI1dxbsA2FW8ix1HdrR5FdgTdFhnyOCoZgtRBq9nYumHOWbMGKvtDQ0N5Ofn6wzksLAw+vTpYxUIBacCrQoLC3nqqad45513dKvGlu/NfpidSXszIVgaqa7KwmBOb9eWY4PzWSRchRCCSZMmtZhBwdvbGyllh0VQO/N/8Pf3x8/Pz8oAdmQee/ToQWRkpPb5gw8+4OWXTx03ICBAu85Hjx7N3/72N21bdXV1q4+wu2oUeEtBX9nZ2Zrv9969e+nfv7+VT313w9Hgy8bGRiZOnMh9992HEIKamhqrCnfp6ekcPXqUH374gR9++EHbhznoq/mPElfMvbN61JU6tL1BrO3VowMHDuSOO+7Q5r+4uJjVq1ezevVq8vPzNQO4uLiY+++/Xzf3ISEhLU+Oh7Dg8wW6z+1ZBfYEHdYZMjgaBKeM3y6KpR/mtGnTyMjI0PlNtYS/vz+JiYlMnz6djz76yOqRmXnfgwYNspnmKjY2lpCQEJcbTbaKNziCpRyuyMKwc+dOK1cGW0gpKS4u1gVfOJtFwpUIIUhMTCQ+Pl57/FhfX4+Pj0+Hu8M4+39o7zyee+65jB49Wvs8ZswYrrjiCu0H4vHjx7W0WMePH9cM4Pr6enr27Enfvn21nMc//vijdr0nJydT7VXdJaPAAwMDyc7Otqr0deLECV3w5ZVXXsn27du1oC9L48DTg75cSXuDL/39/RkzZoxusUJKSV5enpVR3Dzoy8zgwYNtzn1bssQ4q0ddlcnGmSDW9t7/AwYMYMmSJYBp7g8ePKjNueVTru3bt/POO+/ojjFo0CBTzuIrr6SkpIS+ffvalbuzsVz9NdPWVWBPyGTRWTKoZ1vdiIaGBpvGb2l9KUvylnBX5F06ReHv78/ll1/OrbfeqpWXtnSvKCgo0Nps0atXrxaN48GDB1uV3HSEkJAQnQ9wW8aZcTYLQ/N5bC2ApHnwhSsyMLgab29vLeins3D2/9DeeYyKitKlc7ruuuu47rrrtM9lZWXaNW55jRYVFeHl5cWRI0c4cuQIl19+OU899ZS2/dNPP2VNwBqrKPD6hnru+OwO3pj7hkevnNqq9HXy5EnN6JFSEhgYiJ+fnxb09eWXX2p9H3roIZ5++mnAtJp88OBBjwn6ciVt1aOtBV8JIbRFCsu5bx70ZQ64y8vLIy8vj6+++krr27NnT5sBdy2lAHVWj7oik40n6FEhBIMHD2bw4MHMmTNHNzY+Pp5XXnlFm/uMjAwOHjzIwYMHmTJlis6Yf/jhhzlx4oT2gyQxMdFl6VfbQvPVXzNtWQX2hEwWnSWDMoC7EYcOHbLZvqxkGZlVmTYfFwkhiIqK0gIPLKmpqSE3N9em/7E5OC8tLY20tDSrsUIIIiMjWzSQW/LDHD9+PCtXrjzV0OMwVNn4RdjjsNU4M4mJie3KwmBeeWg+j44GkBw6dIiYmJhOycDQFXD2/9BR8xgcHExKSgopKSm69kGDBlFdXU1hYSHZ2dkUFxfz2GOPadd9XFwcT//ytM1I9k83fcqnN3xK7969mThxIt9++622PTU1laioKAYNGmTTLcmdWH6JCyFYv369VmXN0jBLS0tj5MiRWt8vv/ySm2++WQv6slytNAcedVXao0fN49ryA7N50BecMhqbrxYfPnyYDRs2sGHDBq2vwWBg+PDhVqvF4LwedfbeBc/XowMHDuS2204VpjXPfXp6OgChoaHatg8//JCcnBzts8FgYNiwYaSkpHDllVfqfth0JAdKD7Sp3RaekMmis2RQBnA3or1BAy0FX/n7+3PGGWdopW8tkVJy7Ngxmzlgs7OzOXjwIPn5+Rw9ehQvLy/69evHgQMH2LFjB1u3buW3336zMpCjo6PJzc3F19dX8//65O2frY5tS07L7An+/v6EhoZqaXzM0cP2CA0N1dL32JrH1rCcR0/IwOAJ2Ps/2MqmAfr/gzvm0WAwEBUVRVRUFKmpqTr/YIBf402R7Lt27eLEiRNUVlayd+9e1m5ey97AvZw4cULnt1xbW8u5556LlFLbt/l691Qsq6xdffXVWrvlI3UfHx9GjBihC/oyV1nr2bMnJ06c0FbQvv32W6Kjo7tMwJ2r9Whb8Pb2Jj4+nvj4eK666irAZJjt2rWL7OxsKisrKS0tZcuWLSxfvpw9e/awZ88ePv74Y20fL730Ek8//TTXX389vr6+CCHarEed1aHQ9fSo5dynpqbqtr3xxhvaD8H09HQyMzPJysoiKyuLpKQkzQD++eef+dvf/qb9IElJSeGMM85wmXtb9cOnUoSmpqYyderUNu/DEzJZdJYMnq9tFC6jM4OvhBD07duXvn376lZfLWXZtGkTR44csSpXnZiYyA033MCKFSv4+OOPNfmef/55rRrR//73P4dyHBsMBmbOnGnVPm3aNIeqGIEpGMWylKeteXQEy3l0JovE6YQz/wdwfyYLM7Yi2c3Fas4++2zOPvtshg4dSlhYGJWVldq4srIypkyZQnZ2NocOHdIesTb/gu0KWD4SvuGGG7jhhht0lb7Mr549e2p9zaW16+rqrCp9paSkMGrUKKvCQu7GU4JYbV1z/v7+REREMG/ePObNm0dQUBD5+fm61eKGhgZWr17N2rVreffdd/Hx8WmXHnX23j2d9Oh5553Heeedp32ura1l9+7dpKWl6b7/Nm/ezI8//siPP/6otfn6+jJixAhSUlJ44403Oizzh8KaFg1gIcQ9ju5ESmmd8E/hcXhK8JWUki1btlBSUgJgpXzNqwSXXXYZl112GXl5eWRnZ9OrVy/i4uLIycnhuuuu45///Cd9+vSx2odZEVZVVbFlyxays7N17hW9e/fGYDAwe/bsFuvYm+nTpw9Tp07Vfbm39zF183lsbxaJ0wln/g/g/kwW4Hgk+/79+ykvL2fSpEnatv79+7N2rSmVel1dnS7f9y233OJyWTsby0pftigrK2PWrFmkp6eTnZ1tFfT1/vvvc8011wAmf+Tly5eTkpJCdHS028rDe4IedfSaq6ysZPjw4dxwww0IIZBS8sMPP/DFF1+Qnp7OF198wYwZM7R0l7b06MmTJ7U4j+TkZGJjYzEYDE7fu6ezHvXz82PUqFFW+f+vvfZa4uLidC4sBw4cIC0tjZKSEt25TZ06lV69emmuK8nJyQwZMsRt1/3piL0V4D87uA8JKAO4CzBgwACKioo0ReBI0IAQwuXBV45G/kop8fLy4oILLiAxMZHU1FT27NmD0WiksLBQc6cwGo1aoE1jYyMHDhxgyZIlLSrlkJAQnUFs9jk2z4WXlxcRERFa1HZzmgdfOELz4AtnskicbhgMBqZPn05NTQ0ZGRkUFRVhNBrx8/Oz+38w485MFuBcJLslvr6+DB06lKFDhwKcFgZwa/Tt25fly5cDUF5ezo4dO3Tlhy0NiGPHjmnBiuagL/Nq8dixY50qNtQWPEGPtveaE0Lg6+vLBRdcoAv6OnLkCBs3btRWc41GIwcOHODFF1+00qNBQUG6uU9OTmbMmDHs27dPu3cNBkOr92531KNhYWFcfPHFupLSFRUVZGRk6Oa5vLycdevWAfD1119r7UFBQSQmJvLoo49y0UUXAVg9QVU4TovfClLKzgsHV3QKEREROkW9+uH3MVb20/VpAFYHFfOH/6YCppvLMnLXWZyJ/DVj6YdpKzjv5MmTXH755S0WByktLaW0tNQqvZB53wMHDmwx93G/fv2sgi+Cg2taPAdLzMEXzkY/n674+/trVaLa47/mjkwW9jICuLscc1ejV69emruILQICArjwwgtJS0uzCvqaNGmSVuinoaGBF154ocOqrLlbj3aE/ggLC7MK1GpoaOCyyy7TBTump6dTVFTEL7/8wi+/nApIMgd9WQbcDRgwwG6mH6VHTfTs2ZOJEyfq2oKCgtizZ4/ux2BaWhqFhYVs3LhRFx/x0ksv8e9//1s3980DeLsqHlEKWXF60LwKT3Ol3VJ7UVGRy4wKZyJ/HSUwMJARI0YwYsQIq23mlYDmwXnmz4cOHdLSDNnyw+zRowcxMTHMmzeP+Ph4vLy8ePPNU7/QHSmF7Gz0s8JzsJcRoKVyzOZx6n/ZNvr27atlLjhy5IjOMLD07czKyuKBBx7QPpsrfZmNg5kzZ+oi+NuKu/VoZ+kPy6CvK6+8Ums/evSolVFsGfT1ySefaH379u1rlYUiPj4eHx8fqyA2pUdPYc6eEhcXx/z587X24uJi0tPTdXmkt2/fzt69e9m7dy+ffvqp1v7SSy/x5ptvsnTpqQDFhoYGjzL+W8NTSiEjhAgFLgQGATrnHSnlEy6Wy+NpaGjQHrfW1dXh6+vbKY9bncFWCV5Hx9lSGO2ZA2cif12BORiif//+nHnmmQC6R+9m2YQQHDlyxObq8c6dO9m1axf33XcfCQkJdh/Pm904evfurT0adDb6WeE5uDMjQHcmLCyMCy64gAsuuMBqW0BAAHfccYdmnFlW+gLYsWOHZgAvXbqUkpKSNlX6crcedbf+6N+/P+effz7nn3++1lZWVsYvv/xCeXk5RqOR2tpa0tLSeOutt+wGfSUnJxMdHY2U0m5hDltBrO6eB3fQr18/XbAdwJtvvsndd99t9aOkoaGBEydOaP0qKiro168fZ5xxhu4HSXJyshZL40l4TClkIcSZwLdALdAPKAAimj7nAt3GALYVeWvGXt1yT8AVUbfg3By4SgZXYDQa7QZwhIaGMnToUKZNm6YFHpSWlpKTk6MZxDU1NdpjPlsBJFlZWTz++OMYjUZ8fX2JiYnh1ltvbdfj0I6YA4VzeEpGAMUpYmNjW6z0tWPHDl3axtdff52ffz6VAsxc6SslJYXp06czZcoUq/27W496sg41B8d5e3szadIkLeDT8nG+OejLnB/eYDDw+OOPExcXB1gHRYMpJ/LEiRM9dh7cia2AO3Ow46xZs7S2rKwsamtrNUPZkqioKD777DMmTJgAmHyQg4KC3Bpw5zGlkIF/AEuBO4Fy4FygCvgQeMulEnkwztQt9wRcEXXr7Bw4I4MrFZfRaHQohc/x48f55ptvmD17NgaDgZCQEEJCQhg1apTdeTCf89ChQ3n66adZsmQJhw8fJisri/z8/HYZwCo9jufhCRkBFC1jr9IXmNK1xcXFkZ6erqv09fXXX1NSUqIZwNnZ2ZpfcXuD2VylR12VPcFZHNWhYMoe8fDDD2MwGCgvLycjI0NbrYyJiSEqKsrud+XRo0f58MMPiY2NJSkpiR49enjMPHgi5mBHyx97Y8eO1c29ZYW75t9Jf/7zn1m2bJlWXdD8ozAxMZEePXp0uPyeVgo5CbhRSimFEI2An5QyWwjxF+ADTMaxXYQQ/wVmA0ellFbJ+IQQU4EvAXM5leWOuFY0NDTwz3/+UwtUio6O7rAShK6K9nYXAwYMaNfju+ZRt87MgTMy5OXltXlcS6xdu9YhxQ2mnI5r165l+vTpWpuj8+Dt7c3w4cNZtWoVsbGx5OTksG/fPurr69v046i+vp4lS5bw2GOP2aye16dPH4/6sdVd8MSy1grHMecrhlMBiuaVysmTJ2v9Nm/ezL/+9S/AlP924cKFbSrxbCt7QXv1qCv0uCtorw7t1auXtjqckZFhM4i0Od7e3tTU1PDyyy/z8ccfM2zYMObMmcPYsWPbrPe6871nDrizDLozZ06yrJBXVFREVVUVGzduZOPGjVq7EIIbbriBt94yrXvW1dVx9OhRIiMjXfr942mlkC2fNRwBBgOZQCXg6NX0DvAK8D87fX6WUs52cH+AyQC+4447dG3h4eHExsZy9dVXa6UMq6urOXbsGAMGDGjXsr4rshe4G8tqaCYkYOui1X+Bm8e5Iuq2+cqnEBIprWUQQi9DRESEywzgmpoandvD/PmXtyjDxx9/BphWgmtqavD397cb+b8kbwl3Rd7VYuR/QkICQ4cO1aW2cST62dvbm5UrV1JZWcmaNWus+vbs2dMqtZvlj0J7fsqK9qPKWref8HA4YqOCblgYHD5s3d7ReHl5aZUtLYO+AMaMGcM//vEP0tPT2blzZ7Mve8f0qKuyFzijQ12FszoU7GdQsaVH/f39mT17Nl999RV79+7ltdde0wwxcDyLhCvn4XTAy8uL4cOH69pWrVrFsWPHdD7FaWlp7N69m/79+2v9tm3bxsSJEwkNDbUKdhwxYkS7V+k9rRTyb8A4YC+QCjwlhAgDFgA7HNmBlPInIUR0O2S0i7e3N3/605+0YKW8vDwOHz7M4cOHdWmUNm3axLnnnouvry/R0dE6QyE2NpYZM2bYXTnujOwFbaV58FZr+Wst09aYaOkXm779l19+Yc6cOS6Jui0qKtISsgM2lWbzdiGEVeS1mfYE4mVkZLR4LHvtGRkZjBs3zm7kf2ZVZquR/83nwBz9/J+i//BD6Q+cH3K+1XiDwcCqVasoKyuzyl6RnZ2t5VDdscP27RgZGakZxBdeeCHvvfee9jk8PPy0SK7ujsBUVda6/dgyfu21u5Phw4ezaNEi7fP27ds5cOBA0z1sX4/W1NSwbds2vvrqK6699lqrMtdt1aPO6NCWgr/aeu84q0PN52MLe3o0ICCAtLQ0Kisr2bVrly4HriN6FExuJZ70ZNbTsLwWhBBMmDCBSy+9lIEDB2I0GqmpOfWDori4WCuJvXbtWq2oD5h0Y15enrbivmfPHvr16+dQwJ2nlUJ+GDDXo3wE0yruPzEZxL93oTxnCSHSgUJgkZRyV2sDvL29ee2117TPjY2NFBQUkJ2drXvUUVFRQf/+/Tl69KiWMsSS4uJizQBetGgRhw4d0q2kGY1Gt2YvsKSl4K2GhgZyc3PJzc0lNDRUF7wF7Q8aMI9zRdRtYWFhmyvySCmt5tGZQLyWjOnWMI9zNvLf1hy0Nt4cJX3hhRdaySWlpLS01Cpjhfl9Xl4eBQUFFBQUsH79epKSknRf5v7+/lr+3OYryDExMR5XirY57g5M9ZRyzIrOIyUlhaqqKo4ePWq3X11dHRkZGbz88stIKTnzzDPx9/d3So86o0ObG8DtvXec1aHQfj169OhRJk2axMmTJ62+F1obD/C///2Pjz76yCpvbnevstaWa8HMJZdcQklJCQUFBVY5i48dO6Zbbb/qqqtIS0sjMjJSV8Bm7969DBkyBC8vr8472SZEZ5YHbFoB/qYFH+BegFFKWSmEmAkskVIOa2E/NwE3AfTr12+MZd7B1jAajdTV1VFbW6u96uvrdb/Kd+/eTXV1tW7cgAEDdKuq8+Zd2uIxli//XHtvdri3dj9oP2VlZXZTxpgxGAwEBwdrn0tLS3XbHT0HMFVPq6io0OVmbMscmM/fmX3AqXmsrKykoaGh1frv3t7eVnN/4sQJ3ThHZRBC0Lt3b6tzAHg9/3V+PP4jDTTgjTfn9TmPmyJv0vUxz4Oz49uD5TVvMBgoKyvTPjeXpTne3t74+flpL19fX937jqCystLhc3XmWnCG5jJWV1drPpGWspgNBz8/vzb5jU6bNm2blNJ2DWEX4IwedQXTpk1tcdvatalWbW25JjqL6upqZs68qMXtK1asxM/Pj+rqak6ePEmvXr2oq6tzSo86q4ct57G9946zOhSsvwugc/RoTU2NzYUpg8FAQEAAgYGBur+2jGJPvBab01YZXa1Hm1eo27t3L1VVVTrbJSoqivz8fMLDw4mMjARMC3m1tbUtzn1bsadHHU2DtgaYJ6U80ay9F/CFlPJcZ4WUUpZbvF8hhPiXEKKvlLLERt83gDcA4uLiZFsrRrVGYGAg+/bt0z1injJlisOPTSxvyv79+1NfX8/kyZNd8s/88ccf27SS29jYqAVvWSbJbo3mimXq1Kls2LDB4RXt5nNgTofjzD7q6+uZOnWqVjbSkVUUo9FInz59dP+7r776yuHgDUsZ/Pz8bM5DaX0pa0rX6CL/1xxfw7w+83SrD+Z5cHa8s6SmpjJv3jztc0VFhbZqbKs4iL258vb2ZvDgwS36H4eEhLRr1dXRSnDOXgvOYEtGy8eHnVmOuT10tB51BluytKc6oLsxl6u1pL06MC8vj5MnTxIXF+fQAkjz8Wb9YZ5HZ+4dZ3UoWM9DZ+nRgQMHMnr0aKu8uQUFBVayCyEYOnSozrc1JSWF/fv3e/y12Jb7pTP06NSpU7WAO/O8BwcH89JLL/Hcc89psr7xxhvcfPPNCCEYMmSI1dy3ljGkLTiqkafSrPhFE/6AdS3adiCECAeONGWaGA8YgGOu2HdbGT9+POPHj9e15eTksH379nbVLc/Ly+OSSy5h+/btNsvrDh8+XOdY3hLOBh74+vq2yw3CvMoXFhbWLpeOsLAw7X2/fv3atQ/zOFcF4uXm5rZZBvPjHGcj/z0tc0DPnj1JSkoiKSnJapvRaOTw4cMtGscFBQUcOHCAAwcO2Nx3cHCw1fVu/jx48GC7pVJbwxPLELujHLOi/Xh5gS1b0mCANnopOEzz+98Rqqur+eqrr1i7dq1LslC4IhDPGR0K7tOj5niIuLg4rrjiCq1vSUmJlVG8e/du9u3bx759+6yqrD3xxBM6F4r4+PgOeyLWkXSmHjUH3A0fPpzf/e53pKamcujQId3/zd/fn+TkZHbv3s3+/fvZv38/n31msmd69eqlK+7x5ZdfMnjwYOLj49v1XWJXeiHEaIuPSUIIS6dTL2AGpqIYrSKE+BCTId1XCJEP/BXwAZBS/hu4HLhFCNEAVANXys70z2gFZ+qW5+XlkZubS2FhIYWFhVrNejPXX38977zzDmAKDHjuued0BoPZD9PZwINzzjlHV5HH0ejlc85xyW8cwNoNo63jXBGIl5iYqFPejkZRm3/xOhv535UyBxgMBgYMGMCAAQM4++yzrbbX1NSQm5tr00DOzs6mrKyM7du3687XjBCCqKgoKwM5JiZGexRn75e+KkPctQkLazkLRGfR0kKqgwus7aL5/e8IgYGBXHfddSQnJ7Nz5852PU201B/O6lFndahZHk/So3379mX69Om6dJe1tbVkZmbqjGJzlbXmQV8+Pj7Ex8dbVVnr27evzeN5Cp6gRy31/HXXXcd1111HXV2dNvfmV8+ePbW+9fX1XHHFFdTV1Wlluy1/kIwdO1bnAmqL1sz3rZisIQmssrG9GvizIycopbyqle2vYEqT5pHYq1tui+bR3mlpaeTn59s0FCxX3nbt2sUrr1hPQ79+/Xj22Wfb5XdkDjwwl/8088knn+nOryVfUPO4I+0Mzz5y5AhDhw51eh+9evVySSCev7+/FrkKaKvl9ggNDdV8wO1F/jtSw/50yhzg7++vpY5qjpSSY8eO2QzOy87O5tChQ9pr3bp1urHPP/88l1xySYurx+ZgIFWGuOvijlRnHYHlMo0jj52b3/+tYb7/LY3HHTt2sG/fPodcIWpqali/fj3r1q3TKuQVFBQ4pUed1aHQNfSon58fKSkppKSkcP311wMmvbZ69Wq+/vprnWG8f/9+m5l4LIO+LAPu3BH0ZQtP1aO+vr7anNmivLycuXPnkp6ezt69e8nIyCAjI4P33nsPMJU5v/rqq+0eo7UrIQbTEmE2MB4otthWh6moRQc9KPI8nIn29vb2Jjo6mujoaLvHGD58OC+88IJVJH9xcXG7/V4sleTcuXP54osvHB47d+5c7b0rSk+2VemaMZ+Dq8pfTps2zeEqRn5+fkybNk3X5mzkf3fIHCCEoG/fvvTt29fKpQhM/5NDhw7ZNJC9vb2prq5m165d7NplOxnM008/zbBh+jhZVYZY0RWwvP/t0dL9n5iYSHl5eavj6+vr2b17N2+++SYLFizQ2isrK9slt+W946wOha6pR4UQ+Pj4cP755zN79qmyBZWVlboKd+bS2+YMPN9++63WNzAwkMTERN2KZWJiolsC67pqOfc+ffrw8ccfA1BVVcXOnTt1q/SjR49uZQ+tGMBSSnPlge6bG8QCIQSTJk1qMVWIt7c3UkqnUi7FxsZyzz336NqMRiNFRUVs2rTJ4eAHS6SUjB49WreS1tpjGSEEc+bM0ZWNdEXpSS8vr1azDtjC/MjPVeUvDQYDs2fPtplOzpI+ffowdepUq0eOzl4LnXEteTo+Pj7a9dic1NRUTpw40WJwXm5urs4XDBwvQ6xQuBvL+98ejugPeyQmJnLFFVewcOFC3T6aZzlyFEs96qwOhdNLjwYFBXHWWWdx1llnaW3Ng77Mxll+fj6bN29m8+bNunPp6KAvW5wO5dx79OjBhAkTmDBhQpvGOfwsQAhxEXAbEAvMkFIeEkL8AciRUv5of/TpgxCCxMRE4uPjOy3a22AwEBkZyaBBg9oVeCCltOmHGRUVxaOPPkpISIiuva6ujpiYGI4dO0ZYWJh287UneKN58IUzwRNVVVUukcGMwWBg+vTpuoIiRqMRg8Fgt6CIGVvXQmlpKf3793foWnDHtdSVCA4O1h4/NsdoNJKWlqYLvnMkCKa6uponnniCefPmteheMWjQoC4ZzKLoWpjvf3vY296W8XFxcbr2lJQUfvvttzYtqNTV1fHTTz+xf/9+XdCXMzrU8jxORz3aPOjLjLnKWvOAu+ZBX2BKQdo8Z3F7g75s4WlB2Z2Jo2nQrgH+DfwHmE5T8BqmQLj7AbcZwHv39sTyx5GjYXPORv/6+XljNMZg8hJp+/j2HL954IGjQWxTp05l8+bNVo+aU1M/4uab+9kYfxgwResGBARoxsFFF12ky+jgaOCDZdCBM8ETmzZtcioYsSX8/f216kTtwTLyPzU1tc2pylTmgLZjMBhISkoiNzdXU9yOBMF4eXmxfft2Tpw4wbZt29i2bZvNfQ8cOLBFA7lfv36n3Yp8e/SoszrUFRkY3JHFoTn6ks5TtXZHSzobDC2fgyO0Z3x79KjRaOTxxx/XHpn7+Phw77338ve//x1/f38SEhKIiYlpd9BXd9Kjffr04dxzz+Xcc09lkLUM+rJcLT527BipqamkpqZqfW0FfbU34K4rBWW7Gkd/Ft0P/FFK+VHTqq+ZTcATrher43E2+tcd45sHHjhSyjg0NJTQ0FCbqd1a/g4PZ+zYsWRnZ3P8+HHNDzM8PJw///nPWtBBa1kobAUduDoAra3BiIrTh/YEwSQlJXH8+HGKi4tbDM7Lz88nLy+PvLw8XZS3mR49ehAbG8udd97Jl19+qTOQo6Oj25Seqivjbh3qqn04i7MlnZ09h/YY+m3VowaDgR49evDYY4/pgr4sA6vXrFnD7NmzPT7oy1OxDPq67rrrANPT24KCAiujeN++fVZBX2BazTXP/bhx48jKymLo0KF25/50CspuK46ewTBgo432SqCX68RRtIYrAg8c4ddffwVMVefMBkJkZKQWdNBaKUwhhBZ08NJLL5GVlaWtoEVHR1NRUeGQE31HBKApTh/acy2Yr83+/ftz5plnWvWtq6vj4MGDLRrIJ06cICMjgxMnTvDSSy9ZjY+IiGhx9XjAgAHdutyqwnNo670zadIkXQGdyspK3bijR48SGBhoM+grKCiII0eOEBgYCMCePXuIiory+Gpq7sacKjIqKopZs2Zp7VVVVTYD7sypVlesWMHzzz/PvHnzCAwMJCEhwSrgzrLEfXf9TnXUAC4EhgN5zdonA7Yz4Cs6BMvAA3vYCzxoC7b8MB0JvoiNjWXUqFEIIbQE7pYYDAaefvppYmNjW3yc3FEBaIrTh464Fnx9fRk6dKiWuq85paWl5OTkkJeXx7PPPqszkPPy8igqKqKoqIgNGzZYjfXz8yM6OrpFA7lXL7WeoOgcnL13mhuvN9xwA9ddd50W9GVpnPn6+mrGL8AFF1xAfn6+LujL/DcqKqoDz/r0oEePHpx55pm6H/BGo9GqytrAgQM5dOgQW7ZsYcuWLbp9NA+4S05OplevXuzfvx/oHt+pjhrAbwAvW7g/DBRCnAM8BzzeEYIpWsYcvGUPS98iV+NI8IVlCpJHHnmEuXPnWqV2e/DBB7n99tu57rrrKCoqor6+nmPHjpGWlsbSpUsJCQnRGQmWLhyeHPig6Fw6+1oICQkhJCSE8vJy7r//ft22xsZGCgoKWlw9Pnr0KFlZWWRlZdncd58+fVrMjKFQuBpX3zstBX2dPHlSe19TU0NoaCiHDx+2GfT1wgsvaN8f+fn5lJSUMGLECBWY2goGg4Fhw4YxbNgwLr/8clJTUzl48CDHjh1jx44duh8ku3bt0ip4Llu2TNtHSEgIY8aMYdq0acTExBAUFETv3r2Jioo6Lb9THTobKeVzQohg4AdM5Y/XArXA81LKVztQPsVpQHNnfzD5NhUXF5OQ0IdXXrHln/QY5eUR5OXlac7/3333nbb1tttu46efftKtoJlX0cLDw0+7G1XROp4QBOPl5cWgQYMYNGiQzYIIlZWVWuU8WwbysWPHOHbsmOaCpFC0hj4I7xSOBuFBx987lqu//v7+pKWlWVX6MhtnI0eO1Pq+9957PPTQQ3h7ezNixAjdSnFXqLLmCfTp04dp06bpXAnr6urYs2ePbt7T0tI4duwYq1evZvXq1Vpfb29vzjjjDKuV+n79bAXQdy0cthKklA8LIZ4GRmDKC7xbStm+bNoegLORt139+OB8KVJnxpv9MIuLW+oRzr59+3SGguUKwM6dO7VXcy688EJWrlwJmKrFvPDCC8oPU+ERBAUFkZCQYNOHTkrJkSNHtGv+2muvdYOEjuMJOswTZHCnHgXng/Dcha1KX1JKpJT89NNPgCkL0fDhw9m3b59WZc0c9BUdHU1OTo429quvviIuLq7VoC+Fae6TkpJISkrS9IyUksLCQquAu71792rfte+//762j4iICKtgx2HDhnWpubdrAAshAoF/AHMxpT5bDdwhpSzpeNE6ls5KkeOpxwf96oAjJTztje8ImvthWqaB+fLLL3UrZ5araZZleffv388TT+gTlVj6YS5evFjrf/ToUfz9/ZUfpsItCCEIDw8nPDyciRMnerwB7Ak6zBNk8HQ92pUQQuj8S++66y7uuusuXdCX2UCzdBMqLS1lzpw5wKkqa5a+raNGjdKtQiusEUIQGRlJZGQkM2fO1NrNVdaaG8bmWAfzYhOYfrBYzn1KSgpJSUm6gDtPorUV4L8BC4GlQA1wFfAa8Ds7YxSKDqd3796MHj261XKHoaGhPPzwwzoD2dIP85///KfW99577+X999/X/DAt/Y8TExNtZgxQKBQKRcdiK+jLkrKyMmbPnk16ejqHDh2yqrL23XffMWPGDAA2bNjAsWPHSElJYeDAgadNQFdHYavKmtFoJDs728ooPnjwoM2Au9jYWKvV4kGDBnX2qVjRmgE8D7hRSvkRgBDifWCDEMJLSukBv70VCvtER0fz1FNP6dos/TAtb0IpJf7+/jb9MGfPns3XX5tyZR4/fpzf/e53Vv7HKnBJoVAoOp/o6Gidfm7uV2zpZvHKK6/w0UcfAaaFFEu/1vHjx+t8kBW2MRgM2hPayy67TGs/fvw4O3bs0BnFu3bt0p7SLl++XOvbu3dvnn32WT7//HPtfzBixIhWKwe6ktYM4IHAz+YPUsotQogGYABwqCMFUyg6ipb8MN9//33ee+89Dh8+bBWcNGbMGK3fgQMHWLNmDWvWrLHa9+LFiwkICNB+LW/evJnjx48TGxvL4MGDO/XmVigUiu5GaGioVdCXJWPHjqW4uFgL+lq3bh3r1q0DYM6cOXzxxReAKX7kjTfeOK2Cvjqa0NBQpk6dqnMDqq+vtxlwV1JSQkVFBS+//LLW18vLy2bAXf/+/TtE3tYMYC+grllbgwPj3IKjQQOuOpYzgQuniwzO4mnnIIQgIiKCiIgIJk6caLPP8OHDWblypc1IfqPRqCsXvWTJEj788EPtc2RkpOZeMWnSJG666SbgVPCHCs5TuJvOuvc84d73BBmc5XQ4h87k3nvv5d5777UZ9DV58mSt3/bt27nvvvu0z5ZBX+PHj6eiosJjfVs9CR8fHxITE0lMTGTBggWA6fuuqKiIrVu38swzz2irxVlZWVrl2aVLl2r7CA8Pt3KhGD58uNMBd60ZsgJ4XwhhWXbMH3hTCKEl9pNSXuKUFE4wfHgFLaTU7FA8IXDBE2Rwlq54DsHBwVx44YVW7VJK1qxZo3OrSElJ0cru5uXlaVWSfv75Z8rLyzUD+OjRo0RHR2upiJq7VgwbNkytHis6DHfoUU+49z1BBmc5Hc7BHbQU9GWmT58+3HLLLTaDvp5//nmdAfyf//yHuro6kpOTPTroy1MQQjBgwAB69erFgw8+qLWfPHmSnTt36lwo0tPTOXz4MN99950uFaq/v7/NgLu2BLG3ZgC/a6PtfRttCkW3RwiBl5eXbhX3/vvv14olNDQ0kJ+fr60WR0REaP3y8vKoqakhMzOTzMxMq32npqYyZcoUAD7++GN27NihC9SLiopSuY8VCoXCRSQkJPCvf/0L0Ad9paenExoaqtPfixcv1untIUOGaEbZjBkzdEWcFC0TGBjI+PHjdfNlNBrJycmxcqE4ePAgv/76q1XO9JiYGJ0LhT3sfmNKKW9o/6koFApLvL29iY6OJjo62qowyPjx4ykrKyMnJ0dzqbB0rbAMsPv888/5+OOPrfY9aNAgZsyYoSltKSXbtm0jNjaWkJAQFe2sUCgU7aB50FdqaqpOn952221s27aNtLQ0XZW15cuXU19frxl0O3bs4K233tIMtM4O+uqKGAwGhgwZwpAhQ5g3b57WXlpaahVwt3PnTu079PPPP29132rJSKHwEHr16mWVGN4W119/PfHx8bogvcLCQrKzszli4Qx4+PBhxo0bB5jcNswrxpdeeimvvfYal1xyCZGRkR16TgqFQnG6c9ttt2nvLYO+0tPTOf/887VtP/30k92gr7vuugsfH59Olb2rEhISwpQpU7Qno2Ca+6ysLN1q8Q8//NDiPjrNABZC/BeYDRyVUlqVQRKmn1NLgJnASWChlPK3zpJPoegqXHTRRVx00UW6turqavLy8nRtZWVlJCUlkZ2dTVlZGdu3b2f79u1MnDiRRYsWkZiYqBnA//d//8d3331nlf84NjaW/v37q9VjhUKhcABbQV9mJk+ezN///nfNONu7d68W9PX999+zaNEire/NN99MSEiIrsqacnOzj4+Pj5bh6ZprrgGw+93VmbP5DvAK8L8Wtl8EDGt6TcBUcGNCC3019u7tifn82lL73BX10xUKTyEgIEBXAQ/gjDPOID09HSklJSUlmlsFwI033sjw4cO1vlu3btWlA7Jk4sSJbNiwATD5Y73yyiuakRwTE6MqLJ0GtEePKh2qULQNc/lhM+agr/T0dKqrqzVjraamhrfeeotGi1KH/v7+JCQkkJKSwo033qgKM7mATjOApZQ/CSGi7XSZA/xPSimBTUKI3kKICCllkaPHaEvt865aP12haCtCCPr160e/fv2YMGECqamp/Oc//9H1Wbx4MTfffLPO79j83tJNorCwkDvvvFM3NiwsTDOG77//fs2F4+TJk/j5+XWp2vAKx3Wg0qEKhXPYCvoCk87+5JNPdP6teXl5bN26la1bt3LBBRdoBvAHH3zAZ599psubO3jwYHecTpfDk9bTI9EX18hvanPYAFYoFO1j0KBBLZamrK+v194LIbjllls04zg3N5cjR45w5MgRNm7cyO233671ffTRR/nnP/9JdHS05k5hXjmOi4uzKkSiUCgUCvDz82PevHktBn1NmjRJa1+7di2ff/65LugrODiYZ599ljVr1vDEE090quxdCWFacO2kg5lWgL9pwQf4W+DvUsr1TZ9/BO6XUm6z0fcmwJRAlTFjYKu2be3aVIdkmTZtaovbHN2Ho1RWVhIUFOTSfboaJaNr6I4y1tfXU1tbS21tLb1799ZWfHNzczl27JjNMT169NC5bGRnZ+Pn56e9pJT07NnTo32PO/p/PW3atG1SyrEdtX9n9ei0aVNb3OZqHQrd897qCJSMzuNJ8tXW1lJVVcXJkyeprq7m5MmTNDQ0EBUVRVlZmebqJqUkMzOTgIAAAgMDtb/u9CvujHm0q0fNFag64wVEAztb2PY6cJXF5ywgovV9jpEgtZejWI5p/nI1a9eudf1OXYyS0TUoGfVUVlbKnTt3yq+//louWbJE3nnnnfKSSy6Rf/nLX7Q+OTk5EtC9nn/+eWkwGOTgwYPl6tWrtb5ZWVly06ZN8siRI9JoNHbaediio+cR2Co7TTe3XY92pg6VUt1brkLJ6DyeLJ/RaJSFhYXyyy+/lD/++KPWvm3bNis9C8jw8HA5Y8YMuWPHjk6XtTPm0Z4e9SQXiK+A24UQH2EKfiuTbfD/VSgUnkePHj0YOXIkI0eObLFPSEgIS5cu1fke+/r6IqUkLy9PV1XpX//6F0uWLNH2bZmtIikpiYULF3b0KSkUCoXHIoQgIiKCXr16MXXqVK195MiRbNmyRfMpNvsXHz58mMOHD+vSs911111s2LDBqspacHCwG86o4+jMNGgfAlOBvkKIfOCvgA+AlPLfwApMKdD2Y0qD1uYiHG2pfa7qpysUnkFwcDBXX321ri01NZXq6moOHjzIwIEDtfaIiAhGjx7NgQMHKCsrIyMjg4yMDMCUrcJsANfX1xMbG8vgwYOtUrvFxMQwYMAAXcU+xSkc1YFKhyoUXQc/Pz/GjRun5YYHU1af3Nxc0tPTGTJkiNa+ceNGLeDOkujoaK699lrNr9hoNCKE8GhXNXt0ZhaIq1rZLoHb7PWxRXtr2Ks0PQqFZ+Pn58ewYcN0bX/5y1/4y1/+ApiCQiyzVfTr10/rd/DgQfLz88nPz9dSuFnyySef8Lvf/Q6ANWvWsH37dp2B3JZ68qcD7dGjSocqFF0bg8Gg6T1Lvv/+e3bs2KFbKd65cye5ublUVFRo/dLT05k6dSpJSUm68sMjR44kICCgs0+nzXiSC4RCoVA4TEhICGPGjGHMmDFW26Kjo8nLy9NVy7M0li1XO5YvX86rr76qG9+nTx9iY2MZP348r7zyitZ+8OBBBgwYoBLSKxSK05bevXszefJkJk+erLU1NDSQlZWlM2x3795NeXk569evZ/369Vq7wWAgLi6ONWvWEB4eDkBVVRU9evTovJNwAKXFFQrFaYeXl5eW2s3SD84W5513HgaDQWckHzt2jGPHjuHv76/1q62tJTo6GoPBwKBBg3jggQf44IMPtBWUc845h4iIiA4+M4VCoeh8vL29rWI5rrnmGqZPn65bKU5LSyMrK4vc3FzdU7nzzjuP7Oxs3UpxaGgoDQ0NbltQUAawQqHo1sydO5e5c+dqn41GI0eOHCE7O1vXr7i4mAEDBlBQUEBOTg4VFRW8+eab2vbly5dz6aWXAvDee+/x+eefW/kfDx48WGdUKxQKRVcmPDyc8PBwZsyYobVVV1eTk5OjpcQ0BzQfPXqUVatWsWrVKgCef/555s6dy5NPPsl9990HmFKjNTQ00Lt37w6XXRnACoVCYYHBYCAiIsJqNTcqKor8/HxqamrIy8sjKyuLV199VVs5HjFihNZ348aNusT0lkyYMIFNmzZpnz/55BMiIyOJiYkhPDxcBecpFIouTUBAgE4fCiEoKCjQAu7Mq8V+fn7U1tbSt29fre+yZctYuHAh0dHRuiwUycnJxMTEuDTgThnACoVC0Qb8/f2Ji4ujqKiIW2+91WafO++8k6lTp1r5IB88eFDnQ1ddXc38+fN1+zavGCsUCsXpghCCmJgYYmJitCduqampnDhxQlspBjTXs9zcXHJzc/nyyy+1beHh4RQUFGiLBJmZmURHR7c74E4ZwAqFQuFi4uLiiIuLs2pvaGigrKxM+1xVVcX8+fM13+OSkhIyMzPJzMzsTHEVCoXCLTTPLXzPPfdwxx13sG/fPp1fcXp6OgMHDtSMX6PRyLhx46iuriYuLs5qtTg8PLzV1eJOLYXcEQghKjBVjfNk+gIl7haiFZSMrkHJ6BqUjDBYStmv9W7Oo/Soy1AyugZPl9HT5QMlo5kW9ejpsAKcJVuq8+whCCG2KhmdR8noGpSMrqEryNgGlB51AUpG1+DpMnq6fKBkdAQVbaFQKBQKhUKh6FYoA1ihUCgUCoVC0a04HQzgN9wtgAMoGV2DktE1KBldQ1eQ0VG6wrkoGV2DktF5PF0+UDK2SpcPglMoFAqFQqFQKNrC6bACrFAoFAqFQqFQOIxHG8BCCC8hxHYhxDc2tgkhxMtCiP1CiB1CiNEW2y4UQmQ1bXvAjTJe0yTbDiHEL0KIZIttuUKIDCFEmhBiqxtlnCqEKGuSI00I8ZjFNk+Zx/ss5NsphGgUQoQ2bevMebR7LE+4Jh2Q0e3XpAMyuvWadEA+j7geHUXp0U6RUelRx+RTOrRzZHT79dgl9KiU0mNfwD3AB8A3NrbNBFYCAjgT2NzU7gUcAGIBXyAdGOEmGScCIU3vLzLL2PQ5F+jrAfM4tYV2j5nHZv0uBta4aR7tHssTrkkHZHT7NemAjG69JtsyD+68HttwPkqPdryMSo86Jp/SoZ0jo9uvx66gRz12BVgIEQXMAv7TQpc5wP+kiU1AbyFEBDAe2C+lzJZS1gEfNfXtdBmllL9IKUubPm4CojpCDns4MI8t4THz2IyrgA87Qg4X4PZrsjU84Zp0Ao+ZRws8+XpUetRFKD3aabj9emwNT7gencBj5rEZbrkePdYABl4C7geMLWyPBA5ZfM5vamupvSN4CfsyWnIjpl+2ZiSwSgixTQhxUwfIZuYlWpfxLCFEuhBipRBiZFObx82jECIQuBBYZtHcWfPoyLE84Zpsy3y465p05DjuvCYdmgcPuB4d4SWUHnUFL6H0qCtQOtQ1eLoOdVRGt16PHlkJTggxGzgqpdwmhJjaUjcbbdJOu0txUEZz32mYbpSzLZonSSkLhRD9gR+EEHuklD+5QcbfMJUKrBRCzAS+AIbhgfOI6THJBinlcYu2Dp/HNhzLrddkEw7Nh7uuSQeP49Zr0gH5zLj7erSL0qOdKqPSo46hdGjnyOhuHeqIjGbcdj166grwJOASIUQupiX6c4UQ7zfrkw8MtPgcBRTaaXeHjAghkjA9kpojpTxmbpdSFjb9PQp8junRRKfLKKUsl1JWNr1fAfgIIfriYfPYxJU0e0zSSfPo6LHcfU06NB9uviZbPY67r8k2zINbr0cHUHq0k2R09zXriIwWuO26VTq0c2T0gOuxa+hR2cFOxs6+aNmZexZ6Z/ktTe3eQDYQwykn75FuknEQsB+Y2Ky9B9DT4v0vwIVukjGcU/mgxwMHm+bUY+axaVswcBzo4Y55dORY7r4mHZTRrdekgzK67Zp0dB7cfT2247xauv+VHnWNjEqPti6X0qGdJ6Nbr0dH58Kd16OU0jNdIFpCCPEnACnlv4EVmCJG9wMngRuatjUIIW4HvscU8fhfKeUuN8n4GNAH+JcQAqBBSjkWCAM+b2rzBj6QUn7nJhkvB24RQjQA1cCV0nTledI8AlwKrJJSVll068x5tHksD7smHZHR3dekIzK685p0RD5w//XYbjzsmnVERndfs47IqPRo6ygd2nkyuvt67BJ6VFWCUygUCoVCoVB0KzzVB1ihUCgUCoVCoegQlAGsUCgUCoVCoehWKANYoVAoFAqFQtGtUAawQqFQKBQKhaJboQxghUKhUCgUCkW3QhnACgUghMgVQiyys32hEKKyM2WyhxDiHSHEN+6WQ6FQKEDpUEXXQxnACo+hSSHJple9ECJbCPG8EKKHg+Ojm8aO7WhZO4vT8ZwUCkXHoHSoNafjOSlcQ5cqhKHoFqwGrgV8gHMwlZvsAdziTqEUCoWii6B0qELhAGoFWOFp1EopD0spD0kpPwCWAnMBhIn7hRAHhBDVQogMIcQCi7E5TX9/bfrFn9o0bpwQYpUQokQIUS6EWC+EOMtZQYUQFwshtgkhaoQQOUKIp4UQvhbbc4UQjwghXm86br4Q4r5m+xguhFjXtI8sIcRMIUSlEGKhvXOyGH+nEKJACFEqhHhbCBHo7HkpFIoujdKhSocqHEAZwApPpxrTSgbAU8CNwG3ACODvwOtCiFlN28c3/b0QiADmNX3uCbyHaTVkPJAGrBBC9G2vUEKIGZi+WF4BRgK/x1R+8plmXe8GMoDRwLPAc+YvDiGEAfgcaMBU934h8FfAz2J8S+dE0/kkAOcB8zGVlbyzveekUChOS5QOtX1OoHRo90ZKqV7q5REv4B3gG4vP44ES4GNMj/CqgXOajXkJWNH0PhqQwNhWjiOAImCBRVsusMjOmIVApcXnn4BHm/WZC1RyqsR4LvBhsz77gEea3s/ApLgjLbZPbDqHhfbOqWmuDgHeFm1vAqvd/X9UL/VSL/e8lA5VOlS9HH8pH2CFp3FhU6SwN6ZViy+BP2NarfAHvhNCSIv+PpiUZIsIIfoDTwLTgDDACwgABjkh5xhgvBDiLxZthqb9hmP6cgDY0WxcIdC/6f0ZQKGUssBi+6+A0UEZdkspG5rte4KDYxUKxemJ0qFKhyocQBnACk/jJ+AmoB6TYqsHEELENG2/GDjYbEx9K/t8F5PSvhuToq8FfgR87YxpDQPwN+BTG9uK7cgmOeV6JJo+txd7+1YoFN0TpUMdR+nQbowygBWexkkp5X4b7bsxKd3BUso1LYyta/rr1az9bOAOKeW3AEKIMEy+YM7wG3BGC7I6SiYQKYQYIKUsbGobi14Bt3ROCoVCYQulQ5UOVTiAMoAVXQIpZYUQ4nngeSGEwLTKEYQp8MEopXwDOIrJx22GECIXqJFSlgF7gQVCiM2Y/OCe45RSbC9PAN8IIfKATzD5oSUA46WU9zu4jx+ALOBdYUogHwAsbtqXeVWjpXNSKBQKh1E6VOlQhR611K/oSjwKPA4sAnZhUn6X0ZTmpsmX6w7gD5h8ub5sGvd7TIp+G/AR8F9a8XlrDSnl98AsTD5xW5peD2D9aNHePoyYoo79msa/CzyNSXHXtHJOCoVC0VaUDlU6VNGEOdJSoVB4AEKIZEwphsZKKbe5WRyFQqHoUigdqnAUZQArFG5ECHEpUIUptU80psd3Ahgl1c2pUCgUdlE6VNFelA+wQuFeemJK7j4QKAVSgbuV4lYoFAqHUDpU0S7UCrBCoVAoFAqFoluhguAUCoVCoVAoFN0KZQArFAqFQqFQKLoVygBWKBQKhUKhUHQrlAGsUCgUCoVCoehWKANYoVAoFAqFQtGtUAawQqFQKBQKhaJb8f+Ln1ZJRwH2JgAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–4\n", "\n", "scaler = StandardScaler()\n", "svm_clf1 = LinearSVC(C=1, max_iter=10_000, random_state=42)\n", "svm_clf2 = LinearSVC(C=100, max_iter=10_000, random_state=42)\n", "\n", "scaled_svm_clf1 = make_pipeline(scaler, svm_clf1)\n", "scaled_svm_clf2 = make_pipeline(scaler, svm_clf2)\n", "\n", "scaled_svm_clf1.fit(X, y)\n", "scaled_svm_clf2.fit(X, y)\n", "\n", "# Convert to unscaled parameters\n", "b1 = svm_clf1.decision_function([-scaler.mean_ / scaler.scale_])\n", "b2 = svm_clf2.decision_function([-scaler.mean_ / scaler.scale_])\n", "w1 = svm_clf1.coef_[0] / scaler.scale_\n", "w2 = svm_clf2.coef_[0] / scaler.scale_\n", "svm_clf1.intercept_ = np.array([b1])\n", "svm_clf2.intercept_ = np.array([b2])\n", "svm_clf1.coef_ = np.array([w1])\n", "svm_clf2.coef_ = np.array([w2])\n", "\n", "# Find support vectors (LinearSVC does not do this automatically)\n", "t = y * 2 - 1\n", "support_vectors_idx1 = (t * (X.dot(w1) + b1) < 1).ravel()\n", "support_vectors_idx2 = (t * (X.dot(w2) + b2) < 1).ravel()\n", "svm_clf1.support_vectors_ = X[support_vectors_idx1]\n", "svm_clf2.support_vectors_ = X[support_vectors_idx2]\n", "\n", "fig, axes = plt.subplots(ncols=2, figsize=(10, 2.7), sharey=True)\n", "\n", "plt.sca(axes[0])\n", "plt.plot(X[:, 0][y==1], X[:, 1][y==1], \"g^\", label=\"Iris virginica\")\n", "plt.plot(X[:, 0][y==0], X[:, 1][y==0], \"bs\", label=\"Iris versicolor\")\n", "plot_svc_decision_boundary(svm_clf1, 4, 5.9)\n", "plt.xlabel(\"Petal length\")\n", "plt.ylabel(\"Petal width\")\n", "plt.legend(loc=\"upper left\")\n", "plt.title(f\"$C = {svm_clf1.C}$\")\n", "plt.axis([4, 5.9, 0.8, 2.8])\n", "plt.grid()\n", "\n", "plt.sca(axes[1])\n", "plt.plot(X[:, 0][y==1], X[:, 1][y==1], \"g^\")\n", "plt.plot(X[:, 0][y==0], X[:, 1][y==0], \"bs\")\n", "plot_svc_decision_boundary(svm_clf2, 4, 5.99)\n", "plt.xlabel(\"Petal length\")\n", "plt.title(f\"$C = {svm_clf2.C}$\")\n", "plt.axis([4, 5.9, 0.8, 2.8])\n", "plt.grid()\n", "\n", "save_fig(\"regularization_plot\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Nonlinear SVM Classification" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–5\n", "\n", "X1D = np.linspace(-4, 4, 9).reshape(-1, 1)\n", "X2D = np.c_[X1D, X1D**2]\n", "y = np.array([0, 0, 1, 1, 1, 1, 1, 0, 0])\n", "\n", "plt.figure(figsize=(10, 3))\n", "\n", "plt.subplot(121)\n", "plt.grid(True, which='both')\n", "plt.axhline(y=0, color='k')\n", "plt.plot(X1D[:, 0][y==0], np.zeros(4), \"bs\")\n", "plt.plot(X1D[:, 0][y==1], np.zeros(5), \"g^\")\n", "plt.gca().get_yaxis().set_ticks([])\n", "plt.xlabel(r\"$x_1$\")\n", "plt.axis([-4.5, 4.5, -0.2, 0.2])\n", "\n", "plt.subplot(122)\n", "plt.grid(True, which='both')\n", "plt.axhline(y=0, color='k')\n", "plt.axvline(x=0, color='k')\n", "plt.plot(X2D[:, 0][y==0], X2D[:, 1][y==0], \"bs\")\n", "plt.plot(X2D[:, 0][y==1], X2D[:, 1][y==1], \"g^\")\n", "plt.xlabel(r\"$x_1$\")\n", "plt.ylabel(r\"$x_2$  \", rotation=0)\n", "plt.gca().get_yaxis().set_ticks([0, 4, 8, 12, 16])\n", "plt.plot([-4.5, 4.5], [6.5, 6.5], \"r--\", linewidth=3)\n", "plt.axis([-4.5, 4.5, -1, 17])\n", "\n", "plt.subplots_adjust(right=1)\n", "\n", "save_fig(\"higher_dimensions_plot\", tight_layout=False)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Pipeline(steps=[('polynomialfeatures', PolynomialFeatures(degree=3)),\n", " ('standardscaler', StandardScaler()),\n", " ('linearsvc',\n", " LinearSVC(C=10, max_iter=10000, random_state=42))])" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.datasets import make_moons\n", "from sklearn.preprocessing import PolynomialFeatures\n", "\n", "X, y = make_moons(n_samples=100, noise=0.15, random_state=42)\n", "\n", "polynomial_svm_clf = make_pipeline(\n", " PolynomialFeatures(degree=3),\n", " StandardScaler(),\n", " LinearSVC(C=10, max_iter=10_000, random_state=42)\n", ")\n", "polynomial_svm_clf.fit(X, y)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–6\n", "\n", "def plot_dataset(X, y, axes):\n", " plt.plot(X[:, 0][y==0], X[:, 1][y==0], \"bs\")\n", " plt.plot(X[:, 0][y==1], X[:, 1][y==1], \"g^\")\n", " plt.axis(axes)\n", " plt.grid(True, which='both')\n", " plt.xlabel(r\"$x_1$\")\n", " plt.ylabel(r\"$x_2$\", rotation=0)\n", "\n", "def plot_predictions(clf, axes):\n", " x0s = np.linspace(axes[0], axes[1], 100)\n", " x1s = np.linspace(axes[2], axes[3], 100)\n", " x0, x1 = np.meshgrid(x0s, x1s)\n", " X = np.c_[x0.ravel(), x1.ravel()]\n", " y_pred = clf.predict(X).reshape(x0.shape)\n", " y_decision = clf.decision_function(X).reshape(x0.shape)\n", " plt.contourf(x0, x1, y_pred, cmap=plt.cm.brg, alpha=0.2)\n", " plt.contourf(x0, x1, y_decision, cmap=plt.cm.brg, alpha=0.1)\n", "\n", "plot_predictions(polynomial_svm_clf, [-1.5, 2.5, -1, 1.5])\n", "plot_dataset(X, y, [-1.5, 2.5, -1, 1.5])\n", "\n", "save_fig(\"moons_polynomial_svc_plot\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Polynomial Kernel" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Pipeline(steps=[('standardscaler', StandardScaler()),\n", " ('svc', SVC(C=5, coef0=1, kernel='poly'))])" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.svm import SVC\n", "\n", "poly_kernel_svm_clf = make_pipeline(StandardScaler(),\n", " SVC(kernel=\"poly\", degree=3, coef0=1, C=5))\n", "poly_kernel_svm_clf.fit(X, y)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–7\n", "\n", "poly100_kernel_svm_clf = make_pipeline(\n", " StandardScaler(),\n", " SVC(kernel=\"poly\", degree=10, coef0=100, C=5)\n", ")\n", "poly100_kernel_svm_clf.fit(X, y)\n", "\n", "fig, axes = plt.subplots(ncols=2, figsize=(10.5, 4), sharey=True)\n", "\n", "plt.sca(axes[0])\n", "plot_predictions(poly_kernel_svm_clf, [-1.5, 2.45, -1, 1.5])\n", "plot_dataset(X, y, [-1.5, 2.4, -1, 1.5])\n", "plt.title(r\"$d=3, r=1, C=5$\")\n", "\n", "plt.sca(axes[1])\n", "plot_predictions(poly100_kernel_svm_clf, [-1.5, 2.45, -1, 1.5])\n", "plot_dataset(X, y, [-1.5, 2.4, -1, 1.5])\n", "plt.title(r\"$d=10, r=100, C=5$\")\n", "plt.ylabel(\"\")\n", "\n", "save_fig(\"moons_kernelized_polynomial_svc_plot\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Similarity Features" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAuQAAAEQCAYAAAD4T2H3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABqQ0lEQVR4nO3dd3gUVdvH8e+dhECAANJ77y0gRYpUG4qKDRVUBERERVEfe+dBeey90ARFBV4LKgKKqARQOtJFkN5CJ5BQUjbn/eNsYBPSs7uz2dyf69qL3dnZmd9k2cnJ2TP3EWMMSimllFJKKWeEOB1AKaWUUkqpwkwb5EoppZRSSjlIG+RKKaWUUko5SBvkSimllFJKOUgb5EoppZRSSjlIG+RKKaWUUko5KMzpAL5Uvnx5U7t27Xxt4+TJk5QoUcI7gfIpULIESg7QLJkJlCyBkgOCL8vKlSsPG2MqeClSQPDGOTs7mzZtwuVy0bRpU5/ux58C6f+2twTbMenxBDZ/HU+W521jTNDe2rRpY/Jr3rx5+d6GtwRKlkDJYYxmyUygZAmUHMYEXxZghQmA86w3b944Z2enW7duJioqyuf78adA+r/tLcF2THo8gc1fx5PVeVuHrCillFJKKeUgbZArpZRSSinlIG2QK6WUUkop5SBtkCullFJKKeUgbZArpZRSSinlIG2QK6WUUkop5SBtkCullFJKKeUgbZArpZRSSinlIG2QK6WUUkop5SBtkCullFJKKeUgbZArpZRSSinlIG2QK6WUUkop5SBtkCullFJKKeUgvzXIRWSiiBwUkfWZPC8i8p6IbBGRtSJyocdzvURkk/u5J/2VWSml1Pnycz5XSil1Pn/2kH8K9Mri+SuBBu7bUOBjABEJBT50P98U6CciTX2aVCmlVFY+JQ/n82ASExdDt0+7sT9+v9NRlFJBwG8NcmPMAuBoFqv0ASYbawlQRkSqAO2BLcaYbcaYRGCae13lkJPJJ9l1fBeuFJfTUVQ6hw/Dpk2QkuJ0EhXM8nE+DxqjFozij11/MGr+KKejKKWCQCCNIa8G7PZ4vMe9LLPlyg92xu7kxegX6TChAxsPbQRg4eGF1HqnFpH/i6TLpC68uehNDsQfcDhp4XT8OIwdCy7330Zjx0LjxpCYaD/a338PTz4J8fHOZVSFUlCft2PiYpi0ehIpJoVJqydpL7lSKt/CnA7gQTJYZrJYnvFGRIZivyKlUqVKREdH5ytUfHx8vrfhLf7MEnM6hok7JvLbwd8AaFqqKfMWz+NAqQPUDavLIw0eYdepXaw+uppH5z7KM789w5SLplA2vKxf8qUqrO9PqrlzKzF6dBNSUlbSpEkctWsX49lnS3HmTBzR0dF8/31t5s2rwOWXLyckBBIThfDwTD8+XlfY35/MBFIWH8nxedvb5+zsxMbG4nK58rWftze/TbIrGYAkVxLDpg7joQYPeSdgHgTj/6dgOyY9nsAWEMdjjPHbDagNrM/kubFAP4/Hm4AqQEdgjsfyp4CncrK/Nm3amPyaN29evrfhLf7Kcuz0MVPqf6VMxEsR5rFfHjM7ju3IMsc/h/4x7y559+zj9QfW+yNmhlmc5K8ss2YZM2OGvZ+QYMzKlVlnSUw8t27jxsa8+abvM2aUw2nBlgVYYfx4/k5/y8v5PLtteuOcnZ1u3bqZqKioPL9+34l9pthLxQwvcvYW8VKEiYmL8V7IXAqk/9veEmzHpMcT2Px1PFmdtwNpyMoMYID76vwOwHFjTAywHGggInVEJBy41b2u8rJEVyIAZYqVYeK1E9n8wGZeu+w1apWpleXrGpVvxIMXPQjAqphVRI2JYuD3AzmddNrnmQsblwueegrGjLGPw8PhwmzqVxQpYv9NTISOHSEqyrcZlSLz83mBN2rBKFJM2os0XMalY8mVUvnityErIjIV6A6UF5E9wAtAEQBjzBhgNnAVsAU4BQxyP5csIsOBOUAoMNEYs8FfuQuLbce2ceWXVzK652hubHojNza9MU/baVmpJc90eYZRC0bx79F/+eHWHyhfvLyX0xY+J09C0aIQFgYzZ0KFCrnfRsmSMHHiucdTpkCTJtC6tfdyqsIhr+fzYLB4z+KznRepEl2JLNqzyKFESqlg4LcGuTGmXzbPG+D+TJ6bjT3BKx/45/A/XDL5Ek4nnaZSyUr52lZoSCgje4ykRaUW3D79drpO6sq8O+fle7uFWUIC9OplG87vvQc1auR/m4mJ8Pzz0LIlTJ+e/+2pwiU/5/OCbtU9q5yOoJQKQoE0ZEU5YNuxbfT8rCfJKcnMHzifi2te7JXt3tT0Jn6+/Wd2xO5g6vqpXtlmYRUeDt26QZcu3t3mvHkwebL3tqmUUkqpvAmkKivKz46dPsbln19OgiuBBQMX0KxiM69uv3vt7qy7dx11L6jr1e0WFsnJEBsL5cvDSy95f/upPe1nzsCDD8Ljj0P9+t7fj1JKKaWypj3khViZYmW4+8K7md1/ttcb46nqla2HiLD2wFoemP3AeRdDqcw9/ji0b28b5b60d6+tV+50xSellFKqsNIe8kLq6OmjlI0oyxMXP+GX/c3bPo8Pln9A1ciqPNXlKb/ss6Dr18/2jpcp49v91KsH//4LpUv7dj9KKaWUypj2kBdCX679kvrv1WfDwayL1cyfPx8R4aeffjq7bPv27Vx//fU8+OCDudrngxc9SL/m/Xjm92f4dduvecpdWCQl2X/btYOnn858vczen4oVK/Lee+/lap+pjfGVK9NWYlFKKaWU72mDvJDZdmwb9866l6YVmtKofKMs1+3WrRs9evRg1ChbX/f48eNcffXVNG7cmLfffjtX+xURxl8zniYVmnDn93dy9PTRPB9DMDtzBi66CN5/P/t1M3t/2rdvz/33563AxZtv2vHqZ87k6eVKKaWUygNtkBciySnJ3Db9NkIkhC9v+JKwkOxHLI0cOZLFixfzyy+/cPPNN1OkSBGef/55QkNDc73/EuEl+OL6Lzh48iBvL85dg76wSEqCpk1zfnFlRu/PtGnT8vT+AHz4IaxYAcWK5enlSimllMoDHUNeiPx3/n9ZsmcJU2+cmu3sm6m6dOnCpZdeyvXXX0+ZMmVYunQpW7ZsAWD37t0MHDiQffv2ERISQu/evXn11VcRkUy317pKa+bdOY8O1Tt45ZiCTWQkfPFFztfP6P0pWbLk2ee7detGbGwsxhgaNmzIxIkTKVWqVKbbu+AC+68x8PvvcMkleT0SpZRSSuWU9pAXEsYYth3bxoCoAdza/NZcvbZ+/fqcOnWKkSNHUr169bPLw8LCePXVV9m4cSOrVq1i6dKlTM/BLDMX17yYsJAwDp86TExcUMymnW+xsXDHHbBnT+5fm9n7AzBjxgzWrFnD2rVrqVmzJq+//nqOtjlxIlx6KSxYkPs8SimllModbZAXEiLCFzd8wcRrc3fF3rhx45g4cSJRUVFMmDAhzXNVqlShbdu2AISHh9OyZUt2796do+0muZLoMKEDQ2cOzVWeYLViBfz4I8Tk8u+TrN4fgNLuqzVTUlI4efJklt9eeLrjDpg2DS72zjxRSimllMqCNsgLgR/++eFsRZXQkJyPLZ47dy7Dhw9n/PjxjBkzhqVLl6ap6OHpyJEjfP/991xxxRU52naR0CIMazuMmZtn8uOmH3OcKVhdeqntHW/XLuevyen7c9VVV1GpUiU2bdrE448/nqNth4fDLbdASIidoEgppZRSvqMN8iAXExfDgO8H8Njcx3L1ug0bNtC3b18ef/xxBgwYQIcOHbj00kt54YUXzls3ISGBm266iYceeogmTZrkeB8jLhpB0wpNGfHzCE4nnc5VvmDhcsGiRfa+x9DvbOXm/Zk9ezb79++nffv2fPTRR7nKt2QJNGgAGzfm6mVKKaWUygVtkAe5R355hITkBN7t9W6OX3Pw4EGuvvpqLrvssrMl9QCee+45li9fzuLFi88uc7lc3HbbbbRu3Zr//Oc/ucpWJLQIH1z5Adtjt/Pqn6/m6rXB4ssvoXPn3I3Vzu79mTVr1nmvCQ0N5c4772Ty5Mm5yle3rp04KLU2ulJKKaW8T6usBLHoHdFMWz+NF7u9SINyDXL8uooVK7J9+/bzlnft2hVjDNEec6zfc889REZG8uabb+YpY486Pbi1+a1sPLwRY0yOxzgHi5tvtkNCunTJ+Wuye38AoqOjOXbsGImJiVSqVAmAb7/9lubNm+cqX8WK8KvO46SUUkr5lDbIg1SKSeGxuY9Ro1QNHu+cs3HDufXnn3/yySef0Lx5c1q3bg3A4MGDcz2L56d9PqVoWFFfRAx4xYrB4MG+2faxY8e4+eabSUxMxBhDkyZNeD8nMw5lID4exo6F++/XGuVKKaWUt2mDPEgluZK4rO5ltKjYgogiET7ZR+fOnc/2yOZHamN869GtnE4+TfOKuevFLYj+/ddWMpkwAXLZaZ1jdevWZcWKFV7Z1rJl8OijdvjKddd5ZZNKKaWUctMGeZAqGlaU0ZeMdjpGjrlSXPSc3JPqparzx6A/gn7oSkwMnDwJ5cs7nSRnevaE9euhWTOnkyillFLBRy/qDEJT1k1h1uZZXum99pfQkFCevvhpFu1exI+bg78MYteusHYtVK7sdJKcS22Mny6cBXGUUkopn9EGeZA5dvoYw2cP571l7xW4XubBrQfToGwDnv7taVwpLqfj+IQxMGuWLXdYwN4eAL7/HqpXh507nU6ilFJKBQ9tkAeZtxa/xbEzx3jt0tecjpJrRUKL8HLPl9lwaAOfr/3c6Tg+sXAhXH01fF5AD69NG7jySjthkFJKKaW8Q8eQB5Gjp4/y7tJ36du0L1GVo5yOkyc3Nb2Ji2tezM7Y4OyC7dIFpk+H3r2dTpI3NWrAF184nUIppZQKLtogDyJvL36buMQ4nu/2vNNR8kxEmD9wPiESnF2wInD99U6nyL/duyE62laKUUoppVT+BGerp5CqX7Y+D7Z/sMCXDUxtjC/Zs4QkV3BMEWkM9O0LU6c6ncQ73noLhg2DY8ecTqKUUkoVfNogDyJ3trqTd6981+kYXvHnrj/p+ElHvlz3pdNRvCI21pY6jItzOol3PP00bNwIF1zgdBKllFKq4NMGeRA4evooY1aMISE5wekoXtOpRidaV27N6IWjSU5JdjpOvl1wgb2gc8gQp5N4R4UKULOmvV+AqmsqpZRSAUkb5EHg3SXvcu+se9l8ZLPTUbxGRHiu63P8e/Rf/m/9/zkdJ1+2b7dTz4sEV3USY+Cuu+Dee51OopRSShVsQdQ8KJxOJp7kg+Uf0KdRH1pUauF0HK/q07gPLSq24KWFL5FiUpyOk2eDB8PFFwdfT7KI7SkvKLONKqWUUoFKq6wUcBP+msDR00d5ovMTTkfxuhAJ4Zkuz3Df7PvYfGQzjcs3djpSnoweDYcPF8yJgLLzyitOJ1BKKaUKPu0hL8CSXEm8teQtutTsQscaHZ2O4xM3Nr2RXQ/tKrCNcYCOHeGaa5xO4VsrV8Lx406nUP4kIr1EZJOIbBGRJzN4vrSI/Cgia0Rkg4gMciKnUkoVBNogL8Bi4mOoVKJSUPaOpwoLCaNEeAlSTApHTx91Ok6ubN0KzzwDRwtW7FzbvBnatoXx451OovxFREKBD4ErgaZAPxFpmm61+4G/jTFRQHfgTREJ92tQpZQqILRBXoDVLF2TpUOWclWDq5yO4lPGGLpM6sLgHwY7HSVXfvvN1utOCJ7iNxlq2BCmTIG773Y6ifKj9sAWY8w2Y0wiMA3ok24dA0SKiAAlgaNAwS+ZpJRSPqAN8gJq0+FNHDl1BBFBgnFwsgcR4ZI6l/DDph/45/A/TsfJsaFD7YyWVao4ncT3+vWD0qWdTqH8qBqw2+PxHvcyTx8ATYB9wDpghDEF+OpspZTyIb2os4C6b/Z97D2xl433bwz6BjnA8PbDeX3R67y56E3GXxv4YyMSEqBo0cJVgWTRIpgwwd6CqbyjylBGJ530dYSuAFYDPYF6wFwRWWiMOZFmQyJDgaEAlSpVIjo62uthPcXGxuJyuXy+H3+Kj48PquOB4DsmPZ7AFgjHow3yAmjdgXX8vv13XrnklULRGAeoWKIiA6MGMnH1REb1HEXlkpWdjpSp06ehQQM7frww1ejevh1++QV27YLatZ1Oo3xsD1DD43F1bE+4p0HAK8YYA2wRke1AY2CZ50rGmHHAOIC2bdua7t27+yozAGXKlCE2NhZf78efoqOjg+p4IPiOSY8nsAXC8Wg/VgH03tL3iAiL4O42hWvQ7sMdHybRlcjkNZOdjpKlU6fg2muheXOnk/jXLbfYRrk2xguF5UADEanjvlDzVmBGunV2AZcAiEgloBGwza8plVKqgNAe8gLm8KnDfLHuCwa0HEDZiLJOx/GrhuUaMn/gfDrV6OR0lCyVKwcffeR0Cv8Lc59NjLHfEhQv7mwe5TvGmGQRGQ7MAUKBicaYDSIyzP38GGAU8KmIrMMOcXnCGHPYsdBKKRXAtEFewMzdOpeE5AQevOhBp6M4omutrk5HyNLGjXYCoMYFt2x6vrhccNFF0KEDfPCB02mULxljZgOz0y0b43F/H3C5v3MppVRB5NchKzmYSOIxEVntvq0XEZeIlHU/t0NE1rmfW+HP3IGkX4t+7HhoB80qNnM6imPGrRzHddOuczpGhp5/Hrp0gcREp5M4IzQUrrsOLr7Y6SRKKaVUweG3HnKPiSQuw14QtFxEZhhj/k5dxxjzOvC6e/1rgIeNMZ7TqvQozF95uowLsPXHC7NEVyI/bPqBpXuWOh3lPB9+CBs2QHghnv7k2WedTqCUUkoVLP7sIc/JRBKe+gFT/ZKsgHh49cM8+sujTsdw3J1RdxIZHsn7y953Osp5KlaEHj2cTuG8hAT4v/+zQ1iUUkoplTV/NshzMpEEACJSHOgFfOux2AC/iMhKd93aQmXZ3mWsO7GOWqVrOR3FcZFFIxncejBfbfiKIwlHnI4DwMmT8NJLTVi71ukkgWHWLLj1VlixonBdeKwKjpi4GLp92o398fudjlJg6M9MKd/x50WdOZlIItU1wJ/phqt0NsbsE5GK2Akm/jHGLDhvJ16eZCIQisUDvLTxJYqHFKdeXD3H8wTCz6SdaUdySjLf7vyWctHlHM0C8M8/kSxb1oL581dx9Ohxp+M4/h6VLi288UYZGjbcTXT00exf4AdO/0w8BVKWwmrUglH8sesPRs0fxYe9P3Q6ToGgPzOlfMefDfKcTCSR6lbSDVdxX7GPMeagiHyHHQJzXoPc25NMBEKx+H1x+5i/cD7XVbmOqy69ytEsEBg/E4AdJXZQ6lipgMjSvTvUrbuAyy7rSiDM1RQI79Ell0B09DHHc6QKhJ9JqkDKUhglFU1i0upJpJgUJq2exHPdngvoycYCQUxcjP7MlPIhfw5ZyclEEohIaaAb8IPHshIiEpl6H1tKa71fUgeA8SvHk5ySzHXVrnM6SkB5pusztCjdwukYnDxp/w0PTwmIxngg+fbbajz/vNMplErrQOMDpJgUwF4sP2r+KIcTBb5RC0bpz0wpH/Jbg9wYkwykTiSxEfgqdSKJ1Mkk3K4HfjHGnPRYVgn4Q0TWYKddnmWM+dlf2Z1214V38dl1n1EtIsMh94XavtP7eGPRG45muO02uOYaRyMErO3bS7B6tZ0sSKlAkBCewNFaR0l02dqkia5EJq2epOOis5DaO64/M6V8x691yI0xs40xDY0x9YwxL7uXjUk3mcSnxphb071umzEmyn1rlvrawqJ6qeoMiBrgdIyAtPToUh6b+xgr9jlXmv6KK+xNne/hh/9lxgz0mwMVMHbW3olJd/mS9vhmzbN3PJX+zJTyLr82yFXuvTDvBeZsmeN0jIB1WaXLKF6kOGNXjHUsw733wvDhju0+oIWG2oZPfLz2kqvAcKLUCQhNuyzRlciiPYucCVQALN6z+GzveCr9mSnlXf68qFPl0o7YHYxaMIrnuj7HFfW1CzYjJcNK0r95f6asn8Ibl79B6WKl/bZvl8uW97vqKgjTT1KmFi+23yDMnAlduzqdRhV2bVe0JTY2ltWrVzsdpcBYdc8qpyMoFfS0hzyAjV85HhFhyIVDnI4S0Ia1HcappFN8vvZzv+53zhzo08c2NFXmoqJsTfIKFZxOopRSSgUm7dcLUEmuJD5Z9QlXNbiKGqVrZP+CQqxN1TZ0qdmFw6cO+3W/l18OP/6o48ezU7w4jBvndAqllFIqcGmDPED9sOkHDpw8wLA2w7JfWRE9MJoQ8e8XPmFhcPXVft1lgbZzp73psBWllFIqLR2yEqAEoWednvSq38vpKAVCamN89/Hdftnfxx/DBx/4ZVdBY/Bge9OLO5VSSqm0tEEeoG5seiO/DfiN0JDQ7FdWALyx6A3qv1+fQycP+Xxfc+bAz4WmEr53vP02/P67lkBUSiml0tMGeQBaFbOKM8lnnI5R4FzV4CoSXYl8uvpTn+/r++/hq698vpug0rIl1KzpdAqllFIq8GiDPMAkJCdw+ReXM2SGVlbJraYVmtK1VlfGrhx73iQW3pScbP8tXtxnuwha27bBgAGwa5fTSZRSSqnAoQ3yADN943QOnzqsM3Pm0b1t72Xrsa38uu1Xn2x/61aoUgV++cUnmw96oaG2Ms2aNU4nUUoppQJHjhvkIqJVhP1g7Mqx1L2gLpfWvdTpKAXS9Y2vp0LxCkxcNdEn209Ohh49oFkzn2w+6NWqBfv3wzXXOJ1EKaWUChy5KXu4V0RmAJ8APxujtRK8beOhjczfOZ9XLnnF7yX8gkXRsKLM7D+TJuWb+GT7jRrp2PH8KlrU/nvmDBQr5mwWpZRSKhDkptXXG0gEvgV2i8goEannm1iF0/f/fE+RkCIMaj3I6SgFWvtq7YksGun17f79Nxw44PXNFkoDBkDv3k6nUEoppQJDjhvkxpi5xpj+QFXgf8CVwGYR+V1EbhMR7evKpycvfpIN922gYomKTkcp8GZtnsUVX1xBckqy17Y5fDh06aJ1tL2ha1c706n+LJVSSqk8XNRpjIk1xnxojGkLPAh0Aj4H9onIKyJS0tshCwNjDCJCg3INnI4SFJJTkvll6y/M3DzTa9v8+GN70zra+TdkCDzxhP4slVJKKchDg1xEqojIkyKyCXgVmAZ0A+4FegHfezVhIdHry168vOBlp2MEjd4Ne1MtshpjV4712jYbNYJLLvHa5gq9lBT49Vc7llwppZQqzHJTZeUGEZkJ7ARuBt4FqhpjBhpjFhpj/g/oD3T1TdTgte7AOn7Z+gsRRSKcjhI0wkLCuKv1XczZMocdsTvyta0zZ+Dhh+Hff72TTVkLFsBll8F33zmdRCmllHJWbnrIJwF7gI7GmAuNMR8ZY06kW2c7oN28uTR25ViKhhblzqg7nY4SVIZcOAQRYfzK8fnazl9/wZgxsHOnl4IpwI4j/+YbuP56p5MopZRSzspN2cMqxphTWa1gjDkNjMxfpMLlZOJJPl/7OX2b9aVc8XJOxwkqNUrX4KmLn6Jt1bb52k6nTrB3L5Qp451cygoJgRtvdDqFUkop5bzc9JDHich55T9EpJyIuLyYqVCZtn4aJxJOcE+be5yOEpRe6vkS1zW+Ls+vT60CUrasbUAq75s8Gd57z+kUKrdEpJeIbBKRLSLyZCbrdBeR1SKyQUTm+zujUkoVFLlpYmRWD6Eotj65yoNONTrxYrcX6Vyjs9NRgtbBkweZsm5Knl77yCNwww1ans+XZs+2Q1f0Z1xwiEgo8CG2/G1ToJ+INE23ThngI+BaY0wzoK+/cyqlVEGR7ZAVEXnEfdcAw0Qk3uPpUKAL8I8PshUKTSo04YXuLzgdI6iNWzmO5+Y9R/tq7alftn6uXlutmv1Xy/P5zvjxULKk/owLmPbAFmPMNgARmQb0Af72WKc/MN0YswvAGHPQ7ymVUqqAyEkP+QPumwBDPB4/4H5cFBjmq4DBbNKqSSzevdjpGEHvrtZ3ESqhjFs5LtevffRRePttH4RSZ0VG2sa4Swe+FSTVgN0ej/e4l3lqCFwgItEislJEBvgtnVJKFTDZ9pAbY+oAiMg84AZjzDGfpyoETiSc4IGfHuCWZrfQsUZHp+MEtSqRVejTuA+TVk9iVI9RFA0rmqPXrV4NUVHac+sPixdD3752+ErLlk6nUTmQ0aci/aCjMKANcAkQASwWkSXGmM1pNiQyFBgKUKlSJaKjo72f1kNsbCwul8vn+/Gn+Pj4oDoeCL5j0uMJbIFwPDmusmKM6eHLIIXNl2u/5GTSSe5pqxdz+sM9be5h+sbpTN84nX4t+mW7/po10Lo1TJwIgwb5IWAh17Ch/XmnpDidROXQHqCGx+PqwL4M1jlsjDkJnBSRBUAUkKZBbowZB4wDaNu2renevbuvMgNQpkwZYmNj8fV+/Ck6OjqojgeC75j0eAJbIBxPlg1yEXkPeMoYc9J9P1PGmAe9miyIGWMYu3IsrSu3pl3Vdk7HKRQurXsp9cvWZ82BNTlqkNevD+PGQZ8+fginKFcOfvzR6RQqF5YDDUSkDrAXuBU7ZtzTD8AHIhIGhAMXAToATCmlMpBdD3kLoIj7fkvO/0oyldZHyIWle5ey5sAaxvQeg+h4CL8IkRDWDFtD8SLFc7R+iRJw990+DqXOc+wYxMRA06bZr6ucY4xJFpHhwBzsxf0TjTEbRGSY+/kxxpiNIvIzsBZIASYYY9Zns2H7NYnWGFVKFTJZNsg9h6kYY7r7PE0hsev4LmqXqU3/Fuk7lJQvpTbGTyaepER4iUzXmzULTpyAW27RdoG/XX65HbO/bJnTSVR2jDGzgdnplo1J9/h14PUcb/TgQfv11JAhdqxYlSpeyaqUUoEuR80NESkiIvtFpJmvAxUGNze7ma0PbiWyaKTTUQqdNxa9Qe13a3M66XSm60yYAP/7n17M6YRXX4UxY7JfT3mHiPQVkQQRqeWx7F0R2Soilfwe6PBh2L4dnnkGatSA66+Hn37SEjxKqaCXowa5MSYJSEKHpuTb3hN7STEphIh2vTqhTZU2HD51mK///jrTdb791rYBtEHufz17woUXOp2iUPkGWAc8CyAijwL9gF7GmAN+T5OUdO6+ywXffw9XXQV168J//wt79vg9klLeFBsbS0hICJ9++mmGzz/wwANcc801edr222+/TcuWLUnRq+MLpNy0Ct8HnnJfoKPywBjD5V9czs1f3+x0lEKre+3uNCzXkLErx2a6TkjIuQmBlP/t3g1PPAFxcU4nCX7GGAM8DQwUkSeBF4Dexph/AURkkYisEZH1IvK8zwNFRcGXX0K3bmmX79oFL7wAtWrBNdfAjBnaa64KpBUrVmCM4aKLLjrvua1btzJ27FheeCFvkwUOGzaMgwcP8tlnn+U3pnJAbhrkXbAzse0Vkd9EZIbnzUf5gsofu/7g70N/07tBb6ejFFoiwj1t7mHR7kWsO7AuzXOxsbY9MGeOM9mUtXcvvPUWLFrkdJLCwRjzC7ZqykvAzcaY5R5P9zLGRGHLFV4pIq18GkYE+veH6Gj45x87M1f58ueeT0mBmTPh3nvtBaBKFTDLly+nVKlSNG7c+Lzn3nnnHaKiomjbtm2eth0REcGAAQN444038htTOSA3DfLDwLfYi3h2AUfS3VQ2Pl7xMaWLluaW5rc4HaVQuzPqToqGFj2vl/zAAShTBipUcCaXsi66yDbKr7jC6SSFg4j0xDa4BUgzTMUYc8J9N9x9859GjeD11+0wlWnT4JJLzj03eDCEpfuyNiYm7ZAXpQKEy+Vi6tSp1KtXj2effZYTJ05QuXJlRo4ceXadhIQEvvjiC/r3P1fsYf78+YSGhiIi9PGowfvZZ58hIogIDz/8cJp93Xrrrfz9998s0h6NAifHDXJjzKCsbr4MGQwOnjzIN39/w51Rd+a49J7yjXLFyzHtpmk83eXpNMsbNYL583UMs9NEoGJFe187QX1LRKKA6cADwPfA/zJYZylwEPjVGLPan/kAKFrUljz69Vf491948km4667z1xs4EGrWhKefhm3b/B5TqcwMGDCAadOm8fjjj1O6dGn69+/PNddcw4svvnh2LPmSJUuIjY2lS5cuZ1/XrVs3nnzySQBmzJjB5MmT2bNnDyNGjACgVatWvPLKK2n21apVK0qVKsXPP//sn4NTXqNXFvrJlHVTSEpJYljbYU5HUcB1ja+jamTVs4/37YOTJx0MpM4zeDDcf7/TKYKXu7LKbOAtY8xE7Pjxy0Sku+d6xpiLgGpAKxFp7u+cadSvb0sg1a6ddvn27TB3Luzfb5+vV8/W0Pz6a0hMdCSqUgCTJk1i2rRpjB49mhtvvJFjx45xzTXXMHbsWC644AK+++47wDbIRYSWLVumef3IkSNp3749ACNGjKB///4cP36c4sWLM3XqVIoWLZpm/ZCQEFq2bMmSJUv8c4DKa3LVIBeRQSLyi4j8IyLbPG++ChgshrcfTvSd0TSp0MTpKMpt7ta5DJ89HLBDVZs10+vEAkn58lC2rNMpgpOIlAV+BmYaY/4L4J6052sy6CV3D135Hejlz5w5tnUrVK6cdtncuXDzzVC9Ojz+uO1dV8rPPvroI6666iqaNWvGypUrAWjdujWhoaHUrFmTk+6eoH379lGqVCnCw9OODAsLC2PKlClERkYSGxvLwoULATvePKNx6AAVKlRg3759Pjwq5Qs5bpCLyGPAm8BKoDb26831QFlgog+yBZWwkDC61e6W/YrKb/45/A8fLv+Qv2L+YvhweOklCA11OpVK9dpr9j1R3meMOWqMaWKMuSfd8luMMR0BRKSMiJR33y8GXA784/+0OXDppbYSS2qZRM+apYcO2bHoDRtCjx50PXTIsZiqcNm3bx8rVqygVy/7d+yqVasoWbIkDRo0OPt8vXr1ADhz5sx5vd2p6tWrx4033nj2cbly5bjjjjsy3W9ERASnT2c+14YKTLnpIb8bGGqMeQpbk/wDY8y12EZ6rSxf6SYivURkk4hscZfYSv98dxE5LiKr3bfnc/raQDb0x6G8s+Qdp2OodO6IuoOIsAjGrhhLp05w++1OJ1IZ+ftvHUvukLLAHBFZC6wA5htjZjqcKXNhYdCnj51qd8cOWyaxevW060RH0/mI1iBQ/rHNfS1D1ap2eORff/1FVFQUISEhrFixgkOHDnH99dcDtpF97NixDLezcOFCPv/887OPjxw5whNPPJHpfo8ePUp5z+pEqkDITYO8OpA6ofVpoJT7/lTgxgxf4UFEQoEPgSuBpkA/EWmawaoLjTGt3Lf/5vK1AWdn7E4+WfUJh08ddjqKSqdMsTLc0rQfn35cnk3b4p2OozLw7bd2KJEOh/Q/Y8w2Y0wbY0xLY0zz1PNxgVCzJrz4oh1b/uOPcO21doIBYGb6oS0AS5eC9igqLytRogQA27dvB2yD/EJ31YDnn3+ehg0bcom7elDjxo1JSkpiT7rJr2JjY7n99ttxuVzUqVOH2267DYD33nuP2bNnZ7jf7du306hRI58ck/Kd3DTI9wOpf3LtBDq679cnZzN4tge2uE/yicA0bF3znMjPax01buU4AIa2GepwEpWRbuEPk/jTKF6bttjpKCoDl18O77wDmQyVVCprYWFw9dXwww92SMu777KudOm068TH2yEvVavCiBGwfr0zWVXQadmyJfXr1+e1115j7ty5bNu2DZfLRd++fVmwYAHffPMNRYoUAaBr164ALFu2LM02hg4dyq5duwgJCeGzzz5jzJgx1K1bF4BBgwZx4EDaCXVjY2PZvHnz2e2pgiM3DfLfgWvd9z8B3hKRecD/YctmZacasNvj8R73svQ6umeG+0lEmuXytQEl0ZXIhFUT6N2gNzVL13Q6jsrAnVc148oPHqB7r6NOR1EZiIy0baQLLnA6iSrwqlWDBx9MO74cbI3z+Hg7M9h770GLFtCpE3z6KZw65URSFSRCQ0OZMWPG2Ua5MYbPPvuMM2fOsHTpUlq0aHF23dq1a9O+fXt+/PHHs8smTJjA119/DcAjjzxCly5dKFmyJJMnTyYkJISDBw8yaNAgjMeYvlmzZhEeHn52KIwqOMKyX+Wsobgb8MaYMSJyDOiMnSwo83nIz5EMlqXvWf8LqGWMiReRq7AXjjbI4WvtTkSGurNSqVIloqOjcxAtc/Hx8Xnexu8Hf+fgyYN0Du+c7xz5zeJNgZIDvJPl8WZ94QSO/l/xtkDJ4o0cxsDixeUA6NQp7+N/A+VnAoGVpdArWhTq1LHDW1ItXmxvI0bYi0vuvhtatXIsoiq4mjRpwh9//ME999zDF198wfHjxwnNpHrAvffey4gRI/jwww8pXrw4Q4YMYciQIeet17lzZ1yZlAT74osv6Nu3L+XKlfPqcSg/MMb45YYd4jLH4/FTwFPZvGYHdphMrl9rjKFNmzYmv+bNm5fn1y7bs8zc8+M9xpXiyneO/GbxpkDJYUz+srzyijGDBxuTnGzMycSTZuHOhY5l8bZAyeKtHO3bG9OjR2Bk8QZvZAFWGD+dv/1188Y5OzvdunUzUVFRaRe6XMbMnWtM377GFClijP07MO2tXTtjZs70eb68CKT/294SbMfUrVs306lTpyzXSU5ONk2aNDGvv/56nvaxatUqU7RoUfPvv//m6fW5EWzvj7+OJ6vzdpY95CKS4zkLjTF/ZbPKcqCBiNQB9gK3Av09VxCRysABY4wRkfbYHvkjQGx2rw1E7aq1o121dk7HUJmIj4cTJ2ypwyfmPMEnqz5h33/2UaZYGaejqXS+/hqqVHE6hQpaISF2HPmll8LBg/DZZzBuHGzZcm6d5cshkyoYSmVn8+bN9O3bN8t1QkNDmThxIn/9lV1zKmP79+9n0qRJ1K9fP0+vV87KbsjKCuzQkIyGjHgyQJYVnI0xySIyHJjjXneiMWaDiAxzPz8GuAm4V0SSsZVcbnX/RZHha7PJ5KjvNn5Hs4rNaFiuodNRVCZGjTpXTm9gq4F8sPwDPl/zOQ9c9ICzwdR5auolGMpfKlaExx6zs4XNn28b5t9+C8WLw43pCoqlpMDkyXDDDVCqVMbbUwqYMmUK3bt3z3a9Dh060KFDhzztI7XeuSqYsruosw5Q1/1vVre6OdmZMWa2MaahMaaeMeZl97Ix7sY4xpgPjDHNjDFRxpgOxphFWb02UJ1MPMnAHwYycv5Ip6OoTOzaZf9Nvb6rTdU2tKvajo9XfJzmAhkVOBYvhgsvBJ2ATvmFCHTvDlOmwN69MH06RESkXee332DQIPv1zV132fKJev5QSuVBlg1yY8zOnN78FbggmLp+KicSTnBv23udjqIysGED1Kplf896Gt5+OBsPb+S37b85E0xlqVIl20bav9/pJKrQKV8eevQ4f/k4W9aWU6dg4kTo0MFe/PnBB7Zqi1JK5VCWDXIRuVBEQjzuZ3rzT9zAZ4zho+Uf0bxiczrX6Ox0HJWBypXtcJXLL0+7/JZmt1CheAV++vcnZ4KpLNWtCytX2l5ypQJCz57QvHnaZWvXwgMP2Lrmd94Jf/6pveZKqWxlN2RlBecmA1qBvTBzRQa35b4KWND8uftPVu1fxfB2w5H09W5VQChXDp591nZ6eSoaVpTVw1bzxuVvOBNM5UhCgp0ZXSnH3XuvbYAvWmSHrngOaTl92o4vv/hi22hfutS5nEqpgJeTMeSHPO5nNp48R2PIC4P1B9dTpWQV7oi6w+koKgMzZ8K8eZk/XzWyKiJCkivJf6FUrlx2Gdx6q9MplHITgY4d7ZCVmBj48EOIikq7zqZNUL26M/mUUgVCTsaQG4/7OoY8G8PaDmP7iO0UL1Lc6SgqAy+9BM89l/U6E/6aQJ1363Ay8aR/Qqlcefxx+O9/dRSACkClS8N998GqVbBsmZ1QqEQJuPpqO1Oopy1b4M034fBhZ7KqQuHEiRP8/vvvvPPOOxzTsp0BLTczdSIi4UBzoCLpGvPGmNlezFUg7Y/fT+WSlSkaVtTpKCoT8+Zlf1Fg4/KN2Ru3ly/XfcnQNkP9E0zl2NVXO51AqWyIQLt29vbmm3D06PnrjB0Lb7wBTz8N119vG+89etia6Erl00cffcTo0aM5ePAgERERJCQkUL58eW6//Xano6lM5PiTLyKXAbuwY8ZnAzM9bj/6JF0BcirpFM0+asbTvz3tdBSVhYgIO0t2VjrX6Eyryq14f9n7WgIxQB07Bq+9ZudwUSqgRUbask6eEhLg00/t/cRE+L//s5MSNWwIr74KBw74PaYKLps2bWLv3r0kJSVx4sQJEhISWLhwodOxVBZy86f4h9jGdx2gOBDhcSv04zOmrJvC0dNH6VVfC/MHok2bbEWytWuzX1dEeLD9g6w/uJ7oHdE+z6Zyb/9+eOIJ+Plnp5MolUevvgoXXZR22dat8OSTdrz5TTfBnDl28iGlcuniiy8mMjIyzTJtkAe23DTIqwCj3WPGzxhjEjxvvgpYEBhjeHfpu0RViqJLzS5Ox1EZOHDAFj2oVCln69/a/FbKRZTj/WXv+zaYypMmTWDbNhgwwOkkSuVB0aIweDAsWQJr1sDw4Xb8earkZDs7aK9eUK+efhWkcq1du3YkJyenWbZlyxYSExMdSqSyk5sG+Uygk6+CFGTRO6JZf3A9D170oJY6DFBdu9rfezltkEcUieCTaz/hpZ4v+TaYyrPUoUc6qkgVaC1bwvvv2yloP/sMOqebv6JMGahQwZFoquCqVasWYWFpLxMsVqwY69evdyiRyk5uGuTDgFtF5G0RuUtEBnjefBWwIBj/13jKRZSjX/N+TkdRGfj3X9vhlFt9GvehaYWm3g+kvOaNN+zQW22U+5+I9BKRTSKyRUSezGK9diLiEpGb/JmvwCle3H7l88cfdjrhhx6CCy6wF3um7+j58ksYORJ273Ykqgp8IkJUuvKbycnJLNV6+AErNw3yK4BLgBHAu9gx5am3D7wfreAYd804ZvWfRUSRiOxXVn6VlASXXJL3oQ0bD23k9um3cyLhhHeDKa8oU8ZWkzt92ukkhYuIhGLP/VcCTYF+InLeX6/u9V4F5vg3YQHXtCm8/bbtNR80KO1zxtjx5y++CLVrwzXXUO7PP/PW66CCWo8ePQgNDT37+PTp08yfP9/BRCoruWmQv4FteEcaY0oaYyI9bqV8lK9AKBlekouqX5T9isrvQkPhvfdsaeC8OJl0ki/XfcmEvyZ4N5jyiiFD7GSIxQv9ZeV+1x7YYozZZoxJBKYBfTJY7wHgW0AHQedFsWJpZ/8EW9983Tp7PyUFZs6kxbPP2kouzz8PO3VaEGV17NiREiVKpFm2ePFih9Ko7OSmQV4GGGOM0dlS3I6dPkbbcW21EkcACwmB666zs1fnRduqbeleuzvvLHlHZ+8MYDt3wt69TqcoVKoBnuMl9riXnSUi1YDrgTF+zBX8WrWCadPsV3+e9u2DUaPsxRVXXgnTp9uvCFWh1a5dO86cOZNmWUxMDPHx8Q4lUlnJzcRA3wKXAlt9lKXA+XjFx6yMWUnZiLJOR1EZWLwYVq60vajFiuV9O492fJSrp17N139/Tf8W/b0XUHlFfDw0a2aHJX30kdNpCo2Mrl5PP5L/HeAJY4wrq4vdRWQoMBSgUqVKREdHeylixmJjY3G5XD7fj09VqgTPPkvEoEFUnj2byrNnUzQ21j5njK0H+vPPxNety4oJE84fg14AxMfHF+z3KB2njqd48eJpKquEh4fzySefnDe+PLf0/fG+3DTItwEvi0hXYC2Q5k9vY8xb3gwW6M4kn+G9pe9xRb0raFmppdNxVAamT7dFC4YMyd92rmxwJU3KN+GNRW/Qr3k/raQTYEqWhEmTbJ155Td7gBoej6sD+9Kt0xaY5v68lAeuEpFkY8z3nisZY8YB4wDatm1runfv7qPIVpkyZYiNjcXX+/Gb225j/ty5dDtxAsaPh19+OXuVc8mbbqJ7jx4OB8yb6Ojo4HmPcO54OnXqxOzZ5yZST0pKIikpiRYtWrBixQqWLFlC+/btufLKK3O1XX1/vC83Q1YGA3HY0ofDsGMDU2/DvR8tsH2+5nMOnDzA450fdzqKysTrr9tSh/npHQcIkRCe6/ocV9a/kqQU/Qo4EPXtCzVqZL+e8prlQAMRqSMi4cCtwAzPFYwxdYwxtY0xtYFvgPvSN8aVd5giReDGG23P+LZt8Oyz9mrnjHoj7roLHn/clp9SQa9nz56Eh4effZyYmMjTTz9N1apVufnmmxk1ahSrVq1yMKFKleMecmNMNhOOFx4pJoU3F7/JhVUupEftgtn7EOxcLntBZ5Uq3tlevxZa0jLQbdwI77wD776b/z/CVNaMMckiMhxbPSUUmGiM2SAiw9zP67hxp9SubceSv/iiPQl62rMHPv3UXgz6+uvQo4ctq3jDDXayIhUUNmzYwKJFi4iOjiY6OjpNpRWwveRgG+eRkZFcdtllTsRU6eRmyIpyM8YwsvtIykaU1eELAWj/fmjTBsaMgWuu8d52U0wKszbPolH5RjQs19B7G1ZesW8fTJ1qJ0BMPyO58j5jzGxgdrplGTbEjTED/ZFJeUjfGAf7AUlJOfd43jx7K1cO7rzTNs4bN/ZfRuV1p06dok2bNgAkJGQ/ibrL5eLCCy/0dSyVA1kOWRGR90SkhMf9TG/+iRsYQkNCuaX5LVxWT/+qDESnTtkGmbd/r8SeieWWb27hlT9e8e6GlVf07Gk7ALUxrlQmHnkEZs6Ea69N22A/cgTeeguaNLHTGn/xhRb3L6CKFy/Oxx9/fF6veGY6deqU43WVb2U3hrwFUMTjfma35r4KGGiW7V3GSwteIj5RywYFqrp17QWdDRp4d7tlI8oyuPVgvlj7Bfvi0l+/ppwmAqXcMyJoVS+lMhAaCr17ww8/2Fqho0bZ+uWeFi6EO+6Ae+91JqPKt0GDBtGvXz8i0tewTyciIoI+fTKaPkA5IcsGuTGmhzEm1uP+2RtwGXCN+3FPP2QNCKMXjubtJW8jGVb9Uk5bsAAO+nAKkkc6PmKvIVj0pu92ovJl6FDbW27SF+FTSp1TrZq9+HPrVnsx6A03QJjHKNY77jj/NS6X//KpfPnoo49o1KgRYWGZj0wWES699FI/plJZybbKiohcIiI3p1v2JBAPxIrIzyJSxkf5AsrGQxv5YdMPDG83nBLhJbJ/gfKr5GTo3//8maa9qe4Fdenfoj9jVo7h8KnDvtuRyrOePeGmm7TtoFSOhIbCFVfAt9/C7t3wv//BZZfZCz49nToF9erB/ffD6tWORFU5Fx4ezk8//URkZGSm6xQtWpRGjRr5MZXKSk7KHj6JrTELgIi0B0YDnwOPA1HAMz5JF2BeXvgyxYsUZ3j7QlflsUAIC4Pff4dXX/Xtfp66+CkqlajElqNbfLsjlSe33mqrumXRMaSUykjlyvDkk7aWeUi65sE339hhLh99BK1bQ/v2MGGCjg8LYJUrV2bWrFmZDl255JJLtDBFAMlJg7wFMN/jcV9gkTHmbvdkQA8C1/oiXCD598i/TF0/lfva3keFEhWcjqMy0bAhNPfxFQ1NKjRhy4Nb6FBdZ6IJVMbAnDnakaeU1/z8c9rHy5fbqixVqsA999hpkVXA6dixI6+//jrFixdPs7xkyZJce23QN90KlJw0yMsAnqNyOwOen8zlQDUvZgpIySnJXN3wav7T6T9OR1EZ+PJL+zvh1Cn/7C9EQjiTfIa/Yv7yzw5Vrpw+DbfdZuuSK6W84MsvbYnE/v3BY6IZ4uNh3Dho2/ZcvdkTJ5zLqc5z3333ce2116bpKU9KSuKSSy5xMJVKLycN8higHoCIFAVaA4s9no8Esi92WcA1qdCEH279gcolKzsdRWVg1y5Yuxayuajcq4b+OJTLP7+ck4kn/bdTlSPFi8Ovv9p2glLKC0Sge3fbMN+3D95+25ZJ9PTXX7Y6yzffOBJRZUxEmDRpErVr1z5b4rBChQpUrVrV4WTKU04a5D8Br4lIT+BV4CSw0OP5lkBQD6adsm4KO2J3OB1DZeGpp+CPP+zvDH8Z1nYYR04f4aPlH/lvpyrHWrWyHXlabUUpLytXDh56CDZssGUSBww4Nz1uZCTcckva9Y2B2Fh/p1QeihUrxs8//0yJErYgxZVXXulwIpVeThrkzwNngF+BwcDdxphEj+cHA3N9kC0gHDxzkIHfD+S1P19zOorKgMslbNxo7/t7boNONTpxeb3LefXPV4lLiPPvzlWObNwILVvCsmVOJ1EqCInAxRfDZ5/ZXvP334dnnoES6aqQzZ8PVavCwIHw55/6V7JDatasyffff4+IcNVVVzkdR6WTbYPcGHPYGNMVuAC4wBjzXbpV+gL/9UW4QPD5rs8BeKLzEw4nURmZO7cSzZrBihXO7H9Uj1EcOX2E95e970wAlaXq1aFMGZ10UNkCIiIwf340a9asRsQ+rqyjEL3jggtg+HB4IoPflePH2w/hZ5/ZBnzz5vDuu3D0qP9zFnI9evRg9rzZvHXkLfbH73c6jvKQkx5yAIwxx40x51X2NcYcTddjHjS2Ht3KT/t/YmibodQqUyv7Fyi/69jxCG+9Za8lckL7au25uuHVLNy1EKO9PgEnMtJ+o96tm9NJlNMOHMjdcuUlKSmwbVvaZX//bYe8VK0Kt99uZ3TT86ffzIifwZ97/2TU/FFOR1EectwgL4xenP8iYRLGM10KRZn1Aql06SQeesi/Y8fT+/KGL5ndf7bWcw1gSUmweHE5p2MoVfiEhMCiRefKJHoOZ0lIsBeJdutmLxB9800da+5jMXExTFo9iRSTwqTVk7SXPIBogzwTKSaFEkVKcFP1m6gSWcXpOCqdhAS4807YssX5GVNLFS2FiBCbGMvxM8edjqMyMG4cPP10Cy2VrJQTRGxZxHHjICbmXJlET5s2wWOPwXE9h/rSqAWjSDEpALiMS3vJA4g2yDMRIiGMuXoMd9W+y+koKgMbN8KsWXDsWHj2K/vB0dNHuX3Z7YxeONrpKCoDgwbB6NFrufBCp5MoVchFRtqe8uXLz5VJLFXKPterF9RKNzz00CEdV+Qlqb3jiS47yjjRlai95AFEG+QZ+PvQ3yzdsxRAhyEEqFatYMcOaNv2mNNRACgbUZZO5Trx7tJ32X18t9NxVDrFi0PHjkcR0aGqSgWM1q3ho49shZaJEzO+IPTtt+3V2TfdBL/8Ysekqzzx7B1Ppb3kgUMb5OkYY3jgpwfoPaU3p5O0NEMg+vdf26gqWdLZsePpDa4zGIPh+ejnnY6iMjFtmp3bJDnZ6STK3ypVyt1y5UclStivsdJffZ2UBJMm2Q/st9/CFVdAvXrw8su2Ea9yZfGexWd7x1MluhJZtGeRQ4mUJ22QpzP739n8vv13Xuj2AhFF/Djto8qRffsgKsqejwNN5WKVeaD9A3y2+jPWHljrdByVgWLFbL36I0ecTqL8bf9++4d8t27diYpqhTH28X79tj5wHTgA9eunXbZjBzz7LNSsCdddB7Nng+u8AnAqA6vuWYV5wZx3W3XPKqejKbRBnkZySjKPzX2MBmUbMKztMKfjqAxUqACvvw633eZ0kow93eVpyhQrw5wtc5yOojLQpw/89pv2iipVIFSvbuuWbthgyySWLXvuOZcLfvgBeveGOnVg5Eh7tb9SBZRfG+Qi0ktENonIFhF5MoPnbxORte7bIhGJ8nhuh4isE5HVIuKTaWAm/DWBjYc38tplr1EktIgvdqHyqUgRuP9+e/4NRGUjyvLvA//yWOfHnI6iMpA6GUxsrB2OqpQqAJo2tWPJ9+61ZRK7d0/7/O7d8H//B+GBcZG/Unnhtwa5iIQCHwJXAk2BfiLSNN1q24FuxpiWwChgXLrnexhjWhlj0tVL8o4Uk0LvBr3p06iPLzav8sEYuOce+Plnp5Nkr1xxW+96w8ENJKfoYOVA9J//wI03aoU1pQqUYsWgf3+YNw/++QcefRTKl7fPDR16/kVFy5fbIS5KFQD+7CFvD2wxxmxzz+w5DUjT8jXGLDLGpJbNWAJU92M+7mt3Hz/2+1ErqwSgI0fsZG6bNzudJGdWxayi5ZiWjF853ukoKgMvvGC/CS9d2ukkSqk8adTIjl/cs8f2jt9xx/nr3Hsv1K1ryylOn24vElUqQPmzQV4N8KwHt8e9LDN3AT95PDbALyKyUkSGejPYlqNbmLZ+GsYYbYwHqPLlYe1auO8+p5PkTKvKrehWqxvPznuWI6f0CsJAU7OmLZ0Jej2YUgVa0aJw881QLt1MvH/9BStX2q9X58yxX4nVqAFPPQVbtzqTVakshPlxXxm1dDOsCCwiPbAN8os9Fnc2xuwTkYrAXBH5xxizIIPXDgWGAlSqVIno6OgsQxljeGr9U6w/vp6ImAhKF0nbZRYfH5/tNvwlULL4O8fff0fSoEE8RYqc/98lL1lWr17Nf/7zH1JSUujUqRMvu0u2/Pzzz7z66qsA3HTTTdx///252m76LLeXu535O+Zz15d38VCDh3K1rfwqrP9XspJRlqlTa/Dnn+V5771VhPixeyKQfi5KBSVjbJnEX345N/nAgQPwyiv2dumldoKi667TsecqMBhj/HIDOgJzPB4/BTyVwXotga1Awyy29SLwaHb7bNOmjcnOdxu/M7yIeXvx2xk+P2/evGy34S+BksWfOQ4dMqZECWOGD/dulqefftpg/yA0n332mdm9e7cpXbq0AUyrVq3MmTNncr3NjLIMnzXchIwMMWv2r8lTzrwqjP9XspNRlilTjBk82Ji4OOez5Bawwvjp/O2vW07O2fnVrVs3ExUV5fP9+FMgfc68xWvHtH27Mc8+a0yVKqmVLtPeKlQw5qWXvLOvLATbe6THkzdZnbf9OWRlOdBAROqISDhwKzDDcwURqQlMB+4wxmz2WF5CRCJT7wOXA+vzG+hU0ike+vkhmldszvD2w/O7OeUD5cvb4YGPPOLd7Y4cOZL27dsDMGLECPr378/x48cpXrw4U6dOpWjRot7ZT4+RVClZhXUH1nlle8q7+vWDTz6xk0wppYJQ7dowahTs2nWuTKLn12GHDsHhw47FUyqV3xrkxphkYDgwB9gIfGWM2SAiw0Qktej380A54KN05Q0rAX+IyBpgGTDLGJPvehuv/PEKO4/v5MOrPiQsxJ+jd1ROpM6QnFpm1pvCwsKYMmUKkZGRxMbGsnDhQgDeeecdGjdu7LX9pJZBvK1lgBZOVwBs22arqimlglRYGFx7LcycaSuvvPiirXMOduhKepMmwd9/+zOhKuT8WofcGDPbGNPQGFPPGPOye9kYY8wY9/0hxpgLjC1teLa8obGVWaLct2apr82vC6tcyMMdHqZrra7e2Jzyovh4e9Hd11/7bh/16tXjxhtvPPu4XLly3JHRlfr5lDrj6w///EBMXIzXt6/y77PPbOWVGH17lAp+NWrYD/yOHbbcUtN0FZj377dlFJs1gy5d4PPP4fRpR6KqwqNQz9R5XePreOuKt5yOoTJw4gRUrgzVsqrDk08LFy7k888/P/v4yJEjPPHEEz7Z1764fdzyzS08NOchn2xf5c9TT9nOsCpVnE5ScORnojelAkJoKFx88fnLP/0Ukt1zSPzxBwwYAFWrwoMPwjodfqh8o1A2yD9c9iH/W/g/UkyK01FUJqpWtRfHd+rkm+3HxsZy++2343K5qFOnDrfdZoeUvPfee8yePdvr+6saWZXnuj7HVxu+YubmmV7fvsqfYsXOfXu9aZOzWQoCL030plRg6twZbrjBDnNJFRsL778PLVtCx452SMvJk45FVMGn0DXItx3bxmNzH2PxnsVIhpUYlZMSEuDZZ30/g+LQoUPZtWsXISEhfPbZZ4wZM4a6desCMGjQIA4cOOD1fT7W+TGaVWjGvbPuJfZMrNe3r/Lvk0/st9SrVjmdJOAF/ERvSuVZly7w7bewezf87392ciFPS5bA4MG252i8Tv6mvKNQNchTTApDZgyhSGgRPur9kU4CFIAWLLAlYpcs8d0+JkyYwNfuwemPPPIIXbp0oWTJkkyePJmQkBAOHjzIoEGDUktsek14aDgT+0wkJi6GB3960KvbVt5x003w8su2Ua6ylN+J3pQKfJUrw5NPwr//wq+/2gmIihQ59/yJE+e+WlMqnwpVaZF3lrzDvB3zGH/NeKqX0g9RILrsMtiyxVaq8pUhQ4YwZMiQ85Z37twZl4+nbWxfrT2vXPoKVSOr+nQ/Km9Kl4bUywhcLjvEVGUovxO9eT6fq8nc8is2NhaXyxVUEzMF40RTAXdMoaFw770U6dePynPmUGXWLEISE1kSHg4eOUMSE6k7ZgwHrriCuIYNwd3xF3DHk096PN5XaBrkh08d5rl5z9GnUR/uan2X03FUOvHxthOidWvfNsYDwaOdHj173xij39QEoK1b7QR+H34IXbUIU0b2ADU8HlcH9qVfSURaAhOAK40xRzLakDFmHO7x5W3btjXdu3f3elhPZcqUITY2Fl/vx5+io6OD6nggwI/puuvstEJ799I9fQ/51Knw3XdU/+47+wvt7ruhf3+iV60K3OPJg4B+f/IgEI6n0AxZKV+8PL/e8SvjrxmvDaAA9PLL0KED7N3rdBL/GbtiLLd8c4vXh8ao/KtUCcqUcTpFQMvzRG9KBQWRjIerjPO4dnnVKrjvPqhalUavvQZLl9qGvFIZKBQN8k2HbdmEjjU6UqFEBYfTqIw8/jhMnOjbMoeBJsGVwNd/f807S95xOopKp2RJez2D9o5nLJ8TvSkVvF56yZZJLFbs3LJTp6jy00+21ykqCj74wFZtUcpD0DfIv9v4HU0+bML0jdOdjqIycOiQnZHzggvgtkI2meUD7R/gusbX8fivj7Nkjw+vYlV5ImI7sz78ED76yOk0gSevE70pFdQ6d7Yzje3bZ8sktmiR9vl16+CBB+ykB7/95kxGFZCCukGekJzAwB8G0rZqW3o36O10HJVOQgJceqntTCiMRISJ106kRqka3Pz1zRw5leEQW+WwX36xBRb0m2alVI5dcAEMHw5r1sDixcRceSUUL37u+ZAQaNfOuXwq4AR1g3zrsa0UCSnCNzd/Q9Gwok7HUemEh8P99xe+nnFPF0RcwFd9v+LgyYP8tEWrwgUaEZgyBb755myxBKWUyjkR6NCBTY8/DjEx8PHH9mLPW2+FUqXSrrtkif2FOH++9gAUQkHdID+ddJopN06hZumaTkdR6Zw+bc9TQ4fClVf6Zh8DBgygc+fOfPLJJxw9etQ3O/GCtlXbsuXBLdze8nano6gMlChhO7OOHYNnnoGkJKcTKaUKpFKlYNgw+OsvOxYuvbFjbQ9A9+7QuDG88YYd16kKhaBukFcrVY3L613udAyVzm+/Qb169ps8X4mLi+Orr75i0aJFjBgxgqpVq9K9e3fOnDnju53mQ2pd/Pk75vPN3984nEZl5Ndf4fXXYdkyp5MopQo8z4s+AeLi4P/+79zjzZvhscdspYNbbrG/OFNS/JtR+VVQN8grl6zsdASVgerV7cXmder4bh8zZ86kiHtGtZMnT5KQkMBff/11dlkgMsbw0sKXuH367Szbq62+QNO3r62V37mz00mUUkEnMhL+/BPuvTftUJakJPjqK3vBVcOG8OqrcOCAczmVzwR1g1wFltTO6UaNYPr084fPedMnn3xCfHz82cciwg033EBoAE+9KCJMvXEqVSOr0mdaH3Yd3+V0JJVOrVr2319/hTlznM2ilAoyrVvbkk779tk6wB07pn1+61Z48kmoUQMOHnQmo/IZbZArvzh50g6Le/FF3+8rLi6OP/74I82ykiVLMqAAlHMpX7w8P/b7kdNJp7n888s5dFLHDwYaY+DZZ2HkSL3uSinlAyVKwKBBsGiRLZP44INpZyrr2hUqVkz7Gj0ZFXjaIFd+UayY/eO/VSvf72vmzJmEh4eft7xrAZnlpVnFZvzY70d2Ht/Jxys+djqOSkcEfvgBZs/WyitKKR9r3hzefdf2mk+eDF262GoI6b38MvTpA7Nmgcvl/5wq38KcDqCCm8sFp07Z4XEf+6lt+cknnxAXF3f2cepwlbCwgvPfvUutLiwbsoxmFZs5HUVloFIl+6/LBS+8AHfffW44i1JKeV1EBNxxh72l7w13uWyFlj17YMYMO6Tlrrtg8GB7XxUI2kOufGrYMLj4YjtkxR8K8nCV9FpUakGIhLAzdidDZgzhdNJppyOpdLZts9XLvv/e6SRKqUIj/VdzS5bYxniq3bvt+NDateHqq20jPTnZnwlVHmiDXPlU377Qv78dEucPntVVPBWU4SoZWbR7ERNXTaT3lN6cTPTTXzYqRxo0gA0bYMQI+1iHcSql/K5zZ9i0yZZJLF/+3PKUFDuEpU8f+xXec8/Bjh2OxVRZ0wa58rqEBFi82N6//HJ44gn/7XvSpEnnVVe5/vrrC9RwlfT6tejH5OsnM3/nfHp92YsTCSecjqQ8VK1q/92+3Q7v3LTJ2TxKqUKoYUN47TXYu/dcmURP+/bBSy9Br17acxCgtEGuvO7ZZ21FlV1+rtoXFxfHggUL0iwrqMNV0ru95e1Mu3EaS/Ysodun3dgfv9/pSCqduDhbiSwx0ekkSqlCKzzcfjU9dy5s2QJPPXXuohew48rTD3lJSPBvRpUhbZArr3vqKZg6FWrW9O9+Mxuu0q1bN/8G8ZG+zfoy49YZRIZHUjK8pNNxVDotW8Lff0OLFvbx5s3O5lFKFXL16sHo0XZM+fTpcNVVcOed56/Xs6ftUf/qK+1RcJA2yJVXLFliL+BMSYGyZeGGG/yxzyUkePxlH4zDVdK7ssGVzB84n5LhJTmZeJLoHdFOR1IeUv+rzZoFTZrAL784m0cppShSBK6/3p6YPHvLAdavt/XOf/sNbrnFTqX92GPao+AAbZArr1ixwjY+9vtpJMWpU6fo2LEj1157LX369OGrr74K2uEq6Yn768aR80fS87OevBj9Iq4UrTsbSHr2tNdPde/udBKllMrCn39CiEdT8NAheOMNO6V2jx4wZcq5abaVT2mDXOVZXBysXWvv338/rFlz7gI3XytevDiRkZEkJiYyY8YMhgwZQmho6HnrBctwlYy82P1FBkQNYOT8kfT6spfO6hlAIiJs1bHwcDh92g7pTP2sKGdUrmyHzs6fH82aNasRsY8rV3Y6mVIOuuceW3nlxRfPr1keHQ233QbVqsEjj8DGjQ4E9L2YuBhGrB7h+LVZ2iBXeXb77dC7t/3jWcRO/uNPNT0GqcfFxXHq1Kk0z5cuXZoZM2Zw+nRw1u8uXqQ4k/pMYsI1E1i4cyFRY6JYtHuR07FUOtu3206omBinkxRuBw7kbrlShUaNGnaGs+3bz5VJ9OzgOnoU3n4bPvjAuYw+NGrBKNYdX8eo+aMczaENcpUrp09DUpJ7yMRI+21WsWLOZGnSpEmWz+/Zs4eBAwdStmxZrrnmGg4dCr4eZBHhrgvvYumQpdQvW58apXRWtkDTtCn8+y9ccYV9/P33sHdvhKOZlFLqPKGh9sLP77+3ZdJeeslOLpRq6NDzX+M5IVEBFBMXw6TVkzAYJq2e5GgvuTbIVY6dOGErSUyeXBuAVq1s3WWnREVFERKS9X/huLg4EhMTWbFixdmx18EoqnIUCwYtoEbpGhhjGP3PaKaum4rRerMBIXVirDNn7PCusWPrOhtIKaWyUrUqPPMMbN0Kc+bYCUWiotKuc/iwreTSsSNMnOi/Kbm9aNSCUaSYFABcxuVoL7k2yFW2UguXlCoFN98MrVodczaQW8OGDSmWTfd8SEgIFStWZOnSpZT3nMEsiB06dYidJ3fSf3p/un3ajdX7VzsdSbkVKwbLlsHw4VsAW7d8xgydp0MpFaBCQuwMf6+8cv5zkyfbMolLlsBdd9lG/H33werVfo+ZF6m944kuW+ox0ZXoaC+5NshVlj7/3FZB2r3bPn75ZWjTJtbRTKkaNGiQ5fOejfGa/i6K7qCKJSry0YUfMf6a8Ww8vJELx17I7dNv14s+A0S1alCxoi3X+c47cOONBf5bX6VUYXTwoC2pmOrECfj4Y2jdGtq1g/HjbfWHAOXZO57KyV5ybZCr8+zceW6WzYsvthdZh4c7mykj9evXT1OH3FNhbYynCpVQhlw4hM3DN/NYp8dYtncZkUXtVbfxifHZvFr5y8iR8Pvv54obvP02zJ/vbKZglb78cnbLlVLZeOUV2LvXlkls2DDtcytW2DHnVavafwOwQsviPYvP9o6nSnQlsmiPM8URtEGu0jh1ys40+N//2sd16sCHHwbmL63IyEiKFi163vLC3hj3dEHEBbx62av8ff/fFAsrRnJKMi0+bkHvKb35dduvOsbcYUWKnLsOIy7O/l6bNcs+NkZntPam/fvtz7Rbt+5ERbXCGPvYX3MnKBWUKlSA//wH/vnH9ibcdht4/l6Oj7c95f/+61zGTKy6ZxXmBYN5wTCv27yz91fds8qRPNogV3zxBQwfbu8XLw6ffmorIBUEFStWTPNYG+MZCwuxU0gmuhIZGDWQFftWcNnnl9Hog0aMXjja8fqrypYN3brVXkcFsHKl7Vz6809ncymlVLZEoGtX26DYt8+Ox2va1D5Xtaqt3uIpKcmOPddOobO0QV4IHTtmPzMp7qFTW7fab5dSe+NuuOH8+QHOSkiwLwyQrrtatWqdva+Ncbcs3qPiRYrzQvcX2PnQTj7t8ylVIqvwzO/PnL3wc3/8fm2cO6hYMShd+tz9K66AZs3s459/hlGjbOlRpZQKWGXLwogRsH697VF4/30IC0u7zo8/2uosLVva548FRrEIJ2mDvBBITrZ/iKb+f581C+64A5Yvt4+ffdY+n8HoD8vlsh+sN9+0s3rt3m3/ffNNu9zl3LTt9erVIzQ0lJCQECpUqFB4G+O5fI+KhRXjzlZ3Mn/gfLY8sIXL6l4GwLtL3qXqm1Xp+ElHnvv9ORbsXHDeGDvlH82b2zr/ZcrYxwsW2G9+M/2cKqVUIBGBTp1sL19648bZf9evhwcftL3oAwbAH38U2l5zbZAHocRE+O23c0O21q61f4jOnGkf9+ljG+Pt29vHGcw4f87p0/av19dfh23boGZNe4VnzZr28euv2+cd6rarXr06IlK4G+P5fI/qla1HaIj9TzCw1UBe7P4iAKP/GE23T7tR5906Z8earz+4nsOnDvvlsFRao0fb66KyKb2vlFIZqlzZtpHT3ypX9nOQlBT7NXzx4ueWnTljy7p16WK/Fnz7bThyxM/BnOXXU7uI9BKRTSKyRUSezOB5EZH33M+vFZELc/rawij1j0hj7IRaM2bYx0lJtmzoF1/Yx61awVdf2WnuwY5VbdvWfhCz5HLB2LG2pmjt2vbijdTWQEiIfVy7tn1+7FhHesobNmxI48aNWbp0aZrhK4WGl9+jRuUb8Xy351l812KOPn6U72/5nue7Pn92UqVbv7mVCq9XoM67dej7dV9emPcCc7fO9eURKg+pEwwFgvycz5VS/nfgQO6W+0xIiP26LybmXJlETxs3wiOP2F7z/v3PlX0Lcn5rkItIKPAhcCXQFOgnIk3TrXYl0MB9Gwp8nIvXeo3nX5E9enR35K/IkyftJFiZZQkPh3vvteuK2G9/fv/dPi5Rwl7s/NBD9nFICPTta4d15crGjfDXX1Cr1tnWewxxjNj9X/YTf27ntWrBqlV+L2sUExfDa4deY+7iuY43xmPiYhixeoT/x1/78D0qXaw0fRr34Z6295xd9uFVH/Lqpa/Srmo7VsWs4qWFL/H52s8BMMbQ7KNmdPqkE7d8cwvDZg7jtqW38fOWn88+H5cQ59fKLoHwWQ7ELPmVn/O5KngCpmdVBZdSpWDYMPs7LLVMYsmS555PTITvvku7LIiFZb+K17QHthhjtgGIyDSgD/C3xzp9gMnG/sZeIiJlRKQKUDsHr/WanPwVefKkHQGQOvnj3r22Jn6TJvbxhg1w9Oi5kmYLF8KhQ+eGUk2YYL+NeeIJ+/jRRyE21i4H28MdEZF5lqQkW3c/1ZYtaWuFX3xxjg83c3Pm2O50j670USxg3elNjKIkH+LuchexH5g5c+zAVz8ZtWAU646vY9T8UXzY+0O/7Tegsvj5PepWuxvdanc7+/hM8pmzdc3PJJ+hbdW27D6+m79i/mL7se24jItnfnuGXvV7cezMMcq9Vo4iIUUoX7w85YuXp1zxctzb9l5ubnYzR04d4X9//I+S4SWJDI+kZHhJSoaX5KLqF1G/bH3iEuJYsW8F4aHhFA0rav8NLUrVyKpEFo0kyZVEXGIcIRJCqIQSIiEcOBICUhRMCJD6h4D4v0eIAOqd8o48n8+NMTH+j6vyI8j+76pA1KaN/Rb3zTdh2jTbg75sWca9iZs22eukevYMqjF84q/eKhG5CehljBnifnwHcJExZrjHOjOBV4wxf7gf/wY8gW2QZ/najISEtDIdO1anSJF49u69nh07BtOhw82Ehp5m9+5b2LFjEJ07X01ISDI7dgxg58476dbtEubPj850m926dQfg339HcOhQDzp1ug6ATZse5ejRi+jYsS8A//zzJMePR3HRRf0A+Pvv54iPb0j79ncAsHHjM5w5U4nWrR8EYNu2u0lJKUb9+u8DcOhQF0QMGza8lG0Wn0hJgc2bbakHt4SIZJbdtI+UMENIsnDRN9UIP+0xAP3MGTs5gB8+IAnhCSzrsIyU0BRCXCFctOQiwhOdmb3IsSwB/B4lhCewtMNSTKhBXEKHJR0IcYUQUzWGpCJJaW5V91al0sFKnIo4xcp2K0kJTTtzWsN/GlIlpgonIk+wqu359WGbbGhCxYMVOVbmGGtbrz0/zJcz4d/e0OgH6HcdpISACUHEhRihxZoWlDlehkMVDrG50eZz7Xa3qNVRlDxZkv2V97Ot3rbzNt96ZWsizkSwt9pedtbaed7zbZe3JTwpnPlJvaHj2+fne28L3TpdxY7aO4ipkratKggdFncAYGu9rRyqeG621YRXElYaY9qev0Hfy8/53BizIrPtRkZGmjZt2vg0++rVq0lOTqZtW0d+dD4RGxtLmdSrf30gJ78Tvc3Xx+RvgXA83nwf/XE89ePjSQgJYbfnWHPgkc2buTYmhr3FijGrShV+rlyZo/mcvdBf78/8+fMzPW/7s4c8oxHL6f8ayGydnLzWbkBkKPbrUUJC6nDixBFCQ0+TkrKeMmV+5PjxI4SEJAJ/Ua5ccY4fP4aIi9DQJVSs6OLYsdgsDyI21j4fETGTSpXWnn0cGfklERFzzj4uU+ZjSpUqfvZxhQqjqVBBzj6uUuUx9/bsdsuWfT3N4yJFfnTvMfMGeeq2fKZMmTQNtz0XxpAi9seeIobNbeKp/leVc+sXK2a/JvCDPVF7SME23FJIYXOVzVRfU90v+w6oLAH6Hu2J2oNxf0QN5uzPJPJIZIbrxxILsdBiRgsMhpSwlLO30IRQYpNiccW7qLegHibUYEIMKSEpmBADRyD2dCxJCUlUXVMVBIwYEIjZ/yAcaWR3cqQRRD8PkgKSQvnK4wFIOJRA7KlYkkiidETp87KdOnqK5NPJJIcmU6poqfOejz8aT0JiAinhKZQqcv7zccfiCE0OhTMNYfPV5x98SiixsbGYQ4aScv5Xs6mfczkkFDfnfjEl4Gjp0fycz9Ou5HHOLlKkiM/Pa8nJyRhjfH/+9COXy+XY8fhqv04eky8E+vHkNps/jufsX+6J5yp9FXe5uMT91Uy1M2cYun07g7ZvZ37p0nxbtixLIiMx2V4gd75AeH/82UPeEXjRGHOF+/FTAMaY/3msMxaINsZMdT/eBHTH9pBn+dqMtG3b1qxYkWlnTBZZM3/O39V4HMuSkGDL5tWsCSEhxBBHXd7jjCSfXSXChLGNEVSmpO2t3b0bxozxeV22mLgY6r5XlzPJZ85lCYtg24htVC7p30GNjmYJ0PcokN6fYP4si4iTPeR5Pp9nNWQlr+fs3OjevTuxsbGsXr3ap/vxp+joaLp37+6z7TvxOfL1MflbIBxP5coZDzOqVCn3M9Y6djyHDtkqFpMnn+vB9FSrFgwZAoMGQbVqOd6sv44nq/O2PwffLAcaiEgdEQkHbgVmpFtnBjDAfXV+B+C4++Sdk9cqbypaFFq0OFt2aBQLSEnXueXCMIr59sGRI3Zssh+KJI9aMIoUk3ZYg8u4GDV/lM/3HVBZAvQ9CqT3R/lMfs7nSikH7N9v/4BKf8ttY9xRFSrAu+/a2UAnTz53oV6qnTvhuedsR1WfPgEziWFO+K1BboxJBoYDc4CNwFfGmA0iMkxEhrlXmw1sA7YA44H7snqtr7JWqpS75b7kaJYrroC4ODCGxewhUdKWzEsUF4vYYz/R8fF2fT9YvGfxeZPVJLoSWbRnkV/2H1BZAvA9cvxn4kE/y76Rn/O5KniC6f+uChIREXaGwwUL4O+/bZnEcuXOPZ+SYmdDLEAzqflzDDnGmNnYk7TnsjEe9w1wf05f6yuefy06/TWTo1maNIELL4TVq1lVayipQ0KjGzWi+6ZNdh1j7F+krVufKzHjY6vuOXdhn9Pvj+NZAvA9cvxn4kE/y76Tn/O5KlgKVA+qKnyaNLHVWV5+2ZZJHD8e5s2zZRTT+/prW5Kud28I82sTOFvBUy9GeV9oqB2j3KoV7Nhhx26luIcipKTYxzt22OfvuSebKT+VT+h7pJRSStmiBf362UlZNm+GG29M+3xKiq01fd11dkjLs8/C9u2ORM1IYP15oAJPRAQ88ICdUGbOHFi/HurVsxcHNm9uh0A0aaINPSfpe6SUUkqd06DB+ct+++1cAzwmxvaojx4Nl11G+U6doHNnKFLEvzk9aINcZS801Dbsmje3F0j8+adfqqmoXND3SCmllMpc48bw1FMwadK5cVjGwC+/0PyXX+Djj2HgQFulpX59v8fTISsqd4oWtXWvtaEXuPQ9UkoppdKqUcP2iO/aBdOnQ69eaWt6HjgAr75qe9cHDfJ7PG2QK6WUUkqpwqFIEbj+evjpJzuE5bnnSChfPu062kOulFJKKaWUH9SqBf/9L0umTYMZM+Dqq20Vlox6yB95BL78Es6cOf85L9AGuVJKKaWUKrRMaChccw38+KO94LNq1bQrbNoEb78Nt99uZwB9+GFb/9yLtEGulFJKKaUUQNmy5y+bMOHc/aNH4Z13oFkzuPhiO2PoqVP53q02yJVSSimllMrMww/bMom1a6dd/uefcOedtkf9gQdg3bo870Ib5EoppZRSSmWmalV4+mnYutXO93HTTWln+jx+HD74AFq2tA33PNAGuVJKKaWUUtkJCYHLL4evv4Y9e+CVV+xEfJ4uuyxvm/ZCPKWUUkoppQqPSpXgiSdg82Y7C+gtt0C7dvbm6dgxO9Z83LgsN6czdSqllFJKKZUXISHQs6e9uVxpJxsCWyrxzz/tLQtijPFhSmeJyCFgZz43Ux447IU43hAoWQIlB2iWzARKlkDJAcGXpZYxpoI3wgQKL52zcyKQ/i94Q7AdDwTfMenxBDZ/HU+m5+2gbpB7g4isMMa0dToHBE6WQMkBmiUzgZIlUHKAZlHnBNvPP9iOB4LvmPR4AlsgHI+OIVdKKaWUUspB2iBXSimllFLKQdogz17Wl8X6V6BkCZQcoFkyEyhZAiUHaBZ1TrD9/IPteCD4jkmPJ7A5fjw6hlwppZRSSikHaQ+5UkoppZRSDtIGuVJKKaWUUg7SBnkuiMijImJEpLxD+x8lImtFZLWI/CIiVZ3I4c7yuoj8487znYiUcTBLXxHZICIpIuL3skUi0ktENonIFhF50t/7T5dloogcFJH1DueoISLzRGSj+70Z4WCWYiKyTETWuLOMdCqLO0+oiKwSkZlO5igMsvtsivWe+/m1InKhEzlzKgfHc5v7ONaKyCIRiXIiZ07l9NwpIu1ExCUiN/kzX27l5HhEpLv7d/gGEZnv74y5kYP/b6VF5EePc+sgJ3LmVHa/Hx0/Hxhj9JaDG1ADmIOdtKK8QxlKedx/EBjj4M/jciDMff9V4FUHszQBGgHRQFs/7zsU2ArUBcKBNUBTB38WXYELgfVOZXDnqAJc6L4fCWx26ucCCFDSfb8IsBTo4ODP5hFgCjDTyfco2G85+WwCVwE/uf+PdACWOp07n8fTCbjAff/Kgn48Huv9DswGbnI6dz7fnzLA30BN9+OKTufO5/E8nfq7H6gAHAXCnc6exTFl+fvR6fOB9pDn3NvA44BjV8EaY054PCzhcJZfjDHJ7odLgOoOZtlojNnk0O7bA1uMMduMMYnANKCPQ1kwxizAnhQdZYyJMcb85b4fB2wEqjmUxRhj4t0Pi7hvjnx2RKQ60BuY4MT+C5mcfDb7AJPd/0eWAGVEpIq/g+ZQtsdjjFlkjDnmfujoeTkHcnrufAD4Fjjoz3B5kJPj6Q9MN8bsAjDGBPIx5eR4DBApIgKUxP7uSSZA5eD3o6PnA22Q54CIXAvsNcasCYAsL4vIbuA24Hmn87gNxv5VWRhVA3Z7PN6DQw3PQCUitYHW2J5ppzKEishq7C/1ucYYp7K8g/3DPsWh/RcmOflsFqTPb26z3kVgn5ezPR4RqQZcD4zxY668ysn70xC4QESiRWSliAzwW7rcy8nxfID9hnofsA4YYYwpyOc2R88HYf7aUaATkV+Byhk89Qz2a5nLnc5hjPnBGPMM8IyIPAUMB15wKot7nWewfxF/6ascOc3iEMlgmdYSdRORktjerYfSfcPjV8YYF9DKfa3DdyLS3Bjj13H2InI1cNAYs1JEuvtz34VUTj6bBenzm+OsItID2yC/2KeJ8icnx/MO8IQxxmU7YQNaTo4nDGgDXAJEAItFZIkxZrOvw+VBTo7nCmA10BOoB8wVkYVOnuvzydHzgTbI3Ywxl2a0XERaAHWANe4TQnXgLxFpb4zZ768cGZgCzMKHDfLssojIncDVwCXGPQDLqSwO2oO9viBVdWxvQaEnIkWwjfEvjTHTnc4DYIyJFZFooBfg7wtfOwPXishVQDGglIh8YYy53c85CoucfDYL0uc3R1lFpCV2SNSVxpgjfsqWFzk5nrbANPfv3vLAVSKSbIz53i8Jcyen/98OG2NOAidFZAEQhb3GJtDk5HgGAa+4f/9vEZHtQGNgmX8iep2j5wMdspINY8w6Y0xFY0xtY0xt7Bt2oS8a49kRkQYeD68F/vF3Bo8svYAngGuNMaecyhEAlgMNRKSOiIQDtwIzHM7kOPeYwk+AjcaYtxzOUsHdM46IRACX4sBnxxjzlDGmuvs8civwuzbGfSonn80ZwAB3dYUOwHFjTIy/g+ZQtscjIjWB6cAdAdrr6inb4zHG1PH43fsNcF+ANsYhZ//ffgC6iEiYiBQHLsJeXxOIcnI8u7C9/YhIJWxxhW1+Teldjp4PtIe8YHlFRBphx5/uBIY5mOUDoCj2KyqAJcYYR/KIyPXA+9irvGeJyGpjzBX+2LcxJllEhmMr8IQCE40xG/yx74yIyFSgO1BeRPYALxhjPnEgSmfgDmCde+w2wNPGmNkOZKkCfCYiodhOiK+MMVpyMMhl9tkUkWHu58dgK3dcBWwBTmF7/AJSDo/neaAc8JH7vJxsjPF7KdicyOHxFBg5OR5jzEYR+RlYi/09PsHfQ+dyKofvzyjgUxFZhx3u8YQx5rBjobOR0e9H7EX+AXE+EB+PNFBKKaWUUkplQYesKKWUUkop5SBtkCullFJKKeUgbZArpZRSSinlIG2QK6WUUkop5SBtkCullFJKKeUgbZArpZRSSinlIG2QK5VLItJXRBJEpJbHsndFZKt7cgSllFIBRM/bKtBpHXKlcsk9C+VyYJUx5m4ReRR4HOhsjPnX2XRKKaXS0/O2CnQ6U6dSuWSMMSLyNHZW0K3AM0DP1JO6iMwAugC/GWNucjCqUkopsj5vi0gN4HOgIpAEjDTGTHcwriqEtIdcqTwSkUVAe+AaY8xPHst7ACWBO7VBrpRSgSOj87aIVAEqGWNWi0hFYCXQyBhzysGoqpDRMeRK5YGI9ASiAAEOeD5njJkHxDmRSymlVMYyO28bY2KMMavd9w8Cx4DyTmRUhZc2yJXKJRGJAqYDDwDfA/9zNJBSSqks5fS8LSJtgSLAbr+FUwodQ65Urriv0J8NvGWMmSgiy4C1ItLdGBPtbDqllFLp5fS8LSLlgMnAXUbH8yo/0x5ypXJIRMoCPwMzjTH/BTDGrAe+RnvJlVIq4OT0vC0iRYHvgP8ZYxY5kVUVbnpRp1I+ICLdgeF6UadSSgU2d0nEKcAmY8yLDsdRhZQ2yJXyMhH5FXvhUAngKNDXGLPY2VRKKaUyIiIXAwuAtR6L7zDGrHMokiqEtEGulFJKKaWUg3QMuVJKKaWUUg7SBrlSSimllFIO0ga5UkoppZRSDtIGuVJKKaWUUg7SBrlSSimllFIO0ga5UkoppZRSDtIGuVJKKaWUUg7SBrlSSimllFIO0ga5UkoppZRSDvp/ZXe/Y3AtrpMAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–8\n", "\n", "def gaussian_rbf(x, landmark, gamma):\n", " return np.exp(-gamma * np.linalg.norm(x - landmark, axis=1)**2)\n", "\n", "gamma = 0.3\n", "\n", "x1s = np.linspace(-4.5, 4.5, 200).reshape(-1, 1)\n", "x2s = gaussian_rbf(x1s, -2, gamma)\n", "x3s = gaussian_rbf(x1s, 1, gamma)\n", "\n", "XK = np.c_[gaussian_rbf(X1D, -2, gamma), gaussian_rbf(X1D, 1, gamma)]\n", "yk = np.array([0, 0, 1, 1, 1, 1, 1, 0, 0])\n", "\n", "plt.figure(figsize=(10.5, 4))\n", "\n", "plt.subplot(121)\n", "plt.grid(True, which='both')\n", "plt.axhline(y=0, color='k')\n", "plt.scatter(x=[-2, 1], y=[0, 0], s=150, alpha=0.5, c=\"red\")\n", "plt.plot(X1D[:, 0][yk==0], np.zeros(4), \"bs\")\n", "plt.plot(X1D[:, 0][yk==1], np.zeros(5), \"g^\")\n", "plt.plot(x1s, x2s, \"g--\")\n", "plt.plot(x1s, x3s, \"b:\")\n", "plt.gca().get_yaxis().set_ticks([0, 0.25, 0.5, 0.75, 1])\n", "plt.xlabel(r\"$x_1$\")\n", "plt.ylabel(r\"Similarity\")\n", "plt.annotate(\n", " r'$\\mathbf{x}$',\n", " xy=(X1D[3, 0], 0),\n", " xytext=(-0.5, 0.20),\n", " ha=\"center\",\n", " arrowprops=dict(facecolor='black', shrink=0.1),\n", " fontsize=16,\n", ")\n", "plt.text(-2, 0.9, \"$x_2$\", ha=\"center\", fontsize=15)\n", "plt.text(1, 0.9, \"$x_3$\", ha=\"center\", fontsize=15)\n", "plt.axis([-4.5, 4.5, -0.1, 1.1])\n", "\n", "plt.subplot(122)\n", "plt.grid(True, which='both')\n", "plt.axhline(y=0, color='k')\n", "plt.axvline(x=0, color='k')\n", "plt.plot(XK[:, 0][yk==0], XK[:, 1][yk==0], \"bs\")\n", "plt.plot(XK[:, 0][yk==1], XK[:, 1][yk==1], \"g^\")\n", "plt.xlabel(r\"$x_2$\")\n", "plt.ylabel(r\"$x_3$  \", rotation=0)\n", "plt.annotate(\n", " r'$\\phi\\left(\\mathbf{x}\\right)$',\n", " xy=(XK[3, 0], XK[3, 1]),\n", " xytext=(0.65, 0.50),\n", " ha=\"center\",\n", " arrowprops=dict(facecolor='black', shrink=0.1),\n", " fontsize=16,\n", ")\n", "plt.plot([-0.1, 1.1], [0.57, -0.1], \"r--\", linewidth=3)\n", "plt.axis([-0.1, 1.1, -0.1, 1.1])\n", " \n", "plt.subplots_adjust(right=1)\n", "\n", "save_fig(\"kernel_method_plot\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Gaussian RBF Kernel" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Pipeline(steps=[('standardscaler', StandardScaler()),\n", " ('svc', SVC(C=0.001, gamma=5))])" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rbf_kernel_svm_clf = make_pipeline(StandardScaler(),\n", " SVC(kernel=\"rbf\", gamma=5, C=0.001))\n", "rbf_kernel_svm_clf.fit(X, y)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–9\n", "\n", "from sklearn.svm import SVC\n", "\n", "gamma1, gamma2 = 0.1, 5\n", "C1, C2 = 0.001, 1000\n", "hyperparams = (gamma1, C1), (gamma1, C2), (gamma2, C1), (gamma2, C2)\n", "\n", "svm_clfs = []\n", "for gamma, C in hyperparams:\n", " rbf_kernel_svm_clf = make_pipeline(\n", " StandardScaler(),\n", " SVC(kernel=\"rbf\", gamma=gamma, C=C)\n", " )\n", " rbf_kernel_svm_clf.fit(X, y)\n", " svm_clfs.append(rbf_kernel_svm_clf)\n", "\n", "fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(10.5, 7), sharex=True, sharey=True)\n", "\n", "for i, svm_clf in enumerate(svm_clfs):\n", " plt.sca(axes[i // 2, i % 2])\n", " plot_predictions(svm_clf, [-1.5, 2.45, -1, 1.5])\n", " plot_dataset(X, y, [-1.5, 2.45, -1, 1.5])\n", " gamma, C = hyperparams[i]\n", " plt.title(fr\"$\\gamma = {gamma}, C = {C}$\")\n", " if i in (0, 1):\n", " plt.xlabel(\"\")\n", " if i in (1, 3):\n", " plt.ylabel(\"\")\n", "\n", "save_fig(\"moons_rbf_svc_plot\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# SVM Regression" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Pipeline(steps=[('standardscaler', StandardScaler()),\n", " ('linearsvr', LinearSVR(epsilon=0.5, random_state=42))])" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.svm import LinearSVR\n", "\n", "# extra code – these 3 lines generate a simple linear dataset\n", "np.random.seed(42)\n", "X = 2 * np.random.rand(50, 1)\n", "y = 4 + 3 * X[:, 0] + np.random.randn(50)\n", "\n", "svm_reg = make_pipeline(StandardScaler(),\n", " LinearSVR(epsilon=0.5, random_state=42))\n", "svm_reg.fit(X, y)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnsAAAEQCAYAAADI77KTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAACPyUlEQVR4nOydeXhM1/vAPzeThdiLIEQsCUKordS+fG21tVqlSmvfKbXvRRL7VlpK1dZaqkWrWr+qora2SqON2GIJkZBIECKyzMz5/TFmmj0zmSWTOJ/nmSeZO/ee887kzpv3vOddFCEEEolEIpFIJJL8iUNuCyCRSCQSiUQisR7S2JNIJBKJRCLJx0hjTyKRSCQSiSQfI409iUQikUgkknyMNPYkEolEIpFI8jHS2JNIJBKJRCLJx0hjTyKRSCQSiSQfI409SZ5HUZRRiqLcVBQlQVGUc4qitDDimrmKoog0j3u2kFcikUhSoihKS0VR9iuKEv5cFw0w4prpiqL8pSjKY0VR7iuK8oOiKL42EFeSB5HGniRPoyhKb+BjYAFQDzgNHFQUpaIRl18ByqV41LaWnBKJRJIFhYELwDjgmZHXtAbWAk2BtoAaOKwoykvWEFCSt1FkBw2JtXm+Sh0HVEenkC4CzYUQaguM/SfwrxBiaIpjIcC3QojpWVw3F+gphJArYYlEki3W1GNp5okDxgghtph4XWEgFnhDCPGDJWWS5H2kZ09iVRRF6YbO87YE8AFeBRamVZCKosxQFCUum0eLNNc4Aw2AQ2mmPYRutZsdVZ5vm9xUFGWXoihVcvo+JRJJ/sWaesyCFEH3P/2hlcaX5GEcc1sASb6nBhAG/CyEePD82MUMzvsM2J3NWOFpnpcCVEBkmuORQLtsxvoTGABcBtyAWcBpRVFqCSFisrlWIpG8WFhTj1mKj4HzwO9WGl+Sh5HGnsTafAH0BmIURXkKvCqEuJD2pOcK9EHa40aSNhZByeBY2vkOprpAUf4AbgD9gRU5lEMikeRPbKHHcoyiKCuA5ui2lTW2nl9i/8htXInVUBTFEdgJ/A28AtQFLmVybk62P6IBDVA2zXE30nv7skQIEQcEA96mXCeRSPI3NtBj5sq3EugDtBVC3LDk2JL8g/TsSaxJD6CWEKKjEeeavP0hhEhSFOUc0B74JsVL7YE9pgiqKEoBdFs1R025TiKR5HusqsfMQVGUj4F3gNZCiMuWGleS/5DGnsSauABuiqL0B34DXIEmwC4hxNOUJ5qx/bEC+FJRlDPAKWAE4I5O6QKgKMoYdNltNVIcWwb8ANxG5wmcDRQCtuZABolEkn+xuh57nknr9fypA1BRUZS6wAMhxO3n56TSY4qifAq8B7wBPFQURb/DEfd8p0IiMSCNPYk12YVuy8MPKAM8Ak4LIb6w1ARCiK8VRSmJLsGiHLpaVZ2FELdSnFYKXbmElFRAtzVTCrgP/IEuDucWEolE8h9W12NAQ1LvKsx7/tiKLpEM0uuxUc9//ppmrHnAXAvKJskHyDp7EolEIpFIJPkYmaAhkUgkEolEko+xmLGnKMomRVGiFEW5kOLY24qiBCuKolUUpaGl5pJIJBKJRCKRGIclPXtbgE5pjl0A3gSOW3AeiUQikUgkEomRWCxBQwhxXFGUSmmOXQJQFMVS00gkEolEIpFITEDG7EkkEolEIpHkY+yi9IqiKMOAYQAFChRoULFixVyWSIdWq8XBIfftYSlHeuxFFilHeiwlixCClNUCFEUxaZfg6tWr0UKI0mYLYiRSj0k5TMVeZJFypCff6TG9IJZ4AJWACxkcPwY0NGaMatWqCXvh6NGjuS2CEELKkRH2IouUIz32IgtwVlhQv5nykHosPVKO9NiLLFKO9NiLLJbSY/ZhQkskEolEIpFIrIIlS6/sBH4HqiuKckdRlMGKovRQFOUOutYyPyqK8rOl5pNIJBKJRCKRZI8ls3H7ZPLSPkvNIZFIJBKJRCIxDbmNK5FIJBKJRJKPkcaeRCKRSCQSST7GLkqvmMLjx4+JiooiOTnZ6nMVK1aMS5cuWX2ezHBycsLNzS3X5pdIJNbhRdJjhQoVokKFCrk2v0QiyWPG3uPHj4mMjKR8+fIULFjQ6p05njx5QpEiRaw6R2YIIXj27Bnh4eGoVKpckUEikVieF0mPabVawsPDiY6OzpX5JRKJjjy1jRsVFUX58uVxdXXN9y3YFEXB1dWV8uXLU6hQodwWRyKRWIgXSY85ODhQpkwZYmNjc1sUieSFJk8Ze8nJyRQsWDC3xbAptlj5SyQS2/Gi6TEnJyfUanVuiyGRvNDkKWMPeOEMnxft/UokLwIv0vf6RXqvEom9kqdi9iQSif2gVqsJCwsjIiKCpKQknJ2dcXd3z22xJBKJxGheFD0mjb1c4P79+3z66aeMHj2a0qVt1qddIrEIQgguXLhASEgIABqNxvBaZGQkDg4OBAUF4evrK706+RipxyR5mRdNj+W5bdz8wMiRIzl79iyjR4/ObVEkEpMQQnDq1ClCQkLQaDSpFCToFKYQgpCQEE6dOoWuj7ckPyL1mCSv8iLqMWns2ZgdO3bg4uLCgQMHcHJyYvfu3bktkkRiNBcuXCAqKiqdckyLRqMhKiqKCxcu2EgyiS2RekySl8kLeuz3339n6tSpFhtPbuPamHfffZd3330XgO3bt+eyNBKJ8ajVasNKWM+JEx7s3FmbmBhXSpaMp0+fINq0uQvoFGVISAg+Pj44OkpVk5+QekySV7F3PXbp0iXGjBnDkSNHKFmypMXGlRpYIsnnZBaA7OHhYZLyCgsLS/X8xAkP1q9vSFKSbozo6EKsX98QlSqQpk1DU11XuXJli7wXY7hw4QLLly+32XwSicT65Gc9JoQgNjaW4sWLU7hwYa5du8ayZcsYMWIEhQsXtsgc0tiTSPIp2QUgBwYG4u3tbXQAckRERKoxdu6sbVCQepKSHNm+vZZBSWo0GiIiImxi7N29e5c5c+awadOmXOsYIZFILEt+1mNCCH744Qf8/f0pWrQohw8fxsPDgxs3bli8c5aM2bMRFSpUYMWKFamOBQUFUaBAAS5evJhLUknyK8YEIOu3J4wNQE5KSkr1PCbGNcPzoqNTFwy2Rf9X0K28t23bxrhx47h+/bpN5nzRkHpMYkvyqx7TarV888031KtXj9dff53o6Gh69+5tkN8aLVKlsWcjmjRpwl9//ZXq2Pjx4xkyZAg1a9bMJakk+RVrBCA7Ozunel6yZHyG55Uq9SzVcycnp2zHzglqtZr169czffp0ABo1akRYWBgrVqywaKyL5D+kHpPYkvyqx9avX0+vXr1ISEhg69atXL16laFDh1q1xIs09mxEWiX53XffERgYyLx583JRKkl+JLMA5FGjOtO7d09GjerMiRMehtf0K+PsWlq5u7unWnH26ROEs3Pqa5yd1fTtG2x4rlKpLF6gVL/1UadOHUaMGMHp06cNq243NzeLziVJjdRjEluRn/RYUlISmzZt4scffwSgX79+fP311wQHB/P+++/bJPHDYsaeoiibFEWJUhTlQopjLymK8ouiKCHPf5aw1Hwp5rDao2jRopm+Ziqvvvoq169f58GDByQmJjJp0iTmzJkjPRASi5NZAHJ0dCGEUAwByCkVZUbXpcXDI/X5LVqEMXz4WUqVeoqiCEqVesrw4Wdp2fJOlteZw9WrV2nbti3du3dHrVazb98+jh07ZjXvoa2QekwiSU1+0GMJCQmsXbsWb29vBg8ezI4dOwAoUqQIvXr1ssp2bWZY0pzcAnwCbEtxbBrwqxBikaIo054/t1zhmDxEgwYNcHZ25uzZswQGBuLo6CiLkUqsgrEByDt31qZFC51iNCYA2dHREW9v71Sr7RYtwgxjpDgT0K2Gvb29LbJqFUKgKAoFCxbkxo0bfPLJJwwbNizPG3l5DanHJLYir+uxHTt2MHnyZCIiInj11Vf57LPP6NSpk0ljWBKLGXtCiOOKolRKc/h1oPXz37cCx7CwsWfNytZPnjyxWFafi4sL9erV44cffmDr1q3s2LFD/qOSWAVjA5DTHjcmANnX15fY2Nhs42hUKhVubm74+voaIXHmPHr0iAULFhAcHMyBAwfw8PDg+vXr+a5un9RjEklq8qIee/LkCSqVCldXVzQaDdWqVePLL7+kTZs2ud5yzdoxe2WEEHcBnv98oQNqmjRpwqeffkqTJk3o2rVrbosjyacYG4Cc9rgx/7QVRaFZs2Z4e3ujUqnSbUM4OjqiKAre3t40a9YsxwouKSmJVatWUbVqVZYtW4abmxuJiYmGOSS5h9RjEluQl/TYw4cPmT9/Pp6ennz66aeALi7v6NGjtG3bNtcNPQDFkivK5569A0II3+fPHwkhiqd4/aEQIl3cnqIow4BhAKVLl26QWeudYsWK4eXlZTF5s0Oj0Vh0T3379u2MGTOG06dP4+PjY/R1ISEhPH782GJy5JS4uDiLFXg0F3uRxR7lSEpKIj4+3uAtOn68AuvW1SMx8T8jycVFzciRgYa4FEVRcHV1TadgsyMpKYnk5GTDNquTkxNJSUlmfSYJCQlcu3aNxMRELl2qxw8/NOH+/QK4uSUyZMgN2rWLMmqcNm3anBNCNMyxICYi9VjmXLt2jfDwcLv7ruQ29iKLPcqRF/SYWq0mMjKSqKgotFotxYsXp1y5cri6/udtPHzYjY0bqxAV5WKyDgPL6TFrG3tXgNZCiLuKopQDjgkhqmc1RvXq1cWVK1cyfO3SpUsmGUnmYsntD4AOHTrg7e1tsPyNJTAwkHr16llMjpxy7NgxWrdundtiAPYjiz3KoVar2b9/f7btgNLGqJQtW5YKFSqYXJE+K1lM4fHjxxQtWpS4uDjefPNN6tVbyiefvEx8ioW7qyts2AB9+2Y/nqIoNjX2UiL1WGouXbpEZGSk3X1Xcht7kcUe5cgLeqxLly4cPHiQnj17MnPmTF5++eVUr2/fDsOGkWMdBpbTY9beD9kP9AcWPf/5vZXnszu0Wi33799ny5YtBAUF8fXXX+e2SJJ8jvEByKm5d+8e9+/fN7kivblcvXqVqVOncunSJYKCgihcuDCHDh2iUqXUShJ0z2fONF5RSiyD1GMSW2OPeiwsLIylS5cydepUypcvz8KFC1m6dGmmNSZnzrQfHWbJ0is7gd+B6oqi3FEUZTA6I6+9oighQPvnz18ojh8/Trly5diyZQt79uyhRAmLV5+RSNLh6+uLm5ubydt3OalIn1OioqIYM2YMtWrV4vDhw/Tr1w+tVmt4/fbtjK/L7HhKgoODsz9JYjRSj0lyA3vRYzdu3GDYsGFUrVqVdevWceLECQDq1KmTZTFxc3SYpbFkNm6fTF76n6XmyIu0bt061T8wicQW6AOQM+spmR0pK9LXrl3b4vIFBQXRrFkz4uPjGTZsGHPnzk1XELliRbh1K/21FStmPm5ERARz5sxh8+bNFpb4xUbqMUlukNt6TAjBkCFD2Lp1K46OjgwdOpQpU6bg6elp1PU50WHWQqa1SST5FEVRqF27Nj4+PoSFhXHnzh3u3buX6pysYmD0K2MfHx+LZMBqNBquXr2Kj48PNWvWZPDgwQwfPpwaNWpkeH5AQMbxLgEB6c+Ni4tj6dKlLFu2jPj4eBwdHaVxIpHkA3JDj916bqEpioKjoyNjx45l8uTJJnfRMEWHWRvZLk0iyec4OjpSuXJlKlSokGo7xFIV6Y3hl19+oUGDBjRr1oxHjx6hUqlYuXJlpoYe6GJaNmwAT09QFN3PtIHN+v64Xl5ezJ8/n/j4eN588025jSuR5DNsocfOnTtHjx49qFy5Ms+e6Xrjrl+/npUrV+aoXZoxOsxWSGNPInlBMKUivR59Rfqc8u+//9KxY0c6dOhAbGwsa9eupWjRokZf37cvhIaCVqv7qVeSafvjRkZG0rhxY06cOMGePXuoVq1ajmWWSCT2izX02OnTp+ncuTMNGzbk2LFjzJkzx+TyLZmRmQ6zNXIbVyJ5QbBmRfqMuHr1KvXq1aNYsWIsX76c0aNH4+LikqOxUnL27FkmT57MsWPHAKhSpQoLFy7k7bfftovipRKJxHpYWo89fvyYjh074uLiQkBAAKNHj6ZYsWIG/ZJfkMaeRPKCkFFF+ujoQunOy0lFej1PnjwxFACvVq0aGzZs4M0337RI9mZoaCgzZ840NBN/6aWXmD17NiNHjrSIESmRSOwfc/WYEIJDhw6xd+9ePvvsM4oWLcpPP/1E/fr1KVQo/Tj5hTy3jfuiBV2/aO9XYj3c3d1Txbr06ROEs7M61TnOzmr69AkyPFepVEbFqiQnJ7Nu3Tq8vLy4du0aUVG6CvGDBw8229B7+PAhkydPpnr16uzYsQMXFxcmT57MtWvXGD9+fJ409F6k77U1y/dIXjxyqsfKlSvH/v37ady4MZ06deLgwYOEh4cD0KJFi3xt6EEeM/YKFSpEeHg4SUlJ+V6BCCFISkoiPDw8x9toEklKPDxSByy3aBHG8OFnKVXqKYoiKFXqKcOHn01XtDTtdSkRQvD9999Tu3ZtRo0ahY+PDzVq1EhXRiUnJCYmsnLlSry8vFi2bBlJSUn07duXxYvD2L17CSVLlqBSJV2V+rzEi6bHYmJiKFCgQG6LIskn5ESPCSF4++23ef3114mJieHzzz/n2rVrVKhQwdbiG9i+HSpVAgcHbKLH8tQ2boUKFYiOjubWrVuo1ersLzCThISEXFVSjo6OFCtWjPi0JbglkhxgakV6lUqFt7d3luUKwsLC6NmzJ15eXuzfv5+uXbvy22+/mSWnEILdu3czffp0bt68CUCbNm1YunQply83SFXK4NYtXWkDyDtdNV40PVagQAEqVKhgKGchkZhDTvRY5cqVKV68OFu3buXdd9+1SCkpc0jbRs0WeixPGXsODg64ublZxGtgDMeOHbOLnrQXL17MbREk+QRfX19iY2OJiorKsjipSqXCzc0NX1/fdK/duHGDvXv3MmnSJCpWrMjRo0d59dVXLaJAT5w4waRJkzhz5gwAPj4+LFmyhC5duqAoCm+9ZT/th3LKi6rHJBJLYaweS0xMxNPTk7p16/Lrr7/aUMKsyY02anlqG1cikZiHviK9t7c3KpUqXRsiR0dHg0evWbNmqbJbHzx4wIQJE/Dx8WHOnDmGulXNmzc329C7cuUKPXr0oGXLlpw5c4YyZcqwfv16/v33X7p27WqQw57aD0kkktwhOz327NkzkpKSKFiwIE2bNrW7LP3c0GN5yrMnkUjMJ21F+oiICJKTk3FycsLd3R0PD49UxltiYiKffPIJ/v7+xMbGMnDgQObPn0/58uXNliUqKop58+axfv16NBoNrq6uTJ48mUmTJlG4cOF059tT+yGJRJJ7pNVjgYGB/Pvvv7i4uFCrVi1ee+01kyoJ2JLc0GPS2JNIXlD0FekrV66c5Xnx8fEEBATw6quvsmTJEov0yo2Pj2fVqlUsWrSIJ0+e4ODgwNChQ5k3bx7lypXL9Dpj2w8lJCSYLaNEIrFfnjx5wqeffoqDgwNTpkyhUqVKlClTxi49eWnJjTZqchtXIpGk47fffmPAgAFoNBpKlChBUFAQBw8eNNvQ02g0bN68mWrVqjFz5kyePHlC586d+ffff9mwYUOWhh5k337o6dOn+Pn5ZZlBLJFI8i4PHz5k/vz5eHp6Mn36dM6ePQv8t7Vr74Ye5E4bNWnsSSQSA5cvX+b111+ndevW/Prrr4SGhgJYZMv20KFD1K9fn0GDBhEeHk69evX49ddf+fHHH6lVq5bR42TWfuj333+nWrVqzJkzh5YtW5otr0QisS927tyJp6cnH330ES1atODMmTPs3r07t8XKEbZuoyaNPYlEwpMnTxg5ciS+vr4cO3aMhQsXcvXqVapWrWr22Pr+uB07duTff//Fw8ODbdu2cfbsWdq2bWvW2EIIYmNjAfDy8qJWrVqcPHmSPXv2mC23RCLJfe7evWsoflyjRg06derEP//8w/fff88rr7ySy9JZl/Pnz1tsLGnsSSQvMPqivgUKFODkyZOMHDmSa9euMW3aNAoWLGjW2OHh4QwaNIi6dety6NAhihUrxuLFi7l69SrvvfceDg7mqZ/z58/ToUMHOnTogBCC0qVLc+jQIZo1a2bWuBKJJPcJCwtj7NixVK5cmZkzZwJQr149du/eTZ06dXJZOuty5swZunfvbtGSSdLYk0heQDQaDV988QUNGzYkLi4OJycnzp07x5o1ayhdurRZY2u1WmbOnIm3tzebN29GpVIxbtw4rl+/zpQpU8wu8BsWFkb//v2pX78+f//9N3369Mmy1pZEIsk73Lhxg2HDhlG1alU+++wz+vXrx+zZs3NbLJtw4sQJOnbsSOPGjfnhhx/MXnCnxCbGnqIo4xRFuaAoSrCiKONtMadEIkmPEIKDBw9St25dhgwZgrOzs6GPbdoG46aSnJzMp59+SlBQEAsWLODZs2f07NmTS5cusWrVKkqWLGm2/CdPnqRatWp8/fXXTJ48mevXrzN+/Phcr4gvkUgsw6pVq9i2bRtDhw7l+vXrbNy40SLhJPaKEILDhw/TunVrWrZsyaFDhyhcuDDTpk0zxExbAqsbe4qi+AJDgUbAy0BXRVG8rT2vRCJJzZMnT+jQoQOdO3fm2bNnfPPNN5w+fZoqVaqYNa4Qgu+++w5fX1/GjBmDWq2madOmnD59mm+++QYvLy+zxk9OTuby5csAvPLKKwwfPpwrV66wePFiihcvbtbYEokkdwkKCuKdd94xtFmcNWsWN27c4NNPP6ViPi6gKYTgxx9/pGnTprRv357ffvuN4sWL89FHH3Hr1i0WLlxo0S47tvDs+QB/CCHihRBq4Deghw3mlUgk6MqRABQuXJiXXnqJVatWcfHiRXr27Gl2mYI///yTli1b0qNHD65evYqXlxdVq1bl5MmTNGnSJN35pjT/FkKwd+9eatWqRfv27UlISMDFxYVVq1bh6elpltwSiSR3OXfuHD169KBOnTr8+OOPhj7Ybm5uuLu757J0WWOKHkuLVqtl3759NGzYkK5du/LHH39QsmRJAgICCA0NZe7cubz00ksWl1nRB2hbC0VRfIDvgSbAM+BX4KwQYmyKc4YBwwBKly7dwF5SqePi4jKs4i/lyH3sRRZ7lkOj0XDv3j3u379PrVq1LFpNPikpiTt37vDw4UNAV6C5XLlylC5dmqdPn2b4mRw+7MayZdVJTPyvtZGLi4ZJk67Qrl1UqnOfPn3KnTt3iIuLo0CBAlSoUIFixYqZJGObNm3OCSEa5uDt5Qipx6QcpmIvsthajtDQUGJiYlCpVJQpUwY3NzdUKpXdfB6Q+Wdiih5Ly4MHD7h37x7Pnj0DwMnJiTJlylC6dOlME9YspseEEFZ/AIOBv4HjwGfAyszOrVatmrAXjh49mtsiCCGkHBlhL7LYoxyJiYli9erVolSpUgIQ/fr1E+Hh4RaZJyYmRkyYMEE4OTkJQBQoUEBMmzZNPHr0KENZUuLpKQSkf3h6pj7vjz/+EIAoW7as2LBhg0hOTs6RrOgWlTbRcWkfUo+lR8qRHnuRxdpyaLVaceLECcN3ee3atWLBggWp9IYt5DAFc/WYnqSkJLF582bh7e0tAAEIDw8P8cknn4j4+Phs5bCUHrNJVLMQ4gvgCwBFURYAd2wxr0TyopGQkEC9evW4fPkybdq0YenSpTRo0MAi437yyScEBATw6NEjFEXh/fffx9/f3+huFVk1/46JieHs2bN07NiRRo0asX79et599127WeVLJBLTEUJw6NAh/P39OXnyJLt27aJ3796MHDkyt0XLMVnpsZQkJiaydetWFi5caEi0qFy5MtOnT6d///5mJ8SZik2MPUVR3IQQUYqiVATeRLelK5FILERiYiKgq5fXt29f6tWrR+fOnc2OydNqtezatYsZM2Zw63nn7v/9738sXbrU5BpQmTX/LlYs1pBtd+fOHQoXLsywYcPMklsikeQeQgh++OEH/P39+euvv/Dw8OCTTz6he/fuuS2a2WSmx/S5JM+ePWPjxo0sWbKEO3d0fq3q1aszffp03n33XYuG05iCrers7VEU5SLwAzBaCPHQRvNKJPmaa9eu0atXLy5cuMBff/0F6LLZunTpYrah99tvv9G4cWP69u3LrVu38PX15aeffuKXX37JUbHPgABds++UKEo8jx6NpHnz5pw6dUp68iSSfIBWq2Xq1KlER0ezYcMGrl27xujRoy1aNy63yEiPubrCnDkJLFu2jCpVqvDBBx9w584dfH192bVrF8HBwfTv3z/XDD2wkWdPCNHCFvNIJC8KMTEx+Pn5sXbtWpydnenRowc+Pj4WGfvSpUtMnTqVH374AYBy5crh5+fHgAEDUKlU2VydOfrejzNnwu3bAiFuUbHi52zaNMTstmkSiST3UKvV7Nq1i/Xr13Pw4EEKFy7MTz/9hIeHR76rgZlaj0GFCloaN/6eKVOGEhMTA0D9+vWZPXs23bt3N7tTkKWwDykkEonRJCcnU69ePdasWcPAgQMJCQmhXLlyZnvF7t27x4gRI6hduzY//PADhQsXZv78+YSEhDB48GCzDD2A4OBgHjxY87z5t8KJE3e4ccNPGnoSSR4lKSmJL774gho1avDee+/x6NEjwsLCAF18Wn4z9PT07QvnzsUwa9YcHj9+iW+/fZOYmBiaNGnCjz/+yNmzZ3njjTfsxtADG3n2JBKJeWi1Wn766Se6dOmCk5MTy5cvp2bNmtSqVQuAK1eu5Hjsp0+fsnz5cpYsWcLTp09RqVSMGDGCuXPnUqZMGbNlv3v3Lh999BFffPEFxYoVo1+/fpQoUYLmzZubPbZEIskdoqOjadCgAbdv36Z+/frs27fPrjxZ1iIyMpIVK1awdu1a4uLiAGjdujWzZ8+mTZs2ZofPWIv8/VeRSPIBR44c4ZVXXqFbt2783//9HwBvv/22wdDLKfr+uN7e3nz00Uc8ffqUbt26ERQUxLp168w29OLi4pg3bx7e3t5s2bKFsWPHcvXqVUqUKGHWuBKJJHeIj4/n119/BaBUqVL06NGDn376yS49WZYmPDyc8ePHU7lyZZYsWUJcXBwdO3bk+PHjHD16lLZt29qtoQfSsyeR2C3BwcFMmTKFn376iYoVK/LVV1/RsWNHs8cVQvB///d/TJkyhQsXLgDQoEEDli9fTqtWrcweX09sbCxLliyhc+fOLFy40Oy2aRKJJHd4/Pgxa9euZcWKFcTGxnLnzh1Kly7NqlWrcls0q3Pr1i0WLVrEpk2bSEpKAqB79+7MmjWLV155JZelMx5p7EkkdohGo6F79+7ExMSwePFiPvjgAwoUKGD2uIGBgUyePNmwOq9UqRILFiygd+/eZq/KxfNejzExMQghKF++PCEhIXbf+kgikWTMo0ePWL16NatWreLhw4d06tSJmTNnUrp06dwWzeokJiYyePBgtm3bhlqtRlEU3n77bWbOnMnLL7+c2+KZTP71uUokeYy4uDiWLl1KQkICKpWKXbt2cf36daZMmWK2oXf79m3ef/99GjRowK+//krx4sVZtmwZly9fpk+fPukMPbVazc2bNzl16hRHjx7l1KlT3Lx5E7VaneH4586d43//+x/dunXjyZMn3L9/H0AaehJJHkQ8b6MaHR3N/PnzadmyJWfOnOHgwYP5Ptb24sWL9OvXjwsXLrBp0yaEELz33nsEBweze/fuPGnogfTsSSS5jlqtZtOmTXz00Ufcu3cPb29v3njjDYtsEcTGxrJw4UJWrVpFYmIiTk5OjBkzhlmzZmXYbFsIwYULFwgJCQF0HkY9kZGRBAYG4u3tja+vL4qiEB0dzfjx49m+fTulSpXik08+oWbNmri5uZktu0QisS13795l2bJlREREsHPnTry8vAgNDaVChQq5LZrVOX/+PP7+/uzduxchBPXr12fw4MFMmzYtX4SgSM+eRJJL6Lc9X375ZYYPH06VKlU4ffo0b7zxhtljJyUlsWbNGqpWrcrixYtJTEykd+/eXL58mRUrVmRq6J06dYqQkBA0Gk0qQw8wHAsJCeHUqVMIIShYsCB//PEH06dPNxROtecgZYlEkp7k5GTGjBlD5cqVWbVqFU5OTgYvfn439M6cOUO3bt2oV68ee/bswcnJiZEjR+Lr68vGjRvzhaEH0rMnkeQq/v7+JCcns3fvXt544w2zDSUhBPv27WPq1Klcu3YNgObNm7Ns2TIaN26c5bUXLlwgKioqnZGXFo1Gw61btyhcuDB169bl0qVLuVoZXiKR5Jz9+/dz7do11q9fT//+/fONJys7Tpw4gb+/P4cOHQKgYMGCjBgxgokTJ1K+fHmOHTuWuwJaGGnsSSQ25NatW8yfP5+FCxfi5ubGt99+i5ubm0WMpd9//51JkyZx+vRpQNePcfHixXTv3j1bI1KtVhs8enpOnPBg587axMS4UrJkPH36BNGiha5gqrOzM9evX8fX11caehJJHuPy5cs8efKEV155hebNmxMbG8u1a9fw9PTMbdEszvbt/3W78PAQvPvuBX7/fSy//fYbAIULF2b06NFMmDAhX4efyG1cicQGPHr0iClTplC9enV27NjBH3/8AUD58uWNNpa2b4dKlcDBQfdz+3bd8WvXrnHjxg2aNm3K6dOnKV26NJ9++ilBQUG8/vrrRnkL9VXv9Zw44cH69Q2Jji6EEArR0YVYv74hJ054GM5RFCXddRKJxH4JCgrinXfeoWbNmkyYMAGAl156CQ8PD5sZepnpMWvNNWwY3LoFQsDt2wqLFlXht9/cKVasGHPmzDGUVsnPhh5Iz54kD6NWqwkLCyMiIoKkpCScnZ1xd3e3q36MQgjWrFnDvHnzePjwIe+99x7+/v54eHhkf3EK9EorPl73/NYtGDpU8OWXX3LkyBAWLlxIwYIFmTBhAlOmTKFo0aImjR8REZHKq7dzZ22SklJ/hklJjuzcWdvg3dNoNERERFC5cmWT5pJIJP9x8+ZNq+uw8+fPM2/ePL777jsKFy7M1KlT+fDDDy02vrFkpMeGDdP9ru85a0lmzBDEx6dd7BaiePF1hIZCsWLFLD+pnWIf/xElEhMQQvDs2TP2798PZJ8xmpsoisLp06epX78+S5YsoV69ekDqrYWKFSEgIGtlN3PmfwpSz7NnCj//3BJFUVOyZEmuXr2a42BqfbFQPTExrhmel/Z4cnJyjuaTSF5k9Fnvjx494sGDB1bTYUIIFEXhzz//5NixY8yZM4dx48ZlmKCVEyyhx+LjdcctaexpNBq++eYbbt/uBaT//GJji/EC2XmA3MaV5DH0GaOJiYlGZ4yag6n15gBOnTpF8+bNCQoKAmDz5s0cOnQolaGXcmtBv7rNajvj9u3MXqlIYGAglSpVMitrztnZOdXzkiXjMzwv7XEZryeRmEbKrHchhMV1mBCCY8eO8b///Y9169YBMHDgQG7dusW8efMsauhZSo9lrt9MIzk5mS1btuDj40OfPn2AjAeuWNEy8+UlpLEnyVPoM0azU4AajYaoqChDOzBTEUIQFBTE/v37CQwMJCIigujoaCIiIggMDGT//v0GY07P1atXefPNN2nevDk3b97k7t27gC7LK+XqPKvVbWaULv0sw+Oeng4WKfJZrFgxEhMTDc/79AnC2Tm1QevsrKZPn//es0qlkkWTJRITMSXr3RQdJoTg559/pkWLFrRp04aLFy/i6qrzxDs7O5sc2pEdOdFjmRlZ5hpfiYmJrF+/nmrVqjFw4EBCQkKoXLkygwZdx9U19f8KV1edB/JFQxp7kjxDZhmjo0Z1pnfvnowa1TlVAoF+dZyVFy6jOW7cuMEPP/zA5cuXs/UexsXFIYRgypQp1KpVi19++QU/Pz+uXr1Khw4dMpzDlNVtcHAwXbp0ISpqMPA01WuWUFpXr14FoEaNGqlihFq0CGP48LOUKvUURRGUKvWU4cPPGuL19JgaeyiRvMhYU4cNHz6cTp06cevWLdasWcONGzcYMGCANd4GkDMvXUCATm+lxBw99uzZM9asWYOXlxcjRowgNDSU6tWrs3XrVq5evcoXX/yPDRsUPD1BUcDTEzZssE58oL1jk5g9RVE+BIYAAggCBgohEmwxtyT/kFnGqD6RQJ8xCqQySsLCwrJNIkjZOSK7FbcejUaDWq3mwoULFChQgCFDhjB37lzKlCmT5XUVK+q2PDI6rufu3bvMmTOHTZs2odVqKVKkCJ06/cIff3Tnzh0Ho+JjsiIoKMjQIzc4OJhq1apRq1atVO+/RYuwdMadHpVKhbe3t90kwkgkeYG0Ouz48QqsX18vRzpMo9Gwd+9eWrduTenSpenTpw+NGjXi/fffTxeWYQ2M0WNp0esrU+L8MiIuLo7PPvuMZcuWERkZCYCvry+zZs2iZ8+eqFSqVHO+iMZdWqzu2VMUpTzwAdBQCOELqIB3rD2vJP9hSsaoHn3GaFak7RyRlqxW3kIIQkJCmDNnDuvWrcvW0IOsV7dxcXF89NFHeHl5sXHjRhRFYfTo0Vy7do3du9/g9m0HtFoIDc2ZAouIiGDw4MG8/PLL/PnnnyxatMhQcsHX1xc3N7dUijIjVCoVbm5u+Pr6mi6ARPICk1aHbd9ey2Qdplar+fLLL/H19aVXr15s3rwZgDZt2jBkyJBMDT1LlzzJqZeub1+d/sqJHouNjSUgIIBKlSoxefJkIiMjqV+/Pvv27eOff/6hd+/e2eqvFxVbLcsdgYKKoiQDrkDW/30lkgywVsZoZjE0J054sHlzXeLiXNBndJnjPdST0erWz0/D06df4OU1x7BSfeONN1i0aBHVq1c3atzsePLkCbVq1eLp06eMHz8+XX9cRVFo1qxZpr1xHR0dEULYTaazRJLXSKvDoqMLZnheZjps8+bNBAQEcP36dWrXrs3XX3/NW2+9leWc27fDuHEQE/PfMUuUPLGUl84YHjx4wKpVq1i9ejWxsbEANGnShFmzZvHaa69JXWQEVjf2hBDhiqIsQ5cW8ww4JIQ4ZO15JfmPjDJGo6MLpTvPlIzRzGJotmypx5MnzmSUtm+JenP6rQV9f9ypU6dy8eJFABo1asSyZcto0aKF0eNlhlqt5uDBg3Tr1o0iRYqwZs0amjVrlqmsiqJQu3ZtfHx8DDUMk5OTcXJysrsahhJJXiOtDitV6hn376dftGamww4cOEDx4sX57rvv6NatGw4OmW/OZWTkpcQSJU+svUUaFRXF8uXLWbt2LXFxcQC0bt2a2bNn06ZNm3xv5D17lnFiXk5QzC1Nke0EilIC2AP0Bh4B3wDfCiG+SnHOMGAYQOnSpRvs3r3bqjIZS1xcHIULF85tMaQcz0lKSiI+Pt5QO+q338qzbl09EhP/Mz5cXNSMHBlIy5Z3AJ3x4urqmunWRsoxQRdDk3bMjFAUwZ4936EoCkIInJycTP5s4uPjuXPnDk+ePHkuuwvly5enRIkSJo0DGf9tYmNjuXPnDgkJCfj4+Bgy86xNbt8netq0aXNOCNHQVvNJPSblyA5j9E1aHSaEwMXFhUKFCqHVarM08PQcPuzGsmXVSUzMektTUQRHjvxmd3+b5ORk7t27R3R0NFqtFoCiRYtSrlw5m8mZm59JYmIi9+7dIzY2lnHjxllEj9liid4OuCmEuA+gKMpeoClgMPaEEBuADQDVq1cXrVu3toFY2XPs2DHsQRYphw61Ws3+/fvRaDQ4OjrStGkoGo0mXf/Wpk3D0CevqVQq2rZtm6k36tSpU4ZtAYCvvqqZraEHupW3Wq3G0dERtVqNm5sbzZo1M+p9hIaGMnPmTHbs2AFAiRIlmDVrFkOHDsXFxcWoMdKS8m/z119/MXnyZH777TdDf1xbbnXk9n2SW0g9JuXIjpQ6DKBlyzvZ6rDk5GSqVq1qUomlAQMgRSWlTKlYUaF169Z287c5dOgQX3/9NZs2bTJseXfv3p1Zs2bxyiuv2FSW3PpMjh07RufOnXF2dmbo0KEWG9cWxt5t4FVFUVzRbeP+Dzhrg3kl+QxHR0e8vb0N8WRgfsaosXGAKclpvblHjx6xYMECVq9eTWJiIs7OznzwwQfMmDEjR968jEhISKBLly4oisLatWsZMmSILHwskdgJKXWYMVnvALVr16Z27dqZvp4RxhQptqd6cyEhISxcuBBfX18+++wzFEXh7bffZubMmRapI2rvnD9/noiICDp37kyzZs346KOPGDZsGGXLlmXNmjUWmcPq2bhCiD+Bb4G/0ZVdceD56lciMRV9xmh2XipjM0aN7RyhQ1CkSKLJ9eaSkpJYtWoVVatWZenSpSQmJvLuu+9y5coVli5darah9+DBA+7du4dGo6FAgQJ8//33XLt2jZEjR0pDTyKxM0zJei9XrlyOst6zK1JcsqR91Ju7ePEiffv2pUaNGmzevBkhBP369SM4OJjdu3fne0PvzJkzdO/enXr16jFp0iRDSNCcOXMoW7asReeySVFlIcRHQogaQghfIcR7QggjHMwSSXr0GaMuLi6oVKp0CtPR0dHg0WvWrFm2RqG7u3uqczLqHAGCwoUTGDv2T774Yn8qQ09RlEy9h0IIvvnmG3x8fPjwww958OABrVq14q+//mL79u1UqlTJ5PefksTERFasWIGXlxfh4eGcOnUK0GWpFSlSxKyxJRKJddDrsHLlygE6b3xKTNVhGZFRWRTQGXlffQXR0blr6AUGBtKzZ09q1arFjh07cHBwYPDgwfj6+vLll1/i4+OTe8LZgMDAQDp27Ejjxo05deoU8+fP5/Tp01YNtZFpdZJcQ61WGzI+k5KScHZ2NirjU1EUChYsSPv27c3KGL158yazZ8+mY8eOFChQAPivnEraGJqMtllUKhWOjo4ZrrxPnTrFpEmT+OOPPwBdh4olS5bQtWtXs7/QWq2W3bt3M2PGDG7evEnHjh2pWbMmLVu2NGtciURifR48eMCcOXPYuHEjCxYsIDo6mpYtW1KgQAGLZb3bsiyKKZw5cwY/Pz8OHDgA6JLSBg8ezNSpU6lYsSLHjh3LXQGtiBCC5ORknJ2diYqK4vz58yxatIhRo0bZZHEujT2JzUnZrQJS13KLjIwkMDDQqFpujo6OVK5c2aSSJ6BTtgEBAaxZswZHR0eaNGlCoUKFjI6hURQFBwcHvL29iYmJSSXj1atXmTZtGvv27QOgTJkyzJs3j8GDB1usZIlWq2X+/PkULVqUQ4cO0b59+3ytJCWS/EBiYiIuLi64uLiwb98++vXrR61atejYsaNV5rOnzhEnT57Ez8+PQ4d0VdcKFizIiBEjmDRpUr7vry2E4ODBg/j5+dGiRQuWLFlChw4dCA0NpWDBjOssWgPZG1diU9J2q8iq7+ypU6ewRmmgMWPGsHLlSvr168fVq1cZNWqUUTE0oFuJ1q9fn+7du6cKmr5//z5jxoyhVq1a7Nu3D1dXV+bMmUNISAjDhw8329C7fPky/fv358mTJzg6OvLzzz9z7tw52rdvb9a4EonEuly+fJn333+funXrolarKVSoENeuXWPjxo05zr7PCwghOHz4MK1ataJFixYcOnSIwoULM3XqVEJDQ1mxYkW+NvS0Wi179+6lQYMGdOnShbt371KzZk3gv90pWyKNPYlNyaxbRVo0Gg1RUVFcuHDB7DmFEOzatYvr168DMH/+fM6fP8+mTZuoUKGCIYbG29s7yzjAGjVq0K1bN6pUqWIw3rRaLQsXLqRq1ap8+umnaLVahgwZQkhICPPmzTPbPR8ZGcnIkSPx9fVl3759/P3334AuIUS2BZJI7JegoCDeeecdatasybfffstrr71miM+z9T96W6IvFN+kSRPat2/P8ePHKV68OHPmzOHWrVssWrQINze33BbT6kyZMoW33nqLJ0+esGnTJkJCQhgwYECuySO3cSU2I7NuFZnFx+k9fD4+Pjn2jB0/fpxJkybx119/MXHiRJYtW4aXl1e680ztHKHRaPjqq694/PgxM2bMAOC1115jyZIlFukZq9FoWLhwIYsXL+bZs2eMGDGCOXPmvBBKUiLJa2zfnjo+7v33L+PnV8fgyfrwww/z/XdXq9Xy3Xff4e/vT2BgIAAlS5ZkwoQJjB49mmLFiuWyhNYlOTmZHTt20KhRI3x8fBg0aBD16tWjd+/edtF1KPclkLwwhIWljoM7ccKD9esbGhqBZ9Z3NjQ0FJVKlSqRIykpyVDUOCMuX77MtGnT+P7776lQoQJbtmyhX79+2cpoTBzgL7/8wuTJk/nnn39YtmwZdevWZdmyZfzvf//LdnxjUalUHD9+nPbt27Nw4UKL9ceVSCSWZft2XZ/Z+OdVm27dguXLq9O374+sXv1qqv7T+RGNRsM333xDQECAYSembNmyTJ48meHDh1OoUPqWlvmJxMREtm7dyqJFi7h58yZTp05l0aJF1KxZ07Btaw/IbVyJzYiIiEjl1du5s7bB0NOj7zurR6PRcP78eQIDA4mIiCA6OpqIiAji4+PZv38/QUFBbN8uqFQJHBygUiWd8l23bh1HjhxhwYIFXL16lf79+5u97fnvv//SqVMnOnTowD///IOHhweVK1fm3LlzmRp627eTTrbM+Pnnn2nUqBG3bt0CYP/+/ezdu1caehKJnSKEYMKEZwZDT098vMLJk51NMvRM0RW2JiPZkpOT2bJlCz4+PvTp04cLFy7g4eHBmjVruHHjBhMmTMj3ht7nn3+Ol5cXw4cPp3Tp0vzwww8sXLgwt8XKEGnsSWyGsd0q0h4XQqSL8dMf++KLZwwerOXWLRBCt6oeNgxq1Qrg2rVrTJ8+3ez4mPDwcAYNGkTdunX5+eefKVq0KIsWLeLKlSu89NJLmfaq1K/408qWVon/888/dOjQgU6dOhETE0NERASAoRyMRCKxP86cOUOLFi2Iiso4ycKYLhZ6jNUVuUFGsg0alIy7+yQGDhxISEgIlStXZsOGDVy7do0xY8bk65jElL2NL1++TOXKlfn555/5448/LFJay1oYZewpinJHUZQJaY7VVhQlQVEU+/FTSuwaY7tVZN3FIjXbt9dK1+w7Ph4WLChsdozMkydPmD17Nt7e3mzevBmVSsXYsWO5fv06U6dOzVahzZxJBit+3XHQGaxDhgyhXr16nDt3jpUrV3Lx4kWaNGliltwSicQ6CCGIf/6lTk5O5vbt25QoEZfhudl1sUhJdroiN8lItqQkJ6KjP6R69eps27aNq1evMnTo0HQ6Pj8RGxtLQEAAFStW5NdffwVg0aJFHD9+nA4dOtitkafH2Ji934G0XYhXARuFEBctKpEk3+Lu7k5kZKTBS9enT1CqmD1I33dWT9pEjn79LtK0aWim3kFTVtVpSU5OZuPGjcydO5eoqCgA3nrrLRYuXIi3t7fR42Qmw+3bAlBQFIVChQoxceJEi/bHza/ktAi3RGIuGo2GvXv34u/vT9OmTVm3bh3NmjXj+vXr7N7tlCpmDzLvO5s2kaNfPzdat85KV1jl7ZiEXl+lRVE8CQ4OzvdVAWJiYvj4449ZvXo1sbGxdO7cmdKlSwPkqB1lbukxU4y9UfoniqK8AdQDellBJkk+xcPDw5ClBcZ3q8gokWPdunpoNBpKlownOjp9XIgpq2o9Qgh++OEHpk6dyuXLl4E+ODsvJzm5LGfPKpw5AybYelSsqNvySIui3OGPP8J59dVX+fjjj00X9AXDUkW4JRJTUavV7Ny5kwULFnD58mWqV6+eqlONk5OT0d0qMkrkWLasOj4+meuKnOixtKQ1MI3tpBEbG8uaNWtQlP4Ikb73d8WKSr439IQQNGnShJCQEHr06MGsWbOoX79+jsfKTT1mrLH3B7BcUZSXgKfAMmC+ECLG4hJJ8i2Ojo54e3unKr+SXbcKyDiRIzFRl8iRkXcws1V1Vvz1119MmjSJ48ePA+DmNp5Hj5YaxtXH0IDxVekDAki34oenVK++lcKF3zBNwBcUfRHuzGoz6o+FhIQQGxub416iEklKhBAoisKMGTNYunQptWvX5uuvv+att97K0MAxpltFRtuhiYkqZs7MWFfkRI+lJSMDMzs9FhMTw6pVq1izZg2xsbHARRwcvkCr/S9sxRKy2Svh4eFs2LCB1q1boygKq1atomLFimaV1LIHPWZsgsY5IAloCIwH1MCnFpVE8kLg6+trdLcKPVklcrRoEcbw4WcpVeopiiLw9IQNG4w3yG7evEmfPn1o1KgRx48fp2TJknz88ccUKLAinYFpagxN376wYYOgYMEoQIujYzgTJ14lOHimRWrxvQjkRhFuyYtLQkICn376qaF4+YgRI9i3bx/nz5+nV69eZnmystqq1ekK8PQERcFkPZYZpsQCRkZGMmXKFDw9PfH39yc2NpbWrVvz669D2LatgMVlszdu3brFqFGjqFKlCgEBATx9+hSAzp07m62v7UGPGeXZE0IkKooSCHQD+gPvCiGSLS6NJN+j71aRmTvb0dERtVqd6prMtmr1iRx676C7uzvNmjUzSg59f9xPPvmEpKQkXFxcGD9+PNOnT6dYsWKMH5/xdbdu6UoPZLcVcuvWLTw8POjb14EnT/bi4ODAoEGDcHQsb5R8ktwpwi15MXn69CkbNmxg6dKl3L17lylTptCgQQOqVKlClSpVLDJHdlu11uhlm5mBmVKPtW4dTlhYGJ07d+bZs2cAdOzYkVmzZtG8eXPDNfnNuNPz5MkTxo8fz7Zt21AUhYEDBzJt2jRDCSxzsRc9Zkrpld+B0cDvQogDFpNAYteo1Wpu3rzJqVOnePLkCadOneLmzZvpDDJT0Her6N69O/Xq1cPd3Z3SpUvj7u5O3bp1qVevXqoVdJ8+QTg7p57PxSV1IodKpTKqz2JiYiLLly/Hy8uLFStWkJSUxHvvvcfVq1dZtGiRocp7VrEyWZVFiImJYfz48Xh7e7N7925A5x0YNmyYNEBMJLMi3NHRhRBCMRThPnHCI8vrJJKs+PTTT6lcuTITJkygRo0a/PrrryxatMji8wQE6LY/U+LiorHqdmh2emzAgEQ8PacTFRXFs2fP6N69O2fOnOH//u//Uhl6+ZGHDx8CUKhQIYKCghg1ahQ3btxg/fr1WRbVNxV70WOmGHvnAS0wIZvzJPkAIQRBQUHs37/fUNBYrVYTERFBYGCgoaCxvt5QTtB3q2jWrBmtW7emWbNmREVFMXToUJKT/3Mcp92qLVXqKSNHBqaL9fPwSB9EnPL97Nq1ixo1ajBp0iQePnxI27ZtOXfuHNu2baNiGq2YkWJOSdqtkISEBJYuXUrVqlVZs2YN77//fqpAbonp5LQIt75OoUSSGQ8fPkSr1QK67csGDRpw8uRJjhw5Qtu2ba0S95nRVu2kSVes6jHLTo+p1S5oNPMpUaIE58+f5/vvv+eVV9IW3shfnD9/np49e+Ll5UVsbCwODg788ccffPzxx1SoUMHi89mLHjPF1dAXWC+ECLaoBBK7IzeCSa9fv86MGTPYvXs3ZcqUQaPR4OTklGkih267V/e7SqXC29s7U89Zyv64ALVq1WLJkiW89tprmcqdMsMuM29+yi2S1157jWPHjtG5c2cWL14sY/IsQE6LcKdcKEgkKbl//z7h4eF0796dL7/8ktdff525c+dmWhjd0qTdqj12LAqwXqna1Hos8xIqVapU4eWXX7aaHPbAmTNn8PPz48CBAxQtWpSxY8caXrPm399e9FiW71BRFAdFUcooijIVqA3MMnUCRVGqK4pyPsXjsaIo43Mor8QG2DqYdMOGDfj4+HDgwAHmzJnDtWvX6NOnj1GJHCqVCjc3twyNq8uXL/P666/TqlUr/vrrL8qVK8fGjRv5559/6Ny5c7YGat++EBqqW4FnhJtbgsGzOW3aNA4fPsyPP/4oDT0LkdMi3DmpfSXJ39y9e5eJEydSqVIl7t27x2uvvWaomWkrQy+3qFXrPA0b9gQyXrVWrJj/s9cvXbpE48aNOX36NPPnz+fWrVv4+/sbwnasib3osezu8pbAXWAA8JYQ4qGpEwghrggh6goh6gINgHhgn6njSGxDZsGko0Z15q233mDUqM6pYgv0waSmxvAlJCTw4MEDABo2bEj//v0JCQlh3rx5FC5c2JDI4e3tjUqlSmf0KYpi8Oil9SxGRkYycuRIfH192b9/P4UKFWLu3LmEhIQwePBgkzPqMtoKUakSiIwcxP379wFdQHNm/XElOcPd3T3b2M20RbiNjd2UvDgIIfjf//7HypWRKMotJk+ewJ9/fk1gYP5u/nTmzBm6detGvXr12LNnDyrVRzg6JqY6J7+WUBFC8Ouvv7Jy5UoAfHx82LlzJ6GhocyePZvixYvbTBZ70WNZGntCiGNCCAchhI8Q4rQF5vsfcF0IYZk0F0mWpEyuOHr0qFHJFdYOJtVqtWzfvp0aNWowYYIu/LN+/fp8/vnn6W7urBI5XF1d6d69O7Vr1zYYevHx8fj7++Pl5cVnn32GEIJhw4Zx7do1Pvrooxw35dbH2lSooAYEcAsnp9EsWvSyoZK6xPKkjcHMKHZz+PCzJsVuSl4Mbty4wYQJE0hISEBRFN5881tcXLbx9GkphFDsqvespTlx4gQdO3akcePGHDhwgIIFC/Lhhx9y+/ZCtmxxydclVIQQ/PjjjzRt2pR27dqxevVqEhISAHjnnXcoUqSIzWWyFz1m6/TAd4CdNp7zhcOcSt2mBJOmTBWPiIjINIPpvwruAienSJKSfqRevZd4//33jXo/+kSOlOMfO3bMEKOn0WjYunUrs2fPNgS1du3alcWLF1OzpmVW7337wrZtXbh37wijRo1i9uzFlCpVimPHjllkfEl6TC3CnV3spiT/c/nyZRYuXMj27dtxdHQ0hHF89VVNnv/PN6BPsjLW2MlpJwpboPdk+fn5GQrDFy5cmDFjxjBhwgTDotQa5V3shXPnzjF06FACAwPx9PRk3bp1DBw4EBcXl1yVy170mGJONqVJEymKMxAB1BJCRKZ5bRgwDKB06dIN9CUrcpu4uDgKFy6c22IYJUdSUhLJyclotVq0Wi1CiCwzZRVFwdHRMd24T548SeX5e+utNxAio6BewZ493xmeOzk5ZSjj4cNuLFtWncTE/9zYLi5qJk26Srt2UVm+p6zQfyaPHz/mzp07hvpQrq6ueHh4WOzvFh0dTfHixXF0dDR4CVIqj7x0j9gKS8sSFxeHWq02+X5u06bNOSFEQ4sJkg1Sj5kvR0o95uDggJOTU7qYp4zQarWEhoby8OFDHBwcKF26NGXKlDHEPbVt2ypTPXbkyG/Zjp+xHtMwadIVi+gxc4iNjeXu3buGIsAqlYoyZcqYVLw+L90jaVGr1Tg6OpKUlERISAhly5blpZdeMjtpML/pMVsae68Do4UQHbI6r3r16uLKlSs2kSk7jh07RuvWrXNbjEzlyMqDZwz6FUTt2v+lfJ86dSpVyveoUZ0zLGhcqtRT1q79yfA8o4LG9+7do0GDkkREpA809fTUJT/klIMHD7JixQoOHz78fDxPunTZzoEDTQkLU8xaeQshOHjwIFOmTCE4OJhFixYxderUDM+193skN7C0LFnd546OjgghMvRUK4piU2MvJVKPGS9HVn9fvbGS2U7E3bt3KVeuHEIIOnbsSIMGDVJ5svRUqpRxVr2xesjc6zMj7WdirPdQq9Wyb98+/P39OX/+PAClSpXiww8/ZPTo0SYnHtj7PZKW5ORktm/fzoIFC6hatSoHDx4E/mtzZ0tZjCW39Zgt9zv6ILdwLUZ25VH0mFqp293dncjISMOYGfWezS6Y9OnTpyxbtoylS5fy9OnjDOXKrLJ7doSFhTFr1izq1KnD4cOHKV68ODNnzqRUqQ8YPdrZpB6QGREYGMikSZM4cuQIXl5efPvtt7z55ps5E1ZiEfSxmz4+PoSFhREREUFycjJOTk64u7vj4eEht27zKMaWefrii2fs2pVIVJQLFSsqDBhwlTNnxvPbb78RGhpK6dKl+fnnnzP9R29u79msWp1ZCmP62Go0Gnbv3k1AQADBwboqaGXLlmXSpEmMGDEix3HJeYXExES2bt3KokWLuHnzJnXr1mXIkCGG1+25L3Zu6zGbaEhFUVyB9sBwW8z3ImBMeRR9coXeUNMnVwCp4gXCwsIM8XAeHh4EBgYaXtOfl5nBqMfDwwO1Ws3mzZuZM2cO9+7do2fPnpw+rSEiIn0eUFaV3TMiNjaWxYsXs3LlShISEli+fDnjx49n1qxZlCxZkkqVsu4BaWyszfLly/nnn39YvXo1w4cPN2oLSWIbMordlORtjNdj9Q167NYtmDevPIULezBr1iwKFiwIZP2PPmW9udu3BRUrKiZ5/rNrdWYJsupjq9GomTAh4XkttiZAHTw8HjN16lQGDRpk+AzyO2vWrGHy5Mk0atSIjz/+mK5du9q1gZcRuaXHbGLsCSHigZK2mMvWqNVqg5WelJSEs7Oz1a10Y3vt5SS5Iqtg0oz61qYMJv3kk08YO3YsTZs2Ze/evTRp0iTdahVMW1EnJyezfv165s2bR3R0NAC9evWiVq1ahmxeyLoHZFar5djYWBYuXEifPn14+eWXWbFiBZ9++qlN6i9JJPZCXtNjUIgSJdYxfbrxNfL0yQnHjv1m8vacuZ5BY8hchwkGDEhCCH0cVyWcnbfi56fQv3/+9mjHxcXx2WefUaNGDbp27cqQIUOoU6cO7du3z3NGXm6Tv+8UK2JOxqu5ZFYeJa0HLykp4+Dc7Cp1+/r6Ehsbm+2KW6VS4eLiQkxMDAADBw6kQoUKvP7664b3nHpFbXwWmxCC7777jqlTpxo+4+bNm7Ns2TIaN26cLgs2s5W3SpXxannGDEFMzBrmz5/PgwcPcHNz4+WXX8bNzS1rwSSSfERe1mN37tiuGHJO9ZgpZKbDQIMQqXV2UpITH30E/ftbbn57IjY2lk8++YSVK1cSExPDmDFj6Nq1K8WLF6dDhyzD/iWZkL9Lh1sJfZyJflWa1iDSHwsJCeHUqVNm9Y/NCGPLozg4ZDxvdpW6syto7OjoiIODA5cuXaJbt25Mnz4d0DWUfuONN9L9U9B3otBqdT+zU5B//PEHLVu25M033yQkJIRq1aqxb98+jh8/TuPGjTO8JqPCx66ukJmtevu2YNy4cdStW5dz586l8hLmJjmpjSiR5IS8rscsuYVqDKbqMVMJCICCBdO+16dAxsauJeMF7Ym1a9fi6enJrFmzaNy4Mb///jtr1qzJbbHyPNKzlwNy0k4sZcaruRjba0+rVXB2VpuUXKEno2DShw8fUqJECc6cOYO/vz/JyclMmTLFYOyZy/Xr15k+fTrffPMNoMsumzdvHkOHDs22dUxmK+/Mets6Od3j++9/olOnTnaxHZCbHhbJi0le1mP5rfNDbGwsoaGf4OBwC5gBVMTZOZJRo+6wd2/DDA07Wxu71iQqKspQbsTV1ZW2bdsya9Ys6tevn8uS5R+kZ89Esmon1rt3T4u1E8sKY3vtlSoVb3albn0wabNmzShcuDARERFMmzaNN954gytXrrBo0SKz49tiYmIYP348Pj4+fPPNNxQoUIAZM2Zw/fp1Ro0aZXSPwIxW3gEBUKCANtV5rq6CL74oy2uvvWYXhlNue1gkLx55WY+VKZOQbzo/aDQaZs+ebfBkPX36OU2avMuPP/4fCQllWbnyFRYsUDLctcgPxm54eDjjx4+nUqVKbNiwAYABAwawd+9eaehZGOnZMxFj40wg84xXczGlPIq5lbqFEOzZs4e4uDgqVarEO++8Q506dfD19TX7fSQkJLB69WoWLFhAbGwsiqLQv39//P39qVChgtnj379/nz/+mE9i4iMUJQAhPPD0VAgIUOjbN/eNPD257WGRvHjYgx4rXbo0d+7cwcFB53MwRo+pVCrq1auX5zOyIyMjWb58OeXKlcPf3x+ANm3aMGvWLNq0aZNqEWqLeEFbExoayuLFi9m0aRMajYb33nuPLl26EB4entui5VukZ89ETGknpkef8WopctprLyUqlQo3N7csjbbTp0/TrFkz3n77bb744gsAHBwczDb09P1xq1evztSpU4mNjaV9+/YEBgayZcsWixh669evx8vLi3Xr1jFsWCEiIpwRQrFKrI052IOHRfLikZt67OnTp6xYsYJ27dql2sp9EXof6z1ZlStXZunSpWi1Wjp27MjJkyc5cuQIbdu2zXC3wdrxgtZg+3ZdMWoHB93PlH2IBw4cyBdffMGAAQMICQlh8+bNeHt755aoLwTSs2cixsaZZJfxag6m9tpLe21mlbr1XL9+nSlTprB3717KlSvHxo0bGTBgACdOnDBb9qNHjzJp0iT+/vtvAGrXrs3SpUvp2LGj2WPrW8U5Ojri6OhIq1atWLx4MT4+PmaPbS3swcMiefHITT22adMmJk6cSNu2bSlRogRJSUn5vvdxSk+W/rPv3r07Pj4+TJw4MZelszwZFYju3z+R2NhnjBpVnDVr1lC8eHGLLOwlxiE9eyZibJxJdhmv5uLr62tU70N9L9dSpUrh7u5O3bp16d69O7Vr1840Xu3u3bscOnSI+fPnExISwuDBg43usZgZFy9epGvXrrRt25a///4bd3d3Nm3aRGBgoEUMvV9//ZWGDRuybt06AAYNGsT+/fvt2tAD+/AUS148bKnHHj58yLx583j48CEAgwcP5uTJk/z666906dLFKD1mzE6EPRISEsKgQYPw9vbms88+Izk5mbfffpvz58/z/fff45o2GC+fkFGBaI3Ghblzdfedr6+vNPRsjDT2TMTd3T2VYurTJwhn59RbasZmvJqDMeVRVCoV1atXp1u3brRp04ZmzZpRuXLldCvjZ8+esWjRIkNWbfPmzQkLC2P27Nlmt9+5e/cuw4YNo3bt2vz4448ULlwYf39/QkJCGDhwoNlG5IULF+jcuTPt2rXjwYMHBgViD4kXxmAPnmLJi4ct9Nj9+/eZMWMGnp6ezJ07l7i4OECXbanvo22sHvP29qZZs2Z55nsdHBxM3759qVGjBps3b0YIQb9+/QgODmb37t34+PjwzjvvcP/+/dwW1Srcvp1xEll0dP40bvMCec8fnsuY007M0pjba0+r1fLVV18xa9YswsLC6NGjB1qtFgcHB4oXL26WbHFxcSxfvvx5f9ynqFQqRo4cyUcffUSZMmXMGlvPokWLmDlzJkWLFmXJkiWMHTuWAgUKWGRsW5GRhyU6Or2BbW1PseTFwtp6bPXq1UyfPp1nz57Rs2dPZs2axYMHDzI8N7d7hlqS8+fP4+/vz549ewCdsTpw4ECmT59O1apVDectWrSIr7/+mtDQUN5+++3cEtfiXLx4kZo1a1KxomL19nIS08gb3yA7wtR4OUVRqFq1qnUbHOeg19758+cZNGgQgYGBNGzYkC+//JJWrVqZLUva/rgAr7/+OosWLaJGjRpmj//kyRND6ZFGjRoxbtw4Zs6cScmSebMbnymZ1Xqs4SmWvFhYQ4+FhYVRtGhRihUrRvny5XnrrbeYPn26IZQibdebjGTKq72Pz5w5g5+fHwcOHADAxcWFIUOGMHnyZDw9PVOdm5SUxGeffQbA2bNniYiIyNPfZyEEv/76K35+fhw/fpygoCACAnyt3l5OYhpyGzcHGBsvB7ovwrVr1wgKCrKL+mh6xV60aFGePn3K9u3b+fPPP8029IQQ/Pjjj7z88ssMGzaMe/fu0ahRI44fP853331ntqGnVqtZv3493t7ezJs3D4C2bduyYsWKPGvoQc4zq/NyRqLEPrCUHrtx4wbDhg2jatWqrF69GoC33nqLbdu22X3MrLkcP36cDh060LhxYw4cOICrqysTJkzgxo0bfPLJJ+kMPYAtW7Zw9+5dQLe7snjxYluLbRH0Or9p06a0b9+e69ev8/HHH1OlShX69oUNG8DTExRF9zO/1EbMq0jPXg7Qx5noOx5otdosDTmtVktISAixsbG5FncSERHBnDlziIqKYv/+/VSpUoVLly4ZalyZw99//82kSZM4evQoAJUrV2bhwoX06tXL7PcqhODAgQNMnTqVS5cu0bx5c3r16sWzZ8/MltseMNXDkpczEiX2hbl67MqVKyxYsIAdO3bg6OjI0KFD6Z9fm7WmIK0nC6Bw4cKMGTOGCRMmULp06UyvTUpKIiAggDp16vDvv//y8ssvs2HDBqZNm0a5cuVs9RYsQkxMDG+//TZubm6sW7eOgQMH4uLiYni9b19p3NkT0rOXQ/RxJinjMLIiZUFcW/LkyRPmzJmDt7c327Ztw8vLy1CjzVxD79atW/Tr148GDRpw9OhRSpQowfLly7l06RK9e/e2iFE7d+5cunfvjkajybY/bl7FWA9LXs1IlNgv5uixCRMmsGfPHsaNG8eNGzf49NNPqZiPg7LSerKOHz9O8eLF+eijj7h16xYLFy7M0tADnVfv9u3bjBo1CoAWLVqQnJycJ7x7Go2GnTt3MmDAAIQQlCpVimPHjhESEsKIESNSGXoS+0O6B8xArVZz/fr1VKvhEyc8Mg1y1mg0XL16FR8fH5t4Zv78809ef/11IiMj6d27NwsWLKBKlSpmj/vo0SMWLlzIxx9/TGJiIs7OzowdO5aZM2dSokQJs8cPDQ1FURQ8PT159913KVOmjFH9cfMqaT0skLo3rjG1ESWSnJITPRYSEsLHH39M8eLFszVw8jparZZ9+/bh7+/P+fPnAV3f7gkTJjB69GiKFi1q9Fhr1qyhcePGNG/eHIASJUrQv39/PvvsM5YsWZIuYcseSE5OZseOHSxYsICrV69Ss2ZNoqOjKV26NI0aNcpt8SRGIo09M8hJQVytVsvt27ctYnRlhBCCmJgYSpUqRY0aNWjcuDEzZsywiDdMCMHHH3+Mn58fMTExAPTp04eAgACLBFU/fPiQBQsWsHr1anr06MGuXbuoXr061atXN3tseyc/ZSRK8hY5Lezt6OiYrw09jUbD119/TUBAABcvXgSgbNmyTJo0iREjRuSoLNW0adNo1KhRqtJJixcvpn79+nb5/Q4ODqZr166EhoZSt25dvv32W3r06GGR8B+JbbG/uysPYUpB3JRK8sKFC9y9e5ekpCScnZ0t9s/8r7/+YvLkycTExHD+/HmKFSvG999/b9aY8F9/3Hv37jF+/HgAWrVqxbJly2jYsKHZ4ycmJrJ27Vr8/Px49OgRAwYMYP78+WaPmxfJyxmJkrxJTvSYvrB3frxPk5OT2b59OwsWLDB42j08PJg6dSqDBw82q7xT3+dBbHrjEXRewtGjR5sntAV59uwZ169fx9fXlypVquDr68vq1avp2rWr3FXIw9jEPFcUpbiiKN8qinJZUZRLiqI0scW81sbYgrhpC0kmJiYSERFBdHQ0ERERBAYGsn///hxn7IaGhvLuu+/SqFEjLl68yMiRIy2W+Xvq1CmaNm3K22+/TWJiIjVq1GD//v0cPXrUIoYe6GpOTZgwgVdeeYXAwEA2bdokq6tLJDYip3osvxX2TkxMZP369VSrVo2BAwcSEhJClSpV+Pzzz7l27RqjR4/Oc3U8TSEuLo6lS5dSuXJlunXrhlqtpmDBgvzwww9069ZNGnp5HFt59j4G/k8I0VNRFGcgX5TRNrYgLui2RjLLsNSvqnOSsfvHH3/QqlUrVCoVM2fOZMqUKSbFkGRGSEgI06ZNY+/evQC4ublRsWJFgoKCLLLdcOLECVxcXGjUqBFjxoyhSZMmdOjQwexxJRKJaeRUj+WXGNr4+Hg2btzIkiVLCA8PB6B69erMnDmTPn362OX2qiWJjY3l3r17VKpUiZiYGNq1a8fs2bPz/ft+0bC6Z09RlKJAS+ALACFEkhDikbXntQVpC2HqCt9m5FFTUvU2zQxjM3YTExP5999/AWjYsCETJ07k6tWr+Pv7m23o3b9/n7Fjx1KzZk327t1LwYIFmTVrFteuXaN06dJmK4ArV67wxhtv0LJlS/z8/AAoWbKkNPQkklxAo9EQHh6eyrtnjB7LD4W9U3qyxo0bR3h4OLVr12bXrl0EBwfz3nvvvRAGz5EjRwgPD+fVV1/l999/55dffqFly5a5LZbEwijWLvSrKEpdYANwEXgZOAeME0I8TXHOMGAYQOnSpRvs3r3bqjIZS1xcHIULF87yHH1zbz1vvvkGkN4rpyiCPXu+A+D48Qps316L6OiClCr1jL59g2nZ8k6Kc5VU7cpSyvHw4UPCw8PRaDTUrl0700DZw4fd2LixClFRLri5JTJkyA3atYvK9H0IIYiMjOTevXsGT2OpUqVwd3c3rOCN+TwyQ61WExERwf3793FwcKBcuXK4ubnlONDXHFksiZQjPfYiS5s2bc4JISwTa2AEeVGPaTQaLly4gIeHR6rdhOz0mKIonD1bzSQdk5P7wlQ9ZgxPnjwhLi6OqKgoQxkqV1dXypUrZ3abSGMJDQ1l4MCBTJkyhddee80mc+pRq9VERkbi6OhoaF35+PFji+wImYu96A6wH1kspseEEFZ9AA0BNdD4+fOPAb/Mzq9WrZrIjOTkZHHjxg1x8uRJceTIEXHy5Elx48YNkZycnOk15nD06NFsz/npp5/E7t27DY9SpeIEiHSPUqXixO7du8XYsb8LZ+fkVK85OyeLsWN/N4yxZ88ecePGjVRynDhxQjRu3FgAok6dOuLnn3/OVKavvhLC1TX1/K6uuuNp0Wg0YuvWrcLDw0OgW86LTp06iX///TdHn0dmrF69WqhUKjFq1CgRGRmZ43EsIYslkXKkx15kAc4KK+u3zB72qscSExPFxo0bxeuvvy40Go0QQogLFy6I8+fPiz179hilx/bs2SMWLrxltI7JSA5jMEWPGUN0dLSYPXu2WLlypUHXNW3aVBw8eFBotdqcDZpDgoODBSDmzJljsznv3Lkjxo0bJwoWLCgcHBzEyJEjDa/Zy3fWXuQQwn5ksZQes0WCxh3gjhDiz+fPvwXqmzKAEIKgoCD2799PYGCgRZMbzCVtWZA+fYJwdlanOpayt2lWmW569Jluep49e0aLFi0ICwtj06ZN/P3331lue86cmbonIeiez5yZ+tjhw4dp0KAB/fv3JywsjLp16/LLL79w8OBBatfOfts5KzQaDVu2bOGbb74BYPjw4QQHB/Ppp5/i5uZm1tgSSV4kN/VYQkICn376KV5eXgwZMoTw8HDu378PQK1atahTp06qwt6Z6bG+fYOfd0zwMErHmIOxeiw7IiMjmTJlCp6envj5+aHRaGjTpg1Hjhzh5MmTdOrUKd8nH6xfv54qVarwySef0KtXLy5dusTatWtzWyyJDbG6sSeEuAeEKYqit4r+h25L19jrOXXqlKGdVMoSAYDhWEhICKdOnbK5wVexYsVUnQ+y622aWaZb2uNPnz7lu+++A6BgwYJ8+eWXhISEMHDgwGw7Ldy+nfXxoKAgXnvtNdq3b8/58+epUKECW7du5dy5c7Rr186Id501v/zyC/Xr12fgwIHs2LED0AWBvwj18iSSjMhNPZaQkECVKlUYM2YMHh4eHDx4kDNnzhi28OC/wt7e3t6oVCpat45IpcdKl45n5Mi/GTy4IM2aNSMsLGPjKDPdkxOy02PZER4ezvjx46lcuTJLly7l6dOndOrUiRo1anDkyBHatGmTr428kJAQ7tzRhQfVq1fPkGG8ZcsWqlWrlsvSSWyNraJPxwLbn2fi3gAGGnvhhQsXiIqKSqcc05IyucFcr5Qp6HubXr16Fa1WC2Td2zSzTLeSJVMvYY8ePcqaNWsM2WH9+vUzWqaKFeHWrfTH3d3VDBkygs2bN6PVailSpAjTp09n/PjxFCxY0OjxM+PChQtMnDiRQ4cOUblyZXbt2kWvXr3MHlciyevYWo89fvyYy5cv06hRI1xcXGjbti2DBw+mdevWmRo4aQt7lykTwZtv/pWisPd/hX8z0zGW7JaW0zlCQ0NZvHgxmzZtMiSedO/enVmzZvHKK69w7Ngxywlph1y8eJGAgAB27drFkCFDWL9+PY0aNZLdLl5wbGLsCSHOo4vdMwm1Wp2qQTwY18bHVu3I9NSqVYubN2+SmJiY7bl9+gSlqk4Pqbd5Qbdtm5SUxLlz5yhWrJjJ8gQEwLBhqbdAnJySiIoazhdfbMHR0ZHRo0cze/Zsi1bAv3HjBn/99RcrVqxg1KhRsleiRIJt9djDhw9ZvXo1H3/8MQUKFDC0Hvzqq6+MHsOYwt4Z6RhXV91xS2HqHCEhISxcuJAvv/wStVqNoij06tWLGTNm8PLLL1tOMDvl/Pnz+Pv7s3fvXlxdXZkwYQITJ07MbbEkdoJd9zzJrI1PdHQhhFAMbXxOnPDI8jprExwcbMjqyo7stnlBlxm2ePHiHG979u0LGzZAxYq6OGQHhzCSkweQnLyFt956i4sXL7J69WqzDb3Hjx8za9YsFixYAEC3bt24efMmH374oTT0JJLn2EKP3b9/nxkzZuDp6cncuXNp2bIl+/fvt1qvVb2O8fQERdH93LBBd9zWcwQHB/Puu+9So0YNNm/ejBCC9957j+DgYL7++mu7MvSWLl3KmTNnUh0LDQ1l6tSphp2hnPLZZ5/xyy+/MHPmTEJDQ1m6dClly5Y1a0xJ/sGujT1T2vjoSZvcYG0yW7WPGtWZ3r17MmpU53RKvEWLMNau/Ymvv/6WtWt/SmXoqVQqqlevbpZnUghBkSL7cXWtCTig1Vbk1VdvcvLkSb799lu8vb1zPDboKuevXbsWLy8vAgICuHnzJqDbBsqJJ1Iiyc/YQo8FBgayaNEiXnvtNc6fP893331ndoeb7duhUiVwcND93L499et9+0JoKGi1up+WNPSMmSMwMJC33noLX19fdu7ciYODA4MHD+by5cts27YNHx8fywtkBDdu3GDAgAGUL18eZ2dn3NzcaNOmDcnJyXz99dcMHDgw1f0wadIkPvvsM6MdBnpOnDhBx44dOX36NAB+fn7cunULPz8/SpUqZdH3JMn72HXFSGPb+KQ9bss2PjltIp4RKpUKNzc3fH19cyzPX3/9xaRJkzh+/DgAVatWZdGiRbz11lsWCUY+efIkQ4YM4cqVKxbtjyuR5FesocfCwsJYvHgxxYoVIyAggPbt2xMSEkLVqlXNFxidYZdyC/XWLd1zsI5RZwp//vkn/v7+HDhwAAAXFxcGDx7M1KlTqWjJoMEc8OjRI5o1a0bjxo1Zt24dJUqU4MGDB4SHh+Pk5MTkyZN55513OHToEKDLFN6zZw9z5swxygsrhODXX3/Fz8+P48eP4+bmxr179wAsGpIjyX/YtbFnbBuftMkNtmzjk5Mm4mlxdHRECIG3tze+vr45MspCQ0OZMWMGO3fuBOCll15izpw5jBw50iJbOfr3WKRIEVQqFd9//73slyiRGIEl9diNGzdYuHAhW7duBWDkyJGAzqtuKUMPsi57klvG3vHjx/H39+eXX34BdOEuI0aMYOLEiXbTzeP06dPcu3eP3r17065dO5ydnVPt0vTs2ZOaNWuybt06QPeeihYtyvjx440av1u3bvz444+UL1+eVatWMXToUFxd80X3UYmVsWtjz93dncjISIOhYUxyg63b+OR01a5SqXjppZdSZLp55Gjr9uHDhwQEBLBmzRqSkpJwcXFh3LhxTJ8+3SLV4G/cuMGMGTNwdnZm0KBBvPzyy1y4cEEaeRKJkVhKj3322WeMGTMGR0dHhg0bxpQpU6zmyTK37ImlEEJw+PBh/Pz8OHHiBACFCxdmzJgxfPjhh3ZXs/OVV17B29ubd999F9AtumNiYgyvq1Qq5syZwzvvvAPApUuXmD17NiVKlMhwPK1Wy8GDB3nttddwcHCga9eudO3alYEDB8q4aIlJ2LWx5+HhQWBgoOG53jOWWRZbyutsRU5X7WXKlKFZs2Y5njcxMZG1a9fi5+dnaNnWr18//P398fT0zPG4emJiYggICOCTTz4xbD/okYaeRGI85uixf//9F1dXV7y8vGjevDkffPABkyZNsvqC1halVbJCCMGPP/6Iv78/f/6pq8dfvHhxxo0bxwcffMBLL71kG0FM5OnTp7z22mtMmDCBOnXqZLjg7tmzJ1WrVuX69eu4uLhk6NXTaDTs3r2bgIAAgoOD+e6773j99dcZMWKE9d+EJF9i18aevoZdygSIrGrYqVQqvL29bVp2xdbeRyEEu3fvZsaMGdy4cQOAtm3bsnTpUurXN6kxSab88ssv9OrVi8ePHzNw4EDmz5+Pu7t7vq9PJZFYg5zoscKFC9OzZ0++//573n//fbZu3Yqvry8rVqywicy2KK2SEVqtln379uHv78/58+cBXY/uCRMmMHr0aLvo35oZjx8/pnXr1qxZs4Zu3bplep5KpeKDDz5g3LhxNGnSJJXhqlar2b59OwsWLODq1avUrFmT7du307VrV1u8BUk+xq6NPQBfX19iY2OzLUhqieSGnGBL7+OJEyeYNGmSIXW/Zs2aLFmyhM6dO5vtbdNqtTx48IBSpUrh6+tLmzZtmD9/vs0/T4kkP2KsHgNd6MSUKVMoVqwYc+fOZezYsTaS8j/0cXkzZ+q2bitW1Bl61orXS+vJAihbtiyTJ09m+PDhFCqUfrfE3jh+/Di3bt0yqmTW2LFjiYmJoXHjxoBuEa/X4f7+/hQuXJhvv/2WHj164OBg10UzJHkEuzf29G18Lly4QEhICEAqZWmJ5AZzsIX3MTExkTfeeIPvv/8e0CnB+fPnM3DgQIt4MY8dO8bkyZNxcXHhxIkTlCtXjr1795o9rkQi0WGsHrt9+zZLliwhICAg1z1ZfftaPxkjOTnZ4MnSfy4eHh5MnTqVQYMGWaSzj63QZ8O+//77TJ48mZIlS3Lnzh2OHDnCpk2bUp2rKArz5s3j6NGjrF69mi1btnDy5ElcXV05duwY7u7uMlxGYlHs3tiD9G18IiIiSE5ONju5wRIkJCTw888/k5iYiI+Pj0W9j1FRUcydO5eqVavy/fff4+rqypQpU5g4cSKFCxc2W/aLFy8ydepUDhw4QIUKFQgICEi1wpRIJJYjrR4LDw8nKiqKq1ev4uvrS6dOnYiLi2Po0KF5wpNlDomJiWzZsoVFixYRGhoKQOXKlZk+fTr9+/e3WjFoa9K4cWO+/PJLVq5cycCBA1Gr1VSqVMmQrJGSuLg41q1bZ0ioa9GiBVFRUVSqVIny5cvngvSS/E6eMPb0GNPGx1ZotVp27dplqFbeuXNn2rZty927dwHzvI/x8fGsXLmSxYsX8+TJE5YtW8bQoUOZN28e5cqVs4j8//d//0fXrl0pVKgQCxcuZNy4cXlqFS2R5FUcHBz4999/8ff35+zZs3h4eLB69WocHR0tkkFvz8THx7Nx40aWLFli6PtdvXp1Zs6cSZ8+fXJt0W4p+vXrl20f8zt37lC3bl1iYmLYsGEDx44do1WrVjaSUPKikre/WblETEwMnTp14uzZs9StW5dffvmFdu3aAboA25x6HzUaDdu2bWP27NkGRdilSxdq1aplkR6HT58+5ebNm/j6+tKqVSumTp3Khx9+KKutSyQ2pEuXLvzf//0fVapU4fPPP+f999/Pk54sU4iLiyMyMpLKlSsTFRUFQO3atZk1axZvvfUWKpUqlyW0LjExMfz555907tyZ8uXLM3jwYHr06EFCQoI09CQ2QUZ+msCjR48AXe0kLy8vtm3bxrlz5wyGHvznfWzWrBmtW7emWbNmVK5cOVtD7+eff6ZevXoMGjSI8PBw6tevz6+//sqBAwcoUKCAWXJrNBq++OILvL29ef3111Gr1RQsWJCAgABp6EkkVkatVvP1118bOmL069ePbdu2ceXKFYYMGZKvDb3Y2FhDOag7d+4QFRVFw4YN2bdvH+fPn6dXr1752tCLiopi6tSpVKpUiZ49exIbG4uiKCxevJhXX301t8WTvEBIz54R3Lt3j7lz57Jr1y4uX75M2bJlDZ0qzOWff/5h8uTJhqrwFStWJCAggHfffTfHWVh672J4eDiRkZFcvHiRo0eP4uXlxaJFi4zaKknpoUxKSsLZ2ZmkpCTUanWe32qRSGxBUlISX375JQsXLuT69evs3r2bt99+m7653W/MBsTExPDxxx+zevVqYmNjAV0x5IMHD9KxY8d8Hxd87949Fi1axIYNG0hMTKR3797MmDFD9g6X5Bryv3YWaLVa/Pz8WLx4MYmJiTluPbZ9e/oSBq1a3WHWrFls27YNIQTFihVj5syZjB07NseePCFEhtl+NWrUoEaNGqhUKooUKZJlEkZmY4CufdP+/ftzLfNZIskrqNVqvLy8CAsLo0GDBnz33XdZ1l7LC2Skx9LarZGRkSxfvpy1a9fy9OlTANq0acPs2bNRFIXWrVvbXnAbotetjx49Yt26dfTp04cZM2ZQrVq13BZN8oIjjb1MePz4MRcuXGDOnDm8+eabLFq0CG9vb5PHyaih+IABScBM1OptODk5MWrUKGbPnk3JkiVzLK8QglOnThEZGYlWq83wHI1GQ0hICLGxsTRr1iydsaYfI7NaYEKIbMeQSCQ6Y8/Dw4MNGzbkC09WRnps2DDd7337Qnh4OEuWLGHDhg0kJCQA0KlTJ2bNmmXoFJSfi7KHhISwcOFC4uPj2bVrFzVq1CA8PFyGyUjsBpsYe4qihAJPAA2gFkI0tMW8piKEICgoiDp16lC0aFHc3Nw4deoUTZs2zfGYGTUUV6udgXm8/fYzFi5caJEG5mfPnuXOnTvZxr9oNBqioqK4cOECtWvXTvXahQsXjCr6mtUYEokEChQowMmTJ/O8kacnIz0WHw9Tp6o5cWIMmzdvNvQJf/3115k5cyavvPJKLkhqWy5evEhAQAC7du3C2dmZESNGoNVqcXBwkIaexK6wZYJGGyFEXXs19AIDA2nfvj1169bl33//BXTFi80x9ABu3xYZHlcUT3bv3m22oZeUlMSaNWu4cuVKKkPvxAkPRo3qTO/ePRk1qjMnTvzXsUPvnVOr1YZjarU6VWHojMY4frxClmNIJJL/yC+GHui2bjMiPNyB9evXk5yczNtvv80///zDd999ZzFDb/t2qFQJHBx0P7dvN3+Mw4fdLCLbV199ha+vL99//z0TJ07k5s2brFy5Una8kNglL/xdefv2bd5//30aNGjA+fPnWbVqFTVq1LDI2H/++SfOzpEZvlaxomX+EZw/f559+/al+sdy4oQH69c3JDq6EEIoREcXYv36hqkMPoCwsLAMf89sjHXr6mU5hkQiyZ9UrJjZK2H069eP4OBgdu/eTZ06dSw2p37r+NYtEOK/rWNTDL6Mxli2rHqOjEaAM2fO8OeffwLQoUMHZs2aRWhoKEuWLKFs2bI5G1QisQG2MvYEcEhRlHOKogyz0ZzZEh8fT7169di9ezdTpkzh2rVrfPDBB2aXQrhx4wa9e/fm1VdfJTFxApB6/8PchuKnT59m1apVADRq1IiJEyemknnnztokJaXeoU9KcmTnzv+2XDUaDREREYbnERERqbx6GY2RmJj1GBKJJH8ybFgoKlVCqmMqVSIrVhTgyy+/xMfHx+JzZrZ1PHOmeWMkJqpMGgN0fck7dOhA48aNmTt3LgBubm7Mnz9fbtdK8gSKEBlvM1p0EkVxF0JEKIriBvwCjBVCHE/x+jBgGEDp0qUb7N6922qyCCF49OgRJUqUAHS181xdXTM08OLi4kxqS6bRaLh79y5RUVGGrKwyZcoQHPwymzZ5ERXlgptbIkOG3KBduyijx338+DEqlQqNRkNCQgKPHj0iKSmJmjVr4uDgwJMnT1Jtp7711hsIkd5zqCiCPXu+Mzx3cnIyvD9LjGFLTP3bSDlsh73I0qZNm3O2DBuxpR4zBXP+Hk+fPuXu3bvExsZy7lwN/u//WvDwYRHc3BIYOvSmSXrMVDnatm2VqQ46cuQ3m4wRFxdHeHg4cXFxODo6UrZsWUqXLm2xrVp7+a5IOdJjL7JYSo/ZJEFDCBHx/GeUoij7gEbA8RSvbwA2AFSvXl1YIz1fCMHevXuZNm0a165d4/jx47Ro0SLLa44dO2ZUqYCEhATWrFnDggULePToEYqi8N577+Hv74+Hh27bc8EC/dkFgJrPH1nLqy+B4uDgQGJiIqCLAypatCjOzs6ULl0aX19fTp8+ncrDVrJkPNHR6XtrliwZn8qgc3NzM2TKnTp1yuwxbImxfxsph+2xJ1lsiS30WE7Iyd/j+PHj+Pn5cfjwYQAKFizIiBEjuHChHu7uRYGCGKPHzJGjYkXdtmv648aXcMnJGEIItFotKpWKTz75hEWLFjFlyhSGDBmCq6ur0fIbg718V6Qc6bEnWSyB1bdxFUUppChKEf3vQAfggrXnTcnvv/9O8+bN6dmzJy4uLvz44480b97c7HG1Wi3bt2+nRo0aTJkyhUePHtGuXTv+/vtvtm7dajD0TEVfAkWfMJHW+6r38oWEhHDq1CnKlSuXaqXZp08Qzs6pEyecndX06ROUagx3d3fDc3d391QJHhmN4eKS9RhZoVaruXnzJqdOneLo0aOcOnWKmzdvygQPicROEEJw+PBhWrVqRatWrTh8+DCFCxdm2rRp3Lp1ixUrVhj9fbcEAQG6kJeUmBoCk9EYLi6aDMfQarXs3buXBg0a8MUXXwAwdOhQrl+/zgcffICrq6vUY5I8iy08e2WAfc8TCByBHUKI/7PBvIAuW7Vnz55otVo2bNjAwIEDLdIB4ujRo0yePJlz584B4Ovry9KlSy1SUysoKIiIiIhsx9GXQElISEhVW69FC13SxM6dtYmJcaVkyXj69AkyHNeT0hj18PAgMDAwyzH69btI06aZj5ERWRVpjoyMJDAwUBZplkhyESEEP/30E35+fobkg+LFizN+/HjGjh3LSy+9lCty6Qs2Z1fI2dQx+vW7Qt++/3kkNRoNu3fvJiAggODgYLy9vSldujQALi4ugNRjkryP1Y09IcQN4GVrz5OS6OhoPvnkE2bMmIGzszMHDhygWrVqFCqUflvSVC5evMjUqVM5cOAAoPOI+fn50b9/f4v0eDx8+DCRkZGpYgiPH6/AV1/VzNBw02g0PHz4MN04LVqEpTPu9KhUKry9vVMZvY6Ojnh7e6cqv5J2DEdHR/QL2IzGSEt2RZr1x2SRZonE9mi1Wr777jv8/f0NC71SpUoxYcIERo8eTdGiRS063+HDbgwYYJrh1revacadMWMcOxZFyu3nPn368M0331CzZk127NiRrl+v1GOS/EC+Kr3y7NkzFi9eTNWqVfHz8+PEiRMA1KtXz2xD7969e4wYMYLatWtz4MABChcujJ+fH1evXmXQoEFmG3p37tyhS5cuLFiwINW27YkTHqxbVy/bMirGolKpcHNzw9fXN91rvr6+uLm5ZfteshojJTkp0iyRSKyLRqNh586d1KlTh7feeovAwEDKli3L8uXLCQ0NZfr06RY39LZv15U8MaeMiqUQQrBhwwYePHgAwIgRI/j2228JCgqiT58+6fSf1GOS/EC+aJem1WrZsWMHM2bMICwsjK5du7J48WJq1jQ+eDgznj59yvvv/x/79r2CEGuB6fzvf7+yfXsXypQpYxHZHRwcKFq0KNeuXWP69OmGrQPQbaMmJmZcRiWt5+7ECY9st26rVq1KnTp1Mlx5KopCs2bNMt2uUBTF4NHLbrsisyLNmcmnj0H08fGxyDa7RCJJzbZtaiZMSCAmxhVoAtTBw+MxU6dOZfDgwTnuyW0MM2fqSp6kRF9GJaXXzZj+uznl2bNnfP755wCMGzcOjUbDyJEjadu2babXSD0myS/km7txxYoVuLm5sXXrVtq0aWP2eBqNhujoaMqXn0xs7FJA7xn05PffB3H4sHlKKC4ujqVLl3Lw4EFOnz5N0aJFuXjxIsePHyc6Otpwnk4xpyftcX0RZH1tPL0HEP6Lv1OpVBQtWjRLI01RFGrXro2Pjw9hYWFERESQnJyMk5MTT58+pW3btkYpscyKNGcln/66ypUrZzu+RCIxDiEEgwYdZsuWpgihLyVRCWfnrfj5KfTvb/1/A5l14Eh5PLv+uzlFCMGKFStYunQpkZGRfPbZZxw6dIh27dple63UY5L8Qp7dxg0ODqZ3797ExMTg4ODATz/9xJkzZ8w29PTByi+//DK3bt0iNnYK/xl6Okwt7JkStVrN+vXr8fLyYv78+VSqVIknT54AOmMsbb2/kiXjMxom3fGcFFLOCkdHRypXrkyzZs1o3bo1zZo1w9nZ2ejVqjFFms2RTyKRZE18fDwff/wxQUFBbN7shRCpF4hJSU589JFt1vuZdeBIedwSRZRTkrJc1bFjx6hduza//fYb1atXp3379kbF1Uk9Jskv5Dlj7+7duwwdOpQ6derw888/p+pja26hy8DAQNq1a0eXLl0IDg5+bnh5ZnhuZivVrLh9+zZ16tRhxIgReHl58fvvv7N7925DgWfIuASKi0vWZVTAeA9gcnKy6YLnAH1T9MzkyOy4reSTSPIr+l2DypUrM378+OffqYytrZzosZwQEKAreZKStGVUjPH+GUNMTAyzZ8+mfPnyXL9+HYBvvvmGX375hZYtW5o0ltRjkvxCnjH2tFotH330EV5eXmzdupUPPviA69evW2TL9vbt27z33nvUr1+fI0fK4OBwC9Di7z+EkiUzXv1l3isyPfps2fLly1O9enX27t3LiRMnePXVV9Odm7aUSYsWYYwcGUipUk9RFEGpUk8ZPvxsulg8Yz2ATk5OxgtuBjn1UNpKPokkvxEbG4u/vz+enp5MmRJIVNSfgIbFi0fy0kvm6zFz6NsXJk26gqcnKAp4esKGDam3Z43x/mVFVFQUU6dOpVKlSvj7+9OqVStDsltO4xGlHpPkF+ze2Nu+XVCpEjg6OrB06Whq117IpUuXWLlyJSVLljRr7EePHjF16lSqVavGV199hUr1Ho6OW9BqKwIKUVEFefIE0n5vjS3sGRoaSt++falevTqxsbGoVCr27dtHjx49Mt1C0JdASenda9nyDmvX/sTXX3/L2rU/ZVhSJSeFlK2JMUWac1M+icSWbN8OlSqBg4PupyWzUPWeLE9PT2bPns2DBx1xcPgCqAQ4cP++K3FxSo71mKVo1y6K0FDQaiE0NH0cnjlFlJ8+fUr16tVZtmwZ3bp148KFC+zZswcvLy+zZJZ6TJJfsFtjTwjBpEl/8957CYZ0/WfP3AgK+oA//qhq1thJSUmsXr0aLy8vlixZQmJiIu+88w5lynyBWu2c5lwoWpQsV6RpefToEVOmTKFGjRrs3buXoUOHmlSaxdgSKClp0SKM4cPPZusBzGlXD1PJyENpT/JJJLZCn3hg6bIjkZGRTJkyBU9PT/z9/YmNjaVNmza4uX2BVlsw1bk50WO2pm9fnUzGyhgaGsrKlSsBKFSoEKtXr+bSpUvs2LGDWrVqWUQmqcck+QW7zMY9d+4ckyZN4tixzeh6MP5HRun6xiKEYM+ePUyfPp1r164B0KJFC5YtW0ajRo3ILOTvwQPQJ8iq1WrCwsI4dSqCpKQknJ2dcXd3x8PDA0dHRyIiIqhduzYPHz7k/fffx8/Pz+QvftoSKGm9gI6OjgghKF68OA8fPjR0zzC1kLI1MaZIc27KJ5HYiqwSD3Kix+7cucPSpUvZsGEDCQkJAHTq1IlZs2bRrFkzo/SYvWJMEeWQkBAWLlzIl19+iYODA2+88QaVK1fmvffes7g8Uo9J8gt2d0cmJSXRsGHD5+1qTE+OyKxO0++//86kSZM4ffo0ANWrV2fx4sV0797dYExl3jQ7+3Y5586do3r16vj6+jJmzBh69OhB3bp1c/QZQOoSKEeOHKFQoUKGEih641KlUmVZ2V2PsUWQLY2vry+xsbF2K59EYgtykniQkR5r1iyURYsWsXnzZkPiwOuvv86sWbNo2LCh4dqs9Fhe5t69e0ycOJFdu3bh7OzMqFGjmDx5MhUqVLDqvFKPSfIDdreNqygKM2bM4Nq1a3h6mhZUnNF2yZAhWho1WkXTpk05ffo0bm5uDBhwiGfPLtGjx+tUrqwYtlMyjxnRtcvRr+7SfuE1Gg1CCK5evcqpU6eYO3euWYZeShwdHXF2dk5VAqVy5co4OjoaPID6GL+0276Ojo6GlWZutPCxd/kkEltgauJBRnqsf/9EqlSZxfr160lOTqZXr14sWHCL8+e/o1GjhqniAM2JfbNH4uLiAN1W7cmTJ5k4cSKhoaF8/PHHVjf0QOoxSf7A7jx7Tk5OBDzXSgEBqYtsQtZKK6PtkoQEB/766w0KFpzBpEmT8PSczgcfFMyycKd+Re3mlsDy5QWoU+cCISHZt8vRarWGdjm1a9fO8lxLkVUR5JTby7mFvcsnkVgbS+gxjcYFCKBfP91i+O+/fbItQJxWj9lTfJ4x/Pnnn/j7+3P9+nWCgoIoUqQI169fzxV9IfWYJK9j13dnWqWVXfuczLdFPAkJCaF8+fJUqpR1/EzKmJFjx/6gefPm7N9v/+1y9EWQ7bVqu73LJ5FYC9P1mAAyamdYkS+//BKA114zTY+1bt063XjWbE1mDsePH8ff359ffvmFl156iQ8//BC1Wo1Kpcp1g0rqMUlexa6NPTAuYBd0XrWXXoonJqZwutc8PRXKly8PmB4/I9vlSCQSczFGj+k9WUKsQVc2JTUVK/5nAJpbgNharcnM5eDBg3Tu3Bk3NzeWLFnCyJEjKVw4vU6XSCSmYXcxeznh119/pWHDhsTEDAOepnot7XaJqfEz4eHhsl2ORCKxGsePH6d9+/a8+uqrHDhwACeneTg6pu7cYK4eS4ulW5PlFCEEP/74Izt27ACgffv2bNiwgdDQUCZPniwNPYnEQuRpYy84OJguXbrQrl07AgMDqVDhBMOGnaNiRZFpnSZTgpefPHnCH3/8keqYbJcjkUjMRQjBL7/8QqtWrWjVqhWHDx+mSJEiTJs2jfDwJWzZ4pxlvTlzkzAs1Zosp2i1Wvbu3UuDBg3o2rUrH3/8MUIIHB0dGTp0KAULFsx+EIlEYjR2v42bEREREcyZM4fNmzej1WopUqQI06dPZ/z48dkqCWPjZx4/fsz169cNmWB6SpaMJzq6ULpxZbsciUSSHUIIfvrpJ/z8/Pjzzz8BKF68OOPHj2fs2LG89NJLQPbbvqbGAaYlN8uzHDlyhA8++IDg4GC8vb3ZvHkzffv2lVmsEokVsYmxpyiKCjgLhAshuuZ0HH2D72XLlhEfH4+joyOjRo1izpw5z+vyGUdmijQ8PJyNGzcye/ZsihYtSrVq1fD29iYoKMiwldunT1CqmD2Q7XIkEknWaLVa9u3bh7+/P+fPnwegVKlSTJw4kVGjRlG0aFGTxzQ2njkjTM0QNpfk5GRD8XcHBweEEOzYsYNevXqZ1ClIIpHkDFtt444DLuX0YrVazfr16/Hy8mL+/PnEx8fTo0cPgoODWbNmjUmGXkY8efKE2bNn4+3tzYIFCwzK2NXVNV2ShWyXI5FIjEWj0bBjxw5q165Nz549OX/+PGXLlmX58uWEhoYybdq0HBl65mJqa7KckpiYyPr166lWrRrh4eEAtGrViqCgIPr06SMNPYnERljds6coSgWgCxAATDDlWiEEBw4cYOrUqVy6pLMVX331VZYuXUrz5s3Nlk2tVvP5558zd+5coqKieOedd1iwYEEqA0+2y5FIJDlhy5YtLFiwwNB1x8PDg6lTpzJ48GAKFCiQy9KZ5xnMjvj4eDZu3MiSJUsIDw+ncePGFCtWDNDVrJNbthKJbbGFZ28VMAXQmnLRuXPnaNu2Ld27d+fSpUtUqVKF3bt3c/r0aYsYeqDbWlm+fDk1atTgzJkz7Ny5M8NyKb6+vri5uWW7CpXtciQSCcCzZ88YOHAgISEhVKlShc8//5xr164xevRouzD0rM3kyZMZN24cVatW5dChQ/z++++54sGUSCQ6FCGE9QZXlK5AZyHEKEVRWgOTMorZUxRlGDAMoHTp0g0WL17MgwcPAJ1nrVy5cpQuXTrL1eDhw25s3FiFqCgX3NwSGTLkBu3aRaU7Lz4+nnv37lGpUiUcHBxQq9WZeuHi4uJSpf4/e/aMxMREQOd1TCE/AC4uLlbJIksrR25hL3KA/cgi5UiPvcjSpk2bc0KIhtmfaRlS6rFSpUo1mDt3LuXKlTMkXRiDsXrMFGzx99BoNNy/f59ixYpRsGBBEhMTSU5OTjWvvdwX9iIH2I8sUo702IssFtNjQgirPYCFwB0gFLgHxANfZXVNhQoVBCBcXFzEpEmTxIMHD0R2fPWVEK6uQug6Seoerq6643pu3LghevfuLQDh5uYmzp49m+24R48eTXcsOTlZ3LhxQ5w8eVIcPXpUnDx5Uty4cUMkJydnO15OyUiO3MBe5BDCfmSRcqTHXmQBzgor6resHlWrVhVqtdokeY3RYznBmn+P6OhoMWvWLFGsWDEBiIULF+aKHKZgL3IIYT+ySDnSYy+yWEqPWTWwTAgxHZgOkMKz1y+76/r27UtAQACenp6ZnqNWqw09CidMqE98fGqPmr5A6NtvJzF9+nQ++eQTVCoVs2bNYsqUKRQpUiRH70m2y5FIJNmhUqlMTj7IqtCxPbQxS4ufnx9LliwhLi6ON998k5kzZ1K/fv3cFksikWSA3WURFChQgK+++irT14UQXLhwwRD0rNs+aJrhubdv6+rdBQYG0q9fP+bPn29omyaRSCT2RG4XOjaGu3fvUrZsWRRFITExkW7dujFz5kxq1aqV26JJJJIssJmxJ4Q4BhzL7jwHh8xzRoQQnDp1iqioqFQtzDIrdOzurkZRHPn5559lkWOJRGLX5Gah4+wIDQ1l0aJFbN68mb1799KlSxf8/PxkVq1EkkfIU+3SLly4kM7QA12hY2dndapjzs5q3n//MiC7WUgkEvvH3BZo1iAkJIRBgwYZOl0MGjTIUG1AGnoSSd7B7rZxM0OtVqeqdQdw4oQHO3fWJibGlcKFk3B2VvP0qQslS8bTp08QDRtGoFbXkDXvJBKJ3bJ9+39tz156CQoWhAcPTG+BZmm0Wi0dOnTg3r17jB49mkmTJlGhQoXcEUYikZhFnrGCwsJSFzE+ccIjVduyJ09ccHZWM2bMnykKHqsICwuzaDJFysSQpKQknJ2dcXd3x8PDQxqVEonEJLZvT922LCZG58378kvrGnmZ6bEHDx6wfv161qxZg4uLC1999RVeXl6UKVPGesJIJBKrk2esk4iIiFRevZ07a6fqTwuQlOTIzp21DcaeRqMhIiLCIsZeRokheiIjIwkMDMTb2xtfX1+5vSGRSIzC1hm4WemxW7duodFoSEpK4t9//+WVV16hWbNmlhdCIpHYnDxj7CUlJaV6HhPjmuF5aY8nJyebPXdmiSF69MdCQkKIjY2lWbNm0uCTSCTZYssM3Oz0mJOTE05OTnTr1o3ExESEEFKPSST5hDyToJE2yaJkyfgMz0t73BLJGZklhqRFo9EQFRXFhQsXzJ5TIpHkfzLLtLVGBq6xekyr1Uo9JpHkM+ze2Lt8+TJCCMqXL49W+1973cwycPv0CTI8V6lUuLu7mzV/Zokho0Z1pnfvnowa1ZkTJzwMr2k0GkJCQlCr1RkNJ5FIJAZslYEr9ZhE8mJjt8ZeWFgYAwYMoGbNmnz//fd4eHik8tK1aBHG8OFnKVXqKYoiKFXqKcOHn02RnKHDw8Mj7dAmy5ESfWJIdHQhhFCIji7E+vUNUynKjK6TSCSStPTtCxs2gKcnKIru54YNlo/X++6773j27JnhudRjEsmLhV3G7E2fPp1Vq1YhhGDSpEm0bt0aR0dHvL29U61OW7QIS2fc6VGpVHh7e5udIZvbiSESiSR/07evdTNvExISOHPmDK+88orhmNRjEsmLhd159hISEli0aBFvvfUWV65cYcmSJRQvXhwAX19f3Nzcsu05qVKpcHNzMxT/NIfcTAyRSCQSU0lOTmbz5s3MnDkT0LWgbNKkSapzpB6TSF4s7M7Yc3Jy4uzZs3z11Vd4enqmek1RFJo1a4a3t3eGjcYdHR0NHj1LZcQ6Ozunem7LxBCJRCIxlsTERNavX0+1atUYNGgQhw4dMixW3dzcUp0r9ZhE8mJhd8aeSqWiQYMGmb6uKAq1a9eme/fu1KtXD3d3d0qXLo27uzt169ale/fu1K5d22IlA9zd3VMZlbZKDJFIJBJj+e2336hatSojRoygTJkyHDhwgDNnzhgWq1KPSSQvNnYZs2cMjo6OVK5c2erxJB4eHgQGBhqe6+NZ9G3a9K3ZLJ0YIpFIJFnx5MkToqOjqVy5MlWrVqVGjRps2bKF//3vf+kWu1KPSSQvNnnW2LMVuZUYIpFIJBkRGxvLmjVrWLlyJS+//DJHjhyhQoUKHD58ONNrpB6TSF5s7G4b1x7JjcQQiUQiSUlMTAyzZ8/G09OT2bNn06RJExYsWGD09VKPSSQvLtLYM4LcSAyRSCSSlGzatAl/f3/atWvH33//zYEDB3j11VeNvl7qMYnkxUX66I1Enxji4+NDWFgYERERJCcn4+TkhLu7Ox4eHnLLQyKRWIzw8HCWLl1K06ZN6dWrFyNGjKBz587UqlUrx2NKPSaRvJhY/VutKEoB4Djg8ny+b4UQH1l7Xmthq8QQiUTyYhIaGsqiRYvYvHkzGo2GEiVKAFCkSBGzDL2USD0mkbxY2GIJlwi0FULEKYriBJxUFOWgEOIPG8wtkUgkeYb58+fj5+eHg4MDAwcOZNq0aVSqVCm3xZJIJHkcq8fsCR1xz586PX8Ia88rkUgkeYHg4GCePHkCQI0aNRg1ahTXr1/ns88+k4aeRCKxCIoQ1re7FEVRAecAL+BTIcTUNK8PA4Y9f+oLXLC6UMZRCojObSGQcmSEvcgi5UiPvchSXQhRxFaTST2WLVKO9NiLLFKO9NiLLBbRYzYx9gyTKUpxYB8wVgiRoSJUFOWsEKKhzYTKAnuRRcqRHnuRRcqRHnuRJTflsJfPAOxHFilHeuxFFilHeuxFFkvJYdPSK0KIR8AxoJMt55VIJBKJRCJ5UbG6sacoSunnHj0URSkItAMuW3teiUQikUgkEoltsnHLAVufx+05ALuFEAeyOH+DDWQyFnuRRcqRHnuRRcqRHnuRJTflsJfPAOxHFilHeuxFFilHeuxFFovIYdOYPYlEIpFIJBKJbZHt0iQSiUQikUjyMdLYk0gkEolEIsnH2NTYUxSlk6IoVxRFuaYoyrQMXlcURVn9/PV/FUWpb+y1Fpaj7/P5/1UU5bSiKC+neC1UUZQgRVHOK4py1spytFYUJfb5XOcVRZlj7LVWkGVyCjkuKIqiURTlpeevWfIz2aQoSpSiKJmV5rHVPZKdHLa6R7KTw5b3SHay2Ooe8VAU5aiiKJcURQlWFGVcBudY7T6ResxkOaQeS/+61GOpX5d6zNp6TAhhkwegAq4DVQBn4B+gZppzOgMHAQV4FfjT2GstLEdToMTz31/Ty/H8eShQykafR2vgQE6utbQsac7vBhyx9GfyfKyWQH3gQiavW/0eMVIOq98jRsphk3vEGFlseI+UA+o//70IcNVWusTI763UY7lwj5o6npXvUanHTJPDJveIMbLY8B6xqR6zpWevEXBNCHFDCJEE7AJeT3PO68A2oeMPoLiiKOWMvNZicgghTgshHj5/+gdQIYdzmSWHla61xHh9gJ1mzJcpQojjwIMsTrHFPZKtHDa6R4z5PDLD0veIqbJY8x65K4T4+/nvT4BLQPk0p1nrPpF6zEQ5rHStJcaTekzqsezIN3rMlsZeeSAsxfM7pH9jmZ1jzLWWlCMlg9FZ1noEcEhRlHOKrj1STjFWjiaKovyjKMpBRVFqmXitpWVBURRXdEWx96Q4bKnPxBhscY+YirXuEWOxxT1iNLa8RxRFqQTUA/5M85K17hOpx3Imh9RjqZF6LD1Sj1lRj9mizp4eJYNjaeu+ZHaOMddaUg7diYrSBt0XoHmKw82EEBGKorgBvyiKcvn5SsEacvwNeAoh4hRF6Qx8B3gbea2lZdHTDTglhEi5MrLUZ2IMtrhHjMbK94gx2OoeMQWb3COKohRGp4jHCyEep305g0sscZ9IPWa6HFKPpUfqsdRIPWZlPWZLz94dwCPF8wpAhJHnGHOtJeVAUZQ6wEbgdSFEjP64ECLi+c8odH1+G1lLDiHEYyFE3PPffwKcFEUpZex7sKQsKXiHNG5tC34mxmCLe8QobHCPZIsN7xFTsPo9oiiKEzoFuV0IsTeDU6x1n0g9ZqIcUo9liNRjKZB6zAZ6TFgg0NCYBzov4g2gMv8FFNZKc04XUgcjnjH2WgvLURG4BjRNc7wQUCTF76eBTlaUoyz/Fb5uBNx+/tlY7PMw5fMFiqGLdShkjc8kxZiVyDyQ1+r3iJFyWP0eMVIOm9wjxshiq3vk+fvbBqzK4hyr3CdGfm+lHsuFe9TY8Wxxj2b3XbHFPWKkHFKPZfx6vtNjZn1gOXhzndFlnFwHZj4/NgIYkeLNf/r89SCgYVbXWlGOjcBD4Pzzx9nnx6s8/1D/+f/27tdFyjUMA/D9gE2TxWg22UVBjYJNMSqI7djEoM1iE/wHrAqCiPgrKMfkAQ2iaBKzWLaYxPAYZoXlIDu74M737ct1tf2WYW6Gd2+e+eadfZN8WkGOf9af530Wm2ePbPbYncyy/vOFJPf+97i//ZrcTfI1yc8s3r1cnGiNLMuxqjWyLMcq18imWVa4Ro5m8ZHFhw2v/6lVrZNlfysrXKN6bJtZVrhG9dj2cuixHe4xx6UBAAzMCRoAAAMz7AEADMywBwAwMMMeAMDADHsAAAMz7AEADMywx6xV1dmq+lFVBzdcu11VX6rqwJTZALZCjzE1/2ePWauqSvI2ybvuvlRVV5JczeKMws/TpgNYTo8xtT1TB4DNdHdX1bUkT6rqS5LrSU7+LsiqepTkWJKX3X1mwqgAf6THmJo7e+wKVfU6izMTT3f3sw3XTyTZl+S8kgTmTI8xFXv2mL2qOpnkcBbnBH7b+Lvu/jfJ9ylyAWyVHmNKhj1mraoOJ3mQ5HKSh0luThoIYJv0GFOzZ4/ZWv/m2tMkt7r7TlW9SfKhqo5396tp0wEsp8eYA3f2mKWq2p/keZLH3X0jSbr7Y5L78a4Y2AX0GHPhzh6z1N1rSQ794fq5CeIAbJseYy58G5ddrapeZLHpeW+StSRnu/u/aVMBbJ0eY6cZ9gAABmbPHgDAwAx7AAADM+wBAAzMsAcAMDDDHgDAwAx7AAADM+wBAAzMsAcAMDDDHgDAwH4BCHfhI8UUZvkAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–10\n", "\n", "def find_support_vectors(svm_reg, X, y):\n", " y_pred = svm_reg.predict(X)\n", " epsilon = svm_reg[-1].epsilon\n", " off_margin = np.abs(y - y_pred) >= epsilon\n", " return np.argwhere(off_margin)\n", "\n", "def plot_svm_regression(svm_reg, X, y, axes):\n", " x1s = np.linspace(axes[0], axes[1], 100).reshape(100, 1)\n", " y_pred = svm_reg.predict(x1s)\n", " epsilon = svm_reg[-1].epsilon\n", " plt.plot(x1s, y_pred, \"k-\", linewidth=2, label=r\"$\\hat{y}$\", zorder=-2)\n", " plt.plot(x1s, y_pred + epsilon, \"k--\", zorder=-2)\n", " plt.plot(x1s, y_pred - epsilon, \"k--\", zorder=-2)\n", " plt.scatter(X[svm_reg._support], y[svm_reg._support], s=180,\n", " facecolors='#AAA', zorder=-1)\n", " plt.plot(X, y, \"bo\")\n", " plt.xlabel(r\"$x_1$\")\n", " plt.legend(loc=\"upper left\")\n", " plt.axis(axes)\n", "\n", "svm_reg2 = make_pipeline(StandardScaler(),\n", " LinearSVR(epsilon=1.2, random_state=42))\n", "svm_reg2.fit(X, y)\n", "\n", "svm_reg._support = find_support_vectors(svm_reg, X, y)\n", "svm_reg2._support = find_support_vectors(svm_reg2, X, y)\n", "\n", "eps_x1 = 1\n", "eps_y_pred = svm_reg2.predict([[eps_x1]])\n", "\n", "fig, axes = plt.subplots(ncols=2, figsize=(9, 4), sharey=True)\n", "plt.sca(axes[0])\n", "plot_svm_regression(svm_reg, X, y, [0, 2, 3, 11])\n", "plt.title(fr\"$\\epsilon = {svm_reg[-1].epsilon}$\")\n", "plt.ylabel(r\"$y$\", rotation=0)\n", "plt.grid()\n", "plt.sca(axes[1])\n", "plot_svm_regression(svm_reg2, X, y, [0, 2, 3, 11])\n", "plt.title(fr\"$\\epsilon = {svm_reg2[-1].epsilon}$\")\n", "plt.annotate(\n", " '', xy=(eps_x1, eps_y_pred), xycoords='data',\n", " xytext=(eps_x1, eps_y_pred - svm_reg2[-1].epsilon),\n", " textcoords='data', arrowprops={'arrowstyle': '<->', 'linewidth': 1.5}\n", " )\n", "plt.text(0.90, 5.4, r\"$\\epsilon$\", fontsize=16)\n", "plt.grid()\n", "save_fig(\"svm_regression_plot\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Pipeline(steps=[('standardscaler', StandardScaler()),\n", " ('svr', SVR(C=0.01, degree=2, kernel='poly'))])" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.svm import SVR\n", "\n", "# extra code – these 3 lines generate a simple quadratic dataset\n", "np.random.seed(42)\n", "X = 2 * np.random.rand(50, 1) - 1\n", "y = 0.2 + 0.1 * X[:, 0] + 0.5 * X[:, 0] ** 2 + np.random.randn(50) / 10\n", "\n", "svm_poly_reg = make_pipeline(StandardScaler(),\n", " SVR(kernel=\"poly\", degree=2, C=0.01, epsilon=0.1))\n", "svm_poly_reg.fit(X, y)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–11\n", "\n", "svm_poly_reg2 = make_pipeline(StandardScaler(),\n", " SVR(kernel=\"poly\", degree=2, C=100))\n", "svm_poly_reg2.fit(X, y)\n", "\n", "svm_poly_reg._support = find_support_vectors(svm_poly_reg, X, y)\n", "svm_poly_reg2._support = find_support_vectors(svm_poly_reg2, X, y)\n", "\n", "fig, axes = plt.subplots(ncols=2, figsize=(9, 4), sharey=True)\n", "plt.sca(axes[0])\n", "plot_svm_regression(svm_poly_reg, X, y, [-1, 1, 0, 1])\n", "plt.title(f\"$degree={svm_poly_reg[-1].degree}, \"\n", " f\"C={svm_poly_reg[-1].C}, \"\n", " fr\"\\epsilon={svm_poly_reg[-1].epsilon}$\")\n", "plt.ylabel(r\"$y$\", rotation=0)\n", "plt.grid()\n", "\n", "plt.sca(axes[1])\n", "plot_svm_regression(svm_poly_reg2, X, y, [-1, 1, 0, 1])\n", "plt.title(f\"$degree={svm_poly_reg2[-1].degree}, \"\n", " f\"C={svm_poly_reg2[-1].C}, \"\n", " fr\"\\epsilon={svm_poly_reg2[-1].epsilon}$\")\n", "plt.grid()\n", "save_fig(\"svm_with_polynomial_kernel_plot\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Under the hood" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "image/png": "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UaNG0XCfRWv3v1Q6cOBArrjiCp599lkSEhKoU6cOgwYNIicnp5zvSPUREmK56SZ31+iSJa7q5vcpedatW8ddd93Fs88+63UoIgAsXLiQwYMH8/HHH2Ot9ToczyhxC1LWwj//CZ06QUYGdOkCn38e2Mk4165dy2233Ubbtm2ZO3cuderUCdzBfSguLo7k5GTOP/987r333jIncEOGDGHKlCl7t6dMmcKgQYMw+8zrsmvXLvr378+iRYtYunQpp59+Op06dWLbtm2l9jVq1Cg6derEt99+y80338y0adMYNWoUY8aMYfny5TRr1oynnnrqsDEtWrSI7777jvnz5zN9+nTmzJnDrFmzyvhOVD+NGmUyfrwb1+Z369at44477qBNmzbMnj2b2rVrex2SCAC1a9dmxYoVXHPNNXTr1q3aJnC6qzQIZWbCdde5JavATa774IOBuzS6Zs0annvuOebOnUtERATXXXcd1113HfXq1SM3NzcwQZRRMMUzdOhQOnXqxMSJE0lJSSElJYXevXtzyy23HPKyZ9++fbnzzjv58ccfqVWrFu+99x7PP/88Dz744N7nXHzxxaVe8/zzzzNr1izee+89EhMT97ZfffXVpcbM9e3bl4EDB+5tu/fee0lLS2PNmjWH/F1iY2N54YUXqFGjBs2aNaNXr14s33cdJiklJMT/fzx++uknnnvuOd58803CwsIYOHAgw4YN45hjjgmq71leXl5QxVMefow7mN7vk08+mY8++oiZM2fywgsvcM0113DWWWdx++23065du1Inu1WZErcg87//ufnZvvkGataE119324GyYMEC+vXrt3c7OzubSZMmMWnSpMAFUQ6Ngnxdr+TkZJKTk1mwYAFN/mBl8Dp16tCtWzemTJlC7dq1adu27QGJ3m+//cYDDzxAWloaW7ZsobCwkOzsbH7++edSz2vZsmWp7R9++IGhQ4eWamvVqtVhE7dTTjmFGjVKuocGDRrw0UcfHfb3FX9avHgxPXv23LtdWFjI5MmTmTx5sodRVT3B3l/50Zdffkn//v3p1asXzzzzjNfhBIQStyDy4Ydw9dXw++/QpImbn+2UUwIbwxlnnEGrVq1YtmwZ1lpOPfVUWrduTVxcXGADKYOxY8dyzz33eB3GAX7//Xc+/fRTvv/+e8LCwrjooos46aSTDvmawYMHM2DAAGrWrMkjjzxywM8HDBjAli1bePrpp2nYsCERERG0b9/+gBsQYg4ysOpIzkLDwsIO2EdRUVG59yP+0Lx5c8477zw+//xzrLW0aNGC8847Lygvk27ZsoVjjz3W6zDKLVj7q8MJxvc7Ly+P5cuX8/nnn5OdnU2jRo1KFRyqOiVuQcBaeOYZuPNOt/Zop05uSRwv+sy4uDhmz57Nxo0bGT9+PCkpKaxcuZLevXtz++2306BBg8AH9QfGjh3Lrbfe6nUYe61bt44nn3ySN998k8jISG666SZuuOGGMt2x2b59e8LDw9m2bRtdD1Ji/eSTT3juuefo3Lkz4DrTX3/99bD7Pfnkk1m6dCmDBg3a27Z03+n7RXCXxmfOnMmvv/7KhAkTSE5O5vvvv6dXr17ccccdJCQkeB3iXitXrqS5DyfCC7b+qqyC6f3Ozs5mypQpvPLKK2RkZNCuXTvuuOMOzjrrLK9DCyglbh7LznazqCclue2RI2HUKAgN9TauhIQEHn30UW6++ea9Cdz27duD9pJpMBgxYgTffvstN954Y5kTtj2MMaxYsQJrLREREQf8/C9/+QtJSUm0atWKzMxM7r77bsLDww+73+HDhzNo0CDOPvtsLrzwQubMmcPnn3+uG03koI4//nhGjx7NTTfdtDeB+/3333nllVe8Dk2EN954g0cffbTaJmx7KHHz0M8/Q7dusHy5mzrg3/926xYGkz0J3B133FFtBn4eqRdeeIHw8HDi4+OP6PW1DjGb8pQpUxg2bBhnnXUWDRo04OGHH2br1q2H3WefPn3473//yz333ENWVhbdu3fnhhtuYO7cuUcUo1QPexK44cOHex2KyF49e/bkwgsvLDWdUXVkgvVW2qZNm9rVq1d7HUa5LViwoNT8W39k4ULo1Qu2boVGjWDuXPBy1aEPPvggaMrhZZWQkFCuOdOCxZo1a8r0Gaks3bp1o6CggHnz5pXrdWX9bAcTY8yX1tqWh3/m0fFrf+XH730wXborD7/2V358v73uY49UWfsrVdwCzFoYPx5uvx0KC+GyyyAlBY6wSCNySFlZWbzwwgt06NCBGjVqMGvWLObOnas52UREfEqJWwDl5MCNN7pLogB33+0Wjfd6PJtUXcYY3n33XR599FGys7Np0qQJr7/+Ot26dfM6NBEROQJK3AJkwwbo3h2++AKiotxahn36eB2VVHVRUVHMnz/f6zBERKSCKHELgE8+gR494LffoGFDNz9bVVgaR0RERAJLa5VWImth4kRo184lbRdf7CpuStpERETkSChxqyS5uW5+thtvhIICGDEC3n8f6tXzOjIRERHxq4BcKjXG/BO4EsgD1gKDrLXbA3FsL2za5C6NLlkCkZHw0kuwzzrgIiIiIkckUBW3D4AW1tpTgTXAvQE6bsCtXBlLy5YuaTvhBPj0UyVtIiIiUjECkrhZa1OttQXFm0uAPwXiuIH28stw++2n8+uv0KYNLFsGZ57pdVQiIiJSVQR85QRjzDxgurU26SA/GwYMK95sAXwXyNgqSD1gm9dBHAE/xu3HmEFxB1JTa+0fryV2FNRfecaPMYPiDiQ/xgxl7K8qLHEzxswHjjvIj0Zaa+cWP2ck0BLobg9zYGPMskAsVVPRFHfg+DFmUNyBFKiY/fjegD/j9mPMoLgDyY8xQ9njrrCbE6y1lxwmoAHAFUD7wyVtIiIiInKgQN1V2gH4O9DGWpsViGOKiIiIVDWBuqt0HFAL+MAY87UxZmIZXjOpkmOqLIo7cPwYMyjuQApUzH58b8CfcfsxZlDcgeTHmKGMcQf85gQREREROTJaOUFERETEJ5S4iYiIiPhEUCduxpjRxpgVxePiUo0xDbyOqSyMMf80xvxQHPscY0xtr2MqC2NML2PMSmNMkTEmqG+lNsZ0MMasNsb8ZIy5x+t4ysIYM8UY85sxxjfzfRljTjDGpBljVhV/NoZ7HVNZGGMijTFLjTHfFMc9KgDHVH8VIH7qq0D9VaBUl/4qqMe4GWNirbU7i/99G3CKtfYGj8M6LGPMZcBH1toCY8zjANbav3sc1mEZY5oBRcCLwJ3W2mUeh3RQxphQ3NJplwIbgC+Aa6y133sa2GEYYy4CdgOvWWtbeB1PWRhjjgeOt9YuN8bUAr4EuvrgvTZAjLV2tzEmDPgEGG6tXVKJx1R/FSB+6atA/VUgVZf+Kqgrbns6wWIxQPBmmfvw6xJf1tpV1trVXsdRBucAP1lr/2utzQOmAVd5HNNhWWs/BtK9jqM8rLW/WmuXF/97F7AKSPA2qsOzzu7izbDiR6X2H+qvAsdHfRWovwqY6tJfBXXiBmCMGWOM+QXoBzzodTxHYDDwrtdBVDEJwC/7bG/AB19OvzPGNATOAD73OJQyMcaEGmO+Bn4DPrDWVnrc6q/kINRfeaAq91eeJ27GmPnGmO8O8rgKwFo70lp7ApAM3OJttCUOF3fxc0YCBbjYg0JZ4vYBc5A2X1Q3/MoYUxOYBdy+X2UpaFlrC621p+MqSOcYY476co/6q8CpIn0VqL8KuKreXwVk5YRDOdxSWfuYCrwNPFSJ4ZSZX5f4Ksf7Hcw2ACfss/0nYJNHsVR5xWMuZgHJ1trZXsdTXtba7caYBUAHjnIhePVXgVNF+ipQfxVQ1aG/8rzidijGmCb7bHYBfvAqlvIwJUt8ddESX5XiC6CJMebPxphwoA/wlscxVUnFg2YnA6ustU95HU9ZGWOO2XN3pDEmCriESu4/1F/JH1B/FSDVpb8K9rtKZwFNcXcPrQdusNZu9DaqwzPG/AREAL8XNy3xyd1l3YDngWOA7cDX1trLPQ3qDxhjOgHPAKHAFGvtGG8jOjxjTArQFqgHbAEestZO9jSowzDGXAAsAr7FfQ8B7rPWvuNdVIdnjDkVeBX3+QgBZlhrH6nkY6q/ChA/9VWg/ipQqkt/FdSJm4iIiIiUCOpLpSIiIiJSQombiIiIiE8ocRMRERHxCSVuIiIiIj6hxE1ERETEJ5S4iYiIiPiEEjfxBWNML2NMrjHmpH3anjXGrDXGHOtlbCIie6ivksqmedzEF4pnxP4C+MpaO9QYcydwN3C+tfZHb6MTEXHUV0ll83ytUpGysNZaY8x9wNvGmLXASODiPR2hMeYt4ELgQ2ttTw9DFZFqTH2VVDZV3MRXjDGfAecAV1pr392nvR1QExigzlBEvKa+SiqLxriJbxhjLgZOAwxu7by9rLVpwC4v4hIR2Zf6KqlMStzEF4wxpwGzgVuBN4HHPA1IROQg1FdJZdMYNwl6xXdnvQM8Za2dYoxZCqwwxrS11i7wNjoREUd9lQSCKm4S1Iwx8cB7wH+stY8AWGu/A2aiM1kRCRLqqyRQVHGToGatTQeaHaT9ag/CERE5KPVVEii6q1SqBGPMfNxg4BggHehlrV3sbVQiIqWpr5KjpcRNRERExCc0xk1ERETEJ5S4iYiIiPiEEjcRERERn1DiJiIiIuITStxEREREfEKJm4iIiIhPKHETERER8QklbiIiIiI+ocRNRERExCf+H5yvcdh6oLCsAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–12\n", "\n", "import matplotlib.patches as patches\n", "\n", "def plot_2D_decision_function(w, b, ylabel=True, x1_lim=[-3, 3]):\n", " x1 = np.linspace(x1_lim[0], x1_lim[1], 200)\n", " y = w * x1 + b\n", " half_margin = 1 / w\n", "\n", " plt.plot(x1, y, \"b-\", linewidth=2, label=r\"$s = w_1 x_1$\")\n", " plt.axhline(y=0, color='k', linewidth=1)\n", " plt.axvline(x=0, color='k', linewidth=1)\n", " rect = patches.Rectangle((-half_margin, -2), 2 * half_margin, 4,\n", " edgecolor='none', facecolor='gray', alpha=0.2)\n", " plt.gca().add_patch(rect)\n", " plt.plot([-3, 3], [1, 1], \"k--\", linewidth=1)\n", " plt.plot([-3, 3], [-1, -1], \"k--\", linewidth=1)\n", " plt.plot(half_margin, 1, \"k.\")\n", " plt.plot(-half_margin, -1, \"k.\")\n", " plt.axis(x1_lim + [-2, 2])\n", " plt.xlabel(r\"$x_1$\")\n", " if ylabel:\n", " plt.ylabel(\"$s$\", rotation=0, labelpad=5)\n", " plt.legend()\n", " plt.text(1.02, -1.6, \"Margin\", ha=\"left\", va=\"center\", color=\"k\")\n", "\n", " plt.annotate(\n", " '', xy=(-half_margin, -1.6), xytext=(half_margin, -1.6),\n", " arrowprops={'ec': 'k', 'arrowstyle': '<->', 'linewidth': 1.5}\n", " )\n", " plt.title(fr\"$w_1 = {w}$\")\n", "\n", "fig, axes = plt.subplots(ncols=2, figsize=(9, 3.2), sharey=True)\n", "plt.sca(axes[0])\n", "plot_2D_decision_function(1, 0)\n", "plt.grid()\n", "plt.sca(axes[1])\n", "plot_2D_decision_function(0.5, 0, ylabel=False)\n", "plt.grid()\n", "save_fig(\"small_w_large_margin_plot\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAj4AAADlCAYAAABTVP1pAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAA62klEQVR4nO3dd5wU9f3H8dfnGr0jqDS7FPUgIBpURKMJGruIRixgFGsMiRpFjWASSYy9xi5q/MVTRMVeQcQAAlKkGlRAiiAq5eCAK9/fH99dWJbrt7uz5f18PPZxuzOzM5+52/3ee2a+M2POOUREREQyQVbQBYiIiIgkioKPiIiIZAwFHxEREckYCj4iIiKSMRR8REREJGMo+IiIiEjGUPARERGRjKHgIyIiIhlDwSeKmY02szeCrgOSq5ZUY2YtzGy1me0bdC2JZGZjzOyPQdchUldm1svMnJntFYN59QvNq3UMSqtrLYPNrDDoOjJZxgSfikJEOV+u3wPnJbQ4iYcbgbecc1+FB5jZFWb2jZltMbMZZnZUdWdmZn3NbJyZrQh9XgbHo+iaMLM7zeydqMG3AjebWbMgapLEM7PdzOxhM1tiZltDgf9DMzs+6NrizcwmmNmD5QwfYGaRtyX4L7AH8EPCipOklTHBp7qcc+udc+uCrkNqz8waAhcDT0YMOxu4DxgF9MA3hG+bWcdqzrYxMBcfjItiWnDtHQp8FjnAOfcF8DUK75nkZaA38FvgAOAk4G2gVZBFAZhZlpllB12Hc26bc+47p3s0CQo+u4jeMxTaonjYzEaZ2VozWxPa0s6KmKaRmT1rZoWhra3hZvaGmY2OmMbM7E9m9pWZFZnZF2ZWo39OZlbPzO4NLWOLmU0xsyMjxvcNDSs0s/VmNtXMDqpqXDyYWfvQnpGzzewjM9tsZrPNrHNoL9vE0LDPosOHmd1sZnNCtX4f+ps0iBh/VmjLtlPEsPtCv9u2wIlAGfBpxGz/CIx2zj3unFvgnPsdsAq4vDrr45x7yzl3o3NuTGjecRPxWVkU+qysMbOXI8bnmtk2oC/w59DveV7ELMYBv4lnjZIczKw5cBRwg3PuQ+fcUufcNOfcnc65FyKma2Nmr4U+T0vN7CIzm2tmIyOmcWY2IGr+S8zs2ojXfwx9NzeF9n4+EaohPH5w6Ht7opnNBbYBXcwsz8xuN7PlofdOM7NfRS2rv5ktDLVtn+BDXKx+Tzsd6oqo8xeh38MmMxtvZntHvW94qL0tDLXxI8xsSdQ0Q8xsfqjuL83sDxbx/6Ga9V1qZovNbFvo5yXljP8ytIzvzexdM8sJjTvY/B6+DWa2MdTOHlOrX1SGUPCpnkFACdAHuAoYBpwdMf4u4GjgdOBYIB/fGEX6G36L7EqgK/B34FEz+3UN6vhnaLkX4fdafAG8Y2Z7hL4ErwGTQss/DL+Ho7SycRUtyMxuDH3ZK3tUdqioe+jn5fjDL4cB9YDRofW4Efg50BofSiLlhN7XDf8P/Hj87zxsTGjdbw7Vem1ouv7OudX43/2M8NadmeUBPYH3opbzHv5vmmyuA4YAVwCdgVOA9yPGl+J/d+B/r3sAR0aM/wzoHRkWJW0Vhh6nmFn9SqYbDewHHAecBlwA7FWL5ZXhv4vdgHPxe5oeiJqmPv67eSm+rVsKPI1vI88FDgaeAV43s3wAM+sAvIr/nHcPzfOftaivJuoBw/Ht6c+B5sAj4ZFmdg4wArgJ+BmwgKi2KhRQRgG3AF2Aa4Dr8d/dajGz04EHgXuBg/Bt88NmdnJofC/gIXw7eiD+bxh5iPv/8BtxvfH/F0YCW6q7/IzknMuIB/6LX8KOhiL82Aw4YK+I6d6IeN8EYHLUvN4Hngg9b4zfqjknYnwj4Cf8Hobw6yLgqKj53Ivvh1JZzW9EzGMbcEHE+GzgK3yoahlaj6PLmU+F4ypZdkt8Q1nZo0El778JWAe0jRj2APA90Cpi2NNAQRW1PAY8EzXsl0AxcAOwETg0YtyrkdMDe4bWv2/UPG4BFtXis1QIDI7jZ/Uj4K4qpjkJ2ABYOeMOCa3vvvGqUY/keQBnAj/i/9lNBu4EDosYf0Do83BExLBO+AA9MmKYAwZEzXsJcG0ly+4PbAWyQq8Hh+bTM2KaffGBqWPUe18FHg49HwV8Gfl5xoen7W1zBcufEGoXo9v1IsBFTNcvNK/WUXUeGDHNoNC8wusyGXgkannvAUsiXi8Dzo+aZhgwv5KaBwOFEa8/BZ6KmmY0MCn0/AxgPdCkgvltAC4M+nOYSo9M2+MzEb81Efk4txrvmxP1eiXQJvR8XyCXiL4WzrlN+P4gYV3xW0HvRO4xwe/VqO5ZR+HlbD9845wrxX85uzrnfsR/Wd41szdDu6Q7hKarcFxFnHM/OucWV/GorK9Ld3xoWx0xrCMw1jn3Q9Swb8IvzKyDmd1v/lDgj6Hf0xBgeVR97wHT8KFvoHNuWsToBpS/xRN9fN/KGRYTZva30K71yh79Knj7OGCYmX0Q2sVd3pkoPYDZLtTyRQn/XbTHJwM4517Gh/uT8X17+gBTzOzG0CRd8MEjso1aim/HasTMjjWz90OHrDYCY4E8YPeIyUqAWRGvf4b/rs2Pav9+zY72rwswJerzPLmaZRWwa7t+XTXet9U5tyji9Up8G9s89LozUX3ogKnhJ2a2G9ABv+c+cr3+QfXbdfDr/mnUsEn4/xvgN7SXAt+Y2fNmdqGZNYmY9m7gCfNdCm4ys841WHZGyrTgszn6nzdR/1ArUBz12rHjd2cRwyoSnvZkdv5ydsPvuaiOypbjN9ecG4I/9DERf3jky/Bx9MrGlbuwuh/qygemRA3rwa6NWT4wM7TMVvgwsztwLf6QVS98iJkVVV/4kKIBkeEKYC3QIup1KTs3zuDDa/R7Y+VefINW2SO6UQXAOXcvfpf2O/hd5l+ZWZeoyboT+r2Vo2Xo5/e1LV5Si3Nui3PufefcX5xzffAd+0eGDvNaFW/fPptyps0NPzHfp+5N/CGfs/CHjy8Kjc6LeM/W0EZZWFZo3oeyc/vXJeL91a2xPOvLade/q8b7SqJeh9vWrHKGlSc83WXsvF4H4dv2mqisXd+ID48D8XuYhgMLzWzP0PiR+JD0Kj70zjGzi8qZn4RkWvCJh8X4YNQ7PMD8WUWRHYfn43cHdypnr8nSGixnGxF9OcyfLfHz0PwBcM7Nds7d7pzrh98NfGF1xpXjEXbdiop+TC/vjWbWCL/FMzNiWEv81lHksA74M0/Cw36N3zN2tnPuXefcPHxYa0xE8An1CxgL/A7/Zf97VAkz2bG1hHNuGzAD31co0vH4s7tizjm31jm3sIrH5krev9g5dyc++Bn+8FWkfHbdExl2ELAyam+bZJb5+L5y9fFBJQsfPAAwf0LBnlHv+R7fXyw8TdvI1/jPYh7wB+fcZOfcl+XMozwz8Z/h3ctp/1ZE1HuYmUUGoMOrMe94WkhEux6y/XXo+7UCf0h5lz3iNVjOAnbuo0fodWS7XuKc+8g5NxzfFjTCH+4Oj/+fc+5+59yv8aH34hosP+PkBF1AqnPOFZrZU8DtZrYW38nsZnZs5eCc22hmdwJ3hr7YE/H/zA8Hypxzj1VjOZvM7F/AP0LL+Qb4A9AW3xFub3xnwnH4L+M++C/IvyobV8nyfsT3G6iN8D/p2RHDeuDD3/yIYd3xx+PDjcQP+N/LaWb2BXACvhP0xvA0oa3Ot4C7nXNPmdln+C2cfs65CaH5vIv/e7SKOKx2N/BcaPpP8VtpexLRmbEyZtYY368J/N+2o5l1B350zi2rzjyquZzr8XuhPsNvkV6ID7wToibNATqHtvo2u50vwXAUO3d+lDQV2kv6EvAUPghvxAeUPwEfOuc2ABvMX+/pUTMbij8Ueje7XpbhI+BKM/svfg/pKHY+ZPw//Gd/mJmNxbdfw6qq0Tn3pZk9D4w2s2uAz/F7JfsBXzvnxuK/h9cA95rZw/gO0JfV7LcRc/cBT5vZNOAT/Mkrh+H7b4aNBB4ws3X4dikXv3emnXMueoOsIncAL5nZDHwfov74/kZnAJjZSfgNyYn4NvkYoAmwIHQCw534z8AS/P+DI4k4JCfliHcnomR5ENVpOWJ4L6ru3PxgZfPC/7N+DtiE/6d1A/Ah8K+IaQy/hyK89+d7/LHb46tbM/4shHtDy9iKP5R0ZGhcW/xekBWhccvwZ0XkVjYuTr/ry4CFUcOuBaZHDbuZUAe+iN/RQ/jOemuA+/Ff6nAnv5b4raNHo+ZTwK4d0CcDV0YNuwLfOGzF7wGK7uw8OPKzEDWuX2hc9GN0jH93t4TWcTP+EN0bQH450w3CH6Yti/qc1cd3hDw86O+cHvF/hNqEUfhDxD+FPjf/wweblhHTtcVv+BQB3+L3CMxl587Ne+L7CBXiT5o4k6jOzcDVoXakCN/GDWTn9nMwER13I96Xiw8JX+OD/HeheiI7Qf8aWIQPW5+GPuPV6dz8YDnDB1B15+bCqPfsNE1o2I34tqgQeBbff2dB1Pt+gw9zW0J/g0lEnOxSTm3lLfsydhw9WAxcEjHuSGA8fsOwKPR3GxIal4c/q2spvl1biT8ZpGnQn81kfljolycxZGb18B/EO5xzdwVdTyYys/74Lbaubuf+BpW951Z8g5nvnIs+/p8SzOxK4FTnXHX7jkmGMn+dnTHO9xGRajCzV4Ac59zJQdcitadDXTFgZj3Y0Vm1Cf46Dk3weyIkAM65d8zsIaA9PoRWx4nAVakaekKK8XsWRaQOQn01L8cfNi7B7wE7NfRTUpiCT+z8EX8mTvhUzr7OueqcMSZx4py7v4bTH1r1VMnNVaO/mIhUi2NHP8MG+EOI5zvnXgm0KqkzHeoSERGRjKHT2UVERCRjKPiIiIhIxohLH5/WrVu7vfbaKx6z3smmTZto1KhRXJexru06vu71NS7L0earNrSf3x6r00VGK5eIdUqkRYsWUVpaSteuXaueOEUk4m9kznHz0qWszsvjsT32AIvfZw4S+7mbMWPGWufcbnWdT6LaGUi/7yXEfp2KmhQxv998crbmcMh7h8S1nYyWju0M6HNXF5W2M/E4R75nz54uEcaPH5+Q5YxbOM7l/iXXMRL3h3f+4MrKyuK2rEStU6IcffTRLj8/P+gyYiquf6OSkh3Py8r8IwES+bkj6npOtX0kqp1xLv2+l87Ffp3Kysrcfvfv5xiJm/DNhJjOuyqBtTMjRjg3bJhzX30Vl9nrc1d7lbUzOtRVDScfeDIvD3yZ3Kxc7plyD9e8d034wlIisVNQAEccAT+FLgxrFvc9PSKxYmac0fkMAF5e8HLA1SRAaSk88gjcey9s2BB0NVIDCj7VpPAjcVVQAOeeC1OnwosvBl2NSK2c2dVf4mbsgrGUubKAq4mzTz+F1ath330hPz/oaqQGFHxqQOFH4iIcesrK4JZbYOjQoCsSqZVee/aifdP2rNi4gmkrpgVdTnyNGeN/nnmm9symGAWfGlL4kZiKDj0jR6oRlZSVZVnbD3eNXTA24GriqKwMXg4dzhswINhapMYUfGpB4UdiQqFH0tAZXULBZ+HY9G0Xp0yBlSuhY0fo1SvoaqSGFHxqSeFH6uzjjxV6JO0c2fFIdmu4G4t/XMwXa74Iupz4CB/mGjBA39sUpOBTBwo/UicPPgivvabQI2klOyub0zqfBqTx4a6BA+HKK+E3vwm6EqkFBZ86UviRGnnrLfjxR/88KwtOOUWhR9LOmV382V1pe1r74Yf7DRcd5kpJCj4xoPAj1VJQACefDMcfD0VFQVcjEjfH7H0Mzeo1Y+6auSxauyjockR2ouATIwo/UqnIjswnnQT16wddkUjc5GXnbT/c9eK8NLoulXNw0UXw5JOwbVvQ1UgtKfjEkMKPlEtnb0kGOrvb2QAUzCsIuJIYmj0bnn4abroJsrODrkZqScEnxhR+ZCcKPZKhfrHPL2hRvwXzvp/HvDXzgi4nNsJnc51xhoJPClPwiQOFHwHgs88UeiRj5WXnbb+mT1oc7nIOXnrJPz/zzGBrkTpR8IkThR+hVy+45BKFHslYkYe7Ur79mzULvvwS2rSBo48OuhqpAwWfOFL4yVClpf5nVhb8618KPZKxjtn7GFo3bM2iHxal/sUMX3jB/zzrLMjJCbYWqRMFnzhT+MkwBQX+Gh8//OBfmyn0SMbKycrZfk2fgrkp3Mm5rGxH8DnnnGBrkTpT8EkAhZ8MEe7IPH36jr4AIhkuLQ53lZTA9df7Ts19+gRdjdSRgk+CKPykueizty69NOiKRJJC3059aduoLV/99BUzv5sZdDm1k5cHV1zh78iepX+bqU5/wQRS+ElTOmVdpELZWdkM6DoASPHDXZI2FHwSTOEnzSj0iFQpfLjrxfkvpl579+mncO21MGdO0JVIjCj4BEDhJ41MmqTQI1KFIzoeQbsm7ViybglTlk8JupyaGT0a7rpL/fbSSJXBx8w6mNl4M1tgZvPM7PeJKCzdKfykifvvh9dfV+gRqUSWZXHOQf5sqOe/eD7gampg2zbfrwd0Nlcaqc4enxLgGudcF+Bw4Eoz6xrfsjKDwk9qajl5Mqxd61+Y+ZuOKvSIVGrQwYMAf3ZXcWlxwNVU0wcfwE8/wcEHQ7duQVcjMVJl8HHOrXLOfR56vhFYALSLd2GZIjr8PPzVwwo/yayggINvvhmOOw42bw66GpGU0X337nTdrStrN6/lva/eC7qc6vnPf/xP7e1JKzW6/KSZ7QX0AKaWM24oMBSgbdu2TJgwIQblVa6wsDAhy4m3JjRhZJeRjJg/gjErxjDwyYFcse8VWBrsRVi3bh2lpaVp8Xfa7aOP6HrbbVhZGUvy81kydWra7OlJle9SEO0MpM7vpyaCWKefN/o587+fz90f3k2jlY1iNt94tDNZRUUcMWYM2cCUTp3YEsDfX5+7OHHOVesBNAZmAGdUNW3Pnj1dIowfPz4hy0mUcQvHuZxbcxwjcX945w+urKws6JLq7Oijj3b5+flBl1F3L7zgXFaWc+C+ueAC59LgbxMpkd8lYLqrZrtT2SNR7Yxz6dfWOBfMOn3z0zeOkbiGtzV0G7dujNl849LO/PvfzoFzffrEdr41oM9d7VXWzlTrrC4zywVeBp53zo2NVwjLdCcfeDK3dr1VfX6STdQp60sGD06bPT0iibRX8704osMRbC7ezKsLXw26nModfLC/EKkuRpp2qnNWlwFPAgucc3fHv6TM1qd1H3V4TibTp+s6PSIxdN4h5wHw7zn/DriSKhxyCDzyCFxwQdCVSIxVZ4/PEcD5wLFmNiv0ODHOdWU0ne2VRHr2hMsvV+gRiZGzup5FTlYO73/9PqsLVwddjmSg6pzVNck5Z865Q5xz3UOPtxJRXCZT+AlYSYn/aQYPPKDQIxIjrRq24oT9TqDMlVEwL0lvYXH55fDss7B1a9CVSBzoys1JTOEnIAUF0Lv3ztfqUegRiZnwNX2S8nDXF1/4Q1zDhgVdicSJgk+SU/hJsHBH5pkz4cUXg65GJC2dfODJNMlrwrSV01i4dmHQ5ezsuef8z4EDoV69YGuRuFDwSQEKPwkSfcPRyy8PuiKRtNQwtyFndT0LgGdmPRNwNRFKS+H50C01zj8/2FokbhR8UoTCT5zpLusiCTWkxxAAnp3zLKVlpQFXEzJ+PKxcCfvsA336BF2NxImCTwpR+IkThR6RhDuiwxHs13I/Vm5cyftfvx90OV74MNd556kNSGMKPilG4ScOpkxR6BFJMDNjcP5gAEbPGh1oLQBs2ABjxvjn550XbC0SVwo+KUjhJ8buvhvefFOhRyTBLsi/AMN4deGr/FT0U7DFZGfDHXfAZZfB/vsHW4vElYJPilL4qaM33oA1a/xzMzjxRIUekQTr0KwDx+1zHFtLt/LC3BeCLaZRI7jiCvjXv4KtQ+JOwSeFKfzUUkEBnHoq/OIXsGlT0NWIZLTB3QcD8PSsp4MtRDKGgk+KU/ipociOzGecAQ0bBl2RSEY7vfPpNK3XlGkrpzFvzbxgivj73+G662DZsmCWLwml4JMGFH6qSWdviSSdBrkNOKfbOUBAnZyLi+Hee+HOO2HVqsQvXxJOwSdNKPxUQaFHJGmFr+nz3JznKC4tTuzC33zT9/fr2tXfqkbSnoJPGlH4qcDnnyv0iCSxw9odRpfWXVi9aTVv/u/NxC78qaf8z4suUruQIRR80ozCTzl69ICrr1boEUlSZsYlP7sEgEdnPJq4Ba9aBW+9BTk5ukVFBlHwSUMKPyElJf6nmb9Wj0KPSNK6IP8C6mXX493F77Jk3ZLELPS55/z9uU4+Gdq0ScwyJXAKPmkq48NPQQH07LnztXoUekSSVquGrRjQdQAOxxOfPxH/BZaVwROh5QwZEv/lSdJQ8EljGRt+wh2Z58yBF18MuhoRqaahPYcC8NTMp+LfydkMRo+Gq66CE06I77IkqSj4pLmMCz/RZ29deWXQFYlINR3V8Sg6t+7MqsJV8e/kbObvwP7AA76Pj2QMBZ8MkDHhR6esi6Q0M2Poz/xen7h2ck7H9k+qTcEnQ6R9+FHoEUkLF+RfQF52Xnw7Od92Gxx/PEyeHJ/5S1JT8MkgaR1+ZsxQ6BFJA3Hv5FxSAo8+Ch98oHv1ZSgFnwyTtuHn9tvhnXcUekTSwKU9LwXgyZlPxr6T81tvwfLlsP/+cOyxsZ23pAQFnwyUNuHn9dfhu+/8czP41a8UekTSwFEdj6JL6y58V/gdryx8JbYzf+QR//PSSyFL/wIzkf7qGSrlw09BAZx2mt9iKywMuhoRiSEz48pD/RmZD3z2QOxm/M03fs9wvXoweHDs5ispRefwZbBw+DnzxTO5Z8o9ANz1y7uwZN9rEtmR+ayzoFEjADZs2MCaNWsoLo7v9T+aNWvGggUL4rqMRIvVOuXm5tKmTRuaNm0ag6okk12QfwHDPxzOpGWTmPXdLLrv3r3uM33sMX9G18CB0KpVrWaRqHYG1NZUplGjRrRv356sWuy1U/DJcCkXfio4e2vDhg2sXr2adu3a0aBBg7jWv3HjRpo0aRK3+QchFuvknKOoqIgVK1YAKPxInTSp14Qh3Ydw/2f38+BnD/LEKXXs6FxWBs8/759ffnmtZpHIdgbU1lSkrKyMFStWsHbtWtrU4lYjOtQlqXPYq5JT1tesWUO7du1o2LBh8oa2NGdmNGzYkHbt2rEmfKsQkTq4src/3PX8F8/zw+Yf6jazrCyYORMefxwOP7xWs1A7kxyysrJo27Yt69evr937Y1yPpKikDz+zZlV6nZ7i4mIaNGgQWHmyQ4MGDRJyGEDS3wGtDqD/fv3ZUrKFJ2c+WfcZtmoFF19c65Mg1M4kj9zcXErCN6KuIQUf2S6pw09+Pvzxj5Vep0dbYMlBfweJpd/1/h0AD097mNKy0trNZPVqiFEY1+c7OdTl76DgIztJuvATbqzM4J//1HV6RDJM//36s2+LfVm6fimvf/l67WZyySWw117wyScxrU1Sk4KP7CJpwk9BAfzsZ7BqlX9tptAjkmGyLKtup7Z/9RW88QasXQsHHhjj6iQVKfhIuQIPP+GOzHPnwpgxiVtuQK699lr69+8f03lOnDiRU045hXbt2mFmjB49OqbzF0mUIT2G0Ci3ER998xFzVs+p2ZsfeMCfwn7uuVCLM4DSidoZT8FHKhRY+Ik+e+uqq+K/zIBNmzaN3r17x3SehYWFHHTQQdx3333qkCkprXn95vy2x28BuGvyXdV/44YN8NRT/vnvfx+HylKL2hlPwUcqlfDwk2F3WS8uLiYvL4+JEyfy17/+FTOjW7duMZn3iSeeyKhRoxgwYECtLvIlkkyGHT6MLMvi/774P5ZvWF69N40eDRs3Qt++0L17PMtLampndpYaVUqgEhZ+Miz0AGRnZzN58mQApk6dyqpVq5g0adJO04waNYrGjRtX+vhEnTYlze3dYm/O6noWJWUl3D/1/qrfUFIC9/iLsmb63h61MzvTlZulWhJyhefZs2MWeuzWYAKTG1GzQJiVlcWqVato0qQJhx56aLm/z8suu4yBAwdWOp927drVaLkiqejaPtdSMK+AR2c8ys19b6ZpvUquDv7tt/6eXPvvD6eeGreaUqGtUTuzMwUfqba4h5/bboNjjoHjjkv7PT2RZs6cSX5+foW/x5YtW9KyZcsEVyWSfHrt2YujOx3Nx0s/5vEZj3NNn2sqnnjvvWH+fFi+HLKzE1dkklI7s4OCj9RIzMPPuHFw6KGwxx4+7Bx/fEzqrOmel5qI9f1zZs2aRY8ePSocP2rUKEaNGlXpPN5++22OOuqomNUkkqyu63MdHy/9mHun3svVh11NbnZuxRNnZUHHjnGtJ1XaGrUzOyj4SI3FLPyE+/Tstx9Mnw5pdjO+6po9ezYnnHBCheMzaRe0SFVO2P8EurTuwoK1C3hx3osMOmTQrhM99BCccgp06JD4ApOU2pkdFHykVuocfiI7Mp9zDjRuHMdqk1tJSQkLFy5k5cqVNGzYkObNm+80vra7oAsLC1m8eDHg72a8bNkyZs2aRcuWLekY561gkXjJsiyu+fk1XPz6xdzx3zs49+Bzd55g2jR/CYwRI2DFCt/PR9TORNBZXVJrtT7bKwPP3qrMbbfdxgsvvED79u0ZPnx4zOY7ffp0evToQY8ePSgqKmLEiBH06NGDW265JWbLEAnCeYecx+6Nd2f26tm89b+3dh55++3+50UXKfREUDuzg/b4SJ3UeM+PQs8uBg0axKBB5eyur6N+/folz01mRWKoXk49rutzHde8dw1/nfhX6hEKOF9+CWPHQl4eDBsWaI3JRu3MDtrjI3VW7T0/c+Yo9IhITFza81JaN2zN1BVT+anFT37gHXf421Ocfz7suWewBUrSqjL4mNlTZrbGzOYmoiBJTdUKPwcfDNdfr9AjInXWKK8Rfzz8jwAs22sZe2zb5q/UnJUFf/pTsMVJUqvOHp/RQGzvaiZpqdzwgyMnHIDM/LV6FHpEJAau7H0lLeq3YH3z9VywfoW/WvO558IBBwRdmiSxKoOPc24i8GMCapE0EB1+umZ9QcGiRf7sCvCBR6FHRGKgab2m/P4wfzuKh/sU+ys033xzwFVJslMfH4m5cPg5d142D074iX23bsWNGRN0WSKShq4+7GqyS7KZdFARkx+4Hg48MOiSJMnF7KwuMxsKDAVo27YtEyZMiNWsK1RYWJiQ5SRSuqzTPh9N47kxZWQ5uPVomNvwE64Yf0hs7+0VoVmzZmzcuDEu845WWlqasGUlSqzXacuWLXH5HAfRzkD6fC8jpcs6WUkJrb5qxZoD1/CHV//APw7+R9yWlch2BtTWVKW27UzMgo9z7jHgMYBevXq5fv36xWrWFZowYQKJWE4ipcU6FRT4vjzO8a/Ou3Fr3+9xK1+mQ8eOsb+xaciCBQtiehuJysT6lhXJINbrVL9+/Uovj19bQbQzkCbfyyhps05Dh/L6u1u5qKkxlank7ZtHnw594rKoRLYzoLamKrVtZ3SoS2Ir6jo9BW260OmzvWp+kUMRkaosWQJPP03PH9fT9NsWANz44Y1qY6RS1Tmd/T/AZOBAM1tuZr+Nf1mSsubP3+U6Pc2+a1a7KzyLiFTmb3+DkhI+bNOGjWv2pEX9Fny89GPe//r9oCuTJFads7p+45zbwzmX65xr75x7MhGFSYoaORI+/HCXU9ZrfXsLEZHyLFgATz8N2dk826kT2cXZXH/E9YD2+kjldKhL6u6112D5cv/cDI49ttxT1hV+KnbttdfSv3/yXS5r4sSJnHLKKbRr1w4zY/To0UGXJOINH+73Ll9yCcsbNgTgd4f9jj0a78GMVTN4ecHLAReYfNTOeAo+UjcFBXDGGXDMMbBhQ5WTK/yUb9q0afTu3TvoMnZRWFjIQQcdxH333UeDBg2CLkfE+/RTv8HVsKG/C3tIw9yG/LnvnwH48/g/U1JWElSFSUntjKfgI7UX2ZH53HOhmj31FX52KC4uJi8vj4kTJ/LXv/4VM6Nbt25Bl7XdiSeeyKhRoxgwYABZWWouJEl8+SU0aADXXAO7777TqN/+7Lfs02IfFq5dyHOznwuowOSidmZnasmkdup4l3WFHy87O5vJkycDMHXqVFatWsWkSZN2mmbUqFE0bty40scnn3wSRPkiwRgyBBYvhuuu22VUXnYet/a7FYARE0ZQVFyU6OqSjtqZncXsOj6SQeoYesLC4efMF8/knin3AMT2Oj+VzefRR2HoUP/8scfg0ksrnjYykPXsSZPPP696umrKyspi1apVNGnShEMPPbTcdb/ssssYOHBgpfNp165djZctktIqufv6bw76DXf+905mr57NXZPv4ua+cb6NRZK3NWpndqY9PlIzc+fGJPSEac8PzJw5k/z8/AoDX8uWLdlvv/0qfVR1XPzmm2/GzCp8NG3aNC2u4itprqAAnnjC34y0EtlZ2dzzK78x9fdJf2flxpWJqC6pJUM7Y2ZJsddIe3ykZrp123ETwBjdZT1ue36qG6CGDt2xRVaVGTNifjXVWbNmVXr10VGjRjFq1KhK5/H2229z1FFHVTh+2LBhnHfeeRWO37RpE126dKm6WJGgrF8PV18Na9ZA69Zw2mmVTn7M3sdweufTeWXhK9z44Y2MPm10/GpLgbYmGdoZgBYtWlReaAIo+Ej1bNsGeXk+6Iwc6YfF8NYTcT/slcRmz57NCSecUOH4WOyCbt26Na1bt65w/MaNG2kYOiVYJCmNHOlDzxFH+LuwV8Mdx9/Bm/97k2dmP8OVh17Joe0OjW+NSSwZ2hkgKe49puAjVSso8Ie1PvgAOnSIaeCJlKnhp6SkhIULF7Jy5UoaNmxI8+bNdxrfsmVLWrZsGUhthYWFLF68GICysjKWLVvGrFmzaNmyJR07dgykJslA8+fDAw/4tif8sxr2bbkvww4bxj//+0+GvTuMSUMmpX17UhG1Mzuoj49ULtyR+csvYezYuC8uE/v83Hbbbbzwwgu0b9+e4cOHB13OTqZPn06PHj3o0aMHRUVFjBgxgh49enDLLbcEXZpkCuf8Ia7SUt8xuIY3pbyp7020adSG/377XwrmFcSpyOSndmYH7fGRikWfvXX11QlZbKbt+Rk0aBCDBg0Kuoxy9evXL+2DpyS5sWP9bXBatPD35qqhpvWactuxt3HJ65dw3fvXcdIBJ9E4r3EcCk1uamd20B4fKV+MTlmvrUzc8yMi5QjfvuBvf4NWrWo1iyHdh9Bzj54s37CcEeNHVP0GSWsKPrKrgENPmMKPiPDKK/DMM5Vf/6YK2VnZPHrSo2RZFvdOvZeZq2bGsEBJNQo+sqtFiwIPPWEKPyIZLicHLrgAsrPrNJuee/bk6t5XU+bKGPrGUErLSmNUoKQaBR/Z1S23wPjxgYeeMIUfkQxTWgo33QTffRfT2f7lmL/Qvml7pq+czkPTHorpvCV1KPiI9+qrsGzZjtf9+iVF6AmrTvhRGEoO+jtInd1/P4waBb/8Za1uBVORJvWa8OAJDwJw00c3sXzD8hrPQ5/v5FCXv4OCj/g+PWee6cPOunVBV1OhysJPbm4uRUW6GWEyKCoqIjc3N+gyJFV9882Oq8OPGhXzDbBTO5/KaZ1Po3BbIVe9dVWN/oGqnUkexcXF5OTU7sR0BZ9MF9mR+fzzoVmzoCuqVEXhp02bNqxYsYLNmzdriywgzjk2b97MihUraNOmTdDlSCpyzt/SYfNmOOccOOmkuCzmgRMeoEleE15b9Br/nvPvar9P7UxyKCsrY/Xq1TSr5f8rXccnkyXJ2Vs1VdF1fgBWrlxJcXFxXJe/ZcsW6tevH9dlJFqs1ik3N5e2bdvStGnTGFQlGefpp/0V4lu2hPvui9ti2jdtz7397+W3437LVW9fxdF7HU3HZlVfITj8uU5EOwNqayrTqFGjKm+PUREFn0yVoqEnrKLwk4h/uBMmTKj0Zn+pKB3XSVLM11/D73/vn993H8R5r+GQ7kN4bdFrjFs0jsGvDuaDCz4gy6o+CNK0adOEBft0/F4mwzrpUFcmmj8/pUNPmM72EkkjEybApk0wYAAk4ArDZsbjJz/Obg13Y/yS8dw/9f64L1OSg4JPJura1YedP/85ZUNPmMKPSJq46CKYOBEeeSRhbVKbRm14/OTHAbjhgxuY//38hCxXgqXgk0m2bt3x/M9/hr/8JaVDT5jCj0gKi/yuHnlkrW9LUVundj6VId2HsLV0K+eNPY8tJVsSunxJPAWfTFFQAAcdBEuXBl1JXCj8iKSgH36A3r3h/fcDLePe/veyT4t9mPndTK5595pAa5H4U/DJBOGOzIsX+/vepCmFH5EUUlYGF14I06fDiBExvVBhTTWt15QXB7xIXnYeD09/mIK5BYHVIvGn4JPuos/eCp81kaYUfkRSxB13wJtvQosW8J//BH7YveeePbnnV/4M0Ytfv5hFaxcFWo/Ej4JPOkvxU9ZrS+FHJMm9+y7ceKN//uyz0KlTsPWEXN7rcs7udjaF2wo5reA01m9ZH3RJEgcKPukqQ0NPmMKPSJL68kt/VeayMn+SRZyuzlwb4VPcu+3WjYVrF3Lu2HN1F/c0pOCTrr7+OmNDT5jCj0iSKS311+lZtw5OO823TUmmSb0mjPvNOFo2aMlb/3uLmz66KeiSJMYUfNLV8OHw8ccZG3rCFH5Ekkh2NjzwABx7LDz3HGQl57+gfVrsw0tnvUS2ZXP7p7fzxOdPBF2SxFByfuqkdl59FZYs2fG6b9+MDj1hCj8iSeToo/39uBo3DrqSSh2797E8dOJDAFz2xmW88eUbAVcksaLgky4KCuDMM6FfP/jpp6CrSToKPyIBGjECxo3b8TpFNsgu7XUpNx11E6WulIEvDWTK8ilBlyQxoOCTDiI7Ml94ITRvHnRFSUnhRyQAo0b5q8QPHAgrVwZdTY399Zi/Mrj7YIpKijjx+ROZ/d3soEuSOlLwSXUZfvZWTSn8iCTQHXfATTf5NunJJ2HPPYOuqMbMjMdOeoyTDziZn7b8xHHPHcfcNXODLkvqQMEnlSn01IrCj0gC3H03/OlPvk166qmE3HE9XnKzc3nprJc4cf8TWbt5Lcc+cyzz1swLuiypJQWfVLVwoW9IFHpqReFHJE6c823SNaF7Xj32GAweHGhJsVAvpx4vD3yZX+77S77f/D19R/dl6vKpQZcltaDgk6o6d4a//U2hpw4UfkTiYPlyuO8+f+r600/DxRcHXVHM1M+pz6tnv8rJB5zMj0U/8otnf8F7X70XdFlSQwo+qWbr1h3Pb7gBbr1VoacOFH5EYqxDB3j9dXj55bTY0xOtQW4Dxp49lgvzL2RT8SZ+/X+/5vEZjwddltSAgk8qKSiALl38VZklZhR+ROroq6/g+ed3vO7bF049Nbh64iwnK4enTn2KP/X5EyVlJQx9YyhXvXUVxaXFQZcm1aDgkyrCHZm/+cZfqFBiSuFHpJZefRUOPRQuuMBfLT5DZFkWtx9/O6NPHU1edh4PTXuIY589lmXrlwVdmlRBwScVRJ+99Yc/BF1RWlL4EamBzZvhssvg9NP9RVNPPBF69Ai6qoS7sPuFfDz4Y/ZovAeTlk0i/5F8xswfE3RZUgkFn2SnU9YTSuFHpBo++AC6d4dHH4W8PLjnHnjtNWjaNOjKAnF4+8OZfdlsTjrgJNZtWcdZL53FOWPOYdXGVUGXJuVQ8ElmCj2BUPgRqcRDD8Hxx8P//gfdusFnn8GwYUl7w9FE2a3Rbow7ZxwPnvAgDXIaUDCvgM4PdeaBqQ+wrXRb0OVJhMz+pCa7ZcsUegKi8CMSoaxsx/PTT4fdd4e//x0+/xzy84OrK8mYGVf2vpL5V87npANOYsPWDVz9ztV0frAzz8x6hpKykqBLFKoZfMysv5ktMrPFZnZDvIuSkOuug08+UegJiMKPZLzp02HIEPjZz6Ak9E97zz39maU33OAPc8ku9mq+F+POGccrZ79C59ad+WbdNwx+bTD73b8f/5j0D77f9H3QJWa0KoOPmWUDDwEnAF2B35hZ13gXlqlaT5zoTw0NO/JIhZ4AKfxIRikrg5kz/d3UDznEn601ejTMng0ffbRjugYNAisxVZgZp3U+jbmXz+XZ055lv5b7sXT9UoZ/OJz297Tn1//3a574/Am+K/wu6FIzTk41pukNLHbOfQ1gZi8ApwLzK3pD102bYNq0XUeYQa9eO17PnQtFReXPpE0b6NTJP9+40d+iIUqThQuhUSN/nLlhQz/w66/hhx/Kn2fjxv46OOC/4DNmVLQKsPfe0Lq1f756tT/sVJ5YrVNJCXz4Id1uvRUef9w3NC1bVlyfJEw4/Jz54pncM+UeFrRdgO1tNMptFHRpMbNww0IarUit9em0ZYvvXwL+NgmRWrSAAw7wz7du9f/Mw6Kn7dIFmjf3z5cuhRUrdllW07lzoUkT6Nlzx8CpU6G4guu2dOrkL+QHsHYtzK+wuYSf/xxyc/3zOXPgxx/Ln651azjoIP+8qAgmT654nvn50KqVf754MSxZssskLWbP9ss94gg/4PvvYb/9YMOGHRM1bw4XXQSXX+7HSY1lZ2Vzfv75DDpkEO8ufpeHpj3EW/97a/sDYO/me3NY+8Po3KozHZt1ZM8me5KXnccX676g3rf1yM7KxkiPDeBkaGusqq1XMxsA9HfOXRx6fT5wmHPuqkreVO5Mi804vm/f7a+fmj6dfTZtKncWY/fck/v33x+AbuvX89CsWRUubkjPnnzTuDEANyxcSP/Vq8udbm7TplwVOt0yp6yMDz75pMJ5/uPAA3ln990BOH3FCn6/eHG508VjnUZ36sToTp3SYk/PrFmzKCkpoVdkOExRa1utZf5B83FZ2uNTJyOZ4Zyr8wfig5wcd1xpabnjPm7dmhHdugGw+5YtvDC14nsqXXfwwUwLbWRc/PXXnPftt+VO9129epxz+OHbX7/26ac0Kym/z8bje+3F86GNnL7ff89fKgk+p/bpw/pQ8PnnnDn0/umnhK3Ttw0acH7v3v6Fc4yZMoVSM6a2bMmk1q2Z2bw5xSnQaTnV2pltedtY22ota3dby/pm6ynLKav6TVIzlbQz1dnjU95/311afjMbCgwFmGZGg/r1d3lTiRnr1q3b/vrL3FyKKthlutS57dOuKSpiXjnTuVBxazdtYl2oAfoGyp0WYHF29vZ55jhX4XQAK7du3T7tim3bKpw2luu0rF493m7alInNmsH69RXWlkpKSkpwEeudynLW5bDfD/vxQ4cf2NJyC678fJ+awl+mBCiigj2i1RDZzjyYlcXuEd8hF7Gh8HXE9zKnuJg54T3C4Wkjnn9XVLR92iVlZcyOmhbAOccPeXk7fY6/aNCARhUEr6WlpTvaj61bmdGo4i3cHzdsYGN2NgALcnLIqmDaRVlZ2+eZXVzMZ6GNvfKs3LJl+7SLnWNKedM6R2FOzk7rdPoBB2yvBdh5708SS8V2puGahnRc0BFnji1NtrC5xWa2NdpGcYNiiusX48z5NiYLtTW1UGk745yr9AH8HHg34vVwYHhl7+nZs6dLhPHjxydkOYmUbut09NFHu/z8/KDLiKl0+xs5l9h1Aqa7Ktqd6jwS1c44p795skvHdsa59PobhSVqnSprZ6qzD3MasL+Z7W1mecA5wLi6ZTERERGRxKvyUJdzrsTMrgLeBbKBp5xz8+JemYiIiEiMVaePD865t4C34lyLiIiISFwlf3d9ERERkRhR8BEREZGMoeAjIiIiGUPBR0RERDKGgo+IiIhkDAUfERERyRgKPiIiIpIxFHxEREQkYyj4iIiISMZQ8BEREZGMoeAjIiIiGUPBR0RERDKGgo+IiIhkDAUfERERyRgKPiIiIpIxFHxEREQkYyj4iIiISMZQ8BEREZGMoeAjIiIiGUPBR0RERDKGgo+IiIhkDHPOxX6mZt8DS2M+4121BtYmYDmJpHVKfum2PpDYderknNutrjNJYDsD+pungnRbH9A61UWF7Uxcgk+imNl051yvoOuIJa1T8ku39YH0XKdYSsffT7qtU7qtD2id4kWHukRERCRjKPiIiIhIxkj14PNY0AXEgdYp+aXb+kB6rlMspePvJ93WKd3WB7ROcZHSfXxEREREaiLV9/iIiIiIVJuCj4iIiGSMlA8+ZnaHmS00szlm9oqZNQ+6proys7PMbJ6ZlZlZyp7KaGb9zWyRmS02sxuCrqeuzOwpM1tjZnODriVWzKyDmY03swWhz9zvg64pGamdSW5qa5JfMrU1KR98gPeBg5xzhwBfAsMDricW5gJnABODLqS2zCwbeAg4AegK/MbMugZbVZ2NBvoHXUSMlQDXOOe6AIcDV6bB3yke1M4kKbU1KSNp2pqUDz7OufeccyWhl1OA9kHWEwvOuQXOuUVB11FHvYHFzrmvnXPbgBeAUwOuqU6ccxOBH4OuI5acc6ucc5+Hnm8EFgDtgq0q+aidSWpqa1JAMrU1KR98olwEvB10EQL4D/S3Ea+Xo3+oSc3M9gJ6AFMDLiXZqZ1JLmprUkzQbU1OEAutKTP7ANi9nFE3OedeC01zE35X2vOJrK22qrNOKc7KGaZrJyQpM2sMvAwMc85tCLqeIKidSVlqa1JIMrQ1KRF8nHPHVTbezC4ETgJ+4VLkwkRVrVMaWA50iHjdHlgZUC1SCTPLxTdEzzvnxgZdT1DUzqQstTUpIlnampQ/1GVm/YHrgVOcc5uDrke2mwbsb2Z7m1kecA4wLuCaJIqZGfAksMA5d3fQ9SQrtTNJTW1NCkimtiblgw/wINAEeN/MZpnZI0EXVFdmdrqZLQd+DrxpZu8GXVNNhTqCXgW8i+/E9qJzbl6wVdWNmf0HmAwcaGbLzey3QdcUA0cA5wPHhr4/s8zsxKCLSkJqZ5KU2pqUkTRtjW5ZISIiIhkjHfb4iIiIiFSLgo+IiIhkDAUfERERyRgKPiIiIpIxFHxEREQkYyj4SFyZ2TOhO/G+EnQtIpK+1NZIdSn4SFw55y4EJjvnTg+qBjO7zczGB7V8EYk/tTVSXQo+kgm6A7MCrkFE0l931NYkPQUfSTlmNtrMRtbgLd2BmfGpRkTSldqa9KTgk0bM+5OZLTKzIjNbY2Yvx2jeg83MheabFxr2UmjYk6HXTcysJDTszErmdUpoGmdmx4WGHW1mZaFhA2JRc2i+uwF7AqVm9qGZbQpdKr13rJYhkmnU1pS7LLU1KULBJ71cBwwBrgA6A6cA70dPZGY3mllhFY+jot4WPm5dH/hZ6PkRoZ/hafsA2YADPq6oSOfcOODR0MvHzWx34CnAgNHOuTE1WOeq9Aj9vAb4C7725cBLZpYTw+WIZBK1NbtSW5Mi9MdIL/2Bt5xzH4ZeLwWmlDPdI8CLVcxrReQL59xSM1sC7AUcaWbfA3sAG/B3Rm7DjkZprnNubRXz/yPQDzgQf0y8LfAV8Lsq3ldT3YFi4Azn3BIAM/sTMA/YF1gU4+WJZAK1NbvqjtqalKDgk17GAXeZWT7wEvByeY2Cc+5H4MdazH8CMBi/9fV9aNi/gOuBI9nRGEWf1bBLA+Oc22xmg4Cp+IaoDBjknCuMntbMbgRujBhUD3Bmdm3EsBOcc5+UU3MPYGy4IQrZHPqZXc70IlI1tTW7UluTInSoK4045+7Fb9W8g98F/ZWZdYmerpa7n2FHI3MEvvHZCtyH3918LBA+lj0hqq6iCkpuz44GIQvYp4LpHsFvTYUf48oZNr2C93YHPo8a1gsoBBZX8B4RqYTamnJ1R21NSjDnXNA1SByYWS7wA3CJc64galxLoGUVs1gR3YiYWQdgWejlevxu5iPN7Av8bunG+IapdWhLr7L6dge+AFrjz4LoAawDDnHOfVvFe0cDS5xzI6uYriF+9/ifnXN/Dw0z4BPgC+fc5ZW9X0SqprZGbU2q0aGuNGFm1wOrgc+AEuBCYBtRW0RQ+93Pzrlvzexr/NZSM+DT0KhJwEGh53Oq0RAZ8DS+IZqG3209ATgceNbMfuGcK6tpfeU4BN84XmD+omJrgZFAR+C0GMxfJOOorSmX2poUokNd6aMe/vj3dOC/QD7wC+fc6hgvJ/KY+qTQz8jj3ROqMY/f4TtHbgUudM5txTeem/GdEK+pc5Ved3wnxpvwHSznAA2Aw6rRIVJEyqe2ZlfdUVuTMnSoS0RERDKG9viIiIhIxlDwERERkYyh4CMiIiIZQ8FHREREMoaCj4iIiGQMBR8RERHJGAo+IiIikjEUfERERCRjKPiIiIhIxlDwERERkYzx/4M2Ac86OL3aAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–13\n", "\n", "s = np.linspace(-2.5, 2.5, 200)\n", "hinge_pos = np.where(1 - s < 0, 0, 1 - s) # max(0, 1 - s)\n", "hinge_neg = np.where(1 + s < 0, 0, 1 + s) # max(0, 1 + s)\n", "\n", "titles = (r\"Hinge loss = $max(0, 1 - s\\,t)$\", r\"Squared Hinge loss\")\n", "\n", "fix, axs = plt.subplots(1, 2, sharey=True, figsize=(8.2, 3))\n", "\n", "for ax, loss_pos, loss_neg, title in zip(\n", " axs, (hinge_pos, hinge_pos ** 2), (hinge_neg, hinge_neg ** 2), titles):\n", " ax.plot(s, loss_pos, \"g-\", linewidth=2, zorder=10, label=\"$t=1$\")\n", " ax.plot(s, loss_neg, \"r--\", linewidth=2, zorder=10, label=\"$t=-1$\")\n", " ax.grid(True, which='both')\n", " ax.axhline(y=0, color='k')\n", " ax.axvline(x=0, color='k')\n", " ax.set_xlabel(r\"$s = \\mathbf{w}^\\intercal \\mathbf{x} + b$\")\n", " ax.axis([-2.5, 2.5, -0.5, 2.5])\n", " ax.legend(loc=\"center right\")\n", " ax.set_title(title)\n", " ax.set_yticks(np.arange(0, 2.5, 1))\n", " ax.set_aspect(\"equal\")\n", "\n", "save_fig(\"hinge_plot\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Extra Material" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Linear SVM classifier implementation using Batch Gradient Descent" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "X = iris.data[[\"petal length (cm)\", \"petal width (cm)\"]].values\n", "y = (iris.target == 2)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "from sklearn.base import BaseEstimator\n", "\n", "class MyLinearSVC(BaseEstimator):\n", " def __init__(self, C=1, eta0=1, eta_d=10000, n_epochs=1000,\n", " random_state=None):\n", " self.C = C\n", " self.eta0 = eta0\n", " self.n_epochs = n_epochs\n", " self.random_state = random_state\n", " self.eta_d = eta_d\n", "\n", " def eta(self, epoch):\n", " return self.eta0 / (epoch + self.eta_d)\n", " \n", " def fit(self, X, y):\n", " # Random initialization\n", " if self.random_state:\n", " np.random.seed(self.random_state)\n", " w = np.random.randn(X.shape[1], 1) # n feature weights\n", " b = 0\n", "\n", " m = len(X)\n", " t = np.array(y, dtype=np.float64).reshape(-1, 1) * 2 - 1\n", " X_t = X * t\n", " self.Js=[]\n", "\n", " # Training\n", " for epoch in range(self.n_epochs):\n", " support_vectors_idx = (X_t.dot(w) + t * b < 1).ravel()\n", " X_t_sv = X_t[support_vectors_idx]\n", " t_sv = t[support_vectors_idx]\n", "\n", " J = 1/2 * (w * w).sum() + self.C * ((1 - X_t_sv.dot(w)).sum() - b * t_sv.sum())\n", " self.Js.append(J)\n", "\n", " w_gradient_vector = w - self.C * X_t_sv.sum(axis=0).reshape(-1, 1)\n", " b_derivative = -self.C * t_sv.sum()\n", " \n", " w = w - self.eta(epoch) * w_gradient_vector\n", " b = b - self.eta(epoch) * b_derivative\n", " \n", "\n", " self.intercept_ = np.array([b])\n", " self.coef_ = np.array([w])\n", " support_vectors_idx = (X_t.dot(w) + t * b < 1).ravel()\n", " self.support_vectors_ = X[support_vectors_idx]\n", " return self\n", "\n", " def decision_function(self, X):\n", " return X.dot(self.coef_[0]) + self.intercept_[0]\n", "\n", " def predict(self, X):\n", " return self.decision_function(X) >= 0" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ True],\n", " [False]])" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "C = 2\n", "svm_clf = MyLinearSVC(C=C, eta0 = 10, eta_d = 1000, n_epochs=60000,\n", " random_state=2)\n", "svm_clf.fit(X, y)\n", "svm_clf.predict(np.array([[5, 2], [4, 1]]))" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(range(svm_clf.n_epochs), svm_clf.Js)\n", "plt.axis([0, svm_clf.n_epochs, 0, 100])\n", "plt.xlabel(\"Epochs\")\n", "plt.ylabel(\"Loss\")\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[-15.56761653] [[[2.28120287]\n", " [2.71621742]]]\n" ] } ], "source": [ "print(svm_clf.intercept_, svm_clf.coef_)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[-15.51721253] [[2.27128546 2.71287145]]\n" ] } ], "source": [ "svm_clf2 = SVC(kernel=\"linear\", C=C)\n", "svm_clf2.fit(X, y.ravel())\n", "print(svm_clf2.intercept_, svm_clf2.coef_)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "yr = y.ravel()\n", "fig, axes = plt.subplots(ncols=2, figsize=(11, 3.2), sharey=True)\n", "plt.sca(axes[0])\n", "plt.plot(X[:, 0][yr==1], X[:, 1][yr==1], \"g^\", label=\"Iris virginica\")\n", "plt.plot(X[:, 0][yr==0], X[:, 1][yr==0], \"bs\", label=\"Not Iris virginica\")\n", "plot_svc_decision_boundary(svm_clf, 4, 6)\n", "plt.xlabel(\"Petal length\")\n", "plt.ylabel(\"Petal width\")\n", "plt.title(\"MyLinearSVC\")\n", "plt.axis([4, 6, 0.8, 2.8])\n", "plt.legend(loc=\"upper left\")\n", "plt.grid()\n", "\n", "plt.sca(axes[1])\n", "plt.plot(X[:, 0][yr==1], X[:, 1][yr==1], \"g^\")\n", "plt.plot(X[:, 0][yr==0], X[:, 1][yr==0], \"bs\")\n", "plot_svc_decision_boundary(svm_clf2, 4, 6)\n", "plt.xlabel(\"Petal length\")\n", "plt.title(\"SVC\")\n", "plt.axis([4, 6, 0.8, 2.8])\n", "plt.grid()\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[-12.52988101 1.94162342 1.84544824]\n" ] }, { "data": { "image/png": "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++93Prv69evrt99+a7dYAUNUVJTz2d144426atWqXB8z4JS9HYdR9rk/tjd4K/eqVavSmCfGjRuXuwLnI1LNE6nP7v7779fY2Fi7xQoI1q9fr40aNXI+ux49eujhw4dzbTyj7I2y94uxvcEXcl++fFknTZqkxYoVMz752eTKlSv62muvafHixRXQ6667Lk/NE4FMYmKivvnmm1qyZEkFtEiRIvrKK69oSkqKz8cyyt4oe78Y2xt8Kffp06fTnI8ePdqYJzzkyJEj+vDDD6cxT6xevdpusQKCuLg47du3rwI6aNCgXBnDKPtsKnvjjeN/5JbcGzduTGOe+O2333wjcD5n3bp1eWqeyE9s3rxZT5486Tzfvn27HjhwwCd9G2XvwWGCqgom7swTkydPTrMHisE97swT48aN00uXLtktWsCQkJCg9evX18KFC+uLL76oFy9e9Ko/o+yNsjdkQXrzRN26dfXrr7+2W6yAwNU8AWitWrV02bJluWKTzm+cPXtW+/fv73x21atX14ULF+b42Rllb5S9wUNczRNDhw61W5yAYvPmzdqkSROn4urevbvPzBP5na1bt2qLFi2cz65r1666f//+bPdjlL1R9oZskJiYqDNmzNAzZ844y/bv32/MEx5w9epVnTFjhl5//fUK+Mw8URBISkrSd999V8uUKaOA1qhRI9vbTxtlb5S9wQsuX76stWvXNuaJbPDnn3/61DxRkIiPj9ennnpKP/vsM2dZYmKiR8/OV8o+XyccNxgyIi4ujhIlShAbG0uvXr245557nLlODe6pVKkSH3/8MT/++CMtWrTgyJEj9O7dmzvvvJPo6Gi7xfNrypcvz+zZs3n00UedZRMnTqRLly5ERkbmjRC++Mbw18PM7A2ZYcwTOScpKUnfe+89p3miUKFC+p///EfPnz9vt2gBweXLl7VatWoKaHBwsA4fPlzPnj3rti7GjGOUvcE3pDdPtG/f3pgmPCTVPCEiCmjVqlX1888/N8/PA06dOqXPPPOMBgUFKaCVKlXSefPmXfPsjLI3yt7gY3788Udt2bKlfvnll3aLEnDs2LFD27Rp4/zC7NSpk0ZERNgtVkCwe/duveWWW5zPrmPHjnru3DnndV8pe2OzNxgc3HLLLezYsYPevXs7y15++WVGjx7NhQsXbJTM/2nTpg3btm3jgw8+oFy5cmzcuJHm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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from sklearn.linear_model import SGDClassifier\n", "\n", "sgd_clf = SGDClassifier(loss=\"hinge\", alpha=0.017, max_iter=1000, tol=1e-3,\n", " random_state=42)\n", "sgd_clf.fit(X, y)\n", "\n", "m = len(X)\n", "t = np.array(y).reshape(-1, 1) * 2 - 1 # -1 if y == 0, or +1 if y == 1\n", "X_b = np.c_[np.ones((m, 1)), X] # Add bias input x0=1\n", "X_b_t = X_b * t\n", "sgd_theta = np.r_[sgd_clf.intercept_[0], sgd_clf.coef_[0]]\n", "print(sgd_theta)\n", "support_vectors_idx = (X_b_t.dot(sgd_theta) < 1).ravel()\n", "sgd_clf.support_vectors_ = X[support_vectors_idx]\n", "sgd_clf.C = C\n", "\n", "plt.figure(figsize=(5.5, 3.2))\n", "plt.plot(X[:, 0][yr==1], X[:, 1][yr==1], \"g^\")\n", "plt.plot(X[:, 0][yr==0], X[:, 1][yr==0], \"bs\")\n", "plot_svc_decision_boundary(sgd_clf, 4, 6)\n", "plt.xlabel(\"Petal length\")\n", "plt.ylabel(\"Petal width\")\n", "plt.title(\"SGDClassifier\")\n", "plt.axis([4, 6, 0.8, 2.8])\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise solutions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. to 8." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. The fundamental idea behind Support Vector Machines is to fit the widest possible \"street\" between the classes. In other words, the goal is to have the largest possible margin between the decision boundary that separates the two classes and the training instances. When performing soft margin classification, the SVM searches for a compromise between perfectly separating the two classes and having the widest possible street (i.e., a few instances may end up on the street). Another key idea is to use kernels when training on nonlinear datasets. SVMs can also be tweaked to perform linear and nonlinear regression, as well as novelty detection.\n", "2. After training an SVM, a _support vector_ is any instance located on the \"street\" (see the previous answer), including its border. The decision boundary is entirely determined by the support vectors. Any instance that is _not_ a support vector (i.e., is off the street) has no influence whatsoever; you could remove them, add more instances, or move them around, and as long as they stay off the street they won't affect the decision boundary. Computing the predictions with a kernelized SVM only involves the support vectors, not the whole training set.\n", "3. SVMs try to fit the largest possible \"street\" between the classes (see the first answer), so if the training set is not scaled, the SVM will tend to neglect small features (see Figure 5–2).\n", "4. You can use the `decision_function()` method to get confidence scores. These scores represent the distance between the instance and the decision boundary. However, they cannot be directly converted into an estimation of the class probability. If you set `probability=True` when creating an `SVC`, then at the end of training it will use 5-fold cross-validation to generate out-of-sample scores for the training samples, and it will train a `LogisticRegression` model to map these scores to estimated probabilities. The `predict_proba()` and `predict_log_proba()` methods will then be available.\n", "5. All three classes can be used for large-margin linear classification. The `SVC` class also supports the kernel trick, which makes it capable of handling nonlinear tasks. However, this comes at a cost: the `SVC` class does not scale well to datasets with many instances. It does scale well to a large number of features, though. The `LinearSVC` class implements an optimized algorithm for linear SVMs, while `SGDClassifier` uses Stochastic Gradient Descent. Depending on the dataset `LinearSVC` may be a bit faster than `SGDClassifier`, but not always, and `SGDClassifier` is more flexible, plus it supports incremental learning.\n", "6. If an SVM classifier trained with an RBF kernel underfits the training set, there might be too much regularization. To decrease it, you need to increase `gamma` or `C` (or both).\n", "7. A Regression SVM model tries to fit as many instances within a small margin around its predictions. If you add instances within this margin, the model will not be affected at all: it is said to be _ϵ-insensitive_.\n", "8. The kernel trick is mathematical technique that makes it possible to train a nonlinear SVM model. The resulting model is equivalent to mapping the inputs to another space using a nonlinear transformation, then training a linear SVM on the resulting high-dimensional inputs. The kernel trick gives the same result without having to transform the inputs at all." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 9." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_Exercise: Train a `LinearSVC` on a linearly separable dataset. Then train an `SVC` and a `SGDClassifier` on the same dataset. See if you can get them to produce roughly the same model._" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's use the Iris dataset: the Iris Setosa and Iris Versicolor classes are linearly separable." ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "from sklearn import datasets\n", "\n", "iris = datasets.load_iris(as_frame=True)\n", "X = iris.data[[\"petal length (cm)\", \"petal width (cm)\"]].values\n", "y = iris.target\n", "\n", "setosa_or_versicolor = (y == 0) | (y == 1)\n", "X = X[setosa_or_versicolor]\n", "y = y[setosa_or_versicolor]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's build and train 3 models:\n", "* Remember that `LinearSVC` uses `loss=\"squared_hinge\"` by default, so if we want all 3 models to produce similar results, we need to set `loss=\"hinge\"`.\n", "* Also, the `SVC` class uses an RBF kernel by default, so we need to set `kernel=\"linear\"` to get similar results as the other two models.\n", "* Lastly, the `SGDClassifier` class does not have a `C` hyperparameter, but it has another regularization hyperparameter called `alpha`, so we can tweak it to get similar results as the other two models." ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "from sklearn.svm import SVC, LinearSVC\n", "from sklearn.linear_model import SGDClassifier\n", "from sklearn.preprocessing import StandardScaler\n", "\n", "C = 5\n", "alpha = 0.05\n", "\n", "scaler = StandardScaler()\n", "X_scaled = scaler.fit_transform(X)\n", "\n", "lin_clf = LinearSVC(loss=\"hinge\", C=C, random_state=42).fit(X_scaled, y)\n", "svc_clf = SVC(kernel=\"linear\", C=C).fit(X_scaled, y)\n", "sgd_clf = SGDClassifier(alpha=alpha, random_state=42).fit(X_scaled, y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's plot the decision boundaries of these three models:" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def compute_decision_boundary(model):\n", " w = -model.coef_[0, 0] / model.coef_[0, 1]\n", " b = -model.intercept_[0] / model.coef_[0, 1]\n", " return scaler.inverse_transform([[-10, -10 * w + b], [10, 10 * w + b]])\n", "\n", "lin_line = compute_decision_boundary(lin_clf)\n", "svc_line = compute_decision_boundary(svc_clf)\n", "sgd_line = compute_decision_boundary(sgd_clf)\n", "\n", "# Plot all three decision boundaries\n", "plt.figure(figsize=(11, 4))\n", "plt.plot(lin_line[:, 0], lin_line[:, 1], \"k:\", label=\"LinearSVC\")\n", "plt.plot(svc_line[:, 0], svc_line[:, 1], \"b--\", linewidth=2, label=\"SVC\")\n", "plt.plot(sgd_line[:, 0], sgd_line[:, 1], \"r-\", label=\"SGDClassifier\")\n", "plt.plot(X[:, 0][y==1], X[:, 1][y==1], \"bs\") # label=\"Iris versicolor\"\n", "plt.plot(X[:, 0][y==0], X[:, 1][y==0], \"yo\") # label=\"Iris setosa\"\n", "plt.xlabel(\"Petal length\")\n", "plt.ylabel(\"Petal width\")\n", "plt.legend(loc=\"upper center\")\n", "plt.axis([0, 5.5, 0, 2])\n", "plt.grid()\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Close enough!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 10." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_Exercise: Train an SVM classifier on the Wine dataset, which you can load using `sklearn.datasets.load_wine()`. This dataset contains the chemical analysis of 178 wine samples produced by 3 different cultivators: the goal is to train a classification model capable of predicting the cultivator based on the wine's chemical analysis. Since SVM classifiers are binary classifiers, you will need to use one-versus-all to classify all 3 classes. What accuracy can you reach?_" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, let's fetch the dataset, look at its description, then split it into a training set and a test set:" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "from sklearn.datasets import load_wine\n", "\n", "wine = load_wine(as_frame=True)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ ".. _wine_dataset:\n", "\n", "Wine recognition dataset\n", "------------------------\n", "\n", "**Data Set Characteristics:**\n", "\n", " :Number of Instances: 178 (50 in each of three classes)\n", " :Number of Attributes: 13 numeric, predictive attributes and the class\n", " :Attribute Information:\n", " \t\t- Alcohol\n", " \t\t- Malic acid\n", " \t\t- Ash\n", "\t\t- Alcalinity of ash \n", " \t\t- Magnesium\n", "\t\t- Total phenols\n", " \t\t- Flavanoids\n", " \t\t- Nonflavanoid phenols\n", " \t\t- Proanthocyanins\n", "\t\t- Color intensity\n", " \t\t- Hue\n", " \t\t- OD280/OD315 of diluted wines\n", " \t\t- Proline\n", "\n", " - class:\n", " - class_0\n", " - class_1\n", " - class_2\n", "\t\t\n", " :Summary Statistics:\n", " \n", " ============================= ==== ===== ======= =====\n", " Min Max Mean SD\n", " ============================= ==== ===== ======= =====\n", " Alcohol: 11.0 14.8 13.0 0.8\n", "<<26 more lines>>\n", "wine.\n", "\n", "Original Owners: \n", "\n", "Forina, M. et al, PARVUS - \n", "An Extendible Package for Data Exploration, Classification and Correlation. \n", "Institute of Pharmaceutical and Food Analysis and Technologies,\n", "Via Brigata Salerno, 16147 Genoa, Italy.\n", "\n", "Citation:\n", "\n", "Lichman, M. (2013). UCI Machine Learning Repository\n", "[https://archive.ics.uci.edu/ml]. Irvine, CA: University of California,\n", "School of Information and Computer Science. \n", "\n", ".. topic:: References\n", "\n", " (1) S. Aeberhard, D. Coomans and O. de Vel, \n", " Comparison of Classifiers in High Dimensional Settings, \n", " Tech. Rep. no. 92-02, (1992), Dept. of Computer Science and Dept. of \n", " Mathematics and Statistics, James Cook University of North Queensland. \n", " (Also submitted to Technometrics). \n", "\n", " The data was used with many others for comparing various \n", " classifiers. The classes are separable, though only RDA \n", " has achieved 100% correct classification. \n", " (RDA : 100%, QDA 99.4%, LDA 98.9%, 1NN 96.1% (z-transformed data)) \n", " (All results using the leave-one-out technique) \n", "\n", " (2) S. Aeberhard, D. Coomans and O. de Vel, \n", " \"THE CLASSIFICATION PERFORMANCE OF RDA\" \n", " Tech. Rep. no. 92-01, (1992), Dept. of Computer Science and Dept. of \n", " Mathematics and Statistics, James Cook University of North Queensland. \n", " (Also submitted to Journal of Chemometrics).\n", "\n" ] } ], "source": [ "print(wine.DESCR)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "from sklearn.model_selection import train_test_split\n", "\n", "X_train, X_test, y_train, y_test = train_test_split(\n", " wine.data, wine.target, random_state=42)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
alcoholmalic_acidashalcalinity_of_ashmagnesiumtotal_phenolsflavanoidsnonflavanoid_phenolsproanthocyaninscolor_intensityhueod280/od315_of_diluted_winesproline
213.162.362.6718.6101.02.803.240.302.815.681.033.171185.0
10012.082.081.7017.597.02.232.170.261.403.301.272.96710.0
12212.424.432.7326.5102.02.202.130.431.712.080.923.12365.0
15412.581.292.1020.0103.01.480.580.531.407.600.581.55640.0
5113.831.652.6017.294.02.452.990.222.295.601.243.371265.0
\n", "
" ], "text/plain": [ " alcohol malic_acid ash alcalinity_of_ash magnesium total_phenols \\\n", "2 13.16 2.36 2.67 18.6 101.0 2.80 \n", "100 12.08 2.08 1.70 17.5 97.0 2.23 \n", "122 12.42 4.43 2.73 26.5 102.0 2.20 \n", "154 12.58 1.29 2.10 20.0 103.0 1.48 \n", "51 13.83 1.65 2.60 17.2 94.0 2.45 \n", "\n", " flavanoids nonflavanoid_phenols proanthocyanins color_intensity hue \\\n", "2 3.24 0.30 2.81 5.68 1.03 \n", "100 2.17 0.26 1.40 3.30 1.27 \n", "122 2.13 0.43 1.71 2.08 0.92 \n", "154 0.58 0.53 1.40 7.60 0.58 \n", "51 2.99 0.22 2.29 5.60 1.24 \n", "\n", " od280/od315_of_diluted_wines proline \n", "2 3.17 1185.0 \n", "100 2.96 710.0 \n", "122 3.12 365.0 \n", "154 1.55 640.0 \n", "51 3.37 1265.0 " ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_train.head()" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2 0\n", "100 1\n", "122 1\n", "154 2\n", "51 0\n", "Name: target, dtype: int64" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y_train.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's start simple, with a linear SVM classifier. It will automatically use the One-vs-All (also called One-vs-the-Rest, OvR) strategy, so there's nothing special we need to do to handle multiple classes. Easy, right?" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/ageron/miniconda3/envs/homl3/lib/python3.8/site-packages/sklearn/svm/_base.py:1206: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", " warnings.warn(\n" ] }, { "data": { "text/plain": [ "LinearSVC(random_state=42)" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lin_clf = LinearSVC(random_state=42)\n", "lin_clf.fit(X_train, y_train)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Oh no! It failed to converge. Can you guess why? Do you think we must just increase the number of training iterations? Let's see:" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/ageron/miniconda3/envs/homl3/lib/python3.8/site-packages/sklearn/svm/_base.py:1206: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", " warnings.warn(\n" ] }, { "data": { "text/plain": [ "LinearSVC(max_iter=1000000, random_state=42)" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lin_clf = LinearSVC(max_iter=1_000_000, random_state=42)\n", "lin_clf.fit(X_train, y_train)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Even with one million iterations, it still did not converge. There must be another problem.\n", "\n", "Let's still evaluate this model with `cross_val_score`, it will serve as a baseline:" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/ageron/miniconda3/envs/homl3/lib/python3.8/site-packages/sklearn/svm/_base.py:1206: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", " warnings.warn(\n", "/Users/ageron/miniconda3/envs/homl3/lib/python3.8/site-packages/sklearn/svm/_base.py:1206: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", " warnings.warn(\n", "/Users/ageron/miniconda3/envs/homl3/lib/python3.8/site-packages/sklearn/svm/_base.py:1206: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", " warnings.warn(\n", "/Users/ageron/miniconda3/envs/homl3/lib/python3.8/site-packages/sklearn/svm/_base.py:1206: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", " warnings.warn(\n", "/Users/ageron/miniconda3/envs/homl3/lib/python3.8/site-packages/sklearn/svm/_base.py:1206: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", " warnings.warn(\n" ] }, { "data": { "text/plain": [ "0.90997150997151" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.model_selection import cross_val_score\n", "\n", "cross_val_score(lin_clf, X_train, y_train).mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Well 91% accuracy on this dataset is not great. So did you guess what the problem is?\n", "\n", "That's right, we forgot to scale the features! Always remember to scale the features when using SVMs:" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Pipeline(steps=[('standardscaler', StandardScaler()),\n", " ('linearsvc', LinearSVC(random_state=42))])" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lin_clf = make_pipeline(StandardScaler(),\n", " LinearSVC(random_state=42))\n", "lin_clf.fit(X_train, y_train)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now it converges without any problem. Let's measure its performance:" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.9774928774928775" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.model_selection import cross_val_score\n", "\n", "cross_val_score(lin_clf, X_train, y_train).mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nice! We get 97.7% accuracy, that's much better." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's see if a kernelized SVM will do better. We will use a default `SVC` for now:" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.9698005698005698" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "svm_clf = make_pipeline(StandardScaler(), SVC(random_state=42))\n", "cross_val_score(svm_clf, X_train, y_train).mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "That's not better, but perhaps we need to do a bit of hyperparameter tuning:" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Pipeline(steps=[('standardscaler', StandardScaler()),\n", " ('svc',\n", " SVC(C=9.925589984899778, gamma=0.011986281799901176,\n", " random_state=42))])" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.model_selection import RandomizedSearchCV\n", "from scipy.stats import reciprocal, uniform\n", "\n", "param_distrib = {\n", " \"svc__gamma\": reciprocal(0.001, 0.1),\n", " \"svc__C\": uniform(1, 10)\n", "}\n", "rnd_search_cv = RandomizedSearchCV(svm_clf, param_distrib, n_iter=100, cv=5,\n", " random_state=42)\n", "rnd_search_cv.fit(X_train, y_train)\n", "rnd_search_cv.best_estimator_" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.9925925925925926" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rnd_search_cv.best_score_" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ah, this looks excellent! Let's select this model. Now we can test it on the test set:" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.9777777777777777" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rnd_search_cv.score(X_test, y_test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This tuned kernelized SVM performs better than the `LinearSVC` model, but we get a lower score on the test set than we measured using cross-validation. This is quite common: since we did so much hyperparameter tuning, we ended up slightly overfitting the cross-validation test sets. It's tempting to tweak the hyperparameters a bit more until we get a better result on the test set, but we this would probably not help, as we would just start overfitting the test set. Anyway, this score is not bad at all, so let's stop here." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 11." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_Exercise: Train and fine-tune an SVM regressor on the California housing dataset. You can use the original dataset rather than the tweaked version we used in Chapter 2. The original dataset can be fetched using `sklearn.datasets.fetch_california_housing()`. The targets represent hundreds of thousands of dollars. Since there are over 20,000 instances, SVMs can be slow, so for hyperparameter tuning you should use much less instances (e.g., 2,000), to test many more hyperparameter combinations. What is your best model's RMSE?_" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's load the dataset:" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "from sklearn.datasets import fetch_california_housing\n", "\n", "housing = fetch_california_housing()\n", "X = housing.data\n", "y = housing.target" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Split it into a training set and a test set:" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "from sklearn.model_selection import train_test_split\n", "\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2,\n", " random_state=42)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Don't forget to scale the data:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's train a simple `LinearSVR` first:" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/ageron/miniconda3/envs/homl3/lib/python3.8/site-packages/sklearn/svm/_base.py:1206: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", " warnings.warn(\n" ] }, { "data": { "text/plain": [ "Pipeline(steps=[('standardscaler', StandardScaler()),\n", " ('linearsvr', LinearSVR(random_state=42))])" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.svm import LinearSVR\n", "\n", "lin_svr = make_pipeline(StandardScaler(), LinearSVR(random_state=42))\n", "lin_svr.fit(X_train, y_train)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It did not converge, so let's increase `max_iter`:" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Pipeline(steps=[('standardscaler', StandardScaler()),\n", " ('linearsvr', LinearSVR(max_iter=5000, random_state=42))])" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lin_svr = make_pipeline(StandardScaler(),\n", " LinearSVR(max_iter=5000, random_state=42))\n", "lin_svr.fit(X_train, y_train)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's see how it performs on the training set:" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.9595484665813285" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.metrics import mean_squared_error\n", "\n", "y_pred = lin_svr.predict(X_train)\n", "mse = mean_squared_error(y_train, y_pred)\n", "mse" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's look at the RMSE:" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.979565447829459" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.sqrt(mse)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this dataset, the targets represent hundreds of thousands of dollars. The RMSE gives a rough idea of the kind of error you should expect (with a higher weight for large errors): so with this model we can expect errors close to $98,000! Not great. Let's see if we can do better with an RBF Kernel. We will use randomized search with cross validation to find the appropriate hyperparameter values for `C` and `gamma`:" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "RandomizedSearchCV(cv=3,\n", " estimator=Pipeline(steps=[('standardscaler',\n", " StandardScaler()),\n", " ('svr', SVR())]),\n", " n_iter=100,\n", " param_distributions={'svr__C': ,\n", " 'svr__gamma': },\n", " random_state=42)" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.svm import SVR\n", "from sklearn.model_selection import RandomizedSearchCV\n", "from scipy.stats import reciprocal, uniform\n", "\n", "svm_clf = make_pipeline(StandardScaler(), SVR())\n", "\n", "param_distrib = {\n", " \"svr__gamma\": reciprocal(0.001, 0.1),\n", " \"svr__C\": uniform(1, 10)\n", "}\n", "rnd_search_cv = RandomizedSearchCV(svm_clf, param_distrib,\n", " n_iter=100, cv=3, random_state=42)\n", "rnd_search_cv.fit(X_train[:2000], y_train[:2000])" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Pipeline(steps=[('standardscaler', StandardScaler()),\n", " ('svr', SVR(C=4.63629602379294, gamma=0.08781408196485974))])" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rnd_search_cv.best_estimator_" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0.58835648, 0.57468589, 0.58085278, 0.57109886, 0.59853029])" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "-cross_val_score(rnd_search_cv.best_estimator_, X_train, y_train,\n", " scoring=\"neg_root_mean_squared_error\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Looks much better than the linear model. Let's select this model and evaluate it on the test set:" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.5854732265172222" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y_pred = rnd_search_cv.best_estimator_.predict(X_test)\n", "rmse = mean_squared_error(y_test, y_pred, squared=False)\n", "rmse" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So SVMs worked very well on the Wine dataset, but not so much on the California Housing dataset. In Chapter 2, we found that Random Forests worked better for that dataset." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And that's all for today!" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.12" }, "nav_menu": {}, "toc": { "navigate_menu": true, "number_sections": true, "sideBar": true, "threshold": 6, "toc_cell": false, "toc_section_display": "block", "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }