{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "#Perform a practical RNN algorithm."
      ],
      "metadata": {
        "id": "nunO3OVs-3lX"
      }
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "ae1303ff",
        "outputId": "020fd581-a4e4-48f9-c71f-fe1dbafb902c"
      },
      "source": [
        "import numpy as np\n",
        "\n",
        "# Generate some sample sequential data\n",
        "def generate_sequence_data(num_samples=1000, sequence_length=10):\n",
        "    X = np.random.rand(num_samples, sequence_length, 1) # Input features\n",
        "    y = np.sum(X, axis=1) # Simple target: sum of the sequence\n",
        "    return X, y\n",
        "\n",
        "X_train, y_train = generate_sequence_data()\n",
        "\n",
        "print(\"Shape of X_train:\", X_train.shape)\n",
        "print(\"Shape of y_train:\", y_train.shape)"
      ],
      "execution_count": 1,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Shape of X_train: (1000, 10, 1)\n",
            "Shape of y_train: (1000, 1)\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 193
        },
        "id": "931eec23",
        "outputId": "79d05177-ce9d-4532-c02a-d3b66af283aa"
      },
      "source": [
        "import tensorflow as tf\n",
        "from tensorflow.keras.models import Sequential\n",
        "from tensorflow.keras.layers import SimpleRNN, Dense, Input\n",
        "\n",
        "# Build the RNN model\n",
        "model = Sequential([\n",
        "    Input(shape=(X_train.shape[1], X_train.shape[2])), # Using Input layer as recommended\n",
        "    SimpleRNN(32),\n",
        "    Dense(1)\n",
        "])\n",
        "\n",
        "model.summary()"
      ],
      "execution_count": 3,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "\u001b[1mModel: \"sequential_1\"\u001b[0m\n"
            ],
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"sequential_1\"</span>\n",
              "</pre>\n"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "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",
              "│ simple_rnn_1 (\u001b[38;5;33mSimpleRNN\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m)             │         \u001b[38;5;34m1,088\u001b[0m │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ dense_1 (\u001b[38;5;33mDense\u001b[0m)                 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m1\u001b[0m)              │            \u001b[38;5;34m33\u001b[0m │\n",
              "└─────────────────────────────────┴────────────────────────┴───────────────┘\n"
            ],
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
              "┃<span style=\"font-weight: bold\"> Layer (type)                    </span>┃<span style=\"font-weight: bold\"> Output Shape           </span>┃<span style=\"font-weight: bold\">       Param # </span>┃\n",
              "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
              "│ simple_rnn_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">SimpleRNN</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)             │         <span style=\"color: #00af00; text-decoration-color: #00af00\">1,088</span> │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ dense_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                 │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>)              │            <span style=\"color: #00af00; text-decoration-color: #00af00\">33</span> │\n",
              "└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
              "</pre>\n"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m1,121\u001b[0m (4.38 KB)\n"
            ],
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">1,121</span> (4.38 KB)\n",
              "</pre>\n"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m1,121\u001b[0m (4.38 KB)\n"
            ],
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">1,121</span> (4.38 KB)\n",
              "</pre>\n"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n"
            ],
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n",
              "</pre>\n"
            ]
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 193
        },
        "id": "96443e50",
        "outputId": "a6baeeb7-6131-43ee-82e3-7037e4e8b1b9"
      },
      "source": [
        "# Compile the model\n",
        "model.compile(optimizer='adam', loss='mse')\n",
        "\n",
        "model.summary()"
      ],
      "execution_count": 4,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "\u001b[1mModel: \"sequential_1\"\u001b[0m\n"
            ],
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"sequential_1\"</span>\n",
              "</pre>\n"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "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",
              "│ simple_rnn_1 (\u001b[38;5;33mSimpleRNN\u001b[0m)        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m)             │         \u001b[38;5;34m1,088\u001b[0m │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ dense_1 (\u001b[38;5;33mDense\u001b[0m)                 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m1\u001b[0m)              │            \u001b[38;5;34m33\u001b[0m │\n",
              "└─────────────────────────────────┴────────────────────────┴───────────────┘\n"
            ],
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
              "┃<span style=\"font-weight: bold\"> Layer (type)                    </span>┃<span style=\"font-weight: bold\"> Output Shape           </span>┃<span style=\"font-weight: bold\">       Param # </span>┃\n",
              "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
              "│ simple_rnn_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">SimpleRNN</span>)        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)             │         <span style=\"color: #00af00; text-decoration-color: #00af00\">1,088</span> │\n",
              "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
              "│ dense_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                 │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>)              │            <span style=\"color: #00af00; text-decoration-color: #00af00\">33</span> │\n",
              "└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
              "</pre>\n"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m1,121\u001b[0m (4.38 KB)\n"
            ],
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">1,121</span> (4.38 KB)\n",
              "</pre>\n"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m1,121\u001b[0m (4.38 KB)\n"
            ],
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">1,121</span> (4.38 KB)\n",
              "</pre>\n"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n"
            ],
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n",
              "</pre>\n"
            ]
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "f05c80d7",
        "outputId": "bbdba5b0-872f-4ea6-ae54-afee9f6befb9"
      },
      "source": [
        "# Train the model\n",
        "history = model.fit(X_train, y_train, epochs=10, batch_size=32)"
      ],
      "execution_count": 5,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Epoch 1/10\n",
            "\u001b[1m32/32\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 4ms/step - loss: 21.3896\n",
            "Epoch 2/10\n",
            "\u001b[1m32/32\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - loss: 4.0400\n",
            "Epoch 3/10\n",
            "\u001b[1m32/32\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - loss: 0.8394\n",
            "Epoch 4/10\n",
            "\u001b[1m32/32\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - loss: 0.8046\n",
            "Epoch 5/10\n",
            "\u001b[1m32/32\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - loss: 0.7923\n",
            "Epoch 6/10\n",
            "\u001b[1m32/32\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - loss: 0.7646\n",
            "Epoch 7/10\n",
            "\u001b[1m32/32\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - loss: 0.7993\n",
            "Epoch 8/10\n",
            "\u001b[1m32/32\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - loss: 0.7454\n",
            "Epoch 9/10\n",
            "\u001b[1m32/32\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 6ms/step - loss: 0.7321\n",
            "Epoch 10/10\n",
            "\u001b[1m32/32\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - loss: 0.7262\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "e56c1a33",
        "outputId": "334131ad-9074-4d96-f24a-6948d0aa40b8"
      },
      "source": [
        "# Evaluate the model\n",
        "loss = model.evaluate(X_train, y_train)\n",
        "print(f\"Mean Squared Error on training data: {loss}\")"
      ],
      "execution_count": 6,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\u001b[1m32/32\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - loss: 0.7240\n",
            "Mean Squared Error on training data: 0.7052367925643921\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "652c1ef9",
        "outputId": "fd6c6765-8cfc-4dae-8d96-dd846079bd36"
      },
      "source": [
        "# Make predictions\n",
        "sample_data = X_train[:5]  # Use the first 5 samples for prediction\n",
        "predictions = model.predict(sample_data)\n",
        "\n",
        "print(\"Sample Data (first 5 sequences):\\n\", sample_data)\n",
        "print(\"\\nPredictions:\\n\", predictions)\n",
        "print(\"\\nActual values (first 5 sequences):\\n\", y_train[:5])"
      ],
      "execution_count": 7,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 150ms/step\n",
            "Sample Data (first 5 sequences):\n",
            " [[[0.14198365]\n",
            "  [0.95099312]\n",
            "  [0.17591443]\n",
            "  [0.92339209]\n",
            "  [0.07856433]\n",
            "  [0.59112892]\n",
            "  [0.9911792 ]\n",
            "  [0.47697711]\n",
            "  [0.17273951]\n",
            "  [0.83176744]]\n",
            "\n",
            " [[0.93441994]\n",
            "  [0.95014313]\n",
            "  [0.4945349 ]\n",
            "  [0.60734178]\n",
            "  [0.57727994]\n",
            "  [0.7775912 ]\n",
            "  [0.10312235]\n",
            "  [0.78851067]\n",
            "  [0.05919083]\n",
            "  [0.06968241]]\n",
            "\n",
            " [[0.05934851]\n",
            "  [0.14630071]\n",
            "  [0.63276615]\n",
            "  [0.46369105]\n",
            "  [0.74823389]\n",
            "  [0.04022924]\n",
            "  [0.68399084]\n",
            "  [0.91441727]\n",
            "  [0.61302979]\n",
            "  [0.6195852 ]]\n",
            "\n",
            " [[0.0913651 ]\n",
            "  [0.60505101]\n",
            "  [0.37320765]\n",
            "  [0.04866247]\n",
            "  [0.18918733]\n",
            "  [0.59521356]\n",
            "  [0.19833356]\n",
            "  [0.04559669]\n",
            "  [0.98360196]\n",
            "  [0.5223521 ]]\n",
            "\n",
            " [[0.47814037]\n",
            "  [0.13522136]\n",
            "  [0.62111965]\n",
            "  [0.35586989]\n",
            "  [0.85132665]\n",
            "  [0.76486122]\n",
            "  [0.82593079]\n",
            "  [0.0257192 ]\n",
            "  [0.55186378]\n",
            "  [0.07151836]]]\n",
            "\n",
            "Predictions:\n",
            " [[5.0302057]\n",
            " [4.791294 ]\n",
            " [5.126524 ]\n",
            " [4.915628 ]\n",
            " [4.8002005]]\n",
            "\n",
            "Actual values (first 5 sequences):\n",
            " [[5.3346398 ]\n",
            " [5.36181715]\n",
            " [4.92159266]\n",
            " [3.65257143]\n",
            " [4.68157127]]\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 472
        },
        "id": "dcf4d4f0",
        "outputId": "fcaf8a1d-be25-43e4-fcbc-b47e79e265c4"
      },
      "source": [
        "import matplotlib.pyplot as plt\n",
        "\n",
        "# Plot training history (loss)\n",
        "plt.plot(history.history['loss'])\n",
        "plt.title('Model Loss')\n",
        "plt.ylabel('Loss')\n",
        "plt.xlabel('Epoch')\n",
        "plt.show()"
      ],
      "execution_count": 8,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHHCAYAAABKudlQAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAOvxJREFUeJzt3Xl8VNX9//H3nUky2QMJJCEaCCoJixpRFgFrpVIREQRFi6Kl2p/UEkTE8hVqQazFgG0tVQTEKthWsCqC1rohLoiKoAjVFllkMUCTsEhWGMLM/f0RZsiQhCVM5s7yej56H2TO3OUziX3knXPPuccwTdMUAABAiLJZXQAAAMCZIMwAAICQRpgBAAAhjTADAABCGmEGAACENMIMAAAIaYQZAAAQ0ggzAAAgpBFmAABASCPMAAgKhmFo6tSpp33c9u3bZRiGFixY4PeaAIQGwgwArwULFsgwDBmGoZUrV9Z73zRNZWdnyzAMXXvttRZU2HQffPCBDMPQyy+/bHUpAPyMMAOgntjYWC1cuLBe+4cffqidO3fK4XBYUBUANIwwA6Cea665Ri+99JKOHDni075w4UJdcsklyszMtKgyAKiPMAOgnptvvln79u3TsmXLvG2HDx/Wyy+/rFtuuaXBY6qqqnTfffcpOztbDodDeXl5+sMf/iDTNH32czqduvfee9W6dWslJSVp8ODB2rlzZ4Pn3LVrl+644w5lZGTI4XCoS5cuevbZZ/33QRuwdetW3XjjjUpNTVV8fLwuvfRS/etf/6q33xNPPKEuXbooPj5eLVu2VLdu3Xx6syoqKjRu3Djl5OTI4XAoPT1dP/7xj7V27dpmrR+IRIQZAPXk5OSoV69eWrRokbftzTffVFlZmYYPH15vf9M0NXjwYP3pT3/S1Vdfrccee0x5eXmaMGGCxo8f77Pv//t//08zZ87UVVddpenTpys6OloDBw6sd86SkhJdeumlevfddzVmzBj9+c9/1nnnnaef//znmjlzpt8/s+eavXv31ttvv63Ro0dr2rRpOnTokAYPHqwlS5Z493v66ac1duxYde7cWTNnztRDDz2kiy66SJ999pl3n7vuuktz5szRDTfcoNmzZ+tXv/qV4uLitGHDhmapHYhoJgAcNX/+fFOSuWbNGnPWrFlmUlKSWV1dbZqmad54441m3759TdM0zXbt2pkDBw70Hrd06VJTkvm73/3O53zDhg0zDcMwt2zZYpqmaa5bt86UZI4ePdpnv1tuucWUZD744IPetp///OdmmzZtzL179/rsO3z4cDMlJcVb17Zt20xJ5vz580/42d5//31TkvnSSy81us+4ceNMSeZHH33kbauoqDDbt29v5uTkmC6XyzRN07zuuuvMLl26nPB6KSkpZkFBwQn3AeAf9MwAaNBNN92kgwcP6vXXX1dFRYVef/31Rm8xvfHGG7Lb7Ro7dqxP+3333SfTNPXmm29695NUb79x48b5vDZNU4sXL9agQYNkmqb27t3r3fr376+ysrJmuV3zxhtvqEePHrrsssu8bYmJiRo1apS2b9+u//73v5KkFi1aaOfOnVqzZk2j52rRooU+++wz7d692+91AvBFmAHQoNatW6tfv35auHChXnnlFblcLg0bNqzBfXfs2KGsrCwlJSX5tHfq1Mn7vudfm82mc88912e/vLw8n9d79uzRgQMHNG/ePLVu3dpnu/322yVJpaWlfvmcx3+O42tp6HPcf//9SkxMVI8ePdShQwcVFBTo448/9jnm0Ucf1ddff63s7Gz16NFDU6dO1datW/1eMwApyuoCAASvW265RXfeeaeKi4s1YMAAtWjRIiDXdbvdkqRbb71VI0eObHCfCy+8MCC1NKRTp07auHGjXn/9db311ltavHixZs+erSlTpuihhx6SVNuz9YMf/EBLlizRO++8o9///veaMWOGXnnlFQ0YMMCy2oFwRM8MgEYNHTpUNptNq1atavQWkyS1a9dOu3fvVkVFhU/7N998433f86/b7da3337rs9/GjRt9XntmOrlcLvXr16/BLT093R8fsd7nOL6Whj6HJCUkJOgnP/mJ5s+fr++++04DBw70Dhj2aNOmjUaPHq2lS5dq27ZtSktL07Rp0/xeNxDpCDMAGpWYmKg5c+Zo6tSpGjRoUKP7XXPNNXK5XJo1a5ZP+5/+9CcZhuHtifD8+/jjj/vsd/zsJLvdrhtuuEGLFy/W119/Xe96e/bsacrHOalrrrlGq1ev1qeffuptq6qq0rx585STk6POnTtLkvbt2+dzXExMjDp37izTNFVTUyOXy6WysjKffdLT05WVlSWn09kstQORjNtMAE6osds8dQ0aNEh9+/bVAw88oO3btys/P1/vvPOOXn31VY0bN847Ruaiiy7SzTffrNmzZ6usrEy9e/fW8uXLtWXLlnrnnD59ut5//3317NlTd955pzp37qz9+/dr7dq1evfdd7V///4mfZ7Fixd7e1qO/5wTJ07UokWLNGDAAI0dO1apqal67rnntG3bNi1evFg2W+3ff1dddZUyMzPVp08fZWRkaMOGDZo1a5YGDhyopKQkHThwQGeffbaGDRum/Px8JSYm6t1339WaNWv0xz/+sUl1AzgBaydTAQgmdadmn8jxU7NNs3YK87333mtmZWWZ0dHRZocOHczf//73ptvt9tnv4MGD5tixY820tDQzISHBHDRokFlUVFRvarZpmmZJSYlZUFBgZmdnm9HR0WZmZqZ55ZVXmvPmzfPuc7pTsxvbPNOxv/32W3PYsGFmixYtzNjYWLNHjx7m66+/7nOup556yrz88svNtLQ00+FwmOeee645YcIEs6yszDRN03Q6neaECRPM/Px8MykpyUxISDDz8/PN2bNnn7BGAE1jmOZxj+cEAAAIIYyZAQAAIY0wAwAAQhphBgAAhDTCDAAACGmEGQAAENIIMwAAIKSF/UPz3G63du/eraSkJBmGYXU5AADgFJimqYqKCmVlZXkfWNmYsA8zu3fvVnZ2ttVlAACAJigqKtLZZ599wn3CPswkJSVJqv1mJCcnW1wNAAA4FeXl5crOzvb+Hj+RsA8znltLycnJhBkAAELMqQwRYQAwAAAIaYQZAAAQ0ggzAAAgpBFmAABASCPMAACAkEaYAQAAIc3SMLNixQoNGjRIWVlZMgxDS5curbfPhg0bNHjwYKWkpCghIUHdu3fXd999F/hiAQBAULI0zFRVVSk/P19PPvlkg+9/++23uuyyy9SxY0d98MEH+ve//63JkycrNjY2wJUCAIBgZZimaVpdhFT7UJwlS5ZoyJAh3rbhw4crOjpaf/vb35p83vLycqWkpKisrIyH5gEAECJO5/d30I6Zcbvd+te//qXc3Fz1799f6enp6tmzZ4O3oupyOp0qLy/32QAAQPgK2jBTWlqqyspKTZ8+XVdffbXeeecdDR06VNdff70+/PDDRo8rLCxUSkqKd2ORSQAAwlvQ3mbavXu3zjrrLN18881auHChd7/BgwcrISFBixYtavA8TqdTTqfT+9qzUBW3mQAACB2nc5spaBeabNWqlaKiotS5c2ef9k6dOmnlypWNHudwOORw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GgChjp4ZAAHncDiUmZnps7Vs2VJS7S2gOXPmaMCAAYqLi9M555yjl19+2ef4r776Sj/60Y8UFxentLQ0jRo1SpWVlT77PPvss+rSpYscDofatGmjMWPG+Ly/d+9eDR06VPHx8erQoYNee+215v3QAJoNYQZA0Jk8ebJuuOEGrV+/XiNGjNDw4cO1YcMGSVJVVZX69++vli1bas2aNXrppZf07rvv+oSVOXPmqKCgQKNGjdJXX32l1157Teedd57PNR566CHddNNN+ve//61rrrlGI0aM0P79+wP6OQH4idUrXQKILCNHjjTtdruZkJDgs02bNs00zdqV0O+66y6fY3r27Gn+8pe/NE3TNOfNm2e2bNnSrKys9L7/r3/9y7TZbGZxcbFpmqaZlZVlPvDAA43WIMn8zW9+431dWVlpSjLffPNNv31OAIHDmBkAAde3b1/NmTPHpy01NdX7da9evXze69Wrl9atWydJ2rBhg/Lz85WQkOB9v0+fPnK73dq4caMMw9Du3bt15ZVXnrCGCy+80Pt1QkKCkpOTVVpa2tSPBMBChBkAAZeQkFDvto+/xMXFndJ+0dHRPq8Nw5Db7W6OkgA0M8bMAAg6q1atqve6U6dOkqROnTpp/fr1qqqq8r7/8ccfy2azKS8vT0lJScrJydHy5csDWjMA69AzAyDgnE6niouLfdqioqLUqlUrSdJLL72kbt266bLLLtPzzz+v1atX65lnnpEkjRgxQg8++KBGjhypqVOnas+ePbr77rt12223KSMjQ5I0depU3XXXXUpPT9eAAQNUUVGhjz/+WHfffXdgPyiAgCDMAAi4t956S23atPFpy8vL0zfffCOpdqbRCy+8oNGjR6tNmzZatGiROnfuLEmKj4/X22+/rXvuuUfdu3dXfHy8brjhBj322GPec40cOVKHDh3Sn/70J/3qV79Sq1atNGzYsMB9QAABZZimaVpdBAB4GIahJUuWaMiQIVaXAiBEMGYGAACENMIMAAAIaYyZARBUuPMN4HTRMwMAAEIaYQYAAIQ0wgwAAAhphBkAABDSCDMAACCkEWYAAEBII8wAAICQRpgBAAAhjTADAABC2v8HC6g1dB0RPrgAAAAASUVORK5CYII=\n"
          },
          "metadata": {}
        }
      ]
    }
  ]
}