{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "

Learning To See

\n", "\n", "

Part 9: Bias Varaince Throwdown

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Import Data and Support Functions" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%pylab inline\n", "from supportFunctions import *\n", "import cPickle as pickle\n", "import time\n", "\n", "pickleFileName = 'data/fingerDataSet' + '.pickle'\n", "pickleFile = open(pickleFileName, 'rb')\n", "data = pickle.load(pickleFile)\n", "pickleFile.close()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#Return to just using 3 images at training data:\n", "trainingExampleIndices = [7, 30, 46]\n", "trainingExamples = [data[index] for index in trainingExampleIndices]\n", "trainX, trainY = extractExamplesFromList(trainingExamples, whichImage = 'image1bit', dist = 4)\n", "\n", "#And two for testing:\n", "testingExampleIndices = [40, 41]\n", "testingExamples = [data[index] for index in testingExampleIndices]\n", "testX, testY = extractExamplesFromList(testingExamples, whichImage = 'image1bit', dist = 4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Search For 1 pixel rules" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Time elapsed = 0.01 seconds.\n" ] } ], "source": [ "rules = []\n", "numErrors = []\n", "startTime = time.time()\n", "\n", "for i in range(81):\n", " yHat = (trainX[:,i] == 0)\n", " numErrors.append(sum(abs(yHat-trainY)))\n", " rules.append([i, 0])\n", "\n", " yHat = (trainX[:,i] == 1)\n", " numErrors.append(sum(abs(yHat-trainY)))\n", " rules.append([i, 1])\n", " \n", "timeElapsed = time.time()-startTime\n", "print 'Time elapsed = ' + str(round(timeElapsed, 3)) + ' seconds.'" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "81" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Find the winner:\n", "np.argmin(np.array(numErrors))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Rule number 81 wins!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Visualize Rule" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#Make red and blue colormaps:\n", "import matplotlib.colors as mcolors\n", "c = mcolors.ColorConverter().to_rgb\n", "bw = make_colormap([(1,1,1), (1,1,1), 0.33, c('blue'), c('blue'), 0.66, c('blue')])\n", "rw = make_colormap([(1,1,1), (1,1,1), 0.33, c('red'), c('red'), 0.66, c('red')])\n", "rwb = make_colormap([c('red'), c('red'), 0.33, (1,1,1), (1,1,1), 0.66, c('blue')])" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nVe9O8ufdfW+SdPcr3f2/Gx5rqsuTvKuqtpJcmeSFdT3QpDhfk+TZc+4/F9E5UFW9P8lHkvx4s5OM\n9Y0kX03iKUkH+0CSl6rq3t1TQHdV1RWbHmqa7n4hydeTPJPk+SS/7u4frevxJsWZI6iqq5KcSXLL\n7hE056iqTyd5cfenjNr9YH9bSU4nubO7Tyf5bZKvbXakearqvdn5af66JFcnuaqqPreux5sU5+eT\nXHvO/VO7n2OP3R+pziT5Vnd/d9PzDHVDks9U1dNJ/jXJX1bVNzc801TPJXm2u3+ye/9MdmLNm30i\nydPd/avufjXJ/Uk+tq4HmxTnh5L8QVVdt3sF9KYkrrDv75+TPNHdd2x6kKm6+7buvra7fy87f5ce\n6O7Pb3quibr7xSTPVtUf7n7q43ERdT/PJPnTqvqdqqrs7Ke1XTjdWteGj6q7X62qLyb5YXb+07in\nu10x3qOqbkjyN0keq6pHsnM+9bbu/sFmJ+Mid3OS+6rqHUmeTvKFDc8zTnc/WFVnkjyS5OXdP+9a\n1+P59W2AgSad1gBglzgDDCTOAAOJM8BA4gwwkDgDDCTOAAOJM8BA/w8PGGh3UQ4wLQAAAABJRU5E\nrkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ruleVector = np.zeros(81)\n", "ruleVector[40] = 1\n", "\n", "fig = figure(0, (6,6))\n", "imshow(ruleVector.reshape(9,9), interpolation = 'none', cmap = bw)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This rule classifies examples as fingers that have ones in the 40 position (shown above) - pretty cool!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Now, let's test its performance!" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk0AAAEzCAYAAAAsOjd0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvVmb4ziWJXgALlrMzXf3CPdYPDIjq3Kyarpf5///hHnp\nh+msziXW9MjwCA9bxA3APNBAg64uFlKUmSxLxz59kkkkAILAvecegIAwxuCEE0444YQTTjjhhDDk\nfRfghBNOOOGEE0444SHgRJpOOOGEE0444YQTEnAiTSeccMIJJ5xwwgkJOJGmE0444YQTTjjhhASc\nSNMJJ5xwwgknnHBCAk6k6YQTTjjhhBNOOCEBJ9J0wgknnHDCCSeckIATaTrhhBNOOOGEE05IQH7f\nBTjhhP9uePToUXBFWSHE8LJwF6Glv9N3ANBawxgDrfXwm5RyOM8Ys/VKAXeOm6ZN1+ZtjNn6zS0f\nvS43Ta48NB96jtYaSilorYdrllJuvTi46XLX6NajW5f0HPfd5pdlGaSUQ9nsyxizVS633kL5xOqN\nA73vPmw2G/+PJ5xwwoCT0nTCCUeEmHNLASVY+6Y1hliNyfMYdiNIKUPsGN/1cudNvb/0HPf/qfd4\nyr094YT/7jgpTSeccIQIKRn0OAuf83NVIPfYfZxlyIm7/4dUEt//9JrctHzXQn/35c2BqxdaP6G6\nD9UjpxDSzxw4hY7Lz9YFrZNQHieSdMIJ03EiTSeccM+gqsFY5YBzgi6RoN+HSFgKXEdNy8uV3Ucu\nYqTEnjumTsYQE18ZKHFKJSO+9Lm62kcB5EilSy5DZUn57oQTTvDjRJpOOOEe4SNMnKICIOgc5xhq\nSkXMQYd+TyFLKXn4jrfzl1IJFyWRMcLE/e9Tq0IKnK9sY4jnGMKUokqecMIJYZxI0wkn3BN8qgMl\nT5xTDylIXNqx+StT59mkOn3uGkLpcvmkEKCpc32oApcy34fLK6Sm0XviqzvfcCPNh2sDvvL5jjkW\nrNdrtmCcahi7N7574Ksf7n7sq8bayff23Vc2Wh43WKIPD2RZNjxcIKUcHnyw7zY/OvE/9u7CfRiB\nqwP3uriHK1L6Dm3TNB9ab+4DHlyatK5T+y8tM73WpmlYA3IiTSeccMfwOfYpQ3MUdA6Q+84Zp1D5\nuLkyqSTJfh8zWtT5TyU9sfxSnd+cE6N986BSlCGOOMbKNWV47qEjpX3NlUeIpKa02xAR8/WrOWyC\nD/S6Utt+iLhz6XPnxo4dc99S+tOcOJGmE064J+xDEELgiBP3e2j4yH6eU5maqjal5JVyPaEy+cqY\nUj5fujFSyn0/hwOIKVAPCRxxH6sk2HM4jHX6sXKG0hjT7jmFLaZYpbbJUJtPGZLm0qTfTWlz3Dlz\n3GMLX78IBYkcTqTphBPuGD7HnjJMECI8IceQMsTnO8dX/rmIni0Ll+6UvKY6wrnJRarz8TlAqjT4\n7gkd0gv9fuzg6izU5qciNZ1YfdtjUu5tjDTRa0wZTrPfp/YTjii4v6UMH/rSpJ+ngrNVbrl95Cqk\nmHGqO62D1DZ2Ik0nnHCPSDWMIdAx+diQH42oxpRhbDk5B+O+x85NyZMauzFDdGOGBeYmi6E89jk3\npkg8JFDCRFWmFHVhbB2kKqAp6fgCltDxND8uiBg79OULsEJlu8shL3ovQ/05RJw4cIFHiDzFcCJN\nJ5xwxwgNPc0ZTbtpxsoxBmMdxxh1hDr8mNKQ4hTHGtg5naZ7zph7O/be+BQmtxzHjJgCSMlHiDRN\nJY1TFBNahpD6GyJNPrIUUpHGEJwQUfOVK0bgfP0qhcz6yub7bPMe29dDqrUveIzhRJpOOOGOMcbA\nxYwy9z1HPEJlmXOYLYYUsuRLM0U+T4nmU8vFkbYQUiL9WAQd+j9FpfM5WFr+u1QR5sAYwjlX4OFT\nb8ecC/DD46HjKe4zsPKVYY78pqQZ6o8pafr68RhF8kSaTjjhjmEf1Q1FtlPUgRTiETpuKlLKzjls\nSlJCkbR77hRliX7vGlguAnXz8pE1mkbomDHDADEl0pcGV4++uubS/lfC3MRpjjRi926MIjtXuThl\nyEfeufwfYhsK2ZCU6zmRphNOuGOkSPjuZ06mjilOvjxcBx5Sp8ZiCulLJQecSjJmaCCWtnsMpwqF\niJMvH46gpUbCHMYOHYUImq+NHDvGEqGpxGkOQuJLZ4zSNEZZnQOhvGLtcowKOOZ4X1lS1d8p6cZw\nIk0nnHDHSCEoPsLEHXcXRjVliClFLp/qxPYhdWOOnxKF+iJwH3Hizk9R2fbFMatMqXXuU0fGpJty\n7XMEDqHffOQhNV9OHZp6T2laXDCRkkbK71OHz0LHz4mU/E+k6YQT7hmUgKQMwYTSsaCGMNXRjAEd\nPuCu4b6HSXwEz0dCY/ndhVITI29jlTwg7fofAuYYpord/9DnfestNVBKsQf03KnzhEL/u9+n1vfY\nY2P5x9Rj33c0jViQl4ITaTrhhAeCkLP2DTP5iFKKkT2ESjVHWocAV8a58xrr2PYhTg+VEI3FFNUo\nhTDR78YOC075zf7ukiQfYTpEAATEycihiBOXN6fWxs7xlWHMsGgMJ9J0wglHCLeju9J7TGmSUkYN\n7T4kxncuZyDnVjNCDmzskBo9h1PJQqDDIT6DPtYRj0kzNNznvs+pkhwTuLluFmOGuVKc812CkqaY\n059a3jFtYWq78dkFmq5PbfLdG9/vofJyQ5pTcCJNJ5xwj9hHxqa/+Rz5PoaVRrtjI/tDDAPNGTWO\nzWMs9p2syp2fQpzo8UC64nIfmDq8tM9QEkeYaHl85/nKsM8wGS1TiDDN2db3KevY87k2R9szJVK+\njXrHDJOH6nLs9Z9I0wkn3DFicyXGqCauEXKJk931nOY1NdoKOVhq9LhrCDmolHLEzosZw1jdcvck\nZqi5oVBfGVPVK/d4rl5pmqE8Q0qMxX2rKhSxduYeQ9VYmo573hjlyT1nX9JL4abrfjdFJbPn0nRo\neinluSuklC1G5qcOF3Iq+xTCeCJNJ5xwxxg7dABsG0TOWcaM5SHUH84p76NojVWxUklYqpFOHaLh\nItwpTjkEn5oUu7++YY4xZbxv+NSI0LWkDFmmKE8cuH6VqmL50nPfY+WJlZ2zEWOQSlC4so3Jg/bd\nWBA4NW0Oc9q/E2k64YQ7RkjB8Ck0nEHkiJOd08QdN2WozYeQxJ4Cn8I2RRWg5dmHMPlUJh8ZSSFu\nKdflc6Q+ZcItP5cWd91jiOFdgyPDqeTClw5F6B5MHbYZqyLGvk9VVH33dyqhjymxU3GoNjaGHIYI\n00lpOuGEB4CU4TFXSo7J0RypCkVycxiOUHm4PGMOK+RUONLn/m5/c/+nn0PnpBAJn/pByxi7Bl9Z\nQuf5SETKsKBbfjfNYyJMKYgFDGPScTElnSlKcawc9NpS+yTX3n1pTyV3+9iHQ6QzFbFAKBUn0nTC\nCXcMbt4EhU9q55SoMU5wrCI0Jk1OyRgTDfqUkNCQXKj+Qv+7340xnvaeSClZh7WPgpdKwrjzYsdz\nwyPHRJxS+gT9PdTu53DQU+8Hdz4tU6oC6h5L+wgXIPkCpZQ86fFjf0u5NzTASw1YUjHGDrrvY3Bw\n0rRerw2w3yRU3/kUh2CyU2VA7vvYmC4dPqHl4N5TwXXAUOQe+j/k0N1X6NiQIkLrwVcn7vmuE7Pn\naK3Zuri6urrfkOcGrmGkRpK7VlonIQLl62+ceuXLw00zBl/ZOaXEB+oUfAY1NXrnypbSnt3Pobbn\nfm+PT9lXMOV6uHoY41RibeVYQdsJ7Recs3WPtcftQ15tGm6ebvp3mR5ts5y9pgTeRUyNDJV1DEK2\ni5JF+j9nx8aULdY/uDJy76m4F6XJZ0h9hiRkLMYSLxexczlnHvuNK9PYRhsjTKFjQvCRk5CR8uUX\nSzsFISNI2wfX+X3le0hOAvBfGzWwbgTne1mimBrpcWnb79x3X5nddH1EYUw/jZG1MW3Sd677LqUc\nXrRuuPq2jz+ntjEfeRlL/GhfcNP0Hesr3xyk4i7gs0XccfTzHNfGBXypbY4rdyjYpP/7gkz3eK4v\nc5hKQsYi1uboOw0MUoMCardi56TawVQcnDSFyAWHUAX5jp/aQfY9N/bdPhGKLdtUNkzLwKVP86Ln\npUQBsaghVjbOQcXKTPOkv6c6qGOAL4AAwn2HI4kx0uOrN5rmWNJJDSFt9ylGLlQWruwcoQ6Vzf3f\nvrIsGwiT/WyJlNsmXaKklILWengPtbG5nU+oL3L3M4U4HStCNmmMo9zHboaCun3TdMtJyYP7PVcG\n+tm2WRec/QvZbu57X3uj7S6VeMT8WQp59J0TI0lcGXzliOFOSRNnCH0VFev0c3X42I2ZwuDnjuJS\noh2uQ4whXL4y0w7N3RO3U6caGLds7irW7rWMuS8hwkQJ6H0j1aDHAg4fcfIdT9P0Ga7Y/aNtax8j\nFMqLliXkdGJwyZBLlOiLKk9a662XUgpd1+3kn2q0fdcZszOpaVIyGSrPsfQHFz6b5QsIplzbWIKb\n0h9SEPJ7oTRpnaTaV9t+xxLIULsJ/TbGz6QEiSFyPKXtUrI5FXeuNLmYixBxhmLq+anH73O+Lx0f\nuOg9FWOvi3OG1CH4Gp+vM4TKluIEbeePld2++5ztsSGmkITqPWbQOKI0xthSosl95u49PXYK3HtI\n2ySXny8NWl5KlPI833mFSJMlTG3bDi9bDuuc3OHR2DXSa9m3jdL7nBrAHAOoUuIilSztc70h4hsL\nWMciFPz4+lGqw6fH24CU2s+Q742R7ZgNiokJXKDhtt1U8uWDz59wwfOYQN/i4KQpdgOmpAXwhuYQ\nBiLkrGJRzlzlccsQYvgpnT5UrtS65Bqir1y044fKlNIZOcPhO48r50OArz5T2lOqMeHOofeHe7nH\ncentW8e+66YEaEyg5JImlyAVRbH1sqTJVZyUUltDcm3b7ky8tQ6JI/aUANLr8V1nqD646+PwUAgT\nEFdV7WeuPkPpjC2D7x6EyEAo/zHk2U3DpzSFyBwX4MSO9dVvqOwhH5hyjq+eff4h1RdxSLH/qddg\ncaekKbXhhdJxcSgnGOvAYx3TlGsOkQrfcfs4Wx98943rOJxTTXG0U9qIrzwh4vQQEIp6Ur/f11na\n+qLDWfR3Ls99VCauHYSMa6itc+3OKkyWJJVlufXK83wgTPbdkib7appmK39j+nlOblljRj5U3rnw\nkAgTwDt1amPs1kC+vci4tPYph813DtB0UtQNTmlKIdsh0kTrNuQzOIJG7exYlcZ3Xuj6fGm4/8fO\n85GnlD5LcXDSFHuaJ4TQBc1FTlLSddOe0kCmlIG7uaHjfcekRk5TjIV7f7hO4CNM7m+heuWiIF85\nuOuj5Txm+FSb1HaXGiWmlMNVZtxXKG9bVtvf7yqg8bV9Gnnba7AK02KxQFmWWCwWw6soiq0hPJc0\ndV0HpdTWkgJ22M793y1Xyj3jnNk+jvvY27kPPqdOv0shGi726fv0/sTgU4Ri9zSF9LjpW9ChZPq/\nrS/6xKf7HS2PL2DxHeuWi7uOMQgRwpDtT8nTF0y5v9HPPty50jT1/LsE1+i595gESo+NNSIfifGR\nxtRGOdXoTiFONJ0QYXLToK9YGR5aJO0i1H5ikRgHWqehuvH9RgkSN1HaPZ8zwFrr4VyrCqSUIdVo\n0bbkI4qUMAkhIDIBc27QPesgngropxrdskNXdmiKBnVR98Nz2XYdKKWglYbSt0pTXdfDq71qoT4q\nqI8K+qMGLrBVttB94O73GKLsS9dXb6nf3ydCygf9n34Xam93RZxiaaXk4wNt/5Tg0ydB3X5p3+1Q\ns6vYheqbI0bctXDlH6vgjEXo/nNqkq+cvvR8uDPS5Pt/Slqc8ZwDtNJTOu99wzoFn7PlMPYaxqQX\n6vghddDnAFPLwOXjIyfHCI74pDqFMeSZRpC0zYcmSVOiRCdJA7dDeiECTcvEfXbPHRNw+OpN5ALm\nsUH3aQf1mYL8TCJb3Vxnlg9Dc0IKSCEh5E2/0s61Go2uvZ0I3rQN1EcF852B+d7AtAbmN/9yEO53\nNNDwRdRz2JvU/nmfCCmGY84/BFLKEGrjNo0Uxx3rN+53tp/ad5cwZVm2RZZsH7WBgH0C1BIon68L\nKU3ccb6yhwI+Ll/fsbF7EVLoUohpyr2+c9J0iHTmZLSUhKTmz2FsmcZIuL5zp6gMY9WlVPgaMBdN\n+wjTlDp0ydKxOgng9p6mGJh9VUXXeXPESYjbp8vsEFZZllvzfyhJ0loPw1YWVm3yESeuTL5rGNuv\nfdcmpYTMJPRjDfPGQP9BQ/+bhlz132fyNlKHcIgadhe3pHOczM8GKAHRCuAXQBj/MFLo+zkJU8zp\nHHOfCPWBMY6XO3ef697HDnHlCBFZzm5xij0NaqgyTIObrusGsuTaWp9Ndj+HSG2MAM5Vd2N+p/D1\nMff3VDwI0hSKQOfKg0ufpn3XKpO9ybSBj8VdlHtsNEs7KUei9sGhpeG54Roun1ENGadUNcYaUu5Y\nS5rcSdLu3B/6JFnXdZBSom3bIX26sravzfoIRAipJNhNeyjLjdLUvmnRfd2h/Z8tsCZ1KwABJ30B\nwJB0cZO2uWmjPwKylch+zSC/kZBG7pTBV8bQ/Z7SdmPncArXsYHWW8wGHuI6UuuR5k+DTx/BoNcQ\nux8usRnmL+US8kwCZ4A5M1BrBWToXxIw2bYibIyBvtbAFSCvJLKrDGi2rzelzXFtlQuQuP6feu9C\n5Qn1DV+g5iNMISIYwp1voxJTNbgLuWsH6MsvtRy+mzNG0Yk1jlieqXkcCj7VzL2/7ss9Zmrn9R13\n7IrTGIxRnDjCT+tsMMILCfFIwDwy0I801JmCKhW6soMsJWQpB7I0kKdGw1wbyGuJfJNDbG4ng1v1\nKYXIhY4be//c63Mnf2dFBrVSwCNAPVPoXnUw6/1tiugE8BgQqxtiNoEMUsT6wdhg0WePjgm+9jmX\n3Y8FHqkI+azU493vY/fSTXtrDtNCwrww0K811GsF88rszEk0xkCb23lL4mcB8b5/5TofCL7bX22e\nKQqS++72UfqZI5kxHxYiOBzh9JGxMX0lta3dKWniKtJnNOnFho49VBktYtKeexyXVigf7twQW+a+\n9+V/aOxjLELfp6abErU8RNI01jC758XaqU2Hzn+QawnzykB9oqBfa7TPW7R5i7qoUeQF8iLfmcck\nLgWyDxmyDxmKDwUKUwykqes6tiwppGIsKfBdn/u0XF7m0IWGyhSk8D8JOBUGtyoUFxBEz0/sLyEb\nMIZk3LWtiCG0eC29zjmVsjH1wN2L1ADW/Y0LnlPEAiGceUyLDO2LFt27Dt3vOrRftf1cPGvvpBjU\nUGP6tpl/m6NYFSh1ieK3Aqq5VY05/zs2oOHIi0+Vo3lwpJnLPxQs07JwSFH1YrgXpSkkm3FkhX6e\nowyh77kyxTpCLI+Qg/fJtly+XEe9K+LE1VuqkmCPda81xbGkOAJfZ3V/ewikaaoymHJttB7dJ23y\nPO9l/lcG3bsO+ncaeAM0WdPP+ckyZDIb7pU2GkYb5L/mWH6/RFZmyFWOvMoHwuQ+9sxdX6qamHp9\n3Lnu/KyiLKByhTZvg8snTIGBM1zH/b4HCfadQ9v4GOI0py2dCyFHeCibtg9hchFz/mPSDwkK7vB5\ntszQveigv9Ro/qNB9R/V1rFcvS0eLyC1BH4D8h9yiGvBEiY3Hd/3lCj5bGysnY2pOx9B9SlNHDl1\nz+HKkII7J00WHBkKMdFD5J8Skdsy7pMP97+POKWmQ3HIepr6m68zpJaV1pWvjkLtx74fM3Ea5HOm\nzuZKH9h1Ru4K2ebMoH3dovuqQ/sfLdRXajiGBjqWJCx+WiArMyy6BYrLAouPC3Rdh6ZphiUK9iVO\nvmuJqbru9dk5Wm3RDk/ICSH665gDBkNasUBgSgDGpRFKK5RHihp53/D187soc4ws2DJwc/fm7Ltc\nHbikKV/maM9b4AWgPlVov2yjaWYXGcz3BvJcIl/kkIXcCnDcaw0RfWpXOaTa2n3raoxNT/H3R6k0\nWYSYHwdO/ZnS+VMah9v4OeN8jJFaal3EJFc3vdD/9PtQRwqpbClpUvg6NCVXXBRyzJjL2LqffXVF\nn5TTa43uWQf9RqP9XYv23+NG2DwyWNQL6EsN8atA9jGDNBKiExBV/IkcH6ZEvlw/tddnJ7U3RYM8\ny/dTmjQgtLh9VQKy6a8ZKu06Q+3aZ1+4fkaPT1XHHxJxSlGj50IqKeB+N2Z3f7cpebvpuunb9mwX\nZi2WBdqyHZYaSMpDCshMDn1CFf22QFmW7VwLB197S7WvPlFkULAT98ebE1y/ieHOSJMvcphCevaR\n1mhZxpyfSphiTt/F1IbhU6pSo9iQYU793/0+pPZMdZKpxNjXJsaStftEiKjvk54Lt57cp+QWiwW6\nRdcb0RHDV6pUaJ42uH5zDdlK1GWNzQ8bVN9X6NoO+LhbpinR+BiibT+7hGmxWGC5WqJdtKiKCpnM\nkvOmyOscxWWB4qp/ye8k1PcK6oOCqhQU1OTrdMEp8FOJE9eHjpkwWUyxG1NBiRD34vK1n939B0P3\nZEze7u+UNJXLEnVZjyNNQiCTt4GSLG7nNc5Rl7GRgNBn+v8UIWUqxl77vSlNHMYOUY1pmNz5oe8P\nHd1wTn3fYcBQXfi+S4nqqbHmFD+ONFHy4svLN3zki/R81+SWL5Xg3jc4Z+a+Uom37ziaDjXAllRk\niwxd2Q1RZwp0qdE86UmTLjSKswJt0S/82P3WARLA7UM5o4lE6JrocbQO7NBcWZZYLpdYrVaoy7p3\nFtl0J5FVGZa/LrH6aYX1P9eQ30pU31WoP9SoNhU60+2Uc2xEHoKPMNHfbb4PnTjNhVAf4UiLuzVJ\nyMaNycc9hqbD5UH/d0nTYrnAZrEZRZqkuFWXy6JEV3TD+akBKmdb3evxBavctdrP7tZL9PwpbXaq\n3U895+CkKZWQjLlQWum+ig2xWg4+YjFWvnOPm+L0ud9TOr17XOpwiD3e17hj1xKKxGLkJUSqaNQV\nIoRc/qFI/SFhigHwqVZufdq5TJZUtIt2GL5KJk1FT5pMbtA+aZE9zfpVsT8a6B81jNhtg1McdYw8\n22NccKTpenGNIi/2VpoWvyzw6PtHePzNY8hvJC6/u4T4INBtOtSok/seh9RonQtguHNSA6hjQ6gO\nY3Y9RW3nbAYXWLh7udFzuDYdCrZ95Nn3/5YNzASwAPAIwFMALwCcA1gBKLyXu51/bmCWBubcQD/X\nMLWB0aZfr+n6Nu8xxImek+I/qF23W77YZRLceg0RKJofd04qQn6K4s6VJq4zTLlQGwW4Tj+FiKVG\nAfTzmHKF8kq58WPz8jWcseX3kZ+Q07K/0WgnZXghdD3cOVwn5c6fev13DZ8BpoY3NXr1HeP2EXuv\nqNIkF7IfurpxFCnQpUZTNGiftP1cn1f9vKbsx34Jg0zs7leXCl/bS1Wj6ea8q9UKi8UCedHvLzcV\nWZVh+csSj75/hKd/forsm6wnTL902FQbL2EdgxBx8vVRex53DvfbsfeNGOYMgGi9WsLkbk9C7RxV\nhJVSO9/5QAkGS5LIdyY3aB+3uP70GuZzg/yLHBdfXGDzcoNu1fEZEailQv2yxuW7SwCAPteovq3Q\nmhbmykDUcVUy1cbGrs312TYNbsNrHzHlEFK/UpDapu5UafIRJu73UHqc8ZgTISPvu54YWYrltw9x\n8pGz1EgzRI64Ru6mYQ0JNSYhsupzCFxZ6DXQ/ykh4KKgYwVV4rjr9Dk9F6nk3D1WLRXaZy2qlxXw\nEui+6FB9WqF92kKXiRNaRf8yMEDWR7IylzCZgchu2pLwDyVxdeH7zS17KGIf2s9CQD1WqF5VuHhz\ngfZti8s3l6ieVb2TmcibjDYwnYGuNdRGwVwbqFrBtKYnjgnkPoRQe+XsDeekORtFnR1N776RQu5C\nNiUFPjWEkhS6HIc778e+6L5uNn3uRcvA5U/LshMs5AbN4wb6jUbzdQPxtUD1vMLmxQbtOv7QBgCo\nlUL1soKBQXfWASugMx3UlYJ5HxYfuPL7+jS1Xdx1uUuS0PS577jPXL2m9L0U/xPCvSlNvsY0hkCE\nnH3o+FC5xpy/TycOGYNUuA2Qa9ipRpHryDQPXx37fuOUJt81+N5DZIgrtz3vmJxBKnzEyf3dBf0t\n1He479S6jzrVlwrNlw26tx2qNxWaZw3UUu0cnwyx3S610F5jHAJ3TSEiTNUAsRRon7a4+vQK6p1C\n/i7H5atLXL24QrNuYOR0FUgphbZr0TQNZCOH/fe4SNn9P4RQ/7P50ntOX6HAhDqTYw0m3Hob4/Sm\n5kX/d9uQu68bHaZz91+0BMoeE1JM7HXF7N2O3c2B9nGL5tMG5msD/SeNbtlBLVWy0tStuj5AOutQ\nva4gCwlxJYD3gCh5Fcgts3s9IeIdskMuKY2RJvtySWkKaFk58sohlUcc1UTwsXArY05H6VOYQsbG\nnTjoRirUkLmdzUq6NM/QtfgaL8eyud98/7sNmrv2EGniwDn12LlzGMM5yOhdYkzk72uXbjqc6sDV\nv1op6BcazRcNxB8F1BuF9nGL9kkLtZhImgQg7B9n+CPglDeu/L5o3e17Yin6a/lEYfNuA/EHgeq8\nQn1e96RJ7Eea7HpUsun33nP7Mu2LIcTIEpd/qGyxNI6ZMKUgFoj51Dh6DCUrrv3O8gzZIoNcyv5V\nbm9PIoTol5dQBkYZCNUvOyFriaxxFoG9IVMp1xJ7mcygfdSifdmi/byF+t34PqpLjTZv0a07CC2Q\nXWTInmbI1hnyjKcCY8QN+91Qj1kGZOjnY+XoFWgpepVXOvdH9yotNAAFCNXXr+gEtNJswBW6z6EA\nLVTmoyVNKZFOyu9uo5yqqLjfc5+5c33qhkuU3B3i8zzf6hxd16Ft+yeMmqbZ2TXeHpdaHvcYajBj\nTseeRw1CSkfnyhP6PqZm7YtU0nmM8N0/93euHn0GgII7vlt30C811JcK+o8a+hMNXWjoXMMU0+pP\n2M1uxa4jsPmPvTe0rYZIutsHsQDapy26T7p+q4k/dNB5f40qV5OVJm36vmr7r6s0cWpgal+KkQGA\nJ5Wc0kRZRm21AAAgAElEQVTr3edgjok8hQIC3/Fc++fgI9y2juww3KAqrSXwHDDPDZrnDdpH7bAg\nqpQSAgJK36pMWmmIDwL4BcO2Qqq73aOx67qdexW6RlpGKSWMNLfbpGDafcurHOVl2b8uSuC/APOj\ngf6ooVs97FNH625Mn3UXky2KAuqxQve4Q/e4g3qsgLx/is/WJ3C7TIPRBtgA8lcJ+YuE+FVAXsth\nXzyfr6e2gesnFLQNjMGdkaa5HJlNh862nyP9lEifuwl0DHy5XA5P7JRluWXE2rZFVVWoqmrYId7t\nVLQcnOFzj/ORuND/3Pk+Q+trXJSMpahjXHmGSIpc+xRy+1DIks9opgYLFCkke+feFQZq1atL3YsO\n5vlMdceoTTT/FIQCHB/ZcIdU9EKjXbXoHnWon9Zonjd7XNR2/kr3jrBtWoimD4R86/Ok9A9aR6l9\nKmT3uDqKOev7RMhGpPRrX3BGwRF5224WiwXKsoR8KtG+6RWd9vMW6qXabs+iV0eMudlSSBnk3+Qo\nvimQixz5dY626QNj33ynEOGzbWdrHpUUW0RjCvJNjtXPK5y9P8P6/Rrmrwb1DzXqjzXqtt4pCw1W\nQgGb/S7LMpRlidVqheVyifp1jepNhe5Nh/ZN2z/p5wRVw/54N/s2yl8k8m9yyG8ksjaDaG7bLrd4\nqE88oL56LCkP1uOks0YgpbA+BxhzIL6xzpCx5VQXXxl8+XJOf2vLhmWJ1fkKZ+dnWCwXW42/qRtk\nl1kvWTpldcfGfQaDljFWt776c43tED0RY8Klz9WfD0KIqBIYchIhp5lKmI7NMaTCp8z46jF0T7i2\nOkSrApOj1iAEdtQmtwwpjt5FqiN0+6AuNLq8Q5u1s7YDa3fsvCbZyS3SZMvDKWQpNiZWVz6HGwo2\nHgJC5ffVnc8xxgJJ2i6llFtPWYonAuatQfOHBs2/N6jf1jv9ZWu/QQUsHy2RixzZdYbFTwvA8IF9\nSuBDv5dSDsNZlrxNQV7lWH1Y4fzbczz9y1N033a4/OES+Ig+eDfdpMDTtVeWfC6XS5ydnQGvgfZ3\nLfA1erV3oVm7Y/PNfuyHRUXbbwYuL+TQ52iATc91/ciU/uaeG8JRzGlKvUCOjdvv71plcBvK1kqt\nixLylUTzpoH+VOPq6dV2J/0ImPcG+fscj356NMx7ckkTNYJjVBxfOX2/ufm4hsQXlfoIL2f0OIM2\npsOnErSHjNRrjNWjz1F4FcMDEaaUNLk2HauDWD1Zpdf2RV308zcymb5YZwqMNtBKD8PsspXDMIxP\naRqjMtnPc9gzms4x9yWunKnBdQw+IrZFtssc5arE8tESeA7Ub2vorzWa/2xQfVWFM+iA3OTAJZC/\nz7FYLmBUP/etaXiFMxQUumV2+6sdnpuKvMqx/LDE+XfnePbnZ2h/bGF+MWg+NhBtOJjhVCbO3mR5\nhmJRYHm2xPrxGt0nHTZfbWD+w6D9Hy30KvxkrvmbQVEXEP8UyP6WQWZyCFJi7SHVZ4YINZcuxVGQ\nprFIUVzuAlahoevBdK86tL9rcf2Ha+hP9VaUUrwvsPzLEkuxxGKzAIBhZ3g7rymkonHg1C/usw8p\nigBHqDiCNQc4yZWW1z32vwtcaZ8jTz4nTQ2wa4gPIzRtR8Runj7pf+88hdjeS6/Q/T5ze6z+zWFQ\nmjo1kKaY0jSXyuSW4ZgJ0JxIUSZDBNxHSrfa5NKgfd6i+rSC+cTAfGFw/e4a7YsWepm2/IadQG79\ngGp6wsStXxdqE1w5pZT9Eh7S6bcTYIfALAlx/c1U4WGrLqWAfqxRf1pDvpFQnypc//66X8rkvE1a\n5sNer90jT+a3C1+mkEz73SH7x9GQprGKyn07S7dB23Fcu8fV1asrNF81uPy/L1G/q7ei+rO/nyFD\nhrPrMzz656OBMNV1PXQwK0VOUZhi0YB7HFWZfN+HmDlVQEJ5uufEosn/To7Bwkd2Q0M0tJ5SCZMQ\nYovcGBymP4XuoU8BmJRPJiAKAbmSkGcSeASIVf8dpi4AbjBs0AvTv8tawtQGutHo2g6ykzvLDdjr\nmDJEx/W1qQoLd85D6VM+25M6jEdtmu9dCAGzMGhftDBfGrS/b6G/1Kg/qdG8SF9+Q0iBPMtRlD1p\n6upbm86Ru5R7MRAI2U+cHqZRTGdN0KafuO6SJpfwp5InWodSyp7gPNb9KMvXGvXXNepPalSfVOjO\nu6SHLyz5GtbIKjIopaJbvYTsYKoNSg3ijoY0pcJXGWPGiceCM2Tu5G+5lBBPBPAc0M81ui87NF80\nqL6oUH2xLe1KLbH6uEL7sYW6UDA/9Tc7azPkTb71pICbH6f87HM9nHGJnTNFWQopHzYtX7rcb1w9\nhCJyN7/7JtocOOMOhOfajXEkbh5bkavNd2YfamC2ItoxUWyKcfM5S7VSaF+2wGtAvVLQn2tUX1Zo\nX8aHBAIXg/wqR355+5L/JSG/l5C/SqDGlsOxZQm1xxQCxQUwo4ptdufQPMRgJNSe6f9jgkjaF8zS\noHvRof2yBf4D0F9qdI86qEeqn4OTUE6qNDVFs7UvHEeYYu1mq79KcTs8N5Uzmf4JtbmUpi3CdKMO\n6cca9Zsa9R9qmP9h0J136B71r9QnVrcWFs0z76bCrmpn/09Vo7j/6fE+PAjSFHIgh4bPSLuTTuUT\nie7zDtdfXaP+ssbmdxvUb2qo1W6U0q06bD7Z4GP9EWqh0P21Q1u0kI1EuSnRdf1CZdzEtxTnzw0L\npCg/U5B6X2LEwNdxY04jNYo/RrJEMRhwT52mREEhUk0J095Rq7cQ2047tlYNLe8YZcptV3ql0bxs\n+sU6v2qgP9NoPmlGDbHs5KcF8ssci/cLLN8vsXi/AP4O6O809C8autJQWrFt15YvNsSWqjhw5/vS\n5d5Tzj0G0PrwBVg++Ow1fXdfeqnRPe/Qfdmh/VML/a6frDyma0ghe6XJedye25LIR1591+aSpuE1\nsc8a9E/7Ka221gocu3QPV74syyBz2a/19qZF+3WL9n+2MNlNmolFFkJsbSwcIk3DdSUGAqlKUgxH\nQ5piktsckVKMiVL4DDklTXjSb0NR/6mG/k+N9nmL9nkLvd411t2qw/Xra6hSYfNyg7zIkTX92h7l\nLyUAsJPeuHLFrpMbHghdL2doqYGhMm6M1KR8z0XEbjl8EUJMpTp2cOoPAG8dx0gkPc6nMB1KaRqG\n+MzuPU0xyi4JioEep1ca6qVC+66F+ZOB/kxDnSuoR4oNXpJwozQt3y+x/usaZ389g/5Ro3nfoPml\nQVM3LDFMuU++Y8aoKMGiJ5CnY4KP0NC+HrP/XLuPkSYhxNaii2OHc+22JJtXG1y8u4BQAtffX2Pz\n/Qad6oALQKhxgazbZ7OsnxCdyWy/yeAGWw8y2Ll4XGDD2WGu3O7ahPkiB0pA5xpddqMsjd2uSKQr\nTbS8KX2F+jD6XQqOgjSlFviYlCZ30ql6otB83mDzpw3q/6eGyczwoujWHdSi3wNIKIF1s8bZhzOs\n/75GURbDHCeu09MypDaisQpVClIjk1SVK4UghBzKQyVPPgdh32N14B7v/h9SmqSUey+Ux2JPlSkV\n3PF6rdG97KC+VOj+1EF/pgGJ3nBPvUSDXmn6aYGzv57h8f96jPZDC3kpoS81mrpJWvXZ54BSrotL\nw3cMTX8q4boPcISG+51+9qUVIkzA9oK+w+rUU9uJANqzFpvXG8D0gXGzbFDrGu1Fe7tcAEOYQv17\nawpILvd+qMH2SbvgJn34KCUgo2XdWmpnUQ5LfaRu+r2TJm7mNMlxpMmWMdTmqb+gx6f2lTtdp2nK\nDY+pQD6k/J6qknAd2F35u1v2nQRrQJ1FotobQ64K1U/MW2igBGQudxqH64BSyYfPqabU/RTyOtUp\n+lQl9/99DARN85icx773wmd0U+TnHYdygOktdl4TV8aUcqXAdXpSSnRFB11qqFLBLAzMYob7bQCj\n+knfeqOhLhXUlYKqVL+CstoeVuaML+cUU4IX+l0IvjR95di3Xx0CrpP1rRvngvYBaq99pIn7PRag\nRnFDmq5fX6NbdaheVr2Cc6GhflSDcuUSJx/ca6FK09Y2LhNASZO7VIav/cTsiyVN9kGorrhZG01O\nK6MQ/uG51Gt03315+I5LsVV3qjTN4Qh9SJE9x3YKX0dyJcnFYgFZSNR5PYldDwqAkFt5pdy8MXLv\nXHUfa4zuayxR8REn7t1XlocUXXNIiZJi5/miV44wzT6nySmDj0jsC9eZ2F3oRSFgMgMlw0PbYzEs\nL3CzQW/XduzQxqGuN5UwhdSLhwBvGyW/h851/w+pTO7vdOHIqWgf9Xu6VS+r/inLKwn5D4ns/DYQ\ntvfJR4o5YkdJ02RiB4Y0dduTwUPnUfviKnbu1ilN0SDL+2HESUgYnuN8AS2v++47Z6qvuPPhuX2c\nd6o6NIcKFYo+3IayWCyAEltPSoyFEGLrkVKLuyZOPqWCOoTUsqVEzLF0xhCmh4jQ/QtJ977jUtrB\nziTwuXmTndp0ACLh9kl3iBwFoHIFmU001h64e83VdQ3VqGGDXu4BhpTINbWfptbXmEBrTDnuEqll\nSTmOI1s+wiSl7IOHfbYoEf3LSEdhLQGR90TeXR1/THtwyzgQh4kKDoCdieB0yYGx7c31g8vlEuv1\nGu2iRZ3X/f6P0wq59QTuWN8zxtZMUXWBe5rTRJ1ziiO34KIKH7jfKFuNncNFPFRpMqWZTJqGiJ/k\nEzPG9FhfVBaKQl1jm+J4Q2VKNWa+RpnayEPf0fTt/w+NYE0tr3tffG3fVZmGdjcja3INHle2feBe\nkxuNlmUJkxu0WbvX8AUHow061Q0b9KpGsXNBQoY91Ea38nLu25T6SlFhjxU+e8N99p3jU3Lo8Tuk\nad85TT7YmETcroPmkqeYkralNJG5iJNg4F1ygD2csZ207uwahZY01csam2IzWUCw+VoyJ7RIXhYh\nRZXlzhmrOB3FRPAUUFnNfaefQ2n4/qcdjiNL9p2O45qFQV5MI03GGPieNpoLqeoepzSFlJCp8qZ7\nLk17jBrFlZcjiPuU8y7g1sOUjm/ToGlxx4cU1FngFH+Otuxrdy5hsoFLm7doZDPrddld7O22Kbrb\nXb1/bEQ8pT2G0vIdE+r3B7v/EzG2LFzw67MD9DNVm4w0O9Mj5oIbkIT6JS0rR072DQiMMcHFLWPk\niRMPbB+0G9RfL66H5RamF/SW3FnSFHvCL+V7W+4p6pKLB0OagHinmEKc3O9pg+VeAHYai1kYFHkx\neWiAkyJjBCqk8nBGOZU4uWm7RMbn1OcgJDFCzJWNfg4ZvCnRxF0jxSCMuX+UhO60kQPNZZoTvjqw\npMkqvbYPNkUz7OU4V/426rXzQHSnvdsdxfoq7U/cNdJ+OqbNTmnjx0ScfIgRxil2332IwEiz1/pH\n3jzt9lk3KpYbmKfcJ5c4ucNzU++ZMf3ilu7wXGwiOPe/6w9dP7her3G1uOrXLrTzuEbuNDD0OdMT\nJSheUEglUCn5ja3PB0WaLLjIgX4/JS03Pc4JU4NtG4te6H69JTmeXbuEKST3B9NwbjwXgXHHpaRF\nv58bMSfCOQ/6TtuCz9EeK2Hi7tFUwuRGhD7iNLRrcWvUjxGUHHNRru2Dq9UKeqFRFdWspMnmbZ1M\n27YwnfFG6Kl9lgtGaJ5jEEqPq7uDKo0TkdLXuWPHXAOnMlGl6ZCg/ZIrG/2OPiVq++5UWDJCiX9q\ncL5Vf7mEXms0zxpsPt0ge5Ph+pNr1E9qqKWatDWTwW2Q0rYtsi4blN0U2x4KtHxc4UEqTSGnliJj\n2vcpjZ46mRCJGvLLALVWaJ+1/ZLxr2p0j/v1l8YXYHsM1zfG7ItM6XW4//vSoJ+Ti0o6UKixxWRo\nLk1aNt81hZwCl1ZqWe4T1Pm6GFtujjjR9PY1vl7MkGbMiNnAJc/zQWnqlt0wLDA3abJP0IlOwHS3\nRp0GNymEN9aPp2JKug+hP8T6wpQAjxKnQWk6AJF0+1qsX4bKOMfaalQ51crvb+zxXLkGApcLtI9b\nXL2+gn6ncf27a1x8eoGrl1do1s2kMsIASveqbtM0yJqMffBiTHnnDhTunTSFlBF6TOr/Y/P3ESZf\nOXShsXm2gfhCoPljg/rLGr99+huaR+MbipVMQ2PLPhLBprWnlO37ncvbd89SJU8fSXBJDneML5pO\nkZiPEWMDhlA61DBHnc6BpabYfUl19jtRbiGRLTNk6wz5eY5sfbMHZLEHGTToN+g1on9vBNAApjH9\nsFyn+nWbSIDja8futfpsFvebT22dE8dGmGg7CKntMVvGtSmfypRlGSBxGKXJSc7mG+qXXIC+pTLt\n84TfDdyJ4PYzreeQPXLrT+QC7XkL/VqjeldB/lGielyhelyhXbeT+qExNyuWt/0cQu7Bi1AZ3f40\nxgeNwcFJU4oM5mtMPmVkrsY9Jh33RuhCo3pWof2ixcWfLtC96VA9qVA/qkeXwT4Gyhni1PJxJINr\nONx3HBmhBHJMhJQKahynRIz0WFvGkMH9V4Z7f+m9dqPMfTbpTC4LbpwE0ib5h0gEdXJZmcE8MWg+\naXD56SXUpwpXX1zh+pNrNI8b6GLiXnNtv9ec3aQ3+zUD/gKYfxjgAjBq/jqbuz/5fqO24SH0DVrX\nbv+OOcaQH6HEyVWaZoOwb9v9IEb0QuW0KtPUclIbQJWmlDbBkabqdYXuXQf1RwWVK+hcQ+fT+qAx\nZktpko3cUZrGwKc07dOP71Rpoh2XGvfQcAL3Pme5xhyni34cd9jg8ZXu1+hI3MV5C6Zn/0opCCWC\nDSNGQKlRTK23FCUrRJyoIjSG7I3tsLH0/jsiZHBduERJa40JUw7SyuOZKxVy1jFFwT58kWUZ8kUO\n88Sg/qRG967D5qsNqtcVNi83aM6nkybZShQfi35z3p8WKH8s0f6lRfe+Q3fRoVPdDikf035917dv\nu6UBQyzNY+4nvjZyUGXsgEmbfuGh/nPg3lC7aTLTTwF52qJ6WSH7NEPzvEH3qJvcvm0+tv+PCTBd\nmzIsPFlkUEsFdabQPG7QPJs4JEfK5z54ITs5iTBxZGmuNnRnSlPogmOypX0PqU1zSdocqdshd6In\nSCpX/bYN5XQjZEyvNNGG7IIjS5SouMfFCI57Dv3MlW+KIhcCzS9G1lLTtcfH6vChItbGQ+SYEqYt\ngzkje6KPWNu5HCHQ9koJvyVN9gGMbJFBP9GoP6mh32moPyq0T1q0Z/1rapQ7kKYfljj76xmWf1ui\n+keF6h8VzIVBq9qDKHS+/k1/DznbWJncOj1m0kTtrwWnFu2Tvvv/YEfnjCKM+zHtYYEtH1MaNE8a\nXL29gnqnIL4UuPrsCtWLCt2qm6+cI+ASpqIokJd5vznvHnvNcbA+Uant4fAx5C70+76K650pTT5i\nRJWmlHTGfD8mvRTitvX9TCGKdWRCxzcb5IgRLT+XfsiR2s8p5/jKNRYp+fmO2Se6f6hIMRb0c4w8\nDWnOXY1ilzylECf3eBfuQpaWNFVPKjSfNNi826D6YwW90jDC3G7SO6XYnRhI06P/eoT1/7dG9lsG\n85tBd9ENjz/b8k4lT7EAwX4OKbr0vJgKTY99CH0nRJosUuwUVz+sYjh3lRhskyePveWCBVMYNE8b\nqM8U6n+rgd8D9dMa9bP+ybS7hhu82H5YlAW6opt/mQ93jq+Kb/zNkaCYwrSPonlvE8F31JsA+0uR\n2HxGN6ZwcccnOaCZhIuh0+ptFYDm734OGb6UqP1QBjPFeIX+j50zRcV6yEi5V762yxHQnRfZWHe2\ncnvWp0m93yGVqSxL5Msc3aKDXEhgAajFfmrvAA2gA0xtoK/7DVf1te7/b/XQR+duY1P6JFWkxpC4\nh0KcQiMLLlKJE/1/i8AcqCrcJWW4gMWnLOpSQz1VqN/W0P+m+1eph02p9yzUkPdYocJdVLZclGiL\ntidNe2zvslM8cztE505ZSfEfPp5A63cqYQLuaU5TKIIIKRAx2S2U55QycvlaRzAXbKfS5lZpog0k\nNeJMhU+t4Qwxd898aW5dV+K5U50FV+5/RYTudcgwhLCV3gFUpq1tgcS09uoSJrrXY7Es0JYtmryZ\nf1jAWSOmbdutzXl9ji/lWsb8FlOZQn3W/ZyiOB0jqP3hfqMYcz1ULQRwsADClz+9h1QhsXOauicd\n2lct9CfT5zEN+bh/TP5cW7Lg+mJZlijyfpmPqRv0ik5AthKyk/37B4n8Ioe4FjDttuq0dS0JNpGS\np9T2ETvuzkhTiNnFOvm+zjuUdizdFJVrL5htSdIn4aYYQvc47nwaYXKdN5Zm7Fh6jE859KXlM5ih\nMjyEqHksQk5ziiGwGOqJDB3MgpthueFPjF8ReCs5sT3x1G6ZUi5LNGWDKq8gs2krD/tg12SyT+/E\nntyJte3Y91PBBThj8zz2PjO1zVObRuuI2ti7roeQTxp8jXSCjgPNVE9VmVw/TftiVVTIs+mb1Wd1\nhvLXEuXHEuWvJeTfJcy3BvqDhqnGz2eiZXa/t9j3fh+cNIUaxth0YkoV9z9XBs7QjS3nbPOZHKUJ\nGqOkSFrO0LXTeuOi5ZgDsPWU4igoYRpzv8ccGyPjx+4YpiLW7mPXfbBhuf7Dlto0pb+751GlabFc\noCqryavw+2CVJrtBr2xk8j5zUzBH5PuvHDgA08lmTI3buX+HCCKYMsXUQqrQzkq2DXkh7lfcz3SY\nvCzLvReUzaoMiw8LnH1/hvX3a4hvBJpvGtQfajRVw27zkiLA2M8hZXIq7pQ0cQxwrIP0KUM+IuWe\nE2P4ofTc19xPWVhjLYx/nSGfUwwZy1hEFasTN28uf/c+cAoXLWPoWOpcffeZqx/aLmhex+ZMfOpA\nipLKpUPbKqco7px7wOes3bVkuLJFz3faQpZlkIUE1oB5YqCfaXSvOqjnCvqsn+Mx56W4G/S6Wzi4\ne8xNxT4EwG0ztO9x5QopUA8BU/ptrP94CYs5TBARg48ISCkBedMPDtBP6VBkakDOKU1FUSDLs72U\npuWHJc6+OcOT//0E+Ba4+ukK5oNBUzWzKE1z414mgh/yovaNTKjjZvOYcc8ud6Jg6h5AO+UhjYUa\nnFh6PudNjTU13MnXGCC7IYScApcHd57vmGND7P6OrTs3XTYAcOT/WWFVJmZxy+BpzjFbC1lmGcRS\noHvWYfNmA/VWIXub4fKzS1SvKnRnXf/U3Ayw7druNcepTPa42DWErjPWrn3KrU99DuUbIx+HdC77\nIkT8Qn2cBoo0kNgJuu6YMPmux6o5ljQN26bMeI/stY5RS12bgQVgzgzMEwPz3MCcG2AJmHxaHYpW\nILvIsPhpgdW3K5hvDZrfGsgLCTS7Iy+pxIl+5s4NiQ0h3NvTcyEnFzIqPudBo2vuGC4KnwRB3vdF\nRC5NcZipHcvXYbn7MbWzcvU7xulzjf0YFaNDIIVgxr731ZVrmC1hmjMAALaH6FICEF/5LGGypEk9\nVajeVqh/X8O8M6ieV6if12jPWmC+ueC3G5rezGtKJU6pyqbPtvlUWfc36vApqQi1i5Sg4hiQ2s99\nKrR9H0Ochtfck8GdPuAGD9w9ZkmTPMDWLiZMmHy+WAgBUxi0j1tcf3oNvAOuv7jGb1/8huuX1+jW\n09aOsgs7t22Luq5hajM8gEHV3bHBSogr0M9jAtN733suBmo8YvKrzyjRTpOS7lSFZBTMrVw6Bylw\nHdUYJh0yVqEoLcVQc/WXSmBj0WZqnT10whUKLGKg/cB9HWKiqVWZtvIJHS92j3eJE5ZA96xD96ZD\n9/sO3b91UEuFbtlBrdS8SpO+2ftKdRCdGAhTynYTKaSV+91HwFLK6x7v9jPOvnGO+hjhqz9fO95R\njiLKBGfH+h+A2TgTqVraFzgiu7UfXobZNxF2/Qx3/SFbLoQAcqB53MC8MWh+3yD7Q4bN8w2q5xXa\nVTutTGabNKEBu0FvSp+j6cZ82pjvXRwFaeLIjYsQofF9H3PEqUToTogT/Ox/H4WGEpcx5/saIVfu\nVOLEpZtSnrHk6FidgQV3j+n/vjY3lixRR7r1wmHmTNBJ4EmnEMLkOhCzMKif1Kg+qVB9WaH5ev/t\nGgBga4NeA8hOAh2gOw3dae8kcK7s3Hcpx8baNSVXPhvhK4cvb5+zORb4iGVK4BxztJzKNPcInfsE\nqQ1OAEd5CihNwybCN5v0zoYbUmjM9jZKMV85XEOBfuX9T1vg94D5v8wQvHTLiUoTJU31Lmlyj6Vl\nc9/H5EnTG+OfjoI0UfiMEP0/pqjQ33ykgHMuNA3629aTQjPC5yRDRJJGMKHIk4vWUsuSQuxovaYg\nVt9U6eK+9yEWdd43Up2m7/7Z73z15B7rGmUpbgzyAdqvm5cR4WEUew69TresOtM9iZp5J/qsylBc\nFcivcxRXBeT3EvgWwM8ANuPmfdwVaDtItZVcuzlWwmQxljixZCiQ3u2JOMy8JnGrug6LvTploWWj\nSlMms9nb/Fb96PCIAe3LohBoH7XoXnboPuugvtp/ZXK7XUrbtWiaZlCaum53n0daNl+53Wulx8eQ\nEnTfO2mKsdwpacUidNfwpMp4Wzdu4EvzNWb3iSNa3uB5nugxVXFJjU5jzoOLnOh5KeUKpcOVjbt/\n3LHH5PhSyuIjSxwpDRHIHXXJGkAr/R9AaRJCQIreAWiht6JrX5THXad1ICITB5nfkVUZFr8ssPrn\nCst/LpF9l6H9tkX3oUN73aLT24bbd63uuw9zlz2FLIXOO3bCNEd/9fUHNw9jzLCp7tzESaCfPE37\nga9cdmmNPM+BArdPpc0qNu0OZbJld/qfXe5DLAREIYAMUHKmrVwMtjboRQd2SJyWjXt3P8d4xT7t\n6073nqPwOdCQIkQdAEtqSNrcuz03Zfdk9ve5bY6T3liDRpUmmgYlk6mEiiJkgLjyhBQpX/pu+VKd\nQKrSeCwYEyiElCZ6Xqh+XcJkX6l1PAZD35RiKx8XMaWJltWdFDtnefMqx+KXBc6+O8P5388hv5PY\n/Lxodq4AACAASURBVLDB5ucN9EajNe2OXRmT/77GOZTu2N9iBOK+kVpPY4JB2qZCaVriNBe4QEVr\n7S2LENub4aLotyyZM1gYSOHNEB3dF88ti1smuz6aWAiY0kBlavIK4DtlMtur8LvzCFNGCDi/FxJC\n5uiTBydNsRvuUxa4c8c2Ho4kUMIVqlyaFgeB/ddtstE+JT+xm5taP266sYiZgpLS0HEphIimGzuO\nu2/c+T6S9q+CkIzOkQ8KSpgG2V9g3gBA8OoWLeskpWnm4cRhjZjvzvDkz08gv5WQv0roXzWaTTNq\n8rcPhyCmobxSjzsmwhRCTOlzkWLTfe3xIKNzLmESPGGy/7tDc5Y05Xm/0vZsarCd02QfOjK7YoNr\nb+mWKXIhoQqFNm9nm2s1kKabp1XRYmfbIg4+oSDm52gaU3zEne895/s/hQDM6QRTWCwtz3BT7Pj0\nDO3GTY8SurFIIVlzRb9jCC0lXinKHvcaW6bU3+4asSEDH1KiJ18US9UbIcXtOjAHGGYOKVocYfIN\nK7qkSYoZHQgAKMA0BmZjYC5uXtcGpjZAwuiDrw/ElE9q92h9+PLatw2HnPZ9I6V/T3GEKUG7VZrm\nXm7A2nU7t89Vm7hybylN+Y3SlM08p8kdnvNcrmsrsjxDsSxQrkvItUSzbJAV0xez3FmVvANMa3rS\n1N4Oz7krgXPkyC2rW+aQ2EHPn+oH73xOU+jC6WcXYy8wRrqmkIct0jTjk0dCiINN+PPlF4ucU9SL\n1HLY95Trc50oR5hiTibkkI4F3PWk1k3qsTZt++4SmUH2lweY0yS284sRJvqd/Z8qTXYn9Tn7iDYa\nSvfGum5qZM3uCuDey0wI+EJq6j5ICVBSzj8WwjQFob5A21tI+TwUaPBgpNkanqNlp/OHUKLfDFdO\n36KEBWkevmBFSgksAPVCoX5dw7w2EJ8J1L+v0b5uodbT5jTJa4nsIkN+kSO7yCD/S0L8XUD8LGBq\nw+7ByoH2P3pvfX6Hq/tQwMnhXuc0ud+nOg3f92MMUUi69WGrnHMOaTAq0z4Yq6BtFSWBcPiGOkPX\nkKoa0YZupVsfUiLKY3QMIaIXO97nLEJqE6c0HeJpNKta+ZSmFMLkpjUQvPy2vLNOirUL6908uZM1\n2fC48xgFespv9DiubnyEIBQQ+vrtMfYDF6nqUApZ4hxllMhb5WMuWJVJ3JImd34S9+5uUYLyZnhu\nZqUJwHCdPjs01M8NaTJfGqjfK5h3Bu2bFu3rFnoVDip8yK4zlO9LlD/0L/F3AfV3Bf2zhqoUtApv\nmxIiS7Z+LTkNnT9GjaS40zlNoQbDHT81InPT5Ryxq2SEysulZ0nTQJ72hHUyduLsPsTJN9QxqjzE\n+d6XUkMdx106sUMjpvJxx6aQYc5pcIRpS2mauU6so/A5qNg1uf1yWKcpM33EPbMyZowZntqxpClF\naRoT6NHjxiiFnPOPpcnZgJANPhZQmzO2fPS8WHBH8z3Ik3OOXTfSsPnb8tm+6U4Ez/N8fqUJzpwm\n+z9pK5Q0de86mP8wMF8bqHMFda6g19NIk7yWKN4XWP2fFVZ/XkF/p9G8b9D83KCrOnaDXrdsbhnd\n762tkVLuXFuIb2zVS6KPufclB1LgVuI+zpMSJ196PiOzU/kzGHBOAYh1ktRr26dM+wyH7kPeQkNx\nobzo96FzHhp85ALg6yiFaM4+LOfkLbNb46/zfpHIlHbtDqW4wxUmN5BZWt8YA6tk2u1SdKu3JqHa\nY+Yg7DTfqQgFdbF0H0IfCNkxn/Jt4SNOVInwESdgRvIk+r3jOKXJdw/tJHBXacqyeUkTvb7Y8Fz3\nokP3rkP3nx3UH9VwbVNhlabl/1ni7P89g3qvgGtAXSmY6nZoLrbcgFvWlPsb8hFjA/Q7H54LFT7F\nqKbmEzo31aF7yyhmNEC2c0WGM1JAyUpqVMk1tDH5zx29zqGYuXgozsJFyr0IKTju/bSO3659opSC\n0mprcbu5kGUZirx/RHm1WkG0Ynic2Lf8AG1/LmGypCnP8oOQJjuHQikFo8zWGjEpy5GMzS9ktEPD\nJTSNkJKUUubQEOCxwqoIoTqkn7ljWGXFPsE85zxVO5E6LyDyvh/YCdTUketSo35a4/LNJfAZgC+A\ni88uUD2toBYzrYnkKafbFrbWiioBkxvoTPf7O86wyoAx/TZFqlNQbf/SXXibIp+CSAOb2LCtm16s\njYTwIJQmDqFOHzIEqUNPIUZ7+8PYUjP5OAug2agiRTHxMenUhpNUtkTmzWEK4fMpimPrg/v9mBAi\n9vQ3atR87T405LdDmCwxMPOSgsHoFv28jOVyOWzAWdf1Fulxr4OLGO2+c1atmnvNGothg16HNNHF\n9UJ1PrY8Y4O1EGEKtRV6fkoweQyI9eOQUhQbjaBOdistgVnsuYUUsldcsxx5kQN5/yi97/pUqVA/\nrYG3QPOHBvgSuHp1hc2zzaykiSOFbt3SeVUm79dlmjMgdtdl0p1mN8R2j/cRphh55nxpCrmO4d7W\naeIqgH7nc6I0nVDablpcR+OOj5ZfHCAiuXESqY6Bux7O2PoaVkq9uWmFSGpIJaFliRG6seUK4RgJ\nEweu/ka3SU9artTtkiet9UGUJpnJLaVJVxp1XQ9rztjHrt3y+UiTjXgPRZrcOrGkiapMsfqZQpzc\nc0NI7Wsxsj0l77tGSmAUOjZ2r0LqNVWb5sCW0lQUMJnZab/ufdOlRvWkQvO2wfUfrmHeGTRnDZpH\nDbrFtH3dvGXzXKerNNl5VSpXw3zCOeD2t67rBtLks/vuZ18AGVKaXJ+T0pdTcK9KE60AjjBN6fi+\nzhEycDEnFVOApoKSJp/alMKq3bLS77hzaFohQ8sRMp8BihE4jizT80PXOuaajhG++gupaynO0Vdv\nlDBtKU2YjzgJ0c9nysqbtV3OSjRVg7zO+7VdsvCcjoE0ZbJ/Yq6UyBYZxEJAFhIiE7OqAQbx4Tla\nxjmIzli1yVv+iOLE9bspZTkGhNQ3F7HgjrM3A2GasW0JIZDJrFeaHOLvU0pUqdA8baDfaqg/KOiv\nNCAAIw2MmP8eWXWN1gVVmrq8m3VeFUeauKFwH2FKUZrmIkc+HMXwHK0M+24rOKSacGm5x6ZUIlcO\nX35C3KwAPpPaxClN3KOpU9Ld53xfehxChCaF/IXyikXyc0cRd4kY4Uk5n8KnqLpEYJDDZ1aajDRo\nH7XYvNrgt+vfAADV9xU2P2zQmQ7iWkA2ciiP21dtPxBCQK80qucVLt9eAm8B/bnGxdt+fsfU3dT5\nAt8aca31ltKUUi+cMecQus+ck4/1kRAxGINj6hMpbTkU8FK1wVUw6bGxfOeAJf+WgJjCDPadPwEw\nmYHONVSpYMr9701e5cirHEVVIK9y4DtAf9DQ131bN9gm1pYwLRYLLJdLYAm0ZdvvgTfntinmljS5\ngYqLUIDC9TdOaUq5/1Nw56QpFE3TY9z3GAngyNLY8nA4lMLkpi/F7XCEy+rHEBX3+NS6osf4jL9r\nhDijnxqBhyLiMYoid32xTsal85ARunbuHrnkYHgZjTmftDbSoD1rcf3qGgDQrTt0iw6NadBdd8DP\n8E6EdYmTWivUz2vgM6D5uoH+TOP65TWqZ/NPijXmVm0SWmwNy/kIDRcFT837Ls55yPARp5i9GBOc\nWdVlzuG5YYj5Zn6fLnaHmN12b2Bmf6K12BRYf1hj9WGF9S9rdH/rUP+jRn1Ro1b1QJpsedyn9yxp\nqssaeZbP6gOpuusbCg/5G/uZfhfMd6a+cxRKkwuuU+yjtnBOOVTJsSiORjX7wqc0cXM/9slj37Jy\n6kUKmR2T/j5lpPeD61jHjikKQkrbdtvrQZWmrFeaAKBbdaheVP0Q2LWB+dkA5e0TUPbdVQSGdr/S\nqJ/VaN42kF9L6LcazaMG7Vk76/yOoU5uJoNb0uQa8RQliQMXjMSIbSxA49pyarkOGfjNAc6+hI7h\n6pNTG+4LrnJTliW6vBvm9fmOH7ZemWE/U+CGNP28xpPvnuDJd09Q/63GxfsL4AJoVQuN7S1d3M15\nLWnalJtgucfCVZooaZojbV+AnUKwUn3QUZAmn7HYx5GmStyx32lnHm7MTL7GdRZ0MvjY6+cahEtq\nZnWQAaXL/u4jl/s22rHlO3bCROtobKTsnue+0/QtYcqybOvpubnWprHDc5YwCSWQ1Rnyn3Pk3+bI\nFhlLlnaUppVC87yB+kxBfa2g3+p+boe8efx5RgxKk9L9XnSkze5LmOz/+7bH0L3dh2Q/FNDgzK2P\nfQNKYF6VCQCEFMPyG0XRv3zDc1ZpmhvFdU+ann77FC//90tc/XAFvAfayxZX3dVW/pbkUaWpLEtk\n+fwTwe36aFDwKk2xdFJGSeg5sWNT+se9kyaXMIUiibnVJu44i5gSNbxmaOhCiKGD0TlNY4caDwmf\ng+YQa8B3GQ0eQ93FQO8zVzepHZ77bM9zydNgqDBfAGDnZZjM6bcrAbM0EKXojW9+e63uXlxbCmuu\nYUoDtVDoVt3kLRu2oIG8yXsSd/Muf5QQvwiIK9FvHLqHguwSP/c7e60h0CGHkOqSOgzta0vH2h/o\n9cfsC3cel6avLrfu0wEWetULjeZJg80nG1xdXqEqKjSygWoUcAEItd1ehBCz7mcK9HlkTYZ8k6O8\nLNFcN5CVhGgFYJiAfZVBP9FoX7fYvN7AfG5Qv6rRnXcwxbR2IyuJrMpu37+XED8LiEsB05lB7ebu\ne6qPcM/lRhy4tpFqRzkcnDTFpFbfe4pc7YvgqLpCJfaQc3LT4so0u9okbsa/5fbQHLemzSHAXSf9\nzXdvQg3cpzQd+pqO1SmkIHV4xv0/RJQ4p7Gz3MChq0tga86eyG/XjXIXK9wiT2K/7YTYYhiB4rrA\n8tclVh9XWH5cQv9No/tHB/WbQtd06EyXrIqGjvH1J4C/h77fYvlxfSlE/O4qUNkHIScXOtbnNzgy\nGro/c6Fdt9i83CBrM+hSo121qESFZtMAPwOi2VZY7cNFc8M+HUuHnW29uYtZyjMJ9VLh+otrtO9a\n6M81Lj+9RPWsmjwsnl/lKH8usfh5gfLnEua/DNR3CurXfmFLn38A+PlLO9dH/HtMGJnDP9yb0rTD\nsj2SdogNpjjgUIVyxCwUodnG57LjfWH3KJKZf3hurps95OmwciBN+fGVh95HGu3SqDeWV8oxNn3u\n80PFmHvMtVGu3mi73lKazHhJfAosEbKkCdntk3xKKVZpEvJm/7o5o24thuGK8x/Pcf7jObpvOmze\nb7D5bQPd7qpZYwkT56zHqE32+FigGTqf63MPAalKW+g89//QZ+7/udGtO2xebvr1l55WMNKgu+6g\n/qmAHDtbflilaXbiZLDlryhBcddlkmcS3YsO7RctzL8bdJ93qB/XaB43kx/AyK4zLN8vsf77Gmd/\nO0P7bYv6+xr1rzVLmmy5huKPEDjuyg8czfAcVykphIk6akrEYoSJg08lsZ/nXOPGdRh0Irh7DVMR\nIyCcow0ZbS6644gnV4ec6jcXQhH8Q3IcKWpTqF+E4EacA/k/sNQkcNO+bx6/Ro6BMNmHHdzNNneG\np2e6dcIIlFclzn4+w5Nvn+D5X56j+keF7H0G/ZtG3dRJJNLXrlLIU6iN+r4bYxdDNos77y4dTSpo\nmXwEykeCqHLJBb93YQ/adQtV9Kt8y05Cdv2wlPxG9muOUcJ009bnDBRooMTZZOt3iqKAOTOoX9ao\nP69R/VuF7vMOutDQef+agvwqx+L9Amd/OcOT//UE9U81xAcB9VGhbmu2vYeEi9C1hgKUOdv6nZEm\nrsH7GnaqwkIJU+iYsRGfz8AZY2Yd2hBC7Ow9F9sdPgYuWhsbNft+c+8ZJaluGX2kKfW+puDYDP4U\npBKgkENPqS9qQEUrICuJ4rKA/CihFgo60/1eU7nempe0D1yjXJYlxOJ2eM4+xUcXd9XZLZGazYkY\nIGsyFJcFlh+WWP+4Bv4JVB8rZJsMQvm3IIlhKon1FpWxV77+FkqDliNmKx8iQiTLdzyFwfzBg8kN\nVK6g0Cs02eMM+TqHWAiITAwTwg9N4Iy5fTqUTrh2VabFYgG90mjPWujHGu3TFs3TZu/8RSv69dl+\nlZA/ScgPEuJCABVGP707ps37vpujvu9FafIpOdzv9HvaSXyVPlayo0SNIx0Hi1LE7nBjKGIc812M\nLHKRHGdc7aTdkHqUku7gtBl1i6Y55tq4Mo9tA8eAVNVvCty6l9cSy5+XEN8KyMcS6lKhflSjOW/Q\nnDfo1vM82i+lHIzyer0GVre/WSNuDXdRFIMa1eVd71hm7G7uSsRN26BtW3Rdt7P31ZyGPOVcXz/2\nqSljQYkX/f6YQAlQClHk6inFwW7db4ODqq47IwqZ3LVnM4/NDYRJbe856baHLMuGp+X0UqMpm1lX\nAB/6XNuhaRo0TTP0uZD/d9+n4lDt+963UYmRpinEKeYsfUqXjxi5jWx2iNt5TaFhLq48XPlSo64Q\nKfHVbayR0/RTj+Xy5ohr6LeU8h87UlQEH6EM3U9KdrXWKK/LfoLmdwuURYnuusPV6ytcq+v+qbUZ\nSVNe5MNedGLdl9M+cqy1HgiTfelCI8/6tWHmciT22pVWaLvWS5hiGENkUoOsVBV8Xxyz0pRiq0Pf\nTcnL9gVjZn6K1AMhbrdWERn/tNecMKYfFVFase3cKk22b6qlQlVW/VOuM/k6Y/oVv9uu37Tb9jvf\n2kz71MVdDLsC90iafMQmpWOnKAihTmjPp0TFR8gOeTPs5D+OMHEIdbJQlMbm7Qyzua8xQ0Ohe+Aj\nt279h9Jy74evfJzaNKaMxwLqCMY4Y199+O6j1rqfoPlhibPiDGfdGbqqg1ACqlSonlazXZeUtxv4\nrtdriLUYCJM1oK7SVJYlVKHQ5M3sG/S6SlPb7hInYFxb2dd5u+ceUm16CO0/hLFDbmOHq4fXXShN\nWb+JL+Q2aTuEjzG4HZpzlSYLS5qs0qQWCmVZzroCuM27bVs0TYO22Q1Wdso9sg+mKItz4t6VJt93\n9D3mYH3HpEbl9vsUpWnuzsURODdfDrGG5RKOUB24xCZGWEPOmtaRmy6XRyp8StcUsnSszmMO50vP\n9wUV7vDc4sMCZ+oMT6+foukatMsW1dMKWZPtVQ4XMpPIyxzlssTybAlxJtCqFnVbI69z5G0+kKay\nLPvVk4tuUJpm3aDX9ItYdl0/VNC27WilySJEcn02y5eG+zlV7UodunX77LG2f8A/9O77bqza6svT\nJS6HHKIT4mY9PnmzKXsuhiGqodxz+32DYeFWdyPqoU5ywJwZqKcK3asO6rWCeqKg13o2ZmCVJjdI\nSulzVADgPsfy9aWzbz+4M9IU6uRzOzfOaI01amM74GSQ4bmD5kWzdogaVYEoOMJCy+ozZKH7OyYq\nDOWZQiIfCqgjDhFOznmnkFXXkNV13UeA7c1cAz1fXXXLDptnG1y8vYBUEnItUb+v0RYthBIo2luy\ntFgssFgs0JUd8uJmH8YZPQlVmrqumzSnKURyQwofl3ao/e6rYFHCdJfR+JxICSq4ADFkr2zwcFfr\nllmlKcv7hyKs57VluT1wvjxt2korVt1RS4XqeQX5uYT+SkN9oXD12RXqpzVUMc8ej0MZbvodVXbt\nMbE0pqhJvnT3JU/3Ojxn4SNUczi6mMTN/UbVDe64uaISOjwXIk+pRn1fcMYnJRL0qU2cKhS6Bl/n\nsOc/VOPPYS6ViaYZU3Fdybyua3RNh7ZrodU8+0BZWNIkOwlVKOSrvH+EudPAFVBcbZOm5XKJtmz7\nxfayeYfn3KjXKk10UuoYwhRqp7FyTImeubL4yFaKYn5M8JXNredYIBtr95xNGxQYM2+7pxhIk12v\nLN8mb4cAJSwcaaqf1dCfa9T/3r9XzyrUT2vocp7tikJloP0tRnLo59B3bpqhkaVQvj7cKWmKqQ6h\n78Ziqprkfs9J24do4NYwzD2HI9ZgOJIWS889n34/Vmkac60+Ips6RPFQECNRoSAgVv9uPbjziuq6\nRld3t0rTzKSpelZBFxrV4wrFqkCucuRXObIP2TCXyapMi8UC9aLu9+qS805IdaNud04THbaIkacY\nWeIUQi7oiAVJU8AFKm7aVIk8Nrhlp86SU8UpQkGve/2uwnOIzat3C4Yt0mSyWzJxUNLkbI7rEhYh\nBLpFB/1co/68Bv4d0J9pqIXqX+X8SlPbttCd3iFvKUr6vmVIUSlTcaekya0c2ogBfoiBfs+lx/02\npjyxc3c6XidQXBYofiqAb4Cu7dAtO7SrfrPSMaCEiRrS1KgxxMBTGoVrkLjzYhF2jDjRY8dGDJwB\ndcvIXeMxOgUX+6pMYwwBdeCu4lIUxaA0KaWgzXyb4nbLrp9c/riCVBLFqsD6ao3Vzyusv19vzWWy\nSlNVVsjzfNZHn4FdpcmSRJcophpPtw3GgoKYUwgFaSnl4Nq9r0w0j4fQR8YGdxw4nzO8OgNRC2TX\nGcxvBuI30e+heLNmGeaY4pejX27jMWBeGEABuEa/hpHut9FSUu19nS4M+qfn3DXRtmxCadCdd1Av\nFNRbBfNmT9Jo0O+p14l+MU8lkF1mkNcSpjZQnYJWuwGK+76TJEOiY75jCvkdQ5zufHiO67wcYk4y\nlHZqGULp+SI1AJCtxPKXJcpvSiyeLNBcNLh6dYXLV5ejSZPNyxInSp5ihCDWoGJRsa8s3PkpTp7e\n17GEydf4fVEndQCHilbmRGqdxM7lHEHIUbuOwn2ipm1bqE71Rk3rWed1DBv4FugX+nsMNC8bZG8y\nZL9l/XYpSwEs+01O1VLh+tNr1M9qdOtutkU2AexcN42+xxInmrZ9D9mOFAVrTHvw3efYOWPJ2X3B\nZ/dSrtG+OBvhfiebftHF8psSeASoK4X2STu81Nn+qote9xvhVr+vYISB/EECPwH4CX3wXQI611BS\noRXt3vn5QH2NFvMODxaXBYqPBcrfSpQfS5g/G+gfNPRHDdOZnb7m83G+wDzFv/mC/RCOUmniZGL6\n2YXPSdr/aUWnGhpO7eLyDEVvljQ9/vtjnMtzVJsKspNoVy2uX11Hy0DT9REmlzhxZaF1wr1z5af1\nEVPcQuqSL01K+oQQ7KKWvmvgDBwtC32fomAdC2Jkj9ane16MMHH3iSpOuuuHrg49t0OXGt2zDs0X\n/WrD+lm/oF5VVoPqdP3qGlevr1Cf11D5PMMEwM01k8h7LGHytXfu3VU06Lkhe5Ua9Ybu778CuDoa\nQw65dKjSJISArCXyX3Lk3+TIRQ5zZbB5u8Hm7QZ6qWclTRCAOlfIn+fI/5ojExnyTQ5RCqhcoc3a\n2Re5dOH6Grs5thIz9THTb5uyer/C+oc11t+v0fy1QfNjg/q3Gk3XDH3OVzbuf5//idn1MXxgDO58\neI4zLBRcZfkqjqafWg56POeQuHOEELekKXuMl9VLXKtrNOsGl68vk/LfggCE7JfWF/nNEvuZZ28i\npyw+wuF+jilCO0UJHO867RQplUszRAK5Y0OqFVcf3PWltJtjAhcMWITaJq1XzqHS36nqchdzO0xp\n0D3v1Vi1VmjftsizHFneL/qXZRma8wbVkwr1eQ1dzDdU6Kps9tpdRYIjlhQ+pSMUjPnSco/n8gid\nR6/pX400ccEBMH7+ie98N23ZSJQfSizlEsvrJcxlPwVDLRXqF/WeV9JDrRXMawN1rtC8aVA+KbEU\nS+SbHMU/C2RFhjZvZ53H5yrG1GdYwrQVnO8rMZteaVq9X+H8L+d4/OfHuP7xGlf/uIL6qFC1FbvU\nAO1TKf6LC5i539liJgZIPtz5RHCA7xA+0sI5Tl9kFzovpVwcaNruhqfuo8tTnzqqz2tcvL1AXvUr\ns9bf1ZBLiXNzjuXVcmdhMjo+vU8D8KltsQboHkM/c6DHjCHCXFo03ZghHdMW7hI+pxxTzDgj41Oa\nfH3FJQ+2/dJHgQ8BveiVJr3WaF+1kO2N4ZZiMOK60FClgirU5I1COdDF/nbWrUlJg2nrXN362mZq\nXxmjNvmc0L8KfG3bfafHp6RlIRqB/LccC7XA6mIF0xo05w02n2wgGznPNSwN1PJ2LzqTGeQXOfQH\nDfGjgFz0y3GIsg+c54AQAvbJbNu33MnoOtdQmYIU81yjgEC2yVD+XGL13QqP/vwI5leD5mMDeSVh\nVHj7tLGBP/dbiC8kX0ek/9z5nCafWuAiRKJ88EXZbj5jK88XLbpEZlh7Qk+bQNucN7h4cwFVKCzP\nl8iWGaSReHT9CKYww2Oa7rv9PGZORijSnQMp94neU6qWhcri60QPkTDF7oWPuMYUNa4PuJ9DSpM7\nQfOgqkXez93QZ4clZyzMNlmkw3NTyBP9nyNMISWLC0B8QQk9N7VPPzS1dQ6k3E/3vrjrd5nG7BUI\np0Av+6Ch/l3dbxZdGFTvKrQv2tke9xdCDASpLEvIhdz6TSwEUAA6m2dek0HftzrVoW36p3LdveZS\n7YtvBMV3rC89N41Qf03Jx8W9rNMUYoghJ+c7L/S/77tQmr50bfm4RfKmLgpYn/cLiW2eb7B8tsS5\nOcf59TnOP5xDSDGQJPuItPvaUrrINhBj1DN6fEhtijl0aqDpeWPJME0jNHQR6kDHSJ4sfG1t7Pkh\n4uQ7b1BdbkjTnE/OHRsMtifCTyFLgH/oKHbcGIwN9P6VlSYLSijH2nouLftZa422bZFlGUxrhkD4\nkKSpe9mhUhXUSgEZ0HzSoHvRQS9mIk2yJ01FUaBclMgW/WOAVnHCsp9j2GbtPG3G3AgKnULTNgNp\nsivvc33Np6iH/E0KONI11708OGkKOfEUhYA27lA6+1RKqHK5zuquPTE5KhH9AmNqqVCjRrtskX/M\nsfp1BXwE5CMJ2fWvrM1grg3EVf9obL7JUdf9ePvOo6RO40xVYvYlFfsqTbT8nKJEj41F5FzUf2zg\nSI6vrKGhHtrPYn1iR3G5K6XpnmCMGZQmSpz2SpP5n9osipQhh31Vr39V4uTDmGCBnkeVJt3oHsUp\niwAAIABJREFUgyz06kKveqVJrdXtBPEzBfVIwZTz5CmF3FKa9EIPhElKCbM0aIt21qU9hmkrTYuq\nqlilyQVn5+nnkC8IgfMtPozpM/c6PAeE5yP5HLpr+HzOIaUSUhgtlz5dFn6u9W10oVE/r3HxuwtA\nAvJSbg3D5f8/e2/a3DiObYsuAJw02U5nZWVWdXdVTy/OOTfei7j//4fcuMO5p6pryjnTkySSIID3\ngQYNwQAJarApmyuTIVkiQZEEsNdeewP4ECF+HyP9kCL5kjS/uaoqrxHoIky24bXJYUioQKOtIutz\nuRqF6/faypWrofiMk4uADZ0IdJFGjRDi5CvT/m5DadJJ4HtcQmVo0CvZ223lEGqTr27um8zY/VOX\ng3nssK+3T3/nKosQstGfU0ohea2WHFJpUplClVXAy4MUD6BWmmhEwVIGNmGggkLFCkgAwgn4lCPK\nIrB4S9Kk6o0oUr9WBOCA4AK85CgL96z7QLfj0BVVcP4czz6+crZ9tg+eCO5TFmz4iJPd0YUSnTYG\n6yNObZ7kvfCc3H3NLhnJerQGAcqTEqQk9RBpVRu02f+dIcrqhEVWsOZ3lGXpnFm2rYK6CKdL+nZ1\n/l0V36zwXRXTrg+hjaoPGRoaYeoiNyGGr+v5tZ3P/LwZRSbuz6Hy5GApTW19SFBxHcf1qZsub3qb\n3xVKloZMqFxtoK2Pst+70NaO9KtuDw+xrMpDgE851t+scfXDVU1wcjSOflVVyF/nyP+cg5/xrUap\nEkkQL+N6KaRlgvg6BvuZIXofgVyRe6kjPjt0qL7eZ4PayFhIu3gUpSmUQdqEyT6mr4Fw3RCfgW8j\nTK7Rc/tYfkLGEvl5XhOmvxDArMcKiLIIczFHcpkgvUibmY0ZY7Xc2tLZ6Gu10dYpte3nQqhs6tq3\nizjZhLvrt7TVkSGjTYn1qUmu8Jxdpk9paozFrZE41CrvgwC53eyP90wgQtqZ63vz2BASEFKmq/88\nNrQ5bm19dug1b7QD03FQx9d/mKimFVbfrABVv1elakbJCllP4Fm8KcBf8FqB6gsJJDcJph+nmH6c\nYvJhAvmzhHgnIC9lvQj4LWlSStUqnpV72wd967DrHL720qfsR5kR3G4AbYqFedwunl0XeXCd26dY\nOX+Xwu4GhwKKKvcK0wooXhVY/3mN5XIJSSXkJ4n4Y4w5myNZJijLstlsJcLuZPt42aFMP+Qe+8iM\n/VtCvI82DNlY7Nq522X4no9NOn1kuNluw1dPGQT7WZbDWbZDzTbR5eT1VZf67D/UttAGl62wv7ff\n29cZ4qDbKpOeq+yYCRMA8AkHvgGqSYX1N2tAoIlaKFVPgVDNK4iZ2F5puokx+zDD6b9OsfjXAut3\na+Tvc6yv1k0CuKk0+cQPn7Nnvrociz72rG+4z4cHnRHcvNgQo+cqw3wN8cpchqSrMbrCgvb3GxsI\n6v+H7ZT4CcfNn26giEK+yBH9FiGexJhgAp5wrFYrrFb1jOTe9YaMe7htJWsLA4aSMPN9iCJmH+/6\n/bvKrg8Fn7PQRTTtv32GJCS8p7+3vWs9wuwpwmyfdofceWyL0m0rpvYxbQbf19d0tUtXm9m1PhwD\nfG3BfN9lhH3HbrQHefyqazWtUE1vCdMBQCSplab3U5z+dIrz/3mOy8tLqEuF/DIHL/mGDXLVW2/Z\nAc8PCLP9oep7KB5lwV77vQ1XBxRCbkLOa5bb1om0yXj3PNUH6ofKRQn1J4XytET+Msfp9BQTMsFp\nfoqKVmCsHlKq860AbMihrg7Zd40utBFJF3HyVfIur3Gf6GscHxIhRsynLPn2C1XYbOLZPJfjthPd\nIIerE3a5IZ283aZCHDr779D+b8jqq42Qft3e3zyu77mcDsSxq00P8JilkKh4hTIvsV6tUeTFvbBc\nF7kPaTch6PusfM561/kfZcqBNk85pCyzPNtI9zHILvLU1WERQu6tEQccXmUCAfiCgy/qxRyLVwUy\nZGAFw+JqgUpWEESgEtXGVAQ+4mlW5hC1x9cpuYy5jzjZz73tvCENJ1SdukdyjwTbkEuX0Qh1Lp4y\nCCHNvDV6CLYOg5vGUqOP8mmfp+t73zPY9Rl1tYGQ3zckPDTBM4mTVPtduPqpQk+7kxc5knXSzM3k\nW9sRaG8DoU6k/dm++rWQ+vYoStM2DSGUMPXtdEIb5r2QnEGgNIl6KMUJqEfarc/WuPjzBaigwBwo\nfisglUS6SgHU12YmqLeRlTbiEmKoXd6DjziFer77IDvHYCTalDv7fR+EEklCyNGHIkLA6B1hyrIM\nVVE198hUZB+CWLapubv83XauY2gLNvoQp237fZMsEUKeTE7ToaGUqhPKeT3793q93pibqW00rsux\n2/Y37IJtzvtoOU2h+9qfa7QZ9ofwqO+F6R4gp8mEiAXWL9a4kBfgk3q+DaooyJIg/ZQ2OU2MsY2Y\ncldnoL8PJZJtnXjX8/bJtCHoer5mWcdmLNqure+12A5Gq5f3kKz/EUApvUeagLv8P1eYZhf42tG+\nSECf33fs7eFQv9nuF5XaHEn6HJyJXSBFPZN6kRegK4qiKDamGtg2qtQFX9RkW/SpX486em6X47vK\naTPorrBcCHwqk14M8SGhlaZyWuL622tMkgmmqylmH2dI07TJa4qiyDmxmK8y+0I75t8u9actRGp7\ndC6Cu69O3SZqQzcQbeFO19+HQqOUDvt2bQ3dXuMobkgTz/nGxIbmDOnm8GgT++icd1GLfPv7yPCx\nkaWQa/A5yF3OclvIdUNt4gTJdYL4Y4zpr9N6qZGMo5pU4BmHSB2jm58h9P2qRD3BMyvZvRFz9v4m\ndlWbughZ3yhFqCL74OG5EBXIJjUuY7uP32F/FgrdATfEiT08cVJMgU85+LTOcRIrAfKBIP4QI/2U\nQl0okAsCphgiEW0YhHsqGdo7q1CFUO/TR+nbRn5vayRdHeOQ0ff3dRnStuNcdaBRmoZvW7dDAmAK\nkFMCvLxtxxEFIwxMsI2OvgnV9AyTtpHgNmfPdR5XJ96mGLcRJ1dbH3p78MF1P/R7G10kylZglVKg\nJUVymSB6FyH+KQYUsHqxwup8BXWuRtJkQKpbp4P3m7PQJrt90LdN9kHIbxmk0hR6M9saf0jnEfob\nzN9svuqk0opVoOzh1SYTYipQfFfgJr+ByATUrwryFwmmGNIqbSqzEJsN3lcB7bCOjVCPzvV5l9Gw\n93F55uaz3zD8xnEub2do6FI9fQbC/q7tOF9ozlRMJTXI9BNkTYoqiLlA8boAyxkUUVDvFfh7DvFB\ngFYUUXXXHYaqFxvnCFDB24iN6Ry2PVsfwfI5LGa/19epGRJ87cPXr/gIrK//ae4PJ0guE8zezTCN\np2Cc4eJPFwCpZ9kuTot9XtZRQ8k6b5ZXHKQkjY1pq19tbaSPA+1zHPqi7zEPTpqA8HwUnyd16AYf\nIiNSercYop6RewikSaYS5bcl4nmMSEWIr2NE1xEopeCc3yMceiZxEy6C2IU+YYdtOm2Xhx3qaQ/N\ns/bdzy5jaT4Pm9Sa98a1X1uZG9sTJEwAAApU8wrFt/UyRdW8AjkhQAxAAPSaAqvNztjOBbTRaXwd\nxLXtONffLuelT7ty1YVDeuqPAfu6uhTmtv2UUiAlQXqZYv52jhfVC0R5BAUFPuNYfrM81GUcJczw\nNuFkY8RcSBTDhYe0o31snMajkKYu2JXaF3IJkbq3PbcN2wBp4hRFEaIoGgRp0oSJVAQzNcP0aors\n9wzxh7jpUNsWKnWpEK7vzM9CVCjXcwohTr560Of5+jySoSLEA/Mpa779fd+bShOokdf0BKGoQjWv\noMit4vRtgSiNEFURousI0fsINKIbhKmt0289VwtxajtGv4Yc5yNVvj7TRZqG1Cb69gU+7NIH6/sn\niUSVVChnJdana0QvIhSLAjzlkGz46vVDQREFNVeQrySqHyrgGncj5m7XTKVrCpYz0DUFXVMoYc2+\n7nCCXX1g32iHhlnnXfU+RB22MUjSpLFto3aFIczXkPO2dVqm0qRVpscmTWB1nlOzFMYMiGYRslmG\ndJpu/E4zVKelVF2JATTXRikF4O5k9XszV6ovupShNmIVIsvaxw/FSHQZY1stso+1jWCIEtIVtjGV\npketx4cCBcRcQMwFSpQAgIQlyK4z0A8UdEpBYwqpbvP+qH/SyBClcJvO2CxHn8euB755b/RrV1gk\nZL+hwaekAvcVPBe5ctkDnwqrlIKMJPKTHOQ1QfW3CuRHgpvXN1ifr1Fl1aEu8/jAAHkmIX4QgADU\n4v5kuewLQ/wpRvIpQfI5gSw212y17Uebsqu/9znBrr7SdbxZjnlO+70PgyVN23Q2LrjITwiJ0udv\n8+Q1CWGMPcoIujYwxpAkCSaTCbJp1hA8xtg90mRWXKXURpJ7m6Svpdl9LFZslt1HhQLajcAQDUSf\nkMs+vS7znK42oIdXP5dh1mqiIF4JlH8tQQoCdsagrhTYJUN2lUFdK2c7aeu47X5jn31CnzbhOvex\nqa4mfEYyxHny7evbX0QC+UkO/oZj9bcV8A8gX+S12pTxLa/gCYIB6kU9V5OaK8g/GYt+q7ofSX5J\nEP8SY5JOMBMzVMt68mXtkOuVK1wkZpd62pcwhTjqGoMlTRqhjaINoR1Ym+F1baYioz3ToYAxhjRJ\nMZlMMJ1NN3KvbNKkDYImPxthG9wPiepXKes5OgBseAshZKANfYhT3wo/BLiMWd/fHkKcfCGNIdXT\nx4ScSIhXArzkQAJELyOw9wzR+wjRuwhU1m3F9IxdToYPuh21tQWfQtrnGbkcGh/RDnU2hoKu39fn\nPoVer4gE+IJDvpaQf5OQ/5SQ0e02hufuQGulicwI5HcS4IDtb5GXBFEaYVJNsLhcoETZ2BXT2bYj\nFT7RpM1Gu967jm8LBx610gT0V5tc8myX1xdS/r19CIAIUImCmiggAxDXeRNDAY0p2IQhXsRIzhKo\nQkHmEjKXoCWF5BKykpBc3iNP9j0zN9Nb1SPx7Pf6OFfltOEiZK6wWltIxHWM77MhoE9noL/re4xr\nP7tj2ShzeLfp4FBThepVBZUoiBcCyasE2U8ZWMyQVRmSdYKyLFGW5cbSSXZdDzHsbaSlLZTU/Nae\nKpPvu304oYeA73e13Tv9WV8b0fWZogoiEagmFapFBXk6EiUnKIAUUKm/7skrCXElUC0r8DWH/CSh\nvtbT4eipcHR0o20pIxNdjopr/xCFNdR5HTRpshESXmuTYV3f2Y1O39y2c8lYIn+R4/IvlxB/Fyj+\nWuD6u2uUi3LHK9wfykWJ6++vwUqG5dkSvOQo+a0BuKZILhLEFzGSi6Txpu0pCWxVzazYUsqNRYFN\nmVVD72d/3oWuRuH6Xk9I2OeYx0IXAWxDiKcVcu57huIZsiY5kVBxTZhIRaBeKyRxAlYxpNcppl+m\nzSAPwF23+yhN5rEmYToUkXE5JPb7Y4Hv97uIZxfMfq19x94/c4SFalqheFVgWS6hYgX8Dog/BCSV\nYGuGuIo37MShsUsEROPgpMnXcEP23+WcZpjJ1UhcjTDEYySEQMYS6xdrVD9UWP23FfifOdYv1yjn\nwyFNxaLAzfc3EIlA/F0MUdWL+YpKIPuUIfotQvJbgnk1b0iTOTGZqU6YSeQmadJTGOhFG4HNe+ia\nIFDv0yWhmq+hKotPUenbqR4appfs+rzrWJcK16VGtcnXTXm62OOzqdshAlR0l8clpID4VqC6rMCX\nHLziEFcCuALYFUNyldzrS+zlV8x+x4bt8XY977bv+9ShQ5Ozh0LofeuDY7sHx4ZqViH/NoeMJcrT\nEtGsdkLYmoF9ZkCBxln39ksd6Dou1BkNrQsPqjT5Grr5XdexbSqTrzw73BQqZfsgo1ppWv2wgvpv\nCuK1gEgFRDKcmWLLRQmRCKxerkC5MZRaSZz8doJZNkNcxVhcLcA5bzYdotP7m6ME9Tp2eh+dVK7D\nF+YwbQ1fh91l5O3Ys1a77O9cxwLto2eGgrb24NrP1znsGr6rd8azX2tLxQr8lCP/LgeRBNWkAvlA\ngPcAjSiSKmkGfJjPxHQkumbcdzlrISEj+/PQOmOfK/Q8Q4Wvje8TT3auskdANa0gI4nyrAT7E0MS\nJ8jWGSafJ4iyCGRJ6jmeWkSNfSBUaQ0hTw+mNG1b2XdVCUKO9Rlg77HE2Ojtpv8eAghqEueZ7r8g\nBYplgXJZgq9rslTxWmmSpaxHEuUMNKd1DZnWoQw5kRtJsDKXoF9pPUoPE0i+KbH6Rui5FnK0K7WL\nEPg8iND8hqEYCPt6diF19v3pe42N+vGMyZKGjCT4KQeRBCIVKE/rSWJjFiPmMZLrBEyye2E37UiY\nCFFS91kfuxTHp4A2x8t1T7dV9BRRuJ18Y+ff/Nyhkjo/TECAg4N8JkjPUpA5QZzFoHE92IKx++0K\naCf7baqqeazLEXeV13VOjQdTmrYxDK4wRF+0KRI+I2x2QK6GxyqG+CJG/GuM+H/E4Fccq/MVVi9X\nWJ+ve//GhwbPOJavlmAlQ5VujqQjK4Lsc4bsU4bJpwlEJlC8KppNT1qmpAJWAH1LEf8RI4szwLh0\n7Xnrcs0QoJ1DZRocu2L3IUF2xR+62mT+Jt/v61KZfHDV8aD2M6xb9KDQSpPIBMrzEvmbHNNoCsop\n0usUycc63wnYzNez66/vPtshPB+2JT1d5961/CHAvEZXm/CRp97XTKzXEXsBpRQsYs2i2SITTXoH\nY2yjLYWMqHORHR/p2lcbGGwieIhR6KtY+f5uY7Y2kSKEgFUMk68TzH+dYxbPUKwLfP3xK0QqjoI0\nVZMKy1dLVEmF1ctVQ4KklIhuIpz+fIqYxGBLBjmXKL4rcPW3K1z99epuDg6lEF1HmJ/MsYgWWFQL\nRMto436ZpKiq6vk59Ggkc3NN2GfC51XY+9hoK3PI2NY52KUjUEo9a8IE1PlNIhIQs1uvuCRgyzqX\nSV5IkM+3C/yuGOJVXCsShNwtI9HSgW+TZ2EjhGQ7r8vhDIaG+R4TfX5jV//hM7ghn43YHwgliKKo\nIU1VWk/noeduskfRtamLLmXK3K/zt2yZQ/XgOU2hDcD+u0uKCy3L911X6McEqximF1Oc/XqG8+Ic\nS35LQM5Xrb9lKOAZbwgTkZvPJL1IEdMYs+UM7D0DX/CaNP0/V/j4/37cKCe7yJAlGZIqwdnNGdKr\n1Ema9Dw3eZ5jvV5jvV5vzNWhk8j1ca6G4UNIJzdUw9AlQ3ddd1dn0dWOTOVjzGlygNytV8fW9SK/\n7CMDvgLsa+04pTcpOOcoyxKc86bTdy0T0YY+qnoI8TEJUtv5ngJBMOuxT2Hu63Tp0NwYotsvKKGI\nWFTnNqUZeFoTJnMpsq78TJdtaBNB7Ppgwk5tCGmrj5LT5EPoPtvkbbTFLLuIlX3TCQiopGAVQ1RE\niMoIrGIg6kgaGEU9Fwnu5zxVVYX1N2tc/+UacRGjWBRYfr9E/iKHmGzuzyte7/vDNVKeIl7GAO7u\npzlppswl5BcJ8oUg/Zw232tDYx6nsU0Iw5fTsKsSs0/YjbotbNPWkEPyZnzG0Q5BK9yRpxE1FL1d\np+717SK/swrpuxTJuwRpmiJRCQgIiqLYWHboULPkmwjp4F2GxK4PQ3Qodm2nvnYf2gcQRUA5RZzH\noDcU4kpARQqS1RNcKja8e3Y0iAA1VVCnCvKbekJMAgJa3Y6ouw1/bzNVjbm/q+7r+mCSs67wnucS\nnge6PC4brptqfraxgTyZ2LceGXj1wxVEKlBlFZZvls45qPTUCxd/voBIBFhRV3hteKWUTeiPLAmS\nXxPEcYykSACOxkOnlG6EP/cVezYxFMJkwhfCseteKHEKcQZcRsRUm0YYuCVKIICY1Yv8ylMJljIw\nxTBZT8A4a5JYgfqe6qk4NkhpQJ32ecttnrKvnLZ64ftsCPDlKx0CPnWXcor4KgZ9R8H+i0FBoVgU\nKE6KeimV2biUyraoJhXy8xzXf7kGAKiZQvF7AQHRzNsE3OUMDjEX9ahIkysm37W/C9t4WS6ydPel\nfhmeYe4LEYt6Dqq0wuqbFRRTKGcl+PR+RyEigfXZugn1UXGrGGnrq+6UlPgyxiJe4KQ8QfIlAVkR\nlGXZLO+iG8lzQ5t3s4107CvL53Gb5zf/jUBNlm4X+dW3hM4oJmoCljNMLiZI1smGUuqa/HUbRWhX\nDM3QdKEvMQwtywWXom22Ccop0ssU2dsM2TQDqeoFe2/e3EDEYiRNO6CaVFi/XEMRBT7joBMKRRRU\nrsC+MqiV2iBMQHcqwi513S57EOG5rg58X+V3eVZ9zt8W+iGEgFBSy7WpRJVVEKmAjCUkPX6jryKF\n8rREedo9UaeKVO19nRSd+yZfE0R5hOnFFPQ9BcsZmGD11Aa3CYDb5Cf5kvmGnNC5a2Nvi+NvTayU\ntY3YVI9v31eTCsV5gZvvbsBKhmSaoPpaQX6ViC4iTDC5l2tBKb03/9k2KQbAMBXTfeDQ1+W657aa\np/9mVb1g8+LdAguyACsYaEUhEoH8NMcawx/sM1RUWYX8ZQ4+41h/u0acxIjzGPGXGPEkBolJs7pD\nn9w0U809tMPwoEpTW4JWG/Yh2ZrnczFYMzxkh0YIuVtGhDEGZEBxXuDyL5fgf+NY/7DG9ZvrQc0I\nPjTIWNay7F+vQSQBToHilwJSScQ3tSSr85/6POdjNCZ9cupMHNLjGhWmMIhUID/LQb+nkJFEOk/B\n3jOwhCFSEeIi3iBMdn32Lb3SlT5gE+Vjqu8h6Er+7Xtsm3E1DbArDEoqgngZI/ucYS7niESEfJZj\n+XIJWrqXahoRBplKlGkJnNZ/p2WK6bspotMI0SQCEmyMRjWfka+OhChFLg7hI9GPntPUZiBcYQIb\n++gcfKGPtlySNuJEUoLiZQH+A8fNf9yg+L7A6nyFYt6tuDxXyEiiOC9wLa/BZxxsxmpF4waI38XN\nDOPaKw/tREOSPIdmYELlYNc1dYXp2u5R2zFNWxiJUyuqtEL+Iq9nOV6USE9STJMpJmqCJE+Q3WQA\n7kJ15uK+PrWjT6qBWd+PLQS3K0JCeK72YqMr3G3PL4cKG0rhiP2BkHqZrjiOkaYpVKKa0dY67B1i\nC0KciX3ZgUdTmszPuhrArgqT+d4VBrK9DRdp2lCaUiA/z8F/4Cj/o0T1qqpnPR3QMipDg1aa+Jxj\n+d0SSZogvU6Rvk2Rxuk978JEKLHwkQzzdUjYhuD0KSv0uG1y/J4rRCaQRznKRQlaUWRnGaCApEgQ\nXUaYfJ400w3oOm1OQdAnbOzK4fQZhyEmzPZBn/SKPsqSD119is5J45xDcQVRCUgxkqZ9wyRNSZIA\nKZqJLm2lyUbIswi1Bxu5nUNTmvru0yaz2t/7ZFfze1M1sqFJkT0kkRACMiegMwo1VxDfC5R/KZF/\nn9eLEb44/lymg4MBYiKaaQvUZ4XoJAKZ1pOd6YRwO5Ztw5fEqd8fA3xKU5tHFSIlmw0+xOPaMMoV\nQbyOEV/GwCdAvb9d/iAWzesTGOewMxRTUExBom7zRBIU3xQorgrkNzniIkZ1WQGXAGMMqUyb59JH\nQfXtY5Onp2LEu+p3SNvuQ7za9tHPSpNexRUqUY1K0wGgSVMUR43SFMfxxojUPmE0VwqObx+7jNBn\nO9jRc329sT7l6sVntXpkqkjmd5pcEUJQvinB33DwNxzln0vwf3CIbwVUMjaibaDvLaPsHmHqo3yY\nnar9fqgkquu6uoiUa/8+sXz7WEIIWMkQXUaI38eIfq4nmstPcuSnOYqTAuJ0VFFdkJFEeVJi+XoJ\nIgiqtIJ6r6A+KBBKkPIUkNhQLtpgO3y+ZOXnBLttu6IBJnzqaahiYSuFqlJNeG6MXu8XhN4qTVGt\nNKlEbdgDH+w+bxv10SWwDEJpOiTacj5cqpMdZtMKh725SNX1X64h/inA/8mR/5BDnAuIcwEVj61o\nKxBsPAfzfocaB19ozvX+GElUiJftMwrm9XblgiilQEuK7CrD5P0Ek8kEkYxw8/oGVNA6tHqSj0qT\nAzq3iQjSjK5KpgliFiPhCZKbek6yqqpQlmVnyAHwT4nSl0y3Ychtoe26+5YVgjaHQkoJKimUvD/f\n1oj9oBmEYtzabe+1iwj5lCq9n7mFYNCkKcRY9DGGusPSpChJko1NkyYtDzbhOkZR/bnC6t9X4P+d\nY/3XNUBxt43oDYJ66gbK6D2iGiKzu+T7YwnT9SWEGr7QjNng2+5B231hJUN6mWL+bo4TnCApk3qY\ndSxQLAoQRcYkcQe00iRSgeJFgeh1hBmdYc7nSG9SpJ9SYI1mTjIzuTW0k3YZgG2N91DbhosoHYqg\n+NqGrXLrTarbqSLG+r9/mEQJ/ciLrw21pei4jrP7z0EqTX0afltSsI8w+XKbmpDQbQwVL4DqZQX1\nUoGfcEQsAotuQ3T0Vvlgtfpx848b5N/lqE4qIN32ykdobDwLh9IE+GPWbYTJ3E+jqxENBV35Loc0\neFRQxKsYk4sJFnSBlKQoFyVWL1dgJTvYeY8dKlKoogrVtJ7IknCC6CrC5MsE9B1FOknrgSN5vrG+\nVnN8zzp5LI5BX3SF0frcJ18fsc1v0mqTVGNo7mBQ2Pu9bct32jYsp/HgpGkfsrLLK+lKfNX7aEMd\nRzHESwH+N47i7wXUa7WZ40RorYTcvq7erLD+dn1v/bUR24GQ+t6aYVKTOIVOoW9WdhdRMv8eMnwh\ntNBr8IUg2/K87Pf3ckUIUK8Q9LQM9KFBCAGjDCyqRwXJWCKO440UAHOiS9vAm+WEKumhjuiQw9SA\nW0XdV7m+63blRpmEiSj3cjgj9ouQUNm2ITsTPg4R+nwflDTts7H6jKV5LptRmqG5KI5q0vR3juK/\nF6h+rDaMBcHm+2pWgU85qkm1t2t41nDkNLmSwX1wGRsfeRo6upK1bdiN21fX7WN8RtiXWEtu/43o\nB+2c6VC/iMS9nElCSJNwDPjV0Dal3bdPF4ZInLqUpr5lmVtbTp/PcXCWNUpNB4FSCkIUB/57AAAg\nAElEQVTeLnItlNOhCCnDhxBb0gcHJ019wmcu9GngvgahG0KURmBTBjZjIHMC+UaC/5Uj/7cc5T/H\n2bwfEo1hYVHjhZtKU5/6ocuziYHLmzgWdIXqXPv72oqPKOlX3zbypf4g5C5XTzsEcRxvKE3mcGoA\nzVQEvpQCjZA2ERqGHhpxOmRbbUvj6DquMdwHCCGNuE22V7fzmIl6cXeTNA0Rj6I09ZWSuzp9+3O9\nmcnecRwDZ4B8JSFeCSxfLVH8WwH+PYecjvMsPTT084niqHk+vnmafM9ff+4zLKH1bAgIVZtCPKo2\nadu+b60bRuK0DSi5m0pDh+dMwhRF0cZM4V2E6VDK6ZCI06HaaAhhcilM5vGNER9Z00GgiZKQd0pT\n2+Lt+1AidynvUXKaQiRnV2fiklnvhRRujTGlFEmSYDqdYjabYTabgb/huPnxBjc/3GD1wwrVmwr8\nNYecjaTpoaHzmfT8HF0TXLYRZx/2KfkfCn1Ccq73LqJkGt82x0PvSwiBTOpRYDevbkC+I4j+FOHq\nuyusX6zBJ3wkT4FQRIFPOFbnK1x9dwVWMVSTCqtkBa44kAOsYI0x1vl7QHvozddntin5TxF9SJ7v\nHrSVYdqTe6E5Ndx+5Fhh5o65wnOu/Q/1O0Lx4EqTXSnbEEKc7DLNfIIkSTCfz3F2doazszOsflyh\n+vcK1/9xjeW/LaFSBZnKcYLKRwAht9MNGEqTObrI7rh8eQltapN+f0xo8/5D4/a2amHfD9sQa9JU\nnBbAa4D/lYP+QLF8tcTqxQp8wkcvuwfKaYnV+QpUUIikngC3RAlecOCinincJExdStI2atCxEaeQ\n3xribG/T7l0Oh28bsV8oVU8cWvEKZVFClfXac0KITqe363m4HA67fmzzTB9tygHbOISGFLokZS1/\nJ0mCZJqAvqBQb1StKv2Ng//Iwf/EUX03JnQ/JmQswRcc61dr3PzlBnmUgwsOLAG6DEsGB/wG5SG9\nlH2gq173aeQug+kin3pfTZrykxz8NcfqxxXU3xXKeYliXoxKUw+YSpOe7JIyCuQAuSBAdjcAwl6L\nbt/185gch23Joo/w9DmXyw6ZCghkHUIaHYf9Q6paYeKcoygLqEKBc965ZE0IYQpNeeiLByNNLu/W\nF1LoW665UUqbFZPjeYzq2wrXf73G6u8r5H/Kcf3mGsW82M9FjdgafMKxfLUE4wxVVqHICpRVCXEp\nQC9o6xT6GiEkWuMYDIeGz6EIDTe4CJPvHjWkKZXgpxzitYD4q4D8h4SMJCSrX0cEggB8yu8IU0UR\nyxjJRYLkfYIkTTaUJnsGfFe/2Cc05/xJR0Ce2kLOvlwjE7ayuu259d+j2vQwULJe149zjqIogLJe\nsFfn/DmP6fEMfHmBuyixj640hRCn0PCczmfSpCmaRShflVj/uEb5HyWK1wWKRYFyPo6Ue2zwrCZN\nVVZh+c0SEAC5JCC/E2eIzqWQHCthalPHfNdsGwRfOFJ/5zMgro6fEAJF6wV6+ZSDz/m41twukACp\nCCinoCUFKxlYxcBUPWkuYQRCCOfC4CGEtysnx0ZfkvXYcBGoPseEtnffeUyVSStN4+SWh4EOz5W8\nBCkIUMAZnjP374Irbcf+3ldfQsjUo+Q06fd9iFNo+Zo0JUkCNmdYfbvC9V+vcfkfl+DnHIqoMdQw\nAFSTCjfZTU2YJJBdZsh+z5BNs9qwOPKUgPvx6b5S/JDQlaNkE5+uhr6TUSQY52TaBxQQr2Kklymy\nqwzpZQr2CwP9QEGvKaigUNSaSNeYYsNZ5JYK/D7KGTr6hGm6yjkWUnnMoAUFXVOwnNXbrwz0PQW9\npBC5aBZH3peq11el9B1j4kFJk3kjQuTYUA/JZJXyTKL4rgC+A8iPBOu/r1F+U0JkAoo9vU7jaEHq\nTUHV6/cxNPPbaEMSVMwT6+hcOXz6c/O1TWnqKrsNI3HaDUQRxKsY089TzN7NMH8/B3lLoD4oyOt6\nLhrBBBhjXrXJhzbn0ny2vpDeLg7pY6CrroaGq12fHVvO41MBWzEknxOkn1IknxOQnwjkbxLyi4TM\nZaPutU05EIo+tqFPCPvBSJPPCJgIZXyucIQ2tOJMIP8hB/93DvUPheK7AuU3JVQ0NohBg9ySJiPP\nYxtC5AvjDR0hSY9tSpP+bJtwxj2MvGl73CpNk88TnPx2grOfz4BPQHlRorwuwQVvlKY+ZMmlsLbV\nbZ+HfSztoQvb5LWMeHywNUP6McX0X1NM/zWF+k2h+L1A+aWEKOpZwe0pB/altO7ruAdXmsxXDVdD\n7pvkSEg9E291VkH9qCD/Pwn5bxJiKiBmAjIek1mHDIJ6LTozZLELceobxntM+PJYXCTJpzTZn2n4\n8mScGG3LXhDlEdKrFNOPU5z8dgJ5IZHnOcia1ImvtLoXnrNH0mmEEB1f3+k7bujtAdhPAu+24c6h\n35tjhiZNs59nOPkfJ6jeViAXBOKrgMxlE5rbZVbwkMiUib7nODhpMjv0kM69j5E0y9Nqk1gIlK9L\n8L9xiH+OyaxHg9twnX6O2xImb/ED9jb7GsUudJVlE8p93+tnDVWHnJVS9XupnP2UnnbAJk4bRXn6\nw6du1F2ESSMkh0m/7rX/GD2KrUCL24EQBQMrGaZ/TJG9yxB/iME+MsivEuSGADmgqu4RivuIPmwr\n0Gg8yui5bWETMLOB6E5IUAFK7s8oPWLgUPVmehkavg7QR8KPbbRQKEJCMSEG1VvOrWEYDcSOMOuy\nuiNCJmFybSaBDRkN1qZQHoOa5IJNmLZRlnyOQJ9QpvkdIaRx6kb0Q7yKkV6kyL5mSL+mSH9NEb+N\nwb4yiEI0I+W2WaTX99xCHcG+/abGg+c0HQImaaKUgtCxdh8jzEajtxCJ3dzPfm9iyCTKZxz6NGaf\nsQzpPJp15oZ7i44KSv+7VZyA+/2Ufm/O2+QLz/U+/5ERJ1v9tF/bUjvsV3sz+xLf/fR9trGNazH2\nRrSOMPk0wfy3ORa/L0DfU+ADgAtA5G7SBHSPLN4VtnPhsxnOa9r57A8El5HUr2bnc4jQzojDwzQy\nXUbfRy5c+Q9PBaHGL6TTcXpzT+dWDQPq7j43Cp4VngvN3+ub4G8bgGMhToA7vBZ6HfY9su/pNirs\nBmHCqML2RbyKMfk4wckvJ3jxv19AfpXg17weFFHwe6QJCCdMbUpTCFyqbIijMRjS1Jbo2oUN4kQZ\nKAkbrj5iQFBoFm2EgHfI6Ta5P8dCnvYRr2+Dr21po6D/jdgfbBJgK0x9iFPo512fHROJ2hZ97UcX\nxiVU9oe2xY9DkvS7wql9y9THhXKPBydNoTH7UOZndkRRFIGyOjx3LIZyRA2p5D3StG3nbudDDVV1\n6msgu+DKcQn+DWNobr8gCFKYdlHIdyVSQ4QrrNhHZXWFWbryZLrSAJqkfozrz/UFn9bri7KCQTEF\n8p4A7wFFFUhBQPPNeh+i9LjUobb99Pt94cFnBDdfQzr50I5/w3Mblaajg04At0mTi2Tbx3VhiISp\nDaG5KL7QQ0inY5ezQZ5G7Af6lhp5MW2J4GZO066dfEhfOqR2sU+j5msLfciXa9MJ/iPCUU0qrL9Z\nQzGF8qREMksQ0xhRHiH+GvdyGFxCSpdT3Pb8t63/j7Zgr0aXFxBSru21jUrT8cEkTeZU+hrbJLVu\nE+p9LPTNvfChr5dm/4YxPLcfmCoTgFaVyTQcu2KbgQNDwz6S2LfpK3y2SUk1qkxbgk85ZCRRLkqw\nNwyTeIJpMcX06xRpkt5zFgB3X+8iP75kbhtdx/bFg83TBPT7oaH5Kaax1Zs5N8qII4Llye1KqIHD\nzduyCw5F5vq0Gf3aJCtXBGzNkFwloF8oxEcBEdeTwurXkU8FgKBe+HjGUZwVWL1aIUojqLWCyhVo\nThGpqFkqwiZO5lp0wOHDakPtJ9vy73z7h4yEcjknvjwYbVua/Jth3qpBQ6YSMpXgC15/cAVEf0TI\nphlI1H8FCN/zDVWp2khWaH/84DOC9/UgfCTLLEuTJjMTf8SRQemX/fVMQyFJPtgdgKtt+EZ4hKIr\nV0O3HZYzJF8TkHcE9CcKBYXipLjb4mLLq3xmIEA1rUMSrKzzOJIvCeKvMeKLeqOS3gv9VFVV52Q6\nDMhQic1DwGwjofW+bxjGR7ga0iSx0wzVIzZhh6vbCJPZ79mv2/bvuyqsD54Ivk/ipL/TXltVVZBC\nQqrtk4hHPD72pS75/h4SdklW3DaMYRoEkzTFFzHSt2ktm1cUN69vsHy9hIwkikUxKk0BUETVya8v\n15BUopyXmH6YYvp2CkIJ0jKtk2INwiSlRBRFG4rTRi7NiJ3Q10ja7QNyP6r3CDQDJPSSWZJI57Px\n9WsuRzMUjarusA99nu2jTG7pk55d33cRpntKkxzDc08BZidlexahsuyxeOxdjd+lNoXAp9DqV912\nCCFADiQXCWbJDHM5R1zEoBVtCBNRZMzpCAEB+IzXia/zEqtvV+BzDkJqwkQuCeKb+B5pKstyI0Sn\n1fJdc3ueE9pCN11tzG5f9vMZlab9gMCtMvUlP4C7bfR1kLsGp7nwKOE5/d583bVcTZyklBtLF4w4\nbuyrk9pVkj00bGLoa8S+/KQ+59DvG8IEAAXArhhSmmIu5kiqBOWkxPpFPVx4RCAIIDIBkd2te0kI\nQbpOMb2eQn6RwBog+e3ccmCIRHRPaTINfShxCs3reOqwr3MXpUkIUYdTR0d8fyAIIkt2vQ95rn1C\nd2Zf2+e4RwnPud6HwOc5m2EGKeRYwZ84+njfu8a/jwV2omPI/k3OBrAxmKKqKtCK3pupd8R2qNIK\n+WmO6++uQQXFerYGuSDABUAuCOIqbkiTJkxmiO45o08+k8sI+uBSsW2nvlGYhIKQYkz72CP0BJd9\nsE/V1SZtfcp+tBnB237gNjlPQojay5NirNgjnjW2IU6aII2kaf8QqUB+loMKChELTOYTJO8SJFGC\npEoQL+N7I+i2CVscM7oUh9Djdx04AdxvF6huE8HlOO3APrHNvdxHezDL2Ea5f1SlaZd9zH2bTSrQ\nJUX0MQL9F4XMJORUQkwFxFQMaNGYES7su0OyycNzM/5d+YAAmhCdrTQxwWrveiRNO6NKK+RnOUQi\nkJ/mWJ+uMY/mmFUzxNe1ymQrTc+JMAH7VYK7cgBdqSHm/nb0AgLNAKORM+0BW97DQypNbXlSNgYx\n5cC2o4fssqWSYF8Z4p9jsIxB3SiU35Uovi+gvlOQ0ZjrNHRskGBj28ZbtPHUjdA27UcfYxIme/qO\nkTTtBpEKrJM18tMcRBGkZynAgfg6hvqoNgjTcyVO+8jHshWEtpyXLphKExEEUkiAA4QT0JJCUQWQ\nerQkxgUoDo5dRty3TWdwVEpTH8nVPNaX16SVJnbBkP4rRVImIJcEq39fQSYS/BXfzwWMOBw66muf\nsFOf/R8bXQ03tLPo6li6PG9z6o4xPLdHkHrTs0rLSEJFCogAwtxLq2yTbzE+pzu4cpb6HGsqTrSk\n9Rxbb2Pg/6IZGcnnHHzGUc2rg1zDk0XLo/CJKiFKUN9nbSuNoTmEj5rT1BU6AMJugHnB7IIhKRPM\nPs1Av1DIRKJ8VYLw4RvPZwWzbsrbv5W/8nblKfiIxhATwbdp1IeGvue24jQOtT4AbkmUTvh2kSU9\n7cAh6u2Q2kJfuOxGiB2xj/U5D3YiOFCrS/FlTZriaVwn83+7xurbFRRVI2naAubUA31V1X2G6dqc\nSB+eTJaP3elzzkE5rSe8lHJM4BsYojxCep0ivUmRXqeQP0nITxIylxCoh2s/VUPtU0vb/t7Xedpg\nKk2kIqPSdCAQ/c9BmlwE6lAkZ+jkyUdw+ijIprO1rdoEDsSXMaZvp5hiingd4yq/gqIKfMGRIw+/\nqBH1uow91Sb78y7Fadu6PWilqQ19K7e5v+70OecgJYGoRLN+0IjhIF7HmH+a4+TtCRZvF1j/vMb6\n0xrrfN2Qpm1wDAbeF3ZuI05dbSLUMLTlephOx0iaDgtC6lmRfcTpIQjTkEiTrQiHOBZd+5vHhebN\nmt9rpUmVCtFFhIma4GR5gsnlpCZMc47V61VreSP82LX+7bP+mmr6YJWmQzRYM3mPcw7CCSpRjR3/\nABHnMWYfZzj/6Rzf/J9vcPHbBS4+XoDnHLlye27HkqO0C7rqaagx6VOG/tscMUQ4AdYAu2ZIviSY\nfpxCMeM8BFBUQcayWdRXRWMb6wtXiMJFmLpIQZ/ztf09dPiUI5sY+cL8IU6FfT7TphRFAayBsijB\nKz6uc9oXRmjat9nP2PW6D9j1YzA5TX0Sd/sc4zpe31Cdk0FKAqzqjj+7yCDiu5XbZTxW9scE5RTp\nVYrphylOfj1B+anE6noFWrYPRRmJ031sE34wjzXP28yCXFKwK4bsfYZoFmHCJgC7ldZvj6uyqlnQ\ntzwpwaNxsEUfKNwfJfoQGHL7cY162jY8p+9pn1wZ+3j9WlUVyrJEnueQa4miLFDxaiRNPUHsfx4H\nYZsBLX1gEzCbPLXhwZWm0HyOvg3bTuBrVm7/lCD7VwZ6QlH+qUT+Isf6fI38xRiHflQoQCoJKaRz\neHtoo/BV/GNBn9/e1iZCww+uY/Q93Gg7nIFdMkTvIxBKQEoCQutcBN3ZFScFlq+XIJJApAJ8NpKm\nUOgZkV3e7gg3ukiQLwwX4pS3hcx1yodeH1CsBcqibPJlR2wBS3EC7t7bIohLZbLfbwOXyhTivAxC\nadonNrzlNUXyOcH05ykmdILipsDFjxcQsRhJ0yNDqXqKCCFFk0fTd6TWth7kMaBPPpOJXXJBzLYj\nS4nkKkHCEiRlgvgqrnNtDO9w/XLdEKb8bGxPvaD8xOkhcIxtIhSmIxKa59dWjkmaKKUQuUBRFmN4\nbltY4TnAHTbeJlWh89QtauJgwnMafXMxtg036I5fKYUoj5B8SrCgC7xYv8CqXEEkAuvzde9yR+wX\npoHWHtshcs+GaBx8Cd+7qk2+c/Q5Rj8HySXINUEsYkxWE0y/Tu8lKMerGHzCUZwUSL5JkBc5FFFQ\nVDWT/7WNknk2kABRBETWGysYKKcgFWnWyexLnLYJUewjH+5QsFUDXxvx/e06LvQehdgas79CVU8G\nO65x2h86JN30M7d9vu0w2++3OpcjB8qXF9XnfA9GmnaJLbeVqfc3b0bjIQgJFABZEtBLCnpFQdZk\nnLNpIJDqLvFYCNHbeNh1qkuyHWIH52uodp5SyGgn03D08dRstUk/D3POpqqqNhaTpZQCOZBcJJi9\nm0ElCkmZoJyWKGcl+JSjnJYjaQIQFRHiVYx4GSNZJph8mWDx+wLZlwxsxTYMiGk8XJ39vrDv8vYF\nV/vdJX3D7h+6VCVfv6G3ZlkVKccFfLeBApRUG/2+q+/fVX3tylnyJZYPSmkC/JXdNUqkS4Vy/W2+\nuuLRnPM69KBGSfWxYefQtClNISOHfCNqzPdDMRJtXrNLIWqTsV3oM9LEFZ7TbcYkTJzzZomPpkMr\ngOQywez9DJGMkC0zrL5ZYflyiRVW4FM+zo8GgJX1QJTppymmn6eYfJwg+5gh/ZyCrui90HSX17uP\nsISv7KHA9dt8n3UNhAhxONrOYdoSKSWIJOMCvlui6feF3EjLcClN5uu25/L97Xofeq5HWUbF1Zn7\nvN6uC7GNpnmc9gx0p19VFURVy6ojHh9K3jUemzD5nrtPhjdf9fe++PWQ0NVgQz3ltrK7YN5T3WYo\npQ1h0ptSqlGZGGMgBUF8EYNJhslyAn7JEeURFBT4lGO0JzWiIkJ2kWHxdoGT304w/TAFu2ZgN+ye\n0hRKnID9jCIaIlwqQR/CdAjnyCRNptI01vH+sCMMbaRpHwgRYPqc7+CkKURu1TCNQlvYwnce3amb\nnY452eWoNA0HSqmNxhOS02SPrnB9f0wIbbB20qTr+7by+/wevXSHHZozSRNjDADq0akiQbSKwD4z\nyM8SIACfcqxerkAUGT1xAKyolab5uzle/NcLzN7PILiArCRkJSGkuEecgPtkYVu19NjaBdB9rSEK\nk0aIUt22v21PUAFsyZB+SRH9ESH7OUOVVRCpqF8zMYalPVBKNeE5Ke47C3of83XfjuKuhGyQOU37\nKN9Wmszw3Kg0PT4U7o+esz1sEyEd6LFg3+qArbq5jK2NLsPg2nQ+U1MGCKiioIKCEVavAF/VfxN5\nPM/j0JCxBJ9x5C9yLN8sIYkElnWuJZaAypVXZeqDttBSiNM6NOxTdXA5HX3KNdsGqQiiqwjJuwTs\nhIFGtJ7G5jxHfp7XpGmEF9phNp2FEDVoKH384JZR2UZyNr0Ovem/zfAc57yZIXzEI0Ntjkjp8rKd\nRQysMW2Dvp5RSPvYxtsy8zYAbDwP/V6ruGYy+L2hw3pdqeN9JHtHlVTIz3Jcl9eQVGIynyD6GCH6\nGCHmdXjTF54LMSb2e9++x9BOfNexDXEKud7QSIipwtKKIrqKkL5LkcUZEp7g5s83oIJCZAL5eT7W\nfw9sx8x2ll1q07aj6Lfdr+t8gyJNu3oCdm6GOaR9Q2k6Ek/rKUPBH57bR/htyPke29Zr89g2VUF/\n32aAXGFwe3MNCTbPdY8wETIaCwf0PFaSSZSzEuuTNbIoQ8YzTK4mSETizGvywfX8+u57DARKI6Qe\ntyEkCT4kHNi0g0ohuoowfTfFgi8wu5yBVhRVVtWEaYQXbf1+s4+HOIU+710IUwgeZfScz6Dtwxuy\njYBeM0jP5IorgH1mSN4nkImESlT9Gg/TwD5ZKGyQ2kMsDhtqWI4FZueh/27bt+1z28M2jQKAeyqT\njzCZapMJMrKnBlVaQVGFclZi9XKF9CTFvJxDXkmwdwyRjLZKBA+FT005BuLU1wDeq4ct19xHkd14\nLlIBJUBWBDSqQ9P0ioKuaD2dzdPobg4DZeU1OZyENod3V4d6HzmxD0qa7BEOrh/frCy9h47CVppw\nAUS/RpjOpkhlivJVifJVieJVARGPceiHhP18QkhTW0ff5kUPzTi4QmO+fUxS4yJMfVWHts9sA+Ez\n4g1ZiurZwEUmQFKCalGvRVdNqnoB39F6AABUpFBFVfO3UALxIkaapqhY5SRMnWX2CM2Z+x1TblPX\n79slbONrg7YT4TvGti1VVdU5OuMgo1Y0k1uqzURwjX0IKr4yzGfsU69CzvGo4Tn74lysvut4G66K\nzXm9JlZ0GYH9xpCqFOySYfnPJYggqOYVxMlImh4SNmnSs4J3eR2u72xCob8bGlnaFiGhg32ex9X2\n7HAcIQQyleCnHNVZBX7KUZwXuPruCsvzJfiEj6E6H5TRx0k/OXU9h10VomNRmLqwzYjRbdqJizCZ\nfVeTK3vr+I2DjDpg5rLKfktntTnGNlz2wPV9X8IEDGDB3tDRPl3lmNDHN9Pe335GLylSmWJ6OcXk\n9wmIIBBzgfz7MQ790GgaTiXupoIIDM+1KSZDV5n6wlaSQsNzfco2752PgOpXMywnEoHytMTq9Qqr\nNyusvl1hfbbG+myNclpCkdGAtEF73Laqp78LOX7b8w69XbRdWxth6iJTrn7CVpnafpNZjq00SSFH\npSkASvrDc6G5qL7+3kRXHtRRKk0uhDSWPslgesRDVVWoigqCCQgIiEqAvqNIf0kxP50jkhGqaYVq\nVqGaVlDR2OHvE6QiiNcxklVSLynxa4z4Uwy6pN7Rcya2DUE8F3TF6X3f9yFlLqWpOC1w8/oGlz9e\n4vr7a1RZhSqtt1Fp8kMptbEOl0tpajt2H7mfx9BO+hq1EOLUtZ+rPJ/SpFVyIQSEHAcZdUHXe50M\n7lO1t72PXQqTa3/7fdcxjzYjeF/0IUzmucx4qZ56oCiKer6Zz0D6rxQxjTG9nmL1ZoX1mzVEIkbS\ntGewimHydYL5hznmH+agP1HIPyTkVfeaW7vgWIxDF9oIza4hiS6lSX+nFSa9qViBz+uJLC//dImr\nv1wBCs3itIyzegFfogCK+vX4H0V/3C7YC4XmvtCqXrAX0p2OEEKcdsVTaxu+v+19AXdei+s4+2/z\nWd1bP21cwDcI9j3cts/vUpD6oA+/eDDS1Ecd8h0b4mW4PtPESZMmSikIJYg/xchohmgVQV5KsJxB\nJhL5qxwSo8y6T1BOMfk6wdmvZzj/r3OoXxXWf6yxulphLdZbzdPkQ59OdKjokpZd+/q+03DtY7ct\nmxwxxhBFEaIoataeM9UmPScTQU2U4lWtJmpFscoqlNO7BXxl/PzaFSsZkmVyt2jvxwTZHxmyrxmi\nPHI+49D6+pSNtNkX9FWYbAV1m/O2/R5zioiN0NzTfRx7gYLayGtyKa194eIHu6hVXTg4aepK1nah\nT9w5pCy9UUrBOW/KiL5EiIsYsy8z4PJ2ErrzHOwvDCKtp8JXtPaSR+wGWlFklxkWfyzw8n+/hHgr\nQC4IyusyaEbwvrDr0DEaF1dd7+Nd+bxmXzl2+I0x1mwmabKJk55egEiCZJlg9mWG6ecpZp9nWJ+u\nsXq5wvJ8iSqpniVp0mvPTT5PMP00RfohBfuDIfoageX1kjQbRNSCzwAcY50OwSGcJVe436c2tf0G\nr9Ik9z9lypOEHgShB0Bsqc7t6ky6yhpsIngXQrzhbcvTMWhdjl5DS0oJmlLI3ySSaYIznKF4XaA8\nK8HPOPgZ3+ZSRliQysgD4NVGPsA2w65d6EuqHxtd4QDAHYrzESrf913nsAmTGYYzyZOtNtUH375I\ngmSVYPZphtPfT3H62yluvq1nSq6SCvnp8xxwodeeW7xd4OTXE2TvM6ivqt5yBUmkN29nG6dzxB32\nGeo3Yc5o3QxiGcNzQdC5fK7t3r4d/ZlLKfflNO0a9tN4cKVpF2O4zQ0w97dH0wF3I+wYZcBvQIoU\nySpB/kOO1Q8rrOhqJE17QHP/9Wi5StwjTL6ZYdsQkvQ5VIQ6ASEeU59wXlc5dnjOqzTBrTRNP09x\n+uspXv3nK8R5jCqpsD5dg4rnKdlqpWn+tl6wd/J2grIowXNev5K6f+lLoJ8D2naks2AAACAASURB\nVPKN+qJNsWs7h213TKXp3kzuY3yuFRvzNBlEM4RAaZhcwBeN2pfT7cKDkqa2C+nDAkP3dRlgPR+Q\n6SmUZYmkSpAiRbbKkH3MkF6n9Sy+Z2XQuUZ0Q0l1T2na8NQCG03w+QZuYLYxBPYxtrrUFaJrg602\nuVQnU2WiFUVyk2D6ZYqTtyeI1zEWbxd1COoqBcsZaEnrpGdJ6mToZ4gmMb5iiHgEVjIwziCEAFX0\n3v0G+qvqx5az14VDhWz2UaZNmhrHb8xp6oYCNuYps/r7Pk6zL5ytv+vDE/rUncGF52y4OpS+sBP4\n9Hv9tyZSEYmAEmDXDHESIz1LkZ1nKF+WkKmESARkOi65sg18aw61LR/xHNCWh+Ha14XQsFwobMJk\nvprlM86QXWeYv58DCpjNZ5i9n2HyeYJoFUEJdReyUHjWXri5rEwbGR1xh331AyHlhChath0xiZOp\nmIxoh2l77fma9Pc+uJw6s1x730M8j4OTpm0VpBCFqm+M0kW8zLCdOR2B+qLAfmWYJlNERYT8VY7i\nVYHiVYEqrlynGdEGpV/co+Oec2fT5en0DVPuGgJ3KU0uFYRyivQqBRQQr2NUaYX0KkVylSBaRpvS\n++2omecM3/217+1zVJm6ohBtaR592o4vF7DvMTZxUpUCLSiidYT4Jq7XNKUSiikoNoypNogg9SYJ\nqKD1dCBMQTJ5sAFPzTlvN7ZioAUFOO4RTZ/i5C2bbK5jeyiSZGMwpOkQZXZ1JqbypMN0lNY1h31l\nYL8yzMoZZl9nuPnHDYisl1ypTkbStBU0cfKQpZE4tY9uC8U2eYS+3AAfcQJulaarDPEqxvTLFJJK\nUE5BOQUpSe1F6pDF8320NZqceXfoc1c1/SkjpB93qUR9wzO+dtfWNpWq1dT4Jgb7wJD9K4OaKpQn\nJcrF3abY4zeAKI+QXCfNJmOJclGiWBQoFyVksv+RrWzJkFwniK9ixFcx8J8A/gDUpYLi/oktt2kH\nbYRrn7ZlcOG5UK9hHzFvXYapNOmHln5JkZX1XCrZb1m9Rt2swvr7de/zjjDQQZyeA9oU1b45SHYZ\nvnP47rd9rIsw+eRwIgiYYGBgG2WbG+EELGdIbhJMLiYABWQkISIBGclnMYmsZBJVWqGcl1i/WIMU\nBGItINYCaqVAq/v5YqGw68BzbEumoQ3Jg9kmJ9Y83vxeKQVIIFpGiD5EYFOGSEVYvVlh+XoJRRTK\nWQmjiTwaojzC5MsEs/d1GL2aVLh5fQMooJpUByFN0SpC9iHD5N0Ek7cTyH9J8Lcc5WUJXvHNvsIi\nTF1hOhN9FCofQo99UKVpW/bYN8fDhS7v2yRO+jsKWhuFkoG8I/WSK4s5ojICn/FadZqNS670gT3c\nFNgtvNAlpQ8RLjl5X7+7q54fOk/EJk1RHiH7kmExWYAQgvXlGsWiqLd5AR49/ZGpIhXIT3PcvKnV\n6nyag31loF8pGKn7FzuvyUeeXHXGVgmPmTi15e21GcoQhcK8X6524SJfvvZph5SimwiTjxNMMEG2\nzBCvYyiiwGccq29Xg8jni9YRJp8nWPy6wNlPZygXJSCBKquwPj+MGBCtImQfM8x/nuPkP09Qvi2x\n/rCGulQbtlZjF7XdTvno40j0Od+DKk27hB12OTZEvdIJ4UqpZloCfZxUEvKjRPJTglN1isnlBOvv\n1lh9t6oTxCOx1e96brDJko19EIddQ1sPCZs8uV7tfX2wDYLvVZflM8j6NdRRsRUse2NrhuxrBkII\nkjzB6mqF5atlvVh2IsBnT580VWmF/CwHUaQ2UIs1srcZMpohKzIkVwkYY8EhOl8o9ZjJkoltrqNN\nadrG+Nq/w/W+qedS1eTgc4Z5Ocf8cg4ZSxQnBZavlyByGP0RKxjSixTzd3Oc/XSG/CxHOS+xerUC\nrQ4zHQhbMyRfEkx/m2LxfxbIP+eQ1xLldQlU94mOxrbKaZdS1SXihNiPo1h7bttYNRBGmMwGpxf4\nNTt+KSWiDxESlSC+iSG+CrCinjU8f5UDWa/Led5Q3eTpqaOP+rpNXe8K1+m/Q4yzz8NvNSIWaZp8\nmSDNU4gLgew6AxUUIhHPZrJLkQrkZ3lNmF6skZ1kWNAFUADJZXJv/qtQ2M/7qRCnQ17Hvsq267m9\nDp2egmBIz8NcIFqKzVF/BzunUpDibn4+c5oZlw2wn8+u4dQ+34fiUXKaujrsbUMuofu5jJa5sK+9\nj5QSsy8zREUdEybXBDzlWL9Yg33PIJm8f35SJ30qoqDo3TaEURSPBbPR2oTV5T1vW8mPVW0yP9u2\nc7fl7dAy2pSlLo+tjTTRNUVcxqDXNSlI1kmtvJzkiF/FoJw2C/k2C/oex6MLhkgERCJQnBQAgHye\ng64o0q8p5DvpnAOrj9rk+m5IxnqIaAvR6ffmq89xaEiINUO4Jk4DiMrdQd0NftLLvhya2OkpBSpx\nfwUI1z3epe9rzrlF/99n/0dLBPepR31YpVnGrkbSDl/oylVVFSilzVQEAEC+EohfBaIswpRPIRcS\njN4tM0HI3WgjmUjkJzny0xz5Sf4s197SUOpuribdaOwk4z7Psa2uHAtxCvmNbSExH8H0ERlX2bay\nanrO+lWHrhljG69mOeY5zPfaISGEgJQEyWWC2bsZqrhClEfNgr56e2qkyQnTv3IY6l2Nhn49hjbg\nw64RCd/n2xhlH6GyiZNuK1IMb1kVPVdeMzeSOPz8UkopCCk2lCY9L2Lbee3cvV1VpC4S3AePOnqu\nb6N27W8Tp309fLsRlGXZfE4JRfVbBcYZpl+moDOKOI6bTRMoyijETODy+0tcqstnu8o7sElEhRAb\nHYqLONkG2ZeI2XXOIRuNvoS/zet13TPz1f68Deb8M80M7tXmNBv2c3IZEvOcujxS3JKmeAZSESTX\nCdYv60V9V1ihmlSDSJp9LHSRXN8xvs+G3gb2jV2v19WGXGX7CNO9BXylgnPKjYd4JPY51Z3y0/zG\nA89i3ogPotoIz9mTGruwb8W07Tx98OhTDrRVUvvzkJu4zY02b5r5IHXlMkN4VVWTJcop2BeG+JcY\nySRBmqZI0xRZmiGKI0RRvZVnJYgkKGclrr+97vW7nhqUUs7VrX1qk61c6H37PN8hGg1fIq8LXWpa\nyHchBtilNJmGwEeazHP5lBJdHoCGNJGK1NMQfJ3gan0FoB72fKhRPEMFwX0CbD+rPgrskJSNXWAr\nDSb2ZfxCf4MvdN44AoTcayv0miL7mGHxywIsYShPN9XUhxhxHa9jxKu7bfbLDPP383q+JH7XHx+y\nzjR9vthc3NhcmaPZz+HouX5bHwc6xAHviwcjTa6OYF9l9d0vxMM3G4ROWtOkKaoixDxGfBODRAQs\nY4iyCHEWI85iRFGEOK5f6ZIim2XI5hkm8wnY/P6EHc3vIPc70budNr9TVKFKqyZfYgiTp21AoV5j\nq6i35GOC9GsKuqJQ1WZeU5fStFHsFoRpiMQJ6Kc0uToSV3jb97evTDuPwCZOttKkn4+UdS6OizDZ\n59f7Simb8FxykwCfgGpal8snHOvzNYgkz0ZpInWjbuAjnaHwqYvHii7juI+23eWEudqoS1W1nQx6\nQ5F+SMFihmk1xfrVGqtXK6y+WUGk4kFGXMfrGNPPU8w+zer1IN+lSN4lSK4SgBsCwQHbm8JdDpVr\nnVHAHdr3oSvf1eWQtmGbujOYnKY2+OLUXeWHlu1LnjUbhIa9Tpr5nf7bJE2SSeAtkNEMZ6szVBPD\nYyf1+SmxJrUjdx2q8xWAyARW56s6rPFyBcGGN+1Bcp1g8mmCyacJsrdZrcp9SUD45tB218R+JnkK\nrSvHkgDbdi3b5HGYx7WRp1AiZRoBkziZpFbn97nKd51HEycI1Iv3VnU5TDEkFwkmHyeYTWfgMa/n\nQEsriExApOJgXjktaEPqozwCqax7T+p2Zv6WvS81YV2a73n5wq/3ijuC+r9PbGP0bNV6mzZnK01m\naK5Rmj5k9WLV1wQ3Nzf1BMlpPYLyIRCvatJ0+uspzn49A/vMgAsAV6iH+9vLHB0CCndrjlbdi7P7\n+hCf2vpQqqOJRw/PmdiH0dvleNf5dcOwpVjTE7c9c5M0QQIgQLbMQD/QerFfcnc+SoyRM5Q0yyxo\nQuX7u5yX+PrjVyiqkJ/mEMkASdNVgvnv9Zwgk18nUB8U1Be1MX2+a9FS33MIIRs+OXaoatMuMK9p\nH+3GpzTZpIlSCsaY87yue68Jlm4/G4pipRBd17MGzzEHyQny8xzFiwL5i/r1UF45K+o5pNKvKdKv\nKaL1ZneoqNr4HTK+XaNrTzANlX3f2p7nSJi2h0+t2qYcl8qkVdnsJkMqUqTXKdIPKSIe1YTpfA0q\nDjMnko14HWP2eYaz387w6n+9grpRKIsSvOAoeVmTmQMvc6RUHZ4TQqAS1b3w3MZ+HrXJpx7ZIsdD\n9fODIk1AeyXeNSznOpcrN0O/1w3CDEPo46SUYIxtVAKTNJVlWec1FRHoqvY6pvEUhG7KvXqOFv3q\nClU1ahS9+zs/yxvCdKiJyXZFcp1g8ccC5//rHLOfZihWBfJ1joIXzT7aqJoGue2ZuBpEm4Q+dGzb\nwO0Oo6u8tjZl3zcfadLEVtf7rnI1XGTJJE3smiEjGUhOkFwkWL5ZYlksIZkEn3OI7DCkKcojpF9T\nzH6fYfbHrA5bmNfAFG7+dANS1aNgy9Ny7x65jzj1KuNI6nobtr2GbaIQbfvaym3bOdrCcxWvELEI\ngghIIkGvKLJPGRa/LSATieKsAJ9w8AmvlzCJ9j9ASCkFJW6d1LLeUKF25A9RZVQ963i0iuqFi1cx\nol8isI8M7JpBVpsjp11KUx8cKvzW9XsGR5qAw1yoXXbXOXwGWBsZV6NSqmbUjDFEUdRMQWBuNlEz\nJ7Yz3/sIVDOVASSidxGmsylO2Sn4jN/tR+vEcz7jKKflwYxOJwTqxporqPVtw+W156Hvmxme8629\n1aaouMJ5zwUuEhlKotrKs8Nz2nvWz0jX8T4k1Ww3G22gAqLrCCQniL/GmMZTsDWDYgrlosT628OF\nMljOkH6pSdPZf54h+7I5S62MZE2Y4pow7XVmZ+N2hYY47xXxjOr6oeFTtrvaj8/BYIw1r5xzkBuC\n9GOKRbRAXMV1jpNOr4hWByFN9mg5yLv0Eg1vDu2W54uX8V1KxqcM+C9AvpNQV6rJZTWJU3NoT/Jk\n29992/82DII0dXX8ru928TCcnTfuK0+ucvV7MyxnGhltXEwFqU1NMsmCTbDaiJMgAvQ9xQQTvFi+\ngJzUc0VRSkEZxc3rG1y/uYZ8LR+NNClVz9Ghja5rfg593UKI1sn9fCqT+fmxKE37lI/b2oP+PqTj\nt9/7DIGZzBl6HTbp3ajPqiZObH238G+ZlchPcmSnWa2oCutZWoMi2n5HW/gw+Zgg+ZDUCbJvEySf\nko3yZCKRnCeIriPQgu7fO+8gTq2H7ql+HzqUsSsO+ftc97CrPbn2dU3RoclS4ywvCdJPKeIqxvxm\njuX1EpRTiFggPznMzPhK3c6LdztyDaI/OemLeBlj8mGCk19OsPhlAf6Wo3hXoLwqUfCit9IUIm50\nEV5XSM+F0PvyaKSp7Wb4VIXHMIR2GEQ/ZPM3aoXJ9MbNzSRNplpkkwStUOmcqGYyTUtl0gm19B3F\n9GaK9H0KmlCwiDVlfP7nZ0gmUZwWKFB4r++Q0A22quo5OuyZYPW1KKW8hMm+3z6YDcR8ZkM3CofE\nNt5YF2kyiZPrHK7ybMJkv7+3/5Ig/hgjSzMsxALpSVqX3yQDbub3NeXYxanb8Nft60biq1LI3mWI\nf42BTwC/4SDFZkcrIVHx6m4+mwPANBq2wfaR2b794HNvB13oo+7Zx2j42grnHJRSxDcx0ipFdB0h\n+hghXacQcT1L/HV1mKlolLrNJ7oduUYk2ex/9zxZFFEE8TLG9OMUJz+f4Px/nmN1scLNxQ3ElYCs\n5D2xIeTe++puH7GlrZy+7enBSNM2jdYmK13Y9qb5DIqPMGnoOZzMnA0A93J0fKE3FymK4xhJktxT\nXsxjKKWgFQUrGeLL+B7ZYhEDn3KsvlmBlfenOHgo2Ib3njTsCM/1WUrCxlMmTNtI0H3KcBkBl3qq\n65pd531lm8/Cfi4uZbAhTZ9iTOQE9IaimlQbw/MJucvxa3L9NqbYBpo1DrGpBjezIUuJ6GuE+NMd\naZK53ByMQFQzGd8h5rMJyWeyDcvGfXpC9TsEvvrStwwfGdWvfe6rqTaZjvO9qEFJQRUFEwzgAP1K\nkXxIMJ1PcZKeIL6JUWUVqqweqdl7EmRVh5ujPGq22dsZki8J6A2F5LKezuP29zYDj7bsa72oAOQA\nlgCuAHWjINcSsqxHz7nCc75+w/d3WzTCfn6+clznHrzSZMIliXZdgH1ztu3QdGca+htNuM7vapTm\nOfT7Zt4aw4DYo8d0XpRNrnybrWA99nIUzTQJFjEyl+AwK7q9n09idSFU7n3q2EbONuFSmuj/3961\nNreNY9kDkqLedp7d6e6Zrurdmv22H/bP7H/fqqma2Z1Od+IkjiPrSYrkfqBBX13hRUqyZeceF4s0\nRQIgiMe5BxdgFDXWc5IkDQnm7ydUaTIZI3pfVRWwAHpFD2qukH5Ka98iFs9OeYpi7HImtUOWuMVd\nFAXKogSWqBv3eU2atvl216CJcL+C8ZGVpkYBs5RXW4fA8yu0s3vqJMtHzn33ulRXU76a4uag11ED\ngxvLJv+/cl6i96mHUTICcmDwdoDVqxXWr9ZYvV51Ik29RQ/D6yEG1wMMr4cYvh9i8GGAZJag2BaI\nymjPaDl2P9Gs/r3NsdlskGXZ3od6udpkg6u80n6PG+OmMHyEuw0JPwvSpGFTe9pcf+y4DpFs9TlK\nmOiL5p2OJkf6WkrEfGTJ6P+EMyBOLJ10qjollLyh0cRSk0sXulqdTw2+DsNnVfnCoWSGkyal1A5h\n0p2EjzT5CJP+bacRXaCegUOaJ1OZp5a8Kb4dham6V43onm5VVe2owoiBbXH/HbHOqOpNVXd5VSio\nQjWzmHwdiIkw0d8OIUNPqc64iI/tOn6ek3We713yk9YVHQcdnqOkqSmTtyWSOME4H9fLEnzrI/7L\n/QQIvehrG6SLFKNPI0z/NcX09ymS6wTx1xjxLEaZl6iKfeN0T6U9ADQf8jxHlmXIsmzvQ72uT6hw\nkuNqU3iboNMQEgZNs480c5wVaaI4ZWU2Ndz6vO03Ct9LoNAdCyVMpo7GRJoA7BANeg9Xl6wE6jFZ\n053DLk0bb7A4YbIRQI1QleS5wlU2bQ1+F+uckw7qr6H9NDSxpe/XFLevEeOkyaa88HKuZ/E1yioL\nm4dJrV3akFPrdycuKBzD+TvexEhXaf05i1UPg88DjN+P0b/uQy3UHhF15QV/l/y5n2PZb9sO2O43\nwaU6hChMGs0MtbvfKanXq+nTdxrNIyR5gvQ2RXwVoz/ro4pqwrT4YRH8bM0zan+iqxEu//cSr/7n\nVT0sti5RbIp6eA7u5V2Ogaqqmo/zbjYb5Hm+pzTxMm4z9kKVppDr6P/8Ey70+MkoTb6O0GZhhMqo\n9Ddu8dJwXNZc1/Tz60wFQh/TVZb1tfxr8vQeGlaZls0yA5gAy9dLbCanWxgwBJowaSLUnFf309pN\n/l+2IToXoQ15B8+lQ+lCgkLv4Q0JVZSogyt14Df56NF4XWUe2F9l39aBmYwDqoTxcOn9JtLEyRM1\nbKLoeLPlkk2Cwc0Ao+sRRl9GGHwaoPdnD+mXFNEiamaVuizwUHQpG08BJiLTpv33wUZGQ67VadH1\nBcDeLDqOBAmiMqq/YbqKkaYp+ld9DC/qlfGj9V17eWd4cujh3SZNpcLwjyEGHwdIP6VIviYo83q4\nsNzeLWCpdoe3m7rZNdvK+lNZySapV9ZfxRhcDZDcJMAC2Ob7CpOpnp9aLXX19V1wFqTJBBtROHUc\nbQlTaBw268XVCOhhKpfTnL5/O9hi83aDzY8bZD9m+PbTNyzeLLAdtJd5jwWlVO2sS2YOUoJoIki2\nmYWc7B4qqQv8sHUE+t1Q0kTfIbAvodNztnh0XFyNpOE4VVVLXDoMSpZMx9oK1YRQ+0YdiiRLMPg2\nwPTPKS7eX2D4cVh/zuIr9pSmENVNw5avz4048TpvU+D03taGmwxueq5NG2JS9lzqrMmQ2DEIVxWS\nzwmG6RDltsTgz8EOqdHEiZIlOjMUBTD5c4L0Qwo1Uyjy2m9P111TvWnqDlSrZ2+eo6w/uj34Oqi3\n6wHif8aIr+rFLKmKazIGuHhB89H2G81nOopj68tNxMxUt1zxcZwdabI9/KFWRNs4XedDYOvUbSTK\nRAToiuO+hmI73GLxZoHZbzPc/tst1hdrbKYb5IN9K+fBoNB8JsbkDEl9ADhhotsxrIPnDl9D0yU8\n2jAB2OkANMHg65AB+0QphDSZvunoI00mck3j43HayBJ1bNfDjjt18UDiFG9iDG+GmH6Y4tU/XmH4\nYYh8lSNbZchXOfJtbrTGaf5QhJCip0acQtpoVwdJw+DkiLa9pnzh7RIvQ23STcsvnXlqKrM79y0r\nJF8SDIthTTiGd+WRzA7dIUl3+yY/SiC9SdG/6SOa1eoln/G5Z6iqqPnuaReoUiG9TTG+GmP6forJ\n+wmKDwXKqxLFbbHzrTlev0PhIk6mY9P74GHZyHdonTkr0vTQldwV36GEyUSCXOFSRUVv2vHWxtLp\nPh/mWLxd4Pq3a3z+z8+oVIVKVd2l1yNAoVaa9KKbzXli0duIkq0T9L2z56Y42RoBXr7aPrevIdL/\nc6WJdkB01Xu+DIFJ+fFZjbZjG2Fqs+n06/rE/Yio1UrT26YDteZ1qaByhWgdIV7EiOYRsAGqTYUi\nK4yOsqb3sROmh4j6fnuKcBFJDWo42AxU0/X0f9Nxm/TRT6romac20tTsVwq9bQ/xLMbgwwBIsENu\ndDteVfuESZMjlalm2263u8N3JmMjOmx4TitN449jXP7zEi///hKrbyusb9ZY366RbTNr/+VT90xk\nl9+rj11Kk+lcSL1y4eSkiSssbWDL2EOtqEPJWUjnbJMdTf/zCq4bcO58q6/V6ou+NooiRKsI/es+\npv+aoupXyCYZsnGGbPJ4n1HJpzmW75a4+dsN8mGOZJYgnsX1CsuFmyRxpYnKzLxRNHVstrx+TrDV\ng1OoTQB2HF3pdxaTJGmU0RDyYmr06KrK/ByAHXJtI2S8U6L/03SbNt5xNmVQHe4sW1XV/Zfey11H\ndF23KWmiHcFzLLcmuDrFkHtdZcwWFm1LuqbVFgefeUrbNO12odt4AIiqCCpXiFfx3vV0OFzH4dvK\nyvBx7LRCMShQDAvkgxzr12tkF3X/UMUB5awE4jxGnMWI87hZyHL4aYjh1RD9T31sF1tkiwzVumqG\nB7v66rnejU9pMgkX/HrTb2dBmkzwWQku2K45R6sqVMmydSJ8po+uSKahjHgZY/RxhCiKMFwOMX83\nx+1PtyiTx/uMSjbNMP9ljjIpsX6xxuiPEUbvR0jW9WcpbD5NtiEXbn1wUDJpu+a5wdeAt6kXprpF\nOwG9150B97kzOfZzcsPDtRElugew0+GYwqRx8hmZGjbCpOOiYR17Sjb9Bhh1Queziw5xBDe96++h\nDpwCXfoTmtdUbdLlSc/25G4JJlHAR5r03kSuuTGp7y9GBbJXGfJXOfLXOZY/LrH4aYHNxSbo23dR\nEaF/28fgZoD+tz6GX4cY/z7G4NMAaq72ZsjxoTlT/h5L/PAZjyFGdOg7f3DSdMxK3NVSOBa6xm3L\nA27Z6zFxOs1bW/f0WqVUTZquRhisBqg+VUhWSUNWHuszKtlFhjIpsXm5werNCkWvQLJOMPo0MpIj\n2/IJvJHgMDU+0lkcDprvSu2vLUbLYVVV6PV6O+/NNLSmw3ORJkqYKAHSM0lds/Qo+abx6PTzxpzG\nxdVLk6rVNR+randxTb5GFCVTof4fIWkKMUTPDa40H9re2zrvQ2DqkHX5b5Sku7ZbEydetk1DsqYJ\nFjQO3i7y+qD3Oox8nGPzdoPFLwss/7LE+s267h8uA0nTtiZNk6sJJn9OMPkwQe9LD8mXpF65ny3j\nEeLL1Db/25bltqplSJrOyqcJcFcYXihsBaULfJXpWA2P6yXSZ6eNO52+qn1HaENfliWSdYI4j5HM\nEiS9BPkgx+Zyg+XbJbJphiquUMZlXTkegmMqYDvaYjvaYo01skmG/k0fkz8nQG93uCWEQOn8cSmN\nx7BeHhPnrJa6ZG4Nm4XcljTxvUmp4uBqJG+kKWmi4fueUanuPh8UnBSaiJOrgzlm2Xiq9YOT+BA8\nBmnk5Ra496cz+dHxWWA6vS7SpOPheaLrn8aOAjsqsX6zxvzXOW7+doPNiw2KtECZlkErkKtCIZ3V\nPkwv//ESl/93iXJZolpUqJa7S3qYiJNO57EQSsJ8xMmmhttwdqTJBZfcdmi4Ppgy8yE6OdrAJknS\n7OkHU3XF0xZLWZZIZymmf0xR9SoM5gOsL9dYvVhh9aLDEv1HglKqmU3n23hnG0KOn2pncIpyRMnD\nKTsOSgT0TCF9zjRUx++lx5zkAPdrl9lURD4UYSJNVCnzWeWm5zt01YFK/zHiROs2PefDOZLrx4Kv\nXfYRrGOPFOg9HTFQSu0QCD28resIv8/2vwsmpVX1Fap+haJfoOyX2LzdYP123QzL5ZN2M6tVqZBs\nEvRnfYw/jzH5OGmGl/M8Nw7J8Y2n2ZWfLvjege23YwgtT4o0nQJdO5NDG66QeHXFo5K+6dtfe8Sp\nKNGb9TD9Y4o0SzGajfDtl28AgM1k8yikqUlnZJ8pZztP7/fhKRCnh+70TkmYaBnV5yiB1+9RHwNh\nKi4nMvz926xsSp70pv2gOClxESfeyB+07EC1u/F8c61lY8oTfXyM93ou9aWr4eoLy9UxH6semkg8\nLX98uNnkGM2V2D0CZKgPPF49hN0Mx13myC4z5C9y5C9yLH5eYPFuUbtNw7pL3AAAE5VJREFUxN37\nAGX5PJdJTfKVZZdRZyO/h5KsNkqlCWdNmkyZ+dAKE03LQ4NWOk6YqJNhI78SyTedpejnfUy/TrG5\n3kBVCtkkw+zd7MGfo4HaHWM3OX+7HImbYAz/m6yYc+kQHguHNg4h4fNZQJwwUeJE02MarrOpTSaS\nxTeuSNIZc7pDscXhUi6rqtpbfblzfhHFiatNoQ7gpjzpWs6fY/2wESbe4R6LgPoIAlcXdfutCQ5N\nA68bvA20DSPpeOl6aZo05e9yLH5aYP5ujvXrNdav1o27RhfYJkX4CJOtbNvUcKvqe2KExHGWpIlm\nYKjCAPhZre9eWyNtskh5ITl256TD45WNbjvqEtkrpZBkCeIiRrJOoCKF3ryHeBNDlY8j7ZdxiXxc\nT3Od/zJH0ktQzkqUsxLR1rwquG0zEWl63iTDnhNClJZQHLuhceWZrVPgfkc24mRShLgqxNPB37nJ\nkufvm4apj7nCxNsVk5J1/09w9t1fe7dXlarrXAmgRLOmjqleu3w/bKpYG4XGpoicAw5pu2kYpnwK\n+b0LcXLlIS3PJuKkncFp/+Fq/0ImJdAPWMdxjOXlEtm7DPPf5rj+7bpZfqboFwcpTSH54Dq2ET9u\nWB0bxyrrZ0magMPGO9siNA5Xw3royzZZ4Dpc3eDTBpYuQUArpb5/x8epOux7VsdAmZRYv1zj26/f\nUCYl+i/6SP5IkFQJevOedVguFCGS8HPAuShopg4BMPsWUdWHdgw0LBqe792bCJOGjWDR3ylMHZG+\nvizLmuS0lJl6y17zcd7esofh+yHGH8ZIv6VQ2f4sPtdq4DZww7JLmTiHcnQsuDrdU9YZV7ictLuU\nRUqO+HpnPh/POgAg6kVQqQJSoExLbF9vsflxg+XPS9z+eouif+DSM6pux4t+gXyUI5/k2K62KFHX\nk51LPXXY9ntI3fcm0xG2zTBrg7MlTRqnVAvaVCZeWE2E6RTESVe4qqp2Ztxoa8LmcMdnZ1RV+8b/\nmCh7JVYvVyjjehmE4XiICSYY347r7yU5lCUTbIqfDeeqOh2Ch+70bCofLaO8gadlkvs0UdJPn8el\n3prKuk2VoeSHlydfWdsJu2rh01TVpGl4PcToeoThlyH6H/tIP6Y1adooYwfqI0y2tuVcSPSpcGzl\ngRPNrsZ56PW0b6D1xDYdnxMll+qur68P6sWE88sc24st8sscs19mmL+dYzPeoIoOLyNlUmIz3WD+\n4xxRHiFPc0TXEdRXheg6atbesz3DTno9+XVsHFPFOnvSdG6gL7+thewLk4evoa147tekZV5Olqja\n1JCm8jh+GV2hlab1izUAYDqYAnMg/TN1zp4zgXcUNuLU1ZIQhMFESnQ9oA0nv0efo+vT0PBM9UH/\nHkKafGk2EScalzH8wChUpdBb9TD6MsLF+wtcvL9A8iWB+qqgvimojUJR7k47b6MwfY9o27ZyI9an\nBp0aJlWWL30RSpqsbWMEbCdbrN6usHi3wPLHJZav6i2bZPUntQ59jrhqSFPRK7CertF/30c/6qO/\n7iO9SZs02mZCm4wu0/FB6QwwMFzlyVfWTk6ajlkoTWHxRvVQ2Kxb/Zstjq4Wi76H3m+r8LqS0XWb\nqH8TTw/1JXlspanxH7zbN9/FU2arnzuJc2LIESKTPxeck7pgUlxNhgVXmzT4/23ipZsrT/TvfP0a\n057eQxXatkrT6HqEy98v8ervr+oPqK63yNc5ttl2jzB1GZ7TaQ5pm74XuOq5rbN+qHYhhDBpmPw7\nfQ7hVVShmBRYvl3i5tcb3PxWf7oqH+TYDrbHUZriWmkqkxLrizUWrxaYRBNM11MkN4l36RhX3vD/\nT/VeDiFLGg+uNB1CLo6NQyTZU6Tf1/jbHMIpadL7PSuWfiH7zGCTn2nl4yoa0O4dnEN588FlIfHr\nbNeY8uZUQxwhv5uILidTLuj7Qq43WeJcVbLdx8tVWZZAgfpDqjc9DK+GUL8rbC+2KNLambboF6gS\npm5C1d9VzCLE6/r7XGqpUGYlVKZQbSvnAoA+1ZTisRWUc4bN6LRdR+Grb7Z35LqfG30mtwp9r6n9\nM7WPVVQBUU2YqqRCdplh+XaJ2S8zXP92fRSitPMccYV8nCMf1+s7xasYmAO9zz2MBiOn8cvzpWv5\n9L3TkPYzJA4XHm147pwsoy7Sb5d7Q8J1WY66wulFBLVfk0lpMvo6HWnq9FFAVKbmlKXBMM0O9DVc\nTwX8OU5FcELDDbXWQzsbXWb5hAV9vU8d4iTQRJx4mTGRJnod/52rUE0at0B8G6N/1UcySjBQA2Rv\nMmxebOrt5QZFsu9cyw0TrhCbVob2kUJbh+87DgnnKSCk/IYYF67zNmId2t74+gUTceJlgKfFtmkC\noz/Mvplu8O2v37B4s0A+yh/MOG7SxNbf030TJ35t34ktzjaKLL3PFp+tzTDhWfk0tSU/bcDJzKkb\nH1MjYapoNquFy79VdUaEyYAQ8qTXAnrqCFFqQi0m3tDS41PL3lVV7ZEUW/pMahMlT6Z0+ggVvdc0\nLMCvN6XTdI6Spug2Qv9Tvw5zo7CarbD4eYEqqpBPchRDf5mknWQXlckUnuk45F6KY5aFh0CIwhqi\nLpnCdREeXh5D0mELx0WYbIqTSbGp4grZNMPi7QLzt3Ms3i6wfL3E8vUS2SjDg3wqC2gMX/qlBxNZ\navt+XO+kS98bqna52jKNZ0WaBIKnhjaNBlddTPBdE0KcQtUmU9y2jsW0lhM1QEJVAh6f3lOCrads\n87TYLEkXaUpvU6RRinSdove1h3SV1k634y3Wb9bIYfgURVVv3Iihy4W4DB4bXCp0aJ7RZ36qqlMo\nfCTUZnBwhOaVS6ngKquJPNnUD5M6igjIJzkWPyxqH6a/3tTLAAxz5KN2n0c5BApmpYmTp0YhMxCm\nQ8ohr9vOtFoMJPrbWZCmPM+fljkjeBj8+93234+dkMeDTwlyKU6HNjSnUhl8FrmNIPDGzzWEwv83\nWeS0kab7UAm+qiqURQm1VogRI81SDOYDlGntDLu+XKP/un//dXh158+0jdBb9BCvY6hcoSrvh+Zc\nShPNGx+6vntTp/ycYFIzfISJ7kM6TJfKxI9t99NRAJfSpPeaeOyEHwPZpFaabn69wef/+OyM92Rg\nShNXmUz+WKFKoKvOtjUQbPHzcEPqhChNAsEZgDfeIdeeCqFWt2+40HTeRQx8jZdpKMZmibvIlSsO\n/gzUFynPc1TzCsnnBKPRCIiA4edh8y0uBQVVKkx/n2JwNUA8i1FmZbO2mt5CVgC34ZSE9ynCNpRr\nK2c+g8Onena5n6eHEycTeeJKLCf/54JGaWKGi82nyUZcXPANj9ryO0SZN1376EqTQCBoB5PipGEj\nEyZ1xXR/V4Q2QKZrQhoinzVpI0XGoQu480kf+/JJd16aNEVRBCzuZgtFI/SyHspJ2VjbCgqqUuh/\n7qP/pY94FqPI7p2/+T5kSE7gh404cXDCHNKZmo5D02MLz0SYuAJr2ugz6PJ2DqDEybTsAJ/Qcwhx\n2onXYwC5yoVN6Q6BkCaB4AxhsyxDKvchw3chSkyIpcuVs1ClyWbxuciR7Tdgfx0ofo0tf/Wekial\nFKJ5hCRK0Mt6wAxQ/XufDqVq0hQtIqhFfW2Zl0bCZPNjCcG5qQ3nAEoqQsiTrSM1GQehw5qh6oaJ\nMJnWbnKRpiYtdyrno0Hdb3xtPao2dVWZKHxDo7Z7bEpkSPgmCGkSCB4YIRVYnz9G59glDJdV5xuC\nM52nQw38WttwGv/fRY54OKHKk+sZuNIEAOkiRS/rIZ2l6F31kCRJ01Ho+DlJcg3P8YVa2yh6bfE9\nEK1j5FvbIVN+r69c6f9thMlGnPaMqDN4nXx4zrfkAK/DD4EQJTJUrQSENAkEZwsbUWkzrNPGsgsh\nGjaENDohhCdk+JGn13bsa6BNHRF/Bk1sNGni70QPN3DSRGfK5Xnu9Gey5ZUM2/kRWge6hmtTmXwd\nsC8NNqXJtFH/prMivg13s68nxVc3p9+a7JqX9N7Q6311TV8TUu+ENAkEZ4gQazUkjC738PhDFBk+\nBGcK0xQHJ1K2+E3EyaRW+ciYadjQNiSjN9f6YD7SZFKbOGlqqy6dVcf5zBBKTLrULVv5Mi09QH1/\nqEp7TkS6GRpU9/XM5c/kMn4e6rlsw5z8dxeENAkEj4iQSmrzu3GBNkRd7jWRD05SXH4foXHYNt81\nfKjPRZj4asT8OWxh6M6LHtMwqqra8dnQe06a8jzfU5vo0JyNvIna9Djg5cRHpNqoGPrYRZhcmy++\nhwZ3Aucqk4lI0TXbmnAOMPCAdmqVy1gKgZAmgeCR0KaydiUoPrLju9f0/yGNtksJ8m10VWTekXCF\nynQv9x8ykSd+rJUmpVQr0kTXZuKESS9uaXsvrnckKtNpYCNGhxIUl5JpGppzkadjpOcUsPk1mYgT\nN4q6tk2H4NBhTiFNAsEj4ZSNRFtCZuswfI2LLx5+v6njoEqQLT4bqbFd0zVfOfniaefqgD6vSRUn\nTb5PppgQqgZ2uS8knHOBaUiV/34MIk/j0uDh+cqm732ayi8tS6bvEWqyYSJOzfaI3xOtVIV8lGP1\ncoXbn24Rb2KUsxLlrEQxK6Ay95CdNkZcCjA/f9T0G96pDM8JBGeOrrK07R5TY2/733TMhxO6DA2a\n0mQa9uLDYdRJlEOTKxoGJx+meGzX+YZUdGNPz9E9DYd/Q48TJpMfk8COLkSuK/kLGXbjapHpnrb1\nmA/RcXVS1w/+sesmjopsj4QqqpCNM8x/mAMVkA9yxB/ietvGiGfxTl2K43jn2brkGdDecTvkmjbp\nENIkEDwyjkWcfATHRbRs/jQ2BagreeIbnRlkut72v480hpAnG+hQAw8rJEyTI7hpeQHXc9jS9Vxh\nIyIaJgJjCyc0T211yPV/V9jSbSJMes/JEleY9N9joYqq+lMu1QLbwRarlysM0gEG2wGGsyFiFe8o\nTXEcoygK7zBdUNyBhEmDD3+7wvVBSJNAcAY4lDi1JUxcEjfFzQnTIR0IbeQoWdLx0N9cYbj+N13P\n4w21SrnSRH83ETJ6zBWm0GUGQp7pe0DIkLBruLaN+tCGiLa9PiQ8OjzH99oPj5evnbL82ErTJEM+\nyLF8tUScxZhup7iYXSD+GGOgBntK07EJU5v34SPJoekQ0iQQPDBsJOQYwxIhik0obISpjXVnCs+k\nMpmG0HgjF6KU2eKi9/vIk0/J4OnhHRlXmihhCs3HEKu4LWxpfyqwEXvfPV38v1wqLv2t7VARDY/W\nAx9xonWlLEtURYVklaD/rY/R1QgX4wts0y2KfoFtf4siLXDyxS8V6g9WJ0CBAvkgx2A0QNEvUCX3\n5de3BIHOD2s0LdwRfO/6GCqlkCaB4JnApza1CQcwT5fW5w8Jm3cY3OHVl66QtNNjfs7VANt+czXG\nTUdGnsnko9KmQz02ntLQHi1/oQqhLzw+3Oy7jqbDdM0h0OFS3x7uEM4JE1+3CQXQm/cwvhqjiiv0\nNj2sXqywernC+sUaq3R1UBq7QN2vdmld8JKSJdtCl49ZVkPiFtIkEDwjHNrhmizqLo6vIQoAJ08u\nR3CaHlv4JtJoU6tC8sk07GNSFkyfwbCtvyMIxzHzK1QJ8pW/LsNCtjC40sSJk02ZiaIIqlDo3fYw\njsZINgmGN0PMfp4hKiIUaYHVi9XplSYT1P2ilzbC5Fp+4Fj+aqeEkCaB4DuEbXz/ISw+27CWT+nx\n/dbGsbdN40sbdltYLsLE190RhONQhYn/H1qmQ9Sotuorr1+6vAC7My7p0ByfcabVp7iIkc7ThjCV\nH0pE2wjb/rYmTI+EEMLElaaus+mOluaW7ZyQJoHgDNHGp8XX0LRtFEydSxeSYQubHlunVDvuo40r\nJ0ym32xhtck3E3Hi5M+mGByDLHH171jv43tDCHE6dcdtq1+0HNkMiiZtFRBlEeI8hlopIAH6t330\nVr36HNSjzqwDzAvO6r3tHfjanWP4fR56/f70EIFAcDbwDRd0aeBNZIAftw2nC1ykg3cepo6EhuEK\n3xZnaPpCCJOpceeW9Y5PCrD3P8exyI5PfRMIBOEQpUkgOHPYVJYuMA0pHNI5H9MpnJMhHbae+m8i\nPDbVicZhU2lc6Q5V+EwEjpMi7uSu0+QjTW3S8tSx2Wye/0M+d8QA/utue8YQ0iQQPCEcSyVw+QG1\nud90HAIaN1WTKJHQ13AncdMwnC8ufmw6x5+NE0wap4+AuQiRTXmyheN6pi5DrwKBoDuENAkE3wlc\nw0DH8LkJDYOTHpfSRO+xKTq2c6Z4XXv6HCF5ZRqa42GZPhRsI02hql+Xd3WooigQCGoIaRIIHgmm\nTuwhlYAuCpEvvK4wESJORmwOtCFxP7TC4ppZ5VKg2qazDRkSlUkgOBziCC4QCAQCgUAQACXWh0Ag\nEAgEAoEfojQJBAKBQCAQBEBIk0AgEAgEAkEAhDQJBAKBQCAQBEBIk0AgEAgEAkEAhDQJBAKBQCAQ\nBEBIk0AgEAgEAkEAhDQJBAKBQCAQBEBIk0AgEAgEAkEAhDQJBAKBQCAQBEBIk0AgEAgEAkEAhDQJ\nBAKBQCAQBEBIk0AgEAgEAkEAhDQJBAKBQCAQBEBIk0AgEAgEAkEAhDQJBAKBQCAQBEBIk0AgEAgE\nAkEAhDQJBAKBQCAQBEBIk0AgEAgEAkEAhDQJBAKBQCAQBEBIk0AgEAgEAkEA/h95M+OB198JygAA\nAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "## First, visualize matches:\n", "fig = figure(0, (10, 8))\n", "\n", "for i in range(3):\n", " fig.add_subplot(1,3,i+1)\n", " imageDict = data[trainingExampleIndices[i]]\n", " \n", " X1, y1 = extractFeatures(imageDict, whichImage = 'image1bit', dist = 4)\n", " im = makeGrayScale(imageDict)\n", " \n", " matchingIndices = (X1[:,40]==1)\n", " matchingImage = matchingIndices.reshape(imageDict['boxHeight'], imageDict['boxWidth'])\n", " \n", " #Paint with matches:\n", " im[:,:,0][matchingImage] = 0\n", " im[:,:,1][matchingImage] = 1\n", " im[:,:,2][matchingImage] = 0\n", " \n", " imshow(im)\n", " axis('off')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Thats alot of matches!" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 479 16]\n", " [1798 5574]]\n" ] } ], "source": [ "#Now, compute confustion matrix on training data:\n", "matchingIndices = np.where(trainX[:,40]==1)\n", "\n", "#Make yHat vector, tells us which pixels our rules predict to be fingers.\n", "yHat = np.zeros(trainX.shape[0])\n", "yHat[matchingIndices] = 1\n", "\n", "#Count up False Negatives, False Positives, True Positives, and True Negatives\n", "FN = np.sum(np.logical_and(trainY==1, yHat==0))\n", "FP = np.sum(np.logical_and(trainY==0, yHat==1))\n", "TP = np.sum(np.logical_and(trainY==1, yHat==1))\n", "TN = np.sum(np.logical_and(trainY==0, yHat==0))\n", " \n", "#make confusion matrix:\n", "confusionMatrix = np.array([[TP, FN], [FP, TN]])\n", "\n", "print confusionMatrix" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.769416550146 0.967676767677 0.210364514712\n" ] } ], "source": [ "accuracy = float(TP+TN)/float(trainX.shape[0])\n", "recall = float(TP)/(TP+FN)\n", "precision = float(TP)/(TP+FP)\n", "\n", "print accuracy, recall, precision" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Now testing data! Will it generalize!?" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "## First, visualize matches:\n", "fig = figure(0, (10, 8))\n", "\n", "for i in range(2):\n", " fig.add_subplot(1,3,i+1)\n", " imageDict = data[testingExampleIndices[i]]\n", " \n", " X1, y1 = extractFeatures(imageDict, whichImage = 'image1bit', dist = 4)\n", " im = makeGrayScale(imageDict)\n", " \n", " matchingIndices = (X1[:,40]==1)\n", " matchingImage = matchingIndices.reshape(imageDict['boxHeight'], imageDict['boxWidth'])\n", " \n", " #Paint with matches:\n", " im[:,:,0][matchingImage] = 0\n", " im[:,:,1][matchingImage] = 1\n", " im[:,:,2][matchingImage] = 0\n", " \n", " imshow(im, interpolation = 'none')\n", " axis('off')" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 372 24]\n", " [1123 3782]]\n" ] } ], "source": [ "#Now, compute confustion matrix on training data:\n", "matchingIndices = np.where(testX[:,40]==1)\n", "\n", "#Make yHat vector, tells us which pixels our rules predict to be fingers.\n", "yHat = np.zeros(testX.shape[0])\n", "yHat[matchingIndices] = 1\n", "\n", "#Count up False Negatives, False Positives, True Positives, and True Negatives\n", "FN = np.sum(np.logical_and(testY==1, yHat==0))\n", "FP = np.sum(np.logical_and(testY==0, yHat==1))\n", "TP = np.sum(np.logical_and(testY==1, yHat==1))\n", "TN = np.sum(np.logical_and(testY==0, yHat==0))\n", " \n", "#make confusion matrix:\n", "confusionMatrix = np.array([[TP, FN], [FP, TN]])\n", "\n", "print confusionMatrix" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.783625730994 0.939393939394 0.248829431438\n" ] } ], "source": [ "accuracy = float(TP+TN)/float(testX.shape[0])\n", "recall = float(TP)/(TP+FN)\n", "precision = float(TP)/(TP+FP)\n", "\n", "print accuracy, recall, precision" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Woohoo! Our method generalizes! We really made a hand detector, not a finger detector. But hopefully it's a step in the right direction. " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.12" }, "latex_envs": { "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 0 }, "toc": { "toc_cell": false, "toc_number_sections": false, "toc_threshold": 6, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 0 }