diff --git a/TD2 Deep Learning.ipynb b/TD2 Deep Learning.ipynb
index 2ecfce959ae6b947b633a758433f9bea0bf6992e..d59ed6c4a0aa124393eb61023129c75ca1576d1b 100644
--- a/TD2 Deep Learning.ipynb	
+++ b/TD2 Deep Learning.ipynb	
@@ -33,10 +33,45 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "id": "330a42f5",
+   "execution_count": 1,
    "metadata": {},
    "outputs": [],
+   "source": [
+    "import os\n",
+    "os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE'\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "330a42f5",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Requirement already satisfied: torch in c:\\users\\zineb\\anaconda3\\lib\\site-packages (2.1.0)\n",
+      "Requirement already satisfied: torchvision in c:\\users\\zineb\\anaconda3\\lib\\site-packages (0.16.0)\n",
+      "Requirement already satisfied: typing-extensions in c:\\users\\zineb\\anaconda3\\lib\\site-packages (from torch) (4.4.0)\n",
+      "Requirement already satisfied: fsspec in c:\\users\\zineb\\anaconda3\\lib\\site-packages (from torch) (2022.11.0)\n",
+      "Requirement already satisfied: filelock in c:\\users\\zineb\\anaconda3\\lib\\site-packages (from torch) (3.9.0)\n",
+      "Requirement already satisfied: jinja2 in c:\\users\\zineb\\anaconda3\\lib\\site-packages (from torch) (3.1.2)\n",
+      "Requirement already satisfied: sympy in c:\\users\\zineb\\anaconda3\\lib\\site-packages (from torch) (1.11.1)\n",
+      "Requirement already satisfied: networkx in c:\\users\\zineb\\anaconda3\\lib\\site-packages (from torch) (2.8.4)\n",
+      "Requirement already satisfied: requests in c:\\users\\zineb\\anaconda3\\lib\\site-packages (from torchvision) (2.28.1)\n",
+      "Requirement already satisfied: numpy in c:\\users\\zineb\\anaconda3\\lib\\site-packages (from torchvision) (1.23.5)\n",
+      "Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in c:\\users\\zineb\\anaconda3\\lib\\site-packages (from torchvision) (9.4.0)\n",
+      "Requirement already satisfied: MarkupSafe>=2.0 in c:\\users\\zineb\\anaconda3\\lib\\site-packages (from jinja2->torch) (2.1.1)\n",
+      "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\zineb\\anaconda3\\lib\\site-packages (from requests->torchvision) (3.4)\n",
+      "Requirement already satisfied: charset-normalizer<3,>=2 in c:\\users\\zineb\\anaconda3\\lib\\site-packages (from requests->torchvision) (2.0.4)\n",
+      "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\zineb\\anaconda3\\lib\\site-packages (from requests->torchvision) (2022.12.7)\n",
+      "Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\\users\\zineb\\anaconda3\\lib\\site-packages (from requests->torchvision) (1.26.14)\n",
+      "Requirement already satisfied: mpmath>=0.19 in c:\\users\\zineb\\anaconda3\\lib\\site-packages (from sympy->torch) (1.2.1)\n",
+      "Note: you may need to restart the kernel to use updated packages.\n"
+     ]
+    }
+   ],
    "source": [
     "%pip install torch torchvision"
    ]
