{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "25dceb5e", "metadata": { "execution": { "iopub.execute_input": "2025-09-30T07:52:30.891679Z", "iopub.status.busy": "2025-09-30T07:52:30.891481Z", "iopub.status.idle": "2025-09-30T07:52:53.502688Z", "shell.execute_reply": "2025-09-30T07:52:53.501755Z" }, "papermill": { "duration": 22.615314, "end_time": "2025-09-30T07:52:53.503953", "exception": false, "start_time": "2025-09-30T07:52:30.888639", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2025-09-30 07:52:34.084452: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:477] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n", "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n", "E0000 00:00:1759218754.451692 19 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n", "E0000 00:00:1759218754.555147 19 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "TensorFlow Version: 2.18.0\n" ] } ], "source": [ "# ==============================================================================\n", "# SCRIPT -- AlexNet with a Memory-Safe Data Pipeline\n", "# ==============================================================================\n", "# This script contains all the corrected code to:\n", "# 1. Load CIFAR-10 and create a memory-safe tf.data pipeline for resizing.\n", "# 2. Build the Keras model of the AlexNet architecture.\n", "# 3. Train the model using the efficient pipeline.\n", "# 4. Evaluate and plot the results.\n", "#\n", "\n", "import tensorflow as tf\n", "from tensorflow.keras.datasets import cifar10\n", "from tensorflow.keras.models import Sequential\n", "from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout, BatchNormalization\n", "from tensorflow.keras.utils import to_categorical\n", "from tensorflow.keras.callbacks import ReduceLROnPlateau, EarlyStopping\n", "from tensorflow.keras.regularizers import l2\n", "import matplotlib.pyplot as plt\n", "\n", "print(\"TensorFlow Version:\", tf.__version__)\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "53d7e29b", "metadata": { "execution": { "iopub.execute_input": "2025-09-30T07:52:53.508760Z", "iopub.status.busy": "2025-09-30T07:52:53.508300Z", "iopub.status.idle": "2025-09-30T07:52:58.246938Z", "shell.execute_reply": "2025-09-30T07:52:58.246289Z" }, "papermill": { "duration": 4.742368, "end_time": "2025-09-30T07:52:58.248379", "exception": false, "start_time": "2025-09-30T07:52:53.506011", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Downloading data from https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz\n", "\u001b[1m170498071/170498071\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 0us/step\n" ] } ], "source": [ "## --------------------------------------\n", "## 1. DATA LOADING AND PARAMETERS\n", "## --------------------------------------\n", "(x_train, y_train), (x_test, y_test) = cifar10.load_data()\n", "\n", "# Normalize pixel values and one-hot encode the labels\n", "x_train = x_train.astype('float32') / 255.0\n", "x_test = x_test.astype('float32') / 255.0\n", "y_train = to_categorical(y_train, 10)\n", "y_test = to_categorical(y_test, 10)\n", "\n", "# Define parameters\n", "NUM_CLASSES = 10\n", "IMG_SIZE = 224\n", "BATCH_SIZE = 128\n", "L2_LAMBDA = 0.0005 # Weight decay\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "9f3c563f", "metadata": { "execution": { "iopub.execute_input": "2025-09-30T07:52:58.256927Z", "iopub.status.busy": "2025-09-30T07:52:58.256677Z", "iopub.status.idle": "2025-09-30T07:53:02.339184Z", "shell.execute_reply": "2025-09-30T07:53:02.338312Z" }, "papermill": { "duration": 4.088064, "end_time": "2025-09-30T07:53:02.340471", "exception": false, "start_time": "2025-09-30T07:52:58.252407", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "I0000 00:00:1759218779.943116 19 gpu_device.cc:2022] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 13942 MB memory: -> device: 0, name: Tesla T4, pci bus id: 0000:00:04.0, compute capability: 7.5\n", "I0000 00:00:1759218779.943819 19 gpu_device.cc:2022] Created device /job:localhost/replica:0/task:0/device:GPU:1 with 13942 MB memory: -> device: 1, name: Tesla T4, pci bus id: 0000:00:05.0, compute capability: 7.5\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Building memory-safe data pipelines with augmentation...\n", "Data pipelines created successfully.\n" ] } ], "source": [ "## --------------------------------------\n", "## 2. IMPROVED DATA PIPELINE WITH AUGMENTATION\n", "## --------------------------------------\n", "# Create a sequential model for data augmentation\n", "data_augmentation = Sequential([\n", " tf.keras.layers.RandomFlip(\"horizontal\"),\n", " tf.keras.layers.RandomRotation(0.1),\n", " tf.keras.layers.RandomZoom(0.1),\n", "])\n", "\n", "# Function to resize images\n", "def resize_image(image, label):\n", " image = tf.image.resize(image, (IMG_SIZE, IMG_SIZE))\n", " return image, label\n", "\n", "# Function to apply augmentation to the training set\n", "def augment_and_resize(image, label):\n", " image = tf.image.resize(image, (IMG_SIZE, IMG_SIZE))\n", " image = data_augmentation(tf.expand_dims(image, 0), training=True)[0]\n", " return image, label\n", "\n", "# Create efficient tf.data pipelines\n", "print(\"Building memory-safe data pipelines with augmentation...\")\n", "train_dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train))\n", "test_dataset = tf.data.Dataset.from_tensor_slices((x_test, y_test))\n", "\n", "# Apply shuffling and augmentation to the training set\n", "train_dataset = train_dataset.shuffle(buffer_size=10000)\n", "train_dataset = train_dataset.map(augment_and_resize, num_parallel_calls=tf.data.AUTOTUNE)\n", "\n", "# Only apply resizing to the test set\n", "test_dataset = test_dataset.map(resize_image, num_parallel_calls=tf.data.AUTOTUNE)\n", "\n", "# Batch and prefetch both datasets for performance\n", "train_dataset = train_dataset.batch(BATCH_SIZE).prefetch(buffer_size=tf.data.AUTOTUNE)\n", "test_dataset = test_dataset.batch(BATCH_SIZE).prefetch(buffer_size=tf.data.AUTOTUNE)\n", "print(\"Data pipelines created successfully.\")\n", "\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "7878835f", "metadata": { "execution": { "iopub.execute_input": "2025-09-30T07:53:02.348678Z", "iopub.status.busy": "2025-09-30T07:53:02.348130Z", "iopub.status.idle": "2025-09-30T07:53:04.171940Z", "shell.execute_reply": "2025-09-30T07:53:04.171373Z" }, "papermill": { "duration": 1.828828, "end_time": "2025-09-30T07:53:04.172934", "exception": false, "start_time": "2025-09-30T07:53:02.344106", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of devices: 2\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python3.11/dist-packages/keras/src/layers/convolutional/base_conv.py:107: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.\n", " super().__init__(activity_regularizer=activity_regularizer, **kwargs)\n" ] }, { "data": { "text/html": [ "
Model: \"sequential_1\"\n",
"\n"
],
"text/plain": [
"\u001b[1mModel: \"sequential_1\"\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
"┃ Layer (type) ┃ Output Shape ┃ Param # ┃\n",
"┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
"│ conv2d (Conv2D) │ (None, 54, 54, 96) │ 34,944 │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ batch_normalization │ (None, 54, 54, 96) │ 384 │\n",
"│ (BatchNormalization) │ │ │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ max_pooling2d (MaxPooling2D) │ (None, 26, 26, 96) │ 0 │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ conv2d_1 (Conv2D) │ (None, 26, 26, 256) │ 614,656 │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ batch_normalization_1 │ (None, 26, 26, 256) │ 1,024 │\n",
"│ (BatchNormalization) │ │ │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ max_pooling2d_1 (MaxPooling2D) │ (None, 12, 12, 256) │ 0 │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ conv2d_2 (Conv2D) │ (None, 12, 12, 384) │ 885,120 │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ conv2d_3 (Conv2D) │ (None, 12, 12, 384) │ 1,327,488 │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ conv2d_4 (Conv2D) │ (None, 12, 12, 256) │ 884,992 │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ max_pooling2d_2 (MaxPooling2D) │ (None, 5, 5, 256) │ 0 │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ flatten (Flatten) │ (None, 6400) │ 0 │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense (Dense) │ (None, 4096) │ 26,218,496 │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dropout (Dropout) │ (None, 4096) │ 0 │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_1 (Dense) │ (None, 4096) │ 16,781,312 │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dropout_1 (Dropout) │ (None, 4096) │ 0 │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_2 (Dense) │ (None, 10) │ 40,970 │\n",
"└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
"\n"
],
"text/plain": [
"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
"┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\n",
"┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
"│ conv2d (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m54\u001b[0m, \u001b[38;5;34m54\u001b[0m, \u001b[38;5;34m96\u001b[0m) │ \u001b[38;5;34m34,944\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ batch_normalization │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m54\u001b[0m, \u001b[38;5;34m54\u001b[0m, \u001b[38;5;34m96\u001b[0m) │ \u001b[38;5;34m384\u001b[0m │\n",
"│ (\u001b[38;5;33mBatchNormalization\u001b[0m) │ │ │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ max_pooling2d (\u001b[38;5;33mMaxPooling2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m26\u001b[0m, \u001b[38;5;34m26\u001b[0m, \u001b[38;5;34m96\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ conv2d_1 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m26\u001b[0m, \u001b[38;5;34m26\u001b[0m, \u001b[38;5;34m256\u001b[0m) │ \u001b[38;5;34m614,656\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ batch_normalization_1 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m26\u001b[0m, \u001b[38;5;34m26\u001b[0m, \u001b[38;5;34m256\u001b[0m) │ \u001b[38;5;34m1,024\u001b[0m │\n",
"│ (\u001b[38;5;33mBatchNormalization\u001b[0m) │ │ │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ max_pooling2d_1 (\u001b[38;5;33mMaxPooling2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m12\u001b[0m, \u001b[38;5;34m12\u001b[0m, \u001b[38;5;34m256\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ conv2d_2 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m12\u001b[0m, \u001b[38;5;34m12\u001b[0m, \u001b[38;5;34m384\u001b[0m) │ \u001b[38;5;34m885,120\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ conv2d_3 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m12\u001b[0m, \u001b[38;5;34m12\u001b[0m, \u001b[38;5;34m384\u001b[0m) │ \u001b[38;5;34m1,327,488\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ conv2d_4 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m12\u001b[0m, \u001b[38;5;34m12\u001b[0m, \u001b[38;5;34m256\u001b[0m) │ \u001b[38;5;34m884,992\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ max_pooling2d_2 (\u001b[38;5;33mMaxPooling2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m5\u001b[0m, \u001b[38;5;34m5\u001b[0m, \u001b[38;5;34m256\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ flatten (\u001b[38;5;33mFlatten\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m6400\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m4096\u001b[0m) │ \u001b[38;5;34m26,218,496\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dropout (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m4096\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_1 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m4096\u001b[0m) │ \u001b[38;5;34m16,781,312\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dropout_1 (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m4096\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_2 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m10\u001b[0m) │ \u001b[38;5;34m40,970\u001b[0m │\n",
"└─────────────────────────────────┴────────────────────────┴───────────────┘\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"Total params: 46,789,386 (178.49 MB)\n", "\n" ], "text/plain": [ "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m46,789,386\u001b[0m (178.49 MB)\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Trainable params: 46,788,682 (178.48 MB)\n", "\n" ], "text/plain": [ "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m46,788,682\u001b[0m (178.48 MB)\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Non-trainable params: 704 (2.75 KB)\n", "\n" ], "text/plain": [ "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m704\u001b[0m (2.75 KB)\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "## --------------------------------------\n", "## 3. MULTI-GPU SETUP, MODEL DEFINITION AND COMPILATION\n", "## --------------------------------------\n", "\n", "# 1. Create a MirroredStrategy to use all available GPUs\n", "strategy = tf.distribute.MirroredStrategy()\n", "print(f'Number of devices: {strategy.num_replicas_in_sync}')\n", "\n", "# 2. Define AND compile the model inside the strategy's scope\n", "with strategy.scope():\n", " # --- Model Definition ---\n", " model = Sequential([\n", " Conv2D(filters=96, kernel_size=(11, 11), strides=(4, 4), activation='relu',\n", " input_shape=(224, 224, 3), kernel_regularizer=l2(L2_LAMBDA)),\n", " BatchNormalization(),\n", " MaxPooling2D(pool_size=(3, 3), strides=(2, 2)),\n", "\n", " Conv2D(filters=256, kernel_size=(5, 5), padding='same', activation='relu', kernel_regularizer=l2(L2_LAMBDA)),\n", " BatchNormalization(),\n", " MaxPooling2D(pool_size=(3, 3), strides=(2, 2)),\n", "\n", " Conv2D(filters=384, kernel_size=(3, 3), padding='same', activation='relu', kernel_regularizer=l2(L2_LAMBDA)),\n", " Conv2D(filters=384, kernel_size=(3, 3), padding='same', activation='relu', kernel_regularizer=l2(L2_LAMBDA)),\n", " Conv2D(filters=256, kernel_size=(3, 3), padding='same', activation='relu', kernel_regularizer=l2(L2_LAMBDA)),\n", " MaxPooling2D(pool_size=(3, 3), strides=(2, 2)),\n", "\n", " Flatten(),\n", " Dense(4096, activation='relu', kernel_regularizer=l2(L2_LAMBDA)),\n", " Dropout(0.5),\n", " Dense(4096, activation='relu', kernel_regularizer=l2(L2_LAMBDA)),\n", " Dropout(0.5),\n", " Dense(NUM_CLASSES, activation='softmax')\n", " ])\n", " \n", " # --- Model Compilation with stable learning rate ---\n", " model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.0001),\n", " loss='categorical_crossentropy',\n", " metrics=['accuracy'])\n", "\n", "model.summary()\n", "\n" ] }, { "cell_type": "code", "execution_count": 5, "id": "f0d00ba2", "metadata": { "execution": { "iopub.execute_input": "2025-09-30T07:53:04.181749Z", "iopub.status.busy": "2025-09-30T07:53:04.181529Z", "iopub.status.idle": "2025-09-30T13:17:02.160896Z", "shell.execute_reply": "2025-09-30T13:17:02.160210Z" }, "papermill": { "duration": 19437.985181, "end_time": "2025-09-30T13:17:02.162287", "exception": false, "start_time": "2025-09-30T07:53:04.177106", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Starting model training on multiple GPUs...\n", "Epoch 1/100\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "I0000 00:00:1759218794.728912 63 cuda_dnn.cc:529] Loaded cuDNN version 90300\n", "I0000 00:00:1759218794.778591 62 cuda_dnn.cc:529] Loaded cuDNN version 90300\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m233s\u001b[0m 559ms/step - accuracy: nan - loss: nan - val_accuracy: 0.2552 - val_loss: 5.8087 - learning_rate: 1.0000e-04\n", "Epoch 2/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m219s\u001b[0m 559ms/step - accuracy: nan - loss: nan - val_accuracy: 0.5852 - val_loss: 3.8615 - learning_rate: 1.0000e-04\n", "Epoch 3/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m219s\u001b[0m 559ms/step - accuracy: nan - loss: nan - val_accuracy: 0.6959 - val_loss: 3.0414 - learning_rate: 1.0000e-04\n", "Epoch 4/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m219s\u001b[0m 559ms/step - accuracy: nan - loss: nan - val_accuracy: 0.6860 - val_loss: 2.6492 - learning_rate: 1.0000e-04\n", "Epoch 5/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m220s\u001b[0m 559ms/step - accuracy: nan - loss: nan - val_accuracy: 0.6390 - val_loss: 2.4970 - learning_rate: 1.0000e-04\n", "Epoch 6/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m219s\u001b[0m 558ms/step - accuracy: nan - loss: nan - val_accuracy: 0.7129 - val_loss: 2.0626 - learning_rate: 1.0000e-04\n", "Epoch 7/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m220s\u001b[0m 560ms/step - accuracy: nan - loss: nan - val_accuracy: 0.7493 - val_loss: 1.7856 - learning_rate: 1.0000e-04\n", "Epoch 8/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m220s\u001b[0m 559ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8115 - val_loss: 1.4895 - learning_rate: 1.0000e-04\n", "Epoch 9/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m219s\u001b[0m 558ms/step - accuracy: nan - loss: nan - val_accuracy: 0.7852 - val_loss: 1.4268 - learning_rate: 1.0000e-04\n", "Epoch 10/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m218s\u001b[0m 556ms/step - accuracy: nan - loss: nan - val_accuracy: 0.7644 - val_loss: 1.4600 - learning_rate: 1.0000e-04\n", "Epoch 11/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m219s\u001b[0m 557ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8105 - val_loss: 1.2222 - learning_rate: 1.0000e-04\n", "Epoch 12/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m219s\u001b[0m 558ms/step - accuracy: nan - loss: nan - val_accuracy: 0.7586 - val_loss: 1.3615 - learning_rate: 1.0000e-04\n", "Epoch 13/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m219s\u001b[0m 558ms/step - accuracy: nan - loss: nan - val_accuracy: 0.7883 - val_loss: 1.2408 - learning_rate: 1.0000e-04\n", "Epoch 14/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m220s\u001b[0m 559ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8324 - val_loss: 1.1125 - learning_rate: 1.0000e-04\n", "Epoch 15/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m219s\u001b[0m 558ms/step - accuracy: nan - loss: nan - val_accuracy: 0.7904 - val_loss: 1.2024 - learning_rate: 1.0000e-04\n", "Epoch 16/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m219s\u001b[0m 558ms/step - accuracy: nan - loss: nan - val_accuracy: 0.7932 - val_loss: 1.0645 - learning_rate: 1.0000e-04\n", "Epoch 17/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m219s\u001b[0m 559ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8227 - val_loss: 1.0313 - learning_rate: 1.0000e-04\n", "Epoch 18/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m220s\u001b[0m 559ms/step - accuracy: nan - loss: nan - val_accuracy: 0.7926 - val_loss: 1.0981 - learning_rate: 1.0000e-04\n", "Epoch 19/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m220s\u001b[0m 559ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8308 - val_loss: 1.0348 - learning_rate: 1.0000e-04\n", "Epoch 20/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m220s\u001b[0m 559ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8567 - val_loss: 0.9426 - learning_rate: 1.0000e-04\n", "Epoch 21/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m220s\u001b[0m 559ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8218 - val_loss: 0.9783 - learning_rate: 1.0000e-04\n", "Epoch 22/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 564ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8464 - val_loss: 0.9939 - learning_rate: 1.0000e-04\n", "Epoch 23/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m223s\u001b[0m 569ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8412 - val_loss: 0.9400 - learning_rate: 1.0000e-04\n", "Epoch 24/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 562ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8084 - val_loss: 1.0187 - learning_rate: 1.0000e-04\n", "Epoch 25/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m222s\u001b[0m 565ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8466 - val_loss: 0.8996 - learning_rate: 1.0000e-04\n", "Epoch 26/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 562ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8726 - val_loss: 0.8967 - learning_rate: 1.0000e-04\n", "Epoch 27/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 562ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8615 - val_loss: 0.9093 - learning_rate: 1.0000e-04\n", "Epoch 28/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m220s\u001b[0m 559ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8410 - val_loss: 0.9364 - learning_rate: 1.0000e-04\n", "Epoch 29/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m219s\u001b[0m 559ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8419 - val_loss: 0.9368 - learning_rate: 1.0000e-04\n", "Epoch 30/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m219s\u001b[0m 558ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8276 - val_loss: 0.9096 - learning_rate: 1.0000e-04\n", "Epoch 31/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 546ms/step - accuracy: nan - loss: nan\n", "Epoch 31: ReduceLROnPlateau reducing learning rate to 1.9999999494757503e-05.\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m220s\u001b[0m 560ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8550 - val_loss: 0.9027 - learning_rate: 1.0000e-04\n", "Epoch 32/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m220s\u001b[0m 561ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8930 - val_loss: 0.7861 - learning_rate: 2.0000e-05\n", "Epoch 33/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 562ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8812 - val_loss: 0.8005 - learning_rate: 2.0000e-05\n", "Epoch 34/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m220s\u001b[0m 562ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8729 - val_loss: 0.8099 - learning_rate: 2.0000e-05\n", "Epoch 35/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 563ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8778 - val_loss: 0.8201 - learning_rate: 2.0000e-05\n", "Epoch 36/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 563ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9026 - val_loss: 0.7591 - learning_rate: 2.0000e-05\n", "Epoch 37/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 562ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8860 - val_loss: 0.7798 - learning_rate: 2.0000e-05\n", "Epoch 38/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m220s\u001b[0m 561ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9032 - val_loss: 0.7319 - learning_rate: 2.0000e-05\n", "Epoch 39/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m220s\u001b[0m 561ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8908 - val_loss: 0.7586 - learning_rate: 2.0000e-05\n", "Epoch 40/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m224s\u001b[0m 570ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8902 - val_loss: 0.7364 - learning_rate: 2.0000e-05\n", "Epoch 41/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m220s\u001b[0m 560ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8834 - val_loss: 0.7415 - learning_rate: 2.0000e-05\n", "Epoch 42/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m220s\u001b[0m 561ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8871 - val_loss: 0.7632 - learning_rate: 2.0000e-05\n", "Epoch 43/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 547ms/step - accuracy: nan - loss: nan\n", "Epoch 43: ReduceLROnPlateau reducing learning rate to 3.999999898951501e-06.\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m220s\u001b[0m 561ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8909 - val_loss: 0.7529 - learning_rate: 2.0000e-05\n", "Epoch 44/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m220s\u001b[0m 562ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9057 - val_loss: 0.7150 - learning_rate: 4.0000e-06\n", "Epoch 45/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m220s\u001b[0m 561ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9038 - val_loss: 0.7067 - learning_rate: 4.0000e-06\n", "Epoch 46/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m220s\u001b[0m 560ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9002 - val_loss: 0.7188 - learning_rate: 4.0000e-06\n", "Epoch 47/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 562ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8998 - val_loss: 0.7029 - learning_rate: 4.0000e-06\n", "Epoch 48/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 563ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9077 - val_loss: 0.6989 - learning_rate: 4.0000e-06\n", "Epoch 49/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 563ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9058 - val_loss: 0.7022 - learning_rate: 4.0000e-06\n", "Epoch 50/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 563ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8998 - val_loss: 0.7106 - learning_rate: 4.0000e-06\n", "Epoch 51/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 563ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9068 - val_loss: 0.7060 - learning_rate: 4.0000e-06\n", "Epoch 52/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 562ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9024 - val_loss: 0.7031 - learning_rate: 4.0000e-06\n", "Epoch 53/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 548ms/step - accuracy: nan - loss: nan\n", "Epoch 53: ReduceLROnPlateau reducing learning rate to 1e-06.\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m220s\u001b[0m 562ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9057 - val_loss: 0.7074 - learning_rate: 4.0000e-06\n", "Epoch 54/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 563ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9044 - val_loss: 0.6993 - learning_rate: 1.0000e-06\n", "Epoch 55/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m220s\u001b[0m 562ms/step - accuracy: nan - loss: nan - val_accuracy: 0.8986 - val_loss: 0.7076 - learning_rate: 1.0000e-06\n", "Epoch 56/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 562ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9074 - val_loss: 0.6977 - learning_rate: 1.0000e-06\n", "Epoch 57/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 563ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9043 - val_loss: 0.6974 - learning_rate: 1.0000e-06\n", "Epoch 58/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 562ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9035 - val_loss: 0.6992 - learning_rate: 1.0000e-06\n", "Epoch 59/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 562ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9076 - val_loss: 0.6973 - learning_rate: 1.0000e-06\n", "Epoch 60/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 562ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9107 - val_loss: 0.6969 - learning_rate: 1.0000e-06\n", "Epoch 61/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 561ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9077 - val_loss: 0.6976 - learning_rate: 1.0000e-06\n", "Epoch 62/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m222s\u001b[0m 565ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9115 - val_loss: 0.6982 - learning_rate: 1.0000e-06\n", "Epoch 63/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 564ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9083 - val_loss: 0.6997 - learning_rate: 1.0000e-06\n", "Epoch 64/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m222s\u001b[0m 566ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9050 - val_loss: 0.6962 - learning_rate: 1.0000e-06\n", "Epoch 65/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m222s\u001b[0m 565ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9093 - val_loss: 0.6982 - learning_rate: 1.0000e-06\n", "Epoch 66/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 564ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9117 - val_loss: 0.6984 - learning_rate: 1.0000e-06\n", "Epoch 67/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 563ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9094 - val_loss: 0.6960 - learning_rate: 1.0000e-06\n", "Epoch 68/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 563ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9064 - val_loss: 0.7004 - learning_rate: 1.0000e-06\n", "Epoch 69/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m222s\u001b[0m 565ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9092 - val_loss: 0.6996 - learning_rate: 1.0000e-06\n", "Epoch 70/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 564ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9073 - val_loss: 0.6971 - learning_rate: 1.0000e-06\n", "Epoch 71/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 564ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9078 - val_loss: 0.6979 - learning_rate: 1.0000e-06\n", "Epoch 72/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m222s\u001b[0m 565ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9112 - val_loss: 0.6930 - learning_rate: 1.0000e-06\n", "Epoch 73/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m223s\u001b[0m 568ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9092 - val_loss: 0.6939 - learning_rate: 1.0000e-06\n", "Epoch 74/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m223s\u001b[0m 567ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9083 - val_loss: 0.6927 - learning_rate: 1.0000e-06\n", "Epoch 75/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m222s\u001b[0m 567ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9085 - val_loss: 0.6897 - learning_rate: 1.0000e-06\n", "Epoch 76/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m222s\u001b[0m 565ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9066 - val_loss: 0.6947 - learning_rate: 1.0000e-06\n", "Epoch 77/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m222s\u001b[0m 565ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9082 - val_loss: 0.6913 - learning_rate: 1.0000e-06\n", "Epoch 78/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m222s\u001b[0m 566ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9057 - val_loss: 0.6872 - learning_rate: 1.0000e-06\n", "Epoch 79/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m222s\u001b[0m 565ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9105 - val_loss: 0.6914 - learning_rate: 1.0000e-06\n", "Epoch 80/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m222s\u001b[0m 564ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9113 - val_loss: 0.6885 - learning_rate: 1.0000e-06\n", "Epoch 81/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m222s\u001b[0m 564ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9089 - val_loss: 0.6907 - learning_rate: 1.0000e-06\n", "Epoch 82/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m222s\u001b[0m 565ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9112 - val_loss: 0.6883 - learning_rate: 1.0000e-06\n", "Epoch 83/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m222s\u001b[0m 566ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9112 - val_loss: 0.6911 - learning_rate: 1.0000e-06\n", "Epoch 84/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m222s\u001b[0m 565ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9075 - val_loss: 0.6958 - learning_rate: 1.0000e-06\n", "Epoch 85/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m222s\u001b[0m 566ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9110 - val_loss: 0.6898 - learning_rate: 1.0000e-06\n", "Epoch 86/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m222s\u001b[0m 566ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9073 - val_loss: 0.6906 - learning_rate: 1.0000e-06\n", "Epoch 87/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m221s\u001b[0m 564ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9092 - val_loss: 0.6934 - learning_rate: 1.0000e-06\n", "Epoch 88/100\n", "\u001b[1m391/391\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m222s\u001b[0m 565ms/step - accuracy: nan - loss: nan - val_accuracy: 0.9077 - val_loss: 0.6919 - learning_rate: 1.0000e-06\n", "Epoch 88: early stopping\n", "Restoring model weights from the end of the best epoch: 78.\n", "Model training complete.\n" ] } ], "source": [ "## --------------------------------------\n", "## 4. TRAINING THE MODEL\n", "## --------------------------------------\n", "# Callbacks to stop training when performance worsens and to reduce the learning rate\n", "early_stopping = EarlyStopping(monitor='val_loss', patience=10, restore_best_weights=True, verbose=1)\n", "reduce_lr = ReduceLROnPlateau(monitor='val_loss', factor=0.2, patience=5, min_lr=1e-6, verbose=1)\n", "\n", "EPOCHS = 100\n", "\n", "print(\"\\nStarting model training on multiple GPUs...\")\n", "history = model.fit(\n", " train_dataset,\n", " epochs=EPOCHS,\n", " validation_data=test_dataset,\n", " callbacks=[early_stopping, reduce_lr]\n", ")\n", "print(\"Model training complete.\")\n", "\n" ] }, { "cell_type": "code", "execution_count": 6, "id": "4ae116ca", "metadata": { "execution": { "iopub.execute_input": "2025-09-30T13:17:05.224872Z", "iopub.status.busy": "2025-09-30T13:17:05.224574Z", "iopub.status.idle": "2025-09-30T13:17:10.487097Z", "shell.execute_reply": "2025-09-30T13:17:10.486383Z" }, "papermill": { "duration": 6.809009, "end_time": "2025-09-30T13:17:10.488230", "exception": false, "start_time": "2025-09-30T13:17:03.679221", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Evaluating model on the test set...\n", "79/79 - 4s - 52ms/step - accuracy: 0.9057 - loss: 0.6873\n", "\n", "Test Loss: 0.6873\n", "Test Accuracy: 90.57%\n", "\n", "Plotting training history...\n" ] }, { "data": { "image/png": "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yogRI0oVy4Xatm1b4Gd/f3+WLl3K4MGD6datGx07duT5558H4NSpU6WKMTIykssvv5xFixblvb9ixQq6d+9Ow4YNHY5RREREpDiefp9YGrGxsTRq1Ig6deoUiunAgQOkpqbSqVMnwsLCuP3225k7dy47d+7EYrHQsWNHgoKCCAsLo2PHjkybNo3/+7//Y/369WRlZdGmTZu8L01FpHLycXcAIlI5DRkyhHnz5vHLL79gs9k4fvw4N9xwQ6H9UlNTAQgJCSmwPTg4GCDvpuXcuXMEBgYW2CcoKKjQubKysujcuXOB7dnZ2YDRl+LiY4qyYMECzp07V+gGC4xvLK+//noAzp49W+z5zp49W2ScZXXx72jy5Mn88ssvTJ48me7duxMQEMC3335b4JHmJcUIMHLkSO6//34OHDhAREQEq1atYtq0aU6JWURERORinnyfWBqpqamFYr447oiICL744gveffdd3n//fV588UUiIyO57777GDFiBCaTiXfffZcPP/yQr7/+mrfeeouQkBBGjBjBo48+ip+fn1NiFRHnU6JMRIrUrl07mjZtyooVK/JuSurXr19ov9DQUCA/qWRn/9n+fkBAAOnp6UXuc+G5qlWrdsk+E/Xq1Ssx7k2bNrFnzx5eeeUVmjZtWuC933//nZdeeonk5GTq1q1LWFgY+/fvv+S5atWqBcCZM2cuuY/JZMrrr2GXlpZWYpypqal8//333HPPPdx5551523NycgrsV1KMAFdeeSUREREsX76cqKgoLBYL1157bYkxiIiIiJSFp94nllZoaGhen7GiYrInzBo0aMAzzzzDM888w19//cW8efOYOnUqDRo0oGfPngQFBXHfffdx3333cfToUZYtW8arr75KtWrVePjhh50Wr4g4l6ZeisglDRkyhF9++YWffvqpyHJ6MKYTms1mNmzYUGC7vedETEwMYEwX3LJlS4F9Nm7cWODnDh06kJ6ezvnz52ncuHHeq1q1aoSGhpbqm7cFCxYQGRnJwIEDad26dYHXiBEj8PPzy+upERUVxaFDhwrcCB06dIhRo0axceNGWrRogdlsZv369QWu8fTTT/PKK68AxjekZ86cyfs2Eyj0OYuSlZWFzWYrMKXSarWydOnSAvuVFCMYT6C6+eab+eqrr1i+fDlDhgzRt5QiIiLiUp54n1ha7dq14+DBgyQnJxeKu3nz5gQFBbFjxw7Wrl2b917Lli3517/+RXBwMDt37iQ5OblA0/46derwt7/9jd69e7Njxw6nxSoizqdEmYhc0pAhQzh+/Djnz58v0O/rQrVr12bYsGF5TwQ6ePAgq1ev5oUXXqB79+60a9cOgKFDh7Jt2zbefvtt9u/fz5o1a3j//fcLnKtfv35ERUUxefJkfvvtNxITE/nxxx+5/fbbefrpp0uMNzU1lZUrVzJw4MAi3w8KCuLKK6/M6+d10003UbNmTR577DHi4+PZuXMnzzzzDMnJybRu3ZratWtz44038s4777Bq1SoOHTrE3Llz+eKLL/I+V7t27cjKyuLNN9/k4MGDrFq1qshHpl+sZs2aNGnShIULF7Jr1y527NjBfffdlzedYMOGDaSmppYYo92IESPYt28f3333XZn6p4mIiIg4wtPuEy926tQpjh07VuB14sQJwOhtW6NGDR599FG2bt3K3r17mTVrFj/99FPeQwY2b97M/fffz5dffsnBgwc5ePAg7733HmlpaXTu3JkzZ84wadIkZs6cye7du0lKSmLVqlX88ccfhfqsiUjloqmXInJJDRo0oHPnzoSGhlKjRo1L7jdt2jTCwsL4z3/+w7Fjx6hZsybXXHMNkyZNyttn9OjRJCcnM3fuXGbPnk10dDTPPfdcgaSOn58f77//Pv/5z3+YNGkSp0+fJjw8nEGDBvHQQw+VGO9XX31FWlpakY8mtxs4cCDffPMN69evp1u3bsybN48XX3yRW2+9FT8/Pzp16sTcuXPzelw8++yz1KxZk2effZbTp0/TuHFjZs6cyVVXXZV3vs2bN/PJJ5/wzjvv0LFjR5577rliY7B7+eWXmTZtGiNGjKBu3bqMHz+eoUOH8tdffzF9+nR8fHy4+eabS4wRoG7dunTq1ImsrCyioqJKvLaIiIhIeXjafeLFbrvttkLbQkJC2LhxI2FhYcybN49///vf3HXXXWRkZNCsWTNeeuklbrzxRgBGjRrF+fPneeedd/jXv/6Fr68vLVq04NVXX81LAL755pu88cYbfPzxx1itViIjIxk3bhxjx451OF4RqTgm28XNdURExOMkJydzzTXX8O9///uS3+qKiIiIiIhI8ZQoExHxYKdPn+bQoUM888wz+Pn58dFHH2E2a1a9iIiIiIhIWehfUyIiHuzll19m9OjRhIeHM2vW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uPl+Tk4O+/fvZ/ny5dx9991OC8zjqKJMREREvNSnn37KihUrSExMxGQy0ahRI4YNG8aQIUPcHZpr5CXK1KNMRESkqnE4UXb55ZcXuf3KK69kypQpXHvtteUOyuPk5IA101hXokxERES8yH//+18WLFjA0KFDGTx4MAB79uxhxowZpKWlMXLkSDdH6AJ5zfxVUSYiIlLVOJwou5SIiAjvbfRvzchf19RLERER8SILFy5kzpw5tG7dusD2gQMH8sQTT1TNRJm9ouzccbBmgcXXvfGIiIiI0zicKJs/f36hbefPn+fHH3+kUaNGTgnK49inXYIqykRERMSrpKam0rJly0Lbo6OjOXr0qBsiqgCB4WCygM0KqUeheqS7IxIREREncThR9tZbbxXa5u/vT+PGjXnppZecEpTHsTfyN1nA4rQiPREREZFKr2XLlixYsKBQ5djChQtp3Lixm6JyMbPZmH559rAx/VKJMhERkSrD4azOmjVrXBGHZ1MjfxEREfFSjz32GHfffTfz5s2jefPmgNGj7ODBg8yePdvN0blQSG6iTA39RUREqhSzowdkZWXx3//+l40bN+ZtW7p0Kf/3f/9HZmamU4PzGPaKMvUnExERES/TpUsXVq9ezS233ELdunWpWbMmw4YN4+uvvyY0NNTd4blOcG6fMjX0FxERqVIcrih77rnn2LZtGwMHDszb1qJFCz755BNmzJjBs88+69QAPYIqykRERMSL1apVizvvvLPQ9uuvv54tW7a4IaIKEJL75EtVlImIiFQpDleUrVq1infffZeoqKi8bW3atOGNN95g1apVTg3OY2TZE2WqKBMRERGxs9ls7g7BdewVZWeT3BuHiIiIOJXDiTKr1YrJZCq0PSsri4yMDKcE5XFUUSYiIiJSSFH3jFVGiH3qpSrKREREqhKHp15ee+21PPDAA4wbN47IyEhsNht79+7lnXfeYdCgQa6IsfJTjzIRERGRctm5cycvvPAC27Ztw9/fn27duvHUU09Ru3Ztd4dWNHui7Kx6lImIiFQlDifKnnrqKWbOnMmTTz7JmTNnAAgNDWX48OFMmjTJ6QF6BFWUiYiIiJeZP39+iftYrdZSnSszM5Nx48Zx2223MWfOHFJTU3n44YeZNm0ar732WnlDdY0ajYzlyT2QkwNmhydqiIiISCXkcKKsWrVqPPXUUzz11FOcOnUKs9lM9erVXRGb51BFmYiIiHiZt956q8R96tSpU6pznT9/nkcffZRhw4bh4+NDWFgY11xzDR999FF5w3Sd8FbGl6QZZ+BkAoS3dHdEIiIi4gQOJ8oyMzN5/fXX6dOnD126dAFg6dKl7N69mwcffBA/Pz+nB1np2SvKfAPcG4eIiIhIBVmzZo3TzlW9enVGjBiR9/OePXtYtGgR119//SWPsVqtpa5Yc4T9nCWf24Q5IgbToQ3kHNqErWYzp8cipVf6cZPKRmPnmTRunsmbx82Rz+xwomz69Ols27aNgQMH5m1r0aIFn3zyCTNmzODZZ5919JSeL1tPvRQREREpr8TERK677jqys7O55ZZbeOihhy65b3x8vEtjiY2NLXGfBr4NqcsGjm35hkNWVZRVBqUZN6mcNHaeSePmmTRuxXM4UbZq1Sq++uoratasmbetTZs2vPHGG9xwww1emiizT71UjzIRERGRsoqMjCQ2Npb9+/fzz3/+k8cff5yZM2cWuW9UVBSBgYFOj8FqtRIbG0tMTAwWi6XYfU3ma2HvQupkHSK8QwenxyKl58i4SeWisfNMGjfP5M3jlpaWVuov2RxOlFmt1iIf9Z2VlUVGRoajp6saVFEmIiIi4hQmk4kmTZrw6KOPMnLkSJ566inCwsIK7WexWFx6k1+q8zfoDIDpSCwWbGBx+NZanMzVfy7EdTR2nknj5pm8cdwc+bwOP57n2muv5YEHHmD16tXs3LmTHTt2sGLFCiZMmFBgOqZXUUWZiIiISJmtXbuW6667jpycnLxt5tynSPr6+rorrJLVagH+oZB9Ho7tdHc0IiIi4gQOf+311FNPMXPmTJ588knOnDkDGA1Yhw8fzj333OP0AD2CKspEREREyqxt27akpqby8ssv89BDD3H+/Hlmz55Nly5dCAkJcXd4l2Y2Q732sO9nOPwHRLR1d0QiIiJSTg5XlFWrVo2nnnqK9evXs3btWn7//XdeeeUVkpOT6devnytirPxUUSYiIiJSZiEhIbz33nts27aNHj16MGjQIEJCQvi///s/d4dWsshOxjLxD/fGISIiIk5R5kYKhw8fZuHChSxatIhjx47Rr18/Zs+e7czYPIcqykRERETKpVWrVsybN8/dYTiufkdjeViJMhERkarAoURZZmYmq1at4osvvmD9+vW0b9+eo0eP8sUXX3DZZZe5KsbKTxVlIiIiIt6pfm5FWfJ2yEoHX90PioiIeLJST7187rnnuPzyy3n11Vfp3LkzK1eu5JNPPsHHx4egoCBXxlj55VWU6cZIRERExKvUaASBtSAnC5Lj3B2NiIiIlFOpK8o+/vhjBg0axMMPP0yjRo1cGZPnyaso09RLEREREa9iMhlVZbu/M6ZfNujs7ohERESkHEpdUfbOO+9gtVoZPHgwI0eO5NNPPyUlJcWFoXkQVZSJiIiIeC97nzI19BcREfF4pa4o69OnD3369OHUqVMsWbKETz75hBkzZpCTk8O6deuoV68ePj5lfjaAZ1NFmYiIiIj3sj/58vCf7o1DREREyq3UFWV2NWvWZOzYsSxbtoyPPvqIYcOG8cILL3DFFVfw4osvuiLGyk8VZSIiIiLey15RdnwXZKS6NxYREREpF4cTZRfq0KEDM2bM4JdffuHRRx9l8+bNTgrLw6iiTERERMR7hURASH2w5UDSFndHIyIiIuVQrkSZXWBgICNGjOCzzz5zxuk8jyrKRERERLxb3vRL9SkTERHxZE5JlHk9VZSJiIiIeDf79Ev1KRMREfFoSpQ5gyrKRERERLybvaJMT74UERHxaEqUOYMqykRERES8W70OxvLUXkg76dZQREREpOyUKHMGVZSJiIiIeLfAMKjZ1FjX9EsRERGPpURZeeVYISfLWFeiTERERMR75TX0V6JMRETEUylRVl72aZegqZciIiIi3kwN/UVERDyeEmXlZZ92CWBRokxERETEa9VXQ38RERFPp0RZedkrysw+YPFxbywiIiIi4j712oPJDGcPw9kj7o5GREREykCJsvJSI38RERERAfAPhvBWxvrB390bi4iIiJSJWxNliYmJjB8/nu7du9OvXz9efvllcnJyCu03e/ZsWrduTUxMTIHX8ePH3RD1RfISZZp2KSIiIuL1mvc3lr++Cjabe2MRERERh7k1UTZx4kTq1q3LqlWrmDt3LqtWreKDDz4oct+hQ4cSGxtb4BUeHl7BERdBFWUiIiIiYtf7YfANhMRNsHO5u6MRERERB7ktURYbG8vOnTuZPHkyISEhNGnShLFjxzJ//nx3hVQ29h5lqigTERERkZC60ON+Y331c5BjdW88IiIi4hC3dZ+Pi4sjMjKS6tWr522Ljo5m7969pKamEhwcXGD/Xbt2MXLkSOLj46lXrx5PPvkkffr0KfYaVqsVq9X5Nyf2c1qtVshMwwLYLP7kuOBa4jwFxk08isbOM2ncPJM3j5s3fmZxkd4PwcZ34fgu2PIZdLzN3RGJiIhIKbktUZaSkkJoaGiBbfak2alTpwokyiIiImjYsCGTJk2iTp06zJ8/nwkTJrB06VKaNWt2yWvEx8e7JvhcsbGxhCbvoCWQlpnDzs2bXXo9cY7Y2Fh3hyBlpLHzTBo3z6RxEymHatWhz9/hu6fhhxeg7U3gqzYdIiIinsBtiTIAWykbnI4YMYIRI0bk/Tx27Fi++uorli5dyiOPPHLJ46KioggMDCxvmIVYrVZiY2OJiYnB4n8A1kNgaE06dOjg9GuJ8xQYN4vF3eGIAzR2nknj5pm8edzS0tJc/iWbeJFu98C6N+D0Qdj4HvS8390RiYiISCm4LVEWFhZGSkpKgW0pKSmYTCbCwsJKPD4yMpKjR48Wu4/FYnHpTb7FYsGSkwWAyTfA6/5B4alc/edCXEdj55k0bp7JG8fN2z6vuJhvAPSdAssegp//A53uAP8Qd0clIiIiJXBbM/+2bduSlJTEyZMn87bFxsbSokULgoKCCuz7+uuvs3bt2gLbEhISaNiwYYXEWiw99VJEREREitLhNqjVAtJOwNrX3B2NiIiIlILbEmVt2rQhJiaGmTNnkpqaSkJCAnPnzmXUqFEADBgwgI0bNwJGpdmzzz7Lnj17yMjI4L333uPAgQMMGzbMXeHn01MvRURERKQoFh/oP9VY/202nDvu3nhERESkRG7tUTZr1iyefvppevfuTXBwMCNHjmT06NEA7N27l7S0NAAmTZoEGL3JUlJSaNGiBe+//z4RERFuiz2PKspERERE5FJaD4V6HSBpM/w8Ewa84O6IREREpBhuTZRFREQwZ86cIt/btWtX3rq/vz//+Mc/+Mc//lFRoZVeXqJMFWUiIiIichGzGfo/DR/fBJs/huueB5PJ3VGJiIjIJbht6mWVkTf1UhVlIiIiIlKEpleA2RfST0PKAXdHIyIiIsVQoqy8VFEmIiIiIsXx8YPalxnrR2LdG4uIiIgUS4my8lJFmYiIiIiUJCLGWCZvc28cIiIiUiwlyspLFWUiIiIiUhJ7okwVZSIiIpWaEmXlpYoyERERESlJRFtjqUSZiIhIpaZEWXmpokxERERESlI3N1GWsh/Op7g1FBEREbk0JcrKSxVlIiIiIlKSwDCo3tBYT45zbywiIiJySUqUlVdeRZkSZSIiIiJSDHtVmRr6i4iIVFpKlJVXXkWZpl6KiIiISDHyGvpvdW8cIiIicklKlJWXKspEREREpDTyGvqrokxERKSyUqKsvFRRJiIiIiKlYa8oO7oDrFnujUVERESKpERZeamiTERERERKo0YT8AsBawYc/8vd0YiIiEgRlCgrL1WUiYiIiEhpmM1QN9pYV0N/ERGRSkmJsvJSRZmIiIiIlJYa+ouIiFRqSpSVlyrKRERERKS08hJlse6NQ0RERIqkRFl5qaJMRERERErrwidf2mzujUVEREQKUaKsPHKyjReookxERERESlanDZjMkHYczh5xdzQiIiJyESXKysM+7RJUUSYiIiIiJfMNgFotjXU19BcREal0lCgrD/u0S1BFmYiIiIiUjhr6i4iIVFpKlJWHPVFm9gWzxb2xiIiIiIhnUEN/ERGRSkuJsvLIe+Klpl2KiIiISCld2NBfREREKhUlysoj74mXmnYpIiIiIqUU0c5YntgNmefcG4uIiIgUoERZeaiiTEREREQcFVwHgusCNkje7u5oRERE5AJKlJVHXqJMFWUiIiIi4oC6udMvk9WnTEREpDJRoqw88qZeqqJMRERERByghv4iIiKVkhJl5aGKMhEREREpi7xEmRr6i4iIVCZKlJWHKspEREREpCzsibLkOMixujcWERERyaNEWTmY7BVlvkqUiYiIiIgDarUAnwDIOgcn97o7GhEREcmlRFl5WFVRJiIiIiJlYLZAndbG+pGt7o1FRERE8ihRVh7qUSYiIiIiZRXZ2Vju+9m9cYiIiEgeJcrKQz3KRERERJwiMTGRBx54gO7du9OrVy+mTJnCmTNn3B2Wa7W8xlj+9R3YbO6NRURERAAlyspHFWUiIiIiTjFhwgRCQ0NZs2YNCxcu5K+//uKll15yd1iu1eRy4wvX0wfh6A53RyMiIiKAj7sD8Gh5iTJVlImIiIiU1ZkzZ2jbti2TJk0iKCiIoKAghg0bxrx58y55jNVqxWp1/tMi7ed0xbkLsfhjbtIH0+5V5OxaiS28leuvWUVV6LiJU2nsPJPGzTN587g58pmVKCuPvKmXqigTERERKavQ0FBeeOGFAtuSkpKoU6fOJY+Jj493aUyxsbEuPb9d7WptaMQqzm1eRHzQlRVyzaqsosZNnE9j55k0bp5J41Y8JcrKQxVlIiIiIk4XGxvLRx99xBtvvHHJfaKioggMDHT6ta1WK7GxscTExGCxWJx+/kIa14Rtswg+FUeHVk0goIbrr1kFVfi4idNo7DyTxs0zefO4paWllfpLNiXKykMVZSIiIiJOtWnTJu677z4mTZpEr169LrmfxWJx6U2+q8+fJ7wZhLfCdHwXln0/QNubXH/NKqzCxk2cTmPnmTRunskbx82Rz6tm/uWhijIRERERp1mzZg3jx4/nH//4B2PGjHF3OBUn6lpj+dd37o1DRERElCgrD5MqykRERESc4o8//uCJJ57g1Vdf5cYbb3R3OBWr5XXG8q/vICfHvbGIiIh4OSXKysOqijIRERGR8srOzmbq1KlMnjyZPn36uDuciteoB/iHQtpxOPyHu6MRERHxakqUlYemXoqIiIiU2+bNm0lISGD69OnExMQUeCUmJro7PNez+ELzfsb6X9+6NxYREREvp2b+5aGplyIiIiLl1qVLF3bt2uXuMNyr5XWwfQnEfwP9/uHuaERERLyWKsrKQxVlIiIiIuIMLa42lkmb4WyyW0MRERHxZm5NlCUmJjJ+/Hi6d+9Ov379ePnll8kpoYFpcnIyHTt2ZPbs2RUUZTFUUSYiIiIizhBSF+p3NNZ36+mXIiIi7uLWRNnEiROpW7cuq1atYu7cuaxatYoPPvig2GOmT5+OxWKpoAhLoIoyEREREXEW+9Mv479xbxwiIiJezG2JstjYWHbu3MnkyZMJCQmhSZMmjB07lvnz51/ymB9//JHdu3fTt2/figu0OKooExERERFnaXmtsUz4HqxZ7o1FRETES7mtmX9cXByRkZFUr149b1t0dDR79+4lNTWV4ODgAvunp6fzr3/9ixkzZrB48eJSXcNqtWK1Wp0Zdt55gbyKMqvJF1xwHXEu+7i54s+EuJbGzjNp3DyTN4+bN35mqWTqd4Sg2nDuGBxYC02vcHdEIiIiXsdtibKUlBRCQ0MLbLMnzU6dOlUoUfbaa6/RoUMHevToUepEWXx8vFNivZSczDQswPa/9pCZeN6l1xLniY2NdXcIUkYaO8+kcfNMGjcRNzCbocU1sOUTY/qlEmUiIiIVzm2JMgCbzVaq/Xbv3s0XX3zBsmXLHDp/VFQUgYGBZQmtWFarlditWzHnZALQJqYjhEQ4/TriXFarldjYWGJiYipPnzspFY2dZ9K4eSZvHre0tDSXf8kmUqKWuYmyv76F62a4OxoRERGv47ZEWVhYGCkpKQW2paSkYDKZCAsLy9tms9mYNm0aEydOpHbt2g5dw2KxuO4m32bFZDOe0GnxDwQv+8eEJ3PpnwtxKY2dZ9K4eSZvHDdv+7xSSTXvDyYzHI+HlINQo6G7IxIREfEqbkuUtW3blqSkJE6ePJmXGIuNjaVFixYEBQXl7Xf48GE2bNjAX3/9xaxZswDjG1+z2cyaNWtYtGiRW+K3V5MBeuqliIiIiDhHQA2I7AKH1sOe76HTGHdHJCIi4lXc9tTLNm3aEBMTw8yZM0lNTSUhIYG5c+cyatQoAAYMGMDGjRuJiIjgxx9/ZMmSJXmv/v37M3LkSN5++213hY/ZekGizKKnXoqIiIiIkzTvbywT1rg3DhERES/ktkQZwKxZszh69Ci9e/dmzJgx3HjjjYwePRqAvXv3kpaWhsViISIiosArICCA4OBgh6diOpPJXlFm8TMar4qIiIiIOIM9UbbnB8jR01hFREQqklub+UdERDBnzpwi39u1a9clj3vxxRddFVKp5VWUadqliIiIiDhTZGfwD4XzpyBpC0R2cndEIiIiXkOlUGWUV1Hmo2mXIiIiIuJEFh9oeoWxrumXIiIiFUqJsjLKa+avijIRERERcbbm/YxlwvfujUNERMTLKFFWRvlTL1VRJiIiIiJOZu9TdvB3yDjr3lhERES8iBJlZWRSRZmIiIiIuEpYM6jZBHKyYN+v7o5GRETEayhRVkaqKBMRERERl7JXlalPmYiISIVRoqyM8ivKAtwbiIiIiIhUTUqUiYiIVDglyspIFWUiIiIi4lJNLgeTBU78BSkH3R2NiIiIV1CirIz01EsRERERcamAGhDZ2Vjfo6dfioiIVAQlysoof+qlKspERERExEU0/VJERKRCKVFWRvlTL1VRJiIiIiIuYk+U7fkBcqxuDUVERMQbKFFWRqacLGNFFWUiIiIi4iqRncE/FM6fgqTN7o5GRESkylOirIxUUSYiIiIiLmfxgaZXGOuafikiIuJySpSVkVk9ykRERESkIuT1KVNDfxEREVdToqyMTHrqpYiIiIhUBHui7OB6yDjr3lhERESqOCXKyih/6qUqykRERETEhcKaQs0mkJMFO79ydzQiIiJVmhJlZaSKMhERERGpMJfdYCwX3w+/zgKbzb3xiIiIVFFKlJWRKspEREREpML0ewrajQSbFb57Gj6/A9LPFN7v3HH45b/w2W1wfHeFhykiIuLpfNwdgKcyq6JMRERERCqKXyAMexMadoWvp8COZZC8HW79COq0NvqXbXgHti+GC5/OfvO7bg1bRETE0yhRVkYmPfVSRERERCqSyQRd74Z6HeDzMXAyAd65Cmo2haNx+fuFR8HxeNj1NWSmGUk2ERERKRVNvSwjs1UVZSIiIiLiBg26wL0/QbO+kJVmJMl8qkGH2+GeNfDAeqjeCLLOwV/fujtaERERj6KKsjJSM38RERERcZugcLh9IWzInVrZbgQE1Mx/P/pG+G0WxC001kVERKRUVFFWRmrmLyIiIiJuZbZA9/HG68IkGUDb4cYy/lvISK342ERERDyUEmVlpGb+IiIiIlJp1etg9C7LPg/xK90djYiIiMdQoqyMTKooExEREZHKymTKryrbtvDS+8UugOkR8Me8iolLRESkklOirIxUUSYiIiIilVp0bqJs93eQfrrw++dPwYrHjKqzFY/BiYSKjU9ERKQSUqKsjNSjTEREREQqtbrREB4F1kzYuaLw+z+8BOdPGuvZ52HJA5CTU7ExioiIVDJKlJWFzaanXoqIiIhI5WYy5VeVxV00/fLoTlj/trE+ZDb4BcOBtfD7mxUbo4iISCWjRFlZ5GRhwmasq6JMRERERCore5+yhDWQlls9ZrPBN0+CzQqX3QCdxsC1zxnvrf6XpmCKiIhXU6KsLLLT89dVUSYiIiIilVXtVlAnGnKyYedyY1v8SiNxZvHLT5B1vgua9TWmYC6+H3KsbgtZRETEnZQoK4vsjPx1VZSJiIiISGXWdpix3LbQuI9d+aTxc88HIayZsW4y5U7BDIGD62DdG+6JVURExM2UKCuL3ESZzeJv3FSIiIiIiFRW9j5le3+CNc/Bqb0QHAGX/73gfjUawXXTjfU1z8Hxvyo2ThERkUpAibKysE+9VDWZiIiIiFR2tZpDvfZGT7LfZhvbrnkW/EMK79vpTmje37jf1RRMERHxQkqUlYV96qX6k4mIiIiIJ7BXlQFEdoGYW4re78IpmIfWw4Z3KyY+ERGRSkKJsrJQRZmIiIiIeJLoYUBuy5Dr/w3mYv4ZUL0BXP2Msb76X3DmcPHnzkyD9NNOCVNERMTdlCgrC1WUiYiIiIgnqdkYbp0Ht34EDTqXvH+Xv0GDrpB5FlY8dun9zhyG13vAq+3hdKLz4hUREXETJcrKQhVlIiIiIuJpWg82XqVhNsPgV8HsAzuXw47lhfc5fwo+uglS9hvr3/3TufGKiIi4gRJlZZFXUaZEmYiIiIhUUXWjoddDxvqKxyD9TP57Wenw6Wg4uh2CagMm2LYA9v/mllBFREScRYmyMjDlVZQFuDcQERERERFXuvJxqNkUzh6GNdONbTlWWHg3HPgN/KvDmCXQeazx3orH9aRMERHxaEqUlYUqykRERETEG/gGwA2vGOvr34ZDG2HFZNixDCx+MOoTo/Ks/9NQrTokx8Km990asoiISHkoUVYWVntFmZr5i4iIiEgV17wftBsJ2GDecNj4HmCC4XOgSR9jn6Ba0G+qsb7mOUg76a5oRUREykWJsrLIrSizqaJMRERERLzBdTMgIAwyThs/X/9viL6x4D5dxkGdNkZj/++fd+z8OTlOCVNERKS8lCgrC029FBERERFvEhRuPAUzoKZROdZ9fOF9LD5w/UvG+sZ34ci20p17w7vwUmNYeC9knnNezCIiImXg1kRZYmIi48ePp3v37vTr14+XX36ZnCK+TbLZbPzvf/+jX79+dOzYkUGDBrF48eKKD9guW1MvRURERMTLtBkCj+2BKx+79D5Nr4A2N4ItB75+Amy2S+9rzYKvJsFXf4eMM7D1M3jnajiR4PTQRURESsutibKJEydSt25dVq1axdy5c1m1ahUffPBBof0++OADFi9ezLvvvsvGjRuZOHEiTz75JNu3b3dD1KiiTERERES8k7kU/3y49jnj6fD7f4HV/4JzJwrvk3YSPhoOG94BTNB9AgTXhaPb4e2+sHOFsyMXEREpFbclymJjY9m5cyeTJ08mJCSEJk2aMHbsWObPn19o38suu4yZM2fSrFkzLBYLAwYMICQkhN27d7shcvIryiyqKBMRERERKaBGI7h8krH+y//B/7WGhePhwO9GhdmxXTCnP+z9CXyDYOTHxpTNe3+Chj2M6rLPRsHq5yDH6t7PIiIiXsfHXReOi4sjMjKS6tWr522Ljo5m7969pKamEhwcnLe9R48eeevp6eksWLAAs9lMz549i72G1WrFanXB/1yzjERZjsUPmyvOLy5h/7Pgkj8T4lIaO8+kcfNM3jxu3viZK5Off/6ZJ554gu7du/PKK6+4Oxwpr8snQWh9WP82JG2GrfONV922kHLASIbVaASjPoO60cYxIREwdjl8OxV+fxN+/g8c/hNu/Qj8At36cURExHu4LVGWkpJCaGhogW32pNmpU6cKJMrspk6dyoIFC6hfvz6vvfYatWvXLvYa8fHxzgv4Ao2PJREOHDl+iuTNm11yDXGd2NhYd4cgZaSx80waN8+kcZOKNGfOHBYsWEDjxo3dHYo4i9kMHW8zXombYMN7sG0BJOc2+G/UC26dZzwk4EIWX6O6LLIzLH0IElbDl3cb+5otros38xz8/hY07g2NurvuOiIiUum5LVEGRpN+R0yfPp2pU6fy1VdfMWHCBD744APatGlzyf2joqIIDHTBt08JxjkjIhtTr0MH559fXMJqtRIbG0tMTAwWiwtvtMTpNHaeSePmmbx53NLS0lz2JZsUz9/fnwULFjBjxgwyMjLcHY44W2Rn43XddNgyH7LSoOeD4ON36WPa3QLVG8KHQ2HXV8aDAQa+DCaT8+PLOAuf3Ar7fwW/YLjvV6jZxPnXERERj+C2RFlYWBgpKSkFtqWkpGAymQgLC7vkcdWqVeOmm25ixYoVLFiwgH/+85+X3NdisbjkJt9mzQTA7BeI2cv+EVEVuOrPhbiexs4zadw8kzeOm7d93spkzJgxDh/jqhYb3jz92OX8QqHrPfk/l/Q7btANbnwT85fjMG2YQ071hth6PljkrlarFWw2rCf2wNE4TEe2YjqyFU4mYGtyObarpkG16oUPTD+D+dMRmA5tMH7OTMW2+H5y7lgCJrc+98xr6O+cZ9K4eSZvHjdHPrPbEmVt27YlKSmJkydP5iXGYmNjadGiBUFBQQX2nTBhApdffjm33XZb3jaTyYSPj5vCt+Y289dTL0VERETcwtXVf5p+XFk0pk6bCTTc/gbmVf9kz6lsTtXvW2CPwJRd1NnzJe2P/o5P1tlCZzCd3EPm9q/Y324SZ+rmT6u0ZJ6l5e+PE5Syi2zfYA60+zuNN/8by/5fObzoGY42u8nVH04uoL9znknj5pk0bsVzW6KsTZs2xMTEMHPmTJ588kmSk5OZO3cu48aNA2DAgAFMnz6dLl260KlTJ95++206duxIVFQUP/30E2vXruVvf/ube4LPzp0SoESZiIiIiFu4qsWGN08/rrTatycnyIp5w9s03fwijdt2N6rN4r/G/PsbmA6szdvVZvaFOm2wRcRAvfbYAsMxfz8dv5MJtFz/JDkdbsN2zQzIycL88U2YUnZhCwjDdPsiGkfEYKoTCl9PpsGud6l/xRgIb+nGD+4d9HfOM2ncPJM3j5sjLTbc2qNs1qxZPP300/Tu3Zvg4GBGjhzJ6NGjAdi7dy9paWkA/O1vfyMrK4vx48dz9uxZGjRowPTp00t86qXLZBsVZTafau65voiIiIiXc/X0YG+cflypXf8inD2MaedyLPNvg4AacGqf8Z7Zh5zo4cSH9qHllbdg8QugQCezVgNgzXRY9zrmzR/Dnh/APwSO7YSg2pjGLMVSN7fvcbe7YddXmPZ8j2XZg3DXSrA46Z9MNpvxIndpMhsPPRBAf+c8lcbNM3njuDnyed2aKIuIiGDOnDlFvrdr1668dYvFwgMPPMADDzxQUaEVL0tTL0VEREREKozZAsPnwIdD4NAGSE+BgJrQZRx0vQdbUB3Obd4MliIeEOAXCAOeh9aDYcn9cHKPsT04Au5cBrWj8vc1mWDo/+D1nsZ1fpsFl//d8Xit2bD/F4hbDDuXw7ljhfex+EHz/hA9HFpdD9VCHb+OiIg4nVsTZR4r254oU0WZiIiIiEiF8AuEUfPhx5egditoP8rYBiU/GACgcU+Y8Cv8+CIkbYFB/we1mhfer3oDuP4lWHwffP88RF0HdaNLPn/WeSO5FrcIti+FtOPF72/NhPiVxsviDy2uhuhh0KgHBNUGX/1bQ0TEHZQoKwurepSJiIiIOEtMTAwA2dnZAKxatQpQs2EpQlAtGPjvsh/vFwjX/Kvk/dqPMpJd8V/Dl3dDxzuMxJVPAPgGGF+Yn02C43/B8XjjlXIAsOWfIyDMqGKLHpabaDMZFWv25dkk4xpxC43jd31lvOz8QyGwlpE0q9Uc+j8N1SPL/tlFRKRUlCgrC3szf4u+5REREREpLyXEpNIxmWDwq/D6Oji6Hb55snTHBYYb0yijh0HTK8DiW8y+YUYCre8UOLrDqETbsRROJEBOFmScMV6n9sKh9XBit3N7pomISJH0X9myyFaPMhERERGRKi2kLoz6DP78CLLSjD7F2efzl0G1ITzKeDJmeJTxCqyVWzXmAJMJ6rYxXv2fMhr9p5+Gc8eN3mZnD8OyR4xpnb++Alc85pKPKyIiBiXKysJeUaYeZSIiIiIiVVejHsarIplMxlM9A2pAeAtjmzULFt0LP7xo9DKr37FiYxIR8SJ6HrGjbDZMqigTEREREZGK0u5WaD0EcrJh4b3GgwNERMQllChzlDUzf10VZSIiIiIi4momE9zwXwiuC8d3wepSPJCgNHJynHMeEZEqRFMvHWWvJgNVlImIiIiISMUIqgVDX4OPb4Z1r0PUddCs76X3t9kgPQVOJ8KZROOpnCn7jeWp3GXmOeh6N1w9DXz8KuiDiIhUbkqUOcrenwzAov+ZiIiIiIhIBWl5DXQZBxvfg8X3w32/GbNcju2E5DjjCZ1Hd8DpQ0ZyLDO15HOuew0O/g4j5kKNRq7/DCIilZwSZY7KrSjLMfs5/kQbERERERGR8rh2Ouz5AU7ugdmd4HwK2KyX3j+wFoRGQvWGULMx1GhsJMRqNIKTCbB0IiRuhDcvh2FvQasBhc9x/hSc2AN1o8FX7WdEpGpTosxRuRVlORY/lCYTEREREZEK5RcEw96G966DtBPGtoCaULetkciq09pIhlVvCKH1wS/w0ueKaAv12sMXd8HhP+DTW6HXQ3D53+HQRtj7I+z9GZK2ADao2QSuewFaXe/aooHMc0ZyLqQemC2uu46ISBGUKHNUbkWZzaxEmYiIiIiIuEHDrjD+ezh3DOpEQ0hE2RNXNZvAuG/gu6fh9zfht1nG62K+gXBqH3w2ClpcA9e/BLWa579vsxnJtu1LYN+vEN4SmveHZv0guHbxMdiskLgJ9v0ICT8YU0FzssDsA9Ub5FbANTZibXW9kRAUEXERJcocZa8oM/vpkaEiIiIiIuIe9do771w+fkbiq3EvWPIgZJwxElNNrzBeTS4H/xD4+T/w2/9g93fw+o/Q8wFoeR3sXA7bl8LpA/nnTNwIWz411iPaGUmzOm2Mc6efznuZzybTft+vWLLOFozJZIacbCM5d2pf/vY1zxnX7PMoNO7pvN+BiEguJcocZe9Rpkb+IiIiIiJSlbQZalSLnT8F1SMLv3/1NOhwO6x8Anavgl9eMV52voHG0zhbXAPH4yFhDRzZmv8qggnjH6U2/1BMTa8wnuTZvL9RPXY26YKndO6HpK2wawX89Y3x+v/27jw4qjLd4/ivt3SWTieEaDICDqMMXCFg3Mi90bksI9FiEUG03MrBBUaMaCm5JdeKlbqFSlkOVnkRGadKmD+oGhX+gRkKGQu30mKURZFEwLmIA4lJgEBnI6S3c/94u5M0BEwMpHPI91N16iSn+5x+znkTfHzyvOeM+HdTMBt9W8866kKnpdApKT2n99cGwKBBoay3uky9BAAAAIBLSkr6+e9rljtKemCDdGCLma7ZXC+NLpHG3imNujVx32n/I7UcMw8fOLhNavpRSs2SUv1SaraUmqWo16/vWjL060n3yOXxJn5W1nCz/LK4c1vDQenz10232pF/mPuqZV8p5Vxl7mmWmW/WGZdJrcelhv+TGv5p1oEjkiwp8wrTkXdFoVn/orDn01cty3TDNdeapalWav7RbEvxSV6/6b5Lja1TfObJpJ40s7jTJJfb3IetvTlxcad2xp8+VHJ2mcMUCUktR6XmOvO5Lo+5D132CPM5AC4YCmW91eVm/gAAAAAw6Dgc0r9NN4tlnb/A5LtMmnC3WbphRSJq/fprcz+ynhh6tXTH/0qT/1v6x5vSzjWm6yxw+Kf3jWv+0Szfbemy0WEelJDii60zJLe3swstvgRPmfunXWxOt+TLMwXF1mNmkdX9e1OzTcHMP8zs53CY83E4YlNYI2YaayQYW0Lme6fHFNxcKeZcXZ7YODgSjyGHZEUTFkc0oqsCJ+X8zm/i6ngt/llhc52iYfN5DofkyTCFVE+6ub6eNLNPONgltqDZx4qfa5dzdqXEYk0104XdsSewtrfEio1NsaXFHNfpkhwucw2cLrO4U825ulM7jyWZuK2ouVZW1Ozj9ccKu/HibpY5nhWJvS+2lmLHd3dZXJLLa54S60nvLJY63bHpx4lTkM31iV+b9M6vvb5YATZWdPWkmc8LtkrBFnOuwWYp1Nb5eV0Ls5K5/uF2c22Dp5TW+E/pqFfyppt94tdTMj/v4bYu6zZzbU83dsbd3mTGJz1HSsvpXKcNMefR9Tpa0djnt51x7NPmGrtSTOE4/rOY+2tT9E4yCmW9FZ96SUcZAAAAgMHuYj798nz8v5BKlkn/WSbV7JZa6mNdXrGOq+Z605WVO0oaGl9+bYoHdXvNkzxr90i1X0vH9pv/oQ+2mKUnUrPNU0Uz802HWlp2ly6xplhxoSlWYGvrLDpEgmZ/p9sUP7yZpiCT4pNCrSbu1mOmWNRUY5Y4p1vy5UuZeeY4gSPS6YBZ6gLmvPqJU9IQSartt4+EZAp18cLkz+CSNFaSPr2AMV1IDpdU9k8pY2hSw6BQ1lu5Y2S5vGodMlYZyY4FAAAAAAaz1Czp6im92+eX/5H4IIBwe6xjprmzUyfYarZ70s7o8kkzBbh4t05vRSOmw8btPXeRMRIyxbLmWqktYKaRdjcdUzLFuMYjpmjWXBvrjIp1YVlWZ2dVvHPMlWK+drg6u70SOs1Csf2txHW8K8vhlBxORS2puqZGw0f8Uk5XbLtiHWxOd2KXkNNj4gi1mo680ClzfUOnYu/1mM4ml8dcl4SuNpmvZcU6k07HuqPazdqKdk539Waan4cUn4kjoUssYrrc4vuF2zuPJSWcW8e+8U6qjqXJbHe4OrvVnC4TZzTS2bkXX8LtXYqksc7EaPjsTjWv3xwj2Gre3/X6tLckFnCtSJfBdyR2mkVCZp/waXOcru91eSW3V5YrRaGoJY/TIUf8GpzZIenu0pXmTu2MMTUrtvabn4m2E9KpE53r04FYWPHr6Or8efCkdk49jne9xbvN4j+H0ZApZqdl9/S36aKhUNZb+QWK/tdB/Vj1nS5PdiwAAAAAgL5xeyXf5Wa52OJTAM/H5THdav4rfvp4qX4pdZyUN+7CxNdDViSiY56vNaywUHL9xPmg76JdOh4dzs4pwucqtlqxwqIUK4ya90UjEe39+msVFhbKFR+3aKSzYOhOPbsYOwhRKPs5POe5uSUAAAAAAMCF4nTGiqL+nr3f4ei879hPHtt1/gd4DEKUCgEAAAAAAABRKAMAAAAAAAAkUSgDAAAAAAAAJFEoAwAAAAAAACRRKAMAAAAAAAAkUSgDAAAAAAAAJFEoAwAAAAAAACRRKAMAAAAAAAAkUSgDAAAAAAAAJFEoAwAAAAAAACRRKAMAAAAAAAAkUSgDAAAAAAAAJFEoAwAAAAAAACRRKAMAAAAAAAAkSe5kB3AxRKNRSVJbW9tFOX4kEpEknTp1Si6X66J8Bi48xs2+GDt7YtzsaTCPWzxviOcRGJjI89Adxs2+GDt7YtzsaTCPW2/yPIdlWdbFDqi/NTQ06Icffkh2GAAAwIZGjhypoUOHJjsMnAN5HgAA+Ll6kuddkoWycDisxsZGeb1eOZ3MLgUAAD8tGo2qvb1dWVlZcrsvyab7SwJ5HgAA6K3e5HmXZKEMAAAAAAAA6C3+DAcAAAAAAACIQhkAAAAAAAAgiUIZAAAAAAAAIIlCWa/U1NRo4cKFKioq0pQpU/Tqq6/yCPkBqqamRqWlpSoqKlJxcbGWLl2qpqYmSdK+ffv04IMP6oYbblBJSYnWrFmT5GjRnZdfflljxozp+H779u2aN2+err/+es2YMUObNm1KYnTozurVq3XLLbeosLBQ8+fPV3V1tSTGbiD79ttv9dBDD+nGG2/UzTffrLKyMp04cUIS44bBhzzPPsjz7I88z37I8+yHPK8PLPTYnDlzrPLycqupqck6dOiQVVJSYq1ZsybZYaEbM2fOtJYuXWq1tLRYtbW11ty5c63nn3/eamtrs37zm99YK1eutFpbW63Kykpr4sSJ1tatW5MdMrr49ttvrYkTJ1qjR4+2LMuy6uvrrcLCQmv9+vXW6dOnrc8//9yaMGGC9c033yQ5UsStW7fOuv32262DBw9azc3N1rJly6xly5YxdgNYKBSybr75ZmvFihVWe3u7deLECevhhx+2Fi9ezLhhUCLPsw/yPHsjz7Mf8jz7Ic/rGzrKemjv3r3av3+/ysrKlJmZqZEjR2r+/Pl69913kx0aztDU1KSCggItWbJEGRkZys/P15w5c7Rz5059/PHHCoVCWrRokdLT0zVu3DjdfffdjOMAEo1GVVFRofnz53ds++tf/6qRI0dq3rx58nq9Ki4u1tSpU7V+/frkBYoEa9as0TPPPKOrrrpKPp9P5eXlKi8vZ+wGsGPHjunYsWOaPXu2UlJSNGTIEE2bNk379u1j3DDokOfZB3mevZHn2RN5nv2Q5/UNhbIeqqqq0rBhw5SVldWxbdy4cTp06JBaWlqSGBnO5Pf7tXz5cuXm5nZsq62t1eWXX66qqiqNGTNGLper47WxY8eqsrIyGaGiG++88468Xq9mzZrVsa2qqkpjx45NeB/jNnDU19erurpajY2Nmj59uoqKivTUU0/pxIkTjN0AlpeXp2uuuUbvvvuuWltb1dDQoL///e+aPHky44ZBhzzPPsjz7I08z37I8+yJPK9vKJT1UCAQkN/vT9gWT6ZOnjyZjJDQQ3v37tW6deu0aNGibscxOztbgUCA+5AMAMePH9fKlStVUVGRsP1c48bv3sBQV1cnSXr//fe1du1abdy4UXV1dSovL2fsBjCn06mVK1dq27Ztuv7661VcXKxwOKwlS5Ywbhh0yPPsizzPPsjz7Ik8z57I8/qGQlkvWJaV7BDQS7t27dKjjz6qJUuWqLi4+Jzvczgc/RgVzmX58uWaO3euRo0alexQ0Avxfxsfe+wx5eXlKT8/X4sXL9aHH36Y5MhwPsFgUI8//rhuv/127dy5U59++qkyMzNVVlaW7NCApCDPsx/yPHshz7Mn8jx7Is/rGwplPZSTk6NAIJCwLRAIyOFwKCcnJzlB4bw+/PBDLVy4UM8//7weeughSWYcz6yUBwIBZWdny+nk1yGZtm/frq+++kqlpaVnvTZkyJCzfv9OnjzJ794AEZ/+0vUvU8OGDZNlWQqFQozdALV9+3ZVV1fr2WefVWZmpvLy8vTUU0/pgw8+kNPpZNwwqJDn2Q95nr2Q59kXeZ49kef1Df/F6KGCggLV1tZ2PE5VMq3eo0aNUkZGRhIjQ3d2796t5557Tq+//rruvPPOju0FBQU6cOCAwuFwx7a9e/fq2muvTUKU6GrTpk1qaGjQlClTVFRUpLlz50qSioqKNHr06LPmzFdWVjJuA0R+fr58Pp/27dvXsa2mpkYej0eTJk1i7AaoSCSiaDSa0EUTDAYlScXFxYwbBhXyPHshz7Mf8jz7Is+zJ/K8vqFQ1kNjx47V+PHjtWLFCrW0tOjgwYNau3at7rvvvmSHhjOEw2GVl5errKxMt9xyS8JrkyZNks/n0+rVq9XW1qY9e/Zow4YNjOMAsHTpUm3dulUbN27Uxo0b9ac//UmStHHjRs2aNUs1NTVav3692tvb9cknn+iTTz7RPffck+SoIUlut1vz5s3TH//4R/3rX/9SQ0ODVq1apVmzZmnOnDmM3QB13XXXKT09XStXrlRbW5tOnjyp1atX66abbtLs2bMZNwwq5Hn2QZ5nT+R59kWeZ0/keX3jsLghQ4/V1dXphRde0Jdffimfz6d7771XTz75JPc9GGB27typBx54QCkpKWe99v7776u1tVUVFRWqrKxUbm6uFixYoPvvvz8JkeJ8qqur9dvf/lYHDhyQJO3YsUMvvviiDh48qGHDhmnJkiUqKSlJcpSICwaDWr58uTZv3qxQKKTbbrtNL7zwgjIyMhi7AayyslKvvPKK9u/fr5SUFE2cOFFLly5VXl4e44ZBhzzPHsjzLg3kefZCnmdP5Hk/H4UyAAAAAAAAQEy9BAAAAAAAACRRKAMAAAAAAAAkUSgDAAAAAAAAJFEoAwAAAAAAACRRKAMAAAAAAAAkUSgDAAAAAAAAJFEoAwAAAAAAACRRKAMAAAAAAAAkUSgDgPP64osvNGbMGLW3tyc7FAAAAFxA5HkAuuNOdgAA0BNTp05VfX29nM6z6/vLly/XzJkzkxAVAAAA+oo8D8BAQqEMgG2Ul5frvvvuS3YYAAAAuMDI8wAMFEy9BHBJmDp1qv785z/r4Ycf1oQJE1RSUqLdu3d3vF5XV6dFixapqKhIN9xwg5555hkFAoGO1z/77DPdcccdKiws1OzZs7V9+/aE4+/atUszZsxQQUGBFixYoObm5v46NQAAgEGNPA9Af6JQBuCSsXbtWj399NPasWOHpk2bptLSUoXDYUnSE088oczMTG3btk1bt27V0aNHVVFRIUmqr6/X4sWL9fjjj2vHjh363e9+p9LS0oQE629/+5v+8pe/aMuWLaqsrNSGDRuScYoAAACDEnkegP7C1EsAtvHiiy/q5ZdfTtiWnp6uL774QpL5a2NhYaEk6fe//73efvtt7dmzR+np6aqqqtJbb70ln88nn8+nhQsXqrS0VMFgUFu2bNGIESM0ffp0SdLcuXPl9XoVjUY7PueRRx6R3++X3+9XYWGhDh061D8nDQAAMAiQ5wEYKCiUAbCNn7p3xa9+9auOr/1+vzIzM3X06FG53W5lZWXpsssu63j9yiuvVCgUUn19vQ4fPqzhw4cnHGvGjBkJ33d9PTU1VcFgsK+nAwAAgBjyPAADBVMvAVwyuv5lUJIsy5LD4ThvsuNwOOR0Os/at7v3AQAAIDnI8wD0FwplAC4Zhw8f7vi6sbFRLS0tys/P14gRI9TY2Kjjx493vP7999/L6/UqLy9Pw4cPP6vFft26dTpy5Ei/xQ4AAIBzI88D0F8olAG4ZHz00UeqqqpSe3u73nrrLeXm5mr8+PEaP368rr76aq1YsUKnTp1SfX29Vq9erRkzZsjj8WjmzJmqra3Ve++9p2AwqM2bN+u1115TRkZGsk8JAAAAIs8D0H+4RxkA2+juJq+SNHPmTEnSXXfdpT/84Q/atWuX8vPz9cYbb8jlckmS3nzzTS1btkyTJ09WWlqabr31VpWVlUmScnNz9fbbb6uiokIvvfSSRo4cqVWrViknJ6f/Tg4AAGAQI88DMFA4LMuykh0EAPTV1KlTtWDBgvPeBBYAAAD2Q54HoD8x9RIAAAAAAAAQhTIAAAAAAABAElMvAQAAAAAAAEl0lAEAAAAAAACSKJQBAAAAAAAAkiiUAQAAAAAAAJIolAEAAAAAAACSKJQBAAAAAAAAkiiUAQAAAAAAAJIolAEAAAAAAACSKJQBAAAAAAAAkqT/B3QJyjRXrfgPAAAAAElFTkSuQmCC\n", "text/plain": [ "