{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Introduction\n", "\n", "This example gives a simple demostration of chaotic behavior in a simple two body system. The system is made up of a slender rod that is connected to the ceiling at one end with a revolute joint that rotates about the $\\hat{\\mathbf{n}}_y$ unit vector. At the other end of the rod a flat plate is attached via a second revolute joint allowing the plate to rotate about the rod's axis with aligns with the $\\hat{\\mathbf{a}_z}$ unit vector.\n", "\n", "![]( https://objects-us-east-1.dream.io/mae223/2019f/chaos_pendulum.png )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Setup" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/moorepants/src/pydy/pydy/viz/scene.py:56: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package.\n", " from IPython.utils.traitlets import CFloat, List\n" ] } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import sympy as sm\n", "import sympy.physics.mechanics as me\n", "from pydy.system import System\n", "from pydy.viz import Cylinder, Plane, VisualizationFrame, Scene\n", "import pythreejs as pjs" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "me.init_vprinting()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Define Variables\n", "\n", "First define the system constants:\n", "\n", "- $m_A$: Mass of the slender rod.\n", "- $m_B$: Mass of the plate.\n", "- $l_B$: Distance from $N_o$ to $B_o$ along the slender rod's axis.\n", "- $w$: The width of the plate.\n", "- $h$: The height of the plate.\n", "- $g$: The acceleratoin due to gravity." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "mA, mB, lB, w, h, g = sm.symbols('m_A, m_B, L_B, w, h, g')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are two time varying generalized coordinates:\n", "\n", "- $\\theta(t)$: The angle of the slender rod with respect to the ceiling.\n", "- $\\phi(t)$: The angle of the plate with respect to the slender rod.\n", "\n", "The two generalized speeds will then be defined as:\n", "\n", "- $\\omega(t)=\\dot{\\theta}$: The angular rate of the slender rod with respect to the ceiling.\n", "- $\\alpha(t)=\\dot{\\phi}$: The angluer rate of the plate with respect to the slender rod." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "theta, phi = me.dynamicsymbols('theta, phi')\n", "omega, alpha = me.dynamicsymbols('omega, alpha')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The kinematical differential equations are defined in this fashion for the `KanesMethod` class:\n", "\n", "$$0 = \\omega - \\dot{\\theta}\\\\\n", "0 = \\alpha - \\dot{\\phi}$$" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( \\omega - \\dot{\\theta}, \\ \\alpha - \\dot{\\phi}\\right)$" ], "text/plain": [ "(ω - θ̇, α - φ̇)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "kin_diff = (omega - theta.diff(), alpha - phi.diff())\n", "kin_diff" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Define Orientations\n", "\n", "There are three reference frames. These are defined as such:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "N = me.ReferenceFrame('N')\n", "A = me.ReferenceFrame('A')\n", "B = me.ReferenceFrame('B')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The frames are oriented with respect to each other by simple revolute rotations. The following lines set the orientations:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "A.orient(N, 'Axis', (theta, N.y))\n", "B.orient(A, 'Axis', (phi, A.z))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Define Positions\n", "\n", "Three points are necessary to define the problem:\n", "\n", "- $N_o$: The fixed point which the slender rod rotates about.\n", "- $A_o$: The center of mass of the slender rod.\n", "- $B_o$: The center of mass of the plate." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "No = me.Point('No')\n", "Ao = me.Point('Ao')\n", "Bo = me.Point('Bo')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The two centers of mass positions can be set relative to the fixed point, $N_o$." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "lA = (lB - h / 2) / 2\n", "Ao.set_pos(No, lA * A.z)\n", "Bo.set_pos(No, lB * A.z)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Specify the Velocities\n", "\n", "The generalized speeds should be used in the definition of the linear and angular velocities when using Kane's method. For simple rotations and the defined kinematical differential equations the angular rates are:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "A.set_ang_vel(N, omega * N.y)\n", "B.set_ang_vel(A, alpha * A.z)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once the angular velocities are specified the linear velocities can be computed using the two point velocity thereom, starting with the origin point having a velocity of zero." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "No.set_vel(N, 0)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left(\\frac{L_{B}}{2} - \\frac{h}{4}\\right) \\omega\\mathbf{\\hat{a}_x}$" ], "text/plain": [ "⎛L_B h⎞\n", "⎜─── - ─⎟⋅ω a_x\n", "⎝ 2 4⎠" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ao.v2pt_theory(No, N, A)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEAAAAAVCAYAAAD2KuiaAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADQ0lEQVRYCeWXgVUbMQxACY8B8joCbAAr0A1gBboBzAAb0BVgA7oBhQ2gE7SwQfr/xTL2ndNyR0raV72nyJJlWZIl+zJbLBZb/yrMZrM5/j+/xf/ttyze5FqC32X/O6g4n+rLIAEYOwGvwEVCN5A/mrrJutfhy6HBg56+wX9DZkLGgy3QQizZG3etuU3K8MmA9e00/GB8Dj4FP4auCt4Mu8n5GGPvpYtf9n7le0vW12nxgxbAkPBxSbZuEv2rCIFY+hW0ZJXCCmZmVvpAP9lf+8zN+nOb5vHNcrdCf4AfQFviC2i1PkLHgQnoIxb+eP+zx1V/35Jn3kvtATwMOWMvYn3L/c54P2TQ3dB9LR20QLphsdVlVbp2YI8TjF7+xrAnbBIMsA/OdUCg9wysACvhrBOO+Nlp6I7u/5Q0N7c0P4P2qA5FiX7C0bI8D+DVWwnMP2P3AoW8Dtk1soNSlgyEjgkbBxitWoDV9j/iWl7yzLduYU81l2boI6ueKHiTlMu60Bs8uehpsypreBNrK2jXS/oKtFUmte2gBTBkyVlSTUjl68n2wZNprbtFPmedjgterpUec+75tZutf/bQjdPdQs/An0CD/g4eM38MrezBvxqqBLCBpyP86vmzfLNTS/Xu17UG2wdb6p41toWwtyTVr2urPfGlKmd4E2jggi11UdhcSqf8YiS3AOstK0vJU8ryGCM/BU+CD4pM5wbrkr4tlVuGsYFm+45B116GPSngulz+jE2SE2KWJ11tKs9txNhqidZwrvMBagXJOzevgkxCbDaDj+TkYEKPdeFclyB4qU4Nnjpk3Z2QqC+BDsXzJh/zrUSH8+VnsAmMBBjUquToo1WljfIAutOztLrLD2p25HVmII+gS4qeTufsxxwyE/EQvBSwWsLhfMrI1NU5MQfYW2sA+qSONsTucz2N3UCs1sNHJUiPKpslM3WM0exIaQO5DutQtWmp8x7jwg8TV1XwNoJ1gOV12zBkAgQ/VjYJVvM1aPVZdS/w1hPAUpxyldkkN+Mb/UfJ/rZMdxdB4666ibh3EE4GniZ73wtMOIdfjl6+AH2nJ7/RYWwKxRc/ovTPU+8+kfUl+XgI9T44a/4bZOK/gZ+tZJ4h2+4ILAAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle L_{B} \\omega\\mathbf{\\hat{a}_x}$" ], "text/plain": [ "L_B⋅ω a_x" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Bo.v2pt_theory(No, N, A)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Inertia\n", "\n", "The central inertia of the symmetric slender rod with respect to its reference frame is a function of its length and its mass." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "IAxx = sm.S(1) / 12 * mA * (2 * lA)**2\n", "IAyy = IAxx\n", "IAzz = 0\n", "\n", "IA = (me.inertia(A, IAxx, IAyy, IAzz), Ao)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This gives the inertia tensor:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}\\frac{m_{A} \\left(L_{B} - \\frac{h}{2}\\right)^{2}}{12} & 0 & 0\\\\0 & \\frac{m_{A} \\left(L_{B} - \\frac{h}{2}\\right)^{2}}{12} & 0\\\\0 & 0 & 0\\end{matrix}\\right]$" ], "text/plain": [ "⎡ 2 ⎤\n", "⎢ ⎛ h⎞ ⎥\n", "⎢m_A⋅⎜L_B - ─⎟ ⎥\n", "⎢ ⎝ 2⎠ ⎥\n", "⎢────────────── 0 0⎥\n", "⎢ 12 ⎥\n", "⎢ ⎥\n", "⎢ 2 ⎥\n", "⎢ ⎛ h⎞ ⎥\n", "⎢ m_A⋅⎜L_B - ─⎟ ⎥\n", "⎢ ⎝ 2⎠ ⎥\n", "⎢ 0 ────────────── 0⎥\n", "⎢ 12 ⎥\n", "⎢ ⎥\n", "⎣ 0 0 0⎦" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IA[0].to_matrix(A)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The central inerita of the symmetric plate with respect to its reference frame is a function of its width and height." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "IBxx = sm.S(1)/12 * mB * h**2\n", "IByy = sm.S(1)/12 * mB * (w**2 + h**2)\n", "IBzz = sm.S(1)/12 * mB * w**2\n", "\n", "IB = (me.inertia(B, IBxx, IByy, IBzz), Bo)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}\\frac{h^{2} m_{B}}{12} & 0 & 0\\\\0 & \\frac{m_{B} \\left(h^{2} + w^{2}\\right)}{12} & 0\\\\0 & 0 & \\frac{m_{B} w^{2}}{12}\\end{matrix}\\right]$" ], "text/plain": [ "⎡ 2 ⎤\n", "⎢h ⋅m_B ⎥\n", "⎢────── 0 0 ⎥\n", "⎢ 12 ⎥\n", "⎢ ⎥\n", "⎢ ⎛ 2 2⎞ ⎥\n", "⎢ m_B⋅⎝h + w ⎠ ⎥\n", "⎢ 0 ───────────── 0 ⎥\n", "⎢ 12 ⎥\n", "⎢ ⎥\n", "⎢ 2⎥\n", "⎢ m_B⋅w ⎥\n", "⎢ 0 0 ──────⎥\n", "⎣ 12 ⎦" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IB[0].to_matrix(B)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "All of the information to define the two rigid bodies are now available. This information is used to create an object for the rod and the plate." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "rod = me.RigidBody('rod', Ao, A, mA, IA)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "plate = me.RigidBody('plate', Bo, B, mB, IB)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Loads\n", "\n", "The only loads in this problem is the force due to gravity that acts on the center of mass of each body. These forces are specified with a tuple containing the point of application and the force vector." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "rod_gravity = (Ao, mA * g * N.z)\n", "plate_gravity = (Bo, mB * g * N.z)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Equations of motion\n", "\n", "Now that the kinematics, kinetics, and inertia have all been defined the `KanesMethod` class can be used to generate the equations of motion of the system. In this case the independent generalized speeds, independent generalized speeds, the kinematical differential equations, and the inertial reference frame are used to initialize the class." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "kane = me.KanesMethod(N, q_ind=(theta, phi), u_ind=(omega, alpha), kd_eqs=kin_diff)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The equations of motion are then generated by passing in all of the loads and bodies to the `kanes_equations` method. This produces $f_r$ and $f_r^*$." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "bodies = (rod, plate)\n", "loads = (rod_gravity, plate_gravity)\n", "\n", "fr, frstar = kane.kanes_equations(bodies, loads)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}g \\left(- \\frac{L_{B} m_{A}}{2} - L_{B} m_{B} + \\frac{h m_{A}}{4}\\right) \\operatorname{sin}\\left(\\theta\\right)\\\\0\\end{matrix}\\right]$" ], "text/plain": [ "⎡ ⎛ L_B⋅m_A h⋅m_A⎞ ⎤\n", "⎢g⋅⎜- ─────── - L_B⋅m_B + ─────⎟⋅sin(θ)⎥\n", "⎢ ⎝ 2 4 ⎠ ⎥\n", "⎢ ⎥\n", "⎣ 0 ⎦" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sm.trigsimp(fr)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}\\frac{m_{B} w^{2} \\alpha \\omega \\operatorname{sin}\\left(2 \\phi\\right)}{12} - \\left(\\frac{L_{B}^{2} m_{A}}{3} + L_{B}^{2} m_{B} - \\frac{L_{B} h m_{A}}{3} + \\frac{h^{2} m_{A}}{12} + \\frac{h^{2} m_{B}}{12} + \\frac{m_{B} w^{2} \\operatorname{cos}^{2}\\left(\\phi\\right)}{12}\\right) \\dot{\\omega}\\\\- \\frac{m_{B} w^{2} \\left(\\omega^{2} \\operatorname{sin}\\left(2 \\phi\\right) + 2 \\dot{\\alpha}\\right)}{24}\\end{matrix}\\right]$" ], "text/plain": [ "⎡ 2 ⎛ 2 2 2 \n", "⎢m_B⋅w ⋅α⋅ω⋅sin(2⋅φ) ⎜L_B ⋅m_A 2 L_B⋅h⋅m_A h ⋅m_A h ⋅m_B m_\n", "⎢─────────────────── - ⎜──────── + L_B ⋅m_B - ───────── + ────── + ────── + ──\n", "⎢ 12 ⎝ 3 3 12 12 \n", "⎢ \n", "⎢ 2 ⎛ 2 ⎞ \n", "⎢ -m_B⋅w ⋅⎝ω ⋅sin(2⋅φ) + 2⋅α̇⎠ \n", "⎢ ───────────────────────────── \n", "⎣ 24 \n", "\n", " 2 2 ⎞ ⎤\n", "B⋅w ⋅cos (φ)⎟ ⎥\n", "────────────⎟⋅ω̇⎥\n", " 12 ⎠ ⎥\n", " ⎥\n", " ⎥\n", " ⎥\n", " ⎥\n", " ⎦" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sm.trigsimp(frstar)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Simulation\n", "\n", "The equations of motion can now be simulated numerically. Values for the constants, initial conditions, and time are provided to the `System` class along with the symbolic `KanesMethod` object." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "sys = System(kane)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "sys.constants = {lB: 0.2, # meters\n", " h: 0.1, # meters\n", " w: 0.2, # meters\n", " mA: 0.01, # kilograms\n", " mB: 0.1, # kilograms\n", " g: 9.81} # meters per second squared" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "sys.initial_conditions = {theta: np.deg2rad(45),\n", " phi: np.deg2rad(0.5),\n", " omega: 0,\n", " alpha: 0}" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "sys.times = np.linspace(0, 10, 500)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The trajectories of the states are found with the `integrate` method." ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "x = sys.integrate()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The angles can be plotted to see how they change with respect to time given the initial conditions." ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def plot():\n", " plt.figure()\n", " plt.plot(sys.times, np.rad2deg(x[:, :2]))\n", " plt.legend([sm.latex(s, mode='inline') for s in sys.coordinates])\n", "plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Chaotic Behavior\n", "\n", "Now change the intial condition of the plat angle just slighty to see if the behvior of the system is similar." ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sys.initial_conditions[phi] = np.deg2rad(1.0)\n", "x = sys.integrate()\n", "plot() " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Seems all good, very similar behavior. But now set the rod angle to $90^\\circ$ and try the same slight change in plate angle." ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sys.initial_conditions[theta] = np.deg2rad(90)\n", "sys.initial_conditions[phi] = np.deg2rad(0.5)\n", "x = sys.integrate()\n", "plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First note that the plate behaves wildly. What happens when the initial plate angle is altered slightly." ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAD4CAYAAAAAczaOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzdd3xUVfr48c9JLyRAIKRDQu8hEIqAoAKCIl0UFLtr+dldC/rVteyqu2vvu7oWrIB0I71KhzRCDQkJkAapkN4m5/fHnWiASZ1yU8779cprkjt37n1mMvPMveee8xwhpURRFEVpG+z0DkBRFEWxHZX0FUVR2hCV9BVFUdoQlfQVRVHaEJX0FUVR2hAHvQOoT+fOnWVwcLDeYSiKorQoUVFR2VJK78uXN/ukHxwcTGRkpN5hKIqitChCiDOmlqvmHUVRlDZEJX1FUZQ2RCV9RVGUNqTZt+mbUlFRQWpqKqWlpXqHYlEuLi4EBgbi6OiodyiKorRSLTLpp6am4uHhQXBwMEIIvcOxCCklOTk5pKamEhISonc4iqK0Ui2yeae0tJROnTq1moQPIISgU6dOre7sRVGU5qVFJn2gVSX8aq3xOSmK0ry0yOYdRVF0VpQD5w/D+WNQXgieAdB9PLQP1DsypR4q6SuKUjcpIT0GkrbD2X1w7jAUpF+5nrCHMY/DdS+Dnb3Nw1QaRiV9RVFqd3IjbH4FMo9pf3fuDSFXg+8g7cdnIDh7Qu4p2PsJ7HofSvPhpvf0jVupVYtt028ODAYDTzzxBAMGDGDQoEEkJSUBUFJSwvjx4zEYDIDW22jJkiWUl5czbtw4Kisr9QxbUeonJWx8CX6aC1UGmPYRPJMAjx6E2V/A6Meg+zXg3hkcnKBLP5jxKYx+HCK/giPL9X4GSi1U0jfDW2+9Rffu3Tl69CiPP/44n332GQBff/01s2fPxt5eO8XdsmUL0dHRODk5MWHCBJYsWaJn2IpSv21vwp6PIfw+eGgnDLsL2nWp/3ET/gaBIyDiaSjJs36crVXJBSjOtcqmW3zzzmu/HuVYer5Ft9nf35NXpg2oc52ioiJWrlxJVFQUACEhIfz2228A/Pjjj/z0008A7Nq1i6effpoOHTqwYcMGFi1axAsvvMDtt99u0ZgVxWKStsPv/4YhC2Dqu9CYXmX2jnDT+/CfsbDrA5j0mtXCbNWiv4Mtr8HTJ6DdFYUyzdLik75eNm/eTEpKCkOGDAEgNzeXiRMnUl5eTlJSEtXloMeOHcvw4cN55513GDhwIAaDgYMHD+oYuaLUobwIVj8KnXrCjW83LuFX8x0Ig2+B/f+BUQ+Dh6/l42ztjv8KPgMsnvChFST9+o7IrSU2NpbXX3+dhx56CID777+fwYMHk52dTYcOHS5ZNz4+nj59+gBgb2+Pk5MTBQUFeHh42DxuRanTvs/gYgrcsw6c3Jq+nWsWwuFfYO+ncP3fLRdfW5CfAakH4LqXrLJ51abfRHl5ebi5aR+KyspKNm7cyLRp03B1db1kVG1OTg7t27e/pJ5OWVkZLi4uNo9ZUepUlA27PoQ+U6HbaPO25dUdBs6ByK+t1jbdap2I0G77TbfK5lXSb6LevXuzb98+AN5//32mTp1KSEgIHTt2xGAw/JH4k5OT8ff3/+NxOTk5eHt7q6JqSvPz+ztQUQQTX7HM9sY+pQ3cOvClZbbXVpyI0LrGevexyuZV0m+i+fPnEx0dTc+ePYmLi+O99/7sl3z99deza9cuAPr27Ut2djYDBw5kz549bNu2jRtvvFGvsBXFtNxkOPg/CLvDcsnGZwD0uRH2fw5lhZbZZmtXnAvJO6HvTVbbRYtv09dLx44d/zjSv9yjjz7Ke++9x8SJE2nXrh0HDhz4477Zs2fz1ltv2SpMRWmYLa+BnQNc84Jltzv2afhqIkR9o/XtV+p2cj1IA/SbZrVdqCN9KwgLC+Paa6/9Y3BWtfLycmbOnPnHRV1FaRZO74ajK7XmGE8/y247aDiEjIM9n0CFqiBbr+O/gmcg+IdZbRcq6VvJvffe+8fgrGpOTk7ceeedOkWkKCZUGWD981qisdaR+NXPQOE5OPSTdbbfWpQVwqmt2lG+FSvuqqSvKG3ZgS+0AmqTXjOvi2ZdQsZBQLg2WMugSpDUKnEzVJZCP+u154NK+orSdmXFw+ZXoddkrXultQgBV/8VLpyBoyust5+W7ugKcPeGrldZdTcq6StKW2SogJUPgqMbTP/Yqs0JAPSeAl36w873oKrKuvtqiUouQPx67cvXymWpVdJXlLZo48tajfxpH4CHj/X3Z2en9eTJOg4n11l/fy3N8TVgKNPKV1iZSvqK0tYcXqb1nR/5MPSfYbv9DpgFHYO1QWBS2m6/LUHcUq3ekf9Qq+9KJX1FaUsyT8CaxyFoJEx63bb7tneAMU9CerRWyVPRXEyF07tg0C3Wb2ajAUlfCPG1ECJTCHGkxjIvIcQmIUSC8bZjjfteEEIkCiHihRCTaywfJoQ4bLzvI6FmAVcU2yorgCULtF46c7/VJj+xtSG3gYcf7HzX9vturg4vAyQMnmuT3TXkSP9bYMplyxYCW6SUvYAtxr8RQvQH5gEDjI/5TAhRfVXic+ABoJfx5/JttlgrVqzg8ccf/+Pv2mbOAtTsWYo+pITVj0BuEtz8DXj61/8Ya3Bw1mbXOr0TzuzRJ4bm5vAv2sQzXt1tsrt6k76U8nfg8jJ5M4BFxt8XATNrLF8spSyTUiYDicAIIYQf4Cml3CullMB3NR7T4sXExDB06J9tcbXNnAWo2bMUfez9FI6t1oqphVytbyzh94B7F9j+T33jaA7OHYHzR2xyAbdaU9v0faSUGQDG2+p51AKAlBrrpRqXBRh/v3y5SUKIB4QQkUKIyKysrCaGaH0nT55k0qRJfPDBB7z66qt88MEHgDZz1owZ2gWy6pmzli1bxpAhQ0hOTmbmzJn8+OOPeoautCWnd8Omv2kjPUc/Xv/61uboCmOegOQdcGav3tHo6/BSrebRgFk226WlC66ZaqeXdSw3SUr5BfAFQHh4eN2X+dct1EYUWpLvILih7qOQsrIybrnlFr7//ntmzJjBnj176N+/P/fee2+dM2cBavYsxXYKzsGye7ReMzM+s8mFwgYJvxd2fwA7/gl3rtY7Gn1UVWnt+T0maBPM20hTj/TPG5tsMN5mGpenAkE11gsE0o3LA00sb7E2bdpEaGgo/v7+eHp64uvri4uLCwUFBXXOnAWXzp6lKFZjqIRl90FpPtz6Pbh46h3Rn5zctLOOpO1wdr/e0ejjzC7IT7Np0w40/Uh/DXAX8E/j7eoay38SQrwH+KNdsD0gpTQIIQqEEKOA/cCdwMdmRV6tniNya4mNjWXQoEEcOnSIwYMHk5mZiYeHB25ubvXOnAVq9izFBrb+XUsss/6r1bZvbobfB7s/1I7271ipdzS2d2gJOHlA36k23W1Dumz+DOwF+gghUoUQ96El+0lCiARgkvFvpJRHgaXAMWA98IiUsrq+8MPA/9Au7p4CWvSwPE9PT06cOEFcXByDBw/mlVde4ZFHHql35ixQs2cpNnB6l9Z8MuxuCJ2ndzSmObnDmMe1ypIpbay5s7xYu7Def4Z2jcOGGtJ7Z76U0k9K6SilDJRSfiWlzJFSTpBS9jLe5tZY/w0pZQ8pZR8p5boayyOllAON9z1q7MXTYi1YsICEhARef/11Pv/8c7y8vHjsMa00bV0zZwFq9izFuipK4dcnoUM3mPym3tHUbfj94NZJO9pvS+LXQnkBhN5q812rmbOayMvLix07dhAaGsrWrVvp1KnTH/fVNXMWwE8//aRmz1KsJ/IryEmA25drR9PNmZO7Vsd/86uQGgmB4XpHZBtxS7Q5DLqNtfmuVRkGM5SVlVFQUHBJwofaZ84CNXuWYmXlxVrd+pBx0Gui3tE0zPC/gKuXVpOnLSjMhMQt2ghcO9unYJX0zeDs7ExSUpLJ+0zNnAVq9izFymK+h6JMGL9Q70gazrmd1oXz5HrIO6N3NNZ3ZLk2D+5gfa61qKSvKK1JzA/gNwSCx+gdSeMMu1sbQxD1rd6RWN+hxeAXCl366rJ7lfQVpbXIiodzcTDY9hcHzdYhSJvBK+b71j2lYlY8ZMTqdpQPLTjpt/DOPya1xuek2FDcUhB21p360JrCboeiLEjernck1nNoMQh7GHSzbiG0yKTv4uJCTk5Oq0qSUkpycnLUgC2laaTUqjWGjLfNTFjW0HMSOHvC4eV6R2IdVVXa/6jHddCuS/3rW0mL7LIZGBhIamoqzbkYW1O4uLgQGBhY/4qKcrmUA9rE49e0oAu4l3N0gX7TtUFLN71n80FLVndmN1xMgYmv6hpGi0z6jo6OhISE6B2GojQfh5eCgwv0vUnvSMwzaA7E/gAJG207laMtxC0Bp3bQR9+BmS2yeUdRlBoMFXB0JfS5oXkVVWuK4HFarf3Dy/SOxLIqSuHYGq28tZObrqGopK8oLd2pbVCco82x2tLZG2vLn9ygVQdtLRI2QtlFGGSbKRHropK+orR0h5eCa0fo2UJG4NZn4BwwlMGJ3/SOxHIOL9XOYELG6x2JSvqK0qKVFWrJsf9MfSY6t4agEdC+qzZytTUouaCduQyco53J6EwlfUVpyeLXQkWxzSfisCohYOAsSNoGRTl6R2O+Y6vBUN5s/kcq6StKSxa3FNoHQdAovSOxrIE3Q1UlHFuldyTmO/wLdOoJ/mF6RwKopK8oLVd+Opzaoh1B6lCt0ap8B4F3X62WUEuWnQind2oT2TST+Ylb2TtFUdqQQz+DrIIht+sdieUJAcPugfRoSI/RO5qmi/wK7Bxh6F16R/IHlfQVpSWSUjsK7jYWOvXQOxrrCJ0Hjm5w8Cu9I2maskKI+VEbZKZj2YXLqaSvKC3R2b2QmwRhC/SOxHpcO2gVQ+OWaE1ZLc2+z7W++aP+n96RXEIlfUVpiWJ+BCcP6D9d70isa+yTWhPW7g/1jqRxinNhz0fQZyoEDtM7mkuopK8oLU1ZgVZ2YeCs5j8Hrrk6BmvNPFHfQsE5vaNpuA0vQnkRXPeS3pFcQSV9RWlpjq6CiiIIu0PvSGzj6me0+kK7PtA7koY5skK7yD7uGfDpr3c0V1BJX1FampgfoHNvCByudyS24RUCQ27TesI09zl0z+6HVQ9r/5txz+odjUlmJX0hxFNCiKNCiCNCiJ+FEC5CCC8hxCYhRILxtmON9V8QQiQKIeKFEJPND19R2pjsBEjZp13AbSb9vm3imhe0WcG2val3JLXLOgk/3wqeATB/Mdg76h2RSU1O+kKIAOBxIFxKORCwB+YBC4EtUspewBbj3wgh+hvvHwBMAT4TQtibF76itDExP2jT7ek4x6ou2gfAyAe1njznjugdzZXyM+CHOWDnAAuWg3tnvSOqlbnNOw6AqxDCAXAD0oEZwCLj/YuAmcbfZwCLpZRlUspkIBEYYeb+FaXtMFRqbcW9J7fcKRHNMfYpbb6ALa/rHcmlSi/Cj3O18ta3LdWao5qxJid9KWUa8A5wFsgALkopNwI+UsoM4zoZQPWohAAgpcYmUo3LriCEeEAIESmEiGxtUyIqSpMlbobC8627b35dXDvC2KchYQOc3q13NJrKMliyALKOw63fQcBQvSOqlznNOx3Rjt5DAH/AXQhR17vRVAOkyZnNpZRfSCnDpZTh3t7eTQ1RUVqX2B/A3Rt6Xa93JPoZ+SB4+MPmV7RRyXqqqtIu2ib/DjM+bTHzGZjTvDMRSJZSZkkpK4AVwGjgvBDCD8B4m2lcPxUIqvH4QLTmIEVR6lOcC/HrtdmxmukFQptwdNUmf089CCci9I1l40tazf+Jr2pjCVoIc5L+WWCUEMJNCCGACcBxYA1QXV3oLmC18fc1wDwhhLMQIgToBRwwY/+K0nYcWQ5VFTBkvt6R6G/I7VqX1S2va9c59LDnE9j3KYx4EMY8qU8MTWROm/5+YBkQDRw2busL4J/AJCFEAjDJ+DdSyqPAUuAYsB54REppMCt6RWkrYn8Cn0FayeG2zt4BJvwNsk9C7I+23//xX7Wj/P4zYMpbLa7rrJB6t4vVIzw8XEZGRuodhqLoJysePh0Bk9+Eqx7RO5rmQUr4ahJcTIPHosDJzTb7TY+Fb26ALv3h7gituamZEkJESSnDL1+uRuQqSnMX+5PWN3/QXL0jaT6E0NrSC9LhwH9ts8+Cc/DzPHDrBPN+atYJvy4q6StKc1Zl0KZE7DmxWdVkbxaCx2o9mXa9DyV51t1XVRWseEDrkz9/cYseJ6GSvqI0Z8k7tKNZdQHXtAmvQGm+lvitae8n2v9iylvgO9C6+7IylfQVpTmL/Rlc2kPvG/SOpHnyHahNtLL/v1r7vjVkntB6CvW9qVlNe9hUKukrSnNVmq/1FBkwGxxd9I6m+br2RW2ild//bfltSwnrntPmLZj2YYvrqWOKSvqK0lwdWw2VJVpZYaV2HbtppSlifrT80f6x1VqzznUvNesiao2hkr6iNFeHFoNXj7ZTN98cY57Qjvb3fGy5bZYXw4b/08ZGhN9rue3qTCV9RWmO8k7DmV3aBdxW0KRgdR2Dtbb9qG+h0EJFGnd/CPmpcMO/wa71VIFXSV9RmqNDS7TbwbfqG0dLcvXTUFkK+z4zf1sXzsLuD2DgHOg22vztNSMq6StKcyOlVjc/+Gro0FXvaFqOzr200ggHvjSv376U2sTmCJjUzGr3W4BK+orS3JzZA3nJ6gJuU4x7BsoLYN9/mr6NQz9rvabGPwftAy0XWzOhkr6iNDfRi8C5PfSfWf+6yqV8B2lH+7s/1K6LNNbZffDbM9BtrHZxuBVSSV9RmpPiXDi6CgbfYrsiYq3N5De1SdQjntLKWDSElFpvqR/mgKcf3PxVq7p4W5NK+orSnEQvAkMZDGv5Iz910z4QJv8DTm2Ftc/UXnO/NB+StsOOt+HzMbDyQa165l0R4OFr05BtyUHvABRFMSov0ibn6DFB1c03V/i9WvPO7g8hLUrrBeXWWZtjODse0mIg8xh/zNjqPxSmf6JdR2mlR/jVVNJXlObiwJdQnA3jn9c7ktZh4mvgHwZb/m7sjWPk7g1+odB/OgSGQ0A4uHbQL04bU0lfUZqD3CTY8S/oNRm6jtQ7mtZBCBgwS/spOKedSbl2BDcvvSPTlUr6iqK3yjJY+TDYOcBNVi4R3Fa14jb6xlJJX1H0ZKiElQ9Byj64+WtoH6B3REorp5K+ouilrBCW3QMJG7WRnwPn6B2R0gaopK8oeig4Bz/dAucOa006raiKo9K8qaSvKLaWeRx+nKsNxJq/BHpfr3dEShuikr6i2FLy77B4gTYT1j1rwX+I3hEpbYxZI3KFEB2EEMuEECeEEMeFEFcJIbyEEJuEEAnG24411n9BCJEohIgXQkw2P3xFaUHilsL3s7Vh/vdvVglf0YW5ZRg+BNZLKfsCocBxYCGwRUrZC9hi/BshRH9gHjAAmAJ8JoRo3UPfFAW0ui673ocVf4Guo+DeDapksqKbJid9IYQnMA74CkBKWS6lvADMABYZV1sEVJcKnAEsllKWSSmTgURgRFP3rygtQpUB1j0Pm1/VeucsWN6mRn8qzY85R/rdgSzgGyFEjBDif0IId8BHSpkBYLztYlw/AEip8fhU4zJFaZ2qqmD1I3DgvzDqEZj9P3Bw1jsqpY0zJ+k7AEOBz6WUYUARxqacWpia6FOaXFGIB4QQkUKIyKwsC813qSi2tvElbUKOa16AKW+CnSpqq+jPnHdhKpAqpdxv/HsZ2pfAeSGEH4DxNrPG+kE1Hh8IpJvasJTyCylluJQy3Nvb24wQFUUnx1bDvk9hxAOqgJrSrDQ56UspzwEpQog+xkUTgGPAGqC6GPhdwGrj72uAeUIIZyFECNALONDU/StKs1WYBWseg4BhcP0bWuEvRWkmzO2n/xjwoxDCCUgC7kH7IlkqhLgPOAvMBZBSHhVCLEX7YqgEHpFSNnBaG0VpQbb9Q6voOPM/4OCkdzSKcgmzkr6UMhYIN3HXhFrWfwN4w5x9KkqzlnkCor+DEQ+Cd2+9o1GUK6grS4piSXs+BntnGP+c3pEoikkq6SuKpRSch8NLIez2Nj9Rh9J8qaSvKJZy8EswVMCo/6d3JIpSK5X0FcUSyovh4FfQ50bo1EPvaBSlVirpK4olHPoZSnJh9KN6R6IodVJJX1HMVWWAvZ+A/1DoepXe0ShKnVTSVxRznYiA3CQY84QaiKU0eyrpK4o5pIRdH4BXd+g3Te9oFKVeKukrijlO74L0aBj9GNip6SGU5k8lfUVpKilh69+hnQ+E3qZ3NIrSICrpK0pTHV8DKfvh2he1OW8VpQVQSV9RmqL0Iqx/Ebz7wZAFekejKA1mbpVNRWmb1r8IBelwyyawVx8jpeVQR/qK0ljx6yD2Bxj7NASaKjKrKM2XSvqK0hhFObDmcfAZpGbEUlokdV6qKA0lJfz2NJTkwR0r1QQpSoukjvQVpaGOLIdjq+DaF8B3oN7RKEqTqKSvKA2RnwG//RUCh8PoJ/SORlGaTCV9RamPlPDr41BZps17q3rrKC2YevcqSn2iv4OEjTDlX9C5p97RKIpZ1JG+otQl7wxseBGCr4YRD+gdjaKYTSV9RalNdbMOwIxPwU59XJSWTzXvKEptYn+CpO1w4zvQsZve0SiKRahDF0UxpTATNrygzYQVfp/e0SiKxZid9IUQ9kKIGCFEhPFvLyHEJiFEgvG2Y411XxBCJAoh4oUQk83dt6JYzbY3obwIpn2kmnWUVsUS7+YngOM1/l4IbJFS9gK2GP9GCNEfmAcMAKYAnwkh1KwTSvOTnaD12Am/F7x76x2NoliUWUlfCBEITAX+V2PxDGCR8fdFwMwayxdLKcuklMlAIjDCnP0rilXs/hAcnGHcc3pHoigWZ+6R/gfAc0BVjWU+UsoMAONtF+PyACClxnqpxmVXEEI8IISIFEJEZmVlmRmiojRCab5WbmHgHGjnrXc0imJxTU76QoibgEwpZVRDH2JimTS1opTyCylluJQy3NtbffAUGzr8C1QUw7B79I5EUazCnC6bY4DpQogbARfAUwjxA3BeCOEnpcwQQvgBmcb1U4GgGo8PBNLN2L+iWF70Iq1scsBQvSNRFKto8pG+lPIFKWWglDIY7QLtVinlAmANcJdxtbuA1cbf1wDzhBDOQogQoBdwoMmRK4qlpcdAxiEYdhcIUyemitLyWWNw1j+BpUKI+4CzwFwAKeVRIcRS4BhQCTwipTRYYf+K0jRR34KDKwyaq3ckimI1Fkn6UsrtwHbj7znAhFrWewN4wxL7VBSLKiuEw8tg4Gxw7aB3NIpiNWrUiaKA1mOnvBCG3lX/uorSgqmkryigNe1494MgNXREad1U0leUjDhIj1YXcJU2QSV9RYleBPbOMPhWvSNRFKtTSV9p20rz4dBiGDAL3Lz0jkZRrE4lfaVti/1Ru4A7Us2KpbQNKukrbVeVAfb/FwJHQMAwvaNRFJtQSV9puw4vg7xkGP2Y3pEois2opK+0TYZK2PEv8BkIfW/SOxpFsRk1R67SNkV/C7mn4NYf1cxYSpui3u1K21OcC1v/AcFXQ9+pekejKDalkr7S9mz9h9ZV84Z/q8FYSpujkr7StmTEQdQ3MOIv4NNf72gUxeZU0lfaDilh3XPg2hGuWah3NIqiC3UhV2k7Dv8CZ/fCtI+0xK8obZA60lfahrIC2Pgy+IdB2B16R6MoulFH+krb8Ps7UHgObv1BddFU2jT17ldav+xE2PsphN4GQcP1jkZRdKWSvtL6bXgRHFxg4qt6R6IoulNJX2ndEjdDwgYY/yx4+OgdjaLoTiV9pfUyVMKG/4OOITDyIb2jUZRmQV3IVVqvqG8g64R28dbBWe9oFKVZUEf6SutUmg/b3jTW11FVNBWlWpOTvhAiSAixTQhxXAhxVAjxhHG5lxBikxAiwXjbscZjXhBCJAoh4oUQky3xBBTFpOhFUJILk15T9XUUpQZzjvQrgb9KKfsBo4BHhBD9gYXAFillL2CL8W+M980DBgBTgM+EEPbmBK8oJhkqYN/n2lG+mhFLUS7R5KQvpcyQUkYbfy8AjgMBwAxgkXG1RcBM4+8zgMVSyjIpZTKQCIxo6v4VpVZHV0J+mpoRS1FMsEibvhAiGAgD9gM+UsoM0L4YgC7G1QKAlBoPSzUuM7W9B4QQkUKIyKysLEuEqLQVUsKej6BzH+g5Se9oFKXZMTvpCyHaAcuBJ6WU+XWtamKZNLWilPILKWW4lDLc29vb3BCVtiR5B5w7DKMfVeUWFMUEsz4VQghHtIT/o5RyhXHxeSGEn/F+PyDTuDwVCKrx8EAg3Zz9K8oV9nwM7l1g0C16R6IozZI5vXcE8BVwXEr5Xo271gB3GX+/C1hdY/k8IYSzECIE6AUcaOr+FeUK549pI3BHPgCOLnpHoyjNkjmDs8YAdwCHhRCxxmUvAv8Elgoh7gPOAnMBpJRHhRBLgWNoPX8ekVIazNi/olxq7yfg6Abh9+kdiaI0W01O+lLKXZhupweYUMtj3gDeaOo+FaVW+RkQtxTC7wU3L72jUZRmS13pUlqHvZ+ANMCoh/WORFGaNZX0lZav4Bwc/B8MngdeIXpHoyjNmkr6Ssu341/aKNzxz+odiaI0eyrpKy3b6V0Q+TWMeAC8uusdjaI0eyrpKy1XfgasfAg6BsOEl/WORlFaBFVPX2mZLqbCDzdDSR7cHQFO7npHpCgtgkr6SssiJRxbDWufgYpSmPcT+IfpHZWitBgq6SstR9ZJWPcsJG0H30Ew52vw7q13VIrSoqikrzR/ZYWw8x3YYxxxe8Pb2iAse/X2VZTGUp8apfmqLIOob+H3t6EoC4bcDhNfg3aq8qqiNJVK+krzU2WAuCWw7S24eFabAWvezxA0XO/IFKXFa7VJf/4X+ygoq+DmoYHccVUw9na2nSc1+mwen2xN5FRWIf39PHlqUm96+3jYNIaySgP/25lMRFwGDnaCmWEB3D3a9q/F/qQcNh8/j4ujPTPDAujh3c70ilLCiQjY8nfIjge/ITD9Q+h+rVnz3JaUG1h88CyH0y7S28eD25R2KlkAACAASURBVEd2xcPFscnba4ozOUV8vDWR+HMF9Pfz5LEJPQns6GbTGHYmZLH4QApllVXcOMiXWWEBCBvPH5xxsYSVMWkUlxmY1N+H0KAONt1/paGKr3cnszJGq+o+K8yfe8eE4GBv297rZZUGDqdexMPFkd4+7Wz6fxBSmpzHpNkIDw+XkZGRjX7cuxvj2Z2YTfTZC0we4MOntw212T/210PpPLkklk7uTgwP9mL3qWxKKwx8dddwxvTsbJMYSsoN3PXNAQ4k5zKquxcVBknUmTwm9uvC5wuG4WiD10JKyZtrj/PlzmScHeyorJLYCXhz1iDmhgddunJ2gtYjJ2k7dO4N170E/aabPan5+fxS7vhqPyfPF+Lt4UxWQRlBXq78dP8ogrxsk3QPpVxgwVf7qaqShHXtSNSZPFwc7fj+vpEMDGhvkxi+/D2JN9Yep4uHMy6O9pzNLWbGEH/enRtqs8/FpmPneWJxDMXlBuztBIYqyZMTe/HEhF42SXoVhioe/D6KrScyGRHsBQIOJOdybR9v/ntHOE4Otnkdtsdn8uyyOLIKygC4qnsnPpw/hC4eli0HLoSIklKGX3GHlLJZ/wwbNkw2VVVVlfxixynZ7fkI+f6m+CZvpzFOZOTL3v+3Vs79fI+8WFIupZTyfH6JvP69HTL0tQ0y40KJTeJ4ftkhGbwwQq6KSf1j2be7k2W35yPk2+tP2CSGT7YmyG7PR8j/WxknS8orZWZ+qbz9y30yeGGE3J2Q9eeKR1dL+Q9fKd8MknLff6WsrLDI/ssqDHLqR7/L/i+vkzviM6WUUh5MzpGDX90gp3zwuywpr7TIfuqSU1gmr3pzsxz91haZklskpZQyOatQXvXmZjnqzc1/vEesad3hdNnt+Qj58A+RsrSiUlZVVcmPt5yU3Z6PkO9usM174VBKnuz54m9y+sc75dmcIllQWiGfXhIruz0fIZccOGuTGN7ZcEJ2ez5Cfrcn+Y9l3+09Lbs9HyH/vf64TWLYnZAlu7/wm5z8/g657nCG/Gpnkuz70jo58d3tsqDUMu/7akCkNJFTdU/q9f2Yk/SrPbU4RoYsjJDRZ3LN3lZdKioN8vr3dshhf98kM/NLL7kvMbNA9n1pnVzwv32yqqrKqnGsP5Ihuz0fIf+17so38rO/xMrghREy8nSOVWM4knZBhiyMkI/9FC0Nhj+fb3FZpbz27W3yqjc3ywvF5VIeWSHlK+2l/HKClPkZFo3ho81aYlt3OP2S5VuOn5Pdno+Qr605atH9mfLoT9Gy14trZVzKhUuWx5zNk8ELI+Qrq49Ydf8XS8rl0Nc3yukf77ziS+6pJTGy+wu/Wf1zUVRWIa99e5sc9eZmmVdU9sdyg6FKzvvvXtn/5XXybE6RVWOIOZsnQxZGyL8ujb3ivmd/iZUhCyNk5Gnrvg7nL5bIYX/fKCe8u13m1/iy352QJUMWRsiFy+Msur/akn6bKMPw+syBeLk789a6E9o3nZUsj04l/nwB/5g5AG8P50vu6+Hdjuem9GFnQjY7TlpvsvdKQxX/WneCXl3a8fSkK/uwvzJtAD4eLry51nqvhZSSl1cdoaObE3+fMRC7GtcQXJ3see/WIWTkl7IqYg2seACCRsJdv4KHr8ViSMkt5uOtidw02I8pA/0uue+6vj7MH9GV7/ae5nR2kcX2eblDKRf49VA6D47vzqDAS5txhgR1YMHIbny39zQnzxdYLYaPtySQW1zOP2YOwsXR/pL7Xp0+AO92zrweccyqn4svfk8iKbuId+eG0sHN6Y/ldnaCd24JBeDNtcettn+Af607gZe7M69M63/FfX+bpn1e/2Xl/PDG2uMUlFby+e1DL7mmNLpnZ/5ydXd+PnCWPYnZVtt/tTaR9Ns5O/D4hJ4cSM61WsItrTDwweYEhgR1YPIA08nr9pHdCOzoytsb4qmqss6b65eoVJKyi3huSl+TbbXuzg48el1Pos7ksd1Kr8X2k1lEn73As5P70N7tygumQ4I6MGdgB6458iIGty4w/2dwdLVoDJ9uSwQBL9905Ycc4KmJvXC0t+PdTSctut+a3tkYj5e7Ew+MM10I7ulJvXFxtOc/O05ZZf85hWUs2nuGOUMDr/jSAfB0ceSJib2IOXuBbfGZJrZgvtyicv63M5kpA3wZbeJ6VkAHV+4bG8K6I+c4lp5vlRj2nsphb1IOD1/Tw+QF/HbODjxybU8OnM5ll5WSblzqBVbHpnP/1SH0MtGh46lJvQno4Mq/N8Rb9YsH2kjSB5g3vCsBHVz5744kq2x/zaF0Mi6W8sz1fWq9KOXkYMcTE3pxND3fKm+uqirJF78nERrYnon9utS63i3hQQR0cOXzbdZJNv/dcQq/9i7MGRZY6zovua0kiPMs7fqSxWe6Ss0rZllUKvOHB+HjafriWBdPF+4aHUxEXDpnc4otun+AE+fy2ZmQzV+u7l5rT6GO7k7cOjyINbHppF8osXgM3+87Q3llFQ+N71HrOjcPC6Srlxsfbkm0+P4BvtyZRHF5JX+9vvaR0/eN7Y6HiwMfb02wSgz/2XEKbw9nbh/ZtdZ1bh0ehH97F+1gwQre23QSL3enWv8XLo72PHZdT2JTLrD1hHW+gKu1maTv5GDHglHd2JuUQ/w5y55OSylZtOc0fXw8GNOzU53rTh/iT+d2Tny397RFYwD4PSGL5Owi7h0bUmdvCCcHO+4a3Y0Dp3M5cc6yR1dH0i6yLymXe8eE1N5DKDeJDoe/Zafnjbwb35nyyiqLxvDd3jNI4ME6kh2gdV8VgkV7T1t0/wDf7j6Ni6Md80cE1bnefWNDkMAP+85YdP9llQa+33uGa/t407NLLV1kAUd7O+6/OoRDKReITblg0RhKKwz8fOAskwf4mjy6rdbezZHbR3Zjw9FzpFn4y+9MThG/J2Rx+8iuVzRv1eTsYM8dVwWzLymXBAs3tyVmFrI9Pou7RwfX2VV4zrBAgrysd2Barc0kfYB5w4NwdrCz+Ic86kweR9PzuXN0t3q7njk72HPbiK5sOZFp8SPMRXtO08XDmRsua8M2Ze4w7bX4bq9lk83y6FScHOy4ZXgdyW7L62DvhMN1L5JdWM7m4+cttv/SCgNLI1OYPMAH/w51Nxn5tnfhhkF+LD2YQlFZpcViuFhSwcqYNGaFBV7Shm1KYEc3xvXqzMqYNAwWbPLbdiKTnKJy7hwdXO+6s4cG0s7Zge/2nLbY/gFWx6ZxobiCuxoQQ/VR+E/7Lft+/Gn/WeyEYN7w2o/yq90SHoiTvZ3Fv4C/3ZOMk4Mdt9VxpgHaF/BdVwVz4HQuR9MvWjSGmtpU0u/o7sRNg/35NTad0gqDxba7LCoVdyd7ZoUFNGj9+cZ//rLoVIvFkJlfyo6TWdwSHtSg/sbVr8XqmDRKyi3zWhiqJL8eyuC6Pl1o71rLEU1qJBxdCaMfY1ToAAI6uPLzgbMW2T9ARFwGF4orWDCqW4PWv/OqbhSUVbL2cIbFYlh7OIOyyqp6j/Kr3TwsiIyLpew5ZbkmvxXRaXRu58zVDRgX0s7ZgdlDA4iIyyCvqNxiMfyw7yx9fT0YGVJ/812QlxvX9fVh8YEUKgyWOfOrNFSxPDqVif264Nu+/j7wndo5M3WwHyti0iyWH4rLK1kRncb0UH86t3Oud/254UG4Otrz7e7TFtm/KW0q6QPMGRpAQVklm45Z5uiytMLAb4czmDzAFzenhg1w9mvvypgenVkZk2qxizZrDqVTJWFmfV88lWVwahvs/YxHXdcTVhnLpmOWSXh7T+WQXVjGjCH+pleQEja+BO5dYPRj2NsJZg8NYHdiNpkFpRaJYWlkCt07u3NV97qb2aqFd+tISGd3lkVZ7gt4RXQqPbzdGdTAgVcT+mlfkpaK4UJxOdviM5kxxL/BA69uCQ+i3FBFhIW+/BLOF3A47SK3hAc1eODVvOFB5BSVsz3eMh0Mdp/KIbuwnNlDa7+2dLk5QwMpKK1km4Xa1TccPUdxuYFbLh+MWIv2ro7MDAvg17h0CkorLBLD5dpc0h/VvRN+7V1YGZNmke1tj8+koLSy/mR7mVlhAaTklhB5Js8icayOTWdwYHvT7bdVVdpI1+V/gX/3gO9nwoYXCIl6kx+c3mJ4xBRIjzU7hlWxaXg4O3Bt31ouIp/4Dc7uhWtfAGctzumh/lRJWBtnfrJJzSvmQHIus4c2vLyAEIKbhwWyPznXIs1tKbnFHDydx+yhgQ2OwcXRnmmhfqw/co58C3zQI+IyqDDIBp95Agzw96SPjwcrLXT2uSImDXs7wfTaDgBMGN/Hm07uTqywUAyrY9LwdHHgmj4NL9B3VY9OdPFwtlh+WBGdRmBHV8K7dWzwY+aGB1JaUcVvFvhMmGLzpC+EmCKEiBdCJAohFtp6/3Z2ghlDAthxMuuPYdDmWBWTTud2zozu0bAjy2pTBvri6mjPimjz31yJmdpR1Ywhl33IL5yF7f+ED0PhuxmQsBEGzoLblsKzp+D506zq+XdkRTHyq+shfn2TYyitMLD+yDmmDPQ1fcHMUAGbX4HOfSDszj8W9/LxoK+vB79a4A2+Olarp3LF61APrQaNZZrbqpNFYw8C5gwNpKyyinUWONJeFZNGry7tGODv2eDHCKGddUWfvUCymWMXDFWSVTFpjO/t3aAmjWqO9nbMGBLAluOZXCg2r5mppNzAhqPnuHGQH84OtV/AvZy9nWB6qD/b4s2P4Xx+KbsTs5kdFnDJWJX6hAV1oIe3O79Y8OyzJpsmfSGEPfApcAPQH5gvhDDdkdqKZg8NMLY/p5u1nYvFFWw9kcn00AaeRksJFSVQcgF3B5g8wIff4sy/vrAqJh07AdNCjRdwz+zRphL8YLCW9Dv3hJu/hr/Gw/SPofdkcO8Mrh3pO/Fuppa9QY57T1h6JyTvbFIM205kUlhWWXvCjV4EOYkw6bUr6uBPH+JP1Jk8UvOafqQtpWRFdCojgr0aXVPHv4MrY3t2ZnlUqlnjJ6SUrIxJY1R3LwLquYh8uSFBHQju5MaqGPPek2dziok8k8fMJhRTmxkWgJ3A7KP9fUk5ZFwsZfbQxn3xAcwZFkC5ocrsz+am4+cpKjc0+gAAtNehwiD5zcwv4NWxaVRJmNWI5iXQvoDnhgcRl3qBzHzLNHvWZOsqmyOARCllEoAQYjEwAzhm8T3t+xyKssHOAezsQdgZb+3pbefAQq/TlOzdA+0GgIMzOLjUuHW5dJmdo7Hwl/jz1lDG3oPHGSqPcGeHCxB1AIpzoThHm7e1OBdKcrXfywqhvAjKC0H+meDfdXAjoaoTed8Nwq93OPiGgt9gaFd7H/vLSSlZFZvGmB6d6HJuJ/zyrtaE4tYZrlkIQ26DDrX3Gujr64mPbwBP2r/MDx1fgcW3w30boEu/Rr3cq2O1M56rTJ3xlBVoXz7dxkDvKVfcPW2wP/9eH8+vhzJ4+Jq6u1nW5khaPqeyirhvrOmBUPW5eVggTyyOZX9yrunn0AAxKdpR8sP1dBU1RQjtDPSjrQmcu1jaoAuPpqyKbdqZBoCPpwtjenZmRUwaT03q3eQiaCtjtGa+if18Gv3Y/n6e9PX1YHl0GndcFdyk/QOsiU3D19OlQReRLzfA35NeXdqxKiaN20c2rEOAKStj0hkS1IGQzo2fv3n+iK7MHRZIp0acKTWUrZN+AJBS4+9UYOTlKwkhHgAeAOjatf6uVibF/ACZx0Ca7gnwUPUvq5q2eYApwBQnYEuNhQ4u4NYJXL3AraOWPJ09wKmdNnm3Uzuwd4LyIkRJHpkHDuCdEQUpa//chocf+A4GnwHQqQd49dBu3b2vqDoZcyqd4Rc38orjFvjxJHgGajNLhS0Ap4Yd8c4KC+CtdSdIeeB7glZMgx/nwv2bG1wW4WKJdsZz+6iupss27/5QmwTltiUmq2YGebkR1rUDaw6lNznpr4xJw8nejqmD6u+uasr1/X1p5+zAiujUJif9ldFpODvYccOgppWTmBkWwIdbElhzKI0HxjX+dTDnTKParLAAnl56iKgzeYQHNz5hVjfz3VBbM189hBDMGRrIG2uPk5hZWOcYg9rkGS8G3zs2pFHNKjVjmBkWwNsb4knJLW5SNdaE8wUcz8g3WfahIWrt/WYBtk76pv4DV5xPSym/AL4ArbRyk/b08O7qjWmTckhDjdtKzl8sZvqH23hwtD/3jvSHylIwlGu3lWWX3hrKte0gjbeQVy5YuDaFycP6Mnv0AG1UqatXgxMtaG1rWyuOcv/+sxx8ZjjtLxyHc3GQcQgy4uDUFqiq0X/cyQO8QsDTH4Q9FGczMDWW953KqHLqAzM+g0FzwaHuvuGXmz7En3+uP8HyJMGTty2Bb6bCT7fA3Wv/uOBalw1HzlFuqDJ9Kp2frk1zOHAOBAyrPYZQf1779RiJmQX07NK4eQcqDVWsOZTOdX27mCz70BCuTvbcOMiX3+IyeH3GQFydGpewyiuriIhL5/oBvk2u1R/S2Z3QwPasiklvUtKPNZ5pPDS+aWc7ANcP8MXF8TCrYtOalPS3Gpv5mnKmUW1GmPH9GJ3K81P6NvrxEYczqKyStfcia0gMQ/x5e0M8q2LSeGxCr0Y/fs0hrcl16uCmHYRYk62TfipQs+9SIGBe4119hDC2IV/6VH1cO9Kje0++O1HCPTfVXjqhNj9vT2RDVTwvXnMNdGr86Vu1mWEBfLvnNOsTi7l1+NUQcvWfdxoqtIuxuUnaT84pyD0F+WkgocrZk2XyOnICJ/HYvfeAXdMu0fi1d2VUSCdWxaTxxIRrEHO/hZ9vhWX3aDNW1TMX7epDaQR3ciPURH0Xtr2pfXFN+Fud25g62I+/RxxjTWw6T1/fp1Hx70zMJruwzKxEA9ogpaWRqWw4eq7R29p6IpO84gpmmxnDjCEBvB5xjITzBXWOYjVlWVQqLo523NjEsx3Q+uxf39+XiLgM/nbTgEbXmF8dm4a3hzOjGthl1pQuHi5c09ubFdGpPHN9n0ZP+rMiOpU+Ph7092v4hezLBXZ0Y2SIFytj0nj0up6Nyg9SStYcSmd0j84Wr5FvCbbuvXMQ6CWECBFCOAHzgDU2juEPM4b4czqnmEOpjRv9JqVkeVQqw4M70s2MhA8QGti+9gt49o5as06vSTDyQbjx37BgOTy0Cx7excYRX/Fi6R0MunpakxN+tVlhAX++Fr2vh6nvab19Ip7QunzWIjO/lD2ncpg+xMSFw/PHIPZHGPEAdAyuc/9dPFwY3aMzqw+lN3rsworoNDq4OXJdbV1FG2hEsNYssrwJFzKXRaXSxcOZq3uZN0nOTaF+2Ik/2+YbqrTCwJpD6Uwx40yj2swwfy4UVzS6OOHF4gq2nchi2mB/s2dnu3lYIOfzy9iZ0LgYkrOLiDl7oVHddmsze2gASdlFjc4PcakXOZNTzPTQpp9pWJNNk76UshJ4FNgAHAeWSimP2jKGmqYM9MPJ3o5VjeyTeyj1IqeyipjTyKvypgghmD4kgH3JOZy72Lgr9cui0oyJxvyJwqcM8sXJocZrEX4PjHtOuzay5jGtacyENYfSkZIr3+BSwqaXtesZ455pUAzTQ/05k1NMXCM+ZAWlFWw8eo5pg/3NnvnIrsZgscb8L7IKytgWn8msoQFmz0LVxUO7mLo6tnFffpuOnaegtJKbhzVsEFBdru7ljZe7U6O/eNYfzaDcUMXMMPOT3YR+PnR0c2x0t8WV0akI0fhuu6bcMMgPZwe7Ro8bWB2bjpO9HZMHWq5UuCXZvJ++lHKtlLK3lLKHlPINW++/pvau2tFhRFx6o4Z+L49KxdnBjhst1F43c4g/UsKaQw3/kOUUlrE9PpNZYQEWmfPW08WRif268OuhGq/FtS/C+IUQ+wOsehgMl9ankVKyLCrV9KCw+HWQuFn74mhgFc3JA31xsrf7o799Q6w7fI6yyipmNaF7oCmzhwZSJbVmioZaHavVzbnZAgcBADOHBJCaV8LB0w0fuLc8OhX/9i5Nvghdk6O9HdMG+7H52PlGjQpdFZNOSOeGj0Sui5OD1md/09HzDe4vX1UlWRmbxtienZvc+6kmTxdHJvX34ddD6Q0uCmiokkTEpTO+j7dVL8aao82NyL3cnGGBZBeWs+V4w4Zdl1UaT6MH+uJpocm1u3u3I6xrBxYfTGnw0d3q2HQqq2Sd5Ysba3ZYIDlF5WypLoAmhDZ69rqXIG4JrPiLdp3B6Gh6PifOFTD38hgqSmD98+DdT2uWaqD2ro6M7+NNRFx6g4uPLY9OJaSzO2EWmmA7pLM7Q7t2YHl0w0pkSCn5JTKV0KAOjW6Dr82Ugb54ODs0uPBXSm4xv5/MYvbQQItNej/LOFhsTQP7y6fkFrMvOYfpof4Wm+92bngg5YaGx7D7VDYpuSUWOQOvNmdYIHnFFWw4eq5B6+9KzCazoI5SJM1Am0/61/bxxq+9Cz82sLrf+iPnuFhSYdE3FsCCkd1Iyipi76mceteVUrL44FkGB7ant4USDcC1fbsQ0MGV7y9PNuOehUl/h6Mr4Je7oUJr+vglMgUnBzumh152lL3zXe0C9I1va9clGmF2WACZBWUNqn1y8nwB+5NzmRve8JIHDTE3PIiT5wsbdKS9LymX+PMFzK+rqmgjuTs7MDc8iLWHMxo0OOfbPaexE6LBReYaIjSwPf39PPl+75kGffn9fOAsAq0uvaUM8NdiWHygYQdDi/acpnM7pyZ3mTVlfC9vunq5NbgU+o/7ztDJ3YlJ/Rs/RsFW2nzSd7C3Y/6IruxMyCYpq7DOdaWUfLUrme7e7oxtQPXCxpg62I8Obo5XJlwTdiZkc/J8IXeZMXjFFHs7wW0ju7I7MYfEzMtqio95HKb8C05EwA9zyL+QzfLoNKYM8L20m2TSDi3ph86/tCdSA03s74Ovp0uDyl8v2nMaJwe7BpXNbYyZQwLo4ObI17uS6133m93JdHRzNLvn0OXuvKobBinrLX1dUFrBkoMpTB3sZ5EmjWpCCO64qhsnzhUQVU99qLJKrZz1dX3rL2fdWHde1Y1jGfn1HgydzSlmy4lM5o/o2qiyC/WxsxMsGNWVg6fz6p3Z69zFUracyGRueJBFY7C0Np/0AeMbxY7Pttc9k9SB5FziUi9yXxMHfdTFxVGrs7/+6LkrE+5l/rcrGW8PZ6ZZoXfAvOFBuDja8ampWbVGPQSzv4SU/Ri+mEhQ+Sn+cnWNPuGpkfDLXdCpF9z4TpP272hvx+0jtS/hxMzav4Rzi8pZGZPGjFB/vNwbNy6hPq5O9swf0ZWNx87VWYTtVFYhm46f57Z6JuhoiuDO7tw40I9vdieTU1h7jagvf0+isKyS+5s4ErkuM4b44+niwH/qmdRjdUw62YXl3HGV5c40qs0MC6BzO2e+2Fl3DB9vTcDR3s6iZzvVbgkPwt3Jvt5Ztb7ZnYyUssEltfWikj4Yp1LrxsqYNM7kmC42JaXknY3xdG7nxOwwyzbtVLv/6u64OtrzUR1T1+1LyuH3k1ncMybY7N4qpnRq58ydVwWzKjbN9JfP4Fsom7cMQ3Eevzq/xKD9f4UDX8KG/4Nvp4JLB23kbQMGddVm/siuuDnZ8/7m2uev/Xx7IqUVhlrnnzXX3aO11/fdTfG1rvP2+njcHO25Z0yIVWJ4alJvSioMpr+A0XoN/W9XMlMH+ZmcA9dcbk4O3H91dzYfP8/hWnpUlVdW8dHWBAYHtmecmd1VTXFxtOeeMcFsj88i8nSuyXVOZRWyPDqVO0Z1q3V6THN0cHPinjEh/HY4g+MZpo/2swrK+G7vGaaH+pvdjdvaVNI3emh8dxztBa//esxk++G6I+c4eDqPpyf1afRozYbycnfirtHB/BqXzoHkK9/gVVWSf/x2DP/2LtxrpUQD8OC47rg52vNaLa/Fx8l+XF/6T7L63alV5lz7DOz/D/SdCvdt1EYNm6FzO2fuHxvCb3EZxKVeOYVfal7xHxN+W+ri6eV8PF24f2x3Vsemm5xG8EByLuuPnuOBcT0aVUmyMXp2acetw7vy7Z5kos5c+n6QUvLSqsNUGKrqnH/WXPeMCaa9qyNvrj1ushjdj/vPkJpXYlatnobE4NfehVd/PXrFBf6qKsnLq47g6mjf5BIeDaHNdezAq2uOmnwdPtxykrJKA483YfSuramkb9TF04Vnru/DlhOZLL+s3HHahRJeXnWEvr4eFr1QZcqj1/YksKMrzy07dMUUfh9sSeBIWj7P39DX4s0JNXVq58zCG/qyMyH7imsMxzPy+eL3JK4J64ffrR/AwrPw9Ant9uavG1Usri5/Gdedzu2ceXrppa9DhaGKJxbH4mgneHKS9ZIdwIPju+Pj6cwTi2O4WPJnr6W8onKeXBxDVy837r/ael++AC/e2Bf/Dq48sTj2kolmvtl9mg1Hz/Ps5D509276WVV9PFwcWXhDX/Ym5VxxnSUxs5B/rT/B+N7eXNPb/LEitXFzcuCFG/txJC2fdzdeeub15c4k9pzK4eWb+lvtyxe0eXxfmtqP/cm5fL370ms92+Mz+WHfWe4eHWLV/4WlqKRfwz1jQhgR4sWLKw//Udc87UIJ9317kPLKKj69fajFusTVxt3ZgX/PCeVsbjH3L4okp7AMKSXf7zvDR1sSuHlYoE1G+i0Y1Y3xvb15/ddjLDl4lqoqyaGUC9z9zQE6ujvywo3GKpx2duDppxWTsyAPF0c+nDeEpKxCHv85hvzSCkrKDSxcfpioM3m8NWdwk4uKNSaGT28bSlpeCX/5LpKzOcUkZhZyz7cHyS4s59PbhuLubN1KJh4ujnxy21Byi8qZ8cluvvj9FM8vi+P1iGNM7Odjlbb8y80bHsSEvl14c+1x42A8yensIv7yXSSujva8ffNgqx3lV5s22I/5I7ry2fZTvLsxnsTMQt7fdJK31p3gxkG+Vj8YA61tf2I/H95ce5zv953BUCXZlZDN4z/H56/9KQAABaxJREFU0NunHc9NaVz5EL0IS03XZy3h4eEyMjLSZvvLKyrn7m8OcCj1In7tXcguLMPR3o7/LBjGOCsezVxuZUwqzy2Lw04IPF0dySooY1xvb764Y5hVj/JrKiit4IHvotiblIOroz0lFQZ8PJ1ZdO8I+vo2va5JY/yw7wwvrz6Cs4Md9kJQVG7gyYm9eHKidY/ya1pzKJ1nfzlEmXGAjpuTPe/fOoTJA2w34vJw6kWeXx7HsYx8nBy0i90Lb+hrs14iF0squOebA0SfvYCPpzPZheW4O9nzzT3DGdat8YXZmqLSUMVzy+JYUWME/fRQf/5982CbfSaKyip56IcodiZk42AnqKySdO/szqJ7RzSpGqc1CSGipJThVyxXSf9KZZUGlkWlEnk6Dx9PFxaM6kpgR9v/QxMzC/hpfwoXSsoZ18ubaaHm1zRpLEOVZN2RDKLO5BHQwZW54UE2H2l4JO0iy6O1CU5uCvVneBOqP5or7UIJG46cw95OMGWgr1UuGNZHSklOUTnuTg5Wu65Ul/LKKuPnIhf/Dq4sGNXNot1EG+pI2kXizxXQx9eDgRYY/dtYVVWSTcfPE3P2Al293JgVFqDL/6M+KukriqK0IbUlfdWmryiK0oaopK8oitKGqKSvKIrShqikryiK0oaopK8oitKGqKSvKIrShqikryiK0oaopK8oitKGNPvBWUKILKBh01pdqTOQbcFwWgL1nNuGtvac29rzBfOfczcp5RW1Y5p90jeHECLS1Ii01kw957ahrT3ntvZ8wXrPWTXvKIqitCEq6SuKorQhrT3pf6F3ADpQz7ltaGvPua09X7DSc27VbfqKoijKpVr7kb6iKIpSg0r6iqIobUirTPpCiClCiHghRKIQYqHe8VibECJICLFNCHFcCHFUCPGE3jHZihDCXggRI4SI0DsWWxBCdBBCLBNCnDD+v6/SOyZrE0I8ZXxfHxFC/CyEsP10XVYmhPhaCJEphDhSY5mXEGKTECLBeNvREvtqdUlfCGEPfArcAPQH5gsh+usbldVVAn+VUvYDRgGPtIHnXO0J4LjeQdjQh8B6KWVfIJRW/tyFEAHA40C4lHIgYA/M0zcqq/gWmPL/27l/kCziOI7j7w9YkEZTFKWBBtJsQ0RCRLYV2dJWSLQWNEW1tDZEtLVYISRFmJBDUGBDm0QWRLWEhT5lKUR/aLHo03AniNTUc/ezu+9ree5+w+/5wPPwubvfHbds7AwwbrsbGM/3/1nlSh/YAby2PWV7AbgF9CfOVCjbs7Yn8+1vZEXQnjZV8SR1APuBwdRZyiBpHbAbuApge8H257SpStECrJHUArQC7xPnaTrbj4BPy4b7gaF8ewg41IzvqmLptwMzS/Yb1KAAF0nqBHqAibRJSnEZOA38Sh2kJFuBeeB6vqQ1KKktdagi2X4HXASmgVngi+0HaVOVZqPtWchO7IANzZi0iqWvP4zV4rlUSWuBO8Ap219T5ymSpAPAnO0nqbOUqAXYDlyx3QN8p0mX/CtVvo7dD3QBm4E2SUfSpvq/VbH0G8CWJfsdVPBycDlJq8gKf9j2aOo8JegFDkp6S7aEt1fSjbSRCtcAGrYXr+JGyA4CVbYPeGN73vYPYBTYlThTWT5K2gSQf841Y9Iqlv5joFtSl6TVZDd9xhJnKpQkka3zvrJ9KXWeMtg+a7vDdifZb/zQdqXPAG1/AGYkbcuH+oCXCSOVYRrYKak1/5/3UfGb10uMAQP59gBwtxmTtjRjkpXE9k9JJ4D7ZHf6r9l+kThW0XqBo8BzSc/ysXO27yXMFIpxEhjOT2imgGOJ8xTK9oSkEWCS7Cm1p1TwlQySbgJ7gPWSGsB54AJwW9JxsoPf4aZ8V7yGIYQQ6qOKyzshhBD+Iko/hBBqJEo/hBBqJEo/hBBqJEo/hBBqJEo/hBBqJEo/hBBq5DcO54BEJwz93AAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sys.initial_conditions[phi] = np.deg2rad(1.0)\n", "x = sys.integrate()\n", "plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The behavior does not look similar to the previous simulation. This is an example of chaotic behavior. The plate angle can not be reliably predicted because slight changes in the initial conditions cause the behavior of the system to vary widely." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Visualization\n", "\n", "Finally, the system can be animated by attached a cylinder and a plane shape to the rigid bodies. To properly align the coordinate axes of the shapes with the bodies, simple rotations are used." ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "rod_shape = Cylinder(2 * lA, 0.005, color='red')\n", "plate_shape = Plane(h, w, color='blue')\n", "\n", "v1 = VisualizationFrame('rod',\n", " A.orientnew('rod', 'Axis', (sm.pi / 2, A.x)),\n", " Ao,\n", " rod_shape)\n", "\n", "v2 = VisualizationFrame('plate',\n", " B.orientnew('plate', 'Body', (sm.pi / 2, sm.pi / 2, 0), 'XZX'),\n", " Bo,\n", " plate_shape)\n", "\n", "scene = Scene(N, No, v1, v2, system=sys)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`create_static_html()` is a quick way to generate all of the data needed for pythreejs." ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "scene.create_static_html(overwrite=True, silent=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For each visualizaion frame, the 4x4 transform matrices are obtained with:" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "rod_matrices = v1.evaluate_transformation_matrix(x, list(sys.constants.values()))\n", "plate_matrices = v2.evaluate_transformation_matrix(x, list(sys.constants.values()))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Recreate the meshes in the animation with pythreejs. Make sure to use numbers, not symbols. Also, you need to uniquely name each mesh." ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "rod_mesh = pjs.Mesh(\n", " pjs.CylinderBufferGeometry(0.005, 0.005, sys.constants[lB] - sys.constants[h] / 2),\n", " pjs.MeshStandardMaterial(color='red'),\n", " name='rod')\n", "\n", "plate_mesh = pjs.Mesh(pjs.PlaneBufferGeometry(sys.constants[h], sys.constants[w]),\n", " pjs.MeshStandardMaterial(color='blue', side='DoubleSide'),\n", " name=\"plate\")\n", "\n", "ceil_mesh = pjs.Mesh(pjs.BoxBufferGeometry(0.3, 0.2, 0.02),\n", " pjs.MeshStandardMaterial(color='gray'),\n", " name=\"ceiling\")" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "x_arrow = pjs.ArrowHelper(dir=[1, 0, 0], length=0.25, color='blue')\n", "y_arrow = pjs.ArrowHelper(dir=[0, 1, 0], length=0.25, color='red')\n", "z_arrow = pjs.ArrowHelper(dir=[0, 0, 1], length=0.25,color='green')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To set the three.js transform matrices directly the `matrixAutoUpdate` must be disabled." ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "# Animation will not update without this set.\n", "rod_mesh.matrixAutoUpdate = False\n", "plate_mesh.matrixAutoUpdate = False\n", "\n", "# Set initial position\n", "rod_mesh.matrix = rod_matrices[0]\n", "plate_mesh.matrix = plate_matrices[0]\n", "ceil_mesh.position = [0.0, 0.0, -0.01]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Setup the scene and the renderer." ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [], "source": [ "view_width = 600\n", "view_height = 400\n", "camera = pjs.PerspectiveCamera(position=[0.4, 0.4, 0.4], aspect=view_width/view_height)\n", "key_light = pjs.DirectionalLight(position=[0, 10, 10])\n", "ambient_light = pjs.AmbientLight()\n", "scene_pjs = pjs.Scene(children=[rod_mesh, plate_mesh, ceil_mesh, x_arrow, y_arrow, z_arrow,\n", " camera, key_light, ambient_light])\n", "controller = pjs.OrbitControls(controlling=camera)\n", "renderer = pjs.Renderer(camera=camera, scene=scene_pjs, controls=[controller], width=view_width, height=view_height)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Display the scene:" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "5380fa104b994affa4de3dfdeed3df04", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Renderer(camera=PerspectiveCamera(aspect=1.5, position=(0.4, 0.4, 0.4), quaternion=(0.0, 0.0, 0.0, 1.0), scale…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "renderer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create the key frame tracks. Make sure use `scene/.matrix` to access the sub component of the scene." ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [], "source": [ "rod_track = pjs.VectorKeyframeTrack(name='scene/rod.matrix',\n", " times=list(sys.times),\n", " values=rod_matrices)\n", "plate_track = pjs.VectorKeyframeTrack(name='scene/plate.matrix',\n", " times=list(sys.times),\n", " values=plate_matrices)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create the animation:" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "8d7bec788d804bd19ed4ac098249ee22", "version_major": 2, "version_minor": 0 }, "text/plain": [ "AnimationAction(clip=AnimationClip(duration=10.0, tracks=(VectorKeyframeTrack(name='scene/rod.matrix', times=a…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "clip = pjs.AnimationClip(tracks=[rod_track, plate_track], duration=sys.times[-1])\n", "action = pjs.AnimationAction(pjs.AnimationMixer(scene_pjs), clip, scene_pjs)\n", "action" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.0" } }, "nbformat": 4, "nbformat_minor": 4 }