@@ -52,10 +87,72 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 3,
    "id": "b1950f0a",
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "tensor([[ 1.1239, -0.1932, -0.3678,  0.6501, -1.6171,  0.8080, -0.6757,  0.7948,\n",
+      "          1.5157, -1.3117],\n",
+      "        [-0.8269,  0.9166, -1.0019, -0.2305, -0.3064,  1.0889,  0.9980, -0.3777,\n",
+      "          0.4656,  0.4016],\n",
+      "        [-0.8129, -1.3841, -0.4977, -0.9127,  0.0263, -1.9956,  0.6943,  0.6797,\n",
+      "         -1.2654,  0.3845],\n",
+      "        [ 1.8559, -0.6340,  0.4447, -0.4551,  2.3249, -1.0240,  1.1692,  1.0055,\n",
+      "          1.1300, -1.1291],\n",
+      "        [-1.2167, -0.1497, -0.3531,  0.3234,  0.0849, -0.9314,  0.2087,  0.1036,\n",
+      "          0.6657,  0.7696],\n",
+      "        [-0.8422,  0.0149,  0.4670,  0.8750,  0.6934, -0.6946, -0.8375,  0.3733,\n",
+      "          2.1730,  0.4021],\n",
+      "        [-1.7150, -0.5338, -1.1197,  0.8048, -0.3672,  1.4353,  0.9914,  0.1067,\n",
+      "         -1.5501, -0.3670],\n",
+      "        [ 0.7398, -1.3274,  0.9454, -0.8925,  1.3522, -0.1251, -1.0844,  0.2798,\n",
+      "          0.8869,  1.9583],\n",
+      "        [ 0.6190,  0.2013,  1.2158, -1.9120, -0.8225,  1.0157, -0.8829,  1.1086,\n",
+      "          0.3689, -0.7653],\n",
+      "        [-1.4697,  0.1193,  0.1927,  0.1938,  1.2624,  1.4603, -0.5729,  0.7812,\n",
+      "         -0.1746,  0.3517],\n",
+      "        [-2.3466, -0.7611,  0.2812,  0.1764, -0.2962,  1.6342, -0.9823,  1.4876,\n",
+      "         -0.0404, -0.5239],\n",
+      "        [ 0.3076,  0.7985, -1.1781,  1.1919, -1.2734, -0.1057,  0.5247, -0.0806,\n",
+      "         -1.7013, -0.6426],\n",
+      "        [-0.0850,  1.5228,  0.4942,  0.3237, -0.3474,  2.0463,  0.6448,  0.5552,\n",
+      "          0.9487, -0.2049],\n",
+      "        [ 0.9692, -1.2029, -0.7236, -0.4824, -1.5250, -0.2548, -1.2384,  0.3218,\n",
+      "         -0.4170,  0.0320]])\n",
+      "AlexNet(\n",
+      "  (features): Sequential(\n",
+      "    (0): Conv2d(3, 64, kernel_size=(11, 11), stride=(4, 4), padding=(2, 2))\n",
+      "    (1): ReLU(inplace=True)\n",
+      "    (2): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
+      "    (3): Conv2d(64, 192, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n",
+      "    (4): ReLU(inplace=True)\n",
+      "    (5): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
+      "    (6): Conv2d(192, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
+      "    (7): ReLU(inplace=True)\n",
+      "    (8): Conv2d(384, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
+      "    (9): ReLU(inplace=True)\n",
+      "    (10): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
+      "    (11): ReLU(inplace=True)\n",
+      "    (12): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
+      "  )\n",
+      "  (avgpool): AdaptiveAvgPool2d(output_size=(6, 6))\n",
+      "  (classifier): Sequential(\n",
+      "    (0): Dropout(p=0.5, inplace=False)\n",
+      "    (1): Linear(in_features=9216, out_features=4096, bias=True)\n",
+      "    (2): ReLU(inplace=True)\n",
+      "    (3): Dropout(p=0.5, inplace=False)\n",
+      "    (4): Linear(in_features=4096, out_features=4096, bias=True)\n",
+      "    (5): ReLU(inplace=True)\n",
+      "    (6): Linear(in_features=4096, out_features=1000, bias=True)\n",
+      "  )\n",
+      ")\n"
+     ]
+    }
+   ],
    "source": [
     "import torch\n",
     "\n",
@@ -95,10 +192,18 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 4,
    "id": "6e18f2fd",
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "CUDA is not available.  Training on CPU ...\n"
+     ]
+    }
+   ],
    "source": [
     "import torch\n",
     "\n",
@@ -121,10 +226,19 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 5,
    "id": "462666a2",
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Files already downloaded and verified\n",
+      "Files already downloaded and verified\n"
+     ]
+    }
+   ],
    "source": [
     "import numpy as np\n",
     "from torchvision import datasets, transforms\n",
@@ -193,10 +307,25 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 6,
    "id": "317bf070",
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Net(\n",
+      "  (conv1): Conv2d(3, 6, kernel_size=(5, 5), stride=(1, 1))\n",
+      "  (pool): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
+      "  (conv2): Conv2d(6, 16, kernel_size=(5, 5), stride=(1, 1))\n",
+      "  (fc1): Linear(in_features=400, out_features=120, bias=True)\n",
+      "  (fc2): Linear(in_features=120, out_features=84, bias=True)\n",
+      "  (fc3): Linear(in_features=84, out_features=10, bias=True)\n",
+      ")\n"
+     ]
+    }
+   ],
    "source": [
     "import torch.nn as nn\n",
     "import torch.nn.functional as F\n",
@@ -242,18 +371,70 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 8,
    "id": "4b53f229",
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Epoch: 0 \tTraining Loss: 30.219081 \tValidation Loss: 29.449449\n",
+      "Validation loss decreased (inf --> 29.449449).  Saving model ...\n",
+      "Epoch: 1 \tTraining Loss: 28.063993 \tValidation Loss: 26.581815\n",
+      "Validation loss decreased (29.449449 --> 26.581815).  Saving model ...\n",
+      "Epoch: 2 \tTraining Loss: 26.363633 \tValidation Loss: 25.372685\n",
+      "Validation loss decreased (26.581815 --> 25.372685).  Saving model ...\n",
+      "Epoch: 3 \tTraining Loss: 24.926940 \tValidation Loss: 24.959999\n",
+      "Validation loss decreased (25.372685 --> 24.959999).  Saving model ...\n",
+      "Epoch: 4 \tTraining Loss: 23.776435 \tValidation Loss: 23.839217\n",
+      "Validation loss decreased (24.959999 --> 23.839217).  Saving model ...\n",
+      "Epoch: 5 \tTraining Loss: 22.797345 \tValidation Loss: 23.305578\n",
+      "Validation loss decreased (23.839217 --> 23.305578).  Saving model ...\n",
+      "Epoch: 6 \tTraining Loss: 21.879690 \tValidation Loss: 22.761072\n",
+      "Validation loss decreased (23.305578 --> 22.761072).  Saving model ...\n",
+      "Epoch: 7 \tTraining Loss: 21.059626 \tValidation Loss: 22.490790\n",
+      "Validation loss decreased (22.761072 --> 22.490790).  Saving model ...\n",
+      "Epoch: 8 \tTraining Loss: 20.277269 \tValidation Loss: 21.736995\n",
+      "Validation loss decreased (22.490790 --> 21.736995).  Saving model ...\n",
+      "Epoch: 9 \tTraining Loss: 19.577080 \tValidation Loss: 21.602148\n",
+      "Validation loss decreased (21.736995 --> 21.602148).  Saving model ...\n",
+      "Epoch: 10 \tTraining Loss: 18.834896 \tValidation Loss: 21.280448\n",
+      "Validation loss decreased (21.602148 --> 21.280448).  Saving model ...\n",
+      "Epoch: 11 \tTraining Loss: 18.216890 \tValidation Loss: 21.327105\n",
+      "Epoch: 12 \tTraining Loss: 17.571436 \tValidation Loss: 21.276174\n",
+      "Validation loss decreased (21.280448 --> 21.276174).  Saving model ...\n",
+      "Epoch: 13 \tTraining Loss: 16.967960 \tValidation Loss: 21.732455\n",
+      "Epoch: 14 \tTraining Loss: 16.365070 \tValidation Loss: 21.229552\n",
+      "Validation loss decreased (21.276174 --> 21.229552).  Saving model ...\n",
+      "Epoch: 15 \tTraining Loss: 15.752467 \tValidation Loss: 20.502602\n",
+      "Validation loss decreased (21.229552 --> 20.502602).  Saving model ...\n",
+      "Epoch: 16 \tTraining Loss: 15.268329 \tValidation Loss: 21.520030\n",
+      "Epoch: 17 \tTraining Loss: 14.628543 \tValidation Loss: 21.506971\n",
+      "Epoch: 18 \tTraining Loss: 14.140162 \tValidation Loss: 22.796522\n",
+      "Epoch: 19 \tTraining Loss: 13.601739 \tValidation Loss: 22.185051\n",
+      "Epoch: 20 \tTraining Loss: 13.148037 \tValidation Loss: 22.820398\n",
+      "Epoch: 21 \tTraining Loss: 12.589797 \tValidation Loss: 22.923253\n",
+      "Epoch: 22 \tTraining Loss: 12.201906 \tValidation Loss: 23.655233\n",
+      "Epoch: 23 \tTraining Loss: 11.742708 \tValidation Loss: 24.267373\n",
+      "Epoch: 24 \tTraining Loss: 11.254362 \tValidation Loss: 24.776800\n",
+      "Epoch: 25 \tTraining Loss: 10.871113 \tValidation Loss: 25.960069\n",
+      "Epoch: 26 \tTraining Loss: 10.347627 \tValidation Loss: 25.899857\n",
+      "Epoch: 27 \tTraining Loss: 10.017751 \tValidation Loss: 27.078486\n",
+      "Epoch: 28 \tTraining Loss: 9.576065 \tValidation Loss: 27.790080\n",
+      "Epoch: 29 \tTraining Loss: 9.297409 \tValidation Loss: 28.061284\n"
+     ]
+    }
+   ],
    "source": [
     "import torch.optim as optim\n",
     "\n",
     "criterion = nn.CrossEntropyLoss()  # specify loss function\n",
     "optimizer = optim.SGD(model.parameters(), lr=0.01)  # specify optimizer\n",
     "\n",
-    "n_epochs = 30  # number of epochs to train the model\n",
-    "train_loss_list = []  # list to store loss to visualize\n",
+    "n_epochs = 30 # number of epochs to train the model\n",
+    "train_loss_list = [] # list to store loss to visualize\n",
+    "Valid_loss_list = []\n",
     "valid_loss_min = np.Inf  # track change in validation loss\n",
     "\n",
     "for epoch in range(n_epochs):\n",
@@ -297,6 +478,9 @@
     "    train_loss = train_loss / len(train_loader)\n",
     "    valid_loss = valid_loss / len(valid_loader)\n",
     "    train_loss_list.append(train_loss)\n",
+    "    Valid_loss_list.append(valid_loss)\n",
+    "    \n",
+    "\n",
     "\n",
     "    # Print training/validation statistics\n",
     "    print(\n",
@@ -313,7 +497,9 @@
     "            )\n",
     "        )\n",
     "        torch.save(model.state_dict(), \"model_cifar.pt\")\n",
-    "        valid_loss_min = valid_loss"
+    "        valid_loss_min = valid_loss\n",
+    "\n",
+    "     "
    ]
   },
   {
@@ -326,18 +512,34 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "id": "d39df818",
+   "execution_count": 12,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjQAAAHFCAYAAADlrWMiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABztUlEQVR4nO3dd3QU5dvG8e+m91BCGoQQepEmvfcmIEVFERFEQapiw/ZTsYK+gqgoVooVRIpIB4HQpUjvJfQEQktCepn3j4FoQgshyWaT63POHnZnZ2fvXQZy5ZmnWAzDMBARERGxYXbWLkBERETkbinQiIiIiM1ToBERERGbp0AjIiIiNk+BRkRERGyeAo2IiIjYPAUaERERsXkKNCIiImLzFGhERETE5inQiGTT1KlTsVgs6TcHBwdKlSrFE088wenTp3P0vZKSkhg8eDABAQHY29tTq1atHD2+3NyMGTOoVq0arq6uWCwWtm/ffsP9Vq1alX4uTJ069Yb7tG7dGovFQpkyZXK0xjJlytC/f/9svdZisTB69Ojb7vfDDz/wyCOPUKlSJezs7HL8M4jcLQdrFyBi66ZMmULlypWJj49n9erVjBkzhtDQUHbt2oW7u3uOvMekSZP4+uuv+fzzz6lTpw4eHh45cly5tcjISPr27UvHjh358ssvcXZ2pmLFird8jaenJ99///11ASMsLIxVq1bh5eWVixXnnh9//JGIiAjq169PWloaycnJ1i5JJAMFGpG7dM8991C3bl0AWrVqRWpqKu+++y5z586lT58+d3XsuLg43Nzc2L17N66urgwfPjwnSgYgPj4eV1fXHDteQXTw4EGSk5N57LHHaNGiRZZe8/DDD/Pdd99x6NAhKlSokL598uTJlCxZkurVq7N3797cKjnXLFmyBDs7s1G/S5cu7N6928oViWSkS04iOaxhw4YAHD9+HADDMPjyyy+pVasWrq6uFC1alAcffJCjR49meF3Lli255557WL16NY0bN8bNzY0BAwZgsVj47rvviI+Pv+6SRkJCAq+++iohISE4OTlRsmRJhg0bxuXLlzMcu0yZMnTp0oXZs2dTu3ZtXFxcePvtt9Mvk/zyyy+8/PLLBAQE4OHhQdeuXTl79iwxMTEMGjQIHx8ffHx8eOKJJ7hy5UqGY3/xxRc0b94cX19f3N3dqV69Oh999NF1v8Ff+3ybN2+mWbNmuLm5UbZsWcaOHUtaWlqGfS9fvswLL7xA2bJlcXZ2xtfXl/vuu4/9+/en75OUlMR7771H5cqVcXZ2pkSJEjzxxBNERkZm6e9p3rx5NGrUCDc3Nzw9PWnXrh0bNmxIf75///40bdoUMEOKxWKhZcuWtz1uu3btCAoKYvLkyenb0tLSmDZtGv369UsPBf+V1b/H5ORkRo0ahb+/P25ubjRt2pRNmzbdsI6IiAiefvppSpUqhZOTEyEhIbz99tukpKRk4du53o3qFslXDBHJlilTphiAsXnz5gzbP/30UwMwvvnmG8MwDGPgwIGGo6Oj8cILLxiLFy82fvnlF6Ny5cqGn5+fERERkf66Fi1aGMWKFTOCgoKMzz//3Fi5cqURGhpqbNiwwbjvvvsMV1dXY8OGDcaGDRuMc+fOGWlpaUaHDh0MBwcH44033jCWLl1qfPzxx4a7u7tRu3ZtIyEhIf3YwcHBRkBAgFG2bFlj8uTJxsqVK41NmzYZK1euNAAjODjY6N+/v7F48WLjq6++Mjw8PIxWrVoZ7dq1M1588UVj6dKlxocffmjY29sbI0aMyPB5n3vuOWPSpEnG4sWLjRUrVhiffPKJ4ePjYzzxxBMZ9mvRooVRvHhxo0KFCsZXX31lLFu2zBg6dKgBGNOmTUvfLzo62qhWrZrh7u5uvPPOO8aSJUuMWbNmGc8++6yxYsUKwzAMIzU11ejYsaPh7u5uvP3228ayZcuM7777zihZsqRRtWpVIy4u7pZ/dz///LMBGO3btzfmzp1rzJgxw6hTp47h5ORkrFmzxjAMwzh8+LDxxRdfGIDxwQcfGBs2bDD27Nlz02Ne+y5nzpxpvPHGG0ZgYKCRkpJiGIZhLFq0yLBYLMbhw4eNzp07G8HBwemvu5O/x379+hkWi8V46aWXjKVLlxrjx483SpYsaXh5eRn9+vVL3y88PNwICgoygoODja+//tpYvny58e677xrOzs5G//79M9QNGG+99dYtv6/MMn8GkfxAgUYkm64Fmo0bNxrJyclGTEyMMX/+fKNEiRKGp6enERERYWzYsMEAjHHjxmV47cmTJw1XV1dj1KhR6dtatGhhAMZff/113Xv169fPcHd3z7Bt8eLFBmB89NFHGbbPmDEjQ6AyDDPQ2NvbGwcOHMiw77Ufwl27ds2wfeTIkQZgPPPMMxm2d+/e3ShWrNhNv5PU1FQjOTnZ+OGHHwx7e3vj4sWL132+v//+O8NrqlatanTo0CH98TvvvGMAxrJly276Pr/++qsBGLNmzcqwffPmzQZgfPnll7esMTAw0KhevbqRmpqavj0mJsbw9fU1GjdunL7tvyHldv6779GjRw2LxWLMnz/fMAzDeOihh4yWLVsahnF9GMjq3+O+ffsMwHjuuecy7HctnP030Dz99NOGh4eHcfz48Qz7fvzxxwaQIZgp0EhBoTZEkbvUsGFDHB0d8fT0pEuXLvj7+7No0SL8/PyYP38+FouFxx57jJSUlPSbv78/NWvWZNWqVRmOVbRoUVq3bp2l912xYgXAdZ1PH3roIdzd3fnrr78ybK9Ro8ZNO7R26dIlw+MqVaoA0Llz5+u2X7x4McNlp23btnH//fdTvHhx7O3tcXR05PHHHyc1NZWDBw9meL2/vz/169e/rq5rl+cAFi1aRMWKFWnbtu3NPjrz58+nSJEidO3aNcP3WqtWLfz9/a/7Xv/rwIEDnDlzhr59+2a4jOLh4cEDDzzAxo0biYuLu+nrsyIkJISWLVsyefJkLly4wB9//MGAAQNuuG9W/x5XrlwJcF2/rF69euHgkLE75Pz582nVqhWBgYEZvp9OnToBEBoaelefTyQ/Uqdgkbv0ww8/UKVKFRwcHPDz8yMgICD9ubNnz2IYBn5+fjd8bdmyZTM8/u9rb+fChQs4ODhQokSJDNstFgv+/v5cuHAhy8cuVqxYhsdOTk633J6QkICHhwcnTpygWbNmVKpUiU8//ZQyZcrg4uLCpk2bGDZsGPHx8RleX7x48eve29nZOcN+kZGRlC5d+qa1gvm9Xr58Ob2ezM6fP3/T1177Xm70fQQGBpKWlsalS5dwc3O7ZQ238+STT/LEE08wfvx4XF1defDBB29aT1b+Hq/96e/vn2E/BweH677Xs2fP8ueff+Lo6HjD97zV9yNiqxRoRO5SlSpV0kc5Zebj44PFYmHNmjU4Oztf93zmbRaLJcvvW7x4cVJSUoiMjMzww9AwDCIiIqhXr162j51Vc+fOJTY2ltmzZxMcHJy+/WZztWRFiRIlOHXq1C338fHxoXjx4ixevPiGz3t6et70tdd++IeHh1/33JkzZ7Czs6No0aJ3UPGN9ezZk2HDhjF27FgGDhx40xFlWf17vFZ3REQEJUuWTN8vJSXluvDq4+NDjRo1eP/992/4noGBgXf12UTyI11yEslFXbp0wTAMTp8+Td26da+7Va9ePdvHbtOmDQA//fRThu2zZs0iNjY2/fncdC0k/TeYGYbBt99+m+1jdurUiYMHD6ZfirmRLl26cOHCBVJTU2/4vVaqVOmmr61UqRIlS5bkl19+wTCM9O2xsbHMmjUrfeTT3XJ1deXNN9+ka9euDBky5Kb7ZfXv8doIq59//jnDfr/99tt1I5euDasuV67cDb8fBRopiNRCI5KLmjRpwqBBg3jiiSfYsmULzZs3x93dnfDwcNauXUv16tVv+cPuVtq1a0eHDh14+eWXiY6OpkmTJuzcuZO33nqL2rVr07dv3xz+NDeuwcnJid69ezNq1CgSEhKYNGkSly5dyvYxR44cyYwZM+jWrRuvvPIK9evXJz4+ntDQULp06UKrVq145JFH+Pnnn7nvvvt49tlnqV+/Po6Ojpw6dYqVK1fSrVs3evToccPj29nZ8dFHH9GnTx+6dOnC008/TWJiIv/3f//H5cuXGTt2bLZrz+z555/n+eefv+U+Wf17rFKlCo899hgTJkzA0dGRtm3bsnv3bj7++OPrJut75513WLZsGY0bN+aZZ56hUqVKJCQkcOzYMRYuXMhXX31FqVKl7uiz7N27N33+nIiICOLi4vj9998BqFq1KlWrVr2j44nkOGv2SBaxZTcbtn0jkydPNho0aGC4u7sbrq6uRrly5YzHH3/c2LJlS/o+LVq0MKpVq3bD199olJNhGEZ8fLzx8ssvG8HBwYajo6MREBBgDBkyxLh06VKG/YKDg43OnTtf9/qbjeK52Wd76623DMCIjIxM3/bnn38aNWvWNFxcXIySJUsaL730krFo0SIDMFauXHnbz9evX7/rRsxcunTJePbZZ43SpUsbjo6Ohq+vr9G5c2dj//796fskJycbH3/8cfp7e3h4GJUrVzaefvpp49ChQ9e9T2Zz5841GjRoYLi4uBju7u5GmzZtjHXr1mXp+7mRrO57oxFCWf17TExMNF544QXD19fXcHFxMRo2bGhs2LDBCA4OzjDKyTAMIzIy0njmmWeMkJAQw9HR0ShWrJhRp04d4/XXXzeuXLmSvh9ZHOV07e/+Rrc7HSUlkhsshvGfNlcRERERG6Q+NCIiImLzFGhERETE5inQiIiIiM1ToBERERGbp0AjIiIiNk+BRkRERGxegZ9YLy0tjTNnzuDp6ZkrU7+LiIhIzjMMg5iYGAIDAzMsJHszBT7QnDlzhqCgIGuXISIiItlw8uTJLM1sXeADzbVF6k6ePHnd9OAiIiKSP0VHRxMUFHTLxWb/q8AHmmuXmby8vBRoREREbExWu4uoU7CIiIjYPAUaERERsXkKNCIiImLzFGhERETE5inQiIiIiM1ToBERERGbp0AjIiIiNk+BRkRERGyeAo2IiIjYPAUaERERsXkKNCIiImLzFGhERETE5inQ3IXdp6OIjEm0dhkiIiKFnlUDzaRJk6hRo0b6StiNGjVi0aJF6c8bhsHo0aMJDAzE1dWVli1bsmfPHitW/K/35u+ly+drmbwuzNqliIiIFHpWDTSlSpVi7NixbNmyhS1bttC6dWu6deuWHlo++ugjxo8fz8SJE9m8eTP+/v60a9eOmJgYa5YNQL2QYgD8vPE4sYkpVq5GRESkcLNqoOnatSv33XcfFStWpGLFirz//vt4eHiwceNGDMNgwoQJvP766/Ts2ZN77rmHadOmERcXxy+//GLNsgFoW8WPMsXdiE5IYeaWk9YuR0REpFDLN31oUlNTmT59OrGxsTRq1IiwsDAiIiJo3759+j7Ozs60aNGC9evX3/Q4iYmJREdHZ7jlBns7C082DQFg8rpjpKYZufI+IiIicntWDzS7du3Cw8MDZ2dnBg8ezJw5c6hatSoREREA+Pn5Zdjfz88v/bkbGTNmDN7e3um3oKCgXKv9wTpBFHFz5MTFOJbuuXlNIiIikrusHmgqVarE9u3b2bhxI0OGDKFfv37s3bs3/XmLxZJhf8Mwrtv2X6+++ipRUVHpt5Mnc+9ykKuTPY81CAbg2zVHc+19RERE5NasHmicnJwoX748devWZcyYMdSsWZNPP/0Uf39/gOtaY86dO3ddq81/OTs7p4+aunbLTY83DsbJ3o5/Tlxm6/FLufpeIiIicmNWDzSZGYZBYmIiISEh+Pv7s2zZsvTnkpKSCA0NpXHjxlasMCNfTxe61QoE4Du10oiIiFiFgzXf/LXXXqNTp04EBQURExPD9OnTWbVqFYsXL8ZisTBy5Eg++OADKlSoQIUKFfjggw9wc3Pj0UcftWbZ13mqWVlmbj3Fkj0RnLgQR+nibtYuSUREpFCxaqA5e/Ysffv2JTw8HG9vb2rUqMHixYtp164dAKNGjSI+Pp6hQ4dy6dIlGjRowNKlS/H09LRm2dep5O9J84olWH0wksnrwhh9fzVrlyQiIlKoWAzDKNDjjaOjo/H29iYqKipX+9OsORRJ3+834eZkz4ZX2uDt5phr7yUiIlLQ3enP73zXh8bmXM2DTcv7UNnfk7ikVH7edNzKRYmIiBQuCjTZtXMmfN0CtkwGzOHlTzUrC8C09cdISkmzZnUiIiKFigJNdsWEQ/h22DMnfdP9NQPx9XTmbHQif+44Y73aREREChkFmuyq1t3889haiDkLgJODHf0alwHMifYKePckERGRfEOBJruKlIaSdQED9v6RvrlPg9K4OtqzPyKGdYcvWK8+ERGRQkSB5m7c09P88z+XnYq4OdGrbilAyyGIiIjkFQWau1G1m/nniQ0Q/W+fmQFNQ7BYIPRgJAfPxlipOBERkcJDgeZueJeCoIZkvuwUXNydDlXNtai0HIKIiEjuU6C5W9V6mH/+57ITwMDmIQDM3XaGczEJeV2ViIhIoaJAc7eqdgMscPJviDqVvrlOcDFqly5CUmoaP27QRHsiIiK5SYHmbnkFQPDV1b/3zM3w1MCrE+39tPE48UmpeVyYiIhI4aFAkxPSLzvNzrC5QzV/goq5cikumd//OXWDF4qIiEhOUKDJCVXuB4sdnN4Kl/69vGRvZ2FAE7MvzeS1YaSlaaI9ERGR3KBAkxM8/SC4iXk/U+fgXnWD8HJxIOx8LMv3nbVCcSIiIgWfAk1OucEkewDuzg482iAYgO/WhOV1VSIiIoWCAk1OqXI/WOzNBSsvZpx7pn/jMjjYWdh07CI7Tl62SnkiIiIFmQJNTnH3gZDm5v1MrTT+3i7cXzMQ0HIIIiIiuUGBJifdZJI9gKeuDuFetDuCU5fi8rIqERGRAk+BJidV6Qp2DhCxC84fzvBU1UAvmpQvTmqawZR1x6xTn4iISAGlQJOT3IpB2Zbm/Vu00szYfJLohOQ8LExERKRgU6DJaTeZZA+gZcUSVPD14EpiCtM3ncjjwkRERAouBZqcVrkz2DnCub1wbn+GpywWC081Myfam7LuGMmpadaoUEREpMBRoMlprkWhXGvz/t651z3drVZJfDycCI9KYOGu8LytTUREpIBSoMkN1ybZ2z0bjIzLHbg42vN4ozKAOYTbMLQcgoiI2KDUFDi+AVa8B6e2WrsaHKxdQIFUqRPYO8H5A3BuH/hVzfD0Yw2D+XLVYXafjmb5vnO0q+pnpUJFRETuQNQpOPwXHF4OR0MhMcrcnpIIpepYtTQFmtzg4g3l28GBBWbn4EyBppi7E/0bh/BV6BE+WLiPFhVL4OSgxjIREclnkhPg+Do4ssIMMZEZ+4biWszsZnFtPUMrUqDJLdV6XA00c6DV62CxZHh6WKty/L71JGHnY/lx43GebBpipUJFRESuMgy4cPjfVphjayEl/t/nLXZQqh6Ubwvl2kBgLbCzt1q5/6VAk1sqdQQHF/PEiNgFATUyPO3p4siL7SvxyuxdfLr8ID1ql6SYu5OVihURkUIr8QqEhZoB5vByuJxpWhHPQCjfxryVbWkOfsmHFGhyi7MnVGgH+/40W2kyBRqAh+oGMW3DcfaFRzNh+UHe6XaPFQoVEZFCa998mDcc4i/9u83eCYIbmy0w5duCb5XrrjLkR+q4kZv+O8neDUYz2dtZeKNLFQB+/vsEh87G5GV1IiJSWCUnwMKXYEYfM8wUKQ31B8Gjv8HLx+DxP6DJM2YfUBsIM6BAk7sqdgQHV7h0DMK333CXxuV8aF/Vj9Q0g/cW7MvT8kREpBA6fwi+awubvjEfN34Ghm+F+/4PKnYAJ3fr1pdNCjS5ycndPDnghms7XfPafVVwtLcQejCSlQfO5VFxIiJS6Gz/Bb5uAWd3gZsP9JkF7d8FB9vvw6lAk9uuTbK3Z84NLzsBlPFx54km5iin9+bv1ZIIIiKSsxJjYPYgmDsEkmMhpDkMXgsV2lq7shyjQJPbyrcDR3ez1/jpf2662/DW5Snu7sSRyFh+3ng8DwsUEZEC7cx2+Lo57JwBFnto/T/oOxe8AqxdWY5SoMltTm7mzMFwwxW4r/FyceS5dhUB+GT5IS7HJeVFdSIiUlAZBmz8Cr5vBxePglcp6L8Amr+Ub+aOyUkKNHkhfbTTXEi7+eWkR+oFUcnPk6j4ZD7961De1CYiIgVP3EX4tTcsfhlSk6ByFxi8BoIbWbuyXKNAkxfKtwUnT4g+Bac233Q3B3s7/nd1GPePG45z+NyVvKpQREQKimPrYFITOLjInFPmvo/h4Z/ArZi1K8tVCjR5wdEFKt9n3r/FaCeAZhVK0LaKLylpBh8s1DBuERHJorRUWPUhTOsCMWegeHl46i+oP9Bm5pK5Gwo0eeXaZae9c2952QnMYdwOdhZW7D/H6oORuV+biIjYtugz8EM3WPUBGGlQ81EYFHrDWeoLKgWavFKuNTh7Q0w4nNx4y13LlvDg8UZlAHhvwV5SNIxbRERu5tg6+KopHFtjjqrt8Q30mATOHtauLE8p0OQVB2eo3Nm8f5vLTgDPtqlAETdHDp69wq+bT+ZycSIiYpPOH4bpvSHuAvjXgKdXQ82HrV2VVSjQ5KVrk+zt/cO81nkL3m6OPH91GPf4pQeIik/O7epERMSWJETBr4+YfwY1gCeXgU95a1dlNQo0eSmkBbgUgStn4fj62+7+aP3SVPD14FJcMp9rGLeIiFyTlgq/D4ALh8z5ZR7+yRyAUogp0OQlByeo0tW8f4tJ9tJ3t7fj9c7mMO5pG44Rdj42N6sTERFbsfwtOLzcXAC59y/g4WvtiqxOgSavpY92mgepKbfdvWUlX1pWKkFyqoZxi4gIsP1XWP+5eb/HJAioad168gkFmrwW0hxci0HceTi+Nksv+V/nKtjbWVi29yzrDp/P5QJFRCTfOrkZ/nzGvN981L+/JIsCTZ6zd4Sq95v3d9/+shNAeV9P+jYMBuDd+XtJTbvxqt0iIlKARZ2GGX3+Xcqg5avWrihfUaCxhmuJet88SEnM0kuebVMBb1dH9kfE8NsWDeMWESlUkuNh+qPmoBLfatDja7DTj/D/0rdhDcFNwcMf4i/B4ley9JKi7k4826YCAB8vOUB0goZxi4gUCoYBfwyD8O3gVhx6/1roJs3LCgUaa7B3gPs/AyywZTJsnZall/VtFEzZEu5ciE3ii5WHc7dGERHJH9aOh92zwM4Bev0ARYOtXVG+pEBjLRU7QKvXzfsLXzQ7et2Go70d/7s6jHvK2mOcuBCXmxWKiIi17V8If71r3r/v/6BMU+vWk48p0FhTsxfMjl2pSTDjMYiJuO1LWlXypVkFH5JS03j7zz0YhjoIi4gUSOf2weyBgAH1BkLdAdauKF9ToLEmOzvo8RWUqAxXIuC3xyEl6ZYvsVgsvNmlKk72dvy1/xyz/jmdR8WKiEieibtoLmuQdAXKNIOOY6xdUb6nQGNtzp7wyC/mStwn/4ZFo277kgp+noxsZ3YQfvvPPYRHxed2lSIikldSk81fcC8dg6JlzH4z9o7WrirfU6DJD4qXgwe+AyywdQpsnXrblwxqVpaaQUWISUjh5Vm7dOlJRKSgWPwqHFsDTh7Qezq4FbN2RTZBgSa/qNgeWl/tJLzgRTi56Za7O9jbMe6hmjg52LH6YCQzNmtuGhERm7dlMmz+FrCYv+j6VrF2RTZDgSY/afaiuXhlWjLM6AvR4bfcvbyvBy+1rwTAewv2ceqSRj2JiNisY2th4Uvm/TZvQKVO1q3HxjhYuwD5D4sFuk+C84cgcr95DbX/fHBwvulLBjQNYcmeCLYcv8So33fy05MNsLOz5GHRIiLC3j/MRSOd3MHF++rN6z/3vcGlSMbH//2//dIx8xfZtBS450Fo+ry1PonNshgFvPNFdHQ03t7eREVF4eXlZe1ysubCEfimFSRGQZ0noOuEW+4edj6WTp+uJiE5jXe7VaNvozJ5UqaIiADHN8C0q63rd8LB5d9wE38ZYs9BQC0YsBgcXXOjUptypz+/FWjyq0PL4OeHAAO6fgp1+t9y96nrwhj9515cHe1ZMrI5pYu75UmZIiKF2uWT8E1LiDsPFdpD2VaQEHXrW2LUjY/l4QcDV4J3yTz9CPmVAk0mNhtoAFZ/DCveBTtHeGIhBNW/6a5paQaPfreRjUcvUj+kGNMHNtSlJxGR3JQUC5M7QMQu8KsOTy4xLzndTloqJMZAYvR/gk40BNYCr8BcL9tW3OnPb3UKzs+avZDlTsJ2dhb+78GauDnZsynsIlPXH8u7OkVEChvDgLlDzTDj5gO9f8lamAGwswfXIlCkNPhXN5czqHyfwsxdUqDJz651Es4wk3DiTXcPKubGa/eZQ/w+WrKfo5FX8qpSEZHCZc3HsHeuuWDkwz+a4USsSoEmv/vvTMKnNt12JuE+DUrTtLwPCclpvDhzB6lpBfqKoohI3tu/AFa8Z96/72MIbmzdegRQoLENxcvBg99jziQ8FbZMuemuFouFDx+sgaezA/+cuMx3a47mWZkiIgXe2b0we5B5v95AqPuEdeuRdAo0tqJCO2j9P/P+wpfgxN833bVkEVfe6FIVgHHLDnLobExeVCgiUrBpwch8TYHGljR7Aarcb3YS/q0vRN18pe2H6paiVaUSJKWYl55SUtPysFARkQLm2oKRl49DkWB4aJoWjMxnFGhsSXon4Spw5Sx8XgfmPQNn99xgVwtjetbAy8WBHaei+Hq1Lj2JiGTbktfMBSMd3aH3r+Be3NoVSSYKNLbG2cMcHuhfA1Li4Z9pMKkxTOkMe+dBakr6rv7eLoy+vxoAE5YfZF94tLWqFhGxXVunwqZvzPs9vwG/alYtR27MqoFmzJgx1KtXD09PT3x9fenevTsHDhzIsE///v2xWCwZbg0bNrRSxflEsbLw9GrovxCqdgOLPRxfa16G+rQmrBkPsRcA6FG7JO2q+pGcavDCbztI1qUnEZGsO74BFrxo3m/1OlTpYt165KasGmhCQ0MZNmwYGzduZNmyZaSkpNC+fXtiY2Mz7NexY0fCw8PTbwsXLrRSxfmIxQJlmkCvH2DkTrN/jVtxiD4Ff70N46vA3GFYInbyfo97KOLmyN7waCauOGztykVEbMPlkzDjMbPfYtVu0Pwla1ckt5Cvlj6IjIzE19eX0NBQmjdvDpgtNJcvX2bu3LnZOqZNL31wp5ITYPcs2PQ1hO/4d3vpRmzxe4hH1viAnSNzhzXhnpLe1qtTRCS/y+6yBpJjbHrpg6goc8GuYsWKZdi+atUqfH19qVixIgMHDuTcuXPWKC//c3SB2n1gUCgMWAr3PGDOYnliA3U3P89mj+cZbJnNO9NDSUxJtXa1IiL5090sayBWk29aaAzDoFu3bly6dIk1a9akb58xYwYeHh4EBwcTFhbGG2+8QUpKClu3bsXZ2fm64yQmJpKY+O/yANHR0QQFBRWOFpobiQ6HrVPMyfhizSCYaDhwwO8+ajz1lf6Riohktvr/zJmA7Ryg35+aCdhKbHa17WHDhrFgwQLWrl1LqVKlbrpfeHg4wcHBTJ8+nZ49e173/OjRo3n77bev215oA801KYmw9w8ur5pIkYvm5agLpdpSfMBv5kJpIiJiLmsw/VHzfpcJmgnYimzyktOIESOYN28eK1euvGWYAQgICCA4OJhDhw7d8PlXX32VqKio9NvJkydzo2Tb4+AMNXpR5JnVfFX6YxINR4qfWk7UH7deG0pEpNDQsgY2zaqBxjAMhg8fzuzZs1mxYgUhISG3fc2FCxc4efIkAQEBN3ze2dkZLy+vDDfJqH/fAXzm9QIA3ju+I37Nl1auSETEyk5t1bIGNs6qgWbYsGH89NNP/PLLL3h6ehIREUFERATx8fEAXLlyhRdffJENGzZw7NgxVq1aRdeuXfHx8aFHjx7WLN2muTja02/Qc3zp0BcA579eJ2XfAitXJSJiBef2w/Q+8F1rLWtg46zah8Zisdxw+5QpU+jfvz/x8fF0796dbdu2cfnyZQICAmjVqhXvvvsuQUFBWXqPQjVs+w7tOxPF7q+f4CHLXyRZXHB8ajGWkrWtXZaISO67dBxWjYGdM8BIA4sd1HgE2rwBXoHWrk6w4U7BuUWB5tb+2n0Kx98eobndLuKcfHAbugqKZC0siojYnJizsOZjc+RnWrK5rUpXaPU/8K1s3dokA5vsFCzW0+aeUoS1+pJ9aUG4JZ3nypSekBBl7bJERHJW/CVY/jZ8VstclyktGcq2hIEr4OGfFGYKAAUa4fGW1Zlb5RPOGkXwiDpI7E99IDXZ2mWJiNy9pFhYM85c527teEiOg5J14PF58Pgf5n0pEBRoBIvFwgsPtWFCifeINZxxP7WG+LkjzdkyRURsUUoSbPoWPq0Ff71jtjyXqAKP/AJP/QVlW1i7QslhCjQCgJODHS8PeJj3XF8i1bDguusnkkPHWbssEZE7k5YK23+FiXVg4YvmDOlFgqHH1zBkHVTubC7uKwWOAo2kK+LmxMAnh/ChZQAAjqvexdj1u5WrEhHJooNLYVITmDsYLp8ADz+472MYvgVqPqJZ0Qs4B2sXIPlL2RIetHzsNSZPC2eA/UJSZw/BwbsUlG5o7dJERG4sJgIWvQx755qPXbyh6XNQf5DWqytE1EIj12lc3gfXzh+wOLUeDkYSST89DBeOWLssEZGM0tLM4dcT65thxmIPjYbDszvNQKMwU6go0MgN9W4Ywra6H7E9rSxOSZdJmPYAxF20dlkiIqbIAzD1Ppg/EhKjIKAWDFoJHd4H1yJWLk6sQYFGbmpU19pMDf6QU4YPLtFhJP70CCQnWLssESnMUhJh5Rizr8yJDeDoDh3GmCOXAmpauzqxIgUauSl7OwvvPdaad7zeJtpww/nM36TMHmI284qI5LVj68wgEzrWnBivQgcYthEaDQV7dQkt7BRo5JY8nB14c0BPXrZ/kWTDHod9s0lb8Z61yxKRwiT+EswbYV5iunAI3H3hwSnw6AwoUtra1Uk+oUAjt1WqqBtP9RvA/9IGAmC3dhys/QRSU6xcmYgUaIYBu2eZnX7/+cHcVqc/DN8E9/TUfDKSgQKNZEmd4KI0fuAZPk3pYW5YPhomNYL9CzWjsIjkvMsn4Jde8PsAc3I8n4rwxCLo+im4FrV2dZIPKdBIlnWrVZLUZq/wv+QnuGB4wvmDML03TO0Mp7dauzwRKQhSU2DDF/BFAzi0FOydoOWrMHgtBDe2dnWSjynQyB0Z2a4SqXUG0DLxEyal3E+qnTMcXwfftjZ/k7p0zNolioitijwI37WBJa+Zi0iWbgyD10HLV8DB2drVST5nMYyCfb0gOjoab29voqKi8PLysnY5BUJamsGrs3cxY8tJSlouML3CcoJOzAMM87ep+oOg+YtqFhaRrNv5G/w5EpJjzZl+270LtfuCnX7vLqzu9Oe3zhS5Y3Z2Fsb0rM6DdUpx2ihOy8OPsLbNLCjbElKTYMNEc4Xb9RPNOSNERG4mOR7+fBZmDzTDTJlmMGwT1OmnMCN3RGeLZIudnYUPH6hBz9olSU0z6L8okcW1v4I+s8C3KiRchqWvw8R6sOt3dRwWketdOALftYOtUwELtHgZHv8DPP2tXZnYIAUayTZ7Owv/91BNutcKJCXNYPiv21iadI/Zee/+z8HDHy4fh1lPmn1sjq2zdskikl/smQNft4Czu8DNB/rOhlavaUVsyTYFGrkr9nYWPn6oJvfXNEPNsF/+Yfn+83Dv4/DMP9DqdXNq8jP/mJNi/drb7PgnIoVTSiIsfAlm9oekmKsdf9dAudbWrkxsnDoFS45ISU1j5IztzN8ZjqO9ha/71qF1ZT/zySvnYNUY2DoNjFRzRdy6A8yhmO7FrVu4iOSdS8fMIHNmm/m46XPQ6n9atkBu6E5/fivQSI5JSU3jmenbWLgrAid7O75+vA6tKvn+u0PkAVj2FhxcZD529jZHQzV4WkMyRQq6/Qtg7hBIiDJHQPb4Biq2t3ZVko9plJNYjYO9HZ8+UpuO1fxJSk3j6R+3Enow8t8dSlSCR6dDvz/BvzokRsGyN8yOw3vmquOwSEGUmgxLXofpj5phplQ9eHqNwozkOAUayVGO9nZ81rs27ar6kZSSxqAftrD20PmMO4U0h0Gh0O3LfzsOz+wHkzvCKc04LFJgRJ2CKfeZUzkANBoO/RdCkSDr1iUFki45Sa5ISklj6M9bWb7vHM4OdkzpX4/G5X2u3zHxCqz/HNZ9Cinx5rbqvaDNm/pPT8SWHVwKcwaZK2U7e0P3L6FKF2tXJTZEl5wkX3BysOOLPvfSurIviSlpDJi2mQ1HLly/o7MHtHrVHBFV81Fz267fYGJd+OtdSIzJ28JF5O6kppiL1/7ykBlmAmrB06EKM5Lr1EIjuSoxJZWnf9zKqgORuDraM/WJejQoe4uRTWe2wZL/wfG15mN3X2j9+tUp0DU/hYjVJV6BmHCIPmPeYs5AdPi/2y6fgLirl5nrD4L276nTv2SLRjllokBjfQnJqQz6cSurD0bi5mTPtAH1qVem2M1fYBjmiIhlb8DFo+Y232rQ4T3NVSGS21JTIGyVOcT6v0El+ox5PzH69sdw9oKun8I9PXO7WinAFGgyUaDJHxKSUxn4wxbWHDqPu5M9U56oT/2QW4QagJQk2PwdhH5oLqUAUKE9NH8JStZRi40UXHvmwKoP4d6+UP/pvJunJWIX/DEMwnfcej8nT/AKAM8A8Ar8989r930qgLNn3tQsBZYCTSYKNPlHfFIqT/2wmXWHL+DiaMfXfevSomKJ278w7iKEfgSbv4W0FHObazEo1wrKtzVbbbT2ixQUZ/eYS4WkJJiPA2rB/Z9BQM3ce8+UJFjzMawZZ/4bc/GG4CbXB5Vrf7ro/1LJfQo0mSjQ5C8JyakM+WkrKw9E4mhv4fPetel4T0DWXnz+MISOhYNLrm/29qsO5VtDuTZQuqGu2YttSrwC37SEC4fMAHPxmDlfk8UeGg4x1zpycs/Z9zy9Ff4YDuf2mo+rdIX7xoGnX86+j8gdUqDJRIEm/0lKSeO5GdtZsCscOwv834M1eaBOqawfIDUZTm2BI3/B4eVwZjvwn9PY0d2c66Z8G/NWrGxOfwSRnGcYMOdp2DkDPAPN9Y3SUmHxK7BntrmPd2noMh4qtLv790uOh5UfmHPEGGnmApGdx0G17nd/bJEcoECTiQJN/pSaZvDKrJ3M3HoKgHe7VaNvozLZO1jseTiy8mrA+Qtiz2V8vmiIeWmqfBso08wcKi6S32ydBn8+Y7bG9F8AwY3+fe7gEljwAkSdNB/f8wB0HAsevjc+1u0c32D2lbl4xHxcvZd5PK2tJvmIAk0mCjT5V1qawTvz9zJ1/TEAXulUmcEtyt3tQeHsbrPl5sgKOLER0pL/fd7BxZy0r+FQsFju7r1EckrEbviujdlvpu1oc9HGzBKvmIu8bvzSbFFx8TaHRNfum/VzOfEK/PUObPoGMMz+MF0+gUqdcvLTiOQIBZpMFGjyN8Mw+HjpAb5Yaf6mOLxVeV5oXxFLToWNxBgIW/Pv5alLx8zt1XrA/RPVWiPWlxhztd/MYSjfDh79DexuMefpmW0w7xmI2Gk+Dm4KXSeYI4tu5egqmDfCnCcGzCDU/j1wLXL3n0EkFyjQZKJAYxu+XHWYjxYfAKB/4zK82aUqdnY53IJiGOZvpkteM0dy+FSCh3+CEhVz9n1EssowYPZA2DXzar+ZtVm77JOaAn9/BSvfh+Q4sHeCZi9C05HXd4hPiIJlb8LWqeZj7yBzjpjybXL604jkKAWaTBRobMcPG47x5h97AOhVtxRjetbAPqdDDZiXoWb2NycJc/KAbl+oI6RYx9ap8OezN+43kxWXjpt9aw4vMx/7VDLDyrXjHFwK80dC9Gnzcb2nzEtamiNGbIACTSYKNLbl962nGPX7DtIM6FwjgE961cLJIReWHLtyDmY+8e8SC42GQ9u3824CM5GIXfBtG0hNvHm/mawwDHMU1KKXITbS3FanP6Qkwo5fzcdFQ6DbRCjTNCcqF8kTCjSZKNDYnoW7wnl2+jaSUw1aV/blyz734uKYC7MCp6bAX2/D+s/Mx8FN4cHJmn9Dct9/+81UaA+9Z9y630xWxF+CZW/BP9P+s9ECjYZBq9fBye3uji+SxxRoMlGgsU0rD5xj8I9bSUxJo1HZ4nzXry7uzrnUerL3D5g7DJJiwMMfek0zJ+cTyQ2GAbOegt2/g1dJeHpNzg6XPr4eFo4CC9D5Ewiql3PHFslDCjSZKNDYro1HL/Dk1M3EJqVSu3QRpvavj7ebY+682flDMOMxiNwPdg7m6I8GgzW0W3Lef/vNPLFQ4VnkJu7053cudE4QyRkNyxbn54EN8XZ1ZNuJyzzy7UbOX0nMnTfzqQBP/QXVepojoBa/ArOeNOftEMkpEbvM1hMw50NSmBHJMQo0kq/VCirCjKcb4uPhzL7waHp9vYHwqPjceTNnD7MPTcexZivN7lnwXVtzDSmRu5UYA7/1MzsBV2gPjZ+xdkUiBYoCjeR7lf29mDm4EYHeLhyNjOWBL9ez90z07V+YHRaLuQhgv/lmf5rIfWbnzb3zcuf9pHAwDPhzpLnUgFdJ6PH13XcCFpEM9C9KbEKIjzszhzSmbAl3zkQl8NBX61mx/2zuvWFwI3h6NQQ3MTsL/9bXnJwsNSX33lMKrq1TzU7AFnt4cAq4FbN2RSIFjjoFi02JiktmyM9bWX/kAnYWeL1zVQY0KZNzSyVklpoMy0ebKxIDFAkG36rmCt7FQq7eypqzr9rnUodlW5WabM6Au2cOlKgMTUYWzsUP/zvfTLt3oMmz1q5IxCZolFMmCjQFT3JqGm/M3c30zebKw30alGb0/dVwtM/FBsc9c+CP4ZB0k07CFnsoUvo/QaesOZlZsbJQtAw4uuRebflNUhz88wOs/xyiT/273cnDXBS08XBzYcXCICHavGR58QhU6AC9p+tSk0gWKdBkokBTMBmGwXdrwvhg0T4MA5pV8GHio/fi7ZqLrSRxFyF8O1w8ChfDrt6OwqUwc5Xkm7KAVyAULwflWkPV7mboKWjiL8Gm7+DvSRB3wdzm7gv3Pm5OzR++w9zmUsRspWjwNDi5W63cXGcY8PsAcxZfr1IweI0uNYncAQWaTBRoCraleyJ4dvp24pNTKe/rweR+9ShdPI9nRE1LgysR/wk6R/8NOhfDIPEGHZgDapnrRxWEcBMdDhu/gC1T/m3BKhJshpZafczWKcOAffNgxftw3lyEFHdfaPYC1H3i+gUV84PYC3BggTmM387BbIWzcwA7e7DY/Xs//Tn7jI+PrzNnorZzgCcWQVB9a38iEZuiQJOJAk3Bt/t0FE9N20JEdALF3J34pm8d6pbJJ78JG4bZWnExDCJ2mKOljq0BI+3ffQJqmsGmWnfzEpWtuHAE1n1qrheUmmRu87vHXJOoavcbr4uVlmr2q1k1Bi4dM7d5lYIWo6DWo/mnH1L0GZjS6d8a70a7d6GJhmiL3CkFmkwUaAqHiKgEnvphM7tPR+Nkb8dHD9age+2S1i7rxq5Ewv4/Yc/c68ONf41/W26Kl7NSgbcRvhPWfgJ75/5be1BDaPa8Ob9KVjpopybDth8h9P8g5oy5rVhZaPka3POAdfuZxJ43w8z5g+YQ68DaZitNWqr5p5Fqtsql37/2XGrGx0YqlG0FXSao34xINijQZKJAU3jEJaXw3IztLNljDud+pnV5nmtXMfdGQOWE2POw708zHIStMX8IXuNf/WrLTY+sh5uUJPOyT9IVSIo1b4kxkBxvXvpx8jQnEHT2NDvpOnual0luxzDMNYLWjofDy//dXqE9NH3eHOaeHcnxsGUyrBkPcefNbb5VzcUUK3fO+6Un4i/DtC7myCSvkualoqLBeVuDiAAKNNdRoClc0tIMPlpygK9CjwDQpUYAHz9UM3dW685psRf+bbkJW50x3PhVh1J1zBFESbHXh5akK+YyDWnJd/6+jm4ZA861W/pjDzixEU7+be5vsTOXiGg60gxdOSHxitmZeN3nkBhlbgusDa3/B+Xa5E2wSbwCP3aHU5vN/j1PLAKf8rn/viJyQwo0mSjQFE6/bT7Ja3N2kZJmUCuoCN8+XpcSnvmw4+nNxF6A/fPNlpujoRnDTVY4uJgjiJzczVYZRxdISTRba67d7jT82DuZnXybPJN7fX3iL5nDvTd+Bcmx5rbgptDt89ztX5QcDz8/ZF4CdCliLhrpVy333k9EbkuBJhMFmsJrw5ELDP5pK1HxyZQs4sr3/etS2d8Gz4HYC3BgIUSfvhpQPK7e3M3Wk8zbnNyz1rk2JdFslUiMvtrCE3OTxzHgWhTu7Que/rn/ecHsZ7R2PGz+3pyQztkLuk2Eqt1y/r1SksyV1g8tMcNfvz+gZJ2cfx8RuSMKNJko0BRuRyOv8OS0LYSdj8XD2YHPH61Nq0q+1i5LsuryCZj11L+Xu+o/De3fzblh3qkp5qrqe+eCgys8NgvKNMmZY4vIXbnTn9/qei8FWtkSHswZ2pgGIcW4kpjCk1M3892aoxTwHF9wFCkN/Rf8u1zApq/h+/bmMPi7lZYG80aYYcbOER75SWFGxIYp0EiBV8TNiR+fbECvuqVIM+C9Bft44bcdJCTfYb8UsQ57R3MNpEd/My99hW+Hr5vD3j+yf0zDgEWjYMcv5iR4D02B8m1zrGQRyXsKNFIoODnY8eEDNXizS1Xs7SzM3naaXl9v4MzleGuXJllVsQMMXgul6pv9fH57HBa9bPYFuhOGAcvfgs3fAhboPgmqdM2VkkUk7yjQSKFhsVgY0DSEHwfUp6ibIztPRXH/xLVsPnbR2qVJVnmXMkcgNb468+7fX8HkDnd2CWr1x+YMxwBdPoGaD+d8nSKS5xRopNBpXN6HecObUtnfk/NXknj02438/Pdxa5clWWXvaHYM7j3DvAR1Zht83cJcVuJ2NnwJK98z77d/31xHSkQKBAUaKZSCirkxe2hjOlcPIDnV4PU5u3ltzi6SUtJu/2LJHyp1hKfXXL0EFQW/9b31Jait02DJq+b9lq9B4+F5V6uI5DoFGim03JwcmPhobV7qUAmLBX75+wR9vttIZMwd9skQ6ykSdINLUB2vX1Ry1+/w59WRUo1HmIthikiBokAjhZrFYmFYq/J8368uns4ObD52ifsnrmXnqcvWLk2yKv0S1HRzlt8z/8BXzc01sgD2L4DZgwAD6g4wV7/Oz+t7iUi2aGI9kauORF5h0A9bOBIZi7ODHWMfqE6P2qWsXZbcicsn4fcnzPWYwFy5e9+fkJoENR4xRzRp5WsRm6CJ9USyqVwJD+YMa0Kbyr4kpqTx3IwdvDd/Lymp6ldjM4oEmYtKNh5hPt49ywwzVbpCty8UZkQKsGz96z558iSnTp1Kf7xp0yZGjhzJN998k2OFiViDl4sj3z5el+GtzFWWv1sbRv8pm7kUm2TlyiTL7B2h/XvmJSivklCtBzwwGewdrF2ZiOSibAWaRx99lJUrVwIQERFBu3bt2LRpE6+99hrvvPNOjhYoktfs7Cy82KESX/a5Fzcne9YePs/9X6xlf0S0tUuTO1GpEzy3Bx6aCg5O1q5GRHJZtgLN7t27qV+/PgC//fYb99xzD+vXr+eXX35h6tSpOVmfiNXcVz2A2UMbE1TMlZMX4+n55XoW7gq3dllyJ9T5V6TQyFagSU5OxtnZXO12+fLl3H///QBUrlyZ8HD9hy8FR2V/L+YNa0qT8sWJS0pl6M//8PqcXVoHSkQkn8lWoKlWrRpfffUVa9asYdmyZXTs2BGAM2fOULx48SwfZ8yYMdSrVw9PT098fX3p3r07Bw4cyLCPYRiMHj2awMBAXF1dadmyJXv27MlO2SLZUtTdiWlP1OfpFmUB+PnvE9w/UZegRETyk2wFmg8//JCvv/6ali1b0rt3b2rWrAnAvHnz0i9FZUVoaCjDhg1j48aNLFu2jJSUFNq3b09sbGz6Ph999BHjx49n4sSJbN68GX9/f9q1a0dMTEx2ShfJFgd7O17tVIUfn6xPCU9nDp69wv0T1/HDhmMU8JkPRERsQrbnoUlNTSU6OpqiRYumbzt27Bhubm74+vpmq5jIyEh8fX0JDQ2lefPmGIZBYGAgI0eO5OWXXwYgMTERPz8/PvzwQ55++unbHlPz0EhOO38lkZdm7mDlgUgA2lbx46MHa1DMXR1PRURySp7MQxMfH09iYmJ6mDl+/DgTJkzgwIED2Q4zAFFRUQAUK1YMgLCwMCIiImjfvn36Ps7OzrRo0YL169ff8BiJiYlER0dnuInkJB8PZyb3r8ebXariZG/H8n1n6fTpatYfPm/t0kRECq1sBZpu3brxww8/AHD58mUaNGjAuHHj6N69O5MmTcpWIYZh8Pzzz9O0aVPuuecewBwSDuDn55dhXz8/v/TnMhszZgze3t7pt6CgoGzVI3IrFouFAU1DmDOsMeVKuHM2OpE+3//Nh4v3k6yJ+ERE8ly2As0///xDs2bNAPj999/x8/Pj+PHj/PDDD3z22WfZKmT48OHs3LmTX3/99brnLJmGXhqGcd22a1599VWioqLSbydPnsxWPSJZUS3Qmz9HNKV3/SAMAyatOsKDX23g+IXY279YRERyTLYCTVxcHJ6engAsXbqUnj17YmdnR8OGDTl+/PgdH2/EiBHMmzePlStXUqrUv2vn+Pv7A1zXGnPu3LnrWm2ucXZ2xsvLK8NNJDe5OTkwpmcNvuxzL14uDuw4eZnOn61l7rbT1i5NRKTQyFagKV++PHPnzuXkyZMsWbIkvY/LuXPn7ihAGIbB8OHDmT17NitWrCAkJCTD8yEhIfj7+7Ns2bL0bUlJSYSGhtK4cePslC6Sa+6rHsCikc2pV6YoVxJTGDljO8/P2M6VxBRrlyYiUuBlK9C8+eabvPjii5QpU4b69evTqFEjwGytqV27dpaPM2zYMH766Sd++eUXPD09iYiIICIigvj4eMC81DRy5Eg++OAD5syZw+7du+nfvz9ubm48+uij2SldJFeVLOLKrwMbMrJtBewsMHvbaTp/toYdJy9buzQRkQIt28O2IyIiCA8Pp2bNmthdXcF206ZNeHl5Ubly5ay9+U36wUyZMoX+/fsDZivO22+/zddff82lS5do0KABX3zxRXrH4dvRsG2xls3HLjJy+nZOX47Hwc7CC+0r8XTzstjZaTp+EZHbudOf39kONNecOnUKi8VCyZIl7+YwuUaBRqwpKi6ZV+fsZOEusx9Y84olmPBwLc1ZIyJyG3kyD01aWhrvvPMO3t7eBAcHU7p0aYoUKcK7775LWpqGrIpc4+3myBeP3svYntVxdrBj9cFIuny2hm0nLlm7NBGRAiVbgeb1119n4sSJjB07lm3btvHPP//wwQcf8Pnnn/PGG2/kdI0iNs1isfBI/dLMHdaEMsXdOBOVQK+vNzB1XZiWTRARySHZuuQUGBjIV199lb7K9jV//PEHQ4cO5fTp/DNcVZecJD+JTkjm5d93smi3eQmqa81AxvSsjoezg5UrExHJX/LkktPFixdv2PG3cuXKXLx4MTuHFCkUvFwc+bLPvbzRpSoOdhb+3HGGbhPXcvCsFlsVEbkb2Qo0NWvWZOLEiddtnzhxIjVq1LjrokQKMovFwpNNQ5jxdEP8vVw4EhlLt4nrNBGfiMhdyNYlp9DQUDp37kzp0qVp1KgRFouF9evXc/LkSRYuXJi+LEJ+oEtOkp+dv5LIyOnbWXt1Ycs+DUrzRpequDjaW7kyERHrypNLTi1atODgwYP06NGDy5cvc/HiRXr27MmePXuYMmVKdg4pUij5eDgzbUB9nmlTAYsFfv77BA99tYGTF+OsXZqIiE2563lo/mvHjh3ce++9pKam5tQh75paaMRWrDpwjpEztnM5LhlvV0fG96pJmyo3XrNMRKSgy5MWGhHJeS0r+bLgmWbUDCpCVHwyT07bwkeL95OSqrmdRERuR4FGJB8pWcSVmU83on/jMgB8ueoIj33/N+diEqxbmIhIPqdAI5LPODnYMfr+anzeuzbuTvZsPHqRLp+t5e+jF6xdmohIvnVHs3n17Nnzls9fvnz5bmoRkf/oWjOQKgFeDP15KwfPXuGRbzfSv3EZXmxfCXdNxCciksEdtdB4e3vf8hYcHMzjjz+eW7WKFDrlfT2YO6wJD9UphWHAlHXHaP/JalbuP2ft0kRE8pUcHeWUH2mUkxQUqw9G8vrcXZy8GA/A/TUDebNrVXw8nK1cmYhIztMoJ5ECqnnFEiwZ2ZyBzUKws8C8HWdoOz6U37ee0iKXIlLoKdCI2BA3Jwde71yVP4Y1pWqAF5fjknlx5g76fr+J4xdirV2eiIjVKNCI2KDqpbz5Y3gTXulUGWcHO9YePk+HCav5KvSI5q0RkUJJgUbERjna2zG4RTmWPtecJuWLk5CcxthF++n2xTp2n46ydnkiInlKgUbExgUXd+enJxvwfw/WwNvVkT1norl/4lo+WLiP+KT8swyJiEhuUqARKQAsFgsP1Q3irxdacH/NQNIM+Gb1UdpPCGXNoUhrlycikusUaEQKEB8PZz7rXZsp/esR6O3CyYvx9P1+E8//tp1LsUnWLk9EJNco0IgUQK0q+7L0+Rb0b1wGiwVm/3Oadp+Esnh3hLVLExHJFQo0IgWUh7MDo++vxuwhjang68H5K0kM/mkrz/y6Ta01IlLgKNCIFHC1Sxdl/jNNGdqyXPqEfGqtEZGCRoFGpBBwdrBnVMfKzBnaRK01IlIgKdCIFCI1g4qotUZECiQFGpFCRq01IlIQKdCIFFJqrRGRgkSBRqQQU2uNiBQUCjQiotYaEbF5CjQiAqi1RkRsmwKNiGRQM6gIf45oypBMrTV/bD+NYRjWLk9E5IYUaETkOi6O9rycqbXm2enbeXzyJo5fiLV2eSIi11GgEZGbuta35oV2FXFysGPNofO0/2Q1X6w8TFJKmrXLExFJp0AjIrfk7GDPiDYVWDKyOU3L+5CYksb/LTlA58/WsCnsorXLExEBFGhEJItCfNz58cn6THi4FsXdnTh07gq9vt7AK7N2cjlOnYZFxLoUaEQkyywWC91rl+SvF1rQu34QANM3n6TNuFDmbDulTsMiYjUKNCJyx4q4OTGmZw1mDm5ERT8PLsQm8dyMHTz2/d8cjbxi7fJEpBBSoBGRbKtXphjzRzTjpQ6VcHawY93hC3T8dA2f/XWIxJRUa5cnIoWIAo2I3BUnBzuGtSrPsuda0LxiCZJS0hi/7CCdPl3DxqMXrF2eiBQSCjQikiNKF3dj2hP1+Kx3bXw8nDkaGcsj32zkxZk7uKiZhkUklynQiEiOsVgs3F8zkL9eaEGfBqWxWOD3radoM24VM7ecVKdhEck1CjQikuO8XR15v0d1Zg1pTGV/Ty7FJfPS7zt55JuNHD6nTsMikvMUaEQk19xbuih/jmjKq50q4+poz99hF+n06WrGLz1AQrI6DYtIzlGgEZFc5Whvx9MtyrH0uea0ruxLcqrBZysO0+nTNaw7fN7a5YlIAaFAIyJ5IqiYG9/3q8ukPvfi5+VM2PlY+nz3NyOnb+P8lURrlyciNk6BRkTyjMVioVP1AJY/34L+jctgscDc7Wdo/fEqft10grQ0dRoWkeyxGAV82EF0dDTe3t5ERUXh5eVl7XJE5D92nrrMa3N2sft0NAB1g4vyfo/qVPL3tHJlImJtd/rzWy00ImI1NUoVYe7QJrzRpSruTvZsOX6Jzp+t4cPF+4lPUqdhEck6BRoRsSoHezuebBrCsudb0L6qHylpBpNWHaH9hFBWHThn7fJExEYo0IhIvhBYxJVvHq/LN33rEOjtwsmL8fSfsplhv/zDuZgEa5cnIvmcAo2I5Cvtq/mz7PkWPNU0BDsLLNgZTptxoeo0LCK3pEAjIvmOu7MD/+tSlXnDm1KjlDcxCSm8OnvX1ZmGY6xdnojkQwo0IpJv3VPSmzlXOw27Odmz6dhF7vt0LROWHyQxRZ2GReRfCjQikq/Z21l4smlI+kzDSalpTFh+iPs+XcOmsIvWLk9E8gkFGhGxCaWKmjMNT3y0Nj4ezhyJjKXX1xt4dfYuouKTrV2eiFiZAo2I2AyLxUKXGoH89XwLetcPAuDXTSdoOz6UBTvDKeDzhIrILSjQiIjN8XZzZEzPGswY1JCyJdyJjElk2C//8NS0LZy+HG/t8kTEChRoRMRmNShbnEXPNuPZNhVwtLfw1/5ztBsfyuS1YaRqiLdIoaJAIyI2zdnBnufaVWTRs82oV6YocUmpvDN/Lz2+XMeeM1HWLk9E8ogCjYgUCOV9PZkxqBEf9KiOp4sDO09Fcf/EdYyet4dz0ZppWKSg02rbIlLgnItO4O0/97JgVzgAzg52PNqgNENalMPXy8XK1YlIVtzpz28FGhEpsNYeOs8nyw+y9fglQMFGxJYo0GSiQCNSuBmGwdrD55mw/JCCjYgNUaDJRIFGREDBRsTWKNBkokAjIv+lYCNiGxRoMlGgEZEbUbARyd8UaDJRoBGRW1GwEcmfFGgyUaARkay4WbAZ2bYiA5uF4GCvabtE8tKd/vy26r/Q1atX07VrVwIDA7FYLMydOzfD8/3798disWS4NWzY0DrFikiBZrFYaFahBL8PbsSPT9bn3tJFSExJ48PF+3lg0noOno2xdokicgtWDTSxsbHUrFmTiRMn3nSfjh07Eh4enn5buHBhHlYoIoXNtWAza0hjPnqwBp4uDuw4FUWXz9YyccUhklPTrF2iiNyAgzXfvFOnTnTq1OmW+zg7O+Pv759HFYmImCwWC73qBtG8Qglen7OLv/af4+OlB1m8J4L/e7AmVQJ0CVskP8n3F4VXrVqFr68vFStWZODAgZw7d+6W+ycmJhIdHZ3hJiKSXf7eLnzXry6fPFwTb1dHdp+Opuvna5mw/CBJKWqtEckv8nWg6dSpEz///DMrVqxg3LhxbN68mdatW5OYmHjT14wZMwZvb+/0W1BQUB5WLCIFkcVioUftUix7vjntq/qRkmYwYfkh7p+4lt2ntaK3SH6Qb0Y5WSwW5syZQ/fu3W+6T3h4OMHBwUyfPp2ePXvecJ/ExMQMgSc6OpqgoCCNchKRHGEYBn/uDOetP3ZzKS4ZezsLQ1qUY0Sb8jg72Fu7PJECw6ZGOd2pgIAAgoODOXTo0E33cXZ2xsvLK8NNRCSnWCwW7q8ZyLLnW9C5egCpaQYTVx6m6+dr2XHysrXLEym0bCrQXLhwgZMnTxIQEGDtUkSkkPPxcOaLPvcyqc+9+Hg4cfDsFXp8uY6xi/aTkJxq7fJECh2rBporV66wfft2tm/fDkBYWBjbt2/nxIkTXLlyhRdffJENGzZw7NgxVq1aRdeuXfHx8aFHjx7WLFtEJF2n6gEsfa4F3WoFkmbAV6FH6PzZmvTJ+UQkb1i1D82qVato1arVddv79evHpEmT6N69O9u2bePy5csEBATQqlUr3n333Tvq6KuZgkUkryzdE8Hrc3cTGZOIxQKPNwxmWOvy+Hpq+QSRO6WlDzJRoBGRvHQ5Lol35u9l9j+nAXP5hMcaBjO4RTlKeDpbuToR26FAk4kCjYhYw7rD5xm39AD/nLgMgIujHY83KsOg5mXx8VCwEbkdBZpMFGhExFoMwyD0YCSfLD+UPgLK1dGexxsH83TzchRzd7JugSL5mAJNJgo0ImJthmGw6kAknyw/yM5T5kR8bk729GtchkHNylJUwUbkOgo0mSjQiEh+YRgGK/af45PlB9l92lyWxd3Jnv5NyjCwWVmKuCnYiFyjQJOJAo2I5DeGYbBs71kmLD/E3nAz2Hg4O/BEkzI81bQs3m6OVq5QxPoUaDJRoBGR/MowDJbsOcuE5QfZHxEDgKezAwOahjCgaQjergo2Ungp0GSiQCMi+V1amsGSPRFMWH6IA2fNYOPl4sCQluV5okkZXBy1RpQUPgo0mSjQiIitSEszWLg7nE+XH+LQuSsAlCziyqiOlehaIxA7O4uVKxTJOwo0mSjQiIitSU0zmLvtNP+35AAR0QkA1Czlzeudq1I/pJiVqxPJGwo0mSjQiIitik9K5fu1R5m06gixSeaClx2q+fFyx8qULeFh5epEcpcCTSYKNCJi687FJDBh+SGmbzpBmgEOdhYeaxjMM20qaHI+KbAUaDJRoBGRguLg2RjGLNzHygORAHi6ODC8VXn6NVbHYSl4FGgyUaARkYJm7aHzvL9wH/uuzmFTqqgrozpWpmuNACwWdRyWgkGBJhMFGhEpiFLTDGb/c4qPlx7gbHQiADWDivC/zlWoV0Ydh8X2KdBkokAjIgVZfFIq3605yqTQI8Rd7TjcsZo/L3eqTIiPu5WrE8k+BZpMFGhEpDA4F5PAJ8sOMWOz2XHYzgKdawQyuEVZqgV6W7s8kTumQJOJAo2IFCYHz8bw4aL9/LX/XPq2FhVLMKRlORqEFFMfG7EZCjSZKNCISGG090w0X4UeYf7OM6Rd/V++dukiDGlRjrZV/DTrsOR7CjSZKNCISGF24kIc36w5wm9bTpGUkgZAeV8PBrcox/01A3FysLNyhSI3pkCTiQKNiAhExiQyZV0YP244TkxiCgCB3i482awsj9QLwt3ZwcoVimSkQJOJAo2IyL+iE5L55e8TfL82jMgYc7h3ETdH+jUqQ//GZSiqmYcln1CgyUSBRkTkegnJqcz+5zRfrz7C8QtxALg62vNI/SAGNitLYBFXK1cohZ0CTSYKNCIiN5eaZrBodziTVh1hzxlz5mEHOwt9GpTmuXYVKeKmFhuxDgWaTBRoRERuzzAM1hw6z6RVR9hw9AJgXop6vl1FHq1fGgd7dR6WvKVAk4kCjYjInVl3+Dzv/LmXA2djAKjo58GbXarRtIKPlSuTwkSBJhMFGhGRO5eSmsavm04wbtlBLsclA9C2ih//61yFMlpSQfKAAk0mCjQiItl3OS6JCcsP8ePG46SmGTjaWxjQNIThrcrj6eJo7fKkAFOgyUSBRkTk7h06G8M78/ey5tB5AHw8nBnVoRIP1imlWYclVyjQZKJAIyKSMwzDYMX+c7y3YB9h52MBuKekF291rUa9MsWsXJ0UNAo0mSjQiIjkrKSUNH7YcIxPlx9Kn3W4S40AXr2vCiU1f43kEAWaTBRoRERyx/kriYxbeoDpm09iGODsYMfTLcoxuEVZ3Jy0lILcHQWaTBRoRERy1+7TUbwzfy+bwi4CZv+aR+oF8XC9IIKKuVm5OrFVCjSZKNCIiOQ+wzBYtDuC9xfs4/TleAAsFmheoQS965emTRVfHDU5n9wBBZpMFGhERPJOUkoay/ae5ZdNx1l3+EL6dl9PZx6+2mpTqqhabeT2FGgyUaAREbGOY+dj+XXzCX7fcooLsUmA2WrTouLVVpvKvlpSQW5KgSYTBRoREetKSklj6d4Ift10IkOrjZ+XMw/XDaKXWm3kBhRoMlGgERHJP8LOxzL9Bq02La+22rRWq41cpUCTiQKNiEj+k5iSava1+fsE64/822rj7+VC30bB9G0UjJeWVijUFGgyUaAREcnfws7HMn3TCWZuPcXFq602ns4O9G0UzICmIfh4OFu5QrEGBZpMFGhERGxDYkoqC3aG81XoEQ6evQKYk/U9Ui+Igc3Lqp9NIaNAk4kCjYiIbUlLM1i+7yxfrDrCjpOXAXCws3B/rUCGtixHeV9P6xYoeUKBJhMFGhER22QYBhuOXODLVUdYe9hc5dtigfZV/Rjasjw1g4pYt0DJVQo0mSjQiIjYvh0nL/PlqsMs2XM2fVvT8j4MbVWORmWLY7FYrFid5AYFmkwUaERECo5DZ2OYFHqEP7afITXN/PFVK6gIQ1uWo20VP+zsFGwKCgWaTBRoREQKnpMX4/h2zVFmbD5JYkoaABX9PBjasjxdawZir2Bj8xRoMlGgEREpuCJjEpm8LoyfNhwnJjEFgLI+7jzTpoKCjY1ToMlEgUZEpOCLik/mp43H+XbNUS7HJQNQroQ7z7atSOfqAQo2NkiBJhMFGhGRwuNKYgrT1h/jm9VHiYo3g00FXw+ebVuB++4JUB8bG6JAk0lWv5DU1FSSk5PzsDIpDJycnLCz07o0InktJiGZqeuO8e2ao0QnmJeiKvl58mzbCnSs5q9gYwMUaDK53RdiGAYRERFcvnw574uTAs/Ozo6QkBCcnJysXYpIoRSdkMzktWF8vzaMmKvBprK/JyPbVqB9VQWb/EyBJpPbfSHh4eFcvnwZX19f3NzcNJeB5Ji0tDTOnDmDo6MjpUuX1rklYkVR8cl8vzaMKWvD0jsPVw3wYmTbCrSr6qd/n/mQAk0mt/pCUlNTOXjwIL6+vhQvXtxKFUpBFhUVxZkzZyhfvjyOjlo5WMTaLsclmcFm3TGuXA0295T0YmSbirSp4qtgk4/caaAp1Bf3r/WZcXPTgmeSO65dakpNTbVyJSICUMTNiRfaV2LNqFYMbVkOdyd7dp+O5qkfttDti3Us3BVO0tV5bcS2FOpAc40SueQWnVsi+VNRdydGdazMmpdbM7hFOdyc7Nl5KoqhP/9D47F/MWbRPsLOx1q7TLkDCjQCQMuWLRk5cmSW9z927BgWi4Xt27fnWk0iIrmtmLsTr3SqzJpRrRjeqjy+ns6cv5LE16FHafXxKh75ZgN/bD9NQrJaWfO7Qt2HJiEhgbCwMEJCQnBxcbFShXfmdr/x9+vXj6lTp97xcS9evIijoyOenp5Z2j81NZXIyEh8fHxwcHC44/fLqmPHjhESEsK2bduoVatWrr1PbrHFc0ykMEtJTWPF/nP8uukEoQcjubpcFEXcHOlZuxS96wdRwS9r/0/K3bnTPjS595NIckV4eHj6/RkzZvDmm29y4MCB9G2urq4Z9k9OTs5SZ9RixYrdUR329vb4+/vf0WtERPI7B3s72lfzp301f85cjue3LSeZsfkk4VEJTF4XxuR1YdQNLsoj9UvTuXoArk721i5ZrtIlJxvj7++ffvP29sZisaQ/TkhIoEiRIvz222+0bNkSFxcXfvrpJy5cuEDv3r0pVaoUbm5uVK9enV9//TXDcTNfcipTpgwffPABAwYMwNPTk9KlS/PNN9+kP5/5ktOqVauwWCz89ddf1K1bFzc3Nxo3bpwhbAG89957+Pr64unpyVNPPcUrr7xyVy0viYmJPPPMM/j6+uLi4kLTpk3ZvHlz+vOXLl2iT58+lChRAldXVypUqMCUKVMASEpKYvjw4QQEBODi4kKZMmUYM2ZMtmsRkYIlsIgrI9tWZO3LrZnSvx7tqvphb2dhy/FLvDhzB/U/WM6bf+xm75loa5cqKNBcxzAM4pJS8vyWk1f+Xn75ZZ555hn27dtHhw4dSEhIoE6dOsyfP5/du3czaNAg+vbty99//33L44wbN466deuybds2hg4dypAhQ9i/f/8tX/P6668zbtw4tmzZgoODAwMGDEh/7ueff+b999/nww8/ZOvWrZQuXZpJkybd1WcdNWoUs2bNYtq0afzzzz+UL1+eDh06cPHiRQDeeOMN9u7dy6JFi9i3bx+TJk3Cx8cHgM8++4x58+bx22+/ceDAAX766SfKlClzV/WISMFjb2ehVWVfvn28Lutfac1LHSoRVMyVmIQUfthwnPs+W0O3iWuZsfmERkhZkS45ZRKfnErVN5fk+fvufacDbk4589cxcuRIevbsmWHbiy++mH5/xIgRLF68mJkzZ9KgQYObHue+++5j6NChgBmSPvnkE1atWkXlypVv+pr333+fFi1aAPDKK6/QuXNnEhIScHFx4fPPP+fJJ5/kiSeeAODNN99k6dKlXLlyJVufMzY2lkmTJjF16lQ6deoEwLfffsuyZcv4/vvveemllzhx4gS1a9embt26ABkCy4kTJ6hQoQJNmzbFYrEQHBycrTpEpPDw83JhWKvyDGlRjnVHzjN900mW7o1gx6kodpzaxRcrj/Bih0p0qa51o/KaWmgKoGs/vK9JTU3l/fffp0aNGhQvXhwPDw+WLl3KiRMnbnmcGjVqpN+/dmnr3LlzWX5NQEAAQPprDhw4QP369TPsn/nxnThy5AjJyck0adIkfZujoyP169dn3759AAwZMoTp06dTq1YtRo0axfr169P37d+/P9u3b6dSpUo888wzLF26NNu1iEjhYmdnoVmFEnzR5142vNqGVzpVxsfDmRMX43jm1210+2Id6w6ft3aZhYpaaDJxdbRn7zsdrPK+OcXd3T3D43HjxvHJJ58wYcIEqlevjru7OyNHjiQpKemWx8ncmdhisZCWduvm1P++5tqIrP++JvMorbu51HbttTc65rVtnTp14vjx4yxYsIDly5fTpk0bhg0bxscff8y9995LWFgYixYtYvny5fTq1Yu2bdvy+++/Z7smESl8fDycGdyiHH0bBvP92jC+Dj3CrtNR9Pnub5pV8OGVTpWpFuht7TILPLXQZGKxWHBzcsjzW25OwLZmzRq6devGY489Rs2aNSlbtiyHDh3Ktfe7mUqVKrFp06YM27Zs2ZLt45UvXx4nJyfWrl2bvi05OZktW7ZQpUqV9G0lSpSgf//+/PTTT0yYMCFD52YvLy8efvhhvv32W2bMmMGsWbPS+9+IiNwJd2cHnmlTgdBRrejfuAyO9hbWHDpP58/WMnL6Nk5ejLN2iQWaWmgKgfLlyzNr1izWr19P0aJFGT9+PBERERl+6OeFESNGMHDgQOrWrUvjxo2ZMWMGO3fupGzZsrd9bebRUgBVq1ZlyJAhvPTSSxQrVozSpUvz0UcfERcXx5NPPgmY/XTq1KlDtWrVSExMZP78+emf+5NPPiEgIIBatWphZ2fHzJkz8ff3p0iRIjn6uUWkcPHxcGb0/dV4okkZPl56kD93nGHu9jMs3BXBYw2DGd66PMXcnaxdZoGjQFMIvPHGG4SFhdGhQwfc3NwYNGgQ3bt3JyoqKk/r6NOnD0ePHuXFF18kISGBXr160b9//+tabW7kkUceuW5bWFgYY8eOJS0tjb59+xITE0PdunVZsmQJRYsWBcy1lF599VWOHTuGq6srzZo1Y/r06QB4eHjw4YcfcujQIezt7alXrx4LFy7Ezk4NlyJy94KLu/N579oMalaWsYv3se7wBSavC2PmlpMMblmOAU1CNI9NDtJMwZrF1aratWuHv78/P/74o7VLyRU6x0QEzL59aw6dZ+yi/ewNN+et8fV05rl2FXmoTikc7PWLVGaaKVjyrbi4OL766is6dOiAvb09v/76K8uXL2fZsmXWLk1EJFdZLBaaVyxB0/I+zNtxho+XHuDUpXhenb2L79YcZVTHyrSv6qcFbe+CAo3kGYvFwsKFC3nvvfdITEykUqVKzJo1i7Zt21q7NBGRPGFnZ6F77ZJ0qu7PTxtPMHHFIY5ExvL0j1up5OdJ15oBdKkRSBkf99sfTDLQJSddDpBcpHNMRG4lOiGZr0OP8P3aMBKS/53i4p6SXnStEUjnGgGUKupmxQqt504vOVn1ot3q1avp2rUrgYGBWCwW5s6dm+F5wzAYPXo0gYGBuLq60rJlS/bs2WOdYkVERHKYl4sjL3WozN+vtuWjB2rQrIIP9nYWdp+OZsyi/TT9cCU9vlzH92vDiIhKsHa5+ZpVA01sbCw1a9Zk4sSJN3z+o48+Yvz48UycOJHNmzfj7+9Pu3btiImJyeNKRUREco+3myO96gXx45MN2PRaG97rfg8NyxbDYoFtJy7z7vy9NBr7F72+3sCPG45x/kqitUvOd/LNJSeLxcKcOXPo3r07YLbOBAYGMnLkSF5++WXAXFnZz8+PDz/8kKeffjpLx9UlJ7EmnWMicjfORiewcFc483eGs/X4pfTtdhZoVK44XWoE0rGaP0UL4Lw2NnXJ6VbCwsKIiIigffv26ducnZ1p0aJFhvV4RERECio/LxeeaBLCrCGNWfdKa16/rwo1S3mTZsC6wxd4dfYu6r2/nCembGLlgXN3tZyMrcu3o5wiIiIA8PPzy7Ddz8+P48eP3/R1iYmJJCb+2xQXHR2dOwWKiIjkoZJFXBnYvCwDm5fl+IVY5u80W272hUez8kAkKw9EUsnPk4HNy3J/zUCcHPJtm0WuyPef9lYLD97ImDFj8Pb2Tr8FBQXldokiIiJ5Kri4O8NalWfRs81Y/nwLnmoagruTPQfOxvDizB00+2gFX4UeIToh2dql5pl8G2j8/f2Bf1tqrjl37tx1rTb/9eqrrxIVFZV+O3nyZK7WaatatmzJyJEj0x+XKVOGCRMm3PI1NxqJlh05dRwREYHyvh78r0tV1r/ahpc7VsbX05mz0YmMXbSfxmNW8P6CvZy5HG/tMnNdvg00ISEh+Pv7Z5hFNikpidDQUBo3bnzT1zk7O+Pl5ZXhVpB07dr1phPRbdiwAYvFwj///HPHx928eTODBg262/IyGD16NLVq1bpue3h4OJ06dcrR98ps6tSpWmRSRAoVb1dHhrQsx5qXW/HRgzWo4OvBlcQUvl0TRvOPVvL8jO3sCy+43TCs2ofmypUrHD58OP1xWFgY27dvT185eeTIkXzwwQdUqFCBChUq8MEHH+Dm5sajjz5qxaqt68knn6Rnz54cP36c4ODgDM9NnjyZWrVqce+9997xcUuUKJFTJd7WtdY3ERHJec4O9vSqG8SD95Yi9GAkX68+wsajF5m97TSzt52mWQUfnm5ejiblixeopRas2kKzZcsWateuTe3atQF4/vnnqV27Nm+++SYAo0aNYuTIkQwdOpS6dety+vRpli5diqenpzXLtqouXbrg6+vL1KlTM2yPi4tjxowZPPnkk1y4cIHevXtTqlQp3NzcqF69Or/++ustj5v5ktOhQ4do3rw5Li4uVK1a9YbrLb388stUrFgRNzc3ypYtyxtvvEFysnm9durUqbz99tvs2LEDi8WCxWJJrznzJaddu3bRunVrXF1dKV68OIMGDeLKlSvpz/fv35/u3bvz8ccfExAQQPHixRk2bFj6e2XHiRMn6NatGx4eHnh5edGrVy/Onj2b/vyOHTto1aoVnp6eeHl5UadOHbZs2QLA8ePH6dq1K0WLFsXd3Z1q1aqxcOHCbNciIpIb7OwstKrsy/RBjZg3vAldagRgZ4E1h87z2Pd/0/mztfyx/TTJqWm3P5gNsGoLTcuWLW85xMxisTB69GhGjx6dd0UZBiTH5d37XePoBllIyg4ODjz++ONMnTqVN998Mz1dz5w5k6SkJPr06UNcXBx16tTh5ZdfxsvLiwULFtC3b1/Kli1LgwYNbvseaWlp9OzZEx8fHzZu3Eh0dHSG/jbXeHp6MnXqVAIDA9m1axcDBw7E09OTUaNG8fDDD7N7924WL17M8uXLAfD29r7uGHFxcXTs2JGGDRuyefNmzp07x1NPPcXw4cMzhLaVK1cSEBDAypUrOXz4MA8//DC1atVi4MCBt/08mRmGQffu3XF3dyc0NJSUlBSGDh3Kww8/zKpVqwDo06cPtWvXZtKkSdjb27N9+3YcHR0BGDZsGElJSaxevRp3d3f27t2Lh4fHHdchIpJXapQqwsRH7+XkxTi+XxvGjM0n2RsezbPTt/PR4gM8Ui+I1lV8qRrgZbOtNvl22LbVJMfBB4F5/76vnQGnrC1GNmDAAP7v//6PVatW0apVK8C83NSzZ0+KFi1K0aJFefHFF9P3HzFiBIsXL2bmzJlZCjTLly9n3759HDt2jFKlSgHwwQcfXNfv5X//+1/6/TJlyvDCCy8wY8YMRo0ahaurKx4eHjg4ONzyEtPPP/9MfHw8P/zwA+7u5uefOHEiXbt25cMPP0zvAF60aFEmTpyIvb09lStXpnPnzvz111/ZCjTLly9n586dhIWFpY+C+/HHH6lWrRqbN2+mXr16nDhxgpdeeonKlSsDUKFChfTXnzhxggceeIDq1asDULZs2TuuQUTEGoKKuTH6/mo826YCP208zrQNxzh9OZ5xyw4ybtlB/LycaVnRl5aVStCkgg9eLo7WLjnLFGhsUOXKlWncuDGTJ0+mVatWHDlyhDVr1rB06VIAUlNTGTt2LDNmzOD06dPpc/NcCwy3s2/fPkqXLp0eZgAaNWp03X6///47EyZM4PDhw1y5coWUlJQ77oS9b98+atasmaG2Jk2akJaWxoEDB9IDTbVq1bC3t0/fJyAggF27dt3Re/33PYOCgjIM6a9atSpFihRh37591KtXj+eff56nnnqKH3/8kbZt2/LQQw9Rrlw5AJ555hmGDBnC0qVLadu2LQ888AA1atTIVi0iItZQ1N2JEW0qMLB5WebtOMPSPRGsO3yBs9GJzNhykhlbTuJgZ6FumaK0rORLq0q+VPTzyNetNwo0mTm6ma0l1njfO/Dkk08yfPhwvvjiC6ZMmUJwcDBt2rQBYNy4cXzyySdMmDCB6tWr4+7uzsiRI0lKSsrSsW90GTDzSbxx40YeeeQR3n77bTp06IC3tzfTp09n3Lhxd/Q5bjWv0H+3X7vc89/n0tKyd933Zu/53+2jR4/m0UcfZcGCBSxatIi33nqL6dOn06NHD5566ik6dOjAggULWLp0KWPGjGHcuHGMGDEiW/WIiFiLi6PZgbhX3SASklPZfOwiK/dHsurgOY5GxrLx6EU2Hr3I2EX7CfR2oUUlX1pVKkGT8j64O+evCJG/qskPLJYsX/qxpl69evHss8/yyy+/MG3aNAYOHJj+w3jNmjV069aNxx57DDD7xBw6dIgqVapk6dhVq1blxIkTnDlzhsBA8/Lbhg0bMuyzbt06goODef3119O3ZZ7B2cnJidTU1Nu+17Rp04iNjU1vpVm3bh12dnZUrFgxS/XeqWuf7+TJk+mtNHv37iUqKirDd1SxYkUqVqzIc889R+/evZkyZQo9evQAICgoiMGDBzN48GBeffVVvv32WwUaEbFpLo72NKtQgmYVSvAmVTl+IZZVByJZdeAc649c4ExUAr9uOsGvm07gZG9HvZCitKrkS8tKvpQr4W711hsFGhvl4eHBww8/zGuvvUZUVBT9+/dPf658+fLMmjWL9evXU7RoUcaPH09ERESWA03btm2pVKkSjz/+OOPGjSM6OjpDcLn2HidOnGD69OnUq1ePBQsWMGfOnAz7lClTJn0ofqlSpfD09MTZ2TnDPn369OGtt96iX79+jB49msjISEaMGEHfvn1vOYFiVqSmprJ9+/YM25ycnGjbti01atSgT58+TJgwIb1TcIsWLahbty7x8fG89NJLPPjgg4SEhHDq1Ck2b97MAw88AMDIkSPp1KkTFStW5NKlS6xYsSLL362IiK0ILu5Ov8bu9GtchoTkVDYcvUDogUhW7D/HiYtxrDt8gXWHL/Degn08Ui+IsQ9Y99J7vp1YT27vySef5NKlS7Rt25bSpUunb3/jjTe499576dChAy1btsTf3z99FfOssLOzY86cOSQmJlK/fn2eeuop3n///Qz7dOvWjeeee47hw4dTq1Yt1q9fzxtvvJFhnwceeICOHTvSqlUrSpQoccOh425ubixZsoSLFy9Sr149HnzwQdq0acPEiRPv7Mu4gStXrqRPC3Dtdt9996UPGy9atCjNmzenbdu2lC1blhkzZgBgb2/PhQsXePzxx6lYsSK9evWiU6dOvP3224AZlIYNG0aVKlXo2LEjlSpV4ssvv7zrekVE8isXR3taVfJl9P3VCH2pJSteaMGbXarSrIIPTvZ21ChVxNolYjEK+NKct1p+PCEhgbCwMEJCQnBxcbFShVKQ6RwTkYIuLikFADennL3oc6uf3zeiS04iIiKSbTkdZLJLl5xERETE5inQiIiIiM1ToBERERGbp0AjIiIiNk+BhhvPjCuSE3RuiYjkjUIdaK5Npx8XZ4XVtaVQuLbcxH/XoRIRkZyXP8ZaWYm9vT1FihTh3LlzgDnJm7WnbpaCIy0tjcjISNzc3HBwKNT/1EREcl2h/1/W398fID3UiOQkOzs7SpcuraAsIpLLCn2gsVgsBAQE4OvrS3JysrXLkQLGyckJO7tCfWVXRCRPFPpAc429vb36OYiIiNgo/eooIiIiNk+BRkRERGyeAo2IiIjYvALfh+baxGbR0dFWrkRERESy6trP7axOUFrgA01MTAwAQUFBVq5ERERE7lRMTAze3t633c9iFPC52dPS0jhz5gyenp45PhdIdHQ0QUFBnDx5Ei8vrxw9dkGl7yx79L1lj7637NH3duf0nWXPrb43wzCIiYkhMDAwS9NfFPgWGjs7O0qVKpWr7+Hl5aUT+A7pO8sefW/Zo+8te/S93Tl9Z9lzs+8tKy0z16hTsIiIiNg8BRoRERGxeQo0d8HZ2Zm33noLZ2dna5diM/SdZY++t+zR95Y9+t7unL6z7MnJ763AdwoWERGRgk8tNCIiImLzFGhERETE5inQiIiIiM1ToBERERGbp0CTTV9++SUhISG4uLhQp04d1qxZY+2S8rXRo0djsVgy3Pz9/a1dVr6zevVqunbtSmBgIBaLhblz52Z43jAMRo8eTWBgIK6urrRs2ZI9e/ZYp9h84nbfWf/+/a879xo2bGidYvORMWPGUK9ePTw9PfH19aV79+4cOHAgwz463zLKynem8+16kyZNokaNGumT5zVq1IhFixalP59T55kCTTbMmDGDkSNH8vrrr7Nt2zaaNWtGp06dOHHihLVLy9eqVatGeHh4+m3Xrl3WLinfiY2NpWbNmkycOPGGz3/00UeMHz+eiRMnsnnzZvz9/WnXrl36mmWF0e2+M4COHTtmOPcWLlyYhxXmT6GhoQwbNoyNGzeybNkyUlJSaN++PbGxsen76HzLKCvfGeh8y6xUqVKMHTuWLVu2sGXLFlq3bk23bt3SQ0uOnWeG3LH69esbgwcPzrCtcuXKxiuvvGKlivK/t956y6hZs6a1y7ApgDFnzpz0x2lpaYa/v78xduzY9G0JCQmGt7e38dVXX1mhwvwn83dmGIbRr18/o1u3blapx5acO3fOAIzQ0FDDMHS+ZUXm78wwdL5lVdGiRY3vvvsuR88ztdDcoaSkJLZu3Ur79u0zbG/fvj3r16+3UlW24dChQwQGBhISEsIjjzzC0aNHrV2STQkLCyMiIiLDuefs7EyLFi107t3GqlWr8PX1pWLFigwcOJBz585Zu6R8JyoqCoBixYoBOt+yIvN3do3Ot5tLTU1l+vTpxMbG0qhRoxw9zxRo7tD58+dJTU3Fz88vw3Y/Pz8iIiKsVFX+16BBA3744QeWLFnCt99+S0REBI0bN+bChQvWLs1mXDu/dO7dmU6dOvHzzz+zYsUKxo0bx+bNm2ndujWJiYnWLi3fMAyD559/nqZNm3LPPfcAOt9u50bfGeh8u5ldu3bh4eGBs7MzgwcPZs6cOVStWjVHz7MCv9p2brFYLBkeG4Zx3Tb5V6dOndLvV69enUaNGlGuXDmmTZvG888/b8XKbI/OvTvz8MMPp9+/5557qFu3LsHBwSxYsICePXtasbL8Y/jw4ezcuZO1a9de95zOtxu72Xem8+3GKlWqxPbt27l8+TKzZs2iX79+hIaGpj+fE+eZWmjukI+PD/b29tclx3Pnzl2XMOXm3N3dqV69OocOHbJ2KTbj2qgwnXt3JyAggODgYJ17V40YMYJ58+axcuVKSpUqlb5d59vN3ew7uxGdbyYnJyfKly9P3bp1GTNmDDVr1uTTTz/N0fNMgeYOOTk5UadOHZYtW5Zh+7Jly2jcuLGVqrI9iYmJ7Nu3j4CAAGuXYjNCQkLw9/fPcO4lJSURGhqqc+8OXLhwgZMnTxb6c88wDIYPH87s2bNZsWIFISEhGZ7X+Xa9231nN6Lz7cYMwyAxMTFnz7Mc6rBcqEyfPt1wdHQ0vv/+e2Pv3r3GyJEjDXd3d+PYsWPWLi3feuGFF4xVq1YZR48eNTZu3Gh06dLF8PT01HeWSUxMjLFt2zZj27ZtBmCMHz/e2LZtm3H8+HHDMAxj7Nixhre3tzF79mxj165dRu/evY2AgAAjOjraypVbz62+s5iYGOOFF14w1q9fb4SFhRkrV640GjVqZJQsWbJQf2eGYRhDhgwxvL29jVWrVhnh4eHpt7i4uPR9dL5ldLvvTOfbjb366qvG6tWrjbCwMGPnzp3Ga6+9ZtjZ2RlLly41DCPnzjMFmmz64osvjODgYMPJycm49957Mwzbk+s9/PDDRkBAgOHo6GgEBgYaPXv2NPbs2WPtsvKdlStXGsB1t379+hmGYQ6lfeuttwx/f3/D2dnZaN68ubFr1y7rFm1lt/rO4uLijPbt2xslSpQwHB0djdKlSxv9+vUzTpw4Ye2yre5G3xlgTJkyJX0fnW8Z3e470/l2YwMGDEj/eVmiRAmjTZs26WHGMHLuPLMYhmFks8VIREREJF9QHxoRERGxeQo0IiIiYvMUaERERMTmKdCIiIiIzVOgEREREZunQCMiIiI2T4FGREREbJ4CjYgUOhaLhblz51q7DBHJQQo0IpKn+vfvj8Viue7WsWNHa5cmIjbMwdoFiEjh07FjR6ZMmZJhm7Ozs5WqEZGCQC00IpLnnJ2d8ff3z3ArWrQoYF4OmjRpEp06dcLV1ZWQkBBmzpyZ4fW7du2idevWuLq6Urx4cQYNGsSVK1cy7DN58mSqVauGs7MzAQEBDB8+PMPz58+fp0ePHri5uVGhQgXmzZuXux9aRHKVAo2I5DtvvPEGDzzwADt27OCxxx6jd+/e7Nu3D4C4uDg6duxI0aJF2bx5MzNnzmT58uUZAsukSZMYNmwYgwYNYteuXcybN4/y5ctneI+3336bXr16sXPnTu677z769OnDxYsX8/RzikgOyrn1NEVEbq9fv36Gvb294e7unuH2zjvvGIZhrmg8ePDgDK9p0KCBMWTIEMMwDOObb74xihYtaly5ciX9+QULFhh2dnZGRESEYRiGERgYaLz++us3rQEw/ve//6U/vnLlimGxWIxFixbl2OcUkbylPjQikudatWrFpEmTMmwrVqxY+v1GjRpleK5Ro0Zs374dgH379lGzZk3c3d3Tn2/SpAlpaWkcOHAAi8XCmTNnaNOmzS1rqFGjRvp9d3d3PD09OXfuXHY/kohYmQKNiOQ5d3f36y4B3Y7FYgHAMIz0+zfax9XVNUvHc3R0vO61aWlpd1STiOQf6kMjIvnOxo0br3tcuXJlAKpWrcr27duJjY1Nf37dunXY2dlRsWJFPD09KVOmDH/99Vee1iwi1qUWGhHJc4mJiURERGTY5uDggI+PDwAzZ86kbt26NG3alJ9//plNmzbx/fffA9CnTx/eeust+vXrx+jRo4mMjGTEiBH07dsXPz8/AEaPHs3gwYPx9fWlU6dOxMTEsG7dOkaMGJG3H1RE8owCjYjkucWLFxMQEJBhW6VKldi/fz9gjkCaPn06Q4cOxd/fn59//pmqVasC4ObmxpIlS3j22WepV68ebm5uPPDAA4wfPz79WP369SMhIYFPPvmEF198ER8fHx588MG8+4AikucshmEY1i5CROQai8XCnDlz6N69u7VLEREboj40IiIiYvMUaERERMTmqQ+NiOQrugouItmhFhoRERGxeQo0IiIiYvMUaERERMTmKdCIiIiIzVOgEREREZunQCMiIiI2T4FGREREbJ4CjYiIiNg8BRoRERGxef8P08D7ff4aRGQAAAAASUVORK5CYII=",
+      "text/plain": [
+       "<Figure size 640x480 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
    "source": [
     "import matplotlib.pyplot as plt\n",
     "\n",
-    "plt.plot(range(n_epochs), train_loss_list)\n",
+    "#On peut détecter un overfitting en surveillant les performances du modèle sur les données\n",
+    "# d'entraînement et de test au fil du temps. Si les performances du modèle sur les données \n",
+    "# d'entraînement continuent de s'améliorer tandis que celles sur les données de test diminuent, \n",
+    "# cela indique un surapprentissage\n",
+    "plt.plot(range(n_epochs), train_loss_list, label='Training Loss')\n",
+    "plt.plot(range(n_epochs), Valid_loss_list, label='Validation Loss')\n",
     "plt.xlabel(\"Epoch\")\n",
     "plt.ylabel(\"Loss\")\n",
     "plt.title(\"Performance of Model 1\")\n",
-    "plt.show()"
+    "plt.legend()\n",
+    "plt.show()    "
    ]
   },
   {
@@ -434,6 +636,43 @@
     "Compare the results obtained with this new network to those obtained previously."
    ]
   },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "\n",
