From 06b862b1a1c381ee782458dda6fe0521bb5f7f52 Mon Sep 17 00:00:00 2001 From: Felix Mucha <3016498@stud.hs-mannheim.de> Date: Wed, 12 Jun 2024 16:53:37 +0200 Subject: [PATCH 1/2] readme finished --- README.md | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f37305d..1abe34b 100644 --- a/README.md +++ b/README.md @@ -145,6 +145,8 @@ The colour scale represents the correlation between the two types of categorizat - Blue (low) - Red (high) +Notably, the age group between 60-70 in SB shows a noticeably higher correlation and will therefore be considered in our hypothesis analysis. The other groups align mostly as expected, with a slight increase in correlation observed with age. + The exact procedure for creating the matrix can be found in the notebook [demographic_plots.ipynb](notebooks/demographic_plots.ipynb). ![Alt-Text](readme_data/Korrelationsmatrix.png) @@ -192,17 +194,32 @@ With those Classifiers, the hypothesis can be proven, that a classifier is able The sample size in the study conducted may also play a role in the significance of the frequency. ### Noise reduction -Noise suppression was performed on the existing ECG data. A three-stage noise reduction was performed to reduce the noise in the ECG signals. First, a Butterworth filter was applied to the signals to remove the high frequency noise. Then a Loess filter was applied to the signals to remove the low frequency noise. Finally, a non-local-means filter was applied to the signals to remove the remaining noise. +Noise suppression was performed on the existing ECG data. A three-stage noise reduction was performed to reduce the noise in the ECG signals. First, a Butterworth filter was applied to the signals to remove the high frequency noise. Then a Loess filter was applied to the signals to remove the low frequency noise. Finally, a non-local-means filter was applied to the signals to remove the remaining noise. For noise reduction, the built-in noise reduction function from NeuroKit2 `ecg_clean` was utilized for all data due to considerations of time performance. How the noise reduction was performed in detail can be seen in the following notebook: [noise_reduction.ipynb](notebooks/noise_reduction.ipynb) ### Features -The detection ability of the NeuroKit2 library is tested to detect features in the ECG dataset. Those features are important for the training of the model in order to detect the different diagnostic groups. The features are generated using the NeuroKit2 library. +The detection ability of the NeuroKit2 library is tested to detect features in the ECG dataset. Those features are important for the training of the model in order to detect the different diagnostic groups. The features are detected using the NeuroKit2 library. + +For the training, the features considered are: +- ventricular rate +- atrial rate +- T axis +- R axis +- Q peak amplitude +- QT length +- QRS duration +- QRS count +- gender +- age + +The selection of features was informed by an analysis presented in a paper (source: https://rdcu.be/dH2jI, last accessed: 15.05.2024), where various feature sets were evaluated. These features were chosen for their optimal balance between performance and significance. The exact process can be found in the notebook: [features_detection.ipynb](notebooks/features_detection.ipynb). ### ML-models -First, the grid was tested to find the best model which was then trained to identify the best hyperparameters out of it. That way, an accuracy of 83 % was achieved with the XGBoost classifier. The Gradient Boosting Tree Classifier had an accuracy of 82%. +For machine learning, the initial step involved tailoring the features for the models, followed by employing a grid search to identify the best hyperparameters. This approach led to the highest performance being achieved by the Extreme Gradient Boosting (XGBoost) model, which attained an accuracy of 83%. Additionally, a Gradient Boosting Tree model was evaluated using the same procedure and achieved an accuracy of 82%. The selection of these models was influenced by the team's own experience and the performance metrics highlighted in the paper (source: https://rdcu.be/dH2jI, last accessed: 15.05.2024). The models have also been evaluated, and it is noticeable that some features, like the ventricular rate, are shown to be more important than other features. +
The detailed procedures can be found in the following notebooks:
[ml_xgboost.ipynb](notebooks/ml_xgboost.ipynb)
[ml_grad_boost_tree.ipynb](notebooks/ml_grad_boost_tree.ipynb) From 2f89518bbf1ce661fc504f41fecb4ad80b65749e Mon Sep 17 00:00:00 2001 From: Felix Mucha <3016498@stud.hs-mannheim.de> Date: Wed, 12 Jun 2024 17:19:27 +0200 Subject: [PATCH 2/2] added f1 score --- notebooks/ml_grad_boost_tree.ipynb | 74 +++++++++++++++++++----------- notebooks/ml_xgboost.ipynb | 63 +++++++++++++++---------- 2 files changed, 85 insertions(+), 52 deletions(-) diff --git a/notebooks/ml_grad_boost_tree.ipynb b/notebooks/ml_grad_boost_tree.ipynb index 341b439..fcddf8f 100644 --- a/notebooks/ml_grad_boost_tree.ipynb +++ b/notebooks/ml_grad_boost_tree.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -21,7 +21,7 @@ "import matplotlib.pyplot as plt\n", "import xgboost as xgb\n", "from sklearn.model_selection import GridSearchCV\n", - "from sklearn.metrics import confusion_matrix\n", + "from sklearn.metrics import confusion_matrix, f1_score\n", "from sklearn.ensemble import GradientBoostingClassifier\n", "from sklearn.impute import SimpleImputer\n", "from sklearn.metrics import accuracy_score\n", @@ -39,7 +39,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -63,7 +63,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -138,7 +138,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -151,7 +151,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -171,29 +171,29 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "CPU times: total: 3min 28s\n", - "Wall time: 4min 16s\n" + "CPU times: total: 2min 49s\n", + "Wall time: 4min 28s\n" ] }, { "data": { "text/html": [ - "
GridSearchCV(cv=3, estimator=GradientBoostingClassifier(),\n",
+       "
GridSearchCV(cv=3, estimator=GradientBoostingClassifier(),\n",
        "             param_grid={'learning_rate': [0.1, 0.2, 0.3],\n",
        "                         'max_depth': [1, 3, 5],\n",
        "                         'n_estimators': [100, 200, 300]},\n",
-       "             scoring='accuracy')
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
GradientBoostingClassifier()
GradientBoostingClassifier()
" ], "text/plain": [ "GridSearchCV(cv=3, estimator=GradientBoostingClassifier(),\n", @@ -203,7 +203,7 @@ " scoring='accuracy')" ] }, - "execution_count": 29, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -223,7 +223,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -231,7 +231,7 @@ "output_type": "stream", "text": [ "Best parameters: {'learning_rate': 0.1, 'max_depth': 3, 'n_estimators': 100}\n", - "Best score: 0.796973125095374\n" + "Best score: 0.7969733696438982\n" ] } ], @@ -251,16 +251,16 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "['../ml_models/best_gbt_model_20240611203442.joblib']" + "['../ml_models/best_gbt_model_20240612171757.joblib']" ] }, - "execution_count": 34, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -290,7 +290,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -304,19 +304,19 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ - "
GradientBoostingClassifier()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + "
GradientBoostingClassifier()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "GradientBoostingClassifier()" ] }, - "execution_count": 41, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -330,7 +330,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -356,7 +356,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 19, "metadata": {}, "outputs": [ { @@ -388,12 +388,12 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 20, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAJOCAYAAACqS2TfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABfZUlEQVR4nO3deVhUdeP+8XtAAUFZXEAlYhGXzH1Nc8tIs8XM7+OSlkppPW2aqKmVuCamqeTjXppZVpqpLZppZJuZ5kYuuS+oCe4gmIpwfn/4c2oCDZDjYeD9uq65LvjMOTP3HHHgnnPO59gMwzAEAAAAAADynYvVAQAAAAAAKKwo3QAAAAAAmITSDQAAAACASSjdAAAAAACYhNINAAAAAIBJKN0AAAAAAJiE0g0AAAAAgEko3QAAAAAAmITSDQAAAACASSjdAAAAAACYhNINACjQ5s2bJ5vNlu1tyJAhpjznzz//rBEjRujcuXOmPP7NuLY9Nm7caHWUPJs+fbrmzZtndQwAAG6JYlYHAAAgJ0aNGqXQ0FCHsRo1apjyXD///LNGjhypXr16ydfX15TnKMqmT5+usmXLqlevXlZHAQDAdJRuAIBTaNeunRo0aGB1jJuSlpYmLy8vq2NY5sKFC/L09LQ6BgAAtxSHlwMACoWvvvpKzZs3l5eXl0qVKqUHH3xQO3bscFjmt99+U69evRQWFiYPDw+VL19eTz75pE6fPm1fZsSIERo0aJAkKTQ01H4o+6FDh3To0CHZbLZsD4222WwaMWKEw+PYbDbt3LlT3bp1k5+fn5o1a2a//4MPPlD9+vVVokQJlS5dWl27dtWRI0fy9Np79eqlkiVLKiEhQQ899JBKliypwMBATZs2TZK0bds2tW7dWl5eXgoODtaHH37osP61Q9Z/+OEHPfPMMypTpoy8vb3Vo0cPnT17NsvzTZ8+XXfeeafc3d1VsWJFPf/881kOxW/VqpVq1KihTZs2qUWLFvL09NQrr7yikJAQ7dixQ99//71927Zq1UqSdObMGQ0cOFA1a9ZUyZIl5e3trXbt2ik+Pt7hsb/77jvZbDYtWrRIr7/+um677TZ5eHjo3nvv1b59+7LkXb9+vR544AH5+fnJy8tLtWrV0ltvveWwzK5du/Sf//xHpUuXloeHhxo0aKDPP//cYZn09HSNHDlSlStXloeHh8qUKaNmzZpp9erVOfp3AgAUTezpBgA4heTkZJ06dcphrGzZspKk999/Xz179lTbtm31xhtv6MKFC5oxY4aaNWumLVu2KCQkRJK0evVqHThwQJGRkSpfvrx27Nih2bNna8eOHfrll19ks9nUsWNH7dmzRx999JEmT55sf45y5crp5MmTuc7dqVMnVa5cWWPHjpVhGJKk119/XcOGDVPnzp3Vu3dvnTx5Uv/73//UokULbdmyJU+HtGdkZKhdu3Zq0aKFxo8frwULFuiFF16Ql5eXXn31VXXv3l0dO3bUzJkz1aNHDzVp0iTL4fovvPCCfH19NWLECO3evVszZszQ4cOH7SVXuvphwsiRIxUREaFnn33Wvtyvv/6qtWvXqnjx4vbHO336tNq1a6euXbvq8ccfV0BAgFq1aqUXX3xRJUuW1KuvvipJCggIkCQdOHBAy5YtU6dOnRQaGqqkpCTNmjVLLVu21M6dO1WxYkWHvOPGjZOLi4sGDhyo5ORkjR8/Xt27d9f69evty6xevVoPPfSQKlSooH79+ql8+fL6/fff9eWXX6pfv36SpB07dujuu+9WYGCghgwZIi8vLy1atEgdOnTQp59+qkcffdT+2mNiYtS7d281atRIKSkp2rhxozZv3qz77rsv1/9mAIAiwgAAoAB79913DUnZ3gzDMM6fP2/4+voaffr0cVgvMTHR8PHxcRi/cOFClsf/6KOPDEnGDz/8YB+bMGGCIck4ePCgw7IHDx40JBnvvvtulseRZAwfPtz+/fDhww1JxmOPPeaw3KFDhwxXV1fj9ddfdxjftm2bUaxYsSzj19sev/76q32sZ8+ehiRj7Nix9rGzZ88aJUqUMGw2m/Hxxx/bx3ft2pUl67XHrF+/vnH58mX7+Pjx4w1JxmeffWYYhmGcOHHCcHNzM9q0aWNkZGTYl5s6daohyZg7d659rGXLloYkY+bMmVlew5133mm0bNkyy/jFixcdHtcwrm5zd3d3Y9SoUfaxNWvWGJKMO+64w7h06ZJ9/K233jIkGdu2bTMMwzCuXLlihIaGGsHBwcbZs2cdHjczM9P+9b333mvUrFnTuHjxosP9TZs2NSpXrmwfq127tvHggw9myQ0AwI1weDkAwClMmzZNq1evdrhJV/dknjt3To899phOnTplv7m6uqpx48Zas2aN/TFKlChh//rixYs6deqU7rrrLknS5s2bTcn93//+1+H7JUuWKDMzU507d3bIW758eVWuXNkhb2717t3b/rWvr6+qVq0qLy8vde7c2T5etWpV+fr66sCBA1nWf/rppx32VD/77LMqVqyYVqxYIUn65ptvdPnyZb300ktycfnrT4g+ffrI29tby5cvd3g8d3d3RUZG5ji/u7u7/XEzMjJ0+vRplSxZUlWrVs323ycyMlJubm7275s3by5J9te2ZcsWHTx4UC+99FKWoweu7bk/c+aMvv32W3Xu3Fnnz5+3/3ucPn1abdu21d69e3Xs2DFJV7fpjh07tHfv3hy/JgAAOLwcAOAUGjVqlO1EatcKUOvWrbNdz9vb2/71mTNnNHLkSH388cc6ceKEw3LJycn5mPYv/zyEe+/evTIMQ5UrV852+b+X3tzw8PBQuXLlHMZ8fHx022232Qvm38ezO1f7n5lKliypChUq6NChQ5Kkw4cPS7pa3P/Ozc1NYWFh9vuvCQwMdCjF/yYzM1NvvfWWpk+froMHDyojI8N+X5kyZbIsf/vttzt87+fnJ0n217Z//35JN57lft++fTIMQ8OGDdOwYcOyXebEiRMKDAzUqFGj9Mgjj6hKlSqqUaOG7r//fj3xxBOqVatWjl8jAKDooXQDAJxaZmampKvndZcvXz7L/cWK/fWrrnPnzvr55581aNAg1alTRyVLllRmZqbuv/9+++PcyD/L6zV/L4f/9Pe969fy2mw2ffXVV3J1dc2yfMmSJf81R3aye6wbjRv///xyM/3ztf+bsWPHatiwYXryySc1evRolS5dWi4uLnrppZey/ffJj9d27XEHDhyotm3bZrtMeHi4JKlFixbav3+/PvvsM61atUrvvPOOJk+erJkzZzocZQAAwN9RugEATq1SpUqSJH9/f0VERFx3ubNnzyouLk4jR45UdHS0fTy7Q4WvV66v7Un950zd/9zD+295DcNQaGioqlSpkuP1boW9e/fqnnvusX+fmpqq48eP64EHHpAkBQcHS5J2796tsLAw+3KXL1/WwYMHb7j9/+5623fx4sW65557NGfOHIfxc+fO2Se0y41rPxvbt2+/brZrr6N48eI5yl+6dGlFRkYqMjJSqampatGihUaMGEHpBgBcF+d0AwCcWtu2beXt7a2xY8cqPT09y/3XZhy/tlf0n3tBY2Njs6xz7Vra/yzX3t7eKlu2rH74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283NTfXr11dcXJx9LDMzU3FxcWrSpEm269x9993at2+fMjMz7WN79uxRhQoV5Obmlu067u7u8vb2drgBAAAAAOBscn14eVRUlN5++2299957+v333/Xss88qLS3NPpt5jx49NHToUPvyzz77rM6cOaN+/fppz549Wr58ucaOHavnn38+/14FAAAAAAAFUK4vGdalSxedPHlS0dHRSkxMVJ06dbRy5Ur75GoJCQlycfmrywcFBenrr79W//79VatWLQUGBqpfv34aPHhw/r0KAAAAAAAKIJthGIbVIf5NSkqKfHx8lJycXCgONQ8ZstzqCAXKoXEPWh0BAAAAAHIlpz3V9NnLAQAAAAAoqijdAAAAAACYhNINAAAAAIBJKN0AAAAAAJiE0g0AAAAAgEko3QAAAAAAmITSDQAAAACASSjdAAAAAACYhNINAAAAAIBJKN0AAAAAAJiE0g0AAAAAgEko3QAAAAAAmITSDQAAAACASSjdAAAAAACYhNINAAAAAIBJKN0AAAAAAJiE0g0AAAAAgEko3QAAAAAAmITSDQAAAACASSjdAAAAAACYhNINAAAAAIBJKN0AAAAAAJiE0g0AAAAAgEko3QAAAAAAmITSDQAAAACASSjdAAAAAACYhNINAAAAAIBJKN0AAAAAAJiE0g0AAAAAgEko3QAAAAAAmITSDQAAAACASSjdAAAAAACYhNINAAAAAIBJKN0AAAAAAJiE0g0AAAAAgEko3QAAAAAAmITSDQAAAACASSjdAAAAAACYhNINAAAAAIBJKN0AAAAAAJiE0g0AAAAAgEko3QAAAAAAmITSDQAAAACASSjdAAAAAACYhNINAAAAAIBJKN0AAAAAAJgkT6V72rRpCgkJkYeHhxo3bqwNGzZcd9l58+bJZrM53Dw8PPIcGAAAAAAAZ5Hr0r1w4UJFRUVp+PDh2rx5s2rXrq22bdvqxIkT113H29tbx48ft98OHz58U6EBAAAAAHAGuS7dkyZNUp8+fRQZGanq1atr5syZ8vT01Ny5c6+7js1mU/ny5e23gICAmwoNAAAAAIAzyFXpvnz5sjZt2qSIiIi/HsDFRREREVq3bt1110tNTVVwcLCCgoL0yCOPaMeOHXlPDAAAAACAk8hV6T516pQyMjKy7KkOCAhQYmJitutUrVpVc+fO1WeffaYPPvhAmZmZatq0qY4ePXrd57l06ZJSUlIcbgAAAAAAOBvTZy9v0qSJevTooTp16qhly5ZasmSJypUrp1mzZl13nZiYGPn4+NhvQUFBZscEAAAAACDf5ap0ly1bVq6urkpKSnIYT0pKUvny5XP0GMWLF1fdunW1b9++6y4zdOhQJScn229HjhzJTUwAAAAAAAqEXJVuNzc31a9fX3FxcfaxzMxMxcXFqUmTJjl6jIyMDG3btk0VKlS47jLu7u7y9vZ2uAEAAAAA4GyK5XaFqKgo9ezZUw0aNFCjRo0UGxurtLQ0RUZGSpJ69OihwMBAxcTESJJGjRqlu+66S+Hh4Tp37pwmTJigw4cPq3fv3vn7SgAAAAAAKGByXbq7dOmikydPKjo6WomJiapTp45Wrlxpn1wtISFBLi5/7UA/e/as+vTpo8TERPn5+al+/fr6+eefVb169fx7FQAAAAAAFEA2wzAMq0P8m5SUFPn4+Cg5OblQHGoeMmS51REKlEPjHrQ6AgAAAADkSk57qumzlwMAAAAAUFRRugEAAAAAMAmlGwAAAAAAk1C6AQAAAAAwCaUbAAAAAACTULoBAAAAADAJpRsAAAAAAJNQugEAAAAAMAmlGwAAAAAAk1C6AQAAAAAwCaUbAAAAAACTULoBAAAAADAJpRsAAAAAAJNQugEAAAAAMAmlGwAAAAAAk1C6AQAAAAAwCaUbAAAAAACTULoBAAAAADAJpRsAAAAAAJNQugEAAAAAMAmlGwAAAAAAk1C6AQAAAAAwCaUbAAAAAACTULoBAAAAADAJpRsAAAAAAJNQugEAAAAAMAmlGwAAAAAAk1C6AQAAAAAwCaUbAAAAAACTULoBAAAAADAJpRsAAAAAAJNQugEAAAAAMAmlGwAAAAAAk1C6AQAAAAAwCaUbAAAAAACTULoBAAAAADAJpRsAAAAAAJNQugEAAAAAMAmlGwAAAAAAk1C6AQAAAAAwCaUbAAAAAACTULoBAAAAADAJpRsAAAAAAJNQugEAAAAAMAmlGwAAAAAAk1C6AQAAAAAwSZ5K97Rp0xQSEiIPDw81btxYGzZsyNF6H3/8sWw2mzp06JCXpwUAAAAAwKnkunQvXLhQUVFRGj58uDZv3qzatWurbdu2OnHixA3XO3TokAYOHKjmzZvnOSwAAAAAAM4k16V70qRJ6tOnjyIjI1W9enXNnDlTnp6emjt37nXXycjIUPfu3TVy5EiFhYXdVGAAAAAAAJxFrkr35cuXtWnTJkVERPz1AC4uioiI0Lp166673qhRo+Tv76+nnnoqR89z6dIlpaSkONwAAAAAAHA2uSrdp06dUkZGhgICAhzGAwIClJiYmO06P/30k+bMmaO33347x88TExMjHx8f+y0oKCg3MQEAAAAAKBBMnb38/PnzeuKJJ/T222+rbNmyOV5v6NChSk5Ott+OHDliYkoAAAAAAMxRLDcLly1bVq6urkpKSnIYT0pKUvny5bMsv3//fh06dEgPP/ywfSwzM/PqExcrpt27d6tSpUpZ1nN3d5e7u3tuogEAAAAAUODkak+3m5ub6tevr7i4OPtYZmam4uLi1KRJkyzLV6tWTdu2bdPWrVvtt/bt2+uee+7R1q1bOWwcAAAAAFCo5WpPtyRFRUWpZ8+eatCggRo1aqTY2FilpaUpMjJSktSjRw8FBgYqJiZGHh4eqlGjhsP6vr6+kpRlHAAAAACAwibXpbtLly46efKkoqOjlZiYqDp16mjlypX2ydUSEhLk4mLqqeIAAAAAADgFm2EYhtUh/k1KSop8fHyUnJwsb29vq+PctJAhy62OUKAcGveg1REAAAAAIFdy2lPZJQ0AAAAAgEko3QAAAAAAmITSDQAAAACASSjdAAAAAACYhNINAAAAAIBJKN0AAAAAAJiE0g0AAAAAgEko3QAAAAAAmITSDQAAAACASSjdAAAAAACYhNINAAAAAIBJKN0AAAAAAJiE0g0AAAAAgEko3QAAAAAAmITSDQAAAACASSjdAAAAAACYhNINAAAAAIBJKN0AAAAAAJiE0g0AAAAAgEko3QAAAAAAmITSDQAAAACASSjdAAAAAACYhNINAAAAAIBJKN0AAAAAAJiE0g0AAAAAgEko3QAAAAAAmITSDQAAAACASSjdAAAAAACYhNINAAAAAIBJKN0AAAAAAJiE0g0AAAAAgEko3QAAAAAAmITSDQAAAACASSjdAAAAAACYhNINAAAAAIBJKN0AAAAAAJiE0g0AAAAAgEko3QAAAAAAmITSDQAAAACASSjdAAAAAACYhNINAAAAAIBJKN0AAAAAAJiE0g0AAAAAgEko3QAAAAAAmITSDQAAAACASfJUuqdNm6aQkBB5eHiocePG2rBhw3WXXbJkiRo0aCBfX195eXmpTp06ev/99/McGAAAAAAAZ5Hr0r1w4UJFRUVp+PDh2rx5s2rXrq22bdvqxIkT2S5funRpvfrqq1q3bp1+++03RUZGKjIyUl9//fVNhwcAAAAAoCCzGYZh5GaFxo0bq2HDhpo6daokKTMzU0FBQXrxxRc1ZMiQHD1GvXr19OCDD2r06NE5Wj4lJUU+Pj5KTk6Wt7d3buIWSCFDllsdoUA5NO5BqyMAAAAAQK7ktKfmak/35cuXtWnTJkVERPz1AC4uioiI0Lp16/51fcMwFBcXp927d6tFixa5eWoAAAAAAJxOsdwsfOrUKWVkZCggIMBhPCAgQLt27bruesnJyQoMDNSlS5fk6uqq6dOn67777rvu8pcuXdKlS5fs36ekpOQmJgAAAAAABUKuSndelSpVSlu3blVqaqri4uIUFRWlsLAwtWrVKtvlY2JiNHLkyFsRDQAAAAAA0+SqdJctW1aurq5KSkpyGE9KSlL58uWvu56Li4vCw8MlSXXq1NHvv/+umJiY65buoUOHKioqyv59SkqKgoKCchMVAAAAAADL5eqcbjc3N9WvX19xcXH2sczMTMXFxalJkyY5fpzMzEyHw8f/yd3dXd7e3g43AAAAAACcTa4PL4+KilLPnj3VoEEDNWrUSLGxsUpLS1NkZKQkqUePHgoMDFRMTIykq4eKN2jQQJUqVdKlS5e0YsUKvf/++5oxY0b+vhIAAAAAAAqYXJfuLl266OTJk4qOjlZiYqLq1KmjlStX2idXS0hIkIvLXzvQ09LS9Nxzz+no0aMqUaKEqlWrpg8++EBdunTJv1cBAAAAAEABlOvrdFuB63QXblynGwAAAICzMeU63QAAAAAAIOco3QAAAAAAmITSDQAAAACASSjdAAAAAACYhNINAAAAAIBJKN0AAAAAAJiE0g0AAAAAgEko3QAAAAAAmITSDQAAAACASSjdAAAAAACYhNINAAAAAIBJKN0AAAAAAJiE0g0AAAAAgEko3QAAAAAAmITSDQAAAACASSjdAAAAAACYhNINAAAAAIBJKN0AAAAAAJiE0g0AAAAAgEko3QAAAAAAmITSDQAAAACASSjdAAAAAACYhNINAAAAAIBJKN0AAAAAAJiE0g0AAAAAgEko3QAAAAAAmITSDQAAAACASSjdAAAAAACYhNINAAAAAIBJKN0AAAAAAJiE0g0AAAAAgEko3QAAAAAAmITSDQAAAACASSjdAAAAAACYhNINAAAAAIBJKN0AAAAAAJiE0g0AAAAAgEko3QAAAAAAmITSDQAAAACASSjdAAAAAACYhNINAAAAAIBJKN0AAAAAAJiE0g0AAAAAgEko3QAAAAAAmITSDQAAAACASSjdAAAAAACYJE+le9q0aQoJCZGHh4caN26sDRs2XHfZt99+W82bN5efn5/8/PwUERFxw+UBAAAAACgscl26Fy5cqKioKA0fPlybN29W7dq11bZtW504cSLb5b/77js99thjWrNmjdatW6egoCC1adNGx44du+nwAAAAAAAUZDbDMIzcrNC4cWM1bNhQU6dOlSRlZmYqKChIL774ooYMGfKv62dkZMjPz09Tp05Vjx49cvScKSkp8vHxUXJysry9vXMTt0AKGbLc6ggFyqFxD1odAQAAAAByJac9NVd7ui9fvqxNmzYpIiLirwdwcVFERITWrVuXo8e4cOGC0tPTVbp06esuc+nSJaWkpDjcAAAAAABwNrkq3adOnVJGRoYCAgIcxgMCApSYmJijxxg8eLAqVqzoUNz/KSYmRj4+PvZbUFBQbmICAAAAAFAg3NLZy8eNG6ePP/5YS5culYeHx3WXGzp0qJKTk+23I0eO3MKUAAAAAADkj2K5Wbhs2bJydXVVUlKSw3hSUpLKly9/w3XffPNNjRs3Tt98841q1ap1w2Xd3d3l7u6em2gAAAAAABQ4udrT7ebmpvr16ysuLs4+lpmZqbi4ODVp0uS6640fP16jR4/WypUr1aBBg7ynBQAAAADAieRqT7ckRUVFqWfPnmrQoIEaNWqk2NhYpaWlKTIyUpLUo0cPBQYGKiYmRpL0xhtvKDo6Wh9++KFCQkLs536XLFlSJUuWzMeXAgAAAABAwZLr0t2lSxedPHlS0dHRSkxMVJ06dbRy5Ur75GoJCQlycflrB/qMGTN0+fJl/ec//3F4nOHDh2vEiBE3lx4AAAAAgAIs19fptgLX6S7cuE43AAAAAGdjynW6AQAAAABAzlG6AQAAAAAwCaUbAAAAAACTULoBAAAAADAJpRsAAAAAAJNQugEAAAAAMAmlGwAAAAAAk1C6AQAAAAAwCaUbAAAAAACTULoBAAAAADAJpRsAAAAAAJNQugEAAAAAMAmlGwAAAAAAk1C6AQAAAAAwCaUbAAAAAACTULoBAAAAADAJpRsAAAAAAJNQugEAAAAAMAmlGwAAAAAAk1C6AQAAAAAwCaUbAAAAAACTULoBAAAAADAJpRsAAAAAAJNQugEAAAAAMAmlGwAAAAAAk1C6AQAAAAAwCaUbAAAAAACTULoBAAAAADAJpRsAAAAAAJNQugEAAAAAMAmlGwAAAAAAk1C6AQAAAAAwCaUbAAAAAACTULoBAAAAADAJpRsAAAAAAJNQugEAAAAAMAmlGwAAAAAAk1C6AQAAAAAwCaUbAAAAAACTULoBAAAAADAJpRsAAAAAAJNQugEAAAAAMAmlGwAAAAAAk1C6AQAAAAAwCaUbAAAAAACTULoBAAAAADBJsbysNG3aNE2YMEGJiYmqXbu2/ve//6lRo0bZLrtjxw5FR0dr06ZNOnz4sCZPnqyXXnrpZjIDWYQMWW51hALl0LgHrY4AAAAAQHnY071w4UJFRUVp+PDh2rx5s2rXrq22bdvqxIkT2S5/4cIFhYWFady4cSpfvvxNBwYAAAAAwFnkunRPmjRJffr0UWRkpKpXr66ZM2fK09NTc+fOzXb5hg0basKECeratavc3d1vOjAAAAAAAM4iV6X78uXL2rRpkyIiIv56ABcXRUREaN26dfkW6tKlS0pJSXG4AQAAAADgbHJVuk+dOqWMjAwFBAQ4jAcEBCgxMTHfQsXExMjHx8d+CwoKyrfHBgAAAADgVimQs5cPHTpUycnJ9tuRI0esjgQAAAAAQK7lavbysmXLytXVVUlJSQ7jSUlJ+TpJmru7O+d/AwAAAACcXq72dLu5ual+/fqKi4uzj2VmZiouLk5NmjTJ93AAAAAAADizXF+nOyoqSj179lSDBg3UqFEjxcbGKi0tTZGRkZKkHj16KDAwUDExMZKuTr62c+dO+9fHjh3T1q1bVbJkSYWHh+fjSwEAAAAAoGDJdenu0qWLTp48qejoaCUmJqpOnTpauXKlfXK1hIQEubj8tQP9jz/+UN26de3fv/nmm3rzzTfVsmVLfffddzf/CgAAAAAAKKByXbol6YUXXtALL7yQ7X3/LNIhISEyDCMvTwMAAAAAgFMrkLOXAwAAAABQGFC6AQAAAAAwCaUbAAAAAACTULoBAAAAADAJpRsAAAAAAJNQugEAAAAAMAmlGwAAAAAAk1C6AQAAAAAwCaUbAAAAAACTULoBAAAAADAJpRsAAAAAAJNQugEAAAAAMAmlGwAAAAAAk1C6AQAAAAAwCaUbAAAAAACTULoBAAAAADAJpRsAAAAAAJNQugEAAAAAMAmlGwAAAAAAk1C6AQAAAAAwCaUbAAAAAACTULoBAAAAADAJpRsAAAAAAJNQugEAAAAAMAmlGwAAAAAAk1C6AQAAAAAwCaUbAAAAAACTULoBAAAAADAJpRsAAAAAAJNQugEAAAAAMAmlGwAAAAAAkxSzOgCAgilkyHKrIxQ4h8Y9eNOPwXZ1lB/bFAAAoCCjdAMAnBofZDjigwwAAAoWSjcAAHDABxlZ8WEGACCvOKcbAAAAAACTULoBAAAAADAJpRsAAAAAAJNQugEAAAAAMAmlGwAAAAAAkzB7OQAAwC3ArPCOmBEeQFFB6QYAAIBT4oMMR3yQARRMHF4OAAAAAIBJKN0AAAAAAJiE0g0AAAAAgEko3QAAAAAAmCRPpXvatGkKCQmRh4eHGjdurA0bNtxw+U8++UTVqlWTh4eHatasqRUrVuQpLAAAAAAAziTXs5cvXLhQUVFRmjlzpho3bqzY2Fi1bdtWu3fvlr+/f5blf/75Zz322GOKiYnRQw89pA8//FAdOnTQ5s2bVaNGjXx5EQAAAABuHjPCZ8Ws8LhZuS7dkyZNUp8+fRQZGSlJmjlzppYvX665c+dqyJAhWZZ/6623dP/992vQoEGSpNGjR2v16tWaOnWqZs6ceZPxAQAAAKBg48MMR0Xtg4xcHV5++fJlbdq0SREREX89gIuLIiIitG7dumzXWbduncPyktS2bdvrLg8AAAAAQGGRqz3dp06dUkZGhgICAhzGAwICtGvXrmzXSUxMzHb5xMTE6z7PpUuXdOnSJfv3ycnJkqSUlJTcxC2wMi9dsDpCgZIf/65sU0dsU3OwXfMf2zT/sU3NwXbNf2zT/Mc2NQfbNf8Vll537XUYhnHD5XJ9ePmtEBMTo5EjR2YZDwoKsiANzOYTa3WCwodtag62a/5jm+Y/tqk52K75j22a/9im5mC75r/Ctk3Pnz8vHx+f696fq9JdtmxZubq6KikpyWE8KSlJ5cuXz3ad8uXL52p5SRo6dKiioqLs32dmZurMmTMqU6aMbDZbbiLjOlJSUhQUFKQjR47I29vb6jiFAtvUHGzX/Mc2zX9sU3OwXfMf2zT/sU3zH9vUHGzX/GcYhs6fP6+KFSvecLlclW43NzfVr19fcXFx6tChg6SrhTguLk4vvPBCtus0adJEcXFxeumll+xjq1evVpMmTa77PO7u7nJ3d3cY8/X1zU1U5JC3tzf/6fIZ29QcbNf8xzbNf2xTc7Bd8x/bNP+xTfMf29QcbNf8daM93Nfk+vDyqKgo9ezZUw0aNFCjRo0UGxurtLQ0+2zmPXr0UGBgoGJiYiRJ/fr1U8uWLTVx4kQ9+OCD+vjjj7Vx40bNnj07t08NAAAAAIBTyXXp7tKli06ePKno6GglJiaqTp06WrlypX2ytISEBLm4/DUpetOmTfXhhx/qtdde0yuvvKLKlStr2bJlXKMbAAAAAFDo5WkitRdeeOG6h5N/9913WcY6deqkTp065eWpYBJ3d3cNHz48y2H8yDu2qTnYrvmPbZr/2KbmYLvmP7Zp/mOb5j+2qTnYrtaxGf82vzkAAAAAAMgTl39fBAAAAAAA5AWlGwAAAAAAk1C6AQAAAAAwCaUbAAAAAACTULqBfLBv3z59/fXX+vPPPyVJzE+Yd2vWrLnufdOmTbuFSQAAwK0yatQoXbhwIcv4n3/+qVGjRlmQyLllZGTohx9+0Llz56yOAjF7eZHz/vvva+bMmTp48KDWrVun4OBgxcbGKjQ0VI888ojV8ZzO6dOn1aVLF3377bey2Wzau3evwsLC9OSTT8rPz08TJ060OqLT8fPz0zfffKP69es7jL/11lsaNmyYUlJSLErmvDZv3qzixYurZs2akqTPPvtM7777rqpXr64RI0bIzc3N4oTOi/fU/Ld3716tWbNGJ06cUGZmpsN90dHRFqUCssrMzNS+ffuy/Vlt0aKFRamcl6urq44fPy5/f3+H8dOnT8vf318ZGRkWJXNeHh4e+v333xUaGmp1lCKPPd1FyIwZMxQVFaUHHnhA586ds795+fr6KjY21tpwTqp///4qVqyYEhIS5OnpaR/v0qWLVq5caWEy5zVhwgS1a9dOu3btso9NnDhR0dHRWr58uYXJnNczzzyjPXv2SJIOHDigrl27ytPTU5988olefvlli9M5L95T89/bb7+tO+64Q9HR0Vq8eLGWLl1qvy1btszqeE7rvffec3j/fPnll+Xr66umTZvq8OHDFiZzXr/88ovCw8N1xx13qEWLFmrVqpX9ds8991gdzykZhiGbzZZlPD4+XqVLl7YgkfOrUaOGDhw4YHUMSJKBIuOOO+4wli5dahiGYZQsWdLYv3+/YRiGsW3bNqNMmTIWJnNeAQEBxtatWw3DcNym+/fvN7y8vKyM5tTeeOMNIzAw0Dh48KAxbtw4w9vb2/jpp5+sjuW0vL29jX379hmGYRjjxo0z2rRpYxiGYfz000/GbbfdZmU0p8Z7av67/fbbjXHjxlkdo9CpUqWKERcXZxiGYfz888+Gp6enMWvWLOPhhx82Hn30UYvTOafatWsbnTp1Mnbu3GmcPXvWOHfunMMNOefr62v4+fkZLi4u9q+v3by9vQ0XFxfjueeeszqmU/rqq6+MOnXqGF988YXxxx9/GMnJyQ433DrFrC79uHUOHjyounXrZhl3d3dXWlqaBYmcX1pamsMe7mvOnDkjd3d3CxIVDi+//LJOnz6tBg0aKCMjQ19//bXuuusuq2M5LcMw7Ic+fvPNN3rooYckSUFBQTp16pSV0Zwa76n57+zZs+rUqZPVMQqdI0eOKDw8XJK0bNky/d///Z+efvpp3X333WrVqpW14ZzU3r17tXjxYvt2Rd7FxsbKMAw9+eSTGjlypHx8fOz3ubm5KSQkRE2aNLEwofN64IEHJEnt27d3OIrA+P9HFXDI/q1D6S5CQkNDtXXrVgUHBzuMr1y5UnfccYdFqZxb8+bNNX/+fI0ePVqSZLPZlJmZqfHjx3N4WS5MmTIly1hgYKA8PT3VokULbdiwQRs2bJAk9e3b91bHc3oNGjTQmDFjFBERoe+//14zZsyQdLU0BgQEWJzOefGemv86deqkVatW6b///a/VUQqVkiVL6vTp07r99tu1atUqRUVFSbp6vue1CUCRO40bN9a+ffso3fmgZ8+ekq6+pzZt2lTFixe3OFHhcaPJaXFrUbqLkKioKD3//PO6ePGiDMPQhg0b9NFHHykmJkbvvPOO1fGc0vjx43Xvvfdq48aNunz5sl5++WXt2LFDZ86c0dq1a62O5zQmT56c7birq6vWrl1r35Y2m43SnQexsbHq3r27li1bpldffdX+R+LixYvVtGlTi9M5L95T88ffP3QLDw/XsGHD9Msvv6hmzZpZ/vjm/3/e3Hffferdu7fq1q2rPXv22Pd+7dixQyEhIdaGc1IvvviiBgwYoMTExGx/VmvVqmVRMufVsmVLZWZmas+ePUxOl09atmxpdQT8f8xeXsQsWLBAI0aM0P79+yVJFStW1MiRI/XUU09ZnMx5JScna+rUqYqPj1dqaqrq1aun559/XhUqVLA6GnBDFy9elKurK3sVbgLvqTcvp7Pq2mw2JgTKo3Pnzum1117TkSNH9Oyzz+r++++XJA0fPlxubm569dVXLU7ofFxcss5FbLPZOGz3Jvzyyy/q1q2bDh8+nOXSq2zTvPvxxx81a9YsHThwQJ988okCAwP1/vvvKzQ0VM2aNbM6XpFB6S6iLly4oNTU1CyXZQAA5B7vqUDR8m+zvv/ztBP8uzp16qhKlSoaOXKkKlSokGUm87+f642c+fTTT/XEE0+oe/fuev/997Vz506FhYVp6tSpWrFihVasWGF1xCKD0l2EtG7dWkuWLJGvr6/DeEpKijp06KBvv/3WmmBO7Lfffst23GazycPDQ7fffjsTquXB0aNH9fnnnyshIUGXL192uG/SpEkWpXIupUuX1p49e1S2bFn5+fllexmWa86cOXMLkxUevKfmv1GjRmngwIFZJqj8888/NWHCBK7TnQu//fabatSoIRcXl+v+rrqGQ6FREHh5eSk+Pp7z5PNR3bp11b9/f/Xo0UOlSpVSfHy8wsLCtGXLFrVr106JiYlWRywyKN1FiIuLixITE7PsiTlx4oQCAwOVnp5uUTLn5eLiYi8z1/4r/b3cFC9eXF26dNGsWbPk4eFhSUZnExcXp/bt2yssLEy7du1SjRo1dOjQIRmGoXr16lFkcui9995T165d5e7urnnz5t2wdF+bxAa5w3tq/nN1ddXx48ezbNPTp0/L39+fw0tz4e8/n9d+V/39Tz4Ohb55+/fvV2xsrH7//XdJUvXq1dWvXz9VqlTJ4mTOqXXr1nr55Zftpz/g5nl6emrnzp0KCQlxKN0HDhxQ9erVdfHiRasjFhlMpFYE/P0T7p07dzp8qpWRkaGVK1cqMDDQimhOb+nSpRo8eLAGDRqkRo0aSZI2bNigiRMnavjw4bpy5YqGDBmi1157TW+++abFaZ3D0KFDNXDgQI0cOVKlSpXSp59+Kn9/f3Xv3p1fxLnw9yLdq1cv64IUQrynmudaCfyn+Ph4lS5d2oJEzuvgwYMqV66c/Wvkr6+//lrt27dXnTp1dPfdd0uS1q5dqzvvvFNffPGF7rvvPosTOh8mp8t/5cuX1759+7JMmPjTTz8pLCzMmlBF1a29LDisYLPZDBcXF8PFxcWw2WxZbp6ensacOXOsjumUGjZsaKxcuTLL+MqVK42GDRsahmEYS5cuNcLCwm51NKdVsmRJY9++fYZhGIavr6+xfft2wzAMY+vWrUZwcLCFyZzXu+++m+14enq6MWTIkFsbphDgPTX/+fr6Gn5+foaLi4v962s3b29vw8XFxXjuueesjlkoZWZmWh3BKdWpU8cYPHhwlvHBgwcbdevWtSCR88vu/fTa+6yLi4vV8ZzS2LFjjerVqxu//PKLUapUKePHH380PvjgA6NcuXLGlClTrI5XpLCnuwg4ePCgDMNQWFiYNmzYYP/kW5Lc3Nzk7+8vV1dXCxM6r23btmU7WUpwcLC2bdsm6erEIMePH7/V0ZyWl5eX/TzuChUqaP/+/brzzjslSadOnbIymtPq27evli9frtmzZ8vPz0+StHv3bnXr1k2nT59WTEyMxQmdC++p+S82NlaGYejJJ5/UyJEjHSZMcnNzU0hIiJo0aWJhQufWq1cvTZs2TV5eXg7jhw4d0hNPPKEff/zRomTO6/fff9eiRYuyjD/55JOKjY299YEKAY7IyH9DhgxRZmam7r33Xl24cEEtWrSQu7u7Bg4cqBdffNHqeEUKpbsIuFYK/3m9Q9y8atWqady4cZo9e7bc3NwkSenp6Ro3bpyqVasmSTp27JgCAgKsjOlU7rrrLv3000+644479MADD2jAgAHatm2blixZorvuusvqeE5py5Ytevzxx1WzZk29++672rNnj15++WV16NBB06dPtzqe0+E9Nf9dOx0iNDRUTZs25TJ2+Sw+Pl61atXSBx98YP/w4r333lPfvn3VunVri9M5p3Llymnr1q2qXLmyw/jWrVu5ikEeMeN7/rPZbHr11Vc1aNAg7du3T6mpqapevbpKlixpdbQih9JdBO3cuTPbWaHbt29vUSLnNW3aNLVv31633Xab/Vyjbdu2KSMjQ19++aUk6cCBA3ruueesjOlUJk2apNTUVEnSyJEjlZqaqoULF6py5crMXJ5HlSpV0tq1a/XSSy/p/vvvl6urq9577z099thjVkcrFHhPzT9169bVn3/+qT///NNh3Gazyd3d3f7hJnJnw4YNeuWVV9SqVSsNGDBA+/bt01dffaVJkyapT58+VsdzSn369NHTTz+tAwcOqGnTppKuntP9xhtvKCoqyuJ0zmn+/Pk3vL9Hjx63KEnh4+bmpurVq1sdo0hj9vIi5MCBA3r00Ue1bds2h1lMr01aw+yleXP+/HktWLBAe/bskSRVrVpV3bp1U6lSpSxOBvzliy++0FNPPaUqVapoz549qlWrlubPn6+KFStaHc1p8Z6a//5+RYjs3HbbberVq5eGDx8uFxeXW5iscBg+fLhGjx6tYsWK6fvvv+eQ/ZtgGIZiY2M1ceJE/fHHH5KkihUratCgQerbt+8Nf46RvWunP12Tnp6uCxcuyM3NTZ6enlzeMoc6duyY42WXLFliYhL8Hb+xipB+/fopNDRUJ06ckKenp3bs2KEffvhBDRo00HfffWd1PKdVqlQptWjRQm3atFGrVq1UoUIFrVmzRp9//rnV0ZzWuXPn9M4772jo0KH2X7KbN2/WsWPHLE7mnJ555hl16tRJgwcP1o8//qjffvtNbm5uqlmzZrbnJCJneE/Nf/PmzVPFihX1yiuvaNmyZVq2bJleeeUVBQYGasaMGXr66ac1ZcoUjRs3zuqoTiU9PV0DBgzQG2+8oaFDh6pJkybq2LGjVqxYYXU0p2Wz2dS/f38dPXpUycnJSk5O1tGjR9WvXz8Kdx6dPXvW4Zaamqrdu3erWbNm+uijj6yO5zR8fHzsN29vb8XFxWnjxo32+zdt2qS4uDiHuTNwC1g3hxtutTJlyhjx8fGGYRiGt7e3sWvXLsMwDCMuLs6oU6eOldGc1v79+41atWplmWHz2g25Fx8fb5QrV84IDw83ihUrZuzfv98wDMN49dVXjSeeeMLidM7pzjvvNLZu3ZplfOrUqYaXl5cFiQoH3lPzX+vWrY2FCxdmGV+4cKHRunVrwzAMY/78+UbVqlVvdTSnVqtWLSM8PNxYt26dYRhXZywfN26c4e7ubjz77LMWpwNu7Ndff+X/fB69/PLLRu/evY0rV67Yx65cuWI8/fTTxsCBAy1MVvSwp7sIycjIsB/yXLZsWfvhUMHBwdq9e7eV0ZzWP/d0bd++Xd9//z17um5CVFSUevXqpb1798rDw8M+/sADD+iHH36wMJnz2rRpk2rXrp1l/Pnnn9emTZssSFQ48J6a/37++WfVrVs3y3jdunW1bt06SVKzZs2UkJBwq6M5tQYNGmjr1q32yShtNpsGDx6sdevW8b6aC/Xq1dPZs2clXf2ZrFev3nVvyD/FihWzv78id+bOnauBAwc6XFHD1dVVUVFRmjt3roXJih4mUitCatSoofj4eIWGhqpx48YaP3683NzcNHv2bIWFhVkdzymtW7dO3377rcqWLSsXFxe5urqqWbNmiomJUd++fbVlyxarIzqdX3/9VbNmzcoyHhgYqMTERAsSOT93d/fr3le1atVbmKRw4T01/wUFBWnOnDlZDh+fM2eOgoKCJEmnT5/Ocu4nbmzOnDnZjtetW5cP3nLhkUcesb+fPvLIIxxGns/+eVqeYRg6fvy4pk6dqrvvvtuiVM7typUr2rVrV5bf9bt27eIKHLcYpbsIee2115SWliZJGjVqlB566CE1b95cZcqU0cKFCy1O55yy29NVtWpV9nTdBHd3d6WkpGQZ37Nnj8P1kJE7ixcv1qJFi7KdZXvz5s0WpXJuvKfmvzfffFOdOnXSV199pYYNG0qSNm7cqF27dmnx4sWSrn4w16VLFytjOrWLFy9meQ+40Qdz+Mvw4cPtX48YMcK6IIVUhw4dHL632WwqV66cWrdurYkTJ1oTyslFRkbqqaee0v79+9WoUSNJ0vr16zVu3DhFRkZanK5oYfbyIu7MmTPy8/Pj09o8at68uQYMGKAOHTqoW7duOnv2rF577TXNnj1bmzZt0vbt262O6HR69+6t06dPa9GiRSpdurR+++03ubq6qkOHDmrRooViY2Otjuh0pkyZoldffVW9evXS7NmzFRkZqf379+vXX3/V888/r9dff93qiIUG76k37+DBg5o1a5bDFSGeeeYZhYSEWBvMiaWlpWnw4MFatGiRTp8+neV+ZtrPvbCwMP36668qU6aMw/i5c+dUr149HThwwKJkwF8yMzP15ptv6q233tLx48clSRUqVFC/fv00YMAAh8POYS5KdxGRnp6uEiVKaOvWrapRo4bVcQqNr7/+WmlpaerYsaP27dunhx56SHv27LHv6WrdurXVEZ1OcnKy/vOf/2jjxo06f/68KlasqMTERDVp0kQrVqyQl5eX1RGdTrVq1TR8+HA99thjKlWqlOLj4xUWFqbo6GidOXNGU6dOtTqi0+E9Fc7k+eef15o1azR69Gg98cQTmjZtmo4dO6ZZs2Zp3Lhx6t69u9URnY6Li4sSExPl7+/vMJ6UlKSgoKAsRxMgd4x/XIIRN+/aUYTe3t4WJymaOLy8iChevLhuv/12Ps3OZ23btrV/HR4erl27drGn6yb5+Pho9erV+umnn/Tbb78pNTVV9erVU0REhNXRnFZCQoKaNm0qSSpRooTOnz8vSXriiSd01113UbrzgPdU85w7d04bNmzQiRMnspxz2KNHD4tSObcvvvhC8+fPV6tWrRQZGanmzZsrPDxcwcHBWrBgAaU7F/5+3vHXX3/tcNmljIwMxcXFKTQ01IpohcL8+fM1YcIE7d27V5JUpUoVDRo0SE888YTFyZwfZdtalO4i5NVXX9Urr7yi999/X6VLl7Y6TqHFts0fzZo1U7NmzayOUSiUL19eZ86cUXBwsG6//Xb98ssvql27tg4ePCgOdso73lPz3xdffKHu3bsrNTVV3t7eDh9e2mw2SncenTlzxj65n7e3t86cOSPp6vvss88+a2U0p3PtvGObzaaePXs63Fe8eHGFhIRw/nEeTZo0ScOGDdMLL7xgnzjtp59+0n//+1+dOnVK/fv3tzih80lKStLAgQMVFxenEydOZPmdzwfHtw6luwiZOnWq9u3bp4oVKyo4ODjLYbpMpoSCIi4uTpMnT9bvv/8uSbrjjjv00ksvsbc7j1q3bq3PP/9cdevWVWRkpPr376/Fixdr48aN6tixo9XxnBbvqflvwIABevLJJzV27Fh5enpaHafQCAsL08GDB3X77berWrVqWrRokRo1aqQvvvhCvr6+VsdzKteOvggNDdWvv/6qsmXLWpyo8Pjf//6nGTNmOHy41r59e915550aMWIEpTsPevXqpYSEBA0bNkwVKlTgKEwLcU53ETJy5Mgb3v/3WTkBq0yfPl39+vXTf/7zHzVp0kSS9Msvv2jx4sWaPHmynn/+eYsTOp/MzExlZmaqWLGrn7N+/PHH+vnnn1W5cmU988wzcnNzszihc+I9Nf95eXlp27ZtXHItn02ePFmurq7q27evvvnmGz388MMyDEPp6emaNGmS+vXrZ3VEQB4eHtq+fbvCw8Mdxvfu3auaNWvq4sWLFiVzXqVKldKPP/6oOnXqWB2lyKN0I4uPPvpI7du3Z8IqWOK2227TkCFD9MILLziMT5s2TWPHjtWxY8csSlb4Pffccxo1ahR7bvIZ76k517FjR3Xt2lWdO3e2OkqhdvjwYW3atEnh4eGqVauW1XGcVlpamr7//vtsL8XYt29fi1I5rxo1aqhbt2565ZVXHMbHjBmjhQsXatu2bRYlc17Vq1fXggULVLduXaujFHmUbmTh7e2trVu3sqcBlihZsqS2bt2a7SfddevWVWpqqkXJCj/+75uD7Zpzc+bM0ahRoxQZGamaNWuqePHiDve3b9/eomRFQ82aNbVixQoFBQVZHaXA27Jlix544AFduHBBaWlpKl26tE6dOiVPT0/5+/tzybA8+PTTT9WlSxdFRETYz+leu3at4uLitGjRIj366KMWJ3Q+q1at0sSJEzVr1iwuu2gxzulGFnwOAyu1b99eS5cu1aBBgxzGP/vsMz300EMWpSoa+L9vDrZrzvXp00eSNGrUqCz32Ww2Jv0x2aFDh5Senm51DKfQv39/Pfzww5o5c6Z8fHz0yy+/qHjx4nr88cc5XD+P/u///k/r16/X5MmTtWzZMklX53TZsGEDe2rzqEuXLrpw4YIqVaokT0/PLB9kXptUEeajdAMoUKpXr67XX39d3333ncM53WvXrtWAAQM0ZcoU+7IcvgcULv+8RBhQUG3dulWzZs2Si4uLXF1ddenSJYWFhWn8+PHq2bMnk1TmUf369fXBBx9YHaPQiI2NtToC/j9KN4ACZc6cOfLz89POnTu1c+dO+7ivr6/mzJlj/95ms1G6gULs4sWL8vDwsDoGkK3ixYvLxcVFkuTv76+EhATdcccd8vHx0ZEjRyxO55xWrFghV1dXtW3b1mH866+/VmZmptq1a2dRMuf1z8vawTouVgcAgL87ePBgjm6cLwcUPhkZGRo9erQCAwNVsmRJ+//zYcOGOXzoBlitbt26+vXXXyVJLVu2VHR0tBYsWKCXXnpJNWrUsDidcxoyZEi2p5AYhqEhQ4ZYkKhw2L9/v1577TU99thjOnHihCTpq6++0o4dOyxOVrRQugE4JW9vb4p3DiUkJGR7XrFhGEpISLAgEZC9119/XfPmzdP48eMdLmVXo0YNvfPOOxYmAxyNHTtWFSpUkHT159bPz0/PPvusTp48qdmzZ1uczjnt3btX1atXzzJerVo17du3z4JEzu/7779XzZo1tX79ei1ZssQ+GW18fDyXtbzFKN1FREZGhn744QedO3fuX5cNDg7OMtECUNAwOVXOhYaG6uTJk1nGz5w5o9DQUPv3jz/+uLy9vW9ltCKB99Scmz9/vmbPnq3u3bvL1dXVPl67dm3t2rXLwmTOKz09Xffee6/27t1rdZRCwzAM+fv72+cd8ff318qVK5WSkqJNmzapdu3aFid0Tj4+Ptl+mL5v3z4uuZhHQ4YM0ZgxY7R69WqHDzJbt26tX375xcJkRQ+lu4hwdXVVmzZtdPbs2X9ddvv27VwuBChEDMOQzWbLMp6amupwzuyMGTO4RrcJeE/NuWPHjmW5XKB0dYI1ZtXOm+LFi+u3337L0bKzZs1SQECAyYmcn2EYCg8P59ztfPbII4/opZde0v79++1j+/bt04ABA7hcYB5t27Yt20ut+fv769SpUxYkKrqYSK0IqVGjhg4cOOCwZwtA4RUVFSXp6qRzw4YNk6enp/2+jIwMrV+/XnXq1LEonXPy8/PL9gOM7HApltyrXr26fvzxRwUHBzuML168mEsG3YTHH39cc+bM0bhx4264XLdu3W5RIufm4uKiypUr6/Tp06pcubLVcQqN8ePH6/7771e1atV02223SZKOHj2q5s2b680337Q4nXPy9fXV8ePHs/ztv2XLFgUGBlqUqmiidBchY8aM0cCBAzV69GjVr18/y6E6HFYKFC5btmyRdHWvzLZt2xwOLXNzc1Pt2rU1cOBAq+I5JS6/Yq7o6Gj17NlTx44dU2ZmppYsWaLdu3dr/vz5+vLLL62O57SuXLmiuXPn6ptvvsn29/+kSZMsSua8xo0bp0GDBmnGjBlMnJZPfHx89PPPP2v16tWKj49XiRIlVKtWLbVo0cLqaE6ra9euGjx4sD755BPZbDZlZmZq7dq1GjhwoHr06GF1vCLFZnBiZJFx7dIWkhz21Fw79DS7GSOBgqpUqVKKj49XWFiY1VEKvMjISL311lt8sAan8OOPP2rUqFGKj49Xamqq6tWrp+joaLVp08bqaE7rnnvuue59NptN33777S1MUzj4+fnpwoULunLlitzc3FSiRAmH+znSxTw1a9bUihUrOG0nBy5fvqznn39e8+bNU0ZGhooVK6YrV66oe/fumjdvnsPcGTAXpbsI+f777294f8uWLW9REuDmUbpRkFy8eFGXL192GONDDqDweu+99254P9dHNg+//3PvyJEj2rZtm1JTU1W3bl1Oi7AApRtAgXLtPOR/s23bNn355Zdyd3c3ORGQvbS0NA0ePFiLFi3S6dOns9zP0UMAkP8o3Tl3vb+pbDabPDw8FB4erkceeUSlS5e+xcmKHs7pLoIuXLighISELHtlatWqZVEi4C9btmzRli1blJ6erqpVq0qS9uzZI1dXV9WrV8++nM1mo3DDUi+//LLWrFmjGTNm6IknntC0adN07NgxzZo1618nrMJfmJwOzighIeGG999+++23KAlwfVu2bNHmzZuVkZGR5W+qatWqafr06RowYIB++umnbK+RjvxD6S5CTp48qcjISH311VfZ3s9eGRQEDz/8sEqVKqX33ntPfn5+kqSzZ88qMjJSzZs314ABAyxOCFz1xRdfaP78+WrVqpX95zM8PFzBwcFasGCBunfvbnVEp8DkdHBGISEhN/ywiL+pUBBc24v97rvv2k95Sk5OVu/evdWsWTP16dNH3bp1U//+/fX1119bnLZw4/DyIqR79+46fPiwYmNj1apVKy1dulRJSUkaM2aMJk6cqAcffNDqiIACAwO1atUq3XnnnQ7j27dvV5s2bfTHH39YlAxwVLJkSe3cuVO33367brvtNi1ZskSNGjXSwYMHVbNmTaWmplodsdAaN26c/vvf/8rX19fqKCii4uPjHb5PT0/Xli1bNGnSJL3++uvq2LGjRckKPw4vz7nAwECtXr06y17sHTt2qE2bNjp27Jg2b96sNm3acN1uk7Gnuwj59ttv9dlnn6lBgwZycXFRcHCw7rvvPnl7eysmJobSjQIhJSVFJ0+ezDJ+8uRJnT9/3oJEQPbCwsJ08OBB3X777apWrZoWLVqkRo0a6YsvvqAMmmzs2LHq3Lkz2xmWqV27dpaxBg0aqGLFipowYQKlGwVCcnKyTpw4kaV0nzx5UikpKZKuXsv7n6ecIv+5/PsiKCzS0tLk7+8v6eo5dNeKTc2aNbV582YrowF2jz76qCIjI7VkyRIdPXpUR48e1aeffqqnnnqKP2JQoERGRtr3dg0ZMkTTpk2Th4eH+vfvr0GDBlmcrnDjID0UVFWrVtWvv/5qdYxC49y5c1nGZs2apYCAgFsfxgk98sgjevLJJ7V06VL731RLly7VU089pQ4dOkiSNmzYoCpVqlgbtAjg8PIipGHDhhozZozatm2r9u3by9fXVzExMZoyZYoWL16s/fv3Wx0R0IULFzRw4EDNnTtX6enpkqRixYrpqaee0oQJE+Tl5WVxQiB7hw8f1qZNmxQeHs7ElCbj8FJY7dpewmsMw9Dx48c1YsQI7dq1S1u3brUmmBN74403FBISoi5dukiSOnfurE8//VTly5fXihUrsj26ADeWmpqq/v37a/78+bpy5Yqkq39T9ezZU5MnT5aXl5f9Z7VOnTrWBS0CKN1FyAcffKArV66oV69e2rRpk+6//36dOXNGbm5umjdvnv1NDigI0tLS7B8EVapUibINwI7SDau5uLhkmUjNMAwFBQXp448/VpMmTSxK5rxCQ0O1YMECNW3aVKtXr1bnzp21cOFCLVq0SAkJCVq1apXVEZ1WamqqDhw4IOnqqVElS5a0OFHRQ+kuwi5cuKBdu3bp9ttvV9myZa2OAwAF3pQpU/T000/Lw8NDU6ZMueGyffv2vUWpih5KN6z2/fffO3zv4uKicuXKKTw8XMWKMWVSXpQoUUJ79uxRUFCQ+vXrp4sXL2rWrFnas2ePGjdurLNnz1odEcgzSjcAADkUGhqqjRs3qkyZMgoNDb3ucjabzb5XAfmP0g0UPhUrVtTixYvVtGlTVa1aVWPGjFGnTp20e/duNWzYMMsh/YAz4aO4Qi4qKirHy06aNMnEJADg/A4ePJjt17i1mjdvrhIlSlgdA0XM559/nuNl27dvb2KSwqljx47q1q2bKleurNOnT6tdu3aSpC1btig8PNzidMDNoXQXclu2bMnRcv88LwkAcGOjRo3SwIED5enp6TD+559/asKECYqOjrYomfNydXXV8ePH7VfauOb06dPy9/dXRkaGJGnFihVWxEMRd22252tsNpvDTPp//1vq2s8qcm7y5MkKDQ1VQkKCxo8fbz/v+Pjx43ruuecsTgfcHA4vBwAgD3JaEJFzLi4uSkxMzLJN//jjD1WqVEl//vmnRckAR998840GDx6ssWPH2idNW7dunV577TWNHTtW9913n8UJnUt6erqeeeYZDRs27Ian7gDOij3dAADkgWEY2R4lFB8fr9KlS1uQyHldm5TOZrPpnXfecZhZNyMjQz/88IOqVatmVTwgi5deekkzZ85Us2bN7GNt27aVp6ennn76af3+++8WpnM+xYsX16effqphw4ZZHQUwBaW7CLnnnntueBj5t99+ewvTAIBz8vPzk81mk81mU5UqVbIcUpqamqr//ve/FiZ0PpMnT5Z09YOMmTNnytXV1X6fm5ubQkJCNHPmTKviAVns379fvr6+WcZ9fHx06NChW56nMOjQoYOWLVum/v37Wx0FyHeU7iLknxe9T09P19atW7V9+3b17NnTmlAA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", + "image/png": "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4MABq2NAkgwUGXfccYfx2WefGYZhGCVLljT2799vGIZhbNu2zShTpoyFyZxXQECAsWXLFsMwHPfp/v37DS8vLyujObU33njDCAwMNA4ePGjExsYa3t7exs8//2x1LKfl7e1t7Nu3zzAMw4iNjTXatGljGIZh/Pzzz8Ztt91mZTSnxntq/rv99tuN2NhYq2MUOlWqVDHi4+MNwzCMX375xfD09DRmzpxpPPzww8ajjz5qcTrnVLt2baNTp07Gzp07jbNnzxrnzp1zuCHnfH19DT8/P8PFxcX+52s3b29vw8XFxXj++eetjumUvv32W6NOnTrGV199Zfzxxx9GcnKyww23TjGrSz9unYMHD6pu3bpZxt3d3ZWWlmZBIueXlpbmcIT7mjNnzsjd3d2CRIXDyy+/rNOnT6tBgwbKyMjQsmXLdNddd1kdy2kZhmGf+vjdd9/poYcekiQFBQXp1KlTVkZzaryn5r+zZ8+qU6dOVscodI4cOaLw8HBJ0ueff67/+7//0zPPPKO7775brVq1sjack9q7d68WLVpk36/Iu7i4OBmGoaeeekojR46Uj4+P/T43NzeFhISoSZMmFiZ0Xg888IAkqX379g6zCIz/P6uAKfu3DqW7CAkNDdWWLVsUHBzsML506VLdcccdFqVybs2bN9e8efM0evRoSZLNZlNmZqbGjRvH9LJcmDx5cpaxwMBAeXp6qkWLFlq3bp3WrVsnSerbt++tjuf0GjRooDFjxigiIkI//vijpk+fLulqaQwICLA4nfPiPTX/derUScuXL9d///tfq6MUKiVLltTp06d1++23a/ny5YqKipJ09XzPawuAIncaN26sffv2UbrzQY8ePSRdfU9t2rSpihcvbnGiwuNGi9Pi1qJ0FyFRUVHq06ePLl68KMMwtG7dOn300UeKiYnRO++8Y3U8pzRu3Djde++92rBhgy5fvqyXX35ZO3bs0JkzZ7R69Wqr4zmNSZMmZTvu6uqq1atX2/elzWajdOdBXFycunXrps8//1yvvvqq/ZfERYsWqWnTphanc168p+aPv3/oFh4ermHDhunXX39VzZo1s/zyzf//vLnvvvvUq1cv1a1bV3v27LEf/dqxY4dCQkKsDeekXnzxRQ0YMECJiYnZ/lutVauWRcmcV8uWLZWZmak9e/awOF0+admypdUR8P+xenkRM3/+fI0YMUL79++XJFWsWFEjR47U008/bXEy55WcnKwpU6Zo69atSk1NVb169dSnTx9VqFDB6mjADV28eFGurq4cVbgJvKfevJyuqmuz2VgQKI/OnTun1157TUeOHNFzzz2n+++/X5I0fPhwubm56dVXX7U4ofNxccm6FrHNZmPa7k349ddf1bVrVx0+fDjLpVfZp3m3atUqzZw5UwcOHNAnn3yiwMBAvf/++woNDVWzZs2sjldkULqLqAsXLig1NTXLZRkAALnHeypQtPzbqu//PO0E/65OnTqqUqWKRo4cqQoVKmRZyfzv53ojZz799FM9+eST6tatm95//33t3LlTYWFhmjJlipYsWaIlS5ZYHbHIoHQXIa1bt9bixYvl6+vrMJ6SkqIOHTro+++/tyaYE/vtt9+yHbfZbPLw8NDtt9/Ogmp5cPToUX355ZdKSEjQ5cuXHe6bOHGiRamcS+nSpbVnzx6VLVtWfn5+2V6G5ZozZ87cwmSFB++p+W/UqFEaOHBglgUq//zzT40fP57rdOfCb7/9pho1asjFxeW6P6uuYSo0CgIvLy9t3bqV8+TzUd26ddW/f391795dpUqV0tatWxUWFqbNmzerXbt2SkxMtDpikUHpLkJcXFyUmJiY5UjMiRMnFBgYqPT0dIuSOS8XFxd7mbn2X+nv5aZ48eLq0qWLZs6cKQ8PD0syOpv4+Hi1b99eYWFh2rVrl2rUqKFDhw7JMAzVq1ePIpND7733nh577DG5u7tr7ty5Nyzd1xaxQe7wnpr/XF1ddfz48Sz79PTp0/L392d6aS78/d/ntZ9Vf/+Vj6nQN2///v2Ki4vT77//LkmqXr26+vXrp0qVKlmczDm1bt1aL7/8sv30B9w8T09P7dy5UyEhIQ6l+8CBA6pevbouXrxodcQig4XUioC/f8K9c+dOh0+1MjIytHTpUgUGBloRzel99tlnGjx4sAYNGqRGjRpJktatW6cJEyZo+PDhunLlioYMGaLXXntNb775psVpncPQoUM1cOBAjRw5UqVKldKnn34qf39/devWjR/EufD3It2zZ0/rghRCvKea51oJ/KetW7eqdOnSFiRyXgcPHlS5cuXsf0b+WrZsmdq3b686dero7rvvliStXr1ad955p7766ivdd999Fid0PixOl//Kly+vffv2ZVkw8eeff1ZYWJg1oYqqW3tZcFjBZrMZLi4uhouLi2Gz2bLcPD09jdmzZ1sd0yk1bNjQWLp0aZbxpUuXGg0bNjQMwzA+++wzIyws7FZHc1olS5Y09u3bZxiGYfj6+hrbt283DMMwtmzZYgQHB1uYzHm9++672Y6np6cbQ4YMubVhCgHeU/Ofr6+v4efnZ7i4uNj/fO3m7e1tuLi4GM8//7zVMQulzMxMqyM4pTp16hiDBw/OMj548GCjbt26FiRyftm9n157n3VxcbE6nlMaO3asUb16dePXX381SpUqZaxatcr44IMPjHLlyhmTJ0+2Ol6RwpHuIuDgwYMyDENhYWFat26d/ZNvSXJzc5O/v79cXV0tTOi8tm3blu1iKcHBwdq2bZukqwuDHD9+/FZHc1peXl7287grVKig/fv3684775QknTp1yspoTqtv37765ptvNGvWLPn5+UmSdu/era5du+r06dOKiYmxOKFz4T01/8XFxckwDD311FMaOXKkw4JJbm5uCgkJUZMmTSxM6Nx69uypqVOnysvLy2H80KFDevLJJ7Vq1SqLkjmv33//XQsXLswy/tRTTykuLu7WByoEmJGR/4YMGaLMzEzde++9unDhglq0aCF3d3cNHDhQL774otXxihRKdxFwrRT+83qHuHnVqlVTbGysZs2aJTc3N0lSenq6YmNjVa1aNUnSsWPHFBAQYGVMp3LXXXfp559/1h133KEHHnhAAwYM0LZt27R48WLdddddVsdzSps3b9YTTzyhmjVr6t1339WePXv08ssvq0OHDpo2bZrV8ZwO76n579rpEKGhoWratCmXsctnW7duVa1atfTBBx/YP7x477331LdvX7Vu3dridM6pXLly2rJliypXruwwvmXLFq5ikEes+J7/bDabXn31VQ0aNEj79u1TamqqqlevrpIlS1odrcihdBdBO3fuzHZV6Pbt21uUyHlNnTpV7du312233WY/12jbtm3KyMjQ119/LUk6cOCAnn/+eStjOpWJEycqNTVVkjRy5EilpqZqwYIFqly5MiuX51GlSpW0evVqvfTSS7r//vvl6uqq9957T48//rjV0QoF3lPzT926dfXnn3/qzz//dBi32Wxyd3e3f7iJ3Fm3bp1eeeUVtWrVSgMGDNC+ffv07bffauLEierdu7fV8ZxS79699cwzz+jAgQNq2rSppKvndL/xxhuKioqyOJ1zmjdv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4eHatWsXR7puko+Pj1asWKGff/5Zv/32m1JTU1WvXj1FRERYHc1pJSQkqGnTppKkEiVK6Pz585KkJ598UnfddRelOw94TzXPuXPntG7dOp04cSLLOYfdu3e3KJVz++qrrzRv3jy1atVKkZGRat68ucLDwxUcHKz58+dTunPh7+cdL1u2zOGySxkZGYqPj1doaKgV0QqFefPmafz48dq7d68kqUqVKho0aJCefPJJi5M5P8q2tSjdRcirr76qV155Re+//75Kly5tdZxCi32bP5o1a6ZmzZpZHaNQKF++vM6cOaPg4GDdfvvt+vXXX1W7dm0dPHhQTHbKO95T899XX32lbt26KTU1Vd7e3g4fXtpsNkp3Hp05c8a+uJ+3t7fOnDkj6er77HPPPWdlNKdz7bxjm82mHj16ONxXvHhxhYSEcP5xHk2cOFHDhg3TCy+8YF847eeff9Z///tfnTp1Sv3797c4ofNJSkrSwIEDFR8frxMnTmT5mc8Hx7cOpbsImTJlivbt26eKFSsqODg4yzRdFlNCQREfH69Jkybp999/lyTdcccdeumllzjanUetW7fWl19+qbp16yoyMlL9+/fXokWLtGHDBnXs2NHqeE6L99T8N2DAAD311FMaO3asPD09rY5TaISFhengwYO6/fbbVa1aNS1cuFCNGjXSV199JV9fX6vjOZVrsy9CQ0O1fv16lS1b1uJEhcf//vc/TZ8+3eHDtfbt2+vOO+/UiBEjKN150LNnTyUkJGjYsGGqUKECszAtxDndRcjIkSNveP/fV+UErDJt2jT169dP//nPf9SkSRNJ0q+//qpFixZp0qRJ6tOnj8UJnU9mZqYyMzNVrNjVz1k//vhj/fLLL6pcubKeffZZubm5WZzQOfGemv+8vLy0bds2LrmWzyZNmiRXV1f17dtX3333nR5++GEZhqH09HRNnDhR/fr1szoiIA8PD23fvl3h4eEO43v37lXNmjV18eJFi5I5r1KlSmnVqlWqU6eO1VGKPEo3svjoo4/Uvn17FqyCJW677TYNGTJEL7zwgsP41KlTNXbsWB07dsyiZIXf888/r1GjRnHkJp/xnppzHTt21GOPPabOnTtbHaVQO3z4sDZu3Kjw8HDVqlXL6jhOKy0tTT/++GO2l2Ls27evRamcV40aNdS1a1e98sorDuNjxozRggULtG3bNouS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", "text/plain": [ "
" ] @@ -422,7 +422,7 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -461,6 +461,26 @@ "plt.tight_layout()\n", "plt.show()" ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "F1 Score: 0.8004770573896727\n" + ] + } + ], + "source": [ + "# Calculate F1 Score for multiclass classification\n", + "f1 = f1_score(test_y, preds, average='macro')\n", + "\n", + "print('F1 Score:', f1)" + ] } ], "metadata": { diff --git a/notebooks/ml_xgboost.ipynb b/notebooks/ml_xgboost.ipynb index 4c8bc60..3c17c45 100644 --- a/notebooks/ml_xgboost.ipynb +++ b/notebooks/ml_xgboost.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -20,10 +20,9 @@ "import matplotlib.pyplot as plt\n", "import xgboost as xgb\n", "from sklearn.model_selection import GridSearchCV\n", - "from sklearn.metrics import confusion_matrix\n", - "from sklearn.impute import SimpleImputer\n", - "from sklearn.preprocessing import MinMaxScaler\n", - "import seaborn as sns" + "from sklearn.metrics import confusion_matrix, f1_score\n", + "import seaborn as sns\n", + "import numpy as np" ] }, { @@ -35,7 +34,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -59,7 +58,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -337,7 +336,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -362,14 +361,14 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[20:16:51] WARNING: C:/Users/administrator/workspace/xgboost-win64_release_1.6.0/src/learner.cc:627: \n", + "[16:58:49] WARNING: C:/Users/administrator/workspace/xgboost-win64_release_1.6.0/src/learner.cc:627: \n", "Parameters: { \"best_iteration\", \"best_ntree_limit\", \"scikit_learn\" } might not be used.\n", "\n", " This could be a false alarm, with some parameters getting used by language bindings but\n", @@ -377,13 +376,7 @@ " but getting flagged wrongly here. Please open an issue if you find any such cases.\n", "\n", "\n", - "[0]\ttrain-merror:0.16762\teval-merror:0.22603\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "[0]\ttrain-merror:0.16762\teval-merror:0.22603\n", "[1]\ttrain-merror:0.15220\teval-merror:0.22374\n", "[2]\ttrain-merror:0.13849\teval-merror:0.21461\n", "[3]\ttrain-merror:0.13535\teval-merror:0.20776\n", @@ -483,8 +476,8 @@ "[97]\ttrain-merror:0.00029\teval-merror:0.18265\n", "[98]\ttrain-merror:0.00029\teval-merror:0.18265\n", "[99]\ttrain-merror:0.00029\teval-merror:0.18265\n", - "CPU times: total: 17.6 s\n", - "Wall time: 1.36 s\n" + "CPU times: total: 14.3 s\n", + "Wall time: 1.22 s\n" ] } ], @@ -506,7 +499,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -546,7 +539,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -577,7 +570,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -609,7 +602,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -618,7 +611,7 @@ "" ] }, - "execution_count": 19, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, @@ -640,7 +633,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -679,6 +672,26 @@ "plt.tight_layout()\n", "plt.show()" ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "F1 Score: 0.8157211953487169\n" + ] + } + ], + "source": [ + "# Calculate F1 Score for multiclass classification\n", + "f1 = f1_score(test_y, preds, average='macro')\n", + "\n", + "print('F1 Score:', f1)" + ] } ], "metadata": {