{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "UFF logo\n", "\n", "\n", "IC logo\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Machine Learning\n", "# 5. Programming Neural Networks with Theano" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### [Luis Martí](http://lmarti.com)\n", "#### [Instituto de Computação](http://www.ic.uff)\n", "#### [Universidade Federal Fluminense](http://www.uff.br)\n", "$\\newcommand{\\vec}[1]{\\boldsymbol{#1}}$" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import os, sys, gzip\n", "import six.moves.cPickle as pickle\n", "\n", "import numpy\n", "\n", "import theano\n", "import theano.tensor as T\n", "import theano.d3viz as d3viz\n", "\n", "from IPython.display import Image, SVG, IFrame\n", "\n", "import matplotlib as mpl\n", "import matplotlib.pyplot as plt\n", "import matplotlib.cm as cm\n", "\n", "from mpl_toolkits.mplot3d import Axes3D" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import seaborn\n", "seaborn.set(style='whitegrid')\n", "seaborn.set_context('talk')\n", "\n", "%matplotlib inline\n", "%config InlineBackend.figure_format = 'retina'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# What about `theano`?\n", "\n", "* Mathematical symbolic expression compiler\n", " * Easy to define expressions\n", " * Expressions are similar numpy's syntax and semantics\n", "* Possible to manipulate those expressions\n", " * Substitutions\n", " * **Gradient**, R operator\n", "* Stability optimizations\n", "Fast to compute values for those expressions\n", "* Speed optimizations\n", "* Use fast back-ends (GPUs (CUDA), BLAS, custom C code)\n", "* Tools to inspect and check for correctness" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Theano defines a *language*, a *compiler*, and a *library*.\n", " * Define a symbolic expression\n", " * Compile a function that can compute values\n", " * Execute that function on numeric values" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The graph that represents mathematical operations is bipartite, and has two sorts of nodes:\n", "* **Variable nodes**, that represent data\n", "* **Apply nodes**, that represent the application of mathematical operations \n", "\n", "In practice:\n", "* Variables values are used for the graph inputs and outputs, and intermediate values\n", "* Variables will hold data during the function execution phase\n", "* An Apply node has inputs and outputs, which are Variables\n", "* An Apply node represents the specific application of an Op on these input variables\n", "* The same Variable can be used as inputs by several Apply nodes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Shared variables\n", "* Symbolic variables, with a value associated to them\n", "* The value is persistent across function calls\n", "* The value is shared among all functions\n", "* The variable has to be an input variable\n", "* The variable is an implicit input to all functions using it" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "An optimization replaces a part of the graph with different nodes.\n", "* The types of the replaced nodes have to match\n", "* Merge equivalent computations\n", "* Simplify expressions: $\\frac{x}{x}$ becomes $1$\n", "* Numerical stability: For example, gives the right answer for $\\log(1 + x)$ even if $x$ is really small.\n", "* Insert in-place an destructive versions of operations\n", "* Use specialized, high-performance versions (Elemwise loop fusion, GEMV,\n", "GEMM)\n", "* Shape inference\n", "* Constant folding\n", "* Transfer to GPU" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Using GPUs\n", "\n", "Theano tries to make the use of GPUs as transparent as possible,\n", "* Currently limited to `float32` `dtype`\n", "* Not easy to interact in Python with `CudaNdarrays`\n", "\n", "Select GPU by setting the device flag to ’gpu’ or 'gpu{0,1,2,...}'.\n", "* All `float32` shared variables will be created in GPU memory\n", "* Enables optimizations moving supported operations to GPU\n", "\n", "You want to make sure you use `float32`\n", "* `floatX` is the default type of all tensors and sparse matrices.\n", "* By default, aliased to ’float64’ for double precision on CPU\n", "* Can be set to `float32` by a configuration flag\n", "* You can always explicitly use `T.fmatrix()` or `T.matrix(dtype=’float32’)`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Configuration flags can be set in a couple of ways:\n", "* In the shell:\n", "```bash\n", "$ THEANO_FLAGS=device=gpu0,floatX=float32\n", "```\n", "* In Python:\n", "```python\n", "theano.config.device = 'gpu0'\n", "theano.config.floatX = 'float32'\n", "```\n", "* In the `.theanorc` configuration file:\n", "```\n", "[global]\n", " device = gpu0\n", " floatX = float32\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# A first contact with `theano`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Defining theano variables and expressions" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "x = T.dscalar('x')\n", "y = x ** 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You might need to install `pydot` by running `pip install pydot`." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d3viz.d3viz(y, 'figs'+os.sep+'y.html')\n", "IFrame('figs'+os.sep+'y.html', width=600, height=400)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compiling the expression as a function" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "f = theano.function(inputs=[x], outputs=y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using the function" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(16.0)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f(4)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "dy = T.grad(y, x)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d3viz.d3viz(dy, 'figs'+os.sep+'dy.html')\n", "IFrame('figs'+os.sep+'dy.html', width=1000, height=600)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "df = theano.function([x], dy)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(8.0)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df(4)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "numpy.allclose(f(94.2), 188.4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Programming Multilayer Perceptrons with `theano`\n", "\n", "I have based this notebook on the code of the [theano deep learning tutorial](http://deeplearning.net/tutorial/) (© 2008–2013, Theano Development Team All rights reserved)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Loading data\n", "\n", "* We are going to use the [MNIST database](https://en.wikipedia.org/wiki/MNIST_database)\n", "* Each MNIST image has size 28*28\n", "* Contains 60,000 training images and 10,000 testing images.\n", "* That is too much data to process at one time, we need to make batches!\n", "\n", "
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", "
\n", "
" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "def load_data(dataset):\n", " ''' Loads the dataset\n", "\n", " :type dataset: string\n", " :param dataset: the path to the dataset (here MNIST)\n", " '''\n", "\n", " # Download the MNIST dataset if it is not present\n", " data_dir, data_file = os.path.split(dataset)\n", " if data_dir == \"\" and not os.path.isfile(dataset):\n", " # Check if dataset is in the data directory.\n", " new_path = os.path.join(os.getcwd(), \"data\", dataset)\n", " if os.path.isfile(new_path) or data_file == 'mnist.pkl.gz':\n", " dataset = new_path\n", "\n", " if (not os.path.isfile(dataset)) and data_file == 'mnist.pkl.gz':\n", " from six.moves import urllib\n", " origin = (\n", " 'http://www.iro.umontreal.ca/~lisa/deep/data/mnist/mnist.pkl.gz')\n", " print('Downloading data from %s' % origin)\n", " urllib.request.urlretrieve(origin, dataset)\n", "\n", " # Load the dataset\n", " with gzip.open(dataset, 'rb') as f:\n", " try:\n", " train_set, valid_set, test_set = pickle.load(f, encoding='latin1')\n", " except:\n", " train_set, valid_set, test_set = pickle.load(f)\n", " # train_set, valid_set, test_set format: tuple(input, target)\n", " # input is a numpy.ndarray of 2 dimensions (a matrix)\n", " # where each row corresponds to an example. target is a\n", " # numpy.ndarray of 1 dimension (vector) that has the same length as\n", " # the number of rows in the input. It should give the target\n", " # to the example with the same index in the input.\n", "\n", " def shared_dataset(data_xy, borrow=True):\n", " \"\"\" Function that loads the dataset into shared variables\n", "\n", " The reason we store our dataset in shared variables is to allow\n", " Theano to copy it into the GPU memory (when code is run on GPU).\n", " Since copying data into the GPU is slow, copying a minibatch everytime\n", " is needed (the default behaviour if the data is not in a shared\n", " variable) would lead to a large decrease in performance.\n", " \"\"\"\n", " data_x, data_y = data_xy\n", " shared_x = theano.shared(\n", " numpy.asarray(\n", " data_x, dtype=theano.config.floatX), borrow=borrow)\n", " shared_y = theano.shared(\n", " numpy.asarray(\n", " data_y, dtype=theano.config.floatX), borrow=borrow)\n", " # When storing data on the GPU it has to be stored as floats\n", " # therefore we will store the labels as ``floatX`` as well\n", " # (``shared_y`` does exactly that). But during our computations\n", " # we need them as ints (we use labels as index, and if they are\n", " # floats it doesn't make sense) therefore instead of returning\n", " # ``shared_y`` we will have to cast it to int. This little hack\n", " # lets ous get around this issue\n", " return shared_x, T.cast(shared_y, 'int32')\n", "\n", " test_set_x, test_set_y = shared_dataset(test_set)\n", " valid_set_x, valid_set_y = shared_dataset(valid_set)\n", " train_set_x, train_set_y = shared_dataset(train_set)\n", "\n", " rval = [(train_set_x, train_set_y), (valid_set_x, valid_set_y),\n", " (test_set_x, test_set_y)]\n", " return rval" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Programming a multi-class logistic regression\n", "\n", "* The logistic regression is fully described by a weight matrix $\\vec{W}$ and bias vector $\\vec{b}$. \n", "* Classification is done by projecting data points onto a set of hyperplanes, the distance to which is used to determine a class membership probability." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "class LogisticRegression(object):\n", " def __init__(self, input, n_in, n_out):\n", " # initialize with 0 the weights W as a matrix of shape (n_in, n_out)\n", " self.W = theano.shared(\n", " value=numpy.zeros(\n", " (n_in, n_out), dtype=theano.config.floatX),\n", " name='W',\n", " borrow=True)\n", " # initialize the biases b as a vector of n_out 0s\n", " self.b = theano.shared(\n", " value=numpy.zeros(\n", " (n_out, ), dtype=theano.config.floatX),\n", " name='b',\n", " borrow=True)\n", "\n", " # symbolic expression for computing the matrix of class-membership\n", " # probabilities\n", " # Where:\n", " # W is a matrix where column-k represent the separation hyperplane for\n", " # class-k\n", " # x is a matrix where row-j represents input training sample-j\n", " # b is a vector where element-k represent the free parameter of\n", " # hyperplane-k\n", " self.p_y_given_x = T.nnet.softmax(T.dot(input, self.W) + self.b)\n", "\n", " # symbolic description of how to compute prediction as class whose\n", " # probability is maximal\n", " self.y_pred = T.argmax(self.p_y_given_x, axis=1)\n", "\n", " # parameters of the model\n", " self.params = [self.W, self.b]\n", "\n", " # keep track of model input\n", " self.input = input\n", "\n", " def negative_log_likelihood(self, y):\n", " \"\"\"Return the mean of the negative log-likelihood of the prediction\n", " of this model under a given target distribution.\n", "\n", " Note: we use the mean instead of the sum so that\n", " the learning rate is less dependent on the batch size\n", " \"\"\"\n", " return -T.mean(T.log(self.p_y_given_x)[T.arange(y.shape[0]), y])\n", "\n", " def errors(self, y):\n", " \"\"\"Return a float representing the number of errors in the minibatch\n", " over the total number of examples of the minibatch ; zero one\n", " loss over the size of the minibatch\n", "\n", " :type y: theano.tensor.TensorType\n", " :param y: corresponds to a vector that gives for each example the\n", " correct label\n", " \"\"\"\n", "\n", " # check if y has same dimension of y_pred\n", " if y.ndim != self.y_pred.ndim:\n", " raise TypeError('y should have the same shape as self.y_pred',\n", " ('y', y.type, 'y_pred', self.y_pred.type))\n", " # check if y is of the correct datatype\n", " if y.dtype.startswith('int'):\n", " # the T.neq operator returns a vector of 0s and 1s, where 1\n", " # represents a mistake in prediction\n", " return T.mean(T.neq(self.y_pred, y))\n", " else:\n", " raise NotImplementedError()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "learning_rate = 0.13\n", "n_epochs = 100\n", "dataset = 'mnist.pkl.gz'\n", "batch_size = 30" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Loading data" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "datasets = load_data(dataset)\n", "\n", "train_set_x, train_set_y = datasets[0]\n", "valid_set_x, valid_set_y = datasets[1]\n", "test_set_x, test_set_y = datasets[2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute number of minibatches for training, validation and testing" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "n_train_batches = train_set_x.get_value(borrow=True).shape[0] // batch_size\n", "n_valid_batches = valid_set_x.get_value(borrow=True).shape[0] // batch_size\n", "n_test_batches = test_set_x.get_value(borrow=True).shape[0] // batch_size" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "# allocate symbolic variables for the data\n", "index = T.lscalar() # index to a [mini]batch\n", "\n", "# generate symbolic variables for input (x and y represent a\n", "# minibatch)\n", "x = T.matrix('x') # data, presented as rasterized images\n", "y = T.ivector('y') # labels, presented as 1D vector of [int] labels" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Construct the logistic regression class instance" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "classifier = LogisticRegression(input=x, n_in=28 * 28, n_out=10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The cost function (error or loss function) we minimize during training is the negative log likelihood of the model in symbolic format." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "cost = classifier.negative_log_likelihood(y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compiling a Theano function that computes the mistakes that are made by the model on a validation minibatch." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "validate_model = theano.function(\n", " inputs=[index],\n", " outputs=classifier.errors(y),\n", " givens={\n", " x: valid_set_x[index * batch_size:(index + 1) * batch_size],\n", " y: valid_set_y[index * batch_size:(index + 1) * batch_size]\n", " })" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A similar function for testing" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "test_model = theano.function(\n", " inputs=[index],\n", " outputs=classifier.errors(y),\n", " givens={\n", " x: test_set_x[index * batch_size:(index + 1) * batch_size],\n", " y: test_set_y[index * batch_size:(index + 1) * batch_size]\n", " })" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "train_set_loss = theano.function(\n", " inputs=[index],\n", " outputs=classifier.errors(y),\n", " givens={\n", " x: train_set_x[index * batch_size:(index + 1) * batch_size],\n", " y: train_set_y[index * batch_size:(index + 1) * batch_size]\n", " })" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute the gradient of cost with respect to $\\vec{W}$ and $\\vec{b}$." ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "g_W = T.grad(cost=cost, wrt=classifier.W)\n", "g_b = T.grad(cost=cost, wrt=classifier.b)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Specify how to update the parameters of the model as a list of (variable, update expression) pairs." ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "updates = [(classifier.W, classifier.W - learning_rate * g_W),\n", " (classifier.b, classifier.b - learning_rate * g_b)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compiling a Theano function `train_model` that returns the cost, but in the same time updates the parameter of the model based on the rules\n", "defined in `updates`" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "train_model = theano.function(\n", " inputs=[index],\n", " outputs=cost,\n", " updates=updates,\n", " givens={\n", " x: train_set_x[index * batch_size:(index + 1) * batch_size],\n", " y: train_set_y[index * batch_size:(index + 1) * batch_size]\n", " })" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "All set! we are ready for training." ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "scrolled": false }, "outputs": [], "source": [ "def train(classifier,\n", " train_model,\n", " validate_model,\n", " test_model,\n", " n_epochs,\n", " n_train_batches,\n", " n_valid_batches,\n", " n_test_batches,\n", " validation_frequency,\n", " patience=5000,\n", " patience_increase=2,\n", " improvement_threshold=0.995,\n", " verbose=False,\n", " log_results=False):\n", " train_errors = []\n", " validation_errors = []\n", " test_errors = []\n", "\n", " epoch = 0\n", " done_looping = False\n", "\n", " best_validation_loss = numpy.inf\n", " test_score = 0.\n", " while epoch < n_epochs and not done_looping:\n", " epoch = epoch + 1\n", " for minibatch_index in range(n_train_batches):\n", " minibatch_avg_cost = train_model(minibatch_index)\n", " # iteration number\n", " iter_num = (epoch - 1) * n_train_batches + minibatch_index\n", "\n", " # is it time to compute the validation set error?\n", " if (iter_num + 1) % validation_frequency == 0:\n", " validation_losses = [\n", " validate_model(i) for i in range(n_valid_batches)\n", " ]\n", " current_validation_loss = numpy.mean(validation_losses)\n", "\n", " if log_results:\n", " # test it on the test set\n", " test_losses = [\n", " test_model(i) for i in range(n_test_batches)\n", " ]\n", " current_test_loss = numpy.mean(test_losses)\n", "\n", " # test it on the trainig set\n", " train_losses = [\n", " train_set_loss(i) for i in range(n_train_batches)\n", " ]\n", " current_train_loss = numpy.mean(train_losses)\n", "\n", " train_errors += [current_train_loss]\n", " validation_errors += [current_validation_loss]\n", " test_errors += [current_test_loss]\n", "\n", " if verbose:\n", " print('epoch %i, minibatch %i/%i, validation error %f%%' %\n", " (epoch, minibatch_index + 1, n_train_batches,\n", " current_validation_loss * 100.))\n", "\n", " # if we got the best validation score until now\n", " if current_validation_loss < best_validation_loss:\n", " #improve patience if loss improvement is good enough\n", " if current_validation_loss < best_validation_loss * improvement_threshold:\n", " patience = max(patience, iter_num * patience_increase)\n", "\n", " best_validation_loss = current_validation_loss\n", " ## save the best model\n", " # with open('best_model.pkl', 'wb') as f:\n", " # pickle.dump(classifier, f)\n", "\n", " if patience <= iter_num:\n", " print('Ran out of patience!')\n", " done_looping = True\n", " break\n", " return train_errors, validation_errors, test_errors" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "patience = 5000 # look as this many examples regardless\n", "patience_increase = 2 # wait this much longer when a new best is found\n", "improvement_threshold = 0.995 # a relative improvement of this much is\n", "# considered significant\n", "validation_frequency = min(n_train_batches, patience // 2)\n", "# go through this many\n", "# minibatches before checking the network\n", "# on the validation set; in this case we\n", "# check every epoch\n", "n_epochs = 100" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "epoch 1, minibatch 1666/1666, validation error 8.548549%\n", "epoch 2, minibatch 1666/1666, validation error 8.118118%\n", "epoch 3, minibatch 1666/1666, validation error 7.877878%\n", "epoch 4, minibatch 1666/1666, validation error 7.727728%\n", "epoch 5, minibatch 1666/1666, validation error 7.507508%\n", "epoch 6, minibatch 1666/1666, validation error 7.367367%\n", "epoch 7, minibatch 1666/1666, validation error 7.387387%\n", "epoch 8, minibatch 1666/1666, validation error 7.307307%\n", "epoch 9, minibatch 1666/1666, validation error 7.257257%\n", "epoch 10, minibatch 1666/1666, validation error 7.247247%\n", "epoch 11, minibatch 1666/1666, validation error 7.267267%\n", "epoch 12, minibatch 1666/1666, validation error 7.247247%\n", "epoch 13, minibatch 1666/1666, validation error 7.227227%\n", "epoch 14, minibatch 1666/1666, validation error 7.237237%\n", "epoch 15, minibatch 1666/1666, validation error 7.277277%\n", "epoch 16, minibatch 1666/1666, validation error 7.247247%\n", "epoch 17, minibatch 1666/1666, validation error 7.257257%\n", "Ran out of patience!\n", "CPU times: user 11.9 s, sys: 222 ms, total: 12.2 s\n", "Wall time: 6.26 s\n" ] } ], "source": [ "%%time\n", "train_errors, validation_errors, test_errors = train(classifier, train_model, validate_model, test_model, \n", " n_epochs, \n", " n_train_batches, n_valid_batches, n_test_batches, \n", " validation_frequency, verbose=True,\n", " log_results=True)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzEAAAIdCAYAAAANj/N5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAWJQAAFiUBSVIk8AAAIABJREFUeJzs3Xd4VNXa9/HvTHpCqCEgASkBNh1CUVFEEZEiKGIXQTwW\nsD++YuXIUY6oWI56UATlgOUBHkBQEAFR8SjVAoEghA2EJHQSSEggk555/5hkzKRgGplM8vtcV67J\n3LPX2vdsCMydtddaFrvdjoiIiIiIiKewujsBERERERGR8lARIyIiIiIiHkVFjIiIiIiIeBQVMSIi\nIiIi4lFUxIiIiIiIiEdRESMiIiIiIh5FRYyIiIiIiHgUFTEiIiIiIuJRVMSIiIiIiIhHUREjIiIi\nIiIeRUWMiIiIiIh4FBUxIiIiIiLiUbzdnYDUPNu2bbO7OwcRERERqRv69OljKW8bjcSIiIiIiIhH\n0UiMlKpPnz7Ver7o6GhsNhuBgYF07ty5Ws9d1+nau5euv/vo2ruPrr376Nq7j669q23btlW4rUZi\nRERERETEo6iIERERERERj6IiRkREREREPIqKGBERERER8SgqYkRERERExKOoiBEREREREY+iIkZE\nRERERDyKihgREREREfEoKmJERERERMSjqIgRERERERGPoiJGREREREQ8ire7ExAREZG6Iz09ndTU\nVPLy8vDz88NutxMXF+futOoUu92ua+8mtena2+12AAIDA6lfvz4BAQHVen4VMSIiIlItkpOTOXv2\nLE2aNCE4OBi73Y7Vaq32Dz91XXp6Onl5ebr2blDbrr3dbsdms5GYmEhwcDCNGjWqtnPrdjIRERG5\n4NLT0zl79iytWrUiKCgIi8Xi7pREpJIsFgtBQUG0atWKs2fPkp6eXm3nVhEjIiIiF1xqaipNmjRR\n8SJSC1ksFpo0aUJqamq1nVO3k0mNcOJ0GnO+OczJM5n069iQTp3s+o9ORKQWsdlshIaGujsNEblA\nAgMDSUxMrLbzaSRGaoR3/y+SmOPpnEvP48edSWzccczdKYmISBXTL6dEai+LxeKc7F8dVMRIjXDi\ndJrL8/XbDrspExERuRBUwIjUftX5c64iRmqEsKb1XJ7vijlFdk6um7IRERERkZpMRYzUCBGG633S\nmVm5RMcluSkbEREREanJVMRIjRDRsWmx2Pa9CW7IRERERERqOhUxUiO0bdGAev5eLrHIfdW3woWI\niIiIeA4tsSw1gtVqoUNYIJExZ52xg0dTSD6bQaNgfzdmJiIiUrMsX76c559/vkJtX3vtNYYPH17F\nGbmKj4/nuuuuA+CLL76ge/fule7zzjvvZPv27YwdO5apU6dWur/aJDY2lp07dzJ69Gh3p1KtNBIj\nNUbHlkHFYjs1GiMiIuLC39+fkJCQYl8NGjRwHtOgQYMSj/H31y8Ga5P58+czatQofvvtN3enUu00\nEiM1RsewwGKx7WYCV/dp5YZsREREaqYRI0YwYsSIYvFffvmF8ePHAzBz5kwuvfTSEtunp6df0Px8\nfHxo27YtQJUVTS1atCA5OZmQkJAq6a+2+Omnn8jOznZ3Gm6hIkZqjOBAb5o19OHkmT9/GCP3JWK3\n27W/gIiIiIdo0aIFa9eurdI+33777SrtTzyfbieTGiX8Ij+X52fOZhJ3PNVN2YiIiIhITaQiRmqU\n9hcVH3aONLXUsoiISFX68ssv6dWrF/fddx9xcXGMGzeOHj16cOmll/LUU0+5HLt161aeffZZhgwZ\nQkREBN26dWPAgAE89NBDrF+/vljf8fHxGIaBYRjs2rXLGd+8eTOGYTBs2DAA1q5dy7hx47jkkkvo\n2bMnN954I//5z3/Iysoq1uedd96JYRhMmzbNJT5w4EAMw2DHjh0cOnSI559/nquuuopu3boxcOBA\nnn/+eeLj40u9DkeOHOHll19m6NCh9OjRg4EDBzJ16lQSExOZNWsWhmEwZcqUcl3bXbt2MXnyZK6+\n+mq6detG3759uemmm3jnnXdISip9D7yEhARef/11hg8fTs+ePYmIiOCmm27i/fffJzXV9Re6S5cu\nxTAMtmzZAjgWUDAMgyFDhpQrV0+m28mkRmnV1A8fLwvZuXZnbLuZwJhBHdyYlYiISO2UnJzMhAkT\nOH78OEFBQZw5c8a5QIDdbufFF19k6dKlzuPr1auH3W4nMTGR9evXs379ep588kkmTZpUrvO+8sor\nfP755wAEBgaSlZXF3r172bt3Lz///DPz58/Hai3779q3bdvG+++/j81mw8fHB6vVysmTJ1m+fDnr\n1q1jwYIFdOrUyaXNb7/9xqRJkzh37hwAwcHBnD59msWLF/Pdd9/Rv3//cr0ncBRmTz31FDk5OQAE\nBQWRmZnJnj172LNnD0uWLOE///mPc85QgS1btvDoo486cwkICCAvL8/ZbunSpcyZM8f5HgoWd0hJ\nSSE7Oxt/f3/q1atH48aNy52zp1IRIzWKj5eFdhcFYB6xOWO7DyaRkZWDv6/+uoqI1GZ5eXa+3niQ\n3/acIDMr193pVBk/Xy/6dWnOqAHtsFpr1hzP3bt307BhQxYtWkTv3r05evSo87Vly5Y5C5jHHnuM\n8ePHU79+fXJzc9m5cycvv/wye/fu5f333+fOO+90WR3tfOLj44mNjWX06NE8/vjjhIWFcebMGd54\n4w2WLVvG1q1bWbt2bYmLF5TmrbfeonXr1kydOpV+/frh5eXFmjVrmDJlCufOnePtt9/m448/dh6f\nlJTEww8/zLlz5+jRowevvPIKhmGQnp7O4sWLefPNN/nmm2/KfH6AjIwMpk6dSk5ODmPGjOGpp54i\nJCQEu93O1q1bmTx5MqdOneLdd9/lvffec7aLjY3l4YcfxmazccsttzBx4kRatXIsarRz505ee+01\nduzYwcSJE1m5ciUNGjRg1KhRjBo1igkTJrBlyxZGjhzJ9OnTy5Wvp9OnQqlxOrYMcilicnLz+CPm\nNH07N3NjViIicqF9vfEgc1f84e40Loid+09hAW4YGO7uVIqZNGkSvXv3BiAsLMwZX7RoEQDDhg3j\n0Ucfdca9vLzo3bs3//znP7n11lvJzs5mz549ZR65yMvL47rrrmPGjBnOWMOGDZk2bRqbNm3ixIkT\nbNy4sVxFjL+/P59//jlNmzZ1xq6//nqio6P5+OOP2bJlC7m5uXh5OTbW/vDDD0lNTSUsLIz58+dT\nr149wDECMmHCBPz8/HjppZfKfH6A6OhoUlJSAPj73/9OUJBj6wiLxUL//v159tlnef755zly5Ai5\nuX8W6f/617+w2Wzce++9PPfccy599urVi3nz5jFq1CiOHj3K559/7vJnUZdpTozUOCUttRy5T/Ni\nRERqu+i40ucL1AZ7auj7u+KKK0qMT58+nZkzZ/LEE0+U+HqHDn/e6p2Wllauc95yyy3FYt7e3s6N\nMU+fPl2u/gYOHOhSwBSIiIgAIDs721lgAKxbtw6A8ePHOwuYwm6//XaaN29erhwKihZwzDkq6vrr\nr+eXX35h6dKlzmLq3Llz/PDDDwDcdtttpfY7atQoAL777rty5VSbaSRGapzQhr6ENPDnVEqGM6bJ\n/SIitV/nNo3ZtPOYu9O4YLq0qZnzFYrOzyjQqVMnl3kkubm5HD9+nLi4OEzT5Pfff3d5rTzatWtX\n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\nUnUsVistbhhJixtqxryR2iovL8/5/ZIlS5yT9suqf//+fPfdd2zYsIH169ezadMmjh07RkpKCsuX\nL+fLL7/kueeeY8KECZXO1dfXl9dee42HH36Yb7/9lp9++onIyEiys7PZtWsXu3btYtGiRSxatIjG\njRs7C5iKvjfxHJoTIzWGb0QvrO3ausRybTZiP55b6b69vKz07OC6xrt5KJlz6dmV7ltERMSTNGzY\n0Pn98ePHK9SHj48P11xzDa+88go//vgj69at44UXXqBFixbY7XbefvttTp8+XVUp06pVK+6//34+\n//xzfvvtN+bOncuoUaMAiIuLY/bs2QDOZZGh4u9NPIOKGKkxLBYL3tcPhyL3057e8gunt/xS6f4j\njFCX53l5dqL2J1a6XxEREU8SFBRE69aOFTo3bdpU6nHLli1j8ODB3HPPPc7J7+vWrePtt9/mu+++\nczm2devW3HPPPc5iIisryzk3paKOHz/OvHnzeOmll1xGWAICArjyyit56623uO46xy3nu3btAqBe\nvXq0adOmQu9NPIuKGKlRrI0aEnDdtcXiMXM+JictrVJ9R3Qsvttu5D4VMSIiUvcMHToUcKzktW/f\nvmKvnzt3jjlz5nDkyBHsdjvBwcEAfPPNN3z00Ud89NFHLrellaRBgwbO7635i/T8VZvC0tLSmDFj\nBosWLeLnn38u87lGjnTcjlje91bRPMU9VMRIjeN/+WUEhYe7xLKTk4n/7H8r1W/zJkG0CAlyiW03\nE7DbtdSyiIjULWPHjuWiiy4iMzOTe++9l2+//ZacHMe8UdM0efDBB4mPj8fb25tHH33U2e6OO+4A\nICoqimeffZaj+Vsk2O12du3axbPPPgtAhw4d6NKli7NdQZGRkJDAiRMnypRj+/bt6devHwBTpkzh\n22+/dS6zXFCIrFvnWNn0xhtvdLa75557CAsLK/d7q2ie4h6a2C81jsXLi/aPPsTOp56BQr8JObF2\nHSEDr6RB1y7naX1+EUYox07FOp8nJNk4fiqNFk3rVSpnERERTxIcHMz777/P448/ztGjR3n88cfx\n8fHBx8cHW/5KoV5eXkybNo1LLrnE2a5///7cf//9zJ07l5UrV7Jy5UoCAwPJyclxFhhNmjThnXfe\nwWKxONv16tULi8VCeno6gwYNIjAwkAULFtCp0/mXnZ4+fTp33303CQkJPP7441itVurVq+eyothd\nd93F8OHDnc/r16/PRx99xIMPPliu91aZPKX6aSRGaqR67doSNvqGYvGYWbPJy674ZPzeRebFgGM0\nRkREpK4JDw9n5cqVPPXUU/To0QN/f3+ys7Np1qwZI0eOZMmSJdx8883F2j399NN89NFHDB48mNDQ\nULKzs/Hx8aFTp048/PDDrFmzxmXzSYBu3brx6quv0rZtW7y8vPD19eXkyZN/mWPr1q1ZuXIlkyZN\nonPnzvj7+5Oenk5oaCjXXXcdc+fO5R//+Eexdu3bt6/Qe6tonlL9LLqVRoratm2bHaBPnz7Vet7o\n6GhsNhuBgYF07tyZ3MxMdjz+/8goMpzb6vZbufiuOyp0DltGNne9uIbcvD//3l/SpTkv3ndppXL3\ndEWvvVQvXX/30bWvPnFxcc4J1wDp6enk5eVhtVoJCAhwX2J1kK69+9T2a1/05/yvbNu2DYA+ffpY\n/uLQYjQSIzWWl58f4Y9MKhY/suxLbIcOVajPQH8fOrd13XNmV0wi2TmawCciIiLiKVTESI3WsEd3\nQgdf4xKz5+Rw4P0PsRdabrE8Ijq63lKWnpnL3vikCucoIiIiItVLRYzUeG3uHY9PoaUTAc6a+zix\n9tsK9VfSvJhIzYsRERER8RgqYqTG8wkOpu0D9xWLx322gMzEU+Xur11YA+oH+brEVMSIiIiIeA4V\nMeIRQgZcTqO+rgsN5GVkEDPno3Lv82K1WuhVZOPLmKMppJzLrHSeIiIiInLhqYgRj2CxWAif9ABW\nf3+XePJv2zi9aXO5+ys6L8Zuhx37EiuVo4iIiIhUDxUx4jH8mjal9bixxeIHP/oP2WfPlquvCKNp\nsZj2ixERERHxDCpixKNcNHwo9Tq6bqCVnZJC3CeflaufJg0CaN082CW2Y19CuW9NExEREZHqpyJG\nPIrFy4v2jz6MxcvLJZ7w/XrORO0qV18RRVYpS0rNJP5E+UZ0RESkbPRLIpHarzp/zlXEiMcJan0x\nYTffVCweM2s2uZlln5xftIgBrVImInIhqZARqb3sdjsWi6XazqciRjxSq1tvJiCshUss4/gJDi9e\nWuY+urZrgq+364+A5sWIiFwYgYGB2Gw2d6chIheIzWYjICCg2s6nIkY8ktXXl/BHHioWP/rlCtJi\n48rUh5+PF13bNXGJ7T54mszs3KpIUURECqlfvz6nT5/WaIxILWS32zl9+jT169evtnOqiBGP1aBr\nF5oNHeIazMvjwPuzsOeWrRDp3cn1lrLsnDx2x5yuqhRFRCRfQEAAwcHBHD58mLS0NBUzIrWA3W4n\nLS2Nw4cPExwcXK0jMd7VdiaRC6DN+HEk/fo72cnJzti5AzEcW7WasBtH/WV7x34xu11ikfsSihU3\nIiJSeY0aNcLf35/U1FROnTqF3W7HarUSGBjo7tTqFJvNRl5enq69G9Sma18wByYgIICmTZtWawED\nKmLEw3nXCyJ84v3sff1Nl/ihBYtoctml+Dc7fzFycfNgGtf3Jyk1wxnbbiZw3wXJVkREAgICCAgI\nICkpCZvNRmBgIG3atHF3WnVKdHQ0mZmZuvZuoGtfdXQ7mXi8Jv0vo/Fll7rE8jIziflwzl/ermCx\nWIptfHnoxFlOp6RXeZ4iIiIiUjVUxEit0O7B+/EqMix7JnIHiT9t+Mu2vbXUsoiIiIhHUREjtYJf\nk8a0Hn93sXjsf+aTnZp63rY9OzSl6LLmkWZiVaYnIiIiIlVIRYzUGs2HDqF+l84usZzUVGL/88l5\n2zWo50d4y4Yusch9ieTmaeUcERERkZpIRYzUGharlfBHJmHxdl2vIvG/P5EcueO8bSM6us6LOWvL\nIubImSrPUUREREQqT0WM1CqBLVvS6rZbisVjZs0hNyOjhBYOJc6L2ad5MSIiIiI1kYoYqXXCxowm\n8OJWLrHMhAQOLVpcahujdWMC/LxcYpoXIyIiIlIzqYiRWsfq40P4Iw9RdLb+sZWrOLv/QIltfLyt\n9GjvekvZ3rgkbBnZFyxPEREREakYFTFSK9XvZHDRiGGuwbw8Yj6YTV5OToltis6Lyc2zE3Xg1IVK\nUUREREQqSEWM1FoX3z0W3yZNXGJpsbEcW7mqxOMjOmm/GBERERFPoCJGai3vwADCH3qwWPzwosWk\nHz9eLH5RkyCaNXbdMFPzYkRERERqHhUxUqs17teXJldc7hLLy8oiZtYc7HbXfWAsFkuxVcqOn07j\n+Km0C56niIiIiJSdihip9do9eB/e9eq5xFKidpHww4/Fjo0wmhaLaallERERkZpFRYzUer4NG9Lm\n3vHF4nHzPyXrjOuGlj3aN8VqdV3VTPNiRERERGoWFTFSJ4QOvoYG3bu5xHLOnSN27jyXWFCAD8bF\njVxiO/efIic374LnKCIiIiJloyJG6gSLxUL4wxOx+vq6xE9t2ETS79tcYr2LrFKWnpmDGZ98wXMU\nERERkbJRESN1RkCLFrS6/dZi8ZgPPyLHlu58XnS/GNAtZSIiIiI1iYoYqVNajL6BoLZtXGJZp05x\n6H8XOp+3b9WIegE+Lsdocr+IiIhIzaEiRuoUq7c34Y88BFbXv/rHV6/hrLkPAC+rhZ5FRmP2Hz5D\nalpWteUpIiIiIqVTESN1TnCH9rQYOcI1aLdz4IMPycvOBii2X4zdDjv3a+NLERERkZpARYzUSReP\nvRO/UNdCxRZ/iKNfrgAgomNosTaaFyMiIiJSM6iIkTrJy9+f8IceLBY/vHgptiNHaNoogFbNXDfI\njDQTsNvt1ZWiiIiIiJRCRYzUWY16R9D06oEuMXtODjEfzMael1dsNOZUSgaHT56tzhRFREREpAQq\nYqROa/u3CXgHB7vEUvdEc/K774kwit9StuWP49WVmoiIiIiUQkWM1Gk+DRrQ9r4JxeJxn35Ox4YW\nvL1cf0SWrT/A6ZT0YseLiIiISPVRESN1XtOrr6Jhr54usdw0G8c+/YQrerRwiadn5jBv5e7qTE9E\nREREilARI3WexWIh/OGJWP38XOKnt/zCmOZp+Pl6ucR/3nGUnfu03LKIiIiIu6iIEQH8mzXj4rF3\nFIuf+t/PuGtg62LxD5dHkZ2TWx2piYiIiEgRKmJE8rUYeT1B4eEusezkZLof3ESrZq6T/48mnuPL\n/8ZUZ3oiIiIikk9FjEg+i5cX7R99CKyuPxYJ677jgV6BxY5f/P0+TibZqis9EREREcmnIkakkHrt\n2hI2+oZicfuKhQzq1dwllpWdy8df7aqu1EREREQkn4oYkSJa3XEb/s1dC5b0I0e5Pmc/Qf7eLvFf\ndp/gF+0dIyIiIlKtVMSIFOHl50f4I5OKxU+v+pp7+jYsFv/oq11kZOVUR2oiIiIigooYqSHsdjsH\nzsYTmbKHpMwz7k6Hhj26Ezr4GpeYPSeHZj8speNFrvNjEpLTWfrD/upMT0RERKROUxEjNcKyPav5\nPHYF6xI38/GBJRxLPeHulGhz73h8GjRwiaUfPsxdeXuwWFyPXf7jfo4knK3G7ERERETqLhUxUiN8\nF7PB+b0tN4MFUV+5MRsHn+Bgwh+eWCyeselnbrso3SWWk2tn9vIo7HZ7daUnIiIiUmd5//Uhnssw\njNuAR4AIHO81FlgKvGmaZloF+vMD/gcYC3QAMoHdwFzgE9M0S/0EaxjGzcAkoA9QD0gENgDvmKb5\nSyltugNRZUitrWmacWV/JzVP44CGJKenOJ//dnQnh1OO0apBCzdmBU0uu5Tmw4dxYs1al3j7batp\ncSnWWkUAACAASURBVPFIjmX7OWM7959i445jXBkRVt1pioiIiNQptXYkxjCMN4HFwEDAH8gFugD/\nALYbhtGsnP35A98BrwPd8/vzBy4H5gFfGIZR4vU0DOMj4AvgWqARjuKnBXA7sNkwjMdKOW2v/Mcs\n4OR5vjx+6/hBbS8vFlsRvc4NmRTX5t7xBLa+2CWWm5bG2LO/YrHnucTnrtyFLSO7OtMTERERqXNq\nZRFjGMZYYDKQh2PkJNg0zWBgEHAI6AgsKGe37wNX4hhBGQ4E5389gKMoGQO8UEIu9+cfA/Ay0CA/\nl3bAKhx/Bu8ZhnFJCecsKGKWmKbZ/Dxfh8v5Xmqcq9v2p56364T5jYd+I+HcKTdl9CcvPz+Myf8P\nq6+va/xILKPz9rnEklIzWfDt3upMT0RERKTOqXVFjGEYXsBL+U/fME3zPdM0MwFM0/wvMALHyMVg\nwzCuKbGT4n22AybkPx1nmuZa0zTtpmlmm6Y5F0ehBPCMYRhF1+B9JP9xnmmaL5mmmZqfSyxwC3AQ\nsAD3l3DqgiImsix5ejJfLx8ub9rbJZZnz2Ol+Z2bMnIVeHEr2j7wt2JxI+43WmecdImt2nCQ2GMp\nxY4VERERkapR64oYHLdstQfswDtFXzRNczewMv/p+DL2+QDgBew2TfPbEl6fi2OEJhgYXeS1zvmP\nW0vIJbNQvFUJ/fbMf9xRxjw9Wt/G3fC3+rnEfjy4mTPpNaMgaDbkWppc0d81aLdzS9JmAnIznKE8\nO3y4LIq8PE3yFxEREbkQamMRMyj/Mco0zYRSjvk+/3FYOfv8vqQXTdPMAf5bSp/J+Y9FPv2CYRje\nOBYdADhQ5LVWQJP8p3WiiPHz8qV3gy4usey8HFbtW++mjFxZLBbaP/wQfqFNXeI+trOMTtoKhVYm\ni45L4offDlV3iiIiIiJ1Qm0sYgo+BUef55iCnQmbGYbR5DzHFSgYTSlLn12LxL/Jf5xgGMYLhmHU\nAzD+P3t3Hd7WdT5w/CuwLZmZwg6cOGkaZmjapCkzrszcriultNLWlbvt167M68qUctpQ43DD5NyG\n48TMKFuW9PtDMshyDIll2fL7eR4/ss4999xXN7ajV4eU6gV86Gq7BPhXk/PqhpIdAIYopd5VSqUr\npfYppRYrpW53rZbmV8ZFDidA575o3q+7llJe0+7F5LzCGBrCkLv/Anr3X51+JQcYW+I+F+bd77dT\nWlHTmeEJIYQQQvQI/pjE1K3Je7CFOocafZ/UUmOupCO8HW02be8BYAvOeS9PAqVKqRJXWxfh7MGZ\noWna7ibn1SUxCcBKnHNyhgL9gJnA/wG/u3ps/IbZYGJczDFuZVW1Fubv/M1HEXkKH6roe8nFHuWz\nCtYTX11Y/7yssoYPftzemaEJIYQQQvQI/rhPTF3C0dJH9413Kgw/bC3P421p0609TdPylFKTcC73\nfDrOZKZxnQAgpJn26pKYIOAT4FmcPUFRwAU4E6IRwLdKqYmapnX4R/7p6S11PHW8qirnLRwTNow1\nBZuxNVq++Lv0XxlEbwL1AZ0a0+E4hg3FODCF2t176sv0DhtnZS/lvT6nYXXF+cuq/QyKt9Mv3uyr\nUNuk7t5XVVV1+r+7kPvvS3LvfUfuve/Ivfcdufcdxx+TmLrX1NKb+upm6rfWXlvbdGvPtbLZtzh7\nUR6nYRGA4cATwGnAIqXU6ZqmLWx0qgYsA5ZqmvZQo/Is4P+UUhuBxTiTnWuA11p5He1WWVnZ0U22\nSaghmOFhg9lcqjXEYrOwKnsD4yKPaeHMzmU48zRqX38LKhty4hhrKSfmreHHhKmAc3WJL9OyueGk\nePR6nY8ibTuHw+Gzf3ch99+X5N77jtx735F77zty74+ePyYxde8oA1uo03guSWs9GI17bdrSZn17\nSqlg4DegN3CTpmmvN6q/Xil1JvAVcBbwllJqsGuRADRN89hzpjFN05YqpX4AzgAuxAtJTHBwcOuV\nOlBVVRUOhwOdTsfMpIlsKf0DBw2T5X8v2cqUxLEY9YZOjeuwgoMJuPB8yt/7r1vxsWW72RucTHrY\nAACyi6xs2l/D1OFRvoiyTRrfe7O5a/ca+SO5/74j99535N77jtx735F77+5oEjl/TGLKXI8t/WQ0\nfnde2sb22tpm4/auxZnA7AbeaHqCpml2pdTdOJOY/sAsoLklnA9nKc4kZlhrFY9Eampq65U6UHp6\nOpWVlZjNZsakjmFt5TZWZKyrP15qLSfPXMoJKVM6Na4Wpaayp6CIrO++dys+OXcVmaZYSgLCAPh1\nQxHnzRlDVLjJF1G2qvG97+x/dyH335fk3vuO3HvfkXvvO3Lv3a1bt671SofhjxP763av79VCncbH\nslpqTNM0C1C3bXxb2sxsVDbR9bhS07RmNw1xTeivi2FIS7E0o24DFb9M5c9O9VwBe176fOx2ezO1\nfaf/lZcRkjLArSzIYeWs7DT0rnk9lZZa3vlumy/CE0IIIYTwO/6YxNS9U2wpIRjseszSNK2ohXpH\n0mbj5ahiXY+t3ee6IWgmAKVUolLqNqXUE0qp5BbOS3A9ZrfSfrfUP6o3Y5Lc58Bkleey+tAGH0XU\nPH1AAOqeu9Cb3HtZkqvzmVHQEOuS9QfZvCuvs8MTQgghhPA7/pjELHY9jlZKHW4SwmzXY1vX7a1r\nc1ZzB12bVh7XTJt1SzIfdvyTUioOqFsmuW6vmWDgJeCvOFc0O5w5rscVLdTp1prrjfl6+884HM12\nbPmMuVcyA2+8zqN8UvE2+lc2dM699tVmrLVdqydJCCGEEKK78cckJg3nni1G4L6mB5VSI3DOIwF4\ntY1tfopzoakxSqmTmjl+AxCHc3jXx43K6yZK9FdKXXmYth/C+e9QDCwA0DRtDw29P39WSnlMpFBK\nnQFMdz19s42vo9sZGjeQ1LjBbmX7ig+yMbvrDc2KO34mccfN8Cg/PWcZwbXO9SEycsqZt7TplkBC\nCCGEEKI9/C6J0TTNjjMxAJirlHpQKWUGUErNBH4ADMBCTdOW1p2nlOqllNrh+rqtSZs7gPddTz9W\nSp2jlNIppYxKqeuBF13Hntc0rfHE/nk4l0kGeEMpdZdSKsx1vTil1D+BP7uO/1XTtPJG59a9hmE4\n94JRrvPMSqkbcSZWAO9qmua3PTEA56R65o3fpLdn/YPOodPpSLnpBkyJiW7loTYLp+cuB1fv0Se/\nauQWybKKQgghhBBHyu+SGABN094HXse5seSTQIlSqhTnsLA+OPdguajJaQGAcn3F4ulOYA3OzSa/\nAspdX2/gXF75M9e1GsfhAM4Ffse5PPMLrlgKgRxXmwDPaJr2cpNz5+HsSbIDJwI7lFJlOHt7XsM5\nmf9r4KY23pZua2TiMAZE9nErS8/bxY68XT6K6PCMwWaG3PMXdAb3ZaBTKjOZUOycLlVdY+OteVt9\nEZ4QQgghhF/wyyQGQNO0m3DubL8YqMSZaOwEngEmappW0M72SoAZwFxgk6vYDqwFbgH+1NwKZJqm\n5QHTcCYbS3EOGwvFORn/c2CGpmn3H+aaz+GcT/MJzlXPgnAmMb8AF2uadq6maa3tc9Pt6XQ6zhnW\nzNyYLtgbAxA2eBD9Lr/Uo/y4gvUkWpwL3a3cksXv2/1yPQYhhBBCCK/zx31i6mma9gXwRRvr7sPZ\nc9NSnWrgWddXe+Kowdkz9HprdZs5dzXwp/ae528m9BpFUlg8WWW59WUbsrayryiD/lF9WjjTN5LP\nOoPiTZsp3rCxvsyAg7Ny0ni3z2nU6AN5/estHDs4jqCALrJ5pxBCCCFEN+G1nhil1PC6uShCHC29\nXs/ZQz3nxnTV3hidXs/gO28nIDLSrTzKWsac3NXgcJBTWMkXC3cepgUhhBBCCHE43hxO9gaQrZS6\ny4vXED3I9H4TiDG7r5q9KmM9mWU5PoqoZYGRkQy+83aP8mPK93JM2R4Avli0k8y8co86QgghhBDi\n8LyZxKTinPtxyIvXED2I0WDkjKGz3cocOPg2/RcfRdS6qNGj6HXu2R7lc/JWE1VTSq3Nzmtfbe5y\n+94IIYQQQnRl3kxiAl2PGV68huhhZqVMIywo1K3st/2rKags8lFEret76Z8IHey+102go5azcpZi\ncNjY8EceyzdnHuZsIYQQQgjRlDeTmEWux/O8eA3RwwQZAzltyAluZTa7je+0BT6KqHV6oxF1z50Y\nzO5TxBKrC5mZvx6At+ZtpdJi9UV4QgghhBDdjjeTmBuBXcCdSqnXlFJjlFJ+vRqa6BwnDToOs9Hk\nVrZw9zJKq7vu3BJTYiIDb7nRo3x8SToDKw5SUGLh4180H0QmhBBCCNH9eDOpeABYBQwErnd9WZVS\n+UAZ0NIkAIemacO9GJvoxkICg5kzaAbzdjTMham21fDTH4u5aMQZPoysZXEzplO8cTO5Cxe5lZ+W\ns5x3+p7Bt2l7mDW+L/2Twn0UoRBCCCFE9+DNnpjbgMtc19C5vgKBZEABQ1v5EuKwTlOzCDAEuJX9\nvHMxldYqH0XUNik3XIu5V7JbWbC9mjNyluGw2Xj1y00yyV8IIYQQohXe7IlZSsu9LUIcsUhTOCcM\nmML8Xb/Vl1VYq1iwO40zh87xYWQtM5hMDLnnLjbfez+O2tr68n5V2Uwq2sbKvSNYtDaDWeP7+jBK\nIYQQQoiuzWtJjKZpM73VthAAZww9kV93p2F32OvLvtMWcvLg4wls0kvTlYSmDKD/VVew96133Mqn\nF27kgDmBd7/fxsThiYQGBx6mBSGEEEKIns2bw8mE8Kr4kBim9RvvVlZiKWXJ3hU+iqjtkk4/lajx\n49zK9Dg4MycNS0k5H/yU7qPIhBBCCCG6vk5NYpRSAUqpIUqpiUqpCUqpQUqprvuRuejyzh56kkfZ\nvB2/YrPbfBBN2+l0OgbfcSuB0dFu5RG1FZyct5KfV+zljwNdd+8bIYQQQghf6pQkRil1slLqZ6AY\nSAdWACsBDShVSi1USp3ZGbEI/9I7IokJvUa5leVVFLD8wFofRdR2AeHhDP7LHaDTuZWnlu/n2JKd\nvPrlJmx2mVYmhBBCCNGUV5MYV8/L+8APwImAmYaVyuq+goCZwNdKqfdlLxnRXmenNtMbkz7fba5M\nVxV57Ah6X+C5H+zs/N8p2rOf+av2dX5QQgghhBBdnLd7Yt4ELseZrFQBHwF3ApcCVwB3A5+6julw\nLsn8Ly/HJPzMoJj+jEhwX5U7ozSLdZlbfBRR+/S9+ELCUt3jD3DYOCt7Kf/7bjNFZRYfRSaEEEII\n0TV5LYlRSh2PM1FxAPOB/pqmXaZp2v9pmvaxpmkfapr2T03T/gSkAL/gTGRuVkpN8FZcwj+dk3qy\nR9nX23/uFnuu6AwGhtz1ZwwhIW7l8TXFTDy0mve+3+6jyIQQQgghuiZv9sTc4HrcBpypaVr+4Spq\nmpYLnAlsdRXd7MW4hB8aHj+EwdH93cp2Fe5jW67mm4DayRQfz6DbPH/sx5ZoHFyynK27D/vrI4QQ\nQgjR43gziZmKsxfmRU3TrK1V1jStBngBZ2/MZC/GJfyQTqfjnGHN9Mak/+yDaI5M7JTJJJzkuVHn\nKbkreP+j5dTauv4cHyGEEEKIzuDNJCbe9bitHefUjZvp08GxiB5gTPII+kQku5VtydHYVbDPNwEd\ngQHXXoW5j/uPv9lew9itP/Ptkp2+CUoIIYQQoovxZhJT4XqMacc5dXWrOjgW0QPodfpm943pTr0x\nhqAg1L13gdF9+6Q+llz2fvQZ+cXyqyGEEEII4c0kpm5+y0XtOKeurmxXLo7IlL5jiQ9xz5t/P7SJ\njJJMH0XUfiH9+pJy3dUe5RPyN/H5Wz/6ICIhhBBCiK7Fm0nMlzjnt1yulLqstcpKqUtoWM3sSy/G\nJfyYQW/gzKGe80rmpf/ig2iOXOLJcwgbP96tTI+D/iu+Ye263T6KSgghhBCia/BmEvMmsMd1jfeV\nUp8opU5SSkXXVVBKRSml5iilPgH+izPp2Q+85sW4hJ+bOWAykaZwt7JlB34nt7z7rPCl0+kYdudt\n2MIi3crDbZXs/L9XqK6p9VFkQgghhBC+57UkRtO0KuBcIAdncnIB8COQp5SyKqWsQD7wk+uYzvX8\ndE3TZHc/ccQCDQGcrma7ldkddr7VfvVRREfGGBrKiPvvwo7Orbxv8T5+eelDH0UlhBBCCOF73uyJ\nQdO0zcAE4DOcw8R0ri+D66vuuR34AhilaZrs7CeO2okDpxMSGOxWtnjPCoqrSnwU0ZGJOmY4waec\n4VEenvYD+zbI1DEhhBBC9ExeTWIANE3L0DTtYpzLJl8GPIlzuNjrwFOusn6apl2oaVr3mX0tujRz\ngIlTBs90K7Paa/n+j0W+CegojLn+Mkrj+7mVGR12tOdfpLZKVisTQgghRM9j9FbDSqnbgWLgC03T\nqjRNywI+8tb1hGjqlMHH892OBVTbaurLft21lLNT5xAaGOLDyNpHZzAw/q/3sunOuzHZquvLQ8sL\nWf3cf5j6yD0+jE4IIYQQovN5syfmduA9nL0tQnS6sKBQZg+c7lZWVWth/s7ffBTRkYvtm4T97Es8\nD6xbyaHFSzs/ICGEEEIIH/JmEtPb9fiNF68hRIvOULMx6A1uZT/uXIyltvowZ3Rdsy47jV29R3qU\n7/7Pa5Tv3uODiIQQQgghfMObSUyR69HsxWsI0aLo4EiO6z/JraysupxFe5b7KKIjp9frmHLPzeQE\nRrmVG6zVbL7/IfJXrPRRZEIIIYQQncubScwrOFcee0wpFebF6wjRorOGzkGnc1+m+LsdC6i1db+9\nVgYPiKPk1Euo0blPZ3PU1KA98zwZn36Ow+HwUXRCCCGEEJ3DaxP7NU17UikVCtwH7FRKfQasBTKB\nMpxLLrd0/hpvxSZ6lqSweCb3HsOKjHX1ZQVVRSzdv4YTUqb4MLIjc8HF03lhw3ZO2L8EfZNfowMf\nfUJlRgaDbr8VQ1CQjyIUQgghhPAub65OVur61gHEA7e243QHXoxN9Dxnp57slsQAzEufz8z+k9Dr\nvb7SeIcKNQdwyo3n89HLOs7MSiPIYXU7np+2HEt2DkMfmEtQTLSPohRCCCGE8B5vvnsLdX3VXUPX\nzi8hOkz/qN6MSTrGrSyrPJfVhzb4KKKjM2F4Iidedir/7X0KxcZQj+PlO3ex+d65MuFfCCGEEH7J\nm70dV3uxbSHa7ezUk1mftdWt7OvtPzOp9xiPOTPdwWlTB1BYauH9+SbOyfqNvpYct+M1BYVsuf8h\nBt95B7FTJ/soSiGEEEKIjufNJOYjTdOsrVcTonMMjRtIatxg0vN21pftKz7IxuxtjG7SS9NdXHby\nUApLLHyyJoA5easZVbrL7bi9pgbt2eep/NNF9Lnogm6ZrAkhhBBCNOXN4WRfKqUWKqVO9+I1hGiX\nc1JP8ij7Jn2+DyLpGDqdjlsvGMmYYcn8HDeZBbHjsDczGjPj40/54/l/YqvufvvjCCGEEEI05c0k\nZgIwE+jvxWsI0S4jE4cxILKPW1l63i525O06zBldn9GgZ+7l4xjSL4q1kcP4IukELPoAj3r5y5az\n9cG/Ul1Q6IMohRBCCCE6jjeTmAjX41ovXkOIdtHpdJwz7GSP8q+7cW8MgCnIyCPXTiI5NoQ9Ib34\nb+9TKGpuwv+u3Wy+Zy5lO7tv0iaEEEII4c0kpm4G9VgvXkOIdpvQaxRJYfFuZRuytrKvKMNHEXWM\niNAgHr9hMpFhQRQERvJ+n1PZb07wqFdTWMjWB/9K/rLlPohSCCGEEOLoeTOJuROoBv6hlLpYKSUz\nikWXoNfrOXuo59yY7t4bA5AYE8Jj103CHGTEYjDxafJsNoYP9qhnr6lBe+5FDnz8KQ5Hi/vOCiGE\nEEJ0Od5cnSwBeBG4H/gf8KpSagOQCZQBLb1zcmia1p7NMYVol+n9JvDZ1u8pqCqqL1uVsZ7MshyS\nwzx7L7qTgb0jefCq8Tz+1ipqbQZ+jptEXmAks/LXom/ya5fxyWdUZhzEcdJsH0UrhBBCCNF+3kxi\nvsA9UQkHjmvH+ZLECK8xGoycMXQ27234vL7MgYNv03/hpgmX+zCyjjFqSDx/vngML/xvHeh0rItM\npTAgnLNylmKyu698XrB8BYZ9+zBecB4EB/soYiFaV1tZhSUri5rCQoL79cUUH9/6SUIIIfySN5MY\noJm1XoXoImalTOPL7T9RVl1eX/bb/tVccMzpxARH+TCyjjFzTG+KSi288902APa6Jvyfn7WYKGuZ\nW13boUxsb71L0JWXQWqqL8IVAnAOdbRk51CVmUlVZhaWzKz6761FDT2n6PUknjSHvpdeTEBYmO8C\nFkII4RNeS2I0TfPmfBshjlqQMZDThpzAJ1u+rS+z2W18py3gqtEX+DCyjnPOzEEUllr45rfdAM4J\n/71P4ZzspfSrynavXF5O6etvkWcOJm76VB9EK3oKh82GJTcPiys5qcrMdCUrWVTn5UFb5mnZ7WT/\n9DP5y5bR99JLSJwzG53B4P3ghRBCdAne7okRoks7adBxzEv/hapaS33Zwt3LOHfYKYQHeS5R3B1d\nffpwCkstLN1wCKB+wv+JeWsYXfqHe+XaWv54/kWqMjLoc/GF6PTyWYQ4Mg67nZrCokYJSl3PSiaW\nnFwctbUdcp3asnL2vPYGOfN/JeWGawkfJj2JQgjRExx1EqOUCnd9W6Zp2lEtc6SUSgbuwTmx/+6j\njU2I1oQEBjNn0Azm7filvqzaVsNPfyzmohFn+DCyjqPX67jz4tEUl1WzeVc+AHadnvlxE8kPjGB2\nwVp0TT75zvj0cyozDjL4ztsxBAX5ImzRDTgcDmpLSz16U6oyM7FkZWOvru60WCr27mXLAw8Td9wM\n+l15GUExMZ12bSGEEJ2vI3piigE7MAbY3FwFV6IzE0DTtG+bq+MSh3NpZgcgSYzoFKepWfy4czFW\nW8OE9593LuaMobMJDjD7MLKOE2A08NDVE7j/P8vYm1nqLHRN+C8OiuC8vDT0Ne5vOAtWrMSSk0Pq\ng/cTFCtvCHuy2srKJr0pDcmKraLCq9fWGQwEJSRg7pWEOSkJU3Iy1bm5ZH77fbO9OXm/LaVg9Rr6\nXHAeyWedgT4gwKvxCSGE8I2OGk7W2gT+AcA3OJMdGcImupRIUzgnDJjC/F2/1ZdVWKtYsDuNM4fO\n8WFkHSvYFMBj10/m3pfSyC2srC/fbU7m/d6ncEXBEgwlxW7nVOzew6Z75pL64FzChnjuNyP8h626\nGkt2jsfQr6rMLKzFxa03cDR0OoLiYjEnJ2NKSnImLMnJmJKTMMXHNzvXJWHObPa+/R5Fv6/1OGa3\nWNj/3/+Rs2AhA667huhxsueyEEL4m85OKGS1MtElnTH0RH7dnYbdYa8v+05byMmDjyfQ4D+f5EaH\nm3j8+knc99Iyyipr6stz9OG8nXQK10euRLd/n9s51qIitj70CINuv5W4GdM6OWLRkey1tVTn5nr0\nplgyM6nOL2jbhPqjEBAVWd+bYu6VjNmVsJgSE9EHBrarLXNSEsMefoCidevZ89Y7WDKzPOpYsrJJ\n/9s/iBo3lgHXXoU5ObmDXokQQghfk14RIYD4kBim9RvP0n2r68tKLKUs2buCOYPas71R19c7PoxH\nr5vIg6+uoMZqqy8vrA3g7ejjuXfQAYoWLnQ7x15Twx8v/JPKjAz6/ukimfDfhTnsdmoKCl29KY3n\nqWRRnZODw2ZrvZGjYAgJwZyc7ExOkpJc3ydjSkrE6IV9iKLGjmH0sSPI/O4HMj79HLvF4lGnaO06\nijduIvnM0+lz4fkYzP4xTFQIIXoySWKEcDl76EluSQzAvB2/MitlGga9fy3dqvpFM/eKcTz57hrs\n9oZP3/PLbLwVOZw7r+lHxnvvgd3udt7Bz76gqm7Cv8nUyVGLOg6HA2tJaZMlil1DwLKysdfUtN7I\nUdAHBWFOTsKUnOTqTakbBpaMMSwMna5zO931AQH0Pvds4o6bwf4PPiRvyW8edRy1tRz66hvyliyl\n35WXE3fc9E6PUwghRMeRJEYIl94RSUzoNYo1hzbWl+VVFLD8wFpm9J/ow8i8Y8KwRG47fyT/99lG\nt/KdGcW8HRLPHQ8/yM4X/ukxcbtg5SrnhP+HHpAJ/15WW15BVVZWs/NUbJWVrTdwFHRGI6aEeLeh\nX6ZkZ6ISGB3dJROAoJhohvzlDhJPnsOeN96iYs9ejzo1hYXs/Oe/yf55Pik3XOuDKIUQQnQESWKE\naOTs1JPckhiAeenzmdZvPHqd/w2hOnFiPwpLLXz48w638vU7cvkgtA83PvsP0p982mO+QcWevWy6\n5z5SH5hLmBrSmSH7DYfNhs1iwVZloTYzC1tWFlWlZez8dVH9MDBrSYl3g9DpCIqLw5zs3ptiSkrC\nFB/XbTePDE8dysjnnyFnwUL2//cjasvKPOqUpe9g0133ETRhHEyfCl4Y6iaEEMJ7JIkRopFBMf0Z\nkTCULTkNb+ozSrNYl7mF8b1G+jAy77lw9hB27cti1Q73N8yL1mYQE2HikueeZsczz1OyeYvbcWtR\nMVseeoTBt99K3HHTOzPkTudwOHBYrdiqqlyJRxW2Kovbc7srIWnumHsd5/HmhnxZgSovxB8QFeXR\nm2JOSsKUmNDuCfXdhc5gIPGkOcROncKBjz4h66f5HsMjcTioXv07bNqC4aTZOIYM6baJmxBC9DSS\nxAjRxDmpJ7slMQBfb/+ZccnHdskhNEdLp9Nx9pR4isur2XHQfVL05wt3Eh1u4tRHH2bvW++S/dPP\nbscdVit/vPgv54T/Sy7ukhP+7bW1WIuKqSkqwlpS0mwiUp+AWKoOm4h4vAHuYoyhoc4EpX4ifd3K\nX0kYg3vuRHZjaCgpN1xHwpzZ7HnzHUq3bvOsZLFQOe97Nm7aQsr11xJxzPDOD1QIIUS7SBIjRBPD\n44cwOLo/Owv31ZftKtzHtlyNYxKG+i4wL9LrdZw3JYb//VbAvhz3ROaNb7YQFWZi6k3XE9y3Qh6B\n4QAAIABJREFUD3vefNtzwv/nX1KZcZAhf7mj0yb826qrsRYVUVNUTE1hkTNJKSqq/76msJCaomJq\nS0s7JZ7OoDeZGnpTmiQsAeFhvg6vSwvp359j/v44BctXsPed96kpKPCoU7lvP1sfeoTY6VPpf+UV\nBMXF+iBSIYQQbSFJjBBN6HQ6zhl2Ms8ue82t/Ov0n/02iQEIMOq46sRevP1rLhk5DXMIHA544aN1\nRIQGcsypJ2NOTmLHsy94TPgvXLWaLfc/TOpD9x/xmz+Hw4GtqoqaQldCUvdVWORRZqvw7sR2X9EZ\njZgSExuWKK4fBpZMYHSUX/YGdhadTkfstKlEjRvLwS+/5tDX83BYrR718tOWU7hmLb3PP5deZ5/p\nt0PuhBCiO+vIJMa7u6QJ0YnGJI+gT0QyGSWZ9WVbcjS25+5kWLz/7lwfbDLw+PWTufelpRSUNPTI\nWGvt/P2d1Tx923T6jxrJyOeeZvvfn8KSmel2fsXevWy6Zy6pD7pP+Hc4HNSWlbv3lhQW1ick1ka9\nKfbq6k57vV6j12MwmzCYTBjM5vpHfd1zc92j81hucTFWs5ng3skMnzRJ5mV4mcFkot+lfyJh1vFs\n/vfLWLene9SxV1dz4H8fk7twEf2vuZroCeMkgRRCiC6kI5OYjUqplo47AJRS3t1pTYgOoNfpOXvo\nSby0+l238n+ufIunZs8lNiTaR5F5X1yUmcevn8zcl9OosNTWl1dYannszZU8d/sM4nolM/K5p9jx\n7AuUbNrsdr612DnhP2r0KGqKi+uHfDlqa5teqsvQBQQ0JBxmEwZTXaLRJPkwNUo+zIdPUPSBge16\nw1uano69shJDcLAkMJ3IlJhI2BWXUrZ5K7ZfF2DPy/eoY8nOYcc/niZyzGgGXHs1wb17+SBSIYQQ\nTXVkEiMfUQm/MqXvWD7b+h05FQ1vbEospTyd9gpPzLqb4AD/nSzdLymch6+ZyCNvrMRa2zD/paDE\nwqNvruCZ26YTFhrK8EcfZu/b75L1w09u5zusVgrX/N7ZYQPOjRgDo6IIjI4iICqSwOho5/Mo53Nj\ncLBbEqI3mdAbZWRtT2YYlELosNuI2L2XjE8+cy7k0ETx+g1s3LSZpDNOo89FF2CUJZmFEMKnOuJ/\n7qXIUDLhhwx6AzeMv5Qnf3sJu6PhjfyBkkP8e+Xb3DftZgx6//3U/JiBsdx96Vie+eB3HI1+wzNy\nyvnb26v5201TCAowkHLDdZj79GHPG295dQUvQ0hIfXJSl5DUfe987jxmMJtl2I9oN53RSK+zzyRu\nxnT2//dDchct8ajjsNnI/OZb8n5bSv8rLyfuuBldckU+IYToCY46idE0bWYHxCFElzQiYSjXjrmY\nN9d95Fa+IWsb72/4gmvGXuSjyDrH1GOTueHsEbz+tfseMen7Cnn+w7Xcf+UEDHodSaechLlXMtoz\nz1NbXt6uawREhDsTkLqv6IaEpP55ZCSGoKCOfGlCNCswOorBf76dxJNPYs8bb1G+a7dHHWtRMTv/\n9RLZP/1Cyg3XEjpooA8iFUKInk3GUAjRihMHTSerLIfv/1joVv7zriUkhcVzypDjfRRZ5zh9WgqF\npRY+X7jTrXzV1mxe/2ozN5/n3D8n8tgRHPvcU+x+9Q3K/tiJMTjYMyGJcn8eEBkhQ7lElxSmhnDs\nc0+Tu3AR+//7P6wlnkt1l2kam+6ZS8KJs+h32SUERET4IFIhhOiZ5N2DEG1w2chzyS7PY22m+yT2\n9zZ+TkJoLGOSR/goss5x+SmpFJRYWLQ2w638p5X7iIkwcdGJzkU9zMnJHPO3xzo/QCG8QKfXk3Di\nbGImT+bAJ5865341HTLpcJDzywLyl6+k7yUXk3TKSbI4gxBCdAJJYoRoA71ezx2TruaRRS+wr/hg\nfbnD4eBfK9/mb7PuoV9kbx9G6F06nY7bLxxFSXk163bkuh378OcdRIWbmDOxn4+iE8K7jKEhpFx3\nDYlzZrPnzXco2bzFo46tooK9b75NxiefERQbS2B0ZMMwybrFJeoWm4iKQh8Q4INX0jkcdjvW0rKG\nfZ2a24y2qIia4hIIC8WhFMXVNYQPH+bX90UI0bEkiRGijUwBJuZOv4UHFzxDUVVJfbmltpqn017h\nH7PnEmX23+EkRoOeuVeM56FXl7Mzo9jt2H++2ERkWBAThiX6KDohvC+4b1+GP/EoBStXse+d96hu\nZknm2rIyasvKqNjbclvGsNCG4ZVuC1ZEERgdWT/80mDuOqsgOmw2aoqL3TeeLWx4rCuzFpfgsLVx\nN4XqaqrzV7Bt+QoMZjORo44latxYosaOITAqyrsvSAjRrUkSI0Q7xARHMXfaLTy66AWqbTX15QWV\nRTyb9iqPnXAXQUb/3d3bHGTk0esmce9LaWTlV9SX2+0OnvlgLU/ePIWh/fx3Dx0hdDodsVMmEzV2\nDIe++oZDX32Dvaam9RObqC0rp7asHA5ktFhPbzK5zSlrbp5ZYHQUhpCQI16Vz15Tc5gek2K359bS\nUtyWKuxgtqoqClaupmDlagBCBw10JjTjxhI6MEVWghNCuJEkRoh2Sonuyx2Tr+H5Za/jaLS6+O6i\n/by0+l3umnI9ep3//mcbERrEEzdM5t7/S6O4vLq+vMZq44m3VvPs7dPoHR/mwwiF8D5DUBB9/3QR\n8Sccz75336t/493R7BYLlswsLJlZLdbTBQQ0Smoi3Xp4AiIjsVVWNSQkTXpQbBUVLbbtK+W7dlO+\nazcZn3xGQGQkUWNGEzV+LJGjRso+PUIISWKEOBLje43k8lHn8sHGL93K1xzcyMeb53HpyHN8FFnn\nSIwJ4dHrJ/HgK8uoqm4YNlJWWcOjb6zkuTtmEB1u8mGEQnQOU0I8Q++/j9Lt6RSsWk11Xr5b78WR\n9NIcCYfVSnVuLtW5ua1X9hW9noCI8Ppkq6LWSs2efVBW1uqp1uJichctJnfRYnRGI+HDUokaN4bo\nceMw90r2fuxCiC5HkhghjtBpQ2aRWZbLgt1pbuXzdvxCUlg8J6RM9VFknWNQ70geuHICj7+1Cpu9\noUcqt6iKx95cydO3TiPYJJN0Rc8QPiyV8GGpbmUOhwNbZWWjOSPFru8Lm8wjKcZWWemjyI+ezmgk\nMCryMPN7Gi2vHhHutnJbeno6FRUVBJWUEllQSNHa9ZT98UerQ9YctbWUbN5CyeYt7HvnfUxJiUSN\nG0v0uLGyOIAQPYgkMUIcIZ1OxzVjLiK3PJ/NOelux95c+xHxITEckzDUR9F1jtEqnjsvHs0LH613\nK9+bWcqT767hsesnEWCU5WZFz6TT6TCGhGAMCSG4d8urF9qqq5udMG9tMvSrtg29Fh1FHxTksaqa\n27wc1/fGsLAjno+j0+kwJifRZ9YJ9LnwfKwlJRSt30DR2vUUbdjYpqFulqxssr77gazvfkBvMhE5\naiTR48YQNXYsgdGyOIAQ/kqSGCGOglFv4C9TruPhhc9xqDS7vtzmsPPC8jd4cvZ9JIf794pdM8f2\nobC0mne/3+ZWvnlXPk+8vZqHrpqAKUj+1AjREkNQEOakRMxJLf+9sFutWF0rhNUUFXn28tQ9Lynx\n3NOm7lohwc1uPut8HulcEjrauTLakSYnRyogIoL442cSf/xMHDYbpTt2ULR2PYW/r6Uq42Cr59st\nFgpXraZwlXOOUsjAFKLGjiF6/DhCBw2UxQGE8CN+/c5CKXUhcCswGudr3Qt8DjynaVq7ZzIqpYKA\nO4FLgcFANbANeAt4T9O0w/aBK6XOA24CxgKhQB6QBvxT07TDzghVSkUA9wPnAv2AcmAD8B9N075p\n72sQHS8kMJgHpt/KgwueobS6vL68wlrFU2mv8OTs+wgPCvVhhN53zsyBFJRW8e3SPW7lG//I49E3\nV/LItZMIMcsQDyGOlj4ggKC4OILi4lqs57DZsJaUOntzSkowmM31Q74MQUGdFO3R0RkMRAwfTsTw\n4fS/8nIsObkUrV1H0bp1FG/eisNqbbWNit17qNi9h4OffUFARARRY0cTNc61OEBISCe8CiGEt/jt\nRxJKqeeAT4EZgAmwAcOAR4H1SqmEdrZnAn4FngZGuNozAVOAd4AvlFLN3k+l1BvAF8BsIApn8pMM\nXASsUErdfpjzYoDVOJOYIUANEOFq52ul1L/a8xqE98SHxnLvtJsI0Lt/LpBTnsfzy17Damv9P9vu\nTKfTce0ZxzB9VC+PY9v3FvLwa8spreicCc5CCGcCEBgdRejAFKLGjCY8dSimxMRuk8A0x5QQT9Jp\npzDskYeZ+OF7pD50PwknzSEwJqZN51tLSshdtATt2RdYc/nVbH34UQ598y2VBw/i8OLS0UII7/DL\nJEYpdSlwD2DH2XMSpmlaGHA8cABnQvC/djb7MjAdZw/KKUCY6+t6nEnJucCDzcRynasOwONAhCuW\nFOB7nP8G/1ZKTWjmmp8ACtgNTNY0LRxnEvMg4AD+rJS6rJ2vQ3iJih3IzROu8Cjfkb+b137/0O//\nk9TrdfzlT2OYOtJzpaBdB0t44JVlFJZafBCZEMLfGEwmoieMZ9AtNzLu7dcZ9a8X6HvZJYQNVdCG\nIWMOm42SLVvZ9+77bLj1z6y/6Vb2vPk2RRs2Ym9DD48Qwvf8bjiZUsoAPOZ6+qymaf+uO6Zp2hKl\n1KnAJmCWUuoETdMWtaHNFOAq19PLNU2b7/reCryllDICrwL3KaVe1jSt8Xbmt7oe39E0rS4uNE3b\nq5Q6H9iOM6G5DljT6JrH4exxsQNnaZq2zXVeJfCUa5jZXOBvSqmPNE1rfvCz6FTT+o0nuzyPz7Z+\n51aetn8NSWEJnD/8VB9F1jkCjHruvXQspkADC39338TvQHYZ97+8jL/fNIX4aNnjQQjRMXQ6HSED\n+hMyoD99LjgPa2mZa3GAtRStb+PiANk5ZH3/I1nf/4jeZCJieCohAwcSOjCF0IEpBMbGdvr8ICFE\ny/wuicH5xn8Qzp6KfzY9qGnaNqXUt8A5wBVAq0kMzp4UA7CtUQLT2FvAE0AccDbwXqNjdWturmom\nlmql1CqcSUyfJodvcj3+VJfANPEszt6m/jiHzC1pw+sQneC8YaeQVZZD2v41buWfbf2OxNA4pvUb\n76PIOofBoOeOC0djDjTy/fK9bseyCiqY+x9nItMrzr/nCQkhfCMgPIz4mTOInznDtTiA5ppLs57K\n/QdaPd9usVC0bgNF6zbUlxnDwwlNGUCIK6kJSUnBlJggiY0QPuSPSczxrsfNmqYdbtevBTiTmJPb\n2eaC5g5qmlarlFoCXOBq871Gh4uARGAy8Gbj81w9OKNdT3e185qFSqn1wHjXNZe0/jJEZ9DpdNw0\n/jLyKgrYkb/b7diraz4gLiQaFTvQR9F1Dr1exw3njMBsMvL5wp1ux/KLq7j/P8t44obJDEiO8FGE\nQoiewLk4wDAihg9zLg6Qm+tcvnntOkq2bG3zZqS1paUUb9xE8cZN9WWGkGBCBgwgdNBAQlNSCBk4\nAHNSktteOEII7/HHJGaY6zG9hTp176oSlFIxmqYVtNJmXW9KW9oc3qT8B+Ba4Cql1C7g/zRNK1dK\n9QJecLVdAtRP0ldKRQF1Cw+0ds3xzVxT+FiAIYB7pt3EQwueJac8r77caq/luWWv8Y/Zc4kPjfVh\nhN6n0+m44tRhmIOMfPCj+49xcVk1D76ynMdvmMyQvrKPgxCic5ji40k69WSSTj0ZW3U1JZu3ULR2\nHYVr11OTn9+utmwVlZRu3Ubp1obBEnqTiZAB/euTmtCBKQT36SOJjRBe4I9JTN2s4pYWlD/U6Psk\n4LBJjFIqFAhvR5tJTcofACbgXNHsSeDvSqmyRm0uAf6saVrjj+wbL/F0JNcUXUB4UCgPTL+FhxY8\nS4W1qr68tLqcp9L+w99n3UtIoP/PDblg1hBMgUbe+GaLW3l5lZWHX1vOX6+dxIiB/p3QCSG6HkNQ\nENHjxxE9fhwpDgeV+w9QtHYdxZs2U757T5vm0jRlt1goS99BWfqO+jJ9YCDB/foROtA1HC0lheB+\nfdEHyLLzQhwNf0xi6pKDlv76VDX6PvywtTyPt6VNt/Y0TctTSk3Cudzz6YCuSZ0AoOli9Ud1zY6S\nnt5SJ1DHq6qqqn/s7Gt70/l9Tua/e+Zhp2HthUOl2fz9139x6YAzMeh8/wmdt+/9oFi4YEYCX6Tl\n0HiRtqpqG4+8voIrZyej+vTcPRv89We/O5B77ztd8t4PT8UwPJVwhwN7URG2Q5nUHsrElplF7aFD\nOCoq292kvaaG8p07Kd/ZaGitXo8hIQFjr2QMvZKdj4kJ6AIDO/DFHF6XvPc9hNz7juOPSUzda2pp\noGt1M/Vba6+tbbq151rZ7FtgKM4llt/CuUzzcJyLAZwGLFJKna5p2sKOuGZHqaxs/x/rjuBwOHx2\nbW9I1McwJ34qP+emuZXvLs/g2/0LmRM3tctMDvXmvR/eOwDHlGi+WlGIvVEiU2tz8O6vhzh/SjTD\n+vp/z1RL/O1nvzuRe+87Xfbem0wwMAUGpmAA9A4HlJVhz8rGnpWNIzsHe1YWlJW32pQHux1bVha2\nrCxYu85ZptOhi41Bl5SIPjERfVIiusQEdF7c26fL3vseQO790fPHJKaud6KljzMa/0VobVZf416b\ntrRZ355SKhj4DegN3KRp2uuN6q9XSp0JfAWchXOp5sGaptUezTU7UnBw576hrKqqwuFwoNPpMJvN\nnXptb5scPJpyRyXL8ta5lW8s3UFCSCxT4sb4KDKnzrr3E1KDCQsx8d+FWdTaGjIZux0+X17IhYZA\nxg72Ssdil+bPP/tdndx73+mW9z4kBBITG5bkAexlZdRmZjXqtcnEXlR8+DYOx+HAkZePIy8f++at\n9cX62FiMvZIwJCdj7NsHY7++6NqwF05LuuW99xNy790dTSLnj0lMmeuxpZ+Mxu/OS9vYXlvbbNze\ntTgTmN3AG01P0DTNrpS6G2cS0x+YBcw/ymt2mNTU1NYrdaD09HQqKysxm82dfu3OoIYqalbYWHNw\no1v5L1nLOXbgMYzvNdJHkXXuvU9NhUED8/jb26ux1Njqyx0O+PS3bKJi4jlt6gCvxtDV+PvPflcm\n9953/PneW8vKqNizl/Lde6jYs4fy3XuwZGYdUVv2/HznogObnPMKA6IiiZ06hdjp0whTQ46oJ9+f\n731XJ/fe3bp161qvdBj+mMRkABNxnxzfVONjLf5V0TTNopTKB2Lb2GZmo7KJrseVmqY1u127pmm7\nlVJZOCfnD8GZxBzEuc+NztXu4QZNNndN0UXpdXpun3g1j1W8yO6i/fXlDhz838p3ePyEu0mJ7uvD\nCDvPsYPi+NtNU3jszVVUVLnvjv3aV5uxVNdy3gmDfRSdEEIcnYCwMCJHHkvkyGPry2orK6nYu5eK\n3Q3JTeXBQ86u6HawFhXXb8wZFB9Xn9CEpAzoMkOThegM/pjEbAPOx5kQHE7du6MsTdOK2tjmcW1s\nc3ujsroll1rr960bDmYCcC3BfADo57pms3vFHOaaogsLMgZy3/SbeXDBMxRUNvzoVdtqeGbZKzw1\n+36igyN9GGHnGdovmn/cPJVH3lhBSbn7iMj3fthOVXUtl548VP5TFkL4BWNwMBHDhxMxvGFXBFt1\nNRV791Gxew/le/ZQsXsvlQcO4LDZWmipQXVuHoe+nsehr+dhSk4idtpU4qZPJbhvz/hATPRsRzeo\nsmta7Hoc7dpvpTmzXY+/tbPNWc0ddG1aeVwzbdYtjzzlcA0rpeKAPq6njXcFbO2aMTSMym3r6xBd\nQJQ5gvun34LJ6D5Zs6iqhGfSXsFitfgoss6X0iuCp26ZRkyEyePYpwv+4K15W3E4mu3EFEKIbs8Q\nFET4UEXSaacw+PZbGfWv55n06f8Y+cKzDLz1JhJPnkPo4MHo2rAcsyUzi4OffcGG2//Chjv+QsZn\nX1CVdWRD2IToDvwxiUnDuX+KEbiv6UGl1AjgDNfTV9vY5qc4h3eNUUqd1MzxG4A4nJtWftyo/HvX\nY3+l1JWHafshnP8Oxbj3uHziejxLKdXcZpZzAQOwi8P31Iguql9kb+6cfJ1HL8Pe4gz+b9W72Ns5\nvKA765MQxtO3TiMh2nMhiW/T9vDSZxux2SWREUL0DPqAAEIHDSRxzokMvPlGRj7/NJM++ZARz/yD\npDNOJyCq9Q2CK/cf4MD/Pmb9Tbex8a77OPT1PKrz8lo9T4juxO+Gk7kmyz8EvAfMdW0s+U9N06qU\nUjOBD3C++V+oadrSuvOUUr2AuiWOX9Y07eVGbe5QSr0PXAV8rJS6FvjG1c7VwIuuqs9rmtZ4kv08\nYBkwDXjD1XvypqZpZa4emAeBP7vq/lXTtPp1GjVNm6+UWgwcD/yolLpS07QlSikz8BfgHlfVxzVN\na1u/s+hSxiQfw1WjLuDdDZ+5la/N3MyHm77iitHn+yiyzpcYE8Izt03jr6+vICPHfbnSX9ccwFJj\n465LxmA0+OPnLkII0TK90Uj4UEX4UMWAq6+gNH0H+cuWk798JbWlLa/tU7F7NxW7d7PvvQ8IG6qI\nnT4Ne3wsGHy/R1l35bDZsFkszq+qKmxVzke7xVL/ff2xJnXKCgqwGww44uPJ2rsfc3ISpuQkgmJj\nj3rVuZ7G75IYAE3T3ldKTQZuBJ4EHlNKWYCwuirARU1OCwCU6/vmtg+/ExgGTMC5LHIlziSmbkzQ\nZ65rNY7DoZQ6F/gBGA+8ADyvlCoGInFO3Ad4pnHS1MgVwBJgILDYlZCZXLECPKdp2oeHuQ2iGzhl\nyPFkleXy864lbuXf/7GQxLB45gya4ZvAfCAmwsxTt0zjkTdWsudQiduxtI2HqK6xMfeKcQQGyH+8\nQoieS2cwEHHMcCKOGU7K9ddSvHkL+WnLKVi1Clsrm3GW7dAo26GBToe+X1/0Y0Zh7dWbgPCwFs/r\nzhwOB47aWlciUeWRZNibJBm2ukTE0jQ5afS85uh3tqjeuYs9y1fUP9cHBmJKSsSUlIQ5OcmV3CRj\nTk4iIDJS5oc2wy+TGABN025SSi0AbgHG4FyqeCfOBOQpTdNKWjq/mfZKlFIzcPacXIJzUr0dWAu8\nA7ze3ApkmqblKaWm4eyxuQQYAYQC2Th7aV7SNC2t6Xmucw8qpcbgHBZ3HjAA5waXq4BXNE37pLnz\nRPdy5ejzyanIY0PWNrfyd9Z/SkJoLCMTh/koss4XERrEkzdP5fE3V7Jjv/uaG2u2Z/PE26t46OqJ\nmIP89k+XEEK0mc5gIGr0KKJGj2LgzTdQvGEjeWnLKVzzO3ZLC/MrHQ7s+/ZTuW8/v8/7nshRxxI7\nbRrRE8djDAnpvBfQARw2G9X5BVRlZmLJzKIqM5OqzCwsWVnUlpVjq6pq80IJvmSvqaFy/wEq9x/w\nOGYwm10JTSLm5GRMyUmYXQmOMTTUB9F2DTqZNCuaWrdunQNg7NixnXrdurXTg4ODe9za6ZXWKh5Z\n+AIHSg65lZsDTDw56z56RyR59fpd7d5XVdfy5Lur2bQz3+PY0H5RPHr9ZELNrU907S662v3vSeTe\n+47ce++xVVdTtHY9+WnLKFq3vs09B7qAAKLGjCZ2+jSix4/FYPJcdMUXHA4H1qLihgTF9ViVmYkl\nKxtHba2vQ/QZY3i4R8+NOTkZU1Jil/n3a0ndPjFjx45td1eTfJwpRBcQHGDm/um38MCCZyixNIxv\nrrJaeCrtP/xj9n1EmHrOTvbmICOPXDuJZz5Yy5rt2W7Hduwv4qFXl/PEDZOJCA06TAtCCNFzGYKC\niJ06mdipk6mtrKJwze/kL1tG8YZNLb7hd1itFK5eQ+HqNeiDgoieMI7YaVOJGjMafWCg1+O2lpW5\n96Y0+r7FnqUuTh8YiMFsxmA2YUWHraICyspaP7ENaktLKSstdQ4TbCIwJtqj58aUnIQpIQF9G1a8\n6+okiRGii4gNiWbutJt5bPGL1NgaNoDMqyjg2WWv8ejMOwk0ev8/ka4iMMDAA1eN58WP1pO20b2H\nas+hEh54ZRl/u3EKMRFmH0UohBBdnzHYTPzMGcTPnIG1rIzCVavZN/8XanftgRZG49irq8lPW05+\n2nIMwcHETJpA7PRpRBw7Ar3xyN8+2qqqqMrKbtSb0tCzUttBb+yPil6PwWTCYDa5Hs3oXY91iYjB\nbK4/5l7H1FDHZK5vQ9doEYW6Hkiz0Ui/8Aj33qVDWVRlZbW6WENb1RQUUlNQSMmWrR6v0RQf5+y5\nSUrC3MvZixOaMoCAiIgOuXZnkCRGiC5kUEx/bpt4FS+ueNOtfGfBXl5Z8wF3TL4Gva7nrF5iNOi5\n+9KxmAIN/LrGfZxwRk45c19ext9vmkJiTPcawy2EEL4QEBZGwomzKezdi4rcXAy792LcuYvS7ekt\nnmerrCR30RJyFy3BGBZGzJRJxE6bSsTwYW5v0OvYrVYs2Tme81Qys6gpLPTWy6sXGBODuVcygTEx\nnkmHx/PGSYoJfWBgp0yi1wUGEjKgPyED+nscq++Rysqi6lAmlixnsld1KLNjeqTsdizZOViycyhm\nQ0NMAQH0ufB8+lzYPVZHlSRGiC5mUp8xXHLs2Xy0+Ru38hUZ60gKS+CiEWcc5kz/ZNDruP3CUZiD\njHybtsftWE5hJff/x9kj0yfBf1fXEUKIjqYLDcU0eSKp11xFdX4B+ctXkJ+2nPKdO1s8r7asjJz5\nv5Iz/1cCoiKJnTIFU1JiwxvtzEyq8/LBy/udBUSEN+pJqBsylYQpKQlDUPceahwQFkaACiNMDXEr\ndzgcWIuLGyWHjZKcrGwcVuthWmwbh9XKgY8/JW7GNEyJiUfVVmeQJEaILuisoXPIKstl8d4VbuVf\nbv+RxNA4jhswyUeR+YZOp+O6s47BHGTk0wV/uB0rKLHwwCvLeOKGKaT06j7d4EII0VUExcbQ66wz\n6HXWGViys8lftoL8Zcup2LuvxfOsRcVk/fCj1+IyBAc7lxzuVTdZ3ZmwmJOSMIb2vB4YjsNEAAAg\nAElEQVR4nU5HYFQUgVFRRAx33we9bpU2i6v3piqrYYiaJTe37Uml3U53WfRLkhghuiCdTsf1Y/9E\nbkU+23Ld37S/tvZD4kNjSI0b7KPofEOn03HZKamYg4y898N2t2Ml5TU8+OpyHrt+EkP7RfsoQiGE\n6P5MiYn0Pv9cep9/LpUHDzoTmqVpVB3K9Mr16vZHqetFMfdKrp+MHhARIfujtJHOYMCUEI8pIZ7I\nUSPdjtmtViw5uc6kJivLmdi4kp2aggK3ujFTp2CKj+/M0I+YJDFCdFFGg5G7p9zAQwufJasst77c\nZrfx/LLXeXL2fSSGdY8/NB3pvBMGYzYZefXLzW7lFVVW/vraCh6+ZiIjB8f5KDohhPAfwb170/fi\nC+lz0QVU7ttPXtoy8pctpzont/WTG9PrMSUmNOpNSaofBhYYEyM71XuZPiCA4N69CO7dy+OYrboa\nS1YWluwcAqOiCB00sNl5Tl2RJDFCdGGhQSE8MP1WHlzwLOU1FfXlZTUVPJX2H56cfR+hgT2vS/3U\nKQMwBRr49ycbsDfq9bbU2Hj8rVU8cOV4xg/r+uN5hRCiO9DpdPWT0PtdfinlO3eRn7aM/GUr3Cbq\nB8XF1vemNPSqJBEUH39UK5oJ7zEEBRHSvz8h/fv7OpR2k58oIbq4xLB47p12I08s+Tc2e8Ouw1ll\nubyw/A0emnE7RkPP+1U+YVxfggKNPP/hWmptDZmMtdbOk++u4e5LxzJ9lOenTkIIIY6cTqcjbMhg\nwoYMpv/VV2LJysZeW4spMaHbT6gX3Yv03wnRDaTGDebm8Zd7lG/L/YM31n2E3eHdVWC6qqnHJvPw\nNRMJNLr/KbPZHTz/4VoWrNnvo8iEEML/6fR6zL2SCenXVxIY0ekkiRGim5jRfyLnDTvVo3zJ3pU8\nk/YqpZYusEmYD4wdmsBjN0zGHOQ+htfugH9/upHvmizLLIQQQojuT5IYIbqRC485nSl9x3mUb8ja\nyr2/POmxkllPMWJgLH+/aSqh5gCPY298s4XPFvTM+yKEEEL4K0lihOhGdDodt0y4giExKR7HiqpK\neGLxv/hs63duc2d6iiF9o3jq1mlEhnkOafjvT+m8/8P2brP2vRBCCCFaJkmMEN1MoCGA+6ffwrEJ\nqR7HHDj4YtuPPLHkX+RXFjZztn/rnxTO07dOIzbS7HHsi0U7eePrLdjtksgIIYQQ3Z0kMUJ0Q6FB\nITx43G1ccuzZ6HWev8bpebu4b/4/WHtokw+i861ecaE8c+s0kmI8l57+fvle/v3pBiw1tT6ITAgh\nhBAdRZIYIbopvU7P2akn8cQJdxMX7LlLfXlNBc8ue4131n+K1Wb1QYS+Ex8dzNO3TaNvYpjHsUVr\nM7j5mUUs23RIhpcJIYQQ3ZQkMUJ0c0NiU3j2pIeY2Ht0s8d/3rmEhxc8R2ZZTidH5lvR4SaeumUa\ng3pHeBzLL67imQ/W8vBrK9ifVeqD6IQQQghxNCSJEcIPhAQGc9eU67l+7CUEGDxX6NpbnMHcX55i\n6b7VPojOd8JDAvn7TVMZNsCzpwpg86587nhxCa9/vZnyyppOjk4IIYQQR0qSGCH8hE6n48RB03lq\n9lx6hSd6HK+urebl1e/x8ur3sFgtPojQN0LMATx+w2ROntwfnc7zuN3u4Ptle7nx6YXMX7Ufm0z8\nF0IIIbo8SWKE8DN9I3vx1In3c8KAKc0eX7pvNXN/eYq9RRmdHJnvmAKN3Hr+SF7883EM7RfVbJ3S\nihpe/nwj9/z7N3bs63kruwkhhBDdiSQxQvghkzGImyZczp8nX4PZaPI4nlWey0MLnuWnPxb3qMnt\ng/pE8uzt07nrkjFEh3vuJwOw62AJ976UxosfraOwtOf0WAkhhBDdiSQxQvixqX3H88xJDzIwup/H\nsVp7Le9u+Iznlr1GZW2VD6LzDZ1Ox/Fj+/Dq3Fmcd/wgjIZmxpgBi9cd5KanF/DV4p1Ya+2dHKUQ\nQgghWiJJjBB+LjE0jr+dcA9nqNnNHl+buZlXd35MRlV2J0fmW8GmAK46fTgv33sCY4fGN1unqtrG\nu99v5/bnF7FuR89a3U0IIYToyiSJEaIHMBqMXD7qPB6YcSthQaEex0ut5Xx86AeW5KzBbu9ZvQ69\n4kJ59LpJ/PXaic1ukAlwKK+Cx95cxd/eXk1mfnknRyiEEEKIpiSJEaIHGZ10DM+d9BDD44d4HHPg\nYHHOKv72278prCr2QXS+o9PpmDAskf/cdzxXnJpKUKCh2Xprtmdz67OL+eDH7VRV13ZylEIIIYSo\nI0mMED1MtDmSvx73Zy465gx0zaw5vC33D+6d/yTrM7f4IDrfCjAa+H/27jw+rqpu/PjnzpLMTPa9\nSZukSdvcdF9ZC7S0LAIugMLziAvoI4qioD6oKPITFwQE5FEQERERUVBRwY2tLbRQaCndadPTNknb\n7Hsm2+wzvz/uZGu2SZpm/b5fr7zuzJwzZ87c3Jm533u2a9YX8Ni31rNm+ax+8/gDQf6y8QhfvG8j\nm3eVT6uJEYQQQoiJQoIYIaYhk8nERxdezvcv/Dop9r5TDrd62rj3zUd5evfz+APTr8UhNdHObZ9c\nyb03n0deVny/eRqcbh74w06+/ehWSiudY1xDIYQQYnqTIEaIaawwbS73X3oHhfH5/ab/6/BG7tz4\nANWttWNcs4lhYX4KD31tLV/66BLiHNZ+8xwoaeCrP32DR/+6l5Z27xjXUAghhJieJIgRYpqLjY7h\nv3Ov4KLUczBrfb8SipuO861X7+Gt4zvGoXbjz2zSuOzcPH717Yu4/NzZmPqZkTkYgpfePsZN927g\nP2+XEghKFzMhhBDidJIgRgiBpmmsTFzIjXP/i8y4vtMNu/xufr7tSX757u9x+z3jUMPxF+eI4osf\nXcr/fX0tC/NT+s3T2uHjl3/dx9ceeoP3i+vHuIZCCCHE9CFBjBCiS6Y9jfsu/jZrZp/db/rrpW/z\n7Vfv5Xhz+RjXbOLIy0rgni+t5hufXElKgq3fPKWVLXz70a3c/8x71DdPn4VEhRBCiLEiQYwQoheb\n1cbNZ13Pl8+6gWhLdJ/0itZqvvPafbx6dPO0nZlL0zQuWD6LX35rPdesn4fF3P9X6ZbdFdx030b+\nvOEwXl9gjGsphBBCTF0SxAgh+nXB7LO475Jvk5eY3SfNF/TzxM7nePDtx2nzto9D7SYGe7SFT1++\ngEe/uY4zF8zoN4/HG+D3LxXx5ftf590D1dM28BNCCCFGkwQxQogBZcVl8KOLvsHl8y7sN/3d8j18\n85Ufo+qLx7hmE0tmagx3/s9ZfO9zZzMzLabfPFUN7fzwye3c9cQ2KuraxriGQgghxNQiQYwQYlBW\ns5UbVlzLN8+7idiovifo9R2NfG/TT/n7wZcJhoLjUMOJY9X8DB6+bR2f+eAC7NHmfvPsOlTLl+/f\nxFP/OkCH2zfGNRRCCCGmBglihBARWTVzKfdfegfz0+b2SQuGgjy7/0Xu3vwwza7pvfCj1WLi6gvn\n8djtF7FuVd+ueAD+QIi/vn6Um+7dyKb3yghKFzMhhBBiWCSIEUJELMWRxP9b+1U+tvAKNK3vgin7\naw7xjVfuZk/VwXGo3cSSHG/jax9fwf1fOZ+5sxL6zdPU6uGhZ3fxy3+WUdkoC2UKIYQQkZIgRggx\nLGaTmWsXfZD/t/arJNn7npw7Pa38eMvD/GHv3wkGp3f3MoDC2ck8cOsavnzNMuJjovrNc7zWzeMv\n1/LMxkrKalrHuIZCCCHE5CNBjBBiRBamF3D/pd9lReaiftNfPPQqv975rMzGBZhNGpeencuvbl/P\nh87Px2Tq24oFsK+0jS/fv4mHnt1FdcP0nfVNCCGEGIoEMUKIEYuPjuVb53+J65d9DLOp70D2jSVv\n8ez+F8ehZhNTrCOKz1+5mJ9/fS1L5qb2mycYgk3vlXHTvRt59Pm9NDhlsUwhhBDiZBLECCFOiaZp\nXKGv5+713yAjNq1P+gtFr/Bi0avjULOJKzcznh/ddC63X38G6Un2fvMEgiFeeucYn//xBn7zj/dx\ntnnGtpJCCCHEBCZBjBBiVOQn53LfJd9mXkpen7Q/7Ps7G4vfGodaTVyaprF6SRaP3b6ej5yTRoyt\n/69jrz/IC5uL+dzdr/H7l4poc8m0zEIIIYQEMUKIUeOw2vn2+TeTnZDVJ+3xnX9kW9mucajVxGa1\nmFm9MIlbPzyDy85IJdZu7Tef2xvgzxsO87m7X+PPGw7j8vjHuKZCCCHExCFBjBBiVMVGx3DHmq+Q\nHpPS6/FQKMTPtj3JvuqicarZxBZlMXHh0mSeuONiPn6Jjj3a0m++dpeP379UxI0/fo0XNhfj9QXG\nuKZCCCHE+JMgRggx6pLtiXx37a0k2uJ7PR4IBrj/rcc4XF8yTjWb+GLsVq67tJBff+cirl47lyhr\n3wkTAJxtXn7zj/f5/D0beOmdY/gDMp21EEKI6UOCGCHEaTEjNo071nyFGGvvgeuegJd73vwFJ5or\nxqlmk0NCbDSf+dBCfv2di7hidR4Wc//TMjc43Tz6/F6+eN9GNr13gkBQprQWQggx9UkQI4Q4bXIT\nZ3H7BTcTZe49zqPd28Hdmx+mpq1unGo2eSTH27jp6iX86vaLuPjMnAHXmKlu6OChZ3fzlQc2sXVv\nJUEJZoQQQkxhEsQIIU4rPXUOt62+qc86Mk1uJz964+c0uZzjVLPJJT3ZwS3/tZxHv7mOC5bNHDBf\nWU0b9z69g6/932Z2HKyWxUaFEEJMSRLECCFOu2WZC/jKWZ9Bo3crQk17PXdvfpg2r6xOH6mZabF8\n41Or+Pn/ruWshTMGzFdS4eQHv9nOtx55i31HpcVLCCHE1CJBjBBiTJybs5IbV328z+MnnBXcu+VR\n3H5ZzHE48rIS+O5nz+LBWy9geUHfRUY7FR1r5I5fvs13H9vKoeONY1hDIYQQ4vSRIEYIMWYumnM+\n1y25ss/jhxtKeHDrr/AFZCHH4SrISeIHXziXe760mgV5yQPm23uknm/8/E1+8JttlFRIFz4hhBCT\nmwQxQogx9ZHCS/hw4cV9Ht9bXcTD258iGJSpgkdi0ZxU7r35PO668WzmzkoYMN+OgzXc+tM3uO/p\nHZTVtI5hDYUQQojR0/9qakIIcZpomsYnllxFm6edTaVv90rbVraLJ6wOblx1HZrW/yxcYmCaprGy\nMIMVejrb3q/imZcPcaK6/0Dlrb2VvL2vkrUrs/n4JTozUmLGuLZCCCHEyEkQI4QYc5qm8flVn6Dd\n52J7+e5eaRtK3iI2OqbfbmciMpqmcc7iLM5cmMmbu8v54yuKqoa+kycEQ7DpvTK27C7n4rNy+a+L\nCkhJsPdTohBCCDGxSHcyIcS4MJlM3HL2Z1icUdgn7YWiV/jHoVfHoVZTi9mksXZlNo9+ax1fvmYZ\nqYn9Byj+QIiX3j7G53+8gd/8432cbTLJghBCiIlNghghxLixmq18Y/UXmJc8u0/aM3v/zsbit8a+\nUlOQxWzi0rNz+dXt67nxykUkxkb3m8/rD/LC5mJu/PFrPPNSEW0umWhBCCHExCRBjBBiXNmsNm6/\n4Gay4zP7pD2+849sK9s1DrWamqKsZj58/hx+/Z2L+PTl84m1W/vN5/IE+NOGw3zu7td4+j8HUccb\nCQRl0UwhhBATh4yJEUKMu7joWO5Yewt3bnyAuvaGrsdDoRA/2/YkDqudJTPmj2MNpxZbtIVr1hdw\n+bl5vLC5mBe3HMXlCfTJ1+7y8ZeNR/jLxiPEOaJYrqd1TRyQGNd/a44QQggxFqQlRggxISTbE7lz\nzS0k2OJ7PR4IBrh/6684XF8yTjWbumLsVj7xgUJ+/Z2LuWrtXKIsA/8ktHZ42bK7goee3cWn7nqZ\nrz30Bs+8VERRaSOBgEyLLYQQYmxJECOEmDBmxKXz3TVfIcbaewC6x+/hnjd/wYnminGq2dSWEBvN\nZz+0kF/fcTFXrM7DYh56euuj5U7+tOEw33zkTT75vZe57+kdbHj3BI0t7jGosRBCiOlOghghxISS\nmziL2y+4mShz7/Ea7d4O7t78MDVtdeNUs6kvOd7GTVcv4bHbL+LSs3OJsUXW47jN5eOtvZX87E+7\nuf77r3Drg2/wu38f5P3ievzSSiOEEOI0kDExQogJR0+dw22rv8B9b/2SQLB7rEaT28mP3vg5P1h/\nG0n2gVelF6cmI9nBl69Zxk1XL0Edb2LnoRp2HqqlpMIZ0fNLKp2UVDp5ftMRHDYLS+cZY2lWFqYP\nOM2zEEIIMRwSxAghJqRlmQv5ylk38LN3niRE98xYNe313L35Ye5a9zVio2SV+dPJYjaxMD+Fhfkp\nfPryBTS1uNmlatl5qJbdqjaiKZg73H7e2V/FO/urAMidEWcENPPTmT87Besg43CEEEKIgUgQI4SY\nsM7NWUW718Wvd/6x1+MnnBXcu+VRvrv2FmwWmSVrrCTF21h/Rg7rz8ghEAxx5EQT7x2qYdehWo6W\nNxOKYBbm49WtHK9u5W9vHMUebWbJ3DRWzs9gpZ5OerLj9L8JIYQQU4IEMUKICe3iuefT5m3n2f0v\n9nr8cEMJD259nG+d90UsZvkqG2tmk0bh7GQKZyfzyQ/Mx9nmYZeqZdehWnapWlravUOW4fIE2H6g\nmu0HqgHIzojtmsJ50ZwUrBbz6X4bQgghJin55RdCTHhXzr+UNm87/1Qbej2+t/ogD29/ilvP/iwm\nk3RLGk8JsdFcuDKbC1dmEwiGKC5vZuehWnYequHIiSYiWSuzrKaNspo2XthcTHSUmcVzUllVmM7K\n+RnMSJGug0IIIbpJECOEmPA0TeOTS6+m3dvBptK3e6W9U7aTGKudG1ddh6YNPTWwOP3MJo2CnCQK\ncpL4+CU6Le1e9hw2xtLsUrU0t3qGLMPjDfBeUQ3vFdXA3/eTlRpjdDsrTGfRnFSirdJKI4QQ05kE\nMUKISUHTNG5cdR1tvg7eLd/TK21DyVvERsdw3ZIrx6l2YjDxMVFcsHwWFyyfRTAYoqTSya5wK82h\n400EI2imqaxvp/LNEv75ZglRFhOL5qSyXE9nuZ5GTkacBLBCCDHNSBAjhJg0zCYzt579We598xfs\nr1G90l4oeoXYKAcfLrxknGonImEyacydlcjcWYlce1EBbS4few/XdU3jHMlimV5/0Bh/o2oBY32b\n5XoaywvSWVaQRkKsTPYghBBTnQQxQohJxWq28o3VN/HDN37GkcZjvdKe2ft3YqwO1s85b3wqJ4Yt\n1m5l9dIsVi/NIhQKcayqxeh2dqiWg6UNBCJopWlscbNxRxkbd5QBMGdWAiv0dJYXpFM4O1mmcRZC\niClIghghxKRjs9q4/YKb+d6mn1LeUtUr7fGdfyQmysHZ2SvGqXZipDRNIy8rgbysBD62bh4dbh97\nj9SFJwiopb7ZFVE5xeVOisud/GXjEWxR5nDXM6OlZlZ6rHQ9E0KIKUCCGCHEpBQXHct319zCnZse\noK69oevxUCjEz7f9FofVzpIZ88exhuJUOWxWzlmcxTmLjVaaEzWt7CyqZffhWg6UNODzB4csw91z\nggAgLcnO8gJjLM3SeWmn+y0IIYQ4TSSIEUJMWsmORO5ccwt3bnoQp7ul63F/0M/9W3/FnWtuoSA1\nfxxrKEaLpmnkzognd0Y8V184F48vwIHiBnYfrmW3quV4dWtE5dQ1uXh1+3Fe3X4cTYNZqTby0q0s\nzNOYVxDEYpauZ0IIMRlM6SBG1/VrgZuB5RjvtRT4C3C/Uqp9BOVFA18FPgHMAzzAAeAJ4CmlVOik\n/HcB3xvGS3xfKXVXj+cvBvZF8Lw8pdSxYbyOEFPGjLh0vrvmK9y16ae0+7q7G3n8Hu558xd8/8Kv\nk5M4cxxrKE6HaKuZFYXprChMB6DB6WLP4Tp2qzp2H45ssc1QCMrq3JTVudlyoJWnXqtiydzuWc8y\nU2Kk65kQQkxQUzaI0XX9fuC28F0fRsCxACOo+Liu6xcopWqGUZ4NeBU4P/xQO2ADzg3/fVDX9WuU\nUj37N7QBQ72GA4gL3649KW1ZeOsFmgYpIzDEawgxpeUmzuJb59/Mjzb/DG/A1/V4u7eDuzc/zA/X\n30Z6bOo41lCcbikJdtafkcP6M3K6pnHerWrZc7iOg6UN+ANDTxDg8vjZfqCa7QeqAchIdrBcT2eF\nnsbiuWnE2q2n+20IIYSI0JQMYnRd/wRGABMEvg48ppTy6Lq+FvgdUAD8AbhoGMU+ghHA1AGfBl7B\n2H/Xh9OuBr4D/KjzCUqpB4AHBqmnDXgXWAy8DDx2UpbOIObPSqlPDaOuQkw7hWlzuG31F7jvrV8S\nCHbH9U1uJz9842f8YP1tJNkTxrGGYqz0nMb5mvUFuDx+DpQ0sFsZ42nKatoiKqemsYOX3znGy+8c\nw2TS0HOSWF6QxnI9nXnZiZil65kQQoybKRfE6LpuBu4K3/2JUupnnWlKqTd0Xb8c2Aus13V9nVJq\nUwRl5gM3hO9+Sin1Svi2D3hC13UL8Evgm7quP6KUao6wuvdjBDC1wPUnteJAdxCzO8LyhJjWlmUu\n5Ctn3cDP3nmSEN1X3mva67l788Pcte5rxEbFjGMNxXiwR1tYNT+DVfMzAKht6gh3Patl16FqOjxD\nTxAQDIYoOtZI0bFG/viqIsZuZem81PAkAelkJDtO99sQQgjRw5QLYjBaV+YCIeChkxOVUgd0Xf8H\ncBVGi8qQQQxwI2AGDvQIYHp6AvgBkAZcCTw1VIHhVqEvh+/eopQ6uSsZwNLwdk8/aUKIfpybs4p2\nr4tf7/xjr8dPOCu4b8uj3LH2FmwWWQxxOktPcnDJWblcclYuBw4cpLjCyYn6AOVNcOhYY0Rr07S7\nfLy9r4q39xlTfGelxoS7nqWzeG4q9uip+PMqhBATx1T8lr0wvN03QGAAsAEjiPnAMMvc0F+iUsqv\n6/obwDXhMp8arDBd1010B1gblVJ/6idPNpASvitBjBDDcPHc82nztvPs/hd7Pa4aSnhw6+P87+rP\nSyAjAKPr2cyUKOZlO5g/fz4dbh/7j9azO9xSU1kf2RwwlfXtVNaX8u+tpVjMJhbmJ7OyMIMVhenk\nZMTJBAFCCDHKpmIQsyC8LRokz5HwNkPX9RSlVMMgeQE6F5uIpMyFQ5QF8BmMrmJB4H8HyNPZlewE\nUKDr+heAswE7xixrfwMeV0p5Ing9IaadK+dfSpu3nX+q3tce9lYf5Juv3M2Xz7pBpl8WfThsVs5a\nlMlZizIBqG5o7wpo9h2po93tH7IMfyDI3iP17D1Sz5P/PEBakp0VejorC9NZOi8Nh00mCBBCiFM1\nFYOYrPC2fJA8FT1uZwIDBjG6rscC8cMoM3OwyoXH7Py/8N0XlVJ7B8jaGcRkAO+clJYLrAVu1HX9\nCqVU2WCvKcR0pGkan1x6NW3eDl4vfbtXWnVbHXdueoCPFF7CtQs/iMU8Fb8KxWiYkRLDZefEcNk5\nswkEghwpaw5PEFCHOt5IBD3PqGty8cq247yy7Thmk8aCvBRWFBpBzezMeGmlEUKIEZiKv9ydAcdg\nfQBcPW7HD5irb3okZQ5V3keBnPDtnwySrzOIiQaeC+ctApIwuq3djTEpwD90XT9LKTX0ogjDVFQ0\nWMPT6HO5XF3bsX7t6W4q7/vzY1dQHV9DUUtxr8dDoRAvFL3CttKdXJV9CTPs4zcF81Te/xPdSPb9\nshxYlpOKy5PE0coODld0cLi8naa2oVtpAsEQ+4vr2V9cz+/+fZB4hxl9Vgx6dgzzshzYo82n9H4m\nEznux4/s+/Ej+370TMUgpvM9DXZS37ML1lD7oGd6JGUOVd7Xwts3lVLbBsmngLeALUqpO3o8XgX8\nXNf1PcDrGMHOZ+k7PfMp6+joGO0iIxIKhcbttae7qbrvr0i7AIdmY6fzQJ+0anc9vzryHOenrOTM\nxMWYtPGbNneq7v/JYKT7fk6GmTkZcXxgeSwNrX6OVrk5WunmWK0HfwQreLV0BNhxuIUdh1vQNMhO\njWJulo15mTYykqyYpkErjRz340f2/fiRfX/qpmIQ09kiEjVInp4jeodqwejZahNJmQOWp+v6Ioxx\nLWCsLTMgpdR3hkjfouv6v4EPAddyGoIYh2Nspwx1uVyEQiE0TcNut4/pa09302HffzhmPYtaC3ih\n/DWcvt7rhAQJsrlhByWucq7KvpiU6MQxrdt02P8T1Wju+5gYyJmRwLrl4PMHKalycai8HVXWTn2L\nb8jnh0Jwos7LiTovm/a2EGsPt9LMiqFgpgOHbWq10shxP35k348f2fe9nUogNxWDmNbwdrAjo+fZ\neUuE5UVa5mDlXRXedgD/HuJ1I7EFI4hZMFTGkZg/f/7QmUZRUVERHR0d2O32MX/t6W667Pv5zOfC\nZefz291/ZvOxvg2hZR1V/Oroc3xq2Ue5eM75YzZWYbrs/4nodO77JYu7b1fVt7PrUA07VS37jtbj\n8Q7dTNPmCrDzSAs7j7Rg0qAgJ4mV8zNYWZjOnJmJmEyTu5VGjvvxI/t+/Mi+723nzp0jfu5UDGLK\ngLOAmYPk6ZlWNVhhSim3ruv1QGqEZVYOkufK8PY/SqnI5u0cnDO8lVBeiAg5ouzcfNb1nDFzKY+/\n9wdaPL1bZTwBL0/sfJYdFXv54hmfItkxtq0yYmrKTI3hivPyueK8fLy+AAdKGtilatl5qIaymrYh\nnx8MwaHjTRw63sQfXj5EQmwUy/V0VurGYpsJsTJluBBiepmKQcwB4GNAwSB55oW3VUqppgjLXBNh\nmQf7S9R1fQawInz3+cFeLJz3Y0A68JhSaqDAKCO8rR6sPCFEX2fOWoaems/j7/2RHRV9JwncW32Q\n/335B/zPyv9mdc4ZMoOUGDVRVjPLw8HH/3x4ETWNHUZAU1TDvqN1uDxDt9I427y8sbOcN3aWo2kw\nLzuRFXoGK+enMy87CfMkb6URQoihTMUg5nXge8ByXdeTBghSLgpvNw+jzDXA+ljMqkkAACAASURB\nVP4SdV23hNMHK/OMHrffGuL1HMDD4dvlwOMD5LskvH17gHQhxCASbPHctvoLbDm2nSd3/wmXz90r\nvd3n4ufbfsu75Xv53KqPEx8dO041FVNZRrKDy86ZzWXnzMbnD3KwtIFdh4xWmuPVrUM+PxSCwyea\nOXyimedeU8Q5rCwvSGflfCNQSoqzjcG7EEKIsTUVg5g3MdZsmQl8E/h2z0Rd1xdjjCMB+GWEZf4J\nIzBaoev6pUqpV05K/zyQhtG969kBylgZ3lYopSoGyAOAUqpE1/UDGAtn3qrr+tNKqV5nV7qufwg4\nP3z31xG+DyHESTRNY03e2SxML+CXO55mf43qk2db+S6K6o9y0xmfZGXW4n5KEWJ0WC0mls5LY+m8\nND7zoYXUNbm6up3tPVJHRwSLbbZ2+Niyp4Ite4yfmjmzEliYl0JWWiwz02LISo0lNdE+6cfUCCGm\ntykXxCilgrqu3wE8BXxL1/VW4CGllEvX9bXA04AZ2KiU2tL5PF3XZwIbw3cfUUo90qPMQ7qu/w64\nAXhW1/X/AV4Il/MZ4KfhrA8opQYa2L8kvN0X4Vu5I/waCzDWgvmKUkrpum4HPg08FM73W6WUtMQI\ncYpSY5K5Y80tvHJkM3/Y93e8gd6zSTndLdz35qOsyzuXTy//GA6rDEUTp19akp1Lz87l0rNz8QeC\nHDrWyM5wK01p5VDz0hiKy50Ulzt7PRZlMZGZGkNWWixZ4e3M8O3EuGjpPimEmPCmXBADoJT6na7r\n5wBfwFgU8i5d191AXGcW4L9OepoV0MO3+1v17qsYAcWZwN8wZhgz0z218p/DrzWQGeFteYTv4UVd\n178J3AtcDBzSdb0t/HrWcLa/AzdFUp4QYmgmzcRlBReyNHMBv9j2FEcaj/XJs6n0bfbXHOLms65n\nQfpgw+SEGF0Ws4lFc1JZNCeV669YQIPTxW5Vy3uHatlzuI5219DTOHfy+oMcr27tt7uaPdrS1WKT\nlRZLVlpMV4AT6xhspQEhhBg7UzKIAVBK3aTr+gbgSxgD6u3AEYwA5B6llHOw5/dTnlPX9QuAW4Hr\nMAbyB4H3gCeBXymlQoMU0RkYRRTEhF/zfl3Xt2AEUBfQ3WVtF/CkUupPw3kPQojIZMVl8IP1t/Hi\noVf5y/v/IhAK9kqv62jk+6//H1cUrOO/l3yEKLN1gJKEOH1SEuxcdGYuF52ZSyAQRJ1oYuehWnYd\nquFo+bB+4npxefwcLXf2W0Z8TBQz02LJTA0HNuEAJzMlBlv0lD2lEEJMQFP6G0cp9TxDzATWI+8x\nYND2c6WUB/hJ+G+4dRnRJVul1Hbg4yN5rhBi5MwmM1cvuIzlmYt4ZPtTlDl7TxIYIsS/Dm9kd/UB\nvnzWDcxJzh2nmgoBZrOJBXkpLMhL4VOXzaep1c1uVcfOQzUcKGmgwekeupAItLR7aWlvpOhYY5+0\nlARb7wAn3E1tRkoMVotpVF5fCCE6TekgRgghTlVeUjb3Xnw7f3r/X/zz0GuE6N3gWtFSzR0bfsJH\nF1zGVQsuw2KaWquqi8kpKc7GulXZrFuVDRitK1X17VTUtVFZ30ZlXTuVdW1U1LXT2uEdlddscLpp\ncLrZd7S+1+MmDdKTHV3jb4wAJxZXqw9zKEQoNFgnBiGE6J8EMUIIMQSr2conl17FqqzF/GL776hp\n732SFgwF+cuBf7Or8n1uPvt6ZsVnjlNNheifPdpC/swE8mcm9Elr7fB2BTRdAU59G5V1bRGtWTOU\nYAiqGzqobuhgVz/pJg3s0aXYoy3Yoi3Ye/zZoizYbRZsUWYcPdJt0ZbwfXNXPofN2NqiLbJOjhDT\ngAQxQggRocK0udx/6R08vfdvbCh+s096cdNxvvXKj/n4kiu5vOBCTJp0oRETX5wjCj03GT03udfj\noVCI5lZPuPWms+XGuF1V347PHxygxOEJhqDd7ac9gumjIxVlNYIee89ApzM46hEY9QqYeqTPSHGQ\nFC/r6wgxkUkQI4QQw2Cz2vj8qus4Y+YSHnv3GZrcvQc/+4J+nt7zPDsr9/HFMz9NekzKONVUiFOj\naRpJ8TaS4m0smtN70s5AMERDs6tXgFMZ7q5W09hBMDi+XcS8vgBeX4DmNs+Iy5iZFsPiuWksmZvK\n4jmpJMZFD/0kIcSYkSBGCCFGYHnmIh78wJ38ZtdzbD3xXp/0A7WH+cbLP+L65ddwYd45su6GmFLM\nJo30ZAfpyQ6W673T/IEgNY0dRoBT1xngGN3V6ptd41PhEaioa6eirp2X3zkGQM6MOJbMSWXxXGOa\n6/gYmW5aiPEkQYwQQoxQbHQMt57zP5wxcxlP7HyWNm97r3SX381jO37PuxV7uGnVJ0i09x2PIMRU\nYzGbmBlePPNkbq+f6gYjwNl3sJSWdg8hzNhi4nB7Arg8/q4/tzd82+3HO0pd107FiepWTlS38q+t\npWgazM6MZ0m4pWZhfgoxdplqXYixJEGMEEKconNzVjI/bS6P7XiG3VXv90nfVbmf/335h9y46jrO\nzl4xDjUUYmKwRVmYnRnP7Mx4kq1OOjo6cDgczJ8/f9DnBQJBXN4A7h5Bjsvj777vDeBy9wh8euUJ\n4PL4cIWDpM48pzIpWigEpZUtlFa28OKWYkwa5M9K7GqpWZCXjMMmQY0Qp5MEMUIIMQqS7Ancfv6X\n2Fiylaf3PI/b37svfqu3nZ++/WvOyz2Tz664ltiomHGqaf9CoRAdPhdNbifNLidNrhbcfg/ZCVno\nqfnSHU6MK7PZRKzdROwotXaEQiE8vkCPIKc76Glp93CwtJF9R+upqm8fujCMyQmOljVztKyZv71x\nFJNJoyA7kcVzU1kyN5XC2cnYouSUS4jRJJ8oIYQYJZqmcdGc81iSUcgv3v0dRXVH++R56/i7HKw9\nzBfP/BRLZyw47XUKhoK0edppchuBSbPbSZPLGb4fDljcTprcLfgCvn7LyIxN58L8c1k7+2zpEiem\nBE3TjOmYoywQ1zd93aocAOqbXew7Ws/+o/XsK66ntrEjovKDwRCHjjdx6HgTf9l4BIvZhJ6bZEwS\nMDeVwtwkrBZZU0qIUyFBjBBCjLL02FS+t/Zr/PvwJp7b/yK+YO+pYxtdzdy9+WEumXMBn1x29Yhe\nIxAM4HS3dgcjXcFJS1dg0hwOWgKhUxtPUNVWyx/3vcCf9v+DlVlLWJe/mmUzFmAyyRTSYmpLTbT3\nWjS0uqG9K6DZf7SeBqc7onL8gSAHSho4UNLAs68qoiwmCmcndwU187KTsFrk8yTEcEgQI4QQp4HJ\nZOJDhRexLHMBj2x/itKmsj55Xi3ewr6aIq7IWEuqZrRw+AK+XoFId4DS0itQaXG3EmJsp7ENhIK8\nW7GHdyv2kGJP4sL8c1ibd65MIy2mjRkpMcxIieHis3IJhUJU1bf3aqlpbo1sSmevP8i+o/XsO2os\nnBsdZWZhXkpX97M5MxMwmyWoEWIwEsQIIcRplJ2Qxd0XfYu/HfwPfzv4MsGTWkWq2+p4su15kq0J\ndARduPaNfF2LsdTgauL5A//hrwdeYsmMQtblr+aMrKVYzPKzIqYHTdPISoslKy2WD5wzm1AoRHlt\nG/uO1IVbahpo7fBGVJbHG2CXqmWXqgXAYbOwIC+lq6UmLysBs0nGpQnRk/zaCCHEaWYxmbl20YdY\nkbmYR7Y/RWVrTa/0ECEafM1jWidN00iIjiPJlkCiPYEkW3x4m0CS3fhz+z28UfoO28p3DzheJkSI\nvdVF7K0uIi46ljWzz2Zd/rnMis8c0/cjxHjTNI3sjDiyM+K44rx8gsEQx6tbjFaao/W8X9JAu6v/\nz9HJOtx+3iuq4b0i47si1m5l0ZwUFuankD8zgbysBOIcsk6NmN4kiBFCiDEyN2U2P7nkO/xx3wv8\n58jrp+U1zCYzibb4XsFJkj2BRFsCyeFtkj2B+OhYzKahBxYvzijkM95reev4DjYWv8VxZ8WAeVs9\nbfxLbeBfagN66hzW56/mnOyVRFvkZEtMPyaTRl6WEXB8+II5BIIhSiudXUHNgZIGXB7/0AUBbS4f\n296vZtv71V2PpSbaycuKJz/8Gnkz45mRHINJWmzENCFBjBBCjKEoSxQ3rLiWVTOX8ui7T1Pf0RjZ\n88zWHoFJAon2+F6tJp1psVEOTNro9qWPjYrhA/PWcuncNZQ0nWBj8Vu8dWJHn2mke1L1xaj6Yn67\n+8+cl3MG6/PPIz85Z1TrJcRkYjZpzJ2VyNxZiVy1di6BQJCj5c1dY2oOHmvE4w1EXF59s4v6Zhc7\nDna37NqjzczOTCAvK568rATyZyaQMyNOpncWU5Ic1UIIMQ4WZeg8cOl3ef7Av9lVth8LZhKi48hN\nzybJnkiSPb6r1STJloDdahv3tVo0TWNOci5zknP59LKP8k7ZLjaWbOVwQ8mAz3H53LxW/CavFb9J\nXmI26/JXc17uGcREOcaw5kJMPGazCT03GT03mWvWF+DzBzlS1tQV1BQda8TnH97Mgi5PgKJjjRQd\n6744YtIgKy2W/KwEZmfFkz8zgUCHH5ngWUx2EsQIIcQ4cUTZ+fTyj3GGbWHEK5dPFDarjQvzz+XC\n/HMpc1ayqeRtthzbRqt34MUBS5vL+M2u5/j93r9ydvYK1uevpjB17rgHZ0JMBFaLiQV5KSzIS+G/\nL9bx+gKo4+GgprgedbwRf2D4MxIGQ1Be20Z5bRtb9nR3B42xmZiZYmPR0SB5M43Wm1lpsTIrmpg0\nJIgRQghxSrITsrh++ce4bslH2FGxl40lW9lfc2jA/N6Ajy3HtrPl2Hay4jJYl7+aNbPPIsEWP4a1\nFmJii7KaWRyenQzA5w9QVtNGaaWTkkonpRUtlFY6aYtwsoCTtbuDHK7o4HBF96K8URYTOZnx5GXG\nd00gMDsznhi7dVTekxCjSYIYIYQQo8JqtnJuzirOzVlFTVsdr5e+zeul79Dkcg74nMrWGp7Z+zee\n3fcCq2YuZX3+eSzJKJSFNIU4idViJn+mMc5lffixUChEXbOLY5UtlFQ6KalwcqyyhaqGgVtEB+P1\nBzla1szRst6zJc5IcXRNUtA5mUBakl1aUcW4kiBGCCHEqMuITeO/F3+EaxZ+kD3VB9lYspVdlfv7\nrJPTKRAKsr18N9vLd5PqSObCvHO4MO9cUmOSx7jmQkwemqaRnuQgPcnBmQtndD3e4fZRWtnCsUon\nJZVGi83xqha8wxxj06m6oYPqhg7e2V/V9ViM3doV0OTMiCMj2UF6soO0RAdWi1yEEKefBDFCCCFO\nG7PJzMqsxazMWkyjq5nNpdvYVLKVmvb6AZ9T39HIXw78m+cP/IdlmQtYl7+alVlLsEQwJbQQAhw2\nKwvzjXVlOgUCQSrq2iitbOG9/SWU1XVQ0+SnzR35jGg9tbt8vF/cwPvFDb0e1zRIibeRkRJDepKd\njOQYMpIdXX8pCTYZdyNGhQQxQgghxkSyPZGrFnyAj8y/hIO1h9lYspXt5XvwB/tfKyNEiN1VB9hd\ndYCE6DjW5J3NuvzVZMVljHHNhZj8zGYTOTPiyZkRT7q9tWsykRkz8ygNd0crrXBSWuWkoraN4PDn\nEAAgFIJ6p5t6p5sD/dXDpJGaaO8V2KT3uJ0UZ5O1bkREJIgRQggxpkyaiUUZhSzKKKTV08abx99l\nY8lWypyVAz7H6WnlH4de4x+HXmN+2jzOzz2DBekFZMamS798IU5BUryNpHgbKwrTux5ze/2cqG41\nJhGocBpd06qcuDwja7XpKRAMUdPYQU1jR7/pFrMp3ILj6GrNmZEcQ3qy0aqTEBsln3kBSBAjhBBi\nHMVFx3J5wToum3chRxuPsbFkK1tPvIdnkIU0i+qOUFR3BIBEWzzz0+axIG0eC9LnMTN+xqgv9inE\ndGOLslCQk0RBTlLXY8Fw8NHVYhNuvalvdo3qa/sDQSrr26msbwfq+qRHR5lJT3IM2JITa7dKkDNN\nSBAjhBBi3GmaxryUPOal5HH9so/x9on32FSylSONxwZ9XrO7hXfKdvJO2U4A4qJimJ82j/lpc1mQ\nXkBuwkyZ6UyIUWAyaWSmxpCZGsPqJVldj7d1eKkOt6zUNHRQ29TR1dJS09iB13fqrTc9ebwBympa\nKatp7TfdYbMYgU2Sg5lpsV3BWGri+C8YLEaXBDFCCCEmFLvVxvo557F+znmcaK5gU8lWNh/fTru3\n/+4nPbV623m3Yg/vVuwBwGG1U5g6hwXp81iQVsDspGyZIECIURTriGKuI4q5sxL7pIVCIZrbPNQ2\n9g5sOu/XNrnwB0Y2Y9pAOtx+SitbKK1s6fV4cnx0V0BTmJvM3OxE7NFyGjyZyX9PCCHEhJWTOJMb\nVlzLdUuv4t3yPWwq2cqB2sOEiGzUcYfPxa6q99lV9T4A0ZZoClPzu7qgDTSpgBDi1GmaRlKcjaQ4\nG3pu3+nSg8EQTa1uqnu04PQMeOqaXQRHOsPASRpbPGx7v5pt71cDYNIgZ0Z8V2Cj5yaRnRGHWSYV\nmDQkiBFCCDHhRZmtnJd7BuflnkG7twNVX8zBuiMU1R6huOnEgOvPnMzj97C3uoi91UUAWDQzWbZ0\n8uOyCSSbKEjJI8oSdTrfihAizGTSSEmwk5JgZyEpfdIDgSD1Tnc4sGmnptFFTWM7tU0uahraaWhx\nExphjBMMwbGqFo5VtfDq9uMA2KPNzJ2VREFOInpuMnpuEsnxtlN5i+I0kiBGCCHEpBIT5WBF1mJW\nZC0GwO1zoxpKKKo7wsHaIxxtPB5xC4s/FOCEq4oTrireqH0Xs8nM3OTZLEibx/y0eRSm5mOzykmM\nEOPBbDZ1DdhfTGqfdJ8/QF2zi+r6dorrKiluPEFleyXN/lrcpiZCIQi6HYTcMYTcDoLuGOO2xwGh\nvmPlXJ4A+4vr2V/cvY5VaqIdvUdrzZxZCdii5PR5IpD/ghBCiEnNZrWxdMYCls5YAIDX7+VI4zEO\n1h7mYN0RDjeU4gv4IiorEAyg6otR9cX8vehlTJqJ/KScrokCClPnEBPlOJ1vZ1oIhoJ0+N34pDuf\nGKZgMEhVWy2lTScoaTxBaXMZpU1ldPjCs6SZw3+ABpijPBDf1KuMUAhCXjuhcIDTHejEEPLYgO4A\np77ZRX2zi637jCngTSaN2TPi0XO7A5uZabGyts04kCBGCCHElBJliWJhegEL0wsA8Af8HG08zsG6\nwxTVHUXVF+MeZArnnoKhIEcbj3G08Rj/VBvQ0MhNnBme0rmAwrS5xEfHns63M6kEggGc7laa3E6a\nXE6aw9smdwvNLidNbifNrhaa3U4C4S6ANnM0KceSSLIlkGhPIMkWT5I9gURbAknh+4n2BOwWmV1q\nugkEA5S3VFHaVEZJ0wlKm8o41lw+6BTskdA00KJdEO2ChIZeaaGgRsjj6NFy0xnoxIAvmmAQSiqd\nlFQ6eemdYwDE2CzMy06iIDepq9UmMS76lOoohiZBjBBCiCnNYrZQmDaHwrQ5gHFiVNpUxsG6I7xb\nsovj7ZV4gt6IygoR4lhzOceay/nPkdcByI7PZH66MVHAjNh0bNZo7BYbNks00ZaoKbFujTfgo9nd\nQpOrORyctISDE2c4ODGClBZPW8STLnRyBzxUtFRT0VI9aL5ocxSJ9gSSOwOccHCTFA52EsPBT2xU\njAQ7k5Av4KPMWUlJUxml4YDluLMi4lbU0aKZQmj2drC3Yz5pnZpQwGwENZ4eXdPcDtrdMew54mPP\nke78GckOI6AJBzb5MxOIsk6cmREDwQBuvweX343b78Ht85AemzqpLspIECOEEGJaMZvMzE2ZzdyU\n2cwLzaKtvY1Wkwt3rJ+DtcZCmq3e9ojLK2upoqylilePbuk3PdoSjd3SHdjYrMbWbok+6X54G77f\n+We32no9dzSniHb53D0CESdN4VaS7laUFprczoimtz7dPAEvNW111LT1XQCxJ4vJYgQ0JwU5J7fu\nxEfHyRpC48Tj93K8ubyrdaW06QRlzsqu1rlTFR8dS15SDmaTmarWGmrb6kelbM0cQItphZhWTv4U\nhvyWrhabkNtBvTuG2sMOtuyLgaAFi1ljdlYC6XEhEh0aMQ4fNa5yoiwmrBYTURYzFouJKKsJq8Uc\nftyM1WLCatHAFMAX9OEJeHD5PEbgEQ5AXD53n4Ck9/3udJffSOsvONTQ+Mj8S7huyZWnvK/GggQx\nQgghpjWTZiLTnsb8gvlcXrCOYChIRUt1V0BzsO4Ize6WoQsagMfvweP30MzIy+jJYrIMGADZrNF9\nAqIocxRt3vbuFpMeXbxOtVvOROQP+qnvaKS+o3HQfCbNREJ0HIn2+B5d2RJIssd3Bzv2BBKj47GY\n5XRppDp8Lo41lXe1rpQ2naC8tZrQSKcVO0myPZG8pGzyknLID2+T7Ym9WuP8wQD17Q1UttZS3VZL\nZWsNVa21VLfWUt/RNOzWw/5oFj9arBNTrLNPWsgbTdDt4Lg7hmONDkJ1VjSzH44GwOxHMwfAFN6a\n/WgmY4spYOQzB9C00dlfgwkR4oWiV1ifv5qM2LTT/nqnSj6VQgghRA8mzUR2QhbZCVlcOm8NoVCI\nqrZaimqNgOZg3REaOpqGLug08Qf9tHr9w2otGm9mkzncOtI97sXX6qHD68KNl2AUXS1C7Z0DtE+z\nYChotD65nZRSNmjeuOjYPgFOZ/e1ngFQ9DSfnrvN0x4eaH+iq1tYVWvtqJWfFpNCXlI2+Uk5XYFL\noi1+yOdZTGZmxKUzIy69T5o34KOmrY6qViO4qW6tpaqtlqrW2lO6eNGTFuXpd4KBiWqyTLghQYwQ\nQggxCE3TyIrLICsug/VzzgOgtr2Bg7XGRAEH644M2cVpqooyW3udxHe2anS2YnSmxUY5+owNKioq\noqOjA4fDwfz587se9/q9xpibzhajHhMC9Oz61uJpG7P32eppo9XTxglnxaD57FZb7zE6vVp4uveJ\n3TrxJykIhoLhLks9uyN5enVfcvvddPhcnHBWUtpURl17w9AFRygzNr27hSU5h7zEbGKjY0at/E5R\nZmvXRYuTdfhcvYKa7r+aMQu2x5q/bia4Y2Ho2HDcSRAjhBBCDFN6TArpeeewNu8cABo7milpOkGH\nz4Xb7+7qs+7yu/ucALpP7r8+Abt09TwZH7Cr1Wk6GY+yRJEem0p6bN91QXryBwM4wxMM9By/03MW\ntEZ3M053a8SLoZ4ql8+Ny+emsrVm0HyDBX+J4f2cZEsgNjom4okh/AF/1zHVHWR0HoM9jzc3lbXV\ntHs6CJpCRNVtPGlchXGMegKRTXZxqjRNY2bcjB4tLDnMTpqFw2ofk9cfjMNqJz85l/zk3F6Ph0Ih\nWr3tVIW7pXX9tRld1MZq3w0kFNIgYCYUsEDQDAELoYAZguFtwEIo/DjBcL6AmaArjpArbtJMFy1B\njBBCCHGKkh2JJDsSR/TcYCiI1+896Sq3+6QT0B4DeU86Ie1M7zmId6BBzFOpW5TFZCbFkUSKI2nQ\nfMFgkBZvW7+TF5zcwjNW3Wi8AR817fXUtNcPms9sMpMYHd8V5Jg0U7+BscvvJhAMjKwyfYdwnDZm\nzcSshKyu7mD5STnkJM7EZplc0xFrmkZ8dCzx0bHoqXN6pYVCIZpczq5xN0YrTg3VrXVUt9f1+3+y\naFaiTFaspmgsmhWLFoVZs2LBiilkwRSyooWsaCELBI2Ag4CFYMBMyG8mGDAR8Jnx+00EvWa8vhD+\nQAifL4jPH8DrD+LzRxbIX7lmDlmpk2OGMglihBBCiHFk0kzGAH2rbVTKC4VC+IP+Xi0/jij7tB2g\nbjKZSLTFk2iLZzbZA+YLhUK0+zq6gpreXdl6r3UzVq1ngWCABlcTDa7JMZaiJ6vJQk7izF4D7rMT\nsogyW8e7aqeVpmldFzUWZei90gLBANv27aDN1UaCI54l8xcTbYnCPIozDg4kFArhDxjBjNdnbH3+\ngHHfH8DrC5KVFkNS3Oh8D42F6fdtJoQQQkxhmqZhNVuxmq2Tas2H8aZpGrFRMcRGxTArIXPQvG6f\nm6ZeXdl6BjnNE2pq6rEQbY5iduIs8noMuJ+VkDmq04FPBWaTmeToBGwBK44oB46osesyp2laeMpm\nM47JE6cMSoIYIYQQQohhsFltZFptZPYz21VPnYuEdndl6x6/0zP4aXG3jso0v8MRpVmJNkcRa485\naZruk9ct6lyzyNbPukVGmsNqnxKLuorJRYIYIYQQQojTIMpsNSaBiEkZNF8gGMDpbj0p0Ondha3Z\n3YKGNsgaQbautO4FU3svoNqZXnykBLfL1WdmOCEmEwlihBBCCCHGkdlkPqXJIYbLNMGndxYiEtL2\nJ4QQQgghhJhUJIgRQgghhBBCTCoSxAghhBBCCCEmFQlihBBCCCGEEJOKBDFCCCGEEEKISUWCGCGE\nEEIIIcSkIkGMEEIIIYQQYlKRIEYIIYQQQggxqUgQI4QQQgghhJhUJIgRQgghhBBCTCoSxAghhBBC\nCCEmFQlihBBCCCGEEJOKBDFCCCGEEEKISUWCGCGEEEIIIcSkIkGMEEIIIYQQYlLRQqHQeNdBTDA7\nd+6Ug0IIIYQQQoyJlStXasN9jrTECCGEEEIIISYVaYkRQgghhBBCTCrSEiOEEEIIIYSYVCSIEUII\nIYQQQkwqEsQIIYQQQgghJhUJYoQQQgghhBCTigQxQgghhBBCiElFghghhBBCCCHEpCJBjBBCCCGE\nEGJSkSBGCCGEEEIIMalIECOEEEIIIYSYVCSIEUIIIYQQQkwqEsQIIYQQQgghJhUJYoQQQgghhBCT\nigQxQgghhBBCiElFghghhBBCCCHEpCJBjBBCCCGEEGJSkSBGCCGEEEIIMalIECOEEEIIIYSYVCzj\nXQExNem6fi1wM7Ac4zgrBf4C3K+Uah9BedHAV4FPAPMAD3AAeAJ4SikVGqWqT3q6ricAXwGuBAqA\naKAKeB14UCn1/jDLiwOcgDZE1guVUm8Mu8JTiK7rO4EVQ2T7vlLqrmGUB9cMWgAAGg5JREFUmQDc\nDlwN5AJtwG7gF0qpF0ZY1SlD1/U3gDXDeEpEx6mu64uBfRGUl6eUOjaM158SdF2fB+wFtiilPjBI\nvkzgu8DlwEygCdgG/FQptfkUXn8VxufifCARqAZeBu5VSpWOtNzJYBj7fg3G7/C5QDrQAbwPPAv8\nWinlHcFrPwh8fYhsm5VSa4db9mQQyb7Xdf1DwD+GKkspNdRvan9lX4yx/88CHEBZ+LXuVUrVDbe8\nyU5aYsSo03X9fuBPwAWADQgAC4DvAbt0Xc8YZnk24DXgXmBxuDwbxhfzk8Dzuq7LsUyvL9gfAisB\nK+DHOPm9Adip6/onh1nsMowAJgDUDPI37B/EqUTXdQuwMHy3joH3U9swykwBtmOcrBVg7OME4CLg\n77qu/99o1X8Sa2Tw47IG46IHQBCoj7DcZeGtd4iyA6f8DiaZ8IWNZwH7EPnyMQLuLwGzMU6iU4EP\nA6/ruj7UyfBA5X4YIxD6aLg8F5ADfB7Yq+v6BSMpdzIYxr6/B3gDuAbIAtoxvjtWA48Ab4QvkAxX\n5+fCycCficYRlDvhRbrv6d5HLgb/7hju698MvAp8AIjH+F6bixHU7NN1vXC4ZU520hIjRpWu658A\nbsM4Wfg68JhSyqPr+lrgdxgnYn/AOAmL1CMYV9vqgE8Dr2Acu9eH064GvgP8aHTexeQUPol+ESNg\nKQW+AGwEQsAi4OfAWuBJXdcPKqV2RVh05xfyO0qp80e10lPLfIxWLz+QrZTyDJE/Es8BOlAMfFIp\ntU3XdQdwK3A3cKuu6+8ppZ4ZhdealJRSVw+WHg7sd2P8b+4cRktk53H/Z6XUp06hilOKruvJGN8z\nK4fIZwH+DWQAO4DrlVJFuq4nAt8HbgEe0HV9h1LqzWG8/jyME0kz8BRwm1KqQdf1ORgt82uBv+q6\nPk8p1Tzc9zeRDWPffwLjwgfAz4AfK6Vqwyfh12NcEDwH4yLgR4dZjaXh7UeVUhuH+dxJK9J9H9b5\n3fGgUurOUXr9CzB+w8H4//1YKdWq6/oy4GmMC7x/13V9sVLKPxqvORnI1WsxanRdNwN3he/+RCn1\ns84TuXD3jcsxrlqu13V9XYRl5mO0IAB8Sin1slIqpJTyKaWewOhiBvDN8I/jdHYNxol0ALhaKfWa\nUioY3l/7gcuAIozWmW8Po9zOL+Tdo1rbqadzPxWNRgAT7gpyEcYFgY8opbYBKKU6lFL3AD8JZ/2h\ntET2T9f1KIwT3hhgE3DPMJ4ux/1JdF0/B9gFnBdB9k8AhUArcIVSqghAKdWslLoVI0DXMILx4fgO\nRjead4DPKqUawuUWAx/ECPhTGbrL06QyzH3feeL8N6XUV5VStQBKqVal1CMYXcwArtZ1fWG/JfRf\nh2wgJXx3T6TPm+yGue/h9Hx3fB/jnP05pdS3lVKtAEqpPcDFGC1jhRgXeqcN+eETo+kijKbNEPDQ\nyYlKqQN09xON9IN2I8YVtwNKqVf6SX8Co4UmDmMMyHR2eXj7eviLrRellBvovGI/nDEEnV/I0+ZH\na4RGez/dFN6+FP7snOwnGAHrbIyum6Kv72BcOe0APjfMsXOdV5yn/XGv63q8ruu/B7ZitPQeAbYM\n8bTO4/fpAfrqdwaU5+u6PjvCesRhBEdgjKnp9f8Mj7fsvFo9JVrPhrvvwy1SevjuTwfI9gxGVycY\n2W9BWWfwOJWN5LgPH6N54buj8t2h67qO0cII8ODJ6UqpGoxWNZAgRogRuzC83dd55acfG8LbAQcj\nDlDmhv4Sw82mbwyzzKlqN/BX4KVB8lSFt/GRFHjSOI9pfzI3hNEOYoY69hsxrg6CHPt96Lo+C/hG\n+O49wxnsPV2vOA8iH+gcS/c4RmA44P7UdT0GODN8d6Djdx/GBSiI/PhdjdGSDEZX2f50vt7sKTJG\nYFj7HuOi328xxpEe7C+DUipA976P6LcgbLpd0BruvofuMaQtEeSNVOdvQROwc4A8ncf9eeHP37Qg\nY2LEaFoQ3hYNkudIeJuh63pKBFdz5g+jzIibxacipdRPGfjKW6fV4W15hMV2jvPwASFd13+BMT4p\nAajA6PP+sFKqZfg1nnI6r9yX6br+/zC6783EGOT6JvCQUqokkoJ0XU/CGEsAQx/7ZzDNj/0B3IPR\n7aicfq5eDqHzZO0EUKDr+heAszEG9JYCfwMeH6VxT5NBEPgncFfnWDrj4vCAdLovkg51/KYR+fHb\n+RtTrZRqGiDPUYzeAFq43EMRlj1RDWvfK6UOA58drMBwkJ4dvhvpbwF0fy4O6Lr+OeBaumcL3QX8\n6lRmnJuAhnvcQ+9A72Jd1/+H7llaD2N0b/29Uio4jHp0HvdqkNbkzvMgM0a3soGCnSlFghgxmrLC\n28G+FCt63M4EBgxidF2PpfsqUSRlZg5VwelM1/U84Lrw3f9E+LTOL2QNY3CuuUdaDsbg0C/oun5F\neNzNtHTSlfunMWbP65SNEeDcqOv6DUqp5yIocmaP23LsD5Ou6wV0dzu6XynlGix/PzqP+wyMsRc9\n5WJ07bgxfNyXjbiik0S41eTDw3hKVo/bo3n8Dvkbo5Ty6rpejxEcTfrPxQj2fSTuwPhO92O02ESq\n83PxVXp/x4ERuH48PGPi16fCsgcj3Ped++hMjEmIesoDLgVu0HX9qmFMPDGSc6tpQbqTidHUGXAM\ntg5Mz5OJoZqxe6ZHUuZwmsWnlfA01c9hXEl2Aw9E+NTOL2QLxsDo8zAGSadiTLhQg3GS/p/wdMDT\n1bIet8sxZvxJxthXF2NcFYsGfq/r+uq+T+9Djv1T81WMk7RG4DcjeH7n/zMa43OzAuOzk4UxM1wb\nxmxA/whPHiB663k8dgySb7jHbyS/MSMpd9rQdf1qjKmowWhNjGiq35PGeviBr2FcbLFhfF46L858\nFfjmqFV48un53fEIRm8GG8bYxbsw9t1a4I/DKHO0z62mDGmJEaOp83gabL2Qnt0vhjr+eqZHUqYc\nz/0In2T9le4+6rcopU5E+PQyjEUyS+k9MLoD+J2u69swTtA7xx/c3m8pU58HYyySA7jqpK4uG8LT\nY27DOPF9EKNr0mDk2B+hcFe868N3fzGSxXUBBbyFsaDd/2/v3qPumu88jr8fkpIYtypxq6EuX9WO\ne6VK61IVhkwnHXeLMRMq7tZUpWgNLUooxVJK3aapqaIGpWGQKLrUZYhbfYUpliapYEQkRMQzf3x/\nu2fn5Oxzy5Pk2c/+vNZ61j5n7/377f3ss8/Z+7t/t9Ny86cBl5jZU8T3Ykui6s4Vi7DLA1F2Ps5r\n8US+0/O3nWtMN/lWgpntRgxx0ENUbRrbQfJVgf8iSiKPcvdHc8smE6Uws4HRwPfM7Gp3b3dMpoHk\nKeL8/Lm7/yQ3/1XgTDN7Gfg5sKeZ7eHuE9rIs+V57+69ZjaPaDNWmfO+Mv+oLBHZk4BmTyaXy71u\ndSHKP1loJ89KD7bYSKqSdyu1cXkudPer2k3v7j8GCgdUdHc3s2uA44j60ZUMYtz9HmIQsqLlc8zs\nDCKYHG5m67UIJHXud+9gIpj8GLi8mwzc/dQWy39nZncCI4nzXkHMgrLzd7CZ9TQJZDo9f9u5xnST\n74BnZl8nBqFejihB39vd2x54N/1eNR2TiegN8DCiBPrviaq1leLuo1ssH29mJxMPtPYD2gliWp73\nZtZDrdOLypz3qk4mfWlWmjYbzXZo7nWrxuCzcq/byVONy3PMbC2iO8gsgLnI3b+1GDaVdTm5Qaq2\nJo3lu+bcrHCtoHO/e6PS9EF3n9Z0zUWTfZ6tPssqyp+/zX4TOj1/27nGdJPvgJZGer+FCGCmAru4\n+5TmqTqXeiXNOlLQ96JYp78dfX1vNWAoiJG+lDVwXafJOvllTW8w0rgmWXF0O3lObbp3FWJmmxHV\nl7ZKs05398U1+NvM3OtWNxdV1slxep3oYQl07rctVSXLxsy5aTFvLvs8dc4vLN/ZQV+evy2vMWa2\nHLVONir9vTCzHjMbR7TNWJbouW3HbODRxUTfi9Y6PUad3ltV5rxXdTLpS88B+wCbNFln4zSd1qSL\nzPo8d2ozz4Z94leNmX2R6H1sVWIwxDHu/rMu8lmBaFuwOnCLuz9bsGrWFfAHLHijXhlmdiDR6PVZ\nd7+9YLVhudfTm+Xn7u+Z2WtE/fNNKBhrA5379Xandl27pZsMzGxN4ndsDeAKdy+6Icg+z6afZUW9\nSHTLPpg4f18qWG+jNG33/M0GfV3LzFbMRi1vkGdPh/kOOGa2DFGdK+ul7zFgr4KBR9vJ7yvAcGCu\nu1/SZNXKfi/MbCNgL+K34wfpQWwjnR6j7LzfuMk62bL5xPevElQSI31pYppulZ6INpJVbWq3L/ks\nz682WpgGY8xGHB5I/dN3xcw2pxbAvE80Mu84gEk+ItrDnEGta+ZGdk/TRzrs+34gOQo4m+ZtgrLj\n9D4xMGkrrc791aiVtFX+3E+yzitecvdub6KGApcC3wP2brJe9nn+vsvtDFjuPo8Y5RyKz98tiAck\n0P75+yjRqcgy1EYwr5ddY6alMVOq6kpqAczdRBWyrgKYZDdgHHBBamu5EDP7DLBhelvF78V6xDXz\nVGolwgtIwWX2nWj3GE1K0zXM7O8K1snO+8fcvVmPgAOKghjpSw8SfZUPokEXi+nLNzK9bbfB7Y1E\ntZqtzWxEg+XfJC6EM4lBpCorXVh+TQQwc4A93f2ObvNLA/llYwiMNrNPNdjm1sAB6W3bHQYMQNlx\n/qKZ7VS/0MxWBr6b3o5v8oQuL+uy9Otm1mgwwLHUqogUldRUzTZp+oduM0gDkmZPPk9o1M7LzEYS\ng75Ctc/7ZrLzd7SZDWuwPOv1baK7ezsZppuzrKRzrJnlx63KSo9PSG8r29mCmR1F9BIG0aPYyC57\n6cvLfuMGA0VVk8elqbNgG8CqeIjo1h3i/OxpsM4xRHfL84Dr2snU3V8hqodDBEgLSO1fswFOu+rM\npKwUxEifSU/hswvTWDM71cyGAJjZzsTo7ssC97n7X3/gzGwdM3sh/R1bl+cLwPXp7X+a2ahUz3eQ\nmR1BbYT6CzRqPKdRewp2VLsjJzc7/sC/EyUyawATzGzbdPwHm9l+RI9cg4kxZKocRF5O1FvuAW40\ns3/Kxg8xs+HEk7QNiF6BsmAGM9sud+xH5TN097uJ0phliXF4dk5phpjZqcBJadUz3X3+4vznSmTz\nNH261YrNjj2137HNiLFgLKUZYmZHEg9XAK519yo+cW7HtcTN7MrAPWa2JYCZrWJmlwL7Ej3InVmf\n0Mx+mH02DfI9neh9aQfghlT9LysFuJP4ns0g2oFUTiqhzYKJ54CDU8lYu+kbHnt3f4wIiCC6UD7F\nzFZKaf7WzH5JjI81Hzh6IAx22Sl3/xD4fnq7KzDezNYFMLOVzOw0ar19nuXur+bTm9l/pGN/X4Ps\ns1L+A8zsYjNbJaXZkrgOr0R0qtDJ+DOlpzYx0qfc/Xoz2x44kqhec4aZfQCsmK0C7F+XbDAx2i/E\nIIr1TiRuJrYjShrmEDd2WTeav0rbqqzUmPXo9LYXGJcadDbzhTTaeOHxd/fHzeyfgWuIp9yPsfDx\n/z3wjSpetDKpDcvexFgxawM3A/PMbC6QVb2YBuyRevDJDKV27FdukPWhRAC0ITDRzGYRvT1lXWme\n7+7j+/J/KasUNGbVWJuNbJ0pPPbuflvqBvVcYrDSF8zsPeKcz479rcCYRd3vgcrdPzSzfYkHHJsD\nT5rZTOL7kJWgHF/wsGUtap9Nfb5TzGw08RR7P2DflO8qaZXZRPfBbzdKXwFHUPvNWQ/43xSDF7nR\n3U/IvS889kQbybuIAPIc4Gwze5fa92cuMZ7Y/V3ue+m5+8VmtiEx7MBBwEHpGK1A7by/DPhBg+Tr\nEcd+odJfd38gPbw6BzgeOCb9JmXH/i9Em6eP+vL/6e9UEiN9zt3HEE/ZJhI3vMsBU4DzgOHu/laH\n+c0k6peOJQbVgniC9zhx435glW+gk89TG6W3h2g42Opv2YWzWZi730C0vbiaGLBrEPG5PkQEq19J\nn1GlufvTxM3aWcAzRAlWD/AsccHaLK3TSZ6vE6PFn008ZfsEcaPwIHHeV3lk7Hr5ALydIKYpdz8f\n+BJRLWoq8Ts2k3jqeYC7fyM9eZUC7v4M8dt0KTFg7hCiu9i7gd3d/bIu8x1PPNS6CXiDuGmfRgwi\nuHXdQIxVs0Pu9Yq0vg40enjSUKrtsDMRvD9EfJbLA68Q1Sq30EMVcPfjgRFE1cc3iPN+BlGSNcLd\nj+3mnsXdf0i0fbkLeIcIjF4lagJslarCVkpPb2/V7/1ERERERKRMVBIjIiIiIiKloiBGRERERERK\nRUGMiIiIiIiUioIYEREREREpFQUxIiIiIiJSKgpiRERERESkVBTEiIiIiIhIqSiIERERERGRUlEQ\nIyIiIiIipaIgRkRERERESkVBjIiIiIiIlIqCGBERERERKZVBS3sHRERE6pnZJGCnLpOv6u7v9OHu\nLHG5/9/dfdOlvDsiIv2OSmJERERERKRUVBIjIiL93VYdrj9rseyFiIj0GwpiRESkX3P3p5b2PoiI\nSP+i6mQiIiIiIlIqCmJERERERKRUVJ1MREQGLDPrTS8PAW4GTgEOBNYj2s48DFzk7g+0yGcT4Hhg\nt5T2I+AV4LfAj919Wov0GwFjgBHA+kAP8BJwW9p+097UzGwP4DhgODAUeB24HfhR0bbNbG3gBGAP\nYKO0zb+k//k6d7+32TZFRPqznt7e3tZriYiILEH5LpbdvWcR8skucmOA0cAXClYd6+7jCvI4ERgH\nDC5IOxs41N1/XZB+NPAT4BMF6f8M7O7uz+fSTCL+/xeJQOmEgrTTgV3d/Y9129wOmACsWpAO4Frg\ncHf/uMk6IiL9kqqTiYhIFZxJBDBPAwcD2wNHA1kpxnlmdkh9IjP7JnAREcC8BXwH2BHYBTgHmAOs\nANxkZl9rkH4f4GdEAPMWcCrwZaJE5krgY2Ad4HYzG9pgvzchApjX0nRHYF/gd2n5msBVddscBPyS\nCGCmAycRJUg7AEcQgRHAvwAHNdimiEi/p5IYERHpd+oGu+yki+U/ufvMXD75i9xDRInH+7nl6wKP\nEIHEVGBjd5+Tln0K+BPwN0QQ8WV3f61uP7cAHgBWJkpUPuPuH6ZlQ4Apubx3cPdX6tKfBJyf3h7l\n7lc0+P+fA3Zy97dy6ZZJ290xzVrf3V9Ny3YGJqb527v7I3XbXB14BhgG3OvuCwVfIiL9nUpiRESk\nv3uyg79dCvL4CDgkH8AAuPvrwMnp7dpE+5HM4UQAA3B0fQCT0k8mSlcggpV9cotHpHkAJ9cHMMmF\nRIADsGvBvn8rH8Ck7X4MXJ2btVnu9Zq51y832OcZwOnAecB1BdsUEenXFMSIiEgV3FMQRADcAmTB\nTT6I+WqaTgfuapL39cCH6fVuufl7punctI2FpGBkF2CYu+/XYJUPgUkF252Se51v++K5178ys80b\nbPdKd/+Ou/+iIG8RkX5NvZOJiEi/tigN+3MeKVrg7nPN7AWi2tomuUWfTdMn3L2w7rW7zzaz54Et\nWbBEZOPaKv5Bk/QvFi0D3nT3uQXL8vP/2umAuz+ZqqPtnP4mm9nLREP/CcD9WZU5EZGyUkmMiIhU\nQdMukIE303SN3LzV0vSNNvKfkab5EpEsr7fo3qw216sP9PYFfpN7vyFwDHAH8KaZ3WRmX1qE/RIR\nWaoUxIiISBV81GJ5dj2cl5vXSQnQsmmaL7FZarUd3P1Ndx9JlA6dCzyfWzyEaLvzkJl9e2nsn4jI\nolIQIyIiVfDJFstXT9PpuXlv1y1rJ/3buXnZAJattr3YuPtkdz/F3T8HfJrorOAuItjqAc5NA3GK\niJSKghgREamChRq3Z1JXyJumt8/kFj2XptuYWWGpjJmtSK39TL6x/R9rq1jRQJeY2blmNsXM7khd\nJy8SMxtkZpua2bb5+e7+urtf7e57Acel2csAuy/qNkVEljQFMSIiUgUjCwaTBNifGIwSos1I5t40\nXYtaT2ONHEqt6tj9ufmT0nR5YGSjhCk4GglsBKyReitbVHcSAdStTdaZkHu9fB9sU0RkiVIQIyIi\nVfBJ4OL6mWa2AdFmBGAyMSBm5hpqXS9fZmbrUCd1X3x2ejsVuDm3+CZq1cvON7NhDfbrGGo9ml3f\n+t9oy2/TdF0zO7ZgnXx3zv/TR9sVEVli1MWyiIj0a2a2ZYdJZrj7nxvMP9zMPg1cRvQmNhw4jWjP\nMh84xt3nZyu7+wwzOxH4KbA+8KSZXQA8TFw/vwacCKxAtDE5zN1n59LPMbPjgF8AGwBPmNl5wONE\nz2f/CPxrWn0ycFWH/2eRa4BvE4N3Xmxm2xGlMlOBYcA/AIeldf/g7pP6aLsiIkuMghgREenvnuxw\n/YuJ4CLvNuBzwIj0lzcH2N/dH67PyN2vNLMVgHFEsHNeg+29Axzq7v/dIP0NZrYacCGwDnBJg/TP\nAHu5+7wGyzrm7u+a2SiiAf9qwCHpr9F2R/XFNkVEljRVJxMRkSqYDmwL/Ah4FfiAGNn+EuCz7v6b\nooTufhHweeByouH++8D/AU8A3wU2dfc7mqS/lOhY4Erg5bTt94BHgX8DtisoOeqauz9KVFM7K+3n\nu0Q3028A9wFHAtu4e6vxc0RE+qWe3t7CQYhFRERKzcyyi9xP3X3MUt0ZERHpMyqJERERERGRUlEQ\nIyIiIiIipaIgRkRERERESkVBjIiIiIiIlIqCGBERERERKRX1TiYiIiIiIqWikhgRERERESkVBTEi\nIiIiIlIqCmJERERERKRUFMSIiIiIiEipKIgREREREZFSURAjIiIiIiKloiBGRERERERKRUGMiIiI\niIiUioIYEREREREpFQUxIiIiIiJSKgpiRERERESkVBTEiIiIiIhIqSiIERERERGRUvl/4D5BHq4U\nhMAAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": { "image/png": { "height": 270, "width": 408 } }, "output_type": "display_data" } ], "source": [ "plt.plot(train_errors, label='Training set')\n", "plt.plot(validation_errors, label='Validation set')\n", "plt.plot(test_errors, label='Test set')\n", "plt.legend(loc='best', frameon=True)\n", "plt.xlabel('Epochs')\n", "plt.ylabel('Error')" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## Programming Multilayer Perceptron" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We need to start by defining a hidden layer.\n", "\n", "Typical hidden layer of a MLP: units are fully-connected and have sigmoidal activation function. Weight matrix W is of shape (n_in,n_out) and the bias vector b is of shape (n_out,).\n", "\n", "**Note**: \n", "* The nonlinearity used here is $\\tanh()$\n", "* Hidden unit output is given by: `tanh(dot(input,W) + b)`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The softmax function, or normalized exponential, is a generalization of the logistic function that \"squashes\" a $K$-dimensional vector $\\vec{z}$ of arbitrary real values to a $K$-dimensional vector $\\sigma(\\vec{z})$ of real values in the range (0, 1) that add up to 1. The function is given by\n", "\n", "$$\n", "\\sigma(\\mathbf{z})_j = \\frac{e^{z_j}}{\\sum_{k=1}^K e^{z_k}}\\quad \\text{for}\\ j = 1,\\ldots, K.\n", "$$" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": true }, "outputs": [], "source": [ "class HiddenLayer():\n", " def __init__(self,\n", " rng,\n", " input,\n", " n_in,\n", " n_out,\n", " W=None,\n", " b=None,\n", " activation=T.tanh):\n", " \"\"\"\n", " :type rng: numpy.random.RandomState\n", " :param rng: a random number generator used to initialize weights\n", "\n", " :type input: theano.tensor.dmatrix\n", " :param input: a symbolic tensor of shape (n_examples, n_in)\n", "\n", " :type n_in: int\n", " :param n_in: dimensionality of input\n", "\n", " :type n_out: int\n", " :param n_out: number of hidden units\n", "\n", " :type activation: theano.Op or function\n", " :param activation: Non linearity to be applied in the hidden\n", " layer\n", " \"\"\"\n", " self.input = input\n", "\n", " # `W` is initialized with `W_values` which is uniformely sampled\n", " # from sqrt(-6./(n_in+n_hidden)) and sqrt(6./(n_in+n_hidden))\n", " # for tanh activation function\n", " # the output of uniform if converted using asarray to dtype\n", " # theano.config.floatX so that the code is runable on GPU\n", " # Note : optimal initialization of weights is dependent on the\n", " # activation function used (among other things).\n", " # For example, results presented in [Xavier10] suggest that you\n", " # should use 4 times larger initial weights for sigmoid\n", " # compared to tanh\n", " # We have no info for other function, so we use the same as\n", " # tanh.\n", " if W is None:\n", " W_values = numpy.asarray(\n", " rng.uniform(\n", " low=-numpy.sqrt(6. / (n_in + n_out)),\n", " high=numpy.sqrt(6. / (n_in + n_out)),\n", " size=(n_in, n_out)),\n", " dtype=theano.config.floatX)\n", " if activation == theano.tensor.nnet.sigmoid:\n", " W_values *= 4\n", "\n", " W = theano.shared(value=W_values, name='W', borrow=True)\n", "\n", " if b is None:\n", " b_values = numpy.zeros((n_out, ), dtype=theano.config.floatX)\n", " b = theano.shared(value=b_values, name='b', borrow=True)\n", "\n", " self.W = W\n", " self.b = b\n", "\n", " lin_output = T.dot(input, self.W) + self.b\n", " self.output = (lin_output\n", " if activation is None else activation(lin_output))\n", " # parameters of the model\n", " self.params = [self.W, self.b]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Multi-Layer Perceptron Class\n", "\n", "A multilayer perceptron is a feedforward artificial neural network model that has one layer or more of hidden units and nonlinear activations. Intermediate layers usually have as activation function tanh or the sigmoid function (defined here by a ``HiddenLayer`` class) while the top layer is a softmax layer (defined here by a ``LogisticRegression`` class)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The softmax function, or normalized exponential, is a generalization of the logistic function that \"squashes\" a $K$-dimensional vector $\\vec{z}$ of arbitrary real values to a $K$-dimensional vector $\\sigma(\\vec{z})$ of real values in the range (0, 1) that add up to 1. The function is given by\n", "\n", "$$\n", "\\sigma(\\mathbf{z})_j = \\frac{e^{z_j}}{\\sum_{k=1}^K e^{z_k}}\\quad \\text{for}\\ j = 1,\\ldots, K.\n", "$$" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": true }, "outputs": [], "source": [ "class MLP:\n", " def __init__(self, rng, input, n_in, n_hidden, n_out, activation=T.tanh):\n", " \"\"\"Initialize the parameters for the multilayer perceptron\n", "\n", " :type rng: numpy.random.RandomState\n", " :param rng: a random number generator used to initialize weights\n", "\n", " :type input: theano.tensor.TensorType\n", " :param input: symbolic variable that describes the input of the\n", " architecture (one minibatch)\n", "\n", " :type n_in: int\n", " :param n_in: number of input units, the dimension of the space in\n", " which the datapoints lie\n", "\n", " :type n_hidden: int\n", " :param n_hidden: number of hidden units\n", "\n", " :type n_out: int\n", " :param n_out: number of output units, the dimension of the space in\n", " which the labels lie\n", " \"\"\"\n", "\n", " # Since we are dealing with a one hidden layer MLP, this will translate\n", " # into a HiddenLayer with a tanh activation function connected to the\n", " # LogisticRegression layer; the activation function can be replaced by\n", " # sigmoid or any other nonlinear function\n", " self.hidden_layer = HiddenLayer(\n", " rng=rng,\n", " input=input,\n", " n_in=n_in,\n", " n_out=n_hidden,\n", " activation=activation)\n", "\n", " # The logistic regression layer gets as input the hidden units\n", " # of the hidden layer\n", " self.log_regression_layer = LogisticRegression(\n", " input=self.hidden_layer.output, n_in=n_hidden, n_out=n_out)\n", "\n", " # L1 norm ; one regularization option is to enforce L1 norm to be small\n", " self.L1 = abs(self.hidden_layer.W).sum() + abs(\n", " self.log_regression_layer.W).sum()\n", "\n", " # square of L2 norm ; one regularization option is to enforce\n", " # square of L2 norm to be small\n", " self.L2_sqr = (self.hidden_layer.W**2).sum() + (\n", " self.log_regression_layer.W**2).sum()\n", "\n", " # negative log likelihood of the MLP is given by the negative\n", " # log likelihood of the output of the model, computed in the\n", " # logistic regression layer\n", " self.negative_log_likelihood = self.log_regression_layer.negative_log_likelihood\n", "\n", " # same holds for the function computing the number of errors\n", " self.errors = self.log_regression_layer.errors\n", "\n", " # the parameters of the model are the parameters of the two layer it is\n", " # made out of\n", " self.params = self.hidden_layer.params + self.log_regression_layer.params\n", "\n", " # keep track of model input\n", " self.input = input" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": true }, "outputs": [], "source": [ "dataset='mnist.pkl.gz'\n", "batch_size=30" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": true }, "outputs": [], "source": [ "datasets = load_data(dataset)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": true }, "outputs": [], "source": [ "train_set_x, train_set_y = datasets[0]\n", "valid_set_x, valid_set_y = datasets[1]\n", "test_set_x, test_set_y = datasets[2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute number of minibatches for training, validation and testing" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": true }, "outputs": [], "source": [ "n_train_batches = train_set_x.get_value(borrow=True).shape[0] // batch_size\n", "n_valid_batches = valid_set_x.get_value(borrow=True).shape[0] // batch_size\n", "n_test_batches = test_set_x.get_value(borrow=True).shape[0] // batch_size" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": true }, "outputs": [], "source": [ "patience = 5000 # look as this many examples regardless\n", "validation_frequency = min(n_train_batches, patience // 2)\n", "# go through this many\n", "# minibatches before checking the network\n", "# on the validation set; in this case we\n", "# check every epoch" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Allocate symbolic variables for the data" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": true }, "outputs": [], "source": [ "index = T.lscalar() # index to a [mini]batch\n", "x = T.matrix('x') # the data is presented as rasterized images\n", "y = T.ivector('y') # the labels are presented as 1D vector of [int] labels" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": true }, "outputs": [], "source": [ "rng = numpy.random.RandomState(42)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Creating the MLP class instance" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": true }, "outputs": [], "source": [ "learning_rate=0.05\n", "L1_reg=0.0001\n", "L2_reg=0.0001 \n", "n_epochs=300\n", "n_hidden=500" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": true }, "outputs": [], "source": [ "mlp = MLP(rng=rng, input=x, n_in=28 * 28, n_hidden=n_hidden, n_out=10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The cost we minimize during training is the negative log likelihood of the model plus the regularization terms (L1 and L2); cost is expressed here symbolically." ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": true }, "outputs": [], "source": [ "cost = mlp.negative_log_likelihood(y) + L1_reg * mlp.L1 + L2_reg * mlp.L2_sqr" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compiling a Theano function that computes the mistakes that are made by the model on a minibatch" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": true }, "outputs": [], "source": [ "test_model = theano.function(\n", " inputs=[index],\n", " outputs=mlp.errors(y),\n", " givens={\n", " x: test_set_x[index * batch_size:(index + 1) * batch_size],\n", " y: test_set_y[index * batch_size:(index + 1) * batch_size]\n", " })" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": true }, "outputs": [], "source": [ "validate_model = theano.function(\n", " inputs=[index],\n", " outputs=mlp.errors(y),\n", " givens={\n", " x: valid_set_x[index * batch_size:(index + 1) * batch_size],\n", " y: valid_set_y[index * batch_size:(index + 1) * batch_size]\n", " })" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": true }, "outputs": [], "source": [ "train_set_loss = theano.function(\n", " inputs=[index],\n", " outputs=mlp.errors(y),\n", " givens={\n", " x: train_set_x[index * batch_size:(index + 1) * batch_size],\n", " y: train_set_y[index * batch_size:(index + 1) * batch_size]\n", " })" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute the gradient of cost with respect to the parameters (sorted in `classifier.params`) the resulting gradients will be stored in a list `gparams`." ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": true }, "outputs": [], "source": [ "gparams = [T.grad(cost, param) for param in mlp.params]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Specify how to update the parameters of the model as a list of `(variable, update expression)` pairs." ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": true }, "outputs": [], "source": [ "updates = [(param, param - learning_rate * gparam) \n", " for param, gparam in zip(mlp.params, gparams)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compiling a Theano function `train_model` that returns the cost, and at the same time, updates the parameter of the model based on the rules\n", "defined in `updates`." ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": true }, "outputs": [], "source": [ "train_model = theano.function(\n", " inputs=[index],\n", " outputs=cost,\n", " updates=updates,\n", " givens={\n", " x: train_set_x[index * batch_size:(index + 1) * batch_size],\n", " y: train_set_y[index * batch_size:(index + 1) * batch_size]\n", " })" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "epoch 1, minibatch 1666/1666, validation error 8.518519%\n", "epoch 2, minibatch 1666/1666, validation error 7.907908%\n", "epoch 3, minibatch 1666/1666, validation error 7.487487%\n", "epoch 4, minibatch 1666/1666, validation error 6.996997%\n", "epoch 5, minibatch 1666/1666, validation error 6.466466%\n", "epoch 6, minibatch 1666/1666, validation error 5.875876%\n", "epoch 7, minibatch 1666/1666, validation error 5.335335%\n", "epoch 8, minibatch 1666/1666, validation error 4.984985%\n", "epoch 9, minibatch 1666/1666, validation error 4.634635%\n", "epoch 10, minibatch 1666/1666, validation error 4.284284%\n", "epoch 11, minibatch 1666/1666, validation error 4.104104%\n", "epoch 12, minibatch 1666/1666, validation error 3.883884%\n", "epoch 13, minibatch 1666/1666, validation error 3.603604%\n", "epoch 14, minibatch 1666/1666, validation error 3.493493%\n", "epoch 15, minibatch 1666/1666, validation error 3.383383%\n", "epoch 16, minibatch 1666/1666, validation error 3.283283%\n", "epoch 17, minibatch 1666/1666, validation error 3.163163%\n", "epoch 18, minibatch 1666/1666, validation error 3.103103%\n", "epoch 19, minibatch 1666/1666, validation error 3.053053%\n", "epoch 20, minibatch 1666/1666, validation error 3.013013%\n", "epoch 21, minibatch 1666/1666, validation error 2.992993%\n", "epoch 22, minibatch 1666/1666, validation error 2.972973%\n", "epoch 23, minibatch 1666/1666, validation error 2.952953%\n", "epoch 24, minibatch 1666/1666, validation error 2.932933%\n", "epoch 25, minibatch 1666/1666, validation error 2.912913%\n", "epoch 26, minibatch 1666/1666, validation error 2.812813%\n", "epoch 27, minibatch 1666/1666, validation error 2.792793%\n", "epoch 28, minibatch 1666/1666, validation error 2.812813%\n", "epoch 29, minibatch 1666/1666, validation error 2.742743%\n", "epoch 30, minibatch 1666/1666, validation error 2.682683%\n", "epoch 31, minibatch 1666/1666, validation error 2.652653%\n", "epoch 32, minibatch 1666/1666, validation error 2.642643%\n", "epoch 33, minibatch 1666/1666, validation error 2.592593%\n", "epoch 34, minibatch 1666/1666, validation error 2.602603%\n", "epoch 35, minibatch 1666/1666, validation error 2.562563%\n", "epoch 36, minibatch 1666/1666, validation error 2.542543%\n", "epoch 37, minibatch 1666/1666, validation error 2.532533%\n", "epoch 38, minibatch 1666/1666, validation error 2.522523%\n", "epoch 39, minibatch 1666/1666, validation error 2.512513%\n", "epoch 40, minibatch 1666/1666, validation error 2.502503%\n", "epoch 41, minibatch 1666/1666, validation error 2.492492%\n", "epoch 42, minibatch 1666/1666, validation error 2.502503%\n", "epoch 43, minibatch 1666/1666, validation error 2.492492%\n", "epoch 44, minibatch 1666/1666, validation error 2.462462%\n", "epoch 45, minibatch 1666/1666, validation error 2.432432%\n", "epoch 46, minibatch 1666/1666, validation error 2.432432%\n", "epoch 47, minibatch 1666/1666, validation error 2.442442%\n", "epoch 48, minibatch 1666/1666, validation error 2.432432%\n", "epoch 49, minibatch 1666/1666, validation error 2.432432%\n", "epoch 50, minibatch 1666/1666, validation error 2.432432%\n", "epoch 51, minibatch 1666/1666, validation error 2.442442%\n", "epoch 52, minibatch 1666/1666, validation error 2.462462%\n", "epoch 53, minibatch 1666/1666, validation error 2.472472%\n", "epoch 54, minibatch 1666/1666, validation error 2.462462%\n", "epoch 55, minibatch 1666/1666, validation error 2.462462%\n", "epoch 56, minibatch 1666/1666, validation error 2.462462%\n", "epoch 57, minibatch 1666/1666, validation error 2.462462%\n", "epoch 58, minibatch 1666/1666, validation error 2.502503%\n", "epoch 59, minibatch 1666/1666, validation error 2.502503%\n", "epoch 60, minibatch 1666/1666, validation error 2.502503%\n", "epoch 61, minibatch 1666/1666, validation error 2.492492%\n", "epoch 62, minibatch 1666/1666, validation error 2.502503%\n", "epoch 63, minibatch 1666/1666, validation error 2.482482%\n", "epoch 64, minibatch 1666/1666, validation error 2.482482%\n", "epoch 65, minibatch 1666/1666, validation error 2.482482%\n", "epoch 66, minibatch 1666/1666, validation error 2.482482%\n", "epoch 67, minibatch 1666/1666, validation error 2.492492%\n", "epoch 68, minibatch 1666/1666, validation error 2.452452%\n", "epoch 69, minibatch 1666/1666, validation error 2.452452%\n", "epoch 70, minibatch 1666/1666, validation error 2.442442%\n", "epoch 71, minibatch 1666/1666, validation error 2.432432%\n", "epoch 72, minibatch 1666/1666, validation error 2.432432%\n", "epoch 73, minibatch 1666/1666, validation error 2.422422%\n", "epoch 74, minibatch 1666/1666, validation error 2.402402%\n", "epoch 75, minibatch 1666/1666, validation error 2.402402%\n", "epoch 76, minibatch 1666/1666, validation error 2.402402%\n", "epoch 77, minibatch 1666/1666, validation error 2.412412%\n", "epoch 78, minibatch 1666/1666, validation error 2.402402%\n", "epoch 79, minibatch 1666/1666, validation error 2.402402%\n", "epoch 80, minibatch 1666/1666, validation error 2.402402%\n", "epoch 81, minibatch 1666/1666, validation error 2.402402%\n", "epoch 82, minibatch 1666/1666, validation error 2.402402%\n", "epoch 83, minibatch 1666/1666, validation error 2.402402%\n", "epoch 84, minibatch 1666/1666, validation error 2.392392%\n", "epoch 85, minibatch 1666/1666, validation error 2.392392%\n", "epoch 86, minibatch 1666/1666, validation error 2.382382%\n", "epoch 87, minibatch 1666/1666, validation error 2.382382%\n", "epoch 88, minibatch 1666/1666, validation error 2.382382%\n", "epoch 89, minibatch 1666/1666, validation error 2.392392%\n", "epoch 90, minibatch 1666/1666, validation error 2.392392%\n", "epoch 91, minibatch 1666/1666, validation error 2.402402%\n", "epoch 92, minibatch 1666/1666, validation error 2.392392%\n", "epoch 93, minibatch 1666/1666, validation error 2.392392%\n", "epoch 94, minibatch 1666/1666, validation error 2.382382%\n", "epoch 95, minibatch 1666/1666, validation error 2.392392%\n", "epoch 96, minibatch 1666/1666, validation error 2.402402%\n", "epoch 97, minibatch 1666/1666, validation error 2.382382%\n", "epoch 98, minibatch 1666/1666, validation error 2.382382%\n", "epoch 99, minibatch 1666/1666, validation error 2.362362%\n", "epoch 100, minibatch 1666/1666, validation error 2.352352%\n", "epoch 101, minibatch 1666/1666, validation error 2.342342%\n", "epoch 102, minibatch 1666/1666, validation error 2.342342%\n", "epoch 103, minibatch 1666/1666, validation error 2.342342%\n", "epoch 104, minibatch 1666/1666, validation error 2.342342%\n", "epoch 105, minibatch 1666/1666, validation error 2.312312%\n", "epoch 106, minibatch 1666/1666, validation error 2.292292%\n", "epoch 107, minibatch 1666/1666, validation error 2.292292%\n", "epoch 108, minibatch 1666/1666, validation error 2.282282%\n", "epoch 109, minibatch 1666/1666, validation error 2.292292%\n", "epoch 110, minibatch 1666/1666, validation error 2.282282%\n", "epoch 111, minibatch 1666/1666, validation error 2.272272%\n", "epoch 112, minibatch 1666/1666, validation error 2.262262%\n", "epoch 113, minibatch 1666/1666, validation error 2.282282%\n", "epoch 114, minibatch 1666/1666, validation error 2.282282%\n", "epoch 115, minibatch 1666/1666, validation error 2.292292%\n", "epoch 116, minibatch 1666/1666, validation error 2.292292%\n", "epoch 117, minibatch 1666/1666, validation error 2.282282%\n", "epoch 118, minibatch 1666/1666, validation error 2.272272%\n", "epoch 119, minibatch 1666/1666, validation error 2.262262%\n", "epoch 120, minibatch 1666/1666, validation error 2.262262%\n", "epoch 121, minibatch 1666/1666, validation error 2.262262%\n", "epoch 122, minibatch 1666/1666, validation error 2.272272%\n", "epoch 123, minibatch 1666/1666, validation error 2.272272%\n", "epoch 124, minibatch 1666/1666, validation error 2.272272%\n", "epoch 125, minibatch 1666/1666, validation error 2.272272%\n", "epoch 126, minibatch 1666/1666, validation error 2.262262%\n", "epoch 127, minibatch 1666/1666, validation error 2.272272%\n", "epoch 128, minibatch 1666/1666, validation error 2.282282%\n", "epoch 129, minibatch 1666/1666, validation error 2.282282%\n", "epoch 130, minibatch 1666/1666, validation error 2.282282%\n", "epoch 131, minibatch 1666/1666, validation error 2.282282%\n", "epoch 132, minibatch 1666/1666, validation error 2.282282%\n", "epoch 133, minibatch 1666/1666, validation error 2.282282%\n", "epoch 134, minibatch 1666/1666, validation error 2.282282%\n", "epoch 135, minibatch 1666/1666, validation error 2.282282%\n", "epoch 136, minibatch 1666/1666, validation error 2.282282%\n", "epoch 137, minibatch 1666/1666, validation error 2.282282%\n", "epoch 138, minibatch 1666/1666, validation error 2.282282%\n", "epoch 139, minibatch 1666/1666, validation error 2.292292%\n", "epoch 140, minibatch 1666/1666, validation error 2.282282%\n", "epoch 141, minibatch 1666/1666, validation error 2.272272%\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 142, minibatch 1666/1666, validation error 2.272272%\n", "epoch 143, minibatch 1666/1666, validation error 2.272272%\n", "epoch 144, minibatch 1666/1666, validation error 2.272272%\n", "epoch 145, minibatch 1666/1666, validation error 2.292292%\n", "epoch 146, minibatch 1666/1666, validation error 2.302302%\n", "epoch 147, minibatch 1666/1666, validation error 2.302302%\n", "epoch 148, minibatch 1666/1666, validation error 2.312312%\n", "epoch 149, minibatch 1666/1666, validation error 2.292292%\n", "epoch 150, minibatch 1666/1666, validation error 2.292292%\n", "epoch 151, minibatch 1666/1666, validation error 2.282282%\n", "epoch 152, minibatch 1666/1666, validation error 2.282282%\n", "epoch 153, minibatch 1666/1666, validation error 2.282282%\n", "epoch 154, minibatch 1666/1666, validation error 2.292292%\n", "epoch 155, minibatch 1666/1666, validation error 2.292292%\n", "epoch 156, minibatch 1666/1666, validation error 2.302302%\n", "epoch 157, minibatch 1666/1666, validation error 2.302302%\n", "epoch 158, minibatch 1666/1666, validation error 2.302302%\n", "epoch 159, minibatch 1666/1666, validation error 2.302302%\n", "epoch 160, minibatch 1666/1666, validation error 2.302302%\n", "epoch 161, minibatch 1666/1666, validation error 2.312312%\n", "epoch 162, minibatch 1666/1666, validation error 2.312312%\n", "epoch 163, minibatch 1666/1666, validation error 2.302302%\n", "epoch 164, minibatch 1666/1666, validation error 2.292292%\n", "epoch 165, minibatch 1666/1666, validation error 2.292292%\n", "epoch 166, minibatch 1666/1666, validation error 2.292292%\n", "epoch 167, minibatch 1666/1666, validation error 2.292292%\n", "epoch 168, minibatch 1666/1666, validation error 2.292292%\n", "epoch 169, minibatch 1666/1666, validation error 2.292292%\n", "epoch 170, minibatch 1666/1666, validation error 2.292292%\n", "epoch 171, minibatch 1666/1666, validation error 2.282282%\n", "epoch 172, minibatch 1666/1666, validation error 2.282282%\n", "epoch 173, minibatch 1666/1666, validation error 2.272272%\n", "epoch 174, minibatch 1666/1666, validation error 2.282282%\n", "epoch 175, minibatch 1666/1666, validation error 2.282282%\n", "epoch 176, minibatch 1666/1666, validation error 2.292292%\n", "epoch 177, minibatch 1666/1666, validation error 2.292292%\n", "epoch 178, minibatch 1666/1666, validation error 2.282282%\n", "epoch 179, minibatch 1666/1666, validation error 2.272272%\n", "epoch 180, minibatch 1666/1666, validation error 2.272272%\n", "epoch 181, minibatch 1666/1666, validation error 2.272272%\n", "epoch 182, minibatch 1666/1666, validation error 2.272272%\n", "epoch 183, minibatch 1666/1666, validation error 2.272272%\n", "epoch 184, minibatch 1666/1666, validation error 2.272272%\n", "epoch 185, minibatch 1666/1666, validation error 2.272272%\n", "epoch 186, minibatch 1666/1666, validation error 2.272272%\n", "epoch 187, minibatch 1666/1666, validation error 2.272272%\n", "epoch 188, minibatch 1666/1666, validation error 2.272272%\n", "epoch 189, minibatch 1666/1666, validation error 2.272272%\n", "epoch 190, minibatch 1666/1666, validation error 2.272272%\n", "epoch 191, minibatch 1666/1666, validation error 2.272272%\n", "epoch 192, minibatch 1666/1666, validation error 2.272272%\n", "epoch 193, minibatch 1666/1666, validation error 2.272272%\n", "epoch 194, minibatch 1666/1666, validation error 2.272272%\n", "epoch 195, minibatch 1666/1666, validation error 2.282282%\n", "epoch 196, minibatch 1666/1666, validation error 2.282282%\n", "epoch 197, minibatch 1666/1666, validation error 2.272272%\n", "epoch 198, minibatch 1666/1666, validation error 2.272272%\n", "epoch 199, minibatch 1666/1666, validation error 2.272272%\n", "epoch 200, minibatch 1666/1666, validation error 2.262262%\n", "epoch 201, minibatch 1666/1666, validation error 2.262262%\n", "epoch 202, minibatch 1666/1666, validation error 2.262262%\n", "epoch 203, minibatch 1666/1666, validation error 2.272272%\n", "epoch 204, minibatch 1666/1666, validation error 2.272272%\n", "epoch 205, minibatch 1666/1666, validation error 2.272272%\n", "epoch 206, minibatch 1666/1666, validation error 2.252252%\n", "epoch 207, minibatch 1666/1666, validation error 2.252252%\n", "epoch 208, minibatch 1666/1666, validation error 2.262262%\n", "epoch 209, minibatch 1666/1666, validation error 2.262262%\n", "epoch 210, minibatch 1666/1666, validation error 2.262262%\n", "epoch 211, minibatch 1666/1666, validation error 2.262262%\n", "Ran out of patience!\n", "CPU times: user 1h 43min 54s, sys: 1min 44s, total: 1h 45min 38s\n", "Wall time: 59min 12s\n" ] } ], "source": [ "%%time\n", "train_errors, validation_errors, test_errors = train(\n", " mlp,\n", " train_model,\n", " validate_model,\n", " test_model,\n", " n_epochs,\n", " n_train_batches,\n", " n_valid_batches,\n", " n_test_batches,\n", " validation_frequency,\n", " verbose=True,\n", " log_results=True)" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nP/RMqK1WjwjsAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": { "image/png": { "height": 270, "width": 398 } }, "output_type": "display_data" } ], "source": [ "plt.plot(train_errors, label='Training')\n", "plt.plot(validation_errors, label='Validation')\n", "plt.plot(test_errors, label='Test')\n", "plt.legend(loc='best', frameon=True)\n", "plt.xlabel('Epochs')\n", "plt.ylabel('Error')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Improvement 1: Rectified Linear Unit activation" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def relu(x):\n", " return x * (x > 0)" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": true }, "outputs": [], "source": [ "rng = numpy.random.RandomState(1234)\n", "\n", "mlp_relu = MLP(rng=rng,\n", " input=x,\n", " n_in=28 * 28,\n", " n_hidden=n_hidden,\n", " n_out=10,\n", " activation=relu)" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": true }, "outputs": [], "source": [ "cost = mlp_relu.negative_log_likelihood(\n", " y) + L1_reg * mlp_relu.L1 + L2_reg * mlp_relu.L2_sqr" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compiling a Theano function that computes the mistakes that are made by the model on a minibatch" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": true }, "outputs": [], "source": [ "test_model = theano.function(\n", " inputs=[index],\n", " outputs=mlp_relu.errors(y),\n", " givens={\n", " x: test_set_x[index * batch_size:(index + 1) * batch_size],\n", " y: test_set_y[index * batch_size:(index + 1) * batch_size]\n", " })" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": true }, "outputs": [], "source": [ "validate_model = theano.function(\n", " inputs=[index],\n", " outputs=mlp_relu.errors(y),\n", " givens={\n", " x: valid_set_x[index * batch_size:(index + 1) * batch_size],\n", " y: valid_set_y[index * batch_size:(index + 1) * batch_size]\n", " })" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "collapsed": true }, "outputs": [], "source": [ "train_set_loss = theano.function(\n", " inputs=[index],\n", " outputs=mlp_relu.errors(y),\n", " givens={\n", " x: train_set_x[index * batch_size:(index + 1) * batch_size],\n", " y: train_set_y[index * batch_size:(index + 1) * batch_size]\n", " })" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute the gradient of cost with respect to the parameters (sorted in `classifier.params`) the resulting gradients will be stored in a list `gparams`." ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "collapsed": true }, "outputs": [], "source": [ "gparams = [T.grad(cost, param) for param in mlp_relu.params]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Specify how to update the parameters of the model as a list of `(variable, update expression)` pairs.\n", "\n", "* given two lists of the same length, `A = [a1, a2, a3, a4]` and `B = [b1, b2, b3, b4]`, `zip()` generates a list `C` of same size, where eachnelement is a pair formed from the two lists:\n", "```python\n", "C = [(a1, b1), (a2, b2), (a3, b3), (a4, b4)]\n", "```" ] }, { "cell_type": "code", "execution_count": 57, "metadata": { "collapsed": true }, "outputs": [], "source": [ "updates = [(param, param - learning_rate * gparam) \n", " for param, gparam in zip(mlp_relu.params, gparams)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compiling a Theano function `train_model` that returns the cost, and at the same time, updates the parameter of the model based on the rules\n", "defined in `updates`." ] }, { "cell_type": "code", "execution_count": 58, "metadata": { "collapsed": true }, "outputs": [], "source": [ "train_model = theano.function(\n", " inputs=[index],\n", " outputs=cost,\n", " updates=updates,\n", " givens={\n", " x: train_set_x[index * batch_size:(index + 1) * batch_size],\n", " y: train_set_y[index * batch_size:(index + 1) * batch_size]\n", " })" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "epoch 1, minibatch 1666/1666, validation error 7.607608%\n", "epoch 2, minibatch 1666/1666, validation error 5.735736%\n", "epoch 3, minibatch 1666/1666, validation error 4.604605%\n", "epoch 4, minibatch 1666/1666, validation error 4.134134%\n", "epoch 5, minibatch 1666/1666, validation error 3.763764%\n", "epoch 6, minibatch 1666/1666, validation error 3.563564%\n", "epoch 7, minibatch 1666/1666, validation error 3.403403%\n", "epoch 8, minibatch 1666/1666, validation error 3.243243%\n", "epoch 9, minibatch 1666/1666, validation error 3.133133%\n", "epoch 10, minibatch 1666/1666, validation error 3.023023%\n", "epoch 11, minibatch 1666/1666, validation error 2.882883%\n", "epoch 12, minibatch 1666/1666, validation error 2.792793%\n", "epoch 13, minibatch 1666/1666, validation error 2.702703%\n", "epoch 14, minibatch 1666/1666, validation error 2.702703%\n", "epoch 15, minibatch 1666/1666, validation error 2.682683%\n", "epoch 16, minibatch 1666/1666, validation error 2.602603%\n", "epoch 17, minibatch 1666/1666, validation error 2.552553%\n", "epoch 18, minibatch 1666/1666, validation error 2.542543%\n", "epoch 19, minibatch 1666/1666, validation error 2.472472%\n", "epoch 20, minibatch 1666/1666, validation error 2.482482%\n", "epoch 21, minibatch 1666/1666, validation error 2.482482%\n", "epoch 22, minibatch 1666/1666, validation error 2.502503%\n", "epoch 23, minibatch 1666/1666, validation error 2.462462%\n", "epoch 24, minibatch 1666/1666, validation error 2.462462%\n", "epoch 25, minibatch 1666/1666, validation error 2.452452%\n", "epoch 26, minibatch 1666/1666, validation error 2.492492%\n", "epoch 27, minibatch 1666/1666, validation error 2.502503%\n", "epoch 28, minibatch 1666/1666, validation error 2.472472%\n", "epoch 29, minibatch 1666/1666, validation error 2.502503%\n", "epoch 30, minibatch 1666/1666, validation error 2.472472%\n", "epoch 31, minibatch 1666/1666, validation error 2.422422%\n", "epoch 32, minibatch 1666/1666, validation error 2.452452%\n", "epoch 33, minibatch 1666/1666, validation error 2.472472%\n", "epoch 34, minibatch 1666/1666, validation error 2.462462%\n", "epoch 35, minibatch 1666/1666, validation error 2.442442%\n", "epoch 36, minibatch 1666/1666, validation error 2.412412%\n", "epoch 37, minibatch 1666/1666, validation error 2.412412%\n", "epoch 38, minibatch 1666/1666, validation error 2.422422%\n", "epoch 39, minibatch 1666/1666, validation error 2.402402%\n", "epoch 40, minibatch 1666/1666, validation error 2.382382%\n", "epoch 41, minibatch 1666/1666, validation error 2.372372%\n", "epoch 42, minibatch 1666/1666, validation error 2.392392%\n", "epoch 43, minibatch 1666/1666, validation error 2.352352%\n", "epoch 44, minibatch 1666/1666, validation error 2.372372%\n", "epoch 45, minibatch 1666/1666, validation error 2.372372%\n", "epoch 46, minibatch 1666/1666, validation error 2.352352%\n", "epoch 47, minibatch 1666/1666, validation error 2.362362%\n", "epoch 48, minibatch 1666/1666, validation error 2.352352%\n", "epoch 49, minibatch 1666/1666, validation error 2.372372%\n", "epoch 50, minibatch 1666/1666, validation error 2.312312%\n", "epoch 51, minibatch 1666/1666, validation error 2.342342%\n", "epoch 52, minibatch 1666/1666, validation error 2.352352%\n", "epoch 53, minibatch 1666/1666, validation error 2.312312%\n", "epoch 54, minibatch 1666/1666, validation error 2.322322%\n", "epoch 55, minibatch 1666/1666, validation error 2.332332%\n", "epoch 56, minibatch 1666/1666, validation error 2.342342%\n", "epoch 57, minibatch 1666/1666, validation error 2.302302%\n", "epoch 58, minibatch 1666/1666, validation error 2.312312%\n", "epoch 59, minibatch 1666/1666, validation error 2.292292%\n", "epoch 60, minibatch 1666/1666, validation error 2.282282%\n", "epoch 61, minibatch 1666/1666, validation error 2.252252%\n", "epoch 62, minibatch 1666/1666, validation error 2.282282%\n", "epoch 63, minibatch 1666/1666, validation error 2.252252%\n", "epoch 64, minibatch 1666/1666, validation error 2.282282%\n", "epoch 65, minibatch 1666/1666, validation error 2.282282%\n", "epoch 66, minibatch 1666/1666, validation error 2.282282%\n", "epoch 67, minibatch 1666/1666, validation error 2.322322%\n", "epoch 68, minibatch 1666/1666, validation error 2.282282%\n", "epoch 69, minibatch 1666/1666, validation error 2.292292%\n", "epoch 70, minibatch 1666/1666, validation error 2.262262%\n", "epoch 71, minibatch 1666/1666, validation error 2.242242%\n", "epoch 72, minibatch 1666/1666, validation error 2.252252%\n", "epoch 73, minibatch 1666/1666, validation error 2.252252%\n", "epoch 74, minibatch 1666/1666, validation error 2.272272%\n", "epoch 75, minibatch 1666/1666, validation error 2.232232%\n", "epoch 76, minibatch 1666/1666, validation error 2.252252%\n", "epoch 77, minibatch 1666/1666, validation error 2.282282%\n", "epoch 78, minibatch 1666/1666, validation error 2.252252%\n", "epoch 79, minibatch 1666/1666, validation error 2.272272%\n", "epoch 80, minibatch 1666/1666, validation error 2.262262%\n", "epoch 81, minibatch 1666/1666, validation error 2.262262%\n", "epoch 82, minibatch 1666/1666, validation error 2.252252%\n", "epoch 83, minibatch 1666/1666, validation error 2.262262%\n", "epoch 84, minibatch 1666/1666, validation error 2.242242%\n", "epoch 85, minibatch 1666/1666, validation error 2.292292%\n", "epoch 86, minibatch 1666/1666, validation error 2.252252%\n", "epoch 87, minibatch 1666/1666, validation error 2.232232%\n", "epoch 88, minibatch 1666/1666, validation error 2.232232%\n", "epoch 89, minibatch 1666/1666, validation error 2.282282%\n", "epoch 90, minibatch 1666/1666, validation error 2.262262%\n", "epoch 91, minibatch 1666/1666, validation error 2.242242%\n", "epoch 92, minibatch 1666/1666, validation error 2.292292%\n", "epoch 93, minibatch 1666/1666, validation error 2.262262%\n", "epoch 94, minibatch 1666/1666, validation error 2.282282%\n", "epoch 95, minibatch 1666/1666, validation error 2.272272%\n", "epoch 96, minibatch 1666/1666, validation error 2.272272%\n", "epoch 97, minibatch 1666/1666, validation error 2.252252%\n", "epoch 98, minibatch 1666/1666, validation error 2.252252%\n", "epoch 99, minibatch 1666/1666, validation error 2.252252%\n", "epoch 100, minibatch 1666/1666, validation error 2.252252%\n", "epoch 101, minibatch 1666/1666, validation error 2.322322%\n", "epoch 102, minibatch 1666/1666, validation error 2.292292%\n", "epoch 103, minibatch 1666/1666, validation error 2.292292%\n", "epoch 104, minibatch 1666/1666, validation error 2.282282%\n", "epoch 105, minibatch 1666/1666, validation error 2.282282%\n", "epoch 106, minibatch 1666/1666, validation error 2.282282%\n", "epoch 107, minibatch 1666/1666, validation error 2.312312%\n", "epoch 108, minibatch 1666/1666, validation error 2.322322%\n", "epoch 109, minibatch 1666/1666, validation error 2.302302%\n", "epoch 110, minibatch 1666/1666, validation error 2.302302%\n", "epoch 111, minibatch 1666/1666, validation error 2.322322%\n", "epoch 112, minibatch 1666/1666, validation error 2.292292%\n", "epoch 113, minibatch 1666/1666, validation error 2.302302%\n", "epoch 114, minibatch 1666/1666, validation error 2.332332%\n", "epoch 115, minibatch 1666/1666, validation error 2.322322%\n", "epoch 116, minibatch 1666/1666, validation error 2.322322%\n", "epoch 117, minibatch 1666/1666, validation error 2.332332%\n", "epoch 118, minibatch 1666/1666, validation error 2.342342%\n", "epoch 119, minibatch 1666/1666, validation error 2.342342%\n", "epoch 120, minibatch 1666/1666, validation error 2.372372%\n", "epoch 121, minibatch 1666/1666, validation error 2.372372%\n", "Ran out of patience!\n", "CPU times: user 48min 14s, sys: 48.8 s, total: 49min 3s\n", "Wall time: 38min 55s\n" ] } ], "source": [ "%%time\n", "errors_relu = train(\n", " mlp_relu,\n", " train_model,\n", " validate_model,\n", " test_model,\n", " n_epochs,\n", " n_train_batches,\n", " n_valid_batches,\n", " n_test_batches,\n", " validation_frequency,\n", " verbose=True,\n", " log_results=True)" ] }, { "cell_type": "code", "execution_count": 60, "metadata": { "collapsed": true }, "outputs": [], "source": [ "train_errors_relu, validation_errors_relu, test_errors_relu = errors_relu" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nnJzIqy8/l1dffm5Hy6+vt3JvaTVzM5NJJvLZ7Xv57c2v86837+bm4oO0Wq3cunUr05Nrmf/Ggcwf\nfSmLd5ay3mplbb2Vm4v3O8s/ezPA9qP7S2v5q58t5PU/PJb//KNX6t4cAAAAAIZEEQsYOzNTM/nm\n4Rc2nv/FD/4sf/GDP9t4fuaHf75pAexJtVqt9n2pkkxOTGZqcipfL9/L3//25/nXO5/m888/z/LK\nclpTyepcK9XNT3Jn6W6OHZzP9148nsMzh/Ll0p38/NMq91cfZG5qNgem53Jv5X5WOp87Nz2XlbWV\nrPfNLjs8eygHpuaSJAem5zJ/8LkcmT2cg9MHcmj2YJZXl/MPn37cvhTjDhw98Pwjs+PG2eTkRI70\nzAp75aUjeeWlI0m+tfHaxx9/nHv37uXQoUN5/fU/Gvg5rVYri3eWcn9pNcur6z33DGs/rq23drQ9\nS8uruX1nKcura5k/MpcjB2eztr6e1bX1rKy2srq6lpW19SyvrGd5dS0r3cfV9bRa7e1ob0/SSqt7\nZc20Wq20kqT18L3Of4++17/Oxs/JvaWV3P5qKYt3l/L1/ZUd7+NxtHhnvC5DCgAAAMDWFLEAtjAx\nMZGZvtljh2cP5T+9+uMk/YWS19NqtbLeWs/kxOQjlzVbXV/Lg9UHOTh9IFOTU1leXc6vFv8lxw7O\n58XDx7K0upz/9+VvMpGJzB98Ls/PfeOx7x1kfX09/3TzF1lZX833X/yjzExO5+ef/5/8/W9/nn/8\n9J9yf+VBfv/5f5PXX/pufvLaf8yhmYPD3UFjbmJiIkefO5CjdW/IiCyvrGV5Za19T7PpyUxNTmR9\nvZW791fy9f32Pc2+vr+a+8urWVldz4HZqUxOTuTLO0u5c295495mrdbDe521j/lW5/VkdW09X329\nnNt3HuT2nfb90dY690O7v7S6Z7/b80dm8+//+OU9+3wAAAAARk8RC2CIJiYmMjUx9djr05NTj9wL\nbHZ6Nt978fjG87np2Xz3he888fdNTk7mB9/83iOv/cm3vp8/+db3n/iz2P9mZ6YyO/Po8Tk1NZHn\nj8zl+SNze/79X99fyf/46B+zeOdeJiZn8+qrf5ADs1M5MDedA7Pt7eoWug7OTWdyYiJLncJb+3E9\nS8vtn5dW1rK03H7vyKGZ/Pj138tLRxVpAQAAAPYTRSwAYCQOH5zJKy8eyNFD653Zi9/afiUAAAAA\n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\nAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": { "image/png": { "height": 280, "width": 856 } }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(12, 4))\n", "ax = plt.subplot(131)\n", "plt.plot(train_errors, label='Tanh')\n", "plt.plot(train_errors_relu, label='ReLU')\n", "plt.legend(loc='best', frameon=True)\n", "plt.xlabel('Epochs')\n", "plt.ylabel('Error')\n", "plt.title('Training set errors')\n", "plt.subplot(132, sharey=ax)\n", "plt.plot(validation_errors, label='Tanh')\n", "plt.plot(validation_errors_relu, label='ReLU')\n", "plt.legend(loc='best', frameon=True)\n", "plt.xlabel('Epochs')\n", "plt.title('Validation set errors')\n", "plt.subplot(133, sharey=ax)\n", "plt.plot(test_errors, label='Tanh')\n", "plt.plot(test_errors_relu, label='ReLU')\n", "plt.legend(loc='best', frameon=True)\n", "plt.xlabel('Epochs')\n", "plt.title('Test set errors')\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Homework\n", "\n", "* Implement a MLP that can have different numbers of hidden layers.\n", "* Add the momentum term to gradients." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "application/json": { "Software versions": [ { "module": "Python", "version": "3.6.1 64bit [GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)]" }, { "module": "IPython", "version": "6.1.0" }, { "module": "OS", "version": "Darwin 16.6.0 x86_64 i386 64bit" }, { "module": "scipy", "version": "0.19.0" }, { "module": "numpy", "version": "1.12.1" }, { "module": "matplotlib", "version": "2.0.2" }, { "module": "sklearn", "version": "0.18.1" }, { "module": "theano", "version": "0.9.0" } ] }, "text/html": [ "
SoftwareVersion
Python3.6.1 64bit [GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)]
IPython6.1.0
OSDarwin 16.6.0 x86_64 i386 64bit
scipy0.19.0
numpy1.12.1
matplotlib2.0.2
sklearn0.18.1
theano0.9.0
Sun Jun 11 23:47:32 2017 CEST
" ], "text/latex": [ "\\begin{tabular}{|l|l|}\\hline\n", "{\\bf Software} & {\\bf Version} \\\\ \\hline\\hline\n", "Python & 3.6.1 64bit [GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] \\\\ \\hline\n", "IPython & 6.1.0 \\\\ \\hline\n", "OS & Darwin 16.6.0 x86\\_64 i386 64bit \\\\ \\hline\n", "scipy & 0.19.0 \\\\ \\hline\n", "numpy & 1.12.1 \\\\ \\hline\n", "matplotlib & 2.0.2 \\\\ \\hline\n", "sklearn & 0.18.1 \\\\ \\hline\n", "theano & 0.9.0 \\\\ \\hline\n", "\\hline \\multicolumn{2}{|l|}{Sun Jun 11 23:47:32 2017 CEST} \\\\ \\hline\n", "\\end{tabular}\n" ], "text/plain": [ "Software versions\n", "Python 3.6.1 64bit [GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)]\n", "IPython 6.1.0\n", "OS Darwin 16.6.0 x86_64 i386 64bit\n", "scipy 0.19.0\n", "numpy 1.12.1\n", "matplotlib 2.0.2\n", "sklearn 0.18.1\n", "theano 0.9.0\n", "Sun Jun 11 23:47:32 2017 CEST" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%load_ext version_information\n", "%version_information scipy, numpy, matplotlib, sklearn, theano" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# this code is here for cosmetic reasons\n", "from IPython.core.display import HTML\n", "from urllib.request import urlopen\n", "HTML(urlopen('https://raw.githubusercontent.com/lmarti/jupyter_custom/master/custom.include').read().decode('utf-8'))" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ " ---" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.2" } }, "nbformat": 4, "nbformat_minor": 1 }