diff --git "a/.ipynb_checkpoints/LSTM crypto time series-checkpoint.ipynb" "b/.ipynb_checkpoints/LSTM crypto time series-checkpoint.ipynb" new file mode 100644--- /dev/null +++ "b/.ipynb_checkpoints/LSTM crypto time series-checkpoint.ipynb" @@ -0,0 +1,2507 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "219b6607", + "metadata": {}, + "outputs": [], + "source": [ + "import os" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "2b8e0ecb", + "metadata": {}, + "outputs": [], + "source": [ + "os.chdir(r\"C:\\Users\\yozhan\\cryptocurrency\")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "4c7b21d5", + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "b327ac53", + "metadata": {}, + "outputs": [], + "source": [ + "from cryptocmd import CmcScraper" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "137760ef", + "metadata": {}, + "outputs": [], + "source": [ + "scraper = CmcScraper(\"BTC\")\n", + "headers, data = scraper.get_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "f1ad104e", + "metadata": {}, + "outputs": [], + "source": [ + "from datetime import datetime" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "1e8efe7d", + "metadata": {}, + "outputs": [], + "source": [ + "start_date = datetime.strptime(\"01-01-2022\", r\"%d-%m-%Y\")\n", + "end_date = datetime.strptime(\"31-12-2022\", r\"%d-%m-%Y\")" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "9108a101", + "metadata": {}, + "outputs": [], + "source": [ + "bitcoin_price_list = []\n", + "date_list = []\n", + "\n", + "for record in data:\n", + " date = datetime.strptime(record[0], r\"%d-%m-%Y\")\n", + " if(date >= start_date and date <= end_date):\n", + " date_list.append(date)\n", + " \n", + " \n", + " # Note: here we should make each price as a single-element list\n", + " bitcoin_price_list.append([record[1]])\n", + "\n", + " \n", + "date_list.reverse()\n", + "bitcoin_price_list.reverse()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "fc689caf", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/png": "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C4899piQmJgonD592uvj8fHxwv/+7/9K3zObze0awYxGozB9+nRh1qxZQmNjo9fXKioqEsaOHSvcd9993V5p89prrwkRERGC2WyWvvf888/3a2P0YLtHot/97ndCSkpKt16juwbrvbr77ruFG2+8sVuv4YvBdL/EhvK8vLxuPXdPDaZ75uqGG24Q7r///m69RncN9HvlaiA0Rvfn/fJUUFAgABB27NjR4Zj+ej8cUiHoZz/7mWAwGISdO3e6LXNtamqSxjz//POCwWAQPvroIyEvL0+4//773ZYEmkwmYdq0acLEiROFs2fPel1WXFxcLIwZM0a46aabhKKiIrcxnamrqxPi4uKE+++/X8jLyxM++ugjITw83G1JoCAIwpEjR4QjR44IU6ZMEZYsWSIcOXJEOHbsGO+R0/r164VPPvlEOH36tHD69Gnh73//uxAeHi78+te/9ss9Gkz36pVXXhG2bNkinD59WsjPzxd+9atfCQCEzZs3+/VeDZb7JfrhD38oTJs2zY93x7vBcM9OnTolvP/++8Lp06eF/fv3C/fee68QFRUlXLhwYUjdK0EQhGPHjglHjhwRFi5cKMyePVv6u9xVX/797qq/7tf+/fuFdevWCUeOHBEuXrwofP3118J1110njB492m3ll6f+ej8cUiEIgNePt99+Wxpjt9uFZ555RoiPjxc0Go1www03uP1rT/wXoLcP8T/qt99+u8MxXTl69Khw/fXXCxqNRoiPjxfWrFnTLvV6e15/VTkGwz3685//LFxxxRVCaGioEB4eLkyePFl47bXXBJvN5pd7JBoM9+p///d/hdGjRwtarVaIjIwUrrvuOmHr1q1+u0euBsP9EgTHX84hISHCm2++6Zf70pnBcM+OHz8uXHXVVUJISIgQHh4u3H777cLJkyf9do9EwXCvUlJSuvy5vvz7vavX6Yv7dfToUeHGG28UoqKiBI1GI4wcOVJ45JFHhKKioi6vsT/eD2XOJyEiIiIaUobs6jAiIiIa2hiCiIiIaEhiCCIiIqIhiSGIiIiIhiSGICIiIhqSGIKIiIhoSGIIIiIioiGJIYiIiIiGJIYgIiIiGpIYgoiIiGhIYggiIiKiIYkhiIiIiIak/w/IhzPFKZOLMgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(date_list, bitcoin_price_list)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "f09637ea", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(date_list, normalized)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "f8325f36", + "metadata": {}, + "outputs": [], + "source": [ + "train_size = int(len(bitcoin_price_list) * 0.75)\n", + "train, test = bitcoin_price_list[:train_size], bitcoin_price_list[train_size:]" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "e898bd92", + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + " \n", + "def create_dataset(dataset, lookback):\n", + " \"\"\"Transform a time series into a prediction dataset\n", + " \n", + " Args:\n", + " dataset: A numpy array of time series, first dimension is the time steps\n", + " lookback: Size of window for prediction\n", + " \"\"\"\n", + " X, y = [], []\n", + " for i in range(len(dataset)-lookback):\n", + " feature = dataset[i:i+lookback]\n", + " target = dataset[i+1:i+lookback+1]\n", + " X.append(feature)\n", + " y.append(target)\n", + " return torch.tensor(X), torch.tensor(y)" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "5e0d1a2d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "torch.Size([269, 4, 1]) torch.Size([269, 4, 1])\n", + "torch.Size([88, 4, 1]) torch.Size([88, 4, 1])\n", + "torch.float32\n" + ] + } + ], + "source": [ + "lookback = 4\n", + "X_train, y_train = create_dataset(train, lookback=lookback)\n", + "X_test, y_test = create_dataset(test, lookback=lookback)\n", + "print(X_train.shape, y_train.shape)\n", + "print(X_test.shape, y_test.shape)\n", + "\n", + "# window sample, time steps, features" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "id": "0e685801", + "metadata": {}, + "outputs": [], + "source": [ + "import torch.nn as nn\n", + " \n", + "class CryptoModel(nn.Module):\n", + " def __init__(self):\n", + " super().__init__()\n", + " \n", + " #input_size: how many features (currently only 1, the time series from previous days)\n", + " #if more features are used (for example, text features, sentiment scores, then input_size should be larger)\n", + " \n", + " self.lstm = nn.LSTM(input_size=1, hidden_size=50, num_layers=1, batch_first=True)\n", + " self.linear = nn.Linear(50, 1)\n", + " def forward(self, x):\n", + " x, _ = self.lstm(x)\n", + " x = x[:, -1:, :]\n", + " x = self.linear(x)\n", + " return x" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "id": "0b3c20e9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "Epoch 0: train RMSE 32875.5898, test RMSE 18116.6016\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n", + "torch.float32\n" + ] + }, + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[56], line 14\u001b[0m\n\u001b[0;32m 12\u001b[0m model\u001b[38;5;241m.\u001b[39mtrain()\n\u001b[0;32m 13\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m X_batch, y_batch \u001b[38;5;129;01min\u001b[39;00m loader: \n\u001b[1;32m---> 14\u001b[0m y_pred \u001b[38;5;241m=\u001b[39m \u001b[43mmodel\u001b[49m\u001b[43m(\u001b[49m\u001b[43mX_batch\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 15\u001b[0m loss \u001b[38;5;241m=\u001b[39m loss_fn(y_pred, y_batch[:, \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m:, :])\n\u001b[0;32m 16\u001b[0m optimizer\u001b[38;5;241m.\u001b[39mzero_grad()\n", + "File \u001b[1;32m~\\AppData\\Local\\anaconda3\\lib\\site-packages\\torch\\nn\\modules\\module.py:1130\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[1;34m(self, *input, **kwargs)\u001b[0m\n\u001b[0;32m 1126\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[0;32m 1127\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[0;32m 1128\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[0;32m 1129\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[1;32m-> 1130\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m forward_call(\u001b[38;5;241m*\u001b[39m\u001b[38;5;28minput\u001b[39m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 1131\u001b[0m \u001b[38;5;66;03m# Do not call functions when jit is used\u001b[39;00m\n\u001b[0;32m 1132\u001b[0m full_backward_hooks, non_full_backward_hooks \u001b[38;5;241m=\u001b[39m [], []\n", + "Cell \u001b[1;32mIn[55], line 14\u001b[0m, in \u001b[0;36mCryptoModel.forward\u001b[1;34m(self, x)\u001b[0m\n\u001b[0;32m 12\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, x):\n\u001b[0;32m 13\u001b[0m \u001b[38;5;28mprint\u001b[39m(x\u001b[38;5;241m.\u001b[39mdtype)\n\u001b[1;32m---> 14\u001b[0m x, _ \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlstm\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 15\u001b[0m x \u001b[38;5;241m=\u001b[39m x[:, \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m:, :]\n\u001b[0;32m 16\u001b[0m x \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlinear(x)\n", + "File \u001b[1;32m~\\AppData\\Local\\anaconda3\\lib\\site-packages\\torch\\nn\\modules\\module.py:1130\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[1;34m(self, *input, **kwargs)\u001b[0m\n\u001b[0;32m 1126\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[0;32m 1127\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[0;32m 1128\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[0;32m 1129\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[1;32m-> 1130\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m forward_call(\u001b[38;5;241m*\u001b[39m\u001b[38;5;28minput\u001b[39m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 1131\u001b[0m \u001b[38;5;66;03m# Do not call functions when jit is used\u001b[39;00m\n\u001b[0;32m 1132\u001b[0m full_backward_hooks, non_full_backward_hooks \u001b[38;5;241m=\u001b[39m [], []\n", + "File \u001b[1;32m~\\AppData\\Local\\anaconda3\\lib\\site-packages\\torch\\nn\\modules\\rnn.py:769\u001b[0m, in \u001b[0;36mLSTM.forward\u001b[1;34m(self, input, hx)\u001b[0m\n\u001b[0;32m 767\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcheck_forward_args(\u001b[38;5;28minput\u001b[39m, hx, batch_sizes)\n\u001b[0;32m 768\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m batch_sizes \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m--> 769\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43m_VF\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlstm\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mhx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_flat_weights\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbias\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnum_layers\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 770\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdropout\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtraining\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbidirectional\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbatch_first\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 771\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 772\u001b[0m result \u001b[38;5;241m=\u001b[39m _VF\u001b[38;5;241m.\u001b[39mlstm(\u001b[38;5;28minput\u001b[39m, batch_sizes, hx, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_flat_weights, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbias,\n\u001b[0;32m 773\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mnum_layers, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdropout, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtraining, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbidirectional)\n", + "\u001b[1;31mKeyboardInterrupt\u001b[0m: " + ] + } + ], + "source": [ + "import numpy as np\n", + "import torch.optim as optim\n", + "import torch.utils.data as data\n", + "\n", + "model = CryptoModel()\n", + "optimizer = optim.Adam(model.parameters())\n", + "loss_fn = nn.MSELoss()\n", + "loader = data.DataLoader(data.TensorDataset(X_train, y_train), shuffle=True, batch_size=8)\n", + "\n", + "n_epochs = 2000\n", + "for epoch in range(n_epochs):\n", + " model.train()\n", + " for X_batch, y_batch in loader: \n", + " y_pred = model(X_batch)\n", + " loss = loss_fn(y_pred, y_batch[:, -1:, :])\n", + " optimizer.zero_grad()\n", + " loss.backward()\n", + " optimizer.step()\n", + " # Validation\n", + " if epoch % 100 != 0:\n", + " continue\n", + " model.eval()\n", + " with torch.no_grad():\n", + " y_pred = model(X_train)\n", + " train_rmse = np.sqrt(loss_fn(y_pred[:, -1:, :], y_train[:, -1:, :]))\n", + " \n", + " y_pred = model(X_test)\n", + " test_rmse = np.sqrt(loss_fn(y_pred[:, -1:, :], y_test[:, -1:, :]))\n", + " \n", + " \n", + " print(\"Epoch %d: train RMSE %.4f, test RMSE %.4f\" % (epoch, train_rmse, test_rmse))" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "3328130b", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "torch.Size([269, 4, 1])\n", + "torch.Size([269, 1, 1])\n" + ] + }, + { + "data": { + "image/png": "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deqUoYz75+Tn56O8vLxKS4/GarWidevWhh8iIiIyL58Gne7du8NutyM9Pd15raysDBs2bMCQIUMAAAkJCQgPDzeUyc3NxZ49e5xlEhMT4XA48O233zrLbN26FQ6Hw1Bmz549yM3NdZZZu3YtrFYrEhISfHlbREREFKKae/uCoqIi/PDDD87HWVlZyMzMRExMDLp27Yo5c+Zg0aJF6NWrF3r16oVFixahZcuWmDx5MgDAZrPh3nvvxdy5c9G2bVvExMRg3rx56N+/P0aOHAkA6Nu3L0aPHo1p06bh9ddfBwBMnz4dSUlJ6N27NwBg1KhR6NevH5KTk7FkyRKcPXsW8+bNw7Rp09hSQ0RERMLbKV3r1q1TAKr8TJ06VSklU8wXLFig7Ha7slqtaujQoWr37t2G97hw4YKaOXOmiomJUZGRkSopKUllZ2cbypw5c0ZNmTJFRUdHq+joaDVlyhSVn59vKHP06FE1duxYFRkZqWJiYtTMmTNVSUlJne+F08uJiIhCjzd/vy1KKRXEnBVUhYWFsNlscDgcbAUiIiIKEd78/eZeV0RERGRaDDpERERkWgw6REREZFoMOkRERGRaDDpERERkWgw6REREZFoMOkRERGRaDDpERERkWgw6REREZFoMOkRERGRaDDpERERkWgw6REREZFoMOkRERGRaDDpERERkWgw6REREZFoMOkRERGRaDDpERERkWgw6REREZFoMOkRERGRaDDpERERkWgw6REREZFoMOkRERGRaDDpERERkWgw6REREZFoMOkRERGRaDDpERERkWgw6REREZFoMOkRERGRaDDpERERkWgw6REREZFoMOkRERGRaDDpERERkWgw6REREZFoMOkRERGRaDDpERERkWgw6REREZFoMOkRERGRaDDpERERkWgw6REREZFoMOkRERGRaDDpERERkWgw6REREZFoMOkRERGRaDDpERERkWgw6REREZFoMOkRERGRaDDpERERkWgw6REREZFoMOkRERGRaDDpERERkWgw6REREZFoMOkRERGRaDDpERERkWgw6REREZFoMOkRERGRaDDpERERkWgw6REREZFrNg12BJkMp4Pz5YNeCiCi0tGwJWCwAAKUUzpfzv6OhqGV4S1h+/h4DjUEnUM6fB1q1CnYtiIhCS1EREBUFADhffh6tUvjf0VBUNL8IURFRQfls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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "with torch.no_grad():\n", + " # shift train predictions for plotting\n", + " train_plot = np.ones_like(bitcoin_price_list) * np.nan\n", + " y_pred = model(X_train)\n", + " print(y_train.shape)\n", + " print(y_pred.shape)\n", + " y_pred = y_pred[:, -1, :]\n", + " train_plot[lookback:train_size] = model(X_train)[:, -1, :]\n", + " # shift test predictions for plotting\n", + " test_plot = np.ones_like(bitcoin_price_list) * np.nan\n", + " test_plot[train_size+lookback:len(bitcoin_price_list)] = model(X_test)[:, -1, :]\n", + "# plot\n", + "plt.plot(bitcoin_price_list, c='b')\n", + "plt.plot(train_plot, c='r')\n", + "plt.plot(test_plot, c='g')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d47df64e", + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.preprocessing import MinMaxScaler\n", + "\n", + "scaler = MinMaxScaler(feature_range=(0, 1))\n", + "scaler = scaler.fit(bitcoin_price_list)\n", + "print('Min: %f, Max: %f' % (scaler.data_min_, scaler.data_max_))\n", + "normalized = scaler.transform(bitcoin_price_list)" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "id": "56e81293", + "metadata": {}, + "outputs": [], + "source": [ + "# normalized\n", + "\n", + "train_size = int(len(normalized) * 0.75)\n", + "train, test = normalized[:train_size], normalized[train_size:]" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "id": "39904e6b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "torch.Size([269, 4, 1]) torch.Size([269, 4, 1])\n", + "torch.Size([88, 4, 1]) torch.Size([88, 4, 1])\n" + ] + } + ], + "source": [ + "lookback = 4\n", + "X_train, y_train = create_dataset(train, lookback=lookback)\n", + "X_test, y_test = create_dataset(test, lookback=lookback)\n", + "print(X_train.shape, y_train.shape)\n", + "print(X_test.shape, y_test.shape)\n", + "\n", + "# window sample, time steps, features" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "id": "a26b8bcb", + "metadata": {}, + "outputs": [], + "source": [ + "import torch.nn as nn\n", + " \n", + "class CryptoModel(nn.Module):\n", + " def __init__(self):\n", + " super().__init__()\n", + " \n", + " #input_size: how many features (currently only 1, the time series from previous days)\n", + " #if more features are used (for example, text features, sentiment scores, then input_size should be larger)\n", + " \n", + " self.lstm = nn.LSTM(input_size=1, hidden_size=50, num_layers=1, batch_first=True)\n", + " self.linear = nn.Linear(50, 1)\n", + " def forward(self, x):\n", + " x = x.float()\n", + " x, _ = self.lstm(x)\n", + " x = x[:, -1:, :]\n", + " x = self.linear(x)\n", + " return x" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "id": "de43b258", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 0: train RMSE 0.2444, test RMSE 0.3855\n", + "Epoch 100: train RMSE 0.0453, test RMSE 0.0218\n", + "Epoch 200: train RMSE 0.0425, test RMSE 0.0163\n", + "Epoch 300: train RMSE 0.0351, test RMSE 0.0200\n", + "Epoch 400: train RMSE 0.0358, test RMSE 0.0250\n", + "Epoch 500: train RMSE 0.0349, test RMSE 0.0250\n", + "Epoch 600: train RMSE 0.0359, test RMSE 0.0249\n", + "Epoch 700: train RMSE 0.0358, test RMSE 0.0243\n", + "Epoch 800: train RMSE 0.0375, test RMSE 0.0242\n", + "Epoch 900: train RMSE 0.0353, test RMSE 0.0270\n", + "Epoch 1000: train RMSE 0.0349, test RMSE 0.0240\n", + "Epoch 1100: train RMSE 0.0350, test RMSE 0.0235\n", + "Epoch 1200: train RMSE 0.0373, test RMSE 0.0318\n", + "Epoch 1300: train RMSE 0.0349, test RMSE 0.0212\n", + "Epoch 1400: train RMSE 0.0353, test RMSE 0.0253\n", + "Epoch 1500: train RMSE 0.0346, test RMSE 0.0237\n", + "Epoch 1600: train RMSE 0.0364, test RMSE 0.0265\n", + "Epoch 1700: train RMSE 0.0411, test RMSE 0.0290\n", + "Epoch 1800: train RMSE 0.0346, test RMSE 0.0245\n", + "Epoch 1900: train RMSE 0.0357, test RMSE 0.0190\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import torch.optim as optim\n", + "import torch.utils.data as data\n", + "\n", + "model = CryptoModel()\n", + "optimizer = optim.Adam(model.parameters())\n", + "loss_fn = nn.MSELoss()\n", + "loader = data.DataLoader(data.TensorDataset(X_train, y_train), shuffle=True, batch_size=8)\n", + "\n", + "n_epochs = 2000\n", + "for epoch in range(n_epochs):\n", + " model.train()\n", + " for X_batch, y_batch in loader: \n", + " \n", + " X_batch, y_batch = X_batch.float(), y_batch.float()\n", + " \n", + " X_batch = X_batch.float()\n", + " y_pred = model(X_batch)\n", + " \n", + " loss = loss_fn(y_pred, y_batch[:, -1:, :])\n", + " optimizer.zero_grad()\n", + " loss.backward()\n", + " optimizer.step()\n", + " # Validation\n", + " if epoch % 100 != 0:\n", + " continue\n", + " model.eval()\n", + " with torch.no_grad():\n", + " y_pred = model(X_train)\n", + " train_rmse = np.sqrt(loss_fn(y_pred[:, -1:, :], y_train[:, -1:, :]))\n", + " \n", + " y_pred = model(X_test)\n", + " test_rmse = np.sqrt(loss_fn(y_pred[:, -1:, :], y_test[:, -1:, :]))\n", + " \n", + " \n", + " print(\"Epoch %d: train RMSE %.4f, test RMSE %.4f\" % (epoch, train_rmse, test_rmse))" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "id": "ef0a74dc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "torch.Size([269, 4, 1])\n", + "torch.Size([269, 1, 1])\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGdCAYAAADAAnMpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1SklEQVR4nO3dd3hUZd7G8e+kh5CEhIQUErr0ojQBxS6Ki7r2VVcs4MraQd1X7HVR13XRVSyr6K4Ve0UFC0gRBARBem8JhARI7znvH8/UZNLLpNyf68qVOWfOmXlOZt25+T3l2CzLshARERHxET9fN0BERETaNoURERER8SmFEREREfEphRERERHxKYURERER8SmFEREREfEphRERERHxKYURERER8akAXzegJsrKykhJSSE8PBybzebr5oiIiEgNWJZFdnY2iYmJ+PlVXv9oEWEkJSWF5ORkXzdDRERE6mDv3r0kJSVV+nyLCCPh4eGAuZiIiAgft0ZERERqIisri+TkZOf3eGVaRBhxdM1EREQojIiIiLQw1Q2x0ABWERER8SmFEREREfEphRERERHxKYURERER8SmFEREREfEphRERERHxKYURERER8SmFEREREfEphRERERHxqVqHkZ9++olzzz2XxMREbDYbn376abXnLFy4kGHDhhESEkKPHj146aWX6tJWERERaYVqHUZyc3MZMmQIzz//fI2O37lzJ+eccw5jx45l9erV3HPPPdx666189NFHtW6siIiItD61vjfN+PHjGT9+fI2Pf+mll+jSpQszZ84EoF+/fqxcuZKnn36aiy66qLZvLyIiIq1Mo48Z+fnnnxk3bpzHvrPOOouVK1dSXFzs9ZzCwkKysrI8fhpLYSH885+wZ0+jvYWIiIhUodHDyIEDB4iLi/PYFxcXR0lJCenp6V7PmTFjBpGRkc6f5OTkRmvfCy/AnXdC9+6N9hYiIiJShSaZTVP+1sGWZXnd7zB9+nQyMzOdP3v37m20tq1da36XlUFKSqO9jTQQfU4iIq1Po4eR+Ph4Dhw44LEvLS2NgIAAOnbs6PWc4OBgIiIiPH4aS2io6/H77zfa20gDeegh6NwZajCJS0REWohGDyOjR49m/vz5HvvmzZvH8OHDCQwMbOy3r1Zamuvxu+/6rh1SvdJSeOUV8/iNN3zaFBERaUC1DiM5OTmsWbOGNWvWAGbq7po1a9hjHwE6ffp0Jk6c6Dx+ypQp7N69m2nTprFx40Zmz57Na6+9xp133tkwV1BP7mFkzRrzhSfN0+LFcPCgeTx/PhQU+LY9IiLSMGodRlauXMlxxx3HcccdB8C0adM47rjjeOCBBwBITU11BhOA7t27M3fuXBYsWMCxxx7Lo48+ynPPPddspvW6h5GiIo1HaM4+/ND1OC8PFizwWVNERKQB2SzHaNJmLCsri8jISDIzMxt8/EhUFBw96tpesABOPrlB30IaQFERJCeb8NirF2zbBjfdBDVce09ERHygpt/fbfreNEVFriAyfLj5vWOHz5ojVfjwQxNEEhPh7r+VcRnvcej3g75uloiINIA2HUYOHTK/AwJg6FDzWGGkeXJUQKZMgVFrXuI9LmfSb7f6tlEiItIg2nQYcYwXiY01pX9QGGmOUlPh55/Bz2Zx/bUldFlipj0Nz/reLDwiIiItmsII0KkT9OhhHiuMND+HD5vf7wVdRXxyIOG/LQYguiwDNm/2OHb+fNiypalbKCIi9aEwgsJIc5edbX5fUvh2hecKf1jsfPzqqzBuHFxySVO1TEREGoLCCJ5hJC3N9eUnzYO3z2MXXQEoWbAEMON/rr/ePLd2rXpvRERaEoURTBiJjDRjRwA2bfJdm6Si7Gzwp8S14623uD96FgD+y00Yef11z3Mcg5NFRKT5UxjBhBGAYcPM7xUrfNMe8S47G9qT49px8cWkdRoIgP++3Vz+J4vFiz3P2b+/CRsoIiL10qbDiM0GYWGuMDJypPn9yy++a5NUlJ0NEWSZjaAgCA7Gr1MMAIFWMV/NyeaLL8zTNsoIJY99e9RPIyLSUrTpMDJ7NuTkwDXXmO0RI8xvVUaal+xsCMc+cCQ83PyKa0cu7QCIxfTJRHKU/SE9ySOME/86EAoLfdJeERGpnTYdRhz87H8FRxjZuBGysnzXHvHkLYzExMAhzCCfnmznNL7nkoQlJBTsAiD6wEbN8RURaSEURtzExcGE+JXcZT3J79/s83VzxK66MPIG1/A9ZzCt5CnPE/fpMxQRaQkURsp5qvA2nuRuir6c5+umiJ3HmBH7jZbcw0giqQD0O/ST54kKIyIiLYLCSDlbOp8KQKfff/BxS8ShuspIpRRGRERaBIWRcnZ1N2EkaduPYFk+bo2A9zASHQ3pxHg9/kdOAcDap/m9IiItgcJIOWm9xlBIEBHZKbB1q6+bI5QLI/ZumsDAyisjCzkZgOJdqoyIiLQECiPlhEaHsoxRZuPHH33bGAG8V0bGjoWOfbyEkcBA1oaaz8/aqzAiItISKIyUEx7u+pe1Vj9rHjwGsNrDSFAQ3PWUlzDSvTsZ7c19a/xTFUZERFoChZFywsMhlQSzcfSoT9sihrfKCOC6mZC7Xr3IjkwCICAnU3c9FBFpARRGygkPhxzamw19kfmcZXkfMwJ4hpE//hG6dIErrsAvMpxM7MfpJjUiIs2ewkg54eGQjf1f3wojPldYCCUllVRGYtxm01x4IezeDVdeSXg47MNURzS9V0Sk+VMYKUdhpHlxfATlx4wAEBlpptWAqYrgOsTZ1Zaa2gStFBGR+lAYKccjjOTkVH2wNDpHGIm0eamM2GzmVssRETBokHN3eDgcpYPnC4iISLMV4OsGNDft26sy0pw4PoJwWzZYeI4ZAfjhB8jPN1USu/BwyHKMGdEdD0VEmj1VRspxH8BqtZYwsm8fXHwxLFzo65bUmjOMeBszAmaOr1sQcRziDJQKIyIizZ7CSDnuX2S24mIzgrIF++QT+H7wVPjoIzjlFF83p9ZMGLEIK6skjHihyoiISMuiMFJOcDAU+Ld37Wjh1ZELL4T2R/Y0zIt9/jl8/33DvFYN7d4NYeTih/0+QeW7abxQGBERaVkURsqx2aBdRAB5hJodLWAQ66JF8Osqq9Ib+2XQ0bVRh5v/lZXBG08ehPPPhzPOgIKCuja1VnbtgunTYQDrzQ4/PwgNrfa89u3dwkgLD5MiIm2BwogXLWnhs3Xr4OSTYeeYK7CSkiAjo8IxmbiNqTh0qNbv8c478NLdO107NmyoS1Nr7ZFHIPzoHuYGnm92nHWWSYvVUGVERKRlURjxoiWtNTJjBpxo/cRFRe9hS0mBn37yeD4iAkLJd+3YsaPW77F+PXRlt2vHb7/Vtbk1VloKX3xuMYsb6Vh8EAYPhrffrtG5GsAqItKyKIx40VLCyLZtMOc9iwd4xLVz716PY/z9IZJM146dO6mtsjLoxi7XjjVrav0atbVsGYzJ+JwJfIUVGAjvvQdRUTU6V5UREZGWRWHEi5qEkaIiOPj+QvMv9kWLmrB1Lv94sowXrL9yBm6DSt0qH5ZlvovrG0ZSUpo+jHz+OVzAJwDYbroJ+vWr8bkKIyIiLYvCiBc1CSMTJ8Inl71rBm188EETts7Yvx/2vT6fKbxMGTZ+5TjzhFvYyM013R0dOOo6sQ7dNKmp5cLIb7/VaSBsbcybB0nY7yszdGitzvUII824siUiIobCiBft27sNYK1kNs3KlW5flunpTdQyl1degZ6lmwHYO+wCpjPDPOEWNjLtBZEGr4xkZpo5t41o1y63v2/nzrU61yOMOBKZiIg0WwojXlRXGbEsUy1wflnWYYZKfW3bBomkABDUM4mddDdP7NzprFqYMGJ5hpFdu2r9Xin7LecA1gKCzc6tW+vY8url5MDRo9CZ/WZHHcKI8/MDVUdERJo5hREvqgsj2dmQl+f2ZemDykh6OiRg7kgb2TeB3XSlDJupBNjDUWamWTAsALfKQGamt5erVG4uBGUdoh35lGFjJcPNE40YwPbvh3CyCMdelaplGAkNhRK/YAoJMjs0bkREpFlTGPEiIqLqMJKaCsEUEIs9hPggjBw65Aoj7XomEhkbzH7sX9r2rpjMzHJdNGBuKlcL7uNF0gI7s48kVwMayb59bkEvMtL0m9WCzebZVXNwq8KIiEhzpjDixYABrjDi7WZ5qaluX5ZgwkgjD+gs79AhVzcNCQl07Qo76GG27eNGjh71Ekby8mrV1pQUV3fU4dAk0uhknkhLq0/zq+QRRmpZFXFwX4V198T7YfHihmqeiIg0MIURL049FfL9zL/Gcw5UHMDqMV4EzPLoK1bAli1N0j7L8qyMkJBAYiKe40YwlRHHTJpDxLheoBY3/0tJgRDM8u+loWEcItY80chhpK6DVx38/V1hZGTKpzB2bAO1TkREGprCiBfh4ZDYx1RGDu/2XhnxCCMAxx8Pffo0yWDW3FywCgvpyGGzIzGRxETYQxezbV/4zL2b5gDxrheoRVdNSgoEUgyAf3Bgi6mM7NlTbhCriIg0Wwojleg30nyR5R+oOOCzQjeNm+xex2L16QM//9xobXOviljBwRAVRWIi7CXZHOAljBwilhL8zfN5eTV+r9RUCKIIAP/QIFcYaaoxI0lJdXqNrl3dpvc6aIqviEizpDBSib4jTBjpm/kLDBxolly181oZsQvPSsG2ZQu89Vajtc09jNgSEsBmqzSMOLppMokk33En4lpURvLy3Coj7YKarJumvpWRjz+GTj3KVUaOHq1fw0REpFEojFSi/aDulDr+POvXm7q/XVVhxCklpdHaVn68CFBtZSSTSPJoZ56vRRgpKnJVRoLaNV03TTL2e+zUMYwMHQrDex3x3Pn11/DYY1BcXM8WiohIQ1IYqUTkcT04nuWuHW7/qk5NdX1Z5hDm3L9g8C3M4q9mow4rndZUerrnTBooF0aOHIHcXI8wcpQOrspILbppiotdYSSwvVs3TXa2GbjbwPLzISc9n4H8bnbU4p405flt3uS54/rr4f774auv6tFCERFpaAojlWjfHtYGDmcdA82OI65/Zaem4lyR9Fdc9005cvx4/s0tZsNtJdSG5lEZSUx0/somgkzHOIm9ezl61LObpq6VEUc3TXD7IDKJpIhAV0Ma2G+/wfEsJ4hirIQE6Nmz7i92zTWe247wtGlThUNFRMR3FEYqYbNBx46mogA4KyN5eVB0NJdOmC/iVQxznhM+vA+76GY2srI8AkxDOnTIbUyFPYx07AiBgZ5dNe5jRrLcx4zUsTISEh4I2Bp13MjPP8NYzF2QbSedZD6Iurr7bh469hN+oty03kZcyl5ERGpPYaQK0dFwhCizYQ8ju3e7qiJH6UAJAc7j44/vSgGhHLDZp9HW4Q65NXHoEHTBPoali5nO6+dnemzKh5F+bAQgJahrnQawuo8ZCY4wy6s7w0gjVEaWLoWT+Mls1HdtkJAQdg7+o2sxOIdt2+r3uiIi0qAURqrgrTKyc6fbHWy7dyM7sKPz+B7HmKmzOyz74mMjRsDUqQ3ervR0twGeycnO/e7jRvK37uXQnnwGsQ6A30NH1qmbprjYc52RqCgabRCrZcHyJSWMxj4t+qST6v2aCQlu4clBYUREpFlRGKlCdWGkw5BuPHToJvjTn+Cjj2jXznz5OVdCBZg506xS1oAOpVmuMGKvjIBnZeTgL7sZYq02N8mLj+dIWFKdumncKyMEBdGxYyOEkfR0WLCAvXvBL3Uf7cnFCgoy6/LXU3w8pLuvPgtmplMDfyYiIlJ3CiNV8BZGdu1yq4x064ZfZDi8+y5ceKHzHOcN6xw2b27QdhXsPUQIhVg2m8fU15NOgg30B6Dzgrf5G0+ZJ0aMILSdrU7dNO5jRggKIizMbTExL/ftobAQxoyBadNq9gY5OdCrF5x6Kjvf+dk5S8iWmGj6nurJ399LGAHYvr3ery0iIg1DYaQK1XbTdOtW4ZyhQ3ENYnVowNkbxcUQmGrGi5TFJZhRq3Y33QR7jzufD7iYwLIi/shn5omRIwkNpd6zaQgMJDSUqkPNhg1mFOp//1uj1/9t3J1mQRTA79eVrinL9oG59TVqVCVhRF01IiLNhsJIFTzCiH1mTHVh5M47ofBP1/Act7DeXqVoyDCyfz90tkwXjV/XZI/nAgPhjbcCuCX6HT7iQtcTI0Z4hog6zqYhKKj6MOLYV4NukB3rchn483+c237797rCSB0XOytvxAh44FlXGHEuia8ZNSIizYbCSBW8dtPstOiOfUEzL2Fk0CB47d12vDXiOV5jktnZgGFk927X4FWb23gRh/79Yf2WQH6+9T02jb0eTjsNTjqp+hBRifJjRqp6naIi+OEr+77CQigpqfK1l7y7B3/KnNshB3Y2eGUEYNhZrjDyG0PMg0ZcIVdERGonoPpD2q6OHV1Te0s2buGTbnfx5pH1xJKOFRSErXv3Ss899ljYtKKv2WjAMLJrl9u03uRkr8d07AhPPxsIvOLcFxJSt24a99k0jm6ayl7nww/h3b/ncZpjR24uREZW+tobvt3rsR15eCeJjqDTgGGEGFcY2UB/hvGrGasiIiLNgsJIFdwrIwFHM7jk6NOAKfUHvPgiRERUeu6xx8J32MPIli3mjrH+/vVu0+7d0MfLTJrq1LWbpsrKSLnXSUmBUNwCShVhJDsbDv9mQtVekkhmH7E5O0l0VKIaMoxERUFiIjnp+awrGmT2KYyIiDQb6qapgkc3jV0G0fxt1CK47roqzx0yBHbTlQKCTZdFA92rJmV7PkP51WxUUhnxpq7dNLUZM5KfXy6MVPGF//PP0LnUhJGFnAxAZMlh+mKvIjVkGPHzg1WrePzSta41R7zNBCqvsBAefRTmzKm2y0lEROpOYaQK0dEVw0je25/y6Hejqz23f38ow5+tHGN2NNDsjUu+ncwxbKMwLApOPLHG59V1No23bpoah5HKBrFu2EDvaX/gYj40m/Qn0754XFK5Ze4bTHw8JfFJZBNutmtSGXn1VXjgAbOOzNlnN2x7RETEqU5hZNasWXTv3p2QkBCGDRvGokWLqjz+7bffZsiQIbRr146EhASuvfZaMjIy6tTgphQd7bamhl3y2QMIC6vkBDcdOkBYGGzHfqO3eq5rUVYGc17N5vSD7wCw8bGPoVOnGp/fkN00lYWavLwahpHbbqPb+rn0ty9Vv4cu7C4/Hbqhwwjm88ihvdmoJoykpcH2t5a6dvzwg6mUiIhIg6t1GJkzZw6333479957L6tXr2bs2LGMHz+ePXv2eD1+8eLFTJw4kUmTJrF+/Xo++OADVqxYweTJk+vd+MYWFARX/LncOI/o6Bqda7NBUlLDhZHFi+G2611f7h3OP7lW5zdIZSQoiHbtKg81Ne6mKXcDwT10YXOx22DgsDAID69xG2sqLAxXZaSabpr774eyZb+4dliWGT0sIiINrtZh5JlnnmHSpElMnjyZfv36MXPmTJKTk3nxxRe9Hr9s2TK6devGrbfeSvfu3TnxxBO54YYbWLlyZb0b3xTefNNto0OHWp2bnNxwYeTQIQjG/Ms8nxCSkmt3N9sGmdpbg26adrgFlMoqI8cc47G5ly78ylDPxtbnbr2VaN++5pWRJZ9ncAyma+1oeJLZqVVbRUQaRa3CSFFREatWrWLcuHEe+8eNG8fSpUu9njNmzBj27dvH3LlzsSyLgwcP8uGHH/KHP/yh0vcpLCwkKyvL46dZSEqq1eENGUYKCyGEAgCCI4IJqOU8qKZY9KymY0asHM/9VmJnnuU23uJKs+OUU2rcvtqoaWWkpAR6pJuqyBaOYbX/CPOEwoiISKOoVRhJT0+ntLSUuLg4j/1xcXEcOHDA6zljxozh7bff5rLLLiMoKIj4+Hg6dOjAv//970rfZ8aMGURGRjp/kmsxa6RRjR9fq8M9wsiOHabUX0dFRa7KiF9oSK3Pr0s3TWmpGavi3k1TVRipMGbES/Vh6VLYtDzTY1+/wYHk046reItbTltf46Xka8tjzEhuLtdMLOPGSYUVFkDbtg2GliwHYDnH83t+T9cTIiLS4Oo0gNVWroRuWVaFfQ4bNmzg1ltv5YEHHmDVqlV888037Ny5kylTplT6+tOnTyczM9P5s3fv3kqPbRI//wx33QUPP1yr05KTzfTeUpu/+eJOTa1zE9wrIwQH1/r8unTTFDsySLlumspCTU0qI9dfD4WH3MLItdcyY4Zrc1e7/tCuXY3aV1se3TTAh2/mcdbsS7GSk11rwZSV8fvv0J8NAKzmONYXNkx1S0REvKtVGImJicHf379CFSQtLa1CtcRhxowZnHDCCdx1110MHjyYs846i1mzZjF79mxSK/lyDg4OJiIiwuPHp0aNgqeeMt/otZCcDCUEkhpgX5ysHl9mhYWuygghdauM1LabpsjRO1NZN01hofkCt6tJGNmwASIxYeSijgvgtdc49liYORMCAmDixJpfU22FhZm2l9r/Zx9BFqfzPbayMnjjDROC7r6bdesgiX0A5ER3bbCuNhER8a5WYSQoKIhhw4Yxf/58j/3z589nzJgxXs/Jy8vDr9yt4P3tK5Fa9ei2aAkcQ0y2WvX/MqtvZaQuy8E7KiOVdtMAFBQ4H+bllRvA6qWbJjnZhACA0ed3cg5Uve02c/gll9TwgurATMm2kWsz1ZFBrKM99sA0Y4ZJX//4BxvWldLZvt5JQLckVxjZudP0W4mISIOqdTfNtGnTePXVV5k9ezYbN25k6tSp7Nmzx9ntMn36dCa6/fP23HPP5eOPP+bFF19kx44dLFmyhFtvvZWRI0eS2AhrSTQnjqEue0rs15mWVufXatDKSEmJK2lUoUJlpPxsGvAINjWpjBw5bDkrI5Pv8Fwqvg4Zq1ba23toHINYT2CJ1+P8Vq1w3rAvvF8Se+hCqV+A+RD273cd+PjjcO219RoLJCIidbg3zWWXXUZGRgaPPPIIqampDBw4kLlz59K1a1cAUlNTPdYcueaaa8jOzub555/njjvuoEOHDpx22mk8+eSTDXcVzVREhPkpzLJ/y9Zj0awGHTMCJjkEBlZ5ToUxI/bKSBn+FBJEMEW1CiPFxVCWm0cApmunQ5em7X5zLFaXbZlUMgbvM8BO3f8WgZRg+fnRaVAcpQSQ1q47CTlbYetWkzJLS+G++8wJN98Mw4Y1xSWIiLRKdbpR3o033siNN97o9bk33nijwr5bbrmFW265pS5v1eLFxDRcGKlvZaQAt/Py86u80R+4KiPlu2kACmyhBFtFHuNPqptNc/Soa7yI5e+PrSZL2TYgx9s5BrGO5mevx11V+rp5EJ9Ar77mP5Gt/n1IYCts3gynnQbu46bUdSMiUi+6N00jCw52CwE+rIyYLgobOdi/kfftq/ac4mLwoxR/7F+2gYHOiS7eZuZUVxlxDyO2iIhGWdisKs7KiL2bJgzvA3kd+23JSfTqZfb9lt/bPNiyxWx/6TbDqxaLyImISEUKI40sOBgK8X1lpHdvM1vlG+w3fKtinRcHj9VXwaMykmd5hhHLqj6MHDniCiNEeo4XaQoBAebzcJ/eC1CE6a46SCcOBHR2PZGURM+eJjOtK+pj9m3ezJo18NgUtzBSkzsAi4hIpRRGGplHGHGbeVJbDTFmZOhQeIq/mR1vvw3VrN/icV8acA5ghYozcxyXVtVsmiNHXDNpfBFGoNwqrEAG0WygPwCb6cMPJSe5Dk5KIiTEDBHZjCuMzJ8PySiMiIg0FIWRRtZcKiMAo0fDCkayNfEkM6Pm/ferPL5CZcQtjJTvpnH0VNS0m8aXYcS9MrKJvs6pu1vozU94hhEwt9LZgr2bZtcuMtMKFUZERBqQwkgjCwlpmDBSVFS/ygiYMALwYsr5AOR99UOVx3vcl8bfH/z9CQ423RblF1CrSRgp27yVsSwyGz5ayK59e8/KyCb68gOnAfBzuzNYiNvdkDt1AkwYOUA8BUHhUFZGwO7tnmGkmpvuAbBsGTzxhMcicSIiYtRpNo3UXHOrjADOL9+ApT/Z+2K8T/EtKnLrprEfY7OZt8/Pr1gZ8aeEQEpcL+D+JW1ZXP5gb9d2M6mMbKYPs7iJI2ddzp6caDYtcVszJCEBcNxk2Ma+sD70KlpJu72ba18Zcfzx4+PhmmvqfR0iIq2JKiONrCHDiLMyUscwkpxslsNYy2AOEUNQYQ788kulx5e/Y6+Dt/vTVJjWC6Yy4lgQrPyMk2YSRjbRF4ContEMHAhg43S+Y+Okp+GMMwCcM2p+tw0229u/rXs3zaZN9Wm+iEirpDDSyBqlMlLHbhqbzdw19/q/+PEjp5qd339f6fEelZFyYcTbmJF25afKlpW5rjnT8069vgoj7dtDLq71TYZd0ZfoaJg+HQYMMPt+4HSKb73DOfXYVEbglbw/AzD+0H9JxHVfJSs9g4y/PYE1dCged/3zprGXmRURaYEURhpZo6wzUsfKCJhM0aULLGOU2bFhQ6XHelRG3LpyvN10z31ar2OqLODsqinNOOr54j4KIwEBboNogQff6E5amhmr6qiAAHR2m+Hbowf4+cE3BSdT3KUnoXjOirK98Tod/zEd2+rV8K9/VXjPJYvcFkVTGBERqUBhpJE1p8qIQ1QU7MN+F7+UlEqP85hNU1llZPVq2LvXo5smh/YU2uxtPHKE9HQ4Z8xRzxf30UJhO3eWW4k2MBD7fRsZOtS1Ozra9Tg4GAYOBAs/vki8oeo3OHQIsrKcm7m58IeTXNsKIyIiFSmMNLLmNGbEIToaUrDfvK+yMPLVV5z69zP4hePNtlsYadfObczIhx/C0KEelZE82rEt2N7nceutLF1Uii27XDeN+7d9E9q0Cf7D9bzPJTBnjsdzcXGwZo1ZZLX84rA33WR+X7psKn/mTc7lc/7Cy97fZNs258PDh6EDR13PaTaNiEgFCiONrCEXPWuoykiFMFL+rrPZ2XDBBSRucBtPUlk3DUB6OoVZhc4wkk8od0bNNgd+8w2xiz92fiEXEsT+y++ESZPqdQ11NX065NKe7//yPlx6aYXnhwxxjRFxd9VVEBsLpQTwNn/mS851/Q3L27rV+TAnp1wYyfO+BL2ISFumMNLIGmqdkYaujKRipq2Sn19xcOm6da5b9jpU1k1jZ6Udcg5gzSeUhUeHUHbNtQC0+/0X5xfyXM4h875/uG4U08TuvRcWLIDnnqvdeaGh8OSTJpA4lkgpv6z8AeLMA7fKyNGj5cKI7mMjIlKBwkgja65jRgoI5TBRZke5rpotH62reJJbGAkOhiKCPJ62HUpzVkYKbaHk58OheDMVNmLXOucX8lE6kFhJQaEpBAbCySfX7U947bWQlmay2/XXey6eBrCEE8wDt8pIZqbCiIhIdRRGGlm9w8jRo7B4cYNXRsD7uJFffoH5z6yteJJbN83330Nvtng87Z/hCiN+7U3VZIP/IPN+KeucM1jG/6kDHTrUq/nNQnh4xTCylDHmgVsYqVAZUTeNiEgFCiONrF5hpKQEuneHsWM5tmBZg1VGIiPNAE1vYWT1ahiEqYwsZ6TrJLfKyK23wjtc4fGagUdcYSQo0gxuXZI50LxfTgo92AFAfB/fTOltaFWGEbdumsxMiOKI6yBVRkREKlAYaWT1CiMvvGD+aQ30LV7bYJURPz/TVeMtjOzYbjEYUxn5ntNdJ7mFkf/7P7j3m5M4tsMu5mAGgQYdTSMcsxJpaEdTGVmxOQK6dQNw3ZOmNZRFMGHEfcxIMQGsxz6DKC3NOb1XY0ZERKqnMNLIPBY9Kysz1Y6aKC6Ghx5yboaRW+8b5bmrLIxkrt9HBzIpJoBFjHWd4NZNEx4OZ50Fgb26OtcrCc5KYyi/AhA0uB8An38OCw6brhrniqWtKIy4r+RaHNiObCLICTM312PbNrAswjcspxeuSom6aUREKlIYaWQelRGoeXVk7VpnVQRMqb++N8pzV9laIwFbzIqsW+jtWhgNPCojDl26QBrmy7dddhpjWGraOmGM85glWYM8T2pFYcRy+8+nNMhUgw62ty/jumUL3HEHN/5vFFfyjutEVUZERCpQGGlkFcJIDdcayZq3zGM7msMNWhmpLIyU7TcVjLSgJGfQAHAuU+qma1dXGInL2EAf+6DW8DNGMdZeVFlHuTDio2XgG1q453ARrBATRnYF2Rcpuecer0vDK4yIiFSkMNLIQkLMQlmljj91dZWRXbvg8sspeOYFAI5ivrybojJy5AiE5x8EwOoURwYdXSd4uTOtexjpdWSFOSy5H0RH8+OP8Pe/ewkjragy4s4Waj6TzaX2MLJzp/cT1U0jIlKBwkgjcxQximw1HMR6773w3nt0St8IwNeMByCGdIId94lpgDBSYcyIZbF9Sylx2MNIbBylBLhOcOsycnAPI06jTReNv79ZyXQLvT1vnNdKw4h/ezODaE1OL4/9peX/E1NlRESkAoWRRlarMGJZ8O23Hru+4WwA4jlQ8UXrIToaDhBvNoqL4YYbGHxqNCeyGICy2DjPE2oYRtpPOMX5ODkZSghkI/1cB7TSMBLUwXTTrMxyrSVfRCCvUW7Ze4UREZEKFEYamSM31Gh675YtkJHh3PyV49hBDwASHLNRoEEqIzExUEwQmcGxAJTNfp2g/CxGYrpb/DvHe55w5Ej5l6BPH8i2nw9QYgvAdtGFzu3kZPPbo6vGsZZ6C+cII2/b11sJePA+oqJgG67KyDZ68TOjPU9UN42ISAUKI42sNmGk9MuvAfi14xmczddcwgccxiyX2olDrgPdptnWVSd7QSMtwHTV+JV6TjkOSq6+MtKuHZw8vp1ze12XCWanXZz9JdZiloUnPNzrQNiWyBFGJvI/Pnl2D5x9Nj16QDausJVODL8xxPNEVUZERCpQGGlkjjBSYNmrGVWEkQ3PzQfgnYyz+JazCenfkyOO+8c4hIRUvL99HTjCyK5C7zeKadfdJIn9jnElw4Z5Pe7CC+EbzuIIHfjtqqc9nnPkDmdlJKrctbRgjsxVhj8B3U0JqIcpYjlvmPeu7Up+ZyD7SSTTEVKKiqC0tKmbKyLSrCmMNDJnGKmmMpKfD7F7VgGwmBMJDISTTqJiGGmA8SLgCiO7S7yHkcje5gv1JH5i45m3wLvvej1uwgQ4ly/oxi5iju/p9ZgfOI33ucQs3dpK2GwQb+/JGmNfVsURRsawlKeGvM0nsX+hmCB6sc1z4TNVR0REPARUf4jUh6sy4njgfZ2RRe+nMo6DlOLHWgZTXGy6OQoIpcAWQojVMEvBOzi6UJwzatxYfn5E944BYAc9WX7Fc/Tr4v11oqLg0RmBrF4dybhx3o8pIpjLeJ9Lb2yIljcfW7aYXNHRPgPaEUZ20oPUU3sQ9wMcTDOfocdaM/n50L59xRcUEWmjFEYamSM7VDdmZMNbvzIO2Ewf8mnHvfe6ejUyrGg6Y1+YrIEqIx072m+WZ3mpjPj50aGja2xHZmbVr3X33ZU/FxraegsB4eGes2q6d3c97tsX1q93bVv4UWQLJsgqbL1/EBGROlI3TSOryQBWy4L8pasBiD79OBYvhvvuc82C9eiqaaDKiL+/mVHjrTJiKynxGJbiZSJNjX3yCQQEwL//XffXaCkclREwYSSu3BjgAj8z/VczakREPCmMNDLHLV2qCiP79kHvPBNGYs4cygknmMzhqIw4ZtQADVYZATNuxFsYKc/9S7a2zjrLLN568811f42WoksXM7DV3x/69zeBMiDANcU532Yf9arKiIiIB3XTNDKbzQSSwqLKw8hvayznHW8DRhzn3O8IIx6VkfKrbdVDp06waX3lYWT5cliwAK68sn7v00DFnGYvMNDcqTg3F2JjzU9GBqxbByeeaMaOAAojIiLlKIw0geDgSsLI4cPw+OP4b+9Nd3ZR5BdMkNsUWkcYKXMvYE2c2GDtiouDn+hELu0IoYDXmMRf+A9MnQrAyJHmR2ru9NM9tyMiXGNV81A3jYiINwojTSA4GAqyvawzMmsWPPOM/e4zsGnoFQx2u6utY8xIvuNLDGBSueXF66FTJ3MTvwv5mHCy+Yzz8bvmaiY/MaLB3kPMIF6AXEvdNCIi3iiMNIHg4ErGjHz3ncdxOdfd5rHtqIw8zr20J4e1f3yQ+wIa7iNzrDUyj7MID4eSbLDGnABBDfYWgmuBtNwyddOIiHijAaxNwCOMONYZsSxYu9Z5zFtcSfc/ei4d3q6dGYewgQGcz+ccTPK+CmpddXK7x90115j3Gzu2Qd9CcIWRPEvdNCIi3iiMNAGvlZGtW+HIEUqDQgiikKkxbzlX9HSw2TxvctvQN7x1hJHoaHjuOTOFt2/fhn0PcXXT5KFuGhERbxRGmkBISMUwcvCzZQBsChtGMUGcf773W84ccrs/3uTJDduuAQPM70H2W8cEqXumUThmE+VrNo2IiFcKI03AW2Vk6b9MGPnmyPEA/PWv3s8dOND8vuIK6Nq1YdvVqxf8/rtZmEwaj81mumqcYSQ317cNEhFpZhRGmkD5MLJxI7RP3QrAWgYzcmSlN8XljTfgySfhtdcap20DBrSqm+k2W6GhcNB+N1/++U/48UffNkhEpBlRGGkC5cPIf/4D8RwAYMjZibzwQuXnDhsGf/tb21k4rLVq1w6e41ZyBo0yN/t56CFfN0lEpNlQGGkCwcFQgEkTZXn5vPkmJJAKwLSn4hk+3Jetk6YQGgqH6MS2658yO1JSfNsgEZFmRGGkCQQHQzoxAGTvOERmehExZJgnExJ82DJpKhER5neaFWseuI9MFhFp4xRGmkBoKKRiQkfJ3lTiOGieCAgw82ql1RtiX0Jm+Q57GMnMhKIi3zVIRKQZURhpAtHRrjDSPjvV2UVDfDz46SNoC0aPNr9/XBNlbusLkJ7uuwaJiDQj+iZsArGxcACzolmwVchA/03mifKrnEmrNWqU+f3LSj+sjh3NhrpqREQAhZEmERtrbh9/FHMTvJMiVpsnNF6kzejXz4wbyc2FgnCNGxERcacw0gRi7d89jq6aY8vsYUSVkTbDzw+ON+vbcdhfYURExJ3CSBMoH0Z65/5qdqgy0qY4umr2FyqMiIi4UxhpAuXDSLuSbLNDlZE2xRFGth5VGBERcacw0gQcYcQxiNVJlZE2xdFNszVTYURExJ3CSBPo0MEsKeKojDipMtKmdOwIvXvDIRRGRETcKYw0AT8/iIkpF0batYO+fX3XKPGJUaMURkREylMYaSLua40AcNNNpmQibYrCiIhIRQojTSQ2FrbT07Xjrrt81xjxmZ493cJIWppvGyMi0kwojDSR2FjYTTcu8vuEsqXLXKNapU2JjYU0OpmNw4d1fxoREeoYRmbNmkX37t0JCQlh2LBhLFq0qMrjCwsLuffee+natSvBwcH07NmT2bNn16nBLZUje/yS+Ef8Rh/v28aIz8TGmspIPiFmx969vm2QiEgzEFDbE+bMmcPtt9/OrFmzOOGEE3j55ZcZP348GzZsoEuXLl7PufTSSzl48CCvvfYavXr1Ii0tjZKSkno3viVxhBFNoGnbzP8ObOyiG/3YBLt2mb4bEZE2rNZh5JlnnmHSpElMnjwZgJkzZ/Ltt9/y4osvMmPGjArHf/PNNyxcuJAdO3YQHR0NQLdu3erX6hYoKcn87trVt+0Q3woOhvBw2JXtFkZERNq4WnXTFBUVsWrVKsaNG+exf9y4cSxdutTrOZ9//jnDhw/nqaeeonPnzvTu3Zs777yT/Pz8St+nsLCQrKwsj5+W7tJL4ZFH4NFHfd0S8bXYWNhFN7OhMCIiUrvKSHp6OqWlpcTFxXnsj4uL48CBA17P2bFjB4sXLyYkJIRPPvmE9PR0brzxRg4fPlzpuJEZM2bw8MMP16ZpzV779nD//b5uhTQHsbGwa0c3s6EwIiJStwGsNpvNY9uyrAr7HMrKyrDZbLz99tuMHDmSc845h2eeeYY33nij0urI9OnTyczMdP7s1SA/aUViYlQZERFxV6vKSExMDP7+/hWqIGlpaRWqJQ4JCQl07tyZyMhI575+/fphWRb79u3jmGOOqXBOcHAwwcHBtWmaSIsRGwsbFEZERJxqVRkJCgpi2LBhzJ8/32P//PnzGTNmjNdzTjjhBFJSUsjJyXHu27JlC35+fiQ5RnWKtCEeY0b279daIyLS5tW6m2batGm8+uqrzJ49m40bNzJ16lT27NnDlClTANPFMnHiROfxV1xxBR07duTaa69lw4YN/PTTT9x1111cd911hIaGNtyViLQQjoXPivxDwLK01oiItHm1ntp72WWXkZGRwSOPPEJqaioDBw5k7ty5dLXPWU1NTWXPnj3O49u3b8/8+fO55ZZbGD58OB07duTSSy/lsccea7irEGlBHGuNHApOonPeNkhJ0VojItKm2SzLsnzdiOpkZWURGRlJZmYmERERvm6OSL189RVMmACbQ4fQO38tzJsHZ57p62aJiDS4mn5/6940Ik3MsRpvbql9SfiCAt81RkSkGVAYEWliMTHmd06xwoiICCiMiDQ5xyz3XMs+gLuK1YhFRNoChRGRJhbiKIigyoiICCiMiDQ5x3p+CiMiIobCiEgTCwgwPwojIiKGwoiID4SEKIyIiDgojIj4gMKIiIiLwoiIDyiMiIi4KIyI+IDCiIiIi8KIiA8ojIiIuCiMiPhASAjkY1/0TGFERNo4hRERH1BlRETERWFExAc8woiWgxeRNk5hRMQHVBkREXFRGBHxAYUREREXhRERH1AYERFxURgR8QGFERERF4URER9QGBERcVEYEfEBhREREReFEREfUBgREXFRGBHxgeBgrcAqIuKgMCLiAxUqI5bV+G+6bx+MHg1vv9347yUiUgsKIyI+4BFGAIqKGv9NJ02CZcvgz39u/PcSEakFhRERH6gQRhp5SfjSUmDevEZ9DxGRulIYEfGBkBAoJpAybGZHI44bWbUKhh9b0mivLyJSXwojIj4QEgJgo8iv8WfU/OUvEPD7ateOiIhGey8RkbpQGBHxgRB7Bim0NX4YSUuDk/jJtSMnp2kGzIqI1JDCiIgPNGUYyc6Gfmx07SgrM4FERKSZUBgR8QFnGKli4bPS0vq/j2WZMBJBlucTR496HHPrrfDcc0BWFixfrsqJiDQphRERH3CEkcoWPlu+HGIiitjV/xx46KE6v09enimEVBVG1q2Df/8bfrjtU0q6dIdRo+Czz+r8niIitaUwIuIDrjDivTLy/fdwTN4aum38Gv75zzq/T3a2+R1OtucTmZnOhwcPmt+v8BcCMg+bjdWrERFpKgojIj7gDCNl3sNIairEc8Bs5OS4UkUtOU6rqjKSng4BFNOJQ67nd+6s0/uJiNSFwoiIDzjCSK49jGz4tYow4thRB+UrI5nYp/W6hZFDhyCGdM8TFUZEpAkpjIj4gCOMOFZhfevVimEkjoOuHSkpdXqfLHtBJMJmwsheks0Ot26aQ4cg1r0qAgojItKkFEZEfKB8GAnzb8zKiEW4ZVKJM4yU66ZxVEYOEWN2pqRAYWGd3lNEpLYURkR8oHwYiW/vGhNiWQ1XGcnOhmAKCcQsB7+HLuaJct00jsrIBvpT4N/ONGLPnjq9p4hIbSmMiPhAQID5fZQOAEzcfC/897+A6UEpKChXGalHGHEfvLqfzvY3Purcl57uCiOHiGV/UHfzhLpqRKSJKIyI+NCT/B8LOYlAqxjefBNw9cg0VGXEMXg1x9aew0QDUHjI+5iRQ8Syo7SbeUJhRESaiMKIiA/tpQtPc6fZsI829RZGtvy4D+tQevnTq5WV5aqM5AeEOysxK+YddS6y6l4ZSSeGTUWqjIhI01IYEfGxTCLtD0y1IjUVQskjwm2hst4HF2PrFMt/Ji1j+3azb80amDGj6nGm7pWR/MAI53sl5W/hyILfKCuDjAxXGMkOjmUrx5iTtfCZiDQRhRERH/MWRjy6aNykzf6Cv//dPJ42De65B776qvLXdg8jRUGuykg3dhN15jAyf91OaalrNo2tUyzfcpY5+ccfPaYAi4g0FoURER95+mno1s17GHEMXj1IJ49zSghw9p5s3mwqKMGfve9aUKQc9wGsxSGuMAJgKy0lf8FyAOL8TGUkvEcsW+jD9sC+UFwMX3/dEJcqIlIlhRERH7njDlixwi2MFBRAUREpKa7KyA56kGEfdAoQzWH6bP6cgjWbSEmBm3meP/zvMtNf40VWlqsyUtIugv10ppAg5/Ola9cD0MlmwsjEO2Lp0gXeL/6jOeCTTxrykkVEvFIYEfGhiAjIcizRDpCZyfbt7pWROE7jB75gAgB/4CteTDmfkOP6ATCclea8tWu9vr57ZaS0XThHiOZkFvICNwIQsOl3bJTRoTQDgC7DYpkxA77iD+YFFi1q0OsVEfFGYUTEh4KCICjEnxzCALAys9i6FZLYB5h1QdYyhA+4BIAeuGa4BFFIPzaajW3bvL6++5gRR+hZzijn6xX/tp6ebCeAUnNCx4506QKb6WO2U1O1EquINDqFEREfi4hwddUc3Z3J0aOQzF4AUv3N8u0ZdKxwXl820ZstZmPnTigtrXCMexgpCAx37l/PAAC6FG1nK73Nzg4dIDiYLl3MFN88Qs3+ffvqe4kiIlVSGBHxschIVxhJ2WgGsfYKNmHkrueSeewxnIuVuRvP1wRTZDaKi/n033uda4c4uHfTjDw9nGOPhVdegXRiyaa968Du3eHxxwFITAQ/P5tr6fjduxvoSkVEvAvwdQNE2jr3ykjaVhNGuvqZMBI5MJnOO7xXRi7Ac3Dpe1OXsWRVME/9LwGbzexzH8DaoUuEc+mQo0eh7N5gKM4xO9atgzDTVRQQAAkJsGd/F/qyWfeoEZFGp8qIiI+5V0YO78wELDoV2btGkpKIivJeGTmeXzy23+NynnyrM0fGXwG5uRQVQVGR271pwl3dNHfdBZGznoDoaPj2W2cQcUhOht10NRuqjIhII1MYEfEx98pI1r4sOpJBUGmBebJzZ6Kj4QhRlGHzen4J/s7HflhEf/suPP44B+3rpjkqI0REeJ44ebJZC37cuAqv2aWL2x1+VRkRkUamMCLiY+7Te/MPZDoHrxIXB8HBREdDGf4eC5a5+5FTnY+/5mwArGeeYfmcXQDEh9pXUXWrjDjZvAccVUZEpCkpjIj4mHs3TV6qWxhJNjNpoqLMpreumg8jruVfTHVu35TwCT9wKrbCQkJee4EwcuheuMk8ecwxNW5TcrIqIyLSdBRGRHzMvZsmgkzO6uc9jLgPYn2477tYL73MxKLX+Jrx3M6/YPlyzrkwhNeYBEDnbQs4kcX4l5WYdee7datxm7p0cauM7NkDZWX1ukYRkaoojIj4mHtlJJJMJgyxh5GkJABCQ82PozJiRURw95o/YbvhL7wwywbYiHrodhg5kvHjYSEnAzC45FcuCfzUvNZpp9WqTV27mgXXyrCZRc8Oer9xn4hIQ9DUXhEfc6+MXMb7WPPs3TFduzqPiYqCjHxTGbHFxxMcbPZfcw2cdJJZJgTg1FPhgH8S20p70ovtTCp+2fVELfTuDcUEsZuudGcXbN1q5vuKiDSCOlVGZs2aRffu3QkJCWHYsGEsquH9K5YsWUJAQADHHntsXd5WpFU67TQIS4h0btsOH4aBA+Haa537oqPdxozExbmOtUHPnuBn/y+5XTsYMMBVHXGqZRhp39706jiXhd+8uVbni4jURq3DyJw5c7j99tu59957Wb16NWPHjmX8+PHsqWaQW2ZmJhMnTuT000+vc2NFWqNjjoFZb7vCCL17w6+/mgRiFx3tNmYkPr7K13vySVgf6xY+brsNOneudbv694dN9DUbCiMi0ohqHUaeeeYZJk2axOTJk+nXrx8zZ84kOTmZF198scrzbrjhBq644gpGjx5d58aKtFrua4Bcfz0EBno8PXgwzOUc8hN6wKWXVvlSZ58Nz+y9BO69F774AmbOrFOT+vd3q4xs2lSn1xARqYlahZGioiJWrVrFuHKLJI0bN46lS5dWet7rr7/O9u3befDBB2v0PoWFhWRlZXn8iLRqnTq5Hl99dYWn//UvmLN9BKEp2+Hii6t/veBgeOwxmDChzk0aMEDdNCLSNGo1gDU9PZ3S0lLi3PqsAeLi4jhw4IDXc7Zu3crdd9/NokWLCAio2dvNmDGDhx9+uDZNE2nZkpPhjTdMKImNrfB0QAD06NG0TfKojOzcadaWDwpq2kaISJtQpwGstnKrNlqWVWEfQGlpKVdccQUPP/wwvXv3rvHrT58+nczMTOfP3r1769JMkZbl6qth/Hhft8KpXz9IIdHc3be0FLZv93WTRKSVqlVlJCYmBn9//wpVkLS0tArVEoDs7GxWrlzJ6tWrufnmmwEoKyvDsiwCAgKYN28ep3lZ/yA4OJhgx9xFEfGJ8HCIirKx+UgfhrPKdNX06+frZolIK1SrykhQUBDDhg1j/vz5Hvvnz5/PmDFjKhwfERHBunXrWLNmjfNnypQp9OnThzVr1nD88cfXr/Ui0qiio2EfZvE1LXwmIo2l1oueTZs2jauuuorhw4czevRoXnnlFfbs2cOUKVMA08Wyf/9+/ve//+Hn58fAgQM9zu/UqRMhISEV9otI89OxIxzebp9ifPiwbxsjIq1WrcPIZZddRkZGBo888gipqakMHDiQuXPn0tW+WmRqamq1a46ISMvgsdiawoiINBKbZVmWrxtRnaysLCIjI8nMzCTCfT0GEWlUf/4zdHn77/yde+G66+C113zdJBFpQWr6/a0b5YlIpTwqIxkZvm2MiLRaCiMiUimPZejVTSMijURhREQq1bGjxoyISONTGBGRSmkAq4g0BYUREalUhcpI8x/vLiItkMKIiFTKozJSWAh5eb5tkIi0SgojIlKpjh0hh/YUEWh2qKtGRBqBwoiIVCo6GsCmcSMi0qgURkSkUpGR4OenQawi0rgURkSkUn5+EBWlMCIijUthRESqpOm9ItLYFEZEpEodO7qtwqol4UWkESiMiEiVIiJUGRGRxqUwIiJVCg6GTCLNRmambxsjIq2SwoiIVCk4GAoIMRsFBb5tjIi0SgojIlIljzBSWOjbxohIq6QwIiJVUmVERBqbwoiIVCk4GAoJNhuqjIhII1AYEZEqqTIiIo1NYUREqqQwIiKNTWFERKqkbhoRaWwKIyJSJVVGRKSxKYyISJVUGRGRxqYwIiJVCglRZUREGpfCiIhUSd00ItLYFEZEpErqphGRxqYwIiJVUmVERBqbwoiIVMkjjJSWQkmJbxskIq2OwoiIVMmjmwbUVSMiDU5hRESqVCGMqKtGRBqYwoiIVCk4GEoJoJgAs0OVERFpYAojIlKlYHtRpMhmf6DKiIg0MIUREamSI4xoRo2INBaFERGpkiOMaK0REWksCiMiUqUQR0HEUmVERBpHgK8bICLNm6Myku/oplFlpEqLFsFXX5kQd889EBTk6xaJNH+qjIhIlSp006gyUqlt2+Dkk+HJJ2HLw++wsssFFK7f5utmiTR7CiMiUiUNYK25b74By4J7Or7MO1zJmIOfcviUCyAvz9dNE2nWFEZEpEqOboYCddNU67vvIIrDPJR5OwAFBJOQ/juHJ93l24aJNHMKIyJSJT8/CAxUN011SkpgwQK4ijcJLCmAIUP4+5ivAIh87yVYs8an7RNpzhRGRKRaHjfLa62VkV274OqrYcOGWp+6bRuccgpkZlr81e9ls/OGG5j439OZw2X4U0b29VMbtLkirYnCiIhUy+P+NK2wMrJrF2y//D743/9gwIAan1dcbG5k/MADsGQJnMF39C3bCO3awZVX0qsXLDrvHxQSRPjKBbB4caNdg0hLpjAiItXyqIy0wjBy002wZ9l+145ffqn2nJwc6NXLVEQcxZRnoh83D66/HiIiALj2gWT+y9UAlP19RkM2W6TVUBgRkWq19m6atWvBhuXcPnTnk9Wes2IF7NkD5y++k5d+G82ZzGPQ4YVmxO+ddzqPO+44eLH93yjFD7+v55qTRMSDwoiIVKvFdtNkZMCnn0JZWaWHFBXB/v3QGVdlJHbRx1ifflblS69ZA36UcjPPM4plPMtt5olLL4WkJOdxfn4QM6oXvzLU7FBXjUgFCiMiUq0W201zww1wwQVw//2VHrJnD1iW5Qwjn/hfDEDx5CmQn1/peb/9Bj3ZTgimUtSPTeaJU06pcOyoUbCEE8zG0qV1uBCR1k1hRESqFRLS8rpp3nwT+Ogjs/H3v1d63M6d0IGjtMMEj3kXv8JuuhCUcQA+/LDS89asgUGsq/jE6NEVdh1/vFsYWbKkppcg0mYojIhItVpiN83EieV25OZ6PW7nTkgkxWxERXHpDVG8wl8A+O2ml0lPdx07fz48+qgpmGzYAAP53fPFOnSAvn0rvId7GLHWroXs7LpckkirpTAiItVqaQNYMzPN72zaO/flf/WD12N37nQbL9K5MyefDDtOvo4S/BmSvYTNf3rQDCwBxo0z03hvnVJEcTEMtpWrjIwaZQaJlBMbC8PPTWQXXbGVlXHkI+9tEWmrFEZEpFotbczIzp0QRg7h5Lj23fG8M1SUP9YZRhIT8fODdxcksOmkGwA44ftH4IEHnAHnel7hhf+151pmMzzEVEYOE2WePOGEStv09tuwoMMfAfC75/9aRKgTaSoKIyJSrZbWTbNrFySQ6twuIJj+++ZhXX99hWPLV0YcOn/yPLf6vwBA6fOz2LjMpJG7+AdBFDObSXQp2ALAK+M+omzqHXDrrZW2KTwcvj/xIVKJJzJ1M8yaVd/LFGk1FEZEpFotrZvGfRxIWc9eXBrwiXnirbfwGARC5WEkKtpGynlT2EA//HOzKX7xVcAiBtf5NsuC7t25+5tT8HvmaedCZ5Xx79iBF7jJbKxdW7+LFGlFFEZEpFotuTLil5hAztjxrGEItrIymDvXeVxxMRw65D2MANz/oB/PB90BwIDPHmc0PxPFUQDSLrkJnnkGfv4ZbLYatSs8HDLoaDYc/T4iojAiItVriZURZzdNQgKnnQafcb7Z/sy1mNmRI+Z3J9LMg/h4j9cZMgQmvD+RVQwlmiN8xEXmiWHD6PT+8zB1KsTF1bhd4eGQSaTZyMqq9XWJtFYKIyJSLfcwYuXlY1nVnOBj3sLI55wHQNnX3/L+f/MpKXGFkRi/w+ZBdHSF1zrn/ED+e/LrFBFIAgfMzmHD6tQujzCiyoiIk8KIiFQrOBiO0gGAtM2HGTAASkp826bKWFa5AawJCYwaBUUDhrKLrvjl5/L1Ne+xYvrHZO4yaSQKeyqJivL6mn95fjCP4raKaz3CSBb2cSUKIyJOdQojs2bNonv37oSEhDBs2DAWLVpU6bEff/wxZ555JrGxsURERDB69Gi+/fbbOjdYRJpeSAikkgBAdPFBNm0sIy3Nx42qREaGuaOuM4zYp+vee5+NV5kMwOtcx+inLyLmxUcAi8gyexjxUhkBGDgQzl96N7mDR5sb4Z1xRp3apsqIiHe1DiNz5szh9ttv595772X16tWMHTuW8ePHs6eSO1H+9NNPnHnmmcydO5dVq1Zx6qmncu6557J69ep6N15EmsbQoZBGJ8qwEUgJHclotouIHrD3pCT5uyojAJdcAisHT/I4tuMvXxNONgGUmh2VVEYAho8OJGzFAnNXvR496tS29u19N2bkySdhcM9cMl76QCvASvNj1dLIkSOtKVOmeOzr27evdffdd9f4Nfr37289/PDDNT4+MzPTAqzMzMwanyMiDae42LISEy3rILGWBdYgfrN++cXXrfJu4ULLAss67NfRPFi3zvlccbFlrT1uotkP1qH4AVYXdpnt4GDLKitr1LZ9+61lRXLE+f5WYWGjvp87sKz/8WfzYNKkJntfadtq+v1dq8pIUVERq1atYty4cR77x40bx9Ia3omyrKyM7OxsoisphwIUFhaSlZXl8SMivhMQAJMnwwHMbJN4DjTbySCHD4MfpUSW2QelxsY6nwsIgE1TX+Y8zIyasCP7iMZ+XFRUjafo1lV4OGQT7trRRF01h+2XeBVvmQevvdYk7ytSU7UKI+np6ZSWlhJXbipbXFwcBxy10Wr885//JDc3l0svvbTSY2bMmEFkZKTzJzk5uTbNFJFGcOONkBthujyu5G26zbzd3DGumTl8GKI5jB/2KT/l/uHTqUsIP3IqAKGFmXRhj9fjGkN4OJThT47Nfs+cJkp0FXrFq+iOEvGFOg1gtZX714NlWRX2efPuu+/y0EMPMWfOHDp16lTpcdOnTyczM9P5s3fv3ro0U0QaUFwcjP6jqYxczf/o+eWzMHu2j1tV0eHDEMshsxEVBYGBHs/Hx0MO4Ry1j90YxDrXsY0s3F4UOWo17SDWnDc+4K+4LT+flNQk7ytSUwG1OTgmJgZ/f/8KVZC0tLQK1ZLy5syZw6RJk/jggw84o5qR6MHBwQQHB9emaSLSFOyDQZ0OHmy69163DpKToUOHKg87cgTXku0xMRWed6xrto8kOpDpCiNNVBkBx/Te/U0TRg4fZsLbl3O+Y5AumBlBIs1IrSojQUFBDBs2jPnz53vsnz9/PmPGjKn0vHfffZdrrrmGd955hz/84Q91a6mI+F65FUqb5EvNsii75z4YPBj++MdqD/eojLiNF3GIiDBTlfdhqgO+qIw05YyasoWL8LdKPXdqWrE0M7Xuppk2bRqvvvoqs2fPZuPGjUydOpU9e/YwZcoUwHSxTJw40Xn8u+++y8SJE/nnP//JqFGjOHDgAAcOHCBT/zGItDzlKyMZGY36dtnZMPvUN/Gb8bjZsXBhtTeYO3y46sqIzWYylSOM9GejeaIJKiOBgWYBuaZaa6SoCD6btrDiE0ePNur7itRWrcPIZZddxsyZM3nkkUc49thj+emnn5g7dy5du3YFIDU11WPNkZdffpmSkhJuuukmEhISnD+33XZbw12FiDSN8pWRQ4ca9e1uuw2KFy7x3Pmf/1R5TnWVEfAMI05NNKjTfRXW0sOZFH32NUyZQunBdMrK4Pbb4a2rvoUHHoDS0qpfrBrvvgtddy2o+ERmJs1+TX9pU2o1ZsThxhtv5MYbb/T63BtvvOGxvWDBgrq8hYg0R+UrI+np1Z6y+usD/Hbv+5z71yQ6Xnk2tGtX47dbuhQuIAWAD7iYS/gQ3nzT3C233MBUh+oqI47L8GUYyUw3lZHn/57JeUdupXvJNo6+/CE7oocz5HACf+YNc/App8Bpp9X5vd576QhXsQaAPadeTacf3yOEQnO74vz8Wn0WrY1lWaTlphHXvuY3OpTGo3vTiEjN1bIyYlmw/pw7uWb1bXT8y0Vg786tCcuCffsg0R5G3uQqMokw/6rfvLnS82oSRrxWRpqgmwY8V2EtO5RB95JtAHQkgxGHv+VaRxAB2L27zu+zaRPkLVuLHxYlXXuw9d43CCWfUsf/7bfxrppp304j/p/xfLH5C183RVAYEZHaiIhgy9m3sI6BZruaysh335TwB75y7fjoI8jLq9FbZWVBbi50Zj8AR9ol8RtDzJNr1lR6XkDGQdd9aSrppklIgLUMpgy3JQmasjJiDyPDWOXcvyTyHB7gYRZwsuvg1NQ6v8/nn5uAAxDQOZ6ICAAbWX4dzAFteNzea98sZ+bymQC8vOpl3zZGAIUREamlbbc8xx/51GxUEUbKyuCz6cuI4igZRLOHZBNEvv66Ru+zbx8EUEwnzB35wnp3Zg3Hmie9hJH9++F/1/7I5uwETucHs7OSysiVV0IqiXyH2zIDTVQZcR8zMgazcnXOgJGMOfIVY75+gKuSFvA495iD6xFGDh3yvBtxhONmwY7Bs220MrJ8OUye8zfn9uaMyqts0nQURkSkViIi4BD2ikNeXqWVjocfhoTfTPCYZzuLOVxmnvjggxq9z759EMdBs5Kqvz/xg2KrrIzceivY3pjtWnkVKq2M9OhhXmJewjWunT6ojDhu0Nf++IHYbHD22XDccZBCojk4JaXO75OV5T2MHC7rYB60wTBSWAgXXGhB4krnvm2Ht3EwpwnXyxGvFEZEpFYiIsz9VYqwDyB1r46kpMAjj3B4x1EeewzO4lsA8k4+hw+4xBzz5Zc1WkZ+3z5XFw0JCfTt7+eqjPz2m8dskJwcmP9VEedSrv+/ksoIwJAh8PS2P5qN8HDo3LnaNjUE9zDiNGCA82FcXMOEkcxMzzDiXP2VDq4DWpGPN37MnN/nOLf3Ze2joKTA45hNmyA18xAE5YFlw/9IHwCW7C03Y0uanMKIiNSK+VKzkW6zVx3cB7Hedx88+CDFd99HWZlFf5tZwyPhj8ezghHs9e9qBoLUoKtm/37X4FU6d6ZfP1jPAErwNwHI7Yv667kW5xR+TAfKfcFWUhlxatcO9u414aZ9+2rb1BBKSlw3HHRyCyOdOjVOGAkLM2ustMZumpyiHP704Z+44uMrOJBzgBX7V9BtZjcu+eASj+N27QI67ALAlpNI6TZzj6LFexY3bYOlAoUREakVR7n/kGWvOrhXRn4wYzU6fPs+CaTSzsoDm41Tr+5Chw425pRebI6rQVeN+0waEhPp1w8KCWGzra/Z57b4WcJdf+Y9LgfgIG73vapJwEhKgu7dqz+ugeTkwDJG8Z6j2woqr4ykpprBN3VQvpvGZjOfnbMy0orCyPqDmykuK6bMKmPeulX89aU3KbVK+XLLlyzZ46p67NyJM4zEBHaDXacApqpSWla/NV2kfhRGRKRWHOX+dMqFkd27nVNRg7MOMQn7beo7dya0QzBXXYWrq+aLL6rtqvEII50706MH+PvDFusYs2/7dgAO7CpgxJ4PAVjidyKnsIBnuRWefdaUApqZhx6CESNsxH77Njz4IDz6qMeN6+Li4CD2tS+Ki+u8ym1mprl7MeAcDxMR0XSrvzaVvXvhlItcg1AffW0lq3I/dW4/8tMjzsfulZFBSd1g83nYCqLYnbmbedvnNUl7xTuFERGplaAgc28X5yBWezfNoY9+8jjuHv5uHtirDpMnwy+MZDddTFfNt99W+T7797uNGUlMJCAAunaF7fQ0+3bsAOCLB1cSTBEZgXH02PsT3c7uR/fPnjUjWpuhwYPhl1/g9HH+Jpncd5/H8506QTFBZPjb/7517Kop300DJkg2ZWXkux3fsT9rf6O+x/ffQ0GYK4xsi3gVIvdCcQh++DNv+zzeWPMG+7P2e4SR4/t0IyE2FGv11YCm+PqawoiI1Fp4uKsyYu1P4brr4PM7zT1QVjEUgFDsgwftYWTQIEhKsvEhNeuqObC3mGPtq4eSaLotevRwCyPbt1NQAKkfmP7+/KEnkpBo4+uv4bzzGuIqfcNxA3SPrpo6KN9NA03bTbN833LOfPNMzn77bKxGXHp+wwYgxm16buQ+83vrOdh+uh+Aaz+7lqR/JfFr2RvOMNIzujtXXAH8Zu6l9uOuHxutjVI9hRERqbWwMFjFMABy3/iA/75eygjrFwD+yR2uVT4BunUDTI/J6aeX66op8JztAEBZGRnTHuOTIydzLL9htWsHJ5uFwHr0gB30MMdt3868eXBcvhkTkHjJCQ1/oT7QyT7kZW9puUGsW7eaMkANlJWZmwx6CyNN1U3zy37zv4ff035ngbf74zSQDRuAjhXXCjkx5K+ULrgXdrkWkdvf/QnosBOAbh26cdxxQJbpIssqzNK4ER9SGBGRWrMsmMNlHCaK9um7GM/XJNlMOf43hrCOQa6D3QaHnn46LOd4DgQlm2/Ljz+u+OKLFtHxX/czhp8ptflj++ADZ6DxqIzs2MHHH5Q6Fw7zO+nERrnWphYdbcbGOCsjO3ZQUgLWKafAGWeYQcJlZfD44/D2215fIzvb3HulA0fNDm+VEfdZUMXFMGNGlSvb1sbRo/D+D5uc27NWzmqQ1/Vm/YYy6LjFY9+ZPc7k2xfP4OILAwj5YD48t5XAsvaURW+GWNOubh26ERkJFHRwnpdZ2DrG0bRECiMiUmtXXQX5tOM1JgFwM88TbZnBkjlh8fzMaNfB5cII2Hi56DqzY+pUj9k4JSWw4WPXl9jH96+Gc85xbvfoAbvpaiov+fmkfLKcjhymLDAIjj22wa/TF/z8zIzkZYwCoPSbeYzokYHNUSF59VWzrP5998HVV5uKSTlZWRBOtnNRNfcxI46F46xVq8Bxh/W//x3uuQdGjGiQa5g5ExZvcn2On276lJTsuk9TrkxuLuw6vN+sG1IaAO9+xpkd/sr7l7xPu3amJ/B/rwfC4V4Ur7jGeZ6fzY/kyGQTRsoCsRWHAXAk/0iDt1FqRmFERGrt0UfNP8o/43wATsaMFyEoiOCEaJZzvOtgtzCSmGi+72ZwN3siBkBaGkyb5nz+jTfgq+fMjeOe5TZOudmtwgL07AklBLLfrwsAo3PnA2Dr0b3Su/i2RD17wlf8AQD/VSsYtNd1fx/r22/J+7+HzEZpqZmRc/Ag3HUXrDQri3oMXg0OhtBQwFRGdtKDHzgVm2XB669TUgK5/zOzkUwJpv7jO+bOBWJMGAmzxVBSVsKrv75a79ctb/NmIMasZRNa0IOhYefxxZRZdAjp4Dzm3HMxoWPJ32Df8YRmDeShkx8iyD/IOU3dVmjC2tGCow3eRqkZhRERqZPYWFOlALfBqvHxhEfYPMNIuZVNX3oJSgNCuCjrdbPjzTdhlblh3MqV0AsTRmJH96qwZlkP+3CRLWWmq+ZM7GGkZ8+GuqxmYdo0OEACK/1MpeIBXNNTbYcP027nBgr8TMDgvffg1FPh6adN6WnNmoozaexTnIcPN7teZTIAZf95lXtuyaZ4x17XmzuqJfWQnp0FEaYSUjzPtP3lVS9TXFpc79d2t2EDEL8GgAkjhrBqlcle7kJCYOJEICuZoP8t41+913H/yWZga6R9+IyV1wGAIwWqjPiKwoiI1ElsLKSSYFZEdUhIICICNtGPi/kA5s0zAyDcDB0Kt98OKxnBd3FXmp3TpwNmHYiemPVDrnigV4X37NDBfLc6xo2ciH1BK0dKaSUuuMBUkD4rOxeAXva/ST4hABQTwPSyx1k65K+mkrHRVAfIyoJJk7zOpAH4859Nr9jK5AvZR2f89u9j0kvDPVeu/f33erU9Px92ZpsBpf558RQtu47gklhSslP4csuX9Xrt8tavB+JXA3Bc/HGVHvfUU2a89P79cMMNrv3OMJJv/kbqpvEdhRERqZOYGCglgH24FuwiPp4HHzQPg6+4GM480+u5N99s/rH+14P2g3/4AXJz2bnDclZG6FUxjIDpwnDeMM+hlYURmw2mTIE3ucoZQAAm8CXH+G3n+b9nM5OpnPzbs3zBuZTix0sx9vVK1q4l60ip1zAC0LEjDB0Twp94j1KbP33wHPxZ3zCyeTPQ0XTRHJvUF0qDKVx+LQCvrX6tVq91IOcAWYVZlT6/YQOQ8CsAQxOGVnpcSAhMmFDxVkWOBfzIVzeNrymMiEidOP6PfQ9dXDsTEjjlFLMe2RtvVH5u167whz/ANnpxtH1nKC2lbPkKinan0o58LH9/c5AXgwbBCsoNtGxlYQRg3DjYTTee4G7nvpUMp/fZPZg6PYR77zXjZ87jMxJJ4ab0hyj1C4CSEor3pFYaRgBGjYIlnMgV1ttspjcAq2xmqnaFMJKZCUdqXjEw636YMDKie1/TNfSrGej89bava7wI2o4jO+j1XC9OmH2C1+6dx396nC8HREGMCVPHJVReGalMQICZpu6YUaNuGt9RGBGROgkJMbd+cYwbASAhATBjVqsbT3rllQA2VgSa9UFy5i0lucheFenWrdIXGDwY1jLYdddgaJVhJCnJVDFmMJ1XmcRrXR6mNCySf/zDPP/II6Z36+KLbdz2eBxl+JMWnAyA355dxGKfultJGAF4n8voyyYCKeIRy4yj4K23zGwdMEGkZ0+z+MkVV5gBru727oVvvvHYtX49sG8UfXMnc3qP0xk/HsjoTWzuSZRZZdz+7e1c/tHlTPt2msdiaB9v/JiFuxY6t2etmEVucS6/p/3OO+ve8XiPnKIcnlj8BGXBRwGICe1Ep7BO1IWZ3qvKiK8pjIhIncXGVqyM1JTjC/HrzDEAlCxaSh/MWANbJV00AEOGQBHB7KKba2cT3uiuKfXoYZaGv55XuWLTA+zaBf37m+f8/MyM3A8+gJEjzb7dtm4ABO3fyVW8aXZ6mfJ83HEQH28m2fzznzaGDAv0XBvm4ovh559NlSQjw4SQd9+Fxfa72x4+DIWF5P3lNhg/npIHXANsN2wAtpzLX5P+w8X9LzZhBMj75gH8bf58uOFD3vv9Pf617F8s378cMMvGX/T+RYx7axw7juwgrziP/6yc7XzNxxY9RkmZKwg9/fX75BTnOLej23Wo7Z/WKSICV2VEY0Z8RmFEROrMfUYNYL7haqhrV/MP7p/KTGWk/ZrFPMRD5snjKi+5Dx5sfmfQ0bWzJnfnbYFeesncC+iOO0xwKD/mwcHRo7W10DwYvvx5BrCBguAIc1OgcoKDTQVj3z4zc2fAADPl925muA6aO9d+Zzk3K1eaFWG7dKGsczLtvvmEYgK4Z+WFzhnBjnXTBg40v0eONAu55a47nUlRbxHs75ru8uLKFyktK2Xat2Z6d1FpEXfOu5PbZr9FVvERwoq7EtMuhm2Ht/HuuncB+GjtVzz6w5PmBXaein9Jex446YEa/T29iYzENWak8GidX0fqR2FEROosJqbulRGbDY4/3gxGLQwOJygvk86ksK/DAOfsGm86djSzhecxrj5NbxGGDjWrmT71VNXHJZveGbaVdgOg20GzFPua0X91TRkpJzra/ICr2vIkd3MNZsp18VfzePPRXZ4nrVxpQkpuLn4ZphvoX0zlH18P5IEHzEwdR34ZZh+C4u9vBiwDvHLrnyh8NJ1zUpYBMOf3Odzx7V2sS1tHeGAE/jZ/Ptn0Ca/v+T8Acr+/nQvj7wBMdeQfS/7BxZ9MoCx6CxREwkdvc11aFlcOvrLqP1AV3FdhVWXEdxRGRKTO6tNNAyaMlBDI48M/5cdu1/AZ5/Hh1V/iXI2qEkOGmLEUXw/6GyxZUpemtxihoaZLpiohIeYGex5VKmDnqZNq9B6nneZ6PB8zAypgzQrabTYzVVJ6jTVPrljhcX+cr2x/IO8OU5V47DH405/M/t69PTPQgw+aVXsBKGrPN6+NZGin4yksLeTZX/4FQNiSfzJt1F0AlAYdhdxYWPUXlv37JqJDo9mSsYW/ffc38xor/wL/+QVyEkhOstXoGitjumk0ZsTXFEZEpM5iYmAn3ckkAqtjR9ctZ2vIMW7k0SWncdqu1/kjnxF3fLdqzzvrLCgkhIPTnoQxY+rQ8tana1c8xtFspjddzzimRueOGGHWOvvTnyCFzhyK7Y/NsjiXLwB4ZtdF5sAdOyiZY1ZrPYmF/Oe8L3no6fbOyo0jpzgWV3Pw84P//hfWrjVBsqzUxvjsD+nVwczkYd2fODB3EtFrHqVjjgk+/Q7/jYjQdqxdEc6F7WaS0N4E3cAVd8KXL3H+ib3p2tWsnVIfHpURzabxGYUREamz2FgoIJTT2q/Atny5mStZCyefDNdea/512qGDud3KRRdVf94tt5gFrK65pk7NbpXKh5HYq8+pVU5LTjbdQgC/dDDVkSDMlNpfSo4jO84sNBdglZBLO5YxylntuPNO17lQMYyA6ZYbNAhuuslsv/NSEgN+XgbvfUzY/P8CNu6/N4CMZ7/G9ta3vHvrNB6wDwX54rGrOHllCjxaQPFX/6BrVxuffGK6hOo7djkiAq0z0gwojIhInTmWa8+M622mgNZSQADMnm0mZxw+bO55ExRU/Xk2m7nPjbh07Qr7cS29H33hqbV+Dcfg4M/yPMfj7KIbK0PHOrd/4iTaRwUxYYLZttnMPQ8dHONFvLnsMjNweedO+GxOFP5bL+DDOUFccol95nBxGDeeNY4hg/245Rbo18/ceue998DPCuaGG8xqqrb69c44uU/tPZJ/xGO6sTSd2v0zRkTEjWMWh2MAZV2VWzFe6qBLFzP+5v94gmtO3km/P/yh1q/hCCPv7D+Z5wkkiGLK/ANIKU3kwl3PcCXD6MEOou6czFcXet4H5tJL4YknzNIk3iojDhERsHSpGUOyaZNZ1uTss81tdRISzE2IH33UHBsUBAsXwl/+At99By+/bJY7aUju3TTFZcXkFecRFhTWsG8i1bJZLSAGZmVlERkZSWZmJhHVDGwTkaZTVmYqGyecYP4FK77zzjuOheRM1aFbt9q/hmWZqkV6OvzAqZzKAqxu3ekTuIOtW80xxx0Hv/7q/fz8fFOxCAnx/nx5JSU179krLW2c0Dp7NkyaZGF7IAjLr4R9U/fROaJz9SdKjdT0+1vdNCJSZ35+ZhkLBRHfc4wPiYqqWxABEyROP908dkydtvXswbvvuo4599zKzw8NrXkQgdoNMWqs6pmZ9WPDv6QDoHEjvqIwIiLSCnTrZlY/ddzAt64uvtj8fpG/MjfhOnjgAYYNg0WL4PrrzeDh1sQxBdlWbO6al12U7cPWtF0aMyIi0ko0RIXqnHPM70w6cH/Ca5xzktk+8UTz09o4ew4K20OYue+NND1VRkRExKldO+jTxzyuwxjYFsdRGSkrsFdGCpt/ZaTMKmNz+uZW1aWkMCIiIh4WL4bnn69yVf5WI8w+caYs39zfqCVURv69/N/0faEvUU9G8dCCh3zdnAahMCIiIh5iYsziZKGhvm5J43OEEavQhJGWMGbkiy1fOB+/vuZ1H7ak4SiMiIhIm+UIIxSZbpqcohyKSoua7eJnpWWl/LL/F+f2nsw9HMw56MMWNQyFERERabOCgiAwECgylZFvtn1D2N/DiHs6jmd+fqbR3reuYWdT+iayi7IJCwyjd0dzb58VKSsasmk+oTAiIiJtWlgYUGgqIz/u+pGSshIO5R3i8UWPN8r7Pf/L80Q+EcnPe3+u9bnL9y8HYHjicEYnjQZgxX6FERERkRatfXuclRF3h/MPN8qMlVu+voXsomzGvTWuyuPeX/8+498ez8xlM8krzgNg2b5lABzf+XhGJI4A4JeUXyp9jZZCYURERNq0sDCcY0bK23lkp/Px0YKjFJUW1eu93LtncopyyCzIBGDe9nlc/enVbMnYQnZhNgUlBdz2zW18s+0bpn47lXFvjuPBHx/ktV9nAzD74TH4HRgJmMpIcx3jUlNa9ExERNo0E0YqVkYAdhzZwXEJx7EpfRPDXhnG6d1P5/PLP6/zex3IOeCxfee8OxnXcxzXfnYtucW5fLD+AwpKCrBwhYt2ge1YsncJS/YuMTvWXkn60gnMf6uEwEGBZORnsPPoTnpE9XCes+7gOlYfWM05x5xDTLuYCu0oLCkkOCC4wn5fUWVERETaNG/dNIF+gQBsP7IdgJdWvkRecR5fbPmC3Ud3V/paecV53P7N7SzYtcDr8xsObfDYfnX1q1z64aXkFucS5B9Efkm+RxC5cfiN/Hj1j3SJ7MKIhFHw0Tvw8Ztg+fPTD8EcG38sYKojq1JWcf3n17N4z2ImvDuBqz+9mrin4/how0cczj/MW2vf4sEfH2TCOxMIeTyERxY+Usu/VONRZURERNq0sDAgxbObZnjicH7e9zM7juygqLSIt9a+5Xzu/fXvc3H/i/nvb/+lfVB7Lh1wKV0iuwDw8sqXeXb5szy7/Fky784kItjzTrWOMHJmjzM5vfvp/HrgV77b8R2hAaEsvGYhaw+uZdfRXUybNw2AKwdfycjOI9l9+24WLIBT10FiImRlQUYGnBY0ghWsYNq8aaRkpwDw2ebPOJR3CDCrtV7x8RUAFbqYHln4COf1OY9e0b3YnL6ZYYnDGuYPWgcKIyIi0qZ566ZxDyOfb/6cjPwM53N/++5vPL7ocTILzXiPDzd8yLLJZmDp/B3zncf9Y8k/ePS0Rz1e1xFGhicO5/9O/D/ABAbLsvD386dndE8sy6KgpIC84jznjBmAlSvN79GjoaAAvvoK/FJGArOcQQRwBpETu5xIx9COfLb5MwAGdhrICcknEB0azdytc/nt4G9M+nwSvaJ78cnGT3j1vFeZOGRiXf+M9aIwIiIibZrppqlYGQEzZuT5X54H4IZhN/D6mtcpKi0iszCTYQnD+DX1V5bvX05Kdgox7WJYtGeR8zWeXPIkAzoNoHfH3hSVFnFs/LGsP7QegP6x/Z3H+dn8wOZ6b5vNxvSxFdfid4SR4cMhONiEkZSVI2Cw2d8hpAPJEcmsS1sHwKndTmX6idN5a+1bHBt/LCM6j3C+1s0jb2bQi4P4NfVXfk39lQC/AHpG9azbH7ABKIyIiEib5q0y0jPUhJHtR7az/ch2/G3+3HfSfVzS/xKW7F1CckQyVw6+kpNeP4nl+5fz1ZavOKbjMeQU5dAprBOndjuVOevncPlHlztf88weZ7IyxSSKQZ0GVdmmO+6AffvghRfM8vyWBSvsy4kMH25uaAiwY0UfZxi5oO8FdIns4gwjJ3c9mdDAUK4fdn2F108MT+SN89/gvPfOA+AfZ/6DE7qcUKu/W0NSGBERkTbNfdEzAMr8Oby1D2GBYeQW5wJwyYBLSIpIIikiidN7nO48dELvCSzfv5wvt37JgKMDABjXcxyzz5tNRHAEH238iNCAUFJzUp1dOP4HRhB0ZDDLdsHQoeamhLt2wZNPwrJl0KkTPGNf/HXBAujXz4SPHTsgIACGuQ3t2L/Xn78dfz8L9n3LE2c8wa6ju3h44cME+gUyKmlUldd9bp9z+fjSj0nPS2fy0Mn1/CvWj8KIiIi0aRVm0+RHsWK5P29e/iZPLX2KfVn7uHfsvV7PndB7Avf/eD/zt8933iPm1G6nEugfyCvnvsIr574CwNRvpjJz+UwASr97hP4vmX6ZY4+FNWvMa330EaSkeL5+Wpr5AbDZ4LnnICrKbCckQGoqXBj1CE+ebWbGxLaL5ckznqRzeGfCgsKozgX9Lqj2mKagMCIiIm1aWBhQ3A4sG9gsyI/mrQ/h/vsvcH5ZHzxoukpsNs9zh8QNIaF9Aqk5qc6l2t0HnTo8eMqDfLdlKb//1BO2neXc7wgiUDGIPPaY6ZJJS4PVq+HMM2H8eNfz/fubMLJhAxx/vNlns9k4yf9vhPt7v9Zff4WlS2HyZAgJqclfp2lonREREWnTzJ17bc7qSEBJFDt3wlv22bxvvgnx8fDwwxXPtdlsnNHjDOd2h5AO9InpU+G4DiEduCd2uVknBBsJCXD++ea5oCAzRqR/f89zLr8czjoLrrrKdNu4BxFwHb98OWzaZMLS3r0wdiwMHAh/+QtMnQovvwwXXAAnnAAjRsAtt8B999X+79SYFEZERKRNC3P0ZtjDSM/EaACefhrKyuAR+9pgM2bAli2wfTv88AN89hnk55uBqQ7Hdz7ezI7xYuNG83vyZNi/Hz78EB56yISep5+G9etN1cLfH0aNgh49vL6MkyOMvPyyGVdyzDHw739DSYnZ/5//wMyZMGUKfPqpee2yMvPcs8/C5s01/xs1NnXTiIhIm9beMVykMBzCUxl0TBRb/Uz3x4svwrZt5umiIuhTruhx331w499clZGEktEsW2YGpgYFeR67wb74av/+prsnIAAefNDzmNGjTSiJja2+3eUrKdu3wz/+YR737g1nn23Cx5o1MHKkCThdusCjj5ppwddfD1deaYLRueeaLqHy3VBNRZURERFp08pXRuIjohlhX5LjzjvN7wkTzNoeYMZaJCaax59+CgnhCc51Sd548HRGj4ZBg+Dnnz3fxxFG+vWruj19+kB0dPXtHjTINe7jpZc8n3vhBVP9+Pe/YdEi+Oc/4ZJLzNiS554zAWzRIlM1efRRE1aeeqr692wsCiMiItKmucKImd4bHRrN6fbZuwUFpoLx4otm3Y+DByEvD9auNVWE33+3d7lc8iFdFn4Le04ETHfOmDFw2mlmym5ODmzdal6zfEWjrqKi4Kef4LffzPiQQfalSwIDzXtXpkcPmDXLPA4KMkErLKzimJSmpDAiIiJtmrObxl4ZiQqNcoYRMBWFpCSz+FinTiaEdOyIs3ry7bdgy+rKnh/H4ednukuuvdaM/fjxR7j7bhNKSkogIgKSkxuu7SNGwODBpk3XXGP2nXCCa1G0ylx1lWnb77/DF1/AoUOuMOMLGjMiIiJtmrMysvECIo9Zxxk9zqBXBISHQ3a2mZHizdlnwy+/mDDiGDQ6erSpPMyebcaTvP02PPCAa/XU669vvHEZN99sfp9zTs2OP+UU1+PQ0AZvTq2oMiIiIm2aM4ysnsSDkbsZ2GkgISHw9dfw+eeuCkh5Z9on0SxYYI4FE1AcevSA++93HRcWBv/3f41xBUZQEEybBn37Nt57NJY6hZFZs2bRvXt3QkJCGDZsGIsWLary+IULFzJs2DBCQkLo0aMHL5UfaSMiIuIj7d0WX3WvEJxwgpllUpnhw00ASEuDL780+7yNu/jXv2DAADN9tyazZNqiWoeROXPmcPvtt3PvvfeyevVqxo4dy/jx49mzZ4/X43fu3Mk555zD2LFjWb16Nffccw+33norH330Ub0bLyIiUl/u4yvKT8etSkiICSRgumk6dYLjjqt43IABZmzGlCn1a2drVusw8swzzzBp0iQmT55Mv379mDlzJsnJybz44otej3/ppZfo0qULM2fOpF+/fkyePJnrrruOp59+ut6NFxERqS8/t29Cx/TdmjrB7Ua3Z53l+VpSc7X6sxUVFbFq1SrGjRvnsX/cuHEsXbrU6zk///xzhePPOussVq5cSXFxsddzCgsLycrK8vgRERFpbIMH1+549zDiy6mxLV2twkh6ejqlpaXExcV57I+Li+PAgQNezzlw4IDX40tKSkhPT/d6zowZM4iMjHT+JDfkPCgREZFyfvvNrEpa2+mtJ5xg1vUIDHQNVJXaq1NByVZuXpJlWRX2VXe8t/0O06dPJzMz0/mzd+/eujRTRESkRgYPrvmUWHcxMTB3rpneGxPT8O1qK2q1zkhMTAz+/v4VqiBpaWkVqh8O8fHxXo8PCAigY8eOXs8JDg4muLYddyIiIj5wxhnVHyNVq1VlJCgoiGHDhjF//nyP/fPnz2dMJWvPjh49usLx8+bNY/jw4QQGBtayuSIiItLa1LqbZtq0abz66qvMnj2bjRs3MnXqVPbs2cMU+5yl6dOnM3HiROfxU6ZMYffu3UybNo2NGzcye/ZsXnvtNe503H1IRERE2rRaLwd/2WWXkZGRwSOPPEJqaioDBw5k7ty5dO3aFYDU1FSPNUe6d+/O3LlzmTp1Ki+88AKJiYk899xzXHTRRQ13FSIiItJi2SzHaNJmLCsri8jISDIzM4mIiPB1c0RERKQGavr9reVZRERExKcURkRERMSnFEZERETEpxRGRERExKcURkRERMSnFEZERETEpxRGRERExKcURkRERMSnFEZERETEp2q9HLwvOBaJzcrK8nFLREREpKYc39vVLfbeIsJIdnY2AMnJyT5uiYiIiNRWdnY2kZGRlT7fIu5NU1ZWRkpKCuHh4dhstgZ73aysLJKTk9m7d2+buueNrlvX3RbounXdbUFzv27LssjOziYxMRE/v8pHhrSIyoifnx9JSUmN9voRERHN8kNsbLrutkXX3bboutuW5nzdVVVEHDSAVURERHxKYURERER8qk2HkeDgYB588EGCg4N93ZQmpevWdbcFum5dd1vQWq67RQxgFRERkdarTVdGRERExPcURkRERMSnFEZERETEpxRGRERExKfadBiZNWsW3bt3JyQkhGHDhrFo0SJfN6lBPfTQQ9hsNo+f+Ph45/OWZfHQQw+RmJhIaGgop5xyCuvXr/dhi+vmp59+4txzzyUxMRGbzcann37q8XxNrrOwsJBbbrmFmJgYwsLCOO+889i3b18TXkXtVHfN11xzTYXPftSoUR7HtLRrBpgxYwYjRowgPDycTp068cc//pHNmzd7HNMaP++aXHdr/MxffPFFBg8e7FzQa/To0Xz99dfO51vjZw3VX3dr/KzbbBiZM2cOt99+O/feey+rV69m7NixjB8/nj179vi6aQ1qwIABpKamOn/WrVvnfO6pp57imWee4fnnn2fFihXEx8dz5plnOu8F1FLk5uYyZMgQnn/+ea/P1+Q6b7/9dj755BPee+89Fi9eTE5ODhMmTKC0tLSpLqNWqrtmgLPPPtvjs587d67H8y3tmgEWLlzITTfdxLJly5g/fz4lJSWMGzeO3Nxc5zGt8fOuyXVD6/vMk5KSeOKJJ1i5ciUrV67ktNNO4/zzz3cGjtb4WUP11w2t77PGaqNGjhxpTZkyxWNf3759rbvvvttHLWp4Dz74oDVkyBCvz5WVlVnx8fHWE0884dxXUFBgRUZGWi+99FITtbDhAdYnn3zi3K7JdR49etQKDAy03nvvPecx+/fvt/z8/KxvvvmmydpeV+Wv2bIs6+qrr7bOP//8Ss9p6dfskJaWZgHWwoULLctqG5+3ZVW8bstqO595VFSU9eqrr7aZz9rBcd2W1To/6zZZGSkqKmLVqlWMGzfOY/+4ceNYunSpj1rVOLZu3UpiYiLdu3fnT3/6Ezt27ABg586dHDhwwONvEBwczMknn9yq/gY1uc5Vq1ZRXFzscUxiYiIDBw5s0X+LBQsW0KlTJ3r37s31119PWlqa87nWcs2ZmZkAREdHA23n8y5/3Q6t+TMvLS3lvffeIzc3l9GjR7eZz7r8dTu0ts+6Rdwor6Glp6dTWlpKXFycx/64uDgOHDjgo1Y1vOOPP57//e9/9O7dm4MHD/LYY48xZswY1q9f77xOb3+D3bt3+6K5jaIm13ngwAGCgoKIioqqcExL/d/D+PHjueSSS+jatSs7d+7k/vvv57TTTmPVqlUEBwe3imu2LItp06Zx4oknMnDgQKBtfN7erhta72e+bt06Ro8eTUFBAe3bt+eTTz6hf//+zi/V1vpZV3bd0Do/6zYZRhxsNpvHtmVZFfa1ZOPHj3c+HjRoEKNHj6Znz57897//dQ52au1/A4e6XGdL/ltcdtllzscDBw5k+PDhdO3ala+++ooLL7yw0vNa0jXffPPNrF27lsWLF1d4rjV/3pVdd2v9zPv06cOaNWs4evQoH330EVdffTULFy50Pt9aP+vKrrt///6t8rNuk900MTEx+Pv7V0iIaWlpFVJ2axIWFsagQYPYunWrc1ZNa/8b1OQ64+PjKSoq4siRI5Ue09IlJCTQtWtXtm7dCrT8a77lllv4/PPP+fHHH0lKSnLub+2fd2XX7U1r+cyDgoLo1asXw4cPZ8aMGQwZMoRnn3221X/WlV23N63hs26TYSQoKIhhw4Yxf/58j/3z589nzJgxPmpV4yssLGTjxo0kJCTQvXt34uPjPf4GRUVFLFy4sFX9DWpyncOGDSMwMNDjmNTUVH7//fdW87fIyMhg7969JCQkAC33mi3L4uabb+bjjz/mhx9+oHv37h7Pt9bPu7rr9qa1fOblWZZFYWFhq/2sK+O4bm9axWfd5ENmm4n33nvPCgwMtF577TVrw4YN1u23326FhYVZu3bt8nXTGswdd9xhLViwwNqxY4e1bNkya8KECVZ4eLjzGp944gkrMjLS+vjjj61169ZZl19+uZWQkGBlZWX5uOW1k52dba1evdpavXq1BVjPPPOMtXr1amv37t2WZdXsOqdMmWIlJSVZ3333nfXrr79ap512mjVkyBCrpKTEV5dVpaquOTs727rjjjuspUuXWjt37rR+/PFHa/To0Vbnzp1b9DVblmX99a9/tSIjI60FCxZYqampzp+8vDznMa3x867uulvrZz59+nTrp59+snbu3GmtXbvWuueeeyw/Pz9r3rx5lmW1zs/asqq+7tb6WbfZMGJZlvXCCy9YXbt2tYKCgqyhQ4d6TJNrDS677DIrISHBCgwMtBITE60LL7zQWr9+vfP5srIy68EHH7Ti4+Ot4OBg66STTrLWrVvnwxbXzY8//mgBFX6uvvpqy7Jqdp35+fnWzTffbEVHR1uhoaHWhAkTrD179vjgamqmqmvOy8uzxo0bZ8XGxlqBgYFWly5drKuvvrrC9bS0a7Ysy+s1A9brr7/uPKY1ft7VXXdr/cyvu+465/9Hx8bGWqeffroziFhW6/ysLavq626tn7XNsiyr6eowIiIiIp7a5JgRERERaT4URkRERMSnFEZERETEpxRGRERExKcURkRERMSnFEZERETEpxRGRERExKcURkRERMSnFEZERETEpxRGRERExKcURkRERMSnFEZERETEp/4faD1+/GywwKQAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "with torch.no_grad():\n", + " # shift train predictions for plotting\n", + " train_plot = np.ones_like(bitcoin_price_list) * np.nan\n", + " y_pred = model(X_train)\n", + " y_pred = y_pred[:, -1, :]\n", + " train_plot[lookback:train_size] = model(X_train)[:, -1, :]\n", + " # shift test predictions for plotting\n", + " test_plot = np.ones_like(bitcoin_price_list) * np.nan\n", + " test_plot[train_size+lookback:len(bitcoin_price_list)] = model(X_test)[:, -1, :]\n", + "# plot\n", + "plt.plot(normalized, c='b')\n", + "plt.plot(train_plot, c='r')\n", + "plt.plot(test_plot, c='g')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "id": "90d2555f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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d1ZWlgLUhg0blFIXzu+7+n0rdWH8vpVSKiQkRL355psXzO/axnbfSnnu71oqOi2orKyMnTt3kpCQ4HI8ISGBTZs2uemqWsfhw4eJiYmhd+/e/OpXv+LYsWMApKamkpmZ6fIzMBqNXH311R71M2jIfe7cuZPy8nKXNjExMcTFxXX4n8X69euJiIigf//+zJkzh6ysLPs5T7hvs9kMQGhoKHDh/L6r37eNJ/++KysrSUpKoqioiPj4+Avmd139vm088Xd9QW/q2dLOnj1LZWUlkZGRLscjIyPJzMx001W1vJEjR/Kf//yH/v37c+bMGR5//HFGjx7N/v377fdZ28/gxIkT7rjcVtGQ+8zMzMTPz4+QkJAabTryPw8TJ07kl7/8JT179iQ1NZW//OUvjB07lp07d2I0Gjv8fSuluPfee7nyyiuJi4sDLozfd233DZ77+967dy/x8fGUlpbSuXNnli1bxqBBg+x/sD31d13XfYPn/q4l6LQCg8Hg8lwpVeNYRzZx4kT748GDBxMfH0/fvn1577337APXPP1nYNOU++zoP4tbb73V/jguLo7hw4fTs2dPli9fzrRp0+p8XUe577lz57Jnzx42btxY45wn/77rum9P/X0PGDCAlJQU8vLy+PTTT5k5cyYbNmywn/fU33Vd9z1o0CCP/V1L11ULCg8Px9vbu0ayzcrKqvF/B54kMDCQwYMHc/jwYfvsK0//GTTkPqOioigrKyM3N7fONp4gOjqanj17cvjwYaBj3/e8efP44osvWLduHd27d7cf9/Tfd133XRtP+X37+flx0UUXMXz4cJYsWcLQoUN58cUXPf53Xdd918ZTftcSdFqQn58fw4YNY/Xq1S7HV69ezejRo910Va3PYrHw448/Eh0dTe/evYmKinL5GZSVlbFhwwaP+hk05D6HDRuGr6+vS5uMjAz27dvnUT+Lc+fOkZaWRnR0NNAx71spxdy5c/nss89Yu3YtvXv3djnvqb/v8913bTzh910bpRQWi8Vjf9d1sd13bTzmd93mw589XFJSkvL19VVvvfWWOnDggFqwYIEKDAxUx48fd/eltZiFCxeq9evXq2PHjqktW7aoyZMnq6CgIPs9Pvnkk8pkMqnPPvtM7d27V912220qOjpa5efnu/nKG6egoEDt3r1b7d69WwHq+eefV7t371YnTpxQSjXsPu+8807VvXt39c0336hdu3apsWPHqqFDh6qKigp33dZ51XffBQUFauHChWrTpk0qNTVVrVu3TsXHx6tu3bp16Pu+6667lMlkUuvXr1cZGRn2r+LiYnsbT/x9n+++PfX3/cADD6hvv/1Wpaamqj179qgHH3xQeXl5qVWrVimlPPN3rVT99+2pv2ullJKg0wr+9a9/qZ49eyo/Pz91+eWXu0zV9AS33nqrio6OVr6+viomJkZNmzZN7d+/336+qqpKPfLIIyoqKkoZjUZ11VVXqb1797rxiptm3bp1CqjxNXPmTKVUw+6zpKREzZ07V4WGhqqAgAA1efJkdfLkSTfcTcPVd9/FxcUqISFBde3aVfn6+qoePXqomTNn1rinjnbftd0voN555x17G0/8fZ/vvj319/3b3/7W/t/orl27quuuu84ecpTyzN+1UvXft6f+rpVSyqCUUm1XPxJCCCGEaDsyRkcIIYQQHkuCjhBCCCE8lgQdIYQQQngsCTpCCCGE8FgSdIQQQgjhsSToCCGEEMJjSdARQgghhMeSoCOEEEIIjyVBRwghhBAeS4KOEEIIITyWBB0hhBBCeCwJOkIIIYTwWP8Po5Y2F1km+x4AAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "with torch.no_grad():\n", + " \n", + " # shift train predictions for plotting\n", + " train_plot = np.ones_like(bitcoin_price_list) * np.nan\n", + " y_pred = model(X_train)\n", + " y_pred = y_pred[:, -1, :]\n", + " train_inversed = scaler.inverse_transform(model(X_train)[:, -1, :])\n", + " train_plot[lookback:train_size] = train_inversed\n", + " # shift test predictions for plotting\n", + " test_plot = np.ones_like(bitcoin_price_list) * np.nan\n", + " test_inversed = scaler.inverse_transform(model(X_test)[:, -1, :])\n", + " test_plot[train_size+lookback:len(bitcoin_price_list)] = test_inversed\n", + "\n", + "# plot\n", + "plt.plot(bitcoin_price_list, c='b')\n", + "plt.plot(train_plot, c='r')\n", + "plt.plot(test_plot, c='g')\n", + "plt.show() " + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "id": "e8fa03dd", + "metadata": {}, + "outputs": [], + "source": [ + "from math import sqrt\n", + "from sklearn.metrics import mean_squared_error" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "id": "8ef85b1e", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Test RMSE: 767.999\n" + ] + } + ], + "source": [ + "rmse = sqrt(mean_squared_error(bitcoin_price_list[train_size+lookback:], test_inversed))\n", + "print('Test RMSE: %.3f' % rmse)" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "id": "d9b54f95", + "metadata": {}, + "outputs": [], + "source": [ + "bitcoin_train, bitcoin_test = bitcoin_price_list[:train_size], bitcoin_price_list[train_size:]" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "id": "fc04aebb", + "metadata": {}, + "outputs": [], + "source": [ + "# get previous day's opening price\n", + "# because of the lookback (currently=4), the previous price set starts from position 3\n", + "\n", + "bitcoin_test_previous_price = bitcoin_test.copy()[lookback-1:][:-1]" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "id": "e173b3a1", + "metadata": {}, + "outputs": [], + "source": [ + "bitcoin_true_label = []\n", + "\n", + "\n", + "bitcoin_test = bitcoin_test.copy()[lookback:]\n", + "for i, _ in enumerate(bitcoin_test):\n", + " if(bitcoin_test[i] > bitcoin_test_previous_price[i]):\n", + " bitcoin_true_label.append(\"Increase\")\n", + " else:\n", + " bitcoin_true_label.append(\"Decrease\")" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "id": "df069e2c", + "metadata": {}, + "outputs": [], + "source": [ + "bitcoin_predict_label = []\n", + "for i, _ in enumerate(test_inversed):\n", + " if(test_inversed[i] > bitcoin_test_previous_price[i]):\n", + " bitcoin_predict_label.append(\"Increase\")\n", + " else:\n", + " bitcoin_predict_label.append(\"Decrease\")" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "id": "13c6d5cd", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[19623.584689448744], [20335.899579376473], [20161.03843820979], [19957.55908041741], [19546.328837739784], [19417.479411166132], [19446.416225133773], [19138.999877483147], [19052.64578600759], [19156.96661332697], [19382.53397217804], [19185.437303811446], [19068.91355993786], [19268.562102307453], [19550.466742932043], [19335.02644145188], [19138.08505687014], [19053.203045616505], [19172.380608580974], [19207.734650775248], [19567.769580384924], [19344.96442021395], [20092.23718809519], [20772.803027102687], [20287.956094786256], [20595.103841969667], [20817.982251842404], [20633.696071095317], [20494.897622939236], [20482.959693755372], [20162.689227896553], [20208.7694981217], [21144.83146578881], [21285.056663911386], [20924.62048404909], [20600.67274715879], [18543.761249619893], [15883.15822691518], [17583.252430510052], [17036.875408441774], [16799.722291055714], [16352.028563420386], [16617.484737989726], [16884.341187944265], [16670.426756200326], [16687.911575071244], [16696.219905182574], [16712.920458367662], [16291.223799578982], [15782.301230536288], [16195.588669774414], [16611.637672358618], [16602.269516497403], [16521.577024910126], [16463.883171590274], [16440.222087898794], [16217.639903770933], [16445.47748855228], [17168.002137625317], [16968.683261479262], [17090.098485075916], [16908.170477079635], [17128.894080449645], [16975.23912418603], [17089.506270186645], [16847.350249703974], [17232.148002630023], [17134.221365280508], [17129.71133330881], [17102.50064945091], [17206.440483921902], [17782.066878037138], [17813.644122701808], [17364.546443268817], [16646.982567247887], [16795.6092258732], [16759.04092682387], [16441.786800099886], [16904.527354049867], [16818.380287653727], [16829.643586035916], [16796.976619520563], [16847.505364105884], [16842.249310575324], [16919.291650123574], [16716.40022056822], [16552.322490686318], [16641.329824264532]]\n", + "[[19856.93596118]\n", + " [20609.88079935]\n", + " [20331.18875734]\n", + " [20040.53654845]\n", + " [19738.51595426]\n", + " [19616.59017631]\n", + " [19702.42345799]\n", + " [19415.99975417]\n", + " [19303.48330312]\n", + " [19462.0208716 ]\n", + " [19669.89662391]\n", + " [19465.30775476]\n", + " [19310.45967102]\n", + " [19551.47780531]\n", + " [19832.83595399]\n", + " [19590.51637559]\n", + " [19357.21801994]\n", + " [19337.57015897]\n", + " [19467.69579539]\n", + " [19507.16928947]\n", + " [19811.22095405]\n", + " [19623.98388093]\n", + " [20235.53118868]\n", + " [21008.29904567]\n", + " [20414.84290442]\n", + " [20595.05298735]\n", + " [20971.66087451]\n", + " [20730.64369088]\n", + " [20564.11065435]\n", + " [20586.77422467]\n", + " [20306.63196133]\n", + " [20312.70045551]\n", + " [21249.74117124]\n", + " [21442.29120697]\n", + " [20933.77211918]\n", + " [20641.20672089]\n", + " [18823.34121089]\n", + " [16402.67321351]\n", + " [18112.11911207]\n", + " [18083.55412485]\n", + " [17201.974512 ]\n", + " [17160.83238404]\n", + " [17430.77889269]\n", + " [17739.29553731]\n", + " [17397.58208582]\n", + " [17401.45552195]\n", + " [17491.68343533]\n", + " [17476.49152319]\n", + " [17081.89490241]\n", + " [16644.6990401 ]\n", + " [17174.40961187]\n", + " [17597.43860375]\n", + " [17380.81850641]\n", + " [17260.48174514]\n", + " [17270.27727487]\n", + " [17270.87880063]\n", + " [17068.71457226]\n", + " [17300.08191375]\n", + " [18013.44892367]\n", + " [17682.70434552]\n", + " [17664.83016561]\n", + " [17628.47885403]\n", + " [17792.67851248]\n", + " [17693.86311182]\n", + " [17735.0860453 ]\n", + " [17565.53658643]\n", + " [17893.89692656]\n", + " [17851.8861393 ]\n", + " [17731.16008559]\n", + " [17777.12749112]\n", + " [17865.13111387]\n", + " [18408.13609416]\n", + " [18386.94674916]\n", + " [17840.92392054]\n", + " [17259.8348257 ]\n", + " [17527.99672079]\n", + " [17601.78546513]\n", + " [17190.16431066]\n", + " [17673.33185644]\n", + " [17630.04125243]\n", + " [17494.82154128]\n", + " [17543.76354041]\n", + " [17580.02453994]\n", + " [17580.82594052]\n", + " [17637.30733187]\n", + " [17449.85945142]\n", + " [17292.30866087]\n", + " [17443.7355817 ]]\n" + ] + } + ], + "source": [ + "print(bitcoin_test_previous_price)\n", + "print(test_inversed)" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "id": "71a0b73b", + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.metrics import precision_recall_fscore_support\n", + "from sklearn.metrics import accuracy_score\n", + "from sklearn.metrics import classification_report" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "id": "c454b0bb", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " Decrease 0.00 0.00 0.00 49\n", + " Increase 0.44 0.97 0.60 39\n", + "\n", + " accuracy 0.43 88\n", + " macro avg 0.22 0.49 0.30 88\n", + "weighted avg 0.19 0.43 0.27 88\n", + "\n" + ] + } + ], + "source": [ + "print(classification_report(bitcoin_true_label, bitcoin_predict_label))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.10.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}