+    "class Net2(nn.Module):\n",
+    "    def __init__(self, dropout_rate=0.5):\n",
+    "        super(Net2, self).__init__()\n",
+    "\n",
+    "        # Convolutional layers\n",
+    "        self.conv1 = nn.Conv2d(3, 16,3,1)\n",
+    "        self.conv2 = nn.Conv2d(16, 32, 3, 1)\n",
+    "        self.conv3 = nn.Conv2d(32, 64, 3, 1)\n",
+    "        self.fc1 = nn.Linear(64 * 4 * 4, 512)\n",
+    "        self.fc2 = nn.Linear(512, 64)\n",
+    "        self.fc3 = nn.Linear(64, 10)\n",
+    "        self.relu = nn.ReLU()\n",
+    "        self.pool = nn.MaxPool2d(2, 2)\n",
+    "        self.dropout = nn.Dropout(dropout_rate)\n",
+    "\n",
+    "    def forward(self, x):\n",
+    "        x = self.pool(self.relu(self.conv1(x)))\n",
+    "        x = self.pool(self.relu(self.conv2(x)))\n",
+    "        x = self.pool(self.relu(self.conv3(x)))\n",
+    "        x = x.view(-1, 64 * 4 * 4)\n",
+    "        x = self.dropout(self.relu(self.fc1(x)))\n",
+    "        x = self.dropout(self.relu(self.fc2(x)))\n",
+    "\n",
+    "        x = self.fc3(x)\n",
+    "        return x\n",
+    "\n",
+    "model = Net2()\n",
+    "print(model)"
+   ]
+  },
   {
    "cell_type": "markdown",
    "id": "bc381cf4",
@@ -940,7 +1179,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.8.5"
+   "version": "3.10.9"
   },
   "vscode": {
    "interpreter": {