Last active
August 10, 2016 11:27
-
-
Save Gijs-Koot/b109b9d55e7535db3f5413c96ed8f826 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Populating the interactive namespace from numpy and matplotlib\n" | |
] | |
}, | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"WARNING: pylab import has clobbered these variables: ['logistic']\n", | |
"`%matplotlib` prevents importing * from pylab and numpy\n" | |
] | |
} | |
], | |
"source": [ | |
"%pylab inline" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 41, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"from sklearn import linear_model, decomposition, datasets\n", | |
"\n", | |
"digits = datasets.load_digits(10)\n", | |
"X_digits = digits.data\n", | |
"y_digits = digits.target" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 42, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([ 0., 0., 0., 12., 13., 5., 0., 0., 0., 0., 0.,\n", | |
" 11., 16., 9., 0., 0., 0., 0., 3., 15., 16., 6.,\n", | |
" 0., 0., 0., 7., 15., 16., 16., 2., 0., 0., 0.,\n", | |
" 0., 1., 16., 16., 3., 0., 0., 0., 0., 1., 16.,\n", | |
" 16., 6., 0., 0., 0., 0., 1., 16., 16., 6., 0.,\n", | |
" 0., 0., 0., 0., 11., 16., 10., 0., 0.])" | |
] | |
}, | |
"execution_count": 42, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"digits.data[1]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 43, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7f8530426390>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"data": { | |
"image/png": "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\nkDplSgAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7f856859dcc0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAMAAAADSCAYAAAAcws+XAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAADSFJREFUeJzt3W9sXfV9x/H3xzGkSU2SdukAYXDGEM26PxikhQdJNbO1\nJdA25Um1/gWyiU0aHdBNHQhNI2xP0J40SNuTiUBKC2tVuqSpxFiQaLLRrRBKAinEg5UlTRjOmBqb\n0gxEyXcPzol0Z+z459zfOb727/OSrnz/nPv11/b9+Jx77vmdnyICs1L1zXUDZnPJAbCiOQBWNAfA\niuYAWNEcACuaA2BFcwC6IOlGSXskvSHp3kmPfUbSTyW9Vl9+JumEpEvrx5dL2irpqKQxSXdMev5j\nkv5b0rikvZI2zLK3L0p6pX7+PZLO6P4nXngcgO68DPwVsGXyAxHxYEScFRHLImIZ8EfAjyJib73I\nZmAJcAFwOfB5Sdd1lLgZOC8iVgB/CHxN0tkpTUm6Evgz4ApgCPhl4M7T+QEXOgegCxGxPSJ2AD9J\nWPw64P6O2x8D/joi3oyIQ1Qh+r2O2vsj4q2O5fuB8xNbuxbYEhGjETEB/CWwMfG5RXEAWiBpCPgg\n/z8AAOq43gf82qTnfUfS/wLfB3ZFxFP1/edL+omkwWm+5a8Cz3Tcfgb4RUnv6eLHWJAcgHZcC/xL\n/Z/+pEeAWyUNSLqI6j/00s4nRcTHgQHgKmBnx/2HI+K9EXFkmu83AEx03H6NKmxndf2TLDAOQDs+\nD2yddN8fA28CLwLbgAeBd7ygI+LtiPgn4EpJH0v8fq8DyzpuLwcC+Ons2l74HICGSVoLnAt8q/P+\niBiPiM9FxLkR8evAIuDJU5Tqp3ozm+I54JKO28PA0Yg4lt55GRyALkhaJOldVC/efkmLJS2atNh1\nwLci4meTnnuhpPdK6pN0FXAD1R4lJL1f0npJ75LUL+lzVO8hdie2dj/w+5J+pd7u/3PgvtP/SRew\niPDlNC/AHcAJ4O2Oy190PL6Yag/RyBTP/STVbtTXgaeBD3U8tprqje9E/fwngA0dj59PtV0/eIre\nbgHGgHHgHuCMuf599eJF9S/LrEjeBLKiOQBWNAfAitafq5Akv5mwnhURmur+bAGov8mMy2zatIlN\nmzbl/Lazqrl169ak5bZv384111yTtOzGjfkPs7nkkktmXggYGxvjnHPOSVp21apVScuNjo6yevXq\npGVTf5933XUXt912W9KyK1asSFou9e8uTfnaB7wJZIVzAKxorQdgZGRkXtRM3QSYawMDA9lrrly5\nMnvNdevWZa+Z4+/uAEzDAcjLATDrQUkBqA/MGpX0gqRbm27KrC0zBkBSH/A3wJVUI40+LWl+bB+Y\nzSBlDbAGeDEiDkU1RvXrwCeabcusHSkBOA843HH7SH2f2byX9ZPgzk/lRkZGGtk7YzaTXbt2sWvX\nrqRlUwLwMtW5a04arO97h9yHOJidjsn/fO+8c/pTIqVsAu0BLpI0JOlM4FPAji57NOsJM64BIuJt\nSV+gOi1HH9UJlw403plZC5LeA0TEI8D7G+7FrHX+JNiK5gBY0RwAK5oDYEXLdl4gSTEfzjF0quFx\np2v58uXZaw4PD2evuXt36onl0h07lv9si6lDIlNJmnZMsNcAVjQHwIrmAFjRHAArmgNgRXMArGgO\ngBUtZUzwlnoy52fbaMisTSlrgPuoBsSbLTgzBiAiHgc8uZotSH4PYEXzoHhbcGYzKD7pYDhJQ8B3\nIuI3TrGMD4bLyAfD5ZPjYDjVF7MFJWU36IPAvwIXS/qxpPzToZjNkZSzQnymjUbM5oL3AlnRHAAr\nmgNgRXMArGhZPwjLbd++fXPdQpImTgp8yy23ZK/ZxGcL27dvz17z+uuvz15zOl4DWNEcACuaA2BF\ncwCsaA6AFc0BsKI5AFa0lKNBByU9Juk5Sfsl3dRGY2ZtSPkg7OfAn0TEPkkDwA8k7YyI0YZ7M2tc\nyqD4sYjYV19/HTiAJ8q2BWJW7wEkrQKGgSeaaMasbcnHAtWbPw8BN9drgnfwoHjrBblnikdSP9WL\n/6sR8e3plvNM8dYLcs8UD3Av8HxE3N1VZ2Y9JmU36Frgs8BvS9or6WlJ65tvzax5KYPivwcsaqEX\ns9b5k2ArmgNgRXMArGgOgBWtpwfFj4+Pz3ULSZoYwN6EJgbFHzx4MHvNNnkNYEVzAKxoDoAVzQGw\nojkAVjQHwIo2425QSYuBfwbOrJd/KCKmP77UbB5JORjuTUlXRMRxSYuA70n6x4h4soX+zBqVtAkU\nEcfrq4upQtP700GaJUgKgKQ+SXuBMeDRiNjTbFtm7UhdA5yIiEuBQeBySR9oti2zdszqWKCIeE3S\nd4H1wPOTH/egeOsFWQfFS1oJvBURE5KWAB8G7ppqWQ+Kt14wm0HxKWuAc4GvSOqj2mT6RkQ83GWP\nZj0hZTfofuCyFnoxa50/CbaiOQBWNAfAiuYAWNEcACuaA2BF6+mzQqR+mmdpmvh9zvcPP70GsKI5\nAFY0B8CK5gBY0RwAK1pyAOpRYU9L2tFkQ2Ztms0a4GamGARjNp+ljgkeBK4G7mm2HbN2pa4Bvgx8\nCZ8NwhaYlFkiPwocjYh9gOqL2YKQcijEWmCDpKuBJcBZku6PiGsnL+hB8dYLsg6Kj4jbgdsBJP0W\n8KdTvfhh/h8XYgtDEzPFmy1Isz0v0G5gd0O9mLXOawArmgNgRXMArGgOgBXNAbCiOQBWtJ4eFD88\nPDzXLSTZvHlz9poHDx7MXvPQoUPZa65YsSJ7zTZ5DWBFcwCsaA6AFc0BsKI5AFa0pL1Akg4CE8AJ\nqvnC1jTZlFlbUneDngBGIuJYk82YtS11E0izWNZs3kh9UQfwqKQ9km5osiGzNqVuAq2NiFckvY8q\nCAci4vHJC3lMsPWCrGOCASLilfrrq5K2AWuAUwbAbK5kHRMsaamkgfr6u4GPAD/sukuzHpCyBjgb\n2CYp6uUfiIidzbZl1o6U06L8JzA/Dss0myXv2rSiOQBWNAfAiuYAWNEcACuaA2BFU0SeOS8kRa5a\nJ42Pj2etB7Bq1arsNScmJrLXnC+OHct/gHDugfaSiIgp57XwGsCK5gBY0RwAK5oDYEVzAKxoqfME\nL5f0TUkHJD0n6fKmGzNrQ+qIsLuBhyPik5L6gaUN9mTWmhkDIGkZ8MGIuB4gIn4OvNZwX2atSNkE\n+iXgfyTdJ+lpSX8naUnTjZm1IWUTqB+4DLgxIp6StBm4Dbhj8oIeFG+9YDaD4mc8FELS2cC/RcSF\n9e11wK0R8fFJy/lQiAIt+EMhIuIocFjSxfVdvwM8n7E/szmTuhfoJuABSWcALwEbm2vJrD2p5wV6\nBvjNhnsxa50/CbaiOQBWNAfAiuYAWNEcACuaA2BF6+mZ4puYhbyJWd03bsz/scjQ0FD2mk2cvt4z\nxZvNYw6AFc0BsKI5AFY0B8CKljJH2MWS9tajwfZKmpB0UxvNmTUtZYqkF4BLAST1AUeAbQ33ZdaK\n2W4CfQj4UUQcbqIZs7bNNgC/C/x9E42YzYXkT4Lr0WAbqAbET8mD4q0XZJ8pvnYV8IOIeHW6BTxT\nvPWCrDPFd/g03vyxBSb13KBLqd4A/0Oz7Zi1K3VQ/HHgfQ33YtY6fxJsRXMArGitByB199Rc1xwd\nHc1eswlvvPFG9ppN/Oy9+nd3AKbhAOTVq393bwJZ0RwAK1rWmeKzFDJrwHSnR88WALP5yJtAVjQH\nwIrmAFjRWguApPWSRiW9IOnWTDW3SDoq6dlM9QYlPVZPBr4/x9hnSYslPVGPp94v6R2TC3ZRu68e\nq70jU72Dkp6pe30yU82sk6xnH6MeEY1fqIL2H8AQcAawD1idoe46YBh4NlOf5wDD9fUB4N8z9bm0\n/roI+D6wJlO/XwS+BuzIVO8l4D2Z//ZbgY319X5gWebX1X8B559ujbbWAGuAFyPiUES8BXwd+ES3\nRSPicSDbNIURMRYR++rrrwMHgPMy1D1eX11M9SLoetebpEHgauCebmt1liXjVkHHJOv3QTXJekTk\nnGS96zHqbQXgPKCzySNkeGE1SdIqqrXLExlq9UnaC4wBj0bEnm5rAl8GvkSGMHUI4FFJeyTdkKFe\n05Osdz1G3W+CpyBpAHgIuLleE3QlIk5ExKXAIHC5pA902d9HgaP12kr1JYe1EXEZ1ZrlxnpO6G6c\nnGT9b+u6xznFmPLZ6Bij/s1u6rQVgJeBCzpuD9b39RxJ/VQv/q9GxLdz1q5X/98F1ndZai2wQdJL\nVP8Br5B0f4b+Xqm/vkp17qc1XZY8AhyOiKfq2w9RBSKHGceop2grAHuAiyQNSToT+BSQZc8Fef8D\nAtwLPB8Rd+coJmmlpOX19SXAh4GuDreMiNsj4oKIuJDqd/lYRFzbZZ9L6zUfkt4NfAT4YZd9NjnJ\nepYx6q1MkBERb0v6ArCTKnRbIuJAt3UlPQiMAL8g6cfAHSffcJ1mvbXAZ4H99TZ7ALdHxCNdtHku\n8JX6rHp9wDci4uEu6jXlbGBbfUxXP/BAROzMUDf7JOsdY9T/oOta9e4ksyL5TbAVzQGwojkAVjQH\nwIrmAFjRHAArmgNgRfs/bwrCR3hIWAIAAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7f85301d2940>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"data": { | |
"image/png": "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\nRU5ErkJggg==\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7f85301c4b70>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"import random\n", | |
"\n", | |
"n = 4\n", | |
"\n", | |
"for i in random.sample(list(range(len(X_digits))), 4):\n", | |
" \n", | |
" plt.figure(figsize=(3,3))\n", | |
" plt.imshow(digits.data[i].reshape(8, 8), interpolation='nearest', cmap=plt.cm.gray_r, )\n", | |
" plt.title(\"%s: %s\" % (i, y_digits[i]))\n", | |
" plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 96, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"LogisticRegression(C=0.4, class_weight=None, dual=False, fit_intercept=True,\n", | |
" intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,\n", | |
" penalty='l2', random_state=None, solver='liblinear', tol=0.0001,\n", | |
" verbose=0, warm_start=False)" | |
] | |
}, | |
"execution_count": 96, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"from sklearn.cross_validation import train_test_split\n", | |
"\n", | |
"X_train, X_test, y_train, y_test = train_test_split(X_digits, y_digits, random_state=42, test_size=.8)\n", | |
"\n", | |
"pca = decomposition.PCA(n_components=5)\n", | |
"log = linear_model.LogisticRegression(C=.4)\n", | |
"\n", | |
"X_tr = pca.fit_transform(X_train) # create a transformer\n", | |
"log.fit(X_tr, y_train)\n", | |
"\n", | |
"# prediction = log.predict(X_test)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 54, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" precision recall f1-score support\n", | |
"\n", | |
" 0 0.90 0.99 0.95 134\n", | |
" 1 0.76 0.71 0.73 144\n", | |
" 2 0.80 0.94 0.87 144\n", | |
" 3 0.73 0.82 0.77 147\n", | |
" 4 0.85 0.90 0.88 140\n", | |
" 5 0.82 0.95 0.88 149\n", | |
" 6 0.86 0.97 0.91 150\n", | |
" 7 0.75 0.90 0.82 149\n", | |
" 8 0.76 0.23 0.35 135\n", | |
" 9 0.74 0.58 0.65 146\n", | |
"\n", | |
"avg / total 0.80 0.80 0.78 1438\n", | |
"\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"0.80180806675938809" | |
] | |
}, | |
"execution_count": 54, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"from sklearn.metrics import classification_report\n", | |
"\n", | |
"prediction = log.predict(pca.transform(X_test))\n", | |
"print(classification_report(y_test, prediction))\n", | |
"log.score(pca.transform(X_test), y_test)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 94, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"from sklearn.pipeline import Pipeline\n", | |
"\n", | |
"logistic = linear_model.LogisticRegression()\n", | |
"\n", | |
"pca = decomposition.PCA()\n", | |
"pipe = Pipeline(steps=[\n", | |
" ('pca', pca), \n", | |
" ('log', logistic)\n", | |
"])\n", | |
"\n", | |
"params = {\n", | |
" 'pca__n_components': [5, 10, 20],\n", | |
" 'log__C': [0.01, .2, .4, .6, 1, 10]\n", | |
"}" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 72, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"from sklearn.grid_search import GridSearchCV\n", | |
"\n", | |
"classifier = GridSearchCV(pipe, params, scoring='accuracy')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 73, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"{'cv': None,\n", | |
" 'error_score': 'raise',\n", | |
" 'estimator': Pipeline(steps=[('pca', PCA(copy=True, n_components=None, whiten=False)), ('log', LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n", | |
" intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,\n", | |
" penalty='l2', random_state=None, solver='liblinear', tol=0.0001,\n", | |
" verbose=0, warm_start=False))]),\n", | |
" 'estimator__log': LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n", | |
" intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,\n", | |
" penalty='l2', random_state=None, solver='liblinear', tol=0.0001,\n", | |
" verbose=0, warm_start=False),\n", | |
" 'estimator__log__C': 1.0,\n", | |
" 'estimator__log__class_weight': None,\n", | |
" 'estimator__log__dual': False,\n", | |
" 'estimator__log__fit_intercept': True,\n", | |
" 'estimator__log__intercept_scaling': 1,\n", | |
" 'estimator__log__max_iter': 100,\n", | |
" 'estimator__log__multi_class': 'ovr',\n", | |
" 'estimator__log__n_jobs': 1,\n", | |
" 'estimator__log__penalty': 'l2',\n", | |
" 'estimator__log__random_state': None,\n", | |
" 'estimator__log__solver': 'liblinear',\n", | |
" 'estimator__log__tol': 0.0001,\n", | |
" 'estimator__log__verbose': 0,\n", | |
" 'estimator__log__warm_start': False,\n", | |
" 'estimator__pca': PCA(copy=True, n_components=None, whiten=False),\n", | |
" 'estimator__pca__copy': True,\n", | |
" 'estimator__pca__n_components': None,\n", | |
" 'estimator__pca__whiten': False,\n", | |
" 'estimator__steps': [('pca', PCA(copy=True, n_components=None, whiten=False)),\n", | |
" ('log',\n", | |
" LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n", | |
" intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,\n", | |
" penalty='l2', random_state=None, solver='liblinear', tol=0.0001,\n", | |
" verbose=0, warm_start=False))],\n", | |
" 'fit_params': {},\n", | |
" 'iid': True,\n", | |
" 'n_jobs': 1,\n", | |
" 'param_grid': {'log__C': [0.01, 0.2, 0.4, 0.6, 1, 10],\n", | |
" 'pca__n_components': [5, 10, 20]},\n", | |
" 'pre_dispatch': '2*n_jobs',\n", | |
" 'refit': True,\n", | |
" 'scoring': 'accuracy',\n", | |
" 'verbose': 0}" | |
] | |
}, | |
"execution_count": 73, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"classifier.get_params()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 74, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"GridSearchCV(cv=None, error_score='raise',\n", | |
" estimator=Pipeline(steps=[('pca', PCA(copy=True, n_components=None, whiten=False)), ('log', LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n", | |
" intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,\n", | |
" penalty='l2', random_state=None, solver='liblinear', tol=0.0001,\n", | |
" verbose=0, warm_start=False))]),\n", | |
" fit_params={}, iid=True, n_jobs=1,\n", | |
" param_grid={'log__C': [0.01, 0.2, 0.4, 0.6, 1, 10], 'pca__n_components': [5, 10, 20]},\n", | |
" pre_dispatch='2*n_jobs', refit=True, scoring='accuracy', verbose=0)" | |
] | |
}, | |
"execution_count": 74, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"classifier.fit(X_digits, y_digits)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 75, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"{'log__C': 0.2, 'pca__n_components': 20}" | |
] | |
}, | |
"execution_count": 75, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"classifier.best_params_" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 76, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[mean: 0.73734, std: 0.00697, params: {'log__C': 0.01, 'pca__n_components': 5},\n", | |
" mean: 0.86199, std: 0.01699, params: {'log__C': 0.01, 'pca__n_components': 10},\n", | |
" mean: 0.89204, std: 0.00523, params: {'log__C': 0.01, 'pca__n_components': 20},\n", | |
" mean: 0.78798, std: 0.00431, params: {'log__C': 0.2, 'pca__n_components': 5},\n", | |
" mean: 0.88536, std: 0.00840, params: {'log__C': 0.2, 'pca__n_components': 10},\n", | |
" mean: 0.91987, std: 0.01469, params: {'log__C': 0.2, 'pca__n_components': 20},\n", | |
" mean: 0.80078, std: 0.00631, params: {'log__C': 0.4, 'pca__n_components': 5},\n", | |
" mean: 0.88592, std: 0.00771, params: {'log__C': 0.4, 'pca__n_components': 10},\n", | |
" mean: 0.91764, std: 0.01207, params: {'log__C': 0.4, 'pca__n_components': 20},\n", | |
" mean: 0.80189, std: 0.00520, params: {'log__C': 0.6, 'pca__n_components': 5},\n", | |
" mean: 0.88648, std: 0.00568, params: {'log__C': 0.6, 'pca__n_components': 10},\n", | |
" mean: 0.91764, std: 0.00939, params: {'log__C': 0.6, 'pca__n_components': 20},\n", | |
" mean: 0.80356, std: 0.00231, params: {'log__C': 1, 'pca__n_components': 5},\n", | |
" mean: 0.88870, std: 0.00354, params: {'log__C': 1, 'pca__n_components': 10},\n", | |
" mean: 0.91708, std: 0.00720, params: {'log__C': 1, 'pca__n_components': 20},\n", | |
" mean: 0.80579, std: 0.00264, params: {'log__C': 10, 'pca__n_components': 5},\n", | |
" mean: 0.89037, std: 0.00570, params: {'log__C': 10, 'pca__n_components': 10},\n", | |
" mean: 0.91597, std: 0.00309, params: {'log__C': 10, 'pca__n_components': 20}]" | |
] | |
}, | |
"execution_count": 76, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"classifier.grid_scores_" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 80, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>parameters</th>\n", | |
" <th>mean_validation_score</th>\n", | |
" <th>cv_validation_scores</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>{'log__C': 0.01, 'pca__n_components': 5}</td>\n", | |
" <td>0.737340</td>\n", | |
" <td>[0.729235880399, 0.746243739566, 0.736577181208]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>{'log__C': 0.01, 'pca__n_components': 10}</td>\n", | |
" <td>0.861992</td>\n", | |
" <td>[0.872093023256, 0.838063439065, 0.875838926174]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>{'log__C': 0.01, 'pca__n_components': 20}</td>\n", | |
" <td>0.892042</td>\n", | |
" <td>[0.898671096346, 0.891485809683, 0.885906040268]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>{'log__C': 0.2, 'pca__n_components': 5}</td>\n", | |
" <td>0.787980</td>\n", | |
" <td>[0.790697674419, 0.791318864775, 0.781879194631]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>{'log__C': 0.2, 'pca__n_components': 10}</td>\n", | |
" <td>0.885364</td>\n", | |
" <td>[0.895348837209, 0.874791318865, 0.885906040268]</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" parameters mean_validation_score \\\n", | |
"0 {'log__C': 0.01, 'pca__n_components': 5} 0.737340 \n", | |
"1 {'log__C': 0.01, 'pca__n_components': 10} 0.861992 \n", | |
"2 {'log__C': 0.01, 'pca__n_components': 20} 0.892042 \n", | |
"3 {'log__C': 0.2, 'pca__n_components': 5} 0.787980 \n", | |
"4 {'log__C': 0.2, 'pca__n_components': 10} 0.885364 \n", | |
"\n", | |
" cv_validation_scores \n", | |
"0 [0.729235880399, 0.746243739566, 0.736577181208] \n", | |
"1 [0.872093023256, 0.838063439065, 0.875838926174] \n", | |
"2 [0.898671096346, 0.891485809683, 0.885906040268] \n", | |
"3 [0.790697674419, 0.791318864775, 0.781879194631] \n", | |
"4 [0.895348837209, 0.874791318865, 0.885906040268] " | |
] | |
}, | |
"execution_count": 80, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"import pandas as pd\n", | |
"\n", | |
"scores = pd.DataFrame(classifier.grid_scores_)\n", | |
"scores.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 82, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>parameters</th>\n", | |
" <th>mean_validation_score</th>\n", | |
" <th>cv_validation_scores</th>\n", | |
" <th>log__C</th>\n", | |
" <th>pca__n_components</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>{'log__C': 0.01, 'pca__n_components': 5}</td>\n", | |
" <td>0.737340</td>\n", | |
" <td>[0.729235880399, 0.746243739566, 0.736577181208]</td>\n", | |
" <td>0.01</td>\n", | |
" <td>5</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>{'log__C': 0.01, 'pca__n_components': 10}</td>\n", | |
" <td>0.861992</td>\n", | |
" <td>[0.872093023256, 0.838063439065, 0.875838926174]</td>\n", | |
" <td>0.01</td>\n", | |
" <td>10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>{'log__C': 0.01, 'pca__n_components': 20}</td>\n", | |
" <td>0.892042</td>\n", | |
" <td>[0.898671096346, 0.891485809683, 0.885906040268]</td>\n", | |
" <td>0.01</td>\n", | |
" <td>20</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>{'log__C': 0.2, 'pca__n_components': 5}</td>\n", | |
" <td>0.787980</td>\n", | |
" <td>[0.790697674419, 0.791318864775, 0.781879194631]</td>\n", | |
" <td>0.20</td>\n", | |
" <td>5</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>{'log__C': 0.2, 'pca__n_components': 10}</td>\n", | |
" <td>0.885364</td>\n", | |
" <td>[0.895348837209, 0.874791318865, 0.885906040268]</td>\n", | |
" <td>0.20</td>\n", | |
" <td>10</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" parameters mean_validation_score \\\n", | |
"0 {'log__C': 0.01, 'pca__n_components': 5} 0.737340 \n", | |
"1 {'log__C': 0.01, 'pca__n_components': 10} 0.861992 \n", | |
"2 {'log__C': 0.01, 'pca__n_components': 20} 0.892042 \n", | |
"3 {'log__C': 0.2, 'pca__n_components': 5} 0.787980 \n", | |
"4 {'log__C': 0.2, 'pca__n_components': 10} 0.885364 \n", | |
"\n", | |
" cv_validation_scores log__C pca__n_components \n", | |
"0 [0.729235880399, 0.746243739566, 0.736577181208] 0.01 5 \n", | |
"1 [0.872093023256, 0.838063439065, 0.875838926174] 0.01 10 \n", | |
"2 [0.898671096346, 0.891485809683, 0.885906040268] 0.01 20 \n", | |
"3 [0.790697674419, 0.791318864775, 0.781879194631] 0.20 5 \n", | |
"4 [0.895348837209, 0.874791318865, 0.885906040268] 0.20 10 " | |
] | |
}, | |
"execution_count": 82, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"for unpack in \"log__C\", \"pca__n_components\":\n", | |
" scores[unpack] = scores[\"parameters\"].map(lambda x: x[unpack])\n", | |
"\n", | |
"scores.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 95, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th>log__C</th>\n", | |
" <th>0.01</th>\n", | |
" <th>0.2</th>\n", | |
" <th>0.4</th>\n", | |
" <th>0.6</th>\n", | |
" <th>1.0</th>\n", | |
" <th>10.0</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>pca__n_components</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>5</th>\n", | |
" <td>0.737340</td>\n", | |
" <td>0.787980</td>\n", | |
" <td>0.800779</td>\n", | |
" <td>0.801892</td>\n", | |
" <td>0.803561</td>\n", | |
" <td>0.805787</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>10</th>\n", | |
" <td>0.861992</td>\n", | |
" <td>0.885364</td>\n", | |
" <td>0.885921</td>\n", | |
" <td>0.886477</td>\n", | |
" <td>0.888703</td>\n", | |
" <td>0.890373</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>20</th>\n", | |
" <td>0.892042</td>\n", | |
" <td>0.919866</td>\n", | |
" <td>0.917641</td>\n", | |
" <td>0.917641</td>\n", | |
" <td>0.917084</td>\n", | |
" <td>0.915971</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
"log__C 0.01 0.20 0.40 0.60 1.00 10.00\n", | |
"pca__n_components \n", | |
"5 0.737340 0.787980 0.800779 0.801892 0.803561 0.805787\n", | |
"10 0.861992 0.885364 0.885921 0.886477 0.888703 0.890373\n", | |
"20 0.892042 0.919866 0.917641 0.917641 0.917084 0.915971" | |
] | |
}, | |
"execution_count": 95, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"p = scores.pivot(index='pca__n_components', values=\"mean_validation_score\", columns='log__C')\n", | |
"p" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 93, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x7f851b120320>" | |
] | |
}, | |
"execution_count": 93, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAfAAAAFmCAYAAACSk8i4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8VuWd///XOefel9xZ7jsLAQIEUJa4F7XiBmpV1LpQ\nUWtVbKvfdmxn2tp2auuvHVt1xqnaWmdqtynWWimoddeK1A2Busvmxg6B7Pe+nu33R0JIIEjAQBLu\nz/Px4AHxPve5rw9B3lzXOef6KLZt2wghhBBiWFEHewBCCCGE2HcS4EIIIcQwJAEuhBBCDEMS4EII\nIcQwJAEuhBBCDEMS4EIIIcQw5OjPQa+88gq33XYbtm1zySWXcN111/V6PZFIcNNNN7F582Y8Hg+3\n3XYb48ePB2DGjBkEAgFUVcXhcPDwww8PfBVCCCFEkdlrgFuWxU9/+lPmzZtHZWUls2fPZubMmdTX\n13cfc9999zFp0iTuvfde1q9fzy233MK8efMAUBSFBx54gFAodMCKEEIIIYrNXpfQV6xYQV1dHbW1\ntTidTmbNmsXixYt7HbNu3TpOOOEEAMaNG0djYyMdHR0A2LaNZVkHYOhCCCFE8dprgDc3N1NTU9P9\ndVVVFS0tLb2OOfzww1m0aBHQGfjbt2+nqakJ6JyBX3vttVxyySUsWLBgIMcuhBBCFK1+XQPfm69+\n9avceuutXHTRRUycOJFJkyahqp3/NnjooYeorKyko6ODuXPnMm7cOI477riB+FghhBCiaO01wKuq\nqti2bVv3183NzVRWVvY6JhAIcPvtt3d/PWPGDEaNGgXQfWx5eTlnnnkmK1eu3GuAG4aJw6H1vwoh\nhBCiyOw1wBsaGti8eTONjY1EIhGefvpp7rrrrl7HJJNJPB4PTqeTBQsWMG3aNPx+P9lsFsuy8Pv9\nZDIZlixZwg033LDXQUWjmf2vaD9FIkFaW5MH/XMHSzHVW0y1QnHVW0y1QnHVW0y1Qme9+2qvAa5p\nGjfffDPXXnsttm0ze/Zs6uvrmT9/PoqiMGfOHNatW8f3v/99VFVlwoQJ3HrrrQC0tbVxww03oCgK\npmly/vnnM3369H2vTAghhBC9KEOxnehg/KurGP+1Vyz1FlOtUFz1FlOtUFz1FlOtsH8zcNmJTQgh\nhBiGJMCFEEKIYUgCXAghhBiGJMCFEEKIYUgCXAghhBiGDskA/8IXLuCtt94Y7GEIIYQQB8yAbKUq\nOq1Zs4o//vF3rFy5Ak1Tqa0dxYUXXsK5554/2EMTQghxiDkkZ+CDYdWqFfzrv36do48+jgULHuPp\npxdz443/zj//uWywhyaEEOIQdEgHuK7r/PKXd3Lhhedw0UXncs89d2IYRvfrDz54P5///NlcdNG5\nLFy4kJNP/gyNjVv367P+93/vYdas87niii9RUtLZ+3zixMP5j/+4bUBqEUIIIXo6pAP8/vv/wPvv\nr+b++x9i3ry/dP36DwAsX76UBQse4p577mP+/L/x+uuvoyjKfn1OPp9j9eqVnHrqjIEcvhBCCLFH\nh3SAL1r0HHPnfpVQqJRQqJS5c6/jueeeAeDFF1/g3HPPp65uDG63m2984xv7/TnJZBLLsqioCA/U\n0IUQQohPdIgGuIJt27S1tVJVVd39X6urq2lvbwU6G61UVVX1em1/t4UPBoOoqkp7e9unG7YQQgjR\nT4dogIOiKEQilTQ1be/+b01NTVRURACoqKigpaWl+7Xt27fv9xK62+1hypQGXn75H59u0EIIIUQ/\nHaIB3jmTnjnzLO6//w/EYjFisRjz5v2es88+F4AZM87kmWeeZNOmjeRyOX79619/qk/8+te/yTPP\nPMVDD/2ZRCIOwMcff8SPf3zTpytFCCGE6MMh+hx450z6mmu+Qjqd5uqrL0NRFGbMOIOrrroWgBNO\n+CyzZ8/hm9+8HlXVuOGGf+Hxxx/H5XLt1ydOnXoE99zza37/+/u4//4/oGkqI0eO5uKLvzBgVQkh\nhBA7SD/wLolEC+effz4vvrgMVT1EFyZ6KKZeu8VUKxRXvcVUKxRXvcVUK0g/8H32yisvoes6iUSC\nn//850yffkpRhLcQQojh7xBdQu+fxx9/lNtu+wmapnH88cfzb//2HQC+9KVLaW5u3u340tJSotFo\n981utm2jKArf/e4POPPMsw/q2IUQQhS3og7wO++8p/vXPZdrHnhgwWANSQghhOgXWS8WQgghhiEJ\ncCGEEGIYkgAXQgghhiEJcCGEEGIYkgDfB8uXL+WKKy7hsssu5s9/ntfnMb/4xX9z2WUXcc01V/DR\nRx90//fbb7+F888/i6uvvuwgjVYIIcShTAK8nyzL4u677+Cuu+7lz39ewAsvPM+mTRt7HbNs2Ws0\nNm5l/vy/8d3v3sTPf/6f3a+de+4F3HXXrw7yqIUQQhyqJMD7ac2a1YwcOZrq6hocDgczZ57Fq6++\n1OuYJUte5uyzZwEwZcpU0ukUHR3tABx55FEEgyUHe9hCCCEOUcPyOfAF/1jLGx+07P3AfXDKMSM5\n/4TRe3y9ra2Fysqd7UcrKyt5//3VvY5pbW3tdUw4XElrayvl5RUDOlYhhBBCZuBCCCHEMDQsZ+CX\nzhjPpTPGD+g597ZxfjhcSXNzU/fXLS0thMORXc4RoaVl5xasra3NRCK9jxFCCCEGgszA+2nSpMk0\nNm6hqWk7uq6zePHzTJ9+aq9jpk8/heeeexqAVatWEggEey2f27bNEGz+JoQQYhgaljPwwaBpGt/6\n1vf41rf+Bdu2mTXr84wZM5bHHnsERVH4/Ocv5sQTp7Ns2WvMmXMhHo+Xm276cff7f/KTH/LOO2+R\nSMS5+OJZfPnL1zNr1gWDWJEQQojhTPqBdynG3rPFUm8x1QrFVW8x1QrFVW8x1Qr71w9cZuBCCCHE\nQZDWM7Rk2mjNttGaaaM12971o40/XnznPp9PAlwIIYQYALZtkzYy3eG8M6w7QzpjZHd7j6ZohL3l\n+/V5EuBCCCFEP9m23TmT7p5Fd82kM+20ZNvI9hHSDkWjwltBfekYIt4wEW8FEV+YsKcCT0YlvmX/\n9jWRABdCCCF6sG2blJ7unj239FrybiNr5HZ7j0PRCHsrGF86tjOgvWEqfWFK7SB2c4b49g7iGxIk\nYlmiuSbatK0oHhuXz8TryXM0x+3zOCXAhRBCFJ0dIb37Nek2WjLt5Mw+Qlp1EPZWMKG0vmsWXUGF\noxx3TMFqyZJoTJDoSJHTMyTUjSTd63F2BbTHk8dfmydcn8PpNLvPWbAdpPHuVw0S4EIIIQ5Jtm2T\n1FNdId2+y5J3Gzkzv9t7nF0hHfHWE/FVEHZXEMr6cLRb6G0ZUpsT5AtJDCVG1t1Ok9fE683j9eQJ\n1OQJj82jKGDZClk8pPGStr20UkHK8pNRgmSsAGnFS9pyUrA7t2M5Yz/qkwDfB8uXL+Wee+7EsmzO\nO+8Crrzyml6vP//8czz44P0A+Hw+brzxB9TXD+yOcUIIIXaybZtEIdU9i27pCui2rtDeU0jvuBYd\n9oYpt0L4YxpKu4GRSlLIpzCVLIqzGdWzDd2bx+HJE6zOUz7SRO+aNadtH2m8tBAkZftIW34ypp80\nPjI4sVH6GHDnD59DpdzjoMTloMS5f1EsAd5PO9qJ/vKXvyYcjvCVr1zFySefRl3dmO5jRoyo5X/+\n53cEAgGWL1/Kf/3Xz/jtb+cN2piFEOJQ0BnSyZ0z6V2WvPNmYbf3OFXnzpvFtApCCS/euImayWDp\nWSw7i+LM4fBsxOPR8XhzuKp0ctVu0vhI295eIZ22faRtP2ndi67sIToV0BSFEqdGuCuYS1w7Q7rE\n5SDkdBB0aTjVT78RqgR4P/VsJwp0txOtq7um+5ipUxu6fz1lSgNtba0He5hCCDEs2bZNvJDoDub0\n9iQb27Z1L3kX+ghpl+rsDGhXmHCuhNKUjTeroxo5bPKoyQIOTxSPpxnNY5CPeEjbXjL4SBPoCumu\nsLZ9ZEwPtrLnYPU6VCp2CeTeIa3hd2goSh8z7wNgWAb4o2uf4p2WlQN6zpPqjuXs2rP2+Hp/2on2\n9OSTj3H88Z8d0DEKIcRwZtlWj5n0zuejd1yTLlj6bu9xaS4i7nJGWGGqcg4CeQuXoaMpBVRHAYdd\nwLbaMFwx0mVeYmU+0naANJU9Zs5eCrjA7GNQgKZA0OVgVFcgh/oI5hKXY0BmzQNpWAb4UPf222/y\nzDNP8r//+/vBHooQQhxUlm0Rzyd6BHTvx7D0PkLaq7oYr0UYYfkp01W8lolbM7A0HV1zYGoOsk6b\ntNvB1u4lbW/XtWYPFtoew9mjqZR2LV3vnDFr3b8OuRz4HBrqQZo1D6RhGeAXjz+Pi8efN6DnHIh2\nogBr137MHXfcyp13/oqSkpIBHaMQQgwFO0K6ZZe7undsDbprSPtRiKg+TrAjRCwnAdsGVUN3Oii4\nHBScLtK2j6TXS1OP68953D0+tPcYVGwCmkKtx02Jy9kVxtpuy9subWjNmgfSsAzwwdCznWhFRZjF\ni5/nJz+5tdcxTU1N/OhH3+NHP7qF2tqRgzRSIYT49CzbIpaP73LjWOfPbdl2dMsAwAkEVYVSHIyy\nfRxrh3ErPizNRcHppOB0kaFzttxse1mPlwzezllz94f1/mynZVKi2YxwKpT6fYQ8ru4bwHYsa/uH\n6ax5IEmA91N/2onef//vSSQS3HXXf2LbNg6Hg9/97k+DPXQhhOiTZVtEc/GuWXSPXcey7bRl2zEs\ng4CiUKIqBBWVEivI4UoJLu0wbJeHgsNNVu28aztje9mIjw96zpqh87GpLopt4TF1yqwcJapKmc9L\nRShIacDXGdAuB0GnA7emFl03sv0h7US7FNsflmKqt5hqheKqt5hqhf2rtzOkY13Xodt7hXU8245P\nsQiqDnyqHy8hXIofTfFjal5yqqd79pzBi9lz1rwLh2Xg1vN4dZ2AbRHSHISDPsIVJZSXlxFyuwg4\n+z9rLsbv7b6SGbgQQgxzlm3RkYv13mks3Uoy14ZRyOFRvbhVP04liIofh1pDhTYOX6DzWnMUD9E9\nndy2cZt5/HoKT76AVzcImDZlLieRkJ+a6jIqKiN4ffu3HajYfxLgQggxDJiWSXOqlQ/aN3Uucadb\niGfiZPU8hqGgqT5UJYCNj4JSTk6pJaN5Mb0O9jSP1WwDj1mgTI/hyuVwZwv48gYByybscVFV5qOm\nJoyvpg4tEDxozzeL/pEAF0KIIcK0TNqzURpTrTSlWohmkqR1nbwJhuXCUnwY+MgpQXJ0PQWj0Hkn\nWU+2jcfKEzAzuAwdR07HlcnjSuXw5gxKbZuI10E4HKS0NoKvegSO8nIUbc9L5GLokQAXQoiDxLRs\novk8W5PNNCXbiWZTpHSDrKmQt10UbA85xYeJAxjR+81dT0M5MPBaOQJmBy5dRysYaFkTRzKPK57B\nl9EpU21KS9yURIKUjggTGFeLMxxB9XgOes3iwJEAF0KIT8m2bfKmRVw3iOcLdGQStKRjdOSzJHWT\nrKmRtd1dzzXvWIYOdv3YyavkCNkpPGYeZ0FHK5ioOQslbaHGC7g60vgKBYIehWCJm5KKAKXVZQTH\nRnBFKtFKSmSZu4hIgAshxCcwbZuUbpAomMQLOvF8llguQyyfI5bXSRqQsRwYu/116ur6ARoGfrKU\n2UncZh6nruMomKhZCzsDdlpBiRbQkjl8dh6/GwJ+ByVlPkqryygZU4G7qoqaiaNpj+3ep1oUp34F\n+CuvvMJtt92GbdtccsklXHfddb1eTyQS3HTTTWzevBmPx8Ntt93G+PHj+/Xe4WRv7UR3eP/91fy/\n/3ctt9xyO6eeOuPgDlII0W850yRRMEkUDBJds+dYPkMiXyChGyR0yFhq320h0QANDzlCJPGTwW0W\nOpe18wZqzsLOKNhphULKgZkGZy6L10zjd1oE/RqBkJfSyhJC4yrwVlfiCEfQvHu+m1t1OgEJcNFp\nrwFuWRY//elPmTdvHpWVlcyePZuZM2dSX1/ffcx9993HpEmTuPfee1m/fj233HIL8+bN69d7h4v+\ntBPdcdx9993L8cefODgDFUJg2TZJfWcwJwpG1+w5T6KQJ1EwSRpQsPe83KwBfjJUk8WvZPFYOZx6\nAUfeQslZKBkwUyr5rItszo2RVXDoKVxGGp+qE/B1LnOHwkFKx4fwVVfhjITRSkIoQ6wphhie9hrg\nK1asoK6ujtraWgBmzZrF4sWLe4XwunXrumfW48aNo7GxkY6ODjZv3rzX9w4X/WknCvDww3/ltNNm\nfmKnMiHE/subVncwry0UaGxPEe8K6EQ+T0I3SRn2HmbNnTwUCJLBp2Txk8FnZ3EZBbS8iZqzIQNG\nWiOXc5PNecjl3CQMLx7dxGtk8do5Am4IBp2UlCuU1gfw14RxRSpxVFR0zZSFOLD2GuDNzc3U1NR0\nf11VVcXKlb1beR5++OEsWrSIY489lhUrVrB9+3aampr69d790bpwPsk33/jU5+kpdfJJBM67eI+v\n96edaFtbK6+++hK/+tVvJMCF2EeWbZPSze4Zc/fPBYN4wSBRKJDQTfLWns+hYuInSxVZ/EoGf9fs\n2WlkcRQMtKyFlVbRc26yOTfZbGc4txbKOh+9MjJ4jBReI43fZRH2Zykp8xOqUygZUYErUo8zHEHz\n+w/eb4wQezAgN7F99atf5dZbb+Wiiy5i4sSJTJo0CfVTLBGVlflwOPb8PGLK6yJzADrMfNJWdiUl\nXrxeZ/cxwaAHr9fV6z0/+9mPuOmmfycSCeLxOAkGPfu1Pd7BMpTHNtCKqVYYevXmDZNoTieW14nl\nCp2/7voRzReIZQvE88auPS16cZPHT5bKHcFMBr+SxWtn0fQCatbAyqjksn6yWW9nQOc8xHMVWFbn\n3ycuI4vHSOLVU/gdGaoDDkrLvJRXh6gYFcFXMx5PVTWu8rIhu8w91L63B1Ix1bo/9hrgVVVVbNu2\nrfvr5uZmKisrex0TCAS4/fbbu7+eMWMGo0aNIpfL7fW9fYlGM5/4euC8iz9xtrw/9rbvrssVZOPG\nLd3HrFu3Gb8/1Os97723km9+898Am1gsxksvvUwmozN9+qkDOtaBUEz7DBdTrXBw67Vsm7Rh7pwp\n95o977wGnTP3HM0qFj6yRLoC2d9r9pzBaRZQCjqFjEY27SaX8ZPN+cnm3MSyAQq6kx2PZjnMws6A\ntmNUeqCkxEOo3E+ougxP1QhckQiOijCqy7XbWApAwQba0wfmN+xTKqY/y8VUKxygvdAbGhrYvHkz\njY2NRCIRnn76ae66665exySTSTweD06nkwULFjBt2jT8fn+/3jtc9Ked6MKFj3f/+rbb/oOTTjp5\nSIa3EP2hW9bO5esdgdxzWVs3SOoG1ie0Q3Kj4yNDeJdZc/fsmTyqaZPNO8ikNTIpN9mMj1w2SDQb\nJJdzY9k7Z8KqZXQucetJgkYbNW4Lv99BaXmAUGUIf3UEZ2RC56Ylfr88Ey0OaXsNcE3TuPnmm7n2\n2muxbZvZs2dTX1/P/PnzURSFOXPmsG7dOr7//e+jqioTJkzg1ltv/cT3Dkf9aScqxHBg2TYZo8ej\nU7sE845fZ/c2a1YKREjjV9L4uq41+8n0mkFrqou84Sadd5BOqqSTTjIpLx2ZSrI5L7rugB43mym2\nhcdI4dFTlOoteNQ8Pp9KaamPsqoQgaoKXJHDcEYiOMrKqawKFdUsTYiepJ1ol2JcrimWeoupVt2y\ncAQ8bGyO9wrkeI9gTuoG5if8X+9STAJKHh9pfHYKPxkCSu9g9pBHU53YaoC84SaV00gmFVJxlXTC\nQzoVIJf3Ytu7XEe2bdxmBo+ewquncNtpvG6LQNBNRWUpoeow7soIznAEZziM6nb3PcguxfS9heKq\nt5hqBWknKsQhy7ZtMobV6w7t+C4z5vheZs0KNn7VIKzmux6dSuAn1bW0vTOcnYoBKKiOIKgBdNNL\nMquRSPhpivpJxpykkn50vee2oDs5zRwePUVEb8FjpHA7dbx+lVC5n3BNZefz0OFJnc9ES4crIfab\nBLgQg8ywLBK6udsSds8bwpIFE+MTFstcik1A04k48wTULB4zjs+K97jmnMVLDlXpPIeiedCcJaAE\nMMwAmVw50bjN1jaLWIdKKuHGNHe/yQtAs3S8epKQ3oLXSOFSsrg8Nv5SF2WVpZSPGImncjLOcEQ6\nXAlxAEmAC3GA2LZN1rR2myn3vhHMJGOYezyHAvg1i7DDwK/mCZDGayXxWdHO5e2uWbNLMbo+FLBU\nNFdJV0CH0I0a8nkP7UmVtladjjaLVELFMHpff+7+TNvEq6fw6K14jRRuM4XDreP2qwTDAULVVZSO\nqMNbWSUdroQYRBLgQuwHw7JJ7jpT7hXSnTPqT5o1O1UIajZht0FA7bzm7LcTeMwYPivaucy9Y9Zs\nA105r2peNE8IzRkCpRbd8JHLu0mlXXS0W0RbC8SiBfJ5ld0D2gm2hcfIEDDa8epJ3EYKh5bD6bXw\nlroJVJZRUjOSshGH46mslg5XQgxREuBC9GDbNrkds2Z992vMO4I5vbdZs0Mh4rYJqEaPG8KSeK0o\nXqMNn53ChY6yI5h3nE5RcThDaK4SHK5aUAIUDB+5nJtk0kU8ptDRkiYezZDN2j0esdK7fnRyGQVK\nup6H9upJNDJobh1nUMUb9uGvqqGkZjQVI8biCVeiOOSvAiEOtLxu0pHI0Rbf8SNLezxHeyLHL759\n+j6fT/6vFUXD3DFr7nUDmLnb8rb+CQ82O1WFEqdKxKUSUA38aq5zpmwl8FoxPGYrHiOKhg3G7u9X\nHT4c3hCaqwqHKwRaAF33ks26SaacxGMKibYUsY4UqZSBYSp0bS/S6zwOs4BfT3VvWuIyU+DMofos\nfBEPjvIy/FUjKBtxGOER9Tj9gYH9zRRC7CZXMLoDeUdIt3f/nCWR0ft8n6bu3wqXBPg+6E870bff\nfpNf/eouDMOgtLSMX/3qNwd/oALonE2/257kjY8aaUvnSRsmn/TMpN+hEXY7CTpsAqreOXNW0vit\nJJ6umbOmd6CY5s4Zc0+KhsMVQvOO6fzZVYLqKEHXvWSyLpIJJ4kOg2RHmnh7imQiT67Qe+a8w44N\nS0J6Z0B7jBSoafAUUIPgrArhjlQRrBlF+YgxhCOjcTg6G2gU2+M3Qhws2XxnQLcldgRztldIp7J9\nB7RDUygv8TCyMkA45KEi5CVc4qEi5CEc8lAa+OTHJfdEAryf+tNONJVKcdddd3D33fcSiVQSi8UG\nb8BFLmOYPLaxhVXRFJqiEHI5CHucBB0Q0AwCSg4/abx2Ep8Zw220gR7D0rN95SkAqsOPw1eF5grh\ncJaguUJozh0B7SaZUEh25ElEM50BHc+RzsaBxG7n2rFhSVnX89BeI4lmpTFdGSy/gVLmwRkO462q\nJlR9JOGaeiqCYTRV7ugW4kDJ5IzOZe3ErrPnzrBO5/pYVgMcmko45KGuOki4K5QrSjyEQ14qQh5C\nARfqAbiPRAK8n/rTTnTRouc47bQZRCKd+72XlpYOxlCL3sfxNA9vaCapm4z02Jzjew9XbhtmPgG5\nvp+TthUHmiuEy1ezW0Cblp90xkkybpCM5kjEsp0BHc2SSrf0vZVo14Yloa5r0F4jhctIYTkyFDxZ\nrBIFpTqEM1KJv7KW8prjiYRHUuYulZAW4gCwbZtM3qAt1hXKiZ3XoHeEdCbfd0C7HCoVIQ9jR5QQ\nDnl3CWkPQf+BCei9GZYBvvQf61j/QcuAnnPqMSM56oRRe3y9P+1Et2zZhGEYfOMb15PNZpk9ew5n\nnz1rQMcp9qxgWjy3tY3lLXFUYHqghcnZf6AmAGcAl7ema2k71PmzM4TDVYJl+0mlFJLxPK3RLMlY\njkQ0Q6IjTTIZY0/3qznNHAE92bmrWNf2n6hpdHeGnC+PWeZDqSjHU1lFoGoyFVV1RPwRytwhCWkh\nBpht26S7ZtA9Q3rH7Lk9kSOb7/t/ZrdTIxzyMH5kqHtZOxzy7gxon3NIPokxLAN8qDJNk48++pBf\n/vLX5HJZrr/+WqZOPYKRI/f8DwMxMBrTORasb6I1pxN2KcxQX6M8twmnr5pxDZezrUkjGc/SFs2R\njHfOohPtUZKJJvKFvq+M79iwZGdAJ3HYaQxnhpw3SyYAZk0JVrgCq7IGR9VRVIaqiXgrKPOUoipD\nsx2lEMORbdsks3r3jHnX2XNbPEde7zugPS6tVyh3h3Rp5yw64B2aAb03wzLAPzujns/OGNimKHu7\n8SccrqS5uan765aWFsLhyC7nqCQUKsXtduN2uznqqKNZu/YjCfADyLRtXtkeZfG2diwbjg2kODr7\nLA7LwB8+kdWrR/D442/R1+PYOzYsKe+6Bu3VU7iMJJYjS96TIRUwSIWdpMtKKUQimFXjKS+vodoX\nIeINU+YJSUgLMUBs2yaRLnTfIJZd2cSmbfGdM+h4joLR9yUwr9tBZZm317J2RddSd0XIg9/jGJYB\nvTfDMsAHQ3/aiZ588mncffcdmKaJruusWbOKOXO+OEgjPvR15HQWbGhicypH0KEw0/Ue1bnVndeu\ng2fy3BMdJJKteAsJSnPNXTPpJCgZCu40GV+BRFAjGnQRqyjDHammpPIwIv4INd4KKn1hSt0S0kIM\nBMu2iacKfV573rHcre8hoP0eB9UVvu7rzztDuvNnn8d5kKsZGiTA+6k/7UTr6sYwbdqJXH315Wia\nygUXXMTYseMGe+iHHNu2eastwVObWylYNpP8OicUnsFdyOArm8qmrVN446lt2CiMiq0mXbaGDePc\nOCrCeCtHUhGqIuKtYLQ3TKUvTMhdIiEtxKdkWTaxVL7HDWKdzz73DGhjD23wAl4nI8L+XjeH1Y8u\nx4lNRciD1y1R1RdpJ9ql2J6dHa71pnSDxza2sCaWxqMqnOZbT112OarDg6fsDF5ZpNPSksVtpBkT\ne413pplcetHXqXWMKpqQHq7f2/1RTLXC4NZrWTbRZL7XY1Y7ZtA7Ni8x97AJUonPSUWPZe1dZ9Ee\n1+4BXYzf230l/6wRw8YHsTSPbGgmbZjUeeEU63n8uTbcwTG0p07guYe2YVhQlVyP5nmbNy4Yzdzj\nrmXKiLH5MILbAAAgAElEQVRF9ReBEPvDtCyiifzOYN5lqTuazO8xoEN+F2Oqg10h3fsO7oqQB7dT\nnro4ECTAxZBXMC2e2dLK660JNAVODbZyeOYFFFXDFz6d11/zs2njNhxmgcOiy1k1uQ3vZ47nXydd\nisexfzscCXGoMUyLjmSe9li21zL3jqXuaLKAtYcF2dKAi7E1Jd3XnCt6zKIrSjy4JKAHhQS4GNK2\npDofD2vP61S6Ox8PK81uwumtJK+cxpMLm8kVEpRltlFuvs6iUx2c2nAhn6s7/ZC861SIPdENi45k\n753Ddj5ylSOWyvf9NAZQGnRTX1vS+xnokIdwiYfyEg9OR3FcfhpuJMDFkGRaNi9u7+ClbR3YwLRg\nmiMyz+BQDPwV01i5ciTvr2xCtUzGR99m8+iNvNVQztVTr2BqeNJgD1+IAacbJo2tKT7a0N7r2vOO\nZ6LjqUKfe/0rCpQH3UwYWdrr2nM45KGi1Et50I1Dk4AejiTAxZDTliuwYH0TW9N5Qk6VM1zvEcmu\nQnMFUfxn8OwTcZKpNgL5DsZkX+eFE/I4asdy4xFXU+WL7P0DhBiC8rq5SyerbK+QjqcLfb5PVRTK\nS9wcNrq08xp01x7cO0K6VAL6kCUBLoYM27Z5vTXOM1va0C2bqQGDaflncOXTeEKT2LRlKm891YRt\nQ11sFXrlBhaeqDGl+iiumjwHr8Mz2CUIsUd9tZrcOZP+5FaT5SVuJtWVMbIqiN+t9ZhFeykNutBU\nCehiJAG+D26//RaWLl1CeXk5998/v89jfvGL/2b58qV4PF5++MMfM2HCYQd5lMNTUjd4dEMzH8Yz\neDWFs4IbGZVdhqK6cJedw8uLDNramvHoaQ5PvsHSo1Ksr3Zw7tgzOWfMzKJ5REwMXd2tJnvcwd0z\npD9Nq0m1q190sT1aJT6ZBPg+OPfcC5g9ew4/+9mP+3x92bLXaGzcyvz5f2P16lX893/fzm9/O+/g\nDnIYWhNN8ejGFjKGyTgfnGwtwpttxeUfRVvyBJb+tRnTgurEWmpCW1h4ehp8Pq6ffBlHRKYM9vBF\nkehuNdmrH/TOpe6h1mpSHPokwPfBkUceRVPT9j2+vmTJy93dx6ZMmUo6naKjo53y8oqDNcRhJW9a\nPLW5lbfaEjgUhRklbUxIL0JRVHwVp7B8SQlbNjfjMHM0RN+k5RiFB6oyVPorub7haqr9VXv/ECH6\nYbdWk/HsLiGdIzvMWk2KQ9+wDPBo4yIysTUDes58zVG4y0/9VOdobW3t1XI0HK6ktbVVArwPG5NZ\nFm5oIpo3qPaozFRfI5jZiMNTQU45nScebiVfSFCebmSKZyPPnmGx0ZViasUkrplyOV6Hd7BLEMPI\n3lpNtsVz5Aqf3GqyYpdWkztCeqi2mhSHvmEZ4GL4MiybxdvaeWV7FIATSzJMzTyDho6v7FhWrBrF\nh6taUC2DiR1vETm2jP+rzpC3dc4eM5NZY8+U691iN7Ztk8zove7g3vVRq2JrNSkOfcMywMtqz6Ss\n9swBPedA3BwSiURoaWnu/rq1tZlIRB5r2qE5m2fh+ma2ZfKUuVRmulYQzqxEdfjBdw7PPpkile4g\nmGvjSHMN2z9fz2/093CpLr466UscVdkw2CWIQdLdanKXu7iTWZ1tran+t5rs2pyke0/uUg8+96HZ\nalIc+oZlgA8m27bZU/+X6dNP4dFHFzJz5lmsWrWSQCAoy+d0thFc3hLnuS1tGLbNkUGT4/JP4syl\n8JRMZOOWBt56ugVsmzHRlUydHODpqTWsTLxH2FvB9Q1XMyJQPdhliAOou9VkPEdbovcOYjsevZJW\nk0L0JgG+D37ykx/yzjtvkUjEufjiWXz5y9ej63p3O9ETT5zOsmWvMWfOhXg8Xm66qe+71YtJvGDw\nyIZm1iYy+Bwq5/g2UptZiqI6cZWdxUuLbNrbW/HqSRqSb1F5yen8n/U6LYk2Jpcfxtwpl+Nz+ga7\nDPEp9Wo12X0Xd7ZXQPe31WTPRhmH1YdJJ3MHuRohhgYJ8H3wk5/cutdjvv3t7x+EkQwPKzqSPL6x\nhaxpMd6vMN18Hk+mFZevltbECSxd0IplwYj4RxxVnSX2xXO5e8uT5M0CZ9WdzvnjPifXu4cJ07KI\nJQs7rz0neu/J3ZHYcyerEp+TUZWBfWo1uYPP45QAF0VLAlwMuKxh8uTmVt5tT+JUFM4MtTMu9TyK\nouAtO4llr4Vo3NKK08gyNfo6ky84mddG6jy78RFcqpNrp3yRY6uOHOwyRA/SalKIoUcCXAyo9YkM\nCzc0Ey8Y1Ho1TldfI5DegMNdRpbTWPRIBwU9RTi9hSPdW6j+9jX8pf1FVm5aQ4WnjOsarmZkcMRg\nl1F0dm012XsWnaUj2XcnK5BWk0IMFglwMSAMy+L5re281hxDAaaHskxOP42Kjrf0SN5bOYaP17Sj\nWjqHt73B1JMPx5w5l1+seZDmTAuHl01g7tQrCDj9g13KIUk3LDoSPXcQy/ZY4s4RS+b77mRFZ6vJ\n8bUhaTUpxBAjAS4+taZMngXrm2jKFih3aZzpXkFZegWqw4ftPotnn8ySzkQpybVyZGEV9V+/krWl\nOvPe+TU5M8fMUafw+fpz0FSZqe2vgm52bkySyJFf287Gxliva9B7bTU5SlpNCjHcSICL/WbZNq81\nx3h+azumbXNMicWxuSfRsincgXrWbzmCd19vR7Etxna8xxGTSqi8/HssalrO0yuex6FqXDP5cj5T\nffRglzLk7Wg1uev1531tNdnz+rO0mhRieJMAF/slltdZuKGZDcksfofKWf7NVKWXoCgOHKEZvPiC\nRrSjHW8hTkPiDSZefiHOI6fyx/cX8G7rKsrcpVx3xFWMDo4c7FKGhB2tJnfdqKS9K6j702pyxxL3\n2JGluBSk1aQQhzgJ8H3QVzvRRCLBj3/8A5qatlNTM4JbbvlPAoHAbu9dvnwp99xzJ5Zlc955F3Dl\nldcc5NEPDNu2ea8jyRObWsmZFocFVKabi3CmW3B6q2mJn8DyhR1YtkFt/AOOiGQY+c3v0OEy+cVb\n/0NTupkJpeP48tQrCbp2/306VPVsNdkWz+4S0p/carJi11aTPZa6e7aa3EFaTgpRHCTA90Ff7UT/\n/Od5HHfcNL74xav585/n8cADf+RrX/tGr/dZlsXdd9/BL3/5a8LhCF/5ylWcfPJp1NWNOcgVfDoZ\nw+TxjS2sjKZwqQpnl3ZQl3weRbHxlJ7AstfK2La1A5eRYXL7Pzn8vOmUzjiDNR0f8cc3/0LWyHL6\nyOlcNH7WIXe9O5PTe90U1nNP7n1uNRnyEC6RVpNCiE8mAb4P+monumTJy9x7728BOOec8/jGN67f\nLcDXrFnNyJGjqa6uAWDmzLN49dWXqKu75qCMeyB8HE/zyIZmErrJKJ+D09XX8KXWo7lCZKxTeP6R\nBLqRJpLaxJHOzYz+7nW4akawaNNLPLH+OTRV46pJczi+5tjBLmWf7ehk1d5jWXvXpe69tZocN6Ln\nXdzSalII8ekNywB/dksrKztSA3rOabXlnBYO7fP7otFo937nFRVhotHobse0tbX0ajNaWVnJ+++v\n3v/BHkS6ZfHclnaWtcRQFTilLMek1NModgFPyVTeWzGWtR/G0awCk9peZ/KJE4lc9AMKisX/rX6Q\nt1tWUOoOcV3DVdSVjBrscvpk2zapbFcnq1jv/bel1aQQYqgalgE+lB1Kf1lvS+dYsL6ZllyBsFvj\nTPdKQsn3UDUPlvtsnn2qQCYbJ5Rt5oj8SsZdfyW+ww6nLdvOb1bcz7Z0E/WhsXyl4UpKXMFBq2P3\nTlbSalIIMfwNywA/Z1SEc0YNbJvO/b3xp7y8nI6OdsrLK2hvb6OsrGy3Y8LhSpqbm7q/bmlpIRwe\num1GLdvmle1RFm9rx7ThM6U2R2UfR8skcfnHsn5zA++9GUOxTerb32XqxABVV/4Azefn/Y6P+L9V\nD5IxspxS+1kumXAeDnXw/pi9+PZWHn55/R6XuKXVpBBiuBqWAT6Ydm0netJJp/DMM09y5ZXX8Oyz\nTzF9+qm7vWfSpMk0Nm6hqWk7FRVhFi9+vl+NUQZDR15n4fomNqVyBJ0aZ/k3EUm9CoqGs+RUXnzB\nSSwaw1eI0RB7nfGXXUDJtBOwbZsXNr/MY2ufQVNUvnj4bD47Ytqg1vLSO4088PxHBH1OjpkYkVaT\nQohDigT4PuirneiVV17DzTf/O08//QTV1TXccst/AtDW1sYdd/yMO+74BZqm8a1vfY9vfetfsG2b\nWbM+z5gxYwe5mt5s2+bttgRPbm6lYNlMLtE40ViEM9WM01NJc+wElv89hm0XGBVbw9SKFLU3fAdn\neQUFs8CDHzzMm83vEnKV8NWGLzE2VDeo9by6Yht/+vuHBH1O/vNfpuPVZBYthDi0KLa9pxYFg2cw\nnmEttmdne9ab0g0e29jCmlgat6ZyRqiDkfHnUBQbd+gzLF1SQdO2DG4jzeS2ZUw85yTKzvwciqrS\nno3y25X3szW1jbEldXy14UuE3CWDWtuy1U38/sk1+DwOvnfFMRwzpaZov7eHumKqFYqr3mKqFTrr\n3VcyAy9yH8Y6Hw9LGSZ1fgenq0vxJNahuUpIGdP5+6NpDCNDZXIDDdpG6r5zHe5RowH4KLqWP6x6\nkJSe5qQRx/OFiZ/HOYjXuwHe+KCF3z+1Bo/bwY2XHc2oyuLZLEYIUVwkwItU3jB5bGMLr7fG0RSY\nUV5gQvIRFLuAOziJd1eOY/2HSRxmgSmtyzjshIlELvkhqtOFbdu8tPU1Hl37FAoKlx12MSfXnjDY\nJfHOR6389onVuJ0a355zJHXVg3fnuxBCHGgS4EVoSyrHo2s205zOU+lxcJZ7FYHEOyiqG8t9Bs88\nZZDLJSnLbGdqbgVjr7sS/+QpABRMnfkfPso/m94i6Arw1alXUV86ZnALAlasa+d/H1uFQ1P5ty8c\nSf2IfX+mXwghhhMJ8CJi2jYvbevgxW0dWMAJZXBk5nGUdAKXbzTrNh3BircTKLbJ+Pa3mTzOS/VV\nP0Tr2ts9movx25X3sznZSF3JKK5ruIpS9+AH5eqNHdz76EpUVeGbs49g4qjSwR6SEEIccBLgRaIt\nV2Dh+ma2pHOEnBrnh7cRaP0HKCpaYDqLX/CQiCcI5DuYGv0n9ZdeQPDEz3Y/A/1xdD2/X/UAKT3N\niTWfYc7EC3Fqg/8I1oebo/zq4RWAzTcuOYJJdbs/hy+EEIciCfBDnG3bvN6a4JktreiWTUPIwQnG\nIrTWJhzuMM3R4/nn35PYVp7RsdVMKUtS+6MbcXZtNGPbNq80LuPhj58A4NKJF3JK7YlDYnOTtVvj\n/GLhCkzL5l8ubmDq2IrBHpIQQhw0EuCHsKRu8LcNLXwQT+PRVM6tiFGTeA5si2BkGi8uLqN5exKP\nnmJy21ImfO6zlJ19LkpX/2jd1PnrR4+xbPsbBJx+vjL1S0woGzfIVXXasD3B3QvfRTcsvnbhVI4a\nHx7sIQkhxEHVrwB/5ZVXuO2227Btm0suuYTrrruu1+upVIobb7yR7du3Y1kWc+fO5eKLLwZgxowZ\nBAIBVFXF4XDw8MMPD3wVYjdroike3dhCxjAZF3BymroUV3wtqiNAyjiJv8/PYRhZqhNrmaJuZPS3\nrsMzZkz3+2P5OL9b+QAbE5sZHazluoarKfMMjWvLm5qS3Dn/XXIFk+svmMKxhw3dbWmFEOJA2WuA\nW5bFT3/6U+bNm0dlZSWzZ89m5syZ1NfXdx/z4IMPMmHCBO677z46Ojo455xzuOCCC3A4OveRfuCB\nBwiFBv9mp2KQNy2e3tzKm20JHIrCmRU69YlHwc7j8k/k3RX1bFibxmHmmdqylInT6onMvhnV7e4+\nx7rYRn6/6gEShSTTqo/h8sMuwTUErncDbG1Jcedf3yWbN/jyeZOYNqlq728SQohD0F4DfMWKFdTV\n1VFbWwvArFmzWLx4ca8AVxSFdDoNQDqdprS0FIej89S2bWNZ1oEYu9jFpmSWhRua6cjr1HidnOle\nhS/+NorqwnSezrPP2ORyacozjRyRW8moL19O4Igje53j1cblLPzocWxsZk+4gNNGnjQkrncDbG9P\n8/P575DK6lxzzuF8dmrNYA9JCCEGzV4DvLm5mZqanX9RVlVVsXLlyl7HfPGLX+RrX/sa06dPJ5PJ\ncPfdd3e/pigK1157LaqqMmfOHC699NIBHL4AMC2bxdvaeXl7Zy/yk8oVGjKPQyqO01vL2o1Hsurd\nFKptMLHtTQ4b42Xqd24jVlC7z2FYBgs+epzXtv0Tv9PHl6dcyWHl4werpN00d2S446F3SGR0rjxr\nIqccOWKwhySEEINqQG5iW7JkCZMnT+ZPf/oTmzdvZu7cuTzxxBP4/X4eeughKisr6ejoYO7cuYwb\nN47jjjtuID5WAC3ZAgvXN9GYyVPmcnB2cDOh+MuAguo7gcWL/SQTKYK5dqZElzPukvMoOfkUnKES\n6NpnOJ5P8PtVD7A+vomRgRFc13AVFd7ywS2sh9ZYljseeod4qsBlMycw45iRgz0kIYQYdHsN8Kqq\nKrZt29b9dXNzM5WVlb2OefTRR7tvbBs9ejQjR45k/fr1NDQ0dB9bXl7OmWeeycqVK/ca4GVlPhwO\nbZ+L+bT2ZzP5wWLbNi9uauXhDxrRLZvjq7wcm3seK74VtzdMW/JEXn0sjm0VGBNdQUNFmsN/9GO8\nPVZTIpEgH7dv4Odv/4ZoNs5Jo4/j/33mS7gdrkGsrLeWaIY7F7xHNJnn6lmTmT1jwn6dZzh9bwdC\nMdVbTLVCcdVbTLXuj70GeENDA5s3b6axsZFIJMLTTz/NXXfd1euYESNGsGzZMo499lja2trYuHEj\no0aNIpvNYlkWfr+fTCbDkiVLuOGGG/Y6qGg0s/8V7afh1PkmUTB4ZEMzHycy+Bwq51UkqOpYgGWb\nOP1HsGRpFS1NcTx6kiktS6g/80TKZ51PStNIddUYiQR5/L1/8NcPH8W0LS4aP4uZo04hEc0D+cEt\nsEs0mee/HnyblliWC6eP5dSG6v36Hg2n7+1AKKZ6i6lWKK56i6lWOEDdyDRN4+abb+baa6/Ftm1m\nz55NfX098+fPR1EU5syZw9e+9jV+8IMfcP755wPw3e9+l9LSUrZs2cINN9yAoiiYpsn555/P9OnT\n970y0W1lR5LHNraQNS3GB12cri5Di36E6vCRyH+WJY/rmGaemsRHTLE3MPLfvoq3vve1bNMy+cNb\n8/n72pfxObxcO/WLTCqfOEgV9S2eLvDz+e/QEssy68Q6zj9pzGAPSQghhhTpB95lqP9rL2eYPLm5\nlXfakzhVhZkVBmPjT2BbOZy+et5dUc/GdTmcZo5JLUupP2YMlXOuQPV4ep0nWUjxu5UPsC6+gRH+\naq4/4mrC3qG1g1kyU+COh96hsTXN56aN4tLTx3+qO+GH+vd2oBVTvcVUKxRXvcVUK0g/8EPWhmSW\nheubiBUMan0uzvKsxh19ExQHhuMUXnhGJZ/PUZHewtT0e4y+5nICRx+723k2Jbbw25V/IpaPc8Ko\nY7h03MW4taFzvRsgndO5c/67NLammXnsyE8d3kIIcaiSAB/CDMtiUWMHS5o6Hw87OawyJf0EJKI4\nPNWs3XgUq9/LoFoFDmt7nQmjPNTc+CMcod13TPvn9rf4y4ePYFomnx93Dlccdz5tbamDXdInyuQM\n7vrru2xuSXHqUSO44owJEt5CCLEHEuBDVFMmz8L1TWzPFih3Ozi3pJFA9EUAFM9nWPyPIKlkhpJc\nK1PalzHm4lmETpuxW+CZlsnf1j7Ni1uX4HV4ua7hKqZUHD7kgjGbN/jFwvfYsD3JSQ3VfOlzhw25\nMQohxFAiAT7EWLbN0uYYf9/ajmnbHFvu4jOFxRDdiuYsZXv7NN74ew7FLjC24z0OC8YZ8YMbcY/Y\nfWOTZCHF/616kI9i66j2V3F9w1VU+obevuF53eSeh1ewtjHOCZOrmHvOJFQJbyGE+EQS4ENILK/z\n8IZm1iez+B0a55THiUSfxbYNHL4pvPZaDW0tObyFOFNaljB2xvFUXPANFMfu38YtyUZ+u/JPdOSi\nHBmZylWTLsXj8PTxqYNLN0x+9cgKPtwS49jDInz5vEmoqoS3EELsjQT4EPFue4InNrWSMy0OK3Fz\nqrocteMDFM1LIncySx63sKwCtfEPONxaz8hvfgXfxMP6PNebTe/w5w8eRrd0zhv7OT435nRURe3z\n2MGkGxb3PrqKNRujHDU+zPUXTEFTh944hRBiKJIAH2RZw+TxTS2s6EjhUhVmVVqMji/ANjM4vGN4\nZ8UENq/P4zKzTGp+jXFH1hG5/CdoPt9u5zItk8fXPcviLa/g0Tx8+Ygv0hCePAhV7Z1hWtz3+CpW\nrm9n6rhyvnbhVByahLcQQvSXBPggWpvI8PD6ZhK6wSi/izM97+PqeB1b0dC1k1j0jJNCIU8ktYnJ\nqXcZ9aXLCX5mWp/nSulp/rjqL3wQ/ZgqX4TrG66myl/Z57GDzbQsfvvEat75uI1JdWXccFEDToeE\ntxBC7AsJ8EGgWxbPb23nteYYqgKnRxxMSj+FFW/H4a7iow1H8P7KPJqVZ1LrP6mvdVP9nf8PZ1lZ\nn+drTG3nNyvupz3XQUN4EldPvgyvw3uQq+ofy7L5w1Pv8+aHrUwcGeKblxyBy3nw970XQojhTgL8\nINuWybNgXRMtuQJhj5NzS7bh61iMhQ3uY3jhHyHSqTyhbDNT2pcx+vPnUDrzTJQ9XBt+q/k9/vz+\nAgqWzjljzuDcsWcMyevd0HmH/R+ffZ/la5qpry3hX79wJG6XhLcQQuwPCfCDxLJtXm2K8kJjO6YN\n0yrcHFtYjN2xBc1Zwra2z/Dmch3F1qnveIcJvigj/v07uEeO2sP5LJ5c/3ee3/Qibs3FdQ1XcWRk\n6kGuqv9s2+bPf/+Q11Y2MaY6yLe+cBRet/zxE0KI/SV/gx4E0bzOwvVNbEzlCDg1ZpUnKY8+jG3p\naJ7DWbqslrYWHV8hxpTmV6g7dRoVF30D1dn3NqcZPcMfVz/Emo4PiXgruP6Ia6jxVx3kqvrPtm3+\n8sLHvPTuNkZXBvj2nKPweeSPnhBCfBryt+gBZNs277QneXJTK3nLYnLIwynqP6F9DahuEoWTeW2R\ngmXpjIyt4XBzHbU3fAXfpD3fOb4t1cRvVt5PW7adyRWHMXfyFficQ/N6N3T+Hix8cR2L39pKbdjP\ndy47ioDXOdjDEkKIYU8C/ABJ6yaPbWphdTSFW1W5oApqYwuwzTQOz2jefm8CWzbquI0Mk5qXMGbq\nSCqvvAXN79/jOd9tWcn97/+Vglngc3UzOG/cWUP2evcOf3t1A8+9vpnqch83Xn40Qd/Qap4ihBDD\nlQT4AfBRPM0jG5pJ6iZ1ATdneT5Ea1+GrWgUlON5/hkPuq5TmdzA5OS71H5xDsHjT9zj3t+WbfH0\nhkU8t3ExLs3Fl6deyTGVRxzkqvbdk69t4KmlG6ks9fLdy48m5JfwFkKIgSIBPoAKpsWzW9v4Z0sc\nTYEzqlxMTD6FFWtDc4X5aMMRfLDKwGEVmNyyjLE1Tmq+fTPOivAez5k1ssxbPZ9V7e8T9pRz3RFX\nUxuoOYhV7Z9n/7mJv726gXDIw3cvP5qyoHuwhySEEIcUCfABsjWVY8GGJtpyOpUeJ+eGmvC0v4CF\nhe06ksX/KCOdNijNbGdK21JGnn8OZZ87e4+PhwE0pVv47cr7ac60Mql8InOnXIHfufsObEPNoje2\nsPDFdZQF3Xz38qOpCA29PdiFEGK4kwD/lEzb5uXtHfxjWweWDSeGvRxTeAGzfTOqI8C21uN463UL\nxTYY3/4W471Rav79Rjyj6z7xvCtaV3P/mvnkzDxnjj6NC+rPHvLXuwFefKeRhxZ/TCjg4nuXH02k\ndOjeYCeEEMOZBPin0J4rsGB9M1vSOUJOB7PCaULtj2BaBVT3BJYuHUl7m4m/EGVK0yuMmn4s4dn/\niura87Vgy7Z4buNint6wCKfqZO6UKziu6qiDWNX+e/W9bTzw9w8p8Tn57mVHU1U+9FcLhBBiuJIA\n3w+2bfNmW4KnN7dSsGwayrycrLyB1boSVBeJ/EkseV7Ftg1GR1czwVhH7dfn4p/6yTeeZY0cD6z5\nK++1rabcU8Z1DVczKrh7n++haNmqJuY9+wEBr5MbLzuaEeE9300vhBDi05MA30cp3eBvG1t4P5bG\no6lcXAM1sYWYehLNXcvb705k6+b/v737DIyqzNsGfk1L72UmhR4gpBKKDXCRJmCIoQQRRZCg7Oor\nRRBW5GX3WXHZZwXEfdZdFywLKBIRgUXARugdNAmB0AKBkDYpk57MZMr9fuAhr2gwhYSTk7l+n5iZ\nU/7/ic41Z845922Fk6UaYfrD6NInGLrpb0Ll7v6r29XXFGHd2Q0oqClEb++emBXxLNwc5BGCpy7o\n8eHuDDg7qrFwSgw6ad2kLomIqMNjgDfDhbIqbMsqRLXFih7uThjlfAmKomOwQgkTBuLAHldYLFYE\nVF5FaHkqgp9+Ch6Dh9z19rDbzhVfwPqMzai1GDG886MYH/IEVEp5jBH+4+UirNuZAUeNCgumxKBr\nwK9/USEiotbBAG8Ck9WGPTeLcLqoAmqFAqMDHNGrcjcshkKoND64dC0alzJsUNtMiCw8hq46NQLm\nLYOD9ten8xRC4Nsb+7Hr2rdQK1WYEf40Hgzof5+6undpmcV4f8c5aNRKvPpUX/QI8pC6JCIiu8EA\nb0R2VS22XNPDYDIjwNkBsZ56aEq+h0VYYVNHYv9+X9RU2+BTk4ewoqMIfuJx+DwxDgrVrx9BGy0m\nfHJhC1KL0uHt6IXZUdPRxaPTferq3p3LKsE/tp+DSqnAvIRo9OrkJXVJRER2hQF+F1abwL48Aw7k\nGwAAQ/xd0LduH6zFWVCqXJBbNAA/nlZAKSzoXXwG3Z0MCFy0EM49ejS67aKaEqxL34C86gL08uqB\nWbTnv/MAACAASURBVJHT4O4gn/PGF2+U4u9fpgMA5kyKRp+uDc9TTkREbYcB3oCi2jpsuVaA3BoT\nvBzUiPOvhVvxJlitRigceuDY8S4oKbbBzWRARMFBBA/qB/+n5kPp2PhoYxkll/Dv85+hxlKLoZ0G\nY1LPcbI53w0AV3LK8LetZ2GzCcyZFIWI7j5Sl0REZJcY4D8hhMCJwnJ8k1MMs00gxscFgxVnYNWn\nAQoNyowP4dh3DhDCiq6GdPQyZyLwtzPhFtOvSdvem30Q/7n6NVQKJab1mYxHgh64D121nqt55Viz\nJQ0Wqw0vjY9EdMjdh4AlIqK2xQD/X2VGMzZcycPl8ho4q5SID1JCV7oVVnM5lA6BSEnrjZxsASdL\n9a2j7t6B0M1YDrWnZ6PbNlnrsOnCF/ihMA1ejp54Meo5dPPoch+6aj03CirxzudpMJmt+F18JPr3\n9pe6JCIiu8YAB3DOUIWdqddQZbail4czRjpfgSg8DCsUMIoYHPzaAxaLQGDFFYSWpyBwcgI8hw5r\n9PYwACiuNWBd+gbkVuWjh2c3vBD5HDwd5XWrVU5hFVYlpcBosuCFuHA80OfXr64nIqK2Z9cBbrRa\nsetGEX4sqYRGqcATgc7oUbkHlpICKDVeuHw1CpcuKKCx1SFKfwSd/VUInLsMDgFNmw3souEKPj63\nCdWWGgwJfhiTez0JtVJeb3lecTVWJqWg2mjBzLF98EhEgNQlERER7DjAsypr8cW1ApTVWRDk4oin\ngstgur4FFmGBTdUH+/dpUVMD+FbnIKzoKALHjITvuHgo1I2/ZUII7L95GNsyd0OpUOKZ0EkYHPzQ\nfeiqdekNNViZlILKGjOeGx2KR/vKY1hXIiJ7YHcBbrHZsDfXgMMFpQCAoTpXRJsOwJiVCYXKGXmF\nDyLljBpKYUVo0Sl0czAgcOECOPfq1aTt11nN+OziVpzWp8DDwR0vRj2HHp7d2rCjtlFUVou3N6eg\nvKoOU0f2wrB+wVKXREREP2FXAa6vNWHL1QLk19bBx1GDJ/1r4VK0CWZrLTTOPXDocCcYSgAPUwki\nCg4i4MG+8H96PlTOTZsS02Asxbr0jbhZmYvuHl3wQtRz8HJs/CK39qak3Ii3P0tBaaUJk4eFYNTA\nzlKXREREP2MXAW4TAsf1Zfg2pwQWITDA1xWDFD/AXJACm0KNspoHcPRbJygg0N2Qhh6mTAS+MAPu\nA5p+m9eV0qv48NynqDJXY1DgA3gqdAI0MjvfDQCllSas3JyCkgojJjzaHWMf+vV5y4mISBryS5hm\nKq8zY2uWHlcrauGqVmFSgBL+hi9hriuFUqPFj2mhyL2pgIulCuH5BxEYokVA4nKovZo2upgQAgdz\njuHLzK8AAFN6T8CjwQ836Qr19qa86lZ4F5bVYtygbogb3F3qkoiI6C46dICnlVTiPzcKYbTaEOrp\ngpEumbAWHIIFArXWaBxM9oTVokBQ+SX0Lk9FwMSJ8Bo+AgqlsknbN1vNSLq0HScKzsBd44YXop5D\nTy95hl5FTR1WJaWiwFCDMQ91wYRH5dkHEZG96JABXmuxYueNIqQZbt0eFhfsgm4VX8NclAel2gOX\nrkbh8kUVHGwmRBYcRrCvAuF/WIFq56aP6V1qLMMH6Z/gRuVNdHHvhNlR0+HtJM8JPapqzVidlIrc\n4mqMHNAJkx8LkeUvCERE9qTDBfjVihpsvaZHudmCzq6OiPUuhqLwC5htZliVvbF/fwBqagC/6psI\nKzoG3chh8I2fAJcgH1QXVTZpH5llWfgw/RNUmqvwUMAATA2dCI1K08adtY0aowXvfJ6Km4VVeCwm\nCFNH9mJ4ExHJQIcJcLPNhu9ySnBUXwYlgOEB7ogyHYCp4DKgdEJecX+k/OAIlbAirPAEOmtKEDh/\nLlz6hDV5H0IIHMk7gS2X/wMAmNwrHkM7DZJt4NWaLFizJRXXCyoxJCoQ00aHyrYXIiJ70yECPL/G\nhC3XCqCvrYOfkwbx2jo4Fm6CyVINqDvh2PFuMBiU8DQVITz/EHQDIqB9dj5ULq5N3ofZZsGWSztw\nLP8U3DSumBU5Db29Q9qwq7ZlNFnwty/ScDWvAg9H6PD82D5QMryJiGRD1gFuEwJHCsrwfW4JrELg\nQT83PKxMQV3eGdgUKpRW98exI65QAOhR8iO6GzMRMHM6PB56uFn7KTOV48P0T5BVkY3ObkF4MWoG\nfJtxvry9qTNbsfzjk7icU46BfbSYFRsGpZLhTUQkJ7IN8FKTGV9k6XG9shbuGhXiAtTwMWxDnakE\nCrUfUtJCkZujgoulEhH5B6Dr5o+AxOXQ+Po2az/Xym/gw/SNKK+rxAO6fnimzyQ4qBzaqKu2Z7bY\n8N72dJy7ZkC/Xn6YHRcOVROvuiciovZDdgEuhEBKSSW+yi6CyWpDuJcrRrhchTn/ICywodYSgUPJ\nPrBYFOhUdgE9y1KgmzAB3qNGN/n2sNuO5p3E55d2wCZsmNhzHIZ3flTW54gtVhve33EO564ZMDBM\nhxdjw6BWMbyJiORIVgFeY7Fix/VCnCutgqNSiQmd3NCp4muYC3OgULnh8tVIXL7kAEebEZEFhxDo\npUDg0v8Lx87Nm3vbYrNg65WvcDj3OFzVLkiMfBZ9fJo2Fnp7ZbXZsHbneaRmFiO8mzeWzHgA5WU1\nUpdFREQtJJsAv1xejS+z9Kg0W9HVzQmx3gYI/Rcw2+pgUfTAoQNBqK1RQlt9A330x+A//DfwmzgZ\nSofm/dxdbqrER+c+wdXy6wh2C8TsqBnwc/Zpo67uD5tN4MNdF/DDpSKEdvbCnEnRcNCopC6LiIju\nQbsP8DqrDd/kFONEYTlUCmBUoAfCTQdhyr8IhdIRuUUDkfqjM9SwIlx/BMEqAwLnzYFrRGSz93Wj\n4ibWpW9EmakcA7R98WzYZDjK+Hw3cOtCv39/fQEnM/ToGeyJeZOj4cjwJiKSvXYd4LnVRmy5VoAi\noxlaJwc8qTPDUb8JJksVoArC0RPdUWpQwctUiPD8g/DvGwbdcwugcnNr9r4OZB3Huh8/g9VmxfiQ\nJzCyy1BZn+8Gbl0v8Mm3l3A0vQDdA90xf3JfODm06z85ERE1Ubv8NLcKgUP5pUjOK4FNAI9o3fGg\nMg2m3JOwKpQwVPXF8aMeUECgZ/FpdDNeg276NLg/0vxBVaw2K77M3IWDOUfhrHbGb6NmINw3tI06\nu3+EEPjs+ys4mJqHLjo3LJgSAxendvnnJiKiFmiXn+gfXMxBdpURHhoV4oMc4FWyHSZjERQqH/x4\nNhR5ORq4WioQkbcf/l38EDjrTWj8/Zu9n8q6Knx07lNcKbuGzh6BSAx/DloXvzbo6P4SQmDL/kwk\n/5iDTv6uWDglBq5O8hzqlYiIGtYuAzy7yogobzcMd7kOU14yzMKGGnMfHE72g8WiRJfSc+hRngZt\n3JPwGRvb7NvDACC7Mgfrzm5EqakMMf5RWPBoIirLzG3Qzf0lhMC2Q9fw7ambCPR1wWtP94O7i7zP\n4xMR0S+1ywCf1MUDweXfwKS/AYXKFZcyI3DlshOcbEZE5R+AzgMIfP0NOHVr2ZSXpwp+xGcXt8Ji\nsyKuxxiM7joMThonVEL+Af7V0evYffwGtN7OeO3pfvBwZXgTEXVE7TLAtfr1qLOaYEFXHDoQjNoa\nNQKqstC78Dj8fjME/pOnQOno2OztWm1W7Li6B/tuHoaz2gkvRD6HSL+mT2bS3u05cQM7jmTBz9MJ\ni6f2g7d7898jIiKShyYF+KFDh7BixQoIITBp0iTMnj37jterqqrw2muvIT8/HzabDTNnzsTEiROb\ntG6DbAK5hf2RmuIKDayIKDiIYEUJdK+8DLfomOZ3CaCqrhofn9+ES6WZCHDRYnb0DOhcmn/evL36\n7lQ2th64Ch8PRyye2g8+Hk5Sl0RERG2o0QC32WxYvnw51q9fD61Wi4SEBIwYMQIhIf9/Jq5Nmzah\nV69e+Ne//gWDwYCxY8fiySefhFKpbHTdhhw7NQAGgwY+Jj3C8g7CNyoUuumvQu3h0aImcyrzsC59\nA0qMpYj2i8D08ClwVnecgNv3Yw6S9mXC080Bi6b2g5+Xs9QlERFRG2s0wM+ePYuuXbsiODgYABAb\nG4vk5OQ7QlihUKC6uhoAUF1dDS8vL6jVaqSmpja6bkPKDCr0KjqFLrWZ0D77DDwfbfk92Wf0qfj0\nwhcw28x4ovsojO02AkpFxxn/+1BaHj797jI8XDRYPLUfdN4uUpdERET3QaMBrtfrERgYWP9Yp9Mh\nPT39jmWeffZZvPTSSxgyZAhqamqwZs2aJq/bkAeyd8Iv2AcBL7wJB11Ak5v5KZuwYefVb/B99gE4\nqRyRGDUD0f4RLdpWe3U0PR8bvr4IN2cNXpvaD4G+TZ/fnIiI5K1VLmI7cuQIwsPDsXHjRmRnZ2Pm\nzJnYuXNni7fXZfRQ+MbGQaFuWXnV5hr8+/xnuGC4DK2LH34bNQMBrroW19Menbqgx8d7LsDZUY2F\nU2LQyb/5o88REZF8NZqQOp0OeXl59Y/1ej20Wu0dy2zbtq3+4rQuXbqgU6dOuHbtWpPWbUiv55+F\nWt2y8bqzy3Kx+uS/oK8uRv/ASMx9OBEuDk07J+zv796ifd5vx9PzsO6rDDg7qrH8t4PQu4t3i7Yj\nl35bgz31CthXv/bUK2Bf/dpTry3RaIBHRUUhOzsbubm58Pf3x+7du/HOO+/csUxQUBCOHz+OAQMG\noLi4GNevX0fnzp3h7u7e6LoNKS1t2TSXPxaexScXtqDOWocx3UYgtvsoVJdbUI3KRtf193dHUVHj\ny0ktNbMY/9iWDo1KifkJfeHtrG5R3XLptzXYU6+AffVrT70C9tWvPfUKtOzLSqMBrlKpsGzZMiQm\nJkIIgYSEBISEhCApKQkKhQJTpkzBSy+9hCVLliAuLg4AsGjRInh5eQFAg+u2NpuwYde17/DtjX1w\nUDngxcjnEKONavX9SO1cVgn+uT0dKqUC8ydHo2cnT6lLIiIiiSiEEELqIn6uOd+6asy1WJ+xGedL\nLsLP2Re/jZqBILfmX/jW3r/tXbhRine/SIMQwLzJ0Yjodm9zlLf3fluTPfUK2Fe/9tQrYF/92lOv\nQBsdgbdn+dV6rDu7AYW1xQj3CcXMiKlw0XS826gu3yzD37amQQiBVybee3gTEZH8yTbA04rOYUNG\nEkzWOjzedRjieozuUPd333Y1rxzvfpEGq1Xg5QmRiA7xlbokIiJqB2QX4DZhw9dZe7Hn+l44KDVI\njHgWA3R9pS6rTVwvqMA7n6ehzmzD7+Ij0K9Xxxn6lYiI7o2sArzWYsSGjCSkF2fA18kHv42egWC3\nwMZXlKFsfSVWJ6XCaLLgxbhwDOzT+O13RERkP2QT4PrqQqxN3wh9TSH6ePfCzMhn4KbpmCOP5RZX\nY1VSKqqNFiQ+EYaHI1o2Gh0REXVcsgjw9OIMrD+fBKPViBGdf4P4kLFQKVs20Et7V2CowarNKaiq\nNWP6mFAMie6YvzAQEdG9adcBbhM2fHt9P3ZnfQe1UoXnw6figYB+UpfVZgpLa7BycwrKq+vw7Kje\neCwmWOqSiIionWq3AW60GPHJhS1ILToHb0cvzI6eji7unaQuq80Ul9di5eYUlFaa8NSwnhgxoOP2\nSkRE965dBnhhTTHWpm9AQbUevbx6YFbkNLg7dNzJOgwVRqzcnIKSChMm/qYHxjzUReqSiIionWuX\nAf72mb+j1lKLYZ2GYELP2A57vhsAyqpMWJmUiqIyI+IGdcO4Qd2kLomIiGSgXQa42WbG9LApeChw\ngNSltKmKmjqsSkqF3lCDsQ91wfhHu0tdEhERyUS7DPAF/V9CV4/OUpfRpqpqzVi1ORV5xdUYObAT\nEh4LgUKhkLosIiKSiXY59mhHD+8aoxmrP09FTlEVhvULxtQRvRjeRETULO0ywDuyWpMFa7ak4UZB\nJR6NDsSzj/dmeBMRUbMxwO8jU50V736Rhqt5FXgkIgAzxvSBkuFNREQtwAC/T+rMVvzPl2dxJacc\nD/TRIjG2D5RKhjcREbUMA/w+MFuseG9bOi7cKEX/3v54MS4cKiXfeiIiajmmSBuzWG345/ZzOJdl\nQHSIL34XHwG1im87ERHdGyZJG7JYbVj7n/NIu1qCiO4++D8TIhneRETUKpgmbcRmE/hwVwZ+uFyE\nPl288MrEKGjUHXdEOSIiur8Y4G3AJgQ+3nMBpy4UomcnT8xNiIajhuFNRESthwHeymxCYOM3F3Hs\nXAF6BHng1cl94eTQLge8IyIiGWOAtyIhBDZ9fxmH0vLRVeeOBU/1hbMjw5uIiFofA7yVCCHw+b5M\n7P8xF5383bDw6Ri4OGmkLouIiDooBngrEELgy4PX8N3pmwj0dcFrT8fAzZnhTUREbYcB3gp2Hr2O\nPSduQOftjEVT+8HD1UHqkoiIqINjgN+j3cev4z9HsuDn6YRFU/vBy81R6pKIiMgOMMDvwXensvHl\nwWvw9XDE4qn94OPhJHVJRERkJxjgLZT8Qw6S9mXCy80Bi6b2g5+Xs9QlERGRHWGAt8DB1Fxs+v4y\nPFxvhbfW20XqkoiIyM4wwJvpaHo+Nn5zCW7OGix6OgaBvq5Sl0RERHaIAd4MJzP0+HjPBbg4qfHa\n0zEI9neTuiQiIrJTDPAmOnOxEB98lQEnBxUWTIlBF5271CUREZEdY4A3QeqVYqzdeR4ajRILnopB\n90APqUsiIiI7xwBvRPq1EvxzRzpUKgVendwXIcGeUpdERETEAP81GdcNeG9bOhQKBeZNikbvzl5S\nl0RERASAAX5Xl2+W4X++PAshBOZMjEJYNx+pSyIiIqrHAG9AZm451nyRBqtV4OXxUYjs4St1SURE\nRHdggP9MVn4F1mxJhdlsw+/iIxDTy0/qkoiIiH6BAf4T2fpKvPN5Kox1VrwYF44BoVqpSyIiImoQ\nA/x/3SiowKqkVNQYLUh8IgwPheukLomIiOiu1FIX0B7kl1RjZVIqqmrNmDEmFIOjAqUuiYiI6FfZ\nfYAXltZg5eYUlFXV4dlRvTE0JljqkoiIiBpl1wFeXF5bH96znozAYP5sTkREMmG358ANFUa8/VkK\nSipMmDS0B8YP7Sl1SURERE1mlwFeVmXCys0pKC434snB3RD7SDepSyIiImoWuwvwiuo6rNycAn1p\nLZ54uCvih3SXuiQiIqJms6sAr6o1Y1VSCvJLavD4A50xaWgPKBQKqcsiIiJqNrsJ8BqjGauTUpFT\nVI3h/YMxZXhPhjcREcmWXQR4rcmC1Z+n4Ya+Er/pG4hnRvVmeBMRkax1+AA31lmw5os0ZOVXYFBk\nAKaP6QMlw5uIiGSuQwe4yWzF/2w9i8yccjwYpkXiE2EMbyIi6hA6bICbLVa89+VZXMwuw4De/nhh\nXDiUSoY3ERF1DE0aie3QoUNYsWIFhBCYNGkSZs+efcfrH330Eb766isoFApYLBZcvXoVJ06cgIeH\nB4YPHw43NzcolUqo1Wps3bq1TRr5KYvVhn9sP4fz10sR09MPv42PgFrVYb+rEBGRHWo0wG02G5Yv\nX47169dDq9UiISEBI0aMQEhISP0ys2bNwqxZswAA+/fvx4YNG+Dh4QEAUCgU+OSTT+Dp6dlGLdzJ\nYrXh/R3ncPZqCSK7++Cl8ZEMbyIi6nAaTbazZ8+ia9euCA4OhkajQWxsLJKTk++6/K5duxAbG1v/\nWAgBm83WOtU2wmqz4YOvMpBypRhhXb3xysQoaNQMbyIi6ngaTTe9Xo/AwP8/vaZOp0NhYWGDyxqN\nRhw5cgSjR4+uf06hUCAxMRGTJk3Cli1bWqHkhtlsAh/vvojTFwvRu5Mn5k6KhoNG1Wb7IyIiklKr\nzka2b98+9O/fv/7ncwDYvHkztFotDAYDZs6ciR49emDgwIG/uh1vbxeo1U0PX5tN4L0vUnH8fAFC\nu3rjzdmPwMVJ0+z6/f3dm72OnNlTv/bUK2Bf/dpTr4B99WtPvbZEowGu0+mQl5dX/1iv10Or1Ta4\n7J49ezBu3Lg7nru9rI+PD0aNGoX09PRGA7y0tKbRwm8TQuDT7y5jf0ouuga4Y86ESFRXGlFdaWzy\nNoBb/6EUFVU2ax05s6d+7alXwL76tadeAfvq1556BVr2ZaXRn9CjoqKQnZ2N3Nxc1NXVYffu3Rgx\nYsQvlqusrMTp06fveK22thbV1dUAgJqaGhw5cgS9evVqdpF3I4RAUnIm9qfkopO/GxZOiWnRkTcR\nEZHcNHoErlKpsGzZMiQmJkIIgYSEBISEhCApKQkKhQJTpkwBAOzduxdDhgyBk5NT/brFxcV45ZVX\noFAoYLVaERcXhyFDhrRK4UIIbD14Fd+fuYkgP1e8NjUGbs4MbyIisg8KIYSQuoifa8rPJjsOX8PO\no9eh83HB68/0g6eb4z3t0x5/rrGXfu2pV8C++rWnXgH76teeegXa6Cf09mjXsevYefQ6/L2csHjq\nvYc3ERGR3MguwL85mY1th67B18MRi6b2g7c7w5uIiOyPrAJ875mb2LI/E97ujlj0TH/4eTpLXRIR\nEZEkZBPgB1Jz8dneK/B0dcCiqf2g9WJ4ExGR/ZJFgB85m4+N31yCu4sGr03thwAfF6lLIiIiklS7\nD/AT5wvw7z0X4OqkxmtP90Own6vUJREREUmuXQf4mYuF+HDXBTg53grvzlo3qUsiIiJqF9ptgKdc\nKcLanefhoFFiwZS+6BrAMXGJiIhua5cBnn6tBO/vOAe1Son5k/siJOj+zCVOREQkF+0ywN/blg6F\nQoG5CdHo3dlL6nKIiIjanXYZ4EIIzJkUhbCu3lKXQkRE1C61ywB/ZWI0Irv7Sl0GERFRu9UuAzw6\nhOFNRET0a9plgBMREdGvY4ATERHJEAOciIhIhhjgREREMsQAJyIikiEGOBERkQwxwImIiGSIAU5E\nRCRDDHAiIiIZYoATERHJEAOciIhIhhjgREREMsQAJyIikiEGOBERkQwxwImIiGSIAU5ERCRDDHAi\nIiIZYoATERHJEAOciIhIhhjgREREMsQAJyIikiEGOBERkQwxwImIiGSIAU5ERCRDDHAiIiIZYoAT\nERHJEAOciIhIhhjgREREMsQAJyIikiEGOBERkQwxwImIiGSIAU5ERCRDDHAiIiIZYoATERHJEAOc\niIhIhhjgREREMsQAJyIikiEGOBERkQwxwImIiGSoSQF+6NAhjBkzBqNHj8a6det+8fpHH32E8ePH\nY8KECYiLi0N4eDgqKiqatC4RERE1n7qxBWw2G5YvX47169dDq9UiISEBI0aMQEhISP0ys2bNwqxZ\nswAA+/fvx4YNG+Dh4dGkdYmIiKj5Gj0CP3v2LLp27Yrg4GBoNBrExsYiOTn5rsvv2rULsbGxLVqX\niIiImqbRANfr9QgMDKx/rNPpUFhY2OCyRqMRR44cwejRo5u9LhERETVdq17Etm/fPvTv3x8eHh6t\nuVkiIiL6mUbPget0OuTl5dU/1uv10Gq1DS67Z88ejBs3rkXr/pS/v3ujy7QFqfYrFXvq1556Beyr\nX3vqFbCvfu2p15Zo9Ag8KioK2dnZyM3NRV1dHXbv3o0RI0b8YrnKykqcPn36jteaui4RERE1T6NH\n4CqVCsuWLUNiYiKEEEhISEBISAiSkpKgUCgwZcoUAMDevXsxZMgQODk5NbouERER3RuFEEJIXQQR\nERE1D0diIyIikiEGOBERkQwxwImIiGSIAY5bV9DPnTsXY8eORWxsLNLS0qQuqc2sX78e48aNQ1xc\nHBYuXIi6ujqpS2pVb7zxBgYNGoS4uLj658rLy5GYmIjRo0dj1qxZqKyslLDC1tVQv2+//TbGjh2L\n+Ph4zJkzB1VVVRJW2Hoa6vW2jz/+GH369EFZWZkElbWNu/X7ySefYOzYsYiLi8OqVaskqq51NdTr\nxYsXMWXKFIwfPx4JCQlIT0+XsMLWU1BQgOnTpyM2NhZxcXHYuHEjgBZ+TgkSv//978XWrVuFEEKY\nzWZRWVkpcUVto6CgQAwfPlyYTCYhhBDz5s0T27dvl7iq1nX69GmRkZEhxo0bV//c22+/LdatWyeE\nEGLt2rVi5cqVUpXX6hrq9+jRo8JqtQohhFi5cqVYtWqVVOW1qoZ6FUKI/Px8kZiYKIYNGyZKS0sl\nqq71NdTviRMnxMyZM4XZbBZCCFFSUiJVea2qoV4TExPF4cOHhRBCHDhwQEybNk2q8lpVYWGhyMjI\nEEIIUVVVJR5//HGRmZnZos8puz8Cr6qqwpkzZzBp0iQAgFqthpubm8RVtR2bzYba2lpYLBYYjcYm\nDawjJwMHDvzFSIDJycmYMGECAGDChAnYu3evFKW1iYb6HTRoEJTKW/9rx8TEoKCgQIrSWl1DvQLA\nihUrsHjxYgkqalsN9bt582a8+OKLUKtv3QHs4+MjRWmtrqFeFQpF/VFoZWUldDqdFKW1On9/f4SF\nhQEAXF1dERISAr1e36LPqUbvA+/ocnJy4O3tjSVLluDixYuIjIzE0qVL77ifvaPQ6XSYOXMmHnvs\nMTg7O2Pw4MEYNGiQ1GW1OYPBAD8/PwC3/ucxGAwSV3T/bN26tX5yoY4oOTkZgYGBCA0NlbqU++L6\n9es4c+YM1qxZA0dHRyxevBhRUVFSl9UmlixZghdeeAF//etfIYRAUlKS1CW1upycHFy8eBF9+/ZF\nSUlJsz+n7P4I3GKxICMjA8888wy2b98OJyenDjtveUVFBZKTk7F//34cPnwYNTU1+Oqrr6Qu675T\nKBRSl3BfvP/++9BoNA2eM+4IjEYj1q5dizlz5tQ/Jzr4sBZWqxXl5eXYsmULFi1ahPnz50tdUpvZ\nvHkzli5digMHDmDJkiV44403pC6pVVVXV2Pu3Ll444034Orq+ovPpaZ8Ttl9gAcEBCAgIKD+W+zo\n0aORkZEhcVVt49ixY+jcuTO8vLygUqkwatQopKSkSF1Wm/P19UVxcTEAoKioqMP87Phrtm3btGNO\nhwAACCtJREFUhoMHD2L16tVSl9Jmbg/THB8fj+HDh0Ov12PSpEkoKSmRurQ2ExAQgMcffxwAEB0d\nDaVSidLSUomrahs7duzAyJEjAQBjxozB2bNnJa6o9VgsFsydOxfx8fH1Pbbkc8ruA9zPzw+BgYHI\nysoCAJw4caLDDvcaFBSEtLQ0mEwmCCE6bK8/PwobPnw4tm3bBgDYvn17hxuP/+f9Hjp0CB999BHe\nf/99ODg4SFRV2/hpr71798bRo0eRnJyMffv2QafTYfv27fD19ZWwwtb187/tyJEjceLECQBAVlYW\nLBYLvL29pSit1f28V51Oh1OnTgEAjh8/jm7duklQVdt444030LNnT8yYMaP+uZZ8TnEoVdy6XWHp\n0qWwWCzo3Lkz/vKXv8DdvWPOgvPee+9h9+7dUKvVCA8Px1tvvQWNRiN1Wa1m4cKFOHnyJMrKyuDn\n54c5c+Zg5MiRmDdvHvLz8xEcHIx33323w0x521C/a9euhdlshpeXFwCgb9+++K//+i9pC20FDfV6\n++JTABgxYgS+/PLL+r7lrqF+4+Pj66/X0Wg0eP311/Hggw9KXeo9a6jX7t2746233oLNZoOjoyP+\n+Mc/Ijw8XOpS79kPP/yAadOmoXfv3lAoFFAoFHj11VcRHR2N+fPnN+tzigFOREQkQ3b/EzoREZEc\nMcCJiIhkiAFOREQkQwxwIiIiGWKAExERyRADnIiISIYY4EQkO0ajEd9//73UZRBJigFORLJz/vx5\nfPfdd1KXQSQpDuRCdI9OnTqFd999F0FBQcjJyYGnpydWr16Nr7/+GklJSdBoNHjooYfw6quv4tq1\na/jjH/8ItVqNqqoqzJ8/H4MHD27RPtetW4eAgABkZmZCo9Hgww8/hKOj413X2b9/P/7xj3/AyckJ\n3bp1w5tvvgmTyYRly5ahoKAAFosF8fHxmDp1KrZv347Dhw9DCIGMjAzExcXBbDbj5MmTAID169ej\npKQEzz//PIYOHYoLFy5AoVDgnXfegVarxYEDB/DPf/4Tzs7OcHZ2xptvvgmtVovhw4dj+vTpOHz4\nMHJycvCnP/0JDz/8MPLz8/GnP/0JRqMRNTU1ePXVV/HII49gyZIl0Gq1uHTpEm7cuIGEhARMmzYN\n48ePR2VlJcaPH4/4+HgsW7YMjo6OMBqNePnllzF06NAW/z2JZKN1pyonsj8nT54Uffv2FYWFhUII\nIRYvXiz+/ve/i5EjRwqTySSEEOL1118XWVlZ4uTJk+L06dNCCCFSUlLExIkTW7zPgQMHCoPBIIQQ\n4rnnnhPff//9XZevra0VgwcPFqWlpUIIIVatWiVOnz4t1q5dK958800hhBBGo1EMGzZM3Lx5U2zb\ntk08/vjjwmw2i5ycHBEWFlZf97Rp08TevXtFTk6OCA0NFRkZGUIIId59913x3//93/X70uv1Qggh\nPv30U7FkyRIhhBDDhg0TSUlJQgghtm/fLl5++WUhhBCzZ88WJ0+eFEIIUVRUJIYNGyasVqt4/fXX\nxYIFC4QQQuTm5ooBAwYIIYTYtm2bWLRokRBCiLfeekt88MEHQgghSkpKxI4dO1r0nhLJjd3PB07U\nGnr27Al/f38AQL9+/fDxxx8jIiKifjKRv/zlLwBuTdjw9ttvY82aNTCbzSgrK2vxPkNCQuonsggO\nDkZ5efldl83MzERgYGD9OOELFy4EAPz73//GxIkTAQCOjo6Iioqqn40vMjISarUaAQEBEEKgf//+\nAG7NiFVZWQkA8Pb2RlhYGACgf//+2LhxI65fvw5/f39otVoAwIMPPnjHXM63x+4OCgqqr/nkyZOo\nqampX8bBwaF+VrGfLl9dXf2LSS9Gjx6NJUuWIC8vD0OHDkV8fHwz3kUi+WKAE7UCm81W/28hBNRq\n9R3P3bZ8+XLExcVhwoQJuHLlCn73u9+1eJ8qleqOxz8Ptp9SKBSwWq0NPv/zbdx+7ufbVyp/ecnM\nz/u+ve5Pa/np8wCgVqvveA24FdjvvfcePD09f7GPxvocOHAgdu3ahePHj2PHjh3YuXNnh55Gleg2\nXsRG1AqysrLq5/L94YcfEBsbi/T0dFRXVwMA5s2bh/Pnz6OkpKR+Ctc9e/agrq7uvtTXo0cPFBYW\nQq/XAwBWrFiBffv2ISYmBocPHwYA1NTU4Pz584iIiPjF+nf7clBeXo6LFy8CuNV3aGgounfvDoPB\ngIKCAgC35qGPiYn51foGDBiA3bt3AwAMBgNWrFjR4HK361AoFLBYLACATz/9FPn5+Xjsscfw1ltv\nIT09/Vf3RdRR8AicqBWEhIRg9erVuHHjBry8vDBr1iwEBATg+eefh0qlwgMPPICIiAjMnDkTixcv\nRqdOnTBz5kzs3bsXf/3rX/H73/++TetzdnbGn//8Z8yZMwcODg7o3LkzHnvsMQwaNAjLli3DtGnT\nYDab8corryAoKOgX6//0CPqn/9bpdNi2bRsuXboEIQTWrFkDR0dH/PnPf8b8+fPh4OAAFxeX+kD+\n+RH/bUuXLsUf/vAH7N69G2azGS+//HKDy91ePzo6GqtXr8bSpUsxbtw4LFiwAO7u7rDZbHjttdda\n/D4RyQmvQie6R6dOncLf/vY3bNq0SepS7qvc3Fw888wzOHjwoNSlENklHoETSWzv3r3YsGHDHUen\nQgikpaUhJibmF+eWFQoF1qxZA19f3zu2YzKZ8MILL/xiOwqFArNnz8aQIUNavfa7HVETUdvjETgR\nEZEM8SI2IiIiGWKAExERyRADnIiISIYY4ERERDLEACciIpIhBjgREZEM/T8ev0FjcR2dRgAAAABJ\nRU5ErkJggg==\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7f851b247b70>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"p.plot()" | |
] | |
} | |
], | |
"metadata": { | |
"anaconda-cloud": {}, | |
"kernelspec": { | |
"display_name": "Python [default]", | |
"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.5.2" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment