{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "*This notebook contains course material from [CBE30338](https://jckantor.github.io/CBE30338)\n", "by Jeffrey Kantor (jeff at nd.edu); the content is available [on Github](https://github.com/jckantor/CBE30338.git).\n", "The text is released under the [CC-BY-NC-ND-4.0 license](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode),\n", "and code is released under the [MIT license](https://opensource.org/licenses/MIT).*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [Fitting First Order plus Time Delay to Step Response](http://nbviewer.jupyter.org/github/jckantor/CBE30338/blob/master/notebooks/03.04-Fitting-First-Order-plus-Time-Delay-to-Step-Response.ipynb) | [Contents](toc.ipynb) | [Second Order Models](http://nbviewer.jupyter.org/github/jckantor/CBE30338/blob/master/notebooks/03.06-Second-Order-Models.ipynb) >

\"Open

\"Download\"" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "# One Compartment Pharmacokinetics" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "## Summary\n", "\n", "Pharmacokinetics is a branch of pharmacology that studies the fate of chemical species in living organisms. The diverse range of applications includes the administration of drugs and anesthesia in humans. This notebook introduces a one compartment model for pharmacokinetics, and shows how it can be used to determine strategies for the intravenous administration of an antibiotic.\n", "\n", "The notebook demonstrates the simulation and analysis of systems modeled by a single first-order linear differential equation." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "## Antibiotics\n", "\n", "Let's consider the administration of an antibiotic to a patient. Concentration $C$ refers to the concentration of the antibiotic in blood plasma with units [mg/liter]. \n", "\n", "**Minimum Inhibitory Concentration (MIC)** The minimum concentration of the antibiotic that prevents growth of a particular bacterium.\n", "\n", "**Minimum Bactricidal Concentration (MBC)** The lowest concentration of the antibiotic that kills a particular bacterium.\n", "\n", "Extended exposure to an antibiotic at levels below MBC leads to [antibiotic resistance](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4378521/)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "## Model Description\n", "\n", "A simple pharmacokinetic model has the same form as a model for the dilution of a chemical species in a constant volume stirred-tank mixer. For a stirred-tank reactor with constant volume $V$, volumetric outlet flowrate $Q$, and inlet mass flow $u(t)$,\n", "\n", "$$V \\frac{dC}{dt} = u(t) - Q C(t)$$\n", "\n", "where $C$ is concentration in units of mass per unit volume. In this pharacokinetics application, $V$ refers to blood plasma volume, and $Q$ to the clearance rate." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "## Problem Statement 1\n", "\n", "The minimum inhibitory concentration (MIC) of a particular organism to a particular antibiotic is 5 mg/liter, the minimum bactricidal concentration (MBC) is 8 mg/liter. Assume the plasma volume $V$ is 4 liters with a clearance rate $Q$ of 0.5 liters/hour. \n", "\n", "An initial intravenous antibiotic dose of 64 mg results in an initial plasma concentration $C_{initial}$ of 64mg/4 liters = 16 mg/liter. How long will the concentration stay above MBC? Above MIC?" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "## Solution Strategy 1: Simulation from a Known Initial Condition\n", "\n", "For this first simulation we compute the response of the one compartment model due starting with an initial condition $C_{initial}$, and assuming input $u(t) = 0$. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "### Step 1. Initialization\n", "\n", "Generally the first steps in any Jupyter notebook are to \n", "\n", "1. Initialize the plotting system.\n", "2. Import the `numpy` library for basic mathematical functions.\n", "3. Import the `matplotlib.pyplot` library for plotting.\n", "\n", "In addition, for this application we also import `odeint` function for solving differential equations from the `scipy.integrate` library." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from scipy.integrate import odeint" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "### Step 2. Enter Parameter Values" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "V = 4 # liters\n", "Q = 0.5 # liters/hour\n", "MIC = 5 # mg/liter\n", "MBC = 8 # mg/liter\n", "\n", "Cinitial = 16 # mg/liter" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "### Step 3. A Function the RHS of the Differential equation\n", "\n", "$$\\frac{dC}{dt} = \\frac{1}{V}u(t) - \\frac{Q}{V}C$$\n", "\n", "where $u(t) = 0$." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "def u(t):\n", " return 0\n", "\n", "def deriv(C,t):\n", " return u(t)/V - (Q/V)*C" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "### Step 4. Solution and Visualization" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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9aGHHlIfHx/t3LmzXnPNNaqqGhISkhnPf/7zH+3QoYN26tRJH3rooVzv49xzz9U5c+bk+R6XL1+uPXv21I4dO+qll16qiYmJmTE9+OCD2qNHD23ZsqUuWLBAVVXT0tL0vvvu0w4dOmjHjh31tddeU1XV2NhY7du3r3bt2lUvuOAC3bNnT77rSUlJ0YYNG2pERIR27txZP/vsM33iiSf0lltu0fPPP1+vvvpq3bZtm55zzjnapUsX7dKli/7yyy+qqtqzZ08NCwvTzp0760svvaRz587Viy66SFVVExIS9JJLLtGOHTtqz549deXKlaqq+sQTT+hNN92k/fr106ZNm+qrr76a577I65gDYtWD7+qyvnz0K5xhHueJSCsgAGe4wALVCwsiKS2dV2Zv5tm/dCztGI0pUU99u5Z1e46W6DrbRYXxxMXtC5znq6++YvDgwbRq1YratWuzbNkyunbtCsDy5ctZu3YtUVFR9OnTh19++YW7776bl156iblz5xIREZFrfRs3buT999+nT58+jB49mrfeeov7778/s3zPnj089NBDLF26lFq1anHBBRfw1Vdf8dxzz/HGG2+wYsWKXOucOXMmX331Fb/99hvBwcEkJuY8rQhr1qyhW7dueb7HG264gddff51+/frx+OOP89RTT/HKK68Azi/z33//nRkzZvDUU08xe/ZsJkyYwLZt21i+fDl+fn4kJiaSmprKXXfdxddff01kZCRTpkzhn//8Jx988EG+63n66aeJjY3ljTfeAODJJ59k6dKlLFy4kGrVqpGUlMSPP/5IUFAQmzdv5uqrryY2NpbnnnuO8ePH8913zjDE8+bNy3wvTzzxBF26dOGrr77ip59+4oYbbsjcZxs2bGDu3LkcO3aM1q1bM3bs2CLfM5CX0rx8dDKwGGgtInEicjPOGKrN3EtKPwNudLNWgQL8fLju7MZMWbKLLQeOlVbIxlQqkydP5qqrnCGzr7rqKiZPnpxZdtZZZxEdHY2Pjw8xMTFs37690PU1bNiQPn36AHDdddexcOHCbOVLliyhf//+REZG4ufnx7XXXsuCBQUPfzx79mxuuukmgoODAahdu7bH7+/IkSMcPnyYfv36AXDjjTdm295ll10GQLdu3TLf3+zZs7ntttvw8/PL3N7GjRtZs2YN559/PjExMTzzzDPExcUVuJ68DB8+nGrV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\n", "text/plain": [ "

" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "t = np.linspace(0,24,1000)\n", "C = odeint(deriv, Cinitial, t)\n", "\n", "def plotConcentration(t,C):\n", " plt.plot(t,C)\n", " plt.xlim(0,max(t))\n", " plt.plot(plt.xlim(),[MIC,MIC],'g--',plt.xlim(),[MBC,MBC],'r--')\n", " plt.legend(['Antibiotic Concentration','MIC','MBC'])\n", " plt.xlabel('Time [hrs]')\n", " plt.ylabel('Concentration [mg/liter]')\n", " plt.title('One Compartment Model with Known Initial Condition');\n", " \n", "plotConcentration(t,C)\n", "plt.savefig('./figures/Pharmaockinetics1.png')" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "### Step 5. Analysis of the Results\n", "\n", "Let's compare our results to a typical experimental result. \n", "\n", "| | |\n", "| :-: | :-: |\n", "|![](./figures/Pharmaockinetics1.png)|![](figures/nihms-475924-f0001.jpg)|\n", "\n", "We see that that the assumption of a fixed initial condition is questionable. Can we fix this?\n", "\n", "[Levison, Matthew E., and Julie H. Levison. “Pharmacokinetics and Pharmacodynamics of Antibacterial Agents.” Infectious disease clinics of North America 23.4 (2009): 791–vii. PMC. Web. 8 May 2017.](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3675903/)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "## Solution Strategy 2: Time-Dependent Input\n", "\n", "For the next simulation we will assume the dosing takes place over a short period of time $\\delta t$. To obtain a total dose $U_{dose}$ in a time period $\\delta t$, the mass flow rate rate must be\n", "\n", "$$u(t) = \n", "\\begin{cases}\n", "U/ \\delta t \\qquad \\mbox{for } 0 \\leq t \\leq \\delta t \\\\\n", "0 \\qquad \\mbox{for } t \\geq \\delta t\n", "\\end{cases}\n", "$$\n", "\n", "Before doing a simulation, we will write a Python function for $u(t)$. " ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "# parameter values\n", "dt = 1.5 # length hours\n", "Udose = 64 # mg\n", "\n", "# function defintion\n", "def u(t):\n", " if t <= dt:\n", " return Udose/dt\n", " else:\n", " return 0" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "This code cell demonstrates the use of a list comprehension to apply a function to each value in a list." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5,1,'Dosing function u(t) for of total dose 64 mg')" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# visualization\n", "t = np.linspace(0,24,1000) # create a list of time steps\n", "y = [u(tau) for tau in t] # list comprehension\n", "plt.plot(t,y)\n", "plt.xlabel('Time [hrs]')\n", "plt.ylabel('Administration Rate [mg/hr]')\n", "plt.title('Dosing function u(t) for of total dose {0} mg'.format(Udose))" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "Simulation" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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7rsrpsvKyjj//PObMrQGy5LwlwOzJY2T9J/lj0IHZmbZTJ06la9+9av87ne/y7R89YQ/c+ZMdthhh7zr3HLLLeyzzz55l6me8J9++ulM8QA8/PDDTJw4kUceeYRFixbx3HPP0blz58zrF0K+hL9x48Za16ue8Pv378+NN97Y5PE1RJaE/0/gMWBroFOlh5m1sPfff5+nnnqKW2+9tUrCnz17NgMGDGDYsGF86UtfYuTIkUQEN954I8uWLWPgwIEMHDgQgJ49e7JyZXIDz8aNGzn11FPp168fw4YNq/hgGDBgAOWXTE+dOpW+ffuy7777cvHFFwNwySWX8OGHH1JaWsrIkSMB2G677Sriue666+jbty/77bcfl1xySY3Xcc011zBhwgS6d+8OJJcgnnHGGUCSeA8++GD69evHt7/9bd59992KmC6++GIOOuggevXqxZNPPgnApk2buOiii+jbty/9+vXjpptuAmD+/PkcccQRHHjggXzjG99g+fLltW7nk08+4bLLLmPatGmUlpYybdo0xo8fz5gxYxg0aBCnnHIKS5Ys4Wtf+xoHHHAABxxwQMUH3CWXXMKTTz5JaWkpN9xwA7Nnz2bo0KEArF69mm9961v069ePgw8+mBdeeAGA8ePHM3r0aAYMGMAee+xRsA+ILHfa1nm9vVmxu+LBRby07L0m3eY+3bfn8uP65F1mxowZHHPMMfTq1YuddtqJ5557jgMOOACA559/nkWLFtG9e3cOO+wwnnrqKc4//3yuv/56Hn/8cbp27Vpje4sXL+bWW2/lsMMOY/To0fziF7/goosuqihftmwZF198MfPnz2fHHXdk0KBBzJgxg2uvvZabb76ZBQsW1Njmww8/zIwZM3jmmWfo2LEjq1evrrHMwoULOfDAA3O+xlNOOYWbbrqJI444gssuu4wrrriCiROTu2A3btzIX/7yF2bOnMkVV1zBrFmzmDRpEv/85z95/vnnadu2LatXr2bDhg2cd955/P73v6ekpIRp06bxwx/+kNtuu63W7Vx55ZWUlZVx8803A0lSnj9/PnPnzqVDhw6sX7+eRx99lPbt2/O3v/2Nk046ibKyMq699lomTJjAQw8ldw/Pnj274rVcfvnl7L///syYMYM///nPnHLKKRXH7JVXXuHxxx9n3bp19O7dm7PPPrvGNfeNlW9M2/F1rZxlGTMrnKlTp3LiiScCcOKJJzJ16tSKsoMOOogePXqw1VZbUVpaypIlS+rc3q677sphhx0GwMknn8zcuXOrlD/77LMMGDCAkpIS2rZty8iRI3niify31syaNYvTTjuNjh07ArDTTjtlfn1r165lzZo1HHHEEQCceuqpVfb3ne98B4ADDzyw4vXNmjWLs846i7Zt21bsb/HixSxcuJCvf/3rlJaWctVVV7F06dK828nl+OOPp0OHDkBy490ZZ5xB3759+e53v1vnbxwAc+fO5XvfS7rZOPLII1m1ahVr164F4Nhjj2Wbbbaha9eufO5zn+Ptt9/OcojqJV8N/3RJ+aosAk4ExjdpRGZboLpq4oWwatUq/vznP7Nw4UIksWnTJiRx3XXXAbDNNpu7KmnTpk3edudy1S/9qz7dkGs3IqLOSwr79OnD/PnzOfLII+u17fLXWPn15dpfRNCnTx/mzZtXYxu1bSeXbbfdtuL5DTfcwM4778xf//pXPv30U9q3b19nvLmOX3msDfl/1Ve+NvzfULXNvvpjOzwAilmLmT59Oqeccgqvv/46S5Ys4c0332T33XevUSuvrlOnTqxbty5n2RtvvFGRFMt/DK7sK1/5CnPmzGHlypVs2rSJqVOnVtS+27Vrx4YNG2psc9CgQdx2220VvwfkatIZN24cP/jBD3jrrbcA+Pjjj7nxxhvp3LkzO+64Y0X7/B133FGxv9oMGjSIX/3qVxUJc/Xq1fTu3ZsVK1ZUvLYNGzawaFH+4TzyHSdIvn1069aNrbbaijvuuINNmzbVud7hhx/OXXfdBSRNPV27dmX77eu6panp5BvE3G33Zq3Y1KlTa/wAesIJJ3D33XczYsSIWtcbM2YMgwcPplu3bjz++ONVyvbee2+mTJnCmWeeyV577cXZZ59dpbxbt25cc801DBw4kIhgyJAhfPOb36zYbr9+/TjggAMqkhrAMcccw4IFC+jfvz9bb701Q4YMqXFFz5AhQ3j77bc5+uijK2roo0ePBmDKlCmcddZZrF+/nj322IPf/va3eY/L6aefzquvvkq/fv1o164dZ5xxBueeey7Tp0/n/PPPZ+3atWzcuJGxY8fSp0/t38wGDhzItddeS2lpKePGjatRfs4553DCCSdw7733MnDgwIraf79+/Wjbti377bcfo0aNYv/9969YZ/z48Zx22mn069ePjh07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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "Cinitial = 0\n", "t = np.linspace(0,24,1000)\n", "C = odeint(deriv, Cinitial, t)\n", "\n", "plotConcentration(t,C)\n", "plt.savefig('./figures/Pharmaockinetics2.png')" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "### Analysis of the Results\n", "\n", "Let's compare our results to a typical experimental result. \n", "\n", "| | |\n", "| :-: | :-: |\n", "|![](./figures/Pharmaockinetics2.png)|![](./figures/nihms-475924-f0001.jpg)|\n", "\n", "While it isn't perfect, this is a closer facsimile of actual physiological response.\n", "\n", "[Levison, Matthew E., and Julie H. Levison. “Pharmacokinetics and Pharmacodynamics of Antibacterial Agents.” Infectious disease clinics of North America 23.4 (2009): 791–vii. PMC. Web. 8 May 2017.](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3675903/)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "## Problem Statement 2\n", "\n", "The minimum inhibitory concentration (MIC) of a particular organism to a particular antibiotic is 5 mg/liter, the minimum bactricidal concentration (MBC) is 8 mg/liter. Assume the plasma volume $V$ is 4 liters with a clearance rate $Q$ of 0.5 liters/hour. \n", "\n", "Design an antibiotic therapy to keep the plasma concentration above the MIC level for a period of 96 hours. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "## Solution Strategy 3: Periodic Dosing\n", "\n", "Finally, we'll consider the case of repetitive dosing where a new dose is administered every $t_{dose}$ hours. The trick to this calculation is the Python `%` operator which returns the remainder following division. This is a very useful tool for creating complex repetitive functions." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "# parameter values\n", "td = 2 # length of administration for a single dose\n", "tdose = 8 # time between doses\n", "Udose = 42 # mg\n", "\n", "# function defintion\n", "def u(t):\n", " if t % tdose <= dt:\n", " return Udose/td\n", " else:\n", " return 0" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# visualization\n", "t = np.linspace(0,96,1000) # create a list of time steps\n", "y = [u(t) for t in t] # list comprehension\n", "\n", "plt.plot(t,y)\n", "plt.xlabel('Time [hrs]')\n", "plt.ylabel('Administration Rate [mg/hr]')\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "The dosing function $u(t)$ is now applied to the simulation of drug concentration in the blood plasma. A fourth argument is added to `odeint(deriv, Cinitial, t, tcrit=t)` indicating that special care must be used for every time step. This is needed in order to get a high fidelity simulation that accounts for the rapidly varying values of $u(t)$." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEWCAYAAABrDZDcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi40LCBodHRwOi8vbWF0cGxvdGxpYi5vcmcv7US4rQAAIABJREFUeJzsnXecHGd9/9/Ptmu7e73qTtKduixbsi3LBXebbpMEiAkl4DQnOI0AiYGEBAKBkAAhoQVTYjoYG4Ib/MDGBeMCcpObZMvqVrtTOd3t3t225/fHM7M7u7dlZueZlRTP5/Xa1+3tzux3yjPfXoSUEh8+fPjw8dJF4HgfgA8fPnz4OL7wBYEPHz58vMThCwIfPnz4eInDFwQ+fPjw8RKHLwh8+PDh4yUOXxD48OHDx0scviDw8X8aQoiLhRB7bG77ISHEt1zSe6sQ4mc6juf/OoQQ/y2E+GCV7z8ghPiKzd+6QQjxUX1HVz+EEDuEEJcb76ueQ6310iic9IJACHG1EOJJIURSCLFfCPFFIUSHh/Q2CCHuEEIcFUIcFkL8WgjxB17R0wUhxGIhhBRChI4T/ZoPqnF8B6zHKIQICSEOCiFOioIXKeW3pZSvMP83zmlpvb8nhLhHCPHHlv8vFkIcEUL8nttj9QKlx1sNUso/k1J+xNhvnoCUUn5MSmnrt2wc16AQ4qtCiH1CiCkhxGYhxIeFEG06fr8SrOdQ7hksXS/HCye1IBBCvAf4BPC3QDtwDrAI+LkQIuIBvXOBXwD3AkuBbuCdwKt109KJ48X868RRiq/na4Ajx+lYTigIIV4B/C/wh1LK7x3v4zlZIIToAh4EWoBzpZQx4OVAB7DkeB7bCQMp5Un5AuLANHBVyedR4CDqYQH4EHAj8A1gCngaWG/Zfgi4GRgHtgN/VYXm/cDnaxzXnwBbgcPALcCQ5TsJXAs8bxzLR1AL8UHgmHGcEWPbi4E9wAeACWAH8FbLb70WeMzYbzfwIct3iw1afwTsAu4z/krjmk0D5wJXA78C/gPFgLcB5xmf7zau4zssv9sEfNL4rQPAfwMtJcf7HmO/fcAfGN9dA6SBlEH71grXTgL/APzA8tlNwN+rpVp0z24xrvFW4E8s37UAN6CExzMoJWGPnfttrJVvVTi2e4E3GO/PN471Ncb/lwOPG++vBu433t9nbJcwzvtN1a5TBbr3AH8MXGHco9eUuWZ/hlpTR4DPA8L4LmBcz50GrW8A7cZ3XwfeY7xfYPzOtcb/S41rK+o93lprwvj+BuCjQBswA+QorM+h0vsB/ADYD0wa1/aU0t+qcEwfBZ4EAlWO+zzgN8Zv/wY4r+ScPoJ6VqaAnwE9lu9/37jGh1BrdQdweemaovIzeL+O43DzOpktgvOAZuCH1g+llNPAT1AS38TrgO+hNIBbgM8BCCECwK3AE6iH4TLgXUKIV5YSE0K0om7cTZUOSAhxKfBx4CpgELU4SjW3VwFnoqyXvwOuB94KjABrgDdbth0AeoxjewdwvRBihfFdAni7cU6vBd4phPjtEloXAauAVwIXGp91SCmjUsoHjf/PBjahrJvvGMd7FooZvA34nBAiamz7CWA5sM74fgHwjyXH2258/kfA54UQnVLK64FvA/9m0L6ywiUEpfFeKIToMFx8FwA/LtnmuygGMwS8EfiYEOIy47t/QgnXJcZ5v8Pcycn9LoN7UYwN1LXchrq+5v/3lu4gpTSv+VrjvL9v/F/2OlWhfSXwLeCNUso7ynx/BeqerUWtPfN8rjZelwBjKCXpc2XO56Iy5/NLaXCfOo7Xipr7SikTKCtwr3GdolLKvWV+6yfAMqAPeBS1puzgcuCHUspcuS8Ni+F24L9Qz8GngduFEN2Wzd4C/IFBOwK819h3NfBFlDAYMvYfrnAclZ5B18fhFiezIOgBJqSUmTLf7TO+N3G/lPIOKWUW+CbqgQH18PRKKf9ZSpmSUm4DvgyU8792oq7XvirH9Fbga1LKR6WUc8D7gXOFEIst23xCSnlMSvk08BTwMynlNinlJGqhn17ymx+UUs5JKe9FLZKrAKSU90gpn5RS5qSUm1DM8aKSfT8kpUxIKWeqHPN2KeX/GNfm+yiB9M8GzZ+htPilQgiBsnb+Rkp5WEo5BXys5FqljX3TBsOaBlbgDLMoZv0m47dvMT4DQAgxgtLIr5NSzkopHwe+gnoQMa7PvxjHuBv1UJlwcr9LcS/FjPLjlv8voowgqAKn1+kS4DmUJlgO/yqlPCql3AXcjRLUoNbjp431NY1aj79nuArvBS4whOOFwL8BL6twPm7uq441AYCU8mtSyinj2foQsFYI0W5j126qP7evBZ6XUn5TSpmRUn4X2IwSwCb+R0r5nPEs3UjhGr8RuE1KeZ9xXB9EWTb1wM1xuMLJLAgmgJ4K/u9B43sT+y3vk0Czsd8iYMgI/B4VQhxFuWL6y/zmEdQNHqxyTEMoKwDIWyeHUNqQiQOW9zNl/o9a/j9iaEsmdho0EEKcLYS4WwgxLoSYRLkHrMIPlHunFkrpI6Usd0y9QCvwiOVa/dT43MShEsGcLDkfu/gGytp5u/HeiiHAFEQmdlK4xkMUn/dOy3sn97sUDwLLhRD9qIfvG8CIEKIH2IByVdiF0+v0QWAO+F8hRFOZ70vXt/lbRevReB8C+qWUL6CY8jqU1XUbsNewOEsFgZv7qmVNCCGCQoh/FUK8IIQ4hnK/wPw1X/YYcPDcGrCuKah+jfPrzXheD9k4Jt3H4QonsyB4EPVwvN76oZEF8GrgLhu/sRulEXdYXjEp5WtKN5RSJg2ab6jye3tRzMZ6LN3AizaOpRw6S7IaFho0QLlxbgFGpJTtKH+9KD3sCu/rwQRKKJxiuVbtUkq7C9EJ/V+iHtx+VFzGir1AlxAiZvlsIYVrvA9l1Vi/M2H7fs87eHX/HwH+GnhKSpkCHgDeDbwgpZyotr9LJFBB83bgJiFE2OZ+ResRdS0yFIT/vSiNNiKlfNH4/+0o6/dxDcftBLXWx1uA30K5edpRcTCYv+bL4U7gdwzrpxxKrxMUr6lqKFpvhgu5u8K2tc7RzXG4wkkrCAxXyoeBzwohXiWECBsumB+g/MfftPEzvwaOCSGuE0K0GFrHGiHEWRW2/zvgaiHE35p+OyHEWiGEGQf4DvAHQoh1hub2MeBhKeWOes8T+LAQIiKEuADlC/6B8XkMpRnPCiE2oB6UahhHWTRj9RyE4V/9MvAfQog+ACHEApv+dVDMxxZtwzd9JfA6i5/a/G43igF/XAjRLIQ4DeV7Nv3FNwLvF0J0CiGGgb+07O70fpfiXuAvKGjL95T8Xw62z7saDAvoVSit8TtCiKCN3b4L/I0QYtSI83wM+L5FQzfPx7Rm7kFdr/sNV2EjcQDoruLqiaEUv0Moy/RjDn7706jkkq8LIRZBfu1+2lg/d6CsvbcIla78JmA1ykqqhZuAK4QQ5xuZiv9MZb5a6xl0cxyucNIKAgAp5b+hTPtPorJnHkZpfZcZ/rpa+2dRDGcdKoNkAuVvLrsYpZQPAJcar21CiMOoYO8dxvd3ocz4m1GawhLs+Z8rYT/KJbUXxej+TEq52fjuWuCfhRBTqIDtjdV+yNBo/wX4leEWOaeO47kOlaXzkGGe34l9f+9XgdUG7f+ttbGU8mkjjlIOb0ZphHuBHwH/JKX8ufHdh1Hm9HZUVkVeIXB6v8vgXhRDuq/C/+XwIRQDOiqEuMomnbKQUh5FJUEsB75RRcM18TXU+d+HOt9ZigVj6fHfj2KyTtxcWmCs6++inqujQoihkk2+gbqvL6KywR5y8NuHUcklaeBh45m5C5WZs1VKeQilZL0HJWj+DrjCjpVnrNE/RymB+1DPa9mCwVrPoJvjcAtRonD5OEEghLgYlXZWKQPBhw8fPrTgpLYIfPjw4cOHe/iCwIcPHz5e4vBdQz58+PDxEodvEfjw4cPHSxwnRTOynp4euXjx4uN9GD58+PBxUuGRRx6ZkFL21trupBAEixcvZuPGjcf7MHz48OHjpIIQorRSuSx815APHz58vMThCwIfPnz4eInDFwQ+fPjw8RKHLwh8+PDh4yUOXxD48OHDx0scviDw4cOHj5c4fEHgw4cPHy9x+ILAhw8fJyx2H07yi80Ham+oCelsjrlMo0cxHH/4gsDH/2mMT82x+H23c+czjWEmT+6ZZNUHf8qLR6uNidaLrQenaVTPsCf3TPKqz9zHsdl0Q+i96UsP8oc3bCSdrXcMsDNc+dn7Of2ff157Q02YTKbZenCq9oYewxcEPhqOGzfubtjif2F8GoDP37O1IfR+/PiLzKSz3LSx7GwS7bjzmQNc/ul7ueWJvbU31oB/+3+b2bx/iodeqHcsrzPsnZwFYM+RxgjWzfunSKayzKYbYxVc9ul7ufzT9zVMkFeCLwh8NBTpbI6/u2kTr/2v0lHE3iCTVQ/Y4USqIfSGO1sA2DYx3RB6929Vw6u2HmwMvZawmpDZqOvZ1RYBYHuDrqeJbeOJhtCZmJ4z/jbmelaCLwh8NBQHjikNby7TGFPfdGEcatCDljQ0yYPHak5K1YKcoUk2yhUVEGpW/PZDjWGUpiBoFGM2sX3Ce3pWK6AR9KrBFwQ++MaDO/jRY41xZew3TP1GYXJGCYLpuUyNLfUgYdDZO9kYxmyeV6MYydScup7bG8SYg6bgadD5RUIBg573FohVGWq0xVOKk6L7qA/vMD2X4R9/rGbE/87p3o9HNk1hUEyzrcnbJXhsphDUPJpM0dEa8ZReYk5ZBLsPJ0llcnnG4hWSBr1GMcrpBtMzLbpGaei5nNLSG2GBJCzKyTbfIvBxPGG6aoCGBKxMRgKNebinZgsPWyPomRp6TsKuw0nP6SVSit7RZJojDfDbJ43z23koSTbXiPXSOItnLpMjYwqCBtBLWJ+FBru+SuELgpc4kpbFeKABfu1kqrFaUCLVWEGQbDC96QZrlaYWm8rm2OtxXEJKmae3b3K26Np6gSINfdz7lNxG37tq8AXBSxzTJYu/kfQaoQUl5jL0RCMEA6JBjDnLWE8b0JjrmZjLsHIgBjRO8KwejAPeM6+5TI6chDULFL0dE95aWMmUUopWDcY5NpvhSNLbWglTSVk9GGfnoURDLKxK8AXBCYg9R5Keaz8mrFrQCw3SKAMCFnS0NCRAlpjL0t4SZqSzpWF+38GOZnqikYYw5sRclpUDMUIB4fn1lFKSSGXzjHm7x4LOVBrWDLUDsMPjTCWT3qnG+XktyBN5eu2ks5IXG1QrUQ6+IDgBcf4n7ua3PverhtAqcp00hFFmaWsKMdbb1hBzeHouQ7QpxGhPY+gl5jK0RRpIL5WhvSXMwq5WzwXPXCZHNidZ1N1GrCnkOT2TUZ6yQAmCRtE71aDn9f0zYwRrhk16xy9zyBcEJxhMv+TzDSoQMhdjd1ukIQsxYWHM28cTnvthk6kMrZEQoz1Rdkwk8lkhXsEqeBpjEWRoNQWdx4LcZJTRphCjDRDkpobeG21iIN7s+fmZ9FYMxAkHvXcllgqe41lL4AuCEwzW3OKZlPdl7vnFONzeGNdJKkNrJMhYTxtTcxnPKyqnDQtktLeNmXSWA1Pe1jEkU1lam4KM9kQZn5pjysOePHOZLOmsJGpYWNs9FnSm0tAaCTZE0Jk++4Jg9VZRMenFW0Is7Gr13DVkCp5FXa0NsbCqwRcEJxisPvuGaJSpglay50jS886LibmsoVFGgcb4YaNNwXwA12v317RRGzHWa9Dz8B6ajLktogTPXCbHvmPeCTpzrZiM+cWjM5725DEZZWtTkNFe7wWPSa/NsCC9F3QGPUNR8QWBjzysucUvNCjrpCUcZGlflJxU+eFe02trChUYcwPM7zaDcYG3ft90NkcqkyMaacz5mUqD9fy8FHSl9KTHtRJWV9RYTxtHPK6VKKLX28YOj2slpueyRIIBIqFAQ1x71eALghMM1uBtIxqJKddJkLGexmjopsY81NFCJBTwXhCkFL2BeDPNYW/pWRnlwu5WAsLbCtWERaMsWCDe3b9py/kV1kuDBZ2HmUMJqwXS00Yq422thFJSVBO/sZ4oeye9tbCqwRcEJxiK0jkbYBEkDUa5uKfVoOm937ctEiQYECzubvVUQ89kc8ymc7RFQgQCgsXd3prf0xaNsikUZLjT2/OzMsq+WBOtkaDH9AxXlOGqgca4vqKRxlg803NZwkFBU6jgSvT6/rVGVIuV0V5lYXmdIlsJviA4wWAyk/aWsOdMGQrpjrHmMH2xpoZknpj9hZQ57J2wS6QKjAvIB1S9ghlsbDXoeR3gNNt1RJuCCCE8D+DmLZBIiKghfLw8P6uGPtLV6nlRoKkUAQVB5+n6VBlmQMNiWJXgC4ITDCYzOW24nW3j0w1Jd7QySq9TSM30SoDRnii7DifJeDR9yurzVfTa2GU0g/MCVteJSc/LFNlECb2x3mhDXDXRIkHuoYaeyhAJBQgH1WthV6un63PaUIpApaxGPc7kSRhuWYDFDbBAqsEXBCcYTGZy2nA7c5mc533mk6lsESPxcuFnsjnmMrm8OTzW00Y6Kz2bPmVmZbQa57ekN0o2J9l12JtzLGWUY71tJFJZxqe86eGUsGS5gGLMe44kPfMzWzV0UOtlq4c9eRIWpQHU/fMybmalZ1pYXjLmaYt1bFpYjXAHl4NngkAI8TUhxEEhxFOWz7qEED8XQjxv/O30iv7JimReEHQAsLVBwVtQjPloMu3Z9KlSV82SPqUFebX4ra4TgGV9qifP8we8oVfKmJcYKbJeMa9Si8DM/PLKz2z1oQMs64tyNJnmkFfrxaIxAyzrV4qKV/OLE3PZvJADWNLbxgseCx5zrYA6Py/pVYOXFsENwKtKPnsfcJeUchlwl/G/DwtMZrnWEAReLwy1GAuuIfAuc6hUY17aazBmrxmlyZgNweMVvYLgUfSW9UU9pVcqWPP0PBJ0Vh86KMblJb15jLIvSjorPUtxni6xQJb1x9g7OetZUaDVGgelqGw96H3X03LwTBBIKe8DDpd8/FvA1433Xwd+2yv6Jyum5zKEAoL+eBNdbRHvs3jmLK4hIyXQKw294FpQ9NpbVYDaK0ZS6rNvjYQY7mzxTEMvuKIUY+6NNRFvDvH8wSlP6E3PZYo09NGeNgLCS0FXypiVIN/q0fklSgVPnp6Hgs5yfkv7zOfBKwsrk7dWTXqJVJZ9DZ7iB42PEfRLKfcBGH/7Gkz/hEfScNUIITw3TVU3yYIWNNLVSiQU8M6VkSp21YDSKr1iJNbKzTy9vqinjBIo8jMv6495p6Fb0g8BmsNBFnW3eceYLYkFAP3xJmJNIU8tLOu9My06786vmN7yftOVqJ+eOWuhdG1C4/qMWXHCBouFENcIITYKITaOj48f78NpGKbnsnlXzZLeqKfBo5l0lpwsMMpgQLCkN8pzDfKhg9LynvfIHJ6eK3adgNK6Xhif9qRiNDGXIRgQNFnGUy7r8y7AOW2067BiaV/UQ9dQMaMUQrC037vzS5RozK2REAs6WjwV5FZ6I52q6NELeuY0tLYSVxR4I3hqodGC4IAQYhDA+Huw0oZSyuullOullOt7e3sbdoDHG1Y/7NK+KIcSKc/K6gu9VQqLf3l/1LOFWOqqAXWOyVSWvR6Yw6UxCVCCJ5XJsduD1ggJQ4gLY+A6FO7hoWn9mUOlGjooweNVQLXUhw6wtNc7CytZ4ooCZUF6IejKaeihYICxnjZPngczTdz67HW1RehuizSko0ApGi0IbgHeYbx/B/DjBtOvC9//zS6+8/CuhtCaNtoKQyHrxKvc6WReYy42h70KkJVz1XhpfifmMggBLWGLRdDvXSbPdAkjgYKW5wW9Uh+6ohclk5Ps9CBzSFXClgieftVl9WhSv7JS7nou7fXGoiunoYO6f14IutKMLxNLPXRdVoOX6aPfBR4EVggh9ggh/gj4V+DlQojngZcb/5/wuO7mJ/nAj55sCK1kKps3T71OPyynoZt+Sm8Y5XxXjZf0lIYemqehgzd+2FKNEpSF5Sm9Uo3ZwxTZUh+6lZ7u+2dOQ5tn8fSrLqu6p3mV09BBrc89R2a0TwwsjSfl6RkWeaMzh7zMGnqzlHJQShmWUg5LKb8qpTwkpbxMSrnM+FuaVXRCoxENoaz9RxZ0ttDkZfC2nM++30tGMp9eZ1uEnmjEM3qljCTeHGYg3uxJJk8iNZ9RDsSbiTaFPLJ45jPKJb1RhEeZQ9bEAhNeCVZzGtp8jdlMOdZ7PStp6Kai8sJBvRZWZXoxjs1mPCtCrIQTNlh8IqIx3UALD5sZvPXMB5uar6Ev7GqlKRTgOQ9dNaXuBWUO66c3XcZ1YtLzxgIpDjaCEVD1yNwv5zppiQQZ7vQmoFrO4lnQ0UJLOKhdkJeL74B3gqeahq7oaRY8ZZ49OH6ZQ74gcAAvmGMpkiXm8IqBGFv2exu8tS5+L4VPOVcNeJc5VM51AgVB0Ch6XqWsltPQFb2YdgvEnIZW6joJBIQngrwwDa34/NpbVO2JbkFeSUNf1N1GKCC037+KMYJ8kV5jM4d8QVAD1oldWxpwc0qLdlYMxNg3OcvkjP7gbWmBlwmvMofKuWpAaV1TsxkOajaHk2VcJyY9LzKVymnoJj0vAqpWN2IRvb4o2yYSWpv5JcokFljp6a53KSgp5e+fdsZcQUMPB9XQGN0Wz3QZNymoZnftLWHfIjjRMDVbCBI955FmbsKccGV92FZ4mVWTKvR7t8Kr0vrpVGUNHfTHJcqlO4I1oKrfz1xW8HgQUE1lcsa84vn0lvZFVYqsxoBqJQ0WYElfVPt6SZTJMDOxrC/GC5otumrn50XRYyXXlxDC06LHSvAFQQ0kLaMjvSq0KqVl9aEvH1BMZLMHQqi0m6QJrzJ5khU0ZjOFVLfrrVx6JXh3fuWCxeCNX7s649Iv6KzziufR86AVQ7mMNhNL+6JMz2XYr3E+cyUNHZTg2XlYb1fX0tkVVngVw6oGXxDUgHW4+4tHZzxrQGWlZX3YhtqbiTWFPAvemv3erVjuUeZQuSwXgO62CJ2t+s3hSq4TM1NJ58NmnVdcigUdLbRGglrvYS1GCd4IntJAP3gjeJIlDfysMM9Pp2JWSUMHZRFIqbcHV2mfKCuW9kU57FERYiX4gqAGzPzh0xeqbqBemmzltDwhBMs9ChhXCjaOeJQ5VBr/MKHM4Zh287u0ZYAVS/uiWq2sahq6GVDVKXis08JKEW0KMdTerNciqMKYFxo9qnSul2qCx3SX6nTVVrWwPHDtlcvAytPLW8iNswp8QVAD5gNgCgIv4wQFLa948S/vj7HFgyKTShp6MOBNymNpG2MrlvarHke6zjGbk2pecQV6KwfiPHdgStsEuEr3zsTSvqhWYZ4oU5xnxfKBGFs80JjLXc9gQLC8X69grZTOCcqi64838ez+Y9roJVJq1kIkNJ8lLu5pJRQQWu9fJaUIYKXhDt6i8fxqwRcENWBaBMv7Y7SEg55mDhWqG4sXyIp+NQBEd5FJtcW4rE9/5lBpN0krVg3EmJxJa/P7VvNpA6wajJFMZdl9RE/PoWpZNQCrBuIcnJrTNvSnmisDYNVgnK0Hp7SN5azmQwclWBtlYeXp7dNLrxKtplCQJb16BV2ljDaAvlgTna1hT+KCleALghow2yLEmsIs7496WktQye9rBox1C6FqGrqZOXRMZyaIZQhOKVYNxgF4dp8eLajgWqjMSBQ9Pde0WpYLwMpBI+iv+fwqM8oY6azU1qcqUcPiWTUYZ3xqjglNfu1EKls2fmVi5aAa4qKruV41pcikp+veQeVEBlCu0pUDcZ71BcGJA+uwkeX9MU/9duWaskHBJ6o7TlBNQy+Yp3poZnOSmXRleqaw08aYazCu5f0xhIDNmsxvOxo6oO3hrqWhm/R0ac2FPPvKFp1WelWUBkUvTiqb0zZju3Q+cilWDsTZOzmrrRakUmpznt5gjOf2T3nSLr0cfEFQA3mTPxJixUCMcY3mfSnyTdlKHoDuaBM90SbtgqDaw7Z6SK+Gnqzhqok3hxnubNFoEVQOboJqxTDa3aaVcUH54CZAj3EPdWmV5dqDWDHa00YkGNDmR08Yk/OayvjQQRU+gl7BWknoQMHC0rleKl1LUK5E0JfGXakKvUAvzkw6yy4P2qWXQ0VBIIQ4VuM1JYR4riFHeRyRTKn+OM3hgCWa79FErSrm/ooB/W6pag/bQLyZjtawdsZcLm/axKpBfX7mWq6hAj0951c6r7g8vZg2xlwtfRRUReyy/qhWC6u1ZNaCFd3RJvpiTdro1dKYx3qihINC33qp4qoBq4WlU/BUoTegVxGrhWoWwQtSyniVVwzwdqDuCQBrfxyvXDQFWvP755sw3VK6slxMepUeNiEEqwbiPKPxwYYajHIgxrbxaS2FO3borRxQhUKm0HCDWj57UMzkuQPTWlo/1NLQwQyo6hN01a4lwEqNgrV0GlopIqGACuBqjLlU09DNAK7OmFI1C2RZf5SA0Cd4aqGaIHiDjf3tbHNSI5kqDOPoj5uLwZubMz2XpTUcJBCYr3WtHIgxk9aX5WL2e6/kygDFuLbsP6bFT5mskvduYuVgnJzUU8hWCN5WPr+Vg3Gk1GPh1cpSAnUPUxk9fu1aGjooC+Tg1JyWwqRqiQV5egNqPrMOQVepb5MVKwdiGi3I6oJHCKHVgqzl+moOBxntaWtYwLiiIJBSbhNCBIUQd1bbxpvDOnGQSBU0ISEEq4fiPOORIKj2sK3QnOVSqd+7FasGY8ymc+zQMO3K1NBruYYALe6TWjECKATEdTCTcvOKS6EzYGxLQzfWjA4L1jo5ryK9wZi2AG6tYLGiF2efpgButeLDPL2BOFsOuA/gmp1ca90/nYKnFqoGi6WUWSAphGhvyNGcgEjMZYqY1ylD7WzeP+XZTNiKgqA/RkCgTQjVynIBvSmddhjzwq5WWsJBTfTKd1a1YrizhWhTSNv51dLQl/RGCQWEFnPfjoaeD6hqEnR2GKVOenYsAnAvyMvNKy5LT5NilKyQFFKKVYNxdh/2tq2NCTtZQ7PAk0KIrwoh/st8eX1gJwpK+9WsHoyTyuTYprHBlonSWQRWtESCjPVGeWaNcTv2AAAgAElEQVTvpBZaiTIN7kqxrF8xLh2MslJqrBXBgGDFQExLJo+Z7thaJt5iQuVr66FXK7gJyq+9tC+q5Xra0dB7ok30xpo03b9sVbceaBZ06awtRgnu/eipbPl5xaVYrSkld9qGkgIFQdeIOSh2BMHtwAeB+4BHLK+XBNQDUFiQZlrlM/v0MGQrpis0STNxylCcp/fqzTqpxrzMikod7ig79EC5ozbvP+a61UTS8KGXi7dYsdLI5HFNz4aGDvoyo+xo6GD60fUIHruCTsf5JeeyNRmlGcB1W2iZsKmhL+0zArgur6edeBIo1xfocwdXQ01BIKX8OnAj8JCU8uvmy/MjO0GQSBVrXmM9bTSFAjyjiSEX0arxsJ0ypHyiOuoY7GjoYKQ86nTV1PL7DsQ5kkxz4Ji7AKcKhNdmzCsH4kzNZlwPqVHZZfYYsw6/tpnNVgu6MpVKXaSVoCwslxp6Jkcqm6t5PfMVuC4ZpR03IqgA7live4vOToYZqM7D8WY9rstaqCkIhBBXAo8DPzX+XyeEuMXrAztRkCx5wEPBACsHYto08yJaNVLmThlSoZqnNbiHajVJM7FKU0DOWphXix64DxjPWLK9qtMz/Ogu76fKLrPHmMG9llcr792Emank1q9dK6smT29QVeBOJuv3a8+Ybj07gnxQdeZ1E8CdSdtbm6Dun3vBY88CEUIYKbkngEUAfAjYABwFkFI+Dox6eEwnFMo9cGbmkO5uoNM1MiVMH6UOa6RWkzQTJuNyG6RO2HTVrBjQUzFaKzW2QC+O0BCEr1WZaiLfc8iloEvaPD/z/rlRXEwNvdyshYr0XLhOk2l71iOoZ2ImnWW7i55KlQY0lcPKgRgvHp1xNTo26UDQrTIsLJ31Q+VgRxBkpJSld7UxDTCOM6SUZYNkqwfjHE2m2ad55m2lCV4mOtsiDLU3a7FGqvWzt2KVJuGTsKkxt7eEWdDR4pqeXZ99tCnEaE8bT73ozsqaSWdpsXF+vdEmeqIR1/fQ7vkt7YsSCQVc0ctr6DborTFiaG6uZ6EKvTa9U4fbDXr1n1/SRmKBiXyM0MX1TNqocTFxylA7iVRWSwp3NdgRBE8JId4CBIUQy4QQnwUe8PSoThCYufalmoKOxVCKXE4VeNUyF1cPtWtxDdlJHwXojakeOTrMYTsLH9Q0OLeM2UzntIM1Qzro1c57B2Xur3F5fuasBTvnFw4GWDUQ48k9LhhzXmmoTa872sRQe7NLxmyf3tLeKE2hAE+6uJ7JGg31rDh1gSl43FxP+xbBGoOem/OzAzuC4C+BU4A54DvAJPDXXh7UiYJ8UKfkhq003Ak64wR5P2WNxXjKUJxtE4n8w1IvzMXfYsf8Hoq7Fj7JCoPry+HU4XZ2HEq6Mr9nbLpOQD3ceydnXVXgJm0Gp016zx+sv5VGviOuzfM7ZUE7T+2drNuVadKzs1YA14LOtAjs0AsFA6wajLui5+R69kSbGGxvdid4bCZOgErhjoQCrhWVWrAjCF4rpfx7KeVZxusfgNd5elQnCAq+vOIb1tYUYrS7TWsKqd1MglOGVFsEHZkStXrVmDjNJeNS9Bxo6IYW9LQrrcu+4DHpPVWnYFcuRHvBaZNeNifrjks4CaaCEjxTs5m6O1lWGphUjd62iUTdhVAzaXtuSxNrFqi06nr96HbjZQV67gRdXgmz4YoKG4LuRLAI3m/zM9sQQvyNEOJpIcRTQojvCiGa3fyeV6g2bGSV5lYTdrN4CnUM7oONLTUqYU2YjMtNADeZrp0XbuJUDeZwMpW1FfwDOGWBO7/2XCZHTtoLNoJ790KiRgvqSvTqvZ52OsdaYQrWel2ntcZwluLUBe1Mz2XYWbegc2bxuBV0ptJQK3HCxJqhOE+/6G3AuFob6lcb8YAF1opiIcQNQN1+CSHEAuCvgPVSyjVAEPi9en/PS1TTFFYb5d9u3BdW2NW6FnS00N4Sdl1h7MRVc9qwBsY8l7EVjAPoaouwoKPFFb1a3SStiDeHWdzdWrcfvZILsRIG25vpbouwySU9uxbB8v4YkWD9fvSZtDN6bv3aBVeNPXpmWnX99OwHi6EgWOt1DdvNaLPSm3Ih6Oyg2pXeC2xEuYGslcRTwN9ooNsihEgDrQatytiyBS6+uPizq66Ca6+FZBJe85r5+1x9tXpNTMAb3zj/+3e+E970Jti9G37/9+d//573kFx5DmOH9nDG2z8OzcWX6oKr/4J/p4XtP7+fdZ/+8Pz9P/YxOO88eOAB+MAH5n//mc/AunVw553w0Y+ycDbN9/YeY9XdcWgJw5e+BCtWwK23wqc+ld9NAN/dd4xPvu3v4fWnwfe/D1/84vzfv+km6OmBG25QrxKk3vEvajF+4Qtw443z97/nHvX3k59k8LbbuHnnETpuDUNvFFpa4Cc/Ud9/5CNw113F+3Z3w803q/fvfz88+CCf2HWUeEsIvhqF4WH41rfU9+96Fzz+ePH+y5ez5oJrlMZ8zTXwXMnYi3Xr1PUDeNvbYM+eoq9z55zDHBcoDe8Nb4BDh4r3v+wy+OAH1ftXvxpmZvjywWmmZjPw1Q644gp473vV96XrDuatvbZMju/tOsLYz6MQa6q59sQ738maBaPsf+p5+HyZcNt73gNXXqnW/Z/+6byvw3/8V0ATvVufgT8vo0OVrL0IcPOLkwRvEvCJ+Ly1Nw8la++06RTfOzjF8vs6IBKEb34TRkYqrr3em25iIN5M63e+CR+8e/7v33EHtLZWXHuJj/4PAJ1f+E/42U+Lvyyz9lZL+P6Owwzc0QzLRuatvSKUWXu/dTjJ2ZOzhB76d1i+HK6/Xn1fYe2t+cgnAOj5sz+C1NHi7889Fz7+cfW+wtqbWX6lEnLG2itCmbV35VyGxS9OErszBn/4Nnd8rwKqdR99wqggXmKtKJZS/lBKecQ2hfm/+yLwSWAXsA+YlFL+rHQ7IcQ1QoiNQoiN6bT3TZfKwbQIyplwYz1tAGw5qG+UYyVapWiLhNg6nnA1mHw2lbNt6guUVWQOX6kHOSkJ2nBDmTh1gQoYp+qoiDUbAtrV0NW2QVJGV0inME32oE1TH8zzS5CrI4Brxmqaww7OrylEYi5bV963eYxOzm/Ngnb2HJmpvWEZmIkT4ZC99RkQKo5X71yJXE46OrfeWBMD8ea6iyzNmhq7aDHmoSRcJohUhZSy7Au40fj7JLCp9FVpv1ovoBP4BdALhIH/Bd5WbZ8zzzxTHg/c/Mhuuei62+SOiemy31/4b7+Qf/qNjVpo3frEi3LRdbfJLfuP1dz2lsfVtk/uOVo3vav++wH5u//9gO3tP/WzLXL0fbfJxFy6LnrL//4O+bHbn7G9/d2bD8hF190mf7V13DGt/ZMzctF1t8lvPbTD9j73Pz8uF113m7zvuYOO6T2y87BcdN1t8hebD9je5ydP7pOLrrtNPrLzsGN6t2/aKxddd5t8dt+k7X2+/dBOuei62+TOiYRjel+7f5tcdN1t8vD0nO19/uPnW+Ti990mp2edr5dP/ORZufQDtzva5303b5Kn/tNPZS6Xc0zv3d9/XJ738bsc7fNHN/xGXvrJux3TklLKt375Ifk7n7/f0T5XfvaX8s3XP+iYFrBR2uDL1YLFps16BXBlmVe9uBzYLqUcl1KmgR8C57n4Pc9Qyxd72nAHm/YcLfudUyRtdAM1sW6kA4DHd9dPeybt3E+Zk/UFADPZHHOZnG2fr0kP6guoOs1yAVVLAPX5mZM222dYUSiEqv/8Wh1YBG4Cxnl6Ni1Ik56U9SU1OEnFtdI7Npth92HnVkiyxrSwSvS2TSTySR7O6Tk7PzNTSWruZmCimmton/F3Z7mXC5q7gHOEEK1CpaxcBjzr4vc8Q63sjLXDKv/84JT7CmMnAbLhzha62iI84UIQOAmmgruAcTJtX8iZ6I42GQFj54zEFOB2s0AA2lvDjHS18HQd9Jzm9YNqKNbVFqkrQJ2n54B5LR9QM37ruX9mqnEkaCfJUCEveOo4P6euE1AppABP1ZFEkUjZqwq34tRhlcZdj2Jktz1IET1D0Hk1zL5a1tCUZUh96dD6uvMIpZQPAzcBj6LcTgHg+np/z0skq8wQBmURAGzaraHSt0LNQjkIIVg73M4TLqyRGSN91C764830xZrqerBn6tAoQT3cjbIIQD1srjRmB9fTrDCujzE7P7+mUJDl/bG6r6fdVGMTffFmemNN9dFzaK2C6lEVCtQn6GZS9qrCrXCTGWW33UoRPZeZUbVQzSKISWNIvSwZWi+ljLshKqX8JynlSinlGinl70sp3Q9V9QCJVGFwfTmsWRAnINDiHppJZQkIbBV4gRJCzx+crss0BWy1s5hPs51NdWqUUB9j3j6R4JjDfO1EHRozqId71+Gk4yBgtXqTajh1QbyuQr2ZlFJQmsP2NXRFTwkep+4FJ6nG5eg5Ra2eW+XQFAqyos5WGqrY0Rm9vlgz/fH6BJ2TqncTbiw6O6hmEWwUQvynEOJVJ2rBl9eoVS3aGgmxrC/GEy76uJgwK2Htal3rRjqQsv6ipGQq49wcXtDBC+POhY+TdhZWrKkzTjBTh4YOsM6w8Jzez5k6z+/UBR11VRgnUllaw840dFBxicmZtGP3Qj2uDIC1wx1sHZ92XHiVSGVtVd2WYt1IB0/sPuq48MpJVbgVpy6ozyp3UmVvoikUZNVgXIv3oRyqqRTnAD8CLgbuFULcIYT4ayHEck+O5ASEnR7spw23s2nPUddBHKeuGtNnX0+cIJXJkc5KxxaB6Rd12vqhXlfN2uH6guL1WiCnjXQgBDy2y1l2dL7y1iHzygf9dzk7P1U17VxDP32kU9FzeD2dVGkX0VuolBWnhXP1BFMVvU6m5jK8MO6sJXW1EbHVsG6kg23jCUezF3I5aSRq1HP/Onhiz1FXsxcqoZprKCOlvEdK+T4p5dnAH6GKyT4qhHhMCPEF7UdzgsGOpnDaSAdHkum6c6ZNJGoMpSlFd7SJka6WuqpTnbQVtuLUBUZMxCHNhMMSfhOdbRHGetp4rA5GCc4tgmhTiBX9sTroZWgKBQg5CKYCDLQ3M9TezGOOGXN9Guzy/iitkaDj8yud220Xaw1B51Sw1muBnL7QpFeHoKuHMS80BKsDq6DQXLKe8+skmcp6MsPY9sqVUu6TUn5NSnkVcCbwbe1Hc4Jh2kZmTcGd4C5OMJPKODaHTxvuqCuF1MngDyt6Y00Md7bw2G5nD/ZMjeyrali3sIPHdjmzuJy0FZ5Hb0RdU6f06mFcoB7ueiyQehhXKBjgtOF2x/ScphqbaG8Js7Qv6pwx2xzDWYrR7jbizSFH61NKaQRv63B91WFBFpSiegRPfYLODuyMqrxVCHGL9QV8HVj/fz12YMdkXDGg+ri4SeUEZ/36Tawb7uDFozOMTzmLtScc1CyU4oyFnTy6szGuGlCMcmJ6zpHFlTSCqXYD78X0OpicSbN9wv4gkHqyQKz09hyZcZSCPJN2nuVSoNfJ03uPOQpQO001tmLdSAePORSsiVTGsfUIqip/3cJOR4xyLpNDSvt9jayox4JM2hxTWQ4Lu1rpaos4FuR2YOdJ2QZMA182XseAA8By4///s1ADu6svkEgowKqhuOuAcdLmhCsrTNPbadaS06ZeVpyxsIP9x2bZe9Q+YzbN4Xoe7jMMLehRJ1rXXPVsr2owzX2nD3c91o6i51zLS8w5iycV0RvpIJOTjuZLuLN4OjicSNku9JLmVMB6r+dIB88dmLKd0JCw2fW3Ir2FHTy264jtALWTMZWlEEJwuiFYdcOOIDhdSvkWKeWtxuttwAYp5Z8DZ2g/ohMISZsplqePqArjdB19cfK0bE64ssJMX3UqhArB2zoY8yLFKJ0yZkXP+eJf0R+jJezMr12vDx3UxKtYkzP3ghuL4JShdsJB4fj86tbQ6xA8rgSBEaC2ez1TWWMqoAsLKyftK0duGDOo8zs2m2GbTQuynuLDInoLO9h6cFpb12MTdgRBrxBiofmP8b7H+Le+rksnCewGydYv7mQ2nXM5x9S5ltcaCbFiIF5HMK6+4C2oGcbN4YAj91Cyzrx3sPi1HWhBSYeBdysCAcFpI+2OGGU9eeEmmsNBVg8589vXm8UDKv99uLPFuWCt83o6DVC7cZ2A8/YrCQ2MGezHCZzOkphPTwlWt67oUth5Mt8D3C+EuFsIcQ/wS+BvhRBtqFhBw3FwataRRloPnJioZxpa8iM76z+merW8MxepYKqTlDI3wdRwMMBpCzocXf9knXnvJk5f2Mkzeydt+7WTdQTei+iNdLJ5/1Q+yF0LiTqzTgr0Oti0Z5KMTYvSjYYOzgLU9aYam3AaoE64cFsCdLQ6yzSrN8PMxJK8BWmP3ozL8zttuN0IUDdYEEgp7wCWAe8yXiuklLdLKRNSys9oPRqbePtXf83rv/CAq9GJtZDK5sjYNFEH21tY0NHCIy6EU70P9/pFXUzPZdi837414qTBXTmcvqiDpx0y5no1SlBaVzorbQ8CqSfwXkovm5O2qzjraVpWSm8mnWWLzbRAN8FbUIJn7+Qs+ydrB6gLxXJu7l8nz+yzF6Cup8FdKZxkmiUdjqkshQpQd9hmzG4SNQBizWGW98UcZ+7Vgp2soSDwSuAi4FLgWiHEu7UehUNsPagKRrwc6OzURD1jUSeP7DhSV2FZNicdd+c0UY814iZYDCpzSDFmu4zSrQbrzPxO1lmwY2Kdw/x3t+d3hoMAtZu1YsK8no/bYCb59hkuzm/diH1BXm/xoRVmptmLNhIa8umcbizIhZ1s2X/MVoDa7bMHRiaWw5TqWrDjGroVuBroBmKW13HDYmMozG92eOceKvSrsXfD1i/qVNk0NrSsUrgJIA13ttAfb2Kjg2vhpMFdOZiMy26coN68dxNO/drJOrpXWtEdbWJRd6tDevWf33BnCz3RJlvuNrfBRlBzryPBgK3zK2jo7iwQsCdYk3V0jq1E71Eb5zfjwk2ap+cgQJ10GSMw6TlNca4FO4JgWEr5eqNR3IfNl7YjqAPmxKSNOw57RsOp79DUzOs5JjfmsBCC9Yu6HFsEThrclaI3pqqa7cYJ3GTxmDh9YacDeu4EDyhht3FnbQtPSkky7byBnxVCCCMN0Qljrp9eUyjIKQvittZMXvC40Jj74kqQ21FWEhosgpUDMdoiQX6zvfazqMPiKQi62vfPPL9mm9PXysHM3NvoIiZZCjuc4CdCiFdoo6gBZm+PjTvt5+86hVNBsHIgRmskyKN13By3Aav1izt58egM+ybt5Wona3RVtYMzDMZsyw/r0nUCyuLaNznLniO1G6YlXPrsATaMdjExPVdT65pNq4IkNz50UOe3fSJRszhQh+sEYMPiLjbtqR3nyfu0NVzP3+w4XHO91DNroRShYIAzFnXyGxtKmekCdmOBdLRGWNoXtUlPKUV2RtJWwtLeKB2tYVuCzi7sCIKHgB8JIWZ0zCPQgUQqQ1dbhMmZNM8fdNZgyi7yKZY2p0CFggHWjXTUFTCuNQmtFtYv6gKw7R5KuihIMnHGwk4OHLNX8esm793EhlF1jr+2sfh1WARnLVb0aj3chRbU7q7nWaPmPaxBT4PrBNT1TGVzNdMsZ9LufdqgBM+hRIoXxqsLVp2CbsuBqZoN4dzWEeTpjXaxcceRmtl7buNXoALU6xd12RI8tn/TxjafAs4FWnXNI3CDXE4ym85x4TJVyqDzYlhRTyvj9Ys6eXbflOMh2jN1TPCyYtWgskbsuqWS6frz7E3YZZSgxyJY0R8j3hyqKQjS2RypTM41vSW9bXS3RXi4Br1CBpa767lmqJ2WcLA2PU2Mcv2iLoSgplaZcJnXb8IU5DUFqyZBd9ZoF1LCxp21rmeG5nDA0fD6cjh7VGXvPVujpbjb+JWV3o5DSQ4ecz8dEewJgueBp6RXwzIdwmSaKwfj9MaaPIsT1BPUOWNRJ9mcdFzs4dYiMK0Ruz5DHYtx5UCM9pYwD2+zKQhcasyBgGDDaFdNQeDWzWZCCMFZi2trXWYDP7eMMhIKcMaiDhvn5951Amo054r+GL+ucX71dqotxWhPGz3RSE3Bo+v+rRvpIBwUNa+nm6pwK0zFqJYgT2hQisBiIWvif3YEwT7gHiHE+4UQ7zZfWqjXAWt7hLMWd3qWOVRP/vQZizqVluXwmOodpGKFskbsprC5X4yBgGKUD28/VHPbetsYl2LDaBfbJhJVG7TpyAIxcdZoF7sPV4+9JDT4mE1sWNzNs/uPVW0foItRgtIqH9l5pGohW0JDsBiUYN0w2mWDUWaIhAKEHbb0LkVzOMja4Y6ajFLHswAw1NHCSFdLTUE346Lq3YpThuK0RoK2XKV2YOdqbwfuAiKcAOmjhfYIIc5a3MWLR2ccNUCzi3oegHhzmNWDcR7aVps5FtNyb+6fubiLnLSZoqdJCzpnTJmnB6qYp4W8dx1aUDdQPRbitmWAFWfbiEsk8zECPYJOSnikijvDTSfXUpw12kUyla2a368jSylPz3heq+X3z9QxQrUivdEuntwzWbVCvN6W1+WwYXE3v64REK+35XUpQsEAZy7qbJwgsKaMngjpo1aNyDTHdKZRldJxqumdM9bNo7uOOKp6nkm594ueuaiTYEDYctXoMk/PNhhzNcGnI+/dhB0tSJfPHlRfpWhT9biETg399IXKnVFNa3YbT7Jiw2J7gi4UEERcauhgiStVoee25sSKDYu7yORk1Srceltel8PZo10cTqSqTkhL1jGmshLMgLjTGdvlUG1m8Ydq7WxnG92wMmgzX/jXNtwTTuF0mLyJc8e6mcvUzsawwm2BF6je6KcuaOdBG9bIjIasGlBB6mhTqDrj0pSVAarP0RkLO6vS05EXbiIYEDXTEHVUiprIuzNqMEpd9PrizYz2tFW/nkaGmZtUYxOrBuPEmkJV3TU6ak5MmK7aWoLcbcaXCTPzq9r1TKbdZ9CZMC1IJ8WklVCNy/2xNSZQ5vUe4PdcH4FDzFjcKKFggPWLu3jIhhbsFGYKotMH4KxRlY3hxD2UF24u/bDnLunmid1Ha2Yt6cizB4zr38nDVc7VbbfFUmwY7WLz/mMV0wJ1BTdNnD3axXMHpjmSKK916cqqMVHLneGmk2tZeos72bjzcMV6nJmUPtdJMCA4c3FndYugznnM5dDeEmbVQLyGINdngSzubqU31lTTYtVlgawd6SASDGgJGFdbTV+mOCZQ+opyHAbTlLoaXra0m60Hp6v6qevBTLo+zaS9JcwpQ87iBMk51S3TTZEJKGskk5M1XWX1tLyuhLNHu3lhPMHEdPlCKKf1GLWwoUZaoE6LAArujEoPWyGLR9/5ZXKyYqxHRzFgMb1ujiYr1+MkUhkt8YECvS6ePzjN4QqCdSaVcR2YLqX36M7Ks0JUjYseemZA/NfbK8cJlBKmZ600h4OsHWnXEieoNry+bGyg5PUp10fgEKW++/OWqHqCB1/Q6x5KuPDlnTvWzaO7jtrvzpnWY56uX9xJOCiqXgszz16Xlnf2WHU/s47eKlasM7SgSua3jkpRK9aOtNMUClQU7LqsORNnLuokIOChitdTn08bCgHxStlfurJqSulVup5uO8eW4pyxLmbS2Yop3cr1pedZAHV+qgJ+fkA8a9RA6byeG0a7ePLFSdsT2SpBj33ZQJQG51YNxmlvCfPACxPa6dS7QM4Z6yaVydluWjajSUNvjYRYO9xRNU6gM7gJcOqCdlojwYruoUKNhB56zeEgpy/sqHi/81k8mh7uplCQDaNd/GprJXpZLQVJJuLNYdYsaOfBCuenxnDqYyTDnS0Md7ZUOT89GWYmThvuINoUahi9c8d6EALur0BvRqNFoOipBIpy61NnoN/EeUt6yOak6zjpSSgIzLROtViCAcE5Y108oNkiqNc1BMrPG3AQJ3DbX96Kc5d089SLk0zN1vCha6IXNtLYKgkf3fQAzl/aw9N7j5V1L+QD7xq1yvOW9PDcgemy9Qs6752Jly3t4bFdR8tqeTp92qDcGecv7eGBFw6VbY+g2yIIBwOcXUWwJjQGb0EVzp26oJ0Hts5fn7mcahioy60HsLQvSl+sifvL0Eu6LBwthzMXddIUCvCrMvSc4LgIAiFEhxDiJiHEZiHEs0KIc+3uO5Oab/qft6SHPUdm2H24dkMyu3DzAOS1OpuCYCatz2d/7lg32ZysGCDTmWdvIs8oy8RpdNRIlOJly3qQsrw7MJnKENSU7mji/KXK/ViOmcxoqJouxQVLe8hU0PJ0ZtWYeNnSHqZmM2UH8Xgl6HYcSpZtIDiTymqLJ1npPbrryLwkitlMFin1Pgt5wbp1Yl4AXrebFJSFfNbiyoLVLuwMpukVQnxACHG9EOJr5ssVVfhP4KdSypXAWuBZuzsm01nCQUHEktZ53pLK5li9UAuy/ht2zlg3j9uME+h82M5Y1EkkGCjLtEBPFXMpLjD6PpUzv3XUSJTitAXtxJpCZemZsR1dwVRQ/fs7WsPl6aUyeetUF84wtLz7n59/D3Vm1Zgwn59yzMTNPOZKOH9ZecEqpdSW0WbFy5YYgrVEObJ2KdBKb2kPhxIpNu8vnjiX0Jw4YaW3ef9U1Yr7WrCjNv0YaAfuBG63vOqCECIOXAh8FUBKmZJS2k66NzNsrFjaF6U31uTaPCqi47IU/Nwl3aSyOdtN2XQxStOHXskayVemamQmqwfjdLVFuP/5coxSvxYUCgY4Z0l3RcalW4MNBgTnjnXzwNaJedkgOvoolaI5XDkuodunDWoQz+rBeMX7p1sQLDOe11LBarb01uk6AZVEEQkF+FXJ+eksPrTiZYYFWXr/vLAIoGCxukmYsSMIWqWU10kpb5RS3my+6qYIY8A48D9CiMeEEF8RQrSVbiSEuEYIsVEIsXF8fDz/eTkfqRCC85Z088ALh7SNb3ObnXH2aBeRYID7nhuvuW1SY1k9KF3CZ1EAACAASURBVFfNM/vK+9CTab1ZNaD6Dp23pJtflmOUhuBxM4ijHM5f2sOuw0l2HSp2L+hOdzTxsqU97J2cnTefIOmB4DHpbTkwNc/dltCYh27F+ct6eGTnkXn1CzMeWCBCCF62pJsHXiheL164LUEJ1vWLOucJHq/oDbQ3s7QvOo+erpbXpVg9pBJmyglyu7AjCG4TQrymbgrzEQLOAL4opTwdSADvK91ISnm9lHK9lHJ9b29v/nPVz3v+jTtvSTcT03Pa5hMkU1lX+cytkRBnjXZy33O1b46bDKVyuHC58qGXc2UUZjHrXYwXLutlfGpu3gB2M9bitkaiFHmt64X5D5vuBxsKWtevSrSuxJzedM759ErPT7/PHtTzU2rBpjI5UtmcdgsE1P2bmE4VrRcv3JZWepv3TxXVu+iuAbHi/KU9/Hr7YeYyBcGa1JxBZyJoKGK/KqOI2YUdQfDXKGEwawylcTuYZg+wR0r5sPH/TSjBYAuVgnNmPcEvXUhFE1JKZioIHCe4cFkvWw5M1Sx201nUAipFr6M1zL1b5lsjXmlBpt+3VCtJaM5yMbGkt42BeHMZrUtv+qGJRd2tLOhome9e0GzNmVg9aMQlSuIEXriiQOWjh4OiyJ1RTwdeuzAFuXW9FIb8eEfPml3oVYzApDeTzhalkHuROGGlt3dylh2H6kuYsdN0LialDEgpm433rgbTSCn3A7uFECuMjy4DnrG7f7JCcG6kq5UlvW3cs+VgvYeWh67xgxcsU5ZMNfdQLqdH6FgRDAguWNbLfc+Pz9MQvNK6hjpaGOttmyeIZzzIcgHDvVAmO8MrxqzodfPgtuI0y6QHrhNQ7raXLekp0vLynVw1BxtBWbBnLCx2n+iatVAOQx0tjPW0FQmeQh8l/fROXdBOrDlUJMh1thAvxdljXQQDokjQzeQtEO8syEr1ErVgK8dOCPE6IcQnjdcVdVEqxl8C3xZCbALWAR+zu2O14quLV/Tx8PbDVdvO2oGujpmrBmP0xpq4r4qVkk9h08xMLlzWw/jUHM/uK5+54IXWfMHSHh7efqjIHPYi2Gji/GXdHEmmecYyFSoxl/GEMYPSuiZn0mzaU9DydFtzVpy/rIf9x2bz3SwLLa89omfUZxwy3CeFecXeXM/zl/Xw0LaC+8SLmhMTQUOwWpUj3cWHVsSbw6wdbueXVkHnoevLtFh/aSMmWQ520kf/FeUeesZ4/bXxWd2QUj5u+P9Pk1L+tpTSdvu8aozlouW9pDI5Htzmzj2kc8rVBct6uP/58YqzTHVX+pq4aLmyRu4tWRgzqazWpmVWnL+sl9l0jkcsvY68yHs3YZr7VivQbWynGi5c1ktAwN2Gyy2Xk9rjO1acnz8/Rc+rYKOJi1YUr5lC8aY31/PiFb3MpLP51uleuS1NXLKyl32Ts/m4hM5ZC+VwwbJeNu05mk/aSM4ZDQM1J06A4jUXrejlV1snSGUqDxqqBDvc4DXAy6WUX5NSfg14lfHZcUE1i2DDaBct4WD+wakXOh+4i5b3ciSZ5qkyxTrgXQpbX7yZVYPxeW6pxJzepmVWnDPWRSggigLkbtNwq6Ev1sypC9r5xeZiQeAVvc62CKcv7ORug57ZMsAri2Ckq5VlfdH8+elu11GKNUPt9ESb8vS8ZpTnjvXQFApw9xaTnncxAlAeA4C7N5cIOo8E66Ur+5AS7n3OuH9GbZLuxIk8vRV9JFLZuua421ULOyzv2x1T0YhqWRPN4SDnLunmni3zfeNOaYCeB+78parXSaU4gemH9eLhvnB5Dxt3Hi5qVTCT9ibLBSDWHOasxV15Rgl6B3GUw6Ur+3hst0Xr8tACMek9+eIkB6dmLYzSG0Zi0vv19sNMzaY9sx5NBAKCi1f0ct9z42SyOc8ZZUtEPa935wWdt4K1P97MKUPxefR0NQwsxakLTMFasOi8upYA5y3tJhIKFClGdmFHEHwceEwIcYMQ4uvAIzjw6etGrfTAi1f0sutwsu7oOZRvY1EvuqNNrBlq577nywsCLwNkFy3vJZ2VRYUmupuWleKyVX1sOTCVb/eRTHuTxWPCqnWlMjnSWemZRglqfYFy13jtOgG4ZGUfmZzk/ucnLAVJ3l7PY7MZHt111NOsGiu9HYeSbJ9IaH3uKuGSFX08susIk8m0au0SDmprGFgKU7Deu+VgXrB6Fd8BJbDPGesuUsTswk7W0HeBc4AfGq9zpZTfc0xJA8ysiWoL5eLlyvxzkz2kW/O6ZEUvj+w8Una4iZcBsvWLumiNBPOmKZiFct4yEqDgXvDYIrBqXXlG4iFjXj0Ypz/exD1bDhY0WA8f7jMXdRJrDvGLzQcLLQo8vJ7nL+shFBD8YvPBgtvSS8G6vLBevExkMHHJyl6yOckvt46r1i4e3jsoFqyJOXdta2zRW9HLtokEO0oKH2uh2qjKlcbfM4BBVP7/bmDI+KzhsOOyWdjdylhPm6s4QVJzu9jLV/eTk+R9oVZ4GSCLhAKcv7SHXzx70JIp4a1FMNYbZaynjbtM89tjV43VnXHM6Ljq5cMthOCSFX388rmJPD0vGVc4GODC5b3cvWVc6+D6Sogb7r17tlgYs4fMa2F3Ie1bd0vvclg30klHa5i7N49rbe1SCVbBOpPWN5SmEi5d2Q+U5zXVUM0ieLfx91NlXp90fIQaYFd7vmhFLw9tO5QXHE6hu13smqF2+uNN3PnsgXnfeVlNCUoI7Z2c5em9KsXSi6Zlpbh0ZR8PvXCIqdm0MYjDe3qTM+l8DrWXFg+ooOPUXCYf9/FS0IEKAk5Mz+VHPHpN75KVvWzeP8VWo0rfq2CxiUtX9vHwtsOMT815KuRApZFetLyXe587yLQHnVVLEbfEzdwMu7KLhd2tjPW2OY4TVJtQdo3x9tVSykusL45T1pBdl83LV/czl8nZau/gho5dBAKCy1b1c++W8aIce/C2mhLgspV9BAT8/BklhHSPAiyHS1f1kcrm8jS9Nr9NreuWx/cCEGv29uE+f1kP4aDg9if3Ad5aBKDiEkJgoec9YwZFL6S5pXc5XLJCrZefPLWPeEvYU1omvYnpFA9vO+T5tQR1PbccUIK1IfRWKMHqRBG2c4cfsPmZ57DLoDcs7qK9JczPnt5fF50ZDxqzvXxVP4lUloe2Fad2eR0g6442ceaizjxTTsx506LAirMWdxFrCnHbJsW4vNbQTa3L7Lga91gQRJtCbBjtYqeRkBD12MLqjjaxdriDiWkVY/LavbCkN8pIVwtHk2laNLf0Lof1i7uINoWYTec8F+IAFy5X9SDHZjPEmhsgeAzB2ggLBJTgSWVzjprQVYsRDAghzgRahBCnCyHOMF4XA63uD9c5ZtJmsKz6xQwFA1y2qo+7Nh+sOLS6GrwYbnLukm5awkHufKbYPZTPGvJQS3/56n6e2XeMPUeS2ttZlEM4GODCFb1589TLmISJy1b15d/HG/BwX76qP/++N9bkOb3LVhbOrynkrYYuhOAyw9fsrQhQiIQC+WI2r4UqQFdbhPWL1Ozk/rj3925JbxuLuhXL9FoJAzUhMdYcKuuKroRqK+qVqFjAMPBpCvGBdwMfcHGcdcOJy+YVqweYnEnn/apO6bSG9WpCzeEgFyzr4c5nDxTVOCTTGSKhACEPze+Xrx4A4M5nDngycaocrIyrEebwy1cXGHMjtDwrPa8DjgAvP6VAz2sNHeAVBr1js+6GotumZ1xPs52G1zAVh3qqcJ1CCMG6EVWK1QglJRwMcOnKPu581n6coFqM4OtGPODqkhjB66SUP9RxwE7hJOf+ouW9NIcD/OwZ+1LRRNKjnu+Xr+5nnyVwa9LyWmMe7WljSW8bP316f830W124tEgQeC94FnUXRlrEW7ynN9zZWKN4Rb/qW3XV+uGG0NuwuKshdEyYVb+iITZIYX0u6481hN6fXDBGe0uYN57ZmPv3itUDZeeRVIKwU4ErhHgtcArQbH4mpfzneg6wHsRGY/LMfzqTiek5th6cZt1IB29f92auPetakukkr/n2/Nj11euu5leb1vD4nl20Df3XvO/fuf6dvGnNm9g9uZvf/9HvF333/MFpunKv58n3fYAtE1v409v+dN7+/3DhP3D52OU8vv9x3vXTd837/mOXfYzzRs7jgd0P8IG7lAGVzuZ4ZNcRhjtauenNX2LdwDre+D9f4ue7v8jpCzuK9v/SFV9iRc8Kbt1yK5968FPzfv+bv/NNRtpH+P5T3+eLG7847/ubrrqJntYebnj8Bm54/AZ2HU6y9+gMoJjmY9f+gtZwK1/4zRe48ekb5+1/z9X3APDJBz7Jbc/dVvRdS7iFn7z1JwB85N6PcNf2u4q+727t5uarbmbx+27nSOgGlg7vK/L9DseH+dbrvwXAu376Lh7f/3jR/su7l3P9ldcDcM2t1/DcoeeKvl83sI7PvOozALzth29jz7E9AGwbT3BwapZ3Xfha/vVy1Q7rDTe+gUPJ4lbOl41exgcv+iAAr/72q5lJzxR9f8XyK3jvee8F4OIbLp53ba465SquPetaHtm1n2vueOM8v/bV667m6nVXM5Gc4I03vnHe/tXWHsB7zn0PV664Uuvas+Izr/oM6wbWcee2O/nofR+d97259v7ih1/mZ7u+wlBHS9H3TtdeKe546x1l197hRIqWcJCHr/kl4G7tAbz/zvfz4J4Hi763rr0/+NGfs+3o01gNrHrXnolzh8/l45d/HPB27VXje1evu5odR/Zz+udexdF/fOIRKeX6eRuWwE7Tuf8G3oTqGCqA3wUW1drPC5iN2+z26njF6n72H5udN7S6FnI5WTQTWRfCwQDxpjCHEoXhGHPpLAFvXb4AdLZG8u89TNMuwlvOXthQemO9bWwY7WqYVrlqMN6Q4ObxwitPGZgnBLxEV1ukIdaqifaWMA3wsh0XRJtCrB3pqL2hgZoWgRBik5TyNMvfKPBDKeUrXB6rbaxfv15u3LiRr/xyGx+9/Vk2fegVtnxthxMp1n/051x78VLe+8oVNbc38ZYvP0Qqk+Omd57n5rDL4psP7uCDP36an/3NhSzvj/GOr/2ao8kUP/6L87XTsiKXk4x94A4APvvm07ly7ZCn9EBZQPc/P5HPmvDhw0djIYTQYxEA5nitpBBiCEgDo24Orl7kg8U2M2y62iKcPdrNHU/uc9SEzsuKw1euGSAgyKdWejVRqxSBgOCcMeX3PatB/t9wMOALAR8+TgLYEQS3CiE6gH8HHgV2AN/18qAqIZFynmFz5dohtk0kigK0tTDj4TCVvlgzZ492c/umvUgpPZuxWw5fett6vvPHZzPQ3lx7Yx8+fLxkUJWjCiECwF1SyqNSyptRsYGVUsp/bMjRlaAeBv3qNQOEAoJbN+21vU/CYy39NacN8sJ4gi0HpjwbdVgO7a1hzjOGnfjw4cOHiaqCQEqZQ9UOmP/PSSnLT1hpAOqZPtXZFuGCZT3c9oR995CXFgHAq05R7qHbN+0zZjA3LkDmw4cPH6Ww42P5mRDiDaIRVSw1UG06WTVcuXaIF4/O8OguexMxvXbX9MaaOGesWwmCBrR88OHDh49qsCMI3g38AJgTQhwTQkwJIew73DWi3sDqy1f30xQKcOsT+2pum8tJNbDC4wDua08bZNtEgqm5DO0NaLTlw4cPH5VgZzBNTEoZkFJGpJRx4/94Iw6uFPVq6rHmMJeu7OO2TfsqDpE3MZvxti20iVevGcy/74v5wVsfPnwcP9gpKLvLzmeNgBuXzZVrh5iYnisa21gOXo6OtKKrLUKf0aysOxqpsbUPHz58eIdq3UebhRBdQI8QolMI0WW8FgPeVyOVgZuc+0tX9hFrDnHzo3uqbteIcYcm/uLSpQAsaGD1pg8fPnyUoppF8KeoQfUrjb/m68fA570/tPmoN1gMqvvn69YO8ZOn9uVHDJZDMu3toBgr3n7uYu6/7hLWLGj3nJYPHz58VEK17qP/KaUcBd4rpRyTUo4ar7VSys818BjzSLrspf+760eYTee4fVPloHHS40ExpWh0F0sfPnz4KEVNtVdK+VkhxHnAYuv2UspveHhcZaFiBPVr6muH21nWF+UHG3fz5g0Ly24z47CNhQ8fPnyc7LATLP4makDN+cBZxqtmEyMbvxsUQjwmhLit9taQyeZIZXKuLAIhBFetH+HRXUfZenCq7DYJzYPrffjw4eNEh506gvXAy6SU10op/9J4/ZUG2n8NPGt342RaTzbPb5++gGBA8INHygeNvZhX7MOHDx8nMuwIgqeAAZ1EhRDDwGuBr9jdR9eQ995YE5es6OOHj75Ydp6xk3GYPnz48PF/AXYEQQ/wjBDi/wkhbjFfLul+Bvg7oOLAUCHENUKIjUKIjePj43kGrWPe7ps3jDA+NcfPy4yx1EnHhw8fPk4G2OF2H9JJUAhxBXBQSvmIEOLiSttJKa8Hrgc1mCaZUr57HS6bi1f0saCjhW88uIPXnDpY9N2MRjo+fPjwcTLATouJe1EzCMLG+9+g5hLUi5cBrxNC7AC+B1wqhPhWrZ1mNLpsggHB285ZxEPbDvPcgeKgcTKVJRQQnoyq9OHDh48TEXayhv4EuAn4kvHRAuB/6yUopXy/lHJYSrkY+D3gF1LKt9XaT7fv/k1njRAJBfjmgzvn0fn/7d17dFT1tcDx7yYkhCAgEKSBoCCtFoJheFQU0QYusngIWguCC3lIkWsFEVvloXchuNZFtKzCVdvr5SqCFGIsKraKRdSABnt5BGIMCdIKESOKkBQEkkAe+/4xkyGQyWTAeWb2Z60s5rx+5zeHM7Pnd37n7J+1Bowx0cSXn70zcP6K/x5AVf8BBH38wZq7eeL9dH9/2xZx3JaaxBu7izhZ60ljZxoLCwTGmOjhSyA4o6pnayZEpCng+wDAXqjqFlW9zZd1yyv8nwNo0o1dOH22ijf3fO2e90MfWjPGmEjjSyDYKiKPAc1F5FacYxP8NbDVqutcH4H/vqQdnS+nV3JrVm0rpNqVnrrsbFVQEs4ZY0y48CUQzAOOAp/hTES3EfiPQFbKk9IAZQW975arOXDsNJsLjrj308JGDDPGRBFffl43B1aq6v+CMzWEa15pICt2IXcfQZx/7+YZlvIjrmybwAtbv2Bojw6Unq2kdYKND2CMiR6+fKt+gPOLv0Zz4P3AVKd+5RVVNBGIi/FvIGga04RpN3dlz6Hj7PryX5wsr6RlvPURGGOihy/fqvGqeqpmwvU66LmTa67di4jfyx7btzNtEmL5n61fcPJMJa0sEBhjoogvgeC0iPSpmRCRvkBZ4KrkWWkAB5RvHhfD5AFdeL/gO46ePMNlQRiUxhhjwoUvgWA28GcR+VhEPgYygJmBrVZd5WeraO7n/oHaJt3YhdgYZ2ujZXxswPZjjDHhxpeBaXaKyE+BawEB9qlq/WM9BkhZRWBv62zbIo47HJ34c3YRp1xjEhhjTDTw9RrIzzg3QllvEQn6CGWBDgQAvx16Lf93sJhbe3QI6H6MMSacNBgIXCOUdQNygCrXbAWCGgiCkQPoR63j+XjO4IDuwxhjwo0vLYJ+QA9V9UtaiUtVXlFFuxZ2f78xxvhbSEYouxRllhXUGGMCwpcWQc0IZTuAMzUzVXV0wGrlQVlFld8yjxpjjDkn6COUXaqys1WWHtoYYwLAl9tHt4pIB5x3DgHsUNXvAlutuoJx15AxxkQjX0YouwvYAYwF7gK2i8iYQFfsQhYIjDEmMHy5NPQ48LOaVoCItMeZdG59ICtWm6rzL94uDRljjN/5ctdQkwsuBRX7uJ3fVLvuXLUWgTHG+J8vLYK/icgmIN01PQ54N3BVqqsmEFhnsTHG+J8vncWPisidwECcuYZWqOqbAa9ZLa5RJO32UWOMCYB6A4GI/BjooKrbVPUN4A3X/FtEpJuqfhGsStqlIWOMCRxvLYLlwGMe5pe6lo0KSI08qMluUfvJ4oqKCoqKiigvLw9WNUwUi4+PJzk5mdhYS1FuGh9vgaCLquZeOFNVd4lIl4DVyIPqaue/tfsIioqKaNmyJV26dAnIqGXG1FBViouLKSoqomvXrqGujjF+5+3un3gvy5p7WeZ3NZeGavcRlJeX065dOwsCJuBEhHbt2lnr0zRa3gLBThG578KZIvIrIDtwVaqrprP4wj4CCwImWOxcM42Zt0tDs4E3RWQC5774+wFxwC8CXbHaqj30ERhjjPGPelsEqnpEVQcAi4BC198iVb1RVb+91B2KSGcRyRSRAhHZKyIPNbSN+zmC2PAbVP7NN99ERNi3b59P6y9fvpzS0lL39IgRIzh+/DiFhYX07NnT4zbTpk0jPz/fa7mLFy8+b3rAgAE+1afGK6+8Qs+ePUlJSaFHjx4sXbr0orb3t5ycHDZu3HjR2xUWFrJu3Tr39K5du5g1a5Y/q2ZM46OqQf0DkoA+rtctgf04B76pd5vO1/TUq+a+reUVlVojPz9fw8HYsWN14MCB+sQTT/i0/lVXXaVHjx6tM//gwYOakpJyyfVo0aLFJW+7ceNG7d27t3799deqqlpWVqYrVqy45PL84eWXX9YZM2Z4XFZRUVHvdpmZmTpy5MiA1ClczjljfAXsUh++l4P+E1tVvwG+cb0+KSIFQCeg3p+8qkoTgbgYzw2YRX/dS/7h7/1azx4dW/HEqBSv65w6dYpt27aRmZnJ6NGjWbhwIQBbtmxh4cKFJCYmkpeXR9++ffnTn/7Ec889x+HDhxk0aBCJiYlkZmbSpUsXdu3aBUBlZSWTJ09mz549XHPNNbzyyiskJCSQlpbG0qVL6devH+np6SxevBhVZeTIkTz99NPMmzePsrIyHA4HKSkprF27lssuu4xTp04B8Mwzz7BmzRqaNGnC8OHDWbJkyXnv46mnnmLp0qV07NgRcN4qed99zu6hnJwc7r//fkpLS+nWrRsrV66kTZs2pKWl0b9/fzIzMzl+/DgvvfQSN998M1VVVcydO5dNmzYhItx33308+OCDZGdn85vf/IZTp06RmJjIqlWrSEpK8lhO//79WbBgAWVlZWRlZTF//nwKCgo4fPgwhYWFJCYmsnjxYiZOnMjp06cBeP755xkwYADz5s2joKAAh8PB5MmT6d27N0uXLuXtt9+mpKSEqVOncuDAARISElixYgWpqaksXLiQQ4cOceDAAQ4dOsTs2bOtFWGiSlBzBl3IdRtqb2C7h2XTRWSXiOw6XVpK89iYsOuw27BhA8OGDeOaa66hbdu27N69271sz549LF++nPz8fA4cOMC2bduYNWsWHTt2JDMzk8zMzDrlff7550yfPp3c3FxatWrFH//4x/OWHz58mLlz5/Lhhx+Sk5PDzp072bBhA0uWLKF58+bk5OSwdu3a87Z599132bBhA9u3b+fTTz9lzpw5dfZbE6w8mTRpEk8//TS5ublcd911LFq0yL2ssrKSHTt2sHz5cvf8FStWcPDgQfbs2UNubi4TJkygoqKCBx98kPXr15Odnc3UqVN5/PHH6y0nLi6OJ598knHjxpGTk8O4ceMAyM7O5q233mLdunVcccUVbN68md27d5ORkeH+4l6yZAk333wzOTk5PPzww+e9lyeeeILevXuTm5vL4sWLmTRpknvZvn372LRpEzt27GDRokVUVFR4PB7GNEYhu+guIpcBrwOzVbXOz3lVXQGsAEj6cYp66yhu6Jd7oKSnpzN79mwAxo8fT3p6On369AHg+uuvJzk5GQCHw0FhYSEDBw70Wl7nzp256aabALjnnnt49tlneeSRR9zLd+7cSVpaGu3btwdgwoQJfPTRR9xxxx31lvn+++9z7733kpCQAEDbtm19fn8nTpzg+PHj/PznPwdg8uTJjB071r38zjvvBKBv374UFha693f//ffTtGlT9/7y8vLIy8vj1ltvBaCqqoqkpCSv5XgyevRomjd33rlcUVHBzJkzycnJISYmhv379zf4frKysnj99dcBGDx4MMXFxZw4cQKAkSNH0qxZM5o1a8YVV1zBkSNH3P9/xjR2IQkEIhKLMwisVWf6Cq+qVcPujqHi4mI+/PBD8vLyEBGqqqoQEZ555hkAmjVr5l43JiaGysrKBsu8sMVz4bS6Os0vhqo22JJKSUkhOzubwYMHX1TZNe+x9vvztD9VJSUlhb///e8+l+NJixYt3K+XLVtGhw4d+PTTT6muriY+3ttjL+fqcaGaul7K/5cxjUXQLw2J85P3ElCgqr/3ZRvV8MsztH79eiZNmsSXX35JYWEhX331FV27diUrK8vrdi1btuTkyZMelx06dMj9ZZmenl6nBdG/f3+2bt3KsWPHqKqqIj093f1rPTY21uPljKFDh7Jy5Ur3nUolJSV1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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "Cinitial = 0\n", "t = np.linspace(0,96,1000)\n", "C = odeint(deriv, Cinitial, t, tcrit=t)\n", "plotConcentration(t,C)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "# Exercise 1\n", "\n", "The purpose of the dosing regime is to maintain the plasma concentration above the MIC level for at least 96 hours. Assuming that each dose is 64 mg, modify the simulation and find a value of $t_{dose}$ that results satisfies the MIC objective for a 96 hour period. Show a plot concentration versus time, and include Python code to compute the total amount of antibiotic administered for the whole treatment." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "# Exercise 2\n", "\n", "Consider a continous antibiotic injection at a constant rate designed to maintain the plasma concentration at minimum bactricidal level. Your solution should proceed in three steps:\n", "\n", "1. First, by hand, set up and solve the steady state equation to find the desired constant dosage rate. \n", "2. Modify the Python function for $u(t)$ to simulate the desired flowrate.\n", "3. Verify your result by repeating the above simulation using your function for $u(t)$. " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [Fitting First Order plus Time Delay to Step Response](http://nbviewer.jupyter.org/github/jckantor/CBE30338/blob/master/notebooks/03.04-Fitting-First-Order-plus-Time-Delay-to-Step-Response.ipynb) | [Contents](toc.ipynb) | [Second Order Models](http://nbviewer.jupyter.org/github/jckantor/CBE30338/blob/master/notebooks/03.06-Second-Order-Models.ipynb) >

\"Open

\"Download\"" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.4" } }, "nbformat": 4, "nbformat_minor": 2 }