{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Copyright (c) 2015-2017 [Sebastian Raschka](sebastianraschka.com)\n", "\n", "https://github.com/rasbt/python-machine-learning-book\n", "\n", "[MIT License](https://github.com/rasbt/python-machine-learning-book/blob/master/LICENSE.txt)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Python Machine Learning - Code Examples" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Chapter 5 - Compressing Data via Dimensionality Reduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that the optional watermark extension is a small IPython notebook plugin that I developed to make the code reproducible. You can just skip the following line(s)." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Sebastian Raschka \n", "last updated: 2017-03-10 \n", "\n", "numpy 1.12.0\n", "scipy 0.18.1\n", "matplotlib 2.0.0\n", "sklearn 0.18.1\n" ] } ], "source": [ "%load_ext watermark\n", "%watermark -a 'Sebastian Raschka' -u -d -p numpy,scipy,matplotlib,sklearn" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "*The use of `watermark` is optional. You can install this IPython extension via \"`pip install watermark`\". For more information, please see: https://github.com/rasbt/watermark.*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Overview" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- [Unsupervised dimensionality reduction via principal component analysis 128](#Unsupervised-dimensionality-reduction-via-principal-component-analysis-128)\n", " - [Total and explained variance](#Total-and-explained-variance)\n", " - [Feature transformation](#Feature-transformation)\n", " - [Principal component analysis in scikit-learn](#Principal-component-analysis-in-scikit-learn)\n", "- [Supervised data compression via linear discriminant analysis](#Supervised-data-compression-via-linear-discriminant-analysis)\n", " - [Computing the scatter matrices](#Computing-the-scatter-matrices)\n", " - [Selecting linear discriminants for the new feature subspace](#Selecting-linear-discriminants-for-the-new-feature-subspace)\n", " - [Projecting samples onto the new feature space](#Projecting-samples-onto-the-new-feature-space)\n", " - [LDA via scikit-learn](#LDA-via-scikit-learn)\n", "- [Using kernel principal component analysis for nonlinear mappings](#Using-kernel-principal-component-analysis-for-nonlinear-mappings)\n", " - [Kernel functions and the kernel trick](#Kernel-functions-and-the-kernel-trick)\n", " - [Implementing a kernel principal component analysis in Python](#Implementing-a-kernel-principal-component-analysis-in-Python)\n", " - [Example 1 – separating half-moon shapes](#Example-1:-Separating-half-moon-shapes)\n", " - [Example 2 – separating concentric circles](#Example-2:-Separating-concentric-circles)\n", " - [Projecting new data points](#Projecting-new-data-points)\n", " - [Kernel principal component analysis in scikit-learn](#Kernel-principal-component-analysis-in-scikit-learn)\n", "- [Summary](#Summary)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from IPython.display import Image\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Added version check for recent scikit-learn 0.18 checks\n", "from distutils.version import LooseVersion as Version\n", "from sklearn import __version__ as sklearn_version" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Unsupervised dimensionality reduction via principal component analysis" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nNdkyNfWtBhH7GID2iVlvPh1UxP+zxLb2zICbre/GwX/EPwCnzwa9pJZ3AgAAAZ1pVFh0WE1MOmNv\nbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1w\ndGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3Lncz\nLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiBy\nZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9l\neGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NDA2PC9leGlmOlBpeGVs\nWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjM3NjwvZXhpZjpQaXhl\nbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4\nbXBtZXRhPgrl2uFtAABAAElEQVR4AexdB4AURdb+Ns9GdomSs4ACCgYwwAkmjJw5gYIC6q8CCojo\nyZ0YOLPC6WGEO9E7T09P70x3igEDqKCCAoIkESSHzbszu/u/r2ZqGTbAzO7s0j37Snu7p7u6uuqr\n5n396r16FVMmCZoUAUVAEVAEFIEIIRAboXK0GEVAEVAEFAFFwCCgxKIvgiKgCCgCikBEEVBiiSic\nWpgioAgoAoqAEou+A4qAIqAIKAIRRUCJJaJwamGKgCKgCCgCSiz6DigCioAioAhEFAEllojCqYUp\nAoqAIqAIKLHoO6AIKAKKgCIQUQSUWCIKpxamCCgCioAioMSi74AioAgoAopARBFQYokonFqYIqAI\nKAKKgBKLvgOKgCKgCCgCEUVAiSWicGphioAioAgoAkos+g4oAoqAIqAIRBQBJZaIwqmFKQKKgCKg\nCCix6DugCCgCioAiEFEElFgiCqcWpggoAoqAIqDEou+AIqAIKAKKQEQRUGKJKJxamCKgCCgCioAS\ni74DioAioAgoAhFFQIklonBqYYqAIqAIKAJKLPoOKAKKgCKgCEQUASWWiMKphSkCioAioAgoseg7\n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\ndAr8BgXeu0M/4SkmAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "execution_count": 4, "metadata": { "image/png": { "width": 400 } }, "output_type": "execute_result" } ], "source": [ "Image(filename='./images/05_01.png', width=400) " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Class labelAlcoholMalic acidAshAlcalinity of ashMagnesiumTotal phenolsFlavanoidsNonflavanoid phenolsProanthocyaninsColor intensityHueOD280/OD315 of diluted winesProline
0114.231.712.4315.61272.803.060.282.295.641.043.921065
1113.201.782.1411.21002.652.760.261.284.381.053.401050
2113.162.362.6718.61012.803.240.302.815.681.033.171185
3114.371.952.5016.81133.853.490.242.187.800.863.451480
4113.242.592.8721.01182.802.690.391.824.321.042.93735
\n", "
" ], "text/plain": [ " Class label Alcohol Malic acid Ash Alcalinity of ash Magnesium \\\n", "0 1 14.23 1.71 2.43 15.6 127 \n", "1 1 13.20 1.78 2.14 11.2 100 \n", "2 1 13.16 2.36 2.67 18.6 101 \n", "3 1 14.37 1.95 2.50 16.8 113 \n", "4 1 13.24 2.59 2.87 21.0 118 \n", "\n", " Total phenols Flavanoids Nonflavanoid phenols Proanthocyanins \\\n", "0 2.80 3.06 0.28 2.29 \n", "1 2.65 2.76 0.26 1.28 \n", "2 2.80 3.24 0.30 2.81 \n", "3 3.85 3.49 0.24 2.18 \n", "4 2.80 2.69 0.39 1.82 \n", "\n", " Color intensity Hue OD280/OD315 of diluted wines Proline \n", "0 5.64 1.04 3.92 1065 \n", "1 4.38 1.05 3.40 1050 \n", "2 5.68 1.03 3.17 1185 \n", "3 7.80 0.86 3.45 1480 \n", "4 4.32 1.04 2.93 735 " ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "\n", "df_wine = pd.read_csv('https://archive.ics.uci.edu/ml/'\n", " 'machine-learning-databases/wine/wine.data',\n", " header=None)\n", "\n", "df_wine.columns = ['Class label', 'Alcohol', 'Malic acid', 'Ash',\n", " 'Alcalinity of ash', 'Magnesium', 'Total phenols',\n", " 'Flavanoids', 'Nonflavanoid phenols', 'Proanthocyanins',\n", " 'Color intensity', 'Hue',\n", " 'OD280/OD315 of diluted wines', 'Proline']\n", "\n", "df_wine.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "### Note:\n", "\n", "\n", "If the link to the Wine dataset provided above does not work for you, you can find a local copy in this repository at [./../datasets/wine/wine.data](./../datasets/wine/wine.data).\n", "\n", "Or you could fetch it via\n", "\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Class labelAlcoholMalic acidAshAlcalinity of ashMagnesiumTotal phenolsFlavanoidsNonflavanoid phenolsProanthocyaninsColor intensityHueOD280/OD315 of diluted winesProline
0114.231.712.4315.61272.803.060.282.295.641.043.921065
1113.201.782.1411.21002.652.760.261.284.381.053.401050
2113.162.362.6718.61012.803.240.302.815.681.033.171185
3114.371.952.5016.81133.853.490.242.187.800.863.451480
4113.242.592.8721.01182.802.690.391.824.321.042.93735
\n", "
" ], "text/plain": [ " Class label Alcohol Malic acid Ash Alcalinity of ash Magnesium \\\n", "0 1 14.23 1.71 2.43 15.6 127 \n", "1 1 13.20 1.78 2.14 11.2 100 \n", "2 1 13.16 2.36 2.67 18.6 101 \n", "3 1 14.37 1.95 2.50 16.8 113 \n", "4 1 13.24 2.59 2.87 21.0 118 \n", "\n", " Total phenols Flavanoids Nonflavanoid phenols Proanthocyanins \\\n", "0 2.80 3.06 0.28 2.29 \n", "1 2.65 2.76 0.26 1.28 \n", "2 2.80 3.24 0.30 2.81 \n", "3 3.85 3.49 0.24 2.18 \n", "4 2.80 2.69 0.39 1.82 \n", "\n", " Color intensity Hue OD280/OD315 of diluted wines Proline \n", "0 5.64 1.04 3.92 1065 \n", "1 4.38 1.05 3.40 1050 \n", "2 5.68 1.03 3.17 1185 \n", "3 7.80 0.86 3.45 1480 \n", "4 4.32 1.04 2.93 735 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_wine = pd.read_csv('https://raw.githubusercontent.com/rasbt/python-machine-learning-book/master/code/datasets/wine/wine.data', header=None)\n", "\n", "df_wine.columns = ['Class label', 'Alcohol', 'Malic acid', 'Ash', \n", "'Alcalinity of ash', 'Magnesium', 'Total phenols', \n", "'Flavanoids', 'Nonflavanoid phenols', 'Proanthocyanins', \n", "'Color intensity', 'Hue', 'OD280/OD315 of diluted wines', 'Proline']\n", "df_wine.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Splitting the data into 70% training and 30% test subsets." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "if Version(sklearn_version) < '0.18':\n", " from sklearn.cross_validation import train_test_split\n", "else:\n", " from sklearn.model_selection import train_test_split\n", "\n", "X, y = df_wine.iloc[:, 1:].values, df_wine.iloc[:, 0].values\n", "\n", "X_train, X_test, y_train, y_test = \\\n", " train_test_split(X, y, test_size=0.3, random_state=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Standardizing the data." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "from sklearn.preprocessing import StandardScaler\n", "\n", "sc = StandardScaler()\n", "X_train_std = sc.fit_transform(X_train)\n", "X_test_std = sc.transform(X_test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "**Note**\n", "\n", "Accidentally, I wrote `X_test_std = sc.fit_transform(X_test)` instead of `X_test_std = sc.transform(X_test)`. In this case, it wouldn't make a big difference since the mean and standard deviation of the test set should be (quite) similar to the training set. However, as remember from Chapter 3, the correct way is to re-use parameters from the training set if we are doing any kind of transformation -- the test set should basically stand for \"new, unseen\" data.\n", "\n", "My initial typo reflects a common mistake is that some people are *not* re-using these parameters from the model training/building and standardize the new data \"from scratch.\" Here's simple example to explain why this is a problem.\n", "\n", "Let's assume we have a simple training set consisting of 3 samples with 1 feature (let's call this feature \"length\"):\n", "\n", "- train_1: 10 cm -> class_2\n", "- train_2: 20 cm -> class_2\n", "- train_3: 30 cm -> class_1\n", "\n", "mean: 20, std.: 8.2\n", "\n", "After standardization, the transformed feature values are\n", "\n", "- train_std_1: -1.21 -> class_2\n", "- train_std_2: 0 -> class_2\n", "- train_std_3: 1.21 -> class_1\n", "\n", "Next, let's assume our model has learned to classify samples with a standardized length value < 0.6 as class_2 (class_1 otherwise). So far so good. Now, let's say we have 3 unlabeled data points that we want to classify:\n", "\n", "- new_4: 5 cm -> class ?\n", "- new_5: 6 cm -> class ?\n", "- new_6: 7 cm -> class ?\n", "\n", "If we look at the \"unstandardized \"length\" values in our training datast, it is intuitive to say that all of these samples are likely belonging to class_2. However, if we standardize these by re-computing standard deviation and and mean you would get similar values as before in the training set and your classifier would (probably incorrectly) classify samples 4 and 5 as class 2.\n", "\n", "- new_std_4: -1.21 -> class 2\n", "- new_std_5: 0 -> class 2\n", "- new_std_6: 1.21 -> class 1\n", "\n", "However, if we use the parameters from your \"training set standardization,\" we'd get the values:\n", "\n", "- sample5: -18.37 -> class 2\n", "- sample6: -17.15 -> class 2\n", "- sample7: -15.92 -> class 2\n", "\n", "The values 5 cm, 6 cm, and 7 cm are much lower than anything we have seen in the training set previously. Thus, it only makes sense that the standardized features of the \"new samples\" are much lower than every standardized feature in the training set.\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Eigendecomposition of the covariance matrix." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Eigenvalues \n", "[ 4.8923083 2.46635032 1.42809973 1.01233462 0.84906459 0.60181514\n", " 0.52251546 0.08414846 0.33051429 0.29595018 0.16831254 0.21432212\n", " 0.2399553 ]\n" ] } ], "source": [ "import numpy as np\n", "cov_mat = np.cov(X_train_std.T)\n", "eigen_vals, eigen_vecs = np.linalg.eig(cov_mat)\n", "\n", "print('\\nEigenvalues \\n%s' % eigen_vals)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Note**: \n", "\n", "Above, I used the [`numpy.linalg.eig`](http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.eig.html) function to decompose the symmetric covariance matrix into its eigenvalues and eigenvectors.\n", "
>>> eigen_vals, eigen_vecs = np.linalg.eig(cov_mat)
\n", " This is not really a \"mistake,\" but probably suboptimal. It would be better to use [`numpy.linalg.eigh`](http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.eigh.html) in such cases, which has been designed for [Hermetian matrices](https://en.wikipedia.org/wiki/Hermitian_matrix). The latter always returns real eigenvalues; whereas the numerically less stable `np.linalg.eig` can decompose nonsymmetric square matrices, you may find that it returns complex eigenvalues in certain cases. (S.R.)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Total and explained variance" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": true }, "outputs": [], "source": [ "tot = sum(eigen_vals)\n", "var_exp = [(i / tot) for i in sorted(eigen_vals, reverse=True)]\n", "cum_var_exp = np.cumsum(var_exp)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nW7RoEatWrYq17LZt28b69etp27Yt06ZNo0uXLvTs2ZNRo0bFtunfvz/NmjUD4Mwzz+TVV1/dK0G5\nO3/4wx94+eWXSUtLY9OmTXz++eexBFeke/futG7dGoDs7Gw2btxIkyZNWL16Nf379weCFl7Lli35\n+uuv+frrr2O/1M8991z++c99R5Q77bTTuOKKK9i9ezcLFy6kd+/eHHTQQWzbtq3U89q9e/cSnz8q\n7TgA2rZtS3Z2NgDHH388Gzdu5Ntvv2XTpk0MHToUCBJc0TletGgRxx13HBC0zNavX1+9CcrdJ5pZ\nGvBPd3+4yr+5lurUshEPXdgr2WFIiiqrpVPdDjjgAAoLCwEoLCzk+++/jy37yU9+EvuclpYWm05L\nS4vd2yhr+yJTpkzh8MMP5+2336awsDD2S64svXr1YsOGDWzevJknnniC//zP/4x9x5IlS8rch7sz\nbdo0Bg4cuM+y/Px80tLS+PzzzyksLCQtLbjDUbwlVHz6gQceYPPmzSxfvpz69euTkZFR4qgg8ees\nXr16FBQU4O507tyZN954Y6914y9hliU9PZ2+ffvyzDPP8NBDDzFy5Eig7PN68MEHl7ivso6jeOxF\nl/hK4u78/ve/58ILL4x0DJVR5j2osBbU7xIehYgkTL9+/XjkkUfYsmULQOwSX0ZGBsuXLwdg/vz5\n7Nmzp0L7jbL9tm3baNmyJWlpadx///388MMPADRs2JBvv/22xP2aGUOHDuXqq6+mY8eOsdbNgAED\nmDZtWmy9lStX7rPtwIEDuf3222OxvP/+++zYsYOCggLOO+885s6dS8eOHbnlllti2zz77LNs3bqV\nnTt38sQTT3DiiSfucwyHHXYY9evX58UXX+Sjjz6KfI7at2/P5s2bYwlqz549rFmzhiZNmtCkSRNe\nffVVIEgepRkxYgT33HMPr7zyCoMGDYrFVNJ5LUtFj6Nhw4a0bt2aJ554AoDdu3fz3XffMXDgQO6+\n+262b98OwKZNm/jii8QMoxqlF99zZvZbM2tjZk2LXgmJRkSqXOfOnbnuuuvo06cPWVlZXH311QCM\nGzeOl156iaysLN54441S//IuTZTtL7nkEu69916ysrJ49913Y+tkZmZSr149srKymDJlyj7bjRgx\ngr///e+xy3sAU6dOJS8vj8zMTDp16sSMGTP22e7888+nU6dO5OTk0KVLFy688EIKCgr461//yskn\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "\n", "plt.bar(range(1, 14), var_exp, alpha=0.5, align='center',\n", " label='individual explained variance')\n", "plt.step(range(1, 14), cum_var_exp, where='mid',\n", " label='cumulative explained variance')\n", "plt.ylabel('Explained variance ratio')\n", "plt.xlabel('Principal components')\n", "plt.legend(loc='best')\n", "plt.tight_layout()\n", "# plt.savefig('./figures/pca1.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Feature transformation" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Make a list of (eigenvalue, eigenvector) tuples\n", "eigen_pairs = [(np.abs(eigen_vals[i]), eigen_vecs[:, i])\n", " for i in range(len(eigen_vals))]\n", "\n", "# Sort the (eigenvalue, eigenvector) tuples from high to low\n", "eigen_pairs.sort(key=lambda k: k[0], reverse=True)\n", "\n", "# Note: I added the `key=lambda k: k[0]` in the sort call above\n", "# just like I used it further below in the LDA section.\n", "# This is to avoid problems if there are ties in the eigenvalue\n", "# arrays (i.e., the sorting algorithm will only regard the\n", "# first element of the tuples, now)." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Matrix W:\n", " [[ 0.14669811 0.50417079]\n", " [-0.24224554 0.24216889]\n", " [-0.02993442 0.28698484]\n", " [-0.25519002 -0.06468718]\n", " [ 0.12079772 0.22995385]\n", " [ 0.38934455 0.09363991]\n", " [ 0.42326486 0.01088622]\n", " [-0.30634956 0.01870216]\n", " [ 0.30572219 0.03040352]\n", " [-0.09869191 0.54527081]\n", " [ 0.30032535 -0.27924322]\n", " [ 0.36821154 -0.174365 ]\n", " [ 0.29259713 0.36315461]]\n" ] } ], "source": [ "w = np.hstack((eigen_pairs[0][1][:, np.newaxis],\n", " eigen_pairs[1][1][:, np.newaxis]))\n", "print('Matrix W:\\n', w)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Note**\n", "Depending on which version of NumPy and LAPACK you are using, you may obtain the the Matrix W with its signs flipped. E.g., the matrix shown in the book was printed as:\n", "\n", "```\n", "[[ 0.14669811 0.50417079]\n", "[-0.24224554 0.24216889]\n", "[-0.02993442 0.28698484]\n", "[-0.25519002 -0.06468718]\n", "[ 0.12079772 0.22995385]\n", "[ 0.38934455 0.09363991]\n", "[ 0.42326486 0.01088622]\n", "[-0.30634956 0.01870216]\n", "[ 0.30572219 0.03040352]\n", "[-0.09869191 0.54527081]\n", "```\n", "\n", "Please note that this is not an issue: If $v$ is an eigenvector of a matrix $\\Sigma$, we have\n", "\n", "$$\\Sigma v = \\lambda v,$$\n", "\n", "where $\\lambda$ is our eigenvalue,\n", "\n", "\n", "then $-v$ is also an eigenvector that has the same eigenvalue, since\n", "\n", "$$\\Sigma(-v) = -\\Sigma v = -\\lambda v = \\lambda(-v).$$" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nIiIiK/1/ZLJsZM4WJjMAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "X_train_pca = X_train_std.dot(w)\n", "colors = ['r', 'b', 'g']\n", "markers = ['s', 'x', 'o']\n", "\n", "for l, c, m in zip(np.unique(y_train), colors, markers):\n", " plt.scatter(X_train_pca[y_train == l, 0], \n", " X_train_pca[y_train == l, 1], \n", " c=c, label=l, marker=m)\n", "\n", "plt.xlabel('PC 1')\n", "plt.ylabel('PC 2')\n", "plt.legend(loc='lower left')\n", "plt.tight_layout()\n", "# plt.savefig('./figures/pca2.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 2.59891628, 0.00484089])" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_train_std[0].dot(w)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Principal component analysis in scikit-learn" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0.37329648, 0.18818926, 0.10896791, 0.07724389, 0.06478595,\n", " 0.04592014, 0.03986936, 0.02521914, 0.02258181, 0.01830924,\n", " 0.01635336, 0.01284271, 0.00642076])" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.decomposition import PCA\n", "\n", "pca = PCA()\n", "X_train_pca = pca.fit_transform(X_train_std)\n", "pca.explained_variance_ratio_" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.bar(range(1, 14), pca.explained_variance_ratio_, alpha=0.5, align='center')\n", "plt.step(range(1, 14), np.cumsum(pca.explained_variance_ratio_), where='mid')\n", "plt.ylabel('Explained variance ratio')\n", "plt.xlabel('Principal components')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "pca = PCA(n_components=2)\n", "X_train_pca = pca.fit_transform(X_train_std)\n", "X_test_pca = pca.transform(X_test_std)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n6wAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(X_train_pca[:, 0], X_train_pca[:, 1])\n", "plt.xlabel('PC 1')\n", "plt.ylabel('PC 2')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from matplotlib.colors import ListedColormap\n", "\n", "def plot_decision_regions(X, y, classifier, resolution=0.02):\n", "\n", " # setup marker generator and color map\n", " markers = ('s', 'x', 'o', '^', 'v')\n", " colors = ('red', 'blue', 'lightgreen', 'gray', 'cyan')\n", " cmap = ListedColormap(colors[:len(np.unique(y))])\n", "\n", " # plot the decision surface\n", " x1_min, x1_max = X[:, 0].min() - 1, X[:, 0].max() + 1\n", " x2_min, x2_max = X[:, 1].min() - 1, X[:, 1].max() + 1\n", " xx1, xx2 = np.meshgrid(np.arange(x1_min, x1_max, resolution),\n", " np.arange(x2_min, x2_max, resolution))\n", " Z = classifier.predict(np.array([xx1.ravel(), xx2.ravel()]).T)\n", " Z = Z.reshape(xx1.shape)\n", " plt.contourf(xx1, xx2, Z, alpha=0.4, cmap=cmap)\n", " plt.xlim(xx1.min(), xx1.max())\n", " plt.ylim(xx2.min(), xx2.max())\n", "\n", " # plot class samples\n", " for idx, cl in enumerate(np.unique(y)):\n", " plt.scatter(x=X[y == cl, 0], \n", " y=X[y == cl, 1],\n", " alpha=0.6, \n", " c=cmap(idx),\n", " edgecolor='black',\n", " marker=markers[idx], \n", " label=cl)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Training logistic regression classifier using the first 2 principal components." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "from sklearn.linear_model import LogisticRegression\n", "\n", "lr = LogisticRegression()\n", "lr = lr.fit(X_train_pca, y_train)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_decision_regions(X_train_pca, y_train, classifier=lr)\n", "plt.xlabel('PC 1')\n", "plt.ylabel('PC 2')\n", "plt.legend(loc='lower left')\n", "plt.tight_layout()\n", "# plt.savefig('./figures/pca3.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_decision_regions(X_test_pca, y_test, classifier=lr)\n", "plt.xlabel('PC 1')\n", "plt.ylabel('PC 2')\n", "plt.legend(loc='lower left')\n", "plt.tight_layout()\n", "# plt.savefig('./figures/pca4.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0.37329648, 0.18818926, 0.10896791, 0.07724389, 0.06478595,\n", " 0.04592014, 0.03986936, 0.02521914, 0.02258181, 0.01830924,\n", " 0.01635336, 0.01284271, 0.00642076])" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pca = PCA(n_components=None)\n", "X_train_pca = pca.fit_transform(X_train_std)\n", "pca.explained_variance_ratio_" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Supervised data compression via linear discriminant analysis" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkYAAAHXCAYAAABZD5UXAAABfGlDQ1BJQ0MgUHJvZmlsZQAAKJFj\nYGAqSSwoyGFhYGDIzSspCnJ3UoiIjFJgv8PAzcDDIMRgxSCemFxc4BgQ4MOAE3y7xsAIoi/rgsxK\n8/x506a1fP4WNq+ZclYlOrj1gQF3SmpxMgMDIweQnZxSnJwLZOcA2TrJBUUlQPYMIFu3vKQAxD4B\nZIsUAR0IZN8BsdMh7A8gdhKYzcQCVhMS5AxkSwDZAkkQtgaInQ5hW4DYyRmJKUC2B8guiBvAgNPD\nRcHcwFLXkYC7SQa5OaUwO0ChxZOaFxoMcgcQyzB4MLgwKDCYMxgwWDLoMjiWpFaUgBQ65xdUFmWm\nZ5QoOAJDNlXBOT+3oLQktUhHwTMvWU9HwcjA0ACkDhRnEKM/B4FNZxQ7jxDLX8jAYKnMwMDcgxBL\nmsbAsH0PA4PEKYSYyjwGBn5rBoZt5woSixLhDmf8xkKIX5xmbARh8zgxMLDe+///sxoDA/skBoa/\nE////73o//+/i4H2A+PsQA4AJHdp4IxrEg8AAAGdaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8\neDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQu\nMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1y\nZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAg\nICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAg\nICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjU4MjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAg\nICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj40NzE8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAg\nICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KEpU6nwAAQABJ\nREFUeAHsXQeAG8XVfro7SSdd9d259246hBJCCaSR0EI6hBRKCAkt9N6SQICE8gcCCUkIIQFSSKih\n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\nPIPA/wO575rfoXikyAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "execution_count": 25, "metadata": { "image/png": { "width": 400 } }, "output_type": "execute_result" } ], "source": [ "Image(filename='./images/05_06.png', width=400) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Computing the scatter matrices" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Calculate the mean vectors for each class:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MV 1: [ 0.9259 -0.3091 0.2592 -0.7989 0.3039 0.9608 1.0515 -0.6306 0.5354\n", " 0.2209 0.4855 0.798 1.2017]\n", "\n", "MV 2: [-0.8727 -0.3854 -0.4437 0.2481 -0.2409 -0.1059 0.0187 -0.0164 0.1095\n", " -0.8796 0.4392 0.2776 -0.7016]\n", "\n", "MV 3: [ 0.1637 0.8929 0.3249 0.5658 -0.01 -0.9499 -1.228 0.7436 -0.7652\n", " 0.979 -1.1698 -1.3007 -0.3912]\n", "\n" ] } ], "source": [ "np.set_printoptions(precision=4)\n", "\n", "mean_vecs = []\n", "for label in range(1, 4):\n", " mean_vecs.append(np.mean(X_train_std[y_train == label], axis=0))\n", " print('MV %s: %s\\n' % (label, mean_vecs[label - 1]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute the within-class scatter matrix:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Within-class scatter matrix: 13x13\n" ] } ], "source": [ "d = 13 # number of features\n", "S_W = np.zeros((d, d))\n", "for label, mv in zip(range(1, 4), mean_vecs):\n", " class_scatter = np.zeros((d, d)) # scatter matrix for each class\n", " for row in X_train_std[y_train == label]:\n", " row, mv = row.reshape(d, 1), mv.reshape(d, 1) # make column vectors\n", " class_scatter += (row - mv).dot((row - mv).T)\n", " S_W += class_scatter # sum class scatter matrices\n", "\n", "print('Within-class scatter matrix: %sx%s' % (S_W.shape[0], S_W.shape[1]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Better: covariance matrix since classes are not equally distributed:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Class label distribution: [40 49 35]\n" ] } ], "source": [ "print('Class label distribution: %s' \n", " % np.bincount(y_train)[1:])" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scaled within-class scatter matrix: 13x13\n" ] } ], "source": [ "d = 13 # number of features\n", "S_W = np.zeros((d, d))\n", "for label, mv in zip(range(1, 4), mean_vecs):\n", " class_scatter = np.cov(X_train_std[y_train == label].T)\n", " S_W += class_scatter\n", "print('Scaled within-class scatter matrix: %sx%s' % (S_W.shape[0],\n", " S_W.shape[1]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute the between-class scatter matrix:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Between-class scatter matrix: 13x13\n" ] } ], "source": [ "mean_overall = np.mean(X_train_std, axis=0)\n", "d = 13 # number of features\n", "S_B = np.zeros((d, d))\n", "for i, mean_vec in enumerate(mean_vecs):\n", " n = X_train[y_train == i + 1, :].shape[0]\n", " mean_vec = mean_vec.reshape(d, 1) # make column vector\n", " mean_overall = mean_overall.reshape(d, 1) # make column vector\n", " S_B += n * (mean_vec - mean_overall).dot((mean_vec - mean_overall).T)\n", "\n", "print('Between-class scatter matrix: %sx%s' % (S_B.shape[0], S_B.shape[1]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Selecting linear discriminants for the new feature subspace" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Solve the generalized eigenvalue problem for the matrix $S_W^{-1}S_B$:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "eigen_vals, eigen_vecs = np.linalg.eig(np.linalg.inv(S_W).dot(S_B))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Note**:\n", " \n", "Above, I used the [`numpy.linalg.eig`](http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.eig.html) function to decompose the symmetric covariance matrix into its eigenvalues and eigenvectors.\n", "
>>> eigen_vals, eigen_vecs = np.linalg.eig(cov_mat)
\n", " This is not really a \"mistake,\" but probably suboptimal. It would be better to use [`numpy.linalg.eigh`](http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.eigh.html) in such cases, which has been designed for [Hermetian matrices](https://en.wikipedia.org/wiki/Hermitian_matrix). The latter always returns real eigenvalues; whereas the numerically less stable `np.linalg.eig` can decompose nonsymmetric square matrices, you may find that it returns complex eigenvalues in certain cases. (S.R.)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sort eigenvectors in decreasing order of the eigenvalues:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Eigenvalues in decreasing order:\n", "\n", "452.721581245\n", "156.43636122\n", "1.05646703435e-13\n", "3.99641853702e-14\n", "3.40923565291e-14\n", "2.84217094304e-14\n", "1.4793035293e-14\n", "1.4793035293e-14\n", "1.3494134504e-14\n", "1.3494134504e-14\n", "6.49105985585e-15\n", "6.49105985585e-15\n", "2.65581215704e-15\n" ] } ], "source": [ "# Make a list of (eigenvalue, eigenvector) tuples\n", "eigen_pairs = [(np.abs(eigen_vals[i]), eigen_vecs[:, i])\n", " for i in range(len(eigen_vals))]\n", "\n", "# Sort the (eigenvalue, eigenvector) tuples from high to low\n", "eigen_pairs = sorted(eigen_pairs, key=lambda k: k[0], reverse=True)\n", "\n", "# Visually confirm that the list is correctly sorted by decreasing eigenvalues\n", "\n", "print('Eigenvalues in decreasing order:\\n')\n", "for eigen_val in eigen_pairs:\n", " print(eigen_val[0])" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt8VOX17/HPIoABURSl/MCAAeVOSMQExCtYL4gIIiAi\nSsGCxRal2hs99ae09bT01B681hSpxQsKlaKlyk8rItoqFAIFBcSKgBLwaNSqaEUuWeeP2RmHkEwm\nl8nsSb7v1yuvmb33s/dee4Asnr2feZa5OyIiImHTJNUBiIiIVEQJSkREQkkJSkREQkkJSkREQkkJ\nSkREQkkJSkREQkkJSkREQkkJSkREQkkJSkREQqlpqgOoruOPP96zs7NTHYaIiFTT2rVrP3D3tom2\nT7sElZ2dTVFRUarDEBGRajKzt6vTXrf4REQklJSgREQklJSgREQklJSgREQklJSgREQklJSgREQk\nlJSgREQklJSgREQklJSgREQklJSgREQklJSgREQklJSgREQklJSgREQklJSgREQklJKWoMzsATN7\n38w2VrLdzOwuM9tqZq+aWb9kxSIiIuknmT2oecCQONsvAroGP9cC9yUxFhERSTNJK1jo7i+ZWXac\nJiOAh9zdgVVmdoyZtXf3d5MVU7I9+o93+PP6XakOQ0QkYb06HM2tl/ROdRgVSuUzqBOAnTHLxcG6\nw5jZtWZWZGZFJSUl9RJcTfx5/S42v/tpqsMQEWkQ0qLku7vPAeYA5Ofne4rDiatX+6NZ+K2BqQ5D\nRCTtpbIHtQvoGLOcFawTERFJaYJaAkwIRvOdBnySzs+fRESkbiXtFp+ZPQYMAo43s2LgVqAZgLsX\nAkuBocBW4D/ApGTFIiIi6SeZo/jGVbHdge8k6/wiIpLeNJOEiIiEkhKUiIiEkhKUiIiEkhKUiIiE\nkhKUiIiEkhKUiIiEkhKUiIiEkhKUiIiEkhKUiIiEkhKUiIiEkhKUiIiEkhKUiIiEkhKUiIiEkhKU\niIiEkhKUiIiEkhKUiIiEkhKUiIiEkhKUiIiEkhKUiIiEkhKUiIiEkhKUiIiEkhKUiIiEkhKUiIiE\nkhKUiIiEkhKUiIiEkhKUiIiEkhKUiIiEkhKUiIiEkhKUiIiEkhKUiIiEUlITlJkNMbM3zGyrmc2o\nYHtrM/uLmW0ws01mNimZ8YiISPpIWoIyswzgXuAioBcwzsx6lWv2HWCzu+cCg4DfmFnzZMUkIiLp\n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\nD4mtrKe3adMm+vfvT15eHn379uXNN9+M+7lNnTqVAQMG8MMf/vCQ3srEiRO57rrrOO200+jSpQsr\nVqzgmmuuoWfPnkycODF67uzsbD744AN27NhBz549mTJlCr179+aCCy7giy++AOD++++noKCA3Nxc\nRo0axX/+85/o/suWLSM/P59u3brx1FNPRf/chg0bdthnMnPmTG6//XYWLVpEUVER48ePJy8vj6ef\nfppLL7002u65555j5MiRAJR9JzWZ302NN4rv8KsQkaT76V82sXn3p3V6zF4djubWS3pXun3Tpk3c\ndtttvPLKKxx//PF89NFHVR5zw4YNvP7667Rp04YuXbowefJkVq9ezZ133sndd9/NHXfckVBsX/va\n13juuefIzMzkzTffZNy4cRQVFTFr1ixuv/32Q365AjRp0oQRI0bwxBNPMGnSJP7xj39w4okn0q5d\nO6688kpuvPFGzjzzTN555x0uvPBCXn/99UPOd/rpp3P66acfsm769Olcd911TJgwgXvvvbfCOAsL\nC5k+fTrjx49n3759HDx4MO7nVlxczCuvvEJGRgbz5s075Fj//ve/WblyJUuWLGH48OG8/PLLzJ07\nl4KCAtavX09eXt4h7d98800ee+wx7r//fi6//HL+9Kc/cdVVV3HZZZcxZcoUAG6++WZ+//vfc/31\n1wOR5Lp69WreeustBg8ezNatW6v8sxg9ejT33HMPt99+O/n5+bg73/ve9ygpKaFt27b84Q9/4Jpr\nrgFgzZo1h7wmQ6U9KHd/O95P0iISkXq3fPlyxowZw/HHHw9AmzZtqtynoKCA9u3bc8QRR3DSSSdx\nwQUXAJCTk8OOHTsSPvf+/fuZMmUKOTk5jBkzhs2bN1e5z9ixY1m4cCEACxYsYOzYsUCk1zBt2jTy\n8vIYPnw4n376KZ999lmVx3v55ZcZN24cQLQXVN7AgQP5xS9+wa9+9SvefvttWrRoEfdzGzNmDBkZ\nFX9l9JJLLsHMyMnJoV27duTk5NCkSRN69+5d4WfXuXPnaNI69dRTo202btzIWWedRU5ODvPnz2fT\npk3RfS6//HKaNGlC165d6dKlC1u2bKnycyjPzLj66qt55JFH+Pjjj1m5ciUXXXRRtY9TU/FG8f3d\n3c80sz2AAxb76u5VltwQkeqL19Opb02bNqW0tBSA0tJS9u3bF912xBFHRN83adIkutykSRMOHDhQ\n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\ni4A5NTmXiIg0PPGmOqrtFEf9ga3uvg3AzBYAI4BognL3V2LarwKyanlOERFpIJJZ1+kEYGfMcnGw\nrjLfBP6nog1mdq2ZFZlZUUlJSR2GKCIiYRWKwoNmNphIgvpRRdvdfU4wk0V+27Zt6zc4ERFJiUS+\nB1VTu4COMctZVDBFkpn1BeYCF7n7h0mMR0RE0kgye1BrgK5m1tnMmgNXAEtiG5hZJ2AxcLW71/3U\n3yIikraS1oNy9wNmNo1IufgM4AF332RmU4PthcAtwHHAb80M4IC75ycrJhERSR/JvMWHuy8FlpZb\nVxjzfjIwOZkxiIhIegrFIAkREZHylKBERCSUlKBERCSUlKBERCSUlKBERCSUlKBERCSUlKBERCSU\nlKBERCSUlKBERCSUlKBERCSUlKBERCSUlKBERCSUlKBERCSUlKBERCSUlKBERCSUlKBERCSUlKBE\nRCSUlKBERCSUlKBERCSUlKBERCSUlKBERCSUlKBERCSUlKBERCSUlKBERCSUlKBERCSUlKBERCSU\nlKBERCSUlKBERCSUlKBERCSUkpqgzGyImb1hZlvNbEYF283M7gq2v2pm/ZIZj4iIpI+kJSgzywDu\nBS4CegHjzKxXuWYXAV2Dn2uB+5IVj4iIpJdk9qD6A1vdfZu77wMWACPKtRkBPOQRq4BjzKx9EmMS\nEZE00TSJxz4B2BmzXAwMSKDNCcC7sY3M7FoiPSw6depU68BuPL9brY8RpvOIiDREaTFIwt3nuHu+\nu+e3bds21eGIiEg9SGaC2gV0jFnOCtZVt42IiDRCyUxQa4CuZtbZzJoDVwBLyrVZAkwIRvOdBnzi\n7u+WP5CIiDQ+SXsG5e4HzGwa8CyQATzg7pvMbGqwvRBYCgwFtgL/ASYlKx4REUkvyRwkgbsvJZKE\nYtcVxrx34DvJjEFERNJTWgySEBGRxkcJSkREQkkJSkREQkkJSkREQkkJSkREQkkJSkREQkkJSkRE\nQkkJSkREQkkJSkREQkkJSkREQkkJSkREQkkJSkREQkkJSkREQkkJSkREQskiFS/Sh5mVAJ8DH6Q6\nljp2PA3rmnQ94dbQrgca3jU1xOs50t3bJrpD2iUoADMrcvf8VMdRlxraNel6wq2hXQ80vGvS9egW\nn4iIhJQSlIiIhFK6Jqg5qQ4gCRraNel6wq2hXQ80vGtq9NeTls+gRESk4UvXHpSIiDRwSlAiIhJK\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "tot = sum(eigen_vals.real)\n", "discr = [(i / tot) for i in sorted(eigen_vals.real, reverse=True)]\n", "cum_discr = np.cumsum(discr)\n", "\n", "plt.bar(range(1, 14), discr, alpha=0.5, align='center',\n", " label='individual \"discriminability\"')\n", "plt.step(range(1, 14), cum_discr, where='mid',\n", " label='cumulative \"discriminability\"')\n", "plt.ylabel('\"discriminability\" ratio')\n", "plt.xlabel('Linear Discriminants')\n", "plt.ylim([-0.1, 1.1])\n", "plt.legend(loc='best')\n", "plt.tight_layout()\n", "# plt.savefig('./figures/lda1.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Matrix W:\n", " [[-0.0662 -0.3797]\n", " [ 0.0386 -0.2206]\n", " [-0.0217 -0.3816]\n", " [ 0.184 0.3018]\n", " [-0.0034 0.0141]\n", " [ 0.2326 0.0234]\n", " [-0.7747 0.1869]\n", " [-0.0811 0.0696]\n", " [ 0.0875 0.1796]\n", " [ 0.185 -0.284 ]\n", " [-0.066 0.2349]\n", " [-0.3805 0.073 ]\n", " [-0.3285 -0.5971]]\n" ] } ], "source": [ "w = np.hstack((eigen_pairs[0][1][:, np.newaxis].real,\n", " eigen_pairs[1][1][:, np.newaxis].real))\n", "print('Matrix W:\\n', w)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Projecting samples onto the new feature space" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nlRigiIjISv8fciWbSDryTuMAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "X_train_lda = X_train_std.dot(w)\n", "colors = ['r', 'b', 'g']\n", "markers = ['s', 'x', 'o']\n", "\n", "for l, c, m in zip(np.unique(y_train), colors, markers):\n", " plt.scatter(X_train_lda[y_train == l, 0] * (-1),\n", " X_train_lda[y_train == l, 1] * (-1),\n", " c=c, label=l, marker=m)\n", "\n", "plt.xlabel('LD 1')\n", "plt.ylabel('LD 2')\n", "plt.legend(loc='lower right')\n", "plt.tight_layout()\n", "# plt.savefig('./figures/lda2.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## LDA via scikit-learn" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "if Version(sklearn_version) < '0.18':\n", " from sklearn.lda import LDA\n", "else:\n", " from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA\n", "\n", "lda = LDA(n_components=2)\n", "X_train_lda = lda.fit_transform(X_train_std, y_train)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nZU/j4QAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn.linear_model import LogisticRegression\n", "lr = LogisticRegression()\n", "lr = lr.fit(X_train_lda, y_train)\n", "\n", "plot_decision_regions(X_train_lda, y_train, classifier=lr)\n", "plt.xlabel('LD 1')\n", "plt.ylabel('LD 2')\n", "plt.legend(loc='lower left')\n", "plt.tight_layout()\n", "# plt.savefig('./images/lda3.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "X_test_lda = lda.transform(X_test_std)\n", "\n", "plot_decision_regions(X_test_lda, y_test, classifier=lr)\n", "plt.xlabel('LD 1')\n", "plt.ylabel('LD 2')\n", "plt.legend(loc='lower left')\n", "plt.tight_layout()\n", "# plt.savefig('./images/lda4.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "# Using kernel principal component analysis for nonlinear mappings" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nsn1q6lstMuwDALo+zHrz6aAi/p8ttrVnBVzreDsB/iP+AeeiBsLDPpkSAAABnWlUWHRYTUw6Y29t\nLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0\naz0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMu\nb3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJk\nZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4\naWYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj44NDU8L2V4aWY6UGl4ZWxY\nRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NDE4PC9leGlmOlBpeGVs\nWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94Onht\ncG1ldGE+Cu4gCLMAAEAASURBVHgB7J0HfFTF9sd/u5teSeggAqKABRTUh90H+nx2lAc2sCvYBTsW\nVNCnWEHRP1YsgI2n4vOJT0UUGz4FJSqhhd4REhJIT/Z/ziSzbMImLAnJ3s3+bj43t82998x3ZufM\nmTl3xuWVBVxIgARIgARIgARIgARIgARIgAQCEnAHPMuTJEACJEACJEACJEACJEACJEAChgCNJmYE\nEiABEiABEiABEiABEiABEqiFAI2mWuDwEgmQAAmQAAmQAAmQAAmQAAnQaGIeIAESIAESIAESIAES\nIAESIIFaCNBoqgUOL5EACZAACZAACZAACZAACZAAjSbmARIgARIgARIgARIgARIgARKohUBULdd4\niQRIgARIgAQcQiAP876chWVbY3DISSejexrVV8MmzJ7zzls5D7N+WoaY1r1w8vFdwBRq2BTi00mA\nBBqXAHuaGpc330YCJLAnBArXYd43X+LLb35Ddo33bcbUMSMwbNgITP1xc42heCHMCeQtwG0n9ceg\nQafho8V5vshs/nGqpP0wjBgzFetKfae5U18CNfCu7bFLpt+G/oMG4bQb/oOdKVTbHbxGAiRAAuFD\n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\nyAnQaAp5ElAAEiABEiABEiABEiABEiABJxOg0eTk1KFsJEACJEACJEACJEACJEACISdAoynkSUAB\nSIAESIAESIAESIAESIAEnEyARpOTU4eykQAJkAAJkAAJkAAJkAAJhJwAjaaQJwEFIAESIAESIAES\nIAESIAEScDIBGk1OTh3KRgIkQAIkQAIkQAIkQAIkEHICNJpCngQUgARIgARIgARIgARIgARIwMkE\naDQ5OXUoGwmQAAmQAAmQAAmQAAmQQMgJ0GgKeRJQABIgARIgARIgARIgARIgAScToNHk5NShbCRA\nAiRAAiRAAiRAAiRAAiEnQKMp5ElAAUiABEiABEiABEiABEiABJxMgEaTk1OHspEACZAACZAACZAA\nCZAACYScAI2mkCcBBSABEiABEiABEiABEiABEnAyARpNTk4dykYCJEACJEACJEACJEACJBByAjSa\nQp4EFIAESIAESIAESIAESIAESMDJBGg0OTl1KBsJkAAJkAAJkAAJkAAJkEDICdBoCnkSUAASIAES\nIAESIAESIAESIAEnE6DR5OTUoWwkQAIkQAIkQAIkQAIkQAIhJ0CjKeRJQAFIgARIgARIgARIgARI\ngAScTIBGk5NTh7KRAAmQAAmQAAmQAAmQAAmEnACNppAnAQUgARIgARIgARIgARIgARJwMgEaTU5O\nHcpGAiRAAiRAAiRAAiRAAiQQcgI0mkKeBBSABEiABEiABEiABEiABEjAyQRoNDk5dSgbCZAACZAA\nCZAACZAACZBAyAnQaAp5ElAAEiABEiABEiABEiABEiABJxOg0eTk1KFsJEACJEACJEACJEACJEAC\nISdAoynkSUABSIAESIAESIAESIAESIAEnEyARpOTU4eykQAJkAAJkAAJkAAJkAAJhJwAjaaQJwEF\nIAESIAESIAESIAESIAEScDIBGk1OTh3KRgIkQAIkQAIkQAIkQAIkEHICNJpCngQUgARIgARIgARI\ngARIgARIwMkEaDQ5OXUoGwmQAAmQAAmQAAmQAAmQQMgJ0GgKeRJQABIgARIgARIgARIgARIgAScT\noNHk5NShbCRAAiRAAiRAAiRAAiRAAiEnQKMp5ElAAUiABEiABEiABEiABEiABJxMgEaTk1OHspEA\nCZAACZAACZAACZAACYScAI2mkCcBBSABEiABEiABEiABEiABEnAygYgxmrxeL3T9/vvvsXXrVrPv\n5IShbCRAAiRAAiSwpwSsrvv444+NntNjLiRAAiRAAvUnEBFGk1UixcXFuOaaa3DvvfeirKyMhlP9\n8w+fQAIkQAIk4BACquvKy8vx9ddf45xzzsHcuXPNMQ0nhyQQxSABEghrAhFjNJWWluLpp5/Gb7/9\nhhdffBE///wzDaewzroUngRIgARIwBKwBpM2Dl5//fVGv1133XUoKSmh4WQhcUsCJEAC9SDQ5I0m\nq0g2bNiAMWPGGFTay6RKRZWLtsqxFa4eOYi3kgAJkAAJhJyA6jFtHHzhhRewYMECI89PP/2EKVOm\nmPPUcyFPIgpAAiQQ5gQiwmjSlrYHHngA+fn5vuSaN28e3nvvPSoTHxHukAAJkAAJhCMB2zi4adMm\nX+OgjceoUaOwbds2NhBaINySAAmQQB0JNGmjSRWJ9iqpgfTGG2/sgki/bcrNzaUy2YUMT5AACZAA\nCYQLAdV12jg4evRoM9CRv9zr1q3DY489xgZCfyjcJwESIIE6EGiyRpNteVMXvDvuuMMYT9X5rFmz\nBk888QSVSXUwPCYBEiABEggLArZxMCMjA6+99pqROTo6usp2woQJWLJkCb/jDYsUpZAkQAJOJdCk\njSb173733XfNMOOaAJ07d/alQ1pamtl/9tlnsWzZMioTHxnukAAJkAAJhAMB/8bB22+/3TQAqtxW\nv7Vs2dJEo6ioCHfddRcHhQiHRKWMJEACjiXQJI0mq0jU9e6+++4z8GNiYnDkkUf6EuKss84y+wUF\nBRg5ciSViY8Md0iABEiABMKBgOo6bRx8//338c033xiR+/Tpg9jYWLOflJSEHj16mP1PPvkEn332\nGRsIwyFhKSMJkIAjCTRZo0kVibrerV271oAfMGAAVIHYpVevXjj44IPN4UcffYRZs2YFdOGz4bkl\nARIgARIgAacQsI2DeXl5Zu5BlUsbBy+77DK4XC4jpm6vuuoqeDwec6y9TdpQyFFjDQ7+IwESIIE9\nItDkjCarSPRbpldeecXAaNWqFc477zxERUX54Khyufbaa+F2VyDQuZvsfBa+QNwhARIgARIgAQcS\nUF2nAx3NmDEDq1atMhJq4+A+++zjM5pUv+233344/fTTzfVFixaxgdCBaUmRSIAEwoNAkzOaFLu2\noqnRpIoiPT0dt956K1JTU00rnE0WdV846KCDcOmll6JZs2bo27evcXNgC5wlxC0JkAAJkIBTCVij\n6cADDzTf66ob3sUXX4yEhASf0aQ9TXqsvU3dunVD165dccABB9BFz6mJSrlIgAQcTWBn14ujxQxe\nOFUkdr3nnntw4403GiNKW9zsiEL6tPj4eOOuN2zYMDPRrRpOajBxIQESIAESIAEnE1Adp4vqrDZt\n2uDDDz80bndqJOk160GhW3VL1/X11183BpTqOqsjdWtd+ZwcX8pGAiRAAk4g0OSMJlUAuqornhpG\nVomocvB3z4uLizO9T1bB6LFepwJxQrakDCRAAiRAArsjoN8qqau5GkXqPaH6S70s7KJGU2Jiomkw\nVF2nDYcaXs9T11lK3JIACZBAcASanNGk0VZFokaQKgV1TVC/bx1y1X4Mq2FUeaiiUUNJFYgqEioT\nJcOFBEiABEjAyQRUt+mq+kt1nG5Vz+m6ffv2KgaR6kLVdarnrJFlGwhpODk5lSkbCZCA0wg0OaNJ\nlYA1glRBqPuCjqRX3Q1Bw2jLnCoUDaernqMScVoWpTwkQAIkQALVCaiuUr2lOkwb/NRg0l6mwsJC\nX1ANow2E6nWhW6vnqOt8iLhDAiRAAkETaHJGk8bcGk6qGNRY0kX3/RcbRhWJbXXT63qeCwmQAAmQ\nAAk4mYDqKrvahj81nKobRHqs160nhcaJes7JKUvZSIAEnEqgSRpNCttfKVjFUj0R7Hm7rX6dxyRA\nAiRAAiTgZAJW19Wmx+w1G9bJ8aFsJEACJOBUAlW7X5wqJeUiARIgARIgARIgARIgARIggRARoNEU\nIvB8LQmQAAmQAAmQAAmQAAmQQHgQoNEUHulEKUmABEiABEiABEiABEiABEJEgEZTiMDztSRAAiRA\nAiRAAiRAAiRAAuFBgEZTeKQTpSQBEiABEiABEiABEiABEggRARpNIQLP15IACZAACZAACZAACZAA\nCYQHARpN4ZFOlJIESIAESIAESIAESIAESCBEBGg0hQg8X0sCJEACJEACJEACJEACJBAeBGg0hUc6\nUUoSIAESIAESIAESIAESIIEQEaDRFCLwfC0JkAAJkAAJkAAJkAAJkEB4EKDRFB7pRClJgARIgARI\ngARIgARIgARCRIBGU4jA87UkQAIkQAIkQAIkQAIkQALhQYBGU3ikE6UkARIgARIgARIgARIgARII\nEQEaTSECz9eSAAmQAAmQAAmQAAmQAAmEBwEaTeGRTpSSBEiABEiABEiABEiABEggRARoNIUIPF9L\nAiRAAiRAAiRAAiRAAiQQHgRoNIVHOlFKEiABEiABEiABEiABEiCBEBGg0RQi8HwtCZAACZAACZAA\nCZAACZBAeBCg0RQe6UQpSYAESIAESIAESIAESIAEQkSARlOIwPO1JEACJEACJEACJEACJEAC4UGA\nRlN4pBOlJAESIAESIAESIAESIAESCBEBGk0hAs/XkgAJkAAJkAAJkAAJkAAJhAcBGk3hkU6UkgRI\ngARIgARIgARIgARIIEQEaDSFCDxfSwIkQAIkQAIkQAIkQAIkEB4EaDSFRzpRShIgARIgARIgARIg\nARIggRARoNEUIvB8LQmQAAmQAAmQAAmQAAmQQHgQoNEUHulEKUmABEiABEiABEiABEiABEJEgEZT\niMDztSRAAiRAAiRAAiRAAiRAAuFBgEZTeKQTpSQBEiABEiABEiABEiABEggRARpNIQLP15IACZAA\nCZAACZAACZAACYQHARpN4ZFOlJIESIAESIAESIAESIAESCBEBGg0hQg8X0sCJBCZBLxeL+wamQQY\naxIggToTKC0FXnkS+O4LU45Uf46vbPnkXeD5h4Hi4oDhqt/HYxIggd0ToNG0e0YMQQIkQAL1JqCV\nmfLycmzILsBLXyxFcWkZKzP1psoHkEBkELDlByY/B7zxLHDduXD96zVTpug1XWwY77/fAu6+Cnj7\nRWDaq1XCRAYtxpIEGoYAjaaG4cqnkkBVAoUFQG5OrZVko/gy59capupDeRQuBDRty8rK8PuqbDz8\n/gLMWbwFr87MQqm0GqshxYUESIAEdkdAy5Adg8QYSkoBEpKAh0cAj9xmyhYtR/S6e9wouO+/DohP\nlDUB288abM5bw2p37+B1EiCBmgnQaKqZDa+QQL0JqKLy5u8AzugBnNgJ3uWLjVHkr8B0XxWe68m7\ngbMPk+09bBmsN3nnPEDTVo2jL3/fiGc+WYr8InGvkUUrOMUlJUxr5yQVJSEBxxJQPaFlRmFhIdY8\n8wGKuh8GeDxwT38TUVefidIdOxB1w0C43n4BiIpCcZeDsObZ6SgsKqLR5NhUpWDhRoBGU7ilGOUN\nGwLWGCrduA4oKgSapcP9jz4o/36mr6KsFepyUYLum84D3nkJSG+J0rQWVHJhk8o1C2rTv0Tc8KZ8\nuxJvf7ca5VLxgcuF47vE48yDE1Ai3xtoHuBCAiRAAsEQ0HKlSAIuufVx5Jx2gXyzJEcZ/0PMOb2B\n/30NKVSwrd85WHTnOBS63fRcCAYqw5BAkARoNAUJisFIYE8J2EpzYYs2yJ7wIaAueolJ8IgvOt56\nwRhG5Zs3wnP+McDP3wKlJSg8eQBy+l+CEumB0Pt15RKeBDTttheUYPx/FmP2gj9NJKLcLvxtPzd6\ntqRbXnimKqUmgdAQcElji1uMoOjoaMTExJj95QOuwsbL7xDX72xg6yYgbxs2D74Jyy643lzXcBre\nIz1Sej8XEiCB+hGg0VQ/frybBGoloL0IagDlprXE8vEfojQlHYhLgOfJkcBzDyOqfy8gWyrU+dux\n5cq7sOrSW2Swo4reBxpMtaJ19EVNO3WlWbdlO5ZtFPdMWRJj3DijqxedUksRFxdnVq3QaEWICwmQ\nAAnsjoAaP7GxsUhISDBr61+/R+tXHpVvnFJ1FAiUt2yLlm+OQ5ufvjLXExMTTTlDo2l3ZHmdBIIj\nQG0dHCeGIoE6EbCtg7otSEpG5phJyD/4CNPrFPX6OEgzoGkdXH3Pc1h7whnmHargtCLNlsE6IQ/p\nTWos6VpYXGq+Y2oeX47TeiSjdbIHZ3UrQ2v5Njs1NRXNmjVDUlKSaQVmWoc0yfhyEggLAlaXRMn3\nStro0vqDSWj39J3wxiWiVAZ9+Pm+V1DmiTIDQLR9/n60ffcFE07Ds4wJiySmkGFAgEZTGCQSRQxM\nwPTE/DKnVhc2E2b9GnF9K601XOA31O+sKjk1gNRFIj4+3igwrxhJ2zt3N654+m1LucuD8vgkFKa3\nNhVobUFUhaiKTu+n4VS/NGjMuzWvac/iV39sxJ2TM7Bua6ExnLo1d2HAQS60SIpFWlqaWVNSUnzp\nzJ6mxkwlvosEwp9AwqhrED9Zhh2PjUNR2w5iML2MvPQWsn0JO9p1lsa4GMS99xIS77w0/CPLGJCA\ngwjQaHJQYlCU4AjYyqnr6fuA846G65Fbdxk4wYbxzv8fcEIHoHczeMXf2xhRwb2m3qFsy6C6YKnR\nlCzrAS8+hFbvv2LcKbZ1PQzu7M1mYIAD7rwQrVYtgbpTqPuFNZrqLQQf0OAEbF4rFXe8t79dgTe/\nXoHthSV4YeZyeMUo1rRPk56l5s2bIz09HTSYGjxJ+AISaHIEbDnjeu9VuL79DNJCg9w+J+G3e56H\nS8oV1R0eKWf+GPkMco8/XYbnlFE6v5gOt8zppI05jan7mhx8RogEKglIXy4XEggvAlr46xDOrn06\nI1pGmsP0yfAszUTZM+/ClZBoemdUSbhkRnT3fcOAtvsCyakoLSiAJzG50V0VtCchRkY4SrppALBy\nqYGdfdhxmDd4OFqvXYFDnrlDXCwS0PyOwSgZNUGGHb+IvUxhkiVtRSZfjaQvlmHBmlwjeZTHhZO6\npyJatrHihqcGtBrC2uuoW35jECYJTDFJwCEEtKzR7ySLTjwDsTM/QnF8MrKuuAOxld85aZlirssQ\n41kXj8C+ovdS5v+Aor8NQIzcR88FhyQkxQhrAuxpCuvkizzhVXFYoymn79nIl5HmzHDeC+fD84+/\noHzd6gqDavz9cIsLg07w542OxZ9PvIVC2Vel0tiLGnAx1/YH1q0ysm6SEY8WXDUSMdKjlNOlO357\n6E2UxsUbWaMfugn44xe2DDZ2ItXhfdZg2phTgLEfLvQZTIkxLgzsGY/9m2snosv0NGkrsLpeqtFE\ng6kOsHkLCUQwAS1rdFFdUiiud6tHjseKYfcYrwTtuVa3X+3F1q0eq7fCehmOfOUDL6BAGuRU71nd\nGcEYa4264aM6+pwj4F21LGDPnAkjaYDzjpVh3n8KGKbWl/Bi2BOg0RT2SRh5EdCCS5WAjkq3ZtAw\nbL5hDLBdWvhlEtmocw+H67mH4H5TemyiolHUsSuWPvEOtovBpL1Tjak4rJxaAGPed8CmdVh7y+NY\nffqFpgKtAwKogitp3RYLH5mCov0ONPGIvvUin6yRl7rhEWNNW63ArNiYh0c/zMS6HJmHS5ZWiW70\n7y7fL8WVmh5N7VXS1Q77yw+ywyN9KSUJOJWAliFanmhDjOoPXXVQGT3WreoVXbWRRsNpw40udtuQ\n8dJyEeoS/5eWNbrDGx2scxf2aQ0s+NURhofV1a4LT5Ch2zfDJQ2wXvleWst4I6/ES7flO7bDdZUM\n2JSVCWgYiauG4RI5BGg0RU5aN5mYauGvrfW2xX79X/pi1YPynVBeDqSmiqjJYjBt34Ztfz0bmXeN\nR3Fl674N3xjKQ2GbQlYK1PzmrbH235lY9exH+POwo03Pg46ept+4aMtgcnIyRMNhkcj654MvYcOU\nb43RxMLYmVnWKlE13JNjvEiM9hhBOzdz4ZT9SpAa5/JVYvx7lhor3zmTGqUiARKoKwEtO6ze04GC\nrHGkBpMaS9qzpAaSbtVY0vNqOKlu0fCq+3RpyDLIGBgrs4CBfWSAini4zu4F7+rlVQwPE2bJArgG\nHClTb4h3xTmHwyveIaHUdVZPayNs3huzZGTbfDMtiPvyU4B/v2VkU/nUi0W9WSBeLSgvQ+E941HY\ntYcvfnVNW94XXgRoNIVXekW8tFroa0ubtt6rMrCtaaU61KqrMjtXKoiSmDgTVsPox/i2AtuYEH0F\nssia3+kAI69tCfTfqnJT+bYecYKvkFY59X4uziFgDCYR55flWyt6A8uKcW6vJBzVMRr9OpUiNTHO\nDCeuRrFWZjRN2bvknPSjJCQQzgTU+NEyRcsWXVWvqbGkZYxd9dgaVtagUn3ZkAaT1XOFrdphx9Rv\nKxowxdBwq1EkE7cbo0OOvbP/C/f54tomLobIzcH2f/2MQvku2RhTIdR1Kr96omyXOsPaCf9GuWyR\nkAT3A9fB9dS9KFv0Ozzn9DbeLOrVsuWmh7H5pHM5p2I4/5jqKDuNpjqC422hI6CFv7/R1Oa3H7Hf\nfZeZuSpQWIDsA48AUtLQYsZb6Dp+pPQGVAz5bZVLQyqP6lRUkel71XBTw8i2/qkyU8WmSk9bDW3L\noO5b407lbExZq8vO450EbKVgR1Exnv1kEZ77dClmL9xijNpmseJp0iHKpKH9rkDTUVt9be/mzidx\njwRIgAT2nIDVB9bdV/WK7vs3ymgYPa4ext67528N/g4tI7W3JrttR2x44m2gQCb1TkyC5+oz4J0+\nBZBR/DzDzxdjRCarKynG+nH/wrb0Vo5xRVdGGoe8lGZYPHYqijp1My7+bvFcibnsZDNaoU5Cr14t\nG8S7xd/Q03u5RAYBjp4XGenc5GJplUPyOy8g6v8ermgVklj+cu9L2JreEof+60W0+H4G4n7/GXHX\nnIHiSZ/BJUZKYy4qo1aatfKsikwLWT1WZedfmdZrNpx/GBbEjZlaNb/LGkybZMCH5/67FOuyK75f\n+mz+JvRo18EYvWr8akVFt2oMh8JArzkGvEICJNAUCFidYLc1xUmv7y5MTffW97yWl9ntO2P7k9PQ\necw18IghFTVGBjgSlzbIoBQl4q6+fOQElDUT13QJG+pFOVlDU3W1rjuk1+mP259C9/F3I37FIrjK\nSoCNa7H02Y+xo+0+iBcdruFsOR/qOPD9jUeAPU2Nx5pv2ksEbCVWPyKNevlx4xtd2Ko9MmQUunyp\nxGphtnjIzVg/ZERFa1fOFsRccza8BeKr3IiLVVxamVaZtEKtWz2212yBrYWvfxh/o6oRRearqhHQ\nvKbfLi1euw2PTpcBHyoNptbJ0bj82OaIkSHFtRfRulrqPl3yqkHkIQmQQJMnoIaH6jFtNNIyMD81\nDYtGvQivlJ+lYiiVtemAMjGaFt39PIqSko2+829gCiUg1cO20cu4PkrjZrdxI5EgXiwunUtRBpkq\nb9kOXe69FM3XrTSukSzrQ5lioXs3jabQseeb60hAK7Lqfxw99jZg21ZsP/wEZN4vhXPlcKv6PYkW\naOv79ceae56TUevWy4g+P6I0d1uVLvU6vn6PbrNGkRpBuqpisQaTfVCgMDacDcNt4xOwBtP3izbj\n6f8sQV5BxXD1ndJlhLwD3Yh3V4yQ52/saqWhevo2vuR8IwmQAAk0HgGrw7T808ZBNTzSt21B97su\nMt8aR21eB8/6VXCJe1u3u4cgdUfuLt9k6TNCtVj51XBKkoEgOt12ARIX/WImCN507GnIuPlxuPPz\n4I2Nwz53DUba3G+quNGHSm6+t/EJ0D2v8ZnzjfUgYHuZ1Gja+uTbcH03ExsP6CGTiHp83whpAVhc\nXIwCmcx264G9UPZ/n8DT+QAk6Yed0uqlBkljL8EohGDCNLbckfo+azAtXZeL175a6cNwWFs3ercq\nRpx8yKytqVpJUEVrewaZhj5U3CEBEoggAlr2aTmoZWLq4gzEy/dL5TLVh6twBxZddR+i5BunLpOf\nhEvKzn1v7I+C5z6E+9AjfQ2JTkDllkEeEs4/GhIR8VLJx+oLb8LSo/5mRJs/6hX0eOoW8ylAwqih\nKC0WN+1zL3aC2JShEQk0fu2xESPHVzVdAvYjzLxD+xhjyQ6yYAdUUHcp3dcep6J9OqFcCkGtCOvK\nhQRqI2DzibrltUoCjuiUCI/bhRM7VxhM2oqq+YuDdtRGkddIgAQiiYAtNz3i1RF/4z/MgA+uokIs\nGPk81vfsg9V9+mHh7ePg0gEixE0vfujpcC9d4Ai9rLJreR913jGQWeeBHXlYced4rD/pHNMjpmV9\n0T4d8cc/p6Ckzb4mTNTIy1EucznZeEdSWkdyXGk0RXLqh2ncbYuWukVpYWYNJN1XH2k9r8aSGk3q\nqmeNJ20BC0UvU5hijjixVfmpMb4lrxAvf56F/KISMxrUiftFYWCPGHRLL/eNkKd5TvOY5inNj+xh\nirjswgiTAAn4ETDlp8zLFDX4RBm9thnKEpKxcOzb2N6luzE8tLEpt/uhWPToVJS7pSdHpgiJlmG8\nvTLRrd4bykXLffVe2fa4jPInniir7n8JOQcfbuTWuRR1VFStR5RLuf/HqInI73kUcsZNQ4HM06TG\nFpfIIUD3vMhJ6yYRU1tBtZVVNZD0nLpI6WqNIt3qquG0UNN9fzeqJgGDkdhrBKzBlLUhD89/loXc\nfJnosLAYg49uiXjJYx3SveKxkWCMdFX+drQ8zVc0mPZaMvBBJEACYUjAlp9FLdog760fkHrXpVg8\nehKK5fumFCk/VQ/rom7zhXKshlPXUZcj95XPEC3Tg8SJ0WJ1e2NHX2XXVesJO1q3x4aJM4wBlSAy\na8OYlvUqm8qen5+PwsJCLB/xqDGoUsTQsl4v1AONnXKheR+NptBw51vrQcBWVHWrhZ0tbO1WH233\n1cdaw/ifMwf8RwKVBFTp6Tpn8Z+YPHsVisvKzRVz3usyhpIqTzW67chQum/zGEGSAAmQQKQT0PLS\nTBArE9xufPZDo3eTxEDSRiZt3FQ9XFRUhB07dqBIys/Fz3xgrqWKsWJ1dCgZanmu9QWVVct5XdVg\n0m9X9ZqeV+NPVzMQlWxtXUSvc4kMAjSaIiOdm1wstZDSAssugQotPaerLZADhbH3cxuZBKzB9MGP\nqzHj140+CEd0iMPfeyQhWrJYXFy8UaaqUHXVfOef93w3cYcESIAEIpSA6lctF9WoUGNDy0rd6qqN\nTLqoAaL7OkiTlr0a1gl6WeVWuVRWlcnGQ+XVeOhiy39rNOmxXqcuMHgi5h+NpohJ6qYX0WAL22DD\n+RNSQ8tVXAQszYT3oMMCFuwmjN70xXTgJJkHqtJI838O951LQJV2QXEJJs1cjnkrcoygHknD4zq6\ncHDrUjMDvCpGVZKqUFU5al6qS35yLgVKRgIkQAL1J6DloxoRqhe1l8YeWyNE32ANDw2n7nBOMDxs\nea5lvO4bvS5blc2W+Sq7XtNjPa9hdKkexpzkvyZNgEZTk05eRq4uBLRA9K7MgutvBwBR4os97m2U\n/+2cKhVmE0YmvHPdMBD49r9Ah/1Q/vniKoVsXd7NexqHgKafGk0bt+7A72tzzUvjolzo1xlol1Qq\nSj/FKH5V7qpMVTla5do4EvItJEACJBAeBKxB4W8g2XPVDQ89r2Wqlr+67wTDw19W1Q16rIvd2n09\n9j9nz+uWS2QQ2OnfFBnxZSxJoFYCtjJd3GYf4OiTgPSWcN11OVzPP2wKeS3ozbp2JdznHgEsygCS\nUlD4xBTj56z3c3EuAU0fXQuLZZZ6+Yg3JaYc5/ZMRYsEN87u6kX75IoR8nTURTukuL/Sd27MKBkJ\nkAAJhI6AGhNaVtqeef/eeSuVDaPXNJw1sqobIjZ8Y25VBiuf3Q/0fnvNbgOF4bmmS4BGU9NNW8as\nDgS0Qq1uA/rB6qbRL6O0QxdAJuNzvTYO7hEXoUxG0Cn/9Ud41GCSye90Poec2x5H7j77mUq4GlQ0\nnOoAvhFu0XTR9PlpyZ+4c/J8LN+43aRZpzRgUI8otEyJhv/wstYXX5UjFxIgARIggdoJWEPCNjQF\nKjuDCVP7W3iVBEJHgEZT6NjzzQ4lYCvXYhJhsczJkHfsqRBLCq7vPofnunMRdYn0QMnkfJBJ+taM\nmYSNR5zoM5gcGqWIF0uNJe1Z+uh/qzHxi2XYXliCF+RbphKv23z8m9YsBc2bN/fNx2ENJqv8Ix4g\nAZAACZAACZBAhBPgN00RngEY/aoEtBVMK8rqZ60uBHqcdemtaC89Ti3/70G4f/8Z3uatxYgqxdLH\n3kFBi1ZIkLDqZsDvXqqydMKRGsC6FsqAD6/NWo6fl1UO+CBp3Ld7M8TKwEiemETjiqfpp98wWZcR\nzQdcSIAESIAESIAESEAJ0GhiPiCBagS0sqyVZ52bR3snxFcPCb98VzEoREkJymNK4cnNRtzqpShv\n38HMNaGjBdnKdiCXhGqv4GEjELA9htnbi/D8p0ux4k/tO5ROQhnw4fSD4tC9VYUPu6ad9b/XtNeV\nadgICcRXkAAJkAAJkEAYEWBTahglFkVteAK2p0kNIK1MpxYVoOtdg5Gw8FfzbdOaUy8C1HCKS0SH\nJ29D+8/eM+5dOvEde5oaPn2CfYPtYVqfnY9HPljoM5hS41w4qxvQNqHEGEf+HyTrPtMwWMIMRwIk\nQAIkQAKRRYBGU2Slt/Nju2Xz7mWU3h+tFDf0Er1uFdIu7QtPXg5chflYeeFNWPy3gfjpvpdR0kJc\n9OITkDTpSSQ9eit7Jho6Mfbg+dZg0l7COE85EmIqBnJon+LGmfuXoXmCy/QO6kz12qNoDSX2Lu0B\nZAYlARIgARIggQgjQKMpwhLcqdE1RtCn/wKOagXvD7OMUVTdMNLjcjWqDpRZxCeMMSOhVQ+zN+Jn\nnrliKaIv7gvExgH527Hirmex9sQzTe9TeXo6fr13Irb3PNq8LurzD+Ce+EiDybM34hQpz9C00zVD\nJqtVo8lbWixDiifhiH2icUrnUqQmxkCHE9dR8jikeKTkCsaTBEiABEiABOpPgEZT/RnyCfUkoJVc\nHeYbb04Qv6l94bq2P7zvveozQvS6mRtp0e9wn3WoCQMxUrwLft3rPU72XcVpLYHmrYB1K5E19m1k\nH9TLVLK1sp2amoo46aVYct0D2DrgSkC+byqXochNJV1k5dL4BGy6FRWX4uUvsvDMjMX4/LdNJt8k\nxwLHdopCs9RkMzqepmFycjLoUtn46cQ3kgAJkAAJkEC4EuBAEOGack1EblvZLZHvhLY/MRXNrvo7\nUFwE9yO3onzx7yi763ETU9c3/4XnFvmeKDUd2JaNvFc/g6tTV8TJUNLqVrU3XavUQCuUZ25+ehqK\nc7JREBcvLl4VA0OoO5e5XliI/Px8rDn7EhT06Qf3Ib2QLD0bdsS9vSlPE0nqBouGzUM5O2TAh/8u\nxfJNFQM+fPHbZvTat6NxxVMDSdNGhxK3g3ZYt7wGE4wPJgESIAESIAESaDIEaDQ1maQM34hopVd7\nafJlm/3EO2g3dgRif/8J7o8mw52ViZLTz0PUw8OBxGQZhKEYa8f9C2VtOyJF7lEDRiu/e2tRWXQ1\ni1S0kZaORBlNTUfS0wq3DhCh120lvFCMp4LOXZEoN/ju21vC8Dm7JaDMNQ+s3JQnBlMWtu4oMfek\nJUZhcJ8WiJeR8qKjE3zDyGv6aX7hCHm7RcsAJEACJEACJEACfgRoNPnB4G7oCNjeomIxUBbd8hj2\nfe8FNPv3m8D8HxH9209mMtkSmR9p2cgJKEtthiQR1d6zN6XWZ2qlWnuUdKAAOxy1Gkm2wq0VdQ2j\nq57XYw1ve5n2pjx8Vs0ElLu6dc5btgWvfrUSxSXlJnD7FA9O6+ZBclSJySOaNpp21lBqiHxTs5S8\nQgIkQAIkQAIk0BQI0GhqCqkY5nHQyqxWatVAKZZvg9RVb+0pFyDxO3HJk32XV1zwNq7BmlufRFFi\nEhLFULEuVnrv3ly0Qq3P1Iq2GkVaMddj3detXtfFntNwNowaTf5h9qZcfFZVAspce5jW/LkdL3y+\nAtI/aAIc2NKNPu2KEB8dZfKU5itNF00/GktVGfKIBEiABEiABEggeAJ7t8YZ/HsZkgQMAVuR1Yqt\nGkLau9M8dysOvOtCRG3Pg3vrRpRJ5bi0RVt0HjMM7ebONmHUXc6/92Bv4lSZVB41iGwvhb/R5C+z\n9jTpao0svcalYQmowaSrunSmxnpxTJckuAX70fu6cXS7YiRJ3khJSdllsAemTcOmC59OAiRAAiRA\nAk2ZAI2mppy6YRI3fyMkKfMXtL3+bPW9k7mRdmDxsAfx823PwBsVLfMiJaLF+LuRPvlZX+9BQ0TR\nymN7kwL1HvmH0euBwjSEbJH8TNu7lFdQgldnZiGvoKJX8thOHgzsEYseLcuNoaSj4+mw4g1pWEdy\nOjDuJEACJEACJBCJBGg0RWKqOyzOtucASzMRd8MAGfAhCa6iQmTe+wI2HHY0ipq3wC8PvIrCffcH\noqX3Z8oERD9XMU+TE6LCHoyGTwVrMK35cwcemvY7vl+8BS/PXIly6XHSXr59m8eauZeaN29utnbi\nWhqzDZ82fAMJkEDkEjD6e+1K4IvpxgNAj6svJszmDTBThYhuDxSm+j08JgEnEqDR5MRUcYBMppDb\nsBa4dQjk45GAhZwJs241cMNAeHO2BgwTTFT0OfpBf/SAI4CkFJQkJGPRY+9gx37dzNxI6mrllrmR\nfr9zPHJPOAPYngvPxH/Cm7XQfNfCAjgYyuEbxuaPX2XAh0c/XIg/84pNZEokz5R6PSaPpMuEw2ow\n6Rxa7GEK37Sm5CRAAuFDQL8r9f76I1x/7QSMkClBXn26ik7WstuEWb0crvOPBV4YC5fUKcy5AMZV\n+MSckkYqARpNkZrytcRbCzpv5ny4jt8H+PxDYzh5ZYAGa5z4CsIVS+G68Hhg7ndwndjRGD42TC2P\nr3LJvEvep4M/bJYJSfOOPx1ZD7yMovTmvsqwVoi1MqzfDi0bMhw5g2/G+hlLkN+mgyl8qzyQB02K\ngCpX/Xbpv7+ux/99vgyFJTIJsiw92sbggt4yQa3Ha4aCt98w6bDwHJCjSWUBRoYESMCBBGw9oLBb\nT5SdfC6QIB4izz8Ez91XoVz0uZbdxjia9z3c50qDqDRyQQZ1yr9trG8i+D2tLzgQA0WKMAI0miIs\nwXcXXS3EtNenUCaOLb7ln4B+S/TDl3BfcBzKt2zeWRDO+Qruf/zFfHuEgh3Y/u6PpiCsSwuSLXyL\nZaSzdZffhvJmacZg0u9S/NfkZKkky2AR684biiIZqMFXKLPFanfJGpbXNV+USl58/avl+NePa8UV\nT7Kb/B3dwYPjOqgCLjPfkumAIIEG7AjLSFNoEiABEggDAlZvFxUVYcPd41HYp69OVgh89Qk8Q/qi\nLC8XrumT4bnyNDGoZCZDqSdsfupd5MUn+eoKYRBNikgCVQhwyPEqOHigBNQY0aG/t551MZJKy9Hs\n5UeBzevhOfswlEwWY+nHr+AZexuQnCoFYT42ymSz5Sli6Ejrkrby12XRb0+08qs9BbqvI+nZyWT1\nmyGtFOuzNYwadXa0urD6ZkX4oLAA3qRk39Dl1VmpInKJ26G3S/caw1S/pykeKwdN541bd+DXFdtM\nFKM9LvTr5EKHlBLJH8kmf9h8YIcUb4osGCcSIAEScCIBLad1LRZvgKxh96Ftu85If2sCsHwRoof8\nFVixxLjcl8UlYsU/J6O0VRukqEuf3MOFBMKRAHuawjHVGkFmW2ld2+8crBv5LLAjDyguMgWh5+Hh\nZrLZ0qRULH36fWSLm1xdC0E1iKzBpN+iqBueulrph/zqjqeGklaItXKs1/WahrHX9V6nL8rGK61x\nOO8Y4IR94V2ZZXj5M9N9NVZd4vON0w6Ca0LFQBf+YZwez70hn2ElLIrEDU+NpoSoMgzo1Qxp8W6c\n1Q3YN7XMjJCnPZBJSUk+45mDcewN+nwGCZAACQRHwOpu25ipunjVqedj7XA9rSr/AABAAElEQVTR\nYTlbgI3yTbQ0rBa17oAFD7+B/GbpVebO0/tZbgfHmqGcQ8D5NU7nsIoYSawRY3t3NnU/DMseeh3Y\nJoM9uD1AyzYoatUeC0ZPQkFyiqm42rB6754WhBpeC17tXVLDSFfbg6DPs6vtidLrtheqLu9rzIS0\nxlDZmuXGPQGiONwDjkS5uDdaV0bjZii9UG7xBcdLjwHNW6NMWu7UaIgko8my+n1lDu6a/CsWrs01\nDNonl+OCQz1omxJl3DX1Gzc1nm0e2NP81pjpz3eRAAmQQFMlYBs0tRHTNGrmbUOrN5+SEXCTARkl\nr1x8qmOXLUCrb2f45mHUclv1vepuLg1PwDZE4pv/7tJY6/92U9f4ZU6tYfzDR+o+c22kpnwN8dYK\nqBZmtmdHC8NmeTnY97ERpiB0SY+TV3yVY1ctQafXHke89AZpmPpUYO07tQC2PUvVjaFAYfScrk5e\nrCFQIEZmzqNvAPk7zJDqnmtkLqr3XjVGQfm2HHgu7gfM+tj4hBeLb3j2xTeZwTF8BZ6TI7kXZFPD\nUY3ELzI2YPwni5FbUIqXvlyJHcUVAz2kSe+iGkt2UBD//Ob0PLAX8PARJEACJOAoAlb/amOmeoWk\nrV2O/UYMgEdc9qUwx6Kh96M4MQXlsfFo/caT6PDq40gQg0nDV9fvjopYExLG1j9c5xwOXHEqXA/e\nKGNxVHWPtGHw7iviDXM0XF3dUsfbFlENtnuS5DSa9oRWhITVwlANGC0Im61YhE7DpSAskWGepSBc\nePV9yDnwcMiXN0j535fodM9lSCwr3SsFoS2E7TYQbnvNbgOFcdo5NQh0BLhtaS2xcsJHKBO3Rp2o\n13wXJu54Uf17AWtXmO+dss+/Fiuuf9B8UxYJPU22wC4RPm98vRzvfL/azL2kAz4ct38yEmNcxii3\nBpP2MGmPpG2p1HzAhQRIgAQamoCWVTqXoNnW8DJzTcOtWlZruBpuD9vTMT/NRsq1Zxm95i7MR+aI\nJ7H2wN74310TsP2AnoBHPElmfoDkmwaClc7GS2bNj1r3KLnkZqBZc2DGu3BfdgrKpeHbeLhI3aRc\n6nXuh0fA9ah8p96iDcoHXYXimDifJ0zjSRseb2L+DY90ComUUT9/i6TrzzEj37ikIFxwxzNY170X\nfr3iLmw482LT/R4llf2ki46DW3tQQrRowWCU1fLFtSoqE2bBr7WGaYgoaMXetqztELeFhQ+9joJu\nh1bwe/VJGXlDRoLLzcG6W5/A6tMuMCJoeHtPQ8jkhGfadMvNL8LTHy/GtwvFD16WGBnw4ayD43B4\n+4riSY136/7h77bphDhQBhIggaZPwOiOH78GZOhs1y2D4ZWKqDnnF3VTnu3YDvy1M3DpycCm9buE\n8Qse1K55xx/zan2OCbNyqQlTXaagXlKPQCbO835A1NAzjSdKucuNhf+cgm0HHVbhZi8j3mbe/E9s\nPe1C8000Mn6C575rWCGvB/Ngb9W0UcNIp3PZetyp2D5Q3P/FZRJZmfCcezjKZe6sMqm3ea6WuS8/\nfksMWw+KDz4cm69/wDTa6r2NnZ+CjVsow9FoCiV9h77bFIS//Yyoy/8mNdhYlEfHIvPRt5DX9RBf\n5XWVjKy3ZriMqqcDREhXbtTgE0NSEJoftSgw1wkdgVNkpICvZ+wihy08XFOeB6RXxzXwqF3CNFRS\nqMGkvXb2eyztJSkT94ScHkcB2nsnxlGZJ1pG1EvFdhl5yD+c7odTj9qeMtR02ZJbgEc/WIjF66Wy\nIUtyrAtndnNhnyT5xkvYaI+SctAte5f2lDDDkwAJ1JeAllPa61+muk70oU7B4brwBJTLhO62Ymla\n7desgFvdoEpllNStm1EmRpO9vqcy+HTW+ccB8kzX68/s8iwbBt98Bpx8gMyr2EF0SkmjVXTt+3We\npuLTpbHvz41YOPYtFLZtbwbrSUtLM9+gqiv1yn9chU3X3m8mpi/465mm90Pv59LwBDQPquG0pv9l\n2HjzIyYNNJ9EndNbBvbqC8z/n/FyyTljMJbe8hgKpT4VCV4udSVPo6mu5JrofbYgLOhyELbf+yzK\npLs289GpKG7d1hSE6ialhaG2/P/Z+zisGjPJ/ODybnvM/DD1B9pYi5W1VJVXbxmZrs0+cA2XwvuV\np3wKxigzKQTcD1wPPHWv6X4uO1IMvNwKn92GLrhtL5M1hpTbfm+OQ9vJT8tQrKnY0eEAeLZuMsi6\n3nkBWq7OMmzVuFJjS+9vaosy11UL5mhXuXHB0zi2TnLjzP3L0TLBaxgoK+1lUg62160p8mhq6cv4\nkEBTIqBllbo45Ym+y79CXJhkviGsX2Wm4Chftqiigikf0Ht0AlcZYVYbEnfcNwH5HQ8w1+rCwr6z\n7C8nmoGB8OyDcN87DOUihzXEdOt641m4bhpkdB8OOBglIqu9Xpf37uk9WobrcOObht2L39+fj3Lp\nWdJRTbWO0Lx5c7PV0W5Vn2085hSsev1r5PY6xnBpTDn3NF7+4TUtzFQhuq1hMWHEaDTbGsKE4rTq\nS9WftsFxg+ThFVpn09ENk1KALRul0TsH668fjRXnXmHqGxrW1j2ob3dNNRpNuzKJ6DP6o9fCTJXE\nnyeeiYVPvAOvjFZnC0JrNGlBqC1Iuft1x6L3f0Vu1x6+1qPGLDhU1sK4BGy5ZSzKWrYD5KNT98R/\nmlnJy6Q1RY0jz+V/B/77LzMRb5EU2H9efisKZdJevbexFq30x8j7Wtw2GElffSQ9TB7kduuFn64b\ng99vfRrq/oj4BLS4/UIkz55RxVBoLBkb4z2aN3T9TUbIU4VbWlKEs3smoVf7GJzWpQzNEitGyLOG\nuXXHY+HdGKnDd5AACfgTsOWV6gptrV8vQ2pvvGt8RWu9fKcTNUi8Fj6fDs8VomPkO1U1qNY+/Do2\nHX6CrxFxT/Whhrfv23LJcBQfcUKFSDM/MgMGledkm9FVXeLm5hJjSnVemYy4unnURBTJ/IqNpdds\nvLRs9koDlxpGOgG91g10q3UG3ep3qLpqI1hp63amYm7v9WfttH2bDq7H7wJ6JMC7fo3RXf6y2zD4\n9nPg6DZwvfuy4e8fJlTx0nTR1TbY2lGJo9euMN+newsL4S0pNeLFLv3DGFYaxobTOguXXQmQyq5M\neEYI6I9NWxzUMLIFny0ItTDUQtDOlxSqiq0WTLqqgScmB5aMeRX5qmDkHD77wPhZR4nvLpYtrOh+\nlpaU5Tc9HJJBFlSRxQw/Hx4pnNQt78+/n4/fbnwIHulJydn/IPw+5g1x2xPXj4QkRD94HfDHL44p\nfPfGD8Iql9KyckydvRzj/rMIH/28zsQxMVqmr+rsQbOURDM6nhpMmteacm/b3mDKZ5AACTQsAVvx\n1AqkrURuOuRIM1Gr9j5AvuGJueMSM29hmbjuLX38XWRLD5Mu9t66Smh6ccQIWn7jGGwdNFR0mGi5\n1cugOi3q2nPgnvGeeXR+r2OxRAy1fJFRdaHVi3V9b7D3afy0R0L1vxpEWh+wdQItu/W8egqYocgr\n6wu2XNe6hd7v5MVwXCz6+p2XgPad4BbXfq+4slm+VqfpKLiuG/4BtN0X+GhqRc+j1kEcsChjZW2/\nC973vRfR/oXRYuQmoyQ+Cdu6yiAdyc2QPvN9HPD4rUgWV3hNOzW0NL87PY1CgZhGUyioO/id+iPR\nH4sWeGoc2YJQ9+2PSa9ZY0qvqwGlx41dEKqsumrBrWu57C+++h5sOe8aaQncJiMdLTDGks4vtV6+\nv1op32H5h9f9hl5swVq+Yinwzafi970B6699ACsHXm2UifJTRVIsfuCZMmN60b77m1bM6JvPc1Th\nWx9OlsH2gmKM/3ghvvxjs3ncl3/8ie3FYidK65a/O4fy0EJe85OtqNTn/byXBEiABOpKwOoMLZNU\nz6n+296yrbjfdZMWe2mpFw8BdXfKO+gI7EhrbsouDafhrZtTXd6tZZ/er8tqGUhh3YjH5D1bK1wA\nM381Om7LuVdi8TWjjO6zelDlbQzdpu9QGW2FXMttLcv9y269rhVwrTtoHcK/HqHXGkPOurC3Oqtg\nn87Y9spnFd9uS0+iWwf4+ORdo5vVqPU8civcOuqcNHbqd8nZj002PYx6v66hXixfj6RVs7uvROJH\nbwDRMcjfpwv+N/J5zL30Dmw6QQbxkO/wYhfNR/qVpyAqf7tj0yXUPPX9UU4QgjI4h4D+yLTwVcWg\nlVb94dtztpCz5/TYhtF9vc+GaawY6ftUVi2stZVNe3SKpQVFF5lXD14ZOtMjcSiRrX83tW1JaWg5\nlZUWrgWiZP+csQRe6UHa0qkr4kWRWAWsMhdKV3mhnFt49wS0//U7lP59AJLFHUSZWt4NLWtDPF9l\n1/htyCnABIn/xm3i8y9LcpwHF/2lBZJi5NvqmASTbzSump+ssWQL/IaQi88kARIggWAIWP2nxoCW\nZVFbNiP97ovh0e9CZMk++C9IkzK72Q+fIX7TGuQ8PEnsqIQ6t9br+1SvWX2lek11iOow0WjyJ0aR\nebPYTwnJprxU/aer6kK9t7EWy8a+05bZ/lvd11V1gV3sOXvsxK2mtbLPTW+Fbc98iH3uuQxuMY7c\n9w5F+dpViPrhC2DBL2bUuaLuh2H1bU8gXiLikXsaq36xO25W/3rEsHP9+oMx8nP6noPMQeLaKfHT\nHJV1/nUo2+9AtH35n8YLJnrYWSh75j242u6zu8dH5PXG+3VFJN7wjLQWaLYCqz9+WwDoeV10q4Wk\nhtFr1sDSczZMY8TcyqGVbG3JUheBTm89h7avyqh+0v1cJN3O7u0yH0FKOvYdezPaf/2xCaNh9R69\nvzHktQVXqbDa3q2HMZase6PtydOttsKpYt569MlGOWuh7a9oGoPp3nyHjXfmmhw8IiPkWYOppQz4\n8I+Do5AWW2L4a/7RNNG4V89re1MePosESIAE6kLA6pq45YvQ6iptjc+Dq6gAKy64CfOG3IL1f5PB\nGMTtOnblErQedipi5QN71Y911S96n9Vragy1/+5TdHz0RpQlp8FVXIiCZi1R3qwF2r7xBDpPeaaK\nXmtMPaxyWjb2vYHi7B/GhqtLOjTmPTZuut2emm4GxCraV1wvxSiKeuVxYGGGGcI7W3oBF4onS2ll\nejslfqp/dTUum+tXGy+XTZfdjmVDbjZ1kGbNmpnRDbXetOH407B61Asy9Um28c4plviGe/2jofIK\ne5oaimyYP9cWGLVFI5gwtd2/t65pIaUZufld0hI0f470n0Yjr8vBmHvlvYgTv/Nez96FWG8ZUl98\nGGUbV6Hs7qdMQa/yN8ai8qkxYI01qwz1WBWrFmx6TlftcdJjNSTqo3QbI161vUPjoIXuppx8PPPJ\nUpRqt58sXdLcOHbfMulhqhhKXLnYuDslP9UWL14jARKIPAJannkL8hF7mbhnpaSZaTaybh+H9Z27\nI0auZZ19KUo7dUOHiQ+YYcljZYCI4u/X11nP2LJQdUfq82MQ9f4kM9BEmTQGzr3xeRQkyuA5rzyM\nlMXzkfjF+4hfvxKlz73fqL1MTT0X+OttHQRkuxhL6wYOQ+d536A8rQW8MgCHS75p29hvgNHV6jli\ndbze64RFdbDKvuW+5+AdcDW2tumAOKlnWFk1nxUVFaGgoADZMphX2auz4OnUBSlqGMq9TomHE1ha\nGZyRslYabkmgDgS88rFs9P3Xwb1gnvHN3drvXGTc/CiidLSe5i2Qcf9L2CEj1emIdZ5/T4X7zQky\nakzjzGehhZIWPNqLoj1J2sOkvt9aaKnBoIaRGg16XVt89Lqu2rqo163yrAOWkN1iKhhSkVCXknhP\nGU7smqzdkzi8nQcndChCcnyMj4PG2xqHGtdwXmy8q2/DOU6UnQQinYD+nrUscz/3UMW3LTJBaJbM\nR5RzUC9Tplsvgc1H9cPK0a8ag0q/o8Ws/5j79P49XfQerfC6f/oGUR9PFZ+vKOzY/xDMv/9lFLdo\nCY/oj99v+ie2nFLRw+XO+B+ixW3MKxVgLvUnYPW26mDVxaqb282djc6jZUAOGaq7XPKDZ4P03kg6\ndbvjfLTctNaEsXrdSXrb5r+CzvJZgOQb6+Vi6xqaf3Vf41jSpr2Bp/fY++pPs2k9gT1NTSs9Iyo2\nVrGUihKL/fB1E/dNI8ZidZ+TkCCGihojumj39KLhj6Dz9NeQNvVZRP3nbRQOvg7RlS0pDVlZt4Wv\n3ao8tkC1Wz1nW7XUgNDFXtNtuCy2oC0qKcNb367Cmb1awVVWgiP28SBNes7So4ukJa7qELSqlDTu\n4RTP6ulh4/3V2h/wz/89izkbxHiXpU+bXhh55A3ot8+xvvSsfi+PSYAEnE1Af9+qQ3SOJu/+PbCl\nQ1cUSeUzSRp8bM+Ctuarl0BO524oHfcBUop2wHPEMUjQynWl21awsbTlib4z7vaLzUS5Oedfi2UD\nrkKU6APtKdBFr6+UQY9KpLerzRO3wiXGVeko0W9S1oZ7mRosq4YOZxs1098Yj+gpE8yADyXSwzRv\n+JNI2bIeBz53N8plAIjWtwxC0aOvwdXvTEeV9apXtR6kxpLGRVfrDm/zpV6357VxQI+tXm5ovuH4\nfBpN4ZhqlNlHQFvjiqSLfNOXq+Ca/5MotC5GqdiPYjWgKjPtfl414EoUHHoUvH1ORIooOS0oVLk0\n9BLIAKpuJAQTpqHlrM/zVdEbd7xthXj+v0uwdmsh1mzZgatPbGsK6U7NpaXWHW9as7THzbbIhbty\ntxWcF3+bguu/ugfyFZoP45drvscsMaSeOf5BXNvzElZkfGS4QwLhQcD+vnVbJiLnyTx/6qWQWNkD\noXpG9YgxqvLzkS9riRhTeWK4pIhu0vvqsli3qq3TfoZ7zlfYKO7mMfIeLTfVUFN9oW5V+r6NR50k\nhtr78PY8AiniTZFQ2RhYl/fynqoENB08H76JqHdfNKPOFcjotr9dMxpFkv6bpcev7IFJOOjxm40x\nFSufB5S+PAPeXlLHkHSvruOrPrnhj/T9ql/VSNKtzTfWSLLy6VZXNZQ0vhrW1o1smIaXNnzeQKMp\nfNIqKEmd8GMNStC9FEjjqz90XfK7HoIE+fGrYvE3mrSw0AJBDafthxyBBL979pIYQT0mmAIomDBB\nvawRA2kaaAvV4rW5mPhFFrYXavVCvouWHqeiUq/PbUELYk0LLcS14G4KBpPmvSXZy3Dz7PurGEwW\nv7IZ8c2D6Nv+GHRvvn/Yx9nGi1sSiAQCWh7rqmWV6hDVK/qbtq31tkJqKtdSvmkY7XWy4bXMq8ui\n77BrruisODm2ek3LUF2K1S29Uq/tkLn+ZOBz3z0mAP/VmYCy1zQtX70cMfdebZ6zrf+lWHrhjdAU\nTZb8oEuRuLRlPvoWDnjyFsRk/oKoC49D8R9FJs84QZerDNYA0jjpUl3v2jyu4TSMPXaC/EZgh/2j\n0eSwBKkujsno8gGqS/yVccjhKL9suC9T27AaRlf3+PvhkhFdvGMnAakyyo78YJr6ogWAVsBVkeiP\nXvf1OxlddV8X3eo1VXBaENpKeyTwaej0V55qMH23cDOmfrvaN+BD19axOPfQVCTIxLWaNpoGNq1s\noR3u/PU3p3F/fcE0FJeX1Ii6VAYheW3Bu3j4mDt3+e3WeBMvkAAJOIKAllNafmk5pkaKLqpPdN+W\nZXar4bRM0EWva7i6lHP6PL1X9Zjer8f6fj22MvjrNe3p0vO2nDUC8F+9CKhuK2zeGps/W4b4aa9g\n1cn/QIykrxqvWofQ8l97+3SqkCX3/h/2mTEVhZeNQFKl0azpVpe0r5fQAW62cqi8NckTTJgAj47I\nUzSaHJzsmsn1h+uWWabxv6+Brz6Be1UWyu97RpsLfJJrGM/jd1XMXC0T7bn+NQllYlzZgtwXsInt\n6A9d4+jf2qfHqjh0tQWEfzjDU8L4K7wmhqXRomPz57Q5a/B5xkbfe3vJgA992stw4t5Skz7K2p+3\nTRffDWG6o/HXVuXF0tO0u2VRdpZpGdaKEBcSIIHwIaDllTV+9Devi9UptizTrT1nw1j9a8MEG2P7\nLNVruq/GktVrKofu66JbXbVstXrNGk17+s5gZYuUcFa3qQFcImmQe+ZgxErk1WDSARPUeNUw6vqv\nzHW7ftBQJElYazQ7jVUweSKYME6LV2PLQ6OpsYnvwfv0R6k/wPwzLkD8N/9F1I+zgBnvwZ21EKUT\n/gVXkoxKJkNqe24+H5DRc+TXi7IDe2HHoKsRW9ny1NR/BBo/LbRUmSgvPbZKxcZdj3XfP4we2+t7\nkCQMWknAKpUt2wowZ/Gf5qx+pHxsR2D/ZjJfSWzFd0u2V0/Z69JUmNv4q4tMknyrtbslyZVgDCxV\ntjY/7u4eXicBEnAGAS23rF5RiQKVY3rO6piawgQbG/ssfafVa3rOrvY5ajDZd9pruuVSPwLKUNkr\nW1tmaz1DjSbrOaHpoud0tT1PurW6rn4S8G6nEtjZXeFUCSNcLm1B0i7gNbc/gdxzrzBGErIyETXg\nCJSuWQnPwD7AHzJal0yst/20C7Dq3gkmvN6nP+qmvtjCzRZwurXKw8Y9UBgbzobhNjgCmqd01RHy\njEuIqwSDDk9HapwHZ3Rz4YC0MjOkuk6cZyfrVSVSPU2Ce5uzQykHbdQ4oflfdivoCS2ONGEj4Te5\nWxgMQAJhSMCWYbqtbbHhaguzu2v6DNVR/nqtus6y76ktzO7ew+s1E1CuajCpHrPDcttvpa2xpNe1\n58n/ur9XRc1P55VwJcCepjBJOa2crTz7ErRs2xFtxokrng6zfU7vCjc9MZg2Xf8gNh5zCuIlXCQu\nu1NkyiSYMJHILtg4a4VfjfHlG7fj+c+WYvCxHdAhFWidWI4LDxUFLyPHJSQ0M3M+2BHyVLk0de5H\nN+uN45odjm9z5gZEeXSzw3B82u4Nq4A38yQJkEDEEgim7AwmTMQCrGPElakaTaq//HvyrOGq1+1q\nw6l+tPfplkvTJMCeJgenq/7w9AerXb62S3hD7+Ow4aq7gdzsCslzc7Dp4hFYJ3MT6Q9cWz6sSxR/\nuA5O3DATTY0lNdy/lwEfHvtoEXJ2lOCVWSuQXVBu8lx6s1Skp6ebVVvdtEWuqbe42d+nxvPBLjfh\n9PQT4JHh7+0ifZ74e9qxeKjLCPObtD1u9jq3JEACJEACziSg5bsaRFpuW+PJGk1W4mDC2LDcNg0C\n7GlycDraSpkaQlph1bX1OxOR/oHMOi4TqpUlJsMdHYNWk8chdusm5Fxzt+8jRVbQHJywYSSatp7p\nqnnvgx/X4tP5G3zSH9EpCWnxqlQSTb6zBr71s1cF01QXqyw1rurnnp6UjlvbX4kLm52OzIIsE+0D\nE7qgXUJbc03DNHUjsqmmNeNFAiQQmQS0nA9mCTZcMM9iGGcToNHk7PQx3b1aGY2TCmjSoyMQrYNB\niKG0vf1++OW6h3DoS6ORsjwTqZ9PQ9KmNSh+YrJpFdEfMX/IDk9ch4tnDabC4lK8/EUWfl25zUjs\ncbtw0gGx6L1vRfGhRr1/S1z11jiHR7PO4unvS3t11addv+/SRY/bJbb17Vt/d93qNf4mDRr+IwES\nIAESIIGwI9B0m4LDLilqFlgrr/GX9EP03G+B8jJkH/U3zLv1SZRJZfXXmx7BlhPPNgNBeP6Yi/jB\nJ+gMd3tlEAh9L7aJG+Afv9T4PBNGeiHw6b8g3RE1hqs5drziVAKatrn5xRj74QKfwZQQ7cbpB7jQ\nJbViAkc16LUHRVc1nCLFYNI0UwNI46+9SOqS2KJFC7Rq1QqtW7c2q+63bNkSOiiGhtGwNJqcmtsp\nFwmQAAmQAAnUToA9TbXzCelVrbTqtyTuNycAOVtk5Lx8bLr0Vqw8/gwkVPYkaZhlF16Pkv26o82L\nDwFbNsI1YQzKbxxlKmh1raQZY2jJH8AZPaT5XGYoeGoqyv92TpVnahivGFWuq88Efv1Bxpo+COUf\nZ0RUxTmkGaQBX65pqy55HpQiIaqibSU9wYWTO5ehWZxLeldSqriCRpKxZLHrb0vjbd3udOvf66RG\nZKQalJYRtyRAAiRAAiTQVAjQaHJwStqKa8HZF8O9eSOKYhOx7q9nIV4qY3ZgCHUL0onVNhx3Kspb\ntEHqol9QcuF1ZhS9ulZk7XtL990fcUccD8iEuq67LgfEiCq/9m5fa7l3+WJ4LjtFerbKAfm+qvCp\nt+GWirZWJutqrDk4OSJCNGMIi8G0cG0uOreMR7EMd39WjwTEuovRu3UZ4qI9Zkhx7VmxQ4rXNZ81\nBaDWcLJbdcFThrrYc5YPfxNNIcUZBxIgARIggUglQKPJoSlvK17a01QslbDcgVcb4yhOXHx0ZDJd\ntSVbjaaCggLk5+cju8eRyD/iOKRI63es3KeLPmdPK2t6j75X54fa9vBraH73ZYhalgnXa+PgXvw7\nSh97HS5xFYy6YSCQmia9YDnIHvV/KGneGoklFW5b+s49fa8RmP9CQkDT3Kb7xz+vw0fz1uOvBzbH\naYekIjbKhb5dokWuip6U5OTkXXqZQiK0Q15q87pu1QWv+sLfQXUiPCYBEogEAqpT7OK/718m+u/b\nsNySgFMJ0GhyaspUymUrYtqCbd191GDSniZtwVbjxn5PUlxcbM5puPoWRFrAqXtWgbxj8aiJ6PDS\nI0j+6t9wffc5PNeeA/dPs4Fm6Way3ZVjp6Kw0wFIFgPOv2B0ONoGE08ZuFRZrF0JtO0Abw3fsphw\nm2U0uoId8O7bpd5pVtcIqRy6FhSXYNLM5Zi3Isc86tuFW/GX/ZKRUjnymxoEmu/0+xzNj/xGpyrx\n+v7mqj6NRyRAAiTgTAKqL+xSVFKOTdsKsTG3AJu3FctpL049rGIwnI9+WotvFv2JktIylJRJnaLc\niyiPDKAja1SUBxcf3wk99k0V/QO8+8MqtEiORYuUWLRJjUMrWd0y6JAuLFsNBv5zAAEaTQ5IhEAi\n2ELCVlTVQNKCSg0k/wqrntNraiiVSC+PLhrGVmjtcwK9o6Zzeo99pjXAsuRbqvYd9kfL/3sA7t9+\ngrdlW5S7Pf/P3nXAR1Vs729303sn9AABBAEVEBEFBUEFCz57F58Fe3n6VHz2jl2ff8WKz4K9YEUe\ngv2BBaRI751ACqQnm+z/fLM5y6YvySbZhDv53dy7d9qZb+6cM2fmzAxWPfQySuLiESn5e+dbW9pt\n/T3rg5ft3muAaS8A/QbD9doMo2BqXWgYLJkP22mHGkhcHwmm/QYa3JsTI9JCxXuXCLwXZq7Bxl2F\nJvvwYBvOHpKIhHCb1Gu4oYvflCro/D60PM1Jr5WXhYCFgIWAhUDLIOCWXbLv05/bsH5nHtZn5GN7\nTiFEF/K4pKgQjO6XbORgkQzE7RD/2hz7LLSWyc4rwZfzt1YKFixraTsnRCAtJRJ9OsViaM9E42/J\nnUowWT+aGQFLaWpmwPclO1VedJaJcdlZ1Q4r/U0HvULJYYe2ahjzogH/mAfz5awWmZotNxeRP0vn\nPzQccJaivLQEDjlgN1K2O7cfPsqE03VWSl8Dsm31UVgfnKErufQWhE1/C9i1HfaTDkLZ1Jmw9TjA\nKBpUUmwzP4H99kuADl1l10FZlyabaITwvdRlcwkFVZjWbt8jCtNa5BS4le44OXvppL5y/lf43m20\n+W1V/fZafWVZBbAQsBCwELAQqBEByge6XXuK8ce6LLSPD0e/TjFmkO2r+Vs88qJq5OxC9zprvo+X\nQbceSeEi02SGSSaN7HbKRxF5krRLDgIPD3IvA8jYXV2xKnWWY21GnrlyC0twaPc4I4O+XbxD1tba\ncXCaDNaGubuwzSUzq5bV+r3/IWApTQFe56qA6J3kejMI7WTzzpkAVaK8w+xrERmX+XGWyZgBbtmI\nuFvPBgryyfWw4fQr0enz/6A8LBKdn7gZeZfdhrILrwXP69EZrn3Nsy2EJ/a8qGTmh0eh8L6XEX/3\n5bLuKwGOMw9H2dPvoWzYMXBMeRj2154AwiMNnhlPf4pgWT9G7LzruSkxUVp35xfjqS9WosjpFpCd\nY+04umsZYoLLzKySzizpjGNjvqumLI+VtoWAhYCFgIVA4xBQubAjpwg/Ld+J39dmY0tWgUl0SI8E\n9G4XbixauooilLu5DMmRdqREO5AU6UCsKEhJkUHokBBl1l9TlvVJcaBTeIhZc83BRKZPGUK5EhER\nhpgQGWCUZQXJ4eW49bh2MitVhKz8MuwuLMPOvHJsyy1HdoETXeJDzRpryiGa/GWJ3KLlXs/UGBya\nHo9hvZMRHe4eNLZkVOO+ASt23QhYSlPd+ASEL5lAfYxA/fXuD8KZVvDqpYj4+3FwhUXAJmtv1vx9\nEjYMOBzbDh6OQ56/HaGZ2xE19QmUb12PsvvEHM1yZiTOmBz0GYjcR99F5zv/DltEFBzXnQHX5bfB\nPvUpc0Bxccdu2HDrM3DExCO2QqA0B3wqGM2W4q5SjD4wAV8szES/FDsGtStBZLgIs5gYz+54lsLU\nHLVi5WEhYCFgIdAyCFAmOGX658dlGfhh2U6s3p5bjZDV2/OM4kKTunF9IzE6zYXSkkKZOeI6Jvdg\nbmhQqKznLRXlKMz0WXTwVS0VmI++o1zhMx3fh8jxFvFBRYiKEEuWMDlqJdE9cOsIjUNUdLDJO2NP\nEXJk1omOJoErtu0x1zs/b8LBXeNwVN9kHNI9od7+kknA+mch0AAELKWpAaDtD1FMx3rlXwi+aDSE\nY4nCVIA1d76IjE7dESYMrlw2BPjzjik4cOpkRP3xA+wzPwY6doVLtiRnXH8qb60Fby0zZ4woEHjf\nndoJBY+/jx4PXimzSUUIeukRmbHLQ+4J52HNhJtNuOiKsCpAmqq8pk6lbigc3/t5A0b3T0GwCLj+\n7eQorv5hSAwulJnFSKMwUWnimUM00SRdWramos1K10LAQsBCwEKgeRFQWc07B/o+mLsRuWJepy5a\nzN96JQejd2oY+nSIMrNCDBseJH0A2SjUJbJLlR/eaW3CjYLU6kQVJJr50yxdHWUjFSkNR/nCMHSc\neeKAnjFjl/ehDpcceeE2e4+U50nHd8DSzXlYkVGE1ZklKCnlBhPlxoSwVOL17xLjsdrQ8mm+1t1C\noLEIWEpTYxFsg/HJaMiwStp1gk3W2jjk4NpVL81CnuyWF1XBJBmGI06rrroHXb94CwlvPAmndLhd\nwnjJDJu8k521C674xDrzMQxz+xbZwa5Ts9WSCgmaNVIImdmcjZkIzsoQQ24x5qbgiIpB8IZVCBOT\nvBBRTigsvIVHUxBLLHhl5xXL+qXVWLsjHyu35eLKkR2N0OueFCJYhhpauKW47pBnKUxNURtWmhYC\nFgIWAi2DAOUAHc3uPhVTt2Cxc7v46K6yVLkYQ7rF4MeVOTggJQS9k+xIDS8WuVAq8kk2oirjmtcw\nIy8os6gksZ9AGUElSBUhyn8dbOOdss1bYWLe7B9oPP7WQUbKHfYrKDd50TFdpsMwVKiCXCXoFlMs\nZn9OHN3ZgQ15wViWUYZ1WaUY2iPGhAkJCcWd7y3GgM5xGDuwvWW6Z5C0/vkDAUtp8geKbTANMqxi\nYWzZ976MvKJilAgjjBTmR2ZJBkZ/HqrL86E2j78IhcPGwN73IMSIokAmR6bYFIqTYfjCVG2TLhEz\ngHK4nvuI2wVWyksVBPtz9wFvPw+89AVcAw6tFKapqkyFATEiVuHzvkOsrGtyRsYgqKgQ68++Fmnv\nPYcwMWc84J9nIuvZjxDarp1RNJtKQSEeFFobZFHtczNWyQJe90hiiSy0zS8pQ6zMKFHJY73xTiFH\nAdVU9DQV9la6FgIWAhYCFgI1I6BycXt2IT76dTN+XZ1lBtIcovSceHAKwhxOHJ4WhgGJkXCWFFRY\njLg3hKJc4EW5pjNEqtRQTqis0Gf9TUooS2py3v0Dyh6Go5ziRVqZPu8qUzU86eCApHHSF0iLKkKP\nWFnPHRIHWeJklKYF63djw858c81ctA3HiDnFSYM6Ispa91RTVVjv9gGBmr/mfUjACtr2ECCjUlcm\npnkOGbWJEqZmlICKM3vI2LRzzUNweU4TJ9e942oa/rozbeaLX7+H49fvzE5+trOPRNnLX8LmNevk\nkjD2+68HPntbwoQBsz9H2YEDPcqcv+ipLR1l8hEfvoqgZ+6CSzaFsIsA+HPSFGQmp8IZHYf0Vx6A\nKzgECZcci9Ipn8F2yNDakmvUe2JG4TN/bSamfrcRxaXu0bsuCUE4fWAM5EgMj8JEwaUXy6BCqlEE\nBEBkYpBbkodP13yD5dmrERcag7Fpo9Avsbehrq2UMwCgtkiwELAQCEAEyAMLikvx8bwtmCW7z9Gc\nTV1aYhj2FBZDTpYwpnBlIXY47e4ZJSpJlPOqNPGZMsLbecsKb17q/ewdvqZn0kdFi3e6qneNo3lR\ncWN/hAO3OjMlpIrMcpsZlpeXIVG2Ps+UrcyLZXDwqwXb8L2s1Tr10I44ZkB7OGQp1b7Qp/lbdwsB\nS2myvoFqCJCZkIGRYXJdCxkmR4HIMPlOmZt2sDllTiZHRsZwTcWMmAcVgOKDhiLo+gcQ/tTtwM5t\ncJx8MJyvzoCtZ1+48vMQdM1pskJ0kdmZrvTgw5F/8U0Ik5Ep79GvaoX20wvSSMXO9t1XcHCmSzbQ\ncCa2w9KbnkBBWLhZD5YxeIRsNf4y0idfKzvoRSBYNtpwfjofrm49/Yqd4vXlH1vx2e/b5MhBt0A6\nUHY0OqKrHIosC2+JCeuNl+LTVPXnJ4h9Tobl5/Xtpp9w/jfXIaMw0xP3tl8ewSV9zsb/jXpAzFMq\nz1R6AlkPFgIWAhYCrRwByqM/12Xj5dlrZb2S+1gJFqlLQgiG9whHz2QZFA0tF2XIrYhQxpNvqlzg\nb8p1lfc1yYea3u0LbBpf74xLGqo6+pMO9kU428S+h66BUlnGe3qiA1ceGYs/NxXif+sKkVlQhvwi\nJ978cQNmL8nAdeN6yS5/srmVpGc5C4F9QcBSmvYFrf0krDImMksyKDIvMiI+a8eaUOg7ZbL8Tebq\nHcbfkFEAkElmjTwZYVHxaPfg1WZL76BzjkTJS18i5LaLAdnlD2IKt/uMy5F57tWIkvBKI8vSlIyS\n6RuzAllL5cjNQfFho7DsxkdpmI2YCmzonytnNq187H30ukvoFcZdGiRmD1S25Nkf9JEOYrVHtmbl\nbkhUmOyS9mGdgT7xxQgLifKYW3jXmT/y9nedNyQ9lp/Xkp3LccoXl6DAWVQpGfq9svQdRASF4Ynh\nd5lvu62UvVJBrR8WAhYC+y0ClAGUNzFhdhSIKTZdgmwLPqJbEDpFUC4Wi5xwD5hRRnKAlLyRvFDl\nPe/8rfxR700Nak35sG+h/QwqdVSeWD5edIxDZYrWLy45/zA9tgRd+rqwPCcMv2woQVFpuVxloiTa\njHxsyr5KU+Njpd8yCFhKU8vgHvC5kvno6JISy3dVGZmGUUZbUxiN74+7pk9hsKvPISh8ZBq63nOZ\n0CUzY5eOFeVEPmlhltuvewg7hxyN8CqKSFX6/UGTdxrEgUw7d8ypcCV1REaHNAQJo+cCV14UQFT6\nCgsLUSxK1PJnPkVscQFCo2ONCZ8/mLihQXbIKxccbOUlOHNQPKb9ugvDu9jQIbJUZg+jERsbC274\noOYWiqt3WVrzs9bDg789W01h8i7X84vfwI0HX4rOMR2bVNn3ztN6thCwELAQaCoEyPt4zVokh8CK\nqd2hsrlDXGgZRvWOlrVKJeiTUAI7SsxMEmUSzdzUioTyiU7lgcpLvTcVzb6mq3QofaSXfRAtM++U\noVSi1GzP5So0A4XpccH4fYcdA2R3vXLZ9MIZ7MDHv23DANmqvG+nWEOCpu8rPVa4/Q8BS2na/+rc\npxIr89B7TZHUT+81hfHnO+ZDJskRMd1lh1t67zjnGqT++19wJabCJjv85A08EtsOOQJhwkw5csbw\njEdm2pTOm3Ezn4Je/RAuzJv5q5kjaaBSxXfcRMOYGCQkIKRC0DWGPs1/c2YB/k82fDh5UHvZLtaB\nhLAynH+IGHwLNhERsWZLcd0hjwKHuDZXHTamfL7GJQ46I/nD1l/rjOZ0leG7jf/DuX3+1uZwqLPg\nlqeFgIVAm0OAvI8meC9/uwYLxCQvPMSBrgk9Rb6U4rBODpE5VKjcpvZUlnSdsprge8vIQJcJSh/v\nLLc67/ecjcrPzzeDlFSiRnWzy/mDMAoV8fly/laz3umEQzrg9KGdpJ9gHa+hOFr3mhGwlKaacbHe\nBiACZIZk6lQ4yOw5mpT6n6cQI1ueQzZXKI5LRNiOTYj68xf0ve8KZD78OsK91mQpM22qojF9XlTQ\nOHKn+ZFe/iYD5zveqazwTqVJy8R4DXUUGsTjz3VZeG3OemOG8OaPG3HdsV0QLYpjfAVtxE0VuLao\nMCl+VJpoolFccfCivq/pnleYZ4RoY/CvKV3rnYWAhYCFQHMgQP7Pa+XWPXjuG9khNb9i7ZLoEttk\nt7xusvEPFSPyOPJ9PvNSucT3Kr+ag15/56GylulqWXhX2csNI3gRI76j25qVb8rMd1/M3yJnP+3G\ndWN7IiE6tMkHWA0B1r9WiUDTDr23SkgsogMZATJHMkPZ9A2pd09EzDfvy56mwdjTrQ/m3vw0th5/\nnuw5WoxQUZ46XDEO4dwookIgNEe5qACpUIqSIS3O6FBRIaMmHfQ39IsSReWF/rxTeDWUTioIVL5m\nyKjZCzPXGYWJZe3fMQIJETYzKxcfH48EmdGiWR5n6dqywkQhSEw4stgrulu91d4rqptROBmPl+Us\nBCwELARaCwLK7+Ys2Y6Hpy/3KEyd40Nx1dEpSIt3HyRLWUMZQFlAOaByp63JAvYRqsphllfLTrlM\nWTs0LRwXH54kg4ruwcq1ciTHXe8vMYon5UdrlwVGnu3OBm6+EFj8e43lMWEo8568A/j0TROmtZe7\nqdutNdPU1Ahb6fsdATK00IvHyOl8GyAn8iHrmFPx1ymXwC6Nf824c1Ai25+nPX+XnN8kC1tlg4hS\n2TXIFR3jmfnxO0FeCapSR6atzIfv9GJQPtOPM021hfFKstZHxuVVUurEG9+tx1w5d4NOzirE8O5h\nGNpNZrbkt44mqsLGO2loy4648Ds5r9NJmJf5Z61FPSzuIHQP62LCal3UGthPHjXl09brw0/QWclY\nCFgIeCFAXlJW7sLbP6zHf2UrcXVDuoTi8I6yOautWF6FG1mjlg7k/3oxfFvkPSwTL+Kjlh0cuORv\nygVdV9wuvATnHxSCmaudWJNZKluvl+KR6csw4ag0jOjbzsDZGvHRcjruvAJYOA/4djpcj78F18gT\nDC6KDbFwPHUn8NZzQH4uXBHRwOiT2+Q3YSrTD/+smSY/gGgl0TwIGAEhJmj4fgawSNaq5GRixyWT\nsFbWNHE2R2dtMmVL73X3TZUd9AqAPdkIvvl8z0xCc1BKhqRCSWeXqjJeDUP/2sLURyvxKJSzN578\nYoVHYQqWFn1susMs9mUeTJtCQ6/9QWEiborviPjDMKH932qEMi2sI+5Kv7rB+NeYaB0vWV+7CrNw\n84/3o+d/hiP+xX4Y/M44PLvgNTjLnR4Fuo4kLC8LAQsBCwGDAPkJL86ob8sWWScu2GHD8b1DMSS1\nVKwJ3Kbsyvv1zpkllQNV5ZJJpA39UznA8mr59U4lis9hQeU4rpsTh3Z2m+05ZROlnbuLjPUG8W1t\nTr8LWp/k3fOCm/wIOSvyJrHCeeVxozRSWSqXzagcV50KvP8yIGdxlh0zHgXDRjdrX6m1YUt6rZmm\n1lhrQjMbhk0aBWZ8CNeQo4CU9jWODphwMjVLkzXXoCNqDNNYCEweWbuAZX/CdcToGvNgGOTuho0H\nzp55mRzsuu9n4zANNvb8QUei/NlPULp1E7YPGo5wMj6xzyYD5Loe2i7vkdmmNY++h+Tf58B5zhUI\nF6xUkWkuQdGU+SgWkM52eJB71ihGtlEd00O2lA1ziulFjDG/UDt2FZKNrevWEF8FpRGI8l1c0uFM\n9AtNx1dZP2BzyXZE2MNxaFQ//C3lWLSPbO8xnWS8pqozfreb8rZixIenYWPuVg+M83cuAa8ZG77D\npye9ghBHSJPR4MnUerAQsBDYZwSMnBMFBZ++AddxchZgTFyNbdWEm/edbEwkMxXpfWoMs8+Z1xCh\nWLbPDrLLbq2lJTh7cCLeLC7BwA5AYmipkYccROSl5tj7kwyoCpfydb1TNhAX8mU6my0Ph7UvQXJE\nGHYVO8z5VVRGnS4bIkJb39wCv0H2hQqk37P7hS/R7s5LELR5LewvTYZr5RKU3vYEQi4cBWRLv036\nhnknnIusibeb41mIjfmGRR5arjoCltJUHZOAf8MP2nzUD94AfPIGbHKAavnUb+A6YIBh0GQMGgY/\nzoTtyvFmJAGPvoFymXol8/SXYz74az7wt8FiBxYO2+1Povzsy6vTsWMr7HKIKzavB2ZNR/mrX3tG\nu/aFFjI5MoM9vQegqGsvhElZaJvNmSZVmridN3emK5bGv2P8hYiW2ZbQCua4L3kFYlit19XbctEx\nIdRsdjDuwEjZGa8YA5KdkEPQRVDGerYU17VUKiwCsUxNQRNn2GiWSPt1bggxxHUI+oX19my8QT/v\nTgW/nabCSL/Zv8+8qZLC5F3uGRu/w2O/T8Ftg90zX01Fi3ee1rOFgIWAbwgo37VdOg5YvRS25x8U\nmTsTrq49qsu6rz6A7cazjWl0+ZtzZFBzhN9lbqGcNTT5k6Xo1i4S4w9KAORoifEHujcWCpEz+Mjb\nyPuoGOyvMqC2mtX+DwcU+UxZwdm3vLw8HBDiFLkRZOREQbETU75ei/bx4bhklIxGimttfJnfbYEs\nU1h+z8tIe/EBRP0i/UEx1QuZN0fOs5TZSVGYMibeiYyjTkCEKFimP1cbcNZ7g4D/es8WoM2GAD9s\nTr0WXHuf+1yisHDYzx0B17ef7516FSXB9uZzsF9/pkw9JEtPOhYFR4wxCoe/GgbTMTM7PfqifORJ\nQFQM8Pgk2O+7Vs4IKvPQ4loyH/ZTBorNbB5PxEXBHf9u8NQ3mRwZHBkehQIXeMbEuGdVKCCoPPE3\n3+soGzvEyiibrZKaICPFe+bCrXhU7K7f/nGTwT9YRhuPSQ9GUkyYWezKBa/EgBjpIt8mICdgk6Rg\nY32zs8BvhHgkJSVVuxITE813wu+GgrMpBCLrjErTqqy1mL3llzoxe3Xpu8bUhuH91UbrzNDytBCw\nEPAJAbZHytzCyf9xH54useynDYFr3vceOcd2i2fugf3Oy4Hk9sCBg1DY/1Dj76/2zDxokv2oKExr\nduSZs5h+WpljBgw5eKgbHvCuGz00FW/zCbhmCERs9fI1O1WWdGAtLi7OyAnipvJg2i9bsGJrLr77\nKwNT56zxa9/JVzobEo5yjBfrnTKQl03k4apLbkP22HNE85Nuf0E+sDsLm2+VzbOOOM4TVvtKTSEL\nG1KWQIxjKU2BWCt10KTMwUy9CrPIePEr2uoBYrPq+OcFsL38mOl42WQBoO2Zu83sj1PMBLa/OMOM\nuGuHzB9MnGkwPY7kb//Xv1E84DAOxQBffwDHxcehjErSNx/DwWlgmYXiQsNdk99CrmwPTgGktNRR\n3EpeygiqKkxkcmzsVBB4V0ZIBkjlgf6qPLRGZqA4lwpmb3y/Du//shmy9hfzVmVh626nUY7I9KkE\ncGckKouqMFE4tMYyV6r4BvxgmVnnrHt+B1SaUlNT0b59e3NPSUkxQpIdi6YUFKw7ttUlO1fUW4r1\nuZuRX5Rv2kW9ga0AFgIWAs2CANuwtuP84FDseuZj9yh9pMhcWnF88BrK5NBYx3Vnwj7tebOba2la\nb2x57B0jG9n+Gb+xjvKyqMSJxz5bgdWiMNF1SQzDwK5ufq8df8o8tbxoq/yfeHId6DsrpuPyb2/F\nhTOvxxPzXzRrRn3FWhUnKhWqcFJ+Ej++O6ZvPCJD3TvrzV6SgTdlsw1/1WVjv4X64qv8Yz+AZaMc\n7PLZG4j//A3pL4pyL9+SM7UzOj16I5KX/2nCeCvZ9aW/P/tb5nmttPaViefGJ2P3kx8i7cFrELxF\nbFZffBjBP8+CfdkCo8AUHDwM666+F2GhMusgDcVXhuIrLEzPKE6S9urrH0LHD19B3MevmPVNwReN\nBlb9ZWa5ymV0Y8MTH6CkfSdEN1CIkBGQ0bGTy1EUOn3Hu/fFcOw0Vw1jXrSif4pvbkEJpsxcg5Xb\n3cKSC35PG5SI1Gj3jIoKAFUe+Zt47M+O5ec3QCwoBL0FHr8fXvRrSqxYfxwgCLdxk/y6XURQmHS+\nygydpG1/r7+60bJ8LQSaFwG2ZfKQPe27IOfJj9D1/okIlnUvjof/Acf0N92yrkzWkMhurpsm3IRw\n4S00C2e8xjp33uV4/pvVWLU91yTXPjYY5w2OhQNOkYlu8/SqPK0t8hBisTVvO07+/O9mPahi+xY+\nwYO//hvvjX0eo7sM9/QH1L+mO/Eh/9c+hcoJ7q4XF1KGC4bE4Y15OSgQvvytKE7xEcE4cXBHIzsC\nGVstlxk4FBkY89QkhPw80yzTKGjfFUsvug2HTL4a5eFR6PjQNSi8/n64zpnYqgeXa6rfpnhnzTQ1\nBapNmCYbAy8yR+0gF4t53l93TUHeIUfK2pYy2BfLznIy9Zp50oVYeaXMNnmF1Q6iPxq8d8MkLUx7\n/fiLsO2aB0z+2LzOKEylotgtn/wO8hJTDM1kTGzMWpZ9gcs7T6ahQsK7PL6E2Zc8WyoshQMV0i1Z\nBXhIzDFUYYqVcyVO7ReMLtGyEYg44smRJI4qaT1449FS9Ld0vvodaFshPnrpN6jtoSloZf1pHfaJ\n6IGE4Lg6sxmWMNAzA1tnQMvTQsBCoNkQIB9RXkKZw6swJhbLH/gPimVGCTIgiRWLReZlI+PCm7D2\nvOtMePJif/Bj8hAqa2/9sA5/bsgx5U6OcuCUPjIgJGuZ6JTH1SYTTaA28I9YcBDqzK+urKQwadFy\nSvbg9K8mYm3OBp+VVa1bxZB1xme6uOBSnCprxUKC3QOQH/66FXNX7DJymbQEsiN9Nrki/34sQn6d\nY2aYsgcfjV//8QRyE5Ox4J6pcMbEy470EQh/7l6EPn2nz5gFcrmbmjZLaWpqhJsgfTZyNmp2ADkN\nzw5zwopFiPp1tlGQhKvIzj2piJ/xHmK3bzZhGI5ma8oM/EUW02MHlOnzihJb2cQPX5KGKJsTyCJD\n2b0TwRtXI/737zz0km4yd3ZYG+JUiOm9pjTUT+81hQnkd2R4vGi//sTny7ErV3ZtEtdOZpZO6FmG\nxLByI5DJ4FWQsy6aUgkINLwUI+97TTTyGyAuvIiRN070a2pH+iRXXJt2fq1ZRdjDcGXaubX6Wx4W\nAhYCLYcA+QT5LGWXmjslLJ6H0KV/ALJ7nbkSkpAw/XXE5GT5zdyJvIMDZ3+uy8K3f+00AERKB/6E\nXg7IpIeR6VUHgJqDp7VETRALKo/fbvwJv2wX3GtxuaX5eHrBK0a5YhxfHXHjRfnAumZ/idgmhZdj\nXE9RpEx/xYWp369HVm6Rkc/7kr6vdPgjnH435pymjK1y/EohMs6+Bqv+fisixFyPa33Lk1Ow5L7X\nUNB3sFlr7pj6pGwS4V4XH6jl8gc2jU2jYb3WxuZqxW8UAmzY7ACyw0yFqd2PX6HLw9egPCwSLnsQ\nlslIgq0wDy5p+N0mnYek5QtMOH+MenkTrkyG6VKYxO/civR/nIYgmeUSjoLVF92KspAwuESBav+K\nmO5Ne87QQUa0P3XuvTHz5ZkMixcFRLmzBMf2dc9QpCfacVxaKWLDHZ7dkYg7mbzWhS/pt/YwKhA+\nWv0VTv/ychz27kn42+eXin37p6Kk+2f9gL8w0rZKIXxiyjG4qfMERDkiKiXfKSQVj6X/E+mR3Tx1\nWSmA9cNCwEKgRRHQdkzZRZ7b/ou30fGpW43MdYZGYPnVD5rF9Q4ZKOxx8xlI2LTahGO7b4ysUznQ\nIykYx4kc4IzHSTLDFCeTW+z48iI9zKet2xY8MgAAQABJREFUywBiwVmmnzaLJU09bu62+Z5NdeoJ\nWslbMdS+FdcHU0nuElOOUd2lvyVnX503NAWhdrcZdaXIAfRDv5u8Cf9AWUIKdsomEFuOPd30v3Tt\nG9f6BslA94rrHsSeMaeh4KIbkTd0lOl3BFBRAo4Ua01TwFWJbwRp44549m44PnwVkG3HnbIZxMLb\nnpeNFmJQOukF9H/yH3CJIhU9aQLKbnoYOFdOh24iF7L4N0RccbKY48XBLkrTimsewpae/bH9wENx\nyCv3I3LtUkR8/hawdT2cz33YRFS0/mQNs5NdHj6auxGH90xApKMUvZNsYo4XhsSQQhn9CjcLVblY\nlcycQlyVptZf+vpLYASnLAA+9+tr8OEa2QTFy01fNxNvLf8YH5/4MkIdoaYT4eXd7I/aRtmhYceG\n9TU++VgcEToQCwr+wm5nHjqEpuCgyL6Ii40zM7U6G8y4lrMQsBAIPASi7r8W9m8/E5kbjpKUDlhw\n5QMolMHL8pufRt9nboFL5HDMNX9D6SOvw3bsKQ0uAHldvmx77ZCBIJ4ZNKSzAz1ixAxbDmOlsuQt\nAxqjmDWYwGaMSCw440YcSjizV48rKy8zm3A0ZICWvJd4khdrvrz3cxSid0oEkmPdylteoRMxUbJE\nIMBYNWnlxUHXAtk5edvj74JrtMJFDqllEvsMxJJHs/CIlo3nX28Uqlh5p+UmxJYcqv6hWTNN1TEJ\n+DfakG1zvoRDDtqDQ2yse/aTqdapKGuXahpGQVo6Fj88Dc74JLNzneO+a8z2qNqg/FVIpgc5PDeI\nZzCJsHBJo1vxwBvIGjDENEKHjNQs/sdjyB4puww5xcTstx9gf/DGVmET7C+MfElH65QbPjwt5njf\n/LldFv2uQQEPMBRm1z05BFV3yNvfOtjEiILg4V+fq6YwKcZfb/gO//ppsglnvk31aKE7hY4qTezk\ncHem1IRUjEw6AienjMFhso4pIT7B1C1HNbVOW4hcK1sLAQuBGhAgL+HlePER2H+YYULkDhyBhXe8\nIEd6JBiZu6d3fyx76G2UB4ndnMjC4BvOguuPX0y8GpKs8xXzopLwgmz8MPmzVdhd5DIDZAlyrARn\nCHhxEEb5RSB3blmW9bs34cXFb2Hy78/j09UzUOh0m7fVCUIVT6bDmab+sb2q+FT/2S+mlwlLDBvi\nqDRRsSC+5MuUveTfcXIQIvn5ul3FuPODvzD9t00B3ZdR5Y/fCunnRYWbv1kufUdlqiEKZkOwbe1x\nrJmmVliDZB7sPDpjhFlL4y44+AisuOIuY3MbW2H6Rv8SGd1eeu+r6PXMbQjL3IHi7n0QIu/Z6P3h\nlLGbdI85BcFfv4cVr/+IwghpoEIH8yHT4ijH+nOvhbNLOpKf/ZfZmtwmzK+tj475irHiuC27AP83\nYzV27C42UUuc5ciV0azEiHCPcCQT5+VvU0tfaW2pcIpRiZgr/nvR1DrJeGnpNNw5+HpEh0e3+Dfm\nPWpJIcVvnia1RUVFpm2oQkUhxssSXHVWreVpIdAiCJD/sMNe3msAwnNzsPuUi7H2jInmcHVts/Qv\nFpm7/JFp6PXQVbB17oFiOcOQMpd8wFfFhnlRfs9avB2LNro3fvjkDxsuGpZieIeawzPfQLYyMDwb\n5Zj00yN4csFLYjq9V4HpHNUebx33LI7sMMRnbJgeryExB6NfVE8syVtV47cQLutDz+10kgmrcXzF\n3jtB8mrlz4xP3FnHXKH62qwN2J1fik9/24J+nWLQI7XlZY3Srt+a0q79LNLvrWTTn358z1knPnt/\nUw3BTGloy3f/9J7bMkIBWDYyAjLVvG69kSPbeGfGJiCkojPGEQMyUjZunXpdc9szSCjIRaicDO2Q\neP5ktEYpkjSzr7oHey77F8qFuURJp15HLujP6V/Ssv3ok1AkW6AHpfdGtNDHRqsNPABhbhaStC7/\n2pSDl2etM1ubMuPUmCCcPVgO3Au3eWzWWW967Y+48Ztfn70Ju4qy66ybvNICLNu1CoM6HGQEQZ2B\nm8FThS+VJX7zvFNIse5VaFFYUXjxtyWsmqFSrCwsBHxEQDve5D+5Bw1F5kvfIDs2UUyAHaYtsz2T\nL6u5U5G08RUPvYEEsawI40zzPsx2MC/KzM2Z+fhg7mZDYXiwA+MPSTIdWvII8hDt8AYqr9By3DP3\nSTw2f0o1pDflbcOJn03A3DM+wwGJ6T7xPJaV/JFYP9jzRty47CGsLXJjpBlE2sNxd4+r0SW8k4eX\nNgYj5d1Mg5izX8V6PmNQCl75YYvUlQtTZq3FvWcciMiwYJ/KobQ25Z30EieahVO20PG3yhf6s45U\nSaIyVTWMeWH9q4aApTRVgySwX/BDp+OdH35Jp66IEGbOj5+KChsJGwcbNxmsjiKU0vTHz0UjDR56\nOEouh9ySsZAOChLmTQFA2vieh+CWiB8/Oo3nZ5JaVXLEgIL4u7924D05fbysQrimJzpwVJrgZnOP\n/mg9sl5Z57z2N6dYuUrLfCu6bNtIbPndBQJeKqx413bBgmh98r2G8a2AVigLAQuB5kRAZVZpR5G5\nwqvZ0VSZy7bLzrTyaj47Q2I85DGuL3xI+dzUOetQLKbZdMf3iUKEw22ZoZ3cQOYVLAPl/vbcDDy2\noLrCpKBwl7v7f30a/xnztMGtLnzoxzKTn7OP0zm6E17ocS9mZH2PhfkrUOIqRbeQjjgh6Wh0jeti\nwrAuGKexTrHWO+s2Lc6FwV3C8ftG2ZVudxE+mbcJZx/Rpd5yNJYWX+MrXqRZv1u+88ZYf/NeWxhf\n89ufwllKUyurbf3Q2YEm09ZGQAbB32QqbCi8Mwzfs5EzHP214+2PYjNNpkdGTtMiMjPmy3yYL/3Y\nGHnnRTM9byVKafcHLa0tDRUsBcUl+O+iDLfCJHgObg8MSC5GRKgbT1U4iR/x2h8xI1aKV4wtGj0i\nu2BN/sZaq7xdaCI6BLUzSpPGDQTcSAPbJi860qZ06b3WQlkeFgIWAi2GANundtjZfvmbvJkXZR1/\nk0czDH9z0JLvKAs1fH3Ekx/oINqajAITvGdiMHomuAeKlHf4ml59+fnqT7qqOpatLsdyfL/pfygu\nq3vThjlb/mf6BcSuvnIxT2JLRZVrcYjxifZjcGzMcMNL6cd+CNd7cd0O66a+NOsqg7cf8/bGn5gM\n62zHqgy7rDcrl+3gd2GYbNyUlhpjvoP68PFOu6melQa915YP/esLU1vc/fG9pTS1wlrnB07mzDsZ\nA50yHWUS2hD4noxbw/C3vxzzYH6kQdPlb6WF+TAMmZmGI7PxDkP//c0RA6dM67tEsJTLTkA0w3v9\np104rLMLXaNLhfFHGcZPwaAzh1qf+xtWVctL7K7oeg7+uXRyVS/P70A+78j7e/d+9hBvPVgIWAgE\nFALaTlVporzjO8o5XnzWS2UbBwfpvMPUVSjyNcbZnV+Mj37dZoKGyPbWw7u5Z6ZVxmo+daXlLz/S\nxGvO5l8w9a/3sTJnLRLC4nBS9zG4tN/ZsiTAjUPV/FgOKjS7C/dU9ar2u6C0sNIud9UCeL1g2VkH\ntGJhHsSaz7RgIZ2qUHHtKJUn7Xd4JdHoR9YnaWB9hMn27yN7BOPTv+Q8SqHn7Z834bZTDjB0kVbL\ntU0ELKWpFdYrGyQZhnfD1GfvO8PwIkOh8/bzV7GZJpkImYk6vtO8+E5/Mwxp0d/eYTRuW76z7Lx2\nynT+v79ehVH9kjGgQwiig8twwcBguMrFBj4sxihMZPxq4li1rtsyRjWVTb8T3vmtjUochus7XYAp\nW95DsWvvSGawLQgXp56KE5OP8XRmmJ7Grylt652FgIWAhUB9CJCHkA+zI65O+Yr3vTaZq3HqulMR\n2LQrD/aK/vZhnRxIiJBDbCvM7ptCCaiNHsop0nP7L5Px6HzZIdDLfbPxe7y65B1887e35eDXhEr8\nVWUclabuEZ29YtX8mB7V1VjCMC/GVSxrCu1dB5xJIh5UjmhJQ8f+hVFmxOKFfvyt6TFtdfpOf/t6\nZzxeTJuymXl3K81BemIQVmc6ZXv4Mjn0thjJcXsVaV/TtsK1HgQspan11FUlSrUBV3pZ5YcyB71X\n8fbLT01b77UlSv/6wtQWty28J9OmycLyzXvMwtECOX/j3Z83I2F0ZySGhco5Pe7OvTJjNXXc3xUm\nrXt+OyoU2Yk4vd04HBrWDz/t+QM7S7OREBSDI2MHoVtMmulkcHaVCtb+/M0pdtbdQsBCoPEI+CLD\nlN/o3ddcVT50jLHjyiNiMW9dHg5uB9MxZ+ec/MxbCfA13YaEIy1UYt5dMb2awqTpLdj1Fy6d9U98\nOPbFanyW8Xn1COuKgbF9MX/3Uo1W7X5Wh3EmL4b3xRFXxYF34kJa6VRh5Xs+0zHd7zfPxXurPsOm\nPVvRMToVZ/Y8CaM6H2H897WeGJ5yhfKZ9cIlB0f3KEa6HD58WPcYOfRWdlgUekiD5domApbS1Dbr\n1SpVACFAJkqF6adlGXjn5y1imudm8r1Tw5EUZZdp/nAzckVGy5GyljDFCCC4aiRFhSWFFWfhOJJJ\nwdhODoclvnymwkmTRvp7mzXWmKD10kLAQsBCIAAQUCVjd4GTvXxj9nVYF/caZc6okK815wAQ6eHs\nzdMLXqkTnc/W/Rers9fJmqvuHkWGEcireZEn35N+La5YfDe2lmRUS+v0lONwXPJRJhzD++pUFjD9\nqsqJdzrlssX51XP+hReXvF0p6ZeWTMPFfc7ES6Mny+bhe2ejKgWq5YeWi7NNHLwjTsQrMbJMyuFW\n0nJkK/KkWHfX2pueWpK0XrcyBCylqZVVmEVu60KAHXqnKEwf/LIJ3y7ZKziGdAnB0T1l+1iby4yW\nkQmrEODdYraV65l4qFJJpYgYcZSR29lTIaUfFSV2MnjRz8KxMobWLwsBC4HAQ4Cd7i1ZhbjzvSUY\n3C0GI3tFi4m2+zw+dsw5iNZcvIy0kJ9yBmVJ9sp6wfp9+0J0j+3qoY98Wnk1eXCnyI6Ykn4P3t/5\nFX7LXYL88iJ0DEnG2PjhGJV8pOHZKvv2VeZpXlWJ1DI8teDlagqThp267H2kC923DLqqksKn/nXd\nvctHWUTZQ+VpW54Nb87ajKw8Jx674CCEyFbxlmt7CFhKU9urU6tEAYIAFaYSZxmen7ESSzblGqqC\nHDYM72pDrwT3joZkuBxFVMHBQPsqPAKkuE1OBnEhVhx5JW4UyhRWOtNEDPmOd4ZjR8NyFgIWAhYC\ngYoAeReVlC/nbzWbCcxbk4Mh3WPRMcm9Zsfb6qA5ykCFgzRxcwWuES2C+6D12vK2yeQYZ/3Jb9WR\nT5MH68x/u9J2mGA/HefEnWTSZlgqg7QK8B7g0viNuSv9pXJG1hNyoG5d7glRqq4fcImcpRXmUfrq\nCu/tV1UWUQ79vD4Tq3fkm2A/LN2Bkf3a7bNC5p2H9RyYCOz90htAX+6aeZizYBOQ0BvHjuqPMK80\nNsyfjYWbsxAS3w/HDz/Ay8d6tBBo+wgo83aWFCMsyG16EBliwzHdgJQIpwgN9w4/nB3RDr6lLNX/\nXeiIK+8UzBTwxJrY8R2VKX2uPzUrhIWALwhkY96MH7EpD+g+7FgM7OAl6Yo2YPbMhcgrCUGvo0bj\ngORGiVRfiLHCtBEEVEbszCnE3FVZplRd4kPRIzm0Rc20yVOpBAyO7485O+fWinao7J7XP6a3UfpY\nFuXD5L/kw5RtVIzoOJhFRYxpq9LEWRoqTf6eSaMSujprHXYU7qqVdnpkFedgReZq9Evps88DbCpj\nWBY+0x3ZMxbfLs0052t9vXAHjuyd6JFFGsYEtP61agQaxeG3/Pgwxl883QDw9upCnNvDLUx2/vgs\n0kZc7wbmhulwWUpTq/5ILOJ9R0CFx/qMfKTEhhjhc2zvcJQUFeLA5DLZKa9c1tzEenbIozDRjr7v\nuezfIVVgUUki3upUMOld31t3C4FGIVC0GQ+PHQ8j6c5/G4VvnlsxQLgTz45Lw/Vz3KlPX18Ka3iw\nUUjvV5HJuzhLM2PhNs/B5sN6RJh3yuN4bwl+Rtou63omfs78AyWyq2tN7twOJyHKFlmJBzOc0k5l\niM+qJFERY7rk25R7VKp491Y8aspnX94xfSpNTsnLF+csdZrwDaFBy8k86ezlJRjcOQI/r80zB97+\ntnoXhvZO2WeFzBe6rTAth0Cj7FcOOG0SxlfQPvnV79xPW2fgLFWYRk7GlqdObrnSWTlbCDQjAsqw\nf1qegUc+WYrXvl1rRtbssm5pVHowUmJCER8fj4SEBDMC19wLfJsRiibPigJLhRaFMC991+SZWxns\nXwiE9cddz1RIurcm47utLL4Ts+8/y6MwTf5hC07u2qgxyP0L0/28tJQVnHUpkl1U563ZbdCIl+3F\nu8W6Z84VHvK05nbMkwN5faN64e60qxFtj6hEgnBanJJ4DCZ2PscoPDUN+mkaVJy4y1xcXJyRe4mJ\niZXkH60F/MW3ianimmRPQPuw5Ep0V/2RHBKPVEeyx1qBcRvjGP+gVMoid539sCzTKMBqDdGYtBsT\nt7HlakzebTFuo5QmRB+Gm+4baXBZ9PDbmLd1Oe4fOxbugbfz8cf0W9ChLaJmlclCwAsBZdQc4frw\nfxvx+pz15vDaPzfsxqodhWZEjUKDAoMXTRZUYdLOvldy1qOFgIVAgCEw8JzrUCHpMOXzeVgz+2Ec\nc1eFpJvyB24Zbkm6AKuygCeH8uL3tVlyvo8sDBLXr537vEPOetSkiDRHgajA6EwQ1x2NTBqGqekP\n4bp25+G0+DGYkDQez3e7U87Jm4DIiEgj25RWxvV2mhYVI84oUebx4gwTlSmWsynkH+Uxr0s6n+FN\nTrXnizufbsI1RqlQhY8YsDwxYmzVLc49eLJiR4HMOBUapaxa5s3wwuCweT1spwwG/vupRzn0zpph\nqNThknHAY7fJWZGVlXbvsNazG4FGD40dfuENgBEeb2Fox7cqcB2AD1a/jIHRFswWAm0bAWU6RSVO\nvDRrDRZvdJ+C7pDRpvEHxyMtIcgIDAoHZawtKRTbdm1YpbMQaCIEkkfglhsGYM7TizD9iqFuUz1m\ndcMHeHniwCbK1Eq2rSLAjipN835e6V7LxMmJfqnu83/8vcZnXzGknKKSwzVHpJHu5JAxxoxNFSoO\n/HkP/lVVmDRPfa93ykt91jD+umu6KmtPaXcs1uduxrTtn0NUAU82nCk7M3kszkgdV0k51fiegD4+\nMD/KdGLG68D2xVgj1cqy/rwiU5TNyEr5+Jhso4IxbyrlQS8+Iou3ZNfef14I27X3oHzC9UZR1cRd\nRUWw33QesPg34IevUX7SebD1OtB4NxQPTbut3hutNAV1HYcPLgfO8NqoZPK3X+P0ivVNbRU4q1wW\nAqowZchC3ue/WY0t2UUGlPAQO8b1DkL3uDLzmyNtKgjJYMmMLIbUdr4ffgc7CzMxd9t8lLqcGJTc\nH11jOpkCWvXcVuo5CKOvuRN42mv02pifn15pA6S2UlqrHE2HAPmFdmrH9otBXIiswSlzIS6i5ZUm\n8ivKKMosmtXR8ZlHO1CBoh9niuinO99RyfLVNTU/ZPqkh/KWM2WXtT8LR0Ycgjk587DLmY3EoDgc\nFXco+sX2Mf5Uchi+sXRpnpxJ65lYiO4JZeiWFIrBXSON8sL6bk6nSnn+Px5GzLKFsMkW8rbnH4Bj\n1RKU3TcFUmhgVwYcl46V+w6gtASlF9+E4k7dEEplS5RAy9WMgB+QycCyud6JT8L5oyxTBW9ErOe2\nh4AKvlIRJE99uRK7cktMIRMj7RjdzYX4MPc2rBQ4ZEC8yJgby5zbHpKtt0T8BkrKSnDrTw/h/xb9\nB06XW0lmic7seSKmjHoYcaGxVp233iquRHnGhmWVft9wy/mW+XklRKwfviJA3sGObYrIi6O7u7th\n7ORTIaGsoHLSUk4VD9JCZYCKBTdx4MwF6SJ9fKcmdoEk17xp50wZ6e5r641uoV0M3qSfik1sbKzn\nEHSVzQ3FW8tPWU/MoiLDcWq/csHOjshgdz1rf4Fhm9ppXqyvIlGWsh55E6lP347wX/4LzPkCjvNH\nouSRqQg5dwQ1YqAgD1lX3oXcsWciSnY4JB7+UCSbupwtlX4jW2YRPrxxLO5a5E3+w/h8frb3C3l2\nYuuaxfhx9mzM/nE+trqPrKkSpu385EeL1SJg5W6eayiafthY9VetYWqIZl6ZNNcsh3CBWuN60l+5\npNYwtaXP9574mRl1xje0NDCPuvIPdD+Wm0ypVJjSmL6x3DIIXePtOL57CeLDbcZ0gUxbhaAy1kAv\nl0Wfbwho/V826xY8s/C1SgoTU3h/1RcY9+mFKC1z7xjlW6pWqEBFoGj5h+h4zF2VyHt6yueoJsqK\nsrF8/jzMFlk3b/EaOefGco1BwMiXemSkCZOxrU451Rgamirusu0ye2Nzb5RAUzfO3qhFQlPl6Wu6\n3soRZ5RIH9fl1qRsNIci4CvdpIW0U6mj/OUa4pSUFHMlJyd77roZE8MxfGPLwPhUNIzSJHgxb9bn\nnhI71u+q+6wrX8vmazjSohfjOKWvsnrincg8YyIgu/hi9VKEnH6YmV1CXi423/E8th451r22ScI3\nFgtf6Wyt4RqlNM178TKcITbedJOmTIVY6Rl3xVNf7xUWzg14dFQwOqYPwIhjjsExIwahY8wozNjQ\nNsWJYeB/LRB7xcOBc0bAJR+leVeBDW/87SrIh21cf+D0ocD8/1UL4xW80qNJiwrZWUfIcPYwuHL3\nVItr0pfGYfvbocCpQ4C5c6qFqZRolR8mD07nnngQMLQdXEv/NA3KvK8Iy2eOlNmmPgWc0B+2O6+o\nFqZKsm3ip5b7s9+3YNOuAjOS1T1eYD4wDGO6lSFORpm4Qx4vMk4KQWvUpk1UvacQ/AaoMM/d9gfe\nXPGx533Vh7k7FuDNpR+1iHlGVVqs341AIHseLutTYZY3chKmPlMh6aZfgY+W75VjRRs+w0HhCegz\naCiOEVk3dEA6wk95ETsbkfX+GlX5rO2WCcC4frBNm1JNvmgY1yJZj3FEB9hOPgSuim2tAxk30l1U\nUo4XZq3HfZ+tx9xN5UYp4UwTZyv80Yn3R/nZeVbliXJMZ5dII2VaoNBZtaykm7MlOqOUlJSEdu3a\nITU11dypPFEBpH9jZ5k0b8WKOFFZopI57Y88PPTFekz7ZZO7zyf13lxOMWCd8WJ9bTz+LGQdf7ab\nBMEIe7Kx6YZHsKtn/0qzh1Z/pe5aarDStGHG/Rh6xVsm9QGTvsZDEyfgGs+2rOfhiw3uBYQQW//F\nc8Zj6g+LkJG1BV8/c77EmYNH31tYN2Wt0Fc7U9TsUS6mOpvWwv63wSiXHUyoYCiTL9+yEfZTRaHZ\nLasF5eN12h0e/7qK7UmfZxCIDSq2b4b95INRvmGNJz7zKd++RdIXZSlD9sYVBlcWFOJzx01pdO7Y\nAoTLVqMdusJ+3lGy+8r0ynnQvvkOGbn4vweApFSUJSQbm2fGb4tOcSkoLsHzX6/EZ79twfMz12BP\nUZlhSD1SQhAnU/4cwVKFiczKX0y5LWLaWsvEb4H2/Z+vnVVvET5f+1+jWLfVdlEvAK0+wAbcf/RQ\nVEg6fP3WQ5hw+UTPURsXvzhT7CjcrjRzGzB+Muau3oKM9XMxaaS8F8XqnfnV5qNaPSpNXQBtY+Ui\nVyhf8MTtsN93rdndy1uW4qsPYL/wGCOnKEtpLq3+TU1jQ9JnuTjgsmhjttApA48iLhOj3R1bfw+w\nMa9SOWPpy3Xf4uHfnsMzf76KJbuW71MHnp1vVQioJKmixHeB6pRmyl7O/HDwUrc8552/m8IChNhQ\n4VBFJT5STN/EbcosQmZuUbN+l8SAtLCcVOIi5d5zyn1ImPmB6Zs6Q8NRlpiKzo/fhI7ff2HWp3nP\ndAZy/bb0d9cgpSl38TSkja0wVZDFsF8/dLwpR3/ZlnVARYnuf/EHtzCJHog3XZ9iwvD+SI7vgOOv\nugVGbfplWXXThpZGo5H5K0PM79wDuXf8G8iTndRKiuE4ZRBcMptEZslRMcffBgGFBUB+LvImPY2C\n7gf4pNR40hdFJveeKUCunO8gjNEhClj5rz+401gyH47xh7jzlvRz//EIctMP3CeFhkKnMC4JWfe/\napQ6RETBfutFsE15xKRTvjvH2MXi288MYiWHHoWsC643ncNAFlgNrV7iznJl7inEo58uw/z1OSap\notIy5OSXmhErMmOaAlBh8l4gazGfhqIemPH4LfCirfzO/Mx6icwUc60SmbVti+2i3sK3+gC5mDYx\nzWN+PvmHWTiey3XDBuK6iqM28PTTmLXVrTZFD5yIhZ/egsN6dEBy18Mw6fFnKhBQtarVA9IsBVB+\nyzaWdemtKDloqJwcKl2Vr0VBmnAsysW6goMWtmfvhf1OmfWLjIYrKBiZj01DcYXS1CyENiAT8gHS\nvmh9tid2j+QQ86wKicejgQ+K36KdS9H/zdE48bMJuP2Xybjh+3vQ/+0xuOibG1DoLDJ8rIFZ+C2a\n8lO/JViREOWuKjGcGVNFhvemnCnTOmS5eiSHVlDjMvVt+n/yvjmclp+KY0RJEbrcdDaiFvwkWbuQ\nOehozLvjZTijYlEeFoHk1x9DyksPeXCx+ix111ADlKZcfHTneRWpXo65H3mdxSTbst4v27LSLZq7\nqkalyLlhhRm1Gz9qANrajuTKrEyHatAIbHn4TbPIDnKegeOS4+H6bBocF40WoSszOLL4bssDr2Pn\nkJEeZaMC1Fpvmj6Z7q6Dh2Hz5GlioyrKV2QUgiae5E7/wlHu9EVh2nrfq8gYdqwnfcavz3nnsSc8\nEquf+BAl7bsCIWL7+8pjsD98E4JOGQhsXmfyzjrjcqy7+l5Px7C+9Fubv+KxettuPPjxMjNqxDIk\nRzkwYWgc2kXZPKNZVe3S2xLzIQ5Vr9ZWl/6iVzs+ncNkBLwe1zm0vaf91RPU8g4wBIpkcPC8l9xE\nnW/OYpJZjwo34sKrKp7mYOX2mmeS1v8mZmPiQoODKsJat31BgJ3MIlmYvu7GR5Az/iL3eow1yxAk\ng4R2OVPG/sazgChLxZ3Tsebx95EncpWyMVAHKFSWcBBlxbY8A0VylGyqAPegyr5gU1dY5pNRsAvH\nfXo+VuSsrRaUJsUTv73Vp4HaapH98IL0Zclg0kuL38bNP96PB359Bn9kLPLIFz9k4UmCMlgVCCo0\nqtQ0tWzmt9s5Zu/GT8s27zZygGVvLse8XNJ+ws88HLYMsRySJRtbT7kUSy68CaViCvrHv15A4QEH\ny4CE7DY44wNE3HhOc5HWqvNpgNIUjQmflqJUtqAsdb2Iw+K9yx+Ek59a6PabPRGVvEywIrz/6Bnm\n6ZRje3pHbBPP3g2Uz9ld0rHq8Q9QFhJuRsqC775STN4iUR4cglWT30V2t96m3NqQ6wNBG782+BzZ\nHnLVY++jNDzKzAiZ9GXaVVYaYfVj7yGze59KDEPj1ZUPw/Di1C6vErH7XXbnC8gdOkZmr3bD8cU7\nbkVtTw623vgoNo11NzSGZTnakiPTIfObt2InnvpiNfYUukeMO8fZcVIvFyIdMtopWHE0hyNYNK9Q\nczxfsG4NWBGDIhmVfHbBaxj98dk45J3jcfqXl+OLtbMCtnPS1LgSE3bMjksZjgiHnGZYi+M3cEqH\nMR6cGM9yrQeBsP4TTUenUGY83qxyFlNQVzkYU97T77qB1SUdcufhTmO+PgnH929rw4PNU4eUJ5Qr\ndBtOvgjbrn1Q1mHILL9YcDimi8GkyKPdR52IZZOeRYnwX4bXK1D5L/nG7oIS7MoTE3txnWIdfp3x\nUZn1xB8vYkfhLpNHTf/eWvEJOBPVnAqm8s3P1/wX6a8Px8TZt+HJBS/jrrlPYPA7J+Dimf8wu5G2\nFT4ZYnciMcLdJ9qQVeQZPGuO8inWwf+8QCaXyk2b2XTT49gy7mxjrmfWW4uZ4rLrH0b2uHOB4iJg\ntlgOzdq7DKOm78Z6J+M0DQNBtlAOqz1qkNhP1uSWfzjJjNxxDdT5B7Q9QUJGTSbPDjQXGXLGqSgq\nBkXtuyBy+0aj0XNmqKhbHxTHxJlONsMxPOPVx+i90+eiUY6qFYrpXJHMBAVvlhElh9SJmAMWp/WS\nfGM9dNCu1Zf0tc4YlgoAaWMeVBzy0nq7ZwZtdpSKOUSwjJYVJLU3U7q6VWogLWLVsjT0rkynpNSJ\nr//cLsxcGI+4/u1sGNSuGBGh7tPQWXdUlBTf+uqwofS0RDxikFmYhWM/OQ8Ldv3lIWGhCNuP18zA\nFf3Ox3NHP+AZvfME2A8eWM+JwQmY1H0i7l39XLXd8wjBZR3PwIFRvTztui19G/tBFZsism3XKunE\nr2ZJl40Xr3IfgPvM3H+i6/4Clp/KyXZC5YfyxFsGFSSLbaRg7qKcE+WDq2ryuvQ2vJfhKIcotxg3\nEJ3KlA07xTqkwrWLdiuGpJnlbiyPoBLEmaxvN/6kWdR6/++GH3FgQm+Dc2PzrTWTCg+WndeCjCU4\nc8aVKJajGqq6/8gOlTEh0Xhy+F0eeVo1TGv4zbpkf4BXapQdu/LLsDPXiYIip3yj7rXtzYE3+275\ntz2FkCcmIeuw0cjsOxARFaaK5GumfyqH22447VI4UzvD3q0nHENHIUL6e/74FltDXTWExmbjLltn\nP4o+ZzwtC2WfwSxZA1WrIGpIKQIkDj80VTjIwOOdJTjgjosQsWKhMSPYOeIkswYpbPUS9Ln9AsQX\nFxpG76uywfTZIFWhiZPtjPvc9XdE/fW7bPgQgp3DTzSL/MLXr5D0z0d8Ub5HkGinvj6oNA8VWCxH\nt7eeQfs3ngBEAczvkIbgXdtRJopT+r8uQOrKhWbkYl8Vs/roaEl/MvcyWaFLZbFUlNAzB8tOeKF2\njEhz4NDUUjmHIdIsLKU5XlMsKG3JsmvexIBM9/JZt1VSmNSf9ylL3sKrS95p1tFK7/xb6pltkEKH\nCvOxSSPwZPdbcWhkP0TawhBmkxPhI3rg3q7X4KL2p5kwDMs4ltsfEMiVYziOBieZLp+6CNdVNsXY\nHwDwSxkph9hudCF76l+/ocddF4vciYFNZpiKEmVX1/hkdHz1IaS9P8XIICpOvspSvxC5j4kYuSIy\nZcNO2fa5wnWKc5/j56t81ng13Zm+Kk0Fzr151BSW73YX7DEdZ8Zraqfy5IF5z9SoMGn+Lyx+A5v2\nbGlSmUJaarqUhsbc+d3yYn3yW+wQ6+7pMr8NWYWmXI1J35e4WjZ+C0WhYdh8zb3IOegw0xfklvFc\nd8012LxrHybj6BOxW0z1KPMZz3K1I9AsusvOec/KGRe3Auc/g4w3r8Ney/DaCWutPqp0hG1YhZjL\nTnCfvCyzS+vPvhZrxMStu9hfd3tbtukuCEHypWNQ8tKXsB94iM8jTJ70ZU1RjJzmTH5nk4V+G0+/\nAquOGItuMovV/Y3H4BAlKvkSSV/OErEfdKjP6SvuzCdYGHzyLRfAvnS+mcXa03MA5l96B+J2bsOA\np26CS8wCE+6+HKXX3w9ccLXpGDJea3XKbHLEfOK5r1fi0B7xGNI1QkywnLhgUAhczlLpBMcYRkNm\nQ4UykIV0Q+uBOJBxbti9CZ+sm1FnMs8unIoLe59uFHkGbM31X2dBKzy1/emgAs0cBpYOQK/g7maE\nl8Hox2+jLa9x8wWr/S9MEWbcP94cw3HD24vw1Ln99z8I/FRitjNta9Hvv4TgFx408kYYExb86yXs\niU/CoJfuRdS6ZYj++l1E7tgE59PvBuzghMoW8tVuScEY3i3MzECkxAT7VYYwfc4gpEelYcWedXXW\nRnpkF08nmYM6TcW7VZ5wBuynbe51frURxgPCf9z8K86Oam/o8TdNpGVp5krcO+8pfLvpZ+Q7C9BP\nZtuuOWgCLuxzul/yJM1Umqj0pyWFot9uJ9rFBiM21GbkKmloDqd0cHCPA+28Uy7pbCwHhUkj5RW/\nGT77Q3lvjrK1ZB5NrjQ5t87A6KHXmzKO75+E/304DXkyM1tSEoVjzz8ZHZqcguaF1zBH+QBDuCFD\ndJzscJeDNf98Ctu690WINJYtR8qGEJ27o/vj/zAzNwxX+r8dcIkJnS8MwqQvH3vIeSOA2ATYcjJl\noexj2CJ77TP9bcPGSPrd0OPRG8yuQiGXHIfSn7bAJZtR+JK+osV8gm+dANuqJWZ78yxZu7TsxAsR\nJO/zJP2FD76Ffk/djODMcgT/+244u/VC+YjjWq3ixPKSiazfmYfnZ6xBTkEpNooZRWJ4Z7SPku3E\no6MMNBzN5NacvJPJNKWw0bpo7jux4IjT/O1S9/W4Zdmr5MyRIo+QqCd4m/BmO2LdUwCxk8LfFEjF\nsuiWjkJJz+rw3sa1IYU3deFyYlPuVmO6khjmXj+zL225IflacfYdgTUfXo+xd80xEQ8IWYdp0xbL\nswi7qAE48+SBbdK6Yt9R8i0Gv3tetqV/Ilg2IEJYOEpSOmDp9Y8iX9oaVzotlDW1fT55BQmzPoL9\ntx8QfMflKHv0dcOLfMulZUJ1igtCtE3MDF0ORIS5d3Pzx0y0YkaedFbHcfhq23cGw5pKmRbREUPj\n5Fwrwbg5HGkifywtr38nyXyxkGEnnh14fznF5vstc3HSZxNEWdo7E/fHzsW4eNZNmLt9Pv7v6Acb\nLdPJm1mflAPtRVk6vrdbMY4L32ttYL5tCdcUjvnzooxiP0UVISpHpElx5Z10MhzlPeMwjIZvCtra\nQppNrrI492zHogqkpt96HqZ7UBuJuaeJ0hTtedHqH9gQ2PHGV++bhXfCkbDmkXeQk5yKKPlA+TGS\neeT0OVg2gngHPe+7zL273if/QdmZl5qPlh9ubU7Td3Grb25nLoxlzaPvIqddx0rp7+7VXzaIeA/p\n914Om+yih3deRNmE6+tNn/kyD9LolLOegmZ9YkjZfvMT2DL4KERIA9MG55QO41/3vopeL92PiO8+\nR9CDN6B42GLT6OoqQ21la8n3LC+vP1ZnYer361HidE9P90gJR6owvfAQu4f5KOMho2E5W1tZfcGZ\n3wCZqN2HWfoQRwhKikoQFrJv6+Z8oSNQw7DO2Q5oOsRnfgtUjijo6fibfhRYVKYaIoRYB9wW+Paf\nH8HUZe/LyfLu3bYGJffHo0fejqM7DWuz31+g1nt9dBXk7V2rcsUZ4/cGHz8FJ4nS1IZE3d6yNcET\nv33lQaEXHyuybjfyx5yGlX+/DS6RQTHSvujMINe516JU1tu2e2YSbJ+/jbJbHoUtuV2jO75NUCyT\nJDupjuBQwy/IO/xprcD0eDGPg6MPxFUdz8ELm8V8WraZ9nYJwbG4P/16kHczfFM71iXlK/njATE9\nMC/zzzqz7B3VzdStfgf+oJFp5ZcU4PxvrqukMHkT8uKSt3FMxyNwas9xjf5+yPN18Iz1YS45L5P3\n5nDEjDRQ/rDPQqd00I8XMVElifVTNYx5Yf2rhkCTK01hB0yQyplQLeO2+IIfIRl5gdiHlj3zMXKS\nOqBQRsgiRbtnB4ofKDujhbLzYGFQR6x48mPE79gAx+EjESnx6utcafr5h41C+XPTkRObLBtByMFl\nNaYfhBWyDWvitnWwDRuFSMm3vvS1TliGYpkly/hWaFv4G3bJLoBhIqh0apd0sAxFsohw1TX3o/3I\nk1E28gREV4wOaaPU9AL5TmbB8n7xxxZ8Pn+HWXNGeg/qEILRvYXh2GRWTxQCZS7KeJqL+TU3dqxb\nXsTlwKieZne4gjLZWacWNzi+nxGGynRrCRZwr1lGb8dvdl+c1r+uaWP7VgzoR8WJ7c3XNuedN2nj\njoVjPj4Hv2z/w9sLHBXlVsLvj30B43scZ/z2lfZKCVo//IZA/wlvwiWX5RqPANsSO9mZXy5F0Hdf\nYduBhyJI2hXbmQ5WcOaCcmj78LFwivVG+cDDESO704YLP9f22XhK/JcC22l+qQu3fbgOsREOHNcv\nCSOT3f0Cf7Vhlpuyihid2348egR3wvRds7G+eAtC7SE4KPIAnJU8FmkxaaZDTT7FOHXl780r6wpX\nF1IqU87vdHKdStOR8YPQJaSjkUHe+daUtvrzLLwiZzE6RLWTzUGqD2QynJHxsmvf1nyR8XW415a+\nh5PSxhiFp6FlZTxiqkrTJ3/mYOGmXESGZuHhsw+sE+s6SNsnL6Wd8se7fvU9E+OzXgynzjuMvrPu\nexFocqVpb1b7x5NpoMLw82Q2qVxseCMrlA0qHPww2XjZmAoKClAi97ykQYiS8IynTKAupDRcnswm\neadPYUIGWDX9PYmDEV2Rtsatq1FoGAotPuf16odwaVxMX02N+J4jGPn5+UZxyh40fJ/KUFf5mtOP\n5SiTcr767Tr8uibLZG2Xsh7exYYDk0rgsLvrjEKIdUbmQ1cXfiZAG/hn6lhOELm402n4vw1v11ii\nYDExuSLtHJ++2xoTaIGXLBdN3V5eMg3cBTAiOBzHdDkSFxxwKkIdoftUtyqMeOc3wrTpVBDpfV+K\nab5J4RHPzn+tmsKk6dDu/4o5kzCq0xGyQYnbbHR/+Ca1/Na97SPAdqAyKGfwCITJb8ocyiBVmrhG\nhu2OilNu7wGI8IrD+IHWJkjTbjH7lpE5uYuZmuxE64vS4mtts7zkRdpZp1I5uOxg9A3tZQZrmQ4x\n5DpMXjrLVRNOpJXuf9v+wNuyPfmG3ZuRGpmCU9PH4viuR3t4nAnkwz+lbXj8EFza/nS8uv0jD7/U\n6OnhXXBH+lWegaaa6GJY0sbrq/WzZSZ+MhZnLTdJJEck4pr+F+H2IdfCYdu7GzHDcrB6eeZqzarW\n+6ocsTSR74r1wvxro6HWBCo8tLxMp8TpQkFxmfTN9g5Ieisp9aXVUH+lXe+1pVOff23x9tf3ltLk\n55pXpkUlgwyKDIxMXjvdFARsMGT2bJz8YNXPl49XO2hkeLWlz4ZaW/r15UF/5sE0VBHjM8vA/PhM\nJsQy8OI7lol3/q4vfT/D3eDkWAYqmCUiWEIcbgERGmTDqO5Ah4hSESjRHgHNMhOT1lK2BoNSEdH7\nG7iww6nIKsjB+zu/RpkYeqiLsUfi1rTL0C/qAI+AUb9AvLO+eX28+itcOPNGFHrNnr236nM8veAV\nfDX+DXSJ7rhP9UyseDFtb9fQb4VtiSPspKkul1GYif+u/wHj048z+NcV1vKzEGhtCLD9qHwh7eS/\nlEG8yI/pzzvDUH6yU0yZxysQeTX5A2ncmbPXhDMypPaNAZSfcGZkR8FOw5d8Wc/IshODqKgoj5zm\nAC15CjGjnKYfN6mhfK9JZjNv8qFbfnoQT/75cqVP59Wl7+KM9BPw1vHPItge7BOvZL5KF+vvog6n\n4cDQHvg6+0dsLtmOSBmcHBLVHycnjUZKRIqnn8F4vLyd0vbaX+9i4neTKvHdnQWZuHvek/hTBsPe\nH/eCDHq6Z0+Up0bUckCAd/rRQRGmX0ac/PEdMe8o2XmXrljM/nPzixAX4+47eedrPbceBCylyY91\nxQZORs4GxzsbOJmSNyNnQ+RFfzIQhlHmX5VBVCVtX9Jnvt7pM4/60tf8GFeZBhs9fzO+dxosg4bT\nMN7l1LQC7U686TZl5iMuPAjlIkyOSg9Fbl4IesU7ER8mTE7OuOLWnByNIw4sp6/YtXR5Wb5cWf/y\n9YY52CgzKu1FCB2fdjQocH0pA8Pw0rrlyO5EsY0fHT0U8/IWYY8zDx1Ck3FE1CCkxqV6TDYDGSNi\nwmvprpW4YOYNKCpzb9jgXVdLs1bhjC+vwM9nfIIgOQfGF6y84+9reO+4+kwa2ZY4Qrw5b5u+rvW+\nLnuj6YgFMva1Em95WAjUgQDlC5UhtiuVRSqD6EfHOy/KHQ6A6TPbQyA5bddUmjL37DV1DnW4TcPp\n7+3IA/7IWIRrv7sT83a41//IkB3Gdh2J50Y+gK4xnWrlT8SLOFH285kYcnCWefM3sSKe9KdfVd6h\ntL4iM/FVFSal8YPVX6Lbz53x4LBbq8XXMFXvzIf5UmEjPYNcB6FPWE9DF+uNfpS3qsyxDHzv7Ugb\nr+15GfjHT/eZZ29/ff5k7Qy8u2I6zu413qTBOPw+hiXKZiwyA8WZ+trciMQhhibGaYxTWqmshlUM\nyjK9XblFiI7cq/g3Jg8rbssgYClNfsSdTIkNncyIjI9O3/Guv/VdbWFMwBr+abymSl/p451Mi4yO\njZ/5el/0VwHFcFXD0D8QHekk5gvWZePV2evQo10ELjqyPexiLjGyB00b3WaIZNxk7hQsLB/LHuiO\nZeP1kcykXDFbDrMrzvGQHBUcgUeP+Bcm9j/fU48ezxoeWF6WmyORxIICp5d8C13COxn81I9nPRAn\nCrxA66h4F4u4sNPwlJw+X5PCpGF/y1iIWet/xJi0ET53BjSuP+6k08x+SqciOTQBO4vdJqO1pZ0Y\nHGfKxY6Qts/awlrvLQRaCwLKb8lTKGfYLuj4XPU7Jy+qS04FSpm1becVuTeLIV1cL6t9AP5mGF7z\nti3AMZ+cXWk2nJs5fLlhNua/dwr+d9Z0dI7uYPBgvKpO+bf2RchTNB9ipZfiqfE1f3b0H/1jir6u\n8f5/i/+D2wZdhZiwGE+91BhQXpIepYXygo48izNgqsxR1tKP8obPpLEmx/CfrJ6BvNK9M3Y1hXt7\n2Sc4vfsJJh/1bxecjPM7nIzXt7g3uNL3eu8S1h7ndDpRfzb6rnUe5LWjUm5BseHx9LNc60TAUpr8\nXG/eDJ9J62/vbPhOL31fUzj1875rOGUq+rtqmIamz3Q0rnfDrpqPL2G8aWrpZwoNCo8ZC7bh09+2\niQiSmYfNuViyKRoHtAszTJ2MnQybygIVU1WYqpa9pctSNX8VdrM3/oRzZlyNMtdeMzqGpYC56rt/\nISY4Cmf3do++1VUm+vH7ojJEIaa4cOMP4qhKE2ehdJ1bVQFclcaW/E2aObr52w45ZLoe97+tf2Bk\np2H1dgTqSabB3ipox6QcgaV7arfBjwuOwZC4AZYAbjDSVsRARsAX+eJLmEApo7br0oqdWUmXo8pY\nHMNQKbhS1it6mw97l2FbYQYmyY6a/xnzlEdOe/vzWXHhnXyZ/Fqd+mk4fa93ysgdMpOzNnejvqrx\nzi27F+5YimGdDjV51BjI6yXzVbmhsoUz6syPNHrPgPG5JnlCPk581sv5gfW5TXlbDc/XfhLvTHdi\np3Mhuiqm7fgSxS45DqDCDYzsizt6XCkyMsYj99Wvsfcg+96K5s68Kq95Jy6Wa10I7G1NrYvugKbW\n14bga7iqhfU1nq/hqqavv32J70sYTa8l7sqgikudePP7DZi7KtOQQT52bN9Y9EkNMQqS2neTsZK5\nk2nzag2OZeTo4KRfJldTmLzpv+2Xh3Faj3EIkYOP6eqqO/oRC94pcIgP82BexIVKJS+GoX9daXnT\n0NzPpFeVJpurfgFVLkKc5eQ3wDK1VLnO7Xgyvtn6A5YXrKsGGU11bup2McJsYdX8rBcWAm0JAV/a\nny9hAgET8iI9zoL0BDv2zpwpn1qeuQoLM5fVSe70dd+Ys/HCbTWvSdLI3vyL6deHE8NQiXGKrPTF\nlZaUmvDKK+uLw/xVtlJucF220kWZQjmisqQqrQzHi7w5ISi2vqyQFJJglCYO/DFt5kcZxkG+i1JP\nw7jIEVhStBJF5SXoHtYJ3cK7Ij463m/m5oo976xndSWlZaYc+tu6tz4ELKWp9dWZRbGPCCijzckr\nwgsz12DNjnwTM0S++uN6yRqmZPeoDxkqFQAybDJYZXg+ZtOiwVhGKgVZBdn4faeeiFYzSZvzt+Ov\nnSswoF1fI7xqDuV+q0JLhRzxYT509CNOemlYd8zA+0+6KWwHxPbGohz3Tku1UXlQTB8zmklcW8IR\nU2IeFRKFJ9Mn4dmNb2D27nkocbnNejqHpOKKjmdhTNJRnm820PFvCRytPC0EAgkBlUVlZXutAFRp\nIp305yzKxt1b6iW7QI4j2Jm3C52COxqZVW8ECeArjyCvDC0LQXpUV6zO21Br0tGOSFE0Onlmukl/\nfXnQXy/yOcpd5bP6vq40SBuVuhEJh5rt04tF4anNjU4e5qFNeSqVJpqUM0/mnVicaJ7Jb6lMcR0z\nTQQp6xinLlpqy7fqe6YTKec88mBbpsfdebXMVcNav1sHApbS1DrqyaKyAQiQOVEQPfXlSmzJci/A\njQm1YXQPF1IiudtSlOmgkoGqcuAPRtkAUhschWWkIMnO37uGqa7EsmUnPGKiI3p1hSUWejG8N7NX\nnPReVzot6ac0835Bp1PwyaaZyC/fexq8N22HxvbDANkNkE7jefs39TOxpJDl6CiFeEpMCm7udCku\nTTwd2507Zev/UNmEo70R7BTuNCXlt+svAd/U5bPStxDYnxEgT3FJG/e4vRMQht+QjycHJXi8a3uI\nkh3ewlyhhu9TbvmTBxsahc5LO5+B25Y9XhsJuKjz3xDkcq9nrjVQLR6ktyE0a7yUkCRM7HwWnt3w\nZo05DJaDfU9MHuXxYzzKL/JLOj5zlovmgSwveajOQtW1DbsnQR8fmC95c4/kYFwy2H2cRVycf+vL\nR1KsYH5EwFKa/AimlVTgIEBmSCFExjimbxze+Hk7UqPsODrNKWfbODxnVZBZtlaFiWhrOWNt0UiQ\njQGySmtXnniuUseQFDNjpMLRF+GlYfQeOLVcPyWkmRcFZYewVDyQfgPuXv0s9pS7Zx01hX4R6bhP\n/FryW1A6OdJJpYjfL4VuWEEYkpxJphxUqLjLFEdF9dttjfWiuFt3C4G2jgB5rToZetJHlIu5sLZd\nhuFMSrugJJkRPwCLdtc+Iz4m+UiUiZkXw/vbkd+QV45JGo51HTfilS0fVjpqgvSOTxwFHkXBcAzf\nXE75I5Wcc1JPRpjMiE3d8TF2lmYbEkJtIRgbPxzXdLkAYaHuTZyUPsZlPN7J46kccfCQuLMc9NOL\ncRiusU7zorLGvOjIv5mfP9JvLH1W/IYhYClNDcPNihWgCKjwmbV4B9ISw5Ec6UKn6HKc0i8c8cGF\nCJX1PNrpZMe0LTAxLfPpHY/DS+vfq7VmTmh3NMLlrymEba2ZBoAHhSAFIpWMofEDMTX9IczM+Rnr\nijdDVmXhkOg+OCpuKBIiE8xoZEsrTqSVM00UrFSguAEHhS7Lwd8sB4U+v11/CfgAqCaLBAuBNo+A\nw2t9i7N8rwLFtq7Xbd0vw+WL7kReWfUd4v6fveuAj7JI38/upmfTE0hCGiX0DooKIiLYOcWz63nW\ns576t96pWM5y3lnPcurZ7uz99BRFUSyIIqIC0qQKoSek902y/3lmeZdN27TdZJPM5Pfl+/ab+Wbe\neeb73neeqamq0evyrLPcYX0JGNMXHUP9clbfEzExbAQ+L/wOexz5iFNziQ6NmaBI3XC3/hECwGf9\n6QQb0eO03cep3qTDwg9EjmM7OFQvPTgVMRExiIuO0/rTc5idyMfnKTP9xA5KvkWXStiO5EfipC3Z\nU27Dd5tqEaL2gZw2PBhx+0iTL9LpiIzm2fYhYEhT+3AzTwUYAiQOPBw1tXj5qy34+pc8tRxqMP54\nVIbad8emusipJF0tTFS4NApUnKL0Ayw7bRJHFPT5/U7BioK1WFzUeJW4YZEDcHXWub2uki3YkGCw\n3Dm3ie6UkGP1Nf3pJ0Sa7wUNXVcZNJFXiBNlo8w08PTj+0o/yshrGnrjDAIGge6BQJhHjavK4SJN\n/K5pu/gt89seGpWNR7NvwePbXsZPpWt0T0+IJRiHRo/XvSh9wpN0OH98+9Qp7BmhPqTeGWoZjMzQ\ndHevNxtsuKIq/RmuM+0n80u9Rx3NuUnEjTbcXm3X+lF0Jnvh2ejkSZr4djA8HeNpCjvx14HUP5aJ\np2vo7+nX3DXTyVFTAxauc/WGTRnaR2PWXHhzP/AR8PiEA19YI6FBoCkEqNxYqSwur8aTn2zA+l2u\noVfVqnU+t7gKAxJdS4hTgbESyoMKtjMVflNy++IeFTnzxfzYw+24J+tavLdnvm4dzK0tUK1aUZgS\nNQG/7enYAKcAAEAASURBVHs04sLj6hHF9hiB9sqsywh14K7tMaFqLw5bqI6qM2QQfGhI6cTwslJA\nPxpX+klFoCtJE+XzLFPKQvmIH++Ln1wzvHEGAYNA4CLAb5WO57AgaeSwoMpj+Wn68VunbWLjztCq\nbNxtuUZtVF6CwpoiJNjitX6PiXIRAobztf2iDIxTExElAx2vpaebfiRKlI+HyKADqn/UUVVq43Bu\nyFtYWYSh8YMwOHaA9hYMJGx7ziIfZaATPc7tJJg2f0svPM/83VS6Td3zlIdx7Srfg8eX/wff7fpJ\nrVVqwcEpE3DZmHPQJ9w1TNozfHPXjIdDrIsr9i9YEapq3KyrEEvjuicChjR1z3IzUu9DgIqJSmj7\n3jI8Nm+D2nHbpaCiw204bUIsMmJdlWIqUCoqOVhZbkl5dgeQPQ0JDRnncJ3gnImjog51tw7SyLD1\nrStIAcunpLoUNy/6O15c9w6KqorV/iRWzEg/FPdNuRkjE4f6vRwEIxp5IUnEggaNjoSTfqwg8DoQ\n3g3KzIP4UR5Px/vGGQQMAt0HAX6z/I6HJofiYtVTEhlsQULc/ko9/WmbpCeH370mBZURSKpL0n7s\nYWEvDw/RZb5GgHII+aA8tB1sXJL5laIrmb4nKaENfn7167hx0T3YW7l/Xu3U1El4/sgH0D86wyd6\nnhiKfBofhUlTc5Moe1v1ODHn8eX2xTjpg4tQWF3shnd+zkI8tvzfeO/4Z3FI6kSdF296mPEQE2JX\nVFrljicINRpLys4w3uJwP2QuAgoBQ5oCqjiMMG1BQBTTil/z8fRnm1HpcE2MTYm24qhBFkQHVSul\n5FohT4yMVEB7krKigWD+SAToaNg8WwdpiEmoaGxpBAWDtmDdnrA0GqXVZZj29in4KW+VOwpuvvvx\n1i/x9RtL8OnsV3Fg8rgWjZD74XZeSGWAeSc+rATw/aHjPR7EkeEC6d0IJFnaCb15zCDQ6xHgd0z9\nEhWhlrNWK99R37CRhmfROTxLLw/DUlezF4V6VHQ8iRP1eUuNO6LbNhT9ihV5axAZFK57S6JDolrU\nb5SDlXqRkelLfKInRW4WLP2fXvkKLv3ipkbl/NWO73DYWydjyakfoG9kko6zUaA23pC0PeVjFJRb\n/ATTtkTNPO4py8PJcy+uR5gkjvyqQpw09yKsPnsB4tWoDabhzTE+kqbCMteQ8FA1n63WUaXwivD2\nmPELcAQMaQrwAjLiNY0AFRKVNZXS3B93ugnT4AQrDurnUHsjhGnjQjJBAxOIFeKmc9a2u6K4aeQ4\nxMzT2ErrIA0xDTCPloxt21JvPrSUz91LHqlHmDyf4K7y5396HZad8bGad7a/1dUzjC+vxajSsBIn\nT9ceI+v5vLk2CBgEDALNIUCdQ91L0vNrQZ3aIqJGrYhZhwlxLj0kelzIkehx6UXh89Txcgg5aCo9\n6t5dZXu0bp235Qt3kIigMNw08Y/484FX6CFnkqY7wL4L0YU8Uw7GJ06e4Zn3eXAo3o3f3CNBGp23\nle4C7cBDU293E8RGgdp4w1O2pnR5G6PT+aC9fGblqyA5as7lVubj+ZWv4+rxF3nNi2DDOPMrXCvn\nRau9mprCsrm0vN1nPJY1y+EcNqZZ8qbDKNKN/D1wJqc1G85bOsavMQL1x3009jd3DAIBhwCVARce\nImliS9zJE+LUog9WTEqzYkpatWrN2z8cja1yVKpUsqLwAy5DHRSI+fI0yuxRio+PR0JCgj43NzG2\ng8k2+7gun31l8+q695oNR481BRuwdOdyXZZ8zt9O3gPi5Xn01HfD33ia+A0CBgHvCIjOIeFhw9Ur\n3+3Bm0v34Mu1BY3sEsPSXklDFxvCOEqAZKs1jV60icVVJZj+zmnwJEyUkJvi3rL4PtyihkozXEv6\nVuRuqCc9dSVJ3YIti1CshmB7cx9s/kw3cLYmXW/xNPQTGT3PDcO05jflYgPsD7u9bxDPuH7Y/bM7\nL97iFjtYUOoaBh6r6igip7fnvPlJnPh2AXCCGqFx/e9Rp+T2LEsJ48zdBYxSvVrHjAD2KuLUCfbV\nm+w9xc+Qpp5Skr0gH6IMSisceOB/a/DBDzv0eOYQOHDWuFCMT7XoIWokDHFxcdrY0PgIaerJEFEZ\n07jRMLN3jQZWhnLwN+/Tn+E6w7GFraq6CtvKleJuwW3I3+wel95CUONtEDAIGAS6HQKeleW+0SFa\n/l1Frq0EGhIJ0eW0W9KzJPrbmw6nfaTefeSn57C2YGOzGN3345PYVLilVcSp2UiUB9Mjadpdmust\nmPZj7w3n21K+QHNSr2ADrFXtndWS48IQJFgNy63hc4y3tJKLY7imDcRFuBrqPN+Fhs+09FvKuKZE\nzbdSS6tj4cewnnkY6ooK3PIwjHP1MlhnjQH69mPrMmqKCt3+LaVh/L0jYEiTd3yMb4AgIIpte345\n7n57FdZuL8b7P+7Cqm1lulUuLjpSEyX2rnA5UrbQkTB5MzIBkjWfiuFpcJl3Gt7OxkDKqrqqGokh\nSrG34GLVCn8yDIXPGmcQMAgYBHoaAtRtrJgn2l1D8vJLHSgp5xyXpjeplcq159kbJtJbMlf16nhz\nNc5azN30mVvnegvbnJ/oeOrtfqF9mwvmvp8ekeKenxWIOp4yMS/j1B5ULbnx0cNbhR3jjAhx4opD\nY3HSyDCMTevYEu2MT+QsnjgV5edeA1Sqvbx2boVt1ljUbV7nIqXz34Pt7GlAmOplKitB0SNvoyIp\nJSAJa0tYB6K/IU2BWCpGpnoIUFGwhernLQW4979rsEctI06XEReK1HjXfB0SJfYwCWHqrLk79QQN\nsB80tl3laMBphI7oc4hXEZJDEjE8Mtu0gnlFyXgaBAwC3RkB2jDRiXFhoped2JpXpm0b/TviJH6S\nsnyP1euai3NPaV6rKv7NPS/3me5I+2D0j0iTW02ef5NyhE/y2WTkHbzJPMhxfN/pyAhLaTbGARHp\nOCppqjt8swGVB+0vewjjImzITgpGP1VfkXqJt+da8hNyvOOY07H7xoeBkiKo1lEEnXwQnK8/A+uN\nvwci7EpGYMtDbyM/c7DuGZM8thS/8feOgCFN3vExvl2MgBiaBT/vUkuKb0RFtat7f2ifEJw8Wi32\nYFU7baseJRn7zWFpMpShK0lDF8PW5ckL9helnQoSo6Yclx6/cdAfoAYtNOVt7hkEDAIGgR6FACuu\nyVH7F6HZuLvcZ2RCKtPs1WnJpYenaNLEZyhTex31vM1iw22DroDd1vSqcIfEjMMpfY/ttKHhbc0L\n86DzoYhHuFpl8L7BNyArNLVRNAPD0vH37OsQFuxagVZsXKOA+25whMea3VXYVRGC0Mhon41+kREk\nTGbPqAPx6z0vARVqb0qVXvDfr4d6oVCdkom1f38NJQl9dN46e7RJc5j0hPtm9byeUIo9NA9U5uxh\nevnrLfhqdZ4rl0rBTVRzl8Ynq/HHFld3N0mStOCIAuyhkHSbbLEcWC59IpL07vYPbH0eS0pWqO1t\nXQY6PSQZV6SdhSlxB+iyk3lnLRmibgOAEdQgYBAwCOxDQOwS9Vxfu9KNNgtqap3YnFuhbRzJS0cq\nttKLQHs5O/VILNj9bbPYJwbHKr07odlhgc0+6OHhmR82Wo6MHorHs+fguR3v4IeyVSivrUBKSB8c\nEzsFZ6acgPCw/cuke0TjvqT8depv4bYlWF+0GQmhcZiefojeCL0zbAKxZx2CC0cNjO6PJwf8BV8W\nLcbail85eQvDIwZiauwkJEQl1FuQw52BZi7e+G4XisodyEwMx43HD9QNvGLrmnmk2dvEgXLSrrJx\nmPOqWN4Vam5TdUwiQvaq+cMKZ+TnoiJtAKpVXiL3zW3ujVMVmgWygx6GNHUQwK58XLcQ7dkJy9Wn\nw3nfC0C/zEatOTqM+ugtFxwLXHMXnCMnNArTlXloLm2tRJUhoWIItrjGfAdZLZiWBWRGO5Ryc+1K\n7tmzRIViXNcjQOVOw8AFKLgYRWZMBv6SfhVyq/KwvXoXoq12ZKpWO+4rxZWhpAw7wzj6Ax2+q9wI\nccmuZaipU+Pik0YgJdI1zr+75skfOJk4DQLtRYDfmGW92uvtlSfgvPVRjn1qZMe0rdv0Cyw3XQjn\nP15Xk+BTG4Vpb/q+eI72iXoxLITEyYrtRbXIKazWFV8tewcSET3D89TYA3Fi0hF4N7fx3KZQSwhu\nG/xHhFnDOowN02IFnkSDujy7eiBuslzinrskfrExrjnGtAcNCQPzzWPJrp/wu0+uBveVEmcPjsA9\nB9+Iy8ecq2WVPIq/r86MV0gT7RVXmyWJnRk8FYdVH6STIemgrZKVaD0baRvKwfzw+Z1q/jUJE93g\nvhE6DabTkXzwWbGtJEwhWzYg8fpT9WrCUAsv5U2chsTvP0fMonkYtisHRX/9t+JR4R0iaw3z19t/\nG9LUTd8Afpj8aIJOm6y7Yy2zJ6Lu6blwjj6g3kfprKyE9ZozgeXfAScdAOcb38I55kD9AQdi1pkv\nut2FFQgNUgqmthqTs0KQVxCCgXG1qgWqRnVzR+m5S1TUUuE2hKltpSk4F1eXIMgahAg1LIGuIwrd\nUwKWB40ky0haUcMrwpFak6LfPZYb/WiEPJeF94wj0K/1N6gmVd/yzd/x8LJn1SpJak8M5Yjh2YNn\n47HD70JUiN1nmAY6HkY+g4A/EKD+wMofYPntgUBsAizb1cpvJEXh+4eD8Vt0rvwRtotU46Dao4/2\nsGZhTqNKuj/ka22c1AskEqyAT0wPxZjkOgxOtWv9KPq4tXE1FU4q/tSt12ZciIEh6Xhv7wJsrdqJ\nEEsQRkcMwbkpszE2ZpTWzQ0JTFNxersn+WF61ON01PncWJ1lxryShHALDOr6pno7mO+1ezfgqPfO\nbrRseamjHFd+dZse/nfxqLO13WiPfWoK24bxSF4oLx2x4TXniNFRdpkCQHvFvDWMQwdU/5ge5/P+\nvHX/fk+Zau4162u+cEyXZR3x0zcIueYMICoW1qJ8rL30TmwfMgYjouOR/PFrCNm6Hkl/OBpVz86D\nNS3TF0mbOBQChjR1w9eAHyWVEnthKl/8AvbZ4/XEP+u5M1F3179Qd8wp+oPmOv22C47Ra/Szi7nq\n2ntRO2Q0QtSz/PCa++i7ChLJF1fGe+qTjUiOC8dFh7nGZ08fFKwUkUWRJLtWwEKY2OITaPnoKvxa\nky4x5sEd3O//8Sl3y96EpFG446BrcUzW4R1+N0Sps2xoaIRA0ZjSmMhvGiUaIBpa3utO5UgMaQQv\n/vxPeG61qsB5OPq9+Ms7+LV4Gz777WualHanvHlkxVwaBLoUAX5LtHXVg0bA+qcHEfbY7cCqH2FV\nBKpWVQYtyf20PrPMfxe2P53nWoa5vBSlb30Pm7KPoou6+vsTOaSXYGRKqLbfEWrDU1/IJvFL5Z72\ncVbtDBwReYjWufSnH3tL6Ee96623pDWFLmlSf9MJSSLRENJEP6YljZueeWXZ0h7ctviBRoTJM/2b\nv/07zhoyG/YQly3xjMMzXMNrxl+h9qa6b+kTeGPDB8gp2YF+9mScmj0L10+4BJGqJ0vi4pllI8SO\n2BArykcnZJf54bU3wil1s1Xb1LLgytmUbUuxs227Vr+r+mY7/zFP+ti9AyFXnwbYo8EeprV3PI+8\nxGSwJDaeeB4c/Ycg/ck7lODBCD1rKhyfb9Z5lfy2M3nzmELAkKZu+hqIwikNCkHxE3OR8qffwRKu\nlMqci1G7biVqZ52F4N8dDqUZ1a52pSi4/HaUHnMqopRC40cfaJVUKhoqlS9W78Eb32xHrfq9YVcJ\nvt8ciXFprko1i4rKVyrazAeVgFEErXuJ+c4Q56u+vA2P//yfeg/9kPszZn1wHh6beic60qonkYoR\nopERY0QDxPTpx7KjYRLDzfexuzjB8Xs1HK8hYfLMw8KdS/DS6nfwu2G/9WpkPZ8x1wYBg0B9BKgz\nWBEvPeoURKhFB+IfvknVRFXFdfYEOP7zGazz/wvrs/e7VgxTi8vsfOx/sISGw670DfVLoDjRe7Rh\nJC7V1WqPo3IrftlUipljojosJnWokCbaUupd2ko2rjJt6mIZYsb7Yj+9JUxdx6HH/13/EdYVbkJC\neDyOy5qOYfHZ+jHR80KKeBZyQHkoA9Ph2bPOITqU5frJtq+8iaDT/zrnO8zMOkzH4TXwPk++MxxF\nccQ7p+PH3JXuR7h/1V+WPIx3N83D5ye9gdjQGHeckheRm3lhPHS8J/cZjkdTTvJVXlWDX3ZV6CBp\n0QoHS61+prnnmoqrqXuMn3bU9o/blFA21KpepnU3P4GKSEWG92FM/HMPOgJ1qZnIvO0CXf9zrliK\nujGuUUgdlaEpuXrTPUOaunFp8+XnR1SiJgIW/+1V9L/vGoRuWg3bf/4B2+tPq6YN1UpSVYntc55E\n4bCxiFQfE8PTBcqHQ3m0IlCyvfHNVixYuW+jPJW3aYOjNGGS1ipRwN2xot3VrxkxpgH4bOvXjQiT\nyMYw1359J47OmKbmIaVpI9GR94TP0tCwvFh2UtZMT4wQw3QkDZG9M8/6fVWG672NH7eY7P82fYLT\nB/2mw1i2mJAJYBDowQjwm2NlcOekI1B+xzNIu/NS12phl88G1IgKToCvSs3C5hsehkUNFYtS4QNR\nr1AP0p7RvfTNDizeUKjlPCA7EYnRzQ/5ak3RMr8kKCRE1K9MR3r36UdCRSJAf15TluYwEl39/qb5\nOO/Ta1FQpZa13uduXHQPLht5Dh6edjts6o9xiJ5n+nxWnPjxd8O0WJ7cAL1MDcNryeWXF2qy0Fqi\nx7hvWHh3PcLkmcaKvLW45qu/4Onpf9dyiWw8y+GZDz4r9z3jaXjNZ2hnV+YUw7FvU9vBfVz2zxve\nDeNp7jfjJ2kqUqOGoOYv7coezW4w2FVZS7nTv6KiAkUDhmLzo+8jQi06EqKuIxQmLCfJa3NpmPve\nEeg+zbve89GrfPnS8+WnAqFipAKsUcpw9Z/+gbLhE4GYeP0hQY1z3Xj3C8jLHukOK4QjUACjEiiv\ndOCRuevchIkrCx2dHYIJKS5CRZmpEHgwv1Q+zL9xrUdAlO0La97y+lBlbRXeWPe+u7XQa+BWeMq7\nyjLj+8qyFBLVXRU4sWTr7Z6yvS0ikFeR754YzeeMMwgYBNqGAPUEdQZ1P897BwzDRi6zrOybs0Y1\nBMYloSJ7FFbf/Dgc+wgBw1LfBJKOEV0oenBUmhpapRz1wuJ1eR3WuYyfBzGireRcIm72npioCJk6\n4uLidA+XYMOwTTnKw2PpruU49aNL6xEmkZcjFeYsuk8TBIaVvBFv6nrPQ+TyTIvPkFxwA/SsFvZ4\n4nOZ4alufPhsc07iLasqwyvr3m0umL7/+vr3UVxV4s6DZ2DP/DBPrX2PmD4J2y87SnV0jGdQomse\nGzFpCgvPdL1dS751GiqdovGTEazKWXoPOa9MDpY9h8Y7klNRoRYI4zPyvLc0jF/LCJiaZ8sYBWQI\nfnxUvlSO/DgilKIc9M/bEbliMVCoKnPlatO8xBQMUN2z8WrHaB1GzSEhwWqtAvB3xqk02Sry6Lz1\nWL29RCcXGWLBsYO4Qp5rGCENAPPJg0onUGTvKDZUYHXOOny1bTGeUfOL3t7wodqUsMAvik2nRQOl\nhkL8WpTTougbCjZrUuBLJSvGwvPcoiABGECwJGnqF9qnRQnTwpI1lnzXjTMIGATahgD1BXU+7Rbn\nQNKOxe/ZjgG3nqfmc8TAUlwAS2kRwlf/iOxHb1HzVFzzKGW4GJ8PNEeZqEcGqsp0aLCrCvbdBt80\nrghetJckR+76gcKOmNCeSuW9OVwoG+0yh7FV17lWf2sq7EPLn0FuWV490sH0PY+mnpN71Ik8Tko5\nUm41eZ4YOxJpwSn10mky4L6bJC2bCragrMY1PK65sGwgXJ+3SZOc5sK05T5x48H0jx0RhdPH2TE5\nMxjxkS7SxDIhNu118izLj98DvwWSIx4kTixrljG/E94jgRLyxHLnd2RcxxEwKHYcwy6JgR8QPwJ+\niJGOKmTeeDailn+jmq3qkHfAdKy4+n7YKkpRFxKK9BvPRPwytdKK+tBaUpidlRkqFypMVuQPHxKt\nxvxakGS3YdZgtfmf3VlvsQfmsUeRJZXvn/asxKiXZuCwt0/BRZ/diJPnXoz0Zw/E/T882Wrj0Jay\nEqzjQlyrHHl7Ni4oxl3RZzkZVx8BeXeP6nOo2lw5rL5ng18nJM/Q5Un8DZYNwDE/DQKtQIC2TiqK\ncT8vQfr1p2u7hrparLzyb8ideLi2e/aVS5B13emwV1VochCoNkP0R62y24OTQjQCW/IqkLPXtdFt\nKyBpMYjUD4gBsePB65YwEdlolzkn05vjaqELc5a0m3RQRh6npR6vlklXI2SacH1DEnDLwEt1OMre\nkqP8JC1hTheuLYUPgxqlowiir3UzRc2Ks2LKABeJ8VVjNTFgfYgEifPihBSRIEs505/kiUSKYUiu\nxJ94G9cxBFp+CzsWv3nazwhYVY9S5OmHwJa7A6iswPbZF+Hns/8PezMGYsWcZ6A/EbVEd8QtFyLk\nwzf8LE3L0YtSXrhmD1ZvK9KV874RtThxVLgmTHERNr2cuAwl4MdPZdBTPnbmf1PhFsz875lYnb++\nHmDlaqWfG9R48Qd/VCsg+rCSzTR50JgcnjCpXpoNf6gRzzg8cZIOy2eMaxoBvo9JIYm4Lut8Rfib\nVqPnps7GqKih+t1l+J7yDjeNiLlrEPAvAkFqhbyIG8/RCz5YVEV3xc1PITdrMFaefgW2nXKZtn/W\nwjxEnHYwrKWulcv8K1H7YvfUBaOSbe5IPl+V2269Kzq+SvWeyDXPkpac3Yl5uaDt4VyoqhrXctte\ngqK0qlSTDj7TVkcCQDIRrhbt+EvW1fhj8lkYEpaFGLWPX5ra/Pyk+Bl4Ivs2ZESm12vwbU6PSr4p\nix2RGBkz2KtIQ6L6I94a67a1fL6jjnG8tngX1uypUyviR7lJi68arJl31ocYH+tGPCRuIcQ8e4aR\n4Zji39E89vbnzUIQ3fQN4MdJ5RB01mF6JSGU7EXOdQ9g59BxSl24XKVqYVh1z8sY+uC1CN61VS3J\nei5qFJlyTjhEB2hO+fgDElFoXBXvrW+3Yv6KPYgMteGPMzMRppTAgMRglR+18Z9SAmwdYReztI7w\nY+8JjhjoYQ+LH0Z+1f49HBrm7Y4lD+HcoacgLlztv6Dy3tFy8nx+ZsKhOCjmQywuWt4wWf37tJRj\nMSA8s8NpNhl5D7nJMmFrHo3VcX2mQ80UwAu73sPqio16V/sBoWk4JfEoHJtyhH6Hpae0h2TfZMMg\n0GkIiN1wLl+CIO5JE5cIR0Jf/HLdQ6hQiz9E7ms53z5jNuoyByHj/mv0qmJBpx4Cx0er3KSh0wRu\nISHqYh6s1HLIVHqMFYmRNuSV1WLpr8U4uaJa35dwLUSnCVKNswb3L30KT69+FZuLtip7GoqjMg7D\nXYdcjxEJQ9qky6VeweHHQ6IGYEXRWq8iDI7or20adSGf9bQ13h4UDGjj2SNSVVWFk5xH4+ioqZo4\nUsfSjz0prA+wZ4V6tDXxUw66KzN/h8t+vh01ai+9hk71u+HqrHO1zA392vNbcFu3owRfrc3TURw2\nNAG/nZik6zQs69bI3pq0GY9nnaipeHmPh2DRVJjWpGXCNEbAkKbGmHSLO/wYWAGvuPNp2K88Gdtv\neQJ71V4WHNNNBcaPioqvSimeVbc/jaGP3ISq486ARe3TFK56HKiAOsuJQimvcuDpTzfplWWYdlWN\nEzsLqzA02TXBlx82FSWJU2vGXneW/L5IRzDgsIf52xZ6jZKb+n2x9Rv8ZtBR9ZSj14da8CS2UtG/\ne8A1eGTLf/BhwVdwKINLF2kJw5nJs3Be+in1Wq5aiLbXeRNHflt8P0nsadAPcIzF8JBsPdSUgBBn\nDokQ8i/fozFcve51MRn2AQLsIa9UixnV3f8qou+9BmtufwZO9Y1FKzvH75C6lZXu/JFqg3e1QETW\n3Zei+K//RrCyj/xWSVACyYlMtHXUDWNSq/HZemWTrRZszy9HdKRrdEVLMjPfjloHZn9wIT7c8rk7\nOOfqvLf5E3yasxDzTngJh6RO1BXo1uofsVVnpc3ySpqmJRyI5OAkd8XcLUArLkSPMv/Uk0yTepM6\nlfUaYiQNqCROvGY5essD/SRexjUxdgzu7H8VHsh5DnmO/Y2UCWr4+f+ln4sDY8fq94dpybOtEL1R\nEMrOg3J/tEyt5LjPTc6O0eXLd1TSEL+Onr3h4Bl3a8N5PmOuvSPQeTVn73IY3zYgIB8pjUlpSgZ2\nPveZJkhcDIJKhwqGHykr6OXl5Xr5yU3XP6D9otWHLc93xgfFtNgjtqewAo+pBR9IkugiQ6w4eUIs\nspNcS7BSyVFmnqkcfa1k2gCv34KyvGjcix2uRS+8JZRXlq+VMPHoaDnxeeJJA8X3Iy4qDlf2+z3O\njpuFTdWqB9Jpw6DQLMSqPR9kQikVPZ/raNre8thd/YgJy4VYskz5m98cy5aO2JE0cSIuz0Kaumt+\njdwGga5CQGwVGwCLxxyEbc/MV4tcu/brk2+LYbjEMm1dacYA/PLcAl0Rj1K2TkhVoOkx2jjqBfag\njEp2DYObkBaOPnaLe7iYN5mZZ+qeJ1e8WI8weZYTF0L4/fz/w8qzPkVoUGirdTnTpb04MnEqlvVd\njVd3z/WMVl9nq9EINw24pEO2mumIHmV61KEcFsj6Av0EH95vLfHgc8SWhJTvx1Q1HH1U0GAsK1+F\nvJpCJAbFYnTEMMRHx2t/hmuJjDXKfBM3WBY78suwfKtrafZBiaGIC3P1eFEmHsb1DAQMaerm5SgK\ngh8/D1bkqGz4kfI3lRIVDltBeE3lRNcZH7EQpnXbi/DkpxtRUuHqJk+wW3H0ICsSQlzGgnJRZual\nM+XrzKIXLGj8+6sx2quK6s9naihLZliqLjMxIB0tL+LK94CkSCr6fD8SHYk6aV7TjxV9vkNipBrK\nZX67vh2+qzTmLBdiRQPNsqXj+0w/Wc3IF0bZ4G4Q6I0IiN4T/UXdxO+L35YM2aJu5TfI+6x00wXy\nN8c8SX6Yh9ioakxUNbHQUFcDmUOZyRCVJ+ZL8t+w7GkXqG/+s/rNhl71fm8q3qpGLXyLGZmH6ria\ni08e8pSNOuzSfmdhbPhQfLT3K+xw7FEbqNpxYORInNBnJvpE9nHbbT7XUtyShpw90yIerANQj4rN\nYxmyTHmmf2vjZ3jKzh4s2jo+Ozn8QH0tfuy98uzBEpnac6a8TOd/S3fpMmMcEzP2LzDRWrnbk7Z5\npvMRMKSp8zH3SYr8EMV48MzfVDpCPpiIKBveky5vVo6pRPztqPB5MN25P+5wE6bMWAumptcgKtQ1\nkVGIncjakxUM8aByPSn5SK+kaWT0YGSH93crYF+Ulef7wviEQElFn+8IKyQ8aHBYHj25LDqKqXxD\nxEq+Q5YtHf14j4fBsaNIm+d7OwL8nmgn6Egy+E1RX3k27PAeD4ajnuW35+kfaBh66mNWupmfgkoL\n5n6Xhy15Obj3rDEIVaMxmnLMH5/hSJJfS7Y3FaTevV/2bsC0fge3WhcRb+o1NqIxjYOc4zE6dKib\ngBDj9sw1qifUvh/EQQ6WH/PGQ+7xTCfnfY81e2I4eT8ov7w7JNPUz/Rj3mjnpKeS91obf8OEpSy2\n5pWpOWmuXqbUaBsyop06LaZP1974G6Znfnc9AoY0dX0ZtFkC+QBpGPhRUuHyHq958NrzYDhpvaF/\nR5REa4SlIqHjog9UuieMjVFd1xXoHweMS6rShk9aeqS1UORuTfzdOQzzObvvUfg290d8mv9to6wk\nBsfi1oGXucuxUYB23pD3QyoSfGdoNKSiL4aG7woPhu8OTt61hrJ2hvzyzvJMXEUWz2+vM+RomHfz\n2yDQUxDg90PdRMczvzF+b3LI9yXfnHyH8pzcD0Q8mAfqYTrKvXDTXvywr+L90bIdmDWhX5O2mhhQ\nb3M4cGxwFPKr98/XaSqf0Wo1OjZeMo2W8KC/yMWeGjraAw5/lIZXIVS+6qlhGiKX6FC5x3NbHePi\nuyINWjyzcZB1IOaN+SHuxIPhGL69Tsri3e93uPX/IWpvJsbPg2kxTeN6DgKGNHXTshTlxg+SH658\n+HJmthqGkXueYXyZfcrBo0qNL3j2s01IiArG0SPjEIxanDUuDLWOCtUS6FqGkwqXrT1ULB1VXL7M\ng7/ikrKgoqYSn5N5BUaHD8ZH+WrYQ1UuIm0ROMA+EmerxRgG2PvrFlPBxVflJTLwzLiJPcuLTvz4\nPvkqPX9hyXhF7qW7l+Oe7x/Dol1LUVNbg4l9RuP6CZfgiPQpOh/+zgvj5yHySJ79na6kY84GgZ6O\nAL8l6ise/M7k25Iz89+aMC3hpONe8hWQp4ZZHXuqDu6ZBm/oMGvUyqPvvgjnlberybl2tzz6gVb+\nk3hZqRZ3+NA4fL2+UI3KcOCDH3di8uB4JERH6Eq3hJewlIPEaVrSJGwqy5Hbjc72oAhMiBmhw/KZ\n1jimRbnYoEl7wJ4lEjRpeKXd4D3aMdozX9qMhvlsjbxNhRGZeGZeKLs43pOjI+kRT8ZLQjY2PULt\ns1WBqBAnOJqGdRtixHfWuJ6FwP4vtmflq1fkRj54OTeVafGTc1NhfHFPFEhecSUe/3gDtikFQpdk\nD8LQpCDERIUrg+Oa58EeDipkXytcX+TDn3FQgVKRctgAjdCsuhmYETnZ3YJHYyTDHqSVzNflxvh4\nsLxoOBo6X6fXMH5f/KbsPN5c9wF+N/8qOOpcKwAy7vlqxahPt32NBybPwZVjz/epQfcme3fAzZv8\nxs8gEMgIyPcl56ZkFT85NxWmuXu6Ur3wE1guPMa1D1TOJtRedINbf4jOwYrvYbnoONX9onptVGS1\nN/7dHaa5uJu7L3K69XBdNaYNisD7Pxephsc6vPntNlx4xAB3D1FT8ZybfhLm7VANb9V7mvLGFRln\nI9Ia2SZiJ3JJLwntEgkaMaATAsszw0r4JgXowpuUS8gRxaD8nrJ6XrdXTMbJdyc7wYpzJ4ShvLpO\nESbXfLveVr9pL4bd7TlDmrpbiQWgvFQcVKobdpaoBR82objcNSG+b3QI0mI5Kd41f4lKigqYhyhk\nXyiuAISkkUjMJxU4885hD1S0xIArPsmwBxIq+pE4ybBFf+HTkXhZ3txn6sPNC5BTsgP9opJxXNYR\nSAiLq2eUGoHggxtMm8eOkl24cMH19QiTRE//676+E1NTJ2FsnxHtrtRIfOZsEDAI9FwEqC+oj6sm\nHoqww46D7eclwDP3w7ZuJWr/+hwsqjeFYSxqc3jrnIuBaDXOvKIMpRdcr5c1Z+WYrr06VZ5jGkMT\nnFgcGYTcshp8u6EQhwwpwqjMeB23hGNatCW0H/Gh8Xhk8M2499d/YWnpKnppFxsUhYtSTtFDwdtT\neWdackhaErfc95RH/ALt7Cmj57Uv5GR5fb12L8KDneinyiwyXNn2SKtuFPVXo6cv5DZxdAwBQ5o6\nhl+vf5qKg4Tp219y8eLCHDVEytUN3j/BhlmjwnV3NZU2yQKVL1uneBbF25sAZJ5p6EiIeE3Fyh4n\n4sffxIj3eAhevB8ojmXN44U1b+Gqr25DcXWpWzR7cAQemDIHF4480+9lS5L58pr/gvtZNefq4MSz\nK1/Fw4fd4Xd5mpPB3DcIGAQCHwGxYdTF+bc9gYSHbkLE5+8Diz6F7YxDUf3sPAQ9/yCsLz6qVqJQ\nq7sFh2DPQ2/CarEict+qtO3V03yOB+2itpPBNkwfaMMbP7t6dl5QNvXOFDWUPWz/ggIMTxtKG8Fh\nYBnR6bgn41psq9iOLZU7QF08NHSQGt0RoyvwHRnVIfIFfil2roQk2dxT64WFv8JRU4cp2XH4zZgY\nXY7Emw2gUs/pXMlMav5GwJAmfyPcg+MXY/PekhzM/Wm3O6ejk604MFVNPEWdViIkCp6tXVTEvdGJ\nsRMsaPRImKiA6UfDSaw8iWWg4MSyppwfbP4U5392nSZPnrKRwFz8+Z8RHxaL2QOP8ZvBoAwcQ74m\n3/uS7ZRtbcFGvRAJjRcP4wwCBgGDQHMIUMdRt2w6/0ak9BuAhBceBNQwvaDLZsO65ie1WkMIqjIH\n49frH4SFIwKULvKFo+6n3mdFmxXutJhKjEkJwrIdDpRX1SInrxSDUmJ0GKYntkJGJtCGUL+FlYch\n05Ghr+nHEQvcQoJxMn4+F+iOZUC3uzwXq/LXISIoHBP6jkKwxbWIRSDITxtUU1OLZ9SoGhImukHJ\nrikHtOm0790F70DAs7vJYEhTdyuxAJFXKtFcHQ9Ol+KwKaU8OcOCQbHViAi369XZ2GsiJIFKuzso\nbn9CLBjwTHJEHHkILp7+/pSjLXGLjOzh+fM39zYiTJ5x/WnRvZiVOVOXOe9LvjzDtPda3jlWbCIs\nYS1GE2kL16SJhswT4xYfNAEMAgaBXoMAdRRJB+0UdQV7nHKOmI3KxBT0u+tSWNevVBsnhaJk/FRs\nuPgWHc6uwjGsVI47qudoCxgfe46Y/uSMMtXkaMGMYdFIioBusPLUYUyP8jI8r/ksl9WmbmReSJro\nx4PXvNdRGf39QjB/BWrY9+Wf34I31r2v8u8iUHGhMbhj0jW4fMy5Og9dmQ/KSJL6/tLt2LjHNdJi\nZGoEhvd1NXZ6EqaulNPfZdWb4zekqTeXfjvyTqVBV1BWjTqlPILhwMS0IOzKC0Oq3YG+4Q5FlqJ0\nCxdbuUiaaBCoQIwS2Q+4JxZyHcgY0VBsK96BNQUb9meiiauNxVuwseBXNTF2gLtltIlg7b4lRmtK\nwkQ8gZe9xjMlboI2cPLOeg1sPA0CBoFeiwBtFMmFbK4auXkdUh+9BbDHANVq5TjVCBi1aB7SBg5D\n8UnnuRsExbZ1BDjR/6xws1eIxIf69qhsh5ov4yJMa3eUIKuP2pA1Yv+y4UKOeCZp4nMyaoFkjvHx\noIwME8iOOrq8uhwz3j4DP+Xtn5tFmQuqinClGg5eWFmMmw78Y5cRQLE9q3IK8d4POzScEcFWTB/k\nGjHCG2LDpUx1IPOvRyEQ2F9Sj4K6+2eGSoNKedPuEtz11ko8Nm8DKrl9uXJTB9iQFR+E2NhYJCQk\n6DNbuai0qbCNEtlf/oLjF9u+xTkfX42DXv8Njn73bDy67HlU1FR67cnZH0vnXYmxKCjzvh+ISFRY\nXuR3sjIuagSmxx8kSTY6j7Rn45ikaY3umxsGAYOAQcATAanoCnFKWPYNMv58NupCVW+2GkWx7PpH\nUR2boH6HI+mVR5H21F0IVwTLl7aNMtBOkrhxdVU2OHJ4XVhYBOavLsL9H6zHo/PWKb2q+l/2NVzK\nMyRMJFt8jgsJ8ZAeJpKn7kCYSBL/ufyFRoTJs5zuWvoIthRtc/e6efp1xjVxzy+txNMLfkWdbju2\nYGa2Iro216a53YGcdgZOPT0NQ5p6egn7KH8kS1RsS9bl4b731qKwzIGteeX4+pcC3cpFJU+yxIPX\nhjA1DbwQpjnf3ofp75yGl9f9F9/vWa6XyubiCpNenYXdZbluw9h0LJ17V2ROCopHlC3Sa+IRtjAk\nByf6jTSxokDjxArLnP6X47i4w2BTE7I93ZTo8bgv+waEqiE1DMtnjDMIGAQMAi0hEPrms4i89Q+u\nZcdVJXnZLU8jv18mltz4KEpHHKC6EhSx+eID2C89AZZ95KWlOFvrL7qNozP2z0cKw4bd5doerN1e\njJfVwgO0ww2Jk+hEEijqRiFL3UH3sW7BXrL3Nn3sFarqOrV/1aZP6+Xf6wM+9CTexP2btbko2rc6\n8IHpQegf69SElWXmq6GaPhTbROUHBMzwPD+A2tOiFML0v++3Ye4ytR/EPmMxqb8dk/q7xkyzpYst\nWqKwTatL47dAyMfb6z/EPUsfaxxA3fk5fy3Om38t/nf8c24l3GTATr5J2S11FpyUeiT+k/PfZlM/\nMWUmbHWuuVoMpJ/zEWlhBUDeMb5vsfZYXJt+AU6NPwqryjeo1r86DInoj/4RmYizx9Uj7s0KbDwM\nAgaBXo0AdZTWU1/Ph+2uK4H4JFT1TcMv/3cfqsLCIc1Eay67HYPmvYaEd54BVv0A262Xovaup9xD\nsjoKoqd+o56jDeX8prMO6oOH5+egsLwG83/ejX5xYZg2sm+9BiFfkiNikVuxF59v+waFVcUYGj8I\nU1IPgFpOx+cNUEyL9QvmM7civ0UIdxbv1gSL2HSmo4yc03uwqu+UlkZj7Y4yTEp1qmGadrPEeGcW\nRACkZUhTABRCIItAZVFZ7cC/P9+MpZtcw7OsquF+6oBgjE9TktfV6sq9TDalsufhSyUeyPi0RTYa\nCLaoPbxMGV0vbt7WL7B67zqMSBxSzzB6eaRTvFiul2SciVWF67C0pP64cwowzj4Ml6ef7dfy53tF\nYs6eTA4FpePvtIh+uuLDllbOS6Afz/xt3kcNk/lnEDAINIMAexEqx09G8MkXIXjJ51h961Owqop5\ntNIf7EGQiv3W35yDmn5Z6Pvc31D+2/MRpJ7zpX6hfhPbyTTpgpxVOHFUJF5aWqy29FBbPny9FdHh\nQZgwKNGnadM+8bjn+0dxtzoqa6vcaA2Pz8ZLRz2CMYnDfUYSJXLmk3axX3hfrCveLLebPKeEJmny\nwmd8iXuTiambxINusRphMywlQvc2jU+1Yni8a9EQGQpJG9QZ8mhhzL8uRcCQpi6FP7ATp2KiMXla\nLa25fEuRFjbUZsH0AUB6tEMZk0hdYZXepZ6gNKgka5w12KWGyHH5bC55SieGTP9oxz/GSyy52iB7\nk1pyS3cux9C4QQGhiJl3Gf5hD7Pjb/1vwHt75uPLou+xt7YI8bZoTI2ZiBOTjlQTlaM1UWF4zwpA\nS/ltrb/Iwp4mOlZoSKD0Ko7qtxAqEiaGkSETOrD5ZxAwCBgEGiBA3UxbV60q7rkX/QnlZ12pFjhS\nWzIp/UE9Qp1C3V1RUaE3I8896AgUTT1GD6GLUr0P1DGMo6M2wlMsxkV7Kno0MdSBI9WCAx+tUwsw\nqQk1Ty3YjOvUKhGD+8X4xEYIBvd+/zjmfHe/pyj6erXa4mHmf8/A0tM/REZUP5/llenyIL7H9z0c\nn+9e3ChtuREbHI1D1QJALKvOcCLb/BW78OJXvyIjIQIXHJai3ws2xnFIHueReS521RlymTS6FgFD\nmroW/4BNXZQoK6OHZkdhVU4xokItOKJ/HeLCnGqyabSecCoV0+5OmJjfvZUFuPHre/D6uv+hrKZC\nz5U5MmMq7j90DoaplraOGEXBk8MQQiwhqtyb35iVL4VFra/B4QA0yF3thKjQOLBlje/EiTgSR0dP\n1caOhp1+nMvmbyMilQlWZHgtJIlGlxgTL96jUeN1d38vu7rsTfoGgd6CAPUJdQZtmugVXlO/Ubfw\nHg8u7U29wsOfjvEzPcpAwjYorhiHZQXhi80OVDnqsHj9XgxMtms9SNnb68Q25Zbl4e6lagPfZtze\nykLcufhhPDn93g6nKUmI3DzPSJiCIxMm45O9i8TbfQ62BOHPA/4Au83uvufPC8Hky1W7FWHaopPa\nWag2Py6tQVaCC3PaGI6w4Tsj+fCnTCbuwECg62tkgYGDkWIfAlQWPH7cVKB2iXBiYGIQ4kNr1PAA\n1epmrUKE2rFcVvfxdwW5swqFLVf5ijBNfnM21hXuHx5Qq+bIfLTlCyzauRSfn/QGxiaN6JChZDok\nQhPjRuKT3V83mz0aiLHRwzQhkfLoaqXMigMNBEkTHQ0GDTnJipAm+nECM8Pxnr8csZAKBdOhLMSJ\nTvzoz+uuxs1fGJh4DQIGAd8gIDqDeouOeppkhXqFZ+oS6heeWUFmAxF/089fFWaRifGzJ53D16hr\nR/UpVSusKn1nDcLRw+36vi90HeNesGURKmorvYL6Sc5XutGMaUq6Xh9ohSfjIZbE/5bMyzEgKA3/\ny/8cOxx7EGSxYWR4Ns5LmY2DEw5wN4b5U6+zbInHwjV78O8vf9U5sCkZzz4oSREmVw8Ty4WHYOBP\neVoBoQnSiQgY0tSJYAd6UjQWPD78cQfeXboToUFWXDEzA9FBNvRPCFZ+rh4FkiUOW5DKMRVHd3Wi\nIG9ZdF89wuSZn+LqUvzhsxvxzcnvuhWlp39brpneBRmn4MvcJaiqUxsDN+HO6Hc8YtSQN4YNBCcG\ngYaNBlxIEnuc+L6w/FnBYGWC7wTD8Rl5zh95kPh5pjyClaQpZ3+kbeI0CBgEeg4CokOow1gRpi6h\nTqFek0ox71GveTbS0I+/+bw/9I2nXLS51LV0kzPVaIWQIF2xr66pwzNfbMCRY5IxVA3Vo2urLIyX\njXl7ywv0897+lVSX6UUbiAXz31FHWRkPsWedgg1vpyUfj1nR09V2JpUIUuSQq6Ay/zz8PbKF5Uw8\n5i3bide+2aazxzncxw0LR3pUjfvdkPxT/rbi3VHMzPNdi4AhTV2Lf0CkTkXBo6q6Bv9RLStLNrhW\nsXEohbx9bwUS09VKZWpiPZWDVI55prLzheLsKhBEQbLy/8aGD7yK8UPuz1idtw4j+wzVOLRHUfIZ\nGtmh9kH4S/8/4p5fn0JRrWtXcSZO/1nx03BJvzPdRturUJ3oSdnEuDEPJEdsjSOGki/e92cloqns\nMm06OTcVxtwzCBgEDALeEKD+EMLEcKJPPM+85uFp8+Set7g74se0KBfJAnUtf3N4oE7XFoSnPtuC\nlduKsWxLIS6eMRAHDkrQydG/NY5x8iBpygrv1+IjA+zpuqeJxEJ0f4sPtRBA7ApJEW0KbQgb4CgT\n80FbQz/PrUxam78Wkq7nzfwwX3N/2I43FrsIE3uYjsoOxoAYh8I+0m2XKTMP43ofAoY09b4yr5dj\nURQFZVV4Um1WuynXNdcmNMiC2WNjMCJl//wQKjMqcJ6pMPyhuOoJ1wk/qKQLVAtbQbVroQtvSW4q\n2KKXX21P3okVnyPZZG/NoQmT8LwtE18Vf49tVbvVWO1wTIoajaHRg2FXy5jSaBDr9qTlLQ8d8WMe\n5OA7wHdHnNzn2TiDgEHAINCdEBC9JefmZBc915y/P+7TBghxEkIhujdDDRdbqer3bOB8/OMN2FtS\niaPHprbJbkgdYFjEIAyzD8Sa0o3NZuO3qUdpYiHpNxuwDR7EVPLHa5Ik9jgJaWKvDkkjD/r5yyYy\nT0xzYB81YiLYqvIJHDMkGFnRtSrtSG23mT5lbek9aUP2TdBuhoAhTd2swHwprijLLXtKtcItUBvW\n0sWGs3XFhpQI128qCSoLKmwxGj1BaTD/JE1BtUGwB6n9F2q8L84Qp4bMSe9Ke8qB+BFHtppxjDox\nnBU6w20cSJRkXpAMQ/AVzk0ZufbGzefkWcYr1+3BxDxjEDAIGAQMAt4RoI71HB7Iyr1epGmAWrTC\nGYv3VxapSr4Try7KwZa8Cpw/rb8a1ta6yj3jJhHhccfgK3Hpiluxt6ZxI+KxiYfhuMTpWt/7UudL\nXDLkTRoW2etDP9pN1kF4iJze0WqbL20Y6z5b88qQnRSi5nDX4uSx0aiprkTf8Bo9bJC9XBw+KCNs\nROa2pWRC9wQEDGnqCaXYjjxQUfCg8uUcJiFM/aKtmJZRg+gwi3uOCpUVFZe/WnjaIb7PHhEMjkg6\nBO/t/LTZeAdEpiMrNM3dysbn2qI4GZb40TCQNNFRAZeXl+syoJ8QKvqTQBHzjjrKyY0K7//hKXAS\nb0lVKYYnZOPSUefg6MxpHTaAbcGgo3kxzxsEDAIGgd6IAPWsHGKH2fBGYjEkXg1jGx6Kj9ZUo6q2\nDt/8koecvHJcdWw2+sZGeLVTEidtDe3RwMgsPJl9O17a9T5+KFuNstpy9Avtg2PjFWFKmq7tkj+I\ng9gRIUa0k2JjRUY5+6r8GT+PlTmFeHL+RlRU1eHaY/sr0uRE/zirIqVciTVcN2SyMVMaMom/cb0X\nAUOaemHZi7KoUwqDrVWzRsfqVpak8DocmFyJCNUNzpYVroRGRSEtQKLYeiJkl2aegUV5S5HncG3g\n65lHrmZ344CLvBofz/DNXRM/GieSIyFJVMbsvaIfcaZB4kHj0VEjQYPKTXKPfPcs7Czf4xZrU/FW\nfLD5M/xpwmW46+AbeiQZdmfWXBgEDAIGgR6CgNhg2g+xFzxn2Ctx8sggzNtQh71lNdhTVImyimrU\nRu0fIdIcBIyT9oa2nvYo3ZGOK6y/0ws+0IbQj0PKWR9gg56Qpubia+99yRttJOsonk78PO915Jrx\n1yqC+c6SHLz/w053el+s2YtTJsTrXiXmmXnlWYbL+1qOjuTBPNs1CBjS1DW4d0mqQpYcSlm8qBZ8\nCFLLwpwwLl6tsVqNU8eGoq6qQili17LRVJDSHU0l1lOVhRif1IgUPDb4Vjy45XksLV0JNc1Vl9Gg\nsAxcmXY2JsaOqUce24sH0+Ozkq4M95N7vC9h2psGBaexc9Q6cMa8K+oRJs8X794f/omDksfj+P4z\n3Gl6+ptrg4BBwCBgEAgsBMRWkCyxQk8bQn1vsZTjpKHAV1tDMDLNrvdT5EiSn7cWY1CKWn0uzLWq\nacPcMD4hTWws5W+SBe4pyHiZDgmVkCZp9OuIfWooQ8Pf/opb6kBbc8vw9Geb1FDGMp00V8g7YmgM\nZo6I0/mVPBIX5l/qQP6Sq2H+ze/ARcCQpsAtG59KRmVBBVhcXo0nPtmEDbtKdPyJdivG9QtBbKRa\nnSfCtWQ0W5Okh0mUhU+FCZDIqACZPypIEsT+0Zm4K+P/1HC2XOyqyUNcUDRSQpK1saA/w1GJdlRx\n8nkhR0xfnMQrZ7nf1rOU9Rdbv8HK/F+8Pv74sn/j6PRp2jB0NF2vCRlPg4BBwCBgEPAJArQfQnQY\nIXU3bYlNDfc+bgiUPbPoebPb1DC9f3z0C8LV/KYzp2Ri8pBEHdZT1/Oa8ZEo0fYzXpIxjkKhLREb\nyTqBr2ygT0BoYyRCmN77fpvaUmWH7mliFJEhVhw3PBwD1cKDdXU1Kr+ufDLfYqc98WpjsiZ4D0PA\nkKYeVqBNZUcq0dtUq8qj89arXa1dCzzERwYjMz5UKUvXsDAqCLaqiGLk756uLJhH5leGyVFRhpWH\nIbXWtQIRu+XZwsYWOBoN+vsCE4lDzk2VW3vvsbzZwrg8d3WLUazO36CNo+TLH/K0KIQJYBAwCBgE\neggC1L+WtSvgHDq6WVuhw6geIuRsgjMru9lw3iChrhbiRDvGa9oy6n7acfp//PMe1NQ6UVLhwFPz\nN+BrtWHrWYdmIS3BNddJ9D3PtAFi+2n32INFJ36Mv7vaCeItdrG0vMpNmIb1DcGUNCAipFrlzdUo\nynzykPqPYOStLIxf70HAkKYeXtZUFFR+yzfn49kFm1FZ4xp21i8mCCeOiVRd+Pt3P6dC5NFblAWV\nIfNKA8OeJF7TWHAfDBoeYsHWN/qRMPFasAnU14blrYfmqUnCIc7gFsUMV4aCwzC6Q95azIwJYBAw\nCBgEuhAB6l988SFw6YmwTJ6JusfegiUs3E2KtL+Sz1lUAMtRw9SFGgj++iKgHcSJ9osHK/g8014J\naSIEvHfi2FjEhjjx2S9F4Ea4q9SeTre8tgJTh/XBSZPSEWcPccvG8LRvPBgXHeXlfc9De3SDf4L1\nFrWNyrtLtuHMyWmICHZianYUViscJvSzol+42kBX4Ucb7znCRuw88+3pNB5rlsM5bIwbN09/Xusw\n+XlATBycCseGcTQMb353LwQMaepe5dUmafnxkjB9unwn3vpuO9SKpNoNTbLikDQHQi01WkFSafTW\ncbtUaGJshCSRMLnGiLsMEgmFtDxRmQa6k3KfGDMSQRYbapyuFsOm5D4oYawmiHzGOIOAQcAgYBBo\nHwKid52R0QgOjwDWLIP1t5NQ++xHsPRN1ZVnhnFu+gW2847k8qmAIk+1NbWwqqHzUlFva+ryHM+0\nU7RdPPTwutoKjEtxIt0egc82VGLjXmXbyOtW78FS1ZD68DnjEBLsaignJ1zUAAAsuUlEQVRlulLB\npy30tAlyv62ydUV4jbHCeUdBOd5Rm9Qu2VigxFDDDK1OnH1wX1jUHO4zx4bsG2ERrocicqRJwyH4\nnnmWOK3PPgD8/QZY/ng76q6Yo/GScBIG61bCMmsM0C8L+HAlnOpdkDBdgYdJ07cIBH4N0Lf57TWx\n8QOWHgeO06WiVO1FmJSmCFNqNSLCXPN4Gs5d6o0fN/NMg0PiSDzY4kQlykNW0KERYZju5PoGJ+HU\nlGOaFTk2KArnpp+kjSPfF+MMAgYBg4BBoH0IUIeywa00eyRK/++vQJmaN1xSCNuJ4+Fc9ZNuwKxb\n9ClspxwM2FR7dWkxSv76b5T3SdV+HdHBnjaMdkwOkijarghbNY4eUIuTRoahb5RrBMIBWTGoU4sF\nsZ7w3fo87CqoqGcLGKcc7UOkc5+SOs9qtYT4Qx/8gj+/8rMiTPlKCJdtK1NDFGsUQSUmtOscdh8X\nF4f4+Hh9LXWhpvIsZVtjUXWA+D7Ai4/CevXpqFOjUoifpO38fC6sp09xESZVxjV5e9z+nYuGSc1f\nCJieJn8h20XxiuItq6rRS46G22oxKjkIOZlhiAutQVqkIkwR9npLilOJNKUouigLXZKs5J/nhq6p\new3DBNJvyiutjpenqaVjq6vw7t7PUKuGgohLVwtc3DHoj0gO66uNancjhJIPczYIGAQMAoGAgFSc\nuX9S/uSjUBKdgJS/XALYo2H73eFw3PQwgu++CoiKAaoqse3+1+EYMATR+0Y2dDQPYqeoy3lN4kRy\nwEo9XVlZGVItaqXc4RZsKrVjbGa4HppdVl2HJz/ZqFZbrcPojBjMGN0XY7PiVRwuiSRe16/A/C/Y\n3/veGqxRQ+88XZaat334kEhk92WPD9x7TQlGMpKE5LKpvDJuHiTEZSecg6iNvyBs3uvAkq9gO30y\nav41F874RNj+/TCsj9+pVpaI4ooSyH/8bQTFJiBMjfZhvE3F7Smnue4eCBjS1D3KqVVSiuJgi9E/\nPlyPkCArLp+Zrj/4yVlBajUdpxoREOPuRZGWFVGyrUqkhwfq7opNlDOJMOdnRdmjcEW/c3Bc9GH4\nsXQVKp3VyAhJwQFRYxAXHddt5mr18NfOZM8gYBDo5ghQ99KWSgNU3sDhKL/vdQy44w+wWG0IvvOP\nmjA5ouOx6abH4YiNg73BM76AQGyY2AD+5jXJQUVFhR6WNjJCbV6vGlRJBBZtLFSEyTWEe8XWQvCI\njQjGgYPiccjQJAzsq0iAchKvL2TsSBys59DVquEzK3OKkKv2pDp8RJLOSx/Vi7ZG+1owMDEY41Jt\nSI1QUxFCuHx6mC4b2kWp8/AsZMlb/pgmpzqQEG897zokpGYh4RnVm5ifiyDVk1hzyoWwqt4nhIah\nJikVW+Y8AZsapklCLPJqscy/bo+AIU3dvghdGZCPeuWWQjy9YDMqql1K8LOVe9X+A67hZgzJiaJs\nfZJVckR59BAYuiwbxL+qtgofbv4cq/PXITokCkdmTsWQuIFaJm8K2ddCs0yllZFDENjSSKOZEZGm\nr8UvNjZWD0Xku2DeA1+XgonPIGAQ6E0IUMezAs5KOSvXrGRXRUShSg3nCivmMDHl1BymyqHjUB2h\nFhdS4dhw6Y9FeMTeUO9TtwtpYnqylDjTZbiDstQeTMF98O2GEvyyp0IP5S8sd+CTFbv1cfahmZg5\nOlnHozqj1NwgV1b4X9LZf8c/V0I8uAogidKyXwvUUYhyNaImWDUOH9Bf7S/ldGBCejhKSsMxso8F\nUdYKJV+NynuILhPaOeaZ9k/sHeVvTR4Yhs/woNt+2PGoUOQo7a+KCCuiFPTKP/Vwy9Ijf4uNF92M\nYJWOXYUVQuYfVEysXYGAIU1dgbqP02SlmAr6s593463FXPDB1RIzJi0Chw1x7eBNZSnKk0pDPubW\nKAwfi9ujoqMy57F454848+MrsKVkuzt/xPYPI87EI9P+gmBr0xsLugP7+EKMN5dKl2saS74rLH++\nD5y7RQItRsTHIpjoDAIGAYNAr0GA+p66lhVzrVd3bkP8n86EpaJcD9fKnXYCkr6eC/uK7zB0znko\nfOA1hCn9y/Bij30JFuXxPEicSBw8FzqiPaBdSFG9MUcPqsMhGeFYm+fEL7k1yCut0eIM6hOun+Hv\nm9XKe/372DEkNRpDU6OQmaSG+kfs37uQ6XXECTnyjIP3FqzcjU9V/Wbb3grlVX/+rUOtCrhyawGG\nJociXq0GPGOgTefJag11NxKzPHh4Yt1aWQVDsZvEj/Wtyhi1sVNIKKB6EVUlQMtVnpKlftq0fW2Y\nnmeezHX3RcCQpu5bdlpyKj2H+ohfWbgFC9fu1feUqsRBGUGqBUkpsFq2tLh6lqiYpbWktQqjm8Pj\nd/Gp0DcVbsFx//s9Cqvrj6Wm31MrX0awJRgPTb3NL4axqQxK2dJIUnHLmcqeMvE9oAGQVjd/GOym\n5DL3DAIGAYNAT0aAupc2NlytnBdz+Wy1clqkIk2l2HD+Tdgy+iAMTkxB+ttPIbggF0kXzIDj2Xmw\nZg/3KyQik9h+6n7aAR60CewVoy0geYpUoyXGJNRgfB8biuvs2F5qRVSQQ899Wra5UO/5tH5nCXh8\n8INLbHtYsNr3KRzHj0/F6MxYTdTW7yqFPdQGe5iyQaGqt6uZ+VGllTUoKK1GYXk1ilXvVm5xFXYV\nVWBnfqUefnfHqSN0Q19+iZoDtleRT7ezIC0mGMNTQ9U8rCikxLqqssybbBHCa/b68ZCRNWLrxEa6\no2vhguGFdJIwRfz0LeLnXIAaNQQvqCgfRSMPRPSGlejz9r9g352Dspse0sSJMhD3tqbXgjjGuwsR\nMKSpC8HvaNLSw/TiF5vxzXouq6kaPmwWTM0E+sdys7ZwXTnmh8sPngqDznzAGoYO/xOj89fvH2tE\nmDwjf2LlC7hqzPmqTDI6TYGyjEVZ80yjyPeFTvzEiJr3wbO0zLVBwCBgEGgfApqMlJYg5OLjgWhF\nIFQv0/o5/8Lu1EyoPglsnXESajMHIevhGwG1SEDwGVPgWJKndbI/9bDEzToAZaTjmffZsEbHOgLn\nPHGfQhKDBDW0LS3W1ctEYhUVYsHoNDs2qiF8ZfuG//O50koH1m534NAhCfo57gf1lzd/ppeHU6RD\nVT9samzf+P5xuGTGQJ3+gx+s1QTMI2C9y+KySlWngZIjGHGqRysjLghp0Vak2GsRZnGo+o0FajkL\nZdtcvUrMA0dR0PFa6j4dtXWe+EV9+BqC77sRTjX00qoW9Fj+5yewNzkN415+CHE/fY2IJQsQcdXJ\nqP7XB2qPrrB6+TE/uj8ChjR10zKkwtO9TEqZTRoQhR83FyBYEaYZA4CEsFo19Gr/ktlCmOTD76ZZ\nbpPYYhjkIX/kXfD/fNu3kkyTZ65a99mWr3Fe1Gl+N46eAjDPcngaS8FCzp7PmGuDgEHAIGAQaDsC\ntDkkG5aX1fwWOvV73X1voFRtchq1b5QHbUbBmIPgvPcV9L/1PD0PxqmWIa+bMtOtq10P+++/p96n\nXZA5rTyzl4akyXMoN4kH8zYg3oKkYcGoyKpBflUo9qgV1fdWOrG3tA65ZbWIVfyAG6XvLqpuQnjV\nq6WmWdcofMoVyWL8jDM0qPFwPptq5IuPtKml0UOQX1KBuHAr0qOduOTgSJSXlyuMqzVWNrWkN2WW\nQ4beMXHm0bPR0DPPTQjX4i3Kqhsdf1iE4AdvBlQPYo0q1zXXPoQStQ+T2nELqy/4M7IXvIM+bz6l\nJj39ipArfgvH8x9rOVpMwAToNggY0tRtisolKD9eHlxWs0R1aQ9LCUVMSA1OGBmpWrKq1I7XdYow\nxeolxTlnhV3TJE0dVRrdASbiQvdT7ko8tuzfWJG3Rq0QFIrp6ZNx1fgLEB/qGjrgi7wwLRpIGony\nGo6z9u6KK0r0MAjp7fMe2re+UvZy9m3sJjaDgEHAIGAQoE3gcLeyU/8AZ7+ByEvPhkMRDvu+IWK0\nw/Rnb05ZWhY2Pvo+oksLYBs9SQ2LUxvcdvIwLtoDOZg2yREJCHtqKCdJAv1ps6SBkOHooqxVamXt\nOvRXC+sFp3JIXBSiw13zo1QucfKERBSWVqoeqTpUqZ4np9OitrxQD6r40lWvEYkZ8Rqn5l2nR6s4\nLHUID6pT+0k5YQ+qUXIwzgh1XaufZbrEj/UZysRrIUuUl9ckTSIfw9DJWf/owD8p29DbL9NEt/yQ\nI7HusjtQp+SIVgfTYX1g23FnwZE+CP24QMSeHajbkYO6tMxOL9sOZNU82gIChjS1AFAgeVNx8fhy\n1R68uihHfYgWXD4jXZEBCzITgpWiU8uIKqVCstRwd+tAyoc/ZKFS4/H0yldw+Rc319uTaNGupXh2\n9Wv46IQXMDJhqFuxdlQOMSSD7VnYXZnnNbpse6ZWqiKnr5S510SNp0HAIGAQMAj4HQHR6zxzIabS\n0QfCqkaB2BURoS2WxksOcyM5IXGqUZX8sr7JsCubzue6ytEWySHkhLZNZBJCIL8pPxsLSaxIFPgM\niRXDMUyItRbDEhUGYQ7dUMi46McwxCFKLQtOHBg2W62lkBzianzUvXRaFtccIMbLg+lJGoyL1yRN\nvM+D14yb95mOPxzTZX4L/r0A1gVzsXPERLWKoBWRKj8kbUyXvWckg3vHT0bdP/4Ly+ARsMfEI2If\nRv6Qy8TZ+QgY0tT5mLc5RSoXHg7Vv/36oi34YrWrgq6+Y2zOLUfKwCitOBixtL5IVzUVSU93xIZK\n7YfdKxoRJsn7jrLdOOXDS7DsjI/VkADXEtvi156zlAnTPSNtFhbmLW02mpHRgzEiYrCWkc8ZZxAw\nCBgEDAI9BwFWmnnQ3tL2cp4QdT2vSRSk4i+VfN4ncZDwgWCnJQ+U21Me+c17lJ8kgbILaWIpSs8P\nyQvDsx5Cf/6mjaST54Xk8B5xYHy8R8cwvBbc6Mc06YgjneDMuEVmOesAPv7H/NAxHzyKJx6KUHWm\nPEKImT4x4fBBEuIKtWlxmMoHn5WDYYzr/ggY0hTgZcgPjh9qmRoH/MT8Dfhle6mWOEj1Ms0aHYVx\n6aFuRUYlwoNKh8qnt3ykxIitVI8ue75eD1PDol1XuBnvb5iPkwYf61a2DcO09rcoaeJ8SOwEnJd6\nEp7f8U6jx5ODE/GXQVfqcpFnGgUyNwwCBgGDgEGgWyNA/U7by8q0kACePe0x7YUQA+lZEbsdKPa6\noRz8TRvLM2UloRECwTMd/aTOwTC8Jg7Mo2cYYiFD6fgcf0s4iUPwoZ+QTZFB0uJvudYXfvzHtHhI\n3jmSh7+ZD8pOGfmbZwlDwthQfj+KaKLuRAQMaepEsNualLRQ7CqswGMfrVcTLKt0FJEhVhydrSZH\nRrn2UeCHyg+YZ/nAee4tjkqZXeOcw9SS43ynWf1nuhV8S+G9+VO5U1GyNeyC1FMxNKQ/Ptj7BXKq\ndyJc7RExPmI4Tk0+Fun2dG1oqESlfLzFa/wMAgYBg4BBoHshQN0uNpi6nk6IhNhj0f+8T/tOJ/ck\njL4ZYP9ERspM2emkfiKiivzEgPmnXWwYhs/yYBg62k8Sj4ZYMAzjk7Qkbkmrs89Mn7KyB5F1LcrF\nPPIQGXnmwXCsk/AZ+kteO1tmk55/EDCkyT+4djhWUTZssfj4px1uwpQUacERWWqlGrVKqLTY8CPl\nh8kPtquVS4cz3sYIiBMVFMdYB1lcithbFLZaqx42QMyIVXvx4nPEnK1u7KJn+gfXTcCYsGHuYRcs\nn6io+qsYtjc9b3kyfgYBg4BBwCDQ9QhQv0slmtI0pe95j4cnUeh6yVsngWd+PK89n+Z92kbJH/14\n7RlerhuGk/t8xvOav7vSSZnyLPmS+pbIyTMPCUt55Z6E6co8mLR9g4AhTb7B0aex8KPkwQmlHCc7\nc1gUNu0uRrhN7djdT21AFxqiV8eLiYnRLR8kAPIB+1SQbhIZSRPJ5QFxo/Fj/iqvUk+MG6XDiuLz\nGrgFT2JO0sTuesbHViWOaZax6iRN9IuOjtatafQ3yrMFUI23QcAgYBDoxgi0Vse3Nlx3g0LyJeeW\n5G9tuJbi8bc/7b1nvaEpuXnPkwg2Fcbfcpr4/YuAIU3+xbfNsZMAsNP+TbXgQ6HaIfv0SX3grHXg\npJFhqKkqV12/kbr3ghVx9nCw0s6PtLd+nJ5K7MzUWXhr64fY6yhqEvfpCQdhWMQgrfg8n2sycCtu\nEnMSIQ5DoEIlSWKPk4xVJ5nl0AMZ99ybiW0r4DRBDAIGAYOAQcAgELAItLae1dpwAZtRI1izCBjS\n1Cw0nevBSjwPbvz2r083YmVOsRYgUW3ydnD/MMTYw1Eb7lqJh2SJY2tlWF5v/kCZdx4kJIlhCbh/\n8I24ZcM/sL1qd70CnBI9Hjf3v9Q9xthXmDEeEiemTwLrOfGVZFYOQ5jqFYf5YRAwCBgEDAIGAYOA\nQaBbIWBIUwAUF8kSe5h2qwUf/jlvA3YUVmqpokJtGJDk2rSNvRisoJMosXLe24fkeRYbiQkxYY/P\n8OgheLr/nVhUshQbK3IQag3BOPswjIoapnYZj9dhhOT4gjgxDjlIjBi3OLnP375IS+I1Z4OAQcAg\nYBAwCBgEDAIGgc5FYH8Nr3PTNantQ4CEib0T67YX40nVw1RaWat9+kTZMHu0HUkRTjdRathrYSri\nLjIivTycP8T5RHRHhEzBVHVNjGRuEeeAkViRcPoaO8bn6zh1Rsw/g4BBwCBgEDAIGAQMAgaBLkfA\nkKYuLAIhTIvW5uLlhTmoUb1NdP3jrJiWVYcIW40e9sXeC8+heKZyXr/QiAfx4ZBFOl5zCCMJFP3Y\nC8XfJFUkTSSfBsP6GJpfBgGDgEHAIGAQMAgYBAwCzSNgSFPz2PjVR4bkcdW3GlW5F8I0NtWGcYmV\niAyL1BV96RmRir6p7DcuFmJCfNij5NnrxB48OpJO+pE8+XJoXmNJzB2DgEHAIGAQMAgYBAwCBoGe\niIAhTZ1cqiRLdFWOOhSWKnIUXIchSVZMVos9hKmepSx7leoxseslxblCHkkTK/okBoYwNV9YQpx4\nJl6eG+aRSMlhcGweQ+NjEDAIGAQMAgaBrkBA143KSmH5x61wnn0FkDGgUZ1H6k+W5x4ERoyHc9I0\nLaqpG3VFifXONF1bO/fOvHd6rqV3KbeoAve8swoPzV2H4ooavWrepIwgDFPkifNu4uPjERsbq4eT\nsXeEFX6jFFouLmJErEiaOESP2PGQoY0Gx5YxNCEMAgYBg4BBoGcgoEmG2gYDD98KLP683j5DkkOG\n0eHeeAZ46m9QGxk2GU7C++MsdSPLpScC896G5eRJcP60WC+QpWVTibrDPHUv8NAc4HfT4fxqXqfL\n6o/8mzi7DwKGNHVSWfGD53Cx9TuKcbciTNv2liO3uApzf9qtK/VRUVGaLCUkJGjCxDk4rOybin7b\nCkh6koibHHKvbTGZ0AYBg4BBwCBgEOieCLDOoQnHk/cAH74BXPwbWN57qWki8upTwD3XAK89hboP\nXtPP6Wc7IesiJ6cqlN7/shqGUwGER8J63pHA+69qebm6cF11NWzXnwM8cz8QaUftYcehYuJUXa/q\nLFk7AQ6TRIAjYEhTJxQQP3gqhEVr9+DBuetRUuGaazOkbxiOGh6jyRGH4sXFxemeJtmDyRCmTigc\nk4RBwCBgEDAIGAR6GAIkEqx3lF1wPdSkX0U0ooA71LC3v//JvZ9gnWrItd15FXD/n4EwtZBSdBzK\nZ5yon+tMOCgrG5XLLVbsevJD1IWEAWqagvX2y2B58BbUFhfBdvoUYNGnUAFRNvlobL/1n3ozedav\nDGnqzNLq3WkZ0uTn8tctJOqj/u932/GfL7eipta1Qt74fsE4ZrAadud06OFknLtEssQFC8xiBX4u\nFBO9QcAgYBAwCBgEejACJBKsf1Sq4XnbH30P1YNGqlWR1OiVt59D0CUnoKa0BLbzjwY+Ur1Qamh7\n1agDkfPgG11KRChvsT0G6//2Cqr6D3XJ+/LjCFbD9bBtM1BRhryzr8Lm82/QxM6QpR78Agdo1gxp\n8mPBSOvJ64u2YN7yXTolm9WCqVkWTOiruppV6w+H4JEkyWF6l/xYICZqg4BBwCBgEDAI9AIEZB60\nJk6KFK274UEUzzwZcFQDP32LkBPGAat+BCorUPib32PdlXdD+XR6r40Mn2d9SOYhO1Tj8errH0TJ\nAYcDIaFA4V59bL/2fuRMP1HXnWS+sqkz9YKXOYCyaEiTnwpDWnnYPT4xIwLhwRZEBFtxTDYwOK5W\nLyfOeUwNh+KJovOTWCZag4BBwCBgEDAIGAR6AQIkFGyYlfnRG0+5GLlnXw0UFyoSkq/OBdh14U3Y\n/Jtz6hER2eKksyBivYdpctVbzufmyJt+H7+JqIUfukieInrOpFT0e/RmJOz4VdebGI4jc/iccQaB\nzkLAkCY/Ii09TZHBtZg9KhInDrOgnxpWLCvkcR4TlQR7mQxZ8mNBmKgNAgYBg4BBwCDQixBoioik\nfDsfSf95ALBHqy4ltbiCIiLJ/7oLyT8s7FIiQlmF4IUrIpT25J3o8/o/4QwNR0WfNCy//lFYyktQ\np35n3HQOEn9a5CZMfNbUn3rRi93FWTWkyY8FIB8zW0LS44ORHBeuV8jjkuIkTtLLJOH8KIqJ2iBg\nEDAIGAQMAgaBXoIA6xUkImyUZeNsykuPaIKEiEhURcXh+znPoVb5O8PtSFE9OH3feto9p7qr6iQW\nNQ/LfulvEPrlXD3PqnjEAVhywyPI75eJZXOegVPliQtERN52MULfeLqXlKTJZiAhYEiTn0pDlA4V\nFskR913icuIkTJ49TGY8rp8KwERrEDAIGAQMAgaBXo4AR7xEXnMGwv73ol5YoTxzCJbO+RdK4xOw\n9JanUZGaoecNhb/6BCJuurBL0JLpDLZbLwU2r1PLjldi7wnnYu1ltyPMrkiSGopXlZaJVXe/BEey\nkjc0DLa7r4bl6/mdujx6l4BjEg0oBAxp8mNxkDiRNHF8LucvsXfJrhSA5wp5fkzeRG0QMAgYBAwC\nBgGDQC9EQIiI9bkHgRXfq01rHSg4/ASsvO4BBO+ri9hUI+7Kmx5H0cFqTyS1cp3lw9dgeePZens5\ndQZ0MpWh/BRF2lTvV96512GrmmfFuhMbnKWx2amuV936JMpHH4TKky9C+fjJeqnyzpDRpGEQIAJB\nBgb/ISDd4zzLZEXpgeLZOIOAQcAgYBAwCBgEDAK+RkCISNUxpyHsmwUo7dcfv6qFIMLUdAFpuOVC\nVVVqSfJN512PTNXjFLllHaqnq+Fxai8kqav4Wq6G8VFOHpSlRMm4/bkFqFYb2VJOjtIhcWL9yeFw\noLy8HBUVFdh09V+1X4y6F6LmQPF5U6dqiKz57Q8EDGnyB6oecXaW4vFI0lwaBAwCBgGDgEHAINBL\nERAiwg1jK9SmtbvnPI7KykqEql4cEhEeHAVDokIiwmPH8WfruU8xNrUFinqO/p1NRjhdgUuJM20S\nO8rJ+Vi8T1l5nysBkkDx2hClXvqCd2G2DWnqQvBN0gYBg4BBwCBgEDAIGAR8jYA02JJwyJLjJCSe\nS3WTVJF88GDvDs9dMc+asjJtEiT2KvE3ZRYCxd+8L3khgeI9WXKc18YZBDoDAUOaOgNlk4ZBwCBg\nEDAIGAQMAgaBTkCAJIK9RCQa0lPD3yQiMjSPYUhUGIZn9t7wHomKEJfOICOSBmWQ9HkWksRrz4Ph\nuGEvHUlUV5C8TihCk0SAImBIU4AWjBHLIGAQMAgYBAwCBgGDQHsQEOJBkkSyREeC4UmIhEjxPsN5\nhtE/OukfZW1IfoQoiQgShuEoN13DMBLWnA0C/kLAkCZ/IWviNQgYBAwCBgGDgEHAINAFCJBQ0LFn\npjmSIaSDZ88wfE6e53VnOJHFW1oik5y9hTV+BgF/IGBIkz9QNXEaBAwCBgGDgEHAIGAQ6EIEhFzI\nuTlR6N9SmOaeNfcNAr0JAbNPU28qbZNXg4BBwCBgEDAIGAQMAgYBg4BBoM0IGNLUZsjMAwYBg4BB\noGcgIENyekZuTC4MAgYBg4BBwCBQHwHaOV/ZOkOa6mNrfhkEDAIGgR6NAI0HV59au3YtXnjhBZSU\nlOjfvjIqPRo8k7n/b+/+Y6Mo8ziOfz1bWhRQUPoHmFCPX2289mL545oz5WhBAmeCGFCDFFJzYvFC\nAP+QhJzyx5GI/eMCmJi0JickoH9YQX6c0qCAZ02uNVoCGCB3GGj44Un1qi3QSkm4/Uz32f6gdLe0\nsDM770manZ3Z3Xme17Od73zneXYGAQQQQCAQAi7Wffjhh3bo0KFYnBtMrCNpCkTTU0gEEEBgaAQU\nMHR/lscff9zKysps6tSptm3bNm+ZkqnBBJShKSGfggACCCCAwK0LuITpo48+sgULFtjMmTPtiSee\nsOPHj8eSp1v5dJKmW1HjPQgggEAABVwg+eWXX+yhhx7yavDdd995yVNRUZF9+eWXsYBC8hTABqbI\nCCCAAALeyT/dBHn06NGxy+nX1NRYQUGBvfLKK/bTTz/FYt1AuEiaBqLFaxFAAIEACygRUi/T1atX\nbcuWLbZixQobPny4V6O6ujp77LHH7IUXXjAlUvQ6BbihKToCCCAQUgHFORfrJk2aZLt27fJimzgU\n+zZu3Gi5ubn2zjvvDHiERWgvOS5QHRToAILLbYb0P4tqIxAyge77Pd0ksrS01GbMmGFVVVX2ySef\nePvErVu32s6dO+3VV1+1lStXejfGZB8Z3C+K4pyLdWp/JgQQQCDVBdw+T8f448ePt4qKCqutrbW3\n3nrLzp07Z99//70tW7bMi32bNm2ywsLCG26w3JfRXZGdaErvRVU9ZZYtLS1edrlhwwbP4cEHH7Rh\nw4aRMPX1rWAZAgiktID2i+5gWvP601CGS5cuWUdHR6zuOkungDJnzpyEAkrsjczccQG1Z1tbm/34\n44/e+P1Tp055Ca9inRJk7sNzx5uEDSKAQBIFXGxz8c49137yypUrXgxU8bRvXLx4sSk/GDduXL95\nQSiSJh0EKGn64osvbO/evV6XXBLbkU0jgAACgRHIyMiwHTt2kDj5vMWUNLW3t9sPP/xg27dvN10x\n6quvvvJ5qSkeAggg4A+BRx991A4cOGD33Xefd6Kpr1KFZniezrTl5OR4GeTRo0e9Ry3jDFxfXwuW\nIYBAKgu4M26ut0mPTU1N3m+Z1OPkJv3G6Y033rC8vDyGMjsUHz/qjGlaWpqX4OqHzppcnNMjEwII\nIBAWAcU5Ta6nyf2e9/z589bc3Owt1/r09HRbtWqVNxxdI9BcfOyrdz4UPU2CUneckC5evOjdl0S9\nT3fffXcsoAiOCQEEEAiDQPcgcvjwYausrLTTp0/Hqq4r67300ktWUlJiDzzwgI0ZM8ZGjBjhBRcO\nvmNMvppRmyqu6b5b6m3Sn+KelrtY19dBgK8qQWEQQACBIRTQ/k85gHrhq6ur7f333/f2i9qE9ofF\nxcVerJs4caJpKPP999/vXRxJ+8y+9pcp39OkSutP2aOCvvA0r985CdOtH8I24qMQQAABXwpon6dJ\nPUv6IezmzZu94QiusPfcc48988wzNn/+fG+IQmZmpne5VvVe9BVA3Pt4TL6A2kcJrdpMw0s0ady+\n6zkk2U1+G1ECBBC4MwIu1umYXxeA0G9z1cPkpsmTJ3tXis3Pz7dRo0Z5+03lBtpP9hfrUr6nSUDC\n00GCzsIp29Q9SjTvkiaHyCMCCCCQygLa5+lP+79Zs2bZmTNnvOoqUOjmf0uXLrWsrCzvBJMOvBVM\ndLJJlyXXEIZ4ASWV7YJQN7WtDhIU41ysU+wj1gWh9SgjAggMlYDbF+paBkuWLIl9rO7bpOezZ882\nnSQcOXKkF+cU6+69914veXI987E3dZtJ+Z4m1VVZoxA06VFn4hRImBBAAIEwCSiQqOdBB9TaD2p6\n5JFHvOEJU6ZM8ZIjJUndkyWdfVNPEwmT/78pLtbp4h1KcnVQoEntzoQAAgiEQUD7O/3p5KBimWKX\njv2feuopW7RokbdMCZISJv25ZEn7TL0u9D1N3b8kDrP7MuYRQACBMAi4HnddWvzs2bP2zTffWHZ2\nthco1JukhElBRPPuwNslS/0FkjDYBamOLklyj0EqO2VFAAEEBiOg/Z5inU4O6srZDQ0NXhKlXiYl\nRkqSFOvcKAqdGFSy5GJdf9sOxfC8/gBYhwACCIRFQIHE3Y9JV1e7fPmyF0yUICmQqGdCPVDdz7iR\nLIXl20E9EUAAgeALuKRJw5SVNP38889eAqXESCcEFevcicHuoygSiXUkTcH/flADBBBAICEBBRP3\nmxddJEDDFxQodKZNidNAzrgltEFehAACCCCAwB0WcCcIdQVR/SnuKUFSnNOf5t1QvESSJVd8kiYn\nwSMCCCAQAgEFEwUQ9ThpXgHDnW1zwxMGEkRCQEYVEUAAAQQCJOB6m1ys03PFt96xbqBVImkaqBiv\nRwABBAIuoADi/pQguSTJPQa8ehQfAQQQQCDkAi7G6VGTi3WDiXMkTSH/UlF9BBBAAAEEEEAAAQQQ\n6F/gV/2vZi0CCCCAAAIIIIAAAgggEG4BkqZwtz+1RwABBBBAAAEEEEAAgTgCJE1xgFiNAAIIIIAA\nAggggAAC4RYgaQp3+1N7BBBAAAEEEEAAAQQQiCNA0hQHiNUIIIAAAggggAACCCAQbgGSpnC3P7VH\nAAEEEEAAAQQQQACBOAIkTXGAWI0AAggggAACCCCAAALhFiBpCnf7U3sEEEAAAQQQQAABBBCII0DS\nFAeI1QgggAACCCCAAAIIIBBuAZKmcLc/tUcAAQQQQAABBBBAAIE4AiRNcYBYjQACCCCAAAIIIIAA\nAuEWIGkKd/tTewQQQAABBBBAAAEEEIgjQNIUB4jVCCCAAAIIIIAAAgggEG4BkqZwtz+1RwABBBBA\nAAEEEEAAgTgCJE1xgFiNAAIIIIAAAggggAAC4RYgaQp3+1N7BBBAAAEEEEAAAQQQiCOQFmc9qxFA\nIGGBZquvqbWzl8x+/fvZVjAus+ud7Y12cP8Ru3R1mE35wyzLGcu/XhcOcwgggAACQRFo/bbeDh0+\nazZmqs0uybNukc4aGw7akXP/s2Gjf2NzinKCUiXKiUBCAnddj0wJvZIXIYBA/wLtx2z+8HzbrVeV\nvmtt256LBpMme7Mky1Yd6nz77jMdNm8CSVP/mKxFAAEEEPCjwMmt8y33eS/S2bun2uy5iZ1pU1Pt\nm5Y1fVVnkVfvtusb5/mx+JQJgVsWYHjeLdPxRgR6CWTm2brNT3Yu3F5hn13Q7DU7uP7ZWMJU8fl5\nEqZebDxFAAEEEAiOQM6CtRaNdFbx9886C36hxp51CVNxhZ0nYQpOg1LShAXoaUqYihcikIBA00Er\nyZpp6lR6srLO/jZ5v02auc57Y2nl17atvCCBD+ElCCCAAAII+Fegdn2JTV+nSFdqdef/Yvvn5tq6\noypvqX3dss0KRvq37JQMgVsVIGm6VTneh0CfAtes5uVpNneTFz26XrG62to2Luwx9rtrJXMIIIAA\nAggER+Ba4x5Lz3b9Ta7c+VZ9qt4WRofruaU8IpAqAgzPS5WWpB4+EUizWSte61kWb6gCCVNPFJ4h\ngAACCARVIG3CH636xZ6lrziwj4SpJwnPUkyApCnFGpTqJF/gYuOJHoVYvabUxvVYwhMEEEAAAQSC\nLHDRTtR1L/9aKy0h0nUXYT71BEiaUq9NqVESBdpPfmDjo79hcsXYVLnXWt2TXo8XTjZYw7ELkctF\nMCGAAAIIIBAEgXb74OW50d8wufJusL0Nze5Jz8drzXasvt5OXrhZJOz5cp4h4FcBkia/tgzlCp5A\nc70ty326s9zFa23L5ujYhd3LbcfJ9p71af3WqspLbHzuNJtW+sFNk6qeb+IZAggggAACyRWor1pm\nT0d/t7u2cou5UXrLN+6zXpHOmo7tsSXpYyy/sNCe3X48uQVn6wgMUoCkaZCAvB2BToFGWz+j0LZ7\nT/Jt3/bXrezF8thlWZ+v2t/Vm6T7OY2aZMvfjt646eEM465NfI8QQAABBPwu0Fiz3gqXRyPd2n32\nenmZrYjdamOx/aOxa9xE456XLSv/yWhcNHs4M93v1aN8CPQrQNLULw8rEUhEoNXeK8+ODVWo+PxT\nm6Oh3ZkFtvKvxZ0fsGmTfXrBBZN0m7u52i52tNi7pZHVLYlsg9cggAACCCCQPIHWY+9Z9tzOW2hY\n5AJH+16f4xUmb9FKy48Wa33V57EThOkjfmuVu0/Y9bYTkQuRE+qS13JseagESJqGSpLPCa1AeySQ\nLH67s/q6F9OaorExi+lL/xydP2T//m90PHdmjpWvXGhjI91LrQzxjlkxgwACCCDgV4FW2/Ha4mjh\nXrS6HWu6LnA0drqtX92ZNh2t+09suPm4kjIrn5dj1nEltsyvtaNcCCQiwKigRJR4DQL9CGTmlVtH\nx5+8s2uZaT3/pdImLLTrHR3eOO/e6/SRGf18LqsQQAABBBDwh8BIK9vVYaXtkRETmZm9hpSn2byN\nR6xjQ+QXTTesi5SeUXn+aEJKMWiBnkd4g/44PgCBcAqkRZKlm/4zRdZlhpOFWiOAAAIIpIxAJM5l\n3jTSRdYR6VKmqalInwIMz+uThYUIIIAAAggggAACCCCAQKcASRPfBASSJuDGLGQweiFpbcCGEUAA\nAQRuq0BaZ6wbleFi3m3dGh+OwG0TuHk/623bJB+MQMgFrjVZ7cf/ssvDLtmB3bI4YDv3jLERIx62\nP5bk3XyYX8jZqD4CCCCAQHAErjUds4//edqG2Uk7HSn20X27bM+E0zY6u8iKckYHpyKUFIGowF3X\nIxMaCCBwBwXaG2z+8Gnm5UvdN1tcaS0Hy21k92XMI4AAAgggEECB1oY3bdS0VTeUPL+izo6s+d0N\ny1mAgN8FSJr83kKUDwEEEEAAAQQQQAABBJIqwG+aksrPxhFAAAEEEEAAAQQQQMDvAiRNfm8hyocA\nAggggAACCCCAAAJJFSBpSio/G0cAAQQQQAABBBBAAAG/C5A0+b2FKB8CCCCAAAIIIIAAAggkVYCk\nKan8bBwBBBBAAAEEEEAAAQT8LkDS5PcWonwIIIAAAggggAACCCCQVAGSpqTys3EEEEAAAQQQQAAB\nBBDwuwBJk99biPIhgAACCCCAAAIIIIBAUgVImpLKz8YRQAABBBBAAAEEEEDA7wIkTX5vIcqHAAII\nIIAAAggggAACSRUgaUoqPxtHAAEEEEAAAQQQQAABvwuQNPm9hSgfAggggAACCCCAAAIIJFWApCmp\n/GwcAQQQQAABBBBAAAEE/C5A0uT3FqJ8CCCAAAIIIIAAAgggkFSB/wNVi7NHM5z7+wAAAABJRU5E\nrkJggg==\n", "text/plain": [ "" ] }, "execution_count": 39, "metadata": { "image/png": { "width": 500 } }, "output_type": "execute_result" } ], "source": [ "Image(filename='./images/05_11.png', width=500) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Implementing a kernel principal component analysis in Python" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from scipy.spatial.distance import pdist, squareform\n", "from scipy import exp\n", "from numpy.linalg import eigh\n", "import numpy as np\n", "\n", "def rbf_kernel_pca(X, gamma, n_components):\n", " \"\"\"\n", " RBF kernel PCA implementation.\n", "\n", " Parameters\n", " ------------\n", " X: {NumPy ndarray}, shape = [n_samples, n_features]\n", " \n", " gamma: float\n", " Tuning parameter of the RBF kernel\n", " \n", " n_components: int\n", " Number of principal components to return\n", "\n", " Returns\n", " ------------\n", " X_pc: {NumPy ndarray}, shape = [n_samples, k_features]\n", " Projected dataset \n", "\n", " \"\"\"\n", " # Calculate pairwise squared Euclidean distances\n", " # in the MxN dimensional dataset.\n", " sq_dists = pdist(X, 'sqeuclidean')\n", "\n", " # Convert pairwise distances into a square matrix.\n", " mat_sq_dists = squareform(sq_dists)\n", "\n", " # Compute the symmetric kernel matrix.\n", " K = exp(-gamma * mat_sq_dists)\n", "\n", " # Center the kernel matrix.\n", " N = K.shape[0]\n", " one_n = np.ones((N, N)) / N\n", " K = K - one_n.dot(K) - K.dot(one_n) + one_n.dot(K).dot(one_n)\n", "\n", " # Obtaining eigenpairs from the centered kernel matrix\n", " # numpy.linalg.eigh returns them in sorted order\n", " eigvals, eigvecs = eigh(K)\n", "\n", " # Collect the top k eigenvectors (projected samples)\n", " X_pc = np.column_stack((eigvecs[:, -i]\n", " for i in range(1, n_components + 1)))\n", "\n", " return X_pc" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example 1: Separating half-moon shapes" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "from sklearn.datasets import make_moons\n", "\n", "X, y = make_moons(n_samples=100, random_state=123)\n", "\n", "plt.scatter(X[y == 0, 0], X[y == 0, 1], color='red', marker='^', alpha=0.5)\n", "plt.scatter(X[y == 1, 0], X[y == 1, 1], color='blue', marker='o', alpha=0.5)\n", "\n", "plt.tight_layout()\n", "# plt.savefig('./figures/half_moon_1.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn.decomposition import PCA\n", "from sklearn.preprocessing import StandardScaler\n", "\n", "scikit_pca = PCA(n_components=2)\n", "X_spca = scikit_pca.fit_transform(X)\n", "\n", "fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(7, 3))\n", "\n", "ax[0].scatter(X_spca[y == 0, 0], X_spca[y == 0, 1],\n", " color='red', marker='^', alpha=0.5)\n", "ax[0].scatter(X_spca[y == 1, 0], X_spca[y == 1, 1],\n", " color='blue', marker='o', alpha=0.5)\n", "\n", "ax[1].scatter(X_spca[y == 0, 0], np.zeros((50, 1)) + 0.02,\n", " color='red', marker='^', alpha=0.5)\n", "ax[1].scatter(X_spca[y == 1, 0], np.zeros((50, 1)) - 0.02,\n", " color='blue', marker='o', alpha=0.5)\n", "\n", "ax[0].set_xlabel('PC1')\n", "ax[0].set_ylabel('PC2')\n", "ax[1].set_ylim([-1, 1])\n", "ax[1].set_yticks([])\n", "ax[1].set_xlabel('PC1')\n", "\n", "plt.tight_layout()\n", "# plt.savefig('./figures/half_moon_2.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from matplotlib.ticker import FormatStrFormatter\n", "\n", "X_kpca = rbf_kernel_pca(X, gamma=15, n_components=2)\n", "\n", "fig, ax = plt.subplots(nrows=1,ncols=2, figsize=(7,3))\n", "ax[0].scatter(X_kpca[y==0, 0], X_kpca[y==0, 1], \n", " color='red', marker='^', alpha=0.5)\n", "ax[0].scatter(X_kpca[y==1, 0], X_kpca[y==1, 1],\n", " color='blue', marker='o', alpha=0.5)\n", "\n", "ax[1].scatter(X_kpca[y==0, 0], np.zeros((50,1))+0.02, \n", " color='red', marker='^', alpha=0.5)\n", "ax[1].scatter(X_kpca[y==1, 0], np.zeros((50,1))-0.02,\n", " color='blue', marker='o', alpha=0.5)\n", "\n", "ax[0].set_xlabel('PC1')\n", "ax[0].set_ylabel('PC2')\n", "ax[1].set_ylim([-1, 1])\n", "ax[1].set_yticks([])\n", "ax[1].set_xlabel('PC1')\n", "ax[0].xaxis.set_major_formatter(FormatStrFormatter('%0.1f'))\n", "ax[1].xaxis.set_major_formatter(FormatStrFormatter('%0.1f'))\n", "\n", "plt.tight_layout()\n", "# plt.savefig('./figures/half_moon_3.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example 2: Separating concentric circles" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nlfwfJ7zQW5eG1/kAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn.datasets import make_circles\n", "\n", "X, y = make_circles(n_samples=1000, random_state=123, noise=0.1, factor=0.2)\n", "\n", "plt.scatter(X[y == 0, 0], X[y == 0, 1], color='red', marker='^', alpha=0.5)\n", "plt.scatter(X[y == 1, 0], X[y == 1, 1], color='blue', marker='o', alpha=0.5)\n", "\n", "plt.tight_layout()\n", "# plt.savefig('./figures/circles_1.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "scikit_pca = PCA(n_components=2)\n", "X_spca = scikit_pca.fit_transform(X)\n", "\n", "fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(7, 3))\n", "\n", "ax[0].scatter(X_spca[y == 0, 0], X_spca[y == 0, 1],\n", " color='red', marker='^', alpha=0.5)\n", "ax[0].scatter(X_spca[y == 1, 0], X_spca[y == 1, 1],\n", " color='blue', marker='o', alpha=0.5)\n", "\n", "ax[1].scatter(X_spca[y == 0, 0], np.zeros((500, 1)) + 0.02,\n", " color='red', marker='^', alpha=0.5)\n", "ax[1].scatter(X_spca[y == 1, 0], np.zeros((500, 1)) - 0.02,\n", " color='blue', marker='o', alpha=0.5)\n", "\n", "ax[0].set_xlabel('PC1')\n", "ax[0].set_ylabel('PC2')\n", "ax[1].set_ylim([-1, 1])\n", "ax[1].set_yticks([])\n", "ax[1].set_xlabel('PC1')\n", "\n", "plt.tight_layout()\n", "# plt.savefig('./figures/circles_2.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "X_kpca = rbf_kernel_pca(X, gamma=15, n_components=2)\n", "\n", "fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(7, 3))\n", "ax[0].scatter(X_kpca[y == 0, 0], X_kpca[y == 0, 1],\n", " color='red', marker='^', alpha=0.5)\n", "ax[0].scatter(X_kpca[y == 1, 0], X_kpca[y == 1, 1],\n", " color='blue', marker='o', alpha=0.5)\n", "\n", "ax[1].scatter(X_kpca[y == 0, 0], np.zeros((500, 1)) + 0.02,\n", " color='red', marker='^', alpha=0.5)\n", "ax[1].scatter(X_kpca[y == 1, 0], np.zeros((500, 1)) - 0.02,\n", " color='blue', marker='o', alpha=0.5)\n", "\n", "ax[0].set_xlabel('PC1')\n", "ax[0].set_ylabel('PC2')\n", "ax[1].set_ylim([-1, 1])\n", "ax[1].set_yticks([])\n", "ax[1].set_xlabel('PC1')\n", "\n", "plt.tight_layout()\n", "# plt.savefig('./figures/circles_3.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Projecting new data points" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from scipy.spatial.distance import pdist, squareform\n", "from scipy import exp\n", "from scipy.linalg import eigh\n", "import numpy as np\n", "\n", "def rbf_kernel_pca(X, gamma, n_components):\n", " \"\"\"\n", " RBF kernel PCA implementation.\n", "\n", " Parameters\n", " ------------\n", " X: {NumPy ndarray}, shape = [n_samples, n_features]\n", " \n", " gamma: float\n", " Tuning parameter of the RBF kernel\n", " \n", " n_components: int\n", " Number of principal components to return\n", "\n", " Returns\n", " ------------\n", " X_pc: {NumPy ndarray}, shape = [n_samples, k_features]\n", " Projected dataset \n", " \n", " lambdas: list\n", " Eigenvalues\n", "\n", " \"\"\"\n", " # Calculate pairwise squared Euclidean distances\n", " # in the MxN dimensional dataset.\n", " sq_dists = pdist(X, 'sqeuclidean')\n", "\n", " # Convert pairwise distances into a square matrix.\n", " mat_sq_dists = squareform(sq_dists)\n", "\n", " # Compute the symmetric kernel matrix.\n", " K = exp(-gamma * mat_sq_dists)\n", "\n", " # Center the kernel matrix.\n", " N = K.shape[0]\n", " one_n = np.ones((N, N)) / N\n", " K = K - one_n.dot(K) - K.dot(one_n) + one_n.dot(K).dot(one_n)\n", "\n", " # Obtaining eigenpairs from the centered kernel matrix\n", " # numpy.eigh returns them in sorted order\n", " eigvals, eigvecs = eigh(K)\n", "\n", " # Collect the top k eigenvectors (projected samples)\n", " alphas = np.column_stack((eigvecs[:, -i]\n", " for i in range(1, n_components + 1)))\n", "\n", " # Collect the corresponding eigenvalues\n", " lambdas = [eigvals[-i] for i in range(1, n_components + 1)]\n", "\n", " return alphas, lambdas" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": true }, "outputs": [], "source": [ "X, y = make_moons(n_samples=100, random_state=123)\n", "alphas, lambdas = rbf_kernel_pca(X, gamma=15, n_components=1)" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0.4816, -0.3551])" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x_new = X[-1]\n", "x_new" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0.1192])" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x_proj = alphas[-1] # original projection\n", "x_proj" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0.1192])" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def project_x(x_new, X, gamma, alphas, lambdas):\n", " pair_dist = np.array([np.sum((x_new - row)**2) for row in X])\n", " k = np.exp(-gamma * pair_dist)\n", " return k.dot(alphas / lambdas)\n", "\n", "# projection of the \"new\" datapoint\n", "x_reproj = project_x(x_new, X, gamma=15, alphas=alphas, lambdas=lambdas)\n", "x_reproj " ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt8lPWd9//Xh3COSEEBEYgcikogIUJAtKhQPKFFVtCu\n3FiPXdRq19L1QOtasdiuP9uK2NvC0t4iHmpt3aqsUl1lRYRWIbSoHKpQCMcoAeQQAiQhn98f18xk\nEibHmcAVeD8fj3nMXN/DdX2vmcm8c11zzXWZuyMiIhI2zY71AERERBJRQImISCgpoEREJJQUUCIi\nEkoKKBERCSUFlIiIhJICSkREQiklAWVml5vZp2a2zsymJKg3M3syUv+xmQ2Kq3vazLab2coqfaaa\n2VYzWxG5XZGKsYqISNOQdECZWRrwFDAayAQmmFlmlWajgb6R2yRgZlzdM8Dl1cx+urvnRG7zkx2r\niIg0Hc1TMI+hwDp3Xw9gZr8DxgKr49qMBZ714LQVH5jZV8ysq7sXuPsiM+uZgnFw6qmnes+eKZmV\niIikyPLly3e4e6f69ktFQHUDNsdNbwHOrUObbkBBLfP+rpndAOQB/+buX1ZtYGaTCLbKyMjIIC8v\nr36jFxGRRmVmGxvSL8wHScwEegM5BEH2i0SN3H22u+e6e26nTvUOaBERCalUBNRWoEfcdPdIWX3b\nVOLuX7j7YXcvB35NsCtRREROEKkIqGVAXzPrZWYtgeuAeVXazANuiBzNNwzY4+417t4zs65xk1cD\nK6trKyIix5+kv4Ny9zIzuwt4C0gDnnb3VWZ2e6R+FjAfuAJYBxQDN0f7m9mLwAjgVDPbAjzk7v8P\neMzMcgAH8oHbkh2rSKqUlpayZcsWDh48eKyHIhIarVu3pnv37rRo0SIl87Pj6XpQubm5roMk5GjY\nsGED7dq145RTTsHMjvVwRI45d2fnzp3s27ePXr16Vaozs+XunlvfeYb5IAmR0Dp48KDCSSSOmXHK\nKaekdK+CAkqkgRROIpWl+m9CASVylBQUFNCnTx8+//zzYz0UkSZBASVylEybNo38/HymTZt2VJd7\nxRVXsHv37hrb/OhHP+Kdd95p0PwXLlzIN77xjQb1rU1dxp7IwoUL+fOf/xybnjVrFs8++2wqh3aE\ne++9l/79+3PvvfcmNZ9t27ZxzTXX1Nrupz/9acLyffv20adPH9auXQsEB/RkZWXx4Ycfkp+fT5s2\nbcjJyQFg8+bNjBw5kszMTPr378+MGTNi85k6dSrdunUjJyeHnJwc5s8Pzjb3/vvvk5mZyYABA5Ja\nzzpx9+PmNnjwYBc5GlavXl2v9tu2bfPWrVs74G3atPGCgoJGGlmF8vJyP3z4cKMv59133/Urr7yy\nQX0ba4wPPfSQ/+xnP0v5fGty8skne1lZ2VFbXnp6erV1L730kl966aXu7v7Tn/7UJ02a5O7uGzZs\n8P79+8fabdu2zZcvX+7u7nv37vW+ffv6qlWr3L3m57DqfOIl+tsA8rwBn+naghI5CqZNm0Z5eTkA\nhw8fTslW1OOPP86AAQMYMGAATzzxBAD5+fmcddZZ3HDDDQwYMIDNmzfTs2dPduzYERvHWWedxfDh\nw5kwYQI///nPAbjpppt4+eWXAejZsycPPfQQgwYNIisri7///e8ALF26lPPOO49zzjmH888/n08/\n/bTG8T3zzDOMHTuWESNG0LdvXx5++OFqx/jiiy+SlZXFgAEDuP/++2PziB/7888/z9ChQ8nJyeG2\n227j8OHDALz55psMGjSIgQMHMmrUKPLz85k1axbTp08nJyeH999/n6lTp8bWdcWKFQwbNozs7Gyu\nvvpqvvwyOIPaiBEjuP/++xk6dChnnnkm77///hHr5O7ce++9DBgwgKysLF566SUArrrqKoqKihg8\neHCsLGrq1Kl861vf4rzzzqNv3778+te/rnFe+fn5sa2TZ555hnHjxnH55ZfTt29f7rvvPgCmTJnC\ngQMHyMnJYeLEiUeM85vf/CYAjz32GLNmzeI//uM/Er5GXbt2ZdCg4OIS7dq1o1+/fmzdWuM5FI6u\nhqRaWG/agpKjpT5bUPFbT9FbsltReXl5PmDAAC8qKvJ9+/Z5Zmam//Wvf/UNGza4mflf/vKXWNsz\nzjjDCwsLfenSpT5w4EA/cOCA792717/61a/G/kO+8cYb/Q9/+EOs/ZNPPunu7k899ZTfeuut7u6+\nZ88eLy0tdXf3t99+28eNG+fu1W9BzZkzx0877TTfsWOHFxcXe//+/X3ZsmVHjHHr1q3eo0cP3759\nu5eWlvrIkSP9lVdeqTT21atX+ze+8Q0vKSlxd/c77rjD586d69u3b/fu3bv7+vXr3d19586d7n7k\nf//x01lZWb5w4UJ3d3/wwQf97rvvdnf3iy66yL///e+7u/sbb7zho0aNOmKdXn75Zb/44ou9rKzM\nP//8c+/Ro4dv27bN3avfonnooYc8Ozvbi4uLvbCw0Lt37+5bt26tdl7xWydz5szxXr16+e7du/3A\ngQOekZHhmzZtqnF5UWvWrHHAZ8+eHSuractnw4YN3qNHD9+zZ09s3BkZGZ6VleU333yz79q1q07z\n0RaUSBMSv/UUlexW1OLFi7n66qtJT0/npJNOYty4cbH/+M844wyGDRt2RJ8lS5YwduxYWrduTbt2\n7RgzZky18x83bhwAgwcPJj8/H4A9e/Zw7bXXMmDAACZPnsyqVatqHecll1zCKaecQps2bRg3bhyL\nFy8+YozLli1jxIgRdOrUiebNmzNx4kQWLVpUaT4LFixg+fLlDBkyhJycHBYsWMD69ev54IMPuPDC\nC2O/u+nYsWON49mzZw+7d+/moosuAuDGG2+stKxE6x1v8eLFTJgwgbS0NLp06cJFF13EsmXLan0e\nxo4dS5s2bTj11FMZOXIkS5curfO8Ro0aRfv27WndujWZmZls3Fi3866++eabdO3alZUraz8JT1FR\nEePHj+eJJ57g5JNPBuCOO+5g/fr1rFixgq5du/Jv//ZvdVpuKimgRBpRQUEBc+bMoaSkpFJ5SUkJ\nc+bMaZQj+tLT05OeR6tWrQBIS0ujrKwMgAcffJCRI0eycuVK/vu//7tOv3epethxdLq+Y3R3brzx\nRlasWMGKFSv49NNPmTp1ar3mUReJ1jsVqnse6jOm+oxr27ZtPPnkkyxdupT58+fz8ccfV9u2tLSU\n8ePHM3HixFhAA3Tp0oW0tDSaNWvGv/zLv7B06dI6jzlVFFAijSjR1lNUMltRF1xwAa+++irFxcXs\n37+fV155hQsuuKDGPl/72tdiwVJUVMTrr79er2Xu2bOHbt26AcF3I3Xx9ttvs2vXLg4cOMCrr77K\n1772tSPaDB06lPfee48dO3Zw+PBhXnzxxdgWTtSoUaN4+eWX2b59OwC7du1i48aNDBs2jEWLFrFh\nw4ZYOQTfp+zbt++IZbVv354OHTrEtjafe+65I5ZVkwsuuICXXnqJw4cPU1hYyKJFixg6tPbzWL/2\n2mscPHiQnTt3snDhQoYMGdLgeUW1aNGC0tLShHWTJ0/mhz/8Id27d+fxxx/nzjvvJNjTVpm7c+ut\nt9KvXz++//3vV6orKKg4Xeorr7xydI7aq0IBJZKk/SX7E/7xV7f1FFXTVpS7s79kf7XLHDRoEDfd\ndBNDhw7l3HPP5dvf/jbnnHNOjeMcMmQIV111FdnZ2YwePZqsrCzat29fy9pVuO+++/jBD37AOeec\nU+eti6FDhzJ+/Hiys7MZP348ublHnu2ma9euPProo4wcOZKBAwcyePBgxo4dG6s3MzIzM3nkkUe4\n9NJLyc7O5pJLLqGgoIBOnToxe/Zsxo0bx8CBA/nnf/5nAMaMGcMrr7wSO0gi3ty5c7n33nvJzs5m\nxYoV/OhHP6rzc3D11VeTnZ3NwIED+frXv85jjz3GaaedVmu/7OxsRo4cybBhw3jwwQc5/fTTGzyv\nqEmTJpGdnX3EQRJvv/02mzZt4tZbbwWC56JDhw4JD7NfsmQJzz33HP/7v/97xOHk9913H1lZWWRn\nZ/Puu+8yffr0Oo8tZRryxVVYbzpIQo6W6BfBRYeKfPB/Dva7/3S3l5eXV2pzxx13eMuWLSsdHFH1\n1rJlS//Od75TqV95ebnf/ae7ffB/DvaiQ0UpHfe+ffvc3X3//v0+ePDg2CHGjWHOnDl+5513Nrh/\nWVmZd+zYMXZgRFN1LA55r05NBzekaj46SEIkJNq2aMvwjOHM+HAGk9+aXGlLat68edVuPUWVlJTw\n2muvxabdnclvTWbGhzMYnjGcti3apnS8kyZNIicnh0GDBjF+/PjYIcZh1L9/f7797W+n7MzYEnyH\ntWfPntgPdRvi/fffZ8yYMZx66qkpHFliOpu5SAOsWbOGfv36AZVD5e5z72b6ZdMbdE6yVM1H5FiK\n/9uIaujZzJO+HpTIic7MmH5ZsH9+xofBqWLqGy4KJ5EjKaBEUiCZkFI4iSSmgBJJkYaElMJJpHoK\nKJEUqk9IKZxEaqaj+ERSLBpSd597d8Kj+0DhBJVPBJuMulwqpOrlN+I9/vjj3HLLLbHpF154gSuv\nvBIITqLbq1cvZs2aFWubmZlJdnY2o0aNqnTaobS0tNhvia666qpY+cSJE+nYsWPsZLxSd9qCEmkE\nNW1JpTqcYr8ZaXZi/r/54x//uNY2Cxcu5KSTTuL8888/ou5f//Vfyc3NZcmSJfTv359///d/Z8GC\nBbH6n/3sZ7HrM51zzjnk5eXRtm1bZs6cyX333Rc7C3mbNm1YsWLFEfN/4YUXuOmmmxq4die2E/Md\nLXIUVLcllYpwSnTJiv/5n//hvPPOY9CgQVx77bUUFRUBwZbKD37wA3JycsjNzeWvf/0rl112GX36\n9IltGRQVFTFq1KjYJTaiv83Kz8/n7LPPZuLEifTr149rrrmG4uLi2HyjZxsYOnQo69atA6CwsJDx\n48czZMgQhgwZwpIlSwDYuXMnl156aez3TdX9xOWkk05i8uTJ9O/fn1GjRlFYWAhUf5mM2i4Vkujy\nG/GaN2/Or371K+68807uu+8+brnlFnr37p1wbCNHjqRt2+C3acOGDWPLli31fu2kHhry696w3nQm\nCTla6nO5jeiZIZhK7JbozBP1UfWSFYWFhX7BBRd4UVFw5olHH33UH374YXcPLlnxq1/9yt3dv/e9\n73lWVpbv3bvXt2/f7p07d3Z399LS0thlFgoLC71Pnz5eXl7uGzZscMAXL17s7u4333xz7KwIZ5xx\nhj/yyCPu7j537tzYJTcmTJjg77//vru7b9y40c8++2x3d//ud78bG9Prr7/ugBcWFh6xboA///zz\n7u7+8MMPx85GUd1lMupyqZC6nM3huuuu8169evnBgwdjZfHzrurOO+/0adOmxabT0tL8nHPO8XPP\nPTd2uZC6zOd4k8ozSWgXn0gji25JRXf1Qf1/J5VI/CUrPvjgA1avXh07GWtJSQnnnXderG30O5Gs\nrCyKiopo164d7dq1o1WrVuzevZv09HR++MMfsmjRIpo1a8bWrVv54osvAOjRo0dsvtdffz1PPvkk\n99xzDwATJkyI3U+ePBmAd955h9WrV8eWvXfvXoqKili0aBF//OMfAbjyyivp0KFDwvVq1qxZ7Jx6\n119/PePGjUt4mYxrr702Yf/4S2ZEl1eboqIi8vLyKC0tpbCwkO7du9fY/vnnnycvL4/33nsvVrZx\n40a6devG+vXr+frXv05WVhZ9+vSp0/IlMQWUSCPzyG69eJPfmpx0SMVfssLdueSSS3jxxRcTto1e\nsqFZs2aVLt/QrFkzysrKeOGFFygsLGT58uW0aNGCnj17xi6nUdOlIhI9Li8v54MPPqB169YNXrfq\nllcXDblkxkMPPcT1119Ply5dmDx5Mn/4wx+qbfvOO+/wk5/8hPfee6/Scxk903vv3r0ZMWIEf/vb\n3xRQSdJ3UCKNKBpO0e+cyn9UXuPRfQ01bNgwlixZEvseaP/+/Xz22Wd17r9nzx46d+5MixYtePfd\ndysdnbZp0yb+8pe/APDb3/6W4cOHx+qiBwi89NJLsS22Sy+9lF/+8pexNtEDBy688EJ++9vfAvCn\n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\nEZFQ+v8B3fIZuucvKF0AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(alphas[y == 0, 0], np.zeros((50)),\n", " color='red', marker='^', alpha=0.5)\n", "plt.scatter(alphas[y == 1, 0], np.zeros((50)),\n", " color='blue', marker='o', alpha=0.5)\n", "plt.scatter(x_proj, 0, color='black',\n", " label='original projection of point X[25]', marker='^', s=100)\n", "plt.scatter(x_reproj, 0, color='green',\n", " label='remapped point X[25]', marker='x', s=500)\n", "plt.legend(scatterpoints=1)\n", "\n", "plt.tight_layout()\n", "# plt.savefig('./figures/reproject.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAD8CAYAAABkbJM/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X2QVPWd7/H3l+FpAREGiAIDYZQJEXxgYXjIKqIVCWhq\nQzRq9LqKubpoRRKWuqm9ZFPxJpXaWrOViHhFXU2M6Ho1ogGphASN0aAbRYZaYXlyQUAYQIWBARxg\nBpjv/eN3DtPM9HQfpnsemPm8qrq6z+/h9O/Xp+d85pw+02PujoiISDadWnsAIiJydlBgiIhIIgoM\nERFJRIEhIiKJKDBERCQRBYaIiCSiwBARkUTyEhhmNs3MPjCzLWY2N029mdnDUf1aMxuTUveUmX1q\nZuvq9fmRme0ys/ej23X5GKuIiDRNzoFhZgXAAuBaYCRwq5mNrNfsWqAkus0EHkupexqY1sjq57n7\n6Oi2LNexiohI03XOwzrGA1vcfSuAmb0ATAc2pLSZDjzj4c/K3zWzPmY20N33uPsKMxuWh3HQv39/\nHzYsL6sSEekwVq9evc/dB2Rrl4/AGAzsTFkuByYkaDMY2JNl3d8xszuAMuB/ufuBTI2HDRtGWVlZ\nokGLiEhgZh8ladeWP/R+DLgAGE0Ilp+na2RmM82szMzK9u7d25LjExHpUPIRGLuAISnLRVHZmbY5\njbt/4u4n3b0WeJJw6itduyfcvdTdSwcMyHpEJdIqqmqqyPcXfbo7VTVVeV2nSCb5CIxVQImZFZtZ\nV+AWYGm9NkuBO6KrpSYCB9094+koMxuYsng9sK6xtiJtWVVNFZOfnsyc5XPyFhruzpzlc5j89GSF\nhrSYnD/DcPcTZjYLWA4UAE+5+3ozuzeqfxxYBlwHbAGOAN+K+5vZ88BVQH8zKwf+j7v/EvhXMxsN\nOLAduCfXsYq0pOPHj1NeXs7Ro0cZ2Wsk81fOZ//+/cwdPRcza/J63Z0H3n+AZzc/y+0lt/PRlo9y\nWp90HN27d6eoqIguXbo0qX8+PvQmuuR1Wb2yx1MeO3BfI31vbaT89nyMTaS1lJeXc8455zBs2DAW\nXrSQwuWFzF85n8LCQuZNndeknXx8ZPHs5meZPWF2k9cjHY+7U1FRQXl5OcXFxU1aR14CQ0QaOnbs\nGMOGDTu1Q583dR4A81fOP7V8Jjv7OCzmr5yvsJAzZmb069ePXC4OUmCINKPUHbqZNTk0FBaSD7m+\nZxQYIi2oKaGhsJC2oi3/HYZIuxSHxuwJs5m/cn7Gq6faW1j8zd/8TdY2Dz30EEeOHElbN2zYMC65\n5JK0f6C7aNEiRo0aRadOnRrU/8u//AvDhw9nxIgRLF++/FT56tWrueSSSxg+fDjf/e53G90OjfVP\nYsWKFYwZM4bOnTvz0ksvnVa3cOFCSkpKKCkpYeHChafKt23bxoQJExg+fDjf/OY3qampSbvuxvrf\ndtttFBYWNni+nLl7u7mNHTvWRdqKDRs2ZKyvra312b+f7fwIn/372V5bW3tG9e3V5z//ed+7d+8Z\n123YsME3bdrkkydP9lWrVp0qX79+vV966aV+7Ngx37p1q19wwQV+4sQJd3cfN26cv/POO15bW+vT\npk3zZcuWNVhvpv5JbNu2zdesWeO33367L1q06FR5RUWFFxcXe0VFhe/fv9+Li4t9//797u5+0003\n+fPPP+/u7vfcc48/+uijDdabqb+7+4wZM057vtTXqT6gzBPsY3WEIdJKMh1peB6OLLZv385FF13E\n3//93zNq1Ci+8pWvcPToUQA+/PBDpk2bxtixY5k0aRKbNm3i5MmTFBcX4+5UVlZSUFDAihUrALjy\nyivZvHnzaet/+umnmT59OldddRUlJSX8+Mc/PlX34IMPcvHFF3PxxRfz0EMPnSrv1asXAG+++SZX\nXXUVN954I1/84he57bbbcHcefvhhdu/ezdVXX83VV199RvO96KKLGDFiRIPyV155hVtuuYVu3bpR\nXFzM8OHDee+999izZw+HDh1i4sSJmBl33HEHS5YsSdw/qWHDhnHppZfSqdPpu9vly5czZcoUCgsL\n6du3L1OmTOEPf/gD7s6f/vQnbrzxRgBmzJiRdlyN9W9O+gxDpBU19plGvk5Dbd68meeff54nn3yS\nm2++mZdffpm/+7u/Y+bMmTz++OOUlJSwcuVKvv3tb/OnP/2JESNGsGHDBrZt28aYMWN46623mDBh\nAjt37qSkpKTB+t977z3WrVtHjx49GDduHF/96lcxM371q1+xcuVK3J0JEyYwefJk/vqv//q0vv/5\nn//J+vXrGTRoEJdffjn/8R//wXe/+10efPBB3njjDfr379+kOde3a9cuJk6ceGq5qKiIXbt20aVL\nF4qKihqUJ+2fj3ENGVL3BRjxeisqKujTpw+dO3fOOq50/ZuTAkOkldUPjTg48vGZRXFxMaNHjwZg\n7NixbN++nc8++4y//OUv3HTTTafaVVdXAzBp0iRWrFjBtm3b+P73v8+TTz7J5MmTGTduXNr1T5ky\nhX79+gFwww038Pbbb2NmXH/99fTs2fNU+VtvvdUgMMaPH39qhz169Gi2b9/OFVdc0eS5SvPTKSmR\nNiA1NGL5+IC7W7dupx4XFBRw4sQJamtr6dOnD++///6p28aNG4Fw6umtt97ivffe47rrrqOyspI3\n33yTSZMmNTruTMtnOrbmMHjwYHburPuy7PLycgYPHszgwYMpLy9vUJ60f3ONq1+/flRWVp56PVp6\nXJkoMETagPgzi1T5/O6pVL1796a4uJhFixadeu41a9YA4bf+v/zlL3Tq1Inu3bszevRo/u3f/o0r\nr7wy7bpee+019u/fz9GjR1myZAmXX345kyZNYsmSJRw5coSqqioWL17caOCkc84553D48OHcJxr5\n2te+xgsvvEB1dTXbtm1j8+bNjB8/noEDB9K7d2/effdd3J1nnnmG6dOnJ+4PcMcdd5zR5xmppk6d\nyquvvsqBAwc4cOAAr776KlOnTsXMuPrqq09d4bRw4cK042qsf3NSYIi0svofcNfeX5vokttcPPfc\nc/zyl7/ksssuY9SoUbzyyitA+K1/yJAhp87ZT5o0icOHD3PJJZekXc/48eP5xje+waWXXso3vvEN\nSktLGTNmDHfeeSfjx49nwoQJ3H333Q1OR2Uyc+ZMpk2bdsYfei9evJiioiLeeecdvvrVr57aeY4a\nNYqbb76ZkSNHMm3aNBYsWEBBQQEAjz76KHfffTfDhw/nwgsv5NprrwVg6dKl3H///Vn7r127lkGD\nBmUc16pVqygqKmLRokXcc889jBo1CoDCwkJ++MMfMm7cOMaNG8f9999PYWEhAD/96U958MEHGT58\nOBUVFdx1110AlJWVcffdd2ft32ySXEp1ttx0Wa20Jdkuq3Vv/NLZs+GS2l/96ld+3333tehzZrqs\ntqUdPHjQb7zxxtYeRqN0Wa1IO+IZLp09kz/u60gGDBjAl7/85TbxnzV79+596rReW3Pbbbfx5z//\nme7du+d1vbpKSqQVZAqLWC7fPdUS7rzzTu68884Wfc5Vq1a16POdrZ577rlmWa8CQ6QZuXuDHXyS\nsIi19dCQs0uuR6kKDJFm0r17dyoqKujXr9+pHfyZhEVMoSH54B7+H0Yup6kUGCLNpKioiPLy8lP/\n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\nGeH75dTJIAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "X, y = make_moons(n_samples=100, random_state=123)\n", "alphas, lambdas = rbf_kernel_pca(X[:-1, :], gamma=15, n_components=1)\n", "\n", "def project_x(x_new, X, gamma, alphas, lambdas):\n", " pair_dist = np.array([np.sum((x_new - row)**2) for row in X])\n", " k = np.exp(-gamma * pair_dist)\n", " return k.dot(alphas / lambdas)\n", "\n", "# projection of the \"new\" datapoint\n", "x_new = X[-1]\n", "\n", "x_reproj = project_x(x_new, X[:-1], gamma=15, alphas=alphas, lambdas=lambdas)\n", "\n", "\n", "plt.scatter(alphas[y[:-1] == 0, 0], np.zeros((50)),\n", " color='red', marker='^', alpha=0.5)\n", "plt.scatter(alphas[y[:-1] == 1, 0], np.zeros((49)),\n", " color='blue', marker='o', alpha=0.5)\n", "plt.scatter(x_reproj, 0, color='green',\n", " label='new point [ 100.0, 100.0]', marker='x', s=500)\n", "plt.legend(scatterpoints=1)\n" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt8VPWd//HXJ1wFQQgXBQISJVq5GSFcXFF0rYK4lVWx\n6mKVqkV0bfmxtS3W9dKy3Wp1RWypVq2I1lWLN9iWikoVpVYgWEBuCgLKJXIJdwIEyOf3x5lJJskk\nmWQmcBLez8djHjPnfL/fc77fmcm855w5OcfcHRERkbBJO9YdEBERiUcBJSIioaSAEhGRUFJAiYhI\nKCmgREQklBRQIiISSgooEREJpZQElJkNNbPPzGy1mY2PU25m9nikfImZ9Ykpe9bMtpjZ0jJtHjCz\njWa2KHIbloq+iohI3ZB0QJlZA2AycBnQHbjezLqXqXYZkBW5jQaeiCl7DhhaweInunt25DYz2b6K\niEjd0TAFy+gPrHb3NQBm9jIwHFgeU2c48LwHp6342MxamVkHd89z9w/MrGsK+kHbtm29a9eULEpE\nRGrJwoULt7l7u6rqpSKgOgHrY6Y3AAMSqNMJyKti2d83sxuBXOCH7r6jbAUzG02wVUaXLl3Izc2t\nXu9FROSoMrMvE6kX5oMkngBOA7IJgux/4lVy96fcPcfdc9q1qzKQRUSkjkhFQG0EOsdMZ0TmVbdO\nKe6+2d2PuHsR8DTBrkQRETlOpCKgFgBZZpZpZo2B64AZZerMAG6MHM03ENjl7pXu3jOzDjGTVwJL\nK6orIiL1T9K/Qbn7YTO7E5gFNACedfdlZjYmUv4kMBMYBqwGCoDvRtub2UvAhUBbM9sA3O/uvwd+\nZWbZgAPrgNuS7atImB06dIgNGzZw4MCBY90VkZRo2rQpGRkZNGrUqEbtrT5dDyonJ8d1kITUVWvX\nrqVFixa0adMGMzvW3RFJiruTn5/Pnj17yMzMLFVmZgvdPaeqZYT5IAmR48qBAwcUTlJvmBlt2rRJ\nao+AAkokRBROUp8k+35WQInUYXl5eZx++ul8/fXXx7orIimngBKpwyZMmMC6deuYMGHCse7KUXXf\nfffx7rvvVlrn/fff56OPPopb9sADD9CpUyfuu+8+AFauXMm5555LkyZNeOSRRypc5uzZs+nTpw/Z\n2dkMGjSI1atXA/Dwww+TnZ1NdnY2PXv2pEGDBmzfvh2Am2++mfbt29OzZ89Sy7r33nvp3bs32dnZ\nXHrppWzatCnh8QMsXLiQXr160a1bN37wgx9Q0fEEv/zlL+nWrRtnnnkms2bNqrL9l19+ycUXX0zv\n3r258MIL2bBhQ/H86Nh79OjBk08+WbyskSNHkp6ezquvvlqtMVTJ3evNrW/fvi5SVy1fvrxa9Tdt\n2uRNmzZ1wE844QTPy8urpZ7VTffff78//PDDCZVt3rzZ58+f7z/96U8rbOPunpWVVfw6TZ482W+6\n6aZydWbMmOEXXXRR8fScOXN84cKF3qNHj1L1du3aVfx40qRJfttttyU0rqh+/fr53//+dy8qKvKh\nQ4f6zJkzy9VZtmyZ9+7d2w8cOOBr1qzx0047zQ8fPlxp+xEjRvhzzz3n7u6zZ8/2G264wd3dDx48\n6AcOHHB39z179vipp57qGzduLF7XTTfd5NOmTSvXh3jvayDXE/hM1xaUSB01YcIEioqKADhy5EjS\nW1H79u3j8ssv5+yzz6Znz5688sorQLDVcM4559CrVy9uvvlmDh48CEDXrl25++67yc7OJicnh08+\n+YQhQ4Zw+umnl/p2/fDDD9OvXz969+7N/fffH3fdJ554IuPGjaNHjx5cfPHFbN26FYBFixYxcOBA\nevfuzZVXXsmOHcHZzkaNGlX8bb1r167cf//99OnTh169erFy5UrWrVvHk08+ycSJE8nOzubDDz+s\ndOzt27enX79+VR4ObWbs3r0bgF27dtGxY8dydV566SWuv/764ukLLriA9PT0cvVatmxZ/Hjfvn3V\n+r0mLy+P3bt3M3DgQMyMG2+8kTfffLNcvenTp3PdddfRpEkTMjMz6datG/Pnz6+0/fLly/nnf/5n\nAC666CKmT58OQOPGjWnSpAkABw8eLH7v1SYFlEgdlJeXx5QpUygsLASgsLCQKVOmJPVb1FtvvUXH\njh1ZvHgxS5cuZejQoRw4cIBRo0bxyiuv8Omnn3L48GGeeKLkYgRdunRh0aJFnH/++cWh8fHHHxcH\n0dtvv82qVauYP38+ixYtYuHChXzwwQfl1r1v3z5ycnJYtmwZgwcP5mc/+xkAN954Iw899BBLliyh\nV69exfPLatu2LZ988gm33347jzzyCF27dmXMmDGMGzeuuH+p8MwzzzBs2DAyMjJ44YUXGD++9NWF\nCgoKeOutt7j66qsTWt4999xD586defHFF/n5z3+ecD82btxIRkZG8XRGRgYbN5Y/Oc/GjRvp3Llz\n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\nOuusuKfqqcklKhJpn6iuXbvSu3dv0tJKfzzPmjWLSy65hPT0dFq3bs0ll1zCW2+9hbvz17/+lREj\nRgDBSXXj9aui9mGm36BE6piyv0lFf5dKxW69VatW8dJLL/H000/z7W9/m9dee40bbriB0aNH8+ST\nT5KVlcW8efO44447+Otf/8qZZ57J8uXLWbt2LX369OHDDz9kwIABrF+/nqysrHLLnz9/PkuXLqVZ\ns2b069ePyy+/HDNjypQpzJs3D3dnwIABDB48mHPOOadU23/84x8sW7aMjh07ct555/G3v/2NH/zg\nBzz66KO89957tG3btsbjjrVx40YGDhxYPB29FEWjRo0SvsRFvPap6Fe8S2fk5+fTqlWr4tMjVffS\nG2GmgBKpg6IhFQ0nqP7/ScWTmZlJdnY2UHLpir179/LRRx9xzTXXFNeLXrTw/PPP54MPPmDt2rXc\nfffdPP300wwePJh+/frFXf4ll1xCmzZtgOASGXPnzsXMuPLKK4vPYXfVVVfx4Ycflguo/v37FwdE\ndnY269atY9CgQUmNV8JNu/hE6qDobr1Y8Q6cqK7YS2ZEL11RVFREq1atii+ZsWjRIlasWAEEu/I+\n/PBD5s+fz7Bhw9i5cyfvv/9+hSdmLRug1QnUeH2rDTW5REUi7WurX23atGHnzp3Fz8fR7ldtUkCJ\n1DFlf3Mquq+o0qP7ktWyZUsyMzOZNm1a8foXL14MBFs1H330EWlpaTRt2pTs7Gx+97vfccEFF8Rd\n1jvvvMP27dvZv38/b775Jueddx7nn38+b775JgUFBezbt4833nijWlfATfVlNWpyiYpE2kNwheDq\n/B4Va8iQIbz99tvs2LGDHTt28PbbbzNkyBDMjIsuuqj4CLypU6fG7VdF7cNMASVSh1R0QERVh6An\n68UXX+T3v/89Z599Nj169Cg+GW2TJk3o3Llz8W8u559/Pnv27KnwMgz9+/fn6quvpnfv3lx99dXk\n5OTQp08fRo0aRf/+/RkwYAC33nprud17lRk9ejRDhw6t9kESb7zxBhkZGfz973/n8ssvL/6wjr1E\nxdChQ8tdouLWW2+lW7dunH766aUucRE98Wxl7ZcsWVLlZdIXLFhARkYG06ZN47bbbqNHjx4ApKen\nc++999KvXz/69evHfffdV3zl3oceeohHH32Ubt26kZ+fX3xRyNzcXG699dYq24dWIof61ZWbDjOX\n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\nKBERCaX/DwScVPaqXTuhAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(alphas[y[:-1] == 0, 0], np.zeros((50)),\n", " color='red', marker='^', alpha=0.5)\n", "plt.scatter(alphas[y[:-1] == 1, 0], np.zeros((49)),\n", " color='blue', marker='o', alpha=0.5)\n", "plt.scatter(x_proj, 0, color='black',\n", " label='some point [1.8713, 0.0093]', marker='^', s=100)\n", "plt.scatter(x_reproj, 0, color='green',\n", " label='new point [ 100.0, 100.0]', marker='x', s=500)\n", "plt.legend(scatterpoints=1)\n", "\n", "plt.tight_layout()\n", "# plt.savefig('./figures/reproject.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Kernel principal component analysis in scikit-learn" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn.decomposition import KernelPCA\n", "\n", "X, y = make_moons(n_samples=100, random_state=123)\n", "scikit_kpca = KernelPCA(n_components=2, kernel='rbf', gamma=15)\n", "X_skernpca = scikit_kpca.fit_transform(X)\n", "\n", "plt.scatter(X_skernpca[y == 0, 0], X_skernpca[y == 0, 1],\n", " color='red', marker='^', alpha=0.5)\n", "plt.scatter(X_skernpca[y == 1, 0], X_skernpca[y == 1, 1],\n", " color='blue', marker='o', alpha=0.5)\n", "\n", "plt.xlabel('PC1')\n", "plt.ylabel('PC2')\n", "plt.tight_layout()\n", "# plt.savefig('./figures/scikit_kpca.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "# Summary" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "..." ] } ], "metadata": { "anaconda-cloud": {}, "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.0" } }, "nbformat": 4, "nbformat_minor": 1 }