{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "*This notebook contains material from [cbe67701-uncertainty-quantification](https://ndcbe.github.io/cbe67701-uncertainty-quantification);\n", "content is available [on Github](https://github.com/ndcbe/cbe67701-uncertainty-quantification.git).*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [6.2 A Simple Example of Adjoint Sensitivity Analysis](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.02-Contributed-Example.html) | [Contents](toc.html) | [6.4 Adjoint Sensitivity Notes on Numerical Computation](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.04-Adjoint-Sensitivity-Notes-on-Numerical-Computation.html)

\"Open

\"Download\"" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "BsHcQn4HT0sV", "nbpages": { "level": 1, "link": "[6.3 Sensitivity Analysis with Adjoint Operators](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3-Sensitivity-Analysis-with-Adjoint-Operators)", "section": "6.3 Sensitivity Analysis with Adjoint Operators" } }, "source": [ "# 6.3 Sensitivity Analysis with Adjoint Operators\n", "\n", "Following [McClarren (2018)](https://link-springer-com.proxy.library.nd.edu/book/10.1007%2F978-3-319-99525-0), let $Q(x, \\theta)$ be a quantity of interest where $\\theta$ is a parameter. We assume there are additional constraints $f(x, \\theta) = 0$ where the Jacobian $f_x(x, \\theta)$ is everywhere non-singular. We wish to compute the **parametric sensitivity** $Q_\\theta$ where $Q_\\theta$ is the total derivative of $Q$ with respect to $\\theta$. Parameteric sensitivity appears in a wide range of applications including optimization, error estimation, uncertainty quantification, and inverse problems in imaging and siesmology. \n", "\n", "The subject of the notebook is the particular case where $Q(x, \\theta)$ is an inner product of $x$ with a weighting function. In the case, the computation of $Q_\\theta$ can be organized into a two step procedure. The first step is to compute an adjoint $y$ which is then followed by computing an inner product of the adjoint with functions derived from the problem data.\n", "\n", "This notebook reviews properties of inner products, then demonstrates use of inner products to define and solve for the adjoints of several representative applications of parametric sensitivity.\n", "\n", "References\n", "\n", "* McClarren, Ryan G., McClarren, and Penrose. Uncertainty Quantification and Predictive Computational Science. Springer International Publishing, 2018. [https://link-springer-com.proxy.library.nd.edu/book/10.1007%2F978-3-319-99525-0](https://link-springer-com.proxy.library.nd.edu/book/10.1007%2F978-3-319-99525-0)\n", "\n", "* Bradley, Andrew. PDE-constrained optimization and the adjoint method. [https://cs.stanford.edu/~ambrad/adjoint_tutorial.pdf](https://cs.stanford.edu/~ambrad/adjoint_tutorial.pdf)\n", "\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "nbpages": { "level": 1, "link": "[6.3 Sensitivity Analysis with Adjoint Operators](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3-Sensitivity-Analysis-with-Adjoint-Operators)", "section": "6.3 Sensitivity Analysis with Adjoint Operators" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: autograd in /anaconda3/lib/python3.7/site-packages (1.3)\n", "Requirement already satisfied: future>=0.15.2 in /anaconda3/lib/python3.7/site-packages (from autograd) (0.18.2)\n", "Requirement already satisfied: numpy>=1.12 in /anaconda3/lib/python3.7/site-packages (from autograd) (1.16.2)\n" ] } ], "source": [ "# install modules\n", "!pip install autograd" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "D5NJgzdET-P-", "nbpages": { "level": 2, "link": "[6.3.1 Review of inner products](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.1-Review-of-inner-products)", "section": "6.3.1 Review of inner products" } }, "source": [ "## 6.3.1 Review of inner products\n", "\n", "An **inner product** is the 'multiplication' of two vectors, $u$ and $v$, to produce a scalar result $\\langle u, v\\rangle$ . \n", "\n", "For real vectors $u$, $v$, and $w$, and a real scalar $\\alpha$, an inner product must satisfy four basic properties:\n", "\n", "1. Additivity: $\\langle u + v, w \\rangle = \\langle u, w\\rangle + \\langle v, w\\rangle $\n", "2. Homogeneity: $\\langle \\alpha u, w\\rangle = \\alpha \\langle v, w\\rangle$\n", "3. Symmetry: $\\langle v, w\\rangle = \\langle w, v\\rangle$\n", "4. Positivity: $\\langle v, v\\rangle \\geq 0$ and equal to zero if and only if $v = 0$.\n", "\n", "An **inner product space** is an a vector space along with an inner product defined on that space. Common examples of inner product spaces include the following cases of general interest in computational science and engineering.\n", "\n", "1. Product of real numbers $u$ and $v$ $$\\langle u, v\\rangle = u v$$\n", "1. Dot product of finite dimensional real vectors. For $u, v \\in\\text{R}^N$. $$\\langle u, v\\rangle = u^Tv =\\sum_{n=1}^{N}u_nv_n$$\n", "1. Real vector-valued functions on a finite interval $t \\in [t_a, t_b]$. Given functions $f$ and $g$ $$\\langle f, g\\rangle = \\int_{t_a}^{t_b}\\langle f(t),g(t)\\rangle\\ dt$$\n", "1. Expected value of the product of random variables. Given random variables $X$ and $Y$ $$\\langle X, Y\\rangle = \\text{E}(XY)$$\n", "1. Real matrices. Given $M \\times N$ real matrices $A$ and $B$ in $R^{M \\times N}$ $$\\langle A, B\\rangle = \\text{tr}(A^TB) = \\sum_{m=1}^M\\sum_{n=1}^Na_{mn}b_{mn}$$\n", "\n", "A **linear operator**is an operator $L$ that maps a vector into another vector and satisfies properties of additivity and homogeneity.\n", "\n", "1. Additivity: $L(u + v) = Lu + Lv$\n", "2. Homogeneity: $L(\\alpha u) = \\alpha L u$\n", "\n", "A basic result for linear operators is that for every linear operator $L$ defined on an inner product space there exists a unique linear **adjoint operator** $L^*$ such that \n", "\n", "$$\\langle L^*u, v \\rangle \\equiv \\langle u, Lv \\rangle $$\n", "\n", "A **self-adjoint** operator is a combination of linear operator and inner product such that $L = L^*$. Finding the adjoint operator, or finding an inner product (if one exists) for which a linear operator is self-adjoint can be challenging analytical problems.\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "JLSTKAfVaFyA", "nbpages": { "level": 2, "link": "[6.3.2 Sensitivity Analysis of Linear equations](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.2-Sensitivity-Analysis-of-Linear-equations)", "section": "6.3.2 Sensitivity Analysis of Linear equations" } }, "source": [ "## 6.3.2 Sensitivity Analysis of Linear equations\n", "\n", "Suppose there is a quantity of interest (QoI) that can be computed as an inner product\n", "\n", "$$Q = \\langle c, x\\rangle$$\n", "\n", "where $x$ is the solution to linear equality constraints\n", "\n", "\\begin{align*}\n", "A x & = b\n", "\\end{align*}\n", "\n", "We would like to know how $Q$ changes in response to perturbations in the problem data $A$ and $b$. That is, given perturbations $\\delta A$ and $\\delta b$ in the problem data, we would like to compute $\\delta Q$ where \n", "\n", "$$Q + \\delta Q = \\langle c + \\delta c, x + \\delta x\\rangle$$\n", "\n", "where $x + \\delta x$ is the solution to \n", "\n", "$$(A + \\delta A)(x + \\delta x) = b + \\delta b$$\n", "\n", "One way to do this, of course, is simply insert specific perturbations into the problem data and solve the equations again. The issue with this approach is that there are are many potential perturbations one would like to investigate. Solving the original equations for every possible case would get expensive and require significant data handling. Is there a better way to get the desired information?\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "2IWO4KPlmDOR", "nbpages": { "level": 2, "link": "[6.3.3 Case 1. Perturbations in the RHS](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.3-Case-1.-Perturbations-in-the-RHS)", "section": "6.3.3 Case 1. Perturbations in the RHS" } }, "source": [ "## 6.3.3 Case 1. Perturbations in the RHS\n", "\n", "We begin with the case where perturbations to the problem are restricted to the right hand side of the linear equatiopns. For this case, using the properties of the inner product\n", "\n", "\\begin{align*}\n", "Q + \\delta Q & = \\langle c, x + \\delta x\\rangle \\\\\n", "& = \\langle c, x \\rangle + \\langle c, \\delta x \\rangle \n", "\\end{align*}\n", "\n", "subject to the linear equality constraint\n", "\n", "$$A(x + \\delta x) = b + \\delta b$$\n", "\n", "Substracting the nominal value $Q = \\langle c, x \\rangle$ and the nominal linear solutions $Ax = b$ leaves \n", "\n", "$$\\delta Q = \\langle c, \\delta x \\rangle$$\n", "\n", "subject to\n", "\n", "$$A\\delta x = \\delta b$$\n", "\n", "One way we could compute $\\delta Q$ is solve the last equation for $\\delta x = A^{-1}\\delta b$ and substitute into $\\delta Q$ to give\n", "\n", "$$\\delta Q = \\langle c, A^{-1}\\delta b\\rangle$$\n", "\n", "If $A$ isn't too large, this may be a good way to proceed. But for large dimensional problems we may seek a more direct calculation. Using the properties of adjoint\n", "\n", "$$\\delta Q= \\langle (A^{-1})^*c, \\delta b\\rangle$$\n", "\n", "There is a simple proof that $(A^{-1})^* = (A^*)^{-1}$ which results in\n", "\n", "$$\\delta Q = \\langle (A^*)^{-1}c, \\delta b \\rangle$$\n", "\n", "Taking this one step further, suppose we had a solution to a second system of equations\n", "\n", "$$A^*y = c$$\n", "\n", "where $A^*$ is the adjoint matrix, then we could write\n", "\n", "$$\\delta Q = \\langle y, \\delta b \\rangle$$\n", "\n", "The advantage of this formulation is that we no longer have to invert a matrix. All we have to do is solve a second system of linear equations using any method available to us, including efficient iterative methods. \n", "\n", "Further, because the coefficients of $y$ describe the dependence of the quantity of interest on the uncertain parameters, $y$ can be interpreted as sensitivity coefficients. For this reason $y$ is sometimes referred to as the **adjoint sensitivity**. \n", "\n", "Often we wish to study the sensitivity of $Q$ to a perturbation in a specific parameter $\\theta$ on which $b(\\theta)$ depends. In this case we can model\n", "\n", "$$\\delta b = b_\\theta \\delta \\theta$$\n", "\n", "It's a simple matter to show that $\\delta Q = Q_\\theta \\delta \\theta$ where\n", "\n", "$$Q_\\theta = \\langle y, b_\\theta \\rangle$$\n", "\n", "which shows the elements of $y$ can be interpreted as the sensitivity of $Q$ to perburbations in the corresponding elements of $b$. \n", "\n", "To summarize, by using the properties of inner products, we can arrive at this same result without having to introduce a matrix inverse.\n", "\n", "\\begin{align*}\n", "\\delta Q & = \\langle c, \\delta x \\rangle \\\\\n", "& = \\langle A^*y, \\delta x \\rangle \\\\\n", "& = \\langle y, A \\delta x \\rangle \\\\\n", "& = \\langle y, \\delta b \\rangle \\\\\n", "\\end{align*}\n", "\n", "For specific parametric sensitivies,\n", "\n", "$$\\boxed{Q_\\theta = \\langle y, b_\\theta \\rangle \\text{ where } A^*y = c}$$\n", "\n", "This remarkable expression tells us that we don't need to invert a matrix. To get sensititivity coefficients for a quantity of interest we only need to solve one additional system of linear equations. Let's see how this works out for a simple example.\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "Hoy6jm8o4H22", "nbpages": { "level": 3, "link": "[6.3.3.1 Example: Multi-product plant](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.3.1-Example:-Multi-product-plant)", "section": "6.3.3.1 Example: Multi-product plant" } }, "source": [ "### 6.3.3.1 Example: Multi-product plant\n", "\n", "A plant produces two products, X and Y, the produce per-unit revenue of \\$270 and \\$210, respectively. The fixed costs of production are \\$100 and \\$90, respectively. In addition, each unit of X requires 1 of labor A at \\$50 per hour, and 2 hours of labor B at \\$40 per hour. Each unit of Y requires 1 hour of each type of labor. TA total of 80 hours of labor A and 100 hours of labor B are available for production.\n", "\n", "Compute the sensitivity of the total plant profit to changes in the amount of available labor." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "3jxtOtKTNI4r", "nbpages": { "level": 3, "link": "[6.3.3.2 Solution](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.3.2-Solution)", "section": "6.3.3.2 Solution" } }, "source": [ "### 6.3.3.2 Solution\n", "\n", "Profit for this process is given by\n", "\n", "$$\\text{profit} = \\text{revenue} - \\text{expense}$$\n", "\n", "Identifying variables as\n", "\n", "\\begin{align*}\n", "x_1 & & \\text{Units of X produced} \\\\\n", "x_2 & & \\text{Units of Y produced} \\\\\n", "x_3 & & \\text{Hours of Labor A Used} \\\\\n", "x_4 & & \\text{Hours of Labor B Used} \\\\\n", "\\end{align*}\n", "\n", "with these definitions\n", "\n", "\\begin{align*}\n", "\\text{revenue} & = 270 x_1 + 210 x_2 \\\\\n", "\\text{expense} & = 100 x_1 + 90 x_2 + 50 x_3 + 40 x_4 \\\\\n", "\\end{align*}\n", "\n", "subject to equality constraints\n", "\n", "\\begin{align*}\n", "x_3 & = x_1 + x_2 \\\\\n", "x_4 & = 2 x_1 + x_2 \\\\\n", "x_3 & = 80 \\\\\n", "x_4 & = 100 \\\\\n", "\\end{align*}\n", "\n", "Given these modeling equations, the sensitivity formulation becomes\n", "\n", "$$Q = \\text{profit} = \\langle c, x \\rangle$$\n", "\n", "where\n", "\n", "$$c = \\begin{bmatrix} 170 \\\\ 120 \\\\ -50 \\\\ -40 \\end{bmatrix}$$\n", "\n", "with equality constraints\n", "\n", "$$\\underbrace{\\begin{bmatrix} 1 & 1 & -1 & 0 \\\\ 2 & 1 & 0 & -1 \\\\ 0 & 0 & 1 & 0 \\\\ 0 & 0 & 0 & 1\\end{bmatrix}}_A \\underbrace{\\begin{bmatrix} x_1 \\\\ x_2 \\\\ x_3 \\\\ x_4 \\end{bmatrix}}_x = \\underbrace{\\begin{bmatrix} 0 \\\\ 0 \\\\ 80 \\\\ 100 \\end{bmatrix}}_b$$\n", "\n", "We will use $\\theta_A$ and $\\theta_B$ to denote additional labor of type A and B, respectively. The perturbed system is \n", "\n", "$$\\underbrace{\\begin{bmatrix} 1 & 1 & -1 & 0 \\\\ 2 & 1 & 0 & -1 \\\\ 0 & 0 & 1 & 0 \\\\ 0 & 0 & 0 & 1\\end{bmatrix}}_A \\underbrace{\\begin{bmatrix} x_1 \\\\ x_2 \\\\ x_3 \\\\ x_4 \\end{bmatrix}}_x = \\underbrace{\\begin{bmatrix} 0 \\\\ 0 \\\\ 80 + \\theta_A \\\\ 100 + \\theta_B \\end{bmatrix}}_b$$\n", "\n", "for which \n", "\n", "$$\\frac{\\partial b}{\\partial \\theta_A} = \\begin{bmatrix} 0 \\\\ 0 \\\\ 1 \\\\ 0 \\end{bmatrix} \\quad \\frac{\\partial b}{\\partial \\theta_B} = \\begin{bmatrix} 0 \\\\ 0 \\\\ 0 \\\\ 1 \\end{bmatrix}$$\n", "\n", "The desired sensitivity coefficients are\n", "\n", "\\begin{align*}\n", "\\frac{\\partial Q}{\\partial \\theta_A} & = \\langle y, \\frac{\\partial b}{\\partial \\theta_A} \\rangle = \\langle \\begin{bmatrix} y_1 \\\\ y_2 \\\\ y_3 \\\\ y_4 \\end{bmatrix}, \\begin{bmatrix} 0 \\\\ 0 \\\\ 1 \\\\ 0 \\end{bmatrix}\\rangle = y_3 \\\\\n", "\\frac{\\partial Q}{\\partial \\theta_B} & = \\langle y, \\frac{\\partial b}{\\partial \\theta_B} \\rangle = \\langle \\begin{bmatrix} y_1 \\\\ y_2 \\\\ y_3 \\\\ y_4 \\end{bmatrix}, \\begin{bmatrix} 0 \\\\ 0 \\\\ 0 \\\\ 1 \\end{bmatrix}\\rangle = y_4\n", "\\end{align*}\n", "\n", "The following cell computes the adjoint sensitivity coefficients and compares the results to a direct calculation.\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 187 }, "colab_type": "code", "executionInfo": { "elapsed": 575, "status": "ok", "timestamp": 1593721244677, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14Gg_n8V7bVINy02QRuRgOoMo11Ri7NKU3OUKdC1bkQ=s64", "userId": "09038942003589296665" }, "user_tz": 300 }, "id": "6HpWS8Ib3REi", "nbpages": { "level": 3, "link": "[6.3.3.2 Solution](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.3.2-Solution)", "section": "6.3.3.2 Solution" }, "outputId": "72b61647-20b5-4508-e130-865e874ea80b" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "X produced: 20.0\n", "Y produced: 60.0\n", "Labor A used: 80.0\n", "Labor B used: 100.0\n", "\n", "profit = 2600.0\n", "sensitivities [70. 50. 20. 10.]\n", "\n", "computed change in profit with one additional hour of A = 20.0\n", "computed change in profit with one additional hour of B = 10.0\n" ] } ], "source": [ "import numpy as np\n", "\n", "variables = (\"X produced\", \"Y produced\", \"Labor A used\", \"Labor B used\")\n", "equations = (\"\")\n", "\n", "c = np.array([170, 120, -50, -40])\n", "A = np.array([[1, 1, -1, 0], [2, 1, 0, -1], [0, 0, 1, 0 ], [0, 0, 0, 1]])\n", "b = np.array([0, 0, 80, 100])\n", "\n", "x = np.linalg.solve(A, b)\n", "for var, val in zip(variables, x):\n", " print(f\"{var}: {val}\")\n", "\n", "profit = np.dot(c, x)\n", "print('\\nprofit = ', profit)\n", "\n", "y = np.linalg.solve(A.T, c.T)\n", "print('sensitivities', y)\n", "\n", "# Verify\n", "dbA = np.array([0, 0, 1, 0 ])\n", "print('\\ncomputed change in profit with one additional hour of A = ', np.dot(c, np.linalg.solve(A, b + dbA)) - profit)\n", "\n", "dbB = np.array([0, 0, 0, 1 ])\n", "print('computed change in profit with one additional hour of B = ', np.dot(c, np.linalg.solve(A, b + dbB)) - profit)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "_prJFftml744", "nbpages": { "level": 2, "link": "[6.3.4 Case 2. Sensitivity to changes in equation coefficients](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.4-Case-2.-Sensitivity-to-changes-in-equation-coefficients)", "section": "6.3.4 Case 2. Sensitivity to changes in equation coefficients" } }, "source": [ "## 6.3.4 Case 2. Sensitivity to changes in equation coefficients\n", "\n", "Neglecting second-order terms\n", "\n", "$$A\\delta x + \\delta A x = \\delta b$$\n", "\n", "Beginning with $\\delta Q$ and a solution to $A^*y = C$\n", "\n", "\\begin{align*}\n", "\\delta Q & = \\langle c, \\delta x \\rangle \\\\\n", "& = \\langle A^*y, \\delta x \\rangle \\\\\n", "& = \\langle y, A \\delta x \\rangle \\\\\n", "& = \\langle y, (\\delta b - \\delta A x) \\rangle \\\\\n", "& = \\langle y, \\delta b \\rangle - \\langle y, \\delta A x \\rangle \\\\\n", "\\end{align*}\n", "\n", "for perturbations that depend on specific parameters,\n", "\n", "\\begin{align*}\n", "\\implies Q_\\theta & = \\langle y, b_\\theta \\rangle - \\langle y, A_\\theta x \\rangle \n", "\\end{align*}\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "qk75XQ8oF6T6", "nbpages": { "level": 3, "link": "[6.3.4.1 Example](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.4.1-Example)", "section": "6.3.4.1 Example" } }, "source": [ "### 6.3.4.1 Example\n", "\n", "As a continuation of the previous example, consider modificatins to the manufacturing process modifications that would reduce the labor required to produce each unit of product. \n", "\n", "1. Using a sensitivity analysis, estimate the increased profit that would result from reducing the amount of labor B required to produce each unit of product X. The solve for the actual profit as a function of the labor reduction and compare to the sensitivity result.\n", "\n", "2. Extend the analysis by computing the sensitivity of profit to changes in the labor required for each type of labor in each product.\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "MhAuQ3AFtdWf", "nbpages": { "level": 3, "link": "[6.3.4.2 Solution](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.4.2-Solution)", "section": "6.3.4.2 Solution" } }, "source": [ "### 6.3.4.2 Solution\n", "\n", "Refering the model equations developed above, the equality constraints read\n", "\n", "$$\\underbrace{\\begin{bmatrix} 1 & 1 & -1 & 0 \\\\ \\boxed{2 - \\theta} & 1 & 0 & -1 \\\\ 0 & 0 & 1 & 0 \\\\ 0 & 0 & 0 & 1\\end{bmatrix}}_A \\begin{bmatrix} x_1 \\\\ x_2 \\\\ x_3 \\\\ x_4 \\end{bmatrix} = \\underbrace{\\begin{bmatrix} 0 \\\\ 0 \\\\ 80 \\\\ 100 \\end{bmatrix}}_b$$\n", "\n", "where the required labor of type B required to produce a unit of product X has been highlighted. The parameter $\\theta$ has been added to this entry to indicate the reduction in the amount of labor required to produce the first product. Taking the derivative,\n", "\n", "$$A_\\theta = \\begin{bmatrix} 0 & 0 & 0 & 0 \\\\ -1 & 0 & 0 & 0 \\\\ 0 & 0 & 0 & 0 \\\\ 0 & 0 & 0 & 0\\end{bmatrix}$$\n", "\n", "The desired sensitivity coefficient is computed as\n", "\n", "$$ Q_\\theta = - \\langle y, A_\\theta x \\rangle $$\n", "\n", "where\n", "\n", "\\begin{align*}\n", "A x & = b \\\\\n", "A^T y & = c\n", "\\end{align*}\n", "\n", "In this case, $Q_\\theta$ is the sensitivity of profit to reduction in the labor of type B required to produce the first product.\n", "\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 533 }, "colab_type": "code", "executionInfo": { "elapsed": 534, "status": "ok", "timestamp": 1593721473396, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14Gg_n8V7bVINy02QRuRgOoMo11Ri7NKU3OUKdC1bkQ=s64", "userId": "09038942003589296665" }, "user_tz": 300 }, "id": "ChFgIKfaF5Le", "nbpages": { "level": 3, "link": "[6.3.4.2 Solution](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.4.2-Solution)", "section": "6.3.4.2 Solution" }, "outputId": "c42fea8e-debd-4e7b-83e4-173d0c230b0e" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "forward solution = [ 20. 60. 80. 100.]\n", "profit = 2600.0\n", "sensitivities [70. 50. 20. 10.]\n", "[[ 0. 0. 0. 0.]\n", " [-1. 0. 0. 0.]\n", " [ 0. 0. 0. 0.]\n", " [ 0. 0. 0. 0.]]\n", "sensitivity = 1000.0\n", "\n", "matrix of sensitivity coefficients\n" ] }, { "data": { "text/plain": [ "array([[1400., 4200., 5600., 7000.],\n", " [1000., 3000., 4000., 5000.],\n", " [ 400., 1200., 1600., 2000.],\n", " [ 200., 600., 800., 1000.]])" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "c = np.array([170, 120, -50, -40])\n", "A = np.array([[1, 1, -1, 0], [2, 1, 0, -1], [0, 0, 1, 0 ], [0, 0, 0, 1]])\n", "b = np.array([0, 0, 80, 100])\n", "\n", "x = np.linalg.solve(A, b)\n", "print('forward solution = ', x)\n", "\n", "profit = np.dot(c, x)\n", "print('profit = ', profit)\n", "\n", "y = np.linalg.solve(A.T, c.T)\n", "print('sensitivities', y)\n", "\n", "dA = np.zeros([4, 4])\n", "dA[1, 0] = -1\n", "print(dA)\n", "dP = -np.dot(y, np.dot(dA, x))\n", "print('sensitivity =', dP)\n", "\n", "# compare sensitivity projection with computational solutions\n", "def profit(c, A, b):\n", " return np.dot(c, np.linalg.solve(A, b))\n", "\n", "theta = np.linspace(0, 0.5, 100)\n", "plt.plot(theta, [profit(c, A + t*dA, b) for t in theta], label=\"Sensitivity estimate\")\n", "plt.plot(theta, [profit(c, A, b) + t*dP for t in theta], label=\"Computed solution\")\n", "plt.xlabel('Decrease in labor B hours required per unit of A')\n", "plt.title('Profit')\n", "plt.legend()\n", "\n", "print(\"\\nmatrix of sensitivity coefficients\")\n", "np.array([[y[i]*x[j] for j in range(len(x))] for i in range(len(y))])" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 312 }, "colab_type": "code", "executionInfo": { "elapsed": 570, "status": "ok", "timestamp": 1593721569250, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14Gg_n8V7bVINy02QRuRgOoMo11Ri7NKU3OUKdC1bkQ=s64", "userId": "09038942003589296665" }, "user_tz": 300 }, "id": "HwP_87eFxjqz", "nbpages": { "level": 3, "link": "[6.3.4.2 Solution](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.4.2-Solution)", "section": "6.3.4.2 Solution" }, "outputId": "7f14b670-707d-4ae2-ee99-64b1a32c2f83" }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "

" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "theta = np.linspace(0, 0.5, 100)\n", "plt.plot(theta, [np.linalg.solve(A + t*dA, b) for t in theta])\n", "plt.xlabel('Result of decreasing the labor B hours required per unit of A')\n", "plt.title('Production as function of labor reduction')\n", "plt.legend([\"Units of X\", \"Units of Y\",\"Labor A\", \"Labor B\"])" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "waqrOJqPzFow", "nbpages": { "level": 2, "link": "[6.3.5 Case 3. Generic Case](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.5-Case-3.-Generic-Case)", "section": "6.3.5 Case 3. Generic Case" } }, "source": [ "## 6.3.5 Case 3. Generic Case\n", "\n", "The final case is the situation with parametric changes in $A$, $b$, and $c$. Starting with\n", "\n", "$$Q = \\langle c, x\\rangle$$\n", "\n", "subject to linear equality constraints\n", "\n", "\\begin{align*}\n", "A x & = b\n", "\\end{align*}\n", "\n", "We would like to know how $Q$ depends on perturbations in the $A$, $b$, and $c$. That is, we would like to compute\n", "\n", "\\begin{align*}\n", "Q + \\delta Q & = \\langle c + \\delta c, x + \\delta x\\rangle \\\\\n", "& = \\langle c, x\\rangle + \\langle \\delta c, x \\rangle + \\langle c, \\delta x \\rangle + \\langle \\delta c, \\delta x \\rangle\n", "\\end{align*}\n", "\n", "which, after subtracting $Q = \\langle c, x\\rangle$, leaves\n", "\n", "$$\\delta Q = \\langle \\delta c, x \\rangle + \\langle c, \\delta x \\rangle + \\langle \\delta c, \\delta x \\rangle$$\n", "\n", "subject to \n", "\n", "$$(A + \\delta A)(x + \\delta x) = b + \\delta b$$\n", "\n", "Expanding and subtracting $Ax = B$ leaves\n", "\n", "$$\\delta A x + A\\delta x + \\delta A\\delta x = \\delta b$$\n", "\n", "Dropping second order terms leaves the pair of equations\n", "\n", "\\begin{align*}\n", "\\delta Q = \\langle \\delta c, x \\rangle + \\langle c, \\delta x \\rangle \\\\\n", "\\delta A x + A\\delta x = \\delta b\n", "\\end{align*}\n", "\n", "Next take the inner product of terms in the second equation with $y$, the solution to the adjoint equation $A^*y = c$.\n", "\n", "\\begin{align*}\n", "\\delta Q = \\langle \\delta c, x \\rangle + \\langle c, \\delta x \\rangle \\\\\n", "\\langle y, \\delta A x \\rangle + \\langle y, A\\delta x \\rangle = \\langle y, \\delta b \\rangle\n", "\\end{align*}\n", "\n", "Taking the inner product with the solution to $A^*y = c$ gives\n", "\n", "\\begin{align*}\n", "\\delta Q & = \\langle \\delta c, x \\rangle + \\langle c, \\delta x \\rangle \\\\\n", "\\langle A^*y, \\delta x \\rangle & = \\langle y, \\delta b \\rangle - \\langle y, \\delta A x \\rangle\n", "\\end{align*}\n", "\n", "Substituting $A^*y = $ gives the desired result showing how the quantity of interest $Q$ changes as a result of perturbations in $c$, $b$, or $A$.\n", "\n", "$$\\delta Q = \\langle x, \\delta c \\rangle + \\langle y, \\delta b \\rangle - \\langle y, \\delta A x \\rangle$$\n", "\n", "For parametric sensitivity one has a final formula\n", "\n", "$$\\boxed{\n", "\\begin{align*}\n", "Q_\\theta & = \\langle x, c_\\theta \\rangle + \\langle y, b_\\theta \\rangle - \\langle y, A_\\theta x \\rangle \\\\\n", "\\\\ \\text{where}\n", "\\\\\n", "& A x = b \\\\\n", "& A^T y = c \\\\\n", "\\end{align*}}$$\n", "\n", "\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "NX4IH5GNh11k", "nbpages": { "level": 2, "link": "[6.3.6 Systems of first-order linear differential equations](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.6-Systems-of-first-order-linear-differential-equations)", "section": "6.3.6 Systems of first-order linear differential equations" } }, "source": [ "## 6.3.6 Systems of first-order linear differential equations" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "dK2AAOitvdpy", "nbpages": { "level": 2, "link": "[6.3.7 Application: Pharmacokinetics](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.7-Application:-Pharmacokinetics)", "section": "6.3.7 Application: Pharmacokinetics" } }, "source": [ "## 6.3.7 Application: Pharmacokinetics\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "bReL7NikZe78", "nbpages": { "level": 2, "link": "[6.3.7 Application: Pharmacokinetics](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.7-Application:-Pharmacokinetics)", "section": "6.3.7 Application: Pharmacokinetics" } }, "source": [ "[Kaldate, Rajesh R et al. “Modeling the 5-fluorouracil area under the curve versus dose relationship to develop a pharmacokinetic dosing algorithm for colorectal cancer patients receiving FOLFOX6.” The oncologist vol. 17,3 (2012): 296-302. doi:10.1634/theoncologist.2011-0357](doi:10.1634/theoncologist.2011-0357)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "ZiaWGUn8ZcC-", "nbpages": { "level": 2, "link": "[6.3.7 Application: Pharmacokinetics](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.7-Application:-Pharmacokinetics)", "section": "6.3.7 Application: Pharmacokinetics" } }, "source": [ "[Morawska, Katarzyna et al. “5-FU therapeutic drug monitoring as a valuable option to reduce toxicity in patients with gastrointestinal cancer.” Oncotarget vol. 9,14 11559-11571. 30 Jan. 2018. doi:10.18632/oncotarget.24338](doi:10.18632/oncotarget.24338)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "mp8kQoZFZYBs", "nbpages": { "level": 2, "link": "[6.3.7 Application: Pharmacokinetics](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.7-Application:-Pharmacokinetics)", "section": "6.3.7 Application: Pharmacokinetics" } }, "source": [ "[Walko, Christine M. \"Using Pharmacokinetics to Optimize Older Chemotherapeutic Agents.\" (2014)](https://www.cancernetwork.com/view/using-pharmacokinetics-optimize-older-chemotherapeutic-agents)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "l58X2LtU8sOy", "nbpages": { "level": 4, "link": "[6.3.7.1 Linear pharmacokinetics](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.7.1-Linear-pharmacokinetics)", "section": "6.3.7.1 Linear pharmacokinetics" } }, "source": [ "#### 6.3.7.1 Linear pharmacokinetics\n", "\n", "The system of interest is a compartment model for linear pharmacokinetics of a therapeutic drug\n", "\n", "\\begin{align*}\n", "V\\frac{dC}{dt} & = -K C + u \\\\\n", "C(t_a) & = 0 \n", "\\end{align*}\n", "\n", "where $C$ is a vector of compartment concentrations, $V$ a diagonal matrix of compartment volumes, $K$ a matrix of reaction and elimination rate parameters, and $u$ is vector of compartmental drug administration rates. \n", "\n", "For the purposes of evaluating a proposed therapy, we identify the linear operator\n", "\n", "$$\\mathcal{L}x = V\\frac{dx}{dt} + Kx \\quad \\text{with} \\quad x(t_a) = 0$$ \n", "\n", "and the inner product\n", "\n", "$$\\langle y, x \\rangle = \\int_{t_a}^{t_b} y^T(t) x(t)\\ dt$$\n", "\n", "A conventional metric for evaluating a proposed therapy $u(t)$ on the interval $[t_a, t_b]$ is to solve the equation\n", "\n", "$$\\mathcal{L}x = u$$\n", "\n", "and evaluate the quantity of interest, the area under the curve (AUC), using the inner product\n", "\n", "$$Q = \\text{AUC} = \\langle c, x \\rangle$$\n", "\n", "where $c(t) = 1$.\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "_oPag-0uSCEf", "nbpages": { "level": 3, "link": "[6.3.7.1 Finding the adjoint operator](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.7.1-Finding-the-adjoint-operator)", "section": "6.3.7.1 Finding the adjoint operator" } }, "source": [ "### 6.3.7.1 Finding the adjoint operator\n", "\n", "Identifying the linear operator $\\mathcal{L}x = V\\frac{dx}{dt} + Kx$ with initial condition $x(t_a) = 0$, we find an expression for the adjoint operator.\n", "\n", "\\begin{align*}\n", "\\langle y, \\mathcal{L} x \\rangle & = \\int_{t_a}^{t_b} y^T (V\\frac{dx}{dt} + K x)\\ dt \\\\\n", "& = \\int_{t_a}^{t_b} y^T V\\frac{dx}{dt}\\ dt + \\int_{t_a}^{t_b} y^T K x\\ dt \\\\\n", "& = y^T(t_b)Vx(t_b) - y^T(t_a)V\\underbrace{x(t_a)}_0 - \\int_{t_a}^{t_b} \\frac{dy}{dt}^T Vx\\ dt + \\int_{t_a}^{t_b} y^T K x\\ dt \\\\\n", "\\end{align*}\n", "\n", "Setting $y(t_b) = 0$\n", "\n", "\\begin{align*}\n", "\\langle y, \\mathcal{L} x \\rangle & = - \\int_{t_a}^{t_b} \\frac{dy}{dt}^T Vx\\ dt + \\int_{t_a}^{t_b} y^T K x\\ dt \\\\\n", "& = \\int_{t_a}^{t_b} (-\\frac{d (V^Ty)}{dt}^T + (K^Ty)^T)x\\ dt \\\\\n", "& = \\langle \\mathcal{L}^* y, x \\rangle \\\\\n", "\\end{align*}\n", "\n", "where for a diagonal matrix $V^T = V$ we have identified the adjoint operator\n", "\n", "\\begin{align*}\n", "\\boxed{\\mathcal{L}^*y = - V\\frac{dy}{dt} + K^Ty \\quad \\text{with} \\quad y(t_b) = 0}\n", "\\end{align*}" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "EUnsXqMfYYAe", "nbpages": { "level": 3, "link": "[6.3.7.2 Example: One compartment model](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.7.2-Example:-One-compartment-model)", "section": "6.3.7.2 Example: One compartment model" } }, "source": [ "### 6.3.7.2 Example: One compartment model\n", "\n", "A one compartment model is characterized by a volume $V$ and elimination rate $k$.\n", "\n", "$$\\mathcal{Lx} = u \\quad \\text{with} \\quad x(0) = 0$$\n", "\n", "where\n", "\n", "$$\\mathcal{L} = V\\frac{dx}{dt} + kx$$\n", "\n", "The adjoint sensitivity for area under the curve (AUC) satisfies the equation\n", "\n", "$$\\mathcal{L}^*y = 1 \\quad \\text{with} \\quad y(t_f) = 0$$\n", "\n", "where\n", "\n", "$$\\mathcal{L}^*y = -V\\frac{dy}{dt} + k y$$\n", "\n", "The next cell demonstrates the response of a one compartment model to constant infusion of a therapeutic drug for a finite period of time, and computation of the associated adjoint sensitivity function." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 281 }, "colab_type": "code", "executionInfo": { "elapsed": 761, "status": "ok", "timestamp": 1592320226713, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14Gg_n8V7bVINy02QRuRgOoMo11Ri7NKU3OUKdC1bkQ=s64", "userId": "09038942003589296665" }, "user_tz": 300 }, "id": "DnvSI3KrX11N", "nbpages": { "level": 3, "link": "[6.3.7.2 Example: One compartment model](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.7.2-Example:-One-compartment-model)", "section": "6.3.7.2 Example: One compartment model" }, "outputId": "b07b4cbb-df64-4d2c-f023-6073e284e681" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from scipy.integrate import solve_ivp, trapz\n", "\n", "def pkmodel(tf, k, V):\n", " \"\"\"\n", " Returns time, input, concentration, and adjoint sensitivity for a\n", " one-compartment pharmacokinetic model.\n", " \"\"\"\n", " # forward solution \n", " u = lambda t: 1 if t < 10 else 0\n", " def L(t, x, u):\n", " return -k*x/V + u(t)/V \n", " t = np.linspace(0, tf, 10001)\n", " soln = solve_ivp(lambda t, y: L(t, y, u), (0, tf), (0,), t_eval=t, rtol=1e-7)\n", " u = np.array([u(t) for t in t])\n", " x = soln.y[0]\n", "\n", " # adjoint sensitivity\n", " def Ladj(t, y, c):\n", " return k*y/V - c(t)/V\n", " c = lambda t: 1\n", " sens = solve_ivp(lambda t, y: Ladj(t, y, c), (tf, 0), (0,), t_eval=np.flipud(t), rtol=1e-7)\n", " y = np.flipud(sens.y[0])\n", "\n", " return t, u, x, y\n", "\n", "def AUC(t, x):\n", " \"\"\"Returns area under the curve\"\"\"\n", " return trapz(x, t)\n", "\n", "def pkvisualize(t, u, x, y):\n", "\n", " fig, ax = plt.subplots(1, 1, figsize=(9, 4))\n", "\n", " ax.plot(t, u, label='drug infusion')\n", " ax.fill_between(t, u, alpha=0.2)\n", "\n", " ax.plot(t, x, label=\"x: forward solution\")\n", " ax.fill_between(t, x, alpha=0.8)\n", " ax.text(t[np.argmax(x)] + 0.05*max(t), np.mean(x), f\"AUC = {AUC(t, x):6.3f}\", ha=\"left\")\n", " ax.plot(t, y, label=\"y: adjoint sensitivity\")\n", "\n", " ax.set_title('One Compartment Model')\n", " ax.legend();\n", " ax.grid(True)\n", "\n", "# parameter values\n", "k_nominal = 0.8\n", "V_nominal = 8\n", "tf = 48\n", "\n", "pkvisualize(*pkmodel(tf, k_nominal, V_nominal))" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "09Zd78GecwWZ", "nbpages": { "level": 3, "link": "[6.3.7.3 Example: Sensitivity to changes in elimination rate $k$](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.7.3-Example:-Sensitivity-to-changes-in-elimination-rate-$k$)", "section": "6.3.7.3 Example: Sensitivity to changes in elimination rate $k$" } }, "source": [ "### 6.3.7.3 Example: Sensitivity to changes in elimination rate $k$\n", "\n", "The sensitivity analysis for the system of linear equations extends naturally to the case of first-order linear differential equations. Adjusting for notation,\n", "\n", "$$\\boxed{\\frac{\\partial Q}{\\partial \\theta} = \\langle x, \\frac{\\partial c}{\\partial \\theta} \\rangle + \\langle y, \\frac{\\partial u}{\\partial \\theta} \\rangle - \\langle y, \\frac{\\partial \\mathcal{L}}{\\partial \\theta} x \\rangle}$$\n", "\n", "Consider, for example, a change in the elimination constant $k$ in the coomputational example. The linear operator reads\n", "\n", "$$\\mathcal{Lx} = V\\frac{dx}{dt} + k x \\quad \\text{with} \\quad x(t_a) = 0$$\n", "\n", "$$\\implies \\frac{\\partial \\mathcal{L}}{\\partial k} = 1 $$\n", "\n", "$$\\implies \\frac{\\partial Q}{\\partial k} = - \\langle y, x \\rangle$$\n", "\n", "$$\\implies \\boxed{\\delta Q \\approx - \\delta k \\langle y, x \\rangle}$$\n", "\n", "Given a change in elimination rate $\\delta k$, the next cell compares this estimate of $\\delta Q$ to the result of a full simulation." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 315 }, "colab_type": "code", "executionInfo": { "elapsed": 698, "status": "ok", "timestamp": 1592320228665, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14Gg_n8V7bVINy02QRuRgOoMo11Ri7NKU3OUKdC1bkQ=s64", "userId": "09038942003589296665" }, "user_tz": 300 }, "id": "DNITzDsIM5Ax", "nbpages": { "level": 3, "link": "[6.3.7.3 Example: Sensitivity to changes in elimination rate $k$](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.7.3-Example:-Sensitivity-to-changes-in-elimination-rate-$k$)", "section": "6.3.7.3 Example: Sensitivity to changes in elimination rate $k$" }, "outputId": "52748cfe-d136-45a6-c513-2a9e16b40e69" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Estimated change in AUC -1.1577541344944497\n", "Actual Change in AUC -1.0648666184487983\n" ] }, { "data": { "image/png": "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P348K1asAOCNN94gPT299ILNQ2o8hBCiFJmUiTYRbWgT0YbR7Uaz4dgGFuxbwJw9c/hi1xc0CmlE3+v7clv92wjzCTM63CojJibmionV8urTpw99+vQptMylxOO+++7zZHhFqlWrFnPnzgVciUdiYiK33XYbULy4J02a5F5+4403GDJkCL6+ZTNYntR4CCFEGbGYLNwceTNTu05l9YDVjG0/Fi+TF1M2TuGWObfw5KonWXtkLQ6nw+hQDfXiiy/y5ptvup+PHTv2soni8jNp0iTatm1L8+bNeeSRR9w1SQVNVx8fH++eKO3MmTP07duXli1b0qFDB3799VcApk+fzogRIwDXCKFPPvkknTp1okGDBu4P/TFjxrBu3Tqio6N5/fXXL4vp+PHjdOnShejoaJo3b866desAWLZsGR07dqRNmzbcc889pKamAhAVFcWECRNo06YNLVq0cI+0umbNGqKjo4mOjqZ169ZcuHDBXXuTlZXF+PHjmT17NtHR0cyePdsd97lz54iKinLP85Kenk6dOnWw2+0MHTqUuXPn8tZbb3Hs2DHi4uKIi4vjo48+4umnn3a/hg8++IBnnnnmat6+IkmNh/AoqTQWoniCvIO4t/G93Nv4Xvae3cuCfQtYtG8Rqw+vppZfLfo36k+/hv0I9wk3NM5Xf36VXWeuHGr8WjQObczodgXPvzJ8+HDuuusuRo4cidPpZNasWfz8888ABQ6ZPmLECMaPHw+4ZoddvHgxd9xxBw8++GCR09VPmDCB1q1bM3/+fFatWsVf//rXfM9x/PhxEhIS2LVrF3369KF///688sorTJ069bL5Uy754osv6NGjB2PHjsXhcJCens7p06f55z//yYoVK/Dz8+PVV1/ltddec8ceHh7O5s2beffdd5k6dSoffvghU6dOZdq0aXTu3JnU1FRsNpv7HF5eXkyaNInExETeeecdwJUwgWsE2latWrFmzRri4uJYtGgRPXr0wGr9s3/Rk08+yWuvvcbq1asJDw8nLS2Nli1bMmXKFKxWK5988gn/+9//CnyvSkJqPITHSNdSIUrm+pDr+UfMP1h+z3Kmdp1KZEAkb215i1vn3sqoNaPYeGJjleoLEhUVRVhYGFu2bGHZsmW0bt2asDBXM1RB87SsXr2a9u3b06JFC1atWsX27dvzna4+PwkJCe5t3bp1Izk5mXPn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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# parameter values\n", "k_nominal = 0.8\n", "V_nominal = 8\n", "tf = 48\n", "dk = 0.1*k_nominal\n", "\n", "# baseline simulation\n", "t, u, x, y = pkmodel(tf, k_nominal, V_nominal)\n", "\n", "# sensitivity estimate\n", "def innerproduct(t, x, y):\n", " return trapz(x*y, t)\n", "\n", "print('Estimated change in AUC ', -dk*innerproduct(t, x, y))\n", "\n", "# simulation\n", "kt, ku, kx, ky = pkmodel(tf, k_nominal + dk, V_nominal)\n", "pkvisualize(kt, ku, kx, ky)\n", "\n", "print(\"Actual Change in AUC\", AUC(kt, kx) - AUC(t, x))" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "xtCFcsmvO3jr", "nbpages": { "level": 3, "link": "[6.3.7.3 Example: Sensitivity to changes in elimination rate $k$](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.7.3-Example:-Sensitivity-to-changes-in-elimination-rate-$k$)", "section": "6.3.7.3 Example: Sensitivity to changes in elimination rate $k$" } }, "source": [ "Next we show how the estimate of $\\delta Q$ constructed using the adjoint sensitivity compares to simulations over a range of parameter values." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 297 }, "colab_type": "code", "executionInfo": { "elapsed": 2404, "status": "ok", "timestamp": 1592320232225, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14Gg_n8V7bVINy02QRuRgOoMo11Ri7NKU3OUKdC1bkQ=s64", "userId": "09038942003589296665" }, "user_tz": 300 }, "id": "-4XffvaUFomv", "nbpages": { "level": 3, "link": "[6.3.7.3 Example: Sensitivity to changes in elimination rate $k$](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.7.3-Example:-Sensitivity-to-changes-in-elimination-rate-$k$)", "section": "6.3.7.3 Example: Sensitivity to changes in elimination rate $k$" }, "outputId": "e016906c-6de5-4b43-9ec6-658b4b47fe32" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# parameter values\n", "k_nominal = 0.8\n", "V_nominal = 8\n", "tf = 48\n", "dk = 0.25*k_nominal\n", "\n", "# baseline simulation\n", "t, u, x, y = pkmodel(tf, k_nominal, V_nominal)\n", "plt.plot(k_nominal, AUC(t, x), '.', ms=20)\n", "\n", "# estimate Q as function of k\n", "k = k_nominal + dk*np.linspace(-1, 1, 101)\n", "Q_est = AUC(t, x) - (k - k_nominal)*innerproduct(t, x, y)\n", "plt.plot(k, Q_est, label=\"estimated Q\")\n", "\n", "# calculate actual Q vs k\n", "def Q(tf, k, V):\n", " t, _, x, _ = pkmodel(tf, k, V)\n", " return AUC(t, x)\n", "\n", "Q_sim = [Q(tf, k, V_nominal) for k in k]\n", "plt.plot(k, Q_sim, label=\"simulated Q\")\n", "\n", "plt.xlabel(\"elimination rate $k$\")\n", "plt.ylabel(\"area under curve (AUC)\")\n", "plt.title(\"estimating AUC using adjoint sensitivity\")\n", "plt.legend()\n", "plt.grid(True)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "s4n1u86I89HP", "nbpages": { "level": 3, "link": "[6.3.7.4 Example: Sensitivity to changes in compartment volume $V$](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.7.4-Example:-Sensitivity-to-changes-in-compartment-volume-$V$)", "section": "6.3.7.4 Example: Sensitivity to changes in compartment volume $V$" } }, "source": [ "### 6.3.7.4 Example: Sensitivity to changes in compartment volume $V$\n", "\n", "$$\\mathcal{Lx} = V\\frac{dx}{dt} + k x \\quad \\text{with} \\quad x(t_a) = 0$$\n", "\n", "$$\\implies \\frac{\\partial \\mathcal{L}}{\\partial V} = \\frac{d}{dt} $$\n", "\n", "$$\\implies \\frac{\\partial Q}{\\partial V} = - \\langle y, \\frac{dx}{dt} \\rangle$$\n", "\n", "$$\\implies \\boxed{\\delta Q \\approx - \\delta V \\langle y, \\frac{dx}{dt} \\rangle}$$" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 579 }, "colab_type": "code", "executionInfo": { "elapsed": 813, "status": "ok", "timestamp": 1592320234096, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14Gg_n8V7bVINy02QRuRgOoMo11Ri7NKU3OUKdC1bkQ=s64", "userId": "09038942003589296665" }, "user_tz": 300 }, "id": "406muN9yLPy7", "nbpages": { "level": 3, "link": "[6.3.7.4 Example: Sensitivity to changes in compartment volume $V$](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.7.4-Example:-Sensitivity-to-changes-in-compartment-volume-$V$)", "section": "6.3.7.4 Example: Sensitivity to changes in compartment volume $V$" }, "outputId": "44707212-d536-4cb1-eb81-3816f7b940c4" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Estimated change in AUC -0.01922826831506073\n", "Actual Change in AUC -0.02120952361984152\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# parameter values\n", "k_nominal = 0.8\n", "V_nominal = 20\n", "tf = 48\n", "dV = 0.1\n", "\n", "# baseline simulation\n", "t, u, x, y = pkmodel(tf, k_nominal, V_nominal)\n", "\n", "# estimate derivative\n", "dx = np.gradient(x, np.mean(np.diff(t)))\n", "plt.figure(figsize=(9, 4))\n", "plt.plot(t, dx, label=\"dx/dt\")\n", "plt.title('estimate of dx/dt')\n", "plt.legend()\n", "plt.grid(True)\n", "print('Estimated change in AUC ', -dV*innerproduct(t, dx, y))\n", "\n", "# simulation\n", "vt, vu, vx, vy = pkmodel(tf, k_nominal, V_nominal + dV)\n", "pkvisualize(vt, vu, vx, vy)\n", "print(\"Actual Change in AUC\", AUC(vt, vx) - AUC(t, x))" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 299 }, "colab_type": "code", "executionInfo": { "elapsed": 2299, "status": "ok", "timestamp": 1592320237737, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14Gg_n8V7bVINy02QRuRgOoMo11Ri7NKU3OUKdC1bkQ=s64", "userId": "09038942003589296665" }, "user_tz": 300 }, "id": "psO-jXQlSKcM", "nbpages": { "level": 3, "link": "[6.3.7.4 Example: Sensitivity to changes in compartment volume $V$](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.7.4-Example:-Sensitivity-to-changes-in-compartment-volume-$V$)", "section": "6.3.7.4 Example: Sensitivity to changes in compartment volume $V$" }, "outputId": "5721d13f-f228-4550-a4b8-d8c83700cfeb" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# parameter values\n", "k_nominal = 0.8\n", "V_nominal = 8\n", "tf = 48\n", "dV = 0.25*V_nominal\n", "\n", "# baseline simulation\n", "t, u, x, y = pkmodel(tf, k_nominal, V_nominal)\n", "plt.plot(V_nominal, AUC(t, x), '.', ms=20)\n", "\n", "# estimate Q as function of V\n", "V = V_nominal + dV*np.linspace(-1, 1, 101)\n", "dx = np.gradient(x, np.mean(np.diff(t)))\n", "Q_est = AUC(t, x) - (V - V_nominal)*innerproduct(t, dx, y)\n", "plt.plot(V, Q_est, label=\"estimated Q\")\n", "\n", "# calculate actual Q vs V\n", "Q_sim = [Q(tf, k_nominal, V) for V in V]\n", "plt.plot(V, Q_sim, label=\"simulated Q\")\n", "\n", "plt.xlabel(\"compartment volume $V$\")\n", "plt.ylabel(\"area under curve (AUC)\")\n", "plt.title(\"estimating AUC using adjoint sensitivity\")\n", "plt.legend()\n", "plt.grid(True)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "3W0ijVoOrwEz", "nbpages": { "level": 2, "link": "[6.3.8 Systems of first-order nonlinear differential equations](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.8-Systems-of-first-order-nonlinear-differential-equations)", "section": "6.3.8 Systems of first-order nonlinear differential equations" } }, "source": [ "## 6.3.8 Systems of first-order nonlinear differential equations\n", "\n", "Next we consider a system of first-order differential equations given in the form\n", "\n", "\\begin{align*}\n", "F(t, x, \\dot{x}, \\theta) & = 0 \\\\\n", "x(t_0) & = x_0\n", "\\end{align*}\n", "\n", "where $\\theta$ is a parameter. We wish do determine the sensitivity of a quantity of interest $Q$ to small changes in $\\theta$ where $Q$ can be expressed as an inner product\n", "\n", "$$Q = \\langle w, x \\rangle = \\int_{t_0}^{t_f} w^T(t)x(t)\\ dt$$\n", "\n", "for some vector-valued weighting function $w(t)$ defined on the interval $[t_0, t_f]$.\n", "\n", "To proceed, we introduce an auxiliary vector-valued function $y(t)$ that will serve as a weighting function for $F$. The Lagrangian is then defined as\n", "\n", "\\begin{align*}\n", "L & = Q - \\langle y, F \\rangle\n", "\\end{align*}\n", "\n", "Because $F(t, x, \\dot{x}, \\theta) = 0$ for any solution to the differential equations, the quantity of interest will be equal to the value of the Lagrangian for any choice of $y(t)$. What we seek is a choice for $y(t)$ that goes one step further and enables us to compute the sensitivity of $Q$ to small changes in $\\theta$.\n", "\n", "From this point forward we will use a subscript notation to denote gradients of a function with respect to scalar or vector-valued arguments. Recursive applications of the chain rule\n", "\n", "\\begin{align*}\n", "L_{\\theta} & = Q_\\theta - \\langle y, F \\rangle_\\theta \\\\\n", "& = \\langle w, x \\rangle_\\theta - \\langle y, F \\rangle_\\theta \\\\\n", "& = \\langle w_\\theta, x \\rangle + \\langle w, x_\\theta \\rangle - \\langle y, F_\\theta \\rangle - \\langle y, F_xx_\\theta \\rangle - \\langle y, F_\\dot{x}\\dot{x}_\\theta \\rangle \\\\\n", "\\end{align*}\n", "\n", "The problem with this equation is that we don't know $x_\\theta(t)$ or $\\dot{x}_\\theta(t)$, so we seek a strategy for removing them from the right-hand side. The first step is an integration by parts\n", "\n", "\\begin{align*}\n", "\\langle y, F_\\dot{x}\\dot{x}_\\theta \\rangle & = \\langle F_\\dot{x}^Ty, \\dot{x}_\\theta \\rangle\\\\\n", "& = y^T F_\\dot{x}x_\\theta\\vert_{t_0}^{t_f} - \\langle (F_{\\dot{x}}^Ty)_t, x_\\theta \\rangle \\\\\n", "& = y^T F_\\dot{x}x_\\theta\\vert_{t_0}^{t_f} - \\langle F_{\\dot{x}t}^Ty, x_\\theta \\rangle - \\langle F_{\\dot{x}}^T\\dot{y}, x_\\theta \\rangle \\\\\n", "& = y^T F_\\dot{x}x_\\theta\\vert_{t_0}^{t_f} - \\langle y, F_{\\dot{x}t}x_\\theta \\rangle - \\langle \\dot{y}, F_{\\dot{x}}x_\\theta \\rangle \n", "\\end{align*}\n", "\n", "Rearranging these results and introducing the matrix adjoints\n", "\n", "\\begin{align*}\n", "L_{\\theta}\n", "& = \\langle w_\\theta, x \\rangle - \\langle y, F_\\theta \\rangle - y^T F_\\dot{x}x_\\theta\\vert_{t_0}^{t_f} + \\langle w, x_\\theta \\rangle - \\langle y, F_xx_\\theta \\rangle + \\langle y, F_{\\dot{x}t}x_\\theta \\rangle + \\langle \\dot{y}, F_{\\dot{x}}x_\\theta \\rangle \\\\\n", "& = \\langle w_\\theta, x \\rangle - \\langle y, F_\\theta \\rangle - y^T F_\\dot{x}x_\\theta\\vert_{t_0}^{t_f} + \\langle w, x_\\theta \\rangle - \\langle F_x^Ty, x_\\theta \\rangle + \\langle F_{\\dot{x}t}^Ty, x_\\theta \\rangle + \\langle F_{\\dot{x}}^T\\dot{y}, x_\\theta \\rangle \\\\\n", "& = \\langle w_\\theta, x \\rangle - \\langle y, F_\\theta \\rangle - y^T F_\\dot{x}x_\\theta\\vert_{t_0}^{t_f} + \\langle w - F_x^Ty + F_{\\dot{x}t}^Ty + F_{\\dot{x}}^T\\dot{y}, x_\\theta \\rangle \\\\\n", "\\end{align*}\n", "\n", "This is a scalar expression incorporating values of $x_\\theta$. The dependence on $x_\\theta$ can be eliminated by choosing $y$ to satsify a two-point boundary value problem\n", "\n", "\\begin{align*}\n", "F_\\dot{x}^T\\dot{y} + (F_{\\dot{x}t}^T - F_x^T)y + w & = 0 \\\\\n", "y^T F_\\dot{x}x_\\theta\\vert_{t_0}^{t_f} & = 0\\\\\n", "\\end{align*}\n", "\n", "If $x(t_0)$ is fixed so that $x_\\theta(t_0) = 0$, and $F_\\dot{x}$ is full rank at the end points, then the solution for $y(t)$ simplifies to \n", "\n", "\\begin{align*}\n", "F_\\dot{x}^T\\dot{y} + (F_{\\dot{x}t}^T - F_x^T)y + w & = 0 \\\\\n", "y(t_f) & = 0\\\\\n", "\\end{align*}\n", "\n", "In this case the solution for $y(t)$ can be found by first solving the original differential equations for $x(t)$, then using the solution to integrate the above system of differential equations from $t_f$ back to $t_0$. \n", "\n", "With the additional assumption $x_\\theta(t_0) = 0$, this equality can be achieved by defining $y(t)$ as the solution to the differential equations. Once $x(t)$ ane $y(t)$ are known, by construction of $L$, the desired sensitivity is given by \n", "\n", "$$\\boxed{Q_\\theta = L_\\theta = \\langle w_\\theta, x \\rangle - \\langle y, F_\\theta \\rangle}$$\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "IhXReAzC1T5I", "nbpages": { "level": 3, "link": "[6.3.8.1 Example: Over-damped oscillator](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.8.1-Example:-Over-damped-oscillator)", "section": "6.3.8.1 Example: Over-damped oscillator" } }, "source": [ "### 6.3.8.1 Example: Over-damped oscillator\n", "\n", "$$ m\\ddot{x} + (c + \\theta)\\dot{x} + k x = 0$$\n", "\n", "which can be rewritten as \n", "\n", "\\begin{align*}\n", "\\begin{bmatrix} 1 & 0 \\\\ 0 & m \\end{bmatrix} \\begin{bmatrix}\\dot{x}_1 \\\\ \\dot{x}_2 \\end{bmatrix} \n", "+ \\begin{bmatrix} 0 & -1 \\\\ k & c+\\theta \\end{bmatrix} \\begin{bmatrix}x_1 \\\\ x_2 \\end{bmatrix} = \\begin{bmatrix}0 \\\\ 0 \\end{bmatrix}\n", "\\end{align*}\n", "\n", "\\begin{align*}\n", "F_\\dot{x} & = \\begin{bmatrix} 1 & 0 \\\\ 0 & m \\end{bmatrix} \\\\\n", "F_{\\dot{x}t} & = 0 \\\\\n", "F_x & = \\begin{bmatrix} 0 & -1 \\\\ k & c+\\theta \\end{bmatrix} \\\\\n", "F_\\theta & = \\begin{bmatrix}0 \\\\ x_1 \\end{bmatrix}\n", "\\end{align*}\n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 326 }, "colab_type": "code", "executionInfo": { "elapsed": 897, "status": "ok", "timestamp": 1592405665506, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14Gg_n8V7bVINy02QRuRgOoMo11Ri7NKU3OUKdC1bkQ=s64", "userId": "09038942003589296665" }, "user_tz": 300 }, "id": "S5ZN0IPJ6Q4c", "nbpages": { "level": 3, "link": "[6.3.8.1 Example: Over-damped oscillator](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.8.1-Example:-Over-damped-oscillator)", "section": "6.3.8.1 Example: Over-damped oscillator" }, "outputId": "db087d5c-df19-4467-f47f-40d8a487d90a" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2.3815663241270446 -32122.140068184468\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "\n", "import autograd.numpy as np\n", "import matplotlib.pyplot as plt\n", "from scipy.integrate import solve_ivp, trapz\n", "from scipy.interpolate import interp1d\n", "\n", "# default model parameters\n", "m = 0.5\n", "c = .2\n", "k = 1\n", "IC = (0, 5)\n", "\n", "# simulation parameters\n", "t_span = (0, 10)\n", "\n", "# closures make it easy to create multiple models with different parameter values\n", "def damped_osc(m=m, c=c, k=k, theta=0):\n", " # model equations\n", " Fxdot = np.array([[1, 0], [0, m]])\n", " Fx = np.array([[0, -1], [k, c + theta]])\n", " return lambda t, x: np.dot(-np.dot(np.linalg.inv(Fxdot), Fx), x)\n", "\n", "# the forward solution returns an interpolation function\n", "def forward(deriv, t_span, IC):\n", " soln = solve_ivp(deriv, t_span, IC, rtol=1e-8)\n", " return interp1d(soln.t, soln.y)\n", "\n", "# forward solution\n", "x = forward(damped_osc(), t_span, IC)\n", "\n", "# plot solution\n", "fig, ax = plt.subplots(2, 1)\n", "fig.tight_layout()\n", "t = np.linspace(*t_span)\n", "ax[0].plot(t, [x(t) for t in t])\n", "ax[0].set_title(\"Forward Solution\")\n", "\n", "# quantity of interest\n", "w = lambda t: np.array([1, 0]) if t >= 0 else np.array([0, 0])\n", "def innerproduct(t, w, x):\n", " return trapz([np.dot(w(t), x(t)) for t in t], t)\n", "Q = innerproduct(t, w, x)\n", "\n", "# plot quantity of interest and value\n", "ax[1].fill_between(t, [np.dot(w(t), x(t)) for t in t], alpha=0.4)\n", "ax[1].set_title(\"Quantity of Interest\")\n", "ax[1].legend([f\"Q = {Q:6.4f}\"])\n", "\n", "# adjoint model\n", "Fxdot = np.array([[1, 0], [0, m]])\n", "Fx = np.array([[0, -1], [k, c]])\n", "A = np.dot(np.linalg.inv(Fxdot), Fx)\n", "ydot = lambda t, y: -np.dot(A.T, y) - w(t)\n", "\n", "# backward solution\n", "backward = solve_ivp(ydot, (tf, 0), (0, 0), rtol=1e-8)\n", "y = interp1d(backward.t, backward.y)\n", "\n", "ax[1].plot(t, [y(t) for t in t])\n", "\n", "Q = np.trapz([x(t)[0] for t in t], t)\n", "Qc = np.trapz([x(t)[0]*y(t)[1] for t in t], t)\n", "print(Q, Qc)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "i25pJN0Cr6jy", "nbpages": { "level": 2, "link": "[6.3.9 Systems of first-order differential equations](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.9-Systems-of-first-order-differential-equations)", "section": "6.3.9 Systems of first-order differential equations" } }, "source": [ "## 6.3.9 Systems of first-order differential equations\n", "\n", "A system of time-invariant differential equationsl with fixed initial conditions written as\n", "\n", "\\begin{align*}\n", "\\dot{x} & = f(t, x, \\theta) \\\\\n", "x(t_0) & = x_0\n", "\\end{align*}\n", "\n", "can be rewritten as\n", "\n", "\\begin{align*}\n", "F(t, x, \\dot{x}, \\theta) & = \\dot{x} - f(t, x, \\theta) \\\\\n", "x(t_0) & = x_0\n", "\\end{align*}\n", "\n", "From this we compute\n", "\n", "\\begin{align*}\n", "F_\\dot{x} & = I \\\\\n", "F_{\\dot{x}t} & = 0 \\\\\n", "F_x & = -f_x(t, x, \\theta) \\\\\n", "F_\\theta & = -f_\\theta(t, x, \\theta)\n", "\\end{align*}\n", "\n", "The adjoint equations become \n", "\n", "\\begin{align*}\n", "\\dot{y} & = -f_x^T(t, x, \\theta)y - w(t) \\\\\n", "y(t_f) & = 0\\\\\n", "\\end{align*}" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "KYFAFjxGx2i_", "nbpages": { "level": 2, "link": "[6.3.9 Systems of first-order differential equations](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.9-Systems-of-first-order-differential-equations)", "section": "6.3.9 Systems of first-order differential equations" } }, "source": [ "Autograd tutorials\n", "\n", "* [http://www.cs.toronto.edu/~rgrosse/courses/csc321_2017/tutorials/tut4.pdf](http://www.cs.toronto.edu/~rgrosse/courses/csc321_2017/tutorials/tut4.pdf)\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "05ZK_tZ4c1Hb", "nbpages": { "level": 3, "link": "[6.3.9.1 Example: Preditor-prey dynamics of the Hare/Lynx system](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.9.1-Example:-Preditor-prey-dynamics-of-the-Hare/Lynx-system)", "section": "6.3.9.1 Example: Preditor-prey dynamics of the Hare/Lynx system" } }, "source": [ "### 6.3.9.1 Example: Preditor-prey dynamics of the Hare/Lynx system\n", "\n", "See [https://jckantor.github.io/CBE30338/02.05-Hare-and-Lynx-Population-Dynamics.html](https://jckantor.github.io/CBE30338/02.05-Hare-and-Lynx-Population-Dynamics.html) for the detailed model and background to this application." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 648 }, "colab_type": "code", "executionInfo": { "elapsed": 33894, "status": "ok", "timestamp": 1592443191840, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14Gg_n8V7bVINy02QRuRgOoMo11Ri7NKU3OUKdC1bkQ=s64", "userId": "09038942003589296665" }, "user_tz": 300 }, "id": "W09l5WllxsU9", "nbpages": { "level": 3, "link": "[6.3.9.1 Example: Preditor-prey dynamics of the Hare/Lynx system](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.9.1-Example:-Preditor-prey-dynamics-of-the-Hare/Lynx-system)", "section": "6.3.9.1 Example: Preditor-prey dynamics of the Hare/Lynx system" }, "outputId": "e25c9707-1b16-4fd6-8c18-33c92d540395" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Predicted change: 18.890552485529707\n", "Actual change: 20.07420089541847\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjkAAAJECAYAAAD0VzVyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzsnXd4XNW1t9896r1LVrOK1dxtuYJtMKaY3gkhoSUQuCmEhNzckOQmwHeT3FTSbwIJYJJAIJhQbYpt3HHvRb1YvbdR12j298eekWVZZc4UaSSd93n8SDOzzzl7jo/OXmet31pLSCnR0dHR0dHR0ZlqGCZ6Ajo6Ojo6Ojo6rkA3cnR0dHR0dHSmJLqRo6Ojo6OjozMl0Y0cHR0dHR0dnSmJbuTo6Ojo6OjoTEl0I0dHR0dHR0dnSqIbOTo6Om6JEGKtEKLC3fYrhPieEOKvzpyTjo6Oa9CNHB2daYAQolQI0SWEaB/0L26i5+UIQohbhBDHhRBtQogGIcQ2IUSyk49xkUEkpfyJlPJhZx5HR0fHNXhO9AR0dHTGjZuklFvt3VgI4SmlNDlzQvbuWwiRBvwNuB34BAgErgHMrpifjo7O5ET35OjoTHOEEDcLIc4IIVqEEDuEELMHfVYqhPiOEOIk0CGE+JIQ4r1BnxcKIf416HW5EGKR5fffWl63CSGOCCHWDBr3tBBioxDiH0KINuBBIYSfEGKDEKJZCHEWWDbKtBcBJVLKbVJhlFK+KaUss+zfRwjxGyFEleXfb4QQPiN8f2kxmqyvNwghfiSECAA+AOIGe78sc/+HhvP3n0KIk0KIViHE60IIXxv+W3R0dJyAbuTo6ExjhBAZwD+BbwBRwGbgPSGE96Bh9wA3AKHANmCNEMIghIgFvIBVln2lojwqJy3bHUIZI+HAq8AbQxb4W4CNlv2+AjwFzLL8Ww88MMrUjwJZQohfCyGuEEIEDvn8+8BKy/EXAsuB/7blnFiRUnYA1wFVUspAy7+qwWNsPH+fAa4FUoAFwINa5qGjo2M/upGjozN9eNvibWgRQrxtee9uYJOUcouUsg/4JeAHXDpou99JKcullF1SymLAiDIeLgc+AiqFEFmW17ullGYAKeU/pJSNUkqTlPJXgA+QOWi/+6SUb0spzVLKLpQx8GMpZZOUshz43UhfxDKPtUA88C+gweKBsRo7nwf+n5SyTkpZDzwD3GffaRsVW89flZSyCXgPde50dHTGAd3I0dGZPtwqpQy1/LvV8l4ccM46wGKglKOMByvlQ/azE2VgXGb5fQfKwLnc8hoAIcS3hBA5ljBNCxACRI6y37gh751jFKSU+6WUn5FSRgFrLPP5/nDfy/K7K4TWtpy/mkG/d6K8XTo6OuOAbuTo6ExvqoAk6wshhAASgcpBY+SQbaxGzhrL7zsZYuRY9DffQXlnwqSUoUArIEbZb7Xl2FZm2volpJSHgH8D84b7XpZ9VQ3dzkIn4D/o9YxR5jgUW86fjo7OBKEbOTo605t/ATcIIa4UQngB3wJ6gE9H2WYncAXgJ6WsAHajNCcRwDHLmCDABNQDnkKIHwLBNszlu0KIMCFEAvDYSAOFEKstIuhoy+ss4GZgv2XIP4H/FkJECSEigR8C/xh+bxwHPieE8BBCXIsy1qzUAhFCiJBR5qz1/Ono6IwTupGjozONkVLmAfcCvwcagJtQqea9o2yTD7SjjBuklG1AMbBXStlvGfYRKjMpHxXO6ebi8NRQnrGMLQE+Bv4+ytgWlFFzSgjRDnwIvAX83PL5j4DDKBH0KZRQ+Ucj7Otx1PduQWl5rHolpJS5KIOp2KJluiDkZc/509HRGT+ElGN5Y3V0dHR0dHR0Jh+6J0dHR0dHR0dnSqIbOTo6Ojo6OjpTEt3I0dHR0dHR0ZmS6EaOjo6Ojo6OzpRkUjTojIyMlMnJyRM9DR0dHR0dHR034MiRIw2WQqCjMimMnOTkZA4fPjzR09DR0dHR0dFxA4QQo1ZEt6KHq3R0dHR0dHSmJLqRo6Ojo6OjozMlmRThKh0dHR0dnelIR4+JHXn1hPp7sTwlHC8P3TehhUlr5PT19VFRUUF3d/dET8Xl+Pr6kpCQgJeX10RPRUdHR8dpdPX288x7ZzhR0crChBCeumkuft4eEz0tt6Gpo5fPPr+P/Np2AFalRfDSg8vx9tQNHVtxuZEjhPgm8DCqm+8p4AtALPAaEI7qKXOf1l4vFRUVBAUFkZycjGr8OzWRUtLY2EhFRQUpKSkTPR0dHR07MJslBsPUvU/Zg9ks+dYbx/ngdA3Lk8N5/XA5lS1dvPjgMt1bgTo/X3nlCOcaO/m/z2dT3drN/7x/lv/9IIenbpo70dObNLj0ShJCxANfB5ZKKecBHsBngZ8Bv5ZSpgPNwENa993d3U1ERMSUNnAAhBBERERMC4+Vjs5Uw9jdxyN/O0za9zdz/4sHqW7tmugpuQ0v7Clh86kavn/9bF5/9BJ+ctt8dhc08K/DY/VxnR5szallf3ETT900l+vnx/LQ6hTuXTmTlz8tpaShY6KnN2kYD3PZE/ATQngC/kA1sA7YaPn8ZeBWe3Y81Q0cK9Ple+roTCW6+/r5zHP72ZZbxy2L4jlS2sSX/3GUXpN5oqc24fSY+nluVzFr0iN5aLXyUH92WSLZM0P5/bZCuvv6x9jD1Oe5XcXEh/rxmaUJA+99/cp0PD0MPL+raAJnNrlwqZEjpawEfgmUoYybVuAI0CKlNFmGVQDxQ7cVQjwihDgshDhcX1/vymnq6OjoOJ1/7D9HTnUb//f5bH599yJ+fudCjpe38IfthRM9tQln08lqGtp7+NKa1IGHOCEET1ydSU1bNxuPVEzwDCeW3Jo2jpxr5ourU/AcFLqLDvLlziUJvHmkktauvgmc4eTB1eGqMOAWIAWIAwKA64YZKi96Q8rnpZRLpZRLo6LGLGo4IQQGBl7wesOGDXzta1+boNno6Oi4C23dffxxeyFr0iNZP3cGADcsiOW6eTN4aW8Jnb2mMfYwtXnrWCVJEf6sSY+84P1VaRHMjg3mzaPT28jZdLIag4CbF8Zd9NldSxLo7Tez9WztBMxs8uHqcNVVQImUsl5K2Qf8G7gUCLWErwASgCoXz8MtMZmm941OR2eq8s8DZTR39vFf67MueP8Lq1Iwdpt49/i0vOUBKmPo06JGbpgfe1EoXgjBjQtiOVbWQlXL9NQvSSnZdLKalakRRAX5XPT5osRQ4kP92HSqegJmN/lwtZFTBqwUQvgLdTVfCZwFtgN3WsY8ALzj4nmMO++99x4rVqxg8eLFXHXVVdTWKqv76aef5pFHHuGaa67h/vvvp7+/n29/+9ssW7aMBQsW8Nxzz03wzHV0tPNpYQM//SCXd45XYurXNSfvnqhiUWIo8xNCLnh/WXIYWTOC+Nu+c0h5kQN7WvDRmRr6zZIbFsQO+/kN89X7m6fpIp5TbaS4oYMbF1zsxQFlCN6wIJbdBfW0duohq7FwaQq5lPKAEGIjKk3cBBwDngc2Aa8JIX5kee8FR47zzHtnOFvV5uh0L2BOXPCYaXpdXV0sWrRo4HVTUxM333wzAKtXr2b//v0IIfjrX//Kz3/+c371q18BcOTIEfbs2YOfnx/PP/88ISEhHDp0iJ6eHlatWsU111yjp4vrTBreOV7JE/86Qb9ZLdqHSpv40a3zJ3hWE0dRfTtnqtr4wY1zLvpMCMHnVybxg7dPk1tjZHZs8ATMcGLZdLKa5Ah/5ozw3ZMjA5gTG8ymU9U8vCZ1nGc38Xx4pgaDgPVzY0Ycc/38WJ7fVczWnFruWJIw4jidcaiTI6V8CnhqyNvFwHJXH9vV+Pn5cfz48YHXGzZsGGgkWlFRwd133011dTW9vb0XGC0333wzfn5+AHz88cecPHmSjRtVsllraysFBQW6kaMzKShp6OCJf51gSVIYf7l/KX/cXsjzu4qZHx/C3ctmTvT0JoT3T1QjxHmPxFDWz4nhB2+f5pPcumln5HT0mNhf3MhDq1NGzRq9bt4MfrUln6aOXsIDvMdxhhPPvqIG5seHEBF4cajKyoL4EML8vdhX3KgbOWMwaSseD8YdCyM99thjPPHEE9x8883s2LGDp59+euCzgICAgd+llPz+979n/fr1EzBLHR3H+O3WfLw8BH/43GJC/Lz4zrVZHC9v4Zcf53Pb4oRpWZl186lqliWHMyPEd9jPo4N9mRcfzPbcOr56Rdo4z25iOXyuGZNZcmla5KjjLpkVAVvgYEkT186bMU6zm3i6evs5Xt7CF1eP/pBrMAhWpESwv7hxnGY2eZl+d6BxorW1lfh4lRn/8ssvjzhu/fr1/OlPf6KvT8VW8/Pz6ejQCz3puD8FtUbeOVHFA5cmEx2kFnQPg+Ara2dRb+zhg9PTT1PR0N5DXq2RKzKjRx23LjOao2XNtHRqKvQ+6dlX1IinQbAsOWzUcQsSQvH1MnCgZHot4ofPNdHXL1mZGjHm2BWp4VQ0d1HR3DkOM5u86EaOi3j66ae56667WLNmDZGRIz+1PPzww8yZM4fs7GzmzZvHo48+qmdd6UwKXjlQhreHgUcvm3XB+5elR5EaGcBLe0snZmITyIHiJgBWpoaPOm5tVjRmCTvzp1cNsH3FjSxKDMXfe/QggrengeyZYQPnc7pwqKQJg4BlyaNfP8CAITTdzpFWpkS4aqJob2+/4PWDDz7Igw8+CMAtt9zCLbfcctE2g8NWAAaDgZ/85Cf85Cc/cdU0dXScTr9ZsulUNeuyoi/STBgMgvsuSeKZ986SX2skIyZogmY5/uwvbiTA24N58SGjjluYEEqInxefFjZyy6KLaqFOSbr7+jlT2cqXLrNNTLwiJYLfbMuntbOPEP/p0Zz4aFkLWTOCCfQZe2nOjAki1N+LAyW6Lmc0dE+Ojo6OZg6UNFJv7BkxzdWqo/gkt248pzXh7CtuZFlK+JgNJj0MguyZoRwtax6nmU08JytaMZklS2aOHqqysiI1HClVtt50oN8sOV7ewuKZoTaNNxgES5PCOVw6fa4he9CNHB0dHc1sPVuHt6eBK7KGr0YeG+LH7NjgaWXk1Bt7KKxrt0lPAZA9M4yCuvZpU57fatDZuogvSgzFwyA4Xt7iymm5DQV1Rtp7TGTbaAQCLEgIoaSxg/YeXeIwErqRo6Ojo5kdeXVckhoxqrZiXVYUR841T5uCZUfOKY/D8pSx9RQA2UlqMZsui/iRc80kR/iPmho9GF8vD9KjAzlV2erimbkHJyzXga1GIMDcuGCkhJxq59aJm0roRo6Ojo4mzjV2UNzQwdrM0XvKrcuKod8s2VkwPcS1Jypa8TSIEYvcDWVhYigGAUfPTY9ww6mKVhYl2r6AA8yPD+F0Zeu0qA6dW2PEz8uD5IiAsQdbmBuntF9npokhaA+6kaOjo6OJPYUNAFyWMbqRsyhRiWv3FjSMx7QmnBPlLcyODcbXy8Om8YE+nmTEBE0LXU69sYeatu4xBdlDmZ8QQmNHL9Wt3S6amfuQV2MkIyYQg2HkIolDiQn2ISLAmzNOrvg/ldCNHB0djUgpOVzaxKaT1VS3Tr8mggdLmogK8iE1cvQnzukkrjWbJacqWlmQoG0Rz04K43h5y5T3VJypUp4GrUaOdfx0CFnl1xrJnKEtE1EIwZy4YN3IGQXdyHGAwMDAiZ6CzgTwy4/zuPPP+/jqq0e56lc7OTxNsj9AGXgHS5pYnhI+all+K0uSlLh2qhe9K2nswNhjYmGCtnDMvLgQjN0mKpqntrFsXYTnxGlrYzF7RjAGMfXDMQ3tPTS099pVbmFuXAgFdUZ6TXpj3OHQjRwdHQ1s2FvCH7cXcdeSBN788iVEB/vyhQ2HqDf2TPTUxoWK5i6qW7tZbkOxMoAlSWrcsbKpLa49WaG+34JEbZ6K2bFqUTs7xYWjpytbSYrwJ9hXW70bP28P0qODprwnJ7/GCEDWDO29zObGBdPXL8mvNTp7WlMC3chxIkajkZSUlIEWDW1tbSQnJ9PX18fatWv5zne+w/Lly8nIyGD37t0APPvss3zxi18E4NSpU8ybN4/OTr1MtzvS2tXHr7bkszYzip/esYAlSeH89YGldPSY+PPOoome3rhwsERbBtHCxBA8DIIjU1xce6K8FT8vD9KitHl3syyeiqmeHXO6qpV5cdoMQCtz44PJqZ7aC3iuxcjJmKE9OjDX4h07O1rIqqsFzNPT0zM1Kh5/8CTUnHLuPmfMh+t+qmmToKAg1q5dy6ZNm7j11lt57bXXuOOOO/DyUk8vJpOJgwcPsnnzZp555hm2bt3KN77xDdauXctbb73Fj3/8Y5577jn8/f2d+110nMKGvaUYu018e30mHhZx4KyoQO7ITuDv+8/xpTWpIzZlnCocKm0i2NeTTBvd6v7ensyNC+bwuakd0jtb1cbs2CA8xygCOBQ/bw+SIwNGXqD6uuHk6+AbArNvAoNtomZ3orWzj/KmLu5Zbl9X+oyYIP59tJLWrj5C/IZ4gpqK4V8PQFczrPtvWPhZJ8x4/MmvNRIe4E2Ujen1g0mOCCDA28Oie0q88ENTD7z5EOS8B1Gz4f53ICjGOZOeJOieHCfz8MMP89JLLwHw0ksv8YUvfGHgs9tvvx2AJUuWUFpaCqi2Dhs2bOC+++7j8ssvZ9WqVeM+Z52x6ew18cKeYq6eEzOQtmnl61em02+W/G1f6YTMbTxRFVnDNGWAZM8M40R5K/3mqSmulVKSW9NGlo2p40OZHRtMTs0wRo65H16/F977OrzxALz9ZQdnOjFYv5utqfVDyYhR3o2CoeGY3g74x53Qcg78I+Cdr0LlUYfmOlHkWjKrbNG5DcVgEGTFBpNTM4y3a/ezysBZ+kVoLoU3HlTX1TRianhyNHpcXMmqVasoLS1l586d9Pf3M2/evIHPfHyUle7h4XFBE86CggICAwOpqqoa9/nq2MaWs7W0dZt4eHXKRZ8lhvtz6awI3j9ZzbfXZ9p1o5oMdPf1U1DXzpWzR++wPZS5ccF09fVT2tjBrKHhHHM/7Pw5nPk3ZKyHdT8ET+/hd+Sm1LR109Ztstm7NZQ5scFsOllNW3ffhZqVvb+Fwi1w3c+hvQ52/xLm3AJZNzhp5uODVStij94EID06yLKfdpYO1oIdfgmaipR3InYh/GkVbP5PeHgbTKK/QbNZUlBr5K6liWMPHoH06EC2nK298M3WCtjzLMy7E278NcQvUYZgznsw91YHZz15cLknRwgRKoTYKITIFULkCCEuEUKECyG2CCEKLD9tr2M9Cbj//vu55557LvDijERrayuPP/44u3btorGxkY0bN47DDHW08u7xKuJCfEfsDnzTgjjKmjqntEAyv9ZIv1kyJ1abtsKaUTNsmuuOn8LOn4KXH3z6e/jwO86Y6rhi1VNoTf+1YvVw5A7WnfR1q/ORvh5WPAprn4ToObDlKZhk6eb5tUaCfD2JCdYeigGID/UjwNvjQmGtqRc+/R2kXAapa8EvDNZ8CyqPQNk+p8x7vKhs6aKjt9+hRrZp0YE0dvTS1DEoi/HIy9DfB1f+UL1eeA+Ep6rzNsmuIUcYj3DVb4EPpZRZwEIgB3gS2CalTAe2WV5POjo7O0lISBj49+yzzwLw+c9/nubmZu65554x9/HNb36Tr3zlK2RkZPDCCy/w5JNPUlc3ffr9TAZaO/vYmV/PTQvjRgzTXDM3Bk+DYNPJ6nGe3fhh1Y3M1ZgGnB4dhJeHuFh30lAIe34N8z8Dj+6ClV+Fwy9C9QlnTXlcOJ8ZY98ilWXJsMobHLLKeRe6muCSr6jXHl6w6nFoLIDiHY5Md9zJr20nIybIbg+nwSBIiwm60Mgp+gTaa9U1Y2XR58AvHA485+CMx5c8B41kgFnRykNaWNeu3ug3wbG/Q9pVEJak3jN4wIovK0Ow7qxDc55MuNTIEUIEA5cBLwBIKXullC3ALcDLlmEvA5PSd2Y2m6moqBj498QTTwCwZ88e7rzzTkJDz9fM2LFjB0uXLgUgMjJyQJPz4osv8vWvfx2AxMRECgsLiY7WFg7QcS3b8+owmeVAZ+3hCPX3ZnV6JJtPT10j50xVG4E+nswM1yaM9/Y0kB4dNFAQboC9v1GL9zU/Uq/XfkctUp/8yEkzHh/yaozEBPsQ6m9fmG1GsC+BPp7nFyiAIxvUU3fyZeffm3sb+EcqQ3CSIKVKbXbESwGQER1Ifu2g83P6TeW9mbXu/HtefjD/Tsj/ELonT7ZansV4s2qP7CHdYuQU1FkMwXN7wVgNi++9cODc20AY4PS/7T7WZMPVnpxUoB54SQhxTAjxVyFEABAjpawGsPy8aFUXQjwihDgshDhcXz95et889thjPPnkk/zgBz+Y6KnoOIktZ2uJCvIZs9Db2owoypu6KG8aoQSAlFCyC/b/GYw1LpipazlT1cqc2GBNomMrc+KCOVvVdr6yb1cLnNoI8+86n+3hGwLLHobCrdA2efRpuTVGMu3Um4CqWjsrKoDCessibqxRi9TCe8Aw6Bbt6QPzboeCLUp0Owmob++hpbPPoQUcVIZVQ3sPzR290NsJeZth9s0X67fm3wWmbsjd5NDxxpO8GiPxoX4EaawhNJi4ED/8vDzOG8q5m8DTF9KvvnBgYBQkr4Ezb02bkJWrjRxPIBv4k5RyMdCBjaEpKeXzUsqlUsqlUVGj98hxJ37/+99TWFhIRkbGRE9Fxwn09ZvZmV/PlVnRYy7ul8yKBGBfUePwA7Y+BS/fpHQnf1g+qcIy/WZJbo1Rc8VaK3Pjgmns6KXOWjTxzL/B1AVLh+jWFt0D0gwnXnNwxuODqd9MYX273aEqK2nRQecXqPyP1M/M6y8eOPtmdd4Ktjh0vPGiwOJ9cdSTk24xkvJrjVDwMfS2w7w7Lh6YsAxCEpW4dpKQV6O9ncNQDAZBWnSguoakVEbOrHXgPUzrlbm3KcF2zUmHjjlZcLWRUwFUSCkPWF5vRBk9tUKIWADLT7tEKFO934uV6fI93ZET5S2095jGbEYJyt0cEeDNvuJhjJyz76psmSUPwn/sAZ9AVd9jkjyRlzZ20Nnbb7eRYxXXDoSsct6HiDSIXXThwPBUmHkpHH91UjxpljZ20msyO7yIp0UHUtvWQ1t3H+R9ACEzIWbuxQOTLlUhq5x3HTreeGHVmzh6fqxZeSUNHVC0DXxCIHn1xQOFUFl6xTtUjRg3p9dkpqi+3WEjBzhv5DTkQ1uFOg/DMftmFbKaRIagI7jUyJFS1gDlQohMy1tXAmeBd4EHLO89ALyjdd++vr40NjZOeQNASkljYyO+vlO7yJy78mlRI0LAJakRY44VQrByVgT7ioZcl/0m+Pi/IWY+XPcLVWjy9uehuQQOPu/C2TuPM3aKjq1Y04fza9uhu1WF7bJuGD7Vd9E9SmBbfdzu+Y4XeQ6Kjq2kWTQVxVX1ULwdMq8d/twYPNR5y/9IZWC5OQV1RsL8vYgMdKwsQFyoH96eBmXklO6FpEtGLoyYvh76OqB0j0PHHA9KGjowmaXd5QcGkxYdSHVrN92Fu9QbyWuGHxgQodLJiz5x+JiTgfGok/MY8IoQwhsoBr6AMq7+JYR4CCgD7tK604SEBCoqKphMeh178fX1JSEhYaKnMS3ZW9jAnNhgwgJsu0lfkhrBppPVlDR0kGqtCZO3WRUsu/sf5zUEyash7Wrl3Vn2JeXZcWPOVLXi5SEGapZoJcTfi+ggHxW+KDgG5j7IunH4wZk3gHhceTTiFjswa9eTV9OGQZw3UuzFun17zjalKcm4duTBWTfC0ZdVqvSsKxw6rqvJqzE6lFllxcMgSI7wp6G6TIValjw48uCUNeDppwzBtCsdOq6rsYqOneHJmRWlQlPdhbvxDZyhvKIjDr4Sdv4MOpvA37YWLZMVlxs5UsrjwNJhPnLo6vPy8iIl5eLCbDo6zqKrt59jZS08uCrZ5m1WWHo6HTnXfN7IOfi80gkM1Vhc9p/w4no4vXH0m7YbcLaqjfToILw97Xf+pscEUlhnBPE+BERD/HC3BdSTZuIKZRxe8T27jzce5NYYSY4MwNfLsXYLiWF+eHsY8CrfCx4+kDRK5fPkVWDwUk/ibmzkSCkpqG3n1sXxTtlfamQgYZU71YvkUc6Pl5+qn1PwEcifuXVhwLyaNjwMgtSoYbQzGkmODAAkPpX7IG3N6N877UpVn6p4+/DapimE3tZBR2cEDpU20dtv5tJZY4eqrKRGBRLg7XG+KGDtWSjdDcseuti9nrgCoufCoRfcWn8ipeRsVZvdoSor6dFBFNW1IYu2Q8Y1F2YODSXzOtWPrqXcoWO6mrxao8OhKgBPDwMpkQFENx2BhKXgNUp42jsAZq6Eou0OH9eV1LR1Y+wxOZxZZSUlKoDUjhNI7yCYsXD0welXqzYGTcVOObaryKtpJzUyAB9Px3uSJUcEkCRq8euuG91IBojLVtmMhVM/ZKUbOTo6I7C3qAEvD2Fzx21QbvV58SGcrLAYOSdfA4MnLL7/4sFCqOyimpNQe8ZJs3Y+tW09NHb0OmzkpEUHktRXjOhugZS1ow+2er3yP3TomK6ks9dEWVOnw6JaK3MiYGZv4dgLFKjMmdpTYKwde+wE4SzRsZXUyACWiRy6ZiwFjzGCENYwVeFWpxzbVeTVtpHhBCMZwNfLg2sCitSLsa4hD09VKbpom1s/YDkD3cjR0US9sYen3jnNwmc+5pY/7mVXvo2aKCnVk9Ukqn+yr6iRxYlh+Htri+ouSAjhbHUbff1mpQtIWqVCMMMx9zYQHqq4mZtizYiaG6+tncNQMmKCWGU4rV6kjCCKtBKZDuGzzqdTuyEFte1I6bjo2MqlXoV4YKY/8ZKxB1sXcTeufuys9HErGYFdpBsqqQ7NHntweCqEpUDhNqcc2xV09Jgob+oiy0nnB2CNVx4tIgSiMscePOtKVTCwLsdpx3dHdCNHx2bauvu45y/7eeVAGavTI2nv7uMLGw7x4VhVflsr4S/r4LcL4dk5sPEhVdDLjensNXGmqk2TF8fK/IRQek1mivPPQH3u6CLSgEj1RHX6Tbd9orK2Y3B0MU+PDuRSw1ma/VMgaOTq0ec3uEaF+tz0Wjlfjt8xD5eVeabT9En8ynPDAAAgAElEQVQPKoPmjz04Zr5KJS9y30U8v9ZIZKCPzaL9sUjtVHVdznjbcH5AGYKlu902ldzapsJZnhyA+abTHJJZtumQrNWip3iWlW7k6NiElJKv//MYpQ0d/O2h5fzxc9m887XVzI8P4TtvnqKxfYQbSWcTvHQdNBTAtT+D1d9UC/prn1MdqN2UkxWt9JslS5K0945dYPF4GE9Zqq6OVK/Cyvw7VfZVxWHNxxoPzlS1kRzh71BFVoAwH1jukUeOr40ZU+lXq0wjN00Fzq0x4utl0NzmYiQS245yUqZS3GqDsWswKNFx0XYwm51yfGeTX2skc4bzsgaDag7QhQ8He5Nt2yDtKujrhLL9TpuDMznfnd1JRk5LGWF9Nezpy1KVocciNBEi0pX4eAqjGzk6NvHx2Vp25NXz/Rtmc6mlsm+gjye/vGsBnb0mfrI5d/gN33tchajuewtW/gdc9RTc9Bv1h/Xp78bxG2jjyLlmABbPHL2Vw3AkRfgT5OtJcNk2VfAuYtboG2TdAB7eqtS6G3KmupW5cY6FqgCoOoo/3ezun2Pb+KRV4OUPhe5Z3Tevto2MmCA87GhzcRG9HQQ0nuKAeTalDTYWiJy1DjrqoM799Fxms6Sgrt3ukgPDUrqXPK/ZlDTZ6JlJXmPJQnNPb1dujRE/Lw8Sw5xjJFO6F4AD5tmUNNp6DV2htnNTb5cz0I0cnTExmyXPfpxPamQA961MuuCztOggHl6TyptHKy5sMAgqHp7zLlzxXUhcdv797AdUrY+dv4B29+y4fqysmdSoALuaLgohWBbnTUr70dFDVVZ8QyD1Csh9z+1CVq1dfZQ3ddld6fgCSnZhRrC5bZT6HYPx8rWkAn/sducFVGaMs/QmlB9AmE2cMMyltNHG8FyqJX3cDXUnlS1ddPb2O+/8dDZB3RkqQ7I5Z+v58QlUWWhumkGkGpcG2tULbljO7aXfJ5Q8mWC7oZx6hWoT4qbeLmegGzk6Y/LeySryao184+oMPD0uvmQeWp2Cl4fg1QNl5980m2HLDyEsGS752oUbCAFX/z8Vitj1S9dO3g6klBwtayF7pvZQlZUbA/PxwkRv6tVjDwaYfRO0lLldP5mcaqXHcZaR0xSUxbkuX9vc6XA+Fbix0PHjO5HG9h4a2nucF2oo3QvCg8aIxaqqry0Ex0L0HLfUVOQPFLlzUrjq3KcAGGespKqli16TjSG6gSw092uIay2U6DTO7UUkXYIQBtuvoeTVKvtzCoesdCNHZ1TMZslvtxWQNSOIG+fHDjsmMtCHa+fFsvFIOV29Fp1N/odQexrWfld1Tx5KxCzIvg8OvwitFS78Bto519hJU0evXXocK8t6D9Im/cj1Gab/0HBkXq+yrNysn4yj7RwG6O2E8gN0xF0KQLGtN+E0i5FY8LFjx3cy50XHTlqkzn0KsQuJiYqi1NZQA6hFvGyf24mz8y2ZVWnOCled2wuevnjPXIZZKk+RTViz0NzMEGxo76Ghvdd5109bNTQVY0heTUKYv+3eQN9g1dTUzWsuOYJu5OiMyv7iRorrO3j08tRR3aqfXzGTtm4Tm05ZMq0+/R2Ezhy9muaab6mO027Wv8mqx7Hbk2M2E1u3m13mheTW2thfKCBCVXF1OyOnlaggH6KDHOydVn4A+nvxyVAhFpufNMOSICrL7bpu5zrTyOnrgsrDkLyKlIgAKpq7VPkBW5i1Dvp7Bzwd7kJBrZHYEF9C/BwTqw9QugcSlpEYrTRyNhuCMfMhIMrtQnr5TjeSlR6H5FUkRfhzTouhnHoFVJ+AjmEaC08BdCNHZ1RePVhGiJ8X180b3otjZUVKOAlhfmw+VQ31+erpculD4DHKTS50pgrTHNkAPe0jjxtnjpY1E+TjSbq9/YhqTuDZWctukT2wGNrE7JtVynl9vn3HdQHOqHQMqIacBk8iZl+Gp0FQ0qDh/zvtKnUTd6NrJL/WSHiAN1GBw3gptVJxWBkqSatJjgyg3ywpb7LxSTzpUvD0dTtxbV6tkXRnhWK6WlT16+TVJEUokW6ZrZ4Kg0EZgsXulYXmzJ5VgPr78A6CmPkkRwRQ0tBhe/PqWesACSU7nDMXN0M3cnRGpLWzj4/P1HLb4vgxe/MIIbh27gz2FDTQe2iDivMuvGfsg1zyVdWV+sQ/nTNpJ3C0rIVFM0PtFwTmfwQIKiNXk1vTZvt2WTeonznv2ndcJ9Nj6qewrp05sU4ycuKX4OUfwsxwf4rrNTxppl+jjICSXY7Pw0nk1ijRqKONJwHLU7iAmStJiVSLuM2eCi8/Zei4UTim3ywprGsnw8GmpQOU7QckJK0iKtAHf28P28XHoIredTa6VVf7vBrVnd0pRjIoTdfMleDhSVKEP8ZuEy2dfbZtG7cYfEKmbMhKN3LGEynh7LuqGN7fb4Otz7h1Wfb3T1XR22/mjmzbOqBfO28Gsr8XefyfKqsoKGbsjRKWQewipc1xgwya9h4TeTVtDomOyf8QEpYRF5dAbo3R9ieq4Dh1PtwkZJVf047JLB1PH+9ug6qjKlMKSIkMsD1cBTDzEvAOdJtUcrNZkl9rJMtJRQAp3QMz5oNfKMkRqlFjSYOWRXyd8gC6ibatvKmTHpPZeUXuzu1RJRYSliKEYGa4xnDMQNE79/F25dUayZzheHd2ANrroSFvoGlpSqTlGrL1HHl4qgrkxTvc4h7sbHQjZ7ww1sIrd8K/7lNVODsblW7lD8vg1MaJnt2wvHW0krToQObF23Yzz54Zxm3+J/HpbVJp4rZg7d9Ud9YtiuGdKG/BLCHbXtGxsQaqjkHGejJnBNPU0Uv9SIUSh2P2TeqJs6Vs7LEuZqCdg6PhqnOfKu2VxchJjVJGjtls4w3V01tVhS7Y4hY34YpmlR7tlFCDqQcqDqksFyA8wJsgX0/bU4BBeSrAbZ7EraEYp2UOle5VHeu9/ACUkWNrOA8gMApiF7pNKrnZLMmvcaKRbNXjJKlrKMliKGs2BFvL3S6L0RnoRs54YKyFDderP9brfgFP5MCju+Ar+yFmDrz5EBz660TP8gLKGjs5fK6Z2xbH2/y0YTAIHgrYQ40Mx5Ryhe0Hm3eHelI/ssG+yTqRoxbR8aJE7UUAgfMC2YxrmW1ZBPO06HKyblQ/c9637/hO5Gx1G4E+no5X9C3ZBR4+kLAcgJTIQHpMZqpabcyQAZVK3lquPBYTjDUE6RQjp/KoKqVgaagohCAlMkBbhlX0bAiKdZuQlVVUa7embTA9RiWKTT7fcDIpwp+ypk7bjWRQhmDFQeVVnGAqW7rocGYNoXOfqqKZcYsASAz3Qwgo1eQNtNyv3cRQdiYuN3KEEB5CiGNCiPctr1OEEAeEEAVCiNeFEM5pbOKumHrg9XvPV/1d8QgYLPqWyHS4/x1IXw+b/8utmu1ttvSjunlhnO0btVaQYTzA6/2Xc6JKg0jUJ0i1Njj9ptLnTCBHy5pJjw60Pysk/0MIToCYuQOLYG61BiMnYhbEzHOLkNWZqjZmxwY5XqysdBfMXKGK+zHIna7FW+FGqeRO7a59ztKyIunSgbeSIgK0aU6EGCSunfhWKbm1RmaG+xPgo62x7bCUHQDZf0FX7aSIAHpNZmqNNmYugkolN5vcQtfl/PIDeyFx+UCSh4+nB3EhftoM5fBUCE2akvVyxsOT8zgwuM3pz4BfSynTgWbgoXGYw8Tx4ZPqCeLWP0HSMN2FPX3gzhcgMgPeeNBtilZ9cLqG+fEhJGp5ij/2CgLJxv7L2VvYoO2A2Q+oypsn/6VtOydiNkuOlbfYXx/H1KOehDKuASGICPQhKshHW4YVqJBV2b4JrQbdb5bkVLc5rsfpbLJkxlw28NasKDuMnJB4Zfy5QSp5bo2RpAh/Ap2xiJfugei54H++EWxKhD8VzZ22F7wDZeR0NbuFuDavxujEBXyPSmJIXD7wljXDSpOnImG5Rde11TnzcoDz4TwneLo6m6D2zECoyoryBmqsnTRrHZTshn4bBcuTBJcaOUKIBOAG4K+W1wJYB1hFKC8Dt7pyDq5ESpXqebaqDWP3MBdG3gdKUHvpYzB3lK/pEwR3/13Vy3jv8QnXHVS1dHGivIVr59nQKdqKuR+O/R1S1xISl8YerUZO3GIlvjz68oR9/+KGDlo6++wXHZfugb6OC1o5ZM0I0pZhBcrIQULuJvvm4QRKGzvo7O13vNJx6W71M+W8kRMV5EOAt4e2DCtQIauyfRMecsipbnNOpWNTr/JUpKy54O2kiADMEiqaNSxSqWsBMeG6k+6+fkoaOpxbCTouG7wDBt5KCle/lzVpuH48vdU1WLRtwu+veTVG4kP9HG54C6i/B+QF4TxAe60cUCGrXqNbaCOdias9Ob8B/guwPpJEAC1SSpPldQUQP9yGQohHhBCHhRCH6+vrXTxN7Rwta+Yzz+1jzc+3c/3vdrPkR1v5380555++Opvg3a+rp891Pxh7h5HpcOVTKtxx8nXXTn4MPjqjvEnXaTFyincozUT2/axKi+RYWTMdPaYxNxtACOXNqTk1YU+jR8ssRQCT7NTj5H8Enn4XLOhZM4IoqGvHZGtxN1Cl+sNTJzRkddZS6djh9PGS3eAVAPHZA28JIUiJCrC96rGVtKtVyGECw7pdvf2UNHY4RzRaeUR5L5MvNHKStaaRAwREWsS1E+vpKqxrp98snePJ6e1QWXlDFvC4UF88DUJbSA+Up6KlDBqLHJ+bA+TXOtPT9anSu8UvueDt5IgAWjr7aOm0sX0KqPuWMLiNtstZuMzIEULcCNRJKY8MfnuYocOa1VLK56WUS6WUS6OiolwyR3v5+EwNn31+P+VNXXz/+tn88XPZ3Lwwjud2FXPvCwfo7uuHT36kMqhu/dPwbQ2GY8V/qCyCj38wodqUD07XkBETSGqUBnfqsb+DXxhk3cjqtEj6+iUHS5u0HXj+XcpIOPKytu2cxLGyZoJ9PUmNtMONLKUyUFMvH8gCAcicEUyvyazNdSyE8uaU7FSF0CaA05WteHsYHNedlOxSYdohRSFTIgO1FQQEFbLwCZlQXU5+rREpYbYzageV7gbEBXocYCCNXFM4BlRrkPKDKqV4grDqTZxiBJbtV0Zt8oWhGE8PAwlhftqNnLSr1M8JTCXvNZkpqndiY9eSXervYsgak2zRvWm67/iFqbBe/gfOmZub4EpPzirgZiFEKfAaKkz1GyBUCGENZicAVS6cg9P5tKiBL79ylDmxwXzw+Bq+dFkqNyyI5Zd3LeQ3dy/iYEkTf3z1TeThF2H5IxC7wPadGwxw/S+gox52/Mx1X2IU6o09HCpt4toxKhxfQEejygZaeA94+rAsORxvTwN7CzSGrPxCVVjv1MYJqW57qLSZJUlh9gltG/Kh5RxkrL/g7UzLzczasNBmZt+sbvD5H2mfixM4XdVK5owgvD0duEUYa1T9jkGeLSupkap9QXefBqGsh5dyqRdunbCQg7Vh6exYJyxSpbthxrwL9DhgSSP38dQebsi6HpATukjl1Rrx9jSQHOFgRh4oI9/gpeokDWFmRADntISrAMJTlId0Als8FNa109cvnXP9WPVuKZdf9JH1/Nt1DdWccosSFs7CZUaOlPK7UsoEKWUy8FngEynl54HtwJ2WYQ8A77hqDs6mqqWLr716jJTIAP7+0HLCAi5MDLt1cTzfvDKNtUU/p8c7DNY+qf0g8dmw5EE48GeoyxlzuLPZcrYWKTWGqk6+BuY+WHwfAL5eHiyZGcanRXb0Qsl+QMWFz76tfVsHaO7opbCunaXJ4WMPHo78D9XP9GsueDstOhAhNKaRg9IhBMVNSPVjKSWnK9uYF++g6LjUkjk0nJETFYCUUKal3gmo82usVs1fJ4DcGiP+3h4khjm4iJt6lNcl+eJzI4QgOTKAEq2eiph5qlXKBGq5cmuMpEcH4unhhKWlZJcqjjlIj2MlKdyfc42dthfatDLrSmVcmjTUrnIiViPZKa1SSncDcti/r8Rwf+1p5ACZlqrreVPHmzMRdXK+AzwhhChEaXRemIA5aEZKybc3nqDXZOa5+5aMKBp7LPIwSwwF/Kz/HjoMdqrnr/yhEiN/9L1xf2L94HQ1SRH+tgsHpYSjf1Nhtpg5A28vTwknp6aNtuEE2aMxc6XKNBvnkJW1Kecyu42cj1QzwJALq0P7eXuQHBGg3ZNjMMDsG9VTZ6/GpzEHKW/qorWrj/mOGjlFn4BvKMy42JtpTSPXLD62hhwmKGSVU91G5gwnpNVXHFL1cYaEYqzYJRwVQtVZKto+YX2+ci3nx2G6mlV9nNSLvRTAQOuCZltbF1hJuxL6Oi2tIsafnOo2fDwNAyFJhyjeqTLGBundrPh6eRAb7Kv9GopMU/ffvM2Oz89NGBcjR0q5Q0p5o+X3YinlcillmpTyLinlxJjUGtl4pIK9hY08eV0Ws0bSqnS3Ytj6FO1Ri9nQcQl/2V1s38H8w+Hy76hFYhxTZls7+9hX1Mi182bYXm68/KAq0JZ9/wVvL08JR8rzxoPNCKH2VXFwXD1Zh8814+UhWJBgx8Le2aRumhnXDPtxRkzgQNqoJmbfpISp4+xeP22pdGxrpethkVLNe9YV5+tCDWLAyNGqywmKUW1Acsf/JiylSqt3ih6neKcSeQ7R41hJidTYjdxK1g3Q3zMhupPmjl7qjD3MdoYeZ0iV7KHYVWsJlMjb4DVxRnKNMgKd5ulKunTEJsjKG2jHA1Lm9coLO0F6QGejVzy2gYb2Hn60KYdlyWF8bvnMkQfu+Cl0NBB426+5fn48z+0spq5NQ8GqwSx7GMJnwcffH7e6BVtzajGZ5Zgdxy/gyAb1NDHvjgveXjwzFE+D4FCJRvExKG2PwUt5iMaJw6VNzI8PGbMR6bDkfaAKllmrFQ8hMyaI0oYObfoTgJmXgl/4uIesTlW24uUhHHsirz0D7TXnPS9DCPL1IirIhxKtnhxQuq3Kw9B8zv752UF1azdt3aaBStYOUfSJyojxGz6TLylCdSOvaNZQFRogcaW6ZiYgZJXrzCJ3xTtVFd/4pcN+PCCs1Wrk+AQqw/vsO+PuJZdScraqzTlGYFsVNBYMq8exormopJWsG5Qe0A1qUjkD3cixgWe35NPRY+J/b58/spu69iwceE7paeIW8+31mfSY+nlhb4l9B/X0hmv+Rwlax6ndwQena4gN8WWBrWGKrhY485bKivK50Lvl7+3J3PgQDpdq9OSASofNukF1Ju+z00jUQHdfPycrWu3X4+S+r6ocxy0e9uOMGUGYJRTVa/RaeHiq85D/0bhqCE5XtpIRE4SPpx0GnxVr0TVrc8Rh0Nyo08rc29TPM2/ZMTH7sabVZznqyelsUqnR1p5Tw2AVjmpKIwd1zWRepzRi41zUzdrrzCmerpJdSnDsOXxB/MQwfwzCjvMDMPd2Ve6i4pCDk9RGbVsPzZ19zhEdWys3jxDOA3UNNXX00tql8TqIX6rahIyzLtJV6EbOGJQ0dPD6oXI+t2ImadEjXJxSwub/BN9gpadBPWlcNz+WV/eXDV8o0BYyr1fu1e0/UTFqF9LeY2JXQT3Xzpthu97g1BsqnLJk+Gacy5PDOF7RQo/JjlLzSx5Q3znX9T2cTle20ttvZqk9lY572lVYZvZNKtQ2DHZnWIHKsuppG7dy9Ep03Mo8RysdF21TlXyDR24LMivKTiMnLFl5Qc782/752cGpylaEcELtoOIdKhSTNoqRY6+nAtQ109067vVOzlS1MSPYl6ggG0tmjERbFdTnjLqAe3saiA/z017VF1QGkYcPnB7f6+d8Zp4TjMCi7eAfof7GRsB6DZVpPUcGg3qQKPh4wtvsOAPdyBmDX32ch7eHga+tSxt50InXVP+Qq565IB300ctSMfaYeO1guX0HFwLWWwycXb+0bx82sj23jl6T2fZQlZTKwxS7cEQPxrLkcHpNZk5W2PGHkrJWZYocflH7tho5bNEN2dXOoXCL0kDMvmnEIcmRAXh5CPJq7BCDpl6uasOMU7uLypYumjv7mGePNslKd6vSVIyyiIPy5DR29NKqVTwK6mm8+sS4FnY7VdlKWlSg4z2ZiraBb4jKoBuBiABvAn087Qs3zFqnap6Mc4uU05Wtjum4rFjDJOnDa9ysJEcE2GcE+oao6tln3hrXXl9nrUaOo5lVZrPylM66UhkkI2AVN9uly5l3B/T3TmimnrPQjZxROFXRyvsnq3l4TQrRQb7DD+psgo//W6U6WlKorSxICGV5Sjh/21+qrWPuYGIXwOJ7VSjMhTf0D0/XEBnoY/tCX3lEpfFmD+/FAQbCPwft0eUYDLDsS8p4rD6pfXsNHC5tIjUqgIhAO55Ac94D/0iVFTYCXh4GZkUF2ufJ8fSBBXcpXY6LvXnAgEHqUGZV4VYV08+6YdRhKZaii5rFx3C+TcrpN7VvayenKlsdzzizCrJTLlehpRFQaeT+9nm6PL3Vk3juJtXFexzo7DVRVN/ueK8zUB6EkESIyhp1WEqkMnI0p5EDzLtdacbK9tk5Se3kVLeREOZHsKPtHKqPQWfDmEbgTEvfwXP2XEPxS1TDzlMbxx7r5uhGzij8/KNcwvy9+NJlqSMP+uR/oKsJbnh2WKv63pVJlDd1sVtrL6fBrPuBWuy2/ND+fYxCV28/2/PqWD83Bg9bQ1X7/w98gmHBZ0YcEh7gTXp0IIe0Vj62kn2faglw4M/2bW8DZrPk8Llm+0JVvZ1KL5N1w7AZRIPJiAnSXivHSvb9Kt345Bv2ba+Bo+ea8fY0OBaSyftAudITlo06LNWeRp1WQhJUKPf4q+rJ1sXUtnVTb+xxvHZQ9XFV5yfzujGHKuGoneUDFtytQsnj9CSeU92GWTpoHIPq51W8QwnWx8jwTI4IwNhjoqlDQ+sCKxnXKmHzOBrJZ52VmVewBRBjekr9vD2YEexrX0hPCOXNKd4BHQ6sXW6AbuSMwKeFDewuaOCrV6SNbHmXH4TDL6l2DCNUNl4/N4aIAG9ePeBAJkhQDKz+ptKnuECbsTO/ns7efq6fb2OoqqUczrytFl+f0UV0y1LCOVLaTL89niy/MFh0j9L+uKgj99nqNlo6+7hkVoT2jfM/gN52mH/nmEMzZwRR2dJlnz4rdqH6Nw7NS4+VtzA/PsT+Ssf9fepJPOPaMQ2/xDB/PAxCe60cK4vvg+YS1anaxZyyergcCeMB5H2oUsfHeAoHSIkIoNyeNHKAxBUq3DtOISvr+XHYCCzfr/6mbDg/dvX4suIdoK7RM2+Pi6i/tauP4voOFjp6/YD6+0pYelGl7OFIjvS37/yAuq/J/nE1BF2BbuQMg5SSn32YS2yIL/euTBp+UG8HvPWoeqJc+90R9+Xj6cFdSxPZmlNHrb3p5ACXfFW5cD/6ntPjyB+eribM34sVKTZmFx18Tv1c8eiYQ1ekhGPsMQ2I7jSz4j9UbPiQa2pGflqknlIunRWpfeOTb6iqxEnDF3QbTMaA+NjOIm3ZD6jwYNVR+7a3gV6TmVOVrWTPtLNBKSgtTnfrBZ3YR8Lb00BimJ99nhyAOTcrvdLRv9u3vQZOVbZicIboOG+zMkACxr7ekiL86TdLKrWmkYN6Ep//GSjeDq2VdkxUG6er2ogM9CYm2EHRce5m8PQdsT7OYAY0J1qr+lpZfK/ywo9DI1yrEbgw0YG/LQBjLVQetckIBHWO7PYGxsxVessjrn+4ciW6kTMMH52p4URFK9+8KmPkuilbfghNJaoBp+/oN757lifSb5b2C5BBNX286mnVV8SJ9WO6+/rZllPH1XNibCtQ1d2mLvo5t6gnxTGwVhC2O2QVma5KjR/4kzq2k9lb2EhadCAxwSNorkais0mJjuffMar4z4q1grRduhxQT1Ve/i6tHXS2uo1ek5nFM+0I3Vk5/aaqmzRCfZyhpEYFau9GbsXLT52XnHddXrjsREULsxwVHbdWQM1Jm0JVMLjJor2erntVFtcx1xuBJyweQJuLiA6HlMrgmLXuopIUw5EYrjyBdomPAVKvgLAUlz1ADeZ4udLTLUhw0MjJfR+QoyY6DCYpIoCG9l77M3yzH4C6M1Bx2L7t3QDdyBmCqd/MLz7KIy06kNuz44cflLsJDv1VeVdS1oy5z6SIANakR/Kvw+X2hW2szLtD6RC2/FClWTqBT3LrMPaYuGXRCN91KAefVynNlz5m0/C4UD/iQ/3sEx9bufzbyjtw8Hn79zEMvSYzB0uaWGVPqOrUG0pcO39kTdJg4kP98Pf2sF+X4xuiMopOvuEyAfKxMrXfbHuNHFOvKrKWeT1429bbSdXKabdfmJ99n0Wv5LqwjNksOVbWYv95sXLW0qYvc3RBtpXz3cjtXMTDU5TBcPRvLs0iau3so6Cu3fHzU3UM2ipsXsC9LN3I7TYCDQZY+gUo+9Tl1dWPl7eSGhVAiJ+DouOc9yAibUxRtpXzjTrt9HbNv1PpIo9usG97N0A3cobwxpEKiuo7+M9rMof3bDQUwL8fVW68dT+web93L0uksqWLPY4IkIWAm3+ndA/vf9MpLsS3j1USHeTDylQbFvoeI+z7A6SvH7ZfykisSAnnUGmTfVkQoM51+np1bCdmixwra6arr59VaRpDVVIqLVbcYpu7zBsMgvSYIPs9OQArvwx9HerYLuDIuWZiQ3yZEaLRq2WleDt0t1xU/Xo0UiID6O4zU2NvKDd2kUrFPvicywTIxQ0dtHb1kZ3k4FP46TdVH6/IUcpRDCIy0JsAbw/7hKNWlnwB2ipd2sbgWLkDJRgGk/MeCA+bQp1WkiIC7DdyABZ9Hjy8XfY3BUr+cLy8hUWOenG6mlVTzlFqcg3FYW+gT5DKRDv970lbM0c3cgbR1dvPr7fkkz0zlPVzY4YZ0Ayv36tSND/zd/CyfTG4ek4M4QHevHbQwRb24amq4GD+h8qb4ACtnX3syKvnpoVxtmVVHfizOgdrv9POF+oAACAASURBVKPpOMtSwmlo77U/LAGql1dXs1Ndy3uLGjEIWGGLgTeY8gOqWNnSL2raLDPGzjRyKzPmKRf7geeU18SJSCnZX9zEclt1WcNxaqNqyDlKleOhOJRhBepmv/LL0FjosuJ3Rx31cAE0FauyCzaI1K1Yu5E7tIhnXgfB8Sob0kUcLWvBIBzUm0ipPF3Jq20S1FpJifCntMGObuRWAiJV6P3Eay5rhFvV2k1De4/jepy8DyylGWzzdIHSdYEDnhxQ97m+znFts+NMdCNnEC/uLaHO2MN3r599cWy5twNevVvdrO7aAKGJmvbt4+nBHdnxbDlbS0O7g2r+FY9CwnL44L/AWGP3bjafrqa338wti0auSjtAWzXs/rXqzxS/RNNxrAunXX2srCQsUTqPvb912hPF3sIG5ieEanchH35Rpc9r8FiAEh83tPc69v9/6WOqvsdp59avKKrvoKG9h0u0GnxWejuVqHbOLSOW4h+OVGutHK0tLwYz51YInOGyhfzouWaCfT1HbsxrC9YMlbm3a9rM7oJ3Vjy81P2iZJfL6k0dK2smc0awY3qlyqPQVKRaxGggOTKA9h4TDe0OGP3LHoaeVtVGxgVYmxQvdkTQD8oQC0vW5EX39/YkOsjHsWsoPlvJJPb9n9MfrsYD3cix0NTRy593FHHV7JgBsewAPe3w2udVr5M7XrBJ+T8cdy9LxGSWvHmkwrHJGjzglj+qvk7//pLd8fa3jlWSGhlgW22Lbc+AuU/109JIamQAkYHejulyQIUHu5pg97OO7Qf1/32srJnL0zWGqjqbVNrpgrtVGqoGrI0L8+3V5YDykkTPVeeg32T/foawv7gRwLaw5XCcfVul/o5SN2k4YoJ9CPL1tD/rDJRRteIRVUm46pj9+xmBfcWNLE8Jt73dyXCcelM1z9T4cJQapdLI7WqNYiX7AaWr2PdH+/cxAv0WvdISR0N5J19XWVVzbta0mTUcY3cGEahst/il8OnvXaJdOlDcSKCPp2OZea2VylBdcLfNoSoryZF2NuoczKpvgLEKTo1vFW1noBs5Fn6zNZ+OXhP/dW3mhR8Ya2DD9eoCu+WPmv8IB5MWHcSy5DBeP1Ruv3vVSlQGXP9zNa9dv9C8eXF9OwdLmrhjScLYGRHlh9RTziVfU+EyjQghWJYczkF7M6ysxC2CBZ+F/X9yuAP19tw6zBKumjNMWHI0Dv5FtXFY9pDmY2ZZug+ftTedHtQN7orvqg7ETnzy3FfcSGyI74B7WzNHNihBZNIqTZsJIciMCSK3xsHMuWVfUqGyndr/FkajqqWLc42d9ht/oDwo9TmaPX+gvH/9Zml/LSFQnc6XPKDC282l9u9nGHJr2mjvMTkWyuvvU56uzOuUwF4DqRYjR3Pz28EIAau/oc6NVRzuRA6UNLE0Ocy27NWROPUGIJWRo5HkCH/7WjsMJu1KiJmvPOnjUHzTmbjUyBFCJAohtgshcoQQZ4QQj1veDxdCbBFCFFh+OqhYc4wzVa38Y/857luZNFDPBFDVbJ+7DBoK4XOvw6LPOXyszy6bSXFDBwcc9WqAKoa24LOw43/h7LuaNn39UDmeBsFdSxNGH9jXDe98VdWDWfOE3VNdlhxORXMXVS121PwYzJU/UJ6sD590aDdbc2qJCfbR1oiyt0PpkjKug+jZmo8ZFeRDXIivfb28BpN1o3ry3PG/0Ofg+UTpcQ4UN7IyNcK+FODas0qntORBzU+ZAFmxQeTWGB0z/H2DYeVXIG+TU8MyVg+XXcUirRx+UXkpNOhxrGQ6WnrAyqVfB4OnU7ygg/m0UJ0fu+pMWcn/ULUpsGMBTwzzx8/Lw76+cIPJvB4i0lWPQCcu4g3tPRTWtbMixYHrR0r1QJOwDCJmad48KSKAemMPHT0OeH6FgFWPQ0O+KoI6iXC1J8cEfEtKORtYCXxVCDEHeBLYJqVMB7ZZXk8IUkqefvcMof7ePHF1prqgyg7AK3fBq59RfYke+lg1dHMC18+PJcjXk9cPOVAzx4oQcNNv1cX/1qNQddymzXpNZjYeqeDK2dEj9+Sysv1H0JAHt/x+zOrGo2HV5TgcsgpJUCLkvM12l6zvMfWzK7+edVkx2kIQR/+uwmWrv2HXcUFVzD1V6aCRI4SqmdRWqUoZOEhujZGG9l77F/LDL6gMlYX2PQRkzgjG2G2iqtWBYpmgtCc+wbDzZ47tZxD7ihoJ9fdi9gw7Qw3dbSq9fd4dmgS1VpIjrM1dHTRygmOVN+f4K0715uwtaiA1KsD+jDxQpSFCEm0ucDcYg0GQERNIXq2DnkCDB6x9UtWEcaLezXq/W5HqgKD/3F6oz1UPEXYwUIrAUW/O3NuUJmjHTyeVN8elRo6UslpKedTyuxHIAeKBW4CXLcNeBm515TxGY8/Wd4kt28Rfso4RsuN78Iel8OI16sn0qqfhke0qq8VJ+Hl7cOuieDafqrav+/JQvHzh7ldUr6B/3AH1+WNu8v7JKho7erln+RjF/M6+o+LUS79oc3G3kZgdG0yInxd7HUmht3LJVyF6Dmz6ltLIaOTTwkY6evu5ek607Rv1dsCeZ1U4ZpRmnGOxICGUEktKskOkrFFdiHf/yq5zMJjteaplxtqMKO0bdzTCsVeUFifAPiNptsVbkedoyMovVHksct+HUue0ethX3MgKR/Q4J19Xaf9LtYc3QVWFTo10MCvPyupvgsELtv0/x/fF4DpTDnhx6nJVyH3pF8dsAzISDvWFG8zc22HGfNj+Y6cJbA8UN+Lv7eFYT69DL5yvk2UH6TFKMF/giO4NVEPZtd9TBS3PvuXYvsaRcdPkCCGSgcXAASBGSlkNyhACLlpthBCPCCEOCyEO19fXu2ROZrMkat//8DvvP7DkzI9Vs7/geKW9+eYZdVPwdLBM+TB8dnkiPSYzbx1zUIBsJSgG7ntb9cR5+SaoPTPiUCklz+0sJjMmiMtHW9RqTsNbX1Zeomt/6vAUPQyCVWkR7Cqod1yP5OGlKk131MOmJzTXC3r7eCWh/l6sTtOwqO//P2ivVen7DmC92Z1x1JsDSgTe3QZbn3JoNzty65kXH0y01qrPAIf+ohpBXvp1u4+fYTFycqqdsFBd+jUIToAPv+uwiLSovp2K5i7tdZSsmPvVdROXrSkjZigZM4LIc4aRExynsvNOv6l0dg5yvLyFzt5+VqU5EIo59Bfw8FF98Owkc4YTshZBFQdc90Pl6Tr68pjDbWFXQQPLksPxslePY6xV9YMW3Wtzgc2hpEQG4O1hIMfRhwhQIdfoubDtf8al55czGBcjRwgRCLwJfENKadOZllI+L6VcKqVcGhVlxxOmDRgMgqj7X6LsczvhW/nwZPn/Z++846Sq7v7/PtvYZSlL71WqiKCgInYRFTWgBp9oNHaNPiFGH1vaL8bneYz6pKCJicaOvfcQK2JDwAWkLp1tbC+zZXb6Pb8/zgwsy5Yp987cmT3v14sXO7N37pw5e+eez/lWuOo9VQ49BtdMV0wb3pejR/blFTMCkEMMnKDGLgQ8vaDDnezKHdXsqGzip6eN7zj+onqnsgpl94EfvWCa0Dt14iAqGz3sqopxRwEqCPn0X8HWt1VqZZg4PX4+3lrJedOHhd+E0lECX/5ZxcLEYMWBgyJnkxkiZ8g0OPE/Vf2Kom+jOkWd08u64npOnxSBVSuEp1m5GiadC4Mmd318B/TJzmREXo45u/HMHJh/r9ptfv9iTKf6rKASgDOnRDE3oCxKdXtVLEMM7Q4mD+lFSZ0rtpiKECf9AnoNUT3wYrz3fL27RpUpijYo2+VQ392jLg6rl1dHhAL6Tbl+Js5X2bOf/Y8SGDFQVOtkX42T0yfHsH6t/odqkhlFokOIzPQ0JgzuxXYzNhFp6WpzVb8Pvn4o9vPFActFjhAiEyVwXpRSvhV8ulIIMSz4+2GANS2mw2DA2OmMnjRTWUPC6EFkFj86bhTbK5pYX2xiz53BU+G6T9RnWbYQVtynMhda8egXexjeN5sfzOigNk7RtyqbTBrwk7eh91DThndK0HL05U6TLHMn36bcRx/cFnY80sfbKnD5Alx0TJhtLOBgkPO590cxyEPpl5vFqP45bCo16e9++q9UPMP7v4gqCPmjrRUEDMm5R0Xxd17zKLTUwql3Rv7aNkwZ2jv6Jq5tOeqHKl374/8X00L1aUEVU4b2ZmS/KHbQUqpFoN+4sNsUdEQoGcKUzUGPXqoUQ+laWBdbld/PCio5dnQ/8nqGXxfpEFY/qsoOzPnPmMYRCs7ebobIEQLOX6pahcSY3LByh7rPnT45SpEcKn467aKoAo5bo4L7Tfp+TZgHRy2Gr/6kknJsjtXZVQJ4CiiQUrYO638PuCr481WA+Xl7NufCmSPI65nJY1/sMffEeaPg+k9VjMSX/wdPzjtg1VlfXM/afXVcd8r4w82nPpcKKHv2fGXFumZ5VBlEnTEiL4cjBuXyhVkiJy1dFWbsOUDVMWruWiu/vaGMEXk5zAo35XXjq2pHftpdYTUkDYeZo/qxvshhjhUvKxd+8JAKDv/o1xG/fPnmcsYM6Mm04REG1jZVwjd/VZlmI2dH/L5tOWpEX/ZUN5tjrRACFv5NXdPL74jqFI4WL+uK6jlraoQlBkJs/0B1jD/5tqhjTUKELBVby0wqq3/MFTDuNCUCoyzFUOZwsbWsMfr5cTmUyJlyQditUTpiYK8s+udmxVZ/6pATToBT74Ctb8GuT6I+zacFlYwbmMu4gZHV0zrAmsfB2wQnR5/VGmLq0D5UNnqoc5pUzO+cPyir6Qe32r5DudWmi5OAnwBnCiG+D/47D3gAmC+E2AXMDz7uVuT2yODquWP5ZFuleQo7RHZfuOgx+I/n1GL07PnIZ85jw1tLmZLj4NLZQSuGEVBdzb/4P/jbLJWSPO0iuHGl6v5tAWdMHsyavXU0RtsVty29BsOlLyqLwvMXq0DYDqhsdPPN7houPGZ4eIGkdXtVcPPoE5WZ3ySOH9uPikY3pfWxp38DKih87i0qVXlr+AGBdU4vq/bUcv70YZGnjn/y/9Ru9+z/jXCw7TNzVB6GJPbMsxCDJql6QgXvqXYTEfL5jioChmTe1Ch24QEffHIPDJyseiPFyKj+OfTrmcmmEpPmRghY9Ij6+b2fR7VIfbJNWcjmR1pnKsS3j6gqw6dF1iKmPYQQTB3Wmy1miUBQ3/eBk5WVOIrA/tB3a0E0FlJQG7ZVf1Ui0ITElyOHmyyUew+Bs+5VvbTyre/iHgtWZ1d9LaUUUsqjpZQzg/+WSylrpZTzpJQTg/+bUDQm+bh67lhys9J5dKXJ1pwQRy6CX3wP5/wBV00x1zke5kP5n+T+cSQ8OBb+ewA8drLKJhg4Ca56HxY/FXFBrkg47+hheAMGn26Lzd99CMNnKqFTuwueW9ThTen5b4swpOSSWWFUnXXVqzYeaelw8eMx78Zbc1wwnd6UWkkh5v1O1c557xaoDe96+nCLclWdN31YZO9V+LXKGpp7S9jNJrvi6JHqmttYYqL79sSfq/Yn7/9CZfFEwPsbyxnWN5sZ0TRVXPesalEw/16VkRIjQgiOHpnHRrNcnKCskmf/L+z7Iqp2GO9tLGPSkF5MGBxFq4uGUlj1iHIrxmjFCXHMqH5sr2gyxxIIKg7xokdVMdh3/jNiIRhyA0f83Qqx8gFliTzr99G9vg3Trfh+HXuV2mB9+Gso32jeeU1GVzxOIHk9s7hizhje31jGbjP87e2RmYPnuJs41/grP+31MIHz/qzqiRz1QxVLcdE/4bZtcOU7UberiIRjRuUxvG82/9pUbu6JJ8yDS19SxaqePf8wM7zbF+DFNUWcNXXIgVLwHRJq41G3T4knk9xUISYN7k3fnMzYenm1JT0TFj+tCr698ENo7tol+PLaYiYP6R2Zq8rTrERD39Fwyu0xDPhQBvTqwej+PfnezJtweoayZmb2hFcvD7vnWW2zhy93VrNwZpgWv9Y0VapNw5iTI+qm3RUzRuWxs9LERRxU3ZUpFyi31Z7Pw35ZcW0L64rqueiYLgqJtoeUsPxOQJq2gAPMGtuPgCHNXcRHzFJCcOe/VSmNCFi+uZyx0biBQcUXrnsWZl9jmkW9T3YmRwzK5XuzrIGgYlgv+qcKF3j9apXpaUO0yEkwN546ntysDP6wvMCy93hkxW6K611cseh80o+/XkXHn/9nOPM3MONS6BtBEG6MCCFYMH0YX+2qMc9lFWLCPLj8NVUk74kzoOCDA796c30p9S0+rjt5XOfnaCxTafjFq+Hif6quyCaTliY4YVx/vt5dY152HUC/MfDj19Tu86VLOr3pbC5tYPP+Bn58wujwXVVSqpT9ur1w4d+jTmntiGNG55FfVG/unPQZBv+xTKUFv3nDYYH47fHu92X4DcmFMyP8XkgJ79+iduAXLI0po6otM0f1xZDEXi27NUIot/bASWqRCtMC+M73+wHCa+zblq1vqUKeZ/7W1M3DsaP7IcTBZpimccJPYepC+PT3YQvBqkY3q/bUcl40buCAD95dorLNzvxt5OPthBmj8vi+xKRYwBC5A9Xmqr4I3rrR1H56ZqFFToIZ0KsHS86cwIrtVeYF5LZi1Z4aHvl8N4tnjeSUidak4kfKBUGX1XKzrTkA40+H61eoNhSvXg6vX4Onajd/X7GbGaPyOGFcB5VHpVTxLP88TVmDfvRCVL2GwuW0yYPY73DF1nOnPUYdB5c8o2Ktll0AzvaLL760tojszDQujCTL7JuHlZvqtF9aYvU7cfwAqps85s/JmLlw3h9h10eqMngn9XMMQ/LC6iKOHZ3H1EgbKq59XLUomHePigkykVmj+5MmYM2+jmPOoqJHb7jsZSV4XrxECeROMAzJW+tLmTO+P8PzciJ7r4ZSFeM2YlbMGVVt6ZuTyaTBvck3W+SE4pcGTYZXr1Dd0rvg9XWlBAzJ4llRWLpWPgCVm+H8v0COud2OZo7Ko6bZQ0mdSbGAIcacCAseVBavf91mu0BkLXJswNUnjWXsgJ78+q3Nplo3apo93PrK94wbmMt/L5pm2nljZeaoPCYN6cXLZrS2aI+BE1Sl6jN+A9v/ReY/juOXLX/kgWn7EZ42GRiN5fD9y/DkWWo323uoyk6bcp41YwsSKsQYSjM1lckL4NKXVb2jp885LB6lqsnNW+v3s2jGCPrmZIZ3zvxnVNHBaRebkjLeHqH+R6v2mLyQg6qoe9a9qhDe2zd1WNH269017K1xcuWJYyM7/94vVAHCyefDCTfFPt429O2ZyVEj+h7oFWUq/cfBZa+qYpfPXtBp2v0Xu6oprG3h0uMitMJ4W+C1K9VO/+InTI1xC3HsmH6sL67HMExeZLP7whVvqbYcLy7uNP7EHzB4eW0xJ44fwPhBEcYrbV+u0rKPuQKmXhDjoA8nVNTyy10W3HOOv0HdF9Y/p7I8bdT2QYscG9AjI52//GgmFY1u7nl3qynmRLcvwM9f2oDD5eORy46lZ1bsAZBmIYTgsuNHs7HEwWYzze+tSc+E0+6i9oZ8XuA85mVsZurKG+CBUfDnqfDIcfCnSfCXKfDOTSrQ+IKlcMPnpqfOt8fIfj2ZPKQ3H27pfOccNZPOVnFW7gblutv4yoEd1pNf7cMXMLjp9DBqbxgGrHxQpYpOmK/cGxbVkxrVP4cReTnmtP5oj5NvVTViNr8GL1ys/uZteHZVIQNys1gwPYKsmJK18MqPldvn4n9aNj8nHjGADSX1tHgtcAmMPgEuf0O5a5+aD1Xtu8+f/nofg3v3iCygNuCHN69XVpCL/xlzzZeOOG5sP5rcfnMq+7alzzBVVT6zJzxzvmpF0Q7Lt1RQWu/iqrljIzt/8Rp44xpVHfu8P8U+3nYYPzCXUf1zrNlYgdpUnnCzCmR/5+awXMPxQIscm3Ds6H7ccuZE3t6wn8e+2BvTudy+ADc8l8/qfbU8cPH0A+mDduKHs0bSu0eG+XWC2vC7FTX8r+8Kym7YpIobnvFbOOJMJWQmnq0CC29cCUvy1W7fhGyYcLnwmBHkF9VTFGvjvI4YPQd++hUMm6ncNC9cTP2+DTz/bRGLZo7oun5HfZESAyv/oLrdX/qSJW1OQgghOGPKIL7YWW1ugG1rTr1DBUsWr4Z/nnpIe4MNxfWs2F7F1XPH0iMjTEvDzo9U6YJeQ9T1ZWGl9JMnDMQXkHxrhaULlNvhqvdVaYAn5x8S0wYq3uWrXTVcc9K48KuF+1zw2k9Ud/gF/wdTzrdg4IqTJypLxefbLaotO+AIuPYj1ST4+YthzT8Pcc1IKfnH57uZMLgXZ0eSWr9/vWoG3WcEXP66qj9jAUIITps0iFV7avD6LbC0CKEKpp7xG9j0inJ/ei26t0WAFjk24udnTmDhjOE8+OF2lq0qjOoc5Q0uLn9yDV/vruGPi2dw8bFR+IXjQJ/sTH5y4hiWbyk3v05QkA+3VPCvTeXcMm8CE4cPUOLmtDtV0Ox/PKd87XN/DsOPiWu16xAXHjMcIeDN9fute5M+w+DqD9QCU5pPv2Wn83fxAHeP2gptXXegLDf716n6II/MVo1qL3hIWXAyoqxsGwELZ4zA7TP4tMDEEgNtmXGpKnYpUc14l98Frnr+/PFO+udmcU1Xwemg3F0rH1BlBvqPU+KgT5TpwmFywrgB9O6RwUdbLbL+AYycBTesUAv6q5fDuz87UHvqL5/sYGCvLK6aOya8czXsh+cuhB3/VtaJE260btzA4N7ZzBjZl8+sEjmgkjSu/bdKnf73XWohdxQDBGueNXHTaUeEn5W35U145jzo0Qd+8lZM7S3C4bRJg2nxBsgvsqhqixCqcOrCRyB3EGRYI9giGpKpkdYWMXv2bJmfn5/oYcQFjz/Akpc28Mm2Sq6eO5ZfLphCdmbXu0opJf/eUsFv39mCxxfg/xbP4Pyjrb3pxkq908vpf1rJ9BF9ef664yPPROiEvdXN/PDRVQzrm8O7S06KvkGexfzkqTXsq3Hy5Z1nRN/pOky+27aHVS/9L9fmfEVvXzUgVEBl3mhIz1JByjU7lBsnvQfM+JFqG9EniiyaKDEMyUkPruDIYX146urjrH0zd4PqUfTdk/gzc3nCdQYDT76WS849s+PX+L0qQP3LP6q6TNP/A37wsOmZZh3xi1c28OXOar77zVlkWHlN+73KgvfNX6FHb/ZOuo5Fa6dy2wWzubYrEej3qBToFfeB4VMNj4+KroN2pDz86S4e+mwnq381jyHRNJwNF8NQgebBju7+427gkg0zaMjoz0e3ntr1/aa+ED69V2WbjTxOWUl7Rdn+IQKaPX6O/e9PuHzOaO75gcVxmlKammHYFiHEOilll+XWtcixIQFDct+/Cnj6m32MHdCTX5w1kfOnD2/XROzxB/h8ezVPfrWX/KJ6pgztzSM/Pja6Il0JYNmqQu55byv3Xzydy443J6W0stHNJY99S7PHz1s3z+26Lk4C+WBTGUte2sCjlx/LgmgLh4WBo8XLuQ99Rc+sdN7/2YnkVqyBolVQtgGaypX/vOcA6DdWZSNNPg9yoiiEZwJ/WF7AM9/sY+2vz6JfrvXWo6bijXz37N2cZqwhHQMGTVWumwET1ZzIgMo6qtgEe1YocTRwsirFMOkcy8fXmg+3VHDTC+t48srZnBVtteFIqCrA/+Fvydj7KW6yyDzyfNKnXgCjjlfd3kMWUK9TBeTu+lgF8jdXwNhTlAC0KAanPfZWN3Pmn7/gznMm87MzzClU2SmOYvjkd8it7+CVGTjGLWDI8ZfAuFMOz47yuVUsz5Y3YcsbINJVralT/kvFEMaJm19Yx5p9daz+1bzw3Y42RIucFGDV7hp+//5WdlY20zMrnePH9WfCoF70zEqn0e2nqNbJuqJ6Gt1+hvTpwW1nTWLxrJHW7vBMxjAkVz69lvyiOt792ckHmu1FS2GNkyueWkOd08vz153ArDHmpmGaTcCQzP/LF2RlpPGvW04h3QJrji9gcN2yfL7dU8NbN590oPqpXdlZ2cTZS7/kv+ZP4pZ51rQXCSGl5Mbn1/H59irevvIIptd9rOqhlKxVfYNa02ekKlFw1EUw/syEuDh9AYOTH1zB5KF9eO7a4y1/Pyklt776Pfs2fc0T07czpHg5uIKujvQeKn5EStWiAdTCPfFs5Zoaf4alO/mOuOzx1ZQ6Wlh5xxmWfJ/a8l1hHXc//hb3Df2SE11fHgxo7zNCxWpJAzyNKsZNBiCrN8y8TPU1i6OVNMSK7ZVc+2y+5Rsrq9EiJ0UwDMmXu6r5rKCK1XtrKalvwe0z6N0jg2F5quz8eUcP45QJA5NK3LSmqsnNeQ9/TUaa4OUb50Td0O6TbZX88s1NSOCZq49jxqjEWCIi5f2NZfz85Q3cu3Ba5FkZXeAPGNz1xibe2rCfBy6ezqUmWcus5rpnv2N9cT1f3nUGvbOt2+Uu/WQnD3+2i99dcOShbhjDUAt3Sx2INGXRybZHAP/Dn+5i6ac7+eDnJ3PUCGsF61Nf7+N/PtjGHWdPYsmZE1WmVOVmFSxbX6iClBGql9GgKarPW88OalHFiQ+3lHPTC+tZ+qMZ0VVljoCSuhYufnQVOZnpLP/FKfTKAEpWK5Fcs1P1oEpLV410+x+hkgHGnWppAH9X+AMGZ/x5JX1zMnl/ycmmhgnEEy1yUhQpJVJiefxGvCkob+SyJ1YTMCT3Xzw9oqaRu6uaWPrpLv61qTzp3HWg/qZXPr2W/MJ63v7Z3ANdp2Ol2ePn5y+t5/Md1dw+fxI/t9gqYiabSh0s+vs3/GTOGP57UewNCtsipeQfK/fwx492sHjWSP64+Oikudk3uHyc8aeVTBzci1dunGPZuF/9rpi739zM2UcO4bErZiXNPccwJBf87WuaPD4+vvU0crLMr8kDyi3+4ydWU93k4Y2b5zJpiHWZdWbzxrpS7nh9Iw9fOpNFkVb2tgnhipzk7mjDdQAAIABJREFU3Pp3Y4QQSXOziYSpw/rw/pKTGTcwlyUvbeCSx77l/Y1lNLS0X2uhusnDG+tKueaZtcxf+iWfFVRy21mTeG/JyUklcED9Tf90yQx6Z2dw7TPfsa8m9rTL/MI6Fj3yNV/uquEPF01PKoEDcPTIPK46cSzPfVvEvzebWxm7xevnjtc38cePdqhsxh8mj8ABVd33jrMns2ZfHU99vc/08wcMyR8/2s7db27mtEmD+NuPj0mqe05amuC3F0ylpM7F/f+2pl3Olv0NXPT3b6hocPPElbOTSuAAXDhzODNG9uX3722lstFt+vmllJacNxq0JUdjK3wBg9fyS/j7it2UNbgRAkb2y2FYnxyyMtJocPmoaHRT3eQBYHjfbH44ayRXzx3LgF6JMwGbwdayBn7y1FoMKbl34TR+cHRkDSKllKwvdvDYF3v4ZFslI/Jy+OPio5k7wdq0VKtw+wJc9sRqtpU18tfLjuGcaREU6GsHw5B8vK2C//mggP0OF7eeNZFbzpyYVAt4CCklP31+HZ9tr2Lpj2aycIY5sR1b9jfwm3e2sLHEwaXHjeLeRdPCrxlkM/7ng2089fU+fnv+VK47eZwpQrbF6+eJL/fxyOe76J+bxdNXH8e04faOceuI3VVNLHzkG8YMyOWF64437f65scTBfcsLqGhw8/Ftp4aVHRwN2l2lSWoChmRdUT2r99ayu6qZykY3voBBn5xMBvXqweShvTl+XH+mj+ibVLvwriiscXLLKxvYVNrAlKG9ufCYEZw+eRDjB/Y6LBNC7ZY87KhsYuWOKj7ZVklpvYu+OZlcPXesav7awz6VrqOhzunlmme/Y2OJgx/NHsWSMycwqn9k6drlDS4+3FLBi2uK2V3VzITBvfjDRdM5vqM+ZkmC0+Pnmme+Y21hHVfMGc3t8ydHlY3m9Rt8s7uGZd8WsnJHNQNys/jdD45MWjdGCH/AYMlLG/hwawWLZg7nN+dPZXDv6NLKyxwuXssv4cU1xVQ3ebjg6GH8z6Kj4pL9ZyVf7Kzmhufy6d8ziwd+OJ3TJg2K6n4aMCRf767hpTVFfLS1kv65Wdx5zmR+NHuUZZsILXI0miQlYEje/X4/T3+zjy37VaHEjDTBkD7ZZGemkZmeRos3QG2zB6dXNZvMykjjlAkDmX/kEC6YMZxeSS5uWuP2Bfjzxzt4dlUhAUMya0w/5h4xkClDezOodw/65WaRkSYwJDS6fJQ3uChzuNlW3siG4nr2VCv337Thfbjx1PGcP31Y0gbptyU0N09+vY8eGWmcO20oJ08cxFEj+jA8L4c+rYK2pZR4/AblDW6Kap3sqGhiXVE93+6ppcnjZ0BuFtecNJafnDg2/J5mNidgqCrED322i/Q0wXlHDeWMKYOZNrwvYwf0bPc6aPb4qWhwsbOymfVF9Xyzp5aCcvU9PGXiQH4xbyKzxya3QG7Nlv0NLHlpPYW1LUwf0ZcF04cy94iBjBuY2+51IKWkptnLnupmdlU2sXpfHav31FLr9JLXM5MrTxzLDaeMszRhAJJA5AghzgUeBtKBJ6WUD3R0rBY5mu5KmcPFmn217KlyUtbgwuMz8AYMevXIoG9OJuMH5TJhUC9mjs6zVX8yK6hocPPS2mI+3VZJQUVjl82OB+RmMXNUHrPG9uPsI4cmXaxWJOysbOLpr/fxybZKap0Hm49mZ6aRE3QXNHv8+AKHTtqYAT05YVx/zj1qKCdNGJi0rqmuKKxx8vhXe/n35nLqg3F+Qqj4pj7ZmQQMiTdg4PIGaG7VUiQrPY1ZY/px8sSBLJwxPGIrYrLg8Qd4Pb+Ul9cWs7XsYAX6vjmZ5Galk5mRRpoQOD1+mtx+XL7AgWOG9slm7hEDOHPqYOYfOSRu15CtRY4QIh3YCcwHSoHvgMuklNvaO16LHI1G05oWr5+91U5qnV7qnV4MKUkTgtweGQzrm83wvBz69cxMKVdmOBiGZGdVE7urmilzuKhu8uDxG0gJvbMzyO2RweDePRg3MJdxA3OTPo4tUvwBg+0VTWyvaKK41onD5aPR5SMtTdAjI43szHSG9MlmaJ9sjhjUi4lDelkWU2JXKhvdbCiup6i2hdJ6F25fAF/AICChV490crMyGNEvh/GDenHEoFxG5OUk5Htmd5FzIvB7KeU5wce/ApBS3t/e8VrkaDQajUajCWH3FPIRQEmrx6XB5w4ghLhRCJEvhMivrraoNbxGo9FoNJqUJVEipz3b1iEmJSnl41LK2VLK2YMGDYrTsDQajUaj0aQKiRI5pcCoVo9HAmUJGotGo9FoNJoUJFExORmowON5wH5U4PGPpZRbOzi+GiiycEgDgRoLz59M6Lk4iJ6Lg+i5OBQ9HwfRc3EQPRcHsXouxkgpu3TzJCTnVErpF0IsAT5CpZA/3ZHACR5vqb9KCJEfTgBTd0DPxUH0XBxEz8Wh6Pk4iJ6Lg+i5OIhd5iJhhTWklMuB5Yl6f41Go9FoNKlNapT91Gg0Go1Go2mDFjmKxxM9ABuh5+Igei4OoufiUPR8HETPxUH0XBzEFnORFL2rNBqNRqPRaCJFW3I0Go1Go9GkJFrkaDQajUajSUm6tcgRQpwrhNghhNgthPhloscTb4QQTwshqoQQW1o9118I8YkQYlfw/36JHGO8EEKMEkJ8LoQoEEJsFUL8Ivh8t5sPIUS2EGKtEGJjcC7uDT4/TgixJjgXrwohshI91nghhEgXQmwQQnwQfNwt50IIUSiE2CyE+F4IkR98rtt9RwCEEHlCiDeEENuD940Tu/FcTA5eE6F/jUKIW+0wH91W5AQ7of8dWAAcCVwmhDgysaOKO88C57Z57pfAZ1LKicBnwcfdAT9wu5RyKjAH+FnweuiO8+EBzpRSzgBmAucKIeYADwJLg3NRD1yXwDHGm18ABa0ed+e5OENKObNVDZTu+B0BeBj4UEo5BZiBuj665VxIKXcEr4mZwCygBXgbG8xHtxU5wPHAbinlXimlF3gFWJTgMcUVKeWXQF2bpxcBy4I/LwMujOugEoSUslxKuT74cxPqhjWCbjgfUtEcfJgZ/CeBM4E3gs93i7kAEEKMBM4Hngw+FnTTueiAbvcdEUL0AU4FngKQUnqllA664Vy0wzxgj5SyCBvMR3cWOV12Qu+mDJFSloNa+IHBCR5P3BFCjAWOAdbQTecj6J75HqgCPgH2AA4ppT94SHf6vjwE3AUYwccD6L5zIYGPhRDrhBA3Bp/rjt+R8UA18EzQjfmkECKX7jkXbbkUeDn4c8LnozuLnC47oWu6H0KIXsCbwK1SysZEjydRSCkDQdPzSJTVc2p7h8V3VPFHCHEBUCWlXNf66XYOTfm5CHKSlPJYlJv/Z0KIUxM9oASRARwLPCqlPAZw0k1cU50RjE1bCLye6LGE6M4iR3dCb59KIcQwgOD/VQkeT9wQQmSiBM6LUsq3gk932/kACJrgV6LilPKCzXWh+3xfTgIWCiEKUS7tM1GWne44F0gpy4L/V6FiLo6ne35HSoFSKeWa4OM3UKKnO85FaxYA66WUlcHHCZ+P7ixyvgMmBrMkslAmtvcSPCY78B5wVfDnq4B3EziWuBGMs3gKKJBS/qXVr7rdfAghBgkh8oI/5wBnoWKUPgcWBw/rFnMhpfyVlHKklHIs6h6xQkp5Od1wLoQQuUKI3qGfgbOBLXTD74iUsgIoEUJMDj41D9hGN5yLNlzGQVcV2GA+unXFYyHEeahdWagT+n0JHlJcEUK8DJwODAQqgXuAd4DXgNFAMXCJlLJtcHLKIYQ4GfgK2MzB2Itfo+JyutV8CCGORgUJpqM2Qq9JKf9bCDEeZc3oD2wArpBSehI30vgihDgduENKeUF3nIvgZ347+DADeElKeZ8QYgDd7DsCIISYiQpGzwL2AtcQ/L7QzeYCQAjRExXnOl5K2RB8LuHXRrcWORqNRqPRaFKX7uyu0mg0FiKEaA7u/q1+nxwhxPtCiAYhhG0CHjUaTeLRIkejSRGEEFcHq9G2CCEqhBD/EEL0jdN7rxRCXN/6OSllLynl3uDvnxVC/K9Fb78YGAIMkFJe0s7Yfi+EeCGcEwXn8GuzBxjme4c9To1GEx5a5Gg0KYAQ4nZUFd47gb6obKixqJommQkcWjwYA+xsVbcmYbTKuNJoNDZAixyNJskJVl+9F/i5lPJDKaVPSlkI/AcwDvhx8LhDrClCiNOFEKWtHv9SCLFHCNEkhNgmhLio1e+uFkJ8LYT4kxCiXgixTwixIPi7+4BTgEeCLqpHgs9LIcSEYNG4y4G7gr9/XwhxpxDizTaf429CiIc6+IxTg9Yih1D9tBYGn78X+B3wo+C5u2yvEBzXTcF+OvVCiL8LxVTgMeDE4LkcweN7BD93sRCiUgjxWDDr7MAcCiHuFkJUAM8En79AqB4+DiHEqmAwd+j97xZC7A/O8w4hxDwhxLmoQPfQ59jY1efQaDRdo3cdGk3yMxfIBt5q/aSUslkI8W9Uqu+y9l7Yhj0osVIBXAK8IISYEKpYCpwQPM9A4EbgKSHECCnlb4QQJwEvSCmfbHtSKeXjQoi5qLoiv4UDNTN+L4TIk1I6ghaQH6HqbBxC0BL1PvB08LOcDLwrhJgtpbxHCCGBCVLKK8L4jCEuAI4D+gDrgPellB8KIW4CrpdSntzq2AdRFW5nAj7gJZSw+lXw90NRWVZjgDQhxLHBsf4AyAeuAN4LphuPBZYAx0kpy4Sqrp0updwjhPhDFJ9Do9F0grbkaDTJz0CgpgN3TTkwKJyTSClfl1KWSSkNKeWrwC5UsbcQRVLKJ6SUAZTYGYaKhYmYoHD6EiWmQDWKrWlTWTjEHKAX8ECwR9AK4ANUTY5oeUBK6ZBSFqNq3sxs7yAhhABuAG6TUtYF+5r9AVUzJ4QB3COl9EgpXcHj/ymlXBOsHL0M1fR0DhAAegBHCiEypZSFUso9MXwOjUbTCVrkaDTJTw0wsIN4kGGoHjtdIoS4spWLxQEchRJQISpCP0gpW4I/9opyzKCEUshqcQXwfAfHDQdKpJRGq+eKiK1fVEWrn1vo+HMMAnoC61rNy4ccKhyrpZTuVo/HALeHjg++ZhQwXEq5G7gV+D1QJYR4RQgxPIbPodFoOkGLHI0m+fkWZSm4uPWTQlWlXQB8EXzKiVqwQwxtdewY4AmUK2WAlDIPVc22vT5N7dFVwa32fv8OcLQQ4iiU++jFDl5bBowSQrS+X40G9oc5tkhoO84awAVMk1LmBf/1lVL26uQ1JcB9rY7Pk1L2lFK+DCClfCnoDhsTfO2DHZxHo9HEiBY5Gk2SE6wuei/wNyHEuUKIzGCsx+uoRTokHr4HzhNC9BdCDEVZFELkohbZagAhxDUoS064VKLiVsL+fdD68QYqxmVt0HXUHmtQAu2u4Gc7HRXv8koE4wuXSmCkUK1eCFqPngCWCiEGAwghRgghzunkHE8ANwkhTggGNOcKIc4XQvQWQkwWQpwphOgBuFECKtDqvce2EXMajSYG9JdJo0kBpJT/h8rO+RPQBOxDWW3OklI6g4c9D2wECoGPgVdbvX4b8GeUVagSmA58E8EQHgYWB7OV/trO759CxaE4hBDvtHp+WfC9OnJVIaX0ojobL0CJtn8AV0opt0cwvnBZAWwFKoQQNcHn7gZ2A6uFEI3Ap8DkDl6PlDIfFZfzCFAffO3VwV/3AB5AfY4KYDDq7wYHOzfXCiHWm/R5NJpujW7roNGkIEKIa1HWnZM6sZAkHCHEaGA7MFRK2Zjo8Wg0mtRCp5BrNCmIlPJpIYQPlV5uS5ETdMv8F/CKFjgajcYKtCVHo9HEnWBQdCUqS+pcKWVJgoek0WhSEC1yNBqNRqPRpCQ68Fij0Wg0Gk1KkhQxOQMHDpRjx45N9DA0Go1Go9HYgHXr1tVIKbus5p4UImfs2LHk5+cnehgajUaj0WhsgBCiKJzjtLtKo9FoNBpNSqJFjkaj0Wg0mpREixyNRqPRaGxMZaObeqc30cNISiyPyRFC3AZcj+qLsxm4BtUZ+RWgP7Ae+EmwdLtGo9FouhG7q5rYW+1k/KBcJgzubcl7+Hw+SktLcbvdXR9sM7x+A1/AACArI43M9O5lm8jOzmbkyJFkZmZG9XpLRY4QYgRwC3CklNIlhHgNuBQ4D1gqpXxFCPEYcB3wqJVj0Wg0Go29KKp1snZfPQA1zV7ShGD8oF5dvCpySktL6d27N2PHjkUIYfr5rcLrD9Dk9h94LAT0yckkI617CB0pJbW1tZSWljJu3LiozhGPmcoAcoQQGaiGgeXAmajuw6Aa9F0Yh3FoNBpN3Nmyv4FXvyvmu8I6dPHVg3j9Bmv31R3y3IZixwGrhZm43W4GDBiQVAJHSonLG2jzHIc9l8oIIRgwYEBMFjhLRY6Ucj+qK3IxStw0AOsAh5QyJE9LgRFWjkOj0WgSwaZSB5tKGwgYsKuyme0VTYkekm3YU92ML3Co6PP4DXZWWjNHySRwAHwBid84XBR7/QYBw3whaFdi/btZKnKEEP2ARcA4YDiQCyxo59DD/pJCiBuFEPlCiPzq6morh6nRaDSm0+L1s63s0L6jG0sctHj9Hbyi+yCl7FDM7KhowmhncU92SktLWbRoERMnTmT8+PEsWbIEj8fT4fEef8cWG4//oMh5/fXXmTZtGmlpaYfUk/N6vVxzzTVMnz6dGTNmsHLlygO/W7duHdOnT2fChAnccsstByyM33//PXPmzGHmzJnMnj2btWvXHvbeRUVFzJo1i5kzZzJt2jQee+yxA78799xzmTFjBtOmTeOmm24iEFCf4c4772TKlCkcffTRXHTRRTgcjkPOWVxcTK9evfjTn/7U4WeOFqsDj88C9kkpqwGEEG+huiLnCSEygtackUBZ2xdKKR8HHgeYPXt26l3xGo0mpSkob6TtWm1I2FnZzMxReYkZlE2oaHTj9LS/iLt9BhWNbobn5Vj2/i+tKTb1fD8+YXSnv5dScvHFF3PzzTfz7rvvEggEuPHGG7nrrrt4+OGHDzvekLJTt53Xb9AzS/181FFH8dZbb/HTn/70kGOeeOIJADZv3kxVVRULFizgu+++Iy0tjZtvvpnHH3+cOXPmcN555/Hhhx+yYMEC7rrrLu655x4WLFjA8uXLueuuuw4RRwDDhg1j1apV9OjRg+bmZo466igWLlzI8OHDee211+jTpw9SShYvXszrr7/OpZdeyvz587n//vvJyMjg7rvv5v777+fBBx88cM7bbruNBQvas3/EjtUxOcXAHCFET6FsTvOAbcDnwOLgMVcB71o8Do1Go4kb/oDBnmpnu7/bU9VMIAUtFZFQUufq9PdFtS1xGkl8WLFiBdnZ2VxzzTUApKens3TpUp577jmam5sPO97nN+gsfCtgSPxBETR16lQmT5582DHbtm1j3rx5AAwePJi8vDzy8/MpLy+nsbGRE088ESEEV155Je+88w6gXEONjcr62NDQwPDhww87b1ZWFj169ADA4/FgtHKd9enTBwC/34/X6z3gajr77LPJyFA2lTlz5lBaWnrgNe+88w7jx49n2rRpHX/gGLA6JmcNKsB4PSp9PA1lnbkb+C8hxG5gAPCUlePQaDTWUu/08u2eWgpr2l/YuxtlDjf+QPurlMdvUFqfWot4JEgp2e/o/POX1reklMtq69atzJo165Dn+vTpw9ixY9m9e/chzzc1NXHc7GM5fe7xh/3bsb3gwHFef+dxOTNmzODdd9/F7/ezb98+1q1bR0lJCfv372fkyJEHjhs5ciT79+8H4KGHHuLOO+9k1KhR3HHHHdx///3tnrukpISjjz6aUaNGcffddx8ihs455xwGDx5M7969Wbx48WGvffrppw9YbZxOJw8++CD33HNPp58lFiyvkyOlvAdo+wn2Asdb/d4ajcZ66p1ePi2oxBeQ7AuKnLEDcxM8qsRSVNe52CupczFmQPeco1qnF5e38wXaF5BUNXkY2jc7TqOyFilluwG07WXb9erVi5WrvusyE6+rLLRrr72WgoICZs+ezZgxY5g7dy4ZGRntnjc0tkcffZSlS5fywx/+kNdee43rrruOTz/99LDjR40axaZNmygrK+PCCy9k8eLFDBkyBICPPvoIt9vN5ZdfzooVK5g/f/6B1913331kZGRw+eWXA3DPPfdw22230auX+WUDQiRFg06NRmNfviusOyRLZu2+Oob2zSY7Mz2Bo0ocvoBBmaNzd0xZg4uAIUlPS66MHzOoaAgvHbii0Z0yImfatGm8+eabhzzX2NhIZWXlYa6m+oZGTjv11HbP88+nlzF5ylQA/IbEMCRpHVxDGRkZLF269MDjuXPnMnHiRPr163eIu6i0tPSAJWbZsmUHYoQuueQSrr/++k4/1/Dhw5k2bRpfffXVIVab7OxsFi5cyLvvvntA5CxbtowPPviAzz777ICoWrNmDW+88QZ33XUXDoeDtLQ0srOzWbJkSafvGwndo6KQRqOxhDKHi5rmQ4uV+42OM2e6A1VNHroq9eIPSKqakq/6rhmELXLCPC4ZmDdvHi0tLTz33HMABAIBbr/9dpYsWUJOzqEB1jk9c1m5am27/0ICJ4Svk1TylpYWnE5lUfzkk0/IyMjgyCOPZNiwYfTu3ZvVq1cjpeS5555j0aJFgBItX3zxBaDiiCZOnHjYeUtLS3G5lIivr6/nm2++YfLkyTQ3N1NeXg6omJzly5czZcoUAD788EMefPBB3nvvPXr27HngXF999RWFhYUUFhZy66238utf/9pUgQNa5Gg0mhgoKG9s9/ldld03uDbcxbnMkTqLeLgEDEmts+O06dbUt3i7jDtJFoQQvP3227zxxhtMnDiRAQMGkJaWxm9+85vDjm1bO6gz/AHJ22+/zciRI/n22285//zzOeeccwCoqqri2GOPZerUqTz44IM8//zzB1736KOPcv311zNhwgSOOOKIAzEyTzzxBLfffjszZszg17/+NY8//jgA+fn5B6w6BQUFnHDCCcyYMYPTTjuNO+64g+nTp+N0Olm4cCFHH300M2bMYPDgwdx0000ALFmyhKamJubPn8/MmTMPPB8PRDJU4Jw9e7Zsnf+v0WgSj9Pj593vD6v+cIC5RwzolrE5/95cTn2Lr8vj+uZkcv7Rw+IwIvtQ1ejm04KqsI8/bfIgRpiQSl5QUMDUqVO7PjBOrFq1issuu4y33nrrkIBkKSX1Lb6wK2OnpwnyQrnkKUx7fz8hxDop5eyuXqtjcjQaTVQU13WeIVNc19LtRI7bFwhL4AA0uHx4/AF6ZHSf2KWqpvCsOCGqmzymiBy7MXfuXIqKig57PmDIiFp/BLqIy9Fod5VGo4mSrkRORYP7QC2P7kJ1FIt4d6K6ObLPW9PN5qe9Ng5WvKY7oUWORqOJGJc3QG2bgOO2+A1JRWP3ijuJxlLRnajr4po57Hint1s1Ne2otlJndKc+VtGgRY5Go4mY8obOU6QPHte9RE5tpJaKCBf9ZKbJ7Tuk51I4+A1Jgys8919XJINY8kchWFLdkhPr302LHI1GEzHdMQ24KwxDUt8SmWipd3pTqrJvZ9Q5oxN0ZgjB7OxsamtrbS10DCmjykhMZZEjpaS2tpbs7OjrJenAY41GExFShu+GanL7cXkD5GSlfnBtXYu3y/o4bfEbEofLR//c1M+QqY1S5EQrjlozcuRISktLqa6ujvlcVhEwJG5fx53HOyMnK520dioqpwLZ2dmHtKGIFC1yNJooKChvpN7pZeKQ3gzq3SPRw4krjS4/bl/4q3lVk7tbtDDoKkapI+qc3m4hciKNxwkRqXWsPTIzMxk3blzM57GSgvJGdhY7onrtaWPNSbVPRbS7SqOJkI0lDjYUOyisbeHz7VURx2EkO5FW6o00GDdZCbfIXVvMWMTtjpSSuig/Z0MEdWOSmfoYLFaxvDbV0SJHo4mA6iYPW8sOVvn1G5LvCusTOKL4o9Ok26feGV2ArBnuGLvT7PFHlTkE6jvW6PabPCL7EW59pfZwxPDaVEeLHI0mArbsbzjsuTqnl5IuasakEpHWOmlw+VK+Xo4/YNDojm6hcbSkfvBxtAIwREOKL+IBQ0Z9/QA4XKkvlKNFixyNJkxqmj0dpkRv66CHU6rh8gZweiILjpSSqF0VyYLD5SNaj0rAIKYFLhmI1SWX6i49R4s36usHVIB/qm8kosVykSOEyBNCvCGE2C6EKBBCnCiE6C+E+EQIsSv4fz+rx6HRxMruquYOf1fb7KUpxRcqUEIvGlLdJRNrTIRZtWDsSqwixZHy8xPb55OSbuHSi4Z4WHIeBj6UUk4BZgAFwC+Bz6SUE4HPgo81GtsSMGSXLqmi2tR3WUUtclK86F2sIi7VYypi/XyObmDJscM5UhFLRY4Qog9wKvAUgJTSK6V0AIuAZcHDlgEXWjkOjSZWyhwufF0ETnbVyykViHYxT3V3Vaw78VS25Hj8AVq80dV/CeH0BPClsDvGjL9/Kl9DsWC1JWc8UA08I4TYIIR4UgiRCwyRUpYDBP8fbPE4NJqYCMdK42jxpXRshZQy6oJujS5/yi5ShiFpiDHwM5XdMWYFDTem8ByZYcnTIqd9rBY5GcCxwKNSymMAJ2G6poQQNwoh8oUQ+XauUqlJfQxDUhZmr6bKFG5j0OiOPg0YUtcl0+TxR1zpuC3NKRw4apaAS9WYE5c3EHFPr/bQIqd9rBY5pUCplHJN8PEbKNFTKYQYBhD8v6rtC6WUj0spZ0spZw8aNMjiYWo0HVPV5Al7cU/lhpSxxp3Eau2wK6ZZKlJ0ETdL3KbqIm5W+rfTE0hZoRwLloocKWUFUCKEmBx8ah6wDXgPuCr43FXAu1aOQ6OJhXCtOACVje6Urc6qg2vbx6xFKlUXcbM+V6q6q8z8uzd7UlMox0I8elf9HHhRCJEF7AWuQYmr14QQ1wHFwCVxGIdGExXljvCtM76OJ/x0AAAgAElEQVSApL4lNRsuxpomnaoiJ9ag4xCpKnLMyvpJ1Xg3M78XDS4feT1T794TC5aLHCnl98Dsdn41z+r31mhixeUNRLz4VDa6U07kSCl1QbcOMG0RT0GR4/T4u8xKDJcmtx/DkKSlpVa3bTPFbVOKujxjQVc81mg6oaIx8hibVOzV1GzCYuULSFq8qXUT9gWMiCtAd0QqWirMXMClVEHeqYaZc5SKQjlWtMjRaDqhMgqRE203ajsTa++hEKnmkjHT1dActFSkEma7KFOtqrgzhsal7ZGKQjlWtMjRaDohGpHj8ho4U2zHaZarKdVEjpmfx5DQnGKWLrP/3o2u1Jofs+sjpWqGXixokaOJmAaXj/XF9eytbk7ZTCJQu6xoXRG1KdbGwKyKxanWTdrstPhUczeYLXJSzZJj9vfBH5C4YqwunWrEI7tKk0Lsd7j4cmf1gY65FQ1uTjxiAEKkVjAgxBZbU+P0MHpATxNHk1jMy5BJrZ2m2e6YRpcfUqRdsZTSdNGWaoG1Vlg2m9w+crLSTT9vsqItOZqwaXD5+GZ3Da2NN4W1LezqpDt3MlMdZTNKSC1LjtsXwOU1p8hYqrmrdMxJxzi9Afwmxxg1eVJnfsCa70OqbSRiRYscTdisL6pvN0huY4kjJU2ksVhy6p3elHHlmZn67fUbuH2pca24feaU429NKlkqrFjAXV4jZXqgWWHpgtQSymagRY4mLKoa3R22LPAFJNsrGuM8Imvx+AMx7dL9hkyZHZVZmVUhUiXuxIrihqlkqTDLxdmW5hT5Xllh6QJd9bgtWuRowmJjaUOnv99T7Uypvik1JribrLrJxxuzP0equKy0paJzrPo7p4q1S89PfNAiR9MllY3uLl03Xr9BUV1LnEZkPTUmFPSLtdeTXTCrbUGIVLFwaUtF51hlsUuVWjBWZRqmyvVjFlrkaLpkV2V4gcV7q50WjyR+1MQQdBwiFXo1BQxp+qKSKouU2TVOQqTCTlxKaZmlIlXcMVbNj9/QaeSt0SJH0yluX4DS+vAsNNVNnpQogmcY0pTsqFSw5DS4fJgdP50KizhYt0ilgghs8vixyuuWKpYKs2sstUYHHx9EixxNp+ytdhJJbFxJmILIzjhcPlMCAj1+I+l3VFY01XR6/ASSvH2B2eX4W5MKItDKoo+pEJytMqus+zunYo+vaNEiR9Mpe2siq4FTXJv8IscMV1WIZO+8bUXciZTJvxu3ylUFqeGOsTK43OU1kj7JodnjtySz6sD5k/z7ZSZa5Gg6pM7pjXi3UdPsTfo6KGYEHYdI9ricOpPTx0Mku0vGysy5VHA1WJ1Bl+xC0Or5SQVroFlYLnKEEOlCiA1CiA+Cj8cJIdYIIXYJIV4VQmRZPQZNdBTWRhdI3FE9nWQhlkrHbXFY6HePB1Yt5skvcqwbv9uX/GnkVov7ZF/ErZ6f5hRw6ZlFPCw5vwAKWj1+EFgqpZwI1APXxWEMmgiRUkbteip3uEweTfxweQNRN+Vsj2RuSNns8ePTcSftYvkilcTzYxjScmuUtuR0TrJ/v8zEUpEjhBgJnA88GXwsgDOBN4KHLAMutHIMmuiobvbQEmXQbHmDO2lbGpgZjwPqZmYkaZBtvYXZYcl8E7Yirb4tyTw/jW5fRMkK0ZDsIsdqkewLyKQPGzALqy05DwF3ASHb6wDAIaUMXaGlwIj2XiiEuFEIkS+EyK+urrZ4mNHj9Rs0uX1Ju6h3REkMhf08fsP0AnLxwkxXFYAhkzfTwcqg6WSOO2m0IK2+LcmcQRSPOLRkvn4CcbB0QfILQbPIsOrEQogLgCop5TohxOmhp9s5tN3bhZTyceBxgNmzZ9tOQXj8AdYXOSisdSIl9MxKZ9aYfozq3zPRQ4sZKSUldbG5nCoa3PTPTb5wKyu6hze0+Oibk2n6ea3Gyjo/bp+B12+QlZF8uQ9WZlaFSGZ3VTwyCpPZ0tUUB0sXqGtoYK8e1r+RzbHyDnMSsFAIUQi8gnJTPQTkCSFC4mokUGbhGCyhxevn021V7KtxHtjRtXgDfLWrhh0VTYkdnAnUNHujdlWFqGxKvuDjgCGpc5pryYHkDT62erFK1t14PBbxZN6Fx0MEtngDSesGjlfGZTJfQ2ZimciRUv5KSjlSSjkWuBRYIaW8HPgcWBw87CrgXavGYAW+gMHKHdUdBo6tL66nvCF5A2/BnIJ+1U2epLsJ1Tm9llRpTcY0cpc3gMtrbYZPsu7G49F4NVnnBuITbC8lOL3JOUfxEIGQ3NeQmSTCVnw38F9CiN2oGJ2nEjCGqFm7r67TRUtKWL23Fq8/eVNAY4nHCeEPSGqTrK1BV01IoyUZu27X6YW8Q+otqh3UmhZvICkL3nn8gZitwOGStNdPnAqEakuOIi4iR0q5Ukp5QfDnvVLK46WUE6SUl0gprVlZLKCwxklRGGnVLq/B5v0NcRiR+dQ5vaalUFc2JpfLyuzMqhDNHn/SLVhWZlaFSEZ3VYvXjydOGxgzSxnEi3haLZN1EY+HJRB0rZwQyRf1lyDcvgDriurDPn5XZVNS3sTDbcYZDmZnKlmNVZYcKaExyXad8WgumowFAePZdFXPT+ckoyXH7bPeDRwiFdpfmIEWOWGyodgR0Q7OkLBlf6OFI7KGWLOqWlPd5Ema1PpGt8/SHXqyuaxqLQjAbkuyCT/QloquiGevtmTcRMZTBEJyXkNmo0VOGNQ2e9hXE3mLg8JaZ1JdZA0un6mLsT8gk6ZeTlWjtYt6MomcFq8/LrtNfxIWLNOWis6JR7xSiGS6t4aId8PeZLyGzEaLnDBYX+yI6nVSwvby5LHmmBFw3BarXEBmY/U44+WHNwMragV1RGMSiT/QlorO8AeMuLrYmt3+pLEUh4inCAQtckCLnC4pqWuJaQHcW+NMmkwrM+NxQlQlSb0cq8eZTJaceGbFJZPLyu0zt69ZVySbpcIRh0rQrTEkOOOUyWUW8bbkJNs1ZAVa5HSCYUg2lkZnxQnhD8ioXF3xpsnto86CXUYyWHKaPX7LFy+nJ5A0YteKgogdkUzBtfGOp3B6kiuNPB4ZeW1JpsrQqgVQfMebbNZAK9AipxP21jhpdMV+Ue6sbLK9WbXYAlcVqPL9dl/IquKU6p4M1hwppXZXdUC8RQ4k1048EXWxkmkRj7cVB7S7CrTI6RB/wGCLSbVumtx+Ki0ObI0VK+JxQtjdmlMVp/E1JEF7hwaXD18gfoI8mW7CVtVR6oxkmp94iuMQyeTuTMT1k6xFJc1Ei5wO2FXVbGrlzt1Vzaady2waLXJVhbC7yIlX0cJkaO8Q779Vs8dPIEnafyRmEbf/NQPKFZMIS2UyWXISYQmE5LIGWoEWOe3g9RtsLTM3K6q0vsW26bJFNdZZcSB+lpJoaHD54hZMmhQiJ867TSmTI66iyeI6Sh1hhrs8HiTCFQPJZclJhEiG5LIGWoEWOe1QUN5oepCoIVXdHDtSVGftuJrdflw2zYKoaIhf9leiFoJISITVLRmsFYlaoJJhbiBx1lqnx58UjYBbvP649fRqSzLEAlqJFjltcHkD7KhosuTce6rsJ3LqnN647BbtmkpeFseO8b6AxGlj03GL1/oss/ZIhptwolqUJMsuPBHxJqAsgU02/k6FqGlK3AYnWa4hq9Aipw2b9zfgt2hn0ODyJexm0BF7q+MTK2THuJyAIamOc0C4na05ifobJUOGldUVsTvC6zds6+YOIaWkJkGWLkiO66e6OXGbvGSxBlqFFjmtaGjxscfiRX+PjQKQA4akMIyu6mZgx+yyqia3ZYK2I+wclxNP111rHDZfpNy+QEKtTXZfxBtcvoTWgEqGRTyRmzy7Xz9Wo0VOK9YX11tesbOorgWfTVL69te74nZzanD5bLcjLXPEf1FPVIZFOFTEKcusLY0un63jKhJthbS7Oy/RiQV2D872+o2E9vDzBaRtYyLjgaUiRwgxSgjxuRCiQAixVQjxi+Dz/YUQnwghdgX/72flOMKhtL6F8jjsZP0BSVGcrCddYbXVqi2JMvl3hBVtLLrCru6qRnf8sszaYkh7xw0kOp7M9iInwd9ru9efqm72xLXdRXs4bD5HVmK1JccP3C6lnArMAX4mhDgS+CXwmZRyIvBZ8HHC8AeMqJtwRkO8xUV7NLh8cRF1rUmUpaA96pzehCzqTk/AdhYtSJyrKoSdF/KKhkQv4vadGyllwkVgo8vejTrjVYerM+x8DVmNpSJHSlkupVwf/LkJKABGAIuAZcHDlgEXWjmOrtha1hjXWh21zd6Euy12V1mTQdYZdhI5VrWxCAc7WnPiLXjbYsc5AZWinOgFws5xXPUtPty+xLrf/Ya0dcG7RG8gQMWbdlfiFpMjhBgLHAOsAYZIKctBCSFgcDvH3yiEyBdC5FdXV1s2roAhKSg3t/BfOOyqjL/ICOH1G+ypjn86e7Pbb5ubUSJcVSESVXOlI/wBg0otctol0eIPwOM3bBtTUR7HEgydYVch6PIGbDE2uwf3W0lcRI4QohfwJnCrlDIsRSGlfFxKOVtKOXvQoEGWjU1KSSJiHotqW/D4E3Pj2lXVhD+O/YlaU+5I/E0xXrWBOsJuZQTKG+KfZdYWOywE7WGHXTjYWAQmIHi/PWx7/djEet3g8tnapWclloscIUQmSuC8KKV8K/h0pRBiWPD3w4Aqq8dhN/yGTEhxQH/AYHt54qxIZTZYNOJVG6gj7GbJ2W8D4dnitV+sUsCQcS0W2Rl2FDkefyBhRRLbYsf5AZXBagf8AZkURROtwOrsKgE8BRRIKf/S6lfvAVcFf74KeNfKcdiVHZWNcW9OuKuqOSE9eEJUNrgT2pAxnrWBOsLjN2xT28MwJKU2uRHX2iy9vqLRnTCLZ1vqLWygGy3lDnfCs4ZC2FHk2EkkAzhseA3FA6stOScBPwHOFEJ8H/x3HvAAMF8IsQuYH3zc7XB5DfbVxM+a4wsYCYk/ao3fkAk14ZbWtyS0cFmIRNdeCVHWEL9aSV1RaxOrQIhim5R6AKh12mtuILHB+21xegIJc/93hJ1EMtjzGooHGVaeXEr5NSA6+PU8K987WdhW3sj4gbmkpXU0Teaxtawx4ZkQACV1LYzIy0nIe++sTHz6PqjaIkcM6pXoYVBocQf6SLCTGy9gyIQGp7clVHogOzM90UMB1IbJLkHHIWqbvQxP0H2lPYps1pA50Rm9iUJXPE4wzW4/e2usX3gbXD62J9iKE6K03pWQCrc1zR7bWFDsUDvD4w+w32Gfhbym2WOb4MgyhwufjXbhYC93XkldCzYp3H4AO4lkf8CwjRs4RG2z1zbfr3iiRY4N2Ly/wdJWD1JK8gvrEpJF1h5ev0F5Ahb5bWX2EHmgAm0TXX9lb7XTVguVLyBtkyWz2wYFO9tiF4EO6tqxG3bKWiytd9nKVQUqVCDR95xEoEWODXB5DTbvb7Ds/NvKG23XIDPeGU6OFq/tdlaJNPdLKdmZwFpNHVGZ4Oq5oAoA2iV1vDVVNrD+gWoBkuh+Ve1R3eyxTQ80O1S1bw87CeV4oUWOTdhR0WTJTqSq0c2mUusEVLTsr3fFNWV4QxzbdoRLItNLS+tdCetV1Rl2EBc7KptskzXUmjqn1xbNfXfZJK6tLf6ApM4GWVaOFq/tNpUh7FK3J55okWMTpIRv99Samuni9Pj5eneNLW/YhozfzbLM4bJF5dq2VDV5ElIbRkrJFgsth7FQ1ehJaIkBr99gd5U9F3FDJj6Wy+MP2NZKAfYQydsr7GchDVHR4LaNtSteaJFjI5rcflbtqTElOKzJ7ePTgkpbZFN1xM7KJvwW70x9AYP8onpL3yNapFQBnPGmqLaFepvEvrQl0SUG1DVp30WgLMEVhndWNNt6fhJd2LLZ46cwjmVBIsUXkLYKYI8HWuTYjDKHm2/31sakth0tXj4rqLKlO6I1Hr9h+a5nfVF9XJuvRsreON8Q/QGDjaX2c921JlH1ady+ANtskoHYEfsdLQnLkHH7AhRU2Ht+apu9Ca2cvbm0wTYJHh1hp9II8UCLHBtSWNPCl7uqo/qy7qps4uOtlbTYtKFfWwrKGy1rPri3ujkhjUgjId4d6Tftb7C9+C2tb7Hcwtce35c4bG2lAJWkkKjg0Y1JMD+QGOsoqOyueBZ3jZbiusQJ5USgRY5NKXO4+feWcvZWN4dl1SlvcPHx1gq+K6xPeLPFSPAFJGv21Zp+3jKHi7X76kw/rxXEq35RRYObHTaOFwjhC0iK4rxQlTe4bJkW3R6JEO5VjW7bbxhCJCJmyDAk3yXJ/cbpCdgyO84qLK14rIkNl9dg9d46Nu9vYFT/ngzu3YPe2ZmkpwkCAUmTx0d1k4fSehdNNnbJdEWZw832ikamDO1jyvn2O1x8s6vG9mbjEIW1LRw53EtezyzL3qPZ4+cbmwaht8eOiibGD8xFtb+zFpc3wOq95gttqyiuc3LM6Ly4VT92+wJ8m0TzU+f0UdPsYWCvHnF7z+9LHbaNc2uPXZXNDOmTnehhxAUtcpIApyfA9vKmhHYPt5r1RQ56ZKQzbmBu1OeQUlJQ3sT3JfaOOWmP/MJ65k0dbMmi3uL1s2J7VUIbs0aKo8VHSZ2L0QN6Wvo+/oDBFzurcXmTZ24ChnLzHjO6n+XvZRiSb3bX2N7F2ZYt+xs4ffLguLxXUa0z6e7NxXUtNLT46NszM9FDsRztrtLYhm/31LKp1BFV0HWd08vH2yqTUuCASiffakFF5oYWH58WVNk6+Loj1hfXW9o81Os3WLmjOil7+uyoaLK8k33AkHyzp8a2NV86o8zhjkuxzdL6Fr7dkzxWrtasL7Fn1qnZaJGjsRVb9jeyfEs5hTXOLuul+AMGJXUtfL69ig+3VNiqd000bCptMC2eQErJ7qpmPtpakZQCB1TrizX7ai0JkmxwqRILyRqbYATrallVU8jtC7ByRxUldfaqEh4Ja/fVWZpptbOyia+SyC3elnKH27Y1ocxEu6s0tqPR5WfVnloy9tUxqHcP+vbMJCcznTQh8BuG6vvUovzuyXqD6Yg1e+twtPiYMbIvGemR70GkVHVmNpU2JL3oAyipc7F6bx0njOtPWlrsrryAIdlR0cSW/Q1JFaDfHrXNXr7ZXcNJEwaSbsLchCiubSG/qM7WNbbCwekJ8OXOak6fPJisDPP28y1eP/mF9bZrExMN+YV15GSlM8Lk7u3FtS0M7J1Fz6zESwyRDKlks2fPlvn5+Zac2x8weC2/1JJzazTRkpOVxqQhvRkzIJdePTq/URiGpMbpoaLBTWFtS9Jabjqjf24ms8f2jzqY1OUNsLemmV2VzUlTXiFc+udmMWd8/5gC1wOGZH+9i4KKxv/P3nmHR1Wlf/xzZtJ7T4CQhCT03kE6iCIW7A0r9rK7/tS1rbuuu6tr37WgomLBgnVVwAJI75DQIZQQSCG99zIz5/fHmZAQU6bcJEDu53nykMzce+6Zw9x73/uW73tOGMeN8fN0YXxsMMFOJiKXVddxJKeMY7kVZ72B3BghYEikP/0j/Jx6kLBYJCeLqziYpb5DFw/phr9n++X8CCESpZSj2tyus4wcIcQs4HXACHwgpXyhpW11I0enK+PtbsTP0xUvVyMuRgNCqD491XVmymtMlFXXnVHdxNuTYB83egZ6KQ+fp2uzT+gms4WKWjOlVXUUVNSSXVJ9Vubd2EtkoCcxwd6E+bm3WXllsUhKq9X65JRUk1lS3a75T2cC3QM8iA3xIdzfHXeXtivTak0WCitqyS+v4WRx1Tln/DXF291IfJgPkQFeNickl1XXUVBeS05pNRlFVacVN5wpRk6n+JKEEEZgPjATyAB2CCGWSCkPdsZ8dHTOZCpqzGdddUt7UVBee9rNxsUgcHURGITAIiV1ZnlWCNa1BxlFVadCKB6uBrzdXXBzMeBifTo3WyS1JgtVdWaqas3nXKi3LTKLq0+1xfB2N+Lj7oK7ixGjQSAEp74/1XVmKmtNZ1XFnRZU1JjZk17CnvQSXI0CP0+VJuBqNGA0CKSUmC2SGrOFqloz5dWms8Kj1VkBszFAspQyBUAI8SUwB9CNHB0dHZsxWSSm2jP/QtvRVNdZqK47tz0PzqA/OLROnVmeM56rzjJyegDpjf7OAMY23kAIcTdwN0BUVFS7TcRoEMwcEN5u4+vo6Ojo6HQ1vN06RqyyLTrLyGkuu+m0xzEp5XvAe6ByctptIkIQ6ttxypg6Ojo6Ojo6HUNn6eRkAD0b/R0JZHbSXHR0dHR0dHTOQTrLyNkB9BZC9BJCuAHXA0s6aS46Ojo6Ojo65yCdEq6SUpqEEA8Cy1El5B9KKQ90xlx0dHR0dHR0zk3OCjFAIUQekNqOhwgB8ttx/LMJfS0a0NeiAX0tTkdfjwb0tWhAX4sG2nstoqWUoW1tdFYYOe2NECLBFlGhroC+Fg3oa9GAvhano69HA/paNKCvRQNnylroDTp1dHR0dHR0zkl0I0dHR0dHR0fnnEQ3chTvdfYEziD0tWhAX4sG9LU4HX09GtDXogF9LRo4I9ZCz8nR0dHR0dHROSfRPTk6Ojo6Ojo65yS6kaOjo6Ojo6NzTtKljRwhxCwhxGEhRLIQ4onOnk9HI4T4UAiRK4TY3+i1ICHESiHEUeu/gZ05x45CCNFTCLFGCJEkhDgghPiT9fUutx5CCA8hxHYhxB7rWjxrfb2XEGKbdS2+sqqVdwmEEEYhxC4hxDLr311yLYQQJ4QQ+4QQu4UQCdbXutw5AiCECBBCfCuEOGS9bozvwmvR1/qdqP8pFUI8dCasR5c1coQQRmA+cBEwALhBCDGgc2fV4XwMzGry2hPAKillb2CV9e+ugAl4RErZHxgHPGD9PnTF9agBpksphwLDgFlCiHHAi8B/rGtRBNzRiXPsaP4EJDX6uyuvxTQp5bBGGihd8RwBeB34VUrZDxiK+n50ybWQUh62fieGASOBSuB7zoD16LJGDjAGSJZSpkgpa4EvgTmdPKcORUq5Hihs8vIc4BPr758Al3fopDoJKWWWlHKn9fcy1AWrB11wPaSi3Pqnq/VHAtOBb62vd4m1ABBCRAIXAx9Y/xZ00bVogS53jggh/IDJwEIAKWWtlLKYLrgWzTADOCalTOUMWI+ubOT0ANIb/Z1hfa2rEy6lzAJ14wfCOnk+HY4QIgYYDmyji66HNTyzG8gFVgLHgGIppcm6SVc6X/4LPAZYrH8H03XXQgIrhBCJQoi7ra91xXMkFsgDPrKGMT8QQnjTNdeiKdcDi62/d/p6dGUjRzTzml5P38URQvgA3wEPSSlLO3s+nYWU0mx1PUeivJ79m9usY2fV8QghLgFypZSJjV9uZtNzfi2sTJBSjkCF+R8QQkzu7Al1Ei7ACOAdKeVwoIIuEppqDWtu2mXAN509l3q6spGTAfRs9HckkNlJczmTyBFCdAOw/pvbyfPpMIQQrigD53Mp5f+sL3fZ9QCwuuDXovKUAoQQLta3usr5MgG4TAhxAhXSno7y7HTFtUBKmWn9NxeVczGGrnmOZAAZUspt1r+/RRk9XXEtGnMRsFNKmWP9u9PXoysbOTuA3tYqCTeUi21JJ8/pTGAJcKv191uBHztxLh2GNc9iIZAkpXyt0Vtdbj2EEKFCiADr757A+agcpTXA1dbNusRaSCmflFJGSiljUNeI1VLKuXTBtRBCeAshfOt/By4A9tMFzxEpZTaQLoToa31pBnCQLrgWTbiBhlAVnAHr0aUVj4UQs1FPZUbgQynlc508pQ5FCLEYmAqEADnAM8APwNdAFJAGXCOlbJqcfM4hhJgIbAD20ZB78RQqL6dLrYcQYggqSdCIehD6Wkr5DyFELMqbEQTsAm6SUtZ03kw7FiHEVOBRKeUlXXEtrJ/5e+ufLsAXUsrnhBDBdLFzBEAIMQyVjO4GpAC3Yz1f6GJrASCE8ELlucZKKUusr3X6d6NLGzk6Ojo6Ojo65y5dOVylo9NlEULcJoTY2OjvcuuTelv7zRVCrGjf2bUvVoHDqa28/4sQ4taW3m+03SQhxOFW3o+yrqvRwanq6Og4iW7k6OicQwgh1gohioQQ7vbsJ6X0kVKm2LDd51LKC2ycy2mGVAvbDBRCrLDOudhamjzb1nk7gpRyoJRyrfX4fxdCfNbk/YuklJ80u/Pp222QUtbnZNSrAZ/f6P0067qaNZy+jo6OHehGjo7OOYJV32cSqpz5sk6djO0sRenwhKM0NP4IdNnSfR0dHW3RjRwdnXOHW4CtqHYdp4VbhBDBQogl1p4y24G4Ju9LIUS89Xd/IcQiIUSeECJVCPG0EMJgfa9pmEsKIe619qYpEkLMF4r+wLvAeGvIprjpZIUQIUAv4H2rYmytlHKTlLLx+JdYe+EUCyE2W5Oi6987IYR4VAixVwhRIlQPKY/6sYUQy6z7FQohNjT6DCeEEOcLIWahksuvs85xj/X9tUKIO4UQ7tb9BzU6ZqgQokoIESaEmCqEyLC+/ikquXKpdazHhBAx1vVxabSuC4UQWUKIk0KIf9WHsoQQ8UKIddbPkS+E+MqO/3cdHZ0W0I0cHZ1zh1uAz60/Fwohwhu9Nx+oBroB86w/LfEm4I9SdZ1iHff2Vra/BBiN6t9zLXChlDIJuBfYYg3ZBDSzXwGQDHwmhLi8yXwRQowAPgTuQakMLwCWNAnFXYvqv9YLGALcZn39EZSWSSjKS/QUTQT7pJS/As8DX1nnOLTJ+zXA/1BlsY2Pt86qE9N425tR1SOXWsd6qZnP+wmqR1o8SlH7AuBO63v/BFYAgSjdnTeb2V9HR8dOdCNHR+ccwFoCH40q905EtWG40fqeEbgK+JuUskJKuZ+GfjJNxzEC1wFPSinLpJQngFeBm1s5/AtSymIpZRpKP2aYLXOWqrRzGlB/jCwhxHohRG/rJncBC6SU26wKzJ+gmoeOazTMG1LKTGtZ6tJGx65DGXTRUso6a4zdk80AACAASURBVP6MI6WkX3C6kXOj9TW7sBpwF6GUtCusRtJ/UNo79fONBrpLKasbe7N0dHQcRzdydHTODW4FVkgp861/f0FDyCoUpWvSuFdbagvjhKB0P1KbbNtab6bsRr9XAj42zhkpZYaU8kEpZRzqJl8BLLK+HQ08Yg0ZFVtDXj2B7jYc+2WUl2iFECJFCOGo5P5qwFMIMVYIEY0yor5vY5/miEY1Os1q9FkW0NDL5zFUu4jt1uqv1jxtOjo6NuLS9iY6OjpnMkKpEl8LGIUQ9Td9d1TrgaEoVVoTykA4ZH0/qoXh8mnwKhxstO1JB6Zml+dESpkuhJhPg2JqOvCcIyKd1k7yj6CMpIHAGiHEDinlKnvmKKW0CCG+RnlzcoBl1rGb3byVodJRXqiQRo09Gx8nG+W5qvfK/SaEWC+lTG5tfjo6Oq2je3J0dM5+LgfMwACUp2EYqqHmBuAWawnz/4C/CyG8hBADaJKYXI9126+B54QQvlbvxcPAZ81t3wY5QKRQbVN+hxAiUAjxrDXp1mBNRJ6HSp4GeB+41+pFEUK1FbhYWFsLtIY1YTleCCFQ1Vpm609zc4ypT0pugS9QIby5tB6qykHlMf0OawfmFcCrQgg/6+eNE0JMsc73GiFEpHXzIpTBpJee6+g4iW7k6Oic/dwKfGTVZcmu/wHeAuZaq3seRIVyslHVVx+1Mt4fUGGjFGAj6sb+oQPzWg0cALKFEPnNvF8LxAC/oQyR/Shvx20AUsoElHfjLdSNP5mGxOK26G0dtxzYArxdr43ThPpuyQVCiJ3NDWRtwliBCpP90sox/w08bQ1HPdrM+7egQoEHUZ/nW1TeEKjE7W1CiHJUv58/SSmPt3IsHR0dG9DbOujodHGsXgwzKkk3rbPno6Ojo6MVuidHR0dnEKq8PLutDXV0dHTOJnQjR0enCyOEuApV9v24lLK2s+ejo6OjoyV6uEpHR0dHR0fnnET35Ojo6Ojo6Oick5wVOjkhISEyJiam3cavqKjA29u73cY/m9DXogF9LRrQ1+J09PVoQF+LBvS1aKC91yIxMTFfShna1nZnhZETExNDQkJCu42/du1apk6d2m7jn03oa9GAvhYN6GtxOvp6NKCvRQP6WjTQ3mshhGhJtf009HCVjo6Ojo6OzjmJbuTo6Ojo6OjonJOcFeGqc4q6Ktj9OSSvgtpyiBgCI26F0D6dPTMdHR0dHZ1zCt2T05EUpsD70+GnRyD/CNRWwrYF8M54WPcSWCydPUMdHR0dHZ1zBt2T01GUZMDHl0JdBdz4NfS+AISA8jxY/iSseQ5K0uHSN9TrOjo6Ojo6Ok6hGzkdgbkOvrkNakrhtp+g25CG93xC4cr3ISAaNrwCXsFw/t87aaI6Ojo6OjrnDrqR0xFseh0ydsDVH51u4NQjBEx/GioLYON/oMdI6H9px89TR0dHR0fnHELPyWlvSjNhw6vKaBl0ZcvbCQEXvQTdhsGPD0LJyY6bo46Ojo6OzjmI7slxEItFsv5oHr8l5bAnvYTiqlo8XIwM7RnAxUO6MbVPKEII5Zkx18IF/2p7UBc3uPpDeGcC/PIYXP95+38QHR0dHR2dcxTdyLETi0WydG8mr608QmpBJd5uRoZHBRIX6k15jZkVB7L5NjGDifEhvHRRN7rvXARDr4fAGNsOEBwHUx6DVc/CkeXQ58J2/Tw6Ojo6OjrnKrqRYwfZJdU8/PVuNh8rYEA3P966cTgXDIjAzaUh6ldntvDFtjReWX6YXz94h9tlDWLCQ/YdaPyDsGcx/PoExE0Ho6vGn6QTqC6FoytUGb2Lh8pNip4IRv0rqKOjo6PTPuh3GBtJTC3irkUJVNeZef6KwVw/uicGw+9LvV2NBm49L4bJUW6EfnAbqwzjGOASSXd7DubiBuc/C1/eALu/gJG3avY5OhxzHax/GTa/pcrnG+PbHSb8EUbfpRs7Ojo6Ojqaoyce28Caw7nc+P5W/DxcWPqHidw4NqpZA6cxvbJ+xodKPjBfyn2f78RktlPor+9Fqspq3UtgqnFi9p1IZSF8chmse1GF3e5YCU/nweMn4NpPVWju1yfgg+nKw6Ojo6Ojo6MhupHTBltTCrj300Tiw3z43/0TiAv1sW3HXZ9D+CDmXnE5e9KL+WDjcfsOLARM/yuUZkDCR/ZPvLOpq4bFN8DJRKUDdM1H0HOM8lJ5BsKAy+DWpXDNx1CcBu9NhZR1nT3r9kdKqMhXVXem2s6ejY6Ojs45jW7ktEJaQSV3L0ogMtCTRfPGEOTtZtuOOQchcycMv4lLhnZn1sAIXlt5hIyiSvsmEDsVoifA5jdU2OdsQUr48X5I3wpXvAtDrm1+OyFg4BVw91oVuvriWtXT61yk4Jhq5/FynPp5rT88FwEfzIQt86GqqLNnqKOjo3POoSdCtEB1nZl7P0sE4MPbRhPs4277zrs/B4MrDL4WIQTPXDaA1S/n8tbqZF64qhkxwJYQAib8Sd38D3zfsrHQCRzNKWPzsQJ2pRWRVlhJRY0ZP08XBnb352aX34jb/x3M+Fvr2kD1BMYoJehFc5T3Z+43EDul3T9DhyClMlJXP6f+7n8J9BgFrh7Kg3VsDSx/Ctb8GyY9DOPuV+91BaSE1M3qu52bBDUlyssXMUQl3MdOBYOxs2epo6NzFqMbOS3w+qqjHMwq5cPbRhEd7G37jhaLumjHnw/ewQB08/dk7tgoFm1J5d4pccSE2DFe/EwI6atulIOv6dS+Vkdzyli6N4uf92WRnFsOQJivO/FhPoT4uFNUWcva7Tt51Pg8e92H49fvHmJsHdw7GG5dAh/Nhq9vhjtXQUjv9vooHYPZBMsegl2fQr9L4OJXwTfi9G3O/ztk7YG1LyjZgF2fwdULofvwzphxx5GbBMv+D9K2gKs3RAwGvx4qlLf9fdjylvLujbkTxt4LbnacM+cK+Udh37fKI1qRrww+/57Qc6zKcQvt29kz1NE549GNnGbYf7KE99ancO2oSKb3C7dv55MJUHpSeTEacd/UOBZvT2PB+mP8+0o7vDkGA5z3ICz5Axxf3+EejhqTmV/2ZfPZ1lQSUoswCBjTK4hbxw9kWr8wegR4KtFDK+bF87EkC56ou4OTb2/mvZtHMjY22LaDeQXBjV+pTu1fXAt3rVZP9mcR5TUmak0WfNyMuP3yf8rAmfwYTHuqZQO121C4YbEK1S35gwphXfAvGHvPudmsdf//4If7wNULLn5N6Ug1NmJMNXD4F9j5Caz6B2x9RxmDw+aem+vRlIp8WPG0kpFAKAMwIFqJiuYehEPLYOVflUdw3H0q5Kt7vHR0mkU3cpogpeRvP+4n0MuVp2b3t3+AAz+A0U1VRzUizNeDy4f14IddmTwxqz/+XnZo3wy+Vl3st73bYUZOWXUdi7aksnDjcQoraukV4s3TF/dnzrAehPq2ELpL347x8DKM057m3UFXcfvH25n38Q6+vnc8A7v723bgwGi4/gv4+GJY8ke4dtEZfWPLKa3mt6Qc1hzKZd/JEnJKVSXcfS5LedxlMbti7qT3hMfxseUzxM+Aezeqth6/Pg6Fx2DWC2f9DcxikRRV1lJtshCe/BUuy/6kvBHXfQY+Yb/fwcUdBl6uftK3w4q/wo8PwP7vYM588LNLkOHsIn0HfH0LVObDhIdg/AO/X6PSTGUo7lwE392hqhcveA76XNA5c+4sLBbIPQBpW9WDpakWPPwhtI8KeQbFntHXDp2OQTdymvDL/mx2phXzwpWDCfCyMdG4Hinh4I8qn8Dj9zf1m8dH8+WOdL5JTOfOSbG2j+vqAcNvUo0+S06Cfw/75mUHZovk/fUpzF+bTHFlHdP6hjJvYi8mxIW0XjYvJax8BrzDYPz9RLl58cVd47h8/ibu/SyRn/44CT8PGw27qLEw46+w8m/qaX7kbZp8Ni2QUpKUVcbqQzmsPJjDnowSAKKCvJgQF0J8uA8xFXuZteMrNnlMZu6haXR/bR1v3DCcUTFBbR/AK0jd/Ff+VYVsKvLgyg/OOh2h1IIKVh7MYfWhXPZmlFBeY2KWYTvzXV9np/tIkge8zZWeIW1fgHqOgdt/gYSF6vu1YLJqdNtrUkd8jHalus5MYmoRh7PLKKqsJa50G5cefBR8IzDe+Zvy8DWHX3fl3R13PyQtgTXPwRfXQP/LlGfMJ7RjP0hHYzGrvMfNb0L+EfWawVU9XDbW4grsBf0uhuE3Q1i/zpmrTqdzdl0525k6s4UXfz1EvwhfrhnV0/4Bsveqku9pTzb79sDu/oyKDuSzrancMbHXaWGeNhlxK2z8rwp/TH3C/rnZwMHMUp7dUk1aWRJT+oTyyAV9GBIZYNvOR5ZD2mZ1kbWGHsL9PHjrxhFcu2AL/1p2kJeubuGi3Rzj/wDHVsMvT0DMJKWp00mU15jYlJzPmkO5rDmce8pbM6xnAH++sC8zB4TTO8xH/X9Wl8C7z0BATybc+znf5Zh49Ju93LxwOwtvHcV58SFtH9BggAufA59wZewYXFWV2hns0ZFSsu9kCcsPZLPiQA5HrTlbfcN9uXJED0a7pjA7YT5ZXoP5h8uT7P7xMJ8lZjP/xhH0DPJqfXCDAcbcpb4HX9+sEtQv/S+MuKUDPpm21Bt/647ksf14ITUmpZ813nCAB11f5JDswbz8p5i8EZ64qKb1ggeDQXm7+s6GLW8qTa13J8AVCyBuWgd9ovZDSkl6YRVphZXkllVjkdDTnMaIxCdxzdmtjMDL3oTYaeAfqbw2dVWQdxgydsDRlbBtgXpY6DkOJv6fymXSvTttkl9eQ0peBVV1ZrzdjEQFeRHq627fPesMQTdyGvHzvixSCyp5/5ZRGNsQ+2uWoyvUv71bdhtfN7onf/52L7vTixkeZUe+SVAv5SFK/AQmPar5k/2Pu0/y2Ld78TBK3r1pBBcOjLD9Cy2lUjUOiP7djWdkdCB3TuzFgvUpzB0bzdCeNhpNBgNc/i7MH6MSVG/5sUMvTifyK/j1eB3vJ29l+/FC6swSX3cXJvUJYVrfMKb0DSXMt5kqqF+fUt62eb+Chx8jo+Hre8Yz94Ot3LkogSUPTiQ+zEatpQl/BEudClV6+KnE5TMEi0VyvKCCPenF7EwrYnVSLpkl1RgNgjExQdwwJoqZA8KVAVNZCAuuB99uRN7zI997BrJsbxZPfb+P6xZs4at7xrdt6IB6Gr9rNXx9q8pdqixQN64zmDqzhb0ZJaxKyuG3pByO5CjjLy7UmxvHRjG5dyjDPHMJWHwf+MTjcsk3XLS3jC+2pbH2SB4f3TaaQT3aCPW6uMGkR6DPRfDt7fDpFSqna/wDZ9UNvbrOzN6MEhJSC9mZWsTOtGIKKxq0pKYbdvK663xKcOXzwMcZOHEeMwaEn36dcvWE7sPUz5i7VH7TnsUqmX3xddB9BMz8xznhCdSS+oeUH3dn8vO+LLJKqn+3TZivO5N6hzJrUART+4biajw7FGh0I8eKlJL3N6QQG+rNjH7N5AnYwpEVqiqmuTwDKxcOiuAvP+xnyZ5M+4wcgFHz4Ku5ypjqN9uxOTbDoi0n+NuPBxjTK4i5MdXMGtTNvgHStqiE69mvNNtn68Hp8XybmMErKw7z6R1jbR/Xrxuc/4zSl9n7lUpQbUfSCyv5akc6yw9kn/JE9AmvYd6EXkzrF8bI6MDWT+zULbD7M5VL0XPMqZdDfd1ZNG8ss9/YwB8W72LpgxNwsfUCMekRpaGz+U1VZTf2bmc+osMUVVtYfiCbPenF7MkoZm96CWU1JgC83IycFxfC/83sw/n9wwlsrCclpcqnKcuGO5aDVxACuHRod2JDvbnhva3ctSiBHx6YgIerDZ4qd1+44UuVuPzb3wEBE+3sDddOVNSYSMmrIDmvjKM55exOL2ZXWjFVdeZTxt9fL4liZv9wooKtRl1VEbw3V4Va5n5N38Ao/h6jHobu/CSBG97fyvf3T7DNMA4fAHetgR/uhRV/USris18+4zyAZoskq6SKtIJKUgsrOZ5fwc7UIvZmlFBrVYavvw6PiA6kV4g3cRk/ELL6VSqDB7Is7gW+22/iP58mcvHgbrx49RB83Fu4lXmHwHl/UBV6exbDupfhk0tg6I3KEPS2sSjiHCUlr5wlezJZsjuTlPwK3IwGpvQN5c5JscSH+eDj7kJpdR2p+RXsSC3it6QcvtuZQbC3G5cN685VIyIZ2N3vjPbwdJqRI4SYBbwOGIEPpJQvdNZcALamFLL/ZCnPXzG4zZYNzVJRoFykUx5vdTM/D1em9Q1l2d4snr54gH0eoz6zVM7L7s81M3K+SUjnbz8e4Pz+4cyfO5wtGzfYP8im18ErWFW/NIOvhyt3TorlxV8PsSe92HZvDsDIebDnK6Ul0+fCdqm2Sskr56VfD7P8YDYGIRjbK4gbx0bhU3Kca2bbmOhtroOfHlYlvlMe+93bEf4ePH/FIO79bCeLtqQyb2Iv2yd4/rNKTPDXx1VSZexU2/d1kMziKlYezGHHiUISThSRXVoNJOJiEPTr5stlw7oztGcAQyMDiA/zafl7vPtzOPwzXPhv1aakEQO7+/P6DcOZ9/EOXll+mKcvGWDb5Fzc4Mr3AAm/PaMMn9F3OPV57aHObOFYsZnMbWkk55ZzNLeMY7nlZDZ6+jUaBP0ifLludE9GxwQxIT749zl+UiqPVEmGyjsKjD71Vv9ufnx1zzjmvLWJez5N4Kc/TrLNCHTzgqs/hlV/V+dlXRXMeavDDR2T2cKJgkpO5FeQWlhJWkH9v5VkFFWdMmYA3IwGBvXw4/YJMYyMDmRkdODpYbq938DqRyBuGt7Xfc5tbl7MvdDC+xtSeHXFETJLqlg0bwy+reX8GV2Vl3nwNcrrvOl19bB45Xsq4b+LUFFj4kBmKZuP5fPr/mwOZZchBIzrFczdk2O5aFC35oti+sJtE3pRZ7aw7nAe3+3M4POtaXy06QT9IlRIes6wHoT7nXkaX51i5AghjMB8YCaQAewQQiyRUh7sjPkAfLAhhWBvN64c4WBS77FVgGw1VFXPnGE9WH4gh60pBUywJUejHqOLEgTctkCFALxsSGRthcTUQv7y/X4mxofw9twRp3VTt5ncQ3DkV5j6lLrAtsBN46J4d90x3lqTzPu3jLJ9fINBhWkWTIb1r6hcFY2wWCTvrDvGf1YewcPVyP1T47hpXDTd/D0BWLs21fbBdnygynuv+7xFTZcLB0YwqXcIb6w+ynWje+Ld0tNnUwxG1Rrj/enwv7vh3k3tklwqpWT90XzeXXuMrccLkBIi/DwY3SsIv5p8rpo+igHd/Gy72QKUZqnwXfQE9STdDNP6hnH96J58vPkE14/pSXyYr21jG4wq96S2An5+VIVKe59v4ye1n1qThdWHcvgmIYPNxwqoqjMD+/B0NRIX5s2YXkHEh/mc+okK8m77fEpYCElLYeY/T/P81RMZ6MV/rx/GzQu3M39NMo9cYKMujsGgQjKu3rD2eRWyuuwt9Xo7IaVkx4kiViXlsOlYPkdyyqk1NRgyPu4uRAV50TfCl5kDw4kJ9iY6yIuoYC+6+Xu2bCQnLYXv74GYidZzS11jXI0G7p8aT2yIDw98sZNHvt7DgptHtu1RcPW0ipRerSrTPrsKJj8KU5/sEEOwslZ5+47nV5BdUk1ZdR2l1SYqakyYLRKTRWKWEov1d4v1bynVf6MAhBDWfwFEo9dBvXM6Jmt1Y25ZNRlFVafGGh0dxNMX9+fiId1OXfPawtVo4PwB4Zw/IJziylqW7s3ifzszeP7nQ7zwyyFGxwQxvV8YU/uGIaXUcOUcp7M8OWOAZCllCoAQ4ktgDtApRk5BlYXVh3N5cFq87RfwphxZDl4hNom4TesbhruLgd+ScuwzcgCG3qAS6fZ/p2LODlJSVccDn++iW4AHb9043DEDB2DH+2B0h9F3trqZr4crN4+LZv7aZLJKqmw+qQDoNgSGz1XG3eg7VGmok1TXmXnwi138lpTDxUO68fdLB7ZcGt/mYCWqjDd2mqrmaAEhBP83sw9Xvr2ZxdvT7Kuwc/dR/b/em6bCETd+o+lNK7esmse+3cvaw3n0CPDkoRl9uGxYd2KCvRBCsHbtWkbYE16VUuVSmWtVcmgrc/3zhf1YsjuT+WuO8Z/rhtl+DKMrXP0hLLwQvp2n8nVC4m3f30ZWHMjmXz8lkVZYSbifuzJQK7O4/oLz6BHg6ZjnN3u/MgDjZ8L4B1vcbFLvUOYM685761O4eXx083lgLTH1cUDC2n8rEcom2l1aIKUkMcfEC69v4FB2Ga5GwajoIG4dH03fCD9iQ5UxE+TtZn9II3MXfHcX9BihQpTNPETNGhTBU7P7889lB1m8PZ0bx0bZNnb4ACU4+vOflWcnNwmu+kAZQRpTXFnLt4kZrDiYw87UIkyWhpu/EODj5oK3uwsuRoGLQWAwCIxCYDQ0/AhAok4riTJ61O+cMiZasimEgCBvN4ZHBnDdkCBGhJgYECgJcKmD2hQ4uQ+OV6rKtNpK5f0zVamSfHMNmKrV76ZqdT5b/w4wVXOzuZabzdXUhVZTW12JJbsG18xaXFabCRABWKakOHZ+aIjoDGtLCHE1MEtKeaf175uBsVLKBxttczdwN0B4ePjIL7/8st3m811SOUtTBS9N9iTMy4EbhzQzYdMtFASP5lB/2/IDXkusJqvcwkuTPe0++UfteAiLwYWdI1+xf65WFu6rYeNJE38d70Gsf4NhV15ejo+PbYmxRlMV47fcTn7IOJs+d26lhcfWV3F1H1cuibWvPN+tpoCx2+6jMGgEBwY5V11WZ5G8sbOGfflmbuznxsxol2b/D2xdi14pnxKd9i0JI/9DuW/bhssL26vIq5S8PMUTg53/991P/kyfows40vtuMnu0bFDZQ2qpmVcTqqkywdV93JgR5YJLkwuTPd8LgNDcDQw8+ArJcfPI6Dmnze0XH6phZaqJlyZ7EuJp3znoUZXDyMRHqHULIHHkq1iMDhqrTTBZJF8cqmV1mokePoKr+7gxJMSI0SDsXo/GCIuJETv/jHtNITtGv0GdW+uJxdkVFp7cUMWFMa5c389+WYs+R96me9YKDvd5gKzu2mnpVNRJPthXw65cM928BbN7uTIqwgVPF+dvam41hYxMfBQpDCSOfIU6t5ZD3FJKXtheTUa5hRcneeHjZt/xe2QsIz75A0r9+rBv8N8wuTr2/wqnnye1Zskvx+v4KaWOWgtE+xkYGGykl7+BcC9BsKcBTxfsvga0hbDU4VuWjF/pEbwqM/CsysSzKhu32hIM0rYeiBbhgsXggsXghhSuWAzN/TR9zw2LwYUKiyu51QaK6tzwG3WDpp+tMdOmTUuUUrYdFpBSdvgPcA0qD6f+75uBN1vafuTIkbK9sFgscuyzP8lr3tns+CCpW6R8xk/Kfd/ZvMunW07I6MeXyaM5ZfYfb9Ob6ni5h+3fV0q59Vi+jH58mXzhl6TfvbdmzRrbB0r4SM0jbZvNu1z19iY5/ZU10mKx2H6celY/r46Xudv+fRvx5P/2yujHl8nF21Jb3c6mtSjNkvKf4VJ+M8/m4y/ZfVJGP75MbjiSZ/M+p7BYpFx0uZTPdZeyqPX528K+jGI5+Jlf5fjnf5OHs0tb3M6u70VNuZSv9JPy3UlSmk027ZJRVCljnlgmX13h2HdaJq9S342lDzm2fxPqTGZ51yc7ZPTjy+TzPx2UdSbzae/btR5NWfeymuvBJTbv8sDniXLwM7/Kqlrb1vM0TLXqO/NssJQZCfbv3wyZxZXy/FfXyvinfpKPfbjid+vjFHU1Ur43Xcp/dZMya69NuyRllcjox534/hz4Qa3P+zOkrG75PGiL+u9FWkGFvOi/62X048vkfZ8lyIOZJQ6PaRO1lVLu/UbKL2+S8l8R6vv1jJ+UL8ZK+cFMKb+7W8rlT0u54T9SJi6S8uBSdc6kblVrnJ+srmVVJVKa6jSZklPniA0ACdIGe6OzasAygMZCNJFAZmdMZFd6MdmVkqtHRjo+yLHVIAx2aVNMt1ZwrT6UY//xBl+jjrdnsd27Sil5/uckuvl78KcZTvSGkhJ2LISwgRA52ubdrhoZybG8ilMienYx7j4lsrj2Rfv3tfL9rgy+2JbGPVNiuX6Mja7t1lj7girznv4Xm3eZOSCcAC9XvklMt/94QsAl/1Xrv/Shln3UNlBQXsPdixLw9XDlq3vG0yfcxnyYttjwKpRlwkUv2Zzn0CPAk/Pigvlh10nHYvlx01XYJ+FDOPST/fs34ekf9rPiYA5/v3QAT87ub3s1XFvkHVahzQGXQ/9Lbd7thjFRlFabWHHQgeuF0RWuWqhCVl/f5nTH+7LqOm77cAdZJdV8Mm8MF/Vy1W59QPVwO5kAV7yjWlrYQL8IP2YOCOeTzSeosFb92cWAOXDNx3ByJ3xxnQrbOEhybjlXvL2J9KJKFt46irfnjqR/Nz+Hx2uVigLV3Pc/g1SOUfp2ldJw3efw6FF47BjcsQKuXAAX/FNVIo64WTUKjpuuhFcjBisdMt8IJVVxlgmPtkVnGTk7gN5CiF5CCDfgemBJZ0zku8QM3Axw0eCItjduieMblDCVHZU/3QM86d/Nj9WHcu0/nm84xM2Afd/YfZP7aV8WezJKeHhmH8fzjwAydyrxw1G326XFMXtwN1wMguUHsu0/pmcAjHsADv+kmlraSVFFLc8uPcio6ED+bGsSZ2sUpylxxpG32ZUn5OFqZNbACFYl5VJjMtt/3MBoVVp/bBUc/MH+/VHG7kNf7Sa/opYFN4+0TafGFgpTVLn7kOsgapxdu14xPJK0wkp2phU7duwZf1MX7KV/cupG/sOuk3y5I50HpsVx2wQ7quDawmJR1VRuPqq02w7GxwbTI8CT7xIzHDu2VxBc8wmUZak5OGgcSyl56MvdJOeV8+5NIzkvzs6cwrY4+pvKORx9pzI87ODuybGUVNXxE45j2AAAIABJREFU874sx47d/xK46n0lifHtPKWsbCcFVRZuXrgNEHx//wRm9Lez96GtWMyq2OHN4bDuBYgcBbcsgYeT4JLX1GdpRcqkK9EpRo6U0gQ8CCwHkoCvpZQHOmEenCioYGSEsfXyw9aorVSl4zH2i0tN6h3CztRiquscuNENugpK0iEjweZdpJS8uSqZ3mE+XDnCCc8VQMJHqnpjyHV27ebv6cromCBWJzlg3IFqWunhr9Rd7eTlFYcpqzbx3BWDtXny3PQGSqfFfkG6CwdGUF5jYvOxAseOPfpOCB8EK/6mEgXtZMmeTDYczefpi/u3LTZnDyv+qjRfzn/W7l0vGBiO0SBYleSAtwJUz6s5b6vKwxV/dWiIzOIq/vrDfkZFB/LwTI27fO/9CtK3qSdqO29ABoNg9uAIthwroNwRTwVA5EjVLiVpqSpccIDvdp5k1aFc/jK7PxN7a2zglOeqpPqwgUrDxk5GRQcSE+zFdzsdNARBXVdnvQhHfoHV/7RrV5PZwrt7aiirNrFo3hjbRT/tpfA4LJyp9MMihsD9W1Vj49gp7VpBd7bSaSsipfxZStlHShknpdSuLtgOhBB8fuc4bh/oRKJi+lYVruhlf+PM8XHB1JotJKY68NTZb7a6mRz4n827rD2Sx+GcMu6ZEueYonM9tZVw4HvV/djDfjfsjP5hHM4pI73QAZdwvTfn0DLI3mfzbvsySli8PY1bx8fQN0KDsExZjmqQOPR6JSlvJ+PjgvF2M7LigIM3dIMRZv0bStJg81t27VpWXce/fkpiaKQ/c8dGt72DraTvUP8vEx5SQo524ufhyqjoQNYcznN8Dt2GqL5Ouz5VHlY7eWXFYWrMFl67dphz50hTqktUL7bI0UqIzgFm9A+n1mxhwxEn1mf8g2oOPz2iBBrtIL+8hn8uO8jomEBuOy/G8Tm0xE+PQHUpXL3QoSonIQRXjYhka0ohWSX2G/6nGHOXEl7d+B/YY3vBy1trkjlabOG5KwYxoHs7hacO/wILpkBBsuppd+tSCHOgkXQXQjf7ADejExez4+vB4GK3ax5gdEwQLgbB5mP59h/Xw1+Vnx74XrnBbeC9dSlE+Hlw2VAnuzgf+glqy2GYY5nzDflITnhz3HxUWMRGXl15mEAvNx6a6UQeUmO2zlfGrYNtBTxcjYyPC2FTsgP/9/X0mqzyOja+pp6CbeTDjSfIK6vhH3MGaXcjl1IpEHuHqtwpB5nWL4ykrFLnblJTnlC6Ob88ZlfIISmrlO93neT2CTENisRase4l1Wz1opccftoeFR2Iv6crqxw9b0AZx5e/o8qAf2lduLQpb646SkWNiX9fOUT7suCDP6pmo1OfcOqmXZ928JujnmJQ4feLXlLe+aV/UuXlbXAiv4L5a5IZ183InGHt1EA54UNYfINq8XPPehhyzVnVtqOz0I0cZzm+QSm5utvvmvRxd2FozwDHQxaDrlQx9rQtbW56JKeMLSkF3HpejOOaOPXs/VIp+0ad59DusaE+xIZ4O27keAaozsL7v1N9otogKauUtYfzmDchxvZO6K1RWaiSrgde6VTj0InxwaQVVjrm0apnxt/VDWvjf2zavKy6joUbU5g5INw+5em2OLYKUjfC5MccOhfqmWjVjdqa4uA5AUpPZeY/lDjj7s9t3u21lUfwdXfh/ikaa+3kH4Vt78LIW5Xmi4O4GA2cFxfs3NoAhPSGiQ+rfK6UdTbtkllcxRfb07hmVE/twzBVRUqvJmKIasHgBHGhPsQEezke8qynXoPJ3Re+vQPqft/LqTHP/5yEq9HA9X3tLPG3lU2vK92p3hdY1bFj2uc45yC6keMM1SUqAbfXZIeHOC8umL0ZJZRV26ZfcBp9ZoGLp00hqy+3p+NqFFw7yslcnLJsVU025Dqn4r8Te4ew40QhdWbbvFC/Y9x9IC3q5tEGC9Ydw9vNyM3jYhw7VlO2v6c8WZMedmqYeiFIp7w5IfGqmmLHQihtu0Dx28QMSqtNPDBNwxu5xaKaiAZEqSRsJ+jfzQ9fdxd2nHCuAogBcyByDKx+DmrK29w8raCS35JyuPW8mOZl7Z1h9b/AxQOmPe30UGN6BZFRVMXJYic8XaCavwZEKW+Oue1rzyebT2CR8MA0x436Fln5jGqkOeetZnvf2YMQghn9w9mcXEBlrYO5S/X4hKkmwbkHVKixBRJTC1lxMIcHpsUT4NEOt9TEj9XxB10F13/eqrK8zu/RjRxnSN2ibrROGDnj44IxWyTbjxfav7O7j+rndPBHMLd8QteYzPxvVwYXDIg4vSeMI+z7Rn1mJ5tlju0VTGWtmX0nHSglB1VhNGCOugBUl7a4WX55Dcv2ZnHd6Chtbl511aqjcZ9ZED7QqaHiw3wI8XFnmyP/942Z8hhIs2p70QoWi+TTLakMjwpgmJZenKQfVbXb1KdUXyknMBoEI6ID2eHsmgihWoCUZ6tqnTZYtOUERiG4aZyGOUqgSpIP/qByYTRoxTGml2rl4vT6uHqqfmJ5SapKpxUqa00s3p7GrIERRAZqfIPN2qNy28bdpypUNWBS7xBqzRZ2pjpYpdeY3ufDuPth+wJIXtXsJu+sTSHQy5V5Wlbi1XPoJ+XBiZ+p2pg4aQR2RXQjxxlObFAtDSJ/33fGVkZEBeLmYnAuZFWRp0IFLbDiQA7FlXVcN7pni9vYzJ4vocco5fJ2grGx6mK9LcWJi/X4P0BNqUoybYEfdp3EZJHcMEaDzw7Ka1aZ71TeST1CCIb1DGBPupMX48AYFb7buQiKWu63telYPin5Fdw6Psa54zVGShUqC+6t+qppwJheQRzNLaeoota5gXqOUXo0m95QnoIWqKw18VVCOhcN7qZ9g8FV/1DNa8c/oMlw/SL88PVwcd4wBtWCJG6G0llppeT+u50nKa02cfuEGOeP2RgpVWsLryCY/GfNhh0VE4TRIJwP69Uz4xn1/V72kOqV1ojk3DJ+S8rhlvExeLpp3Psq74jqVddtGFz7iW7gOIhu5DjD8XXqQurq+IXRw9XIsJ4BJJxw8KLV+wKVhLu/5ZDVkj2ZhPu5n8p3cJjsfZCz32kvDkCIjzu9w3ycuxBFjoSe45RnpZnkaykl3yRkMLRnAL21ELqTUvXPCu3nUDVdcwyPCiAlv4KSSgfClY2Z/Kj6d/MbLW7yxbY0gr3dnNOEakrqJvU0ft6DmjU4HG71Mu111MvXmGlPQV0lbJnf4iYrD+ZQVm1irq19j2wlZR2krIFJjzhUhdgcRoNgaGQAezM08FIIoXKXakqscgjN8/WOdAZ082NktB29y2zh0DL1cDbtKZVnpxE+7i4M7uGvnZHj6gGXvaF0sdY8f9pbCzcex8PVwC3jNfYA1lbA17coWYTrPmux6a9O2+hGjqNUFqome06EquoZFR3IgcxSqmod0Mtx9YS+F6nKhGZi66XVdaw7nMfswd2cr4jY8yUYXFXCrQaMjQ0i4UQhJkfzckCVexYdt3aBP539J0s5nFPGNc6oWTcmfTtk7YYxd2tW1VAfNtrt7E3LP1LlSe36rFmvRVl1HasO5XLp0O64u2j4xLllvvJU2KmX1BoDrbo9+7UwckL7KqmD7e+rc7YZlu7JpJu/B2Nigpw/XmPWvQS+3WHUHZoOOzjSnyM5ZY7pazUlYpDK9dj2brMVeil55ew7WcKVI3rY32CzNcx1SssotD+MuE27ca2MjQ1iT4aDGmTNEX2eKivf+jacTASUB3DJ7kwuHdLd+TSApiz/C+QdUk1D/dupWquLoBs5jnJiIyC1MXJiAjFZJLsdDVsMvFK5m5uplFh5IIdas4VLhjhZNm42qXycPheCd7BzY1kZ2yuYilozSVlljg/S/zLwDlM3sSZ8k5iOm4uBS50tma9n+wJw99fEk1XPkEh/hIDdjqr8NmbCH1Wl1bYFv3vrt6Qcak0WLh1qv35Ni+QnK92O0Xdq2r3Z39OVqCAvDmRqYOSA8nLVljWbpF5UUcvaw3lcOrS7tmXRaVuVl2LCH53y9DbH4B7+1Jklh7OdOG8aM/UpMNXAhtd+99aSPZmqk4iz14+m7P9OPZyc/0y7tBEY3jOAOrMkKavlfD27Of/v4BOucmQsZn7el01FrZlrRmkUCq8nbSskfqRCnHHTtR27C6IbOY5yfL1S/O3ueEloPSOilBs4MdXBkFX8DHXzbUbF9Kd9WfQI8GRElJPu4OProDxHs7wLUKEagN3pTlTSuLip0tyjK6DoxKmXzRbJT3uzmDkgHH9PDWLZpVkqwXvEzZq6jn09XIkP9XFuDeoJ7Qt9L1bVX00qipbuyaK7vwfDe2oYctj2jsoTGH2ndmNaGdzD3/Gk9KaED1R6QlvfVRWRjfhlfzYmi3ReO6opG15VHq4Rt2g7LmptAO3WJyQeht0ICQuhpEEtWErJkt2ZjO0VRIS/hoaaxQIb/wthA1QCfzswJNIa8nSkR15LePgrJeasPbDrU75JSCcm2IvRMRqeU6Zapc3j31OF8XScRjdyHOXEBiUA6GQ1CUCAlxu9w3wcUz4GFbftf4nKxDfVnHq5pLKODUfzuHhIN+ddzfu+UYZU7wudG6cRPQI8CfFxZ5ezibcjb1cNS3csPPVSwolCCipqmT1II89FwodKWK4dbujDegawJ6PEscaUTZnwJ6guPi0Zu6SqjvVH1PdAM29FZSHs+lwZve3QI2dgDz/SC6ucz1WqZ/KfVe5JwoenvbzyYDbRwV4M1FKhNmuvMrrH3dcuuRSRgZ74e7pyIFNDL8WUx1TVZCOBzaO55aTkV2jvxTm6XFV1Tfy/dhOz6+bvQYiPO3u0yF1qzKCrIHoC5t+eJel4GlePjNQ2jLf5DRWmmv2KnoejEbqR4whlOeqLqEGoqp5RMYEkphZhsTh4oxt4pbqINypz/C0phzqz5OLBTt7oaytVv5sBl2nqelfVRf7OVxf591BtLnZ9eqqP0/IDObi5GJjS1/myXUw16ubYZ5ZSG9WYQT38KayoJae0pu2N2yJqLESNhy1vn5IV2HA0D5NFcuFADROOEz8CU5VqsdEO9I9QRsfRXI1CMt2GQuxUFcozqaqt6jozm48VMK1vmLY3qo2vgZsvjL5LuzEbIYSgb7gvyVqtDSjNnMHXQuInp3K61ljFOmf019CIlVKFxQKiNMvta476a4umnhw1MFz0IqKqmIddvmW2s9fWxhQcg/UvK2mMvu3j4eqK6EaOI5yw9sTpZX9TzpYYERVIabWJ5Ly2hcuaJXYKeAadFrJafSiXMF93hkQ62YDxyC9K/E7DUFU9w3oGcCyvgpIqJ5/YR9+l8pIOfI+UkhUHs5kYH4KPuwbx/v3WsvGx9zg/VjP0s/bSOpSt0ZP5+AdVT6tDSwFYcygPf09X7bRxTLWw7T2InQbhA7QZswn1qrpHcx08H5pj/INKIdzauX3LsQJqTBam9dPwJl6cpsKao27XtGKoKfHhPhzJKdfG+1fPxIdOy+lacziXfhG+dPPXLt+KtC2QsR3O+2O75OI0ZkhkAMfyyh0TWm2NiMGs9LqYm11+I9Z8QpsxpYSfHlb9CGe9qM2YOoBu5DjG8fUqdBOhjXgVKG0HgARHlV6NrsrTcvgXqK2kzmxh/ZE8pvfT4Cl17zeqSiR6onPjNEN9awGnS2J7TYaQvrD9fQ5mlZJRVMUFA8Kdn6CUKmE1pK/yBLQD/axei0NaJZL2vQgCe8Hmt7CYLaw7ksuUPqHadF4HpRVUnq2MhnaiR4AnHq4GjuZoaOTEzVD/j5vfBClZczgXT1cjY3tpWFW1/X1AqAq8dqR3mA8lVXXklWvg/asntK/Sztm+gNKSQhJOFGlrAILSVPIKgWFztR23GYZE+iOlhrlLVgoranmi6FJqXXyVYrQWhua+byBlLcz4m0PNbXVaRjdyHOH4eoiZoOmTSEywF8HebiQ4mnwMyv1bVwFHV7DjRCFlNSbnL1IVBZC8EgZf5VQbh5aoTxB0OmQlhMqXydzJnq2rEQLO18LIydihysbHalc23hR/L1e6+XtoVy1jMKrKjJMJpOxeTX55LdP6aRC2A3VB3/KW0gqKn6HNmM1gMAjiw3wc92w2P6hal+y9cGIjaw7nMiE+GA9XjUrqaytg5ycqPy5A44qbJvSx6j4la2kEgmpVUl1C5m9vY7LIU810NSF7vzVX6d4OaU1Qf205cFLD3CVUGkCR9KFw3OOqgq6Zgg+7qCyEX59UIquj5mkzSZ1T6EaOvZRkqNLHGO1CVaBiyCOjAx1PPgaImajKqfd/x5pDubgZDc4LAB78HiwmFa9vB/w9XYkL9Xa8fL4xQ68HNx/CD3/KiKhAQrTQrthmLRsfol3ZeHP0jfDVttx12I3gEQCb30IImNxbIyPnxAYlCjnu/nbvgNw7zJfkHA3zTkCFXL1CqFr/BumFVc6fH43Z+5Wq3hp7r3ZjtkBvazjviNbr02Mk9JpC96QPCXSXp4QZNWHTf5VwaTsk7zdHkLcbob7u2nlIraw4kE2PAE+6T7tHqREv/0urrWXa5LdnVKj90tc1E9TUaUA3cuylXotGw6TjekbFBJJaUElemYMuaIMRBl4OR1ewOekEY2OD8HY2J2XvN+qpPWKwc+O0wtCeAexOL3Y+v8DDj+qB1zKxeh0XRjt/sXCrKVD5G8Nvcqqzti30jfDlWF654w1Lm+LmDaPmEVuwlmmhFdqJlW2Zr8IN7ZCf1ZT4MB8yS6q1zalw9YTRd+J5fAWxIpOxsdpoPp1Sw44YohK/25lQX3f8PFy0zVmqZ9LD+JkK+GNIonYhzsLjyuMx6nbw1Fg5uRX6RfhyOEe7h4cak5kNR/OZOSAcYXSBi19T0hprX3BswNTNqh3LeQ8qYUYdzdGNHHs5vl5d5MO0T7gcGa1yAxzWywEVsjJVE1e4kRnOupqLUiF9Kwy+pl2f2of1DCC/vNb5zsrAtpCrcRcmLjYtd3qs7pm/qrLxMe3/5Nk/wo86syQlr6LtjW2kZuQdmKSBezxWaDNg/lE48qvm4n8tUZ98fEzDNQFg9B2YhCv3uK+krxbtPkDlU+QdUmXj7ezhAuX57RPu2y5GTm7IWPZaenFF5bfq+68FW94Cg0u7VeO1RN9wX47mlGN2tGq1CXvSS6gxWZhQ7wGMHKl0ura9q8Jx9mCqUZo4AVEw5XFN5qfze3Qjxx6kVEZOr0ntkp8yqIcf7i4Gx5OPAXqOpcI9jEuNW5jez8mclH3fqH8HX+PcOG1QHzvXQsZ/ea4fW+Rguh9d3Gpn9japq6Z75nKl8BwU6/S82qKv1hVWwN4SL5ZazmNkwU+tNmC0ma1vq4a0o7VtU9AS9SGZo1qHZHzCWGGczOViHYZqDdYF1E3OK6Rdy6Kb0jvcR/u1AbYdL+Jd06UEVKWp/lLOUp6r2o0Mvb7Dk2r7dfOjxmThRIE2hvLWlAKE4PQWIDOeUZV0Pz2itIZsZeN/If+I8gbpmjjthm7k2ENBMpRltkuoCsDdxcjQyAB2OJOXYzCw3nUiU417ifJyoouzlCrHIGo8BGrcfK4J/SJ8cTEI9migabHxaD4J4dciyjKdu0Dv+xq3uhKVe9IBxIZ6YxBwTMMn820pBSw0XYSLuVLpnziBa20p7F7cbuJ/zREV5IWrUWibfAxkl1TzRsVM3GW1ChU4S2EKHFmukkY1buHQGrEhPhRV1lFc6WS39iZsTSlgo+t5yKBYdSN2Noy87V3ltTjvT9pM0A7q5Rm0SurfdryAfhF++Hs1UlH3CoLzn4X0rfQ4+YttA2XugvUvqQfI3jM1mZtO8+hGjj0cr8/H0aYDdXOMjAnkwMkSx5p1AuU1Jj4oHo4rJqXX4Sjp29VTxrAbHR/DRjxcjfTr5ss+J42ctIJK0gor8RsyW7mAt7/n2EBSwpb5lPn0ajeDtinuLkaigrw0Dc1sTSnEEj5YfYZGIniO0C3rVyX+N77jwg0uRgM9A71IK6jUdNztJwo5JKMo736e+o4009jWvgHfV/lwHeThqic6WFUopWq8PtuOFzIiJhhx3h8hc6fyXjtKdSls/0DJW4TEazdJG4kP88EgtJFnqDVZSEwtal5yYPhNED+T2JSPIe9I6wPVVcH/7gHvUJj9stPz0mkd3cixh+PrwS+yXcMXo51s1rnxaB6Jplgq/eNPk/a3m12LVG+ugVc4PoYdDO4RwN4M55KPNx1TSq0T+oQrccDUTarPjL0cWwV5h8iInNMh+RX1xIX6cEwjr0X9BXlcbDCM/4PyQFpF8OzGVEOPkz8rnZmw/prMz1aig700v4nvSivCw9WA56Q/QOlJ5x4GaspUKGbgFeCroaK0DUQHqxCHVqEYUC1AknPLGRUdCENvUA0pN/3X8QETP1JK7BMe0myO9uDhaiQmxJtDGlQu7jtZTHWdhXGxzRg5QsCc+ZiNHvDVXKhq4fotJfz8KOQfhjlvdWgSdlel3YwcIcTLQohDQoi9QojvhRABjd57UgiRLIQ4LITQrhlSe2KxwPEN6qm4HW98zjbrXH0oF18PV9xH36o0XnIP2T9ITRns/x4GXQHuGiVmtsHQSH9Kq01O3dA2JucT7udOXKiPaozo7tdsZ+U22TIffCLIDdNe/LA14sJ8SMmv0CRJct/JYqrqzOqCHH8+hPQ5JYJnN/u/w722qEO9OPVEB3uTWlChqbLvnvRiBvfwx9h3FgTFwdZ3nBjsS6gp7ZCy8aZEBSlPjpaernpRzmE9A1Xobdx9cGy1Yw8LddXqXIqdCj2cb2TsKKrCynlPztYUdU0e06uFijzfcA4MfFxVkn11k9JNasr6l5VRPPnP6rzUaXfa05OzEhgkpRwCHAGeBBBCDACuBwYCs4C3hRBnvjhAzn6oKlTtE9qR+madCQ7k5VgsktWH8pjaNwzjsBtUNYMj3pwD3ytRweHad1BuicHW1hN7HUw+tlgkm5PzmRgfqhSePQNUFdDBH9t2Hzcme5+6qI+9G2nQoHu5HcSFelNrsnCyyPkqs/rk9VExQb8TwbMLiwU2vU65dzTETXd6XvYSHexFRa2Zggpt8k7qzBb2Z5aqFhcGg7qJn0xQ4Vl7sVhUGLDHSIgcpcn87MHTzUiEnwcnNDRy6kU5689HRs1TDwsbHfDm7P1SlVdP/D/N5ucIfcP9SCuspLLWiUIEVBivb7gvQd4tN2UuCRgEc+YrL/JHs1XuDSjBvyV/gDXPKc2taX9xai46ttNuRo6UcoWUsv5btRWItP4+B/hSSlkjpTwOJANj2msemlEfl9ZYBLA5RsUEOdSsc+/JEvLLa1TpuE+okvffs9i+XAwpVTPKkL7Qs+P+W/qE++LuYmCvg2G6g1mlFFXWMbF3o6es8Q+Ai4eSkreVtS8o8b9OUB5tKJl2PmS1O72YnkGeDYKIQ65T1T9b5ts30JFfIe8QaVFXdmjorp6GvBNtQjKHssqoNVlOtRNh6A3g4W//ugCkrIaCo53ixaknKthLs7UB9b2JC/XG39Nq4HtYz4WDP6gEa1sx18GGV6H7iHbNYbSFft18kRKOOKEOXWe2kHCikLHNhaqaMvQ6uO5zKEmH96bCS7Hwcrzy4Ex4CC5/u1POpa5K+3ZIa2Ae8JX19x4oo6eeDOtrpyGEuBu4+//Zu+/4OKsr4eO/O0Ua9d5sSZabjAvuGIIJmE6AACFkCSkQdgnZBLJJ3kAa2V0gCdlkX5J9UzaNhLKQJYQSDKFjjE2zsUGusi3Zli1ZsnqXRtPu+8czKrZVRtPL+X4++ljzaPTM1fWU89x77rkARUVFbNy4MWSN6+vrm/L8p+98mpSUGWz9sAaoCVlbANIHnfTaXTz29zcoy/A9Dn2qxoECLK0H2LixhlzLSpYOPEf1k/fRXLzOp3NYj38AjR9yYP4/0/jmm/79AX4qTYPNe46wMb1l2r/7wiEjkFPNB9i4sXbk+Lyii5i543G2Jq9lMLV0ol8HIL33IKv3Pc/hihs4smWHT8+LYOpzGEHtS+/uQB0PbBRpS+0A87NNJ7S/ouAiKg48zpYXHp2yLwDQmhUf3k2SrZDDqStoCWNfDGvuM5bkvvTWdnoPBz6ytuGokWQ82LCPjR3GCN+cggsp2/s33nvpCYZsvq0c6+vro/2Fn5GelMN7bTnoCPQNQLJjiJ1t7qA8T7XWbD04wOn5lhPOl+RZxlmYaHryu9RUfvmU3xvvdVLc9BqndR1lV+mNtIf5feRk3QPGc+jZN9+nq9S/59DBLjcDDjfpg8fZuLFtwvuN9kUqlhX/j8KWTaT3HcFRkEVrwTn0W2fBps1+tSHWhPv9c0Jaa7+/gNeA3eN8XT3mPncBzwDKe/vXwOfG/PyPwCcne5xVq1bpUHrjjTcmv4PTrvWPZmj93DdC2o5hdW19eta3n9ePvFs3rd+77L826U/95p3RA2631r9ao/V/r9Xa4/HpHM2/+pjWPy7TeqhvWo8dDP/2t1164b++qF1u39o61uceeE9f/LONp/6gt1nr+0q1fvS6yU/g8Wj90JVa/7hc68EurbUPz4sQWHnvK/rbT+4I6BzHuwf1rG8/rx/YfOjEH/Q2a31vgdbr/8W3Ex3apPW/Z2q95fcR6QuttbY7XbriO8/r+1/ZH5TzffOJKr3y3le0Z+zroate63tytX7+//h8nq3PPWj0zRv/EZR2+etXG2r0rG8/r/vszoDPVd/Rb7zvvHP41B8+9w2jj9pqT/nRKc8Nl1Pr/1qq9W/P9fl9J5Tcbo8+7fsv6nvW7/H7HL/ZWKtnfft53dJjn/R+kXqdRKNQ9wWwTfsQpwQ0XaW1vkhrvWScr2cBlFI3AVcCn/U2CoyRm7G715UCjYG0I+SOvAOOvrDVMyjPTaUgI5ntdb4nHzd2DVLd1MOFC8dciZpMxk7Rzbvg0BtTn6T9IAWt78LKmyJSnGppaTYDDjeHpjldY3e62Xq4Y7QK6VjphXDet4yNAfe/NPHlmVuiAAAgAElEQVRJdj5hTEle+K/GEH2EBGOF1YdHh5NHT9p3KL0QVnzWGDZvqx3nN8fQGl6/B9KLjeWxEZJsMTMjKyVoUzJV9V0sL8s28raGZZXCis8btYS66n06T0Xd40auypmh3W18KsFcRj68onPZePtVnfdtoxDk6/dOfaIdf4bOOuN3omBaxmRSVBalB7S9w5ZD7cwtSKMgI0jbo4iwCeXqqsuAbwNXaa3HvgLXA59WSiUrpWYD8wE/sv7CqOZV4wUeppopSinWVOTy3qEOn1eVvL7PmOI5IcgBb/G2Ynjzp1OvrHnjPjwmqxEYRcDS4eTjadbL2X6kkyGXh4/On2CzxTVfMrbhWH879B4/9ec9TfDy94xdgFdFdhfguYVpAdfKqarvwmpWLJ6ReeoP133XyFN69d8mP8nevxmr8y74fli2cJhMsJaR99idHGztG/9D/Nw7jA/kTT7ULWneQ0Hbu0YuToSXAFd4l5Ef7Qg8CNxR30WSxcRpxeM8bzKKYO2/GM+LyermDHbCa3dD2ZlGTmCUqCzK8LsgoMvtYVtdZ/D2ORNhFcrVVb8CMoBXlVJVSqnfAmit9wBPAHuBl4DbtNZB2iAlRGpeNnb4DuPoxjnz8zneY6fWxwq4G6qbKc9NNZZPj2VJhvPuhKPvGlVZJ3J8F+x+kobSjxtvaBEwpyCd1CTzyDJWX71V24bFpCZe2mlJguseNJZ0/u8NMDSmT+3dRl0L56BRtyIE23VMx9yCdDr6HXQEsJqoqr6TRSWZ2KzjLFpMLzRWu+z/+8TPh6FeIwgqXBSWYpBTGV5GHqjdx7rRejSYPkFWKaz6AlQ9Bu0HJz/Rmz/BZU4xVmZFWLl3JCcYK6x21HezeEYmSZYJXgNn/4tRI+zZ24znyHhev9cIdK64PypGcYYtKM6grc9BW9/0Nz/e29RD75DLqDklYk4oV1fN01qXaa2Xe7/+eczPfqS1nqu1XqC19rEOdoS0HzS2c6gMbzmfc7xTL5tqJk5yGzbgcPH2wXYuXFh44jD8sJU3Qd58eOFOowLpyTxueP7/QEoO9WXhKf43HrNJsWRm1rSXkb9d28aK8mzSJ9txvfA0+OQfoakKfneuMT2143F44GKjBsgn/xD2QnfjGQ5SpztlN8zt0exs6D51qmqss78KhYvh2duNUayxtIYXv21M21z5c6OSb4TNykulc8BJ92BglYn3NhrP/cUzJpiO/OgdYE01Nk2caNTz8CbY+yz1ZdcY5fwjLNNmJTctKeAg0OPR7G3qYclEfQOQlArX/MZ4bjz3dWMJ/Vh7/maszDzzy1B8ekDtCbbh0akDfozmbPHWxzlrvErHIupJxeOp1Lxq/Bvm/UXKclOZk5/G5prWKe/7Vk0bDpeHCyfakNNsNd6cehrgpe+c+gb+5k+hYSt87Ke4rOnjnyNMls7MYm9jD063bxvddfQ72HWse/x8nJOddjnc9Bx4nPD0F+GZL4F7CD77JJx2RYAtD47hIMffvJwDzb0MONwsL58kyLEkG0Gdox8e+9ToFJ7WsPHHxmjGuXdA+Vl+tSHYKvKCU/SuuqmXgozkifMqMorg4nuhbjNsf+jUnw/1GgFQTkVELwZOFozpvIbOQfqGXCwab4pzrPKzjCnM3U8a07+OftBu+PAx4zVVegZc9O8BtSUUKouN15U/RQG3HG5ndn4ahZnh25dMBE+4lpDHrpqXjVGQMOxEfbKPzs/niW0NDLncJFsmvqJev6OR7FQraya70ig7Az76TSPnwJYNF91tFAt877/hzf+AZZ8xNouL8HLPpWXZDL11mAPNvRNfcY/xdm0bWsO5lQW+PUDFOXD7dmitBmWGgtPAHD0vg5k5KSRZTH7n5Qwnjy4vmyJXpGgxXP8I/OXz8N8fMQLA1gNGsLvsBlj3Pb8ePxTKc0e3Lzh9vKkmH+1t6mFhyRQf4itvMophvvgtyJsHs711sdxOeOafjYTam57HUxfgfldBNCs3lffrAttNfW+TMXo6Zf+A8T7idsCbP4Hq5zkLCwy1Q+ka+MxfjCA6yhSkJ5ObljTtvBy3R7P1cAeXnx7e3dNF8MhIzmQGOozh6dMuj8jDn1tZwKDTPVJOfDzdg05e2dvMVctmTDyXPmzd94w9nd77NfzsNPivJfDKXbDw4/Dx/4qKOfSlM40PMV8369xc00qmzTLyez6xJEHJMiheElUBDhhTdnPy03zOxTpZ1dEuslOtI6Mfk5p3EdzyOsw621h5NtQLV/zMGPWLcG7SWMMriI52+D9a4XB5qG3pZdFUH+ImE3zqIcipgP/5BLzxY9i7Hh65xtjV/tIfQ8Vav9sRCuV5aTR2DzLk8j+1cW9jDyYFC4p82MZFKTj/e/BPr8LCj9ObUQn/8D/wjy9HxRTeeJQyVlhNd6POfcd76LG7fCsCKKJSdL3DR5vq9eBxweJrI/Lwa+flk5Zk5qXdTZw3wUjFC7uacLg8fHKlD8XdTCa44v/C/EuMVRJDvcbw/OJro+ZDbVZeKpk2Czsauvn0FAWXtdZsOtDGOfPzsZijo/3BMLcwnd1+bm9RVd/FstLs8XOzxlO0CD79mF+PFS5pyRby05MCmq6qbenD6dYsLPHhQzw1F/7pFSNn6c3/MI7ZsuHq/zaW4EeZWbmpaA3HOgeZc/LCAx/tbeplTkE6KUnTyMEqWwNla9izcSPrFq3z63HD6bTiTP66rR6PR2My+fb6GM7HOXOiRQ0i6kmQM5ndTxvTVCXLIvLwNquZCxYW8fKeZn5wtWfcD/KnP2hgbkHa+CtGJlJ5ifEVhZRSLC3N9mkX9tqWPo732PnofB+nqmLEvIJ0XtzVhN3pHn+F1AT6hlwcaOnlsiXh3Q07HMpzUzkSwDLp6qbhpGMfpmPAWBr+6ceMJNv+FihYaCTeRqHhFVZHOgb8DnKqm3pYOSu+d8ReUJxBv8PNsa5BynJ9+79871A7ZbkpzMiObBkF4b/4ufwNtr4WIwFxyScjOo1z5dISOvodvLH/1ATkurZ+3q/r5JOrSn2/co8BZ87Opbqph84pllEPrzybsD5OjJpXmI5Hw6Fp5uXsbOhCayZPOo5Rs/LSqO/wf+PS6qYeki2mkboyPssuMzbgjNIAB4yRHPA/MbtrwMGxrsGpp/JiXKV3Ks7XvByPR7O1roOzZBQnpkmQM5EPHgbtgdP/IaLNuOC0Qooyk/mf946c8rM/vX0Yq1lx7QofpqpiyNnzjDeV9w61T3q/TQdamVOQRmlO9H4A+WN4o87aaa6wGkk6Lo2/IKc8NzWgvJO9TT2cVpwRV9OawwoykrFZTX7nLFU3GR/6U66sinELir1Bjo8rrA609NI14JQigDEu/l7xweB2wvt/gjnnQ0FlRJtiNZv4zJpZbDrQekKexvFuO4+/X88nV5ZSnBVfSxuXlmaTlmTmnYMTBzm9difvHmzn/AW+bagYS2bnp2FSTDv5uOpoFxV5qeSkJYWoZZFT7s07aeic/miO1ppqX1ZWxSillDGd5+dIzl7vVJ5P+UoxLD3ZQmlOis/Jx6P5OJJ0HMskJ2c81c9BbyNc+bNItwSAL6yt4OF367j3ub38+YtnYjYpvv+3XSjgK+vmRbp5QWc1m1gzO5d3Dk5cCHHDvhYcbg+Xnx5/+Sc2q5ny3FQOTiPI0VpTVd/F2XPj86pz1phaOadU9Z7C8R47nQPOuB6pKM9N83trh72NPeSnJ1OYEV8XS+NZUJThc0HALYfbmZmd4nP+Tjg5nU4aGhqw2+2RbsqEsrKyqK6uDvg8NpuN0tJSrFb/dpCXIOdkWsPb/wU5s41VSFEgK8XKdz52Gt96cidffGQbmSlWXqtu4ftXLBxJOow3Z8/N54391Rzvto87UvXCriaKMpNZMVU9mBg1rzCdmhbfl7s2ddtp6R2avNJxDCsPYBl59chIRfwGObPyUnmrthWt9bTz86qbeuI6ABxrQXEGbx5oxeHyTFpyQ2vNlkMdE65qjbSGhgYyMjKoqKiI2nzM3t5eMjICGx3UWtPe3k5DQwOzZ8/26xwyXXWy6vVGmf/zvhUVJe2H/cPqMv7944t452A7L+46zu3nz+OfzvHvPz0WnLfAeHN5tbr5lJ/1D7nYuL+Vjy0p8XkpaKyZW5jO4bZ+XD5Wfh7JxymPz6CvID2ZFKvZrymZ4e0cTiuO3+mY8txU7E4Prb3T25vJ4fJQ09Ib91NVwxaWZOLyaA5MkZezv7mX9n5H1O5XZbfbycvLi9oAJ1iUUuTl5QU0YiUjOWP1txn7OxUuinjC8XhuXjubG9aUA0xraXEsml+YztyCNF7Y2cTnz5p1ws9e2NXEkMsT11VI5xWk43Rrjvq4LLiqvosksyluP6yG8078mZKpbuqlPDeVDJt/w92xYOwy8ulsPzBcPyjeV1YNGx7p3NHQxZJJCohuPuBduVkZvSs34z3AGRbo3ykjOdsfpqBlMxzeDA9fBYNdcO0foq4S7jCb1Rz3AQ4YT+wrls5gy+F2jnefGMU/uuUo8wrTOaMiPkctAOZ7l7v6mnxcVd/FohmZk27/EevK81L9nq6K9w9xf5eRT7t+UIwrzUkhJ9XKjinqcG2qaWV+YTolWVIfZyLp6SdefD300EPcfvvtEWrNxBI7yNEatj/I4r3/Fx6+Egba4IY/G+X+RcRd563i/OA7h0eObTnUzo76Lj53ZnlcX8nMLTDqufiyjNzl9rBrqp3H48CsXCPI0RPtED6OAYeLw+39cZ2PA8aeZ0oZIznTsdff+kExSinFsrJsdk6ybYzd6Wbr4Y64KzIabVwuV1geJ7GDHKXgltfZsfQeuO5B+Op2Yz8fERXK81K5YukMHnvvKC29dlxuDz/4+15Ksmxcf0Z5pJsXUhk2KyVZNp9Wghxo7mPQ6WZFHBYBHGtWnpF30jKNvJN9x3vROv6XRydbzMzISuFo+/Sm8/Y2xm/9oIksK83mQHMvvfbxN1l9v66DIZcnqqeqot1zzz3H+eefz4oVK7joootobjZyK++++25uvfVWLrnkEm688Ubcbjd33nknZ5xxBkuXLuV3v/td0NsSnXMy4WQy05m7HJasi3RLxDi+ftF8XtlznJsffJ/iTBu7j/Xwq8+smN4eOzFqYUnmSA2TyYzuPB7fQU65d7ThSPsART7mnQwnHSfC6qHy3OlN52mt2dvUE5dlGCazZnYuHg3b6jo5/7RT62xtrmkjyWyKmfo49zy3Z+R5HiyLZmTy7x9fPOl9BgcHWb58+cjtjo4OrrrqKgDOOeccNmzYQGZmJg888AA//elPuf/++wHYvn07b731FikpKfz+978nKyuL999/n6GhIdauXcsll1zi90qq8UiQI6La3IJ0/vuzK/nmX3dwsLWP711+GlcunRHpZoXF4hmZvHmgdco9rKrqO8lNS6I8Cut5BNPw33e0Y4A1Pn4AVTf1kGmzMDMB9h4qz03l9X2nrkacSGO3ne5BZ9xP5Z1s1awckswm3j3UPm6Qs+lAK6srckhNko/HyaSkpFBVVTVy+6GHHmLbtm2AscT9a1/7Gq2trTgcjhOClquuuoqUFOP1+Morr7Bz506efPJJALq7u6mpqZEgRySWCxcWse2ui/BoJq1tEW8Wz8jC7dHsO9476SiNsfN4VlznKAHMzE7BpJjWlMyeRqMGTLz3DRjTu219DvqGXKQnT/3WvsdbQX3xjGls7hsHbFYzy8uzx9025mj7APuO9/K9y0+LQMv8M9WISyR89atf5ctf/jLXX389Gzdu5O677x75WVraaP6X1ppf/vKXXHrppSFrS+J8YoiYZjGbEirAgdEVL2O38zhZ94CTmpY+VsRpfZyxkiwmZmSn+JxcawSIPSwqSYwP8eGq0PU+9s/uxh6Uiv98pfGsnZvPrmPdtPSeuHLzhd1NAHxsSfyWpwiH7u5uSkqMPnz44YcnvN+ll17Kb37zG5xOIz/qwIED9Pf7V7l7Ion1qSFEDCnNSSErxcqeSebb3z3UjtbwkTjdzuFks6axjPxwWz92pych8nFgdDrP14KJexu7mZOflpDTMh87vRit4aXdx0eOaa15bkcjS0uzonIrh1hy9913c9NNN/HRj36U/PyJE7hvueUWFi1axMqVK1myZAlf+tKXgr7qKvGe3ULECKUUi2dksqdx4pGcdw62kZpkZlkc7jw+nvLcVF7Z41veyd4EqwEzK9eYBvC1YOKexh6fc5viTWVRBpVF6Ty3o5EbP1IBGAnHexp7+NEnpISIL/r6Tixv8YUvfIEvfOELAFx99dVccMEFp2zrMHbaCsBkMnHfffdx3333haydIR/JUUrdoZTSSql8722llPqFUqpWKbVTKbUy1G0QIlYtnpHJvuO9OFzjb+/wdm0ba2bnJsxUXnluGu39Rt7JVPY0dpNkNk17Q89YlZVqJSvF6tNIV3vfEE3d9oQJAMfzyZWlvF/Xyft1HWit+flrB5iRZeNTq8oi3TQRRCF9Z1RKlQEXA0fHHP4YMN/7dSvwm1C2QYhYtrI8B4fLw65jp1ZoPd5t52BrP2vnJk49j+G8k7q2qUcr9jb2ML8oPWECQICKvFQO+9A3w1OgiZZ0PNaNH6mgMCOZf3t2D7/aUMuHR7u47YJ5CfV8SQSh/t/8OfAtYGyJ0quBR7ThPSBbKSVZXkKM40zvBoHvHjx1Jcjbtcb+OmfPS4x8HGBkVObgFJWgtdbsbYz/7RxONq8wg5rmqatkjwY5idU/Y6UkmbnvE6dT29LL/a8e4NzKAv5htYzixJuQ5eQopa4Cjmmtd5y0fHMmUD/mdoP3WNNJv38rxkgPRUVFbNy4MVRNpa+vL6TnjyXSF6OipS/KMky8sL2WJaZjJxz/3w/tZCcrmvd/QOuB0C6Rjpa+cHk0ZgWvbt1DVlfNhPfrsnto73eQNNASknZHS3+czNznoKXXyd9ffYM068TPiTeq7OTZFFVb3wn4MaO1L3xhAX76URsdds3srH7e3rwpoPOFqy+ysrLo7Z26Gnokud3uoLXRbrf73a8BBTlKqdeA8cpl3gV8D7hkvF8b59gpm9ForX8P/B5g9erVet26df43dAobN24klOePJdIXo6KlLy7u3ctjW45wxkfOIc1b/8TudPOVDa9yzYoyLjj/9JC3IVr6AmB21ZsM2dJYt271hPd5Y18L8D5Xn7sqJMm10dQfY3mKm3niwDaK5i9jdcXEf/e92zayak76pH3oq2jti0gIV19UV1efktQbbXp7e4PWRpvNxooVK/z63YCmq7TWF2mtl5z8BRwCZgM7lFJ1QCnwgVKqGGPkZuyYYCnQGEg7hIhnly4uYsjl4fV9LSPHNh1oZcDh5uJFRRFsWWRUFqVT0zz5FeKuY90JWQNmfqHx99ZMsnt935CLQ239LJmZuPk4InGEJCdHa71La12ota7QWldgBDYrtdbHgfXAjd5VVmcB3VrrpsnOJ0QiO6Mil6LMZNZXGdcCWmt+9UYtM7NTEirpeNj8wgyOdAxgd7onvM+HRzuZV5BOhs0axpZF3szsFFKsZg5MEgRWJ9jSehEa6emxsWoxEmnkL2CM9NQCfwC+EoE2CBEzTCbFNStmsmFfM7uPdfPq3mZ2NnTztYvmJ+RKkMqiDLSG2glGK7TWVNV3xf2u7OMxmRTzi9In7BuAXQ2JuZ2DSExheYf0jui0eb/XWuvbtNZztdana623haMNQsSyr5w3j9y0JD79+/e488mdzM5P49oVMyPdrIioLDKuIGtaxh+tONI+QOeAMyG2uhjPvML0SUdyPjjayYwsG8VZvu3kLoQvent7mT179sgWDT09PVRUVOB0Olm3bh3f/va3WbNmDZWVlWzevBmAn/3sZ/zjP/4jALt27WLJkiUMDPhWsdtXUvFYiBiQlWrl59cv565ndjOvMJ3vXb4QiznxRnEAKvLTsJoV+4+PP1pRVW/UFJpsU9N4VlmUwdMfHKN7wElW6qnTdR8c6WTlrMQMAOPSi9+B47uCe87i0+Fj/zGtX8nIyGDdunX8/e9/55prruGpp57ik5/8JFar8Rx0uVxs3bqVF154gXvuuYfXXnuNr3/966xbt45nnnmGH/3oR/zud78jNTW4W2ok5rukEDHoo/ML2PSt8/nTF85gXmFszIeHgtVsYl5hxoTbXXx4tJPUJDOVRYmVdDzsdG9C8c5xCkg2dg3S2G1ntQQ5IgRuueUWHnzwQQAeffRRbr755pGfXXvttQCsWrWKuro6wNjW4aGHHuLzn/885513HmvXrg16m2QkRwgRc1aUZ/PcjkY8Ho3JdGJViu1HO1lamoXZFNraQdFqaWkWSsGHR7v46PyCE372fl0HgIzkxJNpjriE0tq1a6mrq+PNN9/E7XazZMnoPmDJyckAmM3mEzbhrKmpIT09ncbG0CyylpEcIUTMWVGWTa/dxaG2E6esWnuH2H2sh3PmJd6qs2EZNivzC9P58GjnKT/buL+V3LQkSToWIXPjjTdyww038LnPfW7K+3Z3d/O1r32NTZs20d7ezpNPPhn09kiQI4SIOcNJxR8cPXFKZuN+o5bQugWFYW9TNFlRlsOH9V1oPVpn1e3RbNzfwnmVBQk7yiWCZ2BggNLS0pGvn/3sZwB89rOfpbOzk+uuu27Kc3zjG9/gK1/5CpWVlfzxj3/kO9/5Di0tLVP+3nTIdJUQIubMyU8jO9XKlkMdJ+w39Mb+FooykxO+Bsya2bn8ZVs9exp7Ror+7WjoonPAyfmnJXYAKILD4/GMe/ytt97iuuuuIzt7NPF/7JYM+fn5Izk5f/rTn0aOl5WVUVtbG/R2SpAjhIg5JpNiXWUBG/Y143J7sJhNON0eNh9o44qlJZy0X17COf+0QkwKXt3bPBLkvLGvBbNJcd5JeTpCBMtXv/pVXnzxRV544YVIN2WETFcJIWLSJYuL6Rxwsv2IkXvyzsF2eodcXCAjFeSmJbF6Vi6v7m0GjAKJL+xqYtWsnHGXlQsRDL/85S+pra2lsrIy0k0ZIUGOECImnVdZQLLFxFMfNADwyDt15KRaOW+BjFQAXLakmL1NPeyo7+LlPc0cbO3nU6tKI90sIcJKpquEEDEpLdnCDWvKeeTdOuo7Bnn3UDt3XrqAZIs50k2LCtetLuWXG2r4xhNVdA84WViSyTUJWiU7HmmtE2JadmzyvD9kJEcIEbPuvHQBC0syefdQO9eumMmXzp0T6SZFjUybUSW7pWcIpeD/fmop1gStkh1vbDYb7e3tAQcA0U5rTXt7Ozab/1uQyEiOECJmpSVbeOrLZ3OotZ+FJRkJcWU7HesWFPLBv16MSZGw24DEo9LSUhoaGmhtbY10UyZkt9sDCk6G2Ww2Skv9n2aVIEcIEdNsVjOLEnzJ+GQScaf6eGe1Wpk9e3akmzGpjRs3smLFikg3Q6arhBBCCBGfJMgRQgghRFySIEcIIYQQcUnFQna2UqoVOBLCh8gH2kJ4/lgifTFK+mKU9MWJpD9GSV+Mkr4YFeq+mKW1nrIoVkwEOaGmlNqmtV4d6XZEA+mLUdIXo6QvTiT9MUr6YpT0xaho6QuZrhJCCCFEXJIgRwghhBBxSYIcw+8j3YAoIn0xSvpilPTFiaQ/RklfjJK+GBUVfSE5OUIIIYSISzKSI4QQQoi4lNBBjlLqMqXUfqVUrVLqO5FuT7gppf6klGpRSu0ecyxXKfWqUqrG+29OJNsYLkqpMqXUG0qpaqXUHqXU17zHE64/lFI2pdRWpdQOb1/c4z0+Wym1xdsXf1FKJUW6reGilDIrpT5USj3vvZ2QfaGUqlNK7VJKVSmltnmPJdxrBEApla2UelIptc/7vvGRBO6LBd7nxPBXj1Lq69HQHwkb5CilzMCvgY8Bi4AblFKLItuqsHsIuOykY98BXtdazwde995OBC7gm1rrhcBZwG3e50Mi9scQcIHWehmwHLhMKXUW8BPg596+6AT+KYJtDLevAdVjbidyX5yvtV4+ZnlwIr5GAP4f8JLW+jRgGcbzIyH7Qmu93/ucWA6sAgaAZ4iC/kjYIAdYA9RqrQ9prR3A48DVEW5TWGmtNwEdJx2+GnjY+/3DwDVhbVSEaK2btNYfeL/vxXjDmkkC9oc29HlvWr1fGrgAeNJ7PCH6AkApVQpcATzgva1I0L6YQMK9RpRSmcC5wB8BtNYOrXUXCdgX47gQOKi1PkIU9EciBzkzgfoxtxu8xxJdkda6CYwPfqAwwu0JO6VUBbAC2EKC9od3eqYKaAFeBQ4CXVprl/cuifR6+S/gW4DHezuPxO0LDbyilNqulLrVeywRXyNzgFbgQe805gNKqTQSsy9O9mngf73fR7w/EjnIUeMck6VmCU4plQ48BXxda90T6fZEitba7R16LsUY9Vw43t3C26rwU0pdCbRorbePPTzOXeO+L7zWaq1XYkzz36aUOjfSDYoQC7AS+I3WegXQT4JMTU3Gm5t2FfDXSLdlWCIHOQ1A2ZjbpUBjhNoSTZqVUiUA3n9bItyesFFKWTECnMe01k97DydsfwB4h+A3YuQpZSulLN4fJcrrZS1wlVKqDmNK+wKMkZ1E7Au01o3ef1swci7WkJivkQagQWu9xXv7SYygJxH7YqyPAR9orZu9tyPeH4kc5LwPzPeukkjCGGJbH+E2RYP1wE3e728Cno1gW8LGm2fxR6Baa/2zMT9KuP5QShUopbK936cAF2HkKL0BXOe9W0L0hdb6u1rrUq11BcZ7xAat9WdJwL5QSqUppTKGvwcuAXaTgK8RrfVxoF4ptcB76EJgLwnYFye5gdGpKoiC/kjoYoBKqcsxrsrMwJ+01j+KcJPCSin1v8A6jN1im4F/B/4GPAGUA0eBT2mtT05OjjtKqXOAzcAuRnMvvoeRl5NQ/aGUWoqRJGjGuBB6Qmt9r1JqDsZoRi7wIfA5rfVQ5FoaXkqpdcAdWusrE7EvvH/zM96bFuDPWngMNZQAACAASURBVOsfKaXySLDXCIBSajlGMnoScAi4Ge/rhQTrCwClVCpGnuscrXW391jEnxsJHeQIIYQQIn4l8nSVEEIIIeKYBDlCCCGEiEsS5AghhBAiLkmQI4QQQoi4JEGOEEIIIeKSBDlCCCGEiEsS5AghhBAiLkmQI4QQQoi4JEGOEEIIIeKSBDlCCCGEiEsS5AghhBAiLkmQI4QQQoi4JEGOEEIIIeKSBDlCCCGEiEsS5AghhBAiLlki3QBf5Ofn64qKikg3QwghhBBRYPv27W1a64Kp7hcTQU5FRQXbtm2LdDOEEEIIEQWUUkd8uZ9MVwkhhBAiLkmQI4QQQoi4JEGOEEIIIeJSTOTkhJLWmp0N3XQMOMhJTWJeYTrpyQnfLUIIETZOp5OGhgbsdnukmyKijM1mo7S0FKvV6tfvJ/ynuduj2dPYA0BTl50Dzb2sqyygMNMW4ZYJIURiaGhoICMjg4qKCpRSkW6OiBJaa9rb22loaGD27Nl+nUOmq07icmvePNBK/5Ar0k0RQoiEYLfbycvLkwBHnEApRV5eXkAjfBLkjMPp1rx7sB2tdaSbIoQQCUECHDGeQJ8XEuRMoKV3iIOtfZFuhhBCCCH8lPA5OZPZ2dBNRV4aFrPEgkIIES5/3nI0qOf7zJnlU96noaGB2267jb179+J2u7n88su5//77SU5ODmpbgumvf/0rd999N9XV1WzdupXVq1cDRiL3LbfcwgcffIDL5eLGG2/ku9/9LgA///nPeeCBB1BKcfrpp/Pggw9is9nYsGEDd9xxBw6Hg1WrVvHHP/4Ri+XUEOHhhx/mhz/8IQDf//73uemmmwBYt24dTU1NpKSkAPDKK69QWFjIQw89xJ133snMmTMBuP3227nllluoqqriy1/+Mj09PZjNZu666y6uv/76oPeRfHpPwu70cLC1P9LNEEIIEUJaa6699lquueYaampqqKmpYXBwkG9961uRbtqklixZwtNPP8255557wvG//vWvDA0NsWvXLrZv387vfvc76urqOHbsGL/4xS/Ytm0bu3fvxu128/jjj+PxeLjpppt4/PHH2b17N7NmzeLhhx8+5fE6Ojq455572LJlC1u3buWee+6hs7Nz5OePPfYYVVVVVFVVUVhYOHL8+uuvHzl+yy23AJCamsojjzzCnj17eOmll/j6179OV1dX0PtIgpwp7DveI7k5QggRxzZs2IDNZuPmm28GwGw28/Of/5xHHnmEvr4+9uzZw5o1a1i+fDlLly6lpqYGgEcffXTk+Je+9CXcbjcA6enp3HXXXSxbtoyzzjqL5uZmwAg+lixZwrJly04JTPyxcOFCFixYcMpxpRT9/f24XC4GBwdJSkoiMzMTYOSYy+ViYGCAGTNm0N7eTnJyMpWVlQBcfPHFPPXUU6ec9+WXX+biiy8mNzeXnJwcLr74Yl566SW/2l5ZWcn8+fMBmDFjBoWFhbS2tvp1rslIkDOF/iE3x7oGI90MIYQQIbJnzx5WrVp1wrHMzEwqKiqora3lt7/9LV/72teoqqpi27ZtlJaWUl1dzV/+8hfefvttqqqqMJvNPPbYYwD09/dz1llnsWPHDs4991z+8Ic/AHDvvffy8ssvs2PHDtavX39KO3p7e1m+fPm4X3v37vX577nuuutIS0ujpKSE8vJy7rjjDnJzc5k5cyZ33HEH5eXllJSUkJWVxSWXXEJ+fj5Op3Nkj8gnn3yS+vr6U8577NgxysrKRm6XlpZy7Nixkds333wzy5cv5wc/+MEJgwNPPfUUS5cu5brrrhv3vFu3bsXhcDB37lyf/0ZfBSXIUUrVKaV2KaWqlFLbvMdylVKvKqVqvP/meI8rpdQvlFK1SqmdSqmVwWhDKNW2SAKyEELEK631uKt4hj+oP/KRj3Dffffxk5/8hCNHjpCSksLrr7/O9u3bOeOMM1i+fDmvv/46hw4dAiApKYkrr7wSgFWrVlFXVwfA2rVr+cIXvsAf/vCHkVGfsTIyMkamdU7+WrRokc9/z9atWzGbzTQ2NnL48GHuv/9+Dh06RGdnJ88++yyHDx+msbGR/v5+Hn30UZRSPP7443zjG99gzZo1ZGRkjJuPM96sxnC/PfbYY+zatYvNmzezefNm/ud//geAj3/849TV1bFz504uuuiikRyeYU1NTXz+85/nwQcfxGQK/rhLMM94vtZ6udZ6tff2d4DXtdbzgde9twE+Bsz3ft0K/CaIbQiJpm47duepT0ghhBCxb/HixSOjGMN6enpobm5mwYIFfOYzn2H9+vWkpKRw6aWXsmHDBrTW3HTTTSNByP79+7n77rsBsFqtIx/+ZrMZl8uou/bb3/6WH/7wh9TX17N8+XLa29tPeMxgjeT8+c9/5rLLLsNqtVJYWMjatWvZtm0br732GrNnz6agoACr1cq1117LO++8AxiB3ObNm9m6dSvnnnvuyFTSWKWlpSeMxDQ0NDBjxgyAkcTijIwMPvOZz7B161YA8vLyRpK3v/jFL7J9+/YT+viKK67ghz/8IWeddZbPf990hHK66mpgOHPpYeCaMccf0Yb3gGylVEkI2xEwreFox0CkmyGEECIELrzwQgYGBnjkkUcAcLvdfPOb3+T2228nJSWFQ4cOMWfOHP7lX/6Fq666ip07d3LhhRfy5JNP0tLSAhhJuUeOHJn0cQ4ePMiZZ57JvffeS35+/ilTN8EaySkvLx8JxPr7+3nvvfc47bTTKC8v57333mNgYACtNa+//joLFy4EGPk7hoaG+MlPfsI///M/n3LeSy+9lFdeeYXOzk46Ozt55ZVXuPTSS3G5XLS1tQHGyq7nn3+eJUuWAMZIzbD169ePPJ7D4eATn/gEN954I5/61Kd8/tumK1hLyDXwilJKA7/TWv8eKNJaNwForZuUUsOp1jOBsf+zDd5jTWNPqJS6FWOkh/LyqZf/hdqR9gEqizIi3QwhhIh7viz5DialFM888wy33XYbP/jBD2htbeX666/nrrvuAuAvf/kLjz76KFarleLiYv7t3/6N3NxcfvjDH3LJJZfg8XiwWq38+te/ZtasWRM+zp133klNTQ1aay688EKWLVsWULufeeYZvvrVr9La2soVV1zB8uXLefnll7ntttu4+eabWbJkCVprbr75ZpYuXQoY+TorV67EYrGwYsUKbr31VgD+8z//k+effx6Px8OXv/xlLrjgAgC2bdvGb3/7Wx544AFyc3P513/9V8444wyAkX7o7+/n0ksvxel04na7ueiii/jiF78IwC9+8QvWr1+PxWIhNzeXhx56CIAnnniCTZs20d7ePnLsoYceYvny5QH1yclUMFYOKaVmaK0bvYHMq8BXgfVa6+wx9+nUWucopf4O/Fhr/Zb3+OvAt7TW28c9ObB69Wp98lBisLjcHp7Y1uDTfT+xYiYpSeaQtEMIIRJVdXX1yBV+NHjnnXe44YYbePrpp09JSBbhN97zQym1fUx6zISCMpKjtW70/tuilHoGWAM0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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "import autograd.numpy as np\n", "from autograd import jacobian\n", "from scipy.integrate import solve_ivp\n", "from scipy.interpolate import interp1d\n", "import matplotlib.pyplot as plt\n", "\n", "# APPLICATION SPECIFIC\n", "\n", "labels = [\"Hare\", \"Lynx\"]\n", "t_span = np.array([0, 70])\n", "IC = np.array((20, 20))\n", "\n", "# use closures to create models for different parameter values\n", "def preditor_prey(a=3.2, b=0.6, c=50, d=0.56, k=125, r=1.6):\n", " def deriv(t, x, perturbation=0.0):\n", " H, L = x\n", " dH = r*H*(1 - H/k) - a*H*L/(c + H)\n", " dL = b*a*H*L/(c + H) - (d + perturbation)*L\n", " return np.array([dH, dL])\n", " return deriv\n", "f = preditor_prey()\n", "\n", "# weighting function to compute the quantity of interest\n", "w = lambda t: np.array([1.0, 0.0])\n", "\n", "# GENERIC SENSITIVITY ANALYSIS\n", "rtol = 1e-10\n", "\n", "# generic function to return the value of an innerproduct of two vector-valued functions\n", "def innerproduct(w, x, t_span):\n", " \"\"\"Returns numerical value of the inner product of two vector-valued functions over t_span.\"\"\"\n", " return solve_ivp(lambda t, q: np.dot(w(t), x(t)), t_span, np.array([0.0]), rtol=rtol).y[0][-1]\n", "\n", "# the forward solution returns the quantity of interest and an interpolation function for x(t)\n", "def forward(deriv, t_span, IC):\n", " \"\"\"Return a function that computes x(t)\"\"\"\n", " soln = solve_ivp(deriv, t_span, IC, rtol=rtol)\n", " return interp1d(soln.t, soln.y)\n", "\n", "x = forward(f, t_span, IC)\n", "Q = innerproduct(w, x, t_span)\n", "\n", "# adjoint sensitivity and parametric sensitivity coefficient\n", "def backward(w, f, t_span): \n", " \"\"\"Return a function that computes y(t)\"\"\"\n", " ydot = lambda t, y: -np.dot(jacobian(f, 1)(t, x(t)).T, y) - w(t)\n", " soln = solve_ivp(ydot, np.flipud(t_span), np.zeros(len(IC)), rtol=rtol)\n", " return interp1d(soln.t, soln.y)\n", "\n", "y = backward(w, f, t_span)\n", "Qp = innerproduct(y, lambda t: jacobian(f, 2)(t, x(t), 0.0), t_span)\n", "\n", "# VISUALIZATION AND VALIDATION\n", "\n", "# compare to actual simulation\n", "delta = 0.01\n", "Qa = innerproduct(w, forward(lambda t,x: f(t, x, delta), t_span, IC), t_span)\n", "print(f\"Predicted change: {delta*Qp}\")\n", "print(f\"Actual change: {Qa - Q}\")\n", "\n", "# plot solution\n", "t = np.linspace(*t_span, 1001)\n", "fig, ax = plt.subplots(4, 1, figsize=(8,8))\n", "fig.tight_layout()\n", "ax[0].plot(t, [x(t) for t in t])\n", "ax[0].set_title(\"Forward Solution\")\n", "ax[0].legend(labels)\n", "ax[1].fill_between(t, [np.dot(w(t), x(t)) for t in t], alpha=0.4)\n", "ax[1].set_title(\"Quantity of Interest\")\n", "ax[1].legend([f\"Q = {Q:6.4f}\"])\n", "ax[2].plot(t, [y(t) for t in t])\n", "ax[2].set_title(\"Adjoint Sensitivities\")\n", "ax[2].legend(labels)\n", "ax[2].grid(True)\n", "ax[3].fill_between(t, [np.dot(y(t), jacobian(f, 2)(t, x(t), 0.0)) for t in t], alpha=0.4)\n", "ax[3].legend([f\"Qsens = {Qp:6.4f}\"])\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "cM2yM5zTUSrE", "nbpages": { "level": 3, "link": "[6.3.9.2 Example: Managing COVID-19 on a College Campus](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.9.2-Example:-Managing-COVID-19-on-a-College-Campus)", "section": "6.3.9.2 Example: Managing COVID-19 on a College Campus" } }, "source": [ "### 6.3.9.2 Example: Managing COVID-19 on a College Campus\n", "\n", "See [https://github.com/jckantor/covid-19](https://github.com/jckantor/covid-19) for detail on this model." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 648 }, "colab_type": "code", "executionInfo": { "elapsed": 3097, "status": "ok", "timestamp": 1593724754671, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14Gg_n8V7bVINy02QRuRgOoMo11Ri7NKU3OUKdC1bkQ=s64", "userId": "09038942003589296665" }, "user_tz": 300 }, "id": "fYCwBXQjUCsQ", "nbpages": { "level": 3, "link": "[6.3.9.2 Example: Managing COVID-19 on a College Campus](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.9.2-Example:-Managing-COVID-19-on-a-College-Campus)", "section": "6.3.9.2 Example: Managing COVID-19 on a College Campus" }, "outputId": "ec5bd2da-3f3e-4159-b06d-fe21531ca332" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Predicted change: 0.001863947447262933\n", "Actual change: 0.001963600667473947\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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jx5Nr169AOjWrRv9+/fn66+/5pFHHqFFixYMHDiQyZMnk52dzcSJEyvEGqtNpJtuuomf//znZGVl4e5kZmbGnCxdG1b+AEzDlJOT43Pnzk11GCIikqaWLFlSp/NTGoqxY8cybNgwRowYkZL3jzXuZjbP3XOqaqtHYYiIiEja0cNQRUREpEaiL29vSHQESERERNKOEiARERFJO0qAREREJO0oARIREZG0owRIRESkEcjIyCh7uGl2dnalj8HY1wYMGEB9u12NrgITERFpBFq2bBn3cRVSkY4AiYiINFIFBQV069aNZcuWAXDeeefxpz/9CQgennrddddx3HHHMXjwYDZs2AAEj9A44YQTyMrK4gc/+AFbtmwB4IEHHqBHjx5kZWUxevRoAHbs2MG4cePo06cPvXv35sUXXwRg165djB49mqysLEaNGsWuXbv29aZXSUeARERE6tKr18NX/6nbPg85Fs6o/JTWrl27yM7OLlueOHEio0aN4qGHHmLs2LFcc801bNmyhZ/85CdAkLwcd9xx3HvvvUyaNIlbb72Vhx56iIsuuogHH3yQ/v37c/PNN3Prrbdy//33M3nyZD7//HOaN29Ofn4+ALfffjuDBg1iypQp5Ofn07dvX0499VT++Mc/sv/++7Nw4UIWLlzIcccdV7fjUQeUAImIiDQC8U6BnXbaaTz33HNceeWV5R5i2qRJE0aNGgXABRdcwA9/+EMKCgrIz8+nf//+AIwZM4aRI0cCkJWVxfnnn8+5557LueeeC8CsWbPIzc3lnnvuAYKnza9evZp33nmHq6++uqxdVlZW8ja8hpQAiYiI1KUqjtTsayUlJSxZsoSWLVuyefNmOnfuHLOemVXaz9///nfeeecdcnNz+d3vfseiRYtwd2bOnFnhae6J9JdqmgMkIiLSiN133310796dZ599lnHjxlFYWAgEidHzzz8PwF/+8hdOOukkDjroIA4++GDeffddAJ5++mn69+9PSUkJa9asYeDAgdx1113k5+ezfft2hgwZwoMPPkjpg9Xnz58PwCmnnMLUqVMB+PTTT1m4cOG+3uwq6QiQiIhIIxA9B2jo0KGMGzeOxx57jI8++ojWrVtzyimncNttt3HrrbdywAEHsGjRIo4//ngOOuggpk+fDsCTTz7JZZddxs6dOzniiCP485//THFxMRdccAEFBQW4O7/4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9a9/zbp16wBYt24dzz777KDnrVq1irKysmOOmxktLS0ANDc3c+KJJwJw3333sX79+tRo0oIFC1Kv2b59O3V1dZx33nljbv9gpsVeYLns/YZ2OnumV4CQSMKho10cOto3bTanpDCYMgunzkqjurVERAbauXMnZ599dr9js2bN4qSTTmLPnj1s3LiRb3/723z1q1+lu7ubRCLB7t27efzxx3n11VcpLCzkW9/6Fps2beKKK66gra2NlStXcuutt3L99ddz33338b3vfY+bb76Z559/noULF9LU1HRMO44ePcq55547aBsfffRRzjij/8YOdXV1nHDCCQCccMIJHDp0aFTf94YNG7jgggsoLi5m1qxZbN0alAJ89913Afj0pz9NIpHgpptuYvXq1SSTSa699loefvhhtmzZMqr3Gil9Sk2w6sbJT3bOhqb2Hprae6iqCwp5l0bzj8kj0soLEZnp3H3Q34XuQWrBJz/5SW699VZqamq45JJLWLp0KVu2bGH79u184hOfAKCjoyM1UhKJRLjwwgsBOPvss3nxxReBIKD42te+xqWXXsoll1xyzPuVlZWxY8eOCfkeB3PnnXfy29/+lhUrVnDHHXfwne98hw0bNhCPx6mqquJ3v/sdNTU1nHvuubz11ls88sgjXHDBBSxevHj4i2dIAdAE6uxJ8EHL1J36Gou2rgRtXe3sawgCwMJ8SwVD88uilJdGVZNIRGacM888k6effrrfsZaWFurq6jjttNNYvnw5K1as4LnnnuP8889nw4YNuDvr1q3jtttuO+Z6hYV9/7nMz88nHg9Kq9xzzz28/vrrPPfccyxfvpwdO3ZQXl6eet1oR4A+9KEPUVtbywknnEBtbW2/qarh1NfX85e//IUVK4LNItauXcvq1asBWLRoEStXrqSwsJCTTz6Z0047jaqqKl577TV+//vf84tf/ILW1la6u7uJxWJD5h5lQjlAE6i6sR1XvjAQrDY72NTJX6qbeWnXIZ7aXs2W3XW8WdNEXUsn8cT0miYUERnMqlWraG9v56GHHgIgkUhw7bXXcvXVV1NcXMx7773HKaecwjXXXMNFF13Em2++yapVq3jqqadS006NjY28//77x32fv/71r6xYsYKbb76ZiooKqqur+z3fOwI02J+BwQ/ARRddxIMPBlt7Pvjgg6xZM3Drz6HNnTuX5ubm1HTX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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "import autograd.numpy as np\n", "from autograd import jacobian\n", "from scipy.integrate import solve_ivp\n", "from scipy.interpolate import interp1d\n", "import matplotlib.pyplot as plt\n", "\n", "# APPLICATION SPECIFIC\n", "\n", "labels = [\"Susceptible\", \"Exposed\", \"Infected\", \"Recovered\"]\n", "t_span = np.array([0, 120])\n", "\n", "N = 16000.0\n", "n = 10.0\n", "\n", "e_initial = n/N\n", "i_initial = 0.00\n", "r_initial = 0.00\n", "s_initial = 1 - e_initial - i_initial - r_initial\n", "\n", "IC = np.array([s_initial, e_initial, i_initial, r_initial])\n", "\n", "# use closures to create models for different parameter values\n", "def seir(R0=2.4, t_incubation=5.1, t_infective=3.3, u=0.37):\n", " def deriv(t, x, theta=0.0):\n", " s, e, i, r = x\n", " alpha = 1/t_incubation\n", " gamma = 1/t_infective\n", " beta = (R0 + theta)*gamma\n", " dsdt = -(1-u)*beta * s * i\n", " dedt = (1-u)*beta * s * i - alpha * e\n", " didt = alpha * e - gamma * i\n", " drdt = gamma * i\n", " return np.array([dsdt, dedt, didt, drdt])\n", " return deriv\n", "f = seir(R0=1.0, u=0.0)\n", "\n", "# weighting function to compute the quantity of interest\n", "w = lambda t: np.array([0.0, 0.0, 1.0, 0.0])\n", "\n", "# GENERIC SENSITIVITY ANALYSIS\n", "rtol = 1e-10\n", "\n", "# generic function to return the value of an innerproduct of two vector-valued functions\n", "def innerproduct(w, x, t_span):\n", " \"\"\"Returns numerical value of the inner product of two vector-valued functions over t_span.\"\"\"\n", " return solve_ivp(lambda t, q: np.dot(w(t), x(t)), t_span, np.array([0.0]), rtol=rtol).y[0][-1]\n", "\n", "# the forward solution returns the quantity of interest and an interpolation function for x(t)\n", "def forward(deriv, t_span, IC):\n", " \"\"\"Return a function that computes x(t)\"\"\"\n", " soln = solve_ivp(deriv, t_span, IC, rtol=rtol)\n", " return interp1d(soln.t, soln.y)\n", "\n", "x = forward(f, t_span, IC)\n", "Q = innerproduct(w, x, t_span)\n", "\n", "# adjoint sensitivity and parametric sensitivity coefficient\n", "def backward(w, f, t_span): \n", " \"\"\"Return a function that computes y(t)\"\"\"\n", " ydot = lambda t, y: -np.dot(jacobian(f, 1)(t, x(t)).T, y) - w(t)\n", " soln = solve_ivp(ydot, np.flipud(t_span), np.zeros(len(IC)), rtol=rtol)\n", " return interp1d(soln.t, soln.y)\n", "\n", "y = backward(w, f, t_span)\n", "Qp = innerproduct(y, lambda t: jacobian(f, 2)(t, x(t), 0.0), t_span)\n", "\n", "# VISUALIZATION AND VALIDATION\n", "\n", "# compare to actual simulation\n", "delta = 0.01\n", "Qa = innerproduct(w, forward(lambda t,x: f(t, x, delta), t_span, IC), t_span)\n", "print(f\"Predicted change: {delta*Qp}\")\n", "print(f\"Actual change: {Qa - Q}\")\n", "\n", "# plot solution\n", "t = np.linspace(*t_span, 1001)\n", "fig, ax = plt.subplots(4, 1, figsize=(8,8))\n", "fig.tight_layout()\n", "ax[0].plot(t, [x(t) for t in t])\n", "ax[0].set_title(\"Forward Solution\")\n", "ax[0].legend(labels)\n", "ax[1].fill_between(t, [np.dot(w(t), x(t)) for t in t], alpha=0.4)\n", "ax[1].set_title(\"Quantity of Interest\")\n", "ax[1].legend([f\"Q = {Q:6.4f}\"])\n", "ax[2].plot(t, [y(t) for t in t])\n", "ax[2].set_title(\"Adjoint Sensitivities\")\n", "ax[2].legend(labels)\n", "ax[2].grid(True)\n", "ax[3].fill_between(t, [np.dot(y(t), jacobian(f, 2)(t, x(t), 0.0)) for t in t], alpha=0.4)\n", "ax[3].legend([f\"Qsens = {Qp:6.4f}\"])\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "F7fyfG8UjaJU", "nbpages": { "level": 3, "link": "[6.3.9.3 Exercise: Application to an exothermic stirred tank reactor](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.9.3-Exercise:-Application-to-an-exothermic-stirred-tank-reactor)", "section": "6.3.9.3 Exercise: Application to an exothermic stirred tank reactor" } }, "source": [ "### 6.3.9.3 Exercise: Application to an exothermic stirred tank reactor\n", "\n", "\\begin{align*}\n", "V\\frac{dc_A}{dt} & = q(c_{Ai}-c_A)-Vkc_A \\\\\n", "V\\rho C_p\\frac{dT}{dt} & = wC_p(T_i-T) + (-\\Delta H_R)Vkc_A + UA(T_c-T)\n", "\\end{align*}\n", "\n", "Solving for the derivatives\n", "\n", "\\begin{align*}\n", "\\frac{dc_A}{dt} & = \\frac{q}{V}(c_{Ai} - c_A)- kc_A \\\\\n", "\\frac{dT}{dt} & = \\frac{q}{V}(T_i - T) + \\frac{-\\Delta H_R}{\\rho C_p}kc_A + \\frac{UA}{V\\rho C_p}(T_c - T)\n", "\\end{align*}\n", "\n", "which are the equations that will be integrated below.\n", "\n", "| Quantity | Symbol | Value | Units | Comments |\n", "| :------- | :----: | :---: | :---- | |\n", "| Activation Energy | $E_a$ | 72,750 | J/gmol | |\n", "| Arrehnius pre-exponential | $k_0$ | 7.2 x 1010 | 1/min | |\n", "| Gas Constant | $R$ | 8.314 | J/gmol/K | |\n", "| Reactor Volume | $V$ | 100 | liters | |\n", "| Density | $\\rho$ | 1000 | g/liter | |\n", "| Heat Capacity | $C_p$ | 0.239 | J/g/K | |\n", "| Enthalpy of Reaction | $\\Delta H_r$ | -50,000 | J/gmol | |\n", "| Heat Transfer Coefficient | $UA$ | 50,000 | J/min/K | |\n", "| Feed flowrate | $q$ | 100 | liters/min | |\n", "| Feed concentration | $c_{A,f}$ | 1.0 | gmol/liter | |\n", "| Feed temperature | $T_f$ | 350 | K | |\n", "| Initial concentration | $c_{A,0}$ | 0.5 | gmol/liter | |\n", "| Initial temperature | $T_0$ | 350 | K | |\n", "| Coolant temperature | $T_c$ | 300 | K | Primary Manipulated Variable |\n" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "colab": {}, "colab_type": "code", "id": "bVhr-3NRkEIs", "nbpages": { "level": 3, "link": "[6.3.9.3 Exercise: Application to an exothermic stirred tank reactor](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.9.3-Exercise:-Application-to-an-exothermic-stirred-tank-reactor)", "section": "6.3.9.3 Exercise: Application to an exothermic stirred tank reactor" } }, "outputs": [], "source": [ "Ea = 72750 # activation energy J/gmol\n", "R = 8.314 # gas constant J/gmol/K\n", "k0 = 7.2e10 # Arrhenius rate constant 1/min\n", "V = 100.0 # Volume [L]\n", "rho = 1000.0 # Density [g/L]\n", "Cp = 0.239 # Heat capacity [J/g/K]\n", "dHr = -5.0e4 # Enthalpy of reaction [J/mol]\n", "UA = 5.0e4 # Heat transfer [J/min/K]\n", "q = 100.0 # Flowrate [L/min]\n", "cAi = 1.0 # Inlet feed concentration [mol/L]\n", "Ti = 350.0 # Inlet feed temperature [K]\n", "cA0 = 0.5; # Initial concentration [mol/L]\n", "T0 = 350.0; # Initial temperature [K]\n", "Tc = 300.0 # Coolant temperature [K]\n", "\n", "# Arrhenius rate expression\n", "def k(T):\n", " return k0*np.exp(-Ea/R/T)\n", "\n", "def deriv(y,t):\n", " cA,T = y\n", " dcA = (q/V)*(cAi - cA) - k(T)*cA\n", " dT = (q/V)*(Ti - T) + (-dHr/rho/Cp)*k(T)*cA + (UA/V/rho/Cp)*(Tc-T)\n", " return [dcA,dT]" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "colab": {}, "colab_type": "code", "id": "81bdrz-IjgDc", "nbpages": { "level": 3, "link": "[6.3.9.3 Exercise: Application to an exothermic stirred tank reactor](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.9.3-Exercise:-Application-to-an-exothermic-stirred-tank-reactor)", "section": "6.3.9.3 Exercise: Application to an exothermic stirred tank reactor" } }, "outputs": [], "source": [ "# visualization\n", "def plotReactor(t,y):\n", " plt.subplot(1,2,1)\n", " plt.plot(t,y[:,0])\n", " plt.xlabel('Time [min]')\n", " plt.ylabel('Concentration [gmol/liter]')\n", " plt.title('Concentration')\n", " plt.ylim(0,1)\n", "\n", " plt.subplot(1,2,2)\n", " plt.plot(t,y[:,1])\n", " plt.xlabel('Time [min]')\n", " plt.ylabel('Temperature [K]');\n", " plt.title('Temperature')\n", " plt.ylim(300,450)\n", " plt.legend([Tc])" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 295 }, "colab_type": "code", "executionInfo": { "elapsed": 695, "status": "ok", "timestamp": 1592335111404, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14Gg_n8V7bVINy02QRuRgOoMo11Ri7NKU3OUKdC1bkQ=s64", "userId": "09038942003589296665" }, "user_tz": 300 }, "id": "lTjnskK7zYdQ", "nbpages": { "level": 3, "link": "[6.3.9.3 Exercise: Application to an exothermic stirred tank reactor](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.9.3-Exercise:-Application-to-an-exothermic-stirred-tank-reactor)", "section": "6.3.9.3 Exercise: Application to an exothermic stirred tank reactor" }, "outputId": "3a2af70a-0d04-48ad-bc3f-e41134488fb3" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from scipy.integrate import odeint\n", "\n", "Tc = 300\n", "IC = [cA0,T0]\n", "t = np.linspace(0,10.0,2000)\n", "y = odeint(deriv,IC,t)\n", "\n", "plt.figure(figsize=(12,4))\n", "plotReactor(t,y);" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "LQWDidMAxOcM", "nbpages": { "level": 3, "link": "[6.3.9.3 Exercise: Application to an exothermic stirred tank reactor](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.03-Sensitivity-Analysis-with-Adjoint-Operators.html#6.3.9.3-Exercise:-Application-to-an-exothermic-stirred-tank-reactor)", "section": "6.3.9.3 Exercise: Application to an exothermic stirred tank reactor" } }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [6.2 A Simple Example of Adjoint Sensitivity Analysis](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.02-Contributed-Example.html) | [Contents](toc.html) | [6.4 Adjoint Sensitivity Notes on Numerical Computation](https://ndcbe.github.io/cbe67701-uncertainty-quantification/06.04-Adjoint-Sensitivity-Notes-on-Numerical-Computation.html)

\"Open

\"Download\"" ] } ], "metadata": { "colab": { "authorship_tag": "ABX9TyNdioMTgA7TMKPIBKhcWZ74", "collapsed_sections": [], "name": "06.03-Sensitivity-Analysis-with-Adjoint-Operators.ipynb", "provenance": [] }, "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.3" } }, "nbformat": 4, "nbformat_minor": 1 }