{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Aliasing" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%pylab inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Fourier Series\n", "\n", "Recall the following:\n", "$$\\begin{aligned}\n", "x(t) &= A_0 + \\sum_{i = 1}^M A_i\\cos(2\\pi f_0ti + \\theta_i) \\\\\n", "&= \\sum_{i = -M}^M B_ie^{j2\\pi f_0ti}\n", "\\end{aligned},$$\n", "where $f_0 = \\frac{1}{N}$.\n", "\n", "This is called the Fourier series of $x(t)$. In fact, any $T$ periodic signal $x(t) = x(t + T) \\, \\forall t$ can be decomposed as a possible infinite sum of these exponentials.\n", "$$x(t) = \\sum_{i = -\\infty}^\\infty B_ie^{j2\\pi f_0ti}$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Aliasing\n", "\n", "If $B_i$ is only non-zero for $i$ between $[-M, M]$ and we are performing $N$ samples, then DFT is exact in finding the $B_i$. However, what happens if we are still only sampling $N$ times but $B_i$ is now non-zero for $i$ between $[-M_2, M_2]$, where $M_2 > M$?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example\n", "\n", "Let $M_2 = 2$, such that $B_1 = B_{-1} = 1$ and $B_2 = B_{-2} = 1$. This corresponds to $x(t) = 2\\cos(2\\pi t) + 2\\cos(2\\pi 2t)$.\n", "\n", "If we sampled this signal $N_2 = 5$ times, then we could correctly recover the $B_i$. However, assume that we are only sampling $N = 3$ times (which corresponds to $M = 1$).\n", "\n", "Then, as shown below, we do not recover the original $B_i$; instead, we fit the points to a sinusoids of lower frequency. In general, we need to sample at a frequency of at least twice the maximum frequency in the original signal." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAD8CAYAAABjAo9vAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xd4VUX6wPHvpCckkISEAAkh9F4C\noYsUERFFBBQRbFiwd1dd9afu2tvq2sVegEWliigo0qQEQgsdSYAUAgmENNJz5/fHCbuIQMo9J7fk\n/TxPHoM5d+Y9hLyZO2fmHaW1RgghhPvwcHQAQgghzCWJXQgh3IwkdiGEcDOS2IUQws1IYhdCCDcj\niV0IIdyMJHYhhHAzktiFEMLNSGIXQgg34+WITsPCwnRMTIwjuhZCCJe1adOmY1rr8Kquc0hij4mJ\nISEhwRFdCyGEy1JKHarOdTIVI4QQbkYSuxBCuBlJ7EII4WYksQshhJuRxC6EEG7GtMSulPJUSm1R\nSi0yq83TzZgBMTHg4WH8d8YMK3oRQghr1GUOM3O54/3AbqChiW0Cxl/AtGlQWGj8+dAh488AU6aY\n3ZsQQpirrnOYMuNoPKVUFPAl8ALwkNb68vNdHxcXp2uyjj0mxviLuLz9T8Q2TeREcTAnioKxBTRh\n5rJu0CDMrviFEMJ0NhucOEBJxm4ev/cEqjiXEP8cvtg6meQTrQFo2RIOHqx+k0qpTVrruKquM2vE\n/hbwKBB0noCmAdMAoqOja9R4Sorx31Ftf+XuPp/8+YuvgS2oOR5RvaHDaOhwKfiH1Kh9IYQwxfEk\n2LUA9i+jImMbnqX5+AJvDjG+bNOKtan9/pvYT+U2s9k9YldKXQ6M1lrfpZQaCjxi1YgdwMujjGC/\nXIL9cmkfdYABl8+lp9chhvjuI6g0Ezy8oNUQ6DsN2o00JrSEEMIqJfmwZQZs/hIydwGQ4tuOlYUt\n2adaE92pLx8+05uklFDyShqiT3u06cwj9kHAFUqp0YAf0FAp9Y3W+joT2gbghRf+Nz9VbvPmWGEY\nhYTx7KNt6DmsD+8t38892zOY2DyLZ9rsp8HeeTDrGghrDwPuhp5TwNPbrHCEEAIKMmHdu5DwBZTk\nQlQfDsQ9xV2bo0gpCmHqBa14YFAMjQN9CbAZOez0YXRAgJHbrGDKHPt/G7NoxA7Gw4cnnzTeukRH\nG38hpz90WJR4mL99l0iQnxcfTO5O7/yVsO4dyNhmJPhLXoR2F9firoQQ4jTlJbD+A1j1OpSdhE5X\noAfcw6cHG/PST3uIaRzA9BviaBMe+KeXVZXDqqO6I3aXSezVsedIHtO+2kRGbhGf3dSHwW3DYN/P\nsORJyE6CthfDZW9ASEvT+xZC1AP7f4UfH4ETB6D9KBj5PIS148XFu5m+KpmRnSN4Y2IPgvysmSFw\nSGKvLqsSO0BOYSmTpq8nNbuQWdP60z0qGMpLYcN0WPGycdHo16DHJFDKkhiEEG6mtBB++T/Y+Ikx\nAzDqZWh7EQDTVyXx4uI9XN+/Jf+4ogseHtblleomdrd7shgc4MOXN/clpIEPUz/fyIFjJ8HLBwbe\nA3eugaZdYf4d8O0NUHTC0eEKIZzd4a3w0YVGUu9/N9y++r9Jfc6mNF5cvIfLujfjWYuTek24XWIH\niGjox1c390UD138az/GCEuMLIS3hph9hxLOw9yf4eDhk7XVgpEIIp5b4HXx2CZSehBsWwKgXwdsP\ngFX7snh0TiKD2jbmXxN74OkkSR3cNLEDtA4P5IupfcjML+Fv3yfy3yknD0+44EG4aZGxTOnji2Df\nEscGK4RwLrYK+OVpmHsrRPaGO1ZD66H//XJmfjEPzt5KuyaBfHR9HL5eng4L9WzcNrEDdI8K5olL\nO/Lbnky+WnfGwSPR/eG25RDaCmZeA/EfOSZIIYRzKSuG2dfDmn9D3M1w/fw/7W632TQPf7uNk6Xl\nvHNtLIG+DjmI7rzcOrED3DgwhmEdwnlh8W72HMn78xeDW8DNS6DjZfDTo7DiFXDAw2QhhJMoyYcZ\nV8HexXDpq3D5m8YzutN8tuYAq/84xv9d3pl2EefcbO9Qbp/YlVK8dnUPGvp5c9+sLRSXVfz5Ap8A\nuPpL6DEZVrwIS54wajwIIeqXwmz48go4tBbGfwz9bv/LJTsP5/Lqz3sZ2TmCyX1rVhqlLrl9YgcI\nC/TljYk92He0gPeW7//rBZ5eMPY96HcHrH8fFj8sI3ch6pPCbPjicji6EybNgO5X/+WSCpvm0e8T\nCQ7w5pUJ3VFOvFy6XiR2gCHtwxkXG8lHK5ONJZBn8vAw1qYOegASPoOlT0lyF6I+KM6Fr8fB8f0w\nebZRSPAsZsQfYufhPJ4Z04WQBj5nvcZZ1JvEDvD30R3x9fLgmYU7OevGLKWMpZB9pxk1IFa8VNch\nCiHqUulJmDERju6Aa76GNsPOetmxghJeW7KXC9qGMbpb0zoOsubqVWJvEuTHgxe3Z9W+LJbsPHL2\ni5SCUa9Az+tg5Suw9t26DVIIUTfKS+E/UyBtA0z4BNpfcs5LX1q8h+KyCv4xtotTT8GcUq8SO8AN\nA1rSsWkQ//xhF4Wl5We/yMMDrngbOo+FpU8a9ZWFEO5Da1j0ICQvhyvegS7jznnpxoPZzNmcxm2D\nW/+lsJezqneJ3cvTg+ev7Mrh3GI+XnXg3Bd6eMK4jyCqL8ydBqkb6y5IIYS1Vr8OW7+BIY9B7Lkr\njGuteW7RLpo18uOe4W3rMED71LvEDhAXE8olXSL4eHUyJ06WnvtCb3+4dhYENYVZkyD7PL8IhBCu\nIfE7+O156H4NDP37eS9dsvMIiWm5PHRxewJ8nG8j0rnUy8QO8PDIDpwsLefDlUnnv7BBGEyZA7oC\nZl0LJQV1E6AQwnzpm2DB3dBykDEFc5758gqb5vWl+2gT3oBxsZF1GKT96m1ibx8RxLjYSL5Ye5Cj\necXnvzisLVz1ORzbCwvvkWWQQriigiyjVEBgBFzzDXj5nvfy+VvS2Z9ZwCMjO+Dl6Vqp0u5olVJ+\nSqkNSqltSqmdSql/mBFYXXhwRHtsWvP2sj+qvrjNMGMp5M55sPZtq0MTQpipohy+nwqFx2HSNxAQ\net7LS8ttvPnrPrpFNmJUV+df3ngmM34NlQDDtdY9gJ7AKKVUfxPatVyL0AAm9Ylm9sZUDh0/y6al\nMw28z3h6/uuzkLTc8viEECb55Wk4uBrG/Bua9ajy8v9sTCHtRBGPXNLBJZY3nsnuxK4NpyaevSs/\nXGau4t7hbfH0UHywooq5djDm4654F8I6wJxbIf8ca+GFEM5j9w+w/j3oe7txcloVSsttvL88ib4x\noVzYLqzK652RKRNHSilPpdRWIBP4RWsdb0a7daFJQz8mxrVgzuY0juRWMdcO4BsIE7+EskKYe5tR\nt1kI4ZxyUoyHpc1jjfNJq2H+lnSO5BVz9/C2LjlaB5MSu9a6QmvdE4gC+iqlup55jVJqmlIqQSmV\nkJWVZUa3ppl2YWtsGj79Pbl6LwjvYJT0PLAKfv+XtcEJIWqnosx4Z22zwVWf/aX87llfYtN8uCqJ\nLs0buuxoHUxeFaO1zgFWAKPO8rXpWus4rXVceHi4md3arUVoAGO6N2NmfAo5hedZ13662Oug61Ww\n/CU4tM7aAIUQNbfiJUiNhzFvQWjrar3kl11HSM46yZ1D27jsaB3MWRUTrpQKrvzcHxgB7LG33bp2\nx9A2nCyt4OszT1o6F6WMIvzB0caUTHGutQEKIarv4O+w+l/GAKzbVdV6idaaD1Yk0bJxAJd2bWZx\ngNYyY8TeDFiulEoENmLMsS8yod061bFpQ4Z3bMLnaw9SVFrNeXO/hkZB/rx0+PkJawMUQlRPcR7M\nvxNCYowp02pal3ScbWm53H5hG6c6mLo2zFgVk6i1jtVad9dad9Va/9OMwBzhzqFtyD5ZyrcJqdV/\nUYs+cMFDRt2JPT9aF5wQonqWPAG5aUatJ58G1X7ZByuTCA/yZXwv19plejautZ3KYn1iQomNDuaL\ntQex2WqwYnPIY9C0Oyy8z9jdJoRwjL0/wZavjQNzovtV+2V/HM1n9R/HuGlgDH7enhYGWDcksZ9h\n6qBWHDh2kpX7apCgvXxg/HTjINxFD0jJASEc4eRxY3AV0a3K4l5n+mLtQXy9PLjWic8xrQlJ7Ge4\ntGtTIhr68vnagzV7YZNOMPxJ2LMIds23JDYhxHks+TsUnYBxH1ZraeMpuYVlzN2czpU9Iwl18iPv\nqksS+xm8PT24rl9LVu3LYn9mDSs59q/cCLH4b8bhuEKIurFvKSTOhsEPQ9O/bKM5r9kJKRSVVXDj\nwBhrYnMASexncW2/aHw8PfiypqN2Ty+j5EDRCeMBjhDCesV5xmlI4Z1g8EM1emmFTfPl2kP0axVK\n5+YNLQqw7kliP4uwQF/G9GjOnM1p5BaV1ezFTbsaq2S2zYI/frEmQCHE//z6rLHkeOy7VZbi/ctL\ndx8lPaeIqYNiLAnNUSSxn8PUQTEUllbwXU2WPp5y4SNGobAfHpCDOYSw0qF1kPAp9L8LouJq/PIv\n1hwkMtifEZ0iLAjOcSSxn0PXyEb0bhnCjPgUdE1XuXj5Godh56XBylesCVCI+q6izJiCadTCWLhQ\nQ/sz81mXfJwp/aNd7iCNqrjX3Zhsct9oDhw7ybqk4zV/cXR/iL0e1r0HR3eaH5wQ9d269yBrt7G7\ntAYbkU6ZGZ+Kt6diYlwLC4JzLEns53FZ92Y08vdmxoaU2jVw8T/Br5ExqrDZzA1OiPosJ8V4N9zh\nMug4usYvLy6rYM7mNEZ2aUpYYM3m5V2BJPbz8PP2ZHyvSJbuPMKxgpKaNxAQCiOfMyrMbf3G/ACF\nqK9+esz476W1m+pcvD2D3KIyprjJhqQzSWKvwpR+0ZRVaL5LSKtdAz0mQ/RA42guWdsuhP32LIa9\ni2Ho4xBcu2mUmfEptA5rwIA2jU0OzjlIYq9C2yZB9G0VyqwNKTWrH3OKhwdc9oax1va358wPUIj6\npKzY2GEa1sFYCVML+47mk3DoBNf2jXbpmuvnI4m9Gqb0iyYlu5A1Scdq10BEZ+h7GyR8DhnbzA1O\niPpk3Ttw4qAxBePpXasmZsan4OPpwYTeUebG5kQksVfDqK5NCQnwZlZtH6KC8bYxINSYG5QiYULU\nXG6acXhGpzHQZlitmjj10PTSbk3dpi7M2UhirwZfL0/GxUbxy66jZJ+s5tF5Z/IPgYuegZR1sP07\ncwMUoj5Y+hRoG4x8odZNLNl5hPzicq7p435LHE9nxtF4LZRSy5VSu5VSO5VS95sRmLOZ2CeKsgrN\ngq3ptW8k9nqjSNjS/5MdqULUxMHfYec8uOBBCGlZ62a+TUilRag//Vu550PTU8wYsZcDD2utOwH9\ngbuVUp1NaNepdGzakO5RjZi9MbXmO1FP8fAwNlMUHIE1b5kboBDuylYBPz9u7DAdVPtxY2p2IWv2\nH+fq3i3wcPGj76pixtF4GVrrzZWf5wO7Adc/W+osro5rwZ4j+ew8nFf7Rlr0ha4TYO07kFOLOjRC\n1DdbZ8KR7TDiWfD2r3Uz329KQync+qHpKabOsSulYoBYIN7Mdp3FFT2a4+vlUbMzUc9mxLPGf5f9\nw96QhHBvJfnGMuGoPsaAqJZsNs33m9K4oG0YkcG1/+XgKkxL7EqpQGAO8IDW+i9DWqXUNKVUglIq\nISvLNc8FbeTvzaVdmzJ/SzrFZRW1byg4GgbcbTxETUswL0Ah3M2af0PBUbjkJbBjzfnapOOk5xS5\n/UPTU0xJ7Eopb4ykPkNrPfds12itp2ut47TWceHh4WZ06xAT41qQV1zO0l1H7WvoggchMAJ+/rss\nfxTibHJSjSnLrldBiz52NfVtQirBAd5c3Nm9yvOeixmrYhTwKbBba/0v+0Nybv1bNyYqxL92ddpP\n5xsEw5+CtA3G034hxJ+d2qk94lm7msktKuPnnUcY26M5vl6edoflCswYsQ8CrgeGK6W2Vn7UvNya\ni/DwUIzvFcXv+4+RkVtkX2M9p0CTzrDsn1Bey/XxQrijjG3GGab976x1PZhTFiUeprTcxlW968c0\nDJizKuZ3rbXSWnfXWves/FhsRnDOakKvSLSG+VsO29eQh6dR2vfEAdj0uTnBCeHqtDb2eviHGlOW\ndpq7OZ32EYF0jXSfM02rIjtPa6Fl4wbEtQxhzua02q9pP6XtCGh1oVFbujjXnACFcGVJy+DAShjy\nqHGegR0OHDvJpkMnGN8rym0Lfp2NJPZamtA7iv2ZBWxPtzMZKwUXPweFx40VAELUZ7YK+OUZCImB\nuFvsbm7e5jQ8FIyLdcutNeckib2WRndrho+XB3M21bJO++ma94RuE42jvnLtKFkghKtLnA1Hdxh1\nlbzsK9Jls2nmbE5nUNswIhr6mRSga5DEXkuN/L0Z2TmChduMBzN2G/6UMVqRw69FfVVWDMtfNOop\ndRlnd3PxB7JJzyniqnqw0/RMktjtMKFXFCcKy1i+N9P+xkJaQp9bYMs3cOwP+9sTwtUkfAa5qcby\nRhPmw+duTiPQ14uRnZva3ZarkcRuh8HtwggL9DVnOgZg8CPg5Qe/PW9Oe0K4iuI8WP06tB5qfNip\nqLSCxdszGN2tKf4+9WPt+ukksdvBy9ODK3s2Z/neTE7Utk776QLDYeA9sGs+pG+2vz0hXMW694wF\nBBc9bUpzS3cd4WRpBeNi6980DEhit9uVsZGUVWh+3J5hToMD7jHW7y77pzntCeHsCrJg3bvQeSxE\n9jalyXlb0okM9qdfq1BT2nM1ktjt1KV5Q9pHBDJvi0mrWfwawoWPQPJySF5pTptCOLPVb0BZEQz/\nP1Oay8ovYfUfxxjbs7nb110/F0nsdlJKcWVsJJsOnSDleKE5jcbdAg0jjVoZUiBMuLPcNEj4FHpe\nC2HtTGnyh22HqbDperd2/XSS2E1wZc9IlMK8Ubu3H1z4N0jbCPuWmNOmEM5o1WvG4GXIY6Y1OW9L\nOl0jG9IuIsi0Nl2NJHYTNA82zlCcvzXd/hIDp8ReByGtjBUyNhPWyQvhbLKTjeW9cVONMwpMsD8z\nn+3pufX2oekpkthNMi42kgPHTrI1NcecBj29Yejf4eh22L3AnDaFcCYrXgYPb2OZr0nmbUnHQ8GY\nHs1Ma9MVSWI3yahuTfH18mC+WdMxAN2ugvCOxm48mx0nNgnhbDL3QOK30G8aBJlz+IXNppm/5TCD\n24XTJKh+lRA4kyR2kzT082ZE5wh+SMygrMKkqRMPTxj2BBzbZ9TQEMJdrHgRfAJh0AOmNZlw6ATp\nOUX1+qHpKZLYTTSuZyTZJ0tZ/YeJZ7p2ugKadoeVr0JFmXntCuEoGYmwa4FxiEaAeevM521JJ8DH\nk5Fd6sfxd+dj1pmnnymlMpVSO8xoz1Vd2D6ckABv5tl7AMfplIJhTxqHcWz7j3ntCuEoK14G30bG\nge4mKSmv4MfEw1zSpSkBPl6mteuqzBqxfwGMMqktl+Xj5cHl3Zvzy64jFJSUm9dw+0ugeS9Y9aoc\noSdc2+EtsPdHo3SGf7BpzS7fk0VecTlXyjQMYFJi11qvArLNaMvVXRkbSXGZjSU7jpjX6KlRe04K\nbJ1hXrtC1LXlL4F/CPS7w9RmF2xNJyzQl0FtGpvarquqszl2pdQ0pVSCUiohK8vEOWgn0ys6mOjQ\nAOZvNfnAjLYXQVRfWPU6lJeY27YQdSEtAf5YAgPvM0pnmCS3qIxluzMZ06MZXp7y2BDqMLFrradr\nreO01nHh4eF11W2dU0pxZc/mrNl/jKN5xWY2bKyQyUuDzV+Z164QdWX5CxDQGPpOM7XZn7ZnUFph\nk9Uwp5FfbxYYGxuJTRs1K0zVeihED4TV/zJOmxHCVaTEQ9JvxmjdN9DUpudtSad1eAO6Rdp38LU7\nkcRugTbhgfSIamRe7ZhTlIKhj0P+YdjytbltC2GllS9XjtZvM7XZ9Jwi4g9kM65nJMqEU5fchVnL\nHWcB64AOSqk0pZT9x4u7uCtjI9l5OI99R/PNbbjVhTJqF67l1Gh90P3g08DUphdUPssa21OmYU5n\n1qqYa7XWzbTW3lrrKK31p2a068ou794cTw9lbokB+POoXebahStY8RIEhEGfW01tVmvNvM3pxLUM\nIbpxgKltuzqZirFIeJAvg9uFsWDrYWw2k2uqnxq1/y6jduHkUtYbh8ZYMFrflZHHH5kFsnb9LCSx\nW2hcbCTpOUVsPGjyEv//jtozYPOX5rYthJlWvFw5Wjd/dnb+lnS8PRWXdavflRzPRhK7hS7uHEGA\nj6f5a9rhtFH7W7KuXTin1A2WjdYrbJoFWw8ztEMTQhr4mNq2O5DEbqEAHy9GdWnKosQMistMLrur\nFAx9TObahfNaUbkSxoLR+rqk42Tml8ja9XOQxG6xK2MjyS8uZ/meTPMbbzUEWvSD39+UUbtwLmkJ\nkLQMBt5r+mgdYO6WNIL8vBjesYnpbbsDSewWG9Q2jPAgX/PXtIMxah/yGOSlSw0Z4VxWvgL+odDH\n3HXrAIWl5SzZcYTLujXDz9vT9PbdgSR2i3l6KMb2aM7yvZmcOGlBZcY2wyGqj7GuXSo/CmeQvgn+\nWGpUcDR5lynAL7uOcrK0Qtaun4ck9jowrlckZRWaRdszzG9cKRjyOOSmwraZ5rcvRE2tfNWo4Ghy\nTZhT5m5OJzLYn36tzDukw91IYq8DnZs1pGPTIOZuTrOmg7YXQWRvWP2GnLIkHOvwVtj3M/S/G3yD\nTG8+M6+Y1X9kMS42Eg8PKSFwLpLY64BSivG9ItmSkkNyVoEVHRhz7TkpxgHBQjjKqtfAr5FxSLUF\nFm47jE0b74LFuUliryNje0bioTC/xMAp7UZCsx6w+nWoMPH0JiGq68gO2LMI+t1pJHcLzNmcTo8W\nwbQJN3/u3p1IYq8jEQ39GNQ2jLlb0s0vMQD/G7VnJ8OOOea3L0RVVr0GPkHQ39zTkU7ZnZHH7ow8\nJshovUqS2OvQhF5RpJ2woMTAKR1GQ0Q34wfMZvKGKCHOJ3M37FoA/W43HpxaYF5lCYHLuze3pH13\nIom9Do3sEkEDH0/mbrZoOkYpGPI3OP4H7JxnTR9CnM2q18E7AAbcbUnz5RU25m1JZ1iHJoRKCYEq\nSWKvQwE+XlzarRk/bregxMApHcdAeKfKUbvNmj6EON2xP2DnXOh7KwRYswRxTdJxsvJLGN8rypL2\n3Y1ZB22MUkrtVUrtV0o9bkab7mp8r0gKSspZsvOINR14eMCFj0DWHtjzgzV9CHG61W+Apy8MuNey\nLr7flEZwgDfDOrrveclmsjuxK6U8gfeAS4HOwLVKqc72tuuu+rdqTFSIP99vsmhNO0CXcdC4Hax8\nDbQFD2qFOCU72VhiG3czBFqTdHMLy1iy8whjezTH10tKCFSHGSP2vsB+rXWy1roU+A8w1oR23ZKH\nh2JCryh+33+M9JwiizrxNEbtR7fD3p+s6UMIMEpZeHjBoPss6+KHxMOUltu4Oq6FZX24Gy8T2ogE\nUk/7cxrQz4R23dZVvaP497I/mLspjXsvamdNJ12vMsqmrnoVOlxqPFgVf2KzaVKyC9l5OI9dGbmc\nLPnfc48mDX3p2rwRXZo3pHGgrwOjdGI5KbBtljFaD2pqWTffbUqjY9MgujRvaFkf7saMxH62jPGX\n9/9KqWnANIDo6GgTunVdLUID6N86lO83p3HP8LbWnK7u6QWDH4aF98D+X6Hdxeb34aL2HMnj241p\nLNiazvHKwmxeHooGvsaPg9aavOL/bfLq2DSIq3pHMS42UpL86X5/E5QHDHrAsi7+OJrPttQcnrqs\nkzU/J27KjMSeBpz+HikKOHzmRVrr6cB0gLi4uHo/8Xt17xY8/N02Nh48QV+rihn1mGQUZFr5CrQd\nUe9H7WuTjvHqz3vZmpqDt6diRKcIhrQPp2tkI9pFBP5p/ja3sIydGblsT8tl8Y4jPP/jbl7+aQ9j\nejTn4ZHtiQqp54cn56bDlm+g5xRoZN2Goe82peHloeRc0xoyI7FvBNoppVoB6cAkYLIJ7bq1S7s1\n5ekFO/h+U6p1id3TGwY/CIsehOQV0GaYNf04ueSsAl5cvIdfdx8lMtifpy/vzJWxkeddD90owJuB\nbcIY2CaM24e0Ye+RfGZvTGVG/CEWb8/g1sGtuHNoWwJ9zfgRckFr/g3aBhc8aFkX5RU25m5OZ1jH\nJoTJO6Uasfvhqda6HLgHWALsBr7VWu+0t113F+DjxWXdm/FjYgYnSyys7dJzCjSMNEbu9YzNpvlk\ndTKXvLWK9cnHeXRUB5Y9PISbL2hV400uHZoG8fSYzvz2yFAu7dqU95YncfG/VrLhgEW7iJ1Z/hHY\n9AX0uBZCWlrWzcp9WRwrKOGq3rJ2vaZMWceutV6stW6vtW6jtX7BjDbrg4lxLThZWsGPVtRpP8XL\n15gDTVkLB3+3rh8nc7yghFu+3MjzP+5mWIcmLH9kKHcNbWv3iTuRwf68NSmWOXcOxMfLg0nT1/H2\nsj+osKL+j7Na+w7YymHwQ5Z2M3tjKo0b+DCsgxx/V1Oy89SBercMoW2TQP6zIcXajnpdD4ERxlx7\nPZCYlsPot1ezZv9x/jm2Cx9d35vwIHPfyvduGcKiey9gTI/m/OuXfdzwWTy5RfWgFn5BFmz8FLpP\nhNDWlnWTmVfMsj2ZXNU7Ch8vSVM1JX9jDqSUYlKfFmxOyWHf0XzrOvL2h0H3w4FVkLLeun6cwPK9\nmUyavh5vTw/m3T2QGwbEWLaaIsjPm7eu6cmrE7qz4UA2Ez9cR0auRXsTnMW6d6GixFhxZaHvNqVR\nYdNc00fWrteGJHYHG98rCh9PD2ZZPWrvPRUahLv1qP27hFRu/TKBmMYNmHvnQLo0t6Ym+OmUUkzs\n04IvpvYlPaeI8e+vtfaXtCMVZsPGT6DrBAizaP8FxrOR2RtT6dcqlNZSd71WJLE7WGgDH0Z2iWDe\nlnTrCoMB+ATAwHsh6TdIS7CuHwf5Ys0B/vZ9IgNaN2b27f1p0tCvTvsf1DaM2bf3p9ymueqDtexI\nz63T/uvEuveg9CQMfsTabpKPk5JdyLV96/d+F3tIYncCk/pEk1NZD8NScbeAf6jbrZCZEX+IZ3/Y\nxcjOEXx2Ux+C/LwdEkeX5o2v7uYOAAAezklEQVSYe+dAgvy8ue7TePYcyXNIHJYoOgHxH0GXK6FJ\nR0u7mrUhhUb+3ozqat1uVncnid0JDGzTmBah/tZPx/gGwsB74I8lkL7Z2r7qyLcJqTw5bwfDOzbh\n3cm9HP6grUVoADNv64evlwdTPo5nf6abTMus/wBK8+HCv1naTfbJUpbuPMq42Ei7VzDVZ5LYnYCH\nh2JSn2jWJ2dbc9j16frcBn7BRr12F/djYgaPzUlkcLsw3p/i+KR+SsvGDZh5W3+UUkz+OJ7U7EJH\nh2SfohxY/yF0GgMRXSztau7mNEorbDINYyfn+EkQXN07Ci8PxYx4i0ftfg2NU272LoaMbdb2ZaGN\nB7N58Nut9I4OYfr1cU43umsTHsiMW/tRVFbB1C82klvowkshN0yHkly48FFLu7HZNN+sP0TvliF0\naBpkaV/uThK7k2jS0I9RXZvyXUIqRaUWn1fadxr4NnLZufakrAJu+yqBqGB/Pr4hDn8f50rqp3Ro\nGsRH1/fm0PGT3P5NAiXlLngObXGe8dC0w2ho1t3SrlbvP8bB44XcMMC63az1hSR2J3LDgBjyistZ\nsNWiM1FP8Q82TpLfswiO7LC2L5MdKyhh6ucb8VSKz6f2IcTJz78c2CaM167qwfrkbB77PhHtagef\nbPgIinMsn1sH+HrdQRo38JGHpiaQxO5E+sSE0CEiiK/WHbI+AfS/E3wbutS69tJyG3d+s4nM/GI+\nuTGOlo0bODqkarkyNpJHRrZn/tbDvL8iydHhVN+p0Xr7URDZy9KuUrMLWbYnk0l9W8gpSSaQxO5E\nlFJcP6AluzLy2JySY21n/iHQ7w7YvdBlRu3/+GEnGw+e4JUJ3YmNDnF0ODVy97C2XNGjOa8v3ctv\ne446Opzq2TDdWOY45DHLu5q5IQUFTO4n0zBmkMTuZMbFRhLk68XX6w5a39mpUfsq559rnxmfwoz4\nFG4f0pqxPV2vNrdSilcmdKdzs4bcP2sr+zMtXv1kr5J8o3xAu5GWj9aLyyqYvTGVEZ0iiAz2t7Sv\n+kISu5Np4OvFhN5RLN5+hGMFJdZ2FhAK/W6HXQvgqPNWWk44mM0zC3cwpH04j15i7eYYK/n7eDL9\nhjh8vDyY9lUCecVOvFLmv6P1xy3vavH2DLJPlnK9PDQ1jSR2J3Rd/5aUVtiYsd7ipY8A/e8CnyCn\nXSGTlV/CXTM20zzYn7cnxeLp4dqnQEUG+/P+lF4cyi7k0e+c9GFqST6sfRfaXgxRvS3tSmvN52sO\n0jqsAYPahFnaV30iid0JtW0SyLAO4Xy9/qC19WPAGLX3vwN2zYeju6ztq4YqbJr7/7OF3KIyPpjS\nm0YBjikVYLZ+rRvz90s78vPOI3z6+wFHh/NXGz6GomwYav1oPf5ANtvTc7llcCs8XPyXtjOxK7Er\npa5WSu1UStmUUnFmBSXgtsGtOVZQyvwtFi99BGPU7tsQVr5sfV818OYv+1ibdJznruxKZzc7of6W\nC1pxSZcIXvppDxsPOtEpTCX5sPbtytG69T/Sn6xOJrSBDxN6ySlJZrJ3xL4DGA+sMiEWcZoBbRrT\nuVlDPvn9ADarT+cJCDVWyOxa4DQrZJbvyeTd5fu5Jq4FE+Pcrya3UorXru5BVIg/d8/YTFa+xc9T\nqiv+I2NufejfLe8qKauAX3dncl3/lk63c9jV2ZXYtda7tdZ7zQpG/I9SitsubMX+zAJW7suyvsMB\nd1XuRnX8qP1wThEPfruVTs0a8o+x1tYmcaSGft58MKU3uUVlPPTtVut/gVelOM849q7dJZbPrQN8\n+vsBfLw8ZKepBWSO3Yld3r05TRv6MX1VsvWd+YcYyx93/wAZidb3dw5lFTbum7WFsnIb702OdfuR\nXOfmDXlmTBdW/3GMD1Y6ePNSfOUu0zqYWz9eUMKcTWmMj40kLNDcYwtFNRK7UupXpdSOs3yMrUlH\nSqlpSqkEpVRCVlYdjEDdgLenBzcNimFd8vG6Obih/52Vo3bH7UZ985d9JBw6wYvju9Wb03Ou7duC\ny7s3442le9lwwEHz7cW5sO4doyaMxevWAb5Zn0JJuY1bB7eyvK/6qMrErrUeobXuepaPBTXpSGs9\nXWsdp7WOCw8Pr33E9cy1faMJ8vXi/RX7re/MP9io/LhnERzeYn1/Z1i5L4v3VyQxqU8Ll9yEVFtK\nKV4a343o0ADum7WF7JOldR/E+g+M5F4Ho/WCknI+X3uAizo2oW0TqeJoBZmKcXKN/L25cWAMi7cf\nYe+ROji0of8dxrTM8het7+s0R/OKeWj2VjpEBPHMGPedVz+XID9v3p3ci+yTpTzy3ba6Xd9emG3U\nhOk0Bpr1sLy7b9YfIqewjHuGt7W8r/rK3uWO45RSacAA4Eel1BJzwhKnu+WCVjTw8eTd5XUwavdr\nBAPvgz+WQuoG6/vDWK/+wH+2crK0nHcnxzptGV6rdY1sxJOXdeK3PZl1u7597TvGMsehT1jeVWFp\nOR+vSubC9uEuV+/Hldi7Kmae1jpKa+2rtY7QWl9iVmDif0Ia+HDDwBgWJR6umxojfadBQBj89rz1\nfQHvLd/PuuTj/POKrrSLqN9vzW8Y0JJLukTw8k972JpqcSE4gIIsiP8Quo6HiM6WdzczPoXjJ0u5\n/yIZrVtJpmJcxK0XtMLPy5P36mLU7hsIgx+CAyvhwGpLu4pPPs5bv+7jyp7NuTpONqkopXh1Qg8i\nGvpx76zN5BZZXE9mzVtQXlwn69aLyyr4cGUyg9o2pnfLUMv7q88ksbuIxoG+XD+gJQu2pnPg2Enr\nO4y7GYKawfIXwKL53uMFJdz/n61Ehwbw/LhuKCVbygEaBXjz9rWxHM4p5vE5FtaTycuAjZ9A90kQ\n1s6aPk4zMz6FYwUl3Dfc+r7qO0nsLuS2wa3x8fLgzV/2Wd+Ztz8MfhhS1sH+ZaY3b7NpHvp2G9mF\npbw7uReBvl6m9+HKercM4dFLOvDTjiN8vf6QNZ2sfh1s5TDE2rNMAU6WlPP+iiT6tQqlX+vGlvdX\n30lidyHhQb7cekFrFm47TGJaHcy/9roRgqPht3+aPmr/cFUSK/dl8fTlneka2cjUtt3FbYNbM7xj\nE55ftJvtaSbvY8g+AJu+gF43QKj1a8k/WpXMsYISHrvUdcsuuxJJ7C7m9iGtadzAhxd+3G39kjgv\nH2OlRMY2o46MSTYcyOaNpfu4vHszpvSLNq1dd+PhoXjj6h40DvTh7pmbza3fvuJl8PCCC60frR/N\nK+bjVclc1q0ZvWQlTJ2QxO5igvy8eWBEO+IPZLNsd6b1HXafCGEdjLn2inK7m8vKL+HeWZuJDg3g\npfEyr16VkAY+vDs5lvScIvPqt2fuhsTZxuqnhs3sb68Kb/6yj3KbjUdHdbC8L2GQxO6CJvWNpnVY\nA17+eQ/lFTZrO/PwhOFPwbF9RjKwQ3mFjXtmGis93pvciyA/96ivbrXeLUP/W7/dlLpBvz0PvkFw\nwYP2t1WFfUfz+TYhlev6t3SZw8fdgSR2F+Tt6cFjl3Zkf2YB/9mYan2HncZA81hY8RKU17687KtL\n9hJ/IJsXx3Vzu/rqVrvlglZc1q0Zr/y8h7VJx2rfUPomo2TEwHuNcs0W0lrz4uLdNPD1kpUwdUwS\nu4sa2TmCAa0b8+rPe8jML7a2M6XgoqchNxUSPqtVEz9tz2D6qmSu79+S8XKoQo0ppXjlqu60CmvA\nvTO3kJFbVPNGtIZfnoGAxkbBN4v9tOMIK/Zmcf9F7Qhp4GN5f+J/JLG7KKUUL4zrSnG5jecW7ba+\nw9bDoNUQ42zU4pqt0NhzJI9HvttGzxbBPHV5J4sCdH+Bvl58dH1vissquOPrTTU/NjFpGRxcbTww\n9bV2h29uURnPLtxJl+YNuWlgjKV9ib+SxO7CWocHcs+wtvyw7TDL91r8IFUpGPGscRbm2neq/bLj\nBSXc8kUCgX5GUvL1qp91YMzStkkQb17Tk8T0XP72fQ0eptps8MuzENwS4qZaGiPAqz/v4VhBCS+P\n746Xp6SZuiZ/4y7ujiFtaNckkKfm7aCw1P5VK+cV2Qu6jDcqAeYfqfLykvIK7vhmE8cKSph+fRwR\nDf2sja+eGNmlKY+M7MAP2w7z7m/VLDGx43s4uh2G/x94WXuwRcLBbGbEpzB1UCu6RckeBUeQxO7i\nfLw8eGl8N9Jzinj15zo4pXD4U1BRWuVhHFprnpq3g40HT/D61T3o0SLY+tjqkbuGtmFcbCRv/LKP\nn7ZnnP/i8hL47Tlo2g26TrA0rqLSCh6fu53IYH8euri9pX2Jc5PE7gbiYkKZOiiGL9YeZOnOqkfS\ndmncBnpPhU1fwrFzjxbf/GUf321K4/6L2jGmR3NrY6qHTh3O0Ss6mPtnbyU++fi5L074DHJSYMQ/\nwMPaH/lnF+4kKauAlyd0o4GUiXAYSexu4vFLO9ItshGPfLeNtBOF1nY25FGjlsyvz5z1y1+sOcDb\nv+1nUp8WPDBClrlZxc/bk09v7EOLEH9u/SqBXYfz/npRUY7x7qrVEGgz3NJ45m9JZ3ZCKncNbcPg\ndnJKmiNJYncTvl6evDs5Fq3hnplbKC23cONSYBO44AFjPfTBNX/60sJth/nHol2M7BzB81d2lZ2l\nFgtp4MNXt/Qj0NeLGz/fQMrxM36pr37DSO4jnzcegFskKauAJ+Ztp29MKA+OkCkYR7P3BKXXlFJ7\nlFKJSql5SimZSHWglo0b8PKE7mxNzeHFxRbXkul/NwQ1h6VPGSsuMNaqPzR7K31iQnn72lhZDVFH\nIoP9+ermvpRV2Jj8yXpSsyuT+4mDxiEaPSdDs+6W9Z9fXMbdMzbj6+XBv6/tKd93J2Dvd+AXoKvW\nujuwD7C+Wr84r8u6N+OWC1rxxdqDfLAyybqOfALgov+Dw5u576K5eHhoxlzQiNCMtnxyYxx+3rKs\nsS61iwji65v7UVBSzrA7kolsYWPWbf+kqMSTuTlPWtZvcVkFt32VwP7MAv49KZZmjfwt60tUn71H\n4y3VWp9aY7cekC2FTuDJ0Z0Y27M5r/68l1kbUizrZ8aOSWw72o2HevwDH48SKvIC2PFtO36YIzVg\nHKFbVCOmNL6A5PmdiNKbubbrHF5few/X3x3JjBnm91deYeO+WVtYn5zNGxN7cGF7mVd3Fma+Z7oZ\n+MnE9kQteXgoXr+6B0M7hPPkvO0sSjxsST9PPKl48OcXiAlO4YH+7wNQVKh40roBoqjCe68FoMs8\n+NfIJzhS0IRX19xPYSGmf08qbJq/z93O0l1HeXZMZ8b2jDS3A2GXKhO7UupXpdSOs3yMPe2aJ4Fy\n4JzjAqXUNKVUglIqISsry5zoxTl5e3rwwZTe9IoO4d5ZW/hgRZKpc+45haWkpMDyg0NYsGc0Tw5+\ng6aBxlLLFOveJIgqpKTApK5zGBQdz5O//R8FpUGV/9+8731+cRm3fZXw3+WsNw2y/qAOUTPK3h92\npdSNwB3ARVrraq2zi4uL0wkJCXb1K6qnqLSCv32/jUWJGYyLjeSl8d3snv9em3SMx+Yksv6FAZTn\n+dMmJIldd/djRuJEbl74Pi1bwsGD5sQvaqZT25MsHdOHzJNh9P1kOTZtfK8bNC5h334bzYPtmwM/\neOwkt36VwMFjJ3nmii5c37+lGWGLalJKbdJax1V1nb2rYkYBjwFXVDepi7rl7+PJO9fG8vDF7Zm3\nJZ1x7689/2aW88jKL+GB/2xh8sfxADz7XAUBAZB0og1vrr+LqbEzuKD1Jl54wcw7EDUx+763adEo\nnft/fuW/Sd3H10bQ4N2M+NdKpq9KoqwWNfzLK2x8ve4gY99bw7GCEr66pa8kdSdm14hdKbUf8AVO\nZYr1Wus7qnqdjNgd49ddR3l6wQ4O5xYzqktTHh3VgdbhgVW+7sCxk8zakMKsDSlGZcEhbbh7WFv8\nvD2ZMcOYvz1xJI/99/eGkBjCH1tq6ZppcQ45qfBuHAf9RjP03c9JSYHoaHjhBbjw0kKeXbiTZXsy\naR3egJsGxnBlbCQNqzjsxGbTrNyXxYuLd/NHZgH9W4fyyoTucmiGg1R3xG73VExtSGJ3nKLSCj5Z\nncwHK5MoLK2gU7OGXNw5goFtGhMS4EOQnxca2Hskj90Z+axNOsaa/cfx9FCM7BzBwyM70LbJOX4Z\nbP4aFt4D4z82jtQTdeu7m2DvT3BPAgS3+MuXtdYs3XWUd3/bz/b0XPy9Pbm0a1N6tAimU7OGxIQF\nUFJmI6+4jIycYpbtyWTZ7qNk5pcQ0ziAv4/uxMjOEbLpzIEksYvzyswrZv7WdH7dlUnCoWxs5/hn\n0CqsAeNiI7mmT4uqqzPabPDJRZCXbiQXPzklqc4kr4CvxsLQv8PQx6u8PDEth5nxKfy88wg5hWc/\nJLuBjydDOzTh4s4RjO7WDB8v2XjkaJLYRbUdLyhhx+E88ovLKCgup0Jr2kcE0aFpUJVv1f8ifRN8\nfBH0vwtGvWhNwOLPykvhw0FG1c274sG7+uWRtdYczSthd0YeqScK8ff2JMjPm9AGPvRo0Ujq5zuZ\n6iZ2Kb8maBzoyxCzNpdE9obeNxpb2WOnQEQXc9oV57b+feOw8cnf1iipg1ElsmkjP5o2klr57kTe\nWwnzXfSMMQ3z4yPGOZvCOrlpxnGFHUZD+0scHY1wEpLYhfkCQo1j9FLWQuJsR0fj3pY8AboCRr3k\n6EiEE5HELqwRewNExhmJpzDb0dG4p31LYNcCGPwIhMQ4OhrhRCSxC2t4eMCYf0NxrlHaV5irpAB+\nfBjCO8Kg+x0djXAyktiFdZp2hYH3wtYZkLzS0dG4l+UvQm6q8cvTy8fR0QgnI4ldWGvIYxDSChY9\nAGVFjo7GPRzeAvEfQNzNEN3f0dEIJySJXVjL2x8ufxOyk43VG8I+FWWw8D5oEG6sPhLiLCSxC+u1\nGQY9p8Caf0P6ZkdH49p+fxOOJMLo18FfTqIUZyeJXdSNS140DsGefxeUlzg6Gtd0ZIfxrqfrBOh8\nhaOjEU5MEruoG/7BMOZtyNoNK19xdDSup6IM5t9p/D1e+pqjoxFOThK7qDvtRxpTMr+/JVMyNbX6\nX8YUzOVvQoPGjo5GODlJ7KJunZqSmXc7lMrZLNVyeAusqpyC6TTG0dEIFyCJXdQt/2C4srJo1S//\n5+honF/pSZhzKzRoYjwwFaIa7D0a7zmlVKJSaqtSaqlSqrlZgQk31mY4DLgHNn4Ce392dDTObckT\ncDwJxn9k1OARohrsHbG/prXurrXuCSwCnjYhJlEfXPQ0RHSFBXdDQaajo3FOe36ETV/AoPug1YWO\njka4ELsSu9Y677Q/NgCkRquoHi9fmPAJlBbAvDuM05fE/+Smw4J7oFkPGCa1dkTN2D3HrpR6QSmV\nCkzhPCN2pdQ0pVSCUiohKyvL3m6FO2jSySg3m7QMfn/D0dE4j4oy+H6qcSLShE+lFoyosSoTu1Lq\nV6XUjrN8jAXQWj+ptW4BzADuOVc7WuvpWus4rXVceLhJp/UI19d7KnS72ihqJYXCDL8+C6nxcMXb\nENbO0dEIF1Tl0Xha6xHVbGsm8CMgBSxE9SkFl78FGYkw5xa4fTU0bOboqBxn10JY9y70nWYsbxSi\nFuxdFXP6cOIKYI994Yh6yTcQJn5lLO377ibjcOb66NgfxsPk5r1g5POOjka4MHvn2F+unJZJBEYC\nUvFf1E6TjjD2XUhdDz8+VP/OSi06ATOvAU9vmPil8XBZiFqqcirmfLTW8l5RmKfrBDi6C1a/DhFd\noP+djo6oblSUw3dTIScFblwIwdGOjki4OLsSuxCmG/YkZO0xNuaEtYO21X3E48KWPgnJy+GKd6Dl\nQEdHI9yAlBQQzsXDA8Z9BE06G6PYjERHR2St9R9C/IfQ/y7odYOjoxFuQhK7cD6+gTB5NvgGwYyr\nIPuAoyOyxvbv4efHoePlcPFzjo5GuBFJ7MI5NYqC6+Yah3J8Mx4K3GxTW9JyY8dt9ABjB66nzIoK\n80hiF86rSUeY8h3kZcCMCcbKEXeQuhFmXwdh7eHaWca5sEKYSBK7cG4t+hpr3DN3w1djoTDb0RHZ\nJ3UDfD3OOIz6ujlybqmwhCR24fzaj4RrvnH95J6y3kjqgU1g6uL6vcNWWEoSu3AN7S+BSTMhay98\ndQXkH3V0RDWTvBK+mQBBTeGmRdBQji4Q1pHELlxHu4vh2pnGwROfjDCSvCvYNttI6o2i4EZJ6sJ6\nktiFa2k7Am76EcqL4NORcGitoyM6N61h1eswbxpE94ebl8j0i6gTktiF64nsBbf+ajyA/GqsccSe\ns9WWKSmAudPgt+eg20R5UCrqlCR24ZpCYuCWpdBqCPz4sFHytyTf0VEZMnfDx8Ngx/fG6UfjPpKi\nXqJOSWIXrisgFCZ/a5yfunMeTB9qLCd0FJsNNn4KHw+Hohy4fj4M+ZtRJkGIOiT/4oRr8/CAwQ/D\nDQuhrHLe/cdHoDiv6teaKWsvfDHaKDkc1QfuWA2th9RtDEJUksQu3EOrwXB3PPS73Zhzf68fbPnG\nKIlrpZPH4Zen4cMLjKqUY9+HGxYYyxqFcBBTErtS6hGllFZKhZnRnhC14hsEl75iPFgNijBOI3qv\nLyR+a36CL8yG316Af3eHNW8bteTv3gixU4zj/oRwILsrDymlWgAXAyn2hyOECaLi4LblsHexcUj2\n3Ntg6VPQ41qIvR7C2tauXZsNDqw03gns/gEqSqDzlTD070ZdGyGchBkl5d4EHgUWmNCWEOZQCjpe\nBu0vhX0/w+avYO07sOYto/hWqyHQ6kLjpKZGLcDL569tlOTDiYOQlgAHVhkfhcfAr5FROz1uqvF6\nIZyMXYldKXUFkK613qbk7adwRh4e0HG08ZF/xKiBnrwcts6AjR8b1ygPCGpu1IEHY038ySwoOq0m\nTVAzaHsRtBtp/MKQiozCiSldxcYOpdSvwNmeBD0JPAGM1FrnKqUOAnFa62PnaGcaMA0gOjq696FD\nh+yJWwj7lJdCxlY4vt8YleekQFnh/77uHwohLY318k26GMf0yeBFOJhSapPWOq7K66pK7OfpoBuw\nDDj10xAFHAb6aq2PnO+1cXFxOiEhoVb9CiFEfVXdxF7rqRit9XagyWkdHuQ8I3YhhBB1Q9axCyGE\nmzHtoEWtdYxZbQkhhKg9GbELIYSbkcQuhBBuRhK7EEK4GUnsQgjhZiSxCyGEm6n1BiW7OlUqC6jt\n1tMwoL6tlZd7rh/knusHe+65pdY6vKqLHJLY7aGUSqjOzit3IvdcP8g91w91cc8yFSOEEG5GErsQ\nQrgZV0zs0x0dgAPIPdcPcs/1g+X37HJz7EIIIc7PFUfsQgghzsNpE7tSapRSaq9Sar9S6vGzfN1X\nKTW78uvxSqmYuo/SXNW454eUUruUUolKqWVKqZaOiNNMVd3zadddVXlgukuvoKjO/SqlJlZ+n3cq\npWbWdYxmq8a/62il1HKl1JbKf9ujHRGnmZRSnymlMpVSO87xdaWUervy7yRRKdXL1AC01k73AXgC\nSUBrwAfYBnQ+45q7gA8rP58EzHZ03HVwz8OAgMrP76wP91x5XRCwCliPUfPf4bFb+D1uB2wBQir/\n3MTRcdfBPU8H7qz8vDNw0NFxm3DfFwK9gB3n+Ppo4CdAAf2BeDP7d9YRe19gv9Y6WWtdCvwHGHvG\nNWOBLys//x64SLn2watV3rPWernW+tSJVesxTq1yZdX5PgM8B7wKFNdlcBaozv3eBryntT4BoLXO\nrOMYzVade9ZAw8rPG2GcxObStNargOzzXDIW+Eob1gPBSqlmZvXvrIk9Ekg97c9plf/vrNdorcuB\nXKBxnURnjerc8+luwfiN78qqvGelVCzQQmu9qC4Ds0h1vsftgfZKqTVKqfVKqVF1Fp01qnPPzwLX\nKaXSgMXAvXUTmkPV9Oe9Rkw7aMNkZxt5n7l8pzrXuJJq349S6jogDhhiaUTWO+89K6U8gDeBm+oq\nIItV53vshTEdMxTjHdlqpVRXrXWOxbFZpTr3fC3whdb6DaXUAODrynu2WR+ew1iav5x1xJ4GtDjt\nz6cOyj7rNUopL4y3cOd76+PsqnPPKKVGAE8CV2itS+ooNqtUdc9BQFdgReWZuv2BhS78ALW6/64X\naK3LtNYHgL0Yid5VVeeebwG+BdBarwP8MOqpuLNq/bzXlrMm9o1AO6VUK6WUD8bD0YVnXLMQuLHy\n86uA33TlUwkXVeU9V05LfISR1F197hWquGetda7WOkxrHaONoxfXY9x7gmPCtVt1/l3Px3hIjlIq\nDGNqJrlOozRXde45BbgIQCnVCSOxZ9VplHVvIXBD5eqY/kCu1jrDtNYd/fT4PE+VRwP7MJ6oP1n5\n//6J8YMNxjf/O2A/sAFo7eiY6+CefwWOAlsrPxY6Omar7/mMa1fgwqtiqvk9VsC/gF3AdmCSo2Ou\ng3vuDKzBWDGzFRjp6JhNuOdZQAZQhjE6vwW4A7jjtO/ze5V/J9vN/nctO0+FEMLNOOtUjBBCiFqS\nxC6EEG5GErsQQrgZSexCCOFmJLELIYSbkcQuhBBuRhK7EEK4GUnsQgjhZv4fMfxouylGFNQAAAAA\nSUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def x(t):\n", " return 2*np.cos(2*np.pi*t) + 2*np.cos(2*np.pi*2*t)\n", "\n", "t1 = np.linspace(0, 1, 100)\n", "t2 = np.linspace(0, 1, 4)\n", "plt.plot(t1, x(t1), t2, x(t2), 'bo')\n", "plt.plot(t1, (lambda t: 4*np.cos(2*np.pi*t))(t1))\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Problem 1\n", "\n", "Consider the function $f(x) = \\sin(0.2\\pi x)$.\n", "- At what period $T$ should we sample so that interpolation recovers a function that is identically zero?\n", "- At what period $T$ should we sample so that interpolation recovers the function $g(x) = -\\sin\\left(\\frac{\\pi}{15}x\\right)$?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Solutions\n", "- $T = 5$\n", "- $T = 7.5$ \n", "Walkthrough:\n", "\\begin{align*}\n", " f[n] & = \\sin(0.2\\pi nT) && \\text{sampling $f(x)$}\\\\\n", " & = \\cos\\left(0.2\\pi nT-\\frac{\\pi}{2}\\right) && \\sin(x)=\\cos\\left(x-\\frac{\\pi}{2}\\right)\\\\\n", " & = \\cos\\left(2\\pi n - \\left(0.2\\pi nT-\\frac{\\pi}{2}\\right)\\right) && \\cos(x)=\\cos(2\\pi-x)\\\\\n", " & = \\cos\\left((2\\pi - 0.2\\pi T)n+\\frac{\\pi}{2}\\right) && \\\\\n", " & = -\\sin((2\\pi - 0.2\\pi T)n) && -\\sin(x)=\\cos\\left(x+\\frac{\\pi}{2}\\right) \\\\\n", " & = -\\sin\\left(\\frac{\\pi}{15}nT\\right) && \\text{equivalent to sampling $g(x)$} \\\\\n", " 2\\pi - 0.2\\pi T & = \\frac{\\pi}{15}T && \\\\\n", " T &= 7.5 && \\\\\n", "\\end{align*}" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZQAAAEKCAYAAAA1qaOTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzsXXl4VdW1/y1CIMg8hDHMIDIIkRlB\nCJOCMjgr2hbnZ22r1mqrbZ99Wm2d2tpa22qtQtU6FhQFEQISFZmCIAIyDxJISAhzGDKt98e6m9yE\nO5xh73NO4v193/1Ocu8Z9r53rb3mtYmZkUACCSSQQAJuUcvvASSQQAIJJFAzkBAoCSSQQAIJaEFC\noCSQQAIJJKAFCYGSQAIJJJCAFiQESgIJJJBAAlqQECgJJJBAAgloQUKgJJBAAgkkoAUJgZJAAgkk\nkIAWJARKAgkkkEACWlDb7wF4iRYtWnCnTp38HkYCCSSQQLXC6tWrDzBzarzzvlMCpVOnTsjOzvZ7\nGAkkkEAC1QpEtNvKeQmXVwIJJJBAAlqQECgJJJBAAgloQUKgJJBAAgkkoAXfqRhKJJSUlCAnJwen\nTp3yeyhGkJKSgrS0NCQnJ/s9lAQSSKCG4zsvUHJyctCwYUN06tQJROT3cLSCmVFYWIicnBx07tzZ\n7+EkkEACNRy+uryI6GUiyiei9VE+JyL6CxFtI6J1RNQ/7LPpRLQ19JrudAynTp1C8+bNa5wwAQAi\nQvPmzWus9ZVAAgkEC37HUGYAmBDj84kAuodedwD4OwAQUTMAvwEwBMBgAL8hoqZOB1EThYlCTZ5b\nAgkkECz46vJi5k+JqFOMU6YC+DfLPsXLiagJEbUBkAFgITMfBAAiWggRTG+YHbE1lJYCBw4A9esD\nDRv6PRp32LYNmD0buPpqoNp6zU6fBj79FN+8+RUO5xfjgis7I2VCBtCmjd8jc4TiYuCVV4DmzeV3\nqc4oLARmzgRGjgQGDvR7NA5RXg4sX47d/83G7o3H0XdcKzSZMhLo3t3vkXkPZvb1BaATgPVRPvsQ\nwIiw/xcBGAjgfgC/Dnv/fwHcH+UedwDIBpDdoUMHroqNGzee9Z4blJUxb9zIvGqVvI4ciX/Nn//8\nZz7vvPP4hhtu4NmzZ/MjjzzCzMyzZ8/mDRs2nDnvZz/7GS9atMj2mJzOcedO5oYNmQHmtDTm/HxH\nt/EPp08zP/EEc2qqTCLsVZ6UxHzddcy7dvk9Stu45ZaKqTz3nN+jcY6iIuZzz5V5pKQwf/ml3yOy\nifJy5ldfZe7a9Sz6YoB59GhZBGoAAGSzhfXcb5dXPETy13CM989+k/lFZh7IzANTU+N2DnCNgweB\noiKgQwegbl1gzx6hrlj429/+hnnz5uH111/HU089hbvuugsA8N5772Hjxo1nzvvJT36CJ554wuTw\nK+Ghh0T5eustIDcXePppzx7tHjt3AoMHAw8+iPL+A/GDph9gfP9CPP3ICVyAL7H7ip8CH3wA9Ool\nE6wmWLMGePll4Gc/Ay65BPj1r4HDh/0elTP85S/Ali3Av/8NNGoEPPig3yOygSNHgClTgO9/H2jS\nBL/r/RrOb5GLN2ecwrnYjKyJTwAbNwoNPvZY/EWgpsCK1DH5QmwL5QUA08L+3wygDYBpAF6Idl60\n14ABA86SvLotlI0bmdevF+WloEAUlKNHo5//P//zP5ycnMx9+vThJ554gjMyMpiZeenSpdy0aVPu\n1KkT9+vXj7dt28bMzP379+fc3FybY7I/x/37mZOTme+9V/6//nrmRo2YT52yfSvv8fXXzC1aMDdp\nwvz++/zWW6Iwzpsn42/VinnyZBbrZPhw+fAPf/B71JZw223MDRowHzrEnJ0tQ3/+eb9HZR9lZcwd\nOzKPGSP///73MpfNm30dljUUFDD36cNcuzbzs8/yNxvKGJA5MDNnZMjcyg8dZr7xRpnYzTfLpKsp\nYNFCCbpAuQzARxCLZCiAlaH3mwHYCaBp6LUTQLN4z4onUO65h3nUKOevkSOZ+/dnHjas4v9p05h3\n7479Y3Xs2JELCgr45Zdf5vvuu+/M+9OnT+d33nmn0rm33XYbv/vuu7FvGGOOVvHSS0Ida9fK//Pm\nyf8ffGD7Vt5i82aRGG3bnlmdpk1jbtmygp/vu4+5Tp2QO/L0aeZrrpHJ/e1v/o3bAsrKZB7XXSf/\nl5cz9+rFPGKEv+NyglWr5CufOVP+37NH/n/sMX/HFReHDjGnp4uPLjOTmcWrCjDn5MgpM2bI/6tW\nsfxIDz8sb/zwh/J/NYRVgeJ32vAbAJYB6EFEOUR0KxHdSUR3hk6ZB2AHgG0A/gngLgBgCcb/FsCq\n0OvR0Hu+orRUjrVDqQ5EQJ06Yh1bQW5uLuK55Vq2bIl9+/a5GKU1fPwx0LYt0Lev/D92rLglPvjA\n+KOd4+hRYPJk8dMtWgScey5KS4H584GJE4FaIWq//HIJbC9YAPmBXn9drvvxj4HMTF+nEAsrVwL5\n+eJpAYS+rrgCWLZMpl6dMH++HCeEcjzT0oAhQwJOX+XlwI03Ahs2SKbK2LEAgLlzgfR0oF07OW3S\nJCApCZgzB/Ij/d//AT//OfD3v4ufrwbD7yyvaXE+ZwA/ivLZywBe1jmeZ591d/22bcDJk0CfPkJH\nALB/v8RRiotl7YqFevXq4Ugc6XPq1CnUq1fP3UDjoLQUWLgQuPLKinnUqQMMHw589pnRRzsHM3DL\nLcD27SJMzjsPALBiBXDoEHDZZRWnDh0KnHMO8OmnoSyp5GTgP/+RFW3aNODLL4H27f2ZRwx89JEI\nxYkTK94bPRp4/HFg6dLK7wcd8+cDAwYALVtWvDd6NPDMMxKDrF/fv7FFxWOPAfPmAc8/f0YSHj4M\nfPFF5fhP8+bABRcIfQEQJvr974HNm4H775eJjxjh/fg9QNCD8tUGzMDx40CDBhWLMFCRNnzsWPx7\n9OzZE9u2bQu7tiGOVblwy5Yt6NOnj44hR8VXXwmjjB9f+f2RI4FvvgEKCow+3hlefRX473+FcUeN\nOvP20qVyHD264tTkZBEq6jMA8sPNmgWcOgXcemsgg6jLlgHnnw80Dau4GjZM5rNkiW/Dso0TJ4Dl\nyyPTV2mpKAGBQ3Y28MgjYqH88Idn3l6xAigrA8aMqXz6iBHyWXFx6I1atSQ/umNH4Ac/kMWiBiIh\nUDShuFiYoapmVa+emL9W6GfkyJFYs2aNih/h+uuvx9NPP40LLrgA27dvR0lJCbZt24aBhhP21ZYx\nQ4ZUHZ8cA2el5OcDP/2pmFA/+1mlj1auBLp0AVq0qHzJ8OHA2rVVBH2PHsBTT4l59sor5sdtA+Xl\nMpehQyu/f8458jtlZfkzLif46itZhKvS14UXyrp7RrMPCkpKRMlo1Qr4618raYwrV8q/VVlyxAjR\nTb78MuzNxo2BGTOAXbuAX/3Ki5F7joRA0YSiIjk2aFD5fSJhevV5JOzatQstWrTAOeecg3HjxmHR\nokUAgOHDh2Pjxo1Ys2YNunbtig8//BBXX301atc266lctUrM9qqbWw4cKNrwypVGH28f99wjEvul\nlyoCJSGsWHH2wgWIQFGLdCX8z/+IhXPffVKdGhBs3iyxuKoCBZDM1K++qojhBR1KYRk0qPL7jRuL\nuzhw9PXMM8C6dRIDadKk0kcrVgA9e0p8MRzDh8vxiy+q3GvECInVPfecMFoNQ0KgaEJRkaxlkcIb\n55wjsZXy8vj3+eUvf4kTJ05E/Ky0tBQ/q6KBm8CqVSI8qnZtqVNHmOerr4wPwTqWLgXefBP45S/P\nxE0U9u0DcnJkwa2K/qGucGfNpVYtWTiOHxcXR0Cg3ECRhGN6umjDW7Z4OyanWLVKmhSoIHY4+vUL\nGH3l5kqQ6sorgalTK33ELMIvEn21bi1JLRHn8thjQGqqWNMBdK26QUKgaMLJk0BKytmLMCAChVk6\ngMRDq1atMEWl8VTBNddcgyZVNCTdOHlSkliiedXS0wPE8MzAAw8I5z7wwFkfr10rxwEDzr40NVUW\ntXXrIty3Z0/gjjtEsGzapHfMDrF+vdDXueee/dkFF8hRzTfoyM6OTV/79gUoTvfII+LPfuqpsz5S\n44w2l759o9BXo0bAo4+K7/i99/SO12ckBIomnDwZ2ToBRKAAEowMOjZvFv92v36RP+/XT5S2/Hxv\nxxURs2dLpPrRRyu+5DBs2CDHaDkMURkekFTP+vWBX/xCy1DdYuNGMcCSks7+rEcP6cqwZo3347KL\n4mKxpGLRFxAQpWXTJnGj3nkn0LXrWR8r+urdO/LlffvK71ZSEuHDW2+VLg0//3n18VVaQEKgaEBp\nqRBNNIGiLJfqIFBUp5devSJ/HhiGLy+XviO9egHTI+9esGGDWCFNo/Sh7ttXzonIzy1bitUzZ04g\nVuoNG6L/JsnJIjR9/00sYOtWUVji0VcgrK3f/EYUlf/934gfWxEoSoCehdq1JSNx2zZJWa8hSAgU\nDVDbjaSkRP6cSD6rDtuSbNwoWnC0Rqnnn19xnq947z3JYX744YpK0irYsCE6swNxGB4AfvITiRQ/\n/rj78brAsWPAt9/GnkvPnmJdBh2Kbnr2jPx5ixYSf/CdvrZsAd55RwLoUYqNN2yQj6LVIqui4KhW\n8OTJIkF/9zuRsjUACYGiASdPyjFWvWF1Eijdu0cvwkxNlTXW18WLWbS7bt2i9m8vL5e5xFqEe/SQ\nY1SB0rgxcPfdUt+i1FEf8M03cow3l2+/jZ1NGARs3CgKlvruI+HccwMgHJ98UvyI994b9ZR4Ckv3\n7jLXqPRFJFb25s3Au++6G29AkBAoGnDqlCQHxaqET0mRoLyVTC8/sXFjdHcEULEY+MrwmZkS2f3F\nLyIHFSCL64kTseeirLCtW2M86557JBfcwy7PVRHPDQlUJLjFnEsAsHGj1AXFUr569PA5Y23PHmmB\nfNttlUv5w8Acn1dSUqThQszf5MorxVz73e9qRMZXQqBoQKwMLwXlDrOS6WUFZQZM5JIScelWyb49\nC74z/B/+IJld3/9+1FNUw4FIWVEKTZqIiyUmwzdvLi1dVA9/H7BhgyjLXbpEP0dp/AFJSouKTZus\n0deBA7IVhC947jlZ3O+/P+opBw5I/7RY9AWI0hKTvmrVkvThdeuqV3VqFCQEigacOhU9fqKgPq/q\n9vrHP/6B9PR0pKeno3Pnzhg9ejQWLFiAYcOGoX///rjmmmtwPFRm36lTJzz66KMYMWIE3nnnHaxd\nuxZDhw5F3759ccUVV+DQoUOu5vHtt+LK7dYt9nk9ekh9hy/ulS1bpHPlnXfKKhsF27fLMUJyTiXE\nZXhA/OilpcALL9gbqyZs3Sq/SRRjDECFe8V3V1EMMMvvYoW+AJ+UlpMngX/9SzqIduwY9TSt9HXD\nDaK4/PnP9sYaQPjaHDJouHf+vVibZz+95NgxcXdFWt/SW6fj2QnPRhUod955J+68806UlJRgzJgx\nuOWWW/DYY48hMzMT9evXx5NPPok//vGPePjhhwEAKSkp+PzzzwEAffv2xXPPPYdRo0bh4YcfxiOP\nPIJnXXS43LFDjrE0YaBCK9uypaIGwjP8/e+S1nT77TFP275dfo9IxXPh6N5deknGPenSS4F//EN2\nHYshyExgx474C1dKinQ2CLJAKSgQJcQqfW3eHLkzgFG8+aaYRj/+cczT7AiUQ4fkls2aRTmpXj2p\ne3rySdkYrtrutZ2wUFxDxURqxfkmk5IkGelMs7gquOeeezBmzBg0bdoUGzduxPDhw5Geno6ZM2di\n9+7dZ8677rrrAABHjhzB4cOHMSrUCHH69On41GUTJDtMAlS4lTzD8ePSY+vqqyUVKAa2bxe+jPe7\ndO8O7N1rIaX77ruldfQ779gbs0swi0CJtwgDMt+dO82PySms0lfnzsIvntMXs7i7eveu1GA0ErZv\nF4sw3tpvKU4HAHfdJTf829+sjzeASFgoYXh2gn3t/uhR0dR79KjoLBwNdepEjqHMmDEDu3fvxl//\n+lfMnTsX48ePxxtvvBHxHvUN9vXesUPG2LZt7PNUj69du4wNJTJef10aWsXRHgFh+HgLF1BZOKo0\nz4gYP15O/uc/ge99z9p4NcCqVg/I4jZ3rvkxOYVVCzg5WfZH8Zy+li+XmqO//z12QBRCX+3axXd1\nhwuUSG1zziAtTdxsM2ZImnq8vS4CCr832JpARJuJaBsRnbWjNBH9iYjWhl5biOhw2GdlYZ/N8Xbk\nFVACwooXpG7dswXK6tWr8cwzz+C1115DrVq1MHToUCxduvRMG/sTJ05gSwRncuPGjdG0aVN8Fmr9\n++qrr56xVpxixw5rWn2TJvLynOFfeEF6cwwbFvM05au3I1DiapBEEpz/9FNPnfvK4rAqUPLyKtLY\ngwZloVRtOhoJnTr5RF8NG1pSGKzSV5cuwk+Wsu9uvVWi/YHeZSw2fBMoRJQE4HkAEwH0AjCNiCol\n4THzT5k5nZnTATwHYFbYxyfVZ8wcufmVBzh9Wtaa5OT459atKy6v8OzAv/71rzh48CBGjx6N9PR0\nPPTQQ5gxYwamTZuGvn37YujQodgUJXVn5syZeOCBB9C3b1+sXbv2TJzFKawyCeADw69bJ9rjLbfE\n1R4LCsQ7ZmUu6hylPcfE9Onii3lZ675uMaHGZcWt7pvlaBE7dohWb2V/OM/p6/hxqQW57rqzW4ZH\ngFVeqVNHUoct0dfFF4ul8tJLFk4OJvx0eQ0GsI2ZdwAAEb0JYCqAaDWy0wD8xqOxWcbp00I0cdY4\nAHIes6TnKov2lSj7bqyK0Np6VxUOS09Px/Lly+0OOSKUr97qRnKdO3ucojpzpkjtaTE3+QRg3VcP\nSO1i48aS4RYXbdpIcH7mTOkYa3gbAaBiIbKi1Suhs3Nn9Ep0P7F9uzVLC5C57N0r/OVJDsR//yu+\nxShtfMJRVCSWoFXlq2NHICwMGh1JScBNN4nLa8+eQO4aGg9+urzaAdgT9n9O6L2zQEQdAXQGsDjs\n7RQiyiai5UR0ublhxoYdglfn6apF0YmDByUeZNdC8aQWq6QEeO012ay76k5ZEWDVV6/QoYNFhgek\n2C0vT7aC9QA7dogci9D78iyEC5Qgwkq2mkKnTkJbe/bEPVUPZs6UwamNTGLAjhsSEPqypLAAwM03\ny8RnzLB4QbDgp0CJpNNHW56uB/AuM4dX83Vg5oEAbgDwLBFFJFUiuiMkeLILDPTELi62L1CiZXr5\nCcUkVjMWO3USX70nbcY//ljaG990k6XTFfN26GDt9h072mD4Sy+Vnfs8YnirGV6AJL6lpATT5XXq\nlLR7t0NfgEdz2bUL+OQTsU4suBqc0FdOjsWmwl26yH7VM2dWy8p5PwVKDoBwmy4NwL4o514PoFLa\nEzPvCx13AFgCIGJFBDO/yMwDmXlgarQubg5RViZEYlWgKDdXEC0UpQlatbI91YZnzJAmYhMnWjo9\nJ0c6DFtNiLNlodSuLX72efMk48wwdu2y5u4CZC3s1CmYFsrevXIMJH29+qocf/ADS6fn5MjR6lw6\ndJC1Yl+01a0qbrxR/INqa8tqBD8FyioA3YmoMxHVgQiNs7K1iKgHgKYAloW915SI6ob+bgFgOKLH\nXoxBWRpWAvKAZHskJ9cMgeKZBnnwoLSQv/FGy1+0Xfdzx47A4cPi8rOEG26QH3H2bOsPcYDyclmI\n7cwlqALFLn21bSuy2zh9MYs1MHp0zMr4cOzZI7zcpo21R6jbWraCr7xStM9q2NbeN4HCzKUAfgzg\nYwDfAHibmTcQ0aNEFJ61NQ3Am8yV7L+eALKJ6CsAnwB4gpk9Fyhq4xw7KeN16gTT5ZWTI5aWhRAF\ngAqBYnzxmj1bvmgbtR9OBApgg+EHDxbXRJRaIV0oKJCpp6VZv6ZjRw/jDjZgV6uvXVvONU5fq1eL\nNWCTvpTAswJFX5at4KZNxRp/661q19be1zoUZp7HzOcyc1dmfjz03sPMPCfsnP9j5gerXPcFM5/P\nzP1Cx395PXagQjDYFSgRd3DzGXv2yMJlJVsNkHT9xo0rFgpjePttCZaqTeAtwK5AUb5wywxPBFx/\nvXQ93r/f+oNsQgkGOwKlXTsRREGzgp3MpX17j+grORm44grLl9ilL3WuZfoCxArOzZW6p2qEROsV\nF7Dr8lLnVq1FiYZ77733TDuVZ599FifC+oOMGzfOdTPIcOTk2M9STEur8I0bwYED0mjr2mstS7oT\nJ4DCQsMWCiDpy+XlRlux2NXqgYoF27K/3iPYjWsBIhyN0hezCJTx46Nv6xkBdgVK/fpi+duir0mT\npB6mmrm9EgLFBYqLRUDEqywPR506sg7Fs2QPHjyI5cuXY+TIkQDOFijf//738TeNfX+UhWIHxhl+\n9mz5oq691vIlThbh1q3ld7SlQfbpI9tXGmR4NRc7v4s617hmbxNO6EspLMaSnVaulB/dBn2pVGa7\nypetxA9A8sQvv1zqY4LoI4+ChEBxgZISe9YJUHF+uNvrt7/9Lc477zyMHz8e06ZNwzPPPIN3330X\nEyZMAAD85S9/wb59+zB69GiMHj0aADBlypSo/b7swknwFxCBYnThevtt6Y2iNhq3ALvBX0AUgrQ0\nmxokIG6vZcuMBS1yckQBsRrXAiq6KwdNoDixgNu1E9ddYaGZMeHtt+ULnjrV8iWFhZIC7USgOKKv\nQ4fEtVpNkGgOGY577wXWWm9f37YoZJ3EaiWRng6EtZRX8ZbiYmlBkZ2djf/+979Ys2YNSktL0b9/\nfwwYMABLly7F1aHtbe+++2788Y9/xCeffIIWodWladOmOH36NAoLC9G8eXO7M62E/fsl/dmJBqmu\n1V40XlAALF4M/PKX1gM7cOarB2Txsr1/1lVXAb/6lexv/5Of2Lw4PvbskXHZsYDVvI1ajg6wZ4/k\nMtiBEo5799oTqpag3JWXXCKN6SzCicICyFxs7581bpwEK2fPlvqnaoCEheIC5QyQzW9QCRRloXz+\n+eeYOnUq6tWrh4YNG2Ly5MkAgNzcXMSrm2nZsiX2aXCWu2GS8nIpHNeOWbPk5jbcEYBzgdK2rYNF\nuEcP6XEya1b8cx0gJ8f+PBo1Etd7kCyUkyclHOZEYQEMCccVK4RYHNKXXV5p21aMDVuNO+vWBS67\nDHj//WqT7ZWwUMJhY3OqsjJg8xpZVK3mowMVLi/lFuUoDuJ69erhVNXduKrg1KlTqGel014cOPHV\nh5/vZOGLi1mzZKelPn1sXbZnj9RAxmsrXhVt20rrd2ZbBpHUDPz+97Jialajc3KcbTBlPFnCJuwW\nNSoYdd/NmiXMGFLgrMKNQAEkWcJq+xkAQl9vvgksXQqE4qlBRsJCcQgnNSiAuC9q1664fsSIEfjg\ngw9w6tQpHD9+HHNDG1r07NnzTAt7AGjYsCGOHTt25n9mRl5eHjpZLaOOATcWCmBg8TpyRFphTJ1q\nc3V33lOvXTtp+hf2FVvDFVeIJaW55Tizc0GdlhYsC8UpfbVuLT+/dvpiFq1/9GjJfbeBPXtEDrVs\nae+RildsOxQmThRLxZAVrBsJgeIQTmpQFMKLGwcNGoQpU6agX79+uPLKKzFw4EA0btwYl112GZYs\nWXLmmjvuuAMTJ048E5RfvXo1hg4ditoaghc5OaLR2w3FGBMo8+eLxLURLFVwEvwFKmuQttC/v0Rc\nNTN8QYHQiBOBYjxZwiacWsDJySJUtNPX5s2yQYlD+kpLsxfXAlzQV4MG0tZ+9uxq0dsrIVAcwkkN\nioKqRVG4//77sXnzZrz33nvYvHkzBgwYgIsuugi7du3C4cOyp9hPfvITbNq0CZ988gkA2VDrrrvu\ncjsNAPaLGhVatBDhqH3xmjNH/FYO/D1798bfRz4SFMPbXryIxEpZuNCBeRMdThdhdU1ubnDc7k7j\nWoAh4fj++3KcYn8bJbf05SjkecUVkiL25ZcOLvYWCYHiEG4tlPC04TvuuAPp6eno378/rrrqKvQP\nVYX/4Q9/wLdRcg379OmDsWPH2n94BOzbF3/b30ggMlCLUlIijRcnTZL9IWzg9GkJfNqJaSk4dkkA\n4uc+fVosK01wUk+j0K6dCBODRfy2sG+fJFJZacFfFUZqnd5/XyxLBxIuL88ZfTVpIl4AR/Q1ebLw\nguHecTqQECgOUVIisRC7pi8gFkppqbjeAeA///kP1q5di02bNuGhhx46c96QIUPQN8pG57fffruT\nYUeEUyYBDDD8p59Kp0YH2qPKNnMyF3WNI4YfPlz8hRrjKGocTuYStOJGN/SlPcFg/37ZO96BuwsQ\ny8/JXIgcZhIC4goYMaJabA2cECiInmkVC06KGhXCa1FMw8rcnDIJYCAA/P77osqNH2/7UlVH0rq1\n/cc2aCApt44YPilJgqcffaTNz5SXJ4uQ3eAvEDyB4oa+2rUTqzOsSYQ7fPihxCIcCJSTJyVfxAl9\nATIXx1n+kybJNthB7PwZhu+8QElJSUFhYaFtoeJGoESqljcBZkZhYSFSYuTQHj8uLzdMoq09BrPE\nT8aNs9f0KQQ3FgrgkuEvu0xSh1eudHiDysjLE8XUCY0p96WR+iAHyMtzR1+ARitlzhxp3hbF8o8F\nt/TVtq1L+gIktz3A+M7XoaSlpSEnJwd2d3Pcu1ey+ZwopMXFsvYQOfMr20FKSgrSYviKFZM4Zfi2\nbaUVxZEjtgqOI2PdOml49OtfO7rcjYUCuGT4Sy4RS2XuXGDYMIc3qYAbrb5FC3HFBkGgMLsTKEo4\n5uZKFx5XOHFCkiduu81+Bgr00JcykGw//rzzZNexuXOBO+90NgAP8J0XKMnJyehsdV/SEJglpvfj\nHwNPP23/mfn50pHluefkHn7CrdalmCsvT4NAUdqX0sZsIjfXuZsIEIZ33C28aVPgwgtlDo895vAm\nFXCzCCclyXcQBIFy7Jis4zroyzU++UT8VjaLGRWUQHFjoahap0aNbF5MJHzxr3/JHDQUNJvAd97l\n5QRHj4pW7pThmzcXpg8Cw7vVutR1WjKK5s8HLrjAMcfm5clC6rQ0R1koKlnCNiZNkl5wGoIXbgQK\nINveB4G+3FrAWgXK/PniErjoIkeX63CpAi7cd5MmiTAJq08LGnwVKEQ0gYg2E9E2Inowwuc3EVEB\nEa0NvW4L+2w6EW0NvaZ7OW4Z0ZZbAAAgAElEQVS3mkqQNEi3TNKqVeX7OMbhw8AXX1jeNz4ScnPd\nLcLt2klcy3F3W2VZzZvnfBBw7yYC5Nog0JdbXmnWTPhFi8Ly0UdSHW+3L08IubkyFqcddlzVogDA\nqFEiEAMcR/FNoBBREoDnAUwE0AvANCLqFeHUt5g5PfR6KXRtMwC/ATAEwGAAvyEi6zvkuIRbrUtd\nGxSGr13bfpW8gjYNMjNTAlKhlv1O4CbuAFRca7vrsEKvXhLwdcnwhw5JnM3NXIJCX255pVYtTdbW\n1q2y1a9LhaVVK2elAoAG+kpJkYQVFYgJIPy0UAYD2MbMO5i5GMCbAKzm8l0CYCEzH2TmQwAWAnC+\nEtmEDoESJJeEGyZp2lQykVzPZf586avkIqCtw00EuNCGlZ87M1N8og6hU2Hxe91xawEDmoSjKjp1\nIVB8py9A6Gv3bmDjRhc3MQc/BUo7AOFJ1Tmh96riKiJaR0TvEpGqG7Z6rREEhkk0wC2TKA3SFZMw\nC8OPH+84AFJeLmNw85tocd9ddplEoW1vflEBXQKlpESsHT+RmysKh40dds+CFl756CNJE+vSxfEt\n3FrAjRpJZqiruah9UVy6VU3BT4ESKXGuqj71AYBOzNwXQCaAmTaulROJ7iCibCLKtpsaHA25uVKc\n6CarqXVryfZyHADWBLdxB0CDtbV+vUQqXWiPhYXSfUCHQHElHEeNEuJYuNDxLdwmSoRf67fSohQW\nB1m6Z+BaYVGBbBf0Bbir+AfkO3A9l7Q0oHdvV/RlEn4KlBwA4Z2K0gBUClcxcyEznw79+08AA6xe\nG3aPF5l5IDMPjLdhlVXoYJKgaJBumQTQoEF+9JEcL7nE8S10LMKNGomb2hXD168vbTIWLHB8C10W\ncPi9/IJbrR6Quezf70L5+vRTESouBIrqjeZW+VJzcYWLL66YU8Dgp0BZBaA7EXUmojoArgcwJ/wE\nIgonxSkAvgn9/TGAi4moaSgYf3HoPU+gaxFW9/ILZWViJfnOJB99JJXLTtq4huA2mwjQpEECwvBf\nf+04+pqXJ4LNdq1CGIJAX+r5OuirtBQ4eNDhDT76SL7QUaMcj6GgQASaW77XRl+nTwOffebyRvrh\nm0Bh5lIAP4YIgm8AvM3MG4joUSJSnQHvJqINRPQVgLsB3BS69iCA30KE0ioAj4be8wS6mETdyy/o\nYhJXGuSxY8Dnn2txR6ixuIE2hgccuyV0WcDqXn4iEMrX/PlARoarYsBA0dfIkeJWdWEFm4KvdSjM\nPI+Zz2Xmrsz8eOi9h5l5Tujvh5i5NzP3Y+bRzLwp7NqXmblb6PWKl+PWEXcIAsPrcBMBwiRlZQ7r\nNxYvFvXTRbowoMdCATQxfL9+sp+LQ4bXQV+NG2sIALtEaakoLTroC3D4u+zcKRtqBYi+Cgpc9hBV\nxZkJgVL9UVIifbhqgkDR4asHXM5l4UKJO1x4oasx5OYCDRs66ilZCVrSuWvVkoy1hQsdmW06tHrl\nvvOTvvLzJYHPV/rKzJSji/gcoFegOFa+wuHSrWoKCYFiEwUFephEBYBrgoXiqv1KZmZFZpQL6HBD\nApo0SEAYPj9fGl7ahK65aAkAu4Bu+nIsUNq1A3r0cDUGnS4vwH+3qikkBIpN6GISIv9rUXQzie25\n5OSIO0LDzpP791eMww1atRKjwrUGqfZzsemWKC6WZ+sSKDWBvhzXb5SXi0t17Fh3ASkIfSkl0A20\nCZS+faV/U8DcXgmBYhO6mETdw08Ncv9+cRO5bVzqWINctEiO48a5GwDEGHDaZTgc2ppdtm0LnH++\nbYZXz60JAkXNxa2gV8qX7d9k3TrxT9dE+nLpVjWFhECxCV1MAvjP8Pn5euahhJJtJsnMFC7t08f1\nGAoK9DC8Ng0SELfEZ5/Z2m5QN30VFEhw3A/k58tR10Jsm1dU/ESDBRxY+nLoVjWFhECxCd+ZRCPy\n8yUZyS0cue+YheHHjHHeSCwEFeTUMRftDF9cbGuTFd30xSyLoR/Iz5ckCR2byDkWKD17VrT5dYGC\nAj301bixhAu10JdDt6pJJASKTRQU6GMSFQA2vRVwNOjSugAHGUXffCMXaHBHFBbKwqlTg9Qi6C+6\nSJz/NhheLf465+JXIpCv9KUK/zTQF6DP5aU1+65NG0duVZNICBSb0EVYQAXDuw4AO4TOudjWIJU7\nQgPDq0U4cBpkvXrA8OGyU6BFKAtFp7Xlp4Wik74OHLDhvlu+XFyNGuirvFyeralzk55aJ4WxY4Gl\nS0WABgAJgWITukxfoOI+fjC8biZp2dLmPDIzgW7dZP8Ql9DpJtLWfkVhzBjZxdGi1lBQIEZNw4bu\nH+0nfQH6XKqA/LbMNpSvzEzZDctFuxWFw4dFkOlUJLXS16lTIkADgIRAsQmdWpe6j1oQvcShQxJ7\n0DmXAwcsJpyUlkr3Vw3BUkCvhQJoZvjRo+VocdtWtQi7zHIF4C99AXpdXrbnkpkJDBokJqdLBJq+\nRo6UGOTixZpu6A4JgWITJiwUPxhep1YPyFzKyix2T161Snp4afRvA3rdK9oYftAgCbpZZHidi3Dj\nxrIXiR/0xaxX+bJlbR05IjQWYPrStnVF48bAgAEJgVIdoZtJ1H38cEno1rpsCcfMTFHBlfbuEgUF\ncjun2xhXhdaWJcnJokVaZHidbiIiuZcf9HXkiCSb6HR5ARbpKytLtBtNAsWEhaKl/YrCmDHi8ioq\n0nRD50gIFBs4elSyQHURVtOm4uatCRaKLeGYmQlccIE2CZCfL7dKStJyuzPZd9rqxcaMATZtAvZF\n3LKnEnRaKIDcyw/60pmtBti0UDIzJSFi6FAtz9bNK1pT0wGhr9JS6drtMxICxQZ0M0mtWkCLFjVD\noFi2UIqKgGXLtGmPgF43JGDTfWcFY8bI0UIcRaeFAvhnoejMVgOAZs2EXyxbwCNHSnaDBqjvr0UL\nLbfTnywxfLhYwgFwe1kSKER0DxE1IsG/iOhLIrrY9OCCBt1MAjjIjtIE9UxdbiLLFspnn4kvRFNA\nHjCzCAMaf5d+/cQcjcPwRUWyCV9NsFB0KyxJSUKrcX+T3FypcdJMX02ayJqtA9rpq359scaqi0AB\ncAszH4XsjJgK4GYATxgbVUCh20IBhLj8YvhmzfQxiRJMceeyZIk8dPhwPQ+GfjeRdoZPSpINnuIw\nfE1UWDwXjsoKVFahBgSevgCZ75df+r6nuFWBopIYLwXwCjN/FfaeYxDRBCLaTETbiOjBCJ/fR0Qb\niWgdES0ioo5hn5UR0drQa07Va02gJjG8zuQCQGREs2YW5rJkCTB4sPuNS8Kg20IxkiwxZoxs9rRz\nZ9RTTCksx4/baiemBYpXdLmJAIvuuyVLpC1werq25+qmL/WdaKev8nJbbX5MwKpAWU1ECyAC5WMi\nagjAVciSiJIAPA9gIoBeAKYRUa8qp60BMJCZ+wJ4F8BTYZ+dZOb00GsKPIDubA91L7+CpjrnAViY\ny7FjQHa2aOuaoPYarxYaJBCzat4EffmVSZifX7FrpC5YtlBGjtSXoQH9Fkrt2haVLzsYMkQSEXx2\ne8UVKEREAB4G8CCAQcx8AkAdiNvLDQYD2MbMO5i5GMCbAKaGn8DMn4SeBwDLAaS5fKYr5OdLBbPb\nPRHC0bKlpFh63TlBt4UCWLC2li6VaLdGgXLggBxNaJBaBX3PnpLeE4PhdccdAP+q5XUvwoAFC2Xf\nPmDLFq30Bei3UAADimTduuJGDrpAYWYG8B4zf8nMh0PvFTKz257J7QDsCfs/J/ReNNwK4KOw/1OI\nKJuIlhPR5dEuIqI7QudlF7jkKhNMou6nFkavYEKgxGWSrCzxjQ0bpu2ZJtxEdeuK10TrIqzqbhYv\nloKmCDBpoXhtBZtYhFu2lBBB1GaqWVly1ChQVIsiz5UvJxgzBli/3r/WCLDu8lpORIM0PztSDCYi\npxHR9wAMBPB02NsdmHkggBsAPEtEXSNdy8wvMvNAZh6Y6pLCTWkq6t5ewYSbCLDAJEuWVFSOa4KJ\nuBZgkOFzc2WXygjIzxevhcavx1eXlwmFBYihfGVlaY+fHDwoQsUE3xuhL8Bymx8TsCpQRkOEyvZQ\ngPxrInJroeQAaB/2fxqAsyq/iGgcgF8BmMLMZxxDzLwvdNwBYAmAC1yOJy5MWiheChTV7t0Ekxw4\nEGU/9uPHpR2GZneECQsFMMzwUdwSKq6lo4+Xgl/tfUzyStTfZckS2TJAc/wk/Nm6YIS+BgwQn7za\nCdUHWBUoEwF0ATAGwGQAk0JHN1gFoDsRdSaiOgCuB1ApW4uILgDwAkSY5Ie935SI6ob+bgFgOICN\nLscTFyYtFC81SFNMojrCHjwY4UMD8RPAnIViJFmiSxegffuoGqQJrb5BA4n5eSlQysvNJX0AUeai\nLL9qRF9RlS+nqF1bEhKCbqEw826INTEm9PcJq9fGuGcpgB8D+BjANwDeZuYNRPQoEamsracBNADw\nTpX04J4AsonoKwCfAHiCmY0KFLXzXU2wUEwEf4E4DL9kiRD8hRdqfWZBgVRQN2um9bZmNEgiaaee\nlRUxjmJiESbyPjVduYk8tVAMxE/Cn+Wp8uUGo0ZJYoJPu6rVtnISEf0GEsPoAeAVAMkAXoNYBo7B\nzPMAzKvy3sNhf0fsz8HMXwA4382z7ULtiaCb4VVHWC8Z3mTcAYjB8JrrTwD9fbwUVDt+Zr0uKIwa\nBbz2mmjT551X6aP8fKB3b43PCsHr1HSTbiIghsKiOX4S/iyTngmt91b7v3z6KXDddRpvbA1WrYwr\nAEwBUASciV9o2AKo+sAUk6iOsDWa4Q3FTwAzViMgcyktFUVCKxTDK406BFMWMOC9hWJqEVbNVCPO\nRcVPalvSkS1Ddx8vBWOu7v79xc9Zhb68glWBUhxKH2YAICK9amY1gCkmAbzvt5Sfb85NBERgki++\nkNVZw+55VWEirgUYDGZ36yZ7gVdh+OPHZeO9mkJf6rk6EbWZal6eWHyG6KtZM+1yyhx91a4NjBjh\nWxzFqkB5m4heANCEiG4HkAngn+aGFTyY0uoB7zvC5ucLY9bS3Gu6eXOxuM5iEkPxE8CshaLurxVE\nYqktWVIpjmKavvLzo5a/aIfJuUS0tgzFTwCzVqO6v3aMGiUNMn2oR7EalH8G0vrkv5A4ysPM/JzJ\ngQUNprQudU+vXV4m5hG1pYSqP2nQQPszTVsoxhg+NxfYtu3MW6Yt4FOnvNt/Sc1FVyfrcER0Dy9Z\nIumyF+ivHDBFX+q7MUZfgC99vSzrqMy8kJkfYOb7mXmhyUEFEaZ8qYA/LgkTAgWIMJeiImPxk+Ji\niXFUSw0SqOT2Mm2hAN7RmEqU0O0mAqJYKIbiJ4A55Ss5WWJCRuhr4EDgnHN8cXtZ3Q/lSiLaSkRH\niOgoER0joqOmBxckqD0R6tTRf+/UVFl3veoIa0rrAiK471T8xIBAMdHHS8GohdKjh/T1ChMopi0U\nwDu3qqlFGIhgoeTlyW6YBugL8JhXdEFtD+FDYN6qhfIUpLiwMTM3YuaGzNzI5MCCBhM1Ago1ieHP\nslAMx0/UM3Wjbl3xohjR6okqCtBCgQ0TfbwUvK51MrkIq2aqxcWhNwzGT9S+757xik6MGiV9vTxu\nEmhVoOxn5m+MjiTgMOkm8rJa3qSbCIigdS1ZIia4ofiJeqYJGE2WyMgAcnLO7I+Sny9eCs1lOgC8\n78bgKa8YjJ+YalGkYJy+ANkh1UPEFCghV9eVkKr0t4homnov9P53Bl5YKF5okCY1YUDmUlgoXi4U\nFQErVxpzR5i0UNR9jTF8lTiKaTcR4J2F4qk1n5UlabKG4ifhz9QNowJl0CDpNOpxHCWehTI59GoE\nabdycdh7k8wOLVgwHchWzzANL5gEEKGCZcuMxU+Aam6h9OolGR5hAsXUPM45RwxEL+irtNSsm6iS\nhbJ/v6THVmP6OnBA2tRoR506sk2Ex3GUmGKdmW8GACIazsxLwz8jIn2bggccak8Ek4QFeMPwJtOf\nw++bnw+0WrJESps17h8fjoICuX3TpkZuj9RU2WDSCFQcJcTw+flA27aGngXvujEol70nypfB+Ang\njQVcXi79vExkjyIjA/jNb2QTGVNMUgVWYyiRak6+M3Uohw5JgM4UYamOsF74uE27vCppkAbrTwBz\nBZoKSoM0VhA4ahSwaxewe7dRCwXwrv2K5/TVoIG0GzEALywUwLBbldnTOEq8GMowIvoZgFQiui/s\n9X8ANLfjCy5MM4nq5+UFw3tloRR+azZ+ApiNOwBy75ISySoygtB3w0uyjLpUgZpDX02aSLgkPx9G\n608A+b6IzBRoAh4IlMGDJV3RwzhKPN2uDqR9fG1IM0j1OgrgarNDCw5MM4m6t1cur+Rk6XJsAopJ\nkrOXyWpsUKCYTE8FPGD4Pn2AZs1QkpmF4mLzc6kJLlWlfJ3abTZ+ApjrZK1gvFwgJQUYOtTTOEq8\nGEoWgCwimsHMu4moobzNx70ZXjBg2kJR9/bKJaF7V8BwNGsmLqgmX2UJJxqoP1EoKJCMZFMIj211\n727gAbVqiYb9qTC8aYWloMBAO/4q8IJXWrYEWm0JtRUx0BBSwbQF7EnsNCMD+O1vpVagSRODDxJY\n9T43JKI1ANYD2EBEq4moj9uHE9EEItpMRNuI6MEIn9cNpStvI6IVRNQp7LOHQu9vJqJL3I4lFmqa\nhWKS2ZOSRKtrt21JxZakhlDtLRQAGDUKdb7djnbIMT6X4mLgqOH+FqY6WYcjNRXotmeJ0fgJYJ6+\nVCDeNH2hvBz4/HODD6mAVYHyIoD7mLkjM3cE8LPQe45BREkAnodsL9wLwDQi6lXltFsBHGLmbgD+\nBODJ0LW9IFsG9wYwAcDfQvczAvWDm/KlAhUWiumOsKaDvwDQvvkJdNq/wqg74vRpWRxNC3nAA4YH\nMApZ1X8uofs3b24uUQIQ+u17cIlkDyYnG3uOaQslOVmMBqO/ydChkkLskdvL6s9en5k/Uf8w8xIA\nbmt6BwPYxsw7mLkYwJsAplY5ZyqAmaG/3wUwlogo9P6bzHyamXcC2Ba6nxGoPREM0i5atgROnjTf\nEdY0kwDAqLrLkcwlxt0RQA2wUPr1w+l6jTEKWZ7MxbQV7AV9dW5QgO4lG43SF2DeQgE8yL6rVw8Y\nMsQzgWI1PWIHEf0vgFdD/38PwE6Xz24HYE/Y/zkAhkQ7h5lLiegIgOah95dXubady/FERecvh+Oh\njnuQMaOLqUcgrxzATcC41ySWZgq7MoBTrYGMGeaeMemcXSgjYPLu3+HEjKeMPOP4cQA3Ac8dA96Y\nYeQRAIBatwJ/OwksMPiM/22fhFF5r+F7mVuMafbq+7rjC6DFFjPPAIA1HQDqaJa+eh6RFfiuY29j\n44yPjTyDGTg4BZjbEtgww8gjAAB5E4CPa5n9vm6stxs3f74HuRuOon1vsy0YrZLvLQBSAcwKvVoA\nuNnlsyOFBqs6fKKdY+VauQHRHUSUTUTZBQ5Vge5HD+GmTXlG/VHK+jnT9M4AysulnsakpQUAF+49\njDXNG+JEPTPpnEDF92R6LnWSgRKDvwkAfNG+CXocPYkWR08be4b6nkpKjD1C7l8s35lJDNtzBEW1\na+Hrdubic+p7Mj2X5DpAseHfZGn7JthUvxlq7csx+yAAYGZfXgCGAfg47P+HADxU5ZyPAQwL/V0b\nwAGIMKl0bvh5sV4DBgxgR3j5ZWaAef16Z9dbwIoV8ogPPjD2CN6zR57xwgvmnsEnT3JJUl1+Gj/j\n4mJzj3n1VZnL5s3mnsHMPHgw8/jxZp/x60tWymTeeMPYM06elEc8/rixRzAzc9OmzHfdZfYZhzv1\n5QUYx6tXm3vGunXyfb3zjrlnMDPffjtzq1Zmn/HEEzKX48ed3wNANltY1w2GzuJiFYDuRNSZiOpA\nguxzqpwzB8D00N9XA1gcmtwcANeHssA6A+gOYKWxkSpfrcECIS983KZbSQAAVqxA7bLTyMIoo52z\nTVcxK3hRYb6q9AIU1Wpo1M+dkmKwHX8IJSXSVcIofRUWovGudcjCKKO/i5f0ZayfVwgFBRJKMdHJ\nuip8EyjMXArgxxDr4hsAbzPzBiJ6lIimhE77F4DmRLQNwH0AHgxduwHA2wA2ApgP4EfMXGZssJ07\nA+3bG2V4L7JwvAhkIysLTITPcJFx4Vi7tvnUei/qg/IO1Mam5uY3RDItHAsL5WiUvkJtRLIwqvor\nX5DvqqxMykRMoaDAUK+wCDDn5LYAZp4HYF6V9x4O+/sUgGuiXPs4gMeNDlCBSFJg5883VhlWv75o\nEdVe68rKQlHXfjiyrYnxuZgs0FRQFeYmCwILCoCdHTMwIPtBo22tTVfLe0VfnJKClacG44rqziuo\n7JkwVbvjReadgtUtgJ8iokZElExEi4joABF9z/TgAoVRo+SX+cbcPmOmixuNWyjFxcCyZSgeNqrS\n80zAKyZR/bxMFQQyy1z298yQNwxbwTXBAsbQoeDkusbnYrpAE/DGM+FF+rOCVZfXxcx8FLIHSg6A\ncwE8YGxUQYQq0jPI8KbdK8bdRKtWASdPovb4DADmhaMXTGK6FuXIERFYJef3l8pvw3G6au0mOnwY\nWLsWlJHhifJlspO1ghe1ToGzUACo5LlLAbzBzAcNjSe46NIFSEszyvBeMIlRN1Hou2kw4SIkJZnX\nuryyUNTzTOBMF4bWybLzoGH6MtmNwbiF8tlnMvhRo4wrXzWFvpQFHDQL5QMi2gRgIIBFRJQK4JS5\nYQUQROL2WrLEGEd6YaEYd0ecfz5qpTZHixY1w0IxzfCV+sRlZAAbNxp7WGqq7KhoKgCs2r0bcxNl\nZUkbkSFDPFO+TEMFy03NpahIOnAEykJh5gchdSMDmbkEsh1w1TYpNR8ZGfLLb95s5PaKSUxpkEZ9\nqSUlwBdfnEmxNikcT54Ejh3zhklMuyQqafWG3aqm/fWm270jK0vaiNSrV2MslORk2UzRE/ryAFaD\n8l8B+CGATgDAzEXMnGdwXMGEYnhDbonUVGl6eNzQ5gBGta7Vq0UdCgkUkxqkl0xiuj6okoXSv7+k\n+xmkr/Bn6oZR+jp6FPjyS0/oC/A2kG1yLl50Sg+HVZfXFAClAN4molVEdD8RdTA4rmCia1egXTtj\nDO+Fv94YYSmteuRIAGYtFK9qBAApCGzUyCPhmByKoxiyULywtoz9JkuXSvVfSKlLTRXF6+RJ/Y8q\nLha3oFeLcE1RvgDrLq/dzPwUMw8AcAOAvnDfHLL6wXAcxSTDFxdLRpExwlqyBOjV6wwX1iSty6Rw\nzM+XCva6dUNvZGQAGzYY+fK8UFiM0ldyMjBsGACz7jvV4aGm0BcQPAsFRNSJiH4OaTN/HoCfGxtV\nkJGRAezfD2zR37LVJMMb1VRKS2UDn7B24qmpIsBMNLv0WusyrUFWYnblVv30U+3PMr2hk1E3UVYW\nMGgQcM45AMwqXzWNvoCAWShEtALSZbgWgGuYeTAz/8HoyIIKg3GUasska9aI/6GKQAl/rk54rXWZ\ntrYq/SYDBhiLo9StCzRubGYupaXAwYOG6Ov4cSA7OyJ9mZiLH/R14IC0YNGN/HyRwV708QKsWyjT\nmbk/Mz/BzDuMjijo6NYNaNPGqEAxaaEYYRLl8w9jeJMuifx8yR41uLtwJZiOB1X6TZLN1qOYmovq\n42WEvr74QlZbD+kL8E6rT00N7b9ioLrPyxoUwHoMZZPpgVQbqL5eWVna4yhKk6h2FkpWFnDuuUDr\n1mfeMi0cW7Y038dLQRUEmugIG9FNNGqUxFEMEIIpa8s4fSUlARdeeOataqt8RYBJV7dX6c8Kfrav\nr77IyAByc4GtW7Xf2hTDG9O6ysrE319l/3jTGqSXTKI6wh46pPe+5eXi6jhrLgbjKKYsFKNa/ZIl\nwMCBlUxSlchgai5edLJWMC0cA2ehJFAFhuMopiyUpCQDTPLVV1IjUGV/75rEJKaE4+HDEns4ay4D\nB4q5aoC+qp2FcuKE9IirQl9E5nqTGW9RVAU1SfmyGpRvSURXENGPiOgWIhpMRN9dYdS9u7h3DNQL\nmGT41FQDze4ixE8AEVy1a9cMJjHlkojqWjEYR0lNNbOhkzE30bJl0oWhCn2pZyXoKzq87uMFxBEo\nRDSaiD4GMBfARABtAPQC8GsAXxPRI0Rkdtf7IELFUQzUo5i0UIz5t1XBZxhq1YKxfl5eVjED5qyt\nmFp9Rgawfr12YmjZ0oz7TvXxat5c732RlSXENGLEWR+ZslC8pq9mzeS70z2X48el80aQLJRLAdzO\nzIOY+Q5m/jUz38/MUwD0A7AGwHi7DyWiZkS0kIi2ho5NI5yTTkTLiGgDEa0jouvCPptBRDuJaG3o\nlW53DK6RkQHs2wds26b1tqb6eRlhkvJy8fNH0B4BMxqk183uAHMuiZjpqYbiKKbSudUGUdr7eGVl\nARdcIO0KqsCUheJlu3dAvrMWLczRV2AsFGZ+gJm/De3bXhXtmfk9Zv6vg+c+CGARM3cHsCj0f1Wc\nAPADZu4NYAKAZ4koPALwADOnh15rHYzBHdQiqtntlZpqZkMnIxbK11+LqlslIK9gQoP0ukYAMNcR\nNqaFYiiOYtJ9p52+Tp4Eli/3lL4A711egBlXt9fZaoD1oHwkofGui+dOBTAz9PdMAJdXPYGZtzDz\n1tDf+wDkA/BQ1sZBjx5Aq1bGGF63tmKE4RcvluPo0RE/NqFBel35C1R0hDUlHCPOJTkZGK5/n3lT\nFooR+vriC2m1MGZMxI9btpSY/YkT+h556pR0svaSvgCzyldgLBQiOo+IrgLQmIiuDHvdBCDFxXNb\nMXMuAISOMWUoEQ0GUAfA9rC3Hw+5wv5ERHWjXGoOhuIoJvz1JSWGmt0tXiz1J2lpET82EQ/yw0JR\nzzOxCDduLEWaEZGRIVagai6lASYtFCP0lZQEXHRRxI9NCEc/tHr1PFPKV5AslB6QbX+bAJgc9uoP\n4PZYFxJRJhGtj/CytfW5oskAACAASURBVI8KEbUB8CqAm5lZ5aY8BOknNghAMwC/iHH9HUSUTUTZ\nBbp/sYwMYO9eYPv2uKdahQkLRa1HWjWV0lLRnqNoj4DM5ehRCQzqgh8WCmDGJRE3rmUgjmKqn5cx\nC3jw4KgtEUwIx5pGX4C3c6kd60Nmfh/A+0Q0jJmX2bkxM4+L9hkR7SeiNsycGxIYEb/KUAbZXAC/\nZublYffODf15moheAXB/jHG8COBFABg4cKDeUHd4HKVbNy23NGGhGCGs1avFNxBDoIRrkFGMGNvw\ny0JJTQU2ae4XEVerD4+jXHmllmeacN+VlUnrFa30dfSo1J88GCm8KjBhofhJX4cOiTchOTn++VZQ\nUAA0aADUq6fnflYQz+X1ayJqGk2YENEYIprk4LlzAEwP/T0dwPsR7l0HwGwA/2bmd6p81iZ0JEj8\nZb2DMbjHeecJ5WmMo5g047UyvIqfRAmYAmY0yPx8YRCvmt0p+GKh1KkjcRTNcTrdrsjCQvH6aqWv\nzz4TSRXHAgaqgfJlAWouGr2bnqc/A/FdXl8D+JCIFhHR00T0cyJ6mIheJaKvIe6vFQ6e+wSA8US0\nFZJ2/AQAENFAInopdM61AEYCuClCevDroed/DaAFgMccjME9DMRRUlLEwjdhxmvVuhYvBvr2jUmx\npoSj19ojIM8sLNTbEdbSXAzEUXQHgI3RV926Z/Y/iYSaFkMB9P8uXs/DqsurO4DhkMLGowBeA3AH\nMzvaL42ZCwGMjfB+NoDbQn+/FnpOpOujqy1eIyMDePttiaNocnvpDtBpt1BOn5b9T+68M+Zpptx3\nfggU1RG2sFDP81Ufr7i/Sfg+81dd5f7BkPHr3M7HmAV84YUx/TX164sCppu+6tb1rpO1gin3nS5X\ns1XEc3m9GvrzUmaewcy/Z+Znmfljp8KkxmFsSC4uWqTtlro1yPx8SZZpelb5qEMsXy75lTHcEYCZ\nBAOvW0ko6NYgDx0SayeucBo0SBzhAacvdV8tKCyUHnFx6IvIjPLlZR8vhZpiocRzeQ0goo4AbiGi\npqEK9zMvLwYYeHTvLmpAZqa2W5pgkubNNfbxWrxYbhbaPz4aGjeWAGNNsFB0M7zlRTg5WZI/NNOX\nTveddgtFbQ0RR6CoZybo62wwBzOG8g8A8yEpuqurvLLNDq2agAgYN04WWU0d93Qzyf79UoOpDYsX\ny86CjRvHPE11hNUlHP1iEkC/S8KWr37cONkq4dtvtTw7NVVIVdeGTvv3y2+tUpJdY/Fi8WcNGhT3\nVN3Kl1/0pbuZ6tGjkjEWKAuFmf/CzD0BvMzMXZi5c9iri0djDD7GjRPuXKunA4xiEl31kloFSlGR\nuLwsaI+AXuF47JgUTtcEDdKWm2hcKANfk9tLtyty/34RJrVjRmRtYPFiKWa0kD9rIsHAD/rS3Y7f\nr2w1qzs2/tD0QKo1VBxFk1siNVXqBg8f1nI7vQLl889lcBYFik4N0q8aAUB/R1hbFkrv3vIDaqQv\nQN9ctNJXbi7wzTe26UuX8uWXywvQK1D8ylb77u5pohOtWwvTa2J4ExqkNoZfvLiiz5QFmGASP1wS\nujvCqvtYchMRidKyaJGWlTPQ9PXJJ3K0YQGfPCmGs1sUFUlfMD/oC9CrfPnFKwmBogvjxon2fuqU\n61vp1CCPHxcm0SpQhg61XFlYUywU9VydLokmTWxURY8bJyv3hg2unx1oC2XxYvli0q3tSKFTOPql\n1Svopi8gIVCqL8aNE1Vpma0ONRGhk0ny8uSoheEPHQK+/DJqd+FISE0VoXZSQ5K5X0yioNPayssT\nw9YyNLpVdffz2r/f5lyigVmssFGjLG+solM41jT6AjQn41hAQqDogmICDQyvk0n275ejFsJSmWwX\nX2z5Ep3CUetcHECntWVboHToICnqGuirdm2JCQXOAt6+Hdi1y3f60iIcHaBlS0k80eDkQF6e/MZR\nO1kbQkKg6ELDhsCQIVoycXSmqGplkgULZOe8wYMtX6JTOOblSXFmXe83KwCg1yXhSKsfN05qNEpK\nXD9fl3DUqgkvWCBHGwJFN30B/goUQB/f+zGPhEDRiXHjpEOqy/SsOnWkxCNQFgoz8PHHEiy10Q5V\nPVeNww1sa/WakZoqP21xsft7OZrL2LFiEqxc6fr5uuqDtFqNCxYAnTsDXbtavkQtwrroK/yeXkO3\ncPTDkk8IFJ0YN05cQhq6w+rSIFXRmWu/8LZtwO7dtrRHAGjTRo6KWd3Ab4GiGNQtwxcViVywzfCj\nR8uPqcHtpcva0iZQSkrEpXrxxbb6npxzjhjNuuireXPv3UQKNUH5SggUnRgyRLKfNDG8LsJq3lxD\n0ZkDdwRQwSQ1QaCoZ7udi2M3ZLNm0qEgQPSlzaW6YoUEEGzSFyBKS4K+KiMhUGoC6tSR/lYa4iit\nW0uNl1toS+lcsADo0sWWOwKQbrBNmlRvJlFQ1pbb38WVr37sWOlUcPy4qzG0bi3NHdzupqnNAl6w\nQPrDWaw/CUfr1jWDvtSz3dLX8eNiBScESk3AuHGytZ/Lvku6tC4tAkW5I8aPd3S5DuHoJ5Mo6NIg\nXQmUceOkU4FLt6oSjm6tlP37NVrAQ4aI9mETupQvvwWKLuXLz2zIhEDRjQkT5Pjxx65u06aNBIDd\n1m9oEShKI3bgjgD0CEe/8urDoct950qgXHSRBA7mz3c1Bl3Wlhb6OnhQklkc0pcOC4XZv0B2ONq0\n8dkCdglfBEqo/f1CItoaOkbcqYOIysJ2a5wT9n5nIloRuv6t0HbBwUDPnlIz8NFHrm6jiEGHBuma\nsFy4IwA9DO93jQAg6crNmulZhB13561bV36Hjz5y1YZFp7XlehF2UN8UjjZtJPzipv2Kqqfxk74A\nPbzynRMoAB4EsIiZuwNYFPo/Ek4yc3roNSXs/ScB/Cl0/SEAt5odrg0QiZWSmekqv1SHBqncRK4Z\n3oU7Aqj+TBIOXdZWaqoLN9HEicCOHdLS3iECZaE4qG8Khw7lK0j0pctC+S65vKYCmBn6eyaAy61e\nSEQEYAyAd51c7wkmThSVyUUbFh0Mr8WX6tIdAQiTFhXJV+IUQWF4Hf5617565VZ14fZq2VJ0Hx2W\no6u5MItAGTvWsYTVEcwOEn3l5bnrAbp/vzgU/Ggh45dAacXMuQAQOkYrJUohomwiWk5ESmg0B3CY\nmUtD/+cAaBftQUR0R+ge2QU6d+KJBcUcLtxeOlwSWgRKZqZQtwuBoqMWJS9PmETbJk4OoctCcbVw\ndekCnHuuK/pKTpbv0s0iXFSkwQLessVRfVM4dPBKUARKmzbienOrfKWmWm6HphXGBAoRZRLR+giv\nqTZu04GZBwK4AcCzRNQVQKSqp6jynJlfZOaBzDww1SuR3bAhMGKEK4ZPTZUF1HcLZd48cXU5dEcA\n+hi+ZUt/mCQcujRI1+6IiRMl08tF1oZb94o2+gIqrC4HqEkCRddc/JqHMYHCzOOYuU+E1/sA9hNR\nGwAIHSPW7DLzvtBxB4AlAC4AcABAEyJS9nEagH2m5uEYEycC69YB+5wNLSlJGNVXhi8vF6E4YYKr\nvNDqziThaNNGmvcdOeLsepVN5HouEybIQLKyHN/CrbWlRaDMnQv06gV06uT4Fi1aCL+4pa+kJEmB\n9hO6rHm/stX8cnnNATA99Pd0AO9XPYGImhJR3dDfLQAMB7CRmRnAJwCujnW979Dg53YbzM7NFT+5\n495E2dnSn2PSJOeDgJ54UFAEilvheOSIFBO6nsuoUVK44NKt6uY3Udc6nsvRo8CnnwKXXeZ8EBBB\n0LKle/pq1Uq8An5CVzyoxlkocfAEgPFEtBXA+ND/IKKBRPRS6JyeALKJ6CuIAHmCmTeGPvsFgPuI\naBskpvIvT0dvBeefD7Rr54rh3bok9u0TRrPRy7Ey5s4VDnPhjgAk1bZ27ZphobhleG2ulXr1pLeX\nS/rKyxND1AmU8d0uagQzDhYulKJZlwoL4F75Chp9OZ0Ls3+dhgHAbX2rIzBzIYCxEd7PBnBb6O8v\nAJwf5fodAJw79b2ASh9+912pbHbgMmrdGlizxvkQ9u0D2rZ1fj0+/FB2Z3TpB6hVS7Q/p0xSXu4v\nk4TDrUtCaxXzxInA3XfLPiI2W+IA8n2Wlkoin5Nkh337KoL7jjB3rsTnLrzQ4Q0q4FagBIW+mjWT\n79SpwqK6YX/XLJTvBi69VHwcn3/u6PI2bcTjVFbm7PF797rQHnNzZXdGDdoj4I7hDx0SRTYIDB8Y\nCwUQ+gJE8DuAW1fk3r1yD0duovJyCchfcomGvi3u40FBsVCI3PGK3x0lEgLFJC6+WCqb58yJf24E\ntGkjwuTAAWePd2WhqOwbl/5tBTfuuyBUySs0aSI/qVOGdx13CEfXrhLQdkFfgPO5uKKv1avlh9VE\nX61by+2cuO+CZAED7nhFK305QEKgmESDBlKT8v77jvJM3WjDxcWyn4pjhp87F0hLk1iQBrjRupSv\nPggM71aDzMmRWHqzZpoGNHWqZHodOmT7UrfWliuBMneufJkTJzq8QWUo911hof1rDxyQa4NAX4B7\n+gKEdf1AQqCYxtSp0iZjwwbbl7rRINU1jlxep09L9fKkSbY2O4qF1q2du+/8ZpKqcKNBKjekpq8V\nmDJFvlRlUdqAW5fXvn0uXKpz50p8TlOlqptgdk2jL8DF7+ISCYFiGioG4cAt4YbhFWE50iA/+URK\noDXFT9Q4lGvBLvxmkqpwo0Hu3at54Ro8WBzmDuirQQN5OZnLiRMSAHZEX3v3Skq6ZvpSt3YyHCA4\nAqV1a7GaSkrsX7t3r7hl69fXPy4rSAgU02jbVpj+ffulMm5cEspN5IjhZ8+ucNdpgmJWJwyfkyOJ\nZikp2objCm3bOpsHIHPRKhhr1QImT5b0YQe7ZTmtRXFFX++9J8crrnBwcWS4pS8gOApL27YVBbB2\noZ2+bCIhULzA1KnAypW2q+br1RNtwwmTOGb4sjJh+Msu07qCK4ZXzGsH2rV6l0hLk5DFiRP2rmN2\n6SaKhqlTpfmTg023nApHVwJl1izgvPNkqwdNaNNG3Ih79ti/du/eis4UQYBbXkkIlJqOKaHO+w7S\nO9u3d0ZYjmsEli2TYIdG7RGoYBInDJ+TEyyB0r69HO3OpbBQjAjtcxk7VjbdcuD2ckNfgIPFq7BQ\nkgg001edOiIQnMwlJ0cEo9994hSc0hfgv/KVECheoHdv6RDrwO3Vvr0zwtq3z2GNwKxZwp2qxkET\nWrSQdFunDB8UdwTgXIM05lqpV09S1OfMsZ1N2L69LEJ2020dWygffihW8JVX2rwwPtLSvtv0VVIi\nbrKEhVLTQSQaWWamRDJtwKlA2bvXAbMzS/xk/HjpmKwRRM4Y/vRpSX+uCRaK0eSCK66QL3flSluX\ntW8vC5HdZIm9e8UoatTI3nWYNUseOmCAzQvjw6m15bdWXxUqqG6XvlQX7IRA+S7g2mulOMSmldK+\nvWR82O1S7qhGYO1aYNcuI9oj4EyguO4XZQBqLHbnYjSbaMoUsSzfftvWZU6Fo6IvW+nPx49LOvoV\nV2jMm65AWppzl2qQ6Mup8hWEbLWEQPEKgwYBHTvaZnin5q8jgTJrVkXWkAFUVyapipQU2a/G7uKV\nkyNfr5ECuiZNpI3JO+/Y8l85jW05oq/586Xlvub4iUJamjQwPnrU+jVHj4qcCxJ9Ac48E0HIVksI\nFK9AJFbKggW2qpqdaJBHj0oLMXWtJTADb74pHWwNbUSmBIodf33Qis4UnArHVq20tK6KjGuvFUJZ\nscLyJU4tlG+/tUlfgNBXq1ay+ZwBOEkdrmn0BSQEyncH114rPR5UHr4FOGH4b7+VY8eONsa2ejWw\nbRswbZqNi+xB+evt7MQcBK0rEpxokMZ99VOmSOaDDStY1ffYmUtZmfwutujryBEJyF97rTGJ6oRX\ngkxfubmyXFjF3r3i9fRzm+yEQPESAwYAnTvbYngnLq/du+XYoYONsf3nP5JnbCh+Ajiby969UmNp\nO/hrGE4CwMZrBBo1ki0TbLi9iOzPRS10tujrvfckw8KgwuKUvsKvDQrat5ef0E7Rqfa2Pg6QEChe\nQrm9MjMtd7GrV080DjtalxIoljXIsjLgrbckVbhpU+sPsgknDK9qUPxkkkhQxY1FRdav2bPHg4Xr\n2mtlZVm2zPIldq0t2/QFAG+8Idv8Dh1q4yJ7UDEdu/QVfm1Q4CS25Ql9xYEvAoWImhHRQiLaGjqe\ntYoR0WgiWhv2OkVEl4c+m0FEO8M+S/d+Fg5x3XWi3tmwUuwy/LffirFhOfj72WcSZTWoPQLVl0ki\nwa575fBh8fq42DrdGiZPFi3ktdcsX2JcoOTnixI1bZpRzaBuXdmh1C59tWwp1wYJTtx3u3Z5QF9x\n4JeF8iCARczcHcCi0P+VwMyfMHM6M6cDGAPgBIAFYac8oD5n5rWejFoH0tOlJfzMmZYvccLw7dvb\nKGp84w1JfDeU3aWQmio+Xjtz2blTvIRBg11ra9cuORpn+IYNxW355puSUWUB7duLPmHVX69idJZd\nXu+8I1awYYUFsM8rNYW+iovFMP2uCpSpANSKOhPA5XHOvxrAR8xss3tSAEEETJ8umTibNlm6xImF\nYll7PH1atim+/HKpVDOIWrVkLmpBioeiIlFu/WaSSLCrQe7cKUdPFq/p08UkstiKxa6/fvduCeZb\n7mj7+utAnz7a9taJhQ4drNMXIL9LEOmrcWOJHVqlL5U96bdw9EugtGLmXAAIHVvGOf96AG9Uee9x\nIlpHRH8ioqgGKxHdQUTZRJRdYCe9yCRuvFEaB1m0Utq3l/Xh2DFrt9+924b2OGeObCr+/e9bvMAd\nunSR7WGsQGn1fjNJJKSliYBUgiIePLNQAGDMGBmgDfoCrC/Etuhr0yaJ53hIXzt3WstJKCuTOQeR\nvoiEVqzSlzrPb+FoTKAQUSYRrY/wmmrzPm0AnA/g47C3HwJwHoBBAJoB+EW065n5RWYeyMwDUw3V\nV9hG69ayU92//21pxylF8FYW4pIScV9YtlBeeklWlHHjLF7gDnYEiqdavU3UqSNfm525NGxoNOeh\nAklJwA9+IIWEFswOO/QF2LSA//WvivF4gC5dxNNnpfX73r3CL0GkL6B6Kl/GBAozj2PmPhFe7wPY\nHxIUSmDkx7jVtQBmM/OZ7WaYOZcFpwG8AmCwqXkYw/TpsvJnZsY9tWtXOW7fHv+2OTlSo2hJg9y9\nG1i4ELjlFs9arXbpIq1krFQzB1mgAPK7WPlNAGH4zp09zFb7wQ9ETbcQnFfjsjIXZhsWSkmJKE2T\nJ3u2v26XLnK0shAHZRGOhq5dZR5W+n3u3Cks7HcCi18urzkApof+ng4gVoOraaji7goTRgSJv6w3\nMEazmDxZ1NVXXol7qh2BohjJEpPMmCHHm2+2cLIeKIa3Ysrv3CkJSy3jOUR9gl1ry1N3RI8ewLBh\nQl9xVqS6dcXaskJfBw5IqxJL9PXhhxIEu/VWa2PWADsCJegKS5cusueOlcadu3bJb2isC4NF+CVQ\nngAwnoi2Ahgf+h9ENJCIXlInEVEnAO0BZFW5/nUi+hrA1wBaAHjMgzHrRd26YqXMmhXXPm/SBGjW\nzBrDb90qx+7d45xYVga8/LK4umwVFLiDHfeKWoSDVoOi0LWrrJfHj8c+j9mnlM7bbwe++Ub2H4kD\nq9aWZfoCxN3Vpo0UW3qEjh2FXqzSlyrsDCKUImnV2vI7fgL4JFCYuZCZxzJz99DxYOj9bGa+Ley8\nXczcjpnLq1w/hpnPD7nQvsfMcVg6oLjrLnEL/POfcU+1w/ApKRYqsufPF2f4bbfFOVEv7GqQQdUe\nAetzKSy0odXrxPXXiyby/PNxT9UuUHbtkm2Jb77ZU7W5bl1x+1ilr3btgleDoqDoy8rvEpRstUSl\nvJ/o3l06xP7jHyJYYsAOw3frZqEG5c9/Fm4y1Pk1Gpo2FYsrHsMz1xyBon43db5nqFdP3E2zZ8ct\naFDWVrxMwq1bxVcf93d5/nlR/++8096YNcCqKzLo9KWs83hzKSqScKzn9BUBCYHiN370I6GGOA0j\nu3YVgyKO3MHWrRa0x40bJRh/111SUu8xrDB8fr4E7i25VnyC1djW5s1y7NHD7Hgi4oc/lOD8Cy/E\nPM2qe2XbNlnoYpJNUZFkD151lS/+JKsCZcuWYNOXsrbi0de2bXL0hb6qICFQ/MallwqHPvdczNO6\ndpWwh2p7EQllZcJIcZnkueeEWm+/3fZwdaBbN2HmWFCL8HnnmR+PUyhrKx7Db9liUas3gc6dgUmT\ngBdfjFk5b1U4Kgs4Jl59VQqn7r7b3lg1oVs3yZaOZW0dPizB7iAswrHQpUvAFZYqSAgUv5GUBNxz\nj/TT+uKLqKcpJlbaSCR8+620YIgpUAoKJJXzxhuN7XsSD716ibvhRIy+B0Fikljo0aNirNGwebMs\nDHXqeDOms/DTn4rJp7L6IkAJFBUjiQRmCxZwWRnwpz9JZ+0LL3Q0XLfo1UuO33wT/ZzqoLAAQl+b\nNsVO1FNzCYK1lRAoQcDtt0svi9//PuopPXvKcePG6LexFDD94x9lP+EHHrA/Tk3o1UsYJNZCvGmT\nJBfYapHuA3r1iv2bAGKh+CoYMzKky++TT0Zt2NW4sXTcjTUXFWOJSV/vvCMTfvBB39LzlECJNZfq\norD06iWNLGI1+diyRTyLhjsnWUJCoAQB9esD994reftffRXxlBYtpB5jw4bot4mrqRw8CPz1r8A1\n1/iqmvXuLcd4czn3XBsNLn1Cr16S9X3wYOTPy8tF0Pu6cBEBv/ylZF69+WbU03r3dklf5eXA44+L\n9mNwX5146NJFPLqx5rJpkySfBSGQHQtWhWNQBGPA2fU7hB/9SHpz/Pa3UU+Jx/Bffy2GTps2UU74\ny18kf/VXv3I3Vpfo1k2YORaTbNoUHCaJhXjulZ07xSBUFqZvuOwyac74+ONRrZTevWUe0fpgff21\nHPv2jfKM998H1q8X+vJRE6hdW2gnHn116eJLTootxBMo5eXyme/09f/tnXuQFfWVxz8HEEVAQUQE\nBRFDUMCV91MNhiyoZbbUjYnGFcrCmNKsaJTalZX1sYmWj4iaddXaIiZbFTVYYVkfpNZFZcpRKiiP\nGYIPlsfiomzEFVFRwwrz3T9Oj1xm7szcGS63u8fzqbrV9/frvtPnTJ9fn9/z/BLCoWSFnj3h+uth\n0aIm9wQfNsyNp6n+1LVrvbAX7WnYvt27u84/v5k3QmXo3NlbH00Vkk8+8YHIlMUsiZYKfE2yscJp\np1VGnibp0AFuu83fpE1EZxg2zMe16kOSNGTtWl/WUnQzqj17YN48b75873tlE7ut1JeVpqitzYd9\n9evnG3E2pcumTT6pLnX7SgiHkiVuuAH69PHxjSJeY9gwf9kWC2ldV+c1yCYLya23+tuimXGaSjJ0\naNOtrfpev5EjKydPWxkwwHss164tfr621t/l9d18qXL++T5QfsstRbeabKkrstkKy4IF/ta76670\n43/g9rVlS/EoBh995LMh82BfZv5c6luHDakvK+FQgsZ07+4v/upq7z5oQL3RrF7d+KebN7u/KOpQ\n3njD1yFcdVVmprUMH+61q2IFfs0aP47IwT6cHTrAqFGwcmXx8zU13v3SpUtl5SqKGdxzj8+pvffe\nRqdPPdX1KWZfzVZYPv4Ybr4ZzjjDnVYGGD7cj+uKRPnLU4UFfMLc6tXFA5NnqsJCOJTsMWuWW8c1\n1zQKyTtypFf+Xn218c/qX8KNCrzkf6t7d6+ZZoSxY120Vasan6up8RnNWdvnuynGjHGZiy06ra3N\nmGOcNMn3nb/jjkbT7Lp185p9MfvasKGZrpWbb/ZpSPPnZybw2tixfiymS303ZKaeSzOMGeMVr2Kz\nImtrvY6YiQoL4VCyxyGHeGyvd9+FuXP3O3XYYV6giw2xLF/uRtXIoSxYAC++CHff7VPFMsL48X78\n/e8bn1u50gt7Rt5NLTJ2rK8ZbNhVtG2brw0aPToduZrkgQfcWH7wg0Yj8OPG+Uu4YY9r/RKpCRNo\nfOLnP/eoC2PGHDyZW8lxx/kq86bsq0+fZiavZIx659iwFSy5flmyr3AoWWTiRG9VPPSQO4MCxo2D\n115rPBPn5Zf9Jb3f4rnNm2HOHN/BL6VV8U3Rq5eP3zYs8Dt2eNfKmWemI1dbaKo2XF3tx8zpcuyx\n3uVVXe3TyAsYN85D1DccmH/5ZR+Q36/HdNcu30tnwAC4886DLnZrGT++sX1JHnz5jDPSkaktDBni\nrceG9rV+vTcMs2Rf4VCyyu23e+m95BJvrSRMnOgD8/XNdvCuiDVrYPLkgt9//rnHUurQwVspGazu\nT5jgFdxC5/jSS17op0xJTaxWc9JJXtt94YX986urfcA+k331l1/uIVnmzNnvrTtxoh8bRrx/5RW3\nry9nA0seqXrDBp811r17ZeRuBRMm+LTtbdv25W3Z4q3GPNlXx47+v29oXy+95MdwKEHLdOvme6V8\n+qlHBE4CE02f7r5hyZJ9l1ZX+4Ddl7WuvXu95lhT4zv2ZTSk6rRpPpu5sClfVeW9MfW1/jxg5lt+\nLF26/8BpVZW/CDIw6akxZh6Cp39/r3gkTZJTT/Wxq0L7evddrw2ffnrB7++4AxYu9IrPWWdVVPRS\nmTbNj4W6VFX5MU8OBdy+3npr/5ZjVZV33WUh5MqXSKr4B7gIeB2oA8Y0c93ZwHpgI3BjQf6JwApg\nA7AQ6FzKfUePHq3c8dRTUseO0je+Ie3aJUkaN04aP37fJT/8odStm/T555L27pWuuEIC6a67UhG5\nVD74wFW76SZP19VJgwZJ06enK1dbWLjQ/+XLl3t6wwZPz5+frlwtsnat1LOn/+O3bpXk5tO9u7R7\nt1/y0EOuy+uvJ7+57z7P+P73/aFllLo66YQTpPPO25d3wQVS376ZFrsob77p//KHH/b07t3SkUdK\nM2dW5v7ASpXyRMAG9QAACCFJREFUbi/lonJ/gFOAIUBVUw4F6AhsAgYBnYFaYGhy7kng4uT7I8BV\npdw3lw5Fkh5/XOrQQRo5Utq8WT/5iWQmbdwoffaZdPTR0ne/K2nHDunb3/bHOm9e2lKXxJQp0te/\n7n5w+XIX/dFH05aq9Xz4oXToodLVV3v6tttcl7ffTleuklixwj1Iv37S8uV6+mmXffFiPz1pkjRk\niFT3p93Sj3/sJy+8UPrii3TlLoHZs/25fPCBfw49VLruurSlaj11ddLgwdLkyZ5evNgfwzPPVOb+\nmXYoX968eYcyEXiuID03+Rjwv0CnYtc198mtQ5GkJUukI46QunTRx9f9vU7ouFWzZkn33y/1YIf+\nc/Y/Sscc41X+Bx/MTRXsscfcCp94QjrnHKlHD+mjj9KWqm3MmCF17SrV1Ei9e0vnnpu2RK2gtlYa\nOFAy094rrtTUY9dp/Lg6Pf+8dBif6XcznpBOPtkf1uzZuXAmkjfAQJo7V7rxRv++dm3aUrWNn/3M\n5V+6VBo71h9XpR5De3Ao3wEWFKQvAx7E95DfWJDfH1hXyv1y7VAkr+5eeKE/NtC79NUWBnyZ1qRJ\n0qpVaUvZKr74Qho1ap8K996btkRtZ9Mm6fDDXY/OnaWVK9OWqJXs3Cldc410yCES6H16aTMD9X90\ncqW+9jWv2OSMyy7bZ18zZqQtTdvZtct7Jut1+fWvK3fvUh3KQRsuNLPngWOLnLpJUuNl4EX+RJE8\nNZPflBxXAlcCDMh6LPSWGDDAY31t3MieRU/x3m/WsedPe+l9wWAOv/CcTK0DKJVOneCZZ+CnP/X4\nXtdem7ZEbWfQIFi2zIMSXHRRttYHlMSRR/qaknnzYNEi3n98DTv/+DlHTu3PUX95Fkydmv3wz0V4\n5BGfaGCWqbW9raZrV5/pdffdHp3h0kvTlqgx5s4npZubVQFzJDUKXGFmE4FbJU1P0vWr/O4E3geO\nlbSn4XXNMWbMGK1sKkZGEARBUBQzWyWpxRprlqsbrwGDzexEM+sMXAw8nTS/luFdYgAzgVJaPEEQ\nBMFBJBWHYmYXmNk7+ID6EjN7LsnvZ2a/A5C0B/hr4DngTeBJSfXBLf4WuN7MNgK9gF9UWocgCIJg\nf1Lt8qo00eUVBEHQetpDl1cQBEGQI8KhBEEQBGUhHEoQBEFQFsKhBEEQBGUhHEoQBEFQFr5Ss7zM\n7H3g7Tb+/Gg8hlh7oL3o0l70gNAlq7QXXQ5UjxMk9W7poq+UQzkQzGxlKdPm8kB70aW96AGhS1Zp\nL7pUSo/o8gqCIAjKQjiUIAiCoCyEQymdf05bgDLSXnRpL3pA6JJV2osuFdEjxlCCIAiCshAtlCAI\ngqAshEMpATM728zWm9lGM7sxbXlag5k9ambbzWxdQd5RZrbUzDYkx55pylgKZtbfzJaZ2Ztm9rqZ\nXZvk51GXw8zsVTOrTXS5Lck/0cxWJLosTLZtyDxm1tHM1pjZs0k6r3psMbM/mFmNma1M8nJnXwBm\n1sPMfmtmbyVlZmIldAmH0gJm1hH4J+AcYChwiZkNTVeqVvEr4OwGeTcCL0gaDLyQpLPOHuAGSacA\nE4AfJc8hj7rsBr4p6TRgBHC2mU0A7gLuS3T5EJiVooyt4Vp8i4l68qoHwFmSRhRMsc2jfQE8APy7\npJOB0/Dnc/B1KWWf4K/yB9+z5bmC9FxgbtpytVKHgcC6gvR6oG/yvS+wPm0Z26DTU8Cf510X4HBg\nNTAeX3jWKcnfz+6y+gGOT15O3wSexbfozp0eiaxbgKMb5OXOvoAjgP8iGSOvpC7RQmmZ44CtBel3\nkrw800fS/wAkx2NSlqdVmNlAYCSwgpzqknQT1QDbgaXAJmCnfGM5yI+d3Q/8DVCXpHuRTz0ABPyH\nma0ysyuTvDza1yB8m/RfJl2RC8ysKxXQJRxKy1iRvJgalxJm1g1YBFwn6eO05WkrkvZKGoHX8McB\npxS7rLJStQ4zOw/YLmlVYXaRSzOtRwGTJY3Cu7d/ZGZnpi1QG+kEjAIeljQS+JQKddWFQ2mZd4D+\nBenjgW0pyVIu3jOzvgDJcXvK8pSEmR2CO5PHJP1rkp1LXeqRtBOowseFephZp+RUHuxsMvAXZrYF\n+A3e7XU/+dMDAEnbkuN2YDHu6PNoX+8A70hakaR/izuYg65LOJSWeQ0YnMxc6QxcDDydskwHytPA\nzOT7THw8ItOYmQG/AN6UNL/gVB516W1mPZLvXYBv4YOmy4DvJJdlXhdJcyUdL2kgXi5elHQpOdMD\nwMy6mln3+u/ANGAdObQvSX8EtprZkCRrKvAGFdAlFjaWgJmdi9e8OgKPSro9ZZFKxsyeAKbg0Ubf\nA24B/g14EhgA/DdwkaQdaclYCmZ2OlAN/IF9/fV/h4+j5E2XPwP+BbenDsCTkv7BzAbhNf2jgDXA\nX0nanZ6kpWNmU4A5ks7Lox6JzIuTZCfgcUm3m1kvcmZfAGY2AlgAdAY2A5eT2BoHUZdwKEEQBEFZ\niC6vIAiCoCyEQwmCIAjKQjiUIAiCoCyEQwmCIAjKQjiUIAiCoCyEQwmClEkiw16dthxBcKCEQwmC\n9OkBhEMJck84lCBInzuBk5J9OO5JW5ggaCuxsDEIUiaJnvyspOEpixIEB0S0UIIgCIKyEA4lCIIg\nKAvhUIIgfT4BuqctRBAcKOFQgiBlJH0AvGJm62JQPsgzMSgfBEEQlIVooQRBEARlIRxKEARBUBbC\noQRBEARlIRxKEARBUBbCoQRBEARlIRxKEARBUBbCoQRBEARlIRxKEARBUBb+H64tiSY+X7QfAAAA\nAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def f(x):\n", " return np.sin(.2 * np.pi * x)\n", "def zero(x):\n", " return 0 * x\n", "def g(x):\n", " return -np.sin(np.pi / 15 * x)\n", "t = np.linspace(0, 60, int(10/0.01) + 1) #timestamps from 0 to 60, period of T=0.01\n", "plot(t, f(t), 'b', label=\"f(t)\")\n", "plot(t, zero(t), 'g', label=\"zero\")\n", "plot(t, g(t), 'r', label=\"g(t)\")\n", "xlabel('t')\n", "ylabel('f(t) vs others')\n", "legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Extra\n", "\n", "Aliasing effect with camera" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import HTML\n", "HTML('')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The smear effect on the propellor is due to another distortion effect called \"rolling shutter.\" You can find many interesting videos on this online!" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.1" } }, "nbformat": 4, "nbformat_minor": 2 }