From 32780a1ae86b9d70665b324e7f9ae0f36a6889e0 Mon Sep 17 00:00:00 2001 From: aakan96 <aakan96@mi.fu-berlin.de> Date: Tue, 11 Jul 2023 18:59:06 +0000 Subject: [PATCH] Neue Datei hochladen --- .../DS_miRNA_limma_dataset_xgb_final.ipynb | 1544 +++++++++++++++++ 1 file changed, 1544 insertions(+) create mode 100644 Machine Learning/DS_miRNA_limma_dataset_xgb_final.ipynb diff --git a/Machine Learning/DS_miRNA_limma_dataset_xgb_final.ipynb b/Machine Learning/DS_miRNA_limma_dataset_xgb_final.ipynb new file mode 100644 index 0000000..549f586 --- /dev/null +++ b/Machine Learning/DS_miRNA_limma_dataset_xgb_final.ipynb @@ -0,0 +1,1544 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 257, + "id": "f097ad55", + "metadata": {}, + "outputs": [], + "source": [ + "import warnings\n", + "warnings.filterwarnings('ignore')\n", + "import pandas as pd\n", + "from sklearn.model_selection import train_test_split\n", + "#from sklearn.model_selection import cross_val_score\n", + "#from sklearn.metrics import accuracy_score\n", + "#import sklearn.metrics as metrics\n", + "#from sklearn.metrics import auc\n", + "from sklearn.metrics import RocCurveDisplay\n", + "#from sklearn.model_selection import KFold\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from imblearn.over_sampling import SMOTE\n", + "from sklearn.linear_model import Lasso\n", + "import xgboost as xgb\n", + "from sklearn.model_selection import GridSearchCV\n", + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "#np.random.seed(7)" + ] + }, + { + "cell_type": "markdown", + "id": "73b6611a", + "metadata": {}, + "source": [ + "# Data Preprocessing" + ] + }, + { + "cell_type": "code", + "execution_count": 258, + "id": "0eeb7a35", + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv(\"DS/miRNA_DS_preprocessed_data.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 259, + "id": "0dd80c33", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>Row.names</th>\n", + " <th>GSM1069774</th>\n", + " <th>GSM1069775</th>\n", + " <th>GSM1069776</th>\n", + " <th>GSM1069777</th>\n", + " <th>GSM1069778</th>\n", + " <th>GSM1069779</th>\n", + " <th>GSM1069780</th>\n", + " <th>GSM1069781</th>\n", + " <th>GSM1069782</th>\n", + " <th>...</th>\n", + " <th>GSM1070002</th>\n", + " <th>GSM1070003</th>\n", + " <th>GSM1070004</th>\n", + " <th>GSM1070005</th>\n", + " <th>GSM1070006</th>\n", + " <th>GSM1070007</th>\n", + " <th>GSM1070008</th>\n", + " <th>GSM1070009</th>\n", + " <th>GSM1070010</th>\n", + " <th>GSM1070011</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>dmr_3</td>\n", + " <td>0.732675</td>\n", + " <td>0.249772</td>\n", + " <td>0.400779</td>\n", + " <td>0.380263</td>\n", + " <td>0.422207</td>\n", + " <td>0.195084</td>\n", + " <td>0.539051</td>\n", + " <td>0.949943</td>\n", + " <td>0.860827</td>\n", + " <td>...</td>\n", + " <td>2.718250</td>\n", + " <td>2.571045</td>\n", + " <td>0.421015</td>\n", + " <td>0.843205</td>\n", + " <td>0.991408</td>\n", + " <td>0.987970</td>\n", + " <td>-0.194781</td>\n", + " <td>0.212180</td>\n", + " <td>0.330997</td>\n", + " <td>0.474815</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>dmr_31a</td>\n", + " <td>-0.242559</td>\n", + " <td>-0.655514</td>\n", + " <td>-0.597444</td>\n", + " <td>-0.900491</td>\n", + " <td>-0.414831</td>\n", + " <td>-0.805359</td>\n", + " <td>-0.517633</td>\n", + " <td>-0.223316</td>\n", + " <td>-0.136347</td>\n", + " <td>...</td>\n", + " <td>-0.773905</td>\n", + " <td>-0.997509</td>\n", + " <td>-0.345417</td>\n", + " <td>0.082461</td>\n", + " <td>-0.000979</td>\n", + " <td>-0.118186</td>\n", + " <td>-0.710519</td>\n", + " <td>-0.284657</td>\n", + " <td>-0.194460</td>\n", + " <td>0.043697</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>dmr_6</td>\n", + " <td>0.577801</td>\n", + " <td>0.104933</td>\n", + " <td>0.232702</td>\n", + " <td>0.243207</td>\n", + " <td>-0.000781</td>\n", + " <td>-0.242663</td>\n", + " <td>0.123341</td>\n", + " <td>0.529106</td>\n", + " <td>0.879854</td>\n", + " <td>...</td>\n", + " <td>2.501101</td>\n", + " <td>2.411094</td>\n", + " <td>0.195552</td>\n", + " <td>0.633497</td>\n", + " <td>0.747960</td>\n", + " <td>0.750199</td>\n", + " <td>-0.700226</td>\n", + " <td>-0.324720</td>\n", + " <td>-0.206405</td>\n", + " <td>-0.102511</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>ebv-miR-BART13</td>\n", + " <td>-4.469532</td>\n", + " <td>-5.209572</td>\n", + " <td>-4.952808</td>\n", + " <td>-4.892073</td>\n", + " <td>-5.139127</td>\n", + " <td>-5.743958</td>\n", + " <td>-5.071777</td>\n", + " <td>-4.925431</td>\n", + " <td>-4.502912</td>\n", + " <td>...</td>\n", + " <td>-4.802387</td>\n", + " <td>-4.673440</td>\n", + " <td>-4.663603</td>\n", + " <td>-4.592706</td>\n", + " <td>-4.339199</td>\n", + " <td>-4.572984</td>\n", + " <td>-5.651293</td>\n", + " <td>-4.800142</td>\n", + " <td>-4.840442</td>\n", + " <td>-4.849285</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>hsa-let-7c</td>\n", + " <td>1.195899</td>\n", + " <td>0.498366</td>\n", + " <td>1.081166</td>\n", + " <td>-0.023958</td>\n", + " <td>1.077485</td>\n", + " <td>0.753565</td>\n", + " <td>1.024742</td>\n", + " <td>1.257121</td>\n", + " <td>0.001818</td>\n", + " <td>...</td>\n", + " <td>1.407490</td>\n", + " <td>1.420378</td>\n", + " <td>0.105924</td>\n", + " <td>1.809773</td>\n", + " <td>1.889811</td>\n", + " <td>0.696251</td>\n", + " <td>0.742722</td>\n", + " <td>1.006200</td>\n", + " <td>1.521159</td>\n", + " <td>1.239637</td>\n", + " </tr>\n", + " <tr>\n", + " <th>...</th>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>225</th>\n", + " <td>hur_4</td>\n", + " <td>3.822267</td>\n", + " <td>3.529789</td>\n", + " <td>3.496675</td>\n", + " <td>3.541502</td>\n", + " <td>3.305132</td>\n", + " <td>2.897285</td>\n", + " <td>3.373274</td>\n", + " <td>4.020815</td>\n", + " <td>3.502169</td>\n", + " <td>...</td>\n", + " <td>2.892524</td>\n", + " <td>2.232009</td>\n", + " <td>3.598718</td>\n", + " <td>4.631603</td>\n", + " <td>4.421315</td>\n", + " <td>3.899704</td>\n", + " <td>2.788619</td>\n", + " <td>3.125750</td>\n", + " <td>3.365475</td>\n", + " <td>3.514036</td>\n", + " </tr>\n", + " <tr>\n", + " <th>226</th>\n", + " <td>hur_5</td>\n", + " <td>-2.268209</td>\n", + " <td>-2.656642</td>\n", + " <td>-2.676555</td>\n", + " <td>-3.073553</td>\n", + " <td>-2.964948</td>\n", + " <td>-3.123546</td>\n", + " <td>-2.921738</td>\n", + " <td>-2.338717</td>\n", + " <td>-1.998436</td>\n", + " <td>...</td>\n", + " <td>-2.590625</td>\n", + " <td>-2.870981</td>\n", + " <td>-2.678576</td>\n", + " <td>-1.734258</td>\n", + " <td>-2.292801</td>\n", + " <td>-2.954284</td>\n", + " <td>-3.103706</td>\n", + " <td>-2.917537</td>\n", + " <td>-2.736411</td>\n", + " <td>-2.931018</td>\n", + " </tr>\n", + " <tr>\n", + " <th>227</th>\n", + " <td>hur_6</td>\n", + " <td>5.114399</td>\n", + " <td>4.327117</td>\n", + " <td>4.616284</td>\n", + " <td>4.581648</td>\n", + " <td>4.487481</td>\n", + " <td>4.176481</td>\n", + " <td>4.655614</td>\n", + " <td>5.072622</td>\n", + " <td>5.218395</td>\n", + " <td>...</td>\n", + " <td>5.283555</td>\n", + " <td>5.058830</td>\n", + " <td>4.912666</td>\n", + " <td>6.425631</td>\n", + " <td>6.133770</td>\n", + " <td>5.505105</td>\n", + " <td>4.340513</td>\n", + " <td>4.838599</td>\n", + " <td>5.185601</td>\n", + " <td>4.798139</td>\n", + " </tr>\n", + " <tr>\n", + " <th>228</th>\n", + " <td>miRNABrightCorner30</td>\n", + " <td>2.017444</td>\n", + " <td>2.022346</td>\n", + " <td>1.498011</td>\n", + " <td>0.789822</td>\n", + " <td>1.219583</td>\n", + " <td>1.405472</td>\n", + " <td>1.224923</td>\n", + " <td>1.481480</td>\n", + " <td>2.488058</td>\n", + " <td>...</td>\n", + " <td>1.023877</td>\n", + " <td>0.361653</td>\n", + " <td>1.780362</td>\n", + " <td>1.898003</td>\n", + " <td>2.210791</td>\n", + " <td>2.457963</td>\n", + " <td>0.232713</td>\n", + " <td>0.863574</td>\n", + " <td>0.846454</td>\n", + " <td>2.089520</td>\n", + " </tr>\n", + " <tr>\n", + " <th>229</th>\n", + " <td>mr_1</td>\n", + " <td>1.640437</td>\n", + " <td>0.794260</td>\n", + " <td>1.584544</td>\n", + " <td>1.255367</td>\n", + " <td>0.951615</td>\n", + " <td>0.803260</td>\n", + " <td>1.139880</td>\n", + " <td>1.863920</td>\n", + " <td>2.059302</td>\n", + " <td>...</td>\n", + " <td>1.008895</td>\n", + " <td>0.539606</td>\n", + " <td>2.092973</td>\n", + " <td>3.013288</td>\n", + " <td>2.858038</td>\n", + " <td>2.142301</td>\n", + " <td>1.067806</td>\n", + " <td>1.203499</td>\n", + " <td>1.604729</td>\n", + " <td>1.597958</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>230 rows × 239 columns</p>\n", + "</div>" + ], + "text/plain": [ + " Row.names GSM1069774 GSM1069775 GSM1069776 GSM1069777 \\\n", + "0 dmr_3 0.732675 0.249772 0.400779 0.380263 \n", + "1 dmr_31a -0.242559 -0.655514 -0.597444 -0.900491 \n", + "2 dmr_6 0.577801 0.104933 0.232702 0.243207 \n", + "3 ebv-miR-BART13 -4.469532 -5.209572 -4.952808 -4.892073 \n", + "4 hsa-let-7c 1.195899 0.498366 1.081166 -0.023958 \n", + ".. ... ... ... ... ... \n", + "225 hur_4 3.822267 3.529789 3.496675 3.541502 \n", + "226 hur_5 -2.268209 -2.656642 -2.676555 -3.073553 \n", + "227 hur_6 5.114399 4.327117 4.616284 4.581648 \n", + "228 miRNABrightCorner30 2.017444 2.022346 1.498011 0.789822 \n", + "229 mr_1 1.640437 0.794260 1.584544 1.255367 \n", + "\n", + " GSM1069778 GSM1069779 GSM1069780 GSM1069781 GSM1069782 ... \\\n", + "0 0.422207 0.195084 0.539051 0.949943 0.860827 ... \n", + "1 -0.414831 -0.805359 -0.517633 -0.223316 -0.136347 ... \n", + "2 -0.000781 -0.242663 0.123341 0.529106 0.879854 ... \n", + "3 -5.139127 -5.743958 -5.071777 -4.925431 -4.502912 ... \n", + "4 1.077485 0.753565 1.024742 1.257121 0.001818 ... \n", + ".. ... ... ... ... ... ... \n", + "225 3.305132 2.897285 3.373274 4.020815 3.502169 ... \n", + "226 -2.964948 -3.123546 -2.921738 -2.338717 -1.998436 ... \n", + "227 4.487481 4.176481 4.655614 5.072622 5.218395 ... \n", + "228 1.219583 1.405472 1.224923 1.481480 2.488058 ... \n", + "229 0.951615 0.803260 1.139880 1.863920 2.059302 ... \n", + "\n", + " GSM1070002 GSM1070003 GSM1070004 GSM1070005 GSM1070006 GSM1070007 \\\n", + "0 2.718250 2.571045 0.421015 0.843205 0.991408 0.987970 \n", + "1 -0.773905 -0.997509 -0.345417 0.082461 -0.000979 -0.118186 \n", + "2 2.501101 2.411094 0.195552 0.633497 0.747960 0.750199 \n", + "3 -4.802387 -4.673440 -4.663603 -4.592706 -4.339199 -4.572984 \n", + "4 1.407490 1.420378 0.105924 1.809773 1.889811 0.696251 \n", + ".. ... ... ... ... ... ... \n", + "225 2.892524 2.232009 3.598718 4.631603 4.421315 3.899704 \n", + "226 -2.590625 -2.870981 -2.678576 -1.734258 -2.292801 -2.954284 \n", + "227 5.283555 5.058830 4.912666 6.425631 6.133770 5.505105 \n", + "228 1.023877 0.361653 1.780362 1.898003 2.210791 2.457963 \n", + "229 1.008895 0.539606 2.092973 3.013288 2.858038 2.142301 \n", + "\n", + " GSM1070008 GSM1070009 GSM1070010 GSM1070011 \n", + "0 -0.194781 0.212180 0.330997 0.474815 \n", + "1 -0.710519 -0.284657 -0.194460 0.043697 \n", + "2 -0.700226 -0.324720 -0.206405 -0.102511 \n", + "3 -5.651293 -4.800142 -4.840442 -4.849285 \n", + "4 0.742722 1.006200 1.521159 1.239637 \n", + ".. ... ... ... ... \n", + "225 2.788619 3.125750 3.365475 3.514036 \n", + "226 -3.103706 -2.917537 -2.736411 -2.931018 \n", + "227 4.340513 4.838599 5.185601 4.798139 \n", + "228 0.232713 0.863574 0.846454 2.089520 \n", + "229 1.067806 1.203499 1.604729 1.597958 \n", + "\n", + "[230 rows x 239 columns]" + ] + }, + "execution_count": 259, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 260, + "id": "6e7836e1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(230, 239)" + ] + }, + "execution_count": 260, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 261, + "id": "683b63ce", + "metadata": {}, + "outputs": [], + "source": [ + "df = df.T" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2e78017d", + "metadata": {}, + "outputs": [], + "source": [ + "#Transform the input data\n", + "df.rename(columns=df.iloc[0], inplace = True)\n", + "df.drop(df.index[0], inplace = True)\n", + "df=df.reset_index()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1647a959", + "metadata": {}, + "outputs": [], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4c50c510", + "metadata": {}, + "outputs": [], + "source": [ + "metadata = pd.read_csv(\"DS/miRNA_DS_metadata_col_info.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "55f4abc3", + "metadata": {}, + "outputs": [], + "source": [ + "metadata" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6730cf89", + "metadata": {}, + "outputs": [], + "source": [ + "df= df.merge(metadata, left_on=\"index\", right_on= \"Unnamed: 0\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e32e7310", + "metadata": {}, + "outputs": [], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7a8ad8ad", + "metadata": {}, + "outputs": [], + "source": [ + "df['title0'] = df['title0'].replace('(?i)mucosa|normal|healthy', 0, regex=True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a8cf8643", + "metadata": {}, + "outputs": [], + "source": [ + "df['title0'] = df['title0'].replace('(?i)Tumor|Cancer|carcinoma', 1, regex=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5c852a3f", + "metadata": {}, + "outputs": [], + "source": [ + "df['title0'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f5d203aa", + "metadata": {}, + "outputs": [], + "source": [ + "df = df[pd.to_numeric(df['title0'], errors='coerce').notnull()]#remove all non-numeric data from the column." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9d8882a3", + "metadata": {}, + "outputs": [], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "523bdaa6", + "metadata": {}, + "outputs": [], + "source": [ + "df= df.drop(['index', 'Unnamed: 0'], axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "46a6fb36", + "metadata": {}, + "outputs": [], + "source": [ + "df= df.rename(columns={\"title0\": \"index\"})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e26f88c5", + "metadata": {}, + "outputs": [], + "source": [ + "df['index'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fbaf2507", + "metadata": {}, + "outputs": [], + "source": [ + "df= df.apply(pd.to_numeric)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f3f7adb5", + "metadata": {}, + "outputs": [], + "source": [ + "df['index'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6a50f416", + "metadata": {}, + "outputs": [], + "source": [ + "X=df.drop(\"index\",axis=1)\n", + "y=df['index']" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e644ab0e", + "metadata": {}, + "outputs": [], + "source": [ + "y=y.astype('int')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f4ad97bb", + "metadata": {}, + "outputs": [], + "source": [ + "X" + ] + }, + { + "cell_type": "markdown", + "id": "6cee6462", + "metadata": {}, + "source": [ + "# Test train split" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1da48142", + "metadata": {}, + "outputs": [], + "source": [ + "# split data into training and testing data-sets\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=7)" + ] + }, + { + "cell_type": "code", + "execution_count": 263, + "id": "129430e6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(index\n", + " 1 61\n", + " 0 58\n", + " Name: count, dtype: int64,\n", + " index\n", + " 0 61\n", + " 1 58\n", + " Name: count, dtype: int64)" + ] + }, + "execution_count": 263, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_test.value_counts(),y_train.value_counts()" + ] + }, + { + "cell_type": "markdown", + "id": "1cfe2a06", + "metadata": {}, + "source": [ + "# Cross validation" + ] + }, + { + "cell_type": "code", + "execution_count": 264, + "id": "d3550b5e", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Fitting 5 folds for each of 36 candidates, totalling 180 fits\n", + "[CV 1/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 1.0s\n", + "[CV 2/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.8s\n", + "[CV 3/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.2s\n", + "[CV 4/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 2/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.2s\n", + "[CV 4/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 2/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.917 total time= 0.1s\n", + "[CV 2/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 2/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.2s\n", + "[CV 4/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.917 total time= 0.1s\n", + "[CV 2/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.5, gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.2s\n", + "[CV 1/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 2/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.2s\n", + "[CV 2/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 2/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.2s\n", + "[CV 1/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.917 total time= 0.1s\n", + "[CV 2/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.2s\n", + "[CV 3/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.2s\n", + "[CV 5/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.2s\n", + "[CV 1/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.2s\n", + "[CV 2/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.2s\n", + "[CV 5/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.2s\n", + "[CV 1/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.917 total time= 0.1s\n", + "[CV 2/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 4/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.5, gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 2/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.2s\n", + "[CV 2/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 2/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.2s\n", + "[CV 3/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.2s\n", + "[CV 5/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.2s\n", + "[CV 1/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.917 total time= 0.2s\n", + "[CV 2/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.2s\n", + "[CV 2/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.2s\n", + "[CV 3/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.917 total time= 0.2s\n", + "[CV 2/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.5, gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 2/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 2/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.2s\n", + "[CV 3/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.2s\n", + "[CV 4/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.2s\n", + "[CV 2/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.2s\n", + "[CV 4/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.917 total time= 0.1s\n", + "[CV 2/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.2s\n", + "[CV 1/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.1s\n", + "[CV 2/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.2s\n", + "[CV 4/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.917 total time= 0.2s\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 2/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.2s\n", + "[CV 3/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.3s\n", + "[CV 4/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.8, gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.2s\n", + "[CV 1/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.2s\n", + "[CV 2/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 2/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.2s\n", + "[CV 4/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.2s\n", + "[CV 1/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.3s\n", + "[CV 2/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.2s\n", + "[CV 4/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.2s\n", + "[CV 5/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.2s\n", + "[CV 1/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.917 total time= 0.2s\n", + "[CV 2/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.2s\n", + "[CV 3/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.2s\n", + "[CV 4/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.2s\n", + "[CV 5/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.1s\n", + "[CV 2/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.2s\n", + "[CV 3/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.2s\n", + "[CV 1/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.917 total time= 0.2s\n", + "[CV 2/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.8, gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 2/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 2/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.1s\n", + "[CV 2/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.917 total time= 0.1s\n", + "[CV 2/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.2s\n", + "[CV 5/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 1/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.1s\n", + "[CV 2/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.958 total time= 0.1s\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 4/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.2s\n", + "[CV 5/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=1.000 total time= 0.2s\n", + "[CV 1/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.917 total time= 0.1s\n", + "[CV 2/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 3/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.958 total time= 0.1s\n", + "[CV 4/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END colsample_bytree=0.8, gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n" + ] + }, + { + "data": { + "text/html": [ + "<style>#sk-container-id-15 {color: black;background-color: white;}#sk-container-id-15 pre{padding: 0;}#sk-container-id-15 div.sk-toggleable {background-color: white;}#sk-container-id-15 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-15 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-15 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-15 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-15 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-15 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-15 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-15 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-15 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-15 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-15 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-15 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-15 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-15 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-15 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-15 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-15 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-15 div.sk-item {position: relative;z-index: 1;}#sk-container-id-15 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-15 div.sk-item::before, #sk-container-id-15 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-15 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-15 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-15 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-15 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-15 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-15 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-15 div.sk-label-container {text-align: center;}#sk-container-id-15 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-15 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-15\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GridSearchCV(estimator=XGBClassifier(base_score=None, booster=None,\n", + " callbacks=None, colsample_bylevel=None,\n", + " colsample_bynode=None,\n", + " colsample_bytree=None,\n", + " early_stopping_rounds=None,\n", + " enable_categorical=False, eval_metric=None,\n", + " feature_types=None, gamma=None,\n", + " gpu_id=None, grow_policy=None,\n", + " importance_type=None,\n", + " interaction_constraints=None,\n", + " learning_rate=None, max_b...\n", + " max_delta_step=None, max_depth=None,\n", + " max_leaves=None, min_child_weight=None,\n", + " missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None,\n", + " num_parallel_tree=None, predictor=None,\n", + " random_state=42, ...),\n", + " param_grid={'colsample_bytree': [0.5, 0.8],\n", + " 'gamma': [0.1, 0.01, 0.001],\n", + " 'learning_rate': [0.1, 0.01, 0.001], 'max_depth': [3],\n", + " 'n_estimators': [100], 'subsample': [0.8, 1.0]},\n", + " verbose=3)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-29\" type=\"checkbox\" ><label for=\"sk-estimator-id-29\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">GridSearchCV</label><div class=\"sk-toggleable__content\"><pre>GridSearchCV(estimator=XGBClassifier(base_score=None, booster=None,\n", + " callbacks=None, colsample_bylevel=None,\n", + " colsample_bynode=None,\n", + " colsample_bytree=None,\n", + " early_stopping_rounds=None,\n", + " enable_categorical=False, eval_metric=None,\n", + " feature_types=None, gamma=None,\n", + " gpu_id=None, grow_policy=None,\n", + " importance_type=None,\n", + " interaction_constraints=None,\n", + " learning_rate=None, max_b...\n", + " max_delta_step=None, max_depth=None,\n", + " max_leaves=None, min_child_weight=None,\n", + " missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None,\n", + " num_parallel_tree=None, predictor=None,\n", + " random_state=42, ...),\n", + " param_grid={'colsample_bytree': [0.5, 0.8],\n", + " 'gamma': [0.1, 0.01, 0.001],\n", + " 'learning_rate': [0.1, 0.01, 0.001], 'max_depth': [3],\n", + " 'n_estimators': [100], 'subsample': [0.8, 1.0]},\n", + " verbose=3)</pre></div></div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-30\" type=\"checkbox\" ><label for=\"sk-estimator-id-30\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">estimator: XGBClassifier</label><div class=\"sk-toggleable__content\"><pre>XGBClassifier(base_score=None, booster=None, callbacks=None,\n", + " colsample_bylevel=None, colsample_bynode=None,\n", + " colsample_bytree=None, early_stopping_rounds=None,\n", + " enable_categorical=False, eval_metric=None, feature_types=None,\n", + " gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=None, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=None, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-31\" type=\"checkbox\" ><label for=\"sk-estimator-id-31\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">XGBClassifier</label><div class=\"sk-toggleable__content\"><pre>XGBClassifier(base_score=None, booster=None, callbacks=None,\n", + " colsample_bylevel=None, colsample_bynode=None,\n", + " colsample_bytree=None, early_stopping_rounds=None,\n", + " enable_categorical=False, eval_metric=None, feature_types=None,\n", + " gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=None, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=None, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)</pre></div></div></div></div></div></div></div></div></div></div>" + ], + "text/plain": [ + "GridSearchCV(estimator=XGBClassifier(base_score=None, booster=None,\n", + " callbacks=None, colsample_bylevel=None,\n", + " colsample_bynode=None,\n", + " colsample_bytree=None,\n", + " early_stopping_rounds=None,\n", + " enable_categorical=False, eval_metric=None,\n", + " feature_types=None, gamma=None,\n", + " gpu_id=None, grow_policy=None,\n", + " importance_type=None,\n", + " interaction_constraints=None,\n", + " learning_rate=None, max_b...\n", + " max_delta_step=None, max_depth=None,\n", + " max_leaves=None, min_child_weight=None,\n", + " missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None,\n", + " num_parallel_tree=None, predictor=None,\n", + " random_state=42, ...),\n", + " param_grid={'colsample_bytree': [0.5, 0.8],\n", + " 'gamma': [0.1, 0.01, 0.001],\n", + " 'learning_rate': [0.1, 0.01, 0.001], 'max_depth': [3],\n", + " 'n_estimators': [100], 'subsample': [0.8, 1.0]},\n", + " verbose=3)" + ] + }, + "execution_count": 264, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = xgb.XGBClassifier(random_state=42)\n", + "\n", + "# Defining parameter range\n", + "param_grid = {\n", + " 'max_depth': [3],\n", + " 'learning_rate': [0.1 ,0.01, 0.001],\n", + " 'n_estimators': [100],\n", + " 'gamma': [ 0.1,0.01,0.001],\n", + " 'subsample': [0.8, 1.0],\n", + " 'colsample_bytree': [ 0.5, 0.8]\n", + "}\n", + "\n", + "grid = GridSearchCV(model, param_grid, refit=True, verbose=3)\n", + "\n", + "# Fitting the model for grid search\n", + "grid.fit(X_train, y_train)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 265, + "id": "556e249c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'colsample_bytree': 0.5, 'gamma': 0.1, 'learning_rate': 0.1, 'max_depth': 3, 'n_estimators': 100, 'subsample': 0.8}\n", + "XGBClassifier(base_score=None, booster=None, callbacks=None,\n", + " colsample_bylevel=None, colsample_bynode=None,\n", + " colsample_bytree=0.5, early_stopping_rounds=None,\n", + " enable_categorical=False, eval_metric=None, feature_types=None,\n", + " gamma=0.1, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=3, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)\n" + ] + } + ], + "source": [ + "# print best parameter after tuning\n", + "print(grid.best_params_)\n", + " \n", + "# print how our model looks after hyper-parameter tuning\n", + "print(grid.best_estimator_)" + ] + }, + { + "cell_type": "markdown", + "id": "3ea57532", + "metadata": {}, + "source": [ + "# classification report" + ] + }, + { + "cell_type": "code", + "execution_count": 266, + "id": "18becbe2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.97 0.98 0.97 58\n", + " 1 0.98 0.97 0.98 61\n", + "\n", + " accuracy 0.97 119\n", + " macro avg 0.97 0.97 0.97 119\n", + "weighted avg 0.97 0.97 0.97 119\n", + "\n" + ] + } + ], + "source": [ + "from sklearn.metrics import classification_report, confusion_matrix\n", + "grid_predictions = grid.predict(X_test)\n", + "print(classification_report(y_test, grid_predictions))" + ] + }, + { + "cell_type": "code", + "execution_count": 267, + "id": "53a7f793", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<style>#sk-container-id-16 {color: black;background-color: white;}#sk-container-id-16 pre{padding: 0;}#sk-container-id-16 div.sk-toggleable {background-color: white;}#sk-container-id-16 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-16 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-16 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-16 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-16 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-16 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-16 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-16 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-16 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-16 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-16 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-16 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-16 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-16 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-16 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-16 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-16 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-16 div.sk-item {position: relative;z-index: 1;}#sk-container-id-16 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-16 div.sk-item::before, #sk-container-id-16 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-16 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-16 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-16 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-16 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-16 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-16 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-16 div.sk-label-container {text-align: center;}#sk-container-id-16 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-16 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-16\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>XGBClassifier(base_score=None, booster=None, callbacks=None,\n", + " colsample_bylevel=None, colsample_bynode=None,\n", + " colsample_bytree=0.5, early_stopping_rounds=None,\n", + " enable_categorical=False, eval_metric=None, feature_types=None,\n", + " gamma=0.1, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=3, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-32\" type=\"checkbox\" checked><label for=\"sk-estimator-id-32\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">XGBClassifier</label><div class=\"sk-toggleable__content\"><pre>XGBClassifier(base_score=None, booster=None, callbacks=None,\n", + " colsample_bylevel=None, colsample_bynode=None,\n", + " colsample_bytree=0.5, early_stopping_rounds=None,\n", + " enable_categorical=False, eval_metric=None, feature_types=None,\n", + " gamma=0.1, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=3, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)</pre></div></div></div></div></div>" + ], + "text/plain": [ + "XGBClassifier(base_score=None, booster=None, callbacks=None,\n", + " colsample_bylevel=None, colsample_bynode=None,\n", + " colsample_bytree=0.5, early_stopping_rounds=None,\n", + " enable_categorical=False, eval_metric=None, feature_types=None,\n", + " gamma=0.1, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=3, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)" + ] + }, + "execution_count": 267, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model_xgb = grid.best_estimator_\n", + "model_xgb.fit(X_train,y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 268, + "id": "9ed43446", + "metadata": {}, + "outputs": [], + "source": [ + "y_proba = model_xgb.fit(X_train, y_train).predict_proba(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 269, + "id": "c0193b78", + "metadata": {}, + "outputs": [], + "source": [ + "classes = model_xgb.classes_" + ] + }, + { + "cell_type": "code", + "execution_count": 270, + "id": "d723c69f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0, 1])" + ] + }, + "execution_count": 270, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "classes" + ] + }, + { + "cell_type": "markdown", + "id": "6603d82c", + "metadata": {}, + "source": [ + "# ROC curve" + ] + }, + { + "cell_type": "code", + "execution_count": 279, + "id": "0e2a2694", + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import StratifiedKFold\n", + "from sklearn.feature_selection import SelectKBest, f_classif\n", + "from sklearn.metrics import auc\n", + "def roc(X_train,y_train,model,label):\n", + " cv = StratifiedKFold(n_splits=6)\n", + " classifier = model\n", + " tprs = []\n", + " aucs = []\n", + " mean_fpr = np.linspace(0, 1, 100)\n", + "\n", + " fig, ax = plt.subplots(figsize=(6, 6))\n", + " for fold, (train, test) in enumerate(cv.split(X_train, y_train)):\n", + " classifier.fit(X_train.iloc[train], y_train.iloc[train])\n", + " viz = RocCurveDisplay.from_estimator(\n", + " classifier,\n", + " X_train.iloc[test],\n", + " y_train.iloc[test],\n", + " name=f\"ROC fold {fold}\",\n", + " alpha=0.3,\n", + " lw=1,\n", + " ax=ax,\n", + " )\n", + " interp_tpr = np.interp(mean_fpr, viz.fpr, viz.tpr)\n", + " interp_tpr[0] = 0.0\n", + " tprs.append(interp_tpr)\n", + " aucs.append(viz.roc_auc)\n", + " ax.plot([0, 1], [0, 1], \"k--\", label=\"chance level (AUC = 0.5)\")\n", + "\n", + " mean_tpr = np.mean(tprs, axis=0)\n", + " mean_tpr[-1] = 1.0\n", + " mean_auc = auc(mean_fpr, mean_tpr)\n", + " std_auc = np.std(aucs)\n", + " ax.plot(\n", + " mean_fpr,\n", + " mean_tpr,\n", + " color=\"b\",\n", + " label=r\"Mean ROC (AUC = %0.2f $\\pm$ %0.2f)\" % (mean_auc, std_auc),\n", + " lw=2,\n", + " alpha=0.8,\n", + " )\n", + "\n", + " std_tpr = np.std(tprs, axis=0)\n", + " tprs_upper = np.minimum(mean_tpr + std_tpr, 1)\n", + " tprs_lower = np.maximum(mean_tpr - std_tpr, 0)\n", + " ax.fill_between(\n", + " mean_fpr,\n", + " tprs_lower,\n", + " tprs_upper,\n", + " color=\"grey\",\n", + " alpha=0.2,\n", + " label=r\"$\\pm$ 1 std. dev.\",\n", + " )\n", + "\n", + " ax.set(\n", + " xlim=[-0.05, 1.05],\n", + " ylim=[-0.05, 1.05],\n", + " xlabel=\"False Positive Rate\",\n", + " ylabel=\"True Positive Rate\",\n", + " title=label,\n", + " )\n", + " ax.axis(\"square\")\n", + " ax.legend(loc=\"lower right\")\n", + " plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 280, + "id": "d4cc8e6d", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhUAAAIjCAYAAAC0x+nOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC57UlEQVR4nOzdeVxUZdsH8N8MywAzAiLIpiK44JIiueAuJIpaprnmrq+mpmbmQuVGWmlqpqmZpShqpqaWFqHlvkumLK6ooIAKbgjIvsz1/uEzJ8aZQQYODgPX9/OZ52nuc58z1zkC55r73IuEiAiMMcYYY2UkNXQAjDHGGKscOKlgjDHGmCg4qWCMMcaYKDipYIwxxpgoOKlgjDHGmCg4qWCMMcaYKDipYIwxxpgoOKlgjDHGmCg4qWCMMcaYKDipYIwZREZGBsaNGwcnJydIJBJMmzbNIHGEhIRAIpHgzp07eu977NgxSCQSHDt2TPS4Suuzzz6DRCIxdBisiuKkglVaqpuF6mVqagpXV1eMHj0a9+7d07oPEWHr1q3o3LkzbG1tYWVlhWbNmmHhwoXIzMzU+Vm//fYbevbsCXt7e5ibm8PFxQWDBg3CkSNHyuv0jN6iRYsQEhKC999/H1u3bsWIESOKrbt3795XF1wVtXbtWoSEhBg6DGbEJLz2B6usQkJCMGbMGCxcuBDu7u7IycnBuXPnEBISgrp16+Ly5cuwsLAQ6hcWFmLo0KH45Zdf0KlTJ/Tr1w9WVlY4efIkfv75ZzRp0gSHDh2Co6OjsA8R4f/+7/8QEhICb29vDBgwAE5OTkhKSsJvv/2GCxcu4PTp02jfvr0hLkGF1rZtW5iamuLUqVMvratQKDBgwIByueEVFhYiPz8fMplM72/4SqUSeXl5MDc3h1RaMb6jffbZZ1iwYAFK86f9tddeg729fYVqeWHGxdTQATBW3nr27IlWrVoBAMaNGwd7e3ssWbIEv//+OwYNGiTUW7p0KX755RfMnDkTy5YtE8rHjx+PQYMGoW/fvhg9ejT2798vbFu+fDlCQkIwbdo0fPPNN2o3pTlz5mDr1q0wNTXsr1lmZibkcrlBY9Dm4cOHaNKkiejH1fd8TUxMYGJiUqrPkkqlaokpY1UeMVZJbdq0iQDQ+fPn1cpDQ0MJAC1atEgoy8rKourVq1PDhg0pPz9f6/HGjBlDAOjs2bPCPnZ2dtSoUSMqKCgodZyFhYW0cuVKeu2110gmk5G9vT0FBAQIcd++fZsA0KZNmzT2BUBBQUHC+6CgIAJAV65coSFDhpCtrS21aNGCli1bRgDozp07Gsf45JNPyMzMjFJSUoSyc+fOUUBAAFlbW5OlpSV17tyZTp06VaLzefDgAf3f//0f1axZk2QyGTVv3pxCQkKE7UePHiUAGq/bt29rPZ62uqNGjSr2fImIoqKiaNSoUeTu7k4ymYwcHR1pzJgx9PjxY7Xjq35Oin6+m5sbvfnmm3Ty5Elq3bo1yWQycnd3p82bN6vtqzqXo0ePCmVdunShpk2b0pUrV8jX15csLS3JxcWFlixZonFud+7cod69e5OVlRU5ODjQtGnT6MCBAxrH1OXkyZPUqlUrkslk5OHhQevWrROuSVEbN24kPz8/cnBwIHNzc2rcuDGtXbtWrY6bm5vGde7SpQsRET158oRmzJhBr732GsnlcqpWrRr16NGDIiMjXxojq1q4pYJVOaoOedWrVxfKTp06hadPn+LDDz/U2bIwcuRIbNq0CaGhoWjbti1OnTqFlJQUTJs2rdTfdAFg7NixCAkJQc+ePTFu3DgUFBTg5MmTOHfunNDCoq+BAweiQYMGWLRoEYgIb731FgIDA/HLL79g1qxZanV/+eUXdO/eXbgeR44cQc+ePdGyZUsEBQVBKpVi06ZNeOONN3Dy5Em0adNG5+dmZ2fD19cXt27dwpQpU+Du7o5du3Zh9OjRSE1NxYcffojGjRtj69at+Oijj1CrVi3MmDEDAODg4KD1mFu3bsW4cePQpk0bjB8/HgBQr169Ys8XAA4ePIi4uDiMGTMGTk5OuHLlCn788UdcuXIF586de+mjjlu3bmHAgAEYO3YsRo0ahY0bN2L06NFo2bIlmjZtWuy+T58+RY8ePdCvXz8MGjQIu3fvxscff4xmzZqhZ8+eAJ63qLzxxhtISkrChx9+CCcnJ/z88884evRoscdWuXTpErp37w4HBwd89tlnKCgoQFBQkNrjOZXvv/8eTZs2xdtvvw1TU1P88ccfmDRpEpRKJSZPngwAWLlyJT744AMoFArMmTMHAIRjxcXFYe/evRg4cCDc3d3x4MED/PDDD+jSpQuuXr0KFxeXEsXMqgBDZzWMlRfVN9BDhw7Ro0ePKDExkXbv3k0ODg4kk8koMTFRqLty5UoCQL/99pvO46WkpBAA6tevHxERffvtty/d52WOHDlCAGjq1Kka25RKJRGVrqViyJAhGnXbtWtHLVu2VCv7559/CABt2bJF+MwGDRpQQECA8PlEz1tl3N3dqVu3bsWej+o6/vTTT0JZXl4etWvXjhQKBaWnpwvlqtaAkpDL5ULrRFHFnW9WVpZG2fbt2wkAnThxQijT1VLxYr2HDx+STCajGTNmCGW6WiqKXlMiotzcXHJycqL+/fsLZcuXLycAtHfvXqEsOzubGjVqVKKWir59+5KFhQXFx8cLZVevXiUTExONlgpt1yIgIIA8PDzUypo2bSq0ThSVk5NDhYWFamW3b98mmUxGCxcuLDZOVrVUjJ5FjJUjf39/ODg4oHbt2hgwYADkcjl+//131KpVS6jz7NkzAEC1atV0Hke1LT09Xe3/i9vnZfbs2QOJRIKgoCCNbWUZFjhx4kSNssGDB+PChQuIjY0Vynbu3AmZTIY+ffoAACIjI3Hz5k0MHToUT548wePHj/H48WNkZmaia9euOHHiBJRKpc7PDQsLg5OTE4YMGSKUmZmZYerUqcjIyMDx48dLfU7F0Xa+lpaWwn/n5OTg8ePHaNu2LQDg4sWLLz1mkyZN0KlTJ+G9g4MDPD09ERcX99J9FQoFhg8fLrw3NzdHmzZt1PY9cOAAXF1d8fbbbwtlFhYWeO+99156/MLCQvz111/o27cv6tSpI5Q3btwYAQEBGvWLXou0tDQ8fvwYXbp0QVxcHNLS0l76eTKZTOiIWlhYiCdPnkChUMDT07NE15JVHZxUsErvu+++w8GDB7F792706tULjx8/hkwmU6ujSgxUyYU2LyYe1tbWL93nZWJjY+Hi4gI7O7tSH0Mbd3d3jbKBAwdCKpVi586dAJ6PXNm1axd69uwpnMvNmzcBAKNGjYKDg4Paa8OGDcjNzS32JhQfH48GDRpojIRo3LixsL08aDvflJQUfPjhh3B0dISlpSUcHByEeiW5kRa9WatUr14dT58+fem+tWrV0kgKX9w3Pj4e9erV06hXv379lx7/0aNHyM7ORoMGDTS2eXp6apSdPn0a/v7+kMvlsLW1hYODA2bPng2gZNdCqVRixYoVaNCgAWQyGezt7eHg4IDo6OgS7c+qDu5TwSq9Nm3aCH0T+vbti44dO2Lo0KGIiYmBQqEA8N9NLzo6Gn379tV6nOjoaAAQRiw0atQIwPNn27r2EYOuFovCwkKd+xT9Zqri4uKCTp064ZdffsHs2bNx7tw5JCQkYMmSJUIdVSvEsmXL0KJFC63HVl2zikTb+Q4aNAhnzpzBrFmz0KJFCygUCiiVSvTo0aPY1hYVXf1kqARDNcuyr9hiY2PRtWtXNGrUCN988w1q164Nc3NzhIWFYcWKFSW6FosWLcK8efPwf//3f/j8889hZ2cHqVSKadOmlWh/VnVwUsGqFBMTEyxevBh+fn5Ys2YNPvnkEwBAx44dYWtri59//hlz5szRelPYsmULAOCtt94S9qlevTq2b9+O2bNnl6qzZr169fDXX38hJSVFZ2uFqgNlamqqWnlpvvUPHjwYkyZNQkxMDHbu3AkrKyv07t1bLR7geSuMv7+/3sd3c3NDdHQ0lEqlWmvF9evXhe2loe+joKdPn+Lw4cNYsGAB5s+fL5SrWmIqAjc3N1y9ehVEpHZ+t27deum+Dg4OsLS01Ho+MTExau//+OMP5Obm4vfff1drfdHWIVTXdd69ezf8/PwQHBysVp6amgp7e/uXxsuqDn78waocX19ftGnTBitXrkROTg4AwMrKCjNnzkRMTIzQ872oP//8EyEhIQgICBCey1tZWeHjjz/GtWvX8PHHH2v9FvrTTz/hn3/+0RlL//79QURYsGCBxjbV8aytrWFvb48TJ06obV+7dm3JT7rI55mYmGD79u3YtWsX3nrrLbU5HVq2bIl69erh66+/RkZGhsb+jx49Kvb4vXr1QnJysvCIBQAKCgqwevVqKBQKdOnSRe+YAUAul2skVcVRJXgv/pusXLmyVJ9fHgICAnDv3j38/vvvQllOTg7Wr1//0n1NTEwQEBCAvXv3IiEhQSi/du0a/vrrL426gPq1SEtLw6ZNmzSOq+s6m5iYaFzLXbt26ZyZllVd3FLBqqRZs2Zh4MCBCAkJETr5ffLJJ4iIiMCSJUtw9uxZ9O/fH5aWljh16hR++uknNG7cGJs3b9Y4zpUrV7B8+XIcPXpUmFEzOTkZe/fuxT///IMzZ87ojMPPzw8jRozAqlWrcPPmTaFp/uTJk/Dz88OUKVMAPJ+066uvvsK4cePQqlUrnDhxAjdu3ND7vGvWrAk/Pz988803ePbsGQYPHqy2XSqVYsOGDejZsyeaNm2KMWPGwNXVFffu3cPRo0dhbW2NP/74Q+fxx48fjx9++AGjR4/GhQsXULduXezevRunT5/GypUrS92ptWXLljh06BC++eYbuLi4wN3dHT4+PjrrW1tbo3Pnzli6dCny8/Ph6uqKv//+G7dv3y7V55eHCRMmYM2aNRgyZAg+/PBDODs7Y9u2bcJkWi9rnVmwYAEOHDiATp06YdKkSULy1rRpU+FRHQB0794d5ubm6N27NyZMmICMjAysX78eNWvWRFJSktoxW7Zsie+//x5ffPEF6tevj5o1a+KNN97AW2+9hYULF2LMmDFo3749Ll26hG3btsHDw0P8C8OMm6GGnTBW3nRNfkX0fMKpevXqUb169dQmriosLKRNmzZRhw4dyNramiwsLKhp06a0YMECysjI0PlZu3fvpu7du5OdnR2ZmpqSs7MzDR48mI4dO/bSOAsKCmjZsmXUqFEjMjc3JwcHB+rZsydduHBBqJOVlUVjx44lGxsbqlatGg0aNIgePnyoc0jpo0ePdH7e+vXrCQBVq1aNsrOztdaJiIigfv36UY0aNUgmk5GbmxsNGjSIDh8+/NLzefDgAY0ZM4bs7e3J3NycmjVrpnU4rD5DSq9fv06dO3cmS0tLrZNfaTvfu3fv0jvvvEO2trZkY2NDAwcOpPv372tcs+Imv3pRly5d1IZcFjf51YtGjRpFbm5uamVxcXH05ptvkqWlJTk4ONCMGTNoz549BIDOnTv30uty/PhxatmyJZmbmxc7+dXvv/9OzZs3JwsLC6pbty4tWbKENm7cqHHeycnJ9Oabb1K1atXUJr/KycmhGTNmkLOzM1laWlKHDh3o7NmzGteDMV77gzHGKpCVK1fio48+wt27d+Hq6mrocBjTCycVjDFmINnZ2RrzaXh7e6OwsLBUj7cYMzTuU8EYYwbSr18/1KlTBy1atEBaWhp++uknXL9+Hdu2bTN0aIyVCicVjDFmIAEBAdiwYQO2bduGwsJCNGnSBDt27NDoQMuYseDHH4wxxhgTBc9TwRhjjDFRcFLBGGOMMVFUuT4VSqUS9+/fR7Vq1cq0CiRjjDFWFRARnj17BhcXF43FAl9U5ZKK+/fvo3bt2oYOgzHGGDMqiYmJqFWrVrF1qlxSoZomODExUVjumTHGGGPapaeno3bt2iWaZr/KJRWqRx7W1tacVDDGGGMlVJIuA9xRkzHGGGOi4KSCMcYYY6LgpIIxxhhjouCkgjHGGGOi4KSCMcYYY6LgpIIxxhhjouCkgjHGGGOi4KSCMcYYY6LgpIIxxhhjouCkgjHGGGOi4KSCMcYYY6LgpIIxxhhjouCkgjHGGGOi4KSCMcYYY6IwaFJx4sQJ9O7dGy4uLpBIJNi7d+9L9zl27Bhef/11yGQy1K9fHyEhIeUeJ2OMMcZezqBJRWZmJry8vPDdd9+VqP7t27fx5ptvws/PD5GRkZg2bRrGjRuHv/76q5wjZYwxxtjLmBryw3v27ImePXuWuP66devg7u6O5cuXAwAaN26MU6dOYcWKFQgICCivMPV24wawYweQmWnoSBhjjFVFzZoBw4e/+s81aFKhr7Nnz8Lf31+tLCAgANOmTdO5T25uLnJzc4X36enp5RLb3ZtXkZ2ZBQCY85kbrsZYQqlUlstnMcYYYy8qLCyEiYkUgAQ52WYYPtzylcdgVElFcnIyHB0d1cocHR2Rnp6O7OxsWFpqXsDFixdjwYIF5RrX3ZtXcfD79cL7G9HjkJlZrVw/kzHGGFMpKCzEg6epsJSZo3q1akhPkQCo/crjMKqkojQ+/fRTTJ8+XXifnp6O2rXFvdCqFopGfp1gX7sOQv6phbxHgE21fKxcelfUz2KMMcaKevDwISZNn4UCZRKq2Trjh+9WoXnr1w0Si1ElFU5OTnjw4IFa2YMHD2Btba21lQIAZDIZZDLZqwgP9rXroEGLVrBUAObP8qCwlaHtGy1eyWczxhirehITEzHsvf64nxQHDw8PHDsWKvoXZ30Y1TwV7dq1w+HDh9XKDh48iHbt2hkoIu1UXSmkRnV1GWOMGZPExET4+voiLk6VUBwzaEIBGDipyMjIQGRkJCIjIwE8HzIaGRmJhIQEAM8fXYwcOVKoP3HiRMTFxSEwMBDXr1/H2rVr8csvv+Cjjz4yRPg6/ZdUkGEDYYwxVilVxIQCMHBS8e+//8Lb2xve3t4AgOnTp8Pb2xvz588HACQlJQkJBgC4u7vjzz//xMGDB+Hl5YXly5djw4YNFWo4KcAtFYwxxsrXv//+izt37lSohAIwcJ8KX19fEOn+Nq9ttkxfX19ERESUY1Rlp0oqJBLDxsEYY6xyeuedd7B79260atWqwiQUgJF11DQW3FLBGGNMbImJiTAxMYGLiwuA54lFRcO3vXJQWPj8/zmpYIwxJgZVHwpfX1/cv3/f0OHoxLe9cqB6osMdNRljjJVV0U6ZhYWFKFR9c62AOKkoB9xSwRhjTAwVdZSHLnzbKweqlgruqMkYY6y0jC2hADipEB3Rfx01TUwMGwtjjDHjZIwJBcBJheiKjpDllgrGGGOlYWJiAhMTE6NKKAAeUiq6oqudm5hwR03GGGP6c3FxwbFjx1BYWGg0CQXALRWiK5pUcEsFY4yxkkpISMCvv/4qvHdxcTGqhALgpEJ0RZMKHv3BGGOsJBISEuDn54eBAweqJRbGhm97IuOkgjHGmD5UCUVcXBzq1q2L1q1bGzqkUuPbnsjUkwruU8EYY0y3ogmFsXXK1IaTCpFxSwVjjLGSqGwJBcBJheiKzp7KHTUZY4xp8+TJk0qXUACcVIiu6DwV3FLBGGNMGzs7O7z11luVKqEAOKkQXdGWCp5RkzHGmDYSiQQrV67EP//8U2kSCoCTCtHxjJqMMca0SUxMxOTJk5GbmwvgeWJRo0YNA0clLp5RU2TcUsEYY+xFRdfyAIDvvvvOwBGVD26pEBnPqMkYY6yoFxcH++STTwwdUrnhpEJk6mt/GC4Oxhhjhmesq42WFicVIuOWCsYYY0DVSygATipEVzSpMOUeK4wxViUplUr07t27SiUUACcVouOWCsYYY1KpFGvWrIGXl1eVSSgAHv0hOvU+FZxVMMZYVUJEkPzvG2XHjh1x8eJFSKvQTIhV50xfEV5QjDHGqqbExES0bdsWUVFRQllVSigATipEV3SeCqmUWyoYY6wqUHXK/OeffzB+/HgQVc0vlZxUiOz5z9HzH6YqlqAyxliV9OIoj927dwuPQKoavu2JTL2lwnBxMMYYK39Vcdhocfi2J7KiLV48+RVjjFVenFBo4qRCZEVbKqpo6xdjjFUJ8+bN44TiBTykVGQ8pJQxxqoG1aJgn3/+OScU/8NJhciUyv8egXCfCsYYq1zS09NhbW0NAJDL5QgJCTFsQBUM3/ZEpj5PheHiYIwxJq7ExER4e3tj4cKFhg6lwuLbnsieJxU8pJQxxiqTop0yN2/ejPT0dEOHVCHxbU9kvPQ5Y4xVLtpGeagegTB1nFSIjBcUY4yxyoOHjeqHkwqRqS99zlkFY4wZK04o9MdJhci4pYIxxiqHo0ePckKhJx5SKjLuU8EYY5XDyJEjAQB+fn6cUJQQJxUi4yGljDFmvBITEyGXy2FnZwfgv8SClQzf9kTGM2oyxphxSkhIgK+vL/z9/ZGSkmLocIwSJxUiU59Rk4qvzBhjrEJISEiAn58f4uLikJaWhszMTEOHZJQ4qRCZ+tLn3FLBGGMVXdGEgjtllg0nFSJ73krBM2oyxpgx4IRCXHzbE1nRlgruU8EYYxUXJxTi46RCZFSkGwW3VDDGWMWVl5eH3NxcTihExENKRabeUmG4OBhjjBWvfv36OHbsGGQyGScUIuHv0iLjGTUZY6ziSkxMxMGDB4X39evX54RCRJxUiIzX/mCMsYpJtZbHW2+9pZZYMPFwUiEybqlgjLGKp+jiYLVq1UKjRo0MHVKlxEmFyHjtD8YYq1h4tdFXh5MKkanPqGnYWBhjrKrjhOLV4tueyHjtD8YYqxgePnzICcUrxkNKRfY8qeAZNRljzNBq1KiB9u3bAwAnFK8IJxUi4xk1GWOsYjAxMUFISAiePHmCmjVrGjqcKoG/S4uMZ9RkjDHDSUxMxMcff4zC/33DMzEx4YTiFeKWCpGpr1JquDgYY6yqKdopEwCWLFli4IiqHr7tiaxoSwU//mCMsVfjxVEeU6ZMMXRIVRInFSIrLOQhpYwx9irxsNGKg297IuMhpYwx9upwQlGxcFIhsqJJBbdUMMZY+SkoKECPHj04oahA+LYnMm6pYIyxV8PU1BRff/01mjRpwglFBcGjP0TGk18xxtir07NnT3Tr1g2mpnw7qwj4ticyXvqcMcbKj6oPxa1bt4QyTigqDk4qRMZLnzPGWPlQJRTHjx/HuHHjDB0O04KTCpHx0ueMMSa+F0d5bN261dAhMS04qRAZt1Qwxpi4eNio8eCkQmTcUsEYY+LhhMK4cFIhMqWSZ9RkjDGxfPTRR5xQGBHuMisynvyKMcbE8+OPPwIAVqxYwQmFEeCkQmScVDDGWNlkZWXBysoKAGBnZ4fdu3cbOCJWUnzbExkvfc4YY6WXkJCA5s2b47vvvjN0KKwU+LYnsuf9KXhGTcYY01dCQgL8/PwQGxuLFStWICsry9AhMT0Z/Lb33XffoW7durCwsICPjw/++eefYuuvXLkSnp6esLS0RO3atfHRRx8hJyfnFUX7ctxSwRhj+lMlFKpOmUePHhUegTDjYdDb3s6dOzF9+nQEBQXh4sWL8PLyQkBAAB4+fKi1/s8//4xPPvkEQUFBuHbtGoKDg7Fz507Mnj37FUeum2rkB8BJBWOMlcSLCQWP8jBeBr3tffPNN3jvvfcwZswYNGnSBOvWrYOVlRU2btyotf6ZM2fQoUMHDB06FHXr1kX37t0xZMiQl7ZuvEpFWyp4ngrGGCseJxSVi8GSiry8PFy4cAH+/v7/BSOVwt/fH2fPntW6T/v27XHhwgUhiYiLi0NYWBh69eql83Nyc3ORnp6u9ipPPKMmY4yV3L59+zihqEQMNqT08ePHKCwshKOjo1q5o6Mjrl+/rnWfoUOH4vHjx+jYsSOICAUFBZg4cWKxjz8WL16MBQsWiBp7cXhGTcYYK7kPPvgAANC3b19OKCoBo3rqf+zYMSxatAhr167FxYsX8euvv+LPP//E559/rnOfTz/9FGlpacIrMTGxXGPklgrGGCvevXv3kJGRIbz/4IMPOKGoJAzWUmFvbw8TExM8ePBArfzBgwdwcnLSus+8efMwYsQIYcnbZs2aITMzE+PHj8ecOXMg1dIzUiaTQSaTiX8COnBLBWOM6aZay8PV1RVhYWFQKBSGDomJyGAtFebm5mjZsiUOHz4slCmVShw+fBjt2rXTuk9WVpZG4mDyvzs3FR12YUA8oyZjjGlXdHGwe/fuIS0tzdAhMZEZdJru6dOnY9SoUWjVqhXatGmDlStXIjMzE2PGjAEAjBw5Eq6urli8eDEAoHfv3vjmm2/g7e0NHx8f3Lp1C/PmzUPv3r2F5MLQOKlgjDFN2lYbdXV1NXRYTGQGTSoGDx6MR48eYf78+UhOTkaLFi1w4MABofNmQkKCWsvE3LlzIZFIMHfuXNy7dw8ODg7o3bs3vvzyS0OdggbuU8EYY+p4+fKqQ0IV5bnBK5Keng4bGxukpaXB2tpalGPejPwXp7ZsQ8eRw/D5N60QFZUHiQSIjDQX5fiMMWasOKEwfvrcN7mBXmSqFI0ffTDGGPD06VOkpqZyQlFF8NLnIlPNqMlJBWOMAc2bN8fRo0dRvXp1TiiqAE4qRKZqqeD+FIyxqioxMRF3794VRvI1b97cwBGxV4W/T4tM1VJhYlKluqowxhiA//pQdOvWTeeSC6zy4qRCZKrRH9xSwRiraop2ynR0dEStWrUMHRJ7xTipEJkqqeA+FYyxqoRHeTCAkwrRcUsFY6yq4YSCqXBSITJVUsF9KhhjVUFSUhInFEzAoz9Exo8/GGNVSY0aNdC0aVMA4ISCcVIhNk4qGGNVibm5OXbv3o0nT57A2dnZ0OEwA+Nbn8i4TwVjrLJLTEzEl19+KawObW5uzgkFA8AtFaLjlgrGWGVWtFMmAMyZM8fAEbGKhG99IvsvqeCOmoyxyuXFUR4jR440dEisguGkQmTcUsEYq4x42CgrCb71iYz7VDDGKhtOKFhJcVIhMm6pYIxVJnl5efD39+eEgpUI3/pExkufM8YqE3Nzc3z22Wdo2LAhJxTspfjWJzLV0ufcUZMxVlkMGTIEly5d4oSCvRQnFSLjlgrGmLFLTExEr169cP/+faHM3NzcgBExY8G3PpGpWiq4oyZjzBipOmXu378f48aNM3Q4zMhwUiEioqILihk2FsYY09eLozx++OEHQ4fEjAwnFSKiIt0ouKWCMWZMeNgoEwMnFSJStVIAvPQ5Y8x4cELBxMJJhYiU9F/zBLdUMMaMxYQJEzihYKLgpEJEVKSlgkd/MMaMxYYNG9CzZ09OKFiZ8SqlIlIq/2ue4KSCMVaR5ebmQiaTAQBcXFwQFhZm4IhYZcC3PhEpi3Sj4MmvGGMVVWJiIpo1a4Zt27YZOhRWyXBSISJ+/MEYq+hUnTJv3ryJBQsWIDc319AhsUqEb30iKlRyR03GWMX14iiPw4cPC49AGBMDJxUiIrXHH4aLgzHGXsTDRtmrwLc+ESkLuaMmY6zi4YSCvSp86xNR0a6ZnFQwxiqKLVu2cELBXgkeUiqiwiItFbz2B2Osopg9ezYAYOTIkZxQsHLFSYWIlLz2B2OsgkhKSoKdnR1kMhkkEgnmzJlj6JBYFcCN9CIitbU/DBcHY6xqS0hIQMeOHTFgwAAeMspeKW6pEJGSh5QyxgwsISEBfn5+iIuLAwCkpKTA2dnZwFGxqoJbKkRU9PGHKadrjLFXrGhCoeqUyQkFe5U4qRARcUsFY8xAtCUU3CmTvWqcVIioUK1PBWcVjLFXgxMKVlFwUiEi4gXFGGMGcO/ePTx8+JATCmZw/ORfROozanJLBWPs1WjXrh3+/vtv1KpVixMKZlCcVIiIivwvz6jJGCtPiYmJePr0KZo3bw7geWLBmKHxrU9Ehbz2B2PsFVCt5eHn54fo6GhDh8OYgG99Iirap4Inv2KMlYeii4PZ2tqievXqhg6JMQEnFSLiya8YY+WJVxtlFR0nFSJS8pBSxlg54YSCGQNOKkSkJInwCIT7VDDGxHLv3j1OKJhR4NEfIiq6oBgnFYwxsdja2qJWrVoAwAkFq9A4qRDR88cfPKSUMSYuuVyOsLAwpKamwtXV1dDhMKYT3/pEpKT/+lHw6A/GWFkkJiZi9erVwnu5XM4JBavwuKVCREUff/DoD8ZYaRXtlAkAH3zwgYEjYqxkuKVCREVbKkxNOatgjOnvxVEeffv2NXRIjJUYJxUiUnJLBWOsDHjYKDN2nFSISH2eCsPFwRgzPpxQsMqAkwoREfHaH4wx/WVlZcHPz48TCmb0+NYnIp5RkzFWGlZWVvjoo49Qr149TiiYUeOkQkRKZdEZNan4yowxVsTkyZMRHR3NCQUzapxUiEipNqMmt1QwxnRLTExE//798eTJE6HMysrKgBExVnZlmqciJycHFhYWYsVi9J63UvCMmoyx4r04D8WePXsMHBFj4tD71qdUKvH555/D1dUVCoVC+KWYN28egoODRQ/QmBQqi86oyS0VjDFNL47yWLlypaFDYkw0eicVX3zxBUJCQrB06VKYm5sL5a+99ho2bNgganDGhop0o+CWCsbYi3jYKKvs9L71bdmyBT/++COGDRsGkyKTMXh5eeH69euiBmdslEpe+4Mxph0nFKwq0DupuHfvHurXr69RrlQqkZ+fL0pQxopn1GSM6TJixAhOKFilp3dS0aRJE5w8eVKjfPfu3fD29hYlKGNFSl77gzGm3YYNG9ClSxdOKFilpvfoj/nz52PUqFG4d+8elEolfv31V8TExGDLli0IDQ0tjxiNhrJInwpuqWCMFRQUwNT0+Z/Z+vXr49ixY4YNiLFypndLRZ8+ffDHH3/g0KFDkMvlmD9/Pq5du4Y//vgD3bp1K48YjQav/cEYU0lISEDz5s3x559/GjoUxl6ZUs1T0alTJxw8eFDsWIye+oyaho2FMWY4CQkJwloes2bNQkBAgNBiwVhlpvetz8PDQ20GOJXU1FR4eHiIEpSx4rU/GGNFEwoPDw/89ddfnFCwKkPvpOLOnTsoLCzUKM/NzcW9e/dECcpYPV+llGfUZKyqejGh4E6ZrKopcfr8+++/C//9119/wcbGRnhfWFiIw4cPo27duqIGZ2wKuaWCsSqLEwrG9Egq+vbtCwCQSCQYNWqU2jYzMzPUrVsXy5cvFzU4o8MzajJWZa1du5YTClbllTipUP6vw4C7uzvOnz8Pe3v7cgvKWBVd+4OTCsaqli+//BLA8yXMOaFgVZXevYdu375dHnFUCkXX/uDHH4xVfg8fPkSNGjVgYmICExMTfPXVV4YOiTGDKtX36czMTISFhWHdunVYtWqV2ktf3333HerWrQsLCwv4+Pjgn3/+KbZ+amoqJk+eDGdnZ8hkMjRs2BBhYWGlOQ3RKQt5SCljVUViYiLatWuH0aNHa+28zlhVpHdLRUREBHr16oWsrCxkZmbCzs4Ojx8/hpWVFWrWrImpU6eW+Fg7d+7E9OnTsW7dOvj4+GDlypUICAhATEwMatasqVE/Ly8P3bp1Q82aNbF79264uroiPj4etra2+p5GuVBySwVjVULRxcEA4MmTJ1r/ZjFW1ej9ffqjjz5C79698fTpU1haWuLcuXOIj49Hy5Yt8fXXX+t1rG+++QbvvfcexowZgyZNmmDdunWwsrLCxo0btdbfuHEjUlJSsHfvXnTo0AF169ZFly5d4OXlpe9plAsl96lgrNLTttooJxSMPaf3rS8yMhIzZsyAVCqFiYkJcnNzUbt2bSxduhSzZ88u8XHy8vJw4cIF+Pv7/xeMVAp/f3+cPXtW6z6///472rVrh8mTJ8PR0RGvvfYaFi1aVGzTY25uLtLT09Ve5YX7VDBWufHy5YwVT++kwszMDNL/fQ2vWbMmEhISAAA2NjZITEws8XEeP36MwsJCODo6qpU7OjoiOTlZ6z5xcXHYvXs3CgsLERYWhnnz5mH58uX44osvdH7O4sWLYWNjI7zK8w/A85YKnvyKscqIEwrGXk7vPhXe3t44f/48GjRogC5dumD+/Pl4/Pgxtm7ditdee608YhQolUrUrFkTP/74I0xMTNCyZUvcu3cPy5YtQ1BQkNZ9Pv30U0yfPl14n56eXm5/CIpO081LnzNWucTExODu3bucUDBWDL2TikWLFuHZs2cAno/LHjlyJN5//300aNAAwcHBJT6Ovb09TExM8ODBA7XyBw8ewMnJSes+zs7OMDMzg0mRJUAbN26M5ORk5OXlwdzcXGMfmUwGmUxW4rjKgpc+Z6zy8vf3x59//glPT09OKBjTQe+kolWrVsJ/16xZEwcOHCjVB5ubm6Nly5Y4fPiwMFunUqnE4cOHMWXKFK37dOjQAT///DOUSqXwCObGjRtwdnbWmlC8alSkoyYvfc6Y8UtMTERubi7q168PAGp9wBhjmkR78n/x4kW89dZbeu0zffp0rF+/Hps3b8a1a9fw/vvvIzMzE2PGjAEAjBw5Ep9++qlQ//3330dKSgo+/PBD3LhxA3/++ScWLVqEyZMni3UaZVL08Qe3VDBm3FR9KHx9fXHr1i1Dh8OYUdCrpeKvv/7CwYMHYW5ujnHjxsHDwwPXr1/HJ598gj/++AMBAQF6ffjgwYPx6NEjzJ8/H8nJyWjRogUOHDggdN5MSEgQWiQAoHbt2vjrr7/w0UcfoXnz5nB1dcWHH36Ijz/+WK/PLS9K4pYKxiqDFztlvqpHqIwZuxInFcHBwXjvvfdgZ2eHp0+fYsOGDfjmm2/wwQcfYPDgwbh8+TIaN26sdwBTpkzR+bjj2LFjGmXt2rXDuXPn9P6cV4GU4Bk1GTNyPMqDsdIr8a3v22+/xZIlS/D48WP88ssvePz4MdauXYtLly5h3bp1pUooKhteUIwx48YJBWNlU+JbX2xsLAYOHAgA6NevH0xNTbFs2TLUqlWr3IIzNsRLnzNmtO7evcsJBWNlVOJbX3Z2NqysrAAAEokEMpkMzs7O5RaYMSraUZOTCsaMi5WVFWxsbDihYKwM9OqouWHDBigUCgBAQUEBQkJCYG9vr1ZHnwXFKhsinlGTMWNlZ2eHQ4cOISsri1tgGSulEicVderUwfr164X3Tk5O2Lp1q1odiURSpZOKokuQcFLBWMWXmJiIw4cPY/To0QCeJxZ2dnaGDYoxI1bipOLOnTvlGEblwH0qGDMeLy5frkosGGOlx7c+ESl5Rk3GjMKLozy6du1q6JAYqxQ4qRARz6jJWMXHw0YZKz+cVIiIZ9RkrGLjhIKx8sVJhYiIWyoYq7DS09M5oWCsnHFSISJuqWCs4rK2tsaoUaM4oWCsHJUqqYiNjcXcuXMxZMgQPHz4EACwf/9+XLlyRdTgjA1PfsVYxTZ//nxERERwQsFYOdH71nf8+HE0a9YM4eHh+PXXX5GRkQEAiIqKQlBQkOgBGhMlr/3BWIWSkJCAkSNHCn+ngOctFoyx8qH3re+TTz7BF198ISyBrvLGG29U2NVDX5Wi81RwnwrGDCshIQF+fn7YunUrJk2aZOhwGKsS9E4qLl26hHfeeUejvGbNmnj8+LEoQRkr1YyaEgknFYwZkiqhUHXK/PLLLw0dEmNVgt5Jha2tLZKSkjTKIyIi4OrqKkpQxorwPJPgRx+MGc6LCQV3ymTs1dH79vfuu+/i448/RnJyMiQSCZRKJU6fPo2ZM2di5MiR5RGj0VAWaalgjL16nFAwZlh6JxWLFi1Co0aNULt2bWRkZKBJkybo3Lkz2rdvj7lz55ZHjEZD1aeCWyoYe/WICAMHDuSEgjED0mvpcwAwNzfH+vXrMW/ePFy+fBkZGRnw9vZGgwYNyiM+o6Ia/WFiQi+pyRgTm0QiwY8//ojx48dj9+7dnFAwZgB6JxWnTp1Cx44dUadOHdSpU6c8YjJaqnkq+PEHY6+OUqmE9H/Ng15eXjh37hwk/EvImEHo3VD/xhtvwN3dHbNnz8bVq1fLIyajpZpRkx9/MPZqJCYm4vXXX8epU6eEMk4oGDMcvW9/9+/fx4wZM3D8+HG89tpraNGiBZYtW4a7d++WR3xGhVsqGHt1VIuDRUVFYcqUKVAWndKWMWYQeicV9vb2mDJlCk6fPo3Y2FgMHDgQmzdvRt26dfHGG2+UR4xGg7hPBWOvxIurjf7xxx/CIxDGmOGU6bfQ3d0dn3zyCb766is0a9YMx48fFysuo6Tk0R+MlTtevpyxiqvUt7/Tp09j0qRJcHZ2xtChQ/Haa6/hzz//FDM2o6Ma/cFJBWPlgxMKxio2vUd/fPrpp9ixYwfu37+Pbt264dtvv0WfPn1gZWVVHvEZFdU8FdyngrHysWTJEk4oGKvA9E4qTpw4gVmzZmHQoEGwt7cvj5iMlqqfGLdUMFY+vvnmGwDAxx9/zAkFYxWQ3knF6dOnyyOOSuG/xx/cUZMxsTx58gR2dnaQSCQwNzfHmjVrDB0SY0yHEiUVv//+O3r27AkzMzP8/vvvxdZ9++23RQnMGPE03YyJS9WH4q233sLKlSt5DgrGKrgSJRV9+/ZFcnIyatasib59++qsJ5FIUKha/7sKKix8/geP/+4xVnZFO2WGhoZi/vz5qFGjhqHDYowVo0RJRdFJZXiCGd24pYIxcWgb5cEJBWMVn963vy1btiA3N1ejPC8vD1u2bBElKGPFQ0oZKzseNsqY8dL79jdmzBikpaVplD979gxjxowRJShj9V9LBXfUZKw0OKFgzLjpnVQQkdbOUnfv3oWNjY0oQRmrQh5SyliZ/Pvvv7hz5w4nFIwZqRIPKfX29oZEIoFEIkHXrl1havrfroWFhbh9+zZ69OhRLkEaCyIJJOCOmoyV1jvvvIPdu3ejVatWnFAwZoRKnFSoRn1ERkYiICAACoVC2GZubo66deuif//+ogdoLIgAUgISE8DExNDRMGY8EhMTIZVK4erqCuB5YsEYM04lTiqCgoIAAHXr1sXgwYNhYWFRbkEZI8J/zRPcUsFYyaj6UEilUhw7dkxILBhjxknvp/+jRo3ihEILov8yCV76nLGXK9opU6lU8nB1xiqBErVU2NnZ4caNG7C3t0f16tWLndUuJSVFtOCMSdGkglsqGCsej/JgrHIqUVKxYsUKVKtWTfhvnipXU9Gkgkd/MKYbJxSMVV4lSipGjRol/Pfo0aPLKxajpuSkgrGX4oSCscpN79vfxYsXcenSJeH9vn370LdvX8yePRt5eXmiBmdMlPTfpeTJrxjTzsTEBCYmJpxQMFZJ6Z1UTJgwATdu3AAAxMXFYfDgwbCyssKuXbsQGBgoeoBGo0gewS0VjGnn4uKCY8eOcULBWCWl9+3vxo0baNGiBQBg165d6NKlC37++WeEhIRgz549YsdnNIq2VHCXE8b+k5CQgF9//VV47+LiwgkFY5VUqabpVg39OnToEHr16gUAqF27Nh4/fixudEak6DwV3FLB2HMJCQnw8/PDwIED1RILxljlpPftr1WrVvjiiy+wdetWHD9+HG+++SYA4Pbt23B0dBQ9QGOhWqEU4KSCMeC/hCIuLg5169ZF69atDR0SY6yc6X37W7lyJS5evIgpU6Zgzpw5qF+/PgBg9+7daN++vegBGg9OKhhTKZpQcKdMxqqOEk/TrdK8eXO10R8qy5Ytg0kVXvRCqfwvk6jCl4ExTigYq8L0TipULly4gGvXrgEAmjRpgtdff120oIwRr/3BGPDkyRNOKBirwvROKh4+fIjBgwfj+PHjsLW1BQCkpqbCz88PO3bsgIODg9gxGgX1tT8MGAhjBmRnZ4fevXvjjz/+4ISCsSpI76f/H3zwATIyMnDlyhWkpKQgJSUFly9fRnp6OqZOnVoeMRoFJa/9wRgkEglWrFiB8+fPc0LBWBWkd1Jx4MABrF27Fo0bNxbKmjRpgu+++w779+8XNThjUrSlwrTUD5UYMz6JiYmYPHkycnNzATxPLOzs7AwcFWPMEPS+/SmVSpiZmWmUm5mZVemli3mVUlYVFV3LAwC+++47A0fEGDMkvVsq3njjDXz44Ye4f/++UHbv3j189NFH6Nq1q6jBGZOiM2qamHBWwSq/FxcH++STTwwdEmPMwPROKtasWYP09HTUrVsX9erVQ7169eDu7o709HSsXr26PGI0CqS29gcvKMYqN15tlDGmjd6PP2rXro2LFy/i8OHDwpDSxo0bw9/fX/TgjIn6KqXcUsEqL04oGGO66JVU7Ny5E7///jvy8vLQtWtXfPDBB+UVl/EhibBQKc+oySorpVKJt99+mxMKxphWJb79ff/99xgyZAj+/fdf3Lx5E5MnT8asWbPKMzajUnRIKScVrLKSSqVYs2YNWrRowQkFY0xDiW9/a9asQVBQEGJiYhAZGYnNmzdj7dq15RmbUSFOKlglRkU6DXXo0AEXLlzghIIxpqHEt7+4uDiMGjVKeD906FAUFBQgKSmpXAIzNkRS4H8PQDipYJVJYmIi2rZti6ioKKFMyj/kjDEtSvyXITc3F3K5/L8dpVKYm5sjOzu7XAIzNkq1abq5oyarHFSdMv/55x+MHz9ercWCMcZepFdHzXnz5sHKykp4n5eXhy+//BI2NjZC2TfffCNedEaEeOlzVsm8OMpj9+7dkPDMboyxYpQ4qejcuTNiYmLUytq3by/MpAegSv/B4T4VrCIqLCxEfn6+3vslJSVh5MiRKCwsRMeOHbFlyxY4ODggJyenHKJkjBmaubm5KI81S5xUHDt2rMwfVplxUsEqEiJCcnIyUlNT9d63oKAADx48wJw5c2BqagpHR0fk5OTg9u3b4gfKGKsQpFIp3N3dYW5uXqbj8NJXIlHy0uesAlElFDVr1oSVlZVerYh3796Fra0tzM3NUbdu3TL/kWGMVWxKpRL3799HUlIS6tSpU6anDpxUiIRIohr8wQuKMYMqLCwUEooaNWrovb+7uzsSEhLg6urKCQVjVYSDgwPu37+PgoICrYuGlhQ31ItEfelzziqY4aj6UBTtVP0yBQUFwn+bmJiI0gzKGDMeqt/3wsLCMh2HkwqR8NLnrKIpaRNmXl4erl27prbyMGOsahFroAUnFSJRX/rcgIEwpoe8vDzExMQgNzcXT548UWuxYIwxfZUqqTh58iSGDx+Odu3a4d69ewCArVu34tSpU6IGZ0wIvKAYMy5FEwqZTAZPT0+YmnI3K8ZY6el9+9uzZw8CAgJgaWmJiIgI5ObmAgDS0tKwaNEi0QM0Fkolz6jJjIe2hIL7UPzn+vXraNu2LSwsLNCiRYsS7TN69Gj07du32Dq+vr6YNm1amePTZsSIEVX6b7DYDhw4gBYtWkCpVBo6FKOid1LxxRdfYN26dVi/fr1aD9EOHTrg4sWLogZnXIrOU8FTGbOKq6ImFKNHj4ZEIoFEIoGZmRnc3d0RGBiodcKt0NBQdOnSBdWqVYOVlRVat26NkJAQrcfds2cPfH19YWNjA4VCgebNm2PhwoVISUnRGUtQUBDkcjliYmJw+PBhsU6xRI4dO4bXX38dMpkM9evX13leRUVFRSEsLAxTp07V2LZ9+3aYmJhg8uTJGttCQkJga2ur9ZgSiQR79+5VKyvNtSyrL7/8Eu3bt4eVlZXOWF9ERJg/fz6cnZ1haWkJf39/3Lx5U61OSkoKhg0bBmtra9ja2mLs2LHIyMgQtvfo0QNmZmbYtm2bmKdT6emdVMTExKBz584a5TY2NqWaaKeyUCr/u5RSKbdUsIorPT29wiUUKj169EBSUhLi4uKwYsUK/PDDDwgKClKrs3r1avTp0wcdOnRAeHg4oqOj8e6772LixImYOXOmWt05c+Zg8ODBaN26Nfbv34/Lly9j+fLliIqKwtatW3XGERsbi44dO8LNza1Uw3JL6/bt23jzzTfh5+eHyMhITJs2DePGjcNff/1V7H6rV6/GwIEDoVAoNLYFBwcjMDAQ27dvL9OMqKW9lmWVl5eHgQMH4v333y/xPkuXLsWqVauwbt06hIeHQy6XIyAgQO38hw0bhitXruDgwYMIDQ3FiRMnMH78eLXjjB49GqtWrRLtXKoE0pO7uzsdPHiQiIgUCgXFxsYSEdHmzZupcePG+h6OiIjWrFlDbm5uJJPJqE2bNhQeHl6i/bZv304AqE+fPiX+rLS0NAJAaWlppYpVmxsR5+mDt9dTk0bPqHnzXPr552zRjs2YvrKzs+nq1auUna375/DRo0eUm5v7CqN6uVGjRmn8Lvfr14+8vb2F9wkJCWRmZkbTp0/X2H/VqlUEgM6dO0dEROHh4QSAVq5cqfXznj59qrUcz2ecEV5BQUFERBQdHU1+fn5kYWFBdnZ29N5779GzZ890xp+RkUEjRowguVxOTk5O9PXXX1OXLl3oww8/1HkNAgMDqWnTpmplgwcPpoCAAJ37FBQUkI2NDYWGhmpsi4uLI0tLS0pNTSUfHx/atm2b2vZNmzaRjY2Nzuvw22+/EVHpr6WYiou1KKVSSU5OTrRs2TKhLDU1lWQyGW3fvp2IiK5evUoA6Pz580Kd/fv3k0QioXv37gll8fHxBIBu3bol3olUUMX93dDnvql3S8V7772HDz/8EOHh4ZBIJLh//z62bduGmTNn6pVJquzcuRPTp09HUFAQLl68CC8vLwQEBODhw4fF7nfnzh3MnDkTnTp10vszy4P66A9uqWAVS3ZOLp5mZCM9Jx/pOfkwV9ggRykR3pfXq1BZ+keBly9fxpkzZ9RaUnbv3o38/HyNFgkAmDBhAhQKBbZv3w4A2LZtGxQKBSZNmqT1+Lqa0pOSktC0aVPMmDEDSUlJmDlzJjIzMxEQEIDq1avj/Pnz2LVrFw4dOoQpU6bojH/WrFk4fvw49u3bh7///hvHjh176SPis2fPwt/fX60sICAAZ8+e1blPdHQ00tLS0KpVK41tmzZtwptvvgkbGxsMHz4cwcHBxX6+LqW9lgDQtGlTKBQKna+ePXuWKiZdbt++jeTkZLXraGNjAx8fH+E6nj17Fra2tmrXzN/fH1KpFOHh4UJZnTp14OjoiJMnT4oaY2Wmd1fvTz75BEqlEl27dkVWVhY6d+4MmUyGmTNn4oMPPtA7gG+++QbvvfcexowZAwBYt24d/vzzT2zcuBGffPKJ1n0KCwsxbNgwLFiwACdPnqwQj12ez1Px/A8oj/5gFUlubi6irlzHtcf5cHF1gYn01Y15buNhB2uLks/OFxoaCoVCgYKCAuTm5kIqlWLNmjXC9hs3bsDGxgbOzs4a+5qbm8PDwwM3btwAANy8eRMeHh56zw7o5OQEU1NTKBQKODk5AQDWr1+PnJwcbNmyBXK5HACwZs0a9O7dG0uWLIGjo6PaMTIyMhAcHIyffvoJXbt2BQBs3rwZtWrVKvazk5OTNY7l6OiI9PR0ZGdnw9LSUmOf+Ph4mJiYoGbNmmrlSqUSISEhWL16NQDg3XffxYwZM3D79m24u7vrcUVKfy0BICwsrNhF7bSdU1kkJycDgNbrqNqWnJyscb1MTU1hZ2cn1FFxcXFBfHy8qDFWZnonFRKJBHPmzMGsWbNw69YtZGRkoEmTJlqf5b1MXl4eLly4gE8//VQok0ql8Pf3LzYzX7hwIWrWrImxY8e+NIPMzc0VRqgAz58nlwfitT9YBZSbm4sbN25AosxDY3tzNKhjA7NX2IdCbq7fnxg/Pz98//33yMzMxIoVK2Bqaor+/fuX6rOJxOswfe3aNXh5eQkJBfC8c7pSqURMTIzGDSw2NhZ5eXnw8fERyuzs7ODp6SlaTCrZ2dmQyWQakxcdPHgQmZmZ6NWrFwDA3t4e3bp1w8aNG/H555/r9RlluZZubm6l3rcisLS0RFZWlqHDMBqlHpRubm6OJk2alOnDHz9+jMLCQq0Z5fXr17Xuc+rUKQQHByMyMrJEn7F48WIsWLCgTHGWBM+oySqavLw8xMfHIzc3F1YWFhWuU6Y2crkc9evXBwBs3LgRXl5eCA4OxtixYwEADRs2RFpaGu7fvw8XFxe1ffPy8hAbGws/Pz+h7qlTp5Cfn1+mtQxeJScnJzx48ECt7MGDB7C2ttb5jd7e3h5ZWVnIy8tT+/cNDg5GSkqK2n5KpRLR0dFYsGABpFIprK2tkZmZCaVSqbbstar118bGBkDZrmXTpk2L/abfqVMn7N+/X69jFkfVuvTgwQO1Fq0HDx4Iw4OdnJw0HrEXFBQgJSVF2F8lJSUFDg4OosVX2endUO/n54c33nhD56s8PXv2DCNGjMD69ethb29fon0+/fRTpKWlCa/ExMRyiU3Ja3+wCqSgoAB37typsKM8SkIqlWL27NmYO3cusrOzAQD9+/eHmZkZli9frlF/3bp1yMzMxJAhQwAAQ4cORUZGBtauXav1+Po8Nm3cuDGioqKQmZkplJ0+fRpSqVRr60O9evVgZmam9nz+6dOnwqMZXdq1a6cxhPXgwYNo166dzn1UN8qrV68KZU+ePMG+ffuwY8cOREZGCq+IiAg8ffoUf//9NwDA09MTBQUFGl/SVH0/GjZsCKBs1zIsLEwthhdfGzZs0Llvabi7u8PJyUntOqanpyM8PFy4ju3atUNqaiouXLgg1Dly5AiUSqVa61JOTg5iY2Ph7e0taoyVmd4tFS9OBJOfn4/IyEhcvnwZo0aN0utY9vb2MDEx0ZqZv5gtAs+bFO/cuYPevXsLZaqJSUxNTRETE4N69eqp7SOTySCTyfSKqzS4pYJVFPfv38eDBw9ga2trtAmFysCBAzFr1ix89913mDlzJurUqYOlS5dixowZsLCwwIgRI2BmZoZ9+/Zh9uzZmDFjhnBT8PHxQWBgIGbMmIF79+7hnXfegYuLC27duoV169ahY8eO+PDDD0sUx7BhwxAUFIRRo0bhs88+w6NHj/DBBx9gxIgRGi2tAKBQKDB27FjMmjULNWrUQM2aNTFnzhy11gBtJk6ciDVr1iAwMBD/93//hyNHjuCXX37Bn3/+qXMfBwcHvP766zh16pTw93nr1q2oUaMGBg0apPFYpFevXggODkaPHj3QtGlTdO/eHf/3f/+H5cuXw8PDAzExMZg2bRoGDx4MV1fXMl/Lsj7+SEhIQEpKChISElBYWCgkQPXr1xceuzdq1AiLFy/GO++8A4lEgmnTpuGLL75AgwYN4O7ujnnz5sHFxUWYnKxx48bo0aMH3nvvPaxbtw75+fmYMmUK3n33XbUWsHPnzkEmkxWb1LEXiDUcJSgoiGbMmKH3fm3atKEpU6YI7wsLC8nV1ZUWL16sUTc7O5suXbqk9urTpw+98cYbdOnSpRINkSuvIaXjAn6iJo3SqXnzXNq/v2IN1WNVS0xMDP39998UFRVV4YaNFkfbkFIiosWLF5ODgwNlZGQIZfv27aNOnTqRXC4nCwsLatmyJW3cuFHrcXfu3EmdO3ematWqkVwup+bNm9PChQuLHQbp5eUlDCVV0XdI6bNnz2j48OFkZWVFjo6OtHTp0pcOKSUiOnr0KLVo0YLMzc3Jw8ODNm3aVGx9IqK1a9dS27ZthffNmjWjSZMmaa27c+dOMjc3p0ePHhHR8+GgU6dOpXr16pGlpSU1aNCAAgMD1c6t6L76XsuyGjVqlMYwXwB09OhRoQ4AteukVCpp3rx55OjoSDKZjLp27UoxMTFqx33y5AkNGTKEFAoFWVtb05gxYzTOefz48TRhwoRyO7eKRKwhpRIicXoz3bp1C23atNF7ZrWdO3di1KhR+OGHH9CmTRusXLkSv/zyC65fvw5HR0eMHDkSrq6uWLx4sdb9R48ejdTUVI2Z33RJT0+HjY0N0tLSYG1trVesutyM/BdLPr6BM/G9YSaTYdkyoHt34/xmyIxfTk4Obty4gbp164r2M84qtuzsbHh6emLnzp38rVokjx8/hqenJ/7991+9R8sYo5ycHGFkkIWFhdo2fe6boq0edPbsWY1ASmLw4MF49OgR5s+fj+TkZLRo0QIHDhwQmhQTEhJe2mRYESiJ1/5ghpOYmIjr16+jW7duAAAzMzOjfeTB9GdpaYktW7bg8ePHhg6l0rhz5w7Wrl1bJRIKMemdVPTr10/tPREhKSkJ//77L+bNm1eqIKZMmaJzEpljx44Vu29J5sV/FUht7Q8DBsKqnMTERPj6+uLu3bsIDQ2tMBPCsVfL19fX0CFUKq1atdI6oRgrnt5JhWqIkYqq9/PChQvRvXt30QIzNkXX/uCWCvaqqBKKuLg4eHh4oFGjRoYOiTFWhemVVBQWFmLMmDFo1qwZqlevXl4xGT1uqWCvwosJxbFjx1C7du0yLRrFGGNlodftz8TEBN27d68Q02JXNEXX/uCkgpU3XQkFY4wZkt63v9deew1xcXHlEYtRKzpPBScVrDw9fPiQEwrGWIWk9+3viy++wMyZMxEaGoqkpCSkp6ervaoqZZEFxbhPBStPNWrUQMeOHTmhYIxVOCXuU7Fw4ULMmDFDWJzm7bffVpupjYggkUhQWFgofpRGgHhIKXtFTExMsHHjRjx58kRjpUXGGDOkEicVCxYswMSJE3H06NHyjMdo8eMPVp4SExOxZs0aLFq0CCYmJlqXumaMMUMrcVKhmnizS5cu5RaMMeOWClZeinbKBIAlS5YYOKLK7/r16xg9ejQiIyPRqFGjEq2KXJLZfX19fdGiRQusXLlStFhV5s2bhwcPHuDHH38U/dhV0dWrV9G9e3fExMSoLXnPiqfXd+oXF6Zh/yEe/cHKwYujPHRNElcZjB49GhKJBBKJBGZmZnB3d0dgYKDWIbKhoaHo0qULqlWrBisrK7Ru3VrnRHh79uyBr68vbGxsoFAo0Lx5cyxcuLDYJQWCgoIgl8sRExOjsWpoeUpKSsLQoUPRsGFDSKVSTJs2rUT7JScn49tvv8WcOXM0tp09exYmJiZ48803NbYdO3YMEolE64i+unXraiQ/R48eRa9evVCjRg1YWVmhSZMmwiJj5eXHH3+Er68vrK2tdcaqzXfffYe6devCwsICPj4++Oeff9S25+TkYPLkyahRowYUCgX69++vtrhlkyZN0LZtW3zzzTdink6lp9ftr2HDhrCzsyv2VVXx0udMbFVx2GiPHj2QlJSEuLg4rFixAj/88AOCgoLU6qxevRp9+vRBhw4dEB4ejujoaLz77ruYOHEiZs6cqVZ3zpw5GDx4MFq3bo39+/fj8uXLWL58OaKiorB161adccTGxqJjx45wc3NDjRo1yuVctcnNzYWDgwPmzp0LLy+vEu+3YcMGtG/fXuuKoMHBwfjggw9w4sQJ3L9/v9Sx/fDDD/D394eTkxP27NmDq1evYt26dUhLS9O6FL1YsrKy0KNHD8yePbvE++zcuRPTp09HUFAQLl68CC8vLwQEBODhw4dCnY8++gh//PEHdu3ahePHj+P+/fsaM0aPGTMG33//PQoKCkQ7n0qvpCuYSSQS+vbbbykkJKTYV0VXXquU9usQSo0bplHz5rn0wmJ4jOktISGBPDw8CAB5eHhQQkJCifctbrXBikzbKqX9+vUjb29v4X1CQgKZmZnR9OnTNfZftWoVAaBz584REVF4eDgBoJUrV2r9PF0ra+KF1TBVq5Xqu0ppRkYGjRgxguRyOTk5OdHXX39dolVKVfSp27RpU1qzZo1G+bNnz0ihUND169dp8ODB9OWXX6ptP3r0KAHQei3c3NxoxYoVRESUmJhI5ubmNG3aNK2fX56rlKoUF+uL2rRpQ5MnTxbeFxYWkouLi7D6dWpqKpmZmdGuXbuEOteuXSMAdPbsWaEsNzeXZDIZHTp0SLwTqaDEWqVUrxk13333Xe4cpoN6nwoDBsKMXkFBAXr06CFuC4WyEMjLECdAfZgrAGnpfiEuX76MM2fOqH373r17N/Lz8zVaJABgwoQJmD17NrZv3w4fHx9s27YNCoUCkyZN0np8W1tbreVJSUnw9/dHjx49MHPmTCgUCmRmZiIgIADt2rXD+fPn8fDhQ4wbNw5TpkzR+dhl1qxZOH78OPbt24eaNWti9uzZuHjxIlq0aKHvpShWSkoKrl69qnWdil9++QWNGjWCp6cnhg8fjmnTpuHTTz/V+1H2rl27kJeXh8DAQK3bdV1LAOjZsydOnjypc7ubmxuuXLmiVzzFycvLw4ULF/Dpp58KZVKpFP7+/jh79iwA4MKFC8jPz4e/v79Qp1GjRqhTpw7Onj2Ltm3bAgDMzc3RokULnDx5El27dhUtxsqsxEkF96coXtGkgi8VKwtTU1N8/fXXmDlzJg4cOCDOI4+8DCD+TNmPoy+39oCFzcvr/U9oaCgUCgUKCgqQm5sLqVSKNWvWCNtv3LgBGxsbODs7a+xrbm4ODw8P3LhxAwBw8+ZNeHh4wMzMTK+QnZycYGpqCoVCAScnJwDA+vXrkZOTgy1btgid9tasWYPevXtjyZIlwqrKKhkZGQgODsZPP/0k3Iw2b96MWrVq6RVLSSQkJICI4OLiorEtODgYw4cPB/D80VJaWhqOHz+u9+JjN2/ehLW1tdbr/jIbNmxAdna2zu36/vu8zOPHj1FYWKjxb+Lo6Ijr168DeN4HxdzcXCMZcnR0RHJyslqZi4sL4uPjRY2xMtN79AfTTsktFayM6H9zvQDPv91169YNpqZ6r/mnnbni+Q3+VTNX6FXdz88P33//PTIzM7FixQqYmpqif//+pfpoMf9mXbt2DV5eXmqjADp06AClUomYmBiNG1hsbCzy8vLg4+MjlNnZ2cHT01O0mFRUN2wLCwu18piYGPzzzz/47bffADxPVgcPHozg4GC9k4qiP5v6cnV1LdV+FYWlpSWysrIMHYbRKHFHTaVSyY8+isHzVLCySEhIgK+vL27evCmUiZZQAM8fQVjYvPqXno8+5HI56tevDy8vL2zcuBHh4eEIDg4Wtjds2BBpaWlaOxzm5eUhNjYWDRs2FOrGxcUhPz+/bNeugrO3twcAPH36VK08ODgYBQUFcHFxgampKUxNTfH9999jz549SEtLAwBYW1sDgPC+qNTUVGFVatV1T0pK0ju+nj17QqFQ6Hw1bdpU72MWx97eHiYmJmojOQDgwYMHQsuTk5MT8vLyNEaSFK2jkpKSAgcHB1FjrMz49icSXlCMlVZCQgL8/Pxw4sQJjBs3jlsF/0cqlWL27NmYO3eu8G28f//+MDMz0zraYN26dcjMzMSQIUMAAEOHDkVGRgbWrl2r9fj6LIzYuHFjREVFITMzUyg7ffo0pFKp1taHevXqwczMDOHh4ULZ06dPhUczYqpXrx6sra1x9epVoaygoABbtmzB8uXLERkZKbyioqLg4uKC7du3AwAaNGgAqVSKCxcuqB0zLi4OaWlpQoI2YMAAmJubY+nSpVpjKO5abtiwQS2GF19hYWFlvALqzM3N0bJlS7WhwEqlEocPH0a7du0AAC1btoSZmZlanZiYGCQkJAh1VC5fvgxvb29RY6zUxO0/WvGV1+iPN1v/TY3+N/rj/n3RDs0qufj4+FKP8tClMo3+yM/PJ1dXV1q2bJlQtmLFCpJKpTR79my6du0a3bp1i5YvX04ymYxmzJihtn9gYCCZmJjQrFmz6MyZM3Tnzh06dOgQDRgwQOeoECIiLy8vYdQHEVFmZiY5OztT//796dKlS3TkyBHy8PCgUaNG6Yx/4sSJ5ObmRocPH6ZLly7R22+/TQqF4qUjOiIiIigiIoJatmxJQ4cOpYiICLpy5Uqx+/Tr10/t3H/77TcyNzen1NRUjbqBgYHUqlUr4f348eOpbt26tG/fPoqLi6Pjx49T27ZtqW3btqRUKoV63333HUkkEvq///s/OnbsGN25c4dOnTpF48eP1zoaRyxJSUkUERFB69evJwB04sQJioiIoCdPngh13njjDVq9erXwfseOHSSTySgkJISuXr1K48ePJ1tbW0pOThbqTJw4kerUqUNHjhyhf//9l9q1a0ft2rVT++zbt2+TRCKhO3fulNv5VRRijf7gpEIENyLOU89Wh4SkosjPLWM6lUdCQVS5kgoiosWLF5ODgwNlZGQIZfv27aNOnTqRXC4nCwsLatmyJW3cuFHrcXfu3EmdO3ematWqkVwup+bNm9PChQuLHZr4YlJBpP+Q0mfPntHw4cPJysqKHB0daenSpSUaJooXhrQCIDc3t2L3CQsLI1dXVyosLCQiorfeeot69eqlta5qqG1UVBQRPf95CQoKokaNGpGlpSW5u7vT+PHj6dGjRxr7Hjx4kAICAqh69epkYWFBjRo1opkzZ9L9cvwmFRQUpPWabNq0Sajj5uam8e+1evVqqlOnDpmbm1ObNm2EocYq2dnZNGnSJKpevTpZWVnRO++8Q0lJSWp1Fi1aRAEBAeV1ahWKWEmFhKhqtbWmp6fDxsYGaWlpwvPEsroZ+S+mjkvHnWetYG5hgUOHzMGP4FhxVI88ymNiq5ycHNy+fRvu7u4anfdY5URE8PHxwUcffSQ8/mFlk5eXhwYNGuDnn39Ghw4dDB1OuSvu74Y+901++i8SJXfUZHqYPn16lZopk5UviUSCH3/8kWd+FFFCQgJmz55dJRIKMYnYvbxqe772x/NGH04q2MuoFn1asWIFJxRMFC1atBB9Yq2qrH79+qhfv76hwzA6nFSIhGfUZC+TlZUFKysrAM/nLNi9e7eBI2KMMXHxd2qREHhGTaZbQkICmjVrpjY7JGOMVTacVIiEZ9RkuhTtlLly5UqenY8xVmlxUiESXvuDafPiKI+jR48Kj0AYY6yy4aRCJNyngr2oPIeNMsZYRcRJhUh47Q9WFCcUjLGqiG9/IuG1P1hRv//+OycUjLEqh29/Iik6Lyn3qWBTpkzB6tWrOaEwUtevX0fbtm1hYWFR4rkfRo8ejb59+xZbx9fXF9OmTStzfNqMGDECixYtKpdjV0UHDhxAixYtoFQqDR2KUeGkQiSqlgqJhJOKqurevXvIyMgQ3k+ZMoUTCj2MHj0aEokEEokEZmZmcHd3R2BgIHJycjTqhoaGokuXLqhWrRqsrKzQunVrhISEaD3unj174OvrCxsbGygUCjRv3hwLFy5ESkqKzliCgoIgl8sRExOjtpJlefv111/RrVs3ODg4wNraGu3atcNff/310v2ioqIQFhaGqVOnamzbvn07TExMMHnyZI1tISEhsLW11XpMiUSCvXv3qpWV5lqW1Zdffon27dvDyspKZ6wvIiLMnz8fzs7OsLS0hL+/P27evKlWJyUlBcOGDYO1tTVsbW0xduxYtd/fHj16wMzMDNu2bRPzdCo9TirE8r8+Ffzoo2pKTExE586d0atXL7U/TEw/PXr0QFJSEuLi4rBixQr88MMPCAoKUquzevVq9OnTBx06dEB4eDiio6Px7rvvYuLEiZg5c6Za3Tlz5mDw4MFo3bo19u/fj8uXL2P58uWIiorC1q1bdcYRGxuLjh07ws3NDTVq1CiXc9XmxIkT6NatG8LCwnDhwgX4+fmhd+/eiIiIKHa/1atXY+DAgVAoFBrbgoODERgYiO3bt2tN0EqqtNeyrPLy8jBw4EC8//77Jd5n6dKlWLVqFdatW4fw8HDI5XIEBASonf+wYcNw5coVHDx4EKGhoThx4gTGjx+vdpzRo0dj1apVop1LlSD2SmcVXXmtUurj+S81aphKr7+eK9pxmXFISEhQW2307t27Bo2nMq1S2q9fP/L29hbeJyQkkJmZmdaltletWkUAhNUoVatx6lriXNcqpXhhNUzV6pf6rlKakZFBI0aMILlcTk5OTvT111+XaJXSFzVp0oQWLFigc3tBQQHZ2NhQaGioxra4uDiytLSk1NRU8vHxoW3btqlt37RpE9nY2Gg9LgD67bffiKj011JMxcValFKpJCcnJ1q2bJlQlpqaSjKZjLZv305ERFevXiUAdP78eaHO/v37SSKR0L1794Sy+Ph4AkC3bt0S70QqKLFWKeXv1SIhbqmokhITE+Hr66vWKdPV1dXQYWkoVBbiWd6zV/4qVBaWOubLly/jzJkzMDc3F8p2796N/Px8jRYJAJgwYQIUCgW2b98OANi2bRsUCgUmTZqk9fi6mtKTkpLQtGlTzJgxA0lJSZg5cyYyMzMREBCA6tWr4/z589i1axcOHTqEKVOm6Ix/1qxZOH78OPbt24e///4bx44dw8WLF/W4AoBSqcSzZ89gZ2ens050dDTS0tLQqlUrjW2bNm3Cm2++CRsbGwwfPhzBwcF6fb5Kaa8lADRt2hQKhULnq2fPnqWKSZfbt28jOTkZ/v7+QpmNjQ18fHxw9uxZAMDZs2dha2urds38/f0hlUoRHh4ulNWpUweOjo44efKkqDFWZrz2h0iUJAUkgIlJlVpJvkrTllBU1D4UWQVZuPDgwiv/3JaOLVHNvFqJ64eGhkKhUKCgoAC5ubmQSqVqU5vfuHEDNjY2cHZ21tjX3NwcHh4euHHjBgDg5s2b8PDwgJmZmV4xOzk5wdTUFAqFAk5OTgCA9evXIycnB1u2bIFcLgcArFmzBr1798aSJUvg6OiodoyMjAwEBwfjp59+QteuXQEAmzdvRq1atfSK5euvv0ZGRgYGDRqks058fDxMTExQs2ZNtXKlUomQkBCsXr0aAPDuu+9ixowZwvLW+ijttQSAsLAw5Ofn69xuaWmp9zGLk5ycDAAa/yaOjo7CtuTkZI3rZWpqCjs7O6GOiouLC+Lj40WNsTLjpEIkRBKAO2lWGcaUUACAlakVWjq2NMjn6sPPzw/ff/89MjMzsWLFCpiamqJ///6l+mwi8RL8a9euwcvLS0goAKBDhw5QKpWIiYnRuIHFxsYiLy8PPj4+QpmdnR08PT1L/Jk///wzFixYgH379mncAIvKzs6GTCaD5IU/PgcPHkRmZiZ69eoFALC3t0e3bt2wceNGfP755yWOAyjbtXRzcyv1vhWBpaUlT62vB04qRKJaUIwff1QNqampSEtLM4qEAgBMpCZ6tRgYilwuF5ab3rhxI7y8vBAcHIyxY8cCABo2bIi0tDTcv38fLi4uavvm5eUhNjYWfn5+Qt1Tp04hPz+/VN+wDWnHjh0YN24cdu3apdaMr429vT2ysrKQl5en9qgoODgYKSkpai0BSqUS0dHRWLBgAaRSKaytrZGZmQmlUglpkT9eqampAJ4/NgDKdi2bNm1a7Df9Tp06Yf/+/Xodsziq1qUHDx6otWg9ePBAGB7s5OSEhw8fqu1XUFCAlJQUYX+VlJQUODg4iBZfZce3QJGo+lRwS0XV0KxZMxw9etQoEgpjJZVKMXv2bMydOxfZ2dkAgP79+8PMzAzLly/XqL9u3TpkZmZiyJAhAIChQ4ciIyMDa9eu1Xp81Y2zJBo3boyoqChkZmYKZadPn4ZUKtXa+lCvXj2YmZmpPZ9/+vSp8GimONu3b8eYMWOwfft2vPnmmy+tr7pRXr16VSh78uQJ9u3bhx07diAyMlJ4RURE4OnTp/j7778BAJ6enigoKEBkZKTaMVV9Pxo2bAigbNcyLCxMLYYXXxs2bHjpOerD3d0dTk5OakOB09PTER4ejnbt2gEA2rVrh9TUVFy48N8jwSNHjkCpVKq1LuXk5CA2Nhbe3t6ixlipid+HtGIrr9EfLTwuUaOGqdS5s3H1uGcll5CQQGfOnDF0GC9VmUZ/5Ofnk6urq1pP/hUrVpBUKqXZs2fTtWvX6NatW7R8+XKSyWQ0Y8YMtf0DAwPJxMSEZs2aRWfOnKE7d+7QoUOHaMCAATpHMhAReXl5CaM+iIgyMzPJ2dmZ+vfvT5cuXaIjR46Qh4cHjRo1Smf8EydOJDc3Nzp8+DBdunSJ3n77bVIoFMWO/ti2bRuZmprSd999R0lJScIrNTW12Gv3+uuv0+rVq9WukbOzMymVSo26gwYNogEDBgjvu3fvTl5eXnTo0CGKi4uj/fv3k6enJw0ePFhtv9Jey7KKj4+niIgIWrBgASkUCoqIiKCIiAi1kTeenp7066+/Cu+/+uorsrW1pX379lF0dDT16dOH3N3d1X4nevToQd7e3hQeHk6nTp2iBg0a0JAhQ9Q+++jRo6RQKCgzM7Pczq+iEGv0BycVIrgRcZ6au1+mRg1TydfXuP6Qs5JRDRuVy+UVPrGoTEkFEdHixYvJwcGBMjIyhLJ9+/ZRp06dSC6Xk4WFBbVs2ZI2btyo9bg7d+6kzp07U7Vq1Ugul1Pz5s1p4cKFxQ6DfDGpINJ/SOmzZ89o+PDhZGVlRY6OjrR06dKXDint0qWLxpBWAGrJizZr166ltm3bCu+bNWtGkyZN0lp3586dZG5uTo8ePSKi58NBp06dSvXq1SNLS0tq0KABBQYGqp1b0X31vZZlNWrUKK3X5OjRo0IdALRp0ybhvVKppHnz5pGjoyPJZDLq2rUrxcTEqB33yZMnNGTIEFIoFGRtbU1jxozROOfx48fThAkTyu3cKhKxkgoJkYi9mYxAeno6bGxskJaWBmtra1GOeTPyX/R/xwr55q5wqSXD4cMWohyXVQzG1ikzJydH6OFvYcE/i1VBdnY2PD09sXPnTqGJn5XN48eP4enpiX///Vfv0TLGqLi/G/rcN7lPhUi4T0XlZGwJBauaLC0tsWXLFjx+/NjQoVQad+7cwdq1a6tEQiEmHv0hEtU8Yjz6o/LghIIZE19fX0OHUKm0atVK64RirHh8CxSJUphRs0o9Taq0kpKSOKFgjDE9cUuFSHieisqlRo0aaNq0KQBwQsEYYyXESYVIlEoJpOA+FZWFubk5du/ejSdPnmidEpoxxpgm/l4tGm6pMHYJCQn44osvhCmJzc3NOaFgjDE9cEuFSJRKKaTgpMJYJSQkwM/PD3FxcQCAuXPnGjgixhgzPnwLFImqeyZ31DQ+RRMKDw8PjBo1ytAhMcaYUeKkQiRKHlJqlF5MKLhTJmOMlR7fAkXCk18ZH04omC7Xr19H27ZtYWFhISzY9TKjR49G3759i63j6+uLadOmlTk+bUaMGIFFixaVy7GrogMHDqBFixZQKpWGDsWocFIhAqL/kgoTEwMHw0okNzcX/v7+nFBUIKNHj4ZEIoFEIoGZmRnc3d0RGBiInJwcjbqhoaHo0qULqlWrBisrK7Ru3RohISFaj7tnzx74+vrCxsYGCoUCzZs3x8KFC5GSkqIzlqCgIMjlcsTExKitdlneTp06hQ4dOqBGjRqwtLREo0aNsGLFipfuFxUVhbCwMEydOlVj2/bt22FiYoLJkydrbAsJCYGtra3WY0okEuzdu1etrDTXsqy+/PJLtG/fHlZWVjpjfRERYf78+XB2doalpSX8/f1x8+ZNtTopKSkYNmwYrK2tYWtri7FjxyIjI0PY3qNHD5iZmWHbtm1ink6lx0mFCIqunsItFcZBJpNhwYIFaNiwIScUFUiPHj2QlJSEuLg4rFixAj/88AOCgoLU6qxevRp9+vRBhw4dEB4ejujoaLz77ruYOHEiZs6cqVZ3zpw5GDx4MFq3bo39+/fj8uXLWL58OaKiorB161adccTGxqJjx45wc3NDjRo1yuVctZHL5ZgyZQpOnDiBa9euYe7cuZg7dy5+/PHHYvdbvXo1Bg4cCIVCobEtODgYgYGB2L59u9YEraRKey3LKi8vDwMHDsT7779f4n2WLl2KVatWYd26dQgPD4dcLkdAQIDa+Q8bNgxXrlzBwYMHERoaihMnTmD8+PFqxxk9ejRWrVol2rlUCWKvdFbRlccqpVfPnye3mgnUqGEqDR2a8fIdWIWRm5tr6BBEV5lWKe3Xrx95e3sL7xMSEsjMzIymT5+usf+qVasIAJ07d46IiMLDwwmAzmW5da2siRdWw1StVqrvKqUZGRk0YsQIksvl5OTkRF9//fVLVynV5p133qHhw4fr3F5QUEA2NjYUGhqqsS0uLo4sLS0pNTWVfHx8aNu2bWrbN23aRDY2NlqPC4B+++03Iir9tRRTcbEWpVQqycnJiZYtWyaUpaamkkwmo+3btxMR0dWrVwkAnT9/Xqizf/9+kkgkdO/ePaEsPj6eANCtW7fEO5EKSqxVSrmlQgSqKboBbqmoyBITE9GzZ0/cu3dPKDM3NzdgRK8OFRai8NmzV/6iwsJSx3z58mWcOXNG7d9o9+7dyM/P12iRAIAJEyZAoVBg+/btAIBt27ZBoVBg0qRJWo+vqyk9KSkJTZs2xYwZM5CUlISZM2ciMzMTAQEBqF69Os6fP49du3bh0KFDmDJlis74Z82ahePHj2Pfvn34+++/cezYMVy8eFGPKwBERETgzJkz6NKli8460dHRSEtL07pOxaZNm/Dmm2/CxsYGw4cPR3BwsF6fr1LaawkATZs2hUKh0Pnq2bNnqWLS5fbt20hOToa/v79QZmNjAx8fH5w9exYAcPbsWdja2qpdM39/f0ilUoSHhwtlderUgaOjI06ePClqjJUZz1MhAirSj4dHf1RMRRcHGzduHPbv32/okF4pZVYWss7/+8o/16p1K5hUq1bi+qGhoVAoFCgoKEBubi6kUinWrFkjbL9x4wZsbGy0Tkpmbm4ODw8P3LhxAwBw8+ZNeHh4wMzMTK+YnZycYGpqCoVCAScnJwDA+vXrkZOTgy1btkAulwMA1qxZg969e2PJkiVwdHRUO0ZGRgaCg4Px008/oWvXrgCAzZs3o1atWiWKoVatWnj06BEKCgrw2WefYdy4cTrrxsfHw8TEBDVr1lQrVyqVCAkJwerVqwEA7777LmbMmCEsb62P0l5LAAgLC0N+fr7O7ZaWlnofszjJyckAoPFv4ujoKGxLTk7WuF6mpqaws7MT6qi4uLggPj5e1BgrM04qRKBU/tc8wUlFxfPiaqMvez5dGUmtrGDV+tWvuCi1stKrvp+fH77//ntkZmZixYoVMDU1Rf/+/Uv12UTizRlz7do1eHl5CQkFAHTo0AFKpRIxMTEaN7DY2Fjk5eXBx8dHKLOzs4Onp2eJPu/kyZPIyMjAuXPn8Mknn6B+/foYMmSI1rrZ2dmQyWSQvNBMevDgQWRmZqJXr14AAHt7e3Tr1g0bN27E559/XqI4VMpyLd3c3Eq9b0VgaWmJrKwsQ4dhNDipEEGhWksFT35VkfDy5c9JTEz0ajEwFLlcjvr16wMANm7cCC8vLwQHB2Ps2LEAgIYNGyItLQ3379+Hi4uL2r55eXmIjY2Fn5+fUPfUqVPIz88v1TdsQ1K1JDRr1gwPHjzAZ599pjOpsLe3R1ZWFvLy8tQeFQUHByMlJUWtJUCpVCI6OhoLFiyAVCqFtbU1MjMzoVQqIS3yjSg1NRXA88cGQNmuZdOmTYv9pt+pUydRWw5VrUsPHjxQa9F68OCBMDzYyckJDx8+VNuvoKAAKSkpwv4qKSkpcHBwEC2+yo6/V4uhSB7BLRUVBycUxk0qlWL27NmYO3cusrOzAQD9+/eHmZkZli9frlF/3bp1yMzMFG6+Q4cORUZGBtauXav1+KobZ0k0btwYUVFRyMzMFMpOnz4NqVSqtfWhXr16MDMzU3s+//TpU+HRjD6USiVyc3N1blfdKK9evSqUPXnyBPv27cOOHTsQGRkpvCIiIvD06VP8/fffAABPT08UFBQgMjJS7Ziqvh8NGzYEULZrGRYWphbDi68NGza87BLoxd3dHU5OTmpDgdPT0xEeHo527doBANq1a4fU1FRcuHBBqHPkyBEolUq11qWcnBzExsbC29tb1BgrNfH7kFZs5TH64/zxi8Loj3Hjnr18B/ZK9OzZkwCQh4cHJSQkGDqcV6Yyjf7Iz88nV1dXtZ78K1asIKlUSrNnz6Zr167RrVu3aPny5SSTyWjGjBlq+wcGBpKJiQnNmjWLzpw5Q3fu3KFDhw7RgAEDdI5kICLy8vISRn0QEWVmZpKzszP179+fLl26REeOHCEPDw8aNWqUzvgnTpxIbm5udPjwYbp06RK9/fbbpFAoih39sWbNGvr999/pxo0bdOPGDdqwYQNVq1aN5syZU+y1e/3112n16tVq18jZ2ZmUSqVG3UGDBtGAAQOE9927dycvLy86dOgQxcXF0f79+8nT05MGDx6stl9pr2VZxcfHU0REBC1YsIAUCgVFRERQRESE2sgbT09P+vXXX4X3X331Fdna2tK+ffsoOjqa+vTpQ+7u7mq/Ez169CBvb28KDw+nU6dOUYMGDWjIkCFqn3306FFSKBSUmZlZbudXUYg1+oOTChH8c+y/pGL8eE4qKop79+5Rz549q1RCQVS5kgoiosWLF5ODgwNlZPw3XHvfvn3UqVMnksvlZGFhQS1btqSNGzdqPe7OnTupc+fOVK1aNZLL5dS8eXNauHBhscMgX0wqiPQfUvrs2TMaPnw4WVlZkaOjIy1duvSlQ0pXrVpFTZs2JSsrK7K2tiZvb29au3YtFRYW6tyHiGjt2rXUtm1b4X2zZs1o0qRJOq+Hubk5PXr0iIieDwedOnUq1atXjywtLalBgwYUGBiodm5F99X3WpbVqFGjNIb5AqCjR48KdQDQpk2bhPdKpZLmzZtHjo6OJJPJqGvXrhQTE6N23CdPntCQIUNIoVCQtbU1jRkzRuOcx48fTxMmTCi3c6tIxEoqJEQi9mYyAunp6bCxsUFaWhqsra1FOWb4kUgMHlIDlrbW8H3DBN9/rzkBDXs1cnNzIZPJDB2GQeXk5Ag9/C0sLAwdDnsFsrOz4enpiZ07dwpN/KxsHj9+DE9PT/z77796j5YxRsX93dDnvsk9AESg5D4VFUJiYiKaNWvG0+qyKsfS0hJbtmzB48ePDR1KpXHnzh2sXbu2SiQUYuLRHyIoOqSU1/4wjKKdMhcsWIABAwZU+RYLVrX4+voaOoRKpVWrVlonFGPF4+/VIijaUsEzar56L47yOHz4MCcUjDFmAJxUiKDojJrcUvFq8bBRxhirODipEEHRxx/cUvHqcELBGGMVCycVIig6o6Yp91J5ZbZu3coJBWOMVSB8CxQDr1JqEJ9++ikAYMSIEZxQMMZYBcBJhQgK1fpUcFZRnpKSkmBnZycsoDR79mxDh8QYY+x/+PGHCEhtnooqNZfYK5WYmIiOHTtiwIABxa6FwBhjzDA4qRCBsrDo0ufcUlEeinbKvHr1KlJSUgwdEqvErl+/jrZt28LCwkJYsOtlRo8ejb59+xZbx9fXF9OmTStzfNqMGDECixYtKpdjV0UHDhxAixYtoFQqX16ZCTipEAEV+V+eUVN82kZ5FF3SmFUOo0ePhkQigUQigZmZGdzd3REYGIicnByNuqGhoejSpQuqVasGKysrtG7dGiEhIVqPu2fPHvj6+sLGxgYKhQLNmzfHwoULi01Mg4KCIJfLERMTo7ba5at0+vRpmJqaliipiYqKQlhYGKZOnaqxbfv27TAxMcHkyZM1toWEhMDW1lbrMSUSCfbu3atWVpprWVZffvkl2rdvDysrK52xvoiIMH/+fDg7O8PS0hL+/v64efOmWp2UlBQMGzYM1tbWsLW1xdixY5GRkSFs79GjB8zMzHiGXj3xLVAEhWotFQYMpBLiYaNVS48ePZCUlIS4uDisWLECP/zwA4KCgtTqrF69Gn369EGHDh0QHh6O6OhovPvuu5g4cSJmzpypVnfOnDkYPHgwWrdujf379+Py5ctYvnw5oqKisHXrVp1xxMbGomPHjnBzc0ONGjXK5VyLk5qaipEjR6Jr164lqr969WoMHDgQCoXmukPBwcEIDAzE9u3btSZoJVXaa1lWeXl5GDhwIN5///0S77N06VKsWrUK69atQ3h4OORyOQICAtTOf9iwYbhy5QoOHjyI0NBQnDhxAuPHj1c7zujRo7Fq1SrRzqVKEH2ps1JYs2YNubm5kUwmozZt2lB4eLjOuj/++CN17NiRbG1tydbWlrp27Vps/ReVxyqle3dcJrea8dSoYSp98UXGy3dgJZKQkEAeHh5VcvnysqhMq5T269ePvL29hfcJCQlkZmZG06dP19h/1apVBIDOnTtHRETh4eEEQOey3LpW1sQLq2GqVivVd5XSjIwMGjFiBMnlcnJycqKvv/76pauUqgwePJjmzp1LQUFB5OXlVWzdgoICsrGxodDQUI1tcXFxZGlpSampqeTj40Pbtm1T275p0yaysbHReR1+++03Iir9tRRTcbEWpVQqycnJiZYtWyaUpaamkkwmo+3btxMR0dWrVwkAnT9/Xqizf/9+kkgkdO/ePaEsPj6eANCtW7fEO5EKSqxVSg3+vXrnzp2YPn06goKCcPHiRXh5eSEgIAAPHz7UWv/YsWMYMmQIjh49irNnz6J27dro3r077t2794oj/w8puaWiPNy7dw8PHz7kFgoRKJWE3OyCV/5SKkvfcfny5cs4c+YMzM3NhbLdu3cjPz9fo0UCACZMmACFQoHt27cDALZt2waFQoFJkyZpPb6upvSkpCQ0bdoUM2bMQFJSEmbOnInMzEwEBASgevXqOH/+PHbt2oVDhw5hypQpOuOfNWsWjh8/jn379uHvv//GsWPHcPHixZee96ZNmxAXF6fRQqNLdHQ00tLStK5TsWnTJrz55puwsbHB8OHDERwcXKJjvqi01xIAmjZtCoVCofPVs2fPUsWky+3bt5GcnAx/f3+hzMbGBj4+Pjh79iwA4OzZs7C1tVW7Zv7+/pBKpQgPDxfK6tSpA0dHR5w8eVLUGCszgw8p/eabb/Dee+9hzJgxAIB169bhzz//xMaNG/HJJ59o1H/x+daGDRuwZ88eHD58GCNHjnwlMb9IyUNKy0Xbtm1x8OBBuLq6ckJRRvm5hbh/M/WVf65LA1vILEv+ZyY0NBQKhQIFBQXIzc2FVCrFmjVrhO03btyAjY2N1j415ubm8PDwwI0bNwAAN2/ehIeHB8zMzPSK2cnJCaamplAoFHBycgIArF+/Hjk5OdiyZQvkcjkAYM2aNejduzeWLFkCR0dHtWNkZGQgODgYP/30k/AIY/PmzahVq1axn33z5k188sknOHnyJExLOJNefHw8TExMULNmTbVypVKJkJAQrF69GgDw7rvvYsaMGcLy1voo7bUEgLCwMOTn5+vcbmlpqfcxi5OcnAwAGv8mjo6Owrbk5GSN62Vqago7OzuhjoqLiwvi4+NFjbEyM2hSkZeXhwsXLgiTGAGAVCqFv7+/kFG+TFZWFvLz82FnZ6d1e25urtrww/T09LIFrYWSuKVCLAkJCXj69Cm8vLwAPE8sWNmZyUzg0sDWIJ+rDz8/P3z//ffIzMzEihUrYGpqiv79+5fqs4nEG9597do1eHl5CQkFAHTo0AFKpRIxMTEaN7DY2Fjk5eXBx8dHKLOzs4Onp6fOzygsLMTQoUOxYMECNGzYsMSxZWdnC/O2FHXw4EFkZmaiV69eAAB7e3t069YNGzduxOeff17i4wNlu5Zubm6l3rcisLS0RFZWlqHDMBoGvQU+fvwYhYWFxWaUL/Pxxx/DxcVFramrqMWLF8PGxkZ4lcc33qILinFSUXoJCQnw8/PDG2+8gaioKEOHU6lIpRLILE1f+UvfIdZyuRz169eHl5cXNm7ciPDwcLUm+4YNGyItLQ3379/X2DcvLw+xsbHCDblhw4aIi4sr9ltyRfLs2TP8+++/mDJlCkxNTWFqaoqFCxciKioKpqamOHLkiNb97O3tkZWVhby8PLXy4OBgpKSkwNLSUjheWFgYNm/eLAyTtLa2RmZmpsawydTUVADPHxsAZbuWr/rxh6p16cGDB2rlDx48ELY5OTlpPGIvKChASkqKUEclJSUFDg4OosZYmRn1LfCrr77Cjh078Ntvv8HCwkJrnU8//RRpaWnCKzExUfQ4lJxUlJkqoYiLi4Otra3OlidWdUilUsyePRtz585FdnY2AKB///4wMzPD8uXLNeqvW7cOmZmZGDJkCABg6NChyMjIwNq1a7UeX3XjLInGjRsjKioKmZmZQtnp06chlUq1tj7Uq1cPZmZmas/nnz59Kjya0cba2hqXLl1CZGSk8Jo4cSI8PT0RGRmp1upRlGrI6dWrV4WyJ0+eYN++fdixY4fa8SIiIvD06VP8/fffAABPT08UFBQgMjJS7Ziqvh+qBK0s1zIsLEwthhdfGzZs0Llvabi7u8PJyUltKHB6ejrCw8PRrl07AEC7du2QmpqKCxcuCHWOHDkCpVKpdp1zcnIQGxsLb29vUWOs1MTvQ1pyubm5ZGJiIvQwVhk5ciS9/fbbxe67bNkysrGxUeu9WxLlMfrj543XhNEfq1ZlinbcqiI+Pp5HeYioMo3+yM/PJ1dXV7We/CtWrCCpVEqzZ8+ma9eu0a1bt2j58uUkk8loxowZavsHBgaSiYkJzZo1i86cOUN37tyhQ4cO0YABA3SOZCAi8vLyEkZ9EBFlZmaSs7Mz9e/fny5dukRHjhwhDw8PGjVqlM74J06cSG5ubnT48GG6dOkSvf3226RQKEo0+kOlJKM/iIhef/11Wr16tfB+xYoV5OzsTEqlUqPuoEGDaMCAAcL77t27k5eXFx06dIji4uJo//795OnpSYMHD1bbr7TXsqzi4+MpIiKCFixYQAqFgiIiIigiIkJt5I2npyf9+uuvwvuvvvqKbG1tad++fRQdHU19+vQhd3d3td+JHj16kLe3N4WHh9OpU6eoQYMGNGTIELXPPnr0KCkUCsrMrPx/18Ua/WHwIaVt2rShKVOmCO8LCwvJ1dWVFi9erHOfJUuWkLW1NZ09e1bvzyuPpGLbhv+SitWrK/8Pn5g4oRBfZUoqiIgWL15MDg4OlJHx33Dtffv2UadOnUgul5OFhQW1bNmSNm7cqPW4O3fupM6dO1O1atVILpdT8+bNaeHChcUOg3wxqSDSf0jps2fPaPjw4WRlZUWOjo60dOnSEg8pVSlpUrF27Vpq27at8L5Zs2Y0adIkrXV37txJ5ubm9OjRIyJ6Phx06tSpVK9ePbK0tKQGDRpQYGCg2rkV3Vffa1lWo0aN0hjmC4COHj0q1AFAmzZtEt4rlUqaN28eOTo6kkwmo65du1JMTIzacZ88eUJDhgwhhUJB1tbWNGbMGI1zHj9+PE2YMKHczq0iqTRJxY4dO0gmk1FISAhdvXqVxo8fT7a2tpScnExERCNGjKBPPvlEqP/VV1+Rubk57d69m5KSkoSXtl8Abcojqdi6/rqQVHz/fZZox63s7t69ywlFOTDWpIKVXlZWFtWuXZvOnDlj6FAqjUePHpGdnR3FxcUZOpRXQqykwuBDSgcPHoxHjx5h/vz5SE5ORosWLXDgwAGh82ZCQgKkRToqfP/998jLy8OAAQPUjhMUFITPPvvsVYYuKNqngpc+LzlbW1thiB3PQ8FY6VlaWmLLli14/PixoUOpNO7cuYO1a9fqPfy2qjN4UgEAU6ZM0TmJzLFjx9Te37lzp/wD0pP6PBWGi8PYyOVyhIWFITU1Fa6uroYOhzGj5uvra+gQKpVWrVppnVCMFY/HKoiAisxTwS0VxUtMTFSbS18ul3NCwRhjlUSFaKkwdoWF//23qSlnFboUXRwMgNYVFRljjBkvbqkQAanNqCneLH6VyYurjb7zzjuGDokxxpjIOKkQgfrkV9xS8SJevpwxxqoGTipEUHRafJ5RUx0nFIwxVnXwLVAEhUWWPudVSv+TlZUlTL3NCQVjjFV+nFSIgBcU087KygofffQR6tWrxwkFMyrXr19H27ZtYWFhIayt8TKjR49G3759i63j6+uLadOmlTk+bUaMGIFFixaVy7GrogMHDqBFixYai62x4vEtUARFlz7neSrUTZ48GdHR0ZxQsJcaPXo0JBIJJBIJzMzM4O7ujsDAQOTk5GjUDQ0NRZcuXVCtWjVYWVmhdevWCAkJ0XrcPXv2wNfXFzY2NlAoFGjevDkWLlyIlJQUnbEEBQVBLpcjJiZGbWGq8nbs2DHhGhR9vWzV5qioKISFhWkdUbV9+3aYmJhg8uTJGttCQkJga2ur9ZgSiQR79+5VKyvNtSyrL7/8Eu3bt4eVlZXOWF9ERJg/fz6cnZ1haWkJf39/3Lx5U61OSkoKhg0bBmtra9ja2mLs2LHIyMgQtvfo0QNmZmbYtm2bmKdT6XFSIQKeUfM/iYmJ6N+/P548eSKUWVlZGTAiZkx69OiBpKQkxMXFYcWKFfjhhx8QFBSkVmf16tXo06cPOnTogPDwcERHR+Pdd9/FxIkTMXPmTLW6c+bMweDBg9G6dWvs378fly9fxvLlyxEVFYWtW7fqjCM2NhYdO3aEm5sbatSoUS7nWpyYmBgkJSUJr5o1axZbf/Xq1Rg4cCAUCoXGtuDgYAQGBmL79u1aE7SSKu21LKu8vDwMHDgQ77//fon3Wbp0KVatWoV169YhPDwccrkcAQEBauc/bNgwXLlyBQcPHkRoaChOnDiB8ePHqx1n9OjRavPqsBIohynEK7TyWPvjm0Wxwtoff/yRK9pxjU1CQoKwlke/fv0MHU6VZaxrf2hbUKxfv37k7e0tvE9ISCAzMzOaPn26xv6rVq0iAHTu3DkiIgoPDycAOlfQ1LUIFl5YuEq1sJi+C4plZGTQiBEjSC6Xk5OTE3399dcvXVDs6NGjBECvBboKCgrIxsaGQkNDNbbFxcWRpaUlpaamko+PD23btk1t+6ZNm8jGxkbrcQEIK0iX9lqKqbhYi1IqleTk5KS2sm1qairJZDLavn07ERFdvXqVAKitcr1//36SSCR07949oSw+Pp4A0K1bt8Q7kQpKrLU/uKVCBMoioz+qakvFi6M8Vq5caeiQmJG7fPkyzpw5A3Nzc6Fs9+7dyM/P12iRAIAJEyZAoVBg+/btAIBt27ZBoVBg0qRJWo+vqyk9KSkJTZs2xYwZM5CUlISZM2ciMzMTAQEBqF69Os6fP49du3bh0KFDOpcXAIBZs2bh+PHj2LdvH/7++28cO3YMFy9eLNG5t2jRAs7OzujWrRtOnz5dbN3o6GikpaVpnVJ606ZNePPNN2FjY4Phw4cjODi4RJ//otJeSwBo2rQpFAqFzlfPnj1LFZMut2/fRnJyMvz9/YUyGxsb+Pj44OzZswCAs2fPwtbWVu2a+fv7QyqVIjw8XCirU6cOHB0dcfLkSVFjrMx4Rk0RFBZW7T4VPGy04lMqC5Ffhqbv0jKzsIBUWvJfitDQUCgUChQUFCA3NxdSqRRr1qwRtt+4cQM2NjZwdnbW2Nfc3BweHh64ceMGAODmzZvw8PCAmZmZXjE7OTnB1NQUCoUCTk5OAID169cjJycHW7ZsgVwuBwCsWbMGvXv3xpIlS4QFEFUyMjIQHByMn376CV27dgUAbN68WVhATxdnZ2esW7cOrVq1Qm5uLjZs2ABfX1+Eh4fj9ddf17pPfHw8TExMNB6RKJVKhISEYPXq1QCAd999FzNmzMDt27f1XiSrtNcSAMLCwpCfn69zu6Wlpd7HLI6q/8mL/yaOjo7CtuTkZI3rZWpqCjs7O43+Ky4uLoiPjxc1xsqMkwoRVOV5KjihMA75OTm4e+3yK//cWo1fg8xKXuL6fn5++P7775GZmYkVK1bA1NQU/fv3L9VnE4k3u+21a9fg5eUlJBQA0KFDByiVSsTExGjcwGJjY5GXlwcfHx+hzM7ODp6ensV+jqenp1qd9u3bIzY2FitWrNDZbyE7OxsymQySF5pJDx48iMzMTPTq1QsAYG9vj27dumHjxo34/PPPS3bi/1OWa+nm5lbqfSsCS0tLZGVlGToMo8FJhQjUVymtWs8/Ro4cyQmFETCzsECtxq8Z5HP1IZfLUb9+fQDAxo0b4eXlheDgYIwdOxYA0LBhQ6SlpeH+/ftwcXFR2zcvLw+xsbHw8/MT6p46dQr5+fml+oZdUbRp0wanTp3Sud3e3h5ZWVnIy8tTe1QUHByMlJQUtZYApVKJ6OhoLFiwAFKpFNbW1sjMzIRSqYS0yDei1NRUAM8fGwBlu5ZNmzYt9pt+p06dsH//fr2OWRxV69KDBw/UWrQePHggDA92cnLCw4cP1fYrKChASkqKsL9KSkoKHBwcRIuvsqti36vLh/raHwYMxABUzbOcUFRsUqkJZFbyV/7S59GHZsxSzJ49G3PnzkV2djYAoH///jAzM8Py5cs16q9btw6ZmZkYMmQIAGDo0KHIyMjA2rVrtR5fdeMsicaNGyMqKgqZmZlC2enTpyGVSrW2PtSrVw9mZmZqz+efPn0qPJrRR2RkpNbHPSqqG+XVq1eFsidPnmDfvn3YsWMHIiMjhVdERASePn2Kv//+G8DzlpGCggJERkaqHVPV96Nhw4YAynYtw8LC1GJ48bVhw4aXXQK9uLu7w8nJSW0ocHp6OsLDw9GuXTsAQLt27ZCamooLFy4IdY4cOQKlUqnWupSTk4PY2Fh4e3uLGmOlJn4f0oqtPEZ/LJx7Wxj9cfx4vmjHrajy8yv/ORqzyjT6Iz8/n1xdXdV68q9YsYKkUinNnj2brl27Rrdu3aLly5eTTCajGTNmqO0fGBhIJiYmNGvWLDpz5gzduXOHDh06RAMGDNA5koGIyMvLSxj1QUSUmZlJzs7O1L9/f7p06RIdOXKEPDw8aNSoUTrjnzhxIrm5udHhw4fp0qVL9Pbbb5NCoSh29MeKFSto7969dPPmTbp06RJ9+OGHJJVK6dChQ8Veu9dff51Wr16tdhxnZ2dSKpUadQcNGkQDBgwQ3nfv3p28vLzo0KFDFBcXR/v37ydPT08aPHiw2n6lvZZlFR8fTxEREbRgwQJSKBQUERFBERERaiNvPD096ddffxXef/XVV2Rra0v79u2j6Oho6tOnD7m7u6v9TvTo0YO8vb0pPDycTp06RQ0aNKAhQ4aoffbRo0dJoVBQZmZmuZ1fRSHW6A9OKkSwcM5/ScXJk5X7hpuQkECNGzfWOnyNVQyVKakgIlq8eDE5ODhQRkaGULZv3z7q1KkTyeVysrCwoJYtW9LGjRu1Hnfnzp3UuXNnqlatGsnlcmrevDktXLiw2GGQLyYVRPoPKX327BkNHz6crKysyNHRkZYuXfrSIaVLliyhevXqCZ/h6+tLR44c0VlfZe3atdS2bVvhfbNmzWjSpEla6+7cuZPMzc3p0aNHRPR8OOjUqVOpXr16ZGlpSQ0aNKDAwEC1cyu6r77XsqxGjRqlMcwXAB09elSoA4A2bdokvFcqlTRv3jxydHQkmUxGXbt2pZiYGLXjPnnyhIYMGUIKhYKsra1pzJgxGuc8fvx4mjBhQrmdW0UiVlIhIRKxN5MRSE9Ph42NDdLS0mBtbS3KMT+bHY+QYAksbW0QvEmO9u0rZ1eVop0yGzdujOjoaJiaVs5zNWY5OTlCD38LPfs0MOOUnZ0NT09P7Ny5U2jiZ2Xz+PFjeHp64t9//9V7tIwxKu7vhj73zSrWA6B8KKvA2h8vjvL466+/OKFgrIKwtLTEli1b8PjxY0OHUmncuXMHa9eurRIJhZj4riACquSrlPKwUcYqPl9fX0OHUKm0atVK64RirHiV9Hv1q1V0Rs3KllRwQsEYY6ykOKkQgVJZeYeUrl27lhMKxhhjJcKPP0RAlbil4osvvgAATJo0iRMKxhhjxeKkQgTPWyqeZxaVoaXiwYMHsLe3h4mJCUxMTLB48WJDh8QYY8wIVIJboOEVHf1hamrcLRUJCQlo3749Ro0ahcLCQkOHwxhjzIhwS4UIKsvS5wkJCfDz80NcXByA5+O0X1woiTHGGNOFWypEoD6k1ICBlEHRhELVKZMTCsYYY/rgpEIERR9/GGNLhbaEgjtlsorkzp07kEgkGgtfGYPPPvtMWPTrVQkJCYGtre1L6wUHB6N79+7lH1AlkJeXh7p16+Lff/81dCgVGicVIig04pYKTigYq5pycnIwb948BAUFaWy7e/cuzM3N8dprr2lsKy7B8/X1xbRp09TKIiIiMHDgQDg6OsLCwgINGjTAe++9V6oVW0uKiDB//nw4OzvD0tIS/v7+uHnzZrH7fPbZZ5BIJGqvRo0aCdvNzc0xc+ZMfPzxx+UWd2XASYUYjLhPxY0bN3D37l1OKBirYnbv3g1ra2t06NBBY1tISAgGDRokLBleWqGhoWjbti1yc3Oxbds2XLt2DT/99BNsbGwwb968soRfrKVLl2LVqlVYt24dwsPDIZfLERAQgJycnGL3a9q0KZKSkoTXqVOn1LYPGzYMp06dwpUrV8otdmPHSYUIjLmlwt/fH3/++ScnFFVAZmamzteLf2yLq5udnV2iuvpSKpVYunQp6tevD5lMhjp16uDLL79UqxMXFwc/Pz9YWVnBy8sLZ8+eFbY9efIEQ4YMgaurK6ysrNCsWTNs375dbX9fX19MnToVgYGBsLOzg5OTEz777DO1OqmpqZgwYYLwzfq1115DaGiosP3UqVPo1KkTLC0tUbt2bUydOlXv892wYQMaN24MCwsLNGrUCGvXrhW2tW/fXuPb8KNHj2BmZoYTJ04AAHJzczFz5ky4urpCLpfDx8cHx44d0yuGHTt2oHfv3hrlRIRNmzZhxIgRGDp0KIKDg/U6rkpWVhbGjBmDXr164ffff4e/vz/c3d3h4+ODr7/+Gj/88EOpjvsyRISVK1di7ty56NOnD5o3b44tW7bg/v372Lt3b7H7mpqawsnJSXjZ29urba9evTo6dOiAHTt2lEvslQEnFSIoOvmVMcxTkZiYqNYU6O/vzwlFFaBQKHS++vfvr1a3Zs2aOuv27NlTrW7dunW11tPXp59+iq+++grz5s3D1atX8fPPP2t0Fp4zZw5mzpyJyMhINGzYEEOGDEFBQQGA5835LVu2xJ9//onLly9j/PjxGDFiBP755x+1Y2zevBlyuRzh4eFYunQpFi5ciIMHDwJ4ntj07NkTp0+fxk8//YSrV6/iq6++gsn/vi3ExsaiR48e6N+/P6Kjo7Fz506cOnUKU6ZMKfF5btu2DfPnz8eXX36Ja9euYdGiRZg3bx42b94M4Pm34R07dqDoAtI7d+6Ei4sLOnXqBACYMmUKzp49ix07diA6OhoDBw5Ejx49XtrEX9SpU6e0rm1x9OhRZGVlwd/fH8OHD8eOHTtKlST+9ddfePz4MQIDA7VuL67Px8SJE4v9eS3u5+v27dtITk6Gv7+/UGZjYwMfHx+1JFSbmzdvwsXFBR4eHhg2bBgSEhI06rRp0wYnT54s9jhVmrgrsld8+qwLX1Lvjb5PbjXjqVHDVEpOFu2w5SIhIYE8PDzIxcWFbty4YehwWDnIzs6mq1evUnZ2tlo5nj+o0/rq1auXWl0rKyuddbt06aJW197eXms9faSnp5NMJqP169dr3X779m0CQBs2bBDKrly5QgDo2rVrOo/75ptv0owZM4T3Xbp0oY4dO6rVad26NX388cdERPTXX3+RVCqlmJgYrccbO3YsjR8/Xq3s5MmTJJVKNa63SlBQEHl5eQnv69WrRz///LNanc8//5zatWtHREQPHz4kU1NTOnHihLC9Xbt2Qozx8fFkYmJC9+7dUztG165d6dNPPyUiok2bNpGNjY3WeIiInj59SgDUPkNl6NChNG3aNOG9l5cXbdq0SXiv+reIiIjQ2LdLly704YcfEhHRkiVLCAClpKTojEOXBw8e0M2bN4t96XL69GkCQPfv31crHzhwIA0aNEjnfmFhYfTLL79QVFQUHThwgNq1a0d16tSh9PR0tXrffvst1a1bV+9zquh0/d0g0u++yfNUiIDIONb+eHFxMAsLC0OHxF6hjIwMndtMXnhu9/DhQ511pS/8kN+5c6dMcQHAtWvXkJubi65duxZbr3nz5sJ/Ozs7A3gea6NGjVBYWIhFixbhl19+wb1795CXl4fc3FxYWVnpPIbqOKrzjYyMRK1atdCwYUOtnx8VFYXo6Ghs27ZNKCMiKJVK3L59G40bNy42/szMTMTGxmLs2LF47733hPKCggLY2NgAABwcHNC9e3ds27YNnTp1wu3bt3H27FnhccGlS5dQWFioEWNubi5q1KhR7OerqB5hvfg3IDU1Fb/++qtaX4Lhw4cjODgYo0ePLtGxVahoE66eatasiZo1a5Z6/9Io2gLXvHlz+Pj4wM3NDb/88gvGjh0rbLO0tERWVtYrjc2YcFIhgqITT1bUpIJXG2VyudzgdXWxtLQsUT0zMzPhvyX/6xWt/N+Y7mXLluHbb7/FypUr0axZM8jlckybNg15eXk6j6E6juoYL4sjIyMDEyZMwNSpUzW21alT56XxqxK79evXw8fHR21b0cRu2LBhmDp1KlavXo2ff/4ZzZo1Q7NmzYRjmJiY4MKFCxrJYEkfO9WoUQMSiQRPnz5VK//555+Rk5OjFpsqabpx4wYaNmwIa2trAEBaWprGcVNTU4XkSJX0XL9+He3atStRXCoTJ07ETz/9VGwdXUmyk5MTgOfLDagST9V7fYb22traomHDhrh165ZaeUpKChwcHEp8nKqmgt4CjUtFb6nghIJVdA0aNIClpSUOHz5c6mOcPn0affr0wfDhw+Hl5QUPDw+9hy02b94cd+/e1bnf66+/jqtXr6J+/foaL3Nz85ce39HRES4uLoiLi9PY393dXajXp08f5OTk4MCBA/j5558xbNgwYZu3tzcKCwvx8OFDjWOobqgvY25ujiZNmuDq1atq5cHBwZgxYwYiIyOFV1RUFDp16oSNGzcCAOzs7GBvb48LFy6o7Zueno5bt24JyUT37t1hb2+PpUuXao0hNTVVZ3wLFy5Ui0HbSxd3d3c4OTmp/SypRrHok9xkZGQgNjZWLTEBgMuXL8Pb27vEx6lyRH8wU8GVR5+KkUOShT4VIh5WFImJieTh4UEAyMPDgxISEgwdEitnxT0brcg+++wzql69Om3evJlu3bpFZ8+eFfpQaHuOr+oXcPToUSIi+uijj6h27dp0+vRpunr1Ko0bN46sra2pT58+wj5Fn/mr9OnTh0aNGiW89/X1pddee43+/vtviouLo7CwMNq/fz8REUVFRZGlpSVNnjyZIiIi6MaNG7R3716aPHmyzvN6sU/F+vXrydLSkr799luKiYmh6Oho2rhxIy1fvlxtv2HDhpGXlxdJJBKKj4/X2Fa3bl3as2cPxcXFUXh4OC1atIhCQ0OJ6OV9KoiIpk+fTv379xfeR0RE6OyjsnbtWnJycqL8/HwiIlq0aBHVqFGDfvrpJ7p16xaFh4fTW2+9RXXr1qWsrCxhv71795KZmRn17t2bDh48SLdv36bz58/TrFmzaPDgwcXGVxZfffUV2dra0r59+yg6Opr69OlD7u7uar8Tb7zxBq1evVp4P2PGDDp27Bjdvn2bTp8+Tf7+/mRvb08PHz5UO7abmxtt2bKl3GI3FLH6VHBSIYLhg/9LKl7o02NwT548IW9vb04oqhBjTSoKCwvpiy++IDc3NzIz+//27jysqSv/H/g7ARIiq8gaQBAX1CooWvzhUveCtRaXVtqiolgdKy7VqdaFio4DdMZitS61dlTUUrH6lNopituIVaQuKDqKoiiIbQErKDsGks/vD4d8jQQkcCGgn9fz5Hmac88593NPJfnk3nPuNaL27dtTREQEEdUvqcjPzyd/f38yNTUlW1tbCg0NpSlTpuicVOTn59O0adOoXbt2ZGxsTD169FB/WRMRnTt3jkaOHEmmpqZkYmJCHh4eFB4eXutxPZtUEBHFxMRQr169SCKRUNu2bem1116jH374QaPOwYMHCQC99tprNfpUKBS0YsUKcnV1JSMjI3JwcKBx48bRlStXiKh+ScW1a9dIJpPRo0ePiIhozpw51L17d611c3JySCwW04EDB4iIqKqqir788kvq2bMntWnThpycnCggIIAyMzNrtD1//jyNHz+ebGxsSCqVUqdOnWjmzJl1TrZsLJVKRZ9++inZ2dmRVCql4cOH15h86+LiQmFhYer3AQEB5ODgQBKJhBwdHSkgIIAyMjI02pw5c4YsLS01EqcXhVBJhYioEbNpWqGioiJYWFigsLBQfW2wsQID7iMpsQIySwukXLLAM/PC9K6goABlZWVwcnLSdyisGVRUVCAzMxMdOnTgybisTu+88w68vLywdOlSfYfSKgQEBMDT0xPLli3TdyiCq+tzQ5fvzRY4A6D1oRb27I979+4hOjpa/d7KyooTCsZYDWvWrGnQPUVeRgqFAj179sSCBQv0HUqLxqs/BNCS7qj59KRMADovA2OMvTxcXV0xd+5cfYfRKkgkEoSGhuo7jBaPz1QIoKXcUfPZVR7PW/PPGGOMCYmTCgGoVPpfUsrLRhljjOkbJxUCePpMhT7mVHBCwRhjrCXgpEIA1XfUFKH5k4qioiJOKBhjjLUInFQIgPAkkxDpYTTNzc0xbdo0TigYY4zpHScVAlD970yFWKSfW36Ehobi0qVLnFAwxhjTK04qBFA9UVMkbp6k4t69e5gyZYrGA3WEupEXY4wx1lB8nwoBVE/UNGiGFO3Z+1Ds2rWr6XfKGGOM1QOfqRDA/56aDFETX/54dpVHeHh4k+6PMcYY0wUnFQJQ/e/R5015jwpeNsoY0yY/Px+2trbIysrSdyishXr33XcRFRXVLPvipEIATX2mghMK9rKYOnUqRCIRZs2aVWNbSEgIRCJRi7j1fHWcIpEIRkZG6NChAxYvXoyKigqNevfu3UNwcDDkcjkkEglcXFwwf/585Ofn1+gzNzcXc+fOhZubG6RSKZydnTFmzBgcP368zljCw8Ph7+8PV1fXGtuSk5NhYGCA0aNH19g2ZMgQfPTRRzXKo6OjYWlpKUhsQti0aRNcXV1hbGyMfv364dy5c3XWLy4uxkcffQQXFxfIZDL0798f58+f17lOU9D1WOrb5nl1QkNDER4ejsLCQsGOpVbCP0C1ZWuKR58Pe+0hudjeJe8+fwrWZzWVSkX9+vUjAPz4clYvrfXR50REQUFB5OzsTBYWFhqPly4vLydLS0tq3769xmPK9SUoKIj8/PwoJyeHsrOzKS4ujszNzWnx4sXqOrdv3yZbW1saOHAgJSYm0t27d+ngwYP0yiuvUOfOnSk/P19dNzMzk+RyOXXv3p32799P6enpdPXqVYqKiiJ3d/da4ygtLSVzc3NKTk7Wun369Ok0f/58MjU1pd9//11jm7bHwBPVfGx6Q2MTQmxsLEkkEtq+fTtdu3aNZsyYQZaWlpSXl1drm4kTJ1L37t3p5MmTdOvWLQoLCyNzc3P67bffdKrzPIMHD6YdO3Y06bHUp019++3bty9t3Lix1n0J9ehzTioEMGTQk6Ti//UVPqkgIrp8+TL169ePEwpWL609qfD396cePXrQt99+qy6PiYkhDw8P8vf3VycVSqWSIiIiyNXVlYyNjcnDw4P27dun0d+hQ4dowIABZGFhQVZWVjR69GjKyMjQqDN48GCaO3cuLVq0iNq2bUt2dnYUFhZWrzifNn78eOrdu7f6vZ+fHzk5OWkkR0REOTk51KZNG5o1a5a6bNSoUeTo6EglJSU19vXw4cNa49i3bx/Z2Nho3VZcXEympqZ048YNCggIoPDwcI3t9U0qGhqbELy9vSkkJET9XqlUklwup8jISK31y8rKyMDAgH7++WeNci8vL1q+fHm969SHrkmFrsdS3zb17XfVqlU0cODAWvclVFLBqz8E0BRLSlUqFcT/m6Th4eGB5ORkiFrCc9VZqzR5MqDljHuTa9cO2L1b93bBwcHYsWMHAgMDAQDbt2/HtGnTkJiYqK4TGRmJb7/9Flu2bEHnzp3xyy+/YNKkSbCxscHgwYMBAKWlpVi4cCE8PDxQUlKCFStWYNy4cUhNTVX/fQHAzp07sXDhQpw9exbJycmYOnUqBgwYgJEjR9Yr3qtXr+LMmTNwcXEBABQUFODw4cMIDw+HTCbTqGtvb4/AwEDs3bsXmzdvxsOHD5GQkIDw8HCYmJjU6PvZSxFPO3XqFPr06aN12/fff4+uXbvC3d0dkyZNwkcffYSlS5fq9DlSUFDQ4NgAICIiAhEREXXWSUtLQ/v27WuUKxQKpKSkYOnSpeoysViMESNGIDk5WWtfVVVVUCqVMDY21iiXyWQ4ffp0vesIrSHHUp82uvTr7e2N8PBwPH78GFKpVMjD08BJhQCql5SKBfrOz87OxpgxY7Bx40YMGjQIADihYI2Snw/cv6/vKOpv0qRJWLp0Ke7evQsASEpKQmxsrDqpePz4MSIiInDs2DH4+PgAANzc3HD69Gl8/fXX6qRiwoQJGv1u374dNjY2SEtLQ48ePdTlHh4eCAsLAwB07twZGzduxPHjx+tMKn7++WeYmpqiqqoKjx8/hlgsxsaNGwEAt27dAhGhW7duWtt269YNDx8+xJ9//omsrCwQEbp27arzON29exdyuVzrtm3btmHSpEkAAD8/PxQWFuLkyZMYMmRIvfvPyMhocGwAMGvWLEycOLHOOrXF/+DBAyiVStjZ2WmU29nZ4caNG1rbmJmZwcfHB6tXr0a3bt1gZ2eHPXv2IDk5GZ06dap3HW2eTZDKy8vx66+/Ys6cOeqy2hKkhhxLfdro0q9cLodCoUBubq46+W0KnFQIQD1RU4AzFdnZ2Rg6dCju3LmDuXPn4uLFixq/qBhriHbtWtd+bWxsMHr0aERHR4OIMHr0aFhbW6u3Z2RkoKysrMaXvkKhQO/evdXvb926hRUrVuDs2bN48OABVP/7Y83Ozq6RVDzNwcEB95+ThQ0dOhRfffUVSktL8cUXX8DQ0LBGEkP0/M+E+tSpTXl5eY1f3ACQnp6Oc+fOIS4uDgBgaGiIgIAAbNu2TaekojGxAYCVlRWsrKwa1Yeudu/ejeDgYDg6OsLAwABeXl547733kJKSolOdZz2bIAUGBmLChAkYP368uqy2BKklqD5jVlZW1qT74aRCAMr/Xf5o7JmKpxMKNzc3/Pvf/+aEggmiIZcg9C04OFj9K3DTpk0a26rvJhsfHw9HR0eNbU+f2h0zZgxcXFzwzTffQC6XQ6VSoUePHlAoFBptjIyMNN6LRCJ1AlIbExMT9S/b7du3w9PTE9u2bcP06dPRqVMniEQiXL9+HePGjavR9vr162jbti1sbGxgaGgIkUhU6y/WulhbW+Phw4c1yrdt24aqqiqNLzkiglQqxcaNG2FhYQFzc3OtqwEePXoECwsLAE/O2jQ0NqBxlz+sra1hYGCAvLw8jfK8vDzY29vX2l/Hjh1x8uRJlJaWoqioCA4ODggICICbm5tOdZ71bIIkk8lga2tb59mNxhxLfdro0m9BQQGAJwl7U+JvLCH8L5lvzJmKZxMKXjbKXnZ+fn5QKBSorKyEr6+vxrbu3btDKpUiOzsbnTp10nhV/93k5+cjPT0doaGhGD58uPqSQ1MQi8VYtmwZQkNDUV5ejnbt2mHkyJHYvHkzysvLNerm5uYiJiYGAQEBEIlEsLKygq+vLzZt2oTS0tIafT969KjW/fbu3RtpaWkaZVVVVdi1axeioqKQmpqqfl2+fBlyuRx79uwBALi7u+PixYs1+rx48SK6dOkCAI2KDXjy6/7pGLS9avt1L5FI0KdPH41lqyqVCsePH1df8qqLiYkJHBwc8PDhQxw+fBj+/v4NqiOEhhxLfdro0u/Vq1fh5OSkccavSTx3KucLpilWf7zqVUQutndp6KDcBrW/e/cuubm58bJRJogXYfVHtcLCQo2/1adXfyxfvpzatWtH0dHRlJGRQSkpKfTll19SdHQ0ET2ZBd+uXTuaNGkS3bp1i44fP06vvvoqAaC4uDh1n9pWQTy9n/rESURUWVlJjo6OtGbNGiIiunnzJllbW9OgQYPo5MmTlJ2dTYcOHaIePXrUWFJ6+/Ztsre3Vy/bvHnzJqWlpdH69eupa9eutcZx5coVMjQ0pIKCAnVZXFwcSSQSevToUY36ixcvpr59+6r3aWxsTHPnzqXLly/TjRs3KCoqigwNDenQoUONjk0IsbGxJJVKKTo6mtLS0mjmzJlkaWlJublPPms3bNhAw4YN02iTkJBAhw4dojt37tCRI0fI09OT+vXrRwqFQqc6zyouLqacnJw6X1VVVQ0+Fm3HU5829alD9OTfbHBwcK3x8ZLSBmqKpKJv7ydJxfDXchrUPiQkhBMKJpgXKal41tNf9iqVitatW0fu7u5kZGRENjY25OvrSydPnlTXP3r0KHXr1o2kUil5eHhQYmJikyUVRESRkZFkY2OjXn6ZlZVFQUFBZGdnR0ZGRuTs7Exz586lBw8e1Gj7xx9/UEhICLm4uJBEIiFHR0d666236MSJE7XGQfRkSeGWLVvU799880164403tNY9e/YsAaDLly8TEdG5c+do5MiRZGNjQxYWFtSvXz+NsWlsbELYsGEDtW/fniQSCXl7e9Ovv/6q3hYWFkYuLi4a9ffu3Utubm4kkUjI3t6eQkJCaiRY9anzrLCwMMKT89K1vjIzMxt8LLUdz/Pa1KdOeXk5WVhY1Ho/k+o6QiQVIqJGzsRpZYqKimBhYYHCwkLBnuzZp1cJ8nMK0Lm7EY6ecNC5vUKhwMKFC/HJJ5/wJQ/WaBUVFcjMzESHDh20TuJjL5b4+HgsWrQIV69e5TlYTKuvvvoKcXFxOHLkSK116vrc0OV7kydqCqAhS0rz8/NhZWUFkUgEiUSiXorGGGO6GD16NG7duoXff/+df5QwrYyMjLBhw4Zm2RentQJQ6rik9N69e/D29sa8efMavWSLMcY++ugjTihYrT744AO4u7s3y744qRCASoclpU8/HOzgwYPqZT6MMcZYa8dJRSNR9RQdAGKDus86aHvaaDt93ZWIMcYYExgnFY309NWLuk5U8OPLGWOMveg4qWikp2+6J65lTgUnFIwxxl4GnFQ00tNJRW3P/Lpw4QKysrI4oWCMMfZC4yWljaRU/t9/13amYty4cdi/fz/69u3LCQVjjLEXFicVjaQxp+KpMxX37t2DWCxWP+xI20OFGGOMsRcJX/5oJG1nKqrnUAwZMgS///67niJjjDHGmhefqWikp89UiMVUY1Lm8x6fzFhzUSqVzfrvUSwWw8DAoNn2p09DhgxBr169sG7duhbRD2P60iKSik2bNmHNmjXIzc2Fp6cnNmzYAG9v71rr79u3D59++imysrLQuXNn/OMf/8Abb7zRjBH/n6fPVJRXlGHIkDd5lQdrcZRKJX777TdUVlY22z6NjIzg5OTUrInFL7/8gjVr1iAlJQU5OTmIi4vD2LFjG9wff8kzphu9X/7Yu3cvFi5ciLCwMFy8eBGenp7w9fXF/fv3tdY/c+YM3nvvPUyfPh2XLl3C2LFjMXbsWFy9erWZI3+i+kxFlVKJE7+c5ISCtUgqlQqVlZUQi8WQSCRN/hKLxaisrGz0mZEhQ4YgOjq63vVLS0vh6emJTZs2NWq/jLGG0XtSsXbtWsyYMQPTpk1D9+7dsWXLFrRp0wbbt2/XWn/9+vXw8/PDokWL0K1bN6xevRpeXl56eyCXUglUVlUi7+EjlJQWc0LBWjRDQ8Nme+nDqFGj8Pe//12nidH79+9Hz549IZPJ0K5dO4wYMQKlpaWYOnUqTp48ifXr10MkEkEkEiErKwulpaWYMmUKTE1N4eDggKioqAbFWp9+VCoVIiMj0aFDB8hkMnh6emL//v0AgK1bt0Iul9dI3Pz9/REcHNygmBhrLL0mFQqFAikpKRgxYoS6TCwWY8SIEUhOTtbaJjk5WaM+APj6+tZa//HjxygqKtJ4CenJ37MIEAGmJm04oWCsFcnJycF7772H4OBgXL9+HYmJiRg/fjyICOvXr4ePjw9mzJiBnJwc5OTkwNnZGYsWLcLJkydx4MABHDlyBImJibh48aLO+65PP5GRkdi1axe2bNmCa9euYcGCBZg0aRJOnjyJd955B/n5+Thx4oS6fkFBARISEhAYGNjosWGsIfQ6p+LBgwdQKpWws7PTKLezs8ONGze0tsnNzdVaPzc3V2v9yMhIrFq1SpiAtVCpACNDQ9i1bYuBrw3jhIKxRoiIiEBERIT6fXl5OX799VfMmTNHXZaWlob27dsLsr+cnBxUVVVh/PjxcHFxAQD07NlTvV0ikaBNmzawt7cHAJSUlGDbtm349ttvMXz4cADAzp074eTkpNN+69PP48ePERERgWPHjsHHxwcA4ObmhtOnT+Prr7/Gd999h1GjRuG7775T97F//35YW1tj6NChDRwRxhqnRUzUbEpLly7FwoUL1e+LiooE/eK3tQX+HU/IufMIzp07CtYvYy+jWbNmYeLEier3gYGBmDBhAsaPH68uk8vlgu3P09MTw4cPR8+ePeHr64vXX38db7/9Ntq2bau1/u3bt6FQKNCvXz91mZWVlc6Pla5PPxkZGSgrK8PIkSM12ioUCvTu3RvAk/GZMWMGNm/eDKlUipiYGLz77rsQi/V+ZZu9pPSaVFhbW8PAwAB5eXka5Xl5eepfBs+yt7fXqb5UKoVUKhUmYC0MDADXDqZw7dCryfbB2MvCysoKVlZW6vcymQy2trbo1KlTk+zPwMAAR48exZkzZ3DkyBFs2LABy5cvx9mzZ9GhQ4cm2Wd9lZSUAADi4+PVN9GrVv2ZNmbMGBAR4uPj8eqrr+LUqVP44osvmj1WxqrpNZ2VSCTo06cPjh8/ri5TqVQ4fvy4+nTfs3x8fDTqA8DRo0drrc8YY3URiUQYMGAAVq1ahUuXLkEikSAuLg7Ak88o5VPrxjt27AgjIyOcPXtWXfbw4UPcvHlTp33Wp5/u3btDKpUiOzsbnTp10nhVn201NjbG+PHjERMTgz179sDd3R1eXl4NGgfGhKD3yx8LFy5EUFAQ+vbtC29vb6xbtw6lpaWYNm0aAGDKlClwdHREZGQkAGD+/PkYPHgwoqKiMHr0aMTGxuLChQvYunWrPg+DsVahqqqqRe+npKRE/QsdAGJjYwFAY86UjY1Nrfe+KCkpQUZGhvp9ZmYmUlNTYWVlpXUextmzZ3H8+HG8/vrrsLW1xdmzZ/Hnn3+iW7duAABXV1ecPXsWWVlZMDU1hZWVFaZPn45FixahXbt2sLW1xfLly2tcbti4cSPi4uJq/ACqZmpq+tx+zMzM8PHHH2PBggVQqVQYOHAgCgsLkZSUBHNzcwQFBQF4cgnkzTffxLVr1zBp0qQa+3peLIwJSe9JRUBAAP7880+sWLECubm56NWrFxISEtSTMbOzszX+0Pr374/vvvsOoaGhWLZsGTp37owff/wRPXr00NchMNbiicViGBkZobKyEgqFoln2aWRkpPO1/c8///y5E6szMzPh6uqqdduFCxc0JilWz6cKCgrSer8Lc3Nz/PLLL1i3bh2Kiorg4uKCqKgojBo1CgDw8ccfIygoCN27d0d5eTkyMzOxZs0alJSUYMyYMTAzM8Nf//pXFBYWavT74MED3L59u87jqE8/q1evho2NDSIjI3Hnzh1YWlrCy8sLy5YtU9cZNmwYrKyskJ6ejvfff7/GfuoTC2NCERGR9kdrvqCKiopgYWGBwsJCmJub6zscxgRXUVGBzMxMdOjQAcbGxupyvk03Y6w2tX1uALp9b+r9TAVjrHkYGBjwlzxjrEnxuiPGGGOMCYKTCsYYY4wJgpMKxhhjjAmCkwrGXlAv2RxsxlgjCPV5wUkFYy8YIyMjAEBZWZmeI2GMtRbVS80bO5mbV38w9oIxMDCApaUl7t+/DwBo06YNRCKRnqNijLVUKpUKf/75J9q0aQNDw8alBZxUMPYCqn4WTnViwRhjdRGLxWjfvn2jf4BwUsHYC0gkEsHBwQG2traorKzUdziMsRZOIpEI8nRbTioYe4HxDa8YY82JJ2oyxhhjTBCcVDDGGGNMEJxUMMYYY0wQL92ciuobfBQVFek5EsYYY6zlq/6+rM8Nsl66pKK4uBgA4OzsrOdIGGOMsdajuLgYFhYWddYR0Ut2L1+VSoU//vgDZmZmgt0QqKioCM7Ozrh3795znzXPno/HU1g8nsLi8RQWj6ewmmI8iQjFxcWQy+XPXXb60p2pEIvFcHJyapK+zc3N+Y9CQDyewuLxFBaPp7B4PIUl9Hg+7wxFNZ6oyRhjjDFBcFLBGGOMMUFwUiEAqVSKsLAwSKVSfYfyQuDxFBaPp7B4PIXF4yksfY/nSzdRkzHGGGNNg89UMMYYY0wQnFQwxhhjTBCcVDDGGGNMEJxUMMYYY0wQnFTU06ZNm+Dq6gpjY2P069cP586dq7P+vn370LVrVxgbG6Nnz544ePBgM0XaOugynt988w0GDRqEtm3bom3bthgxYsRzx/9lo+u/z2qxsbEQiUQYO3Zs0wbYyug6no8ePUJISAgcHBwglUrRpUsX/pt/iq7juW7dOri7u0Mmk8HZ2RkLFixARUVFM0Xbsv3yyy8YM2YM5HI5RCIRfvzxx+e2SUxMhJeXF6RSKTp16oTo6OimC5DYc8XGxpJEIqHt27fTtWvXaMaMGWRpaUl5eXla6yclJZGBgQH985//pLS0NAoNDSUjIyP673//28yRt0y6juf7779PmzZtokuXLtH169dp6tSpZGFhQb/99lszR94y6Tqe1TIzM8nR0ZEGDRpE/v7+zRNsK6DreD5+/Jj69u1Lb7zxBp0+fZoyMzMpMTGRUlNTmznylknX8YyJiSGpVEoxMTGUmZlJhw8fJgcHB1qwYEEzR94yHTx4kJYvX04//PADAaC4uLg669+5c4fatGlDCxcupLS0NNqwYQMZGBhQQkJCk8THSUU9eHt7U0hIiPq9UqkkuVxOkZGRWutPnDiRRo8erVHWr18/+stf/tKkcbYWuo7ns6qqqsjMzIx27tzZVCG2Kg0Zz6qqKurfvz/961//oqCgIE4qnqLreH711Vfk5uZGCoWiuUJsVXQdz5CQEBo2bJhG2cKFC2nAgAFNGmdrVJ+kYvHixfTKK69olAUEBJCvr2+TxMSXP55DoVAgJSUFI0aMUJeJxWKMGDECycnJWtskJydr1AcAX1/fWuu/TBoyns8qKytDZWUlrKysmirMVqOh4/m3v/0Ntra2mD59enOE2Wo0ZDx/+ukn+Pj4ICQkBHZ2dujRowciIiKgVCqbK+wWqyHj2b9/f6SkpKgvkdy5cwcHDx7EG2+80Swxv2ia+/vopXugmK4ePHgApVIJOzs7jXI7OzvcuHFDa5vc3Fyt9XNzc5ssztaiIeP5rE8++QRyubzGH8rLqCHjefr0aWzbtg2pqanNEGHr0pDxvHPnDv7zn/8gMDAQBw8eREZGBmbPno3KykqEhYU1R9gtVkPG8/3338eDBw8wcOBAEBGqqqowa9YsLFu2rDlCfuHU9n1UVFSE8vJyyGQyQffHZypYq/LZZ58hNjYWcXFxMDY21nc4rU5xcTEmT56Mb775BtbW1voO54WgUqlga2uLrVu3ok+fPggICMDy5cuxZcsWfYfWKiUmJiIiIgKbN2/GxYsX8cMPPyA+Ph6rV6/Wd2isHvhMxXNYW1vDwMAAeXl5GuV5eXmwt7fX2sbe3l6n+i+Thoxntc8//xyfffYZjh07Bg8Pj6YMs9XQdTxv376NrKwsjBkzRl2mUqkAAIaGhkhPT0fHjh2bNugWrCH/Ph0cHGBkZAQDAwN1Wbdu3ZCbmwuFQgGJRNKkMbdkDRnPTz/9FJMnT8YHH3wAAOjZsydKS0sxc+ZMLF++HGIx/xbWRW3fR+bm5oKfpQD4TMVzSSQS9OnTB8ePH1eXqVQqHD9+HD4+Plrb+Pj4aNQHgKNHj9Za/2XSkPEEgH/+859YvXo1EhIS0Ldv3+YItVXQdTy7du2K//73v0hNTVW/3nrrLQwdOhSpqalwdnZuzvBbnIb8+xwwYAAyMjLUyRkA3Lx5Ew4ODi91QgE0bDzLyspqJA7VCRvxo6p01uzfR00y/fMFExsbS1KplKKjoyktLY1mzpxJlpaWlJubS0REkydPpiVLlqjrJyUlkaGhIX3++ed0/fp1CgsL4yWlT9F1PD/77DOSSCS0f/9+ysnJUb+Ki4v1dQgtiq7j+Sxe/aFJ1/HMzs4mMzMzmjNnDqWnp9PPP/9Mtra29Pe//11fh9Ci6DqeYWFhZGZmRnv27KE7d+7QkSNHqGPHjjRx4kR9HUKLUlxcTJcuXaJLly4RAFq7di1dunSJ7t69S0RES5YsocmTJ6vrVy8pXbRoEV2/fp02bdrES0pbgg0bNlD79u1JIpGQt7c3/frrr+ptgwcPpqCgII3633//PXXp0oUkEgm98sorFB8f38wRt2y6jKeLiwsBqPEKCwtr/sBbKF3/fT6Nk4qadB3PM2fOUL9+/UgqlZKbmxuFh4dTVVVVM0fdcukynpWVlbRy5Urq2LEjGRsbk7OzM82ePZsePnzY/IG3QCdOnND6eVg9hkFBQTR48OAabXr16kUSiYTc3Nxox44dTRYfP/qcMcYYY4LgORWMMcYYEwQnFYwxxhgTBCcVjDHGGBMEJxWMMcYYEwQnFYwxxhgTBCcVjDHGGBMEJxWMMcYYEwQnFYwxxhgTBCcVjL1AoqOjYWlpqe8wGkwkEuHHH3+ss87UqVMxduzYZomHMaYbTioYa2GmTp0KkUhU45WRkaHv0BAdHa2ORywWw8nJCdOmTcP9+/cF6T8nJwejRo0CAGRlZUEkEiE1NVWjzvr16xEdHS3I/mqzcuVK9XEaGBjA2dkZM2fOREFBgU79cALEXjb86HPGWiA/Pz/s2LFDo8zGxkZP0WgyNzdHeno6VCoVLl++jGnTpuGPP/7A4cOHG913bY/DfpqFhUWj91Mfr7zyCo4dOwalUonr168jODgYhYWF2Lt3b7Psn7HWiM9UMNYCSaVS2Nvba7wMDAywdu1a9OzZEyYmJnB2dsbs2bNRUlJSaz+XL1/G0KFDYWZmBnNzc/Tp0wcXLlxQbz99+jQGDRoEmUwGZ2dnzJs3D6WlpXXGJhKJYG9vD7lcjlGjRmHevHk4duwYysvLoVKp8Le//Q1OTk6QSqXo1asXEhIS1G0VCgXmzJkDBwcHGBsbw8XFBZGRkRp9V1/+6NChAwCgd+/eEIlEGDJkCADNX/9bt26FXC7XeOw4APj7+yM4OFj9/sCBA/Dy8oKxsTHc3NywatUqVFVV1XmchoaGsLe3h6OjI0aMGIF33nkHR48eVW9XKpWYPn06OnToAJlMBnd3d6xfv169feXKldi5cycOHDigPuuRmJgIALh37x4mTpwIS0tLWFlZwd/fH1lZWXXGw1hrwEkFY62IWCzGl19+iWvXrmHnzp34z3/+g8WLF9daPzAwEE5OTjh//jxSUlKwZMkSGBkZAQBu374NPz8/TJgwAVeuXMHevXtx+vRpzJkzR6eYZDIZVCoVqqqqsH79ekRFReHzzz/HlStX4Ovri7feegu3bt0CAHz55Zf46aef8P333yM9PR0xMTFwdXXV2u+5c+cAAMeOHUNOTg5++OGHGnXeeecd5Ofn48SJE+qygoICJCQkIDAwEABw6tQpTJkyBfPnz0daWhq+/vprREdHIzw8vN7HmJWVhcOHD0MikajLVCoVnJycsG/fPqSlpWHFihVYtmwZvv/+ewDAxx9/jIkTJ8LPzw85OTnIyclB//79UVlZCV9fX5iZmeHUqVNISkqCqakp/Pz8oFAo6h0TYy1Skz3/lDHWIEFBQWRgYEAmJibq19tvv6217r59+6hdu3bq9zt27CALCwv1ezMzM4qOjtbadvr06TRz5kyNslOnTpFYLKby8nKtbZ7t/+bNm9SlSxfq27cvERHJ5XIKDw/XaPPqq6/S7NmziYho7ty5NGzYMFKpVFr7B0BxcXFERJSZmUkA6NKlSxp1nn1Uu7+/PwUHB6vff/311ySXy0mpVBIR0fDhwykiIkKjj927d5ODg4PWGIiIwsLCSCwWk4mJCRkbG6sfL7127dpa2xARhYSE0IQJE2qNtXrf7u7uGmPw+PFjkslkdPjw4Tr7Z6yl4zkVjLVAQ4cOxVdffaV+b2JiAuDJr/bIyEjcuHEDRUVFqKqqQkVFBcrKytCmTZsa/SxcuBAffPABdu/erT6F37FjRwBPLo1cuXIFMTEx6vpEBJVKhczMTHTr1k1rbIWFhTA1NYVKpUJFRQUGDhyIf/3rXygqKsIff/yBAQMGaNQfMGAALl++DODJpYuRI0fC3d0dfn5+ePPNN/H66683aqwCAwMxY8YMbN68GVKpFDExMXj33XchFovVx5mUlKRxZkKpVNY5bgDg7u6On376CRUVFfj222+RmpqKuXPnatTZtGkTtm/fjuzsbJSXl0OhUKBXr151xnv58mVkZGTAzMxMo7yiogK3b99uwAgw1nJwUsFYC2RiYoJOnTpplGVlZeHNN9/Ehx9+iPDwcFhZWeH06dOYPn06FAqF1i/HlStX4v3330d8fDwOHTqEsLAwxMbGYty4cSgpKcFf/vIXzJs3r0a79u3b1xqbmZkZLl68CLFYDAcHB8hkMgBAUVHRc4/Ly8sLmZmZOHToEI4dO4aJEydixIgR2L9//3Pb1mbMmDEgIsTHx+PVV1/FqVOn8MUXX6i3l5SUYNWqVRg/fnyNtsbGxrX2K5FI1P8PPvvsM4wePRqrVq3C6tWrAQCxsbH4+OOPERUVBR8fH5iZmWHNmjU4e/ZsnfGWlJSgT58+GslctZYyGZexhuKkgrFWIiUlBSqVClFRUepf4dXX7+vSpUsXdOnSBQsWLMB7772HHTt2YNy4cfDy8kJaWlqN5OV5xGKx1jbm5uaQy+VISkrC4MGD1eVJSUnw9vbWqBcQEICAgAC8/fbb8PPzQ0FBAaysrDT6q56/oFQq64zH2NgY48ePR0xMDDIyMuDu7g4vLy/1di8vL6Snp+t8nM8KDQ3FsGHD8OGHH6qPs3///pg9e7a6zrNnGiQSSY34vby8sHfvXtja2sLc3LxRMTHW0vBETcZaiU6dOqGyshIbNmzAnTt3sHv3bmzZsqXW+uXl5ZgzZw4SExNx9+5dJCUl4fz58+rLGp988gnOnDmDOXPmIDU1Fbdu3cKBAwd0nqj5tEWLFuEf//gH9u7di/T0dCxZsgSpqamYP38+AGDt2rXYs2cPbty4gZs3b2Lfvn2wt7fXesMuW1tbyGQyJCQkIC8vD4WFhbXuNzAwEPHx8di+fbt6gma1FStWYNeuXVi1ahWuXbuG69evIzY2FqGhoTodm4+PDzw8PBAREQEA6Ny5My5cuIDDhw/j5s2b+PTTT3H+/HmNNq6urrhy5QrS09Px4MEDVFZWIjAwENbW1vD398epU6eQmZmJxMREzJs3D7/99ptOMTHW4uh7UgdjTJO2yX3V1q5dSw4ODiSTycjX15d27dpFAOjhw4dEpDmR8vHjx/Tuu++Ss7MzSSQSksvlNGfOHI1JmOfOnaORI0eSqakpmZiYkIeHR42Jlk97dqLms5RKJa1cuZIcHR3JyMiIPD096dChQ+rtW7dupV69epGJiQmZm5vT8OHD6eLFi+rteGqiJhHRN998Q87OziQWi2nw4MG1jo9SqSQHBwcCQLdv364RV0JCAvXv359kMhmZm5uTt7c3bd26tdbjCAsLI09Pzxrle/bsIalUStnZ2VRRUUFTp04lCwsLsrS0pA8//JCWLFmi0e7+/fvq8QVAJ06cICKinJwcmjJlCllbW5NUKiU3NzeaMWMGFRYW1hoTY62BiIhIv2kNY4wxxl4EfPmDMcYYY4LgpIIxxhhjguCkgjHGGGOC4KSCMcYYY4LgpIIxxhhjguCkgjHGGGOC4KSCMcYYY4LgpIIxxhhjguCkgjHGGGOC4KSCMcYYY4LgpIIxxhhjgvj/h3AJ8WnbXuMAAAAASUVORK5CYII=", + "text/plain": [ + "<Figure size 600x600 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "model = model_xgb\n", + "label=\"ROC curve of training data\"\n", + "roc(X_train,y_train,model,label)" + ] + }, + { + "cell_type": "code", + "execution_count": 281, + "id": "1199e2e4", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "<Figure size 600x600 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "label=\"ROC curve of testing data\"\n", + "roc(X_test,y_test,model,label)" + ] + }, + { + "cell_type": "markdown", + "id": "becb1b58", + "metadata": {}, + "source": [ + "# Miscellaneous:" + ] + }, + { + "cell_type": "code", + "execution_count": 282, + "id": "b76a44fc", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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HpKk4uJi3XTTTWrdurUSEhI0dOhQff31185zNjQ0KDc3V61bt1bbtm314IMP6uevK/h5a72mpkYPPfSQUlJSFBUVpa5du2rhwoX6+uuvnS/qaNOmjWw2m+644w5Jja+JzcvLU1pammJiYtSnTx+99dZbLtd577331L17d8XExGjQoEEucbrroYceUvfu3dWyZUudf/75mjp1qurq6k7Z7/nnn1dKSopatmypm266SeXl5S7fv/TSS+rVq5eio6PVs2dPzZs3z+NYADQNiRyWERMTo9raWufndevWqbCwUGvXrtXq1atVV1en7OxsxcXFadOmTfroo48UGxur66+/3nncM888o8WLF+vll1/W5s2bdezYMS1fvvys17399tv1P//zP5o7d652796t559/XrGxsUpJSdHbb78tSSosLNThw4f13HPPSZLy8vK0ZMkSLViwQP/4xz80adIk3XbbbdqwYYOkxj84hg8friFDhmjXrl2688479fDDD3v830lcXJwWL16sL7/8Us8995xefPFFzZ4922Wfffv26Y033tCqVau0Zs0affrpp7r33nud37/22muaNm2aHn/8ce3evVtPPPGEpk6dqldeecXjeAA0gQGEoJycHGPo0KGGYRiGw+Ew1q5da0RFRRmTJ092fp+YmGjU1NQ4j3n11VeNHj16GA6HwzlWU1NjxMTEGO+//75hGIbRsWNH46mnnnJ+X1dXZ3Tq1Ml5LcMwjCuvvNK47777DMMwjMLCQkOSsXbt2tPG+eGHHxqSjOPHjzvHqqurjZYtWxoff/yxy76jR482br31VsMwDGPKlClGenq6y/cPPfTQKef6OUnG8uXLz/j9008/bWRkZDg/T58+3QgPDze++eYb59hf//pXIywszDh8+LBhGIbxi1/8wli6dKnLeR577DEjMzPTMAzDKCoqMiQZn3766RmvC6DpmCNHyFq9erViY2NVV1cnh8Oh3/3ud3r00Ued3/fu3dtlXvyzzz7Tvn37FBcX53Ke6upq7d+/X+Xl5Tp8+LDLO9gjIiLUv3//U9rrJ+3atUvh4eG68sor3Y573759+uGHH3Tttde6jNfW1qpfv36SpN27d5/yLvjMzEy3r3HS66+/rrlz52r//v2qrKxUfX294uPjXfZJTU3Veeed53Idh8OhwsJCxcXFaf/+/Ro9erTGjBnj3Ke+vl52u93jeAB4jkSOkDVo0CDNnz9fkZGRSk5OVkSE6697q1atXD5XVlYqIyNDr7322innat++fZNiiImJ8fiYyspKSdK7777rkkClxnl/b9myZYtGjhypGTNmKDs7W3a7XcuWLdMzzzzjcawvvvjiKX9YhIeHey1WAGdGIkfIatWqlbp27er2/hdffLFef/11dejQ4ZSq9KSOHTtq27ZtuuKKKyQ1Vp4FBQW6+OKLT7t/79695XA4tGHDBmVlZZ3y/cmOQENDg3MsPT1dUVFROnjw4Bkr+V69ejkX7p20devWc/+Q/8fHH3+szp07649//KNz7J///Ocp+x08eFCHDh1ScnKy8zphYWHq0aOHEhMTlZycrAMHDmjkyJEeXR+Ad7DYDfjJyJEj1a5dOw0dOlSbNm1SUVGR1q9frwkTJuibb76RJN1333168skntWLFCu3Zs0f33nvvWe8B79Kli3JycvSHP/xBK1ascJ7zjTfekCR17txZNptNq1ev1tGjR1VZWam4uDhNnjxZkyZN0iuvvKL9+/dr586d+tOf/uRcQHb33Xdr7969euCBB1RYWKilS5dq8eLFHv283bp108GDB7Vs2TLt379fc+fOPe3CvejoaOXk5Oizzz7Tpk2bNGHCBN10001KSkqSJM2YMUN5eXmaO3euvvrqK33++edatGiRnn32WY/iAdA0JHLgJy1bttTGjRuVmpqq4cOHq1evXho9erSqq6udFfr999+v3//+98rJyVFmZqbi4uL07//+72c97/z58/Wb3/xG9957r3r27KkxY8aoqqpKknTeeedpxowZevjhh5WYmKhx48ZJkh577DFNnTpVeXl56tWrl66//nq9++67SktLk9Q4b/32229rxYoV6tOnjxYsWKAnnnjCo5/3xhtv1KRJkzRu3Dj17dtXH3/8saZOnXrKfl27dtXw4cN1ww036LrrrtNFF13kcnvZnXfeqZdeekmLFi1S7969deWVV2rx4sXOWAH4ls040yodAAAQ8KjIAQAIYiRyAACCGIkcAIAgRiIHACCIkcgBAAhiJHIAAIIYiRwAgCBGIgcAIIiRyAEACGIkcgAAghiJHACAIPb/AfP5qqCsM/KTAAAAAElFTkSuQmCC", + "text/plain": [ + "<Figure size 640x480 with 2 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#######CONFUSION MATRIX ###########\n", + "from sklearn import metrics\n", + "y_test_pred_xgb = model_xgb.predict(X_test)\n", + "confusion_matrix_test = metrics.confusion_matrix(y_test, y_test_pred_xgb)\n", + "cm_display = metrics.ConfusionMatrixDisplay(confusion_matrix = confusion_matrix_test)\n", + "cm_display.plot()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 283, + "id": "416c4ba4", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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+Lut9erqaj388MNKSUmR3W5X9+7dtXz5cn3xxReu93u3bt1aNptNd999t6T6r8vl5OSoa9euiomJUf/+/fXqq6+63eett95Sz549FRMToyFDhrjF6amHH35YPXv2VIsWLdStWzfNnj1btbW1DY577rnnlJKSohYtWmjMmDEqKytz2//iiy+qT58+io6OVu/evbVkyRKvYwHQOCRyWEZMTIxqampcv7ds2aLCwkJt3rxZGzduVG1trbKyshQXF6ft27frgw8+UGxsrG699VbXeU8//bTy8vL00ksv6f3339fp06e1bt26S9735z//uf70pz9p8eLF2r9/v5577jnFxsYqJSVFr732miSpsLBQJ0+e1LPPPitJysnJ0cqVK7Vs2TL97W9/07Rp03TXXXcpPz9fUv1/cIwaNUrDhw/Xvn37dM8992jmzJle/28SFxenvLw8ffbZZ3r22Wf1wgsvaOHChW7HHDp0SK+88oo2bNigTZs2ae/evbrvvvtc+1etWqU5c+boscce0/79+/X4449r9uzZ+sMf/uB1PAAawQDCUHZ2tjFixAjDMAzD6XQamzdvNux2uzFjxgzX/sTERKO6utp1zh//+EejV69ehtPpdG2rrq42YmJijHfeeccwDMPo0KGD8eSTT7r219bWGp06dXLdyzAM46abbjKmTJliGIZhFBYWGpKMzZs3XzDO9957z5BkfPPNN65tVVVVRosWLYwPP/zQ7djx48cbd955p2EYhjFr1iwjLS3Nbf/DDz/c4FrfJclYt27dRfc/9dRTRnp6uuv33LlzjcjISOP48eOubW+//bYRERFhnDx50jAMw7jsssuM1atXu13nkUceMTIyMgzDMIyjR48akoy9e/de9L4AGo85coStjRs3KjY2VrW1tXI6nfrZz36mefPmufb37dvXbV78448/1qFDhxQXF+d2naqqKh0+fFhlZWU6efKk26dbmzVrpquuuqpBe/28ffv2KTIyUjfddJPHcR86dEhnz57VzTff7La9pqZGV1xxhSRp//79DT4hm5GR4fE9znv55Ze1ePFiHT58WBUVFTp37pwcDofbMampqerYsaPbfZxOpwoLCxUXF6fDhw9r/PjxmjBhguuYc+fOKT4+3ut4AHiPRI6wNWTIEC1dulRRUVFKTk5Ws2bu/7i3bNnS7XdFRYXS09O1atWqBtdq165do2KIiYnx+pyKigpJ0ptvvumWQKX6eX9f2bFjh8aOHav58+crKytL8fHxWrNmjZ5++mmvY33hhRca/IdFZGSkz2IFcHEkcoStli1bqnv37h4ff+WVV+rll19W+/btG1Sl53Xo0EG7du3SjTfeKKm+8iwoKNCVV155weP79u0rp9Op/Px8ZWZmNth/viNQV1fn2paWlia73a5jx45dtJLv06ePa+HeeTt37vz+P/LffPjhh+rcubN+85vfuLb9/e9/b3DcsWPHdOLECSUnJ7vuExERoV69eikxMVHJyck6cuSIxo4d69X9AfgGi92Afxo7dqzatm2rESNGaPv27Tp69Ki2bt2q+++/X8ePH5ckTZkyRU888YTWr1+vAwcO6L777rvkM+BdunRRdna2fvGLX2j9+vWua77yyiuSpM6dO8tms2njxo366quvVFFRobi4OM2YMUPTpk3TH/7wBx0+fFh79uzR7373O9cCsl/96lc6ePCgHnzwQRUWFmr16tXKy8vz6u/t0aOHjh07pjVr1ujw4cNavHjxBRfuRUdHKzs7Wx9//LG2b9+u+++/X2PGjFFSUpIkaf78+crJydHixYv1+eef65NPPtGKFSv0zDPPeBUPgMYhkQP/1KJFC23btk2pqakaNWqU+vTpo/Hjx6uqqspVoT/wwAP6r//6L2VnZysjI0NxcXH68Y9/fMnrLl26VD/5yU903333qXfv3powYYIqKyslSR07dtT8+fM1c+ZMJSYmatKkSZKkRx55RLNnz1ZOTo769OmjW2+9VW+++aa6du0qqX7e+rXXXtP69evVv39/LVu2TI8//rhXf+9tt92madOmadKkSRowYIA+/PBDzZ49u8Fx3bt316hRo/SjH/1It9xyi/r16+f2eNk999yjF198UStWrFDfvn110003KS8vzxUrAP+yGRdbpQMAAIIeFTkAACGMRA4AQAgjkQMAEMJI5AAAhDASOQAAIYxEDgBACCORAwAQwkjkAACEMBI5AAAhjEQOAEAII5EDABDCSOQAAISw/w9Qu6DsTH1cJgAAAABJRU5ErkJggg==", + "text/plain": [ + "<Figure size 640x480 with 2 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#######CONFUSION MATRIX ###########\n", + "y_train_pred_xgb = model_xgb.predict(X_train)\n", + "confusion_matrix_train = metrics.confusion_matrix(y_train, y_train_pred_xgb)\n", + "cm_display = metrics.ConfusionMatrixDisplay(confusion_matrix = confusion_matrix_train)\n", + "cm_display.plot()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "bee03388", + "metadata": {}, + "source": [ + "# Feature importance" + ] + }, + { + "cell_type": "code", + "execution_count": 284, + "id": "6688e037", + "metadata": {}, + "outputs": [], + "source": [ + "# for important features:\n", + "important_feat = model_xgb.feature_importances_\n", + "#get indices of those important features\n", + "idx = important_feat.argsort(kind= \"quicksort\")\n", + "idx= idx[::-1][:50]" + ] + }, + { + "cell_type": "code", + "execution_count": 285, + "id": "4e6a7ea1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 66, 65, 84, 94, 140, 32, 169, 137, 23, 212, 10, 166, 13,\n", + " 36, 56, 126, 48, 57, 42, 208, 37, 113, 29, 160, 22, 96,\n", + " 162, 229, 189, 101, 104, 127, 135, 21, 79, 78, 77, 76, 75,\n", + " 74, 73, 72, 202, 71, 69, 68, 67, 64, 63, 62])" + ] + }, + "execution_count": 285, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "idx" + ] + }, + { + "cell_type": "code", + "execution_count": 286, + "id": "f2101fe1", + "metadata": {}, + "outputs": [], + "source": [ + "df1 = X.T" + ] + }, + { + "cell_type": "code", + "execution_count": 287, + "id": "2cbf1166", + "metadata": {}, + "outputs": [], + "source": [ + "top_met = df1.iloc[idx]" + ] + }, + { + "cell_type": "code", + "execution_count": 288, + "id": "2370b2df", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['hsa-miR-18b-5p', 'hsa-miR-18a-5p', 'hsa-miR-21-5p', 'hsa-miR-25-3p',\n", + " 'hsa-miR-424-5p', 'hsa-miR-130b-3p', 'hsa-miR-455-3p', 'hsa-miR-378i',\n", + " 'hsa-miR-1268a', 'hsa-miR-93-5p', 'hsa-miR-106b-5p', 'hsa-miR-451a',\n", + " 'hsa-miR-10b-5p', 'hsa-miR-140-3p', 'hsa-miR-15b-5p', 'hsa-miR-3651',\n", + " 'hsa-miR-150-5p', 'hsa-miR-16-2-3p', 'hsa-miR-145-5p', 'hsa-miR-7-5p',\n", + " 'hsa-miR-140-5p', 'hsa-miR-3198', 'hsa-miR-1290', 'hsa-miR-4465',\n", + " 'hsa-miR-126-3p', 'hsa-miR-26b-5p', 'hsa-miR-4497', 'mr_1',\n", + " 'hsa-miR-497-5p', 'hsa-miR-29c-3p', 'hsa-miR-30a-5p', 'hsa-miR-3656',\n", + " 'hsa-miR-378a-3p', 'hsa-miR-125b-5p', 'hsa-miR-200c-3p',\n", + " 'hsa-miR-200b-3p', 'hsa-miR-19b-3p', 'hsa-miR-19a-3p',\n", + " 'hsa-miR-199a-5p', 'hsa-miR-199a-3p', 'hsa-miR-1973', 'hsa-miR-197-5p',\n", + " 'hsa-miR-642a-3p', 'hsa-miR-197-3p', 'hsa-miR-193b-3p',\n", + " 'hsa-miR-193a-5p', 'hsa-miR-1915-3p', 'hsa-miR-188-5p',\n", + " 'hsa-miR-185-5p', 'hsa-miR-181b-5p'],\n", + " dtype='object')" + ] + }, + "execution_count": 288, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_met.index" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c9d668aa", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "03b3840d", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6eddc5ba", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} -- GitLab