diff --git a/MVA_MP3_Thibault_CORDIER.ipynb b/MVA_MP3_Thibault_CORDIER.ipynb new file mode 100755 index 0000000000000000000000000000000000000000..114fc3e2bcb56f16e1fea012b492eb16cc66670b --- /dev/null +++ b/MVA_MP3_Thibault_CORDIER.ipynb @@ -0,0 +1,2792 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "MVA_MP3_Thibault_CORDIER.ipynb", + "version": "0.3.2", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + } + }, + "cells": [ + { + "metadata": { + "id": "dJSdI0PAgDIr", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "**You may need to install [OpenCV](https://pypi.python.org/pypi/opencv-python) and [scikit-video](http://www.scikit-video.org/stable/).**" + ] + }, + { + "metadata": { + "id": "c0tsh8Inht3p", + "colab_type": "code", + "outputId": "2cec9343-7d60-449b-b6d6-4910e4308a4a", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 207 + } + }, + "cell_type": "code", + "source": [ + "! pip install opencv-python scikit-video" + ], + "execution_count": 1, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Requirement already satisfied: opencv-python in /usr/local/lib/python3.6/dist-packages (3.4.5.20)\n", + "Collecting scikit-video\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/b1/a6/c69cad508139a342810ae46e946ebb3256aa6e42f690d901bb68f50582e3/scikit_video-1.1.11-py2.py3-none-any.whl (2.3MB)\n", + "\u001b[K 100% |████████████████████████████████| 2.3MB 5.8MB/s \n", + "\u001b[?25hRequirement already satisfied: numpy>=1.11.3 in /usr/local/lib/python3.6/dist-packages (from opencv-python) (1.14.6)\n", + "Requirement already satisfied: pillow in /usr/local/lib/python3.6/dist-packages (from scikit-video) (4.0.0)\n", + "Requirement already satisfied: scipy in /usr/local/lib/python3.6/dist-packages (from scikit-video) (1.1.0)\n", + "Requirement already satisfied: olefile in /usr/local/lib/python3.6/dist-packages (from pillow->scikit-video) (0.46)\n", + "Installing collected packages: scikit-video\n", + "Successfully installed scikit-video-1.1.11\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "cX4MTwWxgDI1", + "colab_type": "code", + "outputId": "92b62e55-400d-43e3-c4f0-69947ce720f8", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "cell_type": "code", + "source": [ + "import keras\n", + "import numpy as np\n", + "import io\n", + "import base64\n", + "from IPython.display import HTML\n", + "import skvideo.io\n", + "import cv2\n", + "import json\n", + "\n", + "from keras.models import Sequential,model_from_json\n", + "from keras.layers.core import Dense\n", + "from keras.optimizers import sgd\n", + "from keras.layers import Conv2D, MaxPooling2D, Activation, AveragePooling2D,Reshape,BatchNormalization" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ], + "name": "stderr" + } + ] + }, + { + "metadata": { + "id": "jeeftte2gDJI", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "# MiniProject #3: Deep Reinforcement Learning" + ] + }, + { + "metadata": { + "id": "vzs-_le7gDJO", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "__Notations__: $E_p$ is the expectation under probability $p$. Please justify each of your answer and widely comment your code." + ] + }, + { + "metadata": { + "id": "wr_NLjJLgDJV", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "# Context" + ] + }, + { + "metadata": { + "id": "LNKYnltVgDJa", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "In a reinforcement learning algorithm, we modelize each step $t$ as an action $a_t$ obtained from a state $s_t$, i.e. $\\{(a_{t},s_{t})_{t\\leq T}\\}$ having the Markov property. We consider a discount factor $\\gamma \\in [0,1]$ that ensures convergence. The goal is to find among all the policies $\\pi$, one that maximizes the expected reward:\n", + "\n", + "\\begin{equation*}\n", + "R(\\pi)=\\sum_{t\\leq T}E_{p^{\\pi}}[\\gamma^t r(s_{t},a_{t})] \\> ,\n", + "\\end{equation*}\n", + "\n", + "where: \n", + "\\begin{equation*}p^{\\pi}(a_{0},a_{1},s_{1},...,a_{T},s_{T})=p(a_{0})\\prod_{t=1}^{T}\\pi(a_{t}|s_{t})p(s_{t+1}|s_{t},a_{t}) \\> .\n", + "\\end{equation*}\n", + "\n", + "We note the $Q$-function:\n", + "\n", + "\\begin{equation*}Q^\\pi(s,a)=E_{p^{\\pi}}[\\sum_{t\\leq T}\\gamma^{t}r(s_{t},a_{t})|s_{0}=s,a_{0}=a] \\> .\n", + "\\end{equation*}\n", + "\n", + "Thus, the optimal Q function is:\n", + "\\begin{equation*}\n", + "Q^*(s,a)=\\max_{\\pi}Q^\\pi(s,a) \\> .\n", + "\\end{equation*}\n", + "\n", + "In this project, we will apply the deep reinforcement learning techniques to a simple game: an agent will have to learn from scratch a policy that will permit it maximizing a reward." + ] + }, + { + "metadata": { + "id": "K-4CjQcNgDJf", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "## The environment, the agent and the game" + ] + }, + { + "metadata": { + "id": "pzaeYAlPgDJm", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "### The environment" + ] + }, + { + "metadata": { + "id": "Sns4MZCpgDJp", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "```Environment``` is an abstract class that represents the states, rewards, and actions to obtain the new state." + ] + }, + { + "metadata": { + "id": "QszZ6yTfgDJt", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "class Environment(object):\n", + " def __init__(self):\n", + " pass\n", + "\n", + " def act(self, act):\n", + " \"\"\"\n", + " One can act on the environment and obtain its reaction:\n", + " - the new state\n", + " - the reward of the new state\n", + " - should we continue the game?\n", + "\n", + " :return: state, reward, game_over\n", + " \"\"\"\n", + " pass\n", + "\n", + "\n", + " def reset(self):\n", + " \"\"\"\n", + " Reinitialize the environment to a random state and returns\n", + " the original state\n", + "\n", + " :return: state\n", + " \"\"\"\n", + " pass\n", + " \n", + " def draw(self):\n", + " \"\"\"\n", + " Visualize in the console or graphically the current state\n", + " \"\"\"\n", + " pass" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "RRvlLfqqgDJ7", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "The method ```act``` allows to act on the environment at a given state $s_t$ (stored internally), via action $a_t$. The method will return the new state $s_{t+1}$, the reward $r(s_{t},a_{t})$ and determines if $t\\leq T$ (*game_over*).\n", + "\n", + "The method ```reset``` simply reinitializes the environment to a random state $s_0$.\n", + "\n", + "The method ```draw``` displays the current state $s_t$ (this is useful to check the behavior of the Agent).\n", + "\n", + "We modelize $s_t$ as a tensor, while $a_t$ is an integer." + ] + }, + { + "metadata": { + "id": "3Njx8mPMgDJ_", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "### The Agent" + ] + }, + { + "metadata": { + "id": "sOpsiGbzgDKE", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "The goal of the ```Agent``` is to interact with the ```Environment``` by proposing actions $a_t$ obtained from a given state $s_t$ to attempt to maximize its __reward__ $r(s_t,a_t)$. We propose the following abstract class:" + ] + }, + { + "metadata": { + "id": "Li6wzHQ3gDKI", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "class Agent(object):\n", + " def __init__(self, epsilon=0.1, n_action=4):\n", + " self.epsilon = epsilon\n", + " self.n_action = n_action\n", + " \n", + " def set_epsilon(self,e):\n", + " self.epsilon = e\n", + "\n", + " def act(self,s,train=True):\n", + " \"\"\" This function should return the next action to do:\n", + " an integer between 0 and 4 (not included) with a random exploration of epsilon\"\"\"\n", + " if train:\n", + " if np.random.rand() <= self.epsilon:\n", + " a = np.random.randint(0, self.n_action, size=1)[0]\n", + " else:\n", + " a = self.learned_act(s)\n", + " else: # in some cases, this can improve the performance.. remove it if poor performances\n", + " a = self.learned_act(s)\n", + "\n", + " return a\n", + "\n", + " def learned_act(self,s):\n", + " \"\"\" Act via the policy of the agent, from a given state s\n", + " it proposes an action a\"\"\"\n", + " pass\n", + "\n", + " def reinforce(self, s, n_s, a, r, game_over_):\n", + " \"\"\" This function is the core of the learning algorithm. \n", + " It takes as an input the current state s_, the next state n_s_\n", + " the action a_ used to move from s_ to n_s_ and the reward r_.\n", + " \n", + " Its goal is to learn a policy.\n", + " \"\"\"\n", + " pass\n", + "\n", + " def save(self):\n", + " \"\"\" This function returns basic stats if applicable: the\n", + " loss and/or the model\"\"\"\n", + " pass\n", + "\n", + " def load(self):\n", + " \"\"\" This function allows to restore a model\"\"\"\n", + " pass" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "xZ3IT7aCgDKY", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "***\n", + "__Question 1__:\n", + "Explain the function act. Why is ```epsilon``` essential?" + ] + }, + { + "metadata": { + "id": "xIK4FVA7gDKb", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "The function ```act``` should return the next action to do (an integer between 0 and 4 (not included)) with the possibility to realize a random exploration w.r.t $\\epsilon$.\n", + "\n", + "The function ```act``` depends on the ```learned_act``` function which return an act via the policy of the agent, from a given state $s$.\n", + "\n", + "We identify two modes : **train** mode and **test** mode.\n", + "\n", + "In the **train** mode, we authorise :\n", + "- to choose the learned action with probability $1-\\epsilon$ \n", + "- and to choose different actions randomly with probability $\\epsilon$\n", + "\n", + "In the **test** mode, we authorise :\n", + "- to choose the learned action only (so with probability $1$)\n", + "\n", + "The $\\epsilon$ parameter is essential because it authorises an exploration strategy with the exploitation strategy, in order to improve the learning and so the performance and the rewards in the future (in expectation)." + ] + }, + { + "metadata": { + "id": "XIjK_VwIgDKh", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "***\n", + "### The Game" + ] + }, + { + "metadata": { + "id": "I-u1k8aZgDKl", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "The ```Agent``` and the ```Environment``` work in an interlaced way as in the following (take some time to understand this code as it is the core of the project)\n", + "\n", + "```python\n", + "\n", + "epoch = 300\n", + "env = Environment()\n", + "agent = Agent()\n", + "\n", + "\n", + "# Number of won games\n", + "score = 0\n", + "loss = 0\n", + "\n", + "\n", + "for e in range(epoch):\n", + " # At each epoch, we restart to a fresh game and get the initial state\n", + " state = env.reset()\n", + " # This assumes that the games will end\n", + " game_over = False\n", + "\n", + " win = 0\n", + " lose = 0\n", + " \n", + " while not game_over:\n", + " # The agent performs an action\n", + " action = agent.act(state)\n", + "\n", + " # Apply an action to the environment, get the next state, the reward\n", + " # and if the games end\n", + " prev_state = state\n", + " state, reward, game_over = env.act(action)\n", + "\n", + " # Update the counters\n", + " if reward > 0:\n", + " win = win + reward\n", + " if reward < 0:\n", + " lose = lose -reward\n", + "\n", + " # Apply the reinforcement strategy\n", + " loss = agent.reinforce(prev_state, state, action, reward, game_over)\n", + "\n", + " # Save as a mp4\n", + " if e % 10 == 0:\n", + " env.draw(e)\n", + "\n", + " # Update stats\n", + " score += win-lose\n", + "\n", + " print(\"Epoch {:03d}/{:03d} | Loss {:.4f} | Win/lose count {}/{} ({})\"\n", + " .format(e, epoch, loss, win, lose, win-lose))\n", + " agent.save()\n", + "```" + ] + }, + { + "metadata": { + "id": "NM_oyth_gDKr", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "# The game, *eat cheese*" + ] + }, + { + "metadata": { + "id": "rWKFz1l2gDKv", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "A rat runs on an island and tries to eat as much as possible. The island is subdivided into $N\\times N$ cells, in which there are cheese (+0.5) and poisonous cells (-1). The rat has a visibility of 2 cells (thus it can see $5^2$ cells). The rat is given a time $T$ to accumulate as much food as possible. It can perform 4 actions: going up, down, left, right. \n", + "\n", + "The goal is to code an agent to solve this task that will learn by trial and error. We propose the following environment:" + ] + }, + { + "metadata": { + "id": "lUlHhXhWgDKz", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "class Environment(object):\n", + " def __init__(self, grid_size=10, max_time=500, temperature=0.1):\n", + " grid_size = grid_size+4\n", + " self.grid_size = grid_size\n", + " self.max_time = max_time\n", + " self.temperature = temperature\n", + "\n", + " #board on which one plays\n", + " self.board = np.zeros((grid_size,grid_size))\n", + " self.position = np.zeros((grid_size,grid_size))\n", + "\n", + " # coordinate of the cat\n", + " self.x = 0\n", + " self.y = 1\n", + "\n", + " # self time\n", + " self.t = 0\n", + "\n", + " self.scale=16\n", + "\n", + " self.to_draw = np.zeros((max_time+2, grid_size*self.scale, grid_size*self.scale, 3))\n", + "\n", + "\n", + " def draw(self,e):\n", + " skvideo.io.vwrite(str(e) + '.mp4', self.to_draw)\n", + "\n", + " def get_frame(self,t):\n", + " b = np.zeros((self.grid_size,self.grid_size,3))+128\n", + " b[self.board>0,0] = 256\n", + " b[self.board < 0, 2] = 256\n", + " b[self.x,self.y,:]=256\n", + " b[-2:,:,:]=0\n", + " b[:,-2:,:]=0\n", + " b[:2,:,:]=0\n", + " b[:,:2,:]=0\n", + " \n", + " b = cv2.resize(b, None, fx=self.scale, fy=self.scale, interpolation=cv2.INTER_NEAREST)\n", + "\n", + " self.to_draw[t,:,:,:]=b\n", + "\n", + "\n", + " def act(self, action):\n", + " \"\"\"This function returns the new state, reward and decides if the\n", + " game ends.\"\"\"\n", + "\n", + " self.get_frame(int(self.t))\n", + "\n", + " self.position = np.zeros((self.grid_size, self.grid_size))\n", + "\n", + " self.position[0:2,:]= -1\n", + " self.position[:,0:2] = -1\n", + " self.position[-2:, :] = -1\n", + " self.position[:, -2:] = -1\n", + "\n", + " self.position[self.x, self.y] = 1\n", + " if action == 0:\n", + " if self.x == self.grid_size-3:\n", + " self.x = self.x-1\n", + " else:\n", + " self.x = self.x + 1\n", + " elif action == 1:\n", + " if self.x == 2:\n", + " self.x = self.x+1\n", + " else:\n", + " self.x = self.x-1\n", + " elif action == 2:\n", + " if self.y == self.grid_size - 3:\n", + " self.y = self.y - 1\n", + " else:\n", + " self.y = self.y + 1\n", + " elif action == 3:\n", + " if self.y == 2:\n", + " self.y = self.y + 1\n", + " else:\n", + " self.y = self.y - 1\n", + " else:\n", + " RuntimeError('Error: action not recognized')\n", + "\n", + " self.t = self.t + 1\n", + " reward = self.board[self.x, self.y]\n", + " self.board[self.x, self.y] = 0\n", + " game_over = self.t > self.max_time\n", + " state = np.concatenate((self.board.reshape(self.grid_size, self.grid_size,1),\n", + " self.position.reshape(self.grid_size, self.grid_size,1)),axis=2)\n", + " state = state[self.x-2:self.x+3,self.y-2:self.y+3,:]\n", + "\n", + " return state, reward, game_over\n", + "\n", + " def reset(self):\n", + " \"\"\"This function resets the game and returns the initial state\"\"\"\n", + "\n", + " self.x = np.random.randint(3, self.grid_size-3, size=1)[0]\n", + " self.y = np.random.randint(3, self.grid_size-3, size=1)[0]\n", + "\n", + "\n", + " bonus = 0.5*np.random.binomial(1,self.temperature,size=self.grid_size**2)\n", + " bonus = bonus.reshape(self.grid_size,self.grid_size)\n", + "\n", + " malus = -1.0*np.random.binomial(1,self.temperature,size=self.grid_size**2)\n", + " malus = malus.reshape(self.grid_size, self.grid_size)\n", + "\n", + " self.to_draw = np.zeros((self.max_time+2, self.grid_size*self.scale, self.grid_size*self.scale, 3))\n", + "\n", + "\n", + " malus[bonus>0]=0\n", + "\n", + " self.board = bonus + malus\n", + "\n", + " self.position = np.zeros((self.grid_size, self.grid_size))\n", + " self.position[0:2,:]= -1\n", + " self.position[:,0:2] = -1\n", + " self.position[-2:, :] = -1\n", + " self.position[:, -2:] = -1\n", + " self.board[self.x,self.y] = 0\n", + " self.t = 0\n", + "\n", + " state = np.concatenate((\n", + " self.board.reshape(self.grid_size, self.grid_size,1),\n", + " self.position.reshape(self.grid_size, self.grid_size,1)),axis=2)\n", + "\n", + " state = state[self.x - 2:self.x + 3, self.y - 2:self.y + 3, :]\n", + " return state" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "TQVEflypgDLD", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "The following elements are important because they correspond to the hyper parameters for this project:" + ] + }, + { + "metadata": { + "id": "9ml-H_A_gDLH", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# parameters\n", + "size = 13\n", + "T = 200\n", + "temperature = 0.3\n", + "epochs_train = 100 # set small when debugging\n", + "epochs_test = 100 # set small when debugging\n", + "\n", + "# display videos\n", + "def display_videos(name):\n", + " video = io.open(name, 'r+b').read()\n", + " encoded = base64.b64encode(video)\n", + " return '''<video alt=\"test\" controls>\n", + " <source src=\"data:video/mp4;base64,{0}\" type=\"video/mp4\" />\n", + " </video>'''.format(encoded.decode('ascii'))" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "wBX01BylgDLc", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "__Question 2__ Explain the use of the arrays ```position``` and ```board```." + ] + }, + { + "metadata": { + "id": "VlyslFlWgDLh", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "The ```position``` and ```board``` arrays have the same shape ```(grid_size,grid_size)```. They represent each one crucial aspect of the ```Environment```.\n", + "\n", + "The ```position``` array represents **all position for the ```Agent``` in the ```Environment```**.\n", + "\n", + "- If a position is equal to ```0```, then this is an available position.\n", + "- If a position is equal to ```-1```, then this is an unavailable position.\n", + "- If a position is equal to ```1```, then this is the current position of the ```Agent```.\n", + "- We can see that in the function ```reset```, in the following lines:\n", + "\n", + "```\n", + "self.position = np.zeros((self.grid_size, self.grid_size))\n", + "self.position[0:2,:]= -1\n", + "self.position[:,0:2] = -1\n", + "self.position[-2:, :] = -1\n", + "self.position[:, -2:] = -1\n", + "```\n", + "\n", + "- We can see that in the function ```act```, in the following lines:\n", + "\n", + "```\n", + "self.position = np.zeros((self.grid_size, self.grid_size))\n", + "\n", + "self.position[0:2,:]= -1\n", + "self.position[:,0:2] = -1\n", + "self.position[-2:, :] = -1\n", + "self.position[:, -2:] = -1\n", + "\n", + "self.position[self.x, self.y] = 1\n", + "```\n", + "\n", + "The ```board``` array represents **all available reward for all possible position in the ```Environment```.**\n", + "- We can see that in the function ```act```, in the following line:\n", + "\n", + "```\n", + "reward = self.board[self.x, self.y]\n", + "```\n", + "- We can see that in the function ```reset```, in the following line:\n", + "\n", + "```\n", + "self.board = bonus + malus\n", + "```" + ] + }, + { + "metadata": { + "id": "FAn5Tee_gDLk", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "## Random Agent" + ] + }, + { + "metadata": { + "id": "rLqi3N-5gDLq", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "***\n", + "__Question 3__ Implement a random Agent (only ```learned_act``` needs to be implemented):" + ] + }, + { + "metadata": { + "id": "hys_1Jj8gDLt", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "class RandomAgent(Agent):\n", + " def __init__(self):\n", + " super(RandomAgent, self).__init__()\n", + " pass\n", + "\n", + " def learned_act(self, s):\n", + " \"\"\" This function should return the next action to do:\n", + " an integer between 0 and 4 (not included) with a random exploration of epsilon\"\"\"\n", + " a = np.random.randint(0, self.n_action, size=1)[0]\n", + "\n", + " return a" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "s3A39AQGgDL-", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "***\n", + "***\n", + "__Question 4__ Visualize the game moves. You need to fill in the following function for the evaluation:" + ] + }, + { + "metadata": { + "id": "H06KLO5LgDME", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "def test(agent,env,epochs,prefix=''):\n", + " # Number of won games\n", + " score = 0\n", + " history = {'score':[0],'win':[0],'lose':[0]}\n", + " \n", + " for e in range(1,epochs+1):\n", + " \n", + " ##### FILL IN HERE\n", + " \n", + " # At each epoch, we restart to a fresh game and get the initial state\n", + " state = env.reset()\n", + " # This assumes that the games will end\n", + " game_over = False\n", + "\n", + " win = 0\n", + " lose = 0\n", + "\n", + " while not game_over:\n", + " # The agent performs an action\n", + " action = agent.act(state)\n", + "\n", + " # Apply an action to the environment, get the next state, the reward\n", + " # and if the games end\n", + " prev_state = state\n", + " state, reward, game_over = env.act(action)\n", + "\n", + " # Update the counters\n", + " if reward > 0:\n", + " win = win + reward\n", + " if reward < 0:\n", + " lose = lose -reward\n", + " \n", + " #####\n", + " \n", + " # Save as a mp4\n", + " env.draw(prefix+str(e))\n", + "\n", + " # Update stats\n", + " score = score + win-lose\n", + " history['score'].append(score)\n", + " history['win'].append(history['win'][-1]+win)\n", + " history['lose'].append(history['lose'][-1]+lose)\n", + " \n", + " if e%1==0 :\n", + " print(\"Step {}: Win/lose count {}/{}. Average score ({})\"\n", + " .format(e, win, lose, score/(1+e)))\n", + " \n", + " print('Final score: '+str(score/epochs))\n", + " \n", + " return history" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "1zjtQq0QABe1", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "def visualization_score(history) :\n", + " plt.figure(1, figsize=(20, 5))\n", + " \n", + " # Plot training score values\n", + " plt.subplot(121)\n", + " plt.plot(history['score'])\n", + " plt.title('Score Evolution')\n", + " plt.ylabel('Value')\n", + " plt.xlabel('Epoch')\n", + " plt.legend(['Score'], loc='upper left')\n", + " \n", + " # Plot training win & lose values\n", + " plt.subplot(122)\n", + " plt.plot(history['win'])\n", + " plt.plot(history['lose'])\n", + " plt.title('Win & Lose Evolution')\n", + " plt.ylabel('Value')\n", + " plt.xlabel('Epoch')\n", + " plt.legend(['Win','Lose'], loc='upper left')\n", + " plt.show()" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "JrR9VqpdgDMP", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1734 + }, + "outputId": "1774ee69-bacb-4346-91a0-f2ae500ddc99" + }, + "cell_type": "code", + "source": [ + "# Initialize the game\n", + "env = Environment(grid_size=size, max_time=T, temperature=temperature)\n", + "\n", + "# Initialize the agent!\n", + "agent = RandomAgent()\n", + "\n", + "history = test(agent, env, epochs_test, prefix='random')" + ], + "execution_count": 10, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Step 1: Win/lose count 13.0/8.0. Average score (2.5)\n", + "Step 2: Win/lose count 12.5/21.0. Average score (-1.1666666666666667)\n", + "Step 3: Win/lose count 8.0/13.0. Average score (-2.125)\n", + "Step 4: Win/lose count 10.5/16.0. Average score (-2.8)\n", + "Step 5: Win/lose count 8.0/10.0. Average score (-2.6666666666666665)\n", + "Step 6: Win/lose count 10.5/8.0. Average score (-1.9285714285714286)\n", + "Step 7: Win/lose count 11.0/23.0. Average score (-3.1875)\n", + "Step 8: Win/lose count 11.5/15.0. Average score (-3.2222222222222223)\n", + "Step 9: Win/lose count 9.0/18.0. Average score (-3.8)\n", + "Step 10: Win/lose count 9.0/15.0. Average score (-4.0)\n", + "Step 11: Win/lose count 11.0/17.0. Average score (-4.166666666666667)\n", + "Step 12: Win/lose count 13.5/10.0. Average score (-3.576923076923077)\n", + "Step 13: Win/lose count 15.0/8.0. Average score (-2.8214285714285716)\n", + "Step 14: Win/lose count 9.0/12.0. Average score (-2.8333333333333335)\n", + "Step 15: Win/lose count 15.5/17.0. Average score (-2.75)\n", + "Step 16: Win/lose count 7.5/13.0. Average score (-2.911764705882353)\n", + "Step 17: Win/lose count 11.0/18.0. Average score (-3.138888888888889)\n", + "Step 18: Win/lose count 12.0/14.0. Average score (-3.0789473684210527)\n", + "Step 19: Win/lose count 12.0/21.0. Average score (-3.375)\n", + "Step 20: Win/lose count 12.0/17.0. Average score (-3.4523809523809526)\n", + "Step 21: Win/lose count 10.0/14.0. Average score (-3.477272727272727)\n", + "Step 22: Win/lose count 13.5/13.0. Average score (-3.3043478260869565)\n", + "Step 23: Win/lose count 11.5/12.0. Average score (-3.1875)\n", + "Step 24: Win/lose count 10.0/13.0. Average score (-3.18)\n", + "Step 25: Win/lose count 8.5/11.0. Average score (-3.1538461538461537)\n", + "Step 26: Win/lose count 14.0/10.0. Average score (-2.888888888888889)\n", + "Step 27: Win/lose count 6.5/8.0. Average score (-2.8392857142857144)\n", + "Step 28: Win/lose count 5.0/14.0. Average score (-3.0517241379310347)\n", + "Step 29: Win/lose count 8.0/14.0. Average score (-3.15)\n", + "Step 30: Win/lose count 8.0/24.0. Average score (-3.564516129032258)\n", + "Step 31: Win/lose count 6.5/13.0. Average score (-3.65625)\n", + "Step 32: Win/lose count 12.0/16.0. Average score (-3.6666666666666665)\n", + "Step 33: Win/lose count 13.0/14.0. Average score (-3.588235294117647)\n", + "Step 34: Win/lose count 10.5/13.0. Average score (-3.557142857142857)\n", + "Step 35: Win/lose count 15.0/20.0. Average score (-3.5972222222222223)\n", + "Step 36: Win/lose count 7.0/16.0. Average score (-3.7432432432432434)\n", + "Step 37: Win/lose count 6.5/10.0. Average score (-3.736842105263158)\n", + "Step 38: Win/lose count 11.5/9.0. Average score (-3.576923076923077)\n", + "Step 39: Win/lose count 7.5/16.0. Average score (-3.7)\n", + "Step 40: Win/lose count 11.0/15.0. Average score (-3.707317073170732)\n", + "Step 41: Win/lose count 15.0/16.0. Average score (-3.642857142857143)\n", + "Step 42: Win/lose count 12.0/16.0. Average score (-3.6511627906976742)\n", + "Step 43: Win/lose count 7.0/15.0. Average score (-3.75)\n", + "Step 44: Win/lose count 12.5/4.0. Average score (-3.477777777777778)\n", + "Step 45: Win/lose count 10.0/13.0. Average score (-3.467391304347826)\n", + "Step 46: Win/lose count 9.5/16.0. Average score (-3.5319148936170213)\n", + "Step 47: Win/lose count 9.0/7.0. Average score (-3.4166666666666665)\n", + "Step 48: Win/lose count 9.5/22.0. Average score (-3.6020408163265305)\n", + "Step 49: Win/lose count 14.0/12.0. Average score (-3.49)\n", + "Step 50: Win/lose count 10.5/8.0. Average score (-3.372549019607843)\n", + "Step 51: Win/lose count 12.0/10.0. Average score (-3.269230769230769)\n", + "Step 52: Win/lose count 11.0/11.0. Average score (-3.207547169811321)\n", + "Step 53: Win/lose count 10.0/10.0. Average score (-3.1481481481481484)\n", + "Step 54: Win/lose count 10.0/17.0. Average score (-3.2181818181818183)\n", + "Step 55: Win/lose count 7.5/17.0. Average score (-3.330357142857143)\n", + "Step 56: Win/lose count 12.0/20.0. Average score (-3.412280701754386)\n", + "Step 57: Win/lose count 10.0/11.0. Average score (-3.3706896551724137)\n", + "Step 58: Win/lose count 9.5/12.0. Average score (-3.3559322033898304)\n", + "Step 59: Win/lose count 13.5/13.0. Average score (-3.2916666666666665)\n", + "Step 60: Win/lose count 9.0/10.0. Average score (-3.2540983606557377)\n", + "Step 61: Win/lose count 10.0/14.0. Average score (-3.2661290322580645)\n", + "Step 62: Win/lose count 11.0/9.0. Average score (-3.1825396825396823)\n", + "Step 63: Win/lose count 11.5/11.0. Average score (-3.125)\n", + "Step 64: Win/lose count 11.5/15.0. Average score (-3.1307692307692307)\n", + "Step 65: Win/lose count 11.0/13.0. Average score (-3.1136363636363638)\n", + "Step 66: Win/lose count 9.5/18.0. Average score (-3.1940298507462686)\n", + "Step 67: Win/lose count 7.5/8.0. Average score (-3.1544117647058822)\n", + "Step 68: Win/lose count 11.5/10.0. Average score (-3.0869565217391304)\n", + "Step 69: Win/lose count 10.0/12.0. Average score (-3.0714285714285716)\n", + "Step 70: Win/lose count 12.0/18.0. Average score (-3.112676056338028)\n", + "Step 71: Win/lose count 4.0/12.0. Average score (-3.1805555555555554)\n", + "Step 72: Win/lose count 7.0/10.0. Average score (-3.1780821917808217)\n", + "Step 73: Win/lose count 12.0/20.0. Average score (-3.2432432432432434)\n", + "Step 74: Win/lose count 9.0/11.0. Average score (-3.2266666666666666)\n", + "Step 75: Win/lose count 7.5/18.0. Average score (-3.3223684210526314)\n", + "Step 76: Win/lose count 8.5/13.0. Average score (-3.3376623376623376)\n", + "Step 77: Win/lose count 7.0/9.0. Average score (-3.3205128205128207)\n", + "Step 78: Win/lose count 9.5/17.0. Average score (-3.3734177215189876)\n", + "Step 79: Win/lose count 10.5/9.0. Average score (-3.3125)\n", + "Step 80: Win/lose count 7.0/13.0. Average score (-3.345679012345679)\n", + "Step 81: Win/lose count 11.0/15.0. Average score (-3.3536585365853657)\n", + "Step 82: Win/lose count 9.5/15.0. Average score (-3.3795180722891565)\n", + "Step 83: Win/lose count 11.0/16.0. Average score (-3.3988095238095237)\n", + "Step 84: Win/lose count 10.0/12.0. Average score (-3.3823529411764706)\n", + "Step 85: Win/lose count 10.5/20.0. Average score (-3.453488372093023)\n", + "Step 86: Win/lose count 14.5/16.0. Average score (-3.4310344827586206)\n", + "Step 87: Win/lose count 15.5/21.0. Average score (-3.4545454545454546)\n", + "Step 88: Win/lose count 4.5/11.0. Average score (-3.4887640449438204)\n", + "Step 89: Win/lose count 11.5/16.0. Average score (-3.5)\n", + "Step 90: Win/lose count 5.5/7.0. Average score (-3.478021978021978)\n", + "Step 91: Win/lose count 10.0/23.0. Average score (-3.5815217391304346)\n", + "Step 92: Win/lose count 7.0/7.0. Average score (-3.543010752688172)\n", + "Step 93: Win/lose count 6.0/13.0. Average score (-3.5797872340425534)\n", + "Step 94: Win/lose count 8.0/14.0. Average score (-3.6052631578947367)\n", + "Step 95: Win/lose count 8.0/15.0. Average score (-3.640625)\n", + "Step 96: Win/lose count 10.5/11.0. Average score (-3.6082474226804124)\n", + "Step 97: Win/lose count 8.5/16.0. Average score (-3.6479591836734695)\n", + "Step 98: Win/lose count 8.0/12.0. Average score (-3.6515151515151514)\n", + "Step 99: Win/lose count 13.0/13.0. Average score (-3.615)\n", + "Step 100: Win/lose count 8.5/5.0. Average score (-3.5445544554455446)\n", + "Final score: -3.58\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "rk_f3s-dBBpp", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 349 + }, + "outputId": "8dcde2a2-972d-4675-ddf0-4c2f6425d85a" + }, + "cell_type": "code", + "source": [ + "visualization_score(history)" + ], + "execution_count": 11, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABJYAAAFMCAYAAACZCjadAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3XlY1WX+//HnORxWAVkPiogLKCIK\n4pqiuQdppmlamla/nHGarGlmdMqcxmy1psmaaZnKykzTTLPcyl1zwxU3cMUVkFVAkX05vz/8xgzj\nbnIO4OtxXV5y7vNZ3p83y3Wf9+e+74/BYrFYEBERERERERERuUlGWwcgIiIiIiIiIiK1kwpLIiIi\nIiIiIiJyS1RYEhERERERERGRW6LCkoiIiIiIiIiI3BIVlkRERERERERE5JaosCQiIiIiIiIiIrdE\nhSURuar4+Hgee+wxYmJiiI6O5qGHHmLXrl1Wj2PRokW0a9eOmJiYKv8ee+yxWz5mSEgIaWlp19zm\nxIkT7Ny5E4DVq1fzwgsv3PL5RERE5M5w//33s2zZssrXJSUlREREsHz58sq24uJi2rZty6lTp3js\nscdISEi46fMsWbKEmJgY+vXrx6xZs6663fvvv89f//rXmz7+r7F9+3batGlzWd8tJibmlo/Zp0+f\n6/ZDs7KyWLt2LQD79+9n7Nixt3w+EblxJlsHICI1k8Vi4cknn+S1116jV69eAKxatYrx48ezYcMG\nnJ2drRpPu3bt+PLLL616zjVr1lBWVkanTp3o378//fv3t+r5RUREpPaJiopi27Zt3HfffQDs3bsX\nZ2dntm/fzsCBAwGIi4vD19eXpk2bXrModC3vvvsuixYtwt7enr59+/LII49gMtWcj3cNGzZkxYoV\nVj3n9u3b2bp1K3379iU8PJzPP//cqucXuVNpxJKIXFFOTg6ZmZlERERUtt1zzz0sXry4sqj06aef\n0rdvX6Kjo5k2bRoWiwWAr776igEDBhATE8Pvf/97srOzAZg0aRLTpk1j0KBB/PTTT5SUlPDaa68R\nHR1Nnz59+Pjjj286zsTERDp37kxZWVll21NPPcW8efMoLi5mypQpREdHc++99/Lmm29SXl5eZf9F\nixbx+OOPX/Z63bp1fPLJJ3z11Ve8+eabVbbLzc3l2WefJTo6mgEDBvDpp59W7h8SEsIPP/zAkCFD\n6N69u9WLYSIiImJb3bp1IzY2tvL1tm3bePDBB9m+fXuVtm7dugH/GYmTnJxM9+7d+eqrrxg0aBA9\nevTgxx9/vOp5Kioq8PT0JD09HQ8Pj1sqKm3fvp0HHniAmJgYhg8fzoEDBwBIT0/nscceY8CAAfTr\n1493330XuHTj8YMPPiA6OprevXvz2muvXda3up4LFy4QHh5e2T8EeP311/nHP/5BRUUF7777buXo\npkmTJlFQUHBZzP99s++X1wkJCbzyyiusXLmSP/3pT1W2u1afsE+fPnzzzTc8+OCDdO/enTfffPOm\n8yhyp1NhSUSuyNPTk7Zt2/Loo4+yYMECkpKSAGjQoAEAu3btYuHChSxevJilS5eye/duVqxYwd69\ne/n888+ZPXs2K1aswN/fn3feeafyuLGxsSxcuJB7772XGTNmkJiYyNKlS1m2bBkrV65k/fr1NxVn\ncHAwPj4+lUOjCwsL2bZtG9HR0cyaNYu0tDSWL1/O999/z65du6oMTb+WPn360L9/fx599FEmTZpU\n5b3p06dTv359Vq5cydy5c5k3b16VodmJiYn88MMPfPTRR0yfPv2mO1wiIiJSe3Xq1ImMjAySk5OB\nS0Wke+65B4vFQnp6emXbL4Wl/5aTk4PRaGTp0qVMnjyZ995776rnadmyJZMmTeLPf/4z06dPv+k4\n8/PzefbZZ3nxxRdZsWIFv/nNb5g4cSIVFRV8+eWXdOrUiR9//JGlS5eSlJRERkYGixcvZsWKFSxc\nuJDVq1eTlJTEvHnzbuq87u7udOnSpUqfb+3atdx777389NNPbNy4kUWLFrF8+XIuXLhwwzfpwsLC\nGD16NNHR0ZWFsF9cr0+4c+dO5s+fz3fffcecOXOuu1yCiFSlwpKIXJHBYGDmzJn079+fr776in79\n+jFw4EBWrVoFwMaNG+nZsyeurq44ODgwe/Zs7rnnHjZs2EB0dDTe3t4ADB8+nC1btlQet2vXrjg6\nOgKwfv16Ro0ahYODAy4uLgwePLjy+P9r7969l83RnzlzJgDR0dGsW7cOgE2bNhEeHo6XlxcbNmxg\nxIgRmEwmnJycGDRoUJVYbtXPP//MqFGjAPDw8KB///5Vjjt48GDgUgenuLiYc+fO/epzioiISO3g\n5OREhw4diI2NpbCwkOPHjxMWFkanTp3Ytm0bFy9eJCEhga5du162b1lZGUOHDgUu9SPOnj17xXPM\nmzeP48ePs2fPHhYuXEhYWBhff/01OTk5Nxzn/v37adCgAR06dAAu9adycnJISUnB29ubzZs3s2vX\nLhwcHJg+fTpms5n169czbNgw3NzcMJlMDB8+/Kp9t9TU1Mv6br+MBvrvvltCQgImk4mwsDA2bNjA\nkCFDcHFxwc7OjqFDh96Wvtv1+oSDBg3Czs4OPz8/vL29SU1N/dXnFLmT1JxJuCJS47i5ufGHP/yB\nP/zhD2RlZbFo0SL+/Oc/s3jxYnJycjCbzZXb/jI9Ljs7u0q7u7t7lcJK/fr1K7/Oy8tj2rRplXfZ\nSkpKCA8Pv2Is11pjKTo6mqeffprJkyezZs0aBgwYUBnLf5+vfv36t6XIk52djbu7e+Vrd3d3MjIy\nKl+7ubkBYGdnB1waqi4iIiJ3jm7durFt2zb8/f2JiIjAzs6Ozp07s337djw8PGjZsiWenp6X7Wdn\nZ4eLiwsARqPxin2IuLg4Zs+ezZIlS3jmmWdYu3Ytffr04YsvvuChhx664Rj/tz8Dl/ow586d4/HH\nH6eiooKXX36ZjIwMHnnkEZ555hny8vL4/PPPmT9/PgDl5eV4eXld8fjXWmOpX79+vPnmmxQXF7Nm\nzRruvffeypiqq+92reO6urpWfm1nZ6fR5iI3SYUlEbmitLQ0kpOT6dixIwA+Pj6MGzeOFStWcOzY\nMTw9PavcFfvlax8fH3Jzcyvbc3Nz8fHxueI5zGYzTzzxBL179/5VsbZq1Qo7OzsOHz7M5s2bK5/e\ndiOxGI3GKp2HCxcuXPd8vxzX39//qscVERGRO1f37t2ZO3cugYGBdO7cGYAuXbrw4Ycf4u3tTVRU\n1C0fOy4ujt69e+Pq6srLL7/M448/zr59+7jnnntuap0lb2/vKv0ki8XC+fPn8fb2xmQyMW7cOMaN\nG8fJkyf57W9/S4cOHTCbzfTp04fRo0ffcvxwacR3eHg4sbGxrFmzhrfffhu4sb7b/xZ+bqbvdq3j\nisit01Q4Ebmi1NRUxo8fT3x8fGXb/v37OXv2LG3btqVPnz6sW7eO8+fPU1ZWxvjx49m8eTO9evVi\n9erVlYWmb775hp49e17xHH379mXBggWUl5djsVj46KOP2Lhx4y3FGx0dzfvvv09oaGjlHcBevXqx\ncOFCysvLKSgoYPHixZfFYjabOXnyJMXFxRQWFla5s2YymcjLy7vsXL169aq8U5ednc3q1asrn5wn\nIiIiEhoaWjkap0uXLsB/1qn8+eefr7i+0o1q1qwZO3bsoLCwkMDAwMrRSr88ce5GhYeHk5WVxZ49\newBYvnw5DRo0ICAggClTplROFQsMDMTHxweDwUDfvn1ZvHgxhYWFwKV+3vfff39L1xEdHc23335L\naWkprVq1Ai71sZYsWUJhYSFlZWUsXLjwsr6br68vmZmZnDt3jvLycpYuXVr53rX6btfrE4rIrdOI\nJRG5osjISF599VWmTp1KXl4eFRUV+Pj48O6779KoUSMaNWrE2LFjGTJkCA4ODvTo0YP77rsPg8HA\nuHHjeOSRR6ioqCA0NJSpU6de8RyjRo0iOTmZgQMHYrFYaNOmDY899tgVt/1ljaX/NWvWLPz8/IiO\njmbo0KG89tprle+NGTOGpKQkBg4ciMFgICYmpnKo9S+6dOlCREQE0dHRBAQE0Ldv38qOVO/evZk4\ncSIpKSlVCkd//OMfmTp1KjExMRiNRsaNG3fVKXwiIiJy5zEYDHTt2pWNGzfSunXryvZOnTqxbNmy\nynWNbkXfvn2Ji4tj8ODBlJeXExwczKRJk/jjH/9Io0aNmDVr1mX7rFy5kt27d1e+Dg0N5d133+W9\n997j1VdfpaCgAC8vL6ZPn47BYODhhx9mypQpvPrqq1gsFvr06VO5JtSxY8d44IEHgEtFp9dff/2K\ncf6yxtL/+vvf/054eDj9+/fn5ZdfZty4cZXvxcTEcOTIEYYOHYrFYqFLly48+uijVfZv0qQJw4YN\nY8iQIfj7+zN48GAOHToEQFRUFDNnzmTYsGE899xzlfvcSJ9QRG6dwfLL88FFRERERERERERugqbC\niYiIiIiIiIjILVFhSUREREREREREbokKSyIiIiIiIiIicktUWBIRERERERERkVuiwpKIiIiIiIiI\niNwSk60DuJ0yM/Oq7dieni7k5BRU2/GlKuXbupRv61POrUv5tq7qzLevr1u1HFd+HfXB6g7l27qU\nb+tSvq1PObcuW/XBNGLpBplMdrYO4Y6ifFuX8m19yrl1Kd/WpXzL7aSfJ+tSvq1L+bYu5dv6lHPr\nslW+VVgSEREREREREZFbosKSiIiISB1z9OhR+vXrx5w5c6q0b9q0iZCQkMrXS5YsYdiwYQwfPpwF\nCxYAUFpayoQJExg5ciSjR48mKSnJqrGLiIhI7aLCkoiIiEgdUlBQwKuvvkrXrl2rtBcXF/Ppp5/i\n6+tbud2HH37Il19+yezZs5k1axa5ubksW7YMd3d35s2bx5NPPsk777xji8sQERGRWkKFJREREZE6\nxMHBgRkzZmA2m6u0f/zxx4waNQoHBwcA9u3bR9u2bXFzc8PJyYn27dsTFxdHbGws/fv3B6Bbt27E\nxcVZ/RpERESk9qhTT4UTERERudOZTCZMpqpdvJMnT3L48GGeffZZ3n77bQCysrLw8vKq3MbLy4vM\nzMwq7UajEYPBQElJSWVB6ko8PV2qdcFQPQ3QupRv61K+rUv5tj7l3LpskW8VlkRERETquGnTpvHi\niy9ecxuLxXJT7f+tOh8l7evrRmZmXrUdX6pSvq1L+bYu5dv6lHPrqs58X6tgpalwIiIiInVYeno6\nJ06cYOLEiYwYMYKMjAxGjx6N2WwmKyurcruMjAzMZjNms5nMzEzg0kLeFovlmqOVRERE5M6mwpIV\nfPfdt4wb9zhPPz2O3/72UXbu3G7rkEREROQO4efnx5o1a/j222/59ttvMZvNzJkzh4iICA4cOMCF\nCxfIz88nLi6Ojh07EhUVxYoVKwBYv349Xbp0sfEV3JpHH32IlJTkytejRw8nNnZz5esXXphITExv\niouLbBGeiIhInaGpcNUsNfUsS5f+wGeffYXJZCIp6QxvvfUanTrVzk6aiIiI1Gzx8fG89dZbpKSk\nYDKZWLlyJe+//z4eHh5VtnNycmLChAmMHTsWg8HA+PHjcXNzY8CAAWzdupWRI0fi4ODAm2++aaMr\n+XXat+/I3r1xNGoUQG5uLoWFhezdu4euXbsDcPBgPN9//yOOjk42jlRERKR2U2HpFhQWl7HlQCod\nQsx4ujlec9uLFy9SUlJMaWkpJpOJxo0D+eCDTzl69DDvvPMWRqOBNm0iGD/+WY4fT2T69LcwGAy4\nuNTjxRenkph4jG++mUNBQQFPP/0n0tNT+eabOdjZmQgJCeWZZ/5kpasWERGR2qBNmzbMnj37qu+v\nW7eu8uuYmBhiYmKqvG9nZ8e0adOqLT5riYzsyJYtGxk48H72799LdPQA9u/fC8CpUyfx9/dnzJgR\nfPXVfN599+/4+Phy5Mgh0tPTmDLlNUJCWtn4CkRERK7vYmk+yXlnSb54ls52bXHH6/o73WY1vrD0\nxhtvsG/fPgwGA5MnTyY8PNym8ZxMvcDHi+PJzC1i476z/HVMRxwdrv4UlBYtWhIaGsbw4ffTtWsU\nd90VRc+evXnvvX/wl79MJji4Ba++OoW0tFT++c9/8NRTzxIW1oa5c2ezYME3REZ24PjxRObNW0RZ\nWRl///trfPzxTBwcHPjb3yaxf/9ewsPbWTEDIiIiIjVfZGR7/v3vfwGwb98eoqJ6sGfPboqLi9i7\nN47IyI6sWvVT5fYlJSVMn/4BP/ywkBUrlquwJCIiNVKFpYK9mfHsSt9LUl4K2UU5le+lF6fxSIuH\nrB5TjS4s7dixg9OnTzN//nyOHz/O5MmTmT9//i0f79t1iew8nHFL+9rZGbhYWEpBUdml10YDyZn5\nTP1yJ2/8tgsGg+Gq+/7tb69w6tRJduyIZe7cr/jhh4WcOXOK4OAWle/DpbtnYWFtgEvDt2fO/JTI\nyA4EB7fAwcGBY8eOkp6exp///DQA+fkXSUtLw8a1NhEREZFr+rV9sPLyy59M16mVmRF9gq+6n7t7\nfZydncnMzODgwXjGjfs9rVuHkZAQz/79exkwYFCVwlJERCQAvr5+HDyYcEuxioiIVBeLxcL+rASW\nn1xNysVUAFzt69HaK4TGbo1o7NaIHi3bczG31Oqx1ejCUmxsLP369QMgKCiI8+fPc/HiRVxdXa0a\nR4XFQl5eCSVlFRgM4OZsj73JyPn8EtKzC/hx22kGdm16xX0tFgslJSU0bdqMpk2bMWzYQzzyyIPk\n5uZe85xlZaUYjZfWVre3t/+//y9Nf5s+/YPben0iIiIidVH79h3Zvj0Wg8GAo6MT4eHtOHBgHwcP\nJvD883+tsq2d3X9GoFsslxeyREREbMFisZBw7jDLTq4iKS8FAwY6+bUnpmlv/FzMVQa5ONs7cREV\nlqrIysoiLCys8rWXlxeZmZm3XFga0Sf4mne2ruYf3+zh4Kkc2jb3ZuzAUNzrXXrk7vn8El75cieL\nfj5BY7Mb4UHel+27bNli9u6N48UXX8ZgMJCff5GKigoiIzuQkBBPWFgbpk17hZEjx9CsWRDx8ftp\n0yacPXviCAkJrXKswMCmnDp1kpycbDw9vfj880+4//4H8PU131I+RERERKzhVvtgAL6+bmRm5t3S\nvpGRHZk163MiI9sDEB7ejrlzZ+Pj46NFu0VEpEYrryhnT+YBVp1eXzlCqYM5ggHN+tGgnp+No6uq\nRheW/tf17h55erpgMl19vaNbNbhnMP06l9K3UyBG43+qgb6+8LexXXj+g83MWJrA9D/2xN+3atHr\nscdGkZl5lqeeegIXFxfKysp46aUpNGzYkKlTpwLQrl07OnUK55VXXuLlly8VoOrXr8+0adNISEjA\n0dEeX183wI2//e1FJk36Ew4ODrRu3ZrQ0ObXnIZXm126ZrEW5dv6lHPrUr6tS/mWmqBdu/b89a9/\n4bHHngDA09OLCxfO069ftI0jExERubLS8lK2pe1mzekNZBVlY8BAB3ME0U370Mi1oa3DuyKDpQaP\n9X3//ffx9fXl4YcfBqBv374sXrz4qiOWbvVu1o241t2yLQdS+Xz5IRp6u/Ds8AjMHs7VFsed4tfc\nnZSbp3xbn3JuXcq3dVVnvlWwqpls1QeT20/5ti7l27qUb+tTzm9OwrkjzD+yiHNFOZgMdtzVsCN9\nA3tidvG5of1t1QczVssZb5OoqChWrlwJQEJCAmaz2errK92IqLYNubdLIKnnCnh55g62H0y3dUgi\nIiIiIiIiUgucL87ji/iv+Wjf5+QUn6dP4x680u0FRrYadsNFJVuq0VPh2rdvT1hYGA8//DAGg4GX\nXnrJ1iFd1fDewfj71GPOqqN8siSBhFPZPNKvJY4Ot39qnoiIiIiIiIjUbhWWCrac3cHi4z9SWFZE\nM/dARrYaVmOnvF1NjS4sAUycONHWIdywqLYNCWpUn48Xx7N5fyrHU87z5OA2NDbXvFFWIiIiIiIi\nImJ9BaWFbE3dwcbkrZwrysHJzomHWj5A90ZdMBpq9MSyK6rxhaXapoGXC38d05EFGxJZsyuZ12fv\n4okBoXQOrVmrtouIiIiIiIiI9aTnZ7A+eQvbU3dRUlGKvdGeKP8uDGjWDw/H+rYO75apsFQN7E1G\nRvVrSUhjTz5bfpCPFydwOj2PYXcHVXmqnIiIiIiIiIjUbfmlBSw7sYpNKbFYsODp6MGAgG508+9M\nPXsXW4f3q6mwVI06hPjSwLsj73+3n5+2nSEp/SK/GxxGPSd7W4cmIiIiIiIiItXolzWUlp5YQX5p\nAWYXHwY1jyHCJww7Y91Zj1mFpWrWyKceUx7ryCdLDnLgxDle+XInfdoHEB7kTQMvFwyGSyOYysor\n2H/8HFvj09h/PIuhdwcR0yXQxtGLiIiI1F6pqWd58cXn+fzz2bYORURE7jCJuSdZeGwJSXkpONo5\n8EDwQHoFRGEy1r0yTN27ohrIxcmeZx8M5/tNJ/gx9jTz1yUyf10iZg9nwoO8qbBY2H4wnfyiMgCM\nBgM/bDpB51AzXu5ONo5eRERERERERG5EWn4Gi4//xP6sBAA6N2jPkKAB1Hd0t3Fk1UeFJSsxGg0M\n6xlE3w4BHDh+jv3Hz5FwKps1u5MBcK/nwD2dGtOtTQNOp+cx88fDfPfzcX47KMzGkYuIiIjUHceP\nJzJ9+lsYDAZcXOrx4otTMRrtmDJlEiUlJZSWlvLnPz9PSEgrPvnkQ/bv30tFRTlDh46gf/8YW4cv\nIiI11PniPH48tZqtZ3dQYakgqH5THggeSLP6TWwdWrVTYcnKPFwd6RHhT48If8rKKziWfJ4Ki4VW\ngR7YGS89VjDA7Mq63SnEJqTTt0NjmvvX3cqmiIiIiDX985//4KmnniUsrA1z585mwYJvCA5uga+v\nmRdemEJKSjJJSWfYt28P6elpfPjhDEpKSnjiidHcfXcvHB01mlxERP4jv7SAtWc2sj55MyXlJfi5\n+DI4aADhPq0rl76p61RYsiGTnZHQJp6XtRsNBh7uG8xbc/cwb+1RJo/ucMf8QIqIiEjdsyhxGXsy\nDtzSvnZGA+UVlsvaI81tGRp8300f79Spk4SFtQGgffuOzJz5KYMHD2PGjH/z9ttv0LNnH+66qxtz\n5nxJQsIBnn56HAAWSwVZWVk0ahRwS9chIiJ1S0FpIeuTNrEuaTNF5UW4O7jxQNBAovw716mFuW+E\nCks1VEigJx1DfNl1JJMdhzLo0trP1iGJiIiI1CllZaUYjUZ8fHz48st5xMXt4vvvF5KQcAAXFxfu\nu28wY8b8P1uHKSIiNURZRRknzp/m4LkjbD67ncKyQlzt6zG02X30aNQVB7s78wnwKizVYMN7B7M3\nMYsFGxKJbOGDg/2dVfUUERGRumFo8H23NLoIwNfXjczMvNsWS7NmQcTH76dNm3D27IkjJCSUnTu3\nU1ZWRteuUTRt2ox33nmT0aMf58MP/8kjjzxGaWkpH330T/70p+duWxwiIlI7FJUVsS1tN4fOHeVo\n7nFKyksAqGdyYXDQvfQMiMLRzsHGUdqWCks1mK+HM/07NeanbWdYueMMg6Ka2TokERERkVrlzJnT\nldPZAH7zmyf55JMPMRgMuLm5MXnyS1y4cIFXXvkbX389C6PRyNixv6Nt2wgiIzvwu9/9P8DCAw8M\nt91FiIiITZwvvsCH+z4n5WIqAH4uvoR6tSTUqyUtPIPu+ILSL1RYquHu69qULftTWR57GnuTHX3a\nN9LIJREREZEb0LChP6tXb7ys/f33P6nyul49V/79788v2+53vxvP7343vtriExGRmiu9IJMP937G\nuaIcujXsTEzTvng7X75GsoDR1gHItTk7mngsphV2dga+XZ/I8x/HsnZ3MqVlFbYOTURERERERKTO\nOXXhDNN3f8S5ohwGNuvPqFbDVFS6BhWWaoHIlr689WQ3BnZtQlFJOV+vPsqkT2KJO5pp69BERERE\nRERE6gSLxcKBrIP8M+4T8ksLGBkylAHN+usp7dehqXC1hKuzPcN6BtG/U2NWbDvD2rhkPl4cz+Qx\nHWjawN3W4YmIiIiIiIjUOhdL8zmSfYxD2cc4lH2U3OLz2BtN/LbtGCJ829g6vFpBhaVaxt3FgRF9\ngglt6sl73+7jo+/jeen/daKe0535WEMRERERERGRm5VTlMvCY0vZlxmPBQsA9exd6GCOoE9gD5q6\nB9o4wtpDhaVaqm1zbwZ2a8qyraf4Yvkhnh7aVsPzRERERERERK6hwlLBz8lbWXpiBcXlJQS6NSLC\nty2tvVoS4OaP0aAVg26WCku12JDuzUhMzmXPsSxW7kgiposqqiIiIiIiIiJXkpSXwtzD33EmLxkX\nkzOPtBrOXQ07qJj0Kyl7tZjRaOB394dRv54DCzcc51hyrq1DEhERkRrg6NGj9OvXjzlz5gCQmprK\n448/zujRo3n88cfJzLz0AJAlS5YwbNgwhg8fzoIFCwAoLS1lwoQJjBw5ktGjR5OUlGSz6xAREfm1\nLBYLx3JOMOPAV7y181+cyUumk18kU+76C938O6modBsog7VcfVdHnhwchgULHy9O4PzFYluHJCIi\nIjZUUFDAq6++SteuXSvb3nvvPUaMGMGcOXPo378/M2fOpKCggA8//JAvv/yS2bNnM2vWLHJzc1m2\nbBnu7u7MmzePJ598knfeeceGVyMiInJrSstLiT27kzd3/pP39nzM3sx4Alwb8nTEb3g8bCRuDq62\nDrHOUGGpDggJ9GTo3c3JySvm9dm7ST2X/6uOt+doJtsOplFWXnGbIhQRERFrcXBwYMaMGZjN5sq2\nl156iejoaAA8PT3Jzc1l3759tG3bFjc3N5ycnGjfvj1xcXHExsbSv39/ALp160ZcXJxNrkNERORW\npVxM5dXt/2DO4QWczU8j0hzOn9r/nuc7PUuod0tbh1fnaI2lOmLAXU0oLatgyZZTvDF7N394MJwW\nAR43fZx1ccnMWXUUgPn1EundvhG9Ihvh7uJwu0MWERGRamAymTCZqnbxXFxcACgvL2fu3LmMHz+e\nrKwsvLy8Krfx8vIiMzOzSrvRaMRgMFBSUoKDg/oCIiJS8+3NjGfWwW8oKS+hd+Pu9G18N55ON//Z\nWG6cCkt1hMFgYEiP5ni7O/GE3IziAAAgAElEQVTVyiO8PW8v4wa1pmMr8/V3/j8b951lzqqjuLvY\n0ynUj63xqfyw6STLtp7mrjA/IoJ8CGrkjoerYzVeiYiIiFSH8vJynnvuOe666y66du3K0qVLq7xv\nsViuuN/V2v+bp6cLJpPdbYnzSnx93art2HI55du6lG/rUr6tz1o5t1gsfHfwJ76NX4qjnQMTosbR\nJSDSKueuSWzxM67CUh3TI8IfT3dHPvw+nn//EM+IPsHc06kxBoPhmvttOZDKrJ8O4+psz8SRkQT4\nujL07uZsOZDKml3JbN6fyub9qQB4uzsR1MidNs28iWrb4LrHFhEREdt74YUXaNKkCU8//TQAZrOZ\nrKysyvczMjJo164dZrOZzMxMWrVqRWlpKRaL5bqjlXJyCqotbl9fNzIz86rt+FKV8m1dyrd1Kd/W\nZ62cF5eXMOfQt8Rl7MfLyZPftX2MAEf/O+77XZ35vlbBSmss1UFtmnnzwiPtqe/qwPx1icxbc4yK\niqvfbdyWkMYXyw/h4mRi4sPtCPC9tIiZs6OJfh0b88a4u3huZCRD725Ou2AfikvL2XEogy9+PMRH\nP8RTVFJmrUsTERGRW7BkyRLs7e35wx/+UNkWERHBgQMHuHDhAvn5+cTFxdGxY0eioqJYsWIFAOvX\nr6dLly62CltEROS6Dp47wuvbpxOXsZ+g+s14ruMzBLj52zqsO4rNRywtWrSIf/7znwQGBgKXFon8\n/e9/z+HDh5k6dSoAISEhvPzyyzaMsvYJ9HPjxUc78u63+1izO5nsvGJ+O6g1jvb/GaZeVFLG6p1J\n/LD5JE6OJiY83I5Av8urkEajgVZNPGnVxBO4NMQwPaeQL386zO4jmaRlF/DM0LaYPV2sdn0iIiJy\nZfHx8bz11lukpKRgMplYuXIl586dw9HRkTFjxgAQFBTE1KlTmTBhAmPHjsVgMDB+/Hjc3NwYMGAA\nW7duZeTIkTg4OPDmm2/a+IpEREQud6Ekj++OLWVX+l6MBiP9AnsyqHk0JqPNyxx3HIPlRibOV6NF\nixZx7Ngxnn/++SrtY8aM4S9/+Qvh4eFMmDCB+++/n549e17zWNU5zK22DpssKCrlg0UHOHwmlyB/\nd555MBxHezvWx6Xw47bTXCwsxdXZnj8Oj6C5v/tNHbusvIL5axNZG5dMPScTvxscRptm3rcl7tqa\n79pK+bY+5dy6lG/rstUwbLEd9cHqDuXbupRv61K+ra86cm6xWIhN3cmixOUUlhXSxL0xo0KGaZQS\ntuuD1chSXklJCSkpKYSHhwPQu3dvYmNjr1tYksu5ONnz54faMfPHQ8QmpPParF2UllVwPr8EZ0c7\nhnRvRv9OjXF2vPkfBZOdkUfuaUlgA1dmrzzCu9/uY1S/lvTtEFANVyIiIiIiIiJ3sqKyYuYeXsju\njH042TkyouUQejS6C6NBq/zYUo0oLO3YsYOxY8dSVlbG888/j7e3N+7u/xk94+3tTWZm5nWPoyeS\nXN0L/68Ls386xIK1x3B2tGNEv5Y80DMIV5df/+jgoX1DCAv25fWZO/h69VHc3JwYGNXsVx+3Nue7\nNlK+rU85ty7l27qUbxEREbmd0gsymXHgK1Lz02levwlPhD2Cp5OHrcMSrFxYWrBgAQsWLKjSNnDg\nQJ555hl69erFnj17eP755/nss8+qbHOjs/X0RJJru7dTY1oF1MenvhNuLg4U5hdTmF98W47t5WLP\nxIfb8dbXcXy8aD9FhSXcHXHrQxHrQr5rE+Xb+pRz61K+rUtT4UREROR22peZwFcH51NUXkTPgCiG\nBg/UWko1iFW/E8OHD2f48OFXfT8yMpLs7Gw8PT3Jzc2tbE9PT8dsNlsjxDqvWcObW0fpZjT0rsfE\nkZH8fe4eZv10GDujgai2DavtfCIiIiIiIlJ3ZRflsPr0BjamxGJvtOex1g/TuUF7W4cl/8PmExFn\nzJjBsmXLADh69CheXl44ODjQvHlzdu3aBcCqVavo0aOHLcOUGxTg68rEh9vh4mTii+WH2JaQZuuQ\nREREREREpBZJzU/nq4PzeSn2LTamxOLr7M3EDuNVVKqhbD52bNCgQfzlL3/hm2++oaysjNdffx2A\nyZMnM2XKFCoqKoiIiKBbt242jlRuVKCfGxMebsfb8/YyY+lB1u5OJjzIm/AgHwL9XDEYDLYOUURE\nRERERGqY9PwMFh//iX1ZCQA0cDHTv0kvOvq109S3Gszm35kGDRowe/bsy9qDg4OZO3euDSKS26Fp\nA3cmPtyO+esSSUw+z/GzF/h+00nquzrQr0MAA7s2tXWIIiIiIiIiUgOUVpSx6vR6Vp1aR5mlnCbu\njYlu0pu2Pq31xLdawOaFJam7mjV0Z9Ij7ckvKiX+RDb7j2ex//g5vvv5BB6ujlp/SURERERE5A53\nLOc4844sIr0gk/oO7oxoOZgI3zaa6VKLqLAk1a6ekz1dWvvRpbUfGTkFvPzlLmavPEKTBm4E+Lra\nOjwRERERERGxsrySi/xw/Ee2pe7CgIGeAd0Y1DwGZ5OTrUOTm6QxZWJVZk8XnhgQSklZBf/+IZ6i\nkjJbhyQiIiIiIiJWUl5Rzvqkzby87e9sS91FI9eGTOw4nhEth6ioVEtpxJJYXYcQX+7p1JhVO5OY\nteII4wa11jBHERERERGROu5w9jEWHltCan46ziZnhrcYTI9Gd2FntLN1aPIrqLAkNvFgryCOnz3P\n9oPptGzsQe/IRrYOSURERERERKrBucIcFiUuY2/mAQwYiPLvwqDm0bg5aGmUukCFJbEJk52R3w9u\nw9SZO5m35igNvVxo1cTT1mGJiIiIiIjIbVJSVsLyk6tZfXo9pRVlNK/fhOEtBxPoFmDr0OQ2UmFJ\nbMbL3YnfDmrNewv28Y9v9jK4e1MGdm2K0ahpcSIiIiIiIrWVxWJhb2Y8i7f/SGb+Oeo7uDEkeCCd\n/CK1DEodpMKS2FTb5t48NzKST5ce5PtNJzl0OoffDgrD19fN1qGJiIiIiIjITbBYLBzMPsryE6s4\nnZeEndGO/oG9iGnaByctzF1nqbAkNhcS6MnLT3Rm5o+H2HMsi5e+2MGfRrWnmW89W4cmIiIiIiIi\n12GxWDiSk8jyk6s4cf40AJG+bXms41Dsi/W5rq5TYUlqBFdne54e2pZ1cSnMX5fIq59vp0OILw/1\nDsbHw9nW4YmIiIiIiMj/OF+cR1zGPnam7eF0XhIAET5hDGjWnwA3f3zd3cjMzLNxlFLdVFiSGsNg\nMNC3QwAtG3vwzbpEdh/JZP/xc9zbJZB772qCo70eQSkiIiIiImJLpRVl7E7fy860PRzJScSCBQMG\n2vqEMqBpfwLdtTD3nUaFJalxGptdeevp7iz9OZEF6xNZsuUUmw+kEhroycXCUi4WlXKxsIyikjKc\nHUy4Otvj6mxPPWcTjXxc6R7eEFdne1tfhoiIiIiISJ1y+kIScw4t4Gx+GgBN3QPp5BdJe79w3B20\nTu6dSoUlqZEMBgNdwxoQ2cKH5bGnWbnjDFviL/3xsjMaqOdkwsnBxMXCUtJzCrBY/rPvD5tO0K1t\nQ/p1CMDf59rzeUvLKthyIJXCkjKC/OvTpIGbRkaJiIiIiIj8l9KKMn46uYbVZzZQYakgyr8L/QN7\n4evibevQpAZQYUlqNCcHE8N6BhHdOZDC4jJcne1xcrCr8ojKCouFouIy8gpL2XssizW7ktmwJ4UN\ne1Jo09yLXu0aER7kjcnOWOXY+xKzmLf2GBk5hZVtdkYDAWZXWgTUZ1C3pri5OFjtWkVERERERGqa\nk+fPMPfwQs7mp+Hl5MkjrR6klVcLW4clNYgKS1Ir/DLd7UqMBgMuTva4ONkT3TmQfh0D2Hssi9U7\nk4g/kU38iWxcne3pFGqmW5sGuDia+GZtIgdOnMNoMNCvQwDBAfU5nnKBE2fPczo9j9NpeSRnXGTi\nw5EYjYYrnldERERERKQuyinKZVf6Xnam7yHlYioA3RvdxQNBA3AyOdk4OqlpVFiSOsfOaKRDiJkO\nIWbOpOexNT6NbQfTWR+Xwvq4lMrtQpt4MqpfCxr5ugLQOdQPuDQ97uPF8ew5lsUPm08y9O7mNrkO\nERERERERa6mwVLAnYz+bUraRmHsSCxaMBiNtfULp07gHLT2DbR2i1FAqLEmdFujnRqCfG8N7B5Fw\nMoet8alkXygmunNj2rf0rTKl7hf2JiNjB4YydeZOlm09RYuA+rRtrrnDIiIiIiJS91RYKtifmcDy\nk6srF+UO9mhGJ79I2pnb4mp/7XVrRVRYkjuCndFIeJA34UE3ViBycbLnqQfa8Mbs3cxYepCp/68T\nXu4a8ikiIiIiInWDxWIh/twhlp1YRfLFsxgw0KVBB2Ka9sXs4mPr8KQWUWFJ5CqaNnBnZN8WzF51\nlH8vjuf5Ue0vWwBcRERERESktskvLWDe4e/Yk3kAAwY6+rVjQLP++Ln42jo0qYVUWBK5hl6RjTia\nfJ7tB9NZsP44D/cNvuL0ORERERERkdrgcPYxvjo4n/MlFwiq35SHQ4bi79rA1mFJLabCksg1GAwG\nHo0O4Ux6Hqt3JVFhsTCybws9KU5ERGq0o0eP8tRTT/H4448zevRoUlNTee655ygvL8fX15e3334b\nBwcHlixZwqxZszAajYwYMYLhw4dTWlrKpEmTOHv2LHZ2dkybNo3GjRvb+pJERORXKq0oY8nxn1iX\ntAmjwcig5jHc06QXRoNmZcivo58gketwdjQx4aF2NPKtx9rdyXz4/QGKS8ttHZaIiMgVFRQU8Oqr\nr9K1a9fKtn/961+MGjWKuXPn0qRJExYuXEhBQQEffvghX375JbNnz2bWrFnk5uaybNky3N3dmTdv\nHk8++STvvPOODa9GRER+rcKyIjYkbeG17e+wLmkTZhcfJnYYT0zTPioq1QEXCkrYsDeFfy7Yx49b\nT9okBo1YErkBXu5OvPBIez78Pp49x7J4e94e/vBgOO4uDrYOTUREpAoHBwdmzJjBjBkzKtu2b9/O\nyy+/DEDv3r354osvaNasGW3btsXNzQ2A9u3bExcXR2xsLEOGDAGgW7duTJ482foXISIiv1pGQRY/\nJ29hW+ouisqLMRlN9AyIYnDQvTja6XNMbVZQVMaOw+nsOpzB4dO5VFgsALSy0dPMVVgSuUEuTvb8\naUQEM388TGxCGm98tZs/PxSB2dPF1qGJiIhUMplMmExVu3iFhYU4OFz6EOHt7U1mZiZZWVl4eXlV\nbuPl5XVZu9FoxGAwUFJSUrm/iIjUbOUV5fxw/EfWJ23GggUPx/r0b9KbKP/OuDm42jo8+RUKi8tY\nszuZldvPUFBcBkCzhu50amWmYytfQoPNZGbmWT0uqxeWduzYwbPPPssbb7xB7969ATh8+DBTp04F\nICQkpPKO2meffcaKFSswGAw8/fTT9OzZ09rhilRhsjPym/tC8a7vxLKtp5i96igTHmpn67BERERu\nmOX/7mr+2vb/5unpgslk96viuhZfX7dqO7ZcTvm2LuXbuup6vnMLz/NB7BccyjyGv5sfI9rcR+eA\nSEzG6vsbfT11PefWUFRcxvItJ/lufSJ5BSW4udgzOqYVvTs0xuxVdaCDLfJt1cLSmTNnmDlzJu3b\nt6/S/vrrrzN58mTCw8OZMGECP//8M82bN+fHH3/km2++4eLFi4waNYru3btjZ2e7XwgRuLSg99C7\nm3P0TA4JJ7NJPZdPQ+96tg5LRETkqlxcXCgqKsLJyYn09HTMZjNms5msrKzKbTIyMmjXrh1ms5nM\nzExatWpFaWkpFovluqOVcnIKqi12X183m9x9vVMp39alfFtXXc/3ifOn+OzAHM6XXKCdb1vGhA7H\nyeREzrnq+xt9PXU959WptKycQ6dziDuaSdzRLC4WluLsaGJIj2b079gYZ0cTlJdXyW915vtaBSur\nrtTl6+vLBx98UDmXH6CkpISUlBTCw8OBS/P+Y2Nj2b59Oz169MDBwQEvLy8aNWpEYmKiNcMVuaa+\nHS89IWfd7hQbRyIiInJt3bp1Y+XKlQCsWrWKHj16EBERwYEDB7hw4QL5+fnExcXRsWNHoqKiWLFi\nBQDr16+nS5cutgxdRESuo7S8lHVnNvJu3MdcKMnjgeCB/KbNaJxMTrYOTW5SUUkZ2w+m89EP8fzh\nX5t5b8F+Nu5LxWiA+7o15e+/78r9Uc0uFZVqEKtG4+zsfFlbTk4O7u7ula9/mffv4eFxxXn/ISEh\nVolV5HoiW/jg6ebI5vhUhvZsXuN+uUVE5M4UHx/PW2+9RUpKCiaTiZUrV/KPf/yDSZMmMX/+fPz9\n/RkyZAj29vZMmDCBsWPHYjAYGD9+PG5ubgwYMICtW7cycuRIHBwcePPNN219SSIicgUpF1PZenYH\nO9LiKCgrxNW+HmPbPEJLz2BbhyY3oaikjH2J59h1OIP9J85RWlYBgK+HE+3b+dO+pS9B/vUxGg02\njvTqqu2T8IIFC1iwYEGVtmeeeYYePXpccz/N75df1IZ839e9ObN/OsTek9nc3yPI1uH8KrUh33WN\ncm5dyrd1Kd+206ZNG2bPnn1Z+8yZMy9ri4mJISYmpkqbnZ0d06ZNq7b4RETk1pVXlLMrfS8bU2I5\ndeEMAG4OrtzTpDc9A7rh4VjfxhHKjbBYLJxIvcCGuBR2HM6oLCY19Ha5tBB3iJlGvvUwGGpuMem/\nVVthafjw4QwfPvy623l5eZGbm1v5+r/n/Z88efKy9mvR/P66o7bku0MLb+atMrL45+N0CfHFWEt+\n8f9Xbcl3XaKcW5fybV22mt8vIiJSV5WUl7D17E7WnPmZnOJcDBho492Kbv6daeMdip0NF+eWG1dc\nUs62g2ms35PCmfSLAJg9nbmrtR8dW5lp5FN7ikn/zeZzd+zt7WnevDm7du2iY8eOrFq1ijFjxtC0\naVNmzpzJM888Q05ODhkZGQQHa0if1CzuLg50aW1my4E04k9kEx7kbeuQRERERESkjigpL2HtmU1s\nSN7MxdJ87I329AyIom/ju/F29rR1eHID8otK2X/8HHFHM4k/kU1xaTlGg4H2LX3pHdmI0KaetXaA\nwi+sWljasGEDn3/+OSdOnCAhIYHZs2fzxRdfMHnyZKZMmUJFRQURERF069YNgBEjRjB69GgMBgNT\np07FaLTqWuMiN6Rfh8ZsOZDGmt1JKiyJiIiIiMhtkZSXwpcJ80gryMDZ5ExM0770CojCzcHV1qHJ\ndWRfKGLPsSz2HMvkyJlcyisuLe3zy+ikuyP88XKvO4urW7Ww1KtXL3r16nVZe3BwMHPnzr2sfcyY\nMYwZM8YKkYncuiYN3AgOqE/8iWzSsgto4OVi65BERERERKSWqrBUsObMzyw7sYpySzm9AqIY1Dxa\nT3mrwSwWC2ez8iuLSSdT/7MkQNMGbkS29KV9Cx/8a+lUt+ux+VQ4kbqgX4cAEpPPs3Z3Mo/0b2nr\ncEREREREpBbKLsrhq4PzOZZ7AncHN8aEjqC1t56MXtOUlVdwJv0ix5JzOZZ8nmPJueQVlAJgNBgI\nbeJJ+5a+RLbwqVMjk65GhSWR26B9S1883RzZciCV+6Oa4ubiYOuQRERERESkljhXmM2aMxuJTd1B\naUUZET5hjGr1IK4O9WwdmnBpRFJGbiEJJ7OJP5HN4TM5FJWUV77v5e5Il9Z+hDf3JjzYm3pO9jaM\n1vpUWBK5DUx2Rvp3bMy36xP5+7w9THyoHfVdHW0dloiIiIiI1GBnL6ax6vR6dmfso8JSgbeTJwOa\n9adLgw51cspUbZORU8Cm/ansOJROZm5RZbufpzN3hXnRMqA+LQI88K5f90clXYsKSyK3yT2dG3Pu\nQhFrdycz7es4/vJw5B3/B0ZERERERKoqLS9lX1YCW8/u4EhOIgD+9RrQv0kvOpgjsDPa2TjCO1tp\nWTm7j2ayaV8qh07nAODsaEeHlr6ENfcirKkXvh7ONo6yZlFhSeQ2MRoMjOrXAicHO5bHnubNr3cz\n8eFI/LSYt4iIiIjIHc1isXA2P43Y1J3sSI0jv6wAgGCPZvQL7EmYdyuMBj0F3RZyLxZz4uyF//t3\nnpNpeRT/3zS3lo096BnhT4cQXxzsVfC7GhWWRG4jg8HAsJ5BODnY8d3PJ3jz6zgmPNSOALMeCSoi\nIiIiciepsFRw+kIS+zIT2JcVT0ZBFgCu9vXoF9iTbg074VfPbOMo70zlFRXsPpLJyh1JnEy9UNlu\nABp4uxAR7MPdEf564vcNUmFJpBoM7NoUJwcTX68+yiuzdhHTJZCBdzXB0UFVbhERERGRuqy8opyV\np9exKWUbF0ouPXbewWhPO982dPSLpK1PKCajPorbQmFxGZv2p7J6ZxLnLhRhAMKaedGysQfN/d1p\n1sAdFyd9b26WMiZSTfp2CMDD1ZG5a46ybOspthxIZUTvYDqHmrUQn4iIiIhIHZRekMmshG84nZdE\nPZMLdzXsSDvfNoR4tsDB7s56UpitFZeWk5RxkeTMiyRnXCQ5M5/T6ZemuTmYjPRu34h7OjbW0iW3\ngQpLItWoQ4gvbZp5sXzbKVZsP8MnSxJYH5dMuxa++Hk54+fpgq+HM/YmzacWEREREamtLBYLW85u\n57tjSympKKVzg/aMaDkYZ5MWeba2CouFzftTWbjhOBcLSyvbDYDZy4VuYX70imyEm4uD7YKsY1RY\nEqlmjg52DL07iO5tGzJ/XSJ7jmVxNPl85fsGA/j71KNLqB9dwxroSXIiIiIiIrVIdlEOC44uYX9W\nAs4mZ54IHU4Hv3a2DuuOdCY9j9mrjnA85QKO9nb0bR9AoJ8rAWZX/H3q4agFuKuFCksiVmL2dOGZ\nYeGknsvnbFY+6TmFpGUXkJ5dwKm0PBZtPMGijSdoFehB17AGdA7105pMIiIiIiI1VG7xeVaeWseW\nszsot5TT0iOIR1s/hKeTh61Du+MUFJXxw+YTrN2djMUCHVuZebhPMF7uumlvDSosiVhZQ+96NPSu\nV6WtoKiMXUcyiI1P4/CZXA6fyWV57Gl+NziMZg3dbRSpiIiIiIj8r/PFeaw+vZ5NZ7dRVlGGj5MX\nA5r1p1ODSIwGLXFhTeUVFWzal8r3m06QV1CK2dOZ0fe0pE0zb1uHdkdRYUmkBnBxMnF3hD93R/iT\nlVvImt3JrN6ZxBuzdzOsZxD3dG6MUQt+i4iIiIjYTGlFGevPbOKn02spKS/By8mTe5v2pUuDDtgZ\nNdPA2hJOZTN/7TGSM/NxtLfjgbubE9O5MfYmfS+sTYUlkRrGx8OZh/u2oG1zbz5bdpBv1ydy8HQ2\nvxnYGvd6WmBORERERMTa4rMOsfDYEjILz+FqX48HggbSzb8TJqM+UluTxWLh8OkcVu5MYv/xcxiA\n7uENGXp3czxcHW0d3h1LvwUiNVRYMy9efqIzny0/SPyJbF76YgfPjYq8bBqdiIiIiIhUj5SLqSw5\n/hPx5w5jNBjpFRDFwGb9cbHXI+qtKb+olC0H0tiwJ4W07AIAQhp78HDfFjRp4Gbj6ESFJZEazL2e\nA38cHsGK7WdYuOE4H30fz4uPdtSi3iIiIiIi1aTCUsGBrENsSNrM0dzjALT0CGJ4y8H4uzawcXR3\nDovFwvGUC/y8L4WdhzIoKavAZGega5gfvSMDCGrkjkHLhdQIKiyJ1HBGg4EBdzUh50Ixa+OSmb3q\nCGMHhuqPqIiIiIjIbXS+OI+d6XFsTI7lXFE2ACGewfRu3J023up/W0teQQmx8Wls3J/K2ax8AHw9\nnOjVrhFR4Q1xd9HyIDWNCksitcSIPsGcSD3P1vg0Wjb24O4If1uHJCIiIiJSqxWWFbI3M4FdaXs4\nkpOIBQv2Rnui/LvQKyBKI5Ss6FTaBdbsSmbHoXTKyi2Y7Ax0DjVzd4Q/rZp46mFGNZgKSyK1hL3J\nyO8Ht+HlL3fy9eqjNG3gRqCf5hOLiIiIiNysc4U5LD+5it0Z+yirKAOgmXsgHf0i6dQgknpaQ8kq\nysoriDuayZpdySSmnAeggZcLvSIb0TXMDzeNTqoVVFgSqUV8PJwZe19r/rVwP//+IZ4pj3fC2VG/\nxiIiIiIiN6KgtICVp9ezIXkLZRVl+Ln40rlBezr6tcPH2dvW4d0xUjIvsiU+jdiENM5fLAEgPMib\nfh0DaN3US6OTahl9IhWpZdoF+3Bvl0B+2n6GD78/wJh7/j97dx4fdXnu//81M5ns6ySTfSUhYclG\n2JeIAVlERKyALYq2R7sclfa0/n56RNtqz2n99vScntaq9XzrUqsoCi6gIosiyL6TQFgTQvZ937eZ\n7x94sFQQEDITkvfz8fDxSD8z+czF1Ulyz3Xf93UnEWK58IyKzW6np8eGq1nNvkVERERk8Orq7eLD\nE5/yzpG1tPa0EeDmz61DZjE2dBRGg9HZ4Q0KrR3d7MqtZPvhcs5UNAPg6ebC9NGR3DQ68qKfaaT/\nU2FJ5Dr0ralDKKpqIbegjsf/sptJyaHcOjkWq78HAOW1rew4UsGu3ApaO3p4dHGGjuEUERERkUGn\nqLmEHWV72VtxkI7eDjxc3JkfP4cbIydjNpmdHd6gUFrTyqf7S9hxpJyubhtGg4HU+EAmp4SRnhCI\n2UWT4Nc7FZZErkMmo5GfLkrjwIlq3t9WwLbD5ezMrWDc8GAq6tooKD87A+DuaqKjq5dn383h598d\nqxMURERERGTA67b1sLt8H9vKdlPcXAqAn6svc5KyGB84Dm+zl5MjHPi6unvJLahj67uHOXSyGoBA\nX3emTY5gUnIoft5uTo5QriUVlkSuU0aDgTHDgslItLLnWCWrtxWwM7fy3AzAxJGhpA8NYv3uIt7f\nVsAL7x/hZ3em42LSUl8RkcGmtbWVRx99lMbGRrq7u3nwwQexWq08+eSTACQlJfHUU08B8OKLL7Ju\n3ToMBgMPPfQQU6dOdWLkIiKXr9fWy67yfXx85lPqOxswGoykBo1kcvg4hlsSCQ3xp7q62dlhDkh2\nu52S6lZyC+rILajlRFZcIz0AACAASURBVHEjPb02AIZF+zN9dBSjhgZhNKp30kCkwpLIdc5oNDBh\nZChjhweTV9JIqMXzvBmAuZNjKaxs5uCpGt7+LI/FNyU6MVoREXGG9957j7i4OB5++GEqKyu59957\nsVqtLFu2jNTUVB5++GG2bNnCkCFDWLt2LStWrKClpYXFixczZcoUTCZtUxCR/qvX1sueigN8fOZT\najvqMBtdmBaVyfToG/B383N2eANac1sX23LK2XyolOqGjnPXo4K9GRlrYU7mELzNmtge6BxeWNqz\nZw8/+clP+M1vfkNWVhYAS5Ysoa2tDU/Ps826Hn30UZKTkzVjJnIFTEYjSdEBX7luNBi4f+4Ifv3a\nfj7ZV0JMiA+TU8KcEKGIiDhLQEAAJ06cAKCpqQl/f39KS0tJTU0FICsri507d1JdXU1mZiaurq5Y\nLBYiIiLIy8sjKSnJmeGLiFxQV283u8r38UnRFmo76nAxmLgxcjIzY7Lwc/N1dngDlt1uJ7+sic8O\nlLD3eDU9vTZcXYxMGBFC8hALI2Mt5ya6rVYfrRIbBBxaWCoqKuKVV14hIyPjK489/fTTJCZ+uZKi\nuLhYM2Yi14iHmwtLv5XCr17dx6vrThBi8SQhQrM3IiKDxS233MK7777LjBkzaGpq4s9//jO/+tWv\nzj0eGBhIdXU1/v7+WCyWc9ctFgvV1dUqLIlIv9Le087Wkl1sKtlKc1cLLkYXboiYyMyYLALc/Z0d\n3oBV39zJztwKth8up7y2DYAQiydZoyKYnBKKl7uaoQ9WDi0sWa1Wnn32WR5//PFLPnf37t2aMRO5\nhkIsnvxw3kj+uDKb3y4/wPTRkcybHIenu3bEiogMdKtXryY8PJyXXnqJ48eP8+CDD+Lj8+VpoXa7\n/YLfd7Hr/yggwBOXPjzVx2rVyaaOpHw7lvJ9+Spaqll3ajOfFeygvbsDD7M784fPYk7iNPzdL2+F\nkvJ9ZRpbOjlwoorN+0s4dLIKmx1cTEYmp4Vz84RYUocGYTB8fd8k5dyxnJFvh36i9PDwuOhjzzzz\nDPX19cTHx7Ns2TJqamo0YyZyjaXGB/LjBaks33iSDXuL2ZVbwR1T45k/TX2XREQGsgMHDjBlyhQA\nhg0bRmdnJz09Pecer6ysJDg4mODgYAoKCr5y/VLq69uufdBf0DYKx1K+HUv5vjS73c6J+jw2l2zj\nSM1x7Njxc/VhZnwWmRET8HDxoLsZqpsvnUfl+9J6em2cKmn8ogl3HYWVX+YrPtyXSSlhjBsefG51\nUk1Ny9feTzl3rL7M99cVrPqssLRy5UpWrlx53rWlS5eSmZn5lefec889JCUlER0dzS9/+UuWL1/+\nledczoyZZssGFuW7b9xk9eGGMdG8vyWftz89ySsfH2dLTjmjEq2EW70JD/IiwuqNv4/bJWcf5Oro\nPe5YyrdjKd/9S0xMDNnZ2cyaNYvS0lK8vLyIiIhg3759jBkzhg0bNrBkyRJiY2N55ZVXWLp0KfX1\n9VRVVZGQkODs8EVkkKptr+eV3OUUNBUBEOcbzY2Rk0kPTsHFqFX310pPr42jZ+rYe7yKgydraOs8\nO/HgYjIwPCaAkXEWRg0NIizQy8mRSn/VZz+NCxcuZOHChZf13BkzZpz7etq0aaxdu5bx48df8YyZ\nZssGDuW772WlhZEWF8DKzfnsPlrJ6dLG8x4PDvBgUVYCoy5jeatcOb3HHUv5dixnzZbJxd15550s\nW7aMu+++m56eHp588kmsViu/+MUvsNlspKWlMWnSJAAWLVrE3XffjcFg4Mknn8Ro1Gk+IuJ4x+tO\n8XLuclq720i3JjMj5kZifaOdHdaA0d7ZQ25BHdl5NRw89WUxKcDHjYnJoaQMCSQpyh83V/U4lktz\nepnXbrfzve99j2eeeQZfX192797N0KFDmTBhgmbMRPqYxdedH84bydI7R3HkZBWVdW1U1rdTXttK\nTn4tz757mJGxAXznpkTCgzRDISJyvfLy8uKPf/zjV66/8cYbX7m2ZMkSlixZ4oiwRES+wm63s7Fw\nM2tOr8NoMPLtpG8xJXy8JjqvgaqGdg6dqiE7r4aTxQ302s7uCgrwcWNyShhjhwUzJMIXo3ItV8ih\nhaXNmzfz0ksvcfr0aXJzc3nttdd4+eWXWbRoEd/97nfx8PAgJCSEpUuX4uHhoRkzEQfx83YjMcqf\nxKgvT9Eor23ljU9OkVtQxy9f3sO0jEjmZ8bh4XbhXxt2u52N+0qw2exMSQ3D20OnQoiIiIjI5Wvv\naee1o2+TXZOLv5sf9ycvIc5Pq5SuRlNrF3uOVbL7aCX5ZU3nrseE+JAaH0hqQiBxYSomydUx2C/3\nuI/rQF9uc9A2CsdSvh3rYvm22+0cyqthxaenqG7oIDHSj4e/PQqzy1eLvJ/uL2H5xpMAuLoYmZQS\nxowxkdqLfRF6jzuW8u1Y2go3+GgMNnAo346lfH8pt/YEbxxfRUNnI4n+8fxT8l34uHpf09cYLPm2\n2e1k59Xw2YFSjp6px2a3YzDAiJgAxgwLJjU+iAAfN4fEMlhy3l8MuObdInL9MxgMjBpqJTnOwl8+\nOMq+E9X89eNj3D93xHnLkY8X1vPmJ6fw8TQzY0wUWw6VsflgKZsPlpIyJJC7ZiYS7H/xUyFFRERE\nZHBq72nnnVMfsrN8L0aDkVviZjArZhomo3r7XKmeXht7jlXy8a4iSmtaARgS7sv4ESGMGxaMn7dj\nikky+KiwJCKXZHYxcf/cEdQ3H2RnbiUhAZ7MmxIHQG1jB8+/fwSDAR6Yn0xSdAA3T4jm4MkaNuwr\n5vDpWv7P6/v5/749Sn2aREREROScv1+lFOEdxpLhdxLlE+7ssK47lfVtZJ+qYeO+EmqbOjAaDEwc\nGcqcCdFEWK/tqi+RC7lkYamxsZEXXniB6upq/vM//5NNmzaRnp6OxWJxRHwi0k+4mk0svSOVf//b\nPt7fVkBwgAcZiVaeffcwLe3d3D0zkaToAABMRiNjhgUzZlgw6/cU8damPP7P8gM8fGc6MaHaxiIi\ncjk0BhORgeofVynNiZvBbK1Suix2u53G1i7yS5vIPVNHbkEt1Q0dAJhdjEzPiGTW+CiC/LRbQBzn\nkoWlJ554grFjx3Lw4EEAurq6ePTRR/nLX/7S58GJSP/i6+XKTxam8ZvX9vHy2mNszSmnsLKZzNQw\nskZFXPB7Zo2Lxs3VxGvrTvAfbx7kp4vSSIjwA84u1z1V3MDxogYyEq0qOomI/B2NwURkIPr7VUqR\n3uEsGb6ISK1Suqj65k52Ha2grLqV8ro2ymvbaO/sOfe4h5sLoxOtjIyzkJFoxdfL1YnRymB1ycJS\nXV0d99xzDxs3bgRg9uzZLF++vM8DE5H+KSLIiwfmp/Dfb2dzrLCe+HBf7p6Z9LVHwN6YHoG72cSL\nHx7jv1YcYu6kGM5UNJNbUEdHVy8Ae45X8W/3jcPFpNMfRURAYzARGVjautt4N+8j9VK6TJX1bXy8\nq4gdR8rp6T173pbJaCDU4klobABRVm9GxFmIC/PBpNPTxckuq8dSd3f3uQ+NNTU1tLW19WlQItK/\njYyzcP+tw9mVW8m9s4dd8JS4fzRhZCiuZhMvrD7CO1tOA2D1d2dyShj1zZ0cOFnN1uwysjIi+zp8\nEZHrhsZgInI9s9vtnG4sZEfZHg5UZdNl6ybKO5y7tUrpogrKm1i3u4h9J6qw2yE4wIPZ46IZHhNA\nkL+7ikjSL12ysHTXXXexYMECqqur+dGPfsThw4d5/PHHHRGbiPRjE0aEMmFE6BV9T0ailUe+k0FB\nRRPJcRZCLZ4YDAYaWzrJLahj9bYCJowMxcNN5wqIiGgMJiLXq7buNnaW72NH2R4q2qoACHS3cEPk\nRLIip2iV0j9o6+hh99EKtmSXUVTZAkB0sDdzJsYwJikYo/HiOwNE+oNLfnqbM2cOGRkZHDx4EFdX\nV371q18RHBzsiNhEZABKiPQjIdLvvGt+3m7MHh/N6m0FrN9TxPzMIVd836bWLg6frqXsi6NVv46n\nuwvTMiJVwBKRfk1jMBG53pS3VrK5eBt7Kg7QZevGxWBidHAak8LHkRgQj9Gg1TZ/r6C8iU37S9h7\nvIquHhtGg4FRQ4PIGhXByDjL17aaEOlPLvmpatWqVee+bm1t5fPPPwdgwYIFfReViAw6s8ZF8dnB\nUtbtKeLGURH4e7t97fPtdjuFlc1k59WSk1/DmfJm7Ffwejn5tfxsUTpurpoxE5H+SWMwEbke9Np6\nya09zpaSHRyvPwWAxT2AqZGTmBA6Bm9XLydH2L/Y7Hay82pYv6eYk8UNwNn2EDekhTM5JeySY2CR\n/uiShaX9+/ef+7qrq4ucnBwyMjI0qBGRa8rd1YX5U+L42/oTrN5WwL2zh13wedUN7ezMrWDnkQoq\n69uBs40Mk6L9SYkPJCHC75LLhTfsKWbv8Sr+uCqbnyxMw82s4pKI9D8ag4lIf1bdVsvO8r3sKt9L\nY1czAEP9h5AVNYWUoBFanfQPGlrO9hTduK+Eyrqz/fKS4yzMHBfFiFgLRq1OkuvYJQtLTz/99Hn/\nu729nccee6zPAhKRwSszLYyN+4r5PLuMGWOiCA86O8NV19RBdn4tu49WnpvZMbsYGTc8mNFJwYyM\nteDpfvnb2r5/qw+9NjsHTlbz7Ds5/HhBKmYXFZdEpH/RGExE+pvmrhYO1xxlX+UhTtTnAeDh4s4N\nEZOYEjGeCO8wJ0fYf9jsds6UN5OTX0N2fi2FFWeLby4mA1NSwpg5LopIq7eToxS5Nq64wYiHhwdF\nRUV9EYuIDHImo5EFN8bzp3cOs3zjSeLCfMnJr6Gk+su+ScOi/ZmYHMqYpOBv3CPJxWTkR7eN5Pn3\njnAor4Zn3z3CQ99KuazT7UREnEVjMBFxhtr2Og5VHyG7OpfTjWewf9F8IME/jsnh40m3puBqMjs5\nyv6joq6N7YfL2ZlbQV1TJ3B2df2I2ABS44MYNzxY291kwLnkp7LFixef1zSssrKSpKSkPg1KRAav\n9IQgEiP9OFZYz7HCelxMRpKHWEiLDyI9IYhAP/dr8jouJiP/PD+ZP72bw+HTtfzfNbk8cHuymiSK\nSL+hMZiIONOZpiI2FG4mpzoXO3YMGBjiF0OqdSRpQclYPQOdHWK/0d7Zw+6jlWw/Uk5+aRMAHm4m\nJqeEkp4QxIhYiw6NkQHtku/uf/mXfzn3tcFgwNvbm2HDLtz7RETkahkMBv7pluF8nl1OQqQfw2MC\n+qwHktnFyEO3p/Dfb2ez/2Q1n+4v4aYxUX3yWiIiV0pjMBFxNLvdzvH6U2wo3MzJL7a6xfhEMTl8\nHCnWEfi6+jg5wv6lqr6NT/aXsC2nnI6uXgzAyDgLk5NDGZVoVR9PGTQuWljauXPnBa83NDSwa9cu\nJk6c2GdBicjgFhzgyYIb4x3yWq5mEz+8bSS/eGkPb3+WT1J0AFHB2u8uIs6jMZiIOENbdzsv5y7n\nWN1JAIYFDGVmTBaJAfFa0f137HY7xwrr2bi3mJz8WuyAn7crs8dHMyUlDIvvtVldL3I9uWhh6fnn\nn7/oNxkMBg1qRGTA8Pd2475bhvPHVTn8z5pcfn7vGM0wiYjTaAwmIo5W217H89kvU9FWxbCAocyL\nn02Mr1Zx/72eXht7jlWybncxJdUtAMSH+zJ9TCRjkoJxMalXpwxeFy0svfbaaxf9pvXr1/dJMCIi\nzpKWEMT00ZF8ur+EtzflsWSW+piIiHNoDCYijnSmqYgXsv9Kc3cLWVFT+FbCXIwGFUn+V1tHN1sO\nlbFxXzENLV0YDQbGDQ9mxtgo4sP9nB2eSL9wyR5LZWVlvP7669TX1wPQ1dXF7t27mTVrVp8HJyLi\nSIuy4jlRVM9nB0sZGWchI9Hq7JBEZBDTGExE+tqh6iP8NfdNemw9LEy8jRsjJzs7pH6jpqGdDfuK\n2ZpTTmdXL26uJmaMiWLGmEiC/D2cHZ5Iv3LJUvQjjzyCv78/hw4dIjk5mfr6ev7jP/7DEbGJiDiU\n2cXED+eNxOxi5JW1x6hv7nR2SCIyiGkMJiLXWq+tl9ONhXxUsJH/2v8cLx5+DYPBwA9T71VR6Qun\ny5r48/tHePR/dvLJvhI83VxYeGM8//XAJL5z01AVlUQu4JIrlkwmEz/4wQ/YunUrd911FwsWLOBn\nP/sZkyZNckR8IiIOFWH15tvTEnhtw0mefTeHRxZnqN+SiDiFxmAicq00dDayJn8dOTVHae9pB8CA\ngSF+MSxInEe0T6STI3Sunl4b+09U88n+YvJLmwCIDvZm1rhoxg5X/ySRS7lkYamzs5OKigoMBgPF\nxcWEh4dTWlrqiNhERJzixlERnC5vYvvhCl788Cj/PD8Zo05DEREH0xhMRK6WzW5ja+ku1uR/TEdv\nJxb3AEYHpzLckkhiQAKe5sG9+qaptYst2WV8dqCEhpYuDEBafCAzxkYxPCZAp+GJXKaLFpYqKysJ\nCQnh/vvvZ8eOHdx3333cdtttmEwm5s6d68gYRUQcymAwcO/sYdQ2drD/RDXvbM5nYVaCs8MSkUFC\nYzARuRZKW8p54/g7nGkqwsPFg8VJdzAxfOygb8xts9s5eqaOzw+VcfBUDb02O+6uJm4aE8n00ZGE\nBHg6O0SR685FC0u33nor6enpLFiwgHnz5uHi4sKePXtobW3Fz0/d70VkYHMxGXng9hR+/dp+Pt5d\nRHCAB1PTI5wdlogMAhqDicjVaOxsYn3hJraW7sJmtzE6OI07hs7Dz83H2aE5VU1DO58cLGP9zjPU\nNnUAEGH1YmpaOJNTwvBwu+RmHhG5iIv+9GzdupWNGzfy9ttv86tf/Ypbb72VBQsWEB8f78j4RESc\nxtvDzE8XpvLvf9vPa+tPEuTvwchYi7PDEpEBTmMwEfkmmrqa2Vi4ma2lO+m29RDkbmFR0u2MDExy\ndmhO09TWxd5jVew+WkleaSMAbmYTN6SFkZkWzpAwX213E7kGDHa73X6pJ1VVVfHBBx+wevVqPD09\nWbBgAQsWLHBEfFekurq5z+5ttfr06f3lfMq3YynfX+9kcQP/ueIgNhtYAzwICfAgJMCTUIsHQ6P8\nibR6X/E9lXPHUr4dqy/zbbUOrhl3jcH08+toyrdjXU2+u3u7qW6vpaKtitONZ9heupsuWzcBbv7c\nHDudCWFjMBkH5wEkhRXNrN5WQE5+LTa7HQMwLCaAGeNjSIrw1eokB9LvFMdy1hjssgpL/ys/P5/n\nn3+ejRs3kpOTc8WB9PT08Pjjj1NUVERvby+PPPIIY8aM4fjx4zz55JMAJCUl8dRTTwHw4osvsm7d\nOgwGAw899BBTp0792vtrUDNwKN+OpXxf2qFTNXy06wyVde20tHef91h0sDeTkkMZPyIEP2+3y7qf\ncu5YyrdjqbB07V3tGAxgzZo1vPjii7i4uPDjH/+YpKQkHnnkEXp7e7Farfzud7/D1dWVNWvW8Oqr\nr2I0Glm0aBELFy685L01Bhs4lG/HutJ8N3e1sLZgI0frTlLbXoedLz/K+bn6Mjt2GhPDx2E2Ds7C\nSXltK+9tLWDf8SoAYkJ9mDgylLHDggnwcdP72wmUc8dy1hjskr9xGhsb+fDDD3nvvffo6upiwYIF\nPPHEE98okNWrV+Ph4cGbb77JqVOneOyxx1i1ahW//vWvWbZsGampqTz88MNs2bKFIUOGsHbtWlas\nWEFLSwuLFy9mypQpmEyDs+ouIs6VPjSI9KFBALS0d1NZ30Z5TRsHTlZz+HQtKzbl8fZn+SRGne1/\n0trRQ0t7N63t3RiNBoIDPAi1eBIc4EmYxZOs8ZdXgBKRwetajsHq6+t57rnneOedd2hra+NPf/oT\n69evZ/Hixdx88838/ve/Z9WqVcyfP5/nnnuOVatWYTabWbBgATNmzMDf3/8a/+tE5Er02nr5vHQn\nHxVsoL2nAy8XT4b4xRLqFUyop5UQr2AS/eMxm8zODtUpqhraWbuzkG055djsdmJDfbjjxni1MBBx\nkIsWljZt2sR7773H/v37mTFjBr/4xS9ITU29qhebN2/eudNMLBYLDQ0NdHV1UVpaeu7eWVlZ7Ny5\nk+rqajIzM3F1dcVisRAREUFeXh5JSYN3j7CI9A/eHma8PfyID/djSmrYuf37O45UcLyoAQB3VxPe\nHmbCgrzo6bVRXttGUWXLuXus2HSK+VPimJoegdF44b39Pb02Wtu7afniv+5eG4mR/riaVWAXGcj6\nYgy2c+dOJk6ciLe3N97e3vzbv/0b06ZNO7dKPCsri5dffpm4uDhSUlLw8Tk7K5mRkcGBAweYNm3a\nVf+7ROSbOVmfx9snV1PeWomHiwcLh95GZsSEQbvN7X+1d/aw73gV2w+Xc7LkbP+ksEBPvnXDEDIS\nreqdJOJAFy0svfzyyyxYsIDf/e53uLu7X5MXM5u/rKC/+uqrzJ07l/r6enx9fc9dDwwMpLq6Gn9/\nfyyWLyvMFouF6upqFZZEpN/x9XRl+uizR9S2dfTgajbiYjr/KF+b3U5DcycVdW3klzaybk8xr204\nyeZDZSy+aShJ0QF0dvVytLCOnPxaDp+upa6p8yuv5e/tyi0TY7khLRyzy+A+LlhkoOqLMVhJSQkd\nHR386Ec/oqmpiaVLl9Le3o6rqyvw5firpqbmguMvEXG8pq5m3jn1AfsqD2HAwOTwcdw6ZDY+rlfe\n23GgsNvtnChqYGtOGftPVNPVYwNgWLQ/mWnhjBsejMmo8ZGIo120sPT6669f1Y1XrlzJypUrz7u2\ndOlSMjMzWb58Obm5ubzwwgvU1dWd95yLtXy6nFZQAQGeuLj0XeV+sPZ1cBbl27GU774XEgxJ8TB1\nLNw+LZG/rT3GJ3uL+O0bB4mP9KOoopnuLwZIPp5m0oYG4ePpevY/L1faO3vYsLuQ5RtPsmFfMXfe\nlMj0sdFfKWLJhek97ljK9zd3tWOwi2loaODZZ5+lrKyMe+6557yx1dWMv0BjsIFG+Xasf8y3zW5j\n0+kdLM9+l9budhIssdw3+tvEW2KcFKHz1Td18MneIjbuKaK8phWAsEAvpo2NImt0FCEWz8u+l97f\njqecO5Yz8t1nXd0WLlx4wWaPK1euZNOmTTz//POYzeZzW+L+V2VlJcHBwQQHB1NQUPCV61+nvr7t\n2v0D/oGajjmW8u1YyrfjWa0+LJ6ewIThwbzxyUnySxqJCvYmNT6QtPgghoT7XnCL3PT0cNbuKuSz\ng6U8uzKb1z8+RlpCEKnxgYyIseDmOriXxV+M3uOOpebd/U9gYCCjRo3CxcWF6OhovLy8MJlMdHR0\n4O7uft74q6am5tz3VVVVkZ6efsn7aww2cCjfjvWP+a5oreSN4++Q33gGd5MbixLnkxkxAWOvcVD+\n/1JQ3sTHuwo5cLIGm92O2cXIpORQMlPDSIzyP7vdrbf3snOj97fjKeeO1W+bd19LxcXFrFixgtdf\nfx03t7ONa81mM0OGDGHfvn2MGTOGDRs2sGTJEmJjY3nllVdYunQp9fX1VFVVkZCQ4MhwRUT63JBw\nXx5fMprO7l7cXS/9K9nXy5VvTx/KrHHRrN1VyK7cCrYcKmPLoTJcTEaGRftz25Q44iP8HBC9iFwv\npkyZwr/+67/y/e9/n8bGRtra2pgyZQrr16/ntttuY8OGDWRmZpKWlsYTTzxBU1MTJpOJAwcOsGzZ\nMmeHLzLgdfd2s65wExsLN9Nr7yXdmsLCxHn4uw2+v+d2u51jhfV8tLOQY4X1AEQFezM1PZwJI0Lw\ndB+cDcpF+jOHFpZWrlxJQ0MDP/jBD85de+mll1i2bBm/+MUvsNlspKWlMWnSJAAWLVrE3XffjcFg\n4Mknn8So/bIiMgAZDIbLKir9vQAfN+6akch3pg8lv6yRnPxasvNqOVJQx+myJn7+3TGEBFz+snAR\nGdhCQkKYNWsWixYtAuCJJ54gJSWFRx99lLfeeovw8HDmz5+P2Wzm4Ycf5r777sNgMPDggw+ea+Qt\nIn3jeN0p3jrxHlXtNQS4+bMo8TZSrSOdHZbD1TS0k51fy44j5RSUn11xMTwmgFsmxjA8JkDNuEX6\nMYP9cjfPXwf6comdlvA5lvLtWMq34/VVzrfmlPHK2uNEBHnx+D2jr7hgNVDpPe5Y2go3+GgMNnAo\n347T3NXC2pL1fH5mNwYMZEVN4Za4mbi7uDk7NIew2+3klTZy6FQNOfm1lH7RO8kAZCRZmTMhhrgw\n36+/yRXS+9vxlHPHGhRb4UREpG9lpoZTVNHCpwdKeOnDYzxwe7Jm+ERERPqRXlsvW0t38WHBBtp7\n2onyiWBx0h1E+0Y6OzSHaGztYsfhcj7PKaey7mx/NrOL8Ys+k4GkxgcR6HdtTsQUEcdQYUlEZIC5\nc3oCJdUt7D9ZzYc7C7l1UqyzQxIRERHgZH0+K0+upqy1Ag8Xd747aiEZfhmYjAP78A2bzc6Rgjq2\nZpdxKK+GXtvZRtwTR4YwbngIw2ICcDMP7ByIDGQqLImIDDAuJiP/fHsy//bXvbz/+Wmigr1JTwi6\n4HPrmjrIL2uitLqFSKs3I+MseLjpT4OIiMi11NDZyDunPuBAVQ4GDEwKG8e8+NkMiQgb0NuEahrb\n2ZZTzrbD5dQ1dQJnG3HfkBbOhJEheKkRt8iAoE8PIiIDkK+nKw99K5XfvL6fF94/QliQF94eZrzc\nXfD2MNPY2sXpsibqmzvP+z6T0UBilD+p8YFkJFqx+ns46V8gIiJy/bPZbXxeupMP8tfR0dtJnG80\nCxNvI8Y3ytmh9Rmb3U5Ofi2b9peQW1CHHXBzNTE1PZwb0sKJDfXRNn2RAUaFJRGRASom1Icf3DqC\ntzblUV7TSleP7bzHfb1cGTU0iIQIP8KDvCgobyI7v5ZjhfUcK6xn1eZ8/umW4UwcGeqkf4GIiMj1\nq6S5jDdOvENhUzEeLh4sHnYHE8PGYjQMzJOu2zp62H64nE/3l1DV0A5AQoQfmWlhjB0WrANFRAYw\n/XSLiAxgo5OCdFgpaQAAIABJREFUGZ0UDEBXdy+tHT20tHfj4WYi0Nf9vBnDtIQg5mcOoaGlk0N5\nNaz6LJ+/fHCU2sYObpkYo9lFERGRS7Db7RQ2F7OrfD/by3Zjs9sYE5LOHUNvxdd1YJ5qWdPYzoY9\nxWw9XE5nVy9mFyOZqWFMHx1JdMjA/DeLyPlUWBIRGSRczSZczSYCfL7+GGN/bzduTI9gaIQff1iZ\nzbufn6a2qYO7ZyZiMg7MWVYREZGrUdlaxd7KQ+yrPEh1ey0Age4Wvp10OyMCk5wcXd8orW7h491F\n7D5aSa/NToCPG3MnxnBDWjg+nq7ODk9EHEiFJRERuaAIqzfLlozhjyuz2XKojPrmTn5020gtZRcR\nEQE6ejo5UJXDjrLdFDQVAeBqNDMmJJ2xIaMYbkkccKe92e12ThY3sH5PMYfyagAID/JizoRoxg0P\nwcWkCSiRwUifDkRE5KICfNx49K4M/vz+EXLya/nD29k8/O1RmF00cBQRkcGpqLmEbaW72Fd5iM7e\nLgwYGGFJYlxoBilBI3B3+fqVwdejto4edhwpZ/OhMspqWgGID/dlzsQY0hKCMGq7vMigpsKSiIh8\nLQ83F368IJX/WZPL/hPV/PXjY9w/d4R6LomIyKDS0t3Ke3kfsat8HwABbv5Mj57KxLAxWNwDnBxd\n36hr6uDDHWfYkVtBV7cNk9HA+BEhZI2KYGikn8YCIgKosCQiIpfBxWTk+3NHUN98kJ25lYQEeDJv\nSpyzwxIREelzdrudPRUHeDfvQ1q6W4n0Dmde/GyGWxIH9Alva3cVsnFfMd09NgJ93blxUjhTUsPx\n81L/JBE5nwpLIiJyWVzNJpbekcqv/7aP97cVEBzgwYSRoc4OS0REpM9Ut9Xy5ol3OFGfh6vRzO0J\nt5AVOWXA9U76Xz29Nj47WMoH28/Q0t5NgI8bt2cOYVJyKEajVieJyIWpsCQiIpfNz8uVnyxM4zev\n7ePltccI9HNnaKS/s8MSERG55rKrc/nb0bfo6O1gZOAw7kycT6CHxdlh9YmSqha2HylnV24lja1d\neLiZuGPqEG4aE4WbeWAW0UTk2lFhSURErkhEkBcPzE/hv9/O5k/vHGZRVgLjR4SoobeIiAwINruN\nD06vZ0PhZ5iNZu4ZfifjQjMGXD+hptYudh+rZPvhcooqWwDwcndh5tgo5kyMwddTW95E5PKosCQi\nIldsZJyFe2cn8eq6E7y89hirNueRlRFJ1qgIfNV7QURErlMtXa28kvsGx+tPEeQRyA9S7iHCO8zZ\nYV0z7Z09HDxVza7cSo6eqcdmt2M0GEhPCGJySiip8UGaKBKRK6bCkoiIfCOZaeEMjw1g04FSthwq\nY/W2Aj7aeYabRkexMCt+wM3siojIwGWz28ipzmXVqQ+o72wgOXA49474Np5mD2eHdtV6bTZyC+rZ\ncaScQ6dq6OqxARAX5suEESGMHxGiSSERuSoqLImIyDcW5OfBoqwE5k2OZfvhCtbvKWLdniJczUbm\nZw5xdngiIiJfy263c6T2GB+e3kBJSxkGDMyNm8ms2GnX/YlvJdUt7Dhcwc7cChpbuwAIsXgycUQI\n40eGEBLg6eQIRWSgUGFJRESumrurC9NHRzJ2eDD//uo+1mw/Q0iAJxOTdWqciIj0P3a7nWN1J/nw\n9AYKm4sxYGBMSDpzYm8ixCvY2eF9Y+2dPew+VsnW7DIKypuBs32TsjIimJwcRlyYj1YUi8g1p8KS\niIhcM76ervzLwjR+/dp+Xvn47KlxiVE6NU5ERPqP4uZS3sv7iBP1eQCMCk5lTuxNhHtfv5Mh+aWN\nbMkuY++xKjq7ezEYIDU+kCkpYaQlqG+SiPQtFZZEROSaCg/y4qHbk/n929n86Z0cnrhnDCEWLbcX\nERHnqm2v54PT69lbeQCAEZYk5sXfTJRPuJMj+2bsdjvHCutZs/0MJ4sbAAjyc2dOajSTU8Kw+Lo7\nOUIRGSxUWBIRkWtueKyFJbOS+OvHx/nDymz+ZWGaiksiIuIU3b3drC/cxMaiLfTYeoj0Duf2hFsY\nZhnq7NC+EbvdzpGCOtZsLyC/tAmAlCGBzBwbxfDYAIza6iYiDqbCkoiI9Ikb0sKprG/j411FPPZ/\ndxFq8SQ1PpC0+ECGRvnjYtKyfBER6Vsn6vJYceJdqtpr8HfzY96Q2YwNHXXdNebu7OrlRHE9R07X\ncbigjsq6NgDSE4K4dXIscWG+To5QRAYzFZZERKTP3DE1nvBAL/afqOZoYR0b9hazYW8xAT5uLLt7\nNIF+WqYvIiLXXktXK+/mfcjuiv0YMJAVNYW5cTNxd7l+/u702mzsPV7F1uxyTpU00NNrB8DVbGTc\n8GDmTIghOsTHyVGKiKiwJCIifchoMDA5JYzJKWF09/RyoqiB3ccq2X64gr+tP8G/LEzV6TQiInLN\ndPZ28XnJDjYWbqa1p40onwgWJ91BtG+ks0O7bN09vWw7XMG63YVUN3QAEBPiw8g4CyPjLCRE+KkZ\nt4j0Kw4tLPX09PD4449TVFREb28vjzzyCGPGjGHJkiW0tbXh6Xm2/8ajjz5KcnIyL774IuvWrcNg\nMPDQQw8xdepUR4YrIiLXkNnFRPKQQEbGWWho7uTw6Vp25lYwKTnM2aGJiMh1rqu3m62lO9lQ+Bkt\n3a14uHhwR8JcpkZOxmQ0OTu8y9Ld08sn+0tYv6eYptYuXExGbhwVwexxUQQHqE+hiPRfDi0srV69\nGg8PD958801OnTrFY489xqpVqwB4+umnSUxMPPfc4uJi1q5dy4oVK2hpaWHx4sVMmTIFk+n6+MMg\nIiIXZjAYuHf2MH7+0h7e/OQUI+MC8fNydXZYIiJyndpTcYD38j6iqasZd5M7c2JvIisqE0+zh7ND\nuyx2u53svFpWfHqKqoZ2PNxMzJkQw4wxkfh5uzk7PBGRS3JoYWnevHnMnTsXAIvFQkNDw0Wfu3v3\nbjIzM3F1dcVisRAREUFeXh5JSUmOCldERPpIkL8Hd0wdwhufnGL5xpM8MD/Z2SGJiMh1aGPhZt7P\nX4uryZWZMVncFD0VL/P1s7qnpKqZ51Zmc+R0HSajgZljo5g3ORZPd7OzQxMRuWwOLSyZzV/+gnz1\n1VfPFZkAnnnmGerr64mPj2fZsmXU1NRgsVjOPW6xWKiurlZhSURkgJg2OpI9x6rYd7yK/SeqGZ1k\ndXZIIgNeR0cHc+fO5YEHHmDixIk88sgj9Pb2YrVa+d3vfoerqytr1qzh1VdfxWg0smjRIhYuXOjs\nsEW+wm638+Hp9awr3IS/mx9L079PqFews8O6bGU1rXy6v4StOWX09NoZERvAd25KJCLIy9mhiYhc\nsT4rLK1cuZKVK1eed23p0qVkZmayfPlycnNzeeGFFwC45557SEpKIjo6ml/+8pcsX778K/ez2+2X\nfM2AAE9cXPpuq5zVqlMXHEn5dizl2/GUc/jZXaP5ye8388YnJ5mSEYm3Z99tiVO+HUv57p/+/Oc/\n4+fnB5yd1Fu8eDE333wzv//971m1ahXz58/nueeeY9WqVZjNZhYsWMCMGTPw9/d3cuQiX7LZbaw6\n9QFbSrYT5BHIj9O/T6CH5dLf6GQ2u53D+bV8sr+E3II6AEIsniyYGk9GYpAOsxCR61afFZYWLlx4\nwRmulStXsmnTJp5//vlzK5hmzJhx7vFp06axdu1axo8fT0FBwbnrlZWVBAd//SxEfX3bNYr+q6xW\nH6qrm/vs/nI+5duxlG/HU87PcjfCvMmxvLPlNP/+0i7unzuiT/pJKN+O1Zf5VsHqm8vPzycvL48b\nb7wRONt24KmnngIgKyuLl19+mbi4OFJSUvDxOZvnjIwMDhw4wLRp05wVtsh5em29LD++it0V+wn3\nCuWh9Pvxc/N1dlgX1dNrI7+0kez8Wg6cqKaqoR2AxCh/bhodycxJcdTVtTo5ShGRq+PQrXDFxcWs\nWLGC119/HTe3sx8c7HY73/ve93jmmWfw9fVl9+7dDB06lAkTJvDKK6+wdOlS6uvrqaqqIiEhwZHh\nioiIA8waF83xogZyC+p44sXdfOemoUwcGaqZW5Fr7Le//S0///nPef/99wFob2/H1fXsKsHAwECq\nq6sv2opAxNnsdjvZ1UdYnf8xVe01xPhG8WDaff2yn1KvzcbBkzXsO1HFkdN1tHX2AODqYmRKShjT\nR0cSE3q2eGsyGZ0ZqojINeHQwtLKlStpaGjgBz/4wblrL730EosWLeK73/0uHh4ehISEsHTpUjw8\nPFi0aBF33303BoOBJ598EqNRv3hFRAYaF5ORny5K47MDpazanM+LHx5jz7Eq7pmVhMXX3dnhiQwI\n77//Punp6URFRV3w8Yu1HLicVgSgdgQDTX/L94mafF7PfpcTtacxGYzMTLiBu1Jvx8Pcv/5GtHV0\n88meIlZvPU1V3dmdFNYAD24cHcnYEaGkJAThZv7qz0l/y/dAp3w7nnLuWM7It0MLSz/72c/42c9+\n9pXrc+bMYc6cOV+5vmTJEpYsWeKI0ERExImMBgPTR0eSFh/IX9cdJye/lide3M3oRCupCUGMjA3Q\nCTkiV2Hz5s0UFxezefNmKioqcHV1xdPTk46ODtzd3c+1HAgODqampubc91VVVZGenn7J+6sdwcDR\nn/Jd1VbN6vyPOVR9BIB0azLz4m8mxNNKS0M3LXQ7OUKw2ewUV7Ww53glmw+W0d7Zg9nFyI2jIsga\nFUGk1evcCtymhq/+nPSnfA8GyrfjKeeO5ax2BA4tLImIiHydIH8PHr4zna055by39TTbj1Sw/UgF\nJqOBhAg/pqSGMTklzNlhilx3/vCHP5z7+k9/+hMREREcPHiQ9evXc9ttt7FhwwYyMzNJS0vjiSee\noKmpCZPJxIEDB1i2bJkTI5fBqLmrhbUFn7CtbBc2u4043xhuT7iFeP9YZ4eG3W6nrKaVY4X1HCus\n52RxA60dZ7e6+XiamT8ljhszIvDtw8MoRET6GxWWRESkXzEYDNyQFs6U1DAKK5rJya8lJ7+GE8UN\nnChuoK2zhxljLrydR0Qu39KlS3n00Ud56623CA8PZ/78+ZjNZh5++GHuu+8+DAYDDz744LlG3iJ9\nraOng80lO9hY+BkdvZ1YPQK5LX4O6dZkp/bda2rr4uiZOnJP13HkTB2NLV3nHgvyc2dUopURsQGM\nTrRi7sMtoSIi/ZUKSyIi0i8ZDQbiwnyJC/PltilxVNS18dvlB3jzk1P4eJiZMDLU2SGKXJeWLl16\n7utXXnnlK4/Pnj2b2bNnOzIkGcQaO5s5UnOU7JpcTtSdosfei7fZi4Xxs8kMn4DJ6LxCTUVdG299\neors/Npz13w8zYwfEcKI2ACGRwcQ5O/htPhERPoLFZZEROS6EGrx5KeL0vjtGwd46aNjeHuYSR4S\n6OywRETkCnX0dLC/Kptd5fspaCzEztkm8ZHe4YwKTmFq5CQ8XJxXsGnv7OHDHWfYsLeYXpud+HBf\nRiVaGRlrISrEG6NOLRUROY8KSyIict2IDvHhx3ek8l9vZfPce0f4/78ziiHhvtjtduqbO8kva6Kr\nu5fxI0Jw0RHOIiL9ht1u50xTMTvKdrOvKpuu3i4MGIj3jyXNmkxq0EiCPCxOjdFms7P7aCVvb86j\nsaWLQF93vj09gYxEq1O34omI9HcqLImIyHUlKTqAH902kufeO8wfVmaTFOVPflkjDX/X82JXbgUP\n3J6Ch5v+zImIOFNXbzf7Kg+xuWQbpS3lAAS4+TMjeioTw8YS4O7v5AihqbWLrTllbD5YRm1TB2YX\nI/Mmx3LzhBjczOqZJCJyKRpxi4jIdScj0cq9s4fx14+Ps/9kNX5ermQkWokP9+VkcQPZ+bU8/foB\nfroojQAfN2eHKyIy6NR3NLC1dBfbynbR2t2G0WAk3ZrC5PBxDLMMxWhw/qrSvNJGPt1fwr7jVfTa\n7LiajdyQFsbcibHqnSQicgVUWBIRkevSDWnhxIX54uFmItDX/dw2hZnjonhj4yk+O1jKv/9tHz9d\nmIbVqlOtREQcoaa9jnVnPmV3xX5sdhteZk9mxmRxQ8TEfrE6CSC/rJH3txaQW1AHQFigJ1mjIpiU\nHIanuz4eiYhcKf3mFBGR61ZUsPdXrpmMRu6emUiQnzsrN+fz9PL9PLJkLDFBnk6IUERkcKjvaODj\nM5+ys3wvNruNUM9gpkffwJiQUbiazM4OD4AzFU28v7WAnC9OeRseE8DcSbEMi/ZXDyURkaugwpKI\niAw4BoOBmyfEEODrxssfHeOpF3cxJsnKomkJBPlpe4OIyLVS217PJ0Vb2FG2mx57L8GeQdwSO4OM\nkLR+sd0N4FRJA2t3FpL9RUEpMdKP228YQlJ0gJMjExEZGFRYEhGRAWvCiFDCLF689Vke+05Uk51f\ny83jo9WQVUTkKpW1VLCxaDP7Kg9hs9sIcrcwJ24GY0LSMRmd//vVbrdz+HQta3cWcrKkEYCECD9u\ny4xjREyAViiJiFxDKiyJiMiAFhPqw28fyuSDLadYuTmfNdvPsP1wOffPHaHZahGRK3SmqYh1Zz7l\ncM0xAMK8QpgZk8Xo4DSnF5TaO3s4VdLI8aJ6cvJrKatpBSA1PpA5E2JIjOofPZ5ERAYaFZZERGTA\nMxoNTEoOY9RQKx/uPMOGPcX87s1DfOemoUzLiNDMtYjIJRQ1l/DR6Q0cqT0OQJxvDLNisxgZOMxp\nW97sdjvFVS0cOFlNbkEdBeXN2Ox2AExGA+OGBzNnQgzRITrAQUSkL6mwJCIig4aHmwsLb0wgLT6I\n5987zPKNJzlT0cQ9s5Iwuzh/64aISH9T2lLOR6c3kF2TC0C8Xxxzh8xgqH+8U4ryvTYbeSWNHDhZ\nw8FT1dQ0dgBgNBiIC/NhWEwAw6IDSIj005ZnEREHUWFJREQGncQof37x3bE8++5hth+uoKymlQdv\nT8Hi6+7s0ERE+oXa9no+OL2evZUHAIjzjWbukFkkBSQ4vKDU1d1L7pk6DpysJjuvlpb2bgA83EyM\nHxHCqKFBpAwJxMNNH21ERJxBv31FRGRQsvi68693ZfC39SfYcaSCX/11L/ffOoLkuEBnhyYi4jQt\nXa28l/cRm0u202PrIdI7nHnxsxlhSXJIQclut9PQ0kVhRTOFlc2cKW/iWFE9Xd02APy8XbkxPZyM\nRCvDYgJwMfWPk+dERAYzFZZERGTQcjWbuO+W4cSE+vD2pjx+/1Y2N4+P5vYbhujDiogMKja7jc9L\ndrJ220Zau9oIcPPn1iGzGBs6qk97KNntdkprWjlWWM/xwnrySxtpaus+7zkhFk8yEoPIGGolLtwX\no/riiYj0KyosiYjIoGYwGJgxJoqhkX68sDqXj3cXcbyogR/eNpJgfw9nhyci0ueq2qp57dhKTjee\nwdPswfz4OdwYORmzydxnr1lc1cLaXYUcPVNH898Vkiy+boxOtBId6kNMiA8xId74ebv1WRwiInL1\nVFgSEREBYkN9+eV3x/L6hpPszK3gqVf2MGNMFGkJQcSE+miGXEQGHJvdxubibaw5vY5uWw+jrCk8\nMOluupr77vddXVMH7209zY7DFdiBAB83Jo4MYVhMAMOjAwhSQV9E5LqjwpKIiMgXPNxc+P6tIxgR\nG8DrG0+yZvsZ1mw/g5+XKylDAhmdZCU1PtApJyGJiFxLNe21vHr0LU43nsHb7MU9I75NRnAqfu4+\nVDc3X/PXa+vo4ePdhWzYW0x3j41IqxcLsxJIjrPod6qIyHVOhSUREZF/MDkljFFDreSeqSMnr4ac\n07VsO1zOtsPl3DUjkemjI50doojIN3ayPo8XD79Oa08bo4JTuTNxPj6u3tf8dTq6esjOq2Xv8SoO\nn66lu8dGgI8bt2cOYVJyKEajCkoiIgOBCksiIiIX4OnuwthhwYwdFozNbud0aRPPvJPDW5vySIr2\nJ9J67T+EiYj0tc9LdrLy1GoMGFicdAeTI8Zf0/v39No4nF/L9iMV54pJAOFBXkxODmXa6EjczKZr\n+poiIuJcKiyJiIhcgtFgICHSj+/dPIw/vXuY/1mTy8/vGYOrPhyJyHWi19bL26dWs610F95mL76f\ncg8J/nHX7P6V9W1szS5n++FyGlu7gLPFpDFJVsYOCyZCxXgRkQFLhSUREZHLNCrRSlZGBJ8dKOXt\nz/K4e2aSs0MSEbmkitZK3jzxLnkNBUR4h/HDlO8S6BFw1fe12e3k5NeycW8xxwrrAfB0c2H66Egy\nU8OIDvG56tcQEZH+T4UlERGRK3BnVgInixrYdKCU5LhA0ocGOTskEZELauxs5qOCDewo24MdO+nW\nZJYMvxN3F7erum93Ty87jlSwYW8x5bVtACRF+XNDejijE61azSkiMsg4tLBUW1vLo48+SmdnJ93d\n3Tz22GOkpaVx/PhxnnzySQCSkpJ46qmnAHjxxRdZt24dBoOBhx56iKlTpzoyXBERka9wNZv44byR\n/OrVfby89hhP/dM4Anyu7kOaiMi11NHTyadFW/ik+HO6ersI8QxmfvzNpASNuKoT2Dq7e/l0fwkb\n9hTR1NaNyWhgUnIoM8dGaXWSiMgg5tDC0po1a7jtttu49dZb2bNnD3/84x95+eWX+fWvf82yZctI\nTU3l4YcfZsuWLQwZMoS1a9eyYsUKWlpaWLx4MVOmTMFk0gyIiIg4V2SwN3dOS2D5xpP85rV9jIi1\nEB/hR3y4L2FBXhh1dLaIOEleQwF/O7qC2o56fFy9uSNhLhPDxmIyfvMxdE+vja3ZZazZcYbGli48\n3VyYMyGG6aMjVVgXERHHFpa+973vnfu6vLyckJAQurq6KC0tJTU1FYCsrCx27txJdXU1mZmZuLq6\nYrFYiIiIIC8vj6Qk9bMQERHnm5YRQVltK9sPl7M15+x/AB5uLszPjOOm0ZFXtTJARORK9Np6WVuw\nkfWFnwEwMyaLWTHTrmrbW0+vjX3Hq3h/awFVDe24mo3MnRTL7HHReLqro4aIiJzl8L8I1dXV/OhH\nP6K1tZVXX32V+vp6fH19zz0eGBhIdXU1/v7+WCyWc9ctFgvV1dUqLImISL9gMBhYMjOJxTcNpbS6\nlfyyJk6XNpKdX8ubn5yisKKZe2YlqdeIiPS5yrZqXs1dQWFzMYHuAdw74jvE+8d+8/v9wwlvJqOB\n6aMjmTspFj8v12sXuIiIDAh9VlhauXIlK1euPO/a0qVLyczM5J133mHLli089thjPP300+c9x263\nX/B+F7v+9wICPHFx6bsBvNWqveOOpHw7lvLteMq5Y/VlvkND/BidHA5ATUM7v/nrHnYcqaCqsYNl\n947DGuDRZ6/dX+n9LdL3/l97dx4eZX3+e/w9SxayQpJJIGELCQSErOw7IuBW6xpUCl74s9fRYml7\nWsuSo4LHIwJafy71VFukUioSDS5UKQRkUWpIJMGwQwgIZCEkIQvZl5nzB21OKSghMM8k4fP6i/k+\nM0/uuZkrc3PzXWoaa9l6+ku+OPUlDfZGRnYfSuKAu+li9bzqe9ntDnYfOcvXKXvZe6wE+P8nvE0b\n3gtb1xvv95iIiLSO0xpLiYmJJCYmXjSWkZFBRUUF/v7+TJw4kXnz5hEQEEB5eXnLc4qKiggODiY4\nOJgTJ05cMv5Dyspqru+b+Dc2my/Fxeeddn+5mPJtLOXbeMq5sYzO91MPxvKXjUf4x/4z/OqVbcy5\nN5oBvboa9vNdzZn5VsOq7ZYvX05mZiZNTU08/vjjREdHM2/ePJqbm7HZbLz00ku4u7uzfv16Vq1a\nhdlsZvr06ZfUc+J6tU11bD+9ky9Of0ltUx2+bj7MHDSdoSGxV32vxqZm/rHvDBvTT3G2vBaAgb27\nMiE2lASd8CYiIq1g6FK41NRUDh48yOzZszly5Ag9evTAzc2Nfv36sXv3boYNG0ZqaiqzZs2ib9++\n/PnPf2bu3LmUlZVx9uxZIiMjjQxXRESkTdysFv7rzkH06e7L2i+O8dL7e3j8x4MZNvCH/4NExFl2\n7dpFTk4OycnJlJWVce+99zJ69GhmzJjB7bffziuvvEJKSgr33HMPb775JikpKbi5ufHAAw8wdepU\nuna9cRqj7VmzvZlteTtJ/W4b1U01eLt5cU/EHUzoOQYPy9UtUautb2L7nnxSvzlNRXUDVouJSXGh\nPHTbINy58koBERGRfzG0sTRnzhwWLFjA5s2baWhoYPHixQAkJSXx7LPPYrfbiY2NZcyYMQBMnz6d\nmTNnYjKZWLx4MWaz2chwRURE2sxkMjFlWC9Cg7x546N9/OHT/TzWNIgxQ3q4OjS5AQ0fPrzloBQ/\nPz9qa2tJT0/nueeeAy4cnrJy5UrCw8OJjo7G1/fCzLCEhASysrKYPHmyy2KXCwqqzrD6UDKnzufj\nZe3CXf1uY1LPMXhe5bK3yuoGNu8+zdasfGrrm/B0t3D7yN5MHd6Lrj4e2Gw+mlErIiJXxdDGUkBA\nAH/84x8vGY+MjGTNmjWXjM+aNYtZs2YZEZqIiIhT3NQ3gKceiuO/k7NZ8dkh6hvt3Bwf5uqw5AZj\nsVjw8vICICUlhQkTJrBz507c3S/McvnX4SklJSWXPTxFXKfZ3szmU9vZcGILzY5mRnYfygP978LL\nzeuq7lNcXsvGjFPs3FtIY5MdXy837pvQj8kJYXh5ujkpehERuRHonFAREREniwj1Z/5PEvjd2j2s\n3nSEuoYmbh/Zx9VhyQ1oy5YtpKSksHLlSqZNm9Yyfi2Hp4AOUHGWoyXHWZmdzPGyU3Tz9Od/DP8J\nQ0Ojr+oe3xVWsm5rDl9+m4/d7iC4WxfumxTJlJF98Pie/ZNu1Hy7ivJtLOXbeMq5sVyRbzWWRERE\nDNAr2If5P0ng5bXf8uG2XMrO1/PAxAhtjCuG+eqrr3jrrbdYsWIFvr6+eHl5UVdXh6en50WHp5SU\nlLS85uzZs8TFxV3x3jpA5fpxOBwcOneU1JPbyCk/DnDRLKXW5iInr5wNaSfJzi0FICzImztG9WH4\noGCsFjNMaIKeAAAZkElEQVSV5Zf/O7vR8u1qyrexlG/jKefGctUBKmosiYiIGKRHoDcLf5LA7z7I\nZsvuPPbllvLoHYNuqBPjxDXOnz/P8uXLeffdd1s24h4zZgybNm3i7rvvJjU1lfHjxxMbG8vTTz9N\nZWUlFouFrKwskpKSXBz9jaGhuYG9xQfYcmoHp6sKABgUMIBb+9xM/24RrbpHU7OdrKPFbNmdx7H8\nCgAiw/y5Y3QfYiICMZtMTotfRERuXGosiYiIGCioaxcWPzqcj788zuZvTrPsvSwmD+3J/RP74emu\nr2Vxjg0bNlBWVsavfvWrlrGlS5fy9NNPk5ycTGhoKPfccw9ubm785je/4bHHHsNkMvHkk0+2bOQt\n119VYzX7Sg6xt/gAh84dpdHeiAkTCcExTOtzM718W7cf2/maBnZ8W8C2PfmUna8HICYikDtG9VHj\nWkREnM7kaO3i+Q7AmVPsNIXPWMq3sZRv4ynnxmqv+T6WX8GfNxyisLSGQD8P4vvb6BfmR0SoP0H+\nnpg66OwCV03DFtdRDdZ6TfYm9pYc5OuCDA6fy8HBhVK8u1cwMbbBjO4xjGAv2xXvU1JeS3ZuKXtz\nSzl0soymZjse7hbGRffglqE96R5wdZt7/0tny3d7p3wbS/k2nnJuLC2FExERucFEhvmz+NHhfLLz\nBJu/yWNLZh5kXrjm5+XGhLhQ7pvQuiUwItK+nak+y9cFGaSfyaSqsRqAvn69ibMNISboJkK8g694\nj/rGZlIzTpFx6Cz5JdUt4z1t3oyPCWVsdA+8PFXei4iIsfTNIyIi4kJuVguJkyK5Z1w4J4uqOJ5f\nQW5BJYdPlfHZ1ycZ3DeAqN7dXB2miLRRbVMtH+V8xteF3wDg4+bNLb0mMCZ0ON29Q1p9nz05xazZ\nnENpZR1uVjMxEYHERgYR0y+QQH9PZ4UvIiJyRWosiYiItANuVguRYf5EhvkDkFtQwQt/yWTdjuMs\nnJnQYZfFidzIDpQeYc3hFMrrKwjz6cGtfSYTYxuMm7n1JXhxeS1rNh8lO7cUi9nE7aN6c9eYvtqT\nTURE2g19I4mIiLRDEaH+xPcPYk9OCdm5pcRFBrk6JBFppdqmWtblfEZa4TeYTWbuCJ/KbX0mYzFb\nWvV6u8PBsbwKdh0s4h/7CmlssjOwd1dmTosiNMjbydGLiIhcHTWWRERE2qn7JvTj25wSPtpxXEeF\ni3QADoeDzKJv+ejY51Q0VNLTJ5RZg6bT0ze0Va/PL67i6wNnyDhYRGnlhdPduvl6kDgpgpE3hWjm\nooiItEtqLImIiLRTYTYfRg/pztf7z5BxqIhRN3V3dUgi8j3yzhfwwdFPya04gdVs5c7wqdzayllK\n5VX1fLgtl7QDZwDwdLcwNro7o27qzsA+XbGYzc4OX0REpM3UWBIREWnH7h4XTvrBIj758gTDooKx\nWvQPTJH2pLqxhr8d38TO/F04cBAbNJj7+t9FUJeAK762qdnO5t2nWf+P76hvaKZPiC93ju5DTEQg\n7m6tWzYnIiLiamosiYiItGO2rl2YGBfK1qx8du4rZFJcmKtDEpF/Onwuh78cTKaioZIQr2AS+/+Y\nQYEDrvg6h8PB3txSkrce48y5Gny6uPHgbZFMiAnFbNZyNxER6VjUWBIREWnn7hrTl517C1m/8wSj\nB3fH3XrxrCXtuyJirMbmRtYf38jW019hNpm5q99tTO09sVXL3o6eLmfdjlxy8iowmeCWhJ7cMyEc\nb083AyIXERG5/tRYEhERaef8fTyYMqwXG3ad5Ge/23HRtW6+Hsy9P5q+3f1cFJ3IjSW/qpB3D7xP\nQfUZQrxszL7pYXr79bzi604VneejL4+zN7cUgLjIIO6b2I+eNh9nhywiIuJUaiyJiIh0AHeM6k1R\nWQ3VtY0tY3YH5Jwu53drv+W3D8fTO8TXhRGKdG71zQ2kfreVLad20ORoZnzYaO6LvBN3i/v3vsbh\ncHDwuzK27D7N3txSHEBUr67cPymCyDB/44IXERFxIjWWREREOgAvTzeevDf6kvF/7Ctk5eeHeHnt\nt8yfEU+YZj+IXFcOh4Oss9l8dOxzyusr6Orhz0NR9xIddNP3vqauoYm0/WfYkplHYWkNABFhftw9\nNpzB4QFavioiIp2KGksiIiId2NjoHjQ121m18Qgv/bO51CPQ29VhiXQKBVVn+ODoJ+SUH8dqsnBb\nn8lM6zsZj8vMUmq22zl0soxdB4rIOlpMXUMzFrOJ0YNDmDKsF+E9tFxVREQ6JzWWREREOriJcWE0\n2x38NfUoy9/fw4IZCYQEeLk6LJEO7UDpYVbsW02DvZHooJu4P/IubF6BFz3H4XBwvLCS9ANFZBw+\nS2V1AwCBfh5MG96LSfFhdPXxcEX4IiIihlFjSUREpBOYnNCT5mYH73+Rw4vvZfGrxBht6C3SRumF\nmfz18IdYTGYeGzKThOCYi64XllaTdqCI9INnKC6vA8Cnixs3x4cxanAIEWH+mLXcTUREbhBqLImI\niHQSU4f3wmw2sWbzUZa+l8XP7h5CbGSQq8MS6TAcDgdbTu3gk9wNeFm78ETMo0R07QtAU7Od9INF\nbNmdx8mi8wB4uFkYNTiEkYNCGBwegNVidmH0IiIirqHGkoiISCdyy9CeBPh68Pb6A7y+bi+zbo1i\nUlyYq8MSaffsDjsfHfuMbad30tXDnydjHyPUpzvVdY1s35PPlsw8KqoaMJtMxEYEMnJwCPGRNjzc\nLa4OXURExKXUWBIREelk4gfY+O2MeF5P2ctfNh6htKKOeyf009Ickf/Q0NzIkbIcvi3ez/6SQ1Q1\nVtPdO4Sfxz5GfY0776UeZee+Quobm/F0t3DriF5MGdqLQH9PV4cuIiLSbqixJCIi0glFhPrzv2YN\n5b8/yObztJPU1DUxc9oAHXMuNzy7w86hczmkFX7DgdLDNDRf2HDbz92X8WGjiTQP5931J9l3vBSA\nAD8P7h4XzoTYULw8VTqLiIj8J307ioiIdFLB3bxImjWUl9d+y7Y9+VgsJh6+pb+aS3JDOldXRlrh\nbtIKvqGsvhyA4C5BxNqGEOU/kLzvrGzbUUDquaMA9O/pz5RhvYjvH6S9k0RERH6AoY2l0tJS5s+f\nT319PY2NjSxcuJDY2FhmzZpFTU0NXl4XjkaeP38+Q4YMYcWKFWzcuBGTycTPf/5zJk6caGS4IiIi\nHZ6vlzu/eSiOl9bsYcvuPKxmM4k3R6i5JDeMyobzrMv5G5lF2Thw4GFxZ2zoSMaGjsBR7c/2b/N5\n7eApGhrtWC0mxg7pzi3DeupURRERkVYytLG0fv167r77bu666y4yMjJ47bXXWLlyJQAvvvgiAwYM\naHnu6dOn2bBhA2vXrqWqqooZM2Ywbtw4LBZtkCgiInI1/LzceerheJavyWJjxiksFhP3Tein5pJ0\nanaHnbSCb/g4dwO1TbX09AllYs+xhFkj2Z9bwapdZ/juTA4AQf6eTIoPY1xMD/y83F0cuYiISMdi\naGPp0UcfbflzYWEhISEh3/vc9PR0xo8fj7u7OwEBAYSFhXHs2DGioqKMCFVERKRT8fd256mH4lm2\nJovP005SUd1AnxBfvLtY8fF0w9fLnV4hPtrgWzqFwuoi3j+8jtyK7/C0eDCtx+00nOnJZ5+Vcubc\nHgDMJhMxEYFMTghjSHggZrM++yIiIm1h+B5LxcXFPPHEE1RXV7Nq1aqW8ddff52ysjIiIiJISkqi\npKSEgICAlusBAQEUFxersSQiItJG3Xw9mPdwPEvfy2Ln3kJ2UnjR9ZiIQH5+X7T2k5EOq6yunE0n\nt/F1QQbNjmZ6e/Sn4eRAPk1rBE7jbjWTMMBGfP8gYiOD8Oni5uqQRUREOjynNZY+/PBDPvzww4vG\n5s6dy/jx41m3bh07duxg4cKFrFy5kkceeYSoqCh69+7NokWLeO+99y65n8PhuOLP7NbNC6vVeUvl\nbDZfp91bLqV8G0v5Np5ybizl+wKbzZf/O/8Wjp4s43xtA+erG6isaWDPkWL25payZusx/udDCdc8\ne0P5FiNV1FeSenIbOwvSabI34YkfjpNRHCkKBBoZEh7AhNhQoiMC8XDTtgoiIiLXk9MaS4mJiSQm\nJl40lpGRQUVFBf7+/kycOJF58+YBMHXq1JbnTJ48mQ0bNjBy5EhOnDjRMl5UVERwcPAP/syysprr\n+A4uZrP5Ulx83mn3l4sp38ZSvo2nnBtL+b5UaDdP6ObZ8njsoBBeXruH7Zl5uJtNPDg5ss17MDkz\n32pYyb9rtjfz+YnNfHHqS5ocTZgavGjIG0htSSjenu7cNiKUifGhhHTzcnWoIiIinZahc91TU1P5\n+OOPAThy5Ag9evTA4XAwe/ZsKisrgQt7K/Xv359Ro0axfft2GhoaKCoq4uzZs0RGRhoZroiIyA3D\nw93CLxNj6RHoReo3p9mYfsrVIYn8oPKaKv7PV39g08mtNNRZaTgxGMfhSQwPGcqce2J45edjmT45\nUk0lERERJzN0j6U5c+awYMECNm/eTENDA4sXL8ZkMjF9+nRmz55Nly5dCAkJYe7cuXTp0oXp06cz\nc+ZMTCYTixcvxmzWng8iIiLO4tPFjd88GMcLqzP5cHsuPl5ujI8JdXVYIhepb2jmb5n72Vb+CXhU\n46iwMbzLrYyc3JOo3l21R5iIiIjBTI7WbF7UQThzmYOWURhL+TaW8m085dxYyvfVKSip5sW/ZlJT\n38Sk+DDuHd+vVZscV1TVszHjFCaLhekT+zklNi2FM8aSJUvIzs7GZDKRlJRETEzMDz7fiBqsvqGZ\nrXvy2LB/N829MjFZm+htiuXxEffT1dvzyjeSVtHvS2Mp38ZSvo2nnBvLVdsRGH4qnIiIiLRvoUHe\n/PrBOP70t4Nsy8on42AR907ox8S4UCyXmT18vqaBv6efYmtmHg1NdvqF+bsgarleMjIyOHnyJMnJ\nyeTm5pKUlERycrLL4qlvbObz9GNsOrybeq8CrH3PYDFZSIx8gAm9R7gsLhEREblAjSURERG5RHgP\nP/73YyP4IjOPT3ee4K+pR9m+p4Bx0d0x/duJcWWV9Wz7Np/6hma6+Xrw4Ji+3Dt5AOVl1S6MXq5F\nWloaU6ZMASAiIoKKigqqqqrw8fExPJa/Zmwj/UwmzV7FmHo5sAJBnoHMHvww4f69DY9HRERELqXG\nkoiIiFyW1WLm1hG9GTW4O+t25LJzbyFrtx675Hl+3u7cN6Efk+JCcbNacLNqj5uOrKSkhMGDB7c8\nDggIoLi4+AcbS926eWG1Wq5rHKXnK/n6/N8x+YC/OYhJkcMYHz6U3v5hbT6xUFpHS06NpXwbS/k2\nnnJuLFfkW40lERER+UH+3u781x2DuHV4L86cq7nomsViZlCfbni4Xd+mgrQfrdmOs6ys5orPuXom\nHo34KVF9euBn+meR3AglJVVO+FnyL9oPxVjKt7GUb+Mp58bSHksiIiLSroXZfAizGb8cSowVHBxM\nSUlJy+OzZ89is9lcEsvwvgP0jxIREZF2TnPVRURERKTF2LFj2bRpEwAHDhwgODjYJfsriYiISMeg\nGUsiIiIi0iIhIYHBgwfz0EMPYTKZWLRokatDEhERkXZMjSURERERuchTTz3l6hBERESkg9BSOBER\nERERERERaRM1lkREREREREREpE3UWBIRERERERERkTZRY0lERERERERERNpEjSUREREREREREWkT\nNZZERERERERERKRN1FgSEREREREREZE2MTkcDoergxARERERERERkY5HM5ZERERERERERKRN1FgS\nEREREREREZE2UWNJRERERERERETaRI0lERERERERERFpEzWWRERERERERESkTdRYEhERERERERGR\nNrG6OoCOYMmSJWRnZ2MymUhKSiImJsbVIXU6y5cvJzMzk6amJh5//HGio6OZN28ezc3N2Gw2Xnrp\n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\nREREREREpE3UWBIRERERERERkTZRY0lERERERERERNpEjSUREREREREREWkTNZZERERERERERKRN\n/h93E2O5wOtcnAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "<Figure size 1440x360 with 2 Axes>" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "AcvlusnyifLg", + "colab_type": "code", + "outputId": "087a5537-dcdd-402d-85b6-d0755d86e73f", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 293 + } + }, + "cell_type": "code", + "source": [ + "HTML(display_videos('random100.mp4'))" + ], + "execution_count": 12, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "<video alt=\"test\" controls>\n", + " <source src=\"data:video/mp4;base64,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AAEAAAAAAAAAAQAAAgAAAAABAAAIAAAAAAIAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAQAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAGAAAAAAEAAAIAAAAAAQAABAAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAIAAAQAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAGAAAAAAEAAAIAAAAAAQAABgAAAAABAAACAAAAAAEAAAQAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAGAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAADAAAEAAAAAAEAAAYAAAAAAQAAAgAAAAACAAAEAAAAAAEAAAgAAAAAAgAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAIAAAQAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAIAAAAAAIAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAGAAAAAAEAAAIAAAAAAwAABAAAAAABAAAIAAAAAAIAAAIAAAAAAQAABgAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAABgAAAAABAAACAAAAAAIAAAQAAAAAAQAABgAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAGAAAAAAEAAAIAAAAAAQAACAAAAAACAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAABgAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAEAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAADAAAEAAAAAAEAAAgAAAAAAgAAAgAAAAABAAAEAAAAAAEAAAgAAAAAAgAAAgAAAAABAAAIAAAAAAIAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAGAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAEAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAHHN0c2MAAAAAAAAAAQAAAAEAAADKAAAAAQAAAzxzdHN6AAAAAAAAAAAAAADKAAAFpwAAABcAAAAUAAAAEgAAAB4AAAAsAAAAFQAAABMAAAAUAAAAJAAAABgAAAAUAAAAFAAAACMAAAAYAAAAEwAAABQAAAAgAAAAFgAAABQAAAATAAAAIQAAABQAAAAdAAAAHwAAABQAAAATAAAAFAAAACAAAAATAAAAHQAAAB4AAAAUAAAAFAAAABMAAAAeAAAAEwAAABMAAAAhAAAAGAAAABQAAAAUAAAAHQAAABQAAAAUAAAAEwAAAB4AAAAVAAAAEAAAABMAAAAUAAAAIAAAABQAAAAdAAAAHgAAABQAAAATAAAAFAAAACAAAAAUAAAALgAAABQAAAAUAAAAEwAAAB0AAAAcAAAAIQAAABQAAAAUAAAAEwAAACAAAAAUAAAAIAAAABQAAAAdAAAAHwAAABQAAAATAAAAEwAAACAAAAAUAAAAHAAAABQAAAATAAAAFAAAAB0AAAAcAAAAHAAAACEAAAAUAAAAHQAAAB0AAAAdAAAAEwAAABEAAAAbAAAAEgAAABMAAAAUAAAAIQAAABQAAAAVAAAAEAAAABQAAAAUAAAAHgAAAB8AAAAeAAAAFAAAABMAAAAUAAAAHgAAABUAAAAUAAAAFgAAABAAAAAUAAAAFAAAACEAAAAUAAAAHAAAAB0AAAAdAAAAIAAAABUAAAASAAAAIQAAABQAAAAcAAAAFAAAABQAAAATAAAAIAAAABQAAAAcAAAAHAAAACEAAAAUAAAAIAAAABQAAAAVAAAAEAAAABQAAAAUAAAAIAAAABMAAAAgAAAAFAAAAB0AAAAWAAAAFAAAACAAAAAUAAAAEwAAABQAAAAeAAAAFAAAACAAAAAUAAAAHQAAAB8AAAAUAAAAFAAAABMAAAAdAAAAFAAAABMAAAAUAAAAHQAAABwAAAAcAAAAHAAAABMAAAATAAAAHgAAAB0AAAATAAAAEQAAAB4AAAAVAAAAEgAAAB0AAAASAAAAFAAAABQAAAAhAAAAEwAAABUAAAAQAAAAEwAAABMAAAAWAAAAEAAAABQAAAAUAAAAIQAAABQAAAAcAAAAHgAAACcAAAAUAAAAKQAAABRzdGNvAAAAAAAAAAEAAAAwAAAAYnVkdGEAAABabWV0YQAAAAAAAAAhaGRscgAAAAAAAAAAbWRpcmFwcGwAAAAAAAAAAAAAAAAtaWxzdAAAACWpdG9vAAAAHWRhdGEAAAABAAAAAExhdmY1Ny44My4xMDA=\" type=\"video/mp4\" />\n", + " </video>" + ], + "text/plain": [ + "<IPython.core.display.HTML object>" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 12 + } + ] + }, + { + "metadata": { + "id": "GaQDlNZHgDMo", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "***\n", + "## DQN" + ] + }, + { + "metadata": { + "id": "a-ssT9wZgDMs", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "Let us assume here that $T=\\infty$.\n", + "\n", + "***\n", + "__Question 5__ Let $\\pi$ be a policy, show that:\n", + "\n", + "\\begin{equation*}\n", + "Q^{\\pi}(s,a)=E_{(s',a')\\sim p(.|s,a)}[r(s,a)+\\gamma Q^{\\pi}(s',a')]\n", + "\\end{equation*}\n", + "\n", + "Then, show that for the optimal policy $\\pi^*$ (we assume its existence), the following holds: \n", + "\n", + "\\begin{equation*}\n", + "Q^{*}(s,a)=E_{s'\\sim \\pi^*(.|s,a)}[r(s,a)+\\gamma\\max_{a'}Q^{*}(s',a')].\n", + "\\end{equation*}\n", + "Finally, deduce that a plausible objective is:\n", + "\n", + "\\begin{equation*}\n", + "\\mathcal{L}(\\theta)=E_{s' \\sim \\pi^*(.|s,a)}\\Vert r+\\gamma\\max\\max_{a'}Q(s',a',\\theta)-Q(s,a,\\theta)\\Vert^{2}.\n", + "\\end{equation*}\n", + "\n", + "\n" + ] + }, + { + "metadata": { + "id": "WBzv5T5cgDMx", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "---\n", + "\n", + "**ANSWER:**\n", + "\n", + "We note the $Q$-function:\n", + "\n", + "\\begin{equation*}Q^\\pi(s,a)=E_{p^{\\pi}}[\\sum_{t\\geq0}\\gamma^{t}r(s_{t},a_{t})|s_{0}=s,a_{0}=a] \\> .\n", + "\\end{equation*}\n", + "\n", + "We obtain:\n", + "\n", + "\\begin{equation*}\n", + "\\begin{array}{rcl}\n", + "Q^\\pi(s,a)&=&E_{p^{\\pi}}[\\sum_{t\\geq0}\\gamma^{t}r(s_{t},a_{t})|s_{0}=s,a_{0}=a] \\> .\\\\\n", + "&=&E_{p^{\\pi}}[\\gamma^{0}r(s_{0},a_{0}) + \\gamma \\sum_{t\\geq1}\\gamma^{t-1}r(s_{t},a_{t})|s_{0}=s,a_{0}=a] \\>\\\\\n", + "&=&E_{p^{\\pi}}[r(s,a) + \\gamma \\sum_{t\\geq0}\\gamma^{t}r(s_{t+1},a_{t+1})|s_{0}=s,a_{0}=a] \\>\\\\\n", + "&=&E_{p^{\\pi}}[r(s,a) + \\gamma Q^\\pi(s_1,a_1)|s_{0}=s,a_{0}=a] \\>\\\\\n", + "&=&E_{(s',a')\\sim p^\\pi(.|s,a)}[r(s,a) + \\gamma Q^\\pi(s',a')] \\>\\\\\n", + "\\end{array}\n", + "\\end{equation*}\n", + "\n", + "Moreover, the optimal Q function is:\n", + "\\begin{equation*}\n", + "Q^*(s,a)=\\max_{\\pi}Q^\\pi(s,a) \\> .\n", + "\\end{equation*}\n", + "\n", + "For the optimal policy $\\pi^*$ (we assume its existence), we obtain:\n", + "\n", + "\\begin{equation*}\n", + "\\begin{array}{rcl}\n", + "Q^*(s,a)&=&\\max_{\\pi}Q^\\pi(s,a) \\> \\\\\n", + "&=&\\max_{\\pi}E_{(s',a')\\sim p^\\pi(.|s,a)}[r(s,a) + \\gamma Q^\\pi(s',a')] \\>\\\\\n", + "&=&r(s,a) + \\max_{\\pi} E_{(s',a')\\sim p^\\pi(.|s,a)}[\\gamma Q^\\pi(s',a')] \\>\\\\\n", + "&=&r(s,a) + E_{(s',a')\\sim p^{\\pi^*}(.|s,a)}[\\gamma Q^\\pi(s',a')] \\>\\\\\n", + "&=&r(s,a) + E_{s'\\sim p^{\\pi^*}(.|s,a)}[\\gamma \\max_{a'}Q^\\pi(s',a')] \\>\\\\\n", + "&=&E_{s'\\sim p^{\\pi^*}(.|s,a)}[r(s,a) + \\gamma \\max_{a'}Q^\\pi(s',a')] \\>\\\\\n", + "\\end{array}\n", + "\\end{equation*}" + ] + }, + { + "metadata": { + "id": "-ijRIh-cgDM1", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "---\n", + "DQN-learning algorithm relies on these derivations to train the parameters $\\theta$ of a Deep Neural Network:\n", + "\n", + "1. At the state $s_t$, select the action $a_t$ with best reward using $Q_t$ and store the results;\n", + "\n", + "2. Obtain the new state $s_{t+1}$ from the environment $p$;\n", + "\n", + "3. Store $(s_t,a_t,s_{t+1})$;\n", + "\n", + "4. Obtain $Q_{t+1}$ by minimizing $\\mathcal{L}$ from a recovered batch from the previously stored results.\n", + "\n", + "***\n", + "__Question 6__ Implement the class ```Memory``` that stores moves (in a replay buffer) via ```remember``` and provides a ```random_access``` to these. Specify a maximum memory size to avoid side effects. You can for example use a ```list()``` and set by default ```max_memory=100```." + ] + }, + { + "metadata": { + "id": "mw9uEd1mgDM5", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "class Memory(object):\n", + " def __init__(self, max_memory=100):\n", + " self.max_memory = max_memory\n", + " self.memory = list()\n", + "\n", + " def remember(self, m):\n", + " # If the memory is not limited by the maximum memory size\n", + " if len(self.memory)<self.max_memory :\n", + " # Store the next move\n", + " self.memory.append(m)\n", + " # If the memory is completed\n", + " else :\n", + " # Delete the older move and Store the new one\n", + " del self.memory[0]\n", + " self.memory.append(m)\n", + "\n", + " def random_access(self):\n", + " return self.memory[np.random.randint(0, len(self.memory), size=1)[0]]" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "CGgrCtfmgDNO", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "***\n", + "The pipeline we will use for training is given below:" + ] + }, + { + "metadata": { + "id": "EJNTINUpgDNY", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "def train(agent,env,epoch,prefix=''):\n", + " # Number of won games\n", + " score = 0\n", + " loss = 0\n", + " history = {'score':[0],'win':[0],'lose':[0],'loss':[0]}\n", + "\n", + " for e in range(1,epoch+1):\n", + " # At each epoch, we restart to a fresh game and get the initial state\n", + " state = env.reset()\n", + " # This assumes that the games will terminate\n", + " game_over = False\n", + "\n", + " win = 0\n", + " lose = 0\n", + "\n", + " while not game_over:\n", + " # The agent performs an action\n", + " action = agent.act(state)\n", + "\n", + " # Apply an action to the environment, get the next state, the reward\n", + " # and if the games end\n", + " prev_state = state\n", + " state, reward, game_over = env.act(action)\n", + "\n", + " # Update the counters\n", + " if reward > 0:\n", + " win = win + reward\n", + " if reward < 0:\n", + " lose = lose -reward\n", + "\n", + " # Apply the reinforcement strategy\n", + " loss = agent.reinforce(prev_state, state, action, reward, game_over)\n", + "\n", + " # Save as a mp4\n", + " if e % 10 == 0:\n", + " env.draw(prefix+str(e))\n", + "\n", + " # Update stats\n", + " score += win-lose\n", + " history['score'].append(score)\n", + " history['win'].append(history['win'][-1]+win)\n", + " history['lose'].append(history['lose'][-1]+lose)\n", + "\n", + " print(\"Epoch {:03d}/{:03d} | Loss {:.4f} | Win/lose count {}/{} ({})\"\n", + " .format(e, epoch, loss, win, lose, win-lose))\n", + " agent.save(name_weights=prefix+'model.h5',name_model=prefix+'model.json')\n", + " \n", + " return history" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "kRMeqBLfgDNm", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "***\n", + "__Question 7__ Implement the DQN training algorithm using a cascade of fully connected layers. You can use different learning rate, batch size or memory size parameters. In particular, the loss might oscillate while the player will start to win the games. You have to find a good criterium." + ] + }, + { + "metadata": { + "id": "GXQ-ZPuJGbDr", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "from keras.layers import Flatten, Dropout" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "NyA6cy0zgDNq", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "class DQN(Agent):\n", + " def __init__(self, grid_size, epsilon = 0.1, memory_size=100, batch_size = 16, n_state=2):\n", + " super(DQN, self).__init__(epsilon = epsilon)\n", + "\n", + " # Discount for Q learning\n", + " self.discount = 0.99\n", + " \n", + " self.grid_size = grid_size\n", + " \n", + " # number of state\n", + " self.n_state = n_state\n", + "\n", + " # Memory\n", + " self.memory = Memory(memory_size)\n", + " \n", + " # Batch size when learning\n", + " self.batch_size = batch_size\n", + "\n", + " def learned_act(self, s):\n", + " \"\"\" Act via the policy of the agent, from a given state s\n", + " it proposes an action a\"\"\"\n", + " a = self.model.predict(np.array([s]))\n", + " return np.argmax(a)\n", + "\n", + " def reinforce(self, s_, n_s_, a_, r_, game_over_):\n", + " # Two steps: first memorize the states, second learn from the pool\n", + "\n", + " self.memory.remember([s_, n_s_, a_, r_, game_over_])\n", + " \n", + " input_states = np.zeros((self.batch_size,5,5,self.n_state))\n", + " target_q = np.zeros((self.batch_size, 4))\n", + " \n", + " for i in range(self.batch_size):\n", + " ######## FILL IN\n", + " [s, n_s, a, r, game_over] = self.memory.random_access()\n", + " input_states[i] = s\n", + " \n", + " target_q[i] = self.model.predict(np.array([s]))\n", + " if game_over : #game_over_:\n", + " ######## FILL IN\n", + " target_q[i,a] = r\n", + " else:\n", + " ######## FILL IN\n", + " target_q[i,a] = r + self.discount*np.max(self.model.predict(np.array([n_s])))\n", + " \n", + " ######## FILL IN\n", + " # HINT: Clip the target to avoid exploiding gradients.. -- clipping is a bit tighter\n", + " target_q = np.clip(target_q, -3, 3)\n", + "\n", + " l = self.model.train_on_batch(input_states, target_q)\n", + "\n", + " return l\n", + "\n", + " def save(self,name_weights='model.h5',name_model='model.json'):\n", + " self.model.save_weights(name_weights, overwrite=True)\n", + " with open(name_model, \"w\") as outfile:\n", + " json.dump(self.model.to_json(), outfile)\n", + " \n", + " def load(self,name_weights='model.h5',name_model='model.json'):\n", + " with open(name_model, \"r\") as jfile:\n", + " model = model_from_json(json.load(jfile))\n", + " model.load_weights(name_weights)\n", + " model.compile(\"sgd\", \"mse\")\n", + " self.model = model\n", + "\n", + " \n", + "class DQN_FC(DQN):\n", + " def __init__(self, *args, lr=0.1,**kwargs):\n", + " super(DQN_FC, self).__init__( *args,**kwargs)\n", + " \n", + " # NN Model\n", + " \n", + " ####### FILL IN\n", + " model = Sequential()\n", + " model.add(Flatten())\n", + " model.add(Dense(32, input_dim=(5*5*self.n_state)))\n", + " model.add(Dropout(0.1))\n", + " model.add(Dense(4))#, activation='relu'))\n", + " \n", + " model.compile(sgd(lr=lr, decay=1e-4, momentum=0.0), \"mse\")\n", + " self.model = model\n", + " " + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "y5dw6hqlgDN4", + "colab_type": "code", + "outputId": "ce4287f6-4020-4d8e-9404-11a70d2dc59d", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1717 + } + }, + "cell_type": "code", + "source": [ + "env = Environment(grid_size=size, max_time=T, temperature=0.3)\n", + "agent = DQN_FC(size, lr=.01, epsilon = 0.1, memory_size=2000, batch_size = 32)\n", + "history = train(agent, env, epochs_train, prefix='fc_train')" + ], + "execution_count": 17, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Epoch 001/100 | Loss 0.0667 | Win/lose count 5.0/4.0 (1.0)\n", + "Epoch 002/100 | Loss 0.0804 | Win/lose count 5.0/5.0 (0.0)\n", + "Epoch 003/100 | Loss 0.0521 | Win/lose count 2.5/7.0 (-4.5)\n", + "Epoch 004/100 | Loss 0.0747 | Win/lose count 5.5/9.0 (-3.5)\n", + "Epoch 005/100 | Loss 0.0765 | Win/lose count 6.5/5.0 (1.5)\n", + "Epoch 006/100 | Loss 0.0581 | Win/lose count 2.0/1.0 (1.0)\n", + "Epoch 007/100 | Loss 0.0669 | Win/lose count 4.5/11.0 (-6.5)\n", + "Epoch 008/100 | Loss 0.0554 | Win/lose count 5.0/9.0 (-4.0)\n", + "Epoch 009/100 | Loss 0.0364 | Win/lose count 5.0/3.0 (2.0)\n", + "Epoch 010/100 | Loss 0.0514 | Win/lose count 2.5/2.0 (0.5)\n", + "Epoch 011/100 | Loss 0.0523 | Win/lose count 3.0/2.0 (1.0)\n", + "Epoch 012/100 | Loss 0.0336 | Win/lose count 11.0/5.0 (6.0)\n", + "Epoch 013/100 | Loss 0.0224 | Win/lose count 6.0/3.0 (3.0)\n", + "Epoch 014/100 | Loss 0.0249 | Win/lose count 7.5/4.0 (3.5)\n", + "Epoch 015/100 | Loss 0.0337 | Win/lose count 3.5/2.0 (1.5)\n", + "Epoch 016/100 | Loss 0.0428 | Win/lose count 8.5/6.0 (2.5)\n", + "Epoch 017/100 | Loss 0.0504 | Win/lose count 2.0/2.0 (0.0)\n", + "Epoch 018/100 | Loss 0.0297 | Win/lose count 2.0/2.0 (0.0)\n", + "Epoch 019/100 | Loss 0.0224 | Win/lose count 5.5/2.0 (3.5)\n", + "Epoch 020/100 | Loss 0.0287 | Win/lose count 6.0/6.0 (0.0)\n", + "Epoch 021/100 | Loss 0.0261 | Win/lose count 5.0/2.0 (3.0)\n", + "Epoch 022/100 | Loss 0.0267 | Win/lose count 6.5/2.0 (4.5)\n", + "Epoch 023/100 | Loss 0.0333 | Win/lose count 4.5/3.0 (1.5)\n", + "Epoch 024/100 | Loss 0.0279 | Win/lose count 3.0/3.0 (0.0)\n", + "Epoch 025/100 | Loss 0.0251 | Win/lose count 6.0/6.0 (0.0)\n", + "Epoch 026/100 | Loss 0.0350 | Win/lose count 7.0/4.0 (3.0)\n", + "Epoch 027/100 | Loss 0.0252 | Win/lose count 5.0/2.0 (3.0)\n", + "Epoch 028/100 | Loss 0.0322 | Win/lose count 3.5/4.0 (-0.5)\n", + "Epoch 029/100 | Loss 0.0220 | Win/lose count 1.5/1.0 (0.5)\n", + "Epoch 030/100 | Loss 0.0188 | Win/lose count 2.0/2.0 (0.0)\n", + "Epoch 031/100 | Loss 0.0288 | Win/lose count 6.0/5.0 (1.0)\n", + "Epoch 032/100 | Loss 0.0278 | Win/lose count 4.0/0 (4.0)\n", + "Epoch 033/100 | Loss 0.0168 | Win/lose count 9.5/2.0 (7.5)\n", + "Epoch 034/100 | Loss 0.0151 | Win/lose count 2.5/1.0 (1.5)\n", + "Epoch 035/100 | Loss 0.0121 | Win/lose count 3.5/2.0 (1.5)\n", + "Epoch 036/100 | Loss 0.0234 | Win/lose count 5.5/4.0 (1.5)\n", + "Epoch 037/100 | Loss 0.0180 | Win/lose count 3.0/1.0 (2.0)\n", + "Epoch 038/100 | Loss 0.0209 | Win/lose count 2.5/2.0 (0.5)\n", + "Epoch 039/100 | Loss 0.0107 | Win/lose count 6.5/5.0 (1.5)\n", + "Epoch 040/100 | Loss 0.0175 | Win/lose count 5.0/0 (5.0)\n", + "Epoch 041/100 | Loss 0.0138 | Win/lose count 2.5/1.0 (1.5)\n", + "Epoch 042/100 | Loss 0.0095 | Win/lose count 8.0/6.0 (2.0)\n", + "Epoch 043/100 | Loss 0.0131 | Win/lose count 5.5/2.0 (3.5)\n", + "Epoch 044/100 | Loss 0.0108 | Win/lose count 5.0/5.0 (0.0)\n", + "Epoch 045/100 | Loss 0.0138 | Win/lose count 7.5/3.0 (4.5)\n", + "Epoch 046/100 | Loss 0.0099 | Win/lose count 4.5/5.0 (-0.5)\n", + "Epoch 047/100 | Loss 0.0155 | Win/lose count 9.5/1.0 (8.5)\n", + "Epoch 048/100 | Loss 0.0186 | Win/lose count 8.5/6.0 (2.5)\n", + "Epoch 049/100 | Loss 0.0209 | Win/lose count 6.0/0 (6.0)\n", + "Epoch 050/100 | Loss 0.0110 | Win/lose count 0.5/1.0 (-0.5)\n", + "Epoch 051/100 | Loss 0.0161 | Win/lose count 7.5/4.0 (3.5)\n", + "Epoch 052/100 | Loss 0.0172 | Win/lose count 9.0/2.0 (7.0)\n", + "Epoch 053/100 | Loss 0.0136 | Win/lose count 7.0/4.0 (3.0)\n", + "Epoch 054/100 | Loss 0.0130 | Win/lose count 6.5/4.0 (2.5)\n", + "Epoch 055/100 | Loss 0.0102 | Win/lose count 7.5/3.0 (4.5)\n", + "Epoch 056/100 | Loss 0.0127 | Win/lose count 4.0/3.0 (1.0)\n", + "Epoch 057/100 | Loss 0.0149 | Win/lose count 8.0/5.0 (3.0)\n", + "Epoch 058/100 | Loss 0.0076 | Win/lose count 7.5/4.0 (3.5)\n", + "Epoch 059/100 | Loss 0.0132 | Win/lose count 2.5/1.0 (1.5)\n", + "Epoch 060/100 | Loss 0.0181 | Win/lose count 9.0/2.0 (7.0)\n", + "Epoch 061/100 | Loss 0.0129 | Win/lose count 5.5/2.0 (3.5)\n", + "Epoch 062/100 | Loss 0.0113 | Win/lose count 3.0/4.0 (-1.0)\n", + "Epoch 063/100 | Loss 0.0108 | Win/lose count 4.0/2.0 (2.0)\n", + "Epoch 064/100 | Loss 0.0127 | Win/lose count 5.0/2.0 (3.0)\n", + "Epoch 065/100 | Loss 0.0155 | Win/lose count 2.0/4.0 (-2.0)\n", + "Epoch 066/100 | Loss 0.0092 | Win/lose count 6.5/5.0 (1.5)\n", + "Epoch 067/100 | Loss 0.0073 | Win/lose count 7.0/1.0 (6.0)\n", + "Epoch 068/100 | Loss 0.0107 | Win/lose count 7.0/7.0 (0.0)\n", + "Epoch 069/100 | Loss 0.0078 | Win/lose count 2.5/1.0 (1.5)\n", + "Epoch 070/100 | Loss 0.0188 | Win/lose count 10.5/2.0 (8.5)\n", + "Epoch 071/100 | Loss 0.0100 | Win/lose count 6.5/3.0 (3.5)\n", + "Epoch 072/100 | Loss 0.0082 | Win/lose count 4.0/2.0 (2.0)\n", + "Epoch 073/100 | Loss 0.0181 | Win/lose count 6.0/2.0 (4.0)\n", + "Epoch 074/100 | Loss 0.0121 | Win/lose count 6.0/3.0 (3.0)\n", + "Epoch 075/100 | Loss 0.0112 | Win/lose count 3.0/0 (3.0)\n", + "Epoch 076/100 | Loss 0.0095 | Win/lose count 4.5/2.0 (2.5)\n", + "Epoch 077/100 | Loss 0.0237 | Win/lose count 2.0/0 (2.0)\n", + "Epoch 078/100 | Loss 0.0084 | Win/lose count 8.5/2.0 (6.5)\n", + "Epoch 079/100 | Loss 0.0140 | Win/lose count 5.5/3.0 (2.5)\n", + "Epoch 080/100 | Loss 0.0038 | Win/lose count 4.0/1.0 (3.0)\n", + "Epoch 081/100 | Loss 0.0070 | Win/lose count 5.5/3.0 (2.5)\n", + "Epoch 082/100 | Loss 0.0086 | Win/lose count 4.0/1.0 (3.0)\n", + "Epoch 083/100 | Loss 0.0140 | Win/lose count 3.0/5.0 (-2.0)\n", + "Epoch 084/100 | Loss 0.0099 | Win/lose count 7.0/2.0 (5.0)\n", + "Epoch 085/100 | Loss 0.0055 | Win/lose count 6.0/2.0 (4.0)\n", + "Epoch 086/100 | Loss 0.0144 | Win/lose count 1.5/3.0 (-1.5)\n", + "Epoch 087/100 | Loss 0.0068 | Win/lose count 5.5/1.0 (4.5)\n", + "Epoch 088/100 | Loss 0.0152 | Win/lose count 3.0/3.0 (0.0)\n", + "Epoch 089/100 | Loss 0.0085 | Win/lose count 4.0/0 (4.0)\n", + "Epoch 090/100 | Loss 0.0118 | Win/lose count 4.0/5.0 (-1.0)\n", + "Epoch 091/100 | Loss 0.0100 | Win/lose count 4.5/1.0 (3.5)\n", + "Epoch 092/100 | Loss 0.0195 | Win/lose count 1.5/1.0 (0.5)\n", + "Epoch 093/100 | Loss 0.0064 | Win/lose count 13.0/3.0 (10.0)\n", + "Epoch 094/100 | Loss 0.0105 | Win/lose count 4.0/5.0 (-1.0)\n", + "Epoch 095/100 | Loss 0.0110 | Win/lose count 4.0/0 (4.0)\n", + "Epoch 096/100 | Loss 0.0087 | Win/lose count 6.0/3.0 (3.0)\n", + "Epoch 097/100 | Loss 0.0091 | Win/lose count 3.0/6.0 (-3.0)\n", + "Epoch 098/100 | Loss 0.0063 | Win/lose count 7.0/3.0 (4.0)\n", + "Epoch 099/100 | Loss 0.0091 | Win/lose count 6.0/1.0 (5.0)\n", + "Epoch 100/100 | Loss 0.0139 | Win/lose count 3.5/2.0 (1.5)\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "UqIK_wR9EvvD", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 349 + }, + "outputId": "adb5a2f7-c7ce-405d-91dc-cf39bf1cdd24" + }, + "cell_type": "code", + "source": [ + "visualization_score(history)" + ], + "execution_count": 18, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n89MAAAAASUVORK5CYII=\n", + "text/plain": [ + "<Figure size 1440x360 with 2 Axes>" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "SOcW1b29kG0p", + "colab_type": "code", + "outputId": "c31337ea-2a54-4ec7-8c8e-2078fb2141a6", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 293 + } + }, + "cell_type": "code", + "source": [ + "HTML(display_videos('fc_train100.mp4'))" + ], + "execution_count": 50, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "<video alt=\"test\" controls>\n", + " <source src=\"data:video/mp4;base64,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GHN0dHMAAAAAAAAAAQAAAMoAAAIAAAAAFHN0c3MAAAAAAAAAAQAAAAEAAAYgY3R0cwAAAAAAAADCAAAABwAABAAAAAABAAAIAAAAAAIAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAEAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAEAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACAAAAAACAAACAAAAAAEAAAQAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAABAAAAAABAAAGAAAAAAEAAAIAAAAAAQAABgAAAAABAAACAAAAAAEAAAQAAAAAAQAABgAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAABgAAAAABAAACAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAygAAAAEAAAM8c3RzegAAAAAAAAAAAAAAygAABd4AAAAXAAAAGwAAABwAAAAcAAAAHQAAABwAAAAdAAAAFgAAABIAAAAkAAAAFQAAABMAAAAUAAAAHQAAACIAAAAUAAAAHQAAACEAAAAUAAAAFgAAABAAAAAUAAAAFAAAABcAAAAQAAAAFAAAABQAAAAXAAAAEAAAABQAAAAUAAAAFwAAABAAAAAUAAAAFAAAABcAAAAQAAAAFAAAABQAAAAXAAAAEAAAABQAAAAUAAAAFwAAABAAAAAUAAAAFAAAABYAAAAQAAAAFAAAABQAAAAdAAAAFgAAABIAAAAeAAAAIgAAABkAAAAUAAAAFAAAABcAAAAQAAAAFAAAABMAAAAXAAAAEAAAABQAAAATAAAAFwAAABAAAAAUAAAAEwAAABcAAAAQAAAAFAAAABMAAAAXAAAAEAAAABQAAAATAAAAFwAAABAAAAAUAAAAEwAAABcAAAAQAAAAFAAAABMAAAAXAAAAEAAAABQAAAATAAAAFwAAABAAAAAUAAAAEwAAABcAAAAQAAAAFAAAABMAAAAXAAAAEAAAABQAAAATAAAAFwAAABAAAAAUAAAAEwAAABcAAAAQAAAAFAAAABMAAAAXAAAAEAAAABQAAAATAAAAFwAAABAAAAAUAAAAEwAAABcAAAAQAAAAFAAAABMAAAAXAAAAEAAAABQAAAATAAAAFwAAABAAAAAUAAAAEwAAABcAAAAQAAAAFAAAABMAAAAXAAAAEAAAABQAAAATAAAAFwAAABAAAAAUAAAAEwAAABYAAAAQAAAAFAAAABMAAAAWAAAAEAAAABQAAAATAAAAHQAAACIAAAAUAAAAIAAAABQAAAAdAAAAIQAAABQAAAAWAAAAEAAAABQAAAAUAAAAFwAAABAAAAAUAAAAFAAAABcAAAAQAAAAFAAAABQAAAAXAAAAEAAAABQAAAAUAAAAFwAAABAAAAAUAAAAFAAAABcAAAAQAAAAFAAAABQAAAAXAAAAEAAAABQAAAAUAAAAFgAAABAAAAAUAAAAFAAAABYAAAAQAAAAFAAAABQAAAAWAAAAEAAAABQAAAAUAAAAHwAAACoAAAAUc3RjbwAAAAAAAAABAAAAMAAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTcuODMuMTAw\" type=\"video/mp4\" />\n", + " </video>" + ], + "text/plain": [ + "<IPython.core.display.HTML object>" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 50 + } + ] + }, + { + "metadata": { + "id": "NhLScUoMgDN-", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "***\n", + "***\n", + "__Question 8__ Implement the DQN training algorithm using a CNN (for example, 2 convolutional layers and one final fully connected layer)." + ] + }, + { + "metadata": { + "id": "tygkQE9-gDOA", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "class DQN_CNN(DQN):\n", + " def __init__(self, *args,lr=0.1,**kwargs):\n", + " super(DQN_CNN, self).__init__(*args,**kwargs)\n", + " \n", + " ###### FILL IN\n", + " model = Sequential()\n", + " model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(5, 5, self.n_state)))\n", + " model.add(Conv2D(32, (3, 3), activation='relu'))\n", + " model.add(Flatten())\n", + " model.add(Dense(32))\n", + " model.add(Dropout(0.1))\n", + " model.add(Dense(4))#, activation='softmax'))\n", + " \n", + " model.compile(sgd(lr=lr, decay=1e-4, momentum=0.0), \"mse\")\n", + " self.model = model" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "KKlrLa1OgDOL", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1717 + }, + "outputId": "d8d11cc5-ed9c-4e38-ba86-acf615c685af" + }, + "cell_type": "code", + "source": [ + "env = Environment(grid_size=size, max_time=T, temperature=0.3)\n", + "agent = DQN_CNN(size, lr=.01, epsilon = 0.1, memory_size=2000, batch_size = 32)\n", + "history = train(agent,env,epochs_train,prefix='cnn_train')" + ], + "execution_count": 21, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Epoch 001/100 | Loss 0.0023 | Win/lose count 0.5/4.0 (-3.5)\n", + "Epoch 002/100 | Loss 0.0063 | Win/lose count 3.0/4.0 (-1.0)\n", + "Epoch 003/100 | Loss 0.0080 | Win/lose count 7.5/5.0 (2.5)\n", + "Epoch 004/100 | Loss 0.0063 | Win/lose count 3.0/3.0 (0.0)\n", + "Epoch 005/100 | Loss 0.0088 | Win/lose count 3.0/7.0 (-4.0)\n", + "Epoch 006/100 | Loss 0.0073 | Win/lose count 4.5/8.0 (-3.5)\n", + "Epoch 007/100 | Loss 0.0107 | Win/lose count 3.0/4.0 (-1.0)\n", + "Epoch 008/100 | Loss 0.0023 | Win/lose count 5.5/6.0 (-0.5)\n", + "Epoch 009/100 | Loss 0.0093 | Win/lose count 3.5/4.0 (-0.5)\n", + "Epoch 010/100 | Loss 0.0074 | Win/lose count 3.0/4.0 (-1.0)\n", + "Epoch 011/100 | Loss 0.0063 | Win/lose count 6.5/5.0 (1.5)\n", + "Epoch 012/100 | Loss 0.0051 | Win/lose count 5.0/7.0 (-2.0)\n", + "Epoch 013/100 | Loss 0.0110 | Win/lose count 5.5/5.0 (0.5)\n", + "Epoch 014/100 | Loss 0.0301 | Win/lose count 4.5/4.0 (0.5)\n", + "Epoch 015/100 | Loss 0.0094 | Win/lose count 3.5/5.0 (-1.5)\n", + "Epoch 016/100 | Loss 0.0119 | Win/lose count 4.5/6.0 (-1.5)\n", + "Epoch 017/100 | Loss 0.0048 | Win/lose count 3.5/2.0 (1.5)\n", + "Epoch 018/100 | Loss 0.0036 | Win/lose count 1.5/2.0 (-0.5)\n", + "Epoch 019/100 | Loss 0.0042 | Win/lose count 4.0/6.0 (-2.0)\n", + "Epoch 020/100 | Loss 0.0017 | Win/lose count 4.5/1.0 (3.5)\n", + "Epoch 021/100 | Loss 0.0061 | Win/lose count 4.5/7.0 (-2.5)\n", + "Epoch 022/100 | Loss 0.0022 | Win/lose count 6.0/3.0 (3.0)\n", + "Epoch 023/100 | Loss 0.0102 | Win/lose count 4.5/4.0 (0.5)\n", + "Epoch 024/100 | Loss 0.0011 | Win/lose count 7.0/3.0 (4.0)\n", + "Epoch 025/100 | Loss 0.0025 | Win/lose count 3.0/1.0 (2.0)\n", + "Epoch 026/100 | Loss 0.0046 | Win/lose count 7.0/5.0 (2.0)\n", + "Epoch 027/100 | Loss 0.0117 | Win/lose count 5.0/2.0 (3.0)\n", + "Epoch 028/100 | Loss 0.0052 | Win/lose count 3.0/2.0 (1.0)\n", + "Epoch 029/100 | Loss 0.0036 | Win/lose count 4.0/3.0 (1.0)\n", + "Epoch 030/100 | Loss 0.0007 | Win/lose count 3.0/4.0 (-1.0)\n", + "Epoch 031/100 | Loss 0.0009 | Win/lose count 5.0/0 (5.0)\n", + "Epoch 032/100 | Loss 0.0103 | Win/lose count 2.5/0 (2.5)\n", + "Epoch 033/100 | Loss 0.0091 | Win/lose count 4.5/5.0 (-0.5)\n", + "Epoch 034/100 | Loss 0.0020 | Win/lose count 5.0/5.0 (0.0)\n", + "Epoch 035/100 | Loss 0.0107 | Win/lose count 7.0/3.0 (4.0)\n", + "Epoch 036/100 | Loss 0.0057 | Win/lose count 4.5/2.0 (2.5)\n", + "Epoch 037/100 | Loss 0.0008 | Win/lose count 4.5/5.0 (-0.5)\n", + "Epoch 038/100 | Loss 0.0084 | Win/lose count 4.5/5.0 (-0.5)\n", + "Epoch 039/100 | Loss 0.0091 | Win/lose count 1.5/5.0 (-3.5)\n", + "Epoch 040/100 | Loss 0.0095 | Win/lose count 4.0/3.0 (1.0)\n", + "Epoch 041/100 | Loss 0.0027 | Win/lose count 6.5/3.0 (3.5)\n", + "Epoch 042/100 | Loss 0.0008 | Win/lose count 4.5/5.0 (-0.5)\n", + "Epoch 043/100 | Loss 0.0112 | Win/lose count 9.5/4.0 (5.5)\n", + "Epoch 044/100 | Loss 0.0086 | Win/lose count 3.0/4.0 (-1.0)\n", + "Epoch 045/100 | Loss 0.0022 | Win/lose count 3.5/3.0 (0.5)\n", + "Epoch 046/100 | Loss 0.0081 | Win/lose count 2.5/3.0 (-0.5)\n", + "Epoch 047/100 | Loss 0.0103 | Win/lose count 3.0/4.0 (-1.0)\n", + "Epoch 048/100 | Loss 0.0058 | Win/lose count 2.5/3.0 (-0.5)\n", + "Epoch 049/100 | Loss 0.0100 | Win/lose count 1.0/2.0 (-1.0)\n", + "Epoch 050/100 | Loss 0.0066 | Win/lose count 4.0/3.0 (1.0)\n", + "Epoch 051/100 | Loss 0.0031 | Win/lose count 2.0/3.0 (-1.0)\n", + "Epoch 052/100 | Loss 0.0010 | Win/lose count 2.5/8.0 (-5.5)\n", + "Epoch 053/100 | Loss 0.0040 | Win/lose count 0.5/3.0 (-2.5)\n", + "Epoch 054/100 | Loss 0.0096 | Win/lose count 4.0/3.0 (1.0)\n", + "Epoch 055/100 | Loss 0.0022 | Win/lose count 3.0/0 (3.0)\n", + "Epoch 056/100 | Loss 0.0093 | Win/lose count 1.0/0 (1.0)\n", + "Epoch 057/100 | Loss 0.0054 | Win/lose count 8.5/2.0 (6.5)\n", + "Epoch 058/100 | Loss 0.0026 | Win/lose count 1.0/3.0 (-2.0)\n", + "Epoch 059/100 | Loss 0.0105 | Win/lose count 1.5/3.0 (-1.5)\n", + "Epoch 060/100 | Loss 0.0031 | Win/lose count 4.5/9.0 (-4.5)\n", + "Epoch 061/100 | Loss 0.0118 | Win/lose count 4.5/3.0 (1.5)\n", + "Epoch 062/100 | Loss 0.0059 | Win/lose count 2.0/2.0 (0.0)\n", + "Epoch 063/100 | Loss 0.0179 | Win/lose count 5.5/2.0 (3.5)\n", + "Epoch 064/100 | Loss 0.0006 | Win/lose count 2.0/7.0 (-5.0)\n", + "Epoch 065/100 | Loss 0.0026 | Win/lose count 3.5/5.0 (-1.5)\n", + "Epoch 066/100 | Loss 0.0147 | Win/lose count 4.0/1.0 (3.0)\n", + "Epoch 067/100 | Loss 0.0078 | Win/lose count 8.0/4.0 (4.0)\n", + "Epoch 068/100 | Loss 0.0185 | Win/lose count 3.0/6.0 (-3.0)\n", + "Epoch 069/100 | Loss 0.0113 | Win/lose count 6.5/2.0 (4.5)\n", + "Epoch 070/100 | Loss 0.0048 | Win/lose count 2.0/1.0 (1.0)\n", + "Epoch 071/100 | Loss 0.0022 | Win/lose count 2.5/3.0 (-0.5)\n", + "Epoch 072/100 | Loss 0.0062 | Win/lose count 3.0/2.0 (1.0)\n", + "Epoch 073/100 | Loss 0.0096 | Win/lose count 6.5/0 (6.5)\n", + "Epoch 074/100 | Loss 0.0005 | Win/lose count 5.5/2.0 (3.5)\n", + "Epoch 075/100 | Loss 0.0074 | Win/lose count 2.5/2.0 (0.5)\n", + "Epoch 076/100 | Loss 0.0005 | Win/lose count 3.5/4.0 (-0.5)\n", + "Epoch 077/100 | Loss 0.0104 | Win/lose count 5.0/2.0 (3.0)\n", + "Epoch 078/100 | Loss 0.0008 | Win/lose count 2.0/3.0 (-1.0)\n", + "Epoch 079/100 | Loss 0.0009 | Win/lose count 4.0/4.0 (0.0)\n", + "Epoch 080/100 | Loss 0.0078 | Win/lose count 5.0/2.0 (3.0)\n", + "Epoch 081/100 | Loss 0.0115 | Win/lose count 3.5/3.0 (0.5)\n", + "Epoch 082/100 | Loss 0.0088 | Win/lose count 3.5/1.0 (2.5)\n", + "Epoch 083/100 | Loss 0.0009 | Win/lose count 3.0/1.0 (2.0)\n", + "Epoch 084/100 | Loss 0.0025 | Win/lose count 1.5/3.0 (-1.5)\n", + "Epoch 085/100 | Loss 0.0168 | Win/lose count 2.5/2.0 (0.5)\n", + "Epoch 086/100 | Loss 0.0008 | Win/lose count 2.0/2.0 (0.0)\n", + "Epoch 087/100 | Loss 0.0086 | Win/lose count 6.0/6.0 (0.0)\n", + "Epoch 088/100 | Loss 0.0008 | Win/lose count 5.0/0 (5.0)\n", + "Epoch 089/100 | Loss 0.0086 | Win/lose count 6.0/4.0 (2.0)\n", + "Epoch 090/100 | Loss 0.0101 | Win/lose count 6.0/4.0 (2.0)\n", + "Epoch 091/100 | Loss 0.0080 | Win/lose count 3.5/0 (3.5)\n", + "Epoch 092/100 | Loss 0.0038 | Win/lose count 2.5/1.0 (1.5)\n", + "Epoch 093/100 | Loss 0.0040 | Win/lose count 3.0/4.0 (-1.0)\n", + "Epoch 094/100 | Loss 0.0049 | Win/lose count 7.0/4.0 (3.0)\n", + "Epoch 095/100 | Loss 0.0062 | Win/lose count 3.0/3.0 (0.0)\n", + "Epoch 096/100 | Loss 0.0040 | Win/lose count 4.0/1.0 (3.0)\n", + "Epoch 097/100 | Loss 0.0021 | Win/lose count 1.5/5.0 (-3.5)\n", + "Epoch 098/100 | Loss 0.0010 | Win/lose count 1.5/1.0 (0.5)\n", + "Epoch 099/100 | Loss 0.0008 | Win/lose count 6.5/8.0 (-1.5)\n", + "Epoch 100/100 | Loss 0.0022 | Win/lose count 4.0/6.0 (-2.0)\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "l9ub9LHHFNhd", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 349 + }, + "outputId": "9988524c-0e16-4f56-b95c-906797c84c55" + }, + "cell_type": "code", + "source": [ + "visualization_score(history)" + ], + "execution_count": 22, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\nIiId+v9vVR+ddsdyaAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "<Figure size 1440x360 with 2 Axes>" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "qe7FjLrPixTN", + "colab_type": "code", + "outputId": "05ba1f6a-9301-425d-c27b-473720ce3fc6", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 293 + } + }, + "cell_type": "code", + "source": [ + "HTML(display_videos('cnn_train100.mp4'))" + ], + "execution_count": 23, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "<video alt=\"test\" controls>\n", + " <source src=\"data:video/mp4;base64,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AAQAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAEAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAABgAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAgAABAAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAgAABAAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAQAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAAcc3RzYwAAAAAAAAABAAAAAQAAAMoAAAABAAADPHN0c3oAAAAAAAAAAAAAAMoAAAXjAAAAIAAAABQAAAAUAAAAHgAAAB0AAAAjAAAAFAAAACEAAAAUAAAAHQAAAB4AAAAVAAAAEgAAAB8AAAAeAAAAFwAAABQAAAAUAAAAFwAAABQAAAAUAAAAFAAAABcAAAAUAAAAFAAAABQAAAAXAAAAFAAAABQAAAAUAAAAFgAAABQAAAAUAAAAFAAAABYAAAAUAAAAFAAAABQAAAAeAAAAJAAAABQAAAAfAAAAHgAAABUAAAATAAAAFgAAABcAAAAUAAAAFAAAAB8AAAAWAAAAFgAAABQAAAAUAAAAHwAAABQAAAAUAAAAEwAAABsAAAAYAAAAFAAAABQAAAAeAAAAFQAAABAAAAAUAAAAFAAAAB8AAAAWAAAAFgAAABQAAAAUAAAAFwAAABQAAAAUAAAAFAAAABcAAAAUAAAAFAAAABQAAAAWAAAAFAAAABQAAAAUAAAAIAAAABQAAAAfAAAAGQAAABQAAAAUAAAAHAAAABwAAAAWAAAAFgAAABQAAAAUAAAAFwAAABQAAAAUAAAAFAAAABcAAAAUAAAAFAAAABQAAAAWAAAAFAAAABQAAAAUAAAAHwAAABQAAAAUAAAAEwAAAB0AAAAcAAAAFgAAABQAAAAUAAAAFAAAABcAAAAUAAAAFAAAABQAAAAXAAAAFAAAABQAAAAUAAAAFwAAABQAAAAUAAAAFAAAABcAAAAUAAAAFAAAABQAAAAXAAAAFAAAABQAAAAUAAAAFgAAABQAAAAUAAAAFAAAACAAAAAaAAAAEgAAABQAAAAUAAAAIgAAABQAAAATAAAAFAAAACAAAAAUAAAAEwAAABMAAAAXAAAAFAAAABQAAAATAAAAHQAAABQAAAATAAAAEwAAAB0AAAAZAAAAFAAAABQAAAAiAAAAFAAAABMAAAAUAAAAHwAAABQAAAATAAAAFAAAACAAAAAUAAAAHgAAABQAAAATAAAAFAAAAB8AAAAUAAAAHgAAABQAAAATAAAAFAAAAB8AAAAUAAAAHgAAABQAAAATAAAAFAAAAB8AAAAUAAAAHgAAABQAAAATAAAAFAAAAB8AAAAnAAAAFHN0Y28AAAAAAAAAAQAAADAAAABidWR0YQAAAFptZXRhAAAAAAAAACFoZGxyAAAAAAAAAABtZGlyYXBwbAAAAAAAAAAAAAAAAC1pbHN0AAAAJal0b28AAAAdZGF0YQAAAAEAAAAATGF2ZjU3LjgzLjEwMA==\" type=\"video/mp4\" />\n", + " </video>" + ], + "text/plain": [ + "<IPython.core.display.HTML object>" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 23 + } + ] + }, + { + "metadata": { + "id": "XHvq1M8sgDOf", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "***\n", + "***\n", + "__Question 9__ Test both algorithms and compare their performances. Which issue(s) do you observe? Observe also different behaviors by changing the temperature." + ] + }, + { + "metadata": { + "id": "mSrF4ANbgDOk", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 3485 + }, + "outputId": "0700a7dd-79ee-4c55-b048-2d821d682417" + }, + "cell_type": "code", + "source": [ + "epochs_test = 100\n", + "epsilon_test = 0.1 # 0.1\n", + "temperature_test = 0.3\n", + "\n", + "env = Environment(grid_size=size, max_time=T,temperature=temperature_test)\n", + "\n", + "agent_cnn = DQN_CNN(size, lr=.1, epsilon = epsilon_test, memory_size=2000, batch_size = 32)\n", + "agent_cnn.load(name_weights='cnn_trainmodel.h5',name_model='cnn_trainmodel.json')\n", + "\n", + "agent_fc = DQN_FC(size, lr=.1, epsilon = epsilon_test, memory_size=2000, batch_size = 32)\n", + "agent_cnn.load(name_weights='fc_trainmodel.h5',name_model='fc_trainmodel.json')\n", + "\n", + "print('Test of the CNN')\n", + "history_cnn = test(agent_cnn,env,epochs_test,prefix='cnn_test')\n", + "print('Test of the FC')\n", + "history_fc = test(agent_fc,env,epochs_test,prefix='fc_test')" + ], + "execution_count": 37, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Test of the CNN\n", + "Step 1: Win/lose count 11.0/5.0. Average score (3.0)\n", + "Step 2: Win/lose count 11.0/2.0. Average score (5.0)\n", + "Step 3: Win/lose count 6.5/1.0. Average score (5.125)\n", + "Step 4: Win/lose count 7.0/4.0. Average score (4.7)\n", + "Step 5: Win/lose count 2.0/1.0. Average score (4.083333333333333)\n", + "Step 6: Win/lose count 4.5/4.0. Average score (3.5714285714285716)\n", + "Step 7: Win/lose count 9.5/3.0. Average score (3.9375)\n", + "Step 8: Win/lose count 11.0/3.0. Average score (4.388888888888889)\n", + "Step 9: Win/lose count 6.0/1.0. Average score (4.45)\n", + "Step 10: Win/lose count 4.0/2.0. Average score (4.2272727272727275)\n", + "Step 11: Win/lose count 8.5/2.0. Average score (4.416666666666667)\n", + "Step 12: Win/lose count 2.5/2.0. Average score (4.115384615384615)\n", + "Step 13: Win/lose count 5.5/1.0. Average score (4.142857142857143)\n", + "Step 14: Win/lose count 9.5/4.0. Average score (4.233333333333333)\n", + "Step 15: Win/lose count 4.0/3.0. Average score (4.03125)\n", + "Step 16: Win/lose count 6.0/4.0. Average score (3.911764705882353)\n", + "Step 17: Win/lose count 7.0/2.0. Average score (3.9722222222222223)\n", + "Step 18: Win/lose count 10.0/2.0. Average score (4.184210526315789)\n", + "Step 19: Win/lose count 4.5/3.0. Average score (4.05)\n", + "Step 20: Win/lose count 5.5/3.0. Average score (3.9761904761904763)\n", + "Step 21: Win/lose count 12.0/2.0. Average score (4.25)\n", + "Step 22: Win/lose count 6.5/2.0. Average score (4.260869565217392)\n", + "Step 23: Win/lose count 8.5/3.0. Average score (4.3125)\n", + "Step 24: Win/lose count 5.0/2.0. Average score (4.26)\n", + "Step 25: Win/lose count 8.5/3.0. Average score (4.3076923076923075)\n", + "Step 26: Win/lose count 7.0/1.0. Average score (4.37037037037037)\n", + "Step 27: Win/lose count 5.0/1.0. Average score (4.357142857142857)\n", + "Step 28: Win/lose count 3.5/4.0. Average score (4.189655172413793)\n", + "Step 29: Win/lose count 3.0/1.0. Average score (4.116666666666666)\n", + "Step 30: Win/lose count 9.0/2.0. Average score (4.209677419354839)\n", + "Step 31: Win/lose count 7.0/2.0. Average score (4.234375)\n", + "Step 32: Win/lose count 3.5/1.0. Average score (4.181818181818182)\n", + "Step 33: Win/lose count 7.5/2.0. Average score (4.220588235294118)\n", + "Step 34: Win/lose count 3.5/1.0. Average score (4.171428571428572)\n", + "Step 35: Win/lose count 6.0/3.0. Average score (4.138888888888889)\n", + "Step 36: Win/lose count 4.0/1.0. Average score (4.108108108108108)\n", + "Step 37: Win/lose count 1.0/0. Average score (4.026315789473684)\n", + "Step 38: Win/lose count 1.0/1.0. Average score (3.923076923076923)\n", + "Step 39: Win/lose count 10.0/1.0. Average score (4.05)\n", + "Step 40: Win/lose count 11.5/2.0. Average score (4.182926829268292)\n", + "Step 41: Win/lose count 8.5/2.0. Average score (4.238095238095238)\n", + "Step 42: Win/lose count 7.5/3.0. Average score (4.244186046511628)\n", + "Step 43: Win/lose count 5.0/1.0. Average score (4.238636363636363)\n", + "Step 44: Win/lose count 7.0/5.0. Average score (4.188888888888889)\n", + "Step 45: Win/lose count 4.5/2.0. Average score (4.1521739130434785)\n", + "Step 46: Win/lose count 7.5/4.0. Average score (4.138297872340425)\n", + "Step 47: Win/lose count 7.0/0. Average score (4.197916666666667)\n", + "Step 48: Win/lose count 8.0/1.0. Average score (4.255102040816326)\n", + "Step 49: Win/lose count 5.0/2.0. Average score (4.23)\n", + "Step 50: Win/lose count 9.0/0. Average score (4.323529411764706)\n", + "Step 51: Win/lose count 12.0/4.0. Average score (4.394230769230769)\n", + "Step 52: Win/lose count 4.5/2.0. Average score (4.3584905660377355)\n", + "Step 53: Win/lose count 5.5/3.0. Average score (4.324074074074074)\n", + "Step 54: Win/lose count 6.0/1.0. Average score (4.336363636363636)\n", + "Step 55: Win/lose count 5.5/4.0. Average score (4.285714285714286)\n", + "Step 56: Win/lose count 6.0/1.0. Average score (4.298245614035087)\n", + "Step 57: Win/lose count 6.5/4.0. Average score (4.267241379310345)\n", + "Step 58: Win/lose count 4.5/2.0. Average score (4.237288135593221)\n", + "Step 59: Win/lose count 3.5/2.0. Average score (4.191666666666666)\n", + "Step 60: Win/lose count 7.0/3.0. Average score (4.188524590163935)\n", + "Step 61: Win/lose count 7.5/1.0. Average score (4.225806451612903)\n", + "Step 62: Win/lose count 7.0/2.0. Average score (4.238095238095238)\n", + "Step 63: Win/lose count 5.5/1.0. Average score (4.2421875)\n", + "Step 64: Win/lose count 10.5/2.0. Average score (4.3076923076923075)\n", + "Step 65: Win/lose count 9.5/2.0. Average score (4.356060606060606)\n", + "Step 66: Win/lose count 6.0/3.0. Average score (4.335820895522388)\n", + "Step 67: Win/lose count 3.5/7.0. Average score (4.220588235294118)\n", + "Step 68: Win/lose count 3.0/0. Average score (4.202898550724638)\n", + "Step 69: Win/lose count 3.5/1.0. Average score (4.178571428571429)\n", + "Step 70: Win/lose count 3.0/5.0. Average score (4.091549295774648)\n", + "Step 71: Win/lose count 5.5/0. Average score (4.111111111111111)\n", + "Step 72: Win/lose count 2.0/1.0. Average score (4.068493150684931)\n", + "Step 73: Win/lose count 8.5/6.0. Average score (4.047297297297297)\n", + "Step 74: Win/lose count 12.0/3.0. Average score (4.113333333333333)\n", + "Step 75: Win/lose count 6.5/2.0. Average score (4.118421052631579)\n", + "Step 76: Win/lose count 9.0/3.0. Average score (4.142857142857143)\n", + "Step 77: Win/lose count 6.5/3.0. Average score (4.134615384615385)\n", + "Step 78: Win/lose count 1.5/1.0. Average score (4.0886075949367084)\n", + "Step 79: Win/lose count 9.0/0. Average score (4.15)\n", + "Step 80: Win/lose count 7.0/2.0. Average score (4.160493827160494)\n", + "Step 81: Win/lose count 5.5/2.0. Average score (4.152439024390244)\n", + "Step 82: Win/lose count 3.5/3.0. Average score (4.108433734939759)\n", + "Step 83: Win/lose count 4.0/1.0. Average score (4.095238095238095)\n", + "Step 84: Win/lose count 9.5/3.0. Average score (4.123529411764705)\n", + "Step 85: Win/lose count 5.0/6.0. Average score (4.063953488372093)\n", + "Step 86: Win/lose count 2.0/1.0. Average score (4.028735632183908)\n", + "Step 87: Win/lose count 6.5/1.0. Average score (4.045454545454546)\n", + "Step 88: Win/lose count 3.0/2.0. Average score (4.01123595505618)\n", + "Step 89: Win/lose count 11.5/3.0. Average score (4.061111111111111)\n", + "Step 90: Win/lose count 3.0/3.0. Average score (4.016483516483516)\n", + "Step 91: Win/lose count 4.0/0. Average score (4.016304347826087)\n", + "Step 92: Win/lose count 4.0/3.0. Average score (3.9838709677419355)\n", + "Step 93: Win/lose count 6.0/4.0. Average score (3.9627659574468086)\n", + "Step 94: Win/lose count 6.5/4.0. Average score (3.9473684210526314)\n", + "Step 95: Win/lose count 1.5/2.0. Average score (3.9010416666666665)\n", + "Step 96: Win/lose count 5.5/6.0. Average score (3.8556701030927836)\n", + "Step 97: Win/lose count 3.0/1.0. Average score (3.836734693877551)\n", + "Step 98: Win/lose count 6.5/3.0. Average score (3.8333333333333335)\n", + "Step 99: Win/lose count 3.0/7.0. Average score (3.755)\n", + "Step 100: Win/lose count 6.5/2.0. Average score (3.762376237623762)\n", + "Final score: 3.8\n", + "Test of the FC\n", + "Step 1: Win/lose count 2.5/5.0. Average score (-1.25)\n", + "Step 2: Win/lose count 3.0/7.0. Average score (-2.1666666666666665)\n", + "Step 3: Win/lose count 0.5/2.0. Average score (-2.0)\n", + "Step 4: Win/lose count 4.5/3.0. Average score (-1.3)\n", + "Step 5: Win/lose count 4.5/9.0. Average score (-1.8333333333333333)\n", + "Step 6: Win/lose count 6.5/14.0. Average score (-2.642857142857143)\n", + "Step 7: Win/lose count 2.5/5.0. Average score (-2.625)\n", + "Step 8: Win/lose count 4.5/6.0. Average score (-2.5)\n", + "Step 9: Win/lose count 3.0/4.0. Average score (-2.35)\n", + "Step 10: Win/lose count 4.0/10.0. Average score (-2.6818181818181817)\n", + "Step 11: Win/lose count 4.5/6.0. Average score (-2.5833333333333335)\n", + "Step 12: Win/lose count 3.5/3.0. Average score (-2.3461538461538463)\n", + "Step 13: Win/lose count 5.5/4.0. Average score (-2.0714285714285716)\n", + "Step 14: Win/lose count 2.0/2.0. Average score (-1.9333333333333333)\n", + "Step 15: Win/lose count 4.0/8.0. Average score (-2.0625)\n", + "Step 16: Win/lose count 2.5/5.0. Average score (-2.088235294117647)\n", + "Step 17: Win/lose count 3.5/9.0. Average score (-2.2777777777777777)\n", + "Step 18: Win/lose count 5.0/11.0. Average score (-2.473684210526316)\n", + "Step 19: Win/lose count 1.0/3.0. Average score (-2.45)\n", + "Step 20: Win/lose count 1.5/2.0. Average score (-2.357142857142857)\n", + "Step 21: Win/lose count 6.5/9.0. Average score (-2.3636363636363638)\n", + "Step 22: Win/lose count 2.5/4.0. Average score (-2.3260869565217392)\n", + "Step 23: Win/lose count 5.5/7.0. Average score (-2.2916666666666665)\n", + "Step 24: Win/lose count 4.5/7.0. Average score (-2.3)\n", + "Step 25: Win/lose count 5.5/9.0. Average score (-2.3461538461538463)\n", + "Step 26: Win/lose count 2.5/10.0. Average score (-2.537037037037037)\n", + "Step 27: Win/lose count 4.0/2.0. Average score (-2.375)\n", + "Step 28: Win/lose count 1.0/3.0. Average score (-2.3620689655172415)\n", + "Step 29: Win/lose count 4.0/8.0. Average score (-2.4166666666666665)\n", + "Step 30: Win/lose count 7.0/4.0. Average score (-2.2419354838709675)\n", + "Step 31: Win/lose count 5.0/13.0. Average score (-2.421875)\n", + "Step 32: Win/lose count 4.5/6.0. Average score (-2.393939393939394)\n", + "Step 33: Win/lose count 3.0/6.0. Average score (-2.411764705882353)\n", + "Step 34: Win/lose count 5.5/12.0. Average score (-2.5285714285714285)\n", + "Step 35: Win/lose count 3.5/2.0. Average score (-2.4166666666666665)\n", + "Step 36: Win/lose count 4.5/3.0. Average score (-2.310810810810811)\n", + "Step 37: Win/lose count 2.5/4.0. Average score (-2.289473684210526)\n", + "Step 38: Win/lose count 5.0/9.0. Average score (-2.3333333333333335)\n", + "Step 39: Win/lose count 4.0/8.0. Average score (-2.375)\n", + "Step 40: Win/lose count 3.0/6.0. Average score (-2.3902439024390243)\n", + "Step 41: Win/lose count 0.5/4.0. Average score (-2.4166666666666665)\n", + "Step 42: Win/lose count 3.0/5.0. Average score (-2.4069767441860463)\n", + "Step 43: Win/lose count 3.0/8.0. Average score (-2.465909090909091)\n", + "Step 44: Win/lose count 3.0/5.0. Average score (-2.4555555555555557)\n", + "Step 45: Win/lose count 1.0/6.0. Average score (-2.510869565217391)\n", + "Step 46: Win/lose count 4.0/3.0. Average score (-2.4361702127659575)\n", + "Step 47: Win/lose count 2.5/7.0. Average score (-2.4791666666666665)\n", + "Step 48: Win/lose count 1.5/8.0. Average score (-2.561224489795918)\n", + "Step 49: Win/lose count 0.5/2.0. Average score (-2.54)\n", + "Step 50: Win/lose count 1.5/7.0. Average score (-2.5980392156862746)\n", + "Step 51: Win/lose count 10.5/7.0. Average score (-2.480769230769231)\n", + "Step 52: Win/lose count 2.5/5.0. Average score (-2.481132075471698)\n", + "Step 53: Win/lose count 2.5/5.0. Average score (-2.4814814814814814)\n", + "Step 54: Win/lose count 4.5/8.0. Average score (-2.5)\n", + "Step 55: Win/lose count 2.0/8.0. Average score (-2.5625)\n", + "Step 56: Win/lose count 2.5/7.0. Average score (-2.5964912280701755)\n", + "Step 57: Win/lose count 3.5/1.0. Average score (-2.5086206896551726)\n", + "Step 58: Win/lose count 1.0/2.0. Average score (-2.483050847457627)\n", + "Step 59: Win/lose count 4.5/2.0. Average score (-2.4)\n", + "Step 60: Win/lose count 2.0/3.0. Average score (-2.377049180327869)\n", + "Step 61: Win/lose count 5.0/8.0. Average score (-2.3870967741935485)\n", + "Step 62: Win/lose count 4.0/7.0. Average score (-2.3968253968253967)\n", + "Step 63: Win/lose count 7.0/4.0. Average score (-2.3125)\n", + "Step 64: Win/lose count 3.0/5.0. Average score (-2.3076923076923075)\n", + "Step 65: Win/lose count 4.0/5.0. Average score (-2.287878787878788)\n", + "Step 66: Win/lose count 4.5/10.0. Average score (-2.3358208955223883)\n", + "Step 67: Win/lose count 4.5/6.0. Average score (-2.323529411764706)\n", + "Step 68: Win/lose count 2.5/9.0. Average score (-2.3840579710144927)\n", + "Step 69: Win/lose count 3.5/9.0. Average score (-2.4285714285714284)\n", + "Step 70: Win/lose count 3.0/11.0. Average score (-2.507042253521127)\n", + "Step 71: Win/lose count 5.0/5.0. Average score (-2.4722222222222223)\n", + "Step 72: Win/lose count 1.5/10.0. Average score (-2.5547945205479454)\n", + "Step 73: Win/lose count 2.5/0. Average score (-2.4864864864864864)\n", + "Step 74: Win/lose count 1.5/3.0. Average score (-2.473333333333333)\n", + "Step 75: Win/lose count 4.5/1.0. Average score (-2.3947368421052633)\n", + "Step 76: Win/lose count 0.5/4.0. Average score (-2.409090909090909)\n", + "Step 77: Win/lose count 5.5/7.0. Average score (-2.3974358974358974)\n", + "Step 78: Win/lose count 1.0/3.0. Average score (-2.392405063291139)\n", + "Step 79: Win/lose count 3.0/4.0. Average score (-2.375)\n", + "Step 80: Win/lose count 5.0/16.0. Average score (-2.4814814814814814)\n", + "Step 81: Win/lose count 0.5/4.0. Average score (-2.4939024390243905)\n", + "Step 82: Win/lose count 2.5/10.0. Average score (-2.5542168674698793)\n", + "Step 83: Win/lose count 5.0/9.0. Average score (-2.5714285714285716)\n", + "Step 84: Win/lose count 1.0/4.0. Average score (-2.5764705882352943)\n", + "Step 85: Win/lose count 3.0/2.0. Average score (-2.5348837209302326)\n", + "Step 86: Win/lose count 3.0/9.0. Average score (-2.574712643678161)\n", + "Step 87: Win/lose count 1.5/4.0. Average score (-2.5738636363636362)\n", + "Step 88: Win/lose count 2.5/1.0. Average score (-2.5280898876404496)\n", + "Step 89: Win/lose count 0.5/7.0. Average score (-2.5722222222222224)\n", + "Step 90: Win/lose count 1.0/5.0. Average score (-2.587912087912088)\n", + "Step 91: Win/lose count 1.5/4.0. Average score (-2.5869565217391304)\n", + "Step 92: Win/lose count 3.0/10.0. Average score (-2.6344086021505375)\n", + "Step 93: Win/lose count 2.0/8.0. Average score (-2.6702127659574466)\n", + "Step 94: Win/lose count 5.0/4.0. Average score (-2.6315789473684212)\n", + "Step 95: Win/lose count 8.5/20.0. Average score (-2.7239583333333335)\n", + "Step 96: Win/lose count 5.0/9.0. Average score (-2.7371134020618557)\n", + "Step 97: Win/lose count 2.5/3.0. Average score (-2.7142857142857144)\n", + "Step 98: Win/lose count 3.0/4.0. Average score (-2.696969696969697)\n", + "Step 99: Win/lose count 2.5/5.0. Average score (-2.695)\n", + "Step 100: Win/lose count 5.5/7.0. Average score (-2.6831683168316833)\n", + "Final score: -2.71\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "oCCfkLopFGRX", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 349 + }, + "outputId": "27fa577d-d258-434f-a836-2f27b3e96661" + }, + "cell_type": "code", + "source": [ + "visualization_score(history_cnn)" + ], + "execution_count": 38, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABJAAAAFMCAYAAACUFEbaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3Xl4VOX9///nzGQn+woBAmEPkBB2\nUFAIYsKi7MgH14rSVtyqVilSvtran9YFbRVrbRVRq1IjCggCCiKiEIWwhn0JJCH7vkyWmTm/P6hp\nEQyLZCYJr8d1cZE5c5b33OQKd17nPvdtMgzDQERERERERERE5CeYXV2AiIiIiIiIiIg0bQqQRERE\nRERERESkQQqQRERERERERESkQQqQRERERERERESkQQqQRERERERERESkQQqQRERERERERESkQQqQ\nRIS9e/dy++23k5SURGJiIjfddBPbtm1zeh3Lli0jPj6epKSkM/7cfvvtl3zO7t27k5OT0+A+x44d\n4/vvvwfg888/53e/+90lX09ERESuDDfeeCOffvpp/eva2lr69OnDqlWr6rfV1NQQGxtLeno6t99+\nO2lpaRd9nRUrVpCUlMR1113HkiVLfnK/l19+mccff/yiz/9zpKSk0Lt377P6bklJSZd8zoSEhPP2\nQwsKCli/fj0Au3fvZtasWZd8PRG5cG6uLkBEXMswDH71q1/x1FNPMWLECADWrVvHnDlz2LhxI97e\n3k6tJz4+nrfeesup1/ziiy+w2WwMHDiQ0aNHM3r0aKdeX0RERJqfq6++mq1btzJ+/HgAdu7cibe3\nNykpKYwbNw6A1NRUwsLC6NixY4PhT0NefPFFli1bhru7O6NGjeLmm2/Gza3p/BrXpk0b1qxZ49Rr\npqSk8O233zJq1Cji4uJ44403nHp9kSuVRiCJXOGKi4vJz8+nT58+9duuv/56li9fXh8evf7664wa\nNYrExESefvppDMMA4O2332bs2LEkJSXx61//mqKiIgDmzp3L008/zQ033MBnn31GbW0tTz31FImJ\niSQkJPDaa69ddJ1Hjhxh0KBB2Gy2+m333HMP77//PjU1NSxYsIDExETGjBnDM888g91uP+P4ZcuW\ncccdd5z1esOGDfz973/n7bff5plnnjljv5KSEh544AESExMZO3Ysr7/+ev3x3bt355NPPmHixIkM\nGzbM6aGXiIiIuNZVV13Fli1b6l9v3bqVqVOnkpKScsa2q666CvjvyJrMzEyGDRvG22+/zQ033MDw\n4cNZvXr1T17H4XAQFBREbm4ugYGBlxQepaSkMGnSJJKSkpg2bRp79uwBIDc3l9tvv52xY8dy3XXX\n8eKLLwKnbzC+8sorJCYmMnLkSJ566qmz+lbnU1ZWRlxcXH3/EOBPf/oTzz//PA6HgxdffLF+tNLc\nuXOpqqo6q+b/van3w+u0tDT+8Ic/sHbtWn7zm9+csV9DfcKEhAQ++OADpk6dyrBhw3jmmWcuuh1F\nrnQKkESucEFBQcTGxnLbbbfx4YcfkpGRAUDr1q0B2LZtG8nJySxfvpyVK1eyfft21qxZw86dO3nj\njTd45513WLNmDZGRkbzwwgv1592yZQvJycmMGTOGf/zjHxw5coSVK1fy6aefsnbtWr788suLqrNL\nly6EhobWD2m2Wq1s3bqVxMRElixZQk5ODqtWreLjjz9m27ZtZwwpb0hCQgKjR4/mtttuY+7cuWe8\nt3DhQgICAli7di3vvfce77///hlDqo8cOcInn3zCq6++ysKFCy+6YyUiIiLN18CBA8nLyyMzMxM4\nHRZdf/31GIZBbm5u/bYfAqT/VVxcjNlsZuXKlcybN4+XXnrpJ6/TrVs35s6dy0MPPcTChQsvus7K\nykoeeOAB5s+fz5o1a7jrrrt45JFHcDgcvPXWWwwcOJDVq1ezcuVKMjIyyMvLY/ny5axZs4bk5GQ+\n//xzMjIyeP/99y/quv7+/gwePPiMPt/69esZM2YMn332GZs2bWLZsmWsWrWKsrKyC74Z16tXL265\n5RYSExPrA68fnK9P+P3337N06VI++ugj3n333fNOcyAiZ1KAJHKFM5lMLF68mNGjR/P2229z3XXX\nMW7cONatWwfApk2buPbaa/H19cXDw4N33nmH66+/no0bN5KYmEhISAgA06ZN45tvvqk/79ChQ/H0\n9ATgyy+/ZObMmXh4eODj48OECRPqz/9jO3fuPOsZ+sWLFwOQmJjIhg0bAPj666+Ji4sjODiYjRs3\nMn36dNzc3PDy8uKGG244o5ZL9dVXXzFz5kwAAgMDGT169BnnnTBhAnC6I1NTU0NhYeHPvqaIiIg0\nD15eXvTv358tW7ZgtVo5evQovXr1YuDAgWzdupWKigrS0tIYOnToWcfabDYmT54MnO5HnDp16pzX\neP/99zl69Cg7duwgOTmZXr168a9//Yvi4uILrnP37t20bt2a/v37A6f7U8XFxWRlZRESEsLmzZvZ\ntm0bHh4eLFy4kPDwcL788kumTJmCn58fbm5uTJs27Sf7btnZ2Wf13X4Y3fO/fbe0tDTc3Nzo1asX\nGzduZOLEifj4+GCxWJg8efJl6budr094ww03YLFYiIiIICQkhOzs7J99TZErSdN5eFZEXMbPz4/7\n77+f+++/n4KCApYtW8ZDDz3E8uXLKS4uJjw8vH7fHx5rKyoqOmO7v7//GQFKQEBA/dfl5eU8/fTT\n9XfNamtriYuLO2ctDc2BlJiYyL333su8efP44osvGDt2bH0t/3u9gICAyxLmFBUV4e/vX//a39+f\nvLy8+td+fn4AWCwW4PQQcxEREblyXHXVVWzdupXIyEj69OmDxWJh0KBBpKSkEBgYSLdu3QgKCjrr\nOIvFgo+PDwBms/mcfYjU1FTeeecdVqxYwX333cf69etJSEjgzTff5KabbrrgGn/cn4HTfZjCwkLu\nuOMOHA4HTz75JHl5edx8883cd999lJeX88Ybb7B06VIA7HY7wcHB5zx/Q3MgXXfddTzzzDPU1NTw\nxRdfMGbMmPqaGqvv1tB5fX1967+2WCwaPS5ykRQgiVzhcnJyyMzMZMCAAQCEhoYye/Zs1qxZw+HD\nhwkKCjrjLtcPX4eGhlJSUlK/vaSkhNDQ0HNeIzw8nDvvvJORI0f+rFp79OiBxWLhwIEDbN68uX61\ntAupxWw2n9FJKCsrO+/1fjhvZGTkT55XRERErlzDhg3jvffeIyoqikGDBgEwePBgFi1aREhICFdf\nffUlnzs1NZWRI0fi6+vLk08+yR133MGuXbu4/vrrL2oepJCQkDP6SYZhUFpaSkhICG5ubsyePZvZ\ns2dz/Phx7r77bvr37094eDgJCQnccsstl1w/nB7BHRcXx5YtW/jiiy947rnngAvru/044LmYvltD\n5xWRS6dH2ESucNnZ2cyZM4e9e/fWb9u9ezenTp0iNjaWhIQENmzYQGlpKTabjTlz5rB582ZGjBjB\n559/Xh8offDBB1x77bXnvMaoUaP48MMPsdvtGIbBq6++yqZNmy6p3sTERF5++WViYmLq7+iNGDGC\n5ORk7HY7VVVVLF++/KxawsPDOX78ODU1NVit1jPulLm5uVFeXn7WtUaMGFF/562oqIjPP/+8fqU6\nERERkZiYmPrRNYMHDwb+O4/kV199dc75jy5UdHQ03333HVarlaioqPrRRz+s8Hah4uLiKCgoYMeO\nHQCsWrWK1q1b065dOxYsWFD/iFdUVBShoaGYTCZGjRrF8uXLsVqtwOl+3scff3xJnyMxMZF///vf\n1NXV0aNHD+B0H2vFihVYrVZsNhvJycln9d3CwsLIz8+nsLAQu93OypUr699rqO92vj6hiFw6jUAS\nucL17duXP/7xjzzxxBOUl5fjcDgIDQ3lxRdfpG3btrRt25ZZs2YxceJEPDw8GD58OOPHj8dkMjF7\n9mxuvvlmHA4HMTExPPHEE+e8xsyZM8nMzGTcuHEYhkHv3r25/fbbz7nvD3Mg/diSJUuIiIggMTGR\nyZMn89RTT9W/d+utt5KRkcG4ceMwmUwkJSXVD5H+weDBg+nTpw+JiYm0a9eOUaNG1XeYRo4cySOP\nPEJWVtYZAdGDDz7IE088QVJSEmazmdmzZ//ko3ciIiJy5TGZTAwdOpRNmzbRs2fP+u0DBw7k008/\nrZ936FKMGjWK1NRUJkyYgN1up0uXLsydO5cHH3yQtm3bsmTJkrOOWbt2Ldu3b69/HRMTw4svvshL\nL73EH//4R6qqqggODmbhwoWYTCZmzJjBggUL+OMf/4hhGCQkJNTP2XT48GEmTZoEnA6X/vSnP52z\nzh/mQPqxZ599lri4OEaPHs2TTz7J7Nmz699LSkri4MGDTJ48GcMwGDx4MLfddtsZx3fo0IEpU6Yw\nceJEIiMjmTBhAvv37wfg6quvZvHixUyZMoVHH320/pgL6ROKyKUzGT+sxy0iIiIiIiIiInIOeoRN\nREREREREREQapABJREREREREREQapABJREREREREREQapABJREREREREREQapABJREREREREREQa\n5ObqAi5Ffn55o507KMiH4uKqRju/nEnt7Xxqc+dSezuX2tu5GrO9w8L8GuW88vOoD9ZyqL2dS+3t\nfGpz51J7O5er+mAagfQjbm4WV5dwRVF7O5/a3LnU3s6l9nYutbdcTvp+ci61t3OpvZ1Pbe5cam/n\nclV7K0ASEREREREREZEGKUASEREREREREZEGKUASEREREREREZEGKUASEREREREREZEGKUASERER\nEREREZEGKUASEREREREREZEGKUASEREREREREZEGKUC6jD766N/Mnn0H9947m7vvvo3vv09xdUki\nIiIiLdptt91EVlZm/etbbpnGli2b61//7nePkJQ0kpqaaleUJyIi0mK4ubqAliI7+xQrV37CP//5\nNm5ubmRknOTPf36KgQMHu7o0ERERkRarX78B7NyZStu27SgpKcFqtbJz5w6GDh0GwL59e/n449V4\nenq5uFIREZHmTQHSZVJRUUFtbQ11dXW4ubnRvn0Ur7zyOocOHeCFF/6M2Wyid+8+zJnzAEePHmHh\nwj9jMpnw8WnF/PlPcOTIYT744F2qqqq4997fkJubzQcfvIvF4kb37jHcd99vXP0RRUTkClFda8Mw\nwNvzp7sJJ3LK2XGsiD7RQZhNJidWJ3Kmvn0H8M03mxg37kZ2795JYuJYdu/eCUB6+nEiIyO59dbp\nvP32Ul588VlCQ8M4eHA/ubk5LFjwFN2793DxJxAREbkwDsMg9WA+rYustAv2dvr19QjbZdK1azdi\nYnoxbdqN/OlPT7B+/efYbDZeeul5fvvbefztb29SVFRITk42f/nL89xzzwO88srrxMf348MPPwD4\nT7D0ClFRHViy5A3+8pfXeOWV18nLy63vCImIiDSW8qpakjce5TevfMODL2/mo6+OYq2xnbFPTa2d\nD9Yf5g9LvufV5F1UVdt+4mwiztG3b7/6ftKuXTsYMGAQdrudmppqdu5MpW/fAWfsX1tby8KFrzBt\n2gzWrFnlipJFREQu2uHMEv709jZe/WQv76094JIaWuQIpH9vOML3B/Iu6ViLxYTdbpy1fWCPcKYn\ndGnw2N///g+kpx/nu++28N57b/PJJ8mcPJlOly5d69+H03fDevXqDZwedr148ev07dufLl264uHh\nweHDh8jNzeGhh+4FoLKygpycHOLiLukjiYiINKisspY1353ky9QsaursBLTywGw2sWrLCb7enc3k\nazoxLLYNaelFvL3mIIVl1YQHenP/jL74eru7unxpQlzRB/P3D8Db25v8/Dz27dvL7Nm/pmfPXqSl\n7WX37p2MHXsD69Z9Vr9/nz59AQgLi2DfvrRLqlVERMRZ8kusfLjxKNv+8//roJhwfjmlD9jsTq+l\nRQZIrmAYBrW1tXTsGE3HjtFMmXITN988lZKSkgaPs9nqMJtPDwRzd3f/z9+nH1tbuPCVRq9bRERa\nBrvDwfHscswmE6283Wjl5Y6Ppxtm87kfLysosbL3eBF7jhWSdryIWpuDQF8PplzbiWv6RGIYsPa7\n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\nVVWlSZMmqaamxuwyQ87777+vO++8U5Lod5C1tbVp69atqqqq0rZt2/TVV1/R8yD6+OOPNXnyZFVW\nVmrTpk3+5+7CwkLt3r1bnZ2d+vrrr80uc8Tr7u7WmjVrlJ2d7T822HXd3d2trVu36qOPPlJlZaV2\n7NihK1cS66vlAAAGx0lEQVSumFg5RgLylzHIYOYggxmD/GU8MljwWTV/MUC6zu12Kzc3V5KUnJys\n9vZ2dXZ2mlxVaJk5c6Y2bdokSYqNjdW1a9dUV1enRx55RJL08MMPy+12m1liyGlsbNTp06c1b948\nSaLfQeZ2u5Wdna2YmBi5XC6tWbOGngdRfHy8/wWyo6NDcXFxampq8q9eoN/DIyIiQh988IFcLpf/\n2GDXtcfjUVpamhwOhyIjI5WVlaX6+nqzysYIQf4yBhnMeGQw45C/jEcGCz6r5i8GSNd5vV7Fx8f7\nbyckJKilpcXEikJPeHi4oqKiJEk1NTV66KGHdO3aNf9y0sTERHo+zMrKyrR8+XL/bfodXBcuXFBP\nT49eeeUVLV68WG63m54H0YIFC3Tx4kU9+uijysvLU0FBgWJjY/3n6ffwsNvtioyMvOHYYNe11+tV\nQkKC///wOoqhIH8ZgwxmPDKYcchfxiODBZ9V8xefgXQTPp/P7BJC1pdffqmamhp9+OGHmj9/vv84\nPR9en3zyiTIzM3X33XcPep5+B8eVK1f03nvv6eLFi3r22Wdv6DM9H1779u1TUlKSKioq9P3332vJ\nkiVyOBz+8/TbGDfrM/3H/4PrJrjIYMYggxmP/GUsMpj5zMpfDJCuc7lc8nq9/tvNzc1yOp0mVhSa\nDh8+rG3btqm8vFwOh0NRUVHq6elRZGSkfv755xuW6OHWHDp0SOfPn9ehQ4d06dIlRURE0O8gS0xM\n1IwZM2S32zVx4kRFR0crPDycngdJfX29cnJyJEnTpk1Tb2+v+vr6/Ofpd/AM9lwy2OtoZmamiVVi\nJCB/GYcMZhwymLHIX8Yjg5nDCvmLLWzXzZ49WwcPHpQkNTQ0yOVyKSYmxuSqQsvVq1e1fv16bd++\nXXFxcZKkBx980N/3L774QnPmzDGzxJCyceNG7d27V3v27NGiRYuUn59Pv4MsJydHtbW1GhgYUFtb\nm7q7u+l5EE2aNEkej0eS1NTUpOjoaCUnJ+vYsWOS6HcwDXZdZ2Rk6LvvvlNHR4e6urpUX1+vBx54\nwORKYXXkL2OQwYxFBjMW+ct4ZDBzWCF/2XysL/PbsGGDjh07JpvNpuLiYk2bNs3skkJKdXW1tmzZ\nosmTJ/uPlZaW6u2331Zvb6+SkpK0bt06jRo1ysQqQ9OWLVs0fvx45eTkaNmyZfQ7iHbv3u3/Sx+v\nvvqq0tLS6HmQdHV1qbCwUK2trerr69Prr78up9OplStXamBgQBkZGVqxYoXZZY54J06cUFlZmZqa\nmmS32zV27Fht2LBBy5cv/5/r+sCBA6qoqJDNZlNeXp6eeOIJs8vHCED+Cj4ymHnIYMYgfxmLDBZ8\nVs1fDJAAAAAAAAAQEFvYAAAAAAAAEBADJAAAAAAAAATEAAkAAAAAAAABMUACAAAAAABAQAyQAAAA\nAAAAEJDd7AIA3D4uXLigxx57TDNmzLjh+Ny5c/Xiiy/e8vevq6vTxo0btWvXrlv+XgAAAKGCDAZg\nODBAAmCohIQEVVZWml0GAADAbYUMBuBWMUACYAnTp09Xfn6+6urq1NXVpdLSUt13333yeDwqLS2V\n3W6XzWbTypUrde+99+rMmTMqKirSwMCARo8erXXr1kmSBgYGVFxcrFOnTikiIkLbt29XdHS0yY8O\nAADAmshgAIaKz0ACYAn9/f2aOnWqKisr9fTTT2vz5s2SpIKCAq1YsUKVlZV6/vnntXr1aklScXGx\nXnjhBe3cuVMLFy7U559/LklqbGzU0qVLtWfPHtntdh05csS0xwQAAGB1ZDAAQ8UKJACGunz5sp55\n5pkbjr311luSpJycHElSVlaWKioq1NHRodbWVqWnp0uSZs2apTfeeEOS9O2332rWrFmSpAULFkj6\nbf/9lClTNGbMGEnSuHHj1NHREfwHBQAAYHFkMAC3igESAEMF2n/v8/n8/7bZbLLZbDc9L/22VPr3\nwsPDh6FKAACA0EIGA3Cr2MIGwDJqa2slScePH1dKSoocDoecTqc8Ho8kye12KzMzU9Jv75AdPnxY\nkvTZZ5/p3XffNadoAACAEY4MBmAoWIEEwFCDLZ+eMGGCJOnkyZPatWuX2tvbVVZWJkkqKytTaWmp\nwsPDFRYWplWrVkmSioqKVFRUpKqqKtntdpWUlOjcuXOGPhYAAICRggwG4FbZfL9fjwgAJkhJSVFD\nQ4PsdubaAAAARiGDARgqtrABAAAAAAAgIFYgAQAAAAAAICBWIAEAAAAAACAgBkgAAAAAAAAIiAES\nAAAAAAAAAmKABAAAAAAAgIAYIAEAAAAAACAgBkgAAAAAAAAI6L+VuaPsW7FAkwAAAABJRU5ErkJg\ngg==\n", + "text/plain": [ + "<Figure size 1440x360 with 2 Axes>" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "EU0QtVJ5FJN6", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 349 + }, + "outputId": "ed8e452d-a01c-4af1-8fb2-be60d9bd0dca" + }, + "cell_type": "code", + "source": [ + "visualization_score(history_fc)" + ], + "execution_count": 39, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABJYAAAFMCAYAAACZCjadAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3Xd4VGX6xvHvzGTSSK+Q0AKBUFLo\nSFMIJVRBlCJSVFZWRXR3dS2sy+quu7rrLlZsqyJYEIlIEaWIlEUhlBQg1ISWENI76cn8/uBndhFE\niGQmJPfnurhkzsycc8/DIG+e8573GCwWiwUREREREREREZFrZLR1ABERERERERERuTGpsSQiIiIi\nIiIiInWixpKIiIiIiIiIiNSJGksiIiIiIiIiIlInaiyJiIiIiIiIiEidqLEkIiIiIiIiIiJ1osaS\niPykgwcPMmvWLEaOHElUVBRTpkxh7969Vs+xcuVKunXrxsiRIy/6NWvWrDrvMyQkhPT09Cu+5sSJ\nE+zZsweATZs28dRTT9X5eCIiItI03HrrrXz55Ze1jysqKoiIiGDdunW128rLywkLC+PUqVPMmjWL\nxMTEaz7OmjVrGDlyJMOGDWPJkiU/+brXXnuNP/zhD9e8/18iJiaG0NDQS8ZuI0eOrPM+IyMjf3Yc\nmp2dzebNmwHYv38/s2fPrvPxROTq2dk6gIg0TBaLhfvvv5/nnnuOwYMHA7Bx40bmzp3L1q1bcXJy\nsmqebt268cEHH1j1mN988w1VVVX07t2b4cOHM3z4cKseX0RERG48AwYMYNeuXYwdOxaA+Ph4nJyc\niImJYcyYMQDExsbi6+tL27Ztr9gUupKXXnqJlStXYjabGTp0KHfddRd2dg3nx7sWLVqwfv16qx4z\nJiaG77//nqFDhxIeHs57771n1eOLNFWasSQil5WXl0dWVhYRERG120aMGMHq1atrm0rvvPMOQ4cO\nJSoqiueffx6LxQLA0qVLGT16NCNHjuSBBx4gNzcXgCeffJLnn3+ecePG8fXXX1NRUcFzzz1HVFQU\nkZGRvPXWW9ecMykpiT59+lBVVVW77cEHH2TZsmWUl5ezYMECoqKiGDVqFC+88ALV1dUXvX/lypXc\nfffdlzz+9ttvefvtt1m6dCkvvPDCRa/Lz8/nkUceISoqitGjR/POO+/Uvj8kJIRVq1YxYcIEBg4c\naPVmmIiIiNhW//792blzZ+3jXbt2cccddxATE3PRtv79+wP/nYmTmprKwIEDWbp0KePGjWPQoEF8\n9dVXP3mcmpoaPD09ycjIwMPDo05NpZiYGG677TZGjhzJpEmTOHDgAAAZGRnMmjWL0aNHM2zYMF56\n6SXgwonH119/naioKIYMGcJzzz13ydjq5xQWFhIeHl47PgT461//yj//+U9qamp46aWXamc3Pfnk\nk5SUlFyS+X9P9v3wODExkT//+c9s2LCB3/72txe97kpjwsjISD799FPuuOMOBg4cyAsvvHDNdRRp\n6tRYEpHL8vT0JCwsjJkzZ7JixQpSUlIAaN68OQB79+4lOjqa1atXs3btWvbt28f69euJj4/nvffe\n48MPP2T9+vUEBATwr3/9q3a/O3fuJDo6mlGjRvHvf/+bpKQk1q5dy5dffsmGDRvYsmXLNeUMDg7G\nx8endmp0aWkpu3btIioqiiVLlpCens66dev44osv2Lt370VT068kMjKS4cOHM3PmTJ588smLnlu4\ncCHu7u5s2LCBTz75hGXLll00NTspKYlVq1bxxhtvsHDhwmsecImIiMiNq3fv3mRmZpKamgpcaCKN\nGDECi8VCRkZG7bYfGkv/Ky8vD6PRyNq1a5k/fz4vv/zyTx6nY8eOPPnkk/zud79j4cKF15zz/Pnz\nPPLIIzz99NOsX7+eX/3qVzz22GPU1NTwwQcf0Lt3b7766ivWrl1LSkoKmZmZrF69mvXr1xMdHc2m\nTZtISUlh2bJl13RcNzc3+vbte9GYb/PmzYwaNYqvv/6a7du3s3LlStatW0dhYeFVn6Tr2rUr06dP\nJyoqqrYR9oOfGxPu2bOH5cuX8/nnn/PRRx/97HIJInIxNZZE5LIMBgOLFy9m+PDhLF26lGHDhjFm\nzBg2btwIwPbt27nllltwcXHB3t6eDz/8kBEjRrB161aioqLw9vYGYNKkSXz33Xe1++3Xrx8ODg4A\nbNmyhWnTpmFvb4+zszPjx4+v3f+PxcfHX3KN/uLFiwGIiori22+/BeA///kP4eHheHl5sXXrViZP\nnoydnR2Ojo6MGzfuoix1tW3bNqZNmwaAh4cHw4cPv2i/48ePBy4McMrLy8nJyfnFxxQREZEbg6Oj\nIz179mTnzp2UlpaSnJxM165d6d27N7t27aK4uJjExET69et3yXurqqqYOHEicGEckZaWdtljLFu2\njOTkZOLi4oiOjqZr1658/PHH5OXlXXXO/fv307x5c3r27AlcGE/l5eVx9uxZvL292bFjB3v37sXe\n3p6FCxfi5+fHli1buP3223F1dcXOzo5Jkyb95Njt3Llzl4zdfpgN9L9jt8TEROzs7OjatStbt25l\nwoQJODs7YzKZmDhx4nUZu/3cmHDcuHGYTCb8/f3x9vbm3Llzv/iYIk1Jw7kIV0QaHFdXVx5++GEe\nfvhhsrOzWblyJb/73e9YvXo1eXl5+Pn51b72h8vjcnNzL9ru5uZ2UWPF3d299vdFRUU8//zztWfZ\nKioqCA8Pv2yWK62xFBUVxUMPPcT8+fP55ptvGD16dG2W/z2eu7v7dWny5Obm4ubmVvvYzc2NzMzM\n2seurq4AmEwm4MJUdREREWk6+vfvz65duwgICCAiIgKTyUSfPn2IiYnBw8ODjh074unpecn7TCYT\nzs7OABiNxsuOIWJjY/nwww9Zs2YN8+bNY/PmzURGRvL+++8zZcqUq8744/EMXBjD5OTkcPfdd1NT\nU8Ozzz5LZmYmd911F/PmzaOoqIj33nuP5cuXA1BdXY2Xl9dl93+lNZaGDRvGCy+8QHl5Od988w2j\nRo2qzVRfY7cr7dfFxaX29yaTSbPNRa6RGksiclnp6emkpqbSq1cvAHx8fJgzZw7r16/n+PHjeHp6\nXnRW7Iff+/j4kJ+fX7s9Pz8fHx+fyx7Dz8+Pe++9lyFDhvyirJ06dcJkMnHkyBF27NhRe/e2q8li\nNBovGjwUFhb+7PF+2G9AQMBP7ldERESaroEDB/LJJ5/QunVr+vTpA0Dfvn1ZtGgR3t7eDBgwoM77\njo2NZciQIbi4uPDss89y9913k5CQwIgRI65pnSVvb++LxkkWi4WCggK8vb2xs7Njzpw5zJkzh5Mn\nT3LffffRs2dP/Pz8iIyMZPr06XXODxdmfIeHh7Nz506++eYbXnzxReDqxm4/bvxcy9jtSvsVkbrT\npXAiclnnzp1j7ty5HDx4sHbb/v37SUtLIywsjMjISL799lsKCgqoqqpi7ty57Nixg8GDB7Np06ba\nRtOnn37KLbfcctljDB06lBUrVlBdXY3FYuGNN95g+/btdcobFRXFa6+9RufOnWvPAA4ePJjo6Giq\nq6spKSlh9erVl2Tx8/Pj5MmTlJeXU1paetGZNTs7O4qKii451uDBg2vP1OXm5rJp06baO+eJiIiI\ndO7cuXY2Tt++fYH/rlO5bdu2y66vdLWCgoLYvXs3paWltG7duna20g93nLta4eHhZGdnExcXB8C6\ndeto3rw5LVu2ZMGCBbWXirVu3RofHx8MBgNDhw5l9erVlJaWAhfGeV988UWdPkdUVBSfffYZlZWV\ndOrUCbgwxlqzZg2lpaVUVVURHR19ydjN19eXrKwscnJyqK6uZu3atbXPXWns9nNjQhGpO81YEpHL\n6t69O3/5y1945plnKCoqoqamBh8fH1566SUCAwMJDAxk9uzZTJgwAXt7ewYNGsTYsWMxGAzMmTOH\nu+66i5qaGjp37swzzzxz2WNMmzaN1NRUxowZg8ViITQ0lFmzZl32tT+ssfRjS5Yswd/fn6ioKCZO\nnMhzzz1X+9yMGTNISUlhzJgxGAwGRo4cWTvV+gd9+/YlIiKCqKgoWrZsydChQ2sHUkOGDOGxxx7j\n7NmzFzWOfvOb3/DMM88wcuRIjEYjc+bM+clL+ERERKTpMRgM9OvXj+3bt9OlS5fa7b179+bLL7+s\nXdeoLoYOHUpsbCzjx4+nurqa4OBgnnzySX7zm98QGBjIkiVLLnnPhg0b2LdvX+3jzp0789JLL/Hy\nyy/zl7/8hZKSEry8vFi4cCEGg4GpU6eyYMEC/vKXv2CxWIiMjKxdE+r48ePcdtttwIWm01//+tfL\n5vxhjaUf+8c//kF4eDjDhw/n2WefZc6cObXPjRw5kqNHjzJx4kQsFgt9+/Zl5syZF72/TZs23H77\n7UyYMIGAgADGjx/P4cOHARgwYACLFy/m9ttv5/HHH699z9WMCUWk7gyWH+4PLiIiIiIiIiIicg10\nKZyIiIiIiIiIiNSJGksiIiIiIiIiIlInaiyJiIiIiIiIiEidqLEkIiIiIiIiIiJ1osaSiIiIiIiI\niIjUiZ2tA1xPWVlF9bZvT09n8vJK6m3/cjHV27pUb+tTza1L9bau+qy3r69rvexXfhmNwRoP1du6\nVG/rUr2tTzW3LluNwTRj6SrZ2ZlsHaFJUb2tS/W2PtXculRv61K95XrS98m6VG/rUr2tS/W2PtXc\numxVbzWWRERERERERESkTtRYEhERERERERGROlFjSURERERERERE6kSNJRERERERERERqRM1lkRE\nREREREREpE7UWBIRERERERERkTpRY0lEREREREREROqkwTeW/va3vzFlyhSmTp3K/v37bR2nTj7/\n/DPmzLmbhx6aw333zWTPnhhbRxIRERFp1GbOnMLZs6m1j6dPn8TOnTtqHz/11GOMHDmE8vIyW8QT\nERFpNOxsHeBKdu/ezenTp1m+fDnJycnMnz+f5cuX2zrWNTl3Lo21a1fx7rtLsbOzIyXlDH//+3P0\n7t3X1tFEREREGq0ePXoRHx9LYGBL8vPzKS0tJT4+jn79BgJw6NBBvvjiKxwcHG2cVERE5MbWoBtL\nO3fuZNiwYQC0b9+egoICiouLcXFxsWqOw6dyOZRSQMcAV+xM1zbJq7i4mIqKciorK7Gzs6NVq9a8\n/vo7HDt2hH/96+8YjQZCQyOYO/cRkpOTWLjw7xgMBpydm/H008+QlHScTz/9iJKSEh566LdkZJzj\n008/wmSyIySkM/Pm/baePrWIiIjIjat791589912xoy5lf3744mKGs3+/fEAnDp1koCAAGbMmMzS\npct56aV/4OPjy9Gjh8nISGfBgucICelk408gIiJydaprqtmbEU8nY1vc8bb68Rt0Yyk7O5uuXbvW\nPvby8iIrK+snG0uens7Y2Zmue45/fZZA4okc/L2cmTS0I5G9WmG2u7oGk69vT7p378aUKeO55ZZb\nuPnmmxkxYgSLFr3E3/72HJ06deLxxx+noqKQN954iT/84SkiIiJ47733WLduJX379uXUqRNs2LCB\nyspKpk9/nuXLl2Nvb88jjzzCmTPH6Nmz53X/zA2Br6+rrSM0Kaq39anm1qV6W5fq3fCsWbOGd999\nFzs7Ox5++GFCQkJ4/PHHqa6uxtfXlxdffBF7e3vWrFnDkiVLMBqNTJ48mUmTJtk6ep10796DN998\nFYCEhDgGDBhEXNw+ysvLiI+PpXv3Xmzc+HXt6ysqKli48HVWrYpm/fp1aiyJiMgN4VThGZYdWUlq\ncRoDzvdiWvBkq2do0I2lH7NYLFd8Pi+v5IrPf/ZtEnuOZF7zcWssFpwc7MjILeH1FfG8ER2Pk4Md\njvYmenfyZ3Jk8BXf//vf/5FJk06ye/dO3nrrHZYu/YiTJ5Px9g4kK6uI3//+jwAcP55EQEA7srKK\n6NgxjMWL3yEkJIygoPYUFJSTmHiQs2fPMmPGLADOny/myJETtG7d8Zo/U0Pn6+tKVlaRrWM0Gaq3\n9anm1qV6W1d91lsNq7rJy8tj0aJFfP7555SUlPDaa6+xYcMGpk2bxqhRo1i4cCHR0dFMmDCBRYsW\n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\ngg==\n", + "text/plain": [ + "<Figure size 1440x360 with 2 Axes>" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "8oSFGj02gDOr", + "colab_type": "code", + "outputId": "61a0c83e-d790-48a2-f43a-114ef4b66059", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 293 + } + }, + "cell_type": "code", + "source": [ + "HTML(display_videos('cnn_test10.mp4'))" + ], + "execution_count": 40, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "<video alt=\"test\" controls>\n", + " <source src=\"data:video/mp4;base64,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AAABEAEQAEgAAABIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY//8AAAAvYXZjQwH0AA3/4QAXZ/QADZGbKCIR0IAAAAMAgAAAGQeKFMsBAAVo6+PESAAAABhzdHRzAAAAAAAAAAEAAADKAAACAAAAABRzdHNzAAAAAAAAAAEAAAABAAAGAGN0dHMAAAAAAAAAvgAAAAMAAAQAAAAAAQAABgAAAAABAAACAAAAAAQAAAQAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAGAAAAAAEAAAIAAAAAAgAABAAAAAABAAAGAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAEAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAgAABAAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAIAAAAAAIAAAIAAAAAAQAACAAAAAACAAACAAAAAAIAAAQAAAAAAQAABgAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAABAAAAAABAAAIAAAAAAIAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAEAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAEAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAgAABAAAAAABAAAGAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAHHN0c2MAAAAAAAAAAQAAAAEAAADKAAAAAQAAAzxzdHN6AAAAAAAAAAAAAADKAAAFugAAABcAAAAbAAAAIQAAABQAAAAcAAAAHQAAAB0AAAAdAAAAGgAAABIAAAAUAAAAFAAAABcAAAAQAAAAFAAAABQAAAAXAAAAEAAAABQAAAAUAAAAFwAAABAAAAAUAAAAFAAAABcAAAAQAAAAFAAAABQAAAAXAAAAEAAAABQAAAAUAAAAFwAAABAAAAAUAAAAFAAAABcAAAAQAAAAFAAAABQAAAAXAAAAEAAAABQAAAAUAAAAFwAAABAAAAAUAAAAFAAAABcAAAAQAAAAFAAAABQAAAAXAAAAEAAAABQAAAAUAAAAFwAAABAAAAAUAAAAFAAAABcAAAAQAAAAFAAAABQAAAAWAAAAEAAAABQAAAAUAAAAFgAAABAAAAAUAAAAFAAAACEAAAAUAAAAHQAAAB0AAAAgAAAAFAAAABYAAAAQAAAAFAAAABQAAAAXAAAAEAAAABQAAAAUAAAAFgAAABAAAAAUAAAAFAAAABYAAAAQAAAAFAAAABQAAAAeAAAAFQAAABYAAAAUAAAAFAAAAB4AAAAdAAAAHwAAABQAAAAUAAAAEwAAABcAAAAQAAAAFAAAABQAAAAWAAAAEAAAABQAAAAUAAAAHgAAABMAAAARAAAAHAAAABUAAAASAAAAIAAAABsAAAAfAAAAEwAAABUAAAAQAAAAFAAAABQAAAAeAAAAHwAAABUAAAATAAAAHwAAABQAAAAUAAAAEwAAABcAAAAVAAAAFAAAABQAAAAXAAAAEAAAABQAAAAUAAAAFwAAABAAAAAUAAAAFAAAABcAAAAQAAAAFAAAABQAAAAXAAAAEAAAABQAAAAUAAAAIAAAABQAAAATAAAAFAAAAB4AAAAWAAAAEAAAABQAAAAUAAAAFgAAABAAAAAUAAAAFAAAAB4AAAAeAAAAGQAAABMAAAATAAAAIAAAABQAAAAUAAAAEwAAABYAAAAQAAAAFAAAABQAAAAWAAAAEAAAABQAAAAUAAAAHQAAAB0AAAAfAAAAFAAAABUAAAAQAAAAFAAAABQAAAAWAAAAEAAAABQAAAAUAAAAHgAAACcAAAAUAAAAKQAAABRzdGNvAAAAAAAAAAEAAAAwAAAAYnVkdGEAAABabWV0YQAAAAAAAAAhaGRscgAAAAAAAAAAbWRpcmFwcGwAAAAAAAAAAAAAAAAtaWxzdAAAACWpdG9vAAAAHWRhdGEAAAABAAAAAExhdmY1Ny44My4xMDA=\" type=\"video/mp4\" />\n", + " </video>" + ], + "text/plain": [ + "<IPython.core.display.HTML object>" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 40 + } + ] + }, + { + "metadata": { + "id": "SqVzfn-BgDOy", + "colab_type": "code", + "outputId": "9c9402bb-f538-49e8-9ec4-31bcf69ca67f", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 293 + } + }, + "cell_type": "code", + "source": [ + "HTML(display_videos('fc_test10.mp4'))" + ], + "execution_count": 41, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "<video alt=\"test\" controls>\n", + " <source src=\"data:video/mp4;base64,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AAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAIAAAAAAIAAAIAAAAAAQAABgAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACAAAAAACAAACAAAAAAEAAAgAAAAAAgAAAgAAAAABAAAEAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAEAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAABgAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAGAAAAAAEAAAIAAAAAAQAABgAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAEAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAEAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAGAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACAAAAAACAAACAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAygAAAAEAAAM8c3RzegAAAAAAAAAAAAAAygAABW8AAAAYAAAAGwAAABcAAAAUAAAAFAAAAB4AAAATAAAAEwAAACMAAAAUAAAAFgAAABAAAAATAAAAEwAAABcAAAAQAAAAEwAAABMAAAAWAAAAEAAAABMAAAATAAAAFgAAABAAAAATAAAAEwAAAB0AAAAWAAAAEwAAACAAAAAdAAAAHQAAABoAAAASAAAAEwAAABMAAAAgAAAAGgAAABIAAAAUAAAAFAAAABcAAAAQAAAAFAAAABQAAAAXAAAAEAAAABQAAAAUAAAAFwAAABAAAAAUAAAAFAAAACAAAAAUAAAAFAAAABMAAAAXAAAAEAAAABMAAAATAAAAIgAAABQAAAAUAAAAEwAAABcAAAAQAAAAFAAAABQAAAAXAAAAEAAAABQAAAAUAAAAFwAAABAAAAAUAAAAFAAAABcAAAAQAAAAFAAAABQAAAAXAAAAEAAAABQAAAAUAAAAFwAAABAAAAAUAAAAFAAAABcAAAAQAAAAFAAAABQAAAAXAAAAEAAAABQAAAAUAAAAFwAAABAAAAAUAAAAFAAAABcAAAAQAAAAFAAAABQAAAAWAAAAEAAAABQAAAAUAAAAHgAAABUAAAASAAAAIQAAABQAAAAgAAAAFAAAABMAAAATAAAAHQAAABUAAAASAAAAHgAAABYAAAASAAAAHgAAACIAAAATAAAAHAAAAC4AAAAVAAAAEwAAABQAAAAWAAAAEwAAABYAAAAUAAAAFgAAABQAAAAWAAAAFAAAABYAAAAUAAAAHQAAACMAAAAUAAAAGwAAABIAAAAUAAAAFAAAABcAAAAQAAAAFAAAABQAAAAXAAAAEAAAABQAAAAUAAAAFgAAABAAAAAUAAAAFAAAACEAAAAUAAAAHQAAABoAAAASAAAAFAAAABMAAAAXAAAAEAAAABQAAAATAAAAHAAAABMAAAAfAAAAFAAAABMAAAAUAAAAIAAAABUAAAATAAAAFAAAABcAAAAQAAAAEwAAABQAAAAXAAAAGAAAABMAAAAUAAAAFgAAABQAAAATAAAAFAAAABYAAAAUAAAAEwAAABQAAAAeAAAAKwAAACkAAAAUc3RjbwAAAAAAAAABAAAAMAAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTcuODMuMTAw\" type=\"video/mp4\" />\n", + " </video>" + ], + "text/plain": [ + "<IPython.core.display.HTML object>" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 41 + } + ] + }, + { + "metadata": { + "id": "bzLVK74UgDO7", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "Test both algorithms and compare their performances. \n", + "- CNN Agent is better than FC Agent when we compare the final score.\n", + "\n", + "Which issue(s) do you observe? \n", + "- Each Agent can be blocked in a cycle.\n", + "- Why? Each Agent don't remember where they are passed in the Environment.\n", + "- Sometimes, because of the Exploration strategy, the Agents choose a bad action wheras the Exploitation strategy can suggest a better action to choose.\n", + "\n", + "Observe also different behaviors by changing the temperature.\n", + "- The Agents are blocked earlier when temperature is lower." + ] + }, + { + "metadata": { + "id": "datBQO5VgDO8", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "***\n", + "\n", + "The algorithm tends to not explore the map which can be an issue. We propose two ideas in order to encourage exploration:\n", + "1. Incorporating a decreasing $\\epsilon$-greedy exploration. You can use the method ```set_epsilon```\n", + "2. Append via the environment a new state that describes if a cell has been visited or not\n", + "\n", + "***\n", + "__Question 10__ Design a new ```train_explore``` function and environment class ```EnvironmentExploring``` to tackle the issue of exploration.\n", + "\n" + ] + }, + { + "metadata": { + "id": "yhWQxdIp-L1b", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "def train_explore(agent,env,epoch,prefix=''):\n", + " # Number of won games\n", + " score = 0\n", + " loss = 0\n", + " eps = 0.1\n", + " history = {'score':[0],'win':[0],'lose':[0]}\n", + "\n", + " for e in range(1,epoch+1):\n", + " # At each epoch, we restart to a fresh game and get the initial state\n", + " state = env.reset()\n", + " eps = 0.2/(1+np.log(e))\n", + " agent.set_epsilon(eps)\n", + " \n", + " # This assumes that the games will terminate\n", + " game_over = False\n", + "\n", + " win = 0\n", + " lose = 0\n", + "\n", + " while not game_over:\n", + " # The agent performs an action\n", + " action = agent.act(state)\n", + "\n", + " # Apply an action to the environment, get the next state, the reward\n", + " # and if the games end\n", + " prev_state = state\n", + " state, reward, game_over = env.act(action, train=True)\n", + "\n", + " # Update the counters\n", + " if reward > 0:\n", + " win = win + reward\n", + " if reward < 0:\n", + " lose = lose - reward\n", + "\n", + " # Apply the reinforcement strategy\n", + " loss = agent.reinforce(prev_state, state, action, reward, game_over)\n", + "\n", + " # Save as a mp4\n", + " if e % 10 == 0:\n", + " env.draw(prefix+str(e))\n", + "\n", + " # Update stats\n", + " score += win-lose\n", + " history['score'].append(score)\n", + " history['win'].append(history['win'][-1]+win)\n", + " history['lose'].append(history['lose'][-1]+lose)\n", + "\n", + " print(\"Epoch {:03d}/{:03d} | Loss {:.4f} | Eps {:.4f} | Win/lose count {}/{} ({})\"\n", + " .format(e, epoch, loss, eps, win, lose, win-lose))\n", + " agent.save(name_weights=prefix+'model.h5',name_model=prefix+'model.json')\n", + " \n", + " return history" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "z3BSd_acgDO-", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "class EnvironmentExploring(Environment):\n", + " def __init__(self, grid_size=10, max_time=500, temperature=0.1):\n", + " super(EnvironmentExploring, self).__init__(grid_size = grid_size, max_time = max_time, temperature = temperature)\n", + " self.malus_position = np.zeros((self.grid_size,self.grid_size))\n", + " \n", + " def act(self, action, train=False):\n", + " \"\"\"This function returns the new state, reward and decides if the\n", + " game ends.\"\"\"\n", + "\n", + " self.get_frame(int(self.t))\n", + "\n", + " self.position = np.zeros((self.grid_size, self.grid_size))\n", + "\n", + " self.position[0:2,:]= -1\n", + " self.position[:,0:2] = -1\n", + " self.position[-2:, :] = -1\n", + " self.position[:, -2:] = -1\n", + "\n", + " self.position[self.x, self.y] = 1\n", + " if action == 0:\n", + " if self.x == self.grid_size-3:\n", + " self.x = self.x-1\n", + " else:\n", + " self.x = self.x + 1\n", + " elif action == 1:\n", + " if self.x == 2:\n", + " self.x = self.x+1\n", + " else:\n", + " self.x = self.x-1\n", + " elif action == 2:\n", + " if self.y == self.grid_size - 3:\n", + " self.y = self.y - 1\n", + " else:\n", + " self.y = self.y + 1\n", + " elif action == 3:\n", + " if self.y == 2:\n", + " self.y = self.y + 1\n", + " else:\n", + " self.y = self.y - 1\n", + " else:\n", + " RuntimeError('Error: action not recognized')\n", + "\n", + " self.t = self.t + 1\n", + " \n", + " # You will have to change n_state to 3 because you will use one more layer!\n", + " reward = 0\n", + " if train:\n", + " reward = -self.malus_position[self.x, self.y]\n", + " self.malus_position[self.x, self.y] = 0.1\n", + " \n", + " reward = reward + self.board[self.x, self.y]\n", + " \n", + " self.board[self.x, self.y] = 0\n", + " game_over = self.t > self.max_time\n", + " \n", + " # 3 \"feature\" states instead of 2\n", + " state = np.concatenate((self.malus_position.reshape(self.grid_size, self.grid_size,1),\n", + " self.board.reshape(self.grid_size, self.grid_size,1),\n", + " self.position.reshape(self.grid_size, self.grid_size,1)),axis=2)\n", + " \n", + " state = state[self.x-2:self.x+3,self.y-2:self.y+3,:]\n", + "\n", + " return state, reward, game_over\n", + " \n", + " def reset(self):\n", + " \"\"\"This function resets the game and returns the initial state\"\"\"\n", + "\n", + " self.x = np.random.randint(3, self.grid_size-3, size=1)[0]\n", + " self.y = np.random.randint(3, self.grid_size-3, size=1)[0]\n", + "\n", + " self.malus_position = np.zeros((self.grid_size,self.grid_size))\n", + "\n", + " bonus = 0.5*np.random.binomial(1,self.temperature,size=self.grid_size**2)\n", + " bonus = bonus.reshape(self.grid_size,self.grid_size)\n", + "\n", + " malus = -1.0*np.random.binomial(1,self.temperature,size=self.grid_size**2)\n", + " malus = malus.reshape(self.grid_size, self.grid_size)\n", + "\n", + " self.to_draw = np.zeros((self.max_time+2, self.grid_size*self.scale, self.grid_size*self.scale, 3))\n", + "\n", + "\n", + " malus[bonus>0]=0\n", + "\n", + " self.board = bonus + malus\n", + "\n", + " self.position = np.zeros((self.grid_size, self.grid_size))\n", + " self.position[0:2,:]= -1\n", + " self.position[:,0:2] = -1\n", + " self.position[-2:, :] = -1\n", + " self.position[:, -2:] = -1\n", + " self.board[self.x,self.y] = 0\n", + " self.t = 0\n", + "\n", + " state = np.concatenate((self.malus_position.reshape(self.grid_size, self.grid_size,1),\n", + " self.board.reshape(self.grid_size, self.grid_size,1),\n", + " self.position.reshape(self.grid_size, self.grid_size,1)),axis=2)\n", + "\n", + " state = state[self.x - 2:self.x + 3, self.y - 2:self.y + 3, :]\n", + " return state" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "DvbFwTCkgDPE", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1717 + }, + "outputId": "cd1c02e6-2dbb-4f81-c7b6-9587eca6de78" + }, + "cell_type": "code", + "source": [ + "# Training\n", + "env = EnvironmentExploring(grid_size=size, max_time=T, temperature=0.3)\n", + "agent = DQN_CNN(size, lr=.1, epsilon = 0.1, memory_size=2000, batch_size = 32,n_state=3)\n", + "history_cnn = train_explore(agent, env, epochs_train, prefix='cnn_train_explore')" + ], + "execution_count": 43, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Epoch 001/100 | Loss 0.0090 | Eps 0.2000 | Win/lose count 7.5/23.70000000000007 (-16.20000000000007)\n", + "Epoch 002/100 | Loss 0.0082 | Eps 0.1181 | Win/lose count 5.0/21.900000000000045 (-16.900000000000045)\n", + "Epoch 003/100 | Loss 0.0079 | Eps 0.0953 | Win/lose count 7.5/19.10000000000001 (-11.600000000000009)\n", + "Epoch 004/100 | Loss 0.0109 | Eps 0.0838 | Win/lose count 11.5/17.999999999999996 (-6.4999999999999964)\n", + "Epoch 005/100 | Loss 0.0177 | Eps 0.0766 | Win/lose count 3.0/19.600000000000012 (-16.600000000000012)\n", + "Epoch 006/100 | Loss 0.0070 | Eps 0.0716 | Win/lose count 9.5/19.000000000000014 (-9.500000000000014)\n", + "Epoch 007/100 | Loss 0.0089 | Eps 0.0679 | Win/lose count 11.5/18.599999999999998 (-7.099999999999998)\n", + "Epoch 008/100 | Loss 0.0118 | Eps 0.0649 | Win/lose count 16.5/16.999999999999982 (-0.49999999999998224)\n", + "Epoch 009/100 | Loss 0.0074 | Eps 0.0626 | Win/lose count 14.0/15.799999999999963 (-1.7999999999999634)\n", + "Epoch 010/100 | Loss 0.0070 | Eps 0.0606 | Win/lose count 7.5/16.999999999999975 (-9.499999999999975)\n", + "Epoch 011/100 | Loss 0.0051 | Eps 0.0589 | Win/lose count 7.5/15.69999999999996 (-8.19999999999996)\n", + "Epoch 012/100 | Loss 0.0077 | Eps 0.0574 | Win/lose count 13.5/17.699999999999992 (-4.199999999999992)\n", + "Epoch 013/100 | Loss 0.0084 | Eps 0.0561 | Win/lose count 12.0/14.399999999999965 (-2.399999999999965)\n", + "Epoch 014/100 | Loss 0.0120 | Eps 0.0550 | Win/lose count 19.5/16.599999999999973 (2.900000000000027)\n", + "Epoch 015/100 | Loss 0.0110 | Eps 0.0539 | Win/lose count 16.0/14.499999999999972 (1.5000000000000284)\n", + "Epoch 016/100 | Loss 0.0256 | Eps 0.0530 | Win/lose count 11.0/15.69999999999996 (-4.69999999999996)\n", + "Epoch 017/100 | Loss 0.0332 | Eps 0.0522 | Win/lose count 19.0/14.299999999999969 (4.700000000000031)\n", + "Epoch 018/100 | Loss 0.0140 | Eps 0.0514 | Win/lose count 16.5/12.79999999999997 (3.7000000000000295)\n", + "Epoch 019/100 | Loss 0.0334 | Eps 0.0507 | Win/lose count 19.0/16.09999999999997 (2.9000000000000306)\n", + "Epoch 020/100 | Loss 0.0312 | Eps 0.0501 | Win/lose count 15.0/14.199999999999966 (0.8000000000000345)\n", + "Epoch 021/100 | Loss 0.0137 | Eps 0.0494 | Win/lose count 23.5/12.799999999999976 (10.700000000000024)\n", + "Epoch 022/100 | Loss 0.0319 | Eps 0.0489 | Win/lose count 23.0/10.499999999999979 (12.500000000000021)\n", + "Epoch 023/100 | Loss 0.0174 | Eps 0.0484 | Win/lose count 17.0/14.599999999999964 (2.400000000000036)\n", + "Epoch 024/100 | Loss 0.0578 | Eps 0.0479 | Win/lose count 22.5/13.399999999999975 (9.100000000000025)\n", + "Epoch 025/100 | Loss 0.0246 | Eps 0.0474 | Win/lose count 19.0/12.999999999999973 (6.000000000000027)\n", + "Epoch 026/100 | Loss 0.0118 | Eps 0.0470 | Win/lose count 19.0/17.599999999999998 (1.4000000000000021)\n", + "Epoch 027/100 | Loss 0.0191 | Eps 0.0466 | Win/lose count 23.5/13.899999999999972 (9.600000000000028)\n", + "Epoch 028/100 | Loss 0.0292 | Eps 0.0462 | Win/lose count 19.0/14.799999999999976 (4.200000000000024)\n", + "Epoch 029/100 | Loss 0.0248 | Eps 0.0458 | Win/lose count 25.0/13.799999999999974 (11.200000000000026)\n", + "Epoch 030/100 | Loss 0.0262 | Eps 0.0454 | Win/lose count 28.0/12.499999999999979 (15.500000000000021)\n", + "Epoch 031/100 | Loss 0.0301 | Eps 0.0451 | Win/lose count 22.0/13.999999999999973 (8.000000000000027)\n", + "Epoch 032/100 | Loss 0.0322 | Eps 0.0448 | Win/lose count 18.0/14.599999999999971 (3.4000000000000288)\n", + "Epoch 033/100 | Loss 0.0178 | Eps 0.0445 | Win/lose count 20.5/11.99999999999998 (8.50000000000002)\n", + "Epoch 034/100 | Loss 0.0282 | Eps 0.0442 | Win/lose count 19.0/15.399999999999975 (3.6000000000000245)\n", + "Epoch 035/100 | Loss 0.0207 | Eps 0.0439 | Win/lose count 23.5/14.599999999999978 (8.900000000000022)\n", + "Epoch 036/100 | Loss 0.0227 | Eps 0.0436 | Win/lose count 19.0/16.49999999999997 (2.5000000000000284)\n", + "Epoch 037/100 | Loss 0.0227 | Eps 0.0434 | Win/lose count 17.0/13.69999999999997 (3.300000000000029)\n", + "Epoch 038/100 | Loss 0.0248 | Eps 0.0431 | Win/lose count 26.5/12.99999999999998 (13.50000000000002)\n", + "Epoch 039/100 | Loss 0.0117 | Eps 0.0429 | Win/lose count 19.5/18.39999999999999 (1.1000000000000085)\n", + "Epoch 040/100 | Loss 0.0248 | Eps 0.0427 | Win/lose count 15.5/15.599999999999966 (-0.0999999999999659)\n", + "Epoch 041/100 | Loss 0.0160 | Eps 0.0424 | Win/lose count 16.5/15.999999999999966 (0.5000000000000338)\n", + "Epoch 042/100 | Loss 0.0147 | Eps 0.0422 | Win/lose count 25.0/9.499999999999982 (15.500000000000018)\n", + "Epoch 043/100 | Loss 0.0355 | Eps 0.0420 | Win/lose count 21.5/14.199999999999973 (7.300000000000027)\n", + "Epoch 044/100 | Loss 0.0202 | Eps 0.0418 | Win/lose count 23.0/14.799999999999974 (8.200000000000026)\n", + "Epoch 045/100 | Loss 0.0190 | Eps 0.0416 | Win/lose count 22.0/17.099999999999987 (4.900000000000013)\n", + "Epoch 046/100 | Loss 0.0338 | Eps 0.0414 | Win/lose count 24.5/11.799999999999978 (12.700000000000022)\n", + "Epoch 047/100 | Loss 0.0176 | Eps 0.0412 | Win/lose count 24.0/14.399999999999968 (9.600000000000032)\n", + "Epoch 048/100 | Loss 0.0278 | Eps 0.0411 | Win/lose count 17.0/19.0 (-2.0)\n", + "Epoch 049/100 | Loss 0.0253 | Eps 0.0409 | Win/lose count 21.5/14.499999999999973 (7.000000000000027)\n", + "Epoch 050/100 | Loss 0.0168 | Eps 0.0407 | Win/lose count 25.0/14.299999999999972 (10.700000000000028)\n", + "Epoch 051/100 | Loss 0.0229 | Eps 0.0406 | Win/lose count 30.0/11.799999999999981 (18.200000000000017)\n", + "Epoch 052/100 | Loss 0.0202 | Eps 0.0404 | Win/lose count 23.0/13.09999999999998 (9.90000000000002)\n", + "Epoch 053/100 | Loss 0.0147 | Eps 0.0402 | Win/lose count 22.0/13.799999999999974 (8.200000000000026)\n", + "Epoch 054/100 | Loss 0.0212 | Eps 0.0401 | Win/lose count 24.5/15.699999999999973 (8.800000000000027)\n", + "Epoch 055/100 | Loss 0.0211 | Eps 0.0399 | Win/lose count 22.0/10.79999999999998 (11.20000000000002)\n", + "Epoch 056/100 | Loss 0.0175 | Eps 0.0398 | Win/lose count 24.0/10.999999999999977 (13.000000000000023)\n", + "Epoch 057/100 | Loss 0.0293 | Eps 0.0397 | Win/lose count 16.5/13.199999999999976 (3.300000000000024)\n", + "Epoch 058/100 | Loss 0.0238 | Eps 0.0395 | Win/lose count 25.5/13.599999999999973 (11.900000000000027)\n", + "Epoch 059/100 | Loss 0.0198 | Eps 0.0394 | Win/lose count 25.0/12.89999999999997 (12.10000000000003)\n", + "Epoch 060/100 | Loss 0.0161 | Eps 0.0393 | Win/lose count 23.0/11.499999999999979 (11.500000000000021)\n", + "Epoch 061/100 | Loss 0.0277 | Eps 0.0391 | Win/lose count 16.5/11.399999999999977 (5.100000000000023)\n", + "Epoch 062/100 | Loss 0.0153 | Eps 0.0390 | Win/lose count 21.0/11.599999999999978 (9.400000000000022)\n", + "Epoch 063/100 | Loss 0.0166 | Eps 0.0389 | Win/lose count 19.0/13.499999999999972 (5.500000000000028)\n", + "Epoch 064/100 | Loss 0.0118 | Eps 0.0388 | Win/lose count 22.5/15.199999999999974 (7.300000000000026)\n", + "Epoch 065/100 | Loss 0.0153 | Eps 0.0387 | Win/lose count 19.0/12.699999999999974 (6.300000000000026)\n", + "Epoch 066/100 | Loss 0.0173 | Eps 0.0385 | Win/lose count 19.5/14.699999999999973 (4.800000000000027)\n", + "Epoch 067/100 | Loss 0.0164 | Eps 0.0384 | Win/lose count 20.5/18.299999999999997 (2.200000000000003)\n", + "Epoch 068/100 | Loss 0.0164 | Eps 0.0383 | Win/lose count 24.5/11.699999999999978 (12.800000000000022)\n", + "Epoch 069/100 | Loss 0.0247 | Eps 0.0382 | Win/lose count 20.0/13.79999999999997 (6.2000000000000295)\n", + "Epoch 070/100 | Loss 0.0220 | Eps 0.0381 | Win/lose count 26.0/10.399999999999979 (15.600000000000021)\n", + "Epoch 071/100 | Loss 0.0305 | Eps 0.0380 | Win/lose count 17.0/14.399999999999972 (2.600000000000028)\n", + "Epoch 072/100 | Loss 0.0130 | Eps 0.0379 | Win/lose count 16.0/14.399999999999968 (1.6000000000000316)\n", + "Epoch 073/100 | Loss 0.0238 | Eps 0.0378 | Win/lose count 24.0/13.899999999999977 (10.100000000000023)\n", + "Epoch 074/100 | Loss 0.0156 | Eps 0.0377 | Win/lose count 17.0/12.599999999999975 (4.400000000000025)\n", + "Epoch 075/100 | Loss 0.0249 | Eps 0.0376 | Win/lose count 23.0/16.899999999999988 (6.100000000000012)\n", + "Epoch 076/100 | Loss 0.0216 | Eps 0.0375 | Win/lose count 21.5/15.999999999999973 (5.500000000000027)\n", + "Epoch 077/100 | Loss 0.0147 | Eps 0.0374 | Win/lose count 28.5/12.399999999999979 (16.100000000000023)\n", + "Epoch 078/100 | Loss 0.0184 | Eps 0.0373 | Win/lose count 23.5/15.999999999999966 (7.500000000000034)\n", + "Epoch 079/100 | Loss 0.0122 | Eps 0.0372 | Win/lose count 23.5/10.899999999999984 (12.600000000000016)\n", + "Epoch 080/100 | Loss 0.0210 | Eps 0.0372 | Win/lose count 12.5/13.999999999999966 (-1.4999999999999662)\n", + "Epoch 081/100 | Loss 0.0254 | Eps 0.0371 | Win/lose count 24.0/17.299999999999997 (6.700000000000003)\n", + "Epoch 082/100 | Loss 0.0284 | Eps 0.0370 | Win/lose count 21.5/11.899999999999974 (9.600000000000026)\n", + "Epoch 083/100 | Loss 0.0152 | Eps 0.0369 | Win/lose count 26.0/13.999999999999977 (12.000000000000023)\n", + "Epoch 084/100 | Loss 0.0222 | Eps 0.0368 | Win/lose count 18.0/18.299999999999976 (-0.29999999999997584)\n", + "Epoch 085/100 | Loss 0.0258 | Eps 0.0367 | Win/lose count 20.0/11.299999999999978 (8.700000000000022)\n", + "Epoch 086/100 | Loss 0.0277 | Eps 0.0367 | Win/lose count 23.5/14.199999999999973 (9.300000000000027)\n", + "Epoch 087/100 | Loss 0.0195 | Eps 0.0366 | Win/lose count 25.0/13.799999999999981 (11.200000000000019)\n", + "Epoch 088/100 | Loss 0.0212 | Eps 0.0365 | Win/lose count 24.5/13.299999999999976 (11.200000000000024)\n", + "Epoch 089/100 | Loss 0.0141 | Eps 0.0364 | Win/lose count 20.0/12.699999999999982 (7.3000000000000185)\n", + "Epoch 090/100 | Loss 0.0327 | Eps 0.0364 | Win/lose count 22.0/14.899999999999977 (7.100000000000023)\n", + "Epoch 091/100 | Loss 0.0269 | Eps 0.0363 | Win/lose count 22.0/14.699999999999967 (7.300000000000033)\n", + "Epoch 092/100 | Loss 0.0255 | Eps 0.0362 | Win/lose count 23.0/14.999999999999973 (8.000000000000027)\n", + "Epoch 093/100 | Loss 0.0199 | Eps 0.0361 | Win/lose count 26.5/12.499999999999979 (14.000000000000021)\n", + "Epoch 094/100 | Loss 0.0236 | Eps 0.0361 | Win/lose count 16.5/15.599999999999978 (0.9000000000000217)\n", + "Epoch 095/100 | Loss 0.0278 | Eps 0.0360 | Win/lose count 20.0/15.199999999999964 (4.800000000000036)\n", + "Epoch 096/100 | Loss 0.0175 | Eps 0.0359 | Win/lose count 25.5/15.499999999999975 (10.000000000000025)\n", + "Epoch 097/100 | Loss 0.0198 | Eps 0.0359 | Win/lose count 25.5/11.499999999999979 (14.000000000000021)\n", + "Epoch 098/100 | Loss 0.0256 | Eps 0.0358 | Win/lose count 29.5/10.599999999999982 (18.90000000000002)\n", + "Epoch 099/100 | Loss 0.0264 | Eps 0.0357 | Win/lose count 22.0/9.599999999999982 (12.400000000000018)\n", + "Epoch 100/100 | Loss 0.0254 | Eps 0.0357 | Win/lose count 23.5/15.999999999999977 (7.500000000000023)\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "5cvcKwmmIors", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 349 + }, + "outputId": "922b12a5-40af-43cc-98fa-4550dbb507ae" + }, + "cell_type": "code", + "source": [ + "visualization_score(history_cnn)" + ], + "execution_count": 44, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABJYAAAFMCAYAAACZCjadAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3Xd4VGXe//H3lExCICE91NCbCQmE\n3hQCIQFBIgIqorKiuA/Y1oKo6KOr+wNFkFVxXV1FxAIaXYqFKogIRCC0gPSe3gupU35/sOaRBRQi\nmUnI53Vde23mzJxzPucLu7n5zn3uY3A4HA5ERERERERERESukNHVAUREREREREREpHZSY0lERERE\nRERERKpEjSUREREREREREakSNZZERERERERERKRK1FgSEREREREREZEqUWNJRERERERERESqRI0l\nEbmkpKQk7r77bmJjY4mJieHWW29l+/btTs/x5Zdf0qVLF2JjY8/7z913313lY3bo0IG0tLTf/Myx\nY8fYtm0bAGvWrOGpp56q8vlERESkbrjpppv46quvKl+Xl5cTERHB119/XbmtrKyMzp07c+LECe6+\n+2727dt3xedZvnw5sbGxDBkyhIULF17yc2+88QbPPPPMFR//j0hISCAsLOyCsVtsbGyVjxkVFfW7\n49CsrCzWrVsHwJ49e5g0aVKVzycil8/s6gAiUjM5HA7+/Oc/89JLLzFw4EAAVq9ezdSpU9mwYQP1\n6tVzap4uXbrwwQcfOPWca9euxWq10qNHD6Kjo4mOjnbq+UVERKT26devH1u3bmXEiBEA7Nq1i3r1\n6pGQkMCNN94IQGJiIoGBgbRs2fI3m0K/5bXXXuPLL7/Ezc2NwYMHc8cdd2A215x/3jVu3JiVK1c6\n9ZwJCQls3ryZwYMHEx4eznvvvefU84vUVZqxJCIXlZubS2ZmJhEREZXbhg4dyrJlyyqbSu+88w6D\nBw8mJiaGmTNn4nA4APjwww8ZPnw4sbGx/M///A85OTkATJ8+nZkzZzJy5Ei+/fZbysvLeemll4iJ\niSEqKoq33377inMeOXKEnj17YrVaK7dNmTKFTz/9lLKyMp577jliYmIYNmwYs2bNwmaznbf/l19+\nycSJEy94/d133/HPf/6TDz/8kFmzZp33uby8PB5++GFiYmIYPnw477zzTuX+HTp0YOnSpcTFxdG/\nf3+nN8NERETEtfr27cuWLVsqX2/dupUxY8aQkJBw3ra+ffsC/zcT58yZM/Tv358PP/yQkSNHMmDA\nAL755ptLnsdut+Pr60t6ejo+Pj5VaiolJCRw8803Exsby9ixY9m7dy8A6enp3H333QwfPpwhQ4bw\n2muvAee+eHzzzTeJiYlh0KBBvPTSSxeMrX5PQUEB4eHhleNDgL/97W+8+uqr2O12XnvttcrZTdOn\nT6e4uPiCzL/+su+X1/v27eOvf/0rq1at4i9/+ct5n/utMWFUVBSLFy9mzJgx9O/fn1mzZl1xHUXq\nOjWWROSifH196dy5M3fddReff/45p0+fBqBRo0YAbN++nfj4eJYtW8aKFSvYsWMHK1euZNeuXbz3\n3nssWrSIlStX0qRJE+bMmVN53C1bthAfH8+wYcN49913OXLkCCtWrOCrr75i1apVrF+//opytm3b\nloCAgMqp0SUlJWzdupWYmBgWLlxIWloaX3/9Nf/+97/Zvn37eVPTf0tUVBTR0dHcddddTJ8+/bz3\n5s6dS8OGDVm1ahWffPIJn3766XlTs48cOcLSpUt56623mDt37hUPuERERKT26tGjBxkZGZw5cwY4\n10QaOnQoDoeD9PT0ym2/NJZ+LTc3F6PRyIoVK3j66aeZN2/eJc/Tvn17pk+fzqOPPsrcuXOvOOfZ\ns2d5+OGHmTFjBitXruTee+/l8ccfx26388EHH9CjRw+++eYbVqxYwenTp8nIyGDZsmWsXLmS+Ph4\n1qxZw+nTp/n000+v6Lze3t706tXrvDHfunXrGDZsGN9++y0bN27kyy+/5Ouvv6agoOCyv6QLDQ1l\nwoQJxMTEVDbCfvF7Y8Jt27axZMkSvvjiCz766KPfXS5BRM6nxpKIXJTBYGDBggVER0fz4YcfMmTI\nEG688UZWr14NwMaNG7nhhhto0KABFouFRYsWMXToUDZs2EBMTAz+/v4AjB07lh9//LHyuH369MHd\n3R2A9evXM378eCwWC56enowaNary+P9t165dF9yjv2DBAgBiYmL47rvvAPjhhx8IDw/Hz8+PDRs2\nMG7cOMxmMx4eHowcOfK8LFX1/fffM378eAB8fHyIjo4+77ijRo0Czg1wysrKyM7O/sPnFBERkdrB\nw8ODbt26sWXLFkpKSjh69CihoaH06NGDrVu3UlRUxL59++jTp88F+1qtVkaPHg2cG0ekpKRc9Byf\nfvopR48eZefOncTHxxMaGsrHH39Mbm7uZefcs2cPjRo1olu3bsC58VRubi7Jycn4+/uzadMmtm/f\njsViYe7cuQQFBbF+/XpuueUWvLy8MJvNjB079pJjt9TU1AvGbr/MBvr12G3fvn2YzWZCQ0PZsGED\ncXFxeHp6YjKZGD169FUZu/3emHDkyJGYTCaCg4Px9/cnNTX1D59TpC6pOTfhikiN4+XlxUMPPcRD\nDz1EVlYWX375JY8++ijLli0jNzeXoKCgys/+cntcTk7Oedu9vb3Pa6w0bNiw8ufCwkJmzpxZ+S1b\neXk54eHhF83yW2ssxcTE8MADD/D000+zdu1ahg8fXpnl1+dr2LDhVWny5OTk4O3tXfna29ubjIyM\nytdeXl4AmEwm4NxUdREREak7+vbty9atW2nSpAkRERGYTCZ69uxJQkICPj4+tG/fHl9f3wv2M5lM\neHp6AmA0Gi86hkhMTGTRokUsX76cBx98kHXr1hEVFcX777/PrbfeetkZ/3s8A+fGMNnZ2UycOBG7\n3c4LL7xARkYGd9xxBw8++CCFhYW89957LFmyBACbzYafn99Fj/9baywNGTKEWbNmUVZWxtq1axk2\nbFhlpuoau/3WcRs0aFD5s8lk0mxzkSukxpKIXFRaWhpnzpyhe/fuAAQEBDB58mRWrlzJ4cOH8fX1\nPe9bsV9+DggIIC8vr3J7Xl4eAQEBFz1HUFAQ99xzD4MGDfpDWTt27IjJZOLAgQNs2rSp8ultl5PF\naDSeN3goKCj43fP9ctwmTZpc8rgiIiJSd/Xv359PPvmEkJAQevbsCUCvXr2YP38+/v7+9OvXr8rH\nTkxMZNCgQTRo0IAXXniBiRMnsnv3boYOHXpF6yz5+/ufN05yOBzk5+fj7++P2Wxm8uTJTJ48mePH\nj3PffffRrVs3goKCiIqKYsKECVXOD+dmfIeHh7NlyxbWrl3L7Nmzgcsbu/134+dKxm6/dVwRqTrd\nCiciF5WamsrUqVNJSkqq3LZnzx5SUlLo3LkzUVFRfPfdd+Tn52O1Wpk6dSqbNm1i4MCBrFmzprLR\ntHjxYm644YaLnmPw4MF8/vnn2Gw2HA4Hb731Fhs3bqxS3piYGN544w06depU+Q3gwIEDiY+Px2az\nUVxczLJlyy7IEhQUxPHjxykrK6OkpOS8b9bMZjOFhYUXnGvgwIGV39Tl5OSwZs2ayifniYiIiHTq\n1KlyNk6vXr2A/1un8vvvv7/o+kqXq1WrVvz000+UlJQQEhJSOVvplyfOXa7w8HCysrLYuXMnAF9/\n/TWNGjWiWbNmPPfcc5W3ioWEhBAQEIDBYGDw4MEsW7aMkpIS4Nw479///neVriMmJobPPvuMiooK\nOnbsCJwbYy1fvpySkhKsVivx8fEXjN0CAwPJzMwkOzsbm83GihUrKt/7rbHb740JRaTqNGNJRC6q\na9euvPjiizz//PMUFhZit9sJCAjgtddeo2nTpjRt2pRJkyYRFxeHxWJhwIABjBgxAoPBwOTJk7nj\njjuw2+106tSJ559//qLnGD9+PGfOnOHGG2/E4XAQFhbG3XfffdHP/rLG0n9buHAhwcHBxMTEMHr0\naF566aXK9+68805Onz7NjTfeiMFgIDY2tnKq9S969epFREQEMTExNGvWjMGDB1cOpAYNGsTjjz9O\ncnLyeY2jRx55hOeff57Y2FiMRiOTJ0++5C18IiIiUvcYDAb69OnDxo0bue666yq39+jRg6+++qpy\nXaOqGDx4MImJiYwaNQqbzUbbtm2ZPn06jzzyCE2bNmXhwoUX7LNq1Sp27NhR+bpTp0689tprzJs3\njxdffJHi4mL8/PyYO3cuBoOB2267jeeee44XX3wRh8NBVFRU5ZpQhw8f5uabbwbONZ3+9re/XTTn\nL2ss/bdXXnmF8PBwoqOjeeGFF5g8eXLle7GxsRw8eJDRo0fjcDjo1asXd91113n7t2jRgltuuYW4\nuDiaNGnCqFGj+PnnnwHo168fCxYs4JZbbmHatGmV+1zOmFBEqs7g+OX54CIiIiIiIiIiIldAt8KJ\niIiIiIiIiEiVqLEkIiIiIiIiIiJVosaSiIiIiIiIiIhUiRpLIiIiIiIiIiJSJWosiYiIiIiIiIhI\nlZhdHeBqyswsrLZj+/p6kptbXG3Hl/Op3s6lejufau5cqrdzVWe9AwO9quW48sdoDHbtUL2dS/V2\nLtXb+VRz53LVGEwzli6T2WxydYQ6RfV2LtXb+VRz51K9nUv1lqtJf5+cS/V2LtXbuVRv51PNnctV\n9VZjSUREREREREREqkSNJRERERERERERqRI1lkREREREREREpErUWBIRERERERERkSpRY0lERERE\nRERERKrE7OoAIiIiInJ1vfLKK+zYsQOr1cr9999P586dmTZtGjabjcDAQGbPno3FYmH58uUsXLgQ\no9HIuHHjGDt2LBUVFUyfPp2UlBRMJhMzZ86kefPmrr4kERERqaHUWBIRERG5hmzdupXDhw+zZMkS\ncnNzufnmm+nTpw/jx49n2LBhzJ07l/j4eOLi4pg/fz7x8fG4ubkxZswYoqOjWb9+Pd7e3syZM4dN\nmzYxZ84c5s2b5+rLEhERkRpKt8I5wRdffMbkyRN54IHJ3HffXWzbluDqSCIiInKN6tGjB3//+98B\n8Pb2pqSkhISEBAYPHgzAoEGD2LJlC7t376Zz5854eXnh4eFBZGQkiYmJbNmyhejoaAD69u1LYmKi\ny67lj7jrrltJTj5T+XrChLFs2bKp8vVTTz1ObOwgyspKXRFPRETkmqHGUjVLTU1hxYqlvPXWv3jz\nzXd47rmXWLjwPVfHEhERkWuUyWTC09MTgPj4eK6//npKSkqwWCwA+Pv7k5mZSVZWFn5+fpX7+fn5\nXbDdaDRiMBgoLy93/oX8QZGR3dm161xTLC8vj5KSEnbt2ln5/v79Sfz739/g7u7hqogiIiLXBN0K\nV82KioooLy+joqICs9lM8+YhvPnmOxw6dIA5c17GaDQQFhbB1KkPc/ToEebOfRmDwYCnZ31mzHie\nI0cOs3jxRxQXF/PAA38hPT2VxYs/wmQy06FDJx588C+uvkQREZFKB0/lciC5gI5NvV0dpc5bu3Yt\n8fHxvP/++wwdOrRyu8PhuOjnr3T7r/n6emI2m6oW9DIEBnpd8T4DBw7gu+++Y+LEO9i9O4Gbb45j\nx44dBAZ6cfToUUJCmjNx4m2sWLGCF198kaCgIPbt20dKSgqvvvoqoaGh1XAltUNV6i1Vp3o7l+rt\nfKp59bPZHWzceYYmxRV0aOH3+ztcZWosVbN27drTqVMoY8feRJ8+/ejdux833DCIefNe5YknnqZt\n23a8+OJzpKWl8ve/v8qUKQ8TGhrGJ58s4vPPF9O1azeOHj3Cp59+idVq5ZVXXuLttxdgsVh49tnp\n7Nmzi/DwLq6+TBERqePyi8pY/N0REvan413fwmsP9MNgMLg6Vp31ww8/8Pbbb/Ovf/0LLy8vPD09\nKS0txcPDg/T0dIKCgggKCiIrK6tyn4yMDLp06UJQUBCZmZl07NiRiooKHA5H5WynS8nNLa62awkM\n9CIzs/CK92vduhOzZr1MZmYhGzdupl+/Afz44xbOnMnku+9+oHPnrqxe/S1ZWUWUllaQl1fErFnz\nWLo0nk8//ZyHHw6phqup+apab6ka1du5VG/nU82r38m0QhauPMCJtEKu79qUiZ5u1XKe32oQ1qnG\n0mffHWHbgYwq7WsyGbDZLvzGrkfHIMZFtf3NfZ999q+cOHGcn37awieffMjSpfGcOnWCtm3bVb4P\ncOLEcUJDw4Bz07cXLHiHrl270bZtOywWC4cPHyI9PY1HH30AgLNni0hLSyM8vEqXJCIi8ofZ7Q42\n7Ermi++PUVJmpVVjbx65PVJNJRcqLCzklVde4YMPPsDHxwc4t1bSqlWrGDVqFKtXr2bAgAFEREQw\nY8YMCgoKMJlMJCYm8vTTT1NUVMTKlSsZMGAA69evp1evXn84kyvGYN7eDalXrx6ZmRns35/E5Mn/\nw3XXhbJvXxJ79uxi+PCRrF79beXnIyK6AhAYGMz+/fuqlFVERMRZysptLPvxOKt/Oo3d4aBPaDCT\n4zpTXuL829frVGPJFRwOB+Xl5bRs2YqWLVtxyy23cscdY8jLy/vN/azWCozGc0tgubm5/ee/z93+\nNnfum9WeW0RE5Pdk55fy1tIkjqcWUM/dzJ0xHbghognBwd76dtKFvvnmG3Jzc3nkkUcqt82aNYsZ\nM2awZMkSmjRpQlxcHG5ubjz22GNMmjQJg8HA1KlT8fLyYvjw4WzevJnbb78di8XCrFmzXHg1f0xk\nZHcSErZgMBhwd/cgPLwLe/fuZv/+fTz55DPnfdZk+r9b+S7n9j8RERFX2XM0i49WHyIrv5RAHw/u\niulIaCs/GjZwJ1ONpeo1Lqrt784uupSqTuH76qtl7NqVyIwZL2AwGDh7tgi73U7Xrt3Yty+J0NAw\nZs78K7fffietWrUhKWkPYWHh7NyZSIcOnc47VkhIS06cOE5ubg6+vn68994/uemmmwkMDKrSNYmI\niFRVbmEZsz/dSUZeCb2uC+a2qLY0bODu6lgC3Hrrrdx6660XbF+wYMEF22JjY4mNjT1vm8lkYubM\nmVc1kyvGYABdu3Zn4cL36No1EoDw8C588skiAgICtGi3iIjUOhm5xSxed4RdR7IwGgwM6x3CTf1a\n4e5WfescXo461VhyheHDR3Ly5AkmT76bevU8sVqtPPLIEwQHN+LVV88N2kJDO9OyZSseeeTxysW7\nvby8ePrp/+XgwQOVx/Lw8ODhhx/j8ccfxmJxo127DgQEBLrq0kREpI7KKyrjlU8SycgrYWTfltx8\nfWtXRxK5qC5dInnmmSe4++57APD19aOgIJ8hQ2JcnExEROTylVXY+HrLSVYmnMJqs9MxxIfx0e1p\nFtjA1dEAMDiuobm+1TntXouOOZfq7Vyqt/Op5s6lel89+WfLeeWTRFKzixneuwW33ND6gvWUqrPe\nerJMzaQx2LVD9XYu1du5VG/nU83/uKPJ+by9LInsgjJ8vdy5NaotPToGXXQ9S1eNwTRjSURERC5L\nYXE5ry7eSWp2MUN7NL9oU0lEREREro4Nu5L5ePUh7A4Hw3u3YETfFnhYal4bp+YlEhERkRrHarPz\n2me7Sc48y5Buzbg1qq2aSiIiIiLVoMJq5+M1B9m4O5UG9dy4f1QooS39XB3rktRYEhERkd/1bcIp\nTqQV0ic0mNuHtFNTSURERKQa5BSce+rusZQCQoIb8MDNnQnwqefqWL9JjSURERH5TanZZ1nx43Ea\nNrBwR3R7NZVEREREqsFPP6ezaNVBzpZa6RvWiLtiOmBx8RPfLocaSyIiInJJdoeDhd8ewGpzMCG6\nA54ebq6OJCIiInJNKSqp4KPVB/np5wwsZiN3Dm3PwK5Na82XeWosiYiIyCV9vyuFQ2fy6dY+kG4d\nAl0dR0REROSasudoNgu+/Zn8onLaNPHm3hHXEezn6epYV8TpjaWEhAQefvhh2rVrB0D79u259957\nmTZtGjabjcDAQGbPno3FYmH58uUsXLgQo9HIuHHjGDt2rLPjioiI1Fm5hWV8vv4I9dzN3DG0vavj\niFyx1NQUZsx4kvfeW+TqKCIiIucpLbfy2XdH2LArBZPRwC03tCa2Vwgmo9HV0a6YS2Ys9ezZk9df\nf73y9VNPPcX48eMZNmwYc+fOJT4+nri4OObPn098fDxubm6MGTOG6OhofHx8XBFZRESkTnE4HCxa\ndZDSchsTh3XEp4G7qyOJiIiIXBMOnc7jva/3k5lXStPA+tw34jpCgr1cHavKasStcAkJCbzwwgsA\nDBo0iPfff59WrVrRuXNnvLzOFTcyMpLExESioqJcGVVERKRO2Lo/nV1HsugY4sOA8MaujiNy1Rw9\neoS5c1/GYDDg6VmfGTOex2g08dxz0ykvL6eiooJHH32SDh068s9/zmfPnl3Y7TZGjx5HdHSsq+OL\niEgtVmG1s/SHY6xMOAXAsN4hxPVvjZu59s1S+jWXNJaOHDnCn//8Z/Lz83nggQcoKSnBYrEA4O/v\nT2ZmJllZWfj5+VXu4+fnR2Zm5m8e19fXE7O5+lZMDwysvR3E2kj1di7V2/lUc+dSvS/fz8dz+ODb\nA9RzN/GX8d0ICmxwxcdQvaWm+vvfX2XKlIcJDQ3jk08W8fnni2nbth2BgUE89dRzJCef4fTpU+ze\nvZP09DTmz3+X8vJy7rlnAtdfPxB3dw9XX4KIiNQyDoeDPUez+XzDUVKyzhLo48GkG6+jffNr444s\npzeWWrZsyQMPPMCwYcM4ffo0d911FzabrfJ9h8Nx0f0utf3XcnOLr1rO/xYY6EVmZmG1HV/Op3o7\nl+rtfKq5c6nely89t5i/fbgDm83BA6M744bjimtXnfVWw6p2+vLIV+zM2FulfU1GAzb7hePArkGd\nGd12xBUf78SJ44SGhgEQGdmdBQveYdSoW3j33X8we/b/44Yboujduy8fffQB+/bt5YEHJgPgcNjJ\nysqiadNmVboOERGpm44m5/P5hqMcOp2HARjUtSljB7XBw1IjbiC7Kpx+JcHBwQwfPhyAkJAQAgIC\n2Lt3L6WlpXh4eJCenk5QUBBBQUFkZWVV7peRkUGXLl2cHVdERKTOKCqpYN5nuykqqeCu2A50bu3v\n6kgi1cpqrcBoNBIQEMAHH3xKYuJ2/v3vePbt24unpycjRozizjv/5OqYIiJSC53JKGLZpuPsOHTu\nzqsubQMYfUNrmlVhJnhN5/TG0vLly8nMzGTSpElkZmaSnZ3N6NGjWbVqFaNGjWL16tUMGDCAiIgI\nZsyYQUFBASaTicTERJ5++mlnxxUREakTKqw23vhiD+m5JQzv3YKBXZq6OpJcQ0a3HVGl2UVw9WfA\ntWrVhqSkPYSFhbNzZyIdOnRi27YErFYrffr0o2XLVsyZM4sJEyYyf/7fueOOu6moqOCtt/7OX/4y\n7arlEBGRa4/d4SDpWA5rtp1i34lcANo09WbswLbXzG1vF+P0xlJUVBSPP/4469ato6Kigueff55O\nnTrx5JNPsmTJEpo0aUJcXBxubm489thjTJo0CYPBwNSpUysX8hYREZGrx2a3897XP3P4TD49OwUx\n+obWro4kctWcOnWy8nY2gHvv/TP//Od8DAYDXl5ePP30/1JQUMBf//osH3+8EKPRyKRJ99O5cwRd\nu3bj/vv/BDi4+eaxrrsIERGp0ex2B5v2prLqp1OkZp9boqdjiA9De4YQ0cYfg8Hg4oTVy+C4nMWL\naonqXD9D63M4l+rtXKq386nmzqV6X1pxaQVvL9tH0vEc2jVryOO3dcHtDz4IQ2ss1T0ag107VG/n\nUr2dS/V2vrpQ86z8Et5dsZ/DZ/IxGQ307BTM0B7NadHI+WMWV43Brp3VokREROSKpOUU83r8HtJy\niglv48/kkaF/uKkkIiIiUlck7E/nw1UHKSmz0q1DIOOHtMfXy93VsZxOjSUREZE6KOl4Nv9Yuo+S\nMiuxvUIYc0MbjMZre5q2iIiIyNVQUmblo9WH2LIvDXc3E38a1pH+4Y2v+VveLkWNJRERkTokK7+E\nDTtT+DbhJCajgUk3dqJf58aujiUiIiJSK+w6nMXHaw6SXVBGy0Ze3H9TKMF+nq6O5VJqLImIiFzj\nrDY7u49k8f3uFPYdy8EBNKxv4YHRnWnTtKGr44mIiIjUeDkFpXyy9jCJhzIxGQ2M6NuSm/q1xGwy\nujqay6mxJCIicg3ZfiCDQ2fyOFtSQVGJlaKSCjLzSigqqQCgTRNvro9oQo9OQXhYNAwQERER+S02\nu52128+w9IfjlFXYaN+sIXfGdKBpYANXR6sxNKIUERG5Rny/K5mFKw+et81kNOBd38Lgbs24IaIJ\nzYI0CBIRERG5HAdP5fLxmkOcyTxLg3pujI9uR//OdXctpUtRY0lEROQakHQsm0WrDtGgnhtT4sII\n8PGgvocbHhaTBj910KFDh5gyZQoTJ05kwoQJPPTQQ+Tm5gKQl5dHly5duP/++xk5ciRhYWEA+Pr6\n8vrrr1NYWMhjjz1GYWEhnp6ezJkzBx8fH1dejoiIiFPlFJTy2foj/PRzBgZgQHhjxgxsg5enxdXR\naiQ1lkRERGq5U+mFvLU0CaPRwENjwmmrdZPqtOLiYl588UX69OlTue3111+v/Pmpp55i7NixALRq\n1YpFixadt//ChQvp2bMn9957L0uWLOHdd9/liSeecE54ERERF6qw2lm97RQrNp+gvMJOq8beTBja\nnlaNvV0drUbTKlMiIiK1WG5hGX+P30NpuY3JI69TU0mwWCy8++67BAUFXfDesWPHKCwsJDw8/JL7\nb9myhejoaAAGDRrEli1bqi2riIhITbHnaBbPvZfAF98fw93NxJ+Gd+SZu7qpqXQZNGNJRESkliop\nszLv893kFpYxblBbune8sJEgdY/ZbMZsvvgQ78MPP2TChAmVr7OysnjooYfIyMhg/Pjx3HTTTWRl\nZeHn5weAv78/GRkZv3tOX19PzGbT1bmAiwgM9Kq2Y8uFVG/nUr2dS/V2vppe89Sss/xrWRI/7U/D\naDQwckBrxsd0pEE9N1dHqxJX1FuNJRERkVroaEo+C745QErWWQZ1bUpMz+aujiQ1XHl5OTt27OD5\n558HwMfHh4cffpibbrqJwsIg3xIGAAAgAElEQVRCxo4dS+/evc/bx+FwXNaxc3OLr3bcSoGBXmRm\nFlbb8eV8qrdzqd7OpXo7X02ueXGplW8TTrLqp9NYbXY6NPfhjuj2NAtqQElRKSVFpa6OeMWqs96/\n1bBSY0lERKQWKa+wsfSH46zadgqHAwZHNuO2IW21QLf8rm3btp13C1yDBg245ZZbAPDz8yMsLIxj\nx44RFBREZmYmXl5epKenX/SWOhERkdqqwmrju8Rkvtp8grOlVny93Lk1qi09OgZpPFVFaiyJiIjU\nEofP5PH+NwdIzykmyKcefxrekQ4hvq6OJbXE3r176dixY+XrrVu3sn79ep566imKi4s5cOAArVq1\nol+/fqxcuZIpU6awevVqBgwY4MLUIiIiV4fd4WBLUhpLfzhGdkEZ9dzNjBnYhsHdmuHuVn23c9cF\naiyJiIjUcIXF5Xzx/VE27k7FAAzt0Zybr2+tQZBcVFJSEi+//DLJycmYzWZWrVrFG2+8QWZmJiEh\nIZWf6969O0uXLuXWW2/FZrMxefJkgoODufPOO3niiScYP3483t7ezJ4924VXIyIi8sel5xaz4JsD\nHDqdh9lkJLZnCMP7tKi16yjVNGosiYiI1FB2u4Pvd6fw5fdHOVtqpWlgfe6O6UjbZnrym1xaWFgY\nixYtumD7s88+e95rs9nMrFmzLvhc/fr1eeutt6otn4iIiLPY7Q7Wbj/NlxuPUW6107VdAOOHtMe/\noYero11T1FgSERGpgY6m5PPR6kOcTCvEw2LitsHtiIpsitlkdHU0ERERkRovNfss73/zM0eTC2hQ\nz417buykdZSqiRpLIiIiNUh+URnx3x/lx71pAPQODWbcoLb4NHB3cTIRERGRms9ud7B627lZSlab\nnZ6dghgf3R5vT4uro12z1FgSERGpAaw2O2u3n2H5j8cpLbfRLLABd0S30+LcIiIiIpcpPaeY977+\nmSPJ+Xh5unFXzHV066Cnm1Y3NZZERERcbN/xHD5ec4i0nGLqe5i5c2h7ru/SBJNRt72JiIiI/B67\nw8G67Wf44vujlFvt9OgYxB1DNUvJWdRYEhERcZGcglIWrzvM9oOZGAwQFdmUuAGt9YQSERERkcuU\nnFnEwlUHOXImv3ItpZ6dgl0dq05RY0lERMTJrDY7q346xYrNJyivsNO2WUMmRLcnJNjL1dFERERE\naoUKq40Vm0/y7daT2OwOuncI5I6hHWhYX7OUnE2NJRERESfKyi/h75/vITnrLN6ebtw5tAN9whph\n1BNKRERERC7LgZO5LFx5gPTcEvy83ZkQ3YEu7QJcHavOUmNJRETESZKzzjJ3yS5yC8sY2KUJYwa2\nwdNDt72JiIiIXI7krLN8+f1Rdh7OwgAM6d6Mmwe0pp67WhuupOqLiIg4wdGUfOZ9tpuzpVbGDWpL\nbK8QV0cSERERqRVyCkpZtuk4m/am4nBA22YNuX1wO1o19nZ1NEGNJRERkWq373gOb365lwqrnXuG\nd6J/eGNXRxIRERGp8fKLylj50ym+S0ymwmqnSUB9xtzQhoi2/hi0jECNocaSiIhINdp2IIN3lu/D\nYDAw9eYwurYPdHUkERERkRotO7+UbxNOsnF3KlabHV8vd+IGtKJfWGOMRjWUaho1lkRERKrJhp3J\nLFp1EHeLiYduCadjC19XRxIRERGpsfLPlvPl90fZnJSGze4goKEHw3u3oF/nxriZja6OJ5egxpKI\niMhV5nA4+HrLSb7ceAwvTzceHdeFFo28XB1LREREpMbaeSiTBd8eoKikgmA/T0b0aUGv64Ixm9RQ\nqulc0lgqLS1lxIgRTJkyhT59+jBt2jRsNhuBgYHMnj0bi8XC8uXLWbhwIUajkXHjxjF27FhXRBUR\nEbkidoeDz747wuptp/H3duex27rSyM/T1bFEREREaqTSciuL1x1m4+5UzCYjtw1ux5BuzXTLWy3i\nksbSP/7xDxo2bAjA66+/zvjx4xk2bBhz584lPj6euLg45s+fT3x8PG5ubowZM4bo6Gh8fHxcEVdE\nROSyWG12Fn57gB+T0mgSUJ9Hx0Xg5+3h6lgiIiIiNdKR5Hz+tWI/GXklNA9qwH0jr6NZYANXx5Ir\n5PTG0tGjRzly5AgDBw4EICEhgRdeeAGAQYMG8f7779OqVSs6d+6Ml9e52wYiIyNJTEwkKirK2XFF\nREQuS05BKf9YlsTR5AJaN/HmkbERNKjn5upYIiIiIjVOflEZX3x/jB/3pgIwrFcIcQNaax2lWsrp\njaWXX36ZZ599lqVLlwJQUlKCxWIBwN/fn8zMTLKysvDz86vcx8/Pj8zMTGdHFRERuSxJx7J5Z8V+\nikoq6HVdMHfHdsDDomUMRURERH6twmpn7fbTrNh8gtJyG80C6zNhaAfaN9fdSbWZU0e9S5cupUuX\nLjRv3vyi7zscjiva/t98fT0xm01Vzvd7AgO18Kozqd7OpXo7n2ruXNVRb5vdwZI1B1m85iAmo5H/\nuSWcYX1aYjBoTQD9/RYREZFf23ssm49XHyIjr4QG9dy4M6Yt10c0xmTULKXazqmNpQ0bNnD69Gk2\nbNhAWloaFosFT09PSktL8fDwID09naCgIIKCgsjKyqrcLyMjgy5duvzu8XNzi6ste2CgF5mZhdV2\nfDmf6u1cqrfzqebOVR31zisq419f7Wf/iVz8vT2YcnMYrRp7k5VVdFXPUxtV599vNaxERERql8Li\nchavO8yWfekYDQaGdG/GqP6tqO+hJQOuFU5tLM2bN6/y5zfeeIOmTZuyc+dOVq1axahRo1i9ejUD\nBgwgIiKCGTNmUFBQgMlkIjExkaefftqZUUVERC5p1+Es3v/mZ4pKKoho48+kEddpPSURERGRX3E4\nHHyfeIZ//nsPhcUVtGzkxcRhHQkJ1pdE1xqXLwDx4IMP8uSTT7JkyRKaNGlCXFwcbm5uPPbYY0ya\nNAmDwcDUqVMrF/IWERFxlfIKG0vWH2F9YjJmk5E7otsTFdlUt76JiIiI/IfVZmff8Ry+S0xm77Fs\nLGYj4wa1JbpHM932do1yWWPpwQcfrPx5wYIFF7wfGxtLbGysMyOJiIgAUFZu48uNx8gpLMVsMmI2\nGjCbjRw6nUdqdjFNA+tz/8hQmgXpcbgiIiIiVpud/Sdy2XYgnZ2HsiguswIQ3jaA8YPbEuTr6eKE\nUp1cPmNJRESkJikttzLv8z0cOp130fcHRzZj7KA2WNyq72ERIn/UoUOHmDJlChMnTmTChAlMnz6d\nffv24eNz7qk7kyZNYuDAgSxfvpyFCxdiNBoZN24cY8eOpaKigunTp5OSkoLJZGLmzJmXfPCKiIjI\nvuM5LFp1kIy8EgB8vdzpH96YHh2D6BXRVOtP1gFqLImIiPxHSZmVeZ/v5vCZfLp3DGJCdHtsdgdW\nmx2rzY67mwk/bw9XxxT5TcXFxbz44ov06dPnvO2PPvoogwYNOu9z8+fPJz4+Hjc3N8aMGUN0dDTr\n16/H29ubOXPmsGnTJubMmXPeOpkiIiIABcXlLFl3hC370jAaDAzs0oS+YY1p3dQb43+WCdByAXWD\nGksiIiKcayq99tlujiTn07NTEPeNvE7rAEitZLFYePfdd3n33Xd/83O7d++mc+fOletYRkZGkpiY\nyJYtW4iLiwOgb9++eoCKiIicx+FwsDkpjSXfHaGopIIWjbyYGNuRFo20LnJdpcaSiIjUecWlVl77\nbBdHUwrofV0wk0Z0UlNJai2z2YzZfOEQ76OPPmLBggX4+/vz7LPPkpWVhZ+fX+X7fn5+ZGZmnrfd\naDRiMBgoLy/HYrFc8py+vp6YzdV3e2hgoP6x4kyqt3Op3s6lev8xKVlFzI/fw54jWXhYTNw7KowR\n/VphMl163KSaO5cr6q3GkoiI1GkZeSW8+cVezmQW0Sc0mEk3XofRqGnbcm0ZNWoUPj4+dOrUiXfe\neYc333yTrl27nvcZh8Nx0X0vtf3XcnOLr0rOiwkM9CIzs7Daji/nU72dS/V2LtW76qw2O6t+OsXy\nH09QYbUT3safCUPbE9CwHjk5Zy+5n2ruXNVZ799qWOnrWBERqbP2HM3mrwu2cSaziEGRTdVUkmtW\nnz596NSpEwBRUVEcOnSIoKAgsrKyKj+TkZFBUFAQQUFBZGZmAlBRUYHD4fjN2UoiInJtO5qSzwsf\nbOOL749Rz93Mn0eF8vCYcAIa1nN1NKkh1FgSEZE6x+5wsOLH4/z9892UW+38aXhH7hzaQU0luWY9\n+OCDnD59GoCEhATatWtHREQEe/fupaCggLNnz5KYmEj37t3p168fK1euBGD9+vX06tXLldFFRMRF\n7A4H32w9yf9btIPkzLNcH9GEv93Xi56dgrUot5xHt8KJiEidkn+2nA9XHmDn4Sz8vd2ZOrozLRt5\nuzqWyFWTlJTEyy+/THJyMmazmVWrVjFhwgQeeeQR6tWrh6enJzNnzsTDw4PHHnuMSZMmYTAYmDp1\nKl5eXgwfPpzNmzdz++23Y7FYmDVrlqsvSUREnOxsaQXvffUzu45k4dPAwuSRoXRs4evqWFJDqbEk\nIiJ1QlmFjdU/neKbhFOUldvo1MKX+0eF4u2pW3zk2hIWFsaiRYsu2B4TE3PBttjYWGJjY8/bZjKZ\nmDlzZrXlExGRmu1EWgFv/TuJrPzSc+Olm0Lxrq/xUk2WX1ZAQtoOwu3taWRs6vTzq7EkIiLXjKz8\nErYfyKRBPTcCGnoQ0NCDhg3cWZNwkg+/2U9eUTlenm6MHdiGG7o00ZPfRERERP7DarOzdvsZvtx4\nFKvNwci+LRnVv5WWCqjBjuefYsOZTSRm7MHusJNry+HW1rc4PYcaSyIick3IyC1m1seJ5BWVX/R9\ni9nIiL4tGNarBfXc9etPRERE5Bd7jmazeN1h0nKKqe9h5oHRoYS38Xd1LPkvdoedlKI0DuUeYXvG\nbk4WnFs/sXH9YAY268eNYTeQn1vm9FwaWYuISK2XnV/K7E93kldUzoi+LQlo6EFWfinZ+SVk55fS\nqpkP0ZFN8fP2cHVUERERkRojLaeYxesOs+doNgYDDIpsSlz/VnhpqYAaI7skh/05BzmYc4RDeUc5\nW1EMgAED4QGhDGzWj/a+bTAYDFjMFkCNJRERkSuSW1jG7E93kl1QxujrWzOib8sLPhMY6EVmZqHz\nw4mIiIjUQGUVNr7afIKVCaew2R10DPFh/JD2NAtq4OpodV6F3cqRvGPszz7IvuyDpBdnVL7n496Q\nXo260d63DR392uHj3tCFSf+PGksiIlJrFZwt59XFO8nIK2FE3xYXbSqJiIiIyP/ZczSbj1YfJCu/\nFH9vd24b3I7I9oEYDFpLyVWKK4pJyj7Anqz97M8+QJnt3NIOFqMbYf6dCPXvQEe/dgTWC6iRf05q\nLImISK2UknWWt5clkZpdzNAezbl5QGtXRxIRERGpsXILy/h03WG2H8jAaDAwrFcIN/VrhbvF5Opo\ndVKF3crOjD1sTd3O4bxj2B12AALq+dM3oBOh/h1p27AVbiY3Fyf9fWosiYhIrfLfU7cHRzbj1qi2\nNfLbGxERERFXS80+y6qfTrM5KQ2rzU7bpg25K6aDbntzkeySXDalbGVzyk8UVZwFoIV3c8IDQgkP\nuI7G9YNr3bhWjSUREak19h7LZtGqc1O3/bzduWNIe7q2D3R1LBEREZEa5/CZPFYmnGLX4SwcQJBP\nPW7s04J+4Y0x1rLGRW1nd9j5OecwPyRvISnrZxw4qG/2ZEjIDQxo2puAerX7CXxqLImISI3ncDj4\nZO1h1u04g9FgILZnCDf1b4mHRb/GRERERH4tt7CMj1YfZOfhLABaN/EmtmcIke0DMRrVUHKmwvIi\ntqRuY1NyAtmlOQCEeDXj+mZ96RYUgaUW3OZ2OTQiFxGRGm/TnlTW7ThD08D6TB4ZSnNN3RYRERE5\nj93hYOPuFD5ff4SSMhvtm/sw+vrWtGvWsNbdWlWbORwOjhecYuOZzezM2IPVYcPN6Ebfxj3o37Q3\nLbybuzriVafGkoiI1GhnMor4aM0hPN3NPHRLOIE+9VwdSURERKRGSc8tZuG3BzhwKo967ibuiu3A\n9RFNdMubE5XbKtievouNyZs5XZgMQLBnEAOa9qZXo254ul27Y1g1lkREpMYqKbPy1tIkKqx27r8p\nVE0lERERkV85llLA2h2n2fZzBja7gy5tA7gzpgO+Xu6ujlYn2Ow2DuUeJTFjN7sykyi2lmDAQERg\nGDc07Ut73zZ1YraYGksiIlIjORwOFq06SFpOMUN7NCdSi3SLiIiIYLXZ2X4gg7U7znAspQCAJgH1\nGdW/Fd07BNaJRoYrORwODucdY3v6TnZlJnG2ohiAhhYvYlpE0b9pL/w8fF2c0rnUWBIRkRrp+90p\nbN2fTusm3owZ2MbVcURERERcqrjUyve7k1m7/Qy5hWUYgC5tAxjcvRnXtfBVQ6maFVWcJSF1Bz+m\nJJBenAmAt8WLG5r1JTIogtYNW2A0GF2c0jXUWBIRkRqlvMLGj3tT+XTdEep7mPmfUWGYTXXzl7SI\niIhITkEpa7efYcOuZErLbbi7mRjSvRmDuzUj2NfT1fGuaQ6Hg6P5J9iUnMDOzD1Y7VbMRjM9giPp\n26QHbX1a1dlm0q+psSQiIjVCQXE53+04w3eJyRSVVGA2GblvZCj+DT1cHU1ERETE6ex2B19vPcny\nTcex2R00rG/hxj4tGNi1KfU9ro3H1NdUheVFJKTtYHPKNtKLMwAI8gygf5Pe9GrcjQZu9V2csGZR\nY0lERFwqO7+Ub7aeZNPeVCqsdup7mBnRtwWDI5vRsIEWnhQREZG6JyOvhH+t2M+R5Hx8GliIG9Ca\nPqGNcDNrdkx1sTvsHM49xo8pCezKTMLmsGE2mOge3IV+TXrRzqe1bje8BDWWRETEJXIKSvlqy0l+\n2J2Cze4goKEHMT1D6N+5Me4Wk6vjiYiIiDidw+Fg095UPll7mLJyGz06BnFnTAca1NMMpepSWF7E\n1tTt/JiSQGZJNgCN6gfTr0lPejaK1Oyky6DGkoiIOFV6TjGrt51m438aSkG+9RjZtyW9Q4MxGfUt\nnIiIiNRNqdln+Xz9UXYdyaKeu4n7RlxH79BgzZKpBuW2cpKyD7AjfTdJWfuxOmyYjWZ6Noqkf5Pe\ntG7YQnW/AmosiYhItSssLuennzPYsi+t8rG4QT71GNlPDSURERGp23ILy1j+43F+2J2K3eGgY4gP\n99zYiYCG9Vwd7ZpitVvZn32QHRm72ZO1n3JbOQCN6wfTr0kvejaKpL6bFkOvCqc2lkpKSpg+fTrZ\n2dmUlZUxZcoUOnbsyLRp07DZbAQGBjJ79mwsFgvLly9n4cKFGI1Gxo0bx9ixY50ZVUREroLcwjI+\nWXOIXUeysNkdGAwQ2sqPfmGN6NEpSA0lERERqbNKyqx8s/Uka7adptxqp7G/J7fc0Iau7QI0W+Yq\nsTvsHMs/yU9piezM2EOxtQSAgHr+dAuKoFtwBE3qN1K9/yCnNpbWr19PWFgY9913H8nJydxzzz1E\nRkYyfvx4hg0bxty5c4mPjycuLo758+cTHx+Pm5sbY8aMITo6Gh8fH2fGFRGRP+B4agGvf7GH/KJy\nmgc1oE9oI3pdF4yvlxbkFhERkbpt77FsPvj2ALmFZfg0sDB+QGv6dW6kL92ukvSzGSSkJbItfSc5\npbkANLR4EdV8AN2DuxDi1UzNpKvIqY2l4cOHV/6cmppKcHAwCQkJvPDCCwAMGjSI999/n1atWtG5\nc2e8vLwAiIyMJDExkaioKGfGFRGRKvrp53Te+/pnrFY74wa1JaZnc/3yFnGiQ4cOMWXKFCZOnMiE\nCRNITU3lqaeewmq1YjabmT17NoGBgYSGhhIZGVm53wcffIDdbmf69OmkpKRgMpmYOXMmzZs3d+HV\niIhcO86WVrB43WF+3JuGyWjgpn4tGda7Be5uenDJH1VcUcz29N0kpO3gRMEpADxM7vRq1I2ejSJp\n79sGo0GNu+rgkjWWbrvtNtLS0nj77bf505/+hMViAcDf35/MzEyysrLw8/Or/Lyfnx+ZmZmuiCoi\nIlfA7nCwfNNxlv94Ag+LiSljwoloG+DqWCJ1SnFxMS+++CJ9+vSp3DZv3jzGjRvH8OHD+fjjj1mw\nYAHTpk2jQYMGLFq06Lz9ly9fjre3N3PmzGHTpk3MmTOHefPmOfsyRESuOTsPZfLh6oPkF5UTEtyA\ne4Z3IiTYy9WxajW7w86BnMNsSd3Gnqz9WO1WDBjo5NeeXo26EREYisVkcXXMa55LGkuLFy/m559/\n5oknnsDhcFRu//XPv3ap7f/N19cTs7n6Or2BgfofvTOp3s6lejtfba95wdlyjifnk5p9lvScYtKy\nz3I6vZCTaYUE+3ny7KRetGjk7eqYlWp7vWsb1dt1LBYL7777Lu+++27ltv/93//F3f3cbai+vr7s\n27fvkvtv2bKFuLg4APr27cvTTz9dvYFFRK5xp9IL+Xz9EfadyMVsMjD6+tbE9grBbNLsmarKLM5m\na9p2tqZuJ68sH4BgzyB6Nz43O8nHvaGLE9YtTm0sJSUl4e/vT+PGjenUqRM2m4369etTWlqKh4cH\n6enpBAUFERQURFZWVuV+GRkZdOnS5XePn5tbXG3ZAwO9yMwsrLbjy/lUb+dSvZ2vNtY8LaeYpGPZ\nHEst4FhKARm5JRd8xmwyEN7Gn0k3dsLTZKgx11gb612bVWe91bD6fWazGbP5/CGep+e5p9zYbDY+\n+eQTpk6dCkB5eTmPPfYYycnJxMTE8Kc//em8meNGoxGDwUB5eXnlDPOL0Zd71xbV27lUb+dyZr2z\n8kpY9O3PrN9xGocDurQP5L5RYYTUoC/enOFq1NzusHMs5xTbU3azPXkvp/KTAahn9mBI6/4MbNWH\ndv6ttPQCrvn/FKc2lrZv305ycjLPPPMMWVlZFBcXM2DAAFatWsWoUaNYvXo1AwYMICIighkzZlBQ\nUIDJZCIxMVHflomIuNCRM/m8/EkiNvu5GaSe7mZCW/nRqrEXwb6eBPrUI9CnHg0bWDDqF7pIjWSz\n2Zg2bRq9e/euvE1u2rRp3HTTTRgMBiZMmED37t0v2O9yZo7ry71rh+rtXKq3czmr3mdLK/h26ynW\nbD9NhdVOs8D6jBvUlrDW/gB16s/8j9Y8v6yAdac2si19JwXl545jNpoJ9e9It6AIugZ1PnermwOy\nsoquVuxay1Vf7jm1sXTbbbfxzDPPMH78eEpLS3nuuecICwvjySefZMmSJTRp0oS4uDjc3Nx47LHH\nmDRpEgaDgalTp1Yu5C0iIs6Vf7act5buxe5wcEd0e65r6Uuwn6caSCK1zFNPPUWLFi144IEHKrfd\nfvvtlT/37t2bQ4cOERQURGZmJh07dqSiogKHw/Gbs5VEROScsnIba3ec5tutpygus+LTwMLN17em\nX1hjjEaNm65EXlk+a05u4MeUBCrsVhq41ad34+6EB1xHB992eJj1lOGaxKmNJQ8PD+bMmXPB9gUL\nFlywLTY2ltjYWGfEEhGRS7DZ7fxzWRJ5ReWMHdiGwd2auTqSiFTB8uXLcXNz46GHHqrcduzYMebP\nn8+rr76KzWYjMTGR2NhYLBYLK1euZMCAAaxfv55evXq5MLmISM1XYbXz/a5kvtpykoKz5dT3MDNu\nUFuiIpti0dPerkjq2XQ2ntnM5pSfsDps+Hn4EtNiEL0ad8fN6JIlouUy6E9GREQu6Yvvj3HgVB6R\n7QOJ7RXi6jgichmSkpJ4+eWXSU5Oxmw2s2rVKrKzs3F3d+fOO+8EoE2bNjz//PM0atSIMWPGYDQa\niYqKIjw8nNDQUDZv3sztt9+OxWJh1qxZLr4iEZGayWqzs2lvKl9tPkFOQRnuFhM39WvJ0B4heHro\nn9qXq7iimO3pu9maup2ThacBCPDwI6blYHo1isRkVHOuptPfdhERuajtBzJYmXCKYN963DO8kxZD\nFKklwsLCWLRo0WV99oknnrhgm8lkYubMmVc7lojINcNmt7MlKZ3lPx4nK78UN7ORoT2aM7xPC7w9\ndevw5SixlrIv+wC7MvayN/tnrHYrBgxc59+BPo17EBEQqoZSLaLGkoiIXCA5s4j3v/kZi5uRqaM7\n61s3EREREWDfiRw+WXOI1OxizCYDg7s148Y+LfBpoDV//j97dx4d1X3f//85i0YL2vcFCQmxCQQS\nYhf7ZgPewAXieEmdkDZp7Pzqxj1O4rpN0p5Tt7aT9uvGqVs7dhzbqYmVOMErxgZsVrEIJCQhIYQE\nQuto36VZ7u8PEjWujcGAZkbS63GOzzFXo7mveZ+Rzmfe+ixX0ufs52TTKU7aT1HWWoHTcAEQFxTL\nwoQ5zI/PIdw/zMsp5Vrok4KIiAxp6xrg7UPVfFxYh9Nl8Je3T2d8TLC3Y4mIiIh4VVvXAK99WMHR\nsiZMJlienchtualEhgZ4O5rP6xjoZE/NfvbVHqbf1Q9AUnACWTGZZMdkkjguXjPjRzg1lkREhM6e\nQd45fJ49J2pxON3EhAewadlEFk6P93Y0EREREa9xutx8cOwivz9QxcCgi4mJodx301QmxOvU8itp\n6rXz26M7+KjqEE7DRYgtmDUpNzMnLovYoGhvx5MbSI0lEZExrqSqlZ/+9hQDDhdRof7ctjiN3Mx4\nrBazt6OJiIiIeIXbbXC4tIEd+6tpau9jXICVL6+fxpJZCZg1u+ayBlyDnGw6xeH6Y5xprwQgOjCK\nNSnLWRg/Bz+Ln5cTynBQY0lEZAw7U9POf/y2CLcb7lk7hWVZifhZ1VASERGRscltGBwra+J3+6po\naO3FYjaxMieJjUvSCNHG3J/J6XZytr2KY40nKWgqZMA1CMCk8DRum76aif6TMJs0vhzN1FgSERmj\nqhs6+X95hbhcBg/cOZPsSZqSLCIiImNX8bkWfr3nLBftPZhNJpZlJXBrbirRYYHejuZzOga6KG0p\no7jlNGWtFfS7BgCI8PuNaJ0AACAASURBVA9nVfJSFsTPJSYoipiYEOz2Li+nleGmxpKIyBhUa+/m\nJ9sL6R908Y3bZ6ipJCIiImNWbXMP23dXUHyuFROQmxnP7YtTiY0I8nY0n2IYBmVtFeyt2U9JSzkG\nBgDRAZEsSJhLVvQMJkdM1OykMUiNJRGRMaaxtZentp+ku8/BV9dPY35GnLcjiYiIiHhcZ+8gv99f\nxUcn6nAbBhkTIvjSqkmkxGlj7j/V7xzgSEMBH108QENvEwBpoSlkx84kMyqDuKAYneo2xqmxJCIy\nivUNOCmtbqWmqXvov+aOS8e8fnnNZJZmJXo5oYiIiIhn1bf0sOvYRQ6eqmfQ6SY+MoitqyaRlR6l\nBskfDLoclLaWc6KpiFPNpQy4BrGYLMyPz2HF+MVMCE32dkTxIWosiYiMMoZhUFnXyccn6zhS1sig\nwz30tZAgP6anRrAgI05NJRERERkzDMOgsMLOr3eVU1TZAkB0WAA3z09heXaiTsPlD0vdWis43HBs\nqJkEl5a6rU6Zw5LEhYT5azaXfJoaSyIio4TD6eLjwnr2nqyl1t4DXBow5WbGMykpjOTYYELH2fSX\nOBERERlTGtt6eeX9M5RUtQIwKSmMm+YlkzMlBrNZ46JLS92Os/fiQRr/sNQtOiCSZUmzyImdRXJI\nksaP8rnUWBIRGeGcLjf7i+p582A1bV0DWMwm5k6NYXl2EhmpEZg1EBAREZExyOF0827+ed46eB6n\ny83sKTFsWJhCemKYt6P5hJa+NvZe3M+h+qP0OfuxmiwsiJ/D0qRFpIYmq5kkV02NJRGREcrtNjhc\n2sDv91dhb+/HZjWzfkEKN81PIWyczdvxRERERLym7Hwbv9xZTkNrL2HBNr68ejIblqbT3Nzt7Whe\nd6HrIh9e+JiCpiLchptQWwir0payJGkhoTYtdZMvTo0lEZER6ExNO6/uOkNNUzdWi4nVc8Zz66IJ\nhAX7ezuaiIiIiNf0Dzp5fU8le07UYgJWzxnPpqUTCQqwjukZOA63k9KWMvbWHOBMeyUAScEJrE5e\nxpy4LKxmtQbk2l3x3dPR0cGzzz6L3W7nqaeeYvfu3WRnZxMZGemJfCIi8ic6egbJ23OWA8UNACzO\njGfj0olEhQV4OZmI3Ggag4mIfDHlF9r4+dunae7oJyl6HF+7JYO0hFBvx/Iap9tJWWsFBU1FFNpL\n6HddOhl4WsRk1kxYzrSIyWO62SY3zhUbS4899hjz5s3jxIkTAAwODvLd736X5557btjDiYjIJU6X\nm70nanljXxV9A05SYoO59+apTErSHgEio5XGYCIiV2fA4eI3eyv54PhFTCa4ZdEEbl+chp917J30\nZhgG1Z0XONxwnILGQnqdfQBE+IezOGk+C+LnkBSc4OWUMtpcsbHU2trKV77yFXbt2gXAunXrePXV\nV4c9mIiIQG+/g70n6/jgWA3t3YME+Vu5Z+0UVs5O0ikmIqOcxmAiIld2traD598qpamtj4SoILbd\nMp2JiWNvllL7QAdH6gs43HCMxl47AGG2EFaOX0JOXBapocmYTWOv0SaecVULKR0Ox9AUuebmZnp7\ne4c1lIjIWNfS0c/7R2v4uKiOgUEX/jYLN81LZsPCCYRqY26RMUNjMBGRz+Z0ufn9/ireOXweDLh5\nfjKblk7E5mfxdjSPcbqdFDef5mD9UUpbyjEwsJqtzInNYmHCXKZFTlYzSTziio2le+65h82bN2O3\n2/nmN7/JqVOn+Lu/+ztPZBMRGZPySxv5xbtlDDhcRIT4c/viVJZnJRIU4OftaCLiQRqDiYh8totN\n3Tz3Vik1Td1EhwWw7ZYMpqZEeDuWxzT0NHGw/gj59cfpdvQAkBqawsKEucyJzSLIL9DLCWWsuWJj\nacOGDeTk5HDixAlsNhv/+I//SGxsrCeyiYiMKU6Xm1/vPssHxy/ib7Nw//pp5GbGY7XoL00iY5HG\nYCIin1TT1M37Ry9wuKQRl9tgWVYCX1o1mUD/0X+iWb9zgIKmIg7VH+Fcx3kAxvkFsTJ5CbkJ80kM\njvdyQhnLrvgTmJeXN/T/PT09fPzxxwBs3rx5+FKJiIwxrZ39/Ofvi6ms7SQxehwPbMokIWqct2OJ\niBdpDCYiAm7D4FRlC+8freH0+TYA4iKD+NKqSWRPivZyuuHV7+znTFslRc2lFDQVMuAaxISJjMgp\n5CbOZ2b0dPzMo7+pJr7viu/C48ePD/3/4OAgRUVF5OTkaFAjInIDDDpc5J9uJG9vJV29DhZMj+PP\n100lwKZBgshYpzGYiIx1VfWdvPRuGReaugHImBDBTfOSmZkehdk0Og8xqe9p5FRzKadbzlDZUY3L\ncAEQGRDB6pTlLEqYS2TA2Fn2JyPDFT+5PP7445/4d19fH9///veHLZCIyFjQ2NrLb/ac5ePCOnr6\nnVjMJu5ZO4VVOUlDG/WKyNh2PWOwM2fO8K1vfYv777+fe++9l/r6eh555BFcLhcxMTE8+eST2Gw2\nduzYwUsvvYTZbGbr1q1s2bIFh8PB9773Perq6rBYLDz++OMkJycPx0sUEflMAw4Xv99Xxc6jFzAM\nWDg9jnULUkiJC/F2tGHRPdjD0cYT5Dccp6arduh6Ssh4pkdNJSNyChPDJmgjbvFZX/hP4oGBgVy4\ncGE4soiIjHrdfQ5eereMggo7hgHBgX5sWDiBFbMTiQ7TRosicnlXOwbr7e3ln/7pn1i0aNHQtaef\nfpq7776b9evX85Of/IS8vDw2btzIM888Q15eHn5+fmzevJm1a9eyZ88eQkND+fGPf8z+/fv58Y9/\nzL//+78P50sTERlyurqVl94rp6m9j5jwAO5fN42M1Ehvx7rh+px9lLSUc7yxkOKW07gNN2aTmcyo\nDObEZZEROYUQW7C3Y4pclSs2lu6+++5P/PW8sbGRqVOnDmsoEZHRqL17gB+/dpLa5h4mJYezIiuB\nedNi8bOOnWNxReTqXesYzGaz8dxzz/Hcc88NXcvPz+dHP/oRACtXruSFF14gLS2NmTNnEhJyaQZA\nTk4OBQUFHDp0iI0bNwKQm5vLo48+eiNflojIZ+roHuD1vZUcLG7AZIJ181O4Y2ka/n6jZ5zUMdBF\nUXMJRfYSytvODi1zSwpOYGH8HObGzybUNjpnZcnodsXG0kMPPTT0/yaTieDgYKZNmzasoURERpvm\njj6e+p+TNLX3sWbOeL59Vw4tLd3ejiUiPuxax2BWqxWr9ZNDvL6+Pmw2GwBRUVHY7Xaam5uJjPzf\nWQCRkZGfum42mzGZTAwODg59/2eJiAjCOoxN8pgYfdDyJNXbs8Z6vZ0uN2/tP8evdpbTN+BkYmIY\nD27NYnLy8Owj5I16N3TbeaP0PT6uPozLcAOQGj6e+eOzmZ+UTUp4ksczedJYf497mjfqfdnG0qFD\nhz7zent7O4cPH/7E9GoREbm8htZenvyfE7R1DXBr7gQ2LZ2I2ax9lETksw33GMwwjBty/U+1tfVe\nV6bPExMTgt3eNWzPL5+kenvWWK/36epWXtl1hvqWXsYFWLnv5qksz0rEbDYNS108Xe/GXjs7q3dz\ntPEEbsNNXFAsSxLnMysmk+jAPzT2HYzq98BYf4972nDW+/MaVpdtLP3sZz+77DeZTKbrGtQ88cQT\nHD9+HKfTyTe+8Q1mzpx51RtKioiMJDVN3fz4tRN09jrYsiKd9QsneDuSiPi44RiDBQUF0d/fT0BA\nAI2NjcTGxhIbG0tzc/PQY5qamsjOziY2Nha73c60adNwOBwYhvG5s5VERL6o3n4Hr314lv2n6jEB\nK2YnceeyiQQH+nk72nVzG27KW8+yvy6fQnsxBgYJ4+JYn7qa2bGztAG3jEqXbSy9/PLLl/2mnTt3\nXvMNDx8+TEVFBdu3b6etrY1NmzaxaNGiq95QMjw8/JrvLSLiSecbunjqtRP09Du576YprMwZ7+1I\nIjICDMcYLDc3l507d3LHHXfw/vvvs3TpUrKysnjsscfo7OzEYrFQUFDAo48+Snd3N++99x5Lly5l\nz549LFiw4FpfiojIp5w828wv3yujvXuQlLhg7l8/jdT4UG/Hum7tAx0cqjvGofojtPS3ATA+OJF1\nqavJipmhhpKMalfcY6muro5XXnmFtrZLPxyDg4Pk5+dz8803X9MN582bx6xZswAIDQ2lr6/vC20o\nuWrVqmu6r4iIJ/2xqdTb7+SrG6axdFaityOJyAhzrWOw4uJi/vVf/5Xa2lqsVis7d+7kqaee4nvf\n+x7bt28nMTGRjRs34ufnx8MPP8y2bdswmUw88MADhISEsGHDBg4ePMiXv/xlbDYb//Iv/+KJlysi\no1x3n4NffXCGwyWNWMwmNi2byPoFKVgtI7fh0uvo5aS9hOONJznTXonbcGMz+5GbMI/cxAWkhiZ/\n4hAGkdHqio2lRx55hGXLlrFnzx7uvfdePvzwQ5544olrvqHFYiEoKAiAvLw8li1bxv79+696Q0kR\nEV/3p02lr92SweKZCd6OJCIj0LWOwTIzMz9z1tOLL774qWvr1q1j3bp1n7hmsVh4/PHHrz24iMif\ncLsNPi6s47cfn6O7z0FaQghf25BBUkywt6NdE4fbSWHTKY42nuR065mhk91SQ1NYmDCXuXHZBFoD\nvJxSxLOu2FiyWCz85V/+Jfv27eOee+5h8+bNfOc73yE3N/e6bvzBBx+Ql5fHCy+8wE033TR0/Xo2\njtSJJKOL6u1ZqveNcfZiOz/efpLeASd/fddsVs9LuexjVXPPUr09S/W+fsM1BhMR8ZSztR28+v4Z\nzjd24W+zsHXlJNbOG4/FPPJmKdl7W9hfd5jD9cfodvQAl5a6zYnLIic263834xYZg67YWBoYGKCh\noQGTyURNTQ2JiYnU1tZe10337dvHs88+y/PPP09ISMgX2lDy8+hEktFD9fYs1fvGqG7o5MevnRya\nqTQrNeKydVXNPUv19ixvnUgy2gzHGExExBM6egbJ23OWA8UNACyaEceWlZMID/b3crIvxuFycKrl\nNAfrjnC69QwAwX7jWJuygkUJc4kbF+vlhCK+4bKNpcbGRuLi4vj617/OwYMH2bZtG3fccQcWi4Vb\nb731mm/Y1dXFE088wS9+8Yuhjbi/yIaSIiK+qLKug59sL6R/0Mm2WzPIzdTyNxG5NsM1BhMRGW5u\n49Kyt7w9lfQOOEmODeaetVOYkjxyDmByG24q26s50lDACXsRfc5+ANLDUlmStJDZsbPwM19xfobI\nmHLZn4jbbruN7OxsNm/ezO23347VauXIkSP09PQQFhZ2zTd85513aGtr46GHHhq69i//8i889thj\nV7WhpIiIr6m42M6//bqQAYeLv7h1OgtnxHs7koiMYMM1BhMRGU41Td38cmcZlbWdBNgsfHnNZFbn\njMds9v3Nq11uF+c6qilsLqHQXkLrH051C/cPY0niQubH55AYrPGdyOWYjMtsXjQwMMCuXbv43e9+\nR1lZGbfddhubN28mPT3d0xmv2nAuc9AyCs9SvT1L9b525Rfa+PfXi3A43XzjjhnMm3Z1U6JVc89S\nvT1LS+Guj8Zgn6SfX89SvT1rNNTb5Xbzu31VvHv4Am7DYO60WL68ejIRIb637O1P6z3gGqSs9QxF\n9lJOtZTS47i0rUqAJYDsmEzmx+cwOWIiZtPI2w/Kl4yG9/hI4q0x2GVnLPn7+3Prrbdy66230tTU\nxJtvvsnf/M3fEBQUxObNm9m8efOwhBURGQkMw6CkqpWfvnEKl8vgrzZmMmdqjLdjicgooDGYiIwU\n3X0O/vN3xZw+30Z0WAD33jSVWelR3o51We19HRyoO0qRvZTytgocbicAYbYQliYtIit6BpMjJmLV\nUjeRL+SyM5Y+S2VlJT/72c/YtWsXRUVFw5nrmuivZaOH6u1ZqvfV6eod5PT5NoqrWimpaqWtawCr\nxcS3Ns4ke3L0F3ou1dyzVG/P0oylG09jMP38eorq7Vkjud41Td38x2+KaO7oJ3tSNH9x23QC/X2v\nIdPQ00SRvYSi5hKqO2swuPTxN2FcHLOiZzAzejoTQsdrZtIwGcnv8ZHI52Ys/VFHRwdvvfUWb7zx\nBoODg2zevJnHHnvshgYUEfFlhmGQt7eS9/Iv8MdOfHCgH/MzYlmVM35EbUgpIiOHxmAi4quOljXx\n87dLGXS4uX1xKrcvScNs8o29lAzD4GJ3HccbCylsLqap99JJ4yZMZMRMIiNsKjOjZxAT5Lszq0RG\nmss2lnbv3s0bb7zB8ePHWbt2Lf/wD//ArFmzPJlNRMQn/H5/Fe/mXyA2PJClWQnMSIskJS7EZwZQ\nIjK6aAwmIr5qwOHiNx9V8sGxi/jbLDywaabPbAXQ2GvnWONJjjeepLHXDoDNYiM7JpNZ0TOYET2N\ntMR4zZ4RGQaXbSy98MILbN68mSeffJKAgABPZhIR8Rm7jtaw40A1MeEBfPeeHJ/ciFJERheNwUTE\nF5292MHP3y6lsa2P+MggHtiUSVJMsFczdQ12c6zxJEcaCrjQdREAP7OV2bGzmBuXzfTIqdgsfl7N\nKDIWXLax9Morr3gyh4iIz9lfVM//fFhBWLCNh++araaSiHiExmAi4ksGHS5+t6+KnUcuAHDTvGTu\nXDYRm5/FO3lcDopbTnOk4TglLeW4DTdmk5npUVOZFzebWdHTCbCqKS/iSb63u5qIiA84Xm7nxXdP\nMy7AysNfyiY2PNDbkUREREQ8qqS6lV/tOkN9Sy+x4YF87ZYMr+wt6TbcnGmr5GjDCU7ai+l39QOQ\nHJLE/Pgc5sZlE2obm4c7iPgCNZZERP6PE2fs/NeOYmxWCw9tzWK8l6d5i4iIiHhSY1svv959lhMV\nzZiA1XPGs3l5Ov42z81ScridnG0/x6nm05xsKqJj8NLeSBH+4SxNWsj8+BwSg+M9lkdELk+NJRGR\nP7GvqI5fvFuGzWrh/9s8i/TEMG9HEhEREfGIvgEnbx2qZtfRGpwugynjw/jymilMiPfMbKCOgU5K\nWsopbjlNWesZBlyDAARZA1mcuIB5cbNJD0/FbDJ7JI+IXB01lkRE/uC9/Av8es9ZxgVYeWhrlppK\nIiIiMiZ0dA/wwfGL7D1RS0+/k6hQf7asnMS8abGYhvEUXLfh5nxnDcUtZZS0lFHTVTv0tZjAKGZG\nT2dG1DQmhadhNeujq4iv0k+niIx5hmGQ91El7x6+QESIP9/5UjZJ0eO8HUtERERkWNW39LDzyAUO\nFjfgdBkEB/qxadlEbpqXjP8wbs7dPtDB/trDHKg7QucflrhZTBamRkxiRtQ0MqMziAuKGbb7i8iN\npcaSiIxpA4MuXnm/nAPFDcRFBvHwl7KIDtNG3SIiIjJ69Q04ydtbyd4TtRhAbHggNy9IYXFm/LCd\n9mYYBmfbq/io9iCF9mLchptAayC5CfOYEZ3BtIhJOs1NZIRSY0lExqwLjV38144S6lt6SY0P4aEt\nWYSOs3k7loiIiMiwKTzbzC93ltPWNUBCVBCblk4kZ0oMZvPwLHlrH+jgSEMB+fXHaehtAiApOIHl\n43OZFzcbm0VjL5GRTo0lERlzDMPgg+MXeX3PWZwug7Vzk9m8Ih0/qzaCFBERkdGps3eQ//mggvzS\nRixmE7cvTuWWRanDMv4ZcA1SZC8hv+E4Za0VGBhYzVbmxGaxbHwu6WGpw7p3k4h4lhpLIjKmdPYM\n8sI7pymqbCEkyI9tt2QwKz3a27FEREREhoVhGBw53cSru87Q3edgYmIo96+fxviY4Bt6H5fbxenW\nMxxrPElhcwmDfzjRLS10AgsS5jAndhZBfkE39J4i4hvUWBKRMeNYWRO/3FlOd5+DGakRbLt1OuHB\n/t6OJSIiIjIsOroH+OXOck5UNGOzmrlr1STWzE2+YcvenG4nFW3nONlczMmmU3Q7egCIDohk7vhs\n5sfnEDcu9obcS0R8lxpLIjLqdfc5eOX9co6cbsLPauau1ZNZM3c8Zk3BFhERkVHIMAwOFjfw2ocV\n9PQ7mZoczlc3TCM24vpnDA26HJS2lHHSXkJxy2n6nH0AhPgFs2L8YubGzSY1NFlL3UTGEDWWRGRU\nO3m2mZfeLaOjZ5D0xFC+dksGCVHjvB1LRMSjXn/9dXbs2DH07+LiYjIzM+nt7SUo6NIHze9+97tk\nZmby/PPP895772EymXjwwQdZvny5t2KLyDWob+nhV7vOUFLdhr+fhXtvmsKK2UnX9Qc1wzCo6a7l\nUN1RjjaeHGomRfiHsyA+h6yYTNLDUrGYh+dEORHxbWosicio5DYMfrfvHG8dPI/VYmLzinTWzU8Z\nthNPRER82ZYtW9iyZQsAR44c4d133+Xs2bM8/vjjTJkyZehxNTU1vPPOO7z22mt0d3dz9913s2TJ\nEiwWfVgU8XV9A07ePFDNrmM1uNwGmWmRfOXmqUSHB17zc/Y4ejnacIKD9Ueo7a4HIMwWwpKUFcyO\nnUlKyHjNTBIRNZZEZPTpG3Dy3JulnDzbTEx4AA/eOYvk2Bu7QaWIyEj1zDPP8NRTT/Gd73znU1/L\nz89n6dKl2Gw2IiMjSUpK4uzZs0ydOtULSUXkahiGweHSRn695ywd3YNEhwXw5dWTyZ4cfU1NH7fh\npqLtHAfrj3DSXozT7cRsMpMVk0luwjwyIqdoZpKIfIIaSyIyqjS29fIfvzlFXXMP01Mj+OYdmQQH\n+nk7loiITygqKiIhIYGYmBgAnn76adra2khPT+fRRx+lubmZyMjIocdHRkZit9uv2FiKiAjCah2+\nD5oxMSHD9tzyaaq3Z11PvWsau/jP35ziVOWlzbnvvnkad66chL/fF/95HHAOsqvyY3ZWfERjTzMA\nSSHxrJq4mKWp8wkPCL3mnL5E72/PU809yxv1VmNJREaN8gtt/PS3p+jpd7J2bjJbV6VjMZu9HUtE\nxGfk5eWxadMmAL7yla8wdepUUlJS+MEPfsCrr776qccbhnFVz9vW1ntDc/6pmJgQ7PauYXt++STV\n27Outd6DDhdvHTrPu4fP43IbZE+K5u41k4kOD6Sz/Yv9PDpcDg7UHWHn+d10DnbhZ/ZjYfxcchPn\nMzFsAiaTCUcX2LtG/vtC72/PU809azjr/XkNKzWWRGRU6Ood5D9/V0z/oIuvbpjG0lmJ3o4kIuJz\n8vPzeeyxxwBYu3bt0PVVq1bxzjvvsGDBAqqqqoauNzY2Ehuro8JFfMmpcy28+v4Zmtr7iAz15541\nU5g9JeYLP8+gy0F+wzHeq95N+0AHNouNmyesYnXKMsb5Xf/pcSIydqixJCKjwqu7ztDZ62Dryklq\nKomIfIbGxkbGjRuHzWbDMAy++tWv8vTTTxMaGkp+fj6TJ09m4cKFvPjii3z729+mra2NpqYmJk2a\n5O3oIgI0tvby2ocVFFa2YDaZuHl+MncsSSPA9sU+0l3ouviH091O0Ofsx8/sx5qU5axJWU6ITXtS\nisgXp8aSiIx4x8ubOHK6ifTEUG6al+ztOCIiPslutw/tn2Qymdi6dSv3338/gYGBxMXF8e1vf5vA\nwEC2bt3Kvffei8lk4oc//CFmLSkW8aq+ASdvHqxm19FLp71NSwnny2umfKGDSdr62zlpLya//hg1\n3XUAhNlCWTYhl+XjFxPmrz1wROTaqbEkIiNaV+8gL+8sx2ox87VbMjCbdeStiMhnyczM5Pnnnx/6\n94YNG9iwYcOnHnffffdx3333eTKaiHwGwzA4WtbEr/4wKzsqNIAvrZrEnKkxV3XaW0NPE4X2Ygrt\nJZzvqgG4dLpb9AxyE+frdDcRuWHUWBKREe1Pl8AlRI3zdhwRERGR69bZO8grO8s5Vm7HZjWzaWka\nN89PwXaF097chpui5lI+OL+Xqs4LwKVm0rSIyWTFZJIdm0moTbOTROTGUmNJREasoSVwSVoCJyIi\nIqPDsbImXn6/nK5eB5PGh7HtlgziIj5/M22Hy8GRhgI+qPmIpt5mAGZETWNObBYzozMI0mbcIjKM\n1FgSkRGptbOfl3eW42c187UNWgInIiIiI9uFxi7eOljNsXI7flYzd62axJq5yZ87xmnua+FA3REO\n1R2ly9GN1WQhN2Eeq1OWET8uzoPpRWQs80pj6cyZM3zrW9/i/vvv595776W+vp5HHnkEl8tFTEwM\nTz75JDabjR07dvDSSy9hNpvZunUrW7Zs8UZcEfExF5u6+bfXC+nsdXDXKi2BExERkZHJ7TYoqmxm\n55EaTp9vAyA9MZSv3ZJx2fGN0+2kqLmUA7X5lLVVABBoDWRtygpWJC8m3D/MY/lFRMALjaXe3l7+\n6Z/+iUWLFg1de/rpp7n77rtZv349P/nJT8jLy2Pjxo0888wz5OXl4efnx+bNm1m7di3h4eGejiwi\nPuR0dSs/feMUfQMutqxIZ62WwImIiMgI0zfg5HBJA3tO1nGxqRuAjAkR3DQvmZnpUZg/Y3Puuu4G\nDtUf5UhDAd2OHgDSw9JYkrSA7JiZ2Cx+Hn0NIiJ/5PHGks1m47nnnuO5554bupafn8+PfvQjAFau\nXMkLL7xAWloaM2fOJCTk0uZyOTk5FBQUsGrVKk9HFhEfcaikgRfePg3AX942nYUz4r2cSEREROTq\n1Tb3sKfgIgeLG+gfdGG1mFicGc/aecmkxH16U+22/nZONZ/mcP2xoZPdxvkFsTJ5CUsSF2i5m4j4\nBI83lqxWK1brJ2/b19eHzWYDICoqCrvdTnNzM5GRkUOPiYyMxG63ezSriPgGh9PN24eq2XGgmkB/\nKw/eOZOMCRHejiUiIiJyVcrOt7HjQBVlF9oBiAjxZ/2CFDatmoJzwDH0uK7Bbs60naW8rZKKtkqa\n+i5txG3CRGbUNBYlzCMzOgOrWVvliojv8LnfSIZhfKHrfyoiIgir9fOP4LweMTE6mtOTVG/P8sV6\nG4bBkZIGfv5mCfXNPUSHBfDDv1jEhIRQb0e7IXyx5qOZ6u1ZqreICFTVd/Lbjyopqb60f1LGhAhW\n5SSRPTkai9lMJuNmWAAAIABJREFURGgATU2DVHdeYE/Nfk7YT+E23AAEWALIjMpgakQ6OXFZ2jtJ\nRHyWTzSWgoKC6O/vJyAggMbGRmJjY4mNjaW5uXnoMU1NTWRnZ3/u87S19Q5bxpiYEOz2rmF7fvkk\n1duzvFnv7j4HO/ZX4TIMEqPGkRh96b/u3kFe+7CCkuo2zCYTa+aM5/YlaQRZTaPivaH3uGep3p41\nnPVWw0pERoL6lh5++9E5jp+5tOJiRmoEdy5PJ+1P/jjmdDv5uDqfN0s/HFrmljgunnlxs5kSmU5y\ncBIW8/D90VxE5EbxicZSbm4uO3fu5I477uD9999n6dKlZGVl8dhjj9HZ2YnFYqGgoIBHH33U21FF\n5AY639DFT397ipbO/ss+JjMtki+tnkxStE5+ExEREd/mNgw+PHaR1/dW4nS5SU8M5c7l6Z9Ywt/W\n387+unwO1ObT5ejGhIms6BmsSF7M5PB0TJ+xcbeIiC/zeGOpuLiYf/3Xf6W2thar1crOnTt56qmn\n+N73vsf27dtJTExk48aN+Pn58fDDD7Nt2zZMJhMPPPDA0EbeIjLyHThVzy93luNwurl9cSqzJ8dQ\n19JDXfOl//oHXdw0L5lZ6VEaYImIiIjPa+8e4IW3T1Nc1UpokB/33TydnCkxmEwmDMOgov0cH108\nSFFzCW7DTZA1kFunrmFe5FyiAyOvfAMRER/l8cZSZmYmL7/88qeuv/jii5+6tm7dOtatW+eJWCLi\nIU6Xm9c+rGB3QS2B/lb+amMm2ZOiAZgQr+axiIiIjDwnK5p54Z3TdPc5mDkxiq/dkkHYOBuGYVDS\nUsa7VR9Q1XkBgOTgRJaNX8zcuCyS4qO0VFtERjyfWAonImODw+ni6bwiSqrbSIoZx4N3ziQuIsjb\nsURERES+MMMwqLjYwXv5Fzh5thmrxczdayazes54AIqbT/NO9Qec77y0f1JWTCZrUpaTFpqi2dgi\nMqqosSQiHuF0ufnZG8WUVLeRlR7FN+6YQYBNv4JERERkZHG7DU5U2Hkv/wKVdZ0ApCeF8uc3TyMw\nZJBd5/dypLGA+p5GALJjZrIhbQ1JwQnejC0iMmz0qU5Ehp3bbfDcm6UUVrYwIy2Sb22aiZ/V7O1Y\nIiIiIlfN7TbIL21kx4EqGtv6AJg9OZplc6Jos1azveYlznWcB8BqsjAnNoubU1epoSQio54aSyIy\nrNyGwYvvnOZoWRNTksN58E41lURERGTkcBsGx8qa+P3+KupberGYTSzJiiV1Sh9negp4vqoMt+HG\nhImpEZOYG5dNdkwmQX5a7i8iY4MaSyIybNxug1c/OMOB4gbSEkL5682z8PezeDuWiIiIyFUpqmwh\nb28lF+3dmE0m5mYFMm58LcVtezl+/tKspfHBicyPz2FOXBbh/mFeTiwi4nlqLInIDdfePcC+ono+\nPllHS2c/42OC+ZutWQT661eOiIiI+L6O7gH+58MKjpxuwmQymDnLwBRbRUlnBdgh1BbC6uRlLEiY\no6VuIjLm6VOeiNwwZ2ra2XWshpMVzbjcBv5+FpZlJXLn8okEB/p5O56IiIjI53IbBvuL6vn17rP0\nOvqJn9SOf2INZ/sboRMmhk1gZfJSsqJnYDFrFraICKixJCI3QN+Ak9f3nGXvyToAxscEs3J2Igtn\nxGuWkoiIiIwIVfWdvLa7grOt5/EfX0tIVAMdODAPmJkTm8XK5KWkhaV4O6aIiM/RJz4RuS5l59t4\n4Z3TNHf0kxQzjvtumsrk8WGYTCZvRxMRERG5oguNXfx23xlKOk5hjashIKELgBD/cBYlziM3YR4R\nAeFeTiki4rvUWBKRazLgcPGbvZV8cPwiJhPcsmgCty9O04lvIiIiMiLUNvew/cBxynuLsETXYot0\nYcbMrJiZ5CbOJyNyMmaTxjUiIleixpKIfCGGYVBwppnXPjxDS+cA8ZFBbLs1g/REnYIiIuKr8vPz\n+eu//msmT54MwJQpU/j617/OI488gsvlIiYmhieffBKbzcaOHTt46aWXMJvNbN26lS1btng5vciN\nVdXSyPbj+zjfdwZzSDvWEBhnCWFlyiJyExcQ5h/i7YgiIiOKGksictUa23r51a4KTp1rwWI2sWHh\nBG5fnIrNT5tXioj4uvnz5/P0008P/fv73/8+d999N+vXr+cnP/kJeXl5bNy4kWeeeYa8vDz8/PzY\nvHkza9euJTxcy4BkZGvpa+NwXQH7LxTQadjBCuZgSPSfwC2TlzEzero24xYRuUZqLInIFbkNgx37\nq3jn8HmcLoPpqRHcs3YKCVHjvB1NRESuUX5+Pj/60Y8AWLlyJS+88AJpaWnMnDmTkJBLMzZycnIo\nKChg1apV3owqck2cbienmk+zv/YwZW0VABhuE+beGHJiZ7IpexERAZpxLSJyvdRYEpEr2rG/ih0H\nqokI8efLqyczZ2qMNucWERlhzp49yze/+U06Ojp48MEH6evrw2azARAVFYXdbqe5uZnIyMih74mM\njMRut1/xuSMigrBah2+2R0yMliZ50kiv98WOevZWH2Jv1WE6By5txO3qCsfUlsytmbl86c5Mnzq1\ndqTXe6RRvT1PNfcsb9Tbd36jiohPKjzbzI4D1USHBfAP988jONDP25FEROQLSk1N5cEHH2T9+vXU\n1NTwla98BZfLNfR1wzA+8/sud/3/amvrvSE5P0tMTAh2e9ewPb980kitd6+jl2ONhRxuOMb5zppL\nF51+OJsnYGmfwNoZGaxdm0xokI3uzj66vRt3yEit90ilenueau5Zw1nvz2tYqbEkIpfV1NbLc2+W\n4mc188CmmWoqiYiMUHFxcWzYsAGAlJQUoqOjOXXqFP39/QQEBNDY2EhsbCyxsbE0NzcPfV9TUxPZ\n2dneii3yuQZcg5S0lFHQWMipltM43U5MmDB3x9JXn0hAfwK3zE1l9Z3jGRegMYyIyHBRY0lEPtOA\nw8UzbxTTO+Bk2y0ZTIjXFFYRkZFqx44d2O12tm3bht1up6WlhTvvvJOdO3dyxx138P7777N06VKy\nsrJ47LHH6OzsxGKxUFBQwKOPPurt+CJDHC7HpWZSUxGnmksZdDsAiPKPxt2cRN3ZCKzuQNbPT2HD\nwgk+teRNRGS00m9aEfkUwzD45Xtl1DR1s2J2EotnJng7koiIXIdVq1bxt3/7t3z44Yc4HA5++MMf\nkpGRwXe/+122b99OYmIiGzduxM/Pj4cffpht27ZhMpl44IEHhjbyFvEWwzCo7rzA4YbjHG8spM/Z\nB0BMYBSzY2bRfjGK/Qe6cblh5sQo7l4zmbjIIC+nFhEZO9RYEhnl+gacdPYM0tEzSGfPIJ29gzhd\nBiYTmE0mTCYICQmgpbWXQaeLAYeL1s4B8ksbmZgYypdXT/b2SxARkesUHBzMs88++6nrL7744qeu\nrVu3jnXr1nkilsjn6hjo4nD9UQ43HKOp99ISzTBbCItTljM3LpsgdyT/taOUs7UdRIcFcPeaKWRN\nitIBIyIiHqbGksgoZRgGr+46w+6C2mv6/rBgG9/amImf1XyDk4mIiIh8Nrfhpqy1ggN1+RQ1l+I2\n3PiZrcyJzWJBwlymRUzCYrZQVNnCk28do7vPwfyMWP583TQtexMR8RL99hUZpd7YV8XuglriIgKZ\nPD6csGAboUE2QsfZ8LOaMQwDwwC3YRAaEkhf3wD+fhZsfhb8/SzEhgfibxu+o6NFRERE/qilr5X8\nhuMcqj9Ga38bAEnBCSxJXMi8+GwCrYEAuNxufvNRJW8fOo/VYuK+m6awYnaSZimJiHiRGksio9Du\ngou8dbCa2IhAvn/vHELH2T738ToGVERERDyt3znASfspDtcfo6L9HAA2i43chPksSVpASsj4TzSM\napt7+PlbpVQ3dBETHsC3Ns7U4SIiIj5AjSWRUeZYWROvvn+G0CA/vvOl7Cs2lUREREQ8qX2gg90X\n9rG/7jADrkEAJodPZEHCXGbHZBJgDfjE491ug51HLvDGvnM4XQaLZsRzz9opBAXoo4yIiC/Qb2OR\nUaT8Qhv//WYJNpuFv9maTWx4oLcjiYiIiABg721h14W95Ncfw2m4CLOFsjp5GQsS5hAdGPWZ31Pf\n0sMLb5+msq6T0HE2/nzdVGZPjvFwchER+TxqLImMcJ09g5RWt1JS3cqxcjuGAQ/eqanhIiIi4n2D\nLgclLWUcbTxBkb0EA4OYwCjWpqxgfsIc/Myf/XGktbOftw5Ws6+oHpfbYMH0OO5ZO4XgQD8PvwIR\nEbkSNZZERhC3YWBv66OqvpOq+i7KL7Rxoal76OshQX5s25DBjNRIL6YUERGRsczldlHedpZjjScp\ntBfT7xoAYHxwIjdNWMHs2FmYTZ996mx79wBvHzrPRydrcboM4iIC2bxiEnOmapaSiIivUmNJZAQo\nv9DGWwerOVffRd+Ac+i61WIiY0IEM9IimZEaSXJcMGadiiIiIiIeZhgGNV21HGks4FjjSboGL/3h\nK8I/nKVJi5gXP5vEcfGXPb3N4XTx1sHzvHfkAg6nm+iwAG5fnMaizDgs5s9uQomIiG9QY0nEh7nc\nbnbsr+atg9UYQFxEIFnpUaQmhJKWEEJKXAj+fhZvxxQREZExqn2gg/z64+Q3FNDY2wTAOL+gS82k\nuNmkhaVcdnbSH5Wdb+OlneU0tvYSEeLPbYtTWTIzAatFDSURkZFAjSURH9Xa2c9/7Sih4mIHUaEB\nfOOOGUxKCvN2LBERERnjXG4Xpa3lHKg7QklLGW7DjdVsZXbsLObHzWZ61FSsl9k76U919zn49Z6z\n7C+qx2SCtXOT2bQsjQCbPqKIiIwkPv9b+5//+Z8pLCzEZDLx6KOPMmvWLG9HEhlWTpeb4+V2Xnm/\nnJ5+J3OnxnD/+mkEBWizShEREfGOQZeDs+3nKG0tp6CxiI7BTgBSQpLITZzPnNhsgvyu7jRah9PF\n3hN1vHWomq5eB8mxwdy/fhppCaHD+ApERGS4+HRj6ciRI5w/f57t27dTWVnJo48+yvbt270dS+SG\n6+wZpKiyhcLKZkqqWukfdOFnNfOVdVNZnpV42f0IRERERIZL+0AHJ5uKKWkto6LtHA63A4BAawDL\nkhaRmzif5JCkq34+h9PNvqI63jpYTXv3IP42C1tWpLN2XrKWvYmIjGA+3Vg6dOgQa9asASA9PZ2O\njg66u7sJDg72cjKRG6O7z8Gru85wpLQR4w/XYsMDWTormuXZiSRGj/NqPhERERlbOvu72Fd7iGON\nJ6lsr8b4wwglcVw8GVFTmB45lfTwNPyuYqnbHzldbg4WN/DmgSpaOgew+ZlZvyCFdQtSCAmyDddL\nERERD/HpxlJzczMzZswY+ndkZCR2u93jjaWPC+vw87eyaFqsR+8ro1tJdSs/f6uU9u5BUuKCWTg9\nnqxJUcRHBmmGkoiIiHiMw+3kVHMph+qPUtZagdtwAzApPI05sVnMjJ5ORED4F35et9vgUEkDbx6o\npqm9D6vFzE3zklm/cAJh49RQEhEZLXy6sfR/GYbxuV+PiAjCar3xJ2SdrGzh5Bk7EffOZensq5/u\nK9cnJibE2xGGxYDDxS/fLmXHvnNYzCbuW5/Bn62ajMXs3WbSaK23L1PNPUv19izVW8T3Xeyq41D9\nUY42nKDH2QtAesQEsqJmkhM765qaSQBuw+Do6SZ+v7+KhtZeLGYTK3OSuHVRKhEh/jfyJYiIiA/w\n6cZSbGwszc3NQ/9uamoiJibmso9va+sdlhxblk+k/HwrT//6BBFBVuIig4blPvK/YmJCsNu7vB3j\nhjEMg9rmHorPtbKvqI76ll4SooL4i9umkxofSmtLt1fzjbZ6jwSquWep3p41nPVWw0rk+rjcLk7Y\nT7G3Zj9VnRcACPELZnXKMhYlzGNW6qTr+vk939DFy++Xc66uE4vZxLKsRG7LTSUqLOBGvQQREfEx\nPt1YWrx4Mf/xH//BXXfdRUlJCbGxsV7ZXykhahzf2pzNj189zn/+rpi/+8oc/IZhZpSMPiXVreSX\nNlJS1Upb1wAAJmB1zng2r0zH30/vIxERERl+3YM97K/LZ1/tIdoHOjBhIjNqGrmJC8iMmobFfH1j\nkt5+B7/9+Bx7TtRiGDBvWix/tiKd2PCrOylORERGLp9uLOXk5DBjxgzuuusuTCYTP/jBD7yWZUXO\neI4W1/NxYR2vfXiW+26e6rUs4vu6+xz86oMzHC5pBCA40I+F0+OYkRZJZlokYcGaBi4iIiLDq985\nQHFzKceaCjndUo7TcBFg8WfF+MUsH7+Y2KDo676H0+XmUEkDv9lbSWevg/jIIO65aQozUiNvwCsQ\nEZGRwKcbSwB/+7d/6+0IQ+5eM5lzdR3sOVHL1JRw5mfEeTuS+KDj5U28/P4ZOnsGSUsI4a7Vk0lP\nDMPs5T2UREREZPRzuV2UtpZzpKGAU82ncbgdACQFJ7AoYR4LE+YSaL3+ZWn9g04+Lqxn19ELl056\ns5r5s+UTuWleCn5W83U/v4iIjBw+31jyJTY/C3+1MZN//MUxfvFuGRPiQrTfkgzp7nPwy53lHCtr\nwmoxs2VFOjfNT8Zi1uBKREREhldjTxOH6o+R33CczsFLeyTFBkYzJy6bOXFZJIy7MX8Q7ewdZNfR\nGvaeqKWn34nNamZVThLrF0zQPkoiImOUGktfUELUOP583VT++81S/mtHCY/eNwerRY2Dsc7pcvPT\n357iTE07k5LC+OqGaSREjfN2LBERERnFnG4nJ5pOsa/2EJUd1QAEWQNZPj6XhfFzSQ5JwmS6MTOm\n3YbBx4V15O2ppHfASXCgHxuXpLEyJ4mQINsNuYeIiIxMaixdg4Uz4impbuXAqQbe2HeOLSsmeTuS\neFne3krO1LQzZ2oMf3VHppa9iYiIyLBpH+hgf+1h9tfl0zV46WTZaRGTWZQwl6yYTPwsfjf0fjVN\n3fxyZxmVtZ0E2CzctWoSy2cn6RASEREB1Fi6ZnevmULFxQ7eO3yBGamRTNcGhWPWkdONvH+0hoSo\nIL62IUNNJRER8UlPPPEEx48fx+l08o1vfIPdu3dTUlJCeHg4ANu2bWPFihXs2LGDl156CbPZzNat\nW9myZYuXkwuA23BT3nqWA3X5FDaX4DbcBFoDWZW8lKVJi27IRtz/18Cgi9/vr+L9ozW4DYN502K5\na/VkIkJ0CImIiPwvNZauUaC/lW/cPoN/fvk4z79Vyo++Nl/TgMegWns3L75Thr/NwoN3ziTQXz9S\nIiLiew4fPkxFRQXbt2+nra2NTZs2sXDhQr7zne+wcuXKocf19vbyzDPPkJeXh5+fH5s3b2bt2rVD\nzSfxvLb+dg7VH+VQ/TFa+9sASBwXz4rxi5kbPxt/y/CMP4sqW3h5Zzktnf3EhAdw701TmTkxalju\nJSIiI5s+BV+HtIRQNi2bSN7eSn7xbhkP3jnzhq1jF9/X2+/kp789xYDDxbc2ZmpPJRER8Vnz5s1j\n1qxZAISGhtLX14fL5frU4woLC5k5cyYhISEA5OTkUFBQwKpVqzyad6wzDIOz7VXsrtnHqeZSDAxs\nFhu5CfPJTZxPamjysI0527r6efb3xRw53YTFbOKWRRO4NTdVy95EROSy1Fi6TusWpFB8roUTFc3s\nPVnHytlJ3o4kHuB2G/z87VIa2/pYtyCFudNivR1JRETksiwWC0FBl06yzcvLY9myZVgsFl555RVe\nfPFFoqKi+Pu//3uam5uJjPzf5f2RkZHY7fYrPn9ERBBW6/A1HmJiQobtuX2J0+3icE0Bb5d/SGXb\neQDSIyawdtJSFiXPIdBv+E5d6+13sPtYDa+8V0ZPn4OpKRE8sCWLtMSwYbunXDJW3t++QvX2PNXc\ns7xRbzWWrpPZZOLrt07nBy8c4X8+qCAmLIBMTRMe1RxON8+9WcKJimampYTzZ8snejuSiIjIVfng\ngw/Iy8vjhRdeoLi4mPDwcDIyMvjv//5vfvrTnzJ79uxPPN4wjKt63ra23uGIC1waINvtXcP2/L6g\npa+VQ/XHOFR/lPaBDkyYyI7JZFXyMiaGTcBkMtHd7qAbxw2/9/mGLvaerOVwaSMDgy4C/a3cs3YK\nK2cnYTabRn3tvW0svL99ierteaq5Zw1nvT+vYaXG0g0QGRrAN+/I5OnfFPH0b4r4qzsymT0lxtux\nZBj0D15a/lZa3caU5HAevHMWFrPZ27FERESuaN++fTz77LM8//zzhISEsGjRoqGvrVq1ih/+8Ifc\nfPPNNDc3D11vamoiOzvbG3FHPYfbSaG9mEN1RylvO4uBQYDFn+Xjc1k5fikxQcP3h0q3YVBQbufd\n/PNU1V/6ABIZ6s/6BSncuWoKzoEb38ASEZHRS42lG2RGWiQPbZ7F0785xTNvFPP12zJYOD3e27Hk\nBurqHeTfXy+iqr6T7EnRfPOOGdi034CIiIwAXV1dPPHEE/ziF78Y2oj729/+No888gjJycnk5+cz\nefJksrKyeOyxx+js7MRisVBQUMCjjz7q5fSjS7+zn321h9lds4/OwUtNnfSwVBYlzicndtawbcYN\nl2agnaxo5nf7q6hp6sZkgqz0KFbMTmLmxCjMZhMRoQHY7WosiYjI1VNj6QbKSI3k4S9l82+vF/Lc\njlIcDjdLsxK9HUtuAHt7H//+eiH1Lb0szozn/g3TNFNJRERGjHfeeYe2tjYeeuihoWt33nknDz30\nEIGBgQQFBfH4448TEBDAww8/zLZt2zCZTDzwwANDG3nL9el29LC35gAfXTxAr7OPAIs/q5OXkZs4\nn/hxw7tXo2EYnDrXwu/2VVHd0IUJWDQjjtsXpxEXGTSs9xYRkdHPZFzt4vkRYDjXbn6RtYrnG7r4\n8faTdPc5uDU3lQ0LUwiwqYf3RfjCWtzuPgfHy5vIL22k/EI7BnDTvGS2rpqEeZSd/ucL9R5rVHPP\nUr09y1vr+8V7fGUM5ovqexr5+OJBDjccZ9A1SLDfOFYmL2FZUi5BfoHDem+H08WhkkZ2Ha2htrkH\ngHnTYrljSRqJ0Z99mu1Ir/dIo3p7lurteaq5Z2mPpVFkQnwI3717Nj/5dSFvHazm48I6bstNZXl2\nIlaLZrn4uvqWHn69+yzFVa243Jf6rpPGh7E8K5HczPhhO95XRERERgeX28WpltN8dPEgZ9rOAhDh\nH87tE9eRmzh/WJe7AXT2DLK74CJ7/v/27jw66vre//hzksmeyT6ThISEECAJS4DIIhBEFLwKwvXq\nxWO52NZqa8VS76+LCy0Cxx8I1uPP9ae24PKLRRBshfYioCgIEnYIEoRAyL6QhOzLJJnM/P7gmlsq\nCgZmSXw9zsk5zHcm33nPm+9J3nl/P8uRMppaO/H2MnD9sGhuG59If0uwU99bRES+f9RYcpI4czD/\n+4HxbN1fzNYDJfz5ozy2HSjmzhuSGZdmUXPCQx3Oq2bV309g7egiITqY8UOjGZtqISrUuXcURURE\npPez2trZU7GfT0t2U2utA2BI+CBujJ/I8Mg0vL2cuzZjc1snH+4rYvuhUjo67QT5G5lxfSI3XxdP\nuMnPqe8tIiLfX2osOVGAn5E7Jg/kpox4/rankB1Hynh9Uy51Te3cOj7B3eHJP7DbHXyw+yx/31OE\nr9GLn80ayvXDtPi6iIiIXF5DexM7Snezq2wvbbY2fLx8mBw3gSnxE4kNinb6+7daO9m6v4SPDpZg\n7egiNNiXf5+SyOT0fvj5aqMRERFxLjWWXCAkyJf/mD6E6WPiWf7OYd7fmU9KQhhJsSHuDk24cHfv\nj3/L5fjZWsxh/vziznQNExcREZHLKm4qZWfJHg6eO4LN0UWwTxC3J93C5PgJBPtceg2ja6XV2snx\nglpyzpzn6Jka2tpthAT6cEdmEjeOjtPOtSIi4jJqLLmQJTyQn84aynNrj/L6xlwW3zeWAD/9F7hS\nUWUTh/OqqW20cr7RSm1TO7WNVmxdDoYPjOBns4YRHODj7jBFRETEQ9nsNo5WfcHOsj2cbSgCwBIQ\nxU0JNzA+5jp8vZ1XR7RabWTnVnLoVBWnSxu614IMC/Zl5oRkbs6I1wglERFxOXU1XGzYgAhuuz6R\nzXuLyNp6ip/OGqr1llygoKKRTbsLyMk/f9HxkCBf4s3BZAwxM+P6RLy89H8hIiIiX9fa2cqusr3s\nLP2cho4LO+4Mi0xlSvwk0iIG42Vw3gYtFedb+ORQGbuPV9De0QVAUmwII5MjGTkoioToYNWTIiLi\nNmosucEdk5M4VVzH3hPnGDoggsz0WHeH1GedLW9k0+cFHPvvhtKg+FBuG5dAnDmIcJM/Pkbt0ici\nIiLf7HxbHZ+W7mJP+X7auzrw9/bnpv6TmRw3AUtglFPf+1RxHf+1t4jjZ2sBCDf5cfuERCaNiCUs\nWItxi4iIZ1BjyQ2M3l78bPYwlry5n3c+OkVyXAixkc6dh/99Y+uy85fPzrJlXzEAKf3DmJ2ZRGpC\nmO7oiYiIyGWda6niw8JPOFR1FLvDTphfKDOSpjOp3zgCjM7dLbawspG/7DzL8YILDaVB8aFMuy6e\njCFmjN66KSYiIp5FjSU3MYcF8KNbU3ltYy4v/+ULHpkzEkuYtrS/Fmobrby68Tj5ZY1Eh1/Ic2pi\nuLvDEhERkV7gq4bSwXNHcOAgNiiaaQlTGBM9CqOXc0vn8poWPth1loOnqgFISwznzhsGkhwX6tT3\nFRERuRpqLLnRuLRoCiua2LK/mKfeOsBPZw0lPdm5Q6r7uqNnalj99xO0WG2MS7Pwo1tTtUC6iIiI\nXFZVazWbC7Z3N5T6BcUwI2k6I83DnLp+0rnaVg6equJwXjUFFRfWbkqKDeGuKQMZOiDCae8rIiJy\nregvbje7+6ZBxEYFkrU1jxfWH2PWpAHMzkzCS9O1rkirtZOiyiYKzzVxtqyRQ3nVGL29+OGtKUwZ\n2U/T3kRERORb1bTV8mHBx+w/dxi7w+6ShlJ1fRvZuZUcOFlFWXULAF4GA0MHhHNTRjyjB0ephhER\nkV5DjSXpHKovAAAUoklEQVQPMDm9HwkWEy//5Qs2fV5IYWUT989MwxTo6+7QPNaJwlre2ZZHZW3r\nRcdjIwN5cPYwEqJNbopMREREeoM6az1bCrezp+IAdoedmKBoZiZNZ5R5uFMaSi3WTg6crCL7eCWn\nSxuAC+tujhoURcYQM6MGRxEc4HPN31dERMTZ1FjyEIkxJhbfN5Y/bsrlWP55Fv5xL/92w0CmjOqH\nt5cWafxHp4rreHHDMewOB8MGhJMQY2JATAiJMSbMof66wyciIiLfqKmjma1Fn7CrNBubowtLQBQz\nkqZzXfTIa9ZQ6rLbKa9ppbCikcJzTRRWNFFS1YSty4EBSE0IY8LwGMakWDRlX0REej39JvMgwQE+\n/OeckXx8sISNnxfwzrY8dhwp5z+mDyYlQYtPA5wuref59cfosjtYcNcIrUklIiIiV6TN1sb24l18\nUvIZ7V0dRPiHMyNpOuOiR+Pt5d3j89odDsprWiisaLowPb+ykeKqZjpt9u7XeHsZ6G8J5roUMxOG\nxRAR4n8tPpKIiIhHUGPJw3h5GbhlXALjh8Xw/s58dh+rYOWaIwxPiiAy1B8/H298fbzw8/EmJMiX\nmIhAoiMCMQX49PmROmfLG/k/7+Vg67Lz0B3D1VQSERGRy7LarHxWls3HRTtpsbVi8g1mdvJtTOo3\nHp+r2OWtqq6Vz7+oZM/xCs43tncf9/YyEBcVRGKMiQGxIQyIMRFvDsbHqBHoIiLSN6mx5KFCg3z5\nyYw0po6OY81HeRwvqP3W1wf6GelnDuLOyQNJTex7o5uKKpt4bt1R2ju7+Pm/DidjiNndIYmIiIgH\na+1sZUfp53xasptWWxsBRn9mDbyVqf0z8fPu2TqWHZ1d7P+yit1fVJBXUg+Av683E4ZFMygulMSY\nEPpbgvAx9nwElIiISG+jxpKHS4oNYeG911HX1E57ZxcdnXbaO7to7+yittHKudo2KmtbOVfXSn5Z\nA8+uPcq/35jMv4zr32dGMJ0urefFDcdoa7fxwKyhjE21uDskERER8VDNnS1sL/6Mz0r3YO1qJ8gY\nyO1J/8KU+IkE+gT06JwNLR18eriUTw6X0dzWCUBaYjiTRsRw3RALfr5qJImIyPeXyxtL+/fv55FH\nHmH58uVMnToVgJMnT7JkyRIAUlJSWLp0KQCrVq1iy5YtGAwGfvGLXzBlyhRXh+sRDAbDFc3FP11a\nz//94DjvfXqGs+UN3DcjrdcvCHnwZBV//NsJ7HYHP5mZxoRhMe4OSURERDxQa2cbn5R8xqclu7F2\ntWPyDea2pGlk9rsef6Pfdz6fw+GgsLKJTw+XsfdEJbYuB0H+RmZcn8iNo/oRFdazJpWIiEhf49Ku\nQ3FxMW+++SYZGRkXHV+2bBkLFy4kPT2dX//61+zcuZOBAweyefNm1q5dS3NzM3PnziUzMxNvb90R\n+iaD48NY8uOxvLoxl4OnqimraeEXd44gNjLI3aH1yEcHSli7/TS+vt4suGsEIwZGujskERER8TBW\nm5UdpZ/zcfFntNnaMPkEM3PgLWT2ux5fb5/vdC5bl52TxXUcOV3D0dM11DVdWDspOjyAW8b2Z+Lw\nWI1OEhER+ScubSyZzWZefvllfve733Uf6+jooKysjPT0dACmTp1KdnY21dXVTJ48GV9fXyIiIoiL\ni+PMmTOkpKS4MuReJzTYj9/cM4oNO/LZdqCEpW8d4O6pg7hxdBxevWRqnN3hYPWm43ywM5/QIF/+\nc85IEmNM7g5LREREPIjdYWdf5WE25m+mqaOZIGMgdyTP4Ib4iVe8hpLd4aCsuoWTRXWcLL7w1dbe\nBUCQv5EJw2IYm2YhPTmy19RRIiIirubSxlJAwNeHDNfV1RESEtL9ODIykurqasLCwoiIiOg+HhER\nQXV1tRpLV8Do7cU9Nw9mUFwob285yTvb8jh0qpr7ZqQSFeoZw7Y7bV2cLW8kr7SBgvJGGlo6aLV2\n0mK10dZuo8vuIDYykP81Z6SGmouIiMhFihpLWJ+3kYLGYny8fJgxYBo3JdxAgPHrSwc4HA7Kaloo\nqmyiqbWTprYOmlo7aWzp4Gx5Y/eaSQCWsAAmjYhk9GAzQ/qH4u2lndxEREQux2mNpfXr17N+/fqL\nji1YsIDJkyd/6/c5HI7vdPwfhYcHYnTiLhxmc+8aNXOb2cT4kXG8sj6H/ScqWfzGAe6fPZxbxie4\nfGFvh8NBfmkD+3IryTldzemSemxd9u7njd5eBAf6EGbyI94STLzFxE9mD8MU2LNdW+S7623Xd1+g\nnLuW8u1ayrc4Q3NHCxvzPyS74gAOHGRY0rlz0O2E+4dd9Louu50zpQ0cOV3DkdPVVNdbL3m+cJMf\nE4fHkJoQTmpimMfcgBMREelNnNZYmjNnDnPmzLns6yIiIqivr+9+fO7cOSwWCxaLhYKCgq8d/zZ1\nda09D/gyzGYT1dVNTju/Mz04K40RSeGs+fg0L68/yvuf5DE+LZpxQ6OJiQj8zufrtNmpbbLibTB8\n62giW5edE4V1HD1Tw9HT1dQ3dwBgMECCxcTg/qEMiQ9jcP8wQgJ9Lmp2fZVva0v7d//A8p315uu7\nt1LOXUv5di1n5lsNK9dYvnw5OTk5GAyG7nUw3cnhcHDg3BE2nN5ES2cr/YJimDNkNkPCB+FwOKht\ntFJY2URhZSOFFU0UVDTSYrUB4OfrzZhUC2mJ4YQF+WIK9MUU6IMp0IcAP2Of2UVXRETEXdy+ZZiP\njw8DBw7k4MGDjBkzhm3btnHvvfcyYMAA3nzzTRYsWEBdXR1VVVUMGjTI3eH2SgaDgUkjYklLDGf9\njnwO51Xzwe4CPthdQGK0iTGpZgbFhZIQbbpoF7mv1h3IK6nnbHkD1fVWzjdaqW9q56vxY4PiQpmc\nHsvYNAv+vhe+t7ymhV3HytlzvJKm1gvDy79ap2D04CiGDogg0N/tl56IiIhcwv79+ykqKmLdunXk\n5+ezcOFC1q1b57Z4qppreCUniy9r8zAafBgVeANhbSls32llbf0BquvbuptIX4kK9WdsqoXRQ8yk\nJoTjY9SUNhEREWdx6V/3O3bsYPXq1Zw9e5bc3FyysrJ44403WLhwIU8++SR2u52RI0cyceJEAO6+\n+27mzZuHwWBgyZIleGme+1WJCPHnwdnDaGu3cfR0Dfu+PEduQS1F5/7nrnJ0eACJMSbaO7o4U9Zw\nUaHmZTAQEeJHSkIYkSH+1Ld0cKKgljNlDazZfpoxQ8ycq2vjTFkDcKGZNO26eMakWkiOC9E6BSIi\nIr1AdnY206ZNAyA5OZmGhgaam5sJDg52eSz/79AWDjR8hh0b9oYomguGkt0RCJQAF6bSm8P8SUkI\nJynWRGKMiQExIQQHfLfd4ERERKTnDI4rWbyol3DmNIe+Oo2iua2TE4W1FFY2UfTfX63tF5pJ5jD/\n7qlqg+NDsYQHfK05VNPQxudfVLL7WAXnG60YgKFJEUxOj2X0YHOP7xD21Xx7KuXb9ZRz11K+XUtT\n4Xq3RYsWMWXKlO7m0ty5c1m2bBlJSUnf+D02W9c1X+fyfFMjD21+DEenD47SoSQGpDG4fzgD40Lp\nFxVEbFQQ4SZ/vLw0lU1ERMSdNB/pey44wIdxadGMS4sGLqxhUN1gxcfbi3CT32W/Pyo0gH/NTGLW\npAEUlDcSFuxHZOjXd2QRERGR3ulK7kE6Z51LAz8a+FMGWGKJ8AvE6H3xzSp7h43z55ud8L7fb2rE\nu5by7VrKt+sp567lrpt7aizJRQwGA5ZvWZD7m3gZDCTHhTohIhEREXEli8VCTU1N9+OqqirMZrNb\nYhk3YLD+KBEREfFwWvRGRERERLpNmjSJrVu3ApCbm4vFYnHL+koiIiLSO2jEkoiIiIh0y8jIYNiw\nYdxzzz0YDAYWL17s7pBERETEg6mxJCIiIiIX+c1vfuPuEERERKSX0FQ4ERERERERERHpETWWRERE\nRERERESkR9RYEhERERERERGRHlFjSUREREREREREekSNJRERERERERER6RE1lkREREREREREpEfU\nWBIRERERERERkR4xOBwOh7uDEBERERERERGR3kcjlkREREREREREpEfUWBIRERERERERkR5RY0lE\nRERERERERHpEjSUREREREREREekRNZZERERERERERKRH1FgSEREREREREZEeMbo7gN5g+fLl5OTk\nYDAYWLhwIenp6e4Oqc955plnOHToEDabjQcffJARI0bw6KOP0tXVhdls5g9/+AO+vr7uDrNPsVqt\n3H777cyfP58JEyYo3062adMmVq1ahdFo5Je//CUpKSnKuZO0tLTw2GOP0dDQQGdnJw8//DBms5kl\nS5YAkJKSwtKlS90bZB+Ql5fH/Pnz+fGPf8y8efOoqKi45DW9adMm3n77bby8vLj77ruZM2eOu0OX\nXkL1l2uoBnM91WCuo/rLdVR/uY4n1mAasXQZ+/fvp6ioiHXr1rFs2TKWLVvm7pD6nL1793L69GnW\nrVvHqlWrWL58OS+++CJz585lzZo1JCYmsmHDBneH2ee8+uqrhIaGAijfTlZXV8crr7zCmjVreO21\n19i+fbty7kR//etfSUpKIisrixdeeKH7Z/fChQtZu3Ytzc3N7Ny5091h9mqtra089dRTTJgwofvY\npa7p1tZWXnnlFd566y2ysrJ4++23qa+vd2Pk0luo/nIN1WDuoRrMNVR/uZbqL9fw1BpMjaXLyM7O\nZtq0aQAkJyfT0NBAc3Ozm6PqW8aOHcsLL7wAQEhICG1tbezbt4+bb74ZgKlTp5Kdne3OEPuc/Px8\nzpw5w4033gigfDtZdnY2EyZMIDg4GIvFwlNPPaWcO1F4eHj3L87GxkbCwsIoKyvrHu2gfF89X19f\n/vSnP2GxWLqPXeqazsnJYcSIEZhMJvz9/cnIyODw4cPuClt6EdVfrqEazPVUg7mO6i/XUv3lGp5a\ng6mxdBk1NTWEh4d3P46IiKC6utqNEfU93t7eBAYGArBhwwZuuOEG2trauoelRkZGKufX2MqVK3n8\n8ce7HyvfzlVaWorVauXnP/85c+fOJTs7Wzl3opkzZ1JeXs706dOZN28ejz76KCEhId3PK99Xz2g0\n4u/vf9GxS13TNTU1REREdL9Gv0PlSqn+cg3VYK6nGsx1VH+5luov1/DUGkxrLH1HDofD3SH0WR9/\n/DEbNmzgjTfe4JZbbuk+rpxfWx988AGjRo2if//+l3xe+XaO+vp6Xn75ZcrLy/nhD394UZ6V82tr\n48aN9OvXj9WrV3Py5EkefvhhTCZT9/PKt/N9U46Ve+kpXTvOpRrMNVSDuZ7qL9dR/eUZ3FWDqbF0\nGRaLhZqamu7HVVVVmM1mN0bUN+3atYvXXnuNVatWYTKZCAwMxGq14u/vz7lz5y4a6idXZ8eOHZSU\nlLBjxw4qKyvx9fVVvp0sMjKS0aNHYzQaSUhIICgoCG9vb+XcSQ4fPkxmZiYAqamptLe3Y7PZup9X\nvp3jUj9HLvU7dNSoUW6MUnoL1V+uoxrMdVSDuZbqL9dS/eU+nlCDaSrcZUyaNImtW7cCkJubi8Vi\nITg42M1R9S1NTU0888wzvP7664SFhQEwceLE7rxv27aNyZMnuzPEPuX555/n/fff57333mPOnDnM\nnz9f+XayzMxM9u7di91up66ujtbWVuXciRITE8nJyQGgrKyMoKAgkpOTOXjwIKB8O8ulrumRI0fy\nxRdf0NjYSEtLC4cPH2bMmDFujlR6A9VfrqEazLVUg7mW6i/XUv3lPp5QgxkcGpN2Wc8++ywHDx7E\nYDCwePFiUlNT3R1Sn7Ju3TpeeuklkpKSuo+tWLGC3//+97S3t9OvXz+efvppfHx83Bhl3/TSSy8R\nFxdHZmYmjz32mPLtRGvXru3eeeShhx5ixIgRyrmTtLS0sHDhQs6fP4/NZuORRx7BbDbz5JNPYrfb\nGTlyJE888YS7w+zVjh8/zsqVKykrK8NoNBIdHc2zzz7L448//rVresuWLaxevRqDwcC8efOYPXu2\nu8OXXkL1l/OpBnMf1WCuofrLdVR/uYan1mBqLImIiIiIiIiISI9oKpyIiIiIiIiIiPSIGksiIiIi\nIiIiItIjaiyJiIiIiIiIiEiPqLEkIiIiIiIiIiI9osaSiIiIiIiIiIj0iNHdAYiIlJaWcuuttzJ6\n9OiLjk+ZMoUHHnjgqs+/b98+nn/+ed59992rPpeIiIhIX6EaTESuBTWWRMQjREREkJWV5e4wRERE\nRL5XVIOJyNVSY0lEPNrQoUOZP38++/bto6WlhRUrVjBkyBBycnJYsWIFRqMRg8HAk08+yaBBgygs\nLGTRokXY7Xb8/Px4+umnAbDb7SxevJgvv/wSX19fXn/9dYKCgtz86UREREQ8k2owEblSWmNJRDxa\nV1cXgwcPJisrix/84Ae8+OKLADz66KM88cQTZGVlcd9997F06VIAFi9ezP3338+f//xn7rrrLj78\n8EMA8vPzWbBgAe+99x5Go5Hdu3e77TOJiIiIeDrVYCJypTRiSUQ8Qm1tLffee+9Fx377298CkJmZ\nCUBGRgarV6+msbGR8+fPk56eDsC4ceP41a9+BcCxY8cYN24cADNnzgQuzO8fOHAgUVFRAMTExNDY\n2Oj8DyUiIiLi4VSDicjVUmNJRDzCt83vdzgc3f82GAwYDIZvfB4uDLn+Z97e3tcgShEREZG+RTWY\niFwtTYUTEY+3d+9eAA4dOkRKSgomkwmz2UxOTg4A2dnZjBo1CrhwR23Xrl0AbN68meeee849QYuI\niIj0cqrBRORKaMSSiHiESw3Djo+PB+DEiRO8++67NDQ0sHLlSgBWrlzJihUr8Pb2xsvLiyVLlgCw\naNEiFi1axJo1azAajSxfvpzi4mKXfhYRERGR3kI1mIhcLYPjn8cvioh4kJSUFHJzczEa1QcXERER\ncRXVYCJypTQVTkREREREREREekQjlkREREREREREpEc0YklERERERERERHpEjSUREREREREREekR\nNZZERERERERERKRH1FgSEREREREREZEeUWNJRERERERERER6RI0lERERERERERHpkf8P7a32RFPX\nEtwAAAAASUVORK5CYII=\n", + "text/plain": [ + "<Figure size 1440x360 with 2 Axes>" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "SGCcnhtv4nmA", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 293 + }, + "outputId": "0e2dedf4-7258-4ccd-ec1b-0650366584ba" + }, + "cell_type": "code", + "source": [ + "HTML(display_videos('cnn_train_explore100.mp4'))" + ], + "execution_count": 45, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "<video alt=\"test\" controls>\n", + " <source src=\"data:video/mp4;base64,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BAAAAAABAAAGAAAAAAEAAAIAAAAAAwAABAAAAAABAAAGAAAAAAEAAAIAAAAABgAABAAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAUAAAQAAAAAAQAACAAAAAACAAACAAAAAAIAAAQAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAGAAAAAAEAAAIAAAAAAQAABgAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAGAAAAAAEAAAIAAAAAAQAABgAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAGAAAAAAEAAAIAAAAAAQAABgAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAGAAAAAAEAAAIAAAAAAwAABAAAAAABAAAGAAAAAAEAAAIAAAAAAQAABgAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAACAAAEAAAAAAEAAAgAAAAAAgAAAgAAAAAEAAAEAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAEAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAGAAAAAAEAAAIAAAAAAgAABAAAAAABAAAIAAAAAAIAAAIAAAAAAwAABAAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAQAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAABAAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAIAAAAAAIAAAIAAAAAAQAABgAAAAABAAACAAAAAAUAAAQAAAAAAQAABgAAAAABAAACAAAAAAIAAAQAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAACAAAEAAAAAAEAAAgAAAAAAgAAAgAAAAABAAAGAAAAAAEAAAIAAAAAAgAABAAAAAABAAAGAAAAAAEAAAIAAAAAAQAABAAAAAABAAAGAAAAAAEAAAIAAAAAAQAABgAAAAABAAACAAAAAAEAAAQAAAAAAQAABgAAAAABAAACAAAAAAIAAAQAAAAAAQAABgAAAAABAAACAAAAAAEAAAgAAAAAAgAAAgAAAAABAAAGAAAAAAEAAAIAAAAAAQAACAAAAAACAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAGAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAGAAAAAAEAAAIAAAAAAQAABgAAAAABAAACAAAAAAMAAAQAAAAAAQAACAAAAAACAAACAAAAAAEAAAYAAAAAAQAAAgAAAAAcc3RzYwAAAAAAAAABAAAAAQAAAMoAAAABAAADPHN0c3oAAAAAAAAAAAAAAMoAAAXFAAAAIQAAACEAAAAUAAAAFAAAAB0AAAAcAAAAIgAAABQAAAAcAAAAHAAAABwAAAAiAAAAFAAAABwAAAAcAAAAHAAAABwAAAAdAAAAHQAAAB8AAAAZAAAAEwAAABQAAAAdAAAAHAAAAB4AAAAdAAAAHAAAACsAAAAWAAAAFAAAAB4AAAAdAAAAHwAAABUAAAATAAAAEwAAACAAAAAUAAAAIAAAABMAAAAWAAAAEwAAABYAAAATAAAAFgAAABMAAAAWAAAAEwAAABYAAAATAAAAFgAAABMAAAAWAAAAEwAAABYAAAATAAAAHAAAAB8AAAAcAAAAIQAAABQAAAAgAAAAFAAAACAAAAAUAAAAHAAAABwAAAAhAAAAFwAAABQAAAAdAAAAHAAAABwAAAAcAAAAIgAAABQAAAAdAAAAIwAAABQAAAAfAAAAFAAAAB0AAAAdAAAAHwAAABUAAAASAAAAHQAAAB0AAAAdAAAAKQAAABgAAAAUAAAAFAAAAB4AAAAWAAAAEAAAABQAAAAUAAAAFwAAABAAAAAUAAAAFAAAABYAAAAQAAAAFAAAABQAAAAfAAAAGgAAABIAAAAUAAAAFAAAABcAAAAQAAAAFAAAABQAAAAXAAAAEAAAABQAAAAUAAAAFwAAABAAAAAUAAAAFAAAABcAAAAQAAAAFAAAABQAAAAgAAAAFAAAABMAAAAUAAAAKwAAABYAAAATAAAAIgAAABQAAAAcAAAAHAAAABwAAAAcAAAAGwAAACIAAAAUAAAAHQAAAB0AAAAeAAAAFAAAABIAAAAUAAAAIAAAABwAAAAgAAAAFgAAABIAAAAhAAAAFAAAABwAAAAcAAAAIQAAABQAAAAcAAAAIQAAABQAAAAgAAAAEwAAAB0AAAAhAAAAFAAAABwAAAAdAAAAIgAAABQAAAAbAAAAFgAAABQAAAAgAAAAFAAAACEAAAAWAAAAFAAAABYAAAATAAAAFgAAABMAAAAVAAAAEAAAABQAAAAUAAAAKwAAABQAAAAgAAAAFAAAABwAAAAbAAAAHAAAACIAAAAXAAAAFAAAAB8AAAAoAAAAFHN0Y28AAAAAAAAAAQAAADAAAABidWR0YQAAAFptZXRhAAAAAAAAACFoZGxyAAAAAAAAAABtZGlyYXBwbAAAAAAAAAAAAAAAAC1pbHN0AAAAJal0b28AAAAdZGF0YQAAAAEAAAAATGF2ZjU3LjgzLjEwMA==\" type=\"video/mp4\" />\n", + " </video>" + ], + "text/plain": [ + "<IPython.core.display.HTML object>" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 45 + } + ] + }, + { + "metadata": { + "id": "1PbS8KL_gDPM", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1734 + }, + "outputId": "60bbf866-5199-486e-f12a-7319cb9d3714" + }, + "cell_type": "code", + "source": [ + "# Evaluation\n", + "history_cnn = test(agent,env,epochs_test,prefix='cnn_test_explore')" + ], + "execution_count": 46, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Step 1: Win/lose count 25.5/4.0. Average score (10.75)\n", + "Step 2: Win/lose count 19.5/4.0. Average score (12.333333333333334)\n", + "Step 3: Win/lose count 22.0/5.0. Average score (13.5)\n", + "Step 4: Win/lose count 23.0/3.0. Average score (14.8)\n", + "Step 5: Win/lose count 21.0/4.0. Average score (15.166666666666666)\n", + "Step 6: Win/lose count 20.5/5.0. Average score (15.214285714285714)\n", + "Step 7: Win/lose count 16.5/2.0. Average score (15.125)\n", + "Step 8: Win/lose count 28.0/6.0. Average score (15.88888888888889)\n", + "Step 9: Win/lose count 20.5/4.0. Average score (15.95)\n", + "Step 10: Win/lose count 25.0/4.0. Average score (16.40909090909091)\n", + "Step 11: Win/lose count 22.5/4.0. Average score (16.583333333333332)\n", + "Step 12: Win/lose count 24.0/3.0. Average score (16.923076923076923)\n", + "Step 13: Win/lose count 21.0/2.0. Average score (17.071428571428573)\n", + "Step 14: Win/lose count 14.5/2.0. Average score (16.766666666666666)\n", + "Step 15: Win/lose count 27.0/5.0. Average score (17.09375)\n", + "Step 16: Win/lose count 17.0/3.0. Average score (16.91176470588235)\n", + "Step 17: Win/lose count 4.0/2.0. Average score (16.083333333333332)\n", + "Step 18: Win/lose count 24.0/3.0. Average score (16.342105263157894)\n", + "Step 19: Win/lose count 19.5/4.0. Average score (16.3)\n", + "Step 20: Win/lose count 22.0/5.0. Average score (16.333333333333332)\n", + "Step 21: Win/lose count 23.0/1.0. Average score (16.59090909090909)\n", + "Step 22: Win/lose count 25.5/4.0. Average score (16.804347826086957)\n", + "Step 23: Win/lose count 26.0/2.0. Average score (17.104166666666668)\n", + "Step 24: Win/lose count 27.5/3.0. Average score (17.4)\n", + "Step 25: Win/lose count 26.5/3.0. Average score (17.634615384615383)\n", + "Step 26: Win/lose count 21.5/3.0. Average score (17.666666666666668)\n", + "Step 27: Win/lose count 21.5/1.0. Average score (17.767857142857142)\n", + "Step 28: Win/lose count 14.0/2.0. Average score (17.56896551724138)\n", + "Step 29: Win/lose count 22.5/1.0. Average score (17.7)\n", + "Step 30: Win/lose count 19.5/4.0. Average score (17.629032258064516)\n", + "Step 31: Win/lose count 14.5/2.0. Average score (17.46875)\n", + "Step 32: Win/lose count 19.0/0. Average score (17.515151515151516)\n", + "Step 33: Win/lose count 22.5/1.0. Average score (17.63235294117647)\n", + "Step 34: Win/lose count 21.5/4.0. Average score (17.62857142857143)\n", + "Step 35: Win/lose count 22.0/1.0. Average score (17.72222222222222)\n", + "Step 36: Win/lose count 20.5/2.0. Average score (17.743243243243242)\n", + "Step 37: Win/lose count 4.0/0. Average score (17.38157894736842)\n", + "Step 38: Win/lose count 23.5/4.0. Average score (17.435897435897434)\n", + "Step 39: Win/lose count 20.0/4.0. Average score (17.4)\n", + "Step 40: Win/lose count 23.5/3.0. Average score (17.475609756097562)\n", + "Step 41: Win/lose count 19.0/2.0. Average score (17.464285714285715)\n", + "Step 42: Win/lose count 21.5/3.0. Average score (17.488372093023255)\n", + "Step 43: Win/lose count 21.5/3.0. Average score (17.511363636363637)\n", + "Step 44: Win/lose count 20.0/4.0. Average score (17.477777777777778)\n", + "Step 45: Win/lose count 20.5/4.0. Average score (17.456521739130434)\n", + "Step 46: Win/lose count 27.0/2.0. Average score (17.617021276595743)\n", + "Step 47: Win/lose count 15.0/5.0. Average score (17.458333333333332)\n", + "Step 48: Win/lose count 26.0/3.0. Average score (17.571428571428573)\n", + "Step 49: Win/lose count 16.0/5.0. Average score (17.44)\n", + "Step 50: Win/lose count 26.5/6.0. Average score (17.5)\n", + "Step 51: Win/lose count 9.5/1.0. Average score (17.326923076923077)\n", + "Step 52: Win/lose count 31.0/4.0. Average score (17.50943396226415)\n", + "Step 53: Win/lose count 23.0/3.0. Average score (17.555555555555557)\n", + "Step 54: Win/lose count 19.5/5.0. Average score (17.5)\n", + "Step 55: Win/lose count 17.0/5.0. Average score (17.401785714285715)\n", + "Step 56: Win/lose count 18.5/3.0. Average score (17.36842105263158)\n", + "Step 57: Win/lose count 10.5/3.0. Average score (17.198275862068964)\n", + "Step 58: Win/lose count 21.5/3.0. Average score (17.220338983050848)\n", + "Step 59: Win/lose count 22.5/6.0. Average score (17.208333333333332)\n", + "Step 60: Win/lose count 18.0/0. Average score (17.221311475409838)\n", + "Step 61: Win/lose count 14.0/2.0. Average score (17.137096774193548)\n", + "Step 62: Win/lose count 22.0/4.0. Average score (17.150793650793652)\n", + "Step 63: Win/lose count 13.0/4.0. Average score (17.0234375)\n", + "Step 64: Win/lose count 21.0/9.0. Average score (16.946153846153845)\n", + "Step 65: Win/lose count 18.0/3.0. Average score (16.916666666666668)\n", + "Step 66: Win/lose count 25.5/3.0. Average score (17.0)\n", + "Step 67: Win/lose count 18.5/3.0. Average score (16.977941176470587)\n", + "Step 68: Win/lose count 13.0/1.0. Average score (16.905797101449274)\n", + "Step 69: Win/lose count 20.5/3.0. Average score (16.914285714285715)\n", + "Step 70: Win/lose count 16.0/5.0. Average score (16.830985915492956)\n", + "Step 71: Win/lose count 21.0/2.0. Average score (16.86111111111111)\n", + "Step 72: Win/lose count 12.5/1.0. Average score (16.78767123287671)\n", + "Step 73: Win/lose count 17.5/1.0. Average score (16.783783783783782)\n", + "Step 74: Win/lose count 24.0/3.0. Average score (16.84)\n", + "Step 75: Win/lose count 14.5/3.0. Average score (16.769736842105264)\n", + "Step 76: Win/lose count 21.0/2.0. Average score (16.7987012987013)\n", + "Step 77: Win/lose count 26.5/7.0. Average score (16.833333333333332)\n", + "Step 78: Win/lose count 17.0/2.0. Average score (16.810126582278482)\n", + "Step 79: Win/lose count 21.0/2.0. Average score (16.8375)\n", + "Step 80: Win/lose count 17.0/3.0. Average score (16.80246913580247)\n", + "Step 81: Win/lose count 19.0/5.0. Average score (16.76829268292683)\n", + "Step 82: Win/lose count 27.5/4.0. Average score (16.849397590361445)\n", + "Step 83: Win/lose count 25.0/2.0. Average score (16.922619047619047)\n", + "Step 84: Win/lose count 25.0/4.0. Average score (16.970588235294116)\n", + "Step 85: Win/lose count 21.0/1.0. Average score (17.00581395348837)\n", + "Step 86: Win/lose count 16.5/2.0. Average score (16.977011494252874)\n", + "Step 87: Win/lose count 24.5/1.0. Average score (17.051136363636363)\n", + "Step 88: Win/lose count 18.0/5.0. Average score (17.00561797752809)\n", + "Step 89: Win/lose count 25.0/4.0. Average score (17.05)\n", + "Step 90: Win/lose count 22.5/2.0. Average score (17.087912087912088)\n", + "Step 91: Win/lose count 23.5/4.0. Average score (17.11413043478261)\n", + "Step 92: Win/lose count 17.5/0. Average score (17.118279569892472)\n", + "Step 93: Win/lose count 15.0/2.0. Average score (17.074468085106382)\n", + "Step 94: Win/lose count 16.5/3.0. Average score (17.03684210526316)\n", + "Step 95: Win/lose count 25.0/3.0. Average score (17.088541666666668)\n", + "Step 96: Win/lose count 21.0/2.0. Average score (17.108247422680414)\n", + "Step 97: Win/lose count 21.5/1.0. Average score (17.142857142857142)\n", + "Step 98: Win/lose count 17.0/4.0. Average score (17.1010101010101)\n", + "Step 99: Win/lose count 23.5/3.0. Average score (17.135)\n", + "Step 100: Win/lose count 25.5/4.0. Average score (17.178217821782177)\n", + "Final score: 17.35\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "Kdg12xewIyj6", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 349 + }, + "outputId": "5dcd494b-ed3b-4822-8cfa-78827cda332d" + }, + "cell_type": "code", + "source": [ + "visualization_score(history_cnn)" + ], + "execution_count": 47, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABJUAAAFMCAYAAAByPY2eAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3XlclXX6//HXWUBAQXb3BVcURMV9\nS0UR1FzKpdEsnWpsvto2NflTpxqbmq82pTmVzUx+y8w2ZxhLLUPNXFIRFzQVF9wVlE1BQBA459y/\nP5yYcVxS45yj+H4+HvMYzod7ue4rig/X/VlMhmEYiIiIiIiIiIiI3ASzuwMQEREREREREZE7j4pK\nIiIiIiIiIiJy01RUEhERERERERGRm6aikoiIiIiIiIiI3DQVlURERERERERE5KapqCQiIiIiIiIi\nIjdNRSURuaq9e/cyfvx44uPjiYuL44EHHmD79u0uj2PJkiW0a9eO+Pj4y/43fvz4W75my5YtyczM\nvO4xR48eZdu2bQCsXr2aadOm3fL9RERE5O4xdOhQvvrqq4rPZWVltG3blq+//rqirbS0lDZt2nD8\n+HHGjx9PamrqTd9n2bJlxMfH079/fxYuXHjN495++21+97vf3fT1f47k5GQiIyOv6L/Fx8ff8jVj\nYmJ+si+am5vLmjVrANi9ezePPvroLd9PRG6M1d0BiMjtxzAMfv3rX/Pqq6/Sp08fAFatWsXkyZNZ\nt24d3t7eLo2nXbt2fPjhhy6957fffovNZqNTp07ExsYSGxvr0vuLiIjInalHjx5s2bKFe++9F4Bd\nu3bh7e1NcnIygwcPBiAlJYWQkBAaN2583YLQ9bz55pssWbIEDw8P+vXrx4MPPojVevv8eVenTh0S\nExNdes/k5GQ2b95Mv379iIqK4v3333fp/UXuRhqpJCJXyMvLIycnh7Zt21a0DRgwgKVLl1YUlN57\n7z369etHXFwcM2fOxDAMAD766CMGDRpEfHw8//M//8O5c+cAmDp1KjNnzmTIkCF88803lJWV8eqr\nrxIXF0dMTAx//etfbzrOw4cP07lzZ2w2W0XbpEmT+OyzzygtLeWll14iLi6OgQMHMmvWLOx2+2Xn\nL1myhAkTJlzx+bvvvuNvf/sbH330EbNmzbrsuPz8fJ5++mni4uIYNGgQ7733XsX5LVu25Msvv2T4\n8OH07NnT5YUwERERcb/u3buTlJRU8XnLli2MHDmS5OTky9q6d+8O/HsETnp6Oj179uSjjz5iyJAh\n9OrVixUrVlzzPg6Hg4CAALKysvD397+lglJycjL33Xcf8fHxjBo1ij179gCQlZXF+PHjGTRoEP37\n9+fNN98ELr14fOedd4iLi6Nv3768+uqrV/SvfkpBQQFRUVEVfUSAP/7xj7zxxhs4HA7efPPNilFN\nU6dOpbi4+IqY//Nl34+fU1NT+cMf/sDKlSv5zW9+c9lx1+sXxsTE8PnnnzNy5Eh69uzJrFmzbjqP\nInczFZVE5AoBAQG0adOGhx9+mH/84x+cOnUKgNq1awOwfft2EhISWLp0KcuXL2fHjh0kJiaya9cu\n3n//fRYtWkRiYiJ169Zl9uzZFddNSkoiISGBgQMHMn/+fA4fPszy5cv56quvWLlyJWvXrr2pOJs1\na0ZwcHDFUOiSkhK2bNlCXFwcCxcuJDMzk6+//povvviC7du3XzYU/XpiYmKIjY3l4YcfZurUqZd9\nb86cOdSsWZOVK1fy6aef8tlnn102FPvw4cN8+eWXvPvuu8yZM+emO1oiIiJyZ+vUqRPZ2dmkp6cD\nlwpIAwYMwDAMsrKyKtp+LCr9p7y8PMxmM8uXL2f69OnMnTv3mvdp0aIFU6dO5dlnn2XOnDk3HeeF\nCxd4+umneeGFF0hMTOSxxx7jt7/9LQ6Hgw8//JBOnTqxYsUKli9fzqlTp8jOzmbp0qUkJiaSkJDA\n6tWrOXXqFJ999tlN3dfPz48uXbpc1u9bs2YNAwcO5JtvvmHDhg0sWbKEr7/+moKCght+SRcREcG4\nceOIi4urKIL96Kf6hdu2bWPx4sX885//5OOPP/7JZRJE5N9UVBKRK5hMJhYsWEBsbCwfffQR/fv3\nZ/DgwaxatQqADRs20Lt3b2rUqIGnpyeLFi1iwIABrFu3jri4OIKCggAYNWoUmzZtqrhut27dqFat\nGgBr165l7NixeHp64uPjw7Bhwyqu/9927dp1xXz8BQsWABAXF8d3330HwPfff09UVBSBgYGsW7eO\n0aNHY7Va8fLyYsiQIZfFcqvWr1/P2LFjAfD39yc2Nvay6w4bNgy41LEpLS3l7NmzP/ueIiIicufw\n8vKiQ4cOJCUlUVJSwpEjR4iIiKBTp05s2bKFoqIiUlNT6dat2xXn2mw27r//fuBSX+L06dNXvcdn\nn33GkSNH2LlzJwkJCURERPDJJ5+Ql5d3w3Hu3r2b2rVr06FDB+BSnyovL4+MjAyCgoLYuHEj27dv\nx9PTkzlz5hAaGsratWsZMWIEvr6+WK1WRo0adc3+25kzZ67ov/04Cug/+2+pqalYrVYiIiJYt24d\nw4cPx8fHB4vFwv33318p/bef6hcOGTIEi8VCrVq1CAoK4syZMz/7niJ3i9tn0q2I3FZ8fX156qmn\neOqpp8jNzWXJkiU8++yzLF26lLy8PEJDQyuO/XFK3Llz5y5r9/Pzu6yoUrNmzYqvCwsLmTlzZsWb\ntbKyMqKioq4ay/XWVIqLi+OJJ55g+vTpfPvttwwaNKgilv+8X82aNSulwHPu3Dn8/PwqPvv5+ZGd\nnV3x2dfXFwCLxQJcGpouIiIid5fu3buzZcsW6tatS9u2bbFYLHTu3Jnk5GT8/f1p0aIFAQEBV5xn\nsVjw8fEBwGw2X7UfkZKSwqJFi1i2bBlPPvkka9asISYmhg8++IAHHnjghmP87z4NXOrHnD17lgkT\nJuBwOHj55ZfJzs7mwQcf5Mknn6SwsJD333+fxYsXA2C32wkMDLzq9a+3plL//v2ZNWsWpaWlfPvt\ntwwcOLAiJmf136533Ro1alR8bbFYNNJc5CaoqCQiV8jMzCQ9PZ2OHTsCEBwczMSJE0lMTOTQoUME\nBARc9ibsx6+Dg4PJz8+vaM/Pzyc4OPiq9wgNDeWRRx6hb9++PyvW8PBwLBYLBw4cYOPGjRW7tN1I\nLGaz+bJOQ0FBwU/e78fr1q1b95rXFRERkbtbz549+fTTT2nYsCGdO3cGoEuXLsybN4+goCB69Ohx\ny9dOSUmhb9++1KhRg5dffpkJEybwww8/MGDAgJtaVykoKOiyvpJhGJw/f56goCCsVisTJ05k4sSJ\nHDt2jF/96ld06NCB0NBQYmJiGDdu3C3HD5dGe0dFRZGUlMS3337L66+/DtxY/+2/iz4303+73nVF\n5NZo+puIXOHMmTNMnjyZvXv3VrTt3r2b06dP06ZNG2JiYvjuu+84f/48NpuNyZMns3HjRvr06cPq\n1asrikyff/45vXv3vuo9+vXrxz/+8Q/sdjuGYfDuu++yYcOGW4o3Li6Ot99+m1atWlW89evTpw8J\nCQnY7XaKi4tZunTpFbGEhoZy7NgxSktLKSkpuextmtVqpbCw8Ip79enTp+Lt3Llz51i9enXFDnki\nIiIiAK1ataoYhdOlSxfg32tTrl+//qrrKd2osLAwtm7dSklJCQ0bNqwYpfTjznI3KioqitzcXHbu\n3AnA119/Te3atalfvz4vvfRSxfSwhg0bEhwcjMlkol+/fixdupSSkhLgUl/viy++uKXniIuL4+9/\n/zvl5eWEh4cDl/pZy5Yto6SkBJvNRkJCwhX9t5CQEHJycjh79ix2u53ly5dXfO96/bef6heKyK3R\nSCURuUL79u155ZVXmDFjBoWFhTgcDoKDg3nzzTepV68e9erV49FHH2X48OF4enrSq1cv7r33Xkwm\nExMnTuTBBx/E4XDQqlUrZsyYcdV7jB07lvT0dAYPHoxhGERGRjJ+/PirHvvjmkr/beHChdSqVYu4\nuDjuv/9+Xn311YrvPfTQQ5w6dYrBgwdjMpmIj4+vGFr9oy5dutC2bVvi4uKoX78+/fr1q+hA9e3b\nl9/+9rdkZGRcVjR65plnmDFjBvHx8ZjNZiZOnHjNaXsiIiJydzKZTHTr1o0NGzbQunXrivZOnTrx\n1VdfVaxjdCv69etHSkoKw4YNw26306xZM6ZOncozzzxDvXr1WLhw4RXnrFy5kh07dlR8btWqFW++\n+SZz587llVdeobi4mMDAQObMmYPJZOIXv/gFL730Eq+88gqGYRATE1OxBtShQ4e47777gEsFpz/+\n8Y9XjfPHNZX+25/+9CeioqKIjY3l5ZdfZuLEiRXfi4+P5+DBg9x///0YhkGXLl14+OGHLzu/UaNG\njBgxguHDh1O3bl2GDRvG/v37AejRowcLFixgxIgRTJkypeKcG+kXisitMRk/7gMuIiIiIiIiIiJy\ngzT9TUREREREREREbpqKSiIiIiIiIiIictNUVBIRERERERERkZumopKIiIiIiIiIiNw0FZVERERE\nREREROSmWd0dQGXKySl02rUDAnzIyyt22vXlcsq3aynfrqV8u55y7lrOzHdIiK9Triu3Tv2vqkU5\ndy3l27WUb9dSvl3PHX0wjVS6QVarxd0h3FWUb9dSvl1L+XY95dy1lG+pLPpZcj3l3LWUb9dSvl1L\n+XY9d+RcRSUREREREREREblpKiqJiIiIiIiIiMhNU1FJRERERERERERumopKIiIiIiIiIiJy05y6\n+1taWhqTJk1iwoQJjBs3jqeeeoq8vDwA8vPzadeuHY8//jhDhgwhMjISgICAAN566y0KCwt57rnn\nKCwsxMfHh9mzZ+Pv7+/McEVERERERERE5AY5rahUXFzMK6+8Qrdu3Sra3nrrrYqvp02bxqhRowAI\nCwtj0aJFl52/cOFCOnfuzGOPPcbixYuZP38+zz//vLPCFRERERERERGRm+C06W+enp7Mnz+f0NDQ\nK7539OhRCgsLiYqKuub5SUlJxMbGAtC3b1+SkpKcFaqIiIiIiIiIiNwkpxWVrFYrXl5eV/3eRx99\nxLhx4yo+5+bm8tRTT/GLX/yCZcuWVbQFBgYCEBQURHZ2trNCdbp//vPvTJw4gSeemMivfvUw27Yl\nuzskERERkSrr4YcfICMjveLzuHGjSEraWPF52rTfEh/fl9LSi+4IT0REpMpw6ppKV1NWVsaOHTuY\nMWMGAP7+/jz99NMMHTqUwsJCRo0aRdeuXS87xzCMG7p2QIAPVqulskOuEBLie9PnpKen8803y0hI\nSMDDw4Pjx4/zwgsvMGhQfydEWLXcSr7l1infrqV8u55y7lrKt7hTdHRHdu1KoV69+uTn51NSUsKu\nXTvp1q0nAPv27eWLL1ZQrdrVX4CKiIjIjXF5UWnbtm2XTXurUaMGI0aMACAwMJDIyEiOHj1KaGgo\nOTk5+Pr6kpWVddVpdP8tL6/YaXGHhPiSk1N40+edPJlFcXEJZ87k4e3tTfXqQbz55l/YtGkbs2e/\nhtlsIjKyLZMnP82RI4eZM+c1TCYTPj7VeeGFGRw+fIjPP/+Y4uJinnjiN2RlneHzzz/GYrHSsmUr\nnnzyN054Wve71XzLrVG+XUv5dj3l3DUchsHW/Vk0bxREUHUPp9xDxSq5Ee3bd2TTpg0MHjyU3bt3\nERc3iN27dwFw/Pgx6taty0MPjeajjxbz5pt/Ijg4hIMH95OVlclLL71Ky5bhbn4CERGRG1dSamPz\n3kwGdA9z+b2dNv3tWvbs2UN4+L9/UW/ZsoWZM2cClxb3PnDgAGFhYfTo0YPExEQAVq1aRa9evVwd\naqVo3rwFrVpFMGrUUP74xxmsWbMam83G3Llv8Pzz0/nLXz7g3LmzZGae4c9/foNJk57mnXfeo127\naP7xj88B/lVseoeGDRuxcOH7/PnPf+Wdd94jOzurooMkIiLiTll5xfzp0528t2wfX6w/7O5w5C7X\nvn10RR/phx920rFjZ+x2O6WlF9m1K4X27TtednxZWRlz5rzDqFG/IDHxa3eELCIicktSj53jxfeT\n+WR1GltTM11+f6eNVNq7dy+vvfYaGRkZWK1WVq5cydtvv01OTg4NGzasOK5jx458+eWXPPDAA9jt\ndiZOnEitWrV46KGHeP755xk7dix+fn68/vrrPzumv393mG0Hbm1tJovFhN1+5TS8TuGhjI5pdt1z\nX3zxDxw/foytW5P49NOP+PLLBE6ePE6zZs0rvg+X3pxFREQCl4ZtL1jwHu3bd6BZs+Z4enpy6FAa\nWVmZPPvsEwBcuFBEZmYm11nvXERExKkchsGaHen8c90RymwOoluE8Ov7o7BdLHd3aHKbcEf/y8+v\nJt7e3uTkZLNv314mTvwfWreOIDV1L7t372LQoCGsWvVNxfFt27YHICSkFvv2pd5SrCIiIq5UUmrj\n72sPs37XaSxmE0N7NKZ/54bknbvg0jicVlSKjIxk0aJFV7S/+OKLlwdgtTJr1qwrjqtevTrvvvuu\ns8JzGcMwKCsro3HjMBo3DmPEiAd48MGR5OfnX/c8m60cs/nSQDIPD49//f+lKW9z5rzj9LhFRER+\nSta5Yhas2E9a+nlqeHvwyOBWdAoPJcDXixwVldzmT3/6Ezt27MBms/H444/Tpk0bpkyZgt1uJyQk\nhNdffx1PT0+WLVvGwoULMZvNjB49mlGjRlFeXs7UqVM5ffo0FouFmTNn0qBBA3c/0i2Jju5IcnIS\nJpOJatW8iIpqx549P7BvXyr/7//97rJjLZZ/r8l5o2t5ioiIuEvqsXN8+M1+zhaUUj+kBo8ObkWj\n2r5YLS6fjOb6NZXcaXRMs58cVXQtt7oex1dfLWXXrhReeOFlTCYTFy4U4XA4aN++A6mpe4mIiGTm\nzD8wZsxDhIU1Ze/e3URGRrFzZwotW7a67FoNGzbm+PFj5OWdIyAgkPff/xtDh95HSMhPrzclIiJS\nWWx2B98kn2T5puPY7A46tAhhXFxLalb3dHdod70tW7Zw6NAhFi9eTF5eHvfddx/dunVj7NixDBw4\nkDlz5pCQkMDw4cOZN29exUYiI0eOJDY2lrVr1+Ln58fs2bPZuHEjs2fPZu7cuT8rJnf0v+DSukoL\nF75P+/bRAERFtePTTxcRHBysBbpFROSOdL6olM+/O0zyvizMJhNDujdmSI/Gbikm/eiuKiq5w6BB\nQzhx4jgTJ47H29sHm83GM888T61atXnjjUtrSUVEtKFx4zCeeea3FQt1+/r6Mn367zl48EDFtby8\nvHj66ef47W+fxtPTg+bNWxIcHOKuRxMRkbvQ4YzzLEw8QEbOBWpW92RsbAs6tgzBZDK5OzQBOnXq\nVLEhip+fHyUlJSQnJ/Pyyy8D0LdvXz744APCwsJo06YNvr6XFj6Pjo4mJSWFpKQkhg8fDkD37t2Z\nPn26ex6kErRrF83vfvc848c/AkBAQCAFBefp3z/OzZGJiIjcHIfDYO3ODJZsOEJJqZ2wOn48HNeS\nRrXdv4GJikpOZrFYeOKJZ676vb/85f3LPoeFNeHtt/92WVt0dEeio/+9mGTv3jH07h1T+YGKiIhc\nR3ZeMYlbT7F+ZwYG0Kd9PUb2boKPl3N2eZNbY7FY8PHxASAhIYF77rmHjRs34ul5aRRZUFAQOTk5\n5ObmEhgYWHFeYGDgFe1msxmTyURZWVnF+XeSGjVqsH598mVtn322pOLrhITlAPzudzMq2nr06EWP\nHnfm5jAiIlL1GIZB6vFzLFl/lOOZhXhXs/JQXEt6t62L2Xx7vNBTUUlERESuymZ3sOtQLut2ZbDv\neB4AdYJ8GB8fTosG/m6OTq7n22+/JSEhgQ8++IABAwZUtF9rvaCbbf9PAQE+WK2WnzzuVoWEuP8t\n7N1GOXct5du1lG/XUr5vTbnNzvqUdL5cf4QTmZemgfeJrs8jQyII8Lv+FG5X51xFJREREbmMze5g\n5daTrN6eTsGFMgBa1K9J7/b16BQe6tZ5+/LTvv/+e/7617/yf//3f/j6+uLj48PFixfx8vIiKyuL\n0NBQQkNDyc3NrTgnOzubdu3aERoaSk5ODuHh4ZSXl2MYxk+OUsrLK3bas/ycNZXk1ijnrqV8u5by\n7VrK980rLbOzevspvt1xqQ9mNpno2roWsZ0aEFbHD1tpOTk5194MxZk5v1axSkUlERERqXA4/V9r\nJuVeoLqXldiODejdri51g6u7OzS5AYWFhfzpT3/iww8/xN//0miy7t27s3LlSoYNG8aqVavo1asX\nbdu25YUXXqCgoACLxUJKSgrTp0+nqKiIxMREevXqxdq1a+nSpYubn0hERKTqcxgGSXsz+ef6I+QX\nleFdzUp8l4b071CfwJ8YmeRuKiqJiIgIxRdt/HP9Edb9a82kvu3rMaJ3U3y81FW4k6xYsYK8vDye\neebf6znOmjWLF154gcWLF1O3bl2GDx+Oh4cHzz33HI8++igmk4nJkyfj6+vLoEGD2Lx5M2PGjMHT\n05NZs2a58WlERESqvoMn8/h8zWFOZBXiYTVzb/dGDOzSCO9qd0YfzGTcyGT5O4Qzh9Zp6J5rKd+u\npXy7lvLtesr5tRmGwdb92Sz+7hD5RWXUCfJhwsBwmte/9TWT3DH0WtxH/a+qRTl3LeXbtZRv11K+\nr+/M2QskrDvCzkOXpqN3jajFiHuaElTz1kcmafqbiIiIuMzJrEI+/fYQaafysVpMDO8VxsAujfCw\nas0kEREREWcouFDG0k3HWL/zNA7DoFm9mjzQrxlN69Z0d2i3REUlERGRu0xRSTlffH/00lQ3A9o3\nD+aBmGaEBvi4OzSRSnPmzGleeOH/8f77i9wdioiICOW2SxuhrNhygotldmoFeDOyTzOiWwRjMpnc\nHd4tU1FJRETkLrL9QDYfrTxIUUk5tQN9GNO/OW2aBLk7LBEREZEq60jGeT5YsZ8zZ4up4e3Bg7FN\n6d2ubpXYUVdFJRERkbtAUUk5n6xOI3lfFh5WM6P6NiW2Y4Mq0ZkRuVFHjhxmzpzXMJlM+PhU54UX\nZmA2W3jppamUlZVRXl7Os8/+P1q2DOdvf5vH7t27cDjs3H//aGJj490dvoiI3GFKy+18seEoq7ed\nwgD6RdfnvnuaVKmNUKrOk4iIiMhV/XA4lw8TD3C+qIymdf14ZHAr6gRVd3dYIi735z+/waRJTxMR\nEcmnny7iH//4nGbNmhMSEsq0aS+RkZHOqVMn+eGHnWRlZTJv3nzKysp45JFx3HNPH6pVu723dRYR\nkduDYRikHj/HxyvTyM4vITTAm18ODKdlwwB3h1bpVFQSERGpghyGwb5j51izI50fjpzFYjYxoncT\n4rs0xGLW6CRxnSWHv2Jn9p5bOtdiNmF3XLlRcfvQNtzf7N6bvt7x48eIiIgEIDq6IwsWvMewYSOY\nP/8vvP76/9K7dwxdu3bn448/JDV1D088MREAw3CQm5tLvXr1b+k5RETk7lBWbmfLviy+3Z5Oek4R\nJhPEd27IsF5hVPOwuDs8p1BRSUREpAq5cLGcjbvPsHZnBtl5JQA0refH+Lhw6ofWcHN0IrcPm60c\ns9lMcHAwH374GSkp2/niiwRSU/fg4+PDvfcO46GHfunuMEVE5A6Qe76E9btOs37XaYpKyjGbTHQK\nD2Vg14Y0ru3n7vCcSkUlERGRO5xhGBw5XcD6nRlsO5BNmc2B1WKmR5vaxETXJ6xO1e7MyO3t/mb3\n3tKoIoCQEF9ycgorLZawsKbs3bubyMgodu5MoWXLVmzblozNZqNbtx40bhzG7NmzGDduAvPm/ZkH\nHxxPeXk57777Z37zmymVFoeIiNz5bHYHuw7lsmH3aVKPnsMAanh7MLhbI/q2r0eg390xZVpFJRER\nkTtU8UUbSamZrN+VQXrOBQBC/L3o074evaLqUsPbw80RirjXyZMnKqawATz22K/529/mYTKZ8PX1\nZfr031NQUMAf/vAin3yyELPZzKOPPk6bNm1p374Djz/+S8DgvvtGue8hRETktnKu4CJrUtLZtPsM\nBcXlwKVR4fdE1aVL61p4VtFpbtdiMgzjyonqd6jKfJP13yr7TZlcn/LtWsq3aynfrlfVcl5WbmdN\nSjpfbz5BcakNi9lE+xYh9G5Xl1aNAjCbTG6Nz5n5Dgnxdcp15dap/1W1KOeupXy7lvLtWlUt3+k5\nRaxMPsmWfVnYHQbVvax0i6zNPW3rUj/k9lhiwB19MI1UEhERuUM4HAab92by5cajnCsopbqXlfvu\nacI9betSs7qnu8MTERERqXKOni5g2aZj7D5yFoDagT7Ed2lIt4haeFjvrlFJV6OikoiIyB0g9fg5\nPl9ziIycC1gtZgZ2acigbo2o7qUpbiIiIiKV7cLFcv657gjrd53GAJrXr0l8l4a0bRbs9lHhtxMV\nlURERG5j5wousvi7w2w7kI0J6NmmDsN7hd01iz+KiIiIuJJhGCSlZrL4u8MUFpdTL7g64wa0oGXD\nAHeHdltSUUlEROQ2ZLM7WL39FMs2Hqe03E7Tun6MG9CSRrW1ppCIiIiIM2TkXuCTVQc5cDIfT6uZ\nUX2aEtupAVaL2d2h3bZUVBIREbnNpJ3K56OVBzmde4Ea3h6M7d+cHlF1NNRaRERExAmKL9pYuvEY\na3ak4zAM2jYN4sHYFgT7e7s7tNueikoiIiK3ieKL5SSsO8K6XacxAX3a1+P+e5pQw1vrJomIiIhU\nNodhsGnPGf657ggFxeWE+Hsxpl8L2jYLwqSXeTdERSURERE3MwyDHQdz+GR1GucvlFEvuDrjB4bT\nrF5Nd4cmIiIiUiVl5F7gw2/2cySjAE+rmfvuaUJ85wba0e0mqagkIiLiRnmFpSxaeZBdh3OxWszc\nf08T4rs01Nx9ERERESew2R0kJp9k2aZj2OwGHVuG8EBMc4JqahOUW6GikoiIiBsYhsGGH07z97WH\nKSm1E97Qn/Hx4dQK9HF3aCIiIiJV0smsQj5YsZ+TWUXUrO7JQ3EtiW4R4u6w7mhOLSqlpaUxadIk\nJkyYwLhx45g6dSqpqan4+/sD8Oijj9KnTx+WLVvGwoULMZvNjB49mlGjRlFeXs7UqVM5ffo0FouF\nmTNn0qBBA2eGKyIi4hLZecVuReL/AAAgAElEQVR8+M0BDpzMx7uahfHxLbmnbV3N3RcRERFxgtz8\nEhK3nmT9rtPYHQY929ThgX7NqO6ldSt/LqcVlYqLi3nllVfo1q3bZe3PPvssffv2vey4efPmkZCQ\ngIeHByNHjiQ2Npa1a9fi5+fH7Nmz2bhxI7Nnz2bu3LnOCldERMSpDMPg2JlC1u3KIHlfFuU2B+2a\nBfNQXEsCfKu5OzwRERGRKicjp4gVW06QvC8bh2EQXNOLh+NaEtkkyN2hVRlOKyp5enoyf/585s+f\nf93jfvjhB9q0aYOvry8A0dHRpKSkkJSUxPDhwwHo3r0706dPd1aoIiIiTlNSamNLaibrdp3mVHYR\nAME1vRjZpymdwkM1Okmc4r9Hiz/11FPk5eUBkJ+fT7t27Xj88ccZMmQIkZGRAAQEBPDWW29RWFjI\nc889R2FhIT4+PsyePbtilLmIiMidIDu/hMVrDrHzUC4A9YKrM6hrIzq1CtW6lZXMaUUlq9WK1Xrl\n5T/++GMWLFhAUFAQL774Irm5uQQGBlZ8PzAwkJycnMvazWYzJpOJsrIyPD09nRWyiIhIpdp79Cz/\n99U+CorLMZtMdGgRQu/2dWndOBCzikniJFcbLf7WW29VfD1t2jRGjRoFQFhYGIsWLbrs/IULF9K5\nc2cee+wxFi9ezPz583n++eddE7yIiMjP4HAYrN5+ii++P0pZuYOmdf0Y1K0RbZsFq+/lJC5dqHvY\nsGH4+/vTqlUr3nvvPd555x3at29/2TGGYVz13Gu1/6eAAB+sTtz+LyTE12nXlisp366lfLuW8u16\nrsx5uc3Bom/288W6w1gtJn4R25KB3RsT6Hf37Cqin3H3ud5o8aNHj1JYWEhUVBTp6elXPT8pKYn/\n/d//BaBv3778+te/dmq8IiIileFUdhEffrOfY2cKqeHtwYT4cLq0rqVR4U7m0qLSf74xi4mJYcaM\nGcTFxZGbm1vRnp2dTbt27QgNDSUnJ4fw8HDKy8sxDOMnRynl5RU7LfaQEF9ycgqddn25nPLtWsq3\naynfrufKnGedK+avy1I5kVlIrUAffj00gka1fbGXlpOTU+6SGNzNmflWseqnXWu0OMBHH33EuHHj\nKj7n5uby1FNPkZ2dzdixYxk6dOhlo8WDgoLIzs52SdwiIiK3Iju/hG+3n2JtSgZ2h0G3iFr8ol9z\nfH00y8kVXFpUevLJJ5kyZQoNGjQgOTmZ5s2b07ZtW1544QUKCgqwWCykpKQwffp0ioqKSExMpFev\nXqxdu5YuXbq4MlQREZGbUlRSztqUdFZsOUlpuZ2ebeowNrY5Xp4u/VUrck1lZWXs2LGDGTNmAODv\n78/TTz/N0KFDKSwsZNSoUXTt2vWyczRS/O6knLuW8u1ayrdrOSvfhmGw50guyzYcZeu+TAwDQgO8\n+Z8RbenYqpZT7nmncPXPuNN6unv37uW1114jIyMDq9XKypUrGTduHM888wze3t74+Pgwc+ZMvLy8\neO6553j00UcxmUxMnjwZX19fBg0axObNmxkzZgyenp7MmjXLWaGKiIjcssxzxazedopNe85QZnPg\nU83KxKGt6dq6trtDE7nMtm3biIqKqvhco0YNRowYAVxa0zIyMpKjR49WjBb39fUlKyuL0NDQ615X\nI8WrFuXctZRv11K+XcsZ+TYMg5S0HJZuPE56zqUNUMLq+NK/YwM6hV9ahPtu/mfsjtHiTisqRUZG\nXrHwI0BcXNwVbfHx8cTHx1/WZrFYmDlzprPCExER+Vmy84pZ/N1hdh3KxQCC/LyI7dSAXlF18K6m\n0Uly+9mzZw/h4eEVn7ds2cLatWuZNm0axcXFHDhwgLCwMHr06EFiYiKTJk1i1apV9OrVy41Ri4iI\nXHIk4zyL1x7mcPp5zCYTnVuF0r9jA5rW9dO6SW6kXq+IiMhNKLc5SEw+wfLNJ7DZHYTV8SO+S0Oi\nWwRjMWuLWnG/q40Wf/vtt8nJyaFhw4YVx3Xs2JEvv/ySBx54ALvdzsSJE6lVqxYPPfQQzz//PGPH\njsXPz4/XX3/djU8jIiJ3u+y8YhLWH2X7gUtr/LVvHszIPk2pE1TdzZEJqKgkIiJyw/afyGPRyoNk\nniumZnVPxvRvTqfwUL0dk9vKtUaLv/jii5d9tlqtV11eoHr16rz77rtOi09ERORG2B0OEpNPsnTj\ncWx2B03q+jG6bzNaNPB3d2jyH1RUEhER+QlFJeUsXnOITXszMQH9OtTnvl5N8PHSr1ERERGRynYq\nu4gPVuznRGahXuTd5tQbFhERuQbDMNhxMIePVx2koLicRrV8eTi+JWF1/NwdmoiIiEiVY7M7+Grz\ncb5OOoHdYdAjsjYP9GtODW8Pd4cm16CikoiIyFXkF5Xy8ao0UtJy8LCaGdW3KQM6NdC6SSIiIiJO\ncOxMAR+s2E9GzgUC/arxcFw4UU2D3B2W/AQVlURERP7LltRMPl6VRnGpjRYN/JkwMJzagT7uDktE\nRESkyikrt/PlxmOs3HoSw4A+7eoyqm8z7aZ7h9A/JRERkX8pvmjj41UH2bIvi2oeFh4a0ILe7eth\n1vx9ERERkUqXdiqfBSv2k5VXQoi/FxMGtqJVowB3hyU3QUUlERERLnVq5i/fx9mCizSp68evhrSm\nVoBGJ4mIiIhUNpvdwZffH+ObLScAGNCpAff1akI1T4ubI5ObpaKSiIjc1ewOB0s3HufrpOMADOne\nmCE9GmO1aO0kERERkcqWlVfMe8tSOXamkFB/bx67tzXN6td0d1hyi1RUEhGRu1Zufgl/W57KkYwC\ngvy8+NWQ1rRo4O/usERERESqHMMw2Lw3k49Xp1FaZqd7ZG0ejG2htZPucPqnJyIid6Wt+7NYmHiQ\nklIbnVuF8nBcOD5e+rUoIiIiUtkycor44vtjpKTl4OVpYeKQ1nSNqO3usKQSqPcsIiJ3lZJSG5+v\nOcT3u8/g6WHmkUGt6NGmNiYtxi0iIiJSqdJzili+6TjbD2RjAE3r+fGrIRGE+nu7OzSpJCoqiYjI\nXSE7v4Q129PZuOc0JaV2GtaqweNDI6gTVN3doYmIiIhUKScyC3n/mwNs/uE0BtCoti/DeoTRtlmQ\nXuRVMSoqiYhIlWUYBgdO5PG35fvYmpqJAdSs4cnALo2I69wQD6sW4xYRERGpDA7DYPfhs6zadpID\nJ/MBaFzbl6E9w2jbVMWkqkpFJRERqXJKy+1sSc3k2x3pZORcACCsjh+xHevTMTxUO7uJiIiIVBKb\n3cHG3WdYufUkWXklAESEBTK6f0vqB3qpmFTFqagkIiJVRl5hKd/uOMWGXae5cNGGxWyiS+tajOzf\ngiAfD3eHJyIiIlJlGIZBSloOCeuOkJVXgtViomdUHQZ0bED90BqEhPiSk1Po7jDFyVRUEhGRO165\nzU5i8km+TjpBmc1BDW8P7u3eiL7t6xPgW02dGhEREZFKdDjjPH9fe5jD6ecxm0z0ja7H0O6NqVmj\nmrtDExdTUUlERO5YhmGw61Aun605RO75i/hV9+QX/cPoEVkbD6vF3eGJiIiIVBmGYXDgZD4rt55k\n95GzAES3CGFE7yba+OQupqKSiIjckY6dKWDJhqOkHjuHxWwirnMDhnQPw8dLv9pEREREKovN7mDb\n/mxWbjvJyawiAJrVq8nIPk1p0cDfzdGJu6nnLSIidwzDMEg9do4VW05U7CoSERbI2P7N9YZMRERE\npJKlpOXwyeo08gpLMZmgY3goAzo1oFm9mu4OTW4TKiqJiMhtzzAMth3I5uukE5zKvvSGLKJxAPFd\nG9G6UYB2FRERERGpRCWlNj5bc4iNu89gtZiJ7diA2I71Cfb3dndocptRUUlERG5r6dlFfLzqIGnp\n5zGZoEvrWsR3bkij2r7uDk1ERESkykk7lc//fbWP3PMXaVirBr8aEkG9YI0Il6tTUUlERG5LJaU2\nlm48xrfb03EYBtEtQhjdtymhAT7uDk1ERESkyim+aGP55mOs2noKTDC4WyOG9QzDajG7OzS5jamo\nJCIitxXDMEjel8XitYc5X1RGqL83Y2NbENU0yN2hidwx0tLSmDRpEhMmTGDcuHFMnTqV1NRU/P0v\nLaj66KOP0qdPH5YtW8bChQsxm82MHj2aUaNGUV5eztSpUzl9+jQWi4WZM2fSoEEDNz+RiIg4i83u\nYO3ODJZvOk5RSTkh/l48dm9rmtfXItzy01RUEhGR28aJzEI++TaNw+nn8bCaGd4zjIFdG+Jhtbg7\nNJE7RnFxMa+88grdunW7rP3ZZ5+lb9++lx03b948EhIS8PDwYOTIkcTGxrJ27Vr8/PyYPXs2Gzdu\nZPbs2cydO9fVjyEiIk5mGAY7DuaQsP4I2XkleHlaGNG7CbEdG+Dpob6X3BgVlURExO0Ki8v4YsNR\n1u86jQF0aBHC6JhmhGgxSJGb5unpyfz585k/f/51j/vhhx9o06YNvr6X1ieLjo4mJSWFpKQkhg8f\nDkD37t2ZPn2602MWERHXOVdwkc17M9m45wzZeSVYzCb6dajPkB6N8fPxdHd4codRUUlERNzCYRgc\nOpVP8r4skvdnU1Jqo06QD2NjWxDRONDd4YncsaxWK1brlV28jz/+mAULFhAUFMSLL75Ibm4ugYH/\n/nctMDCQnJycy9rNZjMmk4mysjI8PfWHhojIncowDFLSclj/w2lSj53DMMDTaqZ7ZG2GdG9MrUCt\nWSm3xqlFpf+ez3/mzBmmTZuGzWbDarXy+uuvExISQkREBNHR0RXnffjhhzgcDs3nFxGpgrLOFbNh\n92m27svibEEpADWrezKsRzNiOtTXYpAiTjBs2DD8/f1p1aoV7733Hu+88w7t27e/7BjDMK567rXa\nfxQQ4IPViVNUQ0K006OrKeeupXy71t2Y74ycIt795252H84FoGWjAGI7N6Rn23pU9/Zw6r3vxny7\nm6tz7rSi0tXm88+dO5fRo0czaNAgPvnkExYsWMCUKVOoUaMGixYtuuz8ZcuWaT6/iEgVYrM7WJF0\nguWbj2N3GHhXs9CzTR26RNSiVcMAzGaTu0MUqbL+sz8WExPDjBkziIuLIzc3t6I9Ozubdu3aERoa\nSk5ODuHh4ZSXl2MYxnVHKeXlFTst7pAQX3JyCp12fbmScu5ayrdr3W35ttkdrNhygq82n8Bmd9Cu\nWTAj+jSlXnB1AIqLLlJcdNFp97/b8n07cGbOr1Wsctrr4B/n84eGhla0/f73vycuLg6AgIAA8vPz\nr3l+UlISsbGxwKX5/CkpKc4KVUREnOzYmQJe/nAbX248hl91TyYOac2bT/TkkcGtiGgcqIKSiJM9\n+eSTnDp1CoDk5GSaN29O27Zt2bNnDwUFBVy4cIGUlBQ6duxIjx49SExMBGDt2rV06dLFnaGLiMhN\nMgyD1GPnmLFgG19+f4zq3lYmDY/kyRFtKgpKIpXFaSOVrjaf38fn0jxNu93Op59+yuTJkwEoKyvj\nueeeIyMjg7i4OH75y1/e0nx+Db+uWpRv11K+XetuyXdJqY1PVx5g2YYjOAyI79aYCYNbO32o9dXc\nLTm/XSjf7rN3715ee+01MjIysFqtrFy5knHjxvHMM8/g7e2Nj48PM2fOxMvLi+eee45HH30Uk8nE\n5MmT8fX1ZdCgQWzevJkxY8bg6enJrFmz3P1IIiJyA+wOB9sP5PBN8glOZhVhAvq2r8eI3k3x8dJy\nyuIcLv/JstvtTJkyha5du1YMxZ4yZQpDhw7FZDIxbtw4OnbseMV5PzWfHzT8uipRvl1L+XatuyHf\npeV21qZksGLLCYpKygn192b8wHBaNQpw+lDrq7kbcn47ccfQa/m3yMjIK5YVACpGi/+n+Ph44uPj\nL2v7cS1LERG5MxQWl7FlXxart50i9/xFTCbo2DKEQd0a0bi2n7vDkyrO5UWladOm0ahRI5544omK\ntjFjxlR83bVrV9LS0m56Pr+IiLhfuc3Oup2n+XrLCQoulOFdzcKwnmHEd2lINQ/njSQVERERuZuc\nv1DGzrQcth/M5sCJfByGgafVTN/oesR1akBogHZzE9dwaVFp2bJleHh48NRTT1W0HT16lHnz5vHG\nG29gt9tJSUkhPj4eT09PEhMT6dWrl+bzi4jcxgzD4HhmIVtSs0jen0XBhTKqeVq4t3sj4jo3pLqX\n66e6iYiIiFRFJzILWbLhKHuPneXHyTxhdfzoGB5CjzZ18PPRQAxxLacVla42n//s2bNUq1aNhx56\nCICmTZsyY8YMateuzciRIzGbzcTExBAVFUVERITm84uI3MbyCkvZ8MNptuzLIuvcpenH1b2sDOzS\nkPguDfFVp0ZERESkUpw9f5ElG46QlJoFQNO6fnRqVYsOLUIIqunl5ujkbua0otK15vNfzfPPP39F\nm+bzi4jcnsptdhK3nuLrpOOUlTvwsJrp3CqUrq1rE9kkEKvFaRuLioiIiNxVikrK+WbLCVZvT8dm\nd9AwtAajYpoR0TjQ3aGJAG5YU0lERO5MhmGw63Aun685RE7+Rfx8PHggpjldW9fCu5p+nYiIiIhU\nluOZBXy3I4Pk/VmU2xwE+lXjvl5N6BZZG7PJ5O7wRCrorwAREbmucpuDvcfO8l1KBqnHzmExmxjQ\nqQFDe4Rpe1oRERGRSuJwGGzdn8WaHekcOV0AQKi/NzHR9ejTvh6e2vREbkP6a0BERK5gszvYdzyP\nbfuzSDmUS0mpDYCIxgGM6d+CusHV3RyhiIiISNXw42jwf64/yuncC5iAqKZBxETXJ7JJoEYmyW1N\nRSUREalgdzjYtCeTpRuPkVdYCkCQXzV6t61Lp1ahNK7ti0kdGxEREZFKcSg9n3+sO8Lh9POYTNAr\nqg6DuzUiNMDH3aGJ3BAVlURE5Io3ZJ5WM/2i69MlohZN6vrpDZmIiIhIJSkqKWfHwWyS92Vx4GQ+\nAO2bBzOid1ONBpc7jopKIiJ3MZvdwZ6jZ0lMPsmhf70hu6dtHYb1bEKAbzV3hyciIiJSJZSV29l2\nIJut+7PZd/wcdocBQHhDf+6/pynN6td0c4Qit0ZFJRGRu4xhGJzMKmLT3jMk78uisLgc0BsyERER\nkcp2sczG2p0ZrNx6ioILZQA0qu1Ll1a16BgeQnBNbzdHKPLzqKgkInKXsDscbN2fTWLySU5lFwHg\n6+NB/4716dmmDg1r+bo5QhEREZGqofhiOWt2pLNq2ykuXLTh5WlhcLdG9IyqQy2tlyRViIpKIiJV\nXLnNwaa9Z/hmywly8i9iNpno0CKE7m1q06ZJEFaL2d0hioiIiFQJhmGQvD+LT1alceGijepeVob3\nCqNfh/pU9/Jwd3gilU5FJRGRKsowDL7ffYYvvz9KflEZVouZvu3rMbBLQ4L9NdRaREREpDKdv1DG\nopUHSUnLwdPDzIjeTYiJro93Nf3ZLVWXfrpFRKqg80WlLPjmALuPnKWah4X4zg0Z0LkB/jW0+LaI\niIhIZTIMg20Hsvl4VRpFJeW0aODPI4PCCdU0N7kLqKgkIlLF7DiYzcLEgxSVlBPROIBHBrfWTm4i\nIiIilcwwDA6cyOOrpBPsP5GHp9XMmP7N6dehPmaTyd3hibiEikoiIlXE+aJSEtYdYdPeTDysZh6M\nbUHf6Hrq1IiIiIhUIodhsDMtlxVbTnDsTAEAEWGBjBvQQotwy11HRSURkTtc1rliEreeZNOeTGx2\nB41q+zJxSGvqBFV3d2giIiIiVYZhGKSk5bJkwxHOnC3GBHRoEcKgbo0Iq+Pn7vBE3EJFJRGRO5Bh\nGBw5XcDKrSdJOZiDAYT4exHfuSG92tbVjm4iIiIilehIxnn+vvYwh9LPYzaZ6NGmNgO7NKJusF7i\nyd1NRSURkTvIuYKLbN6byea9mWSeKwagUW1fBnVtRIcWIZjNmuomIiIiUlnOnL3AF98fY/uBbADa\nNw9mZJ+mGhEu8i8qKomI3Oay80tIPXqW7QdzOHAiDwPwsJrp3CqU3m3rEt4oAJPWTRIRERGpFLn5\nJWw7kE3y/ixOZhUBEFbHjwdimtGigb+boxO5vaioJCJymzEMg9Rj5/jh8Fn2HDtLdl5Jxfea1a9J\nj8jadAoPxcfLw41RisjtLC0tjUmTJjFhwgTGjRvHmTNnmDZtGjabDavVyuuvv05ISAgRERFER0dX\nnPfhhx/icDiYOnUqp0+fxmKxMHPmTBo0aODGpxERcT7DMNh56NLi20dPX1p822I2EdU0iJ5t6tCh\nZYhe4olchYpKIiK3kbRT+fx97eGKzoyXp4X2zYOJDAskskkQIf7ebo5QRG53xcXFvPLKK3Tr1q2i\nbe7cuYwePZpBgwbxySefsGDBAqZMmUKNGjVYtGjRZecvW7YMPz8/Zs+ezcaNG5k9ezZz58519WOI\niLhMek4Rn317iP0n8jCZoHXjADq3qkV0ixBqeOslnsj1qKgkInIbyDpXTMK6I+xIywGgU3goMdH1\naFqvphbdFpGb4unpyfz585k/f35F2+9//3uqVasGQEBAAKmpqdc8PykpieHDhwPQvXt3pk+f7tyA\nRUTcpKiknC++P8q6nRkYBkQ1DeKBmGZaL0nkJqioJCLiJoZhcDjjPBt3n2Hz3kzsDoOm9fx4IKY5\nzerVdHd4InKHslqtWK2Xd/F8fHwAsNvtfPrpp0yePBmAsrIynnvuOTIyMoiLi+OXv/wlubm5BAYG\nAmA2mzGZTJSVleHp6enaBxERcQKHYXDwZD6b955h+8EcSsvs1A704Rf9mhHVNNjd4YnccVRUEhFx\nsaxzxXy16Rib92ZWrJcU4u/FyD7N6Kj5+iLiJHa7nSlTptC1a9eKqXFTpkxh6NChmEwmxo0bR8eO\nHa84zzCM6143IMAHq9XilJgBQkJ8nXZtuTrl3LWUb9fIPHuBj1bsY11KOjn/6n+FBngzdGBTBvcI\n08hwJ9HPt+u5OucqKomIuMjZ8xdZsuEIW/ZlYRjgaTXTNaIWPSLr0KpRAGazikki4jzTpk2jUaNG\nPPHEExVtY8aMqfi6a9eupKWlERoaSk5ODuHh4ZSXl2MYxnVHKeXlFTst5pAQX3JyCp12fbmScu5a\nyrfzncou4pstJ0jef6n/5eVpoWdUHXpE1qZ5A3/MJhN55y64O8wqST/frufMnF+rWKWikoiIk5WU\n2lix5QSrtp2i3OYgrK4ffdrWpWN4KN7V9J9hEXG+ZcuW4eHhwVNPPVXRdvToUebNm8cbb7yB3W4n\nJSWF+Ph4PD09SUxMpFevXqxdu5YuXbq4MXIRkVtzOP08XyUdZ/eRswDUD6nOqP4taVHXl2oezhtd\nKXK30V8zIiJOUm5zsOGH0yzbdIzC4nICfKtx/z1NGNqnOWfPFrk7PBGpovbu3ctrr71GRkYGVquV\nlStXcvbsWapVq8ZDDz0EQNOmTZkxYwa1a9dm5MiRmM1mYmJiiIqKIiIigs2bNzNmzBg8PT2ZNWuW\nm59IROTG5eaX8Pl3h0n51+YnzerXZHDXRkQ1DSI01E8jZ0QqmYpKIiKVzGZ3sHlvJss3HeNsQSnV\nPC3cd08TBnRqQDUPi6a5iYhTRUZGsmjRohs69vnnn7+izWKxMHPmzMoOS0TEqcrK7XyTfJIVW05Q\nbnPQrH5NRvZuSosG/u4OTaRKc2pRKS0tjUmTJjFhwgTGjRvHmTNnmDJlCna7nZCQEF5//XU8PT1Z\ntmwZCxcuxGw2M3r0aEaNGkV5eTlTp07l9OnTFZ2bBg0aODNcEZGfxe5wkLQ3i2WbjpF7/iIeVjMD\nOjVgYNdG1KyuXZNEREREKpthGKSk5bD4u8Pknr9IzRqejO7bjK6ta2nzExEXcFpRqbi4mFdeeaVi\ndxGAt956i7FjxzJw4EDmzJlDQkICw4cPZ968eSQkJODh4cHIkSOJjY1l7dq1+Pn5MXv2bDZu3Mjs\n2bOZO3eus8IVEflZ9h47y+drDnM69wJWi4l+0fUZ1K0RAb7V3B2aiIiISJV0PLOAz9ccJu1UPhaz\niYFdGnJv98Zas1LEhZz2b5unpyfz589n/vz5FW3Jycm8/PLLAPTt25cPPviAsLAw2rRpg6/vpZXE\no6OjSUlJISkpieHDhwPQvXt3pk+f7qxQRURu2ZmzF/j7d4f54chZTMA9beswtEcYgX5e7g5NRERE\npErKKyxlyfojbN6biQG0axbMqL5NqRNU3d2hidx1nFZUsv5/9u48Ouoyzfv/u/ZKVdbKBgECAcIu\nICqbLIKiQKugDbi2o4PT08+oT/e0c7TbcWbsnnN+9nQ7febxjP34dDs6tna3ttitaKOggAoCQUHZ\nRCCsIZCkKkslqX35/v5IjDqIqKSqsnxe53CS+qbqm6tuy9Rd1/e+r8tqxWr9/OlDoVBXS9rCwkK8\nXi8+nw+Px9N1H4/Hc8Zxs9mMyWQiGo1+aUtbEZF0iEQTHDnlZ+dBH299WEsiaTCmPJ8bL6+kvPSL\nW22KiIiIyDfX0h5h39Em9h1tYuchL9FYkiEl2dw4fyRjh3nOfQIRSYmMrQs0DKNbjn9WQYELqzV1\n7SGLi/VhMZ003uml8T47wzDYdcjLex/V89GxJo7U+kkmO/4mDSx0c8c145k+YcDX2rev8U4/jXl6\nabxFROR8NbdFWL/jJLsP+zjpDXQdL8x1cO0VFVx6wUA1QBHJsLQmlVwuF+FwGKfTSX19PSUlJZSU\nlODz+bru09DQwOTJkykpKcHr9TJmzBhisRiGYZxzlVJzczBlsRcX56j9ZBppvNNL4/3FkobBBwe9\nvLr1OMfrOsbHYjZRMTCHykH5VA7OY8LwQmxWMz5f+1c+r8Y7/TTm6ZXK8VaySkSk7/O1hFhTdYLN\nu08RTxjYrGbGV3iYUOFhfIWHQUVuFeEW6SHSmlSaOXMma9euZcmSJaxbt47Zs2czadIkHnzwQVpb\nW7FYLOzcuZMHHniA9vZ2Xn/9dWbPns3GjRuZNm1aOkMVkX4snkiyfX89f9l6nNONQUzAxWNKmH/h\nIIaX5WK3pW5FpIiIiLtaGWEAACAASURBVEh/dboxwJptx9m2r55E0qAkP4vFM4YyfVyp5l8iPVTK\nkkp79+7l3/7t36itrcVqtbJ27VoeeeQRfvSjH/H8889TVlbG0qVLsdls3HvvvaxcuRKTycRdd91F\nTk4OixcvZsuWLdx0003Y7XZ+9rOfpSpUEREMw+BYXRtb9tRRtb+e9lAMi9nEpRcMYPH0oSr8KCIi\nIpIChmHw8YkW1m0/wa7DjQAMLHRx9cxhTB1bgsVsznCEIvJlUpZUmjBhAs8888wZx5966qkzji1c\nuJCFCxd+7pjFYuHhhx9OVXgiIgAEwjE27TrN5j2nOeXr2Kuf67Jx5SVDuOLiwRTlZWU4QhEREZG+\nJ55I8t7+Bta+d4IT9R1lBEYMyuWqS8qZMroYs7a3ifQKGSvULSKSSQ3NQd54/ySbd58mEktgtZi4\neEwJl04YwPgKD1aLroqJiIiIdLdk0mDbR3Ws3nyMhpYQJlNHmYErLxnCyEF5mQ5PRL4mJZVEpF85\nUd/GK+8eY+dBLwZQkONgyawKZk0cSHaWLdPhiYiIiPRJScPgvf0NvLz5KHVNQSxmE/MuHMTCaeUU\n52tluEhvdc6kkt/v5/HHH8fr9fLII4+wYcMGJk+ejMfjSUd8IiLdIhSJ8+dNR1i/4ySGAUNLc7hq\n6hAuHlOiVUki0iNpDiYifcXBmhZ+98ZBahraMZtMzJk0kKtnDlOZAZE+4JxJpQcffJBLLrmEDz74\nAIBoNMr999/Pb37zm5QHJyJyvgzDYMcBL79/8yAt7VFKC7K4ZcEoxld41IpWRHo0zcFEpLfzB6Ks\n2ljNu3vrAJgxfgBLZg2jpMCV4chEpLuc8/J8U1MTt912GzZbx7aQhQsXEg6HUx6YiMj58rdH+D+r\ndvOrl/bSHoqzdFYFP105lQnDC5VQEpEeT3MwEemtkkmD9TtO8sCvt/Hu3jrKS7J54DsX8TfXjFNC\nSaSP+Uo1lWKxWNcHMJ/PRzAYTGlQIiLn60R9G4++uJum1gjjhhXwnStHU+rRJEZEehfNwUSkt2kP\nxfi/L+1l//FmshxWblkwinkXDsJs1gU9kb7onEmlW265hWXLluH1evne977Hnj17+Md//Md0xCYi\n8o3sPOjl16/sIxZL8u25w1k8fahWJolIr6M5mIj0Nicb2nn0xd34/GEmjyzirxaNIc9tz3RYIpJC\n50wqLV68mClTpvDBBx9gt9v56U9/SklJSTpiExH5WgzDYM2247z49hEcNgt3XX8BU0YVZzosEZFv\nRHMwEelN3v+4gf/6y34isQTXXjqMa2dVYNZFPZE+75xJpVWrVnV9HwgEeOeddwBYtmxZ6qISEfmK\nDMPA2xLio+PN7DzgZe/RJjy5Dv73tydSXpqT6fBERL4xzcFEpDfwtYR4e9cp/rL1eMdFvesmcNFo\nJcBF+otzJpV27NjR9X00GmX37t1MmTJFExoRyagT9W2s33GSj44109j6aeHaysF5/N3SCeRlOzIY\nnYjI+dMcTER6otZAlF2HfRw40cKBE800tkYAKMpz8r+/PZHBJdkZjlBE0umcSaWHH374c7dDoRA/\n/vGPUxaQiMiXicQSrN58lLXba0gaBm6nlYtGFTN2WAFjhxYwwONS/SQR6RM0BxORnmbbvjqeWXeQ\nUCQOgNtpZcqoYkaX5zNzwgDcTluGIxSRdPtK3d8+KysrixMnTqQiFhGRL7X3aCO/ff0APn+Yojwn\ntywYxQXDC9VNRET6Bc3BRCRT2kMxnl13gO37G3DYLHx77nAmjSiirNitukki/dw5k0o333zz5676\n19fXM3r06JQGJSLyiWTS4EBNC29/WMv2/Q2YTSYWTSvn2lkVOGyWTIcnIpIymoOJSE+w72gTT67Z\nT3NbhBGDcrnz6nGUFrgyHZaI9BDnTCr94Ac/6PreZDKRnZ3NmDFjUhqUiPRvScOg+qSf9/Y38P6B\nBvyBKADDBuRw+6IxKsAtIv3C+czBDh48yN/93d9x++23c+utt3L69Gnuu+8+EokExcXF/OIXv8Bu\nt7N69WqefvppzGYzK1asYPny5cRiMX70ox9x6tQpLBYLDz/8MEOGDEnV0xSRHiiZNNhzpJENO2vZ\nc6QRi9nEdXOGs3h6ORazOdPhiUgPctak0tatW7/weEtLC9u2bWPGjBkpC0pE+q/TjQF+88pHHKtr\nAyA7y8bcyWVMHVPC6PICbXUTkT7vfOdgwWCQf/3Xf/3c/R599FFuvvlmFi1axC9/+UtWrVrF0qVL\neeyxx1i1ahU2m41ly5axYMECNm7cSG5uLv/+7//O5s2b+fd//3f+4z/+o1ufo4j0TO2hGJt3n2bD\nzpP4/B2NUEYOzuPmKyoZNiA3w9GJSE901qTSr371q7M+yGQyKakkIt3KMAze2XWKP6w/RDSW5OLR\nxcyZVMaYoQVYLboiJiL9x/nOwex2O7/5zW/4zW9+03WsqqqKn/zkJwDMmzePJ598koqKCi644AJy\ncjpWf06ZMoWdO3eydetWli5dCsDMmTN54IEHzvcpiUgPZxgG7+6p4w/rDxKKJLBbzcyZNJD5UwZr\nhbiIfKmzJpWeeeaZsz5o7dq1KQlGRPqntmCU/37tYz445MPlsPLXS8YydWxppsMSEcmI852DWa1W\nrNbPT/FCoRB2ux2AwsJCvF4vPp8Pj8fTdR+Px3PGcbPZjMlkIhqNdj1eRPoWf3uEp18/wIfVPpx2\nC8vnjWDOpDJ1chORr+ScNZVOnTrFs88+S3NzMwDRaJSqqiquuuqqlAcnIn2XYRgcq2vjg0M+Nu06\nhT8QZfSQfP7mmnF4cp2ZDk9EJONSNQczDKNbjn+ioMCF1Zq6xgnFxVolkW4a8/TK5Hi/u+sUj63a\nRVswysSRRXz/hgsp8fTtItx6faeXxjv90j3m50wq3XfffcyZM4eNGzdy6623sn79en7+85+nIzYR\n6YOqa/1s3VvHh9U+mtsiANisZr49dziLpg1VzSQRkU7dOQdzuVyEw2GcTif19fWUlJRQUlKCz+fr\nuk9DQwOTJ0+mpKQEr9fLmDFjiMViGIbxpauUmpuD3yimr6K4OAevty1l55czaczTKxPjHYsn2HnQ\nx9sf1vLxiRbsVjM3X1HJ/IsGY0ok+vR/f72+00vjnX6pHPOzJavOmVSyWCx897vfZdOmTdxyyy0s\nW7aMH/7wh8ycObPbgxSRviuZNHhp81Fe3XIMALfTyozxpVxYWcz4Cg9ZjnP+ORIR6Ve6cw42c+ZM\n1q5dy5IlS1i3bh2zZ89m0qRJPPjgg7S2tmKxWNi5cycPPPAA7e3tvP7668yePZuNGzcybdq0FDw7\nEUm3Wl+Adz48xZa9pwmE4wCMHVrAd64azYA+vjpJRFLnnJ/iIpEIdXV1mEwmampqKCsro7a2Nh2x\niUgf0RqM8uvV+/joWDNFeU5uu2q0CnCLiJzDN52D7d27l3/7t3+jtrYWq9XK2rVreeSRR/jRj37E\n888/T1lZGUuXLsVms3HvvfeycuVKTCYTd911Fzk5OSxevJgtW7Zw0003Ybfb+dnPfpaGZysiqRKL\nJ3nx7cOse68GgByXjYXTypkzqUzJJBE5b2dNKtXX11NaWsqdd97Jli1bWLlyJUuWLMFisXD11Ven\nM0YR6cUO1/r51Ut7aW6LMGlEIXdeM06FH0VEvsT5zsEmTJjwhcW+n3rqqTOOLVy4kIULF37umMVi\n4eGHH/7mT0BEeoxabzv/b/VHnPS2U+px8e05w5lcWaQLeyLSbc6aVLrmmmuYPHkyy5Yt49prr8Vq\ntbJ9+3YCgQB5eXnpjFFEeqFgOMba7TWs2XacpGFw/ZzhLJ4xFLNJNZNERL6M5mAicr4Mw+DNHSd5\nYeNh4okkl00u44b5lTjsqSuqLyL901mTSps2beKNN97gj3/8Iz/96U+55pprWLZsGSNGjEhnfCLS\ny4Qicd58v4a122sIRuLkuu1895pxjBvmOfeDRUREczAROS/H69p4fsMhPj7RQnaWjTsWjefCUcWZ\nDktE+qizJpUcDgdXX301V199NQ0NDbzyyiv8/d//PS6Xi2XLlrFs2bJ0xikiPVw4GmfDzlpe23ac\nQDiO22ll2WUjuHzKYF0VExH5GjQHE5FvoqE5yJ83HaXqo3oAJo4o5PZFY8jPdmQ4MhHpy75Su6WS\nkhJWrlzJZZddxq9+9St++tOfakIjIkDHyqQNO0+ydnsN7aEYLoeV6+YM54qLBqujm4jIedIcTETO\nxR+I8uq7x3jrw1oSSYOhA3JYdtkIxmuVuIikwTk/8fn9fl599VX+/Oc/E41GWbZsGQ8++GA6YhOR\nHiwYjrN+Rw3r3qshEI7jclhZOquCKy4ejEuFuEVEzpvmYCLyZYLhGK9VneCN92uIxpKU5Gdx/dzh\nXDymRDUsRSRtzppU2rBhA3/+85/ZsWMHCxYs4J//+Z+ZOHHief2yF154gdWrV3fd3rt3LxMmTCAY\nDOJydbSzvP/++5kwYQJPPPEEr7/+OiaTibvvvpu5c+ee1+8Wke6RSCZ558NT/HnTUdpDMdzOjpVJ\nl08ZjMuplUkiIucrFXMwEek7ItEEb+6o4bVtJwhG4uRl27lh3jBmTypTVzcRSbuzfgJ88sknWbZs\nGb/4xS9wOp3d8suWL1/O8uXLAdi+fTuvvfYa1dXVPPzww4waNarrfjU1NaxZs4bnnnuO9vZ2br75\nZmbNmoXForosIpm071gTz60/RK03gMNu0TY3EZEUSMUcTER6v2TSYPOe0/z5nSP4A1HcTivL541g\n/pTBOGz6nCQimXHWT4LPPvtsSn/xY489xiOPPMIPf/jDM35WVVXF7NmzsdvteDweBg0aRHV1NaNH\nj05pTCLyxeqbgjy/oZoPq32YgNkTB3L9nOHkqfCjiEi3S/UcTER6n4+ONfHc+mpOetux28xcM3MY\nV00t1ypxEcm4jPwV2r17NwMHDqS4uKO15aOPPkpzczMjRozggQcewOfz4fF8WljO4/Hg9XqVVBJJ\ns2A4xup3j7F+x0kSSYNRQ/K56fJKhg7IyXRoIiIiIn3e6cYAf9xQza7DjZiASy8YwPVzRlCQowt7\nItIzZCSptGrVKq677joAbrvtNkaPHk15eTn/8i//wu9+97sz7m8Yxlc6b0GBC6s1dUs/i4v1QTqd\nNN7p9dnxTiSSrK06zrOvfUxbMEqpx8UdV49n5sSBmFT4sVvo9Z1+GvP00niLiHxz7aEYL28+ylsf\ndHR0Gz0knxt1YU9EeqCMJJWqqqq6upcsWLCg6/j8+fNZs2YN06ZN4+jRo13H6+vrKSkpOed5m5uD\n3R9sp+LiHLzetpSdXz5P451en4y3YRh8eMjHn945Qq2vo27SsstGsODiwdisFny+9kyH2ifo9Z1+\nGvP0SuV4K1klIn1ZPJFkw46TrH73GMFInJKCLFbMG8mFlUW6sCciPVLak0r19fW43W7sdjuGYXDH\nHXfw6KOPkpubS1VVFZWVlUyfPp2nnnqKe+65h+bmZhoaGhg5cmS6QxXpV/Yfa+LFd45w5FQrJpPq\nJomIiIikSzJpULW/npc3H6WhOYTLYeWG+SO5/KLB6ugmIj1a2pNKXq+3q16SyWRixYoV3H777WRl\nZVFaWso999xDVlYWK1as4NZbb8VkMvHQQw9hNuuPqUgqHK9r4/+8uJtdh3wAXDS6mOtmD6esyJ3h\nyERERET6tkQiyda9dbyy5Rh1TUEsZhOXXzSYJbMqyM6yZTo8EZFzMhlftWBRL5DKrQ3aOpFeGu/U\ni0QTvLT5CG+8d5KkYTChwsN1c4ZTMTA306H1eXp9p5/GPL20/a1/0fyrb9GYp4dhGGzf38CrW49R\n6w1gMZu49IKBXD1jKEX5WZkOr8/S6zu9NN7pl4k5mHpQivRDe4408tvXD9DYGqY438ndKy5kiEcT\nGBEREZFUO90Y4Jm1B/j4RAsWs4m5k8v41nQlk0Skd1JSSaQf8baE+NM7R6j6qB6zycTi6UO55tJh\nDC7L11UEERERkRSKxhK8uvU4r207TiJpMGlEIXffcCGWZDLToYmIfGNKKon0Aw3NQV7depyte+tI\nJA0qBuZy+6IxDCnJznRoIiIiIn2aYRjsPOjjjxsP4W0JU5Dj4JYFo7iwsoiSQrcu7IlIr6akkkgf\n1tAc5JV3j7F1Xz1Jw2BgoYurZw5j2thSzGa1pRURERFJFcMw+Oh4M396+zBHT7dhNpm4auoQlsyq\nwGnXxzAR6Rv010ykD4pEE7y69Rhrt58gnjAYVOTmmkuHcfHoEiWTRERERFLscK2fF98+zMcnWgC4\neEwJ182uYGChuuuKSN+ipJJIH/LJ8urn1h+ksTWCJ9fBinkjuXhMCWaTkkkiIiIiqdQajPLCxmre\n3VMHwAXDC7l+znCGDlDnShHpm5RUEunFYvEEja0RGv1hfP4QOw562XukCYvZxLdmDOXqGcNw2C2Z\nDlNERESkT0saBpt3n+aFjdUEwnHKS7K56YpKRpcXZDo0EZGUUlJJpJcxDIP3D3h5adMRTjcGz/j5\n+GEF3LxglJZXi4hIlxdeeIHVq1d33d67dy8TJkwgGAzicrkAuP/++5kwYQJPPPEEr7/+OiaTibvv\nvpu5c+dmKmyRHiuRTOJvj9LcHqG5NcK692uoPunHYbdw4+WVXH7RICxmc6bDFBFJOSWVRHqRY3Wt\n/OHNQxw66cdiNjGmPJ+ivCwK85wU5TkZ4HExvCwXk7a6iYjIZyxfvpzly5cDsH37dl577TWqq6t5\n+OGHGTVqVNf9ampqWLNmDc899xzt7e3cfPPNzJo1C4tFq15FItEEb7xfw1sf1tLcFsEwPv/zi0cX\nc9MVoyjIcWQmQBGRDFBSSaQX8LdHWPX2YbbsqcMALqwsYsX8kZQWuDIdmoiI9DKPPfYYjzzyCD/8\n4Q/P+FlVVRWzZ8/Gbrfj8XgYNGgQ1dXVjB49OgORivQMiWSSTbtP8/Lmo/jbo7gcVioH5ZGf4yA/\n20FBjoNhA3K01U1E+iUllUR6MKNzf/5zG6oJReIMLs7mpstHMnaYJ9OhiYhIL7R7924GDhxIcXEx\nAI8++ijNzc2MGDGCBx54AJ/Ph8fz6XuMx+PB6/UqqST90icNUFa9fZj6piB2m5mrZw5j4dRyXE59\njBIRASWVRHqshpYQT7/2MfuPN+O0W7j1ylFcNnkQZrO2tomIyDezatUqrrvuOgBuu+02Ro8eTXl5\nOf/yL//C7373uzPub/zP/T1foKDAhdWauu1xxcXqmpVuGnM4esrPr1/aw97DjZjNJhbNGMaNV47G\nk+vs9t+l8U4vjXd6abzTL91jrqSSSA+TSCZZv6OWP71zmGgsycQRhdx2VWomMSIi0r9UVVXx4IMP\nArBgwYKu4/Pnz2fNmjVMmzaNo0ePdh2vr6+npKTkS8/Z3Hxm04juUlycg9fblrLzy5n6+5i3BqO8\n9M4R3t51CsOAySM7Sg4M8LhIRGJ4vbFu/X39fbzTTeOdXhrv9EvlmJ8tWaWkkkgP8ckS6xffPkxd\nU5DsLBu3LxzDtHGlKrwtIiLnrb6+Hrfbjd1uxzAM7rjjDh599FFyc3OpqqqisrKS6dOn89RTT3HP\nPffQ3NxMQ0MDI0eOzHToIikXiyfZsPMkq989RigSp6zIzY2Xj2RCRWGmQxMR6dGUVBLpAQ7WtPDC\nW9Ucrm3FbDIxd3IZ180ZTq7LnunQRESkj/B6vV31kkwmEytWrOD2228nKyuL0tJS7rnnHrKyslix\nYgW33norJpOJhx56CLPaoksf1nFRz8sLGw/T0BLC7bRy8xWVXHbhIKwWvfZFRM5FSSWRDGppj/C7\ndQfZcdALwEWji7l+znAGFrozHJmIiPQ1EyZM4Iknnui6vXjxYhYvXnzG/b7zne/wne98J52hiWTE\nsbpWnltfzcGaFixmE1dcPJhrL60gO8uW6dBERHoNJZVEMsAwDLbuq+P3bxwiGIlTOTiPFfNGMmJQ\nXqZDExEREenTWgNRXnz7MJt3n8ago27S8nkjdFFPROQbUFJJJM2a2yI8/frH7D7ciMNu4TtXjWbu\n5DLMqpskIiIikjKJZJINO2t5adNRQpE4g4rd3HR5JeOGeTIdmohIr6WkkkiaJJMG7+w6xQtvHSYU\niTN2aAF3LBpDUX5WpkMTERER6bMMw+Cj4808v/4QJ70BXI6OuknzpgzCopphIiLnRUklkTQ4WNPC\n7984yImGdpx2C7ctHM3cSWXq6iYiIiKSIoZhsP94My9vPsqhk35MwJxJA7l+7gg1QxER6SZKKomk\nUHNbhBc2VrPto3oAZk4YwLLLRpCf7chwZCIiIiJ90ycrk1Z3JpMAJo0oZMnsCoYNyM1wdCIifYuS\nSiLdzDAMDpxoYdPuU7x/wEssnmTogBxuWTCKkSrELSIiIpIS/vYIW/bVsXn3aU43BoGOItzXzhqm\nZJKISIooqSTSTfztETbtPs3m3adpaAkBUFKQxeLpQ5k1caAKcYuIiIh0M8Mw2FXdyDu7TrH7cCNJ\nw8BqMTN1bAkLp5UrmSQikmJKKomcJ29LiNeqTrB59yniCQO71czMCQOYPXEgo4bkq26SiIiISDf7\nJJn00uYjnKhvB2DogBxmTxzItHGluJ22DEcoItI/KKkk8g2d8gX4y9bjVH1UT9IwKM53snBqOdPH\nDyDLof+1RERERLqbYRjsO9rEnzcd5ejpVkzAtHGlLJpWTnlpTqbDExHpd/TJV+RrikQTrHr7MBt2\nnMQABhW5+daMoVwytkRtaUVERERSpNbbzu/fPMT+480AXDS6mCWzKhhcnJ3hyERE+q+0JpWqqqr4\n/ve/T2VlJQCjRo3izjvv5L777iORSFBcXMwvfvEL7HY7q1ev5umnn8ZsNrNixQqWL1+ezlBFvtDH\nx5t5cs1+fP4wAwtdLJs7gkmVRaqXJCIiIpIiwXCMlzYfZcOOWpKGwQXDC/n23OFamSQi0gOkfaXS\n1KlTefTRR7tu//jHP+bmm29m0aJF/PKXv2TVqlUsXbqUxx57jFWrVmGz2Vi2bBkLFiwgPz8/3eGK\nABCOxnnhrcNs3FmLyQSLppezdFYFNqsl06GJiIiI9EmxeJJt++p48e3DtAZjlORnceMVlUweWZTp\n0EREpFPGt79VVVXxk5/8BIB58+bx5JNPUlFRwQUXXEBOTsfVhylTprBz507mz5+fyVClHzrpbWfL\nnjq27KujNRClrMjNXy8ey/AydRIRERER6W6GYXDkVCtb9taxfX89gXAcu83M9XOGc9XUIbqgJyLS\nw6Q9qVRdXc33vvc9/H4/d999N6FQCLvdDkBhYSFerxefz4fH4+l6jMfjwev1pjtU6aeC4Tjv7j3N\nlj11HK9vA8DlsHL1zKFcM3OYJjMiIiIi3SwWT7Jh50ne+vAU9U1BAPLcdq68ZAhXXjIET64zwxGK\niMgXSWtSadiwYdx9990sWrSImpoabrvtNhKJRNfPDcP4wsed7fj/VFDgwprCD/zFxdq3nU7pHm/D\nMNiy5zS//vNumlojmM0mLhlXyvyLhzB13ADstr6dTNLrO7003umnMU8vjbeIfBWGYbDjgJc/bqzG\n5w9js5qZNq6UmRMGMG5YgZqgiIj0cGlNKpWWlrJ48WIAysvLKSoqYs+ePYTDYZxOJ/X19ZSUlFBS\nUoLP5+t6XENDA5MnTz7n+ZubgymLvbg4B6+3LWXnl89L93g3tYZ5dt1BPqz2YbWYufbSYcybMpg8\nd8cqOn9L6l5bPYFe3+ml8U4/jXl6pXK8lawS6TuOnGrluQ2HqD7px2I2ceUlQ7h65jCys2yZDk1E\nRL6itCaVVq9ejdfrZeXKlXi9XhobG7n++utZu3YtS5YsYd26dcyePZtJkybx4IMP0traisViYefO\nnTzwwAPpDFX6iUQyyYadtfzpnSNEognGlOdz28IxDPC4Mh2aiIiISJ/U1Bpm1duH2bavHoApo4pZ\nftkISjX/EhHpddKaVJo/fz7/8A//wPr164nFYjz00EOMHTuW+++/n+eff56ysjKWLl2KzWbj3nvv\nZeXKlZhMJu66666uot0i3WXfsSaeW3+IWm8At9PKzYvHMOuCgZhMpkyHJiIiItLnhKNx1mw7wdrt\nJ4jFkwwtzeHGy0cyurwg06GJiMg3lNakUnZ2No8//vgZx5966qkzji1cuJCFCxemIyzpZ+qbgjy/\noZoPq32YgNkTB/LtuSPI7dzqJiIiIiLdxzAMNu85zZ/ePoI/ECU/2863545gxoQBmHUxT0SkV0t7\n9zeRTIknkry8+SivV50gkTQYNSSfmy6vZOgArYITERERSYWW9ghPrtnP3iNN2G1mlsyqYOHUchz2\nvt0ARUSkv1BSSfqF+uYg/+/lfRyra6Moz8mKeSO5aHSxtrqJiIiIpMj7Hzfw9OsfEwjHGV/h4Y5F\nY/DkOjMdloiIdCMllaTP27L3NM+sO0gkmuDSCQO45cpROO166YuISP9RVVXF97//fSorKwEYNWoU\nd955J/fddx+JRILi4mJ+8YtfYLfbWb16NU8//TRms5kVK1awfPnyDEcvvU0wHOf3bx5ky9467FYz\ntywYxfwpg3QxT0SkD9Ina+mzQpE4z647wNZ99TjtFr57zTimjx+Q6bBEREQyYurUqTz66KNdt3/8\n4x9z8803s2jRIn75y1+yatUqli5dymOPPcaqVauw2WwsW7aMBQsWkJ+fn8HIpTeprvXz69X78PnD\nDBuQw99cM46Bhe5MhyUiIimipJL0STUN7fzqpb3UNwWpGJjL3y4ZT0l+VqbDEhER6TGqqqr4yU9+\nAsC8efN48sknqaio4IILLujqujtlyhR27tzJ/PnzMxmq9ALJpMGrW4+xevMxDAyunjmMay8dhtVi\nznRoIiKSQkoqSZ9iGAabd5/m2TcOEosnWTi1nOvnDteERkRE+r3q6mq+973v4ff7ufvuuwmFQtjt\nHZ1PCwsL8Xq9avs+yAAAIABJREFU+Hw+PB5P12M8Hg9erzdTIUsv0egP85tX9nHwpJ+CHAffvWYc\no8sLMh2WiIikgZJK0mdEogmeXXeAd/fW4XJY+d6S8VxYWZzpsERERDJu2LBh3H333SxatIiamhpu\nu+02EolE188Nw/jCx53t+GcVFLiwWlPXyau4WF1a0+2rjrlhGGz6sJb/++Ju2kMxZlwwkHtWTCbH\nZU9xhH2LXuPppfFOL413+qV7zJVUkj6h1tvO4y/vo9YXoGJgDv9ryQSKtN1NREQEgNLSUhYvXgxA\neXk5RUVF7Nmzh3A4jNPppL6+npKSEkpKSvD5fF2Pa2hoYPLkyV967ubmYMriLi7OwettS9n55Uxf\ndczbglGeWXeQ9z9uwG4zc9vC0cydVEY4ECEciKQh0r5Br/H00ninl8Y7/VI55mdLVmlPkPRqhmGw\nadcp/vXp96n1BbjiosH8+NaLlFASERH5jNWrV/Nf//VfAHi9XhobG7n++utZu3YtAOvWrWP27NlM\nmjSJPXv20NraSiAQYOfOnVx88cWZDF16oA8P+fin/9rO+x83MHJwHj/566lcNlnd3URE+iOtVJJe\nKxSJ88zaA2z7qB6Xw8p3rx3PlFHa7iYiIvI/zZ8/n3/4h39g/fr1xGIxHnroIcaOHcv999/P888/\nT1lZGUuXLsVms3HvvfeycuVKTCYTd911V1fRbpFgOMZz66vZvOc0VouJ5fNGcNUl5ZjNSiaJiPRX\nSipJr3SsrpXHX95HQ3OIEWUd3d2K8rQ6SURE5ItkZ2fz+OOPn3H8qaeeOuPYwoULWbhwYTrCkl5k\nz5FG/vu1j2lui1Bems2dV49jcHF2psMSEZEMU1JJepVYPMkrW46yZusJkobBounlXDdb3d1ERERE\nUiEYjvP8hkNs2n0ai9nE0lkVLJ4xVHMvEREBlFSSXuTo6Vae/Mt+an0BCnOd3L54DOOHec79QBER\nERH52nZV+/jt2gMdq5NKsvnrb42lvFTbIUVE5FNKKkmPF4snWf3uUV7b1rE6ad6Fg1h22QiyHHr5\nioiIiHQ3b0uIP7x5iA+rfVjMJpbMquBbWp0kIiJfQJ/KpUc7XtfGE3/5iFpvgKI8J3csGsNYrU4S\nERER6XaxeILn3jjAH988SCyeZPSQfG69chSDVDtJRETOQkkl6ZHiiSSrNx/llS3HSCQNLrtwEMu1\nOklERESk2xmGwa7qRp7bcIiG5hB5bjs3LBrJtHGlmEzq7CYiImenT+jS45z0tvP/PbuD6pN+CnIc\n3LF4DBMqCjMdloiIiEifU+sL8Nz6Q+w72oTZZOLaOcO56qLBupAnIiJfid4tpMdo9Id5+d2jvLvn\nNIYBl04YwE1XVOJy2jIdmoiIiEif0h6K8fLmo2zcWUvSMBhf4eHGyyuZPHYAXm9bpsMTEZFeQkkl\nybjWQJRXtx7jrQ9qiScMyorc3LlkAsOK3ZkOTURERKRPCYbjvPF+DeveO0EokqCkIIsbL69k0ohC\nbXUTEZGvTUklyRh/e4R179WwYWctkViCojwnS2dXMH3cAEpLc3WVTERERKSbhKNx1u84yetVJwiE\n42Rn2bhhfgWXXzRYXd1EROQbU1JJ0s7nD/Fa1Qk27TpNPJEkL9vO8nkjmDOpTJMaERERkW5kGAab\nd59m1duHaQvGcDutXD9nOJerbpKIiHQDvZNI2rQGo7z41mG27K0jkTQoynOyaPpQZl0wAJvVkunw\nRERERPqU040Bnll7gI9PtOCwW7j20mFceUk5Lqc+AoiISPfQO4qknGEYVH1Uz+/fPER7KMbAQheL\npw9l2rhSrUwSERER6WaxeJLXth3n1a3HiCcMLqws4pYFo/DkOjMdmoiI9DFKKklKNbWG+e3aA+w+\n3IjdZubGyyu54qLBmM0qBCkiIiJyvo7VtbLncCPNbZGOf+0RGv1hAuE4+dl2blkwmotGF2c6TBER\n6aOUVJJuEQzH2X3YR2swRjAcIxiJEwzH2XnQSziaYOzQAv5q0RhK8rMyHaqIiIhIr5ZMGuyq9rH2\nvRoO1rR87md2q5n8HAczJwxk6ewK1U0SEZGU0ruMnJe6piDr3z/J5r2niUQTZ/zc5bByx6IxzJo4\nUG1qRURERM5DIpnknQ9Psfa9GhqaQwBMGO5h7qRBDPBkUZDjIMth1ZxLRETSRkkl+UYOnGjmtaoT\n7D7cCEBBjoPF08opK8rG5bTicljJclrJd9ux21SEW0REROR8NLSEeOKVj6iu9WO1mJk9cSBXXjKE\nQcXZmQ5NRET6sbQnlX7+85+zY8cO4vE4f/u3f8uGDRvYt28f+fn5AKxcuZLLLruM1atX8/TTT2M2\nm1mxYgXLly9Pd6jyBUKROC9srOatD08BMHJQHldcPJgpo4pVdFtERESkmxmGwZa9dfzujYOEowmm\nji3hpitGkee2Zzo0ERGR9CaVtm3bxqFDh3j++edpbm7muuuuY/r06fzwhz9k3rx5XfcLBoM89thj\nrFq1CpvNxrJly1iwYEFX4kky48CJZv7rL/vx+cMMLnbzVwvHMGJQXqbDEhEREemTAuEYz6w9wPb9\nDTjtFu68eiwzxg/Q9jYRkX4qaSQJxIIEYgFao220RFppifhpibQSioe4cfLVOEjvCta0JpUuueQS\nJk6cCEBubi6hUIhE4sw6PLt27eKCCy4gJycHgClTprBz507mz5+fznClUzga56VNR3njvRowwbdm\nDOXaSyuwWbUySURERKQ7GYZBda2fTbtP897HDUSiCUYOyuNvrhlHsRqeiIj0aoZhEEvGCMUjRBJh\nwvEIkUSUuBEnkUwQT8aJJ+O0xQL4uxJGfvzRVgLRIMF4CAPjrOef3jKZ0a4xaXxGaU4qWSwWXC4X\nAKtWrWLOnDlYLBaeffZZnnrqKQoLC/mnf/onfD4fHo+n63Eejwev15vOUPs9wzA4fKqVTbtOsb1z\nQlPqcXHnt8ZqdZKIiIhINwuEY7z1QS2b99RR3xQEoDDXyZJLK1hwyWAsZl3MExHJBMMwSBrJzx/D\nIJqIEe5MDIUTEULxMIFYgEAsSHss0PEvGiDwyfedP/uf5/oqsm1uchw5DMwuJdvmxm1zk2PPJt+R\nS74jjzxHLgWOfIYPGojX29ZdT/0ryUih7jfffJNVq1bx5JNPsnfvXvLz8xk7diy//vWv+c///E8u\nvPDCz93fMM6eifusggIXVmvqikIXF+ek7Nw9RSSW4LUtx1hXdYya+nYASgqyWDB/KEvnjsBpT99L\npj+Md0+i8U4vjXf6aczTS+Mt8tXE4kk27DzJq1uOEQjHsVnNTB9fyqwLBjJmaAFmbXUTEel24XiY\nlkgr/kgrgXiwc8VQhHA8TCgexh/9dFuZP9JKLBk7r9/ntrpw210UOQvJsjpxWB1kWRw4rA4cZjtW\nsw2r2YLVbMVqtuC2ucl35JJnzyPXkYPN3HN7rKU9sk2bNvH444/zxBNPkJOTw4wZM7p+Nn/+fB56\n6CGuuuoqfD5f1/GGhgYmT558znM3NwdTEjN0TI7TnfFLJ8Mw2HnQx/MbDuHzh7FaTEwdW8LsiWWM\nHdYxoWnzh0jXCPT18e5pNN7ppfFOP415eqVyvJWs+ubULKVnSRoG2/fX86e3j+Dzh8lyWFl+2Qjm\nTi7D5bRlOjwRkV4jaSSJJDq2kXVtITMSxJIxWsJ+fOEmGkNN+EJNNIab8Uf8hBORc57XhIlsu5sB\n7hJc1ixMfD7Jb7PYcFocOK3Ozq+OjhVEnSuJsu1usm1uXNYsLOa+2xE9rUmltrY2fv7zn/Pf//3f\nXROYe+65h/vuu48hQ4ZQVVVFZWUlkyZN4sEHH6S1tRWLxcLOnTt54IEH0hlqv3LKF+APbx5k37Fm\nLGYTC6eWs3jGULKzNKERERHpC9QspWc5Ud/Gb9ce4MipVixmEwsuHsI1lw7T3EtE+h3DMIgmY4Tj\nYcKdK4WCsRAt0Vb8n1kpFI6HiRvxzppDHYmjT+4f/RqriNxWFx5nAfmOvI6VQI48sm1unFbHpwki\nq4Ncew559tw+nQzqLmlNKq1Zs4bm5mZ+8IMfdB27/vrr+cEPfkBWVhYul4uHH34Yp9PJvffey8qV\nKzGZTNx1111dRbul+0RiCV7e3FGAO5E0mFDh4aYrKhlY6M50aCIiItKN1CylZ4hEO+Ze696rIWkY\nXDymhGVzh1NS4Mp0aCIiKRGMhWgMd6wS8oUaaY74P5cs8kdbv3KNIbPJjNVkwdK5RSzL4iTPkdu1\nSshutndtH7OarVhNVvIduRRmeSjKKqTQWYDT6kzxM+5/0ppUuuGGG7jhhhvOOH7dddedcWzhwoUs\nXLgwHWH1S/uPN/P0ax/T0BKiKM/JTVdUMnlkkVrUioiI9EFqlpJ5uw838szaAzS2hinOd3LbVWMY\nX+E59wNFRDIsHI8Qioe6VgZ1fI103Y503v6k1X1HUeog7bE2ArHQF57TYrKQ58hlaM4QXLasrsSQ\nw+LAZc0ir2slUUch6iyrE7NJDQt6op5b7UlSIhiO88Jb1bz94SlMJlg4rZwlsypw2LSsT0REpK9L\nRbMUNUr5cg3NQZ58ZR/v7jqFxWxi2fxKblgwKq3NT76u3j7mvY3GO7003p9nGB1dzELxMKFYx7/6\ngJfjLSc51lLL8ZaTNAabv9Y5TSYTOXY3BVn5jC4aQYm7iJLsIkrchRS7C/Fk5ZHjyFaSKEXS/Rrv\nue9m0q0Mw2D7/gae33CIlvYog4vd3LF4LBUDczMdmoiIiKRBqpqlqFHKF4vFE7xedYK/bD1ONJ5k\nRFkuty0cw5CS7LQ2P/m6evOY90Ya7/TqK+NtGAYJ49OC1J+tM/TJ8VgyTiQR7Vo5FIh+dgVRO+2x\nIIFogED8y1vc59lzGOsZ1Vl3qKMgtaNzVdFni1Q7rA7c1iyy7dldq4q+cLzjEG2DxrZAikepf8pE\nsxQllfqBo6db+cObh6iu9WO1mFg6u4LF04ditSgzLCIi0h+oWUp6fXjIxx/WH8TbEibXbec7V41g\nxoQBmFVmQETOImkkCcXDtEfbaQq34As3dnQrCzXREvETSkSIxCOEE2HC8QgG515J+mW6WtxneT7T\nvazja74zj8HZZQzKHkiOPbubnqH0VUoq9WHNbRFefPswW/bWAXDR6GKWzxtJSX5WhiMTERGRdFKz\nlPTwt0d49o2D7DjgxWI2ceUlQ7j20gpcTk25Rfo6wzCIJCKdq4ECtEcDBGLBrtuBWIBALEQ8GSOe\nTBDrXFUUTkTOuWLIbDKTZenoSlbgyMfp/qQodWfRalNnYepPilSbOr63W2xk29xk27PJtrlx21z9\nosW9pJfe4fqgpGGwcWctq94+TCSaoLwkmxsvr2TM0IJMhyYiIiIZoGYpqWUYBtv21fP7Nw8SCMep\nHJzHbQvHMKhIHXVF+pLmcAuHW45yrLUGf7S1YwtZVwIpQNw4s6vml7GarTjMdrLtbkpcRZ2JHzce\nZ35nxzIPhU4POXbVH5KeS0mlPuZ0Y4D/fu1jDp3043JY+auFo5k9sQyzWcutRURERLpbU2uY3649\nwO7DjThsFm5ZMIp5UwZpq5tILxVLxGiJtNIS8eOP+GmJtnKy7RSH/cdoCp9ZsDrL6sRtczPYOahj\nVZDNjdvuItvqJtvekSTqOO7CZXNhM9uwma2YTWZ13pY+QUmlPiKeSLJ2+wle3nyMeCLJRaOLuXXB\nKPKyHZkOTURERKTPCYbjvL79OOveqyEaSzJ2aAG3LxpDscoMiGRU0kjSFG7GG2okkfz8yiF3xE5D\nUwuRRIRwIkI4HqE12taZQGrFH2klEP/i5gNum4uJReMZkT+M4XnDKHQW4La5sJr1kVr6N/0f0Msl\nkwZV++tZvfko9c0hct12bl0wiovHlGQ6NBEREZE+JxZPsnHnSV7depz2UIy8bDu3XDGcWRMHatWB\nSAoZhkE4EaY9GuyqUdTW+bU9GsAXbqI+0EBDyEc8Gf/a53danOQ7chmSM4g8Ry75jjzyHbnkOfIo\ndRVR4irWFjSRL6CkUi+VNAze/7iBlzcf5XRjEIvZxLwLB3H93OG4nbZMhyciIiLS5+w+7OOZtQdp\nbA2T5bDw7bnDueLiIThsKngr8k3Fk3Gawi00hprwhZvwR/wdbe+j7Z3Jo0+LXZ+tkPUn7BY7Ze5S\nSl0llLiKsJk//7koNyeLeAicVgeOzm5nOTY3eY48nFbt8BD5JpRU6oUOn/Lz9GsHOOltx2wyMXvi\nQK6ZOYwiLbcWERER6XbxRJJVbx1m3Xs1WC0dXd2unjmM7CxdyBP5MkkjSaCzmHVbNEBz5NPkUWOo\nCV+oiZaIHwPjrOfIsmaRY3NT6PSQbXfh7uxilmPL7qxX5CLb7qbAkU++I+9LVwwWF+fg9bal4qmK\n9FtKKvUisXiS1e8eZc224xgGzBg/gGtnDaO0wJXp0ERERET6pPrmII+/vI/jdW2Uelz8ryXjKS/N\nyXRYIhkRjAWpD3ppjbYRT8aJJxPEjTixZJy2SBst0Y66RC0RP62RNoLx0FkTRiZM5DlyGZ43rKPL\nWZaHIqeHAmce2bbsjiLXVhcWs1YCivRkSir1Eifq23ji1Y846Q1QlOfkrxePZczQgkyHJSIiItIn\nJQ2DbfvqeHbdQcLRBJdOGMAtV47Cadf0Wfq2YCyEL9xIY6gZX6gRX6iR+qCXumADbdH2r3SOLGsW\nefYcBmaXdnRD6+yAlu/IpTCrkCJnAR5nATaLVvuJ9HZ6V+zh/IEob7xXw9rtJ0gkDeZOLmPFvJFk\nOfSfTkRERKS7hSJxNu8+zfodJ2loCeGwW/ibq8cxY8KATIcmcl4SyQQtET+N4Y5tZ42hJpoj/q56\nRYFox9dwInLGY02YKHQWUF44hlJXMfmOPKxmK1azBavJitVsJcee3VXY2mGxZ+AZikgmKDPRQ9V6\n21n7Xg3b9tURTxjkZ9u5Y/FYLhhemOnQRERERPocX0uIde/VsHnPacLRBFaLmdkTB/KtGUMpUakB\n6YEMw6A9FqAl0oo/4qcl4u/8vpWWqJ9ALEg4HiGSiBCOh4kkomfdimY1W8m2uSnM8lDgyOtaTVSY\nVUhRlofirCLsWlUkIl9ASaUexDAMDpxoYc224+w92gRAaUEWV14yhJkTBuKwaz+xiIiISHdqDUZ5\n9d1jbPyglkSy40Le4ulDmTu5jByXVltI+iSSCcKJCIFYgPbO4tbtnauHPtsBrT0aoLWzdlHcSJz1\nfFaTBafVidPioCirEKfVQYEjv6N+kdNDUZaHAmcB2TY3Dov9Swtci4icjZJKPYBhGOw+3MirW49x\nuLYVgFFD8rlq6hAmjSzCrD/wIiIiIt0qHI2z7r0aXq86QTiaoDjfydJZw7lkbAlWiznT4UkvZxgG\noXiIls6i1S2RVlqjbV1d0AKdCaKoESEQDRGOR4glY1/p3GaTmVx7DoNyysh35HVsObPnku/II8+R\n23XMaXWm+FmKiCiplFFJw2DHAS+vbjlGTUNH0bvJI4v41syhjCjLy3B0IiIiIn1PIpnknV2neXnz\nUVoDUXJcNr49dwRzJ5cpmdSPGYZBOBGmPRokbsQ7O5t1/IsmY4TjYcKJCOF4hOgXbCOLJKK0RPxd\nnc/8kVai50gSWc1Wsu0usqxOChz5OC0OnFYnbpurs7i1i2x7NtldtzuKXWdZnVpVJCI9hpJKGfDJ\nyqQ/vXOEmoZ2TCaYNq6Ub00fyuCS7EyHJyIiItLnGIbBh4d8vPDWYeqagjhsFpbMquDKS4aoAUov\nFY5H8Ef8+KOtBGIhwokIkXiEcCJMNBE7I/GTNJKfJouMBPFknNZIGy3RjpVE0UT0vGMyYSLb7qbU\nVUxe54qhjhVEeeQ5csi2ucm2ZZNtd2M32ygpycXrbTvv3ysikil6B02zAyeaefGdI1Sf9GMCZowv\n5dpLKyj1qACkiIiISCocPd3K8xuqOVjTgtlk4rLJZSyZVUFetiPTofUriWTi01pBsQDBeIh4ItaV\n4IknE0STUSLxCKGuBFGEeDJGPJkgloyTMBKE42FaIq2EE+FuiSvb5qY4q5B8Rx45tmysFis2kxWL\n2YLVbMVhtuOwOjpXEjlwWByY+PxKIZvF1rUNzWJWHVQR6T+UVEoTnz/E7984xIfVPgAurCziutnD\ntTJJREREJEXaQzFWvXWYTbtOYdBRZmDZZSMoK3JnOrRe7ZOC0p90FgvFw58rLt0WaycQDXYWmO4s\nLh0LEoqHzvt3W81WHBY7Hmf+Z2oI5eK2uXFaHF3JH7vFfkZdUhNmrGYrVrMFq6nja7Y9G5tZH4lE\nRL4p/QVNsXgiyZvvn+SlzUeIxpKMGpzH8nkjGTFINZNEREREUiFpGGzadYpVbx0mEI4zqMjNzQtG\nMXZoQaZD63EMw6A12oYv1ERjuAm730xza3vXyqFIIoK/s9PYJ63rw4nIVz6/2WQm2+amwJHHkOwy\n3HZ35xYwFy6bC5vZ2png6fhnM1u7OpY5rU4cFjs2sw2b2YrZZFYtIRGRHkZJpRSqPunnt2s/5qQ3\nQHaWje9cOZqZEwbozVBEREQkRY6ebuXZdQc5eroVh93CDfNHcvlFg/tdEe6O7mPhrtVCbdF2/NHW\nrm5k/kgrzeEWGsNNxJLxr3ROt81FYZYHt81N1mdWBX1SXNptc5PTWVDabXORY3fjtKiotIhIX6ak\nUgqcbgzw0qajvPdxAwBzJpWx7LIRZGfZMhyZiIiISN/U0h7hxbcP8+6eOgCmji3hhvmVFOT0jbpJ\noXiYxlATjeFm2qPtnVvKAgRiQQKxIOFEmHBnDaJIPEIgHiRpJL/0nC5rFgPdpRQ6PRRlFVKYVUBJ\nQQHB9ljXFrHP1gqyWTSXFRGRz1NSqRs1+sOsfvco7+6pI2kYVAzM4cbLK6kcnJ/p0ERERET6pFg8\nwbr3anh163Ei0QSDi7O56YrKHrnV7bNt69tjAULxz3Ysi3QmhcKf62LWGmmnMdxEeyxwzvM7LHac\nFicuWxZFWYVk211dbeizbe6u+kMdXcnycFjsZ5yjuDhH3chEROQrU1KpGzS1hnmt6gRvf1hLPGFQ\nVuTm+jnDubCySMt9RURERFIgmTTYuq+OlzcfxecPk51l44arRjJnUhlmc3rnX4ZhEIyHaIn4u+oO\nfbLF7JPbrdE22mNBEkbia53barLgySqgPGcwhVkeCp0F5HUWps62uci2uXHZXDgsdsym/rXFT0RE\nMk9JpfNQ3xRkzbbjbNlbRyJpUJTnZOnsCqaPG5D2yYyIiIhIf5A0DN7b38DLm49S1xTEYjax4OIh\nLJk1DJczNduzkkYSX6iJ+mAD3qDv07pE0U+TRl9Wl8hutpHryKXcWdC1cshtd+GyZuG0OD+tTdTZ\nsv7TQtUd7euVLBIR+f/bu//Yput9j+OvrqX71e5HRzscIuKUceRsjF3lZDBRI3o9weM/BqNkGj2a\nqCPqjdEBi2MQwtgQDT8kQtyMZHEw7rwqf6h49VwI5nbjwHKqTjnobkQ3xK2DbewnjPX+gaf34hk/\nKuv325XnIyGh3zbdu+98aV+89/l8i0jFUOk3aO8a0H/sa9FfD7crEJAmuRK0MH+q/nBz+lV3EUgA\nAACjfNHi17/vbVFbR5+sMRbNn5WhP829XmnJcb/p+UYCI+oa6lbnwAn5B06o5/Sp87ah/eM6Ru39\nHRoeZYWRRRYl2R26JjE9uKXs/7aXnbsOUUpssuJtXKwaABCdInqoVF5eLp/PJ4vFopKSEuXk5Jha\nz0ggoL8calX9vhadPjOi6zwO3Tf3euVNd7MyCQAARI1Iy2B9g2e049Nv9d9fHZfFIs37/ST9qWCa\nPCnxoz5+eGRYfWf6/983n/Wp5/SpX7an/WNbWrdODHZdcjtanDVWkx0ZSk90Kz3BI0/CRKXGpigl\nNklJdqesMdZwvGQAAMaFiB0qHThwQEePHlVdXZ1aWlpUUlKiuro60+o55u/Vq+806UhrtxzxE/TY\nH2foD79L57dOAAAgqkRaBvN959f2jw+rq/e0pk5y6s9/nCGXy6quoS593fmDuoZ61Dl4IrjaqHPw\n3IqjS3FOcGiKc7Imxrt++fYzl5JjkxX/y5azOGuc4myxSrDFk/cAALiAiB0qeb1eLViwQJKUmZmp\n7u5u9fb2yuFwGF7LX5pateu/WnT6zFn9y3S3Cv81S8mJ//xtGQAAAONdpGSwvqEhvbpzt/5+vFUx\n6UPKmGnRSOyQXv3mvQtevyjGEiNXXKqmp2TKaXcEL2adaE9Ukt35y5a0ZCXHOmWLidgYDADAuBGx\nn6Z+v18zZ84M3na5XOro6LhooElNTZDNNrZLkIfOnFXtfx6RI8Guf3totgpmZfDbKoO43U6zS7iq\n0G9j0W/j0XNj0e/xK9QMFo78JUmfNfxN/2P5XBOuOXe7K2BRspy6NvkaueJTzvvjTkyTxzFRafEp\nbEcbA/z7NRb9Nhb9Nhb9Np7RPY/YodKvBQKBSz7m5Mn+sPzsssfn6Mbr0zTUPyS/vzcsPwPnc7ud\n6ui49NJ1jA36bSz6bTx6bqxw9ptwarxLZbBw5a/51/9ezvg/yxUfp7T4lEtfv6hfOtEfnlquJrxf\nGot+G4t+G4t+G8+MDBaxQyWPxyO/3x+83d7eLrfbbUotUzwOJSXa1dE/ZMrPBwAAMEqkZLAJVpsW\nzrqV/5AAABDBYswu4ELmzZunPXv2SJKam5vl8XhMuZ4SAADA1YQMBgAALlfErlTKy8vTzJkz9dBD\nD8lisaisrMzskgAAAKIeGQwAAFyuiB0qSdKLL75odgkAAABXHTIYAAC4HBG7/Q0AAAAAAACRi6ES\nAAAAAAAAQsZQCQAAAAAAACFjqAQAAAAAAICQMVQCAAAAAABAyBgqAQAAAAAAIGQMlQAAAAAAABAy\nSyAQCJhdBAAAAAAAAMYXVioBAAAAAAAgZAyVAAAAAAAAEDKGSgAAAAAAAAgZQyUAAAAAAACEjKES\nAAAAAACWsv41AAAITklEQVQAQsZQCQAAAAAAACGzmV1ApCsvL5fP55PFYlFJSYlycnLMLikqrVu3\nTocOHdLw8LCeeuopZWdnq7i4WGfPnpXb7dYrr7wiu91udplRZXBwUPfdd5+KioqUn59Pv8No9+7d\nqqqqks1m03PPPaesrCz6HSZ9fX1aunSpuru7debMGS1ZskRut1srV66UJGVlZWnVqlXmFhkljhw5\noqKiIj322GMqLCzUTz/9NOp5vXv3bm3fvl0xMTF68MEHtWjRIrNLxzhBBjMGGcx4ZDDjkMGMQwYz\nTqRlMFYqXcSBAwd09OhR1dXVac2aNVqzZo3ZJUWlhoYGffvtt6qrq1NVVZXKy8u1adMmLV68WLW1\ntZo6darq6+vNLjPqvPHGG0pOTpYk+h1GJ0+e1JYtW1RbW6utW7fqs88+o99h9N5772natGmqqanR\nxo0bg+/dJSUl2rlzp3p7e7Vv3z6zyxz3+vv7tXr1auXn5wePjXZe9/f3a8uWLXr77bdVU1Oj7du3\nq6ury8TKMV6QwYxBBjMHGcwYZDBjkcGMEYkZjKHSRXi9Xi1YsECSlJmZqe7ubvX29ppcVfS59dZb\ntXHjRklSUlKSBgYG1NjYqLvuukuSdOedd8rr9ZpZYtRpaWnRd999pzvuuEOS6HcYeb1e5efny+Fw\nyOPxaPXq1fQ7jFJTU4MfmD09PUpJSVFbW1twhQP9Hht2u11vvvmmPB5P8Nho57XP51N2dracTqfi\n4uKUl5enpqYms8rGOEIGMwYZzHhkMOOQwYxFBjNGJGYwhkoX4ff7lZqaGrztcrnU0dFhYkXRyWq1\nKiEhQZJUX1+v+fPna2BgILgUNS0tjb6PscrKSi1btix4m36HT2trqwYHB/X0009r8eLF8nq99DuM\nFi5cqGPHjunuu+9WYWGhiouLlZSUFLyffo8Nm82muLi4846Ndl77/X65XK7gY/gcxeUigxmDDGY8\nMphxyGDGIoMZIxIzGNdUCkEgEDC7hKj26aefqr6+Xm+99Zbuueee4HH6Prbef/995ebmasqUKaPe\nT7/HXldXl15//XUdO3ZMjz766Hk9pt9j64MPPlBGRoaqq6t1+PBhLVmyRE6nM3g//TbGhfpM//Fb\nce6EFxnMGGQw45HBjEMGiwxmZDCGShfh8Xjk9/uDt9vb2+V2u02sKHrt379fW7duVVVVlZxOpxIS\nEjQ4OKi4uDj9/PPP5y3vw5XZu3evfvzxR+3du1fHjx+X3W6n32GUlpam2bNny2az6brrrlNiYqKs\nViv9DpOmpiYVFBRIkmbMmKGhoSENDw8H76ff4TPa+8hon6O5ubkmVonxggxmHDKYcchgxiKDGYsM\nZh6zMxjb3y5i3rx52rNnjySpublZHo9HDofD5Kqiz6lTp7Ru3Tpt27ZNKSkpkqS5c+cGe//JJ5/o\ntttuM7PEqLJhwwa9++672rVrlxYtWqSioiL6HUYFBQVqaGjQyMiITp48qf7+fvodRlOnTpXP55Mk\ntbW1KTExUZmZmTp48KAk+h1Oo53Xs2bN0pdffqmenh719fWpqalJt9xyi8mVYjwggxmDDGYsMpix\nyGDGIoOZx+wMZgmwDu2i1q9fr4MHD8pisaisrEwzZswwu6SoU1dXp82bN2vatGnBYxUVFXr55Zc1\nNDSkjIwMrV27VhMmTDCxyui0efNmTZ48WQUFBVq6dCn9DpOdO3cGv13kmWeeUXZ2Nv0Ok76+PpWU\nlKizs1PDw8N6/vnn5Xa7tWLFCo2MjGjWrFlavny52WWOe1999ZUqKyvV1tYmm82m9PR0rV+/XsuW\nLfun8/rjjz9WdXW1LBaLCgsLdf/995tdPsYJMlj4kcHMQwYzBhnMOGQwY0RiBmOoBAAAAAAAgJCx\n/Q0AAAAAAAAhY6gEAAAAAACAkDFUAgAAAAAAQMgYKgEAAAAAACBkDJUAAAAAAAAQMpvZBQBAa2ur\n7r33Xs2ePfu847fffruefPLJK37+xsZGbdiwQTt27Lji5wIAAIgG5C8AY4GhEoCI4HK5VFNTY3YZ\nAAAAVw3yF4ArxVAJQES7+eabVVRUpMbGRvX19amiokLTp0+Xz+dTRUWFbDabLBaLVqxYoRtvvFHf\nf/+9SktLNTIyotjYWK1du1aSNDIyorKyMn3zzTey2+3atm2bEhMTTX51AAAAkYf8BeBycU0lABHt\n7Nmzuummm1RTU6OHH35YmzZtkiQVFxdr+fLlqqmp0eOPP65Vq1ZJksrKyvTEE0/onXfe0QMPPKCP\nPvpIktTS0qJnn31Wu3btks1m0+eff27aawIAAIhk5C8Al4uVSgAiwokTJ/TII4+cd+yll16SJBUU\nFEiS8vLyVF1drZ6eHnV2dionJ0eSNGfOHL3wwguSpC+++EJz5syRJC1cuFDSuT39N9xwgyZOnChJ\nmjRpknp6esL/ogAAACIY+QvAlWKoBCAiXGxPfyAQCP7dYrHIYrFc8H7p3FLrX7NarWNQJQAAQPQg\nfwG4Umx/AxDxGhoaJEmHDh1SVlaWnE6n3G63fD6fJMnr9So3N1fSud+m7d+/X5L04Ycf6rXXXjOn\naAAAgHGM/AXgcrBSCUBEGG359bXXXitJ+vrrr7Vjxw51d3ersrJSklRZWamKigpZrVbFxMRo5cqV\nkqTS0lKVlpaqtrZWNptN5eXl+uGHHwx9LQAAAOMB+QvAlbIEfr1uEQAiSFZWlpqbm2WzMQMHAAAw\nAvkLwOVi+xsAAAAAAABCxkolAAAAAAAAhIyVSgAAAAAAAAgZQyUAAAAAAACEjKESAAAAAAAAQsZQ\nCQAAAAAAACFjqAQAAAAAAICQMVQCAAAAAABAyP4XUBZbKdRKaE4AAAAASUVORK5CYII=\n", + "text/plain": [ + "<Figure size 1440x360 with 2 Axes>" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "tauYqze23-mG", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 293 + }, + "outputId": "3607cad3-ad49-488e-d28f-f07244ba8d41" + }, + "cell_type": "code", + "source": [ + "HTML(display_videos('cnn_test_explore10.mp4'))" + ], + "execution_count": 48, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "<video alt=\"test\" controls>\n", + " <source src=\"data:video/mp4;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAAGUxtZGF0AAACrQYF//+p3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE1MiByMjg1NCBlOWE1OTAzIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNyAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD00IHRocmVhZHM9MyBsb29rYWhlYWRfdGhyZWFkcz0xIHNsaWNlZF90aHJlYWRzPTAgbnI9MCBkZWNpbWF0ZT0xIGludGVybGFjZWQ9MCBibHVyYXlfY29tcGF0PTAgY29uc3RyYWluZWRfaW50cmE9MCBiZnJhbWVzPTMgYl9weXJhbWlkPTIgYl9hZGFwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MiBrZXlpbnQ9MjUwIGtleWludF9taW49MjUgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD00MCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIzLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IGlwX3JhdGlvPTEuNDAgYXE9MToxLjAwAIAAAANIZYiEADP//vaG+BTYUyP+T7/8I/+5H7cfWfrixkIJvrVeQ9GAMl8a/5lGYaXpyc8t7R+vTNAEZz8ZS8pZp9o/ApmtrL5lb/b/oua27Jy2JRlKnFY8pTsQGlSqb5ucbZ1H9EbFMJVHquRppipp/NOVk0cVYeao/1hInOpH8BTezDU6DEvJtzDr054BarH/Iwg+U2x4ShRH2TBXgnFA6lLr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AAEAAAYAAAAAAQAAAgAAAAABAAAGAAAAAAEAAAIAAAAAAgAABAAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAQAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAAEAAAEAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAIAAAQAAAAAAQAABgAAAAABAAACAAAAAAIAAAQAAAAAAQAABgAAAAABAAACAAAAAAEAAAQAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAACAAAEAAAAAAEAAAgAAAAAAgAAAgAAAAABAAAGAAAAAAEAAAIAAAAAAgAABAAAAAABAAAGAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAIAAAAAAIAAAIAAAAAAQAABgAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAAEAAAEAAAAAAEAAAYAAAAAAQAAAgAAAAAIAAAEAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAGAAAAAAEAAAIAAAAACAAABAAAAAABAAAGAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAABgAAAAABAAACAAAAAAEAAAgAAAAAAgAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAABAAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAQAAAAAAQAABgAAAAABAAACAAAAAAIAAAQAAAAAAQAABgAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAEAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAygAAAAEAAAM8c3RzegAAAAAAAAAAAAAAygAABf0AAAAZAAAAGwAAABwAAAAcAAAAHQAAACEAAAAUAAAAHQAAAB0AAAAiAAAAFAAAACAAAAATAAAAIAAAABQAAAAhAAAAFAAAAB0AAAAcAAAAHwAAABoAAAAUAAAAFAAAAB0AAAAvAAAAJAAAABQAAAAUAAAAHQAAABwAAAAdAAAAHAAAACIAAAAUAAAAIgAAABkAAAAUAAAAEwAAAB0AAAAcAAAAJQAAABQAAAAbAAAAHQAAACMAAAATAAAAHAAAACwAAAAVAAAAEwAAABQAAAAdAAAAHAAAACcAAAAWAAAAFAAAAB8AAAAUAAAAHQAAAB0AAAAiAAAAFAAAABYAAAAQAAAAFAAAABQAAAAXAAAAEAAAABQAAAAUAAAAFwAAABAAAAAUAAAAFAAAABYAAAAQAAAAFAAAABQAAAAkAAAAFgAAABQAAAAhAAAAFAAAACAAAAAUAAAAJQAAABUAAAATAAAAEwAAACAAAAAUAAAAHAAAABwAAAAcAAAAHAAAACIAAAAUAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAkAAAAFAAAACAAAAAUAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHQAAAB0AAAAcAAAAEwAAABYAAAAQAAAAEwAAABQAAAAXAAAAEAAAABMAAAAUAAAAFwAAABAAAAATAAAAFAAAABcAAAAQAAAAEwAAABQAAAAXAAAAEAAAABMAAAAUAAAAFwAAABAAAAATAAAAFAAAABcAAAAQAAAAEwAAABQAAAAXAAAAEAAAABMAAAAUAAAAFwAAABAAAAATAAAAFAAAABcAAAAQAAAAFAAAABMAAAAXAAAAEAAAABQAAAATAAAAKgAAACMAAAAUAAAAFAAAACEAAAAUAAAAKQAAABYAAAATAAAAHAAAABIAAAAUAAAAFAAAACoAAAAXAAAAFAAAABQAAAAdAAAAFQAAABYAAAAUAAAAEwAAABwAAAAlAAAAFAAAACAAAAAdAAAAIgAAABQAAAAgAAAAFAAAABwAAAAUAAAAEwAAABQAAAAgAAAAFAAAAB4AAAAUc3RjbwAAAAAAAAABAAAAMAAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTcuODMuMTAw\" type=\"video/mp4\" />\n", + " </video>" + ], + "text/plain": [ + "<IPython.core.display.HTML object>" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 48 + } + ] + }, + { + "metadata": { + "id": "NS29b7wqgDPR", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "***\n", + "***\n", + "__BONUS question__ Use the expert DQN from the previous question to generate some winning games. Train a model that mimicks its behavior. Compare the performances." + ] + }, + { + "metadata": { + "id": "r9wJ322qgDPS", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "" + ] + }, + { + "metadata": { + "id": "7EH7wx0vgDPT", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "***" + ] + } + ] +} \ No newline at end of file diff --git a/README.md b/README.md index 1838c0c117f9c2709ec4eedd0253d804e7217ec7..60fa5a349accededbce79d37b647d3aaebc9bf3a 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,9 @@ # Project Deep Reinforcement Learning +*MVA - CentraleSupelec* + +*Proposed by Vincent Lepetit - Realized by Thibault Cordier* + +## Content + +- Jupyter assignment (code + results + explanation): *MVA_MP3_Thibault_CORDIER.ipynb*