{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "In this code example, we'll use different progress curves to re-time (or in other words, re-parameterize) the spline we computed in the previous example." ] }, { "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", "Initializing flashlight v0.0.1\n" ] } ], "source": [ "%pylab inline\n", "from pylab import *\n", "\n", "import mpl_toolkits.mplot3d\n", "\n", "import path_utils\n", "path_utils.add_relative_to_current_source_file_path_to_sys_path(\"../../lib\")\n", "\n", "import flashlight.curve_utils as curve_utils\n", "import flashlight.spline_utils as spline_utils" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We compute a spline curve exactly as in the previous example. Note that the native parameterization of this spline curve does not distribute samples evenly along the curve. The samples are bunched together at the kinks. In this code example, we will re-parameterize the curve according to a progress curve that we define ourselves." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAARYAAAFECAYAAADiCxGzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xd4FMUbwPHvJJceCL3X0Guo0iVIk95EQAEpoiKIiD8s\nWMAOAjaaonRUEBBBOghBqSFUAem9hVBCSE/u5vfHHZBLAgS4XAnv53ny5G53du9dSN7MzM7OKK01\nQghhS26ODkAIkfVIYhFC2JwkFiGEzUliEULYnCQWIYTNSWIRQticJBYhhM1JYhFC2JwkFiGEzUli\nEULYnCQWIYTNSWIRdqGUcrdlOeHcJLGITKeU6gT0zGDxEUqpupkZj8h8Sp5uFplJKfUk0Elr/UYG\nyxuAP4BhWusjmRqcyDSSWESmUUplA9YBjbXW8an2BQL/AHW11mdT7SsGLADqaa1N9opX2I40hURm\nGgH8nDqpWLQHcgLhqXdorc8AB4A+mRqdyDRSYxGZQinlC5wFSmutr6ezfyGQW2vd5C7H1wB+1VqX\ny9xIRWaQGovILG2Ak+klFYuGwN/3OH43kEcpFWTzyESmk8Qi7kspNUspFauUMimlLiqlxiqldiml\nziml9iulXk7nsObAllTneVYptVIptQ3IBzRRSq1QSg1MfbA2V6U3Ay0z45pE5pLEIu5La/0CMNjy\nNh8QorWuAZQBPIEpSqkRqQ6rDvyb6jy/aa1bAdOBBKCZ1rq11nrKXT76CCA1FhckiUVklPHWC631\ncsv3OGC+ZfN7SqkcKcqXACLvcq4mwA6tdeJ9PvMaUPKhohUOJYlFPKo9lu/eQOMU2wO4e2IJBjZm\n4NxXgRz3LSWcjiQW8ahupHidN8VrTTo/X0qpikB+MpZY3AD1SNEJh5DEIh5V7hSvL6Z4HQnkSqf8\nU0ASlo5dpVSAUqrIXc6di7vXeoQTk8QiHtWt53pigA0ptp8k/cTSENijtY61vH8dc6JJTy7LeYSL\nkcQiHphSarDlez6gO+Zmz9AUyQJgE1AxncPdgVOW42sBsVrrNKNvLSoCO20UtrAjSSziYQQqpcKA\nXcBhoK3WenqqMquw7sy95ROgkFLqS8zPEI1L7wMs0yc0ANbaLmxhLwZHByBcj9Z6WAaK/Q3kV0oV\n1Frf7nvRWu8DGmXg+DrAGUt54WKkxiIyhWWMykRg6EOeYiiQbm1GOD9JLCKjHua271jg6VQD5+7/\nQUqVwzwwbtZDfKZwApJYxH0ppaYDH2PupEUptU8p1e5+x1k6c/sDPz7AZ3lhruk8p+XRe5cl0yaI\nTKeUagZU0FpPyEDZj4E/tdY7Mj8ykVkksQghbE6aQkIIm5PEIoSwOUksQgibk8QihLA5SSxCCJuT\nxCKEsDlJLEIIm5PEIoSwOUksQgibk8QihLA5SSxCCJuTxCKEsDlJLEIIm5PEIoSwOUksQgibk8Qi\nhLA5SSxCCJuzW2JRSk1TSoUrpfal2JZTKbVGKXVYKbVaKRVgr3iEEJnHnjWWGUDLVNveAdZprcsB\n64F37RiPECKT2HXOW6VUccwTJVe1vD+EeTW8cKVUASBEa13ebgEJITKFo/tY8t1at1drfQnI5+B4\nhBA24OjEkposGSBEFuDotZvDlVL5UzSFLqdXSCklCUcIB9JaP9BKmPausSisl+pcCvSxvH4BWHK3\nA7XWTvc1cuRIh8cgMUlMmf31MOx5u/kXYAtQVil1RinVFxgNNFdKHQaaWt4LIVyc3ZpCWuvn7rKr\nmb1iEELYh7N13rqU4OBgR4eQhsSUMRJT5nKJtZuVUtoV4hQiK1JKoZ2881YI8RiQxCKEsDlJLEII\nm5PEIoSwOUksQgibk8QihLA5SSxCCJuTxCKEsDlJLCJTXL16lY9GjqRK2bJULl2a9959l8uX0314\nXWRBMvJW2NylS5eoW7Mmea9epUpCAm7Afk9PzmTPzradOylWrJijQxQP4GFG3kpiETZhNBpZuXIl\na1et4u+QEHwPHaKF0WhVJsTNjbzt2/Pb4sUOilI8DEkswiEiIyNp9uSTRJ48SZXoaJYDrwHZU5WL\nBb718OBmTAweHh72D1Q8lIdJLI6eQU64IK0127Zt4+TJk5QuXZrvxo/H//Bh+iUmAubZunzTOc4b\nMJlMJCUlSWLJ4iSxiAdy7NgxOrVuTdTFiwQqxVGjkYi4OD7V+vbUgIHAYaBSqmOPA2VKlMDXN720\nI7ISSSzins6ePUtMTAylS5fGaDTSrFEjWoSH09KSSM4DIwH/FMc8DczB3BQqatl2AVjj68uUMWPs\nGr9wDEksIl1hYWEM6tuXY8eO4WcwkOzhQcv27ckdE8PTKfq7cgMJwA3g1jKWlYBngN8Ag5sbfn5+\nJBoMjBk/ni5dutj7UoQDSOetAMz9JkqZGzNHjhyhfs2avBodTVPMf32OAsMMBlonJ9M51bE/ApeA\n/oC7ZdtN4DsfH4aMGkXTpk2pWrWq9Ku4KJnoSTyQiIgIBr34Ijl8fTG4u1M/KIgVK1Yw9tNP6RgX\nR0vuVGnLAC2SkzmXznl6Axfd3Bjp6cnvBgO/ennxqZcXfYcO5a233qJmzZqSVB4zUmN5TEVGRlKn\nalXqXLrEi0lJ5AY2AJ/7+qI8PRkdGUlgqmOuAN2AcUChFNvPACO9vVmwZAm7d+/G29ubTp06yUC4\nLEJuN4s0Ll26xLfjx7Ni4UKUm6Jt12d5/c03mfbjj5SPiOCDpKTbZVsCRWJj6R0fT0w658oFeBkM\nfGgw0DwpiRJGIycNBtZ5eDB56lRatGhBixYt7HVpwolJjSULO336NE/WrkWrmCieMyWigdnuXmzI\nloNc2QN47cgR6qdzXCNPT6oAIxMTrVaX2wAsLFOGub//zvcTJnD80CHKVqrEwCFDKF++vF2uSdif\njLx9TEVERDBt6lS2b1hPzrx56TngJZo0aULvZ56h2Io/eN/dZFX+A6M78z39+CIqijrpnK9jtmwk\nZM9OmStX6JyQQDbgbzc35nt7s2T1aho2bGiX6xLOQRLLY2jv3r08HdyY1u4JtFLxnDfCJKMfTbt0\nZdbcnznqkUSuVD8Sl0xQMcGNtp6efB4fb7XvKNA3e3b+PXqUKRMn8uvMmcTGxdG4SRPe/vBDKleu\nbL+LE05BEksWZjQaWbVqFVs2bSJb9ux0696dEiVKUL1cGd68dpxefnfK3jRBnShfjkbHcd1b457q\nRyJJQ45YKJ4/P62uXKGP0UgAsBUY5evLu+PG8fLAgfa8POHE5HZzFnX58mWeqFKJUX164DVzNOcm\njKR25Yq8PmgQ0eGX6JlqhHw2NxhuiCWvjw+rjWnPt8wIDYKC+CcsjKiOHWni4UE1g4FxJUsyeto0\nSSrikUmNxcmYTCY2btzIhQsXqFSpEtWqVaND82aUO/g3Y/ImYRnDxsUkqH7Si4peBtZnS3sPZ2M8\nDPQpRvSVK8wxxvKEZeTaViP0cvNh+u+LadmyJQBJSUkkJibi6+t7e5CcELe47O1mpdS7QE/ACPwL\n9NVaJzo2KvvbtWsX3Tq0wz/xJuV9YcR1IwVLlOLYkSPMK3MnqQAU9IA3AxL45HIS0X7gn6ruuT7Z\nwFPNm1M/uAm9hw7FOzEBk9YY/Xz5ZuLE20kFwMPDQwawCZtyeI1FKVUc853M8lrrRKXUfGC51np2\nijJZssaSlJTEiRMn8Pf3x9fXlwqlSvBd4Si65gOlwKih32F39kRq9pYxpTl+Vyy0veBLU08jP/kl\n4GVJPJsToFO0L3+H7aR8+fIYjUb279+PUorKlSvj5iYtYJFxrlpjiQISAT+llAnzVB4XHBtS5tJa\nM3nCd3z+ySi8SeZGfDIBOXPylH8iz+a/U85dwSfFjVS8CLEm8E2VD3bGQe26dYn39KJYSAhN/Ayc\nNymOGRWzFvx6e2yJu7s7QUFBdrxC8bhzeGLRWl9XSo3HPDI8FlijtV7n4LAy1Xdff8WPYz5kZa1Y\nquaEJBM0X3+RZnnSli3mA4W9Fe+Fu/FVAePt5tCFJPj8hi8/vTOCpk2bcvToUUJDQ8mZMyfNmjXD\n09PTvhclRAoOTyxKqUDgDaA45qfvFyqlntNa/+LYyGwnJiaG8V+OYfb0qVyNjCI5MZEdzY2Ut8zd\n6OEGtXPB0dj0jy8Y4MtKj5xsPBdJO49oLuPJb1FuvPP+ezRt2hSAMmXKUKZMGTtdkRD35vDEAtQC\nNmutrwEopX4H6gNWiWXUqFG3XwcHBxMcHGy/CB9BQkICLZs0pNDNQyxoEM+1eBi0gdtJ5ZY+paDJ\nOhhcBAp739m+ORIOxrpx8vwh/vnnH7Zs2kRgQAC7nn2W4sWL2/dixGMhJCSEkJCQRzqHM3TeBgFz\ngdqY5wyaAezQWk9KUcblOm8TExNZuHAh3309Fo+L/7KxoxE3Bf9dg6eXwKl2kPrO7qs7YP5pxZsl\nFBW8TfwT48mcCANzF/xudRdHCHtyyc5brfVepdRsYCfm2827gamOjerR3LhxgxZNGuATfZrkm9G8\nWQ3cLP8t5XNCdk/48zy0L3LnGK0hQnvT8+UXORcXQ+jpk1SsVosdgwZRokQJh1yHEA/L4TWWjHC1\nGsvAl/oRGzaHmW2TaTkXXq8EbUrc2R9yDrqugrfKQ+cicDURvj7hxRGvEoRs3UG2bNkcFrsQqcmQ\nficwacJ3zJg+g0+fTEYpaFEK5h21LhNcBH5tAZ/950aT0Fz0PVqUij3fYcOWUEkqIkuQGosNLVu2\njEH9nyX8ahxxI8x9KNfjoOZU6FMO3qgG2Txh3xXot8mXdn2GMvKTzxwdthD3JE83O1iTBrUYWGYn\nI5bB3A5Q19KHcvYGDFsNq46DwU3hF5CD4W+/x5A3hsmzOcLpSWJxsGy+npz+IIl5u2DaZlj1HOS1\nTGdw8SY0/dWbF//3KUNefx2DweH95kJkiEveFcoqYmNjcdPJnLgKAxvChRtQdhI0DQSjCVYdg/8N\nH8Ibw6SWIrI+qbHYyOrVqxnUpz0V8ySyuD+4u8Hlm7D2MPy6E7adMXDpepzUVITLkbtCDmQ0GimS\n14s4DQ2/henb4K8jMH837A8HT89kxo370tFhCmEXUmOxkaioKEoULcCOD+PYfRoWhUJiMrSsCiv2\nQqkS8ONKaN6yJWPGTqR06dKODlmIDJEaiwNlz56dIa+/QfMxUDAH/DIIpvSFw5fg8GV4+1lISIa6\nxdbQuNETnDuX3pqCQmQNUmOxoeTkZHLn9CePXwLhN0ABzz4JX/SH/87AoMmwfwG8+Y0H+8MbUL9B\nMFWrVqVt27Yyg5twWlJjcTCDwcDrrw+lbHFvTsyCa4tg2pvg7QFvTYPB3czlerVKYs/OEJKvjOKr\n0S9QsUIJjh075tjghbAhqbHYWFJSEr2ff4a/Q9bQqW48JmDhP9CtOXz3lnk0bthB6PMJ7F9tPmbS\nbMXURYHs2XtUbkULpyMD5JzInj17aN6sMZ2fjOLNnlA2xdQpr3wBeQvAJ2+a32sNVVr70+35t9j0\nz0pOnTpF6dKlGTT4HVq3bu2YCxDCQppCTqRatWrMnPULSzb5sH0/RMfC2Usw7CtYGwpD+twpqxRU\nKRfPlMmf0rv7Vhb+fJFnOvzDkNe68vnnHzvsGoR4WFJjyWQbN27ks4/fYeOmHXgaFBVKG1kyVVMw\n350yWkOZp2DM59Ch7Z3tFy9BtXre7NlzhKJFiwLmdZqTk5MpUKCANJuEXUiNxQk1btyYNX9tJSEh\nmZ27D3DyvDeRUdZlZiw012japWr1FCwAndprFi5cyNatW2nYqBplyhSlcpVAqgaVYsnSJfa7ECEe\ngIwvt6OyZcvy9dff0+DZl3mmlaZM8QQ2bPdn+55kenaPJ73lfnLnTOLo0aN89vkHfPSNiQ7dvHB3\nh41rwxnY9znc1DzatWtn/4sR4h6kKeQAFy9e5Oe5c7l06RxVg2ri6+vLmNF92fJXtNU8uCYTBNX1\nJ1+BSjTvvI8Xh1gv6fHXiiTGvleI3buO3G4WxcbGsmXLFrTW1K9fHz8/P4R4FHJXyEUZjUbq1KlM\nw7rHGTUiCX9/iIyEdz705PipIHbt/pfNRz3Ik8+6SmMyaSrmSuDYsXPkyZOHyVMm8sEH7xJY3hs3\nNzh6II4PPhjFG0P/56ArE1mB9LG4KHd3d1at+ocL4c0JrOxN7UbZKRPkTUJyW/5YshZPLw/i0llz\nKCkJkpNNeHh4sHDhQsaMG8HczdmZs8mPWX/7MS80gEnff8KcuXPsf1HisSY1FicTHh7OuXPnKF68\nOHnymJdGfGVgXzwCfuO90dbD/n+ZlsiKeUGsW7uVmrUrMGDUVYLb+FqV2b4hni+H+LJ/33Gru0hR\nUVGsWrWK+Ph4GjduLGsUibuSplAWde7cOerVr0777nH0fEnh5a1Y/IuR78e5sWplCNWrV8dgMLAv\nsSgGg/X/v9aa6j4XuHbtBr6+5qTzw9QpvPPOcKrUz45vNsX2NZF07tKF7ydNk2eWRBrSFMqiihQp\nwtYtu1Fxz9GlsQcta8Cp/a3YGLKdmjVr4ubmRvYAHy5fMKY59uplEwYPd7y8vABYu3YtH3/2DlO3\nF+PLZfkZ9Ws+Fp0uxX+nV/HByHftfWkii5IaSxbx2pCXuZK0kA8n+1s1eUYPu4n7zdZM+9Hcz9Ky\ndWPq9jhFq165rI6/eDqR/jXOcP7cZXx8fKz2xcbGsmbNGqKjo6lfvz6BgYGZf0HCaUhT6DF27do1\nngyuQ8HAa3Tq545yg6WzTJzY788/G0PJl8881Ldg4dx8v60A+Yt6pjlH9zKnWbN8G2XLlr297dd5\nvzBo8CuUrp6dbLkN7Fp3hdatWzP9xzm3a0Eia5PE8piLjo5m5qyZ/LHkZ7TWtGvbjX59+5M9+50V\n6KvVLM+AccnUbGK9MFpstJFORY5x4vhZcufODcD27dtp27E5H60qR2CQPwDxsUbGP3+CKkVaM3mC\nS6+EKzJIEou4r4mTJjJ70UeMX1UID887XWw/fhjB1QNV+WPRitvbuj3XmVz19tPhtcJW54i8nMjL\n5fZw+uR5cuTIkeYz4uLiCAsLw93dndq1a0uHsIuTzltxX6+8/AqFcz7Bi7XPsXBSBCvnXOPt9pf4\ne747kyf8ZFV2955dBDUJSHOOHPk8KVwqO0ePHk2z79sJ31C4WAFe+l8PXhjUhaIlCvLrvF8y7XqE\nc3KKZ4WUUgHAT0BlwAT001pvd2xUWZPBYGDRgj9ZvXo1836bzem4aJ5r25aev/ZMM/w/f/58XDwe\nR4nK/lbbkxJNhJ+Jvt1vc8u0GdMYP+lTPtj8BAXLmo85HnadIR1eJXeuPLRo0SJzL044DadoCiml\nZgIbtdYzlFIGwFdrHZVivzSFHGD27NmMmTScz0PK4eXjfnv74q/Pc2hZHjb+teX2Nq01pcoVp/f0\nEpRvmNvqPJt/Pcfenzz4O0X51BITEzEajWnuSAnHc8mmkFIqO9BIaz0DQGudnDKpCMfp2bMnQWUb\nM6z2QZZOPE/IvHC+7H6c5d9EMX2q9WMC165dI+LyFco1yJXmPDXa5mfH1p3pfsaRI0fo8Ew7smX3\nJyBHdmrWq86qVasy5XqE/Tg8sQAlgStKqRlKqV1KqalKKfmz5QTc3Nz4efZ8Jo//meidNTm0sDgd\n6r/JgX2HKVWqlFVZX19fjEkm4qKS05wn8lIC2QL802w/deoUDRrXx71uBJ9HdGdcTC9qvpWbnv16\nyFwzLs7hTSGlVE1gG1BPax2mlPoGuKG1HpmijDSFXECXbh1wr3SMzh/eGQejtWbaS/upGtCWr8Z9\nY1X+lUEvcTpHGG0/q2G1/b+151kz9AiH9x+TWfKcgKsuCn8OOKu1DrO8Xwi8nbrQqFGjbr8ODg4m\nODjYHrGJB/D12Ak0eLIO187sp97z+UlONLHxx4vcOOrJgpCRacovW7GMfqvqp9levlkh5l3fyqlT\npyhZsmSa/du3b2fS1ImcOH2SimUr8NrAIVSpUiVTrulxFBISQkhIyCOdw+E1FgCl1EZggNb6iFJq\nJObO27dT7Jcai4u4cuUKk7+fxLKVf2AwGOjaqQcv9h9AtmzZ0pQtGliYF5bVpWDFnFbbTSbNyEIL\n2b19X5qnrsd9PY7RX31B7aFVyV8lN+e3hxM28V8mfDWBns/3ytRre1y57AA5pVQQ5tvNHsAJoK/W\n+kaK/ZJYsqDXhg7ikGEzHcfVstq+f/kZ/n7vDPt3/2fVFDp+/Dg169ZgwO7uBBS5k6jCD1xhVsNF\nnD5xhpw5rZOUeHQueVcIQGu9V2tdW2tdTWvdOWVSEVnX2/97l/3zL7Ji5G5uRsSRFJ9M6JyjzO+3\nna/GfJumf2X23NlU6VXeKqkA5K+UhzItS7Jw4cK7ftbhw4dZvHgx27dvR/5IZT5n6GMRj6kiRYqw\nbVMoH3z0Hh+XXERifCKNnmrAkoXLaNSoUZryEVcjyBbom86ZwL+YL1evXk2z/erVq3Tr1Z2wXWEU\nqVOcq4cjyGbwZ9GvC6VfJhM5RVPofqQplPXd+v+9112g2bNn8+Wvn9N9ZVur7Vprfqr2G9PGz6BZ\ns2ZW+xo+1ZDEqooGXzbF3dOA1pr/5uwh7N1NHDlwON1nnYQ1l20KCaGUuu+t5a5du3LjUDTbJ+7B\nZDInImOSkQ0fbiPAkIOnnnrKqnxYWBhHTh2l4fjmuHsabn9Oxd7VKdC4CLNmz8qcixGSWITr8PHx\nYcPaEM7MimBymbksbL+K70rMImmLG2uWr8Ut1cJMYWFhFGsWiJt72h/zQi2KsyVsa5rtJpOJefPm\nEdyqKZVrB9HnpX78+++/mXZNWZX0sQiXUrp0afaE7mH37t2cOXOGsqPLUrFixXTL5s6dm+gzN9Pd\nF306irJ5Kllt01rzfN9e/L1/G+XeakxgiRoc/OsIDZs+yc/T59C2bdt0zyXSkj4WkWXFxsZSuHhh\nWi97loJ1it7ZHhHDvGpT+WvZOqpXr357+4oVK+j/9kBahg7F4HNnhr3wLSfY2mUOF06fw9Mz7cx7\nWZ30sQiRgq+vL3NmzGF5u9/Y8t56Tq0+yq5vt7LgiekMemmQVVIBmP7zTEoNrm+VVADy1w/EPzAX\nGzZsSPdzzp8/z/79+4mLi8usS3E5klhElta2bVtCN22nZmwlwsefpMDuHPw+eyGfjPw4TdnIqBt4\n5087QhjAO392oqKsH7o/dOgQ9Z96knJBlWjatS0Fihbi/Y8+xGQyZcq1uBJpCglh8ennnzLvxBrq\n/tTNantSTAK/F/uI/bvuPGIQHh5O5RpBFB7RmuIDnsLN00DMiXD2955Kj4atGT96rCMuIVO47JD+\n+5HEIuwhIiKCCkGVqPhpC0q/UAc3dzcSrsWwfcBv1PAry7zZd6bY/PCjkcy7sJVKP/SzOkfC5Rv8\nXW44Z46fIleutHPTuCLpYxHiEeTNm5eQNeu5PmU/S0p+wvpGk1hc6lMa5Ali5tTpVmVXb1xP3i61\n0pzDK18AeWqWJjQ01Gp7REQEU6dO5auvvmLHjh2Zeh3OQG43C5FC5cqV+XfHHg4ePMiVK1eoUKEC\nefPmTVPO18eHmMiYdM+RGBlzezlbgG8nTmDEB++Tp3Vt3HJn45MJ4wkqV5E/F/ye7lPfWYE0hYR4\nCLNmzeK96eOotf5dVIoBeFe3HOFQt++5cPIMBoOBDRs20KnP85Tf+AU+JfIDoI1GTrw4gfo6L/Nm\nzrnbRzgN6WMRwk6SkpJo1qYlJ91vUOyt1vgUyUXEqn2c/HQpc36cQfv27QFo1bk9J1uVpOCAVtbH\nR0azu2R/Th89Tp48eRxxCRkmfSxC2ImHhwdr/lzJG0/34trwpRxo+TUlNt9k3bJVt5MKwH+HDpGt\nXoW0x+fwJ3upwpw8eRIwD+abNm0a3fr04qXBr7J582aXnt7hvjUWpdQsoCvgDYQDc4GmQD4gEpig\ntf4hU4OUGotwUY1aNuVavyfI162x1XZjXAK7ivbh8N79mEwm6j8VTFK5wnh2bIjp6g2if1xGp2Yt\nmT7lB4fP+5spNRat9QvAYMvbfECI1roGUAbwBKYopUY8aLBCPA6GvvQq4Z8uICky2mr7+S9+o269\nuhQuXJjnB/RD921BwWVfkvvF9uR9uxfF9sxgaegm5s+f76DIH02G+liUUi8AMwCttXZPsf0T4D0g\nDiistY7MlCClxiJclNaa1958g7kL5pGrb1Pc82Qn5o9QfMJj2LRuA8nJyZSvHkTpc4tx8/ayOjZy\n4XoKfL+WrevSf5TAXhzRx7LH8t0baHyvgkI8jpRSTPzqGzYsXUmnhEI0PmTiq5eG89/ufRQsWJBL\nly7hV7xgmqQC4FW+OBcvXiQqKorvJnxHcLs2tOjckZ9//pnExEQHXE3GPeo4lpRz06a92S+EAKB6\n9eppHnoEKFWqFNEnzpF89QaG3AFW+2L+2Uu5wFJUqlWTuKDSqD6t0PEJhE39jm9//IGNK1c77ZK0\nj1pjSblI78VHPJcQj51cuXLxTNdniBj8FabEpNvb44+c4cZns4mLjSX22Wb4L/gavy4t8H++Hdk2\nzOBYLm/GjB/nwMjv7VETS13L9xhggzIbqJSaZlnhEKVUDqVU6N1PIcTj7ftvJlAj0YcTJZ7h8ouj\nCe/4LmfqvMRn737AztAd+A23fh5Jubnh9d7LTJ010zEBZ8ADJxal1GDL93xAd0ADQ7XWsUBH4DfA\nC/OazADBwAVbBCtEVuTr68uKRX+wdc1ffFDrab58pj8XTp2mS6dOGPx8cQtIO+zfUKIQ1y9H8Gyf\nF2jctg3vffghFy44z6/Zw/SxBCqlwoACwGGgn9Z6pWXfX5gTTXNggGXbU8DGRw1UiKyucuXKVK5c\n+fZ7Pz8/vNwNJP57BM8qZa3Kxq/dQpKngWVVy6CKNWH3uo1MqF6NtUv/pE6dOvYOPY1Hut18l7Ld\ngGe01l0t7/8F+mitdz50kHK7WTymRo8by5gFP+P/5yTc85m7NJMOneDSk73w+m40np3b3S6btGQl\nOUZ8xtnDR9JMLP4onGVIfyHgmCWgEkBRYFcmfI4QWd7bb/6P/k2f5mq5NsS2GUjMU/24XPtZ3JsG\nWyUVAENz4KxqAAAZLklEQVT7p4nx9mLLli0OivaOjCaWB8lWfwAlLTWX8cAWqW4I8XCUUoz7fDRn\njh7jhxeHMGPYCKo98QQePTqnWzYxf15Gjx3Lrl2O/Vt+38SilJoOfIy57wSl1D6lVLu7lddan9Ra\nd9dazweyActtFawQj6s8efLQqVMn2rZtS8OatXDbsClNGR0XR9zOPazIXYxG7ToweNgwhz3IaNNp\nE5RSFYE1WusiSqkGwBSgttY64T7HuQFhwDmtdft09kulRwiLU6dOUbl2LfSsSXg0Mw941wkJxA5+\nh+SriTB5PtyIxK9rY+aO/oyOHTs+0uc5fD4Wyy3ol4AzQDVgtNb6cgaOewOoCWSXxCLE/YWEhNC1\ndy8S8+YhNncOkvccgFoNYNx08Lfcnv79Zxqt/o2/Vz5ao8Hhnbda68ta60+11rO11sMymFSKAK2B\nn2wZixBZWXBwMBdPnOSTF/ricfQsLNgI3y+4k1QAylbk7PnzDonPGSZ6+hoYjqUPRwiRMQaDgW7d\numG6fhXy5E9bYMcWrl27xpUrV+wem0MTi1KqDRCutd6D+c6TY2e0EcLF5M+fnzZt2uL58TAwGu/s\nOHUMpowlpnJ9Ovboafe4HD1LfwOgvVKqNeADZFNKzdZa905dcNSoUbdfBwcHExwcbK8YhXBqM6ZM\nolyNWlyqWxJadoSrEfDPWhgyBmO7vuxqV5xDhw5Rvnz5DJ0vJCSEkJCQR4rJaSbTVko1Bt6Uzlsh\nHlzdZi3ZXq21+Y1fNgjuCAHmBdOyD+/IzMEv0KlTp4c698N03jq6xiKEsIFihQqy3WSEnsOsd2iN\n6dQhChUqZNd4nKHzFgCt9cb0aitCiPvzUMDMMXA13HrHnzPJaVA88cQTdo1HaixCuLjIyEh+/2MJ\ntHwJelSDTgOgYHHYuga2raFVr+fsPtO/09RYhBAPJzQ0FM/S1eDFMfDpaoiMhe2boGxDGDaD0H0H\n7B6T1FiEcGE3b95k0e+LiY6wzAwbWBUCU0xZ+c8ifB0wL67UWIRwUZGRkdSo25BZey9jioqEg1ut\nC5hM+K2cTP8eXe0em9RYhHBRn48Zy9l81Ul4cQaE/QEfdYKeI6F2K7h6Hp9FX1LBx8jzzz9v99ic\nZhzLvcg4FiHSyl8skMuvLoFiVcwbjm6DFWPhWCgk3OTD/73BO2+/9chLhMg4FiGyuMTERFauXMn5\n8+e5eSMSsqdYzqtMXXh9EQA+QwryYv9+Dlt3SBKLEC5i8+bNtOv8LMm5y5CcpzyJygN2/gFNX7Eu\neHwH/j7edh8Ul5IkFiFcwJUrV3i6XSeiu8yCCq3MG4N6wYz2UKAsVGwCSsGFQ/j+1JuP3x+Bu/s9\n573PVJJYhHAB02fMxFi+zZ2kAlCyAXSbifqmM9458uDhmw19/QKj3n+PV14ecPeT2YEkFiFcQNje\nA8QVbZh2R6V2eNbowesNc9CpUyeCgoLw8kq7wLy9yTgWIZzMmjVrqNOoGT7+AeQtVIJ3RnxAofx5\n8Lh6ON3yntcOU7t2bZ544gmnSCogt5uFcCqzZs3h1TdHENtgDAQ+DTfP47XjC4olHeTshfPEv7oN\n8pS6c8DhteT4vTeXzp3KtKTi8Mm0M4skFvE4SEhIIG+hYtzsuAbyB93ZoTW+i1vRsVY+Fi9bSXKt\nfiTlqYD32U24H1zCiiWLePLJJzMtLodPpi2EeHibN29G5Qi0TioAShFb6SVOnrvMntDNDKnhRme1\ngffblObE4QOZmlQelnTeCmFnkZGRLF26lJs3b1K/fn2qV68OQFJSEhi80z/I4ENiUhJly5Zl3Jdf\n2DHahyM1FiHsaNq0GRQqWpJBn//B/374l4ZNOxDcrA03b96kXr16JF3YA1Fn0xznc+QXurZ/2gER\nPxzpYxHCTrZs2ULzNl2JbbYecpQzbzQl47VtAG0rG1k4fzYfffI5X079jdhm06BgTYi/gfvOb8hz\nYhb/7dtJzpw57R63dN4K4cQ6dHmOPy/WQ1d6zXpH4g28FpXg9PFD5MuXjwkTJ/PJF2OJjonBlBRP\nsxat+H7CeIoWLeqQuCWxCOHEAstV42TF6ZCnRpp9Aevqs3zuWBo0aACA0WgkIiICf39//P397R2q\nFbkrJISDXLp0iTfefJuigZUoWrIir78xnAsXLliVKVKkMET+l/ZgYyKJ145bPTTo7u5OgQIFHJ5U\nHpYkFiEe0ZkzZ6hSvQ6TlsVyrsQczpX8mSkrk6havQ6nTp26Xe6NwS/id+gLSLxhdbz7wa+pWrUK\nJUuWtHPkmUeaQkI8om49+rBwbzFM5T+22u52+CM6VjrGot/mAKC1ZuDgN5gzbzHxpQZg8sqHf/hS\nssUfYus/f1G8eHFHhH9f0scihJ1prfHy9iOp2RnwymO9M/EahrWFiY+NtprCYMeOHcyY9QvXIqNo\n2bQh3bp1w9fX186RZ5wkFiFs7ODBg4SHh1OpUiXy5cuXZr/RaMTDwxPdPh7cPKx3mpJxW+ZDXGwM\nnp6edorY9qTzVggbOXDgABWrPEHt+k/TqecoipcsR4/n+xMXF2dVzt3dnaCaDeDikrQnubSMCpVr\nuXRSeViSWIRI5cqVKzR8sjmHEl8itspJbpTaSHzQSf7YGE335/unKT/ms/fxOTQErmwErc1fV/7B\n59Agxn7xoQOuwPGkKSREKl+M/pJPJh8krsRM6x3GOLz3FmP/3m2UKlXKatfvvy9m8OtvERVrRCmF\nv7fiu69H07XrM/YLPJPILP1C2MDa9VuJ80tnLR53Hwy5mxAaGpomsXTu3ImOHTtw+PBhtNaUL18e\nN7fHt0Hg8MSilCoCzAbyAybgR631d46NSmQ1p06d4scfZ3Ds+FmqBZWnf/8+6XbGAuTOFQAnLqW7\nzy3pEgEBAenvc3OjQoUKNorYtTm8KaSUKgAU0FrvUUr5AzuBDlrrQynKSFNIPLTZs+fyysChGP16\nkUglvNmKe9xS/lz6G02aNElTfu3atXTqPoSY8mHg7ndnR9Q2sp/uwOVLZ5xmCkh7yBK3m5VSfwAT\ntNZ/pdgmiUU8lDNnzlC+QnXi8mwCzxS1idgNZIvuRvil02kW9dJa07P3AJas2klM7uHgHYj7zfV4\nXf6GX3/+ifbt29v5KhzL5W83K6VKANWA7Y6NRGQVM2bMxuTXwzqpAPg2QXvV5I8//khzjFKKubN/\nZNb37/NkoV8omziEHg1PsW3LX49dUnlYDu9jucXSDFoIvK61jk69f9SoUbdfBwcHExwcbLfYhOs6\neeo8CbpyuvsSqMj58+fT3aeUokuXLnTp0iUzw3NKISEhhISEPNpJtNYO/8Kc4FZhTirp7ddCmEwm\nPXPmLF2mbA3t4emrCxUuq8eMGasTExPvesw333yrffP20JTWab6y5X5CL1++3I5X4Josv38P9Dvt\nFH0sSqnZwBWt9bC77NfOEKdwrOHD32fyD38Sq78EQ30wHsSH9wluFMDyZQtQKm03wPXr1ylesjw3\nfaeDXxvzRq1RN7+niPe3nDxxwKFLkboCl+y8VUo1AP4G/gW05WuE1npVijKSWB5z586do3SZqiR4\nHQG3FA/76QT8jNVYtnTKXZvH27Zto03bZ0hyK0OiqoRn8lZyZo/jr7VLKV26tH0uwIW55AA5rfVm\nQP5kiHv6888/cfNqZ51UAJQXscYXmDd/8V0TS926dbl44QQrVqzg7NmzlCvXnmbNmj3WA9gym8MT\ni3g8JSYmsnXrVpKSkqhTpw7ZsmW7Z/nk5GS0Tn9pDK29SExIuufxnp6edOzY8aHjFQ9GUrawu7lz\nfyFv3mK0bz+cLl0+Jn/+4nz88Wju1dxt0aIFJP0BOtZ6hzbh7/krHTu6ztIYjwNJLMKu1q1bx8sv\nv0VU1AqiokKJivqbuLjdjBnzKxMnTrnrceXKlaN9+9b4GDuC8Yh5o+kCXsYXKVXSgzZt2tjpCkRG\nOLzzNiOk8zbrqFevBdu2vQCkfshvJ3nydOHSpeN3vUuTnJzMqFGfMWHiFBITjSiS6d7jOb79ZvR9\nm1Li4bnkXaGMkMSSdfj4BBAffxLIlWaft3c+TpzYS8GCBe95juTkZK5du0ZAQMBj9cyOo7jkXSHh\nuvbt28fMmXOJiIgkOLgOPXr0uO/crf7+OYmPP0/axBKFyRSXoeUuDAbDXZ9MFs5B+ljEQ3n33Q+p\nW7cl332nmDu3Iq+/voiSJStx/Pjxex7Xv38vvLzGYB6udIe7+7c0bfq0NGmyCGkKiQf2119/0aHD\nS8TEbADy3t7u5jaJypUXs3fv5rsee/PmTerWbcqpU3mIjX0J8MHb+1eyZw9hx46/KVasWOZfgHgg\n0sci7KJt224sX94QeDHVHiO+vhUIDV1FpUqV7np8bGwss2bNZubM30lKSqJLl5a88soAcufOnalx\ni4cjiUXYReXK9Tlw4GOgQZp9AQFt+e23t83jTkSW4PLzsQj7MplMTJ48hdKlg/Dzy0XlynX45Zdf\n7jlQDSAoqAJubtvS2RNHQsI+ypYtmzkBC5chNZbHlNaa557ry9Kl+4mNHQKUA/bi5/cVAwd2YezY\nz+567O7du2nQoBVxcSuAWxMomfD0HE7jxhdYsybt5EnCdUlTSGRYaGgoTZo8Q2zsMiDl1IzX8PZu\nxaFDu++5lvCcOXN5+eXXcHN7kqSkQnh4rKFChaKsXv07uXKlHaMiXJc0hUSGzZ+/kLi4DlgnFTCP\nL2me7pSNKfXq1ZOLF08xaVJnxowpx9q1cwkN3SBJRQAyQC7LSExMJDQ0FK01tWvXxts7/SeBb4mP\nT0Tr1EnFzGj0ITEx8b6fGRAQwAsvvPBQ8YqsTWosWcD06TPIm7cIbdq8Qtu2r5IvXxEmT777A30A\nbdq0wN9/FealnFJKxMNjLc2bN8+0eEXWJ30sLm7JkiU899xAYmO/AG7NhnYSX98RTJv2Jd27d0/3\nOKPRSK1ajfjvvyIkJAwDcgMX8PH5nMaN/Vi58nc7XYFwdtJ5+xiqVKk2Bw92ARql2hNKyZLTOHFi\n/12PjYqKYvDgN1mw4Dfc3f3ROo5+/foybtzn8nCfuE0Sy2PGZDJhMHig9XrSdpeZcHdvxs2bkWkW\n5EotJiaGK1eukD9//vv2zYjHjzzdnAUcPHiQadNmcv58OA0a1KJ37953XStYKYWXlx/x8deA1E/7\n3sDd3YCnp+d9P9PPzw8/P7/7lhMio6Tz1omMHj2WWrUa8d13J5g/35d3311EiRJl2bt3b7rllVL0\n6PEcHh6/pNlnMMyjc+eusrSFcAhpCjmJsLAwGjduTWzsZ5g7Um/5myJFlnP69OF0Z5WPiIigVq2G\nREQUJy6uFaDw9l5NzpyH2blz830nTRLifmSAnAubMOEH4uNbYp1UABpx44Zm8+b0pyLImzcv+/aF\nMmpUc6pWXUCVKr/x/vtPcuDATkkqwmGkj8UOtNbprtKX0smTZzGZqqWzRwFF7rrGMJgHqr311nDe\nemv4owUqhI1IjSUTLV68mIoVa+Du7o6fXwAvvzyIa9eupVu2Zs0qeHgcTWePEaPxEBUqVEhnnxDO\nSfpYMsmUKd/zv/+NIja2E1AJiMTTcx1Filxm797QNHO7njhxgipVahEb+xZwa9oBjcEwn2rVLrJj\nxz92vgIhzGQci5OIi4sjX77CREcPBlL2c2h8faczevQLvPbaa2mOW758Od269cLNrQxJSXlwd99P\nyZJ5Wbt2GQUKFLBb/EKkJInFSaxfv55OnV4lKur1dPbuo3btg4SGbkz32JiYGP78808iIiKoVq0a\nDRs2vG//jBCZyWUHyCmlnga+wdznM01rPcbBId2V1pqNGzeyf/9+ChYsSJs2bdKMVjUnwbt1X6l7\nztDm5+d31+d7hHAVDk8sSik3YCLQFLgA7FBKLdFaH3JsZGmdPXuWZs1ac+FCJMnJRfHwuI6b28ss\nXryAJk2a3C5Xr149kpMvAJdJPSLWx2cn3bt3s2/gQtiZw5tCSqm6wEitdSvL+3cAnbLW4gxNIa01\nFSsGcfRofozGBphvAwOcwM9vKceO/WfVD/LVV9/wwQfjiI19BnNnbDQGwzoKFDjO/v277jpMXwhn\n46oD5AoDZ1O8P2fZ5lQ2b97MuXNXUyUVgECMxnJMnfqjVflhw4YyZcoXFC++EoPhDby8PqJr14KE\nhW2RpCKyPIc3hVzFwYMHMZmKYJ1UzOLjCxEWti/N9t69e9GrV09iY2Px8vLCYJB/bvF4cIaf9PNA\nyuXvili2WRk1atTt18HBwQQHB2d2XFYKFy6MwZD+4DaD4RqBgTXT3aeUkieHhUsJCQkhJCTkkc7h\nDH0s7sBhzJ23F4FQoIfW+r8UZRzex5KUlETBgsW4erUJ5qUybrmOj89Mdu7cKqNjRZbkkrebtdZG\npdRgYA13bjf/d5/D7M7Dw4NlyxbTokUbkpOPEBdXGA+P6xgMexkz5nNJKkKk4PAaS0Y4Q43llqtX\nrzJ9+gx27NhD8eKFGTCgv6z8J7I0GXkrhLA5V73dLITIYiSxCCFsThKLEMLmJLEIIWxOEosQwuYk\nsQghbE4SixDC5iSxCCFsThKLEMLmJLEIIWxOEosQwuYksQghbE4SixDC5iSxCCFsThKLEMLmJLEI\nIWxOEosQwuYksQghbE4SixDC5iSxCCFsThKLEMLmJLEIIWxOEosQwuYksQghbE4SixDC5iSxCCFs\nThKLEMLmHJpYlFJfKqX+U0rtUUotUkpld2Q8QgjbcHSNZQ1QSWtdDTgKvOvgeB5ISEiIo0NIQ2LK\nGIkpczk0sWit12mtTZa324AijoznQTnjD4LElDESU+ZydI0lpX7ASkcHIYR4dIbM/gCl1Fogf8pN\ngAbe01r/aSnzHpCktf4ls+MRQmQ+pbV2bABK9QEGAE9prRPuUsaxQQrxmNNaqwcpn+k1lntRSj0N\nDAeevFtSgQe/KCGEYzm0xqKUOgp4Alctm7ZprV91WEBCCJtweFNICJH1ONNdoXtypsF0SqmnlVKH\nlFJHlFJvOyqOFPEUUUqtV0odUEr9q5Qa4uiYblFKuSmldimlljo6lluUUgFKqQWWn6cDSqk6ThDT\nu5ZY9imlflZKeToghmlKqXCl1L4U23IqpdYopQ4rpVYrpQIyci6XSSw4yWA6pZQbMBFoCVQCeiil\nyjsilhSSgWFa60pAPWCQE8R0y+vAQUcHkcq3wAqtdQUgCPjPkcEopYpjvoFRXWtdFXPfZ3cHhDID\n8891Su8A67TW5YD1ZPD3zmUSixMNpnsCOKq1Pq21TgLmAR0cFAsAWutLWus9ltfRmH9RCjsyJjDX\npIDWwE+OjuUWS023kdZ6BoDWOllrHeXgsKKARMBPKWUAfIEL9g5Ca70JuJ5qcwdgluX1LKBjRs7l\nMoklFUcOpisMnE3x/hxO8Et8i1KqBFAN2O7YSAD4GvNdP2fqyCsJXFFKzbA00aYqpXwcGZDW+jow\nHjgDnAcitdbrHBlTCvm01uFg/gMG5MvIQU6VWJRSay1tzFtf/1q+t0tRRgbT3YVSyh9YCLxuqbk4\nMpY2QLilJqUsX87AANQAJmmtawCxmKv7DqOUCgTeAIoDhQB/pdRzjozpHjL0R8Kh41hS01o3v9d+\ny2C61sBTdgkofeeBYineF7FscyhLFXohMEdrvcTR8QANgPZKqdaAD5BNKTVba93bwXGdA85qrcMs\n7xcCju6ArwVs1lpfA1BK/Q7UB5zhj2e4Uiq/1jpcKVUAuJyRg5yqxnIvKQbTtb/XYDo72AGUVkoV\nt/Tcdwec4Y7HdOCg1vpbRwcCoLUeobUuprUOxPxvtN4JkgqWav1ZpVRZy6amOL5z+TBQVynlrZRS\nlpgc1aGcuna5FOhjef0CkKE/Wk5VY7mPCZgH0601/9s7ZjCd1tqolBqM+S6VGzBNa+3ouwoNgOeB\nf5VSuzFXV0dorVc5Mi4nNgT4WSnlAZwA+joyGK31XqXUbGAnYAR2A1PtHYdS6hcgGMitlDoDjARG\nAwuUUv2A08CzGTqXDJATQtiayzSFhBCuQxKLEMLmJLEIIWxOEosQwuYksQghbE4SixDC5iSxCCFs\nThKLEMLmJLEIIWxOEosQwuYksYiHppSapZSKVUqZlFIXlVJjLXOcnFNK7VdKvezoGIVjSGIRD01r\n/QIw2PI2HxBimeOkDOYHRqcopUY4Kj7hOJJYxKMy3nqhtV5u+R4HzLdsfk8plcMRgQnHkcQiMsse\ny3dvoLEjAxH2J4lFZJYbKV7ndVgUwiEksYjMkjvF64sOi0I4hCvNICdcS13L9xhgA4BSqh5QAaiK\neQmXAOBp4A2t9SkHxCgyidRYhM1YpuxEKZUP8zy3GhiqtY61rCBQTms9HViHeSWBH4BoIM5RMYvM\nITUWYUuBSqkwoADmCaL7aa1vrf+UBMy1vK4DLAbQWveye5Qi00liETajtR52j30pV1ZoCQwE88qE\nTrASobAxaQoJu1BKtVVKDbWsU1wF80z0YF5SQmQxUmMRjyqjKxzmAQKBtsAHwFClVAzmta9FFiPL\nf4iHppSaDjTjztrVB4D3tNZ/Oi4q4QwksQghbE76WIQQNieJRQhhc5JYhBA2J4lFCGFzkliEEDYn\niUUIYXOSWIQQNieJRQhhc/8Hs1XwgRsNBxgAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "T_y = matrix([0,1,2,3]).T.A\n", "T_x = matrix([0,1,2,3]).T.A\n", "T = c_[T_y, T_x]\n", "P_y = matrix([0,4,7,9]).T.A\n", "P_x = matrix([0,9,1,4]).T.A\n", "P = c_[P_y, P_x]\n", "\n", "num_samples = 50\n", "\n", "C, T, sd = \\\n", " spline_utils.compute_minimum_variation_nonlocal_interpolating_b_spline_coefficients(\n", " P, T, degree=7, lamb=[0,0,0,1,0])\n", " \n", "P_eval, T_eval, dT = \\\n", " spline_utils.evaluate_minimum_variation_nonlocal_interpolating_b_spline(\n", " C, T, sd, num_samples=num_samples)\n", "\n", "t = T_eval[:,0]\n", "\n", "figsize(4,4);\n", "scatter(P_eval[:,1], P_eval[:,0], c=T_eval[:,0], s=50);\n", "gca().set_aspect(\"equal\")\n", "title(\"$\\\\mathbf{p}(t)$\\n\", fontsize=20);\n", "ylabel(\"$\\\\mathbf{p}_y$\", rotation=\"horizontal\", fontsize=20); xlabel(\"$\\\\mathbf{p}_x$\", fontsize=20);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the simplest case, we re-parameterize our spline to make uniform progress as we sweep through parameter space. In other words, we compute an arc-length re-parameterization of our spline, where the re-parameterized spline traverses a fixed amount of arc length, for a fixed change in its parameter value. To compute such a re-parameterization, our first step is to define a linear progress curve." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "s_linear = linspace(0.0, 1.0, num_samples)\n", "\n", "figsize(5,2);\n", "plot(t, s_linear);\n", "title(\"$s_{\\mathrm{linear}}(t)$\\n\", fontsize=20); xlabel(\"$t$\", fontsize=20);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We compute our re-parameterization by calling `curve_utils.reparameterize_curve`. We pass in the original spline samples, as well as the progress curve we want the re-parameterized spline to have. This function returns several values, but the most important value being returned `P_eval_linear`. This array contains samples for the re-parameterized spline. When we plot the re-parameterized curve, we see that our samples are spaced evenly along the curve, because this is the behavior we defined in our progress curve." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nrkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "P_eval_linear, t_linear, P_eval_cum_length, t_norm = curve_utils.reparameterize_curve(P_eval, s_linear)\n", "\n", "figsize(4,4);\n", "scatter(P_eval_linear[:,1], P_eval_linear[:,0], c=t, s=50);\n", "gca().set_aspect(\"equal\")\n", "title(\"$\\\\mathbf{p}_{\\\\mathrm{linear}}(t)$\\n\", fontsize=20);\n", "ylabel(\"$\\\\mathbf{p}_y$\", rotation=\"horizontal\", fontsize=20); xlabel(\"$\\\\mathbf{p}_x$\", fontsize=20);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can use any method we want to compute our preferred progress curve. For example, we can define a sigmoid function to give us a slow-fast-slow progress curve." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "t_sigmoid_min = -5\n", "t_sigmoid_max = 5\n", "t_sigmoid = linspace(t_sigmoid_min, t_sigmoid_max, num_samples)\n", "s_sigmoid = 1 / (1 + np.power(e, -t_sigmoid))\n", "\n", "figsize(5,2);\n", "plot(t, s_sigmoid);\n", "title(\"$s_{\\\\mathrm{sigmoid}}(t)$\\n\", fontsize=20); xlabel(\"$t$\", fontsize=20);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see this slow-fast-slow behavior when we plot our re-parameterized spline." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "P_eval_sigmoid, t_sigmoid, P_eval_cum_length, t_norm = curve_utils.reparameterize_curve(P_eval, s_sigmoid)\n", "\n", "figsize(4,4);\n", "scatter(P_eval_sigmoid[:,1], P_eval_sigmoid[:,0], c=t, s=50);\n", "gca().set_aspect(\"equal\")\n", "title(\"$\\\\mathbf{p}_{\\\\mathrm{sigmoid}}(t)$\\n\", fontsize=20);\n", "ylabel(\"$\\\\mathbf{p}_y$\", rotation=\"horizontal\", fontsize=20); xlabel(\"$\\\\mathbf{p}_x$\", fontsize=20);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also define a slow-fast-slow progress curve using a 1D spline." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUkAAADWCAYAAABczXCKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGgZJREFUeJzt3XmUVOWd//H3RwTEjREl7oLGhQEFV4RABFwSMB7j5Dgx\n0WhUNK4TJxNHE/PL0cwY4xKjxuhEHeKISVziFhdA44I7iCiLCoLGRkSDjQYM0moL398fz21t2+rq\npruqblf353XOPdVV9+l7v1yKL3d5nu+jiMDMzApbJ+8AzMw6MidJM7MinCTNzIpwkjQzK8JJ0sys\nCCdJM7MinCTNzIpwkjQzK8JJ0sysCCdJM7MinCTNzIpwkjQzK8JJ0ro8Sd1K2c46FydJ69Ik/Qvw\nnVY2P0fSsHLGYx2PXCrNuipJ+wH/EhE/aGX7dYG7gP+IiAVlDc46DCdJ65IkbQQ8CIyKiA8KrN8B\neBwYFhGLG32+HfAnYHhErKlUvJYfX25bV3UO8IdCCTJzKLAJsLTxhxHxOvAicGxZo7MOw2eS1uVI\nWh9YDOwYEX9vps1twKYRMabAuj2BmyJil/JGah2BzyStK/oa8FpzCTIzEnismXXPA5tJGlLyyKzD\nWTfvAKz6SdoW+CnwPvBBtlwcEXW5Bta8g4Cnmn4o6ZvAcaTL7C8AYyTtA9wTEf/T0C4iQtKTwFeB\n2ZUJ2fLiJGntImk90gOQQyJiYfbAYzrpbOvuXINr3h7AtU0/jIhbgVslfQ8YAhwYER81s40FWRvr\n5Hy5be11ENCXdI8PYDlwGfCXtm5QUq/svmG59CfF2ZwxwIwiCRLgXWD7UgZlHZOTpLXXcuCfgBck\n/RoYGBEXtPVSW9IhwHPAmY0+myHp2FIEm+lN8SQ5Gni0hW28Q/pzWyfnJGntEhGPA2cDPYDTgMck\nndKO7d0L3NLk4/OAB9q6zUK7oZnvvqSBwOa0nCTXAVTCmKyDcpK0douISyJiO2BX0v3I09q7ySbb\nvy8i3mznNhtbDvRpZt3+QD3Zgx1JvSVtU6BdH4qfjVon4SRpbSbpDkmzGt5HxDzg98Bfs/V9JX1f\n0jckfUfSDZIOkTRb0kRJR0oaL+lmSf/czD4OkDRd0n9m7w+RNEfSudk2j5F0u6RejX7ncEnnZOv+\nR9LGTTb7Gs0nyZHArIhYlb0/g5Q0m+qTbcc6OT/dtvbYizREDwBJXwCOBL6ffXQM8G5E3JGt/6eI\nuFfS3qSO2n/MPl8CTJK0c0R8JiFFxEOS7gd6Ze/vlTQU2Csifpb9/tdI3XHuyrrs/DAihmfrNgF+\nnC0NngAGNvNn6gbUZL+7N7AqIpYWaDeQ9FTfOjknSWuP7wCjJP0c2BhYHzgjImZm6ycBD0g6AZgG\nXJp9HkBtw0YiYoqkzYD9gIcK7Gd1gffPN3q/Kts/wLeA9yQdSrpnWEd6yNLYFODyZv5M/w1cJeli\nYGlE/LJpg6xk2gjSvVjr5Jwkrc2yhzaPt9CsP/Al0iiXqZIGNdNuTba0VtPE2Xg7yyOiWB/Nx4DN\nJW0ZEW81XhERc4Avt7DvfYHXs7bWyfmepJXTvwK7RsTjEfEj0uiUntm6vg2NJB0MvEnzwwDXxkTg\nS5J6ZttWdib7iaz/42+Af2/jPv4d+NwZpnVOPpO0cloFHJqdPa4PTI6IlZIAtpZ0ZPb5SOCrEbFa\n0jjgEGCNpGdIl8yHAKslPUjq43gIENn6PqQz1a0lLYiIaZKOB34laQ6pa9LvC8R2CfC0pF9ERKuf\nUkvahdSJ/Ia1PxxWjVwFyCpO0rmkIdD/lXMcewNnR8S/trJ9T+Be4NSIWFjW4KzD8OW2dVkR8Sxw\njaR/a+Wv/AQ4xwmya/GZpFVUdv/xv0n/Qf8kIiblHJJZUU6SZmZF+HLbzKwIJ0kzsyKcJM3MinCS\nNDMrwknSzKwIJ0kzsyKcJM3MinCSNDMrwknSzKwIJ0kzsyKcJM3MinCSNDMrwknSzKwIJ0kzsyKc\nJM3MinCSNDMroiRJUtIESUuziZcKrT9S0uxseULSbqXYr5lZuZXqTPJ64KtF1v8V2C8ihgDnA9eV\naL9mZmVVkillI+IJSf2KrJ/W6O00YOtS7NfMrNzyuCd5AjA5h/2ama21kpxJtpakMcBxpMnozcw6\nvIolSUmDgWuBsRHx9yLtPH2jmZVFRGhtf6eUl9vKls+vkLYDbgeOjohXW9pQROS+nHvuubnH4Fgc\ni2Mp3dJWJTmTlPRHYDSwqaTXgXOBHinfxbXAT4E+wNWSBNRHxNBS7NvMrJxK9XT7yBbWnwicWIp9\nmZlVkkfcNGP06NF5h/AJx1KYYynMsZSW2nOtXg6SoqPFZGbVTxKR84MbM7NOx0nSzKwIJ0kzsyKc\nJM3MinCSNDMroiL1JLM2v5a0UNIsSbuXYr9mZuVWkXqSksYBX4yInYCTgN+WaL9mZmVVkiQZEU8A\nzRatAL4OTMzaTgd6S9q8FPs2s46ptraWGTNmUFtbm3co7VKpe5JbA4sbvV+CC++adVo33XQL/foN\n4KCDTqZfvwHcdNMteYfUZn5wY2YlVVtby/HHn0ld3UxWrJhJXd0jjB9/atWeUVaqnuQSYNtG77fJ\nPivovPPO++Tn0aNHd4rxn2ad3fLlcO+9MGHCunzwwTxgw2zNYLp370dNTQ19+/atWDxTp05l6tSp\n7d5OycZuS+oP3BMRn5sJUdLBwGkR8TVJw4DLI2JYM9vx2G2zKhABs2fDlClpee45GDMGDjzwPc46\naw8++OBOYDAwh169xrBo0fyKJsmm2jp2uyL1JCNikqSDJb0CvE+awsHMqkgEvPwyPPpoWh55BDba\nCMaOhbPOglGjYIMNADZms80uYPz4MXTv3o/6+kVMmHB1rgmyPVwFyMwKqqtLZ4fTpqXl8cdhvfVS\nMhw1CkaPhh12aP73a2trqampoX///h0iQbb1TNJJ0sz48EOYOxdmzkyJ8dlnYd48GDQIhg1Ly4gR\n0L9/3pG2nZOkmbUoApYuhTlz0jJ7dlpeeQV22gn23BP22iu97rEH9OqVd8Sl4yRpZp/x3nvw4ovw\nwgvpLHHu3PTzmjUweDAMGfLp66BB6VK6M3OSNOuiPvwQ5s//fDJctgwGDkwJcLfdPl222AK01qmi\n+jlJmnUB774Lzz8Ps2alZfZsWLgQtt/+0yS4667pdfvtYR0PF/mEk6RZJ7NyJcyYkZZnn03LO++k\ny+Pdd/90GTiw818ql4KTpFmVW7wYHnsMnnoqLQsXpoQ4dCjsvXdadtrJZ4dtlWuSlDQWuJw0FnxC\nRFzUZP2mwO+BLYFuwKUR8X/NbMtJ0rqEpUvhwQdTp+ypU2HFitT/cMQIGD48PV3u2TPvKDuP3JKk\npHWABcABwJvADOBbETG/UZtzgfUi4seSNgNeBjaPiI8LbM9J0jql1ath+nSYNAkmT4ZXX03D+Pbf\nP3XMHjTIZ4nllOewxKHAwohYlAVyM6l+5PxGbf4GNIzp3gh4p1CCNOtsPvoIHn4Ybr8d7roLttoK\nxo2Dyy5LZ4vdu+cdobWkFEmyaa3IN0iJs7HrgIckvUkqDXJECfZr1iGtWZMuoW+8Ee6+GwYMgMMP\nh5/8pLpHrHRVlSqV9mNgdkSMkfRF4C+SBkfEygrt36zsFiyAG25IyXHTTeGYY+DnP4etXV66qpUi\nSS4Btmv0vlCtyBHAzwEi4lVJrwEDgGcLbdD1JK1afPwx/PnPcNVV8NJLcNRRqabi4MF5R2Ydpp6k\npG6kBzEHAG8BzwDfjoh5jdpcCrwXET/L5rZ5FhgSEe8W2J4f3FiHV1sL114Lv/1tuoQ+7TT4xjeg\nR4+8I7Pm5PbgJiJWSzodeIBPuwDNk3QSWT1J4BfA9ZJmAwLOKpQgzTq6xYvh0kth4sSUFO+5J3Xo\nts7LncnNWmHhQrjwwvSE+vjj4Qc/SE+qrXq09UzSvbLMinjrLTj55NRdZ9ttU7K85BInyK6kUk+3\nzTq8xpW0u3fvy8UXwzXXpDPHBQugT5+8I7Q8OEmakeaJHj/+VLp33566upH06nUhhx++HrNmpTNI\n67p8T9K6vNraWvr1G0Bd3TRgJ+B9evYcx+LFt3eIuVmsNHxP0qyN5s5dzOrV15ASJMAG9Oy5kpqa\nmhyjso7CSdK6tMmT4eijh7B69T+AF7JP51Bfv4j+HkNo+J6kdVErVsAPfwgPPQQ33tiNpUvXZ/z4\nUZ1inmgrrYrUk8zajAYuA7oDtRExpplt+Z6kldXDD8Nxx6VqPJdcAhttlD7vaPNEW2l19HqSvYGn\ngK9ExBJJm0XEsma25yRpZfHxx/Czn8HvfgfXXw9f+UreEVkldfR6kkcCt0fEEoDmEqRZubzxBhx5\nZJoL5rnnYPPN847IqkUpHtwUqifZtDjUzkAfSY9ImiHp6BLs16xV7rsvzQ9z8MEwZYoTpK2dSj24\nWRfYE9gf2AB4WtLTEfFKhfZvXdCaNXD++XDddaky+IgReUdk1ahS9STfAJZFxAfAB5IeA4YABZOk\n60lae733Xip6u2xZmpJ1iy3yjsgqrdrqSQ4ArgTGAj2B6cAREfFSge35wY21y8svw2GHpcm1rrjC\nNR4t6dD1JCNivqT7gTnAauDaQgnSrL3uvx+OPjpNm3DiiXlHY52Bx25bp3HVVeke5J/+BCNH5h2N\ndTR5dgEyy9XHH6ciuA89BE8+CTvskHdE1pk4SVpVW7ECjjgCIuDpp6F377wjss7GBS6sai1alLr1\nfPGLqS+kE6SVg5OkVaVnnoEvfSk9nPnNb2BdXxNZmfirZVXnjjvSvDP/+79w6KF5R2OdnZOkVY0I\n+OUvU9/HKVNgzz3zjsi6AidJqwoffQSnnJKKUzz9tOedscopyT1JSWMlzZe0QNLZRdrtI6le0jdK\nsV/rGt55J5U1W7YMHn/cCdIqq91JMqsn+Rvgq8Ag4NvZMMRC7S4E7m/vPq3rePllGDYMhg5N9yI3\n3DDviKyrKcWZ5Cf1JCOiHmioJ9nUvwG3AW+XYJ/WBUyeDF/+MvzoR3DxxdCtW94RWVdUinuShepJ\nDm3cQNJWwGERMUbSZ9aZNRUBv/hFGmZ4550ucWb5qtSDm8uBxvcq13r8pHUNK1fCscemSuLPPANb\nNy3fbFZhlaonuTdwsyQBmwHjJNVHxN2FNuh6kl3T/Plw+OEwfDj84Q/Qs2feEVk1q6p6kk3aXw/c\nExF3NLPeVYC6oIkT0xSvF1wAJ5wA8rWGlViHrifZ9Ffau0/rPFauhNNOS9XDH34Ydtst74jMPsv1\nJC03zz8P3/52GoN95ZWwwQZ5R2SdmetJWtX46KN0WX311XDZZXDUUXlHZNY8J0kru9raWmpqaujf\nvz9vvtmXY4+FrbZKZ5J+em0dnZOkldVNN93C+PGn0r37zqxadRjrr38GV1yxHt/9rh/OWHXwPUkr\nm9raWvr1G0Bd3bPA9sAK1ltvJK+//jB9+/bNOzzrYtp6T9JFd61snnrqTerrbyclSIDe9OjRnZqa\nmhyjMls7TpJWcu++C2edBccdtxvwJDA3WzOH+vpF9O/fP7/gzNaSk6SVzKpVcOGFsMsuaYKuF15Y\nh4kTd6RXr9FsvPGe9Oo1hgkTrvaltlWVktyTlDSWND67oTP5RU3WH8mnY7f/AZwSEXMpwPckq8+q\nVWkqhYsvTkMKzz8/JcoGjZ9uO0FaXtp6T7IUwxLXARaQhiW+CcwAvhUR8xu1GQbMi4gVWUI9LyKG\nNbM9J8kqsXx56ut4xRWpUs8558Dee+cdlVlheT64abGeZERMi4gV2dtppPJqVqVefRXOPDNN5fry\ny/DII6kgrhOkdUalSJKF6kkWS4InAJNLsF+roDVrUhHcQw5JlcLXWQdmzoQbboCBA/OOzqx8KtqZ\nXNIY4DhgZCX3a2332mupQs/EidC7N5x+Otx6K6y/ft6RmVVGpepJImkwcC0wNiL+XmyDrieZr3fe\ngbvuSmeJ8+alIhS33AJ77eVRMlY9qqqepKTtgIeAoyNiWgvb84ObHCxdmhLjbbeliuAHHghHHw0H\nHww9euQdnVn7dfR6kj8F+gBXZ9XJ6yPCc93kaM2adE9x8uS0zJsH48bBySenZOmyZWaJx253ERHp\nqfQjj8DUqfDgg9CnT0qM48bBfvt5ugTr3HLrJ1lqTpKl8fHH8MIL8NRTaXn00XT2OGYMjB4NBxwA\n22/f4mbMOg0nyS4sAhYtgmefTcszz6TXrbdOVb+HD4dRo2DHHf3gxbouJ8kuor4+deCeNSsts2en\n4rU9e6bO3A3Lvvumy2kzS5wkO5mINPf03LmfXRYsgO22g913/+yy5ZZ5R2zWsTlJVrFly9L9w7lz\n02vDssEGMGhQmkGwYRk40B25zdrCSbIK1NfD/PnpEnnOnE9f6+pg111TEmx4HTQINt0074jNOg8n\nyQ6mvj4lwJkz4bnn0uuLL6ZL5SFD0jJ4cFq23dYPVMzKLdck2VI9yazNr4FxwPvAsRExq5ltVWWS\nXLoUnngCpk1Ly/PPQ//+6SHKXnulZcgQd9I2y0tHryc5Djg9Ir4maV/gimqvJ/nWW6lj9qOPpuXt\ntz/tbjNsGOyzD2y8cd5RmlmD3IYl0qieZBZIQz3J+Y3afB2YCBAR0yX1lrR5RCwtwf5LrlAl7Y8+\ngiefhPvvhylT4PXXU6fsUaPglFPSfcRu3fKN28xKrxRJslA9yabjspu2WZJ91uGSZMM80T169OfD\nD2s56aSbePvtEUyaBDvvDGPHpmrcQ4fCup613KzT8z/zRmpraxk//lTq6h6lrm5XYDVXXvkoF130\nD371q43YYou8IzSzSqtUPcklwLYttPlEXvUka2pq6NGjf5YgAbqx4YZnMmrUNWyxxT4VicHMSqPa\n6kkeDJyWPbgZBlzeER/c1NbW0q/fAOrqHgEGA3Po1WsMixbN9yx/ZlUut4nAImI10FBP8kXg5oZ6\nkpK+l7WZBLwm6RXgGuDU9u63HPr27cuECVfTq9cYzxNtZoA7kxfkeaLNOh+PuDEzKyLPebfNzDot\nJ0kzsyKcJM3MinCSNDMrwknSzKwIJ0kzsyLalSQlbSLpAUkvS7pfUu8CbbaR9LCkFyXNlfT99uzT\nzKyS2nsm+SPgwYjYBXgY+HGBNh8D/xERg4DhwGmSBrRzv2VXijGfpeJYCnMshTmW0mpvkvw6cEP2\n8w3AYU0bRMTfGqqQR8RKYB6pTFqH1pH+ch1LYY6lMMdSWu1Nkl9oKJwbEX8DvlCssaT+wO7A9Hbu\n18ysIloslSbpL8DmjT8CAvh/BZo3O55Q0obAbcAZ2RmlmVmH166x25LmAaMjYqmkLYBHIuKfC7Rb\nF7gXmBwRV7SwTQ/cNrOyyGOOm7uBY4GLgO8Cf26m3e+Al1pKkNC2P4SZWbm090yyD3Arqer4IuCb\nEbFc0pbAdRFxiKQRwGPAXNLleADnRMSUdkdvZlZmHa5UmplZR5LriJvWdEbP2tVImi3peUnPlDiG\nsZLmS1og6exm2vxa0kJJsyTtXsr9r00skkZJWi7puWwp9PCsFHFMkLRU0pwibSp1TIrGUqljku2r\nVQMjKnFsWhNLJY6NpJ6Spmf/Nl+UdEEz7SpxTFqMpU3HJCJyW0j3Ms/Kfj4buLCZdn8FNinD/tcB\nXgH6Ad2BWcCAJm3GAfdlP+8LTCvTsWhNLKOAuyvw9zKS1FVrTjPrK3JMWhlLRY5Jtq8tgN2znzck\nze2U1/elNbFU6vuyfvbaDZgGjMjx+9JSLGt9TPIeu91iZ/SMKM9Z71BgYUQsioh64OYspqYxTgSI\niOlAb0mbU3qtiQXSsSiriHgC+HuRJpU6Jq2JBSpwTLJYWjMwoiLHppWxQGW+L6uyH3uS/p02/fuq\n5PelpVhgLY9J3kmytZ3RA/iLpBmSTizh/rcGFjd6/waf/6I1bbOkQJtKxQIwPLtkuU/SwDLE0RqV\nOiatVfFjUmRgRMWPTQuDNMp+bCStI+l54G/A1Ih4qUmTih2TVsQCa3lMSjHvdlEl6ow+IiLektSX\nlCznZWcYXc1MYLuIWCVpHHAXsHPOMeWt4sekIw2MaCGWihybiFgD7CFpY+ABSaMi4tFS76dEsaz1\nMSn7mWREHBQRgxstu2WvdwNLG067s87obzezjbey11rgTtKlaSksAbZr9H6b7LOmbbZtoU1FYomI\nlQ2XExExGeiedcOqtEodkxZV+phkAyNuA26MiEL9git2bFqKpdLHJiLeA+4D9m6yquLfl+Ziacsx\nyftyu6EzOjTTGV3S+tn/lkjaAPgK8EKJ9j8D2FFSP0k9gG9lMTWN8Zhs/8OA5Q23CEqsxVga38eR\nNJTUhevdMsQC6Yy/uXs3lTomLcZS4WMCLQ+MqOSxKRpLJY6NpM2U9UqR1As4iPTQsbGKHJPWxNKW\nY1L2y+0WXATcKul4ss7oAGrUGZ10qX6n0nDFdYE/RMQDpdh5RKyWdDrwAOk/jAkRMU/SSWl1XBsR\nkyQdLOkV4H3guFLsuy2xAIdLOgWoB+qAI8oRi6Q/AqOBTSW9DpwL9KDCx6Q1sVChY5LFMgI4Cpib\n3fcK4BxSj4SKHpvWxEJljs2WwA2SGh6u3hgRD+Xxb6g1sdCGY+LO5GZmReR9uW1m1qE5SZqZFeEk\naWZWhJOkmVkRTpJmZkU4SZqZFeEkaWZWhJOkmVkRTpJWtSTtIGmJpG1bbm3WNk6SVs0OBTYByjlu\n3Lo4J0mrZiOB6RHxUd6BWOflJGnVbCRpJk6zsnGStKoi6ZuSJkuaRqpkP0bSpKyyi1nJuQqQVSVJ\n3wOuAHr7ctvKyWeSVq3GADOcIK3cnCStWo0GcplHxboWJ0mrOtkMd5vjJGkV4CRp1Wh/Uvn9pwAk\n9Za0Tb4hWWflJGnVaCQwq9FE9GeQkqZZyTlJWjXqBtQASNobWFXm2RqtC3MXIKs6kgYDVwFPA0sj\n4tKcQ7JOzEnSzKwIX26bmRXhJGlmVoSTpJlZEU6SZmZFOEmamRXhJGlmVoSTpJlZEU6SZmZFOEma\nmRXhJGlmVsT/B23ylrB5o0+5AAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "T_s = matrix([0.0,1.2,1.8,3.0]).T.A\n", "P_s = matrix([0.0,0.3,0.7,1.0]).T.A\n", "\n", "C_s, T_s, sd_s = \\\n", " spline_utils.compute_minimum_variation_nonlocal_interpolating_b_spline_coefficients(\n", " P_s, T_s, degree=7, lamb=[0,0,0,1,0])\n", " \n", "P_s_eval, T_s_eval, dT_s = \\\n", " spline_utils.evaluate_minimum_variation_nonlocal_interpolating_b_spline(\n", " C_s, T_s, sd_s, num_samples=num_samples)\n", "\n", "s_spline = P_s_eval\n", "\n", "figsize(5,2);\n", "plot(t, s_spline); scatter(T_s[:,0], P_s[:,0]);\n", "title(\"$s_{\\\\mathrm{spline}}(t)$\\n\", fontsize=20); xlabel(\"$t$\", fontsize=20);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Again, we see this slow-fast-slow behavior when we plot our re-parameterized 2D spline." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "P_eval_spline, t_spline, P_eval_cum_length, t_norm = curve_utils.reparameterize_curve(P_eval, s_spline)\n", "\n", "figsize(4,4);\n", "scatter(P_eval_spline[:,1], P_eval_spline[:,0], c=t, s=50);\n", "gca().set_aspect(\"equal\")\n", "title(\"$\\\\mathbf{p}_{\\\\mathrm{spline}}(t)$\\n\", fontsize=20);\n", "ylabel(\"$\\\\mathbf{p}_y$\", rotation=\"horizontal\", fontsize=20); xlabel(\"$\\\\mathbf{p}_x$\", fontsize=20);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We call `curve_utils.reparameterize_curve` in exactly the same way to re-parameterize a 3D curve." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxsAAAF0CAYAAABL4yRvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvXeUHPd17/n9dVfH6e7JeZBmMMiBAEGQAEUwgZJIMdh6\nomXLPKZIBdtrWY48z/Y+a831yqL2rY+l9bOcVpRky5QtSpRIQZQoJkAgQRIAkUlEAoMwGAwwg5me\n6a5OFfaPmV+hulCdqzrN/ZyDA6BD1a+ru+793cxUVQVBEARBEARBEITVOCq9AIIgCIIgCIIg6hMy\nNgiCIAiCIAiCsAUyNgiCIAiCIAiCsAUyNgiCIAiCIAiCsAUyNgiCIAiCIAiCsAUyNgiCIAiCIAiC\nsAUyNgiCIAiCIAiCsAUyNgiCIAiCIAiCsAUyNgiCIAiCIAiCsAUyNgiCIAiCIAiCsAUyNgiCIAiC\nIAiCsAUyNgiCIAiCIAiCsAUyNgiCIAiCIOoExpjTytcRRKmQsUHMCUj4EgRBEPUOY+xXATyS58v/\ngjF2i53rIQiAjA1iDkDClyAIgqh3GGNbAGxRVfU7eb7lKwD+B2NsiY3LIggwVVUrvQaCsI1Z4fur\nqqr+UZ6vFwD8GMAfq6p6wtbFEQRBEIQFMMaCAF4BcLuqqnGT5/sB7ARwi6qq53WPzwfwLIBNqqoq\n5VovMbegyAZRt8wK3/8J4M9NnutnjA0zxubpH1dVVQLwvwH4d8YY3R8EQRBELfAXAP7DzNCY5UEA\nzQBG9Q+qqnoOwHsAPm3r6og5DW2miHomm/A1FbwACV+CIAiidmCM+QF8HsC/Z3nZhwC8o6pq0uS5\n/wXgv9uxNoIAyNgg6pQ8hG82wQuQ8CUIgiBqg48BOKOq6kSW13wIwC8zPLcfQBtjbK3lKyMIkLFB\n1C+5hG82wQuQ8CUIgqhrGGPfYYyJjDGFMTbCGPufjLF9jLELjLEjjLHfrvQa8+QeALuMDzLGfo0x\n9jPG2NsAOgDcyRh7kTH2u/rXqTPFu28C+EhZVkvMOcjYIKqeIhXCdcI3X8ELkPAlCIKod1RVfRTA\nF2b/2wFgu6qq6wEMAnAD+EfG2F9Uan0FsA7AYeODqqp+X1XVewE8DSABYKuqqvepqvqPJsc4AYCc\na4QtkLFBVD1FKoTrhG+Bghcg4UsQBFHvyPwfqqr+dPbvGID/mn34f2eMNZVyAsaYbza11y4WApjM\n8vydAPZkSRsGgKsAFlm5KILgkLFB1AqFKoSFyCx88xG8AAlfgiCIucqB2b+9AG4v9iCMsfsB7APw\np7rH9jDGPl3S6tJpRHZj4w4AO3IcYxxASUYVQWSCjA2i1smkELIJ3zuQW/ACJHwJgiDmKmHdv9uL\nPYiqqttwzSnG+SsAvyj2mGanQYb9HGNsBYBO5NZ5DgDMwjURhIZQ6QUQRIlkUgimwrcAwQuQ8CUI\ngpirtOr+PVLisdKmJ/PovIVMAmjJ8NxdAFKYrWFkjDUCCKqqesHwuhZkj44QRNFQZIOodTIphEzC\n9zrByxjry3BsEr4EQRBzk1tm/44CeJ0x1s4Y+yJj7OOMsUcYY98BZtKkGGMHGWP/xhj7FGPsM4yx\n/2SMLTc7KGPsbsbYO4yxJ3TvP8QY+z9mj/tbjLEfMsZ8s89/gjH2F7OP/yNjLGRy2DPIbGx8CMAB\nVVXF2f//AWZ0oJGW2eMQhOVQZIOoddIUgu7xTMLXTPD+c4Zjk/AlCIKYIzDGvqCq6v9ijHUA+HXM\nRCT+UFVVcbZr4VVVVZ+bfW0TMJMmxRjbAKBVVdVnZp8bBvAiY2yJqqppG3tVVV9ljL0EwKd7/0YA\nN6qq+uTs+z8G4COMsQsA/kRV1U2zjzcD+PPZP3reALAiw8dyAhiaff8GAKKqqtcNs519/yv5XSmC\nKAyKbBA1B2PsC7N/X6cQdC/LJHzzFbyYff+7Fi2bIAiCqG76GWN7MVPQfRzA/aqqPj373IsA/k/G\n2JuMsb8F8CPd+1QAV7T/qOrPAbQB2JLhPLLJ//fr/i8CCAH4DQBTjLEHGWMPAYhhppbQyM+RuYj9\nrwH0MMb+bwC3q6r6/xhfwBhzArgVwMsZjkEQJUGRDaIW4QqhCzMK4XFVVX9meM3PAXzN5L1/DeAf\nZgXvqJngBdKEL00RJwiCmAOoqvrHOV6yEMBmAPcB2M4YW2GMXOhQZv/ki9EA4ceYVFX1hRzv/SWA\nTsZYt6qqafUlqqoeAnBbjvffDODc7GsJwnJyGRtqjucJoix8+9vfxmOPPQbGGJNl+Y90T/XCxKOT\nSCTQ29uLkZERtbu7W3t8ZlYfgJl0KgAwNTbefPNNfP7zn8eRI0cOWvMJCKIkqFFBZkhPEUWj1y3I\n8lt68skn8dBDD2Ht2pnRSw8//DC+9a1vJQHgr/7qrzA2NgYATwLAiy++iGXLluHIkSOv8ednDj/z\nfK7/f/rTn8add9756XXr1uG+++5DIpH4NY/HA1VV8c1vfhOf/exn09amqiqefPJJiKJ4sZhr8PDD\nD+O+++5Dts9PEHmQUU9RZIOoS9xuN77whS/ga1/7Gr761a8W/P6vfe1r+NM//dPcLyQIgiBqFp0D\nKit+vx8vvPAC3nvvPYiiiHvvvReBQEB7fnh4GM888wxEUcQbb7yBl156CU6nEz/72c+wbds2OBwO\nbNy4EaqqYtu2bXA6ndi6dSvC4TC2bdsGxhg2btyIq1evYteuXRgeHsaSJUvw9NNP44/+6I+wdu1a\nJJNJPPLII6bre+KJJ7Bp0yb8+Z//OZqa8u/Yfvz4cZw5cwaPPvpo3u8hiEJhOW40snKJquDb3/42\nHn/8cTDGIMtm0ebrEUURmzZtwo4dOwoWvo888gh2797NvU0EUWnoh5gZ0lNEUTz++ON45ZVXMDw8\nDABYuXIlvvzlL+OBBx4o6DhPPvkkGGP40pe+ZMcy82bv3r346le/imeffTav1ycSCdx///34xje+\ngcHBQZtXR8wBMuopKhAnqp7HH38cX/rSl7SN/5o1a/CTn/wk5/v8fj+++c1v4nOf+1ze50okEvjC\nF76AZ555hgwNgiCIOubpp5/GuXPnIMsyZFnGoUOHCjY0qokNGzbgt3/7t/H3f//3eb3+y1/+Mv7m\nb/6GDA3CdiiyQdQ9r7zyCo4ePYrf//3fz/naL33pS3jggQdw0003lWFlBJE3ZPlmhvQUUTFefPFF\n/OVf/iUURcGXv/xlXvtAEHORjHqKjA2CIIjqh4yNzJCeIgiCqDyURkUQBEEQBEEQRHkhY4MgCIIg\nCIIgCFsgY4MgCIIgCIIgCFsgY4MgCIIgCIIgCFsgY4MgCIIgCIIgCFsgY4MgCIIgCIIgCFsgY4Mg\nCIIgCIIgCFsgY4MgCIIgCIIgCFsgY4MgCIIgCIIgCFsgY4MgCIIgCIIgCFsgY4MgCIIgCIIgCFsg\nY4MgCIIgCIIgCFsgY4MgCIIgCIIgCFsgY4MgCIIgCIIgCFsgY4MgCIIgCIIgCFsQKr0Aov5RFAWJ\nRAKCIMDpdMLhIBuXIAiCqB4URUEymYTT6SQ9RRAWQ8YGYRuqqkKSJEiShHg8DsYYgBmh7vF44Ha7\n4XQ6wRjTniMIgiCIcqGqKmRZRiqVQiKR0B7nesrlcmnGB+kpgigOMjYIW1AUBbFYDIlEAj6fTzMq\nVFVFLBYDYwypVAoAwBiDy+VKi3yQUCcIgiDshOsjURQRCAQ03aOqKuLxOAAgmUxqDjFBELQ/pKcI\nIn/I2CAsRe8lkmUZsiwDAGRZ1gwOAGnGBzAj0JPJJACQUCcIgiBsQ6+nFEWBLMvaY0Y9xdOpVFVF\nKpXSnGQA0vSU/n0EQaTD+GYvA1mfJAg9iqJowpsxBkmSIIqiZlAoigKHw6GFpzPlxaqqqv3hOJ3O\ntOgHCXVijkE/+MyQniLyRlVVJJNJTU8pioKpqSlNN6mqqv3b7XZrDi+z46iqqh0HID1FzHky/uDJ\n2CBKRu8lAqAJ2EgkglQqhYaGBu21PL3K6XRClmUwxrSCvEz1G9mEOhXzEXME2rVkhvQUkROupyRJ\ngqqqmi4RRRGJRAJ+vx8ANAOE1xlyvZOvnuJ7KlVVTY0PMkCIOibjj5vSqIiSMHqJeEQjGo1qAtrt\ndmt5r06nEwDg9XoBQAthy7KspVFx40Ffv8EYSwtnc2XAcTgcEARBM0BIqBMEQRBAerMSrktkWUY0\nGtUMD4/Hk6an+GMOh0MzVLie4oaE3tll1Dnc8EgkElrhOddTVJ9IzDXI2CCKIpOXKBaLIR6Pw+/3\ngzGGWCyW8Rh6bxE/pl6op1KpgoS6se6Dis4JgiDmNrylrV5PxeNxxGIx+Hw+CIKA6enpjO/XO7tc\nLpd2TK6nJEmCoihpOsrM4aWvT0wkElR0TswpyNggCoYXyvE0KL2XCABCoRCcTickSTJ9Py8MNwrV\nTEKdC/ZEIqHVfeQT0o7FYpAkCR6PRzNs9KlXJNQJgiDqE7NohqIoiEajUBRF01OKohR8bIfDkaan\njJGPTHoKgOZc4+9LJBKYnp7Wov1UdE7UI2RsEAWRy0vEN/ZWwYW6IMz8VHMJdf56blxIkgSn05kW\nieFQMR9BEET9YWxWwhhDMplENBqFx+NBIBAwlffF6gB9hAK4pqf4OuLxuKabjFF6bnzo9VQqlaL6\nRKKuIGODyIt8vUR2YybUeeRDH23Rt9blhpExpM2L1fVC3ZhPSxAEQdQG2fSUJEkIBoOa7rATrqf0\n6+J6SpIkLY2K6xmjnqL6RKLeIGODyIkxmpGvl6gcmNV96IW6qqoQRdE08mEm1M2K+UioEwRBVDdm\n0YxUKoVoNAqXy4XGxsaq0lPGaLsoiqaRD6pPJOoBMjaIjJTqJdIP7SsXxhaF8XgcPp+vqE4iwLVi\nPiC9kwgV8xEEQVSeTK3Xo9Go1nqd11aYUSk9xXWq0+nU0pCLaY4C0FBcovohY4MwRVEUiKIISZLg\n9XqryktUCFygm3US4ZEM3klE71XKVMynnyBLRecEQRCVg0euk8kkfD6f1no9EolAEASEQqGS0mHL\naYRkKzrP1hwFuF5PSZKkGSxG44P0FFEJyNgg0tB7iSRJgizLAPL3EtUCXKhz8u0koi/m07+PGx/c\nMKOic4IgCPvQy159KpK+9brH4ynquFxmV1p2Zyo655+bF51nmkvFyaanqOicKBdkbBAaxpxXh8OB\nVCqFcDhsiZeoWslVdM4nyWYKafP0Mh4t0RfzUdE5QRCEdRgHyfIC66mpKTgcDjQ2NtalnM2mp4xF\n50Ynmf46xeNxKjonyg4ZG0TGnNdkMglJktDQ0FCUlygTlciRLYRcRef6Sef8D/88xohJpqJzKuYj\nCILIn0yDZJPJJGRZ1qIZc0WeZtJTXFdxPWWWHmzUU1R0TtgNGRtzHKOXiDEGWZYRiUQAzAwYKtbQ\nqHajIl9yTTrnRefAjOLLt+icJsgSBEHkJtsgWVVV4XA4tKF4hcLlLZfPZgNnawG9nnK5XNfpKV7D\nAeSvp8yKzqk+kSgGMjbmKJm8RPoBfbzFLZGO2aRzSZK08LQkSVrRuT6fNp+ic4AmyBIEQXDMBskm\nEgmIogiv1wtBECCKYsnn4XK9HhxkgLme4o1f+OTyYorOOTQUlygEMjbmINm8RAC0AX1kaOQP9xBx\n75oVRec0QZYgiLlKrkGyvPU6Lw4ncsN1Cs9WyKWnjHOpOJmG4pKeIjJBxsYcQx9ONfMS8Ta3HKu8\nPHPN65GpkwgvwuedRDINcco0QZb3Xjd6lOba9SUIon6p5kGy9USu5ijcIZmt6Fz/Pio6JzJBxsYc\nIV8vkR4SDPmTyyjjQl3/+kI6iejfp6oqpqenNWFORecEQdQDZnpKVVWt9XogELiu9Xo9pT5VmmzN\nUfRF5/m02wWgZUvo9RQ3PkhPzS3I2JgDVMpLNNeUQCHXMJ+icwAZIx/6YYUAFZ0TBFHbGFuv6wfJ\nCoJg6yBZM1011/SXGbn0VLZJ5/z9XB/RUNy5DRkbdUwxXiKiMmQq5uNC3Vh0zoU+FZ0TBFHLZGq9\nLooiEokEGhoa4Ha7K7lEYpZMeorrKmPROf83f69ZfaK+5oaKzusXMjbqFJ4ipfc0FOolstKzY2wn\nONc9RvnAIxdcqOs9SnojhIrOCYKoRbjzi8ssxhgkSUI0Gs17QB9FICoL11Nmk871DrN8i85pKG59\nQsZGnaHfWEajUYRCIQDV5SUib0Vx6NOjFEWBIAjaXBR90XmmfFoq5iMIohrQ6ylRFOH3+wEAsVgM\n8Xgcfr8fbrebZJDFlMMoMxadAzOR9XyLzvVrzTQU1+VypRktRPVDxkYdYZbzygf05eslsgPyOtlD\ntk4ixRSd0wRZgiDsxmyQrKIomJ6eBnCt9TphD+WU48Z6Dv6YXk/pi85zRT6Aa/WJwDXjg+oTqx8y\nNuqATDmvPERdrJeo1PA03fTlJVMnES7YcxWdc8wmyCqKApfLBbfbTUKdIIiCyTRIlg+aM2u9ng9W\npFFRKlb5yKc5Srai82z1ibIsp+kpqvuoHsjYqHHMvER8QJ+qqggEAlWRNsWFOd345UMv1F0uV8Gd\nRPRCnXuSZFnWHqNiPoIg8sFskKy+9brP54PP56v0MokKkK05Ck+j4s1R9I4ys/pEbnjw3xlAeqpa\nIGOjRsnkJYrH44jFYvD5fGmdICqNoigAKNpRScyEut74MHYSMbYj5I/z99EEWYIgcpGr9Tp3eFQD\npKeqA31bdyD3pHO9ntLPtMpUn2hMESbsh4yNGiSXl4gP6OPe6FLPVSrRaDQthYcLDvIyFI9VUSKz\nug8zoc49Tfz3RkXnBEFkI9sgWUmStNbrvFbDivMVK19UVUUsFrtOTwHQGnEQlSNbfSJvjqI3Nrje\nylSfaFZ0TvWJ9kLGRo2hT38x8xLpB/RVuuZC3z+7oaEhrbuEJElIpVIZvRNEZcgk1OPxuFbMR0Xn\nBEFkwyyawTskulyutNbrldZTsixrco7rKb4h5SnJpKeqi0z1ifF4PG12Rz56CqChuOWAjI0aIZeX\niEczqgFVVRGPxzUvt9/v125+QRCQSqU0b7e+fkDfupWEenWg73/v8XjSohz6ovNM7XY5ZkXneqFO\n3zdB1D7ZBskmk8mqaL3O4QYFTwXlNSP6FB3uIDF60c1ajBPXU646Ta6neIoUH3xrRdE5QENxraA6\ndqdEVgrxEumpRIcN7gkCgMbGRoTD4Yzryic0auycREK9Muh/e9k6iRRSdM43JnqhTsV8BFGbmLVe\nlyQJkUhEGyRrJr8roaf0acehUAiRSCTjOjJ50bO1GCc9VVmyFZ3z740XneuNRrOicxqKaw1kbFQx\nlfYSFaoEEolEyS0MMwn1TMOAquUmn6udtjIJdf69ZSs6N4t+8KJzRVGgqio8Hg9NkCWIKiZT63X9\ngD6Px2PrGgrpdpgp7biQcxVqfOSqV6O2u9aQ7TfAnZVmzVGyFZ1nq0/kuo632qX6xMyQsVGlFOsl\nqgS8T7rV6VzkUcpMNRs3XKjnKjrPNMTJ4XBokbxsE2RJqBNEZck2SJYxVlV6SlVViKKIVCqlFadb\nQSY9ZZxvlMn4IPlVGTI1R+G/aZ5ZkW0uFf+eqT4xN2RsVBk8mjE1NQWv1wtBELROGYV6icoRns4n\nncuqNeQyPoxC3cpzz3VKMW5ypcuZRaz4+YztD4FrdR+qql5nfJBQJwj74Ruz6elp7f4D0luvezye\nvO7FcugpSZIQjUbhdDoRCoVMDSA79JTZfCOzidlE5eF6ipOPczOXnqKi82uQsVFF6L1EfHga9xI5\nHI6KeYnMNprcAEokElnTuey8oXLVD/Ci9Hg8nnc4m7CfbEajvpjP4XBoHcvyLebjx9bn09L3TRDW\noR8kK8uy5hCLRCJQVRWhUKjsczMy3eP6InC/3w+3252xvtHOtelTTTMZH7FYzLTOrZYpdwTeyvPl\n2l/o62iTyWTB9YlzreicjI0qwCznlQvJZDJZkJfI7NjFkul81WAAmWEU6twbwbte6Xuo15tQr2XM\nhHoikdDui2ydRDIV8+nbLlPROUGUjtkgWW7sR6PRomv1+LGtWJ8eRVEQiUQAoCIGUCbMjI9oNApB\nEPJqslEK1Zx+W+2Y1SfymkRFUa4rOjfqKWN94lwrOidjo8LovUT6nFcuxEsRklYLFb5WURRLMoDK\nBb+eLpfLtCOFnUK9nih3Kppe+PKIGf/eeA0HF+p6wzFb0bl+2KDT6aSic4IoAK6PjINk+X1ZSq2e\nHWlUvAi8FAOoHOldejLpqWybWKKy8HuBp7brIx/5NEeZS0NxydioEGZeIuBaRyfGZvp+V4s3xmxC\neSGUW3BnwtiRgoyP/Cn3ddCfz9j2uNBOIvr3ZSo6p2I+grges9brfDPP9VQ1zXiyowi83GTrnKR3\ntpCeqizGSFGmovNcM1rM9FS9FZ1Xh4SYY2TyEuk383zQUClYscHnikUUxaJaBVaLkZEJM+PD2La1\nGoX6XA+H5yo6j8fj1xXz5Ro2GIlE0qIeu3btwj333FORz0cQlSZb63W+mecboVJgjEFRlJKPIUkS\nYrGY1q2xUPnI68SqkWyb2Gwe9LlGtenFbHoqV5vkTHqKT7SvNT1FxkaZ0XvQjV6iYvt+2wW3rkVR\ntLxVYLUaINnathqND/0gIMJaClUa2YrOzTqVmRWd86gWYzNDM5988smaEOIEYTXZBskKgqB1dLLC\n2CgVfq+Lolj0TA8uB2pFlmczPrJFeonKkklPGdskZ6ordTqdWp0HN7CffPJJbN26teq/XzI2ykQ+\nXiL9Zr7SG3LeKhCApbMzao18hTr/vqrNs2IFtfiZ8u0kYmxjyN8rSVLNpmAQRLFk0lOiKJp2Hqy0\nnpJlGdFoFKqqIhAIlDzktlqdYLnIV0/x77NcMr0WdUchlBoN0+sps05lZqndiqJAEITr0reqnbm5\ngywzubxExYR886EYRaBvFejz+SxJ56onMgl13rKYhzjJo1RdmHUSMRad89/+G2+8gWQyiUAgUPB5\nPvOZz2Dbtm3o7OzEoUOHAAATExP45Cc/ibNnz2LhwoX4/ve/j8bGRks/H0GUSqZBslym2dV5sFiD\nhdc3er3eut/UFkqm9B2+ea1HPVWrhqIeMz1lll2RSCSwa9cubcZZoVRCT1VngmKdwGsz9IWoACCK\nIiKRCPx+f8a0qUp4jHirwEQigVAoVHQXj7kEF+q8Y4Te88cNSu4V5M0AiNyUY/PABbrH44Hf7wcw\n0xHm9OnT+Nu//Vu89NJLuOWWW/DEE09g+/bteR3zsccew0svvZT22FNPPYWtW7fi+PHjuOuuu/CV\nr3zF6o9CEEXDoxl8I8Pvu1gshunpaXi9XgQCAVNDoxJ6is/0iMViCAaD8Pl8pKdywD3oLpcLDocD\nDQ0NWjdJMz1Vag1NJSnnb6EceorvMbie4oXiFy9exNe//nW8+eabWLduHb74xS9i27ZteR2zEnqK\njA2b4NEMHo7mXqKpqSnIsozGxsaSQ765KEQRJJNJhMNhbcKqlV2w5sIGW5+CwwWDz+e7TqiPj49j\nZGQEkUikaONjLlzPSiEIAn7nd34H//RP/4RPfvKTeOqppxAKhTTvTy4+9KEPobm5Oe2x559/Ho8+\n+igA4NFHH8WPf/xjy9dNEMXA9RTPA+fNSqanp7XW63a3OC9ET6VSKYTDYTDG0NjYaGl6L1/DXJCv\n3Phwu92mempiYgIXL15EOBzWol1EdcC/u1//9V/HD37wA2zZsgX/8A//gN7eXrz77rt5HaMSeorS\nqCxGn/MKQMuRjMViiMfjWaeY6imXxyifVoF2DAasRzJFqJxOJ5LJJPa+9RbOHzsGp6Ig5XCgf/Vq\nrFyzRvM2FTrMp1zXthIpCpVOi4hGowiFQrjjjjtwxx13lHSsy5cvo7OzEwDQ1dWFy5cvW7BCgige\ns0GyQHpqUj6RbSs6SeW73lgsZlo3YgVzSU+ZwfWUoig4uG8fTh86BKcsIwlg3rJlWLN+PTwez3Xd\n/Yjyo9eN0WgUgUAAmzdvxubNm0s6rt16iowNC+FDWWKxGBoaGsAY0wrYgOqaYgrMFIFHIpG07iJG\n5roQtgJZlvHaiy9CuHwZ67q64HQ4kEylcGrfPqiyjFtuuy1rKzwS6vZjNKij0SgaGhpsORfdU0Ql\nUVUV8XgckUgEwWBQMxhKmaNkJ7IsIxKJaNGMcqVzlcuQqiZ2vvoqxA8+wA2dnRAEAZIk4czx49gb\nj+Ouj370uq5JZi1b9ZTTaTRXnWI8BdhqrP5c1SNRahhjkTCPahTqJdJjhfDMdAyubAqJtBD5o6oq\nhoaGcPzAAUQnJ5FyOhG/cAGbV6zQXuN2ubBs3jzsP3IEq9evRygU0t6brWVrNRmr9Qi/D0RRtMzY\n6OzsxOjoKDo7O3Hp0iV0dHRYclyCKATjIFme4ltK63W79RSf8eTz+WxP55rrXLlyBWOnTmFtb692\nnQVBwGBvLw4MDWF8fFzzfJt19wOuNz4I69EbOLWkp8hlWiJcIOpzXnkBWzwer7oCtnLn42ainvNi\n97z1Fg688ALaw2Gs8vsRP34c40eO4OLwcNrrHA4HQoxhbGxMe8yYS+v3+7VJ8rIsIxaLIRaLAYBm\n3Np9LeeCx8h4Ph6dLPZY+u/kwQcfxLe//W0AwHe+8x089NBDJa2VIAqFNyvhaVM8OhCJRLQ5Srz4\ntBrgkRauQ6lZiTWoqoqJiQns2r4dP/zWt/DC976H944c0eoJgybRCQBoZAxjV65o/9d3TPJ6vaZ6\nShRFANAGGNezzq8UpRgb5dZTFNkoEqOXSN/SlvdFLmVAnxUhXKPHiHuwCom0lOq54u/Xh77L2cHE\n7vNcuHABxw8cwOToKHyhEHoGB3F2717c2NcH5+xn7mxpgXD5Mobeew/tHR1pdTEpVc2asmBshccj\nH7FY7DqPEq/7qJYp57VMsWlUn/rUp7B9+3aMj49j/vz5ePLJJ/Fnf/ZnePjhh/H0009jwYIF+P73\nv2/DignCnEyt1zmltF63Spbrj8G7I7lcLoRCobLqqXpndHQUr//gB1jo8WBVczOSqRSGXn0Vw6dP\nY97gIOR3DDHSAAAgAElEQVQM10AG4CxATwHQBi3qW+4a04Ot1FNzxSkGlB6Br4SeImOjCLiXSJbl\ntA4e0WhUS6GyK4+uGPRF4JXKx63E5tfqc/KIgs/nAwAcOXQIJ19/Hf2BABb6fAhPTmL7d7+LNkGA\nc9487X09HR0YOnECoVQKkxMTaJ8NT8YSCcTdbnR1deW9Bi7UGWPwer0Ars2LyDQEqNaMj0oofaPS\nEEUR7e3tBR/nmWeeMX38lVdeKXptBFEM2QbJcicFry2sJPz8dheBzyVkWcaJY8fwwYEDECMRtHR3\nY9n69di7YwcG/X50tbUBALxuN1Y1NODQmTNILVyIqdl6QrfOIZZMpRBmDH19fQWtgTsYefZEvemp\naqBYp1gl9BQZGwWiv1H0XiK9J2ZycrLk81jlaVEUBeFw2NbhgflQy16jy5cv49CuXYjMpkH5u7sx\nuG4dju3ciY3d3fC4XJBkGW5BwNK2Npw6eBDRVas0IdAUCGDewAD2v/suGiYm4A8GMRmJYDSRwMb7\n7itZqfLJsMZhdbUu1Cu5RlEUq8phQBCFYBbN4AP6nE4nGhsbEQ6HS/bMWhnZmJqasnV4YD7Uglw0\noigKLl26hLHLl+Fyu9Hb14cDb7+N2LFjWNbWBn97O8avXsWO//gPTEYiWLlq1XXH6GlsxOiZM7hh\nyxYcfv11dPt8CDY0YFoUcTEaxZo77yx4yKnxd2Gmp7iu4jNeak1PVTrd18qaDbshYyNPcnmJuCdG\n36u7kjcKryWRZRmBQKDoDe1cCS8DwNTUFEZHR6GqKtrb29Hc3Izx8XHs+uEPsdznQ0dPDwDgSjiM\nl/7t39DjdsMz+xinu60NRxUFV69eTRMCy/v7cS6ZhHNgAOdTKbQMDODu1auL8p7nIpPxwSePFirU\nK/1bLgdm3aiKmSBOEJUkk54ya71eDbKd6ylFUeD3+4uuIax3+aRnamoKV65cgcPhQFNTE/bu2AFc\nuIA2QYCoKHgrHIY6PY2P3XSTdl06mpqwUpbx3MGDkJYtu24/IDidkCQJK1atQktbG44fPozzY2MI\n9fXh9jVr0N3dXfR6M303XE/pp5wbJ2Xr04Op6Px67OyaaDVkbORBJi8Rbxur98RYdTOUogh4u13u\n0a50OFqvUARBqLiCM6KqKg7u3YvhPXvQqapwADilqmhbuxaxSASDLhc6m5q013c0NWH+xYsYOX8e\nWLYs7Vidzc0QmptxamQEXd3dcAkC4skkjo+MYN3tt2PTbbeV+dNdE+qcTEK9WjxKlTJuatVjRBAA\ntNx4PgWct17P1Ta2FErRUzz1mKcj87TQYrFCr/Aiel4fV2lkWcbIyAhEUYTH48Ho+fMYO3wY7Zj5\nvM+dPImloRBuW79ee094YgIjZ88ivGQJmvR6q7kZTocDo1euYNGCBWnnGQ2H0btmDYCZGQuFpPZa\nBWMzA3HNjA++f9AbHkbjo1L1E+XErJGJHQ5LOyBjIwv5eIk8Hs917+MCuBIbJn27XafTqdUZVJJ4\nPK5dD30Kmr6guRxMTk7i5JHDGDt1Cg6XgJ7lK7F4+XKMjIxg/K23cHtfH4TZ1rLLFAV79+3D4bEx\nfGrduuuOtayvD7sPHYKsKFohODDz3fcuXQr/wADevXgRDkkCPB4suf12rF67tiyfMxfZhDo3PvRC\nvRqUrt3UcniamNtkGtDHZz5lahtbyciGvt2uz+dDJBKpyDo4qqoikUhociAWi6XprExzJKxGFEWc\nHxqCOBWG7HBi9NhRtMVENDkY3rkwjKnzw7j/zjvR1NgIMZHAmUOH0BCNYnx8HK2trQAAweFAm9uN\n0QsX0owNp8OBvkWLcHRsDK1tbQg1NEBWFAyPjSESDGLx4KCtn61QCjU+KvVbrtc5G1ZDxkYGKuEl\n0lOoIuCdHyRJ0orAebF6pdB7ibxer+bB4uldmfpzl3pdw+EwJicnIQgCgsEgAGB8fBx7nv8xljHg\nhtYWSLKMoXf34M3THyCVkrCmpUUzNICZaMCKri5sP3gQ0po1cBvWFPT74e7pweELF7C8q2tmSngq\nhZOjo2hasgR33XefNqSPtwS0CqsN2XyEOmMMiUSiLOHsakjbImODqAXM9JSiKIhEIlBV1fZBsoXq\nKX2zkkAgAJfLVZb23dmQJAmpVAoOhwOBQACSJMHhcGgt7QsZYlcok5OTOHPiOMbOn0XK4UT0/Fms\nDPrR7nbh5V1vY57KsOy22xAKhnDq2AlsDAUwdPAAVt/6IcSTSQScTszz+XBpaEgzNro6OnDwxAl4\nDAZcUpIQ7OrC4KZNOP3++0gMD0NhDF2LF2Prpk1Vv2nNpKf4PSDLMgCUTU9VAjOnWK2k+5KxYUAf\nzQCgRTNyeYn0lNtjpC9Qt7oIvJjPou8qIghC2tBALqCdTic8Hk9ew4HyNT5SqRT2vbkT4ulTaBcY\nRFnBFebCjR+9DyfffRdr3QJ6WloAAG5BwIreHqgXhrHjwkVsMYleBLxehFpacObSJSzVdZcCgPNj\nY7jjgQfgCwaxe98+IB5HyuHA4E03Ye2NN4IxBpfLldbmtlYwCnUe7QCQVzi7FqHIBlFLmEUzuEMg\n30Gy5dZT+gL1UChkqbOuWD3Fh9tyeae/Xjz91Ov15j3ELtP15sbg1atX8cH7hzE5fA6TkSiSY5dx\ny/wutDsd2PXWbgw4gaYVa+BwerHa68aqYADHDuzD4o23wJFMoKu1FdGxcYyPjyPU1IQYAI/bjVg4\nrJ2ru6UFbwUCuJhMYmkyCY/bjaloFMfGxjB4661Ytnw5bli3DqIoQhAE0+yMWoDrKQ53YvJoVDwe\nT9NTxnTiUqkWp1i1G4kcMjZ0WOklKlWI5yM8c7UKrESYnEd/eFcRPtjHuC6+eTX25+ZCnRt8iURC\nM074n3g8jqFTpzA5cgFOtwe9g0vR29uLg++8g+DZU9i8oGfmHKqCK1cnsfunLyAZjaF7YNF1a5nf\n2oL4sRMIR6NomY2CcKLxOPoWL8ao3w9cvIi+WUNl+OpVjAYCuGPDBgSDQay+4QZMTU3B4/HU5QaV\nfz9cKfFZH3yzYxTq9WB81FLhHTG30NfA6fUUb71eSHvzcumpRCKBWCyWVqBeyDGshl8vRVEQCoWQ\nSCSyvj6TnsplfIyPj+PU4X2YHDmHyeko4mOXccfShbihuxUvv/Yu1rIY5CsKphvbsKLBjbXtzTjy\nwXGk+vrRCIaA14PG6QiiU9OQBQEJSUKD04FELAZvRwe65s/HkePH0aCb9pxMpdC6eDEaly/H7qEh\nIJWCp6kJy+69FwsXLdLSwu2Wb+XejPPviO+DjHqKGyJWZlGUG+M1rSU9RcYGrnmJpqam4PV6tR9g\nIV4iPeW4wYyb+mq4afj1yif6kwmjwODCghsgo6OjOPTqz7HQkcKy5kZIcRlnXjuFob4BxIZOY+P8\n7rTzNjb40Tc9jXfHroAt7r/ufE6HAy3z+nDs6lXc3NCg1V+oqopjly9j2ZYtWLR4MU4cPYr9R48C\nAHo2bMBdK1dqN7kgCAgEAnVb22D8XHqBzZ83Mz6MXqVCzlduY8X4GUuZIE4QdsD1VCQSgcvl0ja0\nvP7B7XYXFNkuxz1m3NTbmdKVL6lUCpFIBB6Pp+jBu5mMj+HhYZw+egBTly8impQhTVzGnSsW4OYl\n7Xht5weYJ0xAHFFwycnQI6hY3dODDy6N4VQ0hX5hRlZ2uB04E40gNSuTfA4GWZbQt3ABjp88hSBj\n8M8W068cGMB/nD+PkM8H9/AwUqqKcUHAmvvvx8DAABRFgSRJcLlcWmObuUI2PZXJkVkN+6hCqKUI\n/Jw3NvReokQiAb/fr+WVFuol4ljhqcl0DL7eUjf1pa7DuKZMXrVir0U8HseJ9w7j0sn3AUlCQ0c3\nBtasx+mD+3BjoxsdTe1an+4mvw8vHdoDl8KABde36JvX0oy3zl3ClakptIdCac9dmJjAms23QlFV\nbN+7Fz0OBxyMYUSWEVq5EstXrYLT6cS6DRuwbsOGgj9HvZArHaMehLr+M/IOXQRRDajqtUGyiURC\nc8ZEo9G0+odCsFNPAelF4Pls6ktxMhSaCWC8XsWmYV2+fBmXLpyFqiqIpxQkLxzBiu4g2tf24hfb\nd6JNHUfkioBxtwBHNIxli9oxPDaJ8yMXEZj9qO0hP05ejmBcljEIwC040er34gOfD5ejIqYVFW1e\nH1Z1dOKl0cvYMzKCLZKE6ZERDEsSbvnUp7BwyRJMTEzA6XTipp4erbOXw+GoeDfKaiGXnio0Na5S\nTjFjNyqq2ahyuJdIkqS0lrZ8I1+ol6gc6L1E+RhB5QhPG1sAF3u9JEmCLMtwu91IpVJ455Wfozc5\njrvnd8AlOHFlcgq7t30fSTGOnvX6oUQzAmNpWzN2HjyK+NIBONiMRx0MUKEiGktg4YabsH/4Am5Q\nVLQ3hqCoKi6MjeO0y41bV65EIBDA5LJlGBkZgSLLuKm7Wyu4IwqjGOOjHJ1esmEU4pVeD0FwzFqv\n8wiiIAiW1z+UilkReDZqMRNAlmXsfXsn1LGTmNfigSQrePm1N7BxsBftTRsQT6bglhK4edl8HL9w\nBdFoOzwuAQ7mQHPQh6HRcQzHUlgx252xNeDDWBK4EJ5GPJFCY3Mrburpw89f2wFZATbG4xgSRTiW\nLsXtn3oEciIBh9OJDfPmaXqqbXYq+Fyl0M2/mZ4qpS6nElCBeJWj9xLxUCj/ofEvr5TCXjs8Rvoi\n8GJDv1ZizMPNVWSWab3RaBTHDh/A1aHjcECBK9QKR0ML2mJXsHRhn/a6juZGrIon8PrOo1DXrQBj\nXFkwOBxOdLW2QG5qwVhERG9rCxRFhiIrSEoS3p+cxsot90C9YR3ee/ddxIZHoAJoXbwYt9y4QbtZ\nm5qa0loFVivVUJhWCJmMD26AGIU6r+epxDr5+gii0mRqva4oipbmV4rX2kpnFJdJeudTtRhBVqT3\nhsNhnD75PiZHz8HpciOp+tAUP42NKxeCMYaRKxO4cX4QbY4whs+dRWtXLwCAgaEt4MZ4bBpxwYto\nSoZLcKEp6ILQHMShS+cQcihomrcUfU0teGnnW4glZWwQ44jEUmi5fSt6lq9AQpbRGAhgZV9fSd95\nremOcpJvXQ5PD64Exu8vkUjUTIH/nDM2eF650UsUjUYBoKi0KTvJFvrNhVXKxHgMq/JwE4kEdr/6\nMywSprF+sAOC4MTVqQie/cVzuHPF9T2/e9tbEE2mMBEOo6WpOe25y1PTWHf3R3D0wllcuTCCTp8X\n0WQSJyIxzL/1drS3t0OWZTTdfXdaO15KlcmNqqqWd47hhoWZUOd5xfF4PK2LiJ1K0kwJk1ImKkWm\nQbJcT/FC60qjN9B5Z6d8nE9mx7F6I5wtvTfbOozHGBsbw6E3f4rBDmDlYBOSKQnPbXseLX2tUJX5\nYE4noKpwOBh62xtxaPgs5i1cBCHQhCtTIhyMweEABpcvw55D+9HOUmjqX4MlXT14aTqCU8NXsKJd\nhTohoveeB9CxsB+KoqC3oQGdnZ0QBKFqU0/rGaPxAVyrIeV/+P6skgNxa+V3UT27apvJ5CUSRVHr\n5mTVADwrN/lTU1MVLQI33jjcMHO73XlHWPi1iEajGPrgJC4PnYAKIOX0oTc5hgHdNNOWUACLO0IY\nHTqFwf5FYLrP7BIENPbMw8ELl7G5IQDPrAC4dHUSQ4oLm1avhvvGG3Hh/HmMjF6C4PVhbWcnenp6\n0tZS752Uag2jUOfDtZxOp+ZR4v+vlinnBGEHmfQUHyTr8/mQTCYt+e1bGdngQ/kqVQSu73AIFJfe\ny69FKpWCKIpwOp0QBAFH9+/C2vkedLQ2AgB8Xje6mxvQ4grj8ugounp60NocwpGEAyoYHLIERVGw\nbPlS7NuzGw2paQysW46m5lac65yPl8+Mon9ahZAYR/umD2PjshWIRqNobW3VouzZUk8FQbC8jasd\nlDuKUo7z8evucrm0Og9BENKc2HbqKasdf+VkThgb2bxE+o08n3RdKqUKcZ6iBAAej6fkInArbsJc\nbXYzwc87PT2Nd175Cfr9cdzSG4QsKXhpx3aIfgGphd1wua4db8HCBTi8601Eo1EEdO1oJyNRdA0u\nQ9viZXj9yH6EFAlxRQFr6cT6j9ymdWVY1N8P9Pdr6QbG9eTTSYmMj8rBr7d+Toneo2SHUNffr3yO\nCEGUk0yDZHk0g2/keZ2hFZR6HK6nBEGAz+eruKwsNL2Xw42V948cxNnjexHwSIglFMRZI4T4FXQs\nTe9kGGxqhNMxjomxi+jq6YHbJWD+wCB2HDsIn9cHp8OJ5lAAvu6FOHQxgrFRCY6rV9G1agse+7VV\nWrRCEASoqgqv15uWe59LT8myTHqqwvCNv1FP8e+Jz6eyy/iotXTfujY2cnmJzHp+Vxp9ihKAkgwN\nqz6XoiiYnp4GgIIiLDwEHYvFcPr4ESwJJrCotxuKLEOSJSzobkMwfB4jw+cxf+GA9r4FPZ34hTOE\n4xdGsXLAA4/LhdGJMN4bi2DZHfehp7cXg8tXYGpqSvNcFQsZH7WB3qMEXDM+eBc5K4Q6f300GoXP\n57P8MxCEGTyFUD+gDyi+9Xq+lOIU06coASh5fVZEWVRVRSQSKTq99+iRg8DkQdyxth1erweyLOHw\nsSHsef8opBvnQdClMC9a1I8ju0fQ0XJtPkf//B4cOXMFl5zNmD4yAsUpoHPprfitj6/R5FYpupz0\nVPXD9ZRxyrmZ8cG/r0K+p1pO961bYyNfL5Eeq8LKxR7H2CpwYmKi5LWUCo8K+Xy+ghRKJBLBnp2v\nQJk8i5AHOPX2XrQPdkFsDsLrmWnL19ndjfHJEciXLqQZG9NiHP3rN8G5aAm2n3wPcjKJxu4+rLjn\nbnTMDi9yuVy2dIuqBaFej+HpQs9nTCPIJtTzMT7092st9S4naptMg2SzdR20Uk8V04xB36yksbER\n4XC44l5Wrqd4hKBQeRWPxzF69iA+enMP+FsZY1ja34v9B47gzLnzGBy4Ft3o6WzBe83zcHBcgXxs\nGA4HwxXRgaW3PoSlK1ZCkiQt3ckOakFP1Tv56CnGmDadnr9HX3DOo+jFfk+Vvu8Koe6MDX00A4AW\nzcjHS1SOVrFmFNoqsJjjFypo9Gtyu90FeXoVRcE7O17CksAUuvr6kJIlXD3XiIWBBE69tw8rbrgF\nADC/uwPnzrXjzPnzGBDj8LgFjI5P4thEEqtv/xi6urqwet36inbQMBPqZsKCv5a6fVSGbEKdGx+5\nhDr/P+9cQxB2YRbNYIzlNZuiknqKF4GX2gkr0/GLeQ9P7xUEAX6/v6hzh8NhtDaocLmEtMF3DocD\nq1etwFuHzqCjowuNQT8URcGFS+NAaCHuv+9eiKIIVVWxpLVVm29R7uL9fI0P/tupRz1VC/UMpRof\n+u8tmUxavle0k7oyNorxEtlBIcqA1444nc7rWgVasXkt5r28J7nT6Sy4q8jVq1dx6OABTJ7ej9DN\nS6FChcspwN/YAhnTCCCKqxNX0dTUBEFwYt78+bjSMIC3r6QgJSJo7OrDmhvXpEUtqkkoZhIWXFDw\nOiDyKBWPFUqjUKGuv1+j0ShFNgjbUNVrg2S5nuIpQJIk2eJwMqMQPaXPCjCm0lph/BSrp/iavF4v\nZFku+vyCICCZ4e2d7S24lOrD3nMqWPIiJIUh0LEQG7ZsQCgUqsp26ZmMD167Wg49VY8GjdVk01Nm\nEapa1lN1YWyU4iXSY6XHKNdxjK0Cq6F2xFhc53a7kUgk8hLiqqpi3563MXH2XcjiOLowhOGj45A8\nbViyfDWWLFmMQ7vfQo8nhZgYRWNjI0bGJnB6iuGue++vSoGdD1xY8GvkdrstDZNWA/WgNHIZH8BM\nKsX3vvc9pFKpknuXf+UrX8F3v/tdOJ1OrF69Gt/61reqolUpUTn4b844SNaYllROPZXPmvmg21Lm\nVFgN1+08UyGVSqVFJLIxOjqKM6feQ3R6DA3BViwcWImWlhZE5SCuTk4jFLgW1VQUBWcvxbD+pg+j\no6NDa3NaK7MNOPpOVrIsw+PxUNpVidihF830lP574vvGbdu2afu0UimXrqrumFMecGGYSqXSisAj\nkYg2oM/v9+f1o7AyFzYbvOA6lUohFAplFOBWeYzyOQb3yicSiaxrysTp06cRH96Du9f1YsVAL/zB\nIFb1t6IhdQnnzw6hs7UJy9dtwO4rTuw6PYVX3ruEk8kmrL3zgZo1NIzwzYMgCPB4PPD7/WnpBlxB\n8nbLvE83UX703xNPmXK73YhGo3juuefwL//yL1i3bh3+8A//ELt37y7o2GfPnsW//uu/Yv/+/Th0\n6BAkScJ//ud/2vExiBpBVWcGyXKHGI8MiKKISCSiyYpy66lsx+E6IR6PIxgM2pp+nO8xuFdeFEUE\ng8GCO2CdOH4Uh99+Fn2BM7h5qYy+wBCOvPMsTp08juXrbsPekyI+OHcZ4WkRo1cm8c7hYXg6VqOj\nowOMsaJmiFQj3PjgKdINDQ2azjfqKSu7n9lJPTjFjBi/J2BGT8XjcTz33HP4yU9+ghUrVuB3f/d3\n8dprrxV8/HLqqpqNbHAvEe8sFQwGi/IS2UE2wWn0yFTDzaG/ZqFQqKg1HTuwC0tCCqamwuhqa8Sx\n97yYnE6gr7MJB88OQV68BH6fBx1LbsQNWz4GQRDQ3Nyc+8A1Tj61BDQ/Ip1KKQ1BEPDFL34R/f39\nOHXqFLZu3YodO3ZgbGysoOOEQiHNcHE4HBBFMW3WCzG3kGUZ8XgckUhE00lmrdfLTTY9ZYVOsJps\nKcf5IIoiPnhvO+7e2Amvd8YBFAr60dmWws/f3ImNt/8aNt75CZw4dgQXz1+C0xVC57KNGBwcrIrP\nbyf6tCu32215ITNhHYIg4NFHH8WaNWvwve99D5/73OewY8cOXLp0qeBjlVNX1bSxwaMZ+qFxyWSy\n6OI1O8PTxRSB2x0ut6LgL5lMYveu7Tiy+2cYXO/HxasMcbUB/YsX451TJ9HpjmNsIorDJ89jWHRj\n5S0fRnNzs+bhm2tYYXzUowenkhjvMVEU0djYiE2bNmHTpk0FH6+5uRl/8id/gvnz58Pv9+PDH/4w\ntm7datVyiRqCR971srzU1ut266lC5ymVQ08Z03uLkX/Dw8Poa1M0Q4Pj8bjQ16ZgZGQEa9aswdp1\nN2n1nrFYbE7KWru7KNUDlS5Ij0ajCAaDWL9+PdavX1/UMcqpq2o2jYqnrHChMDU1BVVV0djYWHS+\nmV3haUmStPaAjY2NZe0gkOkz6VO5sl2zXNdk79u/RCh1DJvWLkBLsx+rBtqwpFPF1KWj2LhxA1JN\n/TiZ6oFr4E5s+sjD6Ontteyz1QNmaVcul0tTsNFoFLFYDMlksmJpV9XY+tZq9OcrtfDu9OnT+Lu/\n+zucPXsWFy9eRCQSwTPPPGPFMokaQ6+nVFXNK302n2PaoadkWcbU1BRkWS5Jj1qxFo6iKIhEIjnT\ne/O5JlIqBXcG1etxM0hzwAFWrGwtJD24VtKuag0zp1ipBeLl1FU1a2xwEokEVHVmAmdDQ0NVtT7j\nXqLp6Wn4fL6C+3/b5TFKJpMIh8NwuVwIBoNFX7Pp6WlMjryPNUt70L94Ed4/LyKZkhEK+tHWkEJ4\nYgxxxYUPffi/YfmKFVoxU6VaN9YC+RgffIIs1XxYg/EaxmKxtGm+hbJ3717ceuutaGlpgdPpxMc/\n/nHs2rWr1GUSNQrPgwegydxCB87ZCY9wT01Nac1UCtEJdsnzVCqFqakpOByOoob0GWlta8PIuPk6\nL42raG5pKen4c4l8jA++NyuXnpoLTjEgvUV7qcZGOXVV9ezMC0RVVc0LA5Q2aZtjpcfIrAi8Eug/\nk764LhAIFFxcZyQcDsOtTuPk8fcwOXoKMUcDtu25gn0nx3F+TMSLb58Ca1+HJctWWPVx5hxmQp0r\n3WqJfNQDxshGKV0+li5dirfffhvxeByqquLVV1/F8uXLrVgmUWPwaEYiMTNp2oo6Pav1lD5yUKk6\nQqOeisViBRfO56K9vR3MvwiH3r8ASZrZN0iSjMNHh6H6FqC9vb3kc8xVMumpaorQ1zpG48aK1rfl\n1FU1W7PBO0M4nU5MTk5adkwrbgLueS506rZd6wGuzc7gXqJ8PVfZ1nDmg5M49v4erL2zDf52N1q9\nCZy+KENqGECcyVix+Fas37ippP7nRDq84xpjDB6PpywF5/XuMTILT5cS2Vi7di1+67d+CzfeeCOc\nTifWrVuHz3/+86Uuk6hBGGPwer0QBAGTk5OW/Lat1FOqqsLpdBY1ddvq9QDX0qaA6+d5lLoGxhg2\nfegeHNz/Dn6+6wgCXiASB9p7V+PmdevSjJ25Vn9gNbzgHJgxsKkxivWIoliygVxOXVXTxobb7Yai\nKACsExClCE1FUSCKIiRJgsPhqIopxLyQPpFIWNonfXJyElcvvouB/nmQkUIo6Eco6EdLUwL7jp9B\nXFiJjatusOATEEb0v1FjIZ+iKFpfbu6tIKGeG/01sSI8/cQTT+CJJ54odVlEHcBnGlRL+ihvVsJT\nu6zo1W8FkiRBFEVbOzW63W7cdPNtiMdvQiwW0xyCyWRSiz6RfLSecnRlnAtOMaOesuLeLZeuqllj\ng8MvvlUeo2LRtwoMBAKad6bU9ZSinPhAmEQiYfn09KEzH2BxrwN9Xevw5pt7cGl8HB3NbohxCQc/\nuIr+W5ajra1N2/DyTTAJcmvIdB0dDgccDocW0uaGh34oULUbH9UQ2aiWDRhRX5RjPkY29C13Q6EQ\nwuFwRdcDXNt4Kopiy/T0VCqFI4cP4PSJPUgmImhunYflqzdjwYIF160DmMkCqKaamnqEWsKXDk0Q\nrwBW/QiLEZpmrQKrIW1IkiTN4PH7/SUZGmbXJJWMIeQVoMhxzOsJ4uywiHOTMrp7+rBszQL0LBoA\nkF6/wuGDF7nxQULEPrjxwRV4ocZHNXhiy4HVubAEYaTSesrYPlb/XKVkME/v5U1erDY0ZFnGay//\nGFRnnG0AACAASURBVI2uk/jorR1o8HdjZHQce975d8TEX8Wy5SsBXLumvKsll4t8E0yb3cIp5HdV\ni8ZHNUQ2aklP1bSxwQWEleHpQo6jr4PQ55fa1ZowH4yzM3iovJQ1mNHS1o23XzqGFX1X0dvhwsIO\nFybCIi5dPYPLk/1Y3dqq9ZiXJAkNDQ3aZ+E1LbFYDACuEyKEfRRifOgN1EoLdjuxumaDIMyolJ7i\nk8AVRbGkq5ORYvVUMpmEKIrw+XyQJMmWNQwNDcEtn8TmTdeiGL3dzWgM+fDiL1/GwOIlEARBK1z2\n+/3asbhcjMfjANL1FDnJ7KUY42OuQcZGBbByc58PRkFpVR1EqXCloqqqplRKNTYy4XQ6cfr8KG5a\n4kNn+8yE2WDAizMXL+L0hQn8t6YmRCIRyLIMl8sFl8uFZDKppfjwAnouRCRJQiKR0ArLBEGYk4OC\nyk024yMWi6UZiOVQsvx8lZyzUWrrW4LQw39b5dZTwLU2pLylbTXIU94VUZZlLb1XFEVbznXh3DEM\nLLh+QxZo8KI1NIaRkRG0tLRAkiQ4nU54PB5NTzHGtIwFvVzkOnWub3bLiVltotFJBkD7Hqsh8mE1\nxshGLBYjY6PclDOSwIvA9YKykuvhpFIpRCIReDyeklva5sO5oWN48N71OH9lDCd+OYpQgwNXI0B7\n51IsWezH6dOn0dvbC5fLpXmtjOk5fOPKN7s8tYoLkHg8XjNTSlW1stNErcJofHCjI5OSrQcPn/Ee\nSyaTZR1oRswNrDY2sqVx8CLwVCqVtQ5Cnx1Qynp4o5Zc8PRel8uFUChku+xQVRWZzzAzDLilpQV+\nv1+LYJhdD71c5GlWkiSlOcm4g6ya9VS9YOYkE0URiqKUrTax0l3Lai0CX9PGhtW55bmUgb4IPB9B\nWY4fo75mxEyplKrgMr0/kYigY34IN6yej/CUiMtXrqLf7URTUwDhd0bhdDrh9/uRTCave3+ma8Kj\nGjzMX8vGh52U07DhxgRvX6gPZ9eT8WG2uSCIaiaTfuEbekEQcrY5L1eHLGN6r9GYt0tP9c1fhjMn\nDmHBvLZrawEQmRZx/pKCDbcvQCAQSPOO55JfXMbxz0B6qvLw3zjPMqnFxii5sGPORjmpaWODY7fF\nalYEXo715BLAmWpGykFb+0JcvHQSwQYnThx7F1CuwuVUcOq4jIPvtWPTPaVPYzUzPvQb3WosGqtn\nzCJRVhsflfYWEYTVWJ1GpT+mHv2G3u/3l22QbK7PZZbeWy4WLlyI4+8vwJ7957BqWRe8PjeGL47h\nnQNjWLvhVxEMBgGUprNLdZLVq7wrZ3MR47ly1SYCpeupSkNpVBXAzlzYYjf0VoSns5FIJPKuGbHj\nxliydDmef/Z1DJ/9BTavd6O5OQRFBt7aH0Zjk4R3976Bu7feb+k5Cy0aI+ylGOOjGiMG+khRpWpG\niPrHamNDfyz9MLxCNvR2RzYKSe+1Yx2CIGDrRz6BA/t34we/2IWLF4YQicbQM385+sFsSZksxklW\nLsq9Sa5k7Z2ebMZHKU6ySnaj4r+jWoGMjSzH4q0CK1UEbpYLy4vrJEnKa3ZGqWvOdG0bGhrQ0XcD\n9u/6JSTE0RiUMD7pQN/8xfjco4vxX8/vwdTUFni93rS1W3kNMxkfkiSlhcXLVdw817HC+KhEZKMa\nvFRE/WOXnuJF4HYOw8t3LZxc6b1mx7B6DRy3240lS1fhvSO7sXJ5A9asWgDGgBOnnsWPjr6NB3/l\n05a33DWuLZeTDJj5HssRoScdaJ/xUW6qcU2ZqGljw+qaDY6iKIjFYiW1CrTDY6TPxW1sbKzoD01R\nFESnL+GhBzagpTmIZFJGS3MD/P4ZL1F3B8OVK1cwb9487T12r9co1CVJQjwerykve7VRyuY/m/Fh\n7D5W6WiUvuiWIOzCyt+XqqqIRCJ5O57MsENPVTK91wh3zr3z9k4sXTCG2zYv0Z6b19uMt3afxZ49\nb2Lz5jvKtiYz44O3JuZOMmOxeS1tKmsRswYA2YyPSjnFjBH4WqKmjQ2O1V/69PR0ya0CrRDi/Biq\nmj6QqZBcXDuUCS+U9/kbISsOdLSHAMzcAGNjY4jH4xgeuYrB1dcK6CohLLmHKN/i5loxPmq1rsHM\n+OAeJb3xoaqqFo0qx3eivz+oExVhNfqaDSuJRCJwu90lO56s0A/6bIBiWsLb6ZxzuVy4eOEQfuOh\nnutec8Pqbjzzo7ewadPtGc9vt7zlxzYrbq5lPVVOrPyO8o3Ql1tPGam1fUDdGBulCireKlBVVfj9\n/rT0n0rCvVd2DWQqdC36jiIrV92It3bswZIBGYlEDIcPvwWvZxqxWALvH3NAdv4XPvrRR+D3+yu2\nZk4+G13qIFJezHKbU6kUUqlUxsiHXUKdf9fRaLQqfq9E/WGVnuLRWq/XW/Jv1QoZxz9XqVEWKzCm\nQPv9frhcLshSHH5/+3Wv93pdkOW46fdSKfmfzcteTplIzGC2d+D6qZwGYa0ZF0Zq2tjQe4zy7fNt\nhiRJiEaj2o/ECkFphWLhnRO8Xm/FBjLxz6EvQOSh8d7eXvQsuBvP/fRlKIl3sXI5kEgK+GA4gN//\n/ZsRiUzjZy9+B7/yq58v+7pzUWoHkblCOQUcF+gOh0Mb+GgW+eBDH/lrrYSMDcIuStUJsiwjGo0C\nQFoaTiXXxNclyzKcTmfF0nv1aZB8DpbeOdfavhDnh8cwvy+9S+KFi5Nobl1QtYW2tewkK2eL9nKi\n11OVyppQFKXmrm1NGxucYgWmMT3J7XZjenq64vlw+uI6Pq+iWEo1xPh6wuGwaUeRzbfegdcSCva8\nfQzB1hDa2prx4EO9CIVmIkPvHT2NoaEh3HDDDWlrqvQ1NpLJ+JAkSesgwoU63+hWi1CvJ/TGTS6D\nUJZlSxSt/pyiKNZUO0Gi+tH/novVU8lkEqIoakXgvJVsJdHrT8ZYSQPGrNIJU1NTpnOwblh/F954\n4//DvQEvmptm9OnEpIidb03ghpsfqvi1zBdykplTSa9/vunBpRof+s8YjUbh8/ms/ii2MmeNDe6p\nN/b+tkroFXscvffK5/NpVnIl4CF7AFnni3jcLtyzdRA3rp933XPdXQwTExO2rtMOsrUvNGuzWyvK\nqpYph6IlY4Owk2L0lCiK16UnVVpP8dkZiqKgoaEBsVis5LUUCzd6AGjGmJH+/n4k4r+JF36xDaGG\ncQAq3j8+gZTiwNjUP+HVV3xYsHAjPvzhj5V59aWRr5OMF5zXeipOtZDtOmbTU1YZH7U2YwOoE2Oj\nUHirwHx6f5cTYwtDSZJKPmYpyoSnTQHIWjQbDDXi8ohscgwZIyMxNLVWx/UthXzaF/JwKg0YLA9W\nGR9Gj1GtCXGiNihUHvBGHC6Xq+LdB/XwdbndbgQCAU32lUqxUZ9oNApZntE/2fTU8hUrsWTpMoyO\njmLnzlfRP/AW7r6zA+3tAUxOxvD6jp/jxz++igcf/M2qudaFko+TjH820lPlwSrjw6inai3dt6aN\njULD0zyfM5VKZez9XQmPkX5dxuK6SnjM9YOYvF4vJicns75+cHAQ77ztw+XL0+joCEKFijNnPsCB\nQwfwi9cTmDc/hUujp3DH7fejtbW1TJ/CXozGhyiKcDqdWvtCwL4+3eX0TpXbE1Zqq91CjQ8jFNkg\n7KIQPcXTaDNFlCulp3Ktq5R1FIq+21QoFMqppwBoackT4/vwmU8vgts9I78bG734yD3z8dzzB3Hm\nzGYMDAwUvJ5qxKineKYCz1rgzjGeHkxtdu0nH+Mjl5OsFvVUTRsbnHwEZr4zKsotxPXF6aFQKM2i\nLfdNb+w25Xa78/oMPp8Pd2/9NJ7/6bcwOHAVMfEiTp89jhSa8Af/fQvaO3w4cewkvv/Db+DRR/6k\n5nIN80FfuAzkHhJUa8VdtUi+xgcATdBbIcTD4TA++9nP4siRI3A4HHj66adx8803l/x5iNqkEKdY\nvjMqyq2n9Om9xnWVuwavlFbwADA0NISBfmiGBocxhuXLXBgaOlE3xoYRbky43W54PJ40PcVT4WpR\nT9WSU8xIvnqKR6l4Bkyt6am6Nzb0G+hiBJNdmBWn23Gz5KsIzLpNGdebbX39/f3o7PwzHDy4D8+9\n8DX8yic3Y+36efB4BaSSSdywvg+XR0/h4KH9uOXmzaV9qBogU/tCfdjUOLiJsFdpZEoxiMfjSCaT\nWL9+PVpaWtDT04OVK1fi1ltvRTAYLPg8f/AHf4D77rsPzz77rGbAEHMbvsnLpqe4Pih0RoXdlGNC\neSFRH542VWwr+JmNm/lzijK3ahoKnaRdiPFB9SHFkcn4iMVikCQJH/3oRxGLxdDS0oLnn38eW7Zs\nQXNzc8HnKbeeqg2zNQP6H7KZoJJlGdPT00ilUgiFQnkZGuXwGPGNfSKR0NZldlOWy2OUSqUQDoch\nCAKCwWDR0ZWGhgZ0dfVi460LsOlDA9o0cc7iJSGcv/C+ZeuuFfSdKnw+HxoaGjSlzfOfRVFEIpGA\nJElVVWxezwqDfy+MMfj9fuzfvx8f+9jH0NDQgKeeegrd3d144YUXCjrm1NQUdu7cicceewzATIvS\nUChkx/KJGsV4fxv1QT4b+nLoKb6xF0URwWAwY31jufSUJEkIh8NgjJkaGvmuY9GiRfjgNEM8nkp7\nXFFUvH9UwsDA8oKPWS9wPcVnuPh8PjgcDm0zGo1Gq1JPlZtKtIQHZhogvPzyy/jsZz+LYDCIb3zj\nG1iwYAH++Z//uaBjVkJP1U1kwwifZFqoN8Zu4aIv+ivX7Ix8oj6ZalgKRRAEJBPXWu0yQPMiJRMS\nBKE6IkuVhNoXVifcEHzkkUfw8Y9/HLFYrGBZcObMGbS1teGxxx7DwYMHsWHDBnz961+vy9RBojDM\n7mF9fVwh+sBuPaVP7823ON2uDVipaVNGgsEgVq25Hz/80Y+w5bYW9PaEMDYexevbLyAY2oJAIIAz\nZ86gqanJ0rqUaqCQ2Rf6lCv+3mrVU/XsFNPDv4+mpibcd999+OIXv6h9F4VQCT1V05EN4PrwtKrO\nTDKNxWJZvTHZsMNjxIvrIpEI/H4/GhoayuK9ynQORVG0qE9jY6MlhgYA9PX1QZxuwsXhcPr5VAVv\n7ryEqbCC7Tu249KlS3PaM6KHGx9ut1vb8HIBz1MYYrEYkskkZFlO6yhSb1Q69zYajWrzAnw+X8Ed\nPyRJwr59+/B7v/d72LdvH/x+P5566ilL10zULlym86YgkUgEgUAAfr+/Ive0mZ6Kx+OYnp6G1+vN\nW09ZvQ79erg3Pd/shHy47ba7sHrt5/DaL0P4+j8M4/ltDngb7sVUdArf/u5f4pdv/x2+9W//Az/4\n4XfSujLOZcz0FM/K4HqqWiP0tY6ZnuI1Gy6Xq+B030roqbqIbHCsaBVopcDnN1uueohyo/em5WOM\ncUWQz7VxOBz48NbfxE+f+0fctDmC+QsbMTY2hRd+tB8fnErigU/4EWUH8cNtIpYsvAsPPfiwrdej\nFgWesYOIsX0hMNNVhNd8UPtC6yi1QLyvrw/z5s3Dhg0bAACf+MQn8NWvftWq5RE1il6GSpKEWCyW\nswg8n+NZiX52RrH1EFZi7DZltXNu9Zo1WL1mDYCZlOv/9+//GivWXcFDv7EIguCAJCn45WtH8F/f\n/xd85vE/rrjerjb0EXreTEZf76EoivZ3vempSkdSYrEYOjs7i35/JfRUXRkbkUik5JZ8VubCAqUV\n11kV2dBHfaxOmzJjcHAQgcAT2L1nB/a9fQxnz47BEwzg//r7m+GZ7QBy46YYfvqDX+Kd3X3YdMut\ntqyjXgSb0fjgXdV4m13evpAbH7XaZpefr5wYP58oiiX1L+/s7MS8efNw4sT/z951x1lRXu1nbi97\nd1l22WUXpEhHKVIERUBK7F0UjN1oDCoajRpbYsmnxli+WGJMYgvRoH7RqFgQEQtBjCYoigXpsIJ0\nttw6c+98f6xneHd27r0zd9q9l3l+v/yIu3tn3pk7c857znnOc77FwIED8c4772Do0KFGLNVBiYMq\nGqSRr0cUxOieDb30Xi0JqVyfB4ynTanBmjVr4PavxxFThkDMtK/D43HhiCN74u8b1mLt2rUYMGCA\n6esoZcj9VDQahcfjkb5P+SDccgo+zIZSZUMP5ckOP1XywQbRgQB0mlFRCIzMGPE8n3Omh1oYseGz\nurrS0NCAk0+aBUEQcOfvrsGPZx/YQWrQ63XjiOmNWPh/b5sWbJQryKjTd1huMrt2OiAjpG8feugh\nnH322eB5HgceeCCeeuopg1bnoFRB9lcURYl+ohdG+SmS2zV6dkYhoInpetSmCsHmpk3oN6h9zoSI\nffeV4zj0G+jCd1uanGBDI+S9iayfMnoWlR1JMTv9aiwWk+i+hcJqP1XywUZbWxt8Ph/S6XTRRMkk\npymKoq6NvZHZ6ebm5oInpusJwNoDrjbU1ITACwJcjEGpb4hgb/Mq20uSpY5sMrtEu2KNfikGH2ZC\n/uzF43HdRnzEiBH45JNP9C7NQRmBmq0zmYwh758R9pLkNPX6KVqP3uBHFEW0tLSopk1lO0YhCASC\n2LUzIzVBsxvfaBtQV+kIPOiFmTK75Q4lP6U3KWa1nyr5b5OkAmnoiV7oMZpULiSDafcLw5Yv7WpC\n9Pl88HkqsPW73cj8kNGgrMbWpmZ0qapzAg0DwcrsUoMnvR8kX6ilic/uhm2rYcSwJAcO5IhEIgiF\nQkXhp4B2ei/JnbPSmnaA/BSwTxHO6n7LYQcPwzcrOeza2frDPCQePJ9C894EvvkCGDJkSP6DONAE\nJZldt9vdQWY3kUg4zeYKKEU/VfKVDZYraqcRZ4cNRSIRZDIZZDKZ/B9UuR6thpQt23McZ1p/Rj7w\nPI+Rw6fiX4vfwEln9ofX1559j0Xj+GBhExrrpmH+a69CFDMYOGAwBg4c6GQ08kDL8+DI7OaGGRkj\nBw7koGesGPxULBaT6L3UsG7XetimdAC2Dd0NhUIYP2YGnnv6Hxh3RAj1DWFs3dKKjz6IYfyhZ8Ht\ndqO1tVWqfBbCEHCQHVRJYiv0WvxUuSfFlHoLS81PlUWwQf/aFf0qqWZQ464dYNWm/H4/WlpadB9T\n67WwTu2w8ROw+N0W/PWRf2HgMC8yooivlsfRtqcCW8MLMXhMEG43hxffmo+KRQNx/jmXIhQKlVQT\nWalkXrIFH4IgSMohLpdLajYvlesyCnZzcR2UN+z0U9Sb4XK5UFlZCZfLhXQ6XRR+MxwOY+/evbZs\n4kg0ZezY8Rg0aCj+/e938fWnW1BdPQQnHDMaBx54IBa/uxAf/vsNwB1FKunC0AGH47hjT0UkEikp\nP1Uq0Joks7sibjWM6NmwGiUfbBgNLc6ANVTy5jo7Mlg0yyOZTEpN6UZVV7SAqiocx6GiogItLS04\n84xzsWHDRKxdtxbggMEH7sbq71/HzEsPhs/f/hhOPErEGy98g0XvvIkTjj9VsYmsmDeCpWjslIw6\n2+9BFTpSvDLbqdqdMQJK83t0UNww+pnS6hdSqRRisRiCwaA0G0HrcYxcjxlqU1qvhaoq1LOyd+9e\n9OrVCw0NP5buTywWwz9ffh47Y4txwdW9UF3TG7FoCh8s/Bhzn9mCSy+5FoIgSEpLZigCliqMtOW5\n/BQlyehcVvkpK6FU2Si1YKN4d24aYbXRZIfiVVZWFoWKR2trKwRBMHRIn1bwPI/m5mZJQpFVE2ls\nbMSkiZMwaeIkrFn/KSYc00MKNID2ez/5uAPx2VcfwOVyIRwOSzzOdDqNeDwuDXhyeJzmgJSu/H6/\nxDFn5QvZAYMUhJQLyulaHBQnjK5sqOm5Iu57JBLRLL9uNCgRZfSQPq0QBAEtLS1wu92IRCLS5pSV\n3wWAXbt24ctv38GMCwaguqZdEjsU9uHoU/rBU7ERq1evRigUQigUgsfjkfxULBZDIpEAz/OGJPwc\ndITcT7GVeLmfMqt6Z+d7lEqlbN9zakXJVzbsoFGpGYpnZfBD61Ga5WHVfck2wyPbufc070BdQ79O\nP6+I+OENtDukrl27dlJacvoNrAVllEhSmlUQicfjAIytPBWDhGGxPENyVRwHpQ8j/UI+qBmKZ6Wf\nYtejNMtD76wONWCrKkpSv/S+0bWsX78e/YZ64fO5O/3dkENCWL1mJUaMGKGoCCgIAgRBQDKZdPyU\nBXC73R32HeSnSBmU7j2JIpTSd6D0XhQLy0Otnyr5YINghdFUoinZCavWk+/eysvR2V4C9mGs6dod\n3zc1o/+Qug5/09qcgJD0IBKJKH4+X79BuRt0u7PvjnyhdVAIglwARNHuh8CBZrBJMaMy3dk257no\nvdlg5iY/3wbfKOTzU6yIi9oZHi6XC3xK+ZgCL8Lt7ryFoo0XXWe2JBll4620kftLbwNVPqj6YXSS\nbH+5j2qg1k+VTbABGLsRkz9MbHOdGk1ys4MfrUP6zHo5KFvl8/k0KXSMHz0d77/xJHr07oJgqN0o\np9MZLH51LcaO/BEAYPXq1QCAPn36KAZSuXiclM0A2is/5cajteo68j03+TJ6ZPTVBIB27KHZ60un\n00UTHO3atQt/+MMfMHLkSAwfPhx9+vSBKIoOH6MMYNRzruQbWL+gZkNtJKc+m58itSk16zHLBpD/\ndrvdmmZ4DBo0CG8tFtHakkSkch/lK53O4PN/x3DqsaPyHkNNXxzQ7qdKMeteCsg1i6oUkmRsBZ7W\nXwzQ4qfKJtgwszydTCYVm+vywawHIhdtSo5iyVbJ78Xw4cOxZ++JePKe1zBgZABeH4e1nyfQo3Y0\nKrpV4Ze3XobKehEQgbadbpx63LmYcPgROc8hz2ZQFkPJoJBRd2Ac1Gb08lWf7PpeotEogsHiGN6V\nyWSwfft2vPzyy1i4cCH+8Ic//ArASgBfA9goimLc5iU6KABmPtupVArRaLTg4a1GIx9tSg6z1luo\n/waAcDiMKRNn4pk/Pospx9eiV98u2Lk9ig8Wfo+GmsPRv39/zeth/RSwr+JCQxaB4t74qoWV2X8t\n5yI/pUTPVkt7K4bNvt3vN6DNT5V8sGFmeRpo34AIgoBIJCIZBy3rMnItdtK42JdLSzk6233gOA7H\nHnMixo87Al999RUEQcARZ/THtu3b8H9vPYSZ1w9FTX07lWrHlha89OifUBGOYMSIEarXTEY6EAg4\nPFobkI32xiqIsN+BHU6VdVLFpF3erVs3PPLII1i1ahXeeecdABgK4EwAewAs4Djub6IobrZ1kQ40\nw8geOjoW+YVUKlWQXzCiV0Lup6ygTSlB7qdIfl2N/8723UyeNBXdartjyeI38OaOjaiMdMW4MRfh\nsPGHS/ds27ZtWLVqFdxuN4YNG4bKykrVa6ZjUCDEUn60VocdaEcuP5UtSUafswrs+1kMgQ6B9VOL\nFi0CgIPQ0U/NFUWxCSiDYINgtBGnKZYejwdVVVUFP1hGRfdaaVMs9DoTOZ2stbUVHo9HUzk6G2pq\najBx4kQA7ffq6b8/immz+kqBBgB0a6zElJm98eb8lzQFG/JryJZ1V5ov4eimGw/WqPt8PkX5QqA9\nQ2vHdxCLxRAKhSw7Xy5Qxqhv37647LLLcNlll53FcdwBAG4CMBrASI7jLhRFMWrzUh2oAJsUM9JP\npdNpRKPRDrMzCjmOUWvSSpsych3ZaM+F3hd2TcOGDcOwYcM6/T6dTuNvzz6BFd8sxoCRQaQSIp5/\nJYXjpp2DY44+rqBzqhVF8Xg8jp8yAWqSZEC7n7LjOygmJSrWT11++eW4/PLLZ2XzU06wIQNliqLR\nqC4NcCMrGzzPIxqNqqJNmQkqRxd6X/IFPIIgYOuOTeg7+LBOv+t/UD1e/eMyw4K3XBtf4tGWsnqF\nUTCzFC6nExDtjTKj8oZ/M4x6sVY21q9fj7/85S+IxWIYNGgQrrjiitEA6gC8KorimxzHnQjgQgCP\ncBzncvo5SgNGb+wLpQeZgXQ6jZaWFtW0KbOghWasF6++9k98H38fV949TFKsam1O4On75qK+rgGH\nHHKIruOr6fcw20bu75DvFei9A+D4qex+ar4oim+wfqrkgw32S9VrxFlVpYqKCt3Ro96KAtF+aD16\naFN67g1t/tLptGY6mZY1ud1ueNw+xNpSCEc6BjNtzUkE/eZlneUbX7MlXgtFOatgUEBHgSz7HfA8\nD1EUO9EJjLwX0WjUdiOeTqfhdrvR1NSEdDqNfv36EY3q8h/+5K0f/uUAfPnD/y+euroD08Fy/IPB\nIAKBgK7j6Q2AaAMsCIJuv6l3HTzPIx6PW0IzFgQBH3z4Gn5yS78O0riRqgCmntYdixa8ojvYkEOp\n30MuisLayFLt99AKK/0iS3ujc1sZAFIi3E7I/VT//v3lfmrhD/9Kfqrkgw2C3i+TqgcUudq9oSPa\nlCiKCAQCugynnmuhl0hvOVrNmlwuFw4dMRkfvf0Jpp02tMPvli1ci/Gjp1n2vWRTr8jW7+FAP+QO\nwwqZ3WLJGLH9KwAwcuRIeL1ejBgxAldeeSVcLtczAPaKoric47iLAMwB8BNbFutAM4yiUVHTtcfj\ngdfrtX0zSQm6dDoNn8+nK9DQY9tJAh3QTjNmoeW7aW5uhsuXRHVt541fn/7VeHPb+oLWoAVyUZRs\nNpICEKtQTH0FZiNXopLneQAd/VQhSbJS8FNz5swhP9UsiuJ/OY67EMBVAC4CyizYKOQBV2q6bmlp\nMX1mRy6QqkggELC1LErrcLlc8Pv9unmvQP4MxEknnIb7H/4KL+9egYMPq4coAis//B7xLbU4f86J\n7Q2zH7yFHbu2oqHbAZh25NHo16/zcEAjkUu9gni0ACTDUk6l7GKqpOSSL6RGSi1qY/J3087Khsvl\nQjwex+rVq+HxeDB06FCMHTsWa9aswZAhQyCK4mLmz/8G4EUAUaBd0NyWRTvQDD1+ipquicZKPXx2\nrYlVm7JrEji7Do7jdAVgWu1cRUUF+IQL0bYUwhUdg6ztW9rQpaq2oHXoQb5+DxZWNJsXi+8wFSAm\naAAAIABJREFUEvl8otlJshLyU88AeAk/+Kn9Otig5jqgYzbEDCUpNVAKfIjWZec6aCOndw1q1lFZ\nWYkbrrkdHy77EJ8v+DfAcRhz0I9x2MzD8M67izD//Wcw6oRGjDygC7asW4V7HnsfZ584G5MnHalr\nfVqgxKOl58jh0RYOLc9orgBQq9qYXRkjclpNTU148MEHsWzZMgiCgGAwiJ49e+Lcc8/FUUcdRWuU\n+jJEUeQBNFu2UAeGQK0NlCNb07WR/R9a/YNcbSoej+tWgyzET7HrEATBUjvr9/sxeviReHf+hzh+\n1kDp3Dyfxrvzv8Okwy+xbC1KUPJTRAlWGoJbyn6qmJJicuRjSdD3RNUnpetgr8/qYMMoP1XywUah\n5Wm2eiBvIjPSiKtFNrUpq18gpXWkUilL70cwGMS0qdMwbeo06Wfbt2/HPxf+DefdPQ6RLu2zEHoN\n6oaBo3pg7q8ewyEjR2mSGzQSrNKVy+XqYEyUyqh2Ux+KGYU+77kURHLJF7KIRqOKk+vNAhnw6667\nDs8//3yn38+fPx9PPfUUTj31VDgN4OUFtZsjanb2+/2dmq6N8lNa3rlcgY+VoAQPK7+eTqctZyTM\nOO3H+P0jG/D0fV9iyJgKpJJpfP5hG/o1TMTkSZN1r8VIkJ/yer3weDxZew3YTW+xbuDthF5lz3ws\niXxJMquTYmr81JNPPonTTjstp58q+WAD0Gbo1GpvW2m0cgU+Rq1FDdi+lWIYCsVi2UcfYuAR1VKg\nQehaH0HvURH85z//wdSpU21aXUfk4nAq8Wi1Pr9WfS+lzM7JpeLCSh0DkDYp8XgcDQ0Nus+dyWQw\nZswY9OzZE6+++mrOv503bx5eeOEFDBs2DBMmTEAwGERbWxs2b96MBQsW4K677sIhhxyCPn366F6X\nA/uh9t1VqnJn+zsj1qTmOFqH9JkFkl/3er2GyK/rQTgcxg3X3oEVK1bgq68/g8fjw0VnjkP//v0V\n/TjJlhaDb1Xrp5wkmXlQmyQD2p97wLhgw2g/NWrUqJx+qiyCDaDjgKNsL7IgCIhGo3C73TlnZ1i5\nmcvnUIzIXuU7hlJZ3EgYcQ1t0TZU1CuvK1ztkaToihFqddOLdWiTle+DWedSUnGhMvaePXswevRo\nDBw4EEOHDkX//v0xYsSIghsqH3zwQQwdOhQtLS15/3bp0qW45ZZbcNlll8Hr9SIYDCKVSmHLli04\n66yzcNttt+Grr75Cnz59OpSoHZQeyA6y/yqB6L0cx+VsdraqAq/GP1jhpwD98uv5oHT+fGtyu90Y\nNWoURo0apfj7RCKBf7z4PBb/6zUkUjF0rarD8T+agWOOOa6obL0S3ccZgmstsiXJEokEkskkxo0b\nh/r6ejQ0NODwww/HmDFjChYPstpPlU2omuvBF0URiUQCra2tCAQCCIfDOf/eyPJ0tuNkMhm0trZC\nEARUVVXlfGDMdChUjk4mk6isrMwaaNid5R7QbyA2ftaZpi6KIjauaDG9SdwokDGh6lE4HJacJlW4\naBqwUbQAB51BpWyXy4Xa2losX74cQ4YMwe7du3H22WejW7du+PzzzzUft6mpCW+88QYuvvhiVX+f\nSqUwffp01NfXo6qqCoFAAFVVVRgyZAjOPfdcDBo0SMoyti+bC3IcVzZ2e39ELr+QSqU6zKrIlU22\nyk+1tbXl9Q9mg/xUPB5HJBLJGmjouR9KewK9G+p0Oo177r8Da6Nv4uJ7BuPXz07Eydd0w8L/PoG/\nPfu0rmMXArUJHbKPcj/FcfvmfsVisax+yuoeCqsr/ladi74HjuMQDoexdOlSTJo0CalUCrNnz0Zt\nbS3efvttzce1w0+VldNSMppyY6lm+JHZGaNUKoXm5mZ4vV5EIpG8DkUvsl2PIAhobm4Gx3E5p70W\nQwZj1KhRyOyuwtL5XyOdbg+aBT6Nd5//AtXu3hg8eDCA9nu7Z88e3c2KVoGCD7/fj1AohHA4LGWW\nksmk5GB5nkcmk3GCD5NQU1ODQCCAm266CV9//TVWrlwpPVNacPXVV+Pee+9V/c5MmTIFO3fuBNBZ\nHSYWi6GxsRFjxowBAIiimAYwE8ABmhfmoGigZI9pMx2LxRCJRFTRWM32U4IgoKWlRZI9z1XpM7Oy\nQcMCqU8kG/W5GPyUHJ9++in2pFfhzDkj0LWunfpyQP+uOO/GkXhn6T+xa9cum1eoDkpJMhqGy/op\nJ0lmLqqqqlBVVYWLL74Yn332GdauXYvDDus8BDkfjPZTPXr0UPJTvdhjlAWNSl6eJlAEbhfHVL4e\ntTxcK2B2OToftDonj8eDG66+FY89+TD+tPAD1DSGsWtzFIN6H4JfzLkMra2tePqZJ7Hkk3fh8nEI\nuEI45ZgZmD71RyZehfFQw6MVxfbhVWbzaMs5O6V0PpYL29jYqPl4r7/+Ourr6zFy5Ei89957qp7v\nTz75BI888gj++Mc/orq6GuFwGBUVFaipqcGKFSuwe/duvPTSS7jqqqtOBdAE4FcAPgewkeM4zpG9\nLU2wX5taeq9ZUPJTiUQCiUTCFFqtFuTrZyx2fLriYwybWN1p3cGwDwNGR/D5559jypQpNq2ucGSj\npbIDWAFY4qesht1+KhqNoqKiAgBQW6tdXtkMP7Vr1y65n7oFwBcANpCfKotgQw69xpLjOEMy46wR\npwpLPh5urmMYAbUN8sWImpoa3Hzdbfj++++xa9cu1NXVoVu3bkilUrj25p+jYqSA8//8I4QqA9i+\ncTdef/R5bN+xDZdePNvupRcMOY9WEASkUimHR2sCYrGYZMQLwdKlS/Hqq6/ijTfeQDweR2trK847\n7zzMnTs362dWrFiBzZs3Y/PmzVn/5oMPPgDa52oQmgFnvkapgd5N+pfthQiFQpobh82gUWVTm7Jq\nLYRiSszpQft9Uf5dJlO8cq1aQSpX9D0JgoBEItFhBhI72dzI697fzCD1ThUKs/zUkiVLgBx+qnR2\nmirAcVzW2Rlaj2PkA2x3doauJ51Oo62tDS6XS1MGTe/9MPp+du/eHd27d5f+e+nSpUh3a8G0n0yW\nrqmud1ecevNEPHnJ6zjz9Fmorq427Px2gWNk84LBYIdmc1ZhiYx6qemm250x0qvycdddd+Guu+4C\nALz//vu4//77cxpwANizZw8uvPBCVFdXS71T1AwYj8cRj8chCAL+9a9//feHj4wGEC94kQ5sByWz\n2traNG/q5ccx0q7arTZF15NNBl7t5/XAaBs0+pDxePqVRTj8GBEuF5Odbk1i7adRXDFjuGHnKiaQ\n7wkEApaJopSSr9OCcvFTZRFssJmiYiu50iaw0OyMUQ5FEATEYjEEg0FVfStGI51OIx6PSxkOI53k\nfz7/NwZM6tG5VB0JoMfIGqxcuRITJ0407HzFAla5gvizSrrp7ETtYngnihV6KxuFYOTIkbjjjjvQ\npUsXJJNJ6fsjFRie5yEIAoYOHXoxgCSAlwEUr/Sag7yg6rLP57NVQpYFz/NIJpMF06aM8lPUn2GH\n/DoFgclkEkA7N51UmQrFiBEjULfwYMx74FNMn9UfdT0iWP/1TiyYuw5HTz4DXbt2NWr5RQX2nmVT\nWGKTZKU0XNDqpJgcVs/ZAPL7KfJVufxUWQQbFGRkMhkEg0EEg8H8H8oBIwwnvUjUfG0XZ5GoN6Io\n2laOzmQyknMlQ0NGPZ1O685ueNwepPm04u+EVLqkqGJ6kKvfgybHatFNt9uomg359fE8bxg/ffLk\nyZg8Of9Qr7lz50pVulwORBTFFQDAcdxjANoMWaQDy0EZQL/fr3vDYISfIjssimLBFRYjwMqsVlRU\n2NInkslkEI/HpXOT7SR/VchcJJfLheuuvhmvvPpP/P2OV7G3eQ8aGw7AyUddgalTimMulFnIdp+U\n+j3oPicSCYii2IFyVU79HoVAqbJhVFLMZD/Vyv6uLHZhFGh4PB5DHky9RpxoU0a8LHrWQuVoURQR\nCAR0BRqFrIEyeKIoSnLD9OLEYjHJ2LCl1UIoQIePnYg/v/6/GDF9YId7vXd7K7Z/1YLhl5dnqTof\nlHTTKRthNo+2EIiiaLtjsfoesHTAbPjhvnA//P/fm74oB6aAVOV8Pl9R+CkSUCFbqyfQ0LMWURTR\n1taGdDoNn8+nK9Ao1E9Rf0EwGITH40Emk4HX60U8Hpfuj5wCRPuNfDbD5/PhjBkzccaMmWWfwCkE\nbPDh9/tzDhekCj0LO+i3diIajVpe2TDCT5VFsBEOhzv0atgFampLpVKoqKiAIAi2SbDyPI+2tjb4\n/X7dZclCPss2xJNxZkvS9HOl7AZLAWKDj2wYM2YMXn+7P16++wMcNutgdG2oxIbPt2Dp019h5gnn\nIBwOQxRFrF27Fjt27EBjYyN69+5d2M3IgmJ3Imy/R77hgkYF7cUO9juz24Hkwg8bueJdoANVCAaD\n0gbWTsgFVERRZDXyLQXbJ6JXFbFQPxWNRjtk01mQ76QASC9VNdfvotEo3lzwBpb8+x1kMmmMGzUJ\nJx5/Erp06aL5ukoZ2YbgZhNFsQN29hbqbRA3C/n8VFkEGy6XC5lMxhR1DrVgp74SbYrGy1u5FiUl\nLqouWAUKdKh3prW1Ne/51Ui+ssEH+/K53W7ccv2v8er8V/DWPa9jb/Ne9O11IK6YeT0OPvhgbNmy\nBb+59w5safsOXft0wc41uzCg+yDcfO0tqKmpMe9GmACjgppcPFpyoi6XS/q5FTzaYgjY7D6/g/IF\nbUTt9FNKalNGBBqFrEUuv07VBavABjqhUEgKOvLNvcom+Sqnqipl4bOhpaUFv/rNL1E5MIZDf3IA\n3B4XPnvnNbx5zSv437sfRX19vf4LLkEo+SklURQr/ZTdKAYGQCEoi2CDYJcRz6Y2ZbRaSD4UKlto\nFFgpR7367NmyG9my8D6fDzNOPwMzTj+jw3r27NmDa3/9C/Q9oxHTTj69vQkwncFHz/wHN91xIx77\n/Z/K3jipgZITJYndRCIBQFu/RylAbrSd4oEDM8H6BaOl1dWAaFPyxnSr/VQxyK8bNWeKlXylyj31\nnmiRJv+/l55D3egkTp4zVvpZ32F1WPTMSjzx18dw0/W3FrzGcoKSKArP80ilUpaJoli92Zcn4Yoh\nKVcISn/HwMAuo0kNO2aoZ6i9pnzTXs2WrqUmfZrUni/Q0PJdkYGRTy8FkHfK9rJly+DpCYw6Zbj0\n3bjcLhx23ljs5nbg008/VbWG/Q10z10uF8LhMILBINxut5TBi0ajSCQSkvhAqaMcrsFBacBoP6XG\nNsfjcbS1tSEUCiEUCtnmp0htShRFVFVVGRpoaPFT8XgckUjE0IG2RFNl/RQdnxKS2aZsv//h25h4\nxsBOx5xwykAs/fh922huhcKqDTHrp+jZpp6beDyOWCyGRCIh7Q1KHaXsp8qisiGP+ow4Xr7jKNGm\nCjmOEciXpTF7HTS/w+12o7Ky0nQjo5Zy5Xa7sXr9ajSO7VyC5jgODWPqsWbNGowaNcrU9ZYD1Faa\n9DSb29HoR+dLJpOGbjwcODAbat4VNdVuq/wUbbizya+bvQ62j9AKhchsVFWSCQX2+alYLIaKLoFO\nxwiEvXB52u+dUQpdpZgVV4t8oihG+SkroVRJKcXvsCyCDYJRX0A+o2flkL5ca2HL0XbJFuZzIFYg\nV0NZZUUlvt3WJvX0dJCQ2xZHZGjE8vWWCrJt/rPxaGm6eanppgP2KHw42L9gBm2JVfiTIxttygyw\nQgtKakGscIod8uvUn2HH/A4CmySTb4QHDzwIK5duwsgpfTr4qXWfb0dd10bDbFMpZ8a1ohBRFLXP\nRbH7s2KEQ6PKAfmxtNKmzMzUyMvRuQINvetQ+jw5kGg0ioqKipxBl5X0NpZyFQgEMHniZGxYtBkt\n21uREffN+Ni+YRe2frIdEyZMsGRd5Qy6536/H6FQCOFwWDLu+WhuLOysbFBl0IEDs2G2PdRKmzJz\nPZlMBq2tre2Jn8rKnIGGWX4qkUigtbU1771gP2+2v2I3wcFgEGeecg4W/XkdNn69U9oQb1m3G6/c\n/yV+PONCU9dS6lDrN9TSsZVobnaCvT5K5JUiyq6yYRSNSg6iClFPhJoSrBHrUTqG3dUEVi6wqqqq\nqJuF6+vrccnMn+HJnz+OoacNQG3frvj+6234+uW1uPy8OXC73WhpacHSpUvR1NSE+vp6TJ061fJJ\n0mpRCs1hWmhuxdJsbsdUVgf7J8yobBAKEQkxWliF7BMrv25HNYH6M9LptK0DC9VgxIgRuOrCX+FP\n//MgXOFv4PK4EN8JnD1jNsaPG49YLFZ0NrPUoSSKko3mxt5zO30w7ftKEWURbJhdnraSNpULbDna\nLhUPuVxgsW98AeDUk0/F0MFD8dpb87Hl4y3o3TAIV/zPtejTpw9Wr16Nq276OQL9w6geVovWFS34\n/eMP4s4b/wfjx48vieszC0YZVSUerZJiC/3OKsgrG06w4cAKmBVsWEmbygUl+XWrYWQfoVU2aeLE\niTjiiCOwbt06pNNp9OvXT6oE5Zs1sT/7KaOQK0nGDsF1/FRhKItgwywQbapQrqmRTkVNQ7qZ6yBK\njBFygXZg0KBBGDRoUIef8TyPa351LQ7+xVgMnDak/YeiiO9WbMZN196Mvz06FzU1NabK6O1voHvI\nDskiow5AmthbyCR5PWhraytZI+6gNGDWc0xJqEI390ZWNkgFqBD5daPWQRUVIyr/Vitcut1uDBgw\noNPPs/UlFmuPnJXZf7POle2eUzBtR8BXynTfsgo2jDYMWmlTZoAe4JaWFlsrKyR5aldFxQy0y+J6\n9wUaAMBx6DGyFxqn9MYH//oAZ844E4Ig6BrY5CA72GbzVCqFUCgkGXW5brrRjrRcMkYOSgcUbBvp\np2KxmJSE0kMV0rtpE0VRqnrbVVkhxSm7GtGtAMdxaGtrw5tvvoGv13yJ2upuOOao49CrV6+ynYlk\nN1g/xfM8AoGARLsyO+Bj38tSFjIpi12j0TSqVCoFURTh8Xh0UYX0rociaAC6qgl61kGZKgAFB110\nfvazVmeMlLBlyxZUDVKeIF49uBabv27qpB6SbWCTA32gZ0GJR0sTenPxaAs9H8EJNhxYBSMz+Ol0\nWvfm3ohNUTKZhCiKCAQCujjlhd4XYiGIooguXbro8lPFjlWrVmHOdbPR87AqHDC+Fmua1uCn176A\ni2ddhrPPOjsr/Yeoqg70g4IPeb9HOp1GIpGQ9o9GB3xOsFEkMGJzTz0RNJzHrhIs2+gHwJYsDXGA\n6YXS+8IUWyWgoaEBzf/Zrfi7Pd/swOENh0j/nY3+Q3KvAJBIJEwvZZdDeToX5OfjuM4TerM50kJK\n2eWQMXJQmij0/WJ7Ikhdx87+jGg0CkEQJMpJoSj0GtLpNFpbW6Vqczln8jOZDK7/9S8w5YbBOHj6\ngdLPx84YgifOeRRjRo3BoEGDssq9Au1+ymqaajlB6b1lk2R+vz+nKIpWVkS5VODL5q3UW54mKVlS\nrrDTYMmngbtcLssbkhKJhCSdGAh0HjZU6HGLCYcffjj4jQmsefebDj/fuvI7bHlvM445+pisn2Xl\nXimT5/V6kclkkEgkym5yaTGAlYsMBAIIh8MSrZAC41gshmQyqXmyOclZO3BgNmjjUIg9JJqQ0bOV\nCvGd5DMBSKqEVtv4VCqFlpYWBINBw7jsxbz5Xr58OcRIokOgAQBVdWEcMrMPXn395Q4/l8u9Augk\nS17qfqoYFRpZP0V7KJfLBUEQdPmpUk6KlVVlg6D14VNSmzKypKp2PWQA4vG4oU3YWq5FSS5QEARD\n1lFs8Hq9+N87H8BVN/0ca177Bl2HdUPrur3YvmwL7r7xTnTt2hXLly/HvJeex8atTTiwZ2/8+PRZ\nGD58uOLxlJQsHPUQdSjEYbA8WjoGm03KxaOVny8Wi5WspKCD0oFcHlYLWLUpkpI1WrZWLcyQX9fq\np+TKjKW6WdaCnTt3oqaPclKktk8Vtn3xfc7Pk82Uq1wZVSkmFGMAYAQKedeU/JTaBn8luq/TIF4E\n0PpwE8+T5/lOjc9GGHGtpbJsmuBWcUmNlAuUo9iqGoSBAwfin8+8hHfffRcbN29E/aB6TL98OiKR\nCP76zFz88YUnMOAn49E46FA0fdmEn950Ba65YA7OnHFGzuOWmnqIEuR9NsUOpX6PbDxa+f2m4ZQO\nHFgBrRvrXFKyVle9c8mvW7EWqu4AhfcRZkOx+ilC37590fTELmQyIlyujjZs86c7MLzPVE3Hy+an\n2AnbDuWqM/TS68n3+3y+TtRg+f6APV8p+6myCTbYjJGaqLqQIX1615VvLWZs8gn5jGguuUC9wQ57\nrGLMeAQCARx77LEdftbU1IRH5j6Go1/8GSrqqwAA3Uf1Qa8pQ/G7GQ9g2pSpqKlRbi6XI5dxcdRD\nzEMuHi1V66LRKBYsWKCbC9vU1ITzzjsP27Ztg8vlwiWXXIIrr7zSqEtxUGZQa1PzDVA1ypaqWQ9t\n8kn5yqy15ALNeWKrO+z59fqpYg82Bg0ahD51A7D4seWYNnuUdP0bPt2Kr9/4Hr9+/NSCj52rUsxu\ngtngoxhQjHsKLZAnyVg/xfbZvPnmm2hubkb37t0LPpedfqpsgg2CGoOhZkifVYZHbTnaqM2+0nEp\na1bOcoFa8dbCt9DjuKFSoEGo7NkVDdMH4u2338asWbMKOna2TfD+TLmywmGwWTy6183NzXj22Wex\nbNkyvPPOOzjxxBMxffp0TJ48WdO8Ao/HgwceeAAjR45EW1sbRo8ejaOOOgqDBw828YoclBq0KCeq\nmcBtlZ+iteSTXzdzs59IJBCPxy0dFMhxXNHRs357x734xU0/x6Nvv47eY2uxZ3MMu7+N4be/ui/v\nRlSLnc21CWabnrNVi8sRVvspGjmQTqfxwgsvYMmSJejSpQuWLVuGadOmYdq0aZpoVXb6qbILNoDs\nBi8XbUoOs7mw+crR8mOYAdJFz2Qyilmz/RnNrS3w1ymXK/11Yakx0ghooVxlMpmymXNiN1wuFxob\nG/HSSy/h4osvximnnIJVq1bhjjvuwPz58zVtaLp37y45+oqKCgwZMgTfffedE2w4yIpcfkrtBG6j\nNsO5/JTaZJSZfor8tpFN8aWKmpoaPPXYXHzxxRdYs2YNqkdUY8KECaYHYGooVxR8FHuFqJTgcrkQ\nCoUwb9483HrrrRgwYAD27t2L3//+9xgwYIAmH2Onnyq7XUs2g2cVbUppPfIXL185WglGZ4xILtDO\nAUzFjBEHD8fr//cucPGUDj8XRRE7PliPYbPPNeW8+ShXJP8KwPRSdrnL7LJIJpM48sgjcdZZZ+G2\n227TdawNGzbgs88+w7hx44xZnIOyQ7Znne1HsDoBpOSnSH7dik1+Nj9Ffruqqkq10Eq5+zOO4zB8\n+PCsYiVWnD8f5YrUA6nqUe7fiRVIJBIYPXo0Dj30UNx44426jmW1nyqbVHau8jTJ4/n9flRUVKgy\n4GaVp3meR3Nzs7TJV7sWI8HKBYbD4bzHN+JeyD9f7PzYyZMnI7THhU8fW4w0387vT6cE/PfBhahD\nFcaNG4dMJoN169Zhw4YNpl0LlbL9fj/C4bAUYKTTacRiMUSj0YIk9PZ3yDckRkkKtrW1YcaMGXjw\nwQdLtpHPgflQsn/kGzweDyKRiKV+Su4D5PLragINo206z/NoaWmBz+dTlRAzwk86NrQwsH4qFArB\n4/FIfioej0tS8Gb4qXJOiimpUZWqnyrLygZ9QVpoU0rHMbI8XQy9EVqoW0aC7kEikZAm3lph1PUY\nBY/Hgyce/jN+eetNeGXe/6JLvzrsWb0NowYPx92/fxQL3noLdz90H9rEJDLpDKr9Fbj9upsxefJk\nA6+gM1jpQkc9xDgkEgndkoKCIGDGjBk499xzcfLJJxu0MgflBKWkmBbalNLxjKT7svLrVvZGsMhk\nMkgmk5b7StZPCYJQVnSg9evXY/ny5eA4DkcddZTpG0yqalB1PhflyvFTuSFPiun97uzyU2UbbNhF\nm1IC9UZkUxTJByNUNjKZDFpbWwEYLxeYD6Iogud5ifPJ8zzS6bRUWi3WjXFdXR2e+uPj2LRpE7Zu\n3YoePXqgZ8+eWLx4MW544A6MePAC1I7pDwDYuuRLzPnF9Xji3kcwduxYS9ZntnpIuWeM5Cppet+J\niy66CEOHDsVVV12ld3kOyhxk0+2kTcmRS35dDYxSLbSSusVCFEUIgiBtlAVBQDqdBtBOsyzFjXEi\nkcB1N1+Hf33yAfpO7oX47gR+c98d+PX1t+LUUwpXrtICtX6Kna5drPfY6uBTaR6U3sqGXX6qbIIN\n9gsRBEEa0lXowCGjMkZkwHMpipgNkvn0eDwFrUHPvSDVH4/Hg1AoBEEQ4HK5JCNDmTRqfDZD/lXv\nRrZXr17o1auX9N/3PfYQht45C93GDpB+1v2IoUjecCIe/MujeGbsU7rWmwu5rkWNeogRA5vKFXru\nx9KlS/Hss89i2LBhOOSQQ8BxHO666y4cc0z2KfQO9m+k02k0Nzfr8g1G+ql4PA6v12ua/Ho+0Mae\nehn13A+tn6WeOI7jEA6HJT+VSqU6BBzFKv+aDXf+7k5scK/G7GXnwuNrH3y4a90e3Hn2b9C7V2+M\nGjXK8jXJ/RQFeUS5AtAp+MgFqxNVdvrNWCymq7Jhp58qm2AD2BcxZzIZ3TQhvUacNtHpdFoaWW/H\nWkguEIDlkyeTySRisRi8Xq+kpERGHGhXWaAp6fJJpsUq/xqNRrF23TocN/mKTr874NjReOvG52xY\nlTJKaWCTnZUNtum+UEyYMEHalDhwkA1kywVBgCAIqKio0EVVMiLYSKVS4HkeXq9XVQ+fGWshCXig\n3U9ZaQvo3ETXou+H/BTHcYp+qtgTOM3NzXj1zVdw8Xuz4PHt2wt161+DsZcPx1PPPmlLsCEHx3Hw\ner2Sn2Lfj2LeC1gBuV9MpVK67IWdfqpsgo10Oo2WlhaIogi/32+rPChbjqaNth1riMVuB8TBAAAg\nAElEQVRiEAQBkUjEUKlWtecmqcJkMikZEQo6iEaVSqUkA8IaHApM5PKvdpdZPR4POABCPAVvOLDv\nFxyQaonBHwxk/aydMJtyVQ7Yn5yYA3tAKoCZTAY+n8+WnggCa6d9Pp8tGzl5HyFRfa06N/XKRCIR\nCIIgUXw9Ho/kp1gasJKfYhM48uGsdtqUTZs2obpXFcJdOycZe43riXeeXmbauQulpZJvp/dCzV7A\nShSD0pnd5y8UZRNsZDIZaUCaESg0SyOfBh6LxXRnnrSuRd6vQtD7oqj5vFzWl4xHMpkEz/Nwu91S\nZB0IBJDJZKTvjAIQNpNB56Whd2yZ1Y5hQn6/H0dOnIS1f3sPg3/WXnqkb2bt0+/ixKOPs2wteqCG\nckX33W6naQaM6NFw4EAriC5KPQF6UaifkttpSgjpXYsW/8v2q9jRR8jOmOI4TsqmU3M4BRrBYFDa\n9AL5/RRRsgBtdCCjUVtbi+YtLRBSQofKBgDsXr8Hdd3qLF1PIciWJGP3AgAkP1VuNr1cBAqAMgo2\nfD4fOI6TFI/0ohAjTrQhPb0ieqF20qsWqD2GIAhoa2uDz+dDMBiUNrAk5cjzPOLxuHRvqZeDytfU\nw0EGG4C00aWNMVtmtYsOdMNV1+KMC88GvzuKA04bh7SQxqZ5S8G/vxan330/bv3N7Vjy349REQpj\n5vEn44wzzrA1g6kGSpSreDwuZZTMVg+xM2OUTqf3+0FhDqyB1+tFKBRCKpUyVEVKC8zwEVoh9xVK\nKl2FQM3nKRnn8Xgk/rsgCHC73VKFgzay2fwUm5wBOvspSnzSxpilA1nVaN7Q0IBhg4fj3098igmz\n94mWpGIp/PsPn+H6c/TNabADSnsBmrBN1adyo1yxdF/2v0sNZRNs2IlcErtGcGrVHMNuaV0KtMLh\nMLxer2SQqbKRSqWQSCQQDAYlOTzKIhFXlww6a9TJmJNKCG0K2TKrnA7EcmjNQJ8+ffDq3/+BJ/76\nFBbO/hvcLjd+NGEyjrj5PJzzs5+gy48noea3ZyG5uxX3Pv4C/vH6q3juqbkS77fYQfeZ4zhpM1Kq\n6iHZwAY30WjU8n4mB/sn7O6LyuYjtFYllKDW17G+wuokDPVnkB+S+ykKNPx+v7Q28lPEUqDNLtlI\nOgbrr7JRrijwkNNWzcLdt/0WP77oLGxbvhMHHt0Lsd0xfDlvNSaPnILjjiuNKnw20HdGPTUulysr\n5cqoRKTdqomljLILNoxS51B7nGKQ2GVLwrnkAs14cOWcW7Yng+5FIpFAKpWShtIBHZvCiE5FRoKy\nTGTU6bugDS9dhzybBKBTNgmA1BdiZKajoaEBt9xwE27BTchkMojFYjj1nFlo+M05aDxtovR33aYd\ngpVn/xbznpuHC86/QPd57ZCjzUW5MorWZietyahBSQ4cqIXVfoqmgRcqv24E5L18ufyUGedmAy3q\nyaBAA2gPgpLJpDSUjiBPgFFVnZrIvV5vBz/FUoPpb+SUKzltVRRFpFIpw6nBPXr0wBsvvYnXXnsN\ny979EDXernjw11dh7NixZbOJJeSiXPE8DwCdgo9SAFvZKOXvrGyCDaPKsOzx8h1HTTnaqMpGtqwT\nNRzSRPJsD6Peh5Sugz2OnHNLGXB240jZoFzT0lkj4ff7JSNBtCs92SSqmpjdaL5x40Zs3vk9xpx8\neMdrc7nQcOlxeO53LxsSbBQD5JQrJVpbsQ9sYp/lWCzmVDYcWAqj/BQh10YkG2XJ6PXkOgbNeXK5\nXFKPRLZjGL0GVrCFEoJs0gqARMXJ5acASIPqqDpPm1mib5OfoqoIqWOyiTIlQZRoNCoxAIzOyIfD\nYcycORNnnnmmIUPh1MCOpJgc+RKRhVCu7Kxs6FWishtlE2wQrAg2tFCWjChPZwNbEg4ErFVBkjsw\n+hkAyZjHYjF4PB7NvGAlI8E279HvvV6vdFwy6vT/qfIB7OvnyabnbUQ2KRqNwte1EpxCts7XrQt2\n/hCUlRsoYMtFayt2ylU0GnUqGw4sgRlJsWygfgM108CNDn5Y2NkjIhdsoZ/RJo6qLS6XK2eyTgm5\n/FQymezwe/JF2fwUBR9ssq1YGs3LBdmk4M2iXBmNUvdTZRdsAMaWYZWy+VaXo+WOQE5dUiPza6Qz\noSAnFAop8l6pIhEIBAyJxNVmkyj4YOUKAUgqWEocWqPmThx44IFIfrcL8c3bETygo8rHrrf/i/Ej\nR+u+D1ai0GdF7oCzBXhyx2lnxqjUjbiD0oRR9lip6izP5lshgKDkpyjYUdtHaKSfoiBHqT+D1MBi\nsRh8Pp8hgi5yP5XJZMDzvDRvi/VTwD5BFEEQpH/JT8kbzZXmThRz5bjYwbIp2H2FUoBnJ+WKfRdK\nvbewbIINNmNk5PFYqClHKx3HyODHLrlAqtBQ/wXbn8HyXun3ct6rketQk00C2p0N2zgGqJctJOqW\nWmMTDAbx0/MvxF9nP4yBf74KwcZaiKKIHYuWY/tjbyJw/Mk44cdnoiIUxqwTTsYJJ5xg6ywYtTCC\n1qBmYBP9zg44PRsOrITR1T25j5Fn8+3wU3YEOwTyUxTkyPsziK5EgiVmiKko9Q8oCaLQlHKfz9dh\nnXJqcL7K8f48H8kIKAV4SkOGKWi0em1A6fup4t/taISRRpM9ltpytBlgKUBagx2jQOVmoHN/Bst7\nzWQyeXmvRkKp6pFMJiVKlyAInRr89MgW5uJ3Xn3FlchkMnh86g0IHtgAfk8rQoILQoLHq/z3CF9x\nLL7f04pf/uUPePalf+DZx5/U/CyVcpOYEuWKgsVMJiN9b1aUsuU9G6VsxB2UHsz0U9SDZLX6Ha2j\nkGDHSFCyiJJx8oQYSXqzgiVmg026kCAKNaQD+5JgahrN881H0jPRfP369Xj86cexfOVn6Na1FmfP\n+DGOOuqoovY5ZvjEbJSrTCaDVColyaVb4acIpe6nyirYoM2M0RmaWCxWcIbGqPVQg12hwY6edbBN\n3/Sws/0ZRC1zu90Ih8O2Giae55HJZBCJRMBx+wY1GSVbqNRoTvfV5XLhup9fg9kX/xRff/01Kioq\ncM2vbkL60hNQf8nJ0hprT5+CL067EfOem4fzzzvflvtUDGCzf+l0uoPUpJnqIfL3wKFRObALRm2U\nqJKgJL+uBkb5KVEU0dLSUvCsKb1+ijLPufozOI7T3J9hNEjNihJz2QRRqPqhttE8Vx9CvutdsmQJ\nLpx9EQZfMBx9bhqC5k17cd09v8SCRQvwwO8eKOqAw0zI/RQFhIWyIAo5PwC0tbWVtJ8qq2ADML4c\nTEpPdmRogH2813Q6jaqqKsuHj1F/BsdxHSZ+U2BHG3nSJbfLIJH8rNyRyKsaPM9Lhl5JXleNbKFS\nHwLLua2oqMDYsWOxZcsWfPXtKgw+//YOa+U8HlRfPRNP3VG8wYYdFRQy6uzAJr3qIfnOB7QHG7Q5\nceDAbJDtVOq1KBSU7LFTfp1oPZWVlZZTTag/w+VydfJTtFmPRqOG9WcUCgp45AqNRgmiKPUhsMkb\noP1eyRvNBUHAZVdfjulPn4TeR/aTfj7otIPxf5OexHvvvYcpU6Zous5yDU7yUa7o90b4KXllw+nZ\nKELofdiTySREUYTf79f1BesJfqiaIed/WrEOUtxKJpOIRCKIRqMdggwguy651VCrfOVyueD3+zso\nftAQJ8oUeb1ezbKFlOGQN5rv2rULgfoauHydOcH+nnXYs2ePqfellCB/X+k5s0I9JB6Po7Gx0ahL\nceDAMvA8L1UF9VSV9fop1j/o8QWF+CmW4pxIJDr4KbY/wyjBkkLBMgBCoVBOP6VWEIWOy/Zy0DHY\nTTHZT6KQyRvNP/zwQ/i6BzoEGgDgC/tw0M9G4bmXntMUbFgFu/r8WGSjXBkhPAM4PRtFC73RNGUe\neJ6XXnq96ynkhWDlAj0ej9QvYQVEsX1IIPFeWa4rDTCiaouV/RlKKFT5ijXE7FBBMurs79XIFrpc\nLgSDwQ5Gv3v37kht3YnE5m0I9KwHmEez+Z3/YOTBw8DzvOXT3ksRRqqHyAObUlf5cFCa0LPBZ+XX\n6Z3Q4/sKXQv1EXq9XoRCIbS0tBS8Bq0gXy0IglTRoQQY+Sme5zsNlLUDhTIA1AqiyIMPCjroX/ba\n5X4qmUxi27ZtCHdXnr9R0aMSu/duLfjarYBVVZR8SWwlYYBCG/rl72OpBxtlJV1AD0GhhjOdTqOl\npUUqBbtcLssjZ3IibW1tqKiosLwRPJ1Oo7m5GS6Xq0PfQyAQgNfrlZwLlWIpq2I12IwWSfDqAQWW\noVAIkUhEuu/JZBJtbW0SN5MqGlThoKwTGRXib/r9fnTr1g0Xnn0utsz+HVK790rUoD3LvsDm2/+C\n115+BT0O7ItzL70EGzZsMObG7CcgJ+v3+xEOhxEMBuF2uyWnHovFpIbzfM8nqdY4cGAlCvVTVPHm\neV6i1tphg5PJJFpbWxEMBi3v1aN7wPrqdDotbeapST2ZTNrqp4B2KnIsFiu4j4WF3E+FQiEpyGpr\na5OGE2bzUwA6+alQKISxY8eiadlG8NEURBEQRQA/3K7NC9fh0JGHGnAn9j+wfioUCkksEKJgR6PR\nvH6KrWyUsp8qu8oGUJgRp94EdvCQEf0fWo6RTS7QqnWwQwKJiygvjSeTSUmmj7LKVNqlbJLZlQ5R\nFFVPfC0E8mwS9WOQZjoA6VopGJOXUIF2x3DDL65F4q4Enj3kAkTGDEFs+27s+WotKuecg5pfX45M\naxQfPvY8pp90Apa89TYaGhryXrsVTt1qzq3e82kZ2CQ/V6lzYR2UFvQkxZQUCe3wU1T9Z5vRrVoH\n3QO/39+hPwPYl8Gn6obP55OqAES1ZUVCzAQlxMyqrLBZdKIGZxNEITpZNj/Vq1cvTJk0BYvnvI4p\nDx0HX0X78Va9+CU2vLIaZ772B6RSqaIdeGcV9D7fWihXcpS6nyqrygahEMMZjUZtqSQQqKoCwHJd\nctq80z2QBxpkqCg7Q9rkgUAAFRUViEQiHaoera2tEjfU6GwSO1TRKgoX9WhQNikcDsPlckk0BrpH\n1PNBARfdv9tuugX/Xvw+7j3rUnBNO9H9n4+g9vYrwbndcHepRJcbLoE440e4/+GHkEgkTLlv+xPo\nu6AMYDgclow7fWfEX968ebPujNGCBQswePBgDBw4EPfcc4+BV+KgnKHVTyUSCbS2tkoZUjP8VL71\nyCsKVvfqUTUlFAopNoLzPI9oNCplkokmW1FRgcrKSqnqEY1GJT/F87zh9paleFVUVFg2VNHr9SIY\nDCISiUjnTaVSkpAJ9WlQ5YP8VDqdxgO/vR8DM33x9JCH8dopz+Pvo/6EVXctx/Nzn0OPHj2k+SWx\nWEzqUbTbT9klZGLUcchPUXWQKMLE2gDaqeIbNmyQ9md6YKevKqvKhtaHgB2QpzQN3K6Kgvw6zFwH\nW02pqqqSSq7sS5xPl1xLQ5ue4IAawb1er22KIuTUiBIVDoeljFIu2cLa2lr07t0bvN+LqkljOx03\neM6JWHD2jbjrttsNaywrFZjtsOTqIcTjXr9+PY499lhp8Ndpp52GyZMnazLomUwGV1xxBd555x00\nNjZi7NixOPnkkzF48GATr8jB/oRsFW+CUf4hH9g+wlxCHHo3gNn8FFVT2PkZ6XRa8in5BsrKhT2o\n/0Gp6qHH3qptBDcbdA2ZTEZaB/mpTCYj+WSiILvdbvzxwT+iqakJq1atQpcuXTBq1KgO8z3I7+Wb\naF7OalRmQc6ooD3U7t27MX36dHi9XnzzzTdoa2vD1KlT0aVLF03Ht9tXlVWwQVBjfCkDkmtAntnB\nBlUUaCK31Vki+fAl+hkZCjLwHKdel1xLQ5tcfi8XCm0ENxr0ncmHF7LNeUS5IulcqnZ4vV6JB9sJ\nmQxcLuVJsWwDNP3ObENeyhkjNedxuVwYOnQo1q5di5kzZ6KxsRH33Xcfzj//fGzZskX1M/bxxx9j\nwIAB6N27NwBg1qxZeOWVV5xgw0FWaKFRsQ3Y2eTXjfBTuSBXfMr2bhjx/iodg5KCHMd1GihL9lfr\nQNlcFCSa8E12W4ufKhYpeKqEyZOEagRRevfujd69e3dSYyS7yQrnZGuApmCu3CaaW+kX6X7X19fj\n22+/xRVXXIG6ujr85S9/wfnnn4/Vq1eje/fuqo9nt6/a74INtYbTbLB0oHza6GY4E8pSKfVnsLrk\nRJcq9AWTVz1o1oVaDq0oikilUkUhscvO8sjWEJmrylNfX49Knw/x9z9B6Mj2hjtRFCGk09jz5xdQ\nleTx4osv4qSTTuowA0Q+0TwWixk+c2J/AuswPB4PUqkUbrnlFvj9fqknSS2+++47HHDAAdJ/9+zZ\nEx9//LHha3ZQfshn162eBq6Ukc5XVVGCkRsyeY8K/QwwdqAsW/VgN+P0HcgpskrnIYldohnbBUoS\nUuVdaW+RzU+RyqSSwhUbeNAxlJKLbJKMfm+WnyrnCgprG2hP9rOf/QwDBgxAMpnUbBPs9lX7VbAh\niu2SrsQ3zWc4jdzksy+FUpOf2aBrYYMtoo/I+zPMqiKw2SSgc+O1vOoBwNRGcC1QO8uDhZIhvudX\nt+Gn5/8C6XuvRejEKUju3IPWP7+A6BtLkL7uSlz10O/x+juL8NjvH5TOwWalKOiie6c00bzUskl2\nOwxq8AdgyabOgQMgt59SasDOdRxqkDZyPfLKt1qbZ9QaaKNPPVdWDZRVU/VgBVForcUgsUsJMZfL\npZrClU0QRel6ybfQdyFvNKegLZVKIRAIAIAps5HsgB39KXIhE6L4lqKfKqtgI1d5mi1Ha6EEGc2F\n1ZOtMoILy2apKDNEBhzYx3u1wmgqcWjZqgcAaX6F3ZvRWCymO/hyuVw46aSTUFVVhVvvvQefnHs9\nuHAIvtNPROXiV+Dq2QPi2TPw1qQT8P7772P69OkdBgqyyDfR3MxsUqlDKXtb6D3q0aMHNm3aJP13\nU1MTevTooXuNDsoX8mePBW3wXS6X6mngZlS+8/UR5oLetVCwRfRit9vdyU9ZOVA2W9WDRFPob4LB\noO0JMSOmpOe6XkEQOlTd6dljFcFYgZN8E83ZJFmp+Cmr1il/j6LRqK45G3b7qrIKNrJB7wZfLyjz\nRAoOWvszjHi4icNJ3F+gY38GAKn0akcVgc0mkcMlA0QGvRAOrV5QadxIpzZ58mTcwvM4Px4D9+4r\nHa6FC4WQvvQCPPHcPEyaNKnDBFgqSyuVsuVBm94JplZWG+ysbOh9v8eOHYs1a9Zg48aNaGhowHPP\nPYd58+YZtDoH5Qx5kKAkv271ejKZjGTzKioqNNOB9K6ZaLNsNUVJsMSuajfrp7xerxQYut1uaRYT\nS0Gy6ju0go0gr/LIBVEooGD9FM03oaQX68/UNJrv72DvAc0UKxR2+6qyDDZYypCWcrTScYwA0be0\nZKuMBKnveDwehMPhDlkI4gJqpQiZudZ4PI5gMNihCa0QDq0eEN3MrCpPS0sLXI3dAaW+j+51aPmB\nh0z3A+icPcs20TzbBFOtk7bLFUrBTaHPj9vtxiOPPIKjjjoKmUwGP/nJTzBkyBAjlumgzEGbe1Yo\npNANvhFJMVoHoKzOaDbYTWckEpF+Buzrz9AqWGLmWpUoXGzmPh6PS5tnoiCZsWa7qjxAR0EU1k8F\nAgHJB2XzU2oazfNN2i7npJj8nWYFEQqB3b6qrIINlkZFcytcLpck6VrI8fQacSoXejweXTJ4Ss17\n+cD2Z9A0Uav6M7QiVyO4Vg6tEdk1reomWjF69GgkfnEN/LEYuFCw/Xv54VlL/fM1dI9Uwu/3S9kz\nMrjy7Bl9Z5T9Y2lX8mySvNHcySYZg2OOOQarVq2yexkOSgwUbLS2tgJAwYkoI/yUIAjSBk/PRr7Q\ntVBVR96QLO/P0EsRMgK5GsHVDtkzoreOVZyyssojCAJaWlqkOSs+n0/yU+SrU6lUp0ZztkqlpdGc\n7efc36jBRiXFCHb6qrIKNghUCibalN4+h0I/Rxt9l8tluYGkqo4gCKisrEQymZRecjJKVmZE8q1V\nS2k8H4dWTzaJbbDTo26SD71798bR06dj0SU/B/fQ3UB1NUQO4J99EamFH+B1nx9PPPU0zjj9tE4O\nNptsIQWUQO5sknyCKQUebDaJ5UebDTsyRvSM2d2c7mD/A/se8zyPQCCguy9NT7DBVovt8FOs/Dtl\nyeUDZYtF5SmZTILneVXVbqUqAM/znaoetInWmkhkac9WfGeJRAK33/kbPP3XpyCk0/B6PLjogotw\n8w03QRCETsyIXLL38qAyW6O5nBosbzSne1GOYK+rHK6xrIINtrGMHnw9KPQFljdi0+BAvWtR+8BR\ntoxoW/R56hnxeDxShsFulSe9pfFcVQ82m6Sm6mH10MC/PPQwphx/HL4YPB6ukSMgbv4OYlVX4O8L\nEc9kcPN5x2HmGTM6PcdahigCuWULszWaE30BQFlnkwqREHTgQA8oI039VHp42IA+P8XSjIkGo3ct\nWvwUK/9OmW+qWFPSI51O267ypEZONh8o6Uh+ivrqsg2DzQY7hgaKoogzz5mFjf5dOPrfP0dlv25o\nWbMDr179Cr44byVeeOa5TopgSrL3rLwuS4Wmc7AUbyVqsNznkZ9KJBIFBW1a74EdfVTs/y9lH1xW\nwQZtpoLBYIfNUqEopCSsJBdohlpINgiCgNbWVqnJkH7m8XhQWVnZgVsJ7HtJ7ZBMNUo9g4U8m0RG\nKV/VwyjFKS0IBoPgMxxw75PIdOkK1NQCA4bu6+Ooa8DKlSsxfvz4rMeQl5/lcsIAOvS2AOqySVQJ\nI6pdIpEwTbbQ6qwN6zT0Knw4cKAVbOWd3lE9KMS/yAflsZOfrUA6nUZrayu8Xq8UbFHVvaKiQlLW\no/WQuIkdfsqMzb0SbUip10O+gSafafXQwI8++gifr/kSJ3z5S7i87UFfZf9umPjiBXh14F1YuXIl\nRo8enfXzapOCcsoVmyRTogYTXcvlcnUQRCkHanC5Vd3LKtjwer2IRCJIpVKGqUhpOY4euUAj1qJG\nlzyRSEgbanZjqresqxVW9YqoMXC0nnA4bDmdjOM4oLILcNhkw44nLz8ryRZSMKYkW0jOnOPyTzQ3\nqtHcLqMajUZ1Z5YdONACSvywEqF6oNVPmTnnSc1ayE+GQiH4fD7FgbLUZxgIBDrYbSXaqJm2w6qJ\n4Nmq1WzVgyhloVDIcjrZW28vRM8zh0uBBsHt8+CAmSPx1sK3cgYbcmRLCirtRdhAS171oGPlajRn\nez30+Ck7Kxss/b1UUVbBBsHKDA3QsSyupCZi9nrYcrjS/AyO46T+DJb3Si8pa+AKKetqXatdE8GV\nDBw12AEdqzxW0YbOOO5Y3Pnc40hPmNLxF19+BuG7TRg1alTBx9aSTWIbzcnwu1wuSYaynBrN5XLP\nTmXDgR2ww09RH2E4HO6U5LHCTyUSCSSTScX5GdkES5T8lJw2akbVw65eEdbWBgIByU+R2Ax73Vb5\nKY/bjQyvPDhSTKXhDuqjuMn9lHwvQpQr1k9RIo2eGzWN5iwlq9ipwey7WA5JMSfY0HkclneaSy5Q\n73qyrUVeDmcVH+hFisfjEAQhJ+9V6SVVambTI+GntRHcTJDjFUURkUhEum9mB1tyjBo5Apn77gPu\nuA649Bqgtg54903g5jngfwgQjar8qGlYpDknLpdLar7X02iuJptkZ7nYCTYc2AEj6bVqjiPvI8zm\nB8zyU6LYLv/O9mcUMlA2G/2IqgBkk/RsxFmVp2LoFaGmaNZPWRFssTj+uOPxx1l/wchbj4EntM8f\n8W1JbHz+U5zwyt2GnSvXd8xWtogCrOSnAEjfm5pGc6qgFFvwUU5JsbIKNox+UPIZcXYqeS4up1kP\nsLwcTj8D9OuSy5vZCm26JhSTRno2xalCOLR68c/X34B45hXA7h3AkUOBRAwYOga49mEE5j+ON998\nE2eeeaYh55JD/h0T5xXYF4zlktelY+RqNE+lUgCKa6K507PhoByRLWhX6iNUglnvJTukle3PkFcY\nCxEsUUM/0pIwMqIR3CjQWgB08JlqNuJGU8xGjhyJaUdMweKj/4QR9xyPmlEHYOd/NmHFL1/Dicec\ngIMOOsiQ8yhB6TsmaXoAkp9SEkShZ0zup5SeFwAdkmTye2eHaiKBhlKXMsoq2CBYUZ7WMpXciPXI\nj6GmP8MoXfJCm64JZjSCFwq1azHaiWVby7fr1gMTxgGX3wXc/GcgkwFIvnbpfEmD32xQcEH3hQ0w\njZItzNZobiecYMOBXSCbrncTk+uzPM+jra1NVR+hGX6K7WMkSpC8P8OogbJy+pHWhBGxFIxYi16o\nXYsWZcJCbS2t5dEHH8FTTz+FRy/8E7ZsaELPA3vh55fMxqU/vVTPpWoCVZ1YtVE9gih0f+g9pGNR\no7na6rxZKKekWNkFG2aXp+VygVY3FBMViXTJlXivZnNNtUjN0gbd7qGBQOFN6fmcWCGle0EQ8N//\n/hf/+egjIOkHTr6oXYWKSvY8D3y4AONuMN+QswonFDjLedJEuSLZQjbYAtTJFtLfyRvNgXbjb1Xm\nSJ5RLfWMkYPShBmN2XTMfH2EZkN+fqK9KPVnsHbHSChtxLPRZKnabbXKkxIKbUrPRT+SJ4zUMhLk\nybk5V8zBnCvm6Lq+QkFBj1yaXo8gipaJ5hSg0P+3Ek7PRpHC6MoGGXEluUCr1kPnZ6fNFtqfYSSU\nsthk3KgE7PP54Ha7beXmUwBmRFN6rqoHqV/k4tCSw7vv4UchzLwReP1PwDMPADPnAF4v0NoM3PlT\njDvkEBx88MG61poP5NhyBabZaFJKE9y1yBZSo3kikZAcidWN5uWQMXJQemCDAyPsIutjqD8ik8nk\n7CNUOgZtwvSsg97ldDqNqqoqxf4MqwfK5utJBPZlxO0ErceIRGE2P0W+mQ08lPYKdsjBZ4NSQkwO\n1k9pEURhAwslPwW0Py8UdBAF2+xG83ITMinLYINgZHma53kpwjdaLlANMpmMlHCciDQAACAASURB\nVAWS92ewDyQA27im9LJTeVwURfj9fslQAPsMutrMil6Y3eyXreqRjUObSqWwY8cO3H3//+KNN98E\n/nQvcMQM4PeXAHPvBRoPBNZ/BZfbhfsXv23oWuUoNABjA0z5BHc2m5RPtpBtNGcnlxfaaK4GtCFj\n35nGxkbdx3XgoBAYnRhj51fY0RtHm3iv1ysNlFVKiNktEkIbcQqAKPFRaE+iXrAqjWb7KSB/1YOo\nRFYrRipBTUJMCXL6tzzAlDMSgNx+inwQPTdmN5rLezacYKPIYIaiAJWDleQC1a5Jj0NJJpMQBEEK\ndOS0KSN5r3rBRv6ss2M3pWozK3phR7NfvqpHKpXCaT8+D2urhwGRWiARBXoPBe55B9i6Ftzu7yF2\n7wvv5SPRtWtX09ZJmUW9ji1XNklOV8iWTaJnmbJKtB62MmJWo3k8Hi/58rQDByx9Vk0fYbZj6PFT\nPM8jlUrB4/EgHA53oKuQYAkNx7NbJIT1DfKgR6knka1UG71uNiFmVQCmNN2baLIsI8GoyluhMJqR\nIJ/grtTfIpfXJR9EwQfrpwppNNcCp7JRAjDiJSHDm0wmc8oFqllLIeVptj+DMuNqdMntQq7m62yb\nUjJwhfBJc4ENeoya+qoVdE1utxvr1q3Dy6+8gk8/W4F1CR+EC/8E7u/XQ3ztUeDyRwDOBTT0A9dj\nAPD2XAw9eBjq6uoMXxM1gvM8b4pjU8om5ar08DwvZYZYlatcsoV6JprLbUIsFkNFRYWh98CBg3yg\nZ9CIyga9G4lEQlcfYaFrIZsSj8elDWo2wZJi6InI13ydLXkip4wa4aeyKU5ZCZaR8N1332Hus8/g\n2w1r0aO+AbNOPwMDBw60nJEAGJcQU4KWSo/L5ZLUFX0+n6Iao5ZGc7V+ikU0GkUkEjH0HliNsg82\nCgXJ9QHtRsBqrW12fkdlZaWUGVfSJS+GUqdWrqlSrwebWdGjolFM6leZTAZ33nMvHvnzU8gMPxPx\nNTsgTrsQXDoN94nXQ7h9IvDwZcAJswF/CFjyAsLzH8JD//yH4Wuh4DWTydhe6aFsEgDp9/Jej2yy\nhXQt2Saaa3GITs+GAzuh109RHyHQTp+1Q7CEnd+RSqWkd5yyukoDZe0CG/Soqf7koozqrXoUk/qV\nKIpYsGABLv355eh+xjhUnd4fG7/ZihfOn4Vf/eJGnHf2OYqMBLMqPWYmxJSQq9Ij91O0RrZyR0Nw\n1TSas9X5fNfGUg8bGhrMunxL4AQbCmDlAlnFHKvWwvJuieLhcrmkKaKk7FGILrnRIMOQbxhTLiht\nJHme75RlUKMdbnelJx6PY/78+Vi+4kvUdu2C2ppqPDr3RWTmfAyush6u5y5GWhQhgkM6VA3PrUuQ\nfuMBiHfMAFp3YtSIYbj/xRcwYMAAxONxw7JJbAaNnS1iJdhKD9DubNmeHnk2if4mn2yhlonmSpUN\nJ9hwYBf0+Cl2zpIda5HP76BjEC+eJNnT6bTtw/EA/ZScXJRRrT2JWoMeM5HJZLBz507MvnoORj4/\nB7WHDZR+d8A5E3DHkf+D6VOmom/fvrquWQ3sSIjJwX7PqVRK2k9QcAjsq26xlKx8gihA4RPNHTWq\nIgT7ZWk14kpygalUyvSZHSxIl5x4t/QQU3aFVc8AIGlOZ1M+MhOsYTAy6OE4Lmc2PJvak5UKJ6Io\nYtu2bfB6vaipqQEArF27FiedcQ5aKwYj3jAJ7rbNiC9/COLxdyNQWQ8A8Bx0ItLv3Qsc+ZP2jW9l\nN3hm3Q3xmKvgu3kE/vHsXNTW1mat9BSaQSNKmR3iBiyy8ZPlSmbpdLpD1pD9m1yN5lQpk2eTKPCQ\nwwk2HNiNQvxLIpFAPB6X+ghpOrdVoIRcIBDoMO/A7XYjEol06Nmi9Zo95TobzBIJyVb1yNeTaKTi\nlBrs3LkT27dvR8+ePaWgkED9nu+99x6qRvXtEGgAQLhPHXqcfTj+/vw83HzDTaZWeoohIcaC9hMs\nsyXbNWsVRMk30Vz+jpQD3bfsgg2C1ge1ULlAtWvJ5wiU5mfIdclpw01Ze5YbyA4t8nq9aGtrk3h+\n2bh+oihi69at4HkedXV1ksqVEugctJFnN7BmGoZc3Eq2B8DoDBoFEwBQX1/f4freeust3P7bh7Bl\n+x6IQgoHHzQI//Ora3HZ1Tdg10FXwzvyPPjF9rEZ0dWLkOk2VNLmdg89Hq5//RGZR84GTr0JmcbB\nwKolCD5/Ha64fDa6desGAJ0qPYX2txRbqZ4NTtX09BglW0h/QwpuO3bswCeffCIlFozA9ddfj/nz\n58Pv96Nfv3546qmnOjl3Bw6Ajj0bWkAbMp7ndfURZluTGj9F/Rm5BspS/wZVHalSHY/H0dbWBq/X\ni+rqakSjUcRiMVRVVYHneTQ3N6OiokKih1VVVUl04erqarS2toLjOFRXV2Pv3r3w+/2oqqrCnj17\nEAgEEIlEEIvFwHEcgsGg5NflgiVGQ21PIlXtraBm79y5E9ffeguWfLwMoYYaxLfswinHnoDbb7oF\nwWCwg7Ttnj174O/XTfE4gX51+O6T71Vfc7aZW/n8VDElxLLRuJSuOdv8lmx+CthXnc/WaM7zPID2\nisbbb79t6Dwou/wUl8e4WJcqMQjUyNPa2io1o+WDnLbEPuhajpMNVL7N9oWSQSRaFBldj8cjfYZk\n8Xbs2IHly7/B9u17UFVVgTFjBmPQoEHStbe0tGDBgvfw5Zffw+OpBMfFMGLEATj22CkdgomNGzdi\n3ry3sGMHB5fLD7d7L370o5GYOnVih+tPJpN4/fW3sXjxF0il3AiFRBx11CE47LCxnabSRqNRLFmy\nFO+//yVEUcRhhw3GlClHKF63IAj47LPPsGbNBlRUhDB+/KGora1VvD/pdBpffvkl2tra0LdvX4m7\nSMaNzaBt2rQJO3fuRI8ePTBgwABFo7VmzRosWvQu4okkDh17CA477LAOBmXZsmW49c4HsaFpJzhw\n6NWjK2676UpMmDABCxcuxKW/uBPiuAfgazwcENNIrHkV3H9vhOCtBHfhxwA4cBzAgUPLP84BP/BI\neMadBz/xOFNxpBbeCWHJw3BnePQdNBS/vHI2zjrrrLxGlq0A8DzfacAem01So01uFdisVSEN+2SE\n6X/5skkAOmSTCETxWL9+Pa655hp8+umnGD9+PI477jgcffTRGDZsWMGObtGiRZg6dSpcLhduuOEG\ncByHu+++u6BjKcDeNF9xo+T8FD3PpM5E1YF8n8m2cdZynGyg9VRVVSn+nt5hqkqm02ns3bsXLpcL\nXbp0QTwex1dffYO1a5tQXV2Jvn17YNOmrfj88w1Ip0VUVbnQ1sYjFvMjHo/h++/XIRCoQyTSDWvW\nfA63O4IePQbg22+Xg+Mq0L17A9asW4lwpB6VlQFs2rwadQ39wYmt2L7ze/TufxBiLVvQ3LoXB/Qd\nAj6+A4l4C0JVdfD5vAhxrUhmOMRSImqrKzG8Xx12RXmsa9qOmi4RHD1hFEKhIBZ/tBzN0TiG9TsA\nUycdAY/Hg6XLPsLGrdvQUNMVRxw+Ht26dUM6ncZnn32GLVu2oLq6GmPGjJHutyiKWLVqFXbu3In6\n+nr079+/A3VTEASsWLECLS0t6N27N7p3796pJ7GtrQ1Lly5FIpHAwQcfjH79+nX6DqLRKJ59bh7+\n763XEY3GMHb4CFxy9nmd5jHxPI+jTj0RyR8NRt85p8ATCiC1uwWrb/sbDmoJ4PGHH+1QXfnggw9w\nya3X4PBlt3Wyfysu/BN+NupEXHLxJaqfJdZPyW02XTOdp9gSYsSgCIVCmpPO8mtmKeDs9VLQQaDA\nk85HFbK9e/fisssuw0cffYTBgwfj1FNPxdFHH40xY8YUnBC3y0+VXbBBRpyyJ/k2WXLakhxqj5ML\nFPUqbbrZQCcQCGD58hX49NNvkU57AQjo2bMLxowZjmAwiDVr1mHRoq9RVdUXFRVdEI+3YffudRgz\npgFTphyBTCaDuXNfxObNEXTvPhCiyEEQUvjuu6/Qp08M5557OrxeL3bv3o37738OweAR6NKl8Yc1\nJrB587s47bT+mDz5CADtL8Ujj/wVK1aE0Ng4CT5fGNHobjQ1vY3p0yO44IJZ0nW0trbi9tv/gE2b\n+qJLl0PBcW7s3ftf1NV9idtumy1RjQBg165duOWWB7F5czVEcRhE8f/ZO/P4qMrrjX9nyWQy2Qhb\ngLDIoiKLUhYRQQUUIUwAq9ZaKFRFrbYKarXaumLFqrhi1Z9aN+q+QCbsogiCCAgoCIiA7AEStpBJ\nZjLr/f0R38vN5E4ymfUmzPP58AfJZO57t3Pec85znnMcg2E1t902mpEjL6txfbZs2cLD017heFkL\ndPqW+D1bGXpJN/5+z19ITU2VnWx5eTn/fOApNm8rQ2/qirdqB+ecmcljj95NXl6e/DLPeHom737y\nNb5mo5H0GRgrlnJOJ3j9lRlkZWWxfv16Jtx4H/T4F2ntLgbAeWgl0pb7mfV/j3Hnff/iYJdHSG0/\npMY6y778Kx5XCem//xR+DTQAPLuXUz73z+j/vJC01p2BX2kT8+9jaMZePnn3rbCfK/FdwrCJbIgw\nbKIpM9EqZaKJNFpZq8AMUOAgRTgVeCjtm5j/4vf75U3CiBEjuO+++1iyZAmbN29m2bJlUXF2hYWF\nfPbZZ/zvf/+L+Lt+RTLYCI5G66eUWfi6EEhbCnxGQ/2e+tZkt9tp1qxZrd+JgbKikr158xbWrv0J\nj8cA+LBY/Bw+XAa0IScnF4fDzqpVS2jZsicDBw7h5MnjfP75l6Sk5HHRRQPYtOkbjh7N/fW93Yvd\nfiZ+fzYnT35OTk4+Ho+Rw6U2Onb9EydObKfMvpHOPa6jeO88/Cke2nQbS8nu2RgsRtLyhuG3/4i3\nYhu+3IvIykyhhX4/W3b+Qmrbcxg2fBglP63guxVzadN3BP0vvhRn2RG+/+gJfJYMuo+eSGpmNvY9\nP+FeV4TPYEDf+yJS2nbGe7QY47bVXDfyYmYvXc6hjFb4OpyJ/kgxGft+ZtptN5OTk8NDz73ALo8f\nfYfO+Pf+wtmWVKbddQetW7dm27Zt3P/s05SkGElp0xrP9p0M73kuU2+6SbbVS778kqfefA1j/57o\nmmXiWvUDg7udzb8feFi2VU6nk4m33sy+9hm0uW4MpuZZHFu+nrJXC3npoelceOGF8v2aP38+D3z8\nKr0//EeNZ8Xv9fHd4LuYNeNF+vXrV6N/bshlQzFc1YNud1nR/bqRLbZ9x847P2DDqrVBg9BQoPRT\nXq9XrgDo9XpcLhdms1kTCTFlv0g0/ZRIgisTg+IzSmownJKJ9ng8cjVj0qRJXHXVVWzYsIHly5ez\ncuXKiN51gXj6qSZNo6orkAqkLcWS4x9sLSLQSUtLw2w28803q9mw4RBt2/bAZKru19i/fz9Hj37N\nmDGXsmzZJtq1G0BKSvXmMTMzh/T037Bhw3f07FlKVVUVe/a46NTpAvkYKSlGunbtx549X7F//35y\nc3NZuvQb3O6u5Oa2UXzOTF7exSxZMp8LLxxISkoKv/zyCxs3VtKp05VAdbRtNKbTtetv+eabt8jP\nLyE3t7oXYd68Jezb14OOHcfK35mZ2ZEDBzL45JMF3HLLRPnnTz/9BgcOXEK7dvnyz1yu0bz44mN0\n69ZZzuiUlJRw9z0z0aXdSW7HcwHw+z0sXfE6Ol7hjjtulKeT3zb1YfaftNKi+1XodHokyc/2A59x\nx12P8uZ/n8ZgMLB8+XLe+Wwj2X0/xJBSTZ2RpIls2fY00594nicff4gnn3sN/5n3kpE3VF6bpd3F\nVHj+yb+eeJGDJccwXTS41r1MPfN3VH5+AxbJj153qjye0vkSTC3PRpo5EF3/a3GntcKycwGdm6fy\n6pvv1ffo1As1Dq1o2AfknqNYKYfUh1iUx5U0qboGKao1mouStsfjkZvzxo0bxxVXXBHxupR48803\nufbaa+v/YBKnJUKVvlXrI4zlmtTW4vV6sdvtcqDz44+bWb58G23anE1qqhlJkliwoJDKyjQuv7wb\n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\nSkpK5P9LkoROp2P69OmMGTMGgOnTp5OSknLaG2+B1NRURo4cyciRI/H7/axfvx6bzcazzz5L69at\nyc/PJz8/X55oWV+fRzz4nA1FYONYQwyvkj9rNptlg+52u3E4HBGppgiOcKJ7WZRQ6xvZvn07s2fP\nxmaz0b59e1atWsW8efMidjrXX389t99+O5MmTVL9/cKFC/nll1/YsWMHa9as4ZZbbmH16tURHTOJ\nJLSApK9qGIxGI0OHDmXo0KH4/X62bt1KYWEh11xzDenp6YwaNYqCggJyc3NJS0urt89DqfinxYRY\nRkZGg/1Uff144dKCtZoQC1Tn2r9/P2+99RZvvPEGvXr1Yt26dcybN496kuYhIemrYosmV9l4++23\nef3111m6dKlmyoBahSRJ7Nq1i6KiIhYsWIDP52PkyJFYrVY6d+4M1O7zENKFqampMWlwDgex1CaP\nZDqsKJNriSOsViZftWoVDz30EJ9++qncsBlN7N27lzFjxqhmi2655RaGDRsmyxWec845LFu2TJ64\nmoSMxO+UtItG56cg6atChSRJHDx4kKKiIubNm4fdbufSSy/FarXSvXt31T4PQRUWCRWtBBqxoh0H\nkz8PhW6l5YSYMqG5detWbr31VmbNmhUzim/SV0WMplPZqAuLFi1ixowZfP3110njHQJ0Oh1du3bl\nzjvv5I477uD48ePMnz+fRx55hOLiYi666CIKCgro27cvZrOZ1atX061bN1JTU3G5XDXKuIniwcZ6\nMJNS3UrZYC0G3wVrstdiM6JaoLF8+XIee+wxCgsL5Un18URxcbE8eRggLy+P4uLipAFPokkj6atC\nh06nIy8vj1tvvZVbb72V8vJyFi1axHPPPcfOnTu54IILGD16NIMGDcJsNvP999/Tpk0bMjIycLvd\n+P3+hPspNSWlaELpp8xms5wkFH4qGC04lL6ReEOtQX3jxo1MmTKFDz74QBa8iTeSvioyaOPpihJu\nv/123G43I0aMAOCCCy7g5ZdfTvCqGgd0Oh0tWrRg0qRJTJo0CafTyVdffcW7777L3/72N3Jzc1mz\nZg1z5syhb9++QUu48RzQFG86l5JuBaeqPi6XqwbdSlybhpbJYwk1Pu7nn3/Os88+S1FRES1atEjw\nCpNI4vRB0leFj6ysLK655hquueYaPB4PK1asoLCwkAcffJCWLVuydu1a/vvf/3L55ZfX6PMIJv0d\n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\nfz79+vVDrVbz9ttvV6jerdVqK+TUy9Rcaiwz7+WVHVlfUnkyWBgAABWOSURBVFKiDDR0Oh2/+93v\naN++PcnJyRgMBpKTk7lx40at7yc51bg1jp9K8Vw3b94kJSXF1Nf61Zi9vT0TJ05k4sSJyi/V0dHR\n/P73v6d79+6o1Wp8fHyUDr2qeh4/t3Gvqo6yMaiqCmxRURHTpk1j3LhxhIWFKc84atSoOrlncnIy\nbm5udO7cGYDg4OAqP738mVnSn5WWlkZYWBiDBg0iIiICKK3qOmDAAGxtbdm2bRtffvklgYGBBAUF\n4ejoiKOjIwBHjx7l9u3bLFy4kIEDB9KpU6datUUI8WIkpyqytbVFrVajVqvR6/UkJyej0WhYuXIl\nHTp0ICAggHfffRdHR8cXrudR3rObrhuD8vlZNvOu1WqZM2cO7u7uLFmyRHmmoUOHMnTo0FrfU3Kq\ncWscv0GJauXn5zNhwgT+/ve/S5GbKlhZWTFy5Ej+9re/cerUKRYtWsSPP/7IhAkTmDhxIps3byY7\nOxtbW1vs7e2xtbVVqqk+fvyYoqIiZQNbmbKZg/IdZWNQNtAo2wyuUqnIz89n8uTJTJkyRRlo1LX0\n9PQKnaKLiwvp6emVrjt16pTy6d2///3vF7pH2UlkiYmJfPvttzx69AgoXR/dq1cvPv74Y/z8/AA4\nefIkBoNB+X+WlZVFTk4O7u7ufP311/Tr1+9lH1UI8RIkp57PwsKCIUOGsHz5ck6cOMGKFSvIyckh\nNDSUoKAg1q9fT0ZGBjY2NkpOlX2Q9PjxYwoLCyvlFJTOvDfGgcaz+VlcXEx4eDj9+vWrMNCoS5JT\njZvMbDRiWq2WCRMmMHXqVIKCgozdnEbPwsKCPn360KdPH5YuXUp6ejoxMTHMmTOHgoICvL29UavV\nyicdZcutyooTlU1hl3XqjW2gUVhYCJRWalepVOTm5hISEsKsWbOYMGGCUdv35ptvcuvWLZo3b058\nfDxjx44lNTW1Rl/74MEDwsPDGTx4MNevXyc1NRVfX18OHz6s/OLSu3dvhg8fzoEDB5SBVhkrKyu6\ndetGnz59gP9/cmUuG++EMCbJqRejUqlwc3PjN7/5DfPnz+fBgwfs3buXyMhIsrKy8PLyIjAwEA8P\nj2qL6FlZWSn51Vhn3ssv8Z0+fTo+Pj7MmjXLqP2y5JTxNI6fUFGl6dOn88YbbzB37lxjN6XJUalU\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "T_z = matrix([0,1,2,3]).T.A\n", "T_y = matrix([0,1,2,3]).T.A\n", "T_x = matrix([0,1,2,3]).T.A\n", "T = c_[T_z, T_y, T_x] \n", "P_z = matrix([0,0,1,2]).T.A\n", "P_y = matrix([0,4,7,9]).T.A\n", "P_x = matrix([0,9,1,4]).T.A\n", "P = c_[P_z, P_y, P_x]\n", "\n", "C, T, sd = \\\n", " spline_utils.compute_minimum_variation_nonlocal_interpolating_b_spline_coefficients(\n", " P, T, degree=7, lamb=[0,0,0,1,0])\n", " \n", "P_eval, T_eval, dT = \\\n", " spline_utils.evaluate_minimum_variation_nonlocal_interpolating_b_spline(\n", " C, T, sd,num_samples=num_samples)\n", "\n", "P_eval_spline, t_spline, P_eval_cum_length, t_norm = curve_utils.reparameterize_curve(P_eval, s_spline)\n", "\n", "figsize(14,6);\n", "fig = plt.figure();\n", "\n", "ax = fig.add_subplot(121, projection=\"3d\");\n", "ax.scatter(P_eval[:,2], P_eval[:,0], P_eval[:,1], c=t, s=50);\n", "title(\"$\\\\mathbf{p}(t)$\\n\", fontsize=20);\n", "ax.set_zlabel(\"$\\\\mathbf{p}_y$\", fontsize=20);\n", "xlabel(\"$\\\\mathbf{p}_x$\", fontsize=20); ylabel(\"$\\\\mathbf{p}_z$\", fontsize=20);\n", "\n", "ax = fig.add_subplot(122, projection=\"3d\");\n", "ax.scatter(P_eval_spline[:,2], P_eval_spline[:,0], P_eval_spline[:,1], c=t, s=50);\n", "title(\"$\\\\mathbf{p}_{\\\\mathrm{spline}}(t)$\\n\", fontsize=20);\n", "ax.set_zlabel(\"$\\\\mathbf{p}_y$\", fontsize=20);\n", "xlabel(\"$\\\\mathbf{p}_x$\", fontsize=20); ylabel(\"$\\\\mathbf{p}_z$\", fontsize=20);" ] } ], "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.11" } }, "nbformat": 4, "nbformat_minor": 0 }