ml/ML/cnn/lab1/lab1_mnist.ipynb

392 lines
66 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"id": "_epZXfryWUPb"
},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd \n",
"from keras.preprocessing.image import ImageDataGenerator, load_img\n",
"from keras.datasets.mnist import load_data\n",
"from tensorflow.keras.utils import to_categorical\n",
"\n",
"import os\n",
"import random\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# initialize parameters\n",
"EPOCHS = 20\n",
"IMAGE_SIZE = (28, 28)\n",
"CHANNELS = 1\n",
"CLASSES = 10\n",
"TRAIN = 'mnist_train.csv'\n",
"TEST = 'mnist_test.csv'\n",
"# TRAIN_FOLDER = 'train'\n",
"# TEST_FOLDER = 'test1'"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Kt1NKfCnWUPi",
"outputId": "649543ec-cb09-4ae0-d716-1d292720abc9"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"x_train shape: (60000, 28, 28, 1)\n",
"60000 train samples\n",
"10000 test samples\n"
]
}
],
"source": [
"# filenames = os.listdir(TRAIN_FOLDER)\n",
"\n",
"# train_set = {}\n",
"\n",
"# # load images and labels\n",
"\n",
"# for file in filenames:\n",
"# if file[:3] == 'cat':\n",
"# train_set[file] = 'cat'\n",
"# else:\n",
"# train_set[file] = 'dog'\n",
"\n",
"# train_set = pd.DataFrame(train_set.items(), columns=['filename', 'label'])\n",
"# print(train_set.sample(frac=1).head())\n",
"x_train, y_train = load_data()[0]\n",
"x_test, y_test = load_data()[1]\n",
"\n",
"# rescale to [0, 1]\n",
"x_train = x_train.astype(\"float32\") / 255\n",
"x_test = x_test.astype(\"float32\") / 255\n",
"\n",
"# fix dimensions\n",
"x_train = np.expand_dims(x_train, -1)\n",
"x_test = np.expand_dims(x_test, -1)\n",
"\n",
"\n",
"\n",
"print(\"x_train shape:\", x_train.shape)\n",
"print(x_train.shape[0], \"train samples\")\n",
"print(x_test.shape[0], \"test samples\")\n",
"\n",
"\n",
"# change data to categorical\n",
"y_train = to_categorical(y_train, CLASSES)\n",
"y_test = to_categorical(y_test, CLASSES)\n"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "FOpA2L0EWUPk",
"outputId": "2333bf33-c963-4af1-ecc2-e3efb3ed4e76"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Model: \"sequential_4\"\n",
"_________________________________________________________________\n",
" Layer (type) Output Shape Param # \n",
"=================================================================\n",
" conv2d_12 (Conv2D) (None, 26, 26, 32) 320 \n",
" \n",
" max_pooling2d_12 (MaxPoolin (None, 13, 13, 32) 0 \n",
" g2D) \n",
" \n",
" conv2d_13 (Conv2D) (None, 11, 11, 64) 18496 \n",
" \n",
" max_pooling2d_13 (MaxPoolin (None, 5, 5, 64) 0 \n",
" g2D) \n",
" \n",
" conv2d_14 (Conv2D) (None, 3, 3, 128) 73856 \n",
" \n",
" max_pooling2d_14 (MaxPoolin (None, 1, 1, 128) 0 \n",
" g2D) \n",
" \n",
" flatten_4 (Flatten) (None, 128) 0 \n",
" \n",
" dense_8 (Dense) (None, 512) 66048 \n",
" \n",
" dense_9 (Dense) (None, 10) 5130 \n",
" \n",
"=================================================================\n",
"Total params: 163,850\n",
"Trainable params: 163,850\n",
"Non-trainable params: 0\n",
"_________________________________________________________________\n"
]
}
],
"source": [
"from keras.models import Sequential\n",
"from keras.layers import Conv2D, MaxPooling2D, Dropout, Flatten, Dense, Activation, BatchNormalization\n",
"\n",
"# Build CNN\n",
"\n",
"cnn = Sequential()\n",
"\n",
"# Convolution + Pooling\n",
"\n",
"cnn.add(Conv2D(32, (3,3), activation='relu', input_shape=(IMAGE_SIZE[0], IMAGE_SIZE[1], CHANNELS)))\n",
"cnn.add(MaxPooling2D(pool_size=(2, 2)))\n",
"\n",
"cnn.add(Conv2D(64, (3,3), activation='relu'))\n",
"cnn.add(MaxPooling2D(pool_size=(2, 2)))\n",
"\n",
"cnn.add(Conv2D(128, (3,3), activation='relu'))\n",
"cnn.add(MaxPooling2D(pool_size=(2, 2)))\n",
"\n",
"# Flattening\n",
"\n",
"cnn.add(Flatten())\n",
"\n",
"# NN\n",
"\n",
"cnn.add(Dense(512, activation='relu'))\n",
"cnn.add(Dense(10, activation='softmax'))\n",
"\n",
"cnn.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])\n",
"\n",
"cnn.summary()\n"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"id": "7ee7SA0EaeZb"
},
"outputs": [],
"source": [
"# from sklearn.model_selection import train_test_split\n",
"\n",
"# split data into train and test sets\n",
"# train, validate = train_test_split(train_set, test_size=0.20, random_state=42)\n",
"# train = train.reset_index(drop=True)\n",
"# validate = validate.reset_index(drop=True)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "xnqb08HQbIQQ",
"outputId": "43d33371-d019-4183-efc0-c7c63b32a63d"
},
"outputs": [],
"source": [
"# # create generators to transform and load images\n",
"# rescale = ImageDataGenerator(\n",
"# rescale=1./255,\n",
"# rotation_range=15,\n",
"# shear_range=0.1,\n",
"# zoom_range=0.2,\n",
"# # horizontal_flip=True,\n",
"# width_shift_range=0.1,\n",
"# height_shift_range=0.1\n",
"# )\n",
"\n",
"# # generator = rescale.flow_from_dataframe(\n",
"# # train, \n",
"# # \"train/\", \n",
"# # x_col='filename',\n",
"# # y_col='label',\n",
"# # target_size=IMAGE_SIZE,\n",
"# # class_mode='categorical',\n",
"# # batch_size=16\n",
"# # )\n",
"\n",
"# validation_datagen = ImageDataGenerator(rescale=1./255)\n",
"# validation_generator = validation_datagen.flow_from_dataframe(\n",
"# validate, \n",
"# \"train\", \n",
"# x_col='filename',\n",
"# y_col='label',\n",
"# target_size=IMAGE_SIZE,\n",
"# class_mode='categorical',\n",
"# batch_size=16\n",
"# )"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"colab": {
"background_save": true,
"base_uri": "https://localhost:8080/"
},
"id": "2m2lOT_icYV4",
"outputId": "d52a1011-e20e-46f0-8f7d-941b4f63e7ee"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/20\n",
"422/422 [==============================] - 17s 39ms/step - loss: 0.3284 - accuracy: 0.8940 - val_loss: 0.0745 - val_accuracy: 0.9807\n",
"Epoch 2/20\n",
"422/422 [==============================] - 16s 38ms/step - loss: 0.0836 - accuracy: 0.9738 - val_loss: 0.0494 - val_accuracy: 0.9865\n",
"Epoch 3/20\n",
"422/422 [==============================] - 16s 38ms/step - loss: 0.0553 - accuracy: 0.9827 - val_loss: 0.0695 - val_accuracy: 0.9785\n",
"Epoch 4/20\n",
"422/422 [==============================] - 16s 38ms/step - loss: 0.0403 - accuracy: 0.9876 - val_loss: 0.0462 - val_accuracy: 0.9878\n",
"Epoch 5/20\n",
"422/422 [==============================] - 18s 43ms/step - loss: 0.0308 - accuracy: 0.9906 - val_loss: 0.0604 - val_accuracy: 0.9832\n",
"Epoch 6/20\n",
"422/422 [==============================] - 17s 40ms/step - loss: 0.0251 - accuracy: 0.9924 - val_loss: 0.0484 - val_accuracy: 0.9873\n",
"Epoch 7/20\n",
"422/422 [==============================] - 17s 39ms/step - loss: 0.0191 - accuracy: 0.9942 - val_loss: 0.0507 - val_accuracy: 0.9873\n",
"Epoch 8/20\n",
"422/422 [==============================] - 17s 40ms/step - loss: 0.0151 - accuracy: 0.9954 - val_loss: 0.0495 - val_accuracy: 0.9880\n",
"Epoch 9/20\n",
"422/422 [==============================] - 17s 39ms/step - loss: 0.0123 - accuracy: 0.9957 - val_loss: 0.0705 - val_accuracy: 0.9858\n",
"Epoch 10/20\n",
"422/422 [==============================] - 18s 43ms/step - loss: 0.0116 - accuracy: 0.9962 - val_loss: 0.0512 - val_accuracy: 0.9903\n",
"Epoch 11/20\n",
"422/422 [==============================] - 19s 45ms/step - loss: 0.0094 - accuracy: 0.9968 - val_loss: 0.0708 - val_accuracy: 0.9878\n",
"Epoch 12/20\n",
"422/422 [==============================] - 18s 42ms/step - loss: 0.0076 - accuracy: 0.9975 - val_loss: 0.0569 - val_accuracy: 0.9905\n",
"Epoch 13/20\n",
"422/422 [==============================] - 19s 46ms/step - loss: 0.0075 - accuracy: 0.9974 - val_loss: 0.0776 - val_accuracy: 0.9863\n",
"Epoch 14/20\n",
"422/422 [==============================] - 18s 42ms/step - loss: 0.0069 - accuracy: 0.9978 - val_loss: 0.0656 - val_accuracy: 0.9898\n",
"Epoch 15/20\n",
"422/422 [==============================] - 17s 41ms/step - loss: 0.0066 - accuracy: 0.9983 - val_loss: 0.0812 - val_accuracy: 0.9877\n",
"Epoch 16/20\n",
"422/422 [==============================] - 17s 41ms/step - loss: 0.0059 - accuracy: 0.9982 - val_loss: 0.0688 - val_accuracy: 0.9893\n",
"Epoch 17/20\n",
"422/422 [==============================] - 17s 41ms/step - loss: 0.0058 - accuracy: 0.9983 - val_loss: 0.0790 - val_accuracy: 0.9892\n",
"Epoch 18/20\n",
"422/422 [==============================] - 17s 41ms/step - loss: 0.0057 - accuracy: 0.9985 - val_loss: 0.0749 - val_accuracy: 0.9885\n",
"Epoch 19/20\n",
"422/422 [==============================] - 17s 39ms/step - loss: 0.0052 - accuracy: 0.9987 - val_loss: 0.0896 - val_accuracy: 0.9885\n",
"Epoch 20/20\n",
"422/422 [==============================] - 17s 41ms/step - loss: 0.0047 - accuracy: 0.9985 - val_loss: 0.0868 - val_accuracy: 0.9885\n"
]
}
],
"source": [
"# total_train = train.shape[0]\n",
"# total_validate = validate.shape[0]\n",
"batch_size = 128 # 16\n",
"\n",
"# generate cnn and train\n",
"\n",
"# history = cnn.fit_generator(\n",
"# generator, \n",
"# epochs=EPOCHS,\n",
"# validation_data=validation_generator,\n",
"# validation_steps=total_validate//batch_size,\n",
"# steps_per_epoch=total_train//batch_size,\n",
"# callbacks=callbacks\n",
"# )\n",
"history = cnn.fit(x_train, y_train, batch_size=batch_size, epochs=EPOCHS, validation_split=0.1)"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"id": "MNj-kUEMD6t5"
},
"outputs": [],
"source": [
"\n",
"# save model and weights\n",
"cnn.save(\"mnist.h5\")\n",
"cnn.save_weights(\"mnist_weights.h5\")"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"id": "gLC08WZ8YjKC"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA1gAAANYCAYAAADZn0yoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAACYzElEQVR4nOzdd3iUVfrG8fskIfReFUgoAopKDaIiih2UnwhW1hWw11Us62JZZFFXXVnbqig2REXs2FBWRcQuoYjCggKSAAJSpEPanN8fZ4ZMQsokmZl3MvP9XNdc0+d9JoHJe88573OMtVYAAAAAgKpL8roAAAAAAIgXBCwAAAAACBMCFgAAAACECQELAAAAAMKEgAUAAAAAYZLidQHFNWvWzLZr187rMgAAAAAkuHnz5m2y1javyHNiLmC1a9dOmZmZXpcBAAAAIMEZY7Iq+hymCAIAAABAmBCwAAAAACBMCFgAAAAAECYxdwwWAAAAEA9yc3O1YsUK7d692+tSUI46deqoY8eOSk1NrfJrEbAAAACACFixYoUaNWqkLl26KCmJiWOxyufzacOGDVq+fLkOOeQQGWOq9Hr8pgEAAIAI2L17t1q2bEm4inFJSUlq2bKldu/erenTpys3N7dqrxemugAAAAAUQ7iqHpKSkmSMUVZWlr755puqvVaYagIAAACAaq1u3brasGFDlV6DgAUAAADEoc2bN6tHjx7q0aOHWrVqpdatW++7Xt40uMzMTF133XXlbuPoo48OS62zZ8/W4MGDw/JaVWGMkbW2Sq9BkwsAAAAgDjVt2lQLFy6UJI0bN0716tXTzTffvO/+/Px8paSUHAcyMjKUkZFR7ja+/vrrsNQaTxjBAgAAABLEqFGjdOWVV6pv37665ZZb9P333+uoo45Sz549dfTRR2vZsmWSio4ojRs3ThdffLEGDBigDh066NFHH933evXq1dv3+AEDBujss8/WwQcfrAsuuGDfSNCMGTN08MEHq3fv3rruuuvKHanasmWLzjzzTHXr1k1HHnmkFi1aJEn6/PPP943A9ezZUzt27NC6det07LHHqkePHjrssMP0xRdfhP1nVlGMYAEAAAARNnq05B9MCpsePaSHH67489asWaOvv/5aycnJ2r59u7744gulpKTok08+0W233aY333xzv+csXbpUn332mXbs2KEuXbroqquuUo0aNYo8ZsGCBVq8eLEOPPBA9evXT1999ZUyMjJ0xRVXaM6cOWrfvr2GDx9ebn133nmnevbsqenTp2vWrFkaMWKEFi5cqAkTJujxxx9Xv379tHPnTtWqVUuTJk3Sqaeeqttvv10FBQUxseYYAQsAAABIIOecc46Sk5MlSdu2bdPIkSP1yy+/yBijvLy8Ep9z+umnq2bNmqpZs6ZatGihDRs2qE2bNkUec8QRR+y7rUePHlq1apXq1aunDh06qH379pKk4cOHa9KkSWXW9+WXX+4LeSeccII2b96s7du3q1+/frrxxht1wQUXaNiwYWrTpo369Omjiy++WHl5eTrzzDPVo0ePqvxowoKABQAAAERYZUaaIqVu3br7Lv/973/X8ccfr7ffflurVq3SgAEDSnxOzZo1911OTk5Wfn5+pR5TFWPGjNHpp5+uGTNmqF+/fpo5c6aOPfZYzZkzRx988IFGjRqlG2+8USNGjAjrdiuKY7AAAACABLVt2za1bt1akjR58uSwv36XLl20cuVKrVq1SpL06quvlvuc/v376+WXX5bkju1q1qyZGjRooBUrVujwww/X3/72N/Xp00dLly5VVlaWWrZsqcsuu0yXXnqp5s+fH/b3UFEELL/Vq6Vvv/W6CgAAACB6brnlFt16663q2bNn2EecJKl27dp64oknNHDgQPXu3Vv169dXw4YNy3zOuHHjNG/ePHXr1k1jxozRCy+8IEl6+OGHddhhh6lbt26qUaOGBg0apNmzZ6t79+7q2bOnXn31VV1//fVhfw8VZara5z3cMjIybGZmZtS3e9VV0uuvS5s2RX3TAAAAiEPz5s1T7969vS7Dczt37lS9evVkrdU111yjTp066YYbbvC6rP3MmzdPCxYsUP369XXeeedJkowx86y15ferD8IIll96urR5s7Rrl9eVAAAAAPHj6aefVo8ePXTooYdq27ZtuuKKK7wuKaJocuGXlubOV6+WDj7Y21oAAACAeHHDDTfE5IhVpDCC5RcIWNnZ3tYBAAAAoPoiYPkFAlZWlrd1AAAAAKi+CFh+Bx4oJSczggUAAACg8ghYfikpUuvWBCwAAAAAlUfACpKWRsACAABAfDj++OM1c+bMIrc9/PDDuuqqq0p9zoABAxRYMum0007T1q1b93vMuHHjNGHChDK3PX36dC1ZsmTf9bFjx+qTTz6pQPUlmz17tgYPHlzl14kkAlYQAhYAAADixfDhwzVt2rQit02bNk3Dhw8P6fkzZsxQo0aNKrXt4gFr/PjxOumkkyr1WtUNAStIWppr0+7zeV0JAAAAUDVnn322PvjgA+Xm5kqSVq1apd9++039+/fXVVddpYyMDB166KG68847S3x+u3bttGnTJknSPffco86dO+uYY47RsmXL9j3m6aefVp8+fdS9e3edddZZ2r17t77++mu9++67+utf/6oePXpoxYoVGjVqlN544w1J0qeffqqePXvq8MMP18UXX6ycnJx927vzzjvVq1cvHX744Vq6dGmZ72/Lli0688wz1a1bNx155JFatGiRJOnzzz9Xjx491KNHD/Xs2VM7duzQunXrdOyxx6pHjx467LDD9MUXX1Tth1sG1sEKkpYm5eVJ69e7phcAAABAWIweLS1cGN7X7NFDevjhUu9u0qSJjjjiCH344YcaMmSIpk2bpnPPPVfGGN1zzz1q0qSJCgoKdOKJJ2rRokXq1q1bia8zb948TZs2TQsXLlR+fr569eql3r17S5KGDRumyy67TJJ0xx136Nlnn9Vf/vIXnXHGGRo8eLDOPvvsIq+1d+9ejRo1Sp9++qk6d+6sESNGaOLEiRo9erQkqVmzZpo/f76eeOIJTZgwQc8880yp7+/OO+9Uz549NX36dM2aNUsjRozQwoULNWHCBD3++OPq16+fdu7cqVq1amnSpEk69dRTdfvtt6ugoEC7d+8O/edcQYxgBWEtLAAAAMST4GmCwdMDX3vtNfXq1Us9e/bU4sWLi0znK+6LL77Q0KFDVadOHTVo0EBnnHHGvvt++ukn9e/fX4cffrhefvllLV68uMx6li1bpvbt26tz586SpJEjR2rOnDn77h82bJgkqXfv3lq1alWZr/Xll1/qwgsvlCSdcMIJ2rx5s7Zv365+/frpxhtv1KOPPqqtW7cqJSVFffr00fPPP69x48bpxx9/VP369ct87apgBCtIero7z86WjjzS21oAAAAQR8oYaYqkIUOG6IYbbtD8+fO1e/du9e7dW7/++qsmTJiguXPnqnHjxho1apT27t1bqdcfNWqUpk+fru7du2vy5MmaPXt2leqtWbOmJCk5OVn5+fmVeo0xY8bo9NNP14wZM9SvXz/NnDlTxx57rObMmaMPPvhAo0aN0o033qgRI0ZUqdbS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GdLQoa6z30svST/95I5pIlgBEcX/sBhRs6b04YcuaF14ofTCC15XBABIWD/9JP3yi9dVoKKslWbOlI480h1XtXWra7++ZIl0wQVScrLXFQIJgYAVQ+rWdV84nXSSdNFF0jPPeF0RACChLFvmpo4dfrjrAjdwoPTBB+4YHsQua6VPP5WOOcb9ztavd+3Wly6VRo6kexYQZQSsGFOnjvTuu+7z8bLLpIkTva4IABD31q1zc9QPPVT6739d++7x492xOoMHS126SA8/LG3b5nWlKO7zz6UBA9y3s9nZbsfhl1+kSy91nfoARJ2x1npdQxEZGRk2MzPT6zI8l5Pjjkd97z3pkUek667zuiIAQNzZvl164AHpwQfdukRXXindcYfUooW7PzdXeust6T//kb7+2k21GDVKuvZa6eCDPS09Inw+t/bS1Klu3n6TJlKnTu500EGFl1u08L7z3ldfSWPHSrNmuQV5b7vNhapatbytC4gzxph51tqMCj2HgBW7cnOl88+X3n5bmjBBuukmrysCgASwfbu0apWbJuf1TnSk5OZKTz4p3XWXtGmT+2Nz991Sx46lP2fePBe0XnnFPf+UU6S//EU67bTq3TTBWjdSN3Wqe2+rV7vpJAMHuuYQv/wi/fqr68AXUL/+/qErcL1588j+u/nuO+nOO92xVi1aSLfeKl1xhVS7duS2CSQwAlYcystzx6W+/rp0773SmDFeVwQAcWz2bNdpaM0aqWtX6eqr3fUGDbyuLDx8PunVV6Xbb3eh4YQTpPvvd93mQvX77+74nieekH77zYWya65xBw83ahSx0sNu1SoXqqZOlRYvdscpnXqq9Kc/SUOGuNG6gLw8KSvLha3Aaflyd75qVdHw1aDB/qErcLlp08qHr3nzXLD64AOpWTPpb3+TrrqqaJ0Awo6AFafy890xqlOnumnxY8d6XREAxJm8PLfzet99bkf46qvdmhlz50r16rmQdfXV0mGHeV1p5X3yidspnz/fLTh7//1uFKqyO/x5eW6KxaOPuulqdetKI0a46YNdu4a39nDZuNF9Y/nyy27KoyT16+e+yTznHBdcKio314Ws4NAVOGVlFW0Q0qhR6SNfTZuW/PoLF0rjxknvvCM1biz99a9u5LBevYrXCqDCCFhVlZ8fs512CgqkSy5x7dvvuMMdexyvM1cAIKqWL3ejFnPnumNY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9Oabb+73nKVLl+qzzz7Tjh071KVLF1111VWqUaNGkccsWLBAixcv1oEHHqh+/frpq6++UkZGhq644grNmTNH7du31/Dhw0usqUWLFvr4449Vq1Yt/fLLLxo+fLgyMzP14Ycf6p133tF3332nOnXqaMuWLZKkCy64QGPGjNHQoUO1d+9e+Xw+rV69usz33bRpU82fP1+Smz552WWXSZLuuOMOPfvss/rLX/6i6667Tscdd5zefvttFRQUaOfOnTrwwAM1bNgwjR49Wj6fT9OmTdP3339f4Z97uIVjHazWkoJ/amv8t5V2+36MMZdLulyS0tLSwlASAAAAUL6KjjRF0jnnnLNvity2bds0cuRI/fLLLzLGKC8vr8TnnH766apZs6Zq1qypFi1aaMOGDWrTpk2RxxxxxBH7buvRo4dWrVqlevXqqUOHDmrfvr0kafjw4Zo0adJ+r5+Xl6drr71WCxcuVHJysn7++WdJ0ieffKKLLrpIderUkSQ1adJEO3bs0Nq1azV06FBJUq1atUJ63+edd96+yz/99JPuuOMObd26VTt37tSpp54qSZo1a5amTHET6pKTk9WwYUM1bNhQTZs21YIFC7Rhwwb17NmzymtYhUNMLDRsrZ0kaZIkZWRkWI/LAQAAAKKubt26+y7//e9/1/HHH6+3335bq1at0oABA0p8Ts2aNfddTk5OVn5+fqUeU5qHHnpILVu21A8//CCfzxdyaAqWkpIin8+37/revXuL3B/8vkeNGqXp06ere/fumjx5smbPnl3ma1966aWaPHmy1q9fr4svvrjCtUVCOLoIrpXUNuh6G/9tpd0OAAAAoAzbtm1T69Zu8tfkyZPD/vpdunTRypUrtWrVKknSq6++WmodBxxwgJKSkvTiiy+qoKBAknTyySfr+eef39fSfMuWLapfv77atGmj6dOnS5JycnK0e/dupaena8mSJcrJydHWrVv16aefllrXjh07dMABBygvL08vv/zyvttPPPFETZw4UZJrhrFt2zZJ0tChQ/XRRx9p7ty5+0a7vBaOEax3JV1rjJkm1+Rim7V2nTFmpqR/GmMa+x93iqRbw7A9AACAhFdQIOXkuFNubsnnod5W0n0FBVJqaumnmjXLvj/U59WoIRnj9U8z9txyyy0aOXKk7r77bp1++ulhf/3atWvriSee0MCBA1W3bl316dOnxMddffXVOuusszRlypR9j5WkgQMHauHChcrIyFBqaqpOO+00/fOf/9SLL76oK664QmPHjlWNGjX0+uuvq0OHDjr33HN12GGHqX379urZs2epdd11113q27evmjdvrr59+2rHjh2SpEceeUSXX365nn32WSUnJ2vixIk66qijlJqaquOPP16NGjWKmQ6ExvWmKOMBxrwi17CimaQNcp0Ba0iStfZJf5v2x+QaWOyWdJG1NtP/3Isl3eZ/qXustc+XV1BGRobNzMys1JsBAACJy1p38vmqfiookPLyKnbKza34c8p6Xm5u2QEoaMZVWNSo4cJPIAAlJxetI1BnJNSoUXIYe/hhafDg8G9v3rx56t27d/hfuJrZuXOn6tWrJ2utrrnmGnXq1Ek33HCD12VViM/nU69evfT666+rU6dOVXqtefPmacGCBapfv/6+48KMMfOsteX3xQ8SShfBkluKFN5vJV1Tyn3PSXquIgUBAIDKy8mRtm93px07Sr4cyn2BHenAyEJVziv73IqEIZ/PhatYVKNG+afASE4g5NSrV3S0p6TzcN6WmhraKJK17t9GIOiFeqro4wPPiYF+BXHt6aef1gsvvKDc3Fz17NlTV1xxhdclVciSJUs0ePBgDR06tMrhKpxioskFAACJJrCjunevtGePOwVfDoSeigaj3Nzyt22M1KCBVL++Ow9cbt268HJqamFgqcp5VZ6bnCwlJYV+qujjyzuFEozKCko1aria4mn6mzGFgQzV3w033FDtRqyCde3add+6WLGEgAUA8IzPJ23bJm3e7E6bNrnzvLzw7SRXZqfb2v1DT2lBKNT7S3psRad41alTNBA1aCC1a1c0KJUUnIpfrls3vnb6ASCWELAAAGGRny9t2VI0KBUPTsUvb9nipndVZ0lJUu3ahadatYpebtJk/9tCuVw8HNWrJ6XwVxsAYh4f1QCA/ezdW3YwKuk+f8fcEtWs6Y6laNbMnR92WNHrxS/XrBmeRgXBx+dU5CSFHohq1IjO7wQAUD0QsAAgDgWmuP3xR+Fp69bQr/uXNSlRvXpFw9BBBxVeLh6UAtfr1GFKGgAgMRCwACBGWesaF1Q0HAWul9fsoEEDqXFjqVEjd96pU+H10kaXmjRxo0sAgMo7/vjjNWbMmCIL4z788MNatmzZvsV0ixswYIAmTJigjIwMnXbaaZo6daoaNWpU5DHjxo1TvXr1dPPNN5e67enTp6tz587q2rWrJGns2LE69thjddJJJ1X9jUESAQsAIiI3102ZC+7wtn17aLdt21YYkspqgpCUVBiOAqe0tP1vK+l6w4YczwMAXhk+fLimTZtWJGBNmzZN//rXv0J6/owZMyq97enTp2vw4MH7Atb48eMr/VpeKSgoiJlFhUvCn1cA8LPWHXu0c2fFAlFJt+XklL+9lBQXdIK7vx14oHTwwWWHo8Dl+vWZdgcAVTZ6tLRwYXhfs0cPt0pyKc4++2zdcccdys3NVWpqqlatWqXffvtN/fv311VXXaW5c+dqz549Ovvss/WPf/xjv+e3a9dOmZmZatasme655x698MILatGihdq2bbtvAeWnn35akyZNUm5urg466CC9+OKLWrhwod599119/vnnuvvuu/Xmm2/qrrvu0uDBg3X22Wfr008/1c0336z8/Hz16dNHEydOVM2aNdWuXTuNHDlS7733nvLy8vT666/r4IMPLlLTqlWrdOGFF2rXrl2SpMcee0xHH320JOn+++/XSy+9pKSkJA0aNEj33Xefli9friuvvFIbN25UcnKyXn/9da1evVoTJkzQ+++/L0m69tprlZGRoVGjRqldu3Y677zz9PHHH+uWW27Rjh079nt/derU0YYNG3TllVfua98+ceJEffTRR2rSpIlGjx4tSbr99tvVokULXX/99VX5LZeKgAUgZgUCT6DFdfBp9+6Sb6/KfXv2hFZXScGodWvpkEMKrxe/v6TbatUiIAFAImrSpImOOOIIffjhhxoyZIimTZumc889V8YY3XPPPWrSpIkKCgp04oknatGiRerWrVuJrzNv3jxNmzZNCxcuVH5+vnr16rUvYA0bNkyXXXaZJOmOO+7Qs88+q7/85S8644wz9gWqYHv37tWoUaP06aefqnPnzhoxYoQmTpy4L5Q0a9ZM8+fP1xNPPKEJEybomWeeKfL8Fi1a6OOPP1atWrX0yy+/aPjw4crMzNSHH36od955R999953q1KmjLVu2SJIuuOACjRkzRkOHDtXevXvl8/m0evXqMn9uTZs21fz58yVJmzdvLvH9XXfddTruuOP09ttvq6CgQDt37tSBBx6oYcOGafTo0fL5fJo2bZq+//77CvzGKoaABSDqdu6UsrJKPq1d6+6vSOApSc2aRVtnB58aNXIjRaXdX3xNIYIRAMSxMkaaIikwTTAQsJ599llJ0muvvaZJkyYpPz9f69at05IlS0oNWF988YWGDh2qOnXqSJLOOOOMfff99NNPuuOOO7R161bt3LmzyHTEkixbtkzt27dX586dJUkjR47U448/vi9gDRs2TJLUu3dvvfXWW/s9Py8vT9dee60WLlyo5ORk/fzzz5KkTz75RBdddNG+Gps0aaIdO3Zo7dq1Gjp0qCSpVq1aIf3MzjvvvHLf36xZszRlyhRJUnJysho2bKiGDRuqadOmWrBggTZs2KCePXuqadOmIW2zMghYAMLKWte2u7QAlZXl1j4KVqOG1LatlJ4uDRjgAk7t2q7zXGkhqKz7a9Vyi8sCABCrhgwZohtuuEHz58/X7t271bt3b/3666+aMGGC5s6dq8aNG2vUqFHau3dvpV5/1KhRmj59urp3767Jkydr9uzZVaq3pr/DUXJysvLz8/e7/6GHHlLLli31ww8/yOfzhRyagqWkpMgXdPBx8fdet27dfZcr+v4uvfRSTZ48WevXr9fFF19c4doqgoAFoEIKCqTffnNBKTu75ABVvMV33bouPKWnS337Fl4OnFq1IhABABJLvXr1dPzxx+viiy/W8OHDJUnbt29X3bp11bBhQ23YsEEffvihBgwYUOprHHvssRo1apRuvfVW5efn67333tMVV1whSdqxY4cOOOAA5eXl6eWXX1br1q0lSfXr19eOHTv2e60uXbpo1apVWr58+b5jmo477riQ38+2bdvUpk0bJSUl6YUXXlCBfxX5k08+WePHj9cFF1ywb4pgkyZN1KZNG02fPl1nnnmmcnJyVFBQoPT0dC1ZskQ5OTnas2ePPv30Ux1zzDElbq+093fiiSfum9oYmCLYsGFDDR06VGPHjlVeXp6mTp0a8vuqDAIWgCJyckoPTllZ0po1UvEvrpo2dUHp4IOlU0/dP0A1acKUOgAAihs+fLiGDh2qadOmSZK6d++unj176uCDD1bbtm3Vr1+/Mp/fq1cvnXfeeerevbtatGihPn367LvvrrvuUt++fdW8eXP17dt3X6g6//zzddlll+nRRx/VG2+8se/xtWrV0vPPP69zzjlnX5OLK6+8MuT3cvXVV+uss87SlClTNHDgwH2jTQMHDtTChQuVkZGh1NRUnXbaafrnP/+pF198UVdccYXGjh2rGjVq6PXXX1eHDh107rnn6rDDDlP79u3Vs2fPUrdX2vt75JFHdPnll+vZZ59VcnKyJk6cqKOOOkqpqak6/vjj1ahRo4h3IDTW2ohuoKIyMjJsZmam12UAcc9aaf16acGCwtPChdKKFUUfZ4xr4FA8NAVOaWluhAoAgOpi3rx5+5pBIDH4fD716tVLr7/+ujp16lTiY+bNm6cFCxaofv36+473MsbMs9ZmVGRbjGABCcDnk5YvLwxRgUD1+++Fj+nY0XWVvfBCqV27wgDVpo07RgoAAKA6WrJkiQYPHqyhQ4eWGq7CiYAFxJmcHGnx4qKjUj/84DrzSa7F+KGHSqedJvXs6UJV9+6uUx4AAEC86dq16751saKBgAVUY9u2uQAVPCq1ZEnhMVL16rkANWqUC1M9e0pdu7oW5gAAJDKfz6ekpCSvy0CMCO5eWFUELKAasFZat67oqNSCBVLwlzEtW7oAdfrpLlT17Omm/fG3AwCAourUqaMNGzaoZcuWhCzI5/Np/fr1ysvLC8vrEbCAGOPzSb/8UnRUauHCosdLHXSQ1Lu3dMklhSNTrVp5VTEAANVLx44dtXz5cq1du1aGNreQWyg5Oztbubm5+xZFriwCFuCh3Fx3vNT8+YVh6ocfpF273P01arjjpU4/vejxUg0aeFo2AADVWmpqqrp27arMzEx9/vnnSkpKUqx11kb0GWOUkpJSpN19ZRCwgCjZudOFpwULCgPV4sVSYDQ6cLzUxRcXPV4qNdXTsgEAiFu9e/dWixYttH37dgIWlJycrJYtW6pp06ZVeh0CFhABmzYVjkgFwtQvv7hjqSSpeXMXoAYOLAxTHC8FAEB0GWOUlpbmdRmIMwQsoAqslVavLrpY7/z50po1hY9JT3cB6oILpF693OUDD3QL+AIAACC+ELCAEBUUuFGo4DC1YIG0ebO73xjp4IOlY48tHJXq2VNq0sTbugEAABA9BCygBOU1n0hNlQ47TBo6tDBIdesm1a3rbd0AAADwFgELkLRnjzRzpvT++9K8eSU3nwhuiX7IITSfACImN1dKSeGgRABAtUTAQsLasUP64APpzTelGTOk3bulRo2kI46QTj218Hgpmk8gaqyVPv/cDZf27++SfSL847NW+vln9x/xww+lOXPcwm7XX+++2WBdAgBANULAQkLZskV6910Xqj7+WMrJkVq2lEaMkM46SzruOLf2FBBV1rpgcc890tdfF97etKl04onSySdLJ50ktWvnWYlht2uX9Nln7n1/+KH066/u9oMPlq680s3LvfFG6c47pcsuk667znWMAQAgxplY6/mfkZFhMzMzvS4DcWT9emn6dOmtt9z+XH6+lJYmDRvmQtVRR0nJyV5XiYTk80lvv+2C1YIF7h/m3/4mnXaa9OWX0iefuG8CfvvNPf6gg1zQOvlk6fjjpcaNva2/IqyVli0rDFRz5rhvOOrUcSFy0CB3Cg6RmZnSQw9Jr77qrp91lgtdfft68haiYuNGaepUN5rXoYN0zDFSv34uXNJ6FACizhgzz1qbUaHnELAQj7Kz3X7rm2+6/VRrpU6d3P7ZWWdJvXuzrwIP5edLr7wi3Xuv9L//uX+ct94q/fnP+w+hWuseEwhbs2e7VauTkqSMjMLAddRRUs2anrydUgWPUs2YIa1a5W4/5JDCQNW/f/l1r14tPfaY9NRT0rZtLnDceKM0ZEh8fDuSm+t+PpMnu3nL+fluJG/tWjeXWZJat3bvOxC4unVzx6nFK2vdvO2UFHeKh98zgGqJgIWEtny5C1RvvinNnetuO/zwwlB16KGEKngsJ0d64QXp/vullSvdP9Dbb5fOPjv0Hci8POm77woD13ffuTUE6tRxawQEAtfhh0f/H3zxUarPP3fhoW7dwlGqgQMrP9Vxxw7p+eelhx92Uwo7dJBGj5Yuush1o6luFi50oerll93q5C1bShdeKI0c6dqUFhRIP/4offWV+6boq69c2JTc+z3yyMLQ1bevVL++l++m8nbulH76SVq0yL3fRYvcaevWwscY4758SEmp2HlVHpua6g7MbdKk8NS0qTuvX58/KECCIGAhoVjruv0FQtWPP7rb+/RxgWrYMDcwAHhu927p6aelBx5woxJHHOGC1eDBVW9isX27G9UKBK6lS93tLVq4sBUIXG3aVPltlGjXLmnWrMJQVdlRqoooKHDzfh980B2z1rChdMUV0l/+Ern3GS6//+6mAE6e7JqZpKa6kbhRo6RTTil/VCo72wWtQOhatMh9GCYlSd27F45w9esXez+LggJpxYqiIWrRIvdlQ0C9eu7LgW7dXBC31n2pkJ9f9Lyk20K5L9TH+Hxlv5fk5KKBq/jl0u4jmAHVDgELcc9a10b9zTfdMVU//+z+Vh1zjAtUw4a5w1iAmLB9u/T44+44oo0bXReV2293oSdSO1lr1riwFTht2OBu79KlsFnGgAEulFRG8CjVjBnuWKpwjlJV1Lffup/vG2+4kHHuuW76YO/e0dl+KEqaAtinjwtV559ftdXIt293P4PACNe337pAL7njtoKnFR56aPSm2m3aVDRI/fijG6Xas8fdn5TkvgHr1q0wUHXr5mqOhc6ZPp/7vW3d6rojbd7szgOn4OvF79u5s/TXrWgwq107am85ZrVuXfnPKyAMCFiISz6f9M03haEqK8v9jTr+eDdSdeaZrqMzEDM2b5YeeUT6z3/cDtrAgS5YHXNMdOuw1u3YBka35sxxO9/JyW4U7eST3alv37LbZ5Y3SnXaae69eXkM2KpV7uf99NNuKuFxx7mgFY5RwsoqPgWwVavCKYCHHhqZbebluZGx4GmF69a5+xo2dMfqBULXEUe4qaVVkZPjRk2LT+8LbFOSmjUrDFCBU9eu8RsecnKkP/4ILYwFXy8rmCWyqVOl4cO9rgIJjICFuJGf7w7fePNN16xi/Xo3k+aUU1yoOuOMqn3pixhQUFB0JySws7Frlzv+JCNDqlXL6yorZv166d//liZOdO9j6FAXrGJlNCUnx31bEQhcmZnuG4x69dyoVmA64SGHuJ3m4I5/xUepBg2Kzbbp27ZJzz7rAm52thslGT3ahZq6dSO//d9/d4Fq8mQXNCo6BTDcrHXHqwUHrsWL3X0pKW7Bv+BRrpYtS3+dNWv2D1LLlrkPbMm9165dC0NUYGSqZUumxYUiN3f/z8OcHK+r8t6RRzI1BZ4iYKFaK7h/gv6YOkMvtrhZd88bpC1/GNWp474cP+ssd856ozEoPz+0aTTFrwcfwF6S1FQXsgI7fkcf7b4Jj0XZ2dK//iU984wbQRg+3HUFjNQoRbj88Yfr8hcIXMuXu9vr1nUBUXI7zIFA5fUoVUXk57tvaP79b9f1pkkTt77WNddIBx4Y3m3l5rqpf5Mnu6mA4ZwCGAlbtrigHQhdc+dKe/e6+zp2LPw/Z23RQBX8fzYtbf8g1akTCwkCiDsELFRLBQXSj+fepR5vjdV21VcD7dCKpn204cpx6nHrINWpm0DffO7Y4UKIl3JyQg9Jmze7EYPSGOPWairt+IKSrteqJc2fX/hte2amCy2Sa10d/G37QQd5+834zz9L990nvfiiq2PkSLeO1UEHeVdTVaxa5cJWZqbUo0fsjlJVhLWuEcaDD7rh8JQUF4BvuMG9x6q8bvAUwM2bozMFMBJyc4v+n/vySzelUXJNGQIBKnB+2GGuux4AJAACFqoVa10jsDVX3KW/bByr95uMkH3yKQ3a/JJS7rvbHWzVp480bpzb0YvnKSbLlrnW0y+8UHgQeCwJDkrlBaTg6w0bVv2g+j173A5/YMfv66/dyIvkOuUFOqYdc4zUs6cb+Yq0H3+U/vlP6bXX3PYuu0z661+ltm0jv21U3ooV0qOPuimEu3ZJJ5zgjtMaNCj047RibQpgJFjrflbJybHTdAIAPELAQrVgrfuS/LbbpIGZd+kujVXWcSOU9slzMin+nfHcXGnKFOnuOA5a1rr22g8+KL3/vpt6deGFbiqcl++xRo39Q1OjRrGzk+XzueODgr9tD7R5rlXLHbgfPK0wnN+0z50r3XOP9M477rila65xIyGlHbeC2PTHH64ZxqOPurb5Bx/sfo8XXlhy44XqNgUQABA2BKzqLND6uEuX+AkQJfj6a3fM/+zZ0oSGd+mmbWPl+/MIJU1+ruSRjkDQuuceN30pHoJWbq4b+XjwQWnBAql5c+nqq92pRQuvq6ue1q0rXBvoq6/cdKeCAvdv5NBDi64N1K5dxf/tzJnj/g3+979uJO/6692aS+xYV295eYX/F+fPd8f4Bf9fjJcpgACASiNgVVfLlrmDr2fPdn+4J02KzjSnKFq4ULrjDvclcMuW0jsZd6nvB2OlESOk50oJV8GKB62MDBe0Tjut+gStLVvc7/Y//5F++811arvxRumCC+K3XbFXdu2Svv++cJTrm2/cekGSa3AQfBxX9+4lT+uyVpo50/2b+/JLt8N9003SVVe541IQP6x1IfrBB6X33nOjuO3bu8/meJwCCAAIGQGrusnJcQfI//Ofbgf7//5Peuklt37LW2/FxbfjP/8sjR0rvfqq++L/b3+TbtgxXqn33Bl6uAqWl1c4dbC6BK3ly13L6Oeec2sQnXyyC1annBI70+7iXUGBW+Q0uFV1dra7r25d1wY4eG2gWbNcsJo3T2rTRrrlFunSSwnCieDnn93xkEuXSmefzRRAAEhwBKzqZPZsN2q1bJn7A/7QQ276ycsvSxdf7KYxffBBte1Gtnq1NH689Pzz7rCYG25wX/43enS8dGclw1WwWA9a1rod+QcfdMfrpKS4kaobbnBduOC91auLTiv84Qd3fFdAx46u1fqFF8bdiDIAAAgNAas62LTJdRubPNlNQXniCWngwKKP+eILt0Cp5HbO+/WLepmV9fvv0r33urcluUMZbr3Vf2jReH+4GjnSdfGqanc5KfaCVl5e4do7mZnum++rrnLNEA44IPr1IHTbt0vffSd9+637YuOcc5gOBgBAgiNgxTJrXRC46Sa3btBf/+oOSqpTp+THL1/uQkJWlgtjw4dHtdyK2rrVZYqHHnLrVY4a5aYG7lt8PRLhKpjXQWvrVrfI7KOPupGRzp3daNWIEaX/jgEAABDTKhOwOAAkGpYtc+utjBrlugQuWOCOuyprx/ugg9yB+UceKf3pT9Jdd7mQFmN27ZLuv1/q0MFlm8GDpcWLXdaIWriS3EHpl1zijp949lnX8WvwYHc8zfvvR+5n9+uv0ujRbv2jv/7V/d7ee0/63//cFFDCFQAAQEIhYEXS3r1uFKVbN9dG76mn3PS/ww4L7flNm7q20Bde6IaDRo1yjTFiQE6O9NhjLk+MGeOWG1qwQJo2zWXIfaIRroLVqOGOYVu2rDBo/d//ufbu4Qxa33zjppAddJD0+OPSmWe6hgizZrlgR/MKAACAhMReYKR89plr//yPf0hnneVGNC6/vOI73jVrSi+84ILKlCmu89yWLZGpOQT5+W7GYpcubhmgzp1dL4f335d69Cj24GiHq2DFg9aWLVUPWvn50htvSEcd5RLlJ5+47nKrVkkvvij16hX2twEAAIDqhYAVbps2uZGmE05wO+QzZ0pTp7oOgZVljPT3v7vX+fZbN21w+fKwlRwKn89li8MPly66yK3HOXOma4ZYYg+Of/zDu3AVLBxBa/t217a5Uyc3arVxo1vLavVq19GjdeuIvw0AAABUDwSscLHWDe0cfLBrtX7bbW7dnVNOCd82hg+XPv3UhYQjj3RDRxFmrfTRRy6PnHOOy3pvvinNneveWon9I/7xDzc1ctQob8NVsMoErexs6eab3fFVN9zgzt9+273GtddK9epF/30AAAAgphGwwmHpUun4493QzsEHu+Ot7rknMouSHnOMG8Vq2lQ68UQ3qhUhX37p1jweNMjlkRdekH78URo2rIzGfMHh6plnYiNcBQsOWs89J/3xx/5Ba+5cF2Y7dHAjV6ed5tp3z5njjrWKtfcEAACAmEHAqoq9e900uO7d3SKlkya5nfBDD43sdgMdBo86yi1eO358WLvkLVjgMkX//tIvv7geDsuWuY7jZWaLWA9XwWrUcIF46dKiQat1a9d5cMYMN2q1cqX0yivuNgAAAKAcrINVWbNmuTbcv/ziQs6//y21bBndGnJzpcsuc80vLrxQevpp1xSjkn7+2S3N9frrUuPGrjvgtdeG2Gm8OoWrkuTlSS+9JL32mnTqqa7le/36XlcFAAAAD1VmHayUSBUTtzZudMflTJkidezo2qiffLI3taSmuuO+OnVyTTCysqS33nLTByto1iw3gBPop3HTTVLDhiE+ubqHK6lwROuii7yuBAAAANUYUwRDZa30/PPuGKtXXpFuv90dkORVuAowxg07TZ3qjhM66ig3qlYBH3zgpgR26OBGscaPr0C4Gjeu+ocrAAAAIEwIWKFYulQaMMA1R+ja1R2kdPfdkWliUVmBDoN//OE6DH7xRUhPe+MNaehQt/bx7NnSgQdWYJvjxrnRq4suIlwBAAAAImCVLdDEols3N1r1zDPS559HvolFZfXr5zoMNm8unXSSO6aoDFOmSOed5/o3fPppBWcWEq4AAACA/RCwSjNrlgtW48dL557rRrEuuURKivEfWceO0tdfS0cf7RpfjBtXYofBJ590awAff7xbMDjkKYHS/uEq1n8mAAAAQJSwZ1zcxo2uH/mJJ0o+n2ti8dJLUosWXlcWuiZNXGoaOdIFoREjpJycfXc/+KB01VXS6ae7pZ/q1q3AaxOuAAAAgFKxdxxgrVsP6eCDpWnTXOOIWGhiUVmpqa4px913u4B48smymzZr/HjXIfCcc1zDwVq1KvCahCsAAACgTCHtIRtjBhpjlhljlhtjxpRwf7ox5lNjzCJjzGxjTJug+/5ljFlsjPmfMeZRY4wJ5xsImyuucFMAu3aVFi6U7rortppYVIYxrtvhK6/Ifv+9NnU+Si/e+YtGjnRNB1NTK/BahCsAAACgXOXuJRtjkiU9LmmQpK6ShhtjuhZ72ARJU6y13SSNl3Sv/7lHS+onqZukwyT1kXRc2KoPp0Bw+PxzF7LiiO/c8/XQ4FnSH39oQc0j9dyoOUqpyApohCsAAAAgJKHsKR8habm1dqW1NlfSNElDij2mq6RZ/sufBd1vJdWSlCqppqQakjZUteiIOOqo6tHEooIKCqRLL5VuevNoPXvpt6rbrrmSTim/w+A+hCsAAAAgZKHsLbeWtDro+hr/bcF+kDTMf3mopPrGmKbW2m/kAtc6/2mmtfZ/xTdgjLncGJNpjMncuHFjRd8DSpGXJ11wgTsUa9w46W+TOsp88410zDFldhjch3AFAAAAVEi49phvlnScMWaB3BTAtZIKjDEHSTpEUhu5UHaCMaZ/8SdbaydZazOstRnNmzcPU0mJbe9e6ayzpFdflR54wC3nZYykxo2ljz6SRo1y4enCC4t0GNyHcAUAAABUWChH4qyV1Dboehv/bftYa3+TfwTLGFNP0lnW2q3GmMskfWut3em/70NJR0n6Igy1oxS7dklDh0offyw9/rh09dXFHpCa6jomdurkmmBkZUlvvy01a+buJ1wBAAAAlRLKnvNcSZ2MMe2NMamSzpf0bvADjDHNjDGB17pV0nP+y9lyI1spxpgacqNb+00RRPhs3y4NHCh9+qk0eXIJ4SrAGOm221xL+rlz3TFoP/9MuAIAAACqoNwRLGttvjHmWkkzJSVLes5au9gYM15SprX2XUkDJN1rjLGS5ki6xv/0NySdIOlHuYYXH1lr3wv/24AkbdniwtWCBdIrr0jnnhvCk847T2rbVhoyROrRQ9qzh3AFAAAAVJKxZTU58EBGRobNzMz0uoxqZ8MGtybyzz9Lb7whDR5cwRdYudKFrSOOkP7zH8IVAAAAEp4xZp61NqMiz6nIakiIUWvWSCedJK1eLb3/vrtcYR06uKmCAAAAACqNgFXNrVwpnXiimx44c6brwA4AAADAGwSsamzpUjdatWePa2qRUaHBSwAAAADhRsCqphYtcuEqKUmaPVs6/HCvKwIAAABAJ4NqaO5cacAAqWZNac4cwhUAAAAQKwhY1cwXX7hjrho3dpc7d/a6IgAAAAABBKxq5OOPpVNPlVq3diNX7dp5XREAAACAYASsauLdd93aVp07S59/7kIWAAAAgNhCwKoGpk2Thg2TevaUPvtMatHC64oAAAAAlISAFeOee07605+kfv3cFMHGjb2uCAAAAEBpCFgx7LHHpEsukU45RfrwQ6l+fa8rAgAAAFAWAlaM+te/pL/8RTrzTOmdd6Q6dbyuCAAAAEB5CFgxxlpp7Fjpb3+Thg+XXnvNrXcFAAAAIPaleF0AClkr3Xyz9OCDbmrgU09JycleVwUAAAAgVIxgxQhrpauvduHquuukSZMIVwAAAEB1Q8CKEV9/LT35pHTTTdLDD0tJ/GYAAACAaofd+BixfLk7v+oqyRhvawEAAABQOQSsGJGd7c7btPG2DgAAAACVR8CKEdnZUqtWdAwEAAAAqjMCVozIzpbS0ryuAgAAAEBVELBiBAELAAAAqP4IWDHAWgIWAAAAEA8IWDFgyxZp924CFgAAAFDdEbBiQKCDIAELAAAAqN4IWDGAgAUAAADEBwJWDCBgAQAAAPGBgBUDsrOlWrWkZs28rgQAAABAVRCwYkB2ttS2rWSM15UAAAAAqAoCVgygRTsAAAAQHwhYMYCABQAAAMQHApbHcnOldesIWAAAAEA8IGB5bO1ayVoCFgAAABAPCFgeo0U7AAAAED8IWB4jYAEAAADxg4DlsdWr3Xnbtt7WAQAAAKDqCFgey86WmjeXatf2uhIAAAAAVUXA8hgt2gEAAID4QcDyGAELAAAAiB8ELA9ZK2VlEbAAAACAeEHA8tC2bdLOnQQsAAAAIF4QsDxEi3YAAAAgvhCwPETAAgAAAOILActDBCwAAAAgvhCwPJSdLaWmSi1aeF0JAAAAgHAgYHkoO1tq21ZK4rcAAAAAxAV27T3EGlgAAABAfCFgeYiABQAAAMQXApZH8vOltWsJWAAAAEA8IWB55LffJJ+PgAUAAADEEwKWR2jRDgAAAMQfApZHCFgAAABA/CFgeSQQsNq29bYOAAAAAOFDwPJIdrbUtKlUt67XlQAAAAAIFwKWR2jRDgAAAMQfApZHCFgAAABA/CFgeYSABQAAAMQfApYHtm1zJwIWAAAAEF8IWB5YvdqdE7AAAACA+ELA8gBrYAEAAADxiYDlAdbAAgAAAOJTSAHLGDPQGLPMGLPcGDOmhPvTjTGfGmMWGWNmG2PaBN2XZoz5rzHmf8aYJcaYdmGsv1rKzpZSUqRWrbyuBAAAAEA4lRuwjDHJkh6XNEhSV0nDjTFdiz1sgqQp1tpuksZLujfovimSHrDWHiLpCEm/h6Pw6iw7W2rTRkpO9roSAAAAAOEUygjWEZKWW2tXWmtzJU2TNKTYY7pKmuW//Fngfn8QS7HWfixJ1tqd1trdYam8GqNFOwAAABCfQglYrSWtDrq+xn9bsB8kDfNfHiqpvjGmqaTOkrYaY94yxiwwxjzgHxErwhhzuTEm0xiTuXHjxoq/i2qGgAUAAADEp3A1ubhZ0nHGmAWSjpO0VlKBpBRJ/f3395HUQdKo4k+21k6y1mZYazOaN28eppJiU0GBtGYNAQsAAACIR6EErLWSgvvdtfHfto+19jdr7TBrbU9Jt/tv2yo32rXQP70wX9J0Sb3CUHe1tW6dC1kELAAAACD+hBKw5krqZIxpb4xJlXS+pHeDH2CMaWaMCbzWrZKeC3puI2NMYFjqBElLql529cUaWAAAAED8Kjdg+UeerpU0U9L/JL1mrV1sjBlvjDnD/7ABkpYZY36W1FLSPf7nFshND/zUGPOjJCPp6bC/i2pktf9oNgIWAAAAEH9SQnmQtXaGpBnFbhsbdPkNSW+U8tyPJXWrQo1xhUWGAQAAgPgVriYXCFF2ttSokdSggdeVAAAAAAg3AlaU0aIdAAAAiF8ErCgjYAEAAADxi4AVZQQsAAAAIH4RsKJo505pyxYCFgAAABCvCFhRRIt2AAAAIL4RsKKIRYYBAACA+EbAiiICFgAAABDfCFhRlJ0tJSdLBxzgdSUAAAAAIoGAFUXZ2VLr1lJKiteVAAAAAIgEAlYU0aIdAAAAiG8ErCgiYAEAAADxjYAVJT6fa9NOwAIAAADiFwErSjZskPLyCFgAAABAPCNgRQkt2gEAAID4R8CKEgIWAAAAEP8IWFFCwAIAAADiHwErSrKzpQYNpIYNva4EAAAAQKQQsKKEFu0AAABA/CNgRQkBCwAAAIh/BKwoIWABAAAA8Y+AFQW7d0ubNhGwAAAAgHhHwIqC1avdOQELAAAAiG8ErCgItGhv29bbOgAAAABEFgErClgDCwAAAEgMBKwoyM6WjJFat/a6EgAAAACRRMCKguxs6cADpRo1vK4EAAAAQCQRsKKAFu0AAABAYiBgRQEBCwAAAEgMBKwIs9a1aSdgAQAAAPGPgBVhGzdKOTkELAAAACARELAijBbtAAAAQOIgYEUYAQsAAABIHASsCCNgAQAAAImDgBVh2dlS3bpS48ZeVwIAAAAg0ghYERZo0W6M15UAAAAAiDQCVoSxBhYAAACQOAhYEUbAAgAAABIHASuC9u6VNmwgYAEAAACJgoAVQWvWuHMCFgAAAJAYCFgRRIt2AAAAILEQsCKIgAUAAAAkFgJWBGVnu/bsrVt7XQkAAACAaCBgRVB2ttSqlVSzpteVAAAAAIgGAlYE0aIdAAAASCwErAgiYAEAAACJhYAVIdYSsAAAAIBEQ8CKkM2bpT17CFgAAABAIiFgRQgt2gEAAIDEQ8CKEAIWAAAAkHgIWBFCwAIAAAASDwErQrKzpdq1paZNva4EAAAAQLQQsCIk0EHQGK8rAQAAABAtBKwIoUU7AAAAkHgIWBFCwAIAAAASDwErAnJypHXrpLZtva4EAAAAQDQRsCJg7Vp3zggWAAAAkFgIWBFAi3YAAAAgMRGwIoCABQAAACQmAlYEBAJWmzbe1gEAAAAgukIKWMaYgcaYZcaY5caYMSXcn26M+dQYs8gYM9sY06bY/Q2MMWuMMY+Fq/BYlp0ttWjhFhoGAAAAkDjKDVjGmGRJj0saJKmrpOHGmK7FHjZB0hRrbTdJ4yXdW+z+uyTNqXq51QMt2gEAAIDEFMoI1hGSlltrV1prcyVNkzSk2GO6Sprlv/xZ8P3GmN6SWkr6b9XLrR4IWAAAAEBiCiVgtZa0Ouj6Gv9twX6QNMx/eaik+saYpsaYJEn/lnRzVQutLqyVVq8mYAEAAACJKFxNLm6WdJwxZoGk4yStlVQg6WpJM6y1a8p6sjHmcmNMpjEmc+PGjWEqyRtbt0o7dxKwAAAAgESUEsJj1kpqG3S9jf+2fay1v8k/gmWMqSfpLGvtVmPMUZL6G2OullRPUqoxZqe1dkyx50+SNEmSMjIybGXfTCygRTsAAACQuEIJWHMldTLGtJcLVudL+lPwA4wxzSRtsdb6JN0q6TlJstZeEPSYUZIyioereEPAAgAAABJXuVMErbX5kq6VNFPS/yS9Zq1dbIwZb4w5w/+wAZKWGWN+lmtocU+E6o15BCwAAAAgcYUygiVr7QxJM4rdNjbo8huS3ijnNSZLmlzhCquZ7GypZk2peXOvKwEAAAAQbeFqcgG/7GypbVspiZ8sAAAAkHCIAWHGGlgAAABA4iJghRkBCwAAAEhcBKwwysuTfvuNgAUAAAAkKgJWGP32m+TzEbAAAACAREXACiNatAMAAACJjYAVRgQsAAAAILERsMIoELDatvW2DgAAAADeIGCFUXa21KyZVKeO15UAAAAA8AIBK4xo0Q4AAAAkNgJWGBGwAAAAgMRGwAojAhYAAACQ2AhYYfL/7d1tkGRneR7g+9GuFuv7A63Eop0AcYCyQhEBG4UkgDAELBGXFITtQDkVCElRcUICJCQFIeUPUZS/cOI/LruwIYkxBhMMDjiVIBmQnR+AWYEkJAsJYUu9u5JWAoGEkI20u29+9BnSWk/P9Mz0nNObua6qrj7dfXqfp7tn3jl3n7PvefDB5KGHBCwAANjOBKw5MUU7AAAgYM2JgAUAAAhYcyJgAQAAAtacjEbJyScnF1wwdCcAAMBQBKw5GY2SpaXkJO8oAABsW+LAnJiiHQAAELDmZHkPFgAAsH0JWHNw5Ehy6JA9WAAAsN0JWHNwzz3J0aMCFgAAbHcC1hyYoh0AAEgErLkQsAAAgETAmovlgGWSCwAA2N4ErDkYjZJzzknOOGPoTgAAgCEJWHNw4IDDAwEAAAFrLpxkGAAASASsuRCwAACARMDatG9/O/nmNwUsAABAwNq0AwfG1wIWAAAgYG2Sc2ABAADLBKxNErAAAIBlAtYmjUbJjh3Jnj1DdwIAAAxNwNqk0SjZu3ccsgAAgO1NwNokU7QDAADLBKxNErAAAIBlAtYmHD2aHDwoYAEAAGMC1iYcPpw89piABQAAjAlYm2CKdgAAYJKAtQkCFgAAMEnA2gQBCwAAmCRgbcJolJx1VnLmmUN3AgAALAIBaxNM0Q4AAEwSsDZBwAIAACYJWJsgYAEAAJMErA36zneSb3xDwAIAAP4fAWuDDhwYXwtYAADAMgFrg0zRDgAAHE/A2iABCwAAOJ6AtUGjUXLSScmTnzx0JwAAwKIQsDZoNEouvDDZuXPoTgAAgEUhYG3QaJQsLQ3dBQAAsEgErA1yDiwAAOB4AtYGHDs2nqZdwAIAACYJWBtw333Jo48KWAAAwOMJWBtginYAAGAlAtYGCFgAAMBKBKwNELAAAICVCFgbcOBAcvrpydlnD90JAACwSASsDVieor1q6E4AAIBFMlPAqqrLquq2qrqjqt62wuNPqapPVdVNVXVdVe3t7r+4qj5bVbd0j/3Deb+AITgHFgAAsJI1A1ZV7UjyK0kuT3JRktdU1UXHrfbuJL/ZWnt2kquT/Gx3/yNJ/nFr7a8nuSzJL1fV2XPqfTACFgAAsJJZ9mBdkuSO1tqfttYeTfKhJFcet85FST7dLX9m+fHW2u2tta92y3cnuS/J7nk0PpQ///PxebAELAAA4HizBKwLkxyYuH2wu2/SjUmu6pZfmeSMqnri5ApVdUmSXUm+dnyBqnpDVe2vqv3333//rL0P4uDB8bWABQAAHG9ek1y8NcmlVfWlJJcmOZTk6PKDVbUnyfuT/JPW2rHjn9xae09rbV9rbd/u3Yu9g8sU7QAAwDQ7Z1jnUJKlidt7u/u+pzv876okqarTk7yqtfat7vaZSf5nkne01j43h54HJWABAADTzLIH6wtJnl5VT6uqXUleneTjkytU1XlVtfxvvT3J+7r7dyX5WMYTYHxkfm0PZzQaT89+4fEHSQIAANvemgGrtXYkyRuTfDLJrUk+3Fq7paqurqorutVenOS2qro9yQVJ3tXd/2NJXpTkdVV1Q3e5eM6voVejUbJnT7Jr19CdAAAAi6Zaa0P38Dj79u1r+/fvH7qNqV72suThh5PPfnboTgAAgK1UVde31vat5znzmuRi23AOLAAAYBoBax1aE7AAAIDpBKx1+PrXk7/4CwELAABYmYC1DqZoBwAAViNgrYOABQAArEbAWgcBCwAAWI2AtQ6jUXLqqcm55w7dCQAAsIgErHVYnkGwauhOAACARSRgrYMp2gEAgNUIWOsgYAEAAKsRsGb03e8m994rYAEAANMJWDM6eHB8LWABAADTCFgzMkU7AACwFgFrRgIWAACwFgFrRssBa+/eYfsAAAAWl4A1o9EoueCC5AlPGLoTAABgUQlYMzJFOwAAsBYBa0YCFgAAsBYBawatCVgAAMDaBKwZPPBA8sgjAhYAALA6AWsGpmgHAABmIWDN4MCB8bWABQAArEbAmoE9WAAAwCwErBmMRuPzX+3ePXQnAADAIhOwZrA8g2DV0J0AAACLTMCagSnaAQCAWQhYMxCwAACAWQhYa3jsseTuuwUsAABgbQLWGg4dSloTsAAAgLUJWGswRTsAADArAWsNAhYAADArAWsNywFraWnYPgAAgMUnYK1hNBqfYPiUU4buBAAAWHQC1hpM0Q4AAMxKwFqDgAUAAMxKwFpFa8lddwlYAADAbASsVTz4YPLwwwIWAAAwGwFrFaZoBwAA1kPAWoWABQAArIeAtQoBCwAAWA8BaxWjUbJrV3L++UN3AgAAnAgErFWMRsnSUnKSdwkAAJiB6LAK58ACAADWQ8BahYAFAACsh4A1xZEjyaFDAhYAADA7AWuKu+9Ojh0TsAAAgNkJWFOYoh0AAFgvAWuK5YC1tDRsHwAAwIlDwJpCwAIAANZLwJpiNErOPTc5/fShOwEAAE4UAtYUpmgHAADWS8CaQsACAADWS8CaQsACAADWS8BawUMPJQ8+KGABAADrI2Ct4MCB8bWABQAArIeAtQInGQYAADZCwFqBgAUAAGyEgLWC0SjZuTN50pOG7gQAADiRCFgrGI2SvXuTHTuG7gQAADiRCFgrMEU7AACwETMFrKq6rKpuq6o7quptKzz+lKr6VFXdVFXXVdXeicdeW1Vf7S6vnWfzW0XAAgAANmLNgFVVO5L8SpLLk1yU5DVVddFxq707yW+21p6d5OokP9s999wkP5XkbyW5JMlPVdU582t//o4eTQ4eFLAAAID1m2UP1iVJ7mit/Wlr7dEkH0py5XHrXJTk093yZyYe/6Ek17bWHmitfTPJtUku23zbW+fee5MjRwQsAABg/WYJWBcmOTBx+2B336Qbk1zVLb8yyRlV9cQZn5uqekNV7a+q/ffff/+svW8JU7QDAAAbNa9JLt6a5NKq+lKSS5McSnJ01ie31t7TWtvXWtu3e/fuObW0MQIWAACwUTtnWOdQkqWJ23u7+76ntXZ3uj1YVXV6kle11r5VVYeSvPi45163iX633HLAWlpafT0AAIDjzbIH6wtJnl5VT6uqXUleneTjkytU1XlVtfxvvT3J+7rlTyZ5eVWd001u8fLuvoU1GiVnn52ceebQnQAAACeaNQNWa+1IkjdmHIxuTfLh1totVXV1VV3RrfbiJLdV1e1JLkjyru65DyR5Z8Yh7QtJru7uW1imaAcAADaqWmtD9/A4+/bta/v37x+s/nOek+zdm3ziE4O1AAAALICqur61tm89z5nXJBf/37AHCwAA2CgBa8LDDycPPCBgAQAAGyNgTTjQnbFLwAIAADZCwJrgHFgAAMBmCFgTBCwAAGAzBKwJo1GyY0eyZ8/QnQAAACciAWvCaJRceGGyc+fQnQAAACciAWuCKdoBAIDNELAmCFgAAMBmCFidY8fG07QLWAAAwEYJWJ3Dh5PHHhOwAACAjROwOstTtC8tDdsHAABw4hKwOs6BBQAAbJaA1RGwAACAzRKwOqNRcsYZyVlnDd0JAABwonJK3c6P/EjyrGclVUN3AgAAnKgErM4LXzi+AAAAbJRDBAEAAOZEwAIAAJgTAQsAAGBOBCwAAIA5EbAAAADmRMACAACYEwELAABgTgQsAACAORGwAAAA5kTAAgAAmBMBCwAAYE4ELAAAgDkRsAAAAOZEwAIAAJgTAQsAAGBOBCwAAIA5qdba0D08TlXdn+SuofsY0HlJvq7+oIbuYbvXX4Qetnv9Rehhu9dfhB62e/1F6GG711+EHrZ7/UXoYej6z2ytnbGeJ+zcqk42qrW2e+gehlRV+1tr+9QfztA9bPf6i9DDdq+/CD1s9/qL0MN2r78IPWz3+ovQw3avvwg9LEL99T7HIYIAAABzImABAADMiYC1eN6j/uCG7mG710+G72G710+G72G710+G72G710+G72G710+G72G710+G7+GEq79wk1wAAACcqOzBAgAAmBMBCwAAYE4ErAVQVe+rqvuq6uaB6i9V1Weq6k+q6paqetMAPXxfVf1xVd3Y9fAzfffQ9bGjqr5UVb8/QO07q+rLVXXDRqYEnVMPZ1fVR6rqK1V1a1X97R5rP7N77cuXh6rqzX3V73p4S/fzd3NVfbCqvq/P+l0Pb+rq39LH619p/Kmqc6vq2qr6and9zgA9/Gj3Hhyrqi2dnndK/V/sfg9uqqqPVdXZPdd/Z1f7hqq6pqqevFX1p/Uw8di/rapWVef1Wb+qfrqqDk2MCa/os353/7/qfg5uqapf2Kr603qoqt+ZeP13VtUNPde/uKo+t/x3qaou6bn+36iqz3Z/Gz9RVWduYf0Vt4X6HA9X6aGX8XCV+r2Mh6vU7208nNbDxOOzjYetNZeBL0lelOS5SW4eqP6eJM/tls9IcnuSi3ruoZKc3i2fnOTzSZ4/wHvxb5L8dpLfH6D2nUnOG+JnYKKH/5bkn3XLu5KcPVAfO5Lcm+QpPda8MMmfJTmlu/3hJK/r+XU/K8nNSU7N+DyFf5Dkr21xzb80/iT5hSRv65bfluTnB+jhB5I8M8l1SfYNUP/lSXZ2yz+/le/BlPpnTiz/6yS/1vd70N2/lOSTSe7ayvFpynvw00neupWve436P9j9Dj6hu33+EJ/BxOO/lOQne34Prklyebf8iiTX9Vz/C0ku7ZZfn+SdW1h/xW2hPsfDVXroZTxcpX4v4+Eq9XsbD6f10N2eeTy0B2sBtNb+KMkDA9a/p7X2xW7520luzXhjs88eWmvt4e7myd2l1xlYqmpvkr+f5Df6rLsoquqsjP/AvTdJWmuPtta+NVA7L03ytdbaXT3X3ZnklKramXHIubvn+j+Q5POttUdaa0eS/GGSq7ay4JTx58qMw3a663/Qdw+ttVtba7dtZd016l/TfQZJ8rkke3uu/9DEzdOyxePhKn+H/nOSfz9g/V5Mqf8TSX6utfbdbp37BughSVJVleTHknyw5/otyfJeo7OyhWPilPrPSPJH3fK1SV61hfWnbQv1Nh5O66Gv8XCV+r2Mh6vU7208XGObeObxUMDicarqqUmek/EepL5r7+gOf7gvybWttb57+OWMf3GO9Vx3WUtyTVVdX1VvGKD+05Lcn+S/1Pgwyd+oqtMG6CNJXp0t3JBYSWvtUJJ3JxkluSfJg621a/rsIeO9Vy+sqidW1akZf2O81HMPSXJBa+2ebvneJBcM0MMieX2S/9V30ap6V1UdSPLjSX5ygPpXJjnUWrux79oT3tgdGvS+rTw0a4pnZPz7+Pmq+sOq+ps915/0wiSHW2tf7bnum5P8Yvdz+O4kb++5/i0ZB5wk+dH0NB4ety00yHg45PbYGvV7GQ+Prz/EeDjZw3rHQwGL76mq05P8bpI3H/dtQS9aa0dbaxdn/M3IJVX1rL5qV9UPJ7mvtXZ9XzVX8ILW2nOTXJ7kX1bVi3quvzPjwzN+tbX2nCTfyfhwiF5V1a4kVyT57z3XPSfjP+RPS/LkJKdV1T/qs4fW2q0ZH35xTZL/neSGJEf77GGFnlp63pu8SKrqHUmOJPlA37Vba+9orS11td/YZ+0u4P+HDBDsJvxqku9PcnHGX3r8Us/1dyY5N8nzk/y7JB/u9iQN4TXp+Uunzk8keUv3c/iWdEc49Oj1Sf5FVV2f8eFaj251wdW2hfoaD4feHptWv6/xcKX6fY+Hkz1k/JrXNR4KWCRJqurkjH+QPtBa++iQvXSHpX0myWU9lv27Sa6oqjuTfCjJS6rqt3qsv7wHZfkwlI8l2bL/TDzFwSQHJ/YcfiTjwNW3y5N8sbV2uOe6fy/Jn7XW7m+tPZbko0n+Ts89pLX23tba81prL0ryzYyP/+7b4arakyTd9ZYeGrWoqup1SX44yY93G1ZD+UC28NCoKb4/4y8bbuzGxb1JvlhVT+qrgdba4e6Lt2NJfj3DjIkf7Q5h/+OMj27Ysok+pukOWb4qye/0XTvJazMeC5Pxl169fgatta+01l7eWntexgHza1tZb8q2UK/j4dDbY9Pq9zUezvD6t3w8XKGHdY+HAhbLx3a/N8mtrbX/NFAPu5dnpamqU5K8LMlX+qrfWnt7a21va+2pGR+e9unWWm97L6rqtKo6Y3k54/9Q2uuskq21e5McqKpndne9NMmf9NlDZ6hvakdJnl9Vp3a/Ey/N+NjrXlXV+d31X8l4o+q3++4hyccz3rBKd/0/BuhhUFV1WcaHDF/RWntkgPpPn7h5ZXocD5Oktfbl1tr5rbWnduPiwYz/4/e9ffWwvFHbeWV6HhOT/F7GE12kqp6R8cQ/X++5h2T85c9XWmsHB6h9d5JLu+WXJOn1EMWJ8fCkJP8xya9tYa1p20K9jYdDb49Nq9/XeLhK/d7Gw5V62NB42LZoFg6Xdc1Y8sGMD394rPvQ/mnP9V+Q8S7vmzI+JOmGJK/ouYdnJ/lS18PN2cKZkmbo5cXpeRbBJH81yY3d5ZYk7xjotV+cZH/3OfxeknN6rn9akm8kOWug1/8zGQ/cNyd5f7rZw3ru4f9kHGxvTPLSHur9pfEnyROTfCrjjak/SHLuAD28slv+bpLDST7Zc/07khyYGBO3ctaqler/bvdzeFOST2T8H717/QyOe/zObO0sgiu9B+9P8uXuPfh4kj0919+V5Le6z+GLSV4yxGeQ5L8m+edbWXuV9+AFSa7vxqPPJ3lez/XflPFe/NuT/FyS2sL6K24L9TkertJDL+PhKvV7GQ9Xqd/beDith+PWWXM8rG5FAAAANskhggAAAHMiYAEAAMyJgAUAADAnAhYAAMCcCFgAAABzImABAADMiYAFAAAwJ/8XAscjq+3rLscAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 864x864 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# plot data\n",
"fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(12, 12))\n",
"ax1.plot(history.history['loss'], color='b', label=\"Training loss\")\n",
"ax1.plot(history.history['val_loss'], color='r', label=\"Validation loss\")\n",
"ax1.set_xticks(np.arange(1, 25, 1))\n",
"ax1.legend(loc='best', shadow=True)\n",
"\n",
"ax2.plot(history.history['accuracy'], color='b', label=\"Training accuracy\")\n",
"ax2.plot(history.history['val_accuracy'], color='r',label=\"Validation accuracy\")\n",
"ax2.set_xticks(np.arange(1, 25, 1))\n",
"ax2.legend(loc='best', shadow=True)\n",
"\n",
"plt.tight_layout()\n",
"plt.show()"
]
}
],
"metadata": {
"colab": {
"collapsed_sections": [],
"name": "lab1.ipynb",
"provenance": []
},
"interpreter": {
"hash": "2db524e06e9f5f4ffedc911c917cb75e12dbc923643829bf417064a77eb14d37"
},
"kernelspec": {
"display_name": "Python 3.8.5 64-bit",
"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.8.6"
}
},
"nbformat": 4,
"nbformat_minor": 0
}