From 1c59ed05cb83c331d60c54b47ba8d2b18ad3cb09 Mon Sep 17 00:00:00 2001
From: s2-gado <shekwoyeyilo2.gado@live.uwe.ac.uk>
Date: Sun, 2 Mar 2025 20:56:36 +0000
Subject: [PATCH] Upload New File

---
 GA2.ipynb | 405 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 405 insertions(+)
 create mode 100644 GA2.ipynb

diff --git a/GA2.ipynb b/GA2.ipynb
new file mode 100644
index 0000000..1131f01
--- /dev/null
+++ b/GA2.ipynb
@@ -0,0 +1,405 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Genetic Algorithm"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import pandas as pd\n",
+    "import numpy as np\n",
+    "import random\n",
+    "from scipy.stats import pearsonr\n",
+    "from deap import base, creator, tools, algorithms\n",
+    "from sklearn.ensemble import RandomForestClassifier\n",
+    "from sklearn.tree import DecisionTreeClassifier\n",
+    "from sklearn.model_selection import cross_val_score\n",
+    "from sklearn.model_selection import RandomizedSearchCV\n",
+    "from sklearn.base import BaseEstimator\n",
+    "from sklearn.model_selection import train_test_split\n",
+    "import matplotlib.pyplot as plt"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "#reading data\n",
+    "a_df = pd.read_csv('alzheimers_disease_data.csv')\n",
+    "df =a_df.drop(['DoctorInCharge', 'PatientID'], axis=1, inplace=True)\n",
+    "X = a_df.drop('Diagnosis', axis = 1)\n",
+    "y = a_df['Diagnosis']\n",
+    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "#defining the fitness function\n",
+    "def fitness_function(individual):\n",
+    "    selected_indices = [i for i, val in enumerate(individual) if val == 1]\n",
+    "\n",
+    "    if len(selected_indices) == 0:\n",
+    "        return -1.0,  # Penalize empty selection\n",
+    "\n",
+    "    correlation = []\n",
+    "    # Get selected features\n",
+    "    selected_features = X_train.iloc[:, selected_indices]\n",
+    "    #from selected features calculate correlation using pearson correlation\n",
+    "    for feature in range(len(selected_indices)):\n",
+    "        r, _= pearsonr((selected_features.iloc[:, feature].values), y_train.values)\n",
+    "        correlation.append(abs(r))\n",
+    "    \n",
+    "    mean_correlation = np.mean(correlation)\n",
+    "\n",
+    "    model = DecisionTreeClassifier(random_state= 42)\n",
+    "    model.fit(selected_features, y_train)\n",
+    "\n",
+    "    scores = cross_val_score(model, selected_features, y_train, cv=3, scoring='accuracy')\n",
+    "    mean_accuracy = np.mean(scores)\n",
+    "    #fitness_score = mean_correlation , mean_accuracy\n",
+    "        \n",
+    "    return mean_correlation, mean_accuracy \n",
+    "\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Using DEAP to create Genetic Algorithm"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "C:\\Users\\s2-gado\\AppData\\Roaming\\Python\\Python312\\site-packages\\deap\\creator.py:185: RuntimeWarning: A class named 'FitnessMax' has already been created and it will be overwritten. Consider deleting previous creation of that class or rename it.\n",
+      "  warnings.warn(\"A class named '{0}' has already been created and it \"\n",
+      "C:\\Users\\s2-gado\\AppData\\Roaming\\Python\\Python312\\site-packages\\deap\\creator.py:185: RuntimeWarning: A class named 'Individual' has already been created and it will be overwritten. Consider deleting previous creation of that class or rename it.\n",
+      "  warnings.warn(\"A class named '{0}' has already been created and it \"\n"
+     ]
+    }
+   ],
+   "source": [
+    "#setting up the GA\n",
+    "creator.create(\"FitnessMax\", base.Fitness, weights=(1.0,1.0))  # Maximize fitness\n",
+    "creator.create(\"Individual\", list, fitness=creator.FitnessMax)\n",
+    "\n",
+    "toolbox = base.Toolbox()\n",
+    "toolbox.register(\"attr_bool\", random.randint, 0, 1)  # Binary encoding (0 = ignore, 1 = select)\n",
+    "toolbox.register(\"individual\", tools.initRepeat, creator.Individual, toolbox.attr_bool, n=len(X.columns))\n",
+    "toolbox.register(\"population\", tools.initRepeat, list, toolbox.individual)\n",
+    "\n",
+    "#Operators\n",
+    "toolbox.register(\"mate\", tools.cxTwoPoint)  # Crossover\n",
+    "toolbox.register(\"mutate\", tools.mutFlipBit, indpb=0.05)  # Mutation probability\n",
+    "toolbox.register(\"select\", tools.selNSGA2)  # Multi-objective selection selNSGA2 (Non-dominated Sorting Genetic Algorithm II) is well-suited for multi-objective optimization.\n",
+    "toolbox.register(\"evaluate\", fitness_function)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# --- Define Main GA Function ---\n",
+    "def main(pop_size, generations, cxpb, mutpb):\n",
+    "    population = toolbox.population(n=pop_size)\n",
+    "\n",
+    "    # Evaluate initial population\n",
+    "    fitnesses = list(map(toolbox.evaluate, population))\n",
+    "    for ind, fit in zip(population, fitnesses):\n",
+    "        ind.fitness.values = fit\n",
+    "\n",
+    "    for g in range(generations):\n",
+    "        # Select the next generation\n",
+    "        offspring = toolbox.select(population, len(population))\n",
+    "        offspring = list(map(toolbox.clone, offspring))\n",
+    "\n",
+    "        # Apply crossover and mutationi\n",
+    "        for child1, child2 in zip(offspring[::2], offspring[1::2]):\n",
+    "            if random.random() < cxpb:\n",
+    "                toolbox.mate(child1, child2)\n",
+    "                del child1.fitness.values\n",
+    "                del child2.fitness.values\n",
+    "\n",
+    "        for mutant in offspring:\n",
+    "            if random.random() < mutpb:\n",
+    "                toolbox.mutate(mutant)\n",
+    "                del mutant.fitness.values\n",
+    "\n",
+    "        # Evaluate new offspring\n",
+    "        invalid_ind = [ind for ind in offspring if not ind.fitness.valid]\n",
+    "        fitnesses = list(map(toolbox.evaluate, invalid_ind))\n",
+    "        for ind, fit in zip(invalid_ind, fitnesses):\n",
+    "            ind.fitness.values = fit\n",
+    "\n",
+    "        # Update population\n",
+    "        population = toolbox.select(offspring, k=len(population))\n",
+    "\n",
+    "    # Use sortNondominated to select the best individual(s)\n",
+    "    fronts = tools.sortNondominated(population, len(population))\n",
+    "    best_front = fronts[0]  # Front 1 contains the best non-dominated solutions\n",
+    "\n",
+    "    # Find the individual with the highest correlation in the best front\n",
+    "    #find individual with highest correclation\n",
+    "    best_corr_individual = max(best_front, key=lambda ind: ind.fitness.values[0]) \n",
+    "    #fitness.values[0]: Corr score\n",
+    "    # fitness.values[1]: Accuracy score\n",
+    "    #loops through best_corr_individual and selects the corresponding feature names from X_train.columns\n",
+    "    best_corr_features = [X_train.columns[i] for i in range(len(best_corr_individual)) if best_corr_individual[i] == 1]\n",
+    "    best_corr_value = best_corr_individual.fitness.values[0] #corr of the best individual\n",
+    "\n",
+    "    # Find the individual with the highest accuracy in the best front\n",
+    "    best_acc_individual = max(best_front, key=lambda ind: ind.fitness.values[1])\n",
+    "    best_acc_features = [X_train.columns[i] for i in range(len(best_acc_individual)) if best_acc_individual[i] == 1]\n",
+    "    best_acc_value = best_acc_individual.fitness.values[1]\n",
+    "\n",
+    "    combined_features = list(set(best_corr_features + best_acc_features))\n",
+    "\n",
+    "    # Print results in the desired format\n",
+    "    #print(f\"Correlation: {best_corr_value},\\n Accuracy: {best_acc_value},\\n Best Features: {combined_features}\")\n",
+    "\n",
+    "    return best_corr_value, best_acc_value, combined_features\n",
+    "    # # Get Best Individual\n",
+    "    # best_individual = tools.selBest(population, k=1)[0]\n",
+    "    # selected_features = [X.columns[i] for i in range(len(best_individual)) if best_individual[i] == 1]\n",
+    "\n",
+    "    # print(\"Selected Features using Pearson Correlation GA: \\n\", selected_features)\n",
+    "    # return best_individual.fitness.values[0], selected_features\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "==================================================\n",
+      "Run 1:\n",
+      "Best Correlation Score: 0.1955\n",
+      "Best Accuracy Score: 0.9102\n",
+      "\n",
+      "Selected Features:\n",
+      " ['CardiovascularDisease', 'BehavioralProblems', 'SleepQuality', 'DifficultyCompletingTasks', 'DietQuality', 'PersonalityChanges', 'FamilyHistoryAlzheimers', 'DiastolicBP', 'CholesterolTriglycerides', 'MemoryComplaints', 'FunctionalAssessment', 'ADL', 'CholesterolHDL', 'MMSE', 'AlcoholConsumption']\n",
+      "================================================== \n",
+      "\n",
+      "==================================================\n",
+      "Run 2:\n",
+      "Best Correlation Score: 0.2241\n",
+      "Best Accuracy Score: 0.9136\n",
+      "\n",
+      "Selected Features:\n",
+      " ['Diabetes', 'BehavioralProblems', 'Confusion', 'FamilyHistoryAlzheimers', 'Gender', 'DiastolicBP', 'MemoryComplaints', 'FunctionalAssessment', 'ADL', 'Ethnicity', 'MMSE', 'Hypertension']\n",
+      "================================================== \n",
+      "\n",
+      "==================================================\n",
+      "Run 3:\n",
+      "Best Correlation Score: 0.2480\n",
+      "Best Accuracy Score: 0.9182\n",
+      "\n",
+      "Selected Features:\n",
+      " ['BehavioralProblems', 'Gender', 'MemoryComplaints', 'FunctionalAssessment', 'ADL', 'MMSE']\n",
+      "================================================== \n",
+      "\n",
+      "==================================================\n",
+      "Run 4:\n",
+      "Best Correlation Score: 0.2474\n",
+      "Best Accuracy Score: 0.9129\n",
+      "\n",
+      "Selected Features:\n",
+      " ['Diabetes', 'BehavioralProblems', 'DietQuality', 'EducationLevel', 'Gender', 'CholesterolTriglycerides', 'MemoryComplaints', 'CholesterolHDL', 'FunctionalAssessment', 'CholesterolTotal', 'ADL', 'MMSE']\n",
+      "================================================== \n",
+      "\n",
+      "==================================================\n",
+      "Run 5:\n",
+      "Best Correlation Score: 0.2140\n",
+      "Best Accuracy Score: 0.9122\n",
+      "\n",
+      "Selected Features:\n",
+      " ['BehavioralProblems', 'FunctionalAssessment', 'ADL', 'CholesterolHDL', 'Confusion', 'CardiovascularDisease', 'SleepQuality', 'HeadInjury', 'DietQuality', 'PersonalityChanges', 'PhysicalActivity', 'Disorientation', 'DiastolicBP', 'Ethnicity', 'Smoking', 'MMSE', 'FamilyHistoryAlzheimers', 'MemoryComplaints', 'AlcoholConsumption']\n",
+      "================================================== \n",
+      "\n",
+      "==================================================\n",
+      "Run 6:\n",
+      "Best Correlation Score: 0.2195\n",
+      "Best Accuracy Score: 0.9142\n",
+      "\n",
+      "Selected Features:\n",
+      " ['Diabetes', 'BehavioralProblems', 'SleepQuality', 'Confusion', 'PersonalityChanges', 'EducationLevel', 'MemoryComplaints', 'FunctionalAssessment', 'ADL', 'Ethnicity', 'MMSE', 'SystolicBP']\n",
+      "================================================== \n",
+      "\n",
+      "==================================================\n",
+      "Run 7:\n",
+      "Best Correlation Score: 0.2142\n",
+      "Best Accuracy Score: 0.9209\n",
+      "\n",
+      "Selected Features:\n",
+      " ['CardiovascularDisease', 'BehavioralProblems', 'SleepQuality', 'Forgetfulness', 'DietQuality', 'PhysicalActivity', 'Smoking', 'Disorientation', 'CholesterolTriglycerides', 'MemoryComplaints', 'FunctionalAssessment', 'ADL', 'MMSE', 'Hypertension']\n",
+      "================================================== \n",
+      "\n",
+      "==================================================\n",
+      "Run 8:\n",
+      "Best Correlation Score: 0.2152\n",
+      "Best Accuracy Score: 0.9156\n",
+      "\n",
+      "Selected Features:\n",
+      " ['BehavioralProblems', 'Disorientation', 'MemoryComplaints', 'FunctionalAssessment', 'ADL', 'MMSE', 'Hypertension']\n",
+      "================================================== \n",
+      "\n",
+      "==================================================\n",
+      "Run 9:\n",
+      "Best Correlation Score: 0.1906\n",
+      "Best Accuracy Score: 0.9182\n",
+      "\n",
+      "Selected Features:\n",
+      " ['Diabetes', 'BehavioralProblems', 'SleepQuality', 'DietQuality', 'Disorientation', 'Gender', 'MemoryComplaints', 'FunctionalAssessment', 'ADL', 'Ethnicity', 'MMSE', 'AlcoholConsumption']\n",
+      "================================================== \n",
+      "\n",
+      "==================================================\n",
+      "Run 10:\n",
+      "Best Correlation Score: 0.2151\n",
+      "Best Accuracy Score: 0.9169\n",
+      "\n",
+      "Selected Features:\n",
+      " ['BehavioralProblems', 'DifficultyCompletingTasks', 'SleepQuality', 'PersonalityChanges', 'DietQuality', 'Confusion', 'Forgetfulness', 'Gender', 'HeadInjury', 'MemoryComplaints', 'CholesterolTriglycerides', 'FunctionalAssessment', 'ADL', 'MMSE']\n",
+      "================================================== \n",
+      "\n"
+     ]
+    }
+   ],
+   "source": [
+    "runs = 10\n",
+    "corr_values = []\n",
+    "acc_values = []\n",
+    "for i in range(runs):\n",
+    "    best_corr_value, best_acc_value, selected_features = main(pop_size=300, generations=300, cxpb=0.9, mutpb=0.2)\n",
+    "\n",
+    "    print(\"=\" * 50)\n",
+    "    print(f\"Run {i+1}:\")\n",
+    "    print(f\"Best Correlation Score: {best_corr_value:.4f}\")\n",
+    "    print(f\"Best Accuracy Score: {best_acc_value:.4f}\")\n",
+    "    print(\"\\nSelected Features:\\n\", selected_features)\n",
+    "    print(\"=\" * 50, \"\\n\")\n",
+    "\n",
+    "    corr_values.append(best_corr_value)\n",
+    "    acc_values.append(best_acc_value)\n",
+    "    \n",
+    " \n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 25,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAABmcAAANXCAYAAADAZouKAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAxlpJREFUeJzs3QeYVOXZP+CXXkRExUIT7F2x1yh2xa6xfypqLHwaa+zEXmLvscXejQWNMSgWFHvBjl3UqIi9gNL3fz2v/9lvdtmFXVxml+G+r2uyO2fOnDZziHt+53neZhUVFRUJAAAAAACAkmhemtUAAAAAAAAQhDMAAAAAAAAlJJwBAAAAAAAoIeEMAAAAAABACQlnAAAAAAAASkg4AwAAAAAAUELCGQAAAAAAgBISzgAAAAAAAJSQcAYAAAAAAKCEhDMAAMxS+vTpkx+N5aabbkpLLLFEatWqVerUqVPl9HPOOScttNBCqUWLFql37961vj+2fZlllinR1tJYTjrppNSsWbMGXeaQIUPyMuNnuZoV9hEAgPIgnAEAoKTiwmldHuV4cfWdd95J/fr1SwsvvHC6+uqr01VXXZWnP/zww+moo45Ka621VrruuuvSGWecUdLtivUNHDgwlbtXX301/c///E/q0aNHatOmTZprrrnShhtumI/5pEmTUrn4+9//nq6//vrG3oyZ6njFvzmrrbZaY28KAACzkJaNvQEAAMxaonKk2I033pgGDx48xfQll1wylZsInCZPnpwuuuiitMgii1ROf+yxx1Lz5s3TNddck1q3bl3y7Ypw5o9//GPaZpttUrn6xz/+kQ444IA033zzpd133z0tuuii6eeff06PPvpo2meffdLIkSPTcccdl8olbOjcuXMOAouts8466ddff22U71hTdsstt6RevXqlF154IX3wwQdVzk0AAJhRhDMAAJRUVC4Ue+6553I4U316db/88ktq3759mpl99dVX+WdxO7PC9Hbt2rloPoPEdyyCmTXWWCM9+OCDafbZZ6987dBDD00vvfRSevPNN3/3eiJ4Gz9+fGrbtu0Ur40ZMybNNttsqTFFAFjTts3KRowYkZ555pl0zz33pP333z8HNSeeeGJqiprCdwgAgIajrRkAAE1OYVyVl19+Od/tH6FMoarhvvvuS5tvvnnq2rVrbk0VLcJOPfXUGttSRduweD2Cj1VXXTUNHTq0xvWNGzcuX5CNO+ZjmdH2KtqMxfT6VCssvfTS+f2xbQceeGD64YcfKl+PO/MLF33nmWee3EapMK5ItNWKC6+Flm51aUkVx2bNNdfM+7bgggumK664Yrr2K9YX677hhhsq1x8VF6+//nr+/f7776+yzpi24oorVlnPZpttNkVLqP/85z/pD3/4Q76YHGFIfGZvvfVWja3eomonWoxFcLDyyitXWWeI4xHrffrpp9Phhx+ej18sd9ttt01ff/31NI/VySefnN8fF96Lg5mCWGdxlUkcjyOOOKKy/dniiy+ezj333FRRUVHlfbHMgw46KC+38NkPGjSocnufeOKJ9L//+79p3nnnTd27d6/3sakuvifrr79+Xl6sa6mllkqXX355lXniexbLinUXPs/CGEu1jcfyz3/+M6200kr5uxQVNxGUfv7551XmiePToUOHPD0qrOL3+Bz+8pe/1KklXF3P28K5P3z48LTeeuvlc79bt27p7LPPnmKZn332Wd6WOI5xTA477LB6nbMhPrs555wzb1t8D+N5TeJcjuXH8Y3tj89zjz32SN98803lPGPHjs3n9GKLLZa/y126dEnbbbdd+vDDD6d6/D/++OMpzvvC8Y739u3bN39Pdtttt/xa/Du2ww47pAUWWKDyvI5ti6qoms6vHXfcMX9W8fnGd/n444/Prz3++ON5vffee+8U77v11lvza88++2y9jicAAHWncgYAgCbp22+/zRf9d95553yxONpRhbiAGRct4yJ9/IyWYCeccEL66aef0jnnnFP5/mgRFnfCR4AR1REfffRR2mqrrXIIEBczi6sdYvpTTz2V9ttvv9xO7Y033kgXXHBBeu+99+o0FktckI0AIMYv6d+/f3r33XfzRfMXX3wxBwqtWrVKF154YW7hFhdC47XY9uWWWy4HJxEiRUulaL0VYpun5vvvv88XbOOi6y677JLuvPPOvN6ovNl7773rtV/RTu5Pf/pTDq9ivhAXzuMCeVT4PPnkk3k5hYvCUX3x2muv5ePdsWPHvJ6oPCi8t7DMPffcM22yySbprLPOylVPsc9rr712euWVV/IF7hAhQoyzExffjznmmHyRPfYlLrjffffdOXwp9uc//zlfSI/AKS5oxzGNcOSOO+6o9VjFuqN1WYR8cTF7WiKAif2NC9fR7qx3797poYceSkceeWQOJuL4FYvvX2xzbEcEG7FvMbZNiGAmLorH9zMCn/ocm5rEfBECxfa1bNky/etf/8rriM8gwsAQxySOU3y/ChfhC+dOTeJ82muvvdIqq6ySzjzzzDRq1Kjcdi++t7E9xVVeEaTEdkcQF2HVI488ks4777z8fYnv39TU9bwtfL833XTTHGzEd/yuu+5KRx99dFp22WXzvwkhgogNNtggffrpp+nggw/OoU8c21hufUQYE+uJcyfOpcJ5G8ejYPTo0TlMe/vtt/P5FeFkhDIRIkZAFJ97HJstttgif9fi36xDDjkkt82LqsCoyopjVF8TJ07Mxzu+G3G8C5WDEabF9yaO+dxzz53/7bjkkkvytsRrBRGwxnbHvz9xfsZ3K8Ke+N6cfvrpOQiLfwvjGFQ/12JabHNUmwEAMINUAABAIzrwwAOjHKHKtHXXXTdPu+KKK6aY/5dffpli2v7771/Rvn37irFjx+bn48ePr5h33nkrevfuXTFu3LjK+a666qq83Fh+wU033VTRvHnziqFDh1ZZZqw75n366aenuv1fffVVRevWrSs23njjikmTJlVOv/TSS/P7r7322sppJ554Yp729ddfV1nGnnvuWTHbbLNV1EXh2Jx33nmV02IfY19jn2Pf67tfse7Yhuo233zzilVXXbXy+XbbbZcfLVq0qPjPf/6Tpw0bNiwv77777svPf/7554pOnTpV7LvvvlWW9eWXX1bMMcccVaZvsMEGFcsuu2zl5xYmT55cseaaa1YsuuiildOuu+66vI4NN9wwv15w2GGH5W354Ycfaj1er732Wn7vIYccUlEXAwcOzPOfdtppVab/8Y9/rGjWrFnFBx98UDkt5otj/NZbb1WZt7C9a6+9dsXEiRMrp9fn2BS+K9P67m+yySYVCy20UJVpSy+9dJXveMHjjz+elxk/i8+TZZZZpuLXX3+tnO+BBx7I851wwgmV0+L7EdNOOeWUKstcYYUVKlZaaaWKaanLeVv8/b7xxhurfL/nn3/+iu23375y2oUXXpjnu/POOyunjRkzpmKRRRapso9T89JLL+V5Bw8enJ/Hd6t79+5TfFfiOMR899xzzxTLKHwf4zyPec4///xa56l+/AtGjBiRp8f3pvrxPuaYY+p0LM8888z8/fzkk08qp62zzjoVs88+e5VpxdsTjj322Io2bdpUOYfi37SW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fUdr2s7fc97Wdu7H+uN7XuyTTz6p2GqrrSrat29f0blz54pDDjmkYtCgQdP8Tmy55Zb5GI4ZM6bWeeLziM/+m2++yc+//fbbioMOOih/P1u3bl3RvXv3vE2F18Mvv/xScfzxx+d/c+K98Z3+4x//mL/jBXHub7/99nmb4/u3//77V7z55pt5m+N7U5d/E4YPH16x4YYbVnTo0CHv97777lvx2muvTbGMEMvedtttKzp16pT3efHFF6/461//OsUyx40bl7cnvpO//vprrccFAICG0yz+5/eEOwAAAMDMK1olRtVcVGZFS0YAAGY8Y84AAADALGzgwIF5zKNobwYAQGmonAEAAIBZ0PPPP59ef/31PM5M586d07Bhwxp7kwAAZhkqZwAAAGAWdPnll6f+/funeeedN914442NvTkAALMUlTMAAAAAAAAlpHIGAAAAAACghIQzAAAAAAAAJdSylCsrJ5MnT05ffPFFmn322VOzZs0ae3MAAAAAAIBGFKPI/Pzzz6lr166pefOp18YIZ6ZTBDM9evRo7M0AAAAAAACakP/+97+pe/fuU51HODOdomKmcJA7duyYysmECRPSww8/nDbeeOPUqlWrxt4coAE4r6G8OKeh/Divofw4r6H8OK+hvEyYAef0Tz/9lIs6CvnB1AhnplOhlVkEM+UYzrRv3z7vl/+jgfLgvIby4pyG8uO8hvLjvIby47yG8jJhBp7TdRkKZepNzwAAAAAAAGhQwhkAAAAAAIASEs4AAAAAAACUkDFnAAAAAACgzFVUVKSJEyemSZMmNfamNJkxZ1q2bJnGjh1b52PSokWL/J66jCkzLcIZAAAAAAAoY+PHj08jR45Mv/zyS2NvSpMKq+aff/703//+t15hS/v27VOXLl1S69atf9f6hTMAAAAAAFCmJk+enEaMGJGrPrp27ZpDhYao/CiH4zJ69OjUoUOH1Lx58zqFORFyff311/l4LrroonV6X22EMwAAAAAAUKYiUIggokePHrnqg9/EMYlj07Zt2zqHLO3atUutWrVKn3zySeV7p9f0xzoAAAAAAMBM4fdUedDwx1HlDABAExR34MTghDWJ6TGI45gxY/IdO8wcom1AmzZtcisBAAAAZm3CGQCAJlRS/fTTT6c33ngj97CdljfffLMk20XDiWBmkUUWSWussUbq2bNnY28OAAAAjUQ4AwDQBMTAggMHDsyByzLLLJPWWmutXGVhkMbyCt++//779Prrr6ebbrop7bLLLmnhhRdu7M0CAACgEQhnAACagP/+97+5YmbbbbdNyy23XGNvDjPQqquumm6++eY0ePBg4QwAAMBU9OvXL91www3595YtW6bu3bunHXbYIZ1yyimpbdu2aWZmBCAAgCbg7bffTrPPPntadtllG3tTmMHiD4rVVlstjRo1Kn333XeNvTkAAAB1NmlSSkOGpHTbbb/9jOcz2qabbppGjhyZPvroo3TBBRekK6+8Mp144olpZiecAQBoAn744Yc077zzamM2i5h//vkrP3cAAICZwT33pNSrV0rrrZfSrrv+9jOex/QZqU2bNvlvqB49eqRtttkmbbjhhrkTQejVq1e68MILq8zfu3fvdNJJJ1U+j7+z//GPf+ROFe3bt0+LLrpouv/++ytfj/bTu+22W5pnnnlSu3bt8uvXXXfdjN0p4QwAQNMZjyQGi6/Jt99+m4Objz/+uOTbxfRbffXV0913313ja4XPOj53AACApi4CmD/+MaXPPqs6/fPPf5s+owOaghin9ZlnnkmtW7dO9XHyySenHXfcMY8B2rdv3xzGFDoZnHDCCWn48OHpP//5T+5qcfnll6fOnTunGU04AwDQxJ1++ulp6623zncEFXz66adp8803z3f9RHBz5JFHpokTJ9a6jAh29tlnn7TgggvmO4FirJMoAx8/fnzlPGPHjs39fKO1WrTeijuSpubpp5/O88VdScXOPPPMtMoqq+Q2bbFtsZx333233vtd330Mw4YNSxtttFHq1KlTmnvuudN+++2XRo8eXfn6a6+9lnbZZZd8x1UchyWXXDJddNFFUyxnyJAhacUVV8x3aC2yyCLp+uuvr/L6zz//nA499NDUs2fPvJw111wzvfjii1XmGTBgQDrmmGMEMAAAwEwtWpcdckhKFRVTvlaYduihM67F2QMPPJA6dOiQx5iJv1e/+uqr/PdhfcTfuvG3YPx9d8YZZ+S/E1944YXKvz1XWGGFtPLKK+e/u6MyZ8stt0wzmnAGAKAJ++WXX9I111yTg5WCSZMm5dAigpW4YygGR4zwIO72qc0777yTQ4LozfvWW2/lPr1XXHFFOu6446osN4KGgw8+OP/H6NREO6499tgjbbDBBlO89sQTT6QDDzwwPffcc7nUfMKECWnjjTdOY8aMqfN+T88+fvHFF3m74z+2n3/++TRo0KC8r/Ef4QUvv/xyDnpuvvnm/Nrxxx+fjj322HTppZdWzjNixIi87vXWWy+9+uqrOYT505/+lB566KHKeeJ57NtNN92U3njjjbx/se7P47ax/2+zzTbLIU7cfQUAADCzGjp0yoqZ6gHNf//723wzwnr//2+z+Dtvzz33THvttVfafvvt67WM5ZZbrvL32WabLXXs2DGHPOGAAw5It99+e77x8Kijjsp/g5ZCy5KsBQCA6fLggw/m6o1okVXw8MMP55LrRx55JM0333z5PyBPPfXUdPTRR+e+ujWVd8cAivEoWGihhXI1S5Rrn3vuuZX/gRrPC1UxUxsPJf7jddddd83tuQYOHFjltQhFikWoEoFIBCPrrLNOnfZ7evYx7qZq1apVuuyyy1Lz5r/dgxQBVPxH+AcffJBDm7333rvKe+I4PPvss+mee+5JBx10UOV7osLovPPOy8+juuapp57KgdYmm2ySfv3119yu7L777qvcn9imf/3rX/n4nXbaaXlaHJsol4//yI+wBwAAYGY0cmTDzldfs802W/57Llx77bVp+eWXr7yJMf72q6hW0hM3CFYXfysWi3FoCl0O4sa6Tz75JP/9HTfhxU2IccNh4W/lGUXlDABAEzZ06NC00korVZkWYUKUckdoURChwU8//ZSrQerqxx9/THPNNVe9tykGRvzoo49yW7S6rifUZ13Ts4/jxo3LoU0hmAlRCRQiXJna9hVvW6y7euVQrDumh2itFpU9UVJfLNZVfT2rrrpq/gwBAABmVl26NOx8v0fz5s1zB4hoIx03zs0zzzxpZFEqFH8zRjeE+orlRFVOdFm48MIL01VXXZVmNOEMAEATFnfvdO3atcq0L7/8skpoEQrP47W6iEqSSy65JO2///712p73338/j6MS/8Ea481MS9yJFG3B1lprrbTMMsvUeT3Ts4/rr79+fu2cc87J7dC+//77vK2h+D/Wi0W5+h133JHHppnWuuM/8uM//mMsnTXWWCNX8kQrtQhq4nhEeFN9PfHZ/fe//zXuDAAAMNP6wx9S6t49qk1qfj2m9+jx23ylsMMOO+ROBdE1If4OjHbTcVNctJyOgCVeq4+48TA6I8TfyXEzYHRliA4KM5pwBgCgCYswoHqFxu8V46JEi7P4D9p99923zu+LECJamZ188slpscUWq9N7ohT8zTffzK29ZrSll146j00T7cjat2+f5p9//tyeLIKV4mqagtiurbfeOv+HeIwZUx/xH/9ROt+tW7fcdu7iiy/Og0tWX09U00QwE1U9AAAAM6PIOi666Lffqwc0hecXXvjbfKXQsmXL3Jb67LPPzjfkrbvuummLLbbI7aS32WabtPDCC9dredGBIcYijZbY0bo6wp1S/A1rzBkAgCasc+fOuQKkWIQOL7zwQpVpo0aNqnxtaqLSIwZTXHPNNetdph2D27/00kvplVdeqRyfJYKHCCniP45jnJi4a6kg5ok7jp588snUPW6zqofp3ccIj+IR80Zf4ugjfP755+exZYrFeDbRRzgqZqIcvvq6C+sqXncMGFlokxb/sf/EE0+kMWPG5IqaLl26pJ122mmK9Xz33Xd5OwrvAwAAmBltt11Kd92V0iGHpPTZZ/83Pf7Ui2AmXp8Rrr/++hqnRyhT6JRQPUiJ6pli1cekCTHGavw9G3/PHX/88emvf/1rKjWVMwAATdgKK6yQg4Ri0VIryrW/+uqrymkxaGGEB0sttdRUK2b69OmTx7CJcWNqqiaZmlh+rPfVV1+tfBxwwAFp8cUXz7+vttpqlf/hG8HMvffemx577LFcvVJf07uPBVEt06FDh9yyLCqPNtpoo8rXokw9Aqr4D/bTTz+9xnU/+uijVabFumN6dRG8RDATAdpDDz2UK3GqV+fEZwgAADCziwDm449TevzxlG699befMbzLjApmyp3KGQCAJiwGoo/y6rj4P+ecc+Zp0YIrAordd989l3HHGClR/REtxKLFVoiqkz322COHDNF6qxDM9OzZM5177rnp66+/rlxHcSVKBEExXktUfESlTIQuoXfv3jnMqT5uzLzzzpvDj+LpsR233npr7tkb47MUxoiZY4456lxBMj37GC699NJcFRTBTAQqRx55ZPrb3/6WOnXqVBmWRHVPHNfDDz+8ctuibD0GgAwROMVyjjrqqLT33nvngOnOO+9M//73vyu3L4KYCKEimIq+xLGeJZZYIu21115V9iP6Hte3ZRoAAEBTFa3L+vRp7K0oD8IZAIAmbNlll00rrrhiDgf233//yiAh2oX1798/V3NE9UZUgZxyyimV7/vll1/Su+++myZMmJCfR1ARIUI8qrcYKy7x7tu3b/rkk08q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5p9//ib9ofXt2zeVqznnnHOGBj8DBw5MnTt3TnvuuWcOawAAAACA8vfrr7+mG264IbVr1y7tscceqWfPnjmgofw+5zfffDM99NBD+Rp/BDQ04XDm6aefTu+9917acccdc1WFtLR8ffXVV7ky5/7770+77rprY28OAAAAAFACcWP+6NGjc1eiOeaYo7E3hxkkwrdVVlklTZw4MT3yyCNpk002ydP4P00qkowkbemll05LLrmkYKbMzTvvvOkPf/hDbmH3yy+/NPbmAAAAAAAl8NFHH6Xu3bsLZmYRSy21VG5z9sknnzT2pjQ5TSaciQTt66+/TgsuuGBjbwolEgNCxYkZVTQAAAAAQPkbO3asYQ5mIYXPOj53mnA4E1q3bt3Ym0KJFD7rCRMmNPamAAAAAAAlEGNS19Y16dtvv80ddz7++OOSbxfTb+edd07nnXdeja8VPuv43Gmi4UyBE7O8XHHFFWnLLbes8TWt6wAAAACAgtNPPz1tvfXWqVevXpXTPv3007T55pun9u3b5+vDRx55ZOWN/jWJ68f77LNP7tAUY5wsvPDC6cQTT0zjx4+vcf4PPvggzT777KlTp05TvHbhhRemxRdfPC+nR48e6bDDDpuiAuSyyy7L29u2bdu02mqrpRdeeKHe+13ffQzDhg1LG220Ud7uueeeO+233355LJ9iBx98cFpppZVSmzZtUu/evWtczkMPPZRWX331fAzmmWeetP3221e5Bn/PPffk9cRrHTt2TGussUZ+T7EBAwbkz+7HH3+s977PyppcODMjT8zCctZcc838nppOuPDoo4/meeILOf/886ejjz56iuW+/vrrecyUOOnixDz77LOnWM4PP/yQDjzwwNSlS5d8Aiy22GLpwQcfrNd+x8key4gTLErA4uQYNWrUVN8Tr/fr1y917do17+emm26a3n///SrzXHXVValPnz75hIqQJLa1uvfeey8f886dO+f51l577fT4449Xvv7aa6+lXXbZJe9//AMVYwVddNFFVZax9957538ohg4dWq/9BgAAAABmHTEu9TXXXJODlYJJkybl678RrDzzzDPphhtuSNdff3064YQTal3OO++8k4dSuPLKK9Nbb72VLrjggnwD+XHHHTfFvNHRJ65vxnXe6m699dZ0zDHH5GDn7bffztt2xx13VFlOPD/88MPzPHENdPnll88D39dnGIfp2ccvvvgibbjhhmmRRRZJzz//fBo0aFDe17gmXF1cn91pp51qXM6IESPy9d/1118/vfrqqzl0+eabb9J2221XOc+TTz6Zw5m4rv3yyy+n9dZbL9+M/8orr1TOs8wyy+QQ7Oabb67zfjOThDMNdWKGmH+HHXZI/fv3r/H1CBz69u2bA434gsUJdv/99+cTseCnn35KG2+8cerZs2f+Qp5zzjnppJNOyoFH8XriSxsp41133ZXefffddPXVV6du3brVa98jjf3Xv/6V/vnPf6Ynnngin3jFJ0d1UR62zTbb5IG17rvvvrwPsZ1xso4ZM6bKMY19rOkfpYItttgih1KPPfZY3s/4xyWmffnll/n1mBahWJx0cfIff/zx6dhjj02XXnppldZlu+66a7r44ovrtd8AAAAAwKwjLv7HDe5RxVHw8MMPp+HDh+frj1H5sdlmm6VTTz01V6vUVgkT1zyvu+66fP02xrzeaqut0l/+8pdcAVJdVHwsscQSaccdd5zitbjmvNZaa+Vrm1EwEMuLIKe4Mub8889P++67b9prr73ywPcRAsXN8tdee22d93t69vGBBx5IrVq1yvNEZc8qq6yS13333XfnSqCCuCYbN/7HcahJXN+N6+ynnXZaDldWXHHFfKwiqCkMRRHVQ0cddVRex6KLLprOOOOM/DOuWReLwOb222+v834zk4QzDXVihpNPPjkHHssuu2yNr0cYs9xyy+WQJ5LHddddN1fFxHJ//vnnPM8tt9yS1xEn2dJLL5176kWJWJyMBfHad999lwYOHJhP4jiBY1kRcNRVlIFFKBXLjfQyStDiH5b4h+G5556r8T1RIROvXX755fmEiZMzfv/111/TbbfdVjnfoYcemgOn4mNaLBLSWFbME8cjTri//e1vOdR58803K1PXqJSJ/YoT/H/+53/yP0TV/6GLEzMCrtgGAAAAAIDqovNOXP8s9uyzz+bruPPNN1/ltKhMiZvn42bx+lxnnWuuuapMixvS44b4uO5bk+isFOFFIYyJm+HjOnXc2B/i+nC8HjfFFzRv3jw/j+2uq+nZx3HjxuWb4mN9BdHZKDz11FN1Xncc71hGXHOOkCaO00033ZT3IcKfmkRVUlwnr348V1111XysYtsoo3BmRp6Y1cWXJ1qVFYsvdrQXi5OtsO511lmnckD7wrqjOub777/P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BgAAAAAAoISEMwAAAAAAACUknAEAAAAAACgh4QwAAAAAAEAJCWcAAAAAAABKSDgDAAAAAABQQsIZAAAAAACAEhLOAAAAAAAAlJBwBgAAAAAAoISEMwAAAAAAACUknAEAAAAAACgh4QwAAAAAAEAJtSzlygAAaBwVFRXpo48+SsOHD0/ffPNNmjhxYmNvEg2oWbNmqW3btmmhhRZKyyyzTOrYsWNjbxIAAABTIZwBAJgFgpn//Oc/6cUXX0xzzjln6tGjR2rZ0n8GlttnPHr06PTYY4+lp556Ku2+++6pS5cujb1ZAAAA1MJf5QAAZe6tt97Kwczmm2+eVlpppVxlQXn65Zdf0i233JLuuOOOdMghh/isAQAAmihjzgAAzALhTLdu3dLKK6/sYn2Za9++fdpoo43Sjz/+mD7//PPG3hwAAABqIZwBAChzX375ZerVq1djbwYlssACC+QQLj53AAAAmibhDABAmZswYUJq1apVY28GJdK8efP8ecfnDgAAQNMknAEAmAXU1s7s22+/TfPOO2/6+OOPS75NTL8rrrgibbnllo29GQAAAEwn4QwAwCzs9NNPT1tvvXWVtmeffvpp2nzzzfP4JRHcHHnkkWnixIm1LiOCnX322SctuOCCqV27dmnhhRdOJ554Yho/fnzlPGPHjk39+vVLyy67bGrZsmXaZpttpljOkCFDcohU/VHcnuvJJ5/MoUTXrl3zawMHDpyu/f7uu+/Sbrvtljp27Jg6deqUt3/06NFTfc+HH36Ytt122zTPPPPk9+24445p1KhRUxzPNddcMx+7WG5trr/++rTccsultm3b5mN84IEHVnn9zjvvTL17987L6dmzZzrnnHOqvL733nunYcOGpaFDh07X/gMAANC4hDMAALOoX375JV1zzTU5mCiYNGlSDmYiWHnmmWfSDTfckIOEE044odblvPPOO2ny5MnpyiuvTG+99Va64IILcmXHcccdV2W5EdwcfPDBacMNN5zqdr377rtp5MiRlY8ILwrGjBmTll9++XTZZZf9rn2PYCa2dfDgwemBBx7Ioc9+++1X6/yx3o033jgHQo899lh6+umn8zGKoCj2vSCm7bDDDql///61Luv8889Pxx9/fDrmmGPyNjzyyCNpk002qXz9P//5T96+Aw44IL355pvp73//ez6ml156aeU8rVu3Trvuumu6+OKLf9dxAAAAoHG0bKT1AgDQyB588MHUpk2btPrqq1dOe/jhh9Pw4cNzYDDffPPl6o1TTz01HX300emkk07KoUB1m266aX4ULLTQQjlgufzyy9O5556bp80222z5eYhg44cffqh1uyKMqa3qZLPNNsuP3+Ptt99OgwYNSi+++GJaeeWV87RLLrkk9e3bN29vVOVUF9scFUKvvPJKrpoJEVzNOeecOawpBE4nn3xy/hmBVk2+//77NGDAgPSvf/0rbbDBBpXTo4qm4KabbsqVRRHOFI7nsccem84666xcYVNoURfB0EYbbZR+/fXXHHwBAAAw81A5AwAwi4qWWCuttFKVac8++2xuPRbBTEFUdfz000+5yqOufvzxxzTXXHNN13ZFINSlS5ccPEQo0tBiHyP8KQQzIcKV5s2bp+eff77G94wbNy6HIhFmFURLsnjPU089Ved1R6VOVNp8/vnnackll0zdu3fP7dH++9//VllXLLtYhC+fffZZ+uSTTyqnxfZHu7nathkAAICmSzgDADCLigv91atEYnyX4mAmFJ4Xj/0yNR988EGuRNl///3rtT0RyEQ7tLvvvjs/evTokfr06ZPHVmlIsR/FrdJCjIMTYVJt+xjVRVH9ExVE0Q4u2pz95S9/ye3aovVaXX300Uc5nDnjjDPShRdemO666648/k0EUYUxeiIMu+eee9Kjjz6a533vvffSeeedl18rXleMRzPHHHNUCWwAAACYOQhnAABmUdEOq3qFxu8VFSHR4izGXdl3333r9d7FF188BzpRzbPmmmuma6+9Nv+M8VYa2zzzzJP++c9/5nZkHTp0yKFItGZbccUVc/VMXUXYMmHChDxWTIQwEfrcdttt6f3330+PP/54nieO20EHHZS22GKL3EYu5tl5553za9XXFRU1ERYBAAAwcxHOAADMojp37pzHQCk2//zzp1GjRlWZVnger03NF198kdZbb70cqFx11VUNso2rrrpqrsRpSLEfX331VZVp0R4sKlimto8bb7xx+vDDD/N7v/nmmzw2TIRRMSZMfaqDwlJLLVUl+InP4tNPP83Po31ajC8zevToXBUT1TxxHEL1dcU2x/sBAACYuQhnAABmUSussEIaPnx4lWlrrLFGeuONN6qEFzFOSseOHasECtVFSBEtyKLq5brrrqtXNcnUvPrqq5WBRkOJfYyql5dffrly2mOPPZarWlZbbbVpvj+ClBizJt4Tx2mrrbaq87rXWmut/PPdd9+tErBE2NOzZ88q87Zo0SJ169YtV89EdU1sd3EQE0HR2LFj8+cIAADAzKVlY28AAACNI9pqHXvssbl6Zs4556ysDokQZvfdd09nn312rtoYMGBAOvDAA1ObNm3yPC+88ELaY4898pgoER4UgpkIF84999z09ddfV66juBIlgqAYVyXCiJ9//jkHL6F37975Z4zBsuCCC6all146hw7/+Mc/cgDy8MMPVy4jqkmKK2lGjBiRlxPjxSywwAJ12u8ll1wyt16L9mExxk20GYs2YtE6rDAGT+zTBhtskG688cbKqpUIneK9EZA8++yz6ZBDDkmHHXZYbsdWENUvsX/xM8ajKezjIossktuhLbbYYmnrrbfO743qogi94jNYYoklctVRiKAmxqKJYxrHIdYbLdWeeOKJKvsxdOjQXEmz8MIL1/kzBwAAoGkQzgAAzKKWXXbZPGbKnXfemcd6KVRrPPDAA6l///65UmO22WZLe+65ZzrllFMq3xdjnETlR4QahcqaCEzi0b179yrrqKioqPy9b9++VQavL1R8FOaJ4OaII47IwUgMdr/ccsulRx55pDK0CC+99FKV54cffnj+Gdt4/fXX599POumk/PvHH39c677fcsstOZCJACaqfLbffvs8DkxB7FvsY/F4LvE8gpQIX3r16pWOP/74HM4UO+GEE9INN9wwxT7GeDIRtoQIfOJ9m2++eV73uuuumwYNGpRatWpV+b5Yxl/+8pd8bOJzGDJkSGVIVBDVNPUd1wcAAICmQTgDADALizDhyCOPzBf5C63IogLmwQcfrPU9ETIUhy79+vXLj2mZWlgSjjrqqPyYmurrrklU0xSCkNpEpc2tt95a6+sRvlRfz9/+9rf8mJoIhQohUW2iWuaaa67Jj9rapkVlztS89dZbuSongjUAAABmPsIZAIBZWFRvvP/++7lapUePHmlmF4FKVJk89dRTqZyNHDkyV+DMMcccjb0pAAAATAfhDABAmYtWZYUWZDU59NBDU7lo1qxZldZp5WrDDTecakA1ceLE/LkDAADQNP3WuwIAgLIVbbKiMoZZQ1TVTJ48OX/uAAAANE3CGQCAMrfUUkvl8V4++OCDxt4UZrBJkybltm7t27fP4+YAAADQNGlrBgBQ5nr37p3ee++9dOutt6aFFloojy3TsqX/DCwn0crs559/Tu+++24aPXp02mmnnVLz5u7DAgAAaKr8VQ4AUOZi7JEdd9wxDRs2LA0fPjy9+OKLucKCpi2GCRo7dtrztW2bUqtWKbVr1y4tssgiacUVV0xdu3YtxSYCAAAwnYQzAACzSECzyiqr5AczhyFDUlpvvWnP9/jjKfXpU4otAgAAoKHodQAAAE3QH/6QUvfuKTVrVvPrMb1Hj9/mAwAAYOYinAEAgCaoRYuULrrot9+rBzSF5xde+Nt8AAAAzFyEMwAA0ERtt11Kd92VUrduVadHRU1Mj9cBAACY+RhzBgAAmrAIYLbeOqWhQ1MaOTKlLl1+a2WmYgYAAGDmJZwBAIAmLoKYPn0aeysAAABoKNqaAQAAAAAAlJBwBgAAAAAAoISEMwAAAAAAACUknAEAAAAAACgh4QwAAAAAAEAJCWcAAAAAAABKSDgDAAAAAABQQsIZAAAAAACAEhLOAAAAAAAAlJBwBgAAAAAAoISEMwAAAAAAACUknAEAAAAAACgh4QwAAAAAAEAJCWcAAAAAAABKSDgDAAAAAABQQsIZAAAAAACAEhLOAAAAAAAAlJBwBgAAAAAAoISEMwAAAAAAACUknAEAAAAAACgh4QwAAAAAAEAJCWcAAAAAAABKSDgDAAAAAABQQsIZAAAAAACAEhLOAAAAAAAAlJBwBgAAAAAAoISEMwAAAAAAACUknAEAAAAAACgh4QwAAAAAAEAJCWcAAAAAAABKSDgDAAAAAABQQsIZAAAAAACAEhLOAAAAAAAAlJBwBgAAAAAAoISEMwAAAAAAACUknAEAAAAAACgh4QwAAAAAAEAJCWcAAAAAAABKSDgDAAAAAABQQsIZAAAAAACAEhLOAAAAAAAAlJBwBgAAAAAAoISEMwAAAAAAACUknAEAAAAAACgh4QwAAAAAAEAJCWcAAAAAAABKSDgDAAAAAAAwK4Uzl112WerVq1dq27ZtWm211dILL7xQ67wTJkxIp5xySlp44YXz/Msvv3waNGhQlXmefPLJtOWWW6auXbumZs2apYEDB9a4rLfffjtttdVWaY455kizzTZbWmWVVdKnn37a4PsHAAAAAADQZMKZO+64Ix1++OHpxBNPTMOGDcthyyabbJK++uqrGucfMGBAuvLKK9Mll1yShg8fng444IC07bbbpldeeaVynjFjxuTlROhTmw8//DCtvfbaaYkllkhDhgxJr7/+evrrX/+aAx8AAAAAAIAZqWVqROeff37ad99901577ZWfX3HFFenf//53uvbaa9Mxxxwzxfw33XRTOv7441Pfvn3z8/79+6dHHnkknXfeeenmm2/O0zbbbLP8mJrCMs4+++zKaVGNAwAAAAAAULbhzPjx49PLL7+cjj322MppzZs3TxtuuGF69tlna3zPuHHjpqhuadeuXXrqqafqvN7JkyfnAOioo47KVTpRdbPgggvm7dhmm21qfV+sOx4FP/30U2WrtXiUk8L+lNt+wazMeQ3lxTkN5cd5DeXHeQ3lx3kN5WXCDDin67OsZhUVFRWpEXzxxRepW7du6ZlnnklrrLFG5fQITZ544on0/PPPT/GeXXfdNb322mt5HJmodHn00UfT1ltvnSZNmlQlOCmIMWfuvffeKqHLl19+mbp06ZLat2+fTjvttLTeeuvlcWuOO+649Pjjj6d11123xu096aST0sknnzzF9FtvvTUvCwAAAAAAmHX98ssvOcf48ccfU8eOHRu2cqZXr15p7733Tv369UsLLLBAKqWLLroot0GLsWIieImAJlqiRRu0+lTOhAh1DjvssPx77969c0gUbdVqC2eisibGxymunOnRo0faeOONp3mQZzaR7g0ePDhttNFGqVWrVo29OUADcF5DeXFOQ/lxXkP5cV5D+XFeQ3mZMAPO6ULHrbqodzhz6KGHpuuvvz6dcsopuepkn332Sdtuu21q06ZNvZbTuXPn1KJFizRq1Kgq0+P5/PPPX+N75plnnlw1M3bs2PTtt9+mrl275rFpFlpooXqtt2XLlmmppZaqMn3JJZecanu02L+a9jE+tHL9x7ic9w1mVc5rKC/OaSg/zmsoP85rKD/OaygvrRrwnK7PcppPTzjz6quvphdeeCEHGn/+859zm7CDDjooDRs2rM7Lad26dVpppZVya7LiqpZ4XtzmrCYx7ky0RJs4cWK6++67cxVMfda7yiqrpHfffbfK9Pfeey/17NmzzssBAAAAAACYHvUOZwpWXHHFdPHFF+exY0488cT0j3/8I4ce0SIs2ozVZSibaBN29dVXpxtuuCG9/fbbqX///mnMmDG5VVnYY489cjuxghiH5p577kkfffRRGjp0aNp0001zoBPj1BSMHj06h0fxCCNGjMi/f/rpp5XzHHnkkemOO+7I6/7ggw/SpZdemv71r3+l//3f/53ewwEAAAAAADBj2poV92O7995703XXXZf7sq2++uq5xdlnn32WjjvuuPTII4+kW2+9darL2GmnndLXX3+dTjjhhPTll1/mYGfQoEFpvvnmy69HoNK8+f/lR9HObMCAATmc6dChQ+rbt2+66aabUqdOnSrneemll3K7tYLCODF77rlnbscWog1bjC9z5plnpoMPPjgtvvjiuQJn7bXXnt7DAQAAAAAAMGPCmWhdFoHMbbfdloOTqG654IIL0hJLLFE5T4QfUUVTF9EOLR41GTJkSJXn6667bho+fPhUl9enT586Ve3svffe+QEAMKuJyuOPP/44ffLJJ2ncuHGNvTk0sBgnMdr19urVq8qNTgAAAMzE4UyELhtttFG6/PLL0zbbbFPjADcLLrhg2nnnnRtqGwEAaCA//PBDuvHGG9P333+fZpttttS+ffvUrFmzxt4sGkjcpPTLL7+kJ598Ms0555z5RqriKnMAAABm0nAmWorFnXhTE3/oR3UNAABNq2ImgpkQ7Wi7desmmCnTgObzzz/PYzXG5x1V6ipoAAAAmpZ6/5X21Vdfpeeff36K6TEtxnsBAKBpivH8omImWtB2795dMFOm4nONzzc+5/i843MHAABgJg9nDjzwwPTf//53iulxd168BgBA0xRjzLRr1y5fuKf8xeccbetifCEAAABm8nBm+PDhacUVV5xi+gorrJBfAwCgaRo3bpwxZmYh8TlHGBefOwAAADN5ONOmTZs0atSoKaaPHDkytWxZ7yFsAABoAr799ts077zzqrKYyey8887pvPPOq/V1QRwAAECZhDMbb7xxOvbYY9OPP/5YOe2HH35Ixx13XNpoo40aevsAACiB008/PW299dapV69eldNirJLNN988V9tEcHPkkUemiRMn1rqMCHb22WeftOCCC+aKjYUXXjideOKJafz48ZXzjB07NvXr1y8tu+yy+caebbbZZorlDBkyJIcK1R9ffvll5TxnnnlmWmWVVdLss8+ety2W8+6779Z7v+u7j2HYsGH5v3s7deqU5p577rTffvul0aNHV5nn4IMPTiuttFK+sal37941Hqua9vG5556rMl/8d3a0Du7SpUte1mKLLZYefPDBytcHDBiQP7vi/zYHAACg6at3qcu5556b1llnndSzZ8/cyiy8+uqrab755ks33XTTjNhGAABmoF9++SVdc8016aGHHqqcNmnSpBxazD///OmZZ57JVdJ77LFHatWqVTrjjDNqXM4777yTJk+enK688sq0yCKLpDfffDPtu+++acyYMfm/IQvLjeAmwou77757qtsVYUvHjh0rn0d4UvDEE0/k0CICmghT4kahuIko2uzONttsddrv6dnHL774Im244YZpp512Spdeemn66aef0qGHHpoDp7vuuqvKvHvvvXd6/vnn0+uvv17rNjzyyCNp6aWXrnweYU9BhFoRAsV+x7K7deuWxw2KUKhgmWWWySHYzTffbPxHAACAcg5n4o/C+APzlltuSa+99lr+43qvvfZKu+yyS/5DFgCAmUtUYkRVxuqrr1457eGHH85BR4QHcRNOVH+ceuqp6eijj04nnXRSat269RTL2XTTTfOjYKGFFsoBy+WXX14ZzkRwEs/D008/nStDahOhRHEQUWzQoEFVnl9//fV5/pdffjnfSFQX07OPDzzwQP5v3ssuuyw1b/5bEfoVV1yRlltuufTBBx/kUCpcfPHF+efXX3891XAmwpgIh2py7bXXpu+++y4HR4X/zi6ubCrYcsst0+233y6cAQAAKOe2ZoU/qqN9Q/xRGn9oF+4wBABg5jN06NDcgqvYs88+m1uPRWhRsMkmm+RKkbfeeqvOy452W3PNNdd0bVeEJdHOK6pHIsiZ1npCfdY1Pfs4bty4HNoUgpkQNyuFp556KtXXVlttlUOltddeO91///1VXovna6yxRg5dYhujSiYqeqLip9iqq66aXnjhhbxtAAAAlGnlTEHcZRg9uot7iBf+wAQAYOYRrbK6du1aZVqM71IcWoTC8+KxX6YmKkkuueSSyqqZuopAJqpRVl555Rw4/OMf/0h9+vTJLcJWXHHFKeaPVmrRWmyttdbKAUZdTc8+rr/++unwww9P55xzTjrkkENyy7ZjjjkmvxZt0eqqQ4cO6bzzzsvbHEFPtHiLcXMGDhxY+d/TH330UXrsscfSbrvtlqub4nj+7//+b5owYUIey6cgPrv4b/LY5mg9DAAAQBmGM/FH4rbbbpveeOONPGhpRUVFnh6/h+p38gEA0LT9+uuvqW3btg26zM8//zy3ONthhx3yuDP1sfjii+dHwZprrpk+/PDDdMEFF9Q4xmFUlsT4NtNTuVJfMT7MDTfckAOaY489NrVo0SKPnxOhTnE1zbR07tw5L6Mgxs6J8Wwi9CmEMxE6RVXNVVddldcT1U1xXGOe4nCmULkTYwcBAABQpm3N4g7BBRdcMH311Vepffv2ueXDk08+me9sHDJkyIzZSgAAZpgICr7//vsq02IclFGjRlWZVnhe2xgpBREyrLfeejlUiWChIUTrrqgcqe6ggw7K48A8/vjjqXv37vVa5vTu46677pqrVCIo+fbbb/P4NDG2TIyx83usttpqVfYxKogWW2yxHMwULLnkknndxdXrMS5NmGeeeX7X+gEAAGjC4Uz05j7llFPyH/Fxd2A8okf2mWeeme8aBABg5rLCCivklrXFYqyTqJSOG3IKBg8enDp27JiWWmqpWpcVgUW0IIsqj+uuu65e1SRT8+qrr+awoiCqtyOYuffee3Prr7h5qL6mdx8Lolom2pPdcccdufIoxsZpyH2MlmcR1kQFTcF7772X54lxbwqiaiiCqfjvcwAAAGYO9f5rOdqWzT777Pn3+AMw7owM0d/63XffbfgtBABghtpkk01yNXRx9czGG2+cA4rdd989vfbaa+mhhx5KAwYMyC3E2rRpk+eJQeiXWGKJHMgUBzMLLLBAHmcmqkmiyqP6+C0RBEUQERUfP/74Y/49HgUXXnhhuu+++3IwEcFDjCcTAUysuyB+v/nmm9Ott96a/9u0sJ5o0VZX07OP4dJLL03Dhg3LQclll12WQ6K4UalTp06V88S2xz4Vtqmwj4WKl2iNdtttt6V33nknP84444x07bXXpj//+c+Vy+jfv38+RlG5Huv697//necrPg5h6NCheV8AAAAo4zFnYpDV+OM17k6M1gtnn312vnMvWlb83lYOAACU3rLLLptWXHHFdOedd6b9998/T4tWWtEuLAKCqDCZbbbZ0p577pkrqAtijJO4OScGqC9UnUQoEY/qLcYK4xSGvn37pk8++aRK5U7xPBFgHHHEETkQiTa6yy23XHrkkUdyq7SCyy+/PP+MMKhYVOv069cv/x4/P/7441pb707PPhYCmxjzZfTo0Tm4ufLKK3PAU+xPf/pTeuKJJ6bYxxEjRqRevXrl30899dR8HFq2bJmXExU4f/zjHyvf06NHjxwYHXbYYfkYdOvWLQc1Rx99dOU8Y8eOTQMHDkyDBg2qcR8BAAAok3Am7iYcM2ZM/j3+cN1iiy3SH/7whzT33HPnPygBAJj5nHDCCenII49M++67b2UrsqiMfvDBB2t9TwQjxaFLhCGFYGRqIjCZmqOOOio/pqZ4vbWJIKQ40KlJffcx3HjjjdNc97TGYowQKB7TEqHRc889V+vrEUbFeDyrr776NJcFAADATBzORNuLgkUWWSS3YYh2C3POOWdq1qxZQ28fAAAlsPnmm6f3338/V6tExcbMLtqlffjhh7kVWDlr1apVuuSSSxp7MwAAAJiR4Uy0c2jXrl3ulx3tzQrmmmuu+q4XAIASixtpigeXry7GdikXc8wxR/rss89SuYv2adMaL7JQCQUAAEDT0by+d+bFAK/xRx4AADNfYPHTTz+lcePGNfamUALxOcfn3bFjx8beFAAAAKqp9210xx9/fDruuONyKzMAAGYeiy++eL7J5uWXX27sTaEE4nOOz3uJJZZo7E0BAADg9445c+mll6YPPvggde3aNQ+gOttss1V5fdiwYfVdJAAAJaqcWWWVVdLgwYPT119/nRZbbLHUvn174waWmTFjxqT33nsvtyKOzzs+dwAAAGbycGabbbaZMVsCAMAMt9lmm+U2V6+88kq+eE95ijEhN9hgg7TWWms19qYAAADQEOHMiSeeWN+3AADQRESVzNprr50v2o8ePTqNHTu2sTeJaXjhhZT69Zv2fNdfn9Kqq6bUtm3b1KFDBxVRAAAA5RTOAAAw84sL97PPPnt+0LRtumkELil9/nlKFRVTvh4ZTPfuv83XokVjbCEAAAD11bzeb2jePLVo0aLWBwAA0HDiP7Evuui336sXwxSeX3ihYAYAAKCsK2fuvffeKs8nTJiQe5bfcMMN6eSTT27IbQMAAFJK222X0l13pXTIISl99tn/TY+KmQhm4nUAAADKOJzZeuutp5j2xz/+MS299NLpjjvuSPvss09DbRsAAPD/RQAT/yk+dGhKI0em1KVLSn/4g4oZAACAWXrMmdVXXz3tt99+DbU4AACgmghi+vRp7K0AAACg5GPO1OTXX39NF198cerWrVtDLA4AAAAAAKBs1btyZs4550zNikYiraioSD///HNq3759uvnmmxt6+wAAAAAAAGbtcOaCCy6oEs40b948zTPPPGm11VbLwQ0AAAAAAAANGM7069evvm8BAAAAAABgesecue6669I///nPKabHtBtuuKG+iwMAAAAAAJil1DucOfPMM1Pnzp2nmD7vvPOmM844o6G2CwAAAAAAoCzVO5z59NNP04ILLjjF9J49e+bXAAAAAAAAaMBwJipkXn/99Smmv/baa2nuueeu7+IAAAAAAABmKfUOZ3bZZZd08MEHp8cffzxNmjQpPx577LF0yCGHpJ133nnGbCUAAAAAAECZaFnfN5x66qnp448/ThtssEFq2fK3t0+ePDntsccexpwBAAAAAABo6HCmdevW6Y477kinnXZaevXVV1O7du3Ssssum8ecAQAAAAAAoIHDmYJFF100PwAAAAAAAJiBY85sv/326ayzzppi+tlnn5122GGH+i4OAAAAAABgllLvcObJJ59Mffv2nWL6Zpttll8DAAAAAACgAcOZ0aNH53FnqmvVqlX66aef6rs4AAAAAACAWUq9w5lll1023XHHHVNMv/3229NSSy3VUNsFAAAAAABQllrW9w1//etf03bbbZc+/PDDtP766+dpjz76aLr11lvTXXfdNSO2EQAAAAAAYNYNZ7bccss0cODAdMYZZ+Qwpl27dmn55ZdPjz32WJprrrlmzFYCAAAAAADMquFM2HzzzfMjxDgzt912W/rLX/6SXn755TRp0qSG3kYAAAAAAIBZd8yZgieffDLtueeeqWvXrum8887LLc6ee+65ht06AAAAAACAWbly5ssvv0zXX399uuaaa3LFzI477pjGjRuX25wttdRSM24rAQAAAAAAZrXKmRhrZvHFF0+vv/56uvDCC9MXX3yRLrnkkhm7dQAAAAAAALNq5cx//vOfdPDBB6f+/funRRdddMZuFQAAAAAAwKxeOfPUU0+ln3/+Oa200kpptdVWS5deemn65ptvZuzWAQAAAAAAzKrhzOqrr56uvvrqNHLkyLT//vun22+/PXXt2jVNnjw5DR48OAc3AAAAAAAANFA4UzDbbLOlvffeO1fSvPHGG+mII45If/vb39K8886bttpqq/ouDgAAAAAAYJZS73Cm2OKLL57OPvvs9Nlnn6Xbbrut4bYKAAAAAACgTP2ucKagRYsWaZtttkn3339/QywOAAAAAACgbDVIOAMAAAAAAEDdCGcAAAAAAABKSDgDAAAAAABQQsIZAAAAAACAEhLOAAAAAAAAlJBwBgAAAAAAoISEMwAAAAAAACUknAEAAAAAACgh4QwAAAAAAEAJCWcAAAAAAABKSDgDAAAAAABQQsIZAAAAAACAEhLOAAAAAAAAlJBwBgAAAAAAoISEMwAAAAAAACUknAEAAAAAACgh4QwAAAAAAEAJCWcAAAAAAABKSDgDAAAAAABQQsIZAAAAAACAEhLOAAAAAAAAlJBwBgAAAAAAoISEMwAAAAAAACUknAEAAAAAACgh4QwAAAAAAEAJCWcAAAAAAABKSDgDAAAAAABQQsIZAAAAAACAEhLOAAAAAAAAlFDLUq4MAACon/Hjx6eff/45TZ48ubE3hQbUokWL1KFDh9S6devG3hQAAKARCGcAAKAJ+vLLL9Pjjz+ePvjgA8FMGQc0iy66aFp//fVTp06dGntzAACAEhLOAABAEzNq1Kh0ww035MqKjTbaKM0///z5Qj7lY+LEiWnkyJHppZdeyp/17rvv3tibBAAAlJBwBgAAmpinn346tWvXLu2zzz6pbdu2jb05zCALLrhgWn755dOVV16ZXnjhhcbeHAAAoISal3JlAADA1FVUVKR33303LbfccoKZWcBss82Wll566fTee+819qYAAAAlJJwBAIAmZNy4cWn8+PFpnnnmaexNoUTisx49enQO5gAAgFmDcAYAAJqQyZMn55+1jTHz7bffpnnnnTd9/PHHJd4yfo+dd945nXfeeTW+VvishTMAADDrEM4AAMBM5PTTT09bb7116tWrV+W0Tz/9NG2++eapffv2Obg58sgj84DztYlgJ8aziTFPYmybhRdeOJ144om5Yqdg7NixqV+/fmnZZZdNLVu2TNtss02Ny7rsssvSkksumZez+OKLpxtvvLHK69dff31q1qxZlcf0tGv77rvv0m677ZY6duyYOnXqlLc/qk2m5sMPP0zbbrttrkyJ9+24445p1KhRUxzPNddcMx+7WO7URDDWvXv3vA8//PBD5fR77rknbbTRRpXrWWONNdJDDz1U5b0DBgzI6/rxxx/rve8AAED5Ec4AAMBM4pdffknXXHNNDiYKJk2alIOZCFaeeeaZdMMNN+RA5IQTTqh1Oe+8806u0ImB6N966610wQUXpCuuuCIdd9xxVZYbgcvBBx+cNtxwwxqXc/nll6djjz02nXTSSXk5J598cjrwwAPTv/71ryrzRWAxcuTIyscnn3xS732PYCbWMXjw4PTAAw+kJ598Mu233361zj9mzJi08cYb5yDlscceS08//XQ+RltuuWVldVKIaTvssEPq37//NLchjnuMBVRdbEuEMw8++GB6+eWX03rrrZfX88orr1TOs8wyy+QQ7Oabb673vgMAAOWnZWNvAAAAUDdx8b9NmzZp9dVXr5z28MMPp+HDh6dHHnkkzTfffKl3797p1FNPTUcffXQOTVq3bj3FcjbddNP8KFhooYXSu+++m8OWc889t3Kg+ngeItgorhQpuOmmm9L++++fdtppp8rlvPjii+mss87K4URBBCTzzz//dO/322+/nQYNGpSXvfLKK+dpl1xySerbt2/e3q5du07xntjmqBCKgCTCoRDB1ZxzzpnDmkLgFIFSiEBrauJYxDGI0Os///lPldcuvPDCKs/POOOMdN999+WQaoUVVqicHsfk9ttvzwEWAAAwa1M5AwAAM4mhQ4emlVZaqcq0Z599Nrcei2CmYJNNNkk//fRTrjSpq2i3Nddcc9Vre8aNGzdFi7KotnnhhRfShAkTKqdF+7GePXumHj165JZs9dmuwj5Gy7FCMBMiXGnevHl6/vnna922CIUizCqIbY33PPXUU/Vaf4Rfp5xySm7ZFu+flqjM+fnnn6c4nquuumo+NrFtAADArE04AwAAM4loB1a9SuTLL7+sEsyEwvN4rS4++OCDXIkSVTD1ESHQP/7xj9zKKwazf+mll/LzCGa++eabPE+MQ3PttdfmSpJo6RXBRYzx8tlnn9V5PbEfMZZOsRgHJ8KP2vYxqoui+icqiKIdXLQ5+8tf/pLbtUVrtbqKIGWXXXZJ55xzTlpggQXq9J6o5olAKsa4KRafXbRRq+vnAgAAlC/hDAAAzCR+/fXXKSpVfq/PP/88tziLcVf23Xffer33r3/9a9pss81yENKqVatcFbPnnnvm1woVJmussUbaY489cru1ddddN91zzz1pnnnmyePdzEixjn/+85+5tViHDh3SHHPMkduSrbjiinWqfimIMXWWXHLJ9D//8z91mv/WW2/NrdLuvPPOKQKlqCoKERYBAACzNuEMAADMJDp37py+//77KtNiLJdRo0ZVmVZ4Pq1xXr744os8eH1Uslx11VX13p4IG6IqJsKGGN/l008/Tb169Uqzzz57DkdqEiFOjMMS1Tp1Ffvx1VdfVZk2ceLE9N133011HzfeeOP04Ycf5vdGJU+MkRNhVIyNU1cxPk2EPFGpE48NNtig8rM48cQTq8wb48n86U9/ysFMYUybYrG9obZjAwAAzDqEMwAAMJOIUCPGPykWlSlvvPFGlfBi8ODBqWPHjmmppZaqdVkRUvTp0yePYXPdddfVq5qkpsCle/fuqUWLFjmg2GKLLWpdXrQVi+3t0qVLnZcf+xhVL9E+rTg0iRZpq6222jTfH0FKjFkT74njtNVWW9V53XfffXd67bXX0quvvpof0batMP7PgQceWDnfbbfdlvbaa6/8c/PNN69xWW+++WY+TrE9AADArK1lY28AAABQ9zFeos1WVM/MOeecldUhEcLsvvvu6eyzz87jmQwYMCAHB23atMnzxCD00Vrs0UcfTd26dasMZnr27JnHR/n6668r11FciRJBUIyREhUfMcB9hBMhWpSF9957Ly87ApLYpvPPPz8HEDfccEPlMk455ZTc9myRRRbJAUuM3RJj50SFSV1FW7FovRZt16644oo8ps1BBx2Udt5558oxeGKfoqrlxhtvTKuuumqeFqFTvDcqVZ599tl0yCGHpMMOOyyPg1MQ1T6xf/EzgqPCPsb2Rju0hRdeuMq2FMbSieVG4FNoZRbt3C666KJ8LApjykRlUbRTK4hAJz4vAAAA4QwAAMwkll122TxmSrTN2n///fO0qFZ54IEHUv/+/XOFyWyzzZaDgghFCqLt2LvvvptDjUJlTbQVi0dUchSrqKio/L1v3745SCmu3CmeJ8KM8847Ly87qmeiRdozzzyTW5sVRGgToUoEFhEoRaVOzFNc1XPSSSel66+/PrdGq80tt9ySA5kIYKIqZ/vtt08XX3xx5euxb7EdxeO5xPMIsyJ8iW06/vjjczhT7IQTTqgSJhX28fHHH88BVl1ES7hosxaBWHE1TXwOsV9h7NixaeDAgWnQoEF1WiYAAFDehDMAADATiTDhyCOPzIFHoXVYVMA8+OCDtb4nQobi0KVfv375MS1TC0sK1SOvvPLKVOe54IIL8mNqRowYMc0gZK655soVKrWJ8KV4H8Pf/va3/JiaCE8KAUpdVD+WYciQIdN8X1TxREVPVBEBAAAIZwAAYCYS45m8//77uY1Xjx490swugo4IN5566qlUzqKy6JJLLmnszQAAAJoI4QwAADRB1aszih166KGpXDRr1qxK67RyNbUxdqb2WQMAAOXptz4IAABAk9C6dev8s3jsFMpbfNYxdlAEVQAAwKxBOAMAAE1Iy5YtU/fu3dN7773X2JtCCUTVTHzWMW6QcAYAAGYdwhkAAGhievfunS/Yx1gsY8eObezNYQZWzAwePDi3dVtuueUae3MAAIASMuYMAAA0MSuuuGL68ccf0xNPPJGGDh2aOnXqlNte0XTFsDETJkx7vlatYpydlCZNmpS+//77PG3DDTdMSy21VPr4449n/IYCAABNgnAGAACamGhvtf7666eVV145vfPOO+mHH35IkydPbuzNYirefTelhx6a9nybbprS4ounHLbNOeecaYkllkgdOnRIE+qS7AAAAGVDOAMAAE1Ux44d06qrrtrYm0EdtG2b0qGHTnu+o49OqU+fUmwRAADQlBlzBgAA4Hf6wx9S6t79t5ZlNYnpPXr8Nh8AAIBwBgAA4HeKIYEuuui336sHNIXnF17423wAAADCGQAAgAaw3XYp3XVXSt26VZ0eFTUxPV4HAAAIxpwBAABoIBHAbL11SkOHpjRyZEpduvzWykzFDAAAUEw4AwAA0IAiiOnTp7G3AgAAaMq0NQMAAAAAACgh4QwAAAAAAEAJCWcAAAAAAABKSDgDAAAAAAAwq4Uzl112WerVq1dq27ZtWm211dILL7xQ67wTJkxIp5xySlp44YXz/Msvv3waNGhQlXmefPLJtOWWW6auXbumZs2apYEDB051/QcccECe78ILL2ywfQIAAAAAAGiS4cwdd9yRDj/88HTiiSemYcOG5bBlk002SV999VWN8w8YMCBdeeWV6ZJLLknDhw/Pwcq2226bXnnllcp5xowZk5cToc+03Hvvvem5557LQQ4AAAAAAEDZhzPnn39+2nfffdNee+2VllpqqXTFFVek9u3bp2uvvbbG+W+66aZ03HHHpb59+6aFFloo9e/fP/9+3nnnVc6z2WabpdNOOy2HNlPz+eefpz//+c/plltuSa1atWrwfQMAAAAAAKiuZWpE48ePTy+//HI69thjK6c1b948bbjhhunZZ5+t8T3jxo3L7cyKtWvXLj311FP1WvfkyZPT7rvvno488si09NJLT3P+WG88Cn766afKNmvxKCeF/Sm3/YJZmfMayotzGsqP8xrKj/Mayo/zGsrLhBlwTtdnWY0aznzzzTdp0qRJab755qsyPZ6/8847Nb4nWp5Ftc0666yTx5159NFH0z333JOXUx9nnXVWatmyZTr44IPrNP+ZZ56ZTj755CmmP/zww7nSpxwNHjy4sTcBaGDOaygvzmkoP85rKD/Oayg/zmsoL4Mb8Jz+5ZdfZo5wZnpcdNFFuQ3aEksskZo1a5YDmmiJVlsbtJpEtU4sJ8a4iWXURVT3xNg4xZUzPXr0SBtvvHHq2LFjKieR7sUXcqONNtLuDcqE8xrKi3Mayo/zGsqP8xrKj/MaysuEGXBOFzpuNflwpnPnzqlFixZp1KhRVabH8/nnn7/G98wzzzxp4MCBaezYsenbb79NXbt2Tcccc0wef6auhg4dmr766qu0wAILVE6LypsjjjgiXXjhhenjjz+e4j1t2rTJj+riQyvXf4zLed9gVuW8hvLinIby47yG8uO8hvLjvIby0qoBz+n6LKd5akStW7dOK620Um5NVjwWTDxfY401pvreGHemW7duaeLEienuu+9OW2+9dZ3XG2PNvP766+nVV1+tfETIE+PPPPTQQ79rnwAAAAAAAJp0W7NoFbbnnnumlVdeOa266qq5cmXMmDG5VVnYY489cggTY76E559/Pn3++eepd+/e+edJJ52UA52jjjqqcpmjR49OH3zwQeXzESNG5ABmrrnmytUyc889d35UT7SiWmfxxRcv2b4DAAAAAACznkYPZ3baaaf09ddfpxNOOCF9+eWXOXQZNGhQmm+++fLrn376aWre/P8KfKKd2YABA9JHH32UOnTokPr27Ztuuumm1KlTp8p5XnrppbTeeutVPi+MFRMh0PXXX1/S/QMAAGZNP//8c/rwww/zzWfTEm2Wo73zs88+m1s/07S1bNkyd1/o3r17nccxBQCAJhXOhIMOOig/ajJkyJAqz9ddd900fPjwqS6vT58+qaKiol7bUNM4MwAAAPUVQcv999+fWymHGLuyLhfw42+YCGeYOQaPjc95jjnmSLvsskvlzYUAADBThTMAAADl4sEHH0xvvvlm2myzzdKyyy6b2rVr19ibRAOL1tr//e9/c9eHG2+8MfXv3z93dgAAgLr6v35hAAAA/C7jx4/PFTNRzR9jagpmylO03u7Zs2fabbfdcuvtaXV3AACA6oQzAAAADSTGzJw4cWJaaqmlGntTKIGolomQZsSIEY29KQAAzGSEMwAAAA0kqiiCFlezjvisf/3118beDAAAZjLCGQAAgAbWrFmzGqd/++23ad55500ff/xxybeJ6bfzzjun8847r16fNQAATI1wBgAAoEROP/30tPXWW6devXpVaYW2+eabp/bt2+fg5sgjj8yt0WoTwc4+++yTFlxwwTymzcILL5xOPPHEPN5NwZAhQ/J6unTpkmabbbbUu3fvdMstt9S6zNtvvz2HDNtss02V6ffcc0/aeOON09xzz51ff/XVV6drv+u7j2HYsGFpo402Sp06dcrr32+//dLo0aOrzHPwwQenlVZaKbVp0ybvY3XvvvtuWm+99dJ8882X2rZtmxZaaKE0YMCANGHChCrz/fDDD+nAAw/MxyuWtdhii6UHH3yw8vV4T3x2P/7443TtPwAAVNdyiikAAAA0uF9++SVdc8016aGHHqqcNmnSpBxazD///OmZZ55JI0eOTHvssUdq1apVOuOMM2pczjvvvJMmT56crrzyyrTIIoukN998M+27775pzJgx6dxzz83zxLKWW265dPTRR+dg4oEHHsjLnWOOOdIWW2wxRdjzl7/8Jf3hD3+YYl2xzLXXXjvtuOOOeR3TY3r28Ysvvkgbbrhh2mmnndKll16afvrpp3TooYemfv36pbvuuqvKvHvvvXd6/vnn0+uvvz7FcmIdsa4VV1wxhzyvvfZa3o84foV1R6gVIVCERrHsbt26pU8++STPX7DMMsvkEOzmm2/OIQ4AAPxewhkAAIASiEqMqMpYffXVK6c9/PDDafjw4emRRx7JIUpUf5x66qk5VDnppJNS69atp1jOpptumh8FUQ0SFSKXX355ZThz3HHHVXnPIYccktcVlTDF4UwEJ7vttls6+eST09ChQ3MFSbHdd989//w9bdimZx8jTIpg5bLLLkvNm//W8OGKK67IgdMHH3yQQ6lw8cUX559ff/11jeFMHJt4FPTs2TNXFcW+Flx77bXpu+++y8FRrDMUVzYVbLnllrnCSDgDAEBD0NYMAACgBCIQiBZcxZ599tm07LLL5tCiYJNNNsmVIm+99Vadlx3ttuaaa656z3PKKafkipFokzajTM8+jhs3Loc2hWAmRAu38NRTT033tkSwM2jQoLTuuutWTrv//vvTGmuskUOX2Maokomqmgiuiq266qrphRdeyNsGAAC/l3AGAACgBKJVVteuXatM+/LLL6uEFqHwPF6ra+BwySWXpP3337/Wee6888704osvpr322qtyWoQc0Wbt6quvTjPS9Ozj+uuvn18755xzctux77//Ph1zzDH5tWiLVl9rrrlmHnNm0UUXze3bIpQq+Oijj3I7swhjorrpr3/9azrvvPPSaaedVmUZ8dnFttT1cwEAgKkRzgAAAJTAr7/+mgOChvT555/nFmc77LBDrWPCPP744zmUiRBm6aWXztN+/vnn3LIspnXu3Dk1NbGdN9xwQw5J2rdvn8erWXDBBXOoU1xNU1d33HFHGjZsWLr11lvTv//978r2byHGn4nqoauuuipXNsU4N8cff3xuo1asULkTYwcBAMDvZcwZAACAEogQJCpAikXoEK2yio0aNarytan54osv0nrrrZerQiJYqMkTTzyRx0q54IIL0h577FE5/cMPP8zjyMRrxSFFaNmyZR7DZuGFF04NYXr3cdddd82PmHe22WZLzZo1S+eff36VMWTqqkePHvnnUkstlStk9ttvv3TEEUekFi1apC5duuSxZuL3giWXXDJXyESlTGFMnBiXJswzzzz1Xj8AAFSncgYAAKAEVlhhhTR8+PAq02KskzfeeCN99dVXldMGDx6cOnbsmIOEqVXM9OnTJ1d6XHfddTVWk8TA95tvvnk666yzchhRbIkllsjrffXVVysfW221VQ574vdCmNEQpncfC6JapkOHDrn6JSqPNtpoo9+1PRFCTZgwoTKMWmuttXJruMLz8N577+XQphDMhDfffDN17969SVYaAQAw8xHOAAAAlMAmm2yS3nrrrSrVMxtvvHEOKKLF2GuvvZYeeuihNGDAgDw4fZs2bfI8UXUSYUoEMsXBzAILLJDbc3399de5yqN4LJRoZRbBzMEHH5y23377ytcL1R8RcsTA98WPTp06pdlnnz3/XlwtEmFNIVSKipp4Xp9xV6ZnH8Oll16aW5FFUHLZZZelgw46KJ155pl5OwsiVClsT7SNKwRNUfESbrnlljzezttvv53Hlonfjz322Ny6LKplQv/+/fN+HnLIIXld0fbsjDPOyNtXbOjQoXlfAACgIWhrBgAAUALLLrtsWnHFFXNAsP/+++dp0UrrgQceyAFBVJhE+64999yzyoD1McZJhCJR7VGoOolQIh5RyVGsoqIi/4zxWuJ9EWbEo2DdddfNFTV1df/99+fxagp23nnn/PPEE09MJ510Uv69X79+uUVabcud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pIAgLSCfWmQVPfXUUzFhwoR4+umno3379rHbbrvFlVdematEUoDRvHnzFY6TAot0K0oL0k+cODFuv/32uP7661eo+OjevXsccMABOfyprG3btlXuP/jgg7l6Z/lwJoUUP/zhD3PFycqqalbld7/7XQ6f7r777nw9O+20U4wfPz5++ctfxumnn17tc1IYs8suu1SEVNttt12utjn22GNzlVCqpklrvaRrTp5//vn4/PPPVzjO8lU+//Vf/xWPPvpo/M///E984xvfiC+//DK3K0vb9t1337xPet3T4+nYP//5z/O2FFqlsCi9RmvyGlA7KmcAAAAAAKgTY8aMid13373KtrFjx+a2XCmYKTrkkENytUmqiqmp2bNnrxC2/PnPf47//u//jttuu61Gx0hVPccff3wOPYpShc6JJ56YW62lUGVNpGtMwUfloCldYwqUPvvss2qfs3DhwtwCrbJUJZNamaUKmDWVridVwBRfq9QmLVXgVHeu5557rsq2Xr165feQ+iecAQAAAACgTrz33nsrtAWbPn16lWAmKd5Pj9VEWlPmlltuiTPOOKNi26xZs/J6LKlFWlprZXXGjRuX25qlFl+V/eIXv8jruaTWYWtqTa4xhTep0ueBBx7I4Umq3rniiivyY6kF25pKlUVz587NFThJqsBJ69CkaqWPPvoon2vIkCE5UFr+POm9e//99607UwLCGQAAAAAA6kRqobV8hcZXlUKL1OIstSI77bTTKran77/3ve9VtOqqSdVMquBJ1SFFqULlpptuygFPo0aNopTSui9pbZozzzwzt4Lbfvvtc1uxpHHjNfvo/ve//31cfvnl8Yc//CG22GKLiu1prZlCoRBbbrllPtfNN9+c1+lZ/jypmiYFM6mqh/olnAEAAAAAoE60a9duhTZeHTp0iBkzZlTZVryfHluVVOmRFrjfe++946677lqhpVmqEklVL+n2gx/8ILc+S9+ntV8qmzdvXl5LJe1TWWrhNXPmzNh6660rjpOqfy644ILo0qVLja97Ta/x/PPPz+vITJ06NT755JPo169fxRo7tZWuL1UFpWDmwAMPrPLYtttuG3/5y19yRU2qjElVRIsXL17hPJ9++mlu+ZZCGuqXcAYAAAAAgDqRFqCfMGFClW2ppdabb76ZQ5CikSNH5lZkO+644yorZvr06ZPXsPntb3+7QpVHass1fvz4iltqCZZaeKXvjz766Cr7pnVpUjXIf/zHf1TZntaaeeONN6ocJ7X2SuvPPPnkkzW+7nSNzz77bA48Kl/jDjvsEJtuuukqn5sqdtI5UyCSWpx17tw5evbsGbWRnnfKKafkr4cffvhK90vBS8eOHXOAlq6vGAYVpbZv6T2k/glnAAAAAACoE2kdlbfffrtK9Uxq35VCmBSEvP766zkUGDBgQJx99tm5xVaSKjm6d++eA5nKwUyqaEnVMR9//HFeu6Xy+i1f//rXY+edd664pZZdKcBJ3y8fiKSWZkcddVRsttlmVban+5WPkW7NmjXL1S4pWKmp1F6tefPmuTInXf/QoUNzu7RUGVP08MMP52usLLU1S8FVek5aE+aaa67JLceaNGlSsU8Ku1JolKpaUmVQMUSq3Mqsf//+ccMNN8See+5Z8TqlfYvSaz5ixIiYPHlyDo1SNVIaSwp0lq8kSu8X9a9pCc4BAAAAAMB6IK3pkqo+UmutM844I29LQcPw4cPjrLPOyhUmqXrjpJNOypUuRfPnz4+JEydWVJ6kAOHdd9/Nt6222qrKOdLaKbWRjvvcc8/FU089tcbXlYKi1OYsrU1TndatW+fjp8ApVfqk9m4DBw6M008/vWKfFJaksVT2xBNPxFVXXZWrenbdddd49NFH47DDDquyT1qHJrVaKypWthRfh9TubcmSJfnc6VaUXuPieNO5L7nkkvjggw+ibdu2ccwxx+TzpiCqKAViL7zwQgwZMmSNXydqTjgDAAAAAECdSaFEagt22mmnVbQi22abbeLxxx9fZfhROXQ5+eST8602VvacVAFTm0BnypQpK2xLFSerG88uu+ySK09qM760bs6ajKey0aNHr/YYxx57bL6tSqrYSeNbPgyjfghnAAAAAACoM2nNk0mTJuVKjLR+yroutRxLlTGpdVg522KLLaq0YaN+CWcAAAAAAKixtIB9smzZspXuc95550W52GmnneKNN96IcnfBBRes9LH0XheroKgbXk0AAAAAAGps4403zl9nzZrV0EOhRD799NOK9526IZwBAAAAAKDGWrZsmduVvfbaa7F06dKGHg71bMaMGTF16tS8dg91R1szAAAAAABqZZ999okHH3wwhgwZErvvvnu0a9cumjRp0tDDoo4UCoVYtGhRTJkyJcaOHZvXo/n617/e0MMqK8IZAAAAAABq5Wtf+1ocd9xxMXr06HjooYcaejjUk6ZNm+aKmb59+0aLFi0aejhlRTgDAAAAAECtbb/99vk2Z86c+OKLL/Ki8ay9Xn014pxzVr/frbdG9OwZ0axZs2jbtm00b968FMNb7whnAAAAAABYY61atco31m6dOv0znPnww9S2bMXHGzWK2GqriH/7twgd6upf4xKcAwAAAAAAaEApcLnppv8LYior3h88WDBTKsIZAAAAAABYD3z72xF//GPElltW3Z4qZtL29Diloa0ZAAAAAACsJ1IA069fxJgxEdOmRXTsGLHPPipmSk04AwAAAAAA65EUxPTp09CjWL9pawYAAAAAAFBCwhkAAAAAAIASEs4AAAAAAACUkHAGAAAAAACghIQzAAAAAAAAJSScAQAAAAAAKCHhDAAAAAAAQAkJZwAAAAAAAEpIOAMAAAAAAFBCwhkAAAAAAIASEs4AAAAAAACUkHAGAAAAAACghIQzAAAAAAAAJSScAQAAAAAAKKGmpTwZAADVW7p0aSxYsCCWLVu22n2XLFkSixcvjrlz50bTpv45tzZr1qxZtGjRIho1atTQQwEAAGAt4v/mAQAa0AcffBDPP/98TJo0KQc0tfH222/X27ioO23atImdd9459ttvP2EaAAAAmf87BABoIO+//37cf//9+cP7/fffP9q1axeNG+s6Wy4KhUIsWrQoJk+eHC+++GJMmzYtTjjhhGjSpElDDw0AAIAGJpwBAGggo0aNyoHMySefHM2bN2/o4VBPUtXMjjvuGEOGDMkVUt27d2/oIQEAANDA/GomAEADmD9/frz33nvxzW9+UzCzHth2221jiy22iHfeeaehhwIAAMBaQDgDANAAZs+enb+mD+xZP7Rv3z4+//zzhh4GAAAAawHhDABAA1i2bFn+urL1R2bNmpWDmylTppR4ZHwVe+21Vzz00EPVPpbe6+L7DgAAwPpNOAMAsBa66qqrol+/ftGlS5eKbVOnTo3DDz88WrZsmYObCy+8MJYsWbLSY6Rg5wc/+EF07do1Ntxww9xaa9CgQXmR+qIFCxbkNW969OgRTZs2jaOOOmqV43r++efzfrvtttsKj9122215vBtssEHsueeeMW7cuFpfd22vMXn11VfjoIMOijZt2sRmm20Wp59+esydO7fKPueee27svvvu0aJFi2rHPnr06Px6d+zYMTbaaKO8z+9+97sq+/zqV7+KffbZJzbddNN8O/DAA1e4xgEDBsTFF18shAEAAGCVhDMAAGvhejS/+c1vcrBStHTp0hxapGDlhRdeiHvvvTfuueeeGDhw4EqPk9Y3SSHBnXfeGW+//XbceOONcccdd8RPf/rTKsdNwU0KL1LYsCqpJVf//v3jgAMOWOGxoUOHxvnnn5/DnxSW7LrrrnHIIYfEzJkza3zda3KNH330UR73dtttFy+99FKMGDEiX2sKnJb3/e9/P4477rhqj5POt8suu+SqlzfeeCNOOeWUfK3Dhw+vEuCccMIJ8cwzz8TYsWOjc+fOcfDBB8eHH35Ysc9hhx0WX3zxRTzxxBM1vm4AAADWP00begAAAFT1+OOP5wqP1CKr6KmnnooJEybE008/ndcuSZUdV155ZVx00UVx2WWXRfPmzVc4zqGHHppvRd26dYuJEyfG7bffHtdff33elqpE0v1iVcyq1kQ588wz43vf+15uz/XII49UeeyXv/xlnHbaaTnUSFII9Nhjj8Xdd9+dK0lqYk2uMYUnzZo1y1U7jRs3rjh3ClrefffdHNokN998c/768ccf5/BleZUDq+RHP/pRHs+wYcPi3/7t3/K25Stpfv3rX+cwZ9SoUTnISdJr07dv33jwwQdz0AQAAADVUTkDALCWGTNmTG7BVVmq1Eitx1JoUZQqU+bMmZMrRWpq9uzZ0bZt21qP6be//W384x//yJUxy0uVLq+88kqVypsUlKT7adw1tSbXuHDhwhzaFIOZJFUCJc8991x8Fat7rVKF0+LFi1fYp1evXvk9BAAAgJURzgAArGXee++96NSpU5Vt06dPrxJaJMX76bGaSJUkt9xyS5xxxhm1Gs+kSZNy9cuQIUPyejPL++STT3JLsurGV9Oxrek1/uu//mt+7Lrrrssh0WeffVZRqTNt2rRYU3/4wx/i5ZdfrqgEqk6q6Env0/Lt4NK2999/37ozAAAArJRwBgBgLfPll1/GBhtsUKfHTOuipBZn3/3ud3P7sZpKoUtqZXb55ZfH9ttvH2ubnXbaKa9Nc8MNN0TLli2jQ4cO0bVr1xzqVK6mqY20pkwKZX71q1/l41fnmmuuya3LHn744RXeq1S5k4KZVNUDAAAA1bHmDADAWqZdu3a5AqSyFDqMGzeuyrYZM2ZUPLYqH330Uey///6x9957x1133VWrsaTF7f/617/Ga6+9Fuecc07eloKHQqGQq2jSuizf+ta38lorxfFUHt/qxlYX15jCo3RL+6Y1dBo1apTXwElr7NTWX/7ylzjiiCPixhtvrFhHZnlpvZ4UzqS1cdLaNsv79NNP8ziK7dUAAABgeSpnAADWMt/4xjdiwoQJVbb17t073nzzzZg5c2bFtpEjR0arVq1ixx13XGXFTJ8+ffIaNmndmNpWk6Tjp/OOHz++4nbmmWfGDjvskL/fc88985ov6fijRo2qeF4KcNL9NO6aWtNrLErVMhtvvHEMHTo0V7McdNBBtbrW0aNHx+GHHx6/+MUv4vTTT692n2uvvTauvPLKGDFiROyxxx7V7vPWW2/l9xAAAABWRjgDALCWOeSQQ+Ltt9+uUj1z8MEH54DixBNPjNdffz2efPLJGDBgQJx99tnRokWLvE+qOunevXsOZCoHM1tvvXWu9vj444/z+izLr9+SgqAUtKSKj9mzZ1eEMEkKc3beeecqty222CKHH+n7VCGSnH/++bkNWGox9re//S3OOuusmDdv3irXbFnemlxjcuutt8arr74a//u//xu33XZbrvC5+uqro02bNlXW20nXlK49tY0rXmNap6bYyiwFM+eee24cc8wxFa9Tek2KUmhz6aWXxt133x1dunSp2Gfu3LlVrmPMmDH5WgAAAGBltDUDAFjL9OjRI3r27JkXpT/jjDPyttQ2bPjw4Tn0SBUmKRQ56aST4oorrqh43vz582PixImxePHiiqqTFEqk21ZbbVXlHKktWVHfvn3jvffeq7hfrPqovM/qHHfccTn8GThwYA4sdtttt1xdkqpZik4++eSYMmVKrlCpzppcYzGwGTRoUA5JUnBz55135oCnslNPPTW3LFv+GidPnpyDlhQqpWOnUCfdivbbb7+K8d5+++05zPnOd75T5djp3Jdddln+PoVGL7zwQgwZMqTGrx0AAADrH+EMAMBaKIUcF154YZx22mkVrci22WabePzxx1f6nFQlUzlQSWFIuq1OCkxqIwURxTCislSxUlyXpjopCElr36xKba8xue+++1Y75pUFQkX33HNPvn3V1+nmm2/Or/nyYRgAAABUJpwBAFgLpRZbkyZNypUYnTt3jnVdapf297//PR577LEoZ6nlW2rxBgAAAKsinAEAWEudd955US5at24dH3zwQZS7Cy64YKWP1aZNHAAAAOXtnz0yAAAoqebNm+evaXF61g/pvS6+7wAAAKzfhDMAAA1gs802i5YtW+bWZZS/xYsX5zVrtt5664YeCgAAAGsB4QwAQANo3Lhx9OjRI8aNGxdvvvlmLFu2rKGHRD2ZO3duDBs2LJYsWRI77bRTQw8HAACAtYA1ZwAAGshBBx0Us2fPzh/cP/HEE9G2bdsc2tREWr+kUaNG9T5GqkrLxixduvr9mjSJSG/PwoUL4+OPP87v63HHHZcrpgAAAEA4AwDQQJo0aRLHHntsTJs2LSZOnBhz5syp0aLxqcrmgw8+iK222qrGYQ51Y/LkiGefXf1+++4b0bVrRLNmzWLPPfeM7t275zZ2AAAAkAhnAAAaUKp+6dSpU77VZv2Sxx9/PPr27Zs//Kd0Ro+OOP/81e/3ox9F9OlTihEBAACwLvKrlgAAUEP77BOx1Vb/bFlWnbS9c+d/7gcAAAArI5wBAIAaSmvJ3HTTP79fPqAp3h88+J/7AQAAwMoIZwAAoBa+/e2IP/4xYsstq25PFTVpe3ocAAAAVsWaMwAAUEspgOnXL2LMmIhp0yI6dvxnKzMVMwAAANSEcAYAANZACmL69GnoUQAAALAu0tYMAAAAAACghIQzAAAAAAAAJSScAQAAAAAAKCHhDAAAAAAAwPoWztx2223RpUuX2GCDDWLPPfeMcePGrXTfxYsXxxVXXBHbbrtt3n/XXXeNESNGVNnn2WefjSOOOCI6deoUjRo1ikceeWSFY1x00UXRo0eP2GijjfJ+/fv3j48++qjerhEAAAAAAGCtCGeGDh0a559/fgwaNCheffXVHLYccsghMXPmzGr3HzBgQNx5551xyy23xIQJE+LMM8+Mo48+Ol577bWKfebNm5ePk0Kf6syfPz+f69JLL81fhw0bFhMnTowjjzyy3q4TAAAAAAAgadrQL8Mvf/nLOO200+KUU07J9++444547LHH4u67746LL754hf3vv//++NnPfhZ9+/bN988666x4+umn44YbboghQ4bkbYcddli+rUzr1q1j5MiRVbbdeuut0atXr5g6dWpsvfXWKzxn4cKF+VY0Z86ciiqcdCsnxespt+uC9Zl5DeXFnIbyY15D+TGvofyY11BeFtfDnK7NsRo0nFm0aFG88sorcckll1Rsa9y4cRx44IExduzYap+TApLUzqyyDTfcMJ577rmvNJbZs2fnFmht2rSp9vGrr746Lr/88hW2P/XUU9GyZcsoR8sHWMC6z7yG8mJOQ/kxr6H8mNdQfsxrKC8j63BOp65d60Q488knn8TSpUujffv2Vban+++88061z0ktz1K1zb777pvXnRk1alRuS5aOs6YWLFiQ16A54YQTolWrVtXukwKk1H6tcuVM586d4+CDD17pc9ZVKd1LfyAPOuigaNasWUMPB6gD5jWUF3Mayo95DeXHvIbyY15DeVlcD3O62HFrnWhrVls33XRTboPWvXv3XOmSAprUEi21QVvTN+DYY4+NQqEQt99++0r3a9GiRb4tL71p5fqXcTlfG6yvzGsoL+Y0lB/zGsqPeQ3lx7yG8tKsDud0bY7TOBpQu3btokmTJjFjxowq29P9Dh06VPuczTffPB555JGYN29evPfee7nCZuONN45u3bqtcTCTjpMSsnKrgAEAAAAAANY+DRrONG/ePHbffffcmqxo2bJl+X7v3r1X+dy07syWW24ZS5YsiYceeij69eu3RsHMpEmT4umnn47NNttsja8DAAAAAABgnWlrltZxOemkk2KPPfaIXr16xeDBg3NVTGpVlvTv3z+HMFdffXW+/9JLL8WHH34Yu+22W/562WWX5UDnJz/5ScUx586dG++++27F/cmTJ8f48eOjbdu2sfXWW+dg5jvf+U68+uqrMXz48LxezfTp0/O+aZ8UGgEAAAAAAJRlOHPcccfFxx9/HAMHDswBSQpdRowYEe3bt8+PT506NRo3/r8CnwULFsSAAQPiH//4R25n1rdv37j//vujTZs2Ffv89a9/jf33379KAJSkEOiee+7Joc6f/vSnvC2dr7Jnnnkm+vTpU+/XDQAAAAAArJ8aPJxJzjnnnHyrzujRo6vc32+//WLChAmrPF4KVwqFwkof79KlyyofBwAAAAAAKMs1ZwAAAAAAANY3whkAAAAAAIASEs4AAAAAAACUkHAGAAAAAACghIQzAAAAAAAAJSScAQAAAAAAKCHhDAAAAAAAQAkJZwAAAAAAAEpIOAMAAAAAAFBCwhkAAAAAAIASEs4AAAAAAACUkHAGAAAAAACghIQzAAAAAAAAJSScAQAAAAAAKCHhDAAAAAAAQAkJZwAAAAAAAEpIOAMAAAAAAFBCwhkAAAAAAIASEs4AAAAAAACUkHAGAAAAAACghIQzAAAAAAAAJSScAQAAAAAAKCHhDAAAAAAAQAkJZwAAAAAAAEpIOAMAAAAAAFBCwhkAAAAAAIASEs4AAAAAAACUkHAGAAAAAACghIQzAAAAAAAAJSScAQAAAAAAKCHhDAAAAAAAQAkJZwAAAAAAAEpIOAMAAAAAAFBCwhkAAAAAAIASEs4AAAAAAACUkHAGAAAAAACghIQzAAAAAAAAJSScAQAAAAAAKCHhDAAAAAAAQAkJZwAAAAAAAEpIOAMAAAAAAFBCwhkAAAAAAIASEs4AAAAAAACUkHAGAAAAAACghIQzAAAAAAAAJSScAQAAAAAAKCHhDAAAAAAAQAkJZwAAAAAAAEpIOAMAAAAAAFBCwhkAAAAAAIASEs4AAAAAAACUkHAGAAAAAACghIQzAAAAAAAAJSScAQAAAAAAKCHhDAAAAAAAQAkJZwAAAAAAAEpIOAMAAAAAAFBCwhkAAAAAAIASEs4AAAAAAACUkHAGAAAAAACghIQzAAAAAAAAJSScAQAAAAAAKCHhDAAAAAAAQAkJZwAAAAAAAEpIOAMAAAAAAFBCwhkAAAAAAIASEs4AAAAAAACUkHAGAAAAAACghIQzAAAAAAAAJSScAQAAAAAAKCHhDAAAAAAAQAkJZwAAAAAAAEpIOAMAAAAAAFBCwhkAAAAAAIASEs4AAAAAAACUkHAGAAAAAACghIQzAAAAAAAAJSScAQAAAAAAKCHhDAAAAAAAQAkJZwAAAAAAAEpIOAMAAAAAAFBCwhkAAAAAAIASEs4AAAAAAACUkHAGAAAAAACghIQzAAAAAAAAJdS0lCeDosWLF8eiRYsaehjUsRYtWkTTpv5aAQAAAABYFZ+iUjKFQiHGjRsXr7/+ekybNq2hh0M92XrrrWP33XePXXbZpaGHAgAAAACwVhLOUDJPPPFEvPzyy7HjjjvGN7/5zdhwww2jUaNGDT0s6jB8mzt3bvztb3+Lhx9+OObNmxe9e/du6GEBAAAAAKx1hDOUxCeffJKDmUMOOST22muvhh4O9ShVzYwYMSJGjRoVPXv2zK3OAAAAAAD4P40rfQ/1JlVTNG/ePH9wT3lL1VB77713LF26NCZNmtTQwwEAAAAAWOsIZyiJzz//PDbbbLNo1qxZQw+FEmjdunVssMEG+X0HAAAAAKAq4QwlsWzZsmjSpEm1j82aNSu22GKLmDJlSsnHxZo7/vjj44Ybbljp4+n9Tu87AAAAAABVCWdocFdddVX069cvunTpUrFt6tSpcfjhh0fLli1zcHPhhRfGkiVLVnuc1E4rPadNmzbV7pPWQUn7bLLJJtGhQ4e46KKLqhw3BUSpLdfytxdffLFin3vuuWeFx1OVSG19+umn8e///u/RqlWrPN4f/OAHMXfu3FU+5+9//3scffTRsfnmm+fnHXvssTFjxoxavw6re32HDRsWBx10UMV5evfuHU8++WSVYwwYMCCfa/bs2bW+dgAAAACA9ZlwhgY1f/78+M1vfpODiaK0VkkKDhYtWhQvvPBC3HvvvTkQGThw4CqPlfb/7ne/G2eddVa1j7/++uvRt2/fOPTQQ+O1116LoUOHxp/+9Ke4+OKLV9j36aefjmnTplXcll8rJwUWlR9/7733an3tKZh5++23Y+TIkTF8+PB49tln4/TTT1/p/vPmzYuDDz44h0F//vOf4/nnn8/XfMQRR1SpUFnd61CT1zeNJYUzjz/+eLzyyiux//775/Ok161o5513jm233TaGDBlS62sHAAAAAFifNW3oAbB+Sx/+t2jRIvbaa6+KbU899VRMmDAhByTt27eP3XbbLa688spc5XLZZZdF8+bNqz3W5Zdfnr+moKE6KYzZZZddKkKI7bbbLq699tpcfTJo0KBcTVOU1sdJlTUrkwKSVT2+On/7299ixIgR8fLLL8cee+yRt91yyy05PLr++uujU6dOKzwnhTGpsicFJCkcSlKwsummm+aw5sADD6zR61CT13fw4MFVnvNf//Vf8eijj8b//M//xDe+8Y2K7SmwefDBB+Pss89e49cCAAAAAGB9o3KGBjVmzJgVqlLGjh0bPXr0yMFB0SGHHBJz5szJlSZrauHChSu0H9twww1jwYIFuTqksiOPPDK3+/rWt76Vq2uWl9qPbbPNNtG5c+fckq2240rXmFqOFYOZJIUrjRs3jpdeemml40+hUAqzitL1pOc899xztTp3bV/fVJnzxRdfRNu2bats79WrV4wbNy6PDQAAAACAmhHO0KBSO7Dlq0SmT59eJThIivfTY2sqBRCpjdcDDzyQW3t9+OGHccUVV+THUmuyZOONN86L3P/3f/93PPbYYzmcOeqoo6oENDvssEPcfffduZIktfRKwUVa4+WDDz6o8VjSdaTwp7KmTZvm8GNl15iqizbaaKNc4ZLawaU2Zz/+8Y/ztRTHX9Nz1/b1TdU8KZBKVUaVpfcutUf7Ku8LAAAAAMD6RjhDg/ryyy9XqGapL2m9luuuuy7OPPPMXH2y/fbb5zZiSao+Sdq1axfnn39+7LnnnvHNb34zrrnmmviP//iP/Lyi3r17R//+/XM7sP322y+GDRsWm2++edx55531Ov50jhQapdZiKURq3bp1fP7559GzZ8+K8deH3//+97lV2h/+8IcVAqVUeZSksAgAAAAAgJoRztCgUhjy2WefVdmW1nKZMWNGlW3F+19lnZckBS8p0Jg6dWp88sknuSVZ0q1bt5U+JwU177777kofb9asWV6HZVX7LC9dx8yZM6tsW7JkSXz66aervMYUMP3973/Pz03jv//++3MF0KrGX925a/r6pvVkTj311BzMFNe0qSyNtxgcAQAAAABQM8IZGlQKNdLi9JWlypQ333yzSngxcuTIaNWqVey4445f+Zxp3ZbUjitVfaQWZ2ndmFR9sjLjx4+Pjh07rvTx1FYsjXdV+ywvXWMKiSqvdfPnP/85t0hLYVBNQq20Zk16Tnqd0ho5tTl3TV7f9Nqccsop+evhhx9e7bHeeuut2GqrrfJ4AAAAAAComaY13A/qRVoH5pJLLsnVM5tuumlFdUgKCU488cS49tpr83omAwYMiLPPPju3I0vSIvSptdioUaNiyy23zNtSNUyq5EhfU2CSQpVku+22y23AktSe7NBDD81twFI7stS2LFWFNGnSJD9+7733RvPmzXNolKR90voyv/71ryvGnNapSeu/pOOmgCUdM62dkypMaurrX/96Hsdpp50Wd9xxRyxevDjOOeecOP744yvW4EkVMQcccEDcd9990atXr7ztt7/9bX5uqlQZO3Zs/OhHP4r//M//zOvgFK3udajJ65tamZ100klx00035bCouKZMCrRSO7WiMWPG5OMBAAAAAFBzwhkaVI8ePXLVSgpIzjjjjLwtBSXDhw+Ps846K1d5bLTRRjkoSKFIUVrjZOLEiTnUKBo4cGAOV4qKAcszzzwTffr0yd8/8cQTcdVVV8XChQtj1113jUcffTQOO+ywKmO68sorc9jStGnT6N69ewwdOjS+853vVDyegqQUqqTAIgVKu+++e7zwwgtVqk4uu+yyuOeee2LKlCkrvfbf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r3md/p2ejnPppZfmrymAnThxYhx55JElvjJYP9XHz+rtt98+br311vz/1c8991z+ICnt8/HHH5fwymD9VR/zuujhhx+OF198Mf8yBbDuz+tDDz00pk2bVnF74IEH6mbABcpar169CmeffXbF/aVLlxY6depUuPrqq1f73G222aZw4403Vtk2f/78QpMmTQrDhw+vsr1nz56Fn/3sZ3U4cqA+5nWyZMmSwiabbFK499578/1ly5YVOnToULjuuusq9vn8888LLVq0KDzwwAP1cAVAfc/ryiZPnlxI/+R77bXX6nTMQMPN66Jx48bl+f3ee+/VyZiBhp3Ts2fPznP66aefrpMxAw0zrz/44IPClltuWXjrrbeq/WwNWLfm9UknnVTo169fvYxX5UwZW7RoUbzyyiu5qqWocePG+X5KAtfEkiVLYunSpbksrLLUBin9pg+w9s/r9Ju3qTVK27Zt8/3JkyfH9OnTqxyzdevWufRzTf+uABp2XgPrx7yePXt2bqvQpk2bOhk30HBzOp3jrrvuyv8OT7/lC6yb83rZsmVx4oknxoUXXhg77bRTvYwdKP3P61Rhs8UWW8QOO+wQZ511VsyaNSvqgnCmjH3yySc5SGnfvn2V7el++iB2TWyyySbRu3fvuPLKK3N/63T8IUOG5D/gqaQLWPvndepXn0qriz+sis+ry78rgIad10D5z+vUejTtk9owtGrVqk7GDZR+Tg8fPjw23njj/AuQN954Y24h3q5duzodP1C6eZ1aCjdt2jTOPffcOh8z0DDzOrU0u++++2LUqFF5jv/lL3+Jww47LJ/rq2r6lY/AeietNfP9738/ttxyy2jSpEn07Nkz/09hSiaBtVtaT+rBBx/Mif/yFXDAusm8hvVvXqff5jv22GNTi+q4/fbbG2SMQN3M6f333z/Gjx+fP1BKixKnuZ3WgEy/nQusW/M6fS5200035XUuUmUrUB4/r48//viK73v06BG77LJLbLvttnm/Aw444CudU+VMGUu/bZPCkxkzZlTZnu536NBhjY+b/vClhHDu3Lnx/vvvx7hx4/L/IHbr1q0ORg3U17y+/vrr8w+ap556Kv8gKSo+r67/rgAabl4D5Tuvi8HMe++9l3/DXtUMrNtzeqONNortttsu9tprr/jNb36Tf+M+fQXWvXk9ZsyYvOj41ltvnedyuqWf1xdccEF06dKl3q4FKO3/W6fPwNO53n333fiqhDNlrHnz5rH77rvnkqvKvS/T/dSa7KtK/4js2LFjfPbZZ/Hkk09Gv379vvIxgfqZ19dee21uRzhixIjYY489qjzWtWvX/EOq8jHnzJmTf2OvLv6uAEo/r4HynNfFYGbSpEnx9NNPx2abbVZv1wA0zM/qdNyFCxfWybiB0s7rtNbMG2+8kavhirfUHimtP5M+NwPK4+f1Bx98kNecSZ+Lf2UFytqDDz5YaNGiReGee+4pTJgwoXD66acX2rRpU5g+fXp+/MQTTyxcfPHFFfsvXLiw8Nprr+Vbx44dCz/+8Y/z95MmTarYZ8SIEYUnnnii8I9//KPw1FNPFXbdddfCnnvuWVi0aFGDXCOsb2o7r6+55ppC8+bNC3/84x8L06ZNq7h98cUXVfZJx3j00UcLb7zxRqFfv36Frl27Fr788ssGuUZY39THvJ41a1b+Gf7YY48V0j/50jnS/bQfsO7N6/Rv7SOPPLKw1VZbFcaPH19ln/RveGDdmtNz584tXHLJJYWxY8cWpkyZUvjrX/9aOOWUU/I53nrrrQa7Tlif1Me/wZe3zTbbFG688caSXA9QqPN5nb6mz8fTz+vJkycXnn766ULPnj0LX/va1woLFiz4yuMVzqwHbrnllsLWW2+d/6D16tWr8OKLL1Y8tt9++xVOOumkivvpD1n6AGf5W9qvaOjQoYVu3brl43Xo0KFw9tlnFz7//POSXxesz2ozr9M/Bqub14MGDarYZ9myZYVLL7200L59+/xD7IADDihMnDix5NcF67O6nte//e1vV7sPsO7M65X9Oz3dnnnmmQa5Pljf1OWcTr8EdfTRRxc6deqUj5d+OTIFsOPGjWuQa4P1VV3/G3x5whlYt+f1/PnzCwcffHBh8803LzRr1izvf9ppp1WEPV9Vo/Sfr15/AwAAAAAAQE1YcwYAAAAAAKCEhDMAAAAAAAAlJJwBAAAAAAAoIeEMAAAAAABACQlnAAAAAAAASkg4AwAAAAAAUELCGQAAAAAAgBISzgAAAAAAAJSQcAYAAOAratSoUTzyyCNrzXEAAIC1m3AGAABY50yfPj1++MMfRrdu3aJFixbRuXPnOOKII2LUqFGxLrjssstit912W2H7tGnT4rDDDmuQMQEAAKXTtITnAgAA+MqmTJkS//Iv/xJt2rSJ6667Lnr06BGLFy+OJ598Ms4+++x45513an3MRYsWRfPmzVfYno7brFmzKJUOHTqU7FwAAEDDUTkDAACsU/7f//t/uf3XuHHj4phjjontt98+dtpppzj//PPjxRdfzPtMnTo1+vXrFxtvvHG0atUqjj322JgxY8YKlSu//vWvo2vXrrHBBhvk7em4t99+exx55JGx0UYbxVVXXZW3P/roo9GzZ8+8X6rWufzyy2PJkiUrHeNFF12Ux9WyZcu8/6WXXpqDnuSee+7Jz3/99dfz+dItbauurdmbb74Z//qv/xobbrhhbLbZZnH66afH3LlzKx4/+eST46ijjorrr78+OnbsmPdJAVXxXAAAwNpJ5QwAALDO+PTTT2PEiBE5NEnhyfJSNc2yZcsqgpm//OUvOURJgcVxxx0Xo0ePrtj33XffjYceeiiGDRsWTZo0qRLcXHPNNTF48OBo2rRpjBkzJvr37x8333xz7LPPPvH3v/89hyTJoEGDqh3nJptskgOXTp065YDltNNOy9t+8pOf5HG89dZb+TqefvrpvH/r1q1XOMa8efPikEMOid69e8fLL78cM2fOjFNPPTXOOeecijAneeaZZ3Iwk76ma0rHT8FTOicAALB2Es4AAADrjBQ+FAqF6N69+0r3SevOpEBk8uTJeS2a5L777svVNSnk+OY3v1nRyixt33zzzas8/3vf+16ccsopFfe///3vx8UXXxwnnXRSvp8qYa688soctKwsnBkwYEDF9126dIkf//jH8eCDD+bnpCqYFByl4GdVbcx+//vfx4IFC/IYi0HUrbfemtfW+cUvfhHt27fP2zbddNO8PQVM6XU5/PDD82sgnAEAgLWXcAYAAFhnpGBmdf72t7/lUKYYzCQ77rhjrqpJjxXDmW222WaFYCbZY489qtxP7ceef/75ihZnydKlS3NwMn/+/Ny6bHlDhw7NlTapyia1IUvVO6m9Wm2kse66665VKoTSWjupMmjixIkV4UwKnSpX/qQqmhROAQAAay/hDAAAsM742te+ltdleeedd77ysapri1bd9hSupDVivv3tb6+wb3GtmsrGjh0b//7v/56fk9qSpZZlqWrmhhtuiPrQrFmzKvfT65MCHAAAYO0lnAEAANYZbdu2zYHHbbfdFueee+4KQcrnn38eX//61+P999/Pt2L1zIQJE/JjqYKmtnr27JkrVbbbbrsa7f/CCy/kqpyf/exnFdvee++9Kvs0b948V9+sSrqOtLZMWnumeJ2pgqdx48axww471Po6AACAtUfjhh4AAABAbaRgJgUbvXr1ioceeigmTZqUW4ClNmK9e/eOAw88MHr06JGrV1599dUYN25c9O/fP/bbb78VWpbVxMCBA/O6L6kS5u23387nSpUwldeVWb66Z+rUqXmf1NYsjevhhx+usk9ahyatiTN+/Pj45JNPYuHChSscJ40/VeaktW7eeuuteOaZZ+KHP/xhnHjiiRUtzQAAgHWTcAYAAFindOvWLYcu+++/f1xwwQWx8847x0EHHRSjRo2K22+/Pbf1evTRR2PTTTeNfffdN4c16TlpHZg1kSp1hg8fHk899VRer2avvfaKG2+8MVfHVOfII4+M//zP/4xzzjkndtttt1xJc+mll1bZ55hjjolDDz00X0Na9+aBBx5Y4ThpLZsnn3wyPv3003ze73znO3HAAQfErbfeukbXAQAArD0aFWqyoiYAAAAAAAB1QuUMAAAAAABACQlnAAAAAAAASkg4AwAAAAAAUELCGQAAAAAAgBISzgAAAAAAAJSQcAYAAAAAAKCEhDMAAAAAAAAlJJwBAAAAAAAoIeEMAAAAAABACQlnAAAAAAAASkg4AwAAAAAAEKXz/wGOPK3Rxbs6PAAAAABJRU5ErkJggg==",
+      "text/plain": [
+       "<Figure size 2000x1000 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "plt.figure(figsize=(20,10))\n",
+    "plt.scatter(corr_values, acc_values, c='blue', marker='o', label='Runs')\n",
+    "for i in range(runs):\n",
+    "    plt.annotate(f'({corr_values[i]:.4f}, {acc_values[i]:.4f})',  \n",
+    "    (corr_values[i], acc_values[i]),  \n",
+    "    textcoords=\"offset points\",  \n",
+    "    xytext=(5,5),  \n",
+    "    ha='right',  \n",
+    "    fontsize=10,  \n",
+    "    bbox=dict(boxstyle=\"round,pad=0.3\", edgecolor='gray', facecolor='white'))\n",
+    "\n",
+    "plt.savefig(\"Tradeoff_plot.png\", dpi = 300, bbox_inches = \"tight\")\n",
+    "plt.xlabel('Correlation')\n",
+    "plt.ylabel('Accuracy')\n",
+    "plt.title('Trade-off between Correlation and Accuracy')\n",
+    "plt.grid(True)\n",
+    "plt.legend()\n",
+    "plt.show()\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 28,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Best Correlation: 0.2480 (Run 3)\n",
+      "Best Accuracy: 0.9209 (Run 7) \n"
+     ]
+    }
+   ],
+   "source": [
+    "best_C = max(corr_values)\n",
+    "best_CIndex = corr_values.index(best_C)\n",
+    "\n",
+    "best_a = max(acc_values)\n",
+    "best_aindex = acc_values.index(best_a)\n",
+    "\n",
+    "print(f\"Best Correlation: {best_C:.4f} (Run {best_CIndex + 1})\")\n",
+    "print(f\"Best Accuracy: {best_a:.4f} (Run {best_aindex + 1}) \")\n",
+    "\n",
+    "with open(\"Correlation-Accuracy Results\", \"w\") as f:\n",
+    "    f.write(\"Correlation\\tAccuracy\\n\")\n",
+    "    for i in range(runs):\n",
+    "        f.write(f\"Runs {i+1}\\t{corr_values[i]:.4f}\\t{acc_values[i]:.4f}\\n\")"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.12.3"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
-- 
GitLab