{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# 读入数据,获得输入X和输出Y\n", "import pandas as pd\n", "data=pd.read_csv('5_train_classification.csv')\n", "X = data.drop(columns='Y', inplace=False)\n", "Y = data.get('Y')\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# 数据预处理,将原始数据标准化\n", "from sklearn.preprocessing import StandardScaler\n", "scaler = StandardScaler()\n", "scaler.fit(X)\n", "X_std = scaler.transform(X)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# 5次5折交叉验证\n", "from sklearn.model_selection import RepeatedKFold\n", "rkf = RepeatedKFold(n_splits=5, n_repeats=5, random_state=0) #种子设为0" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accuracy: 0.96125\n" ] } ], "source": [ "# 创建神经网络模型\n", "from sklearn.neural_network import MLPClassifier\n", "from sklearn.model_selection import cross_val_score\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "mlp = MLPClassifier(hidden_layer_sizes=(100), activation='relu', solver='adam', alpha=0.0001, batch_size='auto', learning_rate='constant', learning_rate_init=0.001, power_t=0.5, max_iter=200, shuffle=True, random_state=None, tol=0.0001, verbose=False, warm_start=False, momentum=0.9, nesterovs_momentum=True, early_stopping=False, validation_fraction=0.1, beta_1=0.9, beta_2=0.999, epsilon=1e-08, n_iter_no_change=10, max_fun=15000)\n", "mlp.fit(X_std, Y)\n", "ACC = cross_val_score(mlp, X_std, Y, cv=rkf,scoring='accuracy').mean()\n", "print('Accuracy:',ACC)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "最优参数: {'activation': 'relu', 'alpha': 1, 'hidden_layer_sizes': (100, 100, 100, 100, 100), 'learning_rate': 'constant', 'solver': 'adam'}\n", "最优模型得分: 0.965\n" ] } ], "source": [ "# 超参数调优\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "from sklearn.model_selection import GridSearchCV\n", "parameters = {'hidden_layer_sizes': [(10,10,10,10,10),(20,20,20,20,20),(30,30,30,30,30),(40,40,40,40,40),(50,50,50,50,50),(60,60,60,60,60),(70,70,70,70,70),(80,80,80,80,80),(90,90,90,90,90),(100,100,100,100,100)],\n", " 'activation': ['identity', 'logistic','tanh', 'relu'],\n", " 'solver': ['adam','lbgfs','sgd'],\n", " 'alpha': [0.0001, 0.001, 0.01, 0.1, 1,10,100],\n", " 'learning_rate': ['constant', 'invscaling', 'adaptive']}\n", "grid = GridSearchCV(mlp, parameters, cv=rkf, scoring='accuracy',n_jobs=-1)\n", "grid.fit(X_std, Y)\n", "print('最优参数:',grid.best_params_)\n", "print('最优模型得分:',grid.best_score_)\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['mlp_classification.pkl']" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 保存模型\n", "import joblib\n", "joblib.dump(grid.best_params_, 'mlp_classification.pkl')" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "# 读取模型\n", "import joblib\n", "mlp_classification = joblib.load('mlp_classification.pkl')" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfYAAAFlCAYAAAAZGcpRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABdlklEQVR4nO3dd1gU1/f48ffuwlJEBGss2LDGEoO9YMeOBVQQxdg1Kho1xo4Nscca28eOxi72mFhjb8QSk1hii0YjGkEFpO78/vDL/CSCoLIs5byeJ0/YmWHm7BU4e+/cuUejKIqCEEIIITIFrakDEEIIIUTqkcQuhBBCZCKS2IUQQohMRBK7EEIIkYlIYhdCCCEyEUnsQgghRCZiZuoAhDC20qVLU6pUKbRaLRqNhlevXmFjY8OECROoUKECABERESxYsIDDhw+j1+sBaNiwIV9++SWWlpbquQIDA9m4cSORkZHExMRQuXJlhg8fjq2tbaLXft/j09qjR4/o3bs3Op2OCRMm8Pnnn7/3OR48eECjRo2oWrUq69atS7Bv5MiRBAYGcvr0aSIiInB1deXixYtvnWPBggWsX7+efPnyodFoiIuLI1euXIwfP55ixYoBcOvWLebOncvdu3fRaDTY2try1VdfUaVKFR48eJDkuT9G7969GTFiBCVKlGD8+PEcP34cV1dXfv/9d3W7EOmOIkQmV6pUKeXff/9NsG358uVKx44dFUVRlJiYGKVjx46Kv7+/EhERoSiKokRERCiTJ09WvLy8lJiYGEVRFGXx4sVKp06dlCdPniiKoijR0dHKhAkTlE6dOiV63fc93hQCAwOVL7744qPOcf/+faVChQpKrVq1lAcPHqjbw8PDFRcXF7X979+/r1SqVCnRc8yfP1+ZOHFigm1r165V2rVrpyiKoty6dUupXbu2cuzYMXX/qVOnlMqVKys3btx457lTS+nSpZVHjx4Z9RpCpAYZihdZTmxsLI8ePSJHjhwA7N+/H4PBwKhRo7CysgLAysqKMWPGEBYWxoEDB4iIiGDp0qX4+/uTO3duAMzNzfnmm2/w9PQkOjo6wTVScvyCBQuYNGmS+j1vvvb29mbgwIG0aNGCNWvWUL16dfUacXFxODs7c+vWLV6+fMnIkSNxc3PD1dUVf39/YmNjAZg/fz6urq64ubnRs2dPgoODE8R45swZ5s6dy6+//oq3tzcAmzZtolWrVrRu3ZoePXpw584d4HXPu1+/frRs2ZKZM2e+1aY6nY7mzZuze/duddtPP/1Eo0aNPuSfCICaNWuq1//f//6Hu7s7zs7OCfbPnj07wYgKwNOnT+nfvz8eHh40bNgQb29v/v33XwC+//57Wrdujbu7O15eXvz555/v3N6wYUN+/fVXvLy8UBSF3r17c+HCBXU7wOHDh+nQoQNt27bF09NTHTVYsGABPXv2xNXVla+//vqD20GI9yWJXWQJX3zxBa6urtSpU4emTZsCMHXqVAAuXrxIlSpV3voejUZDzZo1CQoK4vbt21haWlK0aNEEx1hZWdG6dWt1+D7e+x6fGFtbW/bt28cXX3xByZIlOXz4MAAnTpygUKFCODo64u/vT7ly5di+fTs7duwgJCSEVatW8ejRI9asWcO2bdvYvn07tWvX5sqVKwnOX6NGDQYNGkSVKlUICAjg9OnTLF++nLVr17Jr1y5atWrFgAEDUP5vccrIyEj27t3L8OHDE423bdu27Ny5U329Y8cO2rVrl+z7TExsbCxbt26levXqAFy9ehUnJ6e3jqtXrx4ODg4Jtu3du5dKlSqxadMmDh06hKWlJTt37iQuLg5/f3+WL1/Otm3b6NixI0FBQUluf9P3338PwJo1axL8rNy9e5c5c+awbNkyduzYweTJk/Hx8SEiIgKAv//+m8DAQGbNmvVB7SDEh5B77CJLWLNmDTlz5uS3336jT58+VK9enVy5cqn743u5/xUdHY1Op0Or1WIwGFJ8vfc9PjFvJpD27dsTGBhIs2bN2L59Ox07dgTg6NGj/Prrr2zduhV4nXwB8uXLR5kyZWjXrh1169albt261KxZ853XO378OC1atCBnzpwAuLm5MWXKFB48eABA5cqV3/n95cuXR6fTcfXqVXLlykV4eDilSpVK8fvdt2+fmlBjYmIoV64ckydPBl5/yEppe37xxRdcuHCBVatWcffuXW7evMlnn32GTqejWbNmeHp6Ur9+ferUqUO9evWS3J4SJ0+eJDg4mG7duqnbNBoNf/31FwCVKlXCzEz+zIq0JT9xIkspV64co0aNYuTIkZQtW5ZChQrh5OTE8uXLMRgMaLX/fxDLYDBw/vx5vvzyS0qUKEFsbCx3795N0AuPiopi4MCB+Pn5kS9fPnV7So7XaDRqbxheJ7M3WVtbq183b96cadOmcevWLc6fP8+0adPUGOfNm4ejoyMAL168QKPRoNVqWbduHb/++iunT5/G398fZ2dnvvnmmyTbJrHEqSiK+qHnzXiS0rp1a3bt2kXOnDlp06ZNsse/qUWLFvj6+ia6r1KlSly6dIkGDRok2L5w4UIKFy6coDc/c+ZMrly5gru7O9WrVyc2NlZt51mzZnHjxg1OnTrFsmXL2LlzJ/PmzUtye3IMBgM1a9Zk7ty56rZHjx6RN29eDhw4kKI2EyK1yVC8yHJatWpFxYoV1aH4pk2bYmVlhb+/v9rjjYyMZPLkyWTLlg0XFxf0ej29e/dmzJgxPH36FHjdm/f39+fVq1cJkjqQouPt7e357bffUBSFsLAwjhw5kmTMFhYWtGzZkpEjR9KkSRN1LkCdOnVYvXo1iqIQHR3Nl19+ybp167h27RqtWrXC0dGRvn370q1bN/WecFKcnZ3Zt28fz549A2Dbtm3Y2dlRpEiRFLdtmzZt2L9/P/v27aNVq1Yp/r7k9OzZky1btnDixAl127FjxwgICKBMmTIJjj1x4gRffPEFbdu2JVeuXJw6dYq4uDiePXtGvXr1sLOzo1u3bnz11Vf8+uuvSW5PiZo1a3Ly5Elu3boFwM8//0zr1q3VnyMhTEF67CJLGjduHK1bt+b48eM4OzuzcuVKFi1ahJubG1qtlri4OBo2bMjKlSsxNzcHoF+/flhZWdGzZ0/gde+7WrVqLFq0KNFrJHd8/PWbNGlCvnz5qFatWoIe/H916NCBdevWMWHCBHXbmDFjmDJlCq6ursTExFCrVi169eqFubk5zZs3x93dHWtraywtLRk7duw726R27dp069aNL774AoPBQM6cOVm6dGmCUYzk5MuXD0dHR7Jnz46dnd1b+yMiIt56pG7jxo3JnrdIkSIsWbKEuXPnMn36dDW+xYsXU6pUKfV2AcCAAQOYMWMG8+bNw9zcHCcnJ/766y9y5szJl19+Sbdu3bC0tESn0+Hn55fk9pQoUaIEkyZNYujQoSiKgpmZGYsXLyZbtmwp+n4hjEGjvOsviRBCCCEyFBmKF0IIITIRSexCCCFEJmLUxH758mV14Ys3HT58GHd3dzw8PNi8ebMxQxBCCCGyFKNNnvvf//7Hrl271Nm78WJiYpg6dSpbt27FysqKTp060aBBA/LkyWOsUIQQQogsw2iJvXDhwixYsOCt52Zv3bpF4cKF1eU8K1euzIULF2jevHmS5zIYDISHh2Nubo5GozFWyEIIIUS6oSgKMTExZMuW7b2eTjFaYm/atGmCR1DihYWFkT17dvV1tmzZCAsLe+e5wsPDuXHjRqrHKIQQQqR3pUqVSpA3k5Pmz7Hb2NgQHh6uvg4PD0824PjniEuVKpWiNbbFh7l69Srly5c3dRiZnrSz8UkbG5+0ceqLjIykefPmREVF8cMPP2BlZcWNGzfUHJhSaZ7YHR0duXfvHqGhoVhbW3PhwgV1AY+kxA+/6/V6LCws0iLMLEvaN21IOxuftLHxSRunjri4OHQ6HRYWFowYMYJs2bKRN29eoqKiAN77FnSaJfbdu3cTERGBh4cHI0eOpGfPniiKgru7+1vLcQohhBCZnaIofPvtt+oyzObm5u9dYyExRk3shQoVUh9nc3V1Vbc3bNiQhg0bGvPSQgghRLqm0Wi4c+cODx8+5M6dO+9VDfFdZK14IYQQIo3Exsby888/06hRIwD8/f0xGAyJ1lb4ULLynBBCCJFGfHx86NChA8ePHwfA1tY2VZM6SI9dCCGESDO9e/dGo9EY9YkC6bELIYQQRnLjxg08PT0JDg4GwMnJiUWLFmFvb2+0a0piF0IIIYzkyJEj/PTTTwQGBqbZNWUoXgghhEhFd+/epXDhwmi1Wnr37k3ZsmWpW7duml1feuxCCCFEKvnxxx+pVasWS5cuBUCr1aZpUgdJ7EIIIUSqcXJyokiRIjg4OJgsBhmKF0IIIT6QwWBg2bJlVK1alcqVK5MnTx5Onjz5XtXYUpv02IUQQogPdOnSJUaPHs348ePVbaZM6iA9diGEEOK9GAwGoqKisLKywsnJiYULF+Li4mLqsFTSYxdCCCFS6OnTp7Rp04bhw4er27y8vMiTJ48Jo0pIErsQQgiRQjly5CAsLIznz58TExNj6nASJUPxQgghxDv89ddfXL9+HRcXF8zNzdmxYwe2trbvXSc9rUhiF0IIIZIQFRVF8+bNCQsL48KFC+TJk4ccOXKYOqx3ksQuhBBC/IeiKGg0GiwsLNQZ77lz5zZxVCkjiV0IIYT4P4qisGbNGnbs2MHWrVsxMzOjY8eOpg7rvcjkOSGEEOL/aDQazp07x6VLl7h+/bqpw/kgktiFEEJkaYqicP78efW1v78/p06doly5ciaM6sNJYhdCCJGljRgxgqZNm3Ly5EkA7OzsKFCggImj+nByj10IIUSW1qFDB+7du0eRIkVMHUqqkB67EEKILOXhw4f07duXp0+fAlC1alU2bdpEoUKFTBxZ6pDELoQQIkvZtWsXW7ZsYe3ataYOxShkKF4IIUSm9+TJE3LlyoVWq6V3794UKFAAV1dXU4dlFNJjF0IIkakdP36catWqsXLlSgB0Oh2tW7dOt0vCfixJ7EIIITK1UqVKYWtri4WFhalDSRMyFC+EECJTURSFbdu2UaJECSpVqkS+fPk4f/48er3e1KGlCemxCyGEyFSuXr1Knz59+Oabb1AUBSDLJHWQHrsQQohMQFEUYmNjMTc3p0KFCkydOpWmTZtm2vvo7yKJXQghRIb2/PlzfHx8sLOzY/78+QD07dvXxFGZjiR2IYQQGZqVlRV3794le/bsREZGYmlpaeqQTEoSuxBCiAzn6dOnXL9+ndq1a6PX69m6dSu5c+dGq5WpY5LYhRBCZCgxMTE0adKEkJAQzpw5Q758+cibN6+pw0o3JLELIYTIUMzNzRk6dCjPnz8nd+7cpg4n3ZHELoQQIt3bs2cPGzZsYM2aNZiZmdGlSxdTh5Ruyc0IIYQQ6d6uXbs4fPgwly9fNnUo6Z4kdiGEEOnStWvX1K+nTZvG0aNHqVy5sgkjyhgksQshhEh3/Pz8qF27NmfOnAEgZ86clC5d2sRRZQyS2IUQQqQ7jRs3xsnJCXt7e1OHkuFIYhdCCGFyz58/Z+TIkTx79gyAGjVq8NNPP0kv/QNIYhdCCGFyGzduZNmyZSxevFjdlhXXeU8N8ribEEIIk3jx4gXZs2dHo9HQq1cvrKys6NSpk6nDyvCkxy6EECLNBQUFUatWLVavXg2ATqeja9eumJubmzawTEASuxBCiDRXoEABYmJiePnypalDyXRkKF4IIUSaOHz4MHnz5qV8+fLkz5+foKAgbGxsTB1WpiM9diGEEEZ37do12rdvz+DBg1EUBUCSupFIj10IIYTRGAwGtFotZcqUYezYsTRu3FhmuxuZJHYhhBCpLiIiAl9fXwBmzZoFwNChQ00ZUpYhiV0IIUSq0+l0nD59Go1GQ0REBNbW1qYOKcuQxC6EECJVhIWFcf36dSpXroyFhQUbN24kb968WFhYmDq0LEUSuxBCiI8WFxdHs2bNePjwIadPnyZfvnw4ODiYOqwsyWiJ3WAwMGHCBK5fv45er8fPz48iRYqo+3ft2sWqVavQarW4u7vj5eVlrFCEEEIYmU6no0ePHty/f58cOXKYOpwszWiJ/eDBg0RHR7Np0yYuXbrEtGnTEqwBPGPGDPbs2YO1tTUtW7akZcuW8sMghBAZyKlTp1i7di3fffedmtiF6RntOfagoCCcnZ0BqFSpElevXk2wv3Tp0rx8+ZLo6GgURZHHH4QQIoNZsWIFW7du5ezZs6YORbzBaD32sLCwBIsP6HQ6YmNjMTN7fcmSJUvi7u6OlZUVLi4u2NraGisUIYQQqeTBgwcUKlQIeD3y2q9fP6pWrWriqMSbjJbYbWxsCA8PV18bDAY1qV+7do2jR49y6NAhrK2tGT58OD/88APNmzd/5zn/2+sXqS8oKMjUIWQJ0s7GJ22c+rZs2cKKFSv49ttv+fTTT7l79y5arVbaOp0xWmJ3cnLiyJEjtGjRgkuXLlGqVCl1X/bs2bG0tMTCwgKdTkfOnDl58eJFsucsX768PDZhREFBQVSuXNnUYWR60s7GJ21sHFFRURw5coRPP/0UQNrYyKKioj6oQ2u0xO7i4sLJkyfx9PREURT8/f3ZvXs3EREReHh44OHhgZeXF+bm5hQuXJh27doZKxQhhBAf4NWrV8ybN49+/fphZ2dHrVq1OHnyJGZmZtJLT8eMlti1Wi2TJk1KsM3R0VH9ulOnTnTq1MlYlxdCCPGR1q9fz4wZMwgPD2fy5MkA6i1VkX7Jv5AQQghVVFQUer0ejUZDt27diIiIoGfPnqYOS7wHKdsqhBACgN9//5169eoREBAAvO6dDxo0iGzZspk4MvE+JLELIYQAIEeOHDx+/Ji7d++aOhTxEWQoXgghsrCLFy9iZWVFmTJlKFiwIBcuXCBXrlymDkt8BOmxCyFEFnX79m2aNGlC//79MRgMAJLUMwHpsQshRBZVvHhxBg8ejLOzM1qt9PMyC0nsQgiRRURHRzN79mxevnyJv78/AGPHjjVxVCK1yUc0IYTIIgwGA7t27WLv3r28fPnS1OEII5EeuxBCZGIxMTHcvHmTTz/9FEtLSwICAsibNy/Zs2c3dWjCSKTHLoQQmZTBYMDV1ZU2bdrw5MkTAEqUKCHVNDM56bELIUQmpdVqadu2Lb///rsU0MpCJLELIUQm8vvvv7Nq1SqmT5+OVqulb9++aDQaU4cl0pAMxQshRCYye/ZsVqxYwZEjRwAkqWdBktiFECKDe/bsmfr11KlT2bhxI40aNTJhRMKUJLELIUQGtmbNGipWrMgvv/wCQN68eWnSpImJoxKmJIldCCEysOLFi2NrayvPpQuVJHYhhMhA4uLiWLp0Kc+fPwfA2dmZoKAg6tWrZ+LIRHohiV0IITKQgIAARo0axdSpU9VtVlZWJoxIpDfyuJsQQqRzcXFxaLVaNBoNnTt35sGDB/Tv39/UYYl0SnrsQgiRjt29e5cWLVqwYcMGAMzNzRk7diw5c+Y0cWQivZLELoQQ6ZhOp+OPP/7g3Llzpg5FZBAyFC+EEOnM7du3MRgMlChRAgcHB06ePImDg4OpwxIZhPTYhRAiHbl//z7Ozs707duXuLg4AEnq4r1Ij10IIdIRBwcHunbtSrVq1dDpdKYOR2RAktiFEMKEDAYDK1as4PHjx4wdOxYgwaNsQrwvGYoXQggTio6OZvny5axZs4bQ0FBThyMyAemxCyFEGjMYDPz1118ULVoUS0tLVq1aRa5cubCzszN1aCITkB67EEKkIUVR8PLyomnTpvz7778AfPrpp+TLl8/EkYnMQnrsQgiRhjQaDXXq1EGr1aqz3oVITdJjF0III7t//z6TJk3CYDAA0L9/f9avX0/evHlNHJnIjCSxCyGEkU2aNIm5c+eyf/9+AHXddyGMQYbihRDCCMLDw8mWLRsAkydPpmHDhjRv3tzEUYmsQHrsQgiRygIDA/nss8+4fPkyAJ988gmdOnWSXrpIE5LYhRAildnZ2REbG8uDBw9MHYrIgiSxCyHER1IUhS1btvDixQsAGjRowOXLl2nZsqWJIxNZkSR2IYT4SJs2baJv3774+fmp23LkyGHCiERWJpPnhBDiAyiKArx+Lt3NzY2goCB8fHxMHJUQ0mMXQoj39vjxYzp37syWLVsA0Ov1zJw5U8qrinRBErsQQrynyMhIjh8/zt69e00dihBvkaF4IYRIgcePHxMZGUmRIkUoUqQIP/30E6VLlzZ1WEK8RXrsQgiRjEePHlGrVi169+6tru9etmxZtFr5EyrSH+mxCyFEMvLnz0+rVq0oX768LDIj0r1kP24+f/6csWPH0rVrV0JDQxk1ahTPnz9Pi9iEEMJkAgMDmTVrlvp63rx59O7dW3rpIt1L9id03LhxVKhQgdDQUKytrcmbNy/Dhw9Pi9iEEMIkoqKimDJlCvPnz+fp06emDkeI95JsYn/w4AEeHh5otVr0ej1Dhgzhn3/+SYvYhBAiTT1+/BgACwsLli9fzpEjR8idO7eJoxLi/SSb2HU6HS9fvlTvK929e1eGooQQmYqiKPTv35/69esTEhICQKVKlXB0dDRxZEK8v2Qnz/n4+ODt7c2jR4/o378/ly5dwt/fPy1iE0KINKHRaChdujS3b98mLCwMe3t7U4ckxAdLNrHXrVuX8uXLc+XKFeLi4pg0aRK2trZpEZsQQhjNs2fPWLt2LYMHD0aj0TBw4EAGDhyITqczdWhCfJRkx9Q9PDzImTMn9evXp1GjRuTMmRN3d/e0iE0IIYxmzJgxTJo0iZ07dwKvbztKUheZQZI99q5du3Lu3DkAypQpo95j1+l0NGzYMG2iE0KIVBQTE4O5uTkAvr6+lC9fHldXVxNHJUTqSjKxr127FgA/Pz/Gjh2bZgEJIYQxHDp0iCFDhrB+/XoqVKhA/vz5GTBggKnDEiLVJXuPffjw4Rw4cIDw8HAA4uLiePDgAYMHDzZ6cEIIkVoMBgNPnjzht99+o0KFCqYORwijSTaxDxs2jOfPn/PXX39RpUoVzp49i5OTU7InNhgMTJgwgevXr6PX6/Hz86NIkSLq/itXrjBt2jQURSFPnjzMnDkTCwuLj3s3QgjxhkOHDlGtWjWyZ8+Oi4sLFy9e5JNPPjF1WEIYVbKT565fv87atWtxcXGhV69ebNiwgb///jvZEx88eJDo6Gg2bdrEsGHDmDZtmrpPURTGjRvH1KlT2bBhA87Ozik6pxBCpNSuXbvo0KEDkydPVrdJUhdZQbKJPVeuXGg0GooVK8b169dxcHAgJiYm2RMHBQXh7OwMvF7o4erVq+q+O3fuYGdnx5o1a+jSpQuhoaEUL178I96GEEIk1LRpUzp06EC3bt1MHYoQaSrZofiSJUsyefJkOnXqxNdff01wcDCKoiR74rCwMGxsbNTXOp2O2NhYzMzMCAkJ4eLFi4wbN44iRYrQr18/ypcvT82aNd95zjc/HAjjCAoKMnUIWYK0c+oLDw9nyZIlODk50aBBA65evUqfPn149eqVtLeRSLumT8km9gkTJnDx4kVKlCiBj48Pp0+f5ttvv032xDY2NuqEO3h9z93M7PXl7OzsKFKkCCVKlADA2dmZq1evJpvYy5cvL/fhjSgoKIjKlSubOoxMT9rZOO7cucOxY8d49eoV9evXp0qVKqYOKVOTn2Pji4qK+qAO7TuH4m/fvs3Tp0/VX5BGjRrRr18/AgICkj2xk5MTx44dA+DSpUuUKlVK3efg4EB4eDj37t0D4MKFC5QsWfK9gxdCZG0vXrxQ5+cUK1aMnTt3snnzZqmZLrK0JHvsCxYsYOXKlQB899131KpVixUrVrBo0SIqVaqU7IldXFw4efIknp6eKIqCv78/u3fvJiIiAg8PD6ZMmcKwYcNQFIXPP/+c+vXrp9Z7EkJkAU+fPqVBgwYUKlSIPXv2oNPppAcpBO9I7Dt27ODHH38kODiY+fPns3LlSh4/fszcuXPVSXHvotVqmTRpUoJtb1ZKqlmzJlu3bv2I0IUQWVnu3LmpUaMGxYsXx2AwyHKwQvyfJBN7tmzZyJs3L3nz5uXKlSu0bduWpUuXyi+PEMJkjh07xq+//qquGLds2TIZdhfiP5JM7G/WXLe3t2fkyJFpEpAQQiQmJiaGIUOG8Pfff+Pu7s4nn3wiSV2IRCSZ2N/8hbG0tEyTYIQQ4r9evHiBra0t5ubmLFmyBDMzM1loRoh3SDKx37x5k0aNGgHw+PFj9WtFUdBoNBw6dChtIhRCZFljx44lMDCQkydPYmdnR9WqVU0dkhDpXpKJ/ccff0zLOIQQ4i329vZkz56dJ0+eYGdnZ+pwhMgQkkzsBQsWTMs4hBCC8PBwNm3aRPfu3dFoNAwePJgBAwbI7UAh3kOyK88JIURaGT16NAEBAeTIkQN3d3fMzMzUFSuFECkjvzFCCJMyGAzqUzjDhw8nd+7ctGjRwsRRCZFxJVvdDV6vCbxhwwaio6M5f/68sWMSQmQR58+fx9nZmd9//x2AQoUKMW7cOKysrEwcmRAZV7KJfc2aNcydO5fVq1cTHh6Or68vK1asSIvYhBCZ3LNnz7h27RonT540dShCZBrJJvbAwEBWrFiBlZUV9vb2bN26lW3btqVFbEKITOjChQtq5cemTZty7tw5evfubeKohMg8kk3sWq0WvV6vvrawsJBlZYUQH+TAgQM0a9aMyZMnq9verCEhhPh4yU6eq1atGtOnT+fVq1ccPHiQTZs2UaNGjbSITQiRyTg7O+Pi4kKbNm1MHYoQmVayPfZvvvmGIkWKULp0aXbs2EG9evUYMWJEWsQmhMjgIiMjmThxIjt37gReL0+9YcMGatasaeLIhMi8ku2xT5s2jdatW+Pp6ZkW8QghMpGHDx+ydOlSypUrR+vWraVoixBpINnEXrhwYaZMmcLz589xdXXF1dWVQoUKpUVsQogMKCoqiufPn5M3b16KFy/Oxo0bcXJykqQuRBpJdii+S5cubNiwgRUrVqDX6xkwYABeXl5pEZsQIoMJDQ2lYcOG9OjRA4PBAEDdunWxsbExcWRCZB0pWnnu5cuXnDx5kpMnTxIXF0ft2rWNHZcQIgPKkSMHjo6O5MmTh+joaFnjXQgTSDax9+vXj99++40mTZowePBgPvvss7SISwiRQVy5coWgoCC1cMvKlStlfXchTCjZ376OHTtSt25d+UUVQrwlLi6Onj17cu/ePVxcXChUqJD8rRDCxJL8DVywYAE+Pj4cOHCAAwcOvLV/6tSpRg1MCJF+RUZGYmlpiU6nY968eURGRsqkWiHSiSQTe7ly5YDXC9T8l8xuFSLrmjNnDgEBARw9ehRbW1tq1apl6pCEEG9IMrE3bNgQgODgYPr27Ztg37fffmvcqIQQ6VZ0dDTR0dHcu3ePChUqmDocIcR/JJnYZ82axb///svhw4e5e/euuj0uLo7Lly8zdOjQtIhPCGFiMTEx7Nq1Czc3NzQaDUOGDKFfv37kyJHD1KEJIRKRZGJv0qQJt27d4syZMwmG43U6Hf3790+T4IQQpjdu3DiWLVuGwWCgQ4cO6PX6BIWhhBDpS5KJvWLFilSsWBEXFxdZXEKILGzAgAFERUXh4uJi6lCEECmQ5Mpz7dq1A6BKlSqULVtW/a9MmTKULVs2zQIUQqSta9eu0bJlS65duwaAg4MDc+bMwc7OzrSBCSFSJMkee2BgIID6yy2EyBpu377N6dOn2bt3L2XKlDF1OEKI95TsWvF//fUXu3btQlEUfH19cXd35+rVq2kRmxAijdy4cYOIiAgAWrRowaFDhxg2bJiJoxJCfIhkE/uoUaMwGAwcOnSIO3fuMGrUKPz8/NIiNiFEGjhx4gT16tVjypQp6rbPP//chBEJIT5Gsok9KiqKtm3bcuTIEVxdXalSpQrR0dFpEZsQIg1UrlwZJycnatasaepQhBCpINnErtPp+PHHHzl69Cj169fn4MGDaLXJfpsQIp2Ki4vju+++Y9++fQBYWVmxZ88eWrVqZeLIhBCpIdkMPWnSJI4ePcr48ePJmzcve/fulaF4ITKwv/76Cz8/P/z9/dWa6bJMtBCZR7KJvXTp0nTr1o3g4GBWr15Nnz59ZKasEBmMwWAgNDQUgGLFirF69Wp27Ngho29CZELJ/lbv2LGDAQMG8ODBAx4+fMjAgQPZunVrWsQmhEgFL168oFWrVnTr1k3toTdt2pTcuXObODIhhDEkWzh51apVbNmyBXt7ewD69etH165dad++vdGDE0J8vOzZs5MjRw70ej2vXr0iW7Zspg5JCGFEySZ2g8GgJnWAnDlzyv04IdK5u3fvcvbsWTw8PNBoNKxcuRJLS0v53RUiC0g2sZcuXZopU6aoPfStW7fKPXYh0jGDwYCnpye3b9+mWrVqFCtWDCsrK1OHJYRII8kmdj8/PxYsWMDo0aNRFIUaNWowfvz4tIhNCPEe4uLi0Ol0aLVapk+fztOnTylatKipwxJCpLF3JvawsDD++usvBg4cyPDhw9MqJiHEe1q9ejXLli1j//792NraUq9ePVOHJIQwkSRnxf/www/UqlWLHj160LBhQ86dO5eWcQkh3sPff//No0ePpGiTECLpxL548WK2bt3KmTNnmDFjBgsWLEjLuIQQ76AoCgcOHEBRFACGDx/O6dOnqVatmokjE0KYWpKJXaPRUKpUKQCcnZ3VxS2EEKbn5+eHh4eHuqaEXq/nk08+MXFUQoj0IMl77P9dkcrMLNl5dkKINOLt7c2tW7eoXbu2qUMRQqQzSWbr8PBwLly4oA71RUREJHhdtWrVtIlQCMGDBw8YOXIk48ePp2TJkhQtWpTVq1ebOiwhRDqUZGLPly8f8+bNU1/nzZtXfa3RaFi7dq3xoxNCAHDx4kX27dtHiRIlmDBhgqnDEUKkY0km9oCAgLSMQwjxHw8fPiRnzpxYWlri6upKYGAgdevWNXVYQoh0Tko7CZEOnT9/nlq1ajF16lR1W7169WRJWCFEsiSxC5EOffrppxQtWhRHR0dThyKEyGBkqrsQ6YCiKGzevJmcOXPi4uJCtmzZOHz4sNRLF0K8t2T/ajx//pyxY8fStWtXQkNDGTVqFM+fP0+L2ITIMu7fv8/gwYMZPXo0cXFxwNuPnAohREok+5dj3LhxVKhQgdDQUKytrcmbN6+sGy9EKlAUhfDwcAAKFy7MokWL2LZtGzqdzsSRCSEysmQT+4MHD/Dw8ECr1aLX6xkyZAj//PNPsic2GAz4+vri4eGBt7c39+7dS/S4cePGMWvWrPePXIgMLCIigq5du+Lt7a2uDeHm5kbhwoVNHJkQIqNLNrHrdDpevnypzsa9e/duioYIDx48SHR0NJs2bWLYsGFMmzbtrWM2btzIjRs3PiBsITI2KysroqKiiImJ4eXLl6YORwiRiSQ7ec7Hxwdvb28ePXpE//79uXTpEv7+/smeOCgoCGdnZwAqVarE1atXE+y/ePEily9fxsPDg9u3b39g+EJkHE+ePOHMmTMUKFAAjUbD8uXLsbGxkXvpQohUlWxir1u3LuXLl+fKlSvExcUxadIkcufOneyJw8LCsLGxUV/rdDpiY2MxMzMjODiYhQsXsnDhQn744YcUB/vfDwci9QUFBZk6hExJURS+/PJL7t27x7Jly0wdTpYgP8vGJ22cPiWb2BcuXJjg9R9//AHAwIED3/l9NjY26sQgeH3PPb6QzP79+wkJCaFPnz48efKEyMhIihcvjpub2zvPWb58eSwsLJILWXygoKAgKleubOowMhVFUdTbWFOnTuXPP/+kYMGC0s5GJj/LxidtbHxRUVEf1KF9rzHAmJgYDh8+zL///pvssU5OThw7dgyAS5cuqSVgAbp27cr27dsJCAigT58+tGrVKtmkLkRGs2vXLpo0aUJYWBgAjRs3pl+/fjL0LoQwqmR77P/tmQ8YMIAePXoke2IXFxdOnjyJp6cniqLg7+/P7t27iYiIwMPD48MjFiKDuHz5Mr/99htBQUHUq1fP1OEIIbKI9155Ljw8nIcPHyZ7nFarZdKkSQm2JbY8pvTURWZy/vx5qlSpgkaj4ZtvvsHLy0uWhRVCpKlkE3vDhg3Ve4SKovD8+XN69epl9MCEyGjmzJnD5MmTWb58OW5ublhYWEhSF0KkuWQT+9y5c8mVKxfwug67ra1tgtnuQojX2rRpw88//0y5cuVMHYoQIgtLdhbPiBEjKFiwIAULFqRAgQKS1IX4PyEhIfj4+KjrMBQvXpwdO3ZQunRpE0cmhMjKku2xlylThh07dlCxYkUsLS3V7QUKFDBqYEKkd8eOHWP9+vVYWloyc+ZMU4cjhBBAChL75cuXuXz5coJtGo2GQ4cOGS0oIdKr0NBQLC0tsbS0pHXr1qxevZoWLVqYOiwhhFAlmdgDAwNp164dhw8fTst4hEi3rl69ioeHBx4eHvj6+qLRaGjdurWpwxJCiASSvMe+du3atIxDiHSvaNGi2NjYYGtra+pQhBAiSe/9HLsQWcnBgwcxMzOjfv362NjYcPz4cfR6vanDEkKIJCWZ2G/evEmjRo3e2h6/9rXcYxeZ3cOHD+ncuTMFChTg/PnzmJmZSVIXQqR7SSb2IkWKSBUqkSXFxMRgbm5OgQIF+Pbbb/nss8/UAkZCCJHeJfnXytzcnIIFC6ZlLEKYVFRUFCNGjODRo0ds3LgRjUZD586dTR2WEEK8lyQnzzk5OaVlHEKYnF6v5/79+/z999+EhISYOhwhhPggSfbYfX190zIOIUzi5cuXnDt3jkaNGqHRaFi2bBnZs2eXe+lCiAxLCkOLLEtRFNq3b0/nzp25fv06ALly5ZKkLoTI0GRGkMiyNBoNQ4YMISgoiKJFi5o6HCGESBXSYxdZyokTJ3B3dyc8PByAZs2aMWbMGCwsLEwcmRBCpA5J7CJLOXDgAD///DMnTpwwdShCCGEUkthFpnft2jX161GjRnHw4EGaNm1qwoiEEMJ4JLGLTG358uXUrl2bnTt3AmBpaUmlSpVMG5QQQhiRJHaRqdWrV4/y5ctToEABU4cihBBpQhK7yFQiIiIYP348d+/eBaBkyZIcPXqUqlWrmjYwIYRII5LYRaZy8OBBFixYwMyZM9VtGo3GhBEJIUTakufYRYb36tUrdDoder0eV1dX5s2bh7u7u6nDEkIIk5Aeu8jQ/vzzT+rXr6/20DUaDd7e3lhbW5s4MiGEMA1J7CJDy5cvH9HR0URGRpo6FCGESBdkKF5kOEFBQURFRVGrVi2yZ8/O8ePHsbGxMXVYQgiRLkhiFxlKcHAwrVq1Ik+ePJw/fx4LCwtJ6kII8QZJ7CJDMBgMaLVa8ubNy+TJkyldurSs7y6EEImQxC7StdjYWKZPn87169dZs2YNGo2GXr16mTosIYRIt2TynEjXtFot58+f5/LlywQHB5s6HCGESPekxy7SnejoaH755Rdq1KiBVqtlyZIlZMuWjezZs5s6NCGESPekxy7SnU6dOtGuXTuuX78OwCeffCJJXQghUkh67CLd6dGjBw4ODuTPn9/UoQghRIYjPXZhclevXqVbt268evUKgJYtWzJ37lxsbW1NHJkQQmQ8ktiFyW3cuJFdu3axf/9+U4cihBAZngzFC5N48OABhQoVAmD06NE0btyY+vXrmzYoIYTIBCSxizS3adMmBg0axMqVK2nZsiXW1taS1DOo2NhYDAaDqcNIVHR0tKlDyPSkjVOHVqvFzCz10rEMxYs0V6lSJQoWLIiVlZWpQxEf4eXLl+n2D7ujo6OpQ8j0pI1TT3R0NC9fvky180mPXRhdbGwsixYtol27djg4OFC6dGnOnTuXqp9QRdqKjY1Fp9Ol2/K4MTEx6PV6U4eRqUkbpx69Xk9ERASxsbGp8ndReuzC6H788UcmTJjAxIkT1W2S1DM2g8Eg/4ZCpCKdTpdqt7XkN1MYRVxcHAaDAXNzc1q0aIGfnx+dOnUydVhCCJEuaTSaVDuX9NhFqnvw4AHNmjXj22+/BV7/wPbv3x97e3sTRyaEEJmfJHaR6mxtbXn06BF//fUXiqKYOhyRSZ09e5aaNWvi7e2Nt7c3bm5uDBo0SJ3Q9+zZM0aMGIG3tzdeXl4MGzaMJ0+eqN9/4cIFunfvjre3N+7u7qxfvz7F116/fj1t2rRh37597zxu+/btzJo168PeYBIiIyPx8fHBy8uL3r178+zZs7eO2bx5M25ubnTs2JEjR44ke87x48fTtm3bBNu8vb25deuW+joqKoqGDRuqr7dt20bnzp3x9vbG09OTs2fPfvB7unfvHq1atUp036VLl+jQoQOenp4sXLhQ3b5w4ULat2+Pp6cnV65c+eBrZ0YyFC9SxZ9//klISAhVq1bF1taWo0ePkjt3blOHJdLIN7uD2Hr5Xqqes/1nRZjhWvmdx9SoUYM5c+aor4cNG8bhw4epU6cOAwcOpEePHjRu3BiAU6dO0bdvX7Zs2cLDhw/x8/Nj+fLl5M6dm8jISLp27YqDgwN169ZNNrYDBw4wY8YMSpcu/XFv8gNs2LCBUqVK4ePjw969e1m0aBFjx45V9z958oSAgAC2bdtGVFQUXl5e1K5dO8mJbq9eveKXX36hVKlSnD17lurVqycbw969ezl79iyrV6/G3Nyc+/fv06VLFwIDA8mZM+d7vZ8dO3awdu1aQkJCEt0/fvx4FixYgIODA3369OG3334D4Ny5c2zZsoVHjx7h4+PDtm3b3uu6mZkkdvHRQkJCaNiwIfb29pw5cwYrKytJ6iLNRUdHExwcTI4cOfjjjz/Inj27mtQBatWqReHChTl//jwXLlygbdu26s+ppaUlK1aseGuW/4MHDxgzZgyxsbFoNBrGjh3L5cuXuXr1KmPGjGHOnDk4ODgAr3vSo0aN4uHDh8TExDBu3LgE55o9ezZXr14lPDwcR0dHpk6dSlBQENOnT8fMzAxbW1tmzZrFkydPGDVqFGZmZuh0OmbMmEG+fPnU8wQFBdGrVy8A6taty6JFixJc58qVK3z++efo9Xr0ej2FCxfm2rVrVKxYMdF2++GHH6hZsyZ169Zl/fr1KUrsGzdu5KuvvsLc3BwABwcHduzY8dbttr59+xIREaG+dnR0ZMKECQmOyZEjB+vWrcPFxeWt64SFhREdHU3hwoUBqFOnDqdPn0av11OnTh00Gg0FChQgLi6OZ8+evfeHisxKErv4aPb29gwfPpzChQvLs+lZ1AzXysn2ro3hzJkzeHt78++//6LVaunYsSM1a9YkMDBQTbhvcnBw4OHDhwQHB1OmTJkE+xKrIDhjxgy8vb1p3Lgxf/zxB6NHj2b79u3s2bOHCRMmJLjGxo0bKViwIHPmzOHGjRucOnVKrXcQFhaGra0tq1atwmAw0LJlSx4/fszBgwdxcXGhZ8+eHD58mBcvXnDq1CnKlSvHyJEjuXDhAs+fP0+Q2MPCwtRYs2XL9tbzz2/ujz8mLCwsyTbcsmULkyZNUpPu48ePE1wvMcHBwRQsWDDBtsTm0CxduvSd5wFo0KBBkvvCwsKwsbFRX2fLlo379+9jYWGBnZ1dgu0vX76UxP5/5B67eG8Gg4ElS5bQt29f9R66j48Pbdq0MXFkIqupUaMGAQEBrF+/HnNzc3WZ4rx58/L333+/dfy9e/fInz8/BQoU4J9//kmw79q1a/zxxx8Jtt26dYuqVasCULZs2be+5023b9+mUqVKAJQqVYpu3bqp+ywsLHj27BlDhw7F19eXiIgIYmJi6NevH8+ePeOLL75g//79mJmZ0b59e+zt7enVqxfr169Hp9MluI6NjQ3h4eEAhIeHv1Us6c398cckVfb41q1b3Lx5k2nTptG7d280Gg0bNmxQY46JiUlwHktLSwAKFizI48ePE5zrxIkTCeYwwOsee/wcCG9v77d668lJ7L3Y2tq+13vMiiSxiw+yd+9eDh06lOgfTyHSmr29PTNnzmTs2LEEBwfz2Wef8fTpUw4fPqwec+zYMe7du0e1atVo1aoVW7ZsUSeehYeH4+vrS3BwcILzOjo6cuHCBQD++OOPd95icnR05NdffwXg/v37DBs2LMG1Hz16xLfffsvQoUOJjIxEURR2795Nu3btCAgIoGTJkmzevJlDhw5RuXJl1qxZQ7NmzVi+fHmC6zg5OfHzzz+r561cOeFIScWKFQkKCiIqKoqXL19y69YtSpUqlWjMW7ZsYciQIaxYsYIVK1awZs0atm3bRnR0NOXKlePHH39M8B4qVKgAgLu7O//73/+IjY0F4M6dO4wZMwatNmFKWbp0KQEBAep/H5LYzc3N1Ym4J06coEqVKjg5OXHixAkMBgMPHz7EYDBIb/0NMhQvUsRgMPDbb79RoUIFtFotixcvRq/XkzdvXlOHJgQAJUqUwNvbGz8/P6ZOncqSJUvw9/dXh4M/+eQTli1bhk6no1ChQgwfPpyBAwei0+kIDw+nffv21KtXL8E5v/nmG8aNG8fKlSuJjY1lypQpSV7f09OT0aNH06VLF+Li4hg9ejQ3b94EXifbRYsW0bFjR/R6PQ4ODgQHB1OhQgVGjhyJtbU15ubmTJo0CUVRGD58OAsWLECr1TJq1KgE1+nUqRMjRoygU6dOmJubM3v2bABWrVpF4cKFadSokfokgKIoDBkyBAsLC/744w+2b9/OmDFjgNdzEvbu3cvOnTvVcxcoUIAyZcrw448/0rt3b3x9fXFzc0Ov12NnZ8fkyZOB16WVHzx4gJeXF+bm5sTFxTFz5kxy5cr1kf+Kr50+fZqgoCAGDhzIxIkT+frrr4mLi6NOnTp89tlnAFSpUgUPDw8MBgO+vr6pct3MQqNkgOeRoqKiuHr1KuXLl8fCwsLU4WRaQUFBb336j9e9e3d+/PFHjh07RokSJdI4sszlXe2cUcQ/UpZelxQNDw8nW7Zspg4jXYmIiGDJkiUMHTo0Vc4nbZy6Evud+tDcJz12kSJt27YlJibmrft5QoiMIS4ujj59+pg6DJEG5B67SNRff/3F4MGDiYyMBKBNmzYEBATI0LsQGVT27NkTzDAXmZfREnv8fQ8PDw+8vb25dy/h4hV79uxRVxPy9fVNtzWds6ply5api1zES821jIUQQhiH0RL7wYMHiY6OZtOmTQwbNoxp06ap+yIjI5k7dy5r165l48aNhIWFpWjZQ2FcL168UL8eNWoUK1aswMvLy4QRCSGEeF9GS+xBQUE4OzsDUKlSJa5evaru0+v1bNy4UV3MJDY2VibFmdjevXvx9vZWH2/Jli0b7dq1k166EEJkMEabPPffFYN0Op1aRF6r1arPgwYEBBAREUHt2rWTPeebHw5E6nr16hV6vZ7ffvtNloNNA0FBQaYO4aM5OjomWMAkvXlzARNhHNLGqScmJiZB0Z2PYbTE/t+VgQwGA2ZmZglez5w5kzt37rBgwYIU9QzlcbfUoygK69evp379+hQqVIjKlStToEABatWqZerQMj153C11nD17lq+++kp9/DI8PJxChQoxa9YsYmJiiIqKYvr06Tx8+JC4uDjy58/PyJEjyZMnD/C6utt3331HbGwsERERuLm50blz5xRde/369WzevJm+ffvSokWLJI/bvn07t2/f5uuvv/74N/wfBw4cYP/+/epz7G/avHkzGzduxMzMjC+//PKdy7bC60Irly9fZseOHeq2+JXiHB0dgdePXjVv3lxd9Gft2rX8+OOPaLVaYmJiGDJkSIrWmU/MvXv3GDBgAHv27Hlr36VLl5gyZQo6nU4t7gOvq7sdPXoUMzMzRo8eneRa+BlFdHQ0FSpUSPRxt/dltMTu5OTEkSNHaNGiBZcuXXpr5SNfX1/0ej2LFi16a7UiYXwHDhxg0KBBuLq6smbNGgD50CQ+2Pk7+7j7NHVLZxbNXZGqxZJOmpA1q7sB+Pn5ceLECcqWLfvWPqnuJoyW2F1cXDh58iSenp4oioK/vz+7d+8mIiKC8uXLs3XrVqpUqcIXX3wBQNeuXROt7iNSj6IoGAwGdDodLi4ufPPNN3Tp0sXUYQmRKrJKdTd43XFq3LgxmzZteqsdpLqbMFpi12q1TJo0KcG2+CEdeF1wQaSd4OBgfHx8qFatGsOGDUOj0TBy5EhThyUyiarFWiTbuzaGrFjdDaBFixacPXs20TaR6m5CxsCzCL1ez9WrVzl//jwZYBVhIVIkK1Z3S45UdxOS2DOxR48eceXK6/uednZ2/Pjjj2zYsEEeYROZTlaq7pYcqe4mZK34TOrFixfUrVsXGxsbTpw4QbZs2dTejBCZUVap7pYUqe4m4kl1t0ws/hetW7duKXryIDM8hpURZIZ2Tg+Pu72LVB57m1R3S9+kupt4i6IobNu2jZMnT6qP/wwfPtzEUQkh0gup7pZ1yD32TEJRFFasWMGWLVu4e/euqcMRQqQzUt0t65AeewamKAp3796lWLFiaLVaFi9ejKIoFC1a1NShCSGEMBHpsWdgQ4cOxdnZmTt37gBQtGhRihUrZuKohBBCmJL02DOwOnXqcP36dVmSVwghhEoyQgby9OlTfH19iYqKAsDNzY09e/ZQpEgRE0cmhBAivZDEnoHMnz+fhQsXsm7dOgA0Go301kWWdfbsWWrWrKmuaubm5sagQYPUx4aePXvGiBEj1Ge6hw0blmBltAsXLtC9e3e8vb1xd3dn/fr1Kb72+vXradOmDfv27Xvncdu3b2fWrFkf9gaT8PLlS/r160eXLl3w8PDg4sWLbx2zefNm3Nzc6NixI0eOHEn2nOPHj6dt27YJtnl7eycoIxoVFUXDhg3V19u2baNz5854e3vj6emZ5BK3KXHv3j1atWqV6L5Lly7RoUMHPD09Wbhwobp94cKFtG/fHk9PT3UhLvGaDMWnc28+K/rNN99QtGhRtXCOEOnF/THf8Cwwdatr5WznjsOUGe88JitWd1u1ahU1atSgW7du3L59m2HDhhEYGKjul+puQhJ7Ovbzzz/Tt29fFi5cSOPGjbGxsaFHjx6mDkuIdCmrVHfr1q2bmqTj4uLeWrhEqrsJSezpWK5cuYiIiEi0mIUQ6YnDlBnJ9q6NIStWd4s/55MnTxg+fDijR49OELNUdxNygzad2b9/Pw8fPgSgfPny/PrrrzL0LkQSsmp1t+vXr9OtWzeGDBlCtWrVEuyT6m5CEns6cuzYMby8vBgxYoS6LUeOHCaMSIiMIStVd/vzzz8ZPHgws2fPfqtoDUh1NyFD8emCoihoNBqcnZ358ssv6dKli6lDEiLDySrV3WbPnk10dLQai42NDYsXL5bqbkIl1d1M6MWLF4waNYpSpUoxePBgU4eTKaqOZQSZoZ2lulvGI9Xd0rfUrO4mQ/EmFBsby6FDh/jhhx+Ii4szdThCiExMqrtlHTIUn8ZevHjBw4cPKVOmDDlz5mTXrl0UK1Ys0QkyQgiRWmRyWdYhiT0NhYeH4+zsjLm5OceOHcPa2jrJSS1CCCHEh5DEnoayZctG+/btsbCwUBd2EEIIIVKTJHYjO3LkCIcOHcLPzw/grdWohBBCiNQkk+eMSFEUpk2bxrJly7hx44apwxEiyxk4cKCpQ0gTpiyIkxYuX75M+fLlExR7SazAzpAhQ9RiNDdv3qRPnz7qe5o/fz4f+hBYXFwcgwYN4tixY2/ti4yMxMfHBy8vL3r37q2ujZBU8Zq0IIndCOJXZNJoNHz33XccOHBA7qULYQJp/QfVlOJX4QsICGD79u2Ym5tz+PBhFEVh4MCBuLi4EBAQwPfff4+7uzt9+/YlLi6O+/fv4+fnx8yZM9VV/Hbu3JloEjOVLVu20L17d77//vsUHf/ixQuGDh3K6NGjCQgIYPPmzdy4cYONGze+97X/+usvunTpoi4+9F8bNmygVKlSfP/997Rt25ZFixYBr4vXzJ49mw0bNnD58mW1eE1akKH4VDZp0iSWL1/O8ePHKVKkCCVKlDB1SEKkicufOia6/ZPBw8jXtz8At3t9wctTJ946xqZqdRzXvP6j/WTVch7OnMpnv99667g3bd++nSNHjhAZGcmTJ0/o2rUrhw4d4ubNmwwePJiWLVtSu3ZtTp48yeXLl5kyZQqKopAvXz5mzZpF7969sbe358WLFyxbtowxY8Zw//594uLi6N69Oy1atEhwvbCwMMaMGcPLly8JCQmhQ4cONGvWjM6dO7Nv3z40Gg0TJ05Ui83E336zs7PD39+f33//nVmzZmFubk7Hjh2xtLRM0DOeN28e9vb2TJw4katXr5I7d27+/vtvFi9ejE6nY9y4cURFRWFhYcHkyZPJnz9/km3zZkGcq1evpkpBnLt37zJ27FhiYmKwtLRkypQpTJ48mRYtWlC3bl2OHTvGvn37mDZtGg0aNKB48eIULlyYEydOsHPnTqytrVm+fDlmZmY0bdo0xe8nPDycM2fOsHfvXlxdXVNU7OXQoUNUr16dokWLAqDT6Zg+ffpbc5vWrVuXYHU9gOnTp1OgQAH1dUREBH5+fvzvf/9L9FpBQUH06tULgLp167Jo0aIki9eUK1funXGnFknsqax06dI4ODgkqGgkhDCO8PBwVq5cyd69e1m9ejWbN2/m7NmzrFq1ipYtW6rHjRs3jjlz5uDo6Mj69evVOuOurq64uLiwbt06dVnasLAw3NzcqFGjRoIEcu/ePVq2bEmTJk14/PixOqxdunRpLly4wGeffca5c+cYM2YMXl5e+Pv7U6JECbZs2cLy5cupVasWUVFRbNmyBYAlS5awbNkyrKys8PX15cSJE1hbWxMaGsrWrVt59uwZTZo0AV4nG29vb+rVq8fp06eZNWsWs2fPTtAWSRXE2bdvX6oUxJk+fTp9+vShbt267Nu3j2vXriX57/Lo0SO2b9+utulPP/1E27Zt2bdvHytWrGDixInJvp94+/btw8XFBQsLC5o3b87WrVvf+Ty+RqMhODj4rfec2GI6Xbp0SXalz/+2zX+9WXQnvhhNUsVr0ook9o8UFhbG0qVL8fHxQa/X07FjR9q1a5duV+QSwliS62EDFF++Jtlj8nTvRZ7uvVJ0zbJlywKvE5GjoyMajYYcOXIQFRWV4Lh///0XR8fXIwqdO3dWtxcrVgx4XQylVq1awOslWh0dHfnzzz9ZsGAB8LqH6+bmxpo1a/jpp5+wsbFR10nv2LEjgYGBPHnyhIYNG2JmZsatW7eYOHEiADExMep14v8Pr6s3jhgxgmzZsqkFZN4sJJMzZ06KFy8OwI0bN1i6dCnLly9HUZREn6qJr00fEhJCjx491II4+fLlS7IgTq1atQgODk60II6iKGr7wuv14D///HMAWrRoQXh4OAcPHlT3v3n/2t7eXq321qFDByZMmEDx4sUpWrQo9vb2KXo/8bZs2YJOp6Nnz55ERkbyzz//0KtXLywtLdU5BPEiIiKwtLSkQIEC/P777wn23b9/n3/++Uct6gMp67En582CNO8qUhNflS8tSGL/SHPmzGHOnDlYW1vz5ZdfotFoJKkLkUY0Gk2KjsubNy93796laNGiLFu2TE2w8d8fX+zFxcWFsLAwbty4gaOjIwEBAeo5pk6dSqVKlfDy8uLMmTP8/PPPANSsWZOZM2fy+PFjdc3yYsWKqQkiKChInagWXyTl5cuXzJ8/n6NHjwLQvXt3FEWhZMmS6trtz58/5+7duwAUL16cHj164OTkxK1btzh//nyS7zW+l9y1a1d27NiBk5OTWhCnYcOGQMKCOA4ODgwYMIAWLVqQM2dOtSDOgAEDEiT2+CI3tWrVYteuXTx58gS9Xq++tzcT6ZvFYIoWLYqiKCxfvpxOnTq91/u5fv06cXFxbN68Wd3WvXt3jhw5QpkyZVi0aJG6tG1oaCg3b97E0dGR4sWLs3TpUjp16kThwoWJiYlh2rRp1KpVK0FiT0mPPTlOTk78/PPPVKxYkWPHjlG5cuUExWscHBw4ceJEmk7klMT+AWJiYtRPmIMHD8ba2pru3bubOCohRFImTpzI6NGj0Wq15MmTh27durF27Vp1f8eOHRk3bhydOnUiKiqKgQMHvlXQpEGDBkyYMIHdu3djZ2eHTqcjOjoavV5P06ZNOXXqFEWKFAFgwoQJjBgxQl0qesqUKQkqx9nY2ODk5ES7du2wtrbG1taW4OBg3NzcOHbsGJ6enuTOnRtLS0vMzc0ZMWIEEyZMICoqisjISLWQS1LeLIgzf/78VCuI4+vry+LFi7G0tGTixIn8+++/jB49mt27d6v3sxPTvn175s2bR40aNQCSfD9Dhgxh9OjR5MmTB3jdW2/Tpk2Cc3Xo0IH169ezcuVKvLy88PLyIlu2bMTGxjJmzBh1yH3atGmMHTsWRVEIDw+nQYMGeHl5vbPd3kePHj1YsmQJnTp1YsSIEXTq1Alzc3P1lkJSxWvSghSBeU9BQUH07duXmTNn0qBBA5PGktoyQ3GSjCAztLMUgTGOW7duce3aNVq2bElISAitWrXiyJEj6bKdjdHG3377Lf369Xtr4l5WIEVgTMjMzIwHDx4k+eiDEEJ8qPz587Nnzx46duxIr169+Prrr9NlUjcWT0/PLJnUU5sMxafAmTNnKFq0KJ988gmfffYZFy9efOejJkII8SGsra1ZvHixqcMwmfeZtCaSJj32ZJw5c4aWLVsyfPhwdZskdSGEEOmV9NiTUa1aNbp06aLO5hRCCCHSM0ns//Hq1SumTp3KJ598Qv/+/dFqtcybN8/UYQkhhBApIkPx/xEREcGmTZtYv369ugCFEEIIkVFIj53X1XkePXpEsWLFyJUrF1u2bMHR0REzM2keIUTG07BhQ/Lnz49WqyUuLo6IiAgmT55MhQoVUBSF77//nj179qh/43r16qU+t/78+XOmT5/OvXv3iIuLI3/+/EyaNCnRZWZNpU2bNjg5OTF+/Hh1W3xdgHhvrl0fFRXF3LlzuXz5MhqNBmtrayZNmvTB86UOHDjA/v37E10Gd/PmzWzcuBEzMzO+/PJLGjRoQGRkJMOHD+fff/8lW7ZsTJ8+Pdn17j9Gls9ckZGRNGrUiNjYWI4ePYqVlRUVK1Y0dVhCCPFRVq5cqT77fPz4cRYuXMjSpUvZtGkTv/zyC6tXr8bCwoKQkBD69OlDjhw5qFSpEkOHDsXT0xMXFxcAVq9eja+vL3PmzDHl21EFBQVRqlQpzpw589aa7EmZMmUKxYsXV6vDHThwgK+++opNmza99/X9/Pw4ceJEglX54j158oSAgAC2bdtGVFQUXl5e1K5dW60A5+Pjw969e1m0aBFjx45972unVJZP7JaWltSvX5+YmJgPrtUrhEif1d3WrVvHTz/9RGxsLNmzZ2fBggUYDAZGjRrFw4cPiYmJYdy4cdy5c4dt27ZhMBgYNGgQT548Yc2aNej1eooWLcqkSZMSrQz233MPHTqUrl27Uq1aNa5cucLixYuZP38+48eP5969exgMBr766iuqV69Oq1atKFq0KHq9nm+++UZdiS00NJQBAwbQuHFjjhw5wvz587GxsSFHjhyULl0aHx8fZs+ezfnz51EUhW7dutG8efN3ttXDhw/VtcrXrVvH2rVr1aRvb2/PwIED2bBhA3ny5OHp06dqUgfUeuZvMhgMTJs2jT/++IOYmBh8fHzInj07GzduVD8AxPegR44cSWhoKKGhoRQrVoxq1arRrl07njx5Qt++fdm+fft7vZ8tW7bQtGlT8ufPz44dO5JdEjY6OprDhw+ra/cDuLi4UKVKlQTH3bt3761k26pVKzw8PBJsc3JyonHjxol+KLhy5Qqff/45er0evV5P4cKFuXbtWqIV4IwpSyb2S5cu8cMPPzBq1Cjg9SewlK45LYRIP95V3a158+aEhoayevVqtFotPXv25Ndff+XXX3+lYMGCzJkzhxs3bnDq1ClsbW2xtbVl8eLFhISE4OvrS2BgIDY2Nvj7+7Np06YECcRgMCR67g4dOhAYGEi1atUIDAykY8eObNmyBXt7e/z9/QkJCaFLly7s3buXiIgI+vfvz6effsqpU6fo3r071atX55dffmHBggU0aNAAPz8/Nm3aRO7cuRk2bBgAP//8Mw8ePGDjxo1ERUXRsWNHateu/VaRkR49ehAVFUVwcDDOzs6MGDECgJCQkLeGgd+s9BZfPCaeTqd7axj+0KFDahW6J0+esG7dOrWITmJq1KhBt27d1OI47dq1Y+fOnbi5uaX4/cDroltBQUH4+flRsmRJ+vfv/87ErtFoCA0NJXfu3G/9jY8vUhOvSJEiCWoDJKVFixacPXs20X1vVnqD11XdwsLCEq0AZ0xZLrErisLIkSM5d+4crVu3ply5cpLUhUgF6a26m1arxdzcnKFDh2Jtbc0///xDbGwst2/fpm7dugCUKlWKUqVKsX37drUwzP379ylRooQ6xFu1alVOnDjBnDlz+OWXX4DXw9OJndvZ2ZmZM2cSGhrKhQsXGDt2LJMnTyYoKIgrV64AEBsbS0hICPD/q73lyZOHxYsXs3XrVjQaDbGxsTx79gwbGxu1TnqVKlV4+vQpN27c4LfffsPb21s935s98njxQ/HffvstDx48UNe+t7GxITQ0FDs7O/XYe/fukT9/fgoUKPBWpbeYmBj279+Pq6uruu3OnTvqLcs8efIwZMiQt5LdmyOg8e/T0dGRuLg4/v77b/bt28fq1avZtGlTit4PwK5duzAYDPTt2xd4PfR9+vRpatas+dbf8YiICCwsLLC3t+fFixcoipLgmN27d9OsWTN1JCalPfZ3SayqW/bs2ROtAGdMWWZW/IsXL4DXn+DmzZtHYGBgmhW9F0IYx7s+lF+7do2DBw8yd+5cxo0bh8FgQFEUtUoZvE7i8T3h+IpkhQoV4tatW0RERABw7tw5ihUrxpAhQwgICCAgIICbN28mem6tVkuzZs2YMGECjRs3RqfTUbx4cVq2bElAQAD/+9//aNasGTly5EhwzXnz5tGmTRtmzpxJ9erVURSFXLlyER4ezrNnzwC4fPky8LoyWvXq1QkICGDNmjU0b978rV72m7766iuCg4PV+8tdunTBz89PXZv833//ZeHChXh6epIvXz7s7e0TlGNdu3ZtgtfxMfz222/A60p1PXv2xMLCQq309vfff/P8+fNE/53at2/PzJkzKVGiBLa2tu/1frZu3cqSJUtYsWIFK1asYOzYsaxfv179dzt9+rR67PHjx6lQoQLm5ubUqVMnQW98//79rFmzJsHtlfge+5v/vU9SB6hYsSJBQUFERUXx8uVLbt26RalSpdQKcIBaAc6YskSPff78+cybN4+jR4/i4OBA6dKlKV26tKnDEkIYUZEiRbCyssLNzQ29Xk+ePHkIDg7G09OT0aNH06VLF+Li4hg9ejQ3b95Uvy9nzpz4+PjQtWtXtFothQsX5uuvv07RuQHc3d1p3LixWufb09OTsWPH0qVLF8LCwvDy8kpQ1hSgWbNmTJkyhaVLl5I/f35CQkLQarWMGzeO3r17kz17dgwGA0WKFKFhw4acO3cOLy8vIiIiaNy48TsnkGm1WqZMmULnzp1p3Lgx3t7exMXF0blzZ8zMzNBoNPTv3x8nJycAZsyYwaRJk1i5ciUxMTEULlwYPz+/BOds1KgRx44do1OnTsTFxTFgwADKly9P9uzZ6dChA46Ojkkm5/j3Gr90blLvZ/v27QC4ubkBr8vCxpe2jde0aVOmTp3Ko0eP8PPzY+LEicyZMweDwUClSpXUynCjRo1i6tSpeHp6ApAjRw4WLFiQZJu9r1WrVlG4cGEaNWqEt7c3Xl5eKIrCkCFDsLCwSLICnLFkiepu33//PVOnTmXVqlVvTZgQ/19mqDqWEWSGdpbqbmlj6dKldO/eHb1ez9dff02dOnVo27atqcMCjN/G165d4+rVq7Rv395o10hPpLpbMmJiYlixYgUxMTEAdOrUidOnT0tSF0JkKNmyZaNjx454enqiKAotWrQwdUhpxs7O7q3Z+CJlMuVQ/OzZs5kxYwYRERH4+Pig0WhS9KyjEEKkJ126dEn2ca7M6pNPPjF1CBlWpknsBoNBvW/15ZdfEhYWxhdffGHiqIQQQojk/XfW/sfIFEPx165dw8XFhWPHjgGvJ0b4+fkZ/ZECIbIqrVYrtRSESEVxcXFvTar8UJmixx4REcGVK1f4+eef1edThRDGY2ZmxqtXr4iIiECn06W7tSBiYmLUyUjCOKSNU4eiKMTFxREXF5dq9UkybI/92rVr6uMlTk5OnD59mnHjxpk4KiGyjuzZs6PX69NdUge4dSv5xXLEx5E2Th0ajQa9Xp+qRXYyZI/90qVLNGvWjCZNmrB27VoASpQoYeKohMh60nMFxPT6KF5mIm2cPhmtx24wGPD19cXDwwNvb2/u3buXYP/hw4dxd3fHw8ODzZs3v9e5K1asSMuWLfHy8krNkIUQQogMz2iJ/eDBg0RHR7Np0yaGDRvGtGnT1H0xMTFMnTqVlStXEhAQwKZNm9SlCN8l/gOAVqtlxYoVNGvWzFjhCyGEEBmS0cbRgoKCcHZ2BqBSpUpcvXpV3Xfr1i0KFy6srpdcuXJlLly4kGSpvvjF8Xbu3Em7du3eKp8oUk9UVJSpQ8gSpJ2NT9rY+KSNjSt+cuL7LhBrtMQeFhaWYFEYnU5HbGwsZmZmSZa2S0r8CnKjRo3i+vXrxgpZQIIPYMJ4pJ2NT9rY+KSN00ZMTAyWlpYpPt5oif2/5esMBoM60Sap0nZJyZYtG6VKlcLc3DxdzsAVQgghUpuiKMTExLz3mvxGS+xOTk4cOXKEFi1acOnSJUqVKqXuc3R05N69e4SGhmJtbc2FCxfo2bNnkufSarWp+iiAEEIIkRG8T089ntGquxkMBiZMmMCNGzdQFAV/f39+//13IiIi8PDw4PDhw3z33XcoioK7uzudO3c2RhhCCCFElpIhyrYKIYQQImUy7MpzQgghhHibJHYhhBAiE0l3id2YK9aJ15Jr4z179tChQwc8PT3x9fXFYDCYKNKMK7k2jjdu3DhmzZqVxtFlDsm18ZUrV/Dy8qJTp04MGjRInrn+QMm1865du2jXrh3u7u58//33Jooyc7h8+TLe3t5vbX/vvKekMz/++KMyYsQIRVEU5eLFi0q/fv3UfdHR0Urjxo2V0NBQJSoqSnFzc1OCg4NNFWqG9a42fvXqldKoUSMlIiJCURRFGTJkiHLw4EGTxJmRvauN423YsEHp2LGjMnPmzLQOL1N4VxsbDAaldevWyt27dxVFUZTNmzcrt27dMkmcGV1yP8u1a9dWQkJClKioKPXvs3h/y5YtU1q1aqV06NAhwfYPyXvprsee0hXr9Hq9umKdeD/vamO9Xs/GjRuxsrICIDY2FgsLC5PEmZG9q40BLl68yOXLl/Hw8DBFeJnCu9r4zp072NnZsWbNGrp06UJoaCjFixc3VagZWnI/y6VLl+bly5dER0ejKIqsNfKBChcuzIIFC97a/iF5L90l9qRWrIvf9z4r1onEvauNtVotuXPnBiAgIICIiAhq165tkjgzsne1cXBwMAsXLsTX19dU4WUK72rjkJAQLl68iJeXF6tWreLMmTOcPn3aVKFmaO9qZ4CSJUvi7u5Oy5YtqV+/Pra2tqYIM8Nr2rRpotUSPyTvpbvEnpor1onEvauN419Pnz6dkydPsmDBAvkE/gHe1cb79+8nJCSEPn36sGzZMvbs2cP27dtNFWqG9a42trOzo0iRIpQoUQJzc3OcnZ1l+dMP9K52vnbtGkePHuXQoUMcPnyYZ8+e8cMPP5gq1EzpQ/JeukvsTk5OHDt2DOCdK9ZFR0dz4cIFPv/8c1OFmmG9q40BfH19iYqKYtGiReqQvHg/72rjrl27sn37dgICAujTpw+tWrXCzc3NVKFmWO9qYwcHB8LDw9WJXhcuXKBkyZImiTOje1c7Z8+eHUtLSywsLNDpdOTMmZMXL16YKtRM6UPyntGWlP1QLi4unDx5Ek9PT3XFut27d6sr1o0cOZKePXuqK9bly5fP1CFnOO9q4/Lly7N161aqVKnCF198AbxORC4uLiaOOmNJ7udYfLzk2njKlCkMGzYMRVH4/PPPqV+/vqlDzpCSa2cPDw+8vLwwNzencOHCtGvXztQhZwofk/dk5TkhhBAiE0l3Q/FCCCGE+HCS2IUQQohMRBK7EEIIkYlIYhdCCCEyEUnsQgghRCaS7h53EyIzevDgAc2aNcPR0THB9iVLlpA/f/5Evyd+eUkfH58Pvu727duZNm2aeo3IyEiqVavG+PHjE13l6l3mzZtH+fLladSoEd7e3gQEBADQpk0bdu7c+cExAnh7e/PPP/9gbW0NvF5ty8HBgVmzZqkrISZm8+bNWFtb06pVq4+6vhCZiSR2IdJI3rx5PzoBfoiGDRsybdo0AOLi4vD09GTr1q14enq+13kGDx6sfn3u3Dn169R6T35+flSvXh14vbrZoEGDWLVqFcOHD0/ye3755ReqVauWKtcXIrOQxC6Eid24cYPJkycTERHBs2fP6NOnD506dVL3x8TEMHr0aG7evAmAl5cXHTt25OnTp/j6+vLPP/+g0WgYNmwYtWrVeue1dDodVapUUc+1bds2Vq1ahUajoVy5cowbNw69Xp/o9UaOHEm1atX4/fffAejQoQNbtmyhdOnS/Pbbb9SvX58dO3aQO3duQkNDadWqFUeOHOH06dPMnz+f2NhYChUqxOTJk7G3t39nnBEREYSEhFCxYkUAfvjhB1atWkVkZCTR0dH4+/sTGRnJ4cOHOXPmDHny5KFs2bLv3R5CZEZyj12INBIcHEybNm3U/5YvXw7Ali1b6N+/P9u2bWPt2rXMmDEjwfddvHiR58+fs2PHDpYuXapWdpoyZQru7u5s376dxYsX4+vrm2xxiJCQEE6cOEGlSpW4fv06S5YsISAggN27d2NlZcXChQuTvF68sWPHqnHHMzMzo1mzZuzfvx+An376CRcXF16+fMns2bNZsWIFO3bsoE6dOknWnx87diytW7emTp06eHh4UKtWLbp164bBYGDjxo0sWbKEXbt20atXL5YtW0atWrVo2LAhgwYNwtnZ+YPaQ4jMSHrsQqSRpIbiR44cyfHjx1m6dCk3btwgIiIiwf6SJUty584devbsSd26dfnmm28AOHXqFLdv32b+/PnA6xK79+/fp2zZsgm+//Dhw7Rp0wZFUVAUBRcXF1q1asX69etp0KCB2nv28PBg1KhR9OnTJ9HrJad169ZMnTqVLl26sGfPHoYMGcLly5d59OgRXbt2BV4PsefIkSPR748fiv/ll18YNGgQLi4u6PV6AL777jsOHz7MnTt3OHfuHFrt232SlLaHEJmdJHYhTOyrr77C1taWBg0a0KJFC/bs2ZNgv729PXv37uXkyZP8/PPPtGvXjr1792IwGFizZg12dnbA6xGBXLlyvXX+N++xv8lgMCR4rSgKsbGxSV4vORUrVuT58+dcuXKFx48f8/nnn3Pw4EGcnJxYsmQJAFFRUQkqVSXGyckJb29vhg0bRmBgIFFRUbRv357WrVtTtWpVSpcuzfr16xN9PylpDyEyOxmKF8LETp48yaBBg2jcuLFaRSsuLk7df+jQIYYPH079+vUZO3Ys1tbWPHr0iBo1avD9998D8Oeff+Lq6sqrV69SfN1q1apx+PBhQkNDgdczzKtXr57k9d7035rc8VxdXRk/fjwtW7YE4LPPPuPSpUvcuXMHgEWLFr11qyEx3bt3Jzw8nE2bNnH37l00Gg39+vWjevXqHDhwQG0fnU6nfv2x7SFEZiE9diFMzMfHBy8vLywsLChTpgwFCxbkwYMH6v66devy008/0bJlSywsLGjdujWlS5dm7Nix+Pr64urqCsCMGTOwsbFJ8XXLlClD37598fb2JiYmhnLlyjFx4kQsLCwSvd6bGjVqRJs2bd6qI9+6dWvmzZvHnDlzAMiTJw/+/v589dVXGAwG8uXLx8yZM5ONTa/X89VXX+Hv78+BAwcoW7YszZs3R6PRUKdOHYKCggCoVasW3377LdmzZ//o9hAis5DqbkIIIUQmIkPxQgghRCYiiV0IIYTIRCSxCyGEEJmIJHYhhBAiE5HELoQQQmQiktiFEEKITEQSuxBCCJGJSGIXQgghMpH/B88OVXrsGjn/AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from yellowbrick.classifier import ROCAUC\n", "from sklearn.model_selection import train_test_split\n", "X_train, X_test, Y_train, Y_test = train_test_split(X_std, Y, test_size=0.2, random_state=0)\n", "visualizer = ROCAUC(mlp_classification)\n", "visualizer.fit(X_train, Y_train) \n", "visualizer.score(X_test, Y_test) \n", "g = visualizer.poof() " ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "image/png": "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57X9yMjIs65nZmZq4MCBiomJUUxMjJ544gnl5uZKkmbMmKEZM2ac134AmIOgAaDq1asrPT1daWlpWrFihSIjIzVlypRLsu1Zs2YpIiKi1Ou//fZbORyOi95Pdna27r//fvXp00cffPCBli1bpptuukkpKSkXvW0AFR9vTAKghDZt2uj555+XJEVHR6tp06bavn27FixYoM8//1zvvPOOnE6noqKiNG7cOFmtVqWlpWnmzJkKCQnRtddeq+DgYPft586dq2rVqumZZ57Rd999p8DAQD3yyCOy2+3KyMjQ6NGj9fLLL8tms2n8+PH6/fffZbPZNGbMGDVq1Ej79u3TsGHDVFBQoGbNmp115oULF+qWW25RdHS0JMlisWjAgAGqXbt2ic/Z+de//qX09HQdP37c/SZoN954oyZPnqwNGzbIz89Pt99+u1JSUvTVV19p6tSpkqSqVatq+vTpvGIQqIA4QgOgmKKiIq1atUrNmzd3r3Xo0EGrVq1Sbm6u/v3vf2vRokVKT09XWFiY3nzzTWVnZ2vatGmaP3++Fi9erPz8/BLbnTdvngoKCrRy5Uq99dZbeuWVV9S9e3c1btxYqampioyM1PDhwzVs2DAtXbpUEyZM0GOPPSZJmjBhgu6++26lp6erZcuWZ517+/btioqKKrbm7++vHj16FHtTyby8PK1Zs0bz5s3T8uXL1alTJ82fP1+//fab1q9fr2XLlmnhwoX673//q8LCQr366qsaP368lixZoltvvVU//vjjJfgtA7jUOEIDQAcPHlRcXJwkyW63q2nTpnriiSfc158+KvL1119r79696tOnj6RT8dOoUSP95z//UYsWLRQeHi5JiomJ0caNG4vt49tvv1WfPn3k5+enatWqlfgYjvz8fGVkZGjkyJHutYKCAh0+fFjffPONpk+fLkmKjY3V6NGjS/wMFotFQUFBZf6sISEhmj59ulasWKE9e/bo888/V8OGDRURESGr1aqEhAR17txZTz75pKxWq7p06aKUlBTdfvvt6tKli2677bYy9wGg/BE0ANzn0JTGarVKkhwOh7p16+YOivz8fDkcDn311VfFPojvbB+zERAQUOyt4Pfu3auaNWu6LzudTgUFBRWb48CBA7r66qsl/d8H/VksFvn5lTy43LhxY2VkZBRbczqdGjJkiMaPH+9e279/v5KSkpSYmKgOHTooPDxc27dvV0BAgN5991198803Wr9+vRISEjRv3jwlJyerc+fO+vTTTzV16lRt3bpVgwYNKvV3BcA3eMoJgMfatGmj1atXKycnRy6XS+PHj9c777yjP//5z9qyZYuys7PldDr14Ycflrht69at9eGHH8rlciknJ0eJiYmy2+3y9/eXw+FQlSpVdMMNN7iDZsOGDbrvvvskSbfeequWLVsmSfr4449VWFhYYvt9+/bVZ599ps8++0zSqQB69dVXlZOT4z5yJEnbtm3T9ddfr+TkZDVp0kRr1qyRw+HQjz/+qMTERLVu3VrDhw9X3bp1tXv3bvXu3Vv5+flKTk5WcnIyTzkBFRRHaAB4rEGDBkpJSVG/fv3kdDrVsGFDPfzww7JarRo9erSSk5NVqVIl1atXr8Rt7733XqWmpio2NlaSNGbMGIWEhKh9+/YaN26cJk+erKlTp2r8+PGaPXu2AgMD9cILL8hisWjs2LEaNmyYFi9erMaNG6ty5coltl+tWjXNmjVLU6ZM0bRp0+RwONSoUSO98sorxb7vtttu08KFC9W9e3e5XC61bt1aP//8sxo1aqTmzZurR48eqlSpklq2bKkOHTqoUqVKGjFihAICAhQcHKzU1FTv/HIBXBQ++gAAABiPp5wAAIDxCBoAAGA8ggYAABiPoAEAAMYjaAAAgPEIGgAAYDyCBgAAGI+gAQAAxvt/JFQMT6MeDAkAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from yellowbrick.classifier import ConfusionMatrix\n", "cm = ConfusionMatrix(mlp_classification, classes=[0,1,2])\n", "cm.fit(X_train, Y_train)\n", "cm.score(X_test, Y_test)\n", "cm.poof()" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAggAAAGACAYAAADI95pLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAuQElEQVR4nO3deVxV1d7H8e85h0kFNRxSE1BRsMSc8pYpDaaVFKJhFzXHvJlmDkXl8DilJmRelSzHblneVMzMOXPK601L0UKjEmcUc0ZFQMZznj98OI+0ERWBo/h5v169Xp69zl77t2nh+brW3vuYbDabTQAAAFcxO7oAAABw+yEgAAAAAwICAAAwICAAAAADAgIAADAgIAAAAAMCAm5aYmKi/P391a1bN0PbsGHD5O/vr6SkJCUmJqpJkyb59jF9+nQ98sgjCgkJUYcOHRQcHKxevXrp8OHD9vccPHhQAwcOVHBwsNq3b69u3bpp586d9hqu1feteOWVV3TgwAFJ0pgxY9S6dWtNnTo1z/Zb8c033ygsLEwhISEKCgrSqFGjlJycLOnKz2TcuHG3fIyr/frrrxo0aJAk6cSJE3r++ecVEhKinTt32rcXxkcffaQNGzZIkqKiorRs2bKiKFeJiYm6//77FRISYv+vbdu26t69u44dO1Ykx7iePXv2aPTo0SVyLOB25uToAnBncnV11eHDh3X8+HHdd999kqS0tDT9/PPPN9xHUFBQnr+I58+fr/DwcC1dulSHDh1Sz549FRERocDAQEnSjz/+qH79+mnhwoUqU6ZM0Z7Q/5k7d679z9HR0dq8ebOqVatWJH3PmjVLW7Zs0ccff6zKlSsrKytLEydOVL9+/bRgwYIiOcZfNWzYUB9++KEkafv27apcubLmzZsnSXrooYcK3e/27dtVt25dSdLgwYNvuc6rubm5afny5fbXNptNEyZM0NSpUzVlypQiPVZ+Dhw4oFOnThX7cYDbHQEBhWKxWNSuXTutXLlS/fr1kyStW7dOTz31lD799NNC9dmiRQv7B8DcuXMVGhpqDwe57f/85z/l5uaWZ7+zZ89q9OjROnfunM6cOaP77rtP06ZNU6VKlbRgwQItWrRIzs7OcnV11bhx41S3bt1rbm/durWioqIUEREhm82mV155RWPGjNE777yjqKgoNWzYUJs2bdLMmTOVlZUlNzc3DR06VE2aNNH06dMVGxur06dPy9/fX5MnT7bXmJaWptmzZ+ubb75R5cqVJUnOzs565513tH79emVmZuY5p++//16zZ89WZmamkpKS1KFDBw0ZMkSpqakaPny4EhISZDab1aBBA40bN06XL1/Od3tMTIzGjx+vkSNHatq0abp06ZK6d++u119/XePHj9eqVauUmpqqCRMm6Oeff5bFYlGbNm30xhtv6MiRIxo3bpxSU1N15swZ1a9fX9OmTdOSJUsUFxenSZMmyWKxaOPGjapXr5769OmjnTt3atKkSbp8+bKcnZ01ZMgQPfbYY1q6dKnWr18vs9mshIQEubm56f3335evr+91x0VGRoZOnz5t/7llZmZq8uTJiomJUU5Ojh544AGNHDlS7u7uat26tZ577jlt3bpVly5dUu/evdW1a1dJVwLf/PnzZTabVblyZY0aNUq1a9fWsGHDdOHCBR07dkyNGjXStm3bdOnSJQ0fPlwRERGFGMlA6UBAQKF16NBBb7/9tj0gLFu2TCNGjChUQMjOztaSJUv08MMPS5Li4uL01ltvGd73+OOPS7oyFZ1r9erVaty4sfr27Subzaa+fftq+fLl6tmzpyZOnKhNmzapatWqWrZsmXbt2qXatWvnuz33X8SStGDBAvn7++vzzz+Xp6enffuRI0c0depUffHFF7rnnnu0f/9+9e7dW+vWrZMkHT9+XKtWrZKTU95frUOHDsnNzU21atXKs71MmTJq3759nm02m02ffvqpIiMjVatWLZ06dUpPPvmkevTooS1btig1NVXLly9XTk6OxowZo2PHjumXX37Jd3uuRx55RIMGDdJ3332n2bNna/v27fa2Dz/8UBkZGVqzZo1ycnL08ssva8eOHdq8ebM6dOigkJAQZWVl6YUXXtDmzZv10ksvae3atXrppZfUtm1bbdy4UZJ0/vx5DRo0SDNnzlSjRo20f/9+devWTUuWLJEkxcTEaNWqVapWrZrGjx+vOXPm6P333zf8P05PT1dISIisVqvOnTunChUq6Omnn1bfvn0lSXPmzJHFYtHSpUtlMpk0ZcoUTZ48WWPHjpUkXbx4UV9//bVOnTqlDh06qFmzZkpKStInn3yi6OhoeXp6aunSpRowYIBWr15tP2bun5cuXarvvvuOcIC7HgEBhRYQECCLxaK4uDhVqlRJqamp8vPzu+H916xZo127dkmSsrKy1KBBA40fP16SZDKZZLVab6ifnj17aufOnfrss8905MgR7d+/X40aNZLFYtGzzz6rzp0764knnlCrVq30+OOPX3P7jdi6datOnz6tXr162beZTCYdPXpUktS4cWNDOJAks9l8w+djMpk0a9Ysbd68WatWrdLBgwdls9l0+fJlNWvWTFOnTlX37t316KOPqmfPnvLx8ZHZbM53+8mTJ697vG3btmn48OGyWCyyWCz697//LUlq3ry5tm7dqrlz5+rIkSM6ffq00tLSrtnPnj175O3trUaNGkmS6tWrp6ZNm2rHjh0ymUxq0KCBfbnmgQce0Pr16/Pt5+olhv/+9796++239eSTT6pcuXKSpM2bN+vSpUvatm2bpCtjp1KlSvb9u3btKpPJpGrVqikwMFBbt27V2bNnFRQUZA97L7zwgt577z170GzWrNl1f07A3YaAgFvSvn17rVixQp6engoJCbmpff96DcLVGjdurNjYWD355JN5tn/00Ufy9vZW06ZN7ds++OAD7dmzR6GhoXr44YeVnZ2t3K8YmTx5svbt26dt27Zpzpw5Wr58uaKioq65/XqsVqtatGihadOm2bedOHFCVatW1fr161W2bNl896tbt66ys7N15MiRPLMIGRkZev311zVhwgT7trS0NHXs2FFt2rTRQw89pNDQUG3YsEE2m01eXl5av369tm/frp9++km9e/fWuHHj1Lp163y3536oFsTJyUkmkynP+bi5uendd99VTk6O2rVrpyeeeEInTpxQQV/dkpOTk6cf6cpsSHZ2tpydnfMsDZlMpgL7yhUYGKjevXtr8ODBWr16tdzd3WW1WjVixAh7qEtNTVVGRkae88lltVqvGc5ya5N0zf9vwN2MuxhwS0JCQrR27VqtWbNGzz//fJH126dPH3311Vf64Ycf7Nu2bNmi+fPnq379+nne+8MPP6hnz57q0KGDKlWqpG3btiknJ0dJSUl6/PHHVbFiRfXq1UtDhgzRr7/+es3tN6JFixbaunWrDh48KEn6z3/+o/bt2ys9Pb3A/VxcXPTKK6/of/7nf3T27FlJV9bSJ06cqMuXL+vee++1vzchIUEpKSkaMmSIWrdure3btyszM1NWq1ULFizQ8OHD1apVK7399ttq1aqVfv/992tuv9Fz+uabb2S1WpWZmalBgwYpJiZGP/zw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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from yellowbrick.classifier import ClassificationReport\n", "visualizer = ClassificationReport(mlp_classification, classes=[0,1,2])\n", "visualizer.fit(X_train, Y_train) \n", "visualizer.score(X_test, Y_test) \n", "g = visualizer.poof() " ] } ], "metadata": { "interpreter": { "hash": "cc5f70855ac006f3de45a3cc3b9e7d8d53845e50458809cb162b0174266dec97" }, "kernelspec": { "display_name": "Python 3.7.0 64-bit ('base': conda)", "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.6.13" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }