{ "cells": [ { "cell_type": "markdown", "metadata": { "lang": "en" }, "source": [ "# Lagrangian mechanics\n", "\n", "> Marcos Duarte \n", "> [Laboratory of Biomechanics and Motor Control](http://pesquisa.ufabc.edu.br/bmclab) \n", "> Federal University of ABC, Brazil" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\"The theoretical development of the laws of motion of bodies is a problem of such interest and importance, that it has engaged the attention of all the most eminent mathematicians, since the invention of dynamics as a mathematical science by Galileo, and especially since the wonderful extension which was given to that science by Newton. Among the successors of those illustrious men, Lagrange has perhaps done more than any other analyst, to give extent and harmony to such deductive researches, by showing that the most varied consequences respecting the motions of systems of bodies may be derived from one radical formula; the beauty of the method so suiting the dignity of the results, as to make of his great work a kind of scientific poem.\"   Hamilton (1834)\n", "
" ] }, { "cell_type": "markdown", "metadata": { "toc": 1 }, "source": [ "

Contents

\n", "
" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:28:35.377871Z", "start_time": "2021-03-31T15:28:34.613888Z" } }, "outputs": [], "source": [ "# import necessary libraries and configure environment\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "sns.set_context('notebook', font_scale=1.2, rc={\"lines.linewidth\": 2})\n", "# import Sympy functions\n", "import sympy as sym\n", "from sympy import Symbol, symbols, cos, sin, Matrix, simplify, Eq, latex, expand\n", "from sympy.solvers.solveset import nonlinsolve\n", "from sympy.physics.mechanics import dynamicsymbols, mlatex, init_vprinting\n", "init_vprinting()\n", "from IPython.display import display, Math" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction\n", "\n", "We know that some problems in dynamics can be solved using the principle of conservation of mechanical energy, that the total mechanical energy in a system (the sum of potential and kinetic energies) is constant when only conservative forces are present in the system. Such approach is one kind of energy methods, see for example, pages 495-512 in Ruina and Pratap (2019). \n", "\n", "Lagrangian mechanics (after [Joseph-Louis Lagrange](https://en.wikipedia.org/wiki/Joseph-Louis_Lagrange)) can be seen as another kind of energy methods, but much more general, to the extent is an alternative to Newtonian mechanics. \n", "\n", "The Lagrangian mechanics is a formulation of classical mechanics where the equations of motion are obtained from the kinetic and potential energy of the system (scalar quantities) represented in generalized coordinates instead of using Newton's laws of motion to deduce the equations of motion from the forces on the system (vector quantities) represented in Cartesian coordinates. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Generalized coordinates\n", "\n", "The direct application of Newton's laws to mechanical systems results in a set of equations of motion in terms of Cartesian coordinates of each of the particles that make up the system. In many cases, this is not the most convenient coordinate system to solve the problem or describe the movement of the system. For example, for a serial chain of rigid links, such as a member of the human body or from a robot manipulator, it may be simpler to describe the positions of each link by the angles between links. \n", "\n", "Coordinate systems such as angles of a chain of links are referred as [generalized coordinates](https://en.wikipedia.org/wiki/Generalized_coordinates). Generalized coordinates uniquely specify the positions of the particles in a system. Although there may be several generalized coordinates to describe a system, usually a judicious choice of generalized coordinates provides the minimum number of independent coordinates that define the configuration of a system (which is the number of degrees of freedom of the system), turning the problem simpler to solve. In this case, when the number of generalized coordinates equals the number of degrees of freedom, the system is referred as a holonomic system. In a non-holonomic system, the number of generalized coordinates necessary do describe the system depends on the path taken by the system. \n", "\n", "Being a little more technical, according to [Wikipedia](https://en.wikipedia.org/wiki/Configuration_space_(physics)): \n", "\"In classical mechanics, the parameters that define the configuration of a system are called generalized coordinates, and the vector space defined by these coordinates is called the configuration space of the physical system. It is often the case that these parameters satisfy mathematical constraints, such that the set of actual configurations of the system is a manifold in the space of generalized coordinates. This manifold is called the configuration manifold of the system.\"\n", "\n", "In problems where it is desired to use generalized coordinates, one can write Newton's equations of motion in terms of Cartesian coordinates and then transform them into generalized coordinates. However, it would be desirable and convenient to have a general method that would directly establish the equations of motion in terms of a set of convenient generalized coordinates. In addition, general methods for writing, and perhaps solving, the equations of motion in terms of any coordinate system would also be desirable. The [Lagrangian mechanics](https://en.wikipedia.org/wiki/Lagrangian_mechanics) is such a method." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Euler–Lagrange equations\n", "\n", "\n", "See [this notebook](http://nbviewer.jupyter.org/github/BMClab/bmc/blob/master/notebooks/lagrangian_mechanics_generalized.ipynb) for a deduction of the Lagrange's equation in generalized coordinates.\n", "\n", "Consider a system whose configuration (positions) can be described by a set of $N$ generalized coordinates $q_i\\,(i=1,\\dotsc,N)$.\n", "\n", "Let's define the Lagrange or Lagrangian function $\\mathcal{L}$ as the difference between the total kinetic energy $T$ and the total potential energy $V$ of the system in terms of the generalized coordinates as:\n", "

\n", "\n", "\\begin{equation} \n", "\\mathcal{L}(t,q,\\dot{q}) = T(\\dot{q}_1(t),\\dotsc,\\dot{q}_N(t)) - V(q_1(t),\\dotsc,q_N(t))\n", "\\label{}\n", "\\end{equation}\n", "\n", " \n", "where the total potential energy is only due to conservative forces, that is, forces in which the total work done to move the system between two points is independent of the path taken.\n", " \n", "The Euler–Lagrange equations (or Lagrange's equations of the second kind) of the system are (omitting the functions' dependencies for sake of clarity):\n", "

\n", "\n", "\\begin{equation} \n", "\\frac{\\mathrm d }{\\mathrm d t}\\left( {\\frac{\\partial \\mathcal{L}}{\\partial \\dot{q}_i }} \n", "\\right)-\\frac{\\partial \\mathcal{L}}{\\partial q_i } = Q_{NCi} \\quad i=1,\\dotsc,N\n", "\\label{}\n", "\\end{equation}\n", " \n", " \n", "where $Q_{NCi}$ are the generalized forces due to non-conservative forces acting on the system, any forces that can't be expressed in terms of a potential. \n", "\n", "Once all derivatives of the Lagrangian function are calculated and substitute them in the equations above, the result is the equation of motion (EOM) for each generalized coordinate. There will be $N$ equations for a system with $N$ generalized coordinates." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Steps to deduce the Euler-Lagrange equations\n", "\n", "1. Model the problem. Define the number of degrees of freedom. Carefully select the corresponding generalized coordinates to describe the system;\n", "2. Calculate the total kinetic and total potential energies of the system. Calculate the Lagrangian;\n", "3. Calculate the generalized forces for each generalized coordinate;\n", "4. For each generalized coordinate, calculate the three derivatives present on the left side of the Euler-Lagrange equation;\n", "5. For each generalized coordinate, substitute the result of these three derivatives in the left side and the corresponding generalized forces in the right side of the Euler-Lagrange equation.\n", "\n", "The EOM's, one for each generalized coordinate, are the result of the last step." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example: Particle moving under the influence of a conservative force\n", "\n", "Let's deduce the EOM of a particle with mass $m$ moving in the three-dimensional space under the influence of a [conservative force](https://en.wikipedia.org/wiki/Conservative_force). \n", "\n", "The model is the particle moving in 3D space and there is no generalized force (non-conservative force); the particle has three degrees of freedom and we need three generalized coordinates, which can be $(x, y, z)$, where $y$ is vertical, in a Cartesian frame of reference. \n", "The Lagrangian $(\\mathcal{L} = T - V)$ of the particle is:\n", "

\n", "\n", "\\begin{equation} \n", "\\mathcal{L} = \\frac{1}{2}m(\\dot x^2(t) + \\dot y^2(t) + \\dot z^2(t)) - V(x(t),y(t),z(t)) \n", "\\label{}\n", "\\end{equation}\n", "\n", "\n", "The equations of motion for the particle are found by applying the Euler–Lagrange equation for each coordinate. \n", "For the $x$ coordinate:\n", "

\n", "\n", "\\begin{equation} \n", "\\frac{\\mathrm d }{\\mathrm d t}\\left( {\\frac{\\partial \\mathcal{L}}{\\partial \\dot{x}}} \n", "\\right) - \\frac{\\partial \\mathcal{L}}{\\partial x } = 0\n", "\\label{}\n", "\\end{equation}\n", "\n", "\n", "And the derivatives are:\n", "

\n", "\n", "\\begin{equation} \\begin{array}{rcl}\n", "&\\dfrac{\\partial \\mathcal{L}}{\\partial x} &=& -\\dfrac{\\partial V}{\\partial x} \\\\\n", "&\\dfrac{\\partial \\mathcal{L}}{\\partial \\dot{x}} &=& m\\dot{x} \\\\\n", "&\\dfrac{\\mathrm d }{\\mathrm d t}\\left( {\\dfrac{\\partial \\mathcal{L}}{\\partial \\dot{x}}} \\right) &=& m\\ddot{x} \n", "\\end{array}\n", "\\label{}\n", "\\end{equation}\n", "\n", "\n", "Finally, the EOM is:\n", "

\n", "\n", "\\begin{equation}\\begin{array}{l}\n", "m\\ddot{x} + \\dfrac{\\partial V}{\\partial x} = 0 \\quad \\rightarrow \\\\\n", "m\\ddot{x} = -\\dfrac{\\partial V}{\\partial x} \n", "\\end{array}\n", "\\label{}\n", "\\end{equation}\n", "\n", "\n", "and same procedure for the $y$ and $z$ coordinates. \n", "\n", "The equation above is the Newton's second law of motion.\n", "\n", "For instance, if the conservative force is due to the gravitational field near Earth's surface $(V=[0, mgy, 0])$, the Euler–Lagrange equations (the EOM's) are:\n", "

\n", "\n", "\\begin{equation} \\begin{array}{rcl}\n", "m\\ddot{x} &=& -\\dfrac{\\partial (0)}{\\partial x} &=& 0 \\\\\n", "m\\ddot{y} &=& -\\dfrac{\\partial (mgy)}{\\partial y} &=& -mg \\\\\n", "m\\ddot{z} &=& -\\dfrac{\\partial (0)}{\\partial z} &=& 0 \n", "\\end{array}\n", "\\label{}\n", "\\end{equation}\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example: Ideal mass-spring system\n", "\n", "

\"mass
\n", "\n", "Consider a system with a mass $m$ attached to an ideal spring (massless, length $\\ell_0$, and spring constant $k$) at the horizontal direction $x$. A force is momentarily applied to the mass and then the system is left unperturbed. \n", "Let's deduce the EOM of this system. \n", "\n", "The system can be modeled as a particle attached to a spring moving at the direction $x$, the only generalized coordinate needed (with origin of the Cartesian reference frame at the wall where the spring is attached), and there is no generalized force. \n", "The Lagrangian $(\\mathcal{L} = T - V)$ of the system is: \n", "

\n", "\n", "\\begin{equation} \n", "\\mathcal{L} = \\frac{1}{2}m\\dot x^2 - \\frac{1}{2}k(x-\\ell_0)^2\n", "\\label{}\n", "\\end{equation}\n", "\n", "\n", "And the derivatives are:\n", "

\n", "\n", "\\begin{equation} \\begin{array}{rcl}\n", "&\\dfrac{\\partial \\mathcal{L}}{\\partial x} &=& -k(x-\\ell_0) \\\\\n", "&\\dfrac{\\partial \\mathcal{L}}{\\partial \\dot{x}} &=& m\\dot{x} \\\\\n", "&\\dfrac{\\mathrm d }{\\mathrm d t}\\left( {\\dfrac{\\partial \\mathcal{L}}{\\partial \\dot{x}}} \\right) &=& m\\ddot{x} \n", "\\end{array} \n", "\\end{equation}\n", "\n", "\n", "Finally, the Euler–Lagrange equation (the EOM) is:\n", "

\n", "\n", "\\begin{equation}\n", "m\\ddot{x} + k(x-\\ell_0) = 0\n", "\\label{}\n", "\\end{equation}\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example: Simple pendulum under the influence of gravity\n", "\n", "

\"simple
\n", "\n", "Consider a pendulum with a massless rod of length $d$ and a mass $m$ at the extremity swinging in a plane forming the angle $\\theta$ with the vertical. \n", "Let's deduce the EOM of this system.\n", "\n", "The model is a particle oscillating as a pendulum under a constant gravitational force $-mg$. \n", "Although the pendulum moves at the plane, it only has one degree of freedom, which can be described by the angle $\\theta$, the generalized coordinate. Let's adopt the origin of the reference frame at the point of the pendulum suspension. \n", "\n", "The kinetic energy of the system is:\n", "

\n", "\n", "\\begin{equation}\n", "T = \\frac{1}{2}mv^2 = \\frac{1}{2}m(\\dot{x}^2+\\dot{y}^2)\n", "\\end{equation}\n", "\n", "\n", "where $\\dot{x}$ and $\\dot{y}$ are:\n", "

\n", "\n", "\\begin{equation} \\begin{array}{l}\n", "x = d\\sin(\\theta) \\\\\n", "y = -d\\cos(\\theta) \\\\ \n", "\\dot{x} = d\\cos(\\theta)\\dot{\\theta} \\\\\n", "\\dot{y} = d\\sin(\\theta)\\dot{\\theta}\n", "\\end{array} \\end{equation}\n", "\n", "\n", "Consequently, the kinetic energy is:\n", "

\n", "\n", "\\begin{equation}\n", "T = \\frac{1}{2}m\\left((d\\cos(\\theta)\\dot{\\theta})^2 + (d\\sin(\\theta)\\dot{\\theta})^2\\right) = \\frac{1}{2}md^2\\dot{\\theta}^2\n", "\\end{equation}\n", " \n", "\n", "And the potential energy of the system is:\n", "

\n", "\n", "\\begin{equation}\n", "V = -mgy = -mgd\\cos\\theta\n", "\\end{equation}\n", "\n", " \n", "The Lagrangian function is:\n", "

\n", "\n", "\\begin{equation}\n", "\\mathcal{L} = \\frac{1}{2}md^2\\dot\\theta^2 + mgd\\cos\\theta\n", "\\end{equation}\n", "\n", " \n", "And the derivatives are:\n", "

\n", "\n", "\\begin{equation} \\begin{array}{rcl}\n", "&\\dfrac{\\partial \\mathcal{L}}{\\partial \\theta} &=& -mgd\\sin\\theta \\\\\n", "&\\dfrac{\\partial \\mathcal{L}}{\\partial \\dot{\\theta}} &=& md^2\\dot{\\theta} \\\\\n", "&\\dfrac{\\mathrm d }{\\mathrm d t}\\left( {\\dfrac{\\partial \\mathcal{L}}{\\partial \\dot{\\theta}}} \\right) &=& md^2\\ddot{\\theta}\n", "\\end{array} \\end{equation}\n", "\n", " \n", "Finally, the Euler–Lagrange equation (the EOM) is:\n", "

\n", "\n", "\\begin{equation}\n", "md^2\\ddot\\theta + mgd\\sin\\theta = 0\n", "\\end{equation}\n", "\n", " \n", "Note that although the generalized coordinate of the system is $\\theta$, we had to employ Cartesian coordinates at the beginning to derive expressions for the kinetic and potential energies. For kinetic energy, we could have used its equivalent definition for circular motion $(T=I\\dot{\\theta}^2/2=md^2\\dot{\\theta}^2/2)$, but for the potential energy there is no other way since the gravitational force acts in the vertical direction.\n", "In cases like this, a fundamental aspect is to express the Cartesian coordinates in terms of the generalized coordinates." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Numerical solution of the equation of motion for the simple pendulum\n", "\n", "A classical approach to solve analytically the EOM for the simple pendulum is to consider the motion for small angles where $\\sin\\theta \\approx \\theta$ and the differential equation is linearized to $d\\ddot\\theta + g\\theta = 0$. This equation has an analytical solution of the type $\\theta(t) = A \\sin(\\omega t + \\phi)$, where $\\omega = \\sqrt{g/d}$ and $A$ and $\\phi$ are constants related to the initial position and velocity. \n", "For didactic purposes, let's solve numerically the differential equation for the pendulum using [Euler’s method](https://nbviewer.jupyter.org/github/demotu/BMC/blob/master/notebooks/OrdinaryDifferentialEquation.ipynb#Euler-method). \n", "\n", "Remember that we have to: \n", "1. Transform the second-order ODE into two coupled first-order ODEs, \n", "2. Approximate the derivative of each variable by its discrete first order difference \n", "3. Write an equation to calculate the variable in a recursive way, updating its value with an equation based on the first order difference. \n", "\n", "We will also implement different variations of the Euler method: Forward (standard), Semi-implicit, and Semi-implicit variation (same results as Semi-implicit). \n", "\n", "Implementing these steps in Python: " ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:28:35.385338Z", "start_time": "2021-03-31T15:28:35.378887Z" } }, "outputs": [], "source": [ "def euler_method(T=10, y0=[0, 0], h=.01, method=2):\n", " \"\"\"\n", " First-order numerical approximation for solving two coupled first-order ODEs.\n", " \n", " A first-order differential equation is an initial value problem of the form:\n", " y'(t) = f(t, y(t)) ; y(t0) = y0 \n", " \n", " Parameters:\n", " T: total period (in s) of the numerical integration\n", " y0: initial state [position, velocity]\n", " h: step for the numerical integration\n", " method: Euler method implementation, one of the following:\n", " 1: 'forward' (standard)\n", " 2: 'semi-implicit' (a.k.a., symplectic, Euler–Cromer)\n", " 3: 'semi-implicit variation' (same results as 'semi-implicit')\n", " Two coupled first-order ODEs:\n", " dydt = v\n", " dvdt = a # calculate the expression for acceleration at each step\n", " Two equations to update the values of the variables based on first-order difference:\n", " y[i+1] = y[i] + h*v[i]\n", " v[i+1] = v[i] + h*dvdt[i]\n", " Returns arrays time, [position, velocity]\n", " \"\"\"\n", " N = int(np.ceil(T/h))\n", " y = np.zeros((2, N))\n", " y[:, 0] = y0\n", " t = np.linspace(0, T, N, endpoint=False)\n", " for i in range(N-1):\n", " if method == 1: # forward (standard) Euler method\n", " y[0, i+1] = y[0, i] + h*y[1, i]\n", " y[1, i+1] = y[1, i] + h*dvdt(t[i], y[:, i])\n", " elif method == 2: # semi-implicit Euler (Euler–Cromer) method\n", " y[1, i+1] = y[1, i] + h*dvdt(t[i], y[:, i])\n", " y[0, i+1] = y[0, i] + h*y[1, i+1]\n", " elif method == 3: # variant of semi-implicit (equal results)\n", " y[0, i+1] = y[0, i] + h*y[1, i]\n", " y[1, i+1] = y[1, i] + h*dvdt(t[i], [y[0, i+1], y[1, i]])\n", " else:\n", " raise ValueError('Valid options for method are 1, 2, 3.')\n", "\n", " return t, y\n", "\n", "\n", "def dvdt(t, y):\n", " \"\"\"\n", " Returns dvdt at `t` given state `y`.\n", " \"\"\"\n", " d = 0.5 # length of the pendulum in m\n", " g = 10 # acceleration of gravity in m/s2\n", " return -g/d*np.sin(y[0])\n", "\n", "\n", "def plot(t, y, labels): \n", " \"\"\"\n", " Plot data given in t, y, v with labels [title, ylabel@left, ylabel@right]\n", " \"\"\"\n", " fig, ax1 = plt.subplots(1, 1, figsize=(10, 4))\n", " ax1.set_title(labels[0])\n", " ax1.plot(t, y[0, :], 'b', label=' ')\n", " ax1.set_xlabel('Time (s)')\n", " ax1.set_ylabel(u'\\u2014 ' + labels[1], color='b')\n", " ax1.tick_params('y', colors='b')\n", " ax2 = ax1.twinx()\n", " ax2.plot(t, y[1, :], 'r-.', label=' ')\n", " ax2.set_ylabel(u'\\u2014 \\u2027 ' + labels[2], color='r')\n", " ax2.tick_params('y', colors='r') \n", " plt.tight_layout()\n", " plt.show() " ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:28:35.656279Z", "start_time": "2021-03-31T15:28:35.386419Z" } }, "outputs": [ { "data": { "image/png": "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W7ZssXHHt3fLV6MoCkaNGoX169djwIABuOGGGxASEoKDBw9i5cqV+OOPP9CnTx+X+nrPPfdg5cqVuOiiizBy5Eh88803ePDBB1FdXY2oqCg8/PDDGDt2LIYOHYpffvkFr732GmpqauoMHmoKCgowaNAgxMTE1ClXn376KSZPnozDhw9j1qxZjfZn//79GD58OHJzczF06FBccMEFKCkpwXfffYdRo0bhrbfecvn69KRP8+bNw5w5c9CyZUuMGTMGCQkJ2Lp1K5577jl8//33WLduXT13+Orqapx33nk4cuQILrjgAoSEhODrr7/G7NmzUV5ejkcffdTm8zNnzsQrr7yC1q1bY/r06QgNDcWyZcuwceNGVFVV1btujcA333yD7777DhdeeCFuuukmrFu3DkuWLEFubi4ee+wxjBw5EsOGDcO0adOwfft2fPPNN8jKysK2bdsQFCR2P+Dee+/FTz/9hIsuugjnnXcefvvtN7zzzjvYs2cPVq1aZfPZzz//HJMmTUJYWBgmTZqE1q1b4/fff8eAAQPQo0cPh8dfvHgxbrjhBkRERODiiy9Gu3btsHfvXrzzzjv49ttvsX79eiQnJ9f73vjx4/HXX3/hggsuwNixY5GYmNjob3n22Wdx7733IjY2FlOmTEFMTAx+/vnnumvYGevWrcMTTzyBIUOGYNq0aThx4kTddfT0009j165dGDhwIMaMGYPy8nKsXbsW8+bNw2+//YZff/0VISG05Jw6dSrefvttLF26FBdffHG9dpiRccqUKU77Mnz4cBQWFuLll19Gjx49MHbs2Lr3evbsiR49eiAjIwOffPIJXnzxxXq/6/PPP0deXh7uvvtuhIeHN3rOJBKJxAZFIpFInJCSkqIAUHJycmxenzJligJAadOmjbJv375636uoqFAOHjxY7/X8/Hylc+fOSmxsrFJWVlavrZSUFJvXFi9erABQJkyYoJSXl9u8N2fOHAWA8uKLL9a9dvLkSSU6OloJDQ1VVq1aVa/9AwcO2PwPQBk2bJiDX64ov//+uwJASUlJUY4fP173enV1tTJ69GgFgDJ//vx6vwGAcs455yglJSX1jjlmzBgFgLJt2zab14uLi5WmTZsqSUlJSk1NjcP+qPnggw8UAErfvn1t2ikpKVF69+6tAFDef/99m+8wmdnL0hlbtmxRACiXXHJJvfdqa2uV/Pz8uv9zcnIUAMqUKVMctpmSkqIcOnSo7vWCggKlZcuWSpMmTZSWLVsq//77b917lZWVSteuXZWwsDCb864oJC8AymWXXabU1tbWvb5v3z4lNjZWCQ0NVbKzs+te/+233xQAypw5c2yOM2zYMMVisSiffvqpzesFBQVKjx49lIiICOXo0aONniNP+vTrr78qAJRBgwYphYWFNsdi1/sdd9xh8zq7ri644AKb++b48eNKTEyMEh0drVRVVdW9vnbtWgWAkpGRoeTl5dW9Xl5ervTv379OJmrY/fTbb7/V+42NyVd9TTk75+rf4uw+Dw4Otrlva2trlXPPPVcBoMTExNS7pm+44QYFgPL11187bMseb35jcnKysn///rrXq6urlSFDhigAlPXr19e9fvr0aaVFixZKSEiI8ueff9oca+bMmXXXi/qc7d69WwkNDVXat2+vHDlyxOY7K1asUIKCgurdh8OGDVMAKN27d1dOnjzp0u9XFEXJzs5WQkJClLi4OJvx0Gq1Kpdffnld/9QwmQJQ3nrrLafHtVqt9V6fPXu2AkD56KOPbF7v0KGDEhYWppw6dcrm9fLycqV58+ZKQkKCUl1dXfe6o2vNmcwYzz77rAJAefXVV+u9N2TIEMVisSi7d+92+F2JRCJpCOnCLZFIPGbWrFl1bnRqwsPD0a5du3qvx8bGYtq0aSgoKMCff/7Z6PFffvllhIaG4n//+x8iIiJs3nv44YfRsmVLfPDBB3WvLV26FMXFxbj55psxdOjQesdLSkpy5WcBQJ3L80MPPYSEhIS610NCQvDCCy8gKCgICxcudPjd5557Dk2bNq33+i233AIAePvtt21ef//991FaWoobbrihbhe/IRYtWgSAEuuo22natCmeeuopAHDaN1dhbpxNmjSp915QUBBiY2NdPtYjjzxik/ynefPmuPjii1FWVoZbbrkFnTt3rnsvLCwMEydORFVVlUOX1+DgYDz99NM2O45paWmYMWMGqqur8d577zXYly1btmDVqlWYMGGCjYso69ejjz6KiooKfPHFFy7/Pnf69MorrwCga8B+V2zq1Kno2bOnU9fvV199FZGRkXX/JyQk4JJLLkFxcTF2795d9zq7dh988EG0aNGi7vWIiAg8+eSTLv8uvbnyyitt7tugoCBcffXVAIAzzjgDkydPtvn8VVddBQDYvHmz8L498sgjNjvAISEhuPbaawHAZixbtmwZ8vPzceWVV6Jv3742x5g7d67DHd4333wT1dXVeOmll+rF+Z599tm4+OKL8e2336K4uLjed+fNm4e4uDiXf8eHH36Impoa3H777TbjocViwVNPPdXg+NOjRw+nHjLp6en1XL8B4O677waAeqER11xzDaqqquo8ZRjLli1DYWEhJk+eXLdj7SnXXXcdIiIi6o23O3fuxJo1azBixAh06NDBqzYkEklgIl24JRKJx/Tr18/pezt27MCzzz6L1atX4+jRo/ViWg8fPtzgscvKyrBlyxbExcXhpZdecviZ8PBw7Nq1q+7/9evXAwAuuOACF3+Bc/755x8AwIgRI+q917FjR7Rr1w45OTkoLCy0cYUODw936qY5atQopKWl4b333sPTTz9dpwwtWLAAISEhmDZtmst9CwoKwrBhw+q9N2LECAQHB+Pvv/926VjO6NKlC3r16oWPPvoIBw8exMUXX4xBgwahb9++brv/OnL1ZsnMGnrv0KFD9d5LTk52aLQZPnw4Hn300Tq5OeOPP/4AABQWFjqM0z158iQA2FxXjeFOn/744w+Ehobi008/dXisqqoqnDx5Enl5eWjZsmXd682bN3eYaI8pQQUFBXWvMdk7uj6GDBnitWIiCi2vE62xV4YB9899TEwMevbsWc/lm12TK1euxMaNG+t978SJE7Bardi7d2+989DQGOwIdi0OHjy43nspKSlISkpymhuhobZKS0vx8ssv46uvvsKePXtw+vRpm9h8+/H+mmuuwSOPPIKlS5fi1ltvrXvdFfdtV2nRogUmTZqEpUuX4o8//sCAAQMA0HgLuB4uI5FIJPYYcxaVSCR+QatWrRy+vn79epx99tmoqanBOeecg4svvhjR0dEICgrC5s2bsWzZskYTtxQUFEBRFJw8ebJefKczWEIfLUqdsGRLzn5j69atceDAARQVFdko0ImJiQ53YgDaUbvxxhtx//3349NPP8WUKVOwYcMGbNmyBePGjXM5Q3ZRURFatGhhE/vNCAkJQVxcHE6cOOHSsZwRHByMFStWYN68efj8889x7733AgCio6MxdepUPPHEEw532R3haNeNKXENvVddXV3vPWcxnkxOzpJkMfLy8gAAP//8M37++WennyspKWnwOJ72KS8vDzU1NY1e0yUlJTYKtLPYVHauamtr615j7TnqV3BwsM1xjYSW14nWNNS+q+cecDyesGvy2WefbbAPjq5JZ+OTMxrrX2JiolMF2llb1dXVOPvss7Fx40Z069YNkyZNQnx8fN349Oijj9Yb75OSkjBixAisWLECO3fuROfOnXH8+HEsX768LoZZC26++WYsXboUb7/9NgYMGICKigq8++67SEhIwLhx4zRpQyKRBB7ShVsikXiMM0Vx/vz5KC8vx/Lly/HDDz/gpZdewrx58zB37lyXd0zYgrVXr15QFKXBB4Mpso3tbrvT/rFjxxy+f/ToUZvPMZydE8a0adMQHh5etwviyW5ITEwM8vPzHSoONTU1OHXqFKKjo10+njNiY2Px4osv4uDBg3UJjTp27IhXXnmlzh1db44fP+7wdSanxmpRs/dffvnlBq8p5gatdZ9iYmIQGxvb6DWdkpLicvvOfqOjftXW1tYpbGqY+3lNTU2995xlmnZEQ8cBGjdwiESr39gQDZ17wPF4wr5TVFTU4DXhaFe7sfHGHjYuOOufs9cbaoslp5syZQq2bduGt99+G48//jjmzp3b4LjGdpmXLl0KgDKD19TUaLL7zOjXrx/69OmDTz75pC65X0FBAa677jqHBkiJRCJxBalASyQSzcnKykKLFi1sMloz7N0XnREVFYWuXbtix44dyM/Pd+k7/fv3B0AlglwhKCjIZvdITa9evQDAYcmbrKwsHDp0CGlpaQ1msnZEXFwcLrvsMvzxxx/4/fff8cknnyAtLQ3nnXeey8fo1asXrFYrVq9eXe+91atXo7a2Fr1793arX42RmZmJadOmYdWqVYiKisJXX32l6fFd5cCBAw53yJicmNycwa6RNWvW+KRP/fv3R0FBAXbs2KFZ+/Yw2Tu619asWeNQgWQx7QcPHqz33l9//eVy2w0dJysrSzNF1RO0+o0N0dC5LyoqchivLeKadAa7Fn///fd67+3fv9/huWmMrKwsAJQR3J6Gxvvx48ejWbNmeP/992G1WrF06VKEhITgyiuvdKldFq/tbAxn3HzzzSgvL8d7772HBQsWwGKx4IYbbnCpDYlEInGEVKAlEonmpKamIj8/H1u3brV5feHChS4rtwBw1113oaqqCtddd53DhXdBQYFNrO+UKVMQHR2NN954A2vXrq33eftYyZYtWzpdMLL6ofPnz6+LiwVosXbPPffAarW6HLNsD9u9nThxIsrKyjB9+nS3dpJY32bPno2ysrK618vKynD//fcDgMd9Y+Tk5DhU8goKClBZWVkvqZte1NbW4r777rOpdZ2Tk4NXXnkFISEhdYmlnNG3b18MGTIEX375ZV0yNnu2bdvmlgu8O3268847AQA33HCDw/q+paWldbH8nsLKsj3++OM2xqeKigrMnj3b4XeYZ8jixYttFOyDBw9i3rx5LrfdqVMnREdHY9myZTbnsLy8HDNmzHDnZ2iOVr+xIS655BLExsbiww8/rKeUz5071+EO/G233YbQ0FDceeed2LNnT733q6qqNFOur7zySoSEhODVV1+1GfsURcHs2bMbVUYdwep6//bbbzav79u3D/fdd5/T7zVp0gQTJkzA4cOH8cILL2Dr1q0YPXq0TdLGhmC1qBtT+q+44go0b94cTz75JNatW4fzzjsP6enpLrUhkUgkjpAx0BKJRHNmzpyJn376CYMHD8bEiRMRExODv/76C7///jsmTJiAzz//3KXjXHfdddi0aRPeeOMNZGRk4Pzzz0dycjLy8/ORk5OD1atX49prr62roRwXF4cPP/wQEyZMwNChQzF69Gh0794dRUVF2Lp1Kw4dOoScnJy6459zzjn4+OOPcckll6BXr14ICQnB0KFDMXToUAwcOBD33nsvnnnmGXTr1g0TJkxA06ZN8cMPP2D79u0YPHiwSzWHHTFgwAD07NkTmzdvRmhoaF02X1e58sorsWzZMnz66afo2rUrxo4dC4vFgq+//ho5OTmYOHFivYzF7sLisvv06YNu3bqhTZs2OHnyJJYtW4bq6uoGF8YiOeOMM7Bx40b06dMH5513HoqKiurcM5955hmHibbs+fDDD3H22Wdj2rRpeOWVV9CvXz80b94chw4dwtatW7F9+3b88ccfLi/k3enTOeecg6eeegqzZ89G+/btMXr0aKSlpaGkpAT79+/HqlWrMHjwYPz4448en6NBgwbh9ttvx6uvvlp37bI60LGxsfUyPQPAWWedheHDh2PlypU466yzcPbZZ+P48eP49ttvcf7557u8MxkaGoq77roLc+fORa9evTBu3DjU1NTg559/Rps2bVyO8xeBVr+xIaKiovD2229j0qRJGDJkiE0d6O3bt2Po0KH1PEc6deqERYsW4brrrkPXrl0xatQodOjQAdXV1Thw4ADWrFmD+Ph4txLbOSMjIwPz5s3DAw88gB49emDSpEl1daDz8/PRo0ePeobPxrjooouQmZmJF198Edu3b0evXr1w4MABfPfddxgzZgwOHDjg9LtTpkzB4sWL8cADD9T97ypRUVHo168fVq9ejauuugrt27dHcHAwLr74Ypxxxhl1n2vSpAmmTJmCl19+GYBMHiaRSDRAeKEsiUTitzRWB7qhmsLffvut0q9fPyUqKkqJiYlRRo4cqaxataqu5uvixYvrtWVfH1Z9rDFjxijx8fFKaGiokpiYqJx55pnKgw8+qOzcubPe57dv365cffXVSps2bZTQ0FAlISFBGTp0qLJgwQKbzx0/fly54oorlISEBCUoKMhh/dqPPvpIGTRokBIVFaWEh4crXbp0UebPn1+vLnVjv8Gel19+WQGgTJw40aXP21NbW6u8/vrrSp8+fZTIyEglMjJS6d27t/Laa6/Z1CNmuFsH+uDBg8rs2bOVgQMHKomJiUpYWJjStm1bZdSoUcr3339v81l36gQzGqrJ6+wawX91uw8fPqxMnjxZiY+PV8LDw5VevXopH3zwQb3jNFSTuLi4WHn88ceV3r17K02bNlUiIiKU1NRUZfTo0cqCBQsc1vF2hLt9YqxZs0a57LLLlNatWyuhoaFKXFyc0qNHD+XOO++sVz+4oevK2Xm0Wq3Kq6++qnTq1EkJCwtTWrdurdxyyy1KYWGh0+MVFhYq06dPV+Lj45WwsDCla9euyoIFC9yWr9VqVZ5++mklPT1dCQ0NVZKSkpRZs2YppaWlDdaBtpe3ojQsw8bqADtCq9/YWN+WL1+uDBo0SImMjFSaN2+uXHzxxcrOnTsbPN7WrVuVKVOmKMnJyUpYWJgSGxurdO3aVZk+fbqyYsUKm8+yOtCe8u677yo9e/ZUwsPDlbi4OGXy5MnK4cOHla5duyrNmzd3+XcyDhw4oFx55ZVKmzZtlIiICKVLly7K008/rVRXV9fdI46wWq1KWlqaAkBp0aKFUllZ6fBzzs7b3r17lQsvvFBp0aKFYrFYnF5HrK59mzZtbOpLSyQSiSdYFEWVgUcikUh8RKtWrRATE2NTz9bMXHPNNXjvvfewYsUKnH322b7ujl9gsVgwbNgwh3HpvsKIfZJIPKG4uBiJiYno2bNnXWkts7Bo0SJMmzYNDz/8sGbu+hKJJHCRMdASicTn5Ofn49SpU3V1Vc3O/v378cknn6BLly5SeZZIJLpy8uTJehn8a2pqcPfdd6OiosJhMjB/pqamBi+++CJCQ0Ol+7ZEItEEGQMtkUh8RmFhIZ5++mksX74ctbW1mDBhgq+7JJT33nsPu3fvxieffIKqqirMnz/f112SSCQBxhdffIFHHnkE5557LpKSkpCfn4/Vq1djz5496N27N2677TZfd1ETVq9ejd9++w0rV67E9u3bcccdd6Bt27a+7pZEIjEBUoGWSCQ+o7CwEM8++yzS0tLw5JNPYvr06b7uklAWLlyI1atXIykpCa+88grGjRvn6y5JJJIAo1+/fhg2bBjWrVuHEydOQFEUpKWl4aGHHsJ9993nswz7WvPrr7/i0UcfRcuWLXHTTTfhqaee8nWXJBKJSZAx0BKJRCKRSCQSiUQikbiAjIGWSCQSiUQikUgkEonEBaQCLZFIJBKJRCKRSCQSiQvIGGidsFgsAICQEHnKJRKJRCKRSCQSiXNqamoAADLa1njIHWiJRCKRSCQSiUQikUhcQG6H6gTbebavvSiRSCQSiUQikUgkakJDQ33dBYkT5A60RCKRSCQSiUQikUgkLiAVaIlEIpFIJBKJRCKRSFxAKtASiUQikUgkEolEYhb27AHmzAEGDgQSEoCoKKB7d2D2bKCgoP7ny8qA++8HUlOB8HD6e//99Lojtm4FLroIiI0FmjYF+vcHvvxS5C8yFBZFpnbTBRbHIGOgJRKJRCKRSCQSSUN4pTvcfz/w2muk5A4YAISFAb/9Bnz6KZCcDGzcCCQm0mdra4FzzgFWrQKuvhoYOhTYtg14/XVgyBDgl1+A4GB+7C1bgMGDSdGeOROIjwfefx/4/XfgnXeAadO8//EGRyrQOiEVaIlEIpFIJBKJROIKXukOf/0FZGYCzZvbvv7QQ8DjjwP33AM8+yy9tmgRKb233w688gr/7Msvk4K8aBFw7bX89aFDSVneuBHo25deq6mh3e49e4Dc3Prtmgzpwi2RSCQSiUQikUgkZqFvX8dK7MSJ9HfbNv7au+/S37vvtv3sjTeSezZ7HyDleM0aYNgwrjwDQEgIMGMGUFQELFumxS8wNFKBlkgkEolEIpFIJBKzc/gw/U1IoL+KQrvVbdoAKSm2n42IAHr3Bv78kz4HABs20N+BA+sfm73GPmNiZB1oiUQikUgkEolEIjEYrWtqgPR05x/Yt8/1g9XWAvPn0/OpU+lvfj5QWgp07er4O+3a0Y5zQQHQogVw6BB/3dFnAf4ZEyN3oAOQigrgzTeBI0d83RM/o7YW2LED2LmTW+IEUFRExsBjx4Q1YW4qKgCrVdjhi4uBTZvk/WNUmHyYkV3iIlYrsGsXjXG1tcKaKSkh+Rw8KKwJc6IowO7dwPbtFGsoiNJSks+BA8KaMCeKAuzdS26xAuVTVgb8/Td50UrcQFGArCzKHB3IuYjuuANYt45cs88+m15jWbbDwx1/JyLC9nMNfT4sDLBYnGfuNhFSgQ5Afv4ZuOUWoG1b4NJLgaNHfd0jP+CnnygZQ7duQJcu9Fi7VtMmystpbEtIAM48E2jdGrj4YqkIuM2LLwKdOlE2SQ2pqKDwoIQECvtp2xYYPVoqAh5z+rSmh6uqAu67j5KK9u1LhvDzzpMLTZdYt452Hzp3pjEuM5PGPA2prqbcNez+SU6m9Vt2tqbNmJMNG4AzzqBxrXt3ICMD+O47TZuorQXmzuXySUmhEMc9ezRtxpxs2QL06gV06EBy+vBDzZuwWmnjMDER6NMHSEsDBg0ie76kETZvpou6fXugRw+6uD/7zNe9cpmjISG0y+zs4SoPPURZtS+9lLJzM5o0ob+VlY6/V15u+7mGPl9ZScYK9hkzo0h0ISQkRAkJCfF1NxRFUZSpUxWFrnB6pKUpysGDvu6VgfniC0UJCrI9aYCihIcryi+/aNJEWZmiDB9evwlAUZKTFWX/fk2aCQwGD6YTFxqqKD/8oMkhKyoUZeRIx/Jp00ZRsrM1acacbN2qKNXVtq/99ZeixMUpyjffaNJEZaWijB7tWD4JCYqyZ48mzZiTFSsUJSys/okLDlaUzz/XpInqakUZO9axfFq2VJR//9WkGXOyerWiRETUP3EWi6J89JEmTdTUKMpllzmWT/PmdAtLGuDIEVpIAYqSmqooVVWaHr62VlGuusqxfKKjFWXTJk2bMxd//qkozZrVP3H9+tHEbnA00x3mzKHfPW5c/evTalWUJk1oMeOIIUMUpWlT+pyiKMrHH9OxHnig/mezs+m9m2/2vs8GRyrQOmEkBXrbNrqXWrWyHUs0HvPNwZ49NLCwEzVokKL07cv/j4tTlMOHvW7m+uv5ISMjabJs04a/1rs3KQkSO0pK+KCuKLTSYAo0W/0dOOB1M7fdxg8ZEaEokycrSrt2/LVu3RSlvNzrZszHwYOKEhOjKBdcoCjFxfRaTo6itGjBV3/79nndzF13cVmEhSnKlVcqSkoKf61jR0UpLfW6GfNx9CiXBaAoffrQGMf+b9pUE+vDAw/wQ4aGKsrll5OewV7LyFCU06c1+D1m5O+/FSUpiU5Uz56KMnSo7WC0Y4fXTcydyw8ZEqIokyaRTNhrKSmKUljo/U8xNXv3Kso55yjKsmWaH/qpp2ztWhMnKkqHDvy1tm0VJS9P82b9n8JC2oFgJ6prV5LR+PF+MyFoojuwG3z8+PrGbAYbV3JzbV8vL6d5YNgw/tq+ffTZ4cPrH+e99+i9xYu967MfIBVonTCSAs04dMh2kfnMM77ukcGwWmmwZSfoqqtIQauqst3uuuIKr5pZvpwfqkkTRdmwgV4/etR2ETNvnga/yWyMHk2TwokT/DX77a5x47xqYv162/Xq2rX0+okTpJix9x56yKtmzMm4cfwE3XMPvVZTQytAQFHOOENRtmzxqom//rJVnleupNfz8siwwd6bNcvL32JGJk3iJ2j0aBrb7Le7zj3X1kjlJlu20GYpU86WL6fXCwsVpVcv3swdd2jzk0zJ8eOKct99ZEW1WhVl2jR+4gYP9ko+27eTUsaUs//7P3q9uFhRzjyTN3PLLRr9lkDEC/ns2kVGJ+Z08NVX9HpJiaIMHMjlM2WKJj01F/ffz0/QwIGkNFutNMb5CV7rDo8+Sr9/4kTnyrOiKMr//kefu/1229dffplef+cd29cHDaIL8q+/+GvV1TRoNGumKPn5nvfZT5AKtE4YUYFWFFLWmHdydLSiFBT4ukcG4scf+eCbmkozFuPkSfI9ZO///bdHTVitpEOww/zvf7bv//03X9w0bUrNSv7jt99st+jVi5SCAkVJTOTvM6uEm1itthvaL71k+/62bXxxExmpKMeOefxrzMfatfzEtWplO6EWFyvK6683PKG7gNWqKGefzZt59lnb93ftokgLgP4eOuRVc+bizz9tPWnUg0tJCbeutm5NLqoeorY1zp9v+15WFnfwCQuToSouU1amKJmZ/MT+/LPHh1LbGh95xPa93FxFiYrixo+sLC/7bSZccf/95x+6AT77zONmmK0RIBuKmkOHyMmKvS9duVUcOMBDH8LCNPF08gVe6Q6vvUa/PylJUZYsod1h9YNZYxSFDNtDhtDnr7mGFOYZM2gBOmQIva9m0yZalLZsSQP7W2/x7y9Y4PHv9SekAq0TRlWgFcXWffjRR33dGwOhDnr9+OP677/yiu3utAd88w0/xJlnOjaM3nwz/4yjkJOA5e23+epu6dL677/1Fj9xl13mURNff80P0aGD4zCHGTP4Z+6+26NmzIl6ZW5vGdIItY0rI8NxmMM99/DP3HqrkG74J+qg19deq//+t9/SPeZFnOCqVbyJpCTHYQ6zZ/PPTJvmcVOBB4tDdOZK6QIbNvBDtG7t2KuVhU4CFBoh+Y+pUxXloovISueIf/7hJ65PH492oTdv5odISLC14TNeeol/ZtIkt5swL9OnuzYxZ2eTj7wXXgIi8Up3mDKFnwNHj5QU28+fPk2uWsnJtDOQnEz/O4uv2bxZUcaMoTCtyEhFOessr4xF/oZUoHXCyAp0djbf5YyN5aGKAc3hw2RyBxQlPb2+9U1RaLXBdqFDQtzOxGa1Uuw5G8uc5VPav5/vcgaIZ4zrFBUpyptvOt7JLC/nu9BBQR5l+ho2jMtHbaxVc+QIN3RHRtp6kwcsubnctaVNG2EJFhqzcSkKyaNpU/pMaKhXm6nm4dAhPugnJAhLpqPefXYWEpefT+sv5kKsQcoC/+f4cVq4NrTlW1OjKO3b8xO8bp3bzVxyCf/6m286/kxREZ/mLBa/3cjTlrw8PujHxzse36xWUpzZCV6/3u1m1LvPL77o+DPl5XQLezHNmY/CQu7a0tCi6f77eXzJqlX69tFFjKw7GAqrleKD7rmHFPnWrWnCj44mb50JExTljTc0dUOTZawkSE8HJk+m5wUFwAcf+LY/hqBNGyAnB5g9G3jgASA4uP5nmjQBbr6ZntfUAG+84VYTGzbQA6DKJGPGOP5ccjJw3XX0/PRp4P333WrG3ERHAzfdBISE1H8vIgK4/XZ6brVS+QY3+PdfXgmrY0fgkkscf651ayqpCFC1h/fec6sZc/LGG7wW9003AaGhDX9+1y7g//7PrSaysqgkH0BVfS67zPHn4uOB226j59XVwNKlbjVjTt5+m9d6nj7def1PL9i/H/jhB3qenAxcfbXjz8XGUvk+gLq0eLHmXfE/Fi4Enn2Wyu68847jzwQHA/ffz///3//cauLIEV4Jq00bPsfYEx0N3HknPVcU6lrAs3Qp1TUEgCuvdDy+WSzArbfy/92cf06eBL76ip4nJNAw6oiICGDGDHputVIVx4Dngw94HeKrrqJBxhHdutFFDbi9fpMYhLIy4KmnSJEZNQp4/nngzz+BwkK6cVgJsC++oPsxLQ0YP55KN3qLZqq4pEGMbkX6+29u6ezf39e98SOOHqW4j1dfdTsA9qab+DlftKjhz27bxj/bq5cX/Q00Tp3i2/etWzv2JHCCOvO2feyzPbt28c926WJYbzB9qK6mmFoWe9bQfVFby7M+O9vJcYLaNbuxBIissgZAxuiAlk9NDd0LbMvXVc+Z/Hy3SgE8/DA/54891vBnDxzgDgvJyW7dpubDauUpyi2WhrcUy8p4iZ5mzdzKLDx/PpfPww83/NkjR7jDQuvWAV6xw2q1TYG9c6fzz5aV8Sz3YWFupcp+7jnnsc/25OXxDdfY2ACv2GGfWGbzZuefrayk2LknnjCs65jRdQefsmgRebhZLJRhfd48Ki1bVGT7OauV7tPFi6kERGQkTTgTJ3qVeEMq0Dph9JvAfsxpaE6QeE95OU/+0aSJa27z6oyoDc0JpufoUfdKUKj9FFescOkrFRXcrTQy0rXkeupkYx5465mHn3/mJ2LChMY/r47F/f57l5qoqrLV0V1Z+6gT6rNM3QGJOjD54osb//zGjYpy6aV0op3FMdhRU8PL8AUHu1bpT+3urVH5dv8lJ4c0qLvuavyz117LT5yLdaFra211dPvKNY5QJ9R38TIwJ+rke+rSPs64887G4xjssFptKzy4Uklu8mT++a+/dqkZc7J1Kz8R/fr5ujdeY3TdwadYLDQ3/fmne98rKqIcRm3aeJX4KSBduEtLaRffYgGuv77++2Vl5BmVmkqebamp9D/zCDEjFgswdSr/f8kSX/UkMPj2W/IwAcibpFmzxr9z7bX8eUDL5777yDXniiuAY8ca//wVV/DnH37oUhO//AIUFdHz8eOB5s0b/47aBTKg3YQ//ZQ/nzSp8c+z+BHA5fiElSuBU6fo+SWXkJt2Y0ybxp+/+65LzZiT+HjyB01IACZObPzzeXnAl18CVVUuxyf8/ju5CAMUmtKmTePfueEG/tzF29S8pKYCd99N7oiNcc01/LmLF/aGDUBuLj0/7zwgJaXx76jl8/HHLjVjTr78kj+/8srGP6++xz77zKUmNm0Cdu+m58OGkSd/Y1x1FX8e0GFEavk4ixuRmIO//iLX7L593ftedDSF92VnuzYHOsNj1duPmTmTJ++1z/pZU8MTB119NSWPZZnchw/33LXMH6xIx49zN62MjAB1cywpUZQePRTlwQcVZccOYc2MH8+NpK5WICkooE0ggDLaBqR8ysspKQRAf11JflRayrNIxcS45H+oTl65bJlrXTt9mueVad3ar0pNakd1Nc841KSJa54ClZXkdwiQnFyQqTrBqqtJP8vK+GUQF+d1BS3/p6bGNV/c6mpKxteqlctpzG+/ncvngw9c605lJb+1mzcPcDdhd6itVZR27XiWPBfcme6+2+1NUaWqinsjR0U5zqhuetTu2xaLa2Fb9vJxwZ3pgQe4fN5+27WuVVfzZGJhYQFcklTtSmmCuoX+oDsEKgG3A/3nn8CrrwLz5jl+f+lSShx0++1kzL3+euDll8kQvHKluXcuEhKAoUPpeXY2JVEKOJYvB7ZsAR5/nATvKtXVdOHcfz+weXODH62oAH78kZ7HxQEjRrjWRPPm/LMHDzbajDlZsQIoLqbnY8e6lvyoSRPgoovoeVFRo8kjqqqAZcvoebNmtEPjClFRwMiR9PzoURprAo6VK2nHEgAuvJDOfWOEhQEXX0zPS0uB1asb/HhtLU+uExkJXHCBa12LjKQcIwDtXq9d69r3TEtwcOPJ3QBKwrJxI3D4MPDaa41+3Grlm0BhYXQZuIL6s4WFdClJXCAoiN8/NTWNDjyKwuUTHMyHxsYIDeXNlJTwBH4BxY4dwJ499HzIECAxsfHvBAUBEybQ8+pq4JtvGv0KG98sFn7OGyMkhDv8VFUBP/3k2vdMRVYWsHUrPe/fH2jb1rXvKQqt+x58kHY0Jf7JAw/QbnR+vu3r1dXAoUOaNxdQCnR1NSnEY8YA48Y5/gxTkO++2/b1G28EmjY1twIN2A7WLozz5mPbNv7c1ZkLINfT4cOBp59udABeuZL0BICuRUcJvp2hzgTNlLyAglkeAFKgXUWd4vz77xv86K+/cvf6iy6iLKeuou7S11+7/j3TwNIuA8Cll7r+PbV8GsnGvWYNZagFgNGjaVx2FfW4H5Dy8ZTkZFIEXODPP0nXBsigFB3tejNq+ag9MQOGhQuBhx+mi7y62vXvTZtGi5MTJ4Czz27wo1u2UIEJgKasli1db2b8eP48IOWjnnTVJ6Mx1J9tZHzbtQvYuZOeDxrkmo7OUK8PWIb1gGLdOrI6AO7NP5s3Az17Ak88Icuc+DPLl5MRsUUL/trmzWRISUmh2F0tLbO+3gLXk/nzyfXowAHK0WHvwm21kotfmzaOvz9kCL3vzHU2Lc35A/APNwx1ttqAzcZ99KiiLF3qXqKqw4f5ievbt8GP3nIL/+gXX7jXtUOH+Hd79HDvu6YgM5N+fEhI/UyLDXHiBK/32K1bgx+dMYOf488/d697J07wbMKdOrn3XVPQtSsvSOpGxlmloIDHj7Rv3+BH1dm3XXUPZuTn8/LuKSkBGAbx/feUmV4gavfThQvd++7p04oSHk7fbdUqAOXTv79w99O5c3kTr7/u3nfLy3n4W4sWAZgtfehQfvLcKYhdXc2zhjZy4p58kjfx/PPuda+ykidlD0j5KArNO59/7np1AUUhN3uWlbJZM0PFj0gXbjeIi1OU66+3fW3MGFr7DRhA92DTpoqSlaVJcwGzA717N/DYY/RISnL8mfx82hls187x++3a0fsFBeL66WvS06k0HkCJRo4f921/fEKrVpSYxRX3U0abNpTc6r33GtzhVBS+sx8W5rp7MKNtW+DMM+n5li3kyh0wZGeTixYADBzo3tZWfDzQrx89374dOHDA6UeZ61twMHDuue51MT6edg0A2knYt8+97/s1hw6RiyNAF6naCtwYzZsDgwfT87176eGE5cvpr8UCnH++e12MjaVdN4DqFDNvzIDgxAnaso+PB6ZM8fw4BQX1XeRUMPkA1Jw7REXxe+7YMVuHINNTUECu8gDQtavr7qduopaPq+71jIgIPmfl5wP//KNdvwzP6dPAH3/Q88xM2s1ylZAQ4Jxz6Hl+PvD3304/qna9Vu8ou0JYGB8T8/OB9evd+74paNGCdvydLeQdERTE469Onw7QE2cCSkpsXTYKC2nAmziRvBM2bKBF+DPPaNJcQCjQikIZJLt2pdhmZ7As287CKpkrp7Ns3Pv2OX+EhHjef71hk6qiUMipxEWeeopSYTaQEnjXLh6KMWIELRjdRb0oDSj5qFcWLJjVHUaPJjet2bOd3pD79/Psp/37AzEx7jej7lpAyUe9MndXswVsL2wnAXxHj/IQt7593XM/ZaiNVgEVx8l+rKIArVu7//1NmyglcHy80zIAeXn0MQA44wyyRboLW8cCASafX3+lAHLAfcuqixQV0RoSADp2JM98dwlY+axaxd3q1SfBVdQydTK+lZby3Azp6UBGhvvNqI0ijXiLS9So56yADCA3AW3b8vIcAMmxthaYPp3+79CBQjM1GrgCQoFesICMD2+/3XC8KdtwrKx0/H55ue3nzAozlAI0p0u0Q61QeTIHA7bykQqaGzz4IG2ZPPGE07o63jYB2Mrnl188O4Zfol50eHLy1Nv9TuKU1POepzqG+r4LKPmccQYwaxb99UQ+ERGU4K221ql8Vqwg/RyQ8nEbby/u2loqIXfzzZS0xQG//UYfAzyff9TfU4+Xpsdb+ai/4+TEqUPf3fV+YqgNuHL95gYuGDgkBqd7d8qTwwa5jz4ihY1lRwbIc4TVWPQS0yvQRUWUGHniRNqtyM2lB9sFLCmh/wsLyfOjSRPnydoOH6aENbGx+vTdVwwaxHfhA0ZBq6kBBgwAbrtNqNlWPaE1kuvFKf36cSOOesFqaqxWnp25RQvaSXYXF5IgeasDAkCfPnznesUKvqkUEEREkGv9WWe5/90ePfiJW7XK4YWthYHjjDMo+z1ACkVNjWfH8Tu6dyfXtS1bXE/9r6ZLF37imCJth1o+nirQnTtz+9aqVc4N2qaDWQvCwmwXfK4SFATceSfw1luUCMlBEjItDFAZGdx7ee1anhDT9DD5BAd7dv+kptIOGECu4A5OnFo+nho4EhPpVgWoTO7p054dx++4+GJKpvfpp559v3VrGiMBcrFnmUQl/sNdd1F43siRwE03Ad9+S55tao/DEyfcywzbAKZXoAsKSIn+6CMa9NljyBB6/5NP6P/nnqOYur59yTixf7/tcSoq6J7q25cn+TMrkZEUYgqQcSEg4ji3bKG4l9df9y7Vel4e1aCYObOeJUa9cdOiBekLnqBeXx09Sm7hpmfHDp58YOhQlzMCu4OicPnExpIi7AkhIXx9lZfHXY5Nzyef0KJj/XrPYlaCg/mFfepUvTp66pCSqChysfeEoCDuJVBcTItMiQtYLDyAvKiIxkw7mI4RHs5D2j1phikP5eWNVp0zB0eOUI4HwNZC6g4WCx94qqp4KmcVTD4hIVyUnsDkU13daNU5c3DyJB+P+vb1LLYHoBAIgKx2zJdeBZOPWpSewGRbW0u72qansJDSji9aBDz5pOfHYSfdagV+/12Trkl0ZMgQYP58uujffpuM+XPm2H5mxw7PQpgc4PEqVFHIWjZrFo33bdrQwj4mBmjfHrjsMuDNN3k5C1+RkED6jP1jwQJ6/9xz6f/Jk+n/q6+mv88/b3uct98mgyF73+wEnJuwehXgifWf8eqrVD7h5Zdpe0vFli1cBxwxwjsdMKDlw6xfnqIoVMfFLoPUzp28hPHgwe6VF7Mn4OTDCA+nLURPUa/q7dyEs7MpsRRAXjKulDB2hto9Uro5uoFaPnbj24ED3PA8YAAZYj1Fff+sWuX5cfwG9WLdm/HtjjuolFxBAblaqDh2jA95Z51FNe49RS2fgFDQ1FYcb+Sj/q7diVMbW3v39iy/A0OtfNvdpuZkxw5utPVm/cYMHHFxfDEg8S8eeIAUz5UrKeksc8cAaDdw40bPPOQc4PY2QVkZ8MorpIAeOMC97CIiSFktL6c+ZmdTOdw77qBaqnffzXc19aRJE8flYnNz6W9Kiu37115LG5CvvkpG9qFDaVB7/XUa+6ZOFd9nI6B2L161ipKwmRr1Kk2LAZgdU2VxUU9knrpvO/r+mjXkeW5q1IsNb+STlUUn7+BBSvj23nsOm/BWR1cvYH7/vX5deYkT7BXoW2+t+1dL+ahvU5a0x9Rs2EAZvVJSvDuO+sJeudLmwtZKBwRsb/GA2AjS6uJmJRocoL7OvZWP2rsg4OTjqWsFQBf26NEkgDFjbN5S6+jeTHFAg3ZIczJoEO1C//lng0lcG2XkSEr936WLEC83iU4kJNDDnuJiqkDhSCn0BHdqXi1aRDWSLRYq9zlvnqL88kv9cqxWq6Ls3KkoixcryuWXK0pkJJUFnThRUfbv16T8ltc4qgPNOH1aUWbNUpTkZEUJDaW/s2bR657ib7XcKisVJSKCzlFamq97I5jaWiqayIon1tZ6fqyyMrpoAKpZrOLSS3l9x23bvOtydTWvx9munXfHMjxWq6K0bk0/NiqKfrynVFYqSpMmdKzkZJu3Jk/m8lm/3rsu19bysp/x8QFQz1arH1hToyjR0Q4LAV97LZfPqlXeNWO1klwAkpM3t7xf0KkT/dj0dO/uH6tVUVq2pGO1bGkjn5tv5vJZvty77lqtNK4BVLbTmy77BT170o+1WBSlsFBIEzNncvl8+633x0tPp2OFhytKRYX3xzM027ZRUeZx4xTlxAkhTdx7L5fPF194f7zu3elYQUGKUlzs/fEkvsHfdAfdueMOWhD4YJHlloll2jSKO9u4kUqpPvwwufLYl2O1WIBOnWi39qOPyHXopZfIUumk+oXupKbSUPXOO/Xfi4qiXCv791Mo0f799L8nJYf8lbAwbszOyaFYW9OyZw+vazp4sHeWx8hIipECaLfzv5T6isItzNHRtl4lnhASwssaHzrUYFlj/0d9AQ4c6F1NuLAw8t8991yq9a1KhMQ2GZo0IRc6bwgK4h43J0/y8tWm5NAhsvqPHQt8/rl3xwoO5hf2sWM2FzaTT1iY9x5YFguv111YWC/c2lycPMkTJcTHe3f/WCw8+Dwvz+bCZvIJDvY8Pl3dDJNPaanDcGvzoI4nVyfS0xj1TrEW3oBsF7uyMgDyCHTrRgmKvvzSux3OBlB7CLBr3xvYMaxWXl5cIjEdr71GnlGJicD11wPff0+Kmw64pSn89Re5ZTP9wFWio6n+cnY2ZcOW+AfqQfyPP3zXD+GoZxdvV372x/jv2Lm5PH5zwABtvIPU8jG1G6paPlqs/JYtowQOjz1WF+i8fz/X1fr39y6+lhEw8tmwgZSpZcuoTJi3sPuneXMynoDuHaarnXmmNkk0A8YNdf16/twb91PGgAH8+X8TQ0EBGdUBSpDvTXwtI6Dkw2LhtJDPsWOUiXvKFFqwgaqNsFuza1dKYuktASMfHaioIO9jAMjMJF3AWxzcphKJ+ThyhBJu9elD1Qcuuohi2C+/nBKbCkxD79Yy3ttdmYgI2pmW+AdqXcXUmVDVCpoWyQXYDhpQt3hVnz+tcgEEjIKmtXwcoLWOAQSQfPLz+a6ZFvKZPp12TPPy6oL51PePlI+bsJU5YDs2eYqDlblWOZbUBIyCppaP+tx6SlYW1YJ+9926kowbNnBnGykfA1BVBWzaVFe3atMmvmmm1fimXmeYWoF+7z3KAvzii5rV95X4EQkJtGb44QcqUfXee1Tj8vvvgSuuoPcvvBBYuJC8sTRERslLnKKeywNGgfa0dpEa9Q70f6UqRCjQ/frxkmqmlo96gdlAkhxvUF8CWugYAHWVecuaWkG74QZSonfvtk3P6ynt2gEdO9q4aagvAS2cRAAyCLOdbFPLR+v758wzuWz+szyp7x8tdECASrKynWxTKwBq+bjr3ueIPn34wPPfiVNXTNJq/unYkWeK3rDBYdl2c/DDD3Sdl5drczyrlRL69e1Lhg7YXt9auG8DVK+blW1XOzmYjh9/BD78kFzsjx/3dW8kviQ6GrjySuCzz0hZ/vpr2onesIHWKW3aUAbRl1+uX6vYA6QCLXFKXBzQoQM937SJYp1MR2Uljz/r2JHcRr0lOZn7YG3YAFitdQpuUJB2m6gxMbTIBOgnlJVpc1zDsWgRWRUffpivCLTAaqXaVTU1NgtMreTTpAm5swLUTHGxNsc1JEFBNFgIShQhwgkhLIx7VeXk1KUrMBeKwhW0uDjvs3ADpNV260bPt24FSkqEyCc4mNszDx82cR4OFkAcE0P+u94SGckv7F27gIICmxhlrWyQFgvX90+eNHEejltuIatQmzY0Z3hLUBAv9ZedDeTl2chHq/vHYuHGrPz8elUbzQM7eeHhFJ8gkQB0PVx8MbB4MRlWVqwAbrqJJvs77wTS073eMHNLga6sBO67j+799HTgkktI0ZeYFzaYV1VRqT3TsXUr953ScuZi22RFRajYugfbttG/XbrUT7rnDWwBY7WaONFO+/ZUcmrePO2O+eSTFAjYpQuq/96Gv/+ml9PTtdXR1YvVTZu0O24gYbVyHbBtW1rHaoVaPqZMhJSby+uZnnkmd1nxFja+Wa1QNv1dp0DHx2ujozPUQ7J6o9Y0HDnC3U779NGudI7ajebvv+uu7agobhTXArV8TJmo6uRJXvO0e3ft5HPxxbRT9vLLQFBQnXwiIrxPMKrG9HHQRUXcMtCjB1lFJRJ7goIo0dirr5Klb+NGUma99CpxazS45x7g00+B664DZs4EWrem5+PHAzU1XvVDYlDUBhpTKgCi4mtVC5jDX2+siz/TwkNcjenlI4qICJp8ARz9blPdOKp1iLXpFTRRZGUBs2cD55+PY8+8W5cHRMrHTUSFP6hcjfN++aeuiIGWOjo7HsOUCrQo+agmhtOr/sbBg/xlLcvbml4+oaHAG28A115LO0Zacd99wAcfADNmoACxyM6ml3v18i5Jvj1qO4op1wfM8g0IC++SmJC+fYEnnvC6/IZbQ+lnn9E9P2sWMGMGJXrMyiID3VNPedUPiUExvYKmVqAFLWBK1/zj6GWtmzGnfEShyoh4ejWXj9YKmjqk0ZQLzIcfBkaOBB54QNsEHSdO0KSyfDlKflhT97JIBdqU8hHhuwvY3j+r+CJWysdNampoy9Fi0UU+WoRYq1F32ZQ70M2bU5zyokXA3XcLaUKtA2q9PujVy3E7pkE9vml9cUuMj4/dot1SoCsq6qfXT0yk5HeLF2vZLYlR6NmT7yiYUkFjq7LQUHIB0grVzBX+L1fQvM1kb88ZZ9RVYjKnfF59lcojaZ1dkwUnAwjfKU6B7tyZYqEBkyoAv/xCjyef1HbrpEePuoFHyd5X97LW8snM5AnETSkfUTuc3brVyTviX74y13oTKDmZl939808TJkIaP55io4qKgNGjtTtu5851GfLCdohToFu1ApKS6PmmTTzTt8R1ROqAsbFAWho937LFhPKRCnRg42O3aLcU6GHDgHfeqf96u3Yy+Z1ZadaMx0ypw4VNQVERJVkBaMGuRXFZRnw8BWwCaHviH1hghcVio7dpQmQkz5vx77/aJQo1BOXllOxh7FgqS6AlMTGUphRA21NbEIRaBAVpL5+QEG40yc01WaKq6mpg82Z6nplJqzWtaNoUWL4cOHgQU9r+Uvey1js0QUF83XX0KCWrMg1WK7eqJSVpU1yWER5el0gsIe9fRIIyGGqtQFss3GiSnw/s29fw5/2WZs1oMNeKkBCyrgKIy9uDZqAMhiJ0DCbzkhJKxC9xg5ISFP/0B6JAMSoi5MPmn9JSYO9e7Y/vU5gC3aSJrJEbiPjYLdotBfqpp6h/06fTYt1qpV3pl1+Wye/MDFu0mi6R2D//8C0NEfEz/81cUdZipCEHnTqRXqA1TD61tSZLJLZ5MzeZi6j//J+XQKS1DB2wBx06iJGPelFkqjjb7dtpAgDE3D/nnova1u2wbTvtRKen891iLTFtHPTu3agLHhexMr/mGij33Y/rIj+GFUFo147vFmuJuuv//OP8cxI7VO5OPbFZbTPUFLVRi9nTTEFhIfDrr3W5MjTnySeB6Gg8/ttADMQ6YTqg2uvNVG7caoua1sHjEv/Ax27RbinQnTsDq1bRTmS3brRhFxUFfPwxKdESc6KeIE01AKtne3WwkFaojtkL/2i+e8YwbRx0hw7AJ59QfO348dofXyWf3vhb891nhlo+pjJw6JDAJSuLl2cTJR/1rW8q+YiKf2bceSdyb3wS75ZfhkpECJOP+rimko9oVJpTb/yNvn21TfDGMK181qyhuvbNmwNPP6398ZOS6gz4PbEZvXrxcCwtMW0ctHqxI923AxMfu0W7bbI54wwqyr5nD21ANGtGmf60LM0jMRb2Ctq0ab7ri6YkJNANuGWLtvHPDDsFrUmfCdq3ARMr0C1bAhMn0kMEqgVmL/yD2p6ThTSjvrRMtcBU/xhB2pPaxiVKQVPLZ+tWMW34BLV8tE6+4KAJPeRjqh3OOXOAL76gRdVjj2m/PWynQEcI0jFMKx/1ZJqerv3xVTdML/yDSkHyMe0OtIx/ljz1FDBwIJVqnDmTXDiqqnRzi/bY56FDB23rCUqMi3phZCoF7cor6aEoYrLT/KdAVyMEMShCdzFrWPToQZbr2lqTyUc0dgaO6p5imunUiXLUVVebWIH+L95SUxQFlg8+wAvYhDBUIbnn69q3AQrfjoykkHtTyUdtDRAhH9gqTCJskACQmkoG+uJik8ln0yaKidqxQ0y8XrduqAkKRYi1Gr3xNyIFeUC1aUO2zrw8k8lHff+IsA516oSakHCE1FSiJzajRpAOmJhIMjpyhBRoRRHjiaA76otNhAehxPgwt+jp03liS6uVBqRly4Q375YLtxYJikyV5ChAiIkB2ren51u2kCJgKiwWbYtjMpKTcXWXTYhCCW7D68LG+MhIqoQC0FpM3mMukpiIU2FtANAOQM8eYlL8hoZy+ezezcOG/RpF4QvMtm1pwtIaiwVDfnkEd+IlTMUS9OgmJoVscDDQvTs9z86mZEimgMknPp7SJYtoYrMVGcjCZfgUPbuIyTBpsXD9/+BB1NWc9ntqa2lwiInhqay1JDwc+5tRorfO2Inencq0bwOwSY55/Dhw7JiQZvSH3T9NmojZgQ4Jwf5mNPB0wB707liqfRv/wXahi4qAnBxhzejLtm30NyxM7uYFMswtetcuiif+4QfKlte/v/Cm3dIa0tOB117zTIHasoVKdD33nPvflfge5iZcWckTV0sapqbWgs+ye6MK4ejQgcIdRMEmyNpar2vDG4MTJyjD4p49wmpvKAqwSSGrRiwKkVixX0g7AN+dM418Dh6kJDuAsN1NANik0IXdFGVIqhCXQpbJR1H4usyvOX6cx4CdcYawLafLV1yPLLTHp5iE9ApxF7Yp3ex/+IGsNZs2CZPPJivdP8GwIu20uBNnujCVkhKypgG0syUiOBnA30pPAEAQFHSoECcf07lxV1TwlO9dupAhShLYdOgAXHopMHKkbjHFbinQI0cCd9xBpbZmzAB+/50UKmfs2we8+SYwYADdwFu2ACNGeNtliS9Qr5G3b/ddPzSjulp4UdG9e/n9ISo+kMF20ACTyGfNGop97tgRePxxIU0cOgRsqNZnZWG6BaZaixHku3viBLCugsvH8o+Uj8vExtIE/frrwE03CWmisBDYUMLjzIK2bhbSDmDiRFVhYWJSY4N0wNWne9b9H7RdnIJmOvmoJ1FBBsLKSmB1Uc+6/0O2bxbSDmBCBXrnTm5YF2jAlRgcH7tFu6VAv/susGED3Yyvv075l6KjKfxg1CjgiiuAceOAoUMp7qJ9e+DWW6kk1+OPk8Fo8GCP+yrxIf+V/ARgkh2ahx6ii/Tcc2kwFoB6DlYruCIwnXzUqzBBJ2/zZmAzevIXBG5tmU5BEx3//F8TW6A6cQItQ6aTT1gYMGgQcMstwAQxyQu3bgXWoz++wKX4vz6PCI1DNJ18dGDHDmAbVGOnwInBdInEdMgfsHMn94ACIPTE9dBnGNUPHeQj8QN87BbtdhKxvn2B5ctpd23hQuCXX+i+t5/U4uNpN338eHpIDwv/xnQ7nFu2ACdPAitWCPOt3r4daIoS3IkXMfXH7UBJmrDi7t31WSfphw4K2ubNdgtMgRe2+ieYQgHQYQd682ZgO1SWISkfQ7FlC7AOg7AOg7BgOgBBScQAMhAGBVF+GFMoaDqwbRu/f8qi4tEkLExYW506kc2mqsok948OCtrWrTT/WGFBEBShF3ZyMpWcLSkxyfpNKtASgLtFz51LCYEnTqSSjeHhjj+/bx/w00+0G7xxI+WemDXL4+Y9zsLdvj3XBcrKgMOHKQtjZCRVB2rd2uM+SQxISgofgE2hoMXF0YVaU0NJkASwbRtQhTA8jMcQtrYaKO4uTIFu3Rpo0YIS7JhqgoyKAtLShDSxeTOwD+koRwQiUSH0wo6PJxkdPUo/ze8zobJVcni4sAQumzcDB5CM04hCM4gdeKKj6TLLySH5WK1i8gqaCT1KjDEiI+ky27WLdlarq/3cKD9pEl1kPXtSnXsBg8HWrUA+WiIBx/HJNwlCw+fCwigUdfNm8jQsLyeZ+S1qBU2QB9S2bUAJmiELmeiAvdRmba2QeOugIKrqs2EDjXElJTS1+i2RkbRuO3xYvHufxLi8+y7FEz/wALlFv/46ZeLu0oU8TGNjKV4+L48GplOnaPGVmEhu0Xfe6VzZdgFNlghNmpBC3b8/bUZI5dl8WCzcTTg3Fzh92qfd8Z7336ckO9nZwjSZ7duBaoRhj6UjvZCTIywhlsXC55EjR/w8U21REV1kAFmXBWky27YBVgRjl+W/FNlZWUJTmLON2vx8mvf9lrIyckECaFUW4rEdtkFIR7dgh0WfgYfJp7SUDNV+C6uD+dtvtHAQBLOhBAXZhpCIgsmnqornD/JLamuBb78FPv8cWLJE2PzD7E0nkaCLjqFOlLhjh/j2hKGuMNCuHVmmBcDkU+dlU1EhNEW2+h71+0SW8+dTEpO8PFKGJIELc4vetYt2k7t3p5tr+XLgk0+onNXvv9NnL70U+PBD4MAB4P77vVKeAY0UaElgoJ6E/XqCVNO8uZDDlpeTPgYAz3f8H81YBQXCsnkCJoqD1sE9q6KCJ1k9HPvfibNahaaYN00c544ddK4AYe7b1dWUgB0ADjVXDTwCV36mkc/u3cDMmcDZZ5N1XgBqJSkzE2gSVkNBnSdOCGkPMFGiquxsbqgTNL6ps8m3bk0OV6JR3z9+Pf8cPEhGXECoezA7R/sieCI+kQurbvpEw+hLixZ+7sol0QzmFv3XX0BxMc2D69YB//xDOxbHj1Nll8sv18x9SSrQEpcx5QAsiH//VSX57t+fCr4L2qljmCZOXYf42t27uQ6Y23UMcPvtwIIFQJs2QtoDTFSKRwcDR1YWzwtSkqp/HLRf3z865A/Yv5/XM58e8wnQtCm5zX32mZD2ANvxza930HS4f44e5c4Henm4mmaHUwf55OeTpxgAlKWpFGiBA49aPqbZAJFIHKGTW7TYFb3EVJguUZVA9MzA7agdv5aPevUlyDdUvYAoHTMRuG+ikHbUdFWtkwQlftcHHS5u9SUQdEY34J///hF4Yavl49cKwJAhwP/+R4rA8OFCmlDfP806twP+rKJ/BCoAXbrw534tHx0UNPVt0i8zD7htDsmmd2/ghReEtCnl4zpq+YT07Aaw+UDuQEskfoNUoCUuY5oB+KKLyMWja1dKgS8gxlZ9fvSIDwRsFQC/VqDV2mXnzkKaUC/w1As/kXTowDMJ+/UCs3VrKlm0a5ewk6deR8YO7Q4s/e8fgQNPRgZ5dlVX+7mBIyUFuP56oU2or9/YId2Ad//7R+DAk5JCuYPKy/38/tHBQKgWQ8eekcCNb5BLVGmpkPYAct6Jjqap1a/lo4OBUK2jJwzuAHwWQglNBSrQiYlAy5bkmeDX67fbbqNi1mecQYmgWrb0dY8kAYp04Za4THw8z9fgtwqaogBr1gCrVwPffy80QRWjWzdQIoM5c6gwuiBiYqhcBUATZJ0Lub/BVl8JCcImR/U6RW14EElEBClpAClozIXc77j3XlrAlJQArVoJaUK9AM8cEE/XAiB05RcSwhOK795N61mJY9Ty6XBmDJUDAYQOPEFB3J6WlQVUVgppRjzs5IWHC6swoJ5/uvRtwgeeggJh8rFYuD0tN1eori4WJp/gYGEVBtTy6dorjNxNATJKChp41IlgjxyhS8Ev2bgR+OMP4O23yVVXIvERUoGWuAUbgE+eFJovRhxHjvAEIQK3Htk6v0WL/8Iv5s8H5s0D3nxTaKZnZjAvLqZcKH5HXh4lewCEyocp0JGRQGoqaFF57BgVthe48mM/qayMEkH6NUFBwhK4MPmEhlKSqrqB5/hxGnwEweRTVeXnmbgFw+QTFPSfjsEGnqIioSnmmXysVp5kzq+oruYZ7Dt0EJYXg3lQWCxUoxlff00lXLKyhCZdUg/ZfunFUVvLU7xnZlJ9LgGoDVBdu4JbcauqePZRAXTVJ1+ZWNj8nJrq57XSJP6OVKAlbuH3iarUs4YgBa2ggK8hu3X7b73CFABFEbqy8PtEIepzI0g+6gzcnTv/54Rw111k6Rg5UmiKX7VHul8uMHWgpoavYTt0+C9hpk4Dj9/HcZ44AaxYQYZCQTuNViu/dtPT/1vD6lQCwO/lk5XFdxgFjW+KwosJ1OkYXbvq4urq93kEcnN5djyB8mH3T9u25PaOyy8HHnsM+OoroYksTRGGt2MH7RD89JOveyIJcKQCLXELv7cw1zP9ao/6vNQ1odPMpVbQBFZkEocOCrQ6A3edfJiLIyAVtIbQIS4gO5tn4HZ4/0gFzTkrVgDnnksr8+efF9LEgQPkQQGozpc0cLiGDvkdDh/m5dIFNeEUv5dPYiLV6H7mGWDyZCFNnDpFWbgBlXzGjwceeggYO/Y/jVoMplCgAaBZM+72LpH4CK8V6N9+A8aMoRC10FAKG7F/CK7eI9GRTp34c79U0HTYgVafl7oJUqeZy+/lo0N2L4dNnHkmcP75wB13CA2K9vsF5oMP0sLl4ouF+dA6vEV1SmHu9/KxCU4WE7/p8P7RyXJnKvkIGt900NGd4vfyiYoCLrwQmDWLlFoB+FI+pnDhlkicoXNcqVeq7bffAuPG0W5OcjLQsaNUls2O3+9w6rCAUZ+XOoVWp617tQLt9x4COmR4rltQ9OsH/PijkPbUqOXjlwvM7dvJDTUrC3j1VSFNOLwE2ImLiODb0wJo356MvrW1fiofHVbnDu+fjh35iwInhrQ0yr1VWSnl4wyHBlyAKk7s2EELtgULhLSdlEQ6aEmJn8pHB9SXgHo+0IMWLWiz68QJHiYjkZiGpCTy4rjxRuDss4U355W6++ijlGPh66+B887TqEcSQxMXx0sh+J0CrSh89ZeURG5AAnA4QbZrBzRtSgkwBJ64mBgK5T161A/lA/BVF5vpBTYB6FfCitG0KZXj2b+frhNFEZrTR3tCQijzqcXCMy9rjEMFLTaW4hOTkoRlzgdIOcvMpMXlzp2kSAcHC2tOe3TI8Ozw/omKItkcPCj0wg4JIV1961ZygKiu/i9G3l9gk0NQkDAXVKcK2ksvUXxE06aUzFLAfWSxkNL+55+UhK+sTCZKtsepgaOykgaeHTto91tQArNOnUiBPnqUcv7FxAhpRgy33EIx6l26UN4SgXOBxA/p0AH47DPg888pLO/GG4GpU4Xlf/Dq6tuxA5g0SSrPgQablA8d4rFWfgGbMQChmhObIJs2pVBEAKp0qKCVhcAaLKyZkyfJ0OE3FBfTRQXQykJwhufISGE6RoOwS6+oiC5Jv+LLL+mm37tX2OKFKWghIf9l4GakpOiyYGKL2ooKMnT4DTpleGbyUQ9pAPg/BQW6ZEqvqRGasFh7rFY+OWRmkpFDAE43uZl8Skt1yZSuKH62y6kowPvvA3/9RVvognBq4Lj2WqBHD+DKK4Ve2Oo2/Uo+AClHixcDL7wglWdJfbZtozK1kyfTWnLWLNq8uuoqel1jvLoCo6Joo0gSWPjtAKxD8d/KSl7+pmNHuzGenTirVegEqV40+ZV8mjShGo9LlgB33imkiaoqnoG7nnwAWkQdPSrUMuT3cYJBQf/VZtMedRWZ9u2FbcI0iN8mStQpwzO7ZlNT7XYXZRx0w+zfz0sYCgx+ZddsQoLd+kwn+fhtJu4jR4Crr6Z8GJddJqwZJp+YGKBVK9Ub6jAIgRO3Ts1oz6lT9ACE3j/Hj+uSK1MiikGDgHffpfv5hRdol+TDD4Hhw2nyeOUVoLBQk6a8UqDPOYfqmUsCC79NVKWD725WFs/wXC++SacT57dx0CEhtHiZMkVYApecHFLSANuFBAAadJs3pzIi334rpH3AjxUAHThwgDtn6B0fyPBb+eiQwf7IEb4556vxzW/lo8P8U1BACgDgQMfQaWLw21J9Otw/paU0xgEOnKwGDQKuuQZ4/HGhCqLfrt90yB9QVkZGjZgYcgiQ+DHNmwMzZ9K4u3IlcMUVtAC8805yDb32WvI28QKvFOinn6bdnPnzpcUmkJADsHOcxjcBPlGg/Uo+OqBOHF0vSXHz5uRGDgg9cX67wNSBBuVz5Ahw333AJZeQZVkQfisftYImaHxTy6eeAUonBU3djKBE8GIIkPlHfV34lXwyMoBnnwWuuw4YMUJIE+od33oGqHPPBZYuBR54QKj10G/XBzqMbywC5vRpvhHi9zz1FMXatm9P3mONhfaUlQH3308uRuHh9Pf++3ntQnu2bgUuuojylDRtCvTvT6FeRqJ1a7KMNG1KymplJd1r/frRZo2HO9JeJxHr2hWYM4fCEnr2dJyQwGIBFi70piWJkfDbTNwNzl7a4DADt6MXdFLQ/Eo+OqC+BBpUAOQCsz4zZlB8QpcuwCOPUAyPxjSooFVXU31WgCaVu+7SvH3AVnFnCyq/QIcdNJcVaIH3T0YGiV9R/Oz+CQ2lzrN7SAANZnjWST5pabRGr6nxMxfhtDTgnnuENuHLElaMlBSeyd6v1gc6G6DqjW/+yuzZtDnQqxe5DzWUn6K2Fhg9Gli1isIZhg6luOLnngM2bAB++cU2q+aWLcDgwXRB3X03EB9PeQTGjwfeeQeYNk34z3NKdTUp8m+/TTvQikJCffhh8nL8+29aT3z1FVX3+OADt5vwSoFesoQ/z8mhhyOkAm0uUlMpNrGqys8GYDabx8UJC95vUIHOzCQLoDqZjADatuUJv/1qB+2tt6geXteuNMsLoMEdzrQ0WuRWVwuVT4sWdAmeOuVnCsAvv9AF9csvwJNPCmlCveCuJ5+kJMr8Vl7ufLLRgKgo8uI/csTP5MN2aIKDhWV4bvD+Yb6PRUVC75+ICBoecnOpP36Tyf6OO+hRUSEswVuDOkbLlrTAPXlS6MQQEkJ2gt27yQBltcp8T4wGPQR0gg0PrCJhTY2flJ/VwUCowx6L/mRl0Q0JUBxwQwr00qWkPN9+O8UKM9LTyR363Xdtfdtvv50Wmr/9BvTtS69NmwYMHEgK9fjxpLzrSVYWKc1Ll9IiKziY6i3fcottaauzz6bH2LHA99971JRXwxpTmht7sKRKEnMQHMwXT3v38rw1hub0aZ7yWKBpkU2QQUF2GYQBWvmlpvIPCop7UGfHzcmh9ZrhKSujAW7MGGDiRGHNNKgAhIZyoe3Zw4OlBcD0m0OHaP4xPOoMzx07Cqvt1KB8goKAn38mzemff4S0b9/2iROa5RsRS22tbYZnQdnXGpSPeuDZv9+5y58GsLYLC3leIb8hIkKYxtKogsZePHZM6IXNptjycl5YQeJiDejyctrZEzgxsLarqmg49QvYyWveHEhMFNKEKXegmfLsCu++S3/vvtv29RtvpF0Z9j5AF86aNcCwYVx5BmhsmzGDDKnLlnncbY8491wS3HPP0XrukUeon59/7rwudJ8+PHTPTbxSoFNSXH9IzIV6ABa4GaQdDfoeaoOi8AE4LY3WSfVgJ66khLa4BKFTwm/t2L2bGxQElhhjFubERCf1L9mJq6wUWsNIrXz4hXx0yPAM8Nu0eXPapa/HoEG6lLNSb+D6hRv3/v3cUqbD/dOkCe3S1+PKKylOffFiYX0AbO8fv/ISEIxaPu3aOfiATm7cavn4hRt3WRlVgPBwIe0q7JSHhTkpofjII6So9OwJbNokrB9+Fwd9+jTVmAeElrhk16rDDRAf0rqmhnaBnT20QFEoqVabNvWVtogIoHdvKvDO1mkbNtDfgQPrH4u9xj6jF7/+Srvsn31Gc+KcOU4mKhVjxwKLFnnUnKarkOJiusYFj0ESA+B3A3CDwa/a0GCGWoYP4qD9wo27XTueQGXsWCFNFBfTxgvgYPeM4YMFpl8oaDrEn5WX8wy1HTr41i3X7xQ0HeRTXc29yVg+mnrMmEFJa6ZMsatxpS1+Jx8dqKnhxuz27Z3cPzolyPC7PA9//00JhWJiKGZUAFYrL6GYkeHECaFVK66g6CQfv1i/6eD7rs6pwPJnBRT5+eT14NDyBnq9tJRS/QPctcTR59lreruf7NwJrFhBruOuesl1707zlQd4rUDX1FA4XGYmJWFLTaW/mZk0j/qFe6/EbfyuFnRkJGUHjI0VpkA3GP/s6A2Bmq3fKWjx8byExyWXCGlCfR6cKtA6WR78TgHQITgsK4uvHX3tPiflUx91CTin949O+J183nmHXAWvugrYvFlIE7m5fL3lNARe7kA7Rj3WO1MgvOTQIe4k4lQ+Omm2frd+08FAePw43wARlELCY46GhJD10tlDC1jIjTPLAXOpZJ9r6PNhYWTBExjG45ANGygreENs327riu4FXinQlZXkcv7QQzR4JyUBZ51Ff3NzgQcfpPerqjTpq8RA+J2L47hxVLQ8L49S7gugwfhABpu5LBZesFMAficfHXDJCUGnBaZaPn6hALh0cevQRFkZuQffdx/w0ktC+mHfvt/JR5D1QYcmXMbv5LN1K+1yfvABX6VrjPo8uKRACzQQ+t0OtA4GKPU87JJ8BGq2avn4hYeaDjvQLsnHzDCPocpKx++Xl9t+rqHPV1aSNVygF5JDpk4Fvv664c8sW6ZZkW+vFOgXXgBWrwYuuIASgObmko6Sm0v3/kUXUYy5wJKdjbJnD7nBDxwIJCRQhtXu3clLh3kiqHG3BFqg4rcKmsUiLH5SHcvqdADu04cnCHnsMSH9AGzjd/xKPgJxSUHTaQdALR+/WGCqOykoOMwl+VgslOXzmWeADz8U0g+AwsrYMOEX9496se2LDNxqamtpu3r1aiH9AChZP8uT5hf3T1ER96kWZIBySQFITiZvLEDo+JaQAERH03O/2OHUwUDoknzatOHlAQXKp1kzHhrqF+ObenHlS/mYmRYtSOF15nZ9+DDF58fG0v8NuWkfPmz7GSNRW6tZfJhXmsSHH1LFmW++qX9NZ2RQCa6uXT0qr6UZixYBzz9PMfEPPUTJ2bp0Iffynj1tNwFZCbSnn6byZ6+/Tt6kzz1HyYEFJuX1O2JjeSUov0iCpAPqAdipjtGkCXDGGXwRI4ioKKodb98vQ6IowA8/2CaqEoBLa6ToaL6yELiAadqUzy2Glw/AT17btkLqP6ubABqQT2SkLpns1Ul+WKkkQ8NOXnw8X+AIagJoZA3bty9ZIM47T9ikGRzMx1hWKsnQLF1KOzj//ksyEoBLCkBQEDcSZmcLcw+0WHgz+/fzzSvDwi7uyEga4wTgknzUJy43V2gJDXb/nDjhB3mLWPB4cLCwrMQBr0BbLDR2HzlSP4FqRQV50PTty5XPs86iv+vW1T8We419xkjs3avZHOmVAp2dTQqnsw29oCDanWbXvi+YMIEMJB99RPlNbroJ+OQTci8/cICUY4a6BNq77wLXXw+8/DIp4CtXauY2bxrYIHPwoB9MkDrABuCICGFzsFsw+Rh+gjx+nAaS9u2FxT8Dthk2G6zswNzoTp0SWiOHKSGnTlH+DsOSn8/Pg0DfXZc3UZl81KXpBMDkc/q00GgLbVi8GHj1VXKXEoRLLsIAtzzolMm+spIn6DU04eFCMwi7lOMB4C6wtbVCrd+sD4ri2zVgo9TU8A46zY7nPS4raDqV0FD3wdCbIIrCO5iSIqxEX8Ar0ABw9dX09/nnbV9/+23ymmTvAzTODxpESpM6Y3xNDdWQbtZM6Hqujuuu4w+AXLjVr7HHlClUyuqjjxxnDvcAr4oRhoU1XqqutJTKcfkKdXkyNRMnUr6ibdv4aw2VQHvwwfo1xAOd9u15lvrsbKBbN9/2xym//EKC69SJag2PG6d5E7W1PJdDZqbwKjsukZnJvSizsqgKgSFRa06C3IPVGTbT0hqZgzt1onIIrG8O6yl5T/v2vJm9eykJrCFxeWXuHUw+7drRDr1TOncmjwWAAvgaK1PhIe3b82b27KEEuYblvPPoIRAmn7g47n3kkOHD6Ybr1EloKlv7OOhAL5fJbtPo6EY2ue3jbAWVPVPb2nbvNvD6QJ19TeD45rKBXacTZx/mZdj1walTfAdAYG0pJp+QEO7kZAree48bMvfvp7F5/nz+/kMP8efXXkuKzquvUtjJ0KGUv+H114EhQyjGWM0rr9Bnzj8fuPNOmhw++IDKXS1YIMwbyoYlS/hzi4WSNDpL1Gix0ELrxRc1adorBbp7d6pP/eijQMuW9d8/dYre79HDm1bEwFz0ExLorzsl0JwZkBsqx1ZT46RsgR9jHwdt2Aly1y5yQzh0CJg0SUgTBw9yb7hGx/g9e6hO3a5dwOTJwKhRQvpkLx/DTpA6xJ8dO8Zz9zTahH0isUGDhPTJXgEwrAKtg3zy8ujhUhP2C8xzzhHSJ3v5DB0qpBm/oKSEz5mNymfGDHoIxj4R38iRwps0LFVVfI3stIQVg5246Gihrkl+k+hNh/GttpZvcjdqYPdBIktD70CrOyfQwM6aSUsz2Vp94ULaJVbz8MP8uVqBDg4Gvv8emDePXHU/+ohiAe+6i2qU25eG6t0bWLuWdhiffZYGou7daX07YYK436SG1e5TFFLCZs4E7rij/ueCg0mhb9A67x5eXSa33QZccQW5uT/0EBmeW7WixerKlWTkOHmSjBRGoraWG2CYQYWVQOva1fF32rWjhGgFBY1Y3wMI9Vhm6AG4spJunIICYS6obrn/7N7NB620NN0UaMOiwwLGrTLgOtUA85sFpvrk6ZDApdEmdLqw/UY+OqA+zb7OwM3wG/m8/z65MnTsSG6EArbK9+3jceCNzj8XXUQxCfHxQout29u5DIsO88/+/VRHHXBBPjpl4vabRKMFBbSzeeqUMAX6yBGeKNh07tsrV7r3+agoStL5zDOufb5HD+C779zulmaox9M5c4ARI3RzR/JKgZ40ieLKn32W4oXtURTg3nvJXdpI3HEHxbjfeCO5xAPulUBzpkA3VI7Nl27sovAbBe3uu8mCduoUTw2qMW4p0DqdOL+Rj84leNxS0ASuzP2mVrdRSlg5+oBUoGl3gSWHEqQU6XAJuI3fyGflSp4xfswYIYs7t+afqChhiQDVqPNMGDoG2igZuBmZmXQPK4pulSAMvQEyejTtxBUW6pI/wHQKdCAxZ46uzXntqPD00xQnvmgRuZ0XFQExMUCvXhS3PWCABr3UkIceInf+Sy8FXnuNv+5uCTSJHyloAA28grKfAm56GaWnU2xDhw6NZLPyDr+xMDMre0SEsLIHbm2iJieTxau6WuiJS0sjr6LaWoMrAKxzAoPD3PIQaNOGBuKyMqHySUoig2plpcHlc++9wMaNNMaVlgrJ8O+RjlFbS0neBN3TiYmUp+b0aYPLR2cDlFEUgGbNSEbHjxtcQTOaAs0qDeTk0MDYUNygFzRtSt65R48afH3AaN5c2KFdKkEqMR7XXUf3xhNP0GDDEok1hsVCru1eoomn/8CBmiU1E8rcuZQ4bNw44OOPbeMc3C2BJqHxjHnW+MUALBC3JsiwMGD8eKH9Aeh6btuWrl3DLmB0yoDq1iZ3SAhw1VWk0AsM7A8NJSU6K4uXShLoUekZViu/uNPThbnSuLWGtVjIOrR1K7n9CEowERREl+T27XSJ1tbWDwHzOerseCkpwsrjua1jXH45ZUOtriZDh4BkYhYL9WXTJsoDVVkpNGeZ57CT17o1aZUCMOoOWmYmKdDHjpFtR8PwQ+1g8mnRwnEyHw1wWz7t25MCXVxMu68sWY/GtG9PCjSr1CHIQc/wGPX+kTTCkiU0Edx3HynQ6oRiDaGRAm2AXMH68Oij9Bg/Hvj00/rrQHdLoEkItst5+DB3gw9E2AAcGSksKbBHMPmcPEneIYZDpwyoTEePiHBRPosWAW+8QVnbBcJ+cmmp0IpMnqMODtMhA7fLm9xslVNTo0uppKoqKntoOKxWSvjCEpIIgsnHYnHRaSY4mDRaq7Xh2CYvYfIR3IznFBXxGmg6ZHh2uZkVKyjR26hRVJtaEIZ34y4v5zXQdJKPywq0oy9rjN+4cQtGKtB+Sk4ODfwsg3NOjmsPjSYLt8z2Pt4t95h582j3eeJEyrDubLPi6qup7M/zz9smPnNUAk1CtG8PrF9Pz7OzKQGfofj+e+CFF2jb8dprndc18wJ1CauMDGOUsGK0b88TMO7dK+Tne4cO8c9WK0/UmJ5uLPl06ECXKECnwkjGFwCUwKVLF1pdCZKPovD7JzXVxc1k+wWmoFAI+3B4VuLYMAQHA7ffLrwZtrhOSnJxk9v+xLHawxqj1nl27xbWjOfoVAKONdOihYtJTjdsoFI1ALBjh7BSVvYK2hlnCGnGc9Raow7yYW7TjWJ/4gRVgrDPxG24Sh2FhZTNOSODqi0ISqjE5BMWRhFcEj/BPp+EzrUM3VKgfbxb7hGvv05x5UlJlIvg449t34+KAsaOpefulkCT1F/HGk6B3ryZrO0rVlB2PgEa5IEDbmTYZBw/TtaavXvpQhs8WPN+2ffHkAq0Dhmejx0jLxKg4VJzvsA+EdLw4T7rimO6d6cFdm0tP4kac+oULzHmsnzsL2xBmezt5XP++UKaMTSFhVSlAnDDTuGDRImG3OHUYXxTb6K6PP/odOLUeqAh5aND/HN1NTfgNlpijOGDHWhDhuFlZfH1GyBEgbZauR0lPd2AYToSw+KWAs0GAVYEnv1vZP78k/4ePOhYAU5J4Qq0uyXQJH5QS1CHGoIeuf9s2sQng9mzdVOgDYcOCxi1t47bCnReHrkwJyVp2ieG37jQBQcLC2BUzyMeK9CCMLwLqg5I+XiBDuOb+ne7PP+MGEEG3PbtaTdEEIYf33SQT24u2R8BDw0cgezCrZ68Ba3fDh/mtmHpvu3nfPYZ8OabwHvvcUVVzeHDwDXXALfeSpmkvcQtBdrHu+UesWSJ6zvlgPsl0AIdw1sw1Z0S5OapbsLlMV4ny4NUoD1UoI8fJ3/QggLg4ouBZcuE9E19SRoyhlMHPJKPVNCIXbso8VFcnLAEHWr5uOzCrpN81NeLIeVjtAzPjLg4cqsTjPr+MaSCZlT5pKYCkyfTgqJ/fxHdAuAH67eJE4Fzz6WLxyXfd/eR8c8m4p13aM3mSHkG6PXCQvqc3gq0Pe++C/Ts2XBcy7ZtwD//kNIvMR+GV9DYrN2qlbAMqB6VQEhN5TWMdFIADL2AadlSWAZUjxS0+HiePEugfJKT+WVgSAVABzyST2IiWTtLSoTKp00bXsrKkAaOCRPIxT4xkRK+CQjw90g+sbF0P+flCZVPfDy/DAx5/7DxLShIWPyIkRWAFi3oUigoMOj8M2UKKc579hjLQy0sDHj/fSH9URMVRUujY8cMKh+ALqKzzhJ2eCPfPxI32bYNuPDChj9z5pnAd99p0pxXs+3UqVSpoiG++YZiiyXmJCaGl1c2nAJdUkIzAyBscgQ8HIBZDSN2AEXRvF8AJfxhZVgNJ5/SUl43TmACF48UgKAgYNgwSlwycqSQfgGUMIt58mRnC7sMPKOqCujRg0oXvP66sGY8kg+rYQSQjyRLQqAxar1n3z6KlzMMtbV81duypbDseB6HQLDB8NAhYSUa1FnB9+/nCf0NgbrEWFoaKUUCMLoCwKbegwfJEGUohg+nEKrFi4WFqBhdPqxPx49TKatAw+jykbhBfn7jJd9Y7V0NEJ6PtrZWln4yO2zQOXKEdCLDoN6S0EGBjox008uInbjSUq7oC4A1k5dHOwGGwaPgPffxyAUVAH76CfjlF+DllzXvkxqmAJw+rdm4rg379lEWxS+/BNasEdoMwyMFzWLhhhgBMPlUVBis1NiBA1wjEWiA8igGGtAtTIXJp6bGYKXGjh3j2fF0MhC6Nc1t3w689hpwxx22yc40hslHUfwjb47W6LQM8RjDJ3oTjFSgTURcXOM7RXv3As2ba9KccAV6715y4ZGYF8MOwDqMjDU1fFGQmenmJpAPMtUaahfaI99392ELzFatgCZNhDXjMYaNgz5yhNeU0kE+LVqQR4vLPPYYXdBlZULrSxk2zlbn+ycqitYnLqNWGnUKUzHU/aOOrxUoH3ZNxsa6uS78/nsqgfbKK5TUUhCGT1QlGHZNNm3a+OZYPSorKc8BS7MuAMOuD0pKKNnTiy8Ca9cKa4bJJyyMe+tJ/JRBg8jtedcux+/v3k3va5T/we0YaPvaz19/TR509tTW0j2/ejUwZoxnnZP4B/YVMQxT61GHDNzqElZuN2E/cw0dqlm/1NgvMAWGE7mHDvIpK+O7hoar4fsf9omq+vXzXV9sOPtsXiMnIkJIE1VVfG3odoioTtsF9vIRdJu6jw4KdG0tn9/T0930JvNRordzzxXWlHvoIB/1/eN2jkydDByGNbAfPEgJhdLThblvW638/klLc/P++fVXCh+yWsnN/IknRHTRuAaOrCzgjTfo+bXXCqmFrfaKSE0VFgUj0Yt77iGPucGDqXTSqFGUOOzwYfIonDePdr3uuUeT5txWoNUZrS0WKrO7ebPjz1ostBh88UWP+ibxE/xih0aQguZVlQUfLDANtUNz0UW0bZKdDfTpI6QJtXHPqxw+VVXCYhgNe/8AtAMt0PJw4ACPKzZajW6GYTNxq8c3QRUGDh/mBkKvDByBmCldJwOux/ePD+RjKAVt4ULg0Ufp+fffAxdcoHkTR47Q1AF4IJ+kJC7cQKzUocP9c/IkDzs06vwjcYMzzySjy623AnfeSQ81wcFU5kqjXQq3FWhmrVEUuuBmzqQQGnuCg2ltLMiwJzEQhlXQPKov5R7qmC639QydakioJwZDyadzZ3oIxKsa0EVFZMHcu5dKiWiUudEewyoAOuCVfHTCsOObzgZCoypohjVA6RD8qm7CbflkZNAuh6IEZq1hdWcE1WT16v5JTSV3sfR0SmgpCMPOP0Yf3yTG5IYbaAf6jTeADRvIy6R5c1rD3XyzpmtOtxVo9TgzZw4wYoR/1IOWiMOwChobgBMSgOhoIU14NQCnpNAOX01NYC4wdcAr+URHUxKtsrLANHDogMcJ3hiffQZs2ULZ8QRlCk9N5XqGoe4f1pnwcGHBe17dP82aUXmt48eFl4Jjw6ih5MPmn+BgYypoERG0y3ngAMVrK4qQjK+JibSRUlpqMPmccw7JJitLmJeNV/IJDSUFQDDNmlEllZMnDTb/SAVa4imdOwOvviq8Ga88/ufMMVA8mMRnxMVRghnAQANwaSn5TwFCU196NQCHhPAvZWUJq5ETE0MJmgADyUcnvJKPxcKvnX37hNXIadaMJ5cxzAKzpgaYNIli75YtE9aM1wuYZ58FHn+c3LIqKjTrl5qICAqjAgwkH6uVdyYtzXglrBhsF/rYMWE1cgxbCq68nP6mpJAyJAC1fDzy4mfyKSykMg0CUA+jOTkGKjV27bXA0qWUoCoyUkgTXhsIdYLd24cPCxtG3UeHEBWvPAglAY8MmZd4jcXCB+DcXEo843N0qh3BBmCLhXZC3IYtYMrLucIvADb/HDzIY7J8Sl4esGIFFW8VeMF4XIKHweRTU0N9FQTr25EjfN3tU/bvBz79FHjqKeD994U1o5mCpihCrUPs/snLI89+n3PkCF/p6mQg9GiBqXMpq5IS2kkzBDt3kiF3xQphTWh2/wC6xEEbrtSYYLyef3RC3TdHSYF9AlvDxce7WZ7BdeQOtMkpLqZFryDjrVsK9HXXAdOmkUcW+9+Vx7RpIrouMRJs8KmuFlqS1XV0LvHSrh15UrqNznGCiiJUD3SddesoXW5qKmVGFIS6REWbNh4cIFATvelkgGK/NTiYvEnd5vbbgW+/pfIUAmvtGi5OUAf3RsD2WkxN9eAAgXr/MJo08fDEuQa7FkNCPPTi90EmbkPFQQvG6/uHUV0NnD7tbXecYrgwovJyvpAUtPsM+I+HgMQNamqAJ5+kQSc2lm682Fj6/6mnNHWBcSsGeskS2mm77z6Ka1Fn5G4Ii4USHkrMi/0Cxudx8TosMIuLudebx9ZL+wXmiBFe98sR9nHQOlUAco4O8lFvSnrs5Wovn1GjNOmbPfb3T9euQppxHZ0UNLZDk5zsoZdr//6a9scZ9vLp3VuXZp2js4GjbVsPK5n17QtceCHdRwL7aW/g0Omy8Cnq8Y2l03AbnQwc9gr0eecJa8o1Tp+mAUdQeT4Gk0/r1mRLcZu//qJQmv37gVmzSDEQgOEUaK/Km7jfTMuWwja5JXpSWQmcfz6wZg0pnklJdPMdPUquFQ8+CPz4I7B8uSZVVdwactlih8WDqd1TJIGN/QAsSA90HaNn4GYE6g5N377A3XfTard7dyFNnDhB+b8ADQ0cgjD0DqegHYCCAgq9BIzvPheI8lG7Q3ssn5Ej6SEYw8lHB/Ly+Kakx5eAD8Y3Q6wbX30VeOghWsy+9x4wfLjmTZSVUeg/4MX6IDaWT9iBlMhSBwNuVRXf5Ja7zybhhReA1auB0aPpudrDJjub1pzffkvv3X+/1825pUDb7yr6fJdRYhgMmek5KopWgUbO4OiDUi+GmCCHDKGHQPxJPoZTAGQGVBsMN77pIB9/id8EDCifxx8nGWVmAjNmUKZAjdHk/klLo/iJ2lrKxC0ItYJiiPmHZZs7dEjY1qM6lthj+figUoch5GP0GuoSY/Lhh+S+98039V0OMzKAL78EevYEPvhAEwVaSBKxvDzg669pp9wwGRclQjHcAPy//5GP9bFjVANOAJosYJKSuCuJLGWlKZrIJzGRp5gPJPmwBUxEhIfB442jmQL999+0i/TMM173yRmGNXAYtUSSzhju/vn2W4pxe+ghD32rG8erGtCMsDCe/VJgCvOkJLpUAYOsD3Tw4NDk/gkJ4daHrCxh8mnbli9DDCcfacCVuEp2Nu0+O4vXCwoCLrhAs0nCKwX6jTeAfv2A/Hz+2j//UAmu8eOBMWOAgQMpEaXE3LBaqYBBBmCAOpSYKOzwmrhwBwcDX3xBsU5//KFJvxzRrh2PMTWMfASjyQRpsfBd6NxcSuYigFateIycz+VTW8snmIwM45ZIYtxyC3DNNZScQ1AK8xYtuB3O5wqauiC1TiWSvF5gKgrFoQm6f6Ki+FDvc/kAvBPt2ulSIskr+TAFUp3UQ2PUpcb27TNAqTGmoCUkANHRQprQTD5s/ikro3tIAMHBPMmZoeQD6KJASxdukxAW1rjCWVqq2Zzp1croo49ofclqzAKU5yA/n0rsjR5NesFbb3nbTYnRCQvjWXR9rgDohGYT5IUXAn36CJvIAYNNkGVl5DonqO41Q/MFZm2tsBTm6lJwOTk+LgV3+DCvdWbUGupq1H0UGGBpmFJwJ0/y4Fd/kM/DD5OG26YNsH271/1yBpPPsWMGMNrv20e7CTqVgPNqE1Un9wqmpBQXU/4Dn1FWxktG+kOGZ/U9roMXVGkp5Q/xKUyBbt7cVsHQEH8KUZG4SPfuwOefOzcEnjpF7/fooUlzXinQWVnAGWfw/0+dAn77jcpWvfMOeTGdeSa5pUvMDxuEDFMrVTBsgoyMFLrRrRlMPiUldK/6jFWryNrStCnw4ovCmtFsAaPTApM1U1VFOqzP8EGJJE0MHIAu8rFafVwKLiQEePZZ4KabyPgmCM3kExHBs/npIB/AAEbcZs0o1m7YMGFNCFHQBNaYMkyYl04ZnjVT0HSqpW4Y+VRV8WLhmZnctVFjpAu3CbntNrL+nHUWsHgx3YTl5fR38WJymT55kj6nAV4p0AUF5AHDWLuW/o4bx18bMsQgdWclwjHMALx4McUPzJwpLDGK1cqThKSlCRvjNcUwcYJsEVBRISw+HeDXYHy8lzl81IssgSfOcPIBdFGgY2Io2azHqDUnnRaYPpVPixbAPfcAb75JdbAFoZmBsFMnyoY6erTQ+91QCrQOsGvQ6xI8Ohmg1PePTzNx6zy+hYV5mUYi0BKN5uZy7zQd5BMczL0nJX7OpEnkBp2TA1x/PV0/UVH09/rr6fVZs4CJEzVpzqvsFrGxtjtZq1dTuNzAgfw1i4XWyRLzY7+A6dXLRx3ZsAH4/nt6fuWVQpo4epRKzgEaWC+Li4FffuEFmseO9bZ7DrGfIH1WK1WHBC4VFXwX1+v4Jp13OFkzPisFp8MCs6aGG1a9NkD5SD5mxmrlSo7X8hk/nh6CCST5VFbyEjxezz861ZgyTCZu9cUhaP5R1+hOS/MyjYQPDLg+lY/OBo6kJGFpJCS+4OmngUsuARYtAjZvJnfYmBhSSK67DhgwQLOmvFKgO3UiN+3HHycrzscfk8u2OpQzN5cS5EjMj2EGYOb+A/hHBsfjx/kCc+JEYQq0YXZodJgg9+/ncd6aLjADwQVV/RsFyefgQR7n7Y/yMbuCpqmBUCcM4yGwZAkFYmdmkieUgCRi6vHNax2wQweKvcvIoHTMgjDM+kCH+efECR614LUBV13KKhBcuDUL7ndOQQFQWEjP/WV8k7jBwIG2O7mC8EqBnjGD1v3t2tH9XVZGyj+jthb4/XddfofEABhmAfN//0crwOxsXRJQaDJBslqcgeCCyhqPjARatxbShKYGDlbjo6oqMBQ0dg2GhgrzbdNUPomJFE9fWhoY8tm1i6zSOoQ/AP6zwDSMfBYtAtasoefFxUKa0FQ+ERHA8OFeHqRxAsmFW9MEVSyFeXY2L2UlIGbMMB4Ct94KXHYZr6MuAJlATKIFXinQ48YBr79OCcMsFmDyZOCqq/j7v/xCrpTnn+9tNyX+gGEsmBYLBR0Jql8LaLyACQsDnn+egnU7dfLyYM4xhHxqa3nj/pIgJDiYVhe7d/NaqQL6nZJCrn5Wqw8VAEXhC8y0NF68VWM0lY/FQtrT1q3k8lRTI6T2rtqO4tPxbfBgytTYowe5qAlA2AKTbZsKuH8SEnSxozQOazwhwcvkC403AfiPAtCiBZ2O06cN4mETEyPMwK65ASozk/pdUkLb2wKylkZHA3FxFJbp8/VbYqLQzKz+aCCUOOC66zz7nsUCLFzodfNerzJuvpkejjj/fB+XK5DoSsuWBpkgdUDzAfiOOzQ4SMM0a0Y6+smTPpTPwYO8Fqw/ZHhmDBxIE3pGBmV1ZEWbNYSVgtu/34cKwLFj3PfQHzLUMpgCXV1N15iAwp6sFNyePULtKA1TWMhLdAha/AMC7p+XXwaWLqUTt3Ej0LGjBge1xd6OUlsrzP7jnNJSXiLJn8Y3HWCl+rZsoTHOJ/KpquLJF/zFgAtQX3/6iZ5nZwtTLtPTSYE+fJg2vyIihDTjc2QNaJOwZIln3zOKAq2muJjHawssaSsxKGwBs3kzzVGCNoIMgVoBYPWV/YH0dFKgfTZB+luJJMaiRRocpHEyMujeKSwE8vOF6kiO8Vf52PvvCloVZWSQAl1eTqkLdM/vUVlJ2USzs4VmAdRcPidPUl1kgPouQIEGqK9bt9Lcc+gQeXXoik4lkjQPE923D/j5Z7r/J0ygci8CYAq0z+Sjc4ZnQKOhyL7UmKC4yPR0sm8pCs1Dgm5TnyNduE2CT2NBNFCga2qoJOXChfXjQq+/nqptmFWJktQnPZ0U6JoaYRtBDbNsGaWDz8ykTHyC3LjZBJmQQFny/YX0dEpSrii0lhDoMe4YnRQ0NhaFhFCOBn8hPR349Vd6npPjAwX6yBHuR67DAtNi0WgRba9An3uuBgetj30YhO4KdGIi8L//CW9GcwXAB6XG9u3zgYKmQ4ZngMsnNFSjvF/r11NdcYCuMUEKtH2crVnlo2mOFEC3+8c+kaXuCvThw6RQZGQAgwYBvXsLacYfPTgkDtB9ALHFqzrQlZW0TnnoIVqMJyVR/eqkJPr/wQfp/aoqbTorMT4+j7P96SfghReAW26xzcatIRUV3EtPs8G3uhr491/gm29IwxWEz+WjQwkrdQmR1FQfuAl6gc8T7UyaRNuru3fTc0GoS4iEhWlwQB/UsjVzmAr7ba1aaRSt4INSPD65f3QwECoKP4WajW8+MnDojs4eNl7X6GbY70ALwufy2b6dwj1mzAA+/VRYM+y3NWtGMpJIPMErBfqFF2iz74ILaO2fmwv88Qf93b0buOgiSkb5wgvadFZifHw+AOugoOXm8uea7bDv3Al07Uq75m++qdFB6+PzUkk6LGDy8igOHxBkXa6pEXBQwuf3D0AabYcO5F4hgKIiHsarmXx8oED72HtMGGVlVMQA8G/5+Hx8EzT/nDxJodaAhvLp3JnmnZ9/Bh55RKOD1sfn948O809VFXnfARrKR12M3cwKtA4lFGtreRi81zXuJcalpITChlhFBAF4pUB/+CGt+b/5htZbajIygC+/pPc/+MCbViT+hM8VNDYAs5SSAhDi/qNTjSmfl7Jik39YmDDfaiHysVqp1EubNuRaJgifL2B0QEj8WXIyjxUy8wKzokJ4E2oDoWbyad2a10MOFAVakAIgpExudDS5cJ97rtDqFT4vlaSDC7e6RrdmBvaICMrKO2ECGdkF4fP754oraFdu0SJgxAghTRw+zPOYSvdtE3LoEHDppUBsLNC3r+119PvvQJcuwMqVmjTlVXRydjZw++0UMueIoCDanX71VW9akfgTPh2Aq6u5aTEjQ5hpUYgCEBVFsWfHj5t3gamuz5Se7h8lkhhBQXTgo0cpdkUQPl/A6IAQ+YSEkD9rVpbQFNk+VwDS02kLpX9/yvcgACEZalkK5h07qAFBKZhTUqgpdRiHrrDxrXlz/ymRpCPqhJs+kc+oUWQsOHCAjDoCECafH37Q8GCOaduW4uqrq30kn9hYYMgQegjCn+8fSSMcPUr5G44fBy6+mEq+/fEHf79fP3rtk09oQ8RLvNqBDgvjrkTOKC2lG1ISGCQnc4OK7jucBw7QwgzQJYELoHGSNNbno0cbv7E8hNWyBXwgnyNH+A6aP2V4ZmRmkpGjUydhO4EtWvAKBrovYPLzgcmTyYXzl1+ENSNMPuz+KS2lSVIArBQc4AP5lJbS2HDiBPeBF4DQ+wcgH9fDhzU8MCcigm+g6i6fykqed0OgAdcfa0AzIiJ40jOfuHDfdhu5Tv7+u38Z2HWCleoDuB3SbMgSVibm0UdpfvzlF3KBHjnS9v3QUDLOrF2rSXNeKdDduwOff+58Lj91it7v0cObViT+BKtlC/hgAaNzBlRAkAJg34iGBAXxCTInR+cJUof4JkCgfH76ieokr10rrP4X26gDeCk43dizhxaXjz0GfPGFsGaEG6AAodYh1mdWCk43hPjuNtyMsPFNBy+bkyd5LgRd8EGJJE3lk59Pro0LF1ISG0Gw++fECQpTNBv+vsPJ+lxaSveQ2fBnA4ekEb7/nnaeG9pdTk7mWYC9xCsF+rbbaBA86yxg8WK6MMvL6e/ixbRbfvIkfU4SOLBBqaCA6tnqhg4JXACBJZJ0XmCWlQnbqHOMTvIRtoDRyZWG9ZnVStUNf60BzbjuOuDrr4Ft24A+fTQ8sC2sz6xWqm7oXAIO8G8FGtB5l9Pf75+vvqJ4weuvF+qB4vNEYoIRvsNZWyvUMuSzPCmnTvFEdiyLoQD83cAhaYDjx4H27Rv+TGioZh6eXinQkyYBs2bRIHj99TRnREXR3+uvp9dnzQImTtSkrxI/QT1p6DpB6rDDqY6tS0nROIzP7KVedF5gtmihUQkRnfFZnO2ECRSj+s03QhPVsN/UtCl3h9aEPn2o3926AeHhGh7YFp/Fqet8/4SFaZxPyuyZuHX2gIqLo5ACzTC7geP0aZ49SiBMPsHB3BtPE3JzKXyoSRNKPiQIn8ln61YqP3reecBzzwlrRj0mqGPyJSagRYvGdx327KH6jBrglQINAE8/TeEk114L9OpFN1+vXrQZsHYt8NRTWnRT4k+YeQEjtESS2ReYw4YBd9wBjBlDCwEBCCkhojM+k09EBGWovOgioSVEWJbn9HT/LCFiZgVabSBMS3OeINQjzD6+6SCfykoePu6v84/PDISPPUaZ4DMygL//FtYMUzqTkzV2WoqLI9f6qirdKg2Y2cDepo2wSCyJrxg0iDYAnLlW7t0L/PijZhnevcrCzRg4kB4SCeDDAZhN+mFhPFOJxgiNn1EvYMxYimfUKHoI5MABHoaouftcTQ1w4410nSUmUiZHAZg5E7cZSoiY2UB44gSFdgAC5MNcdmprpQLgIeoSSZrLp21b8tyorDSvfGpr6aYVlCFdHbamuXyiouigTZoAHTtqfHCOmQ1Q6vyS/jr/SBpg1iyqTjFsGPDii3wyKy2l8mh33klW4bvv1qQ5TRRoiUSNTyzMisIXmGlpupRI0lxBYz55p0+bcwdAB4TGN4WE0OCclyfMQAOYW4EWnsBlyxZg507S1DWaJO3x+QIzNtY/SySFhpISvW+f0FJjPjdwNGmimYugPULnn6AgOuiuXdSQ1aqxCwLhM/lkZgK9e5OVVVPfao7w+OesLOFuOz5bH+igQMsEYianXz/g7beppv2YMfx1VtokJIRqjHftqklzmijQJSWUf+Kff4CiIoo77NULGDeOjGaSwMInE+TRo5TBDvDPBFUATYwZGcDmzbTVUF0tJHGVVKC9IDOTFOjDh+l6i4zUvAmf1LItLQWef56uv549NZtg7BEun9tvB9asoec33MAnTg1p147m4ZoaHXfQ1CWS/DFBFSMjgxopLqb7KC5O8yYSE+m2LC/X8f6preUXg8ASVurrTYiClplJCnRFBc2pAgyFrVrxjW5d559nnhHehPD7R4eYl5gYss/l5/tIgQ4N1cXAIRVok3LttcDgwcAbbwDr19M8ExMD9O9PGa019N7wWoH+7DNS9gsLbUviWCzAzJnAggWUm0YSOMTHU4Kg0lIdF5g6lUgSbsFkCnRtLS2YBRgDYmKAli1pXNFNPiUldEEkJAhdBOiiAGzYQM9zcihmWGPCw0lJO3hQxwVMVhYwZw49nzqVyigIQBcDB1Ogs7PJkqsxrFZqVhb9HkEbqbaoa87ppEALUdAyMijLLkDyEaBAs1JwO3bQaRO0kWpLcDBlgM3O5oZcAegyvjGys4Uo0OqNbnZZ+2MuBEeYZYczPZ0U6EOHKOQ6LExwg4rCFei0NLJQCkDWgDY5hYVA8+aUifvFF4U359W08vPPwBVXkMfpNdfQmuuHH+jv1VfT61dcIbQigsSAWCx8cMrNJV1QOD6oAS1sgcnQIdHOwYM0QQrnm29o6yE6WphyBvhggSkI1ve8PNqsE46/lxhjXHYZZbb8/HOhKVZZ30+fJhkJx99r3DN0yvPAxubKSqEVcWyJjQX69gWGDBHWhPAdaJ3zcJSXk93BLJhlh5P13Wrlji9CUXsQ+vMGiMS3tG5N5aG+/54nwxGIVwr0vHm0W7J+Pa2Jp0wBzj+f/i5ZAqxbR94Y8+Zp1FuJ38AGp6oqzWqWN4zOC8yYGFovaY568tBhAaNbLVsmn5ISobWlhJUQYZi11ItOHhzCS4hccAFw773A+PGCblBC9zAVsxgIO3akA48cSTsFgjBrHgE2Fvj7+GbWMCLh98/hw1Sqr2tXYMYMAQ0QusvH32uoS4xBu3bkFn3RReQ9M2sWsG2bsOa8UqD/+YeU/d69Hb/fty/VgBZYMUBiUHyqAAhaYNbUcGussBI8Zl3ApKaSdS0zs/FC917AfovmJUQYZs2UrrOC1ratf5cQ0V0+OnsIxMUJCR+nhc2+fcDy5bZJXjTGrAo0+y1JSTqMb2YyEM6bR/POBReQb78gmHyaNaMwKc1p2pS8uf79F9i+XUADhE/nHx0U6IgIYXn+JL5k716qn3zDDeR+9PzzlNOlTx/glVeAU6c0bc4rBTo8nHbMG6JNG/qcv/HllxRz3rQpbWRcdBHVeZe4hu4KGisuq/Yf15iDB7k7urD4GbPWSr36aqq/t3cv0L27kCYKCiiJISDQuqye3M0kHx0U6JISXkLE3+PPdB/fdJCP0BrDOqP7/fP227RY+/prXqdNYwoLeYkkYfdPaioPGDfT+LZzJxmhfvxRWIWO2lruzSXMwN68OdfMzVRqTKca9+y3qC/zgCCQFJoBA4C33gKOHaNSoxdcQLvQM2eS5X7sWBqnNcCrS2jIEOD33xv+zNq1wNCh3rSiPwsXkgdgaSmF0z30EBn7Bg2iKimSxtF9glyzhpToVauEWWx0cf9p145vLZhpB0AHdJFPYiJNQoC5FpjstzRvLqxEkm7xZ8XF5B713XfCmvCZfCIjG7dae4jQGsM6o7t8Xn8duOcecrnTIQO3MPmEh3PfcB1i1AGd7x+BBvZDh8hLDRB8/zAF8+BBYQnrfOphI0iBPn6cny5/H9/cIlAVmrAwyony3XdkGX7+eQp9+OYbzTJbe5Xq7umnSdm//37g4Yf5uhIgWT36KMnpjz+87aZ+FBYCd91FeszatdyNbdIkSrg7YwbpaJKG0V1BCw6m+j8pKcKa0GUBExxM5TZiYzVNt2+PGV0cdVGgWYrfbdt4hjwBOxq6yqeqiscm+HOCKsY55wB//UWyKi8XYlDTVT61tbwRgSWSfBIfKCgFs1pHEj7/KApX0FJT/T+DcEYGWVMKCykVswCDms8UtHbt/NvADpCCKbgSRFIS7dBarTrLh63jBBCQ8c9SoSHi4oBu3eg379jBLV1e4rUCfcYZwLPPkgdT7960QXP8OMU9FxXR7vNTT9l+z2Iho4gR+fpr2sC46y7bGLB27ci4vHAhrZsFJng1BerzY0YFTegCZuZMgQcnkpJorlKvzYVhtdJNL7hWiW4TZEYGKdDV1bQLIGAwUJeCEy6f3FyesdIMCVwyMkiBVhT6bQIMUc2bk42roEAH+Rw6xN2CzWDgeOstYNEiUjp//RXo0UPzJpo0oRjHY8d0kI+iUEkSgR4pgI4eHBkZJBeAfpMABbpZM1rTnjqlg4GjoIAegH+XgGPYh3kJUKBDQymPSG6uTgYopkCnpAirmRWQJawCXaHZtQtYuhR4/33KZqwoJPxrrtHk8F4p0EuW8OeFhXzMVbNqVX0Dh5EVaGbYGziw/nsDB1K/N250fL01NKnV1AgzTBsSXRcwOmEmC2ZICE2QOTk0BwutxfnNN1RbOCMDmD1bWGF4XRU0RlaWkMlHp41uwiwlkhj2C0xBnhzp6cCmTbwUnNBaqVOm0G/p21dYE7rJ5+RJ4M8/eaMCFGiAfsOxY1Qhp6yM5iQhBAWRK96AAYIaIHymoJ15ppBm0tJIgT50iOLvheXK0Wl8083AoWOljtxcbn8QVtTg1Cleq9EMBlwBtK6pabjTzhbZ3ig0/kpBAfDRR6Q4M0N6s2a0Bp06VdMyg16pdGaJnVRz6BD9bdeu/nvsNfYZv2XzZuC992jwnT5dWDZUtoA5dkzwAuarr2igyMigEg8JCUKaYde7xSLUU1w30tPpNxUX05gjKPSVFjBFReSWUlkpqBGdXegY2dnAuecKaSYtjRRoVgpOSNkawPwKtCCYAs1qpQpb+6Wk2FqrBaGrfCwWmlAFjgfp6VRKEyBFQMBGna4IrwHN0FFB+/NPXkqxQwdBDZltfNNRPmxTLCdHoAKtUwmrgKwBHRAKjYoJEyjmubqa5phzziHj86WXUv4QjfFKgTaDEmFPWRn9dWQNZWVX2GfsaWinVUjJCU/JzQVeeIGe9+4tTIFOS9NpAfPdd+QSCNAOjSAFWl2CR2hm+Zoaaoy5z/XrJ6SZ9HRgxQp6npMjWIFm+HONboaPMqWbRYEWXkJE51rqAN0/Atd+usDkExLieL2lGZdeSpOo4Dpm9vePWRToJk2ETXGEj0pZCVOgda4xLNzArtP4Zp/ozVm5Wq/xQQ1of3PhPhoS4pkrpzcKjT/y5Zc0kEyZQpVfhE5kXirQZoTtkjoyjLMMfsJ2UvXCRwqAsAWMDgrA6dO8hJxw6+XevfxkXXEF8OGHQpqxl0+fPkKa0a1Gt/ASIgwf3T/DhglqSIcaw1YrrzRnVvn4M4rCf0NKisBwAUC3AuC6ZXr+6ScagDIyqNawgJNntXIFOi1N8P3Tvj3VTM3MFGp10E0+OhsI27QRfImzIu3FxeYoZaWzAh0XRx69AUFAKDQq1q2jcl06IRVoO9ReDZ07277HamQKNmqIRz0ymmEAXrIE2LOH/CjViRI0RFf3H7ZCUmd3FYBuCgC7xljmGAHoUqObkZxM23Q1NeaQD/sNERG0+hPAsWNARQU9F37/tG5Nv6WiwhzyER5gDeTlkZEQMI97o27ymTsXWL+enpeVCXEVPHqULgNAB/k0bQrcfrvgRnwwvgFCa9yfPEnPhcvHYqHf8c8/ZDWurhbi4qibfG65hbINZ2UJy/Fgphr3bhEQCo0KHZVnwMs60GbkrLPoL3M9VsNeE5RTQz+aNuW1RAUuMHWzMKemAuedB1x/vbAmdHX/iYgAbroJeOAB4M47hTWji3yqq/nWsFlK8ISEcB+9rCxePFdjdFnAqOuUpKdTQiQB6CqfoCDeyL593LKiMbrIR1HIX7dtW2DyZEGN+HeCHWfobiBs21aI8gzoGP+sI7oZ2Nkah+3cCkD3+Fq2U1tby+dXjdHt/klMpFjVG2+UNe61JiAUGt8hFWg7xo6ljbJ33uGJAQEy4Hz6KTB4sEkmMDYAnzjBtx40xkwujrovMN94A3j8ceDyy4U1oYt8DhzgCowZErgwMjMpaLxLF9p+EIAupeCOHOHuXWaSD/stVVXc0q4xrBQcIFA+p05RAr4jR/gWlwB0VwA+/5xi1AYOFHby2rThG/fC5FNczGN7ZPymW+hy/5SX8/vfTBmedYiDbtkSiIqi53L95qcEjELjG6QCbUdsLPDcc3R9DRoEvPYa5dsaMoQ2a155xdc91Agd4gTVCxh/z9huxgyOLVpwg7ww+aivLTMtYJYtI7/XjRuFBVRFRnKPamELGLNlqGXYZ0oXQGgoT+wmTD5FReSWFh9vrvtn0yaqzfnHHxR+I4CgIL42zMkR5ChithJJjKIiYO1a4N13gZ07hTTBSikCAu8f9YF1Gt900Ud0UKBZKUWAdnAFOfLoghkNUC4RMAqNb5AKtAOmTwc++4xi6++9F5g3D+jaleaTXr183TuN0GEADg7mnq779glawKxbByxeDKxeLWwnEDDnAGw/QdbUCGjErAqa0DTsHPZbTpwASksFNKBDAjHAB/ePzonECgupFJzmZGaSknniBPDqqwIaIMxo4AD4bykro1OoOT4Y33S5f779lnanpkwBfvhBWDNMPkVFgu4fsxo41L9Fhzw21dWCHHkOHKDd0ZUruSeHAAJ2BxoIEIXGN3ilQK9eTXkMzMiECVRauKyMFkfffQf06OHrXmmIzgvM0lJBHogffQRcdx2lKN68WUADhG4leNSwclYsfbEAmHxqagSVA9RZQTNLjW6G8DjBK66g++aLL4DRowU0QJhdgQZ0cHMUmBrbZy72gG6JLIXIR6fxTfcYaLPcP2Y14OpsgAIEyWfdOuCGG4ARI3gpUgGY0YPQLUyv0PgGrxToESOAt97SqisSXfFRrVTN0WGC1LUED2P7dvLhzcgA5s8X1ozZFjBJScITFuuKcPk0aUIT6aWXCl1ZsL4nJlIOQ+GYRQHQCdb32FigeXMdGjSLAqDzDmd8PI9LFUrHjsCttwIvvkix6oIQnshS5xJJuhnYW7fmCet0rAWtOTrLR3iNe4lv0XlX16syVuokAxI/Q6cFpv0A3K+fxg2wAbhJE2Ezl7oEj27u20lJ3KdaR/mcfbbGDbC+h4YKm7mKioD8fHqum3VZUaj8RlYWaRyffSakGTMoaGVlVIYH0FE+KSkUBGu1+vcOpw5UV5MnJaCjfNq0oTCIykr/lo8OCrS6BI9u80+LFhQvKRgzyEfXGt2MoCBKYFlaKrRWt/ANkEsuoWstKwvo2VNAA7Y17lkFSolJGTGCqvEsWKBLc15dSkOHOs6OLvEDYmNp4MrP998FTG0t3xo2S4kkRkwMWajy8vx3h0Y9c6WlCXNB9Yl7lsUCfPMNZUeOjxfWjBkUNHUEgm7yCQsjJTonh+4fRREyPgiXz5lnUqa/M88EnnpKQAOkPFut9Fw3BS0oiMbsf/+lE2e1CimhJnwHjY3NLVrQnCoAM5fgEa6gZWbSGH3iBJWDE4CuNe7V/PmncG1d+PjWvTs9BFJQwBNQm+3+kdih866uVzPW448Du3YBDz9MVmyJn8EssocO8RlAY4ROkAcP8gvPTAlCGP4un2PHaPsRMFf8GYP9pspK/js1RugCpqgIePJJKmchKBMyYAD5FBeTIUoAQu+f06eBv/4Cfv2VEr4IwmfyYS6b6i1WjRGqQFdW0hwEmCv+WUeEGzheew3YupVcYAQpmz5bH+iw1a1LKUXBBHQCsUBD511drxTop58GunUDnniCjP0XXABcey3ldFI/pk3TqrsSTWELGEURVsdI6ARp1gyoDPabBMonJYXPw5rLR+f4JkDnCXLJEsqMV1hIIQQCaNWK4uoAAfLZvRt44AFg0iTg+ec1PjjH5wo0IMyLQ10KTnP5+KAEj8/kI8gLKjoaiIuj55rLR10by4zyURTKjLx+vTADR8uWvAqgUAVNoLJpZgUtIkKHUoqCMWMFFYkTdN7V9cqFe8kS/vzYMXo4wmIBFi70piWJEOwXmJ07a95E8+bk2VZQYA4F2qcKgAD5hIdTaPLBg1I+bqNDY6zU2L//0npdU09Xs5Z4YYwdS7kEMjKE/T4mn82beSk4zWLszH7/2CeyHDFCSDPp6aQHHj5Mm8aaVaDzwf2jqwKwdCntiABUQu222zRvgt0/W7bwWsMCk80LwewKWno694IvLdUwCeSpU1RjPDOTLMVmCsGT+Ab1ru7ChZQg1dG1pZFS6tVUL2hTTKIXOmbi3rSJe1yHhmp0YJ12OH22gNFJPmlpJJtTp8jble2oeY3ZFQCdSEsjBbqigoyUbEfAa4YNI/ft7GzgnHM0Omh9fCafUaPoIRimQLNScGq3R6/wQY1unynQgvM8bNxIG6r79wMdOmh0YB942Og6/6gbEzz/bNnC7x9/K0Pos/unqIgSJmVlkdLw3ntCmklPB37/nZ7n5FBTmrByJXDZZfT8iSeA2bM1OrAtZjdwSFTovKvrlQLtbwOdxA4dM3Fv2kS7ZwcOaLgW1FlB062ECEPHBebq1fQ8J0fD8oCpqZTWOztblwVmVBR31zQT9nHQminQbdrwBYxAmHzCwjTsu4Gwl49mCrT6ntfBQBgURFlqdcMHpRT37dNQgdZ5Bzo4mBwqdMNH8tFsXfnww8CXX5Jsnn8eaN9eowPb4jMFrWlTYNky2pWorRXWjL18NFOgfWAgFNiMxAjovKsrE7oHMmyCDAsTlqQKqD8Aa65Ah4QIW/lVVJD7EuAD66WPanVrpkBPmyY8AYI6EbtuNboZVivwyiskm6goYVmS7e+fwYOFNCME+0TsAhIt+xx7+WhWCk5nA2FysobeQa7AasrU1PhnJQidFeikJJ3l07o1BcFWVOhWCSInR0NP/h07yHXn33+Bl1/W6KD1YddUQoLOBvaQEBpU9+0TOrAKy2OjswdHTIywRPkSo6Dzrq4mCvSRI5QolMUY2WOxkDFQYjASE2nGSkoSGngkJFOtovBJPSVFWHG/3Fxd8sQ4hs3IJSX+ucDUgcOHea4I3d23g4KA+fMpw3NSkm4KtD9x4gRPUO4T9/qyMjppubnAhRcKaULYApONbzExlK1MAAUF9AB8IJ+QENquz8qih7+VGmPyiYwkZVMAhYU+lA8rNbZjB504QQHKwu4fRaGAd6tV2NZ9eTk3sPtkd3PVKnK7EljcWFilAR0MUPY17nU1sEtMj9d33UMPAc8+S0ZkhnoeZM+lAm1ALBYN/Q2dI2SCPHGCFEvAvO4/FgtZZjdvJgVA0wByjj8raD6Pb8rMJAX64EFaTUVGat6EEPlUVAD/93/U/4wMYVsnPpfPBRfw+ISiIg0D/DlC5FNVxVd+Amvc+yzBGyMzk5Tn0lIa0xMTNW9CiHxqa/nBdJKPz8a3HTvoehQUoCxs/vnqK1Kejx8XamBn+OT+adVKeBPC5MM2BeLiyEgogIMHuXe7GfOjSJyg066uV6PKe+9R7P/w4ZSgccIEYOpU4LzzKD/AwoUUYnfjjV73U+LHCBmAdYoP9HmCKqZA19RoHEDOEWLgELSbZI8h5LNhAz3PyQG6dNG8CbV8NNsByMqiARsArrpKWAIaQ8iHKdDZ2UCvXpo3wUrBqd3VvSY3lxb/gDlL9DHsS1kJUKDbteOe4poqACtW0DUl0K/aUPLJzhaiQAutNRwUJMw7ADDA+KYDrJRiRYWG8ikvJ4MMYO71m0R/dNzV9SpwYsECSgrz00/ApZfSa6mpwOWXA2+9BXz3HSV5LS72up8SPyY5mYfoCFGgBS4w1c34TAFgCHLjTkzkG6eayeezzyjrWv/+wDffaHTQ+vh8gtRBPk2bcr1CM/mYvUY3Y/hw4OqrgblzhblBs1JwgDQQuo0O909wMNf79u3jITleH3TIENoxmDxZgwM6xhAeAgxB8omIANq2pef+VtnF5/ePDgQFcSOHuvS5V6hPnE7jm0wgFgCwXd1Bg2gNqijAlCnAhx8CN9xAF/Pll9PutAZ4pUBv2waMGWNrgFUnAzz/fHo8+6w3rUiEsmsXcP/9tBv1xRdCmggL4wtMzSbIQCmRpMMChtXiBGw3vrwiO5vqYm3YIDRBXSDIB+C/7cgRMt57TaDcP1dfDbz7LjBnjtAEI+y35eVpZDAOFPmw+6d1a3ITFgT7badPk4z8BUO4cDMEl7ICbCOz/AGf3z+nT9OO2+WXAw8+KKwZ9tvKy8kj3msCxYAr0Redd3W9UqCrq23LxkRGUpiZmm7dqMafxKAcPkzFx7/4AvjjD2HNsMErP58So3iNzgvMsDBuJdcVnRW0ykrg6FENDhgUxE+YThOkDuH89bF3QRWEevJXx915jA8UNDPX4NQ80U6gKNAjR5LGdOQI7RAIQlgiJMH4XD46llJkaCKft96iBfSsWTyXgAB8Lp/wcODJJ4FPPiGlQRCah+FJBVoiAp13db1SoFu3tl1sJycDW7fafubwYaEJAiXeol6cCcwgpfkEqR6ABY2MhijB46NanF5z330U41RWBpxxhgYHdAxb07VrR66AuuOv8tE5BCIuTkj+LsPgr/JR11Bv2VJYM84JD6cYBcFoLp8ffySFJStLI5cdx7C5skkTiojRnaQkvoDTsZSi16xZQ0nEnnuOEtQJwuc17sPCeAlPlsleAP6qQLNhVPca9xLfoPOurlcqQa9epPAzzj6bxq333qMx67vvaGNTQN4WiVYkJdFiICuLrJiC0DwR0nvv0QW2YAGtLgRw/LiPS/AAZKViAcr+pKAxIiOFWdCKi8lLHPChfNSaoU47NJoqaFFRwlbm5eVkQAUMEH9WUQHs2SPs8MIWmOHhwlxfamqA/fvpucBE0oZAc/nMng2MGgV07ixMgbZaubdJWpqP5MNqDQM0ZghS0DRPZMnGN4tFmOuLIQzsAFdAi4rIxU8AmstH5x1o3WvcS3yDzru6Xt3yF15IFQ6YQnT//ZSNfupUWlNecgkNMvPna9BTiRiCg8mlISND6Aij+QImM5NcNaZP1+BgjjGE+09QELk2zpoF3HuvsGaE1eIUiE6bdA3DSo0BtNoVFMep6f1TXc01p8xMYStztau5TxXocePIyNaxI7eIaYym8rFa+UHS04WtzA8c4IlKfW7gEIym8lEUPvikpAgzEB49yiuw+NT9lI1vpaUaBcDWR5iBsG1bYa5JhjCwA7p4QQnzIGzeXGiNexYuKN23AwSdd3W9mpmnTqUBhC2+k5KAP/8Ebr6ZSllNn07/9++vQU8lfo0/1ho2TAbHl18GnnkGuPZaYU34Y4ygYeTDFjBWK1dMNUbT+0cnzcnnGewZzZrxnTNBg4+m8jlyhGtOOsnHp/fPDz8A110HDBsmLGGK5gaOF16gMJWpU708mHN8nkCMobOC5rV8ioq4a5KZ8wcwdJCPpgb2ykoely7QgGsY+Uj0Q+ddXc1Np2lpwGuvaX1Uib8jpJatYAJpANZ0glyxgrIeZ2bSwDV8uJcHdIxhFAD7BUz79po30aYNhbtVVWkgHx+UgDOUfLp107yJ+HgK5S0t1UA+p08DffrQCQwE+WzfDixeTM///Rfo0UPzJpo3B2JjaVfKa/kEBwPXX69FtxrEMPOPfS3owYM1b6JVK4pWqKzUYH0QKCXgGPbyEUCzZjTGnTypwf2jLvURCPKR6MfUqbZGTbar+/zzdG+kpgK33AJ0765JczK9l4SSPf38M11g554rROFJSCAvyrIyDQbgtWtplk1PB3r2FBYDbZgdNB1o0oQWMceOaSCfbdtIRmvXAiNGaNI/RxhGPjpk4ma1OPfs4bVsPTbcB7oCLQAWarl9O60Pa2tJz/KIzp2Bv/6i59XVWnWxHobx4FA3fuiQsGbS04FNm2jzq7ra+DGRgbQDHRREv3HXLv8Z3wyjoOlYauzkSQohrawkg4dHqPsYCPKR+BaBu7puKdDXXedZIxYLsHChZ9+V6MCWLbbCFaBAs1rDbIFptXoR2vfuu8Dbb9PzjRuBM8/Uqps2GKoEj9VKM1d1tbDZID2dFOijR8nQ4bFdwgcLGLMraADJZ88eks2JE0BioocH8sEOTaDIZ/t28hI4coSM314jUMszjIFjxAjgn3/oBApM1Z6WRgq01UpKtNHjvg0z/+h4/+zaRfn+jh2jfEAeEWgKtLpxwfLZuJGMG/v3Ax06eHigvXv5cwHeWgzDyEdiWtxSoJcs8awRqUAbHB1cgAC+Q8MWmO3aeXggnSfIxERKVuwzDh+m31lZSQmRvvxSSDNpacC6dfQ8Nxfo0sXDA+m8wxkTIywPiWv4qJSVJgq0DvKJiPBiMawFPpKPJgq0QJh8QkJ83NfYWHoIxl4+Hl/6//5L1sWkJC/cDBrHMB42qamU0CYzU5ixGqifh8PjMcMHO5w+NXA0aULJ0g4f1nV8kwq0JNBxS4H2l9hViZuwGhmKousA7LECPXs2MHo0cPCgMM2pvJyUfMAAg2+rVjxmSMdanB4r0KyPzC9cANXVPA+Jz0vwsFJj5eW63j8DBnh4ILYyDw314iZsGKuVzxfp6T6WT4sWFARbWKhrqbFhw4Q15TU6JZI2FJolSrzhBrI0hoVRwipBWZ6ZfFq10qVUtnPCw6lcpGDs83AMHOjhgXQ2sMfHU4ywT8nMJAX65Emq7yjAk0OzRG9TplBFhL176a8gWB99bmCXiMPHbtFuTZspKV63JzEi4eFUL23/fl0XmEOHenigc86hh0DUCyyfK9DBwcDIkbTKFZAAiaHJBFlTw09e+/bCNKf9+ynOFDCAfFgpq23b6LfX1AjRSDSRj9XKlfz0dGE7aCxODjCIq2xmJsUVHzjgZQCfczRR0BSFSmwkJgKDBgGPPKJJ3+w5eRIoKaHnhpCPDmimALD7p2VLYcpzaSm5MQNSPm7D1jAtW5LhTAAVFbzGvc/nH4AuklWr6Hl2tmZletRolgj2rLPoIRB1pUafG3Al4vCxW3QA2J0lLpGRQSNOQQGQny/EZOdPmbgN5/7zf/8nvAlNFjC5ubxEkk7uWYZYYDIFOjSUCoS2bat5E5ooaIcP0045IFQ+homvZTAF2mqla1TAzocm98/Jk7yUEyu9JQDDyeevvyh7f3Y21bsXEJuviXyKiykBASA0f4BOaQoMhSbjW0UFT0Qn8MJW17g3xPrAPkxFgALtT6VIDx40kIFdIg4fKxJSgZYQmZnAr7/S8+xsIQq0Pw3AhlPQdEAT+egU32Q4BeCFF4DXXyd/S0Hmbk1Kjfkg/swQ8rFfYApQoFNT+XOP5XPkCPmDnj4dWPL58Ufg4Yfp+ahRQrTG5GRKXGm1anT/eBwE2jiGG98AclfPyiKf5eRkzQ+vyfiWnc0NT4EUX6tDnod27cixqqbGv9ZvhpCPRAw+dov2SoF29cK0WIR6Bku0wL4Uj4BkIZpMkDt38sWlwMQzgTgAa1Jr2AcKtCHko9aeBBEdDcTFAadO+Zd8DKEA6LDAjIyke+jIES/k07MnKSonTvC8BwIIRPmEhpLel5sr7x+3+fZb4OKL6fm8edzYoSHNmmkwvu3Zw59LBVpTQkJIX8nO9qLU2KFDtD3cvj252AsyNhtOPhJT4mkhIQA0vytK/UdhIU1Subm0GBe4DpBohXoAFmTtaNKEZw722PPixReBfv1oh3zTJs36Zo/hFDSGolCAnABYrWGA5OORB2mgLjB1gl2Lhw7xGGO3uOAC4MMPgUcfBYYM0bRvagx3/+icifv4cS9uU4uFBkqBqcsNd//oLJ+CAnq4TaCOb+qdHh3ypKhzKLiFTh4ChlPQdKykAlAkg0f3z6efUna4+HiahwRhOPlI9CE93bWHRoOqVwp0bi4ttO0f+flkCBw1ivq5c6cmfZWIxH4HWhBsMGO1ht1GPUHqkGHT5yV4GMeOAWecQfW0PM086AJMPqWlFI7pNjq7CIeGGr9ckJYw+bBanG6TnAxccQUlpxKYkI6t4SwWXTbnG0enBaZmmZ4Foz4FPq9xD/iPfAJVgc7IoLTy06ZRQktBsGvR4/EtUENUoqNJKQV0rQThNuq+CdRspQIdoOi8qyssBjozk8rVdutGmx1PPimqJYkm6LiA+eMPeu5RrWE2QcbFCcuwqSh8AE5Lo51Zn9OiBdUfra3VdYJMSHDzAEw+zZp58GXXUJfgSU0VWorVPf73P5JRVRXFQwtAs1qcgmH3T1KSkITX7pOYSLWASkt1vX8E2ii8gt0/Pq9xz4iNpTEuP1+ofOzDiHr3dvMAOhlwmXyio8nT1ec0bQqsXCm8Ga/HN50NHGFhFLZhCDIzyf89NJTmoLAwzZuwl0/fvm4e4Nxz6e/evbp4CAQFCQnXlxgVdXY/e7KygBkzaA3w00+aNCdUNYiIIGPlRx+JbEWiCVFR3L9apwWM2zsAZWW8doTAyfHYMUrmCRjIehkWxt3osrKEZej1ysJcVcUHMIElrE6c4O6xhpEPQInEXnoJWLRIWNyKPyTiKywkPQgwyO4MwEuNAbzUmAC8yvOgKMC4cTTJf/CBpv1SY9gSSUw+Bw/yAVhjvL5/WIxtu3YUkyQAdQken9e41xm1fDyy4ysKBesmJFABYAGoDeyGMuB++SVVWMjJEaI8AxrcP5deCrzxBvDzz0ItQ2oDrqBTIfE32K7u4cO0q6sBwvfWQkL4ZC0xOGwBc+wYLxKqMV4NwGrFPpASVDGYfIqLydIsAK/kk5PDFcdAcm9kMPlUVFCMggC8kk9BAfDNN7RLLkhBAfxAPjU1VA9aAF7J59gx4OuvgVdfBd5/X8tu2aA2XBpKPqwziiLM/90rF+78fG4ZEji+HTjAS/AYSj464LUj3KpVpET+/bdmfbLn+HEefmaI8AdGq1bC3X38oRSpOr+BodZvEt+j8a6uUAX61Cngq68CK0bRr1G71KhdoTTEqwWmuk8Ci2MaLr6JoUOiHa920AI1/ozx4IPAb7/RDpqgwHmv7p+//gIuuQTo2pVioAVheAMUIOz+0Wx8C7QSSYAuiSz9QT7qS9NQ8mGUlJARVwDqacPjWzQkBGjbVpP+OEInO74h8QcPKMPfPxLfouGurlcx0PPmOX69pobWkMuWUUWOp5/2phWJbqgXBXv2AL16ad6EVy5aPlDQDK0ADBigeRNeWZgDNcEOo39/4U14VYsz0OUzYABw+eXUKUGBca1akZG7okLeP26jg4GjZUteZlveP27yyy/AVVfRFuxTTwH33ad5E23a8PtHkA3fa9SXpkA7viGJjSXP+KIiD+6fwkLyUGvRQkTX6ghkA4ekETTe1fVKgZ47t+H3o6OBOXOAe+7xphWJbuiwA922LXkZVVZ6sEbSaQGjU54Y99EhU3pMDC0y8/L8Y4FpKAOHDgQHe1GLs18/GpD37vUge5LrGNZD4JJL6CGQoCAyQu3c6YF8Av3+UWsj6nq+GmKx0G/esoXSNdTWuhHDGugKdGwsKc+AsPVBUBD95h076P5xSz46odNl4D41NcD8+bQ2aNECeOUVzZtg988//1Ccfk0NGXRdYuFCUgZatKAQlQsu0Lx/gG6OihIjovOurlcK9G+/OX49KIjG2k6d3Li5JL7HfgdaAGyC/PdfWigYcQHDmmGThWFQzwYCzfPp6aRAHzzoZjLPiAhKRHf8eGB6COhEejrdO6dPk5zi4lz8Yp8+9BCMYRUAnUhPJwW6ooI8xVz25g90BU39mwWPb1u20Jrq0CHbEscN4gP5GEoBUP9mQesD1syOHTT3uCWfRx+lL7ZvT4pabKyQ/hl2Bzo4GHj5ZdrpTU0VokADXIGuraV4fZfnYHb/5OcL3YWWO9ABjM67ul6pt8OGadIHiVFgKT8VRegCpn17Xu3n4EE36sSyPiUk0I0gCDYAJyWRTmgY0tN1kU96OvDnn7wWp8uT0Asv0KO4mPwkBcEWmK1aUXUVQ7F6NV3cRUVCXByB+nFoLivQOsHkExsrrNKcobGXj8sKNFNKQkOF1l5h8mnaVFilOc+Ii6OLpqBAqIJmLx+XFTTWp6AgoZY7dYkkgaG87hMdTYPusWNC5WNvJ3ZZPsuXA+vW0fPZszXvl7pPAOmrhqhxz2CVBv76ywPrt+vYy8dtBdr+IBpjWA9CiXh03tU1QoVbiVGIjAR++AHYtYuyWQrCo0Qhp0/zwH+BZsW8PJ7B0XDWy4gIvprYs0dYKSuvEokBtNASVHvFsCV4GDfeCNx8M1lCA7CUVWUlrd0Ag8oHoDpBe/YIK2XlkXysVj4YpqcLc92qreWV5gxXIsli4V5QBw5QNmUBeCQftdEyOVlYtmN1iaS0NOO5L9fJ5/hxMhIKwONQeHZht24trLi5ovA+paQYsETSW28B27fTeklQ5zx2FGEnLjZWaAkr1kzbtsIqzUmMyrBhjh9DhgDdumk+r0oFWmLL+ecDHTsKnRk8GoB18ssxbHwTo2NH+ltcTAWRBaBDqLXHGN59my0wKyq4JqkxHpXiKSkhw1hVlZA+Mfbv53YdQyrQM2aQobBjR11KJbmsoB0+zEuLCRx4Dh7kdgNDykcdRmSkSgMnT/LM0wLlc+wYL5FkePkI8oLyOBN3bi4Zxr74Qusu1XHyJOmmgEHXB336UJWFyEhhTXi0flPPhwJPXGEhr/BpKPd6iSnxSh13ZQEbFESJiTp1AiZMAMaN86ZFiRnwKJTXBwnEDDlBdugA/PQTPd+zh2KOBTTBEOip5xGGjd9k2J88l/0PXccjBW3NGmD0aBqQn3hCmHu54eUTE8OL7O7eLeQm90g+gR7/zLC/f7p317wJj+QTHg68+SbJKZBLWNnLp29fzZvwONVHaCjdOzqtDwJVQfNIgc7O5pZVgfKR8c8SPfFKgbZayZp95Mh/BwvhGXyZlbtNG9oo++cf4OOPgQsvBL780oCuSRLd8GgAlgo0oV7A7N5Nrika45F8/vc/4IMP6Mt33gl06aJ5v+z7Y3j57NkDjBypeRNeKWhWKxAfr3mf7JsBDKoAdO8O9OxJF4+gJEMe7XAGegZuhg7Wu5QUnkrCZSeEmBjgppuE9EeN3xk4BNCunReVOgQjFTQKg4+KIqcmI6/fAtXAEdDovKvrlQv31q0UZzBkCPD77+SlcfQo/V2zhl5v146803bvBkaNAr77TlhywHpUVNC6fuxYWtRERlLSh3HjKM+CM778kkq6Nm1Ka6yLLqLfGhAUFpIiNHcuWTwE0LYtT87l8gSp0wBs2AybDObCDQhbwLAJ0q0m/vqL4ubfeYf7uAlA3R+BG0Geo4N8mjfnup/RFDT1T1afCsMwcSJZcz/9FBg0SEgTTZtyxxCXa92r5SPwwjb8/aPu1KFDQpqIiODJuYysoBly/tGxUgdA94+gVBIeYXgFraYG+Ogj4LHHgOefF9IEy1UGkAGqutqFL+l0YUsDR4BjtVKYWm4uPQ4dolwahw7x11iR+Y8+IgX6kku4V5qbeKVAP/gg5ZFYsQIYOJAGPoD+DhoE/Pwz6WMPPkgX82ef0cT1wQfetOo6ubnA9Om0Az51KvDaa8DkybTOP+ss4MMP639n4UJg/HhKVvT008BDD1FOhkGDqPSF6cnPB666ikpCfPaZkCaCgvgYymo9NopOAzCbIAUnWvUcHRYwFguffHJzXQybZfVBAd0UNENOkDr5v7Nr88ABF+UjPTh0hSkAR4/STk2j+MDAYUgFunNnYP16cmN7/XVhzbDfnpdHD6NgePmkp/OFng6ZuCsrXbSjvPYa8PDDwLvvCks+B/iBgSM4GLj+euCRR4AFC4Q1w4YodVLCBpHzj0QPdN7V9UqB/uor4OKLnSc2Cwuj3dsvv6T/mzQBzjmH+q0H8fHA339TZYM5c4Bp04DHH6fzGhoK3HWXrXWzsJBea9cOWLsWuO024O676bxbLJR/xvSkpNDJAXSZIKuqSAloFDYyCs6wqUOiVe9ISuIdEygftnirrXXRzfHrryl9+V9/Ca3xyH5yYiJ54RiOxERewktwrVSAxi+XdjnZhR0VJSRunsF+ckyMUE9xw+N2Liwmn4gImoAEweQTGWmwEkmM8HCgXz+hYwjgQS6sP/+kRZegygcMJp+QEIOVSGKEh/OOCawE4XYisffeA+bPp50Sganl1QZ2daiGYbDfHhZUacDtMC8feBAaMgRCIhadd3W9UqDz8hrf/aiutrXwtmrl8W6527RsCfTqVf/1Ll0oUeHx47aJjL/+mhJtXn+9bZnhdu3I82/1ahetbf5McDDwxht0Mj7/XFgzbk2QikIJXJ56CrjjDmF9OnWKV+YwrPUyKIh3LivLOBMkQL7FffqI6A4A3SqZeYe6FE9uLm2hCMAtT3Hm0gTQiRO0wKyooCzcAJ0CQ5VIckRNjbDJyC1HhNpabgXJyOCTvsbU1PBm2rcX1oxf4JZ8FAUYMYIWAj17CuuT1crH2vR0bsc2HOzknT5t63mkIW6VslIULsSkJB4fpjGGL2HFYCevpkZYJQiPFeiWLYXlnlA3I0tYBSg67+p6NYWmp1PFAGchj8XF9L7aUnf0KBAX502r3mO10kI8LIzW/IwNG+jvwIH1v8Ne27jR+XHT050/BOk5Yrj+eooLEBjE6NYAbLEAl15KmYMFZQ8G/MA9izF8OLme3HKLMHc1HaqVuI1OYaLewzrn8vaw500ALigAOTnc1UZwgiq2IWVo+bz8MiUQiYwUltzCLQPHwYPcEi1QPrm5fB4ytHx0wK375+hRiukChHoHHDnCS1gZWj46hKm4lYk7L492lQCh98+pU7pUMvMeHepQurV+KynhfvgC15SyhJVE711drxTo6dPJq6lfP9oBz82l9XxuLvD++/T6kSPAjTfS5xUFWLlSqBHXJd5+m+bESZNsjZXsHnc0R7LXBOU1CTg82uEUjN/Ez7z6KvDDD8BLL3F3YY1R/36jlLIyfHwgQ4dEYm6tYWV8rS1lZWRxrqnRRT6NGrd1Cuz3GwPUvn00tt18M7ncCcCt+8diAWbOBMaMEVL1wFE/DC0fHRRotzzUdLqwDZ9AjOHW9r1nuLV+0ymzpEwgJtF7V9erMlZ33EGLg7feAq65pv77ikJKNvO6PXECuOIK9yu7lJSQ966rjB/v2HUboPjnmTNJIbZPUsisv45iX5mizT7jiIYy4hrWHctHeFzrUSB+o0DrgFs70B98QJn5OnUCLr+catcJwG8UAB0WmFJB8wId5JORwUslNdpEfj65kpWVSQMHAPz7L5XCA2hhI6AUXGoqefm5ZENp3Rp48UXN+2CP38hHp1JWYWG0meSWAi1rDOuyuIqPpzDH4mIXmti1iz/v1ElIfwA/8iCUiGP6dJo7+vWjOOdBgyjny/HjpPw9/jjt6r7wAn3ey11drxRogMJlr7wSWLIE2LyZYkijo0mBveYaYOhQ/tnERODJJ91vo6SEfrerZGY6VqA3baI61DExwPLl9ZPcsJgJR2GLzFM2IOIqqqvJtXHPHopXGTVK8ybatCEPyvJyFybItWvpxHfoQDViBCEVaE6LFvTIz3dhjbR8OWU/BSieRJACbfgM3AwdFpjR0eR5dOyYC02oFzCdOwvpD+BHCoAOHgKRkZSIcP9+nmvJaUz45ZdTko3Dh4UlSAT8SD463D+hobRZsWcPjftWq+9jwg1fAo6hg3yCg0k+u3bR+qBB+cgaw7boWKlj0yYa46qqGogJV1t4BV7Ycv0m0W1X9z+8VqABYPBgeoiiVSvvkz3+/Tedo4gI4NdfHa8j1W7a9u8fPmz7GVOTlwf07UvPR40SokCzUlbbttHOfU2N87h/3HILKfRhYRSL5vSD3mH4DJv2KApZrNSB/BrSoQNVlDl4kAwdkZFOPrhzJ/1V178SAFsLWCwGz7Cpk/97hw6kQB8/TpeB06zkagVa4ALGbwwcbm0Pe06HDrS4ZLF5DWYlDwqiBEgC8RsFOi0NWLqULiKB12uHDnROyspofhd8+hvFb+TDKkFUVgqvNLBrFyUnPHKkgbWXenwTeOL8Zge6bVvaaCgttT03GsMUaKuV1nBON5flDrRET/TY1f2PgMjD+c8/pDyHhwO//UZZuB1x1ln0d926+u+x1848U0wfDYXOpXiqqxsoZVVby/uQni5MefabDJuM888nxbl7d2FNuBSHpih8gkxJEeaiodZ1kpMbUOaNQHQ0uX0CQmv2uexmz+TTurXQ2l9MPq1aCQvN1wa2PQwILcWjw0a3W7A+tGhByXANS2goLXQGDBBazspl+Rw9Krx8lboPTZvy4cOQBAUBEyYAU6YA114rrBmXPZGZATcsjNYIgvAbA7vFwhXVnByyQAjA5ThoNv+EhOgiH0Aq0Jrx88+Ui6J/f1rbWSyU4KohvvySPt+0KXmwXnSR82SdZWXA/fdTTA0rkXf//Q3HyrrC4MHAO+9QWdW9e8nS8847tsqzBnitQP/2G+XWSEigeS84uP5DkM7jEv/8A5x7Lu08r1zZsAfj2LG08HvnHZ5tEaAd6U8/JZkYeuDUCp1K8biU66K6Gpg7lybqsWOF9AMATp70kwybjOJiehw6xDPEaoxLCtrRozxhg0DrsjrRqqF3ZxiskydO8I5rjFoBcKqn5+XRxQ0IlU9REa9o41fyUaduFdQEINSO4hLl5dxI6Rfjmw645OlaUUFbn9HRjl0CNaK6mudQ8YsScO+/Tzs8s2YJa8Kl+6emhk9O7dsLNbCzZpKT/cDAzha66tpoGuOyAn3DDVTZZeJEocmA2BpSlrDSkA8+IIWovNy1zZqFCykJVWkp8PTTwEMPAdu3Uyzyli22n62tBUaPps8NHQq8/jpV/3nuOVIq9ap37AVejTbffguMG0f3aHIyLeh8qSzbs38/7TwXFAAPPwz8+Sc91IwcSRuuABlLnnuOsoYPGkR/q6oo6bHVCrzyiv6/wWd06GDrnyMgdtJ+AD7vPAcfiogQWrpK3b6jfhmWzp1JY+nYkbQXAbHhLnki6+Se5TfujYwOHSixGkAXlwDXFZcUAPXKU6B8/CaBGKNjR57hec+eRvyrPcMl+WzfThb3zp2pfqWgLM9qA6VfyEcHXJIPC8AtKRG6oMvJ4YeX8iHUw5VTBTonh5etETi+HTvGDewCm9EOdSd37RLiqeayAn3bbZq3bU9+PrcT+8X6zV94/HGKJ46IIINZQ3V8CwuBu+4ig+PatWR0BKjcUZcuwIwZfE0EUJjOqlXA7bfbKlfp6ZTp+d13hXq4aIFX6u6jj5Il7uuvnSg/PiYnh5f7mjfP8Wd++40r0ADFl7doATz7LHDvvfT7Bg+m66hHD/F9Ngz2/m0CFGgdcl24jN8p0AsX/n975x0eVZX+8e+QkAQSIIQaCJDQCS00wYCggvoTRFEQVBbEBWVdwYYNQUERF11ULLgrgr2LoK5YEAFBkN57SwOCtBBIL3N/f7zcnDPJZDLlnil33s/zzMMwc+eek/vee855y3lf5W4KpzzQPkhQFRDyKe8+8ZUCrYc3AqxAy5SXT9++SpuoVD47dwLLltGrYUNlCnTAGaCys4E//6T7t1s34OqrDW/CKflwAj6fIS9BKt3K6yX5eMkOaRzlFWgF+FMp0oCTT6DQtKnzx377LVmZHn1UKM8AKdQjR9KaNTWVwrQBkXh2yhTb80ycSBm03VWgV60iT+jmzeQ9tVorHmOxUPSKh3ikQO/dSwlE/VF5BmjOdWfr0ogR9ApqvKDdemGMdxov5VkyDi/E+Dm1B81LHuiAU9Buu40sbm3bKstO1LIlbZEpLXXgoWEFwD5Orc49o3lzJ3ItyV9wBIdg507gxhvp/aRJShTo2FiRa8nXBqiAk49OXh55KRSMcY0bi1JJlY5vXpKPl6Y545A7KV8jA6lXj6I2s7J87wAJOPm4SGxJieP9445q6HqLjRvp3+Tkit8lJ5MCvWkTKdCaRvuTmzSh3DkyERFA9+6kADssX2EHL4dFe7QHOipKaY4PxpfIs7iiBWaDBjQAO2zi0CFle3xlzD4Au0OtWrSIATiE22VatqT9IS1aKKuPExYmcjJUmgvLB/IJiAgB2Ziwb5+SJkJChBHqyJFKIoBnzqQ098uXK/GC6wTc8yPLR5ECIKf6kCOBbWADlH0KCmjwiYykjLcKsFiEnSs1VZQStcFL8gk4A3vr1jQAAUq9E/q9mpFRyTItPZ2iSRTDHmg/4Phx+tdeuny5xBFAMfe5uZWn1o+Lo++zslzrgx4W/fPPNGisXUseaXsvA/BINR84kKKsGBMizxIKFzDt29M9lJ5O28wqlEG96ipKxNSzZ8UN7AaizzFygt6AwVUrnQvIpZIuXrSNzAEgLlzdukr2keroC8zq1SsaLIOZtm1JOcvNpXxuFUpw33sv0KULcPSoa+FYLhIwJcZ04uJosMnJUTa+ASSfvXvJC52RIaLXyrBYqC+K6yPKClpAZKht0ACoX58SvCkycAAkn+3bybiRkmJHOdLHN73uoiICzgAVEUGZzwCSj6I5qH174Yg6csTOVl752VVoeQg4BS08nIy4hw9T5xUVOu/QQTgeDx2i3RY2jBtHykpsLB2gqM692R0gmaGh7nuZc3KAOXOcP374cDuCdAI9c3Z4eMXvIiJsj3F0bPnjXfHSejks2iMF+qWXqPTTCy9QyLrfZ45knCcqijSVtDTlE6RuhDl0iCI3yjh/npRnvT+KKC4m/QKgBZQih6HxTJtGiZBSU0l70i3OBtK2LbBmDb0/dEiUBwdAA3NGBr1v317ZACAnElVYySwgadsW+PFHen/okB0F+uab6aUQucSYXo3C77FYaPW3eTNpTnl5SlK3lt9qXUGB9hK6fJo2VTqUGkuHDuRByMykBDUK6t2Xl4+NAm21ipV5y5ZKb2xdPnJUlt/TuzcV0O7Qgdz3Cq6Pw1xYcgnFZs2U3th6M3Xq2ObM8Wvat6eJMy+PPH8KPAPlI8Ur6F36hSsp8Yp8atTwfT13vyMnh5I4OUvr1u4p0Pr8aa9qjx4+oh/j6Fh7xzuLl8OiPU4i1rEjMGMG8P77QFKS/TKjFguFvzMBRmIiKdDZ2ZW4tzyn/ARpo0B7yex75IjIJxBQ1st9+4RXPi1NSY3F8hOkjQLtpf2bJ06I8TQgwht1Dh0C/viDLtwDDyjRnsqXslKwVbRK5BJwASWfxETh3jp40L1FQxWUTyVxww2GN1ElWVmiUlfAyWftWnq/fz/VhTYYh6k+jh8XnhKF4cE5OTTGle+P3/PNN8qbcFiq76+/RIlAhfLJz6fpVe9PwDiKOnSgPaEAeQgUKNDyZa8QKV5aSuWIDh5UqtTIDpC2bQPIAeItGjf2Sh17mzDt8s+jPsDpx8TEkHKsh3SX58QJUUfaFbwcFu2RAv3BB+J9Sgq97MEKdICSmAj89BO937fPKwq0DV6KywnY8J/ERMp8CJB8FCjQDreKeunCyVF6AbH/TOeLL8i6CAB9+ihRoP0hk718GwSUApCYKN7bdZ94jkP5bNwIfP01PTuDBilzTwdceLBO+X3Q3lagvTS+cYmxynG4PkhJIW3JalWewFLXPwJqfTBxIoWztm2rpMwlUEWqgpAQ4N13lbQrc/RogDpAzMYVV1DJq/XrKf+LzPr19K9ejcRiIW/MmjVknZL35RUUANu20feuWqu8HBbtkQJdmcLMmAR5gblvHy3yDIYVaA8oL5+bbjK8CYcTpA8UaPlP9nvKy2f4cMObcKgA6Cvz+Hilce+yYSWg5OOFRGIOPWhr1gCvvELvP/lEmQItPz8KHXXGU/75UYDDXJleunABa4DyAq1bCx25wvNz5ZUUIXDkCMXuKiJg1wcKDOrlSUignE1FRUpTSTgk4Panm5Vhw4CHHgIWLgQeeUQkzDl+HPjqK6oHrGc9BYAxY8QcKNeBXrCAkrqMGeN6H7wcFu3RqoqT+ZgcLyxgWrakxFDFxXYWMF4aGb2UyNN4vCCfFi1obZKf7zsFOmAVtD59gHnz6KZKSlLSRNOmohRPhedn5kzg009phbN7t7LVuSyfgH1+FK3+6tcXpV4cKmj8/FTEC5m4o6Mpv1FmJo9vHlFUROOMwYSH05r76FESR4VULOHhtGBWSMBl4PYioaEU1bJ3L3nqS0q8n6MkYA0cgcCuXcD339P77dvp3+++o7w7AOVX6dKF3tetS/WXJ06kihITJ9K48OabZAGTlWSAajx/9BF9n50N9O9P7c2fT8mDx41zvb9eDotWfqtrGiW5GTJEdUuM4XjBQ6MPwPv2kQettFTKheWlzBD6wsliCbAQR31DlqYpk0+1ajQpbd9Oi5jCQilXjH7hqle3tSwaTMAqaHFxZJFViJ7JfutWStKZny85Y+QELgpTywdshEB8PE3+rVoBAwYoacJioWuybh3l27PJZO+llXnAKmhNm1ItvUuXlGbiTkwkBfrsWdrPX1ZMgBXoqhk9mvI8lJZWvp/RQ9q1o7knJ0dZKhaHsIfTMe3bkwJdVET6StkaSlFixvKwAq2QbduAZ56x/WzxYnoBtMbRFWgAuO8+2t/8738DTzxBRrV+/SiJWdeutucJCSHl8PnngS+/BD7/nKyZjz4KPPuse0lxvRwWrWy7fUYGOUBatFCeBJZRRZ06Yrbau1dZIgJ90CssFMk6vJUaW07kGR+vNBLMeGrWFGGf+/crk4+utJaWimzYKC0VMcOtW5MSrQDZNtC0qZ0yWkyZA6ZCmOOtt1LY+PXXi7IQCtDlU7++0kpmxhMSAuzcCSxZAjz4oLJm7Dq6vZhBWJdPrVpKK5kZj54pHaCJwW6hWc+pNJBHF1ajRkpTY+/dS/9GRCi1Q6ohPZ1eJ04oq/frcJuXF9DbDAkJkBJ9MuvWUQmjceNEwjWDqTSRWI8epBDddJPSJFZymwHlAAkExo0j2VX2suclHjGC8nvk5dE998MPFZVnnago4OWXaXwvKqJ/X37Z/fmwRYuqX82bA3v2uHf+chiqlVit5N0fMoRCc2fNonHVF5lhGYPQVxfnz5N5XgF2J0g5NbZC70xmJjk4yvcjYNDlk5OjzANgN5Ly1CmRmEThhTtzhm49IAC9M16iUgVg2jSyFOuJABVw4QJw8mTFfjACOcK0TD5nzlBcN6D0+cnNFdF2iYkBlEFYR7+p9EzpCpsAJPlkZVGWZ0CpfIqKhFGyfXsllQjV4oVtEPL0X7Y+yM0F7rqLvFcrVyppF7C97RRXMlPDxx8DU6cCH36ozPpgd31QWEg39qlTpAQoGnhk+TRvrixXGmMGFHh1DVGgU1OB6dPJkH7bbcDPP5PB9skn6Rn67TcjWmF8ghf22dpVoHWzPAB06qSkXZv2EGDhwTpekI/dCbJpU+DcOarT/dprStoFAjy8ESDrzPr1tN/GIKtneWQFTX5svEHAhm97Efm6lMnHSwmqDh4Uzp+AlI8X9kHbHUK9FLd7+DAF85TvR8DgBfnYHd8OHqSQzxkzKAGfIjIyROBDQBrYvSAfu+u3gwfFja1wj/rp08IOyfvTmQoo9uq6vQe6pIQq6CxYQAZAq5XC3W+7jcoDDhsGvPiiIX1kfMmYMZQQIDFRWRKi8rWGAdgqGwoHYC/l8VFH+dWfgkKzlc7BFovymN2AzSCs87//0T5BgELpFBiDvGBDqZSA3Z9entJSMnZERxt+arvykS0dCi9cwBugvHBz240Q8NKNzfKpGlk+ZcsCL00MXlqGqOPGG2lvTadOyhY4suJaJhYvOUC81AwTaKSmUjbw99+nKAgAqFcPmDCBXgZlqHdZgT58mPr14YcUhaZpVD7znnsooiYmhguZm4qePemlEHn+K5uw5JlL4cgoz/mmUKAV0Lo1JXsrKfGtgsYLTPvoe/fz86UFxalTtHBSnBI14D3QJ0/SIvPgQbL6fvGF4U00aULpJLKzpVtAHt86dza8TZ2Af3684EGrVw9o2JC8WWXPz+7d4gAvzT8sH/tER1PA04kT9NhoGmAZNQro3p0+kJMYGYyXliHqaNtWeW20yEgKn05PlzKle8nyEPDyYYzDB15dl1dXeuLfBg2Ahx8mxZlvXMYToqIoeUpKijRB6iNjRITSeoZeWiepwwuZ0sPCSIk+cEBEZnlrr17ALzC9lCm9QwdKmHn0KFBQAETcfDMlyEpMBDZvVqZIB7x8GjSgP6KkRJkCoGfi/vNPypGSkwNEyQOPwgVmwMsnPp7mgIIC5Zm4T5+mbc/nzgH1rruOBro9e1iBdkRcHE3gOTlK5dOxIynQ58+TjBo3DqVBT3HYCytoztGhAynQFy5czpQuu4ZZgWZU4kOvrltntVhImb/zTr5pGWPQ76OcHCD9UIHIrJKYqExb0zQxADdtqjTRqjpq1RIlvvbtU56Ju7AQSD1cDAwcCEyaBHz9tZL2dHSdpkED8hQFHDVqCAPQ/v1kFVWATSbu/VZRV+TSJaVeaH3NXKcOJVwNOKpXpzGmQwelk5lNrqV90sATF6ckbFxHl0/NmkormakjJETEiB45Qve0Airkwho8mOqWrlxJWbgVocunevUAzPAM2GZKT02lzLsKkB9NRakk7KK3Va0a77F1hCyf3bshQjnkSiEKkO+FgDRAMZ7Trh3VnwbIq7trF9X1nDSJlGeFuKxAz5pFScwWLAB696bos7lzRZg5Y0JSUiib7/PPKyuFIA/Aab8cEIqGwkXtyZMiAYXCKEr16DPHhQvKHkTZ0J++8ggtLOfPp9AYRWRlkTUbCPDJUe98bq6yTOny9Un7PVUsZBU+Pzk5ouxcQGZ41tm+nTSZTz9V1oTshElZd1KMowoHnoICUQmwffsA3lql39ylpeIPUtQE4L1tKiUlIldZu3bKd1uoQ86UrijTsy8SJZaWCgNumzZKKwGq5a+/KJHSCy8ou7nlYWz/1jzxnCYmKi1BqivQ8fFKKwEy/o6PvLou39nTptGz8dNPVGb00CGql928OZV7U+yQYnzB3LnA7bdTxktF5l95AM5e5524HNOE/3hhH5osn3PrpQy1Ci9cwO+v1ZHlo2j1Jy8wL66TwoMVKmjyWjmg5eMFzVK+PhfXe2ffyOHDwg4Z0PJ5+GFg1Srg7FllIbt2E4kp5uhRoLiY3ge0fCq4H9U2cXbtflqLfP01xXUr4tgxMkKVbz/gWLKElItnngFWr1bShDzNnF9/QETCKQzfzsgQJUgDWj6MZ/jQq+v2yuGGG8gpmZFB+7KbNwd+/BG44w4yBuzYQV50xgTYrcNiLPIAqHkpAcVu7+gZ6pHlo2gBI+dpWVwyjBazv/9Oe0wUIf8pvMB0jHx9LPu8b4AK6AzcXkAexixeSiAmD9UB/fxccQWVHVG4h0O+Pqe3HafFl6LtMDoBv/9ZR54cdu1S0oR8faK2raFouJEjgaVLlbQHmMjALo8xihwgHToIO6S2mx0gjBfxoVfXY9N7w4bAU0/R9qRffwVGjKD9PFu20LzXrRtFejIBzIABZPFdsgS45RYlTcghbF8X3kJWpTvuALp2VdIeYCIF2gsLmLZtKZkYQLmpUK8e0L+/0gRvO3eK9wpvA/XI8pH/KAPRM3EDQJ0M76ws5D9FYSJc76LXLjWYpk0pXQHgG/nwAtMxco6FwVuepw39DRoojRc2jYHQC/NPVBQ5mQCg7nHvTNwBX8JKx24dMGOpUYPC3AGgzglOIMb4AB94dQ2NXRs4EPjyS9rm9/LLtOjeuRN48EEjW2G8TqdOwMyZZN1p3FhJE2FhIknHl+lXovjJ6cDnn9PKUxFygpCALGGl06kTJboZOFCZphkaKubCQ4eoZJJqTKOgdeggrEOKFpghIcIL3OLS5Ru7enWlJUzkPyWgDRwA1Ybs2FHZSsxiEadOyL2sACgeeExjgPICFosYY1rmX35+zp1Tmnltxw7xPqDl06gRGRsAZeMbIJ6ftsXs4XSJunUpWSFAVhtFkRW6LaN9KSvQjA/xoldXyeav+vWBxx6jPYwrV9K+boapCn0ALi4WSbhVUVoqQujatBHeu4AkMpJCDlesUGqt0heYVqv6fYJWq/DQxMdTlueAJSxMaLcHDlAqcwV07QpURxHa4/Lm5PbtaeJQgKYJBa1xY5qzApqdO+mmPniQsqMpICkJqIZSJMI7A48un+hokag/YNm1C3j7beAf/xCZHw1GV2JXYBDOdb+O9tPpYQMK0OUTGRmgGbh1ZOuDXgtMAaSLaeiMyxNDbKzSsH49+EAv4xjQ6BrmhQuUPVUB+vqtTD5yhRAF6Aq0nKifYWxQ7NVVnj3l6quBTz5R3QpjBrywVbSMI0dMkiDEi3TpArTFQfwH/0Dxa28pS1gGUEUUPUFIQHufdfTVucJ6w127Am1xCNVRQh8ozmB/7pxoN+DR/whNUxa227Ur0BQnoOFyunKF8jl7VqyTu3YN4AzpOu+8AzzwAP2raHJISqJ/Z+B5vH/ncmDDBiXtAMDFi5SkCiDFQ1GlRu/hhTDuTp2AWGSiHs7TBwrDt4uKbDOkK7JDeg8v1AHr3Bmoi/NogXT6QOHAU94BErAZ0hnvoMirG6iFLRhvU1JCC8vPPlOaabMdDiAJ27F/p5p6nzpeyuNjKrp0Aa7En/gH3kGfTyfT/hJFmC78VP4jFO2DTkqSrP+A0hub5eM6SUlABpqjFi7h6dsPU1kZRZhOPl5Q0OTrJIdXq8BU2x8A2z9CkXw6dwY6wTsT98GDtOQBAnz/s458rRQmGu0KaeDRLVIKOHpUBHKxA4RxCQO9uqxAM87x7bc0Uo0eTRv1FdC5M/AoXsV2dMe0OVHAtm1K2gFMlECsPJomXLcG06UL0A3bxQcKJ0h5DWYKD7QXEol17QokYYf4wEsKtOnko9CDZrEAVoRg+bHWvP/ZFQYNohDuP/4A7r5bSRNyqgJFj2gZppOPF8a3xEQgqZp3Ju7t3pnmvId8rRTJJyEB6B0mXbhu3ZS0A9gauEy1fmMCClagGefwgocmPh7oUY0G4BCtRKR1VIC8RjaFBfPiRcqWHhND5T0U0LAh0Lu6mCC1JHUTpOkWmF7w0ERHA30jhNHJmtRdSTuACeXjBQUgMlLkdNuzR3i4VGA6+bRqBdx/P9C3r7J9yeHhQL+2pwFoOHBAbPFRwU7vOOq8R4cO9AzddRftO1RAWBgwoM6Osv/nt1anOcm2++7qhlHvkZgo4tBl64CBVKsG9K+1o+z/eW2TlLQDmFA+TEDCCjTjHK1a0QoQULbArFYNWBN/Nz7BaPyEG3GuSF0CFz2bfVSUCRKEALSo3LWLkoSoyoRqtaKLlSbfNDTHqaIYNe1A3GI1awZ4gh2dRo3oBdAfpyITqqaVyecUGuFYfqzxbVxGl4+cPT+gqVtXJLzZtUtZplpdWSosFHssVaDLJyTEJCGoXuKL9CuRhbpYWnKT0kSJugfNYjGJBy0igm66Tz9VFiEAAEkaaU5FqI5dVnWWb1lBU+hI9R7h4cJTsH8/kJenpJnjnW/Ee7gHW9ADu0rVDTysQDP+ACvQjHNUqya8NKmpQHa2kmbShk7CGHyCm7BMWQT32bNA+uU8F9260Z8W8Fgs5Gpq0oT+VZHp+ehR1CylDMXb0F2Znn7pkm2CHVPIBxDPz9mzQGam8efPyEDtIsrstR3dsGOnmgQu+flUygwg5SzgE+zo6K7aixeBtDTjz3/6NGZvvxGz8TSuwhpl+2yLikSCnfbtOcGO02RloVHOMUQjG3WRpSyMu7RU5OBo1YqMuIwT5OYiNpsqDOxGZ2zdHaakGatVGDiaN6f8Q6ZA1zStVmVG9uIRd2I83kMvbMHWPeFK2tA0oUA3akTJ2BnGFxi+NLVajT4j4zd4IQxVtiYaXPPc7nl79FDThk/4+WfgxAlK7hWuYPKSLBrb0U1VJJjN/nRThJ/qqH5+JIFsQ3dlCtqePWKcN5V8VO+D3rYNrQ79jKfxL9yM75XJZ/9+KgUImEw+Fy8Cq1YB8+YBmzcbf35JICqfn8OHyQgFmEw+qtm5E9U0Gni2obuy+efoUZFGxBTeZx35j1HknejZU7zfskVJE8jIEBUgunc3QYUBJmAxVIHeu5e8EevXG3lWxm/wwj5oWaFV5YGWz2sqBVq1q0lasWxHN2UTpLxwNUWCKp0xY4DvvgNSUoAbbjD+/OUMHKoUANPtr9WR/xgVg49kGdqObso8nKaVz+rVwLXXAo88AnzzjfHnl2S+Dd2VyUd+Lk2x/7k8ubkUpWY0kny2oocyBdq04cHyH6NocdWli0jEp2p9YFr5MAGH4R5oRVvHGH9A9QJz7160b5aLGjXov+yB9jPKLTBVOIEA24nXVPLp0gW4+WbKlqfCbO4lD7T86JtKQZPdJypu7sceg5aWjrG1v8VvGIgdO9TMl7JiwfJxgXLjmyr5yM+lqeRTUEBjXO3awN/+Zvz5pYl7G7pj924RaWEk8vNjKgWtSxexH0rF+u3YMdQovliWc2HfPjVbrVmBZvwFs+wuZLxBUhJlpQGMX8BoGtC3L0Lq1sbvYYMA0D7YrCxjmwHEPCxnxTUdRqf41bSylUVW9QY4iSZITwdOnza2GUAo0CEhJltgqmbiRODJJ/FHvZuRggScOKFGPvqjb7GYzMCRkADUq0fvN282XnuyWGBp3gynet+Cv9AYZ87QjgujkYdmU8mnSRN6ATRIGL1f7PLKvLhaGPYhEdnZFM5rNLKB0FQKQEQEeZ+tVrqWRs9Bl+VTagnBbnS22euvoBkAJpNPZKQonbdnDyVLMJKxY4E6dbD8WGtEIN9mL7mRmFY+jHGUllKiIz3ZkSJYgWacp0YNkTJ03z4gJ8e4c6ekUGIyqxURdWuUfWx0mNa5cyK6rFs3YQ8wDW+8ASQnkxfg/HnjznviBCW/AnC6STcA5EE12o6Sm0tbQQBKGlqjhuPjGYkhQ4A5c7D07u+gy8foMLrCQhEi3K4d3WamwWIRXs4zZ5RNviodqSUlYoEZH2+iBEg6vXrRvxcvAkeOGHfenJyytOinG3dBCSgzntHysVrFOWNjgaZNjT2/z7nySjK0jx5t7PqgoKBsYjjfKBEFoInBaEeqnKCqYUMTJqjSNc7iYjHRGkFpadnEUKN6SZl8VEQR6vKpWxdo0cL48zMm4MgRmgBbtlTaDCvQjGtccQX9q1uZjUI6V2lnkezC6AHYtPufdY4eBf78k7LUGKk9yfKR6gsbvcDcsUM4lvS1sqn46y/gs89oH+cffyhpQn9EAWDTJmPPvWuXCJs0pXzkP0rRHgWV8tm3TySoktsxDarkI5WWK+0qxjej5XP4MOn+gEnl8/HHZPV+910qTG8Uu3eTkgagpIuQj9EGdtMnqNIVaIuFbkajyMsDxo0DevVCUc8ryz422oCbmSkKWHTrZkL5MMZQvTql0NdLUyqCFWjGNVSt/qTFUPS1YoI0WoE2/f5nVfKRLly9gcLAYbSOIZ9P9tSZhrVryTszbx7wyy9KmlCpoMkLIlagXWDxYuDRR4FPPkHvNiIyxGj5yF02pXxUue8lA2HMQHUGQtPLR5VGk5JSlp2qzrVi4jZaPvL6wFQZuHVuvx1Yt46sOCNHGnfeWrWAN98ENm1C1HeflZU2NFqBNu3+dMZYWrakUNOUFKXNsALNuIaq1fnGjWVvm97Wu6wKEyvQLqJKAZDk0/CmK5RtFWUFzU1Wr6awJU2zCd3dtMlY+ZjewKFSgX7tNWDMGMQWp5eF7m7ebOxWXtMraKoUaGngibqqGxIS6L3RW3nlKdOU8lHFyJEUEr5lC2qOHYF27ejjbdtoW4lRbNgg3psyQiAujrZ4KSw+Hh5hQadO9P7AAWMj+WX5mHL9xgQUrEAzrpGYSMkoAOMU6JISsYBp3hzVm8eWWX+PHCnbemsIepcjI1E2CZuK1q1F6JxR2pPVKhToRo1giW+hbKuoLp+wMJRNwqaieXPgpZeoZvennxpzTk0D7rgDaNMGaNcOFmjo3Zu+OnfOWCOsrrOEhpq0BI+8MXXrVuO02z//pH8jI4FOncqUp0uXyrbeGoKc4M2UHpp69cS+tu3bjdNudfmEhQFdu5YpT/n5xm4VNb0BSub8eWOtD+HhpDXFxqJPH/qoqMjYMG79NgBoOzfjHvq9bbWyfBjzwgo04xohIcL0l5ZGezo9Ze9eyh4FQF/5JyeLr+VB0xOOHxfKXu/eJkwgBlCZCn32OnXKmDS/hw4BFy7Q+969AYtFiaPu9GmxLatHD1rLmg6LBXjiCaoDrbvxPUV+Dlu1AiwWJYEiFy4IZaJzZxMneLvxRkrINmWKMe6tkyfFwNOrFxAaqkQ+ubm0Rx0AOnSgqEpTog8++fnGpGE+d04MPN27A+HhNuObFHzjEYWFQplo3RqIiTHmvH7H22/TOFSvnpo0zECZAg0Ytz4oLhZ2/IQEoFEjY85reoqKaK0hoeL5KS0V52rShGzRDONLWIFmXEde/RmhPckj7OWZsW9f8dH69Z43Uf48soJuOoxenctxU5flI0+QRikAsnxk+TNVEBEBzJoFDB4MXHcdANtbwKgF5oYNIqChXz9jzumXvPsu8MMPwLPPGmMlsPP86BECgHHj26ZNwuFn6ufH6DBuWT6X3VqygrZunedNALbhxqb2npWUUA1KQFkiPvn6yeLzhJ07RQI+U8vnr7+oWsdddwHvvef5+bZsocid5s3JeALb9ZVRuTL37aOIHYDkwwnEGF/DCjTjOkYraLICfXllKU9gRi0w5YWQqRVoo7XbvDygQQN6f3llKS8wjZogWYF2k8aNgenTgWXLKFEVSD76AmPtWmOakeXM8nEBOwqaHAFj1PMjj2+mNnAYbR2yExfasyfK8nAYJR/5PKaWj9HWobfeAoYPB+bOLSts37Gj2ElmlAIdNOHBp08DDz0EfP458OOPnp9PF0BGRtmg1qEDlZkCaFwyYieZfCuZWj5MwMAKNOM6soK2e7fn59NnrtDQso17sbEoS+SyaZMoneMJ8gAsK4Cmw+gF5j//SVbro0fLZq6GDcUe8i1bSMf2lKAxcAC08fXdd8nLqYDoaKBLF3q/c6coneMJsnxYgXYB+Rm8PPBERoo9yvv2idI5nhA0Bo5evVCW5tcI65AdzSk8XAyjx45RFL6nBI0C3a2biNwwQj7LlgFLlgCPP17mggwNFcuQ9HTanuUpQaNAJyaK/R2Xazd7hCzjywNPtWpiDj97lnaBeUrQyIcJGFiBZlynRQtg4UJgzx7gm288O9eZM8D+/fS+e3ebkEl9AC4o8DwRRW6uOEfHjsI6akqaNKE9aAB59wsKPD+nxULJeyIiyj666ir6t7jY831OBQVi/1mbNqSgm5rbbgPuuw948UVj05RK6PKxWj13BMkybt6ckrmaHj25oSfyKSwUN3bLljY3ti4fwHMvZ2mpkHHjxiLPlimpUUOEcR865FkejpISEaUTF2dzY8tKrqfysVqFASomBmjf3rPz+TVhYcJCnZZGnkl30TRK5QxQFJR0Y8vPz++/u9+E3syaNfS+Zk1hfDQlISHARx9RkkRPcwhomng46tYl5fwy8vNjxDYIvZmwMJMmSGQCDlagGdexWIDx40kTrebhLaTPWgAwYIDNV7IXxdMJcsMGWmQCQeDdBMTqorBQ2T60/v3Fe08dDVu2UC4SwOTeMx1dPqWlnkUJpKbSxbOT7VZeYHoqnx07xP5AU3vPdP7zH1oQ9url2eCzebMwYJW7sY2Uz549Yn9gv35BsD9QvnierM537BAGknITg5EK9MGDIsqgb1/Pp02/x6iLZ7FQKY7du4GPP7a5sa++Why2erX7TQDUhJ5vs18/EeBgWoYNIy3U0z/0wAFRJqVfP5sbWx7uPH1+MjIoAA4g24xkx2cYxxhZJ7IcZh/GK/D44zQGh4ZWfsySJfSQRkbSGmroUJHdlDEYBwr0NdeI9ytXetbMb7+J9/LEa1pk7Va+xq7iYPAxqgnAVr7y2ti0GGV9WLiQlLx69SqsIo1U0FatEu+DQoFu2FAoVp7c3LJM5AENtgtMT+UjNxNUBijAs4vXqhV54/7+d+DWW22+Sk4W+pqn45v8+6B4foy0PoSEUE3DG26w+bhPH1GpwVMFWv59UKwPjEJ+9spN3L16GScfef4pN4wyTOXs3UtGIqMSKZUjqBTobduA115zXEN+0SLKV5GbS+Vap08n637fvsZsF2HKoXt3LJYKK7927SgaGaAFiO6hdAdZgb72WvfPEzAYpd0OGECLoenTKyjTLVoAzZrR+/XrPav4s2KFeD9okPvnCRjkxYYn8tGfn4sXgbZtbb6KjbWN5Pdkn3rQyadfPxp8Ro60TYrkKg5W5g0aULIdgKIp9Upx7iDLJyjGN9lb7IkCXbcuMGYMTfx33GHzVXQ00LUrvd+5k3Ybucuvv4r3QaGgXXml8EZ6an2ohJo1xaN55Ihn+6BZQXMTWbblFOiICLGkS0kRidndQTaws3wYlzAig10lGK5A+2voWEkJMGEClffUyxiX58IFSmIbF0dRYZMmUSnQtWvp73rwQa922f9Zvx6YORO46SYRH+0KWVnCtZ+URCsWCYtFLAbz8txPKH3hgtiG2LEj7RE0PS1bCuvDunXuZWG7dInCi9etA7791m7coT6Z5ee7H0mZmysSebZpEyT1HZs1A+Lj6f2GDe7tU8/LExuT27QR8pbQld2iIvcjkQsKhI7SvDnVsDU9jRrRivzLL2m/ujsUFoqHonlzIW+Jy1XHUFpqu4h3heJioac3bEg1uk1PTIz4Q0tKjMkyaYfrrxfvZSOFK5SWCgWgbt3K1x+molYtsVF1zx7P9qk7wIgwbk0Tv42MDBL5ACSXOXOA//s/UafeFeQLV6OG3Y3JsrHV3edH08TYGBFh8gSwTEBhuAKtUNn3iFdeAQ4fpooIlfHtt+TImTABqF1bfB4XR46INWtoyyFzmVdfBZ57jrJkbtvm+u9XrxY3TLnwbR3ZmyJ7kV3h99+F83TgQPfOEXBYLOKa5ua6l+Xr5EmR7aYS+chRdb/84noTACln+vo3aOQDCOtDYaF7XrQ//xQXrhL5yAqAu/JZv17o94MG+a+R1HA8/UM3bRIX7uqr7Z5Pls/y5e41s3GjiDYPKvksWkQbV3fsULZpVTdwALZeZFfYupVsxQDNZ3r5MtMjXzx3tKddu+i5ee45UvbsICvQ7srnwAEgM5PeX3VVEOx/1vnmG2DqVJoY3LE+7NsnNo4PGCDitSVkBdpd+aSkCP0+OVmUl2MYX2OoAt2xI63n/C1J09GjNAbPmiVCTu2h6xj2+q9/ZkRZXdMgr/7cSVQlrxjlyVZCVqDdXWDKc3dQKWiydvvTT67/vl07WrikplIohh2uu04s2N1V0IIuPFjHU+uD/JtK4trkBbsRz09QycdTnIjbHTBALNjdlY/cTCXDqDnp1ctu1IXTLFtGSoSDGm/9+omERb/+6p6DIGjl46l16Ndfyfo9c2al4Rl9+4p60D/95F6+oGXLxPugGt/kMckd+cjzjyxriR49RGDhypXuBSrKpaqDav3G+D2Ge6D90bp6332012zyZMfH6Xto7JVo0T9ztM+mZcvKX3aS5AY+N91ESYwyMqhWsKu8+irNeg89VKkHrUUL4QTdsMH1fWiaBvzvf/Q+NLTSZsyJPKn9/LP752nRotK6OA0aiMitnTuBU6dcP72+gKlWLUj2B+oMGiTC4t2Rj76ysFgqXcBER4t9gvv3u1dRRra9BMX+2vLk5rrnQZNX5uUSIOlERYl9gseOiUyzriCvY4NKAfCUF18ERowA6tevdOCKiBDpJI4fFxUXXcEJO7E5ufJK2qgMuGd9cEJzCg8X9/yZM2Krliv88IN4P3So678PWK68UtSD/vln17Vb+cauZHwLCRFzxvnz7slHX78BtORkGH/BQS5q/yEnh7ZqOMvw4UC3bvR+4UIyYm7cWLVyryfZsRcioluhPUnEYzqaNKFyVu5Sowbtv/m//3N42M03U5iV1Upz6t13O9/Erl1UihIg5axOHfe7G3DExgK3305hFzfeqKyZG26gMEWAlK177nH+twcPijKffftSMumgoV498qJt3EjZIo8fd77Acloa/QagTWH161d66PXXiySUy5YB//iH811MTaUIWYC62qiR8781BVOm0L6foiLScBMSnPtdZqbY1tKtm0NP6fXXiwjKH34ge6KznDwpIqc6dQqS+tyVYbU6Xx/q7FmReKF1a4eJMW64QegK339vU+rWqWb0JNStW5u8Pnd5wsNp0v3xR3oe9uxxfoN+drZIUNWypci2Z4chQ4DvvqP3P/4IXHGF8128cMFWPuXyMJqbsDCy6CxZQjXWNm0ipdoZ8vNFUo24OIfyGTyYmgBom6QrORkvXRJjY7NmQZLfgQkYAiILd04OMHu28y89W/apU1S2atIk5xJD6MZSe9mE9Rqo+jH2OHas8pejslmMY265RbzXJ0pnkY+XzxM0fPUVJQBw1TXlQlKrIUPEe32idBZZPsOGufZbUyAbj1zxQstu4cGDHR4qe1W++cb5JgBa8OgEpXxiYkT6f9kjVhXysfIDYgd5XHJVPvLz426us4DmyBHK7tmuHZXYcJbatUlGkyZRCSsHyPe9q+Pb99+LsOKglI/smfz+e+d/t3y5CNu76SaHG/tl27Ac9OEMv/wiHK9B6d2U/2hXLt7q1WKNcP31DuVz883CrrV0qWvdW7FCDL9V3AYM43UCQoFu3Jiif5x9jRtHv3vqKXrgJkwgT4r+0p/71FTbkGxHYdp6roSgtvBXhaIMcr17U6gwQBOeKwmL5QXmzTcb2y9TM3QouVoee0xYjyqhTx+gaVN6v3w5OQ+cRVbQgtLAISu/ixc7/zs57rAKBbpbN+E4XbWKvGLOIsunXJnc4EC2Prgin0aNKOy0evUqFejEROHA+eMP17ZByAvSoJSP1Qq8+SZw6JBr8gkLI+XuzTdpjHNAy5ZUJAKgVB+uJCyWFe6gVKDlQd0V+bgQtxsXJ+SzZQslnXIWWT5VPKbmRLY+yHNKVXz9tXhfRdx7gwaiLPjBg65tg5Dnn6AKr2cCgoBQoN0lNZWyX3buTAtI/bVxI1kdExJsU+LroT/2am7rn/XqpbzbgcfWrcAjj5AXIDe36uMzMsjz9sEHThU/DQkRc2henvPj/NGjtlGUQVEeyQhOnaKMH/v30wpD379QCdWq0bYJgKzFzjoajh8XUZSdOomaxUFFr17ixlyxgkLpquL8eRFT2qSJWD1WgsVCWz0BGvecjeI4fVokB2/bVuQiCCo6dxZxnWvWOK/d3nQTyfPsWacmDf350TTnvTRZWSK3Uny8qFkcVLRtSzIKDaUN/7q7ymBk5ddZ+Vy8KBKINW0apGuHFi2Anj3p/Y4dzhUDLioS3tCoKKcSl4waJd5//rlzXbt4UcxV9esHWX4UncaNxY25cycZoqqiuFhotlFRle5/lpGNe85GceTliWNr1+b6z4z/YWoF+oUXaLIr/+rYkRb9S5dSJQydYcMop8LChbaJOY8fp0jYfv2c3wIXVCxYAMybR3XCnNFuv/ySXMn33EMeACe4807x/sMPneuWfJw8wQYlJ0/StXYm2/PXX4u4w7vucipu6vbbxfuvvnKuSx99JIIWdAUv6LBYqEYeQNqtM6vzxYtF+ao77nBq36d8fb/80rmuffyxbfhpUIbPWSzi5rZaXY/hrV3bqcyaugINOK8AfP65iHINWvkANJCcOkXbGuyU0jECWYH+9FPnfrN4sdDnhw1zfnu26ZAHH2eqQfz4IxkJAXI7OiHTO+4Q7z/91LlguKVLRTTbqFFBVL6qPPLiyJmb+7ffRF22oUMpl00VyAq0PO874rvvRHm+22+v0o7PMN5HC0IGDNC0kBD7373zDgWCd+qkaW++qWmvvKJp8fGaFhmpadu2ud9maGioFhoa6v4J/JmVK0UE/bBhVR9/883i+EOHnGqipETT4uLoJyEhmnbqlOPjS0s1rXlzOr5aNU07ccKpZszJzp2aZrHQxRg8uOrj+/QR8tmzx6kmSks1rWlTIZ+MDMfHW62a1rq1aCYlxalmzMmmTeJCDBxY9fH9+4vjt251qgmrVdMSEugnFoumHT1a9fEdOohmDhxwqhlzsmOHuBBXXaWkCatV09q3F83s21f1b7p1E8fv3KmkW+bkqac07b//1bRz55z+idWqaUlJ4npv3171b+RhdONG97sb8Bw9qmnTptECymqt+vhbbxUX7uefnW6mb1/X5DNokDj+zz+dbsZ8nDgh1gctW1YtoxdfFBduyRKnm7nmGvGzNWuqPn7wYHH86tVON2M6TK07qGbPHrq3161TcnpWoO3w9deadsUVmlajhqbVqaNpQ4bQGsoTTP0QlJRoWuPGNNJVr65pJ086Pt5qpRnrpZdcambqVDGgvvyy42NXrBDH3nijS82Yj9JSTWvWjC5GWJimnT1b+bEHDogL17mzS83MmCF++swzjo9ds8Y1ndHUWK20cHHGqJSSIo5r1865Bell/vUv8dMnnnB87Pr14th+/ZxuwpyUtybs3l35sZmZtOgvLna5mddeE008/LDjY7duFcdecYXLTQUvf/1Fkz9AFjwXnp+33xbX/J//dHzsrl3i2C5dXGomuDl3jtYQgKbFxrr0HMnymTDB8bGHDgmdsVUrlo+NNcEZZWPPHk178EFNy8tzuolPPxVNjB3r+NjUVPGYNm9OS5hgxdS6g2oUK9BBGVS0erXjuswjRtA+6bw82qL7ww9Bur/MWUJCROa24mLg7bcdH2+x0ObzJ55wqRm9CQB4/XX72dJ15s4V710pq2RKqlWjPepTplAWD0e1ouRMtmPHutTMvfeKaNV333W8HVFuJujlY7HY1pZ6663Kj503T7wfM8aluN2//12EKb73nuNkfG+8Id57UqnOFFgswP33i//Pn1/5sfPmUX6HuDjnwlUlxo4VJRQ/+MBxOgl558uECS41Y24KCuwnMdF5+22RdnnECJeen7vuElU4PvnEdpuXvWZ07rsviMPrXeXdd8X2lNGjXSpfMno07ZgAaPvJX39Vfuwrr4gw4nvvZfngb38T7+U5pjI6dqRFmBPh2zq33kppCgDa5uUoncSrr4rH9O9/D+LtD4x/o0QtZypgeivS8eOaFhpKJsN69VyyTLqCHP29YIH9YzZuFMe0aKFpRUVKumI+Tp/WtIgIunC1amnahQsun2L4cHHt337b/jHbt4tjYmM1LT/fs26bgnPnNC06WtP+9jdN27zZ/jFnz2pazZp04WrU0LQzZ1xu5s47xbV/9VX7x+hGW0DT6tfXtJwcl5sxH9nZmhYVRRelZk1NO3++4jEXL2pa7doi0qOqSBw7jB0r5PPii/aPOXRIeGfq1KGuMZqmvfACzT0REfafjUuXNK1uXbpwoaFu7RsZP17I59ln7R9z7JhwokZGalpWlsvNmJuCAvtzS26upjVsKPaZHDzo8qmnTKk6CurUKU0LD6djoqJYPpqm0STcqJG49k5urXOVRx8V8nnoIfvHGDDNmQrT6w4qYQ80ExA0bSqSIZ07B/z3vxWP2bBBmBXdZNo08f7FFyt60TQNmDFD/P/pp4M4OYirvPaauKD33gvUqePyKeSKMDNm2PfSzJwp3k+dyslBAFC94RMnyHWiZ60tz5tvUlgMQGb5+vVdbuaJJ4S3ZdYskQtGZuZM4Z158kkgMtLlZsxH7drA3XfT+7w82xAXnagoSut74410bGysy81MnSq8LXPm2E/KPnOmGEYfe0x43YKes2fpghUUAP/6V8Xv33lH3PB33UWpy11k6lThFH3lFcpUX57nnhNO1EceEV63oKe4mDzMbdoA06dX/P7dd8UFHTlSZL93gQcfFFFQr7wCpKVVPGb2bBG9dt99LB8ANAk//DC91zTgpZcqHrNvn+OwPyd4/HERxfHf/9ovGTtnjpjmJkxwa5pjGO+gRC1nKhAUVqTt24Xrqk4d8krr7NpFZvmuXT3OCHH99cKK+eSTtt998YX4rlkzMnYzdjh2TNPS08X/9+8XZvnq1TUtLc3tU48cWbmVeelS9j67zaZNmtazJ7kfq8oC5gDZy3n//bbf/fij+K5RI3IKMZdJSSHPMkDPyv79lR9bUuJ2MxMmCBmMH2/7nZzboV49cnozlzl+XETQVK9uu1f9+HERHWCxOJelrRL++U8hg9Gjbb9bs0ZMgXXrsnfThlOnhGsxJMQ2892pU5oWE2NIVrwHHhCnGTrUdn/zhg0ieqNmTdslStBz4YLtM7Jhg/juzBmKDoiP17SPP/Zo0/gTTwj53HKL7am2bBGBjOHhtBc62AkK3UEVe/ZQFmFOIhbYBM1DMG6cGB379KH4wsxMTWvbVnw+fbpHTezZI0LkAE17/336fN06EWUJkDLNlMNq1bRFi+hC9ehBoainT2tax47iwj3+uEdNHDsm9AyAMttrGul/deqIzz/80PM/x9Rs2lQx4VtJCWX48oC0NKFnAJr2xht0W2zbJiJcHW2RCGoef1xcoI4d6dkxeI/I8eMU+qs3M3cuyWfXLgqp1z9/6y1DmzUH06fbJtnLzKQ5SE6Jfc89HjWRmSn0DEDTZs8m+ezbJ6JgAargwZRj1iy6OHfeKaxzly5Rdnv9wt15p0dNXLggcpoClNzSaqWIcL1ShC43phwvv2y7/03PVH/PPeLz4cM9auLsWRGpD1BSfKtV044cEZVTHG2RCDZ8pjvk59Mi4JZbyHASEUH3xLBhlW8z0zRN++YbTevdmyxU0dGadtNNlRvEcnPJC9aiBS0aW7Sg/xtluecs3OYgaBToc+dsZ6mYGNpPq/+/SxdD3I7yOA9QQlXdsqzPwUGfWdMely7RIKVfqLp1beXToYMhg9cbb9jKp1UrW/ncdhvLxyGLF5MJvlkzj7yZlfHf/1aUj275B2jOY/nYITfXtt5U7dqk1TrKzO0G779vK5+WLW2NhtdfH9yZaSslP5+qB+gXqlYtW6tQs2aOqxA4yWef2conPt5WPldfreSxDXwKC+nmlgeXjz8WF65xY8qU7iFLltjKp0ULEWAFaFpysluJ8s1PUZEwNt1/v5DT6dNUjqF+fbdyO5Tn++8rykc26vbqRbcK40PdYf9+EsaVV2razJmatnChpj39NI2nFgulVS/PwoX0G70O8Ny5NDhGRVUsZVRSQiWRAE0bM0bT3n2XMruHhBg7gCociFmB9hJBo0BrGoVyR0fbjpAAFXI2qOCv1WobqiW/Bg7k0FOH7N5N8Z/lL1yTJoYlD7FabROGyK/+/UmPZyohO5vi2/ULZrBypmkkn6eesi+f5GROTOWQw4fpWZEv2jXXGG5xmDnTvnx69uTQYIccOybK9smvmBgKszAIuRyu/EpKcqnENFNcrGlt2tCawcCC2a+8Yl8+nTqRPshUwvHj5AUsb6ErKNC0vXsNa+aNN8R2B/mlB44whM90h7Nn7Y+Xe/eSt7hRI9t7JCuLDMpxcbYLiIwMMmT27297nkWLSOCTJ9t+Pm8eff7ee4b9KapgBdpLBJUCrWm0iBkxgmIR69Sh0G4DLMsyVisZr7t0IaNVfDwtathy6QRpaZo2ahRZBmvVIgugAZZlGatV0z7/nBaUISEUnjVrFu9Ld4qMDE276y6Szbx5ypr5+mtN696dvM9xcRQ2x/vSneDECXpmatemZ2jUKCVWoW+/JYU5NJQCe6ZNY+OgU2Rm0pxTpw7JZ8QIihE1mB9+oGjF0FCyeT35JGetd4vVq93Kul0VP/9MDrTQUFrvT5nCxlt/YsUKTevbl6I3GjbUtIcfZuNtefxSd+jWjZRc2dKhh03NnFnxeL18gexA073P5Te65+eT3nD11Qo6biwWTdM0XycyCwaqX04FXayn52QYhnEGTVNeqNQLTZgTL104lg/DuA8/P/4Ny6dyqlevjtiSEqQnJFR+0LFj3uuQ1QrExVHFg+xsUUbl/vsptfry5cB119n+5r33gPHjgS+/pAz7mgbUqkWVXk6cqNhG//7Atm3ApUt+fWNwGSuGYRh/xgsTiB/PUf6Nly4cy4dh3IefH/+G5RNALFgAZGYCo0bZ1iDVa5LFxVX8jf6Zfsz580Burv1j9eNzc+3X2fQjQn3dAYZhGIZhGIZhGMaWzNBQ973MOTlUXNtZhg8HunWz/90ff1C98Lg4KrQuoxfvDg+v+Dtd0daPcXRs+eNjYpzuurdhBZphGIZhGIZhGMZM5OQAs2c7f3zr1vYV6K1bgZtuorDr5cuBBg1sv69Zk/4tLKz42/x822McHWvveD+FFWiGYRiGYRiGYRgz0bgx7Tn2hG3baF9zRASwciXQoUPFY+Qw7fLf6/uc9WNiYkg51kO6y3PiBBAZCdSt61m/FcN7oBmGYRiGYRiGYRjB9u2kPIeHA6tWAYmJ9o+74gr6d/36it/pn/XqRf9aLEDPnsDJk0Bamu2xBQWksPfs6feb41mBZhiGYRiGYRiGYYjt24FBg8jzvHq1fc+zzrBhlFl74ULg4kXx+fHjwFdfAf36AXIm8TFj6N/ye6kXLKAEYvr3fgyXsfISXMaKYRiGYRiGYRhn8JnukJYG9OhBGbOfeQZo06biMdddBzRqJP6/YAEwcSLQqRP9W1QEvPkmcOYMsHat7d7q0lLgmmvo87FjqXTVrl3A/PlAcjJ5u0NC1P+dHsAKtJdgBZphGIZhGIZhGGfwme6wejUpuI5YtQq4+mrbzxYvBv79b2D3biAsjDzPs2cDXbtW/H1ODvD881QfOjMTiI2l8ljPPgtERRn1lyiDFWgvwQo0wzAMwzAMwzDOwLqD/8IKtJewXN4MHxrKic8ZhmEYhmEYhqmckpISAACrav4HJxELUkpKSsoeTIZxFr5vGHfhe4dxB75vGHfhe4dxB75vGGdgd6iX8DfrUcuWLQEAx44d83FPmECC7xvGXfjeYdyB7xvGXfjeYdyB7xvGGdgDzTAMwzAMwzAMwzBOwAo0wzAMwzAMwzAMwzgBK9AMwzAMwzAMwzAM4wSsQDMMwzAMwzAMwzCME7ACzTAMwzAMwzAMwzBOwAo0wzAMwzAMwzAMwziBRfO3+koMwzAMwzAMwzAM44ewB5phGIZhGIZhGIZhnIAVaIZhGIZhGIZhGIZxAlagGYZhGIZhGIZhGMYJWIFmGIZhGIZhGIZhEhur8gAAEM1JREFUGCdgBZphGIZhGIZhGIZhnIAVaIZhGIZhGIZhGIZxAlagg4wlS5agT58+iIyMRN26dTF06FDs2rXL191i/JhDhw5hxowZSE5ORsOGDREVFYXOnTtj6tSpyMrK8nX3mAAiNzcXCQkJsFgsmDBhgq+7w/g5Fy9exPTp09GhQwfUqFEDMTEx6N27Nz755BNfd43xU3JycvDiiy+iS5cuqFWrFurVq4devXph/vz5KC4u9nX3GB8zZ84cjBo1Cm3atEG1atUQGhrq8Pi8vDw89dRTiI+PR3h4OOLj4/HUU08hLy/PSz1m/BXHdw5jKhYtWoQJEyagU6dOeOmll1BYWIi33noLffv2xR9//IGuXbv6uouMH/Lee+/hrbfewtChQ3HHHXcgLCwMq1atwpw5c/DZZ59h06ZNaNSoka+7yQQA06dPx9mzZ33dDSYAOHHiBK655hqcOXMG99xzDzp27Ijc3FwcOnQIaWlpvu4e44eUlJRg0KBB2Lx5M8aOHYsHHngAhYWFWLp0KSZNmoT169fj008/9XU3GR8ydepUREdHo1u3bsjJycGZM2cqPba0tBSDBw/G77//jjFjxqB///7YvXs35s6di40bN2LFihUICQnxYu8Zv0JjgoKsrCytdu3aWlxcnJadnV32eUZGhlarVi2tf//+Puwd489s3rxZy8rKqvD5tGnTNADaY4895v1OMQHHpk2btJCQEO3VV1/VAGjjx4/3dZcYP+baa6/VGjVqpKWmpvq6K0yA8Ouvv2oAtClTpth8XlpaqvXs2VOzWCx25zImeDhy5EjZ+wEDBmghISGVHrto0SINgDZ58mSbz+fNm6cB0N577z1l/WT8Hw7hDhK+/fZbXLx4ERMmTEDt2rXLPo+Li8PIkSOxZs0apKam+q6DjN/Ss2dPREdHV/h85MiRAIDdu3d7uUdMoFFcXIwJEyZgyJAhuPXWW33dHcbPWbduHVauXIknn3wSLVq0QGlpKXJycnzdLcbPuXDhAgCgSZMmNp9Xq1YNsbGxqFatGsLDw33QM8ZfaNWqldPHfvTRRwCAKVOm2Hw+ceJEREZGln3PBCesQAcJGzduBAAkJydX+E7/bNOmTV7tExPYnDhxAgDQsGFDH/eE8XdefvllHDt2DG+99Zavu8IEAMuWLQMAtGnTBiNHjkSNGjVQq1YtNGnSBC+88AJKS0t93EPGH+nbty9q1qyJOXPm4KuvvkJ6ejoOHz6Mf/3rX1i2bBmmT5+OGjVq+LqbTACgaRq2bNmCJk2aoEWLFjbfRUREoHv37ti8eTM0TfNRDxlfw3ugg4Tjx48DII9zefTP9GMYpipKS0vxwgsvAADGjRvn284wfs3Bgwcxa9YszJkzB82aNeNIF6ZK9u/fDwAYP3484uPjsXDhQlgsFrz99tt45plnkJ6ejgULFvi4l4y/ERsbi6VLl+L+++/HqFGjyj4PDw/HggULMH78eB/2jgkkzp8/j9zcXHTs2NHu93FxcVi7di2ysrIQExPj5d4x/gAr0EGCnjHQXvhSRESEzTEMUxUPPfQQ1q9fj4kTJ+Laa6/1dXcYP0XTNNx7773o2LEjJk+e7OvuMAHCpUuXAAA1a9bEmjVryuatUaNGITExEQsXLsSUKVPQrl07X3aT8UMaNGiAzp07Y+DAgbj++uuRn5+Pjz76CPfddx8AsBLNOIWjNTNgu25mBTo44RDuIKFmzZoAgMLCwgrf5efn2xzDMI6YPn065s+fj9tuu41DchmHvPPOO1i/fj0WLFjA2UoZp9HDbO+66y6bBWxYWBhGjx4NTdOwatUqX3WP8VN2796N5ORktG/fHgsWLMCIESMwZswYLF++HMnJyZg8eTL++usvX3eTCQAcrZkBXjczrEAHDY7CtPW9rPbCuxlGZubMmZg9ezZuvfVWfPHFF1XWUGSCl+zsbDz11FMYOXIk6tWrh9TUVKSmppaNQTk5OUhNTS1L/MMwOs2aNQNAIbnl0T87f/68V/vE+D/z5s1DQUEBbr/9dpvPLRYLRowYgfz8fGzYsMFHvWMCiZiYGNSsWbPSrY0nTpxAZGQk6tat6+WeMf4CK9BBwhVXXAEAWL9+fYXv9M969erl1T4xgcVzzz2H5557DsOHD8dXX32F6tWr+7pLjB+TlZWF7OxsfP7550hISCh7XXXVVQCAL7/8EgkJCZg7d66Pe8r4G3369AEAZGRkVPguPT0dALj2PFMBXdmxl2SuuLgYANWKZpiqsFgs6NmzJ06ePFmh7nxBQQG2bduGnj17wmKx+KiHjK9hBTpIGDZsGGrVqoWFCxfi4sWLZZ8fP34cX331Ffr164eEhAQf9pDxZ55//nnMnDkTI0eOZM8z4xQNGzbE0qVLK7zeeecdAMCgQYOwdOlSjB492sc9ZfyNW265BdHR0fjoo4+QnZ1d9vmlS5fw4Ycfonr16rj++ut92EPGH9ETPn3wwQc2nxcXF+OTTz5BtWrV2FHAOM2YMWMAAK+88orN5wsWLEBubm7Z90xwYtE4B3vQsGDBAkycOBGdOnXCxIkTUVRUhDfffBNnzpzB2rVr0a1bN193kfFD5s+fj0mTJqFZs2aYNWtWhb2sUVFRGDZsmG86xwQcqampSEhIwPjx47Fw4UJfd4fxUz766CPcfffdaNu2LSZMmACLxYJFixbhwIEDmD17Np5++mlfd5HxM9LT09GjRw+cPXsWQ4cOxQ033IC8vDx88skn2LVrFx588EG8/vrrvu4m40M+/vjjMo/yokWLkJ6ejueee67s++nTp5e9Ly0txTXXXIO1a9di7Nix6N+/P3bt2oX58+cjOTkZq1at4tweQQwr0EHG4sWL8e9//xu7d+9GWFgY+vXrh9mzZ6Nr166+7hrjp4wbNw4ffvhhpd+3aNGCSxMxTsMKNOMsP/30E+bMmYOtW7fCarWic+fOeOSRR3DHHXf4umuMn5KamopZs2bh119/RWZmJsLCwtCxY0fce++9ZYYYJni5+uqr8fvvv1f6fXmVKCcnB88//zy+/PJLZGZmIjY2FqNGjcKzzz6LqKgo1d1l/BhWoBmGYRiGYRiGYRjGCXgPNMMwDMMwDMMwDMM4ASvQDMMwDMMwDMMwDOMErEAzDMMwDMMwDMMwjBOwAs0wDMMwDMMwDMMwTsAKNMMwDMMwDMMwDMM4ASvQDMMwDMMwDMMwDOMErEAzDMMwDMMwDMMwjBOwAs0wDMMwDMMwDMMwTsAKNMMwDMMwDMMwDMM4ASvQDMMwDFOODz74ABaLBR988IGvu+IS58+fR0xMDCZNmuTW75csWQKLxYLffvvN4J4xDMMwjDlgBZphGIYxNRaLxaVXoCnNMs8++ywKCgowbdo0t35/2223oXv37nj00UdhtVoN7h3DMAzDBD6hvu4AwzAMw6hkxowZFT6bN28esrOz8dBDDyE6Otrmu6SkJCQkJKBPnz6IjY31Ui89Jz09He+88w7uu+8+j/r91FNPYeTIkfjiiy9w1113GdhDhmEYhgl8LJqmab7uBMMwDMN4k/j4eKSlpSElJQXx8fG+7o4hTJs2DS+++CI2bdqEXr16uX2ewsJCxMbGIjExEX/88YeBPWQYhmGYwIdDuBmGYRimHJXtgY6Pj0d8fDxycnLwyCOPoFmzZqhRowaSkpLw7bffAgCKi4vx/PPPo02bNoiIiECrVq0wf/78Stv65ZdfMHjwYNSvXx/h4eFo1aoVHn/8cVy4cMHp/mqahvfffx8JCQl2ledTp07h0UcfRbt27RAZGYnatWujdevWGDt2LI4ePWpzbHh4OIYNG4Z169bhwIEDTveBYRiGYYIBDuFmGIZhGBcoLi7Gddddh/Pnz+OWW25BUVERPv/8cwwfPhzLly/H66+/jm3btuHGG29EeHg4Fi9ejEmTJqF+/foYNWqUzbmef/55zJgxA/Xq1cOQIUPQsGFD7Nq1C3PnzsWPP/6I9evXo06dOlX2ac+ePcjMzMTo0aMrfJeXl4fk5GSkpKTguuuuw9ChQ6FpGtLS0vC///0PI0eORKtWrWx+k5ycjPfffx+//vor2rdv79kFYxiGYRgTwQo0wzAMw7jAyZMn0b17d6xevRrh4eEAgDFjxqB///4YPnw42rRpgz179pTtrX7sscfQtm1bzJkzx0aBXrVqFWbMmIG+ffti2bJlNoryBx98gHvuuQczZszAvHnzquzTunXrAAA9evSo8N2KFSuQkpKChx56qMK5ioqKUFhYWOE3uhd7zZo1mDx5cpXtMwzDMEywwCHcDMMwDOMir7/+epnyDABXXXUVEhISkJ2djZdeeskmMVl8fDz69euH3bt3o7S0tOzzN954AwCwYMGCCl7mcePGISkpCZ999plT/UlPTwcANGrUqMJ3FosFAFCzZs0K34WFhaFWrVoVPm/cuDEAICMjw6n2GYZhGCZYYA80wzAMw7hAdHQ0WrZsWeHzJk2aICUlxa4XuEmTJigtLcWpU6fQtGlTAMCff/6J6tWr46uvvrLbTlFREc6cOYNz586hXr16Dvt07tw5AEDdunUrfDdgwAA0bdoUc+bMwfbt2zF48GAkJycjKSkJISEhds8XExMDADh79qzDdhmGYRgm2GAFmmEYhmFcoLI9yaGhoZV+r39XXFxc9tm5c+dQUlKC5557zmF7OTk5VSrQNWrUAAAUFBRU+K527drYsGEDZsyYge+//x4///wzAKBBgwZ44IEHMG3atLL+6eTn59ucl2EYhmEYghVohmEYhvEBderUgdVqxfnz5z0+V8OGDQEIT3R54uLisGjRImiahn379mHlypWYP38+Zs6cCavVWkGJ18+jn5dhGIZhGIL3QDMMwzCMD+jTpw+ysrKwd+9ej8/VpUsXAKiy7JTFYkHHjh0xefJk/PrrrwCApUuXVjhOP09SUpLHfWMYhmEYM8EKNMMwDMP4gEceeQQAcO+99+LkyZMVvs/NzcWGDRucOtdVV12FkJAQu8fv2bMHqampFT7/66+/AAAREREVvtPPc8011zjVPsMwDMMECxzCzTAMwzA+YODAgZgzZw6mTp2KNm3aYPDgwUhISEBOTg7S0tLw+++/o1+/fmV7lh1Rp04dDBw4EKtXr0ZWVpZNMrEVK1bg0UcfRXJyMtq3b4+GDRvi+PHj+O6772CxWPD4449XON/y5csRHR2Na6+91tC/mWEYhmECHfZAMwzDMIyPePLJJ7FmzRoMGTIE69atw7x58/D111/jxIkTuO+++/DCCy84fa5//vOfKCoqwhdffGHz+Q033ICHH34YBQUF+O677/DKK69gzZo1uO666/DHH3/g9ttvtzn+0KFD2LBhA+6++267pa8YhmEYJpixaJqm+boTDMMwDMN4RmlpKTp37oywsDBs3769rP6zq0yZMgVvvfUW9u/fb7dcF8MwDMMEM+yBZhiGYRgTEBISgrlz52Lnzp1YsmSJW+fIzMzEf/7zH0yePJmVZ4ZhGIaxA++BZhiGYRiTMHjwYLz++ut260E7Q2pqKp588kk89NBDBveMYRiGYcwBh3AzDMMwDMMwDMMwjBNwCDfDMAzDMAzDMAzDOAEr0AzDMAzDMAzDMAzjBKxAMwzDMAzDMAzDMIwTsALNMAzDMAzDMAzDME7ACjTDMAzDMAzDMAzDOAEr0AzDMAzDMAzDMAzjBKxAMwzDMAzDMAzDMIwTsALNMAzDMAzDMAzDME7ACjTDMAzDMAzDMAzDOMH/A7fymD8u6Fo+AAAAAElFTkSuQmCC", "text/plain": [ "

" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "T, y0, h = 10, [45*np.pi/180, 0], .01\n", "t, theta = euler_method(T, y0, h, method=2)\n", "labels = ['Trajectory of simple pendulum under gravity',\n", " 'Angular position ($^o$)', 'Angular velocity ($^o/s$)']\n", "plot(t, np.rad2deg(theta), labels)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Python code to automate the calculation of the Euler–Lagrange equation\n", "\n", "The three derivatives in the Euler–Lagrange equations are first-order derivatives and behind the scenes we are using latex to write the equations. Both tasks are boring and error prone. \n", "Let's write a function using the Sympy library to automate the calculation of the derivative terms in the Euler–Lagrange equations and display them nicely." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:28:35.663989Z", "start_time": "2021-03-31T15:28:35.657368Z" } }, "outputs": [], "source": [ "# helping function\n", "def printeq(lhs, rhs=None):\n", " \"\"\"Rich display of Sympy expression as lhs = rhs.\"\"\"\n", " if rhs is None:\n", " display(Math(r'{}'.format(lhs)))\n", " else:\n", " display(Math(r'{} = '.format(lhs) + mlatex(simplify(rhs, ratio=1.7))))\n", "\n", "\n", "def lagrange_terms(L, q, show=True):\n", " \"\"\"Calculate terms of Euler-Lagrange equations given the Lagrangian and q's.\n", " \"\"\"\n", " if not isinstance(q, list):\n", " q = [q]\n", " Lterms = []\n", " if show:\n", " s = '' if len(q) == 1 else 's'\n", " printeq(r\"\\text{Terms of the Euler-Lagrange equation%s:}\"%(s)) \n", " for qi in q:\n", " dLdqi = simplify(L.diff(qi))\n", " Lterms.append(dLdqi)\n", " dLdqdi = simplify(L.diff(qi.diff(t)))\n", " Lterms.append(dLdqdi)\n", " dtdLdqdi = simplify(dLdqdi.diff(t))\n", " Lterms.append(dtdLdqdi)\n", " if show:\n", " printeq(r'\\text{For generalized coordinate}\\;%s:'%latex(qi.func))\n", " printeq(r'\\quad\\dfrac{\\partial\\mathcal{L}}{\\partial %s}'%latex(qi.func), dLdqi)\n", " printeq(r'\\quad\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{%s}}'%latex(qi.func), dLdqdi)\n", " printeq(r'\\quad\\dfrac{\\mathrm d}{\\mathrm{dt}}\\left({\\dfrac{'+ \n", " r'\\partial\\mathcal{L}}{\\partial\\dot{%s}}}\\right)'%latex(qi.func), dtdLdqdi)\n", " return Lterms \n", "\n", "\n", "def lagrange_eq(Lterms, Qnc=None):\n", " \"\"\"Display Euler-Lagrange equation given the Lterms.\"\"\"\n", " s = '' if len(Lterms) == 3 else 's'\n", " if Qnc is None:\n", " Qnc = int(len(Lterms)/3) * [0]\n", " printeq(r\"\\text{Euler-Lagrange equation%s (EOM):}\"%(s))\n", " for i in range(int(len(Lterms)/3)):\n", " #display(Eq(simplify(Lterms[3*i+2]-Lterms[3*i]), Qnc[i], evaluate=False))\n", " printeq(r'\\quad ' + mlatex(simplify(Lterms[3*i+2]-Lterms[3*i])), Qnc[i])\n", " \n", " \n", "def lagrange_eq_solve(Lterms, q, Qnc=None): \n", " \"\"\"Display Euler-Lagrange equation given the Lterms.\"\"\"\n", " if not isinstance(q, list):\n", " q = [q] \n", " if Qnc is None:\n", " Qnc = int(len(Lterms)/3) * [0]\n", " system = [simplify(Lterms[3*i+2]-Lterms[3*i]-Qnc[i]) for i in range(len(q))]\n", " qdds = [qi.diff(t, 2) for qi in q]\n", " sol = nonlinsolve(system, qdds)\n", " s = '' if len(Lterms) == 3 else 's'\n", " printeq(r\"\\text{Euler-Lagrange equation%s (EOM):}\"%(s))\n", " if len(sol.args):\n", " for i in range(int(len(Lterms)/3)):\n", " display(Eq(qdds[i], simplify(sol.args[0][i]), evaluate=False))\n", " else:\n", " display(sol)\n", " \n", " return sol" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's recalculate the EOM of the simple pendulum using Sympy and the code for automation." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:28:35.667110Z", "start_time": "2021-03-31T15:28:35.664894Z" } }, "outputs": [], "source": [ "# define variables\n", "t = sym.Symbol('t')\n", "m, d, g = sym.symbols('m, d, g', positive=True)\n", "θ = dynamicsymbols('theta') # \\theta" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Position and velocity of the simple pendulum under the influence of gravity:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:28:35.719141Z", "start_time": "2021-03-31T15:28:35.667947Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle x = d \\sin{\\left(\\theta \\right)}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle y = - d \\cos{\\left(\\theta \\right)}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\dot{x} = d \\cos{\\left(\\theta \\right)} \\dot{\\theta}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\dot{y} = d \\sin{\\left(\\theta \\right)} \\dot{\\theta}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x, y = d*sin(𝜃), -d*cos(θ)\n", "xd, yd = x.diff(t), y.diff(t)\n", "\n", "printeq('x', x)\n", "printeq('y', y)\n", "printeq(r'\\dot{x}', xd)\n", "printeq(r'\\dot{y}', yd)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Kinetic and potential energies of the simple pendulum under the influence of gravity and the corresponding Lagrangian function:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:28:35.850960Z", "start_time": "2021-03-31T15:28:35.720011Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle T = \\frac{d^{2} m \\dot{\\theta}^{2}}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle V = - d g m \\cos{\\left(\\theta \\right)}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\mathcal{L} = \\frac{d m \\left(d \\dot{\\theta}^{2} + 2 g \\cos{\\left(\\theta \\right)}\\right)}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "T = m*(xd**2 + yd**2)/2\n", "V = m*g*y\n", "\n", "printeq('T', T)\n", "printeq('V', V)\n", "\n", "L = T - V\n", "\n", "printeq(r'\\mathcal{L}', L)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And the automated part for the derivatives:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:28:35.936287Z", "start_time": "2021-03-31T15:28:35.852437Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{Terms of the Euler-Lagrange equation:}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\text{For generalized coordinate}\\;\\theta:$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial \\theta} = - d g m \\sin{\\left(\\theta \\right)}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{\\theta}} = d^{2} m \\dot{\\theta}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\mathrm d}{\\mathrm{dt}}\\left({\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{\\theta}}}\\right) = d^{2} m \\ddot{\\theta}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Lterms = lagrange_terms(L, θ)" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2020-05-03T21:30:55.708107Z", "start_time": "2020-05-03T21:30:55.705029Z" } }, "source": [ "Finally, the EOM is:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:28:35.988902Z", "start_time": "2021-03-31T15:28:35.937375Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{Euler-Lagrange equation (EOM):}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad d m \\left(d \\ddot{\\theta} + g \\sin{\\left(\\theta \\right)}\\right) = 0$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "lagrange_eq(Lterms)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And rearranging:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:28:36.347628Z", "start_time": "2021-03-31T15:28:35.989779Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{Euler-Lagrange equation (EOM):}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/latex": [ "$\\displaystyle \\ddot{\\theta} = - \\frac{g \\sin{\\left(\\theta \\right)}}{d}$" ], "text/plain": [ " -g⋅sin(θ) \n", "θ̈ = ──────────\n", " d " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sol = lagrange_eq_solve(Lterms, q=θ, Qnc=None)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Same result as before." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example: Double pendulum under the influence of gravity\n", "\n", "
\"double
\n", "\n", "Consider a double pendulum (one pendulum attached to another) with massless rods of length $d_1$ and $d_2$ and masses $m_1$ and $m_2$ at the extremities of each rod swinging in a plane forming the angles $\\theta_1$ and $\\theta_2$ with vertical. \n", "The system has two particles with two degrees of freedom; two adequate generalized coordinates to describe the system's configuration are the angles in relation to the vertical ($\\theta_1, \\theta_2$). Let's adopt the origin of the reference frame at the point of the upper pendulum suspension.\n", "\n", "Let's use Sympy to solve this problem." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:28:36.351584Z", "start_time": "2021-03-31T15:28:36.348694Z" } }, "outputs": [], "source": [ "# define variables\n", "t = Symbol('t')\n", "d1, d2, m1, m2, g = symbols('d1, d2, m1, m2, g', positive=True)\n", "θ1, θ2 = dynamicsymbols('theta1, theta2')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The positions and velocities of masses $m_1$ and $m_2$ are: " ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:28:36.582103Z", "start_time": "2021-03-31T15:28:36.352552Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle x_1 = d_{1} \\sin{\\left(\\theta_{1} \\right)}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle y_1 = - d_{1} \\cos{\\left(\\theta_{1} \\right)}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle x_2 = d_{1} \\sin{\\left(\\theta_{1} \\right)} + d_{2} \\sin{\\left(\\theta_{2} \\right)}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle y_2 = - d_{1} \\cos{\\left(\\theta_{1} \\right)} - d_{2} \\cos{\\left(\\theta_{2} \\right)}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\dot{x}_1 = d_{1} \\cos{\\left(\\theta_{1} \\right)} \\dot{\\theta}_{1}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\dot{y}_1 = d_{1} \\sin{\\left(\\theta_{1} \\right)} \\dot{\\theta}_{1}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\dot{x}_2 = d_{1} \\cos{\\left(\\theta_{1} \\right)} \\dot{\\theta}_{1} + d_{2} \\cos{\\left(\\theta_{2} \\right)} \\dot{\\theta}_{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\dot{y}_2 = d_{1} \\sin{\\left(\\theta_{1} \\right)} \\dot{\\theta}_{1} + d_{2} \\sin{\\left(\\theta_{2} \\right)} \\dot{\\theta}_{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x1 = d1*sin(θ1)\n", "y1 = -d1*cos(θ1)\n", "x2 = d1*sin(θ1) + d2*sin(θ2)\n", "y2 = -d1*cos(θ1) - d2*cos(θ2)\n", "x1d, y1d = x1.diff(t), y1.diff(t)\n", "x2d, y2d = x2.diff(t), y2.diff(t)\n", "\n", "printeq(r'x_1', x1)\n", "printeq(r'y_1', y1)\n", "printeq(r'x_2', x2)\n", "printeq(r'y_2', y2)\n", "printeq(r'\\dot{x}_1', x1d)\n", "printeq(r'\\dot{y}_1', y1d)\n", "printeq(r'\\dot{x}_2', x2d)\n", "printeq(r'\\dot{y}_2', y2d)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The kinetic and potential energies of the system are:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:28:37.471568Z", "start_time": "2021-03-31T15:28:36.582885Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle T = \\frac{d_{1}^{2} m_{1} \\dot{\\theta}_{1}^{2}}{2} + \\frac{m_{2} \\left(d_{1}^{2} \\dot{\\theta}_{1}^{2} + 2 d_{1} d_{2} \\cos{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{1} \\dot{\\theta}_{2} + d_{2}^{2} \\dot{\\theta}_{2}^{2}\\right)}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle V = - g \\left(d_{1} m_{1} \\cos{\\left(\\theta_{1} \\right)} + d_{1} m_{2} \\cos{\\left(\\theta_{1} \\right)} + d_{2} m_{2} \\cos{\\left(\\theta_{2} \\right)}\\right)$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "T = m1*(x1d**2 + y1d**2)/2 + m2*(x2d**2 + y2d**2)/2\n", "V = m1*g*y1 + m2*g*y2\n", "\n", "printeq(r'T', T)\n", "printeq(r'V', V)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Lagrangian function is:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:28:38.233030Z", "start_time": "2021-03-31T15:28:37.472625Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\mathcal{L} = \\frac{d_{1}^{2} m_{1} \\dot{\\theta}_{1}^{2}}{2} + d_{1} g m_{1} \\cos{\\left(\\theta_{1} \\right)} + g m_{2} \\left(d_{1} \\cos{\\left(\\theta_{1} \\right)} + d_{2} \\cos{\\left(\\theta_{2} \\right)}\\right) + \\frac{m_{2} \\left(d_{1}^{2} \\dot{\\theta}_{1}^{2} + 2 d_{1} d_{2} \\cos{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{1} \\dot{\\theta}_{2} + d_{2}^{2} \\dot{\\theta}_{2}^{2}\\right)}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "L = T - V\n", "\n", "printeq(r'\\mathcal{L}', L)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And the derivatives are:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:28:42.382513Z", "start_time": "2021-03-31T15:28:38.233868Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{Terms of the Euler-Lagrange equations:}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\text{For generalized coordinate}\\;\\theta_{1}:$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial \\theta_{1}} = - d_{1} \\left(d_{2} m_{2} \\sin{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{1} \\dot{\\theta}_{2} + g m_{1} \\sin{\\left(\\theta_{1} \\right)} + g m_{2} \\sin{\\left(\\theta_{1} \\right)}\\right)$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{\\theta_{1}}} = d_{1} \\left(d_{1} m_{1} \\dot{\\theta}_{1} + m_{2} \\left(d_{1} \\dot{\\theta}_{1} + d_{2} \\cos{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{2}\\right)\\right)$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\mathrm d}{\\mathrm{dt}}\\left({\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{\\theta_{1}}}}\\right) = d_{1} \\left(d_{1} m_{1} \\ddot{\\theta}_{1} + m_{2} \\left(d_{1} \\ddot{\\theta}_{1} - d_{2} \\left(\\dot{\\theta}_{1} - \\dot{\\theta}_{2}\\right) \\sin{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{2} + d_{2} \\cos{\\left(\\theta_{1} - \\theta_{2} \\right)} \\ddot{\\theta}_{2}\\right)\\right)$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\text{For generalized coordinate}\\;\\theta_{2}:$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial \\theta_{2}} = d_{2} m_{2} \\left(d_{1} \\sin{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{1} \\dot{\\theta}_{2} - g \\sin{\\left(\\theta_{2} \\right)}\\right)$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{\\theta_{2}}} = d_{2} m_{2} \\left(d_{1} \\cos{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{1} + d_{2} \\dot{\\theta}_{2}\\right)$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\mathrm d}{\\mathrm{dt}}\\left({\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{\\theta_{2}}}}\\right) = d_{2} m_{2} \\left(- d_{1} \\left(\\dot{\\theta}_{1} - \\dot{\\theta}_{2}\\right) \\sin{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{1} + d_{1} \\cos{\\left(\\theta_{1} - \\theta_{2} \\right)} \\ddot{\\theta}_{1} + d_{2} \\ddot{\\theta}_{2}\\right)$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Lterms = lagrange_terms(L, [θ1, θ2])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, the EOM are:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:28:43.324038Z", "start_time": "2021-03-31T15:28:42.383500Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{Euler-Lagrange equations (EOM):}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad d_{1} \\left(d_{1} m_{1} \\ddot{\\theta}_{1} + d_{1} m_{2} \\ddot{\\theta}_{1} + d_{2} m_{2} \\sin{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{2}^{2} + d_{2} m_{2} \\cos{\\left(\\theta_{1} - \\theta_{2} \\right)} \\ddot{\\theta}_{2} + g m_{1} \\sin{\\left(\\theta_{1} \\right)} + g m_{2} \\sin{\\left(\\theta_{1} \\right)}\\right) = 0$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad d_{2} m_{2} \\left(- d_{1} \\sin{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{1}^{2} + d_{1} \\cos{\\left(\\theta_{1} - \\theta_{2} \\right)} \\ddot{\\theta}_{1} + d_{2} \\ddot{\\theta}_{2} + g \\sin{\\left(\\theta_{2} \\right)}\\right) = 0$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "lagrange_eq(Lterms)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The EOM's are a system with two coupled equations, $\\theta_1$ and $\\theta_2$ appear on both equations. \n", "\n", "The motion of a double pendulum is very interesting; most of times it presents a chaotic behavior." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Numerical solution of the equation of motion for the double pendulum\n", "\n", "The analytical solution in infeasible to deduce. For the numerical solution, first we have to rearrange the equations to find separate expressions for $\\theta_1$ and $\\theta_2$ (solve the system of equations algebraically). \n", "Using Sympy, here are the two expressions:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:28:57.074509Z", "start_time": "2021-03-31T15:28:43.325112Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{Euler-Lagrange equations (EOM):}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/latex": [ "$\\displaystyle \\ddot{\\theta}_{1} = \\frac{- \\frac{d_{1} m_{2} \\sin{\\left(2 \\theta_{1} - 2 \\theta_{2} \\right)} \\dot{\\theta}_{1}^{2}}{2} - d_{2} m_{2} \\sin{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{2}^{2} - g m_{1} \\sin{\\left(\\theta_{1} \\right)} - \\frac{g m_{2} \\sin{\\left(\\theta_{1} - 2 \\theta_{2} \\right)}}{2} - \\frac{g m_{2} \\sin{\\left(\\theta_{1} \\right)}}{2}}{d_{1} \\left(m_{1} - m_{2} \\cos^{2}{\\left(\\theta_{1} - \\theta_{2} \\right)} + m_{2}\\right)}$" ], "text/plain": [ " 2 \n", " d₁⋅m₂⋅sin(2⋅θ₁ - 2⋅θ₂)⋅θ₁̇ 2 g⋅m₂⋅sin(θ₁ - 2⋅θ₂) \n", " - ────────────────────────── - d₂⋅m₂⋅sin(θ₁ - θ₂)⋅θ₂̇ - g⋅m₁⋅sin(θ₁) - ─────────────────── -\n", " 2 2 \n", "θ₁̈ = ────────────────────────────────────────────────────────────────────────────────────────────\n", " ⎛ 2 ⎞ \n", " d₁⋅⎝m₁ - m₂⋅cos (θ₁ - θ₂) + m₂⎠ \n", "\n", " \n", " g⋅m₂⋅sin(θ₁)\n", " ────────────\n", " 2 \n", "─────────────\n", " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/latex": [ "$\\displaystyle \\ddot{\\theta}_{2} = \\frac{2 d_{1} m_{1} \\sin{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{1}^{2} + 2 d_{1} m_{2} \\sin{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{1}^{2} + d_{2} m_{2} \\sin{\\left(2 \\theta_{1} - 2 \\theta_{2} \\right)} \\dot{\\theta}_{2}^{2} + g m_{1} \\sin{\\left(2 \\theta_{1} - \\theta_{2} \\right)} - g m_{1} \\sin{\\left(\\theta_{2} \\right)} + g m_{2} \\sin{\\left(2 \\theta_{1} - \\theta_{2} \\right)} - g m_{2} \\sin{\\left(\\theta_{2} \\right)}}{2 d_{2} \\left(m_{1} - m_{2} \\cos^{2}{\\left(\\theta_{1} - \\theta_{2} \\right)} + m_{2}\\right)}$" ], "text/plain": [ " 2 2 2 \n", " 2⋅d₁⋅m₁⋅sin(θ₁ - θ₂)⋅θ₁̇ + 2⋅d₁⋅m₂⋅sin(θ₁ - θ₂)⋅θ₁̇ + d₂⋅m₂⋅sin(2⋅θ₁ - 2⋅θ₂)⋅θ₂̇ + g⋅m₁⋅si\n", "θ₂̈ = ────────────────────────────────────────────────────────────────────────────────────────────\n", " ⎛ 2 ⎞\n", " 2⋅d₂⋅⎝m₁ - m₂⋅cos (θ₁ - θ₂) + m₂⎠\n", "\n", " \n", "n(2⋅θ₁ - θ₂) - g⋅m₁⋅sin(θ₂) + g⋅m₂⋅sin(2⋅θ₁ - θ₂) - g⋅m₂⋅sin(θ₂)\n", "──────────────────────────────────────────────────────────────\n", " \n", " " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sol = lagrange_eq_solve(Lterms, q=[θ1, θ2], Qnc=None)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order to solve numerically the ODEs for the double pendulum we have to transform each equation above into two first ODEs. But we should avoid using Euler's method because of the non-negligible error in the numerical integration in this case; more accurate methods such as [Runge-Kutta](https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods) should be employed. See such solution in [https://www.myphysicslab.com/pendulum/double-pendulum-en.html](https://www.myphysicslab.com/pendulum/double-pendulum-en.html).\n", "\n", "We can use Sympy to transform the symbolic equations into Numpy functions that can be used for the numerical solution. Here is the code for that:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:28:57.124349Z", "start_time": "2021-03-31T15:28:57.075551Z" } }, "outputs": [], "source": [ "θ1dd_fun = sym.lambdify((g, m1, d1, θ1, θ1.diff(t), m2, d2, θ2, θ2.diff(t)), sol.args[0][0], 'numpy')\n", "θ2dd_fun = sym.lambdify((g, m1, d1, θ1, θ1.diff(t), m2, d2, θ2, θ2.diff(t)), sol.args[0][1], 'numpy')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The reader is invited to write the code for the numerical simulation." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example: Double compound pendulum under the influence of gravity\n", "\n", "
\"double
\n", "\n", "Consider the double compound pendulum (or physical pendulum) shown on the the right with length $d$ and mass $m$ of each rod swinging in a plane forming the angles $\\theta_1$ and $\\theta_2$ with vertical and $g=10 m/s^2$. \n", "The system has two degrees of freedom and we need two generalized coordinates ($\\theta_1, \\theta_2$) to describe the system's configuration. \n", "\n", "Let's use the Lagrangian mechanics to derive the equations of motion for each pendulum. \n", "\n", "To calculate the potential and kinetic energy of the system, we will need to calculate the position and velocity of each pendulum. Now each pendulum is a rod with distributed mass and we will have to calculate the moment of rotational inertia of the rod. In this case, the kinetic energy of each pendulum will be given as the kinetic energy due to rotation of the pendulum plus the kinetic energy due to the speed of the center of mass of the pendulum, such that the total kinetic energy of the system is:\n", "\n", "\\begin{equation}\\begin{array}{rcl}\n", "T = \\overbrace{\\underbrace{\\,\\frac{1}{2}I_{cm}\\dot\\theta_1^2\\,}_{\\text{rotation}} + \\underbrace{\\frac{1}{2}m(\\dot x_{1,cm}^2 + \\dot y_{1,cm}^2)}_{\\text{translation}}}^{\\text{pendulum 1}} + \\overbrace{\\underbrace{\\,\\frac{1}{2}I_{cm}\\dot\\theta_2^2\\,}_{\\text{rotation}} + \\underbrace{\\frac{1}{2}m(\\dot x_{2,cm}^2 + \\dot y_{2,cm}^2)}_{\\text{translation}}}^{\\text{pendulum 2}}\n", "\\end{array}\\end{equation}\n", "\n", "And the potential energy of the system is:\n", "\n", "\\begin{equation}\\begin{array}{rcl}\n", "V = mg\\big(y_{1,cm} + y_{2,cm}\\big)\n", "\\end{array}\\end{equation}\n", "\n", "Let's use Sympy once again.\n", "\n", "The position and velocity of the center of mass of the rods $1$ and $2$ are: " ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:28:57.362598Z", "start_time": "2021-03-31T15:28:57.125269Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle x_1 = \\frac{d \\sin{\\left(\\theta_{1} \\right)}}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle y_1 = - \\frac{d \\cos{\\left(\\theta_{1} \\right)}}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle x_2 = \\frac{d \\left(2 \\sin{\\left(\\theta_{1} \\right)} + \\sin{\\left(\\theta_{2} \\right)}\\right)}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle y_2 = - \\frac{d \\left(2 \\cos{\\left(\\theta_{1} \\right)} + \\cos{\\left(\\theta_{2} \\right)}\\right)}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\dot{x}_1 = \\frac{d \\cos{\\left(\\theta_{1} \\right)} \\dot{\\theta}_{1}}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\dot{y}_1 = \\frac{d \\sin{\\left(\\theta_{1} \\right)} \\dot{\\theta}_{1}}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\dot{x}_2 = \\frac{d \\left(2 \\cos{\\left(\\theta_{1} \\right)} \\dot{\\theta}_{1} + \\cos{\\left(\\theta_{2} \\right)} \\dot{\\theta}_{2}\\right)}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\dot{y}_2 = \\frac{d \\left(2 \\sin{\\left(\\theta_{1} \\right)} \\dot{\\theta}_{1} + \\sin{\\left(\\theta_{2} \\right)} \\dot{\\theta}_{2}\\right)}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "d, m, g = symbols('d, m, g', positive=True)\n", "θ1, θ2 = dynamicsymbols('theta1, theta2')\n", "I = m*d*d/12 # rotational inertia of a rod\n", "\n", "x1 = d*sin(θ1)/2\n", "y1 = -d*cos(θ1)/2\n", "x2 = d*sin(θ1) + d*sin(θ2)/2\n", "y2 = -d*cos(θ1) - d*cos(θ2)/2\n", "x1d, y1d = x1.diff(t), y1.diff(t)\n", "x2d, y2d = x2.diff(t), y2.diff(t)\n", "\n", "printeq(r'x_1', x1); printeq(r'y_1', y1)\n", "printeq(r'x_2', x2); printeq(r'y_2', y2)\n", "printeq(r'\\dot{x}_1', x1d); printeq(r'\\dot{y}_1', y1d)\n", "printeq(r'\\dot{x}_2', x2d); printeq(r'\\dot{y}_2', y2d)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The kinetic and potential energies of the system are:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:28:57.705609Z", "start_time": "2021-03-31T15:28:57.363488Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle T = \\frac{d^{2} m \\left(3 \\cos{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{1} \\dot{\\theta}_{2} + 4 \\dot{\\theta}_{1}^{2} + \\dot{\\theta}_{2}^{2}\\right)}{6}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle V = - \\frac{d g m \\left(3 \\cos{\\left(\\theta_{1} \\right)} + \\cos{\\left(\\theta_{2} \\right)}\\right)}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "T = I/2*(θ1.diff(t))**2 + m/2*(x1d**2+y1d**2) + I/2*(θ2.diff(t))**2 + m/2*(x2d**2+y2d**2)\n", "V = m*g*y1 + m*g*y2\n", "\n", "printeq('T', T)\n", "printeq('V', V)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Lagrangian function is:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:28:58.239042Z", "start_time": "2021-03-31T15:28:57.706434Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\mathcal{L} = \\frac{d m \\left(3 d \\cos{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{1} \\dot{\\theta}_{2} + 4 d \\dot{\\theta}_{1}^{2} + d \\dot{\\theta}_{2}^{2} + 9 g \\cos{\\left(\\theta_{1} \\right)} + 3 g \\cos{\\left(\\theta_{2} \\right)}\\right)}{6}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "L = T - V\n", "\n", "printeq(r'\\mathcal{L}', L)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And the derivatives are:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:00.297414Z", "start_time": "2021-03-31T15:28:58.239989Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{Terms of the Euler-Lagrange equations:}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\text{For generalized coordinate}\\;\\theta_{1}:$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial \\theta_{1}} = - \\frac{d m \\left(d \\sin{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{1} \\dot{\\theta}_{2} + 3 g \\sin{\\left(\\theta_{1} \\right)}\\right)}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{\\theta_{1}}} = \\frac{d^{2} m \\left(3 \\cos{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{2} + 8 \\dot{\\theta}_{1}\\right)}{6}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\mathrm d}{\\mathrm{dt}}\\left({\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{\\theta_{1}}}}\\right) = \\frac{d^{2} m \\left(- 3 \\left(\\dot{\\theta}_{1} - \\dot{\\theta}_{2}\\right) \\sin{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{2} + 3 \\cos{\\left(\\theta_{1} - \\theta_{2} \\right)} \\ddot{\\theta}_{2} + 8 \\ddot{\\theta}_{1}\\right)}{6}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\text{For generalized coordinate}\\;\\theta_{2}:$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial \\theta_{2}} = \\frac{d m \\left(d \\sin{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{1} \\dot{\\theta}_{2} - g \\sin{\\left(\\theta_{2} \\right)}\\right)}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{\\theta_{2}}} = \\frac{d^{2} m \\left(3 \\cos{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{1} + 2 \\dot{\\theta}_{2}\\right)}{6}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\mathrm d}{\\mathrm{dt}}\\left({\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{\\theta_{2}}}}\\right) = \\frac{d^{2} m \\left(- 3 \\left(\\dot{\\theta}_{1} - \\dot{\\theta}_{2}\\right) \\sin{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{1} + 3 \\cos{\\left(\\theta_{1} - \\theta_{2} \\right)} \\ddot{\\theta}_{1} + 2 \\ddot{\\theta}_{2}\\right)}{6}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Lterms = lagrange_terms(L, [θ1, θ2])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, the EOM are:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:00.904010Z", "start_time": "2021-03-31T15:29:00.299886Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{Euler-Lagrange equations (EOM):}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad \\frac{d m \\left(3 d \\sin{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{2}^{2} + 3 d \\cos{\\left(\\theta_{1} - \\theta_{2} \\right)} \\ddot{\\theta}_{2} + 8 d \\ddot{\\theta}_{1} + 9 g \\sin{\\left(\\theta_{1} \\right)}\\right)}{6} = 0$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad \\frac{d m \\left(- 3 d \\sin{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{1}^{2} + 3 d \\cos{\\left(\\theta_{1} - \\theta_{2} \\right)} \\ddot{\\theta}_{1} + 2 d \\ddot{\\theta}_{2} + 3 g \\sin{\\left(\\theta_{2} \\right)}\\right)}{6} = 0$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "lagrange_eq(Lterms)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And rearranging:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:09.849761Z", "start_time": "2021-03-31T15:29:00.905693Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{Euler-Lagrange equations (EOM):}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/latex": [ "$\\displaystyle \\ddot{\\theta}_{1} = \\frac{12 d \\sin{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{2}^{2} + 9 d \\sin{\\left(2 \\theta_{1} - 2 \\theta_{2} \\right)} \\dot{\\theta}_{1}^{2} + 9 g \\sin{\\left(\\theta_{1} - 2 \\theta_{2} \\right)} + 27 g \\sin{\\left(\\theta_{1} \\right)}}{d \\left(9 \\cos{\\left(2 \\theta_{1} - 2 \\theta_{2} \\right)} - 23\\right)}$" ], "text/plain": [ " 2 2 \n", " 12⋅d⋅sin(θ₁ - θ₂)⋅θ₂̇ + 9⋅d⋅sin(2⋅θ₁ - 2⋅θ₂)⋅θ₁̇ + 9⋅g⋅sin(θ₁ - 2⋅θ₂) + 27⋅g⋅sin(θ₁)\n", "θ₁̈ = ────────────────────────────────────────────────────────────────────────────────────\n", " d⋅(9⋅cos(2⋅θ₁ - 2⋅θ₂) - 23) " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/latex": [ "$\\displaystyle \\ddot{\\theta}_{2} = \\frac{- 48 d \\sin{\\left(\\theta_{1} - \\theta_{2} \\right)} \\dot{\\theta}_{1}^{2} - 9 d \\sin{\\left(2 \\theta_{1} - 2 \\theta_{2} \\right)} \\dot{\\theta}_{2}^{2} - 27 g \\sin{\\left(2 \\theta_{1} - \\theta_{2} \\right)} + 21 g \\sin{\\left(\\theta_{2} \\right)}}{d \\left(9 \\cos{\\left(2 \\theta_{1} - 2 \\theta_{2} \\right)} - 23\\right)}$" ], "text/plain": [ " 2 2 \n", " - 48⋅d⋅sin(θ₁ - θ₂)⋅θ₁̇ - 9⋅d⋅sin(2⋅θ₁ - 2⋅θ₂)⋅θ₂̇ - 27⋅g⋅sin(2⋅θ₁ - θ₂) + 21⋅g⋅sin(θ₂)\n", "θ₂̈ = ───────────────────────────────────────────────────────────────────────────────────────\n", " d⋅(9⋅cos(2⋅θ₁ - 2⋅θ₂) - 23) " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sol = lagrange_eq_solve(Lterms, q=[θ1, θ2], Qnc=None);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example: Double compound pendulum in joint space\n", "\n", "Let's recalculate the former example but employing generalized coordinates in the joint space: $\\alpha_1=\\theta_1$ and $\\alpha_2=\\theta_2-\\theta_1$." ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:10.267783Z", "start_time": "2021-03-31T15:29:09.850824Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle x_1 = \\frac{d \\sin{\\left(\\alpha_{1} \\right)}}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle y_1 = - \\frac{d \\cos{\\left(\\alpha_{1} \\right)}}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle x_2 = \\frac{d \\left(\\sin{\\left(\\alpha_{1} + \\alpha_{2} \\right)} + 2 \\sin{\\left(\\alpha_{1} \\right)}\\right)}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle y_2 = - \\frac{d \\left(\\cos{\\left(\\alpha_{1} + \\alpha_{2} \\right)} + 2 \\cos{\\left(\\alpha_{1} \\right)}\\right)}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\dot{x}_1 = \\frac{d \\cos{\\left(\\alpha_{1} \\right)} \\dot{\\alpha}_{1}}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\dot{y}_1 = \\frac{d \\sin{\\left(\\alpha_{1} \\right)} \\dot{\\alpha}_{1}}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\dot{x}_2 = \\frac{d \\left(\\left(\\dot{\\alpha}_{1} + \\dot{\\alpha}_{2}\\right) \\cos{\\left(\\alpha_{1} + \\alpha_{2} \\right)} + 2 \\cos{\\left(\\alpha_{1} \\right)} \\dot{\\alpha}_{1}\\right)}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\dot{y}_2 = \\frac{d \\left(\\left(\\dot{\\alpha}_{1} + \\dot{\\alpha}_{2}\\right) \\sin{\\left(\\alpha_{1} + \\alpha_{2} \\right)} + 2 \\sin{\\left(\\alpha_{1} \\right)} \\dot{\\alpha}_{1}\\right)}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "d, m, g = symbols('d, m, g', positive=True)\n", "α1, α2 = dynamicsymbols('alpha1, alpha2')\n", "I = m*d*d/12 # rotational inertia of a rod\n", "\n", "x1 = d*sin(α1)/2\n", "y1 = -d*cos(α1)/2\n", "x2 = d*sin(α1) + d*sin(α1+α2)/2\n", "y2 = -d*cos(α1) - d*cos(α1+α2)/2\n", "x1d, y1d = x1.diff(t), y1.diff(t)\n", "x2d, y2d = x2.diff(t), y2.diff(t)\n", "\n", "printeq(r'x_1', x1); printeq(r'y_1', y1)\n", "printeq(r'x_2', x2); printeq(r'y_2', y2)\n", "printeq(r'\\dot{x}_1', x1d); printeq(r'\\dot{y}_1', y1d)\n", "printeq(r'\\dot{x}_2', x2d); printeq(r'\\dot{y}_2', y2d)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:11.545745Z", "start_time": "2021-03-31T15:29:10.268706Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle T = \\frac{d^{2} m \\left(3 \\cos{\\left(\\alpha_{2} \\right)} \\dot{\\alpha}_{1}^{2} + 3 \\cos{\\left(\\alpha_{2} \\right)} \\dot{\\alpha}_{1} \\dot{\\alpha}_{2} + 5 \\dot{\\alpha}_{1}^{2} + 2 \\dot{\\alpha}_{1} \\dot{\\alpha}_{2} + \\dot{\\alpha}_{2}^{2}\\right)}{6}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle V = - \\frac{d g m \\left(\\cos{\\left(\\alpha_{1} + \\alpha_{2} \\right)} + 3 \\cos{\\left(\\alpha_{1} \\right)}\\right)}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\mathcal{L} = \\frac{d m \\left(3 d \\cos{\\left(\\alpha_{2} \\right)} \\dot{\\alpha}_{1}^{2} + 3 d \\cos{\\left(\\alpha_{2} \\right)} \\dot{\\alpha}_{1} \\dot{\\alpha}_{2} + 5 d \\dot{\\alpha}_{1}^{2} + 2 d \\dot{\\alpha}_{1} \\dot{\\alpha}_{2} + d \\dot{\\alpha}_{2}^{2} + 3 g \\cos{\\left(\\alpha_{1} + \\alpha_{2} \\right)} + 9 g \\cos{\\left(\\alpha_{1} \\right)}\\right)}{6}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "T = I/2*(α1.diff(t))**2 + m/2*(x1d**2+y1d**2) + I/2*(α1.diff(t)+α2.diff(t))**2 + m/2*(x2d**2+y2d**2)\n", "V = m*g*y1 + m*g*y2\n", "L = T - V\n", "\n", "printeq('T', T)\n", "printeq('V', V)\n", "printeq(r'\\mathcal{L}', L)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:13.831739Z", "start_time": "2021-03-31T15:29:11.546734Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{Terms of the Euler-Lagrange equations:}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\text{For generalized coordinate}\\;\\alpha_{1}:$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial \\alpha_{1}} = - \\frac{d g m \\left(\\sin{\\left(\\alpha_{1} + \\alpha_{2} \\right)} + 3 \\sin{\\left(\\alpha_{1} \\right)}\\right)}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{\\alpha_{1}}} = \\frac{d^{2} m \\left(6 \\cos{\\left(\\alpha_{2} \\right)} \\dot{\\alpha}_{1} + 3 \\cos{\\left(\\alpha_{2} \\right)} \\dot{\\alpha}_{2} + 10 \\dot{\\alpha}_{1} + 2 \\dot{\\alpha}_{2}\\right)}{6}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\mathrm d}{\\mathrm{dt}}\\left({\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{\\alpha_{1}}}}\\right) = \\frac{d^{2} m \\left(- 6 \\sin{\\left(\\alpha_{2} \\right)} \\dot{\\alpha}_{1} \\dot{\\alpha}_{2} - 3 \\sin{\\left(\\alpha_{2} \\right)} \\dot{\\alpha}_{2}^{2} + 6 \\cos{\\left(\\alpha_{2} \\right)} \\ddot{\\alpha}_{1} + 3 \\cos{\\left(\\alpha_{2} \\right)} \\ddot{\\alpha}_{2} + 10 \\ddot{\\alpha}_{1} + 2 \\ddot{\\alpha}_{2}\\right)}{6}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\text{For generalized coordinate}\\;\\alpha_{2}:$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial \\alpha_{2}} = - \\frac{d m \\left(d \\left(\\dot{\\alpha}_{1} + \\dot{\\alpha}_{2}\\right) \\sin{\\left(\\alpha_{2} \\right)} \\dot{\\alpha}_{1} + g \\sin{\\left(\\alpha_{1} + \\alpha_{2} \\right)}\\right)}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{\\alpha_{2}}} = \\frac{d^{2} m \\left(3 \\cos{\\left(\\alpha_{2} \\right)} \\dot{\\alpha}_{1} + 2 \\dot{\\alpha}_{1} + 2 \\dot{\\alpha}_{2}\\right)}{6}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\mathrm d}{\\mathrm{dt}}\\left({\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{\\alpha_{2}}}}\\right) = \\frac{d^{2} m \\left(- 3 \\sin{\\left(\\alpha_{2} \\right)} \\dot{\\alpha}_{1} \\dot{\\alpha}_{2} + 3 \\cos{\\left(\\alpha_{2} \\right)} \\ddot{\\alpha}_{1} + 2 \\ddot{\\alpha}_{1} + 2 \\ddot{\\alpha}_{2}\\right)}{6}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Lterms = lagrange_terms(L, [α1, α2])" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:14.719573Z", "start_time": "2021-03-31T15:29:13.832737Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{Euler-Lagrange equations (EOM):}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad \\frac{d m \\left(d \\left(- 6 \\sin{\\left(\\alpha_{2} \\right)} \\dot{\\alpha}_{1} \\dot{\\alpha}_{2} - 3 \\sin{\\left(\\alpha_{2} \\right)} \\dot{\\alpha}_{2}^{2} + 6 \\cos{\\left(\\alpha_{2} \\right)} \\ddot{\\alpha}_{1} + 3 \\cos{\\left(\\alpha_{2} \\right)} \\ddot{\\alpha}_{2} + 10 \\ddot{\\alpha}_{1} + 2 \\ddot{\\alpha}_{2}\\right) + 3 g \\left(\\sin{\\left(\\alpha_{1} + \\alpha_{2} \\right)} + 3 \\sin{\\left(\\alpha_{1} \\right)}\\right)\\right)}{6} = 0$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad \\frac{d m \\left(3 d \\sin{\\left(\\alpha_{2} \\right)} \\dot{\\alpha}_{1}^{2} + 3 d \\cos{\\left(\\alpha_{2} \\right)} \\ddot{\\alpha}_{1} + 2 d \\ddot{\\alpha}_{1} + 2 d \\ddot{\\alpha}_{2} + 3 g \\sin{\\left(\\alpha_{1} + \\alpha_{2} \\right)}\\right)}{6} = 0$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "lagrange_eq(Lterms)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:24.093334Z", "start_time": "2021-03-31T15:29:14.720571Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{Euler-Lagrange equations (EOM):}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/latex": [ "$\\displaystyle \\ddot{\\alpha}_{1} = \\frac{3 \\left(- 4 d \\sin{\\left(\\alpha_{2} \\right)} \\dot{\\alpha}_{1}^{2} - 8 d \\sin{\\left(\\alpha_{2} \\right)} \\dot{\\alpha}_{1} \\dot{\\alpha}_{2} - 4 d \\sin{\\left(\\alpha_{2} \\right)} \\dot{\\alpha}_{2}^{2} - 3 d \\sin{\\left(2 \\alpha_{2} \\right)} \\dot{\\alpha}_{1}^{2} - 3 g \\sin{\\left(\\alpha_{1} + 2 \\alpha_{2} \\right)} + 9 g \\sin{\\left(\\alpha_{1} \\right)}\\right)}{d \\left(9 \\cos{\\left(2 \\alpha_{2} \\right)} - 23\\right)}$" ], "text/plain": [ " ⎛ 2 2 2 \n", " 3⋅⎝- 4⋅d⋅sin(α₂)⋅α₁̇ - 8⋅d⋅sin(α₂)⋅α₁̇⋅α₂̇ - 4⋅d⋅sin(α₂)⋅α₂̇ - 3⋅d⋅sin(2⋅α₂)⋅α₁̇ - 3⋅g⋅sin\n", "α₁̈ = ────────────────────────────────────────────────────────────────────────────────────────────\n", " d⋅(9⋅cos(2⋅α₂) - 23) \n", "\n", " ⎞\n", "(α₁ + 2⋅α₂) + 9⋅g⋅sin(α₁)⎠\n", "──────────────────────\n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/latex": [ "$\\displaystyle \\ddot{\\alpha}_{2} = \\frac{3 \\cdot \\left(20 d \\sin{\\left(\\alpha_{2} \\right)} \\dot{\\alpha}_{1}^{2} + 8 d \\sin{\\left(\\alpha_{2} \\right)} \\dot{\\alpha}_{1} \\dot{\\alpha}_{2} + 4 d \\sin{\\left(\\alpha_{2} \\right)} \\dot{\\alpha}_{2}^{2} + 6 d \\sin{\\left(2 \\alpha_{2} \\right)} \\dot{\\alpha}_{1}^{2} + 6 d \\sin{\\left(2 \\alpha_{2} \\right)} \\dot{\\alpha}_{1} \\dot{\\alpha}_{2} + 3 d \\sin{\\left(2 \\alpha_{2} \\right)} \\dot{\\alpha}_{2}^{2} - 9 g \\sin{\\left(\\alpha_{1} - \\alpha_{2} \\right)} + 7 g \\sin{\\left(\\alpha_{1} + \\alpha_{2} \\right)} + 3 g \\sin{\\left(\\alpha_{1} + 2 \\alpha_{2} \\right)} - 9 g \\sin{\\left(\\alpha_{1} \\right)}\\right)}{d \\left(9 \\cos{\\left(2 \\alpha_{2} \\right)} - 23\\right)}$" ], "text/plain": [ " ⎛ 2 2 2 \n", " 3⋅⎝20⋅d⋅sin(α₂)⋅α₁̇ + 8⋅d⋅sin(α₂)⋅α₁̇⋅α₂̇ + 4⋅d⋅sin(α₂)⋅α₂̇ + 6⋅d⋅sin(2⋅α₂)⋅α₁̇ + 6⋅d⋅sin(\n", "α₂̈ = ────────────────────────────────────────────────────────────────────────────────────────────\n", " d⋅(9⋅c\n", "\n", " 2 \n", "2⋅α₂)⋅α₁̇⋅α₂̇ + 3⋅d⋅sin(2⋅α₂)⋅α₂̇ - 9⋅g⋅sin(α₁ - α₂) + 7⋅g⋅sin(α₁ + α₂) + 3⋅g⋅sin(α₁ + 2⋅α₂) - 9⋅\n", "──────────────────────────────────────────────────────────────────────────────────────────────────\n", "os(2⋅α₂) - 23) \n", "\n", " ⎞\n", "g⋅sin(α₁)⎠\n", "───\n", " " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sol = lagrange_eq_solve(Lterms, q=[α1, α2], Qnc=None)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Forces on the pendulum**\n", "\n", "We can see that besides the terms proportional to gravity $g$, there are three types of forces in the equations, two of these forces we already saw in the solution of the double pendulum employing generalized coordinates in the segment space: forces proportional to angular velocity squared $\\dot{\\theta}_i^2$ (now proportional to $\\dot{\\alpha}_i^2$) and forces proportional to the angular acceleration $\\ddot{\\theta}_i$ (now proportional to $\\ddot{\\alpha}_i$). These are the centripetal forces and tangential forces. \n", "A new type of force appeared explicitly in the equations when we employed generalized coordinates in the joint space: forces proportional to the product of the two angular velocities in joint space $\\dot{\\alpha}_1\\dot{\\alpha}_2$. These are the force of Coriolis." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example: Mass attached to a spring on a horizontal plane\n", "\n", "
\"mass-spring
\n", "\n", "Let's solve the exercise 13.1.7 of Ruina and Pratap (2019): \n", "\"Two ice skaters whirl around one another. They are connected by a linear elastic cord whose center is stationary in space. We wish to consider the motion of one of the skaters by modeling her as a mass m held by a cord that exerts k Newtons for each meter it is extended from the central position. \n", "a) Draw a free-body diagram showing the forces that act on the mass is at an arbitrary position. \n", "b) Write the differential equations that describe the motion.\"\n", "\n", "Let's solve item b using Lagrangian mechanics.\n", "\n", "To calculate the potential and kinetic energy of the system, we will need to calculate the position and velocity of the mass. It's convenient to use as generalized coordinates, the radial position $r$ and the angle $\\theta$.\n", "\n", "Using Sympy, declaring our parameters and coordinates:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:24.096976Z", "start_time": "2021-03-31T15:29:24.094407Z" } }, "outputs": [], "source": [ "t = Symbol('t')\n", "m, k = symbols('m, k', positive=True)\n", "r, θ = dynamicsymbols('r, theta')" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2020-05-26T01:49:52.460918Z", "start_time": "2020-05-26T01:49:52.456473Z" } }, "source": [ "The position and velocity of the skater are:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:24.215194Z", "start_time": "2021-03-31T15:29:24.097999Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle x = r \\cos{\\left(\\theta \\right)}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle y = r \\sin{\\left(\\theta \\right)}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\dot{x} = - r \\sin{\\left(\\theta \\right)} \\dot{\\theta} + \\cos{\\left(\\theta \\right)} \\dot{r}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\dot{y} = r \\cos{\\left(\\theta \\right)} \\dot{\\theta} + \\sin{\\left(\\theta \\right)} \\dot{r}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x, y = r*cos(θ), r*sin(θ)\n", "xd, yd = x.diff(t), y.diff(t)\n", "\n", "printeq(r'x', x)\n", "printeq(r'y', y)\n", "printeq(r'\\dot{x}', xd)\n", "printeq(r'\\dot{y}', yd)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So, the kinetic and potential energies of the skater are:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:24.379268Z", "start_time": "2021-03-31T15:29:24.216110Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle T=\\frac{m \\left(\\left(- r \\sin{\\left(\\theta \\right)} \\dot{\\theta} + \\cos{\\left(\\theta \\right)} \\dot{r}\\right)^{2} + \\left(r \\cos{\\left(\\theta \\right)} \\dot{\\theta} + \\sin{\\left(\\theta \\right)} \\dot{r}\\right)^{2}\\right)}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle V=\\frac{k r^{2}}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle T = \\frac{m \\left(r^{2} \\dot{\\theta}^{2} + \\dot{r}^{2}\\right)}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle V = \\frac{k r^{2}}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "T = m*(xd**2 + yd**2)/2\n", "V = (k*r**2)/2\n", "\n", "display(Math('T=' + mlatex(T)))\n", "display(Math('V=' + mlatex(V)))\n", "\n", "printeq('T', T)\n", "printeq('V', V)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Where we considered the equilibrium length of the spring as zero.\n", "\n", "The Lagrangian function is:" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:24.516914Z", "start_time": "2021-03-31T15:29:24.380211Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\mathcal{L} = - \\frac{k r^{2}}{2} + \\frac{m \\left(r^{2} \\dot{\\theta}^{2} + \\dot{r}^{2}\\right)}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "L = T - V\n", "\n", "printeq(r'\\mathcal{L}', L)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And the derivatives are:" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:24.798207Z", "start_time": "2021-03-31T15:29:24.517711Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{Terms of the Euler-Lagrange equations:}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\text{For generalized coordinate}\\;r:$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial r} = \\left(- k + m \\dot{\\theta}^{2}\\right) r$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{r}} = m \\dot{r}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\mathrm d}{\\mathrm{dt}}\\left({\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{r}}}\\right) = m \\ddot{r}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\text{For generalized coordinate}\\;\\theta:$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial \\theta} = 0$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{\\theta}} = m r^{2} \\dot{\\theta}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\mathrm d}{\\mathrm{dt}}\\left({\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{\\theta}}}\\right) = m \\left(r \\ddot{\\theta} + 2 \\dot{r} \\dot{\\theta}\\right) r$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Lterms = lagrange_terms(L, [r, θ])" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2020-05-26T01:50:59.509920Z", "start_time": "2020-05-26T01:50:59.505181Z" } }, "source": [ "Finally, the EOM are:" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:24.833505Z", "start_time": "2021-03-31T15:29:24.799179Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{Euler-Lagrange equations (EOM):}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad m \\ddot{r} + \\left(k - m \\dot{\\theta}^{2}\\right) r = 0$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad m \\left(r \\ddot{\\theta} + 2 \\dot{r} \\dot{\\theta}\\right) r = 0$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "lagrange_eq(Lterms)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In Ruina and Pratap's book they give as solution the equation: $2r\\dot{r}\\dot{\\theta} + r^3\\ddot{\\theta}=0$, but using dimensional analysis we can check the book's solution is not correct." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Generalized forces\n", "\n", "How non-conservative forces are treated in the Lagrangian Mechanics is different than in Newtonian mechanics. \n", "Newtonian mechanics consider the forces (and moment of forces) acting on each body (via FBD) and write down the equations of motion for each body/coordinate. \n", "In Lagrangian Mechanics, we consider the forces (and moment of forces) acting on each generalized coordinate. For such, the effects of the non-conservative forces have to be calculated in the direction of each generalized coordinate, these will be the generalized forces. \n", "\n", "A robust approach to determine the generalized forces on each generalized coordinate is to compute the work done by the forces to produce a small variation of the system on the direction of the generalized coordinate. \n", "\n", "
\"pendulum\"
\n", "\n", "For example, consider a pendulum with a massless rod of length $d$ and a mass $m$ at the extremity swinging in a plane forming the angle $\\theta$ with the vertical. \n", "An external force acts on the tip of the pendulum at the horizontal direction. \n", "The pendulum cord is inextensible and the tip of the pendulum can only move along the arc of a circumference with radius $d$. \n", "\n", "The work done by this force to produce a small variation $\\delta \\theta$ is:\n", "

\n", "\n", "\\begin{equation}\\begin{array}{l}\n", "\\delta W_{NC} = \\vec{F} \\cdot \\delta \\vec{r} \\\\\n", "\\delta W_{NC} = F d \\cos(\\theta) \\delta \\theta \n", "\\end{array}\n", "\\label{}\n", "\\end{equation}\n", "\n", " \n", "We now reexpress the work as the product of the corresponding generalized force $Q_{NC}$ and the generalized coordinate:\n", "

\n", "\n", "\\begin{equation}\n", "\\delta W_{NC} = Q_{NC} \\delta \\theta\n", "\\label{}\n", "\\end{equation}\n", "\n", "\n", "And comparing the last two equations, the generalized force (in fact, a moment of force) is:\n", "

\n", "\n", "\\begin{equation}\n", "Q_{NC} = F d \\cos(\\theta)\n", "\\label{}\n", "\\end{equation}\n", "\n", "\n", "Note that the work done by definition was expressed in Cartesian coordinates as the scalar product between vectors $\\vec F$ and $\\delta \\vec{r}$ and after the scalar product was evaluated we end up with the work done expressed in terms of the generalized coordinate. This is somewhat similar to the calculation of kinetic and potential energy, these quantities are typically expressed first in terms of Cartesian coordinates, which in turn are expressed in terms of the generalized coordinates, so we end up with only generalized coordinates. \n", "Also note, we employ the term generalized force to refer to a non-conservative force or moment of force expressed in the generalized coordinate.\n", " \n", "If the force had components on both directions, we would calculate the work computing the scalar product between the variation in displacement and the force, as usual. For example, consider a force $\\vec{F}=2\\hat{i}+7\\hat{j}$, the work done is:\n", "

\n", "\n", "\\begin{equation}\\begin{array}{l}\n", "\\delta W_{NC} = \\vec{F} \\cdot \\delta \\vec{r} \\\\\n", "\\delta W_{NC} = [2\\hat{i}+7\\hat{j}] \\cdot [d\\cos(\\theta) \\delta \\theta \\hat{i} + d\\sin(\\theta) \\delta \\theta \\hat{j}] \\\\\n", "\\delta W_{NC} = d[2\\cos(\\theta) + 7\\sin(\\theta)] \\delta \\theta \n", "\\end{array}\n", "\\label{}\n", "\\end{equation}\n", "\n", "\n", "Finally, the generalized force (a moment of force) is:\n", "

\n", "\n", "\\begin{equation}\n", "Q_{NC} = d[2\\cos(\\theta) + 7\\sin(\\theta)]\n", "\\label{}\n", "\\end{equation}\n", " \n", "\n", "For a system with $N$ generalized coordinates and $n$ non-conservative forces, to determine the generalized force at each generalized coordinate, we would compute the work as the sum of the works done by each force at each small variation:\n", "

\n", "\n", "\\begin{equation}\n", "\\delta W_{NC} = \\sum\\limits_{j=1}^n F_{j} \\cdot \\delta x_j(\\delta q_1, \\dotsc, \\delta q_N ) = \\sum\\limits_{i=1}^N Q_{i} \\delta q_i\n", "\\label{}\n", "\\end{equation}\n", "\n", "\n", "For simpler problems, in which we can separately analyze each non-conservative force acting on each generalized coordinate, the work done by each force on a given generalized coordinate can be calculated by making all other coordinates immovable ('frozen') and then sum the generalized forces. \n", "\n", "The next examples will help to understand how to calculate the generalized force." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example: Simple pendulum on moving cart\n", "\n", "

\"cart
\n", "\n", "Consider a simple pendulum with massless rod of length $d$ and mass $m$ at the extremity of the rod forming an angle $\\theta$ with the vertical direction under the action of gravity. The pendulum swings freely from a cart with mass $M$ that moves at the horizontal direction pushed by a force $F_x$. \n", "\n", "Let's use the Lagrangian mechanics to derive the EOM for the system.\n", "\n", "We will model the cart as a particle moving along the axis $x$, i.e., $y=0$. The system has two degrees of freedom and because of the constraints introduced by the constant length of the rod and the motion the cart can perform, good generalized coordinates to describe the configuration of the system are $x$ and $\\theta$. \n", "\n", "**Determination of the generalized force** \n", "The force $F$ acts along the same direction of the generalized coordinate $x$, this means $F$ contributes entirely to the work done at the direction $x$. At this generalized coordinate, the generalized force due to $F$ is $F$. \n", "At the generalized coordinate $θ$, if we 'freeze' the generalized coordinate $x$ and let $F$ act on the system, there is no movement at the generalized coordinate $θ$, so no work is done. At this generalized coordinate, the generalized force due to $F$ is $0$.\n", "\n", "Let's now use Sympy to determine the EOM." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The positions of the cart (c) and of the pendulum tip (p) are: " ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:24.836767Z", "start_time": "2021-03-31T15:29:24.834292Z" } }, "outputs": [], "source": [ "t = Symbol('t')\n", "M, m, d = symbols('M, m, d', positive=True)\n", "x, y, θ, Fx = dynamicsymbols('x, y, theta, F_x')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The positions of the cart (c) and of the pendulum tip (p) are: " ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:24.897337Z", "start_time": "2021-03-31T15:29:24.837588Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle x_c = x$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle y_c = 0$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle x_p = d \\sin{\\left(\\theta \\right)} + x$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle y_p = - d \\cos{\\left(\\theta \\right)}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xc, yc = x, y*0\n", "xcd, ycd = xc.diff(t), yc.diff(t)\n", "\n", "xp, yp = x + d*sin(𝜃), -d*cos(θ)\n", "xpd, ypd = xp.diff(t), yp.diff(t)\n", "\n", "printeq(r'x_c', xc)\n", "printeq(r'y_c', yc)\n", "\n", "printeq(r'x_p', xp)\n", "printeq(r'y_p', yp)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The velocities of the cart and of the pendulum are: " ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:24.946897Z", "start_time": "2021-03-31T15:29:24.898190Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\dot{x}_c = \\dot{x}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\dot{y}_c = 0$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\dot{x}_p = d \\cos{\\left(\\theta \\right)} \\dot{\\theta} + \\dot{x}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\dot{y}_p = d \\sin{\\left(\\theta \\right)} \\dot{\\theta}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "printeq(r'\\dot{x}_c', xcd)\n", "printeq(r'\\dot{y}_c', ycd)\n", "\n", "printeq(r'\\dot{x}_p', xpd)\n", "printeq(r'\\dot{y}_p', ypd)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The total kinetic and total potential energies and the Lagrangian of the system are:" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:25.548594Z", "start_time": "2021-03-31T15:29:24.947781Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle T = \\frac{M \\dot{x}^{2}}{2} + \\frac{m \\left(d^{2} \\dot{\\theta}^{2} + 2 d \\cos{\\left(\\theta \\right)} \\dot{\\theta} \\dot{x} + \\dot{x}^{2}\\right)}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle V = - d g m \\cos{\\left(\\theta \\right)}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\mathcal{L} = \\frac{M \\dot{x}^{2}}{2} + d g m \\cos{\\left(\\theta \\right)} + \\frac{m \\left(d^{2} \\dot{\\theta}^{2} + 2 d \\cos{\\left(\\theta \\right)} \\dot{\\theta} \\dot{x} + \\dot{x}^{2}\\right)}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "T = M*(xcd**2 + ycd**2)/2 + m*(xpd**2 + ypd**2)/2\n", "\n", "V = M*g*yc + m*g*yp\n", "\n", "printeq('T', T)\n", "printeq('V', V)\n", "\n", "L = T - V\n", "\n", "printeq(r'\\mathcal{L}', L)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And the derivatives are:" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:26.616189Z", "start_time": "2021-03-31T15:29:25.549513Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{Terms of the Euler-Lagrange equations:}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\text{For generalized coordinate}\\;x:$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial x} = 0$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{x}} = M \\dot{x} + m \\left(d \\cos{\\left(\\theta \\right)} \\dot{\\theta} + \\dot{x}\\right)$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\mathrm d}{\\mathrm{dt}}\\left({\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{x}}}\\right) = M \\ddot{x} + m \\left(- d \\sin{\\left(\\theta \\right)} \\dot{\\theta}^{2} + d \\cos{\\left(\\theta \\right)} \\ddot{\\theta} + \\ddot{x}\\right)$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\text{For generalized coordinate}\\;\\theta:$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial \\theta} = - d m \\left(g + \\dot{\\theta} \\dot{x}\\right) \\sin{\\left(\\theta \\right)}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{\\theta}} = d m \\left(d \\dot{\\theta} + \\cos{\\left(\\theta \\right)} \\dot{x}\\right)$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\mathrm d}{\\mathrm{dt}}\\left({\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{\\theta}}}\\right) = d m \\left(d \\ddot{\\theta} - \\sin{\\left(\\theta \\right)} \\dot{\\theta} \\dot{x} + \\cos{\\left(\\theta \\right)} \\ddot{x}\\right)$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Lterms = lagrange_terms(L, [x, θ])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, the EOM are:" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:26.913523Z", "start_time": "2021-03-31T15:29:26.617030Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{Euler-Lagrange equations (EOM):}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad M \\ddot{x} + m \\left(- d \\sin{\\left(\\theta \\right)} \\dot{\\theta}^{2} + d \\cos{\\left(\\theta \\right)} \\ddot{\\theta} + \\ddot{x}\\right) = F_{x}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad d m \\left(d \\ddot{\\theta} + g \\sin{\\left(\\theta \\right)} + \\cos{\\left(\\theta \\right)} \\ddot{x}\\right) = 0$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "lagrange_eq(Lterms, [Fx, 0])" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:30.815648Z", "start_time": "2021-03-31T15:29:26.914436Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{Euler-Lagrange equations (EOM):}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/latex": [ "$\\displaystyle \\ddot{x} = \\frac{d m \\sin{\\left(\\theta \\right)} \\dot{\\theta}^{2} + \\frac{g m \\sin{\\left(2 \\theta \\right)}}{2} + F_{x}}{M + m \\sin^{2}{\\left(\\theta \\right)}}$" ], "text/plain": [ " 2 g⋅m⋅sin(2⋅θ) \n", " d⋅m⋅sin(θ)⋅θ̇ + ──────────── + Fₓ\n", " 2 \n", "ẍ = ─────────────────────────────────\n", " 2 \n", " M + m⋅sin (θ) " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/latex": [ "$\\displaystyle \\ddot{\\theta} = \\frac{- M g \\sin{\\left(\\theta \\right)} - \\frac{d m \\sin{\\left(2 \\theta \\right)} \\dot{\\theta}^{2}}{2} - g m \\sin{\\left(\\theta \\right)} - F_{x} \\cos{\\left(\\theta \\right)}}{d \\left(M + m \\sin^{2}{\\left(\\theta \\right)}\\right)}$" ], "text/plain": [ " 2 \n", " d⋅m⋅sin(2⋅θ)⋅θ̇ \n", " -M⋅g⋅sin(θ) - ─────────────── - g⋅m⋅sin(θ) - Fₓ⋅cos(θ)\n", " 2 \n", "θ̈ = ──────────────────────────────────────────────────────\n", " ⎛ 2 ⎞ \n", " d⋅⎝M + m⋅sin (θ)⎠ " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sol = lagrange_eq_solve(Lterms, q=[x, θ], Qnc=[Fx, 0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that although the force $F_x$ acts solely on the cart, the acceleration of the pendulum $\\ddot{\\theta}$ is also dependent on $F$, as expected. \n", "\n", "[Clik here for solutions to this problem using the Newtonian and Lagrangian approaches and how this system of two coupled second order differential equations can be rearranged for its numerical solution](http://www.emomi.com/download/neumann/pendulum_cart.html)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example: Two masses and two springs under the influence of gravity\n", "\n", "
\"double
\n", "\n", "Consider a system composed by two masses $m_1,\\, m_2$ and two ideal springs (massless, lengths $\\ell_1,\\, \\ell_2$, and spring constants $k_1,\\,k_2$) attached in series under gravity and a force $F$ acting directly on $m_2$. \n", "\n", "We can model this system as composed by two particles with two degrees of freedom and we need two generalized coordinates to describe the system's configuration; two obvious options are: \n", "\n", " - ${y_1, y_2}$, positions of masses $m_1,\\, m_2$ w.r.t. ceiling (origin). \n", " - ${z_1, z_2}$, position of mass $m_1$ w.r.t. ceiling and position of mass $m_2$ w.r.t. mass $m_1$. \n", " \n", "The set ${y_1, y_2}$ is at an inertial reference frame, while the second set it's not. \n", "Let's find the EOM's using both sets of generalized coordinates and compare them.\n", "\n", "**Generalized forces** \n", "Using ${y_1, y_2}$, force $F$ acts on mass $m_2$ at the same direction of the generalized coordinate $y_2$. At this coordinate, the generalized force of $F$ is $F$. At the generalized coordinate $y_1$, if we 'freeze' the generalized coordinate $y_2$ and let $F$ act on the system, there is no movement at the generalized coordinate $y_1$ and no work is done. At this generalized coordinate, the generalized force due to $F$ is $0$. \n", "\n", "Using ${z_1, z_2}$, force $F$ acts on mass $m_2$ at the same direction of the generalized coordinate $z_2$. At this coordinate, the generalized force of $F$ is $F$. At the generalized coordinate $z_1$, if we 'freeze' the generalized coordinate $z_2$ and let $F$ act on the system, mass $m_1$ suffers the action of force $F$ at the generalized coordinate $y_1$. At this generalized coordinate, the generalized force due to $F$ is $F$.\n", "\n", "Sympy is our friend once again:" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:30.819730Z", "start_time": "2021-03-31T15:29:30.816691Z" } }, "outputs": [], "source": [ "t = Symbol('t')\n", "m1, m2, ℓ01, ℓ02, g, k1, k2 = symbols('m1, m2, ell01, ell02, g, k1, k2', positive=True) # \\ell\n", "y1, y2, F = dynamicsymbols('y1, y2, F')" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2020-05-26T04:57:42.581918Z", "start_time": "2020-05-26T04:57:42.568684Z" } }, "source": [ "The total kinetic and total potential energies of the system are:" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:30.898840Z", "start_time": "2021-03-31T15:29:30.820635Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle T = \\frac{m_{1} \\dot{y}_{1}^{2}}{2} + \\frac{m_{2} \\dot{y}_{2}^{2}}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle V = - g m_{1} y_{1} - g m_{2} y_{2} + \\frac{k_{1} \\left(\\ell_{01} - y_{1}\\right)^{2}}{2} + \\frac{k_{2} \\left(\\ell_{02} + y_{1} - y_{2}\\right)^{2}}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "y1d, y2d = y1.diff(t), y2.diff(t)\n", "\n", "T = (m1*y1d**2)/2 + (m2*y2d**2)/2\n", "V = (k1*(y1-ℓ01)**2)/2 + (k2*((y2-y1)-ℓ02)**2)/2 - m1*g*y1 - m2*g*y2\n", "\n", "printeq(r'T', T)\n", "printeq(r'V', V)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For sake of clarity, let's consider the resting lengths of the springs to be zero:" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:30.938150Z", "start_time": "2021-03-31T15:29:30.899786Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle V = - g m_{1} y_{1} - g m_{2} y_{2} + \\frac{k_{1} y_{1}^{2}}{2} + \\frac{k_{2} \\left(y_{1} - y_{2}\\right)^{2}}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "V = V.subs([(ℓ01, 0), (ℓ02, 0)])\n", "printeq(r'V', V)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Lagrangian function is:" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:30.977869Z", "start_time": "2021-03-31T15:29:30.939022Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\mathcal{L} = g m_{1} y_{1} + g m_{2} y_{2} - \\frac{k_{1} y_{1}^{2}}{2} - \\frac{k_{2} \\left(y_{1} - y_{2}\\right)^{2}}{2} + \\frac{m_{1} \\dot{y}_{1}^{2}}{2} + \\frac{m_{2} \\dot{y}_{2}^{2}}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "L = T - V\n", "printeq(r'\\mathcal{L}', L)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And the derivatives are:" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:31.104113Z", "start_time": "2021-03-31T15:29:30.978759Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{Terms of the Euler-Lagrange equations:}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\text{For generalized coordinate}\\;y_{1}:$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial y_{1}} = g m_{1} - k_{1} y_{1} - k_{2} \\left(y_{1} - y_{2}\\right)$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{y_{1}}} = m_{1} \\dot{y}_{1}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\mathrm d}{\\mathrm{dt}}\\left({\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{y_{1}}}}\\right) = m_{1} \\ddot{y}_{1}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\text{For generalized coordinate}\\;y_{2}:$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial y_{2}} = g m_{2} + k_{2} \\left(y_{1} - y_{2}\\right)$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{y_{2}}} = m_{2} \\dot{y}_{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\mathrm d}{\\mathrm{dt}}\\left({\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{y_{2}}}}\\right) = m_{2} \\ddot{y}_{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Lterms = lagrange_terms(L, [y1, y2])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, the EOM are:" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:31.145252Z", "start_time": "2021-03-31T15:29:31.104993Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{Euler-Lagrange equations (EOM):}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad - g m_{1} + k_{1} y_{1} + k_{2} \\left(y_{1} - y_{2}\\right) + m_{1} \\ddot{y}_{1} = 0$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad - g m_{2} - k_{2} \\left(y_{1} - y_{2}\\right) + m_{2} \\ddot{y}_{2} = F$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "lagrange_eq(Lterms, [0, F])" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:31.960309Z", "start_time": "2021-03-31T15:29:31.146095Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{Euler-Lagrange equations (EOM):}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAARwAAAAuCAYAAAD6MabyAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAI+klEQVR4Ae2d7XEUORCG15QDoHwZ+DI4III7ZwBHBIYMTPmf/7kgAyACDjIwF8EBGRwZ4HMGvvfRqoVmvN7Vrnc80mx3lVYajaRpvWr1tL5m966vr2dO00Dg7OzsoWryUe6x3KWuf51Gzcpr4RjMZjVj8KC8KT1l7QhI0K7kjsTnd7nPtfM7BH+OQVA41cqBK5whpH78Mn8TCxfjszEqB81iIKX5h9yLLaBXHQaucLbQqjUVgbBGfnbSwqHuE8CAoTFuY6oVA1c4GzdptRkZUmFSX1XL4fCMOQazWZUY7A/f9uM8QR3uqZ78RO5H5OCTfEzVd1H7Y25y/1juQO6lHGlpqAuleSNHmudyEOHXiqvdcsDCSTyKX8OBN+YrXRcpIqUjPWY9E89fdf1OfqB47738ZxZXme8YSNbVJtXJwSQtHHWE1wL7VD4d7I3CKJuvctZBjmI8neq93NMsLWlQLHS2gxj/SuG3cqwAVUvilfqgGMP8ja5RNhC8/xkd1yUEfmBHWeCZE2VZ2Xn86GHHIAwpq5WDySmc2MlOJPm/m/QrjlUbGgHLBc1vE6qHxCuOjmWEtQMRn94QuiaeMmom6gZ9jvWcyUfZwnfxypXyoLT+kYOw+C5D6OcPcTk2P++MH3IM5tYNLVGdHOyPLx9b5wCL5ZM6zZWVHDsQl3Q+9qcwx0EnROEwlMqJzgalIcT8cvZI/rcYTl4shzf+S4VJs5Jinr+VcB0F9kz5bjy/9zAUAfWm031R+qAUYr4Ob5GH2/j+nj2LNOdyOVF+iltRVp4vhWOe0TCIzz+NDCEH0LHiTW7uAwMsT1OQgYH4E1564qUvm9z+pniz1PM8ebhIDraJQUFZgb9JKRxVGmVBJ/6Qo68wjYqS4S1vFBpacf03NY1Fo5rgWXo6XkcJxeeZwPDcIopldxRAUcbVieCFOlL2Iz3nrdwNJbWK78jfTD7lUa9U75iXOFNmYN4cBuKZYXPq0ArT+Rl2h82Sug7tL39IDNLz9dxEeibD1UP5ueWd7hcEiuRA5WwNg1VlGc9TG1I9jhXrd7JFQwAmg/vpyE5jdZRQJnQI5UzXQbnIRzEhFLkiI8m9U+SJN/W5wggy801M9prFlnhSXCnfvEn7yhd8UN4BuzXKSs8fKiBeaJciDJTuhdJTFyPmqejkfbwcg/nc51I5EHZFeE5N4QThkdAkBRCFEMGyeZuQRj+LFIsJbD8tHRjAMbMRaKyd2sh4MmX5JTIIvzPxfbIBw+RNWMb8i5T3BkUPkmUdDGhTw2gZM47BXImvkoMiPPeXId3gvb/EM8MI3lQGEHM6EPcCcV8BlEt/6BUEVvet084zzNNaHHM1rFrVRrcNBQ2HXzZgmLwHlk/1RknjEK4aqRgD1SUNE2NFqFM+b2P1cwzmL52lclCK56QUjiqNqY/QMTZllYVOdimHIF3JNwpvLcX1h1Qoob4gkgdzm0lbrIQwrCKyMoL3c+OJ+sqhGFGQ/+b3LE2BT37221B/9ijZYVBTvgVF3GuSjTBQ/RhGMW+yaF7NMdD+LWFTLAfL8NzLT4srYZg1l28TZwgae1RM0HTZFol3JgJZsRnsrayyEVaUXFM4rcu30iMPbJ680THXLasWKRLfvHyQe14o+UtpIYtKMzgGEcu7TBov5P22yC1jsBTPvoWD2ZRMJ4XJnF/fxvPo8QKNt9SpXFrajHHEH4/OYGMMCLtOx9I11gObISeDpeqEfLM5FKt4Fq/xwzBU/lgYoPhWKj94vivFOm8Fg1VlwWtH4ShDZ32/f33Xyg2cH2XD/EIg8U4HYf4GMPtDp3ki/12GAFYbb34jsORYCHuZmifVw97EyAcvJQgrmOGD0SgYiJ97GbJuE4PCsmadIZWh3KKvCqNsEBibu0HhfByy8SLIPJNnI7Qskf9QPH61VMK30tDZDuTAkaHiQixLylLe6kh8/yemqFuHFL9nEY5BsPpK5WAlnuA6GYVjQuK+I+AI1ItAGFJJk6PpWz0ZXC+6zpkj4Ah0EAgKRzF2shrzKYzVs1TsTSH+TiSlxnwAQ491iM12nXmldTJ7WkfAEagLgX11aOYeBj8ZrOcMtixdF6TOjSPgCNyGABZOvrsSa+a8lxirJMVJcTD8Il3x6eheeX7pCDgCO4oAFs4VdZePYkGZpJ22isP6IS4s08VrGxYRXw2JN/+/m2pawxlxBBYjgIVjVHQqVomZV1l7Tkd5Bp3DUflpOdMq5L4j4AjUhUCucNgIZQf9jEt2YG5lE5IUgs/hGKruOwI7isCDrN4dZSMFwdAJd5Gl8aAj4Ag4AhsjkFs4a50I3fiJntERcAR2FoGkcGTRMHmc9rzomoNr4aNTO4uOV9wRcAS2ikAYUqFc5PiMQyCFWYFi53FaDp/f8V9HwBFwBDZHwOZwWHX6kBUzqZPBWb086Ag4AiMiEA5vyqJB4Uz2ZPCI+PqjHQFHIEPAT4tnYHjQEXAEhkXAhlTDPsVLdwQcAUdACKRVKkfDERgKAQ3Z2c/FMZkncnyilOE7G0H5MDubS/kL5jdypHkuBxFmMWMrG09Dif4zOgJu4YzeBDvBwBEKRTVl9ZMFCT7Mz6c9iWMrBoqFVdGDGM+eMI7C8Gd+ThNCwC2cCTVmjVWRAsG6sd3qhwrzdYL8E6xYO9BDxefWDPE3DggrDXH+tQIQa5Bc4TTYaI2xzF/08B9ZKAoUTv9MHUMnKH2lYH4Z/iOq8/F7lUFaFBh0QxnNo/23ZgR8SFVz60yAN5RNrEZQFLrOrRhuMYfDjnZLF5MHK6aTVmlIh3XUOfdnGdyvHwFXOPW30VQ4ZDK4Y7HEiqGI+oqFOCyY8Dc1UjJuzUSwWvdc4bTegu3wv0ixoEgYZtkcj9WGYVc4xydlw33mbJwmgIArnAk0Yu1ViEoD5ZIfn4HtoEh0v2PhKJ60FsenbPvzO+R1ahABVzgNNlqDLGOl5N/OtiqgWBYpE75UwKrVifwwrLIM7reNgB9taLv9dpJ7KSLO/rF3h38EdWoIAbdwGmosZ9URaB0Bt3Bab8Ed4l8WDUMzJpSZgGZPDkvk1f+Xu3h0igj8D0f3RdDgndLYAAAAAElFTkSuQmCC", "text/latex": [ "$\\displaystyle \\ddot{y}_{1} = \\frac{g m_{1} - k_{1} y_{1} - k_{2} y_{1} + k_{2} y_{2}}{m_{1}}$" ], "text/plain": [ " g⋅m₁ - k₁⋅y₁ - k₂⋅y₁ + k₂⋅y₂\n", "y₁̈ = ────────────────────────────\n", " m₁ " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/latex": [ "$\\displaystyle \\ddot{y}_{2} = \\frac{g m_{2} + k_{2} y_{1} - k_{2} y_{2} + F}{m_{2}}$" ], "text/plain": [ " g⋅m₂ + k₂⋅y₁ - k₂⋅y₂ + F\n", "y₂̈ = ────────────────────────\n", " m₂ " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "lagrange_eq_solve(Lterms, [y1, y2], [0, F]);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Same problem, but with the other set of coordinates**\n", "\n", "Using ${z_1, z_2}$ as the position of mass $m_1$ w.r.t. the ceiling and the position of mass $m_2$ w.r.t. the mass $m_1$, the solution is:" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:32.048496Z", "start_time": "2021-03-31T15:29:31.961555Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle T = \\frac{m_{1} \\dot{z}_{1}^{2}}{2} + \\frac{m_{2} \\left(\\dot{z}_{1} + \\dot{z}_{2}\\right)^{2}}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle V = - g m_{1} z_{1} - g m_{2} \\left(z_{1} + z_{2}\\right) + \\frac{k_{1} \\left(\\ell_{01} - z_{1}\\right)^{2}}{2} + \\frac{k_{2} \\left(\\ell_{02} - z_{2}\\right)^{2}}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "z1, z2 = dynamicsymbols('z1, z2')\n", "z1d, z2d = z1.diff(t), z2.diff(t)\n", "\n", "T = (m1*z1d**2)/2 + (m2*(z1d + z2d)**2)/2\n", "V = (k1*(z1-ℓ01)**2)/2 + (k2*(z2-ℓ02)**2)/2 - m1*g*z1 - m2*g*(z1+z2)\n", "\n", "printeq('T', T)\n", "printeq('V', V)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For sake of clarity, let's consider the resting lengths of the springs to be zero:" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:32.078666Z", "start_time": "2021-03-31T15:29:32.049366Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle V = - g m_{1} z_{1} - g m_{2} \\left(z_{1} + z_{2}\\right) + \\frac{k_{1} z_{1}^{2}}{2} + \\frac{k_{2} z_{2}^{2}}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "V = V.subs([(ℓ01, 0), (ℓ02, 0)])\n", "printeq(r'V', V)" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:32.120601Z", "start_time": "2021-03-31T15:29:32.079601Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\mathcal{L} = g m_{1} z_{1} + g m_{2} \\left(z_{1} + z_{2}\\right) - \\frac{k_{1} z_{1}^{2}}{2} - \\frac{k_{2} z_{2}^{2}}{2} + \\frac{m_{1} \\dot{z}_{1}^{2}}{2} + \\frac{m_{2} \\left(\\dot{z}_{1} + \\dot{z}_{2}\\right)^{2}}{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "L = T - V\n", "printeq(r'\\mathcal{L}', L)" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:32.315111Z", "start_time": "2021-03-31T15:29:32.121512Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{Terms of the Euler-Lagrange equations:}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\text{For generalized coordinate}\\;z_{1}:$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial z_{1}} = g m_{1} + g m_{2} - k_{1} z_{1}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{z_{1}}} = m_{1} \\dot{z}_{1} + m_{2} \\left(\\dot{z}_{1} + \\dot{z}_{2}\\right)$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\mathrm d}{\\mathrm{dt}}\\left({\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{z_{1}}}}\\right) = m_{1} \\ddot{z}_{1} + m_{2} \\left(\\ddot{z}_{1} + \\ddot{z}_{2}\\right)$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\text{For generalized coordinate}\\;z_{2}:$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial z_{2}} = g m_{2} - k_{2} z_{2}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{z_{2}}} = m_{2} \\left(\\dot{z}_{1} + \\dot{z}_{2}\\right)$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad\\dfrac{\\mathrm d}{\\mathrm{dt}}\\left({\\dfrac{\\partial\\mathcal{L}}{\\partial\\dot{z_{2}}}}\\right) = m_{2} \\left(\\ddot{z}_{1} + \\ddot{z}_{2}\\right)$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\text{Euler-Lagrange equations (EOM):}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad - g m_{1} - g m_{2} + k_{1} z_{1} + m_{1} \\ddot{z}_{1} + m_{2} \\left(\\ddot{z}_{1} + \\ddot{z}_{2}\\right) = F$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\quad - g m_{2} + k_{2} z_{2} + m_{2} \\left(\\ddot{z}_{1} + \\ddot{z}_{2}\\right) = F$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Lterms = lagrange_terms(L, [z1, z2])\n", "lagrange_eq(Lterms, [F, F])" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:33.140999Z", "start_time": "2021-03-31T15:29:32.315986Z" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{Euler-Lagrange equations (EOM):}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/latex": [ "$\\displaystyle \\ddot{z}_{1} = \\frac{g m_{1} - k_{1} z_{1} + k_{2} z_{2}}{m_{1}}$" ], "text/plain": [ " g⋅m₁ - k₁⋅z₁ + k₂⋅z₂\n", "z₁̈ = ────────────────────\n", " m₁ " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/latex": [ "$\\displaystyle \\ddot{z}_{2} = \\frac{m_{1} \\left(- k_{2} z_{2} + F\\right) + m_{2} \\left(k_{1} z_{1} - k_{2} z_{2}\\right)}{m_{1} m_{2}}$" ], "text/plain": [ " m₁⋅(-k₂⋅z₂ + F) + m₂⋅(k₁⋅z₁ - k₂⋅z₂)\n", "z₂̈ = ────────────────────────────────────\n", " m₁⋅m₂ " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "lagrange_eq_solve(Lterms, [z1, z2], [F, F]);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The solutions using the two sets of coordinates seem different; the reader is invited to verify that in fact they are the same (remember that $y_1 = z_1,\\, y_2 = z_1+z_2,\\, \\ddot{y}_2 = \\ddot{z}_1+\\ddot{z}_2$)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example: Mass-spring-damper system with gravity\n", "\n", "
\"mass-spring-damper
\n", "\n", "Consider a mass-spring-damper system under the action of the gravitational force and an external force acting on the mass. \n", "The massless spring has a stiffness coefficient $k$ and length at rest $\\ell_0$. \n", "The massless damper has a damping coefficient $b$. \n", "The gravitational force acts downwards and it is negative (see figure). \n", "The system has one degree of freedom and we need only one generalized coordinate ($y$) to describe the system's configuration. \n", "\n", "There are two non-conservative forces acting at the direction of the generalized coordinate: the external force F and the force of the damper. By calculating the work done by each of these forces, the total generalized force is: $Q_{NC} = F_0 \\cos(\\omega t) - b\\dot y$.\n", "\n", "Let's use the Lagrangian mechanics to derive the equations of motion for the system.\n", "\n", "The kinetic energy of the system is:\n", "\n", "\\begin{equation}\n", "T = \\frac{1}{2} m \\dot y^2\n", "\\end{equation}\n", "\n", "The potential energy of the system is:\n", "\n", "\\begin{equation}\n", "V = \\frac{1}{2} k (y-\\ell_0)^2 + m g y\n", "\\end{equation}\n", "\n", "The Lagrangian function is:\n", "\n", "\\begin{equation} \n", "\\mathcal{L} = \\frac{1}{2} m \\dot y^2 - \\frac{1}{2} k (y-\\ell_0)^2 - m g y\n", "\\end{equation}\n", "\n", "The derivatives of the Lagrangian w.r.t. $y$ and $t$ are:\n", "\n", "\\begin{equation}\\begin{array}{rcl}\n", "\\dfrac{\\partial \\mathcal{L}}{\\partial y} &=& -k(y-\\ell_0) - mg \\\\\n", "\\dfrac{\\partial \\mathcal{L}}{\\partial \\dot{y}} &=& m \\dot{y} \\\\\n", "\\dfrac{\\mathrm d }{\\mathrm d t}\\left( {\\dfrac{\\partial \\mathcal{L}}{\\partial \\dot{y}}} \\right) &=& m\\ddot{y} \n", "\\end{array}\\end{equation}\n", "\n", "Substituting all these terms in the Euler-Lagrange equation, results in:\n", "\n", "\\begin{equation}\n", "m\\ddot{y} + b\\dot{y} + k(y-\\ell_0) + mg = F_0 \\cos(\\omega t)\n", "\\end{equation}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Numerical solution of the equation of motion for mass-spring-damper system\n", "\n", "Let's solve numerically the differential equation for the mass-spring-damper system with gravity using the function for the Euler's method we implemented before. We just have to write a new function for calculating the derivative of velocity:" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:33.339111Z", "start_time": "2021-03-31T15:29:33.142074Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA8UAAAF4CAYAAAB9+VvuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAADrmElEQVR4nOydd3gUxRvHv5dCCAQIvZfQm/TeO0hHkCodAfWHgqCIiHSUJqiIgigIioJIUZHee++9hN5DCJ2Um98fL5vZy5Xs7e2VhPfzPPfc3paZ2b3d2XnnbSYhhADDMAzDMAzDMAzDvIL4ebsBDMMwDMMwDMMwDOMtWChmGIZhGIZhGIZhXllYKGYYhmEYhmEYhmFeWVgoZhiGYRiGYRiGYV5ZWChmGIZhGIZhGIZhXllYKGYYhmEYhmEYhmFeWVgoZhiGYRiGYRiGYV5ZWChmGIZhGIZhGIZhXllYKGYYhmEYhmEYhmFeWVgoZhgPkS9fPuTLl8/bzUjWLF68GOXLl0eaNGlgMpkwcOBAbzeJUWEymVCnTh1vN8MpRo0aBZPJhM2bN3u7KcwrRp06dVCqVCmYzWaP150Un1VP4u1+YfPmzTCZTBg1alT8OiEEypQpg5o1a3qlTQyT1GGhmHllMJlMTn3mzZvn7Sa7zKs0sNm9ezc6duyIqKgovPPOOxg5ciSaNGni7WYxDOMFvC20uMqSJUuwZcsWjB07Fn5+cqimCEOOPqGhod5reDJh3rx5SW4cYDKZMGbMGGzfvh1LlizxdnMYJskR4O0GMIynGDlypNW66dOnIyoqCh988IHVQKJMmTKG1r9hwwZDy2Ms+ffffyGEwPz581GtWjVvN4exwalTp5AqVSpvN4NhfBohBD777DMUL14crVq1srlP3rx50aNHD5vbUqZM6cbWMb5My5YtUbx4cQwfPhxt27aFyWTydpMYJsnAQjHzyqA2M1KYN28eoqKiMHDgQLebNhcoUMCt5b/q3LhxAwCQI0cOL7eEsUfRokW93QSG8XnWr1+PM2fOYNKkSXb3yZcvn813GsN0794dQ4cOxYYNG9CgQQNvN4dhkgxsPs0wNujRowdMJhMuXryI6dOn47XXXkNwcHC8KXJ0dDRmzJiBpk2bIm/evAgKCkL69OlRv359rFy50maZjnyKf//9d9StWxfp06dHypQpUaxYMYwbNw4vXrywuf/p06fRq1cv5MuXD0FBQciSJQtq1qyJ77//HoA0/QKALVu2WJjWJRxILVq0CDVr1kS6dOkQHByMkiVLYsKECXj+/Lndc1C063nz5kVgYCBGjRqFTz75BCaTCfPnz7fZ5gMHDsBkMqFFixY2tyfEbDZj5syZqFixIkJCQpA6dWpUqFABM2fOtPCxU8517ty5AICwsLD4c7106ZLDOtQmlr///jvKly+PVKlSIUeOHPjwww/jr/+6detQu3ZtpEmTBunTp0e3bt1w//59q/I2bdqEvn37onjx4kibNi2Cg4NRokQJjBw5Es+ePbPaPyoqCqNHj0aJEiWQJk0ahISEIF++fHjzzTdx4MABi32XLVuGunXrIlu2bAgKCkK2bNlQo0YNfPfdd5qupzP1Xbp0CSaTCT169MDp06fRunVrZMiQAalTp0aNGjWwdu1aq7LV5oYrV65ErVq1kDZtWgtNhS1zfvV/sGTJElSqVAmpUqVChgwZ0KFDB1y7ds3muezbtw+NGjVCmjRpkDZtWjRo0AC7du3SbTZ74MABNGnSxKK8nTt32t1/+fLleOutt1C4cGGkTp0aISEhKFeuHKZPn464uDir/ZU+JTw8HDNmzECJEiUQHByMfPnyYcKECRBCAAD++OMPVKxYEalSpUKWLFkwYMAAm8+ici1v3LiBrl27IkuWLAgODkb58uWxcOFCu+1es2YNmjZtikyZMiEoKAgFChTARx99hAcPHljt6+h5Twwt92uVKlXg7+9v9zmdMmUKTCYTpk6dGr/u0KFD6NChQ3y/mzFjRpQqVQoffPABYmJi4ts9evRoAEDdunUt+j81T58+xRdffIEyZcrE/4dVq1bF77//btUWtQ/n/v370aRJE4SGhiI0NBRt27bF1atXAQDnzp1D+/btkTlzZgQHB6Nu3bo4evRootdLzU8//QQA6NChg1PH2cPRu8fZ5yU2NhYzZ85ElSpVkDZtWqRKlQply5bFjBkzrHyfE/Yj7dq1Q+bMmeHn55dofer+ZN26dahZsyZCQkKQOXNm9OzZM/5+3b9/P5o2bYr06dMjJCQErVq1wuXLl22Wef/+fQwbNgzFihVDcHAw0qVLh/r161v1Z3Xq1EHPnj0BAD179rS4f2zdq870W2fPnkXXrl2RI0cOpEiRAjly5EDXrl1x9uxZm/vfvn0bvXv3RtasWREcHIwyZcokatLdsWNHAPI+YhhGG6wpZhgHvP/++9i+fTuaNWuGpk2bwt/fHwC9XD/44ANUq1YNDRs2RObMmXHz5k2sWLECzZs3x6xZs9C3b19NdfTu3Rs///wzcufOjbZt2yJdunTYvXs3RowYgQ0bNmDt2rUIDAyM33/lypV488038eLFCzRp0gSdOnVCZGQkjhw5gkmTJuGdd95BmTJlMHLkSIwePdrKzE4tlAwdOhSTJk1C5syZ0aVLF6ROnRr//fcfhg8fjtWrV2P9+vVIkSKFRXtfvHiBevXqITIyEo0bN44XrOrUqYPJkydj1qxZ6Natm9V5/vDDDwCAfv36abounTt3xqJFi5AnTx706dMHJpMJy5Ytw3vvvYetW7fijz/+AID4c12+fDmOHDliYQqv1bfu22+/xapVq9C6dWvUqVMHa9euxbRp0xAZGYnXX38dXbt2RbNmzdC/f3/s3LkTCxYswN27d7Fq1SqLciZOnIjTp0+jWrVqaNasGZ49e4YdO3ZgzJgx2LRpEzZu3IiAAOp2hRBo0qQJdu/ejapVq+Ltt99GQEAArl69is2bN2PXrl0oX748AOD777/Hu+++i2zZsqFly5bIlCkT7ty5g6NHj2LevHl47733Ej1HZ+pTCA8PR9WqVVGyZEn069cPN2/exKJFi/D6669j4cKFNgftf/75J1avXo2mTZuif//+CA8P1/QfzJw5E3///TdatmyJ2rVrY8+ePVi8eDEOHz6Mo0ePIigoKH7fbdu2oVGjRoiJiUHbtm1RoEABHDt2DHXr1kW9evU01adm586daNCgAaKjo/HGG2+gYMGCOHz4sMPyPvnkE/j5+aFy5crImTMnHjx4gA0bNmDQoEHYu3evXcF0yJAh2Lx5M1q0aIGGDRvi77//xvDhwxETE4OQkBCMGDECrVu3Rq1atbB+/XrMmDEDsbGx8RNeaiIjI1G9enWkS5cuXlBYvHgxunTpguvXr+Ojjz6y2H/MmDEYOXIkMmbMiGbNmiFLliw4evQopkyZgv/++w87d+5EunTpLI6x97w7Quv9+u6776J79+748ccfMX78eIsyhBCYPXs2goKC0L17dwDA4cOHUbVqVfj5+aFly5YICwvDw4cPcf78eXz//fcYP348AgMDMXDgQCxfvhxbtmxB9+7dbbb3wYMHqFevHg4dOoTy5cujV69eMJvNWLNmDTp37owTJ05g3LhxVsft27cPEydORO3atdGnTx8cO3YMS5cuxfHjx7Fs2TLUqFEDxYsXR7du3XDlyhX89ddfaNCgAS5evIiQkBCH10057w0bNiBnzpzIkydPovt7kpiYGLRo0QJr1qxB0aJF0blzZ6RMmRKbNm3CgAEDsHv3bvz6669Wx50/fx5VqlRBkSJF8NZbb+Hx48dIkyaNpjr//vtv/Pvvv2jevHl8/ztv3jxcunQJY8eORcOGDVG7dm307t0bx48fx99//43z58/j2LFjFr7Yly9fRp06dXDp0iXUqlULr7/+Oh4/fox///0XTZo0wQ8//BD/zu7RowdCQ0OxYsUKtGrVysKVKuE7xZl+a8+ePWjYsCEeP36MVq1aoVixYjh16hR+++03rFixAuvWrUPlypXj94+IiEC1atVw8eJF1KhRAzVq1MDNmzfxzjvvoGHDhnavWZ48eZAzZ06sX78eQgg2oWYYrQiGeYXJmzevACDCw8Mt1nfv3l0AEDly5BAXL160Ou758+fi6tWrVuvv378vihUrJtKnTy+ePn1qVVfevHkt1s2dO1cAEO3atRPPnj2z2DZy5EgBQEybNi1+3d27d0XatGlFYGCg2LJli1X9V65csfgNQNSuXdvGmQuxfft2AUDkzZtX3L59O359TEyMaNq0qQAgxo0bZ3UOAET9+vXF48ePrcps1qyZACCOHTtmsf7hw4ciderUInfu3CI2NtZme9T89ttvAoCoUKGCRT2PHz8W5cqVEwDEr7/+anGM8p8l/C8doVzjtGnTipMnT8avf/78uShevLjw8/MToaGhYvPmzfHbzGazaNSokQAgDh06ZFHehQsXhNlstqpn2LBhAoD4/fff49cdOXJEABCtWrWy2j8uLk7cv38//nfZsmVFihQpLP4nhbt372o6V2fqCw8PFwAEADFkyBCLffft2ycCAgJEaGioiIqKil+v3Msmk0msWrXKZhts3Y/Kf5AmTRpx9OhRi22dOnUSAMQff/xh0daCBQsKAOK///6z2P/777+Pb/emTZscXY54zGazKFKkiAAgli9fbrFt+vTpdss7f/68VVlxcXGiS5cuAoDYtWuXxTbl/sybN6+4du1a/PrIyEiRMWNGkSpVKpExY0aL+/DFixeiRIkSNv97pV1vvvmmiIuLi19/8eJFkT59ehEY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iMDAQJElSxZRq1YtMWvWLIv9bt++LTp16iSyZMki/Pz8bKZw+P3330X16tVFSEiICAoKEsWLFxfjxo2zypuc2Dkk5OuvvxYARPv27TXtn5C4uDjx3XffifLly4vg4GARHBwsypUrJ2bMmGGRy1HBlZRMttK2OErJoaRFSXgtr1y5Ijp37ixy5MghUqZMKYoXLy4mTpwoYmJirFKcXL16VQwbNkxUq1ZNZM2aVaRIkULkzJlTNGnSxGb+3datW4uwsDARHBws0qdPL8qUKSMmTpxoM2WSLZypT0ml0r17d3Hq1CnRsmVLERoaKoKDg0W1atXE6tWrnbpeCgmvgRCO/wN1OxKye/du0aBBAxESEiJCQkJE/fr1xc6dO8V7770nAIjDhw9ruSzx7N+/XzRu3NiqPHvtO3HihGjRooXInDmzSJUqlShXrpz48ccf7bbZ0f2p5z5UruX169dFly5dRObMmUVQUJAoW7as+O233+ye57Zt28Sbb74psmfPLgIDA0WmTJlE6dKlxaBBg8S+ffss9nXmeVej935t06aNACBmzpxpc/uaNWtEjx49RLFixUTatGlFqlSpROHChcWAAQPEpUuXrPZfsGBBfA5avExXpObFixfi22+/FVWrVhVp06YVKVKkELlz5xb16tUT06ZNE/fu3Yvf194zL4Tj+1QIx6nxbHH79m2RIkUKm32nlpRMtu6zHTt2iFq1aong4GCRJk0a0bRpU3HkyBGn8hQLQXm958+fL+rVqxefDztHjhyievXqYvz48eLKlSuar4sj9PS/idX58OFDMX78eFGuXDmROnVqkTJlSpEvXz7RtGlTMWvWLKtc3KtWrRJVqlQRqVOntrquevut06dPi7feektky5ZNBAQEiGzZsokuXbqI06dP27wON2/eFD179hSZMmUSKVOmFKVLlxZz5851eA06depkN084wzD2MQmhiuLDMIzbyJYtG9KlS4czZ854uykeoVu3bliwYAE2bNiAevXqebs5jBNcunQJYWFh6N69u0WgrqRA9erVsWfPHkRFRVlF005OmEwmj6flcSdmsxkFChTA3bt3cePGDZ8LpOdp+vXrh19++QWXLl1yKXoz82px584d5MuXD507d8acOXO83RyGSVKwTzHDeID79+/j3r178fkLkzuXL1/GokWLULx4cRaIGcN5+vSpTR/8efPm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UOwNOnYEqlQBunUD1q5Vtqsj4PuaNBGDygCwYwewaZOy7/HH7dxPIiIiIiIiB9NIkqE62lSWChUqAAAKCwud3BMzZGaKBYZ9fETUe/KkaN+6JeYVlzJ4MLBihf5p/vhDN72aiIiIiIhsyy3jDTfHkWJvEBYG+PoCBQVAp04iIG7XzmBADABDhuhva9JEtwgXERERERGRJ+BIsZk84s7NsWNi9LhjR4O7JUlkVqunH69ZAzz/vIP6R0RERETkpTwi3nAzDIrN5C1v0itXgEGDxLJMEyYA48frFaomIiIiIiIb85Z4w5UwKDaTt71JJYnBMBERERGRo3hbvOEKOKeYjGJATEREREREnoxBMREREREREXktBsVERERERETktRgUExERERERkddiUExERERERERei0ExEREREREReS0GxUREREREROS1GBQTERERERGR12JQTERERERERF5LI0mS5OxOuBONRgMA8PPzc3JPiIiIiIjI0xQVFQEAGKY5DkeK3VxRUVHJLw6RJfgeImvxPUTW4nuIrMX3EFmD7x/icKeZXO2OzQMPPAAAOH/+vJN7Qu6K7yGyFt9DZC2+h8hafA+RNfj+IY4UExERERERkddiUExERERERERei0ExEREREREReS0GxUREREREROS1GBQTERERERGR12JQTERERERERF5LI7naGkNEREREREREDsKRYiIiIiIiIvJaDIqJiIiIiIjIazEoJiIiIiIiIq/FoJiIiIiIiIi8FoNiIiIiIiIi8loMiomIiIiIiMhrMSh2Uxs3bkS7du1QsWJFhIWFoVevXjh69Kizu0Vu4vTp00hKSkJCQgLCw8NRqVIlNGvWDJMmTUJmZqazu0duKCcnB7GxsdBoNBg2bJizu0Nu4u7du5gyZQoaN26MoKAgVK1aFW3btsWqVauc3TVyA9nZ2ZgzZw6aN2+OkJAQVKtWDQ899BAWL16MwsJCZ3ePXMjcuXPRv39/xMXFwcfHB35+fkaPv3fvHiZOnIiYmBgEBAQgJiYGEydOxL179xzUY3I04+8IcknLli3DsGHD0LRpU8ybNw/5+flYtGgR2rdvj927d6NFixbO7iK5uC+++AKLFi1Cr1698Pzzz8Pf3x/bt2/H3Llz8fXXXyMlJQU1a9Z0djfJjUyZMgW3bt1ydjfIjVy+fBmdO3fGzZs3MWTIEMTH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0axZM7z++ut4/vnnnd01cgOpqal45513kJycjKtXr8Lf3x/x8fEYPnx4yY0WIgDo1KkTduzYUeb+0uFQdnY2Zs6ciXXr1uHq1auIiIhA//79MW3aNFSqVMne3SUnYFBMREREREREXotziomIiIiIiMhrMSgmIiIiIiIir8WgmIiIiIiIiLwWg2IiIiIiIiLyWgyKiYiIiIiIyGsxKCYiIiIiIiKvxaCYiIiIiIiIvBaDYiIiIiIiIvJaDIqJiIiIiIjIazEoJiIir7N8+XJoNBosX77c2V0xS0ZGBqpWrYoxY8ZY9PyNGzdCo9Hgl19+sXHPiIiI3BeDYiIicmsajcash7sFwmrTpk1DXl4eJk+ebNHz+/Tpg9atW+ONN96AVqu1ce+IiIjck5+zO0BERGSNpKQkvW0LFixAVlYWxo0bh9DQUJ19LVu2RGxsLNq1a4eIiAgH9dJ6aWlp+OyzzzBixAir+j1x4kT069cPa9euxYsvvmjDHhIREbknjSRJkrM7QUREZEsxMTG4ePEiLly4gJiYGGd3xyYmT56MOXPmICUlBQ899JDF58nPz0dERASaNGmC3bt327CHRERE7onp00RE5HXKmlMcExODmJgYZGdn4/XXX0d0dDSCgoLQsmVLbN68GQBQWFiImTNnIi4uDoGBgahXrx4WL15c5mv99NNP6NmzJ6pXr46AgADUq1cPb731Fu7cuWNyfyVJwpdffonY2FiDAfG1a9fwxhtvoGHDhqhYsSIqV66M+vXr4+WXX8a5c+d0jg0ICEDv3r2xZ88enDx50uQ+EBEReSqmTxMREakUFhaie/fuyMjIwNNPP42CggKsWbMGffv2xbZt27Bw4UL8+eefePzxxxEQEIANGzZgzJgxqF69Ovr3769zrpkzZyIpKQnVqlXDE088gfDwcBw9ehTz58/H999/j71796JKlSrl9un48eO4evUqBgwYoLfv3r17SEhIwIULF9C9e3f06tULkiTh4sWL+O6779CvXz/Uq1dP5zkJCQn48ssvkZycjEaNGln3AyMiInJzDIqJiIhUrly5gtatW+O3335DQEAAAGDgwIHo2LEj+vbti7i4OBw/frxkrvKbb76JBg0aYO7cuTpB8fbt25GUlIT27dtj69atOsHv8uXLMWTIECQlJWHBggXl9mnPnj0AgAcffFBv388//4wLFy5g3LhxeucqKChAfn6+3nPk0eadO3di7Nix5b4+ERGRJ2P6NBERUSkLFy4sCYgBoEOHDoiNjUVWVhbmzZunU7wrJiYGiYmJOHbsGIqLi0u2f/TRRwCAJUuW6I0GDx48GC1btsTXX39tUn/S0tIAADVr1tTbp9FoAADBwcF6+/z9/RESEqK3vVatWgCAS5cumfT6REREnowjxURERCqhoaF44IEH9LZHRkbiwoULBkdrIyMjUVxcjGvXrqF27doAgH379qFChQpYv369wdcpKCjAzZs3cfv2bVSrVs1on27fvg0ACAsL09v36KOPonbt2pg7dy4OHTqEnj17IiEhAS1btoSvr6/B81WtWhUAcOvWLaOvS0RE5A0YFBMREamUNcfXz8+vzP3yvsLCwpJtt2/fRlFREWbMmGH09bKzs8sNioOCggAAeXl5evsqV66M/fv3IykpCd9++y1+/PFHAECNGjUwevRoTJ48uaR/stzcXJ3zEhEReTMGxURERHZQpUoVaLVaZGRkWH2u8PBwAMqIcWlRUVFYtmwZJEnCiRMn8Ouvv2Lx4sWYPn06tFqtXmAun0c+LxERkTfjnGIiIiI7aNeuHTIzM/G///3P6nM1b94cAMpdQkmj0SA+Ph5jx45FcnIyAGDTpk16x8nnadmypdV9IyIicncMiomIiOzg9ddfBwAMHz4cV65c0dufk5OD/fv3m3SuDh06wNfX1+Dxx48fR2pqqt7269evAwACAwP19snn6dy5s0mvT0RE5MmYPk1ERGQHXbt2xdy5czFp0iTExcWhZ8+eiI2NRXZ2Ni5evIgdO3YgMTGxZA6wMVWqVEHXrl3x22+/ITMzU6fg1s8//4w33ngDCQkJaNSoEcLDw5Geno4tW7ZAo9Hgrbfe0jvftm3bEBoaii5dutj030xEROSOOFJMRERkJxMmTMDOnTvxxBNPYM+ePViwYAG++eYbXL58GSNGjMCsWbNMPtc///lPFBQUYO3atTrbH3vsMbz22mvIy8vDli1b8P7772Pnzp3o3r07du/ejeeee07n+NOnT2P//v0YNGiQwWWciIiIvI1GkiTJ2Z0gIiIi44qLi9GsWTP4+/vj0KFDJesTm2v8+PFYtGgR/vrrL4NLTxEREXkbjhQTERG5AV9fX8yfPx9HjhzBxo0bLTrH1atX8Z///Adjx45lQExERHQf5xQTERG5iZ49e2LhwoUG1ys2RWpqKiZMmIBx48bZuGdERETui+nTRERERERE5LWYPk1ERERERERei0ExEREREREReS0GxUREREREROS1GBQTERERERGR12JQTERERERERF6LQTERERERERF5LQbFRERERERE5LUYFBMREREREZHXYlBMREREREREXuv/AyfxlB/BO4zLAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def dvdt(t, y):\n", " \"\"\"\n", " Returns dvdt at `t` given state `y`.\n", " \"\"\"\n", " m = 1 # mass, kg\n", " k = 100 # spring coefficient, N/m\n", " l0 = 1.0 # sprint resting length\n", " b = 1.0 # damping coefficient, N/m/s\n", " F0 = 2.0 # external force amplitude, N\n", " f = 1 # frequency, Hz\n", " g = 10 # acceleration of gravity, m/s2\n", " F = F0*np.cos(2*np.pi*f*t) # external force, N\n", " \n", " return (F - b*y[1] - k*(y[0]-l0) - m*g)/m\n", "\n", "T, y0, h = 10, [1.1, 0], .01\n", "t, y = euler_method(T, y0, h, method=2)\n", "labels = ['Trajectory of mass-spring-damper system (Euler method)',\n", " 'Position (m)', 'Velocity (m/s)']\n", "plot(t, y, labels)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here is the solution for this problem using the integration method explicit Runge-Kutta, a method with smaller errors in the integration and faster (for large amount of data) because the integration method in the Scipy function is implemented in Fortran:" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "ExecuteTime": { "end_time": "2021-03-31T15:29:33.503052Z", "start_time": "2021-03-31T15:29:33.340217Z" } }, "outputs": [ { "data": { "image/png": "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X375BYWFhWjWrBleeeUVDB482NmhkRtISkrC3LlzsX37dly/fh3+/v6IjY3FCy+8UHShhQgAunbtij179pS6v3g6lJmZiTlz5uA///kPrl+/jsjISAwaNAgzZsxAhQoV7B0uOQGTYiIiIiIiIvJaHFNMREREREREXotJMREREREREXktJsVERERERETktZgUExERERERkddiUkxERERERERei0kxEREREREReS0mxUREREREROS1mBQTERERERGR12JSTERERERERF6LSTEREXmd1atXQ6fTYfXq1c4OxSxpaWkICwvD2LFjLbr/xo0bodPp8OOPP9o4MiIiIvfFpJiIiNyaTqcz6+ZuibDWjBkzkJ2djddff92i+z/11FNo1aoVJk6ciMLCQhtHR0RE5J7KOTsAIiIia8ycOdNg2+LFi5GRkYEJEyYgJCREb1+LFi0QHR2N9u3bIzIy0kFRWu/KlSv46KOPMGrUKKvinjJlCgYOHIgvv/wSzzzzjA0jJCIick86RVEUZwdBRERkS1FRUbh8+TISExMRFRXl7HBs4vXXX8cbb7yBI0eOoE2bNhafJycnB5GRkWjSpAn2799vwwiJiIjcE7tPExGR1yltTHFUVBSioqKQmZmJV155BbVr10ZQUBBatGiBr7/+GgCQl5eHOXPmoEGDBggMDES9evWwfPnyUh/rhx9+QM+ePVGlShUEBASgXr16+Mc//oE7d+6YHK+iKPj0008RHR1dYkJ848YNTJw4EQ0bNkT58uVRqVIl1K9fH88//zwuXryod2xAQAD69u2LAwcO4Ny5cybHQERE5KnYfZqIiEgjLy8Pjz/+ONLS0vDkk08iNzcXX3zxBfr3749t27ZhyZIlOHbsGP7f//t/CAgIwIYNGzB27FhUqVIFgwYN0jvXnDlzMHPmTISHh6NXr16IiIjAqVOnsGjRIvzvf//DwYMHUbly5TJjOn36NK5fv45nn33WYN/9+/cRHx+PxMREPP744+jduzcURcHly5exZcsWDBw4EPXq1dO7T3x8PD799FNs374djRo1su4HRkRE5OaYFBMREWlcu3YNrVq1wu7duxEQEAAAGDJkCDp37oz+/fujQYMGOH36dNFY5VdffRUxMTFYsGCBXlK8a9cuzJw5Ex06dMDWrVv1kt/Vq1dj+PDhmDlzJhYvXlxmTAcOHAAAPPzwwwb7duzYgcTEREyYMMHgXLm5ucjJyTG4j1pt3rt3L8aNG1fm4xMREXkydp8mIiIqZsmSJUUJMQB06tQJ0dHRyMjIwFtvvaU3eVdUVBQ6duyIhIQEFBQUFG1///33AQArVqwwqAYPGzYMLVq0wLp160yK58qVKwCAatWqGezT6XQAgODgYIN9/v7+qFixosH26tWrAwCuXr1q0uMTERF5MlaKiYiINEJCQlC3bl2D7TVq1EBiYmKJ1doaNWqgoKAAN27cQM2aNQEAP/30E/z8/LB+/foSHyc3Nxe3bt3C7du3ER4ebjSm27dvAwBCQ0MN9nXp0gU1a9bEggULcPz4cfTs2RPx8fFo0aIFfH19SzxfWFgYACA1NdXo4xIREXkDJsVEREQapY3xLVeuXKn71X15eXlF227fvo38/HzMnj3b6ONlZmaWmRQHBQUBALKzsw32VapUCYcOHcLMmTPxzTff4PvvvwcAVK1aFS+//DJef/31ovhUDx480DsvERGRN2NSTEREZAeVK1dGYWEh0tLSrD5XREQEAFkxLq5WrVpYtWoVFEXBmTNnsHPnTixfvhyzZs1CYWGhQWKunkc9LxERkTfjmGIiIiI7aN++PdLT0/Hrr79afa64uDgAKHMJJZ1Oh9jYWIwbNw7bt28HAGzatMngOPU8LVq0sDo2IiIid8ekmIiIyA5eeeUVAMALL7yAa9euGezPysrCoUOHTDpXp06d4OvrW+Lxp0+fRlJSksH2mzdvAgACAwMN9qnnefTRR016fCIiIk/G7tNERER20L17dyxYsABTp05FgwYN0LNnT0RHRyMzMxOXL1/Gnj170LFjx6IxwMZUrlwZ3bt3x+7du5Genq434daOHTswceJExMfHo1GjRoiIiEBycjI2b94MnU6Hf/zjHwbn27ZtG0JCQtCtWzebPmciIiJ3xEoxERGRnUyePBl79+5Fr169cODAASxevBhfffUVUlJSMGrUKMybN8/kc7300kvIzc3Fl19+qbf9iSeewN///ndkZ2dj8+bNeOedd7B37148/vjj2L9/PwYMGKB3/IULF3Do0CEMHTq0xGWciIiIvI1OURTF2UEQERGRcQUFBWjWrBn8/f1x/PjxovWJzTVp0iQsW7YMZ8+eLXHpKSIiIm/DSjEREZEb8PX1xaJFi3Dy5Els3LjRonNcv34dH374IcaNG8eEmIiI6E8cU0xEROQmevbsiSVLlpS4XrEpkpKSMHnyZEyYMMHGkREREbkvdp8mIiIiIiIir8Xu00REREREROS1mBQTERERERGR12JSTERERERERF6LSTERERERERF5LSbFRERERERE5LWYFBMREREREZHXYlJMREREREREXotJMREREREREXktJsVERERERETktf4/vnfNg3v4K94AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from scipy.integrate import solve_ivp\n", "\n", "def dvdt2(t, y):\n", " \"\"\"\n", " Returns dvdt at `t` given state `y`.\n", " \"\"\"\n", " m = 1 # mass, kg\n", " k = 100 # spring coefficient, N/m\n", " l0 = 1.0 # sprint resting length\n", " b = 1.0 # damping coefficient, N/m/s\n", " F0 = 2.0 # external force amplitude, N\n", " f = 1 # frequency, Hz\n", " g = 10 # acceleration of gravity, m/s2\n", " F = F0*np.cos(2*np.pi*f*t) # external force, N\n", " \n", " return y[1], (F - b*y[1] - k*(y[0]-l0) - m*g)/m\n", "\n", "\n", "T = 10.0 # s\n", "freq = 100 # Hz\n", "y02 = [1.1, 0.0] # [y0, v0]\n", "t = np.linspace(0, T, int(T*freq), endpoint=False)\n", "\n", "s = solve_ivp(fun=dvdt2, t_span=(t[0], t[-1]), y0=y02, method='RK45', t_eval=t)\n", "labels = ['Trajectory of mass-spring-damper system (Runge-Kutta method)',\n", " 'Position (m)', 'Velocity (m/s)']\n", "plot(s.t, s.y, labels)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Forces of constraint\n", "\n", "The fact the Lagrangian formalism uses generalized coordinates means that in a system with constraints we typically have fewer coordinates (in turn, fewer equations of motion) and we don't need to worry about forces of constraint that we would have to consider in the Newtonian formalism. \n", "However, when we do want to determine a force of constraint, using Lagrangian formalism in fact will be disadvantageous! Let's see now one way of determining a force of constraint using Lagrangian formalism. The trick is to postpone the consideration that there is a constraint in the system; this will increase the number of generalized coordinates but will allow the determination of a force of constraint. \n", "Let's exemplify this approach determining the tension at the rod in the simple pendulum under the influence of gravity we saw earlier." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example: Force of constraint in a simple pendulum under the influence of gravity\n", "\n", "
\"simple
\n", "\n", "Consider a pendulum with a massless rod of length $d$ and a mass $m$ at the extremity swinging in a plane forming the angle $\\theta$ with vertical and $g=10 m/s^2$. \n", "\n", "Although the pendulum moves at the plane, it only has one degree of freedom, which can be described by the angle $\\theta$, the generalized coordinate. But because we want to determine the force of constraint tension at the rod, let's also consider for now the variable $r$ for the 'varying' length of the rod (instead of the constant $d$). \n", "\n", "In this case, the kinetic energy of the system will be:\n", "

\n", "\n", "\\begin{equation}\n", "T = \\frac{1}{2}mr^2\\dot\\theta^2 + \\frac{1}{2}m\\dot r^2\n", "\\end{equation}\n", "\n", " \n", "And for the potential energy we will also have to consider the constraining potential, $V_r(r(t))$:\n", "

\n", "\n", "\\begin{equation}\n", "V = -mgr\\cos\\theta + V_r(r(t))\n", "\\end{equation}\n", "\n", " \n", "The Lagrangian function is:\n", "

\n", "\n", "\\begin{equation}\n", "\\mathcal{L} = \\frac{1}{2}m(\\dot r^2(t) + r^2(t)\\,\\dot\\theta^2(t)) + mgr(t)\\cos\\theta(t) - V_r(r(t))\n", "\\end{equation}\n", "\n", " \n", "The derivatives w.r.t. $\\theta$ are:\n", "

\n", "\n", "\\begin{equation} \\begin{array}{rcl}\n", "&\\dfrac{\\partial \\mathcal{L}}{\\partial \\theta} &=& -mgr\\sin\\theta \\\\\n", "&\\dfrac{\\partial \\mathcal{L}}{\\partial \\dot{\\theta}} &=& mr^2\\dot{\\theta} \\\\\n", "&\\dfrac{\\mathrm d }{\\mathrm d t}\\left( {\\dfrac{\\partial \\mathcal{L}}{\\partial \\dot{\\theta}}} \\right) &=& 2mr\\dot{r}\\dot{\\theta} + mr^2\\ddot{\\theta}\n", "\\end{array} \\end{equation}\n", "\n", " \n", "The derivatives w.r.t. $r$ are:\n", "

\n", "\n", "\\begin{equation} \\begin{array}{rcl}\n", "&\\dfrac{\\partial \\mathcal{L}}{\\partial r} &=& mr \\dot\\theta^2 + mg\\cos\\theta - \\dot{V}_r(r) \\\\\n", "&\\dfrac{\\partial \\mathcal{L}}{\\partial \\dot{r}} &=& m\\dot r \\\\\n", "&\\dfrac{\\mathrm d }{\\mathrm d t}\\left( {\\dfrac{\\partial \\mathcal{L}}{\\partial \\dot{r}}} \\right) &=& m\\ddot{r}\n", "\\end{array} \\end{equation}\n", "\n", " \n", "The Euler-Lagrange's equations (the equations of motion) are:\n", "

\n", "\n", "\\begin{equation} \\begin{array}{rcl}\n", "&2mr\\dot{r}\\dot{\\theta} + mr^2\\ddot{\\theta} + mgr\\sin\\theta &=& 0 \\\\\n", "&m\\ddot{r} - mr \\dot\\theta^2 - mg\\cos\\theta + \\dot{V}_r(r) &=& 0 \\\\\n", "\\end{array} \\end{equation}\n", "\n", " \n", "Now, we will apply the constraint condition, $r(t)=d$. This means that $\\dot{r}=\\ddot{r}=0$. \n", "\n", "With this constraint applied, the first Euler-Lagrange equation is the equation for the simple pendulum:\n", "

\n", "\n", "\\begin{equation}\n", "md^2\\ddot{\\theta} + mgd\\sin\\theta = 0\n", "\\end{equation}\n", "\n", " \n", "The second equation yields:\n", "

\n", "\n", "\\begin{equation}\n", "-\\dfrac{\\mathrm d V_r}{\\mathrm d r}\\bigg{\\rvert}_{r=d} = - md \\dot\\theta^2 - mg\\cos\\theta\n", "\\end{equation}\n", "\n", " \n", "But the tension force, $F_T$, is by definition equal to the gradient of the constraining potential, so:\n", "

\n", "\n", "\\begin{equation}\n", "F_T = - md \\dot\\theta^2 - mg\\cos\\theta\n", "\\end{equation}\n", "\n", " \n", "As expected, the tension at the rod is proportional to the centripetal and the gravitational forces." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Lagrangian formalism applied to non-mechanical systems\n", "\n", "### Example: Lagrangian formalism for RLC eletrical circuits\n", "\n", "

\"RLC
\n", "\n", "It's possible to solve a RLC (Resistance-Inductance-Capacitance) electrical circuit using the Lagrangian formalism as an analogy with a mass-spring-damper system. \n", "\n", "In such analogy, the electrical charge is equivalent to position, current to velocity, inductance to mass, inverse of the capacitance to spring constant, resistance to damper constant (a dissipative element), and a generator would be analog to an external force actuating on the system. See the [Wikipedia](https://en.wikipedia.org/wiki/Mechanical%E2%80%93electrical_analogies) and [this paper](https://arxiv.org/pdf/1711.10245.pdf) for more details on this analogy.\n", "\n", "Let's see how to deduce the equivalent of equation of motion for a RLC series circuit (the Kirchhoff’s Voltage Law (KVL) equation).\n", "\n", "
\"RLC
\n", "\n", "For a series RLC circuit, consider the following notation: \n", "$q$: charge \n", "$\\dot{q}$: current admitted through the circuit \n", "$R$: effective resistance of the combined load, source, and components \n", "$C$: capacitance of the capacitor component \n", "$L$: inductance of the inductor component \n", "$u$: voltage source powering the circuit \n", "$P$: power dissipated by the resistance \n", "\n", "So, the equivalents of kinetic and potential energies are: \n", "$T = \\frac{1}{2}L\\dot{q}^2$ \n", "$V = \\frac{1}{2C}q^2$ \n", "With a dissipative element: \n", "$P = \\frac{1}{2}R\\dot{q}^2$ \n", "And the Lagrangian function is: \n", "$\\mathcal{L} = \\frac{1}{2}L\\dot{q}^2 - \\frac{1}{2C}q^2$ \n", "\n", "Calculating the derivatives and substituting them in the Euler-Lagrange equation, we will have: \n", "

\n", "\n", "\\begin{equation}\n", "L \\ddot{q} + R\\dot{q} + \\frac{q}{C} = u(t)\n", "\\end{equation}\n", "\n", "\n", "Replacing $\\dot{q}$ by $i$ and considering $v_c = q/C$ for a capacitor, we have the familar KVL equation:\n", "

\n", "\n", "\\begin{equation}\n", "L \\frac{\\mathrm d i}{\\mathrm d t} + v_c + Ri = u(t)\n", "\\end{equation}\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Considerations on the Lagrangian mechanics\n", "\n", "The Lagrangian mechanics does not constitute a new theory in classical mechanics; the results using Lagrangian or Newtonian mechanics must be the same for any mechanical system, only the method used to obtain the results is different. \n", "\n", "We are accustomed to think of mechanical systems in terms of vector quantities such as force, velocity, angular momentum, torque, etc., but in the Lagrangian formalism the equations of motion are obtained entirely in terms of the kinetic and potential energies (scalar operations) in the configuration space. Another important aspect of the force vs. energy analogy is that in situations where it is not possible to make explicit all the forces acting on the body, it is still possible to obtain expressions for the kinetic and potential energies. \n", "\n", "In fact, the concept of force does not enter into Lagrangian mechanics. This is an important property of the method. Since energy is a scalar quantity, the Lagrangian function for a system is invariant for coordinate transformations. Therefore, it is possible to move from a certain configuration space (in which the equations of motion can be somewhat complicated) to a space that can be chosen to allow maximum simplification of the problem. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Further reading\n", "\n", "- [The Principle of Least Action](https://www.feynmanlectures.caltech.edu/II_19.html) \n", "- Vandiver JK (MIT OpenCourseWare) [An Introduction to Lagrangian Mechanics](https://ocw.mit.edu/courses/mechanical-engineering/2-003sc-engineering-dynamics-fall-2011/lagrange-equations/MIT2_003SCF11_Lagrange.pdf)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Video lectures on the internet \n", "\n", "- iLectureOnline: [Lectures in Lagrangian Mechanics](http://www.ilectureonline.com/lectures/subject/PHYSICS/34/245) \n", "- MIT OpenCourseWare: [Introduction to Lagrange With Examples](https://youtu.be/zhk9xLjrmi4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Problems\n", "\n", "1. Derive the Euler-Lagrange equation (the equation of motion) for a mass-spring system where the spring is attached to the ceiling and the mass in hanging in the vertical (see solution for a system with two masses at https://youtu.be/dZjjzzWykio). \n", "

\"mass-spring
\n", "\n", "2. Derive the Euler-Lagrange equation for an inverted pendulum in the vertical. \n", "
\"inverted
\n", "\n", "3. Derive the Euler-Lagrange equation for the following system (see solution at https://youtu.be/8FSjEsUVNx8): \n", "
\"two
\n", "\n", "4. Derive the Euler-Lagrange equation for a spring pendulum, a simple pendulum where a mass $m$ is attached to a massless spring with spring constant $k$ and length at rest $d_0$ (see solution at https://youtu.be/iULa9A00JpA). \n", "
\"mass-spring
\n", "\n", "5. Derive the Euler-Lagrange equation for the system shown below (see solution for one mass spring system at https://youtu.be/eY0I8QK-ITE). \n", "
\"pendulum
\n", "\n", "6. Derive the Euler-Lagrange equation for the following Atwood machine (consider that $m_1 > m_2$, i.e., the pulley will rotate counter-clockwise, and that moving down is in the positive direction) (see solution at https://youtu.be/lVg8I23Khz4): \n", "
\"Atwood
\n", "\n", "7. Derive the Euler-Lagrange equation for the system below (see solution at https://youtu.be/gsi_0cVZ5-s): \n", "
\"cart_pendulum_spring\"/
\n", "\n", "8. Consider a person hanging by their hands from a bar and this person oscillates freely, behaving like a rigid pendulum under the action of gravity. The person's mass is $m$, the distance from their center of gravity to the bar is $r$, their rotational inertia is $I$, a line that passes through the bar and the person's body forms an angle $\\theta$ with the vertical and the magnitude of the acceleration of gravity is $g$. \n", " a. Derive the equation of motion for the person's body using the Lagrangian formalism. \n", " b. If $m=100 kg $, $r=1 m$ and $g=10 m/s^2$ and the person takes $1 s$ to perform a complete oscillation, calculate an estimate for the rotational inertia. \n", " Tip: Use the approximation that for small angles $\\sin\\theta \\approx \\theta$ and solve the differential equation. \n", " \n", "9. Consider a mass-spring system under the action of gravity where the spring is attached to the ceiling and the mass in hanging in the vertical. The spring's proportionality constant is $k = 2 N/m$ and its resting length is $\\ell_0=1 m$. The mass attached to the spring is $2 kg$. Use $g = 10m/s^2$. \n", " a. Derive the differential equation that describes the movement of mass. \n", " b. Calculate the position of the mass over time considering that the spring is initially 2 m long and at rest. \n", " c. Write a pseudocode to calculate the position of the mass by numerical calculation using Euler's method to solve the differential equation. \n", " \n", "10. A widely used approach to study the interaction between the human body and the ground in locomotion is to model this interaction as a mass-spring-damper system with different quantities of these components. In an experiment to study this interaction during running, the vertical ground reaction force (GRF) was measured during the stance phase of a runner with a mass equal to $100 kg$ and the magnitude of GRF versus time is shown in the figure.
\"GRFv\"/
\n", " a. Draw a free-body diagram for the runner's center of gravity. \n", " b. The maximum height of the runner in the aerial phase after the support phase shown in the graph above, knowing that the initial height and vertical speed (at $t=0 s$) of the runner (from his center of gravity) were $y_0 = 1 m$ and $v_0 = –2  m/s$. \n", " c. Draw the free-body diagram for a mechanical model of the corridor as a system consisting of a mass and spring and interaction with the ground. \n", " d. Derive the equation of motion for this model obtained in item c. \n", " e. Write a pseudocode to calculate the vertical trajectory from the differential equation obtained in item d by numerical calculation using Euler's method.\n", "\n", "11. Write computer programs (in Python!) to solve numerically the equations of motion from the problems above. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## References\n", " \n", "- Hamilton WR (1834) [On a General Method in Dynamics](https://www.maths.tcd.ie/pub/HistMath/People/Hamilton/Dynamics/#GenMethod). Philosophical Transactions of the Royal Society, part II, 247-308. \n", "- Ruina A, Rudra P (2019) [Introduction to Statics and Dynamics](http://ruina.tam.cornell.edu/Book/index.html). Oxford University Press. " ] } ], "metadata": { "anaconda-cloud": {}, "hide_input": false, "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.12.2" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "nbTranslate": { "displayLangs": [ "*" ], "hotkey": "alt-t", "langInMainMenu": true, "sourceLang": "en", "targetLang": "pt", "useGoogleTranslate": true }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": true, "title_cell": "Contents", "title_sidebar": "Contents", "toc_cell": true, "toc_position": {}, "toc_section_display": true, "toc_window_display": false }, "toc-autonumbering": false, "toc-showcode": false, "toc-showmarkdowntxt": false, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }