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

Basic System Definition and Simulation

\n", "

MCHE474: Control Systems

\n", "

Dr. Joshua Vaughan
\n", "joshua.vaughan@louisiana.edu
\n", "http://www.ucs.louisiana.edu/~jev9637/

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this notebook, we'll take a quick look at some of the core functionality of the [Control System Library](http://python-control.readthedocs.io/en/latest/index.html) in the classical control domain, meaning that we'll be dealing with systems in the Laplace (or \"s\") domain and working with the transfer functions representing those systems. We'll first plot the response of a mass-spring-damper system to some initial conditions using the analytical solution. Then, we'll use the Control Systems Library to define the system by its transfer function and use that transfer-function definition to do some basic analysis and simluate the system response to several types of inputs." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Notebook Imports\n", "\n", "We'll start by importing the libraries we'll need to work. These include [NumPy](http://www.numpy.org), [matplotlib](https://matplotlib.org) for plotting, and the Control Systems Library itself. The code cells here will appear unchanged in most of the notebooks we'll use in *MCHE474*.\n", "\n", "We first import `numpy` and give it a \"nickname\" `np`. In doing so, we can preface calls to all NumPy functions with `np.` rather than having to type `numpy.`. This is a common convention in the use of NumPy. We say that we have imported NumPy into the namespace `np`. I'm oversimplifying a bit, but having different namespaces allows libraries to have functions of the same name, since all calls to the library or module will include the namespace information." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Grab all of the NumPy functions with namespace np\n", "import numpy as np " ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Next, we'll import matplotlib. This is another cell that will show up unchanges in nearly every Notebook that we do in *MCHE474*. The `%matplotlib inline` command tells the Notebook to include the plots inline with it, rather than plotting them in a seperate window. We import the `matplotlib.pyplot` module into the namepace `plt`. As you'll see, this means that nearly all of our plotting commands are prefixed by `plt.`." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "# Import the plotting functions \n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally we'll import the Control Systems Library. We don't specify a shorthand namespace, so we'll need to preface any commands from it with `control.`." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import control # This will import the control library. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that we've imported the necessary libraries, let's walk through the basic use of them, roughly mirroring Section 2.9 of [*Modern Control Systems (13th Edition)* by Richard Dorf and Robert Bishop](http://amzn.com/0134407628), the current (as of Fall 2017) textbook for *MCHE474*." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Defining and Plotting a Time Response\n", "We'll start by looking at the system in Figure 1. It's a simple mass-spring-damper system, with mass $m$ connected to ground through a spring $k$ and damper $c$. There is also a input force, $f$, acting on the mass.\n", "\n", "

\n", "\t\"Example
\n", " Figure 1: Example Mass-spring-damper System\n", "

\n", "\n", "The equation of motion of this system is:\n", "\n", "$ \\quad m \\ddot{x} + c \\dot{x} + kx = f $\n", "\n", "If we define $\\omega_n$ to be the system's *natural frequency* and $\\zeta$ as the system's *damping ratio*, we can rewrite this equation as:\n", "\n", "$ \\quad \\ddot{x} + \\frac{c}{m} \\dot{x} + \\frac{k}{m}x = \\frac{f}{m} $\n", "\n", "Then,\n", "\n", "$ \\quad \\ddot{x} + 2\\zeta\\omega_n \\dot{x} + \\omega_n^2 x = \\frac{f}{m} $\n", "\n", "where\n", "\n", "$ \\quad \\omega_n = \\sqrt{\\frac{k}{m}} $\n", "\n", "and \n", "\n", "$ \\quad 2\\zeta\\omega_n = \\frac{c}{m} $\n", "\n", "If we manually solve this differential equation, we find the solution to an initial displacement of the mass $x(0)$ to be:\n", "\n", "$ \\quad x(t) = \\frac{x(0)}{\\sqrt{1 - \\zeta^2}} e^{-\\zeta \\omega_n t} \\sin{\\left(\\omega_d t + \\theta\\right)} $\n", "\n", "where\n", "\n", "$ \\quad \\omega_d = \\omega_n \\sqrt{1 - \\zeta^2} $ is the *damped natural frequency* and $\\theta = \\cos^{-1}{\\zeta}$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's evaluate this function directly and plot the response. Then, we'll look at how we'll be able to get system reponses directly using the Control Systems Library without having to explicitly/analytically solve the differential equations.\n", "\n", "We'll first define the system parameters, picking the initial condition, natural frequency and damping ratio to match the one used in the book:\n", "\n", "$\\quad x(0) = 0.15$ m\n", "\n", "$\\quad \\omega_n = \\sqrt{2} $ rad/s\n", "\n", "and\n", "\n", "$ \\quad \\zeta = \\frac{1}{2\\sqrt{2}} $." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "x0 = 0.15 # The initial condition (m)\n", "\n", "# Define the natural frequency. We use the numpy sqrt function, so we need to preface its call with np.\n", "w_n = np.sqrt(2) \n", "\n", "# Define the damping ratio. \n", "zeta = 1 / (2 * np.sqrt(2))\n", "\n", "# We'll also define the mass of the system\n", "m = 1.0 # mass (kg)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll next need to define an array that specifies the time range over which we wish to plot the function. We'll use the Numpy `linspace` function to do so. \n", "\n", "For any well documented library, within the Jupyter Notebook, you can get information and help with a function by following its name with a `?`. For example, if we would like help on the Numpy `linspace` function, we can issue the command\n", "\n", " np.linspace?\n", " \n", "in a Notebook cell. Let's try that out below." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "np.linspace?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Running that cell with open a sub-window that has the help information for the function.\n", "\n", "Now, let's use it to set up the time array. We want to plot the response from 0 to 10 seconds. We'll specify 1001 points within that range. From the documentation, we see that the format of the call to `linspace` should be:\n", "\n", " np.linspace(start, end, number_of_points)\n", "\n", "We'll assign the returned array to the variable `t`." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "t = np.linspace(0, 10, 1001) # define a time vector of 1001 equally-spaced points between 0 and 10" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we just need to compute the response given the equations above. NumPy makes this easy, as its operations work on arrays. This means that we can pass the time array directly, rather than having to use some type of loop over it. We'll first calculate the damped natural frequency, $\\omega_d$, and phase shift of the response, $\\theta$. Then, we'll use those to form the full expression." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "w_d = w_n * np.sqrt(1 - zeta**2) # Damped ratural freq (rad/s)\n", "theta = np.arccos(zeta) # Phase shift (rad)\n", "\n", "x = (x0 / np.sqrt(1 - zeta**2)) * np.exp(-zeta * w_n * t) * np.sin(w_d * t + theta)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we can plot the response, $x$, as a function of time. We'll first use the default settings." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nA4oXAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(t, x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "That's obviously not a nicely formatted plot. It's missing axis labels, *etc.* Let's improve it a bit. Let's also define and plot the decay envelopes for this resposne. They are formed by the \n", "\n", "$ \\quad \\frac{x(0)}{\\sqrt{1 - \\zeta^2}} e^{-\\zeta \\omega_n t} $ \n", "\n", "component of the response equation." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": true }, "outputs": [], "source": [ "upper_decay_env = (x0 / np.sqrt(1 - zeta**2)) * np.exp(-zeta * w_n * t)\n", "lower_decay_env = -upper_decay_env # It's just the opposite" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we'll plot these along with the response while adjusting the plot formatting. Note that many of these changes could be made to your default profile (which would stop you from having to copy them all every time you plot) by modifying your `.matplotlibrc` file as outlined [here](https://matplotlib.org/users/customizing.html). If you like, you can take a look at [my defaults](https://github.com/DocVaughan/CRAWLAB-Code-Snippets/blob/master/Plotting/matplotlib%20plot%20styles/matplotlibrc)." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmkAAAGVCAYAAAClyWYtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvXl8W9WZ//85Wm0rtiWHJI6TEEeGxARIg+QkLIVSsFvo\nwlLk0JmWLtNGpp3uhaTMb7p8pzNDnVK60NKx6Q6kJTJ0pxQ7QCmEJFhOGqjjJEhZTOJssuTYsixZ\n0vn9oQXJlm1JlnTulZ/363Vf9j06y3M/XJxHZ3kexjkHQRAEQRAEIS0Uog0gCIIgCIIgJkNOGkEQ\nBEEQhAQhJ40gCIIgCEKCkJNGEARBEAQhQchJIwiCIAiCkCDkpBEEQRAEQUgQctIIgiAIgiAkCDlp\nBEEQBEEQEoScNIIgCIIgCAlCThpBEARBEIQEUYk2oNi56aab+DPPPCPaDIIgCIIgpANLpxI5aXnm\n3Llzee2/v78fy5Yty+sYxGRIdzGQ7uKQi/ZjY2M4deoUhoaGEAwGRZtDEFCpVKisrER1dTVKSkoy\na5snm4gC4fV6RZswJyHdxUC6i0MO2o+NjeHgwYNYuHAh6uvrodFowFhaExYEkRc45wgEAhgcHMTB\ngwexatWqjBw1xjnPo3lEQ0MD7+7uFm0GQRBE0XP06FFotVosXrxYtCkEMYmBgQH4/X7U1tYCaS53\n0sEBmeNyuUSbMCch3cVAuotDDtoPDQ2hqqpKtBkEkZKqqioMDQ1l1IacNJnT398v2oQ5CekuBtJd\nHHLQPhgMQqPRiDaDIFKi0Wgy3idJTprMWbNmjWgT5iSkuxhId3HIRXvag0ZIlWzeTXLSZI7f7xdt\nwpyEdBcD6S4O0p4gCg85aTKnt7dXtAlzEtJdDKS7OEh76bB161Ywxqa8DAYDzGYz2tvb4fF4RJtL\nzAJy0mTO6tWrRZswJyHdxUC6i4O0lw6bN28G5xytra3xMrfbDc45OOew2+0wGo1oaWmB2WwmR03G\nkJMmc7RarWgT5iSkuxhId3GQ9tLDaDQCAPR6PfR6fVK5zWaDXq+H0+lEe3u7KBOJWUJOmszZv3+/\naBPmJKS7GEh3cZD28iMWjsThcAi2hMgWctJkjhzStBQjpLsYSHdxkPbyw+l0AgDMZrNgS4hsISdN\n5syfP1+0CXMS0l0MpLs4SHv50NPTg6amJgCA1WqF1WpN+tzj8aClpQV1dXUwGAxoamqKO3SJbNmy\nBQaDAXV1dWhqasLWrVvjDt/EwwtOpxNNTU1JhxYm4vF40NzcjLq6OtTV1aGlpSVpv9zEPgEk2dnS\n0pLyeaezM9NnlhrkpMmU00M+vO+BF3C/bZdoU+YkfX19ok2Yk5Du4iDtpYvH40lybm688UY0NTXB\n4XCgra1tUl2z2Yzu7m7Y7Xa43W4YjUbU1dUlOS1bt26F0+mE2+2Gw+HAli1bcP/998c/37x5M9xu\nd/zebDajubkZO3bsQENDA1paWrB169b4506nEytWrIDH44HD4YDD4UB3d3e8bKo+BwcH0draisbG\nRrS3t6O5uTnpeWayM5NnliSx0yB05ecym808Hwy4R/nV3/grv/Jrz/DXjrvzMgYxNcePHxdtwpyE\ndBeHHLTv7u4WbUJBsdlsHADX6/Wcc87dbne8zGQycbd78r8NVquVA+B2uz2pHABvbGyM35tMJt7W\n1jZpPJPJlFSm1+s5AL558+akcqPRyAHEbbBYLBwAdzgc8Tp2u50D4FarNWWfFoslZXnic6VjZ7rP\nXAgS3tG0fAhKsJ5n8plg/eHOQ/jVS0dQt2geftlyFVRKmhglCGLuYrfbp9x/dWKJNPfULTmRfbqt\njo4ONDc3Q6/XJ81Atbe3o6WlBVarddJMGmNsUv1YORCZuAEis1g9PT3YvHkzmpqa0NjYGB/TYrHE\n2xkMhvjsWOy0KRBZpmxvb0dbWxs2btwIg8GQ1riJfdrtdphMpnh5U1MTurq6ksrTsTPdZy4ECe8o\nJVgvdv7t+josKlfDcXoE23YeFW3OnEIOeQyLEdJdHKS9fNi4cSMATNoXFlva83g8MBgMSdfEOvfd\ndx+AyHJiU1MTGGNoampKcsQSmVheV1cHIOKUxPpM1TZW1tPTM2OfiWFGYsxkZybPLEVUog0gsqdE\nrcRdZgMeeOEMfvqCAzdcWo2lVWWizZoTeL1e0SbMSUh3cchd+9nMWMmNWNw0j8eDrq6u+OxSbO+X\n0WicMSyHxWKJ72nr6upCT08Purq6cOONN+LIkSMpHaZEXC5X/PfBwcGsn2MmZrIzk2eWIjSTliaM\nMSNjrFG0HROxvPMK3Py2GviDYTz014OizZkz1NfXizZhTkK6i4O0lxexGGmdnZ0AIicgY2VTzRwl\nltfV1cFoNKK1tTW+2X7z5s3weDxItYVnYp8x58hsNqOhoWHKcWNlicuamTCTnRNn1GayW2oUrZPG\nGLMyxizRa3MG7UyMMVuKj0wAbIwxzhhzM8Y6GWPZvVU5xOVy4XPvXoWlVaVQKtJa4iZyQOK3RKJw\nkO7iIO3lRczp6erqAhDZo1VbWxsvT7UUmphCamKmAr1ej9bW1ilntzo6OpLut2/fDiCy9KrX62Gx\nWODxeJKcotgSZ+Iet0yZyU69Xp/2M0uSdE8YyOkCYAVgTbg3AWiboY0JQGv0sqf43BL9qc/Elnyd\n7oyxd+9ezjnnoVA4r+MQycR0JwoL6S4OOWg/1053tra2cgCTTk1y/tbJT0RPMMZOO8ZOVALgra2t\n3OFw8M7OTm40GrnNZou3j9VJPDlps9m40WhMGid24jJ2ytJut8dPcra2tsbrORwOrtfrJ50g1ev1\nk06hxsaeWN7Y2MgBZGxnus9cCDI93SncocrHNYWT5UizrWk6Jy3TK99OWigUymv/RGpIdzGQ7uKQ\ng/ZzxUlLdM4mXonEQk8Yjcak8BMOh4NbLJYkB6uzszOprV6v53a7nVutVm40GuMO1kRnMDEsRsyJ\nShUWg/NIiBCLxcKNRiM3Go3carUmOWI2my3eH6KhRWJOVSykR+yKhedI1850nrkQzPkQHIwxPQA3\n55xNKLcD2MI575qhvQnAI5xz84RyC+e8Y4pmU5KvEBxhnw/hQTcCOh3K9JU575+YHp/Ph9LSUtFm\nzDlId3HIQfvpQnAQ+SEWLqPYfIl8QSE4ACOAVAvMg4jMkmUNY6wx4docdQiFEHj1VZxevwHuSy/D\ngHkdBj//Rfhf3kn/oxSI3t5e0SbMSUh3cZD2BFF4itFJq0LEIZuIB8Bsks/1AHByzruis3EdAFId\nMIgdWuhmjHUPDAzE4wv19/fHU6u4XC7s27cP4XAYPp8PdrsdPp8P4XAY+/bti2/S7evrS9n+vMuF\n0PwqQKlE+NQp+Do6cG7jnTj7vlvwus02Y/vZjj/X29fU1Mjafrm2LykpkbX9cm5vMBgkbz9ReGKb\n7iW9+V5iZHIIpxiXOxsROSRQN6HchoiTtWWG9imXO6eo6wDQzDmfHIUvSj4zDgBAKBhE+PBh+J7+\nC7y/ehThc+cAxlD+5S+h/POfA1MUox8unnA4DAVpW3BId3HIQXta7iwcHR0d2LRpU9w50+v12Lhx\n46QMB0QytNwZoSpFmR5Ars+QewA05LjPjHjt9dehvuQSVHz5S1j08t8xr8UKABh+4Ds4edfHse25\nPoz6gyJNLEr2798v2oQ5CekuDtKeSMRiscDtdsc3uLvdbnLQ8kAxOmndiDhkE6lCZMkyY6KBbFNN\nOQ4i9dJqwVi27K18dIp581D5ta9i/rbHwPR64IXnULX5s/jBb7N6bGIaEnUnCgfpLg7SniAKT9E5\naZxzDwBnik39+plOdk7DIICWFOUNyNLxyxXz50/eZldy3XVY8KQNfMECXD7Qhyse+A/sO3xagHXF\nSyrdifxDuouDtCeIwlN0TlqUVgD3xW6i+8y6Eu6NjDHbFKczJy2VRh2/JBhjVgDbOedCc0rENtJO\nRF1fj+rfPYWAYT4uGziIsv/+Kng4XGDripepdCfyC+kuDtKeIApPUTppnPN2AI5oqAwLgEbOeeJM\nmBFAIxIcsqjjFss4YGKMtUUdsXif0bAb1miaKf2EPoWg0+mm/ExVW4slv3kMTKeDrusvGP7e9wto\nWXEzne5E/iDdxUHaE0ThKbrTnVIj36c702Hsuefh+shHAQDztz2OkuuuFWoPQRBEPqDTnYTUodOd\nc4xYDKHpKLnhnSj/0hcBzuH+zGcROnWqAJYVN+noTuQe0l0cpD1BFB5y0mSO1+tNq1755z8H7bXX\nIuxywX3vZspMMEvS1Z3ILaS7OEh7gig85KTJnPr6+rTqMaUShu89CKavhP+55zH6xBN5tqy4SVd3\nIreQ7uIg7Qmi8JCTJnMySS+hrK6G/pvfBAAMfeO/EDo5kC+zip5MdCdyB+kuDtJeOjQ3N4MxNumq\nq0tKtAOz2TypjsFgEGR1bmhvb0/57FNdLS3Cz/fNCnLSZE6m+0RKb78NJe9+F/jwMPZ86l74ApSN\nIBtof44YSHdxkPbSwWazwe12o7GxEQBgMpngdrvhcDiS6tntdnR2dia1O3LkSEFtzTVWqxWc86Ts\nBg6HIynzQWdnJ0wmk0Arcwc5aTJnzZo1GdVnjKHym9/EuEaLC7v/hm0P/jpPlhU3mepO5AbSXRyk\nvbTQ6/VxR8RoNEKvTxX2E2hsbITFYoHJZILFYpmyntwwGo0pf9fr9WhsbMSOHTug1+sxOCg0KdCs\nISdN5vj9/ozbqJbUANZPAQAu+9UP8Ez3sVybVfRkozsxe0h3cZD28sVoNCY5MnMBvV4Pq9UaTwAv\nV8hJkzm9vb1ZtVv+pc9grGYZlg6dwuvf+gGOnaOTW5mQre7E7CDdxUHay5f58+ejqmpSMp2ipK6u\nDk5nJBFQU1MTzaQRYlm9enVW7ZhWi5rW/wEA3GL/I/77ly9hbDyUS9OKmmx1J2YH6S4O0r542Lp1\na9LmeqfTiaamJhgMBpjNZrS3t2dVN4bH40FLSwvq6upgMBjQ1NQUd5wAoKWlJanP2Dhmsxl1dXXo\n6ckuJbbH40kap7GxMX5wYOJzxOyI2TjxgEFTU1NS/ebmZgBAR0cHDAZDvDzV8+cSctJkjlarzbpt\n6Q3vhOrtb4cu4MMVndvx0xccMzciAMxOdyJ7SHdxkPbFw+bNm+F2u+P3ZrMZzc3N2LFjBxoaGtDS\n0oKtW7dmXBeIOEpmsxnd3d2w2+1wu90wGo1JM1xtbW1Jfba3t0Ov16OhoQFOpzPpUEC6OJ3OuCOV\niNVqnfI5BgcH0draisbGRrS3tye17+zsRGtra7wPm80GALBYLNixY0e8Tqz/vBE7EUFXfi6z2czz\nyd69e2fV3r9/P3+zZik/srSWP/TzHTmyqviZre5EdpDu4pCD9t3d3aJNKCibN2/mALjFYpm2Xmtr\nK7darZPK9Xo9B8A3b96cVG40GjkA7na7M65rtVo5AG6325PqAeCNjY0px4/Zb7PZOABus9lmeHLO\nOzs7OYCUl8PhmLLdxDEnlic+s9vt5gC4Xq9Pqmuz2SY9S7okvKNp+RCq/LqARL5ZtmzZrNprLr8c\npbfdCvzu9/jXfX8EcENuDCtyZqs7kR2kuzjkrv2XHrNj5+FzKT+7+uIL8OCHp8/5mdg+0/rZjFdI\nJi71xWaWtm/fPmmmaKa6sVmxVCEwurq6Uo6/bt06AJFZKp5FNhzOOTweDzZt2oSOjo602tx3331J\n9w0NDejq6oLT6YzbHjt80N7ejo6ODlgsFgCRmcAtW7ZkbGc20HKnzJk/f/6s+6jYfC+gVsPX8STG\nDx/OgVXFTy50JzKHdBcHaS9dZjrB6HK5pg29MfHkZywort1uz6hubDnT4/HAYDAkXTES94zFiMV7\nmw16vT6+JJlIV1dXSn0mPsdU+sSc0vvvvx9AxH6n05kTm9OBZtJkTl9f36zTtaiWL0fZnXdi9LHH\nMPyDH6Lqoe/nyLriJRe6E5lDuotD7trPduYq0/ZSminzeDyTshFMRybZJRLrxpwho9E4KbDudOQy\nPEhstitGc3Mz7Hb7JCcs3XhxJpMJJpMJPT096OnpQVdXV0GzGNBMmszR6XQ56af8M58GVCr4fvc7\nBJ3yjkhdCHKlO5EZpLs4SHvpEXO8uru7p63X1dU1bQT+ibNbMWfLbJ7saE5XN+ZspZotm648lwF2\nbTZb3I6enh54PJ5Zhx+JOWVtbW1oa2vL/2GBBMhJkzm52ieiWrYMZc0WIBzG8EMP5aTPYkbu+3Pk\nCukuDtJeesSW3DweT9IJy0RiISKmW56buI9r+/btAICNGzdmVDdxL9rE0BROpxNms7mgwWVj+8Zm\n6wRarVbo9Xq0t7enzO6wdevWrMOGzAQ5aTInl/n0yj/z74BSidEnn0LwGGUhmA7KYygG0l0cpL30\nMBqN8XAVW7ZsQXNzMzo6OuB0OuPLci0tLSn3aiXyxBNPoL29HT09PWhubobH40Fra2tK52amuo88\n8ggAxENzxGxpamrCI488ktTnbBy2xFm5RAfJ4/Ggp6cHTU1N6OrqmvQMsTEnjh27n2q2LzZ7NnGp\ns729Pa59Xkj3GChd0gzBceDAgZz2N/j5L/A3a5bywXvu5ePBEP/kI7v4lx+388B4KKfjyJ1c606k\nB+kuDjloP9dCcMRwOBzcarXGw2EA4EajkVut1qSQEhNJDDvR2NjIAXCTycTb2tpmVdfhcHCLxRJv\nYzKZeGdnZ/zztra2+GeIhriYKYxIYltMEXoj1WU0GjnnkbAZE8dsbW3lDocjSTdMEdLE4XBMCsXB\nOed2u53r9fpJoUmmItMQHIxncdyVSJ+GhgY+034BKTHucOLMO64HVCosfGUnNv7mEAY8Ptyxbhnu\nfR9FHCcIQrrY7faU+6iI1BgMBng8nrTCXmRSl5iahHeUpVOfljtlTiancNJBXWdEyc03A+PjGP3F\nL/DN5jVQKxmefLUfQ6OBnI4lZ3KtO5EepLs4SHuCKDzkpMmcfOwTKb87subuffQxrDao8dBH12Hz\n+1ajskyT87HkCu3PEQPpLg7SvviYan/WbOsSuYOcNJmzZs2anPepMZugWbcOfGgIo795AmuXG/CB\ndXSyK5F86E7MDOkuDtK+eIglCY+xYsWKKWN/ZVKXyD20Jy3P5HtPms/nQ2lpae77feYZDH5iE5TL\nlmHRSy+CqSjucSL50p2YHtJdHHLQnvakEVKH9qTNMXp7e/PSb0lTE5QrViDU3w/fn5/OyxhyJl+6\nE9NDuouDtCeIwkNOmsxZvTo/Jy6ZUonylkhcmJFHfpKXMeRMvnQnpod0FwdpTxCFh5w0maPVavPW\nd6nlDrDKSozv3YvAvn15G0eO5FN3YmpId3GQ9gRReMhJkzn79+/PW9+K0lLoPngnAGDk57+c9Pm5\nYT+2/Hovdh4+mzcbpEo+dSemhnQXB2lPEIWHnDSZk+98erqPfgRgDL4//AGhc+eSPjt2bgR/6zuD\nr/xmH/5x3J1XO6QG5TEUA+kuDtKeIAoPOWkyZ/78+XntX7V8OUpuvBEIBDC67ddJn5lqq3B7wzIE\ngmHcu20vjp3z5tUWKZFv3YnUkO7iIO0JovCQkyZz+vr68j6G7t8+BgDw/upR8GAwXs4Yw5ffU49r\nVi7Aed84vviYHa4Rf97tkQKF0J2YDOkuDtKeIAoPOWkyR6fT5X0M7bXXQmU0IjQwgLG/Ppv0mUqp\nwH83r8ElNRU46fbhnsd74PUHp+ipeCiE7sRkSHdxkPYEUXjISZM5hdgnwhQK6D7+MQDAyM9/Punz\nUo0KD3zIhBpDKQ6cPI8n9xzPu02iof05YiDdxUHaS4euri4wxlJePT09os3LK+3t7VM+e6pL7tkR\nyEmTOYXKp1fWbAHT6RB4ZRfGDx+e9Pn8eVo89JEG3GpeiqsuXlAQm0RCeQzFQLqLg7SXDo2NjeCc\nw2azxcvsdjs45zCZTAItyz9WqxWcc7S1tcXLHA4HOOfgnMPtdqOzs7NodCAnTeZ4vYXZrK8oL0fp\nbbdFxnx8W8o6S6rKcN8tl+Li6vKC2CSSQulOJEO6i4O0lx6JjojRaBRoSeFJfN7E3/V6PRobG7Fj\nxw7o9XoMDg6KMC9nkJMmc+rr6ws2lu7D/woAGLV1gI+NFWxcKVJI3Ym3IN3FQdoTckKv18NqtcLj\n8Yg2ZVYUrZPGGLMyxizRa3MG7UyMMdsUn2XVZz5xuVwFG0uzZg3Ul18O7vHA95e/FGxcKVJI3Ym3\nIN3FQdoTcqCurg5OpxMA0NTURDNpUoQxZgUAznkH57wDQBdjrG2GNibGWCuAOwFMmjfOps9CUOh9\nIrp//RcAUy95zhVof44YSHdxkPbFgcfjQXNzM+rq6lBXV4eWlpak2aYtW7YkbbzfsmULenp6UFdX\nFy8zm81wOp3YunUrDAYDGGMwGAxx5yg2TktLC+rq6mAwGNDU1JT0eUtLS9I4ALB161aYzWbU1dVl\ndQDC4/EkjdHY2Bg/OLB169ZJ4yXaN/GAQVNTU1L95uZmAEBHR0f8mRljaG9vz9jOjIhttiumC4A9\nRZkjzbamKdpn1afZbOb5JBQK5bX/SeOdP89P1F3M36xZygNvODJqGw6H82RV4Sm07kQE0l0cctC+\nu7tbtAkFxeFwcAAcAHe73WnV1+v1vLGxMV5mMpm4Xq9Pat/a2soBcKvVmtRer9dzvV6fVGaz2SaN\n73a7udFo5CaTKV5utVo5AO5wOJLqxexva2vjbW1t8XoTx55IZ2dnvG3s2RobGyeNkUjieCaTiVss\nFm6z2bjFYuEAuMViSao/lQ52u50D4J2dndPamIqEdzQtf4bxiLNRNDDG9ADcnHM2odwOYAvnvGuG\n9iYAj3DOzbnos6GhgXd3d2fxJOnh8/lQWlqat/5T4b7nXoz++jeYd3cLKr/6n2m1ebHvDP7396/j\n040rcYt5aZ4tzD8idCdId5HIQXu73Q6z2Zzys/965evoPp3Z3+KGRQ342lX/L626+e4/FU6nE3V1\ndQAAt9sNvV4/bf3m5mZ0dHTA4XDEN9v39PTAbDbDarXGT0x6PB4YDAbo9Xq43W+l/DMYDPB4PLDb\n7fFDC1u2bAEAtLa2xuu1tLSgvb09qR4QCYDe2NiIzs7OSX1aLBbYbDZ0dHSgubkZNpsNFotlymfp\n6upCU1NTys8Sn28iE8ebWJ6o41Q6dHR0oK2tLek50iXhHWUz1QWKc7nTCCDVTsFBRGbJpNJnTujt\n7S34mLoPRQ8QbLeB+9PPMOAZHcf9f/wn/rr/ZL5MKxgidCdId5GQ9vLG4/Ggo6MDer0+yYGJOVGJ\ny3axE5IejwddXZE5iNhPAEnhLzo6OiYtFba3t0Ov16cMg5HYTyLr1q0DAFgsFnDOp3XQJsKjoTcy\naXPfffcl3Tc0NABA0nJp4uGDjo6OeHlbW1vcOc076U65yeUC0IgUy5AAbABa02g/abkz0z4BWAF0\nA+iuqanhx48f55xzfvz4cX7gwAHOOefnzp3je/fu5aFQiI+OjvLu7m4+OjrKQ6EQ37t3Lz937hzn\nnPMDBw5M235kZGRW7bMZPxwO8xPvvIG/WbOUj/z2d2m3f+hPPXzD157hd/9sd86eX1T7kydPytp+\nubZ//fXXZW2/nNs7HA7J20/LnZNxu93carXGl+hMJtOkOkajkQPgdrs9XhZbxowt9VmtVm6z2eJ1\nOY8s+03sL9Gm2PJo7IqVJy5HxsoTx06HicudMSb239nZmaRNbLyJesWWPCfaMVE3h8PBjUZjRrYm\n0t3dHXu/0/Np0q0ol0sKTlriVWx70mIM//wX/M2apfxs850ZtbMfcfE3Xd48WVU45LA/pxgh3cUh\nB+3JSZtMZ2cnN5lMcacmXSeNc57Ud2wvWmyfls1m41arlbe1tSW1iTk16ToyUzlNMzGVk2axWCY5\ngamcwolM5aRxHtm3F/ustbWVt7a2ZmRrIpnuSSvG5U4AqEpRpgcwmzPk+ehz1uzfv1/IuGUfuB2s\npAT+l19G8MiRtNuZaquwpKosj5YVBlG6z3VId3GQ9vLEZrOhqqoq5XJejFjZxOVJq9UKILKXrbGx\nEQDiS4ptbW3Yvn07Nm7cmNQmtpSaapzpymfaT5cuNpstab+dx+NBVVWqf77TJ7ac29bWhra2trgu\nhaAYnbRuRJyniVQByDapWT76zAmi8ukpKipQ+v73AYjsTZtrUB5DMZDu4iDt5YfH40F7ezuMRiP0\nej0sFsukMBWxUBep9nPFnJOurq7470ajESaTCV1dXWhoaJjkXCXuRZsYnsLpdMJsNhcswGxs39hs\nHUCr1Qq9Xp+kZSJbt27NW87UonPSOOceAM7oicxE9HyGk52F7DNXzJ8/X9jYZXdGvkGN2jrAQyFh\ndohApO5zGdJdHKS99Eh0DBI35DudTnR0dGDFihUA3nJSWltbodfrkzb6b9q0CXq9Ho888sik/k0m\nU9wpic2kAW85b1MlL4/11dLSgq1bt8LpdMZPYz7yyCNJTk62DlsqRzPWX09PD5qamtDV1TXJoYqN\nN3Hc2P1UM32x2bNUhyS2bNkSj6OWc9JdF5XThcjG/daEexOAtoR7IyL7yfQp2jYidUy0afuc6sr3\nnrTYRloRhMNhPnDV1fzNmqXc98ILwuwQgUjd5zKkuzjkoP1c2ZOWuB8rnStxD5Xb7eYWi4UbjUZu\nNBq51Wqddj/Y5s2b+ebNmyeVT4yXNhGHw8EtFkt8D1hsX1yMtra2pMMEer1+UpyyVLS1tWX07LG9\ncTabbdJ4ra2t8YMAiW1S2RGLMTcRu93O9Xp9So1SMefjpMWIZghwIrJMaeScb034rBERJ83MOXdG\ny4wAWhBx0kwA2hFx1trT6XMq8h0nrb+/X+gyxPnvfg/DD3wHpbfegqqHfzSrvp59bQC+QAi3mJbE\nI0JLFdG6z1VId3HIQfvp4qQRhBTINE5a0TppUiHfTppogidO4PSGqwCNBot7uqGYxdr/rQ/+DaeH\nxvCBdcvw5fdcAqVC2o4aQRDSgpw0QupQMNs5huh8eqolS6C95hrA78fo7/8wq77uee8l0KgUeOrV\nfvyn7R9q5wAgAAAgAElEQVTwj0t3n5to3ecqpLs4SHuCKDzkpMkcr9cr2oS3DhBs3z6rfq5dtRDf\nv8uMeSUqPN97Gl94zI5h33guTMw5UtB9LkK6i4O0J4jCQ06azKmvrxdtAkpuvgmsvBzj+/6B8YMH\nZ9XXFbVV+L9/W48F5VrsPerG3T/fg6HRQI4szR1S0H0uQrqLg7QniMJDTprMcbmExtIFAChKS1F6\nyy0AchMz7aJF5Wj/5AYsv0AHx+kR7HaIf8aJSEH3uQjpLg7SniAKDzlpMkcq+0R0sSXPJ58CH5/9\nEuVifSl+8skNuP/OtXhH/cJZ95drpKL7XIN0FwdpTxCFh5w0mbNmzRrRJgAA1KYroKqrQ/jsWYw9\n/0JO+iwvVeOdqxdBq1bmpL9cIhXd5xqkuzjkoj1FLCCkSjbvJjlpMsfv94s2AQDAGMvZAQI5IBXd\n5xqkuzjkoL1KpUIgIL09rAQBAIFAACqVKqM25KTJnN7eXtEmxCm74wOAQoGxzi6Einz/ipR0n0uQ\n7uKQg/aVlZUYHBwUbQZBpGRwcBCVlZUZtSEnTeasXr1atAlxlNXV0F5/PRAMwvfUb/M+XjjMhS1t\nSEn3uQTpLg45aF9dXY0zZ85gYGAAfr+flj4J4XDO4ff7MTAwgDNnzqC6ujqj9pRxIM/kO+NAOByG\nQiEdX9v3xz9h8O5PQX3ppVj47DN5Hetzv+rG6aEx/JdlDVYtrsjrWBORmu5zBdJdHHLRfmxsDKdO\nncLQ0BCCwaBocwgCKpUKlZWVqK6uRklJSaw4rYwDmS2OEpJj//79WLt2rWgz4pQ0NYJVVmL8n//E\n+D97ob40f9++1UoFjp3zwvrT3fj+XQ1Yu9yQt7EmIjXd5wqkuzjkon1JSQlqa2tFm5Ez9u3bJwvd\niw2p6C79r0XEtEgt4TErKUHZrZGYaV7b7GOmTcf9d67F+01L4B8Po+/kUF7HmojUdJ8rkO7iIO3F\nQLqLQSq603Jnnin2BOupCPTsxdn33wLFBRegunsPmFqd1/HOnh/DBeVaMEYJ2QmCIAhZQAnW5wJ9\nfX2iTZiE+oq1UF10EcLnzuUsZtp0LKgoKbiDJkXd5wKkuzhIezGQ7mKQiu7kpMkcnU4n2oRJMMZQ\ntrEZADBq6xBsTX6Qou5zAdJdHKS9GEh3MUhFd1ruzDNzcbkTAEIDAzi1/kpAqUR1jx3KqsJt6icI\ngiAIiUPLnXMBqebTUy5eDO111wLj4/D94ffC7Djp9uHBpw/g0MD5nPYrVd2LHdJdHKS9GEh3MUhF\nd3LSZI7X6xVtwpSUNVsAAKPb83vKczr2OM5h++7j+ORPduO3r/bnLLillHUvZkh3cZD2YiDdxSAV\n3Wm5M8/M1eVOAOA+HwauMIMPD2Phc11Qr1pVcBsCwTAefPoAfmd/EwBww+pF2PL+1ags0xTcFoIg\nCIKIQsudcwGXhHNkstJSlN7yfgDiDhBoVAp85ZZL8Y07LkeZRonnek/jwz/eiW7n7HSTsu7FDOku\nDtJeDKS7GKSiOzlpMkcq6+ZTUdYcPeX51FPgAlO03LSmBr/61NW4fJkeZ8/78dlfdeON08NZ9yd1\n3YsV0l0cpL0YSHcxSEV3Wu7MM3Mtd+dEOOc4fe07EDpyBPMf/RVKbninUHuCoTAee/koup0ufOOO\nNbigXJtVP1LXvVgh3cVB2ouBdBdDAXSn5c65gN/vF23CtDDGoIsdIMhzmqh0UCkV+Nh1RvzwY+uy\ndtAA6eterJDu4iDtxUC6i0EqupOTJnN6e3tFmzAjpZY7AMbg++uzCHs8os3JCXLQvRgh3cVB2ouB\ndBeDVHQnJ03mrF69WrQJM6JasgTaa64B/H74/vgn0ebkBDnoXoyQ7uIg7cVAuotBKrqTkyZztNrs\nl+wKSSxmmldgzLR0GRsPoWPPcRw9OzJlHbnoXmyQ7uIg7cVAuotBKrqTkyZz9u/fL9qEtCh5z81g\nOh3Ge3ow/oZDtDnTYj8yiAf+fAB3/XgnfvV3Z8oAuHLRvdgg3cVB2ouBdBeDVHQnJ03mLFu2TLQJ\naaEoK0Pp+94LQBoHCKZjQ9183GJagvEQx8Ndh1OG6pCL7sUG6S4O0l4MpLsYpKJ7ViE4GGNrARij\nFwA4ATg55/tyaFtRMJczDkzEv2sXzt3RDOXixVi0+xUwpVK0SdPSc3QQhwbO4451F0Ktou8zBEEQ\nRM7IbQgOxthaxtiPGWMhAHYANgCt0csGwM4YCzHGHmaM1WZuL5ENfX19ok1IG8369VBeeCFCAwPw\nv/yyaHNmxFRbhQ9eVZvSQZOT7sUE6S4O0l4MpLsYpKJ7Wk4aY+zHiDhmLYh4f0MAjgDYG72ORMsY\ngLsBOBhjD+fDYCIZnU4n2oS0YQrFW0nXBaWJyhVy0r2YIN3FQdqLgXQXg1R0n3a5kzFWAaAHkWXN\nrQA6AXRzzoemqF8JoAHAuwDcC+ANAGbOefb5d2QOLXcmEzx+HKevugaspATVe+1QVFSINmlWnB7y\noUyjQnmpWrQpBEEQhHzIyXJnD4AuAAbO+Vc45zumctAAgHM+FK2zBYABwPPRPog8IZX8YumiuvBC\naK66EnxsDL4//Vm0OVnT39+PYd84mn/wEm777ovYtvMoxoNh0WYVPXJ734sJ0l4MpLsYpKL7lE4a\nY+xeAK2c87unc8ymIuqwtQDYyhj75GyMlAKMMSNjrFG0HRPxer2iTciYMgmlicoWr9eLUo0S16xc\nAK8/iB/89SA+9PDL2HnorGjTiho5vu/FAmkvBtJdDFLRvWgTrDPGrAAGo7dGzvnW2bRhjFkAPAJA\nD8ADoBvAFs75tDOFtNw5mfDICE6tNYH7fFj00otQrVgh2qRZsfPQWXzvmT4cd40CANbXzcdn37UK\nF1eXC7aMIAiCkChiE6wzxg7nq+80xrYCAOe8g3PeAaCLMdY22zaccwMiS78GznnTTA5aIXC5XKJN\nyBjFvHkoeW80ZlrHk4KtyY5E3a9euQCPf/oafO7dq6DTqrDH4cJnfvlqyiC4xOyQ4/teLJD2YiDd\nxSAV3bN20hhjFdGwHKmuTXgrhpoIWjjn7bGbqDM101JlWm0455LKEC6VdfNM0SWc8uRh+e3lmqi7\nWqXAv15di6e+cC0+dp0RH7xyORhL64sSkQFyfd+LAdJeDKS7GKSie7bBbH8MwDpTPc55waOVMsb0\nANycczah3I7I8mRXNm0YY5boDFtG5Hu5MxwOQ6GQX6BVHg7j9JVXI3TiBC7Y/gS011wt2qSMkKvu\ncod0FwdpLwbSXQwF0D0/y52MsW/hrXhpDJEYaROvjA8a5BAjInvGJjIIwDSbNoyxxoRrc9S5E4rf\n7xdtQlYwhQJlljsAyCPp+kTkqrvcId3FQdqLgXQXg1R0z8ZNtAJwAKjjnCs45xeluKqQppeYB6rw\n1ub/RDwA5s+iTQ8iqa+6orNxHYhkWhBKb2+vaBOyJnbKc+zppxGWyEmadJmt7k+8cgy/eeUoRv3B\n3Bg0R5Dz+y53SHsxkO5ikIru2c7ltXHOj8xQZ0uWfUsSzrmTc+5MvAdgZIxNmp1jjFkZY92Mse6B\ngYH42nZ/f3881YTL5cK+ffsQDofh8/lgt9vh8/kQDoexb9+++KbFvr6+advX19fPqv1sx59N+9eH\nhqBe1wA+Ooq+H/1IVvbX1NRk3T4YCuOHnQfxvWcO4gPfexEv9p6Q5X8/Ee1LSkpkbb+c2xsMBlnb\nL9f2BoNB1vbLtf3q1avzOn66ZLwnjTG2HQDnnN85Q717OOcPZNR5DojGMrNFT2ImlncC6EwViiOb\nNtHP7Yg4rO2pPgdoT9pMeLf9Gp57N0Nz1VVY0LFdtDlpM1vd9x1z40edh/BavwcfvHI5vnBzfQ6t\nK17k/r7LGdJeDKS7GGS7Jw3AVwA0Mcb+N5o2aipas+g7F3QjEstsIlWYOvvBtG2igWxTebODSL1M\nWjD2798vcvhZU/q+9wIlWgReeQXB48dFm5M2s9V97XID2j+xHr/5zDX4dNPKHFlV/Mj9fZczpL0Y\nSHcxSEX3jJ206DLf/Yg4a27GmIsxdnjCJSzASDREhjPFpn59qpOdabYZROSwxEQaIDjt1bJly0QO\nP2sUFRUovflmAMDok08JtiZ9cqE7Ywy1C+ZBo6Jvyeki9/ddzpD2YiDdxSAV3bM53bkJwLdit4jk\n6KybcBlSty4YrQDui91E9411JdwbGWO2CU7ZlG1SxUaLBr/dnrhPTQTz5091FkI+JKaJkksA2ELp\nzjnHM/tPotvpko02+aQY3ne5QtqLgXQXg1R0z+Yr/BZEnLOtAJoAmFNcG3NlYDZE94g5oqEyLAAa\no3lEYxgRCVRblW4bznl7NOyGlTG2GZFZtlSzawUlthFRzmjf/nYoqqsROnYcgT17RJuTFoXS/ehZ\nL77x5Gv4zC+78eGHd+J33f0YGw8VZGwpUgzvu1wh7cVAuotBKrqrsmhjRGSz/FemqbOXMSYyVhqm\n28wfXcKcNNs3XZvo5zPm/yw0Op1OtAmzhimVKLPcgZEf/gij223Qbtgg2qQZKZTutQt0+Oy7VmHb\nziNwnBnBt/7Yi4e7DuM281JY1l+IhZUlBbFDKhTD+y5XSHsxkO5ikIru2Zzu7EbkxON9M9Sr5JwL\nddSkACVYT4/xN97AmXe8E2zePFTvtUNRVibaJEkxHgxjR+8pPPHKMRw4eR4AUKZV4jefeTsWVswt\nR40gCKIIyNvpzm8BsDLGls9QT+herbmCVPKLzRb1RRdBfcUV4CMjGPvLM6LNmZFC665WKXDTmhr8\nzHol2j+xHo2XVWPV4gqUqAueeU0oxfK+yxHSXgykuxikons2y516RFI/ORljNkTCV0zcWF+H1CEt\niBzjlVmk/unQbWyGZ+9ejNo6UHbHB0SbMy2idGeMYc2FBqy5UPTZHDEU0/suN0h7MZDuYpCK7tks\nd4YBcLw1VTdlByISrEsNWu5Mn7DHgwFTAxAIYNHuXVAtqRFtkqwJhsJ45Y1zWLW4gpZECYIgpEXe\nljuByExaR/R6MsW1L8t+iQzJJL2E1FHo9Sh9VxPAOXxPPinanGmRg+7PvjaAe7ftxW0P/g1feswO\ntzcg2qRZIwfdixXSXgykuxikonu2Tloj53zjNJcZ4hKszymksm6eK8qamwEA3u3SjpkmB92vvngB\nbrx0EZQKhp2Hz6HvpPzP8chB92KFtBcD6S4GqeiezXLnt2YIvxGrdwfnXNrTIQWAcndmBg8GcWrd\nBoTPnMEFv/8dtA1m0SalRE66D40G0O8axaVLK8GYvL87yUn3YoO0FwPpLgbJ5+6cKi9nOg5atF7c\nQZshxycxC/x+v2gTcgpTqVD2gdsBAKPbbYKtmRo56V5ZpsFly/QzOmiHT53HkbMjBbIqO+Ske7FB\n2ouBdBeDVHSfzk28kzH2xGwHiPYhNANBMdPb2yvahJwTSxPl++MfwX0+wdakpth0HxoN4GNtu/Av\nP3wZH/rRy/jZ3xw47pLG6aZEik13OUHai4F0F4NUdJ92uTMaYqMWwGbO+fMZdczYDQDaAHRxzj81\nGyPlTL6XO30+H0pLS/PWvyjO3PwejO9/DYaHf4iyW28Vbc4kik33UJjj4c5D+EPPmxgeC8bLjQvn\n4fpLFuKut69AqSabiD25pdh0lxOkvRhIdzEUQPfZn+7knDcD6AGwgzG2hzF2P2PsA4yx2sQlTMZY\nRbTsA9E6hwF0Atgxlx20QqDVakWbkBfKNkYmX0ef2C7YktQUm+5KBcNn370KT9/7TnznQybc/LYa\nzCtRwXlmBD/7mxN/sJ8QbSKA4tNdTpD2YiDdxSAV3dM6OBBNON6OSIDamRowRILbbqKDA/mfSdu3\nbx/Wrl2bt/5FERp041TDukjMtJ0vQXXhhaJNSqJYdU9kPBjG3mNu9J0cwq3mpags04g2aU7oLlVI\nezGQ7mIogO65i5PGOe/gnFchsrfsuWjnE68hADsANHPOq8hBKwzLli0TbUJeUFYZUPre9wKcw/v4\nNtHmTKJYdU9ErVJgfd18fORa44wOmv2IC4+9dAR9J4cQDucvdMpc0F2qkPZiIN3FIBXdMw7BEW/I\nWCWAqujtICVTTw1lHMge/549OHf7HVAsWIDqPbvANOJncojU3PXjnTh8ahgAYKo14OGPrxdsEUEQ\nhKTJa8YBcM6HOOdHohc5aILo6+sTbULe0KxbB9WqlQifPYuxvz4r2pwkiln3bPja7ZfjNvNSLNaX\nQqPKX2wh0l0cpL0YSHcxSEV38ce1iFmh0+lEm5A3GGPQ3XUXhv7zq/A+9jhK3/8+0SbFKWbds+Hi\n6nJ85ZZL06rLOcffD55FRakaly6phDoDp450FwdpLwbSXQxS0T3r5U4iPWi5c3aEh4ZwytQAPjaG\nRX9/ESrjCtEmEbPktX4PNv1kNwCgVKPEmmV6vG25AWuXG7B6SSVK1ErBFhIEQeSd/C53EtJAKvnF\n8oWishKlt0XipHkff1ywNW9R7Lrnk4ury3HX21egdoEOvkAIux0utD/3Bj7981dxU+vz2Ht0cMq2\npLs4SHsxkO5ikIru5KTJHK9XelHhc43uwx8CEImZxsfGBFsTYS7oni9K1Er8e9NK/OYzb8ef7rke\n32xeA8v6C3FxdTkUCiAQCk/ZlnQXB2kvBtJdDFLRnZY78wwtd84ezjnO3vQejL/+Ogw//AHKbr9d\ntEmEQF7sO4M/9rwJ48JyXLPyAqy50CDaJIIgiEwRu9wZzTpA5BmXyyXahLwTOUDwYQCA99HHBFsT\nYS7oLkVcLhf+3ncGfz94Fr/8uxPWn+7BmSFpzK4WO/TOi4F0F4NUdJ/V6U7GWC0iWQgmUgfAOJu+\nifTo7+/H/PnzRZuRd0pvuxVD//VNBHbvwfihQ1CvXCnUnrmiu9To7+/Hve9bg2tWLcA/3xyCRqnA\nBeXTp285enYEJ9w+XLyoHAsqtGAsrS+wxATonRcD6S4Gqeie1XInY+zHAKwz1eOcz/ljWvle7gyH\nw1Ao5sbWQs9X7oP30ceg+/jHoP/vbwq1ZS7pLiWy0f22B/+GU9HZNn2ZGqsWV2Dl4gpctGgerrzo\nAkmku5ID9M6LgXQXQwF0T+vbYsZOGmPsWwA2R289AFIdxaoCUElOWv6dNJ/Ph9LS0rz1LyXGDxzA\nmcZ3gel0qO7eA0VFhTBb5pLuUiIb3f+87wT+su8kDp06j/O+YNJnly6txE83XZlLE4sWeufFQLqL\noQC6p+WkZbPcaQHgBtDIOd875eiMTX1Ei8gZvb29MJvNos0oCOpLLoHm6qsR2LkTo9ttmPfJTwiz\nZS7pLiWy0f29a5fgvWuXgHOOU0NjODRwHocGhnH03AjW110wbVvOObbtPAZ/MITaC3S4euWCORvH\njd55MZDuYpCK7tnMpA0C+F/O+QMz1LuXc/7t2RhXDNBMWm7xPfMMBj+xCcra5Vj09xfBBC0DzDXd\npUKhde93edH8g5fi9+9dW4Ov3n55wcaXEvTOi4F0F4OcZ9K6ETkYMBNtWfRNZIhWO/2m6WKjpKkJ\nyqVLETp6DP7nnkdJ441C7JhrukuFfOvOOQc/fx6hEycRPHEChoGTaA+fhOvkWYx7hrDijTBcfwAQ\n5uDhMMDDAFNAUVYGVloCv1qLXSd98JdXQrtoIeYtWYSqZTVYcNGFWFRbA42MZ+HonRcD6S4Gqeie\njZO2BcAOxth2zvnz09Q7AkD80YgiZ//+/Vi7dq1oMwoGUyqh+/hHcf6b/4ORn/1MmJM213SXCrnU\nnY+NIfDa6xj/5+sI9h3E+MGDGD90CNwzlFRvPpL/kM0U8GPdFOXH1Vooli5D5UojlBdeCFVtLdSr\nVkJdXw+FQfqx3uidFwPpLgap6J6Nk2ZGZDatizHWBcAJwD6hTh1Sh+YgcsyyZctEm1BwdB/8IIYf\neBD+v72I8cOHob744oLbMBd1lwKz0Z37fPC/sgv+l19GoNuOwP79QCAwqR4rLYVy6VIol9RAWVMD\nRVUVFBUVUFRUgFWUg5WUAEwRWWpXKMCDQXCfD3zMBz7qg+uUC0MnTiFw+iy4ywWVZxDzPOdQ5h8F\njryBsSNvTBpTUb0I6lWrMLa8DjtCVRiqq4e+/iLcsaEWupJZRUrKGfTOi4F0F4NUdM9mT1oYAMdb\n66lTdkCnOynjQL5wb7kPo489Bt1HPwL9//6PaHMIiRIaGIDvL89g7Pnn4d+5Exjzv/UhY1CtWgnN\n2rVQ19dDtWol1CtXQrFoUV5iqYXcboT6+xE6dhzB48cRdDgwfvAgggcPgft8k+p7NaUIrb4MNW9f\nD80Va6FZuxbK6uqkOqP+IPY4XSjVKLGgvAQXlGtRXqKiWHAEIX3yFoIjjMjsmXOaanUAaslJy7+T\n1tfXh/r6+rz1L1XGDx7EmRsawcrKIuE4KisLOv5c1V006egecrkw9uenMfqHPyCwazeQ8DdOveZy\naN/xDmg3rIfGZCr4e5MKHg4jdPw4xvv6MH6gD2d326F4/XVo3Ocm1VUuXQrN+vUR+zesx7aTCvz4\nueSZOa0qEuB3+QU6/Metl80Y7Ddd6J0XA+kuhgLonreDA0Ak/MbRaUenEBwFQafTiTZBCOpVq6B9\n+9vhf+kleLf9GuWfurug489V3UUzle6ccwRe3gnvo4/B98wzQDAaD02rRcmNN6CkqQkl77weygUL\nCmhtejCFAqraWqhqa1F6002IRf8LDQwg8I9/ILB3H8b3/QOBf/wDoTffhO/NN+F76ikAwI0GAy5e\nVo/DS1bhtYUXYV9ZNUbGwzjh9uGE24fjLu+0TtrOw2fx0xccKNOosPwCHT7deDHKtKn/WaB3Xgyk\nuxikons2M2mbOOePpFHvDs75k1lbViTQcmf+GHvuebju+ggU1YtQ/cpOMA1Fjp9rhL1ejG77Nby/\nehRBZ3RyX6mE9h3XoezWW1Hy7ndBUV4u1sgcwUMhjB/oQ2DPHgR274F/zx6Ez5xJqsN0OijNZgTW\nmsFN67D0uvVQTHNK7SfPv4GfvOB46/6TG3DZsqm3E//94Bk8+tIRlKqVqCxTo6JUg8pSNSrK1Fix\nYB7WGatoqZUg0iM/y50pO2GsdqaZtblKvp20/v5+yWxwLDScc5xpbEKw7yD0D34Hujs3Fmzsuay7\nSGK6h1wueH/2c4z84hfx05jKxYtR9qF/he6Dd0K5eLFgS/MP5xyhY8fg370HgT174N+9B6EjR5Lq\nsJISqE0maK+6Etorr4TmirVgCbGfOOd44/QIXCN+qJUMptqpnaz+/n489U8vfv3KsSlteuzTV+Oi\nRVM7xfuPu/HHvSdQqlaidsE83GZeCoWCnLrpoL81YiiA7nld7gRj7AYArQBM0Xsgcsrzfs75b7Pt\nl8gMr9cr2gRhMMZQfvfdcH/hixj5vzaUNVsKFtx2LusuktHjx+F55CcYfXwb+FgkGIZm3TrMu9uK\nksZGMJU0TkIWAsZYfJk09gUldPo0/Lt2I7B7N/y7diF48BACO3cisHMnhgFAo4Fm7dsiDtuVG6Bp\naMDF1eW4GDPPNnq9Xnz2XavQdPlieLwBDPnGcX50HEO+AIZGx6HTqlB7wfRLRE+92o9n9g/E7xtW\nVOHCadps33UMj718FKUaJXRaFcpLVJhXosa8EhWMC+dh44YLZ5y5GxsPQatSyHaGj/7WiEEqus82\nwXqqt54DaOOcf3qWts0KxpgVb+UVNXLOt862TTZ90nJnfuGBAE5ddQ3Cp06h6hc/R2lTo2iTiDwQ\nHhrC8I//D96f/DR+ElJ7440o/8ynoV2/XrB10iXkckVm2V7ZjcCuXRjv7U06SAGlMnKY4sroTNu6\nhrwephgaDeClQ2cx7BtHZZkGN61ZPK3z9IO/HsS2nUen/Py3X7wOi/VTR4X//jN9+PUrx8AYsGLB\nPPx00waUaqZ25I+eHcFLB89CrVKgRK1EiTr2U4kLL9BNOxZBZEjeTnduQiSbQAeAJxA55elBJC6a\nEcAHAdwBYBPn/KcZdZ4jos4UOOft0XsTgBbOeUu2bbLpE8i/k+ZyuTB//tyOGTz8f204/83/hubK\nDVjwZEdBxiTdCwMfG8PIz3+B4R/+ML6sWXLzTaj40pegXn2JYOvkR3hoCP49ryKwaxf8u3djfP9r\nQCj0VgXGoL70Umiu3ADtlRug2XAllFWRQLui3vlzw34Mj41jZCyIkfjPIAzzNLj+kkXTtn30pSP4\n6QsOjI2HcEG5Ftv+/RpUlKqnrP/lx3vw8qGzKT9TKhj+dM/1MOim3vv65J7jePLVfqiVCtQtmof/\n79bLoJxmObff5cWuN85BrVRArVJAo1JAq1JCo1Lgwvk61BhK6W+NIAqge96ctFcBtE93eCDq0Gzi\nnE8VfDuvMMbsnHPzhDIH53zKdFYztcmmTyD/Ttq+ffskERVZJOHhYZxatwF8eBgL/vgHaExX5H1M\n0j3/+J7txNA3voHQseMAAM1VV+G05QO47IMfFGxZ8RAeGUGguzuyRLprNwL79gHj40l1VPWroN2w\nAQOLq7HyzjuhXLhQkLXZEwpH/p2bzmECgMOnzuPZ107BFwjBPx7CWPwKo7qyBF+55dJp+/j6k/vx\n1+hyrkrJ8Od7rkdl2dRO3Rce7cauN1wpP1MqGJ6+93ocOdQ75d+a9ucOY/vu4xGncOE8fO8uM1TK\nqbd8vHL4LJ7ZPwClgkUcQyWDSqmASsFQt6gcN7+tZsq2AHDeN45/vumBUqHAhfPLUJ3GzKJ3LAiF\nAlAqFFAqGBQMslh6LsDf+Lw5aaF04p+lWy/XMMb0ANycczah3A5gC+e8K9M2iGRYyKjPGPl20sLh\nMBSCkoxLiaH/vR8jP3oYJe95D+Y/kv+0saR7/ggeOQLP1/8f/Dt2AIg4CZVf/U9o3/EOcM5J9zwS\n9vkw3rMX/l27Io5bjz05ADAAldEI9RVXQPO2NVCvWQP1ZZdCQQnAAQDhMMcxlxf+8RCq5mmxsKJk\n2oC0CW0AACAASURBVPqv93vw19cGEAiGo1cI/ujvSwxluPe9lwCY+p3/9p968eSr/QAAfZkaT37+\numkzVHz+V93Y7UjtFALAs1+5YdqZxi88aseuNyLx+9RKhqfvfSfmlaiAsTHwxMsX+fnojgPoPnAS\nmmAA6lAQqnAQSh6GmoexSKfCv6xfCiUPA+Pj4KFQ8s9gCM6BITjPjoABqCxTw1xbhUn+XYIPc+b8\nGPpdowBj4EolmFIBrlACSiUM5aW4eIkeUCrBlJGyxN+ZUolBXxBOlw9MpcJ8fRnqb393PsP25M1J\n6wbwP9MdDmCMfQDAf3DOGzLqPAdElyF3cM4NE8o7AXSm2kc2UxsAXZn2GSPfTprP50Mp/YFE6NQp\nnLryaiAYxMIXnoP6oovyOh7pnnt4IIDhh36I4R/+CAgEwMrLUXHPl6H76EfA1JF/OEj3wsL9/kis\ntl27MfryToR6esBHR5MrKZVQrVwJzdq3QbNmDdRvWwP1ypVJp0iJ7JnpnfeOBeEPhqDTqqBVTz8v\n4hrxo9vpwniIIzTqA4Y8wNAQMDKMalUIl1epwIdHEB4ZAR8ZQXh4GHxkBHzEi/DIMDxnBjHiGoLG\nP4qSwBi0oXHA7592TDmje3wb9Ndfm6/u83a6sx1AB2OsFcB2AE7O+XnGWAUie9LuBLAZkRkoEVTh\nrc39iXgwdcL3mdpk02dB6O3thdlsnrlikaOsrkbZxo0YffxxDH//IVQ99P28jke655bAvn1wf/ke\nBPsOAgDKNjaj4j/um/QtlnQvLEyrhXb9emjXr8eha66Gac0ajPf2Yvwf+yPO2z/2I3joEIIHDiB4\n4ABGf/2bSMNYgN76eqjrV0XSbtXXQ1W7PDJzQaTNdO885xyl4QC0Q26E3R74PR6EZ7jWuN0IezyT\nZkgBwD2DLaXRaxJaLVhJCVhJ7GfCVVoa+anVAio1oFJFZq7UajCVCkytAlSqyHuhVif9DDMFzo4E\nEOZhVJRoIrOEqZZKo0XnR8dx6MxZhEMh8FB0Vi4UBA+FUK5hqC7XRHLtJpSXMS1KFVrwYAiu86MY\ncI0AoRAUAR/WLxUfyidjJ41z3s4YawLwFUQdsQnrywxAF+f8gZxYKEOie/KsAFBTUxOPt9Lf3w+v\n14v6+nq4XC709/djzZo18Pv96O3txerVq6HVarF//34sW7YM8+fPR19fH3Q63ZTt6+vr4fP5sm4/\n2/Gl1H7Vpk8ATzyB0d/9DqGPfxQLTKa8jV9TU4N9+/ZJ6vnl2P7yi1fC8+1vw/fTn4GFw1DW1sJ1\ntxUl73kPlCnal5RElo+kYv9cam8wGHDQ4UD9296G4aVL0b/mcqz59hqMeTx44+m/YNnwMHhvL4Zf\n7Ybq5EkEnU4EnU6MPf10/G8j12igXlGLcE0NRgwGVK9bB76kBo5AAKuuuw4lpaWSff58t79k1Spo\n/H4ceOUVVJeWYl4ojBO9vbjA68XQs50Y7u9H0OWCLhjE+NlzCA4OQun1AoFAVv9OcZUKyqoqsIoK\n+FQq6BYuACufhzfHPFBXVUCpr4Br3A9UlEKzwAB30A+vGphXswhDCOJswAt9zUJcUL4E84cXpvX8\nOwdeRm/wn/D5ffCNjaCkTIvxUBCjPi/UWg04whgd84EpGcA4/OMBLC6tRusND2DgxADcM+i/7fWH\n8OKJlzPSQcVU+HLNZpguM8Go1WIkan9ZWRkcx45Bl6d/v9M9lJB1MNuoI9IKIPG8tgeRPVozZiTI\nF4yxRgC2DJc7p20DoCfTPmPQnrTC4r7nXoz++jcoa7bA8L3v5m0c0n32BHr2wv35L0QyBSgUmGfd\nhPJ7vjzt/ibSXRyZaM/HxhB0OCP5SA8exPiBPgQPHkToxImpG2k0UC6uhnLx4shVnfD7okVQVBmg\nMBjAKioKFg8xUzjnkT1ZQ0MIDw8jNORBwD2IwNAggh4PQkNuhAbd4B43+KAb8JyH+vwomOc8+NBQ\ncniUNBnXKuHTqeHTqTGqU8FbpsKoToGRUgVGyhTQVF2A5vWboK1aAIVeD6bXQ2HQR2a4JsxK/dcr\nX0f36cz/vdr2nicwTzNvxnpf3/lV7D3Tk1HfBq0BbU0/QYlq+v19AGA7tB1/OfJnKKCAgiVeygn3\nb13LK5bj7jWfnqRFAf7WFCbjAGOsEpFlTifnfGhWneWAuXZwgE4ZJhM8dgynr30HAGDRiy9AVVub\nl3FI9+zhoVBk79mD3wVCIahWroThOw+kdSqXdBdHLrQPDw8jeOwYQkeOInjkCIJHj0auI0cnpbia\nEqUSCr0eiqqqiOOm14OVlUWu0lIodLqkeyiVkSDHSgWYQgmoYhvFVQiGxuEPjCIQGEMg4MP4+BiC\n42MIBgMIjfsR8o1iXliNaoUB3OeLXKOj4L4xhGP3I8MInz8Pfj7ilLFQ9mmrmb4SCn3EGVVUVUFh\nMMAVHEf1qlVQGAywnfkrXg8dx4hOCa9OhdEyJcY10zsS1WXVeOiGH0GbhpPzQv/z6DrWCaVCCbVC\nBSVTQaVQQaVQR+4VSqiYGiqFKnqvwvLy5bh6yTVpPZ933ItD7kNQMAWUTAklU0CpUELJVJF7RaRc\nwZRQMiVUCiXmqcuhVk59mCFfyPZ0Z9qjM3YD5/y5vHQ+89gOAGbOuSexbIYQHNO2yaZPgOKkicD9\nxS9hdLsNZf/yQRge+HZexiDdsyP45ptwf/ZzCOx5FQAwr8WKii2bI/tV0oB0F0e+tQ+PjiI0cArh\ngQGEYtepU5Gfp08j7PYg7HaDDw/nzYZcEFAz+EqVGC1VYqxUibEyFfxlGozrNAjotPCXl2C8ohTj\nFWUIVupgqF6B5g1WqPSGlBkzEnV3jw3in65/QsVUUCvV0Cg0UCvVUCs00CjVUCsil0oRcaRUTAm1\nUgMFk+bMo5SRbZy0tEdnzMU5F/LXNLoUW8c5j+2ZmxiY1ojIUu2mmNOVRptpP58KyjhQeIJHjuD0\nddcDCgUW/f1vUF14oWiTCACjv/89PF/5D/Dz56FYtBCG730XJdddJ9osQkI4PQ48e+xZeMdH4B33\nwjvuxWjQG//dF/RBGQxD5w1hnjcEnTcInTeMz6z6JHRBJcJe71uzXaOjkd+DISAcAoJBHHYdxDnv\naShCHMowwBkDi860MZUKTKmK/65QqgCNBmUVVVi5+G2RGbrS2Eb40shMXUkJFOXzoKioBKsoB5s3\nD4N8BBqFGlqllhwkYjpmd7ozGkbjTkSW844mlN+fRr9GRDIQCCF6uMEa3WumRySFU6IzZQTQiMip\nTU86bdLoUwh9fX2or68XbYakUK1YgdLbb4fvyScx/OB387I3jXRPH+7zwfPVr8VP/pW8qwn67zwA\nZVVVxn2R7uJI1D4UDmFkfATDgfMYDgxHr/MYnlQ2DJ1ahy+Zv5zWctuThzvw9xMvTvk5A0NJSTm0\n5WVQq3VQqcqwsHzZ/9/encdHVd77A/88k50JIQtBBKISsFpFQdC61T1o21tvq0Lt7XJv3RJrbV1L\nxGpdWpdgrVprW9Cq1eqtQttb7a9XBb11q0VJDFFixBrRoCxhkpA4mQxJ5vn9MWfCECbJzGTOfJ8z\n5/N+vfLCzJxz5snHIfPlPBvK5n4LWZ6xZ41+TmvsCOxAXnYeCrIKbOlGm4yxf85E8D0vw5TcR5vd\n+QDCkwJaASyNerwW4f05R6oCI8/Zc4suTpHtm0Z4bg2AkhiPj3hOPM9L8HpH39DYrYquugKBp55C\n76o/ovDiGuSk+C8bc4/PwKZN6Ki+GP0bNgD5eSi+4QZM+Pa3kl5xnLnL8Xq9eP6jNXjwrQfQ0x9/\nl6NHedAR7MS+2WMvZ/CdQ8/DnMmHIT87H95sL7w5XkzICf/pzfGiILtgXHemlFIon2Db4qS24Hte\nhim5j9jdqZRahPAyEtXD7qSFEJ7tOOJgeQCzAJwtseOAadjdKafruuvhf+hh5C+sQtnDD0k3x3UC\nzzyDziuugu7uRtYB+6N0+XLkzjlUulmuobVGT38POvs60NHXgY6AD76+DnQFO7EzuBNdwS7sDO5E\nticb1x/zY5QVTB7zmn9o+W883vJ7eOCBN7cQRbkTUZgzERNzo7+KMDGnMPxn7kRML5yO8gnO20qK\nyGa27TgQQrirb9MYx3VorRPvz8gwdhdpkTXYaG+D7e3YdtznoXt7Mfl//oS8o1K3lSxzH5keGED3\n7XX49Ne/ARDeEL3k53fCU1Q07msz99G917kRD739ILYHtqOzrwP9of4xz8n15OJnJ92FAyYdMOpx\nkewDAwHkZeVxrFWa8D0vIw2527rjQKzV94dbnMS1KUF+v1+6CcbKKi9HYfVF6Ln7HnTfehsm/+mP\nKdvYl7nHNtjejo6Lv4td/1wLZGWh6NqlKKypZu4JGAgNoKOvA+2929EeaMeuwV04ccZJca0Ttb69\nEW/73hr63pvtRWlBKUrzS1GSV4rSglKU5JWgOK8Ek/ImYVJeMcoLyuNa4yqSfUE2t3tKJze8501k\nSu4pm91pbQsFrXV3Si6YIdjdKSvU04Ntx30eoY4OlD78EAoWVkk3KWPtevttdHznfAxu2QLPPlNQ\n+utfIe/oo6WbZZyB0AC2927Htt6t2OoPf+0ItKM9sB3tve3o7OtECHuutXX5/Ctx6n6njXntwdAg\nNnVvQkF2AUrzS+Mq7IhIhD130pRSV4+w5dO5AOqUUhrArVrrOxO9NiWO60aNzjNxIib+4PvYeeNN\n6L7lVuSffNLQZt3jwdz3FHj6r+i8/Arovj7kLliA0gdWIGtK6schOT33jZ3v4vpXf4TAQGDEYxQU\nyvLLUD6hHOUFUzC9cDo+NzW+YjfLk4VZxaMu3Zg0p2fvVMxdhim5J9PdWQdgryLN2grqfmsNsueU\nUmVa62vH20AaXVtbmxFvJJN5//Pb+PTh32Hgvffg/90jKLzwgnFfk7mH6VAIPXf+HD13hze0n/C1\nxSi+/ba4F6dNlEm5BweD+OTTT9DR58NnSw/BhJwJY54T0hrZKhuTC8qxr3cq9pkwFVO9U1E+YQrK\nC6agvKAcZQVlyPYk86vZXiZl7ybMXYYpuSc1cUBrPeqIUaXUDwFcI7WYrUm4d6cZAqvXoOM750EV\nFWGfV15C1jj/8jF3IOT3o/MHl6HvmWcBjweTrr8O3osuTNn4s5ivmebctdbw9fmwuacNH3/6MT7+\ndHP4z57NaA+0Q1srDX1l1ldxwWEXpa1dEviel8HcZZiyd+eo/1yzxplVDruoVkrNHeEFSq3jq+Ns\nJI1TMBhEwSgbUlNYftVpyDv5JAT//iK66+5AybLbx3U9t+c+8NFH8J1/AQbeaYEqKkLpr+9D/skn\n2/66dueutcarn7yCxu1v4qOeD/FR90foHeiNeWyWysJU71TMKKzASRUn29YmU7j9PS+FucswJfex\n7qkvRLh7sxK7F6dVCK+TNhoFYPn4mkbxaG5uxoIFC6SbYTylFCbdeAO2V52O3scfh/c/v4XcOXOS\nvp6bcw/+4zV0VNcg1NmJ7FmzUPrQg8iZVTn2iSlgd+7du7qx7I09C/ii3CLMmFiBGYUzML1wOqYX\nzsC0wumY6p1qZLekXdz8npfE3GWYknvc3Z3W3pW/QbhY+2CEw7oQ3qHgDa21PTtbO4zd3Z2BQMCI\nat8pum64Ef4HfoucI+ah/C//A5WV3HrLbs3d/8ij6Lr+x8DAAPJOORml9/0SnkmT0vb6iebeHdyJ\nD7o/QHlBOaYVTo/rnOc/WoPe/l7sV7Q/9i/aH8V5YjvcGcWt73lpzF1GGnJP/WK21r6Vz3Ingfhx\nTJpZQj092HbyqQht3YpJP7kZheefl9x1XJa77u/Hzh/fAP8jjwIACi+uQdG1S5MucpM1Wu6+wA68\n1/keWne+b321YkdgBwCgNL8MD3/hkXQ2NeO47T1vCuYuwxFj0obTWq9RSt2fXHvIDk1NTZg3b550\nMxzDM3Eiim/9KTrOvxDdt9ch/4wzkD19WsLXcVPugx0d6Ki+GLteew3IzUXJsjpMWLxIpC2R3Hv7\ne/GvrvfwXudGvNv5Lt7r3Ahfn2+v4/Oz8jFzUiVOrjhFoLWZxU3veZMwdxmm5J7wgAqt9cXxHKeU\nOlVr/ULiTaJEcLuQxBWccQbyv/RF9P3tf7HzRz9C6UMPJjwj0S2597e0wHfeBRj86CN4pkxB2QP3\nI3fBfLH2VFRU4C//+jMeevvBvRZ89WZ7MbvkQMwqnoVZk2ajsngW9vXuy+2LUsQt73nTMHcZpuRu\n56jXlQBcvwSH3UxYx8WJim++CdtefgV9q9cg8NRTmPCVryR0vhtyDzz7LDq/fxm034+cuYej7LcP\nIGvffUXbVFZWhk+3f4osTxYqiyrxmZKDhr6mFU5jQWYjN7znTcTcZZiS+4hj0pRSZyO8i0Bt9Gbq\nSqnb4rhuJYBFHLtm/5i0lpYWHHzwwbZdP5P5f/8YumqvgZo0Cfs8vzqhAiSTc9dao+eeX6DnjvCa\n1QVf/QpKfnYHlE2DaHt29WCrfwtmTqocc7ZkJHetta3rsdHeMvk9bzLmLiMNuY97TNoDACYhPFtz\nadTjtQjP8BzpBSLPpWZTUBqV1+uVboJjTfjmNxB49jkEX3gBnVdehbLHfg8V50DRTM091NuLriuu\nQuCvfwWUQtHSa1B4yXdTWhD19vdig+9trG9vRFN7EzZ1hyeLVx9+Mb5ceeao50ZyZ4GWfpn6njcd\nc5dhSu6j3UlbhPCitNXD7qSFEF4nbc0o150F4GzeSeMG66Yb3L4d20+tQqizc1yzPTPBwObN6Dj/\nQvRv2ABVWIiSX96bkg3pdw3uQkvHO2hqX4/17evxXtdGhPTu8WQ5nhwcVHIwLp57CfYr2m/cr0dE\n5ACpX4IDGCrSKqMLtxGO69BalyZ08Qxkd5HW1tZmzABHpwr87X/RcVE1kJ+HKU8/jZxDPjvmOZmW\ne3DtWnRcVIOQz4esAw5A2cMPIufAA5O+3jb/Nrzy8UtobH8T7/jewa7QrqHnPMqDz5QchLnlc3H4\n5Lk4qPRg5GblxnXdTMvdSZi9DOYuIw25p34JDssKAB1xHLc4iWtTgvx+v3QTHK/gS1/EhK+fi94/\nPAHfRdWY8re/jrlAaybl7v/9Y+j60XXhBWpPOhGlv7oPnuLkF3DVWuPKv1+Gnv6eocdmFs3E4eVz\ncXj5XBxaNieuzchjtjWDcncaZi+DucswJfeE76SNejGlDhjrDpvbsLvTGUKBAHb8+1fR39yM/DNO\nR+lvH8j4cU+6rw9dN9yE3t//HgBQWH0Rin50LVT2+CZ9a63x3y2Pw9e3A/PKj8Dh5XMxKS99uxIQ\nETmAbd2d0bM7fVrrnymlLkJ4y6iI5VrrSxK6cIayu0jz+XzGTBV2uoFNm7D9i/8G3d2NomuXYuL3\nRn4LOz33gbY2dNRcjP71TUBeHopvuxXec78m3awxOT13J2P2Mpi7jDTkHleRlsyiQrMQnuG5GECr\nUmomdm+mfg2AowB8Til1axLXpgS1tbVJNyFjZB9wAEruuQsA0H3b7Qg8++yIxzo5977/+z9s/8KX\n0L++CVkVFSj/y59HLNCCg0G8vmUt7mm4G0teugqbezanubV7cnLuTsfsZTB3GabknsydtB8CWKi1\nPj3q+zoAnVrrMuuxSoT3+Ex+5HGG4N6dztN9193o+dmdUPn5mLzqSeQeccRexzgxdz04iJ6770HP\nXXcDWiPvtNNQes9d8JSU7HFcb38vXt+6Fq998g80bK9HcDAIAFBQ+Mnxt+Dw8rkSzQfgzNwzBbOX\nwdxlOHLvTks1gIVR3y9EeE20FZEHtNatVqFGNgsGgyiwaZFRt5p4+WUYbGtD7xNPwvdf56H86b8g\ne//99zjGabkPbt2KzsuvRPDll8Prny35IQq/f+nQunDBgT68se0NvLz5JdRvW7fHbMwDiz+Do/c9\nBsdOOxYVE2WXyHBa7pmE2ctg7jJMyT2ZIm348htVCBdpqyMPKKWOAPDm+JpG8WhubsaCBQukm5FR\nlFIorrsdg1u2IPjSy9jxjW+ifOVKZE3bvSOBk3IPPPccuq68GqHOTnhKS1Fy373IP/FE9A/2o37L\nWry8+SW8sfV19A32AQjfMTuk7FB8fvoJOHrqMSifUC78E+zmpNwzDbOXwdxlmJJ7Mt2d/wJwjtZ6\nvVLqHIT36NTRC9cqpZ4FsFJr/UBKW+tAdnd3BgIBI6r9TBTq6cGOxeei/623kDVzJspXPYmsqVMB\nOCP3UCCA7pt/Av8jjwIA8k48ASV334WsffYBAPzolaV4a0fT0PGfKTkIJ0w/AcdPPwGTCyaLtHks\nTsg9UzF7GcxdRhpyt6278xoALyilnkR4b08AWAYASqlTER6fNh/AkiSuTQnKy8uTbkLG8kyciMn/\n/Rh2nPsf6N+wATsWn4uyPzyO7OnTjc89uK4eXVddjYF//QvIyQlv73TRhXtsezVj4gwEB4M4dt9j\ncfz0EzDVO1WwxfExPfdMxuxlMHcZpuSe1DppSqkqAIsAlAJYrbW+Xyl1GsJ31SJ0ZCKBm9l9J62x\nsRHz5s2z7foEDHZ0wnfu19Hf3AzP1H0w+dFHsWFX0MjcQ7296L59GfwPPghojezZs1Fy373InTNH\numkpwfe7HGYvg7nLSEPuti3BAa31Gq31xVrrr2mt77cee15rXRr15foCLR24XYj9skpLwrM8jz0G\noa3b0H72OZj24UfSzdpL34svYvtpC+H/7W8BjweFl34PU57934wp0AC+3yUxexnMXYYpuadkxwHu\nNDAy7jiQOXQwiM7LLkfg6b8CSmHiFZdj4uWXQWVljX2yjQY2bYLvxhswsPoFAEDv7OnY/5f3I/ew\nw0TbRUREI7LvThoQHn+mlHpDKTUI4H2l1KBS6nWl1FnJXpMS19LSIt0E11B5eSj51X2Y+MOroQH0\n/Pwu+P7jmxgQWvRwsKMDrdddhU9OOhkDq19AX54Hf/7KVDxzx+KMLdD4fpfD7GUwdxmm5J7UJn1K\nqV8jvF7a8ErwSACrlFLcFipNvF6vdBNcRXk8KLr8MuycMQNZN92M4KuvYvupVShaeg28//ntce97\nGY8+33a0/OzHmPTkM8jrGwQA/PPoEmw8/zSceMQ5OHrfY2xvgxS+3+UwexnMXYYpuSezBMdFCG8D\ntQrAEwBaAXQBKAZQCeDrAM4BcJHW+rcpba0Dsbszcw3u2IGd110f7v4EkD17NoqW1iL/jDNs2Zy9\nvbkB7993O8qfeR35VnH27qEl6KpZhGPOuBDTCqel/DWJiMgWtm2w/gaAFZEJAyMcU41wkXZUQhfP\nQHYXaW1tbcYMcHST6NwDzzyDnTf/BIPWZILsgw9C4XnnoeDss+CZMGFcrxPauRMf/vlRdKx8HFMb\nd3erbpozBeoH1TjqC+cjJytnXK/hJHy/y2H2Mpi7jDTkbts6afNHK9AAQGu9wuoSJZv5/X7pJrhS\ndO4FX/gC8k89Ff7HHkfPL+7FQMu76Kq9Bjtvuhl5p5yCgjNOR+7njkLWjBlj3mHT/f3o37ABwdf+\nieCrryL4yqvI7e/HVAC7chQ+POlgTK2+FMcdd6Ytd+tMx/e7HGYvg7nLMCX3ZO6krQNwi9b6z6Mc\nczaAa7XWR46zfY7H7k530bt2IfD//h/8D/0Ou+rr93jOM3kysitnImvaNHhKS4fGr4V27kSoowMD\nmz7EwKZNQH//7pOUwrY509FxyhE4/NtXYMq0A9P40xARkU1su5O2AuHJAXUAngTQqrXuVkoVITwm\n7VyEdxuoTeLaRrI2i6/UWq+RbstwPp8PZWVcki7dRspd5eZiwllnYcJZZ2Fg82b0PfMs+l58Cf1v\nvonQjh3YtWPHmNfOmjkTecceg7xjj0Xe54/H9ClT7PgRHInvdznMXgZzl2FK7gkXaVZX5kKEt4eq\nBTC820UBWKO1/llKWpgEa0xch/VtpdZ62TjPmQ/gfqVUMcKTJNYBqNVaN6Sw2Ulpa2sz4o3kNvHk\nnj1jBgovvACFF14ArTUG29ow2LYZAx9/DN3dDT3QD2jAM2kSPMXFyNqvAtmzZsHDffpGxPe7HGYv\ng7nLMCX3pBeztYqaOgCToh7uQrh4GXXMmp2sdkFrvcL6fj6AGq11TbLnKKUWaa1XKaWKtdZdibTH\n7u7OUCgEjyfp5e4oSePNXWsNDQ2P4v+7RPD9LofZy2DuMtKQe2oXs1VKFVldmgDCBY3WugRACYAF\nAEqs7aDECjRLTaTYAgDrbldVKs5JtEBLh2AwKN0EV0o2d3+/H39oeRzf/NvXcfvrt6a4VZmP73c5\nzF4Gc5dhSu5jFmlKqV9buwp0Aui0dhb4VeR5rfVOrfWbWuuddjY0HlZ35PwYT3VZm8Kn5ByTNDc3\nSzfBlRLNvbe/F0+8+wdc+Nx5eLzlMXza/ymK80psal3m4vtdDrOXwdxlmJL7qEWatSZaZGeB6K8a\npdRG+5uXsEqEu1yH60DsQizuc5RSVVFfS6ziLialVLVSap1Sat2WLVvQZm0b1NbWNrTVhM/nQ2Nj\nI0KhEAKBAOrr6xEIBBAKhdDY2AifzwcgvDXFaOcffPDB4zp/vK/v1vOnTZsW1/lvN7+NR9Y9jOrV\nF+Cxdx6Fv9+POWWHofawpTgOxzv255c6Pz8/39Htd/L5JSUljm6/U88vKSlxdPudev4hhxxi6+vH\na8QxaVE7CwDAGoR3FgDCRU0VAA2gTmt9bdyvZjPrztdyrfWsYY+vRHgW6l4zTuM5x5rdCa11q/Vc\npXXOwrHaxDFpmWms3EM6hJc3v4Tfv/MItvVuAwB8tvQQfPOz38Lh5XPT1cyMw/e7HGYvg7nLcMKY\ntMUId3HO0lqfrrW+2Po6HUApgEYAIw7GzyRa69ZIgRb5HkClNcFAVFNTk3QTXGm03N/c3oAr/n4Z\n7qy/A9t6t6Fi4n647ugf4/YTlrFAGye+3+UwexnMXYYpuY+2BMeRAC7UWn8w/AmtdZd1p+0NjIfK\n0QAAHY9JREFUuxpmzbhcHOfhi6MG9ZfGeL4YwGj3F5M5pwvhjESX4eB2ITJi5b7VvxX3Nd6L9e2N\nAIDJBZPxjYO/hVP2OxVZKivdTcxIfL/LYfYymLsMU3IfrUgrxigFiNa6QYUVaa27U90wa7blijEP\n3NM6hNs9XClG/llGPcfq2nxfaz381mQHdq+rJsaEdVzcKFbuqzY+ifXtjfDmeLHoM1/DlyvPRF5W\nnkDrMhff73KYvQzmLsOU3MfqcI2nCNnrLpRSapI1IzStrLtprTEG9RePtFtAHOd0IHa3rvhdNABD\nAxEpvWLlfvaBi1B9+MVYsfC3OOfARSzQbMD3uxxmL4O5yzAl97GKtORWug0XblK7P9cBWBr5xho3\ntibq+0ql1MphRdmI58RaG83qin0yepyaFK/XK90EV4qV+7TCafhy5ZmYmDtRoEXuwPe7HGYvg7nL\nMCX30WZ3hhDem3MdYi9RAYS7I5fEeP50AOdorUUG4lhFVCvC3Zh7bPFkzeZcCWBBdJE12jnW85Gf\nsxgA4tlqCuAG60RERLSXuG5kjVWkJXsnDQAgVaSZxO4ira2tzZgBjm7C3GUwdznMXgZzl5GG3OMq\n0sbaYH08XZbjKvAoPn6/X7oJGa+t5yPkeHIw1bvv0GPMXQZzl8PsZTB3GabkPtadtEVa6z8lfFGl\nFgF4gnfS2N3pZD27evC7DQ/huQ+fxeSCcjx4xsPSTSIiosyQkg3WY86IjEN9vA2g8UlkewmK3z8+\nfhWXPH8xnvvwWWSrbHx19ll7PM/cZTB3OcxeBnOXYUruo3V31iS7/pnW+gOllCt2I5DW1tZmzHou\nmaAr2IXfrP8V/vHJqwCAQ8vm4JJ530PFxP32OI65y2Ducpi9DOYuw5TcR+zupNTg3p3OoLXGyx+/\nhOVNv0HPrm7kZ+XjO4eehy/M/BI8au98mbsM5i6H2ctg7jJM2btzrIkDZLhgMIiCggLpZjhaZ18H\nfr3+V/jnltcAAHPL5+HSeT/APt59RjyHuctg7nKYvQzmLsOU3FmeO1xzc7N0ExztlY9fxvee/y7+\nueU1FGQX4Hvzvo+bj/vpqAUawNylMHc5zF4Gc5dhSu7s7rSZ3d2dgUDAiGrfiR54awWeev8vAIAj\npszHpfO+j/IJU+I6l7nLYO5ymL0M5i4jDbmzu9MN8vK4P2QytNZ4efNLyPXk4vw5F+CLM/8NSsU/\nIZm5y2Ducpi9DOYuw5Tc2d3pcE1NTdJNcCSlFO465Rd44IyH8KXKLydUoAHMXQpzl8PsZTB3Gabk\nzjtpDsftQpJXml+a9LnMXQZzl8PsZTB3GabkzjFpNuOOA0RERDRMSnYcIMO1tLRIN8GVmLsM5i6H\n2ctg7jJMyZ1FmsN5vV7pJrgSc5fB3OUwexnMXYYpubO702bs7ky/dVvfQHNHM8496OvIyzJjhg4R\nEVEUdne6QVtbm3QTjDEYGsRDbz+Im/95I1ZtfBJb/Vtsey3mLoO5y2H2Mpi7DFNy5+xOh/P7/dJN\nMEL3rm7c8UYd1rc3wqM8OO/Q87F/0QG2vR5zl8Hc5TB7Gcxdhim5s7vTZuzutN8HO1tx69qfYlvv\nNkzKnYTazy3FnMmHSTeLiIhoJOzudAOfzyfdBFEvb34JS166Gtt6t2F28YH4+cn3pKVAc3vuUpi7\nHGYvg7nLMCV3FmkOZ0q/eboN6kE8vOFB3LGuDsHBIE6tOA23nVCH8gnlaXl9t+YujbnLYfYymLsM\nU3Jnd6fN7O7uDIVC8HjcVWsHBgK4c90deH3rWniUBxfMuQhfrjwz4a2dxsONuZuAucth9jKYu4w0\n5M7uTjcIBoPSTUirHYEduOblJXh961oU5hTi5uN+ijNn/XtaCzTAfbmbgrnLYfYymLsMU3JnkeZw\nzc3N0k1IG601bvjH9fhgZyv29U7DHSf9HIeXzxVpi5tyNwlzl8PsZTB3GabkziU4HO6QQw6RbkLa\nKKUwc9JMTC+cjkuP+AGKcovE2uKm3E3C3OUwexnMXYYpuXNMms04Ji0zMXcZzF0Os5fB3GVwTBql\nRFNTk3QTXIm5y2Ducpi9DOYuw5TcWaQ5XEVFhXQTXIm5y2Ducpi9DOYuw5Tc2d1pM+44QERERMOw\nu9MNWlpapJvgSsxdBnOXw+xlMHcZpuTOIs3hvF6vdBNSZjA0iIHQgHQz4pJJuTsJc5fD7GUwdxmm\n5M7uTpuxuzM+n3z6MW587QYUZOXj7lPuTfvitERERGnE7k43MGV/sfH4qPtDLH25Flv9W1BaUOaI\nAi0Tcnci5i6H2ctg7jJMyZ1FmsP5/X7pJozL+13/wtJXrkFnsBNzy+ei9qil0k2Ki9NzdyrmLofZ\ny2DuMkzJnd2dNmN358haOt7BTf+4Af4BP47c5yhc87lrkZuVK90sIiIiu7G70w18Pp90E5LyVnsT\nfvzqdfAP+HHctOOx9OgfOapAc2ruTsfc5TB7Gcxdhim5Z2SRppSqVkotsr6WJHDefKXUylRe026m\n9JsnYn37etz02g3oG+zDKRWn4odH1iLHkyPdrIQ4MfdMwNzlMHsZzF2GKblnXHenUqoaALTWK6zv\n5wOo0VrXjHLOfADnWt9Waa0XjPeaEdy7c09v73gbN732YwQHgzh9/zNwybxL4VHOaX+E03LPFMxd\nDrOXwdxlcO9O+9REiikA0Fo3AKga7QStdYPWuhbAE6m6ZroEg0HpJsSt2deMm1+7AcHBIE7bb6Fj\nCzTAWblnEuYuh9nLYO4yTMndmZ+QI1BKFQOYH+OpLqVUUkVVMte0ukbXKaXWbdmyZei2aVtb29Aq\nxj6fD42NjQiFQggEAqivr0cgEEAoFEJjY+NQf3hLS8uo52/YsGFc54/39eM9/8PuTbjx1euHuji/\nsd830bS+KW2vn+rzm5qaRF/frec3NDQ4uv1OPr+xsdHR7Xfq+Y2NjY5uv1PPb25utvX145VR3Z1W\nN+TzWuuSYY+vBrBaa70sjvPvj+7uHO817e7uDAQCKCgosO36qfL0+0/h/reW48QZJ+GKBVchS2VJ\nN2lcnJJ7pmHucpi9DOYuIw25x9XdmW1nCwSUAuiI8XgXgDKDrpkyeXl50k2IyxdnfgmfLfssKifN\ncmwXZzSn5J5pmLscZi+DucswJXfnf1q6XFNTk3QT4pLtycbs4gMzokADnJN7pmHucpi9DOYuw5Tc\njb2TZs2oXBzn4Yu11l3Wf5fGeL4YwHgWPbHjmilRUVEh3QRXYu4ymLscZi+DucswJXdjizRrNuWK\nMQ/c0zqEi6fhSgE0JNkUO66ZMmVl4j2ursTcZTB3OcxeBnOXYUrumdH3ZLHuprVaMzKjFWut15hy\nzVSKzBah9GLuMpi7HGYvg7nLMCX3jCrSLHUAhnbptmZnron6vlIptTJG0QXE7tYc85qSvF6vdBNc\nibnLYO5ymL0M5i7DlNwzagmOCGs8WyvC3ZSV0ctkWGubrQSwQGvdaj1WCaAG4QVq5yPczVofvYDt\naNccDTdYJyIiomHiWoIjI4s0k9hdpLW1tYkPcNRa49F3HkH91jdwy+dvQ2HuRNH2pIMJubsRc5fD\n7GUwdxlpyN2V66S5jt/vl24C/vjeSqza+CRyPDnoD/VLNyctTMjdjZi7HGYvg7nLMCV33kmzWaZ3\nd77Y9nfcWX8HFBRqj1qK46YfL90kIiIi07l2g3VXSWQPsFRral+PexruAgCcP+cCVxVokrm7GXOX\nw+xlMHcZpuTOIs3hIpu3pttH3R/itrW3YEAP4MzKr+Ars88SaYcUqdzdjrnLYfYymLsMU3Jnd6fN\n7O7uDIVC8HjSW2t39nXg6hevRHugHcfuexyWfO4ax2+YniiJ3Im5S2L2Mpi7jDTkzu5ONwgGg2l9\nvV2Du3DL2p+iPdCOg0oOxpVHXu26Ag1If+4UxtzlMHsZzF2GKbmzSHO45ubmtL2W1hq/fPMX2Nj5\nLsoLynHt0dchLysvba9vknTmTrsxdznMXgZzl2FK7uzutJnd3Z2BQAAFBQW2XT/aqo1P4pHm3yE/\nKx91J96BmZMq0/K6Jkpn7rQbc5fD7GUwdxlpyJ3dnW6Ql5eeO1lvtTfh0eZHAABXLrja1QUakL7c\naU/MXQ6zl8HcZZiSO4s0h2tqakrL62zxb4GGxn8deh6OmXZsWl7TZOnKnfbE3OUwexnMXYYpuXPH\nAYdL13Yhpx9wBo6ZdiyKcovS8nqm4zYtMpi7HGYvg7nLMCV3jkmzWabvOEBEREQJ45g0N2hpaZFu\ngisxdxnMXQ6zl8HcZZiSO4s0h/N6vdJNcCXmLoO5y2H2Mpi7DFNyZ3enzdjdSURERMOwu9MNTNlf\nzG2YuwzmLofZy2DuMkzJnUWaw/n9fukmuBJzl8Hc5TB7Gcxdhim5s7vTZk7q7tzY+S6yVBZmFc+W\nbgoREVEmY3enG/h8vpRc5x1fM5a8dDVuWfvTlFwv06Uqd0oMc5fD7GUwdxmm5M4izeFS0W/es6sH\nd6xbhpAO4cQZJ6agVZnPlPEKbsPc5TB7Gcxdhim5s7vTZnZ3d4ZCIXg8ydfaWmvcsvYneH3rWhxU\ncjBuO6EO2R5uRDGW8eZOyWHucpi9DOYuIw25s7vTDYLB4LjOf+r9v+D1rWvhzfHi6iOXsECL03hz\np+QwdznMXgZzl2FK7izSHK65uTnpc9/r3IjfbXgIAHDZEVdgH+8+qWpWxhtP7pQ85i6H2ctg7jJM\nyZ1FmsMdcsghSZ336a5PseyN2zGgB3Bm5b/jmGnHprhlmS3Z3Gl8mLscZi+DucswJXcWaQ6Xl5eX\n8Dlaa9zXeC+29W7D7OLZ+M6h59vQssyWTO40fsxdDrOXwdxlmJI7izSHa2pqSvic/2t7Aa9+8goK\nsgvww6OuQU5Wjg0ty2zJ5E7jx9zlMHsZzF2GKbmzSHO4ioqKhI7f6t+K5U2/BgBUH1aDfb372tGs\njJdo7pQazF0Os5fB3GWYkjuLNIcrKytL6Ph7Gu5CYCCA46Ydj1P3q7KpVZkv0dwpNZi7HGYvg7nL\nMCV3FmkO19LSEvexA6EBbNr5ASYXlOOSeZdCqbiWaaEYEsmdUoe5y2H2Mpi7DFNy56JYDuf1euM+\nNtuTjV+e9ivkZuVhYu5EG1uV+RLJnVKHucth9jKYuwxTcueOAzZz0gbrRERElBbcccANTNlfzG2Y\nuwzmLofZy2DuMkzJnUWaw/n9fukmuBJzl8Hc5TB7Gcxdhim5s7vTZuzuJCIiomHY3ZkqSqlKpZSR\n61X4fD7pJrgSc5fB3OUwexnMXYYpuWdkkaaUqlZKLbK+liRw3nyl1MoYT80HsFIppZVSnUqp1Uqp\n+alrcfJM6Td3G+Yug7nLYfYymLsMU3LPuO5OpVQ1AGitV1jfzwdQo7WuGeWc+QDOtb6t0lovGPb8\nIq31KqVUsda6K5H22N3dGQqF4PFkZK1tNOYug7nLYfYymLuMNOTu2u7OmkiBBgBa6wYAo3ZVaq0b\ntNa1AJ4Y47iECrR0CAaDez32x/dW4c51d2AgNCDQIneIlTvZj7nLYfYymLsMU3LPqCJNKVWMcNfk\ncF3pHFNmdbeuU0qt27Jly9Bt07a2tqFVjH0+HxobGxEKhRAIBFBfX49AIIBQKITGxsah/vCWlpZR\nz9+wYcMe59dvXYffbXgIr378CgZCA2OeP97Xd+v5TU1Njm6/U89vaGhwdPudfH5jY6Oj2+/U8xsb\nGx3dfqee39zcbOvrxyujujutbsvntdYlwx5fDWC11npZHOffH6u7E0D0XbT5AFbEc2fN7u7OQCCA\ngoICAEBvfy8ufeES7Ai049uH/BcWf+Zrtr2u20XnTunD3OUwexnMXUYaco+ruzPTtoUqBdAR4/Eu\nAOPZLbUBALTWrQCglGoFsBLAwnFcMyXy8vKG/vuxdx7FjkA7ZhfPxtmzzxFsVeaLzp3Sh7nLYfYy\nmLsMU3LPqO5Ou2itWyMFWuR7AJUmzPBsamoCAGzsfBd/bX0aHuXB9+b9AFmeLOGWZbZI7pRezF0O\ns5fB3GWYkruxd9KsWZqL4zx8cVTXY2mM54sBpHrRky4AR8K6yyaloqICA6EB3PfmvdDQ+OqsszGr\neJZkk1yhoqJCugmuxNzlMHsZzF2GKbkbW6RZMzRXjHngntYhXJANV4okiymlVCWA97XWw/uPOxC7\nazWtysrK8Kf3/ogPuj/AlAn74D8O/oZ0k1yhrGw8veeULOYuh9nLYO4yTMk9o7o7rbtprdYsz2jF\nWus1SV62A0CsNdbE76IBwD+aXsXjLY8BAL479xLkZ+cLt8gdIrN0KL2YuxxmL4O5yzAl94wq0ix1\nAJZGvrHGja2J+r5SKbUyRiEHxOgqjTWD0+qKfTJ6nJoErTX+suN/sGswiBNnnIQF+xwp2RxX8Xq9\n0k1wJeYuh9nLYO4yTMnd2O7OZGmtV1jrlFUh3PVZOWy3gUqEF7cthbWshtWlWWM9Pl8ptRxAfWRR\nXOuaS6zji63HRtzBIF1e2vwi3uluRmFOIS6Yc5F0c1zFlPEKbsPc5TB7Gcxdhim5Z1yRBuzeEmqE\n59YAKBn2WCuA2jGuOeoaa+nm7/fjgbfCP+Z5cy5ASX7JGGdQKrW1tRnzl9hNmLscZi+DucswJfdM\n7O50hR2BduzctROzJ8xG1X7iy7W5jt/vl26CKzF3OcxeBnOXYUruGbXjgIns3HHgg52tmFY4HXlZ\nZiy6R0RERHFx7QbrrjFzUiU+7fpUuhmulMjea5Q6zF0Os5fB3GWYkjuLNIeLbN5K6cXcZTB3Ocxe\nBnOXYUru7O60md0brIdCIXg8rLXTjbnLYO5ymL0M5i4jDbmzu9MNgsGgdBNcibnLYO5ymL0M5i7D\nlNxZpDlcc3OzdBNcibnLYO5ymL0M5i7DlNzZ3Wkzu7s7A4EACgoKbLs+xcbcZTB3OcxeBnOXkYbc\n2d3pBnl5XH5DAnOXwdzlMHsZzF2GKbmzSHO4pqYm6Sa4EnOXwdzlMHsZzF2GKbmzSHM4E7atcCPm\nLoO5y2H2Mpi7DFNy55g0m9k9Jo2IiIgch2PS3KClpUW6Ca7E3GUwdznMXgZzl2FK7izSHM7r9Uo3\nwZWYuwzmLofZy2DuMkzJnd2dNmN3JxEREQ3D7k43MGV/Mbdh7jKYuxxmL4O5yzAld95Js5lSqh3A\nhza+xGQAO2y8PsXG3GUwdznMXgZzl2F37ju01l8Y6yAWaQ6nlFqntT5Suh1uw9xlMHc5zF4Gc5dh\nSu7s7iQiIiIyEIs0IiIiIgOxSHO+FdINcCnmLoO5y2H2Mpi7DCNy55g0IiIiIgPxThoRERGRgVik\nERERERkoW7oBlBylVDWADuvbSq31Msn2uIWVOwAssP6s1Vp3SbXHjZRSK7XWi6Xb4SZKqSUAumD9\nztFar5JtUeaL+l1TDKAMwG38XZN6Sqn5AJbG+p1iwucsizQHivzljfyiVErNV0ot11rXyLYssyml\nqrXWK6K/B1APYJZcq9zF+oW6SLodbqKUWonwP0Zare+1UqqEBYN9rKJ4RXTG1v8H/uMkRazfJeda\n31bGeN6Iz1l2dzpTTXSxoLVuAFAl2J6Mp5QqHv6Y9f+gVCnF7NOnVLoBbmJ9UL0RKdAss1ig2e6o\nGBm3xvo9RMnRWjdorWsBPDHCIUZ8zrJIcxjrL+n8GE91sViwVSWA5TF+SbYixr/CKPWUUou01muk\n2+EydQD26NocVrCRPSqtOz3Rilkcp4dJn7Ms0pynEuGxIcN1IPabilLA+lfUghi/JCsRLtTIRtYH\nVoN0O9zE+qAqtv57kVKqSim1hHdz0uIiAPVWtyeswmC5bJNcxZjPWRZpzlOK3QMZo3UhPLiUbGIV\nakOUUosAtPLuTlpU8g5O2kU+qIq11qus9/kKAM/LNivzWb9rZgFYqpTqjHqM0sOYz1kWaURJsO4m\nLAVwmnRbMp3VzcnZhOlXivCdtKHiOHInmUMr7KWUqkR4gsxMhAvj1VGzPclFWKQ5U6zB08UAfOlu\niIvVAVjMMSL2sj6seAdNRiuwuzCLwqEV9qvVWi/TWndZg9sXAKhjcZxWRnzOcgkO51kHa5zIMKXg\nmJ20sMaJ1LH7LS2qABQP/3CKrNsVPfuKUktr3aqUGulp/uPEJtZ7fXX0Y1rrBqXUYgALAXB4hf2M\n+ZxlkeYwWusupVSrUmr4TJ9ijo2yn9XlsCq6QFNKVTF7e8QqwpRSdVy8OW0alFLDxwNWIvwhRunV\nCvaWpIVJn7Ps7nSmOoTHQwEYmvnGIsFm1r9w10Ut6rnXHR6iDFNrfQEY+l3TykHs9rGKgHNjPLUI\n4fFplFojrb1oxOes0lqn+zUpBaw7Oq0I35LltlA2s8ZGvT/C01x9PQ2sgrgG4Q+rVQCW8w6m/axZ\nzJG1AMusMVJko6iJST5YM2wx7A4+jY/1O70G4SEV8xEugOtj7Coj+jnLIo2IiIjIQOzuJCIiIjIQ\nizQiIiIiA7FIIyIiIjIQizQiIiIiA7FIIyIiIjIQizQiIiIiA7FIIyLHU0pVKaV0gl/vD7vGIqVU\np7UumGMopaqtdbUSOWeJXe0hotRhkUZEmSC6SFkGYBbCm1JHrAFQgvDeh5HV8oevNF5jXSfWau9G\nUkqtBLAwicWUu5RS7yda3BFRenHvTiLKBJGCa1n0ivhKqchq7Q1WIbNGKXUagA+w9wbKNdbX8jS0\nd9yUUssRXgV9wZgHD6O1XqGUWgCgHuGClogMxDtpRJRJbhvrAKtY2+s4rXWr1rrWCVvvWF2y1Yja\nVzMJtQAqrWKPiAzEIo2IMkH03bJ4OH3Pz/sR/nmT/jmsrJYBqLY2jyYiw7BII6JMUAZgXbwHa60b\ngKGNrB3FuotWjNQUmqutP2tScC0iSjEWaUSUCVYj8bFktUB4bNewWZ91kQOUUnXDnqu2ZoHWR2aI\nKqWqrWMrlVIrrRmindHXGc66zmrrGvUJzraMFFRvjHDtRVa7Iu1bYrUrVnsihW11Aq9PRGnCIo2I\nHE9rvSZydyyBc5ZZXX61CA+e3+t8axLCLACRcWo1CHc1rgGwAkAlgOVWkVVvHXMbgA4AS2KN97Ie\nWw5gpdZaWa9fZ83UjEeV9ede7VVKVVntW2xde6H1FXNZEevn77LOZZcnkWFYpBGRq2mtu6zJAjG7\nD63nIgXRfAALrAkGNQiP6QKAOgArtNaLtdbLEC6MgPB4r6Eu1agB/2u01ius66+xrrPIKrJGNKx7\ntiPGIYsBPBkpWK3JEAuxu8iMJXKdytFem4jSj0UaEVH8Vg2b/bk66r+HZowOOya6+Il0OQ6/w7Z6\n2PMjGVrbbYRJEqUAvhZjQd5aAL4Rrhm5Dos0IsOwSCMiit/wcWCRu1BdMYqmWHevKkd4LnKHbLxd\njquta620xqSttrpiG6w7fETkICzSiIjiN9ISH7G6HveglIq+UxWZeKCVUhrAyqjjRptx2jHacVYX\nanQxVoXw3bmhCQ4xRK5j/PpwRG7DIo2IKD2iC7kSrbUa4WvEtd6iB/pj722toJSqssbLRSYNLIs6\nfqTZr5HrsEgjMgyLNCKiNBhWfB0Z65g4Z1hGls2IdezKyOQDa8Zrrda6BLuXG9lj3Jl1N67YOj6h\n2bFEZD8WaURE6RPpitxrOyeruIpnGY7IHbGjRng+1uSDNcBeExqA3cXiijhel4jSjEUaEWUcpVSx\nVfQMDci3FpsdbbxX5bA/Yz03fDPyyON7dT1GPTZ018xad60BQJU1qL9aKVVlLTS7EuElNEaltV6F\ncBdmzLXPEP5ZV0fuyll3z+5H7EIsslTIWLNKiUiA0lpLt4GIKGWs2YwjFh3WeK3o4yN3sKILuC6E\nC6Zi7H13qwvATAAfDDsH2H2HbPjrt2qthwo8q43nItxl2YXwna64N3e3lthYCWBh9P6dSqlOAKch\nXBjWWNdvRXjpkNph1ygG0Inw+m7cForIQCzSiIgcyNq5oCq6+Evn+URkP3Z3EhE5kHX3a00C20kN\nsZbjqAKwIOUNI6KUYZFGRORQVqG2eoyxdiOdO2u05T6ISB67O4mIiIgMxDtpRERERAZikUZERERk\nIBZpRERERAZikUZERERkIBZpRERERAZikUZERERkIBZpRERERAZikUZERERkoP8P7oRwQl2gOfQA\nAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Set the plot size - 3x2 aspect ratio is best\n", "fig = plt.figure(figsize=(6, 4))\n", "ax = plt.gca()\n", "plt.subplots_adjust(bottom=0.17, left=0.17, top=0.96, right=0.96)\n", "\n", "# Change the axis units to serif\n", "plt.setp(ax.get_ymajorticklabels(), family='serif', fontsize=18)\n", "plt.setp(ax.get_xmajorticklabels(), family='serif', fontsize=18)\n", "\n", "# Remove the top and right axis borders\n", "ax.spines['right'].set_color('none')\n", "ax.spines['top'].set_color('none')\n", "\n", "ax.xaxis.set_ticks_position('bottom')\n", "ax.yaxis.set_ticks_position('left')\n", "\n", "# Turn on the plot grid and set appropriate linestyle and color\n", "ax.grid(True,linestyle=':', color='0.75')\n", "ax.set_axisbelow(True)\n", "\n", "# Define the X and Y axis labels\n", "plt.xlabel('Time (s)', family='serif', fontsize=22, weight='bold', labelpad=5)\n", "plt.ylabel('Position (m)', family='serif', fontsize=22, weight='bold', labelpad=10)\n", "\n", "plt.plot(t, x, linewidth=2, linestyle='-', label=r'Response')\n", "\n", "# Now add the decay envolopes with a low zorder to push them behind the response\n", "plt.plot(t, upper_decay_env, linewidth=2, linestyle='-.', zorder=1, label=r'Upper Env.')\n", "plt.plot(t, lower_decay_env, linewidth=2, linestyle='--', zorder=1, label=r'Lower Env.')\n", "\n", "# uncomment below and set limits if needed\n", "# plt.xlim(0, 5)\n", "# plt.ylim(0, 10)\n", "\n", "# Create the legend, then fix the fontsize\n", "leg = plt.legend(loc='upper right', ncol = 1, fancybox=True)\n", "ltext = leg.get_texts()\n", "plt.setp(ltext, family='serif', fontsize=20)\n", "\n", "# Adjust the page layout filling the page using the new tight_layout command\n", "plt.tight_layout(pad=0.5)\n", "\n", "# Uncomment to save the figure as a high-res pdf in the current folder\n", "# It's saved at the original 6x4 size\n", "# plt.savefig('MCHE474_mass_spring_damper_response.pdf')\n", "\n", "fig.set_size_inches(9, 6) # Resize the figure for better display in the notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Working with Transfer Functions" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "When working in the Laplace (or \"s\") domain will be modeling our systems using their transfer functions. The Control Systems Library has numerous tools to help us define, analyze, and simulate our system in this domain. Let's explore those now.\n", "\n", "### Defining Transfer Functions\n", "To define a transfer function, we need to provide its numerator and denominator to the `tf()` function of the library. To do so, we'll define the numerator and denominator at 1D arrays, where the power of `s` is indicated by the postition of the constant in the array." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The mass-spring-damper system we looked at above is:\n", "\n", "$ \\quad G(s) = \\frac{X(s)}{F(s)} = \\frac{1}{ms^2 + cs + k} $\n", "\n", "Like the time-domain solution, we can also write this transfer function in terms of the natural frquency, $\\omega_n$, and damping ratio, $\\zeta$, of the system:\n", "\n", "$ \\quad G(s) = \\frac{X(s)}{F(s)} = \\frac{1/m}{s^2 + 2\\zeta\\omega_n s + \\omega_n^2} $\n", "\n", "Let's use this second form. For the parameters we selected above, it is:\n", "\n", "$ \\quad G(s) = \\frac{X(s)}{F(s)} = \\frac{1}{s^2 + s + 1} $\n", "\n", "We'll first define an array, which we'll call `num` that contains the numerator value. Since it only has one value, the command will be of the form:\n", "\n", " num = [1 / m]\n", "\n", "To define the denominator, we need to create an array where the element represents the power of `s` for the constant there. In this case:\n", "\n", " den = [1, 2 * zeta * w_n, w_n**2]\n", "\n", "To check this, work from the \"right\" side of the definition. `w_n**2` is $\\omega_n^2$, which is mulitplied by $s^0$. The next element is `2 * zeta * w_n`, which is the $2\\zeta\\omega_n$ term and given its position in the first indexed element of the array is multiplied by $s^1$. This continues for all similar definitions.\n", "\n", "***Note:*** This is one difference between Python and MATLAB. In Python, the commas are always needed between elements. In MATLAB, they are (sometimes) optional." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Define the numerator and denominator of the transfer function\n", "num = [1 / m]\n", "den = [1, 2 * zeta * w_n, w_n**2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, that these are defined, we can pass them to the `tf` function of the library. Remember that since `tf` is a function in the `control` module, we need to use `control.tf()` to call it. We'll assign the variable `sys` to hold transfer function returned. " ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Define the transfer function form of the system defined by num and den\n", "sys = control.tf(num, den)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can check that the transfer function is defined correctly by printing `sys`." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " 1\n", "-----------\n", "s^2 + s + 2\n", "\n" ] } ], "source": [ "print(sys)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Analysis of the System\n", "Now that the system's transfer function is defined, we can use many of the analysis tools in the library. We can calculate the poles by" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-0.5+1.32287566j, -0.5-1.32287566j])" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sys.pole()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "and the zeros by " ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([], dtype=float64)" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sys.zero()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "which, as we should expect returns an empty array indicating that there are no zeros for this transfer function.\n", "\n", "We can plot a (not so pretty) pole-zero map by:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "poles, zeros = control.pzmap.pzmap(sys)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are [many others](http://python-control.readthedocs.io/en/latest/control.html#control-system-analysis) that we'll learn about in later notebooks. We can also simulate system responses using the transfer function directly, allowing us to avoid analytically solving the system ODEs." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Simluation Using the Transfer Function\n", "The library has [functions defined](http://python-control.readthedocs.io/en/latest/control.html#time-domain-simulation) that allow us to *very* easily simulate system responses to initial conditions, impulses, and step inputs. We also, with just a little bit more work, simulate the response to arbitrary inputs of our choosing." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Responses to Initial Conditions\n", "The function to simulate a response to initial conditions is:\n", "\n", " control.initial_response()\n", "\n", "We have to pass the system to it and have the option to pass several other parameters, including the time array and the initial condition itself. The initial condition has to include *all* of the states of the system, so we need to define a array to hold them by:\n", "\n", " sys_init = [0, 0.15]\n", "\n", "The function returns a time array and the output(s) of the system.\n", "\n", "You can get more information [here](http://python-control.readthedocs.io/en/latest/generated/control.initial_response.html#control.initial_response).\n", "\n", "For our system, the call to this function is:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Define the initial conditions for the system.\n", "# Here they are the initial velocity and position of the mass\n", "sys_init = [0, 0.15] \n", "\n", "time_out, response = control.initial_response(sys, t, sys_init)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this call, we store the output (the response itself) in the array named `response` and the time vector returned by the function in array `time_out`. We now can plot this reponse using those two arrays. It should match the response that we plotted above using the analytical solution." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Set the plot size - 3x2 aspect ratio is best\n", "fig = plt.figure(figsize=(6, 4))\n", "ax = plt.gca()\n", "plt.subplots_adjust(bottom=0.17, left=0.17, top=0.96, right=0.96)\n", "\n", "# Change the axis units to serif\n", "plt.setp(ax.get_ymajorticklabels(), family='serif', fontsize=18)\n", "plt.setp(ax.get_xmajorticklabels(), family='serif', fontsize=18)\n", "\n", "ax.spines['right'].set_color('none')\n", "ax.spines['top'].set_color('none')\n", "\n", "ax.xaxis.set_ticks_position('bottom')\n", "ax.yaxis.set_ticks_position('left')\n", "\n", "# Turn on the plot grid and set appropriate linestyle and color\n", "ax.grid(True,linestyle=':', color='0.75')\n", "ax.set_axisbelow(True)\n", "\n", "# Define the X and Y axis labels\n", "plt.xlabel('Time (s)', family='serif', fontsize=22, weight='bold', labelpad=5)\n", "plt.ylabel('Position (m)', family='serif', fontsize=22, weight='bold', labelpad=10)\n", "\n", "plt.plot(time_out, response, linewidth=2, linestyle='-', label=r'Response')\n", "\n", "# uncomment below and set limits if needed\n", "# plt.xlim(0, 5)\n", "# plt.ylim(0, 10)\n", "\n", "# Create the legend, then fix the fontsize\n", "# leg = plt.legend(loc='upper right', ncol = 1, fancybox=True)\n", "# ltext = leg.get_texts()\n", "# plt.setp(ltext, family='serif', fontsize=20)\n", "\n", "# Adjust the page layout filling the page using the new tight_layout command\n", "plt.tight_layout(pad=0.5)\n", "\n", "# Uncomment to save the figure as a high-res pdf in the current folder\n", "# It's saved at the original 6x4 size\n", "# plt.savefig('MCHE474_initial_response.pdf')\n", "\n", "fig.set_size_inches(9, 6) # Resize the figure for better display in the notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Impulse Response\n", "We can also plot the response of the system to an impulse. The function to do so is \n", "\n", " control.impulse_response()\n", " \n", "which has a similar form to the one we used for the initial condition response above. For this system, the call is:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": true }, "outputs": [], "source": [ "time_imp, impulse_response = control.impulse_response(sys, t)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As before, we can now plot this response using the arrays returned by the function." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Set the plot size - 3x2 aspect ratio is best\n", "fig = plt.figure(figsize=(6, 4))\n", "ax = plt.gca()\n", "plt.subplots_adjust(bottom=0.17, left=0.17, top=0.96, right=0.96)\n", "\n", "# Change the axis units to serif\n", "plt.setp(ax.get_ymajorticklabels(), family='serif', fontsize=18)\n", "plt.setp(ax.get_xmajorticklabels(), family='serif', fontsize=18)\n", "\n", "ax.spines['right'].set_color('none')\n", "ax.spines['top'].set_color('none')\n", "\n", "ax.xaxis.set_ticks_position('bottom')\n", "ax.yaxis.set_ticks_position('left')\n", "\n", "# Turn on the plot grid and set appropriate linestyle and color\n", "ax.grid(True,linestyle=':', color='0.75')\n", "ax.set_axisbelow(True)\n", "\n", "# Define the X and Y axis labels\n", "plt.xlabel('Time (s)', family='serif', fontsize=22, weight='bold', labelpad=5)\n", "plt.ylabel('Position (m)', family='serif', fontsize=22, weight='bold', labelpad=10)\n", "\n", "plt.plot(time_imp, impulse_response, linewidth=2, linestyle='-', label=r'Response')\n", "\n", "\n", "# uncomment below and set limits if needed\n", "# plt.xlim(0, 5)\n", "# plt.ylim(0, 10)\n", "\n", "# Create the legend, then fix the fontsize\n", "# leg = plt.legend(loc='upper right', ncol = 1, fancybox=True)\n", "# ltext = leg.get_texts()\n", "# plt.setp(ltext, family='serif', fontsize=20)\n", "\n", "# Adjust the page layout filling the page using the new tight_layout command\n", "plt.tight_layout(pad=0.5)\n", "\n", "# Uncomment to save the figure as a high-res pdf in the current folder\n", "# It's saved at the original 6x4 size\n", "# plt.savefig('MCHE474_impulse_response.pdf')\n", "\n", "fig.set_size_inches(9, 6) # Resize the figure for better display in the notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Step Response\n", "The function to simluate the system response to a step input follows the same patterns as the initial condition and impulse response functions. As you might expect, it is:\n", "\n", " control.step_response()\n", "\n", "where we have to pass the system and have the option of passing other information. More information on it can be found [here](http://python-control.readthedocs.io/en/latest/generated/control.step_response.html#control.step_response).\n", "\n", "For the mass-spring-damper system, let's simulate a step response with zero initial conditions (*i.e.* The system is at rest when the input is applied.)\n", "\n", "To do this, we issue the command:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": true }, "outputs": [], "source": [ "time_step, step_response = control.step_response(sys, t)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As before, we can now plot this reponse using the arrays returned." ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmgAAAGVCAYAAABKCw0TAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXl8VPW5/z/PzGQmybBkYUcUA2iMFhECiLbWBandXVC0\ntdv1Ctbae3vvraLtbXtvN8XudrFg99v+ioK2VbtYFq3WBUgwBg1RZDOyMyEBJpOZzJzn98ecCSFM\nkslk5pznnHner9e8ZM6c7/k++HaSx+/yfImZoSiKoiiKosjBY3cAiqIoiqIoyslogqYoiqIoiiIM\nTdAURVEURVGEoQmaoiiKoiiKMDRBUxRFURRFEYYmaIqiKIqiKMLQBE1RFEVRFEUYmqApiqIoiqII\nQxM0RVEURVEUYWiCpiiKoiiKIgyf3QFI4aqrruK//e1vdoehKIqiKIq7oUxu0hE0k8OHD+f1+S0t\nLXl9vpI56kIG6kEG6kEG6kEGkjxogmYR4XDY7hAUE3UhA/UgA/UgA/UgA0keiJntjkEEtbW1XFdX\nZ3cYiqIoiqK4G53ilEQoFLI7BMVEXchAPchAPchAPchAkgdN0CxC0rx2oaMuZKAeZKAeZKAeZCDJ\ng05xmuR7itMwDHg8mg9LQF3IQD3IQD3IQD3IwCIPOsUpiWg0ancIiom6kIF6kIF6kIF6kIEkD5qg\nWURTU5PdISgm6kIG6kEG6kEG6kEGkjzoFKdJvqc4I5EISkpK8vZ8JXPUhQzUgwzUgwzUgwws8qBT\nnJIIBAJ2h6CYqAsZqAcZqAcZqAcZSPKgCZpFNDY22h2CYqIuZKAeZKAeZKAeZCDJgyZoFjFp0iS7\nQ1BM1IUM1IMM1IMM1IMMJHnQNWgmepKAoiiKoigWkNEaNF++o1CSNDc3o7q62u4wFAzeRbylBZ3r\n1iFWV4+urVuR2L8f3NYOeL2g0lJ4TzsNRVOmwD+7FoGLL4KvuhpEGX3/Chr9TshAPchAPchAkgdN\n0CwiGAzaHYJikokLTiQQeeIJhH/1G8Q2bUp/UyIBPnYM8a1bEd+6FZEnnwQA+KZMQcm11yD4sZvh\nrazMZeiuQr8TMlAPMlAPMpDkQac4TXSKUwEAZkbnU0/h6DfuRXzHDgAAFRejeP58+C+aB/8FM+Cd\nOBGe8nLAMGAcPYZEy1voatqK2IYN6Fz/NIzUWW7FAQSvvx7DPnsHfBMn2vi3UhRFUQSR0RSLJmgm\n+U7QWlpaRC0+LGT6cpHYtw9t93wBnWvWAgC8Z5yO4bffjpJrroYnw/+r4ngc0X/+E+Ff/hqda5PP\nQXEAw5cswbDP3J7xcwoB/U7IQD3IQD3IwCIPWgdNEuFw2O4QFJN0LjqffRYHF1yFzjVrQcOHY+TX\nv4axz/4DwZs/Oqikinw+FF96KSp//UuMeWY9Sj70QaAzimM/eAAH330ZOp95Jod/E2ej3wkZqAcZ\nqAcZSPKgI2gmOsVZuBxbvgJHv/Z1gBmBS96F8u99F95x43L2/OimTWj/8lfQ1bgFAFD60Y9i5Fe+\npKNpiqIohYmOoEkilFqXpNhOygUbBtr/96s4+tWvAcwY/p//gcrf/l9OkzMACMyejdFPPI4Rdy8F\niorQ8bvf4dAHPoSuN9/MaT9OQ78TMlAPMlAPMpDkQRM0i2hpabE7BMWkpaUFzIz2L3wRx1c8BBQV\nofxHD2DEf/0nyOvNS5/k82H4Z+/AmL/+Gb5p0xB/4w0cet8HEPnLX/PSnxPQ74QM1IMM1IMMJHnQ\nKU6TfE9xGoYBj0fzYQkkEgkc//o3kslZcQCVv/g5it/9bsv6N44fR9vn70TkiWRZjhFf+iKGLVlS\ncLXT9DshA/UgA/UgA4s86BSnJKLRqN0hKCbtP/xR98hZ5YoVliZnAOAZNgzlD/4EI774BQDA0a99\nA+3//SVwImFpHHaj3wkZqAcZqAcZSPKgCZpFNDU12R2CAiDyt7+h49vfAQBU/PABFF9xuS1xEBGG\n3/5plP/kx4Dfj/Cvfo3WWxeDBf1wyDf6nZCBepCBepCBJA86xWmS7ynOSCSCkpKSvD1fGZiurVtx\n6ENXgzs6MOLupRj+2TvsDgkAEN24EaFP/Qu4rR2Byy5F5UMrQAXw34p+J2SgHmSgHmRgkQed4pRE\nIBCwO4SCxujoQOunPwPu6EDxNVdj2B2fsTukbgJz5mD0I4/AU1mJ6NPPIPSJT8Ho6LA7rLyj3wkZ\nqAcZqAcZSPKgCZpFNDY22h1CQdP+5a8gvm0bfNOmoeXmj4pbkF90bg1GrX4EnjFjEH3+eYQ+9nEY\nkYjdYeUV/U7IQD3IQD3IQJIHTdAsQo/wsI+OP/0JHb9fCQQCqHjwx5g0bZrdIaWl6KyzMPrR1fCM\nG4vYSxvQungJOBazO6y8od8JGagHGagHGUjyoAmaRVRWVtodQkGSOHAAbfd8EQBQ9j9fQdE554h2\n4as6E6NW/h6eigpE1z+N1jv+DRyP2x1WXpDsoZBQDzJQDzKQ5EETNItobm62O4SCpO2/vwxub0fg\n8stQ+rGbAch3UTRtGip//zvQiBHo/POf0XbXUrBh2B1WzpHuoVBQDzJQDzKQ5EETNIsI6rmLlhP5\n61/R+Ze/gIJBlN13b/e6Mye48J93Hip/8ytQSQk6Hn4ER+//lt0h5RwneCgE1IMM1IMMJHnQMhsm\neli6uzDa23HgssthHDiIkV//GoZ96pN2h5QVnU8/jdAnPgUkEihbdh+CN3/U7pAURVGUoaFlNiQh\n6XyvQuDo974P48BB+GfNQvATHz/pMye5KL7sMpTddy8AoO0LX0Tn+qdtjih3OMmDm1EPMlAPMpDk\nwWd3AANBRIsBtJpvq5j5/gzb3QWgLdWWmVfnJ8LMCIfDdnZfUHS9uR3hX/4KIMLIb34d1OtcNae5\nCH7kJiRaWnDsgR+idcltGPXYavjf8Q67wxoyTvPgVtSDDNSDDCR5ED3FaSZnYOYV5vuZAJYw85IB\n2q0CsJSZd5jvGUA5M7f11UanON3D4Y9/EtF161D6kZtQ/q2M8nnxMDOO/NvnEHnsMXjGjMGYPz8J\n74TxdoelKIqiDB5XTHEuSSVnAMDMmwHM76+BmdRtSiVnJlP6S86sIBQK2dl9wdD5zDOIrlsHGjYM\nI+66M+09TnRBRCj/zrfgnzcPxsGDCN1yC9jhhWyd6MGNqAcZqAcZSPIgNkEjojIAM9N81EZE/SVp\nywCcNJ3ZK1mzBUnz2m6FDQPtX/8GAGD4v/8bvKNHp73PqS7I70fFiuXwnn46uhq34Mjn74TkEfCB\ncKoHt6EeZKAeZCDJg9gEDUAVkmvIetOK9IlbKqkrM/+8kIjmE9Fd5nVbmT59ut0huJ7IE08gvrUZ\n3gkTMOyWf+nzPie78FaUo/KXPwcFg4j88U84/pMH7Q4pa5zswU2oBxmoBxlI8iA5QavAic0BPWkD\n0Fep31RSV8bMq5l5LYAVANblJ8TMiUajdofgajgex7FvfxcAMPw/Pgfq58Bbp7soqq5G+Q9/AAA4\neu99iKxZa3NE2eF0D25BPchAPchAkgfJCVo2VCA5gtY9pZlae5ZuWpSIFhNRHRHV7du3r3tos6Wl\npbuacCgUQkNDAwzDQCQSQX19PSKRCAzDQENDQ/d8dXNzc7/tX3vttSG1H2r/bm+//Uc/RnzHDngn\nn4HWeRf22/7VV18VF/9g2weuvBLhj90MMOPIHZ/FG397ylHxG4aBuro6x/77d1P7pqYmR8fvlvYN\nDQ2Ojt8t7RsaGvLef6aI3cVpJlSrmLm81/U1ANakK7dBRFUAtjMzZdomRb53cUYiEZSUlOTt+YUM\nx2I4cMmlSLS0oPyBH6D0umv7vd8tLpgZR267HZEnn4R38mSM+cuT8IwcaXdYGeMWD05HPchAPcjA\nIg+O38VZB3M9WS8qAGxO12CAzQC27uIM9DPlpgyNjj/8AYmWFvimTUPJ1R8e8H63uCAilH3vOyg6\n91wkdu3CkX//nKPO7HSLB6ejHmSgHmQgyYPYBM2cmtyRZoF/mbm2rC82myNpPalCMuGzjcbGRju7\ndy1sGDj+4+RC+eGfvQPk9Q7Yxk0uPKWlqHhoOWjkSHSuWYvjP/qx3SFljJs8OBn1IAP1IANJHsQm\naCbLANyTemMWql3b430VEa3qlcQtNV892+wwa6jZxqRJk+zs3rV0/u0pxLdvh/e001DyoQ9m1MZt\nLnxnnIGKHz4AADj6rW+j89lnbY4oM9zmwamoBxmoBxlI8iA6QTOL1G43y2UsBDC/1ykCVUgWrq3o\n0WYtgDVmeY27ACxi5istDTwNlZV9bTxVsoWZcezHyRGjYbctARUVZdTOjS6Kr7gcw//jc4Bh4Mjt\ndyC+Z4/dIQ2IGz04EfUgA/UgA0keRCdoQDJJY+a1ZtmM+3t9tpaZy3uvPUvda76WQgCpXR1K7og9\n/wK6Gl6Bp7ISpTcuyridW10M/4/PIXDZpTCOHEHr4iVgQdvF0+FWD05DPchAPchAkgfxCZpbCAaD\ndofgOo799KcAgGG3/As8g9h141YX5PWi/IEH4D3tNHQ1vIL2r/yP3SH1i1s9OA31IAP1IANJHsSW\n2bAaPSzdWXS9uR0H330pqLgYYzdthLeifOBGBUKssRGHrr4WiEZR9r3vInjD9XaHpCiKopzA8WU2\nXIWk873cQPjXvwYAlFx7zaCTM7e78E+fjrJvfB0A0HbPPYi9+prNEaXH7R6cgnqQgXqQgSQPmqBZ\nRDgctjsE12AcO4aOR1YBAIZ96lODbl8ILoI33YjSm24EOqNoXbwYRnu73SGdQiF4cALqQQbqQQaS\nPOgUp4lOcTqH47/4Jdq/9GX4512I0atX2R2OWLizE4euvhZdW7ag+Mr5qPjFz0Ee/X8yRVEUm9Ep\nTkmkzuxShgYbBsK//BWA7EbPgMJxQcXFqFjx0xNFbH/yoN0hnUSheJCOepCBepCBJA+aoFmEpHlt\nJxP9xz+Sh6JPmIDi9yzI6hmF5MJ3+umoeOAHAICjy+5H9PkXbI7oBIXkQTLqQQbqQQaSPGiCZhHT\np0+3OwRXEP7N/wEAgh//GMjny+oZheaieP4VGP5vnwUMA623fwaJffvsDglA4XmQinqQgXqQgSQP\nmqBZRFR40VAnkNi/H53r1gM+36AK0/amEF0M//x/IfDOd8I4fBitt90O7uqyO6SC9CAR9SAD9SAD\nSR40QbOIpqYmu0NwPB2rVgOJBIoXXAnv6NFZP6cQXZDXi/Kf/Aje8eMRq6tD+9e/YXdIBelBIupB\nBupBBpI8aIJmETU1NXaH4GiYGeGVKwEAwZtuGtKzCtWFt7ISFct/ChQVIfyzn6Pj8SdsjadQPUhD\nPchAPchAkgdN0CwiEAjYHYKjib34EhK7dsM7fjwC775kSM8qZBf+WTMx8itfBgC0ff5OdG3bZlss\nhexBEupBBupBBpI8aIJmEY2NjXaH4GjCv/89AKB00Q0gr3dIzyp0F8FPfgIlV38YHA6j9dYlMGwq\nzFjoHqSgHmSgHmQgyYMmaBYxadIku0NwLEZbGyJ//gtANKTNASkK3QURoez+ZfCddRbi27ah7c67\nYEfB6kL3IAX1IAP1IANJHjRBs4jKykq7Q3AsHX/8IxCNIvCud8KXgy+PugA8wSAqHloOCgYR+dPj\n3cV/rUQ9yEA9yEA9yECSB03QLKK5udnuEBxLx+pHASAno2eAukhRNHUqyr/zbQBA+/9+FdG6ekv7\nVw8yUA8yUA8ykORBEzSLCAaDdofgSLq270DXyw2gYcNQvCC7kwN6oy5OUPLBDyD4r7cA8Thal9yG\nxOHDlvWtHmSgHmSgHmQgyYMmaBYhaV7bSUT+8AcAQMn73gtPSUlOnqkuTmbkf38R/tmzYezfjyO3\n3wFOJCzpVz3IQD3IQD3IQJIHTdAsQtL5Xk6BmdHx2GMAgJJrr83Zc9XFyVBRESoe/DE8o0Yh+vzz\nOPqtb1vSr3qQgXqQgXqQgSQPmqBZRNimUgZOpmvzy0jsfguecWMRuGhezp6rLk7FO348Kn7yY8Dj\nwfEf/giRNWvz3qd6kIF6kIF6kIEkD5qgWUR1dbXdITiO1OhZ6Yc/POTaZz1RF+kJXHwRRty9FABw\n5N8/h/ju3XntTz3IQD3IQD3IQJIHTdAsIhQK2R2Co+CuLkT+9DiA3E5vAuqiP4bd/mkUv2cBuL09\nWcQ2EslbX+pBBupBBupBBpI8aIJmEZLmtZ1A5zP/gHHkCHxnn4Wic3N7Npq66BsiQvn3vgvv5DPQ\n9dpraPuvz+etiK16kIF6kIF6kIEkD5qgWcT06dPtDsFRRB5Pjp6VXnMNiCinz1YX/eMZORKVv/h5\ndxHb4w/8MC/9qAcZqAcZqAcZSPKgCZpFRKNRu0NwDNzZic6/rwGQrNOVa9TFwBSdfTbKf/RDgAhH\n7/8WIk89lfM+1IMM1IMM1IMMJHnQBM0impqa7A7BMXQ++yz4+HEUnXcefJMn5/z56iIzShZceWLT\nwB3/hq6tW3P6fPUgA/UgA/UgA0keNEGziJqa3K6jcjORJ/4MACj5wPvz8nx1kTnDPnM7Sq69BtzR\ngdCnbkEihwto1YMM1IMM1IMMJHnQBM0iAoGA3SE4Ao5G0bnGnN58f34SNHWROUSE8vuXoWjG+Ui0\ntKB18RJwLJaTZ6sHGagHGagHGUjyoAmaRTQ2NtodgiPofPY58LFjKKqpga/qzLz0oS4GB5WUoPLn\nP4Nn3FjEXtqAtnu+kJOdnepBBupBBupBBpI8aIJmEZLO95JM5Mn8Tm8C6iIbvOPGJXd2FhejY+XD\nOPb9Hwz5mepBBupBBupBBpI8aIJmEZWVlXaHIB6ORtH5978DAIo/kPvdmynURXb4zz8f5Q8mj4M6\n9u3vIPzIqiE9Tz3IQD3IQD3IQJIHTdAsorm52e4QxBN97p/go0fhO6caRVOq8taPusiekgULMPJr\n/wsAaLvzLnQ+98+sn6UeZKAeZKAeZCDJg8/uAAqFYDBodwjiiTz5JID8bQ5IoS6GxrBPfhKJlrdx\n/KfL0XrrYoz+w6MoOuecQT9HPchAqgeORpE4dAjGgYNIHDwA49BhGEePwjh2DHz0KIzjx8FHj8EI\nHwdiXeB4FzjWBcTj4K4YkDAArwfk9QFeL+D1Js/09XlBJSWgklJ4gqWgYBBUWgoqLYUnGISnrAye\n8vJerzJQSUle/75SPRQakjxQvo5xcRq1tbVcV1dndxgFC3d1Yd/5F4Db2zHmH0+jaOpUu0NS+oEN\nA0c+/RlEnnwSnnHjMPqPj8EnaO2GIh+Ox5FoaUF8927Ed+1CfNduJHbvRvytt5DYfwDc1mZ3iCdB\nxcXwVFTAM3YMvGPGwDt2LDzmP71jx3Zf91RWJhNBRembjI7Hcd0IGhFVAahi5rV2x9KTlpYWUYsP\npRHbsBHc3g7f1Kl5T87UxdAhjwflP/geEocPIfbSBhy+8SaMfuxReMeOzfgZ6kEGVnhIHDyIrqYm\ndDU3o2vr64hv3YquN98E+qva7vPBM2oUvKnEZ8wYeEaOhGfYMNCIEfAMHw4aMRye0iAQ8IOKigBf\nEchfBPIVAV4PkDDARgKIx0/6M0c6YYTD4I6O5Mv8s3H8OIy2NhhHjvR6tYE7O5HYuxeJvXvR1d9f\n1uuFd9w4eCdOgHfixORrwgT4Jk7svuYZMeKUZvp9kIEkD+ITNCJaDKDVfFvFzPcP0GQmgIeIqAxA\nG4A6AEuZeXMewxyQcDhsZ/fiiaQ2B7xnQd77Uhe5gYqLUfnLX+DwDTeia8sWHP7IRzF69Sp4yssz\naq8eZJBrD0Ykgq4tWxDb/DK6Xm5AbPNmJPbuTXuvd8IEeCdPhm/yGfCdcQZ8kyfDe8bp8I4fD09F\nBcgjY5k0MycTuFAIiQMHYRw8iMSBA0gcOHDizwcPwjhwEEZrKxJ79iCxZw+ATWmfR8OHJ5O1CRPh\nM5O2KBGis2uTCd3YscmEU7EcST+XRE9xmskZmHmF+X4mgCXMvKSfNguZeTURlTFzxmPkOsVpH8yM\nA/MuRqKlBaP+9EcEamfZHZIyCBKtrTh87ULEt21D0QUzMGrl7+EZNszusBSL4EgE0bp6RJ9/HrEX\nXkTslVeSI1Y9oGHDUHRuDYqqq1FUXQ3fOeegqPpseIYPtynq/MHRKBL79yOxZy8Se/Yg/vbbyZG3\nPXu6r3Ek0v9DPJ7k1GmPUbdUQpccjZsAKisDUUYzZYo8MhInPUGrZ+ZZva5tZ+Yp/bRZyMyrB9tX\nvhO0UCgkavuuJLqatuLglQvgGTUK4zbX5X39hrrIPYl9+3DomuuQaGmB/6KLMOo3vxpwUbV6kMFg\nPbBhoOuVV9D5zD+SSVn9ZqDn6RIeD3xnnw3/zAvgv+AC+GdeAN/Uqbouy4SZYRxpQ2LvnpOSto4d\nO+A9HEJi7x4YBw4CA/xuptLSkxO47mlU89r48SC/36K/lXuw6OeSs9egmVOUM9N81EZE86WtMRuI\nlpYW/WXUB5GnngIAFF8535If4uoi93jHj8eolf8Ph665DrEXXkDoX25BxS9+Dk8/SZp6kEEmHoxj\nxxB99jl0rl2LzvVPwzh8+MSHRCg67zwELpqHwMUXwz93jitHxnIFEcFbUQ5vRTlw3nnd13c2NGDG\njBkAAI7FzFE4M4HbuxfxPXtPJHVv7wGHw4hv24b4tm19dQRPZaW5fm909zo+75gxJ18bOxae0lIr\n/uqOQNLPJbEjaOZ05jpmLu91fQ2ANX2tRSOihUiuPUsxE8CKgaY78z2CZhgGPELWU0jj4Pvej65X\nGlHxy1+gZMGVee9PXeSPrtdfx+EbboRx+DACF1+Mil/9os8f/upBBn15SBw6hMhf/orOv/wV0Q0b\ngK4TS+O9Eyei+IrLEbjkXQhceGHG6w6VvhnM94GZwUePIrFnL+LmerfEvn3da98Se/YisX8/kEhk\n9DwKBuEZPfpEWZGKCnjKy+DtXW7EvE7DhydLk7jw+2vRzyVnj6ABqMCJzQE9aQPQX3q7GQCYeQcA\nENEOAKsAnPKb31zjthgAJkyY0L17o6WlBeFwGNXV1QiFQmhpacH06dMRjUbR1NSEmpoaBAIBNDY2\nYtKkSaisrERzczOCwWCf7adNmwaPx5N1+6H2L7X9aX4/ul5pBAcCOHzmZEwC8t5/VVUVRo4cKeLv\n77r2Z5+N+A8fAD5zB6LPP4/9N30EB+9eiulz557S/uWXX8bkyZNlxV+A7UtLS7F7924Eg0FMCASw\n93f/D8aatfBt2QIYRvKHpccDX+0sHKmpwcQbF6H0vPOwZcsWTJo0CSXl5Y7++0tp7/f7UVVVlXn7\nnTuT7WvOSdv/2VOnIrRtG/a/+hqqykYiumcvDjQ1YRQAhEI4vms3/EePgkMhcDiMRDiMxK5dGf+C\nZqJk7bjhw9HlL4Jn2HAUV1Sg0+tF3O9H2cQJ6GTG0c5OjJ00CQmfDwdaWzHujDNQNCyIt/YfwKgJ\nEzBiVCVa9uxFcbAUY8aNw8HDhxGJRjG5qgrtR49h/6FDOOvss9GVSODNnTsw9cwqFHm9eOP11zFu\nzBiMHD4Mu3buRInfjzGjR+Pgvn3o7Ihg0sSJONrehsP79mPyxImIdYSxZ9cuTBw9Bl7DwN7du1EW\nDKKkqAiH9+2DH8Cw4mIcDYXQ8enbUH3uuXnzX5JhTT3JI2jzASzvvd6MiFYB2MHMSwfxrO0Aru9v\nJ2e+R9Dq6+sxa5Yufu/N8V//Bu1f+CKK37MAlb/4uSV9qov80/XmdhxetAjG/gPwz5mNyl//6pTS\nAupBBpufew5n734LHX/4A2IbNp5Y+1RUhMAll6DkA+9H8fz5ySk5JW/Y9X3oHo07dNgsKdJ6UnmR\n7j+3tp4oOXLs2MAbHRzM+Dea4clvwVrHj6AByVG03pQBCA3yOW0AamGOrtlBTU2NXV2LpnPNGgDW\nlNdIoS7yT9HUKRi9ehUOX78IsY2bcPi661H529+cVCdNPdgHMyO2YQM6Vj6MsU/+GW2pX7Z+P4rf\nfQlKPvABFF85H56RI+0NtICw6/tARKCRIwftmuNxcDgM43gYfPwY+HgYRq9/ciwG7uwER6NANApO\nvWIxcGf0xPVEPDlamzDAhgEYiTTvOXnN4wE8BHi8ySlWjydZ8448yTXMHkqeHEGe5Of+IlBREajI\nD/j9yTp5RUXmn/0n/lxUBPL70QWAfDJSIxlRpKcOyWSsNxXoI9Eyi9RuZ+be2Wkr0k+XWkYgELCz\ne5EYx48j+vwLABGKr7jCsn7VhTX4zjwTo/7wKEIfuRldTU049KGrUfm736JoanJQXD1YT+LAAXSs\nWo3wyoeR2Lmz+7p/3oUoveEGlFz1nrRFVJX847TvA/l8WSV20jEMQ8zaOhlRpMFc1L/D3M3Zk7J+\ndnC2AkhXI83W0TMAaGxstLN7kUSf+QcQi8FfWwvvqFGW9asurMM3aRJG/fExFF0wA4m338bhq69B\nbPPLANSDVXBXFyJPPYXQJz+F/bPn4ui99yGxcyc8Y8dg2B2fQeih5Ri9ehWCN1yvyZmN6PdBBpI8\nSB5BA4BlAO4BsBTo3tnZnZyZI2bLANzKzG3M3Na7cJ+5EeCR1KYBu5BydIQkOtevBwAUz7du9AxQ\nF1bjrazEqEceRuuSTyO6fj0OX38Dyr//PUy6aJ7dobmarje3o2PlSnSsfhTGoUPJiz4fit97FUoX\nLULxZZeCfD5MDA12xYiSD/TnkgwkeRC7SSCFmWDtQHK686SjnsyNBKsAzOqZgBHRXUiuOysDgAyO\nh9KTBCyGDQP7Z82GcfAgxqz5O4pqzrE7JCXPcFcX2u6+Bx0rHwYADP/cv2P4f/2nmOkEN2CEw4g8\n+SQ6fv8wYptOHDPkmzoVpTctQul118E7erSNESqKAjecJGAl+U7QmpubUV1dnbfnO43Yq6/i0Hve\nC8+4cRhXt9HSI0vUhX0wM8IP/QztX/s6YBgovuo9KP/B9/VoqCHAzOja/DLCK1ci8qfHweZZglRa\nipIPfRClN94If+2sPr9j+n2QgXqQgUUeXLGL0zUE87tl13FE15nTm1dcbvl5curCPogIwxbfCt/Z\nZ+Hwkk+1LwPaAAAgAElEQVSj829P4dB734/yB38C/3nn2h2eo0gcPoyORx9Dx8qHEX/jje7r/tpa\nlN60CCUf/GBGpQL0+yAD9SADSR50BM1Epzit5dDV1yK2aRMqfrYCJe99r93hKDYQ37EToVtvRbz5\ndSAQwMgv/zeCn/iEHgDdD5xIIPrMPxBeuRKdf1/TfSi5Z9QolC68DqU3LkLRtGk2R6koygBk9ENO\nF39YREtLi90hiME4cgSx+vpkIcx3vtPy/tWFDPYV+TDmySdQevPNQDSK9i9+Ca23/CsSqQXtSjfx\n3btxdNn92D/nQoQ+/gl0/uWvySni+fNR8fOHMK5uI0Z+6b+zSs70+yAD9SADSR50itMiwua6EAXo\nfPZZwDAQmDfPlkOV1YUMwuEwaNIklC+7F8XvvBhH7rwLnU/9HQc2bETZV/8XJddeU9CjaUYkgs6/\n/g3h369E7IUXuq97J09G8MZFKL1+Ibzjxg25H/0+yEA9yECSB53iNNEpTuto/ff/QGT1aoz40hcx\n/Lbb7A5HEUL87bfRdtdSRP/xLAAgcMUVKPvm1+E77TSbI7MOZkasrh4dq1Yh8vgT4GPHAABUXIzi\nD3wAwZsWwT93bkEnroriAnQX52DId4IWCoVQWdnfGe+FARsG9s+YCSMUwpin16HorLMsj0FdyCCd\nB2ZGxyOPoP1/vgo+ehQoDmD4kiUY9pnb8302nq0k9u5Dx6OPouORVYjvOFGyseiCCxBcdANKPvyh\nvBWR1e+DDNSDDCzyoGvQJCFpXttOurZsgREKwTtxInw2LWZWFzJI54GIEFy0CGOfXoeSqz8MdEZx\n7AcP4MAl70b44YfB5qJ4N2AcPYqOVatx+CMfxf45c3H0vmWI79iRrPB/+6cx5pn1GPPk4wh+7Oa8\nVvjX74MM1IMMJHnQETSTfI+gGYYBjxbkxNHvfR/Hvv0dBD92M8ruu9eWGNSFDDLxEN1Uh/avfAVd\nrySPX/GecTqG33EHShdeB/L7rQgzpxgdHehcswaRx59A59PPANFo8gO/HyULFqB00Q0IXPIuSw9r\n1u+DDNSDDCzyoHXQJBGNRlFSUmJ3GLbTuf5pAEDg8stsi0FdyCATD4HZtRj95BOI/OGPOPq97yOx\ncyfa7rwLx77/AwQ/8XGU3rgIXuHTQsaRI+h85hl0PvV3dK5dB45Ekh8QwT/vQpR88IMo/dAH4Skv\ntyU+/T7IQD3IQJIHHUEzyfcIWn19PWbNmpW35zsBo60N+95xPuD1YvxrW2xbU6QuZDBYD5xIIPL4\n4zj2gx8ivm1b8qLfj5L3vw/BG2+E/8K5lo489QUzI/7GG+hctx6da9citqkOMIzuz/2zZqHkwx9C\nyfvfl5NdmENFvw8yUA8ysMiDbhIYDPlO0CKRiJis3C4if/krWm9dDP+FczH60dX2xaEuRJCtB04k\nEH36GRz/zf8hun49YP4M81RWovi970XJ+65CYM4ckEWOmRnx7dsRe+FFRF98EdEXXzpxODkA+HwI\nXHghiq+4HMXve6+4Xan6fZCBepCBRR50ilMSgUDA7hBsp9Msn1B8ySW2xqEuZJCtB/J6UTz/ChTP\nvwLxlhZ0/H4lOh5/AomdO9Hx29+i47e/Bfx++GdegMBFF8E/YwaKzjkHnvHjhlyegqNRxHfvRvyN\nbYg1NqKrcQtiWxrBbe0n3ecZPRrFl74bxfPnI3DJu/K6yH+o6PdBBupBBpI86AiaSb5H0BoaGjBj\nxoy8Pd8J7L/oYiR2v4XRTz4O/wUX2BaHupBBLj0wM+JNWxF58kl0rn8aXa+91j2yloLKRqJo6jR4\nx4+Dd/x4eMaNg2f4cFBpSXK0zeMFurrAXTFwZxRGayuMUAjG4cNIHDiA+M5dSLz99inPBZIJWWDe\nhQjMmwf/RfPgmzLFMbXK9PsgA/UgA4s86AiaJCZNmmR3CLYS37ULid1vJX9JTp9uayyF7kIKufRA\nRCg6twZF59ZgxNK7YBw5guiGDYi++BK6XmtC19at4LY2xIb6P2FeL7yTToOvagr87zgPRdPfgaJ3\nTId3wnjHJGS90e+DDNSDDCR5yCpBI6IZAKrMFwDsALCDmRtyFZjbKPQChNFnnwMABC66GOT12hpL\nobuQQj49eMrLUXLVVSi56ioAyRE248ABxHfuRGL/fiT27Udi/wFwRxjc0ZF8GQzyF4GKigB/AN6K\ncnhGjYKnsgLeUaPhnTwZvtMnObK8R3/o90EG6kEGkjxknKCZSdkSAIv7uQcAlgO4n5l3DTU4N9Hc\n3Izq6mq7w7CNzueSCVrxu+1dfwaoCylY6YGI4B03TsSuSWno90EG6kEGkjxkVI2NiB4EUI9kgkYA\n2gHsBPCy+dppXiMAtwHYTkQ/yUfATiXo4mNqBoLjcUSfTx72HLjkXTZHU9guJKEeZKAeZKAeZCDJ\nQ7+bBIhoBIDNSE5l3g9gDYA6Zm7v4/6RAGoBLABwJ4A3Acxi5mM5jjvn6GHp+SNWvxmHPvRheCef\ngXHP/9PucBRFURTFTnJyFudmAGsBlDPz3cy8rq/kDACYud28ZymAcgBPm88oeCSd72U1nc/KKK+R\nopBdSEI9yEA9yEA9yECShz4TNCK6E8AyZr6tv6SsL8xkbQmA+4noX4cSpBsIh8N2h2AbUXP9mYTp\nTaCwXUhCPchAPchAPchAkgetg2aiU5z5wTh+HPvOfQdgGBj/aiM8I0faHZKiKIqi2ElOpjiz751o\nW76e7URCoZDdIdhC9IUXgXgcRTNmiEnOCtWFNNSDDNSDDNSDDCR5yDpBI6IRRDSjj9etOFEjTYGs\neW0riabWnwkor5GiUF1IQz3IQD3IQD3IQJKHrKY4zbIbfdZDS8HM9lYkHQT5nuI0DAMeT94GLMVy\n4NLLEd+2DaMeW43A3Ll2hwOgcF1IQz3IQD3IQD3IwCIP+ZniJKL7cKIeGiFZA633a9CbCtxONBq1\nOwTLSRw8iPi2baCSElvP3uxNIbqQiHqQgXqQgXqQgSQP2aSJiwFsBzCFmT3MPDXNqwIZZoiFQlNT\nk90hWE70hWRxWv+c2aKOxylEFxJRDzJQDzJQDzKQ5CHbcbzlzLxzgHuWZvlsV1JTU2N3CJbTfXrA\nxRfbHMnJFKILiagHGagHGagHGUjykE2CthbA7Azu0/odPQgEAnaHYDmpEbTAxRfZHMnJFKILiagH\nGagHGagHGUjykE2CdjeAK4nom+ZRUH2xLMuYXEljY6PdIVhKfM8eJHbtBg0fjqLzzrM7nJMoNBdS\nUQ8yUA8yUA8ykOTBN9gGzLyDiO5FMgFbSkRtAFp73VaRi+DcxKRJk+wOwVK6pzcvnAvyDfo/s7xS\naC6koh5koB5koB5kIMnDoH9zmjXO7ku9RfLMzfI0t+oUZw8qKyvtDsFSuhO0i2RNbwKF50Iq6kEG\n6kEG6kEGkjxkM8W5FMnE7H4AVwKYleZ1Q64CdAvNzc12h2AZzIzYCzI3CACF5UIy6kEG6kEG6kEG\nkjxkM/dUheQuzrv7uedlItJaaD0IBoN2h2AZiV27kNi7F57ycvjOqbY7nFMoJBeSUQ8yUA8yUA8y\nkOQhmxG0zQDaMrjvzCye7VokzWvnm+gLLwIA/PPmgQRWxi4kF5JRDzJQDzJQDzKQ5CGb3573AVhM\nRGcMcN+OLJ59CkS0mIgWmq+7smi/KhdxDBVJ53vlm+jzzwOQV14jRSG5kIx6kIF6kIF6kIEkD9lM\ncZYheZzTDjP5qcOpI2pTzPuGBBEtBgBmXm2+n0lEy5l5SYbtZwJYONQ4ckE4HLY7BEtg5u4RNKkJ\nWqG4kI56kIF6kIF6kIEkD4M+LJ2IDCR3aKaOcurzAUM9LJ2I6pl5Vq9r25l5Sobt5wNYw8wDHjuV\n78PSC4WuN97AwcuugGfMGIzbXAciPfFLURRFUXqQ0S/GbAtU7URyLVpfTAEwI8tnAwCIqAzAzDQf\ntRHRfGZeO0D7hcy8WkqCEAqFRG3fzRcnjne6SGxyVigupKMeZKAeZKAeZCDJQ7YJ2nxm3tXfDeZI\n21CoQvrNCK1IJm59Jmjm1GZ/CaTltLS0iJGeT7qPdxJY/yxFobiQjnqQgXqQgXqQgSQP2WwSuH+g\n5Mzk+iye3ZMKnHpCAZBM2gb6t1fFzANuUjA3INQRUd2+ffu6Fwe2tLR010IJhUJoaGiAYRiIRCKo\nr69HJBKBYRhoaGhAKBQCkKyd0l/78847b0jth9q/Je137+5ef/b2uHFi4582bZrMf38F1p6ZHR2/\nW9pPnz7d0fG7pX1FRYWj43dL+4qKirz3nyl9rkEjohHMfDTjJ/XXSRbPMtePLe+93szcmLCDmZf2\n0W5halOB+Z4lrEGLRCIoKSnJ2/Ml0PVaEw4ueA+8Eydi7IYXxU5xFoILJ6AeZKAeZKAeZGCRh4x+\nOfY3graIiB4echTJZ2R7skC6Mz3LAIT66KsKOSrvkWuamprsDiHvRDduBAD4584Vm5wBheHCCagH\nGagHGagHGUjy0OcaNGZ+iIgWENEmAHcx89ODeTARXQ5gOYC1zPyzLGKrQ/pSHRXoe33ZfABl5uhb\nz1juAtDGzCuyiCMn1NTU2NW1ZcTMBC0wd47NkfRPIbhwAupBBupBBupBBpI89LtJgJmvJ6LlANYR\nUR2AdQA2IZkgtaamLYloBJKJ00wAs5GsPVYF4CFm/nQ2gTFzGxHtIKIyZu65WaCsrx2c6RIwIlrG\nzPdnE0MuCQQCdoeQV5j5xAjanNk2R9M/bnfhFNSDDNSDDNSDDCR5GHCTgFkU9gYAU5E8KH0VgO0A\njhBRgogSAI6Y11aZ91QCuIGZbxtifMsA3JN6Y+7OXNvjfRURrTJLcoimsbHR7hDySuKtt2DsP5A8\nf3PaNLvD6Re3u3AK6kEG6kEG6kEGkjxktIuTmVczcwWSidp6JBe49X61IznCdj0zVzDzo0MNzhwR\n205E84loIZLlPXqeIlCF5LTmKWvVzDarzD+v6j3taTWSzvfKB7GNmwAkR88krz8D3O/CKagHGagH\nGagHGUjyMKg6aObuyNSxSyNxIjFqZeb2HMeW6rPPdWPmVGd5P5/1W8zWSqTUVckXTpneBNzvwimo\nBxmoBxmoBxlI8pBNHTQAADO3M/NO85WX5MxNpOqiuJXYBnODwJy5NkcyMG534RTUgwzUgwzUgwwk\necg6QVMGRzAYtDuEvJEIhRDfvh1UXIyid5xndzgD4mYXTkI9yEA9yEA9yECSB03QLELSvHauSZXX\nKJo5E1RUZHM0A+NmF05CPchAPchAPchAkgdN0CwidQyEG4lucEb9sxRuduEk1IMM1IMM1IMMJHnQ\nBM0iwuGw3SHkjdimEzs4nYCbXTgJ9SAD9SAD9SADSR76PIuz0Mj3WZxuxQiHse+ccwEA47e+Bo+g\n+XtFURRFEciQz+IcWu9E2/L1bCeSOvXebcTqNwOJBIrOO9cxyZlbXTgN9SAD9SAD9SADSR6GlKAR\n0WQimpHmdR2SRWQVE0nz2rmke3pztjOmNwH3unAa6kEG6kEG6kEGkjwMqlBtCiJ6EMDiHMfiaqZP\nn253CHmhu/7ZXPn1z1K41YXTUA8yUA8yUA8ykORh0CNoRHQfgCU4cbzTzjQvLVzbi2g0ancIOYe7\nuhDbvBmAczYIAO504UTUgwzUgwzUgwwkechminMhkoejzzLP3Jya5lWBDBfBFQpNTU12h5Bzul59\nFRyJwFdVBe+oUXaHkzFudOFE1IMM1IMM1IMMJHnIJkGrAHAvM788wH1Ls3i2a6mpqbE7hJyTqn/m\nd0j9sxRudOFE1IMM1IMM1IMMJHnIJkGrAzAlg/uWZ/Fs1xIIBOwOIeecqH/mrATNjS6ciHqQgXqQ\ngXqQgSQP2SRoSwEsIqLLBrhvZxbPdi2NjY12h5BTmBmxjckELeCg9WeA+1w4FfUgA/UgA/UgA0ke\nstnFOQvJUbS1RLQWwA4A9b3umQKgbIixuQpJ53vlgvibb8JobYVn7Bh4zzjD7nAGhdtcOBX1IAP1\nIAP1IANJHrJJ0FYAYCQ3AVxp/lkZgMrKSrtDyCknRs/mgMhZ+0Hc5sKpqAcZqAcZqAcZSPKQbaHa\nnQDWmq91aV67chGcm2hubrY7hJzSvUHAYevPAPe5cCrqQQbqQQbqQQaSPGRVqBbAfGbe1d8NRGRk\n+WxXEnTIMUiZEtvo3ATNbS6cinqQgXqQgXqQgSQP2YygLRkoOTO5PotnuxZJ89pDJbF3HxItLaDh\nw1F0TrXd4QwaN7lwMupBBupBBupBBpI8DDpBY+aHel8joslp7ns0u5DciaTzvYZKdJM5elY7C+T1\n2hzN4HGTCyejHmSgHmSgHmQgyUPWh6UT0eVEtImIEgC2E1GCiDYS0TU5jM81hMNhu0PIGd3nbzpw\nehNwlwsnox5koB5koB5kIMkDMQ9+E2aPw9LTbd9jAMuZ+fYhxmYptbW1XFdXZ3cYjuDA/AWIb92K\nUY+uQuDCC+0OR1EURVGcREalD7I5LP1WJA9LfxTJdWazkKx7Nst8/xiA24jolsE+282EQiG7Q8gJ\nRns74s3NgN8P/4wZdoeTFW5x4XTUgwzUgwzUgwwkechminMxkhsFbmDmR5n5ZWbeaf7zUWa+HsBt\n5ksxkTSvPRRim+oAZvjPPx9UXGx3OFnhFhdORz3IQD3IQD3IQJKHbBK0mek2CvSEmVcAmJldSO5k\n+vTpdoeQE6Ld528663innrjFhdNRDzJQDzJQDzKQ5CGbBO3lgTYCENG1AF7OLiR3Eo1G7Q4hJzh9\ngwDgHhdORz3IQD3IQD3IQJKHbBK0FQBWE9E3iWgGEY0AACIaYb6/F8AqACtzGajTaWpqsjuEIcOd\nnYi98gpABH/tLLvDyRo3uHAD6kEG6kEG6kEGkjxku4tzFYDrkP4cTgKwlpkXDDE2S8n3Ls5IJIKS\nkpK8Pd8Kohs24PC1C+E7pxpj166xO5yscYMLN6AeZKAeZKAeZGCRh/zs4gSAHhsBjpodpV7tSG4g\ncFRyZgWBQMDuEIaMG6Y3AXe4cAPqQQbqQQbqQQaSPGRdqJaZVzBzOYByJEtslDNzxUAbCAqVxsZG\nu0MYMt0bBOY6O0Fzgws3oB5koB5koB5kIMlD1glaCmZuN0tstPe8TkSXD/XZbkLS+V7ZwIlEssQG\ngMBsZydoTnfhFtSDDNSDDNSDDCR5GHKC1g+r8vhsx1FZWWl3CEOia2sz+NgxeCdNgnfCeLvDGRJO\nd+EW1IMM1IMM1IMMJHnw9fWBWSpjEYClzLyrx/V7M3huFYCyIUfnIpqbm1FdXW13GFkT665/5uzR\nM8D5LtyCepCBepCBepCBJA99JmgAfgZgJIAdAO7pcX0pkrs3+9qFkPps8NtDXUwwGLQ7hCER27AB\nABBwcIHaFE534RbUgwzUgwzUgwwkeegvQVtsvpan+exlAGv7aTsFwLVDiKsbIloMoNV8W8XM92fY\nJjWCNwXAMmbekYt4skXSvPZgYWZENyZ3cDp9gwDgbBduQj3IQD3IQD3IQJKHPhM0Zl4NYHUfHy/s\nOe2ZDiJq7e/zTDATrVQsIKKZRLScmZf00+aunkkcES0EsAbJRM02WlpaRIkfDIm33oJx4CA85eXw\nTZ1qdzhDxsku3IR6kIF6kIF6kIEkD9meJJBJ8nV9Fs/uzRLzXE8AADNvBjB/oDZmUpZiM4AqIrJ1\nTVw4HLaz+yERNeuf+efMBlFG9fVE42QXbkI9yEA9yEA9yECSh0EnaMx8GzMf7X3dPOppRI/71g0l\nMDOhSnfgehsR9ZekXZkacTOpAtDGzG1DiWeoSFl0mA2x1PSmCzYIAM524SbUgwzUgwzUgwwkeRh0\ngkZEn+/jo0UAdhFRiIj+a2hhATATqzTXW5E+cQMApFlrthS5Gc0bEqFQyO4Qsia2MbmD0+knCKRw\nsgs3oR5koB5koB5kIMlDNlOcy9JdZOaHmLkCwGwAnyaibw4pMqAC6adS2wAMWKiEiBYS0XIkNwik\n3dBARIuJqI6I6vbt24eWlhYAyTno5uZmAElZDQ0NMAwDkUgE9fX1iEQiMAwDDQ0N3TKbm5v7bf/W\nW28Nqf1Q+8+2/eE3tiG+fTuopATxqVMcF3+69rt27XJ0/G5pv3XrVkfH75b2qfudGr9b2m/bts3R\n8bul/bZt2/Lef6YM+rB0IjKYud/EjojuBHA3M2dd8c2cxlzOzFN6XV8FYAczL83wOXcBqBzo/nwf\nlm4YBjyefNYFzg+Rv/wVrbcuRuDiizHqkZV2h5MTnOrCbagHGagHGagHGVjkIaPF3P2V2YC5pqyq\n10OZiM7vo4MK8/7FGQY5EBVprpUByHgMkpnvJ6IjRLSmr5E0K4hGoygpKbGr+6zpLq/hgvpnKZzq\nwm2oBxmoBxmoBxlI8jBQmnglkqU2NgOoB1CHZGKWet/7tQbJumlTADwyxNjqkP40ggqz/1Mwy3Ac\nSfPRDiT/LrbR1NRkZ/dZ47YNAoBzXbgN9SAD9SAD9SADSR76HUFj5kcBPAp01yT7KZInBOzso0kb\nksnQJmb+1lACY+Y2ItpBRGW9dmCW9TMSVoFkGZDeVAHYPpR4hkpNTY2d3WeFEQ6j69XXAK8X/ll9\n7stwHE504UbUgwzUgwzUgwwkeeg3QesJM68goh0AnmJmq6qVLkPymKmlQHKEDD1OMCCiKvOeW5m5\njZnXEtFJI2VmG2DoI3pDIhAI2Nl9VsTqNwOJBIrOnw6PoOMvhooTXbgR9SAD9SAD9SADSR4GtRLO\nHLl6KE+xpOtvBYDtRDTfLD47v9cpAlVIFq7tuVbtXiK6K/UCsATALLvroDU2NtrZfVa4cXoTcKYL\nN6IeZKAeZKAeZCDJQ8YjaCmY+bZM7iOiy5l5/eBDOqW/dFOWqc/WAijvda0NwIDndVqNlKMjBkN3\n/TMXnL/ZEye6cCPqQQbqQQbqQQaSPORzL+mqPD7bcVRWZl1xxBa4qwuxzcm9GP7Z7tnBCTjPhVtR\nDzJQDzJQDzKQ5KHPETQiuhbJ0wGW9jwYnYjuzeC5VUi/A7NgaW5uFnWExEB0bXkVHInAN2UKvKNG\n2R1OTnGaC7eiHmSgHmSgHmQgyUN/U5w/AzASyV2Z9/S4vhTJnZx9FVpLfTa4CrguJ+iwRfbd9c9c\nNr0JOM+FW1EPMlAPMlAPMpDkob8EbbH5Wp7ms5fRYzdlGqYAuHYIcbkOSfPamdC9QcBl05uA81y4\nFfUgA/UgA/UgA0ke+kzQmHk1kkVq07Gw57RnOogo3TmaBUtLS4so8f3BhuHaDQKAs1y4GfUgA/Ug\nA/UgA0kestkksALpDzHvzfVZPNu1hMNhu0PImPj27TCOHIFn7Bh4Tz/d7nByjpNcuBn1IAP1IAP1\nIANJHgadoDHzbcx8NN1nRDS5x33rsg/LfUhZdJgJsQ3J6c3AnDkgyuhMV0fhJBduRj3IQD3IQD3I\nQJKHQSdoRHRvj9fnzWu3ElECyaKyCSL6Sc4jdTihUMbnu9tOdENqg8BcmyPJD05y4WbUgwzUgwzU\ngwwkechminMKkjs5rwewg4jOxImNBHcDmA1gDhF9MzchuoOWlha7Q8iY2Kbk+jM3bhAAnOXCzagH\nGagHGagHGUjyQMyDq4ZBRHcCuJKZF/R4vwzAEWauNK9VIXlm57Qcx5s3amtrua6uLm/PNwwDHk8+\n6wLnhsTefdg/ew5o+HCMf20LyOu1O6Sc4xQXbkc9yEA9yEA9yMAiDxmtHcomilT5jRRXIlnzrPtI\nJmbegWSxWsUkGo3aHUJGRDduAAD4Z9e6MjkDnOPC7agHGagHGagHGUjykE2CVtWrxMZ8859rUheI\n6AIka6UpJk1NTXaHkBHd5TVcOr0JOMeF21EPMlAPMlAPMpDkIZsEbScRnQ8ARHRd6mKvg9HvA/DT\nIcbmKmpqauwOISPcfIJACqe4cDvqQQbqQQbqQQaSPGSToN0NYD0RPQjgIfPa/QBARJcT0SYkR9U2\n5SZEdxAIBOwOYUCMtjbEm18H/H74zz/f7nDyhhNcFALqQQbqQQbqQQaSPGRTB201koeoE5LHPS1h\n5nuI6AokTx6YAqAdwPq+n1J4NDY22h3CgMTq6gFm+M8/H1RcbHc4ecMJLgoB9SAD9SAD9SADSR76\nO4uzT5h5LXqdxWkWpq3IRVBuRMrREf1RCNObgDNcFALqQQbqQQbqQQaSPORkL2nPEwSU9FRWVtod\nwoB0bxCY4+4EzQkuCgH1IAP1IAP1IANJHrJO0FLrzXqdILCRiK7JYXyuobm52e4Q+oU7OxF75RWA\nCP7aWXaHk1ekuygU1IMM1IMM1IMMJHnIKkEzNwisATALybVoqVctgNV61NOpBINBu0Pol1hDAxCL\nwVddDc/IkXaHk1ekuygU1IMM1IMM1IMMJHkY9Bo0IroVwBIkNwQ8DGAHgDYAZUgWp70RwG1EVM/M\nP89hrI5G0rx2OrqnN12+/gyQ76JQUA8yUA8yUA8ykOQh25MEljDzDcz8KDO/zMw7zX8+yszXA7jN\nfCkmks73Skf3BoE57i1Qm0K6i0JBPchAPchAPchAkodsErSZzPxQfzcw8woAM7MLyZ2Ew2G7Q+gT\nTiSSJTYABGa7fwRNsotCQj3IQD3IQD3IQJKHbBK0lwfaCEBE10KPejqJ6upqu0Pok66tzeBjx+Cd\nNAneCePtDifvSHZRSKgHGagHGagHGUjykE2CtgLJjQDfJKIZRDQCAIhohPn+XgCrAKzMZaBOJxQK\n2R1Cn8S6pzfdP3oGyHZRSKgHGagHGagHGUjykM1JAisAPIbkkU/1AI6YpTaOmO+XAljHzN/OZaBO\nR9K8dm9iG5IJWiFsEABkuygk1IMM1IMM1IMMJHkgZs6uIdFiAMsA9KzJ0AZg6UBr1CRSW1vLdXV1\neXu+YRjweHJSFzinMDP2z6qFceAgxjyzHkXTptkdUt6R6qLQUA8yUA8yUA8ysMgDZXJTxlGYU5gj\nUtk5h1AAAB+JSURBVO+ZeQUzlwMoR7IeWjkzVzgxObOCaDRqdwhpSezeDePAQXgqKuCbOtXucCxB\nqotCQz3IQD3IQD3IQJKHARM0InqwxxTmEfPEgO5CtMzcbpbYaM9noE6nqanJ7hDSEt1worwGUUZJ\nveOR6qLQUA8yUA8yUA8ykOSh3wSNiDYhWfeMer2WENEb+Q/PPdTU1NgdQloKbYMAINdFoaEeZKAe\nZKAeZCDJQ58nCZgnBqQOZVyL5IkBQPK0gPkAphDRN5n5C/kN0R0EAgG7Q0hL9KUNAIDAhXNtjsQ6\npLooNNSDDNSDDNSDDCR56G8E7XokpzWnMPMCZr7NfC0AUAGgAckjn5QMaGxstDuEU0gcOIDErl2g\nYBBF555rdziWIdFFIaIeZKAeZKAeZCDJQ38JWi2AW5l5Z+8PmLkNwK1Inr+pZICk871SdK8/q50F\n8g36WFbHItFFIaIeZKAeZKAeZCDJQ38JWhmAzX19yMybAVDPnZ1K31RWVtodwikU4vozQKaLQkQ9\nyEA9yEA9yECSh4F2cbZm8IyK3heIaKS581MxaW5utjuEUyjE9WeATBeFiHqQgXqQgXqQgSQPA81r\nZVfFNpm05aRmg1kQN5UoVjHz/Rm2AU5sclhqTsvaRjAYtLP7UzDa2hBvbgb8fvhnzLA7HEuR5qJQ\nUQ8yUA8yUA8ykORhoATtISKqQ/KEgL5YSES9P1+A7JO7blKJFjOvNt/PJKLlzNzn5gQiWmweR9Xz\nGfUApgw1nqEgaV4bAKKb6gBm+GecDyoutjscS5HmolBRDzJQDzJQDzKQ5GGgBO1689UXjORxT/li\nCTOnRsHAzJuJaH5fNxPRKZsWmHkFES0jovnMvDZfgQ5ES0uLKPGFuv4MkOeiUFEPMlAPMlAPMpDk\nYaA1aL0L1A7mNSTMZGtmmo/a+knSqgAsT5Oo7TA/s41wOGxn96dQqOvPAHkuChX1IAP1IAP1IANJ\nHgZK0BYys2ewLwA35CC2KqSfWm1F+sQttbN0Vpr1ZlU4UWjXFqqrq+3s/iSMSARdjY2AxwN/ba3d\n4ViOJBeFjHqQgXqQgXqQgSQPAyVo2U4J1mPoo2gVSL+LtA1An/tgzSStGyJaCGBHuulNIlpMRHVE\nVLdv3z60tLQASA5xpnZyhEIhNDQ0wDAMRCIR1NfXIxKJwDAMNDQ0IBQKAUju/Oiv/aFDh4bUfqj9\n92x//MUXgXgcXWeeiSOxmOX9291+7969jo7fLe03bdrk6Pjd0j4UCjk6fre0T7Vxavxuad/TRb76\nzxRiTr+Wn4huZeaHMn5S7tvPB7Ccmaf0ur4KyYRraQbPKAOwDsAVA+3irK2t5bq6umzDHZCGhgbM\nELJb8uh3v4dj3/kugrfcgrKv/o/d4ViOJBeFjHqQgXqQgXqQgUUeMhrA6nMEbSjJVS7am5xSYw3J\nArqhDNsvA3C93SU2AGD69Ol2h9BNrIDXnwGyXBQy6kEG6kEG6kEGkjwMNMVpJ3VIf5RUBfo54SAF\nEd0FYBkz27r2LEU0GrU7BAAAx2KI1dcDAPxzZtscjT1IcVHoqAcZqAcZqAcZSPIgNkEzR712pNmR\nWTZQuQyz9tnqnslZf+U5rKCpqcnO7rvp2vIquLMTvqlT4R01yu5wbEGKi0JHPchAPchAPchAkgex\nCZrJMgD3pN4Q0Uz02LhARFVEtKpnEmcmYnWp5IyIyuxOzgCgpqbG7hAAANFU/bO5hVf/LIUUF4WO\nepCBepCBepCBJA8DFaq1FbPI7GIzwSpD8qinnqcIVAGYj+S0ZxsRVQFYAwBEp6zBK7cg5D4JBAJ2\ndt9N9/qzuYW5/gyQ46LQUQ8yUA8yUA8ykORB+ggamHkFM69l5tW9z+E0r5enRsuYeQczUx8vWzcK\nNDY22tk9AIANA9FNmwAU9giaBBeKepCCepCBepCBJA/iEzS3IOHoiHjz6+D2dngnToTvtNPsDsc2\nJLhQ1IMU1IMM1IMMJHnQBM0iKiv7rK1rGdGNyenNQh49A2S4UNSDFNSDDNSDDCR50ATNIlKVhe2k\ne/1ZAR6Q3hMJLhT1IAX1IAP1IANJHjRBs4hgMGhr/8yM6IsvAQD88+bZGovd2O1CSaIeZKAeZKAe\nZCDJQ59HPRUa+T7qyW663ngDBy+7Ap4xYzBuc126Xa6KoiiKouSfoR31pOSW1EGqdhF94UUAQOCi\neQWfnNntQkmiHmSgHmSgHmQgyYMmaBYRDodt7b87QSvw6U3AfhdKEvUgA/UgA/UgA0kedIrTxM1T\nnMyM/dNnwGhtxdjnnoWv6ky7Q1IURVGUQkWnOCURCoVs6zv++uswWlvhGTcW3jMn2xaHFOx0oZxA\nPchAPchAPchAkgdN0CzCznnt1O7NwEUXFfz6M0DWGoNCRj3IQD3IQD3IQJIHTdAsYvr06bb1HX3h\nBQC6/iyFnS6UE6gHGagHGagHGUjyoAmaRUSjUVv6ZcNArHsETRM0wD4XysmoBxmoBxmoBxlI8qAJ\nmkU0NTXZ0m+8+XUYR47AO348vGecYUsM0rDLhXIy6kEG6kEG6kEGkjxogmYRNTU1tvQbfTFZXsOv\n68+6scuFcjLqQQbqQQbqQQaSPGiCZhGBQMCWfrvXn110oS39S8QuF8rJqAcZqAcZqAcZSPKgCZpF\nNDY2Wt4nGwaiL5nrz3SDQDd2uFBORT3IQD3IQD3IQJIHTdAsYtKkSZb32dW0FdzWDu/EifCefrrl\n/UvFDhfKqagHGagHGagHGUjyoAmaRVRWVlreZyy1/myenr/ZEztcKKeiHmSgHmSgHmQgyYMmaBbR\n3NxseZ/R558HoOU1emOHC+VU1IMM1IMM1IMMJHnQBM0igsGgpf1xV9eJEwTe+U5L+5aO1S6U9KgH\nGagHGagHGUjyoAmaRVg9rx1raAAfPw7flCnwTZxgad/SkbTGoJBRDzJQDzJQDzKQ5EETNIuw+nyv\n6HP/BAAELnmXpf06AUlnrRUy6kEG6kEG6kEGkjxogmYR4XDY0v6izz0HAAi8S6c3e2O1CyU96kEG\n6kEG6kEGkjwQM9sdgwhqa2u5rq7O7jBygnH8OPad+w7AMDD+tS3wjBhhd0iKoiiKoiTJqKyCjqBZ\nRCgUsqyv6IsvAfE4imbM0OQsDVa6UPpGPchAPchAPchAkgdN0CzCynnt1PqzYl1/lhZJawwKGfUg\nA/UgA/UgA0kedIrTJN9TnIZhwOOxJh8+cPkViL/+BkY9ugqBC/UMzt5Y6ULpG/UgA/UgA/UgA4s8\n6BSnJKLRqCX9JPbvR/z1N0AlJfDPnGlJn07DKhdK/6gHGagHGagHGUjyoAmaRTQ1NVnST/SfydMD\n/PMuBPn9lvTpNKxyofSPepCBepCBepCBJA+aoFlETU2NJf10ptafvUvXn/WFVS6U/lEPMlAPMlAP\nMpDkQRM0iwgEAnnvg5kR/afWPxsIK1woA6MeZKAeZKAeZCDJgyZoFtHY2Jj3PuLNzTD2H4Bn9Gj4\nqqvz3p9TscKFMjDqQQbqQQbqQQaSPGiCZhFWnO/V+fQzAIDiS98Noow2iRQkks5aK2TUgwzUgwzU\ngwwkedAEzSIqKyvz3kfn+qcBAIHLLst7X07GChfKwKgHGagHGagHGUjyID5BI6LFRLTQfN01iHYz\niWhVPmMbDM3NzXl9vnH8OGKbNgEejxaoHYB8u1AyQz3IQD3IQD3IQJIHn90B9AcRLQYAZl5tvp9J\nRMuZeUk/bWYCWGS+rcp/lJkRDAbz+vzoP/8JxOPw19bCU16e176cTr5dKJmhHmSgHmSgHmQgyYPo\nBA3AEmaelXrDzJuJaH5/DZh5M4DNZqLW771Wku957c71zwAAApddmtd+3ICkNQaFjHqQgXqQgXqQ\ngSQPYqc4iagMQLpS+G0DJWkSyef5XsyM6NPJ9WfFl+v6s4GQdNZaIaMeZKAeZKAeZCDJg9gEDcnp\nybY011uRPnETTTgcztuz42+8gcTevfCMGoWi887LWz9uIZ8ulMxRDzJQDzJQDzKQ5EFyglaBZDLW\nmzYAOdlmYW5AqCOiun379nVnzi0tLd0LBUOhEBoaGmAYBiKRCOrr6xGJRGAYBhoaGhAKhQAkFxb2\n1/6ss84aUvv++u80R88Sc2aDPJ68xO+m9meccYaj43dL+87OTkfH75b21dXVjo7fLe1Ta5+cGr9b\n2geDwbz3nynEzBnfbCXmNOZyZp7S6/oqADuYeekA7WcCeKjnGrb+qK2t5bq6uqzjHYhQKJS37buH\nb7gR0eefR/lPfoTSD384L324iXy6UDJHPchAPchAPcjAIg8ZFSqVPIIGJEfRelMGIGR1IEMlX/Pa\nxrFjiG7cCHg8CLzrkrz04TYkrTEoZNSDDNSDDNSDDCR5kJyg1SGZjPWmAsBmi2MZMtOnT8/Lczuf\nfgbo6oJ/di28FVpeIxPy5UIZHOpBBupBBupBBpI8iE3QmLkNwA5zN2dPyph5rR0xDYVoNJqX53b+\n/e8AgOIFC/LyfDeSLxfK4FAPMlAPMlAPMpDkQWyCZrIMwD2pN+a6srU93lcR0ao0SRyQfnrUNpqa\nmnL+TO7q6j7eqeQ9mqBlSj5cKINHPchAPchAPchAkgfRhWqZeYW503I+ktOdVb1OEahCshhtBcyS\nHERUBWCJeX0mES0HUM/MK6yN/mRqampy/szoSxvA7e3wnXUWfGeemfPnu5V8uFAGj3qQwf9v7/5i\n8rrvO45/vsQ2xtgpJq1T9a44lSyvjVrjStXSLduCu10k09rgRVq3dhcLLPunXRllu9ifGw/fpqkE\nlfZHlaYteOmm9Y8myNSLaY0XIBZVCVJnMs+LMjnBxskwxXb47eL8Dn788DwYeM6fL5z3S0I2POcc\nfvbHfs6X379DDj6Qgw+ecnBdoElJkbbBaxOSDtd9bV7Shis8y9De3p75Ne8Ob57K/Nq7WR5ZYOvI\nwQdy8IEcfPCUg/chzl1jZmYm0+uFEPSTf0kKtA7mn21J1llge8jBB3LwgRx88JQDBVpBsn6+153Z\nN/TBW2+p7cgR7f3MpzO99m7n6VlrVUYOPpCDD+Tgg6ccKNAKkvXGd8vp8OapPlkbMW4Fm0H6QA4+\nkIMP5OCDpxy4sxckffRDVhje3L6ss8D2kIMP5OADOfjgKQcKtIKkz1nLwp3Ll3X7hz+UdXaq/fOP\nZXbdqsgyC2wfOfhADj6Qgw+ecqBAK0iW49rL3/6OpGT1pu3fn9l1q8LTHIMqIwcfyMEHcvDBUw4U\naAXJ8vley//8bUlSx1NPZnbNKvH0rLUqIwcfyMEHcvDBUw4UaAVZWlrK5Dp33nwzGd48dEj7H388\nk2tWTVZZoDXk4AM5+EAOPnjKgQKtIMeOHcvkOneHN7/A8OY2ZZUFWkMOPpCDD+Tgg6ccKNAKsrCw\nkMl1GN5sXVZZoDXk4AM5+EAOPnjKgQKtIFmMa9++NK/bP/qR7MEHtf9nfyaDVlWTpzkGVUYOPpCD\nD+Tgg6ccKNAK8uijj7Z8jeVvfUuS1PGLX5A5el7YTpNFFmgdOfhADj6Qgw+ecqBAK8jKykpL54fV\nVd08/w+SpI6nn86iSZXVahbIBjn4QA4+kIMPnnKgQCvI7OxsS+ffunBBH1y5ogc+9jG1P/bTGbWq\nmlrNAtkgBx/IwQdy8MFTDhRoBTl+/HhL598cOy9JOtD/NM/ebFGrWSAb5OADOfhADj54yoE7fUHa\nW5gztnrz5tr2Gh39/Vk1qbJayQLZIQcfyMEHcvDBUw4UaAWZmZnZ9rk/+e73FJaWtK+3V3uP9mTY\nqmpqJQtkhxx8IAcfyMEHTzlQoBWkled73XxpTJJ04DS9Z1nw9Ky1KiMHH8jBB3LwwVMOFkIouw0u\nnDx5MkxOTpbdjHVu/+clXX3852T79+uj05Nq+9CHym4SAADYPtvMQfSgFWRubm5b5y1985uSpI4v\nfZHiLCPbzQLZIgcfyMEHcvDBUw4UaAXp7Ozc8jmrN2+uDW92fuU3sm5SZW0nC2SPHHwgBx/IwQdP\nOVCgFWQ749rL//hPCu+9p70nTmjfpz6VQ6uqydMcgyojBx/IwQdy8MFTDhRoBdnq871CCPq/v/wr\nSdLBr34ljyZVlqdnrVUZOfhADj6Qgw+ecqBAK8jS0tKWjl/5/vd154031PbwEXU89WROraqmrWaB\nfJCDD+TgAzn44CkHVnFG3lZxvtN/Wrd+8Koe/OM/0qHfea7s5gAAgGywitOThYWFTR97a/p13frB\nq7JDh9T561/OsVXVtJUskB9y8IEcfCAHHzzlQIFWkK2Ma7//wguSkpWbbQ8+mFeTKsvTHIMqIwcf\nyMEHcvDBUw4McUZ5D3Gurq6qbRMPOV95bVLv/soXZR0devjf/00PHDmSW5uqarNZIF/k4AM5+EAO\nPhSUA0OcnqysrNz3mBCC3jt7VpJ08NnfojjLyWayQP7IwQdy8IEcfPCUAwVaQWZnZ+97zMor/6pb\nF/5DbYcP6+Bzv11Aq6ppM1kgf+TgAzn4QA4+eMqBAq0gx48f3/D1sLKiG3/255Kkg7//e8w9y9H9\nskAxyMEHcvCBHHzwlAMFWkHa29s3fP39F7+uO/Pz2vPIIzr4m18tqFXVdL8sUAxy8IEcfCAHHzzl\nQIFWkJmZmaav3Z6b0/svfE2S1DV8VuboH8hutFEWKA45+EAOPpCDD55yoEArSLPne60uL+vac78r\n3bqlA1/+NbV/7nMFt6x6PD1rrcrIwQdy8IEcfPCUg/ttNsxsQNK1+GlPCOFcHueU8SSBEIKu/8Ef\navnll7XnkUf0ke99R20HDhTaBgAAUKidv81GLLQUQjgfQjgvacLMRrI+pwhzc3P3fB5C0Ht/Mazl\nl1+WdXSo++svUpwVpD4LlIMcfCAHH8jBB0857Cm7AfcxGELoTT8JIUybWV8O5+Sus7Nz7ffhzh3d\n+JM/1dJf/430wAPqHh3R3p/ys3Jkt6vNAuUhBx/IwQdy8MFTDm570MysS9KJBi8tNiu4tnNOUdJx\n7Vuvv653v9SfFGft7ep+8Wva/ws/X2bTKsfTHIMqIwcfyMEHcvDBUw5uCzRJPZIWG3z9mhoXYds9\nJ3dLL43pf54+rf997PN658lf1q2pKbU9fEQf/ru/VcdTT5bVrMry9Ky1KiMHH8jBB3LwwVMOngu0\nbt2d6F9rUdJDWZxjZgNmNmlmk2+//fZaMFeuXFkbh15YWNDFixe1urqq5eVlTU1NaXl5Waurq7p4\n8aIWFpIn38/NzTU9/60LF2SvvqoP/uuyVg8e1P6BZ/WRVyb0xr59mzq/1e/P+feef+PGjR3d/t1y\n/pUrV3Z0+3fL+UtLSzu6/bvl/KtXr+7o9u+W869evZr7998st6s445DkSAjhaN3XxyTNhxCGsjgn\nlecqzts//rE+uPzfavvow9p77Jhsj/epfwAAICc7fxWnkh6xel2SFjI+J1d7P/EJLX3m09r3yU9S\nnDmQ/tSDcpGDD+TgAzn44CkHzwXapJLCql63pOkMzymEp3HtqiMLH8jBB3LwgRx88JSD2yFOSTKz\nS5J6QwiLtV+rH8Js9Rwp/41qV1dX1dbmuR6uDrLwgRx8IAcfyMGHgnLYFUOcw5KeTz8xsxOSJmo+\n7zGzsbi9xqbOKcvKykrZTUBEFj6Qgw/k4AM5+OApB9cFWghhVNIlM+szs35JfSGEwZpDeiT1qWbe\n2SbOKcXs7GzZTUBEFj6Qgw/k4AM5+OApB9dDnEXKe4hzeXlZHR0duV0fm0cWPpCDD+TgAzn4UFAO\nu2KIc9dob28vuwmIyMIHcvCBHHwgBx885UCBVpCZmZmym4CILHwgBx/IwQdy8MFTDhRoBfH0fK+q\nIwsfyMEHcvCBHHzwlANz0KK856ABAACIOWi+pM/mQvnIwgdy8IEcfCAHHzzlQIFWkM7OzrKbgIgs\nfCAHH8jBB3LwwVMODHFGDHECAIACMMTpiafne1UdWfhADj6Qgw/k4IOnHOhBi8zsHUmXc/wWH5b0\nbo7Xx+aRhQ/k4AM5+EAOPhSRw7shhF+630EUaAUxs8kQwsmy2wGy8IIcfCAHH8jBB085MMQJAADg\nDAUaAACAMxRoxRktuwFYQxY+kIMP5OADOfjgJgfmoAEAADhDDxoAAIAzFGgAAADO7Cm7AbudmQ1I\nuhY/7QkhnCuzPVUVc5Ck3vjrUAhhsaz2IGFmYyGE02W3o6rM7IykRcX3qBDC+XJbVD01701dkh6S\ndJb3pvyZ2QlJzzd6//Fy36ZAy1H6Hy990zOzE2Y2EkIYLLdl1WJmAyGE0drPJU1JOlpeqxDfIPvL\nbkdVmdmYkh9U5uPnwcwOUxwUJxbIo7V/5zEXfmjJSXzfeSZ+2tPgdTf3bYY48zVYWxiEEKYl9ZXY\nnsoxs676r8VMus2MLMrVXXYDqirehF5Li7PoKMVZ4T7b4O98vtH7FrIRQpgOIQxJ+vsmh7i5b1Og\n5ST+BzvR4KVFCoNC9UgaafCGN68GPz2hGGbWH0KYKLsdFTYs6Z7hzLpiDcXoiT06tboolMvh7b5N\ngZafHiVzO+pdU+N/AMhB/Omnt8EbXo+SIg0Fizek6bLbUVXxJtQVf99vZn1mdoZem1I8K2kqDnUq\nFgEj5Tap0lzdtynQ8tOtu5MMay0qmQiKgsQibY2Z9UuapwenND301pQqvQl1hRDOx/8Ho5JeKbdZ\n1RPfm45Ket7Mrtd8DeVwdd+mQEOlxF6C5yU9UXZbqigObbJSsFzdSnrQ1orktIeZ6RfFMrMeJQtl\nPq6kSB6vWdWJiqNAy1ejSdBdkhaKbgjWDEs6zRyP4sWbET1n5ZuX7hZlNZh+UbyhEMK5EMJinLje\nK2mYQrlUbu7bbLORn0nFeR51usX8m1LEeR7DDK+Vpk9SV/3NJ92Lq3blFPITQpg3s2Yv84NLQeL/\ng/Har4UQps3stKRTkpiCUTxX920KtJyEEBbNbN7M6lfkdDH3qXhx2OB8bXFmZn1kUZxGBZiZDbN5\ncymmzax+LmCPkhsUyjUvRllK4e2+zRBnvoaVzHeStLZ6jYKgYPEn1cmaDTnX9eIAFTMUPyStvTfN\nM0G9OPGG/0yDl/qVzEdDvprtw+jmvm0hhDK+b2XEnpt5Jd2mPOqpYHHe06UmL7NrekligTyo5GZ0\nXtIIvZnFiquZ070AH4pzoFCgmkVLC4ora1XX049sxXvCoJIpFyeUFMNTDZ42U/p9mwINAADAGYY4\nAQAAnKFAAwAAcIYCDQAAwBkKNAAAAGco0AAAAJyhQAMAAHCGAg2AO2bWZ2Zhix+X6q7Rb2bX435f\nO4aZDcT9sbZyzpm82gOgHBRoADyqLVDOSTqq5EHSqQlJh5U8szDd/b5+Z/DBeJ1Gu7W7ZGZjkk5t\nYwPlRTO7tNXCDoBfPIsTgEdpsXWudod7M0t3W5+ORcyEmT0h6U2tf8jxYPwYKaC9LTOzESW7lvfe\n9+A6IYRRM+uVNKWkmAWww9GDBsCzs/c7IBZq644LIcyHEIZ2wmNz4jDsgGqej7kNQ5J6YqEHYIej\nQAPgUW0v2Wbs9Od4fkPJn3fbf474d3VO0kB8wDOAHYwCDYBHD0ma3OzBIYRpae3h0ztK7D3rUjZF\n5nj8dTCDawEoEQUaAI/GtfW5Y0NSMperbnXncHqAmQ3XvTYQV3tOpStBzWwgHttjZmNxJej12uvU\ni9cZj9eY2uKqyrSYeq3Jtftju9L2nYntatSetKgd2ML3B+AQBRoAd0IIE2mv2BbOOReH+YaUTJRf\nd35ccHBUUjovbVDJ8OKEpFFJPZJGYoE1FY85K+mapDON5nfFr41IGgshWPz+w3FF5mb0xV/XtdfM\n+mL7Tsdrn4ofDbcOiX/+xXguw5zADkaBBmBXCSEsxoUBDYcM42tpMXRCUm9cTDCoZA6XJA1LGg0h\nnA4hnFNSFEnJ/K61YdSayf0TIYTReP2JeJ3+WGA1VTcke63BIaclvZQWq3HhwyndLTAbSa/Ts9H3\nBuAbBRqAKjtft8pzvOb3aytD646pLXzSYcb6nrXxutebWdu7rcmCiG5Jv9pgs90hSQtNrplehwIN\n2MEo0ABUWf28r7T3abFBwdSo16qnyWtpz1irw4zj8VpjcQ7aeBx+nY49ewB2KQo0AFXWbBuPRsON\n9zCz2h6qdJFBMLMgaazmuI1Wll7b6Lg4bFpbiPUp6ZVbW8zQQHod9/u/AWiOAg0Atqe2iDscQrAm\nH033cqud1K/1j6qSmfXF+XHpAoFzNcc3W+WaXocCDdjBKNAAYBvqCq+TjY7Z5ErKdGuMRseOpQsN\n4srWoRDCYd3dUuSeeWaxF64rHr+lVbAAfKFAA4DtS4cf1z2iKRZWm9lqI+0J+2yT1xstNJiQ1i1e\nkO4WiqOb+L4AHKNAA+CemXXFgmdt8n3cSHaj+V09db82eq3+weLp19cNN9Z8ba23LO6rNi2pL07g\nHzCzvriJ7JiSbTI2FEI4r2TYsuHeZkr+rONpb1zsNfuGGhdh6XYg91s9CsA5CyGU3QYAaCquWmxa\ncMT5WbXHpz1XtcXbopJiqUvre7UWJX1c0pt150h3e8bqv/98CGGtuIttfEbJMOWikh6uTT+oPW6j\nMSbpVO3zOM3suqQnlBSFg/H680q2Bxmqu0aXpOtK9m/jUU/ADkeBBgAOxCcS9NUWfkWeD8AXhjgB\nwIHY6zWxhUdErYlbbvRJ6s28YQBKQYEGAE7EIm38PnPrmp17dKMtPQDsLAxxAgAAOEMPGgAAgDMU\naAAAAM5QoAEAADhDgQYAAOAMBRoAAIAzFGgAAADOUKABAAA4Q4EGAADgzP8DycKOJA6DuCoAAAAA\nSUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Set the plot size - 3x2 aspect ratio is best\n", "fig = plt.figure(figsize=(6, 4))\n", "ax = plt.gca()\n", "plt.subplots_adjust(bottom=0.17, left=0.17, top=0.96, right=0.96)\n", "\n", "# Change the axis units to serif\n", "plt.setp(ax.get_ymajorticklabels(), family='serif', fontsize=18)\n", "plt.setp(ax.get_xmajorticklabels(), family='serif', fontsize=18)\n", "\n", "ax.spines['right'].set_color('none')\n", "ax.spines['top'].set_color('none')\n", "\n", "ax.xaxis.set_ticks_position('bottom')\n", "ax.yaxis.set_ticks_position('left')\n", "\n", "# Turn on the plot grid and set appropriate linestyle and color\n", "ax.grid(True,linestyle=':', color='0.75')\n", "ax.set_axisbelow(True)\n", "\n", "# Define the X and Y axis labels\n", "plt.xlabel('Time (s)', family='serif', fontsize=22, weight='bold', labelpad=5)\n", "plt.ylabel('Position (m)', family='serif', fontsize=22, weight='bold', labelpad=10)\n", "\n", "plt.plot(time_step, step_response, linewidth=2, linestyle='-', label=r'Response')\n", "\n", "# uncomment below and set limits if needed\n", "# plt.xlim(0, 5)\n", "# plt.ylim(0, 10)\n", "\n", "# Create the legend, then fix the fontsize\n", "# leg = plt.legend(loc='upper right', ncol = 1, fancybox=True)\n", "# ltext = leg.get_texts()\n", "# plt.setp(ltext, family='serif', fontsize=20)\n", "\n", "# Adjust the page layout filling the page using the new tight_layout command\n", "plt.tight_layout(pad=0.5)\n", "\n", "# Uncomment to save the figure as a high-res pdf in the current folder\n", "# It's saved at the original 6x4 size\n", "# plt.savefig('MCHE474_step_response.pdf')\n", "\n", "fig.set_size_inches(9, 6) # Resize the figure for better display in the notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Forced Response\n", "The function to simluated a forced response looks similar, but is just *slightly* more complex since we have to propoerly define the input ourselves. We'll investigate its use in more detail in another Notebook." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "#### Licenses\n", "Code is licensed under a 3-clause BSD style license. See the licenses/LICENSE.md file.\n", "\n", "Other content is provided under a [Creative Commons Attribution-NonCommercial 4.0 International License](http://creativecommons.org/licenses/by-nc/4.0/), CC-BY-NC 4.0." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# This cell will just improve the styling of the notebook\n", "from IPython.core.display import HTML\n", "import urllib.request\n", "response = urllib.request.urlopen(\"https://cl.ly/1B1y452Z1d35\")\n", "HTML(response.read().decode(\"utf-8\"))" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.2" } }, "nbformat": 4, "nbformat_minor": 1 }