From a016d9a2f0e116ddcd9a36b585856a2bce60451a Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2024 00:27:19 +0000 Subject: [PATCH] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- include/ndcurves/bernstein.h | 2 +- python/test/sandbox/test.ipynb | 9445 +++++++++++++++++++++++++++++--- 2 files changed, 8637 insertions(+), 810 deletions(-) diff --git a/include/ndcurves/bernstein.h b/include/ndcurves/bernstein.h index fcab1df1..c8fedafe 100644 --- a/include/ndcurves/bernstein.h +++ b/include/ndcurves/bernstein.h @@ -49,7 +49,7 @@ struct Bern { if (!(u >= 0. && u <= 1.)) { throw std::invalid_argument("u needs to be betwen 0 and 1."); } - return bin_m_i_ * (pow(u, i_)) * pow((1 - u), m_minus_i); + return bin_m_i_ * (pow(u, i_))*pow((1 - u), m_minus_i); } /// \brief Check if actual Bernstein polynomial and other are approximately diff --git a/python/test/sandbox/test.ipynb b/python/test/sandbox/test.ipynb index e9dfacb2..682f799f 100644 --- a/python/test/sandbox/test.ipynb +++ b/python/test/sandbox/test.ipynb @@ -1,814 +1,8641 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Curve optimization with the curves library" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The [curve library](https://github.com/loco-3d/curves) is a header-only C++ library (also binded in python) that allows you\n", - "to create curves, in arbitrary dimensions (2, 3, n). \n", - "Originally, the library focused on spline curves, but it has now been extended to generic polynomials, cubic hermite splines, Bezier curves and more. \n", - "A nice upcoming extension is the ability to design curves in the Special Euclidian group SE3.\n", - "\n", - "However in this tutorial we are going to focus on a rather unique trait of the library, which is the ability to work with variable control points. Rather than being given a constant value, the control points can be expressed as the linear combination of one or several variables. The main advantage of this representation is that variable curves\n", - "can be automatically derivated or integrated without any effort. \n", - "\n", - "The other interest of variable curves is the ability to easily formulate optimization problems, which will be the focus of this tutorial. We will use the python bindings of the curve library to go through the steps of formulating and solving an optimization problem.\n", - "\n", - "## The problem: trajectory fitting\n", - "\n", - "We start with a simple, unconstrained problem. \n", - "\n", - "Let us first consider a 3D curve:" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# importing classical numpy objects\n", - "# use array representation for binding eigen objects to python\n", - "# importing the bezier curve class\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "from numpy import array, dot, identity, zeros\n", - "from numpy.linalg import norm\n", - "\n", - "from ndcurves import bezier\n", - "\n", - "# importing tools to plot bezier curves\n", - "from ndcurves.plot import plotBezier\n", - "\n", - "np.set_printoptions(formatter={\"float\": lambda x: f\"{x:0.1f}\"})\n", - "\n", - "# We describe a degree 3 curve as a Bezier curve with 4 control points\n", - "waypoints = array(\n", - " [[1.0, 2.0, 3.0], [-4.0, -5.0, -6.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]]\n", - ").transpose()\n", - "ref = bezier(waypoints)\n", - "\n", - "# plotting the curve with its control points\n", - "plotBezier(ref, showControlPoints=True, color=\"g\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We now assume that we only have partial information about this curve, and that we want to reconstruct it.\n", - "\n", - "We will first generate a discretization of the curve to represent a temporal sampling:" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(array([1.0, 2.0, 3.0]), 0.0)\n", - "(array([-0.1, 0.4, 0.9]), 0.1)\n", - "(array([-0.6, -0.4, -0.1]), 0.2)\n", - "(array([-0.5, -0.4, -0.2]), 0.3)\n", - "(array([0.1, 0.2, 0.4]), 0.4)\n", - "(array([1.0, 1.2, 1.5]), 0.5)\n", - "(array([2.2, 2.6, 3.0]), 0.6)\n", - "(array([3.4, 4.1, 4.7]), 0.7)\n", - "(array([4.7, 5.6, 6.4]), 0.8)\n", - "(array([6.0, 6.9, 7.9]), 0.9)\n", - "(array([7.0, 8.0, 9.0]), 1.0)\n" - ] - } - ], - "source": [ - "numSamples = 10\n", - "fNumSamples = float(numSamples)\n", - "ptsTime = [\n", - " (ref(float(t) / fNumSamples), float(t) / fNumSamples) for t in range(numSamples + 1)\n", - "]\n", - "for el in ptsTime:\n", - " print(el)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Each entry of ptsTime is a couple (position, time) that describes our input data.\n", - "\n", - "### Sanity check\n", - "Let's first solve a trivial problem, to see if we can reconstruct the curve with a polynomial\n", - "of same degree.\n", - "To achieve this we will use the problemDefinition class, which will automatically generate the variable expression of the curve" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [], - "source": [ - "from ndcurves.optimization import problem_definition, setup_control_points\n", - "\n", - "# dimension of our problem (here 3 as our curve is 3D)\n", - "dim = 3\n", - "refDegree = 3\n", - "pD = problem_definition(dim)\n", - "pD.degree = refDegree # we want to fit a curve of the same degree as the reference curve for the sanity check\n", - "\n", - "# generates the variable bezier curve with the parameters of problemDefinition\n", - "problem = setup_control_points(pD)\n", - "# for now we only care about the curve itself\n", - "variableBezier = problem.bezier()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The evaluation of a variable Bezier returns a matrix B and a vector c, such \n", - "that B x + c , with x a vector variable, defines the value of the curve" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "B: \n", - " [[1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]\n", - " [0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]\n", - " [0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]]\n", - "c:\n", - " [0.0 0.0 0.0]\n", - "Shape of B: (3, 12)\n" - ] - } - ], - "source": [ - "linearVariable = variableBezier(0.0)\n", - "print(\"B: \\n\", linearVariable.B())\n", - "print(\"c:\\n\", linearVariable.c())\n", - "print(\"Shape of B: \", linearVariable.B().shape)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "B has 3 rows and 12 columns. Because the fitting curve is of degree 3, it has 4 control points of dimension 3, which gives a variable of size 12. The row number also matches the dimension of the problem.\n", - "Then A is zero everywhere, expect for the first 3 columns that contain the identity. This is expected as the start of a Bezier curve is equal to the first control point.\n", - "\n", - "If we evaluate variableBezier at t = 0.2 for instance, we get a more complex expression:" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "B: \n", - " [[0.5 0.0 0.0 0.4 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.0]\n", - " [0.0 0.5 0.0 0.0 0.4 0.0 0.0 0.1 0.0 0.0 0.0 0.0]\n", - " [0.0 0.0 0.5 0.0 0.0 0.4 0.0 0.0 0.1 0.0 0.0 0.0]]\n" - ] - } - ], - "source": [ - "print(\"B: \\n\", variableBezier(0.2).B())" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "With variableBezier, we can easily define a least square problem to reconstruct the original curve.\n", - "We just have to formulate a cost function that, for each sample in ptsTime minimizes the distance between the evaluation of variableBezier and the sampled point. We define it as follows:" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "metadata": {}, - "outputs": [], - "source": [ - "# least square form of ||Ax-b||**2\n", - "def to_least_square(A, b):\n", - " return dot(A.T, A), -dot(A.T, b)\n", - "\n", - "\n", - "def genCost(variableBezier, ptsTime):\n", - " # first evaluate variableBezier for each time sampled\n", - " allsEvals = [(variableBezier(time), pt) for (pt, time) in ptsTime]\n", - " # then compute the least square form of the cost for each points\n", - " allLeastSquares = [to_least_square(el.B(), -el.c() + pt) for (el, pt) in allsEvals]\n", - " # and finally sum the costs\n", - " Ab = [sum(x) for x in zip(*allLeastSquares)]\n", - " return Ab[0], Ab[1]\n", - "\n", - "\n", - "A, b = genCost(variableBezier, ptsTime)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here we use quadprog to solve the least square. Because there are no constraint this might seem overkill, however we will introduce them soon enough." - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "metadata": {}, - "outputs": [], - "source": [ - "import quadprog\n", - "from numpy import array, hstack, vstack\n", - "\n", - "\n", - "def quadprog_solve_qp(P, q, G=None, h=None, C=None, d=None, verbose=False):\n", - " \"\"\"\n", - " min (1/2)x' P x + q' x\n", - " subject to G x <= h\n", - " subject to C x = d\n", - " \"\"\"\n", - " qp_G = 0.5 * (P + P.T) # make sure P is symmetric\n", - " qp_a = -q\n", - " qp_C = None\n", - " qp_b = None\n", - " meq = 0\n", - " if C is not None:\n", - " if G is not None:\n", - " qp_C = -vstack([C, G]).T\n", - " qp_b = -hstack([d, h])\n", - " else:\n", - " qp_C = -C.transpose()\n", - " qp_b = -d\n", - " meq = C.shape[0]\n", - " elif G is not None: # no equality constraint\n", - " qp_C = -G.T\n", - " qp_b = -h\n", - " res = quadprog.solve_qp(qp_G, qp_a, qp_C, qp_b, meq)\n", - " if verbose:\n", - " return res\n", - " # print('qp status ', res)\n", - " return res[0]\n", - "\n", - "\n", - "res = quadprog_solve_qp(A, b)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's check whether our optimization worked !\n", - "We can transform the variable Bezier as a regular Bezier curve as follows, and plot the result to verify that the curves match." - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def evalAndPlot(variableBezier, res):\n", - " fitBezier = variableBezier.evaluate(res.reshape((-1, 1)))\n", - " # plot reference curve in blue, fitted curve in green\n", - " fig = plt.figure()\n", - " ax = fig.add_subplot(111, projection=\"3d\")\n", - " plotBezier(ref, ax=ax, linewidth=4.0) # thicker line to visualize overlap\n", - " plotBezier(fitBezier, ax=ax, color=\"g\", linewidth=3.0)\n", - " plt.show()\n", - " return fitBezier\n", - "\n", - "\n", - "fitBezier = evalAndPlot(variableBezier, res)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### initial and terminal constraints\n", - "Let's try to fit the reference curve with a curve of lesser degree" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "pD.degree = refDegree - 1\n", - "\n", - "\n", - "problem = setup_control_points(pD)\n", - "variableBezier = problem.bezier()\n", - "\n", - "A, b = genCost(variableBezier, ptsTime)\n", - "res = quadprog_solve_qp(A, b)\n", - "fitBezier = evalAndPlot(variableBezier, res)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can see that the initial and goal positions are not reached. \n", - "A constraint_flag can be used to impose constraints on the initial/goal positions\n", - "and derivatives if required.\n", - "Let's rewrite simplefit to handle such case" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "metadata": {}, - "outputs": [], - "source": [ - "from curves.optimization import constraint_flag\n", - "\n", - "pD.flag = constraint_flag.INIT_POS | constraint_flag.END_POS\n", - "# set initial position\n", - "pD.init_pos = array([ptsTime[0][0]]).T\n", - "# set end position\n", - "pD.end_pos = array([ptsTime[-1][0]]).T\n", - "problem = setup_control_points(pD)\n", - "variableBezier = problem.bezier()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "By imposing the initial and final position, we effectively reduce the number of variables by 6:" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Shape of B: (3, 3)\n" - ] - } - ], - "source": [ - "print(\"Shape of B: \", variableBezier(0).B().shape)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The least squares problem then has the following solution" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "prob = setup_control_points(pD)\n", - "variableBezier = prob.bezier()\n", - "A, b = genCost(variableBezier, ptsTime)\n", - "res = quadprog_solve_qp(A, b)\n", - "_ = evalAndPlot(variableBezier, res)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To impose constraints on the derivatives, we can activate the appropriate constraint flags as follows.\n", - "Note that derivatives constraints on velocities will only be considered if the constraints on position are also active.\n", - "For instance to impose a 0 velocity and acceleration at the initial and goal states we can proceed as follows:" - ] - }, - { - "cell_type": "code", - "execution_count": 45, - "metadata": {}, - "outputs": [], - "source": [ - "# values are 0 by default, so if the constraint is zero this can be skipped\n", - "pD.init_vel = array([[0.0, 0.0, 0.0]]).T\n", - "pD.init_acc = array([[0.0, 0.0, 0.0]]).T\n", - "pD.end_vel = array([[0.0, 0.0, 0.0]]).T\n", - "pD.end_acc = array([[0.0, 0.0, 0.0]]).T\n", - "pD.flag = (\n", - " constraint_flag.END_POS\n", - " | constraint_flag.INIT_POS\n", - " | constraint_flag.INIT_VEL\n", - " | constraint_flag.END_VEL\n", - " | constraint_flag.INIT_ACC\n", - " | constraint_flag.END_ACC\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "However, the definition of the variable problem will result in an error. Do you know why ?" - ] - }, - { - "cell_type": "code", - "execution_count": 46, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "In setup_control_points; too many constraints for the considered degree\n" - ] - } - ], - "source": [ - "try:\n", - " prob = setup_control_points(pD)\n", - "except RuntimeError as e:\n", - " print(e)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Indeed, there are not enough variables left in the problem to satisfy the constraints. We need to increase the degree of the curve:" - ] - }, - { - "cell_type": "code", - "execution_count": 47, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "pD.degree = refDegree + 4\n", - "prob = setup_control_points(pD)\n", - "variableBezier = prob.bezier()\n", - "A, b = genCost(variableBezier, ptsTime)\n", - "res = quadprog_solve_qp(A, b)\n", - "fitBezier = evalAndPlot(variableBezier, res)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can check that the derivatives of the curve are 0 at start and end" - ] - }, - { - "cell_type": "code", - "execution_count": 48, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "initial velocity [0.0 0.0 0.0]\n", - "initial acceleration [0.0 0.0 0.0]\n", - "end velocity [0.0 0.0 0.0]\n", - "end acceleration [0.0 0.0 0.0]\n" - ] - } - ], - "source": [ - "print(\"initial velocity\", fitBezier.derivate(fitBezier.min(), 1))\n", - "print(\"initial acceleration\", fitBezier.derivate(fitBezier.min(), 2))\n", - "print(\"end velocity\", fitBezier.derivate(fitBezier.max(), 1))\n", - "print(\"end acceleration\", fitBezier.derivate(fitBezier.max(), 2))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Of course, with such constraints the curve does not really look like the original one anymore.\n", - "Although it is not recommended, the library is robust enough to allow for adding an arbitrary number of control points.\n", - "Just for fun, let's add 60 more control points and check that the curve is matched better" - ] - }, - { - "cell_type": "code", - "execution_count": 49, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "pD.degree = refDegree + 60\n", - "prob = setup_control_points(pD)\n", - "variableBezier = prob.bezier()\n", - "A, b = genCost(variableBezier, ptsTime)\n", - "# regularization matrix\n", - "reg = identity(A.shape[1]) * 0.001\n", - "res = quadprog_solve_qp(A + reg, b)\n", - "fitBezier = evalAndPlot(variableBezier, res)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Adding equality and inequality constraints\n", - "\n", - "Suppose we want to add specific constraint.\n", - "For instance, we want that the velocity be exactly 0 at t = 0.8, additionally to the start and goal positions being satisfied. This can be done easily by obtaining the variable equation for the variable curve at that time." - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# set initial / terminal constraints\n", - "pD.flag = constraint_flag.END_POS | constraint_flag.INIT_POS\n", - "pD.degree = refDegree\n", - "prob = setup_control_points(pD)\n", - "variableBezier = prob.bezier()\n", - "\n", - "# get value of the curve first order derivative at t = 0.8\n", - "t08Constraint = variableBezier.derivate(0.8, 1)\n", - "target = zeros(3)\n", - "\n", - "A, b = genCost(variableBezier, ptsTime)\n", - "# solve optimization problem with quadprog\n", - "\n", - "res = quadprog_solve_qp(A, b, C=t08Constraint.B(), d=target - t08Constraint.c())\n", - "fitBezier = evalAndPlot(variableBezier, res)\n", - "\n", - "assert norm(fitBezier.derivate(0.8, 1) - target) <= 0.001" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Of course, inequality constraints can be added in a similar way\n", - "\n", - "## Constraining sub-parts of the curve\n", - "\n", - "Now suppose we want to constrain entirely parts of a curve. One common way to address this is to discretize the curve, and write as many constraints as discretization points.\n", - "\n", - "Alternatively, this can be achieved continuously by splitting the Bezier curve continuously, and putting constraints on the control points of the relevant parts.\n", - "\n", - "let's first explain how curve splitting works before writing a problem.\n", - "\n", - "Here is the code that splits our reference curve into two distinct curves at a time t = 0.6" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" + "cells" : [ + { + "cell_type" : "markdown", + "metadata" : {}, + "source" : ["# Curve optimization with the curves library"] + }, + { + "cell_type" : "markdown", + "metadata" : {}, + "source" : [ + "The [curve library](https://github.com/loco-3d/curves) is a " + "header-only C++ library (also binded in python) that allows you\n", + "to create curves, in arbitrary dimensions (2, 3, n). \n", + "Originally, the library focused on spline curves, but it has now been " + "extended to generic polynomials, cubic hermite splines, Bezier curves " + "and more. \n", + "A nice upcoming extension is the ability to design curves in the " + "Special Euclidian group SE3.\n", + "\n", + "However in this tutorial we are going to focus on a rather unique " + "trait of the library, which is the ability to work with variable " + "control points. Rather than being given a constant value, the control " + "points can be expressed as the linear combination of one or several " + "variables. The main advantage of this representation is that variable " + "curves\n", + "can be automatically derivated or integrated without any effort. \n", + "\n", + "The other interest of variable curves is the ability to easily " + "formulate optimization problems, which will be the focus of this " + "tutorial. We will use the python bindings of the curve library to go " + "through the steps of formulating and solving an optimization " + "problem.\n", + "\n", "## The problem: trajectory fitting\n", "\n", + "We start with a simple, unconstrained problem. \n", "\n", + "Let us first consider a 3D curve:" + ] + }, + { + "cell_type" : "code", + "execution_count" : 33, + "metadata" : {}, + "outputs" : [ { + "data" : { + "image/png" : + "iVBORw0KGgoAAAANSUhEUgAAAV0AAADnCAYAAAC9roUQAAAABHNCSVQICAgIfAhk" + "iAAAAAlwSFlzAAALEgAACxIB0t1+/" + "AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6L" + "y9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOx9eZQcdbn203v3TM+" + "SWTNLklky2fdkkoD3+KFekYv3KiKCV3BDFBeURfTjHI/" + "306OCl8siNyjKYfO6oBe8iqIXEBQXICQkIQlZZnq6e5bu2Xvfu6urvz/m/" + "Ipfd1dVV1VXd6ZDPefkECZTS1dXPfX+3vd5n1eXy+WgQYMGDRqqA/" + "25PgENGjRoeCtBI10NGjRoqCI00tWgQYOGKkIjXQ0aNGioIjTS1aBBg4Yqwlji3z" + "VpgwYNGjTIh07oH7RIV4MGDRqqCI10NWjQoKGK0EhXgwYNGqoIjXQ1aNCgoYrQSF" + "eDBg0aqgiNdDVo0KChitBIV4MGDRqqCI10NWjQoKGK0EhXgwYNGqoIjXQ1aNCgoY" + "rQSFeDBg0aqgiNdDVo0KChitBIV4MGDRqqiFIuYxo0CCKXy4FlWaRSKTAMA6PRCL" + "1eD4PBAL1eD71eD51O0GxJg4a3JHQlBlNq1o4aipDL5ZDNZsEwTN7fyb/" + "RREtImPzRyFjDWwSCN7hGuhoko5BsdToddDodGIYBwzDQ6/VFv0//" + "mZiYQEdHB+rq6jQy1nC+Q/" + "BG1tILGkoil8uBYRh4PB40Njaivr6+" + "iGD5QEiZIJ1OAwC3LcMwyGQyedtoZKzhfIdGuhoEQciWpA5CoRCsVivsdrui/" + "el0urz0QyGRklUXIePC3zUYDFzemJCzRsYaag0a6WooAsuyeXlaErHq9XqwLFv0+" + "2oRXykyLkxt5HI50chYI2QNyxEa6WrgwLIsGIZBNpsFUJweIESnFEq3l0rGADA7O" + "wu73Y6Ghgbo9XoYjUaNjDUsK2ik+xYHKXJlMhkuihUiJr1ef05IV2x/" + "9H8BIJFIwGq1QqfTcXK2wm1IdEynKjQy1lAtaKT7FgXR2DIMU5JsCQiRKYXapCt2" + "HKHPQj53NpvlCnsEdJqCRMcaGWtQGxrpvsVASMfn84FhGLS0tEgmlmqRZiUhhYwL" + "tcZ8OWNNUaFBKTTSfYugUGMbjUaRTqfR2toqeR/" + "LLb2gJuSQcTabxcLCArq7uzV5mwbZ0Ej3PAdfQwMhB7kEWCvpBTXBR8YMw2BhYQF" + "dXV3IZDJIp9NaF54GydBI9zwF0djSERrd0CAk/" + "xKDGqRZa6TLByJV42sQKdQa09DIWAOgke55h8KGhkKyJVBCunzbhMNhOJ1OxONx1" + "NfX5/0hKgKC84VcxF4cUhs/aBDy1Ro/3hrQSPc8gVBDgxDKTS8EAgG4XC4AQH9/" + "P6xWK5LJJKLRKEKhEKanp5FMJqHX61FXV4f6+" + "nokEglYLJaiQlUtQu75K2n8IMqSxsZGTWt8HkEj3RoHy7IIBoMAAJvNJkuJoCQ/" + "G4vFcPjwYRiNRgwNDaGxsREsyyKdTsNutxe1CGezWcTjccRiMfh8PkxPT8Pr9eaR" + "sVBkvFyh5ktDjIyDwSCCwSAsFkvRNlrjR+1CI90aRGFDw/" + "z8PEwmE+" + "rr6yXvQ056IZfLYXFxES6XC3q9Htu3b5fsv2AwGNDQ0ICGhgYkk0nU1dWho6Mjj4" + "z5ImO73Y76+nrU1dUtOzKuRqROol2S/6WPDUBr/" + "KhhaKRbQxBqaDAYDLJTBVJIN5fLYX5+" + "Hm63G3a7HWvWrOEiWiWgC3E0GdOgyTgYDMLr9XJkXJgztlgs54RMqpUeYVm2KB8v" + "FBmT89IaP5Y/" + "NNKtARSSbWHHlcFgKCrOlIIY6eZyOczMzGB8fBzNzc3Yvn07bDYb5ufni6IrOZCi" + "fihFxtFoFIFAAB6PB6lUqoiMSV60kjiXpCsGOVpj8l9CwJqionrQSHcZQ8g0vPCB" + "UEv+xbIspqenMTk5idbWVuzevTsvn3iuDG8AcTKOxWKIxWIIBALw+/" + "0IBAIwm81FOWO1IuNqyd7UIvdSZByLxTA2NoYtW7Zw/" + "6bJ2yoHjXSXIYQaGoRQrvwrm83C6/" + "ViamoKHR0d2LNnD8xms6zjnKuH0WAwoLGxEY2NjdzPWlpa0NTUlEfGJDI2GAxczp" + "j812w2K1YjVBJyI125oF/idO6YrhlojR/" + "qQyPdZYRcLod0Os3d9KXIlkAp6WazWbjdbkxPT2PlypXYu3cvTCaT4DbnMtKVCz4" + "yBpZ0siRnXEjGhTljITKuVnqhWsfJZrN5xTqxyBjQGj/KhUa6ywB0Q8PBgwexf/" + "9+WREOIVCpyGQymJycRDAYRHt7O/" + "bt2wejsfStIKbtlUIQy6EN2Gg0ipJxNBqFz+fD1NSUIBmTvHqlUelIV+" + "5xym380Mh4CRrpnkPwNTQYDAbZDxvZphTS6TQmJiYwPz+Pnp4eNDQ0oK+vT/" + "JxxLS9Uh+" + "ic026QhAjY5Km8Pl8mJycRCKRAMuyYFlWUmSsFNUi3cJIVy7kNH7Mzc1xJvOF0ra" + "3iqJCI91zALEJDQaDAdlsVlLkSVAqvZBKpTA+Pg6fz4fVq1fjggsuAADMzMzIOm+" + "hSFXqQ7IcIl25MBqNaGpqQlNTE/" + "czv9+PxcVFdHZ25pFxOp2G0Wjk9MX19fWw2+0wmUyKiKTWI2o+" + "Mo5EIrDb7ZxbGwk46G3O98YPjXSrBKkTGqRGrTSESDeRSMDtdiMUCmHNmjVYt24d" + "dzxyPnKPU7gNkZctLi5yEZ8Q0VSDdKuRByVNC4VkDPBHxjQZF0bGpY5TC5Gu3GMZ" + "jUbee/" + "+t0vihkW6FIXdCg9z8LNmGJt14PA6Xy4VIJIKBgQFs3LiRlwDlgk4vsCyL2dlZjI" + "+Po6WlBZ2dnUgkEoJEY7fbwbJszUW6fBD7DHyRMbCURyc544WFBYyPjyOTyYiS8X" + "LL6aoBhmEEV3FqNH6QoKYwTbScoJFuhVCqoUEIJL0gByQ6jkajcLlcSCQSGBgYwO" + "bNm1WNAgjpejweTExMoK2tDbt374bZbEY6ncaKFSvyfj+" + "TyXBR39zcHAKBABiGgc/" + "n49p8yR856ZTlALnX1WQyCZIxuUaFZJzJZLjVgZTIWCmqHekqOZaUxg8AePbZZ3H" + "8+HHcfvvtZZ9rpVBbd3oNgGhsFxYWoNPp0NzcLGsJpET+" + "RVpmz5w5g4GBAW4Ej5pgWRZzc3Pw+/" + "2w2+" + "0YHh7mSEAo8jOZTGhubkZzczMAYG5uDolEAt3d3YhGo4jFYpiZmUEsFkM2m4XFYu" + "GiYpIXrRYZyIGaKYzCa0SQyWRw+" + "vRp6PX6IjImGmM6lVMOWJat2ktPbYIvfLZCoVDRi225QSNdlcA3DgdAUfRXCnIi3" + "WAwCKfTiVwuB4vFguHhYdnnXQosy8Lr9WJychItLS1obGzEunXrFO2LPBxmsxktL" + "S1oaWnh/i2XyyGVSnFRn9/" + "vRzweB8uysNlseWkKm81WteUwH6qRNzaZTDAajVi5cmWekZFQZEwMj+g/" + "Usm4mpFupa9dKBQqeoEtN2ikWyaEJjQYjUZFPgWlSDeXyyEQCMDpdHL2ig0NDXjl" + "lVfK+RhFIGkE0qW2d+9e5HI5HD9+XPE+" + "xQppOp0OVqsVVqs1b25bLpdDIpHgiGZxcRHxeBwAODImkbHNZlN8bnJwLpsjxCJj" + "snqYn59HNBoFwzCSyLiaOd1KXzdSNF7O0EhXIUpNaFCSmxXbjrZXtFqt2LBhQ5EP" + "gRrIZrMc2RZ2qVXDTKYQOp0OdXV1qKurQ3t7O/" + "dzlmU5Mo5EIpidnUUikUA6nUYsFkM4HOYIWW03suVoeGMymbBixYqilRW5HiSvHo" + "vFisg4Ho8v68KTHGiR7nkIqRMalJJuYU630F5xy5YtsnxzpSKbzWJqagoejwddXV" + "3Yv39/" + "UZ5PrDlCCtSUjNHuYh0dHdzPR0dHUV9fD4PBkOfTS3sulNvMsBxJVwhmsxlms1mU" + "jGOxGNxuN9xudx4Zk2ulVr631HfPsAyCySBabC3Q65R97nA4rJHu+QKxhgY+" + "lBvp5nI5TpLV1NTE2SuqDYZhMDU1Ba/" + "Xi+7ubl6yJagF7wUSGReSTGGbr5CsTUoutNZcxvhAk3EoFEJfXx/" + "q6+vzyHh2djYvMi5XcSKWO37G9Qw+8ftPIMtmUW+qx68u/" + "xV2r9wt+3OFw2GtkFbLkNrQwAej0ag40l1cXITX60VLSwt27twJq9Uqez+" + "lwDAM0uk0Dh48iJ6eHlGyJVCDNM+" + "VTleozZcuTBXmQsVIplYiXbnH4YuMyTNAcsY0GZvN5qKcsdB9JES6s9FZfOLpTyD" + "OLOXqU9kUPvCrD8BxvQMWo6Xo98UQCoVkF6+rDY10eUBrbMnytL+/" + "X9aDJjfSJfaKbrcbVqtV0F6xXDAMg8nJSUxPT0Ov12PPnj2SSb1colmOnUNChal0" + "Oi0oa8vlcjCbzYhEIhWVtVWTdMU+" + "g06nE1Sc0JExfZ34yJhhmKLjZLIZPHLiEaSz+" + "Q0PGTYDT8SDwRWDsj6LltOtMRDZVzab5RoaCHnKJQyDwVDUV84HhmHg8Xjg9Xqxc" + "uVKrF+/" + "HqFQSHXCJc5iMzMzWLVqFS644AIcPXq0qtKrWvJeEJO1TUxMIJ1OY2pqilfWRjTG" + "alzbalk7KjlXnU4Hi8UCi8UiiYzT6TRYloXD4UAgF8Bvpn6DJxxPYC4+" + "V7RvhmXQXtde9HMpn6Vc3XKloZEuxCc0mEwmSeRZiFKRLsMwmJiYwOzsLLq7uzl7" + "xUAgoCgtQYpchQ9PJpPBxMQE5ubmOLIl0YaSRgw+" + "RKNReL3ePOLhi5xqiXT5QGRtdXV1aGxsRFdXFwD5srblFvErJV0hCJHx/" + "OI8fn3q13j66NP4q/" + "evyGHpXlhtW402axtOhU7BqDcim8vi9rffjkaLPEVFrdxbb2nSlTKhQW3pF22vuG" + "rVKuzfvz+PoJQSIdmOnH/" + "hcS644IKiz1Yu6UajUYyNjSGTyWDlypVIp9Pwer2IxWJ50R8hnFp5KEqh8HPIlbX" + "pdLq8qLgSsja5qOSKZz42jx+/" + "8WM8dOwhzMSXnO0sBgsuW3cZrt12LfZ17UMmk8ErE6/" + "AsehAj6kHnWwnDh06xHUp0n+EUiHke1luL7VCvCVJt5TGlobRaFQU6RZ+" + "8Xz2inzHLFdqlk6nMT4+" + "joWFBdHj0NvIBU22g4ODWLFiRZF5NR39RaNRrkiVyWTAMEweGZ9rwlECKecrJGsT" + "Gz9PXxdiEFRr1wZY+v4PzxzGg68/iF+P/" + "hoZdun+WG1fjet3XY+" + "PbP4IWm1vNsFYLBZctO4iXLTuorx90F2KXq8X8Xg8r2WcTuek02nU1dVV+" + "6PKxluKdPnIttQNrVSFQJBMJuFyuRAMBtHX14ehoSHRqEIp6QKAw+" + "FAMBjEmjVrRMmWQGwSBB+" + "i0Sji8ThOnz6NwcFBrnNMyGO3MPoLh8Pwer1YtWoVotEogsFg3rgcQjZSpVvnCuX" + "63AoN2SyUtSWTSRw+fLjIiUwNv4VKIcWk8KvRX+" + "FHx36EY3PHAAB6nR6XDl6Ky3svxwWdF2BV7ypJ+xLrUiwk4//5n//" + "BE088gXQ6jdtuuw2bN2/" + "GO97xDvT29ir+LPfeey8eeugh6HQ6bN26FY8++" + "qgqSqK3BOmyLItwOMx5ccoxoJFaECtEPB5HIpHAsWPH0N/" + "fz2uvyAe50WcqleI8c1tbW7Fx40bJS0WpzQ6xWAxOpxOJRAJmsxnDw8OKrSEBwG6" + "3w2635/" + "0b8aGlo2IiSaLJeLmY4FQi+iyUtQWDQQwPDxf5LbjdbtW0s2phJjqDh48/" + "jEdOPILFxCIAYIV1BT6x9RO4dtu1WNO0BpOTkzAZy39Z8JHx1772NVx22WW4/" + "fbbcdFFF+HUqVPweDyKSdfr9eI///M/cfr0adhsNlx55ZX4xS9+gU984hNln/" + "95Tbp0Q4Pb7UZnZ2feG1MK5EaetL2i0WjE/" + "v37KyI1SyaTcLvdCAQC6OvrQ3t7O9rb22XPVhMjXZpsSWT7yiuvCFrslUNEfD60d" + "BU8Go3C4/EI5ovr6uqqtgyv9pJfiayNjoor+aI6OnsUPzj6g7wUwtb2rfjszs/" + "iivVXwGZ6s6GHYZiK+mNEIhF0dXXhkksuwSWXXFL2/" + "hiGQSKRgMlkQjweR3d3twpneR6SrlBDg8lkUqwKkIJwOAyXy4VMJsPZKx48eFD2A" + "1qKdGmy7e/" + "vx4YNG6DT6eD3+1WbOBGPx+F0OhGPxzmyVYNk5KoXxCRJhfliUqAiL1mWZRWPVy+" + "Fak2nKAUpbm2lZG1KkGWzeHrsaXz/6PdxcPoggKUUwvuH3o/" + "P7vwsLuy5kPf6yB1DJRfBYFA1jW5PTw9uvfVWrF69GjabDRdffDEuvvhiVfZ93pB" + "uqQkNxBRabRB7RQAYGBjI64YhBCon+" + "hR6mOnROzTZEigdw144ccLpdCIWi2FwcBBtbW2yyKUUGaklGRNTC5w5cwZms7lov" + "Lqa+eJqka7SFI5QHjSZTHKRMZG1EZIm3h5isrZwKoyfnPoJfnTsRxgPjQMAmixN+" + "PiWj+MzOz+D1Y2rRc+t0haSajZGBAIBPPXUU3C73WhubsaHPvQh/" + "PSnP8U111xT9r5rnnT5Ghr4crZK9bZC8Pv9nL3i2rVrefu9CemW84AnEgm4XC6Ew" + "2HB0TvkWHJJl5AgGe8TjUYlkW0hIZDrLYVQKykb0+" + "v1MJlMaGlpyXv41M4XV0P6pjax63Q62Gw22Gy2vBdVKpXCG2+8gfr6+" + "jxZm16v54zSg7kgfu78OX525mcIp8MAgP6mfnxu1+" + "dwzeZrYDfbhQ6bB76ONDWhptnN888/j/" + "7+fu5aXX755Xj55Zff2qQr1tDAB6X+" + "tsCbBSedTofFxUW43W5YLJaS9orlKBHoOWeDg4PYtGmT6EOoZLZaNpvFxMQEstms" + "5PE+hFzLKaRVG2L5YhL5kWV4LpeD1WrNI2O+yK/" + "Sn6WaLcBmsxkdHR15sjaWZXFw4iC+/dq38b+T/" + "4tsbune2ta0DdcMXoNLBi5Bo70RppxJ8v1Q6fRCKBTiGlbKxerVq3Hw4EHE43HYb" + "Da88MIL2LNnjyr7rjnSldLQwAeleltgidBmZ2cxOTkJu92OzZs3S7JXVCI3I6qHE" + "ydOyJpzJie9QKLnhYUFrvVYKokUNmHIwXLqSKPzxUKm6YX5YmINSfxnK5lmqNYk4" + "MLvks2xeM79HA68dgB/8/wNAGDQGfChDR/" + "CF3Z9AdvatnEaY7Fpx3yytlpKL+zbtw9XXHEFdu3aBaPRiJ07d+Izn/" + "mMKvuuOdLNZrPcwD45N6US0iX2ipFIBIuLi7LtFeXIzWilgMlkwr59+" + "2Q90FJIl2iGQ6EQBgYGOImRnOOUQ5zLiXSFIJQvphsakskkJicnMT4+" + "zpENLd1SQ0NbrhZYKggRppgUfnnmlzhw5ABG/" + "CMAgAZzAz659ZO4fuf1WNX4pra2lFubkKwtnU5X9PtX2+zmm9/" + "8Jr75zW+qtj+" + "CmiNdMu9eLuSQLsuymJmZwcTEBFpaWtDa2oqBgQHZchcp6QVaYkaUAkpUD2KkW0i" + "2JC88OTmpOA9MIx6PY3x8nHvAKqUaOJegGxpCoRBWrlyJpqamoonHxPKwXNlWtdI" + "L/oQfP3b9GE/+5UnMxZaMZ3rsPfjcrs/h41s/" + "jiaLNG9aMVkbWTWk02mcOHGiYrK2WnAYA2qQdJVCCunSc8Ha29s5e8VTp06pbnpD" + "WmnT6TQGBwfzJvgqWcLzHYvIy4LBIG+" + "DhpI8ME3uJE0RiUTQ29uLbDaLQCCAqakpbslJSNhut8NoNC77SFcK6BciH9kI5Yu" + "JbItcDzGlQKUjXU/Egx8c/" + "QEePf4oYkwMwJK+9obdN+CK9VfAZFCn4432552ZmcHu3btLXh+lbm3hcHjZe+" + "kCbzHSFZKMkVE1xF6RngtGtlWLdCORCJxOJ+dbQGssC7eTU3TQ6/" + "Xc50ulUnC5XAgEAhgYGCiSl/" + "FtIxU6nS4vciZFvkwmUxSd08bX09PTiEQiiMfjOHnyJBfhCBWqljOkSOPE8sXRaB" + "TRaBSzs7NIJpN5+WJyXSoV6Z5aOIX7XrsPT448CYZduqf3t+/HbW+/De9Y/" + "Y6Kfg9k32LXJ5lMcpGxXLc2LdKtEJTeFHySKtrQu6enh7NX5Nu2XKexcDgMp9MJh" + "mGwdu1a0TeykuPp9Xqk02mcOXOmqHFCbBs56QWyVHzjjTcwODhYsrW5cFhiJpPBy" + "ZMnsXbtWo546EIV/" + "VCRFMVyRDk5bZIvpkHyxdFolNMXE2OXkZGRvGuipPqfy+XwkuclfO+17+" + "E593MAlpoZPrj+g/ho/0ex1r4Wq1eLa2zLhZRrRsva2trauJ/" + "Tbm30ywoAlyseHR3llBhqIBgM4rrrrsMbb7wBnU6HRx55BBdccIEq+" + "6450lUKmhxo28Pe3t48j1k+" + "KI10jUYjgsEgjh49CpZlOUeuUpBLuqlUCtPT0wgGg9iwYUNJsiWQSrqZTAZutxsL" + "CwswGo3YsmVLkVROapFMSC9KE4/" + "P58PExAQymUxenvh89V7gM8AJBAKYm5tDZ2cnotEo5ubm4HK58vLFdPGOLypmcyx" + "+P/" + "Z73Hv4Xrw2+xoAwGa04WNbPoYv7P4C+" + "pr6MD09rYqncimUo1yg3dposCyLeDwOh8OBV155BXNzc9i9ezdsNhs+/vGP4/" + "rrr1d8vjfeeCMuueQSPPnkk0in01zErQZqjnTLudlZlsXIyAgWFxclO3EBykg3FA" + "pxFdxt27bJWvZIJcN0Og232w2fz4e2tjbU1dXJ6g8vRZQMw2B8fBxzc3Pc9XrjjT" + "ck71/O8YSct+jcH/FeyOVyectNu90Oq9V6Xnkv5HI5GI3Gkvliv9/" + "P6YvJNTHbzPjf6f/FA8cfgCPgAAC0WFtw/" + "c7r8Zkdn8mzVKy0dpY+jtovS71eD7vdjp07d2LHjh147bXXcOzYMc6/" + "WClCoRD++te/4rHHHgPwZl5aLdQc6QLypUekoBSPx2G320vaKxbCYDAgnU6X/" + "kW82Ras0+" + "nQ29uLeDwuO89UKtKlyXbNmjUYGhpCKBTCzMyMrOMIkTuddin05JVrB0lDiWRMyF" + "+A5EbpLipaopfL5SpmgVgN0mVZFtABDxx9AE+efRJWkxU3D9+Mf+" + "z7R8F86EJoAQ+//jAePv0w5pPzAIBOSyeuGbgGV62/" + "Ch3NHajX1+edf7VUEgzDVJTck8kkLJalIZZ8UbEcuN1utLe345Of/" + "CSOHz+O3bt347777itrnzRqknSlgu7q6u/" + "vRygUQmdnp+" + "ybTEqkGwgE4HQ6YTAYMDQ0hMbGRgSDQUVvXLGpE8SgvNCbVw3vBVJQJJZ4fGkXqX" + "aQQlDbe6HQHPzMmTPQ6/V5WlHS7kunKMohmmpFuv/t/m/" + "81P1TWAwWZONZ3PT8TXj0vY9iuGs473cX44v44bEf4sHXH0QwFQQAbGrdhJuGb8J" + "lay9DJrVU0PT7/" + "XnNDHa7HYlEAs3NzRUnxWo0Rqg1ep1hGBw9ehQHDhzAvn37cOONN+K73/" + "0uvvWtb6my//OSdGnta39/" + "P9fV5fV6Fd1cYqRLezCsX78+" + "b3lc7hQIAppshdIi5ZAuLZXr6uoSHcdebnNEJWEwGGA2m9HW1satLgqX45OTk4jF" + "liRSxFuAkLHUCRbVinSfn34eZr0ZFoMFMADBVBDPuZ7jSHcyPIkDrx3Af73xX0gw" + "CQDA/u79uGXvLXhP/" + "3u4c7SarUVpG6IvJpLCxcXFPP1sqXyxXNRSN1pvby96e3uxb98+" + "AMAVV1yB7373u6rsG6hR0hV68Gk5FrFXpB8Ok8mETCYj2/" + "29kDxzuRxHtmazWdCDoVzVQyaTwfj4OObn50vmoJUa3kSjUbzyyivo7OwsksoJbb" + "PcO9IKzXj4luOkIh6NRvNG5hBHMjHFQLVIt85Yh4X0Qt7P7WY7zvrO4t7D9+" + "KJs09wsq+L+y/Gl/" + "d+" + "GRf0SKuwE31xfX09Ojs70dTUlGcLSSLjwnyx0gGb1TC7USvSXblyJVatWoWRkRGs" + "X78eL7zwAjZt2qTKvoEaJd1CBINBuFwu5HK5IntFGuWoEIjXg8/" + "ng8vlgsViwaZNm4omIBRup9TwZmZmBm63u+ScMwI5jQ65XA4zMzOcJeW+" + "ffskFwrKGWa5nLS4dEW8s7OT+zntSFaoGCBkTO6FSiKXy+HTGz+Nrx/" + "5OgLJwJJlo9GKv0z+BV//" + "29eXPoNOjw9t+" + "BBuHr4ZW9q3KDoObT0qZAspNGCTvoaEjIU6EavhpasW6QLAgQMHcPXVVyOdTmNgY" + "ACPPvqoavuuSdIlX6rf74fL5YLBYMDg4GDJi15Ok0M8HsehQ4dgs9lKki29nZzjk" + "XHpHo8Hzc3NktUVgDQyzOVyHJG0tLRg69atcLvdsiqzteCfUA6EHMlSqRSnLSaGR" + "ERbTKco1Gp/" + "ZlkWw53D+" + "Nn7foYHX38QL3lewlhwDK6gCxaDBddsvgZf2vMl9Df3l3UcKX7PpQZsCuWLaTKup" + "fQCAE4NUQnUJOkGAgGcPXsWFoulKI8qBrmkm8vlsLi4CKfTiVQqhR07dsiqYEqNC" + "hmGwcTEBGZnZ7Fq1SoMDQ0hlUqpNnonl8thYWEBTqcTTU1N2LVrF6xWK5LJpCreC" + "6FQCGNjYwCQV7CqpoyrkqAjwLa2NgQCAWzZsoV7GdNNDalUKq/" + "9WensMibL4G8zf8MjjkdwZPYIgCUDmuu2X4fP7/o8Ous7S+xBGliWVUyGQjI/" + "uhNxdnaWe1GZzWYkk8k8vwW1lBNqTo2oNGqSdPV6vWR7RRpSSZeQlMvlgt1ux9at" + "W3H8+HHZxytFOIVkSyLb+fl52WJsPtIl6ZCxsTHY7Xbs2LEjz7SnXMVDNBqFw+" + "FANptFf38/" + "9Ho9twSdmZkpypHa7fbzIkqmLUX5hmzSpEPPLiM+" + "vWJz3RiWwa9GfoXvvvRdOMNL6Z9WWys+v+vz+" + "PT2T6PZqi6xVCICLexEBACn0wmbzQaLxcJFxqSgSfwoCBkreVmHw2GsXbtW1c9RK" + "dQk6RKJi1yUMjLP5XKYn5+Hy+VCY2OjbCtHqSA62JmZGfT29mL//" + "v15N75SMqQJze/" + "3Y2xsDFarFdu2beOdh6VEc6vT6ZBKpXDy5EnE43EMDQ2hpaWFm01WuAQlOVI6F6i" + "5G/4AACAASURBVHjo0KE8Aqo1/" + "4VShTQ+0qHH5fC1PxutRjwz+" + "wwePPUgJsITAICVdStx896b8fGtH0edSdk8s1Koplm6zWbDihUrZOWLpbaF14rvA" + "lCjpKsURqMR0Wi06Ock1+" + "l2u9HU1FQUEaoFmmx7enqKyJagnIkTwWAQDocDJpOpZO5ZruY2lUphfn4e6XQaGz" + "duLBrrw0dGhTnScDiMPXv25BHQ3Nwc96DRRKzEm3a5jtIRan8OJUJ48OiD+" + "OGJH2IhsaRU6LX14squK/Evff+C7s5uMAkGWX1lcqLVbI7gO3+xfDGxzCw0Sy/" + "MFxuNRlVH9VQaNUm6SiOiwjlpxKScDJ/" + "buXOnbDmZFGQyGXg8Hni9Xt7IthBKSDcUCnHNIKXGCBEoaTduaGhAT09PHnHIhRA" + "BCc0ys1qtecWqao5b54MaxO5P+PGj13+EB44+" + "wDU0bGvfhlv23oL3D70fY46lVQrDMPB6vXmj56VYQ8pBtczS5eS1DQaDoFk6nboJ" + "h8P4/Oc/" + "z32GiYkJ7Nixo2yJVzabxZ49e9DT04Onn366rH0VoiZJVylo6dfMzAzGx8exYsUK" + "rrAkBhIVyokKstks0uk0Xn31VfT09JQ01iGQI/" + "+KRCIYGxsDy7KwWCzYtWuX5POTk3Mm7cYej0fy/uVCinJgYWEB8Xg8b/lJ/" + "lSi5VcISolqLjaH+4/cj4ePP4xoZmnVta97H27deysu7r84z/6wqampyHeBr/" + "2ZrBDo61HNayEFauWO+VI3hw4dwuWXX463v/" + "3t8Hg8GB0dxTe+" + "8Y2yjnPfffdh48aNCIfDZZ5xMWqSdMuxd4xEInjllVfQ0tKC3bt3c/" + "3apUAIW4q8ivbn1ev1nPORnPMsFYHGYjHOBJ1YRb788suSjyEG+" + "vxJO3A57cbloFA5QJ8jiYrplt9MJoNsNotEIqF6hbzwvORgMjyJ+w7fh5+" + "88RMks0u2hO9Y8w58Ze9X8LbetxXtj+8FL9b+zHctCqcdq9VdpgSVbI7Q6/" + "WIRqO44ooreGsXcuHxePD73/8eX/" + "va13DPPfeocIb5qEnSlQuWZTE9PY3x8XEwDIMLLrhAMtkSSCFdmqy6urqwb98+" + "nDhxQvb5iqUX4vE4nE4n4vE41q5dm1eUKBfkOk1MTHDnX7gkLNd7QS3wLT9zuRzO" + "nDkDu92OVCoFn8/HqUAKo+JqefU6/A7cc/ge/PLML7nusX8e/" + "Gd8ed+" + "XsXvlbsHt5OSNha6F0LRjOkXBsmzVOuwqqdNNpVKq1WFuuukm3HnnnWU5lYnhvCZ" + "dmkTa29sxPDyMI0eOyCZcQJwIs9ksPB4PPB5PEVkpyc/" + "yRbr0aJzBwcGiIhaBkgeIzm23tbWJtgMLNUcsB+" + "WBTqeDwWAoSlGwLMtFgrRXr9pGODTeWHgDd716F349+" + "mvkkOO6x76898vY1FY631hugUtq+3MqlcLhw4c5aR/" + "9clKzg6zSk5PVwtNPP42Ojg7s3r0bL774omr7pVGTpFvqy2NZFl6vF5OTk+" + "jo6MDw8HDZkQ2fxpdlWc6Va+XKlbyRodIpEGQbvtE4Qp+" + "fLP2lRhS5XA6ZTAYHDx5Ec3OzpHRLOdaO5wp6vZ5XxE9yxXxGOIVRsVTCODR9CHc" + "dugvPuJ4BAJj0Jnxk00dw0/" + "BNGFwxKPmcK6UqoNUC7e3tCAQC2LNnT8n250o0NKgNNUj9pZdewm9/+1v84Q9/" + "QDKZRDgcxjXXXIOf/" + "vSnKpzhEmqSdAH+iIt2y5Jq4CIVNOnSxxEiWwIlpEuW8CMjI/" + "D5fLxDJfkgh3RJ0wTDMNi7d6/" + "kpdlySS+oAaFIkO4yI0M26QkW2Ww2rzCUy+Xwt6m/" + "4a5Dd+HFyRcBLE1o+PjWj+NLe76E3oZe2edWjSU//" + "RlKFTGJdIuka8p5MakNMmFEDdxxxx244447AAAvvvgi7rrrLlUJF6hh0qVBL+/" + "5BksWQskNbTAYkMlkMDk5KYvU5bYek9E48XgcDQ0NWLdunazcXjabFT2nUCiE0dF" + "RmEwmbNmyBcePH5eVCxNKL7AsK6mPf7lDqMuM5EfJKPFjx46BZVkcjx/HT8Z/" + "gtf9rwNYatX99PZP4wu7v4D2OuWyumroZ0sdQ6iIWfhiKmx/" + "LtTQVvoFEgqFiqRlyxk1S7o6nQ4Mw3DLe6HCTyHkLsGBpZssEolgamoKPT09siJo" + "qZFu4Wic+vp6WaN3AHFlAS0tW79+fVHRRepDUUi6JOqfnJzk/" + "o2OghoaGs5pFKQW6AkWM7Mz8DZ68R+v/gdOLCwVSptMTbhi1RX4545/" + "xgrrCgQ8AWTsGY585BaRqkG6SmVcYu3PJEVBtz9bLBak02nMz88Ltj+" + "Xg0p1o1100UW46KKLVN9vzZLu1NQU3G43uru7RU23C0EiTyk3G12Is9lsWLVqFQY" + "HpeflgNKkS3ep0f4Lk5OTso4D8JNuPB7H2NgYkskkhoaGimwvCVFKfQjIMejiGyl" + "SEjKmCzVerxepVIpbnmcyGUQikXMqX1IKhmXw5Nkn8e0j38ZkYun76azvxBd3fxH" + "XbrsWdvMSCREBfzQazWtsoF9G9fX1oh4D1VIUqPkdEI/eQm1xKBSCw+FAPB7Pa3/" + "mS1EogZpTI6qBmiXdpqYmWWRLQEhXrGDEp3qgDTrkQIh0aXmZUEuw3AePJt1kMgm" + "n04lIJMJJy/j2RbaR8/DF43EcPHgQTU1NXPGNmK4L+dSS5fn8/" + "Dympqa4a3mupFxykGJSePz047jn8D0YD40DAFY1rMKNwzfiY1s+" + "Bqsxv7FGyHuBvIzC4TCvaTq9JF/Oka4c6HQ6mEwm1NXVoa+vL+/" + "Y9PRn0uZLXs50iqLUOdaSwxhQ46SrxJ9ALMfKsizXqUbIlpBAOV689FDLwtE4Qik" + "RuREoOVYqlcLZs2fh9/" + "tLqh3o40hBMBjEyMgIGIbBnj17ZAnRyfLcbDZzLZpSpFwNDQ2w2WznJCqOZ+" + "J47ORjOPDaAXijXgDAYPMgPtD+Adx26W0wG+" + "T5EPM1NjAMw0XF9JI8mUxifHy8ojaZ1fJd4CN3senP5J6Q2v4cCoUEBxcsR9Qs6S" + "qF0WhEJpPJ+" + "xkh24mJCbS2tvJKzJROgSCRLh09SynCke2kPhQMwyAcDmNxcRGDg4NYv369pIdUS" + "ocZsXBkWRZ9fX3w+/1FhCuHEGhrxMIHj4j6I5EIotEoFhcXi9p+bXU2PD/zPP7q/" + "SsazA345LZPYkPrBkXnwodwKoyHjz+MA0cOYDGxCGBp0OOt+" + "27FB9Z9AEePHJVFuGIQGrN+6NAh2O32omnHamppqxHpAvK60ci4c6FVQjQazWt/" + "fvrppzEzM4OWlhb4fL6ymoWmpqbwsY99DHNzc9DpdPjMZz6DG2+8UfH+" + "hFCzpKuG6Q3twdDa2oo9e/YILm/" + "lToGgtwuFQjh48CDa2toka4alKBGApQeHjEu3WCzo7+/" + "PW9aXghjpJhIJOJ1OxGIxzsIxHA7D5/NJ3r9c0KJ+obbfH7/+Y/zK/" + "SsYdUawYHHUcxR3vu1OrF+5viwNsT/hxw+P/RA/PPZDzoRmZ+dOfHXfV/FPg/" + "8Eva460TZ5IbW3twsaAs3NzcHpdBb59MqxyaxmpFvOy4FeJRTul2EYPPbYY3A4HL" + "jyyivh9/" + "vx8ssvK+" + "pOMxqNuPvuu7Fr1y5EIhHs3r0b7373u1WdjwbUMOkqBYl0SVuwVA8GJVMn5ubm4H" + "A4oNPpMDw8LKsTrlQESqcpSDHR7XZL3r/YcdLpNFwuF/" + "x+" + "P9auXYv29vY8I5ZyiE1J2gTIb3U98toRZIwZnA6cRou1BWvMa3DIewjGmBHBYJAb" + "UkgTkVikNR+bx/1H7sdDxx/" + "iTGgu7LkQt+67Fe9a865lo7wQ0tIK2WTW19ejoaGBi4wLX+DVinQrdRyDwYD9+/" + "fj2WefxVVXXYX3ve99Ze2vq6sLXV1dAICGhgZs3LgRXq9XI10CJQ9CLpfjTEE6Oz" + "tlG95ISS8UjsbZtGkTPB6P7NZjoQIcic7dbjc6Ojry0hTlmp/" + "TrmJ9fX28KYpyDW/KJe1D04fw18m/" + "Ipxecn+qM9XBYDRgVfcqbB3cipGREXR0dHCTjmdmZhCNRvPygg0NDbDb7VhIL+C+" + "1+7Df538L86E5l1r3oVb992Kt/" + "W+" + "TfE5VhNCNplCJjj0gE0yQqfSqMYkYLULaePj4zh27Bg3hl1N1CzpygE9kNFisWDl" + "ypXYsGFD6Q0plEovCI3GSSQSZeWC6f3Pz8/" + "D6XSipaWFN00hxxKSgOidJycnMTk5WeQqxvf7akS6chFOhfHNv38TDx1/" + "CDnkYDFYsHbFWjSYG9BZ34kLey7kfpdExUK2iG9Mv4EHTz+IZ2aeAZNb+" + "k7f1fMu3DJ8Cy5cc2FVor9KQ8gEh7bJXFxcBMMwmJ2drahNJkmBVApq63Sj0Sg++" + "MEP4nvf+" + "15Fmi7Oa9KlJ0I0Nzdj165diMViWFhYkL0vMc8BsdE4SqdAEAKlybyhoUHU+" + "1eKJSQNQkQnTpyQrHc+F94Lv3P8Drf+6VbMxGZg1Bvxpd1fwqWDl+L4/" + "HHYzXa8p/" + "89JWeH6XQ6TMQncPdrd+" + "PJkSfB5ljodXpcPnQ5rt90PXrNvYhEIjh27FhRg4fdbudWKrXmO0GDr8Osrq4Ora" + "2tnHxrcXER4+PjqhoCVWMSsFrqhUwmgw9+8IO4+uqrcfnll6uyz0LULOmKpRcKx+" + "/QEyFSqZSighgfpIzGKUf1EA6HuehcaM4ZDb1eX6TM4AOZckx3qEktvpXrvSAn0p" + "2OTOPWP92Kp51Lzv17Vu7BgXcfwOb2zQCAvd17Je3n2Nwx3PXqXfjd2O8AAEa9ER" + "/Z9BHcvPdmDK0YKvr9Uv4LROZVKfOXahE7Ucfwybdoa0gi6VNqk1mN9IIapJvL5f" + "CpT30KGzduxC233KLCmfGjZkmXD/" + "RgyUKyJTCZTJKISQxk5LhOpys5GkcJSUUiEczNzcFoNGLLli2SR8xLybcGAgE4HA" + "5YrVZs374dU1NTsirLfKRJ8tiBQIDLmQrpSqWQLptj8fDxh/GNv38DkXQEDeYG/" + "Nvb/g3Xbb8OBr34w0vv+2XPy/iPV/" + "8DL0y8AACwGCz42JaP4cbhG7G6cbXgPsT8F0KhEBYWFjAxMYF4PM5V1kmeWI2leT" + "W60QBxj1sxa0iSK/b7/Zy2mjYEKjRML1e9UArxeFwVL92XXnoJP/" + "nJT7B161bs2LEDAHD77bfj0ksvLXvfNGqWdAsHIpLiVWNjo+" + "hgSaVNDsDSzXP06FHkcjmsXbtWUuuhnIeHngbR2tqK5uZmyYQLiKcXIpEIHA4HAG" + "Djxo3cfuW+FArTC8RAx2KxoKWlBbFYjKugkwiKfhBLXY+zvrP44h+/" + "iFenXwUAvHfwvbjrnXehp6FH0vnlcjm86HkRPzj5A7zsXZqkUW+" + "qx6e2fQo37L4BK+0rJX/" + "WQhD9qMViwebNS9E26ayKRCKCBSvS4CH1XlgOpCsEIZtMOiqmOw7r6uq48UJEg6v" + "mZyP3ohorjn/" + "4h3+oyiqjZkmXgES2dPFKDEpIl5BhKpXCpk2bVJ3WAOTrYUnL7uTkZFk+vPS+" + "x8bGkEgkeL0X5KoRCEnHYjE4HA5ks1ls2LAB9fX1SKfTed1WfB4EsVgMIyMjeZIu" + "s9mMFJPC3Yfuxt2H7kaGzaCzvhN3veMuvG/ofdI0pzkWvx/" + "7Pb710rdwNnwWANBsacb1O6/" + "HZ3d+Fq029b4z+nyEluZCc93oaFCouaGa+" + "lm1jkMbAhGQNM3p06e5lxLtw0EkbXV1dWWnH5aLrE8Kapp0jx49CrPZLCnfSSCnE" + "FQ4GieTyYiONJeLdDoNp9OJYDCIwcHBPD0ssZKUA5pA6X2vXbtWcNKEXNJNp9OIx" + "+M4efIkhoaGuBcQy7JF++fzIDh+/Di6u7uRTqe51t/Xfa/" + "jnrF7MBGfAAB8dONH8e2Lvo0VttJ5OmJCc8/he3DWt0S2bdY23LDnBly3/" + "To0WtStPkuJQsXmutF6WtLcQLe42u12rjmi0qg0uZOXjMFgwNq1azlipVt9PR4PY" + "rFY0RghUryUMjy11tQmNU26O3bsqMhNIzQaZ2pqqqRZjhDohzWTyWB8fBwLCwvo6" + "+vDhg0bim4ug8GAZDIp6xh6vR4Mw2BsbAxzc3Po7+/" + "n3XfhNlJeQrT1pMFgwL59+/L2K8eljFTMo+kovvn3b+LBEw8ihxz6G/" + "vx9e1fx3rrejhOOri2V5KioM1PkkwSPz/" + "9c3zv8Pc4E5rehl5cteoqfHbvZ9HZIr0rTw7KWfrzjRIqnPA7MzODRCKBVCqF0dH" + "RvNSM2uRSreaIQnLna/UtHCNE3OmIR6/" + "QdQiHwzXlpQvUOOkSNya1UGo0jlIlAh1NTkxMYGZmBqtXr8b+/" + "fsFXxpyI1CWZTE3N4e5uTkMDQ2Jam1plMrp0p1vRMN78ODBspdzz48/jxv/" + "eCOmIlMw6o24ac9N+Or+r+" + "Y5dtFmMCQ9EWfieNb3LH4x8QssJJekf4PNg7hl7y24auNVcDlcsBnVGVDIB7XzrX" + "xGOMSOs729XdQeslyv4mqlMYDSL2UhdzqSoorFYpiens5rdBkfH8fU1BTq6upU+" + "16eeeYZ3Hjjjchms7juuutw2223lb3PQtQ06SoFIRpyw6XTabjdbvh8PgwMDAiOx" + "inHf4GQrZCNI982UjvgSIfaihUr0NLSgjVr1kg+" + "NyFypxtK2tvbJRnES0GEieCLL3wR/z363wCWvA3uv/h+bG3fWvS7tBmMP+HHj17/" + "ER44+gDni7CucR3+ddW/" + "4sLmC1GXrcPU+BQSiQSSySQaGhoqkuerls+" + "t0WgsSs0IRYNiygExVCvSLQdiNpkLCws4ceIETp8+" + "jZ07d6KhoQEHDhzglAdykc1m8YUvfAF//OMf0dvbi+HhYbzvfe/" + "T2oBpKL35STFNp9PB7XZjYWEB/" + "f39JUfjKPFfmJ6eRigUgt1ul0VcpRodaMXGihUrMDw8jGw2izNnzkg+P4Bf2+v3+" + "+FwOGC322W1SpfCbx2/xZde+hL8aT+sBiu+duHX8IXdX4BRL3xNpiPTuP/o/" + "Xj0xKOIZZYq4vu69+HWvbfi4v6LOQkacSbz+/3wer0YHx/" + "P86olHgTlkkw1SFfoGKW8iguVA6X0tNVSSaitCCCrg3e+853Q6/" + "Voa2vDfffdh3A4XJZc79ChQ1i7di0GBgYAAB/+8Ifx1FNPaaSrBvR6PZxOJ/" + "x+P9asWSN5KS7Hf4FEia2trWhra0Nvb6+" + "sSFGspTcQCGB0dBR1dXV5io1UKqXIe4FsE4lEMDo6Cr1ejy1btqC+vl7WvoSwEF/" + "ArX+6Fb8e/TUAYN/KffjBP/2AtzGBYCwwhvsO34fHzzyOdHbJj/" + "ida96Jr+z7Ci7subAon0w0pYuLi+" + "ju7kZjY2NeeoIsTYXGCUlFNSRFcpf9QsoBMa/" + "ihoYGruOxksTLV2BVE3QLcLm5Xa/Xi1WrVnH/" + "39vbi1dffbWsffKhpklX7pdJPAaIiF8q2RJI8V9YXFzk9MKkZffUqVOyc8F86QWa" + "FDdv3lykpFBiRqPT6ZBOp3Hy5EkkEgmsW7dO1T72/" + "xn5H3z5T1+GL+FDvaken1v7Odz0DzehsYH/AXl97nXce/he/" + "Gb0N8ghBx10uGzoMty892bs7Nwp69h8XrVkiR6JRBAIBDA5OcmREa0pFpvjVQtjd" + "MS8iknRLp1O48iRI9DpdBXzXqhGC3AtTY0Aapx0paJwNE5XVxfa29tl39hGoxGpV" + "Ir330inl81mU8V/" + "gd6GnnMmRopyvRcymQxmZmYQDAaxefPmPMlauViML+KWF27Bbxy/AQD8n1X/" + "BwcuPoDEdAI65B8jl8vhr1N/xb2H78WfJv4EADDpTfjwxg/" + "jpuGbMNQiHBHLBb1Ep49PG6cTXW3hKB273X5O0wvlorDLbGFhgUtL8TmSKfXppVH" + "pbrRgMIieHmmNM6XQ09ODqakp7v89Ho9q+" + "6ZxXpOu0Ggch8OhuCBWSJ6kJViv1wv6LyghXSL/" + "OnPmTEmtLYHU7jLa+Ly1tRU2my2vqUEJSEOAxWLB78Z+h5uevwmLiUXYTXZ86+" + "3fwrXbroVOp8PZmbPcEj3LZvG7sd/" + "h3sP34tjcMQBL3WOf3PZJ3LDrBnQ3yJuGTCCXGISM04lpOJFyRaNRMAwDlmUxPj7" + "ORcZq5bwJqqkqAIQdyfh8evleRGKRbKUj3XA4zHUHlovh4WE4HA643W709PTgF7/" + "4BX7+85+" + "rsm8aNU26Qg9XqdE4SluB6e2i0SjGxsbAMAyGhoZEW4LlSs2IJjYcDmP16tUltbY" + "EpX6HFPbGx8fR1dWF/fv3IxQKYW5uTvK58YHMTgunw7hv9D48v/A8AGB/" + "537c9877sL7zTV9enU6HBJPAE8efwIEjB+" + "AKugAAbbY2fHbnZ3Hd9uvQYmsRPFY1wWcaHg6HMT4+DqvVmmeGQ+" + "dKS6UnSqEapFsqNy3k01s4003Iq5g0NjAMU9FIlxjWqwGj0Yj7778f73nPe5DNZn" + "HttdeqRuh5x1F9j+" + "cQ9PgdsdE4Sk1vjEYjkskkTp48iXg8zo2wKQWpUjOWZTE5OQmPx4PVq1ejrq6Oc7" + "IvB7SrGFE6kOtSjlVjPB7H6OgostksfI0+" + "fPGFL8Ib9cJmtOG23bfhsp7LEPfHccSzlDdkzAweH3scT808BX/" + "KDwDoa+rDDbtvwDWbr0GdSfqgy3MJk8mElSvzPRxI2y9pdy1s+" + "yXqCSkEtJzHrwvNdBNqbCBa+" + "kgkokq7byHUzuleeumlqhvcFKKmSZfcmLRaQMr4HbHcrBBSqRTGx8fh8/" + "mwbdu2kkt9GqVaeukIdOXKlZyvrcfjkXWOfKANafi8KZS4oLEsizNnziAUCmH1wG" + "oceOMA7v3jvQCW7Bd/9E8/ylMmOANO3H/" + "kfvzs1M+4CQ3r7OtwZe+VeM+q96C5sRnJSBJGu7HsSQbVUBfwkRWfIxfd9ktP+" + "iXqCRIVFjY41Nr4daFJx5lMBh6PB6FQKK/" + "dV8irWAlqbRIwUOOkS09TaGpqEjX4piEnvZDJZOByueDz+" + "dDb24tMJpO33JICoZZeorUdGxsTnEKsFCQKZRgG69evF5TTyFE8kFxwPB5Hf38/" + "jB1GXP7by/H63Osw6Az46r6v4iv7vwKj3ohcLoeXPC/h+0e/jz84/" + "4AclsjwbR1vww27bsClGy9FLpfjfGtpWRMp4BBSqsT4caWQQ+pCbb/" + "kMweDwTyvXvJ5qzFGpxrEbjKZYLVaYTAYsHr1au64Ql7FheoRKeenkW6Vkc1m4fP" + "5JLmL0ZBCuvS8sDVr1mBoaIgb1S4XfIU00oBQX18v+" + "WUhBSzL4vTp0wiHw3mGNEKQQrp011tXVxfsdjteCr6Ezz/" + "7eUTTUfQ19eGxf3kMO9t3IpVN4ZdnfokHjj6AEwsnAABmgxlXbbgKN+y+" + "AcaAkVsl6HQ67iEjy3W6gEMKWMlkEkajkXsoiTNVNYtN9LUo5wVA5FmFDQ60K5nP" + "50M6ncbs7Kyi9IQUVHMoJX3OYl7FRD1CDNOleBVHo1FVTaiqgZomXZPJhI0bN8re" + "Tox0aXlZ4bwwnU5X9ryzcDgMh8MhqLVVCvKSiMfjoq3MhSiV0/" + "X5fHA4HGhqasLw8DD0Rj2+8co38N9TS228V2y4At+/5PsIJAP4f3/7f/jJqZ/" + "Al1ga0d5ma8N126/" + "DdduvQ0f90rJzLDgmejyhAk4mk+" + "EeStpAnCalajx8lcq30ukJnU4Hs9mM9vZ2Tj0xOzuLaDTKuZLRLyAl/" + "gvVtI+Uovk1m81obW0tSs8IeRWnUimcOnUKBoNB9ZTSV77yFfzud7+" + "D2WzG4OAgHn30UVXzxjVNuoCyQYd8pEsrHmh5WeGxlMBgMCCVSuH48eNIp9NYt26" + "d5IprqYe80JCGRI1Sz1UopxuNRjEyMgKDwcDpjhOZBD78qw/jD1N/" + "gFFvxHcu+g5WN67GR5/6KP7o/" + "iOXQtjWvg2f3v5pXLH+CthMtryHW+" + "lgSpPJVNR1VZgzjUajiMfjSKVSWLFiRV7OVC1Us8glJOUizR2F/" + "gtyludKDMyVoBzrRTGvYpfLBYfDgbm5OQwPD8NqteKmm27CVVddVfY5v/" + "vd78Ydd9wBo9GI//t//y/uuOMO/Pu//" + "3vZ+yWoedJVApp0c7kcZmdn4Xa70dbWViQvKxd0AW779u15OtBSIEt/" + "vpuWzmfThjSzs7OyopjC9EIqlYLD4UAsFsO6deu4fFkul8NHn/oo/uD8A4AlZ69/" + "f/" + "nf4U8uqRDMBjMuX3c5PrX9U9jTuYfbJpvNclF+LpdDLpcDy7KqRFp8OdPTp0+" + "jra0NLMvm5YktFktedKg0T3yumyPoohWf/" + "0IkEslbnhOj8ELTdDUNzMWgdnME8SretGkTvvWtb+Hvf/" + "87jh07hmg0KtsKVQgXX3wx9/f9+/fjySefVGW/" + "BDVPukoiJyLhIqTV3NysqrELkO+" + "ZSwpwcgiXnCdf7o14L9jt9qJ8sNyuNEK6RBs8Pz+PgYEBbN68Oe/" + "BP7VwCk+PPc39/4h/BACwuW0zPrrlo/" + "jXzf+Ktrriz0fOhWEYeL1e+Hw+tLe355Exye+" + "qYd5N0hMNDQ15eeJUKsWlJ2ZnZxXniZernIvPf4F0mpGZe7RpOkkrJZNJSWbhSlH" + "J3HEkEuGiYL48sRp45JFHVImeadQ86SpBIBBAPB7H/" + "Py87CIcIP7g0d1exDM3m81idnZW9nkWRqHRaBSjo6PQ6XSC+WAxoxw+" + "6HQ6JJNJvPrqq+jt7RX0+B1YMYDhrmGcWjyF/rp+DLcM418G/" + "wXDq4dFTWN0Oh3nR9He3o69e/dy2k0S9ZL/" + "AqgYEZNJDlLyxCQ6VLt4JRVq5VvF0hMej4dLIRXaQ6pZqKzkZIdgMKg41/qP//" + "iPvM/kd77zHbz//e/n/" + "m40GnH11VeXdZ6FqHnSlfOGDoVCcDgcMBqNsFqt2LJli+" + "zjkeiz8EEszAkXeuaWU4BLJpMYGxsrWvLzzCbCGgAAIABJREFUQaoEjDRMkDlnF1" + "54oWhaxWa04cVrXuRIksh+FhcX4Xa7kclkuAizsbERDQ0NSKfTGBsbg9lsxo4dO/" + "IicvJA09eIJmDyB6gMEQPCeWK6eBWJRDjzcOLMpaZxPh8qGU3TioC6ujr09vYCyL" + "eHLHwB0YVKuS+gSnovlNMY8fzzz4v++" + "2OPPYann34aL7zwgurfRc2TrhREIhGMjY2BZVmsW7cOjY2NePnllxXd3CQfTG4kO" + "rfa2trKmxMup+vL7XYjHA5j7dq1kgxppJAu3TCxc+" + "dOHDt2TJBwaRIEwBEeiQRJxxxZqobDYfh8Ppw5cwYMw3BRYzAY5B50oc9QiojpiJ" + "j4IZPt1HowhKJDUkWfn59HLBaD3+/" + "nJv6Sa6GWnrhazRGFI3SEXkDRaJS7xwtnujU0NIimJyqZXgiFQqq1ANN45plncOe" + "dd+Ivf/mL5NmLcnBeky7tzlU4CVcoYi0Fugjn8/" + "kwNjbGm1stB6Qd2OfzYdWqVaJjfQohRrqJRAIOhwOpVEq0YQLgJ9tSZjtmsxnxeB" + "zBYBAbNmxAe3s70uk0wuEwl1eMx+MwGo1cNEyW8GJji4BiIgbA+" + "cHS55pMJpHJZMAwDLetGukJoq0l6ZjVq1fntf7SeeLCuW5yj18N0iXTKcQglp6Qq" + "qOu5GeplK3jDTfcgFQqhXe/+90AloppP/" + "zhD1Xbf82TLh8RJJNJOJ1ORCIRbqR54e8VRqxSYTAYEA6HcfbsWRiNRlXNvukmhJ" + "UrV6Krqwutra2yPX8LUxmkq87v95d0K6OjSrISkGKkMzs7i/" + "HxcXR3d2Pv3r3cOVssFrS3t/" + "PmUol5TCwW40TzhIzF3Kv4yHR+fh4ulwttbW0cSRSadKuRnqCvCd/" + "EXzLTKxKJcFMcxFQEYseoJJRGoGItvyQ/" + "Pjk5yU2vIPljtX16AXXNbmiMjY2pvk8aNU+" + "6NOhZZ3yDJWkYjUau5VQqYrEYAoEAZyen5hdO8qvNzc1cOzDJt8oBHemSiNnr9WL" + "NmjWi44g4u0WKqKQQUzAYhMPhQENDA3bv3i1JEyuUS41EIohEIlyRJ5fL5S3fGxo" + "aeDuSRkdHefPG5BqoWbArRYh8M72EVAS0BwNdjKxWpKvmMYS+" + "08OHD8NgMBT59NIvIKVpmWAwKLslfzmg5kmX2MeR8eB9fX0lZ50BSzeJVP8FOnJu" + "ampCZ2enIsLle2BJftVsNmP79u15OSQlkyCIemF2dhYulwsdHR2SZrOR5TlNQmKI" + "x+NwOBzI5XLYtGlT2dG+" + "wWDgnfIQi8UQDoe5nCLJE9fV1SEajXKpEqFlptoFOyVRaKk8MT3BwmKxIB6Pw+/" + "3Y8WKFYqMw6WgGm3ABoMBBoMB3d1v+" + "iKLtXnLTcuQWketoeZJNxKJ4MiRI1i1apWs8TtS/" + "BcymQzcbjcWFxcxMDCATZs2YXx8vCwlAiE/QlqZTEYwv6rE/" + "DyVSmF0dFSS2xohnvr6ehw8eBB1dXUcOfBFlcCb14QYq0uxtlQKvpEzLMvC5XJhe" + "nqaW6afOXMGVqs1L08sFj3JKdjR15+8BNVoO6XzxARET3zixAkkEgn4/" + "X4kEglV8sSFqFY0XfgdiLV5Cw3XFPJeqEWzG+A8IN36+npJI80LUcp/" + "gWht16xZk1fIUmqATgiUZVk4nU4Eg0EMDQ2JNkzIId1YLIbR0VHEYjF0d3djcHBQ" + "8HcLi2TEqJksgRcWFuByuZDJZDgittvtXGMBMQCqtvMXMQlqbW3FhRdemKcgSSaT" + "XHrC6/" + "UimUxyc8+IjE2JcgJ4M+WSSCQwPz+" + "Prq4uZDIZ5HI56PV6VQt2VqsVRqMRfX193OfjyxMDyFMQyJVzVSPSlXMMvrQMPVy" + "zMD3xxBNPcNeiEjnwu+++G7feeisWFhZkNzWVQs2TLlnCyIWQ/" + "4LX68Xk5CS6u7t5yZwYmcuFXq/n8s39/" + "f2SpkHwjUcvBNHChsNhrFu3DtFoVHGRjDzEtAwsHo/D6/" + "Xi9OnT3LWen59HIpHgIstKdjQBS8WY0dFRAMC2bdt4PYFJ9EQXd2jlBD33jCZiKc" + "qJXC6HiYkJLCwsYHBwEC0tLXkRMXkxqqUnLiQRsTwxGaXDlycW86qtBc9eIWliIp" + "HAhg0b8Morr+D+++/Hv/3bv6mqMJiamsJzzz3H2VGqjZonXaWgjcxpE/RS/" + "gtSp0AQECL3+/2or6+XlQIR8uEFlm7oiYkJzMzMoL+/" + "n3MVi8fjvNEx8UGQUySLRqNwOBwwm83Yt28frFZrXlQZCoUwNTXFzUYjJNzY2KiK" + "ZpXk6n0+n+" + "QpHTTMZjPa2tqK1AUkIp6YmOBeUrRyoqGhgSOLhYUFOJ1OdHV1LbmsCUS1YukJEh" + "FLJWIphCiWJy70qqX1xGTAZDUi3Up0oxH1xNVXX43HH38cjz/" + "+OFpbW2UPJRDDzTffjDvvvJPrTFMbNU+" + "6Sh9so9GIWCzGWRfSI9NLbSeFdOmmiba2NqxcuRIdHR1ly7/" + "oKRPd3d1FJF4YHcvV2wJLeeGxsTFuJDv9YPNFlbS3QTgcxszMDGfETXeoSZ0bRqR" + "zExMTWLVqFfbu3ataJC3mVhaJRDA9Pc0NoGQYBmazGf39/" + "WhpaRH97pQU7Mh2fESs5PPyefXSk46JeiKRSCCRSMDlcnHfjRp54kJUehIwKWwDU" + "M035amnnkJPTw+2b9+uyv74UPOkCygzvUmn0/" + "B6vYjH40Uj08UgZcgkMaShDcpHRkYUyb/" + "obYisrHDOWeE2hQ87II1sSfRMTG+kjmQX8jYo1RhB8qz0w04kaI2NjdizZ4+" + "quk4h0G5l2WyWSwP19fVx5zQ5OQmGYbgWWnL+Yg+7lIJdYYqC/" + "hm9D6XQ6fgnHR86dAgdHR2IxWK8hSulbb80Kh1NK7WnFPNduP322/" + "Hcc8+" + "pcXqCOC9IVw5isRjXldXQ0CD7jSaWXiCaUQBFhjRKlAjEMSwSiWB0dBQGg6FIVlY" + "IEumSc5Tb3NDT05PX3FAOxJb34XAYbreba4yoq6vj+" + "v03bNiQp1ioBsjKxOVyobe3lze6JvnEcDjMjdqRm1oRK9glEgk4nU5u+Q/" + "kpyfUKtgBS/" + "cFX8RPZGyFrmR0t5nUqLKSZjflKEiEfBdOnjwJt9vNcYLH48GuXbtw6NChokGk5e" + "C8IF0pkS5tGjM0NASbzYYzZ87IPhZfekGKIY0S0mUYBj6fj9uvWMsjiY5sNhuCwS" + "BeffVVLmohuT++qDEQCHCTIaoRWRYu70lkOTs7yxWoTp8+zeVZyfmLdaiVC+" + "K2ZbPZRBs86G4sPttIOrVCTMXp5buYR67H44HH48Hg4CC3wiArlUoV7AohZBpOm6" + "Z7PB5u5DxNxHx64kqmF8jzrmYBd+vWrZifn+f+v6+vD6+" + "99pqmXpALerDk4OAg5xNLR4NyQKcXGIaBy+XC4uJi3r75IId0GYaB2+" + "3G3NwczGYzhoeHRW8uukhms9kwPDzMFVXC4XCeExiRgJnNZszPz3M2kWq1MksFiS" + "zJ3LULL7wwjzhInjUcDsPr9XIdavX19XkFr3IeanJvhMPhkl4UQhBLrZA8Kj2SnU" + "5NEBneyMgImpubsXfv3rwXCx3dEqhZsJP6+QpN0+" + "k8MTHDSSQSHGkTIs5kMhUj3Wg0WvXVkFo4b0mXru7ztcAq1dvq9Xququ71ejnP3F" + "I3uJSx72T0zuTkJFavXo1du3bhzJkzJSVgfHlbuqhCy23C4TBHNBaLBblcDmNjY3" + "kRcaUn0ZJ0ic1mw65du3iPxzcVgmXZPIMZh8PBNXfQUWWpaJ0u1JVqj1YKvplfDM" + "PkKSd8Ph9YlkVLSwssFgvC4XDJF0k5jR1qEjFfnph8PtLgEAgEoNPpOIc5QsZqEH" + "EoFFL0kpSD8fHxiuz3vCBd+" + "oGhZ4b19PQINk4oecjIwxqLxZDNZiW11xKIRbq53Juj2Nva2rB//37OG0JI/" + "iW3SEauC/" + "Fh2LFjB5eWIXnKQCCAiYkJpNNp2Gy2vDylGtVhoimOx+" + "NYv3697EhFr9dzL4aenh7uc5GInsi7SMGLPn9C7OFwGCMjI1Ut1BEYjUY0Nzdzbb" + "Dr16/nilnhcDjvRUKfv5hJPCC/" + "YEeadLLZbJ49phqfj9YTO51OLsdNN92oMVyzUraO1cB5QbpA/" + "qwzemaYWqCn4tbV1Yl2fPFBiHRDoRCXT+" + "QbvUNvo4RsiVk5PbmBfjiF8pQkj0cq9+" + "l0mmu1JWQg1SyIZVlMTU1henpa1qRiKeAb6U37Gvj9fkxMTCCVSnEks2bNGrS3t1" + "d9IgRJJdTX1+" + "cRfqHelrxIIpGIqEm8WFOKEBGTe2HVqlWCBkBqFezIJGA5eWLaAEjMd6KcqRHnGu" + "cF6QaDQbzxxhtoampSfdZZOBzG6OgoTCYTJy17+eWXZe+" + "nkEBp74WNGzfyRn0kElVitwi8uYy3Wq28DlxCEMrjEZNyuimC9jwgETF9biT67Oj" + "oKCL8SqFQr0pWPmvWrIHZbEY0GsXp06cr1tRRiGw2C5fLhUAggA0bNpRcFtMvksJ" + "OLL6mFDpPLERUqVQKIyNLc+127dqV94zQBTtSHyDnDSgv2AmpF/" + "juL3KOJH1E54npxg673Q69Xl8xL91q4LwgXZPJVFJKxQeig+" + "W7MYgBeiqVKhqZTirLShodMpkMnE4nAoFASe8FQrpyO8lIcwMxb1cj90U3RdBEnE" + "qlEA6HEQ6H4fF4OCKw2WwIhUKw2WzYvn277Dl0aiAYDGJ0dBQrVqzgZrPREGvqoJ" + "f2Ups6CkHSRk6nE729vSULomIQI6pSJvGBQABer1fwfqtUwU6ueoHkiQvz4ISISU" + "H1oYcegtfrRVNTE/7yl79g+/" + "btqhHwgQMH8P3vfx8GgwHvfe97ceedd6qyXxq6ElKr8u2UqoBsNquoKPbaa69h69" + "ateW/9dDrNRSVCht+HDx/" + "Gjh07ZOUDI5EITpw4AWBJitLd3V1SkcCyLE6ePIloNMrlWMWKXUqbG9REOp2Gw+" + "Hgcm7pdJqbOEsX6yoRURKQMfKZTAbr1q2TrcygmzrC4XAekUmRgAFLL+" + "2RkRGYTCasW7eu4sVJGkQLvbCwgJmZGU5hQacmlEjwhIiYBl2we/" + "3117Fp0ybVP3symcSdd96J+fl5NDU14eTJk3j22WfLPs6f//xnfOc738Hvf/" + "97WCwWzM/P53l5yITgzXFeRLrltAIzDAOLxVLkZbB+/" + "XpR+RfDMJJIl+SanU4nWJbF2972NtGbvTBvS4ZnkmIXyVGm0+" + "m8YgsxplGzuUEOcrkcvF4vt4wvNJCnI+" + "Lp6WnOBYwmsnK9Y0nueGZmBoODg6ITMsRQqqljcXGRa+" + "qgUxOE3MfHx7GwsFByiGiloNfr4fP5EA6HsXv3bm6gpphJPPkc5SonyN9TqRQSiU" + "RFCnZWqxUWiwXvfe97ceWVV5a9P4IHHngAt912GxeElUG4ojgvSFcpiELA4/" + "FgYmJC0FmMbzspkbXf78fo6Cjn63Dy5EnBfZcqkgkVu2ZmZnDq1CnodDoYjUYEAg" + "Fks1nRhgi1QSwXW1paMDw8zPvg8o3toZfGfH4NYjlKoXNob2/" + "H8PCw6rljPs+GQglYKBRCMpnkcrFi6atKYXFxEWNjY+" + "jp6cGePXu4a1fKJH5ubg5jY2OcUxmdJ5arnCCeI319fTCZTKpM7ChEJXK6o6Oj+" + "Nvf/" + "oavfe1rsFqtuOuuuzA8PKzqMYDzhHSV5tvS6TROnDiBzs5OUWexQpTyXyDtwDqdD" + "lu3bkV9fX1egaLwPJQUyciQSQDYs2cPdwyxhgi1iZi2XNy6davsnDofEZOlPSGCe" + "DwOk8lU5NdArlEymcTo6ChyuRyv7WMlQSRSpAvQbrdjx44dYBiGy3FHo1EAKOquU" + "1s5QczrWZaVXDTlM4mn7yF6VSXFJD6dTmNkZAQsyxYV6wB1RyeFw2FFpCvmu8AwD" + "Px+Pw4ePIjDhw/" + "jyiuvhMvlUj0Ndl6QrlyQAgvDMOjr65Ptmynkv0AKWJFIBOvXr89bWvJ9cUqKZKS" + "LKhQKFU04FmqIoInY5XJxI29KTYkQQrmWi2LgW9qT7icytodUtUkhbGBgoGSOvBI" + "g2ufp6Wku/0/" + "A19RBinWRSIRr6qCJTMnLkE7rrF27tuyZYUL3ELHzJB2ChSbxqVSKuw5Cy3I1Ryc" + "pnRoh5LsALKUXLr/8cuh0Oi5Ft7i4qPoctvOCdKU+bMQflmVZbNy4EX6/" + "X9HSpjC9kM1mMT4+" + "jtnZWW6sj5QiWTnNDVK7qEoRMd1QUIqI6U4uUo2vRu64sLuLNJI0NTWhra0NPp8P" + "U1NTnMcsnWOtFBGTF3dra2vJdAbd1EFAN3UUzn+jc6xiS/" + "toNIqzZ8+ioaFBMK2jBmjlSqFJvM/" + "ng8vlQi6Xg8FgwMTEBPx+vySTeEB5h93c3Jzq6YXLLrsMf/7zn/" + "GOd7wDo6OjSKfTqvsuAOcJ6ZYCGSwZjUbzIrNwOFxyMgMfiPyLRBkTExPo6emRZF" + "BOuoEA6c0NpJNHLa2rEBEXDoEk+" + "b3GxkYYDAbMzMxUzRiHD7QiYOfOnUVLaLrY5XK58iZFqOUbS7rqkslkWZ4VtBaXD" + "G6kX4Y+nw/j4+O83YFGoxFutxt+v1+S7rcSIMb/" + "Xq8XGzdu5J4pIZN4eqIzbRLPBzEntmQyiXvuuQdTU1Oq6vEB4Nprr8W1116LLVu2" + "wGw248c//" + "nFFXtrnhWQMWHoYCj8LMY5ZWFjAwMAAOjs78y7i3NwcIpGI7ImiHo8HoVAI4XAYL" + "S0tGBgYECUh8rY+evQoAOTlV8Vyb+" + "FwGA6HA1arFYODg7LGxauBXC4Hv98Pp9OJVCrFfcbCiLjSnV3Eiczv9xelVEqBJo" + "FwOCyoOihFxMQ8fnJyEgMDA+" + "jo6KhKOoNuiiB5ViIhbG9vR1NTU8lBnGojFovhzJkzaGxsxODgYMkggDaJD4fDiE" + "ajitIrr7/+Ov5/" + "e+" + "ce3FSdvvEnbXqJTWlLoRR6odBLUpBLSUCdoepPdHFQ0eGy7HjDS4fREa0KDGBxRF" + "0BuS3dFRUGBRdE3VXXXQsiqw4KLE1boFik91La9EJLm1ubpLmd3x/" + "1ezhJ0zRJT87p5XxmOrOy0Jzc3vN+3/d5nzc3NxeLFy/Ghg0beLnx+0C/" + "b8aIDLpEOqRWq5GUlITExES3X6qOjg60t7dDLpd7/Th6vR5lZWUAgKysLI/" + "NI9dpMpFI5CSd0uv1TlNdY8aMQVRUFL280mw2IyMjgxc3JbKc8/" + "r1607yK+" + "axmPwwv0BsBmJXj9uEhARWyhlEdUCUE11dXXRTialjJY9lMBhQUVFBBxmux4eB3s" + "836UMQOSNTS8yU4A00neYvDoeD1oHL5fJBeR8Q5QTzhuhqEk9uJj09Pdi+" + "fTtOnTqFffv2YebMmaw9pwAy8oMuMYch/" + "gtxcXFIYWxUdQcZpyRaWE+YzWZUV1fDZDIhLi4OFosFGRkZ/" + "f591yaZJ6cwMl6r1WrR3t5OG6yPGzcOUVFRnEm/" + "yPWQQDdx4kQkJyd7tdOLlCZIIHA4HE57x0iJwluYHrdpaWkBHy4gk0/" + "kOZBjMdGZpqamYsKECbzon0kdnem16w7mdJ3BYKCVH976+" + "npCr9ejoqIC48aNQ0pKSkBeB6b5ksFggEqlwtatW+" + "nv2nPPPYe7777baSJvCDOyhyOA3qyVuEd567/gjd6W6ZlLusNarRYtLS1u/" + "76vTTIyLaTRaNDZ2Ynk5GQkJCTQGXF/" + "igNS22MTpuWiJzNvV5jSI6b7lzv3LBKISRBwDcTk9dbpdH3GrwMJcQCLjo6m65V1" + "dXUYP348wsLC0NnZiYaGBgAY9GSXt3R3d6OiogIRERFeNcrc2S1ardZBbUS22+" + "2ora2FXq8PuO8yc9Q5JiYGR48excSJE/Hmm2/" + "CbDbjwoULiI2NHS5Bt19GTKbb2NhIN4e8xWKx4NKlS24F0KREQSasmEdbg8GAq1e" + "vOh1z/" + "FEkAL2iftKJ91QbZja6mMf6gYKYt68DsVx0XUTJJiQQ63Q6+" + "ljJfA4WiwVtbW2YPHkyLxIwoDfQVVZWIjw83G2GzTRXJxkxAKf3YbCB2OFw0HvaZ" + "DIZ6zee/" + "sorzJOJVCqFTqdDVVUVEhISkJiYyNn7cf78ebz88stYvnw51q5dy0s5hwVGfnnBZ" + "rP5vA7H4XBApVLhjjvuoP+MHK+" + "JFeKUKVP6vOmki56VleV3sCW72kQiEdLT030eLCDX7+" + "5Yz5zo8hQAmJaLU6ZM6dNo5AKHw0G/" + "3kSLKRKJWA1i3sBs1g20GsndvyWBmNxMAPQZsfXmOZApxvj4eK9KO2zBHBPWarXo" + "6OgARVEYO3YsYmJiBnVT9xaz2YytW7fi3Llz2LdvH6ZPnx6wx+" + "KAkV9e8IegoCAnxQPRXt5yyy0e17GTsgTTEs/" + "bYOtpuMGf63d3rCcBgDkR5RqISYbNpeWiK1arlc6wZ86cSTcMmc+" + "hqanJKYgFIhATrfKkSZOgVCp9DnSetlwQrwnSse/" + "vZGK1WmltKB+ubGRM2GKxuDVYb2lpoSfemJ63/" + "g51uFJcXIxXX30VK1aswKlTp4ZrdusVIybT9ddp7H//" + "+x9mz56Nqqoq2O12r9QCdrsdZ86cwdSpU2lTc1+" + "GG1JSUhAfH89ZVkmyGCI5IkMh48aNQ0xMDP0cuMqqmFNU3mbYZCuyu2ySGcR8eQ4" + "mkwmVlZUIDg5GRkYG67pPV5iBmFleCQoKgslkQlJSEpKSkniRQhG/" + "XZFIBJlM1m89n6k6IM+D6dfgzVAHE5PJhC1btqC4uBj79u1DZmYmm0+LT0Z+" + "ecGfoGuxWHDmzBlIJBJkZGQ4+Xi6g1lK0Gq10Gq1dJc4NDSUVhow9beuww2TJ0/" + "mLatkNqikUin9xSH6VTLRRX789ZH1BNPj1l3pxhf6q6+" + "6ZvXuvGKvXbuG69evIyMjg9UxZl8wGo0oLy+" + "nPRxIMHPVsAaiaUpgqiP8HSNmDnWQzxTx/" + "GA27FxvaiqVCmvXrsWjjz6K3NzckZbdjvyg63A4vJ4uIxrU5uZm2Gw2zJ8/" + "3ye7RXelBKb+VqfToaenh15GKZFIIJPJnFbKcIWr5eLEiRP7DaTMiS4SiInZjK+" + "uX64QX4qenh7IZLKAdcHdBWJmjRjobbrGx8dj8uTJnEvAAGe9q0wm61M/" + "9pRN+" + "uuX4Q6TyYTy8nJIJBKkp6ezGvRchzoMBgOdTZeWlqKzsxONjY345JNPfNLJDyOEo" + "AvcvKuTtd+TJ0/GhQsXMGvWLLfHIX+bZO40veTuH2jZFxNStx1MVsl0/" + "dLr9U6bFbwxJGeawvBlrG6329HZ2Ym6ujp6so6sgfGUEQcCrVaLyspK+" + "tTj7WMy1SskkDEDMckmvfV4Jg1UV2OmQEJRFL777jvk5+" + "fTNfnGxkbs3LkT9913HyfXwCEjP+gSq8b+" + "YC6WTE1NpYPsxYsXIZPJnNQD7ibJvAkUxPimvb3drYm2J9kXKU34Wpd0B7FcpCgK" + "GRkZfikjPOE6VWc2m52m6shRknjcEkE9H2UViqKgVquhVquRmppKG7Yw69wkI2ZO" + "pXk7HuwtVqsV1dXVMJvNkMvlrLwn5PPEzCZdrTxd66tdXV0oLy9HdHQ0pk6dytl7" + "YjQa8dZbb+HXX3/F/" + "v37nQaLfF19NUwYvUGXTDYFBQW5Xd1SVlaGCQkTUKYrw1XtVUSGRmJ+" + "4nzE3RLndbB1dd/" + "yZVyV2VwhXxxyHCaB2NsvP9NyMS0tbcAaNVu47krTaDR0EIuPj0dsbOyAZtiBgGx" + "ajomJ8SrABCIQk0GLq1evctJA7a++KpFIYLPZ0NPT42RQE2goisK5c+" + "ewbt06PP3003jhhRd4ufnywOgLumRPVnd3t8e1KeXl5Si3lOOG/" + "QYm3DIBXZYuGK1GLM9cjsiwgT0PyBE+" + "OjoaU6ZMYaXzzPzy63S6AZtcZCVQfX09qx4FvsJsUKWmpkIqldLPgdlcCYShOhOm" + "FG2wtXTmIIGrYc5AzmUmkwkVFRUICwtDeno6bwYtWq0WV65cobPerq4ut+" + "5lbKs3uru78eabb+LKlSvYv3+/" + "z8ZSw5yRH3SB3kBLsj2ynHEgOVJlVSW+bf4WaRPS6My22dCM+1PvR9KYpH7/" + "HRvDDb5AmlwkgJlMJoSEhCAsLIxeAsn1AkQmZE2MJ1E/" + "MwsjP3a7nTWzHOaJI5BZpbtAzLSQlEql6OjowPXr1zmtmbpit9tRU1ODrq4uyOVy" + "p1Oea6NLr9fTgZiZ2fsTiCmKwpkzZ7B+/Xrk5OTg+eef5yy7/ctf/" + "oIDBw7QW1sOHjzIuTvf74z8oEtRFOrq6ugjflJSksdsj9Rs29vb8cH/" + "PkB4cDiiI6N7V69QWiyfvhzx0vg+/" + "45sC9br9YMebhgMZrMZlZWVMJlMiIqKgtlsdqqtktJEoIOw0WhEVVUVgoODkZ6e7" + "vMHnK3xZmLoLZVKkZqaynlWSVb0tLW1oaWlBUFBQX02OAfSVN0V0sMgJx9vy2TEf" + "ImpOGCu6iGBuL/f19XVhTfeeANVVVXYv38/UlNT2X5q/" + "dLU1IT58+fjypUrkEgk+OMf/" + "4hFixbhqaee4uwaGIz8iTTyIRho15lrk2zcuHF45v+ewbHqYzCZTLihu4FJ4kmo+" + "7UOzeHNdACTSqVoa2tDc3MzUlJSPG4LDiT9WS6S50a+" + "NBqNBteuXXN7pGdDMUGahjdu3BjU1ltSv2aaeTM9Gpqbm2EwGEBRlFMGRhqOTIMc" + "mUzGi6E3cHN8vLu7G/PmzUNERES/puqupQk2P0dkss1qtXq9K43A3BBBTGVcV/" + "Wo1Wo6EJP3AwBiY2Nx9uxZbNiwAatWrcLevXt5KXHZbDb6FGg0GunP1FBixGS6QO" + "8Hjsi73OHJblFr1kJr1iJMHIb4iN5jqdlshk6nQ2trKzo6Ouhxz+" + "joaE4kX67X7qvlIvl35EhPjGbsdrvfRjnM6yBGKFx8udzpb61WK6xWK8aPH4/" + "k5GTOZF9MmK/" + "HQDpowL0WWiwWD3oohXkdgfbRcG2cvvNchAlHAAAXgElEQVTOOzh37hyMRiNWrFi" + "BBQsWYPHixbwMO+Tn5yMvLw8SiQR/" + "+MMf8Omnn3J+Db8z8ssLQP9B11+" + "9rV6vp70YiMyMGcACJflyhVguEuerwTY8mJkkOUYCNye5oqKi3DaHiAMXaQzxVT8" + "mhkNisRjx8fG0BytRG3B1pCeNstDQ0EG9HsR+" + "kbwXZCiFmdl7CsSk1ETGmbl6XyiKws8//" + "4yNGzfi+eefx4MPPoiLFy+itLQUeXl5nN8ANRoNli5dii+++" + "ALR0dFYvnw5li1bhscff5zT6/" + "id0Rl0BzPcUFNTA4vFgvT0dI9eDETyxQxgzC++" + "t94M7rBYLKitraUVGIE8OruTS5HmELH5Iw0Zrjxu3V3jQCUNUlslP65HejbGm4k7" + "W0tLS8DGiJkbkMnzYE4HRkZGQiKRoLm5GWq1us824kBjMBiwadMmNDQ0YP/+/" + "Zg8eTJnj90f//znP3HixAl89NFHAIC///3vKCwsxPvvv8/" + "H5YyOoEvsHf0NtkT5cOPGDbfDDb5cB/" + "OL393dTU9xkYzYUzOCaY7Dl+Ui0HsTq6+vR3NzM8LCwkBRlE/" + "TaGxCGkMTJ04csEnqCjOTJAHM3+" + "dBNijExsZyPvDBDMQajQZarRZisRhxcXF0yYvtFT2uUBSFU6dO4bXXXsPq1avx7L" + "PPDpnBBpVKhWeeeQbFxcWQSCR46qmnoFQq8eKLL/" + "JxOaMj6FqtVtpy0ZdJMubSwUDpXC0WC50NE28G0t1mruQh0qvx48fzNsUF9GYylZ" + "WVfdQAzOfhbhotKiqK1eOt2WxGVVUVACAjI4M1+Y+78eawsLA+" + "U3Xk82Oz2VBbWwuDwQC5XM6LjwbQe0MmjVQySelpTJtkxGwEYr1ej02bNqGpqQn7" + "9u1DcnIyC8+" + "IXd544w188cUXEIvFyMrKwoEDBwLuHtcPoyPorlu3DlKpFEqlEgqFApGRkQN+" + "2Jj+BCkpKZzuIiO1SJ1OB61WS9fyJk2ahNjY2ICbRrvDarXS6+" + "plMtmANpekqcIMxBaLhVZMkG21vr6uzCM8V0dnplxKr7+" + "5NDQ4OBg6nQ7JyclITk7m5dQB9N4Iy8vLERsbiylTpvSbGAzWL8MViqLw008/" + "IS8vD7m5uXj66ac5z261Wi1ycnJw+" + "fJliEQifPzxx07LB4YgoyPoVlZWorCwECqVChcuXIDFYsGtt94KhUKBuXPnYvr06" + "fSXX6PRoL6+ntaXcm0aTXA1NReLxW4bXMQkO1CNIaYb2WAHC/" + "obgvBWMUFMYfj0bABuunDZ7XZERkaiu7vb6Ybiq3esv5CtFhqNBpmZmX5l2Uy1gc" + "FgoDN7ZrPOXSDW6XR47bXX0NbWhg8//" + "BBJSf0PDAWSlStXIjs7Gzk5ObBYLDAajT5t9+" + "CB0RF0XTGbzSgtLUVhYSGKi4vx22+/" + "ISQkhJ7k2rFjB+" + "RyOS81KWaQS05O7ncnGGlwkUBMpp9ISSIqKmrQdVXiUUBMUAIh9WGuFiJNOVftbW" + "hoKGpra9HT08OaKYw/" + "MF240tPTnTwsmCcU8uPqHsfWNgWgNzmorKykZYJs3nDdGReFhYVBr9ejoaEBYrEY" + "+fn5WLNmDZ588knearc6nQ6zZ89GXV0db6cMPxidQdeVr776Cps3b8aiRYsQHh6O" + "kpISeoJt7ty5UCgUUCqViImJCeibq9FoUF1d7bflIvP4qNPp/" + "K6rWiwWVFdXB9zjtj+I9pZooQ0GA8LDw2mDnMEoP/" + "zFYDCgoqKCfm+" + "8ybL700K72nj6krHbbDbaPyIzM5Ozk5jZbEZRURF27NiB6upqSKVSpKSk4JVXXuH" + "NfrG0tBSrVq3CtGnTcOnSJSgUCuTn53P+" + "efURIegCvWOCY8eOdfoAOxwO1NfXQ6VSQaVSoaSkBAaDAZmZmXQQnjVrFisNHJPJ" + "RK8iZ9Ny0bWuqtPpnLIvkhWTLz1THZGamsqLxy1Br9ejsrKS3oZM/qw/" + "qVSgFBNk1bhOp/P7CM+kv6WhTE13f3ve2tvbUVNT4/" + "EEFAgoisL333+PzZs3Y+3atXj88cd7vUiamyESiXib7iopKcHtt9+" + "Os2fP4rbbbkNubi7GjBmDt99+m5fr8RIh6PqC1WpFWVkZHYh//" + "fVXiMVizJkzB3PmzIFSqUR6errXmQupyXFpucj0NCDZl8PhQFhYGLq6uhAbG8ur8" + "xWzYTeQGsBdZh8WFua0HmkwHWqymNIXnwJ/" + "cGfjCdwcSpFIJGhqagJFUZDL5Zx23TUaDTZs2AC9Xo8PPvhgSI3Ptra24vbbb0d9" + "fT0A4PTp09i2bRuOHTvG74V5Rgi6g4GiKBgMBpSUlEClUqGoqIjepEuyYaVS2UdP" + "O1QsF4Gb0quenh6MHTsWJpOJHoBgc3BgIJiviTdjs/" + "39DlKPJNm9a4PLG9tIsj4GAGQyGS/" + "SIlKzV6vVaG9vR0hICEJDQwNmpu4K2ebw5ptvYv369Xj00UeHjO6WSXZ2Ng4cOAC" + "ZTIbNmzeju7sbO3bs4PuyPCEEXbYh2l6SDRcVFeHGjRtIT0+HUqlEREQEzp49i/" + "Xr1zttquAaoutsbW11K71ytYw0Go1OetWoqCjWglF3dzcqKipwyy23IC0tjdUsmz" + "S4mNI1Zl2VSNeCg4Odtkmkp6dzOsnlitlsRnl5uZPn7kDWkWzVujs7O7F+/" + "XqYTCbs3bsXEydOZOlZeYfdbodSqURCQgIKCgo8/t3S0lJauTB16lQcPHiQN4c/" + "LxGCLhfY7Xb88ssv2LRpE5qbm5GYmAij0YiZM2fS2XBmZiZnRiBk0GLChAk+" + "7eNyrQ+" + "76m59Nfoh5ZXOzk7IZDLOxojd1VVtNhusVisiIyMxdepUjBkzhjf1CqmrezNK7Gq" + "UYzQa+xjleDsEQVEUjh07hrfffhuvvfYa/vSnP/" + "FS09+9ezdKSkqg1+sHDLrDECHocsXp06eh0Wjw0EMPAehtnp0/" + "fx5FRUVQqVSoqKhAVFQUrR0md3o2v/" + "gmk8lpRdFgm4CedLcDGf2QplBiYiISExN5a9jZ7XbU1dVBo9EgKSmJHtV29crgwv" + "e2u7sb5eXlGDNmDFJTU/" + "3WIbvzZxhoCKKjowPr1q2DzWbD3r17aQtHrlGr1Vi5ciXy8vKwe/" + "duIegyEIIuy1AUhRs3bjiVJZqampCSkkJnw3PmzEFUVJTPX3ymIUx6enpA92Axm0" + "KkUccMXmFhYWhoaEBISAjS09P5GsUEcNO3gVhRur6u5DjPLLEws0g2tNCA8+" + "r1QBkHudPeGo1GFBQUYMyYMfj222+" + "xefNmrFixglfN67Jly7Bx40YYDAbs3LlTCLoMhKDLAQ6HAzU1NXQQPn/" + "+PIxGI6ZPn04H4ltvvbXfwEVRFNrb21FXV4dJkyZx5nHris1mg06nw7Vr16DT6RA" + "SEoLw8HCnQQ5PRj9s09PTg6qqKjgcDshkMp8yfk/" + "eDEzTIm8hRjlkyo6r94eiKNTW1iIvLw+" + "tra2IjIxER0cHli9fjk2bNnFyDa4UFBTg+PHjeP/" + "993Hq1Ckh6LogBF2esFgsKC0tpQPx5cuXER4ejqysLDoQT506FWVlZTAYDIiJiWH" + "Fa3cwdHZ2oqqqyqmG7M4gx53RD5swp/" + "3S0tIwfvx4Vn6vO28GiUTiJF1zfS6krEH0v1wK+imKwjfffINt27bh9ddfx/" + "LlyyESiUBRFLq6ugb01QgUGzduxOHDhyEWi+" + "nXdMmSJThy5Agv1xMghKA73KEoClqtFsXFxVCpVDh37hxKSkoglUrxyCOPYP78+" + "VAoFH7bUQ4GklHa7XbIZDKP01Nk/" + "QuzUdefysAfyK60yMhIpKamBrRp6Wpa5KqYEIlEaGpq4qWe3dbWhjVr1iAkJAR/" + "+9vfWLvxsI2Q6fZFCLpDEJvNhrvvvhtPPPEE7rvvPhQXF6OoqAjFxcXQarWQyWR0" + "o27WrFkB81glk23Nzc30ZJu/" + "v8d1kAO4afTjjVaVqZCQy+W87krT6XSorq6G2WxGSEgIvQfOdb9boB7/66+/" + "xvbt27F582YsWbJkSPsVCEG3L0LQHaLYbDa3WZzNZsNvv/1Gm/" + "yUlpZCJBJh9uzZ9CCHTCYbtHMXMckZO3as1x4FvsDcZKHT6WitKsmGmc0tUtbwx+" + "Ccbdra2lBbW+vk1OZwOPps5RCJRH1uKoMNjtevX8eaNWsgkUiQn5/" + "Pqf64sbERTz75JK5fvw6RSIRVq1YhNzeXs8cfgghBd7RC6nfnz5+" + "HSqVCcXExqqqqEBsbC4VCAYVCgXnz5nlt5Wi1WlFdXQ2TyQS5XM5pjZJsgGCqDGw" + "2G4KDgzFlyhSMGzeOtyEUMt0mEokgk8kGvA673d5nu4i/" + "uluHw4GvvvoKO3fuxFtvvYVHHnmE8+" + "y2paUFLS0tmDNnDgwGAxQKBb755htMmzaN0+" + "sYQozuoLtr1y6sXbsW7e3tvE4fDRXIKG5RURGdEZOJNVKWyMrKglQqdVrvTrZr8L" + "lCiFxLS0sL6uvrkZycjJCQECcDddf6cKDrui0tLbh27dqgm3bMtUI6nc7tNgtXBU" + "ZrayteffVVREZGYs+ePZz4enjDww8/jNWrV/" + "PmTDYEGL1Bt7GxETk5OaioqMD58+" + "eFoNsPdrsdVVVVKCwsRFFRES5evAiLxYIZM2YgISEBP/" + "zwA3bt2oVZs2bxslqbQEaJIyIikJaW1udamEY/" + "5MfhcDiN0LK1qp2YnEskEtqAnm1ct3L09PSgo6MDp0+" + "fRnh4OAoKCrBt2zYsXrx4yNRu6+vrceedd+Ly5cu81daHAKM36C5btgyvv/" + "46Hn74YZSUlAhB1wc6OjqwevVqFBUVQaFQ0DvTmCY/" + "ycnJnNRQHQ4H7dTm6ygxs6ZKDNTJIAepqfriZcA0OZfJZJx6AFAUhd9++" + "w1vvPEG2tvbIZFIYDAY8Oyzz/K1gNGJrq4u3HXXXcjLy8OSJUv4vhw+6ffDxF/" + "KwgH//ve/kZCQgFmzZvF9KcOS8PBw3H///" + "fj0008RFBQEiqLQ0dGB4uJiFBYW4vPPP0dDQwOSk5PpvXQKhYJ1E3iyPSE+" + "Ph5KpdLnIB8UFEQ338i6GTIGrNPp0NbWRo/" + "Qug5yuNLV1YXy8nJER0dj7ty5nK4Scjgc+Pzzz/HXv/" + "4VW7ZswQMPPACRSEQ3HfnGarVi6dKleOyxx0Z7wPXIsM907733XrS2tvb583feeQ" + "dbtmzByZMnERUVhZSUFCHTDQAkA2WawHd1dWHatGl0Rjxz5ky//" + "B+sViuqqqpgsVggl8sDvj3B1S6yp6eHNvqJjIyERqOh95RxPVjQ0tKC3NxcjB8/" + "Hrt37x5yDlsURWHlypUYO3Ys9uzZw/" + "flDAVGX3mhrKwMCxYsoLczqNVqTJo0CUVFRYiPj2ftcdatW4dvv/" + "0WoaGhSE1NxcGDB4f6wryAY7FYnEzgy8rKEBISgqysLLpRl5aW1m/" + "GyvTcnTp1KuLi4nipV5Lhh5aWFqjVagQFBSEkJITW3JJGXSDLKw6HA0ePHsV7772" + "HrVu3YtGiRUOmdsvkzJkzyM7OxowZM+jXY8uWLVi0aBHPV8Yboy/" + "ouhKoTPfkyZO45557IBaLsX79egDAu+++y+pjDHcoioJer3cyga+" + "trcWECROc6sNxcXG4cuUK9Ho9oqOjWffc9RW73Y6amhp6u0VERAQ9yKHT6ej6cCA" + "0twDQ3NyMl156CRMnTsSuXbs4v5mfOHECubm5sNvtyMnJwYYNGzh9/GGOEHS5KC/" + "861//wpdffolPP/00YI8xUiD+CCqVCoWFhVCpVKipqUFoaCieeOIJZGdnIysri/" + "PFlATiTObNCh+" + "m5pYMcoSEhDh5MvjiUuZwOHDkyBF88MEHePfdd7Fw4ULOXwO73Y6MjAz897//" + "pRe3fvbZZ6NZd+srQtDlgoceeggrVqzA448/zvelDCscDgfuvfde3Hvvvbj//" + "vtx4cIFWrZGUZSTCbxcLg+oZI3Uka1WK+" + "Ryud9exMSljNSHycZmZqPOXRavVqvx0ksvISkpCTt37uTM8N2Vc+fOYfPmzfj+++" + "8BAFu3bgXQa1Yj4BWjU73AFp6adQ8//DD9v8ViMR577DGuL2/" + "YExQUhIKCArr+" + "PmfOHOTk5NDm6cQEfseOHaisrERMTAytlJg7dy4ryyQpikJbWxvq6upYGf4IDQ3F" + "uHHj6JMVMfrR6/Xo7OxEfX09rFYrpFIprl69irCwMFy7dg0HDx7Ejh07cN999/" + "Fau21qaqKVHgCQmJgIlUrF2/WMJISg6wU//PCDx///0KFDKCgowI8//" + "sjqF2U01dTcraMXiUSIiIjAnXfeiTvvvBPATe9g0qT75JNP0NzcjClTpjiZwBOXL" + "28wm82orKxEcHAwFApFQEaJRSIRJBIJJBIJva2BDHIUFRXhyJEjaGhowKRJk/" + "Dll18iJSUFGRkZrF+HAP8IQXeQnDhxAtu3b8fPP//" + "sNnD4i91uxwsvvOBUU1u8ePGor6mJRCLExcXhoYceolciERP4wsJCfPfdd/jzn/" + "8Ms9ncxwTeNZiSurJarXa7tDPQUBSFf/" + "zjHzhw4AB27dqFBQsWoKenB6WlpbxLwhISEtDY2Ej/" + "t1qtRkJCAo9XNHIQarqDJC0tDT09PfTM++23344PP/" + "xw0L9XqKkNDhK8iMkPMYGfM2cOlEolxo4di+PHj+O5554LuO+" + "uOxoaGrB69WpkZGRg+/" + "btkEqlnD7+QNhsNmRkZODHH39EQkIC5s6di6NHj2L69Ol8X9pwQajpBoqampqA/" + "F6hpjY4wsLCcNttt+G2224DcNME/" + "ty5c8jPz8eFCxeQmpqKDRs20NmwQqFAbGxsQGupDocDH330EQ4ePIhdu3bhnnvuG" + "ZK6W7FYjPfeew8LFy6E3W7HM888IwRclhCCrsCoQCQSISYmBpGRkbjjjjvwn//" + "8ByEhIWhoaEBhYSFOnz6N3bt3Q6fTQS6X9zGBZ4P6+" + "nqsXr0a06ZNw5kzZ3jLbr0d6Fm0aNFoHm4IGEJ5YYgilBf4wWq19jGBDwoKoqfpl" + "EolMjIyfPJcsNvt+Oijj3Do0CHs2bMHd911F6/" + "ZrTDQwwmCTne4wVVNTXD89wzTBJ4E4qqqKowfP54OwnPnzu1XYnb16lW8+" + "OKLmDFjBrZs2cKp6bs3CAM9AUMIusOR48eP4+WXX6Zranl5eaw/" + "huD47zvEuJxpAt/W1kabwCuVSsyaNQufffYZDh8+jPz8fGRnZw/" + "J2q0w0BMwhKAr4B2C479/" + "2O12VFZW0vrhEydOYN68eTh06BCrUkJv8Xagp6SkBF9//fWQvCEMc4SgKzAwguM/" + "e1AUNaQD2aFDh7Bv3z78+" + "OOPvNwURgGCZEzAM11dXVi6dCn27NkjBFwWGMoBN1ADPQLeIWS6ArBarXjwwQexc" + "OFCvPrqq3xfjkCACdRAj4ATQnlBwD1cO/" + "7b7XYolUokJCSgoKAg4I83mhC2Xg8p+" + "g26gd8oKDCkOXv2LA4fPoyffvoJs2fPxuzZs3H8+PGAPV5+" + "fj4yMzMD9vtHK42NjTh58iSSk5P5vhSBARBquqOc+" + "fPnY4DTDmuo1WocO3YMeXl52L17NyePOVp45ZVXsH37dlqZIDB0ETJdAc54+" + "eWXsX37dk5Wto8mhK3Xwwsh0xXghIKCAsTFxUGhUODUqVN8X86ww5ut1wLDA6GRJ" + "sAJGzduxOHDhyEWi+kNCkuWLMGRI0dYfyytVoucnBxcvnwZIpEIH3/" + "8Me644w7WH2cowNXWawGfEdQLAkOHU6dOYefOnQFTL6xcuRLZ2dnIycmBxWKB0Wj" + "kfJMuX3CxgFXAK4ThCIHRgU6nwy+//IJDhw4B6N1VFoj1OwIC/" + "iJkugIjitLSUqxatQrTpk3DpUuXoFAokJ+fP+TcvQRGPIJOV2B0YLPZcOHCBTz//" + "PO4ePEiIiIisG3bNr4vS0CAZqBMV0BgWCESieIBFFIUlfL7f2cD2EBR1AO8XpiAw" + "O8Ima7AiIKiqFYAjSKRSPb7Hy0AcIXHSxIQcELIdAVGHCKRaDaAAwBCAdQBeJqiK" + "A2/VyUg0IsQdAUEBAQ4RCgvCAgICHCIEHQFBAQEOEQIugICAgIc8v/" + "2NcIOYxePhAAAAABJRU5ErkJggg==", + "text/plain" : ["
"] + }, + "metadata" : {"needs_background" : "light"}, + "output_type" : "display_data" + } ], + "source" : [ + "# importing classical numpy objects\n", + "# use array representation for binding eigen objects to python\n", + "# importing the bezier curve class\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from numpy import array, dot, identity, zeros\n", + "from numpy.linalg import norm\n", + "\n", + "from ndcurves import bezier\n", + "\n", + "# importing tools to plot bezier curves\n", + "from ndcurves.plot import plotBezier\n", + "\n", + "np.set_printoptions(formatter={\"float\": lambda x: f\"{x:0.1f}\"})\n", + "\n", + "# We describe a degree 3 curve as a Bezier curve with 4 control " + "points\n", + "waypoints = array(\n", + " [[1.0, 2.0, 3.0], [-4.0, -5.0, -6.0], [4.0, 5.0, 6.0], [7.0, 8.0, " + "9.0]]\n", + ").transpose()\n", + "ref = bezier(waypoints)\n", + "\n", + "# plotting the curve with its control points\n", + "plotBezier(ref, showControlPoints=True, color=\"g\")" + ] + }, + { + "cell_type" : "markdown", + "metadata" : {}, + "source" : [ + "We now assume that we only have partial information about this curve, " + "and that we want to reconstruct it.\n", + "\n", + "We will first generate a discretization of the curve to represent a " + "temporal sampling:" + ] + }, + { + "cell_type" : "code", + "execution_count" : 34, + "metadata" : {}, + "outputs" : [ { + "name" : "stdout", + "output_type" : "stream", + "text" : [ + "(array([1.0, 2.0, 3.0]), 0.0)\n", "(array([-0.1, 0.4, 0.9]), 0.1)\n", + "(array([-0.6, -0.4, -0.1]), 0.2)\n", + "(array([-0.5, -0.4, -0.2]), 0.3)\n", + "(array([0.1, 0.2, 0.4]), 0.4)\n", "(array([1.0, 1.2, 1.5]), 0.5)\n", + "(array([2.2, 2.6, 3.0]), 0.6)\n", "(array([3.4, 4.1, 4.7]), 0.7)\n", + "(array([4.7, 5.6, 6.4]), 0.8)\n", "(array([6.0, 6.9, 7.9]), 0.9)\n", + "(array([7.0, 8.0, 9.0]), 1.0)\n" + ] + } ], + "source" : [ + "numSamples = 10\n", "fNumSamples = float(numSamples)\n", + "ptsTime = [\n", + " (ref(float(t) / fNumSamples), float(t) / fNumSamples) for t in " + "range(numSamples + 1)\n", + "]\n", "for el in ptsTime:\n", " print(el)" + ] + }, + { + "cell_type" : "markdown", + "metadata" : {}, + "source" : [ + "Each entry of ptsTime is a couple (position, time) that describes our " + "input data.\n", + "\n", "### Sanity check\n", + "Let's first solve a trivial problem, to see if we can reconstruct the " + "curve with a polynomial\n", + "of same degree.\n", + "To achieve this we will use the problemDefinition class, which will " + "automatically generate the variable expression of the curve" + ] + }, + { + "cell_type" : "code", + "execution_count" : 35, + "metadata" : {}, + "outputs" : [], + "source" : [ + "from ndcurves.optimization import problem_definition, " + "setup_control_points\n", + "\n", "# dimension of our problem (here 3 as our curve is 3D)\n", + "dim = 3\n", "refDegree = 3\n", "pD = problem_definition(dim)\n", + "pD.degree = refDegree # we want to fit a curve of the same degree as " + "the reference curve for the sanity check\n", + "\n", + "# generates the variable bezier curve with the parameters of " + "problemDefinition\n", + "problem = setup_control_points(pD)\n", + "# for now we only care about the curve itself\n", + "variableBezier = problem.bezier()" + ] + }, + { + "cell_type" : "markdown", + "metadata" : {}, + "source" : [ + "The evaluation of a variable Bezier returns a matrix B and a vector " + "c, such \n", + "that B x + c , with x a vector variable, defines the value of the " + "curve" + ] + }, + { + "cell_type" : "code", + "execution_count" : 36, + "metadata" : {}, + "outputs" : [ { + "name" : "stdout", + "output_type" : "stream", + "text" : [ + "B: \n", " [[1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]\n", + " [0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]\n", + " [0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]]\n", "c:\n", + " [0.0 0.0 0.0]\n", "Shape of B: (3, 12)\n" + ] + } ], + "source" : [ + "linearVariable = variableBezier(0.0)\n", + "print(\"B: \\n\", linearVariable.B())\n", + "print(\"c:\\n\", linearVariable.c())\n", + "print(\"Shape of B: \", linearVariable.B().shape)" + ] + }, + { + "cell_type" : "markdown", + "metadata" : {}, + "source" : [ + "B has 3 rows and 12 columns. Because the fitting curve is of degree " + "3, it has 4 control points of dimension 3, which gives a variable of " + "size 12. The row number also matches the dimension of the problem.\n", + "Then A is zero everywhere, expect for the first 3 columns that " + "contain the identity. This is expected as the start of a Bezier curve " + "is equal to the first control point.\n", + "\n", + "If we evaluate variableBezier at t = 0.2 for instance, we get a more " + "complex expression:" + ] + }, + { + "cell_type" : "code", + "execution_count" : 37, + "metadata" : {}, + "outputs" : [ { + "name" : "stdout", + "output_type" : "stream", + "text" : [ + "B: \n", " [[0.5 0.0 0.0 0.4 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.0]\n", + " [0.0 0.5 0.0 0.0 0.4 0.0 0.0 0.1 0.0 0.0 0.0 0.0]\n", + " [0.0 0.0 0.5 0.0 0.0 0.4 0.0 0.0 0.1 0.0 0.0 0.0]]\n" + ] + } ], + "source" : ["print(\"B: \\n\", variableBezier(0.2).B())"] + }, + { + "cell_type" : "markdown", + "metadata" : {}, + "source" : [ + "With variableBezier, we can easily define a least square problem to " + "reconstruct the original curve.\n", + "We just have to formulate a cost function that, for each sample in " + "ptsTime minimizes the distance between the evaluation of " + "variableBezier and the sampled point. We define it as follows:" + ] + }, + { + "cell_type" : "code", + "execution_count" : 38, + "metadata" : {}, + "outputs" : [], + "source" : [ + "# least square form of ||Ax-b||**2\n", "def to_least_square(A, b):\n", + " return dot(A.T, A), -dot(A.T, b)\n", "\n", "\n", + "def genCost(variableBezier, ptsTime):\n", + " # first evaluate variableBezier for each time sampled\n", + " allsEvals = [(variableBezier(time), pt) for (pt, time) in " + "ptsTime]\n", + " # then compute the least square form of the cost for each " + "points\n", + " allLeastSquares = [to_least_square(el.B(), -el.c() + pt) for (el, " + "pt) in allsEvals]\n", + " # and finally sum the costs\n", + " Ab = [sum(x) for x in zip(*allLeastSquares)]\n", + " return Ab[0], Ab[1]\n", "\n", "\n", + "A, b = genCost(variableBezier, ptsTime)" + ] + }, + { + "cell_type" : "markdown", + "metadata" : {}, + "source" : ["Here we use quadprog to solve the least square. Because " + "there are no constraint this might seem overkill, however " + "we will introduce them soon enough."] + }, + { + "cell_type" : "code", + "execution_count" : 39, + "metadata" : {}, + "outputs" : [], + "source" : [ + "import quadprog\n", + "from numpy import array, hstack, vstack\n", + "\n", + "\n", + "def quadprog_solve_qp(P, q, G=None, h=None, C=None, d=None, " + "verbose=False):\n", + " \"\"\"\n", + " min (1/2)x' P x + q' x\n", + " subject to G x <= h\n", + " subject to C x = d\n", + " \"\"\"\n", + " qp_G = 0.5 * (P + P.T) # make sure P is symmetric\n", + " qp_a = -q\n", + " qp_C = None\n", + " qp_b = None\n", + " meq = 0\n", + " if C is not None:\n", + " if G is not None:\n", + " qp_C = -vstack([C, G]).T\n", + " qp_b = -hstack([d, h])\n", + " else:\n", + " qp_C = -C.transpose()\n", + " qp_b = -d\n", + " meq = C.shape[0]\n", + " elif G is not None: # no equality constraint\n", + " qp_C = -G.T\n", + " qp_b = -h\n", + " res = quadprog.solve_qp(qp_G, qp_a, qp_C, qp_b, meq)\n", + " if verbose:\n", + " return res\n", + " # print('qp status ', res)\n", + " return res[0]\n", + "\n", + "\n", + "res = quadprog_solve_qp(A, b)" + ] + }, + { + "cell_type" : "markdown", + "metadata" : {}, + "source" : [ + "Let's check whether our optimization worked !\n", + "We can transform the variable Bezier as a regular Bezier curve as " + "follows, and plot the result to verify that the curves match." + ] + }, + { + "cell_type" : "code", + "execution_count" : 40, + "metadata" : {}, + "outputs" : [ { + "data" : { + "image/png" : + "iVBORw0KGgoAAAANSUhEUgAAAV0AAADnCAYAAAC9roUQAAAABHNCSVQICAgIfAhk" + "iAAAAAlwSFlzAAALEgAACxIB0t1+/" + "AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6L" + "y9tYXRwbG90bGliLm9yZy+" + "AADFEAAAgAElEQVR4nOx9d3gc5bn9mW3a1UqrYsmyLFm9ueMiF6pxSMLNzU2h5JJ" + "AckNCuCEBDIaA6RiDbcA2GJwQklByIfSaSvJLIYQSF7ANxuralbQqq7q9z8zvD/" + "GNZ1ZbZndnV7v2nOfxE6KZ/XZ2d+bMO+d93/" + "NSLMtChgwZMmSkB4rZPgAZMmTIOJUgk64MGTJkpBEy6cqQIUNGGiGTrgwZMmSkET" + "LpypAhQ0YaoYqxXS5tkCFDhoz4QUXaIEe6MmTIkJFGyKQrQ4YMGWmETLoyZMiQkU" + "bIpCtDhgwZaYRMujJkyJCRRsikK0OGDBlphEy6MmTIkJFGyKQrQ4YMGWmETLoyZM" + "iQkUbIpCtDhgwZaYRMujJkyJCRRsikK0OGDBlphEy6MmTIkJFGxHIZkyEjIliWBc" + "Mw8Pl8CAaDUKlUUCgUUCqVUCgUUCgUoKiIZksyZJySoGIMppStHWXMAMuyoGkawW" + "BQ8N9kG59oCQmTfzIZyzhFEPEEl0lXhmiEki1FUaAoCsFgEMFgEAqFYsb+/" + "H8yGcs4hRDxRJblBRkxwbIsgsEgzGYzDAYD9Hr9DIINB0LK4dYDgGAwiEAgINjGl" + "yf4hCyTsYyTBTLpyogIQrZEOrDZbNBqtcjLy0tqXUKgoUTKJ+" + "Njx46htrYWubm53L5KpZLTjQkpy2QsI9sgk66MGWAYRqDTkohVoVCAYZgZ+" + "0tFfHwyJiSrVCo5Mg6VNliWjSpTyIQsIxMhk64MDgzDIBgMgqZpADPlAUJ06UDo+" + "4b+" + "DcAMMg59fThClslYxmxDJt1THCTJFQgEuCg2EjEpFIq0ka4YxCJjhmFgMpmg0WhQ" + "VlbG7UvImC9VyGQsI12QSfcUBamxDQaDMcmWgKKosPJCKpBMVM0nY77+" + "C5z43DRNw+/" + "3C17Hj4rlyFhGqiCT7imGULIlpCKGWNIpL0iF0OONVlFByDi0vC1cNYVcUSEjUci" + "ke4ogUo1tPMSRafKCWIi9oUQjY7/fj48//" + "hgrVqzgtsm1xjISgUy6JznCka2YGttwyBZ5QerjiCRTEC3c7/" + "fLjR8yREMm3ZMULMvC5XKBYRio1eqkyJYgU4hwNhAqOSTT+" + "CGT8akNmXRPMvAbGoaGhkBRFKqqqiRZO1ydrt/vh8lkgsvlgl6v5/" + "7pdLqkySSTCD6UdCNBTOOH0WiERqPB3LlzAYAjX7nx49SATLonCcI1NCiVyhn1q8" + "mALy/" + "4fD4YjUZMTk5iwYIFKC4uhsfjgcPhwMjICDweDyiKQm5uLvR6PfLy8qDX66HVauM" + "ir2QhJXEnc0x8MmZZVm78OIUhk26WI1pDg9SJL4qi4Pf7cfz4cVitVtTU1KCpqQn" + "AdMRrMBhmHJvb7YbT6YTNZsPQ0BC8Xi8oihJExfGQcaLHnSyk/" + "B75UXMyjR8qlUom4yyETLpZCLENDZHadhOB2+2G2WyG2+" + "3GwoULsXDhQu79Ir2HQqFAXl7eDK8GmqbhdrvhcrkEZKxQKLjI2Ofzwev1Ii8vLy" + "OIRKy8IAakVC8axDR++Hw+dHZ2oqqqirtpyY0fmQ+" + "ZdLMI8TY0KJVKLgJOFE6nE729vfB4PCgqKkJRURHX3ZUolEol8vPzkZ+fL/" + "g7n4z9fj8GBgZgNBoFZJyOyDgcpCRdIh0kglAyDgQCXMQrN35kB2TSzQIk2tCQTK" + "Rrt9vR09ODYDCIuro6FBcXY2xsDDabLaH1xIBPxjabDeXl5TAYDDEjY6IX6/" + "V65OTkpIRIpCZdqdaiaXqGUVC49wtt/CD/" + "G04zlisqUguZdDMYyTY0JEK6VqsVPT09AIC6ujoUFRVx29JdMkbeK1Zk7HQ6MTU1" + "BbPZDJ/" + "PB4VCwZGwy+" + "WCSqWSlOiSRTKRbiJriSXj3t5eLFiwABqNRi5vSyFk0s1ASNXQIJZ0WZbF1NQUen" + "p6oFKp0NDQgIKCgrjWm42LMRoZu1wuuFwueL1euN1uDA0NCcg43sg43ZpuPGslI1" + "Xwj8PtdnMEKzd+pA4y6WYQSI0t/" + "zEwmYgoFumyLIvx8XH09vZCq9WipaVlBoHxkW5rx0TfS6lUwmAwwGAwcMm40tJSB" + "INBTqbgR8ZKpVKgGefl5UGj0QiIJFPlBSkJnKZprj5YbvxIHWTSzQAQsjWZTKisr" + "JSkewyI3LbLsixGR0dhNBqRl5eHJUuWQK/" + "Xx1wvWglaJj2+" + "R4JKpeLImI9oZEyImHyXUnxOKYkSkO4pI1bULKbxg5Dx2NgYdDodDAZDxPK2UxUy" + "6c4iQhsazGazZN1jwHTExyddlmUxMjICo9GIwsJCLF++" + "HDqdTvR60bwXUpW8SgeikTGRKaampmCz2XDw4EEBGZN/" + "oZFxNEip6UqJRG8o4cjY4XBAo9EAiN74wS9tO1UqKmTSnQXEmtAgFYi8wDAMhoaG" + "0N/" + "fj+" + "LiYqxcuRJarTbu9SI98qfi2DPhwlOpVCgoKEBBQQHy8vKgVCrR0tIiIOOJiQn09/" + "fD7/eLJuNMfSqQ8phomoZKpQp7bp/" + "qjR8y6aYJYhsapNYO3W43PvjgA5SWlmL16tVc9JEIstHaUarj5f8ufDLmIxIZq1Q" + "qjoRzc3MFZV7JIlOJiOjD4SC28YMgEAjAZrOhrKzspGj8kEk3xYinoYE0M6hUyf0" + "sZFy62WwGwzBYv3491Gp1UmsC2WvtmC6Ci0TGgUCA04wnJiZgt9tx9OhRqNXqsJH" + "xbEHKG2o00o2ESGTs8XgwMTGB0tLSmI0fJKgJlYoyCTLppgiJNDQk27YbDAbR39+" + "PoaEhVFRUYO3atTh48KAkhAvI1o6JQq1WC8jY6XRiyZIlAMBFxmNjYzCZTFyHWbr" + "JWOrfNRHSjYRgMMhFt6Hg1xoDwJ///" + "GccPXoU27dvl+S9UwGZdCVGMg0Nibbt+v1+9PX1YXR0FJWVlVi/" + "fr1kJzwf2SgvSIVUlHmpVCoUFhaisLBQsD0QCIgi49zc3IxoTQ6HREiXYYC//" + "EWJ134XwM8fVYAcTiypgv8d2Gy2sDXmmQSZdCWCFA0N8ZKuz+eDyWTC+" + "Pg4qqursX79+pRmxbNVXpAC6fReUKvVosjY6XTC6XTio48+ErRC6/" + "X6uJ9upIxMgfhI3O8HXnpJiR0v/wMDVbsBisIFf/kdzj9/" + "+logka4Y2Gy2Gd9bpkEm3SQhZUNDaIlXJHi9XhiNRkxNTaGmpgaNjY1pKUHKNCJM" + "JzKhOSKUjAOBAI4dO4YlS5bA6XTC5XJhdHQUTqcTwWAwrGYciYwZhpGcdGPB4QCe" + "fBrY/efXYV28CzjnE27bfU99jPPPXwwgftKtrq5O6JjTBZl0EwR/" + "QgOApMiWQKFQRI103W43ent74XA4UFtbi5aWlrRmbtMtL0jxXidzeRZpZlCr1ZwD" + "HB9+v5+LjC0WC1wuV0Qypmk6bbXDExMUHnksgJ/" + "vfwaeFbuBjf0hH0yJo+" + "Mfor19KVpapvMiOTk5otaWI92TEGQy7NDQEMrLyyUtWYkkL/" + "DtFWtra7F48eJZIZJ0ywuZhEwk71gdZBqNBhqNRhQZ+3w+" + "0DSNzs5OrhU6NzdXsiQsAAwPU9i1z4OnP/0FAqseBs4dF+7g1wMfXYHzC6/" + "GrbvL0dIyfa7FU9Fjt9tl0j1ZwG9ooGkaAwMDqKiokPQ9QuUFh8OBnp4e+P1+" + "1NfXo7i4eFYvfFleyC7SjYRwZGyz2TA4OIjS0lK4XC6MjIwIIuNQzTgaCYYeV38/" + "hR177Xje9FMwq/YBZ9uFL3CVQPXhtbi06Qe44YE81NSwAE5cB/" + "HIC3a7XU6kZTMiNTSoVKqURHxEXrBarejt7QXDMKivr58RqcwWopGuFPXFYt9rNn" + "AykW440DTNETH/" + "fCPnP9GMh4eH4XK5uP1DZQqVSsUl5Xp7Kdy3dxKvDO0Fu+rnQIVb+" + "KbWKugO34gfrb8MVz+hxpw5LICZv3m8mm6mXC+RIJNuGMQ7oUEq+Hw+" + "DA0NITc3F/X19ZLcsYkkIJWBTiisViu6u7vh8/" + "nAsqzgQiTRUSrK12RIS7qR1qIoChqNBsXFxSguLub+zrKsQKbgk/" + "HwcD5+8bwe77K3gl35S6DaK1x0vAmGT27GjZ+/" + "GFc8D0xPc4p8gw0Gg6LPIVnTzTKQsi+" + "apuOa0JDse05MTKC3txc0TaO0tBTNzc2SrU8aLqROkhCzc4qi0NjYyI3P8fv9XFQ" + "0ODgIl8sFhmGg1Wo5Es7Ly4NOp0tL4iYVbcCZAqkj3XjWoigKOTk5yMnJ4ci4q4v" + "C1ofG8NuJPcCqXwIqn/" + "BFlqUo+uRmXHPeBnznCaC4WFwEG89TFE3TkurQqYBMukh+" + "QkOi7zk2Nobe3l7o9XosXrwYNptN0HMuBaQcTglMn9QffvghR7YGg4GLegBEjIq8" + "Xi9cLhecTifGx8fhdk8/" + "akYa0Z5pbcAnO+kmUzLW00Ph7j3jeHN89zTZNoScw0OrMK/" + "jNmy5YCP+c7MVfr8NExNODAy4QdM0cnJyZjR98ElWrLyQSXJUNJzSpJtMQ0Oij+" + "3EXtFkMsFgMGDZsmXIzc0FMF2lkOwgyVBIRbo2m42TEZYtWxaX9EFRFHQ6HXQ6HU" + "pKSri/" + "kxHtobPPSEIxLy8PKpWKMxWfTZzspJtIc4TRSGHr7km8PrYL7KpfAPUhZGteg/" + "ndt+Pub30OF99PY3r54s/" + "+TYPcsPlPR263kIwDgQAcDkdMqYqQbqb9TqE4JUlXihpbUt4l9nUMw2B4eBh9fX0" + "oKirCihUrZtgrSjG9NxTJki4hW4qi0NDQgE8//" + "TQs4SZyovNHtPMnDNM0ja6uLgDAxMQE+" + "vr6EAgEuPpSfiZdyuRdtkHqSFfsd9nfT+" + "Ge3Va8PLQH7OrHgLoQzda8FvPab8V9l5+HCx6koVRGPqf5MsWcOXO4v7MsC5/" + "Px5W18aWq0MiYkLHX6+UCmEzGKXXGhiPbRO+KhCBj6UcMw2BwcBD9/" + "f0oLS3FqlWrIhZ6ZxLpErIFEHFmWqqgVCqh0+" + "mg1WoFZBwpcZOTkyPQi3NzcyXXi6WKdKV8BE53pDs8TGHbbgeeMz0MZvU+" + "oDqkGsG8BhXdd+CGr6zE566ZQm1t4ucyRVHQarXQarXQaDRYuHAhACEZ8/MGf/" + "zjH/Hee+/BarXimWeeweLFi7Fw4cK4TPpD8dBDD+FXv/" + "oVKIrC0qVL8dRTTyXkQx2KU4J0Qyc0SKHXqlSqGQbMfJBa3sHBQZSVlWHNmjUxCV" + "pq/" + "TWRNW02G3p6esCybNrJNhShBBWuvpRchOTxdHJyEi6XCwCg0+" + "m46cBarRY6nS7h311K0k3XeB2p1hobo7DzYQ+" + "ebHsUdOvDwHyHcIehVZjfcSe2fWc6sh0ZGQQgTcVK6GgjPhnzI+OVK1fi73//" + "Ox555BFYLBb84x//wEUXXYQvfelLCb3v4OAgHnnkERw/" + "fhw6nQ7f+MY38MILL+C73/1ush/p5CZdhmHgdDo5sktH9xjfXnH+/" + "PlYu3at6Me22Yx07XY7uru7EyZbqTVPsWvxL8JQvdjj8aC7uxsejwc9PT3weDyCi" + "cAkOhYzakcqFy6pSVeqcrxwka7VCux6JIDHPvo5Aq27gDOnhC8aWYaytrtxz7e+" + "iG/" + "cf0JGIDW8UkBsEo1IVU1NTbjxxhsle2+PxwO1Wg2324358+" + "dLsu5JR7qhDQ2HDh3C6aefLrm4HhrpBgIB9PX1wWKxJGyvOBukyyfb+" + "vr6jK9xFAtCrrm5uSgpKeGiY5qm4Xa74XQ6MTk5OWO6A18vTkXpkZRDKaW0Y+" + "RHui4XsO/nLPb88yl4Vm8Hzh4V7jy2ECWf3I27//s/" + "8a3tDFQq4TkrtZeu2LWsVqtk529FRQVuvPFGVFVVQafT4Qtf+AK+" + "8IUvSLL2SUO60RoaUpHNJATp9/" + "thMpkwNjaGqqqqpOwV00m6qSBbKaO4VHWkKZVK5Ofnzxg1z7dN5JvDkKSNz+" + "fjRu0kQyhSEqWUJjXT8psSP32Mwn1/" + "eAHOlduADSFGNJP1KDxyJ+" + "742oX4n60MNJrwN3MpSTeeGl0pGyOmpqbw5ptvckNcL774Yjz77LO47LLLkl4760" + "lXTENDKpoDAKC/vx/" + "d3d2orq5GQ0ODJC5jqdZ07XY7enp6QNM0GhoaEjpJQ8lV6rra2UA4D1t+" + "OZPZbMbk5CQmJibAMAx0Op0gKhZrKJ5OX16xoGngt78rwi/" + "efRsTy+4CNnYKd7BVIu/D27Hl/G/hylcArTb6ORpP224sxOu7IBXp/" + "vWvf0VtbS1KS0sBABdccAHef//" + "9U5t0xTY0EBlAKo3J7XbDaDRibGwMJSUlWLVqVcp14mRASNfhcKC7uxs0TSfl50D" + "INdNrIaUAv5zJ6XRy1RQsy8Lj8XDNHqOjo/B4PAAwQy/OyclJWQCQ7FosC/" + "zud0ps+dU/" + "YG6+A9h4WLiDqxS6g7fi+rMvx9UvKD5r142NVIzqEQObzYby8nJJ3reqqgr//ve/" + "4Xa7odPp8Le//Q2rV6+WZO2sI914GxrUarUkpOtyudDb2wuXy4W6ujoUFhbC7/" + "fPSvIoHgQCARiNRqjVaknMc1LVVhyKTIuc+" + "TcaiqKQm5uL3NxcLhICTjR7OJ1OWK1WmM1m+Hw+KJVKjoRVKpVknyuZ3+Ff/" + "1Lihoc+" + "Qnvl7cCGfwo3egugPngDrlrxI9zwaw3iPWVmk3SlinTXrl2Liy66CCtXroRKpcKK" + "FStw5ZVXSrJ21pEuTdMIBAKiGxpilXbFAt9esa6uDnPmzAFFUbBYLFx0k4kgka3T" + "6URZWRmampokWTfTyDAW0hmV85s9+" + "CCj2Z1OJyYmJmCz2XDgwIGkzYESId2jRxW48YEe7NffCZz5pnBjQAfFwWvw7brrc" + "cfjeZg7N7HfWWpNd7bMbrZu3YqtW7dKth5B1pEumXcvFomSLqlXZRgGdXV1Ai+" + "BZNZNNchNIhAIoKGhAU6nU1KSTCfpZhK5J0Pe/" + "NHsBoMBFEVh0aJFSZsDxUO6PT0Ubr3fgj957gVW/" + "B+" + "g4OmytAr46Ap8tWgL7t09B9XV4S0WxULqSFdsl1k2OIwBWUi68SJecpyamkJPTw8" + "UCgUnI4RDKvTXZBBKtkRGcLvdCAQCkr1PKpJ94ZBpmrGUzRGEKJM1BxJTvWCxUNj" + "6oAO/6dsFtvWnM52/PvkmNrB34LKv2/" + "GNbxQjGbIN9xmTRbyJtEz30gVOAdJVq9UxSYdlWUxOTqKnpwcajQbNzc0zSopCkc" + "pIN54L3Ol0oru7G4FAgJsuwYfUJJlt8oJUSJdFZDzmQFNTU/" + "B6vZykQQhZo9HAbgd2PxrAvoOPIbDmAWB+yLSGrvNx2uQ9eHDzIqxdy+" + "DgwYOSfD6pMVslY6lE1pFuvNFGNHIk9opGoxE6nQ6LFi2aocdFQqoiXbHVAbHIlk" + "Bq0k3XcEop57FJWTucLBJNfoUzBzpy5Aiam5u5yQ4TExPo7u7Hq68X4+" + "mj78Czdhtw9rBwIfMa1PVux4M/Xo/zzqNBUdI/" + "tUh5fsTTHBEIBEQPsJxNZB3pxguVSjXDo5ZlWVgsFhiNRhgMBixdujRudyIylkRq" + "xHIvE0u2BKmIdMOtl6kRcKaZmEvdBqxWqz+rGTbg1VeV2PLrP2Fs2Q+" + "A8zqEO483o/DDu3DN51fga1d5kZ8/" + "CJcrT3R98WzhZPPSBbKQdJOJdBmG4bxsI9krioVSqUyJvBDJvczpdKKnpwc+nw/" + "19fUCs49okOUFaZCppKtQKPDPfyqx+eGD6Kq5Bdj4gXAnRznyDt6F2798Kb5/" + "FwOWPWEONDExAbfbzenIRqORkykSNQeSupww3kaLTL6BEGQd6QLxXfhqtRp+" + "vx9msxl9fX1cQ0OyjyGpeswOnQicKNkSZLO8cDKSu5TeCz09ubjt4T58kHsncFZI" + "+ZfXAPWBm3Htmquw+" + "XkV8vNZABSAmeZAgUAAR44cgV6vh8PhwMjISMLmQFJWLgDiSdzr9WaFtABkKemKB" + "U3TGB0dhcVigVarRWtr66xPIIgFMhE4WbLlr5dKeYFlWQwPD8NkMoGiKEFCh0x+" + "OBmQiuqFRGE2U7h95yRem3oCWPGEsPwrqAH14VW4dMFNuPsXBlG1tgzDQKPRYO7c" + "uZg7dy7390TMgaQmXUBc9Gqz2TJ+" + "9DrByXFFhCAYDGJgYABDQ0MoLS2FwWBAY2PjbB+" + "WKDAMg46ODm78enFxcVIXe6rkBZZlMTo6it7eXhQWFmL58uUAwF2kFouF83ggdaf" + "kIo3HpyBTkAnygs0G3P+QD499shd06x6gLsRE/ONL8XnVXbj/" + "vnI0NIivtY1ElLHMgcjvzDcH0mg08Pv9cDgcyM3NTdsk6GypXACylHQjPXoGAgH0" + "9/" + "djZGQEFRUVWLduHQDgwIED6T7EuOFyudDT04OpqSnU1NSgpqZGkos8FXW1VqsVHR" + "0dyMvL43RxYqVJmgAI+CbjfJ8CiqIE0VLoHLRMa6+WinQT0Tz9fuDxXwL3vfV/" + "cLfeA5wRYrXY+zksH92OPT9ZjNZWBvHW2sZ7TNHMgUZHR+FyuTAwMAC3282ZA/F/" + "61TcdO12uxzpphN8e8UFCxbMsFdMVcSU6HBKPgjZejweNDQ0cKNnpCIdKUl3amoK" + "o6Oj0Ov1goGa0RDJZJz/" + "6Mqfg6bRaJCXl8eVCiVv6pK91QssC7z+" + "uhI3PfkWRpfdApwb4v41sgyVbTuw66pz8B//wSRc/" + "iWFJEDMgfLy8uD1erkny3DmQG63m7vpSmUOZLVaZdJNJcgP4/" + "V6YTKZMDk5KZm9YjxIxsGMT7ZEs6UoClarVdJSNClI12azoaurC0qlEiUlJSgrK0" + "t6AGCkR1fSGjs8PAy73Y4PP/wQwHQ3FpEoSFScDZnqUIgl3X//" + "W4lNDx5BW+" + "XNwMZ3hRttlSj4cBsuX70ad75eDZUqud9XyoqD0LraaOZAxL84kjmQRqMRfVyyvJ" + "BikDEsNpsNNTU1aG5unpULMJEGiUhkm8ya0ZAM6RLTHIZh0NjYiIKCAnR1dYWNHq" + "X6/" + "klrbCAQQF5eHqqrqwXdWPwLlIxn5+" + "vFqdIQpZQXoh1jdzeFn2wfxN9wJ3DGS8KNXgM0B27Bdet/" + "iOtfVOL48YNQqaqTPqbZMB1XKBRhb7p8c6CxsTE4nU4cOHAAarVaIEWF/" + "tZSTo1INbKSdB0OB+bMmYOFCxeKvhBSYUcYTyuw2+" + "1GT08P3G53WLIlyATSdblc6O7uhs/" + "nQ2Njo6CfPZ3eC4TcI41qJ51YLpcLQ0ND3HRgYjBOZAopJIZUVy9MTFC4+34n/" + "s90/" + "7RHgpLXuk6rQB26Ct+q3IKtn1UkZPNU4WjgmwOR6pempibBbx1qDvTWW2+" + "hv78fixcvRiAQkGTMktVqxRVXXIFjx46Boig8+eSTWL9+" + "fdLrAllKumVlZXE1JkhtZE4ghiD5ZFtXV4eSkpKoF69CoZg1gxoywNHpdKKhoSHs" + "jSGT6mfVajWKiopmTAfma4h2ux3Hjx/" + "nbBT5UXE8F2eqtGGvF3j0ZyweePsX8K29F1hnFb7g04uwgb4Hu7ZVoanpRJIsk4g" + "ydC2prjNyXBRFRTUH6urqwqFDh9DX14eXXnoJKpUK77//" + "flLfz6ZNm3D++efjlVdegd/v50yHpEBWkm68kMrIPBTRIl1Cti6XC/" + "X19THJlkCpVMLr9Up2jGLe0+" + "fzobe3F1arFfX19Vi8eHHE10Uj3UyYKBGqIXq9XlRWVkKn03Ea4ujoKJxOJ1fmxJ" + "coItkokrWTBSFLhgFeflmJLc/" + "8FhMrbgU2GIU79p+" + "O5v77sffGlTj9dBoAE3YdKZCpBB6rG42YA1144YV49913cfnll+" + "OMM85AMBhM6vPYbDa88847ePrppwFMS15SckdWkq6UpjfJIFyk63a70dvbC6fTGR" + "fZRlszVfD7/TAajZiYmEBtbS1aWlpiHutsyAtSgP/" + "YShBazsa3UeRHxXl5eZLKCwcP6nDHLw+jq/YmYON+4Q4TDSg9ugM7/" + "+dLuOghGhQV/lyQmiiljk6lQLxTI8hvm2xDjtFoRGlpKS6//" + "HIcPXoUq1atwt69e6HX65NalyArSTdepIp0+" + "aY3oWQbLVqMBtKRlkoEg0GYTCZYLBZUV1ejsbFR9AWcSfJCsohUzkYy6/" + "xOLJvNhuPHj8NgMHBEHG/xf1cXhR/dTmN//jXAWa8KN7qLoTtwJ275/" + "OW46k4KOTnRz4FTJdIVKwHZbDbJvHSDwSA++" + "ugjPProo1i7di02bdqEnTt3Ytu2bZKsn5Wkm0mRrtvtxrFjx+" + "B0OlFXV5cw2fLXTFUkSdM0+vv7MTQ0hMrKyoTGxacr0gVmryMtXGb9448/" + "Rm1tLZfQIcX/LMsKEnd5eXkz6k25JFnfTrCrfyZMkgU1UBy8Fpc3/" + "AR3PK1DDNM4DplMlFLqwzqdTtS+" + "UpJuZWUlKisrsXbtWgDARRddhJ07d0qyNpClpBsvxBiZxwuPx4Ph4WG43W4sWrQo" + "abIlSIW8wLIs+vv70d/fz3XqJXphSOlzG+t9Mgksy0Kj0SA/" + "P1+QzGEYBh6PB06nkzMX93q9UCqV0Gjy8eobZfjpgZfhW7cNWDslXPSTb+" + "Lzyq148P5y1NWltossXWvNlrzg8/lEE3QszJs3DwsWLEBHRweam5vxt7/" + "9DYsWLZJkbeAUIV0pI12Px4Pe3l6ubK2wsFBgEpIspCRdhmG4Uiq/" + "349169YlrXdFkhcyjSQJUt1JxnfiIuVsLAu8/" + "DJw89NvYWLFJcC53cIX9Z+BRuN27Nm8BGefrQJFxR/" + "RZypRxjPpIRZm00v30UcfxaWXXsoNpH3qqackWzsrSTcReSHUyDxeELK12+2or6/" + "HokWLMDk5idHR0dgvjgNSPL6zLIuRkREYjUbMmTMHubm5qK+" + "vl8zL4VS0dhRL3gcOKHDt/Z/geOVNwHn/Em6crEfhoW249Wtn4AvXWuFytePQIa/" + "Ah4L8i6VlniqRbjxrSXnjP+2003Do0CHJ1uMjK0kXiO+" + "iTCbSDUe25MdNxfSIZCJdMn6op6cHBQUFnG/" + "w5OSkZBFfuoVHCLIAACAASURBVOSFTEOs76+vj8JN91nwJ/9dwBm/EW70FEG7/" + "3bcvPEKbNzRjsZGNfLyarnNNE0LurCMRiNXzsYn49zcXI4cpfTllZIopRxKKTZql" + "qohIl3IWtKNB4lounyyraurE5AtQSr010TXnJ6P1Q29Xo/" + "TTjtNoG+" + "R6FmKiyHTItDZht0O7Nzjw2Of7AG95iFAzauxplWgDv4Y367egq1P5WHOHBaffjq" + "TLJVKJQwGAwwGA/" + "c34tpFytnIlAcAnEsXKXlL1ociVmvybEGsvGCz2QTfXaYja0k3VZGu1+" + "tFb28vbDZbRLJNZF2xiJfUpqam0N3dDY1GgyVLloStJZSy4iBdpJtp5B4a6QaDwN" + "O/" + "VuDO15+" + "Fc81dwBkW4Qvavo6zffdhz72JdZIR166cnByBgT3xoRgaGoLD4UBbWxtnLJ6oD4W" + "YUe6zAbFRczaZ3QBZTLrxQAw5hpKtGF+" + "HVES6YiMWu92Orq4uUBSFlpaWqCPjpSTddJaMZRL4pPu3vylx7d53MLDwJmDjJ8I" + "dh1ahrutB7N28FuecM7OTLFmZh/" + "hQGAwGaLVaVFVVATjhQ+F0OgXeBLm5uQKJQqvVznj/" + "VPiSpBPZNDUCyGLSjefEValUEeUFPtnW1tbGZaKTqvrfaCDTgIPBIOf8FQvZGOkC" + "0mSlpaxe6OhQ4rr7jPggbwuw4Y/CHewVKDh4H7Z/" + "8yJ8634GSmX4m3GqzNCj+" + "VA4nU44HA4MDw9z5Wx8xy6pSHe2bsbZ5DAGZDHpxgOlUjnjAk6GbAnSWSbldrvR3" + "d0Nj8eDxsbGmKPX+UgH6dI0jUAgINlwwEwqQRsfp/" + "DAvhL8xbcF7OqfAwoeofpzodp/Mza1XoMbX1JBr4/" + "+PUtJcLHW4ftQ8Msa+" + "faJFosFHo8HBw4cgFarFUTF0XwowkHqhJxYSNkYkQ6cEqTLBxk1bbVaEybbdMLr9" + "aKnpwcOhyMhLwcgtfICwzAYHBxEX18fJ7fwZ6KRizeTv+NI8PmAfY+" + "x2Pn3zxzAdDwHMJYCDl+OrxXciZ0/" + "nYP588WRhJSRbqL1sKE+" + "FHa7HatXr4bX6xVUUYgZq8THbNTokuOXE2lpQLwnLsMwaGtr48hWjLnLbMLn88Fo" + "NGJycnJGqVq8SEWky7IsLBYLent7UVJSgtbWVo5QvF4vpy+SSIo80vL/" + "RYuKZjORxrLAm28qccOv/" + "oSx5VuADSHNDcYNWG55AHu3LMLKlfHNJJvNWWvRQBy7dDpdXGOV+" + "IQ8WzW6NpuN07azAVlLumJBIlviZ5sKspXS0jAQCMDv9+" + "PgwYOoq6uTZCqG1KTr9Xqxf/9+5OfnY+XKldBqtWAYBn6/" + "X3Dx8sezBINBjoiHh4fhdDq5RA8h4fz8/" + "Fkfw3P4sALX7jiOo2U3ARvfFm6caMTcI/" + "dj95VfxFe+Qic0kyyd8oIUiDVWifhQEAN5lmVhMpki+lCIRTxRs9VqxbJly+J+" + "j9lC1pJurB+SeMROTU2htrYWdrs9oUfzWCCEluwdPhgMoq+" + "vDyMjI1CpVFi9ejW0Wq1kxyhFlYXdbkdbWxs8Hg9aW1vjsrpTqVRhJ8iSKMpms2F" + "wcBA+nw9qtZqrrXY6nYKmgHghNloeHqaw5d5JvG6/" + "C1j7a4DfmusphOaD23HbF36AH70W2wEsFjIp0k20ySKcqfjk5CRGRkag1WoFvye/" + "nI1ExrGul3jlBTmRNosIJVsS2Y6MjKR0ekSipEvTNAYGBmA2m1FZWYl169bh448/" + "lvTROtnWXbfbja6uLvj9ftTU1GBoaEgSb1H+RFj+GB6/" + "3w+LxQKLxYK+vr6wHrf5+fmiu5CikYrbDex5lMZDH+" + "xDYN1OQOM6sZFRgjp0FS5bcCu+fl03zjsvc+" + "SoTIyYyficefPmCf7OH7XDf8rhu7Pp9XqB9h+" + "vl65MurMAvgYaTrNNpaduImROElD9/f0oLy8XmNFI7ambqLzg8/" + "nQ09MDu92OhoYGlJSUwOv1YnBwULJjCweNRgODwQC3243m5mYAQo/" + "b8fFxmEwmweSH/Pz8uJJ2DAO89JISNz/7OqZW3gqc3S/cofM/" + "cbpzJx6+uxYtLQwOHpTWpS5ZSEm6qdZhxYxVGhkZgcfj4eqQyecT0+IrVy+" + "kCeTC4pNttMnA6ZweEQ0sy2JoaAgmkwlz587FmjVrZpxUsz2cMhgMwmg0YmxsbEa" + "FRzqtHfnROd/jtry8HIBw8oPD4QibtAsEAjO+y/37Fbjm/" + "qNor74R2PiB8I0tS7Dg+IPYu+" + "lsnHfezOaGTIFUpCtlN1o8T3yRRrOTcjaz2Qy3241PPvlkxlglvV4vkJzsdrtMuu" + "kATdNob2+PSbYEqY50Y4Gf7S8uLkZra2vE6FhqI3OxpMswDPr7+" + "2E2m1FVVYV169bNuCCjVRWkOwEWafIDuXAdDgc8Hg/" + "a2toAAHZ7IR75dQ7eVu4EzgwxpXGVQL//Htz91W/j+/" + "exUKnSMzIpUUhleCO1rWOyxjOknM1qtaKkpARlZWURxypZLBY8++" + "yzcDqdePfdd7FixQqBTJXM51i9ejUqKirw+9//" + "Pun1QpG1pKtUKlFUVCQ6u58KI3NyHNGiUpZlMT4+ju7ubhQUFHDZ/" + "mhIt7zAj77nzZsX1Xc3XdaO5LgSAb8O1Wq1oqysHo/" + "8XIV9hx8GvXYXoPac2JlWg9q/CZcu+DFu/XkO5s/" + "PTB+CUEjl5iW1raNURuJ8TTfSzdXn86GkpATXX389/" + "vrXv+" + "Khhx7CGWecgTvvvDOp9967dy8WLlwIu92e1DqRkLWkS1EU5s2blxZ7x0TXnZycRF" + "dXF3Jzc7F8+XLk5uaKWjMV8kK4Gw7/" + "hlBUVBQ1+iaIJi9IWTonTYYf+P0firHvnT/" + "B3norcOaQcIfjF2BDcBvuvrUAJSVW2O0WDA9PJ9JC/" + "W0zDVLKC1JGuulcKycnB2vXroVKpcKuXbskeV+z2Yw//" + "OEPuO2227Bnzx5J1gxF1pJuvJDCyDwcwhGk1WpFV1cX1Go1Fi9eHPdFmwrSDXeMn" + "Z2d0Gq1M6wgoyGT5IVo+OADJa6+/" + "0N01d8AfO6gcOPwCtR17cIjm9fh7LPJ93Kio4mftJuYmIDJZILL5cLRo0cFREwsF" + "mcDmVi9MBujeqScyQYA1113HR544AE4HA7J1gzFKUW6qY50HQ4Hurq6AADNzc0Jt" + "yZK7eTF14idTie6urrAsiwWLlwY1Z0sHNI1rifRjrS+Pgo/uXcEb9G3A2e/" + "KNzomIf8g9tw38XfxLd3RjalCTeY8sCBA2hubuZ0xdHRUUG2nVRQ6PV6yVpho+" + "Fkj3TFkq6ULcC///3vMXfuXKxatQpvv/" + "22JGuGQ1aTbjwXZio1XafTiSNHjiAQCKCxsTHpmkGpI12KouD3+" + "3Hs2DG4XC40NTUlnO3NpGiWD4cDuP8hP356dA/" + "oNXuEZuLBHCj3b8ZVSzfjludzkJ8f/" + "w0tVtKOlD05nU5O2+SXsiXamRUJcqQ7DSlrdN977z389re/xR//" + "+Ed4vV7Y7XZcdtllePbZZyVZnyCrSTcepCLS9Xg8MJvNcLlcWLp0qcBsOhkolUr4" + "/X5J1vL7/RgcHMTk5CSWLFmC0tLSjCXORMAwwLO/" + "UeDWF1+EvfV24Ixh4Q7HvoHzcA/" + "27K5ATY30CcBQ8xhAaKkY2pnl9XoxPDzMlT4lQ3iZVr0g9fh1MWtJ6aW7Y8cO7Ni" + "xAwDw9ttvY9euXZITLpDlpBuvp65UpMu3hSwrK4Ner5eMcAFpIl2aptHX14fh4WG" + "UlpZCrVZLOrU41RDzFPP++0pc/" + "cBBdDfcAGz8ULhxcDUaenbh+" + "guLcdFFRdDp0meeE8lS0ev14ujRowgEApxfATA9fodExNFcvFKBZNzKQiElgQPir" + "u9sMzAHspx040E0I3Ox8Pv9MBqNmJiY4KZLOBwO9PX1SXSU00hG0+V3us2fPx/" + "r1q3jTElOFvT1Ubhh2zD+wtwOnP2ScKOjHIaD92HHJd/" + "ApQ8yOHbsY1DUvPALpRkqlQpqtVrgiEXG7zgcDoGLF78ZIJVJO5qmJfNAlnIopVi" + "kqgV4w4YN2LBhg+" + "TrAllOuvGchOGMzMWCdGiNjo6ipqYGTU1N3HtnynDKUKtFfqeb1HW/" + "6ULo7+V0Ajv3fKbbrt0NqHjVKAEtlAc248fLN+Pm5zUJ6bapRriSOn4ijr+f3++" + "Hw+HgvG3dbrdg32AwGJc/QSSkwiIyncg23wUgy0k31eA/" + "oi9YsADr16+fcYJmwhj2iYkJdHV1CawWQ9fLtrlm/" + "IuXYYDfPKfALS+" + "8CHvrbcAZI8KdP7kE56u24cE981BdLb2MIFUzSCJDKUO9bUn1RDAYxNGjRwVJu2h" + "z0CJBaklACsTTbWe1WlFRUZHiI5IWMumGAcMwnPNXRUUF1q1bF/" + "HEVCqVkifoxEamdrsdnZ2dUKlUWLp0aUTnr2weJvnBB0pc/" + "cAhdNXdAGw8JNw4uBqNvbux76bVWL+" + "eRjxm4vFAyjlryayjVCq5pN3Q0BBWrVoVcQ4a304xPz8fubm5Yc/hTBy/" + "Hq+t4+" + "LFi1N8RNIiq0k3kRM4WrTBMAyGhobQ19eHefPmcd0u0ZAqeSEaSfKtFpuammImEr" + "KRdM1mJW7YpsUH+u8BZ4XW25bDcGA7dnzzYlz6IAOFIvr3nynVGlKSN0GkpB1/" + "OnBo0o5fyiaV4Y2UreHxkq6cSMtgqNXqsDaMLMtieHgYJpNphh4aC6m4oCMRObFa" + "tNlsaGxsFDx6RkOqSZdhGJjNZs5nl98oEG8U5XRO19vuO/" + "Iw6DW7w9Tb3oAfL9+MLS9qkJcX+" + "zNl0kThdNbWhrNTDJe0s9vt8Hg8KCgo4Ig4kaTdbDVZyJpumhHviRHqfcuyLEZHR" + "9Hb24vCwkKsWrVKskxuMggl3WhWi2KQKtJlWRZjY2Po7u5GSUkJFi1axM1HGxwch" + "MvlAsuyAiLOy8sLe0NjGOC55xW45fmXYVt9G3BGiE/CsW/" + "gC4p7sXtPeUp022jIFHkh2XXCJe2OHDmCuro6BAIBOBwOQdJOr9cLStmiRZ+" + "z0RgBZJ+" + "XLpDlpBsvCOmyLIuJiQl0d3cjPz8fK1askGw0jhQgJCnGalEMUjHkkfhLaLVarFy" + "5Ejk5OfD7/" + "dBqtYLIg+9jMDY2BqPRiGAwKOjYOn68EJsfOobOuhuAjSE+CUOr0NC9G/" + "tuasXpp6dOt42G2SbLUEipw5I5dSqVSlBrTtM0Z49psVjQ09MTNWknRSUFgUy6Jx" + "FUKhWmpqbQ3t4OrVaLZcuWiXb+igUpHbaAaU3ugw8+" + "iGm1KAZSHpfH44HH40FXV5fAXyISqUcyH/d4POjs9OKa2+14R3MbcNbzwhc65kH/" + "7224/1vfxGUPxNZtswGzPdcs0lrhjkmpVMJgMAh8DaIl7TQaDXw+H+x2e0KyEh/" + "xkK7T6cxIF7hoyGrSjefEs9lsGBsbg0ajwZIlSyT9oYgckOydnm+" + "1SNM01q9fn9bupGgIBALo7e3F5OQkcnJysGLFihmfV2wE5nZTuP8hNR796Kcz/" + "W2DOVDs34yL530bF1xrwty5B9HVdUKaSPaCTgSZGOlKVVsbT0NDtKTd8PAwxsfHB" + "bJSuEnPYiBWqiA3+mzwP+" + "Yjq0kXiP3o7HA40N3dDYZhMHfuXO7ilRJSkG6o1eLhw4czgnCJxDE4OIjq6mo0NT" + "Xh4MGDgu+cZVkwDAOWZQVdfwqFAhRFcRcFwwAvvKjAlt+" + "8BuvqW4AzQ2atfXoRzsN92LN7PsrLvWhvn8DixYu5yCpUJ+" + "brjdESn8kS3clMulJArVYjNzcXhYWFqKurA3Aiaed0OjE1NYX+/n74/" + "X5Bp11+" + "fj50Ot2MzxIMBuN6As2U6hSxyHrSjQSXy4Xu7m74fD40NjaiqKgIZrM5pfaOiSTh" + "iNUiwzAJWS2mCvwOt7KyMkH5HLnREbIlSTq1Wi0gYPLfNE3j0CElNj1wDO21NwAb" + "9wvfbPg01Hbuxr4b1+" + "Gss6Z1W2J9HG50O9GJSeInnE5MIqtTtXoh3QiNTqN12pGb6Pj4ODweDzcVmuzv9/" + "tF2TVKKbOkE1lPuqGRrsfjQU9PD5xOJxoaGjBnzhzuh0mnkXkseL1edHd3w+" + "VyobGxEcXFxTP2kVonFoupqSl0dnYiLy8vbEWHQqFAMBjkRvdQFCU4Tv7FNzDA4i" + "fbxvA79x3AWSGOTc65yDtwL+75+n/jO/cxUKkCAKbJJNoTTDi/" + "20jOXl6vFyaTCQUFBQmXQ0mVhMw08pYSYiQBfqdduKQd8SkeGxvDxMTEjKqX0E47" + "h8ORMUFKPMh60iXw+Xzo7e2F1WpFfX09Fi9ePOMEn+" + "3hlMAJbXRiYiLicQInKhjSqV+6XC50dnaCZdmwEy8I+" + "ahUKrS1taGgoAAGgyGsXud2A7v2+" + "rHn33sRWPMAoHGf2BjUQHHgOvzvohux5RkNDAbms4gY3M2LVJnE0zobTm/" + "86KOPYDAY4PF4OONxMi2YL0/" + "Eeg9ZXoiOZOS10KRdIBBATU0N51XNT9oplUrk5+" + "djbGwMFotFksaIgYEBfOc734HFYgFFUbjyyiuxadOmpNeNhKwn3UAggO7ubkxMTK" + "C2thYtLS0RT+zZGk4JCH0ciDYa7QIkXWnJku5f/wp88imLta2RL3q/" + "3881XTQ1NUWMuomUsHDhQk6vGx8fh9FoRCAQ+OzxPh//" + "+EcZtr76N0yt2gKc2S9cqO3r+By9Aw/" + "vrkJdnTCCJLKE3W5HT08PDAYDaJrmvlsSUfN14lhQKBQoLi4W3BSCwWBMnTg/" + "P58jkUwjS6nWkbqLTKoadzJVOCcnBzqdTjCinXTaffrpp3juuedw5MgRrFy5Es3N" + "zdi6dSuamprifj+VSoXdu3dj5cqVcDgcWLVqFT7/" + "+c9j0aJFknyeGe+XklXTCNIF1djYGPNETGWkG4l0w1ktiiFS4r+" + "Q6EjrYBC4814P9nRcCzBK7FFfh7VrhSRO0zT6+/" + "sxNDQU8YYVqtsSwgtXBvb++" + "wF8745j6Kj5IfC594UHNLIMVW278bOfnIFzz2URrt42GAyip6eHk1wKCgo4Iub/" + "L9mXHCtJ2JH/" + "Dj3+cE88sXTi3t5eri6V1CD7fD5oNJqECTjTyFvqLrJ01OmSTruvf/" + "3rmDNnDt566y089NBD6OjoSHj8enl5OXce5+fnY+" + "HChRgcHJRJNxJqampE66mpIt1wpjfRrBbFrpmop4PZDFz04+" + "M40ngJsLwTAHDHK2fha19rwPz5J9qejUZjxBtBOLKNRBjDwxRu3DqONxx3Amf/" + "WrjRVYrcf9+D6zd8CedfOgif730cPKjiZAmSwTabzRgZGZlB/" + "oRc+MdHjommaUHCjv83hUIRFzFF04nHxsYwOTmJtrY2+P1+aDQaQUSs0+" + "lEkWmmkW6mjuoR6wdBWoBVKpVkpjcmkwmHDx/" + "G2rVrJVkvHLKedOOdHpEqeYFPuqTbLS8vL6zVotg1E2nd/eMfKXx77xNwnXW9wG/" + "WVfgh/v73S/Af/" + "zFtA1lQUBB25Hpo9UE0svV4gN2PBLDr3UcRWLcT0LhObKTVUBy8Bj9ovgV3vZiLa" + "elt2iuCtJza7Xa0t7fDbrdDrVZjzpw5CAQCsNvtyMvLi3gRkwuSf2GS74rcKFiWh" + "dVqhcfjSVieIDrxnDlz4HK5uMjH5/" + "NxXrd8nZhPxOFG8WQaWWbqUEpA3HUttdmN0+nEhRdeiIcffliyYZfhkPWkGw+" + "SMTKPBlIVYbfb0dXVBaVSiSVLlkS0WhSDeI3H/X5gy11O/" + "Mx8FXDuy7wNehT862fYeuFpaG7+" + "CAMD6rCdeOR7IZFiNGJiWeDVVxW44Yk3Mb7yZuDskMkZ7V/BBv9O7L2/" + "Bg0NM79vtVoNtVrNZaiXLVsGlUoFh8MBh8MBs9kMp9MJlmUFJWD5+" + "fkRnxb4ROzz+dDd3Q2v14vly5dDq9XOkCfiIeLQCDWc120wGOSImO/" + "qxdeJg8FgwnIRH5lG3sDs+" + "PJarVaB3psMAoEALrzwQlx66aW44IILJFkzErKedDOhTi8YDGJoaAiTk5OirBbFI" + "B55wWQCLrjmKI4v/" + "CawuPfEhpFlWDvwHO69k4bfb0Zl5SJOu+KDLyXwSSgcDh+m8KNtx/Dx/" + "BuAjf8SbrQsQVXbbuzbfDY+" + "9zkG4XRbPiE2NTUJHucj6ax2ux2jo6Po6elBMBjkiCw/" + "Px8Gg4GL1kkjx8jICOrq6gRDOEPlCf5njkXEYmQBlUoV1tWL6MSjo6OYmJjgfD/" + "4UXG8CSipqloyMdKNR4Kx2+1oaGiQ5D2///" + "3vY+HChdi8eXPS68VC1pPubIJYLU5OTiI3NxcrV66U7CYglnTffJPCdx/" + "7GTxn3QQoT0gn1KEf4scNN+" + "Nr1xvR0FAHi8UbtgRMvG4LbLl3Eq9M3QmsexqgeITqngP9/" + "ntwz9e+iyt2AirVTFmEJO0sFssMQoyESDqr2+2G3W7H5OQk+" + "vr64Pf7oVAo4PV6UVxczD1lRFo/kk4cLmFH0zS8Xi/" + "X5BEpYSfm+Pv6+" + "pCTkwODwQCHwwGr1Qqz2Ry3TiwV6WZipBuPv69UZjfvvfcennnmGSxduhSnnXYaA" + "GD79u340pe+" + "lPTa4XDKkS5FUUmfbMFgECaTiSOQyspK9PX1SRp1x7Jj9PmAzbfZ8cTYlcCGN05s" + "8BpQ+M7j2PrfjfjiF32oqpp2JhsfH+" + "fWi4dsvV5gz6NBPPDOPgTW7gBqnCc20ipQB6/G9xtuxd2/" + "0SPc+U8SiiaTCfPmzcOaNWuSHjuu1+uh1+" + "tRXl4Ol8uFjo4OKJVKVFRUwOfzoaurC16vlyMyEhFHa4wIR8SBQAAmkwkTExNobG" + "yMmbCL9bnI/" + "qSemGTb+" + "TPRSFQcTSeWKiE3G8kvMevE4zAmhZfumWeemRLZMRKynnST9dSNB2SMz8DAgGBmm" + "tvtlrwqIlqk29sLXHDNR2hf+k1gIU9PHVqFFd2P4eEduVi5slqgHxKNmJ/" + "xj0a2LAu89poCm3/1W4yvuBk42yTcoeO/cLb3fuzdUYOmpvAnrM1mQ1dXF/" + "R6PVauXCmplwRpMiG1xeEuPr/" + "fD7vdLvCJJURGiDhcwovvs1xZWSm4UfATdvw2ZyC2ThyJLCPNRIukEzMMA5/" + "PB7VaHdPnNhqkjHSjnUvx4GS3dQROAtKNF4mQLr/EqqysbIbVYjonAr/2GoXLf/" + "EofGdtAZQniJ7afw1+1HQNtr1Sitxc3YzXURQFp9PJuXRFu9gOH6bw43s/" + "xdF5NwAb3xFuHF2MBcd3Yd/" + "1G3DeeeF1W9Li7Pf70dLSIqnBEMuyGBwcxMDAQMwmE41Gg5KSEgGRkcoJh8OBvr4" + "+OJ1OUBSFvLw8GAwGqFQqDA4OIjc3F6tWrZpxnkSKaqPJEyTCjfccCacT0zSN9vZ" + "2KJVKgc9t6BgeMTpxJg6lPNlH9QAnAekmGumKAd9qsbCwMGyJVbxrioVSqRT4RPh" + "8wPW32vDk5BXAht+d2NFbgKJ/" + "Po7n7vw8zj13ZrUEIYC5c+fCbDbDbDYDgCDaI+VZw8PALfdN4uXJO4G1T8/" + "QbXP3b8XWr1yOK3dE1m1NJhPGxsZQX1+" + "PkpISSSWXqakpdHV1oaioCK2trQlFeGq1GsXFxYKuO5qmYbVaYTQa4XK5uLFOHR0" + "d3HcUrXICiK0Tj4+" + "PY3x8HKWlpVGd2GJBqVRCpVJh7ty5HOEQnZs4eg0MDAgcvQgRh+" + "rEmdhOHAwGRd8IHA6HTLqzhXgmI4glSDIZIScnB8uXL49qNZeKcTj8NXt7ga9f8y" + "E6ln4TaOa11Q624uzRp/Hia3UoKoreSVZQUMA9gpNR3na7HWazGZOTbrzwSil+0/" + "MGAut2ANUhuu2hH+" + "Hy2tuw9dk8hOkQBsuyGBkZgclkQkVFRdK6bSiIaTrDMFi8eHFSpXihIJpzX18fqq" + "urUV5ezun+/" + "A41UjmRm5sruGFFiygVCgU8Hg+" + "nOZPIOZITGzkepVIZNWEXSpZ8nTuSTmyxWODxeLgpwfn5+XC73ZKY+" + "Euph8aj6WbiJGMxOClINx7EIl2+1WJLS4soF6NUDqd8/XUKl//" + "iEXjPvEUgJyj2b8L2jfdi0yNq8N9eTJKMjPI2GAp4uu3lwDlG4UF0/" + "idWjN6Fe6+fg+XLA8jPDyL0lCE3p/" + "z8fKxevVqSOlQCfuTc0NAgehCnWNhsNnR2dsJgMMw49mgdana7HVarFQMDA/" + "D5fFxFAiFirVYLlmVhMpkwOjoa1s8imQ47MRFqJJ2YeBc4HA5MTk5ibGyMa6UXOw" + "8tFLMxHy2diS+pcVKQbjyRbiTTGzFWi+" + "kETSux9X4tXqUvBs757YkNnkKUvv8EXt/xZaxeHd5IPFaSDAA++kiBH9/" + "7Sfh629FFqDy+C49cuwGnn26H3W7HyMgIdzPS6/" + "XQarWw2WygKAqLFi1KSfRpNBpTEjn7/X50d3fD4/" + "Fg4cKFojVnvpPZvHnzuGMlHWp2ux3Dw8NwOp3w+/3Iz8/" + "HggULuOg2VuVEOJ04NGEXDAbhdrvBMAznPxGPPMGfEhwMBmEwGFBUVBR2HhpfJ44" + "2+" + "UFq0hWTbyHXeybU6ceLk4J040FopCvWajGdMJmAr1xlQueybwFFphMbzGtwnvU5P" + "PtyJQoLhYQrppMMmPZJuGnbOF6z3hWm3rYYuQe24u4vfw9XbgfUahbA9AVXUVEB4" + "ARhjYyMID8/H4FAAJ988glyc3MF0V6iEa/" + "D4UBHRwf0en3YRFYyIKPiBwcHUVdXh7lz5yb9W1MUBa1WC61Wi/" + "z8fHR0dMBgMKC2tpZ7vO/" + "t7eUm7IZq6dF+K350G1pRQWSBcBGxWCImEXOkeWhkXDuZ/" + "BAIBMLqxFKTrk43MxEcCqfTmZVeusApSro+n2+G1aIYl7JYkKJ+8ve/p/DtfY/" + "Bc9ZPBM0OigPXYvu5O7DpaiUnJ8RTb+t2T/sk7H7/UQTW7gRq+T4JKlCHfozLa2/" + "F1mci67bDw8Po6+tDZWUlWlpaBIRAGhb4Vo+" + "hRByNQPnRZ3NzWAjOrQAAIABJREFUs+QXFDFmnzNnDtasWSOpFsgwDPr6+" + "mCxWNDY2Cgw6Ob/" + "NykBczgcGBgYgNM5rZ2HtjqHPl57PB60t7dDo9GEvRFFq5wgCJewi0aWfJ2YgET1" + "RJ4gOjFFUaBpGsPDw9wcu0SvJbGars1mS6k/" + "QipxUpBuPESnVCoxNTWFkZGRuKwWY4HYOyZaMxkITHsn/" + "NT8v8CGV09s8Bag5L0n8fr2L6O1dToqjYdsWRZ48UUFfvLr1zC58hbgrBB/" + "W1Jvuz1yvS2pGigsLAyr24Y2LJBjJJESv3NMp9NxJEwi4oGBAQwNDUkWffLh9XrR" + "1dUFmqaxdOlSyaY/" + "E0xMTBsIlZWVxZRBIrUKk6QmX8IhCTtyM2tpaYlYkyqmwy5cwo7IE/" + "EYxZOonq8Tj42NYWRkBIFAgKsnJudEvDqxWE3XZrNlZeUCcJKQrhiQx7POzk4oFI" + "q4rRZjgTiNJUK6g4PABT86hqNNlwCLuk9sGFqJc8dfwG9erEJx8cyZZLF02/" + "37Ffjx9sNoq7oR2Bjib2tZggVtu7Dv+" + "nMi1ttOj0mfniSxZMmSuIcFEiLm659er5dLRBHvXK1Wy5EtSUwlS7z86DMVSTiv1" + "8t9N8uXLxf1SBwOCoVixqM9wzAYHh5Gb28vtFotVCoV2tvbBTcs4tkQb6szME1sZ" + "rOZK48LNYoX22FHQH7rqqoq7m9kBE84nZjfZRcatYu9hqxWqyTdaLOBk4J0Y12gk" + "5OTXGfU4sWL0d/fLynhAuE9dcXgr38F/vv+/" + "4PrnGsEVozUwavwg+qrsfc3VQBY0LT4JNnAAIUbto7gD747gDN/I9zoKoF+/" + "zbc8/" + "XvRPRJCAaDMBqNmJqaQkNDg2RJRYqioNPpwDAMlzFfvnw5AHCJqMHBQXi93rAVAW" + "KJmNRWi4k+4wXfVCcVZO73+9HZ2YlAIIDVq1dzZE4qJxwOB2w2m6Bygq8TR/" + "NsUCgUnJ0mX2bhJ+xIfgAQ78QWTqaIVycmROzz+" + "eLy0s1GnBSkGwkOh4OLbMnML5/Pl/" + "bpEeHAMMCtd1nxcNfNwOd4xt++PBS9+wu8cvcFUCg+" + "AFAnOknmdAI7dvvw6OE9oNfsBtSeExtpNRQHrsUVzTfjruf1CHe+" + "8ru9FixYgIaGBkkf9YPBIDfHjkxoJtDpdILZZl6vV1AR4PF4oNFoBEQcSjButxud" + "nZ1QKpU47bTTEvIxjgZy8y4tLUVra6ukujD/" + "u6+" + "vr59hCMSvnOBPSCCWoiSidLvdUKmEJvF6vR4Mw6CnpwcOhwOLFi0SVGyEM3wX02F" + "HiFhsIi2aTkzand1uN44ePQqVSiWIiHNzcwXHKJNuhsHtdgvGr/N/" + "nFQamYsl3f5+Ny763x583HI5cNqxExssS7De/" + "BJeeq4OJSUs3nnHz1UJRIv0aBr4v2co3PriC7C33gacMSzc4fgF2Ehvx8MPVqG+" + "PrxuOzk5ie7u7qS6vSKBZVkMDQ2hv78fVVVVaGxsjEnmRDvk+6XyS7MIwRD/Aa/" + "XC7fbjZaWFsnL/" + "Xw+Hzo7O0HTNJYtW5awlBAJDocD7e3tnLF8PN99Tk4OSktLZ8wRI9+" + "TyWSCzWaDz+" + "eDwWDAvHnzODkhGlGKdWIjZvEFBQUIBAJxd9jxdeLS0lKMjY1hzZo13GdwOp3o6+" + "uD2+" + "3mSPvw4cNob29HbW2t6O8pGt566y1s2rQJNE3jiiuuwJYtWyRZNxKoGPWtWVGBzD" + "AMAoEAN2DRarVyj37hLu73338fp59+uqTHQKYx8KO1UPj9frzxxhCu/tmHsJ/" + "7QyDHcWLjkf/BlqWP4PabNaCo6ce9iYkJWK1WOBwO+Hy+GUmonJwc/" + "POfCly96330Nt4IlB8WvuHwCtR17ca+" + "G9fjnHPCd8y5XC50dXVBoVCgsbFRckKxWq3o7OxEYWEhamtrJZV1CJn39vYiPz8f" + "FEVx7lz8iDiazWM0EIOj4eFhLvqUEmQmHEmUSV2x4fV60dHRAYVCgfr6eq6EzW63" + "zzCJJ99XPITvcDjQ1taGoqIiVFVVcfXyfE4R02HHx4EDB7BmzZqw24hO/" + "OKLL+KNN96AxWLhTPCffvpp0ccdumZTUxP+3//7f6isrERrayuef/" + "55KeajRTzhTopINxgMoru7GxaLJeZE4FQhWqQ73VnVh589TuOxrl+BOX/" + "viY3BHOS98yie/8l3sHEjDYYJgmWnIwB+BBOahHr33THseorGkZKdwNlvCN/" + "QUQ7Dwfuw/" + "b8vwXceZKFUziRcvktX6KO+" + "FCBVA8FgUPLWXWC6TrOjowM6nQ5r164VJGT4kR7xUxDjLsYHKTErKSlJiZRAam6r" + "qqpiToZOZH1Sj8zXnXNzcyOaxFssFnR3dwuSXZFK/Wia5jT/" + "hQsXzrhZhBudlMjEjlCQm+kPfvADGI1G/Nd//Rc2btyI/" + "v7+2C+" + "OgAMHDqChoQF1dXUAgEsuuQRvvvlmyoZSAicJ6TIMA7VazVktzgbCtReTSKytrR8" + "PP1mGvxb+EFj73okdJuuwrP1lvPrEQpSXB8EwkZNkJAnlduvwyC/" + "0eKp3B9jTfyqo5UVAB8W/" + "b8AlCy7DpgcZzJs3Bpo2QKk8cdGQ6cRms1nUKPh4QeqfR0dHU5JoIjcLu90ecUpH" + "OFMbUiNrt9s5d7FwzQqBQABdXV0IBAIpKTGLVXObLIhUQQyaYkkIYk3itVotDAYD" + "KIrCyMgIKioqsHr16rDnTiJObARiS9jsdjs3lJIQZiIYHBzEggULuP9fWVmJ/" + "fv3J7yeGJwUpJuTk4Pq6mrR+0thZB4KpVIp0IonJibQ2dkJm60M1z4URH/" + "rBiBv9MQL2r+K/y37FXa+qINKRQOIfsf3+YCf/pzB9r/" + "8Cp619wDrpoQ7HL0MX9bdgwf3laGk5MRFYzKZuEYFpVIJm82G0tJSyRsE+NHb/" + "PnzJa8a4DdnJHKziGSTSIi4v78fU1NT8Pv9KCwsxNy5cxEIBCTrtiIlbMSLQeonC" + "5qmuSRlMlJFpJprp9OJzs5OeDweaLVaDA0NYXx8XCBNRDOJB6LrxOTJqKCgYEYJW" + "7iIOFu9dIGThHTTaWQebU1S0kMy6P39q3Dl04/" + "Bd84tgOKzR3xGAc279+HJ712Hr341CCC2mfjrrytwwy//" + "iNHlW4ANXcId+s7CYvOD2HfrcqxZQ2QEoT8Aaa31+" + "XwoKiqC3W7HgQMHuI4xfqNCIiCfWafTpSR6s9vtXHutlKY6SqWSe9weGRlBeXk5q" + "qqqOFMbMiATwAztMx4inpycRGdnJ8rKytDa2ir50xgpkYsWfSYD4rJWU1ODefPmc" + "evzTeJHR0dFm8TzQVEURkdHYTQaUV9fj7lz54qKiC0WiyTVCxUVFRgYGOD+" + "v9ls5lreU4WTgnTjRSpIl6ZpWCwWTExMoKGhGTsfUuPR/" + "u8C57x2YifnXFQdfA6v71mHpqZgVLIFgIMHFbhmx1F8Un7TTDPxyTqUHNmJ3d//" + "L1x4IQOKmqnb+v1+" + "9Pb2wuFwzKjiiNS6q9frORKO5SFLEpculwtNTU2St2UmakwTz/" + "pdXV3w+" + "XwC3Vmj0QhkC37X2NDQEJxOJxiG4YzPI7XvkprbYDCYVANFJJCqCoZhUlIi5/" + "P50N7eDoVCEfZmGo9JPL/Nmdy0fD4f2traoFarBTfTaI0dXq8Xe/" + "bswcDAQNwDPcOhtbUVXV1dnLnSCy+" + "8gOeeey7pdaPhpCHdVHjqigGZlzY0NASdToeamtW44Mpe7K+" + "5EFjUfmLHgfX4svs5/OrFEuTlARQV+e5vMlH4yb3D+KP3LmD9s8KN3gLk/" + "PsObNl4Ja59XQmtdibZ8o1dampq0NzcPIPcIz1GhnrIksQKPyJWKBTc+" + "qlIXPJ151S0BpNEk9j1I3WN8ZNQfAe2/" + "Px8+Hy+z27ADVErWhI9flLT29DQIHlVBb/" + "EL971I5nEE78GctMi9fJlZWXcE1k0KBQKHDlyBJs2bcJXvvIVGI1GSZ54VCoV9u3" + "bhy9+8YugaRrf+973sHjx4qTXjYaTomQMmI4qxJJuW1sbysrKkqrnJBduf38/" + "KisrUVhYiD//eQybf9mB8TP/" + "B8g5YQROHbga2zdsx9VXKaBQRL64p6aAex904xdtu8CseVjQoTZtSnMVLqu6Bdtu" + "KUC464BMuujp6cHcuXNRXV2dtB5JiNhut3M6scfjgU6nQ3l5+We+" + "vAbJ6nr5xjS1tbWSm1TbbDZ0dHSgqKgIdXV1khvfjI2Nobu7mxuJxPdRSFbGAaar" + "Ntrb25Gfn4/" + "6+npJ66mB6Rr3trY26PV6NDQ0SL6+x+NBW1sbtFot5s+fz3Wo2e32GSbxpD7d5/" + "PhgQcewNtvv43HH38cy5Ytk/SYUoSIF/" + "pJQ7qBQED09AYxNbWRQIitq6sLc+bMQV1dHdRqNZ540odrXt8J5owdvIPSoeCdn+" + "OVOy/G6adH/" + "ip9PuCxx1nc+9ZT8KzZCujHhTu0fxVn+" + "3bgodtr0NISfh2S6NBoNGhoaJD8UZN0eykUCjQ0NIBhGI6IHQ4HaJqeIU3Ec8Hyj" + "WmampokrxrgSxUtLS2Sl7CRmluHwyFwSePLOOS7iteBDThRpjU5OYmWlhbJpRzS3" + "myxWNDc3Cx5txe/jC2cqTvZh+jpDocD+/fvx44dO+D3+9HU1IQf/" + "vCH2LBhg6AjL4Mhky4fJpMJarU6bsGcJHRycnK4RoJAALjuFjuemPofoPFPJ3aeq" + "sWytlfw+mMtiPT0xLLAK68o8JMn/" + "4CxZbcCJZ3CHQZXo677QTxywzqce274z8bXVRsbGyV3XiI+DJOTk1HN3fmP2+" + "Si4euekRJQqfYy4D+K19bWoqysTHKpgl9zO3/+/" + "Jjrh5KL3W4P68BGNEuSiCsvL8eCBQskT8Tx/" + "Rhqa2slX59Ez3l5eWhoaBD1dOHz+bBz507861//wtatW+H1evHRRx/" + "hjDPOwHnnnSfp8aUIJz/" + "pBoNB0W24ZrMZNE2LLjMjM7p8Ph+am5u5KGN8HPjqDzrxYcMFwByeO1jX+" + "bi84Gk8tD0fkZ4k//" + "UvBa7bdQjtVVuAqveEG63VKPzwXuy87EJc+" + "i0W4a4BPlnV1tamRPckJVoLFixARUVF3OvHImKiHc6bNw/" + "V1dUpIZOOjg4UFBSgrq4uJY/" + "iHR0d0Gg0aGxsTCoxy29+Id+V1+vlBjVWV1ejpKREEgc2An6ZWSoSlSzLor+/" + "H8PDw2hpaREdPX/44Ye47rrrcPHFF+PGG2+U/" + "HdLE2TS5WNkZAQulwv19fVR9+NPlWhsbBS0FX/yCYUvbf4Dxs78jkC/" + "Vby3BZtXfBNf+bKN0ztJ1EJRFI4fp3DDdhPeUd8OLHpN+IbeAuTsvw03nvO/" + "uP5qFcIlu1mWxdjYGHp7e1FWVoaqqqqU6J5kdhiRT6QCmYxLknTkguKXY8VbkhWK" + "QCCA7u5uuN1uNDc3S04mDMNws9tSUXNLbngmk4kb90MqApJ1YCMg0XNFRQUqKysl" + "LzNzOp1ci7BYbd7r9WLHjh344IMP8Pjjj6c8oZViyKTLBxmH3dLSEnY76bk3m82o" + "qqpCRUWFIAp74w0K3/7VTgTOvOvEi/x6FL/zFH6788tYseL/t3fmUVGc6Rp/" + "mk2WhkYUCRENsnQDIioN0blxyXVuYhZv5mqMZpwEozKek7iQmDhuGddcNWrconFk" + "MOaMmRgzOUn0aHTiaIzGURYRFYUGBJR9EXqh6bW67h/" + "cr6hGWnupYq3fOflDNFVfd9Nvvd/7ve/z0Iz6k1qthkqlQmUlkPG1BOeo/" + "UBiBuDGWivlCVHOO0h5aiXWrwiArVIzux82MjKSk5YZNsQnjtTQuA5WpC5JHmKkV" + "MFuySJZHgCr0gSxiX8U7FP3jj2lXEGC1RNPPIHhw4dznp1rtVoUFhbCz88PkZGRn" + "T7w2ApsGo3GLgU2gslkQlFREYxGI2JjYzmv/" + "ZMhkIaGBodqz9nZ2Vi2bBlmz56NZcuW9dbslk3fD7rEtM8eiB5pfHy81c9JfY6c/" + "oeHh1t9+DQNbNpqwObbfwTiv2n/H5tHYGzhd/" + "juL9KHAmZzM7D5Ex0O5u8GlbwL8NJa/4Nbr+M/" + "9Cux5U8hGD3ap9MvmcFgQElJCfR6PaRSKefCKBRFMYcokZGRNoWCnIVd9ySZlT3+" + "XezAQgIxu/He39+fuQ4Zfw0ICODlVJ/" + "dcyuTyTjvuWVnz84cZLEV2DQaDaPAxn6vWlpaUFZWxkttG2gXwBk8eDDCw8PteiD" + "pdDps3rwZ2dnZOHjwIGJjYzldUzciBF02RFlrzJgxzM+USiVjiNjZ6b9eD8xdXI/" + "jPjOAoTntf1H2n3jT+yt8+nGAVf22tRX49DMK238+BF3y/" + "z7ckVD2LOJrtmDrUhliYpqYLI/" + "dBSAWi6FUKtHQ0ICIiIiHNFZdhV2q4CtzYwvTREVFuVT3JP2e5L0iSllkcikiIgI" + "hISGcjx+zdW657rkF2tvkSLmIq/" + "UTVbGmpibU1NQwv1sSiYQJxh11ap3BYrGgtLSUEcCxd4eUmZmJDz74AHPmzEFaWl" + "pfyG7Z9P2gS+Qd7cFgMODWrVtISkpiWqFIq1JnWWRDA42XF+TjZvz/" + "AAFVzM9F2e9g5/PbsDC1/f01mYDDX4iw/" + "ruvoUpcDwR2UECqG4WhBVuwfeFv8corFnSMoWSrXVlZibq6Onh4eFhlLB0zPGchw" + "dDb2xtRUVGclyrsEaZxBXbdc8iQIUzdk0xAdSxNOPN+sXVu+TiII+" + "I6er0eMTExnLfJkQdGZWUlY5jJVmDTaDTQarXM8Ie9o7tsVCoVCgsLHXpg6HQ6fP" + "TRR8jNzUV6ejpkMpmrL7UnIgRdNhRF4erVqwgKCoJSqYRUKrVybSXQNI2iIhpTF5" + "9D7cTX20sDFnf4/" + "rIX366Yz+jUUlSbAeSaL0+iPn4tEFxgfTHlU5Bc24CNr72Gt+YCtr6/" + "KpWKsRaKjIyEl5eX1VabfFmIQhQJLPZ+" + "UUwmE9NPymcwJMI0oaGhvGxjFQoFxGJxp3VPtpANyYgdeb9s9dxyBU3TqKurQ1lZ" + "GW+1Z61Wi4KCAvj7+z+2TYutwEYeXI+zi6coitECjo2Ntbvv+cqVK1i+" + "fDnefPNNLF26lPND4B5E3w+6NE3DaDQ+9t+" + "RQn9xcTFGjhzZaV8lEWLOzASmrTsC7bPvtB986SUY+" + "u9jOL1vEiIjaVgsbYI0qz8/j0rpWuDJa9Y31A6Gd/" + "ZqfPBsKtIWucNWMuPoIRZFUUxQUavVjGYse1yXrfrEHq3l64vOFqbhuusBcE3025" + "5A7Ovri8bGRod6bh2FSDuSXm+u3yN2bTgmJsbphyr7/" + "SKBGADTWdLY2IiwsDBGvPxxtLa2YuPGjbh58ybS09MhlUqdWlcvQgi6NE2jtrYWp" + "aWlCA0NRU1NDZ555plO/" + "x1FUfjpJxFmf7YNpgkb2v+yORxyxQkcz4iERAKcOOGGNYcuoTx8PTC8g9uuwR/" + "u2e/" + "h7YQ0rHjPG7YmjtsEztu+" + "JK4eYplMJqtA3NraCi8vL3h6ekKtVmPw4ME2T8RdgT3txUeLFvnsysvLOQ2G7Ayv" + "ubkZTU1NcHNzQ3BwMAYOHMhZzROwnvjio80MaN/" + "qkxFwruvzRABHq9VCLBZDp2vz4HuUAhtN00x2O2/" + "ePCxatKgvZ7ds+nfQJW0+AQEBzGFOR8setr35D8dFmPvVKlie/" + "rT9ItWJmK47jozdQTh1yg1rv7iE8qc2AU9dsr6ZyRuinHfwRvgHWLc8EKGhnb+" + "F7EBi74m+" + "o5CsymQyQSKRoLW1FXq9nhGk7jj55Ch8C9MA7bVnX19fREVF8ZoZkpo+" + "OyNmu06wSxOOvE6i9+DIqb4jUBSFkpISaDQah7b6jkD0oTs+9Dq2+" + "xEFtvz8fFRUVODevXuora3F559/" + "jqioKM7X1YPp+0EXaHsSsyF6BCKRCFKp1OqX8cqVKxg3bhwjaE5GiH847oaUY++" + "Blqe3X6jkebwz+GuMkvngo2/" + "OoipiCzDsivXNKU8gNxXTB63Epj8FY8QI22+" + "dUqlEcXExI1rCxza8vLz8oX5YoN19lfQPkxFUR7V1m5ubUVxcjKCgIF6EaYhzsEq" + "lspoC5BJ7e27Zh09kB8Eu5RDH3Y6BmNhIabVaXvQegLZgWFxcjLCwMKemBh8HOew" + "zGAx29/VSFIVvv/0WGRkZjBGsXq/" + "H4cOHMXr0aE7X15Fdu3YhIyMDIpEIo0aNwuHDhznvRbaT/" + "hF0idKYwWBgan8ymazTrVxWVhYSEhKYYCESiXDhghte2b8KlnEsD7Pbr+" + "HJ7ENoHf49lHGfAE/ctL4Q5QHkvYWX/" + "Vdh0wehkMlsv2VknJh0SnD9JWRnz+RLaE9WRbQASBAmik+" + "kvYgtYMO3MA37kMnZ8ePHYTAYGP82Z3tuHxeITSYTUz/" + "n4zCR9A1TFAWZTMZLYCGKaY6cAbS0tGDdunUoKipCeno6M/" + "VJ2jn5bAurqqrChAkTcOfOHfj4+GDWrFl46aWX8NZbb/" + "F2z0fQt40pCWTiqba2FhEREYiNjbV5SObj44ObN28iMDAQEokELS2BmLXtb7BMYQ" + "Xc0t8C9SNRPSPWqlUMAGD2AvLewov+f8LGtU8iLo6GrWcUO/" + "OMiorqtFPCVcjorr+/" + "v8PuCiKRCL6+" + "bW4THbV12Xqxer0eFEUxmSHXbWZkGosvBwq2jq6rPbed6caaTCZGEJ6MOBP9WHZf" + "rCsBmP1gJX3JXGM0GqFQKEDTNBITE+36nGmaxqVLl7By5UosXLgQ+/" + "fvt3rgd1UPrtlshk6ng6enJ1pbW/" + "Hkk092yX0doU9lullZWZBIJDa3iuSQjLxm9jZ76YcWXBrzDOCpf/RNjL4Q5f4R/" + "z34Xax7L8Sm1CK5H2mfciTzdAQyrWYwGHgZ3QXa7WCGDBmCoKAgtLS0QKVSWZ1oB" + "wQEQCKRONTjSSDCK83NzZDJZJy3sQHtnRWBgYGc6+" + "gCbZ91RUUFqqurmZ5YAFa25yQj9vT0tCrl2BrZ7QjfnQ9Amw1OaWmpQwFdo9Fg7d" + "q1KC0txV//+leEh4dzvi572bNnD9asWQMfHx88//zz+Pvf/95dS+lf5YWOsA/" + "JgHazOzaDX86A7tk02xfXPAGP6+" + "9gTvQfsWKpBOHhj35rSM0zMDAQI0aM4OUAiKiM8TGtBlhr6Eql0k63sJ21YrEPni" + "QSic3sjj0eHBYWxovwCrvnNiYmhpeHEpFGtLe+" + "3VkgJtoJpJTDDsTsgG5Li9ZVSGeCu7s7ZDKZXb+vNE3jl19+wapVq/" + "D2229j4cKF3ebGDbR951599VUcO3YMgYGBeO211zBz5ky88cYb3bGc/" + "lFe6GjZY0+" + "wJYQMeArlnf3FvYkIvJuKNxKn4L9X1MHD4w4aGtxhNEqYoMJWedLpdCgqatPFjY+" + "P56XmSVS6iNEh11mbLWGaziDmjmytALPZzAQUovXLzu6I42tRUREGDBjAWymBrXP" + "LtdU8YB3Q4+" + "Li7A7oXl5eGDRokFWZiZg8qtVq1NTUMCI23t7eUCqVGDhwIJKSkjjfprPLFY5Y82" + "g0Gnz44Ye4f/8+Tpw44ZAbN1/861//wogRI5jXMGPGDPz73//" + "urqBrkz6V6RKlMUeCLeGXX0R49eMM6MK/B/SBGFD3DKaEvoLUmcPwX/9lsZogI/" + "2w5OCJfEEsFguMRiOio6N5mdHn2x3CGWEaeyFBRalUoq6uDnq9HmKxGIMGDWKCMV" + "evp7W11WobznVAB9odcvnqGrBYLCguLkZjYyOCgoJgMBig0+" + "k4kXUk6PV6FBQUOFSuoGkaFy5cwOrVq7F48WIsWLCgW7NbNpmZmZg/" + "fz6ys7Ph4+ODt956C0lJSViyZEl3LKd/" + "lBdMJhPMZjMjgGJPsGWjVAL5+W7w96cRF0fbFCBnw/" + "ZKCwoKgru7O9RqNeOsy9bUdTYj5VvHAGgP6ESLgY/" + "MkwQqEtDZ2Z1arYbBYICPj49VvdORdfCtcwu0bcMVCgUAQCaTcX6YCLSLL3WmZ8C" + "WDFWr1Vb6uh21m23RmSaDPajVanz44YeoqqrCwYMHMXz4cJdfK9esW7cOx44dg4e" + "HB8aOHYuMjAxePiM76B9Bd/ny5RCLxUhKSoJcLoe/vz/" + "nGQibpqYmq15VaxnI9tN/" + "lUoFjUYDmqYdOnRiK1zxpWPAHq3lK6AThwVPT09ER0fb/" + "BKwbWzIfx1t4W2ZYPKtc8v2+OLDVgiw7uuNjY21uzTF1td9XCDW6XS4c+" + "eOQ9Y5NE3j/" + "PnzWLNmDdLS0jBv3rwek932YPpH0FUoFLh69SoyMzORm5sLo9GI+" + "Ph4yOVyJCcnY+" + "TIkZwcaBFpSDc3N8YrzR6IcA0pS5BDJxKE2SfZjwroXMDurOBLZ4CMODc2NjqdeX" + "Z0I1ar1VaWPz4+" + "PqitrWX6VbnWuQXaXRAkEgkiIyN5GWMlPbFcfBbsARj2LoKmaZhMJuYBbk8GqFKp" + "sHr1atTX1+Mvf/kLhg0b5vS6+hn9I+h2RK/" + "XIy8vD1evXkV2djZu374NX19fyOVyJCUlISkpyaEZdbLNV6lUiI6O5mT7ytZLUKl" + "U0Gq1MJvN8PDwwFNPPcXIFnIJ38I0QHvNkw8zRTJ6eu/" + "ePTQ2NsLLywseHh5Wo7rOyjmyYXuIOSqwYy/" + "snli+yhVarZbJbgcOHMiM7RoMBpsj4TRN4+" + "zZs1i7di2WLVuGlJQUIbt1jP4ZdDtC0zSampqQnZ3NBGLSQ5ucnMwE44EDB1plGm" + "yNAb62+eyskPiescd0yRabCFA7k/" + "nyLUwDtHVvKBQKuLu7QyqV8hJEOuu5JQLn7F0E0Yl1RjOBjNc++" + "eSTGDZsGOefN3unwZc4OltkpzPFsc7MMK9fv45jx44xWXF6erqV2L+" + "A3QhB1xbk8CUzMxOZmZnIyclhhEPkcjkze75s2TKEh4fz0lT/" + "OOEbmqbR2tpqNaZrsVjg7+/" + "PlCUeldmxJ7H4smqhKIrxxnpcm5mzONpzS1TEyPvGHtXtWM4hdMV4rU6nQ0FBAeO" + "mwcdOg1jnOGKrTtM0zpzsS2cwAAAS7UlEQVQ5g48//" + "hjjxo2Dr68vcnNzMWPGDLz99tucr7EzlEolUlNTkZ+fD5FIhM8//xy/" + "+c1vuuTeHCMEXUcwmUw4ceIE1q1bB4qiIJFIYLFYkJiYiMTERCQlJSE6OtrlAKxW" + "q1FUVGQlWG4vbGFzMh3Gnv2XSCTw8fFhxHX4EqYB2ifW+" + "DzEYvfculLz7FjOYZs6ms1mNDU1ISoqipfxWrYluS1NEFexWCxMj3VsbKzdJZHm5" + "masXLkSarUaBw4c6Lbx2blz52LixIlITU2F0WhEa2urw35xPQQh6DrK8ePHERISg" + "vHjx4OmaWg0GuTk5CAzMxNZWVnMWCy7PmxvBmk0GhktAy6NJslQgkqlQnNzM1QqF" + "UQiEUJCQjB48GCXZBw7gwyCEBU3PrLCrui5bW5uRmFhIdzc3ODh4QGj0WhV65RIJ" + "C7fl1j/" + "OGJJ7ihqtRoFBQUO6enSNI3Tp09jw4YNWLFiBebMmdNttVuVSoUxY8agtLSU166j" + "LkIIulxD7L5JWSIrKwuNjY2Ijo5mWtYSExMfcm8gmQ5f+" + "rPs8eDIyEgEBAQw22uVSsXIOLL7hx2tDxP3jbq6Oof6PB29hyvuuPbeg2SFbM2Hj" + "rXOjvKXpK5uT1mATPc1NzfzdhjHPvCLi4uzW72uqakJK1asgE6nw/" + "79+xmxo+4iLy8PCxcuRFxcHG7cuAG5XI49e/" + "bwIonZBQhBtyugKAoFBQXIzMxEdnY2cnNzQVEUEhIS4O/" + "vj5ycHBw4cIAXwRWgfZsfEhJiM9Mh9WF2/" + "zBFUVb9w4+qD5MDpkfdw1X47rll38Pe7gr2+" + "9aZczMJxOzPtbm5GQqFAqGhoXbb2jiKUqlEYWGhQwd+" + "NE3j1KlT2LRpE1avXo3XX3+9R2SWOTk5GD9+" + "PC5fvoxx48YhLS0NAQEB2LRpU3cvzRmEoNsd0DSNgoICpj41YsQIKBQKSCQSpnc4" + "KSnJZfUx0jHwKGGaR0FasEhGTIwv2QdObm5uKC4uBk3TkEqlvPTDGgwGq0MsPu5h" + "MplQVFQEo9GImJgYl+5hsViseojJAIyvry/" + "0ej1omsbIkSN5ydSIW0RLS4tDgxQPHjzA8uXLYTabsX//" + "fl5q185SW1uL8ePHo7y8HABw6dIlbN26FadOnerehTmHEHS7i9LSUtTW1jLWQESw" + "hl2WqKqqQnh4OFMbTkxMhEQieWz2wW4z47pjgF0frq2tRWtrK/z8/" + "JjaMJdaCexpr8jISLtFVxy9B1uHlo/" + "SDtAWOEpKSphyiKNOxPZAsnRHdB9omsaJEyewefNmrFmzBrNnz+" + "4R2W1HJk6ciIyMDMhkMqxfvx5arRbbt2/" + "v7mU5gxB0ezIWiwUlJSVMEL527RpaW1sxcuRIJhDHx8czh2AWiwX19fUoKyvjzV8" + "NaP9yDxkyBOHh4Q8J/RgMBqfqnGz41rkF2g/" + "j+GzRItKIbm5ukMlkVgdvjjo328JsNqOoqMgh6xygrez0/" + "vvvQyQSYd++fbz0BHNFXl4eszOMiIjA4cOHeeny6AKEoNvbMBqNyMvLYwJxfn4+" + "vL29ER4ejoKCAixYsAB/+MMfeOkYYFvyPGqb35nND0VREIvFVjY/" + "nT0QiM5AS0sLbzq35MCvvr6et8M4cqB6//" + "59h6QRbTk3swMxW0GssbERxcXFDg3n0DSNH374AVu3bsWf//" + "xnvPbaaz0yu+" + "2jCEG3t0NRFNLS0nDhwgVMnjwZFRUVjARjYmIiM1HnioW7xWJBRUUFampqnN7mkz" + "qnSqVi+odFIpFVMNFoNCgvL+dtug9oV+" + "riy44caMugCwoK4Ofnh6ioKJf1MYxGo9UDTK/" + "Xw8vLC0ajEe7u7g713dbX1+P999+Hp6cnPv30U15KNgKPRAi6fYGff/" + "4ZkydPZgIICZJXr15FVlYWsrOzoVQqIZPJmIO60aNH22UH09zcjKKiIsYmnMttPt" + "leNzY2orq6GjRNw8/Pj/" + "Gn47I+" + "bDKZmFHnmJgYzkXkAevxWr4yaKDNOqekpIRxBbHHuZmmaXz33XfYtm0b1q9fjxkz" + "ZgjZbfcgBN3+" + "gtlsxu3btxltiby8PIhEIowZM4YZ5JDJZExQbW1tRWlpKUwmE2QyGW9BqmPPLTur" + "U6lUjJYuu3/Ykdore2rNEfdaRyHWPI6M1zqK0WhEYWEhRCLRQ/" + "VhW87N58+fh1arxY0bNxAcHIzPPvuMF/lJAbsRgm5/haZptLS04Nq1a0z/" + "cFFREQYOHAixWIzq6mocOnQIMpmMlyBlb88tGUggZQl2fZjdP9xZBk4MG728vHib" + "WmMPIMTGxvJSg3bWOoeiKBw8eBDff/" + "89JBIJlEoljEYjvvnmG0RERHC+" + "zketg7RAnjx5ssvu20MRgq5AO3fu3MGbb76J6OhoDB8+" + "HLm5uaitrUVUVBRTlhg7dizEYrHTgZiLnlt2fZj0wYpEIkboRywW48GDB6irq+" + "PNsBFof3CQThE+Hk56vR6FhYXw9PSEVCq1O8uvra3FsmXL4O/vj927d1u5ELu7u/" + "PSDWKLnTt3IicnB2q1Wgi6QtAVYNPY2AilUomoqCjmZ8QoktSHr1+/" + "DqPRiFGjRjGBOC4u7rHBgK1o5ki2Zi/" + "Efbiurg41NTUQiUTw9fVFYGBgp6f+" + "rsDlIIUt2N0PUqnU7pFqi8WCb775Brt27cJHH32EV155pVtrt5WVlZg7dy7WrFmD" + "nTt3CkFXCLqdc+bMGaSlpYGiKKSmpmLlypXdvaQehV6vx/" + "Xr161E4MVisZXID7tk0NTUhLt37/" + "Lac0vkHUmrmZ+fH+" + "O1RjJivV4Pb29vSCQSpkbsbH2YLylMoF3i0dfX16Huh9raWqSlpSEoKAi7du3iLc" + "N3hJkzZ2LVqlXQaDTYsWOHEHSFoPswFEVBKpXi7NmzjIj50aNHERcX191L67HQNI" + "0HDx5YicDfv38foaGhMJlMkEgk2LFjBy/WP0BbG9Tdu3cfK+/" + "IFqwhgdhsNlsZhXbUSSCQbb6HhwekUikv9WH2BJ4jEo8WiwVff/" + "019u7di82bN+Pll1/uEZ0JJ0+exI8//ojPPvsMFy5cEIJuG0LQ7ciVK1ewfv16/" + "POf/" + "wQAbNmyBQCwatWq7lxWr+" + "PMmTN47733MGnSJAwYMADXrl1DS0sL4uLimIw4ISHBpZYwvV5v5UbhTCAkXmvs/" + "mFiFEoCsVKpRGVlpUPbfEfRarUoKChAQECAQ35rNTU1SEtLQ3BwMHbu3NmjprRWr" + "VqFI0eOwMPDg3nYzZgxA19++WV3L607EYJuR7799lucOXMGGRkZAIAjR44gMzMT+" + "/bt6+aV9S6KioowaNAgqyBlNBpx69YtRl/" + "i1q1b8PT0xNixY5n6cFRUlF3KXhUVFaiuruZFQpLUhxsaGqz6h9llCa7qwzRNM3K" + "YnVnn2MJiseCrr77Cvn37sGXLFrz00ks9Iru1hZDpMtj8kLi1mO2nzJ8/" + "HydPnsSQIUOQn5/f3cvpUqRS6UM/8/" + "Lyglwuh1wuxzvvvAOapqFWqxkR+PXr1+Pu3bsICQmxqg+" + "zRWhUKhXT2pacnMxLfVgkEqG5uRlNTU0YM2YMJBKJlb5ETU0NdDodI2hOArGjmTZ" + "xEyavxd7e3urqaixduhShoaG4ePFib3VQEOhAv810uSwvXLx4EWKxGCkpKf0u6Do" + "LTdOoqqpCZmYmUx9+" + "8OABIiIioNPpIBaLsXPnTmYai2tUKhUKCwsfOyZM7MzZgxwmk8mqPhwQENDpQ4EM" + "hTQ2Njo0wmuxWPDll1/" + "iwIED+PjjjzF16tQend0KdIpQXuiI2WyGVCrFuXPnMHToUCQnJ+" + "Orr77CyJEjnbpeeXk5pk2bJgRdFzh//" + "jwWLVqEpKQkeHt7Iy8vDzRNIyEhgcmGY2JiXNI4IDq0xHzUGa1bUh9mC8GT+" + "jDJiC0WCxQKBYKDgx3SfqisrMTSpUsxbNgw7Nixw+" + "4yhECPQygvdMTDwwP79u3D1KlTQVEU5s+" + "f73TAFeCGIUOG4Ny5c4wpInFruHbtGrKysrB9+3YoFAoMHDiQKV8kJyfbrSlLXC/" + "CwsIglUqdzh5FIhHEYjHEYjGzVmIBr1QqkZ+" + "fD51OB19fXxiNRtTX13fqPMzGYrHgb3/7Gw4ePIjt27fjueeeE7LbPkq/" + "zXS5hotMt6KiAikpKairq4NIJMLChQuRlpbG4Sp7PzRNo6GhwUoEvrq6GiNGjLAS" + "gQ8ICGCClsFgQHFxMcxmM2JiYniRwwTarXOIPQ8Rgmc7Dw8YMIApS/" + "j6+" + "sLPzw8VFRVYsmQJIiIisG3bNgQEBPCyPoEuRSgv8A0XQbempgY1NTVITEyERqOBX" + "C7HDz/" + "8IPQOPwYiAk+m6a5duwa9Xo+4uDh4e3tDoVDg8OHDvPUPO2Kdw+" + "4f3rt3L86dO4eWlha8+uqrmDNnDp5++mleJt86Q3jI84pQXugNhIaGMo6s/" + "v7+" + "iI2NRVVVlRB0HwPxhpNKpUhJSQEAlJWVISUlBRRFYcSIEZg1axa8vb2RmJjIZMRc" + "qISxdRnsKVl4e3vD29sber0e9+7dw4svvojU1FTcvn0b//" + "jHPzBo0CDEx8e7tCZ78fDwwCeffGL1kH/" + "uueeE3zeeETJdDvj973+" + "PCxcuoLGxESEhIdiwYQMWLFjg0jXLy8sxadIk5OfnC9tNJ7h//" + "z5KSkowZcoUAG1lCaVSiaysLEZtjdgdkSAsl8sxaNAgu7Jhs9mM4uJi6HQ6xMbG2" + "p2dWiwWHDp0CIcPH8Ynn3yCKVOm9Jja7e9+" + "9zssXrwYzz33XHcvpS8glBd6Ey0tLZg8eTLWrFmDGTNmOHUNvV6PSZMmwWAwwGw2" + "Y+bMmdiwYQPHK+" + "3dEDFytgi8SqVCTEzMQyLwbJyxzgHaHqSLFy9GXFwctm7dyos8pLMID3nOEYJub8" + "FkMmHatGmYOnUqli1b5vR1SFuTWCyGyWTChAkTsGfPHowfP57D1fY9TCbTQyLwbm" + "5uGDt2LGJiYnD27FmkpKRg6tSpdh/" + "IURSFQ4cO4YsvvsDu3bsxefLkHpPdAtw85AUeQgi6vQGapjF37lwEBQVh9+" + "7dnF23tbUVEyZMwIEDBzBu3DjOrtsfICLwe/" + "fuxb59+" + "5CQkICqqioMGTKEmaZLTk62qURWVlaGJUuWYNSoUdi8ebNTfcF8wtVDXuAhhIO03" + "sDly5dx5MgRjBo1CmPGjAEAbN68GS+" + "99JJT16MoCnK5HCUlJVi0aJEQcJ2A9OS6ubnh5s2bCA4OBk3TqKmpQVZWFq5evYr" + "09HTU19czIvBJSUkYPXo0jh49iiNHjmDPnj2YOHFij8pugbYHyoIFCxAbGysE3C5" + "EyHT7AUqlEtOnT8enn37q9Mm4YMXyaCiKgkKhYPqHz5w5g6effhpffPEFL75zXPD" + "rr79i4sSJGDVqFNPF4cpDXsAKobzQ39m4cSN8fX3xwQcfOPX/C1YsjkHTdI/" + "LbAW6FJsfPvdWpgI9goaGBiiVSgBtDgVnz55FTEyMU9eqrKzEqVOnkJqayuUS+" + "zRCwBWwhVDT7aPU1NRg7ty5oCgKFosFs2bNwrRp05y61rvvvott27ZBo9FwvEoBg" + "f6HEHT7KAkJCbh+/" + "brL1yE6wXK5HBcuXHD5euHh4YxVjoeHB3Jycly+poBAb0IIugKP5PLlyzhx4gR+/" + "PFHRjfgjTfecMmK5eeff8bgwYM5XKWAQO9BqOkKPJItW7agsrIS5eXl+" + "PrrrzFlypT+7n3V7Zw5cwYymQxRUVHYunVrdy9HwEGEoCvQpYhEIjz//" + "POQy+VIT0/" + "v7uX0OiiKwqJFi3D69GncuXMHR48exZ07d7p7WQIOIARdAbt59tlnXW4X+/" + "XXX5Gbm4vTp09j//" + "79uHjxotPXUiqVmDlzJmJiYhAbG4srV664tLbeQFZWFqKiohAREQEvLy+8/" + "vrrOH78eHcvS8ABhKAr0KUMHToUQJtLxPTp05GVleX0tdLS0vDCCy+" + "gsLAQN27cQGxsLFfL7LFUVVVh2LBhzJ/" + "DwsJQVVXVjSsScBQh6Ap0GVqtlmk702q1+" + "Omnn5yekFOpVLh48SIjoenl5SW45Qr0CoTuBYEuo66uDtOnTwfQpkc7Z84cvPDCC" + "05dq6ysDMHBwZg3bx5u3LgBuVyOPXv29DhBGa4ZOnQoKioqmD9XVlYyuweB3oEwB" + "izQK8nJycH48eNx+" + "fJljBs3DmlpaQgICMCmTZucup5CocDs2bOZP5eWlmLjxo149913uVoyJ3DtYi3AG" + "4LKmEDfIiwsDGFhYYxy2syZM11qn5LJZMjLywPQ1iEwdOhQJivvSQgu1r2fx2W6A" + "gI9FpFIdAlAKk3TCpFItB6AH03Tyzm47vMA1tE0/" + "Yyr1xIQ6IiQ6Qr0ZpYA+LtIJPICUApgHkfXfR3AUY6uJSBghZDpCgiw+" + "P8AXg1gJE3Tdd29HoG+h9AyJiBgzYsAcoWAK8AXQtAVELDm9xBKCwI8IpQXBAT+" + "H5FI5AfgPoAImqZV3b0egb6JEHQFBAQEupD/Azu6W6/" + "Dywa6AAAAAElFTkSuQmCC", + "text/plain" : ["
"] + }, + "metadata" : {"needs_background" : "light"}, + "output_type" : "display_data" + } ], + "source" : [ + "def evalAndPlot(variableBezier, res):\n", + " fitBezier = variableBezier.evaluate(res.reshape((-1, 1)))\n", + " # plot reference curve in blue, fitted curve in green\n", + " fig = plt.figure()\n", + " ax = fig.add_subplot(111, projection=\"3d\")\n", + " plotBezier(ref, ax=ax, linewidth=4.0) # thicker line to " + "visualize overlap\n", + " plotBezier(fitBezier, ax=ax, color=\"g\", linewidth=3.0)\n", + " plt.show()\n", " return fitBezier\n", "\n", "\n", + "fitBezier = evalAndPlot(variableBezier, res)" + ] + }, + { + "cell_type" : "markdown", + "metadata" : {}, + "source" : [ + "### initial and terminal constraints\n", + "Let's try to fit the reference curve with a curve of lesser degree" + ] + }, + { + "cell_type" : "code", + "execution_count" : 41, + "metadata" : {}, + "outputs" : [ { + "data" : { + "image/png" : + "iVBORw0KGgoAAAANSUhEUgAAAV0AAADnCAYAAAC9roUQAAAABHNCSVQICAgIfAhk" + "iAAAAAlwSFlzAAALEgAACxIB0t1+/" + "AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6L" + "y9tYXRwbG90bGliLm9yZy+" + "AADFEAAAgAElEQVR4nOx9d3gc5bn92a6VVtXq1dKqWJYxcsdATAnt5obkUgMXLuF" + "SnAsJOBB6sTGmOAQIDtwQCARwaOEm/IAQUoDgQOKAjSEUg62t6tJKq+19Z+b3h/" + "yNZ7Zpy+xqV8x5Hj3g1eib2d2ZM++" + "873vOK2EYBiJEiBAhIjeQzvcBiBAhQsRXCSLpihAhQkQOIZKuCBEiROQQIumKECF" + "CRA4hkq4IESJE5BDyOX4vtjaIECFCROqQxPuFGOmKECFCRA4hkq4IESJE5BAi6Yo" + "QIUJEDiGSrggRIkTkECLpihAhQkQOIZKuCBEiROQQIumKECFCRA4hkq4IESJE5BA" + "i6YoQIUJEDiGSrggRIkTkECLpihAhQkQOIZKuCBEiROQQIumKECFCRA4xl8uYCBF" + "xwTAMaJpGIBBAOByGXC6HVCqFTCaDVCqFVCqFRBLXbEmEiK8kJHMMphStHUVEgWE" + "YUBSFcDjM+3/yOy7REhImPyIZi/" + "iKIO4JLpKuiKQRSbYSiQQSiQThcBjhcBhSqTRqe+6PSMYivkIQSVdE+" + "mAYBuFwGBRF8ciWYRhMTU3BZDIhHA6juLgYJSUl7I9arY5JouScI2TMhVQqBUVRU" + "CqVUCqVIhmLKFSIpCsidRCyJakDQrY0TWNiYgKDg4MoKytDa2srpFIpAoEAPB4P+" + "+Pz+SCRSFBcXMwjZLVaHRUVk/" + "0BgF6vR0VFBSorK1mylUgkkMlkbN6YRMoiGYvIU8Q9McVCmogo0DTNy9NyyXZkZA" + "RDQ0Oorq7GihUrUFRUBIqiEAqFoNFooNFootby+" + "XwsEVssFvh8PgCAWq1miZgQMyFUqVQKuXz29CRkHJnaYBgmYZpCJGQR+" + "Qgx0hXBgqZpNo0AgJezHR4exujoKOrr69Ha2gqlUsn+" + "HSHdWNFron35fD54vV6WkL1eL9sRodFoUF1dDY1GA7VaDZlMFrVGojSFRCJhiVsk" + "YxHzADG9ICI2CGGFQiFMT09jZmYGXV1dkEgkCAaDGBoawuTkJJqamtDc3MxGn1yk" + "Q7qJjmdgYIAlS6/XC6/" + "XC5qmUVRUxMsZFxcXp03GkakKkYxFCAwxvSCCDxJRhsNh0DQNYJaQKIpCIBCA2Wy" + "G1WpFa2sr1q9fLwihJgOJRAKFQoGysjJUV1fzjtfv97MRsc1mg8fjAU3TUKlUUWQ" + "sl8vjFvFI+iQYDPJ+x01TkOhYJGMRQkMk3a8YIsmWkAqJbK1WK+" + "x2O9ra2tDd3Z0zsp0LEokEarUaarWa9zrDMLwC3ujoKLxeL9sBwSXjkpKSpMiY5I" + "zNZjMWL14cM2csdlSISBci6X5FEK/" + "HViKRwOVywWQyweVyQaVSYfXq1fNKKKRIluy2RUVFKCoqwqJFi9jXGYZBMBhkyXh" + "8fBwejwcURUGhUESRsUKhiHrPMzMz6OjoiCJjArHXWEQ6EEl3gSMW2ZLo1W63w2g" + "0gqZptLe3Q6FQYHBwcEGQhkQigUqlgkqlQlVVFfs6yV8TMp6cnITH40E4HGbJmLS" + "3cZ8EIsHNhQeDQZGMRSQNkXQXKGIJGqRSKRiGgdVqhdFohFwuh1arRXl5OQDA7Xa" + "z+d35RCqRbjprE+FFZWUl73fBYJDtppiamoLf78eePXsgl8t5+" + "eKSkhJWuBEJctzhcBihUIj3O5GMRQAi6S44xBI0ELKdnJyEyWRCcXExent7o3pqy" + "XapYqGQBiHjiooKAIDD4cCaNWsQCoVYMrZarRgaGkIwGIRMJosiY5VKFTM6nouMS" + "XubKPxY+" + "BBJd4EgkaBhfHwcZrMZFRUVWL58OYqLi2OuIZVK8yLSzTcoFAqUl5ezTwQE4XCYJ" + "WObzYaRkREEAgFIpdKoboqioqKEZJxI+" + "MGNkMWOisKHSLoFDpqmYbfb2YISuSApisLo6CiGh4dRXV2NVatWQaVSJVyLkPR8I" + "5vpBSEhl8tRVlaGsrIy3usURbE5Y7vdjtHRUfj9fkil0ih/" + "imTI2GAwoLi4GDU1NQBE4UehQyTdAgS3iEPTNCYnJ1FUVITGxkaeeqyhoQFr166F" + "QqFIat100wsi+JDJZHHJmETGDocD4+PjPH+KSDLm5nsJwZLvh/" + "gYcyEKPwoDIukWEOIJGmQyGYLBIHQ6HSwWC5qamnDUUUfFVI8lghjpZhcymQylpa" + "UoLS3lvU7TNEvGLpcLExMT8Pv9AGb9KQi5kj7leMU3UfhRGBBJtwCQSNDg9/" + "thsVjg8XjQ2dmZkXpMzOnOD6RSaUKzIJ1Oh0AgAJPJBJ/" + "PB4ZheGZBJG+cDBlzc8bkhi0KP3ILkXTzGIkEDV6vF0ajES6XC+" + "Xl5aiurkZzc3NG+8uXCDNfjmO+" + "QQpyarUa9fX1bCGPpmlWEu3xeDA9Pc2aBanVal6qgvhTJEvG3H2L7W3ZgUi6eYhE" + "ggaXywWj0Qi/34+Ojg709fWxDf6ZIpMLSrwYsweapnlPL6Qgxy2uAXx/Co/" + "Hg5mZmSizIC4hJyLjeMKPQCAAhULBkrlIxqlDJN08QjxBAzCrHjMYDGAYBh0dHTy" + "DbzEtsLARSbrxwPWniGUWRPLGo6OjaZsFTUxMQKPRRB2PGBknD5F08wCJBA3T09M" + "wmUyQy+" + "Xo7OyM6hUF5p90A4EAbDYbSktLoVQqM77QxPQCHySPny64ZBzLn8LtdsPr9WJsbI" + "z1p4g0CyouLoZCoQBN02wnBXcdYG7hh0jGsxBJdx4RT9DAVY+VlJTEVI9xMV+k6/" + "f7YTKZYLPZUFZWhtHRUQQCAVappdFo2IuWa3ouIjUQoYTQ4PpTxDML8nq9mJiYYP" + "0pQqEQ/H4/" + "fD4fzyyIrBd53EBi4Qe3te2r0lEhku48gKZptnG+" + "urqapx4bGxvD4OAgKioqcOSRR0ZZGcaCTCbLKen6/" + "X4YjUY4HA4sXrwYPT09CIVC7MUSDod5RR6z2YxQKAS5XM4jYu4Fy4UY6fKRbHpBK" + "MQzCwKAzz//" + "HFVVVaBpmu2aId9tPOe2ucg4ct8LXfghkm6OEClo8Pl8mJiYQG1tbVrqMS7IBN1s" + "w+" + "fzwWg0wul0or29Hb29vTEJUi6Xx5TNxnP3inyUzTXJ5Dvy6fNgGAaVlZVRwQD3u5" + "2ammJvtFx/" + "Cu5TTyIyXujCD5F0s4x4gga5XI5wOAyTyZSWeoyLbKcXSHua2+" + "1GR0cHli5dmtaJrlAoUFFRwRrKAIetFt1uN+t7a7PZQNM0pqen2QtVo9HEHc+" + "z0BHZzjWfoGk65ncQ67sF+" + "E89kWZBkSq8eGZBQHzhh8ViQX19PRsZk6AmUg2YTxBJN0uYa0LD0NAQrFYrqqqqs" + "H79+ozIJFuk6/" + "F4YDQa4fV62fY0oS9+YrVYVVXFPsqOjY2BoijU1NSwF+" + "zIyAhbcSftTyRVQYQBCxX5FOlSFJXSscR76knGLIiQcjx/CgAYHh5GXV0dS8R//" + "vOf8cknn+Cee+" + "7J7I1mESLpCoxEggZu4ampqQllZWVYvHhxxvsUOqdLJkn4fD5otVosWrQo55FWoo" + "kQpBfV7XazwgAAUSotIplNB/" + "mUU86nSJeiKEGeNuKZBYXCIUw5piANSeFwODA2NsYzCyouLmafekiKg/" + "sdOxyOmB0++QSRdAVCIkGDx+Nhx+G0t7djyZIlYBgGY2NjguxbqJyuy+WCz+" + "fDl19+" + "Ca1Wi6qqqnm52BMV0hL1ovp8PpaMLRYLfD4fAEQ9xqrV6jnfVz4RXb4hW5/" + "L+6Pv48ZdN6KtrA07T9/J+x1FUez363Q6WbMgr9eL/" + "fv3o6SkBF9++" + "SXMZnPGysxsQyTdDJFI0OByuWAwGBAIBKIez4Ws0GeaXnA6nTAYDAiHw1CpVFi5c" + "mXKZjnzDeLUFanSimUm4/" + "P5eDaLJE1Bcor5hnw8JiEx7BzG5vc243cHfwcA+HjyY/" + "x9+O84tuVYdhuZTBblT0HTNPbt24e2tjZ4vV58+OGHeOeddzAzM4Nf/" + "epX6OzsxJNPPomSkpKkj+WSSy7B66+/" + "jtraWnz++" + "ecAZmflfec732EHlb700ktRU0dSQWFdWXmEeIIGALDZbDAajQCA9vb2qLYboZEug" + "TscDhgMBtA0Da1Wi8rKSuzduzevHq0zRTwzGa7NItfzlhR4iouL2XH0Qgg+" + "RETDG/Liob0PYceHO+AL+9jXVTIVdDYdj3Rjgcy1I9/v7bffDp/" + "Ph9NPPx0nnHAC9Hp9XMP+eLj44ovxgx/8ABdddBH72vbt2/" + "H1r38dN910E7Zv347t27fjxz/" + "+cWpvlgORdFNEIkHD9PQ0jEYjlEolurq6clZBTZUQiKQYALRaLa/inA/" + "2jrno041ns0gKPE6nE6FQCF9++SWCwWDMPlRR8JEeGIbBbw/" + "+Fpvf3YxR9yjvd2d0n4E7v3Yn2srb5lwnHA5HPZE5nU5UVFRAoVCgt7c35WPbsGE" + "DzGYz77VXX30Vu3btAgB897vfxfHHHy+" + "Sbi4Qb0ID0aObzWaUlJRg6dKlCdVj8wmbzQaDwQCZTJZQUryQIt1UQQo8xcXFsFg" + "s6O/vBwB2Tprb7eb1oXLHuZM0RaGlZpKFEOfFvol9uPGdG7FnfA/" + "v9SNrj8T247fjmOZjkl4rHukKXUibnJxEQ0MDAKC+" + "vh6Tk5MZrbcwzw6BECloGB8fZ1tZuOqxysrKpNVjsfaR7UfXmZkZGAwGKBQK9PT0" + "REV3XHxVIt25EPm9xJuTRuSyHo+HJ5flCj4IGRd6j3EmnQvj7nHc8fc78MIXL/" + "BerymuwZZjtuCCvgsgk6a2dizSdTgcGeVb54IQYgyRdGMgnqBBoVAgFAphcHAQIy" + "MjqKmpSVk9xgXXTFpoMAzDkq1KpcKSJUsSki3BfJvnFBpijXPnehcQVy+" + "v1wuKoqBSqXhS6LkEH/" + "N98+EiHdL1hXx45KNH8OCeB+" + "EJHbYfVUgVuHLllbhu3XUoV6UXmYbD4ajjcTgcUQKNTFFXV4fx8XE0NDRgfHwctb" + "W1Ga0nki4HpO2LoqgoQUM4HMbMzAzsdjva2trSVo9xIZPJUm42nwvc3LJarU453Z" + "EPUWY+HEMmN8N43gUMwyAQCLBtbVy/23iTIDJ1GBMSqZAuwzB4RfcKbn/" + "3dgw5h3i/+3ftv+OuDXdBW6nN6HhIIS3yGDO9LiPxrW99C8888wxuuukmPPPMM/" + "j2t7+" + "d0Xoi6SKxoCEYDGJwcBAWiwVlZWVobm5GR0eHIPslpCvEScIwDCwWC4xGI0pKSrB" + "s2bKUWmUIxEh3Ftl4Akkk+CA9qNxJEABQVFSEYDCIqamppHuMs4VklXGfWD7Bje/" + "ciN2ju3mv91X34d7j78XxrccLcjyRpCvEjfr888/" + "Hrl27MD09jebmZmzduhU33XQTzj33XDz55JNoa2vDSy+9lNE+" + "vtKkm0jQ4PP5YDabYbPZ0NraivXr18NqtcJmswm2f0K6mYCQrdfrhcViwfLly1Nu" + "k+EiHwpp+RLZ5QqJeoydTicGBgbgdrsxOTkZJfggqQpS3M0m5op0Jz2TuPPvd+" + "LZ/c+CweFzaJF6EW47+jZ894jvQi4VjnLC4TCvjkLO20w+hxdeeCHm62+//" + "Xbaa0biK0m6iXpsY6nHyJdITGqEQiaky/XcLS8vh0ajQU9PT8ZRc7qFNKEv+Pkm/" + "nxQpEmlUjYybm9vZ1/nCj4ipbKRbW1CCj7ika4/7MejHz2K+/" + "fcD1fQxb4ul8rxvf7v4cajbkRFkbB5ViC6kOb3+" + "zMKOHKFrxTpxiJbckI6nU4YjUYEg0G0t7fHNHeRy+" + "WCWiimQ7rcFrWKigqsWLECRUVF+PDDDwVJC4jphVnkA+nGOw6u4KOuro59nQg+" + "3G43z0Qm0l5Ro9GwXrepIJJ0GYbB7/W/" + "x23v3gazw8zb9tT2U3HPcfegq6or9TedJCJJ126357W7GMFXgnTjCRoAvnqMzB6L" + "B5lMJmikmwrB0TTNkm1VVRVWrlzJ65oQyvQm3fQCqSQLQVT5UEjLF6TiMJZI8BHL" + "XpEr+CBpikRPSlzS/WzqM9z0zk14b+Q93jY9VT249/" + "h7cdLik1J8p6kjknSz0bmQDSxo0iVtXySa5AoapqamYDKZUlKPzUekS/" + "qBh4aGsGjRorgtahKJRJBjSzW94HK5oNfr2RHg5EImF7FGoylIsUC+" + "RLpC2DomYypvsVjgdrt50lpudEzOfVvQhvvfvB/" + "PfPYML28LbxU2b7gFPzz2EkHztokQi3Tz3WEMWICkyxU0jI2NIRwOo6WlhaceM5l" + "MKC0tRV9fX0oVfqEj3USkS9M0RkdHMTQ0hJqaGqxevTqh7FQmkwkSHSYb6brdbuj" + "1eoRCIWi1WpSUlEAikURNhzAajayRDpeIE3ng5gPZ5UuknU3yj2c8zu0xHh8fh8f" + "jgS/kw8ujL+O54efho72HN6ZlwJ7vA3/" + "bAh9TAvmGIHIFiqKi0gtipJtDxBI0SKVSBINBMAzDElhlZSWbB00VQuc7Y5EuTdM" + "YGRnB8PAwamtrk+4HFsreca5I1+PxQK/" + "XIxAIoLOzE1VVVawYgGGYuNMhuP2pVquV54FL8pOkCk/+Zr6RD+Q/" + "HwbmXMEHwzD4g+EPuP7N2zDqM/I31J0G/PlBYHrW4+CJJ8L4/" + "vfdqKjIjal85A1JTC/" + "kCIkEDVKpFDMzM5icnERtbe2c0eJcEPoi5JIuRVEYGRnByMgI6uvrUxZfCHVDiLe" + "O1+uFXq+Hz+djyZZrUzmXB26s/" + "lQyK87tdsPpdLJVeEI0SqWSJWShG97nwkJKL6SLz6c+x5Wv3YR/Od7l/" + "2JqySzZ6v8NAFBUxODMM104//wJTEzYYDTyBR/" + "khpqJqXwyIGY3+" + "Y6CJd1EgoZQKIShoSGMjo5CLpdj3bp1eZlXlMlk8Pv9MJvN7Jy0dI9VKNKNJE8yH" + "83j8Qg+RYLb4sTF1NQULBYLZDIZz1yG+Blw842F7mcwF+ZDkWbxTOGK/" + "7sbb1qfBiScc8pXCey6A9h7BUArUFNDY+PGEC67LIRFiyQAGg79RAs+" + "uKby5OkmFVP5SMS6wTscDtaYJp+Rf0w0BxIJGgKBAAYHBzE1NYWWlhb09/" + "fDaDTmJeGGw2FMT09jamoK7e3tGd8YhOxeIC79RqMRLpcLWq2WHRWfC8hkMqhUKj" + "Q2NvJeDwaDcLvdcLvdGB0dZWemcS9ijUYjiGorXyJdhmFyFun6ggH88IVf4jcT20" + "ErnAB5+" + "7Rslmh33QH4FkGrpXH11X6cf34I8bJ0iQQfhIzjmcqTn0SCj1gDMsX0QpZAURRCo" + "VCUesxkMrG+CJ2dnZBKpQgEAgiFQoLun+Q8070QwuEwBgcHMTExgYqKCtTX1/" + "Ma39OFUDldiqIwPj6OsbExaLXatCf/" + "ZoJ4+4scYAlEj+khqi1yEXPzxamYkecL6eYivRAOM7j9uT/icfOtCJUaAG4mR3/" + "qbCphaimWLnXj2mttOOssOdJ9wOA+3XCNY7im8okEHxqNBkqlMq7DmEi6WQCZdw/" + "MVtBNJhM8Hg/" + "a29vR29sbZccnZLcBcLhtLNULgbiTTU5Oorm5GUcddRQ760kIZJpeIEMzLRYLKio" + "qsHz58nklnWQLafEiKq5QYGZmhtebyo2K893/" + "NpukGw4DDzz7BR784mb46t8BuO29nLztCSeEce21XlRUfIKenm7IZMJ/" + "XvF6jCmKYlMUXMEHMaEaGRlBcXEx/H6/" + "SLrZBFc91tHRETfPmA0fAdI2lmxhh2uYQzwcyEUkhPcCQbqkGwgEYDKZMDMzw4pD" + "PB5PXkR5mSDeRRwKheB2u3ntUBRFRY11zxd3r2wcRygEPP68FXfvvhvu7ieBes41" + "wsnbfvMbwI9+" + "6cGqVbPn1ccfCzMJOBXIZLKYU4NnZmYwMjICqVSKwcFBXHvttRgZGcHll1+" + "OlStX4phjjsF3vvOdtPf705/" + "+FE888QQkEgmOOOIIPPXUU2l1PMVCwZGux+" + "OBTqebUz2WLSQrkAgGgzCbzZiamkJbWxuPbAmEJF2ZTJZSKiUYDMJkMsFqtWLx4s" + "Xo6emBRCKBxWKZdxlwNhVpCoUClZWVUf63kWPdXS4XQqEQwuEwLzLO9fBKIXO6oR" + "Cw83kaW//0C9iX3w30HPZJmM3bXgnJu5tx1r+V47odQSxdyj8PhBq/" + "LgQYhkFJSQkaGxvR2NiId955ByeeeCJ+85vfwGAwwOl0pr326Ogofvazn+" + "GLL76AWq3GueeeixdffBEXX3yxIMdecKSr0WiwatWqedv/" + "XAKJQCAAs9kMq9XKyy/" + "HWyvXkS65GUxPT2Px4sXo7u7mkchX0Xsh1lh3u92OyclJNDU1we12w+" + "FwYHR0lPUyiExRZKuljabpjNMfoRDw/PNy3Pl/f8BU/" + "43Amuh+W9lbD+" + "D8k7tw7XsBdHb6Y66Ty6LeXIhlYB4KhdDY2IimpiZB1vf5fFAoFPB6vVFF3UxQcK" + "SbKjItfEUiXqRLcqI2my0mmcVCLkk3FArBbDbDYrGgra0NRx11VMzPJN2UjJDRaT" + "481hOCiTVJmHgZuN1unnxWpVJFeRlket5lVrQFXnxRjm1PfIHx5T8CTvwbf4OpXs" + "jevh8XrT8J17wZxOLFsck2HxFZSBPyyaipqQnXXXcdWltboVarccopp+" + "CUU04RbP2CI91UL0hixyjU5NbISNfv98NoNMLhcGDx4sU8K8hk1so26XILeJE55V" + "jIhxlpwPwr0hJ1L8TyMiCqPJIvHh4eZv0ouCIBjUaTkvdtOl0UFAW89JIcd+" + "2YwXDnZuD0pwAJ3ydB+t4d+O7SS3Dd7xi0tARSWj8fQG5ykRDihm2z2fDqq6/" + "CZDKhoqIC55xzDp599llceOGFGa8NFCDpAqlFVUKTLlmP9LE6nU50dHREdU4kAyE" + "LfZGky21Na2lpmZNs460zH8iHSDdVcEf0RE6FIK1QkX2pkcZAsc7RVCJdmgZeflm" + "Ou++jYKj5KfDtewGV+/AGlBzSfVfgP5tuwc1PaNDSMv8313QRDod5ohq/35/" + "2rMJIvPXWW2hvb2e7Yc4880zs3r37q026qUAulwvaq0tRFCYmJjA8PIyOjo556WO" + "NBSKOCIfDGBoawvj4ONualkrxIx8mRwD5HemmAolEErcvletFMTg4yI505xJxOBy" + "ek3QZBvj97+W4+x4FvpT8DjjtRqBikH8cum/iTM092HZ/O5qbGQCpfb7z/" + "X1EIpsOY62trXj//ffh9XqhVqvx9ttvY/" + "Xq1YKsDXxFSFeIXl2PxwOj0cg6GS1btiwvyJaAYRjY7XZ88MEHaGpqSplsCfIlvb" + "DQEa8VipuiGB0dhdVqxczMTFThblZ1J8Vf/iLD3Xer8C/LR8Bp1wCt/" + "+DvyNKHk+kf46c3H4fW1tTJlmA+PSBiIZteuuvWrcPZZ5+" + "NlStXQi6XY8WKFdi4caMgawMFSrqppBcyFUi43W4YjUb4fD5otVrU1tbC6XTmDeF" + "SFIXh4WEMDQ1BJpOlTbYE+RDp5oOJ+" + "Xwp0iJVdwcOHEBDQwOUSiUrgbZYLNi9W4WnnurA/iEn8PVbgP/YyV/" + "Iuwhr3Fvwi8v/" + "C11aGdIlW4J8I91IW0en0ymol+7WrVuxdetWwdbjoiBJNxWkG+" + "m6XC4YDAYEg0FotVrWVWtmZkZwlVs6oGkaw8PDGBkZQUNDA1asWAG9Xp9xH6UY6c" + "4in2TAMpmMbWkzm+uwbZsKu/4RBI7+CfDt+wAlx9+WUqB1/" + "FLcdcqFWHPEImg0boTDmavu8qlHF5gtEEd66RaCgTlQoKSbysWQak7X6XTCYDAgH" + "A6zZMuFkB0HQOotbVy/3fr6etYoJxAIzOu4Hp/" + "PB4ZhBJlKmw+" + "Rbr6AKNL275di2zYl3vijDDjieeCqm4CyUd62DfZv4WffuhMnHtnC5osnJibgdrt" + "BUVRKRvKRyDfSjTyeQpEAAwVKuqlAoVDA75+7/" + "9DhcMBgMIBhmIRqt2xNBJ7r5CdjewYHB1FXVxflt5srE/" + "NIEJ9dr9fLmsYTfwOu2Uw+" + "XbDJIF8i3eFhJR54oAIvv6wC07wbuPRaoHkPb5tSzxHYduy9uOSEDexr8YzkSb6Y" + "aySfzDj3fCNdgB98FcrUCKBASTfVSDcRSdrtdhgMBgBAZ2fnnI8o2ZqTFk/" + "RRNM0xsfHYTabE06SyLaJeST8fj8MBgNcLhf7uZGojPgbRFowkou7tLR0Tuu++" + "cZ8R9rj4xLcd58STz+9AlTpEHDWjcCyl3jbKAJ1+" + "MHS27H59AsgkyYmRK6RPFHdAXwjea67F5kgTIg4lgIsn+" + "B0OtHZ2Tnfh5EUCpJ0U0E80rXZbDAYDJDJZEkPpgRyNyeNYRiWbBctWoQ1a9Yk7D" + "UWknQTEQ7Xs4HbMsf9TOL5G5B+Ve6UCCKp5UbF+ZJemI8bwswM8NBDSjz2mBI+" + "yg0cvwVY/" + "1NAfljAIKFUOKvxKuw45xqUKksTrDY3uNaJ3HHu3AnCU1NTsNls7Oy0yBRFrsk41" + "lOImF7II0TmdGdmZmAwGKBQKNDT0xPlQjUXhM7pRpIld3hmVVVV3Om/" + "kRCKIOKlF8LhMMxmMyYnJ+PKnBM9ksfrVw2Hw2xUPD4+" + "zkpqKYqCyWSKaJHKrdFMLvfn8QCPPqrEjh1KOJw0sOIJ4MTbAI2Ft9360rPx2Dlb" + "sLiiLavHE6m6s1gs8Hg8aGxsZPPFIyMjUUbyufi+" + "YqU6CmVUD1CgpJvKl6lQKBAKhWC1WmEwGKBSqdDb2xulp8/" + "GvpMBSVcwDMNOz62srEyabIVGrFze0NAQxsbGUlK2JQu5XB6VfyROchqNhqfi4j7" + "ykp9seeHminSDQeCZZxT48Y+VsFikQPvbwPnXAvWf8rZrV6zGL864F+" + "ub12X9mGKBtGgR1V0sI3ly84xU3XG/" + "MyGUofEMzMXuhTwAEQwQh6ilS5emTbbZgkQiwfT0NL788kuUl5dj5cqVgvl2ZgJu" + "l0RjY2PG/" + "b+" + "pQCKRQC6Xo6amhmdMzjWamZychMFgYL1wuUSc66g4HdA08NvfynHXXSqYzVJg0UH" + "g/OuBnt/" + "zttPQ9bjv1Dvxn8vOhVQyf70PC9EAACAASURBVH2yiQppXCP5yL8hRvJWq5U1klc" + "oFFGz7lK5ecYj3fmwek0HBUm6c11QDMNgamoKRqORfdRZvnx5jo4uOZBjnJiYQGl" + "padpj4bNxXKFQCP/85z9TGgGfC8QzmvH7/" + "TzhAOmkiIyKU3kf2Yp0GQZ4800Ztm5V4bPPZIB6BjhtK7Dm54CMkxdHMa5Zcw2OU" + "xyNrx3xNcGPI1UkKvbGQzpG8pGz7mI9VYmkm0dgGAYWiwVGoxFlZWVYvnw5iouLs" + "Xv37qzsK52LkmEYTE9Pw2AwQKPRoLGxEWVlZfNOuNzPjqIorF+/" + "XjCToFSRSiGN64UbOa6HRMVTU1MwmUysM1VkVJwrpdXevVJs2aLC3/" + "8uB2RB4KiHgePuBNS2wxsxEpzT/Z+464TNaNA0YO/" + "evTk5trkgZMtYMkbyU1NT7PTgyFl3kcIIYNbHWq1WC3J82caCIF2SDzWZTCgvL0d" + "/f39WvwBSTEvlkYhhGDavXFxczN4QBgcHBS3MpQpyXHq9no24P/" + "roo5QJN98e52N5G3B7VSMv7MioWMhIV6eTYOtWFV57TQGAAXpeBU65Hlik4223tv" + "ZY3H/" + "yPeiv6xdkv0Ii2zLgWEbyZL8kRWG32zEyMgK32822JgYCAUxMTAia+" + "rLb7bjsssvw+eefQyKR4Fe/" + "+hXWr18v2PoFSbrkYuBW+isrK+M+omfDyDzWI048EFJTq9VYtmwZz5JOyG6IVN+" + "nzWaDXq+HSqVibwL5gGy1jMXrVY3MPQ4ODsLj8UChUMDn87FEnIqCC5jttd2+" + "XYmdOxWgKAlQ/y/" + "g1GuB9nd427WUdGD7idvwzc5v5t3Ni2C+xBGxjORHRkZA0zTKy8vx+" + "eef48UXX8Tw8DD6+/vR1NSEyy+/HGeccUba+9y0aRNOO+00/" + "Pa3v0UwGGRFJEKhIEkXAMbGxmA2m5Nqq8q2kXk8zMzMsKTW19cXs4gnk8kQDAYFO" + "S7SfjYXMbhcLgwMDEAikWDJkiUpt80tNMTKPQ4PD7NzuAgZcxVc3Kg4crS7wwHs2" + "KHE//" + "6vEj6fBCgdA064HVjBNxPXyMtx89E34HsrvgelbH5SOckinxRp4XAYxcXFKC8vxz" + "HHHIM1a9bgtNNOw549ezA2NpZRv7rD4cC7776Lp59+" + "GsCsAZHQabaCJV2GYZJuqyK9ukIamSeKTkkEqVAo5uyYyOXIHtKKFQqF0NXVlbd9" + "jfkS7SkUCixatIhnSs593LXZbBgeHmYr8kplKV57rQmPPloNu10KKLzAhgeAY38M" + "KD3sGlLIcFn/pbh5/c1YpF4Ua9d5h3wj3UjfhbKyMkgkkozno5lMJtTU1OC///u/" + "8cknn2DVqlXYsWMH7+k0UxQs6ba0tCR9R8vU3jES8SJdu93OOn0lG0EKOakh3lo+" + "nw8GgwEejwednZ08EomH+fYemG9FWrz3H+txl6aB558H7rlHjZEROSChgeW/" + "Bk66OcqU5tT2U3H3cXeju6o76+9BSOQb6WbLSzccDuOjjz7Cww8/" + "jHXr1mHTpk3Yvn07tm3bJsj6QAGTbioQ2qQmMtJ1OBzQ6/" + "WQSCTo7u5OWlIMCD+GnUu6gUCANV7XarWoqalJikhJTjVfIs58xl//" + "KsPmzSp8+" + "ukhQmp7dzZv27iPt11naReu1F6B5ZrlcJvdGJgemNMQKJ8sNvOddIUSRjQ3N6O5u" + "Rnr1s2KUM4++" + "2xs375dkLUJCpZ0hTS9SRVkPafTCb1eD4ZhkjLLiQWh0wsURSEUCsFkMmF6ehrt7" + "e0pDcsk68xnpJkP3gtz3XQ++" + "USKzZtVeOedQ5dQlR446UZg6cu87WrUtdh87O24sO9C1pRmLkMgbl9xvhiH55OJe" + "WTnkJAOY/" + "X19WhpacHBgwfR09ODt99+" + "G0uXLhVkbYKCJd1UIPSctFAohPHxcSiVSnR2dmb0hQvt5TA8PAybzZZwzPpcIF0Q" + "+RLZzAfike7QkATbtqnwm98cEgoU2YANdwHrHgZkh88xlawIV636Aa5ZG21KE69P" + "lUhpXS4XxsfH4fP5EAgEcPDgQV5UnC3p81zIlyefyD5doYURDz/" + "8MC644AIEg0F0dHTgqaeeEmxt4CtCusR/" + "IVO43W7o9Xq43W5UVlair68v4zWFIF0yRWJqakoQyW46eWYhL8h8iHQjMTMDPPCA" + "Co89pkAwKJkVN6x+dFbcUDzD2/" + "bcJediy7Fb0FLWkvT6XCktMQQKBAL44osvUFdXxxoCEfUWGetObDILQfosFCKjbq" + "fTmVJKby709/fjww8/FGy9SBQs6aaaXiBN8OnA4/" + "FAr9cjEAigs7MToVAILpcr7fW4yIR0ucbm9fX1aGxsRG1trSAje/KN9HINEun6/" + "cDjjytw//" + "0q2O0SAAyw5BXg5BuixA3rGtfhnuPuwZqGNYIdg0wmi2lI7vP5eNMhiMEMt5Utm4" + "ZA8w1+" + "i54Dra2t83g0qWFhfiMRSDe94PF4YDAY4PP50NnZyc5Js1qtguWI0yFdriNZdXU1" + "64+g0+kESVWkGulSFAWz2Qyn04nS0lJoNBqUlpbmjWdDOqAoBq+" + "8osFDD5VgePhQVNWwDzj1R8Div/G2bStbjG0b7sS3u74taLQZL4/" + "KjYpTNQQqKSlBcXHxgoqK7XZ73nmrJELBkm42C2lerxcGgwFerxdarRaLFi3i7U/" + "I6RGpRJXEt0Gv16O8vDyqTznX0yO4kXZDQwOam5vh9XphtVphNptZrwNCxMk6gM1" + "3pL1rlww33NCFAwcOKfTKRoATbwX6+" + "RN3y5TluPGoG7CxfyNUcuFtOFMtXiUyBPJ4PHC5XGkZAuVTFwWZTsJFIXnpAgVMu" + "qkg2T5d0s/" + "qdruh1WpRXV0dkyCEnB6R7M1jZmYGOp0OxcXFcb0lhCLduUiPmOMYDAY20ibKusg" + "LnngduFwuTE5Osr64kY/B+VC0279/" + "tiPhzTcPXRZKN3DMj4GjHwAUh9NTcqkclyy/" + "JOviBiHa9uJ5GsxlCETyxWq1Oq+" + "KqrE8TwppagTwFSHduSJdv98Po9EIh8MBrVaLvr6+" + "hCe70HPSEsHhcECn00Eul8eVEhNE9ummi0TkTchfo9HwvH9jbR/" + "P6yDWtAjSMkU8Doixey4eg8fGJLj7biWee04BmpYAEmpWsnvibYBmkrftN7TfwLa" + "vbUNXVVfWjyubbVrJGAIR6TOx+" + "xwaGhLUjDwdFLqtI1DApCtEeoFLth0dHejt7U1qXaHnpMWC2+" + "2GTqcDTdNJCy6yOSeN+DVIpdI5yX8uxJoWETkg0efzYe/" + "evVAoFLz0RKqmM4ngdM7OI2M9EgBA+" + "xfglOuAus942x5ZeyTu3nA3NrRuiLFSdpDr3th4N0lyLioUCtYQKBgMRtlkCvndx" + "EMs0nU6nSLp5hsiSYQotWw2W0pkSyB0by0XZKS53+" + "9HV1dXSieTVCoVpDWOOyfN5/NBr9fD5/" + "Ohu7s74WNcJlEpd7RLdXU1nE4nVq1ahWAwCJfLxYu8yLw1crGXlpamVKUPhYCnn1" + "bg3nuVmJ4+RBK1n8+Sbeefeds2ahqx+djNOK/" + "3vJxPbsgXQQLDMCgqKkJDQwPvtWAwyJqRDw4OJm0IlAlika7X6y0YL12ggEk3nS+" + "RO8k2HaUWgdCKLYlEAp/" + "PB5PJxI6SjizeJXtcQkW6oVAIBw4cgM1mQ2dnZ9z8djbAzSkrlcoo05l4+" + "UhSpSeRceSId4YB3nhDjs2bldDpDuUoNRPACZuBFU8C0sOfnVqmxhXLr8ANx96AY" + "sX8WF7mixQ7Vk5XIpGw89KSNQSKjIrTyRNHki45T/Lh5pQsCpZ0geSr3MFgEH6/" + "Hx9++GHcSbbzhWAwiEAggI8++" + "gharTblqJsLIUiXoijY7XZMTEygq6sLPT09SR9PrkgiXj6SjO0hii6/" + "3w+5XA6NRgOTqRr331+" + "PDz441GWg8ADrH4x2AJNIcdGyi3Be3XlY2rp03ggXyJ9Il6KopI8jliEQADYqdrv" + "dGB4eZnPF3CnCGo0GKpUq4TkUz8c6X67nZFDQpDsXQqEQzGYzLBYLZDIZ1q5dmzf" + "N4tyR5gqFAitXrsz4ESmTQhpN0xgdHcXQ0BBUKhW6u7t5j5PJQMgx8Kk+" + "ScQb22MwUNiyRYHXXjtkzSehgCN/PdsCVjbGW+PEthNx94a70VfTx/" + "oNzyfyiXQz7V5QKpWoqqriTRGOzOOPjo4iEAiwN8pYhkCRto6R/" + "y4E5AcDCYxQKITBwUFMTk6itbUV69evx759+1IesTMX0onsYo00//" + "TTTwVJVxDDm1TAFVrU1NRg7dq1GBoaSvl9zTdBRcJun5XtPvroIdkuAHS8NZu3rf" + "+Et217STs2Lt6IY+" + "qOQZGzCJP0JILB4Lyr8hYS6cYCN49fV1fHvh7PEEitViMUCqG8vBw+" + "nw9FRUWCS4BzgYIm3ciIKBwOY3BwEBMTEyyhkZOW9OomY3qeDMijfLInY6KR5umQ" + "ZaJjShbx2r+E9PhNB5kQeDAIPPmkAtu3q2CzHVqnZv/sTLKuP/" + "K2rSupw+1H344L+" + "i6AVCLlFe2cTicOHDjAi7qIz0GunpbyJaeba1vHRIZAOp0Ofr8fOp0Or776Kv74x" + "z8iHA7jsccew/LlyzOej0hRFFavXo2mpia8/" + "vrrQrydKBQ06RKEw2EMDQ1hfHwczc3NMQ1fsmXvONfJyDAMxsfHYTKZ4o40F6obI" + "lmyJO1fMpksamZbKuvkExgGeO01ObZsUcFoPBQdximSFcuLcfXqq3H16quhUR7OP" + "ZLCUHV1NXw+" + "H5qbm1FcXMxGXRMTE3C73azhDLdoN1cuMh3QNJ0X6bB0xq8LDSJ9ViqVaGpqYqd9" + "H3fccfj5z38Omqaxc+dOyOVyrFmTvvfFjh070NvbC6fTKeDR8zH/" + "32gGoGkaJpMJo6OjccmWQGjSnYsouSPNKysrsWbNmrgN5UKR7lw5XRIpBAKBhON6" + "5luGmyr27pXi1ltVeP/9Q6ezwjOrIjvmPl6RTAIJ/" + "mvZf+HWo29Fgya5fLVMJosprY2Xi+T2FJeUlGSUHogleZ0PEP+" + "GfEBkIY2maXR2duKKK67IeO2RkRH84Q9/wK233ooHH3ww4/" + "XioaBJd3h4GACwfv36OSNOoewdCRKROPFHICPN5zphhYx0Y60TDAZhMBhgt9uTav" + "8SKt2RbZjNEtxxhwovv3woCpNQQP/" + "TwIm3A6XjvG1PbDsRd224C8tqliW1dqJH+1g2jABY9zlSofd4Zgk/" + "sqc42aiRYZi8yOnmkww4m6N6fvjDH+K+++" + "4TzEEwHgqadNvb25OOXrM9sgdIf6R5ttIL3Bx3Kn3JUqk064q7TGCzzRbJfvELUi" + "RjZkUNJ18P1H3O27avug/bNmzDSYtPyvpxKRSKmBV60lMcaQTETU/" + "EMgJa6IW0dBBZDBeKdF9//" + "XXU1tZi1apV2LVrV8brJUJBk24qEHp6BFcKnOlIc6FJl1u0a2pq4hUUkwFXkZZPi" + "Fkkq//" + "XLNlq3+" + "JtW19Sj9uOvg0X9F3AjslJBUIVsaRSadR492SNgMLhsEi6EYi8Ednt9ownAAPAP/" + "7xD7z22mt444034Pf74XQ6ceGFF+LZZ5/" + "NeO1IfKVINxMj81jreTwejI6OZjzSXCjSlUgkCAQCeP/" + "991FTU4N169alVYiZ7xlpkWAY4PXX5di8WQWD4dAFVzY8a0hz5K8ByeFjLVGU4Id" + "rfogfrPoBShTpj83OZudAskZA09PTsFqtPI9ioWW1ySCfSDcSTqdTkAku9957L+" + "69914AwK5du3D//" + "fdnhXCBAifdVE1vhIp0fT4fLBYLgsEg+" + "vr6khppnghCeCZYrVbodDqEQiGsW7cuo9a4fIp09+" + "2bLZLt3n3oVFU5gGO3A0c9BCj87HZSiRQXH3Exbl5/" + "M+pK6uKslt+" + "INAI6ePAg6urqoFAoYspqs2UEFIl8yulGwul0CjYJOFcoaNJNBcl66iYCd6R5RUU" + "FioqKMiZcYPZiI2YhqcLpdGJgYAByuRxHHHEEPvnkk4x7kdNpGfN6vRgbG2N9WDM" + "9hsnJIlx6aRH+7/" + "8OFZ1kQWDVY7MzyUqmedue1nEa7vzanViyaElG++" + "QiH3pkCdnFEhAkYwSUyJg8FaQiA84mYuW4s+Gle/" + "zxx+" + "P4448XdE0uCpp0czWGPdZI88nJSbY6nSnS6Rbwer3Q6XQIBoPo7u4W9G6fSstYKB" + "SCwWCAzWZDfX097HY7RkZGEAwGoVQq2XxmslMjHA7gwQeVeOSRdQiFZAAYYOnvgK" + "/fDCzS87btr+" + "3HXRvuyqndYi6RqJAmpBHQXMiX9MJC8NIFCpx0U0E6pMsVXUSONBeyGyKVnC63/" + "aurq4uXExQKyUS6NE1jaGgIo6OjrIlQKBRiL2Zi/" + "edyuaKKRdwcJellDYeBp56KsFts+cesbLflfd6+" + "W8tasfmYzTh7ydlZs1vMh0g31WNIxwgolr9BrOPIh0hXJN0CQyokSUaaj4yMoKmp" + "KaboQkhP3WTW4hrkdHR0pG1LmQwSFdIYhsHExARMJhPq6urYzyZye671H/" + "fGwNXVDw8Pw+324P33F+GJJ7phNh/" + "qZ64+MBvZ9r7CW7NCVYHr1l2Hjf0bUSTPbrN+" + "PpCuEC1j8YyAYvkbMAzD88ItLS2dtwkRsRCLdN1ud0aG+" + "vOBgibdVC6KZCrykSPNE1X/cxXpctu/mpubU27/" + "SgfxCmk2mw0DAwMoLS2NGopJjjUZkQrR1X/" + "6qRTbtqnwt78d+" + "ow1E8BxW4FVvwSkhz8PhVSJy5dfhhvW34AqdVWclYXHQiDdeIjlbxDphTs0NIRQK" + "MTODuQW7ebjs1kIXrpAgZMuIIxkNd5I80TIdqTLjShra2tTav/" + "KNEqLTC94PB4MDAyAYZiYo3oYhgFN0+" + "wsLe46Eokk6qIYH5dg2zYVnntODoaRzA6APPr+2R8lP09++" + "uLTsVG7EWV0GfSf6ZMSFQiBfGiZy7U4IpYXLsMw2LNnDyoqKuByuTA1NcVOE44cL" + "pptn4iF4KULLADSzQRzjTRPhGxGuqT9q6ysLKVjAlJ3P4sFciMLBoPQ6/" + "VwOp3o7u7mKa2Aw2RLCFqhUPAImPw/eW9uN4Of/" + "7wEDz+sgtcrAaQhYNUTwPFbowZArihfgYe++RBW1K3g7S+WqIDkJwkRZ+" + "p5QPY13xdzPhwDMHtOxSrakfTE5OQkDAZD1o2AYvku5MPnkyoKnnRTiXQlEglbiZ" + "2ZmYFer4darU7LDi4bpEvavxQKRUoyYi6EIF2GYeByubB3796YM+QiiVUikfB+" + "z933LOkCzz0nw7ZtKkxMSAEwQO/" + "Ls3nb6gHevvuq+" + "7D1a1tRMVXBI1wgvqiA5CddLhfreUDap7i9rPng2JUK8kEGHO8Y5sMIKBwO855AX" + "S5XyurPfEBhnYUZQqFQwGazwWw2Qy6XY+" + "nSpWkn4YVUbfl8PvYRvqurK6P2r0ymRzAMg7GxMZhMJgCIyh+" + "T98sdjz7XxbNrlxy33KLEZ58d2q71PeDkG6I6Eho1jbjlqFtwbs+5kEqk+" + "NjyMSiKSmofsfKTpH2KRMQkEisuLuZ1T8QrFOVLlDnfx5BKu1i2jYDC4TAvOCL98" + "oWGgifdZE9KEgkZjUYsWbIkL9zmA4EADAYDnE4nlEolVq9enfGa6TqEWa1WDAwMo" + "LKyEitWrMAXX3wRRbgklUAi20Sf/YEDEtx6qxJ/" + "+tOhC7ZmP3DSzUDP73nblavKcd2663DFyiugkqlgt9uh1+tRVVXF3jzI++" + "Hudy4ijtc+5fV64XK5eIUilUrFI+" + "KioqK8Id35hhA9ukIZAWXTYSyXKHjSnQvckeZlZWXo7Oycd8Il7V8WiwXt7e3o7e" + "3FP//" + "5T0HWTlVN5na7cfDgQchkMhx55JEoLi5GOBxm14jM285FthYLcM89CvzqV3JQlAQ" + "oG5k1Ej/yGZ6RuFKqxPdWfg/XH3U9FqkXwe/3Y/+B/" + "QiHw7wnEJLG4P4XmP0MyXGQgh35/3ggKQeuaTvJE5NIbGJiAn6/" + "nx09X1ZWhtLS0qzKbPMZ2UpxpGMERNIJ5EbgcDgKTgIMLGDS9fv9MBqNvJHmAwMD" + "gjqNpQpu/29LSwtPbCEUkiXdQCAAnU4Hj8eDnp4eXsRAUicURSVNtn4/8L//" + "K8f99yvgdEqAIhtwwnZg3c94HgkSSHDe0vOw+" + "djNaC1vRTgchl6vh9VqhVarjRJ7kM8nMk8MHE5zcMmYvCaVStm/" + "nYuISZ6Y28e6Z88eVFdXw+PxYHBwkCez5ars8kGplU3kUo2WyAjI4/" + "HAbrfDarVidHQUTz31FAwGA4qKivDGG2+" + "gv78fDQ0NaT2dDA8P46KLLsLk5CQkEgk2btyITZs2CfnWeCh40o38kIPBIEwmE6x" + "Wa1QRSGhPXdLPOhdxkvYvo9GIurq6tN2/" + "ksFcOV1ulK3VatHX1xezSEamTJBH9HhG7AwD/" + "Pa3MmzerMDQkBSQ+4CjHwG+dg+" + "gtvO2PWnxSbhzw504su5INn88ODiI5uZmrFmzJqUx39z/" + "AoeJmETl5KbBTROkkp6QSqWorKyMW7EfHx+H2+" + "3mCQq4LmALBfkgAZbL5SgvL4dCoUBPTw8UCgX6+/" + "vx8MMPY2BgAO+" + "99x4eeeQR7Ny5My2FplwuxwMPPICVK1fC5XJh1apVOPnkk7F06dIsvJsFQLoEXMU" + "WkaVGEnK25qQlusimp6eh0+lQUVGRcGRPsgQ+F2ZmlKiri87pMgyD0dFRluQio+" + "zIItnatWvhcrngdDoxPj4On8/" + "H81IoKyvDp59qcPPNSuzdKwOkYWDF08DxW4DyEd6+" + "V9StwLbjtuGEthMAzIosyGeyevVqQUxZ4kW18dITc+WJY+" + "V0Y1XsuYICq9WKwcFBhEKhjP0O8gX5QLoEXANzuVwOpVKJE044AZdeemlG6zY0NK" + "ChYXZ8U2lpKXp7ezE6OiqSbjyQOWnckebxiEtoI/" + "NEpOtwODAwMAClUsnmShOBRKjpki7DAM89J8VVVy3Bvfc68D//Q14/3ItcVVUVU/" + "gRq0gW65GbeCns3+/DT34ixV//qgbAAD2vAl+/" + "Baj9grdue3kHtm64A2f0nAGpRAqfz8eKLJYtW5ZWS1yqiJee4L7nWETMbYeba31S" + "ga+vrweQ2O+Am5oohDxxvjiMAdE3QpI6FBJmsxkff/" + "wx1q1bJ+" + "i6XBQ86RJLxERDKQkUCkXaFoqxEEtJ5vF4oNPpEA6H0dPTk3TRjkyiSCft4HQCV1" + "8tx4svzr7/" + "W2+" + "twMknh1BT48TBgwehUqli9iKnWiTzepV44IF6PPqofHZMTtu7wEk3AS38ImCFvAo" + "bey7DRcsuQlV5FULBEIaGhmCz2dDZ2Rklssg1EhFxMBiE0WhkxzFxv99UCnax/" + "A6CwSBLxFarFR6PhyVtbh9rLC+L+UI+" + "RbqRENrsxu1246yzzsJDDz2U1WJ7wZMuafFJBtlKLwD89q+urq6UfXbTHXu+" + "d68EF12kgMl0mCw9HinOPjuMn/98AEuXRts+pkq2oRDwy1/" + "Kce+9CszMSIC6T2Yj2+43eNuVyEvxo6Ouwf/0/" + "w+YAAOnc5b0XS4XlEolKisr4Xa7WaLJJ7GCRCLB+" + "Pg4hoaG0NbWht7e3qiUSyYFO2DWjjGydYrkiUlETPLEarUawWAQMzMzKQ2zFBr5Y" + "mAe6yYkZMtYKBTCWWedhQsuuABnnnmmIGvGQ/" + "6c9WkiV566sSCTyRAMBqHT6TA1NRVTvZXKWqn019I08NOfyrBliwzhMH9/" + "SiWFiy4KYt26VZBKk1eSRWJ2TI4Mt92mgF4vBSqNwJmbgSOe543IUUiUuHzlZbjh" + "qBtQUzwb2Vm9VoyPj6OqqgorV66EVCrlkYvL5QJN02w3AGnNmg9yIamg8vJyrFmz" + "hr0ZxIpquQW7SJlzuv3EsfLEXINy0sPKzRMTo/" + "hs54kpipo3wuciFvkLFekyDINLL70Uvb29uPbaazNeby4UPOmmAiFJl6Zptord0d" + "GRcftXKqQ7MQFccokCf/1r9P46O7146CELTjqpgfd6ZDV/" + "rmP9+GMJbr5ZiffekwGaceAbdwGrHgdkhz8/" + "0v51+" + "7G3o628DcDh9IpUKsXy5ct5KQ3SCUEGCZIiFDFSMRqNCIVCrGqMEHGmUyjiIRAIQ" + "K/" + "XIxAIoLe3Nyl1YjoFOxIRp9I5oVarUVRUhK6uLgDReeKxsTEEAgEoFAoeEQvtAJY" + "v6YVYqTehRvX84x//wK9//WscccQR6O/" + "vBwDcc889+MY3vpHx2rFQ8KSb6zlpDMNgfHwcJpMJKpUKWq0WLS0tGa0JJE+6f/" + "mLBJdeqsDUVPT73rgxhE2bJiGTBXnHm0oqYWREgjvuUOCFF+SzvbZf/" + "wmwbgeg5OfCT1v877jz+" + "C3oq5kdChgKhWA0GuFwONDV1ZVUBMItQpHqMdHvO51OVjUWCARQVFTEI+" + "JMugFIvzS5YdbU1GRMVOkU7MjfxSLiSOPwRHliEhVPT0/D5/" + "NBIpHwiDiRQflcyGfSdblcgpDusccem9McesGTLpC86U0mkS63C4C0f1kslpwZmQ" + "eDwObNMjz0UPRXVllJ4/HHKZx+Oo3xcQl8PjplsnW5gAcfVOBnP5PDT/" + "mAY+8HjvlxVK/tmtpjcO/Xt2J983oAh/" + "1+R0dH0dbWFrNVLxVw9fvcboBAIACn0wmXy4XR0VH4/X4olUqWhJON8qxWK/" + "R6Paqrq7FmzZqsEspcRBzLiY1hGLaomgxije0hYgLyWXENyrly52TSBvmS041Fuv" + "lybKliQZBuskj38Z/k/FQqFa/9i+R0hUAi0jUYgIsuUmDfvujj/" + "9rXaDz1VAjNzbP/" + "nh19E2Yv2rnINhwGdu6UYds2JSzWELDyUWDDNqB0grddd9lybD/" + "5DpzSfgq73vT0NAwGA+tBnK0LgNvCxjVSIfJdIhn1er2Qy+" + "UsEZeVlbFtWaRdDUBU2iOXSEZhR1EUxsbGoFAoEAqFUi7YETFBrH5il8uF6elpXp" + "6Y28YWmSfOl5axeAbmv6hIogAAIABJREFUhYgFQbpCGJnHAslPUhSFJUuWRNnICZ" + "kjjmdU8+KLUlx1lRwulyRiewa33UbhxhspyGSH0whqtRpGoxFTU1NzFqn+" + "8hcpbrlFiS8PMMDyncD5dwCVZt42DUot7j3ldpy15Cx2Hpnb7eb1ICfbPSI04o0D" + "IqIOk8kEj8eDYDAImqbZJvhs5YjTBZdMZ2ZmMDAwgPr6ejQfupMKUbCLl8rx+/" + "1wuVw8K0buePdAIJA3pMu9UZHrvRAFJwuCdIUGKbC43W50dXXF7SsVcnqEXC6PmN" + "YAXHONHDt3RkePLS0MnnkmhKOPnj3xuEWy4uJirF27lo1snE4nLBYLz9pwfLwGDz" + "3UhHffU8762l65Gaj5krePCmkT7jjxRly8/" + "CIoZLNkTXpYXS6X4BOIhQJxtKqsrGSLc62trSgrK+PMZXMDADQaDS89MZ+" + "PqoFAAAMDA6AoCkceeWTcSFzIgh03T8x9guAOFPV4PPjss894gywzzROng0gvXbf" + "bXZBeusBXkHRJRBnrhAmHwzCZTGz719KlSxPeSYWOdEmR77PPJLjgAjkGBqIvmv/" + "4DwqPPhpGZWXiIhk3smlsbAQAjI8DmzdL8MKLKjDaPwEbbwMaPuatr2YW4Yajf4S" + "r1m2EWjF74ZPC09jYGNrb29HT05PXEQaJxFUqFVauXMkqBuP1x46NjcHtdoOmaV4" + "BKhctbAzDsJ+tVqvlFcliIZk8cSoFu1jg5omtViv6+/" + "vBMEzMQZbEE5dExtn6vIjtI4HD4Zh3t8B0sSBIN51e3ciTlowTb21tTbr9i6iWhM" + "Bs8YTC449Lcf31cgQC/PekUjH4yU/" + "CuPxyGgADikq+SObxADt2yPHTnyrgrd0FXHwb0Lqb/16oUpzX+l/" + "4z45vQskoMfDF7ABKMj+uoaEhq3lbIUA6KMh4oUSReLz+" + "WFKAIk8H4XA4Kk0jlKGNw+" + "HAwYMHUVVVlVFRL5OC3VwKOyJNl0gkqKio4IkRuJ64U1NTMJlMrNE49+" + "alVCozvkmT74GgUG0dgQVCuqmAtI2pVCpe+" + "1d9fX1SUmIuUqkyzwW3W45Nmxrx179GRwpLltD49a/" + "DWLaMjhvZxgJFAc8+K8OddyowofgncM7tQPs7vG2klBrndVyB7af/" + "EIvUsxVwhmEwNTUFvV4PYPYzm5iYgNPpZMmnrKwsb9y0yPc4ODiI1tbWtDsouB6v" + "5OmAGJ87nU5WqBAMBqFWq6N6iZPdZygUgl6vh9frRV9fH49MhEKigh3XiS2W70Rk" + "wS7e++J+XpEtf5Eje5RKJS8iTrWfODK9UKhTI4AFQrrp9OoSUqmsrEzo/" + "jXXWpmSbpgO4+LnbsZbz6yG/e8XRf3+u9+l8MADIajVNCgqOSUZALz11myRbL/" + "9Q+CkzUDnn3m/l1BKnFpzKR4590doKD0spCByZp/" + "Ph2XLlrGPcJH9s4ODgyz5cLsFcl2kIp0lZWVlgjmWccE1Po8sQDmdTjgcDgwPDyM" + "QCLATKMjnETmpmHtzWLx4MZYsWZLTNE0iYQc3IiYEHAwGQVEUaxifbJ441sgerjk" + "5mShMzMm5vhPx1o98Oi3UqRHAAiHdVEDTNL744guUlZWlNZCSi3T9Eggsrmls2HE" + "hzPJdwHFqwLAMGF8JANBoGDzySBjf+Q51yEw8OSXZ/v2zY3Le/" + "PwT4Pg7osbjgJbhKNV38ctLbkDHosOiDoqiMDQ0hMnJyZiCgXj9s4R87HY7hoaGE" + "AwGUVRUxEbDqXhjpAIiv/b7/" + "UmryYQCtwBVV1fHvs7tJSZ2mAqFAmVlZVAoFLBYLFm7OWQCbjsaAUmvtLa2srajQ" + "HoFO+" + "Bwp0lkPzEh4sg8MbefmAQ3C2FUDwBI5mi1KohmOHI3TgS32w2dTge3243m5ma0t7" + "cLsu/du3fj6KOPTulvGIbBHz74By78w0b4S4yHf7H3CuAPP0d/P41f/" + "zqEjo7kJzeMjwN33aXEM3/+HMyGrUDvK/" + "wNaCmWUufjlxfeiP5WLe9YLBYLm2JpbW3NqEWIS8SkdStSUUYi4nSiPCLGIEW92t" + "ravC7qkf5gp9OJ4uJihEIhyGQyni+" + "xECPjhUIgEMDBgwcBAD09Pbwnl3gFOy5SKdjFAjevTgiZoij4/" + "X40NzezT14vvfQSKisrsXHjxrT2kwPEPSkXRKSbeIyMHwaDgW3/" + "crlc81oMslqtuOuF/4dfWG8BU+I8/Iu/" + "3Q7sugNXXhnGXXcFoVDQoOm5ydbtBnbsUODB5/" + "bDv24b8L2Xo7ZpdZ6LR79zM45f1s173eFwQKfToaSkhFflzwSxokCuoszpdGJkZI" + "R9HI+MiBO915mZGeh0upyoyTIFyYsbDAa0tLRg+" + "fLlvAGL5IY0ODjIc14jRJzrUUBkksfQ0BA6OztjdlFks2DH3Ues2WkffPABSkpK4" + "HA4sHXrVuzbtw9VVVUwmUxYvXo1zjrrrLTf+5/" + "+9Cds2rQJFEXhsssuw0033ZT2WslgQUS6NE1HeSqEQiGYTCZMT09Dq9WyERExCsl" + "1pOt2u/" + "Hllwdxyytv4b2SrYeHNAaLgVeeRvno2bjuuv246qoW9iRNRkm25dEvMHPENqD3/" + "0Vts2jyLDz4rZtx9oZe3ut+vx96vR7BYBBdXV3z0u8YKe11Op3w+/" + "28vCgZE+T3+6HT6cAwDLq7u+" + "dNTZYsvF4vDh48CIVCge7u7qRuZqSFjXwexOKxpKSE10ucDTtMj8eDAwcOoKSkBJ" + "2dnRnvI1bBLpJnUhF2ALMz69auXcv++5ZbbsHRRx+" + "N8vJymM1mXHnllWkdK0VR6O7uxptvvsmOjXrhhReEmBrx1Yl0SW5ybGwMbW1tUe1" + "fcrkcHo9H0P0nmvhABkAOjXhw9RsvYqTx0cO/" + "dDQDL7yGta3L8dRuL3y+" + "AD766CMA4BVkSktL2fUZBvjzn6X40QOfw9xyN3DuK1H71Az/" + "BzYfdwuuvK4PXN6mKApmsxlTU1PsEMj5ejRPJO0lEfHY2BicTicoikJ1dTXq6+" + "uTnugwH6Bpmv18u7u7U7IdTNTC5nQ6MTk5Cb1ezwpcuOdGuk8o3ONdsmSJYC1YQo" + "9OigWn0wmtVssj4nSwZ88edHZ2oqOjAwBw3nnn4dVXX83aqB5ggZAucPjxyGw2o6" + "GhIW77VzaMzGPp07kDIMetbbj0jTvgb3v98AYja4EXX8WmS6uwZYsPSqUEEslsRM" + "qNekZGRuB2uyGRSDA8XIsfPzuF/dU/AU75Q9SxKA1n4Oojb8ZtD/" + "SBW6chgzHNZjOampqwdu3avMkhRoLIesnj+" + "eLFi1FbW8vz4uXOayMRcWSnQK5htVqh0+lQX1+" + "f0pDNRIj3qE1yntPT0zCZTDw7zGS7SOx2Ow4ePIja2lrBjncupDs6KRaE8tIdHR3" + "luQQ2Nzfjgw8+yHjdRFgQpEvTNN5//" + "322yTzRnT8bRuZco2fuAMimpma89X4X7jGfAbR9ePiP9p+Dyl1P47FfSfBv/" + "xaMSiVERj1mM3DlfbvxN3oTcPRbUccgPXAGzmu6Dj/" + "ZvhwVFfyLx263Q6fTobS0NO+" + "q5rHg8XjYEUMrVqxgySOWpSF5FCdmN6RTgGt2k20iJoUnhmHQ39+" + "fdR8KYtsYyw7T5XLBbrezLWyx7DApioJer4fH48ERRxyRkzl1iTAXEVMUhcHBQaj" + "Val4KcXJysmC7FxYE6cpksqQJJVvDKQGwvb9VVVXo6lqLi68Zx1+bjgcaDYf/" + "4L2bsMZ1J3a+G0RLCwOJJH6EYbUy+P6Ot/C6/" + "T4w7XwFGRgJsP8cnKK+" + "FjdtrEJJiQ0HDuyBVCplc6EzMzMAgKVLl2alAV9IhMNhGI1G2O129PT0zPmoq1Qq" + "UV1dzTO7IZ4BxG+" + "CEDGXeEpKSgQhYm4XRTLy3WyC284Xq3hJWrLcbjdCoRAqKirQ2NiYt6kaQsQk11x" + "TUwOtVgupVAq/" + "348HH3wQw8PDgvSENzU1YXh4mP33yMgIa7KfLSwI0gVmL8JknMYUCoXgka7T6cSB" + "AwegVCrR39+PL78sxmnfPYDxr5962CKRlgJv/" + "C+uPvoSbN0ahFKZoCPBG8ZVv3gFv514AHTNpwC3zkXLgM/" + "+E+uCN+" + "Ch27RYvpy859kThRSdLBYLiouLEQ6H2b5k8pOLCDBZRKrJurq60j62WN6yoVCIJR" + "5uUz43Ik6ViIWS72YT3Jx5eXk5Dhw4gIqKCrS3t7POYuTGxLXDJDem+Uw/" + "0TQNo9EIm82GpUuXsj3Y//" + "rXv7Bp0yZ861vfgslkEuSpbc2aNdDpdDCZTGhqasKLL76I559/" + "PuN1E2HBkG6yEDK94Pf7Ybfb4XQ60dfXh7KycjzxhBTX/ORfCJ9/" + "KqC2zW4YKkLJn17AUzeehn//9zDiFTadfg+u2fkc/" + "m9kB6hSM8ANnigF8K+L0WW5Hvff0oKTTpr1YCDgtvw0Nzejr6+" + "PvXC4docGgwEej4e90OaTiMngymwKBhQKRUwiJp+H0WhkiTgyIo4knlAoBJ1OB5/" + "PlzX5rpAgqa6RkRF0dnayTwUajSamHabL5YLZbGanFHNzxInUYkLC4XDgwIEDqKu" + "rw+rVqyGRSBAIBHDfffdh165dePLJJ7F8+XLB9ieXy/HII4/" + "g1FNPBUVRuOSSS9DX1yfY+rGwIFrGgNkTJ1l1WDqCBi7Io/" + "D09DRKSkpQV1eHsrJ6XHWVHM+98zFw0UlAkWN2Y38Zuve9ild2rENbW+" + "yPc8I9gRt/9zj+3/AvQalm+L8MFgP7NqLedA22/qgO558/65/" + "Lhc1mg06nYyOZZMiLRIDkh5sTzXZxKhgMQq/Xw+fzoaenJ6dqsnjgEo/" + "T6WSJhxBOIBBg1Xp1dXV586QQD263GwcOHEBZWRm0Wm3K0ThFUbzPg2uHyb05CRX" + "lUxTFjnvq7e1lb2gff/" + "wxNm3ahDPPPBPXX3993tckOIh7goikmwJIHm94eBitra1oamrC4OAgxsdLcPXVTf" + "h88kvgvzcAxYeI01uFMz1v4IltRyBW+unjyY9x118exZ/" + "HXgIjjcgzexcBe36A0i9/" + "gOuuLMP3vx9GZHuq1+" + "uFTqcDAHR1dWVcFCHFKfJDugS4RJzpbDIy2qejoyPv1WThcBiTk5MwmUxsG1Okmi" + "xXEWCyoGkaJpMJVqsVS5YsEdT+kAxjJekaoSY62+12HDhwAI2NjWhpaWGj2+3bt+" + "Pvf/87HnvsMSxbtkyw95EjLHzSDYfDSdss7t69G+vXr0/" + "6gue6btXU1KC9vZ1tIH/6aSuuv74OLsYCXL4OKD+UlPdV4U7tn/CjC/iPKoFwAK/" + "qXsWO3Y/jXzP/jN6ZrR3457WQf34x/" + "ucSFW64IQTOkzGAw8IPu92Ozs7OuCbrQoDbN+tyueDz+XhKsmQlvVw12eLFi/" + "MyD8oFeZpxOBy8qSHEL4B8Jlw1Gfk85ouIbTYbDh48KIicO1lwzfJJVBwOh3m9xP" + "Ec6UgnhdvtRm9vLxs07Nu3Dz/84Q9xzjnn4LrrrsuKICQHEEmXi/fffz/" + "pAggpmhQXF6Ozs5NtCaIoYNs2GbZvlwMSCrj4BKDtPQCANKTBMyf+" + "EWcetZJd56D1IHZ+thM7P30WM4Hp6B0Nrwd2/" + "wg4+G2cezawZUsIixfzP36apjE2NsZG2v+/" + "vTMPjqrO+v63k3SThpDOQiBJJxCS3pIAko3FR4TREV7QUh+" + "FkYcBAclQLkAckGIJg4g+gIgiM8yIjAwzjoPgVFkgQoG+" + "ULgwpBMCEcjSnRWSELL3kqX3+/" + "6R93e53emQtfveJvdTRZUoJieXvt977vmd8z3R0dGsZIrkIIYID5kkc82IyZ/" + "VarU+M01GvCgqKioQGxsLqVTa6zUmr+LMaTIA3TJiTz1oSK2ZmP+" + "wfY2JHSazPME0QiI+zRUVFYiJiUFMTAwEAgFMJhN2796NK1eu4NNPP/" + "V4bdXD8KLL5OrVq5g8efIDW07Iq7vVaoVSqXRqUG9tBZYvD8B33/3/" + "myjjz8DTa7r+mfLD3399DAtTnkFdWx1Oak/" + "iRPEJXK272v2b2AOAwt8A6iygdhp+9Ss73n3XgpSU7pedbLENDw9HXFwcp57+" + "rt4KRIgpioLNZqPFi2u7yVwh47sikQhyuXxQXhTMARfXmigzIx6MEDMfEHFxcYiM" + "jORsuYYYIen1ety+fZt2YBOLxTh+/" + "DhCQ0Px9ddfY9myZb6c3TJ5+" + "EW3L05jhIKCAshkMrcHOFarFeXl5WhtbYVcLnc65QWAoiIBFi4MQEUF49VtrRwI7" + "zL8jguKw3+N+S/kNeVB26Z1H4A+Fsj/" + "HXDtd0BbJKZMceC99yx48snuNen29nZotVr4+/" + "tDLpeznsX0BtPoZcyYMRg9erRTtkP8d7lkhE7Go5uamvo9vtvf7+" + "NaEwUGdjhlMplQUlICoVA46AeEtyBLN2NiYug3CJ1Oh82bN6OoqAhhYWFoaGjAjB" + "kzcOjQIbbDHSy86DIpLCyEVCrttnqErOyJi4tz++r+" + "zTcCvPKKEG1tzH9PAduFgF8vWbZdCGifAa6tAsr+" + "D0D5Iy7Oju3brVi0yAHX8htZPaPX66FQKHxi+oZMk5FM0TWzZdo+kl8Wi4Wu/" + "w31Opy+wBzf9VYdlAnzcIpkxGRXG/OaECFm7lSTy+VOrXBcxWazOZU/" + "SOlJrVbjrbfewpIlS5CVlUVntyaTibUN00PIwy+67pzGekKj0SA8PJye8a+" + "vr0dFRQXGjRvn9pDH4aDw/vt+eOed7mIwbZodwaufx/" + "+t+bbbf4M9ALg9GyhcBBQtBDq7bpAxY+" + "xYvfoefv3rKjgcJrrWJZFIEBQUhIaGBlr8ufzKSGBOk/" + "X3AcHcSEF+" + "ES8BZkY81K1CzFqzUqnk1E3eU5fAiBEj0NbWhpCQECgUCs6Xa4Cuh5pWq8WECRMQ" + "FRUFgUCAzs5OvPfee7h27RoOHz4MpVLJdpiegBddJuXl5Rg1ahRGjBgBrbZrAWNC" + "QoLbzKyjw4HXXhPiq6+63/" + "QrVtjw0UcW2ATtOJD3R5wtuI5SjQhttxVAzQyg8leA+f44a3Awhd//" + "3orXX7eBVDaYta76+no0NzfT3gshISG06HCxxsWcJuvroVNfvy45ESe/" + "yGJCphAP5JqQzcZ1dXVOAwNchvSwNjc3IyIigu6xJu1azC4BrnxOrFYrtFotrFYr" + "VCoV/VC7cuUKNm7ciGXLlmHdunWc72IZBA+/6FIUBYvF0qc/" + "S8ZkxWIxFApFt9oumUmvr3fgpZcCkZvr/MEICKDwwQdW/O53NlAUcPq0P/" + "73f4UoLHT/ahoYSOHVV21Yv757+xdwf2W4SCSCTCbDiBEjaNHR6/" + "W0e35Pr5xsQKbJyAPLG6vKic0hyQDtdruTEPfmN6vT6aDVaunDSF+" + "44UkdlNnDSmBuWWBeE9dyjbcHCkh7JfNNraOjAzt37sSNGzdw+PBhKBSK3r+" + "Qb8OLLnB/" + "EqqpqQnh4eFuW1LIYr7ycuCFF8QoL3cW0rAwCl98YcasWQ6cPu2P3buFuHnTvdgK" + "hRRWrLBh0yYboqK6X0qLxUJvtehtZTi5wfR6PX2DAfd9d73VH8qcJlMoFKwYoBNc" + "RYdkf64PJ9IPajKZoFQqOT++" + "C9zPFC0WC1QqVZ8PUJkPJ3JdXD14PVGuITFrNBrY7XaoVCp64zbJbleuXIk33njD" + "Jx52Q8DwFl1iD1dXV4eJEyfSJjVyudzp/yd+nr/84of//" + "m8xGhudr5tS6cCJE2YUFPhh714hiorcC5yfH4UlS+zYsqV7ry1w/" + "9COxDPQsVJyGk6EmDTqM1/Bh9JVi8zxDyZmT8M0/" + "tbr9WhpaYHZbIZEIsHYsWM58ZbwIJjex0M1tcf04CVi7Fo3H+" + "wBJllkyfxstLe345133kFRUREOHz4MmUw2qJ/" + "Dx3j4RRfomp5iQmqOlZWViI6Oxvjx4+Hv74+WlhbU19cjMTHRSWwBID/" + "fH889Fwi93vmazZhhxzPP2HH0aEC37JcgEFB48UU7srOtUCi6XzrSTkUO7Ug8Q4n" + "NZuvmqeBqbtNfTwUyTRYeHk4/" + "tLiO0WikvQeIsxazNAGgW0bM9jhvZ2cnSkpKMGLECMjlco+" + "WBZh1cyLGTDP0vrb0WSwW2k9YpVLRbn8///" + "wzNm3ahMzMTLz22ms+" + "8ZkZYoaH6FosFtrekbQCSSQSJCQkOH14jEYjKisrkZyc7LRt98YNP8yf311wga6y" + "QkuL++" + "tIxHbzZisSE91fMqPRCK1Wi8DAQLpu6y3ceSr0NEHGhJzwOxwOKBQK1g2v+" + "4LNZkN5eTkMBoPT+K4rPQ0veLtcAzgf7imVSo/" + "1CfeGayeJ0Wh06q123UpBun7IDkKg63zi7bffhlarxeHDh5GQkPCgb/" + "kwM3xE12g0QqPRwN/f361QkA9Wfn4+JkyYAIlEglGjRqGxUYBHHw1EXV3fbzI/" + "vy6x3bSpZ7E1m810PZHtGigT135Zs9lM31xBQUEwGAxoamrymRN+" + "5nTWQEekXcd5jUYjbXHILNcMpRATL2auHu4xt1IwPytWqxUikQhxcXEQiUQICwvD" + "Tz/" + "9hM2bN2P16tV49dVXWX9zYJnhIbo3b95Ea2trj1NF5JCMoii65qfX69HR0YEPP0z" + "C2bORffo+AQFdNdv1662Qy91fIrIgk9gBRkREcLIGSiCta6TxPiAgAP7+/" + "kPSpuVpOjo6nF7Lh3K4ginE7urmAzX97jqsLaetDLlgb9kbpN5cWVmJ8ePHQygUw" + "mAwYOfOncjNzYXJZMKSJUvw5JNP4umnn+bcA8TLDA/" + "R1el0bq0HXeu27tabS6WB0OkefOMEBXV1I6xda0NMjPtLQ4YtKisrERUVxcqU00A" + "g48ZCoZA29nFt03LtDiDDHGzdXMzxXaVS6bWpPZvN5iTE7e3tTibovR1gktKXVCq" + "lzV64jtlsRnFxMb1WXigUgqIo/PDDD9iyZQteffVVzJ8/H9evX8eNGzewfft2n/" + "i5PMjwEF1XT92+iC1hxozAHlu/" + "YmLMeO65asydW4vISHGPgqPX66HVahEUFNStjsxVbDYbKisr6TeE3oTLdWzVtXWN" + "lGs8/aBpampCWVkZoqKiEBsby/" + "qDjbmNghxgkrVAzLeE0tJS2O12zk3B9QRzAIbpRWI0GrFt2zbcuXMHhw8fxoQJE7" + "wa1/79+/HZZ59BIBBg8uTJOHr0KNeu5/" + "AQXeI01h+xJVy86IelS0fQh2ihoRQWLLDjf/" + "7Hhtmzu7wR3PXKkqWAHR0dAIDExETO1G0fBLM1abDTZO5ewUnmJ5FIhnQdkMlkgk" + "ajgUAggEKh4NqN5gRzO0dDQwPa2togFosxZswYzqyOfxAmkwnFxcUYMWIEFAoFAg" + "ICQFEULl26hK1bt2LNmjVYtWqV1x94tbW1eOyxx1BUVASxWIzf/" + "OY3WLBgAVasWOHVOHqhx79U7hXoBgFTbMmW075+" + "oJ94woFbtzpRVOSH0FAKKhXVbS0Oc28UcH88s76+" + "HqGhobDb7SgsLERAQAAtNhKJpE8m397EYDDQGflQ7Cbz9/" + "dHSEiIU5bMbF0je9mEQiF9Xfq7hcIXx3eJdeHt27cRHByM1NRUUBRFP6DI6vih3M" + "4xFJB9e9XV1U6mOgaDAdu2bUNtbS1Onz6N8ePHsxajzWaj7SE7OjoQHR3NWiz95a" + "HKdDdu3EgLSVpaGkaPHu2RDy8zSyR1OebTnrRokYyYuCZJJBJadNjY9UQm4Nrb27" + "t5BHvr+xMh1uv1Tubn5Lq4a6XT6XTQaDQ+" + "s3UCuD8AU19f32u92dNrkvpDZ2cniouLadN+" + "kt1evHgR2dnZyMrKwsqVK1kv5xw4cADZ2dkQi8WYO3cu/" + "vWvf7EajxuGR3lBo9EgJycHarUa165dg8ViwaRJk5CWloaMjAwkJycPWux0Oh1KS" + "0sRHByM+" + "Pj4Pn09pqUhEWJi4ELExpNTUhRFoaamhnPTZK7m53q9nu4LlUgkEIvFaGxspE1Tf" + "KFPGLi/" + "bYQ8JAYiUO5M4QeyJqmvkM9IbW0tFAoFvQJKr9dj69ataGhowKFDhxAbGzsk328w" + "tLa24sUXX8SJEycQEhKCRYsWYeHChVi6dCnboTEZHqLrislkQkFBAXJycpCXl4fC" + "wkKMHDkSaWlpSE9PR3p6OiZMmNCnm6Kzs5M+" + "BFEoFIOe3yedAaRtjXkgRTLioRjhJZuCw8LCfGKajExKVVVVobGxESKRCAKBoNsD" + "iouta2Qwo62tDSqVasg9Htz1VhNbUKYQ95fOzk4UFRUhKCgIMpkM/v7+oCgK33//" + "PbZv347169fj5ZdfZj27Jfz73//GuXPncOTIEQDA559/" + "jpycHPzlL39hOTInhqfoukJRFFpaWpCXl0cL8e3btxETE4OMjAxajENDQ2mxs9ls" + "qKqqQnNzM2QymUdNo5kHUnq9Hu3t7fQILxGcvr5mmkwmlJaWwmazQalU+" + "kyWSMZ3JRIJ4uPj6ddbpp8C8ZdltmixPcZLtmXExsZ6bXeduzVJ/" + "RFipiG6SqWiSyA6nQ5btmxBS0sLDh06BKlU6vGfpT+" + "o1Wq88soryMvLg1gsxooVK5Ceno61a9eyHRoTXnR7wuFwoKqqCmq1Gmq1GlevXoX" + "RaIRSqYRQKERVVRXdEsPGTU1OwElGzKwPu5uPdzgcuH37Nurr65GQkICIiAivxzw" + "Q+jq+" + "SyCta0yzH4FA4NHpMXeYzWZoNBoAgFKpZN1YvKftHK5rkqxWK4qLixEcHIyEhAQ6" + "uz1//jx27NiBt956C0uXLuVMduvK22+/jRMnTiAgIAApKSn47LPPWL/" + "2LvCi2x9yc3ORmZmJyMhIREZG4tatWwgICEBqaipSU1ORnp4OuVzOyqu6602l1+" + "vp+" + "rCfnx9aW1sRFRWFiRMncvaGYcIcJhnshmN3bwquvbJD1bpGTvjv3LkDmUzG6Yebq" + "6dCQ0MD7bwWFhaGwsJCJCYm4oMPPoDBYMAnn3ziU90AHIUX3f5QWloKPz8/" + "2qyDtPlcvXoVarUaubm5KCsrw9ixY53qw2wdULVNCc3jAAAQKElEQVS1taG4uBgO" + "hwMjR45EZ2cnKIpy6pP1RtbXX8hONWIC5IlhEjK0QDLioWjRam9vR0lJCT0Ew8X6" + "sjva29tRVFSE0NBQ2nmtqakJmzdvRn5+Pvz9/" + "TF9+" + "nTMmzcPq1atYjtcX4cX3aGGZDqkLJGbm4umpibI5XK6ZS01NXXIMit3MKfJ5HK5k" + "99ET1kfs3+" + "YrX5Qu92OyspKNDc3e3V8l2CxWGgRZrb0ERGWSCRuHwCkFNXY2AiVSvVA03kuwWx" + "fS0xMRHBwMIAuy85Nmzahs7MTf/" + "7znzFu3DhotVrU19dj9uzZHo1Jp9MhMzMTt27dgkAgwN/+9jfMnDnTo9/Ty/" + "Ci6w3sdjuKi4uhVquRl5eHa9euwW63Y8qUKXQ2nJiYOOjMiNknHBMT0+" + "f5fWZ9mPSDMpdiemMlOhnfjY6O7tbfzBbkQIopxK5biimKQnl5OcaOHctafX8gtL" + "W1oaioiPZC9vPzA0VROHPmDN59911s3boVixcv9vrDd/" + "ny5Zg1axYyMzNhsVjQ0dHhExuv+wEvumzAtJHMzc2FWq2mT+" + "ZJ73B6ejqkUmmfb2JiXTlq1KhB+zu4ExtiZM08qBuK2rUvje8C91vXdDod7ty5Q/" + "fJMj0muLyBgmTlTU1NTqPpzc3N2LhxI2w2G53dehu9Xo+pU6eioqKCE/" + "3iHoIXXa5AURSampqcyhJk3TrJhlNTUyGRSJw+" + "kFarFWVlZR6fJnPXnkXqwwMxtCGvtvfu3XMaKfUFyAoasj7c3XJMiqK6ua6xnQUb" + "jUYUFxc7DWdQFIVvvvkGu3btQnZ2Nl566SXWBK+" + "goACrV69GUlISfvnlF6SlpeHAgQM+sbuuH/" + "Ciy2UcDgfKyspoEc7Pz0dHRweSk5ORmpqK6upq+Pv74/" + "XXX6e3q3o7PuZhFDG0YZYl3Bm3tLa2QqvVIiIiAhMmTOBsVugKycqJEf6D3ibItW" + "Ga/" + "ZDWNeYhpjf+" + "zhwOByorK9HS0uLk0dvU1IQNGzZAIBDg4MGD9JYHtrh69SpmzJiBy5cvY/" + "r06cjKykJwcDDeffddVuMaYnjR9TUsFgv+8Y9/" + "YNeuXYiIiIDD4YBQKERKSgqdEcfHx7OWVTEdtPR6Pb0CSCKRYOTIkWhsbKQtDH1l" + "MIM5CjuYrLwnv93eHlKDwWAwoLi4mN69R7LbkydPYs+ePfjDH/6ARYsWceJ1/" + "t69e5gxYwaqqqoAAD/" + "99BP27NmDM2fOsBvY0DI8XMYeJkQiEYRCIb777jvI5XJQFAWdToe8vDyo1WqcPHk" + "SFRUVkEqlSE1NpSfqxowZ45UbSygUIjw83EmYOjs7UVVVherqarpRvayszKkGytX" + "2qra2NnqRZUZGxqCy8oCAAISGhjp1kzAfUkx3MWbtfCBeCg6HAxUVFWhtbcWkSZP" + "oV/" + "SGhgZs2LABQqEQFy9e5FQfcWRkJGJjY6HRaKBUKnHhwgUkJSWxHZbX4DNdH4bYHe" + "bk5CA3Nxd5eXnQ6XRQKpX0Qd0jjzziFc9Wg8EAjUbTbXy3o6PD6aCO1ECJ2LBdAy" + "Wv5M3NzVCpVHQ7lTdwNfthjvD2pZtEr9ejpKQEkZGRGD9+PAQCASiKwtdff429e/" + "dix44deOGFFziR3bpSUFBAdy7Ex8fj6NGjrC3k9BB8eWG4YLPZUFhYSHtLFBQUQC" + "AQYOrUqfQgh1KpHLL6qs1mQ1lZGW3y0tuuL2YNVK/" + "XO9WHidh4y9i7tbUVGo2GM9snehrhde0mEQgE9Mh0UlISXb6pr6/" + "Hhg0bIBaLceDAAZ/wHH6I4UV3uEJRFNra2pCfn0/" + "3D2u1WoSHhyMtLQ1paWmYNm1avw/omOO75HR/" + "oELpbmqsLz67A8VqtaK0tBQmkwmJiYkQi8VD9rWHGvK2QES4paUFHR0dCAoKQmRk" + "JFpbWxEfH4/z589j37592LlzJ55//" + "nlOZrfDDF50ee5Dhityc3PpjPjevXuQyWR0WSIlJQVBQUFub14yBisWiyGXyz1iy" + "O7qL+Eu4+tvfZi5pj0uLo6VTpCBYrfb6TeKxMRE2O12GAwGvP/" + "++7hw4QKMRiPmz5+PWbNmYdmyZZx+kAwTeNHleTB2ux1arZauD1+/" + "fh0WiwWTJ0+mhXj8+PE4ceIEUlNT+7TEcihhZnykf9hutzv1Dz+" + "oPkz2fYlEInqbra/" + "Q0tICrVaLmJgYepedw+HAV199hf379+" + "O9997D3LlzcePGDeTl5WH16tVeWYpqt9vp4Z5vv/3W49/" + "Px+" + "BF15Vz584hKysLdrsdmZmZ2Lx5M9shcQ6TyYTr168jJycHp06dQkFBAaZMmYKUlB" + "S6PszminlXe0ej0dhtIaZYLEZNTQ3u3r3rtBHBFyD18o6ODqcyyL1795CVlYWwsD" + "Ds37+ftZ/po48+wtWrV2EwGHjR7Q7fMsbEbrfjjTfewPfff08bmD/" + "77LPDqm2lLwQGBmLmzJkwm83Iy8vDsWPHIBKJaBP448eP486dOxg/" + "fjxt8pOWluZkAu9J/" + "Pz86FIDgbkQs6SkBDqdDiKRCOPGjYPNZoPZbOaa76pbmpubUVpaitjYWCiVSjq7P" + "X78OP74xz9i165dePrpp1krj9TU1ODMmTPIzs7GRx99xEoMvsqwFN3c3FzIZDLEx" + "8cDABYvXoxTp07xotsDc+bMwZw5c+jfz58/H/" + "Pnzwdwv+" + "VKrVbj4sWL2Lt3L9ra2pCUlERnw1OmTPGa1wLZxNzc3AyHw4Fp06ZBJBLRZYmamh" + "qYzWbazIZkxFzpH7bZbNBqtTCbzZg6dSp93erq6pCVlYWIiAj88MMPrLdXvfnmm9" + "i7dy+9Zoqn73Djk+ZlamtrnRbsxcTEQK1WsxiR70J8hxMSErBkyRIAXdN0N2/" + "ehFqtxtGjR3Hz5k16mo7Uh2UymUfKEqT+" + "GR0djfT0dDoTjIiIoAcEmPVhsmaHWR9ma/" + "1PU1MTSktLnbpBHA4Hjh07hoMHD2L37t1YsGAB64d/" + "3377Le0lfenSJVZj8UWGpejyeBaRSESXGl5//XVQFAWDwUCbwO/" + "YsQPl5eUYN26ckwn82LFjBywoFosFpaWlsFqtThmiO8iiy1GjRiEqKgrA/" + "fqwwWBATU0NjEajU/" + "mCjDd7QvCsViu0Wi2sVitSU1Pp8sfdu3exbt06REVF4ccff+" + "SM9eHly5fxzTff4OzZs3SXydKlS/HFF1+wHZpPMCwP0q5cuYIdO3bg/" + "PnzAIDdu3cDALZs2cJmWMMKiqJQW1sLtVpNt601NzdDoVDQ9eGUlJRehY7pLRwfH" + "z8o4XaFWR8mHgquo7uDLZs0NjairKwMEydOpDePOBwOfPHFF/jkk0/w/" + "vvvY968eaxntz1x6dIl7Nu3jz9I6w7fvcDEZrNBoVDgwoULkEqlyMjIwLFjx5Ccn" + "Mx2aMMau92OoqIi2m3t+vXroCjKyQRepVLR9VeDwYCysjIEBgZ6rF/" + "YFXeju8z68OjRo/" + "sUh9VqhUajgcPhgEqlolu8ampqsG7dOsTGxmLfvn2c307Bi26P8KLrytmzZ/" + "Hmm2/" + "CbrfjlVdeQXZ2ttdjqK6uxssvv4z6+noIBAKsXr0aWVlZXo+" + "Dq5DaK9MEXqPRICQkBGKxGM3NzfjrX/8KhULBWiZIjOqZ/" + "hJ2u93JX8K1Pkx8euPj42kTcYfDgc8//" + "xyffvopPvjgAzz11FOczW55+" + "gQvulykrq4OdXV1SE1NhdFoRFpaGk6ePMl3UTyA0tJSLFmyBDKZDHFxccjPz8fdu" + "3cxceJEJxN44lHABg6HA+3t7dDr9bS/" + "BKkjt7W1QSQSISkpia7dVldXY+" + "3atYiPj8fevXu9arrD4zF40fUFnnvuOaxZswZPPfUU26FwlpaWFty7d8/" + "pwURM4Mk0XX5+" + "PkwmE5KTk2khnjRpklemtHqirq4O5eXlCAkJgcPhgF6vx7Zt2zB27FgUFhZi9+" + "7deOmll1g33eEZMnjR5TpVVVV4/" + "PHHcevWLT7TGQLMZjMKCgpok59bt24hMDAQqamptBCTRY2ejqOkpAT+/" + "v5QKpV0vffOnTtYu3YtJBIJFAoFfvnlF/" + "j5+" + "eH06dMejQfgy1peghddLtPW1obZs2cjOzsbL7zwAtvhPJQQE3hSG87Ly0NlZSWkU" + "iktwmlpaQgPDx+" + "SsgSzq0Imk9E9wg6HA0eOHMHRo0fx4Ycf4oknnvB6GYQva3kFXnS5itVqxTPPPIN" + "58+Zh/" + "fr1bIczrCBLM5km8Hq9HiqVqpsJfH8wm820uQ6zq6Kqqgpr1qxBUlIS9uzZ06v3s" + "Lfgy1oegRddLkJRFJYvX46wsDB8/" + "PHHbIfDg66HoKsJvJ+fn5PJj0KhcGsCT1EU6urqcPv2bSgUCnqVkd1ux5EjR/" + "D3v/8dH3/8MWbPns2ZzgS+rOUxeNHlIj///" + "DNmzZqFyZMn07XFXbt2YcGCBazEw1v1dYdpAk+EmGw4JiKckZGB9vZ2/Oc//" + "0F6ejrkcjndS1xZWYm1a9di8uTJ2LVrF6fWjPNlLY/Ciy5P7/" + "BWfX2DZLS5ubm4cuUKTp06hebmZjz66KPIyMhAeno6HnnkEXz55Zf45z//" + "iQMHDmDWrFmcyW4BvqzlBXr8y+" + "b7U3gA3Lfqy8zMZDsUziMQCBAdHY3nn38e48aNw9y5c1FWVobdu3dDKpXi5MmTmD" + "lzJnJycnD58mU8/" + "vjjnBJciqKwatUqJCYm8oLLAnymywMAWLhwIbZs2QKj0ciPdfYDh8Phtu2MoihOC" + "S0TrpW1HlJ4E3OenuGt+gZOT32+" + "XBVcAHjsscfQS7LF40H48gIPbdUXFxeHxYsX4+" + "LFi1i6dCnbYfHwPJTw5QUeJ3jXKB6eIYE/" + "SOPh4eHhArzo8jgxZ84c1rNcnU6HhQsXQqVSITExEVeuXGE1Hq5x7tw5KJVKyGQy" + "7Nmzh+1wePoJX17g4RzLly/HrFmzkJmZCYvFgo6ODs6sqmEbu90OhULhtMn6yy+/" + "5H0TuAdfXuDxDfR6PX788UesWrUKQNe+NV5w78PcZC0SiehN1jy+Ay+" + "6PJyisrISERERWLlyJVJSUpCZmYn29na2w+IM7jZZ19bWshgRT3/" + "hRZeHU9hsNly7dg2vvfYarl+/" + "jlGjRvF1S56HCl50eThFTEwMYmJiMH36dABdk3LXrl1jOSruIJVKUV1dTf++" + "pqYGUqmUxYh4+" + "gsvujycIjIyErGxsdBoNACACxcu8IdEDDIyMlBaWorKykpYLBYcP34czz77LNth8" + "fQDfgyYh3P86U9/wm9/" + "+1tYLBbEx8fj6NGjbIfEGQICAnDw4EHMmzeP3mSdnJzMdlg8/" + "aC3ljEenmGPQCD4PYBMdLVQ3gSwkqIoE7tR8fgqfHmBh+" + "cBCAQCKYB1ANIpipoEwB/AYnaj4vFleNHl4emdAABigUAQAGAkgLssx8Pjw/" + "Ciy8PzACiKqgWwD8AdAHUA9BRFfcduVDy+DC+" + "6PDwPQCAQhAJ4DsBEANEARgkEAt73kmfA8KLLw/" + "Ngfg2gkqKoRoqirAC+BvAoyzHx+" + "DC86PLwPJg7AGYIBIKRgq51EE8CKGY5Jh4f5v8Bn4zwc1mMCJ4AAAAASUVORK5CY" + "II=", + "text/plain" : ["
"] + }, + "metadata" : {"needs_background" : "light"}, + "output_type" : "display_data" + } ], + "source" : [ + "pD.degree = refDegree - 1\n", "\n", "\n", + "problem = setup_control_points(pD)\n", + "variableBezier = problem.bezier()\n", "\n", + "A, b = genCost(variableBezier, ptsTime)\n", + "res = quadprog_solve_qp(A, b)\n", + "fitBezier = evalAndPlot(variableBezier, res)" + ] + }, + { + "cell_type" : "markdown", + "metadata" : {}, + "source" : [ + "We can see that the initial and goal positions are not reached. \n", + "A constraint_flag can be used to impose constraints on the " + "initial/goal positions\n", + "and derivatives if required.\n", + "Let's rewrite simplefit to handle such case" + ] + }, + { + "cell_type" : "code", + "execution_count" : 42, + "metadata" : {}, + "outputs" : [], + "source" : [ + "from curves.optimization import constraint_flag\n", "\n", + "pD.flag = constraint_flag.INIT_POS | constraint_flag.END_POS\n", + "# set initial position\n", "pD.init_pos = array([ptsTime[0][0]]).T\n", + "# set end position\n", "pD.end_pos = array([ptsTime[-1][0]]).T\n", + "problem = setup_control_points(pD)\n", + "variableBezier = problem.bezier()" + ] + }, + { + "cell_type" : "markdown", + "metadata" : {}, + "source" : ["By imposing the initial and final position, we effectively " + "reduce the number of variables by 6:"] + }, + { + "cell_type" : "code", + "execution_count" : 43, + "metadata" : {}, + "outputs" : [ { + "name" : "stdout", + "output_type" : "stream", + "text" : ["Shape of B: (3, 3)\n"] + } ], + "source" : ["print(\"Shape of B: \", variableBezier(0).B().shape)"] + }, + { + "cell_type" : "markdown", + "metadata" : {}, + "source" : ["The least squares problem then has the following solution"] + }, + { + "cell_type" : "code", + "execution_count" : 44, + "metadata" : {}, + "outputs" : [ { + "data" : { + "image/png" : + "iVBORw0KGgoAAAANSUhEUgAAAV0AAADnCAYAAAC9roUQAAAABHNCSVQICAgIfAhk" + "iAAAAAlwSFlzAAALEgAACxIB0t1+/" + "AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6L" + "y9tYXRwbG90bGliLm9yZy+" + "AADFEAAAgAElEQVR4nOx9d5gb5bn9GfWy0hZv9a7X24vXde11A4whJDjchISWm4S" + "SEAgQEsC0UIIbpphmBwwB7o8EEghJCBcIIbkkAcK9CSTYgG2a7W3S9tUWrXqX5vf" + "H8o1nVEfSSCvZc57Hj21p9M1oNN+" + "Zd873vuelaJqGCBEiRIjIDiRzfQAiRIgQcSJBJF0RIkSIyCJE0hUhQoSILEIkXRE" + "iRIjIIkTSFSFChIgsQpbgfTG1QYQIESKSBxXrDTHSFSFChIgsQiRdESJEiMgiRNI" + "VIUKEiCxCJF0RIkSIyCJE0hUhQoSILEIkXREiRIjIIkTSFSFChIgsQiRdESJEiMg" + "iRNIVIUKEiCxCJF0RIkSIyCJE0hUhQoSILEIkXREiRIjIIkTSFSFChIgsIpHLmAg" + "RMUHTNEKhELxeLwKBAGQyGSQSCaRSKSQSCSQSCSgqptmSCBEnJKgEjSlFa0cREaB" + "pGsFgEIFAgPNv8h6baAkJkz8iGYs4QRDzAhdJVwRvhJMtRVGgKAqBQACBQAASiSR" + "ie/YfkYxFnECIeSGL8oKIhKBpGoFAAMPDw9Dr9dBqtREEGw2ElKONBwCBQAB+v5/" + "zHlueYBOySMYijheIpCsiJgjZEunAarVCpVKhoKAgrXEJgYYTKZuMP/" + "nkE9TX10Oj0TDbSqVSRjcmpCySsYh8g0i6IiIQCoU4Oi2JWCUSCUKhUMT2QhEfm4" + "wJyUqlUoaMw6UNmqbjyhQiIYvIRYikK4JBKBRCIBBAMBgEECkPEKLLBsL3G/" + "4agAgyDv98NEIWyVjEXEMk3RMcZJHL7/" + "czUWwsYpJIJFkjXT5IRMahUAhGoxEKhQIVFRXMtoSM2VKFSMYisgWRdE9QkBzbQC" + "CQkGwJKIqKKi9kAulE1WwyZuu/" + "wLHvHQwG4fP5OJ9jR8ViZCwiUxBJ9wRDONkSUuFDLNmUF4RC+" + "PHGy6ggZBye3hYtm0LMqBCRKkTSPUEQK8c2GeLINXmBL/jeUOKRsc/" + "nw0cffYQVK1Yw74m5xiJSgUi6xzmikS2fHNtoyBd5QejjiCVTEC3c5/" + "OJhR8ieEMk3eMUNE3D6XQiFApBLpenRbYEuUKEc4FwySGdwg+" + "RjE9siKR7nIFd0DA6OgqKolBbWyvI2NHydH0+" + "H4xGI5xOJ7RaLfNHrVanTSa5RPDhpBsLfAo/" + "DAYDFAoFysvLAYAhX7Hw48SASLrHCaIVNEil0oj81XTAlhe8Xi8MBgPMZjMWLFiA" + "kpISuN1u2O12jI+Pw+" + "12g6IoaDQaaLVaFBQUQKvVQqVSJUVe6UJI4k7nmNhkTNO0WPhxAkMk3TxHvIIGoR" + "e+KIqCz+" + "fDZ599BovFgrq6OrS0tACYjXj1en3EsblcLjgcDlitVoyOjsLj8YCiKE5UnAwZp3" + "rc6ULI88iOmtMp/" + "JDJZCIZ5yFE0s1D8C1oiFW2mwpcLheGh4fhcrnQ3t6O9vZ2Zn+" + "x9iGRSFBQUBDh1RAMBuFyueB0OjlkLJFImMjY6/XC4/" + "GgoKAgJ4iEr7zAByRVLx74FH54vV50d3ejtraWuWmJhR+" + "5D5F08wjJFjRIpVImAk4VDocD/" + "f39cLvdKC4uRnFxMVPdlSqkUil0Oh10Oh3ndTYZ+3w+" + "DA0NwWAwcMg4G5FxNAhJukQ6SAXhZOz3+5mIVyz8yA+IpJsHSLWgIZ1I12azoa+" + "vD4FAAA0NDSgpKcHk5CSsVmtK4/" + "EBm4ytViuqqqqg1+" + "sTRsZEL9ZqtVAqlRkhEqFJV6ixgsFghFFQtP2FF36Qv6NpxmJGRWYhkm4OI92Chl" + "RI12KxoK+" + "vDwDQ0NCA4uJi5r1sp4yRfSWKjB0OB2ZmZjA8PAyv1wuJRMKQsNPphEwmE5To0kU" + "6kW4qY/El4/" + "7+fixYsAAKhUJMb8sgRNLNQQhV0MCXdGmaxszMDPr6+" + "iCTydDU1ITCwsKkxpuLyRiPjJ1OJ5xOJzweD1wuF0ZHRzlknGxknG1NN5mx0pEq2" + "MfhcrkYghULPzIHkXRzCCTHlv0YmE5ElIh0aZrG1NQU+" + "vv7oVKp0NbWFkFgbGTb2jHVfUmlUuj1euj1emYxrqysDIFAgJEp2JGxVCrlaMYFB" + "QVQKBQcIslVeUFIAg8Gg0x+" + "sFj4kTmIpJsDIGRrNBpRU1MjSPUYELtsl6ZpTExMwGAwoKCgAIsXL4ZWq004XrwU" + "tFx6fI8FmUzGkDEb8ciYEDE5l0J8TyGJEhDuKSNR1Myn8IOQ8eTkJNRqNfR6fcz0" + "thMVIunOIcILGoaHhwWrHgNmIz426dI0jfHxcRgMBhQVFWHZsmVQq9W8x4vnvZCp" + "xatsIB4ZE5liZmYGVqsV+/fv55Ax+RMeGceDkJqukEj1hhKNjO12OxQKBYD4hR/" + "s1LYTJaNCJN05QKIODUKByAuhUAijo6MYHBxESUkJOjs7oVKpkh4v1iN/" + "Jo49FyaeTCZDYWEhCgsLUVBQAKlUira2Ng4ZT09PY3BwED6fjzcZ5+" + "pTgZDHFAwGIZPJol7bJ3rhh0i6WQLfggahtUOXy4V//" + "etfKCsrw6pVq5joIxXko7WjUMfL/" + "l3YZMxGLDKWyWQMCWs0Gk6aV7rIVSIi+nA08C38IPD7/" + "bBaraioqDguCj9E0s0wkiloIMUMMll6Pwtplz48PIxQKIR169ZBLpenNSaQv9aO2" + "SK4WGTs9/" + "sZzXh6eho2mw2HDh2CXC6PGhnPFYS8ocYj3ViIRcZutxvT09MoKytLWPhBgppwqS" + "iXIJJuhpBKQUO6ZbuBQACDg4MYHR1FdXU11qxZg/" + "379wtCuIBo7Zgq5HI5h4wdDgcWL14MAExkPDk5CaPRyFSYZZuMhf5dUyHdWAgEAk" + "x0Gw52rjEA/" + "OUvf8GhQ4dwzz33CLLvTEAkXYGRTkFDqmW7Pp8PAwMDmJiYQE1NDdatWyfYBc9GP" + "soLQiETaV4ymQxFRUUoKirivO/3+3mRsUajyYnS5GhIhXRDIeD1v1B46TUv/" + "muvAuRwEkkV7HNgtVqj5pjnEkTSFQhCFDQkS7perxdGoxFTU1NYuHAh1q1bl9FV8" + "XyVF4RANr0X5HI5LzJ2OBxwOBz48MMPOaXQWq026acbISNTIDkS9/mA3/9ehl2/" + "fh8Di64HPA04/6/" + "PYNOm2blAIl0+" + "sFqtEect1yCSbpoQsqAhPMUrFjweDwwGA2ZmZlBXV4fm5uaspCDlGhFmE7lQHBFO" + "xn6/" + "H5988gkWL14Mh8MBp9OJiYkJOBwOBAKBqJpxLDIOhUKCk24i2O3AL38px8NPT8C0" + "5DbgjOdn35j/" + "Ae589kps2rQaQPKku3DhwpSPOxsQSTdFsDs0AEiLbAkkEkncSNflcqG/" + "vx92ux319fVoa2vL6spttuUFIfZ1PKdnkWIGuVzOOMCx4fP5mMjYZDLB6XTGJONg" + "MJi13OHpaQqPPy7Hkz8PwtrxIHDBvYDCdWwDvwqfjPTjyJG1aGubXRdRKpW8xhYj" + "3eMQpDPs6OgoqqqqBE1ZiSUvsO0V6+vr0dHRMSdEkm15IZeQi+" + "SdqIJMoVBAoVDwImOv14tgMIju7m6mFFqj0Qi2CAsAY2MU9u5V4Oe/" + "kMG98BXgohuBYiN3o08vwCbp3bj9p/" + "PR1jZ7rSWT0WOz2UTSPV7ALmgIBoMYGhpCdXW1oPsIlxfsdjv6+vrg8/" + "nQ2NiIkpKSOZ34oryQX6QbC9HI2Gq1YmRkBGVlZXA6nRgfH+dExuGacTwSDD+" + "uwUEKe/Yo8OyzcviKPwYu2AzU/" + "53zGWpiKb4ifRB3b1mHujoawLF5kIy8YLPZxIW0fEasggaZTJaRiI/ICxaLBf39/" + "QiFQmhsbIyIVOYK8UhXiPxivvuaCxxPpBsNwWCQIWL29Uauf6IZj42Nwel0MtuHy" + "xQymYxZlOvvp7B7twLPPy9HQG4GztgKrHoCkBybO5S7BF+" + "UbcdjN16MijIpgMjfPFlNN1fmSyyIpBsFyXZoEAperxejo6PQaDRobGwU5I5NJAG" + "hDHTCYbFY0NvbC6/" + "XC5qmORORREeZSF8TISzpxhqLoigoFAqUlJSgpKSEeZ2maY5MwSbjsTEdfvnLRvz" + "971oE6SCw6jHgtK2Aeoa1QynWyr6Pn195KxaUlkTsl41AIMD7GhI13TwDSfsKBoN" + "JdWhId5/" + "T09Po7+" + "9HMBhEWVkZWltbBRufFFwIvUhCzM4pikJzczPTPsfn8zFR0cjICJxOJ0KhEFQqFU" + "PCBQUFUKvVWVm4yUQZcK5A6Eg3mbEoioJSqYRSqWTIuKeHwgMPKPDCC3KEQhTQ8A" + "awaTNQ/innsw3YgEfP3oa1DSt4RbDJPEUFg0FBdehMQCRdpN+hIdV9Tk5Oor+/" + "H1qtFh0dHbBarZyacyEgZHNKYPai/" + "uCDDxiy1ev1TNQDIGZU5PF44HQ64XA4MDU1BZdrdrU6Vov2XCsDPt5JN52Usb4+" + "Cvffr8TvfiebJdviPuDMG4G2P3C2K5XU465TbsfJZevgdDpx6NAhBINBKJXKiKIP" + "NsnylRdySY6KhxOadNMpaEj1sZ3YKxqNRuj1eixduhQajQbAbJZCuo0kwyEU6Vqt" + "VkZGWLp0aVLSB0VRUKvVUKvVKC0tZV4nLdrDe5+" + "RBcWCggLIZDLGVHwucbyTbirFEQbDLNn+9rcyBIMUoLADG+" + "4G1u4BZMf8EZRUAW5dfzN+tPJqKGXc1C9yw2Y/HblcLg4Z+/" + "1+2O32hFIVId1c+53CcUKSrhA5tiS9i+/" + "nQqEQxsbGMDAwgOLiYqxYsSLCXlGI7r3hSJd0CdlSFIWmpiZ8+" + "umnUQk3lQud3aKd3WE4GAyip6cHADA9PY2BgQH4/" + "X4mv5S9ki7k4l2+QehIl++5HByclRGee04+S7ZUCFj2K+" + "CMWwHdOGfbb7dfiO2nbENlQWXUsdgyxbx585jXaZqG1+" + "tl0trYUlV4ZEzI2OPxMAFMLuOEumKjkW2qd0VCkIn0o1AohJGREQwODqKsrAwrV6" + "6MmeidS6RLyBZAzJ5pmYJUKoVarYZKpeKQcayFG6VSydGLNRqN4HqxUJGukI/" + "A2Y50x8ZmyfaXv5TD7//8XNT8C/" + "jydUD1fs62S4qX4uFNP8WqqlUpHQ9FUVCpVFCpVFAoFGhvbwfAJWP2usGf//" + "xnvPPOO7BYLHj22WfR0dGB9vb2pEz6w7Fnzx489dRToCgKS5YswdNPP52SD3U4Tg" + "jSDe/" + "QIIReK5PJIgyY2SC5vCMjI6ioqMDq1asTErTQ+" + "msqY1qtVvT19YGm6ayTbTjCCSpafimZhOTx1Gw2w+" + "l0AgDUajXTHVilUkGtVqf8uwtJutlqryPUWJOTs3m2Tz0lh8fz+" + "bHrRmYj22XPcbat1FZi8+LN+OrCr2JB1QJBjot9vthkzI6MOzs78dZbb+" + "GRRx6ByWTC3//+d5x//vk466yzUtrvyMgIHnnkEXz22WdQq9X4xje+gd/" + "+9rf47ne/m+5XOr5JNxQKweFwMGSXjeoxtr3i/" + "PnzsWbNGt6PbXMZ6dpsNvT29qZMtkJrnnzHYk/" + "CcL3Y7Xajt7cXbrcbfX19cLvdnI7AJDrm02pHKBcuoUlXqHS8aJGuxQI88ogCjz+" + "ugNP5+" + "THL3MD6h4CTuaW7SqkS16y6Bjd03QDzuBlymTAZBHwX0YhU1dLSgptuukmwfbvdb" + "sjlcrhcLsyfP1+QcY870g0vaHj//fexfv16wcX18EjX7/" + "djYGAAJpMpZXvFuSBdNtk2NjbmfI4jXxBy1Wg0KC0tZaLjYDAIl8sFh8MBs9kc0d" + "2BrRdnIvVIyKaUQtoxsiNdpxN44gkFHn5YAYuFHCsNLHoR+NLNQNEA57Nfa/" + "4adm7YibrCOgDAZHBSUC9dvmNZLBbBrt/" + "q6mrcdNNNqK2thVqtxpe+9CV86UtfEmTs44Z04xU0ZGI1kxCkz+" + "eD0WjE5OQkamtr07JXzCbpZoJshYziMlWRJpVKodPpIlrNs20T2eYwZNHG6/" + "UyrXbSIRQhiVJIk5pZ+U2KJ56Q44EHFJicZI1beRDYdB1Q93+cz3SUduC+jfdhQ+" + "2GiLGEjMDnwtZxZmYGf/" + "jDH5gmrhdccAGee+" + "45XHTRRWmPnfeky6egIRPFAQAwODiI3t5eLFy4EE1NTYK4jGVa07XZbOjr60MwGE" + "RTU1NKF2k4uQqdVzsXiOZhy05nGh4ehtlsxvT0NEKhENRqNScq5msonk1fXr4IBo" + "E//nEenn22DENDLLLUTgCn3wF0PgVQx37bElUJtp68Fd9Z/" + "B1IJZHkmkzZbiIk67sgFOm+8cYbqK+" + "vR1lZGQDg3HPPxbvvvntiky7fggYiAwiV5+" + "lyuWAwGDA5OYnS0lKsXLky4zpxOiCka7fb0dvbi2AwmJafAyHXXM+" + "FFALsdCaHw8FkU9A0DbfbzRR7TExMwO12A0CEXqxUKjMWAKQ7Fk0Dr70mw513KnD" + "0aPOxN6Q+YPVe4NQ7AZWNeVkmkeGK5VfglrW3oFgV+/" + "rJRKsePrBaraiqqhJkv7W1tfj3v/" + "8Nl8sFtVqNN998E6tWpZaJEY68I91kCxrkcrkgpOt0OtHf3w+n04mGhgYUFRXB5/" + "PNyeJRMvD7/" + "TAYDJDL5YKY52SqrDgcuRY5s280FEVBo9FAo9EwkRBwrNjD4XDAYrFgeHgYXq8XU" + "qmUIWGZTCbY90rnd/jHP6TYtk2J999nkyMNtLw2W002r4ez/" + "Rl1Z2DXxl1oKWlJOPZckq5Qke6aNWtw/" + "vnno7OzEzKZDCtWrMAVV1whyNh5R7rBYBB+" + "v593QUOi1K5EYNsrNjQ0YN68eaAoCiaTiYluchEksnU4HKioqEBLS+" + "LJwge5RoaJkM2onF3swQZpze5wODA9PQ2r1Yp9+/" + "albQ6UCukeOiTB9u1KvPlm2NQv+xTYdD3Q+" + "DfOy83Fzbjn1HtwZsOZvPchtKY7V2Y3O3bswI4dOwQbjyDvSJf0u+" + "eLVEmX5KuGQiE0NDRwvATSGTfTIDcJv9+PpqYmOBwOQUkym6SbS+" + "SeDnmzW7Pr9XpQFIVFixalbQ6UDOn29VG46y4l/vu/" + "wzIy1GZg4zag63FAckzaKlQW4pa1t+CK5VdAIU3uKVHoSJdvlVk+" + "OIwBeUi6ySJZcpyZmUFfXx8kEgkjI0RDJvTXdBBOtkRGcLlc8Pv9gu0nE4t90ZBr" + "mrGQxRGEKNM1B+KTvWAyUbjvPgWeeUaOQIB1/" + "JLArLftxm2AxnzsZUqC7y75Lu5YfwdKNaVRRkzuO6aLZBfSct1LFzgBSFculyckH" + "ZqmYTab0dfXB4VCgdbW1oiUonBkMtJNZoI7HA709vbC7/" + "cz3SXYEJok801eEArZsohMxhxoZmYGHo+" + "HkTQIISsUCthswN69Cjz6KKuwgaDxr8CZ1wPln3Fe3rBgA3Zt3IXFZYsF+" + "a5CYK5SxjKJvCPdZKONeORI7BUNBgPUajUWLVoUocfFQqYiXb7ZAYnIlkBo0s1Wc" + "0oh+7EJmTucLlJd/IpmDnTw4EG0trYynR2mp6fR2zuIl18ux69/" + "XQ+LJUwWmNcNfOlGoPU1zst1hXW4dP6l2Lxpc875SyRTHOH3+" + "3k3sJxL5B3pJguZTBbhUUvTNEwmEwwGA/" + "R6PZYsWZK0OxFpSyI0ErmX8SVbgkxEutHGy9UIONdMzIUuA5bL5Z/" + "nDOvx0ksy3HmnEkZj2LWjsgAbdgJrHgGkxwIQrVyLm1bfhKs7r8YnBz/" + "JOUkHOP68dIE8JN10It1QKMR42cayV+QLqVSaEXkhlnuZw+" + "FAX18fvF4vGhsbOWYf8SDKC8IgV0lXIpHgf/" + "9Xiq1blThwICwilASAzqdAfWELaPUU8zIFCl+v+zouq7sM6qAaHx/" + "4GB6PBwaDgZEpUjUHEjqdMNlCi1y8cYQj70gXSG7iy+Vy+Hw+" + "DA8PY2BggCloSPcxJFOP2eEdgVMlW4J8lheOR3IX0nuhr0+De+/V4G9/" + "i+IRUf8WqLM2gy77mNPqcV31OuzauAsrKlYwr/" + "n9fhw8eBBarRZ2ux3j4+" + "MpmwMJmbkA8Cdxj8eTF9ICkKekyxfBYBATExMwmUxQqVTo6uqa8w4EiUA6AqdLtu" + "zxMikv0DSNsbExGI1GUBTFWdAhnR+OB2QieyFVDA9TuPtuJZ5/" + "fjVoOuyYSnpBfelm0G2vcMi2Vl+LO0+5E+" + "e0nBPxPUKhEBQKBcrLy1FeXs68noo5kNCkC/" + "CLXq1Wa863Xic4PmZEGAKBAIaGhjA6OoqysjLo9Xo0Nzcn/" + "mAOIBQK4ejRo0z79ZKSkrQme6bkBZqmMTExgf7+" + "fhQVFWHZsmUAwExSk8nEeDyQvFMySZPxKcgV5IK8YLUCe/" + "Yo8LOfKY752hIorcCGu0Ctexi05Fi2jlauxQ2rb8CPOn8EtTy6oXcsokxkDkR+" + "Z7Y5kEKhgM/ng91uh0ajyVon6HzJXADylHRjPXr6/" + "X4MDg5ifHwc1dXVWLt2LQBg37592T7EpOF0OtHX14eZmRnU1dWhrq5OkEmeibxai" + "8WCo0ePoqCggNHFiZUmKQIgYJuMs30KKIriREvhfdByrbxaKNJNRfP0+YCnnpLj/" + "vsVMJvDPksFgc6fQ37mHfArJjnR7bcXfRvbTt6GqoL4fgTJHlM8c6CJiQk4nU4MD" + "Q3B5XIx5kDs3zoTN12bzSZGutkE215xwYIFEfaKmYqYUm1OyQYhW7fbjaamJqb1j" + "FCkIyTpzszMYGJiAlqtltNQMx5imYyzH13ZfdAUCgUKCgqYVKH0TV3yN3uBpoFXX" + "pFh+3YlDIYo56D+LSjPvh7e4o/" + "AzkRfM38Ndm3chZWVK3ntRwhJgJgDFRQUwOPxME+" + "W0cyBXC4Xc9MVyhzIYrGIpJtJkB/G4/" + "HAaDTCbDYLZq+" + "YDNJxMGOTLdFsKYqCxWIRNBVNCNK1Wq3o6emBVCpFaWkpKioq0m4AGOvRlZTGjo2" + "NwWaz4YMPPgAwW41FJAoSFefDSnU4+JLuv/8txU9+osT+/VHIsKQHyq/eBG/" + "9q2AnQy7QLcCdG+7EuS3nJnVuhMw4CM+" + "rjWcORPyLY5kDKRQK3sclygsZBmnDYrVaUVdXh9bW1jmZgKkUSMQi23TGjId0SJe" + "Y5oRCITQ3N6OwsBA9PT1Ro0ehzj8pjfX7/" + "SgoKMDChQs51VjsCUras7P14kxpiELKC/" + "GOsbeXwvbtSrz6apSMBKUV8jN2IrjqEXipY7GtRqbB9auvx7Urr42p28bDXJiOSy" + "SSqDddtjnQ5OQkHA4H9u3bB7lczpGiwn9rIbtGZBp5Sbp2ux3z5s1De3s774mQCT" + "vCZEqBXS4X+" + "vr64HK5opItQS6QrtPpRG9vL7xeL5qbmzn17Nn0XiDkHqtVO6nEcjqdGB0dZboDE" + "4NxIlMIITFkOntheprCrl0K/" + "PznYR4JACAJgFr5FJSbtsIjneS89a1F38K2k7Zhvi71/" + "l3Z7iocD2xzIJL90tLSwvmtw82BXn/" + "9dQwODqKjowN+v1+QNksWiwWXX345PvlktmjkF7/" + "4BdatW5f2uECekm5FRUVShQlCG5kT8CFINtk2NDSgtLQ07uSVSCRzZlBDGjg6HA4" + "0NTVFvTHkUv6sXC5HcXFxRHdgtoZos9nw2WefMTaK7Kg4mcmZKW3Y4wEef1yBhx5" + "SwGaLcl3UvwndBZth13wCD+" + "vl1VWrcWnlpbjwtAvTPiahI12h5hk5Loqi4poD9fT04P3338fAwABeeOEFyGQyvP" + "vuu2ndSK677jps2rQJL774Inw+H2M6JATyknSThVBG5uGIF+" + "kSsnU6nWhsbExItgRSqRQejyfhdnzBZ59erxf9/f2wWCxobGxER0dHzM/" + "FI91c6CgRriF6PB7U1NRArVYzGuLExAQcDgeT5sSWKGLZKJKx0wWJKkMh4MUXZdi" + "xQ4mhoSj7K+lB4TduhLXyj7CzXl6gW4Adp+" + "zA2Q1n49NPP037eNjHJASyaWBOzIHOO+88/POf/" + "8Sll16Kk046CYFAIK3vY7Va8X//" + "93945plnAMxKXkJyR16SrpCmN+" + "kgWqTrcrnQ398Ph8ORFNnGGzNT8Pl8MBgMmJ6eRn19Pdra2hIe61zIC0KA/" + "dhKEJ7OxrZRZEfFBQUFgsoL+/" + "ercd99msiyXQBQzUD3lTvhWvwYrIidb+" + "v1egUlSqGjUyGQbNcI8tumW5BjMBhQVlaGSy+" + "9FIcOHcLKlSvx8MMPQ6vVpjUuQV6SbrLIFOmyTW/" + "CyTZetBgPpCItkwgEAjAajTCZTFi4cCGam5t5T+BckhfSRax0NrKyzq7Eslqt+" + "Oyzz6DX6xkiTjb5v6eHwk03LcTf/" + "x5lwUcSgPrkJ0Cdvh12THPeurDjQmw9aSsn3zaXeq2xITTp8pWArFarYF66gUAAH" + "374Ifbu3Ys1a9bguuuuw65du7Bz505Bxs9L0s2lSNflcuGTTz6Bw+" + "FAQ0NDymTLHjNTkWQwGMTg4CBGR0dRU1OTUrv4bEW6wNxVpEVbWf/oo49QX1/" + "PLOiQ5H+apjkLdwUFBRH5pnEXyQBIW/8H+gtuwIzsCOf19dXrce/" + "Gezk+" + "CQS5TJRC6sNqNb9sDCFJt6amBjU1NVizZg0A4Pzzz8euXbsEGRvIU9JNFnyMzJOF" + "2+" + "3G2NgYXC4XFi1alDbZEmRCXqBpGoODgxgcHGQq9VKdGEL63CbaTy6BpmkoFArodD" + "rOYk4oFILb7YbD4WDMxT0eD6RSKRQKHV55ZQGefLIUNlsUgiz7DOUX34AJ/" + "V8ww3p5oX4hdm7Yia81fy3meThRIl2+UoHX6+" + "VN0IlQWVmJBQsW4OjRo2htbcWbb76JRYsWCTI2cIKQrpCRrtvtRn9/" + "P5O2VlRUxDEJSRdCkm4oFGJSqXw+" + "H9auXZu23hVLXsg1kiTIdCUZ24mLpLPRNPDiixS2b1dhaCjK+" + "dZMofT8O2BueAoTOPZb6xQ63Lj6RlzdeTVUsviWo7lKlMl0ekiEufTS3bt3Ly688" + "EKmIe3TTz8t2Nh5SbqpyAvhRubJgpCtzWZDY2MjFi1aBLPZjImJibTGDYcQj9QCY" + "rAAACAASURBVO80TWN8fBwGgwHz5s2DRqNBY2OjYF4OJ6K1I1/" + "y3rdPgttvV2HfvigkJvVB94U98K+/B1OwMS9ToHD2grNxw/" + "IbUFdaBymdmABPlEg3mbGEvPEvX74c77//" + "vmDjsZGXpAskNynTiXSjkS35cTPRPSKdSJe0H+rr60NhYSHjG2w2mwWL+LIlL+" + "QaEp2/" + "gYHZSrKIbruzn4am8xWozr4ZZvRx3jl1wanYecpONGgamCosg8HApLOxsyg0Gg1D" + "jkL68gpJlEI2peQbNQtVEJEt5C3pJoNUNF022TY0NHDIliAT+muqY872x+" + "qFVqvF8uXLOfoWiZ6FmAy5FoHONWw2YPduBR57TAGvN4r8UP0hKi+" + "5EaPKt8FOr28sasTdp96NLzd8mbmu9Ho98z5x7SLpbNPT05yuwOR38Hq9aftQJCp" + "NnivwlResVivn3OU68pZ0MxXpejwe9Pf3w2q1xiTbVMbli2RJbWZmBr29vVAoFFi" + "8eHHUXEIhMw6yRbq5Ru7hkW4gAPzqV3LcdZcCU1NRbma6UVRffDtGy3+" + "FUZbhok6mw82rb8bVXVdDIY2dG0tcu5RKJcfAnvhQjI6Owm634/" + "Dhw4yxeKo+FHxauc8F+EbN+WR2A+" + "Qx6SYDPuQYTrZ8fB0yEenyjVhsNht6enpAURTa2tritowXknSzmTKWS2CT7ptvSn" + "H77UocPhyF1OQuVJzzAKyLH8BIyMm8LKWkuHzZ5Thbfza6FnfFJdx4ID4Uer0eKp" + "UKtbW1AI75UDgcDo43gUaj4UgUKpUqaueIXCRdvsinrhFAHpNuMo9TMpksprzAJt" + "v6+vqkTHQylf8bD6QbcCAQYJy/" + "EiEfI11AmFVpIbMXjh6V4o47VPjb36JMGyqEwpOfBfXF22EKjQKs072pYRPu2nAX" + "WkpacOjQoYyYocfzoXA4HLDb7RgbG2PS2diOXUKR7lzdjPPJYQzIY9JNBlKpNGIC" + "p0O2BNlMk3K5XOjt7YXb7UZzc3PC1utsZIN0g8Eg/H6/" + "YM0BcykFbWqKwsMPt+" + "BPf9IiGIw8LkXTP1Dy7esxLvmAQ7YdpR2459R7cNrC05jXhCS4ROOwfSjYaY1s+" + "0STyQS32419+/" + "ZBpVJxouJ4PhTRIPSCHF8IWRiRDZwQpMsGaTVtsVhSJttswuPxoK+" + "vD3a7PSUvByCz8kIoFMLIyAgGBgYYuYXdE41M3lw+" + "x7Hg9QJPPCHHAw8oYbMVRG5Q3IcF37sZQ7qXMc56uUxThi3rt+DixRdDKuGSkJC+" + "vKnmw4b7UNhsNqxatQoej4fjZcunrRIbc5GjS45fXEjLApK9cEOhEA4fPsyQLR9z" + "l7mE1+uFwWCA2WyOSFVLFpmIdGmahslkQn9/" + "P0pLS9HV1cUQisfjYfRFEkmRR1r2n3hR0VwupNE08OqrMmzZooTRGCXSU1kw/" + "5t3YqL+UQzRx2QrpVSJa1Zeg+tXXw+" + "dIrrGPpe91uKBOHap1eqk2iqxCXmucnStViujbecD8pZ0+YJEtsTPNhNkK6Slod/" + "vh8/nw/79+9HQ0CBIVwyhSdfj8eC9996DTqdDZ2cnVCoVQqEQfD4fZ/" + "Ky27MEAgGGiMfGxuBwOJiFHkLCOp1uztvwHDggwe23K/HOO1GmhsSPki89Ad/" + "6HRgNTYPdBfL81vOx/ZTtqNXHn/" + "zZlBeEQKK2SsSHghjI0zQNo9EY04eCL5KJmi0WC5YuXZr0PuYKeUu6iX5I4hE7Mz" + "OD+vp62Gy2lB7NE4EQWrp3+" + "EAggIGBAYyPj0Mmk2HVqlVQqeKXgiZzjEJkWdhsNhw+" + "fBhutxtdXV1JWd3JZLKoHWRJFGW1WjEyMgKv1wu5XM7kVjscDk5RQLLgGy2PjVHY" + "sUOJ3/" + "xGBpoOv0ZoKJe+At25t2IK3RzddnXVatxz6j1YPX8172PKpUg31SKLaKbiZrMZ4+" + "PjUKlUnN+" + "Tnc5GIuNE8yVZeUFcSJtDhJMtiWzHx8cz2j0iVdINBoMYGhrC8PAwampqsHbtWnz" + "00UeCPlqnW7rrcrnQ09MDn8+Huro6jI6OCuItyu4Iy27D4/" + "P5YDKZYDKZMDAwENXjVqfT8a5CikcqLhewd68Ce/" + "Yo4HJFKW6YfwCVl9yAUdXbnCaQC/" + "ULseOUHTin5Zw5icxzMWIm7XMqKys5r7Nb7bCfctjubFqtlqP9J+" + "ulK5LuHICtgUbTbDPpqZsKmZMFqMHBQVRVVXHMaIT21E1VXvB6vejr64PNZkNTUx" + "NKS0vh8XgwMjIi2LFFg0KhgF6vh8vlQmtrKwCux+" + "3U1BSMRiOn84NOp0tq0S4UAn7/+9n25iMj0YobRjD/" + "otsxVvEsp7hBr9Dj5jU348oVVyY0pckkhCTdTOuwfNoqjY+Pw+" + "12M3nI5PvxKfEVsxeyBDKx2GQbrzNwNrtHxANN0xgdHYXRaER5eTlWr14dcVHNdX" + "PKQCAAg8GAycnJiAyPbFo7sqNztsdtVdWsmTe784Pdbo+6aOf3+" + "yPO5XvvSXDbbSq8/" + "3604gYn5n3tPjiWPIRR+" + "ljhrgQSXLbsMty27jaUakojP5dlCEW6QlajJfPEF6s1O0lnGx4ehsvlwscffxzRV" + "kmr1XIkJ5vNJpJuNhAMBnHkyJGEZEuQ6Ug3Edir/" + "SUlJejq6ooZHQttZM6XdEOhEAYHBzE8PIza2lqsXbs2YkLGyyrI9mN2rM4PZOLa7" + "Xa43W4cPnwYAGCzFeH//b9G/M//RMksoILQnvQ0pF/cgml6nLNItqlhE75R/" + "A2cf+r5mf5KvCGU4Y3Qto7pGs+QdDaLxYLS0lJUVFTEbKtkMpnw3HPPweFw4J///" + "CdWrFjBkanS+" + "R6rVq1CdXU1XnvttbTHC0fekq5UKkVxcTHv1f1MGJmT44gXldI0jampKfT29qKws" + "JBZ7Y+HbMsL7Oi7srIyru9utqwdyXGlAnYeqsViQUVFI554ohB79yrg8UTRbZv/" + "gsILbsSM4lMO2S4pW4K7T70bG2s3Yv/+/" + "al+jYxAKDcvoW0dhTISZ2u6sW6uXq8XpaWluP766/" + "HGG29gz549OOmkk7B169a09v3www+" + "jvb0dNpst8cYpIG9Jl6IoVFZWZsXeMdVxzWYzenp6oNFosGzZMmg0Gl5jZkJeiHb" + "DYd8QiouL40bfBPHkBSFT54RZ4Qf+" + "9KdSPPXUPJhMUaK5sk9RduGNmCzidm6Yp5iHH7T8ABe0XoDCgkL4fL60j0VoCCkv" + "CBnpZnMspVKJNWvWQCaT4cEHHxRkv8PDw/jTn/6En/" + "zkJ9i9e7cgY4Yjb0k3WQhhZB4N0QjSYrGgp6cHcrkcHR0dKCiIUs2U5JjpIFrkbL" + "FY0N3dDZVKFWEFGQ+5JC/Ew7/+JcWttypx4EBz5JsF4yg5byss9T/HJCv/" + "SyPT4Lqu6/" + "Cjzh8BPjAFAUajEU6nE4cOHeIUdxCLxblALmYvzEWrHiF7sgHA5s2bcf/" + "998NutyfeOEWcUKSb6UjXbrejp6cHANDa2ppyaaLQTl5sjdjhcKCnpwc0TaO9vT2" + "uO1k0ZKtdT6oVaQMDFLZtU+Kll6Joi3IntGc8BP+a+" + "2HGMQcwChQu6rgId5x0x7GOu0pwzs2+" + "ffvQ2trK6IoTExOc1XaSQaHVagUrhY2H4z3S5Uu6QpYAv/" + "baaygvL8fKlSvx9ttvCzJmNOQ16SYzMTOp6TocDhw8eBB+vx/" + "Nzc1p5wwKHelSFAWfz4dPPvkETqcTLS0tKa/" + "25lI0y4bdDuzZo8DevVHMxKkgZCt/" + "CeVZW+" + "CUjHLeOm3habh7w91YXLY47viJFu1I2pPD4WC0TXYqW6qVWbEgRrqzEDJH95133s" + "Grr76KP//5z/" + "B4PLDZbLjooovw3HPPCTI+QV6TbjLIRKTrdrsxPDwMp9OJJUuWcMym04FUKhVMR/" + "T5fBgZGYHZbMbixYtRVlaWs8SZCkIh4PnnZdixQwmTKQp5NP4V+vNugk3zMdi//" + "qJ5i3DXqXfhjLoz0tp/uHkMwLVUDK/" + "M8ng8GBsbY1Kf0iG8XMteELr9Op+xhPTSvffee3HvvfcCAN5++208+" + "OCDghMukOekm6ynrlCky7aFrKiogFarFYxwAWEi3WAwiIGBAYyNjaGsrAxyuVzQr" + "sWZBp+nmHffndVtDx6MMjkrPoLu3Jthr/gr2GvQFdoKbFm/" + "BRd2XBjhACYUYlkqejweHDp0CH6/n/ErAGbb75CIOJ6LVyaQjltZOIQkcIDf/" + "M43A3Mgz0k3GcQzMucLn88Hg8GA6elppruE3W7HwMCAQEc5i3Q0XXal2/" + "z587F27VrGlOR4wcAAha1blXj55Si6rW4EqrO2wNv+DOys/" + "C+" + "NTINrV12La1ddiwJFcgubQkEmk0Eul3McsUj7HbvdznHxYhcDZHLRLhgMCuaBLGR" + "TSr7IVAnwxo0bsXHjRsHHBfKcdJO5CKMZmfMFqdCamJhAXV0dWlpamH3nSnPKcKt" + "FdqWb0Hm/" + "2UL47+" + "VwzDaBjKrbKuyQnnofqPW74aHczMsSSPDt9m9j6ylbUVnA9QTINqKl1LEX4tjb+" + "Xw+2O12xtvW5XJxtg0EAkn5E8RCJiwis4l8810A8px0Mw32I/" + "qCBQuwbt26iAs0F9qwT09Po6enh2O1GD5evvU1Y0/" + "eUAj4zW9mfRIidFuJH+h8Csozt8Mrn+" + "C8dUbdGbik8hJs6tyUlmObUMUgfAmO3ZQy3NuWZE8EAgEcOnSIs2gXrw9aLAgtCQ" + "iBZKrtLBYLqqurM3xEwkIk3SgIhUKM81d1dTXWrl0b88KUSqWCL9DxjUxtNhu6u7" + "shk8mwZMmSmM5f+dxM8li+" + "bfj5p4G2P0D5H7fCqzvKcQBbWrYUOzfsxGkLT8NHH32U9jEI2WctnXGkUimzaDc6" + "OoqVK1fG7IPGtlPU6XTQaDRRr+FcbL+" + "erK1jR0dHho9IWOQ16aZyAceLNkKhEEZHRzEwMIDKykqm2iUeMiUvxCNJttViS0t" + "LwoWEfCTd4WEp7rijGW+9FaWKr+bfkP/HzfBX/ZNDttUF1dhy8hZ8s/" + "2bkFDHfuNcydYQkrwJYi3asbsDhy/" + "asVPZhDK8EbI0PFnSFRfSchhyuTyqDSNN0xgbG4PRaIzQQxMhExM6FpETq0Wr1Yr" + "m5mbOo2c8ZJp0Q6EQhoeHGZ9ddqFAslGUw0HybQsifRJKeiH54m0Itb8I9pKoXqH" + "HjatvxFUrroJazq2sy6WOwtnMrY1mpxht0c5ms8HtdqOwsJAh4lQW7eaqyELUdLO" + "MZC+McO9bmqYxMTGB/" + "v5+" + "FBUVYeXKlYKt5KaDcNKNZ7XIB5kiXZqmMTk5id7eXpSWlmLRokVMf7SRkRE4nU7Q" + "NM0h4oKCgqg3tFAI+O1vZ/" + "Ntx8bCCEU7AWzYCWr1EwhRx6QcuUSOy5ZdhlvW3oJ5auFS9qJ9z1yQF9IdJ9qi3c" + "GDB9HQ0AC/" + "3w+" + "73c5ZtNNqtZxUtnjR51wURgD556UL5DnpJgtCujRNY3p6Gr29vdDpdFixYoVgrXG" + "EACFJPlaLfJCJJo/" + "EX0KlUqGzsxNKpRI+nw8qlYoTebDNxycnJ2EwGBAIBDgVW599VoStW/" + "X48MOwSSt3Auv2QHLKfQjJHWwDMJzbci62nrwVDUUNgn6vaJhrsgyHkDos6VMnk8" + "k4uebBYJCxxzSZTOjr64u7aCdEJgWBSLrHEWQyGWZmZnDkyBGoVCosXbqUt/" + "NXIgjpsAXManL/+te/Elot8oGQx+V2u+F2u9HT08Pxl4hF6rHMx91uN7q7Pfjxj/" + "X4y1/" + "CJo0kAKz4BajTtoMuGGO3JMP66vXYuWEnuqq6BPtO2cJc9zWLNVa0Y5JKpdDr9Rx" + "fg3iLdgqFAl6vFzabLSVZiY1kSNfhcCRtKDXXyGvSTebCs1qtmJychEKhwOLFiwX" + "9oYgckO6dnm21GAwGsW7duqxWJ8WD3+9Hf38/" + "zGYzlEolVqxYEfF9+" + "UZgLheFPXuK8Mgj4f62NND6KvDFW4HSI5zItlHfiDvW3IGvtX8tK4YybORipCtUb" + "m0yBQ3xFu3GxsYwNTXFkZWidXrmA75SBbnRZ7sgI13kNekCiR+" + "d7XY7ent7EQqFUF5ezmhUQkII0g23Wjxw4EBOEC6ROEZGRrBw4UK0tLRg//" + "79nHNO0zRCoRBomuZU/UkkElAUxUyKUAh44YXZfNvR0bCJsuAd4Is/" + "Bmrf5bxcpa3C5uWbsalyEzwuDw4ePMjoxGy9Md7CZ7pEdzyTrhCQy+" + "XQaDQoKipCQ8Os3EMW7RwOB2ZmZjA4OAifz8eptNPpdFCr1RHfJRAIJPUEmivZKX" + "yR96QbC06nE729vfB6vWhubkZxcTGGh4czau+" + "YyiIcsVoMhUIpWS1mCuwKt4qKCk76HLnREbIli3RyuZxDwOTfwWAQ778vxe23a/" + "DBB2HkWPYZ8IXbgbY/" + "cF4ukBfgW7Xfws6zdkIj505AohOThZ9oOjGJrE7U7IVsIzw6jVdpR+" + "SJqakpuN1upis02d7n8/" + "GyaxRSZskm8p50wyNdt9uNvr4+OBwONDU1Yd68ecwPk00j80TweDzo7e2F0+" + "lEc3MzSkpKIrYRWifmi5mZGXR3d6OgoCBqRodEIkEgEGBa91AUxTlO9uQbGqKxbZ" + "sCv/tdGNnqh4GN24HlTwOSY6qtXCLH95d/" + "H9euuBYThokIwiX7J8RKEMvZy+" + "PxwGg0orCwMOV0KKEWIXONvIUEH0mAXWkXbdGO+" + "BRPTk5ieno6IuslvNLObrfnTJCSDPKedAm8Xi/6+/" + "thsVjQ2NiIjo6OiAt8rptTAse00enp6ZjHCRzLYMhmtZDT6UR3dzdomo7a8YKQj0" + "wmw+HDh1FYWAi9Xh9Vr3O5gIcflmH3bjlcLtb3U80AJ+" + "8C1jwCyD2cz5zfcj5uX3s7FhYuhN/vh4k2JVU6G01v/" + "PDDD6HX6+F2uxnjcdItmC1PJNqHKC/ERzryWviind/" + "vR11dHeNVzV60k0ql0Ol0mJychMlkEqQwYmhoCJdccglMJhMoisIVV1yB6667Lu1" + "xYyHvSdfv96O3txfT09Oor69HW1tbzAt7rppTAlwfB6KNxpuApCotXdJ94w3g409" + "prOmKPel9Ph9TdNHS0hIz6iZSQnt7O6PXTU1NwWAwwO/3f/54r8Pbb1fi/" + "vtLMDLCOnaZG1izFzj5XkBt4Yx9Rt0Z2LFhB5aWLQVN07DZbOjr64Ner0cwGGTOL" + "Ymo2TpxIkgkEpSUlHBuCoFAgJnM4fnEhIh1Oh1DIrlGlkKNI3QVmVA57qSrsFKph" + "Fqt5rRoJ5V2n376KZ5//nkcPHgQnZ2daG1txY4dO9DS0pL0/" + "mQyGR566CF0dnbCbrdj5cqV+" + "OIXv4hFixYJ8n0i9peRUbMIUgXV3Nyc8ELMZKQbi3SjWS3yIVLiv5BqS+" + "tAANh6lxu7+" + "74PuMqwW34l1qzhkngwGMTg4CBGR0dj3rDCdVtCeNHSwN59149rrlHhww9ZOc+" + "SwKyEsHE7oOd2bVhRsQI7T531SACOkT+" + "RXAoLCxl9mP337PcLMMdKFuzIv8OPP9oTT1FRUdR8YqIT9/f3M3mpJAfZ6/" + "VCoVCkTMC5Rt5CV5FlI0+XVNqdc845mDdvHl5//" + "XXs2bMHR48eTbn9elVVFXMd63Q6tLe3Y2RkRCTdWKirq+" + "Otp2aKdKOZ3sSzWuQ7ZqqeDsPDwH9eNYQPms8FOj4GANzx8lJ8/etNmD//" + "WNmzwWCIeSOIRraxCGNsjMLWrQo8/zzbcIcG2l8CvvAToPQoZ/" + "tqdTWuWXQNzmk9B4X6QgQCAQwPD2N8fDyC/" + "Am5sI+PHFMwGOQs2LFfk0gkSRFTPJ14cnISZrMZhw8fhs/" + "ng0Kh4ETEarWaF5nmGunmaqsevn4QpARYJpMJZnpjNBpx4MABrFmzRpDxoiHvSTf" + "Z7hGZkhfYpEuq3QoKCqJaLfIdM5XS3f/" + "5Hwku2fE27Gf+J6A+" + "1ljcpTmKt96i8OUvz9pAFhYWRm25Hp59EI9s3W7gkUdkePDBMN224Q3gC7cB1e9z" + "tq/QVuC2dbfhwvYL4XHN9qA6cuQIbDYb5HI55s2bB7/" + "fD5vNhoKCgpiTmExI9sQk54rcKGiahsVigdvtTlmeIDrxvHnz4HQ6mcjH6/" + "UyXrdsnZhNxNFa8eQaWeZqU0qA37wW2uzG4XDgvPPOw09/" + "+lPBml1GQ96TbjJIx8g8HkhWhM1mQ09PD6RSKRYvXhzTapEPkjUe9/mArdsk+Om/" + "HgXOvulYRkBAAf0/" + "foY7z+lCa+uHGBqSR63EI+eFRIrxiImmgZdekuKOO+" + "QYHGRtU71vlmwb3uJsr1foccOaG3B159XQKmbPSdAfZFaoly5dCplMBrvdDrvdju" + "HhYTgcDtA0zUkB0+" + "l0MZ8W2ETs9XrR29sLj8eDZcuWQaVSRcgTyRBxeIQazes2EAgwRMx29WLrxIFAIG" + "W5iI1cI29gbnx5LRYLR+9NB36/" + "H+eddx4uvPBCnHvuuYKMGQt5T7q5kKcXCAQwOjoKs9nMy2qRD5KRF4xG4KLvBvF+" + "5ZXApl8ee8M2Hyv7XsCuO3Tw+YZRU7OI0a7YYEsJbBKKhgMHKPz4xwq8+" + "y5rgpV9Cpy+BWh/" + "mbOtSqbCVSuuwg1rbmAMadiE2NLSwnmcj6Wz2mw2TExMoK+" + "vD4FAgCEynU4HvV7PROukkGN8fBwNDQ2cJpzh8gT7OyciYj6ygEwmi+" + "rqRXTiiYkJTE9PM74f7Kg42QUoobJacjHSTUaCsdlsaGpqEmSfl112Gdrb23HDDT" + "ekPV4i5D3pziWI1aLZbIZGo0FnZ6dgNwG+pPvqqxJcvnkSti+fByz497E3htfi+" + "7on8Z/XTKOpqRAmkydqChh/3RbYsUOB556TgqY/" + "36bIMLtAtuxZgDr2BCGlpLhkySW4bf1tqNbNuvqTRTuTyRRBiLEQS2d1uVyw2Www" + "m80YGBiAz+eDRCKBx+NBSUkJ85QRa/xYOnG0BbtgMAiPx8MUecRasONz/" + "AMDA1AqldDr9bDb7bBYLBgeHk5aJxaKdHMx0k3G31cos5t33nkHzz77LJYsWYLly" + "5cDAO655x6cddZZaY8dDScc6VIUlfbFFggEYDQaGQKpqanBwMCAoFF3IjtGrxe4/" + "XYpHnvpI+BbZwP6EeY99ZHv4K61V+I/" + "NilRWzvrTDY1NcWMlwzZejzA3r0yPPCAHE7n59voRoENdwGdTwFSrkZ+" + "Xut52HLyFjSXNDP7MplMMBqNqKysxOrVq9NuO67VaqHValFVVQWn04mjR49CKpWi" + "uroaXq8XPT098Hg8DJGRiDheYUQ0Ivb7/TAajZienkZzc3PCBbtE34tsT/" + "KJyWo7uycaiYrj6cRCLcjNxeIXn3GScRgTwkv35JNPzojsGAt5T7rpeuomA9LGZ2" + "hoiNMzzeVyCZ4VES/S7e8HLr5Yjg/" + "cLwHfuwSQf96IMSRBXfcOPHPV17FyZR1HPyQaMXvFPx7Z0jTw8suzuu3AwOeTSTM" + "FnHQfsPrRiMKGMxvOxNaTt2J5xXLmNavVip6eHmi1WnR2dgrqJUGKTEhucbTJ5/" + "P5YLPZOD6xhMgIEUdb8GL7LNfU1HBuFOwFO3aZM5BYJ45FlrF6osXSiUOhELxeL+" + "RyeUKf23gQMtKNdy0lg+Pd1hE4Dkg3WaRCuuwUq4qKigirxWx2BH75ZQmuuFIK+/" + "J7gK9uOfaGpxBf9z+KX/" + "zsK9Bo1BGfoygKDoeDsd2LN9kOHKBwyy0KvPPO51GQygKs3QOs2w0oHZxtT6o5Cd" + "tO2YaTak46diiflzj7fD60tbUJajBE0zRGRkYwNDSUsMhEoVCgtLSUQ2TErNtut2" + "NgYAAOhwMURaGgoAB6vR4ymQwjIyPQaDRYuXJlxHUSK6qNJ0+" + "QCDfZaySaThwMBnHkyBFIpVKOz214Gx4+" + "OnEuNqU83lv1AMcB6aYa6fIB22qxqKgoaopVsmPyhVQq5fhEeL3AbbdJ8bP/" + "CgBnXwos/fWxbS1NeGLDc7j4rOUR4xACKC8vx/" + "DwMIaHhwGAE+" + "2R9KyxMeDOOxV49tnPdVuFA1i9FzjpAU76GQAsr1iO7adsxxl1ZzC/" + "QTAYhNFoxOTkJBobG1FaWiqo5DIzM4Oenh4UFxejq6srpQhPLpejpKSEU3UXDAZh" + "sVhgMBjgdDqZtk5Hjx5lzlG8zAkgsU48NTWFqakplJWVxXViSwSpVAqZTIby8nKG" + "cIjOTRy9hoaGOI5ehIjDdeJcLCcOBAK8bwR2u10k3blCMp0R+" + "BIk6YygVCqxbNmyuFZzmWiHwx6zvx+" + "46CI5PjxiBi75OlD7DrNdifVUvLP5N6iv5Jbuhuu2hYWFzCM4aeVts9kwPDwMs9m" + "FF1+" + "swfPP18HlkgJyF9D1s1kpQTvFGbd9Xju2nLwFZzefzUxgmqYxPj4Oo9GI6urqtHX" + "bcBDT9FAohI6OjrRS8cJBNOeBgQEsXLgQVVVVjO7PrlAjmRMajYZzw4oXUUokErj" + "dbkZzJpFzLCc2cjxSqTTugl04WbJ17lg6sclkgtvtZroE63Q6uFwuQUz8hdRDk9F" + "0c7GTMR8cF6SbDBKRLttqsa2tjZeLUSabU77yigRXXimDVdYDXH4WUNLHbLNWdhn" + "+uvOnUMiORWB8FslIK2+9vpCr28o8wJrHZv0RdOOczyzUL8Tt627HtxZ/" + "C1LJsQud3Jx0Oh1WrVolSB4qATtybmpq4t2Iky+sViu6u7uh1+" + "sjjj1ehZrNZoPFYsHQ0BC8Xi+TkUCIWKVSgaZpGI1GTExMRPWzSKfCjk+" + "EGksnJt4FdrsdZrMZk5OTTCk9335o4ZiL/" + "mjZXPgSGscF6SYT6cYyveFjtZhNBINS3HtvJX7zG/mswfe3zgY05tk3aQo/" + "atmFB869lhNt8q0kA4APP5Tgllvks/m2Ui/" + "Q9XPglHs4WRDAbFvzHyz6Ac4oPQNupxv79+" + "2HVquFSqWC1WoFRVFYtGhRRqJPg8GQkcjZ5/" + "Oht7cXbrcb7e3tvDVntpNZdn+G2wAAIABJREFUZWUlc6ykQs1ms2FsbAwOhwM+" + "nw86nQ4LFixgottEmRPRdOLwBbtAIACXy4VQKMT4TyQjT7C7BAcCAej1ehQXF0ft" + "h8bWieN1fhCadPmst5D5ngt5+" + "sniuCDdZBAe6fK1WswmjEbgW98qxYEDcqD9v4HzLgRks/quNKTG//vyM/" + "j2iq8x29M0zauSDJj1Sdi+XY7nnpPNku2q/" + "5ol28JhznZV2ircsu4WfGfpd6CQHpsEhLDGx8eh0+ng9/" + "vx8ccfQ6PRcKK9VCNeu92Oo0ePQqvVRl3ISgekVfzIyAgaGhpQXl6e9m9NURRUKh" + "VUKhV0Oh2OHj0KvV6P+vp65vG+v7+f6bAbrqXH+" + "63Y0W14RgWRBaJFxHyJmETMsfqhkXbtpPOD3++" + "PqhMLTbpqdeRCcDgcDkdeeukCJyjper3eCKtFPi5liSBE/uSf/" + "iTB5ZfLMDNDAV2PAWddwxQeFFDl+PN3/hurq7uY/fHNt3W5Zn0Sdu+Ww+nxAV3/" + "NSsjhJFtuboCN6+" + "7Cd9b9j2oZMc8I0gGx8DAAGpqatDW1sYhBFKwwLZ6DCfieATKjj5bW1sFn1DEmH3" + "evHlYvXq1oFpgKBTCwMAATCYTmpubOQbd7H+" + "TFDC73Y6hoSE4HLOZIOGlzuGP1263G0eOHIFCoYh6I4qXOUEQbcEuHlmydWICEtU" + "TeYLoxBRFIRgMYmxsDAUFBVHT8PiCr6ZrtVoz6o+" + "QSRwXpJsM0UmlUszMzGB8fDwpq8VEIPaOqeZM+" + "v3Atm1S7N4tA0ADp98BbLibeb9G3YS/" + "fudVNBQ1JEW2NA288IIUW7fKMTzuBTqfBE6+" + "L0JGKFGW48frb8Dlyy6HWs6NNEjWQFFRUVTdNrxgYXa/" + "xyIlduWYWq1mSJhExENDQxgdHRUs+mTD4/" + "Ggp6cHwWAQS5YsEaz7M8H09KyBUEVFRUIZJFapMFnUHB8fZ9YTyIIduZm1tbXFzE" + "nlU2EXbcGOyBPJGMWTqJ6tE09OTmJ8fBx+v5/" + "JJybXRLI6MV9N12q15mXmAnCckC4fkMez7u5uSCSSpK0WE4E4jaVCuiMjwMUXy2b" + "1VSoI/McPgVVPMu93lq/Gq998CfPU8xAMBnmRLQC8996sbrv/" + "oAdY9Rjwnw9ELJAVyspx68nX4/" + "Lll0e0xpltkz7bSWLx4sVJNwskRMzWPz0eD7MQRbxzVSoVQ7ZkYSpd4mVHn5lYhP" + "N4PMy5WbZsGa9H4miQSCQRj/" + "ahUAhjY2Po7++HSqWCTCbDkSNHODcs4tmQbKkzAMZKk6THhRvF862wIyC/" + "dW1tLfMaacETTSdmV9mFR+" + "1855DFYhGkGm0ucFyQbqIJajabmcqojo4ODA4OCkq4QHRPXT54800Kl1wixfS0FJ" + "D4ga9/F1j6PPP+mQ1n4tdf+zXUMjVHt433nYeGKGzZIsfv/" + "+gAuh4Crt8DaKY52+ipSty6YTO+v+" + "KyCLINBAIwGAyYmZlBU1OTYIuKFEVBrVYjFAoxK+" + "bLli0DAGYhamRkBB6PJ2pGAF8iJrnVfKLPZME21ckEmft8PnR3d8Pv92PVqlUMmZ" + "PMCbvdDqvVysmcYOvE8TwbJBIJY6fJllnYC3ZkfQDg78QWTaZIVicmROz1epPy0s" + "1HHBekGwt2u52JbEnPL6/Xm/XuEdEQCgHbtvnw4IMFs4UIUh9w/" + "jc5Tl1nlJ+B35/" + "7e0ggYRzA4l2QDgfw0ENyPPyUGd7ljwCbHwVUNs422mA1bjl5M65ec2mEjMCu9lq" + "wYAGampoEfdQPBAJMHzvSoZlArVZzept5PB5ORoDb7YZCoeAQcTjBuFwudHd3Qyq" + "VYvny5Sn5GMcDuXmXlZWhq6tLUF2Yfe4bGxsjDIHYmRPsDgnEUpRElC6XCzKZjDl" + "PxLMhFAqhr68PdrsdixYt4mRsRDN851NhR4iY70JaPJ2YlDu7XC4cOnQIMpmMExF" + "rNBrOMYqkm2NwuVyc9uvsHyeTRuZ8SXdw0IWLL6bw3nufH5fUB1xwAdD2KrPNFSu" + "uwDnKczA9OWsDGC/" + "SCwaB556TYsvuYUy37AF+8PMIbwS1tw43rrkeN5x2MZSyyIR+" + "s9mM3t7etKq9YoGmaYyOjmJwcBC1tbVobm5OSOZEO2T7pbJTswjBEP8Bj8cDl8uF" + "trY2wdP9vF4vuru7EQwGsXTp0pSlhFiw2+" + "04cuQIYyyfzLlXKpUoKyuL6CNGzpPRaITVaoXX64Ver0dlZSUjJ8QjSr5ObMQsvr" + "CwEH6/" + "P+kKO7ZOXFZWhsnJSaxevZr5Dg6HAwMDA3C5XAxpHzhwAEeOHEF9fT3v8xQPr7/" + "+Oq677joEg0FcfvnluPXWWwUZNxaoBPmteZGBHAqF4Pf7mR5bFouFefSLNrnfffd" + "drF+/XtBjIN0Y2NFaOHw+H155ZRQ33bQQExOfR2GSwGyEu+i/" + "me2uXXUt7tpwF8xmMywWC+x2O7xeb8QilFKpxP/" + "+rwTX7voEvWUPAR0vcNqZA4DS3oofLr0JW8+" + "5AHJppKTidDrR09MDiUSC5uZmwQnFYrGgu7sbRUVFqK+" + "vF1TWIWTe398PnU4HiqIYdy52RBzP5jEeiMHR2NgYE30KiUAggL6+PmahTOiMDY/" + "Hg6NHj0IikaCxsZFJYbPZbBEm8eR8JUP4drsdhw8fRnFxMWpra5l8eTan8KmwY2P" + "fvn1YvXp11PeITvy73/0Or7zyCkwmE2OC/8wzz/A+7vAxW1pa8Le//" + "Q01NTXo6urCb37zGyH6o8W84I6LSDcQCKC3txcmkylhR+" + "BMIV6kO1tZNYAnn5Tg8cdb4PeTY6OBr1zJIdzNXZtx5yl3QiKRcCKY8EWo//" + "uHCfe80IsjJU8Bp/89Yp+yyU58t/" + "EmPLD5K1DIIyMatktX+KO+ECBZA4FAQPDSXWA2T/" + "Po0aNQq9VYs2YNZ0GGHekRPwU+7mJskBSz0tLSjEgJJOe2trY2YWfoVMYn+" + "chs3Vmj0cQ0iTeZTOjt7eUsdsVK9QsGg4zm397eHnGziNY6KZWOHeEgN9Pvf//" + "7MBgM+OpXv4rTTz8dg4ODqZ0ozJJ8U1MTGhoaAADf/OY38Yc//" + "CFjTSmB44R0Q6EQ5HI5Y7U4F4hWXkwiscOHB/Hkkyvwxz+GpbiceifQ+Qvmvz/s/" + "CF2btgZ9TuQRahJaxDX/Oo1/" + "MP3GLDyaOR2htNxhuoy7Lx0OaqqCgA6CID7iDgyMoLh4WFereCTBcl/" + "npiYyMhCE7lZ2Gy2mF06opnakBxZm83GuItFK1bw+/3o6emB3+/" + "PSIpZopzbdEGkCmLQlEhC4GsSr1KpoNfrQVEUxsfHUV1djVWrVkW9dlJxYiPgm8J" + "ms9mYppSEMFPByMgIFixYwPy/" + "pqYG7733Xsrj8cFxQbpKpRILFy7kvb0QRubhkEqlHK14enoa3d3dsForcNttp+" + "Dw4bCLv+0V4LTtzH8v7LgQ951+X0wC/GS8G9c//" + "xTedT0L6LmLYwhJgU8vwBe11+" + "OR2xajtPTYpDEajUyhglQqhdVqRVlZmeAFAuzobf78+" + "YJnDbCLM1K5WcSySSREPDg4iJmZGfh8PhQVFaG8vBx+v1+waiuSwka8GIR+" + "sggGg8wiZTpSRayca4fDge7ubrjdbqhUKoyOjmJqaoojTcQziQfi68TkyaiwsDAi" + "hS1aRJyvXrrAcUK62TQyjzcmSekhK+" + "hDQ6vwwx9qYbdzj09bOQL625fC9bn8evrC0/HYmY9FfA9PwIM/dL+KB996Bp+5/" + "3f2RfYamEcPfHg5lnt/" + "iD3b52P1aqLncv0BSGmt1+" + "tFcXExbDYb9u3bx1SMsQsVUgH5zmq1OiPRm81mY8prhTTVkUqlzOP2+" + "Pg4qqqqUFtby5jakAaZACK0z2SI2Gw2o7u7GxUVFejq6hL8aYykyMWLPtMBcVmrq" + "6tDZWUlMz7bJH5iYoK3STwbFEVhYmICBoMBjY2NKC8v5xURm0wmQbIXqqurMTQ0x" + "Px/" + "eHgY1dXVaY8bD8cF6SaLTJBuMBiEyWTC9PQ0mppasWfPPDz4YOTpbW8PoeHGH+" + "NPwxYAQK2+Fr/86i+ZRa4QHcK7w+/id5/" + "9Di989hIcAUvkzqabgfeuxYLpi3H3NhXOPTcIioq0lvT5fOjv74fdbo/" + "I4ohVuqvVahkSTuQhSxYunU4nWlpaBC/" + "LTNWYJpnxe3p64PV6ObqzQqHgyBbsqrHR0VE4HA6EQiHG+DxW+" + "S7JuQ0EAmkVUMQCyaoIhUIZSZHzer04cuQIJBJJ1JtpMibx7DJnctPyer04fPgw5" + "HI552Yar7DD4/Fg9+7dGBoaSrqhZzR0dXWhp6eHMVf67W9/" + "i+" + "effz7xB9PAcUO6mfDU5QPSL210dBRqtRp1datw8cUKvPVW5N39ggv8uPOBMSz51Q" + "vMa49vehzeoBcvH30ZbxrfxJ/7/" + "gyT0xS5o5AEOHo28P4PoJv8An58cxBXXx2AShW5eMc2dqmrq0Nra2tE9BPrMTLcQ" + "5YsrLAjYolEwoyfiYVLtu6cidJgstDEd/" + "xYVWPsRShSvktKX71e7+c34Ka4GS2pHj/" + "J6W1qahI8q4Kd4pfs+" + "LFM4olfA7lpkXz5iooK5oksHiQSCQ4ePIjrrrsOZ599NgwGgyBPPDKZDI8++" + "ijOPPNMBINBfO9730NHR0fa48bDcZEyBsxGFXxJ9/" + "Dhw6ioqEgrn5NM3MHBQdTU1KCoqAh/" + "+csk7rhjEQYHuRNYJqNx770+XHVVAB+Mv4+" + "Nv97IvKdX6GHzhWm0bJgbgIOXAgcuhdQ1H9/7XgA/" + "+Ykf0eYB6XTR19eH8vJyLFy4MG09khCxzWZjdGK32w21Wo2qqqrPfXn1guX1so1p" + "6uvrBTeptlqtOHr0KIqLi9HQ0CC48c3k5CR6e3uZlkhsH4V0ZRxgNmvjyJEj0Ol0" + "aGxsFDSfGpjNcT98+DC0Wi2ampoEH9/" + "tduPw4cNQqVSYP38+U6Fms9kiTOJJfrrX68X999+Pt99+G08++" + "SSWLl0q6DFlCDHv4scN6fr9ft7dG/" + "jk1MYCIbaenh7MmzcPDQ0NkMvlePrpAK67Tg2fjxvhVlaG8OyzXqxfP3sqZzwzaH" + "miBS6/K/ZOHOXA4fOAj78NDJ4EgMKXvxzEXXf50NYW/" + "SchCx0KhQJNTU2CP2qSai+" + "JRIKmpiaEQiGGiO12O4LBYIQ0kcyEZRvTtLS0CJ41wJYq2traBE9hIzm3drud45L" + "GlnHIuUrWgQ04lqZlNpvR1tYmuJRDyptNJhNaW1sFr/" + "Zip7FFM3Un2xA93W6347333sO9994Ln8+HlpYWXHXVVdi4cSOnIi+" + "HIZIuG0ajEXK5PGnBnCzoKJVKppDA7wduvVWKxx6LJJh164J47jkvwp+" + "eXu97HZvf2Iwh26yAT/m1oEdXAAOnAr2bgKF1AD0bgS1dGsI99/" + "hw2mnRvxtbV21ubhbceYn4MJjN5rjm7uzHbTJp2LpnrAWoTHsZsB/" + "F6+vrUVFRIbhUwc65nT9/" + "fsLxw8nFZrNFdWAjmiVZiKuqqsKCBQsEX4hj+" + "zHU19cLPj6JngsKCtDU1MTr6cLr9WLXrl34xz/+gf/f3rlHN1Wma/" + "xJm5Ze0gbKpZaW2muSlntThFlymeVRUIczc8CCglLkcljHASwiHEAcBPQAioIoyM" + "BC8QwcQcc1gxwVZhgVUQZ6oRSptGlrW+idljZJm3t29vmj59v9UhJI0r173b+1/" + "IOCO193kne/3/u97/Ns27YNZrMZ+fn5ePjhh/Hoo4/" + "yuj6B6P9B1263ezyGW11dDYZhPG4zIx5dFosFSqWSyzKamoCFCwNw4cLdH9IXXrB" + "h504b3O0kL1yQYON2Pa5d8weMQ9H5PRo50oGtW21YsICBq+8AHazi4+" + "MFqXuSFq1Ro0YhOjra6+" + "vfLxCT2uEDDzyABx98UJBgotFoIJfLkZCQIMhWXKPRIDAwEMnJyV06mKWHX8i9Mp" + "vNnFHjgw8+" + "iGHDhvGiwEag28yEOKhkWRa3bt1CXV0dVCqVx9nzlStXsGbNGsybNw/r1q3j/" + "X3rJsSgS1NfXw+DwYDExMR7/" + "jvaVSI5OdlprPj6dQkyMgJw86bzvQ0MZLBmTTFmz27m6p0ka5FIJLhxQ4ItWwJx5" + "ozrp31YGIuXX7Zh1So7XB12syyLxsZGlJeXIzIyErGxsYLUPYl3GCmf8AVxxiWHd" + "OQLRbdjeduS1RmbzYaysjIYjUYolUreg4nD4eC824TouSUPvMrKSs7uh3QEdFWBj" + "UCy5+" + "joaMTExPDeZtbW1saNCHtamzebzdi5cycuXbqEQ4cOCX6gJTBi0KUhdtgqlcrl35" + "OZ++rqasTGxiI6OtopC/viCz8sXSqFweB8X2NiHDh50oKJE1lO/" + "Umv10On06G6Gjh+PBlnzoyAw3H3+yGVsli2zI6NG21wV2qm+" + "2ETExN5aZmhIT5xpIbGd7AidUnyECOlCroli2R5AJxKE8Qm/" + "l7Qp+" + "6de0r5ggSrBx54ALGxsbxn5waDAcXFxQgNDUViYqLLBx6twNba2uqRAhvBZrOhpK" + "QEVqsVKSkpvNf+yRBIY2OjV7Xn3NxcrF27Fk8//" + "TTWrl3bV7Nbmv4fdIlpnycQPdIxY8Y4/ZzU58jpf1xcnNObz7LArl3+2Lbt7g/" + "E1KkMjh2z3BUwW1ra5RYPHpTCbHb9PvzLv+ixZYsR48cHu/" + "ySWSwWlJWVwWw2Q6FQ8C6MwjAMd4iSmJjoVijIV+" + "i6J8msPPHvogMLCcR0431YWBh3HTL+Gh4eLsipPt1zq1Qqee+" + "5pbNnXw6yaAW21tZWToGNvldtbW2oqKgQpLYNdAjgDBs2DHFxcR49kEwmE3bs2IH" + "c3FwcOnQIKSkpvK6pBxGDLg1R1powYQL3M61Wyxkiujr9N5uB//" + "gPKU6evDvb+vd/t2H3buf6rdEIHDzY7kmm1bq+/" + "1OmMHj1VT1UqmYuy6O7AGQyGbRaLRobG5GQkHCXxmpXoUsVQmVutDBNUlJSl+" + "qepN+T3CuilEUmlxISEhAZGcn7+DGtc8t3zy3Q0SZHykV8rZ+" + "oijU3N6Ouro77bMnlci4Yd9ap9QWHw4Hy8nJOAMfTHVJ2djbWrVuHhQsXIisrqz9" + "ktzT9P+gSeUdPsFgsuH79OtLT07lWKNKq5CqLbGxkMX9+" + "AC5dcg64UimLPXtsWLaMdhcG/vu/pdi5U4r6etcfZqWy/ZDsX/" + "+VQecYSrba1dXVaGhogFQqdcpYOmd4vkKCYVBQEJKSkngvVXgiTNMV6LrniBEjuL" + "onmYDqXJrw5X7ROrdCHMQRcR2z2QyVSsV7mxx5YFRXV3OGmbQCW2trKwwGAzf84e" + "noLo1Op0NxcbFXDwyTyYQ33ngD+fn5OHz4MJRKZVd/" + "1d6IGHRpGIbB5cuXERERAa1WC4VC4eTaSmBZFiUlLObMGYTycucPU0QEi+" + "PHLZgxg8yFtxtA/td/" + "BaCiwvUH74EHHNi82YbMTAbuvr86nY6zFkpMTERgYKDTVpt8WYhCFAksnn5RbDYb" + "108qZDAkwjRRUVGCbGM1Gg1kMpnLuictZEMyYm/" + "ul7ueW75gWRYNDQ2oqKgQrPZsMBhQVFSEsLCw+" + "7Zp0Qps5MF1P7t4hmE4LeCUlBSP+54vXbqE9evXY9GiRXjxxRd5PwTuRfT/" + "oMuyLKxW633/" + "HSn0l5aWYvTo0S77KokQc3Y2kJERhDt3nP9eoXDg888tSExk4XAAp061B9viYtdf" + "YrmcxUsv2bBypR3ukhlvD7EYhuGCil6v5zRj6XFdWvWJHq0V6otOC9Pw3fUAdE30" + "25NAHBISgqamJq96br2FSDuSXm++7xFdG1apVD4/" + "VOn7RQIxAK6zpKmpCTExMZx4+f0wGo3Yvn07fvrpJxw+" + "fBgKhcKndfUhxKDLsizq6+" + "tRXl6OqKgo1NXV4eGHH3b57xiGwblzfnj22SAYjc73bvp0Bp98YoFcDvzv//" + "pjx44AFBa6DrZBQSx+/" + "3s7XnrJBncTx+0C5+" + "1fkq4eYtlsNqdAbDQaERgYiICAAOj1egwbNsztiXhXoKe9hGjRIu9dZWUlr8GQzv" + "BaWlrQ3NzMiccPGTKEt5on4DzxJUSbGdCx1Scj4HzX54kAjsFggEwmg8lkAnBvBT" + "aWZbnsdsmSJVi5cmV/zm5pBnbQJW0+4eHh3GFOZ8seciDjcDhw+rQ/" + "nn8+iHJ4aGfhQjvef9+Kr7/" + "2x5tvug+" + "2UimLJUvs2LDBjqgo17eQDiSenuh7C8mqbDYb5HI5jEYjzGYzJ0jdefLJW4QWpgE" + "6as8hISFISkoSNDMkNX06I6ZdJ+jShDe/" + "J9F78OZU3xsYhkFZWRlaW1u92up7A9GH7vzQ69zuRxTYCgsLUVVVhZs3b6K+" + "vh4fffQRkpKSeF9XL6b/B12g/UlMQ/" + "QIJBIJFAqF04fx0qVLmDx5MidoTkaIT5+WIjNzEBjG+" + "Z6tWWODSuXA3r0B0Ghcf2n8/FgsWMBg0yYb4uPd3zqtVovS0lJOtESIbXhlZeVd/" + "bBAh/" + "sq6R8mI6jeauu2tLSgtLQUERERggjTEOdgnU7nNAXIJ5723NKHT2QHQZdyiONu50" + "BMbKQMBoMgeg9AezAsLS1FTEyMT1OD94Mc9lksFo/" + "7ehmGweeff44jR45wRrBmsxlHjx7F+PHjeV1fZ/" + "bu3YsjR45AIpFg7NixOHr0KO+9yB4yMIIuURqzWCxc7U+" + "pVLrcyuXk5GDcuHFcsJBIJPj+e3/" + "8278NuivDjYlxwOEAamtdfyklEhYZGe3BVql0f8vIODHplOD7S0hnz+" + "RL6ElWRbQASBAmik+kvYgWsBFamIY+ZPJ1/Ph+WCwWzr/" + "N157b+wVim83G1c+" + "FOEwkfcMMw0CpVAoSWIhimjdnAG1tbXjttddQUlKCw4cPc1OfpJ1TyLawmpoaTJ0" + "6FTdu3EBwcDDmz5+PJ598Es8//" + "7xgr3kP+rcxJYFMPNXX1yMhIQEpKSluD8mCg4Px008/" + "YfDgwZDL5WhrG4xFi0LuCrgAUF3tPtg+" + "9RSDDRtsSE11H2zpzDMpKcllp0RXIaO7YWFhXrsrSCQShIS0u0101tal9WLNZjMY" + "huEyQ77bzMg0llAOFLSObld7bl3pxtpsNk4Qnow4E/" + "1Yui+2KwGYfrCSvmS+sVqt0Gg0YFkWaWlpHr3PLMvihx9+" + "wMaNG7FixQocOHDA6YHfXT24drsdJpMJAQEBMBqNGDlyZLe8rjf0q6B7/" + "fp1yOVytwaV5JCMZVmoVCpum93c3Iz//" + "M9BaG72bAvr789i3jwG69fb3Eotktcj7VPE3lmIw42ysjJu+" + "8fXIRbpdZXJZAgMDIRWq0VMTAwiIiK4PmL6RDs8PBxyudyrHk8CEV5paWmBUqnkv" + "Y0N6OisGDx4MO/" + "+cEDHe11bWwulUsk9WGnbc2JpExAQ4FTKcTey2xm684FP2yKahoYGlJeXexXQW1t" + "bsWXLFpSXl+" + "PUqVOIi4vjfV2eEB0djXXr1iE2NhbBwcGYOXMmZs6c2SNruRf9srzQGfqQDOgwu6" + "OJiQlGS8u9P/" + "jBwSwWLbIjK8uOuLh73xpS8xw8eDDi4+" + "MFOQAiKmNCTKsBzhq6CoXC5RbWVSsWffAkl8vdZnf0eHBMTIwgwit0z61KpeK9sw" + "LokEb0tL5NB2K6y4SuEdOBmGVZVFVVoba21q0WbVchnQn+/" + "v5QKpUefV5ZlsX333+PTZs24YUXXsCKFSt6zI0baP/OPfXUU/" + "j0008xePBgzJs3DxkZGXjuued6YjkDo7zQ2bLHk2BLiI1l3QbdkSPtmD+/" + "BU88cQtSqQ6Njf6wWuVcUKFVnkwmE0pKSgAAY8aMEaTmSVS6iNEh31mbO2EaVxBz" + "R1orwG63cwGFaP3S2R1xfC0pKcGgQYMEKyXQOrd8W80DzgE9NTXV44AeGBiIoUOH" + "OpWZiMmjXq9HXV0dJ2ITFBQErVaLIUOGID09nfdtOl2u8Maap7W1Fa+++" + "ipu3bqF06dPe+XGLRT/+Mc/EB8fz/0Oc+fOxT//" + "+c+" + "eCrpu6VeZLlEa8ybYEi5c8MPChYO4wBsWxmLWLAYLFtjx6KMOpwky0g9LDp7IF8T" + "hcMBqtSI5OVmQGX2h3SF8EabxFBJUtFotGhoaYDabIZPJMHToUC4Y8/" + "X7GI1GpwEEvgM60OGQK1TXgMPhQGlpKZqamhAREQGLxQKTycSLrCPBbDajqKjIq0" + "ENlmVx/" + "vx5vPLKK1i1ahWWLVvWo9ktTXZ2NpYuXYrc3FwEBwfj+" + "eefR3p6OlavXt0TyxkY3Qs2mw12u50TQPEk2NJotUBhoR/" + "CwlikprJuBchpaK+0iIgI+Pv7Q6/" + "Xc866tKaurxmp0DoGQEdAJ1oMQmSeJFCRgE5nd3q9HhaLBcHBwU71Tm/" + "WIbTOLdC+DddoNAAApVLJ+2Ei0CG+" + "5ErPgJYM1ev1Tvq6nbWb3eFKk8ET9Ho9Xn31VdTU1ODQoUOIjY3t8u/" + "KN6+99ho+/" + "fRTSKVSTJw4EUeOHBHkPfKAgRF0169fD5lMhvT0dKjVaoSFhfGegdA0Nzc79ao6y" + "0B2nP7rdDq0traCZVmvDp1ohSuhdAzo0VqhAjpxWAgICEBycrLbLwFtY0P+" + "62wL784EU2idW9rjSwhbIcC5rzclJcXj0hStr3u/" + "QGwymXDjxg2vrHNYlsW3336LzZs3IysrC0uWLOk12W0vZmAEXY1Gg8uXLyM7Oxv5" + "+fmwWq0YM2YM1Go1Jk2ahNGjR/NyoEWkIf38/" + "DivNE8gwjWkLEEOnUgQpk+y7xXQ+" + "YDurBBKZ4CMODc1NfmceXZ2I9br9U6WP8HBwaivr+" + "f6VfnWuQU6XBDkcjkSExMFGWMlPbF8vBf0AAy9i2BZFjabjXuAe5IB6nQ6vPLKK7" + "h9+zb++Mc/YtSoUT6va4AxMIJuZ8xmMwoKCnD58mXk5ubi559/" + "RkhICNRqNdLT05Genu7VjDrZ5ut0OiQnJ/" + "OyfaX1EnQ6HQwGA+" + "x2O6RSKR588EFOtpBPhBamATqbZEneAAAUSUlEQVRqnkKYKZLR05s3b6KpqQmBgY" + "GQSqVOo7q+" + "yjnS0B5i3grseArdEytUucJgMHDZ7ZAhQ7ixXYvF4nYknGVZnDt3Dlu2bMHatWuR" + "mZkpZrfeMTCDbmdYlkVzczNyc3O5QEz30JJgPGTIEKdMg9YYEGqbT2eFxPeMHtMl" + "W2wiQO1L5iu0MA3Q3r2h0Wjg7+8PhUIhSBChe24TEhLg7+/" + "PCZzTuwiiE+uLZgIZrx05ciRGjRrF+/" + "tN7zSEEkenRXZcKY65MsO8evUqPv30Uy4rPnz4sJPYv4jHiEHXHeTwJTs7G9nZ2c" + "jLy+OEQ9RqNTd7vnbtWsTFxQnSVH8/" + "4RuWZWE0Gp3GdB0OB8LCwriyxL0yO3oSSyirFoZhOG+s+7WZ+" + "Yq3PbdERYzcN3pUt3M5h9Ad47UmkwlFRUWcm4YQOw1ineONrTrLsjh79izefPNNT" + "J48GSEhIcjPz8fcuXPxwgsv8L5GV2i1WixfvhyFhYWQSCT46KOP8Ktf/" + "apbXptnxKDrDTabDadPn8Zrr70GhmEgl8vhcDiQlpaGtLQ0pKenIzk5ucsBWK/" + "Xo6SkxEmw3FNoYXOdTudUHyZBJTg4mBPXEUqYBmg3+" + "iwrKxP0EIvuue1KzbNzOYc2dbTb7WhubkZSUpIg47W0Jbk7TZCu4nA4uB7rlJQUj" + "0siLS0t2LhxI/R6PQ4ePNhj47OLFy/GtGnTsHz5clitVhiNRq/" + "94noJYtD1li+++" + "AKRkZGYMmUKWJZFa2sr8vLykJ2djZycHJSVlWHEiBFO9WFPM0ir1cppGfBpNEmGE" + "nQ6HVpaWqDT6SCRSBAZGYlhw4Z1ScbRFWQQhKi4CZEVdkfPbUtLC4qLi+" + "Hn5wepVAqr1epU65TL5V1+" + "XWL9440lubfo9XoUFRV5pafLsizOnDmDbdu2YcOGDVi4cGGP1W51Oh0mTJiA8vJy" + "QbuOugkx6PINsfsmZYmcnBw0NTUhOTmZa1lLS0u7y72BZDpC6c/S48GJiYkIDw/" + "nttc6nY6TcaT7h72tDxP3jYaGBq/" + "6PL19ja6443r6GiQrpDUfOtc6O8tfkrq6J2UBMt3X0tIi2GEcfeCXmprqsXpdc3M" + "zNmzYAJPJhAMHDnBiRz1FQUEBVqxYgdTUVFy7dg1qtRr79u0TRBKzGxCDbnfAMAy" + "KioqQnZ2N3Nxc5Ofng2EYjBs3DmFhYcjLy8PBgwe5wx++Idv8yMhIt5kOqQ/T/" + "cMMwzj1D9+rPkwOmO71Gl1F6J5b+" + "jU87a6g75sr52YSiOn3taWlBRqNBlFRUR7b2niLVqtFcXGxVwd+LMviq6++" + "wuuvv45XXnkFzzzzTK/ILPPy8jBlyhRcvHgRkydPRlZWFsLDw/H666/" + "39NJ8QQy6PQHLsigqKuLqU/" + "Hx8dBoNJDL5VzvcHp6use6t+4gHQP3Eqa5F6QFi2TExPiSPnDy8/" + "NDaWkpWJaFQqEQpB/" + "WYrE4HWIJ8Ro2mw0lJSWwWq1QqVRdeg2Hw+" + "HUQ0wGYEJCQmA2m8GyLEaPHi1IpkbcItra2rwapLhz5w7Wr18Pu92OAwcOCFK79p" + "X6+npMmTIFlZWVAIAffvgBu3btwldffdWzC/" + "MNMej2FOXl5aivr+esgYhgDV2WqKmpQVxcHFcbTktLg1wuv2/" + "2QbeZ8d0xQNeH6+vrYTQaERoaytWG+" + "dRKoKe9EhMTPRZd8fY1aB1aIUo7QHvgKCsr48oh3joRewLJ0r3RfWBZFqdPn8aOH" + "TuwefNmPP30070iu+3MtGnTcOTIESiVSmzduhUGgwG7d+/" + "u6WX5ghh0ezMOhwNlZWVcEL5y5QqMRiNGjx7NBeIxY8Zwh2AOhwO3b99GRUWFYP5" + "qQMeXe8SIEYiLi7tL6MdisfhU56Rx1XPLN+" + "QwTsgWLSKN6OfnB6VS6XTw5q1zszvsdjtKSkq8ss4B2stOL7/" + "8MiQSCfbv3y9ITzBfFBQUcDvDhIQEHD16VJAuj25ADLp9DavVioKCAi4QFxYWIig" + "oCHFxcSgqKsKyZcvw7LPPCtIxQFvy3Gub78rmh2EYyGQyJ5sfVw8EojPQ1tYmmM4" + "tOfC7ffu2YIdx5ED11q1bXkkjunNupgMxrSDW1NSE0tJSr4ZzWJbFqVOnsGvXLvz" + "hD3/" + "AvHnzemV2208Rg25fh2EYZGVl4fz585gxYwaqqqo4Cca0tDRuoq4rFu4OhwNVVVW" + "oq6vzeZtP6pw6nY7rH5ZIJE7BpLW1FZWVlYJN9wEdSl1C2ZED7Rl0UVERQkNDkZS" + "U1GV9DKvV6vQAM5vNCAwMhNVqhb+/v1d9t7dv38bLL7+MgIAAvP/" + "++4KUbETuiRh0+" + "wPfffcdZsyYwQUQEiQvX76MnJwc5ObmQqvVQqlUcgd148eP98gOpqWlBSUlJZxNO" + "J/" + "bfLK9bmpqQm1tLViWRWhoKOdPx2d92GazcaPOKpWKdxF5wHm8VqgMGmi3zikrK+" + "NcQTxxbmZZFn/5y1/" + "w1ltvYevWrZg7d66Y3fYMYtAdKNjtdvz888+" + "ctkRBQQEkEgkmTJjADXIolUouqBqNRpSXl8Nms0GpVAoWpDr33NJZnU6n47R06f5" + "hb2qv9NSaN+613kKsebwZr/UWq9WK4uJiSCSSu+rD7pybv/32WxgMBly7dg3Dhw/" + "HBx98IIj8pIjHiEF3oMKyLNra2nDlyhWuf7ikpARDhgyBTCZDbW0tPvzwQyiVSkG" + "ClKc9t2QggZQl6Pow3T/sKgMnho2BgYGCTa3RAwh8GoDS+GqdwzAMDh06hL/" + "+9a+Qy+" + "XQarWwWq347LPPkJCQwPs677UO0gL55Zdfdtvr9lLEoCvSwY0bN7Bo0SIkJycjNj" + "YW+fn5qK+vR1JSEleWmDhxImQymc+BmI+eW7o+TPpgJRIJJ/" + "Qjk8lw584dNDQ0CGbYCHQ8OEiniBAPJ7PZjOLiYgQEBEChUHic5dfX12Pt2rUICw" + "vDu+++6+RC7O/" + "vL0g3iDv27NmDvLw86PV6MeiKQVeEpqmpCVqtFklJSdzPiFEkqQ9fvXoVVqsVY8e" + "O5QJxamrqfYMBrWjmTbbmKcR9uKGhAXV1dZBIJAgJCcHgwYNdnvp3BT4HKdxBdz8" + "oFAqPR6odDgc+++wz7N27F2+88QZ++" + "9vf9mjttrq6GosXL8bmzZuxZ88eMeiKQdc1Z8+" + "eRVZWFhiGwfLly7Fx48aeXlKvwmw24+" + "rVq04i8DKZzEnkhy4ZNDc345dffhG055bIO5JWs9DQUM5rjWTEZrMZQUFBkMvlXI" + "3Y1/qwUFKYQIfEY0hIiFfdD/" + "X19cjKykJERAT27t0rWIbvDRkZGdi0aRNaW1vx9ttvi0FXDLp3wzAMFAoFzp07x4" + "mYnzhxAqmpqT29tF4Ly7K4c+eOkwj8rVu3EBUVBZvNBrlcjrffflsQ6x+" + "gvQ3ql19+ua+" + "8Iy1YQwKx3W53MgrtrJNAINt8qVQKhUIhSH2YnsDzRuLR4XDg5MmTeO+" + "997Bjxw785je/6RWdCV9++SW+/vprfPDBBzh//rwYdNsRg25nLl26hK1bt+Jvf/" + "sbAGDnzp0AgE2bNvXksvocZ8+" + "exUsvvYTp06dj0KBBuHLlCtra2pCamsplxOPGjetSS5jZbHZyo/AlEBKvNbp/" + "mBiFkkCs1WpRXV3t1TbfWwwGA4qKihAeHu6V31pdXR2ysrIwfPhw7Nmzp1dNaW3a" + "tAnHjh2DVCrlHnZz587F8ePHe3ppPYkYdDvz+eef4+zZszhy5AgA4NixY8jOzsb+" + "/ft7eGV9i5KSEgwdOtQpSFmtVly/fp3Tl7h+/" + "ToCAgIwceJErj6clJTkkbJXVVUVamtrBZGQJPXhxsZGp/" + "5huizBV32YZVlODtOVdY47HA4HPvnkE+zfvx87d+7Ek08+" + "2SuyW3eImS6H2zeJX4vZAcrSpUvx5ZdfYsSIESgsLOzp5XQrCoXirp8FBgZCrVZD" + "rVbj97//" + "PViWhV6v50Tgt27dil9++" + "QWRkZFO9WFahEan03GtbZMmTRKkPiyRSNDS0oLm5mZMmDABcrncSV+" + "irq4OJpOJEzQngdjbTJu4CZPfxdPe3traWrz44ouIiorChQsX+" + "qqDgkgnBmymy2d54cKFC5DJZMjMzBxwQddXWJZFTU0NsrOzufrwnTt3kJCQAJPJB" + "JlMhj179nDTWHyj0+lQXFx83zFhYmdOD3LYbDan+" + "nB4eLjLhwIZCmlqavJqhNfhcOD48eM4ePAg3nzzTcyaNatXZ7ciLhHLC52x2+" + "1QKBT45ptvEB0djUmTJuGTTz7B6NGjfbpeZWUlZs+" + "eLQbdLvDtt99i5cqVSE9PR1BQEAoKCsCyLMaNG8dlwyqVqksaB0SHlpiP+qJ1S+" + "rDtBA8qQ+TjNjhcECj0WD48OFeaT9UV1fjxRdfxKhRo/" + "D22297XIYQ6XWI5YXOSKVS7N+/" + "H7NmzQLDMFi6dKnPAVeEH0aMGIFvvvmGM0Ukbg1XrlxBTk4Odu/" + "eDY1GgyFDhnDli0mTJnmsKUtcL2JiYqBQKHzOHiUSCWQyGWQyGbdWYgGv1WpRWFg" + "Ik8mEkJAQWK1W3L5926XzMI3D4cCf/" + "vQnHDp0CLt378Zjjz0mZrf9lAGb6fINH5luVVUVMjMz0dDQAIlEghUrViArK4vHV" + "fZ9WJZFY2Ojkwh8bW0t4uPjnUTgw8PDuaBlsVhQWloKu90OlUoliBwm0GGdQ+" + "x5iBA87Tw8aNAgriwREhKC0NBQVFVVYfXq1UhISMBbb72F8PBwQdYn0q2I5QWh4S" + "Po1tXVoa6uDmlpaWhtbYVarcapU6fE3uH7QETgyTTdlStXYDabkZqaiqCgIGg0Gh" + "w9elSw/mFvrHPo/" + "uH33nsP33zzDdra2vDUU09h4cKFeOihhwSZfHOF+" + "JAXFLG80BeIioriHFnDwsKQkpKCmpoaMejeB+" + "INp1AokJmZCQCoqKhAZmYmGIZBfHw85s+" + "fj6CgIKSlpXEZMR8qYbQugycli6CgIAQFBcFsNuPmzZt44oknsHz5cvz888/485/" + "/jKFDh2LMmDFdWpOnSKVSvPPOO04P+ccee0z8vAmMmOnywIIFC3D+/" + "Hk0NTUhMjIS27Ztw7Jly7p0zcrKSkyfPh2FhYXidtMHbt26hbKyMjzyyCMA2ssSW" + "q0WOTk5nNoasTsiQVitVmPo0KEeZcN2ux2lpaUwmUxISUnxODt1OBz48MMPcfToU" + "bzzzjt45JFHek3t9ne/+x1WrVqFxx57rKeX0h8Qywt9iba2NsyYMQObN2/" + "G3LlzfbqG2WzG9OnTYbFYYLfbkZGRgW3btvG80r4NESOnReB1Oh1UKtVdIvA0vlj" + "nAO0P0lWrViE1NRW7du0SRB7SV8SHPO+IQbevYLPZMHv2bMyaNQtr1671+" + "TqkrUkmk8Fms2Hq1KnYt28fpkyZwuNq+x82m+0uEXg/" + "Pz9MnDgRKpUK586dQ2ZmJmbNmuXxgRzDMPjwww/" + "x8ccf491338WMGTN6TXYL8POQF7kLMej2BViWxeLFixEREYF3332Xt+" + "sajUZMnToVBw8exOTJk3m77kCAiMC/99572L9/" + "P8aNG4eamhqMGDGCm6abNGmSWyWyiooKrF69GmPHjsWOHTt86gsWEr4e8iJ3IR6k" + "9QUuXryIY8eOYezYsZgwYQIAYMeOHXjyySd9uh7DMFCr1SgrK8PKlSvFgOsDpCfX" + "z88PP/" + "30E4YPHw6WZVFXV4ecnBxcvnwZhw8fxu3btzkR+PT0dIwfPx4nTpzAsWPHsG/" + "fPkybNq1XZbdA+wNl2bJlSElJEQNuNyJmugMArVaLOXPm4P333/" + "f5ZFy0Yrk3DMNAo9Fw/cNnz57FQw89hI8//" + "lgQ3zk++PHHHzFt2jSMHTuW6+LoykNexAmxvDDQ2b59O0JCQrBu3Tqf/n/" + "RisU7WJbtdZmtSLfi9s3n38pUpFfQ2NgIrVYLoN2h4Ny5c1CpVD5dq7q6Gl999RW" + "WL1/O5xL7NWLAFXGHWNPtp9TV1WHx4sVgGAYOhwPz58/" + "H7NmzfbrWmjVr8NZbb6G1tZXnVYqIDDzEoNtPGTduHK5evdrl6xCdYLVajfPnz3f" + "5enFxcZxVjlQqRV5eXpevKSLSlxCDrsg9uXjxIk6fPo2vv/" + "6a0w147rnnumTF8t1332HYsGE8rlJEpO8g1nRF7snOnTtRXV2NyspKnDx5Eo888s" + "hA977qcc6ePQulUomkpCTs2rWrp5cj4iVi0BXpViQSCWbOnAm1Wo3Dhw/" + "39HL6HAzDYOXKlThz5gxu3LiBEydO4MaNGz29LBEvEIOuiMf8+te/7nK72I8//" + "oj8/" + "HycOXMGBw4cwIULF3y+" + "llarRUZGBlQqFVJSUnDp0qUura0vkJOTg6SkJCQkJCAwMBDPPPMMvvjii55elogX" + "iEFXpFuJjo4G0O4SMWfOHOTk5Ph8raysLDz++" + "OMoLi7GtWvXkJKSwtcyey01NTUYNWoU9+" + "eYmBjU1NT04IpEvEUMuiLdhsFg4NrODAYD/v73v/" + "s8IafT6XDhwgVOQjMwMFB0yxXpE4jdCyLdRkNDA+" + "bMmQOgXY924cKFePzxx326VkVFBYYPH44lS5bg2rVrUKvV2LdvX68TlOGb6OhoVF" + "VVcX+urq7mdg8ifQNxDFikT5KXl4cpU6bg4sWLmDx5MrKyshAeHo7XX3/" + "dp+tpNBo8/fTT3J/" + "Ly8uxfft2rFmzhq8l8wLfLtYigiGqjIn0L2JiYhATE8Mpp2VkZHSpfUqpVKKgoAB" + "Ae4dAdHQ0l5X3JkQX677P/TJdEZFei0Qi+QHAcpZlNRKJZCuAUJZl1/" + "Nw3ZkAXmNZ9uGuXktEpDNipivSl1kN4H8kEkkggHIAS3i67jMATvB0LRERJ8RMV0" + "SE4v8DeC2A0SzLNvT0ekT6H2LLmIiIM08AyBcDrohQiEFXRMSZBRBLCyICIpYXRE" + "T+H4lEEgrgFoAElmV1Pb0ekf6JGHRFREREupH/A/" + "0PUox4GMzOAAAAAElFTkSuQmCC", + "text/plain" : ["
"] + }, + "metadata" : {"needs_background" : "light"}, + "output_type" : "display_data" + } ], + "source" : [ + "prob = setup_control_points(pD)\n", "variableBezier = prob.bezier()\n", + "A, b = genCost(variableBezier, ptsTime)\n", + "res = quadprog_solve_qp(A, b)\n", + "_ = evalAndPlot(variableBezier, res)" + ] + }, + { + "cell_type" : "markdown", + "metadata" : {}, + "source" : [ + "To impose constraints on the derivatives, we can activate the " + "appropriate constraint flags as follows.\n", + "Note that derivatives constraints on velocities will only be " + "considered if the constraints on position are also active.\n", + "For instance to impose a 0 velocity and acceleration at the initial " + "and goal states we can proceed as follows:" + ] + }, + { + "cell_type" : "code", + "execution_count" : 45, + "metadata" : {}, + "outputs" : [], + "source" : [ + "# values are 0 by default, so if the constraint is zero this can be " + "skipped\n", + "pD.init_vel = array([[0.0, 0.0, 0.0]]).T\n", + "pD.init_acc = array([[0.0, 0.0, 0.0]]).T\n", + "pD.end_vel = array([[0.0, 0.0, 0.0]]).T\n", + "pD.end_acc = array([[0.0, 0.0, 0.0]]).T\n", "pD.flag = (\n", + " constraint_flag.END_POS\n", " | constraint_flag.INIT_POS\n", + " | constraint_flag.INIT_VEL\n", " | constraint_flag.END_VEL\n", + " | constraint_flag.INIT_ACC\n", " | constraint_flag.END_ACC\n", + ")" + ] + }, + { + "cell_type" : "markdown", + "metadata" : {}, + "source" : ["However, the definition of the variable problem will result " + "in an error. Do you know why ?"] + }, + { + "cell_type" : "code", + "execution_count" : 46, + "metadata" : {}, + "outputs" : [ { + "name" : "stdout", + "output_type" : "stream", + "text" : ["In setup_control_points; too many constraints for the " + "considered degree\n"] + } ], + "source" : [ + "try:\n", " prob = setup_control_points(pD)\n", + "except RuntimeError as e:\n", " print(e)" + ] + }, + { + "cell_type" : "markdown", + "metadata" : {}, + "source" : ["Indeed, there are not enough variables left in the problem " + "to satisfy the constraints. We need to increase the degree " + "of the curve:"] + }, + { + "cell_type" : "code", + "execution_count" : 47, + "metadata" : {}, + "outputs" : [ { + "data" : { + "image/png" : + "iVBORw0KGgoAAAANSUhEUgAAAV0AAADnCAYAAAC9roUQAAAABHNCSVQICAgIfAhk" + "iAAAAAlwSFlzAAALEgAACxIB0t1+/" + "AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6L" + "y9tYXRwbG90bGliLm9yZy+" + "AADFEAAAgAElEQVR4nOx9d5gb9dX1UV1ptdL2XZf1ervXvWMb8hKSAKG8QGgJ/" + "aM6JCSvAwECpppim95DnAYv8BGSjySk0DHYxBQXXMB419uk7X1XXRqNZub7Y/" + "mNZ7QqI2mklew5z+MnRKP9zUiaOXPn3HvPVXEcBwUKFChQkB6op/" + "oAFChQoOBYgkK6ChQoUJBGKKSrQIECBWmEQroKFChQkEYopKtAgQIFaYQ2xnaltE" + "GBAgUK4ocq0gYl0lWgQIGCNEIhXQUKFChIIxTSVaBAgYI0QiFdBQoUKEgjFNJVoE" + "CBgjRCIV0FChQoSCMU0lWgQIGCNEIhXQUKFChIIxTSVaBAgYI0QiFdBQoUKEgjFN" + "JVoECBgjRCIV0FChQoSCMU0lWgQIGCNCKWy5gCBRHBcRxYlgVFUQgGg9BqtVCr1d" + "BoNFCr1VCr1VCpIpotKVBwTEIVYzClYu2oYBI4jgPDMAgGg6L/" + "JtuEREtImPxTyFjBMYKIJ7hCugokI5RsVSoVVCoVgsEggsEg1Gr1pPcL/" + "ylkrOAYQsQTWZEXFMQEx3EIBoPo6emBxWKByWSaRLDhQEg53HoAEAwGQdO0aJtQn" + "hASskLGCo4WKKSrICII2RLpwOFwwGAwIC8vL6l1CYGGEqmQjA8ePIjq6mrk5uby7" + "9VoNLxuTEhZIWMF2QaFdBVMAsuyIp2WRKxqtRosy056v1zEJyRjQrIajYYn41Bpg" + "+O4qDKFQsgKMhEK6SrgwbIsgsEgGIYBMFkeIESXDoTuN/" + "Q1AJPIOPTvwxGyQsYKphoK6R7jIEkumqb5KDYSManV6rSRrhTEImOWZWGz2aDX61" + "FeXs6/l5CxUKpQyFhBuqCQ7jEKUmMbDAZjki2BSqUKKy+kAslE1UIyFuq/" + "wJHPzTAMAoGA6O+" + "EUbESGStIFRTSPcYQSraEVKQQSzrlBbkQerzRKioIGYeWt4WrplAqKhQkCoV0jxF" + "EqrGNhzgyTV6QCqk3lGhkHAgE8OWXX2Lp0qX8NqXWWEEiUEj3KEc4spVSYxsO2SI" + "vyH0ckWQKooUHAgGl8UOBZCike5SC4zh4PB6wLAudTpcU2RJkChFOBUIlh2QaPxQ" + "yPrahkO5RBmFDQ19fH1QqFSorK2VZO1ydbiAQgM1mg8fjgclk4v8ZjcakySSTCD6" + "UdCNBSuOH1WqFXq9HWVkZAPDkqzR+HBtQSPcoQbiGBo1GM6l+" + "NRkI5QWKomC1WjE2NoZZs2ahqKgIPp8PLpcLAwMD8Pl8UKlUyM3NhclkQl5eHkwm" + "EwwGQ1zklSzkJO5kjklIxhzHKY0fxzAU0s1yRGtokDvxpVKpEAgEcOjQIdjtdlRV" + "VaGhoQHARMRrsVgmHZvX64Xb7YbD4UBfXx/8fj9UKpUoKo6HjBM97mQh5/" + "cojJqTafzQarUKGWchFNLNQkhtaIjUtpsIvF4venp64PV6MXfuXMydO5ffX6R9qN" + "Vq5OXlTfJqYBgGXq8XHo9HRMZqtZqPjCmKgt/" + "vR15eXkYQiVR5QQpIqV40SGn8oCgKLS0tqKys5G9aSuNH5kMh3SxCvA0NGo2Gj4A" + "ThdvtRkdHB3w+" + "HwoLC1FYWMh3dyUKjUYDs9kMs9ksel1IxoFAAN3d3bBarSIyTkdkHA5yki6RDhJB" + "KBnTNM1HvErjR3ZAId0sQKINDclEuk6nE+" + "3t7QgGg6ipqUFRURGGh4fhcDgSWk8KhGTscDgwffp0WCyWmJEx0YtNJhNycnJSQi" + "Ryk65cazEMM8koKNz+Qhs/" + "yP+" + "G04yViorUQiHdDEayDQ2JkK7dbkd7ezsAoKamBoWFhfy2dJeMkX3FiozdbjfGx8f" + "R09MDiqKgVqt5EvZ4PNBqtbISXbJIJtJNZC2pZNzR0YFZs2ZBr9cr5W0phEK6GQi" + "5Ghqkki7HcRgfH0d7ezu0Wi3q6uqQn58f13pTcTFGI2OPxwOPxwO/" + "3w+v14u+vj4RGccbGadb041nrWSkCuFxeL1enmCVxo/" + "UQSHdDAKpsRU+" + "BiYTEcUiXY7jMDIygo6ODhgMBjQ2Nk4iMCHSbe2Y6L40Gg0sFgssFgufjCstLUUw" + "GORlCmFkrNFoRJpxXl4e9Hq9iEgyVV6Qk8AZhuHrg5XGj9RBId0MACFbm82GiooK" + "WbrHgMhtuxzHYWhoCFarFXl5eViwYAFMJlPM9aKVoGXS43skaLVanoyFiEbGhIjJ" + "dynH55STKAH5njJiRc1SGj8IGQ8PD8NoNMJisUQsbztWoZDuFCK0oaGnp0e27jFg" + "IuITki7HcRgYGIDVakVBQQEWL14Mo9Eoeb1o3gupSl6lA9HImMgU4+" + "PjcDgc2L17t4iMyb/QyDga5NR05USiN5RwZOxyuaDX6wFEb/" + "wQlrYdKxUVCulOAWJNaJALRF5gWRZ9fX3o6upCUVERli1bBoPBEPd6kR75U3HsmX" + "DhabVa5OfnIz8/" + "H3l5edBoNGhsbBSR8ejoKLq6uhAIBCSTcaY+Fch5TAzDQKvVhj23j/" + "XGD4V00wSpDQ1ya4derxefffYZSktLsWLFCj76SATZaO0o1/" + "EKfxchGQsRiYy1Wi1Pwrm5uaIyr2SRqURE9OFwkNr4QUDTNBwOB8rLy4+Kxg+" + "FdFOMeBoaSDODVpvcz0LGpff09IBlWaxZswY6nS6pNYHstXZMF8FFImOapnnNeHR" + "0FE6nEwcOHIBOpwsbGU8V5LyhRiPdSIhExj6fD6OjoygtLY3Z+" + "EGCmlCpKJOgkG6KkEhDQ7Jtu8FgEF1dXejr68PMmTOxatUq7N69WxbCBRRrx0Sh0" + "+lEZOx2u7FgwQIA4CPj4eFh2Gw2vsMs3WQs9++" + "aCOlGQjAY5KPbUAhrjQHg3XffxYEDB7Bx40ZZ9p0KKKQrM5JpaEi0bTcQCKCzsxN" + "DQ0OoqKjAmjVrZDvhhchGeUEupKLMS6vVoqCgAAUFBaLtNE1LIuPc3NyMaE0Oh0R" + "Il2WB997T4O//ZPH8sxzI4cSSKoTfgcPhCFtjnklQSFcmyNHQEC/" + "pUhQFm82GkZERzJ49G2vWrElpVjxb5QU5kE7vBZ1OJ4mM3W433G439u7dK2qFNpl" + "McT/dyBmZAvGReCAA/PkvKmz66/" + "vomb4FyHHi3Pc+wGmnTVwLJNKVAofDMel7yzQopJsk5GxoCC3xigS/" + "3w+r1Yrx8XFUVVWhvr4+" + "LSVImUaE6UQmNEeEkjFN0zh48CAWLFgAt9sNj8eDoaEhuN1uBIPBsJpxJDJmWVZ2" + "0o0FlwvY8qIPT378CpyNzwL/" + "ZeW3bfxjE047bcI2NF7SnT17dmIHnSYopJsghBMaACRFtgRqtTpqpOv1etHR0QGX" + "y4Xq6mo0NjamNXObbnlBjn0dzeVZpJlBp9PxDnBCBAIBPjIeHByEx+" + "OJSMYMw6Stdnh0VIWHftOPFw49D2rB74E1LvEbOBX2j32G5uZGNDZO5EVycnIkra" + "1EukchyGTYvr4+TJ8+" + "XdaSlUjygtBesbq6GvPnz58SIkm3vJBJyETyjtVBptfrodfrJZExRVFgGAYtLS18" + "K3Rubq5sSVgA6O9X4e5fH8Lr/" + "U+" + "BafwzsDzkXPcWAfuuxWnF12L9ozPQ2DhxrsVT0eN0OhXSPVogbGhgGAbd3d2YOXO" + "mrPsIlRdcLhfa29sRCARQW1uLoqKiKb3wFXkhu0g3EsKRscPhQG9vL0pLS+" + "HxeDAwMCCKjEM142gkGHpcnZ3ALc/vwLvuJ8DVvA8UhvzBcCN0X/wCly/" + "+EX7xmBZVVRyAI9dBPPKC0+" + "lUEmnZjEgNDVqtNiURH5EX7HY7Ojo6wLIsamtrJ0UqU4VopCtHfbHUfU0FjibSDQ" + "eGYXgiFp5v5PwnmnF/fz88Hg///lCZQqvV8km51nYWN/" + "32bWxnHgVmfAGUhezU+h2YDtyEn532PVz/" + "JwbFxRyAyb95vJpuplwvkaCQbhjEO6FBLlAUhb6+" + "PuTm5qK2tlaWOzaRBOQy0AmF3W5HW1sbKIoCx3GiC5FER6koX1MgL+" + "lGWkulUkGv16OoqAhFRUX86xzHiWQKIRl39xnw8Lu70VR0HVDeErIjNXDoQhQfvg" + "k3XbQIV22ikZcXfXhqMBiUfA4pmm6WgZR9MQwT14SGZPc5OjqKjo4OMAyD0tJSzJ" + "kzR7b1ScOF3EkSYnauUqlQX1/" + "Pj88JBAJ8VNTb2wuPxwOWZWEwGHgSzsvLg9FoTEviJhVtwJkCuSPdeNZSqVTIycl" + "BTk4OT8ZfNvnwyxdfwV7DE0B9j/gPaAOw/" + "yqUtf0MP724CJdtZlBU5JMUwcbzFMUwjKw6dCqgkC6Sn9CQ6D6Hh4fR0dEBk8mE+" + "fPnw+FwiHrO5YCcwymBiZP6iy++4MnWYrHwUQ+AiFGR3++Hx+OB2+" + "3GyMgIvF4vAEQc0Z5pbcBHO+kmUzJ2oNmFn/" + "3vCziQ+xRQPize6M8Hdt2A2YM34Jc/" + "NuP0J8cQCIxhdNSN7m4vGIZBTk7OpKYPIclKlRcySY6KhmOadJNpaEj0sZ3YK9ps" + "NlgsFixatAi5ubkAJqoUkh0kGQq5SNfhcPAywqJFi+" + "KSPlQqFYxGI4xGI0pKSvjXyYj20NlnJKGYl5cHrVbLm4pPJY520k2kOWL/" + "4XHc8NJv8VXuc0CpXbzRXQZ8dhNqx9fithsNuOCCICaWL/" + "rm3wTIDVv4dOT1ismYpmm4XK6YUhUh3Uz7nUJxTJKuHDW2pLxL6t+xLIv+/" + "n50dnaisLAQS5cunWSvKMf03lAkS7qEbFUqFerq6vD111+" + "HJdxETnThiHbhhGGGYdDa2goAGB0dRWdnJ2ia5utLhZl0OZN32Qa5I12p3+X+" + "1hH89OXncdD4G6A4pMbWMQv45FZUjV+" + "Ku2834Nxzg9BoImu2QpmiuLiYf53jOFAUxZe1CaWq0MiYkLHf7+" + "cDmEzGMXXGhiPbRO+" + "KhCBj6Ucsy6K3txddXV0oLS3F8uXLIxZ6ZxLpErIFEHFmWqqg0WhgNBphMBhEZBw" + "pcZOTkyPSi3Nzc2XXi+WKdOV8BE53pPtVxzCuf/lZfJWzBSjwijeO1gM7bkOD/" + "2L8ZK0d3/" + "1uH6qrEzfkV6lUMBgMMBgM0Ov1mDt3LgAxGQvzBm+99RY++eQT2O12vPzyy5g/" + "fz7mzp0bl0l/KJ544gn8/ve/h0qlwsKFC/" + "HCCy8k5EMdimOCdEMnNMih12q12kkGzEKQWt7e3l6Ul5fjuOOOi0nQcuuviazpcD" + "jQ3t4OjuPSTrahCCWocPWl5CIkj6djY2PweDwAAKPRyE8HNhgMMBqNCf/" + "ucpJuusbryLXW152DuP6Vp3FA+zvA7BdvHJoHfHwn6gLnY/" + "1tDM49N4iBAQcAeSpWQkcbCclYGBkvW7YMH374IZ5++mkMDg7io48+" + "wgUXXIAzzjgjof329vbi6aefxqFDh2A0GvHDH/" + "4Qr732Gq688spkP9LRTbosy8LtdvNkl47uMaG94owZM7Bq1SrJj21TGek6nU60tb" + "UlTLZya55S1xJehKF6sc/" + "nQ1tbG3w+H9rb2+Hz+UQTgUl0LGXUjlwuXHKTrlzleOEi3ea+flz/0tPYq/" + "49YAxJ8A4sBrbfhWrqHNx+G40LL6RA/" + "pzU8MoBqUk0IlU1NDTg5ptvlm3fPp8POp0OXq8XM2bMkGXdo450Qxsa9uzZg+" + "OPP152cT000qVpGp2dnRgcHEzYXnEqSFdItrW1tRlf4ygVhFxzc3NRUlLCR8cMw8" + "Dr9cLtdmNsbGzSdAehXpyK0iM5h1LKaccojHTbh/" + "rx45efxi7m94A+hGz7lgPb70al/" + "0zc9qsALrrIh1BOlNtLV+" + "padrtdtvN35syZuPnmm1FZWQmj0YhTTz0Vp556qixrHzWkG62hIRXZTEKQgUAANp" + "sNw8PDqKysTMpeMZ2kmwqylTOKS1VHmkajgdlsnjRqXmibKDSHIUkbiqL4UTvJEI" + "qcRCmnSQ3DMOhzjuBHL27EJ/4/AFpKzA69K4Ft92C65zTceguNyy/" + "3IlIwKyfpxlOjK2djxPj4OP7xj3/" + "wQ1wvvPBCvPLKK7jsssuSXjvrSVdKQ0MqmgMAoKurC21tbZg9ezbq6upkcRlLtab" + "rdDrR3t4OhmFQV1eX0EkaSq5y19VOBcJ52ArLmXp6ejA2NobR0VGwLAuj0SiKiqU" + "aiqfTl1cq+pyD+J+3tmAP9xo4rV/" + "MCj3HAdvuRbH9VNz8SxrXXONFrFxSPG27sRCv74JcpPvBBx+" + "guroapaWlAIDzzjsPn3766bFNulIbGogMIJfG5PV6YbVaMTw8jJKSEixfvjzlOnE" + "yIKTrcrnQ1tYGhmGS8nMg5JrptZByQFjO5Ha7+WoKjuPg8/" + "n4Zo+hoSH4fD4AmKQX5+TkpCwASHatYc8I/" + "ufPT+OtkS3gtD7xxt6VwLZ7kT98Gtb9D43rr/ciL0/auqkY1SMFDocD06dPl2W/" + "lZWV+Pzzz+" + "H1emE0GrF161asWLFClrWzjnTjbWjQ6XSykK7H40FHRwc8Hg9qampQUFCAQCAwJc" + "mjeEDTNKxWK3Q6nSzmOalqKw5FpkXOwhuNSqVCbm4ucnNz+" + "UgIONLs4Xa7Ybfb0dPTA4qioNFoeBLWarWyfa5Ef4dR3yh+" + "9cZzeL37ebBaT4iMsALYdi+Mvafjhp/" + "S+" + "PnPPYj3lJlK0pUr0l21ahUuuOACLFu2DFqtFkuXLsXatWtlWTvrSJdhGNA0LbmhI" + "VZpVywI7RVrampQXFwMlUqFwcFBPrrJRJDI1u12o7y8HA0NDbKsm2lkGAvpjMqFz" + "R5CkNHsbrcbo6OjcDgc2LVrV9LmQPGSroNy4K63nsPLrc+B0brEV3//" + "UuCjDdBaz8Q1Vwdxyy1elJUl9jvLrelOldnNhg0bsGHDBtnWI8g60iXz7qUiUdIl" + "9aosy6KmpkbkJZDMuqkGuUnQNI26ujq43W5ZSTKdpJtJ5J4MeQtHs1ssFqhUKsyb" + "Ny9pcyCppOsOuLFx6xZs+epp0Npx8VU/uBD4aANw+BxcfBGD9X/" + "1Yvbs5L53uSNdqV1m2eAwBmQh6caLeMlxfHwc7e3tUKvVvIwQDqnQX5NBKNkSGcH" + "r9YKmadn2k4pkXzhkmmYsZ3MEIcpkzYFiVS/4aB+e+uSPeHz34/" + "BrhsVX+3AjsG0DcOgCnHkGg3Nv3o0f/" + "nBe0p8v9DMmi3gTaZnupQscA6Sr0+" + "likg7HcRgbG0N7ezv0ej3mzJkzqaQoFKmMdOO5wN1uN9ra2kDTND9dQgi5STLb5A" + "W5kC6LyHjMgcbHx+H3+3lJgxAyNMDv9ryMB3c8CreqV9wcNlYLbLsX+" + "OpifOsEDve858OqVSx27/" + "bI8vnkxlSVjKUSWUe68UYb0ciR2CtarVYYjUbMmzdvkh4XCamKdKVWB8QiWwK5ST" + "ddwynlnMcmZ+1wskg0+RXOHGj//v2YM2cOP9lhaGQIv/7kt/" + "hN80twanoA4eHaK4HtdwMHrsCiBWrc8zqFk09mkIoHCjnPj3iaI2ialjzAciqRda" + "QbL7Ra7SSPWo7jMDg4CKvVCovFgoULF8btTkTGksiNWO5lUsmWIBWRbrj1MjUCzj" + "QTc7nbgHU6HQwGAz4c2IZfvfMA+oPN4sjWNQ34+" + "E5g77WYVspi7Z0dOOccH8xmEzyePMn1xVOFo81LF8hC0k0m0mVZlveyjWSvKBUaj" + "SYl8kIk9zK324329nZQFIXa2lqR2Uc0KPKCPMhE0mUYBtu7t+OWd+" + "9Hm3eveKO3CNhxG7D7BpTkG/" + "CrzQFceSUNjivik3ejo6Pwer28jmy1WnmZIlFzILnLCeNttMjkGwhB1pEuEN+" + "Fr9PpEAgE0NPTg87OTr6hIdnHkFQ9ZodOBE6UbAmyWV44GsldLu+" + "FnX078bOdv8LhQAjZUmbgs5uAz26ESWvBz38ZwM9/7sFEikIFYLI5EE3T2L9/" + "P0wmE1wuFwYGBhI2B5KzcgGQTuJ+" + "vz8rpAUgS0lXKhiGwdDQEAYHB2EwGLBy5copn0AQC2QicLJkK1wvlfICx3Ho7++" + "HzWaDSqUSJXTI5IejAamoXkgEh0YO4fYP7sNHfW+JNwRzgF0/" + "A3bcBm2gGFdeSeO22zySam1ZloVer0dZWRnKyo6M7E3EHEhu0gWkRa8OhyPjR68T" + "HB1XRAiCwSC6u7vR19eH0tJSWCwW1NfXT/VhSQLLsjh8+DA/" + "fr2oqCipiz1V8gLHcRgaGkJHRwcKCgqwePFiAOAv0sHBQd7jgdSdkos0Hp+" + "CTMFUywudjk5s2L4Rr7e+BqgE3wurAfZeO6HbOivwgx/" + "QuPtuD+rqpH93kYgyljkQ+" + "Z2F5kB6vR6BQAAulwu5ublpmwSdLZULQJaSbqRHT5qm0dXVhYGBAcycOROrV68GA" + "OzatSvdhxg3PB4P2tvbMT4+jqqqKlRVVclykaeirtZut+" + "Pw4cPIy8vjdXFipUmaAAiEJuNCnwKVSiWKlkLnoGVae7VcpBuv5jnsHcZDnz6CP3" + "z5BzCgxRUJX10MfHQfMFaHE04I4r77PFi5Mv7fOt5jimYONDQ0BI/" + "Hg+7ubni9Xt4cSPhbp+Km63Q6lUg3nRDaK86aNWuSvWKqIqZEh1MKQcjW5/" + "Ohrq6OHz0jF+nISbrj4+MYGhqCyWQSDdSMhkgm48JHV+" + "EcNL1ej7y8PL5UKNnvN1urF1wBF57Z8wye3Pks/" + "JxbvLHlDODDB4GBJZgzh8F9z3tx2mmJl3/JIQkQc6C8vDz4/" + "X7+yTKcOZDX6+VvunKZA9ntdoV0Uwnyw/" + "j9fthsNoyNjclmrxgPknEwE5It0WxVKhXsdruspWhykK7D4UBrays0Gg1KSkpQXl" + "6e9ADASI+upDW2v78fTqcTX3zxBYCJbiwiUZCoOBsy1aGIRbpUkMIfv/" + "wjNu54BI7giHhj1/HA1k1A54mYNo3FJTc14c47KyaZiMcLOSsOQutqo5kDEf/" + "iSOZAer1e8nEp8kKKQcawOBwOVFVVYc6cOVNyASbSIBGJbJNZMxqSIV1imsOyLOr" + "r65Gfn4/" + "W1taw0aNc3z9pjaVpGnl5eZg9e7aoG0t4gZLx7EK9OFUaopzyQrhjZDkW/6/5/" + "+Ge7Q+" + "gz9sp3jg0H9i6ETh8FvLygHV3UPjZzwI4dKgfWm1F0sc0FabjarU67E1XaA40PDw" + "Mt9uNXbt2QafTiaSo0N9azqkRqUZWkq7L5UJxcTHmzp0r+" + "UJIhR1hPK3AXq8X7e3t8Hq9YcmWIBNI1+PxoK2tDRRFob6+" + "XtTPnk7vBULukUa1k04sj8eDvr4+fjowMRgnMoUcEkOqqhc4jsPWzq2446N70DT+" + "lfjN9soJzfbLy6BRq3HlNTRuvz2AsjIuq6cKR4PQHIhUvzQ0NIh+" + "61BzoHfeeQddXV2YP38+aJqWZcyS3W7Htddei4MHD0KlUuGPf/wj1qxZk/" + "S6QJaSbnl5eVyNCXIbmRNIIUgh2dbU1KCkpCTqxatWq6fMoIYMcHS73airqwt7Y8" + "ik+lmdTofCwsJJ04GFGqLT6cShQ4d4G0VhVBzPxZkKbXjf4D7cue1u/Kd3u/" + "hN3mLg4zuAPT8BggaceSaNDRv8aGg48jtmElGGriXXdUaOS6VSRTUHam1txZ49e9" + "DZ2Ym//OUv0Gq1+PTTT5P6ftatW4fTTjsNr7/" + "+OgKBAG86JAeyknTjhVxG5qGIFukSsvV4PKitrY1JtgQajQZ+vz/" + "m+6RCyj4pikJHRwfsdjtqa2sxf/78iH8XjXQzYaJEqIbo9/" + "tRUVEBo9HIa4hDQ0Nwu918mZNQoohko0jWThYsy6LH04Pb/n0b/tryV/" + "FG2jjR2PDJLQCVj+XLGTz4oBfHHz/5xp5JEyiESKeBOTEHOv/" + "887Fjxw5cddVVOOGEExAMBpP6PA6HAx9//" + "DFefPFFABOSl5zckZWkK6fpTTIIF+" + "l6vV50dHTA7XbHRbbR1kwVAoEArFYrRkdHUV1djcbGxpjHOhXyghwQPrYShJazCW" + "0UhVFxXl6eLDeUUd8oNh/YjL90vD5R/" + "kVAam233w24ZmD2bBb33OPD+" + "ecHI1YkyE2UckenciDeqRHkt022IcdqtaK0tBRXXXUVDhw4gOXLl+" + "Opp56CyWRKal2CrCTdeJEq0hWa3oSSbbRoMRpIR1oqEQwGYbPZMDg4iNmzZ6O+" + "vl7yBZxJ8kKyiFTORjLrwk4sh8OBQ4cOwWKx8EQstfjfS3vx672/" + "xmM7n4Qn6BRvbDp3Ikk20oiCAg63bvTjuutoxOpoPVYiXakSkMPhkM1LNxgMYu/" + "evXjmmWewatUqrFu3Dps3b8b9998vy/" + "pZSbqZFOl6vV4cPHgQbrcbNTU1CZOtcM1URZIMw6Crqwt9fX2oqKhIaFx8uiJdYO" + "o60sJl1r/88ktUV1fzCR1S/" + "M9xnChxl5eXx9ebMiyDVw+9ivv+8wAGff3inXSdALz/" + "MNB9PHQ6Dtf9NIBbb6UQwzSORyYTpZz6sNFolPReOUm3oqICFRUVWLVqFQDgggsu" + "wObNm2VZG8hS0o0XUozM44XP50N/fz+8Xi/" + "mzZuXNNkSpEJe4DgOXV1d6Orq4jv1Er0w5PS5jbWfTALHcdDr9TCbzaJkDsuy8Pl" + "8cLvdvLm4z+fDF44v8Fvb79DhbhcvNDIHeP8h4PDZAFT4wQ9o3HsvhZqa+" + "G4wx0qkK1UqoChKMkHHwrRp0zBr1iwcPnwYc+" + "bMwdatWzFvnjxTNYBjhHTljHR9Ph86Ojr4srWCggKRSUiykJN0WZblS6kCgQBWr1" + "6dtN4VSV7INJIkSHUnmdCJq7y8HAeGDuCB7Q9ie/c28Rtd0ybG4+y7GmC1WLLEj/" + "vv9+" + "LEE7VTbqE4FXW6UjCVXrrPPPMMLr30Un4g7QsvvCDb2llJuonIC6FG5vGCkK3T6U" + "RtbS3mzZuHsbExDA0NJbVuKOR4fOc4DgMDA7BarSguLkZubi5qa2tl83I4Fq0dY5" + "F3t7Mb939yP/7c9GdwEBx3wDRRjfDZL4FAHqZP9+Omm/pxyinj8Hjc2LPHL/" + "KhIP9iaZnHSqQbz9UFx94AACAASURBVFpy3viXLFmCPXv2yLaeEFlJukB8F2UykW" + "44siU/biqmRyQT6ZLxQ+3t7cjPz+d9g8fGxmSL+NIlL2QaIn1/TsqJJ3Y/" + "gWf3PAeKFZT6kYqEbfcC7mnIz+dw811+nHjil6ivn4W8vGr+" + "rQzDiLqwrFYrX84mJOPc3FyeHOXy5SX7l4so5RxKKTVqlqshIl3IWtKNB4loukKy" + "rampEZEtQSr010TXHB0dRVtbG0wmE5YsWSLSt0j0LMfFkGkR6FSBZmi8+" + "NWL2PjpJoz6QzwSms8GPtgMjMyFRsPhmrUB3H57AMXFHL7+ejJZajQaWCwWWCwW/" + "jXi2kXK2ciUBwC8SxcpeUvWhyJSa/" + "JUQ6q84HA4RN9dpiNrSTdVka7f70dHRwccDkdEsk1kXamIl9TGx8fR1tYGvV6PBQ" + "sWhK0llLPiIF2km2nkTiJdjuPwdsfbuOvju9A63ip+U+8K4L1Hgc5vAwBOPz2I++" + "+nEuokI65dOTk5IgN74kPR19cHl8uFpqYm3lg8UR+KWKPcpwpSo+" + "ZsMrsBsph044EUcgwlWym+" + "DqmIdKVGLE6nE62trVCpVGhsbIw6Ml5O0k1nyVgmgeM4HBg+gLs+vgv/" + "6fmPeKO9csL96+BFAKfGokUMHnyQwre/" + "PfncSFbmIT4UFosFBoMBlZWVAI74ULjdbpE3QW5urkiiMBgMk/" + "afCl+SdCKbpkYAWUy68Zy4Wq02orwgJNvq6uq4THRSVf8bDWQacDAY5J2/" + "YiEbI11Anqy0HFp2r6sXm5o34YOPPxAnyfwW4D93ADv/" + "BwgaMG3aRCfZRRcFESnITJUZejQfCrfbDZfLhf7+" + "fvj9fpF9Yl5enmykO1U342xyGAOymHTjgUajmXQBJ0O2BOksk/" + "J6vWhra4PP50N9fX3M0etCpIN0GYYBTdOyDQfMhBI0d8CNJ3c/iaf3PAM/" + "4zuygdUAe64Htt0DeEthNHJYdzOFdesCiNUpKifBxVpH6EMhLGsU2icODg7C5/" + "Nh165dMBgMoqg4mg9FOMidkJMKORsj0oFjgnSFIKOm7XZ7wmSbTvj9frS3t8Plci" + "Xk5QCkVl5gWRa9vb3o7Ozk5RbhTDRy8WbydxwK0km2Ycd9GPIOijcePmuik2ykEQ" + "BwySU07r6bwowZ0khCzkg30XrYUB8Kp9OJFStWwO/" + "3i6oopIxVEmIqanTJ8SuJtDQg3hOXZVk0NTXxZCvF3GUqQVEUrFYrxsbGJpWqxYt" + "URLocx2FwcBAdHR0oKSnBypUreULx+/28vkgiKfJIK/" + "wXLSqaqkTa9q7tWL99Pb4aDvG27V8CvPs4YPsOAOCEE4J48EEKy5bF971O1ay1WC" + "COXUajMa6xSkJCnqoaXYfDwWvb2YCsJV2pIJEt8bNNBdnKaWlI0zQCgQB2796Nmp" + "oaWaZiyE26fr8fO3fuhNlsxrJly2AwGMCyLAKBgOjiFY5nCQaDPBH39/" + "fD7XbziR5CwmazecrG8LSOt+Kuj+/" + "CW+" + "0ho82dMybmkR24HOA0qKpi8cADFM46K7IDWDSkU16QA7HGKhEfCmIgz3EcbDbbJB" + "+KeBFP1Gy327Fo0aK49zFVyFrSjfVDEo/" + "Y8fFxVFdXw+" + "l0JvRoHguE0JK9wweDQXR2dmJgYABarRYrVqyAwWCQ7RjlqLJwOp1oamqCz+" + "fDypUr47K602q1YSfIkijK4XCgt7cXFEVBp9PxtdVut1vUFBAvYkXLY74xPPT5Q/" + "jd/t8hyAmSooFc4JNbgU9vBmgTTCYa69fTWLs2tgNYLGRSpJtok0U4U/" + "GxsTEMDAzAYDCIfk9hORuJjGNdL/" + "HKC0oibQoRSrYksh0YGEjp9IhESZdhGHR3d6OnpwcVFRVYvXo1vvzyS1kfrZNt3f" + "V6vWhtbUUgEEBVVRX6+" + "vpk8RYVToQVjuEJBAIYHBzE4OAgOjs7w3rcms1myV1I4UiFZmj84cs/" + "YOOnG2Gn7OKN+/8PsPVBwDUTGg2Hq68L4PTTd+Lkk5ck/" + "mFlRiZGzGR8zrRp00SvC0ftCJ9yhO5sJpNJpP3H66WrkO4UQKiBhtNsU+" + "mpmwiZkwRUV1cXpk+fLjKjkdtTN1F5gaIotLe3w+l0oq6uDiUlJfD7/" + "ejt7ZXt2MJBr9fDYrHA6/Vizpw5AMQetyMjI7DZbKLJD2azWXLS7j3re1i/" + "bT1axlvEG2wnTui2/" + "csBAKecMqHbNjay2L1bXpe6ZCEn6aZah5UyVmlgYAA+n4+" + "vQyafT0qLr1K9kCaQC0tIttEmA6dzekQ0cByHvr4+" + "2Gw2lJWV4bjjjpt0Uk31cMpgMAir1Yrh4eFJFR7ptHYURudCj9vp06cDEE9+" + "cLlcYZN2NE3z32XTSBPWb1+" + "PrZ1bxTsbqwHef2TCUBwqNDYy2LiRwsknp2eCRyKQi3Tl7EaL54kv0mh2Us7W09M" + "Dr9eLr776atJYJZPJJJKcnE6nQrrpAMMwaG5ujkm2BKmOdGNBmO0vKirCypUrI0b" + "HchuZSyVdlmXR1dWFnp4eVFZWYvXq1ZMuyGhVBelOgEWa/EAuXJfLBZ/Ph8+//" + "Bwvdb2Ef/X/" + "GywEREqZge13TTQ3MDkoLmZxxx0UrryShkyVTymDXIY3cts6Jms8Q8rZ7HY7SkpK" + "UF5eHnGs0uDgIF555RW43W7s2LEDS5cuFclUyXyOFStWYObMmfj3v/" + "+d9HqhyPBTKzI0Gg0KCwslZ/dTYWROjiNaVMpxHEZGRtDW1ob8/" + "Hw+2x8N6ZYXhNH3tGnTovrupsvakRxXIiAXbm5eLrYc2IIXrC/" + "CGXAceQOrnnAA++g+" + "wFMOrZbFFVeP4eabKcyYkXjSLp2Qy81LbltHuYzEhZpupJsrRVEoKSnBjTfeiA8+" + "+ABPPPEETjjhBNx9991J7fupp57C3Llz4XQ6Y785AWQt6apUKkybNi0t9o6Jrjs2" + "NobW1lbk5uZi8eLFyM3NlbRmKuSFcDcc4Q2hsLAwavRNEE1ekLN0Ltl1Iuq2Hd8F" + "3n0CGJwoMTrzTAq33DKCkhI7nE43+" + "vs9ACYPpsw0yCkvyBnppnOtnJwcrFq1ClqtFo8++qgs++3p6cGbb76JO+64A48//" + "rgsa4Yia0k3XshhZB4O4QjSbrejtbUVOp0O8+fPj/" + "uiTQXphjvGlpYWGAyGSVaQ0ZBJ8kI4tIy14PZtt+N92/" + "viDWO1wLuP8WNyFi2a0G1PPJEBYPnm3wSESbvR0VHYbDZ4PB4cOHBARMTEYnEqkI" + "nVC1MxqkfOmWwA8Itf/AIPP/wwXC6XbGuG4pgi3VRHui6XC62tE3Z/" + "c+" + "bMSbg1UW4nL6FG7Ha70draCo7jMHfu3KjuZOGQrnE98Xak2f12PPT5Q9iyb4u43j" + "ZEty0rY3H33RQuvZSOaEoTbjDlrl27MGfOHF5XHBoaEmXbSQWFyWSSrRU2Go72SF" + "cq6crZAvzvf/8bZWVlWL58ObZt2ybLmuGQ1aQbz4WZSk3X7XZj//" + "79oGka9fX1SdcMyh3pqlQqBAIBHDx4EB6PBw0NDQlnezMhmhWCYRm8dPAlbNhxH8" + "b8o0c2cCpg7zXAhw8AnnLk5HC4YR2FX/" + "4ygDjvMwBiJ+1I2ZPb7ea1TWEpW6KdWZGgRLoTkLNG95NPPsE///lPvPXWW/D7/" + "XA6nbjsssvwyiuvyLI+QVaTbjxIRaTr8/" + "nQ09MDj8eDhQsXisymk4FGo0EgEJBlrUAggN7eXoyNjWHBggUoLS3NOOJMFDu6d+" + "DWj36FgyMhPgm2E4F3ngQGlgIAzj7bjwceCKKqSv4EYKh5DCC2VAztzPL7/" + "ejv7+dLn5IhvEyrXpB7/" + "LqUteT00t20aRM2bdoEANi2bRseffRR2QkXyHLSjddTVy7SFdpClpeXw2QyyUa4g" + "DyRLsMw6OzsRH9/P0pLS6HT6WSdWpxqRHuK6XJ24a6P78LfW/" + "4u3mCvnJjccOgCACosWcLguusO4YILymXLqktBJEtFv9+PAwcOgKZp3q8AmBi/" + "QyLiaC5eqUAybmWhkJPAAWnXd7YZmANZTrrxIJqRuVQEAgFYrVaMjo7y0yVcLhc6" + "OztlOsoJJKPpCjvdZsyYgdWrV/" + "OmJNkOL+3FU3uewuM7nxAPgaSNwI7bvvFJyEV5OYt77/" + "Xj4ouDOHjQCZVqWuRF0witVgudTidyxCLjd1wul8jFS9gMkMqkHcMwsnkgyzmUUi" + "pS1QJ80kkn4aSTTpJ9XSDLSTeekzCckblUkA6toaEhVFVVoaGhgd93pgynDLVaFH" + "a6yV33my6Q34vjOLzR+" + "gbWb7sTve6Qm8dXF0342zpnISeHw89vpnDjjYnptqlGuJI6YSJO+" + "L5AIACXy8V723q9XtF7g8FgXP4EkZAKi8h0Itt8F4AsJ91UQ/" + "iIPmvWLKxZs2bSCZoJY9hHR0fR2toqsloMXS/b5pqRi/" + "fr4a9xy0e3YkfoXLL+" + "pcDbTwNd3wIAnHcejQ0bKMyeLb9uK1czSCJDKUO9bUn1RDAYxIEDB0RJu2hz0CJB" + "bklADsTTbWe32zFz5swUH5G8UEg3DFiW5Z2/" + "Zs6cidWrV0c8MTUajewJOqmRqdPpREtLC7RaLRYuXBjR+Ssbh0mO+8fxeNPj+" + "Nt7fwMLwbF7SoCtG4F9VwOcBkuXMti8mcKaNamL5OVq+kh2HY1Gwyft+" + "vr6sHz58ohz0IR2imazGbm5uWHP4Uwcvx6vreP8+fNTfETyIqtJN5ETOFq0wbIs+" + "vr60NnZiWnTpvHdLtGQKnkhGkkKrRYbGhpiJhKyiXQZlsH/" + "Hvxf3LP9PjjosSMbWA2w62cTc8n8hd/" + "otj5cfHEQsYLHTKnWkJO8CSIl7YTTgUOTdsJSNrkMb+RsDY+" + "XdJVEWgZDp9OFtWHkOA79/" + "f2w2WyT9NBYSMUFHYnIidWiw+FAfX296NEzGlJNuizLoqenh/" + "fZFTYKxBNFfdb7GW764BZ8PfqleEPH9yakhOF5vG57000BSGn0y5SJwkB6a2vD2S" + "mGS9o5nU74fD7k5+fzRJxI0m6qmiwUTTfNiPfECPW+" + "5TgOQ0ND6OjoQEFBAZYvXy5bJjcZhJJuNKtFKUgV6XIch+" + "HhYbS1taGkpATz5s3j56P19vbC4/GA4zgREefl5U26ofW7+3HXx3fhL81/" + "Ee9gvGrC37b5BwBUOPdcGvfdlxrdNhoyRV5Idp1wSbv9+/" + "ejpqYGNE3D5XKJknYmk0lUyhYt+pyKxggg+" + "7x0gSwn3XhBSJfjOIyOjqKtrQ1msxlLly6VbTSOHCAkKcVqUQpSMeSR+" + "EsYDAYsW7YMOTk5CAQCMBgMoshD6GMwPDwMq9WKYDAIo9GInNwcvN79Op7a/" + "yx8rPvI4rQR+M/tEyVgQSOWLJnQbY8/" + "fmoqMKaaLEMhpw5L5tRptVpRrTnDMLw95uDgINrb26Mm7eSopCBQSPcoglarxfj4" + "OJqbm2EwGLBo0SLJzl+" + "xIKfDFjChyX322WcxrRalQM7j8vl88Pl8aG1tFflLRCL1SObjb7e8jVvfX48ub4f" + "4D76+" + "YKLBwTEbRUUBPPCAD5dcElu3zQZM9VyzSGuFOyaNRgOLxSLyNYiWtNPr9aAoCk6n" + "M25ZKRTxkK7b7c5IF7hoyGrSjefEczgcGB4ehl6vx4IFC2T9oYgckOydXmi1yDAM" + "1qxZk9bupGigaRodHR0YGxtDTk4Oli5dOunzSonAOh2duHXrerxt+" + "5d4w9A84O1nAOt3odez+" + "OFl3TjrrIMoKzOitfWINJHsBZ0IMjHSlau2Np6GhmhJu/" + "7+foyMjIhkpXCTnqVAqlRBbvTZ4H8sRFaTLhD70dnlcqGtrQ0sy6KsrIy/" + "eOWEHKQbarW4b9++" + "jCBcInH09vZi9uzZaGhowO7du0XfOcdxYFkWHMeJuv7UajVUKhXUajV8tA9P7n4K" + "j37+OGgIusn8FmDbBmDXDQCrwznn0Lj/fgrTpxvR3GzG/Pnz+cgqVCcW6o3REp/" + "JEt3RTLpyQKfTITc3FwUFBaipqQFwJGnndrsxPj6Orq4uBAIBUaed2WyG0Wic9Fm" + "CwWBcT6CZUp0iFVlPupHg8XjQ1tYGiqJQX1+" + "PwsJC9PT0pNTeMZEkHLFaZFk2IavFVEHY4VZeXi4qnyM3OkK2JEmn0+" + "lEBMxxHBiGwTvWd3DzB3dggAppl953JfDBZsBTjoULGWze7MV//" + "deEbkusj8ONbic6MUn8CHVicjGTyOpYrV5IN0Kj02idduQmOjIyAp/" + "Px0+FJu8PBAKS7BrllFnSiawn3dBI1+fzob29HW63G3V1dSguLuZ/" + "mHQamceC3+9HW1sbPB4P6uvrUVRUNOk9cuvEUjE+" + "Po6Wlhbk5eWFrehQq9UIBoP86B6VSiU6TnLxtY+34+dv3oLt/" + "e+Kd9C3DHjrOaBnNUpLWdzxoAeXXUZDq1UBmCCTaE8w4fxuIzl7+f1+" + "2Gw25OfnJ1wOJVcSMtPIW05IkQSEnXbhknbEp3h4eBijo6OTql5CO+" + "1cLlfGBCnxIOtJl4CiKHR0dMBut6O2thbz58+" + "fdIJP9XBK4Ig2Ojo6GvE4gSMVDOnULz0eD1paWsBxXNiJF4R8tFotmpqakJ+" + "fD4vFMkmv89JebPzPI3h6z5NgVAKLSm/" + "RRDfZ3muh16nx019QuPFGPyyWieiYYcDfvEiVSTyts+H0xr1798JiscDn8/" + "HG42RasFCeiLUPRV6IjmTktdCkHU3TqKqq4r2qhUk7jUYDs9mM4eFhDA4OytIY0d" + "3djSuuuAKDg4NQqVRYu3Yt1q1bl/" + "S6kZD1pEvTNNra2jA6Oorq6mo0NjZGPLGnajglIPZxINpotAuQdKUlS7rvvE+" + "jpcmAFSsiX/SBQIBvumhoaIgYdRMpYe7cubxeNzIyAqvVCpqmYTAYsMu1G/" + "fvfgzjbA9AdsWpgC/" + "WAlsfBHzFOPvsIB580I+aGg7AES2WyBJOpxPt7e2wWCxgGIb/" + "bklETXRiKVCr1SgqKhLdFILBYEyd2Gw28ySSaWQp1zpyd5HJVeNOpgrn5OTAaDSK" + "RrSTTruvv/" + "4ar776Kvbv349ly5Zhzpw52LBhAxoaGuLen1arxWOPPYZly5bB5XJh+" + "fLlOOWUUzBv3jxZPs+k/" + "aVk1TSCdEHV19fHPBFTGelGIt1wVotSiJT4LyQ60joYBO5+wI/" + "HB84BbCfhce25WLVKTOIMw6Crqwt9fX0Rb1ihui0hvNAysJbRFlz3t5uxx75VfCA" + "9x01ICX0rMHduEI884sN3vhP+Yg8Gg2hvb+cll/" + "z8fJ6Ihf9L3kuOlSTsyH+HHn+" + "4J55YOnFHRwdfl0pqkCmKgl6vT5iAM4285e4iS0edLum0O/" + "fcc1FcXIx33nkHTzzxBA4fPpzw+" + "PXp06fz57HZbMbcuXPR29urkG4kVFVVSdZTU0W64UxvolktSl0zUU+" + "Hnh7g0qv92Fl7FlD1H6BqO+" + "54j8MPfnArZsw40vZstVoj3gjCkW04wvAEPLhn6yPY8uVTYNUCKcFTMpEk238Vig" + "o53HBXL049tQsU5cXu3VpeliAZ7J6eHgwMDEwif0IuwuMjx8QwjCihJ3xNrVbHRU" + "zRdOLh4WGMjY2hqakJgUAAer1eFBEbjUZJZJpppJupo3qk+" + "kGQFmCtViub6Y3NZsO+" + "ffuwatUqWdYLh6wn3XinR6RKXhCSLul2y8vLC2u1KHXNRFp3335bjat/" + "6sb4GWcAsz7nX/e5TPjwQxVOP33CBjI/Pz/syPXQ6oNIZMtxHP526N/" + "4+Zu3wqHqIvmvCSlh90+Aj+6HLliIn/" + "w8iNtuo5GfXwhgonOItJw6nU40NzfD6XRCp9OhuLgYNE3D6XQiLy8v4kVMLkjhhU" + "m+" + "K3Kj4DgOdrsdPp8vYXmC6MTFxcXweDx85ENRFO91K9SJhUQcbhRPppFlpg6lBKRd" + "13Kb3bjdbpx//" + "vl48sknZRt2GQ5ZT7rxIBkj82ggVRFOpxOtra3QaDRYsGBBRKtFKYjXeDwQAO65R" + "4MnfuMALv8+MOMLfpv500dx/4WnYM6cveju1oXtxCPfC4kUoxFT21g7Ln/" + "1Fnzpe/" + "eIbgsA3asnpIT+" + "ZTjzzCA2bvSjrm7y963T6aDT6fgM9aJFi6DVauFyueByudDT0wO32w2O40QlYGaz" + "OeLTgpCIKYpCW1sb/H4/" + "Fi9eDIPBMEmeiIeIQyPUcF63wWCQJ2Khq5dQJw4GgwnLRUJkGnkDU+" + "PLa7fbRXpvMqBpGueffz4uvfRSnHfeebKsGQlZT7qZUKcXDAbR19eHsbExSVaLUh" + "CPvGCzAVdcocOuQ0PAlacA5Qf5bQ1tT+" + "K5W76DQKAHFRXzeO1KCKGUICShUPhoH275x2N4se1xcBpB6Z2nBPjgIWD/" + "lZjbCDy0xY/" + "vfS98lC4kxIaGBtHjfCSd1el0YmhoCO3t7QgGgzyRmc1mWCwWPlonjRwDAwOoqak" + "RDeEMlSeEnzkWEUuRBbRabVhXL6ITDw0NYXR0lPf9EEbF8Sag5KpqycRINx4Jxul" + "0oq6uTpZ9XnPNNZg7dy5uuummpNeLhawn3akEsVocGxtDbm4uli1bJttNQCrp/" + "vOfaqxdq4Wd7QGuPBkoaZnYwKlwsu9R3HblItTV5WNw0B+2BEyKbgsA/3f327jp/" + "Vvg1lkBcm1xKmDPj4EPH0RxbiHueoLGVVcFES4HQpJ2g4ODkwgxEiLprF6vF06nE" + "2NjY+js7EQgEIBarYbf70dRURH/lBFp/" + "Ug6cbiEHcMw8Pv935S0MRETdlKOv7OzEzk5ObBYLHC5XLDb7ejp6YlbJ5aLdDMx0" + "o3H31cus5tPPvkEL7/" + "8MhYuXIglS5YAADZu3Igzzjgj6bXD4ZgjXZVKlfTJFgwGYbPZeAKpqKhAZ2enrFF" + "3LDtGigLWr9fguee0QGE7cPX3gIJvOr5YDS7Puxd3XHwmKisroVarMTIywq8XD9m" + "2DnXhR/97Kw7jX8LqLqB3JfDmr6EdWo4f/ziI22/" + "3Idz5TxKKNpsN06ZNw3HHHZf02HGTyQSTyYTp06fD4/" + "Hg8OHD0Gg0mDlzJiiKQmtrK/" + "x+P09kJCKO1hgRjohpmobNZsPo6Cjq6+" + "tjJuxifS7yflJPTLLtwploJCqOphPLlZCbiuSXlHXicRiTw0v3W9/" + "6Vkpkx0jIetJN1lM3HpAxPt3d3aKZaV6vV/aqiGiRbkcHcPnlOnzxhRoo/" + "Rq44hTA3A8AULE63LfoYfzi+9eK9EOiEQsz/tHI1k9TuP6lZ/" + "D60GZwWt+" + "RDb5C4INNwN5rcfppwMaNfjQ0hD9hHQ4HWltbYTKZsGzZMlm9JEiTCaktDnfxBQI" + "BOJ1OkU8sITJCxOESXkKf5YqKCtGNQpiwIyRMfqdYOnEksow0Ey2STsyyLCiKgk6" + "ni+lzGw1yRrrRzqV4cLTbOgJHAenGi0RIV1hiVV5ePslqMZ0Tgf/+dzV+/" + "GMtnE4VMP2LiaRZ7ujE33A5+NMPXsHZ886a9HcqlQput5t36Yp2sf1u6zbc/" + "p+b4DMdFp8he68BPtiMubOLsPmNAE4+" + "OXwkTlqcA4EAGhsbZTUY4jgOvb296O7ujtlkotfrUVJSIiIyUjnhcrnQ2dkJt9sN" + "lUqFvLw8WCwWaLVa9Pb2Ijc3F8uXL590nkSKaqPJEyTCjfccCacTMwyD5uZmaDQa" + "kc9t6BgeKTpxJg6lPNpH9QBHAekmGulKgdBqsaCgIGyJVbxrSoVGoxH5RFAUcPvt" + "Gvz619/8ZJU7gEvOBAxOAIBRbcI/" + "Lvo7Tqw8cdJnIA5rPT096OnpAQBRtEfKsw609+OSl+" + "6ELe81QFh4MbAYePPXKPKswZ0P0LjmGn9E3dZms2F4eBi1tbUoKSmRVXIZHx9Ha2" + "srCgsLsXLlyoQiPJ1Oh6KiIlHXHcMwsNvtsFqt8Hg8/" + "Finw4cP899RtMoJILZOPDIygpGREZSWlkZ0YpMCjUYDrVaLsrIynnCIzk0cvbq7u" + "0WOXoSIQ3XiTGwnDgaDkm8ELpdLId2pQjyTEaQSJJmMkJOTg8WLF0e1mkvFOBzhm" + "h0dwGWX6bB37zcXSO27wEXnArqJx/6CnEL860f/xMoZK/m/D9Vt8/" + "Pz+UdwMsrb6XSip6cHw6NO3P/" + "udnxufArIcx45CL8F+Oh+aPb+" + "BGuvBdav9yFMhzA4jsPAwABsNhtmzpyZtG4bCmKazrIs5s+" + "fn1QpXiiI5tzZ2YnZs2dj+vTpvO4v7FAjlRO5ubmiG1a0iFKtVsPn8/" + "GaM4mcQ2uhhRIFx3HQaDRRE3ahZCnUuSPpxIODg/D5fPyUYLPZDK/" + "XK4uJv5x6aDyabiZOMpaCo4J040Es0hVaLTY2NkpyMUrlcMo33piQExyOb/" + "Yx73Xg/EsAzUS0VG4qx5s/" + "ehMLyhYAkJYkI6O8LZZ8PPKnL7Dpy1sQKN4nPoCvLgbefQzHLzLijje6sXhxzjff" + "hfiUITcns9mMFStWyFKHSiCMnOvq6iQP4pQKh8OBlpYWWCyWSccerUPN6XTCbrej" + "u7sbFEXxFQmEiA0GAziOg81mw9DQUFg/" + "i2Q67KREqJF0YuJd4HK5MDY2huHhYb6VXuo8tFBMxXy0dCa+5MZRQbrxRLqRTG+" + "kWC2mEwyjwaZN0/CnPwlIbMkLwNnXAuqJC7LSUom3L34btYW1kjvJCLbvdOCq/" + "3svBit+BxQLvruRBuDNX6Mx5zvY+BKF4493wulkMDAwwN+" + "MTCYTDAYDHA4HVCoV5s2bl5Lo02q1piRyDgQCaGtrg8/" + "nw9y5cyVrzkIns2nTpvHHSjrUnE4n+" + "vv74Xa7EQgEYDabMWvWLD66jVU5EU4nDk3YBYNBeL1esCzL+0/" + "EI08IpwQHg0FYLBYUFhaGnYcm1ImjTX6Qm3Sl5FvI9Z4Jdfrx4qgg3XgQGulKtVp" + "MJ2w24OKLS7Bvn4BwVz0FnP4L/v82FDXgzYvexCzLLN4sPFYnGQD09QH/5/E/" + "49O8XwGzho9soA3Ax3eisPmXuPM2Na65xo+JwG/" + "igps5cyaAI4Q1OgB6cgAAIABJREFUMDAAs9kMmqbx1VdfITc3VxTtJRrxulwuHD5" + "8GCaTKWwiKxmQUfG9vb2oqalBWVlZ0r+1SqWCwWCAwWCA2WzG4cOHYbFYUF1dzT/" + "ed3R08BN2Q7X0aL+VMLoNraggskC4iFgqEZOIOdI8NDKunUx+oGk6rE4sN+" + "kajcaY73O73VnppQsco6RLUdQkq0UpLmWxIEf95JtvqnHttVqMj/" + "O+iMBJGyb+fYPFZYvxrx/" + "9C6W5pWAYRlK9rdcL3PV0K37buw5s5XbxxpYzoXnvaay9cBbWv0qjqGiyPk0qODo" + "7O1FRUYHGxkYRIZCGBaHVYygRRyNQYfQ5Z84c2S8oYsxeXFyM4447TlYtkGVZdHZ" + "2YnBwEPX19SKDbuF/" + "kxIwl8uF7u5uuN0TE5BDW51DH699Ph+am5uh1+" + "vD3oiiVU4QhEvYRSNLoU5MQKJ6Ik8QnVilUoFhGPT39/" + "Nz7BK9lqRqug6HI6X+CKnEUUG68RCdRqPB+" + "Pg4BgYG4rJajAVi75hozSRNT3gnPP644O9VLPD9G4HVT/MvralYg7+d/" + "zdY9BY+Yo9GthwHvPwahVv//" + "TBcCx8FKgV6tqMCePtpnFZ9Fja9T6OhIbwZEKkaKCgoCKvbhjYsTOz3SKQk7BwzG" + "o08CZOIuLu7G319fbJFn0L4/" + "X60traCYRgsXLhQtunPBKOjEwZC5eXlMWWQSK3CJKkplHBIwo7czBobGyPWpErps" + "AuXsCPyRDxG8SSqF+" + "rEw8PDGBgYAE3TfD0xOSfi1YmlaroOhyMrKxeAo4R0pYA8nrW0tECtVsdttRgLxG" + "ksEdLt7QUuv1yLTz8VkL86CJx9DbDkJf6lU6pPwavnvAqDxiDySYiEnTvV+" + "PFj76G1bh2wxHZkA6sBPrsRcwbuwsMP6XHyyYGwf+/" + "z+fhJEgsWLIh7WCAhYqH+6ff7+UQU8c41GAw82ZLEVLLEK4w+U5GE8/v9/" + "HezePFiSY/E4aBWqyc92rMsi/" + "7+fnR0dMBgMECr1aK5uVl0wyKeDfG2OgMTxNbT08OXx4UaxUvtsCMgv3VlZSX/" + "GhnBE04nFnbZhUbtUq8hu90uSzfaVOCoIN1YF+jY2BjfGTV//" + "nx0dXXJSrhAeE9dKdi6VYUrrtBgdFRAuFo/cMHFQOMb/EvnzTkPvz/" + "j99CpdTHJtrtbhV9uGMSbzC+BlX8Tb+" + "w6Afk7fo0NP238xidhspQQDAZhtVoxPj6Ouro62ZKKKpUKRqMRLMvyGfPFixcDAJ" + "+I6u3thd/" + "vD1sRIJWISW21lOgzXghNdVJB5oFAAC0tLaBpGitWrODJnFROuFwuOBwOUeWEUCe" + "O5tmgVqt5O02hzCJM2JH8ACDdiS2cTBGvTkyImKKouLx0sxFHBelGgsvl4iNbMvO" + "Loqi0T48IB5YF7rkngEcfzQPHCS4SvQv6K89BYMZH/" + "EtXLrwST578JLQabVTicbuBRx5T4cnPnkfwW/cAOe4jG71F0Hz4EH6y5nLc/" + "hGDgoLJ34Gw22vWrFmoq6uT9VE/GAzyc+zIhGYCo9Eomm3m9/" + "tFFQE+nw96vV5ExKEE4/V60dLSAo1GgyVLliTkYxwN5OZdWlqKlStXyqoLC7/" + "72traSYZAwsoJ4YQEYilKIkqv1wutVmwSbzKZwLIs2tvb4XK5MG/" + "ePFHFRjjDdykddoSIpSbSounEpN3Z6/" + "XiwIED0Gq1oog4NzdXdIwK6WYYvF6vaPy68MdJpZG5VNLt6vLi8stV2Lkz5KTJHY" + "HlJ2fAad7Nv7R2/" + "lo8eOKDUQmXYYBXXtHgzuf3Yez4nwDf2y9+" + "w74rcapqEx79Yz5qa8Mf49jYGNra2pLq9ooEjuPQ19eHrq4uVFZWor6+PiaZE+" + "1Q6JcqLM0iBEP8B/" + "x+P7xeLxobG2Uv96MoCi0tLWAYBosWLUpYSogEl8uF5uZm3lg+nu8+JycHpaWlk+" + "aIke/" + "JZrPB4XCAoihYLBZMmzaNlxOiEaVUJzZiFp+fnw+" + "apuPusBPqxKWlpRgeHsZxxx3Hfwa3243Ozk54vV6etPft24fm5mZUV1dL/" + "p6i4Z133sG6devAMAyuvfZa3HbbbbKsGwmqGPWtWVGBzLIsaJrmByza7Xb+0S/" + "cxf3pp5/i+OOPl/UYyDQGYbQWikAggDfe6MPNN8/G0FBIFGbpRsmN38eIqol/" + "6dZlt+KSykvgcrlAUdSkJFROTg62b1fjlru8+HrancCK3wAqwU82NA81Tc/" + "h2VtW49vfDt8x5/" + "F40NraCrVajfr6etkJxW63o6WlBQUFBaiurpZV1iFk3tHRAbPZDJVKxbtzCSPiaD" + "aP0UAMjvr7+/" + "noU06QmXAkUSZ3xYbf78fhw4ehVqtRW1vLl7A5nc5JJvHk+" + "4qH8F0uF5qamlBYWIjKykq+Xl7IKVI67ITYtWsXjjvuuLDbiE785z//" + "GW+88QYGBwd5E/wXX3xR8nGHrtnQ0ID3338fFRUVWLlyJf70pz/" + "JMR8t4gl3VES6wWAQbW1tGBwcjDkROFWIFulOdFZ1YssWNZ5/" + "vgE0LT62wroW6K4+FUOBCWtGFVR44uQncN3S6/" + "j3hCahduwYxrPPVeJz14cTFQ7mgSML0kbkfXEXNp71M1y5WQONZjLhCl26Qh/" + "15QCpGggGg7K37gITdZqHDx+G0WjEqlWrRAkZYaRH/" + "BSkuIsJQUrMSkpKUiIlkJrbysrKmJOhE1mf1CMLdefc3NyIJvGDg4Noa2sTJbsil" + "foxDMNr/" + "nPnzp10swg3OimRiR2hIDfT6667DlarFWeddRa++" + "93voqurK7EvChMkX1dXh5qaGgDARRddhH/" + "84x8pG0oJHCWky7IsdDodb7U4FQjXXkwisaamLmzZshT/" + "+tfkEpdFp36Bnu+cjiFqolFBq9biD2f+ARc0XiB6H0lCeb1GbNlSgd++3gnm+" + "5cDde+J39d2Os7NuRO/" + "2lCIadPGwTAWaDRHLhoynbinp0fSKPh4Qeqfh4aGUpJoIjcLp9MZcUpHOFMbUiPr" + "dDp5d7FwzQo0TaO1tRU0TaekxCxWzW2yIFIFMWiKJSFINYk3GAywWCxQqVQYGBjA" + "zJkzsWLFirDnTiJObARSS9icTic/" + "lJIQZiLo7e3FrFmz+" + "P9fUVGBnTt3JryeFBwVpJuTk4PZs2dLfr8cRuah0Gg0Iq14dHQULS0tcDjKcfvt/" + "4Wmpskn//k3bcN7JefARX3jFKY14tUfvIpTq0+d9F6KArZs0WLzIxwc8x8Gfnw/" + "oBWMzHHOwBrH4/" + "jD+" + "v9GaamPv2hsNhvfqKDRaOBwOFBaWip7g4AwepsxY4bsVQPC5oxEbhaRbBIJEXd1d" + "WF8fByBQAAFBQUoKysDTdOydVuREjbixSD3kwXDMHySMhmpIlLNtdvtRktLC3w+" + "HwwGA/" + "r6+jAyMiKSJqKZxAPRdWLyZJSfnz+" + "phC1cRJytXrrAUUK66TQyj7YmKekhGfTu7hW44QYTXC7x8ZnNHNY++gaeG74E/" + "oAfAFCQU4C/" + "nv9XrJ65WvRejgPeeEODu+7SwcruAC6+" + "Hig9ovuCVaO86wb84dI78Z3jSUZa7A9AWmspikJhYSGcTid27drFd4wJGxUSAfnM" + "RqMxJdGb0+nk22vlNNXRaDT84/" + "bAwACmT5+OyspK3tSGDMgEMEn7jIeIx8bG0NLSgvLycqxcuVL2pzFSIhct+" + "kwGxGWtqqoK06ZN49cXmsQPDQ1JNokXQqVSYWhoCFarFbW1tSgrK5MUEQ8ODspSv" + "TBz5kx0d3fz/" + "7+np4dveU8VjgrSjRepIF2GYTA4OIjR0VHU1c3BE08U49FHJ3+9c+eyuGTzi7h3/" + "1ow3MRJVG4qxz8u+AcWli0UvXf3bjVuv12Hzw6MA6fcCix9QbRdP7Ic6xc/" + "jZtvXYJw11kgEEBHRwdcLtekKo5Irbsmk4kn4VgesiRx6fF40NDQIHtbZqLGNPGs" + "39raCoqiRLqzXq8XyRbCrrG+" + "vj643W6wLMsbn0dq3yU1t8FgMKkGikggVRUsy6akRI6iKDQ3N0OtVoe9mcZjEi9s" + "cyY3LYqi0NTUBJ1OJ7qZRmvs8Pv9ePzxx9Hd3R33QM9wWLlyJVpbW3lzpddeew2v" + "vvpq0utGw1FDuqnw1JUCMi+tr68PRqMRVVUrcPnlenz44eS7+4UX0li89inc+" + "ckt/GtV+VX414X/" + "Qk3hEV3KZlPhnnt0eP11DbD4JeBnv+" + "SnQwAAAnk4I2cDXrznOphyJ0dcQmOXqqoqzJkzZ1L0E+" + "kxMtRDliRWhBGxWq3m109F4lKoO6eiNZgkmqSuH6lrTJiEEjqwmc1mUBT1zQ24Lm" + "pFS6LHT2p66+rqZK+qEJb4xbt+JJN44tdAblqkXr68vJx/IosGtVqN/" + "fv3Y926dTj77LNhtVpleeLRarV49tln8f3vfx8Mw+Dqq6/G/" + "Pnzk143Go6KkjFgIqqQSrpNTU0oLy9Pqp6TXLhdXV2oqKhAQUEB3n13GHfeOQ9dX" + "eILWKvlsHEjhfHF92HTZ5v41+eVzMM/L/wnpudNkN74OPDIIzo8/7wWAXML8N/" + "XA9XbRGtV+X6AP13xMBZVTX4EIpMu2tvbUVZWhtmzZyetRxIidjqdvE7s8/" + "lgNBoxffr0b3x5LbLV9QqNaaqrq2U3qXY4HDh8+DAKCwtRU1Mju/" + "HN8PAw2tra+JFIQh+" + "FZGUcYKJqo7m5GWazGbW1tbLWUwMTNe5NTU0wmUyoq6uTfX2fz4empiYYDAbMmDG" + "D71BzOp2TTOLNZjMMBgMoisLDDz+" + "Mbdu2YcuWLVi0aJGsx5QiRLyLHzWkS9O05OkNUmpqI4EQW2trK4qLi1FTUwOdToc" + "XXghi3TojAgFxhDttGov/fcmHN/y34Pm9z/Ovr5qxCn89/68oNBSCooDf/" + "laLhx7SYdxFAd/aDHxrE6A94olgoCqx6b8ex9pvnx72uEiiQ6/" + "Xo66uTvZHTdLtpVarUVdXB5ZleSJ2uVxgGGaSNBHPBSs0pmloaJC9akAoVTQ2Nsp" + "ewkZqbl0ul8glTSjjkO8qXgc24EiZ1tjYGBobG2WXckh78+" + "DgIObMmSN7t5ewjC2cqTt5D9HTXS4Xdu7ciU2bNiEQCKChoQHXX389TjrpJFFHXg" + "ZDIV0hbDYbdDpd3II5Sejk5OTwjQQ0Ddx22zej0EOwZg2DF15y49591+O1Q6/" + "xr59cdTJePedV5OpM+OtfNbjnHh1sNjVQ/" + "eFEdFvcemQRVoPzpv8cv7loPUz6yUQh1FXr6+" + "tld14iPgxjY2NRzd2Fj9vkohHqnpESUKn2MhA+" + "ildXV6O8vFx2qUJYcztjxoyY64eSi9PpDOvARjRLkoibPn06Zs2aJXsi7v+3d+" + "5RUZXrH/" + "8ODMhlYBQFIhC5DDMDKipg2spLP1dqmZ2ORlqUWOpxnY4ZZnrKrNTsKKl5Kc2jx7" + "J17Octf+eUy9KOpzLNlKuYKAwgotwvwszA3GfP/" + "v1B72YPF50Z9paL+" + "7MWfwiy52Uuz37e532e75etxxAZGcn59Un2LJFIIJPJHNpdmEwmpKen49y5c1i3b" + "h2MRiNyc3PxyCOP4LHHHuN0fTzR/" + "4Ou1Wp1eAy3oqICFEU53GZGPLpMJhMUCgWTZTQ0ACkpHjh7tuOb9JVXLHhvvRYLT" + "s7Dyesnme8nK5Pxjxn/" + "QMavXnjnHQ9kZ7sDPvXA9DeAUQfsrhHp8RD+97kdGPVAx+" + "0UO1hFRkbyUvckLVpDhw5FaGio09e/" + "WyAmtcMHHngAw4YN4yWYqFQqSKVSREVF8bIVV6lU8PT0RExMTLcOZtnDL+" + "S5MhqNjFHjsGHDMGTIEE4U2AjsNjM+" + "DippmsatW7dQXV0NpVLpcPack5ODZcuW4dlnn8WKFSs4f93uEULQZVNTUwOdTofo" + "6Og7/" + "j+" + "2q0RMTIzdWPGVKyIkJ3vg5k3759bTk8KyZYV49PFbePfqu8i5ncP8bOGohfhT6Ha" + "sW+ONkyfdW/VyR+8Hpq0EvJuY/zcA/lg/" + "eR3+" + "nLQQ7m72WQFN06ivr0dpaSmCg4MRHh7OS92TeIeR8glXEGdcckhHPlDsdixnW7La" + "Y7FYUFJSAr1eD4VCwXkwsdlsjHcbHz235IZXVlbG2P2QjoDuKrARSPYcGhqKsLAw" + "ztvMWlpamBFhR2vzRqMRGzduxIULF7Bnzx7eD7R4Rgi6bIgdtlKp7PTnZOa+" + "oqIC4eHhCA0NtcvCvvnGDQsWiKHT2T+" + "vYWE2HD5sQpiiDk8ffRqX6y8zP3s64EVYvt+MUyeDYbOJgMCrraWEYb/" + "YXePJiGew44kPmcM1Nux+2OjoaE5aZtgQnzhSQ+" + "M6WJG6JLmJkVIFuyWLZHkA7EoTxCb+TrBP3dv3lHIFCVYPPPAAwsPDOc/" + "OdTodCgsL4evri+jo6E5veGwFtubmZocU2AgWiwVFRUUwm82IjY3lvPZPhkDq6+" + "udqj1nZWVh+fLlmDt3LpYvX95Xs1s2/T/oEtM+RyB6pCNGjLD7PqnPkdP/" + "iIgIuxefpoH0dHesW9fxDTFhAoUDB0wwe1Xgqa+" + "eQlFjEfOziYZ0ZO34K4xGESA2AJM+" + "AB7ZBLi3rTfEKxyfPL4VT8R0PCgzmUwoKSmB0WiEXC7nXBiFoijmECU6OrpLoSBX" + "Ydc9SWbliH8XO7CQQMxuvPfz82OuQ8Zf/f39eTnVZ/" + "fcKhQKzntu2dmzKwdZbAW25uZmRoGN/" + "Vy1tLTgxo0bvNS2gTYBnCFDhiAiIsKhG5LBYMCGDRuQlZWFPXv2IDY2ltM19SBC0" + "GVDlLVGjx7NfE+tVjOGiJ2d/huNwJ//LMbhwx2zrT/" + "9yYLNmy242VKCp44+hVvaVgEOEdzgdfrvMJz/" + "Xbgm+" + "nvgyb8AAaXM77qLxPhT3CLMGzYPFr3FrgtAIpFArVajvr4eUVFRHTRWuwu7VMFX5" + "sYWppHJZN2qe5J+" + "T5IRE6UsMrkUFRWF4OBgzseP2Tq3XPfcAm1tcqRcxNX6iapYY2MjqqurmfeWVCpl" + "gnF7nVpXsNlsKC0tZQRwHN0hZWRkYMWKFUhJSUFaWlp/" + "yG7Z9P+gS+" + "QdHcFkMuHKlStISkpiWqFIq1JnWWR9PY05czxw4YJ9wBWLaWzdasHChVbk1+" + "fjqaNPoU5f1/" + "pDygP4v4PAtWTAr6pVCWzEUbvffzj0YeyYugPDA9tqV2SrXVFRgdraWojFYruMpX" + "2G5yokGHp5eUEmk3FeqnBEmKY7sOueQUFBTN2TTEC1L0248nyxdW75OIgj4jpGox" + "FKpZLzNjlyw6ioqGAMM9kKbM3NzdDpdMzwh6Oju2w0Gg0KCwudumEYDAZ88MEHyM" + "3Nxd69e6FQKLr7p/" + "ZGhKDLhqIoXLx4EQEBAVCr1ZDL5XaurQSaplFURGPWrAEoLbV/" + "MwUE0PjySxMmT7YhpzoHf/jqaahNvx+GWbyBI/" + "8Crk8Fxn4KTHkH8NIyvztwwCD87dEPkDoyFW4i++" + "tqNBrGWig6Ohqenp52W23yYSEKUSSwOPpBsVgsTD8pn8GQCNOEhITwso1VqVSQSC" + "Sd1j3ZQjYkI3bm+eqq55YraJpGbW0tbty4wVvtWafToaCgAH5+" + "fndt02IrsJEb193s4imKYrSAY2NjHe57vnDhAlauXIl58+bhtdde4/wQuBfR/" + "4MuTdMwmzs3WGRDCv3FxcUYPnx4p32VRIg5IwNITvbC7dv2P5fLbTh2zIToaBrnb" + "p3HH48+AyPdWnOE0R84eAKgBrQelIVcsvvdlOEp+" + "NvkvyHI136b6uwhFkVRTFDRarWMZix7XJet+" + "sQereXrg84WpuG66wHonui3I4HYx8cHDQ0NTvXcOguRdiS93lw/" + "R+zasFKpdPmmyn6+SCAGwHSWNDQ0ICwsjBEvvxt6vR7vv/" + "8+fvvtN+zduxdyudyldfUhhKBL0zRqampQWlqKkJAQVFdX45FHHun0/" + "1EUhdOn3fDCC17Q6+2fu0mTKBw8aIJUCqQfOYsNZc+AFutbf6gfDBw7BMQdAxL/" + "YefiIA+QY/" + "vU7ZgcPtnueq0C560fku4eYlksFrtArNfr4enpCQ8PD2i1WgwZMqTLE/" + "HuwJ724qNFi7x2ZWVlnAZDdobX1NSExsZGuLm5ITAwEIMGDeKs5gnYT3zx0WYGtG" + "31yQg41/V5IoCj0+kgkUhgMBgA3FmBjaZpJrt9+eWXsWTJkv6c3bK5v4MuafPx9/" + "dnDnPaW/aQAxmbzYbjx93x0kteHRweUlKs+OQTM777zh3v7j+Dsof/" + "CHi0SjOiJQi4kgLEfwn4NjC/" + "4yX2wpvj30Ta2DQMEA+" + "wezwSSBw90XcWklVZLBZIpVLo9XoYjUZGkLr95JOz8C1MA7TVnn18fCCTyXjNDEl" + "Nn50Rs10n2KUJZ/5OovfgzKm+M1AUhZKSEjQ3Nzu11XcGog/d/" + "qbXvt2PKLDl5+ejvLwcN2/eRE1NDT7//" + "HPIZDLO19WL6f9BF2i9E7MhegQikQhyudzuzXjhwgWMGzeOETQnI8THj4uRmjoAF" + "GX/" + "nC1bZoFSacO2bR5QmX8CUma2BVwAMAyyG3AAgOlR07FlyhY7BTGgtVOiuLiYES3h" + "YxteVlbWoR8WaHNf1Wq10Gg0zAiqs9q6TU1NKC4uRkBAAC/" + "CNMQ5WKPR2E0BcomjPbfswyeyg2CXcojjbvtATGykdDodL3oPQGswLC4uRlhYmEt" + "Tg3eDHPaZTCaH+3opisKxY8ewb98+xgjWaDRi//" + "79GDVqFKfra8+2bduwb98+iEQijBw5Evv37+e8F9lB7o+gS5TGTCYTU/" + "tTKBSdbuUyMzMRHx/PBAuRSISff3bHH/84oEOGGxZmg80GVFW5AUN/" + "BeZNBTz1Xa5jqP9QbJ6yGTNlM+0+" + "BGScmHRKcP0hZGfP5EPoSFZFtABIECaKT6S9iC1gw7cwDfuQydXx47thMpkY/" + "zZXe27vFogtFgtTP+" + "fjMJH0DVMUBYVCwUtgIYppzpwBtLS0YM2aNSgqKsLevXuZqU/" + "SzslnW1hlZSUmTJiAa9euwdvbG3PmzMGMGTPw0ksv8faYd6B/" + "G1MSyMRTTU0NoqKiEBsb2+Uhmbe3N3777TcMHDgQUqkULS0DMW+" + "eT4eACwAVFb8HrsFFrRluFwHX090Trz/" + "0OlaMWwEfj7ZgxM48ZTJZp50S3YWM7vr5+TntriASieDj0+" + "o20V5bl60XazQaQVEUkxly3WZGprH4cqBg6+h2t+e2M91Yi8XCCMKTEWeiH8vui+" + "1OAGbfWElfMteYzWaoVCrQNI2EhASHXmeapnHu3Dm89dZbWLx4MXbt2mV3w79XPb" + "hWqxUGgwEeHh7Q6/V48MEH78njOkO/CrpXrlyBVCrt0qCSHJLRNA2lUslssxsbG/" + "HXvw5AY+MdtrAiCkh+rkMJgfCk7EmkP5puV0pgt08Re2c+" + "DjdKSkqY7R9Xh1ik11UikcDT0xNqtRphYWEICAhg+ojZJ9r+/" + "v6QSqVO9XgSiPBKU1MTFAoF521sQFtnxcCBAzn3hwPaXuuqqiooFArmxsq2PSeWN" + "h4eHnalnK5GdtvD7nzg0raITW1tLUpLS50K6M3NzXjvvfdQWlqKr7/" + "+GhEREZyvyxFCQ0OxYsUKhIeHw9vbG9OmTcO0aR39BnuaflleaA/" + "7kAxoM7tjExbmjaamO7zxH7gE/Dmhw7fjg+Kx4dEN+J9h/" + "2P3fVLzHDhwICIjI3k5ACIqY3xMqwH2GrpyubzTLWxnrVjsgyepVNpldsceDw4LC" + "+NFeIXdc6tUKjnvrADapBEdrW+" + "zAzG7y4RdI2YHYpqmUV5ejqqqqi61aLsL6Uxwd3eHQqFw6P1K0zR+/" + "vlnrFq1Cq+" + "88goWL17cY27cQOtn7plnnsGRI0cwcOBAPPvss0hOTsaLL77YE8u5P8oL7S17HAm" + "2hPBwusug++CDVjw11xsH3H2hp3QAgCi/" + "KCwdtRQvjHoBPt5tpQSDwYCiolbdhREjRvBS8yQqXcTokOusrSthms4g5o5srQCr" + "1coEFKL1y87uiONrUVERBgwYwFspga1zy7XVPGAf0OPi4hwO6J6enhg8eLBdmYmY" + "PGq1WlRXVzMiNl5eXlCr1Rg0aBCSkpI436azyxXOWPM0NzfjnXfewa1bt3D8+" + "HGn3Lj54r///S8iIyOZv2H27Nn49ddfeyrodkm/" + "ynSJ0pgzwZZw9qwbUlIGMIHXz4/G9OkUnn/eisces0EsBoobi3Gu/Bwi/" + "SMxwm8EmrWt2Qr5gNhsNpjNZsTExPAyo8+" + "3O4QrwjSOQoKKWq1GbW0tjEYjJBIJBg8ezARjrv4evV5vN4DAdUAH2hxy+" + "eoasNlsKC4uRkNDAwICAmAymWAwGDiRdSQYjUYUFBQ4NahB0zTOnDmDt99+G6+++" + "ioWLlzYo9ktm4yMDCxYsABZWVnw9vbGSy+9hKSkJCxdurQnlnN/" + "dC9YLBZYrVZGAMWRYMtGrQby893g50cjLo6GIxUBtldaQEAA3N3dodVqGWddcvrv" + "7+/" + "vckbKt44B0BbQiRYDH5knCVQkoLOzO61WC5PJBG9vb7t6pzPr4FvnFmjdhqtUKgC" + "AQqHg/DARaBNf6kzPgJxDkC+2vi677/pO7/" + "vONBkcQavV4p133kFlZSX27NmD8PDwbv+tXLNmzRocOXIEYrEYY8aMwb59+" + "3h5jRzg/" + "gi6K1euhEQiQVJSEhITE+" + "Hn58d5BsKmsbHRrlfVXgay7fRfo9GgubkZNE07dejEVrjiS8eAPVrLV0AnDgseHh" + "6IiYnp8kPAtrEhX+" + "1t4bsyweRb55bt8cWHrRBg39cbGxvrcGmKra97t0BsMBhw7do1p6xzaJrGjz/" + "+iNWrVyMtLQ0vv/" + "xyr8luezH3R9BVqVS4ePEiMjIykJubC7PZjBEjRiAxMRFjx47F8OHDOTnQItKQbm" + "5ujFeaIxDhGtIPSw6dSBBmn2TfKaBzAbuzgi+dATLi3NDQ4HLm2d6NWKvV2ln+" + "eHt7o6amhulX5VrnFmhzQZBKpYiOjuZljJX0xHLxWrDNSZ2cAAAUu0lEQVQHYNi7" + "CJqmYbFYmBu4IxmgRqPB22+/jbq6Ovz973/" + "H0KFDXV7Xfcb9EXTbYzQakZeXh4sXLyIrKwtXr16Fj48PEhMTkZSUhKSkJKdm1Mk" + "2X6PRICYmhpPtK1svQaPRQKfTwWq1QiwWY9iwYYxsIZfwLUwDtNU8+TBTJKOnN2/" + "eRENDAzw9PSEWi+" + "1GdV2Vc2TD9hBzVmDHUdg9sXyVK3Q6HZPdDho0iBnbNZlMXY6E0zSN06dP47333s" + "Py5cuRmpoqZLfOcX8G3fbQNI3GxkZkZWUxgZjdQ0uC8aBBg+wyDbbGAF/" + "bfHZWSHzP2GO6ZItNBKhdyXz5FqYBWrs3VCoV3N3dIZfLeQki7J7bqKgouLu7MwL" + "n7F0E0Yl1RTOBjNc++" + "OCDGDp0KOevN3unwZc4OltkpzPFsc7MMC9duoQjR44wWfHevXvtxP4FHEYIul1BD" + "l8yMjKQkZGB7OxsRjgkMTGRmT1fvnw5IiIieGmqv5vwDU3T0Ov1dmO6NpsNfn5+" + "TFniTpkdexKLL6sWiqIYb6y7tZm5irM9t0RFjDxv7FHd9uUcwr0YrzUYDCgoKGDc" + "NPjYaRDrHGds1WmaxqlTp/" + "Dhhx9i3Lhx8PHxQW5uLmbPno1XXnmF8zV2hlqtxqJFi5Cfnw+RSITPP/8cDz/" + "88D15bI4Rgq4zWCwWHD9+" + "HGvWrAFFUZBKpbDZbEhISEBCQgKSkpIQExPT7QCs1WpRVFRkJ1juKGxhc41GY1cf" + "JkHF29ubEdfhS5gGaDX6LCkp4fUQi91z252aZ/" + "tyDtvU0Wq1orGxETKZjJfxWrYleVeaIN3FZrMxPdaxsbEOl0Samprw1ltvQavVYv" + "fu3T02Pjt//" + "nxMnDgRixYtgtlshl6vd9ovrpcgBF1n+" + "eabbxAcHIzx48eDpmk0NzcjOzsbGRkZyMzMRElJCYKCguzqw45mkGazmdEy4NJok" + "gwlaDQaNDU1QaPRQCQSITg4GEOGDOmWjGNnkEEQouLGR1Z4L3pum5qaUFhYCDc3N" + "4jFYpjNZrtap1Qq7fbjEusfZyzJnUWr1aKgoMApPV2apnHy5EmsW7cOb775JlJSU" + "nqsdqvRaDB69GiUlpby2nV0jxCCLtcQu29SlsjMzERDQwNiYmKYlrWEhIQO7g0k0" + "+FLf5Y9HhwdHQ1/f39me63RaBgZR3b/" + "sLP1YeK+" + "UVtb61Sfp7OP0R13XEcfg2SFbM2H9rXO9vKXpK7uSFmATPc1NTXxdhjHPvCLi4tz" + "WL2usbERb775JgwGA3bt2sWIHfUUeXl5WLx4MeLi4nD58mUkJiZix44dvEhi3gOE" + "oHsvoCgKBQUFyMjIQFZWFnJzc0FRFOLj4+" + "Hn54fs7Gzs3r2bOfzhGrLNDw4O7jLTIfVhdv8wRVF2/" + "cN3qg+" + "TA6Y7PUZ34bvnlv0YjnZXsJ838sV2biaBmP26NjU1QaVSISQkxGFbG2dRq9UoLCx" + "06sCPpml8++23WL9+Pd5++20899xzvSKzzM7Oxvjx43H+/HmMGzcOaWlp8Pf3x/" + "r163t6aa4gBN2egKZpFBQUMPWpyMhIqFQqSKVSpnc4KSnJYd3briAdA3cSprkTpA" + "WLZMTE+" + "JJ94OTm5obi4mLQNA25XM5LP6zJZLI7xOLjMSwWC4qKimA2m6FUKrv1GDabza6Hm" + "AzA+Pj4wGg0gqZpDB8+" + "nJdMjbhFtLS0ODVIcfv2baxcuRJWqxW7du3ipXbtKjU1NRg/" + "fjzKysoAAOfOnUN6ejq+/" + "fbbnl2YawhBt6coLS1FTU0NYw1EBGvYZYnKykpEREQwteGEhARIpdK7Zh/" + "sNjOuOwbY9eGamhro9Xr4+voytWEutRLY017R0dEOi644+xhsHVo+SjtAa+" + "AoKSlhyiHOOhE7AsnSndF9oGkax48fx4YNG7B69WrMnTu3V2S37Zk4cSL27dsHhU" + "KBtWvXQqfTYfPmzT29LFcQgm5vxmazoaSkhAnCOTk50Ov1GD58OBOIR4wYwRyC2W" + "w21NXV4caNG7z5qwFtH+6goCBEREQwJ/" + "8kIzaZTC7VOdl01nPLNeQwjs8WLSKN6ObmBoVCYXfw5qxzc1dYrVYUFRU5ZZ0DtJ" + "ad3njjDYhEIuzcuZOXnmCuyMvLY3aGUVFR2L9/Py9dHvcAIej2NcxmM/" + "Ly8phAnJ+fDy8vL0RERKCgoAALFy7ECy+8wEvHANuS507b/" + "M5sfiiKgkQisbP56eyGQHQGWlpaeNO5JQd+" + "dXV1vB3GkQPVW7duOSWN2JVzMzsQsxXEGhoaUFxc7NRwDk3T+" + "Prrr5Geno53330Xzz77bK/" + "MbvspQtDt61AUhbS0NJw5cwaTJ09GeXk5I8GYkJDATNR1x8LdZrOhvLwc1dXVLm/" + "zSZ1To9Ew/" + "cMikcgumDQ3N6OsrIy36T6gTamLLztyoDWDLigogK+" + "vL2QyWbf1Mcxms90NzGg0wtPTE2azGe7u7k713dbV1eGNN96Ah4cHPvnkE15KNgJ" + "3RAi6/" + "YGffvoJkydPZgIICZIXL15EZmYmsrKyoFaroVAomIO6UaNGOWQH09TUhKKiIsYmn" + "MttPtleNzQ0oKqqCjRNw9fXl/" + "Gn47I+bLFYmFFnpVLJuYg8YD9ey1cGDbRa55SUlDCuII44N9M0jX/961/" + "YtGkT1q5di9mzZwvZbc8gBN37BavViqtXrzLaEnl5eRCJRBg9ejQzyKFQKJigqtf" + "rUVpaCovFAoVCwVuQat9zy87qNBoNo6XL7h92pvbKnlpzxr3WWYg1jzPjtc5iNpt" + "RWFgIkUjUoT7clXPzjz/+CJ1Oh8uXLyMwMBCffvopL/" + "KTAg4jBN37FZqm0dLSgpycHKZ/" + "uKioCIMGDYJEIkFVVRU+++wzKBQKXoKUoz23ZCCBlCXY9WF2/" + "3BnGTgxbPT09ORtao09gMClASgbV61zKIrCnj178O9//" + "xtSqRRqtRpmsxlHjx5FVFTU3S/" + "AERRFMS2QJ06cuGeP20sRgq5AG9euXcO8efMQExOD8PBw5ObmoqamBjKZjClLjBk" + "zBhKJxOVAzEXPLbs+TPpgRSIRI/QjkUhw+/" + "Zt1NbW8mbYCLTdOEinCB83J6PRiMLCQnh4eEAulzuc5dfU1GD58uXw8/" + "PD9u3b7VyI3d3deekG6YqtW7ciOzsbWq1WCLpC0BVg09DQALVaDZlMxnyPGEWS+" + "vClS5dgNpsxcuRIJhDHxcXdNRiwFc2cydYchbgP19bWorq6GiKRCD4+" + "Phg4cGCnp/7dgctBiq5gdz/I5XKHR6ptNhuOHj2Kbdu24YMPPsAf/" + "vCHHq3dVlRUYP78+" + "Vi9ejW2bt0qBF0h6HbOqVOnkJaWBoqisGjRIrz11ls9vaRehdFoxKVLl+" + "xE4CUSiZ3ID7tk0NjYiOvXr/" + "Pac0vkHUmrma+vL+" + "O1RjJio9EILy8vSKVSpkbsan2YLylMoE3i0cfHx6nuh5qaGqSlpSEgIADbtm3jLc" + "N3huTkZKxatQrNzc3YsmWLEHSFoNsRiqIgl8tx+vRpRsT80KFDiIuL6+" + "ml9Vpomsbt27ftROBv3bqFkJAQWCwWSKVSbNmyhRfrH6C1Der69et3lXdkC9aQQG" + "y1Wu2MQtvrJBDINl8sFkMul/NSH2ZP4Dkj8Wiz2XD48GF8/" + "PHH2LBhA5588sle0Zlw4sQJfPfdd/j0009x5swZIei2IgTd9ly4cAFr167F999/" + "DwDYuHEjAGDVqlU9uaw+x6lTp/" + "D6669j0qRJGDBgAHJyctDS0oK4uDgmI46Pj+9WS5jRaLRzo3AlEBKvNXb/" + "MDEKJYFYrVajoqLCqW2+s+" + "h0OhQUFMDf398pv7Xq6mqkpaUhMDAQW7du7VVTWqtWrcKBAwcgFouZm93s2bPx5Z" + "df9vTSehIh6Lbn2LFjOHXqFPbt2wcAOHDgADIyMrBz584eXlnfoqioCIMHD7YLUm" + "azGVeuXGH0Ja5cuQIPDw+MGTOGqQ/LZDKHlL3Ky8tRVVXFi4QkqQ/" + "X19fb9Q+" + "zyxJc1YdpmmbkMDuzzukKm82GgwcPYufOndi4cSNmzJjRK7LbrhAyXYYuXyRuLWb" + "vUxYsWIATJ04gKCgI+fn5Pb2ce4pcLu/wPU9PTyQmJiIxMRF/" + "+ctfQNM0tFotIwK/" + "du1aXL9+" + "HcHBwXb1YbYIjUajYVrbxo4dy0t9WCQSoampCY2NjRg9ejSkUqmdvkR1dTUMBgMj" + "aE4CsbOZNnETJn+Lo729VVVVeO211xASEoKzZ8/" + "2VQcFgXbct5kul+" + "WFs2fPQiKRIDU19b4Luq5C0zQqKyuRkZHB1Idv376NqKgoGAwGSCQSbN26lZnG4h" + "qNRoPCwsK7jgkTO3P2IIfFYrGrD/" + "v7+" + "3d6UyBDIQ0NDU6N8NpsNnz55ZfYvXs3PvzwQ0yfPr1XZ7cCnSKUF9pjtVohl8vxw" + "w8/IDQ0FGPHjsXBgwcxfPhwl65XVlaGmTNnCkG3G/" + "z4449YsmQJkpKS4OXlhby8PNA0jfj4eCYbViqV3dI4IDq0xHzUFa1bUh9mC8GT+" + "jDJiG02G1QqFQIDA53SfqioqMBrr72GoUOHYsuWLQ6XIQR6HUJ5oT1isRg7d+" + "7E9OnTQVEUFixY4HLAFeCGoKAg/" + "PDDD4wpInFryMnJQWZmJjZv3gyVSoVBgwYx5YuxY8c6rClLXC/" + "CwsIgl8tdzh5FIhEkEgkkEgmzVmIBr1arkZ+" + "fD4PBAB8fH5jNZtTV1XXqPMzGZrPhn//8J/" + "bs2YPNmzdj6tSpQnbbT7lvM12u4SLTLS8vR2pqKmprayESibB48WKkpaVxuMq+" + "D03TqK+vtxOBr6qqQmRkpJ0IvL+/" + "PxO0TCYTiouLYbVaoVQqeZHDBNqsc4g9DxGCZzsPDxgwgClL+Pj4wNfXF+" + "Xl5Vi6dCmioqKwadMm+Pv787I+" + "gXuKUF7gGy6CbnV1Naqrq5GQkIDm5mYkJibi66+/" + "FnqH7wIRgSfTdDk5OTAajYiLi4OXlxdUKhX279/PW/+wM9Y57P7hjz/+GD/" + "88ANaWlrwzDPPICUlBQ899BAvk2+dIdzkeUUoL/QFQkJCGEdWPz8/" + "xMbGorKyUgi6d4F4w8nlcqSmpgIAbty4gdTUVFAUhcjISMyZMwdeXl5ISEhgMmIu" + "VMLYugyOlCy8vLzg5eUFo9GImzdv4oknnsCiRYtw9epVfPXVVxg8eDBGjBjRrTU5" + "ilgsxkcffWR3k586darwfuMZIdPlgOeffx5nzpxBQ0MDgoODsW7dOixcuLBb1ywr" + "K8OkSZOQn58vbDdd4NatWygpKcGUKVMAtJYl1Go1MjMzGbU1YndEgnBiYiIGDx7s" + "UDZstVpRXFwMg8GA2NhYh7NTm82Gzz77DPv378dHH32EKVOm9Jra7dNPP41XX30V" + "U6dO7eml9AeE8kJfoqWlBZMnT8bq1asxe/" + "Zsl65hNBoxadIkmEwmWK1WJCcnY926dRyvtG9DxMjZIvAajQZKpbKDCDwbV6xzgN" + "Yb6auvvoq4uDikp6fzIg/" + "pKsJNnnOEoNtXsFgsmDlzJqZPn47ly5e7fB3S1iSRSGCxWDBhwgTs2LED48eP53C" + "1/" + "Q+" + "LxdJBBN7NzQ1jxoyBUqnE6dOnkZqaiunTpzt8IEdRFD777DN88cUX2L59OyZPntx" + "rsluAm5u8QAeEoNsXoGka8+" + "fPR0BAALZv387ZdfV6PSZMmIDdu3dj3LhxnF33foCIwH/" + "88cfYuXMn4uPjUVlZiaCgIGaabuzYsV0qkd24cQNLly7FyJEjsWHDBpf6gvmEq5u" + "8QAeEg7S+" + "wPnz53HgwAGMHDkSo0ePBgBs2LABM2bMcOl6FEUhMTERJSUlWLJkiRBwXYD05Lq5" + "ueG3335DYGAgaJpGdXU1MjMzcfHiRezduxd1dXWMCHxSUhJGjRqFQ4cO4cCBA9ix" + "YwcmTpzYq7JboPWGsnDhQsTGxgoB9x4iZLr3AWq1GrNmzcInn3zi8sm4YMVyZyiK" + "gkqlYvqHT506hYceeghffPEFL75zXPDLL79g4sSJGDlyJNPF0Z2bvIAdQnnhfuf9" + "99+Hj48PVqxY4dLvC1YszkHTdK/" + "LbAXuKV2++NxbmQr0Curr66FWqwG0OhScPn0aSqXSpWtVVFTg22+/" + "xaJFi7hcYr9GCLgCXSHUdPsp1dXVmD9/" + "PiiKgs1mw5w5czBz5kyXrrVs2TJs2rQJzc3NHK9SQOD+Qwi6/" + "ZT4+HhcunSp29chOsGJiYk4c+ZMt68XERHBWOWIxWJkZ2d3+" + "5oCAn0JIegK3JHz58/j+PHj+O677xjdgBdffLFbViw//" + "fQThgwZwuEqBQT6DkJNV+CObNy4ERUVFSgrK8Phw4cxZcqU+" + "937qsc5deoUFAoFZDIZ0tPTe3o5Ak4iBF2Be4pIJMK0adOQmJiIvXv39vRy+" + "hwURWHJkiU4efIkrl27hkOHDuHatWs9vSwBJxCCroDDPProo91uF/" + "vll1+" + "Qm5uLkydPYteuXTh79qzL11Kr1UhOToZSqURsbCwuXLjQrbX1BTIzMyGTyRAVFQV" + "PT08899xz+" + "Oabb3p6WQJOIARdgXtKaGgogFaXiFmzZiEzM9Pla6WlpeHxxx9HYWEhLl++" + "jNjYWK6W2WuprKzE0KFDmX+HhYWhsrKyB1ck4CxC0BW4Z+h0OqbtTKfT4T//+Y/" + "LE3IajQZnz55lJDQ9PT0Ft1yBPoHQvSBwz6itrcWsWbMAtOrRpqSk4PHHH3fpWjd" + "u3EBgYCBefvllXL58GYmJidixY0evE5ThmtDQUJSXlzP/" + "rqioYHYPAn0DYQxYoE+SnZ2N8ePH4/" + "z58xg3bhzS0tLg7++P9evXu3Q9lUqFuXPnMv8uLS3F+++/" + "j2XLlnG1ZE7g2sVagDcElTGB/" + "kVYWBjCwsIY5bTk5ORutU8pFArk5eUBaO0QCA0NZbLy3oTgYt33uVumKyDQaxGJR" + "OcALKJpWiUSidYC8KVpeiUH150GYA1N049091oCAu0RMl2BvsxSAP8rEok8AZQCe" + "Jmj6z4H4BBH1xIQsEPIdAUEWPwewKsADKdpuran1yPQ/" + "xBaxgQE7HkCQK4QcAX4Qgi6AgL2PA+htCDAI0J5QUDgd0QikS+" + "AWwCiaJrW9PR6BPonQtAVEBAQuIf8P8mW84tApcl0AAAAAElFTkSuQmCC", + "text/plain" : ["
"] + }, + "metadata" : {"needs_background" : "light"}, + "output_type" : "display_data" + } ], + "source" : [ + "pD.degree = refDegree + 4\n", "prob = setup_control_points(pD)\n", + "variableBezier = prob.bezier()\n", + "A, b = genCost(variableBezier, ptsTime)\n", + "res = quadprog_solve_qp(A, b)\n", + "fitBezier = evalAndPlot(variableBezier, res)" + ] + }, + { + "cell_type" : "markdown", + "metadata" : {}, + "source" : ["We can check that the derivatives of the curve are 0 at " + "start and end"] + }, + { + "cell_type" : "code", + "execution_count" : 48, + "metadata" : {}, + "outputs" : [ { + "name" : "stdout", + "output_type" : "stream", + "text" : [ + "initial velocity [0.0 0.0 0.0]\n", + "initial acceleration [0.0 0.0 0.0]\n", + "end velocity [0.0 0.0 0.0]\n", + "end acceleration [0.0 0.0 0.0]\n" + ] + } ], + "source" : [ + "print(\"initial velocity\", fitBezier.derivate(fitBezier.min(), 1))\n", + "print(\"initial acceleration\", fitBezier.derivate(fitBezier.min(), " + "2))\n", + "print(\"end velocity\", fitBezier.derivate(fitBezier.max(), 1))\n", + "print(\"end acceleration\", fitBezier.derivate(fitBezier.max(), 2))" + ] + }, + { + "cell_type" : "markdown", + "metadata" : {}, + "source" : [ + "Of course, with such constraints the curve does not really look like " + "the original one anymore.\n", + "Although it is not recommended, the library is robust enough to allow " + "for adding an arbitrary number of control points.\n", + "Just for fun, let's add 60 more control points and check that the " + "curve is matched better" + ] + }, + { + "cell_type" : "code", + "execution_count" : 49, + "metadata" : {}, + "outputs" : [ { + "data" : { + "image/png" : + "iVBORw0KGgoAAAANSUhEUgAAAV0AAADnCAYAAAC9roUQAAAABHNCSVQICAgIfAhk" + "iAAAAAlwSFlzAAALEgAACxIB0t1+/" + "AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6L" + "y9tYXRwbG90bGliLm9yZy+" + "AADFEAAAgAElEQVR4nOx9d3gc5bn92apdSbuSLEuyLMmyuuVeZMvGkBCKL6SQhBZ" + "auCEQLglJ7IDBxAaCKTbgAjYktNwEQgntphDghl9uiFOoxgYbjC1ptVp1yarb68z" + "8/" + "lC+8czW2d1vV7v2nOfxQ6IZfTuanTnzznnf97wKjuMgQ4YMGTLSA+" + "V0H4AMGTJknEqQSVeGDBky0giZdGXIkCEjjZBJV4YMGTLSCJl0ZciQISONUMfYLp" + "c2yJAhQ0b8UETaIEe6MmTIkJFGyKQrQ4YMGWmETLoyZMiQkUbIpCtDhgwZaYRMuj" + "JkyJCRRsikK0OGDBlphEy6MmTIkJFGyKQrQ4YMGWmETLoyZMiQkUbIpCtDhgwZaY" + "RMujJkyJCRRsikK0OGDBlphEy6MmTIkJFGxHIZkyEjIjiOA8uy8Hq9CAQCUKvVUC" + "qVUKlUUCqVUCqVUCgimi3JkHFKQhFjMKVs7SgjBBzHgWEYBAIB0f8m24RES0iY/" + "JPJWMYpgogXuEy6MiQjmGwVCgUUCgUCgQACgQCUSmXI/sJ/" + "MhnLOIUQ8UKW5QUZMcFxHAKBAPr6+mA0GpGXlxdCsOFASDncegAQCATg9/" + "tF22QylnGyQyZdGRFByJZIB1arFTqdDvn5+" + "UmtSwg0mEiFZHz48GFUVVXxn6VQKKBSqXjdmJCzTMYysg0y6coIAcuyIp2WRKxKp" + "RIsy4bsT4v4hGQsjHgJGQdLGxzHRY2MZUKWkYmQSVcGD5ZlEQgEwDAMgFB5gBBdu" + "hErMhY+IIS/" + "E46QZTKWMd2QSfcUB0ly+f1+PoqNRExKpTKtpBvrs2KRMcuy6OnpgUqlwqxZs/" + "h9CRkLpQqZjGWkCzLpnqIgNbaBQCAm2RIoFIqw8kIqkAwBCsmY/FOpVABO/" + "N0Mw8Dn84l+" + "TxgVy5GxjFRBJt1TDMFkKySmWJgueSFZBEskkSoqCBkHl7cRApYrKmTQgEy6pwgi" + "1djGQxzplBfSTfCxyNjv9+OTTz7B8uXL+" + "W1yeZuMRCCT7kmOcGQrpcY2HNIpL2QKCBkLKyUAsRbu8/" + "nkxg8ZkiGT7kkKjuPgdDrBMAy0Wm1SZEuQzugz0wlKbvyQkShk0j3JIGxoGBwcBM" + "dxqK6uprJ2uDpdn8+" + "Hrq4uOJ1O5OfnIy8vD3l5edDr9UmTSSbpx8E6byRIafywWCxQq9UoKysDAJ585ca" + "PUwMy6Z4kCNfQoFKpQqKtZCCUFzweDywWC8bHx1FVVYXi4mK43W7Y7XYMDQ3B7XZ" + "DoVAgNzeXJ2JaZBwPaBG3VNKNBCEZC6UKufHj1INMulmOaA0NkTrIEoVCoYDP58P" + "nn38Oq9WKuXPnoqmpCRzHwefzwWg0hhyby+WC0+" + "mMm4xpShk0CCpZ0g1ei0g9yTR+qNVqmYyzEDLpZiGkNjQolUqejJOF0+" + "lEX18fXC4Xmpub0dzczH9eJHJUKpXIz88P8WqQQsZutxter5cq2SULmqQbay0pjR" + "9erxcdHR2orKzkH1py40fmQybdLEK8DQ00Il273Q6z2QyPx4MZM2agqKiI1yITRS" + "wydjgcGBkZQV9fH7q7u6FQKERRcV5eHnQ6XVbKFAD4+" + "uhEEEzGfr9f5FEhN35kPmTSzQIk2tCQDOlarVaYzWYEAgHU1dWhqKgIIyMjsFqtC" + "a0nBUIyttvtmDlzJoqKisAwDB8ZW61WDAwMwOPxQKlUhsgUqSLjVMkLyYJlWZFUI" + "bXxg/" + "w3nGYsV1SkFjLpZjCSbWhIpJlhYmICZrMZAFBXV4fCwkJ+" + "23R1pKlUKhgMBhgMBtHPpZAxqapIljRpky6ttYSkGwlSybirqwsVFRXIycmRy9tS" + "CJl0MxC0GhqkRrocx2F8fBxmsxlqtRoNDQ0hSbFY69G+" + "GaUQvBQyHhsbg9PpxNDQEE/" + "GwtK2nJwcSceebqJMx1rBZOxyuXgtWG78SB1k0s0gkBpb4WtgMjdnLNLlOA6jo6M" + "wm83Q6/" + "Vobm6OalCeLd4LQjL2er3Q6XQoKyvjydjhcGBiYgJ9fX3wer1QKpUhmrFUMk4EmU" + "rgDMNE1Xrlxg86kEk3A0DItqurC1VVVVS6x4DIpMtxHIaHh9HV1QWDwYBFixYhNz" + "dX0nqRSDeTqgwiIVpk7HQ64XQ6RWSsUql4mUKlUoFlWSp/" + "Z6ZKFYR0I0FK4wch45GREej1ehiNxojlbacqZNKdRgQ3NPT19VHrHgOmSEZYMsay" + "LIaGhmCxWFBYWIilS5dCr9dLXi+a98J0yAu0oFKpYDQaQySVQCDAyxQTExOw2+" + "3Yv3+/iIzz8vKQn5/" + "Pt1pLQTLVC8Gged4TTfCFI2O73Q6tVgsgeuOHsLTtVKmokEl3GhCpoUGYVaYBEum" + "yLIuBgQH09PSguLgYK1asQE5OTtzrRSLCTL5JkjmfarWaJ+P8/" + "HwoFAo0NzeHkLEwMg6WKcKRMc3qBZqg+T0yDAO1Wh2WRE/" + "1xg+" + "ZdNMEKQ0NhCSJkxWNz3S5XHjvvfdQWlqKlpYWPvpIBJk2OWK6ICRjIQKBAC9TjI2" + "NoaenBz6fL4SMg4nmZATDMBGvY6mNHwR+" + "vx9WqxVlZWUnReOHTLopRjwNDUQOSJZ0A4EAent70d/" + "fD5ZlsWrVKmg0mqTWBLJnckQqICViVqvVKCgoQEFBgejnwWRst9vx6aefQq1WS4q" + "MsxGJXMeRyNjtdmNsbAwlJSUxGz9IUBOu+iZTIJNuipBIQ0OyHWR+" + "vx89PT0YHBxERUUFWltbsX//" + "fiqEC2RP9UIqkKxMISRjp9OJ+fPnQ6lUho2Mw5GxRqNJORnT/" + "G5pBA8EgUCAj26DIaw1BoC33noLhw4dwrZt26h8diogky5lJNPQEJz4kgqfz4fu7" + "m4cP34cVVVVWLNmDbULXoiTeXKEFNCuOIgUGfv9fl4zHh0dhcVigd/" + "vDyFjKRUnUkGz9AxIjHRZFnjrLSX+" + "53UPnnxEC3I4saQK4fditVpDzmemQSZdSqDR0BAv6Xq9XlgsFoyNjWHOnDlYs2ZN" + "ShM06ZQXaIGmtSMtxKpe0Gg0EcmYRMYjIyNwOBxwOp04ePBgWJki3mOiee3Ekyz0" + "+YBXXlHj/hc+QHfTJsBXgYv/" + "33M477ype4FEulJgtVpFXZSZCJl0kwTNhgZSCxoLbrcbXV1dmJycxNy5c9HQ0JCW" + "bHgmRp9SQCNCzQTvBY1Gg8LCQp5UAoEADh8+jEWLFonIOFJknJ+" + "fH1FqoikHANIeUnY78PTTGux5zoLjizcDZ/+e33bPbz7EeeetABA/" + "6dIsu0wFZNJNEMIJDQCSIluCWFaMLpcLZrMZdrsdtbW1InvFdOBUlhcysaGBRKfB" + "ZEwQHBkLyVjYCp2Xl0c90o2GsTEFfvELDZ541gbbsi3AxY8BKkFFRyAHnw4dw7Fj" + "KzFv3lReRGqJoxzpnoQgybHu7m5UVlZSLVmJJC84HA6YzWa43W7U1tZiwYIF05Lh" + "zkZ5gRZod9zRJN1IiEbGRJo4fvw4HA4HfD4fAoEA2tvbQxJ4tDA4qMDevVr86tkA" + "3IseBr6zDdDZxDt9egXO09yFzbtnY968qWuN1PxKgc1mk0n3ZIGwoYHjOPT29mLO" + "nDlUPyNYXrDZbOjs7EQgEEBtbS1mzJgxreVE6Y4+" + "MynSzUQkGp1qNBoUFRWhqKiI/" + "5nNZkNvby9KSkrgdDoxPDwMp9OJQCAAjUYTtppC6nF1dyvw8MNa/" + "OZZFfzzXgCu3QIU9Ip+R9l7Br6uvx9bf7YYc+dyAE7cB/" + "HICzabTU6kZTMiNTSkqnecyAuTk5Po7OwEANTW1opujkRAK0qLRrp+" + "v59qWVOm1arSlhdogLbZjVarDSFjYKo6hsgUkciYyBVqtZrXhzs7Fdi1KwcvvqhG" + "oOpvwDUbgfKPRWsrx5vwjbx7sXPLf2DmTAAIPTfxarrJ3i+phky6YRDvhAZan+" + "nxeNDb24v8/HzU19dTeWITSYBGkiTc3z8xMQGTycQ/" + "mEjyRqgZJvqKSoOcMmUwZSqQLotIrVbLE7IQQjIeGhriyXhw0IBnnqnD3/" + "6WB2bG58CltwKNb4p+V+kuwVfzbsfeW67CjILo10cgEJB8/" + "cqabpaBlH0xDBPXhIZkP5PYK3Ich5KSEsybN4/" + "a+" + "kSyoF23S8hWo9GgqamJt0IkyRuHwyGKinJyckRRUW5ubtRjyjT9lCbpZqqtY7zXS" + "DAZd3QosGOHFi+/rAGbOwR8+b+AZf8NKE9IBYqAHqerr8ee//" + "wvzJ01S1IEG4+myzAMVR06FZBJF4k3NCRzI3Ich+PHj6Orqwv5+" + "flYuHAhHA4HHA5HQutFAu2JwIFAgO9ymzdvHgwGAz8NGAifvCHbSfKmt7cXLpcLL" + "MtCr9eLouLc3NyMiygzFanw0k0EJpMCDz6Yg5dfVoNVO4EvbANO2wlonSd24hRoz" + "bkSO755I4rVRjgdDhw6dIiXNYI1YyHJSpUXsiUHcEqTbjINDWq1mte14v1MYq9YU" + "FCAJUuW8PaKLpeL2vReAlqkOzExgc7OTvh8PixbtizEkzYaFAoFcnJykJOTg+" + "LiYv7nHMfB7XbzkfHx48fhdrv57Xq9ntcNU2kqLgWngrwQb6RrNk+" + "R7YsvqsGCAZY/AZx5F5A/" + "LNpvQc45eOyirVg6a1HIGuSBTGSKwcFBOJ1OMAzDvx35/" + "X7Y7Xbk5uZGJV9Cupn2PQXjlCRdGjW2pLxLKukK7RVnzJiBZcuWQafThV2TJpIlX" + "UK2KpUKTU1N+PTTT8MSbiIXukIxNXI9NzcXJSUl/" + "M8ZhkFXVxcCgUCIdaIwKo5W7E8bpwLpSn2F7+lR4MEHtXj+" + "eQ0YBkDTa8C5m4CZbaL9KjUL8fBX7sa62nMiriV8IM+YMYP/uZCMh4eH0d/" + "fzwclQqmK/" + "FOpVPB4PFRbo1OFU4p0w5FtMiYmUiz6WJZFX18fX44TzV4xk0h3cnISJpOJJ9t4I" + "ttkoVKp+BurvLyc/" + "zlx6yIj2gkxC19PCSnT1rBPheqFWA0IAwNTmu1vfqOB368AKt8Hzr0FqP6XaL8CR" + "TluXnYjfvSFG6FSJvY9CMlYq9WiubkZQKhURcj4jTfewD//" + "+U9YrVY888wzWLBgAebPn58UCT/00EP45S9/CYVCgUWLFuHXv/" + "51SKCUCE4J0g2e0EAjORaLIBmG4e0VZ82aJclekbb+" + "msiaQrJtbGycNou8cOVp4QxiSEmf8CZ0Op1gWRY6nQ5+" + "vx8cx0Gv10Ov1ydMUplYBZEuTXdkRIHdu7X45S818HoVwIwO4OzNwIJXRfvpFUbc" + "suYmfLP869CpdQkTrhDBPhWRpKply5Zh37592LNnD8bGxvD444/joosuwvnnn5/" + "Q5/b392Pv3r34/PPPodfrcemll+LFF1/Ed77znWT/" + "pJObdFmWFY0Nod09Fi7SDQQC6OnpwcDAAG+" + "vKPW1bTojXVIbrFQqEyLb6Xr9VigU0Gq1mDFjRsjrqcfjgclkgtfrRVdXF68Xk1E" + "7JCrW6XSSjj3TqiBojv0Jp+lOTAB792rx+ONaOJ0KIHcEOP9uoOVxUduuChp8b+" + "l12LTmVhTri9HT00Pd1jEWyKTnhoYG3HTTTdQ+2+" + "12Q6PRwOVyYfbs2VTWPelIN7ih4cCBAzjttNOoEwIpAicQ2itWVlYmZK84HaRLyF" + "ahUEQcvZ6NUCgU0Ov1yM3NRWFhIR8VsSzL2yZarVYMDAzA4/" + "HwE4EJEZO5ZwS0yJK2TEGL3ISk63AAjz2mxd69WlitCkDjAs54GDj9fiDHLvq9bz" + "RciLvOuBO1hbX8z2h76Upda3JyklqNbkVFBTZu3Ig5c+" + "ZAr9dj3bp1WLduHZW1TxrSTXdDA9F0ib3i6Ogoqqurk7JXTCfpWq1WmEwmqmRLu5" + "Y1FSVASqUS+fn5yM/" + "PR1lZGf9zMvfM4XBgbGwM3d3dfJcdyaDrdLq4uqPCgWZ0SsqtaK3l9yvx2GMa7Ny" + "pxciIElAGgGXPAF+6EzAOiPZfM/s03PvFe7CyfGXYtWiRbjw1ujQbIyYmJvDHP/" + "4RXV1dKCwsxCWXXILnnnsOV111VdJrZz3pxmpo0Gg0CZV2xQJJkFksFmr2iunQdI" + "Vkm2jXWzC5kvOdLXWS4RBp7hnJoPf19cFqtfK1pTqdLqTZQ8r3T3MoJa21AgHgf1" + "7Lw88tm+Ca8xpwQTPwyTXA6oeBkqOifRuLmnDPF+7GebXnRXx4pGJqhBTQNLv5v/" + "/7P9TU1PBVNRdeeCHefffdU5t0pTY0qNVqPmKhAWKvODY2hqKiIixatIha5JIK60" + "RCujTIFjgRgaZav6XlaJbs+SRdVw6HA2q1GuXl5eA4Dl6vl0/" + "ejY2NweVyAZiqLRbKFHq9XnSuMimRxnHA71/" + "jcMvLT2FkxUag8d8bqt6f+idAaW4Zbj9tC65aeBXUyui0EY8kEAvx+" + "i4Iq12SwZw5c/D+++/D5XJBr9fjr3/" + "9K1paWqisnXWkG29Dg9TSrlgQ2ivW1NRg5syZcDgcGVe7GQyfz4fBwUHodDoqfg6" + "ExDNxhHgk0NZiFQoFdDoddDodZk65tACYIkHS7GG32zE0NAS3283rxcSHguQdkj2" + "uZL6Ht/+mwIan/gRLyxXAisj75WsMWL/" + "yx7hx+Y3I1+ZLWnu6Il2a8kJraysuvvhiLF++" + "HGq1GsuWLcP1119PZe2sI90p7ckvuaEhWdK12+" + "18J1ZdXR1vrzg6Okpdf6UJq9WKzs5OuFwulJaWorGxMfYvSUC2ywiJQgpJCsm1tL" + "SU/znDMHzH1eTkJBwOB/" + "bv35+0OVAipHvwoBIb9ryLT+" + "ZeC7T0RtxPq9TiuqXXYeOqjZiZOzPifuEQjw4rZa3pMrvZunUrtm7dSm09gqwjXT" + "LvXioSJd3JyUmYzWawLIu6uroQhyVaETRt2Gw2mEwmcByH+vp62O12qg+" + "HdJFuppF7MpGpSqXi9WKj0QiWZbFgwYIQcyCHwxHScRXNHCge0jWZFNi4ow1vq7Y" + "AS96Kuu9lzZdhy2lbUF2Q2Ngb2pGu1AaHbHAYA7KQdOOFRqOB3++XvP/" + "4+DjMZjOUSiXq6uoivo6notIgGQjJtq6ujr/4nE5nXH9/" + "LKQi2XcqQVi9kIw5UH5+viSTmqEhBW7fMYRXRu8Bt+Q3UfddV7MOd51+" + "FxaWLEzqb6SZLIw3kZbpXrrAKUC6UiJSjuMwNjYGs9kMrVYrqe01VZEuSSBJvWgj" + "kS0BbZLMtAg0XaBZpxvtu43HHGh8fBxOpxMGg0EkU+Tk5MBmU+" + "CBPU48fmQXAisfAioiBwgts1pwRckVuO7c65L++" + "2hjukrGUomsI914L3y1Wg2v1xt2G8dxGBkZgdlsRl5eHhYsWIC8vDxJ66Yq0pWaq" + "CKjfBiGQX19fcSLjTbppms4JS1yz7SmhkTXCWcOdOjQITQ2NvKeFBMTEzCb+/" + "HSqwV45uj/wtu6HWidiLjmHGM1tn9xG75a/1V89NFHCf9NqUQ8lRB+v1/" + "yAMvpRNaRbrwIF5FyHIfh4WF0dXXBaDRi8eLFcRtjpCrSJWQe6elut9thMpliki1" + "BKiLdcOud7BEw7Qm+NECcwabK1Az42z4ltrzwB4wuuR040xL1d3eu2YlLmi+" + "B0WCkXoFD8zo42bx0gSwk3XgvEKGmy7IsBgcH0d3djaKiorD2ilKRqogvUgQtJNt" + "wib1IyGZ5IZtuJKlIRZ3u22+rcPMj76Gz9jbgzOgR66NnP4rzK86Hx+" + "3B0OAQOk2dYFkWHo+Hf+PLz89P2ByIZscdEJ+mC2S+ly6QhaQLxHfjk+" + "aI3t5e9PT0oKSkBCtWrMjY15DgicCJki1BNssLmYTplhfCob09F5t2duND4+" + "3AGa+LN7qKoX3vDvzkjO/ia982YYLpx9rKtWEbG/" + "x+" + "Pz755BMYDAY4nU6MjIwkbA5Es3IBkP5m4PF4MvaeDkZWkq5UMAyDoaEhjI6OwmAw" + "SLJXnG6QicCkPtjv96O+" + "vj7hrGyq5QVizt7d3Q0AYU1jkhlplCnIJHmhp0eBLdvH8UfbU8CKX4lmkMGvg+" + "LD9bi69ibc+XQuSko4APX//" + "hceHMdBo9GgpKREZCYfyRxIpVKJDMSF5kA0a3QJpJx3q9Wa8aPXCU5K0hXaK5aXl" + "/PTdbMBDMOgra2Nb9dNtgQmVfICx3EYHByExWLBzJkzsWzZMigUCt40ZmJiAr29v" + "fD5fNBoNLzJjJShlORzMgmZ4Kc7MQHcv9uPJ488DGbVLkDrEiysAA59G+fl/" + "Az37yhFbS2HcOPMwyFSdJqIOVBOTg68Xi+" + "sVmvIrLNUIlsqF4AsJd1I8oLf70d3dzeGh4dF9orDw8NhVqFzHLQSIySytVqtqKq" + "qQm1tbexfkoBU1NWOj4/" + "j2LFjKCws5KUaYqVpMBhCyu2Edad9fX1wOp28sTi5qePxtY0HmTbFNxHN0+" + "sFHn9SgW1/" + "fg7u1ruA04Ou585zsXxsG3bd0owVK1hIJVvhMcXbcBTJHOj48eNwuVyiWWfJmANJ" + "hc1mkyPddMLn88FisWBkZARz5sxJyl4xHpCkVzKf5XA4YDKZ4Pf7UVdXh4mJCcll" + "a1JAi3RJLfPw8DCMRmNcSchwJuPEp8DhcIS8uubn5/" + "PRdLJWirSQrjpdIVgWePVVFX769F8wsuSnwNlixy8MLcactvux6wdfxLp1DBSKxL" + "5nWjosGZtUUFCAhoYGAIhpDiRsgQ42B4rnYTA5OSmTbipBvhiPx4Ouri5MTEygur" + "oa9fX1aTViSXQiMBBKtoSQrFYr1fpfGqQ7Pj4Ok8kEnU6H0tJSlJaWJj0rSuhTEP" + "zq6nA4MDQ0BIdgTLdOpxNJFME3aKqR7kTav/" + "6lwk92fIq26k3AOX8Xb7RVoPDg3bh25Src/rtqqFTJXS+0/" + "W+" + "FayVjDpSTk8MnbmOdM1leSDFcLhdMJhNsNhtqamowb968mF9KKuwIE2mQcDgcIQY" + "6ya4ZDcmQrtVqRUdHB1QqFebPn4/8/" + "Hx0dHSEfe2jdW7VajUKCwv5Qveamhp+9I7D4eC7sVwul2jaA/" + "mXqkRpuki3vV2JjfcOYJ/yLuCLL4g3eg3QfrgJN6/9Ada/qMaRI/" + "uhUiXmjyAEzdphqc0MUsyBxsbG4HQ6eXMgYYI2WC+mOTUi1chK0nU4HCgpKcH8+" + "fMl3QipMjKPp0GCkK3X60VdXZ2oxVMIlUo17V4JpEyNZdmQeWnp8l4Q6vZk9I5er" + "w8Z1S6cDmyxWOD3+6HVankSJoMpMwWRRp2PjCjws+0uPN+" + "zA9yqRwC1oIuSUUNx8Hp8e85PcddThZg5k6P6N9EecJlM1Cw0ByIJ16amJpE5EHk" + "LIuZAf/rTn9Df34/58+fD4/" + "FQmdg7OTmJ6667Dp999hkUCgV+" + "9atfYc2aNUmvC2Qp6ZaVlcXVDUbbyJxASlQqlWwJprOZwel08oMcGxoawlZOZFLn" + "mfAGJRAaxjgcDthsNtjtdqhUKuTm5oqi4njK2VIV6bpcwN6fA7v+/" + "kt4V98DVI6Lf+HoN3E2dw923FON+voTFQk039xoywu07jPhcUUzB+" + "rp6cFnn32Gt99+G6+99ho4jsN7772X1INk/fr1OO+88/Dqq6/C5/" + "PxOjQNZCXpxotUtexGW5eYnns8HpEPbyzQlhekfKbb7UZnZyecTifq6+" + "ujHms00qUt4SRC7sGGMR6PB7NmzYLBYBCVs/" + "X19cHr9fKvrcIqinAERLNOd6rqBfjtb1XY8twbGF/" + "xU+CsTvGOfavQ3PsA9m5cidbW0IqETIpOg9fS6/VU1oqVRCXf9de+9jW8/" + "fbbuOaaa7B27dqkz43VasU//" + "vEPPP300wBOTA+hhawk3URMb1LpkyCE0+" + "lEZ2cn3G53TAKTumaq4PV6YTabMTk5ibq6OpSUlEgy6k6XvEATwppTIfx+Px8V9/" + "f3w+l0imwUyT9a7a0cx+H993Nx1y8Po7PuVuDcd8U7TNSg5PB92Pmdr+" + "Mb34hckZAKDwcamM6pEaR6Idnz0tXVhZKSElxzzTU4dOgQVqxYgT179lCrKspK0o" + "0X6Yh0kyVbgnSQms/" + "nQ1dXF8bGxiQnIgkySV6gAY1Gg6KiIpGUQmwUHQ4H7HY7BgcHMTk5iSNHjsBgMIj" + "IOB6yamtT4vubOXxU8BPgSy+LN7oLod9/" + "O7acex1uuEMJrTb6g5d2pEurhZY26UqVKqxWKzUv3UAggIMHD+" + "KRRx5Ba2sr1q9fj/vvvx/" + "33HMPlfWzknSTMb2hCZVKBbvdjsOHD8PtdvOabTIRUSoj3UAgAIvFguHhYVRXVyc" + "0wXg6EmnphtBGkWTWP/30U9TU1IBhGH7SA7HWJMX/" + "wnI24XmdSpI58Xzvg+BaHwXUvhMfxmig/" + "OhGXNe4CVt+nQepvEE70s12qYIm6VZWVqKyshKtra0AgIsvvhj3338/" + "lbWBLCXdeJGKSJd0V7lcLixcuDBpsiVIBelyHIeuri4MDAygqqoqqeYRWlN60wla" + "sgDRf4VF+MLif1JF4Xa7/z3DLw+v/r4cT378P/CFS5IduQT/" + "ob4bOx6oxNy5qe0ii4ZU1ukmg3jkBa/XS01LnjVrFqqqqtDW1oampib89a9/" + "xfz586msDZxCpBvJyDxeuFwufuBjSUkJvF6vqOg7WdAkXZZl+" + "bZbAFi9enXSN0SkCDTTvBIIUu2ZEK74n2WBl15S4Ke/+V+ML78SOMsk/" + "qXeNWi0bMOuDQtwxhlaKJXxHyNNC8XpqNOVutZ0eek+8sgjuPLKK+Hz+VBbW4tf/" + "/rX1NbOStKdjkSakGyJjGCz2dDbG3miaiKg8foudP4qKytDXl4e5s6dS+" + "UmzbbJEenG+++r8OP7D+NY9S3Auf8SbxyvxYyD9+" + "COi07HORvscDrNOHBg6oEotFDMz89HTk5O1O+" + "L47iMjE5pR7rxrEXzwb906dKUTdPIStIF4rspk9F0hWRbW1uLmTNn8l9uKqSAZNb" + "kOA5DQ0Po6upCcXExVq5cCa1Wi9HRUbAsS+VmyEZ5gQZilYyZzQrcet8w/h9zJ/" + "CFoCWZCtsAACAASURBVE4ydxF0H96OLedeiy/" + "d346aGjUMhjn85mAfiv7+" + "flE5m5CMyXfIMExGRrq0ZQ8pkW4qavBTiawl3XiQSKRLyNbpdKKurk5EtgSpIN1E" + "Il0y662zs1Pk/" + "BW8Ji3SPRUnR0Qi3clJ4L6dXjx1dBfY1oeCOsk0UH70A1xTdxvu+" + "HUeZswAPv88VBaI5EMh7MISunaRRB3xu03Wh4K28Tith4FUecFqtYY4nmUyspZ04" + "50eIZV0XS4XzGYzHA5HRLJNZF2piPeCHRsbg8lkQl5eHpYuXRo2mUCz4iBdpEvrx" + "k2Vpuv3A0/9twJ3v/4sXKvuAtYeF//" + "C5xfiLO5e7NpWhbq6E8cQjxYbqQvL7XZjYGCAH05KjGKEDR7x+" + "FDQjE5pQqojWzaZ3QBZTLrxQAo5BpPtggULYt4c6WxkCMbExARMJhO0Wi0WLlwYt" + "XCbJummq2SMJmhVL0z9F/jzn1X4yc/" + "3YWDhrcBZR8Q79regwbwDezeuwtq1DII7yeKxdgwHUs5mMBig0WhQXT1leBPsQ9H" + "V1YVAIICcnBwREYfzsqUZ6U5HQjWbpkYAWUy68XZ5RSIKIdnW1tZKIluCdCWVhLD" + "ZbOjo6IBSqcS8efNCDMPDIVsj3UySFwDgyBEVbtpuxv6i24Cz/" + "izeaK1E0YFt2H7lhbhsBwulMvzDOFVjf6T4UAi9bIVuXTSrZaYD2eQwBmQx6SYL4" + "jeQCNlOBxwOBzo6OsAwDBoaGuJ6sqeDdAOBADweT9p9btOB4WEF7n2oGH9lNgEtT" + "wFCQvXlQfPBJty05of4yctq5OZGP8/pnLUW7EMh/" + "F1inzgxMQGPx4OPPvooobFKwcdEK2KO54FLszEiHTjlSNftdsNsNsNms0mWEaYD5" + "OYk3sEej4dvL44XqZQXGIZBT08P+vv7+flYQhMZg8EQ980LZEbdr9sN7P0Fhx3/" + "eAy+1vsAne3ERk4BfPxdXDrzTtz3+AyUlUkjCVr6aTJ+" + "CUqlUjRWaWJiAitXrkx6rNJ0NUbYbDY5kZYOxHtTsiyLI0eO8GQr1YtXCmi7aymV" + "SrhcLlgsFtjtdtTX1yfV8ZaKSFdYC1xeXo7W1lZ+dJHQRKa3t5dvziDWisS/" + "IJZz03TJCxw3NSbn1qffwNiy24AvmsU7mM9Gy9gD2LN5HhYtim8mWSZNFQ5GuLFK" + "HMfxE4FtNlvIWCUhGdNujJC6ltVqxZw5c2LvmCHIWtKVChLZut1u1NbWUiVb4ISu" + "S2tNr9cLj8eDTz75BPX19VSOl3byy+Vy4f3330dxcTE/" + "1p5lWV4bDGciQ8qbgifIEsNxQsS5ubnU7SHjWW//" + "fiV+vP0IjlRtBM7+p3jjaBPKP3sAD91wDs4/" + "n01oJhmtTrJ0VRwoFIqwEx4CgUCIqbjP5wPLsjCbzUmPVYpnlPvk5CQWL14c92dM" + "F7KWdGN9kUIZoba2Fl6vF4WFhSkZ2RMIBJL22/T7/" + "ejq6sLo6Ci0Wi2WLVtGrZecFumSKcB+vx+" + "tra1xOfQLS5pmzZoFQJzosdvtIt8CrVYLn8+HycnJuN28EkFvrwKb7h3D6+" + "6fAac/" + "I97oLkLOe3fgrq9ch+u3AhpN4ucy2eoFAlqkm+jbhFqtRkFBgSi3MD4+" + "juHhYRgMBn6sEvk+4x2rFK+8ICfSphEejwdmsxlWq1UU2R4/" + "fjyl9o6Jkm4gEEB3dzeGhoZQXV2N1atX4/" + "Dhw1Qj02RJ1263o729HUqlEo2Njejt7aUyEiVSoodhGBw/" + "fhwDAwMiN69gj1saI9sdDuDBhwJ49OBeBFofBLSCCQGMGoqPbsQ1tbfhgpvacdZZ" + "SX0Uj0yKdGl3o+" + "Xk5KCkpCTiWKXR0dGwY5WCy9ni9dKVSXcaEEy2zc3Noos7nUbmUsAwDHp7e9HX1x" + "fi/JUpwymFSbzGxkYUFhbC4/GkXGslemFubi6ampoAhPe49Xg8kic/" + "BINlgedfUGLzb38Ha8tm4Iw+8Q7HLsAXfNvw0L3VaGjgsH8/" + "nWuH1rmjRZbp8F2IVc7mdDrR09Mj0v6Jt4TX6405VkmuXkgThGPYCdnW1NSEkC3B" + "dIzsCQfi/NXb24vy8nKsXr065Ik+3aTr8/" + "nQ2dmJyclJ1NfXi7ry0uW9EFyaFs7jFgg/+YHjOD5p5/" + "V6Q3w33n1XhR89cBAddTcDZ38o/uChxZjbvgOP/" + "OR0fPGLoc0NmYJsIt1wiFbO5nK50NvbC6/" + "Xi2PHjsUcq2Sz2WTSTQcYhsHnn38ek2wJUmlkLoUgOY7DwMAALBYLSktL+" + "QRUpDWnQ14QmpxHmigRrWlhOsq8YiXtyAOEZVmMjhrw6LN6/" + "Eu3Dfjii+KFHKUw7L8b9150Fa7ezkKlSk2nIU2TmkySKYD4kl+RQLT/" + "3NxczJgxg/eiCPdw7e/vx69+9SvYbDb85S9/" + "wdKlS1FdXZ3038MwDFpaWlBRUYHXX389qbXCIWtJV6VSoaSkJCbZEkyXvMBxHIaH" + "h2E2m0XOX9GgVCqpR7rR1mNZFr29vejt7Y1pcp4N1o7CpN3Y2BiKi2vw8C/" + "UePzIbrCrdgMaz4mdA1ooP9yAb8+9Abf8XI3Zs31QqTL/tsi0hBwAvu2Y1lpCAg/" + "3cF22bBnq6upw/fXX45NPPsGzzz6LZcuW4Y477kjqs/" + "fs2YPm5mbYbLbYOyeAzL+" + "6IkChUKC0tDQu0xtaRubB64Yjc47jMDo6CpPJhIKCAixfvlxy8ikV8kK4KJ9YQZr" + "NZpSVlYWVOoIRTV6gXa+cLBgG+MMfZ+Ln/" + "3oDjtbbgbWD4h2OXIx1ynuwdWshioqscDjGcejQiRE8wlK2TGtJznZ5gcZaKpUKC" + "xYsgEqlwtatW6l8bl9fH9544w1s2bIFu3fvprJmMLKWdONFOiNd4vyVm5sb0fkr3" + "jWTQbC8wHEcxsbG0NHRgcLCQrS0tEiOUDJNXoiEf/xDhR/t/" + "BBdjRuBcw6INw4sR0PnLjx66yqsWUPO8wnDII7j4PF4REk7l8uFAwcOiIhYatJOi" + "JM9kUartE9q9QLNhgwA2LBhAx588EHY7XZqawbjlCHdVGm6arUabrcbwFSRdkdHB" + "zQaTUznr2ig3cwgXM9qtaK9vR1arRZLlixBbm5uXGula1xPovJCZ6cCN98ziLdVW" + "4AzXxFvtJej4KP7cP/ll+LyByOb0igUCuj1euj1er70af/+/" + "ViyZAlPxMKknV6vF00JpvWKHQ2ZWDI2HW3ANFuAX3/" + "9dZSWlmLFihXYt28flTXDIatJN1WeuvFApVLB5XLh4MGDACDZ+SvWmjSlEKVSCa/" + "Xi48//" + "hgsy6KpqSnhCzWTolkhrFbgvh0+" + "PHl0F9jW3WIzcb8O6v034UfLbsKtL2qRl5fYA02tVof425KpD3a7HRMTE+" + "jt7YXP54NGoxERMalBzbRpD5kqL8RjYE6rRvedd97Ba6+" + "9hjfffBMejwc2mw1XXXUVnnvuOSrrE2Q16caDVJCuw+GAxWKBy+" + "XC0qVLqX35NOUFj8eD7u5u2Gw2LFmyJCHDnExGIAA8/YwKd/" + "7ut3Csuh1YOyTe4dPLcJ7mLux+uAKVlfR1WeHUByF8Ph/sdnuIpaLb7UZvb6/" + "kzqxIyEQPh+" + "kgcJpeutu3b8f27dsBAPv27cPOnTupEy6Q5aQbz0VHk3SFc9PKy8uptyHSKBkTth" + "XPmjULOTk5WUW4Ut5i9u1T4ce7PoClaSNw9kHxxv6VmGfZhZsuKcQFFxQiNze9iT" + "CtVovi4mJRDarf78eBAwegUqlERuMkaRevXwEN0qWpw07H2J9sMzAHspx04wENIh" + "M2YpCmAZfLhfHxcUpHOYVkSsaI1eLAwADmzJmD1atXw+FwoLu7m+" + "oxTic6OxW46e4B/" + "E29BfjSq+KNttkoOrAND1x1MS7dweLzzz8DUBp2nXRDqVRCo9Fg9uzZ/" + "M+ESTuHw4Hh4WG43W6Ri5fBYEgoaScFtCPddI/" + "9SVUL8JlnnokzzzyT+rpAlpNuuvRFn88Hs9mM8fHxkBbjTJkIzHEc+" + "vv7eavF1atX8zcp7brfdCBcpHtCt90ZOgTSr4P6w1uwvmUDbnlJE9NMfDoQThIIl" + "7QDpjTN4GYAlmX5TrtAICCpRTYWMnUopVRkm+8CkOWkm2r4/" + "X5YLBYcP34cNTU1aGpqCrmoUqEVxxOVcxyH48ePo7OzU2S1KMR0jBWiCYYBfv10F" + "N328BX4qv5u7NhbhoqKzP074+" + "kii5a0czgcYBgGR48e5ZN2wfaYUiPOTBxKGc95mpycREVFRYqPiC5OOdKVkoAIBA" + "Lo6enB4OAg5syZE7VDK1Vj2KWsOT4+jo6ODuTl5UVtvsjmYZJ///" + "tUva2l6eawum2zZTcevW0ZVq6Mz0x8OpBsF5kwadfT04OlS5cCgGgOWnd3t2gOmr" + "CCIlzSjnakSwPx2jouWLAgxUdEF1lNuvG+ypCoNFLGmDh/" + "9ff3o6KiQvSKTusYpCAWkQutFhcsWID8/" + "Pyo62Uj6XZ2KrHhrlx8VPQd4EtB9ba22Sg6eB8euPISfGtndDNxGln+" + "VI1xp4VwEx8YhoHL5eJ9iiMl7WjpsDT/tnhJV06kZTBIg0Qw6bIsi/" + "7+fvT09GDWrFlobW1NuWl2NEQiXbfbjY6ODpHVohSkmnQZhoHFYsHg4KBoJI/" + "BYIjbZ3hKt/" + "VP6barw9TbfngLNqzcgI0vpk+" + "3pVmela51VCqVaA4aED5pNzExAafTCaPRKCLjeKPf6ar3lTXdNCPRSJeA4zgMDg7" + "CYrGgpKQkqvNXOhGs6UazWpSCVJGu0Dlt9uzZWL58ObxeL98o0NPTA7/" + "fj5ycHP4112AwhDUfZ5ipets7Xn0RjtYtYettv5JzL3ZOg25Li3RpmdQkejzhkna" + "HDx9GXV0d7+" + "I1ODgIh8MhStqR7y1a0m66hlJmm5cukOWkGy8I6QqTTzNmzEBLS0vS43Zovl6RzL" + "0Uq0UpSEUibXR0FB0dHSgqKsKqVaugVqvh8/" + "lCGgU4juOJmMzTIubjhIgPHy7GLY98Bsu8m0N9EvpXYl73Lvx80/" + "Ks0G2jIVMbGrRaLfLy8kQRIxlI6XA4YLVa0d/fD6/" + "XKxrTTiY9kxyETLrScEqRrkqlwtjYGNrb22EwGOJy/" + "ooGEknSuuhYloXP58MHH3yAysrKqIm8dMNut8PlcqGvr0/" + "k3RDNBEen00Gn04lKovx+" + "Pz77zI0f3TGBd3NvBM56SfyLttkwfHg3dv3nZTF121QjE+" + "UFmiN2wq0lHEhJPG0BcdJOOO2BzLQbHx+" + "HwWBI6o0xHtJ1OBwxcxqZhqwm3Xgu4PHxcQwNDUGr1WLx4sVxG71EA4mgkyVdodU" + "iy7LTri0L4fF4YDKZ4HK5oNfrsXDhwpBjk/" + "rgsdmAbTs5PP7ZY2Bbd4n9bf06qD7ciKvmfhtfXW9CUdH7OHIkVyRPJPtWEi8yTV" + "5IB+" + "lGQrikHcuyGBwcxPHjxzE2NgaLxcJ76wpL2aR22kmNmsmDPlMCEqnIjDs6CcRqF7" + "Varejo6IBarcbs2bOh0WioEi5Ap2yMvK4XFBSgpaUFBw4cyAjCDQQC6OrqwsjICO" + "rq6lBaWor9+/eLzjnHcWBZFhzHiZzciMELuSkYBvjNsyrc/" + "vLLsLduBk4P8rf97Fv4svZe7NwzC2VlPnz22RCWLFnCG8qMj4/" + "HpROTYzvZqhdo19Yme0xKpRI5OTkwGo2oq6sDcEJWIq5s4TrtiD1m8HUeCATiukc" + "z1YQpEqb/" + "rk4R7HY7Ojo6wHEcGhsbYTQaMTQ0xL8O0UQyDRLJWi2mCsKKjqqqKqxevZq/" + "0cmDjpAtSdJpNBoRAZP/" + "zTAM3nlHjQ27P4a5YSNwzkfiDxtYgSbzbvz8thVYtWpKt/" + "X7T0SG5DVXOLqd6MR2uz2sTkz0Rlo4WeUFWgiOToWy0syZM/" + "mfBwIBOJ1O3qfY6XSCYRhR0s7j8Uhy6qN1PtONrCfd4EjX6XTCZDLB5/" + "Ohvr5eJLJn0kRgp9OJjo4OBAKBsFaLZEJDum8ujuMwMjICk8mEmTNnhpU4lEolAo" + "EAn6BTKBSii19485nNHG7aOoy/" + "cFuAM4PmktlnoeCj+" + "7D9skvwre0MVKoAgBPEHgnRdGKSsCNNAm63G52dnSgoKOAJORHj8ZNVXqAFqcY5a" + "rUaBQUFotpa4aRnq9WKsbExTExMiN5mSFQs/" + "LvtdnvSNqrTgawnXQJyczmdTtTX14vcnQhSaWQulcw9Hg86Oztht9vR0NAQ9jiBE" + "2Vj6by5SNSt0+" + "nCJhnJw02tVuPo0aMoKCiA0WgMq7Pa7cC2HT48emgX2NadQXPJcqD64Gb8aNlNuO" + "UFNXJzmX9HxOAfXgzD8JGy1HOg0WhC9MZDhw6htLQUPp+" + "PL4cSTgsmN3U0nZgm6Z7MkW6icljwpGe3242amhpotVr+Idrb28u/" + "pebl5WFgYAADAwNUSLe3txdXX301hoeHoVAocP3112P9+vVJrxsJWU+" + "6Xq8XHR0dsFqtqKurQ0lJScQLezojXaHVYm1tLebPnx/1BiRrJqvrvvmWH3/" + "7mxLfvCDyzUqaLrxeb0SDc6GU0NzczJcTjY6OoqurC36/" + "H3q9Hnl5Bvz5rTJs+" + "9OfYVu1GTi9X7zQZ5fifM19eOiRClRVibVSIks4HA6YTCYYjUYwDMOfWxJRC3XiW" + "FAoFDAajaJpDsJpwWNjY+ju7obf7w+" + "Zi0Z04pO1eoFmGSHDMNQmZpDrPtxDlGVZOJ1O9PT04O2338ahQ4ewdOlSVFRUYMe" + "OHZg/" + "f37cn6dWq7Fr1y4sX74cdrsdK1aswLnnnpvQWpI+" + "LyWrphHDw8MoKiqSNBU4laQbad1wVotSbphkncH8fmDLVjf2Dn0LcM+" + "A4a93YNUq8c3q9/t597RITRfBui0hPNLtVF5ezu+3b18A3/" + "7pIZgbvwec84H4gAaWo75zJx67bTVOO41DuHpbhmFgNpths9nQ0NCAwsJCnoiF/" + "wWmtEFyrMKJDMHnNhyxCKcFC3Xi4LloRCfW6XT8tnjMZIKRafJCphqYRysZI9fee" + "eedh9zcXMyePRt79+5Ff39/wp1p5eXl/HVsMBjQ3NyM/" + "v5+mXQjobq6WjI5pYp01Wp1yDFEs1qUgmQqInp6gMuvncSBpguA+" + "g8BAA98NBMXHtuGhQunbraenh709/" + "ejuroajY2Nksg20kOtp0eBm+8expve24GzXhBvtM+CYf89uOXcdTjr6n54PO9i/" + "341L0sYDAbo9XoMDAygv78fc+fOFR0PIQXhuSPHRCQIIRmTnymVyrgIJZLFos/" + "nw9jYGOx2O68TKxQKUYOAVJ040+QFmrXltNuApfx9pAVYoVCgsrKSymdbLBZ8/" + "PHHaG1tpbJeOGQ96cZzEdMwMg8H4Xh3KVaLUpDosf7pT0pce0s3bF87Hyg28T9nn" + "DPw7rtKzJw5VQdcWloaNkkWXH0QjWwdDuD+XX7sPbAbzOodgMZ9YmMgB6oPN+" + "CHS2/" + "F5ld0mKpfn8pik4SXzWZDW1sbrFYrNBoNiouLwTAMbDZbVCIjN6TwxiTnijwoOI6" + "DzWaDy+UCwzDw+/" + "0JyRNarZb3JSBuVgzDiCLicDpxuAaBTJMXaJqO057KK+U80Ta7cTgcuOiii/" + "Dwww9TG3YZDllPupkAEpVOTEygvb09ptWiFMQrL3i9wJYtKjz6u0+AK74C5B+" + "f2sApUPDOI7jnm6dj0aL9GBszYsWKFSH6G3kNJ5FiNGJiWeD555XY9PwrsLZsBs7" + "oE+/w+UU4T7kdD+2pxJw5oa/" + "3Go0GWq0W4+" + "Pj0Ol0WLhwITQaDV8C1tfXxxOZkMSidToJiZiYzjudTixatAi5ubkh8kQ8OnFwhK" + "pSqUIy8EQnttvtogYBoU7s8/mo1F6f7EMppWJyclL0VpIM/H4/" + "LrroIlx55ZW48MILqawZCVlPuplQp0cy406nU5LVohTEIy+" + "YzcBVV2lw0PYW8J1LAO2/" + "a5H9Oiw2PYMHN9aB4wZRV7cApaWho2uEUoKQhMLhvfeUuHHbQbTV3Ayc/" + "b544+BS1Jt24xeb1mDt2vA+CcS8x+FwoLGxUURc4Uy7nU4nbDYb//" + "YQCAR4n1iDwQCj0chXHrAsi76+PvT394d4VQTLE8K/" + "OREiDoZQJxaeV6FOPDIygkAggJGRkYRNx8nx0yA42poujQdKPBKMzWZDfX09lc+" + "89tpr0dzcjJtuuinp9WIh60k3EdDS1kjWn/R/" + "L1u2jMLRTUEq6f7ud0rccIMatsYngCt+CCj//TvuIlzK/Ao3/FcRmprK0d/" + "Phi0Bk6rb9vYqcNNdw3jTewfwhaAJqY5SGPffh+" + "3fugJX7wSUylBZhGVZ9Pb2YmBgQLJ5jzBhJzxml8sFm82G8fFxdHd3w+" + "fzQalUwuPxoKioCIsWLUJeXl7E9SPpxOESdgzDwO12g+" + "M4MAwTMWEXDsE6McnIFxcX80RMJgUTnVhYlxqJWGkl5DIx0o1H8qBldvPOO+/" + "g2WefxaJFi3hj+G3btuHLX/5y0muHwylHurGMzKUg2GpRr9fDZDLF/" + "sU4EEvT9XiATZvUeOJJAOfeApy268Tv2qvx06qd+O4FS1BeXg6FQoHBwUF+" + "vXjI1uEAHnzIjz37H0Jg9YNBuq0Wqv3r8YNFm7DlJT3ClUySZguz2YyysjKsWrUq" + "qZtTaMRSXl4Ol8uFtrY2AEBFRQVfQujxeKDVakURcW5ublxE7Pf70d3djdHRUTQ0" + "NMRM2MUiC7J/" + "JNPxSDqxsMtOo9FkZPUCTckjHocxGl66p59+" + "elrHWWU96cYbsUYyMpeCQCCA7u5uDA0NiaI1r9dLvSoimqZrMilw1VVqfHLEDVx6" + "FdD8B35bvm0JXvr6ozizZbmIQAiJCzP+" + "0ciWZYEXXlBi03OvYrLlp2F02wtxrmIbHt49B3Pnhr9gyYQLnU6HZcuWUavjBE54" + "QkxMTKChoSFsxOPz+WCz2fhXe5fLJTL3NhqNIV1OwIkHRWdnJ2bPno1Vq1bx+" + "wgTdsI2ZyC2PBHtDSsenZhhGBgMBigUChgMBuTk5CT05kYz0qX19niy2zoCJwHpx" + "otEysaIVtjT0xPWajFVE4HDdc+98ooSP/iBGnYMAtdcAMw+4T/bEPgP/" + "H3z05iRH3ohKhQK2O125ObmQq1WR41K3n9/Src9NjeMbju0BLXtu/" + "CLW9fijDPC67ZerxednZ1wu91oaGigmgkmxvPd3d2oqqpCfX19xJtdq9Vi5syZot" + "5/UjlBSsAcDgf/am80GqHRaNDf38935QU/" + "KCJFtdHkCRLhxnuNRNKJ29ra+G6tgYEBkc8teaBEi+qFx5xpnW0n+" + "6ge4CQg3WSnR0QDsVrs6upCSUkJVq9eHfaCSBXpkjI0YEpOuOUWNZ56SgWUHQau+" + "CpQ0Mtvv6Tih3j6ygegUoojF0IApaWl/Pw3ADzJkJtUpVJN1dtu/" + "bdue0aobmvYfy+2X3olrn4QUKlCpQ/" + "SCDI8PIza2tqo3YGJYHJyEh0dHTAajWhpaUnobSVclxPDMLBarejq6oLD4eDfhoj" + "vMjlP0T4vlk48OjqKkZERFBcXR3ViiwWy74wZM0Sv1j6fj2+" + "ZHR0dhdvtFpG2wWBAXl6e6PgydSil1GOy2+0y6U4XYtk7CiGVdIVWi+FKrII/" + "nzaEkZHJpMCVV6px6JASaP4f4JtXA9qpia8KToUHvvgwfnza90S/" + "H6zbGo1GLFy4EIBYPxwYGMDIiBu/" + "+W0xXhl4GUwY3Va5fz2+v2ATbn9Rj3BBK6lN7urqwqxZs0Sv4zRAvHx9Ph/" + "mz58vmkyRLMixWywWVFVVYfny5bzZEHHDIlIDsRwUyhPRrgulUgm324329nYoFAq" + "sWLECWq02ohMbOR6VShU1YRcuQtVqtSguLhZ5eQgdvfr7++" + "F0OkU6scfjgV6vp3IOad0D8Wi6NJs70omTgnTjQSzTm0yxWiTR8yuvKPH976vhcH" + "LAmT8Dzryb3ycHBrxy6QtYV3cu/" + "zMpSTKiHxoMBXj7bwrc9vyrsLZcAdSF6rar7Zux9aYCzJ/" + "vRm6uBsGXjM1mE9Um0zQYF0bOdXV1cc+GiwW73Y62tjbk5+" + "eHRM6RKifcbjdsNhsmJyfR29sLr9fLe8kSItbpdOA4Dt3d3RgeHg5rbJRMh51UWS" + "Cco5dQJx4ZGcH4+DgGBweh0+lECbt4dGLaTRZSSDediS/" + "aOClIl0akG8tqMd3w+1W4777ZeOUVDaC1A5f+" + "J9D8e357ZW4tXrv8VcwvmeoPj6eTDADefVeJG7d/" + "hPbajcDZQT4JQ0tQ274bj25cg+XLpxJRpE6WeJ/" + "m5ubCZrOBZVk0NTVRtdgTVjykInIm1SdOpzOuYxe6YYXz9rXZbHzlgc/" + "ng8FgQFVVFXJycqJGg9F04uCEHRmtzrIs7z+RaD0x8a0tLi6Gx+" + "PhtW6hThzsTxzub6BVowtMka6UBze53zOhTj9enBSkGw+" + "ELbuAdKtFKaD1mtXZCVx2WTE+/VQNFJmBy74OlH3Gb/9C5Vl48aLnMEM/g/" + "9cKZ1kAGCxKHDz3YP4c+B24Au/" + "FW8M0W05AFPR3uzZswFM3RQmkwmDg4MwGAxgGAafffYZcnNzYTQaI1o9SoXD4UBb" + "W1tKKh44jkNfXx/" + "6+vowd+7chAd9CiH09jUYDLwOXFNTwyftzGYzXC6XKHomrcXRvqtg/" + "wjy4KuoqOAllnARsVQiJhGqsJ5Y2DwTrBOT6o9gnZi22Y0UycPhcGSlly5wipJuI" + "BCI22oxFmhZMf7hD0pcf70aNpsCqP0/4OJvAbnj/" + "PYftvwI95+1HWqlOq56W7sd2LbTi58f2gVmVdBcsn/X235/" + "4SZsiaLbDg0NwWKxoKKiAmvXruVvatKwICxt8vl80Ov1otfuaATq9/" + "v5h19wpxoNTE5Oor29HUVFRVi5ciXVUUjEQGhoaIh3ayMI1lhJNNnb2wuHwwEAIa" + "3OwcfmdrvR1tYGtVrN68LBnx+" + "pcoIgXMIuliYaSScmgymJTkwmbPf09PCR98zmQgAAIABJREFUcaJ18FLvIavVOu1" + "vo4nipCDdeE1vxsfHMTo6GpfVYiwQMk/" + "0Zvb5gM2bVXj0UTWgYIEv3At86WeAYuo1SqPQ4ufnP4qrF1/" + "NR7ZSyJZhgGd+o8Dml16CfeUWYO2AeIcjF+M/" + "VPdh9+6qiPW2pGrAYDCEvemFDQvC124y22xychI9PT3w+" + "XzQ6XQiItZoNBgYGOCjz6amJqqvjKRZwu/" + "3Y8GCBVSTcMDUwNP29naUlpZi5cqVUUlMrVajqKhIVFvKsiwcDgdsNhuGhobQ0dE" + "BlmX5ZBfpvmtqahJVXAghpcMuXMKOyGzxlI6p1eqQdu3x8XEMDAxAo9FgZGQEXV1" + "dvO8EeZDk5+dL0oml3kNWqzUrKxeAk4R0pYBYLXZ1dUGhUGDNmjVUM5/" + "JWjFeeaUa+/" + "ergNxR4MKrgPq3+O1lueV45eKXsLJ8pWSyBYB9+5T40Y4PYG68GTj7gHjjwHLUd+" + "7CLzatjuiT4PF4eJ27ubk5Lk8Jof5JRngTLwKif5ISrZycHJSWlkKlUsHj8UQcMh" + "kPhNFnKpJw5NwwDIMlS5YkXAWgVCp5WYaAZVkMDQ2hs7MTOp0OarUabW1t0Ov1oh" + "K2aCQWyxKTRNoajSbEKF5qhx0Bx3HQ6/UiX9rgETz9/" + "f2SdGKppDs5OUmlG206cFKQbrSbSTjzq7i4GMuWLcOxY8eol5qE89SVgv/" + "9X+Caa9SYnFQBle8Dl1wqqr89o+oMPHPBMyjLLRPpttH+ZpNJgQ139eFv6s3Ama+" + "KN9rLYfzoXjxw+" + "eW4ahcX1ichEAjAYrFgbGyMJywaINohaXDQ6XRYtGgRlEolT8T9/" + "f18C69QI5Y6vhsAxsbG0NHRISn6jBfEQ2JwcJCfVEITPp8PHR0d8Pl8WLFiBV89I" + "3xzsFqtosoJoU4c7TwplUrYbDYcO3YMM2bM4FuyhQk78hYFSDcACqfpCh+" + "64XRiu90eVif2eDySvmdaLcDTgZOCdCMhnNUiwzBpnx4RDoEAh82bvdi7twAAB7T" + "uAdbdAqhOlLNdXnU5nrzsSSg4Be8AFi36mJgAtj7gwn+3PQh21R5A7Tux0a+" + "D6sOb8OPlG3HbyznIzw+" + "NbIXdXpWVlVi5ciXVqgEhmTc0NIhel4OHTHq9Xr6Fd3BwEG63O6aXgrAmNpnoMxL" + "I9TRz5kzqZE7exHp7e1FbW4vS0lLR3xbuzQEQn6fh4WG4XC6o1WKT+" + "Ly8PLAsy2vm8+fPF721hDN8l9JhR4g4noaGWDqxx+PBp59+" + "CmBqFprQBEioE8ukm2Eg49cVCkWI1WKqjMzjkRdMJhuuvlqDgwcLgfwh4OvfBRr+" + "l99eoC3Er77238gfyMfI8AgMBkPUV26/H3jiKWDrn56Bq/" + "VnwGkj4h0+" + "vRxfybkXux4pD5lLRjAxMcE3gyTa7RUJwiScVDLPyclBSUlJyBQHEhEfP36cJxhS" + "6O9yudDU1JRUBUo4CHVh4s9LE3a7HceOHYPRaIw7yRfuPAlN4i0WC6xWK7xeL4xG" + "I2bNmsXLCdGIUqoTG8dxmJychNFohN/" + "vj7vDDhDrxAMDA1i5ciXfnOJwOEQ6sV6vxzvvvIPOzk7U1NRQqRj685//" + "jPXr14NhGFx33XW47bbbklovFhQx6luzogKZZVn4/" + "X7eatHj8UQ0QQGAd999F6eddhrVYzCbzbyuFQkulwuvvjqIzZvrMDqaAzS+" + "PkW4eSdIclnZcjx3wbOYY5yDiYkJTExMwG63w+Px8EX45J9Wm4O33lJh/" + "d596F+4ESg9Iv7AvlY09+" + "zEL37aglWrwj9oyDljWRYNDQ3UE02k2cRgMKCuro46mQ8ODsJsNvMtrkJTGxLthT" + "O1kQKhP2+soaeJIBAIwGw2w2q1Yt68edRLoLxeL+/" + "AVl9fL3poBZvEk3MVD+Hb7XYcPXoUhYWFqK6u5uvlhZwipcNOiA8//" + "BCrVq0Ku41ILG+88QZeeuklHD9+HCzLYu7cufjDH/6QsOlPY2Mj/vKXv/ABwW9/" + "+1sa89EiHsxJEen6/X4cO3YMExMTEQcsphrRIl2/3w+TqRNPPZWHJ55oBqN0AV/" + "5CbDyMdF+P275Me5ceydy1FMJEuFrGCnCt9lssNls2LdvAg/82o1jlfcBZ70p/" + "kBrFWYc3I5d37kIlzzMQqEIr9t2dXVhfHw85FWfBrxeL0wmE7xeb9xJOClwOp1oa" + "2tDTk4OVq5cKSpHCwQC/Cu3xWKB0+nka2QJucSqkZ2cnERbWxs/" + "com2lEBai6uqqtDQ0ED1eiX1yP39/" + "aISttzc3Igm8cPDwzCZTHzzSziTeAKGYXiHt+bm5pCHRbjRSTSM4onEcskll+" + "Djjz/GzTffjHXr1mF8fDzh8/fhhx+ivr4etbW1AIDLLrsMf/" + "zjH1M2lBI4SUgXmPIWiKfciGa/" + "ODD1ihTcXkwy6B0dQ3jssRV48818oOZt4ILrgKIufr8yfTl++" + "dUnceacMyMmyUgR/sSEDtsezsFLx+8GznzqhGk5APjyoH5/" + "E75ddym+v8OP0tJh+Hzi+lihdlhVVYVVq1ZRPQ/" + "CqoFUmN6Q6HBychKNjY1hdT21Wh1iakN0Q5vNhp6eHt5dLJiIGYbhx9EvXLiQeuT" + "vdrtx7NgxaDSasOV3ycLhcPDRZyzdOR6TeFLqp1AoMDQ0hNmzZ6OlpSXsd5uIExs" + "B8b2IRcQ2m43/7pMJGPr7+1FVVcX//" + "8rKSnzwwQdRfiN5nBSkq9Vq+Y4pKaBhZB4MUu4ETF24w8PD/" + "241nYNbbjkDbRYH8NUbgJYnRL/" + "3tfoL8Mi6vZiZGz06d7mA3XsD2Pmvx+Bv3QZU205s5BTAJ9/" + "BpTO3YvtTxSgoOOEPQOpj9Xo9NBoNJicnUVxcTL1BIJxZOc0knFAXTiQ6DFdfyjC" + "MaC7b+Pg4fD4fCgoKUFpaCr/fT63bimVZ3ouhsbGR+psFGV8/" + "OTmZlFQRbBIPTJ17p9OJ9vZ2uFwu6HQ6DA4OYmxsTPTQimUnGU0nJiV4BQUFISVs" + "4SLibPXSBU4S0k2nkXkkECInGW6DwYCentW48Yc6uOb8AbjxR4DxRGNCnrIQu9c9" + "gMvnX84nH8KBDIG87bnfY3LFZuCLFvEO5rPQMrYDj9zejMWLiZY21dJJstxOpxPH" + "jh2D1+tFUVERnE4n9u/fz3eMndCIE2/dbW9vR05ODvXWXSC6MU0yUKlU/" + "AjvwcFBzJo1C9XV1Xxp1sDAABwOB1iWDbHCjOeBRa6J0tJS6g8j4ESJXLToMxkQK" + "aS6upqfRAKITeJJYlOKSbwQCoWCd6irq6tDaWmppIh4eHiYSvVCRUUFentPlGj29" + "fWhoqIi6XWj4aQg3XiRiJF5LPj9fgwNDf3bRGUBtm8vwJ6n+4ELfgQ0/" + "Um075fKv4onL3gI5YbyqDfI3/" + "+uxI93fART7S3AOUFm4qNNqDjyAPbcuA7nncdBoQjNeZJW58nJyZDEotAxa2Jign" + "+NjMdDwe/" + "3w2w2w2azpaR1d0oLN8VtTCMVPp8PJpMJbrdb1K2m1WpDnLmI9insGsvLyxMRcfD" + "DQFhzm4qqB5/" + "Ph7a2NrAsi6VLlyY1fTocSCJOaEspRDwm8cI2Z+" + "Lf7PV6cfToUWg0GtHDNFpjh8fjwe7du9Hb20vl4b5y5Up0dHSgq6sLFRUVePHFF/" + "HCCy8kvW40nBTVC8DUBSjVaezo0aMoKyuj8opHbtyJiQlotVrMmbMSV35bgX/" + "5HwG+dCfvewsAukAZ9pz/AK5YfFHUp/+xYwr85J5e/" + "ENzO7DgFfFGVzHy9t+FrV+7Btd9V4FwQR/Lsujv70dfX19IdBINQiIm//" + "x+v4iIjUYj1Go1bxwTz/pSIdSd586di1mzZqVs/" + "ZqaGpSVlcW9vtBvl0R7wiSUz+fjm0uCa25pHP/AwAB6enr49WlCuH59fX3SDSBC/" + "2ZSOUFGXJWVlWHWrFkxTeIB4JNPPsH69etxwQUX4LbbbqP2xvPmm29iw4YNYBgG3" + "/3ud7FlyxYay0b8wk9J0iXaUTIXK8Mw6O7uxuDgIGpra2E0GvH73w9g854Ajq+" + "5Fph9ULT/Wu338OL3foYZuZF1qOFh4M7tdjzfez+4lT8XNUpMmYn/" + "GNfPvxV3bMxDpDersbExvvtu7ty5Seu2wsQKSa64XC5evigsLOQ9FGhAaExTU1ND" + "VXcGTpSwFRQUoLa2NiW6dkdHB1QqFd8wQx5akaoB4gGRivLz81FXV0f9/" + "LhcLhw9ehR5eXmor6+nvr7b7cbRo0eh0+kwe/" + "Zs3ijJZrOFmMST+nSv14sHH3wQ+/btwxNPPIHFixdTPaYU4eQnXb/" + "fL7npwWKxQKPRJKTdkCjAYrFg9uzZqK6uhlKpxJNPBbDhf3aDPeNuQHVCulCPL8T" + "DZ+/FNee0RlzT5QIeeoTBzr8/Cd/" + "qewH9pHiHz76F8zX3YOftlRFNaUiiQ61W8xOKaYLU83Ich/r6egAQRcQkyhNKE/" + "EQMWlA8Pl8aGpqol41QKQK0kBBu4QtUs2t0IGNRMTxOrABU5F1V1cXxsbG0NTURF" + "3KIVUnw8PDaGpqot7tJSxji5RIFL5p2e12fPDBB9i+" + "fTt8Ph8aGxtxww034MwzzxR15GUwZNIVoq+" + "vDwzDoLq6Oq7PGBsbQ3t7OwoLC1FXVwetVgufD7hh0wBe8FwNVP/" + "rxM6BHMztvhNv/ewHqCwPH9kwDPCbZxW4/be/" + "x+" + "SK20VlZACAntOwoP9BPHrbiojNDUJLxIaGBuo3C6nJHBsbQ319fcRuL5LhJuQSjo" + "iJNCGE0MsgFSVmwlflVEkVwprbioqKmOsLfRQIwXi93hAHNmJoQ5zMysvLUVVVRT" + "0RR5ociouLUVNTQ319Ej3n5+ejvr5eUjWI1+vF/fffj3/+85/" + "YunUrPB4PDh48iLVr1+Kcc86henwpwslPumQ0tRSQhFddXZ2k/" + "YmxtkqlQmNjI58QGR4GzvvhX3G0+" + "dsiz1v0rsHVxifwyF11CPd2xnHAW28pcdPe99DduAmo2C/" + "eYbwOpYe3Yfd1F+" + "Ab32AR7h4WdkulikyErbsVFRVx34yEiAkJE92TJKBIR1lZWRmqq6upmxDZbDa0tb" + "XBaDSm5FVcWHPb2NiYlGwQ7MBms9ng8XgQCASgVCpRXV2NmTNnUnFgIxCWmaWigY" + "V47A4ODmLevHmSA4IDBw5gw4YNuOSSS7Bx40bq31uaIJOuEKOjo/" + "xrWjSQgYgkey68aA4eBM67bydsLXfwnrdgVVD9807cetrXcd46qyjCI+" + "5PBw4o8ZPt7ThQtBlofEP8ga5i5O6/" + "A3ecfy1u+J4S4e5hjuMwOjqKzs5OlJSUYO7cuSkhq/b2duTn56O2tpZqAT/" + "LshgfH4fJZOJrpZNtRw0Gif4dDkdKqh5SXXMrnEI9Z84cftw6IeJkHNgISPRcUVG" + "ByspK6mVmpEmDaPNSrlGPx4Pt27fjvffewxNPPIEFCxZQPaY0QyZdIYg1HpmOG24" + "ti8WC48ePh80+P/+SF9e/8V9g5r944pdss1H2zxfxh70tWLyYg9/" + "vF2meHR0cHn8hD+/" + "p9gBLngGEloqBHKj2r8f18zfi9ihJMlIPq9VqUV9fn5ISIZPJBI/" + "Hg8bGRupkxTAMLBYLRkdHRVKFsCTr/" + "7d35mFRndm6fwuqFLCYRYOAIpeiChyhoNXTqH3ta7SNJ320jSa2ShziSWIUD9Ebh" + "yROuWo0cUi0jYZonjYxmpPOYzwa6dBJbOPEKEaizBBkkrkoqIKq2rXvH/" + "S32VWA1C72Zty/5+EPUff+qKLWXt/" + "61npfkhGze2NJcOnqg8tWSROiqwKw7Lkl9Xw+" + "0el0yMrKgrOzM4KDgzusi7OVxbRaLXQ6HWQymUVporNBBaPRyEzcqVQq3mv/" + "5IFUVVUFlUpls7tDSkoK4uLisGTJEsTFxfXX7JbNwA+" + "6XCQbiQnl5MmTLb5Piv3FxcXw9/dvVz8zm4Et71Tjg8o/" + "Af6sUcGimZhWcg4XTnvAuuRZUQHsercRZ4veAx31oaVNDi0B7i3H7x02YffrnggL" + "k3eYVRIjxcbGRkH6YYUe3WVPq9lal+" + "QaiNkDFHwL6wCWPbdCBqvKykq7DrLYYjYNDQ3tJB7d3NzQ2NiIwsJCu9vkuoLUho" + "cPH47AwECbHkh6vR579+5FSkoKTp48idDQUF7X1IuIQZdNS0sL7t+/j8jISABtW/" + "a8vDx4eXkhKCio3YdWrweWvJqP70Y8A3gWtf1Fysv4zzHv48A+" + "WNRvNRrg4BEjjiWfgHHKu+" + "07EvLmIEqzFwfigjBmTB3zYWEPKLi6ujIyhoGBgYJ8UMgh0MiRIzF69GjeSxVsYZ" + "rg4OBuNbSzrW1IvycRVTGbzQgKCsLIkSN7VOeWD4i4Dt/" + "ZMxlUIHY65GDT3d292wpsbMxmMwoKChgBHFtrw0lJSdi0aROWLl2K2NjYgZDdshn" + "4QZfIO9oCRVFISUnB1KlTmcOWoUOHQqFQdJjBVFTQmLs2BVmT/" + "6PtwMzsAIfEQzi2/GXExLSVNXQ64C8f0Xg38a/" + "QRe0BXMstL1amRlD+" + "fhzdGI1Zs9p3JJDDp9LSUpSXl8PR0RFSqZTJ8Nzd3W3aancFaTGTyWSClCqIilld" + "XV2nwjTdgV33HDFiBIYOHcpstwFYZMRyudyu14utcyvEQRxpY9Pr9VCpVLxPrJEH" + "RklJCeN0zVZgI06/XF2K2Wg0GmRlZTEPbVuz23feeQfp6ek4depUl2cr/" + "RQx6Fpz48YNuLm5oaWlBUqlssPaE03TyMqiMWd9IipnLmkrDRhc4PrdF/" + "h639P4t39rDZwGA3DmUwl2ff3f0ITvArwKLC9Wo8CI+3uwd/mzWLKYRme/" + "m1qtFjk5OXBycmIyw4622uTwib3VtuUXnozuajQaQYMhEaaxpYWKK6SbxMXFpcO6" + "p9lstmjHIoGYHVie9HoJrXNLBJEKCwsF6TwBLIcoumrTYiuwNTQ0oKmpCRKJxEJv" + "wvrBRVEU8vPz0dDQgNDQUJv7qm/" + "fvo3Nmzdj+fLl2LBhA+87qz7EwA+6NE3DYDB0+e/" + "IB6qoqAjh4eEdau8SIeZbt4Bn3/oSutmr2yQUm3wQeOt/" + "cOXURAQG0jAagc8+l2DnhcuoHr8TGPHA8oYNoyBPfwtvz1+" + "Ol1ZLOuxIAFpLHvn5+" + "dDr9VAoFF0eQLADC9lqs6UKrcVG2NtkoQ6ZhK6rsoMh19o2GUVlv14A2r1eNTU1n" + "HpuuULazIYMGQKFQsG7tCO7NqxSqeyu/" + "3f2esnlckilUlRXV8Pf3x+jR4+" + "26TXS6XTYvXs3fv75Z5w6dQohISF2rasfIQZd0oRfUlKC0aNHo7i4GL/" + "97W87vA5FUUhIcMALhz+GcXZs21/WBmFq3rf4Oj4Aw4YB5845YOf5b/" + "E4dDfw1D3LC+m8MDT1/" + "yIu+mVsXCdDZ2UuiqKYSaDuHmIRqUKNRsNkLI6OjkzLkZeXFxQKBe/" + "BUGhhGnZmyGcwZEs71tbWMmLYw4cPZ8abuWy1nwT7sFKINjOgdaufnZ0NHx8fQTo" + "rDAYDsrKy0NjYCFdXV+j1+" + "i4V2GiaZrLblStXYt26dQM5u2UzeIMuTdOorKxEfn4+RowYwegR3Lp1C9OmTWM+" + "vERCzmw24+JFR8R8fATmWdvaLlQxEYtaLuPEAW9c+FKCPf99BY+V/w/" + "wzbC8YYsrHFNj8Z/" + "jY7Hlv1zadTNYr6uwsBBPPfWUzfUwLuj1emRnZ8NgMMDDwwN6vR46nc6iz9PNzc3" + "uhnuhhWmAtm0yaaESMjNUKBRwd3dvt4Ngu07YIldoDQmGQk182bvV5wKZxhw9ejR" + "GjRrFvM+ddZlkZmaiuLiY6Wc+ffo0Mz4+" + "SBj4QRdo3aKzIeIppPbHPixKTk5GeHg4pFIpE2wB4JtvpFj+8Xug//" + "dbbRd6NA0vu11EoK8cB658jdqwd4GRmZY3N7jAIXUdlv+v/" + "8Jbr7vjCVZpzPDBsGHDmHFiPiH9sFVVVRZ2LcxS/" + "6WDSjLi5uZmZgSVfHXVZSC0MA2ZlqqrqxNEawCwveeWZMTWgZjdjtVRIDaZTMwOQ" + "KVSCRYMc3NzmalBvh967L7e0NBQmw5cKYrC3/" + "72N8THxzMyqk1NTTh9+" + "jTCw8N5XZ81hw8fRnx8PCQSCSZMmIAzZ87wfkhsI4Mj6BKlMZ1Oh5ycHMZ0rqPtb" + "np6OkJCQpjgIpFIcP26I+bvPQbz/" + "9nc9g8LZsHj+" + "89hUHwJ3aQj7fURDC6QpL2M5wPisGOTV6duu0DbhJvBYIBCoRB0G04mjWzJqqz91" + "zQaTTttXaIkJrQwDdkBFBQUwN/" + "fX5BpKYPBgJycHBiNRrt7bk0mk0UgJqUcEoSNRiNKS0sxZswYi8yQz5+" + "BOBSrVCpBAktVVRXy8vI47WIaGxuxY8cO5OTk4NSpU8yoPbFuF7ItrLS0FNHR0Xj" + "w4AGcnZ2xePFizJs3Dy+++KJg93wCA9uYkkC0bYl/" + "VkfiLOSQzMXFBffv34eHhwfc3d2h13tg8c5EmOexAm79GKBGifploe37bFvkcEh7" + "FYsDYvH2YU+MGUOjs2cUkYEkE25CGGeSQ6xhw4Zx9t4i/" + "mtOTk6M3CVb8ammpgYFBQXQ6/WgKIop0/" + "DtEMHu6RXCP4xdDumuu69UKoWnp6eFMLzJZGIO4iiKglQqRVlZGbRarUVpojvvPf" + "vBKlTfMBFHp2kaERERNr3PNE3jp59+" + "wpYtW7B27VocP37c4oHfU3Vck8kEvV4PmUwGnU7HycarpxhQmW5qaiq8vLw6zSzI" + "IRkxpTQajcwWe/" + "MuCn8PmQEM1T75JjovSNPW48+KV7B1o9sTM1t2+xSXzJMLbPcDIUZ3gbYtrI+" + "PD3x8fCxOtclBCmm4t6cnliiZ1dbWCtLGBrT13Aqhowu0vtePHj1CWVkZ0xMLtA0" + "osCfFHB0dLXYQXXmLEZqbm/Hw4UMMGTIEISEhvB+IAq02OAUFBcygiS1otVq8/" + "fbbKCgowMcff4zAwEDe12UrR48exfbt2+Hs7Iynn34an3/" + "+eW8tZXCUFzqTd2QfkgFtZndsAhfHoyoqtt3/" + "ZahRwPneBrz0m6XY+KoTuvp9rK+" + "vR25uLlxdXXkXjQHaujHKysoEy3j0ej1ycnIAACEhIR1uw62nxNg9sWSYo7ODJ7Y" + "solAPJaF7boG2gG6ruEtHgVgqlVoc1rEDsS1atN2lpaUFWVlZcHR0hFKptCmg0zS" + "Nf/7zn9i6dSteeeUVrF27lvf3jwt1dXX405/" + "+hAsXLsDDwwPPPfccFi1ahGXLlvXGcgZHecEaW4ItIdAjEFXW3zQ7Ajnz4V/" + "xElbOiMDsd8phMt1DURFQW+" + "tmEVTIdYmrqclkEkQuDwAzskyMDvneurHLIeysrSPIgRK7r5h98ER8stj1TnIoRi" + "bibN3CcsFa55are7AtkK4BjUbD6b2WyWTtLOKJQJJWq0V+" + "fj4TiJ2cnBi78cjISEEydLIb42LNo9Vq8eabb6K4uBiXLl3irE0tBP/" + "4xz8wduxY5mdYuHAhbt261VtBt1MGVKZLlMa4BFtCXj6N2ds/QaXH/" + "wBNI+FRPxP/" + "HvIMXnzOC1OmWGrasvthNRoNmpqaIJVKmba1oKAgQYYP2O4QCoWC98MTe4RpbIWM" + "n9bX16OiogJ6vR7Dhg2Dl5cXE4j50orlU+" + "e2M8iDTyhpRLPZjLy8PFRVVcHb2xstLS0WamLWkqH2QMoVZATe1uz22rVr2LZtG1" + "577TWsXr26V7NbNklJSVi1ahXjdP3iiy8iMjIS69ev743lDJ7ygslkYqybbQm2bC" + "gK+" + "PVXCZydaTz1FDoUD7eGyAkWFRXB09MTMpkMWq2WacMitU53d3e7a3Bki9yRqy9fk" + "EMsMinFd+YJtJ2Gjxo1CgEBAUwgJl96vR5Dhw5t10NsK+ye25CQEEFeJ+" + "KQCwBKpVKQ14kI4HSkZ9CRmhhXfd2ONBlsoaGhAW+++SZKS0tx8uRJjB49uts/" + "K9/" + "s2LEDFy5cgFQqRXh4OOLj4wV5j2xgcATdzZs3Qy6XIzIyEmq1Gq6urrxnIGzq6uo" + "Yk0trZTLiBMDuhzUajZyEa9hWM9ZN6XwhtDAN0DakQZw3nvQhIK8Z+" + "WppaWH8xMhXR5lrbW0tcnNzBdO5ZQcq0vnAN+y+" + "3tDQUJsFcEjfNfvh1dkAjF6vx4MHDzhZ59A0jR9++" + "AHbt29HbGwsVq5c2Wey2z7M4Ai62dnZuHPnDpKSkpCeng6DwYDx48dDrVYjKioK4" + "8aN4+" + "XEl5g0ms1mKBQKm3tViYIYKUuwD51IRkwOncjwgYeHB8aOHcv7SXVPCNOwa8P2Hg" + "CRhxd5cJGHF7H8cXFxQUVFBSiKEkTnFmjtPWWrjQnR/" + "kTKFQEBAbw8XNlC5yQQm81mmEwmBAQEwNfX16ZyjkajwbZt21BZWYmPPvoIAQEB3" + "VrXIGJwBF1rmpubkZGRgTt37iAlJQW//" + "PILXFxcoFarERkZicjISE5ZEckKa2troVAoeDlFZh86kUBsMBgglUoREBCAESNG8" + "OqLBVj29HbmTtBdSBARYsSZPLyIQ4FMJoOjoyNnp4muYLeycXFB4ALpiTWbzVCpV" + "IJshZuamhhbdS8vL6bbpLm5uV05h5hh0jSNxMREvP3224iLi8OKFSvE7JYbgzPoW" + "kPTNGpra5GSksIE4l9//RX+/" + "v6IiopigrGnp6dFkGM31fdEVhgYGAiZTMZkxOwxXZIR23M4JLR3GNDWZiaRSBASE" + "iLIpFRHPbdEA4BkxI2NjaBp2qINi4t4DelNJvVnvt9v9k6DWELxDdtWvTPFMWszz" + "IyMDJw9exYODg4wGo04ceIE1Gq1oGW6AYoYdDvDbDajqKgISUlJSEpKQmpqKrRaL" + "UJDQ6FWqwEAmZmZiIuLE0RjgD32Sj7g1oGBjOmSgKLRaJgtNgnCbm5unWZ2PSFMw" + "zZr5HI4wwWuPbdseUKNRmOhmdDZhBgZETaZTIKN1+r1ejx8+" + "BBOTk6CqL4B9tmq0zSa7vP7AAASwUlEQVSNhIQE7Nu3D9HR0ZDL5UhPT8fcuXOxY" + "cMG3tfYEfX19VizZg0yMzMhkUhw+vRpTJs2rUfuzTNi0OWC0WjEt99+" + "ix07dkCn08Hb2xsURSEiIgIRERGIjIyEQqHo9vaVCJbbo6DFtjcnZQl2Zkf6h4m4" + "joeHhyCTWEBbVkis1IU4xCIPpu7uNNiaCRqNxmJCjDgVBwcH2zyNxQX21JpSqRSk" + "u8JsNqOwsBA1NTUIDQ21eTdTV1eHLVu2oKGhASdOnOi18dmYmBhMnz4da9asgcFg" + "gE6nE+RwtwcQgy5XLl++" + "DDc3N8yYMQM0TUOr1SI1NRVJSUlITk5mhhPY9WFbPcyI0WRTUxNCQkJ4qxWSzE6j" + "0aCurg61ta3WQj4+Phg+fHi3+" + "zqtaW5uRk5ODmia7nRirbsILfoNtB4WPXz4EA4ODpDJZBY252QnQWqd9mKPJTlXG" + "hoa8PDhQ04dHDRN4+" + "rVq9i1axfeeOMNLF26tNdqtxqNBpMnT0ZBQcFAKGeIQZdvSDsXKUskJyejuroaCo" + "WCaVmLiIiwGOc0m83MOKdQjqxkPLi8vBxBQUHw8PCwyOxILyy7f5hrIGMLcnckHc" + "nXzyF0zy07K7SWj2SrrnUkf2nr60ZMG2trazllnlwgMpj19fUICwuzuZumtrYWb7" + "zxBvR6PY4fPw7fJ+mR9gAZGRlYu3YtwsLCcO/" + "ePajVahw9elQQScweQAy6PQFFUXj48CGSkpKQkpKC9PR0UBSFiRMnwsPDA3fu3MF" + "f/vIXm/" + "sjuVJTU4O8vDzGAruze1j3DxsMBqYFi3x1Voaora1lNGhttdnmCrmHUOUKoHU7nZ" + "2dbXN3BbvvuiPnZrb8pfU9fH19bba14Up9fT2ysrI4HfjRNI0rV65gz5492LZtG5" + "5//" + "vk+" + "kVmmpqZi6tSpuHnzJqZMmYLY2Fi4ublhz549vb00exCDbm9A0zRycnLw0ksvQavV" + "Ijg4GNnZ2XB3d2d6hyMjI+Hn59etwGKLME1X69TpdBa9sGaz2aI+" + "LJVKGclCpVIpSCmBD53brjAajcjJyWFEubtzD/" + "K6sQMxsTlvbm4GTdMYN26cIPobFEUhLy8PjY2NnAYpampqsHnzZphMJhw/" + "flyQ2rW9VFRUYOrUqSgqKgIA/PTTT9i/" + "fz+uXLnSuwuzDzHo9hbFxcUoLCzEzJkzAbR+" + "UKurqy3KEqWlpQgMDGRqwxEREXB3d+8y++" + "AiTMMVYnxJtBIaGxvh7OwMb29vzpKEXcGnzu2T7kFatIQq7QBAZWUl46jh4ODA2N" + "ewW9dsdW7uDLIT4OIWQdM0Ll26hL1792L79u1YsmRJn8hurZk+fTri4+OhVCqxc+" + "dONDU14eDBg729LHsQg25fhoibkCCclpYGnU6HcePGMYF4/" + "PjxTOO82Wy2EKYRwl8NaLOzIeUKEohJRqzT6Sya693d3Tk39wutcwu0OtFmZWUJ2" + "qJFNBkkEgmUSqVFvZerc3NnmEwmiyzd1na26upqvP7665BIJDh27JggPcF8kZGRw" + "XQuBAUF4cyZM4LU83sAMej2NwwGAzIyMphAnJmZCScnJ4wdOxZZWVlYtmwZYmJiB" + "NmCE0seo9EIpVL5xK0ru85pbfNDDus6CqQmk4kxUxRK57YnDuOI4NGvv/" + "7KSRqxM+fmzsTNq6urkZubizFjxtisYEfTNC5evIj9+/" + "fjrbfewnPPPdcns9sBihh0+" + "ztmsxmbNm1CQkICZs6cidLSUhQUFMDPzw8RERHMRF13rIDY3RX2bvPZdU4SUKy31" + "zqdDkVFRYKJ+ABtSl0+" + "Pj6CHfiRDJoYn3Y3Syfi5uydhFQqhdFohKOjIzOKbMvrVVlZiddffx0ymQwffvih" + "IAI9Ik9EDLoDgR9//" + "BEzZsxguhJIe9idO3eQnJyMlJQU1NfXQ6lUMgd1kyZNsqk3lwQpMsHEZ3cFcZeor" + "q5GSUkJzGYznJ2dLdrW+" + "KoPG41G5OXlQafTCebAyx6vVSqVgjXvV1ZWMsppDg4OFnoJ7ElEdkmHpml8/" + "fXXOHDgAHbu3ImFCxeK2W3vIAbdwYLJZMIvv/" + "zCaEtkZGRAIpFg8uTJzCCHUqlkgqper0dBQQFaWloEcfcFOt7ms7V0yWSY9UAClx" + "Fc9tQaly04V+wZr+WKwWBAVlZWh/Xhzpybf/" + "jhB9TW1uLhw4cYPnw4PvroI0H6p0VsRgy6gxWaptHY2Ii0tDSmfzgnJwdeXl6Qy+" + "V49OgRTp8+" + "DaVSKVjPra06tySYkO010dJlZ3UdHYL1xNQaewBBKBsme61zKIpCfHw8vvrqK3h7" + "ezNCSefOnUNYWBjv63zSOkgL5OXLl3vsvn0UMeiKtJGdnY0///" + "nPGDt2LAIDA3H37l1muoyUJcLDwyGXy+3OFtnCMfb29RIbeHb/" + "MEVRjISjq6sr6uvr8fjxY8EMG4G2Fi2hFMeA1gNJtsWQrR0WFRUViIuLg6urK44c" + "OcK0DVIUBaDnrM8B4NChQ0hNTUVDQ4MYdMWgK8KmtrYWVVVVUCqVzPcoikJOTg5T" + "H7579y4MBgMmTJjABOKwsLAug4F1zy3f7UmkPlxZWYmSkhJIJJJ2spfWymH2YjQa" + "kZubi5aWFsGGNdjuICEhITb3WpvNZnz55Zc4fPgw3nnnHTz77LO9WrstKSlBTEwM" + "tm/" + "fjkOHDolBVwy6HZOQkIDY2FhQFIU1a9Zgy5Ytvb2kPkVzczPu3r1rIQIvl8stRH7" + "YPcJ1dXXIy8sTtOeWtJpptVqoVCrI5XJGOYzdfiWTySwO6rgK1lRWViI/" + "P18wKUygTeKRa/" + "dDRUUFYmNj4eXlhcOHDwuW4XNh0aJF2Lp1K7RaLd577z0x6A5WC/" + "YnQVEU1q1bh8TEREbE/Nlnn+3RGlhfx8nJCdOmTWP0TGmaRk1NDSMCf/" + "78eRQXF2PUqFGM/" + "9uhQ4cEawMjxpYBAQEICQlh7iGVSuHp6WnRh2swGJggXFpaauG1RoJxR1l7c3Mz4" + "+emVqsFqQ/TNM205nGReDSbzTh//" + "jw++OAD7N27F88880yf6Ey4fPkyo7h37dq13l5On2fQZrq3b9/Gzp078fe//" + "x0AsG/fPgDA1q1be3NZ/" + "Y7ExETExsYiOjoaTk5OSEtLQ2NjI8LCwpiMeOLEid0SAyeB0MHBoUtjy85ge62RY" + "ExRlIUQfENDA8rKygRTTgParHO4+q2Vl5cjNjYWPj4+OHToUJ+" + "a0tq6dSvOnj0LqVTKDMssXLgQn332WW8vrTcRywvWfPXVV0hISEB8fDwA4OzZs0h" + "KSsKxY8d6eWX9i9zcXHh6eloEKYPBgPv37zP6Evfv34dMJkN4eDhTHw4ODrZJ2Yt" + "khEIEQmLxU1VVhZKSEtA03U72kq/" + "6ME3TjLNGZ9Y5na3x3LlzOHbsGPbt24d58+" + "b1iey2M65duyaWF1oRywtCsmrVKmaLlZmZ2dvL6VEUCkW77w0ZMgRqtRpqtRqvvv" + "oqaJpGQ0MDIwK/" + "c+dO5OfnY+" + "TIkRb14REjRjABRaPRMI4XUVFRgp3CV1dXo6qqCpMmTYK7u7vFeG5BQQFTH7buH+" + "YS+NgC5lFRUTa35pWVlWHDhg3w9fXF9evX+" + "6uDgogVgzbT5bO8cP36dcjlcqxYsWLQBV17IV0OSUlJzEFdTU0NgoKC0NzcDBcXF" + "xw+fFgQxTGg1WUhKyuLEfN5UiA0GAwW/" + "cNE0JydEXdUHyb+" + "e9XV1ZwEzM1mMz777DOcOHEC7777LubMmdOns1uRDhHLC9aYTCaEhITg+++/" + "h5+fH6KionDu3DmMGzfOrusVFRVh/" + "vz5YtDtBteuXcMrr7wCtVoNJycn3Lt3DzRNY+" + "LEiUw2rFKputUVQVEUI7QTGhpq1wQeW9CcBGJykEiCMADk5OTAx8eHkxB7SUkJNm" + "zYgICAALz33ns2lyFE+hxiecEaqVSKY8eOYc6cOaAoCqtWrbI74Irwg4+PD77//" + "nvGFJGI56SlpSE5ORkHDx5EdnY2PD09mfJFVFSUzZqyxEDTz88PCoXC7uxRIpHA2" + "dkZzs7OjAg4MQolTg46nQ5OTk7Q6/UoLy9nLOA7u6fZbMZf//" + "pXnDx5EgcPHsTs2bPF7HaAMmgzXb7hI9N99OgRVqxYgcePH0MikWDt2rWIjY3lcZ" + "X9H5qmUVVVZSECX1ZWhrFjx1qIwLPVuAwGAyNVKZStOtBmnUM0jtk6uhqNhpFvZL" + "eseXp6orS0FOvXr0dQUBAOHDjAm1GpSK8ilheEho+" + "gW15ejvLyckRERECr1UKtVuPixYti73AXEBF4Mk2XlpaG5uZmhIWFwdnZGVlZWTh" + "z5oxg/cNcrHOMRiMThOPj43Hx4kVotVrMnz8fS5YsQXR0dI8FXfEhLyhieaE/" + "4Ovryziyurq6IjQ0FKWlpWLQ7QLSvxsSEoIVK1YAAAoLCxETEwOj0YigoCAsXrwY" + "Tk5OiIiIYDJiPlTCiC6Dn5+fxcBGZ8hkMnh7e6OpqQmZmZn4wx/" + "+gA0bNuDBgwe4fv06fH19ER4e3q012YpUKsX7779v8ZCfPXu2+" + "PsmMGKmywMvvPACrl27hurqaowcORK7du3C6tWru3XNoqIizJgxA5mZmeJ20w6Ki" + "4uRm5uL3//" + "+9wBayxL19fVITk5m1NYKCwvh5+fHBGG1Wg1vb2+" + "bsmGTyYTc3Fzo9XpOBpdmsxmffPIJzpw5g/fffx+zZs3qM7XbP/7xj3jttdcwe/" + "bs3l7KQEAsL/" + "QnGhsbMXPmTGzfvh0LFy606xrNzc2YMWMGWlpaYDKZsGjRIuzatYvnlfZviBg5Ww" + "Reo9FApVK1E4FnY491DtD6IH3ttdcQFhaG/fv3CyIPaS/iQ553xKDbXzAajZg/" + "fz7mzJmDuLg4u69DTtPlcjmMRiOio6Nx9OhRTJ06lcfVDjyMRmM7EXgHBweEh4dD" + "pVIhMTERK1aswJw5c2w+kKMoCp988gk+/" + "fRTHDlyBDNnzuwz2S3Az0NepB1i0O0P0DSNmJgYeHl54ciRI7xdV6fTITo6GidOn" + "MCUKVN4u+5ggIjAf/" + "DBBzh27BgmTpyI0tJSRuAlMjISUVFRnVq6FxYWYv369ZgwYQL27t0riDNHd+" + "DrIS/" + "SDvEgrT9w8+" + "ZNnD17FhMmTMDkyZMBAHv37sW8efPsuh5FUVCr1cjLy8O6devEgGsHEokEcrkcDg" + "4O+Pnnn+Hj48M4ACcnJ+" + "POnTs4deoUKisrGRH4yMhITJo0CV988QXOnj2Lo0ePYvr06X0quwVaHyirV69GaG" + "ioGHB7EDHTHQTU19djwYIF+PDDDzF+/Hi7riFasTwZiqKQnZ3N9A8nJCTgN7/" + "5DT799NMntpD1Jjdu3MD06dMxYcIEpoujOw95EQvE8sJgZ/" + "fu3XBxccGmTZvs+v+iFQs3aJruc5mtSI/" + "S6ZvPvxOhSJ+" + "gqqoK9fX1AFodChITE6FSqey6VklJCa5cuYI1a9bwucQBjRhwRTpDrOkOUMrLyxE" + "TEwOKomA2m7F48WLMnz/" + "frmtt3LgRBw4cgFar5XmVIiKDDzHoDlAmTpyIu3fvdvs6fFuxBAYGwtXVFY6OjpB" + "KpUhNTe32NUVE+hNi0BV5Ijdv3sSlS5fw7bffMnKGy5Yt65YVy48//" + "iiYHY6ISF9HrOmKPJF9+/ahpKQERUVFOH/+PGbNmjXYva96nYSEBCiVSgQHB2P//" + "v29vRwRjohBV6RHkUgkePrpp6FWq3Hq1KneXk6/" + "g7hYX716FQ8ePMAXX3yBBw8e9PayRDggBl0Rm/" + "nd737X7XaxGzduID09HVevXsXx48dx/" + "fp1u69VX1+PRYsWQaVSITQ0FLdv3+" + "7W2voDycnJCA4ORlBQEIYMGYLnn38e33zzTW8vS4QDYtAV6VH8/" + "PwAACNGjMCCBQuQnJxs97ViY2Mxd+5cZGVl4d69ewgNDeVrmX2W0tJSBAQEMH/" + "29/" + "dHaWlpL65IhCti0BXpMZqampi2s6amJnz33Xd2T8hpNBpcv36dkdAcMmSI6JYr0i" + "8QuxdEeozHjx9jwYIFAFr1aJcuXYq5c+fada3CwkL4+" + "Phg5cqVuHfvHtRqNY4ePdrnBGX4xs/" + "PD48ePWL+XFJSwuweRPoH4hiwSL8kNTUVU6dOxc2bNzFlyhTExsbCzc0Ne/" + "bsset62dnZWLJkCfPngoIC7N69Gxs3buRrybzAt4u1iGCIKmMiAwt/f3/4+/" + "szymmLFi3qVvuUUqlERkYGgNYOAT8/" + "PyYr70uILtb9n64yXRGRPotEIvkJwBqaprMlEslOAMNomt7Mw3WfBrCDpunfdvda" + "IiLWiJmuSH9mPYDPJRLJEAAFAFbydN3nAXzB07VERCwQM10RERb/" + "CuBlAMbRNP24t9cjMvAQW8ZERCz5A4B0MeCKCIUYdEVELHkBYmlBREDE8oKIyL+" + "QSCTDABQDCKJpWtPb6xEZmIhBV0RERKQH+f/" + "rSOHGAeWhhAAAAABJRU5ErkJggg==", + "text/plain" : ["
"] + }, + "metadata" : {"needs_background" : "light"}, + "output_type" : "display_data" + } ], + "source" : [ + "pD.degree = refDegree + 60\n", "prob = setup_control_points(pD)\n", + "variableBezier = prob.bezier()\n", + "A, b = genCost(variableBezier, ptsTime)\n", + "# regularization matrix\n", "reg = identity(A.shape[1]) * 0.001\n", + "res = quadprog_solve_qp(A + reg, b)\n", + "fitBezier = evalAndPlot(variableBezier, res)" + ] + }, + { + "cell_type" : "markdown", + "metadata" : {}, + "source" : [ + "## Adding equality and inequality constraints\n", "\n", + "Suppose we want to add specific constraint.\n", + "For instance, we want that the velocity be exactly 0 at t = 0.8, " + "additionally to the start and goal positions being satisfied. This " + "can be done easily by obtaining the variable equation for the " + "variable curve at that time." + ] + }, + { + "cell_type" : "code", + "execution_count" : 50, + "metadata" : {}, + "outputs" : [ { + "data" : { + "image/png" : + "iVBORw0KGgoAAAANSUhEUgAAAV0AAADnCAYAAAC9roUQAAAABHNCSVQICAgIfAhk" + "iAAAAAlwSFlzAAALEgAACxIB0t1+/" + "AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6L" + "y9tYXRwbG90bGliLm9yZy+" + "AADFEAAAgAElEQVR4nOx9eZwcdbX96XX2fTJLZt8zExKyTcKmbBr0ofAEJOybKA9" + "BohEwggGHYIgQUBCQLewKPx6CICgoPBCFbARCAiSZrWfrWXt6el9r+" + "f0xfitV3dXd1d3V3dOTOp9PPuJ0rd1Vp27de8+" + "5KpZloUCBAgUKkgN1qg9AgQIFCo4mKKSrQIECBUmEQroKFChQkEQopKtAgQIFSYR" + "CugoUKFCQRGgjfK60NihQoEBB9FCF+" + "kCJdBUoUKAgiVBIV4ECBQqSCIV0FShQoCCJUEhXgQIFCpIIhXQVKFCgIIlQSFeBA" + "gUKkgiFdBUoUKAgiVBIV4ECBQqSCIV0FShQoCCJUEhXgQIFCpIIhXQVKFCgIIlQS" + "FeBAgUKkgiFdBUoUKAgiYjkMqZAQUiwLAuGYeD1ekFRFLRaLdRqNTQaDdRqNdRqN" + "VSqkGZLChQclVBFGEypWDsqCALLsqBpGhRFCf6bfMYnWkLC5J9CxgqOEoS8wBXSV" + "SAZgWSrUqmgUqlAURQoioJarQ5anv9PIWMFRxFCXshKekFBRLAsC4qiQNM0R56BB" + "CsGQspi2wMAiqLg9/" + "sFn5nNZpSXlytkrGDeQiFdBSHBsiycTie8Xi+" + "ys7Mlk20kEAINJFKWZWEwGFBSUgK/" + "3y+IjlUqFTQaDZc3JpGyQsYK0g0K6SoIAsMwXBrBZDLB6XSiubk55PJyER+" + "JjMXSFACCUhssy4ZNUyiErGAuQiFdBRwYhuHSCMCR6DJC3j/" + "hCBcZAxAU8vjrqNVqaLVahYwVzCkopHuUgxS5/H4/" + "GIYBIMzFqlQq7u9zDZHImLSzBa5DomN+" + "qkIhYwXJgkK6RylIjy1FUaJkS6BWq1Me6UaLUGQMHDlvmqbh8/" + "nAMAyGhoZQX18vSFOQ6FghYwVyQyHdowyBZEtIJRSxkNzpfIHYuVosFqjVao6MA9" + "vbxHLGSkeFglihkO5RglA9tpGIg5DRfEWk74IfGSu9xgrkgEK68xxiZBtN29d8i3" + "SjRTgyJrlwn8+" + "nkLECyVBId56CL2jYvXs3Vq9eHVOP7dES6UaLWIQfChkrABTSnXcgZEtaqFQqFWi" + "ajvnGlhLpKqRxBJE6KggZ9/" + "X1oaqqCpmZmRz5KsKPowMK6c4T8AUNgHjblxLpiiMZ5BZIxl6vlyNYQBF+" + "HE1QSDfNISZoEGv7ipV053tON1Xnxi/" + "gAYrw42iCQrppiEiChkDEE61KIV1S4ZfDlyEVSAVRRfq+FOHH/" + "IVCumkEqYKGQMRDuuHWZRgG4+PjMBgM3N8yMzORk5PD/" + "cvOzp7TZJzqSDdaRCP84EMRfswdKKSbBohW0BAIuSNdhmEwOjqKwcFBlJaWYsWKF" + "dzxuN1uOJ1OOJ1OmEwmuFwuAEBWVpaAjLOysuYMGacq0pV7v1J6jfft24djjz2WW" + "14RfiQfCunOYZAe29HRUZSUlHAV7WhviHj8E/" + "iETdM0jEYjhoeHUVZWhs7OTuj1ejAMw/" + "WqZmdnIzs7GwsWLOC2wTCMgIwnJyfhdrsBHCHj3Nxc5OTkJD3yTGWkm6yHDv+" + "aYRgGWq2WOwZF+JF8KKQ7BxEoaBgcHERxcXHMF3w8/" + "gmEsAcGBjAyMoLKykqsXr0aOp0uaLlw+" + "ycRLh98MnY4HJiYmIDL5cKePXuQnZ0dFBnPpxs+" + "1vSCnFCEH6mBQrpzCKEmNGg0GtA0HUR0UhFreoGiKAwODsLhcIBlWRx33HFclCQH" + "xMh4z549WLlyJVwuF5xOJ+x2O8bHx+HxeLhImk/GmZmZcd3wqSS/" + "uUpUivAjsVBIdw5ATNDAf/" + "WMt1c22vX9fj8GBwcxPj6O6upq5OTkoKGhIew6cpKXWq1Gbm4ucnNzBX9nGAYulw" + "sOhwNWqxWjo6PweDxQq9XIzs7mUhQ5OTnIyMiY0zd8KtMasUKq8IMPvvBDIeNZKK" + "SbQoQTNPBBIt1YIZV0fT4fBgYGMDU1hZqaGpxwwglQq9UYHR2NuG4ybqJQZEzTNB" + "cZWywWGI1Gjoz5UXFubi70er3gWOfCa366Q0qv8cDAAHQ6HcrLywXCD35r29HSUa" + "GQbgogRdDAR6IjXa/" + "Xi4GBAZhMJtTV1eH444+" + "P2hQnldBoNMjLy0NeXp7g7zRNc8W7mZkZjIyMwOv1QqPRcESs1WpFC0mJRiq+" + "s1SdI6kL6HQ6wSSSo1X4oZBukhCtoIGPREW6Ho8HBoMBMzMzqK+" + "vR0tLy5xp45IDGo0G+fn5yM/PF/" + "ydoiguTWGxWGC327Fnzx5oNBpBiiInJwd6vT5FRy8/" + "UilgoWkaGo0GgCL8UEg3wYhV0MCH3JGuy+" + "WCwWCAzWZDQ0MDFi1aNKcu3ERHZFqtliPjgoICMAyDxYsXg6IoQY/xwMAA/H4/" + "tFqtgIjTlYxTSboURUUswsoh/" + "CBBTeCDdi5BId0EgVwkJJpsbm6O+" + "aksV6TrdDrR398Pp9OJxsZGdHR0zCmyTTW0Wi0KCgpQUFAg+Lvf7+" + "fIeGpqiiNjnU4XRMaxdpgkA/xoM932LUX4AQBvv/" + "02PvvsM2zZsiXmfSUaCunKjMAeWwCYnp5GS0tLzNuMN9L1+/" + "0YGxvDyMgIGhsbUVpaOmfJlijgknV8Uval0+lQWFiIwsJCwd/" + "9fj8cDgecTicmJibgdDpBURRHxvxUhZytdrFirqQX5EQgGVut1qCH5lxD6q+" + "EeYJQExriUYMRxBrp2mw29PX1weFwoKSkBO3t7XOWbNMROp0ORUVFKCoqEvzd5/" + "NxkfH4+DhHxnq9niNh0iKYTDKe6+mFBz5+" + "AL0zvVjbsBbfav5WTPuxWq1BD8e5BoV040QoQQOBHCQXbaRrsVjQ398PlmXR2NgI" + "t9sNr9ebFoSbbCvJRETVer0eer1eQMYsywrImKIofPbZZ6BpGhkZGUFpikREhalO" + "L4Qi/F2ju/D1F7/O/" + "f+nDzyNketGkJ8RfV7WarWirq4u5uNMBhTSjRGRBA1yQqPRBFVzxTAzM4O+" + "vj6o1Wo0NTVxr1lerzfuaFvpZ40PKpUKGRkZyMjIQGFhISYmJrBy5UoBGTscDhiN" + "RrhcriAyzs3NRXZ2dlykmWr7zcB9m1wmND7SGLScRqWBRh3beSqR7jyEVEGDnAgX" + "6bIsC7PZjL6+" + "Puj1erS1tQX1q8abE05mnjUVpunJfpjwHcb4ZFxcXMwtw7IsvF4vFxmPjIzA6XSC" + "YRhR+0wpZJxq0uWOg2Ww7s/" + "r8LbhbdHP31r3FnJ0OaKfRYLNZlNId74gWkGDnBDL6bIsC5PJhP7+" + "fmRlZaGjoyNIqUUgV8tZqBvW7/" + "djcnKS80WYCze2VKRCjivFYUylUiEzMxOZmZkoKSkRrOvxeDgyNpvNcLlcYBgmyD" + "4z0Ms43Ct+svDYvsdw4//" + "dKPrZphM34aY1N8W1fZvNphTS0hnxCBr4IMW0WC94PmmyLIvJyUkYDAbk5ubimGO" + "OCXLvCrd+LAgVffr9fgwMDGBychLFxcWYnp6G0+kEy7IcAZMK/" + "lx2CUv2ccXz1qBSqZCVlYWsrCyUlpYKtknI2OFwwGQywe12g2VZLjKmKCqu0U2xg" + "mVZHLIfwun3nS76eWdlJ946/" + "y3oNPG321mt1qDC5lyDQroi4AsaDhw4gI6OjrhMOkikGuuFrtFoQFEUxsbGMDAwg" + "IKCAhx77LHIysqStL7cpMsn27q6Ohx33HGgKErg2cq3bBwfH4fb7Q4yphHzQkhFI" + "S3ZSATphSNj8luMjY3B6/Vi7969AJJjLG92m7HosUXw0B7Rzw9+/" + "yCq8qpk25+" + "S000zkLYvmqa5vJvT6QQQXzQUjzUjwzCYnp7GxMQENBoNli9fjszMzKi2IVd6gU+" + "2tbW1nEdDIHGF8s8lxjQOhyPIC4EQsd/v54QHyUI6RbrRgm8s7/" + "F4oNFosHDhwrDG8nJ4GTMsgyvfvBKvdr8q+vkr57yCr9V/" + "Le7zC0Q8FqjJgkK6EO+xJf+" + "0Wi0oioqrahxLny3DMDAajRgaGkJBQQEKCwvR3t4e0/" + "7jJV2WZWEwGGA2mwVkGy1CGdMQ+" + "a3D4YDf78fBgwdB07Sgr5WQstwtT6mKdFM1IogQkhRjeb6XMYCglFEoL+On9z+" + "NG965QfQYfrr6p7j9pNtlPrNZpMvU6qOadEMJGviIV4Ib7TbERuLQNI2DBw/" + "GvP9YSZdEthaLBUVFRTGTbSTw5bdTU1Po6OiATqcTKL6MRqOges9Xe8314ZeBSOa" + "oHj4Yhon40OKTcVlZmWBdYp9ps9kwNjYmSBnl5OTA4DHgrDfPEt1uS14LPrryI2R" + "oM2Q9Jz4I6c7V2gHBUUm60fTYkkg3HkghXZqmMTw8LDoSx+" + "fzJcVPlyAwjVBaWory8nJJI8PjBb89Ta/Xo7i4OKiVKrBgRIZfSo3E+EhF/" + "3Gqep7jLeaG8jI2mo044cUTYPPbRNf92zf+hiIUQa9JrEmQx+" + "NBdnZ2QvchB44q0hUj20gXf6JJl6IoDA0NYXR0FFVVVaIjcZI1OSJUznZmZmbOvL" + "qFKhgFRmL8qRJ8Is7NzYVOp0tpNJSqSFfuljGKoXDN29fgfw/" + "9r+jnT619CieUnACTyQSrw8rZZwY+" + "HAOLqbHCYrHMaXcxgqOCdOMRNMiRXiBG2XwEjsQ5/" + "vjjQ776JXpyBDmWiYkJ0ZxtvKQfDWLtXggXiZGoeHp6GkNDQ/D5fNBqtdyyfr8/" + "qT4IqczpypETZ1kWTx94GuvfWS/" + "6+fUrr8evvvor7hxJLr++vl5gLG82mzE8PBxkLM+" + "3z4zme0qHzgVgnpOuHIIGuSPdUCNxwiHeGzQUaUYiW/" + "76kYhwrsqEQxmZk3zx5OQknE5nkA8CicLild6KIR3TCwSfjH+CU/" + "54iuhnrcWt+OfF/wxSk/" + "EfaOGM5QkZBz4cpXoZp4PDGDAPSZcIGnw+" + "H3p7e9HU1BSXekwu0vV4PDh06FDcHQCxQKzPVgrZ8tef65FutCAOYSzLQqvVoqmp" + "KUh6G6j24qco4hF7pCrSjSe9MOWaQufTnTB7zKKf771iL1qKxe1LaZqO+" + "BYRystYqrG8TqeDxWJRIt1kQmxCw9TUVFw+tgA4N/" + "pY4fF4MD4+DofDgba2NrS2tiY9n0du8GjJlr++" + "FCKcq9FuOPDPK5z01u12c50Uk5OTcLlcUKlUQS1tUqYQz+XuhUB4KA+u//" + "v1eOnQS6KfP/OtZ/" + "Cd1u+" + "E3QZ5g4gFUo3lt23bhp07d0Kj0cDtdmPx4sVYt25dVCR81VVX4Y033kBZWRk+//" + "xzAIDZbMa6deswMDCA+vp6vPTSS3Er3tKedMUEDXL6Imi1Wq5pPBrwR+" + "IUFxejsLAQCxculOWYooXf74fX68Xu3btRU1MTdZQdKadLvm85ItRUGN5EAl9gwA" + "d/CrHY4MvA4h1BOqQXWJbF9v3bseHdDaKff//" + "Y7+PuU++W5AaWiHx5oLH8Y489hscffxw0TWP16tX44osvon47u+" + "KKK3D99dfjsssu4/62detWnH766di4cSO2bt2KrVu34te//" + "nVcx562pBtO0BC4XDwXeLTpBbGRONPT05ieno75GGIFP7JVqVQxpzTmIhHKhXiuD" + "ylij6mpKRgMBm6iRG5uLpffT7a/" + "rdT0wk7jTqz9f2tFP2ssbMR7F72Hokzp0V6yztNqtWLRokU4+eSTcfLJJ0e9/le/" + "+lUMDAwI/vbaa6/h/fffBwBcfvnlOOWUU44+0pUiaCAgEVoy1GR2ux39/" + "f3weDxoampCSUmJoHobbwcEIJ0g+" + "GRLItudO3fKYrijIDJCvRL7fD44HA5OWLBv3z7QNM0Z0vCLd4lIP0RKawzZhnDqH" + "0/" + "FlGtK9POPLv0Ixyw4Jur9JpN05c7pTkxMoLKyEgBQUVGBiYmJuLeZdqRL0zT8fr8" + "k03A5JLyRIl0yEoeiKDQ1NQka+QnkUrVFeoCIka0cN28yI935MDkiFIjYw+" + "PxID8/" + "HzU1NWHFHoHFOylij3AIda42rw03vHMDXjn8iuh6j3zjEVzYfmHM+" + "05n0uVDrrRl2pEumXcvBURKGmsSHwhNuhaLBX19fQCAxsbGsMl1OUhXrVaHvHgTR" + "bYE8zm9kArwI85wYg9SvLPb7RgbGxOIPeQQF1AMhd9/" + "8nvc+" + "sGtop9ffszl2Hbatrilu8nqgU4E6ZaXl2NsbAyVlZUYGxsTSKNjRdqRbjRIhJrMb" + "Dajv78farUazc3NkvoC5SLdwFd8iqI4gYUUso01qguXXuDLl/" + "nqLz4hRIOjYXKElO6FcE5tofpZ+X4Uubm5IYmOZVm8bXgb5//" + "5fNHP6wvq8fa6t1GZWxnbCQYgWZGuzWaT3Uv3rLPOwjPPPIONGzfimWeewdlnnx3" + "3NhXSlbANv9+P6enpsCNxwkFu05xoyRaIb+SOGBEyDIORkREMDw+" + "jsrISK1asAADOunFqaorrqdTr9YLX5Lk0XSJVLmOxklA4sQdJUUxMTKCvry9ozhp" + "N0/hs/DOc/crZIftt/" + "3HBP7Bm4ZqYji0UktUiF2+ke+GFF+L999+HyWRCdXU1urq6sHHjRpx//" + "vnYvn076urq8NJL4q1z0SDtSDca0oiXdMlIHJfLBaPRGHYkTjjIFen6fD6Mj49HR" + "bb89WNVJJHUBjBLGKOjoxgcHER5eTlnzOPz+cCybBAhEKEK6XEdHh6Gy+" + "UCy7JczjLQoGa+pzISQUKBLVRkP+" + "S7HzAN4LaDt2HXjl2i69976r343rLvQa2aGw/DWBBvKvGFF14Q/" + "fu7774b8zbFkHakGw1ITjdaBI7EycrKwtKlS2M+" + "Diky2nAgLUgHDhxAfX19TDnbeDoQiCJtdHQUAwMDKC0tRWdnpyB1EIos+YMX+" + "YIDfs7SarVyBjVerxcURaGoqIgj5ETmA+ezy5hKpQKtpvHwoYdxz657RJc5q/Ys/" + "Kj5R1D71dj78V6Byis3N1eS2GMuIJ0e1GlHutFGulJGlxOwLIvx8fGgkTgfffRRL" + "IcaN/hpBJ1Oh+bmZixYsCCmbcVKuizLwmazYWJiAuXl5Vi5cmVc0QT/" + "eMjNXV5ezv39yy+/" + "RGFhIViWxcTEBPr7+0FRFDIyMgQpinTz0OUjGTJgmqHx4sEXce3b14p+" + "Xpdfh1fOfQUtRUcUm8SpjTwIjUajqNgjllx9spAOD4i0I11AerFFq9Vy43bCgWEY" + "jI2NYXBwEEVFRaIjcZIZEYnlbHt7e+" + "PaZrSky7Ispqam0NfXB51Oh8rKSrS1tcV1DFJA3MICUxRerxcOh4NzC+" + "N76JKIWGzmWiSkKtJN5APjn0P/xEWvXwS7zy76+cvfeRlrG4LFD6Gc2vj+B/" + "xcPRF78B+" + "EgW8lyfKZ8Hg8sgQDyUBakq5UREov8EfilJaWhoziSE420W0vfLKtrq7GcccdxxV" + "cSJ9urJBKuizLckXDnJwcLFu2DHa7HTabuEG13BC7QfmeCGIeuoEz1/iVfPK/" + "ybJtlIJEEf3+sUO44uUN6PX/W/" + "Tza5uvxeYzN0dtJh5J7OF0OjE6Ogqn0ykQe5A8fbKKaOngMAbMc9INVUijaRojIy" + "MYGRnhRuKEe10i24n3xg11s4UjWwJ+" + "MSsWSCFds9mM3t5eZGZmCka7OxyOpCrSpObnQkVm/DE/" + "Y2NjAjLgF+6ys7NTEunKHf0dNk7if17cir2qJ0Q/" + "P6f1HNy+5na4Jl2yTm+QMtljcnISDocDe/" + "bsEYg9Yh14GQrp4qULpCnpRpNe4JMuRVEYHh6G0WgMGokTzXZigVi0LIVs+" + "esnKtK1WCzo7e2FVqsV7dBItiItXhDbRn7PJiEDkqIgTmEURUGv14NlWUGKIpGQK" + "71wqM+N655/BHsy7gH0jqDPq/Oq8dy3n8PKipWw2+0YUY/" + "Evc9ICBR7OBwODA0NYdGiRUEDL8mMNTnEHjabTYl05wJ0Oh03nifSSJxwkLPPlhC" + "4VLIlSESka7PZuFxxa2tryFEnyfZeSATB88mAX4wcGRmBx+" + "OBTqfD9PQ0BgcHBflKfmQmV4N/vJHu/" + "gPAT576X+zJux0oECfS9oNPYcdj3+" + "FawOQwMI8FRBgRauAlcWpzOBwwm81B5uX87z9cgGSxWBTSTSSkXrAMw8DpdGLXrl" + "0RR+KEg1yRrtfrxcjISFRky18/" + "Hl9fPnE6HA709vaCoig0NzdHfC2bz72zarUamZmZnKkJAclXOhwOwSRi/" + "nyvWP0QYo10d+7U4JbH/" + "42Pi38GVO8TfjjZAVBZ0A19DZc13oT1t2ZArTrymyXb0UzqfkM5tfH9cicmJuB0O" + "rm3ksDinUajUdILqQZ/" + "JE48loYE8ZIuRVFwuVzYt28f6urqoiJbAjkiXZfLhf3798Pj8aC5uVnUnCfUupEi" + "XbmnAacaofKVYn4IkfxzAxFNHpllgfff16Dr4V58UnILsPhN4QKOcuC9O1AxdgWu" + "vYbFlb/" + "wYZZ7ghWEqYh0Y62FRBJ7OJ1OjIyMwOl04p577oHJZEJJSQlefvllHHPMMXEPC/" + "jNb36DJ554AiqVCkuWLMFTTz0V1NEUK9KSdENdsF6vFwaDAWazGXV1dWhubo7L0p" + "Ag1vQCP62h1WrR3t4umegCEQ/" + "put1uTE1NgaZptLe3C2wnpWCuEGEiEA0B8s3M+a/" + "IgS1VxD+XP2+N31ssJb3AssBbb2nwqwfM2F98B7BmO6DmPfj8WcBHN6JlcgM2XJ+" + "B737Xi3Cp6FSnF+RAKKHNH//4R9x5551gGAaHDx/Gyy+/" + "jCeeeCIm9SgAGI1GPPDAA/jyyy+RlZWF888/" + "Hy+++" + "CKuuOIKWc4jLUk3EG63GwaDARaLBfX19WhraxNc1Mk2MidkOzY2xqU1enp64iKuW" + "AppHo8H/" + "f39sFqtyMvLQ3FxsaDlSirms7WjHBBrqeJHZYG9xT6fD6OjoygsLAxSfTEM8OabW" + "tx1rw+f590HnHwPoOf1mrMqYN8VWDr9S/" + "z8ugX45jcpqNWRr025x69LRTLSGuTeOP3003HmmWfKsk2KouB2u6HT6eByuWSd+" + "pLWpOtyudDf3w+73Y6Ghga0t7cHkascPbZSR/" + "YEkm1gn2086YFo1vd6vejv78fMzAwaGxvR3t6OwcHBmMksmh7fdFAE8ZEooUI4+" + "fOnn36KzMxMgepLpdLg44+rsf2pSnRn/wE4dROQNy7caN/" + "X0TlzF355bTtOOomGSiU9EJBr/" + "Hq0oCgqaMxRImCz2WTL6VZVVeHGG29EbW0tsrKysHbtWqxdKz5JIxakJel6vV58+" + "eWXcLlcaGhowOLFi0Pe7HL02EYiPD7Zku6IwAs8XtKVQnwkl20ymVBfX49FixZx3" + "0u83gtKpCsPiB90eXk5dDodGAb4y1+02HKXFgf9/wC+/" + "t9A2RfClSaOwbGTd2LLVSfhxBO1UKujv44YhkmJQCSZBuZydS/" + "MzMzgtddeg8FgQGFhIb773e/" + "i+eefxyWXXCLL9tOSdFUqFSorKyXlJuWydxTbhhSyJUhkpMs3MSeFusDoTa1Wx/" + "w9RCJsl8vFdUPk5uYiLy8vJkluKpAqGTDLqvD661ps3arH59OfAV+/" + "CWj8P+" + "GCtoU41nwb7jj3m2ios8Lh6MbevW4ut8wv3EX6rmmaTolfQjJJVy4v3XfeeQcNDQ" + "1ca+" + "E555yDjz766Ogm3UA5aDjE6jTGh5jIQirZEmg0mrjIP5SJOTmOSFaP8TidhYo+" + "vV4v+vr6YLPZ0NDQwHld8CW5/H5XfotPtPuaL2BZ4MMPi/" + "GjH+XhwJAROO0XwHnPCxfy5qJj5kY8fOm1WLEk6z9/PEIopBWSyJ+Hh4fh8/" + "mg0+" + "mCTOTJd52q9EI6km5tbS127twJl8uFrKwsvPvuu1i1apUs2wbSlHSjgZxqsljIln" + "8c0TiehToG4Mi0BqPRKPk45Ewv+P1+GAwGmEwmLmdMvp/" + "Afkt+MYnvpRuvUU26gWWBd97R4Fe/" + "ysAnX1YDX7kFOPsBQMu7JhgNGmeuxsPrbsYJS0O7yanV6pC9rWK9xVlZWfD5fABm" + "DYLklN9GQrwzCqXC6/UiKysr8oISsGbNGpx33nlYsWIFtFotli9fjh/" + "84AeybBtQSFcybDYbdu7cGbWogUCOnC5N0xgaGuKmNaxZs0Zyni4e0iXr0jSNwcF" + "BjI2NBaUxQt3EYv2ugUY1/EiNkDdpt0p0xT0Z6YV//" + "UuDzZv12LmHBjofANZvBrJmBMtU2r6FB77dhTNWtoTYSmSEkj+73W709PRwbyZ8+" + "W08o5WkIBlGUYl4M+" + "rq6kJXV5fs2wXSlHSTNT2C79XAMAxOPPHEuMasxEq6xEDcbrfD5/" + "NFRbYE8Up5PR4Pdu7ciaqqqrjFJqGManw+H5cbHh4e5mw50zUq3r1bjTvvzMD7/" + "1QDi/8fcP0tQNGAYJkiZyfuOm0zLjrxhIQcA8n/" + "6vV6VFdXc9ExmbVGJhAnarRSMpVw6XBNAGlKuoD03J9Op4PH44lq23yyJZHt7t27" + "47p4YiFdlmUxNjbGTWvIyclBc3NzTPuPhXRZluWmRTAMExPZRwO9Xs85UZEiRrio" + "mE/EsZJDIiLdzz9XY/PmDPztb1qg/j3g+zcBC/" + "cKlsn2NOGWNbfjR6ednRSyCBRHiM1aI73FhIyljFaKdr+" + "JAPHKSBekLelKBRksKQWBZBurV4MYoiFd/" + "tSE4uJirFq1Cnq9HiaTKeb9R0O6ZFxRf38/ioqK0NnZiY8//jgpLUeBD9NwUTE/" + "VzwXouLeXhW2bMnAyy/rgLIDwEUbgda/CpbR+Uvw38VX4Pfrfy6rzWIkSCE/" + "fm9xYDqIyJ9tNhs3Wkmj0Qii4lCjlRL9/" + "Vut1pBmTXMRaUu6sdo7iiGRZEsghXT50xoKCgqwYsUK2fTeUkl3enoavb29yMnJE" + "Z2gMVcQba44VFQsR6RrNKrw61/r8dxzOtA5RuDs24BlTwM8wxk1nYnza6/DPf/" + "9Y3Tv704q4QLxveaHGgdP5M9kArHYaCWaphMe7aaT2Q2QxqQrFeFINxlkSxCOdMm" + "0ht7eXuTm5mLZsmWyVWIJIpGu1WpFT08PtFqtwIb30woAACAASURBVMA82YinZSy" + "WqNjv94OmaRQUFEQ97mV6WoX77tPjscd08KqswKlbgTX3AzpeOotV4Wull+" + "CBc36O6rzqmM5LDiSC+ELJn8loJafTCZ/" + "Ph717Z1MriXoLSaepEUAak67UH0usT5eQLfHXlUK2ZCJurBduKNLlT2tYunRpwiS" + "ToUjX4XCgp6cHDMOE9dRNZ4SLig0GA5xOJw4ePCg5V+xwAA89pMcDD+hhd/" + "mAzt8CX70TyDYLlluWsxYPfeeXWFJ2jODvqehDTpbhDX+" + "0UnFxMSYnJ9HZ2ZnQ0UoWi0WJdOcS+JEuP7KNpc+W+" + "HnGgkDSs1gs6OnpgU6nE53WIIZ4iD9w/" + "263G729vXC73VHZPCYayRJH8KNifuEuXFSckZGP114rx0MPFcE0DWDJH2bFDYWDg" + "m3X6ZbjgbPuwKl1Jyf8PKQiWQMi+" + "eCnNOIZrZSbmxu2t1hOYUQyMO9JlyjBDAYDR7axpBHi7bMlF4zVakVvby9UKhUWL" + "VoU1OAeDoQ44yFdYoZjsVjQ3NyM0tJSWW7GdGnXCURgTlcsKvb7GfzhDyx+/" + "escGI06oOnvwLk/AyqFRuIl6nps/" + "fpt+G7HOdzEBjGk4rtSqVQpId1IUavU0Upu96z8mT/" + "ah6QobDZbWr2hpS3pSrmAiJiARCvx5GzjFVnY7Xa4XC709PSgpaUlphxUPI5pRDq" + "6d+" + "9eNDQ0CMxw5hLmkgyYZYG339agqysbX3yhASr3ApduBJreESyXyRThey1X4FsVa6" + "F36XHo4KGg3OWRbc6Nc0sGYi3ehRqtxB/" + "tQ0YrdXV1YWJiAtXV1SgoKMCSJUuwfPnymFMpFosFV199NT7//" + "HOoVCo8+eSTOP7442PaViikLemGAyFbEtnm5OSgoaEhrm3GSrpOpxO9vb3w+" + "XzQ6/" + "Vxabhj6bXlfxcqlUrUDEdBMHbvVuP22zPw4YdaoKgfOPcXwJIXBMto2Sxcu+" + "w63HzSehRkzD5E+b4I/JlrRHSQnZ0NhmFSZiqeTMgtjBAb7fPnP/" + "8Zt9xyC8rKymCxWPDoo4/ikUceiXkf69evxze+8Q28/" + "PLL8Pl8nAeynEhb0hWL0gLJlgygHBsbi7s1KNr0gsvlQl9fH1wuF5qbm1FSUoKPP" + "vooruOI5hgYhoHRaMTQ0BAWLlzICTzm+o2e7Eg38Pfo7lajq0uPv/" + "xFB+RMAt+8E1j1CKA5UoxVsRqsa7kMXadtRGWucLZaKF8EUtEnqkJS0ee/" + "KidjEnEyEa+lqlR4vV6cfPLJ+OpXvxrXdqxWKz744AM8/" + "fTTAGZTTYn4PdKWdPngG8AQguH/2HIZmUuJdD0eD/" + "r6+mC329HU1CTImZJINZ5+yUiRLsuyGB8fh8FgwIIFCySPmT/" + "aMTamwtatejz7rA60xgGcvAU4YRuQIRxtflrlt3H3Gbejtbg1qu0T0UFBQQHMZjN" + "WrFgRMSoOHPMTK1KV0kimw5gc3Qvknrnyyivx2WefYeXKlbj//" + "vtlb59Ma9IlZDsyMoKqqqqQMlXSNhavkXk40uUXqBobG9HR0RFyikUi/" + "BtYloXJZEJvby8KCwuxcuXKqPtOIyFUlE48E8hYIDFrwbkKm02FJ54owpNP5sDt8" + "wMrHwJOvgPImRIst7TweNz7jTuwZuGauPbH7yIQi4rDjfmJNSpO1USPdLN1pCgKn" + "3zyCX73u99hzZo1WL9+PbZu3YrNmzfLcJRHkLak6/" + "P5sHPnTtHINhByGZmLEZ7P54PBYMD09HTEAlWipkfMzMygp6cHWVlZCRFW8PfNv4" + "koisLAwAAmJiZQX1+PmpoartBBrAX5No58c/NQSFZ6wesFtm/" + "XYevWxbBY1cDiF2fbv4r7BcvVZbXj7jN+iW80fEMW4oo0HijcmJ9Yo+" + "L5PB8NmHUAlIN0q6urUV1djTVrZh+s5513HrZu3Rr3dgORtqSbkZEhuc9WLtLl++" + "H6/" + "X4MDAxgcnIS9fX1aGlpiXhhyz09wmazoaenB2q1WnKvb6zgkyHDMBgZGcHQ0BBnn" + "g7MficZGRmCG4DfFM8nCyIVJWScLI9XhgH+9CctNm/" + "OwMCAarb9a93PgcpPBcsVa6qx+" + "fRbcFHHhdCo5SOOWPtl44mK9Xp9yuajyf22JQZiNh4vKioqUFNTg8OHD6OtrQ3vv" + "vsuOjo6ZDhCIdKWdFUqVdTChnhAtkFRFAYHBzE+" + "Po7a2tqobA7linSdTid6enpAUVTM7Wex7JumaZhMJvT392PBggWCN4xQuWZ+" + "U3xFRQWAI2Rht9vhcDgwNTUFl8vFzQ/" + "jR29yksUHH2iwaVMGPv1UA1TtBi7fCDS8J1gmW1WMjSf8FP+" + "z8vvI1MrvOyHnIEypUbHVaoXT6cS+fftkzRVHQjK9dOU6j9/" + "97ne4+OKL4fP50NjYiKeeekqW7fKRtqQLRGfvGO/" + "IHmD2NX7nzp2oqalJiZE5wzAYGhoCy7JcR0SyQPJd+" + "fn5IfPFUnOHfLLgj10i6QqPx4OxsTE4HA4wDCOanogmWvzii9n2r7//" + "XQuUHgTW3Qq0vypYRstm4drlP8RNJ6xHYWbiJKXJyK8GRsUOhwMDAwNoaWmRNVcc" + "Cenopbts2TJ8/PHHsmwrFNKadKUinkiXYRgMDw9jcHAQWq02LoFFrKTr8/" + "nQ39+" + "P8fFxLFiwQLRIJxXR3vR2ux3d3d3weDxYunRpWKKP98LXarXIyclBRkYGampquOM" + "N5RzGL9qJRW2joyr86ld6/" + "OEPOjB5w8BZXbPuX+ojUbmK1eCc+" + "otw1xmbUJFbEdfxS0Eq5LhkErBYVBwoOCBm5vz0T6xRcTJG9SRrHJCcOGpI1+" + "12R7UOv8+1oqICy5cvR09PT1KNzPmFqoaGBuTm5oKiqJhvWvJmIGV9MuLF4/" + "GgtbUVBoMhbN4sUUTCl36Wl5dzfyd9r/" + "yojSyrUhXg2WcrsX17LtyqaeDrW4DOh4XzyACsXXgu/" + "qf1YnQ2daIgNzkuVXKmF6QinBBDTHDAzxXb7XaYTCZOhpudnY28vDzk5OQgLy8vb" + "DtiMtIL6SYBBtKcdKPx1JWaXuBPSygrK+P6XH0+" + "X1ypAUA66fL7jvlTfsfGxrgBg7FAincDiapnZmYE3gzEbCfRkPqbikVtHg+" + "Nxx4D7rsvF2aHGzj+DuCEe4EMu2DdlYWn474zb8Py8uU4fPiw7OcQDqlo34pW/" + "RYqV0yiYkLEAwMDQf65pChKagCJjkLTzUsXSHPSlQqdThcxvcAXFZSUlKCzs1OQ2" + "5JzqnAokFlog4ODooMnE9VyBkAwdLK+" + "vh5tbW0CcohnhHuiwbLAG29ocfvtOegd8AGrHgS+" + "8isgRzhpo1ZzLH6y5EosyT0GrJFFj60HTqcTLpcLeXl5SYlAUyH/" + "latlLFxUTIqi/" + "KiY5OYLCgqQm5ubEJFOunnpAmlOulIjhnCEyR9NE05UIAfpaDQa0THs/" + "PE8paWlIVVk8Q6XFFufT/Sk51ksOplLRjR87Nmjxq23ZmDnbgBLnwGu/" + "yVQOCRYply9CNu+" + "eRvOaj2Tu2bI67PVasXk5CRGRkYAgIvWSC5TbqJIVaSbqIgzVFGUpmns2bMHer0e" + "U1NTMBgMgqiYb9kYzwNBId05CjHSJQquvr4+" + "5OXlJUxUEHgcxPGMHAOZGBGuK4BAzkiXjAbq7e1FSUlJRLlwvIQvFVLJ3WBQoasr" + "A6+8qgHa/wT8cBNQKkwV5LM16DrlFlyx/" + "IKgXlti4Tg5OYmFCxciPz+fa7Wy2+" + "0CoiDeroSMpQ5lFEM6pBfkgEajgUajwcKFC7m/" + "8adKBLYKBnZQSH3YKemFJCPW6RGE6LKzsxM6rSEQfNIkJuYZGRmSj0GuSHdmZgbd" + "3d3IycmRPIctWZFupP2YzcA992Tg0ce0oOreBr7/C2DhJ4JlMuky3Lj6Jqw/" + "8QpkaMM35/" + "NJMJQAgXi72u12jI2NcUMZY5E8p3N6IV7wp0oERsWkrzhcVJydnR10zyukO0fBJ5" + "ve3l7o9XosXrw4JgVXvC5hbrcbn3wySxLRmpjHG+nSNI0vv/" + "wSWq0WHR0dUe07WYW0UPB6gcce0+GeezJgKfgXcMmtQN2/" + "BctoqQJc3bEet639H+" + "Tq5VHnhfJ2JRMPxCTPfDIO7HlNVaQ7l93LQo2DjxQVG41GTExMoLGxMYVHHz2OCt" + "K12WxwuVwYGBiImuj4iMcljFg9Wq1WrFixIqanc6yRrsfj4QxpmpqaUFtbG9O+" + "U5HTZVnglVe06OrKwIBvL/" + "CtXwDNfxcso6KycG71tdj2nRtQnBXd2KFYSVBs4gGRPNvt9pCSZ4/" + "HE2ariUEqout4rxUpUfErr7yC9957D16vF3/" + "605+" + "wfPlydHV1xfVQo2kaq1atQlVVFd544424ziEU0pp0I325drsdPT09YFkWGRkZWL5" + "8eVz7I7nhaEjX4/" + "Ggv78fNpsNNTU1UKlUMb8ORRvp+v1+" + "GAwGmEwmNDU1cZLcWJCK9MKOHRrcemsGPh46CJy6CWj/s3BhWodT86/C7y/" + "6KRbmJV7YEAlic8DEIjafz4fp6WnBq7Pckmc+UpFeSFS7GD8qvvvuu3HzzTfju9/" + "9LlpaWtDd3R33W8T999+P9vZ22Gw2mY44GGlNuqHgcDjQ29sLv9+" + "P5uZmFBUVxW0gDhwhXSkmHn6/H/39/ZienkZjYyPa29vh8/kwNjYW8/" + "41Go2kSJfIhY1GI2pra7lpERaLJeYUQaQom7QOyTFWe2hIj02bMvH6vweAU34JnP" + "kCoOIRPqPGMvVFePzym9FWVh/" + "XvhKNwIhNr9eDYRhUVFRwRTs5Jc9iSGT3Qigk29axpqaGUzHGipGREbz55pu49dZ" + "bcd9998l0hMFIa9INvBhdLpdgwi2/" + "sZsQZjwtQFIiTb4hTl1dncB9TI7ug3DrsyyLsbExGAwGVFRUBLV/" + "xVOICxfpWq1WdHd3g6IoToVEClLRSEjNZmDz5hI89xcz6BOvBa5/" + "GlALz7fRfS4evWAj1jS1xXQegUh2jpXIgLVaLQoKCgTtTgzDwO12w263CyTPfAMg" + "vvggmn3Ol0g3EHJOAv7xj3+Mu+++" + "G3a7PfLCcSCtSZfA7Xajr68PDocjaFoDgRykG67fl3g0EEN1MfcxOSYKixEf38C8" + "qKgoSNhBEA/piq1LpMJerxetra1cKxVfQjo9PQ2n08m9evOLTOSm9HqBxx/" + "XYetDJtiWbQF++IRgPA4AlFn+C7856xZ8e9XSmI5/" + "roBl2ZBkRIpEgZMK+OkJk8kkKCjxv89Qktv5lF4IhFyk+8Ybb6CsrAwrV67E+++/" + "H/" + "+BhUFaky7DMPjyyy+" + "5AtHixYtDRi1y2jvywZcNl5eXh5xeAcTvTyC2PokyMzIyIvYayxXpktSJ2WzmpMI" + "AOImy2BhzmqYFbVezr9Msdu2qxoNPZ2Gs6V7gykeC/BHyJk9H1ym/" + "wNXfWBnTcUdCsiPdWPYXSpJL0hMTExPo6+" + "sDTdPIysoSPNwyMjJSkl5I1nw0h8Mhi4/0hx9+iNdffx1//" + "etf4fF4YLPZcMkll+D555+" + "X4SiFSGvSVavVKCsrQ3t7e8QLWQ57R36kyleyFRcXh4wuEwXiqUvTNNra2iSZfsg" + "R6Q4ODmJkZAR1dXVobW3lvneWZcPe3BqNRvA6vXu3Gjd32fBJ5m+" + "A8x8EdEJDIt348fhB043YdNtXkJWVeCPsZEGuV/" + "1QbVZut5tT2hmNRni9Xni9XgwODqKwsBB5eXkJ99EFkhPpyumle9ddd+Guu+" + "4CALz//" + "vvYtm1bQggXSHPSValUWLBggWTTG7kiXSKuyM3NxfLlyyWJC+" + "QCie5tNhtaWlqi8tSNlXRZluVUWmScCT+KIYTLsqzgwaZWq6FSqQQ3xcCACj/" + "f7MCb5geArzwA6J2CfanHOnFm1g246/" + "rjQVEO9PQchtfrFVg5EuKQa3zOXI90pYK4gGVnZ6OsrIz7+" + "yeffIKSkhJ4PB4MDg4KfHQTJXlORy/" + "dZCGtSTcayEG6Pp8Po6OjKCgowDHHHCP7lNBwoCgKBoOBG+" + "kuJboPhFqtjjrat1gsnBNXdXU1mpubuc8I2RIi1+l0AgIm/" + "03TNKxWFbb8xo0nDz4MpvOBIOcvjC/" + "DWt0mbPn+" + "KqjV06itLQNwhDgCTVVIXpNPxOkwCDMV4giWZVFcXCx4UPIdwxIheU6Gz22ivIlP" + "OeUUnHLKKbJvlyDtSTcZ0yMcDgd6enrgdrtRUlKCxYsXx7QdgmheMUmBbnh4GLW1" + "tZyvbKxztqRGui6XC93d3aBpGh0dHbDb7ZxZTyCxEutHAv7N5vUyeOhJB3717sPw" + "HHs/cFJA/+PEMVhuuQ2/" + "X78WixbNkrzZHHw8er0eJSUlgsieoihRVRhRLBHiCBfBJVvwkYpOArG0TyjHMLkk" + "zzRNJzzdZrfbYxY6pRJpT7pSEThYUgrcbjfXgtbS0gKGYTA1NRV5xTAgvbaRbjxi" + "Ndnf34/" + "y8nJuHpnRaIw5WpJCuj6fD319fbBYLGhtbeVIjvSRsiwLmqa5Ywh1HiwLvPymFRt" + "e+j3MLfcDawLIdrIDdQObcP81/" + "4WTv8qAYWjQ9GyumqZpzqw93D60Wi0KCwsFYhP+fDB+" + "BCdWYCLf4XxJL4SD1DFKkSTPIyMjnGlTOMlzMtILFosl7XwXgHlAunLYOwbC6/" + "Wiv78fFotFYORttVplywuHq+xOT0+jp6cH+" + "fn5WLVqlUCMQYp5sURL4UiXFMlGR0dRX18fNEpepVLB5XLB5XJxhBXqu/" + "9gjxnXPP0whiofBJYEpBFMbSj67DZsufi/" + "ccmvAXIaJLIGgKamJu6YAHDFS7LPcETMN62prKwEELrApNPp4PF4YDKZUFRUJFue" + "OBxSRbrxIBbJs9PpRGZmZkLPNx3NboB5QLpSIcXInIxVn5qaQkNDQxDxxNtnG2kb" + "NpsN3d3d0Gq1WLJkiWjOmKwfS9FDjHT5EXVlZWWQoIKkEvLy8mA2m/H555/D7/" + "cjKysLeXl5yM/" + "PR15eHjIyMvDlgBlXPf4QPs9+CKh3CHduakPGzk248Zvn4MevsCCmakSqTB5w/" + "DYzAFx0zf9fAIKxRaRgR/47EKEKTF6vF/" + "v374fX6+Xy5RqNJqifWM50QCrSC4lAJMmz2WzG+" + "Pg4hoeHue9UbslzOnrpAkcR6YYb2UPTNIaGhjA6OiqQzYptIxHTI4iSjogMwl1Ic" + "goczGYzuru7kZ+fH9TyFlgky8jIQFtbG/" + "cZ6WW0Wq3Y9fkBdL3zGr7MfgEoEnYjYGoR8K9bceny7+" + "L2F2lUVs7mUMkMupGREdTW1qKlpUU0IuKr+Qj4ETC/YMf/" + "Gxnnzt9GIDIyMqDX61FdXc29TZA8sd1uF7xK8yv9eXl5MfegpmOkKxV8yfPExATq" + "6+uRk5MjyL2Pjo7C6XSKSp6lyOv5UCLdFCGe9ALDMBgZGcHw8HDYqQnhthEt+" + "KTLz5+S9q9I5xNPtE1I1+l04vDhw1CpVEERdaQiGXAk92fymfGTlx/H/" + "1m3A4UBgz8nO4APNmFFxtdw8y1TWLlyGHl5+" + "WCYbM5ik4xFipbAxMiUkC55UATmnslxB6YnAkkwXJ6YVPr7+/" + "s5IQKfiKX4JKRiGnAqwM/" + "phvpOAyXPXq9X4MgWSfJss9mUSHcug0+YxKNgYGAACxYsCKsi40Ou9AIh2/" + "HxcdE0RjjEE+nSNI2ZmRk4HA60trYKXuVJFV9KkcxgMeCmP/8Wb40/C1bjA/" + "iZjvGlwAe/QBvzHdy1hcKpp3pht+dyjm8zMzNQq9UoKSlBZmYmXC6XLK/" + "woaLaUOkJ8juSlrZwr/" + "2hzM0JaVitVoyMjHA+" + "CXwizsrKEvy2yZ4GnKoRS5EKaZEkz2T4JWkNDExPaLVaWCwWQcEvXZD2pCuVrAhh" + "Tk5Ooq+vD4WFhVi1alVUbS1yuD05HA5u+" + "KOYP0MkxEK6ZOik0WiEVqvFmjVrgoiARIj8aDAQB00Hcfs/7sVfh18Cq6IB/" + "j01ugL4YBNKTN/Gpl/" + "QuPJKH2afY7OihqmpKVAUhRUrViA3NxcOhwM2mw3Dw8NwOGbzv4So8vPzw3oJRIN" + "Q6QmPx4Oenh5oNBrOSCiagh0/" + "T0xGwwcOaZycnITb7Ra0XPl8vqQSYapyyLH26YaSPJP0BJE8d3V1wWazobW1FeXl" + "5Vi2bBmqq6tjOtbh4WFcdtllmJiYgEqlwg9+8AOsX78+" + "pm1JQdqTrlSYzWa4XC5MTEwkZR4aH0Qy3NfXB61Wi6amppht6KKJtvm+" + "EAsXLsSKFSsEnqOBedtQZLtndA/u+te9eHvoL7N/" + "4C8yfDzwz03QDZ2BH11P48YbvSBvfKTHmHRE8CcMi71uEiIeGxuD3W7n8n6kWEde" + "4eMByd9PTEwIfCMiRcSAtIKd2JBGiqI4Ina73fj8888F0Rsh5ER4FaSycCfXfgMl" + "5ADwyiuvYMOGDaipqcGOHTvw0ksv4dlnn41p+" + "1qtFvfeey9WrFgBu92OlStX4utf/zo6OjpkOf6g/" + "SVkq3MINpsNPT09UKvVyMzMxJIlS5K6fzKPLDc3FytWrMDk5GRc25Ma6U5PT6O7u" + "1vgOub1egWkEo5sWZbFOwPv4N6d9+FfIx8E76D/" + "dOBftwCGU3HeeTTueN2LujqWW5cM/" + "SwrK8Pq1asjRj1qtTrIS4DflmQymWAwGLjOCT4R83tuQ4EM4uzv70dFRQVWr14tI" + "IVEFuy0Wi3XcjU9PY2Ojg5oNBqun5hvWBNvcSkQyZTjJhOkMH722Wdj5cr4zJAqK" + "yu59sK8vDy0t7fDaDQqpBsKoW42YghDURRaWlpQUFCAHTt2yPLkl1KBttvt6O7uh" + "lqtFsxj02g0cRnvRIp0HQ4HDh8+" + "DI1Gg2OPPVYw8FKlUoGiKC63LUa2FEPhlcOv4De7f4P9k/" + "uDd3DorFmyNa7BmjU0tj7pxerVRx4C5LwzMzOxbNmyuHwp+NFgYM+" + "t3W6HxWIRFGD4RMzPpZLCIZkeIpXIIhXs+DJnQFo/" + "Mbl2QhnWkIfMzMwMhoaG4PP5gqS5gXnicJgvLWpikNNLl2BgYACffvop1qxZI+" + "t2+Uh70g0EmQfmdDpDGpnH84qq0WjC+" + "vKSXCFRsQVeFBqNJq45WaGMzL1eL3p6euB0OtHW1hbUSkPyiDqdDrt27UJGRoagz" + "5bSUHj2wLN4cO+DGLYNCzfOaIADFwH//" + "hkwtRh1dQw2P+vFOefQIPe+1+" + "tFX18fXC4XWltbJbmexYJQuVSv1wu73c6lJ9xuN7RaLadua25ujlk+" + "zUcsBTsSEZPhnuHyxIHFJX7vq91ux/" + "j4ODweD7RarYCIc3JyRLebjvPRpELu7gWHw4Fzzz0Xv/3tbxN2/" + "QLzgHTJTeTz+dDf34+ZmRk0NTVhwYIFIY3M4yFdciMHki5/PE9zc7Po/" + "oEjpB0rPB4tbtnC4qKz1DjvPAYURWFgYACTk5OinsKBRbKlS5dCpVLB6/" + "XOpl4mevDUP5/" + "CayOvwUkH9Nj6s4BPrgZ2bAAs9cjPZ3HjHT5cdx0FEsDyc6QNDQ0xGfHEC35/" + "KHGdGx0dxeDgIEpKSqDX6zE5OYmBgQGuE4E8bOQSP4RKT/C/f5PJBJ/" + "Px3VLkPUiFezEBjQSaa7dbsfQ0BBcLhdH2nxhR6q8HpKxT7vdLhvp+v1+" + "nHvuubj44otxzjnnyLLNUEh70mVZVtB+xS/" + "WBCIRRuZ8YUWgx6wY4mk727dPhbNu3ofJr1yK9+7fjurqE0DTfaiurg4SdETK2+" + "6f3o8H9z6IVw+/" + "CpoNOB5nKbDnOmD39YCrFBoNiwsutuKWW3yoq8vmTIaIn3BlZWVQjjRVIKbuBQUF" + "6OzsDHo4kqIWISsifsjNzRWkJ+TIg5Lvw+" + "fzcSmflStXcnPSAp3YgCOTJcIV7ABxaW6gsTmZEwgAg4ODgn7iRCJZeWS5zNlZls" + "X3vvc9tLe3Y8OGDTIcWXikPemqVCoUFBSgoaEh4k0fTpUmFYR0WZaF0WjE4OCgJG" + "EFQSyky7LAgw9q8PPffQrqkssAnRvuMy/" + "Cpdsew2fPXojsbB1v2dBk66W8eOXwK3jk00fw8djHwTuabgF2/" + "AT47HLAP5sLXrvWj5/" + "9bBoVFWbYbDbs2uXifHOzsrK4VEaqCZekV3w+Hzo6OkLabvKLWgT8qRajo6OcuQ+" + "JGgkZRyu9ZhiGk5W3tLQI+qITUbATyxObTCZMTU0hIyMjKE/" + "M7yeO1cJRDMk0MJcDH374IZ577jksWbIEy5YtAwBs2bIF//Vf/" + "yXbPvhIe9IFgLKyMkkVfSn+" + "C5GgVqsxPT2NgwcPxjQxIlrSnZoCvv99Ld769xRwzdmAftaAGuZGZAx/" + "G2azDtnZ4ZVkg9ZBPPnZk3jmwDOYcom4pA2cPJtC6P4WwM7e0IsXM9iyxYevfY0B" + "kA8gn8uXezwe1NbWgqIojI6OcgVDEiWSPttkEDGZfDw+" + "Ph5yPl4kiLUkkc4Jm82Gqakp9PX1gaIozlmLnGeoohyZWVdRUYHOzs6w30W4PHGs" + "BTsClmWRmZmJiooKwd9IDjwwTxxoFB/" + "Lb5gML11CunI8KE466aSk9k7PC9KVinjTCxaLBZOTk8jKyoq515fkhKXgvfdUuOo" + "qHcbGWeDSi4G8/4xvdxfhXM9f8Nj/FSEnB6J2iz7ah7/1/" + "Q1P7X8K7xjeAYuAi4rSzxbHdq0Hxpdxfy4rY3H77T5ceikNct/" + "QNM1FbKGIjaZprpDFFzwEErGcNyMhw/" + "LycnR2dsq67VCGLqS7gN85QaJG0r5GcsdydG/EWrAj14FY1BmYAyfw+/" + "1cPzGZMKFSqYL6iaV46SZ6PprD4UhLL11AIV1JICbmDMOgoqKCa9uJBdLGuAN33K" + "HBPfdowLIqYMUTQOP/zX7IqnBV/m/xcFfTf8iWEUT5+yb24YUvX8D/+/L/" + "weQ2BW/cVgXs+SGw9/" + "uA68gNl5nJ4oYbKGzY4Ae5lokD2cDAAKqqqsLmbTUaTZDggby222w2GI1GbrQ1X3" + "kWS/" + "7U6XRybmzxEls0YOn7PwAAIABJREFU4HcXkMiRRI1WqxXDw8Ow2+" + "3Q6XTIysrC0NAQd55y2UZGKtgFErHb7ebIN1xEDMy+CYYaKEqUlPzUC5+Ik+" + "2la7VaE9phkEjMC9KNxvQmGiNzj8fDjXYnObnh4eG4/" + "Bcike7gIHD55Vrs3Pmfi1ZNAad0cZ9f0XwD/" + "qetnauAsyyLA1MH8Hrv63j18KvoNneL73dgLeid186mEBjhz37BBRS6uvyorj4SD" + "VssFoGnbyxWkqFe2/" + "nKs+7ubjAME0TEYpESGVk0MzOD1tbWOeEwRXyGDQYDysvLsWLFitk3jf/" + "IgUl6gthG8iP/" + "UG1e0UKMiPktfG1tbTEX7MKlXoiX7sDAgGDUT2CaKxFIV1tHYJ6QrlRIHdlDbu6p" + "qSk0Njaio6ODu3i0Wi3cbneELYSGWq0OmT969VUVrrlGC5uNdwMs/" + "BjIN86uq1Lj+hMuxUf7PsKbY2/" + "igO0AdozvwJhzTHR7RZoq0Hsvh+39q0FbGoI+P/" + "FEGlu3+" + "rFixZFI2e12c1OGwxWkYkUo5Vlg1Z2oswgJu1wujIyMoKamBs3NzXPCqcvj8aC7u" + "xssy+" + "LYY48VvP2IjRcibV42mw2Dg4NwOBxQqVQcEcvROcGyLCYmJmAwGFBfXy9o4RNzYh" + "Mzio9UsAuVeiGjfkZHR+" + "HxeLB7925uoCiJiOWaRJyuUyOAeUK6ck2PIEUZo9EY0ldXjrazQHg8wIYNNJ58Mj" + "vos+JyJ8jIMIZlsOq5VWG3laPNwXGF38bwm5eh+621ABt8Azc2Mti82Y+" + "zzz4ibiAPGrPZHCQqSTT4RbiFCxcCmL2JnU4nJiYm8MUXXwCY/e6np6fh9/" + "s5Mk7m2HsCfvGO798QCaHavAgR8zsnSORP/" + "kl503C5XDh06BAyMzNF306kFOxIfYAcGyDdAIiM+iFFucrKSvh8vpCuYfx+" + "4mgfNOnqpQvME9KVilCESaweDQYDKioqwlo9ymHvyMdnn3lwySVa9PQER5RnnEHj" + "d79fga/9uRZDtqGQ2yjKLMJptafhWN1a/HP7t/DuWwtFlyssZLFxox/" + "XXEOBcBVpfRseHkZNTQ1Wr149J6JIv9+PwcFBeDwezpmMX8gir7U+n0/" + "gxRCuo0AOmM1m9PT0YMGCBbIU70K9vpPInxglkc4J/" + "nmSBw4ZtTQ5OYnW1taopbFyFOz4oGma+" + "w30en1QnpiiKO78iKk5y7KCmWuRHjQK6aYJxNILJpMJPT09KCwslNT+JVek6/" + "f7cf/" + "9Ztx5ZxU8HuGNq9Ox2LyZwnXX+" + "QHo8Ob5b2Lzh5ux07gTbsqN0uxStBW3YUXFCnyl5itoyFiB+" + "7Zl4c5HtPD5gglTq2Xxne+" + "M4oILelFersXw8OzrPbF8LC4ujjlvKzeIM9nY2BgaGhpQVlYmMCEXK2SJeTFkZmY" + "GEXE8DxPSB0xRFJYuXZpQl7pQkT/" + "fl2FwcBA+" + "nw8ajQZutxvFxcVYsmSJbMcVbcGOv16kljGtVhs2T2wymQR5Yj4Rk98xnUlXFaE/" + "LTUOyFGCYRhJuVqGYbBr1y4cf/" + "zxnHJJr9ejpaVFYAwTDi6XC4cPH8by5ctjPta33/43fv/" + "7xfj734Mj0oYGBs8848Py5aFNaQh8PuCJJ7S46y4dzGbxZb71LQp33ulHSwvL5d2" + "mpqYwPDzMDcgkERT5l8hIMRzIQM6ysjLU1dXFHEWS8ySFLLvdDo/HIzDFyc/" + "PlyQIINNFRkdHOXn5XIDf70d3dzdcLhcqKirg8/" + "lgs9ng8Xg4I3VyrokcuBlIxA6HA4cOHUJbWxtycnIkF+zEwP8dSSubx+" + "PBI488AqvVivb2dlx77bVobW2N643jrbfewvr160HTNK6++" + "mps3Lgx5m3xEPILP6pIFwD+/e9/Iy8vD36/PyZjFq/XiwMHDmDVqvC51UCQAsc//" + "jGOO+5YjOHh3KBlzjuPwv33e5CfH55sWRb4y180+MUvdOjrE7+Ily+" + "ncdddfnzlK0eKZMQfwmq1cmY8/" + "HlnhKT4kWIyiJhMAlar1WhpaUlYFBlIxG63G3q9XkDEfAcvi8WCw4cPo7S0FPX19" + "XPCIpHfxtfQ0CBq4sMXPthsNoGROjlXuTonCBiGgcFgwPT0NNra2pCXlxeUK+" + "ZDSp44FIxGI7q6upCdnc3li//617/GdNw0TaO1tRX/+Mc/" + "UF1djc7OTrzwwgty2DqGJN15kV6Q8hQnLTRutxuLFi2SXPwIRCzphZmZGRw+" + "3I133qnDtm2r4fEIjzczk8W2bT5cdpkfanVosgWAjz9W45ZbdPjwQ3ECqKpi0NXl" + "x7p1NMi1zB8CGegPwS+A8F27+IMnA1/" + "Z5SJimqa5GzVQJpsIiAkC+" + "O5kExMTXGsXmTYsdXZdMuB0OnHo0CFkZ2eHTQeJGakT4YPdbuc6J/" + "gFrXjEK+ThVF5ejlWrVsU8OkkqEVdVVUGv1+" + "Oaa67B6tWroz5ePnbv3o3m5mY0NjYCAC644AK89tprCfPSBeYJ6YYDceGamJhAY2" + "MjZmZmYiZcILpxOaSJ3+FQ4ZFH1uBPfwomqbY2Bs8+" + "68HixSxUqtAX2uCgCrffrsP//q/4T5aby+KnP/" + "XjRz+iwA8UiRx1wYIFkszEgcQTMT9aI9FFqrwb+" + "ATFsiw3qLS8vBxqtRqjo6Po7e0VRIpE7JCsY+" + "Z7OIjZdkpBKOEDIWIiXmFZVlLPNDB7bxEb1SVLlkRM0UlxYpNKxHJ56RqNRsEUl+" + "rqauzatSvu7YbDvCBdsSiE5OKGhoZQU1PDzSMbGBiIy3pOSsRDBk9arVb4/" + "e344Q9L0dMTvL9LLvFj2zYvcnNDR7cWC3DPPTo8/LB4kUytZnHllRRuvdWP//" + "AjgFkVHclZy6HakouIbTYburu7kZOTwzluzQVYrVYcPnwYxcXFWLNmTdDDiUSKNp" + "sNBoMBTqdTYBMpp9iBD7PZjO7ubkkeDtFCTEVIOidI5M/" + "vmeYTMZnIUlNTE9bZLxJiLdhNTEykbSFtXpAuHyR32t/" + "fjwULFuC4444TPKnl8NQNBb7NY319Az76aDF++" + "lNtUDohO5vBDTccwtq1Exgenr2QCwoKBDetlCLZGWfQuPNOHzo6juTLCOGTib+" + "JVO1EQ8QZGRnw+XxgGAZtbW1J7QMOB5/Px5n4LF68OKQYRCxS5NtEBr6y8/" + "16Y3ll9/l8nGtaoPAikQg1+ZiY/0xOTuLzzz8HwzDIz8+H1+vF1NSULB0i/" + "GMAxJ3YPB4P7rvvPgwPD8tSZ6iqqsLw8BHT/" + "pGREVRVVcW93XCYN6SrUqm4uWD5+flYuXKl6I9C7B3lJF1+n+/" + "ChQuxZMlx+PGPM/DHPwbfbB0dNJ57zotFi+pB0zVc9HREoaTG7t21ePjhagwNiR/" + "jkiWzDmCnnXYkzUEa9kmrVTRj3eVEIBGTFrCRkRGUlpZCrVZjcHCQG+" + "mTqq4Jfn9yY2OjoDVNKkLZRBIiHhkZEUw6luLXS66lwcHBmI9LbpBpHaQtb9GiRS" + "grKxMUJo1GI9chwhd1yOk5sW/" + "fPqxfvx5nnXUWDAaDLC2OnZ2d6OnpgcFgQFVVFV588UX88Y9/jHu74TBvSHf//" + "v2gaRpLliwJK12Vw96RP3aFtDkR0+y+" + "vgycfLIWBw8GvwZefrkf27b5QVJfga93O3aosXGjFnv2iP8s5eUUbr3Vhcsv10Cr" + "PTLRlwxcLC8vl5y3TQaIkKC0tDTIbzhZxToxBBqdy+" + "mIFc74J9CvN5CIvV4vDh06hJycnDnTNw3MRpcHDx6EXq8XHBd5uJaVlXHLihUmtV" + "qtoEMk2ny41+vF3Xffjffffx/bt2/" + "H0qVLZTs3rVaLBx98EGeccQZomsZVV12FxYsXy7Z9McyLljFgtmgl5eY5dOgQFix" + "YENfr7Z49e9Dc3AyDwQCVSoXW1lbk5OTgxRfVuO46LZzOwHQCiwce8OHCC8WVbD0" + "9Ktx2mw6vvx66SHbttTasWzcKv9/" + "KXciZmZmw2WzIyclBW1tb0ty2IsHtdqO7e9Z4p7W1VfKrcaLb1/" + "x+P3p7ezkTGL53QLLBz51arVaYTCb4/" + "X4UFRWhuLg4ZuN0OUEKi0ajkeviiAX8fLjdbufy4VLSMJ9++inWr1+" + "Pc845BzfddNOceRBJwPzu0wVmf1gpXQW9vb3Iy8vjcpDRwuv1YufOndDpdGhvb0d" + "RURG8XuDmm7V49NHgi2bRIgbPP+" + "9Fe3vwVzkxAWzdqsP27VrQtNg8NRZXXUXh5z8XFsm8Xi+" + "6u7vhdDpRWFgIr9cLl8vF9ZySf3JOA5AC4rtrMplk82/" + "gEzG5aaMlYjIzbWhoCPX19aioqEj5KzsBKZRVVlaiqqoq6FzFiljJKD46nU4cPHg" + "Q+fn5aGpqkv3tiZ+GsdlsXBomJyeHm9z80UcfYc+ePXj00UdxzDHHyLr/" + "JGD+ky5FUZI8EQYGBqDValFdXR3V9gmhjI+PQ6vVor29Hfn5+RgaAi6+" + "WIc9e4Jfly68kML99/sQmO1wOIAHHtDi/" + "vt1cDjEf5szz6SwebMfbW1HfgL+" + "EMjGxsag4Zdk2CT5x1dh8YlYbvDnpVVVVaG6ujqh7VTRELHdbsehQ4c48ki0ubZU" + "+Hw+dHd3g6IotLW1hXwb4BexyLn6/" + "X4BEfN9GOIF38dh0aJFSbVPJLaf27dvx6uvvgqTyYTCwkIsWrQITz75pGTV6ByBQ" + "roERqMRfr8f9fX1krZLCi6kp7S2thaHDh1CZWUlPvmkGJddpsP0tPD7zciYFTtce" + "eURFy8A8PuBp5/" + "WYssWHSYnxX+TlStpbNnix0knHYna+" + "XZ9CxcuRE1NjWRS45OT2Ot6QUFBXDes3W5Hd3c3srKy0NzcnLIWsEAitlqtXPRUX" + "l6O0tLSlEqc+cdJou6mpiZBPjSabbjdbkEahhj/8CPiaLsJSNscUeAlu3fa4/" + "Hgrrvuwo4dO/" + "Doo49i8eLFoGka3d3dKSsMxwGFdAkmJiZgt9vR3NwccVlihlNUVISmpiYun3To0G" + "G88EIt7rmnAAwj/G7r62fTCcuXH/" + "nqWBb485816OrSifbrArOeC11dfpxzjpCoSdEnLy8PjY2NcZNaIDmRG5bvvyDlFd" + "bv96Ovrw92ux1tbW1zxsWfX/2vra1FUVGRIJ+YbIkzH8SXIC8vT/aoO1w+nE/" + "EYiknmqbR19cHm82G9vZ22T2UpWDPnj3YsGED1q1bhw0bNsyZN5I4MP9Jl6ZpSV0" + "J09PTmJycRHt7e8hl7HY7Dh8+DJ1OF2SGY7cDF17oxTvvBJPMN79J4/" + "HHveALZd5/X43bbtNh717xnFhpKYuf/" + "cyPq68+YrcIzD71e3p6OI+IRBZ9+JET+ef3+5GTkyMgYp1OxxVXRkZG5lx+" + "lPxuubm5gockH3LkiKMFkTubzWYsWrQoaQ8oMkqIT8T8tq78/" + "HxO7VZdXY3q6uqk/5Zutxtbtmzhcrfh7ss0g0K6BKQndsmSJUGfkWm3pLodmM/" + "q7gbOP1+HQ4eE0apKxWL9+mncfDONvLxZgcOnn6rwy1/q8c474mSblcXi+usp/" + "OQnfvB3Q2TL09PT3BDIVCAwl0giYp/" + "Ph7y8PNTX16OwsHBORCQURXGRWixRdyKJmLQUkrTQXHhAeb1ezMzMYGBgAF6vFzq" + "dLsj4J5HOZAS7du3CjTfeiIsuugjr16+fE9eSjJj/pCvVaUzMmpE/" + "nofk2fgXHMuyeOst4IorMmC1Cr/" + "LoiIWDz1kxvLlU7DZbDh4kMEzzzTivffEc3VqNYvLLqNx661+" + "LFzIT0EceS2urq5GVVVVyvwIAkHG0tA0jZqaGs5G0GazCfpNYx00GSv4Hg61tbVY" + "uHChbEQRLxGTDhOiwJsr7XwAOMUm/" + "02FP9PNZrOJ9tfm5OTI8v263W7ceeed+OSTT/" + "DYY4+hra1NhrOac1BIl8Dn8+Gzzz5DZ2cn575F/" + "BkCq+5k2u7992uwaZM+KH+7dCmDF1/" + "0oq6OxdCQClu36vD88xrR9i8AOO00C37+cweWL88S5NZmZmY4gUVjY+" + "Oc6UUkJueTk5Mhx9KQflOr1cq1/hDTFD4Ry/" + "0AcTgcOHz4MLKzs9Hc3JyU7ywUEQcWsEwmE4aHh9Hc3Dxn/" + "HcBcOILjUaD1tZWSXn7QCKOd7jmjh07cNNNN+HSSy/FDTfcMGeEPAnA/" + "CddlmXh8/kiLscwDHbu3Inm5mb09vaitLQUjY2Nglcb4v/" + "p8TBYv16P554LvqHXraPw4IM+" + "WK3Atm06PPmkuCENAHzlKzQ2bXKhrW2GIyePxwOdTgev1wutVhvTmJVEga9yq6ys" + "jKpbApj9jvk3K+" + "ki4Lc45ebmxkTE5K3EYrEk3FtCCvhEPD09jYmJCahUKhQUFMwJY3hyjKRjoqWlJa" + "6UFfGbIA8d4jfBJ2Kx39blcuGOO+7A/v37/" + "3975x7U1Jn+" + "8W8QkMglAnINoHJJuHjhurVd3Xa2rXZcx6XWuug6aC3j1Falo3UV3Vbcdiy61kvr" + "2mq1dGqr9rI7umOtTscdbetoABVXJBAQWCBc5JKEQEhCkvP7g997ehLukJwT4Xxm" + "/ANnJE+Q8+R5n/f7fB+cOHECEolkrG/" + "L2eGTLkGj0aCgoABBQUH9GmaTxXwqFYXVq4W4ft36k9jFhcJ77/" + "UgI8OEQ4fc8OmnfQ1tCHPnWrBnjxHPPWexkY710BcrAQEBsFgsfVQEIpGIk4kk4k" + "42efJkREdH2y1ZEDE8MxEzNwMPNR7K1AKHh4dDLBY7RX8U6H1vVVVVtC+" + "Bl5fXkBUxW4lYp9NBLpfD09MT0dHRDumbMv9vSSIGesflr1+/" + "Dl9fX5w6dQqvvvoq3njjjfFc3TLhky5ZLW4wGKDX67FgwYI+/" + "574eSqVAixbJkRpqXUCEIko7NtnxIMHLjh50hXd3f3/" + "XGNiLHj77R68+OKvRuJAbwXY0NCAurq6fnuQ/" + "V1emc1mVnqmZKtER0cHaxUks2rq6OhAV1cXJk2a1CcRkz68h4cHp1rg/" + "iB+xWQoZOBtH0O3JuyZiIkBUnNz86g9eMcC+" + "SDKzc2FXC7H5MmT4e7ujnXr1mHDhg2sxsIR4z/pAr09K1tIMiHbCaZNm4abN2/" + "iqaeeAmCdbAGgqsoFS5Z4oK7OdvU6hfnzLbh50wUGQ/8/" + "z4gIC3JyerBqlRm2BUVbWxsqKyvh7++" + "PGTNmDLvisJ3RJz1TexzVAWu3renTpyMkJITTCpLZR9RoNFCr1TCbzZg2bRoCAwP" + "7rNThCoPBgPLycgC9/hKjuShzVCLWarWQy+Xw9/fHzJkzWb+QpSgKv/" + "zyC7Zv346srCxs2LABkyZNgsFggEajGdVAyGPIxEi6RqOR3sXEtBSMiIiwUgPcvH" + "kTaWlptFsY0HsUqqlxwcKFk9HQMLJf0tBQC7ZtM2HtWmutLfDr9ohJkybZbf8Xca" + "1iXl4xj+oikWhYkh+" + "1Wg2FQoGpU6f26WtzCekpP3z4EGFhYQgKCupzocOVzwTTBMYRiyoHGl4ZTiImemC" + "VSoW4uDhODH06Ozuxe/" + "duKBQKnDhxAlFRUazH4CRMnKRrsVjw6NEjPHz4EIGBgX2qSoqiUFRUhKioKLpCFA" + "gEUKuBp5/" + "2QGXl8BNuSIgFW7aYsG6dCbaFDnNiKyYmxuHHO5PJZPWg6nQ6uLm59ZuYiB6ZDF5" + "wMYE0EKSV4ObmNugNO5GtMS8mbX0m7GWqTSA+DuRDik1p3FCJmKIo+" + "uIzIiKC9ZMARVH4+" + "eefsWPHDqxfvx6vvfaaQyvsdevW4eLFiwgMDERJSQmAXvOgP/" + "3pT6ipqcGMGTPwzTffcHk5PTGSbktLC724Lzo6us+" + "Rj1yStbS0oKGhAd3d3fSDum/" + "fTJw54z3Ad7ZGLLZg61YT1qzpm2zJmiClUsn5xBZTT6vRaKDX62GxWGAymSAWixE" + "eHs65FwGB6VA2WiXHUD4To+" + "2ZkjFZjUaD2NhYq60KXEESsUqlQm1tLb163dYIh43/" + "X61Wi3feeQdVVVX49NNPh+1rMhZ++ukneHl5ITMzk066f/" + "nLX+Dn54cdO3YgLy8PKpUK+/" + "btc3gsAzAxkq5CoYCfn1+" + "fh8K2b8tcb04e1DlzwqDVDn68lkgsePPNHqxcae7TRqAoCq2trXj48CECAgKcZmU" + "38GtsRCLn7e1tZZTC9F3w8fFhXTFBWgmhoaF2dSgbrEJkKkQGu5hraWlBZWWl0yk" + "mgF9jI714oO8HD/" + "P9kmRsr0RMURSuX7+" + "OnJwcbNiwAevXr2e1f1xTU4MlS5bQSVcqleLatWsICQlBY2MjnnnmGbrvzgETI+" + "naeuoOlmxtSU316HfbAwAkJbVj9epWLF4MTJ3a9+JKq9WioqIC7u7u/" + "VbYXEJ6ym5ubgNW//" + "0pJjw9PWmtqaMUE93d3SgvL6fF+" + "mxUZf35TJhMpj6GP2azGeXl5XBxcWEttuFiNBpRVlYGoDfRDOUl7IhErNVq8de//" + "hW1tbU4ceIEpk+fPqb3NBpsk+7UqVOhVqsB9L5vX19f+" + "msOmBhJlziNjSTZEq5ccUFm5mTa3zYiwoJly8zIzDQhJsZsdaPOXECo0+" + "lgNps5keUMhslkorWjEolkRLENpJjw8vKiE/" + "FYFBNk0q2lpQUxMTFWyx65gPnBQ7Y4GAwGiEQiBAQE0MmJ64tG5qj4aG0hyfcZbS" + "KmKArXrl3Dzp07sXHjRrz66qucjasPlnQBwNfXFyqVipPYMFGSbk9PD0wmE726eT" + "jJlklbG6BQuCA4mMKMGRQG+qcWiwXV1dVobGyESCSC2Wy26g+" + "TxMRFdWRrbWgvPwKimLD94GG2JYYzm0/" + "aHMHBwYiIiHAafwmg1wyprKwMfn5+mDFjRp/" + "ExKXPRHd3N+" + "RyOe1bbO8W0FCJuKSkBBKJBMeOHYNSqcTx48cRERFh1xhGCt9ecAK2bdsGLy8vpK" + "amIiUlBd7e3nbtwZGpqOrqagQHByM8PNzqobM10Sb9UuZIqCOrJeK96+" + "Pjw4qHg61ioquri1ZMkPdMFBNkbxrZKedMLRjiUqbVaumJsv5gngCIrtbRPhMURa" + "Gurg4NDQ2QSqWs3saTRKxWq7Fjxw4UFhbCbDYjOTkZzz77LDZv3sxaLP1hm3S3bd" + "sGf39/+iKtvb0d+/" + "fv5yq8iZF0y8vLcevWLchkMty5cwdGoxGzZs1CSkoK0tLSkJCQMOpE1NHRAYVCgS" + "lTpiAqKmpYVaztsZVUS+T4JhKJxnRMJxgMBlRWVsJgMDjce3coBlNMEM9WZ+" + "qPEnnhaE8FjvSZ6OzshFwuZ12ixkSj0WDnzp149OgRPvnkE4SFhaGmpgb19fV9pj" + "rZZOXKlbh27RpaW1sRFBSEPXv2ID09HStWrEBtbS2mT5+" + "Ob775hsvW1cRIurbo9XoUFxfj1q1bKCwsxIMHDzBlyhSkpKQgNTUVqampmD59+" + "qAPBNG0Go1GxMTEjFkuZPuQarVa+phOqsPhepmSUc+mpqZ+" + "d6ZxTVtbGxQKBb0qR6vVWp0AuFRM6PV6lJWV0WZD9hwtHshngpmIB3PnIu2rtrY2" + "xMXFcSJRoygKP/74I9555x1s2bIFmZmZTtUKegyYmEnXFoqi0N7ejsLCQjoRE//" + "atLQ0Ohn7+vqis7MTFRUVMBqNtJm4oxIaOaaTalin01kJ/UUiUZ/" + "qkPRGAwMDMX36dKeRpwG/" + "+u9SFNXvCnaiICDvl6mYYEq5HPGeyKRiY2PjmNaKj5Th+" + "kyQPWVBQUGc9bzVajVycnLQ3t6OTz75BGKxmNXXP3ToEE6ePAmBQIDZs2cjPz/" + "fqdpRw4RPugNB1pXIZDLIZDIUFhairq4OFosFy5cvx9KlS5GYmMj6fzqZU7ftDwu" + "FQqjVakyePNnpzLGZlfdA/ruD/" + "dvB+qX2aMWQhEb8L7j+" + "oLL1mVCpVKAoCoGBgfD392fdZ4KiKFy5cgW5ubl46623sHr1ataTvlKpxPz581Fa" + "WgqhUIgVK1Zg8eLFWLt2Latx2AE+6Q6XZcuWITQ0FC+++CIUCgVkMhn++9//" + "wtXVFcnJyUhOTkZqaipiYmJYfWh7enpQUVGB9vZ2eHt7w2AwOKQ/" + "PFra29tRUVGBgIAAu1Xeg7ViRqKYMJlMqKysRFdXF2JjY51q7Bn4dQFqeHg4AgMD" + "OfGZUKlU2LFjBzo6OvDxxx8jNDTUrt9/uCiVSsybNw/" + "37t2Dj48P0tPTsXnzZixcuJCTeMYAn3SHS1dXV5+" + "HkqIoaLVaFBUVQSaToaCggD7aM/" + "vDQUFBdn8YmCtpbJcHWiwWK+" + "ObsfSHRwtZS0O0yvYw9BkMckxntmLIWhnyvklSYnrwOoODmi1Go9HqZzfQqYV5Od" + "nR0WElTxyrzwRFUfjhhx+wZ88ebN++" + "HatWreK8d3vkyBHs2rULQqEQCxcuxFdffcVpPKOET7r2hrjxk7ZEQUEBWltbERMT" + "Q0vWkpOTx5T0Ojo6UF5eTq/" + "sHs5lE1PGpdFo6EqJJOH++sOjgXhMNDQ0OMRtayT0l5Tc3Nyg1+shFAohkUicwi+" + "BQFEUmpubUV1djcjISAQFBY34e+j1eqsPn9H4TLS3t2P79u3o7u7GP/" + "7xD3qUmEtUKhVeeuklfP3115g6dSpefvllLF++HKtXr+" + "Y6tJHCJ102MJvNkMvldG/" + "4zp07MJvNmDNnDl0Nx8XFDanVNRqNqKysRHd3t10SBlnDzXxAmRsqRqofVqlUtCr" + "BGXqjTEhfuaGhAcHBwfRWDuJTy9RMc7GLTq/" + "XQy6Xw93dHRKJxG4xDDXcQP64u7uDoih8//33ePfdd7Fz505kZGQ4zQng22+/" + "xeXLl3Hq1CkAwBdffIFbt27h2LFjHEc2YvikywXklv727dsoKCiATCZDWVkZRCIR" + "rR1OTU2lvX4NBgOUSiWam5sRGRnZZyuxveOyVQ8wx3z7E/" + "kbDAZUVFSgp6cHUqkUU6ZMsXtsY0GtVqO8vBzTpk3rY97N9Fwg75upmCB/" + "HPUBwvThZUs1YeszUVNTg61bt8LDwwMuLi7YvXs3nnvuOacaX5fJZFi3bh2PobWN" + "AAAOTUlEQVQKCwshFAqxdu1apKamYtOmTVyHNlL4pOssEMcvZltCqVTC29sbzc3N" + "2LBhAzIyMuDn58dq9UH6wyQp2V5a6XQ6eiuws+" + "mBe3p6UFlZCZ1ON6KLMoqirDYZO0IxAfTeE8jlcvj4+CAqKoqTkwFFUfj3v/" + "+NvXv34pVXXkFgYCBu374NHx8f7Nmzh/" + "V4BmP37t34+" + "uuv4erqiqSkJJw8edKpBmqGCZ90nRWLxYKMjAx0dHRg0aJFqKqqwu3bt6HT6ZCQk" + "EC3JWbNmsX6L57JZEJDQwP+97//" + "YdKkSRAIBPRNOnPMlyuYvVF7eRcPpJjw9vam3/" + "NwFBPke5EV9rGxsZxtLm5tbcXWrVshEAhw9OjRibIuh2v4pOvMVFZWIjo62urvjE" + "YjiouL6Wq4pKQEHh4eSEpKohNxZGSkw26ajUYjvchTKpXS1eNQ/" + "WG2Nhh3d3ejrKwMkydPRkxMjENfcyjFRH96WqIJJn1vLhQBFEXh/" + "PnzyMvLw9tvv42XX36Z1ROKWq1GVlYWSkpKIBAI8Nlnn+HJJ59k7fU5hk+" + "6jzsURUGtVqOwsJC+" + "qKuqqoJYLEZycjI9UTfWyTnmosrh9JVH2x8eLczqcbQbJuxBT0+" + "P1YcPkXF5e3ujq6sLRqMRCQkJnGmCHz16hK1bt8LNzQ0fffQRJ+" + "qSNWvWYMGCBcjKyoLRaIROp3Oq/" + "rGD4ZPueISMtN66dQsFBQUoLCyEWq2GVCqlL+rmzp077KkmUp35+" + "vpi5syZo3ZEs+" + "0Pd3Z2QiAQjHhxpi3kooyMPnOtJ7WlqakJFRUV8PT0BEVRfbZUsKGYoCgK//" + "rXv7B//" + "37k5uZi2bJlnPTfNRoNEhMTUVVV5VT9fxbhk+" + "5EwWQy4cGDB7S3RHFxMQQCARITE+lBDqlUanWZw7yIkkqlDnEpsz2id3V1Dbs/" + "TKbx9Ho9YmNjnU410dPTA4VCAaPRiLi4OPp99KeYMJlMVls57KmYaG5uxtatWyEU" + "CnHkyJERjWHbm+LiYqxfvx7x8fG4d+8eUlJScOTIEaebBnQgfNKdqFAUhc7OTty+" + "fZtuSygUCvj7+" + "yM5ORk6nQ7t7e3Yu3cv60s0jUajlb9Ef1ra1tZW1NTUYObMmQ6Z+" + "Bsrzc3NqKqqGvZFHlFMMFUizHHu0bRjLBYL/vnPf+LAgQP429/+hvT0dM5/" + "TkVFRZg3bx5u3LiBJ554AtnZ2fDx8cG7777LaVwswiddnl+" + "hKApXr15FdnY2RCIRPD090djYiOjoaLotkZSUBC8vL1YfXmZl2NbWhkePHkEgEMD" + "Pzw9Tp06lL+" + "qcoa1gMBhQVlZG73cbizXkYIoJchIYSDHR1NSELVu2wNvbG4cPH2bNNW0ompqaMG" + "/ePNTU1AAAfv75Z+Tl5eH777/" + "nNjD2GPDB4XbpE0dcvnwZ2dnZMJvNyMrKwo4dO7gOiVUEAgHc3Nxw7tw5zJ49G0D" + "vNJ1CocCtW7dw4cIF5Obmwmg0Yvbs2XQijo+" + "Pd2hPUiAQwMPDA01NTejs7ERSUhJ8fHxoLa1SqYRWq4VAIBiVhMsekPHv2tpaxMT" + "E2OUI7+LiApFIZCUpY1pBVlVVoauri1ZMNDY2Ytq0abh//" + "z4OHz6M9957D0uXLuW8umVCNquUl5dDKpXi6tWriI+P5zosp2DCVbpmsxkSiQQ//" + "vgj7aN79uxZ/heiH/R6Pe7evWtlAu/l5WVl8mNPz1eVSoXy8vIh96eZzeY+/" + "sNkTRDTX8LeSUin00Eul8PT0xPR0dGsL6okionPP/" + "8c3377LZRKJebOnYunnnoKGzduRHBwMKvxDEVxcTGtXIiMjER+" + "fj5nahMO4NsLhJs3byI3NxdXrlwBALz//" + "vsAgJycHC7DeiygKAptbW1WJvC1tbWIiIigTX5SUlLg6+" + "s7ooRHNMFGoxGxsbGjciobTn94tFU68XNobm7mdOuzxWLBuXPn8OGHH2Lv3r34wx" + "/+gMbGRhQVFWH+/" + "Pmcb1XmsYJPuoTvvvsOly9fxsmTJwEAp0+" + "fhkwmw9GjRzmO7PGErJYhY81FRUXo7OxEfHw8XRHPmTOnX2UCc3Oxvb0miAGMRqO" + "x8lqwHfEdSjmg1Wohl8vh7+/" + "fx8+BTRobG5GdnY2AgAAcPHhwIlWMjyt8T5fHMbi4uCAqKgpRUVFYtWoVgN6q8/" + "79+5DJZMjPz8f9+/fh5uaGpKQkuj/c3d2NoqIi/" + "Pa3v0Vqaqrde8UCgQBCoRBCoZA+dpPtFMPpD5vNZlRXV0OlUiE+" + "Pp6zZZ8WiwVnzpzB0aNH8f7772Px4sWc9G7NZjNtznTx4kXWX388MeGSrlgsRl1d" + "Hf11fX096zugxjvu7u50q+H1118HRVHo6OhAUVERbty4gYyMDKhUKiQlJaG+" + "vp7uDzvKVY1AFAFMq0zSHyYXVjqdDkCvOsHf3x+zZs3izF+" + "ioaEBmzdvRkhICH766SdOp7mOHDmCuLg4dHR0cBbDeGHCtRdMJhMkEgmuXr0KsVi" + "MtLQ0nDlzBgkJCVyHNiHIzc2Ft7c3Nm/ejObmZshkMro/" + "3NbWBolEQveHk5KSHL75gonJZEJFRQW6uroQEhJC+9MSM3S2JsssFgu+/" + "PJLfPzxx9i3bx8WLVrEqTKhvr4ea9aswa5du3Dw4EG+0h0efE+XyaVLl/Dmm2/" + "CbDZj3bp12LVrl0Nfr66uDpmZmWhuboZAIMD69euRnZ3t0Nd8HDGbzSgtLaVNfu7" + "evQuKoqxM4GNjYx2iGmhpaUFlZWW/a32Y/" + "WFyUUe8eJn+EvaYLKuvr8fmzZsRHh6OAwcOcOZMxmT58uXIycmBVqvFgQMH+" + "KQ7PPikyyWNjY1obGxEcnIytFotUlJScP78eV6mNgQURUGn01mZwBNvCNK+" + "SEtLg1gsHnUlaDQaUVZWBgCQSqXDts9kbi8mk2WkPzzUQMNA3++LL77A8ePH8fe/" + "/x3PP/+8U+huL168iEuXLuHYsWO4du0an3SHD590nYk//vGP2LhxI55//" + "nmuQ3nsoCgKLS0tVibwDQ0NmDlzJl0NJycnw8fHZ0h3NKKciIqKsovHrNls7uMv4" + "erqaiVb62+Tb11dHTZt2oTIyEjs378fPj4+" + "Y47FXuTk5OD06dNwdXWl2y3Lli3Dl19+yXVozg6fdJ2Fmpoa/" + "O53v0NJSYlTPVyPMxaLBZWVlbTb2u3bt6HX6/uYwJNRXY1Gg4cPH0IoFCI6Otqh/" + "VmyNJMkYr1eDw8PD1RXV8NisaCpqQlfffUVPvjgAzz77LNOUd0OBF/" + "pjgheMuYMdHZ24qWXXsLhw4f5hGtHXFxcIJFIIJFIkJmZCaBXfUBM4I8fP46SkhJ" + "6bXljYyNOnjwJqVTqcN2tu7s7pk2bRo8Lk/5wWVkZTp06hdraWvj5+SE/" + "Px+BgYGYM2eOQ+Ph4R6+" + "0mWJnp4eLFmyBIsWLcKWLVu4DmfCUVdXh4yMDISFhUEqleLu3buorq6GWCymq+" + "GUlBT4+/s7tNq0WCw4deoU8vPz8cEHH+D3v/" + "89vUU6KCiIX6UzfuDbC1xCURTWrFkDPz8/HD58mNXX5kXtveh0OigUCiQmJtJ/" + "R8Z7mSbwGo0GsbGxfUzg7UFNTQ02btyI+Ph45OXlsTpwwStoWIdPulzyyy+/" + "YMGCBZg9ezZ9nN27dy8WL17s8Nc+" + "ePAgioqK0NHRMaGT7nDp6enpYwLv4uJCT9OlpqZCIpGMSB5mNptx6tQpfP755zh8" + "+DCefvpp1nu3vIKGdfikOxHhRe1jh2kCTxKxQqFAQEAAnYTT0tIGNFivrq7Gpk2b" + "MHv2bOzdu9dpNifwChqHwyfdiQgvancMRG5WUFBAJ+" + "JHjx7RJvCpqamYO3cuzp49i9OnT+PIkSNYsGCB0ygTeAUNK/" + "DqhYnGxYsXERgYiJSUFFy7do3rcMYVAoEAoaGhSE9PR3p6OoDeFkJ5eTlkMhnOnz" + "+P1157Db/" + "5zW9w48YNp9rpxitouIevdMcpvKidWyiKcprKlsAraFiFby9MZNgWtavVamRlZaG" + "kpAQCgQCfffYZnnzySVZem6d/uFTQTFAGTLrcb/" + "jjGXdkZ2fjhRdeQFlZGe7du4e4uDiuQ5rw3LhxA6dPn8Z//" + "vMfJCYmIjExEZcuXeI6rAkJX+ny2BWNRoPExERUVVU53fGah4dF+" + "EqXhx2qq6sREBCAV155BUlJScjKykJXVxfXYfHwOA180uWxKyaTCXfu3MGGDRtw9" + "+5deHp6Ii8vj+uwxg2XL1+GVCpFdHQ0/" + "3N9TOGTLo9dCQsLQ1hYGJ544gkAvVrhO3fucBzV+MBsNuONN97ADz/" + "8gNLSUpw9exalpaVch8UzQviky2NXgoODER4ejvLycgDA1atX+" + "VFTO1FQUIDo6GhERkbC3d0dGRkZuHDhAtdh8YwQPuny2J2PPvoIf/" + "7znzFnzhwUFxdj586drLzuoUOHkJCQgFmzZmHlypXQ6/" + "WsvC5bKJVKhIeH01+HhYVBqVRyGBHPaOAn0njsTmJiIoqKilh9TaVSiQ8//" + "BClpaUQCoVYsWIFzp07h7Vr17IaBw/" + "PUPCVLs+4wWQyobu7GyaTCTqdDqGhoVyHZFfEYjHq6uror+" + "vr6yEWizmMiGc08EmXZ1wgFovx1ltvISIiAiEhIRCJRFi4cCHXYdmVtLQ0VFRUoL" + "q6GkajEefOncPSpUu5DotnhPBJl2dcoFKpcOHCBVRXV6OhoQFdXV3jzmfC1dUVR4" + "8exaJFixAXF4cVK1YgISGB67B4RshQE2k8PI8FAoHgZQAvUBT16v9/" + "nQlgHkVRr3MbGQ+PNXylyzNeqAUwTyAQTBH0zh8/" + "C0DOcUw8PH3gky7PuICiKBmA7wDcAXAfvb/bJzgNioenH/" + "j2Ag8PDw+L8JUuDw8PD4vwSZeHh4eHRfiky8PDw8Mi/" + "wchJB0SM6Pp2QAAAABJRU5ErkJggg==", + "text/plain" : ["
"] + }, + "metadata" : {"needs_background" : "light"}, + "output_type" : "display_data" + } ], + "source" : [ + "# set initial / terminal constraints\n", + "pD.flag = constraint_flag.END_POS | constraint_flag.INIT_POS\n", + "pD.degree = refDegree\n", "prob = setup_control_points(pD)\n", + "variableBezier = prob.bezier()\n", "\n", + "# get value of the curve first order derivative at t = 0.8\n", + "t08Constraint = variableBezier.derivate(0.8, 1)\n", + "target = zeros(3)\n", "\n", + "A, b = genCost(variableBezier, ptsTime)\n", + "# solve optimization problem with quadprog\n", "\n", + "res = quadprog_solve_qp(A, b, C=t08Constraint.B(), d=target - " + "t08Constraint.c())\n", + "fitBezier = evalAndPlot(variableBezier, res)\n", "\n", + "assert norm(fitBezier.derivate(0.8, 1) - target) <= 0.001" + ] + }, + { + "cell_type" : "markdown", + "metadata" : {}, + "source" : [ + "Of course, inequality constraints can be added in a similar way\n", + "\n", "## Constraining sub-parts of the curve\n", "\n", + "Now suppose we want to constrain entirely parts of a curve. One " + "common way to address this is to discretize the curve, and write as " + "many constraints as discretization points.\n", + "\n", + "Alternatively, this can be achieved continuously by splitting the " + "Bezier curve continuously, and putting constraints on the control " + "points of the relevant parts.\n", + "\n", + "let's first explain how curve splitting works before writing a " + "problem.\n", + "\n", + "Here is the code that splits our reference curve into two distinct " + "curves at a time t = 0.6" + ] + }, + { + "cell_type" : "code", + "execution_count" : 51, + "metadata" : {}, + "outputs" : [ { + "data" : { + "image/png" : + "iVBORw0KGgoAAAANSUhEUgAAAV0AAADnCAYAAAC9roUQAAAABHNCSVQICAgIfAhk" + "iAAAAAlwSFlzAAALEgAACxIB0t1+/" + "AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6L" + "y9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOx9d5wU9f3+s/" + "1u926vc5QDrsMBIr2oscWoMRqVWDD2YDDmlwRUOggivQlINNGYr2LDkmCJUaOxRI" + "MFRcRCubu9vd7L9jI75ffHZeZmdmfb7ezeLszzevEymd357NzuzDPved7v9/" + "NWMAwDGTJkyJCRGCiH+" + "gBkyJAh40yCTLoyZMiQkUDIpCtDhgwZCYRMujJkyJCRQMikK0OGDBkJhDrM63Jpg" + "wwZMmRED0WwF+" + "RIV4YMGTISCJl0ZciQISOBkElXhgwZMhIImXRlyJAhI4GQSVeGDBkyEgiZdGXIkC" + "EjgZBJV4YMGTISCJl0ZciQISOBkElXhgwZMhIImXRlyJAhI4GQSVeGDBkyEgiZdG" + "XIkCEjgZBJV4YMGTISiHAuYzJkBAXDMKBpGl6vFyRJQq1WQ6lUQqVSQalUQqlUQq" + "EIarYkQ8YZCUWYwZSytaOMADAMA4qiQJKk4H+zr/" + "GJliVh9p9MxjLOEAQ9wWXSlREx/MlWoVBAoVCAJEmQJAmlUhnwfv4/" + "mYxlnEEIeiLL8oKMsGAYBiRJorm5GUajEQaDIYBgxcCSsth6AECSJHw+n+" + "A1vjzBJ2SZjGWcLpBJV0ZQsGTLSgdWqxVpaWnIyMiIaV2WQP2JlE/G33//" + "PUpKSqDX67n3qlQqTjdmSVkmYxmpBpl0ZQSApmmBTstGrEqlEjRNB7xfKuLjkzE/" + "0mXJ2F/" + "aYBgmpEwhE7KMZIRMujI40DQNkiRBURSAQHmAJbpEI1xkzL9B8PcRI2SZjGUMNWT" + "SPcPBJrl8Ph8XxQYjJqVSOSSkGwzhyJimadTX10Or1aKwsJB7L0vGfKlCJmMZiYJ" + "Mumco2BpbkiTDki0LhUIhKi/" + "EA7FE1f4yBUuywMDfTVEUCIIQ7MePiuXIWEa8IJPuGQZ/" + "smVJJRJiGSp5IRb4H2+" + "oigqWjP3L28SqKeSKChmDhUy6ZwiC1dhGQxyJlBekJLRIbyihyJggCHz77beYOnU" + "q95pcayxjMJBJ9zSHGNlGUmMrhkTKC0BglDoU4Fdu+MsUrBZOEITc+" + "CEjYsike5qCYRg4nU7QNA2NRhMT2bJIRXlBKvhLDrE0fshkfGZDJt3TDPyGhtbWV" + "igUCowZM0aStcXqdAmCQH19PZxOJwwGA/" + "cvPT09JjJJNoKP9Fgiafwwm83QarUYNmwYAHDkKzd+" + "nBmQSfc0gVhDg0qlCqhfjQV8ecHr9cJsNqO3txejR49Gbm4u3G437HY72tvb4Xa7" + "oVAooNfrYTAYkJGRAYPBgLS0tISSiZTEHetNhP0vwzBy48cZDJl0UxyhGhqkTnwp" + "FAoQBIHjx4/" + "DYrGguLgYlZWVAPojXqPRGHBsLpcLDocDVqsVra2t8Hg8UCgUgqg43mQsxbr+" + "8oJUa8XS+" + "KFWq2UyTkHIpJuCiLShIVjb7mDgcrnQ3NwMl8uFqqoqVFVVcZ8X7DOUSiUyMjICv" + "BooioLL5YLT6RSQsVKp5CJjr9cLj8eDjIyMpCCSeJFuMETS+" + "OH1elFdXY0xY8ZwNy258SP5IZNuCiHahgaVSsVFwIOFw+" + "FAXV0d3G43cnJykJOTw3V3DRYqlQqZmZnIzMwUbOeTMUEQaGpqgtlsFpBxIiJjMU" + "hJujRNx1RBwv+vz+" + "fjIl658SM1IJNuCmCwDQ2xRLo2mw0mkwkkSaK0tBS5ubno6uqC1Wod1HqRgE/" + "GVqsVI0aMgNFoDBsZs3qxwWCATqeLC5FIKdNISeAURQmIONLGD/a/" + "YpqxXFERX8ikm8SItaFhMKRrsVhgMpkAAKWlpcjJyeFeS3RFAftZ4SJjh8OBvr4+" + "NDc3w+v1QqlUciTsdDqhVqslITop5YVYy/" + "eiWStSMq6rq8Po0aOh1Wrl8rY4QibdJIRUDQ2Rki7DMOjr64PJZIJarUZ5eTmysr" + "KiWk/qizGS9UKRsdPphNPphMfjgcvlQmtrq4CMo42MpZYXkkWq4B+Hy+XiCFZu/" + "IgfZNJNIrA1tvzHwFgionCkyzAMuru7UVdXh7S0NIwfPz6AwPgYqkg3WqhUKhiNR" + "hiNRi4ZV1BQAJIkOZmCHxmrVCqBZpyRkQGtVisgkkQn0iKFlAROURRXHyw3fsQPM" + "ukmAViyra+" + "vR1FRkSTdY0Dwtl2GYdDZ2Qmz2YyMjAxMmjQJBoMh7HqhStCkJJJ4Qa1Wc2TMRyg" + "yZolYoVCImuEMBlJ/V4mKmiNp/" + "GDJuKurC+np6TAajUHL285UyKQ7hPBvaGhubpasewzoj/" + "j4pMswDNrb22E2m5GdnY2zzz4b6enpEa8XynshHvJCoqLqcGTMasY2mw1ffvmlgI" + "zZf/" + "6RcSjEIgnEG4P5HcXI2G63Q6vVAgjd+" + "MEvbTtTKipk0h0ChJvQIBVYeYGmabS2tqKxsRG5ubmYNm0a0tLSol4vGBGerhcJn" + "4wzMjKgUqkwfvx4kCTJacY9PT1obGwEQRARk3EqPBXECoqioFarRc/" + "tcI0f3d0qPPGEDhdcAFx6qeK0I2OZdBOESBsapNYOXS4XPvvsMxQUFGDGjBlc9DE" + "YJNvkiEgg1fHyfxe1Wo2srKyAZGMwMlar1RwJ6/" + "V6QZlXrEhWImL1YTEEkylqahTYt0+LAwc08HoVOHSIxDnnOODz+" + "WC1WlFYWHhaNH7IpBtnRNPQwDYzqNWx/" + "SzsuPTm5mbQNI25c+dCo9HEtCaQOpMjxNZKBIKRsc/" + "n4zTjnp4e2Gw2HDt2DBqNRjQyPh0QinT98eWXSuzdq8U//" + "qEGwwz8VocOqfH11xpUVbnR09ODgoKCsI0fbFDjLxUlE2TSjRMG09AQa9suSZJob" + "GxEa2srRo0ahdmzZ+PLL7+UhHCB5HP+" + "SiRieQLRaDQCMnY4HJg0aRIAcJFxV1cX6uvruQ6zRJOx1L9rONJlGODdd1XYs0eL" + "Q4eC09Ajj2ixbx/JRbeB6wzUGgPAv/71Lxw7dgybN2+O/" + "Y+" + "IE2TSlRixNDQMtm2XIAg0NDSgs7MTRUVFmDt3bsRRRjRI1ckRUiAeJWNqtRrZ2dn" + "Izs4WvO7z+SIiY71en5RlbEBw0iVJ4OBBNXbv1uKHH4SvKxQ0fnr225g38yB+/" + "eRfwDBKvPGGGosXK5CdHVyq4B+31WoVrTFPJsikKxGkaGiIlnS9Xi/" + "q6+" + "vR3d2NsWPHYu7cuXHNiidSXgCSY3IEi0R6L2g0mojI2OFwwOFw4Ouvvxa0QhsMhq" + "ifbqKRAyKBf6ec1wu88IIGu3drUV8v/Ns1KgK/" + "PPcFLP3ZDkwsOg4AOPjlPLz1zc/" + "AMAo88UQmVq2yRPS5Vqs14HtLNsikGyOkbGjwL/EKBo/" + "HA7PZjL6+PhQXF6OioiIhJUhnurwg5VqDIXB/" + "Mvb5fPj+++8xadIkOBwOuFwudHZ2wuFwgCRJUc04GBnTNC056QKAywU8/bQGe/" + "dq0dYmPEcz0uxYePETuPenu1GU2yJ4benPduCtb34GAPj73zPx29/" + "qMHZs+M+1Wq0YG8kbhxAy6Q4S/" + "AkNAGIiWxZKpTJkpOtyuVBXVwe73Y6SkhKMHz8+oY/" + "hiZYXpPisZDExj8dabMSs0Wg4Bzg+" + "CILgIuOOjg44nc6gZExRlKQ3bpdLhd27tdi3T4PubuG6eRnd+MNlj+D3l+" + "1DjkE8gr1wwn8wfuQJnGytAkEoceBALs4+O/" + "znypHuaQh2MmxraytGjBghaclKMHmBb69YUlKCiRMnDonmmWh5QSpI8V0lY21tOJ" + "lCq9VCq9VGRMYEQYAkSVRXV3Ot0Hq9PmqZwmYDnnhCi927z4XdLtx3RHYrlvxsJ+" + "6++HEY0lyi+5OUCq98cT12/" + "HMpTrZWcduffz4ba9a44GfNLPL5Npl0TxfwGxooikJTUxNGjRol6Wf4ywt2ux0mk" + "wkEQaCsrAy5ublDeuGf6fJCqpFuMIiRsdVqRUtLCwoKCuB0OtHe3i6IjP01Y/" + "+yRqsV+POftXj0US0sFuH3NDa/Hsuu3I4FF/" + "4VOo2w3IuFy5uOJz+" + "6C7vfvhf1XSWC15RKBhdc4IHDoUBGRujzz2azyYm0VEawhga1Wh2XiI+VFywWC+" + "rq6kDTNMrKygIilaFCKNKVor440s8aCiTTsbCQsp2YpmmOiPnnG3v+" + "OxwOOJ1OtLW1wel0gqIoaLVa0HQmDh4swv79ubBahcdSOsyEVVdvxm3nPQONWnxW" + "X68jB/ve/T32/" + "ev36HHkC15LT2dw220+" + "XHbZccyZUxgwgUQMVqs1aa6XYJBJVwTRTmiQCl6vF62trdDr9SgrK5Pkjs1KAlIZ" + "6PjDYrGgtrYWHo8HAARREfvfeJSvDQVOl0hXDME0XYVCAa1Wi9zcXOTm5nLbbTYG" + "jz2mwqOPpsFqFf6+5YU1WHPNRtx87vNQq8RzFK19I7Drrfvx+Pt3w+" + "kVkmleHo277/bh17/" + "2IS+PwbffOiM+" + "h2RNN8XAln1RFBXVhIZYP7Onpwd1dXWgKAoFBQUYN26cZOuzDRdSVzewZKtUKlFR" + "UcGNzyEIgouKWlpa4HQ6QdM00tLSBESs1+" + "sjcrSKFfFoA04WSB3pRrKW0wn85S9a7NmjQW+" + "v8P0Vw6vxwLUb8MtzXoBKKf4kaO4sxrY3l+Ppj++A1yf0/" + "ygupvG73xG45RYf9PqB7dE8RVEUJVkzULwgky5in9Aw2M/" + "s6upCXV0dDAYDJk6cCKvVCq/XK+nnSDmcEug/" + "qY8cOQKFQoHKykoYjUYwDMO1ZopFRQzDwOPxwOl0wuFwoLu7Gy5XfyIl1Ij2ZGoD" + "Pt1JN1ydrtsN/PWv/" + "XW2XV3CzywvrMED127Azec+H5Rsq9sqsPmNVXj+0M0gKSEplpU5sWBBF66+" + "mkBWlgFarR58aiJJMiLSTUYJSAxnNOnG0tAw2Md21l6xvr4eRqMRkydPhv5/" + "t3WHwxHzIEl/" + "SEW6VqsVtbW18Hq9mDx5clTSh0KhQHp6OtLT05GfP6DbsSPaxWafMQzDJWxYU/" + "GhxOlOusHqdAkCeOYZDXbsCKyzLSmowwPXbsCt5z0bVEY40TIeG19bgxc/" + "mw+aEa4/" + "cyaFJUu8uOgiN5xOwOn0oaWlBS6XCxRFQafTwWAwwOfzwW63h5WqWNJNtt/" + "JH2ck6UpRY8uWd0W6H03TaGtrQ0NDA3JycjB16tQAe0Uppvf6I1bSZclWoVCgvLw" + "cP/" + "zwgyjhDuZE549o508YpigKtbW1nPTS0NDAtcH668VSJu9SDVJHuvwbG0kCL72kxt" + "atOjQ0CD9jTH4D1lyzEXf86OmgCbIfmidgw6sP4JUvrg8g2/" + "PPJ7F0KYHzz6fQf9rokJamQ15eHvcehmHg9Xq5sja+VMWSMf+fSqWCx+" + "PhAphkxhl1xoqR7WDviixBhtOPaJpGS0sLGhsbUVBQgOnTp0On04VcU0oMlnRZsg" + "UQdGZavKBSqZCWloa0tDQBGfPrS/lZdJ1OJyDjcHrxYCBVpCvlI3A85AWaBl5/" + "XY2NG7WoqRGS5YjsVqy+ZhN+fdFfoFX7RNc53lKF9QfX4W9fXBdAtj/" + "+MYnlywnMmRP+HFcoFNw5oNVqUVXVX7PLJ2N+" + "3uCtt97CoUOHYLFY8Oyzz2LixImoqqqKyqTfH7t378aTTz4JhUKBs846C0899dSg" + "fKj9cUaQrv+EBin0WrVaHWDAzAdby9vS0oLCwkLMmjUrLEFLrb8OZs2hJFs+" + "xErGxOpL2YuQTd719vbC6XSCYRjo9XpuOnBaWhrS09MH/btLSbqJ8nCIBhRF4z//" + "MWDPHj2+/VZIlgXGTiy/aht+e8ljSNd6RPc/" + "2ToO6w+uw8uf3xBAtpdfTmLZMi9mzIj+" + "3PafAccnY35kPG3aNHzwwQd45JFH0NHRgQ8//BDXXXcdrrjiiqg/" + "EwBaWlrwyCOP4Pjx40hPT8cNN9yAF198EXfccceg1uPjtCZdmqbhcDg4sktE9xjf" + "XnHkyJGYPXt2xI/" + "AQxnpWq1WmEwmMAwzKLIdKs2TfxH668Vutxu1tbVwu90wmUxwu91QKpXQ6/" + "WCyDiSUTvJSrpSlON9+qkKK1aU4ZtvhENJs/" + "QWLPnZTiy+fA8y0pyi+9a0l2P9wXU48OlNAWT705+" + "SWLHCi6lTY7MrjeT6YaWqyspKLFmyZNCf5//ZbrcbGo0GLpcLI0eOlGTd0450/" + "RsavvrqK5xzzjmSE4J/" + "pOvz+dDQ0ICOjo5B2ysOBenabDZOPy0rK0v6GsdIwY5b1+v1yM/" + "P56JjiqIEc8+ampoE0x34nVf+TybJRrr+Tl7R4ttvlVi/" + "Xof33hPSgF7nxKLL9mLplTuCeiOYO4vx0Ktr8ex/bwVFC/e/" + "4AIb7r3Xhosvjv0piSTJiK8ji8Ui2fk7atQoLFmyBGPGjEF6ejouvfRSXHrppZKs" + "fdqQbqiGhnhEYCxBEgSB+" + "vp6dHV1YcyYMTHZKyaSdONBtlISSrw60lQqFTIzMwNGzfNtE/" + "nmMFqtFhkZGfB6vUhPT4/ZAjERDQ3hYDIpsHGjDn//u/" + "CmolV7sfDiJ7Dmmo0ozOoU3be5dxQ2vrYG//" + "fRr+CjhBUll15KYuVKL7KyTIKSwVgQTY2ulI0RfX19eP3117khrtdffz2ee+" + "453HLLLTGvnfKkG0lDQ7ymrzY2NqK2thZjx45FeXm5JC5j8dZ0WbKlaRrl5eWDOk" + "n9yZX9vlOlTlIMYh62bP2xw+FAc3Mz+vr60NvbC5qmkZ6eLoiM09PTI/" + "r9hzLSbW9XYNs2Lfbv14AkB45BqaBw64+exYPzHkRxQYPovp3WAmx+YxX+/" + "P5vApoaLrqIxOrVXsya1X+enTwZmSQQCSKVFwBpzW7+/e9/" + "o6SkBAUFBQCAefPm4dNPPz2zSTfShgZWBpCqztPlcsFsNqOrqwv5+" + "fmYPn163HXiWMCSrs1mg8lkAkVRgyZbYCACjbd+" + "mwy1lgqFAjqdDjqdDg6HAzqdDsOHDwfDMHC73VyzR2dnJ1wuFxQKBSdNsGSs0+" + "kCAoBEJ9IsFmDvXi0ee0wLt5v/2QyunfEqNt6wBhNGnRDdt8+ZjR1vLsUj//" + "pDQLvuueeSeOABAuecIzxnpTREj4Z0rVYrRowYIcnnjhkzBp9//jlcLhfS09Px/" + "vvvY8aMGZKsnXKkG21Dg0ajkYR0nU4n6urq4HQ6UVpaiuzsbBAEkXQeq/" + "4gCAIdHR3QarWSmOfEq61YDMkUOfNvNAqFAnq9Hnq9nouEgIFmD4fDAYvFgubmZn" + "i9Xm40e0ZGhqR1xeF+" + "B48HeOIJDXbt0qGvT3huXTjhQ2y9cQVmlx8W3dfp0WPPO4ux459LYXUJb9DTp1NY" + "u9aLCy9k62yFGErSlSrSnT17Nq677jpMmzYNarUaU6dOxcKFCyVZO+VIl6Io+Hy+" + "iBsawpV2hQPfXrG0tBR5eXlQKBTo6OiA2+" + "0e9Lrxht1uR21tLRwOBwoLC1FZWSnJuqkmIyTSxJzf7MEHO5rd4XCgp6cHVqsVhw" + "8fjtkcKBjpUhTw4otqbNqkQ3Oz8PWpxV9jy40rcdnkd0XXJEgN/" + "vz+b7DptdXotBUKXps0icIDD3hx+eXiZDvw+" + "dKRbjRrSW12s379eqxfv16y9VikHOmy8+" + "4jxWBJly2homkapaWlAYmBWMk8XmDJliRJlJeXw+FwSE48iSDdZBvBHoukwh/" + "NnpWVBYVCgQkTJoQ0B+JXUQRr9vAnXYYB3nlHhQcf1OHECSFRlRXWYuP1azB/" + "7kuix0jRSjz731vx4N8fREN3seC18nIaq1d7ce21JCK59KSOdCPtMksFhzEgBUk3" + "WkRLjn19fTCZTFAqlZyMIIZ46K+" + "xgI3IfT4fysvLORnB5XLB5xPvHhoM4pHsSwVIpWPziTJWcyB+" + "9cLhw0qsW6cLGGc+" + "zNiBtfMewsKLngjasvvql9dg9SubcKJlgmB7URGNlSu9uOkmEtGoIrGWsvERbSIt" + "2b10gTOAdDUaTVjSYRgGvb29MJlM0Gq1GDduXEBJkT/" + "iGelGc4HzyZadLsGH1CSZavKCVEiURWQ05kB9fX2oqVFg//" + "5x+PBD4e+emW7Dkit24r4rHg7a2PDh8Qux8qUt+" + "KJ2jmB7fj6NJUsILFjgQ5CO9YRhqErG4omUI91oo41Q5MjaK5rNZqSnp2PChAkRu" + "dMD8Yt0I60OCEe2LKQm3UQNp0zGeWxSRbpSmAN1diqwc6cN//" + "jHCFDUwHoaFYHfXPJnPHDNBhQYu0XXOlo/BSte3Ip3v7sUwMC+mZkM/vAHAr/" + "9LYEwMUdISHl+" + "RNMc4fP5gvqaJBNSjnSjhVqtDvCoZRgGHR0dMJvNMBqNOOuss6J2J1Kr1XEh3XDu" + "ZQ6HA7W1tWHJlkU8Il2x9ZI1Ak629t1YH70dDmDfPi0eeUQLp3MgQFAoaNww+" + "2VsumE1ygrrRPet6yzB6pc34aXPbwTDDByDTsfg5z9vwvbtucjLS67f8HTz0gVSk" + "HRjiXRpmua8bIPZK0YKlUoVF3khmHsZS7YEQaC8vDzijh9ZXpAGQ03eJNnva7t5s" + "xadnULSvnji+9g2fzlmlB4R3bfTWoANrz2Ax9+/" + "W9BFplQyuPTSNtx2Wx2MRitsttGg6YFmj8Ecp9TlhNFoukBy1HeHQ8qRLhDdha/" + "RaEAQBJqbm9HQ0MA1NMT6GBKvx2z/" + "icAOhwMmkwlerxdlZWUCZ6VIkMrywulI7tGSLsMAb72lxrp1WlRXCx+" + "zzxr9LbbdtBw/Pfsd0X0dHgN2/nMJdr11PxweoV5w1VU+rF1LYNy4TPh8E/DNN9/" + "AYDDAbrejvb2dMwfie9ZGYg4kZeUCEDmJezyelJAWgBQl3UhBURQ6OzvR0dGBtLQ" + "0zJw5c8gnEIQDOxE4VrLlrxdPeYFhGLS1taG+vh4KhUJQdyp1M8BQIh7VC+" + "Hw5ZdKPPCADp9+" + "KvwOi3KbsOH6B3Dbec9AqQy8MflINZ74cCEeOrg2oNb23HNJrF8/" + "0LLLHpNWq8WwYcMwbNgwbvtgzIGkJl0gsujVarUm/" + "eh1FqfHFeEHkiTR1NSE1tZWFBQUwGg0oqKiYqgPKyLQNI1Tp05x49dzc3NjutjjJ" + "S8wDIPOzk6YTCbk5OTg7LPPBgDuIu3o6EBdXR1IkhQMpczIyIjIpyDZIt1Eygtms" + "wLr1+tw8KBQYsrSW7Diqq1YfPkepGnFZ+m9/Pn1WP3yJtR2CM/" + "3iRMpPPigF5deGtjYEMwiMpw5EPs7s+" + "ZAOp0OWq0WBEHAbrdDr9cnbBJ0qlQuAClKusEuSJ/Ph8bGRrS3t2PUqFGYM6e/" + "FObwYfFWx2SC0+mEyWRCX18fiouLUVxcLMlFHo+62r6+" + "Ppw6dQqZmZmYNm0a0tLSOCtNtgGABd9k3OFwoKurC263m2ulZYk4GeaghYKUkW6w" + "dXp6gB07dPjLXzTw+" + "YQVCfdc8ic8cO0G5Gf2iO77nxPnY9mB7Thsmi3YXlREY80aL268kUQw/" + "ovWrSyUOVBnZyecTieamprgcrlEzYH0en1E32U0N12bzSZHuokE315x9OjRAfaK8" + "YqYBjuckg+WbN1uN8rLy7nRM1IlBKQk3d7eXnR2dsJgMAgGaoZCMJNx/" + "qMrfw4aa6XIlgrF+" + "v0m25gdseoFr7ffI2HHDh0sFqEhzfWzX8GWG1cGrUj4oXkCVry4FW8evRL88q/" + "sbAZLlnixcKEP4XLFUpihs+" + "ZAGRkZ8Hg83JNlrOZAkf72FotFJt14gv1hPB4P6uvr0dvbK5m9YjSIxcGMT7asZq" + "tQKGCxWCQtRZOCdK1WK2pqaqBSqZCfn4/CwsKYBwAGe3RlW2Pb2tpgt9tx5Eh/" + "Rp7fjZWRkRFwgSYCUssLDAP8/e9qrF8fOPzx3Mr/YufNSzCn/" + "AvRdVr7RmDt3x7C0x/" + "fITAR1+" + "kY3HMPgXvvJRBpc9ZgfXnF4F9XG8ociPUv9jcHYklYq9VGfFyyvBBnsGNYrFYrio" + "uLMW7cuCEpFRlMg0Qwso1lzVCIhXRZHweaplFZWQmj0YiamhrRqE+" + "q759tjfX5fPB4PBg7diw3esfhcMBqtaKlpQVerzdgOnBGRkbcNESp63Q/" + "+0yFVat0OHJEeLwVw6uxdf4KzJv5quj+dncGtr25HLvfvhcur4HbrlAwuOmmfl/" + "b0aOji8qlNqiJdLyO2E2Xbw7U1dUFh8MRkTmQlFMj4o2UJF273Y68vDxUVVVFfCH" + "Ew44wmlbgcGTLIhlI1+l0CmqC+f3sifJe4Ov2/NIl/" + "nRgfkKHPx04PT2duzBZC9BYIRXpms1q7N07Au++K3xSyM/" + "swtprH8JvfvxnUY8EklLh8Q/" + "uxvqD69BlGyZ47ZJLSDz0kBeTJg3ud4nHVOHBgm8OxFa/" + "VFZWwufzBTUHevvtt9HU1ISJEyfC5/OFHQAbCSwWC+666y58//33UCgU+L//+z/" + "MnTs35nWBFCXdwsLCqBoTpDYyZxEJQbpcLphMJrhcrpBky0KpVA6ZQQ07wNHpdKK" + "8vFy0TC2ZqgqCJXQ8Hg+XuLPZbDhx4gQXFfOjpWguzlj/" + "5p4eYNs2HZ58slwwtSFN48aiy/" + "di5c+3IEtvE9331S+" + "vwYqXtqK6bZxge0WFHTt3qnDRRbHdpKWOdKW6ztjjUigUIc2BamtrceTIETQ0NOD" + "ll1+GWq3Gp59+GtONZNGiRbj88svxt7/" + "9DQRBcKZDUiAlSTdaSGVk7o9QkS6fbEtLS5Gfnx9RpKRSqeDxiI+5Hgwi+" + "Uyv14u6ujpYLBaUlZWhoKAg6H6hSHeoJgLzwTeMKSgogMfjQVFREfR6veCx1Ww2c" + "2VOfCIOZqPIrh0tvF7g8cf7k2RWK3/EEY2b5h7A5htXYWx+o+i+X9TOwpIXduK/" + "p34k2D56NI1Vq1wYP/4opk+fGvUx+SOZIl0+wnWjsb/1vHnz8Mknn+DOO+/" + "EueeeC5IkY/" + "p7rFYrPv74Yzz99NMA+" + "iUvKbkjJUlXStObWCAW6bJk63Q6UVZWFjHZhlozXiAIAmazGT09PSgpKcH48eMjM" + "upOtLwgBVQqFYxGI4xGI7eNPwONraJgIxq+" + "dt3QOkMAACAASURBVJiRkRG1UQ3DAK+" + "9psa6dTrU1wsJ4EfjP8bDN98XtG23rrMEK17cile+" + "uB78ioSsrP6KhLvv9kGh8OLkSemIUuroVApEOzWCrV6ItSHHbDajoKAAd955J44d" + "O4bp06dj7969MBgM4XeOAClJutEiXqTLN71xuVyoq6uDw+" + "EYFNmyYDvS4gmSJFFfX4+Ojg6MHTsWFRUVEUcGySQvxAr+DDS+" + "lMIfu8N2YlmtVhw/fhxGo5GTKYIV/x8+rMTq1Wn44gvha5UjTmHb/" + "OW4ZsbrosfT58zGxtfW4I/v/" + "g4EOdDSqtEw+PWvfVi61Av2MN1u6aLTZI50I5WArFarZF66JEni66+/" + "xr59+zB79mwsWrQIW7duxYYNGyRZPyVJN5kiXZfLhe+//" + "54j24kTJ8b0iO3vvSAlKIpCY2MjWltbReuZI0GqRrrRQGzszrfffovS0lIQBAGn0" + "4nm5mY4nU4wDMMl7iyWbDz8cAFee01YGJuX0Y1189YHTZIRpAaPvvf/" + "sOHVB9DnFBoZzZvnw9q1XpSWCr+" + "LZCZKKfXh9PT0iN4rJekWFRWhqKgIs2f3N5pcd9112Lp1qyRrAylKutEiEiPzaOF" + "yudDW1gaXy4UJEybETLYs4iEvMAyDxsZGNDU1YeTIkZgzZ86gL4xk9LlNBBiG4cq" + "W/JM57e1u7NqlxdNPZ4EgBohQq/" + "biD5c9gtVXb0K2wSq67sufX4+" + "VL21BXWeZYPucOSQ2bhR6JPAhJekmM4FHKhV4vd6ICTochg8fjtGjR+" + "PUqVMYN24c3n//" + "fUyYMCH8jhHijCBdKSNdNsPvcDiQl5eH7OxsgUlIrJCSdGmaRmtrK5xOJwiCwOzZ" + "s2PWu4JFoEOdQAuGeE58IElg/34tNm3KQHc3n7T6O8m2zl+B0mFm0fU+q5mD+5/" + "fhc9qzhFsLy2l8dBDXlx1FRly+" + "GOyEmU0kx7CYSi9dPft24ebb76ZG0j71FNPSbZ2SpLuYOQFfyPzaMEn29LSUkycO" + "JFri5USUjy+" + "90df7TCbzcjLy4PBYEBZWZlkXg6pZu0YD6Oa995TYfVqHU6eFJLVnPLPsOvm+" + "3FO5Wei6wRLkhmNJP7f/+vGr35FIDc3AwpFaC3zTIl0o1lLyhv/" + "lClT8NVXX0m2Hh8pSbpAdBdlLJGu2+1GXV0dbDZbgGYbj+" + "kRsUS67Pghk8mE7Oxszje4t7dXsnKuM1leAIDjx5VYvVqH998XXjpj8+" + "uxdf6KoNN2Lc4sbHxtDfa9+" + "3tBkkyrZbBwoRf33NMLlcoOm82J1tZ6gQ8FP3HHkuNgx/" + "6IQUqilHIoZaRRs1QNEYlCypJuNBiMputPthMmTAg4yeOhvw5mTYZh0NPTA5PJBI" + "PBgClTpgj0LTZ6luJiOJ2qF6JBb68G999vwDPPaEHTvAg13YqVP98S1G7RR6rxp/" + "fvwUMH16LHkS94bd48Hx580IviYgZA5v/+9cO/nK23txdOZ/" + "+ASdali6ZpeL3esMbi4SCF4U08EKm8YLVaBaWAyY6UJd14Rbp8si0tLRUl28GsGy" + "miJbW+" + "vj7U1tZCq9Vi0qRJorWEUlYcJIp0k4XcPR7gsce02L59FlyugctFpSRx10VP4qFf" + "rMWwrC7RfV8/" + "8nMsO7A9oJNs5kwCW7b4gibJgPDlbK2trbDb7Th58qTAh4LfdRcpkUppeCMlIo2a" + "U8nsBkhh0o0GkZCjx+" + "NBXV0drFZrWLJlEY9IN9KIxWazoaamBkqlEuPHjw85Ml5K0k1UydhQg2GAgwf7mx" + "saG4UX/qVn/Qu7br4fk0b/ILrv1+apuP+FXfjo+EWC7cXFNBYsqMbChXlITx/" + "cbD62nM1oNCItLQ1jxowBAM6bwOFwCLwJ2HI29l9aWlrAORYPX5JEIpWmRgApTLr" + "RPE6p1eqg8oI/" + "2UZjohOv+t9QcDgcqKmpAUVRqKioiOhkO5Mj3cGs8dVXSqxcGdjcUDXqOHbdfH/" + "QmWQtvSOx+pVNeOaT2wTTdrOyGCxb1u9te/JkN5TKfNH9o4E/" + "UWo0GuTk5AhqVVkvW4fDAbvdjra2Nng8HqhUKoEzm1SkO1Q341RyGANSmHSjgUql" + "Crj4+" + "GRbUlISFdmySGSZlMvlQm1tLTweT1TTgIHEkC5FUfD5fEk5HDDS36m5WYEHH9Th5" + "ZeFSZkCYycenPcgFl78BNSqwCcbp0ePHf9cih3/" + "XCqwW1SrGSxY4MOKFQQ32lxKgotk5BHrZcsva+" + "TbJ3Z0dMDtduPw4cOcD0U0Y5X4kDohFymkbIxIBM4I0uVDCrJNJDweD0wmE+x2O+" + "f8Fe3xxlNeoGkazc3NaGxs5CJ/9uLNzMzkLt5k/" + "o4dDmDPHi327dPC7R44Tq3ai0WX78XqqzeJOoDRtAL7P7kda17ZiNa+" + "UYLXrrjChw0bvKioEJKHlGN/" + "BlsPy7dPBPqlqhkzZsQ8VmkoanTZ45cTaQlAtCcuTdM4ceIELBZLypCt2WyGxWKJ" + "WGMOhnhEugzDcMMnCwoKMGvWLK6Mib147XY7F0mxEwH4/" + "0JFRYmQMWgaOHCgf3JDe7uwuWHezIPYftOyoGNy/" + "nPifNz73G4crZ8m2D55MoXNm704/" + "3xxrX8opgpHgmjHKrHdefzE3VDV6FqtVk7bTgWkLOlGCpa8WIvFSJy0ooWUloY+" + "nw8EQeDIkSMRO3+Fg9Sk6/F48MUXX8BoNHK1wDRNgyCIoBcv/" + "5GWbzjuH0UlagzPp5+qsHKlDkePCi/" + "sacVHsPvWe3H++E9E96ttL8PSAzvw2lfXgN/cMHw4jXXrvJg/P/gASEC6+tpEJb/" + "CjVVyOBxoamrifk+GYVBfXx/" + "z7xlN1GyxWDB58uSoP2OokLKkG+6HZMm2r68PpaWlsNlsg3b+" + "CgWW0GK9w5MkiYaGBrS3t0OtVmP69OlICzdRMIpjlKLKgjUEd7vdmDlzZlRWd/" + "6PtIAw0cMfw6PRaLjaarvdDoPBMGiC8Y+WzWYF1q7V4fXXhbrtyJwWbL5hFW4//" + "xnRdSzOLDz06lr88d3fwUcNPF6npzP4wx8ILFpEgOePExLJRLqDvQmImYr39vaiv" + "b0d6enpIccqGQyGsIQarbwgJ9KGEKwhd19fnyBSbGtri+" + "v0iMGSLkVRaGpqQktLC4qKijB37lwcO3ZM0kfrWFt3XS4XqqurQZIkiouL0draKo" + "m3aLBEj8/" + "nQ3t7Ozo7O7koCoAg4x7tyHabDdi5U4vHHtOCIAZIJl3rwpKf7cTyK7fBkBY4HYC" + "kVPjTv+/B+oPrApob5s/" + "3Yd06L0aNiu67TTbSlbKdOC0tDYWFhSHHKjkcjoDR7P7af7ReujLpDgGCkS2LeHr" + "qDobM2QRUU1MTRowYIXD+" + "ktpTd7Dygtfrhclkgs1mQ0VFBfLy8uDxeNDS0iLZsYlBo9HAaDTC5XJh3Lj+" + "xgJ2eqy/" + "tsjPuGdmZgYk7SgKeP55PbZtM6Cra4Bc2MkNW+evwOi8ZtHj+" + "OfRK7DkhZ042Vol2D53LoktW7yYNm3o6pWlJN1467DBxirxR7Oz2j87D49tjIikx" + "VeuXkgQ2AvL6/" + "XCbDajt7c3pAaayOkRocAwDFpbW1FfX49hw4Zh1qxZASfVUA+" + "nJEkSZrMZXV1dAbXLifJe8E+kiU2PZRgmIOPucrm4BoIffhiGjRvPgskkfO6fU/" + "4Zdt96b9Dx5t83TcR9zz+" + "M9767VLC9uLjfAezqq0M7gCUCUpGulN1o0TzxBRvNTlEUnE4nmpqa4HK58N1334U" + "dq2Sz2WTSTQQoisLJkyfR29sb0Rj2eEe64cDP9ufl5WHmzJlBo2OpjcwjJV2aptH" + "Y2IiWlhaMHj0ac+bMCbggQ1UVJLoaJFjSrrqawapVGrz7rtBfdUx+" + "A7beuAI3nfOi6Hpdtnys/" + "dtD+MuHvwZFD1waRiOD+" + "fNN2LSpEMlShixVQk5qW8dYjWfYsUoZGRnIz89HYWFh0LFKHR0dePbZZ+" + "FwOPDJJ59g6tSpKCwsjPl7oSgKM2bMwKhRo/Dmm2/" + "GtJYYUpZ0VSoVcnNzw5Iti3gYmbPHESoqZRgG3d3dqK2tRVZWFqZNmxY2QZZoeYE" + "ffQ8fPjykyXkyWztarcD27Tr8+c8a+HwD54RB58CKn2/F/" + "VfsQro2cOgnQWqw951F2PT6alhdA4/ASiWDO+/" + "0YdUqAvX1jdDpCgP2HSpI5eYlta2jVEbifE03mA+F1+tFQUEBFi9ejA8++AB79+" + "7FOeecg7Vr18b02Xv37kVVVRVsNvHpzLEiZUlXoVBwd8FIMBSRbk9PD2pra6HX6w" + "Ocv0IhHvKC2A2HbwWZk5MTMvpmEUpeGKppwP1m4hps3KhFT49Qt73tR89g8w2rMD" + "KnTXTfg19ei2UHtsPUUS7YPnu2BStWdGPqVI1gbE+" + "yQEp5QcpIN5Fr6XQ6zJo1C2q1Gjt27JDkc5ubm/HPf/" + "4Tq1evxsMPPyzJmv5IWdKNFlIYmYtBjCAtFgtqamqg0WiCOn9Fu2YsEIuc+/" + "r6UFNTg/T09KhuCMkkLwDAhx/219sePy68QM8b9wl233Jv0Im7R+un4N7nduM/" + "Jy4UbK+spLBxowfnnuuGw0FzSTun04ljx44F+" + "NsOVYNNMlYvDMWoHilnsgHA4sWLsX37dtjtdsnW9McZRbrxjnRtNhtqa2sBIKzzV" + "yhI7eTF14gdDgeqq6sBAFVVVVEfY6LG9YSTF2prFVi9Og1vvx1oJr79pmW4Yc4ro" + "vu1Wwqx+uVNePrjO0AzAxdrTg6DVau8+NWvfOiXJTOQmTkQ4R4+fBjjx4+" + "H3W4PaJP177STqhU2FE73SDdS0pWyBfjNN9/" + "EsGHDMH36dHz00UeSrCmGlCbdaHS/" + "eGq6DocD33zzDUiSRHl5ecw1g1JHugqFAgRB4LvvvoPb7UZFRcWgs71D3TptsfTr" + "to8/" + "LtRtM9LsWPnzLbjvpw+Lmol7CB0efvs+" + "bHljJRyegRuNWs1g4UIfli3zIpSHEF9X9G+TZRM8HR0dMJlMnLYZzlIxFsiRbj+" + "krNE9dOgQ3njjDbz11lvweDyw2Wy45ZZb8Nxzz0myPouUJt1oEI9I1+VycaO4J0+" + "eHJXzVyioVCoQBCHJWgRBoKWlBb29vZg0aRIKCgqGnDgHg1C67R3nP43NN6zC8Ow" + "O0X1f/" + "vx6LDuwHQ3dxYLtl19OYtMmT4ApTTRQqVQhO+" + "34lopqtRoejwetra3IzMyMqdMOkOYGmMzj1yNZS0ov3S1btmDLli0AgI8++gg7d+" + "6UnHCBFCfdaD11pSJdvlNZYWEhDAaDZIQLSBPpUhSFhoYGtLW1oaCgABqNRtKpxf" + "EG/" + "ynmo49UWLEiULf90fiPseeWxZhWclR0jSPmaVj87B7899SPBNsnTOg3pbn4YmkN6" + "PnHLtZp5/" + "F48M0334CiKO5mzTAM9Ho958gWbaddrIjFrcwfUhI4ENn1nWoG5kCKk240CGVkHi" + "kIgkBdXR16e3u5pgG73Y6GhgaJjrIfsWi6NE2jpaUFjY2NGDVqFObOnQu73Y6mpi" + "ZJjzERaGpKw4YNaXjrLWHtZ3GBGdtvWobrZ/" + "9NdL+2vuFY+fKWADPxvDwaq1cTuOMOHxIguwZArVZDq9Vi9OjR3DZ2/" + "A47B43ttGOHUrJkHK+" + "kHUVRknkgSzmUMlLEqwX4wgsvxIUXXij5ukCKk240J6GYkXmk8Pl8qK+" + "vR1dXV0AjRjINp/" + "S3WmQL1aWu+403LBZg8+ZMPPnkMJDkwEUciW67860l2PaP5QLdVqNh8Jvf+" + "LB0qRdD2aIvVlLHds/" + "xy9L4zQB2u12QtDMYDMjMzARJklH5EwRDPCwiE4lU810AUpx04w2SJNHY2Ii2tja" + "MGTNGtEMrGcaw9/" + "T0oKamRmC16L9eKsw1o6h+" + "3XbDhkDd9vYf7cfmG1ZhRE676L4vfnYjVry4NUC3Pe+" + "8HuzcqcCECYPvlJKqGSRSggvWDMC2yNrtdpAkiWPHjsWctJNaEpAC0XTbWSwWjBo" + "1Kvwbkwgy6YqA3w47atSokB1aKpVK8gRdpJGpzWZDdXU11Go1zjrrrKD1wKkwTPI" + "//+nXbX/4IbDeds+tizG95GvR/" + "b6qm47Fz+" + "7BoerzBNsnTqSwZYsXubknUVpaCSA20pUigot1HbZF1mg0orW1FdOnTwfDMPB4PL" + "Db7QFJu0imAyfj+" + "PVobR0nTpwY5yOSFilNuoM5gUNFG3w9dPjw4Zg9e3bYHz9e8kIoknS5XKipqYHP5" + "4toOGUyk25dnQJr1ujw5ptCUgxXb9vaNwIrX9qCZ/" + "97q0C3zc+" + "n8cADBG67zQeVCvj227geflSQkrxZKBQKpKenIz09PcAe0386MJu047uySWV4I2V" + "reLSkKyfSkhgajUbUhpFhGLS1taG+vj5ADw2HeGhYwYhczGoxEsSbdGmaRlNTE+" + "ezy8/EB4uibDZgxw4d/vQnjcDflvVJWHLFzpC67dY3VsDpHdBBNRoGv/" + "2tD0uWeMG/BqUgOilH7CTKS1dsOjA/" + "adfX14empibYbDa43W5kZWUJ7DGjJeKharKQNd0EI9oT2N/" + "7lmEYdHZ2oq6uDjk5OZgxY0ZCy3WCwZ90Q1ktRoJ4kS7r3VBbW4uCggJMmjSJe9R" + "tbW0VLYnS6zPx0kt6PPSQNsDf9tbznsWWG1cG9Ul46fMbsOzAdjR2jxVsv/LK/" + "iGQZWXxMeKRMkKVKqoczPGIJe2OHTuG0tJSLnHHOnixSTt+" + "BUWo6HMoGiOA1PPSBVKcdKMFS7qs85fJZEJmZiamTp0q2WgcKcCSZCRWi5EgHkMe" + "LRYLqqurodfrMW3aNOh0OhAEAZ1OJ3jcY6Mru92Od9/1Yvv2XNTWCr/" + "rcyoPYc8tizGz7CvRzwpWbztpUr9ue8EF8a3MSBZNl4WUOiw7wSEzM1M0aedwOLj" + "AhCRJpKWlCYiYTdpJUUnBQibd0whqtRp9fX04efIk0tLSMHnyZOj1eknWltphiyA" + "IfPbZZxFry6Eg5XG5XC643W7U1tYKvBuCkbpSqURXVyYeeCAfb7whlGxG5zVi2/" + "zlQf1tg9Xb+" + "uu2qYKhnmsmhmCaLj9px4JN2ol12mm1Wni9XthstqBJu0gRDek6HI6kdIELhZQm3" + "WhOPKvVis7OTuh0OkyaNEnSH4qVA2K90/" + "O9d2majshqMbJ1Y14CPp8PJpMJfX190Ol0mDJlSsDf6x+B2e3Arl1a/" + "PGPwrlkep0Ty6/chqVX7hD1tw3mk6DRMLj7bi+WL/" + "chkbmTZIx0paqtjUby4Cft+" + "NMeSJJEW1sburq6gibt2MnAkSBSqYK90Se6ISNWpDTpAuEfne12O0dihYWF3GORl" + "JCCdNnHddZq8ejRo5IQbkcHsGCBBj/5SS7OOSf6/" + "fkSB9sY8uWXXwq+c4ZhQNM0GIaBz+" + "cDTQMHDmixcaMenZ1C3faX57yArfNXoChXfM7aK19ch2UHtqO+q0Sw/" + "eKL7bjnnjrk5fWiulqoE2dmZsY8sSAUTmfSlQJqtRrp6enIzs5GaWkpgP5jdLvds" + "NvtXNKOIAhoNBpBopU/" + "docFSZJRPYGmmpdIypNuMDidTtTW1oIgCJSXlyMnJwfNzc1xtXccTDulw+" + "FATU0NGIYZlNViKHzwgQJ33qlBR4cCX31VheuvZzByZGT7sh1uJpMpYJoEe6NjyZ" + "ZN0mk0Ghw6pMTy5TocOyaMVGaXf449ty4OOpfsaP0ULH52Dz4+eYFg+4QJ/" + "brtRRcBQCmAUoFO3N3djfr6ek5v5BOxTqc7Y6sXEg3/" + "6JQdMOlfO04QBGePKZa0y8jIAEEQEdk1SimzJBIpT7r+" + "ka7b7YbJZILT6UR5ebkgOZBII/" + "Nw8Hg8qK2thdPpRGVlpWgyYLAXO0kCmzapsHWrCgzTv7/" + "FosUdd9B4++3wOmhfXx+" + "qq6uRmZmJGTNmBNxMlEolSJLkRvcoFAo0NiqxZo0GBw8KT6mi3CZsnb8CN5/" + "7guhnBfO3zcujcccdJqxePTzAJ4GfhR8xYgSAAb3RbrfDZrOhtbUVXq8XHo8HZrM" + "ZWVlZyMzMHJSHgVRJyGQcsSMVIpUEtFot8vLygibturq60NnZiZ6eHgERZ2ZmBnT" + "a2e12SYOURCHlSZcFO4LdYrGgrKxM1MJwqIdTAv13enZ6cbDjBAYqGKJNSLS0ALf" + "frsF//" + "xt4UX78sRKbN6vwwAPiNwin04nq6mowDIOJEycGyDAs+" + "ajVapw4cQJZWVlQqbLw5JP5+OMfdfB6B/6OdK0LS6/" + "cgeVXboNe5w74LK9Pi91v34vNb6yC3T0Q1ajVDH79ay8WL7ahvb0NSuUwAJG1zoo" + "1CXz99dfIzs6G2+1Gd3c3XC4XVCqV4GKOJPEjywuhEYu85p+" + "0IwgCxcXFnFc1f0Q7+" + "9t1dXWho6NDEgPzpqYm3Hbbbejo6IBCocDChQuxaNGimNcNhpQnXZ/" + "Ph9raWvT09KC0tDToCHZg6IZTAkKrxeLiYlRWVoa8ANmutGhI9513lFiwQI2enoF" + "1L8F7OAvfYTfuAwBs3qzCeefRuOiigeiNIAjU1tbCZrOhsrJS1KaSLyVUVVXB4XD" + "huecU2L49B93dfD2Vwfy5L2Lb/OUYky/ubHbwy2ux5PmdMHeVCrb/" + "9KckNm70oLDQypXzURTFfbcKhYL7FynpKJVK5OTkoLBwYKgkSZKi3Vr+" + "damsTny6ygtSd5FJ5VbGThXW6XSiSTuHw4ETJ07gpZdewtGjRzFt2jRUVlZi/" + "fr1GDduXNSfp1arsWvXLkybNg12ux3Tp0/" + "HT37yE0yYMEGSvyfg8+KyagLR2tqKjIwMVFRUhD0R4xnpBiNdf6vFUD4OfLD+" + "C5EkiAgCWLdOhd27B35OFUisxzqsRL8p8zeYgg9xMRimX+c9fJhAXt7AjSBY04W/" + "bqtQKHD4sBrLluXjyBHh33F76VPYdutyFFZ2iR7nNw1n497nduOj4xcJtldV0di6" + "lcD553tgMplgMjm59mY2Qcf/L9B/8bHHqlQqBf/b//" + "j9oVarkZ2dLehkomla8IhrNptBkiTS09O5GmSPxwOdTjdo4kw2eUHqLrJE1Omyv9" + "0111yD3NxcvPPOO9i9ezdqamowfPjwQX3eiBEjOJkqMzMTVVVVaGlpkUk3GIqLiy" + "PWU+NFumKmN3yrxfz8/Khai9k1I/m76uuB227T4PDhgYuwCE14Ab/Ej/" + "BfbtvzuBlT8A06UYj2dgVuvpnC2rWfo6hoJObOnStKVv5k29zcr9v+7W/" + "C02Zazld4+cYbUfajOtFj7LQWYM0rG/" + "HXjxb4zSWjsGyZEwsXAu3tzThypA0lJSWCpxX2uPjkwB4TRVGChB5/" + "m1KpjIqYlEolMjMzkZmZKdCJWVmir68Pp06dgtfr5TLw0XrdJpu8kKyjeiL1g2Bb" + "gNVqNaqqqiT57Pr6ehw9ehSzZ8+" + "WZD0xpDzpRjs9Il7yAp90WavFzMxMTJs2bVDdbpHYMb7xhhILF6phsQx8Bz/" + "Dm9iP25GHXsF7C9GBH+" + "N9HMAvAQCffKLHoUPnYsUK4Zr8qJIlCZdLgYcf1mDPHjU8noHPSoMbS7ATa69bD8" + "2PAm8QBKnB3ncWYeNra2BzDxTWqtUMbr/" + "dgQULWkAQHTh0yAaNRoO8vDyQJAmbzRbSt4G9IPkXJvtdsTcKhmFgsVjgdrtBURR" + "8Pl/" + "U8gQ7ASI3NxcOh4OLfNgMPOt1y9eJWSIW04mTjSyTdSglENl1LbXZjcPhwC9+" + "8Qvs2bNHsmGXYkh50o0GsRiZhwJbFRGp1WIkCGXv6PUCq1ap8OijAz+" + "fBgS2YCXux8MB72/FCNyM5/ERBh7rhw1jMH26AkD/98F+L2yk2H/" + "SK3HggApr12rQ1sa/" + "yBncgJexA0sxBk3A3wHMAcC7txw9MgU3PP8yajsqBMdy2WUUtmwhMHKkC9XVXdDr" + "9Zg8eTLUajVHZM3NzXA4HGAYhiMy9l+wpwU+" + "EXu9XtTW1sLj8eDss89Genp6gDwRjU7sH6GKZeBZrdFutwfoxCwRkyQpST1xspE3" + "MDS+vBaLRaD3xgKfz4df/" + "OIXuPnmmzFv3jxJ1gyGlCfdZKjTI0kSra2t6O3tRWVlpSR332DyQl0dcMstGnz99" + "cDFUgwzXsR8zMbhgPe/jctxO/ajCwMZ/" + "QsvpPHUUz787ylaICWwBHT4sArLlmnw1VfCC2k6vsIeLMZ5ODSwsRfAmwCuAzxNO" + "qx5dgN2/bBUsN/" + "48TS2bCFwwQX9LcTV1R5UVlYKSn6C6aw2mw2dnZ0wmUwgSZIjsszMTBiNRq6JhG3" + "kYDXqYcOGCSZ88Nfl/" + "83hiDgSWSCUTsxGxD09PaBpGj09PYKbiVarjeo8lsp7IRkj3WgkGJvNhvLyckk+" + "c8GCBaiqqsJ9990X83rhkPKkO5RgrRZ7e3thMBgwbdo0ydYWI91XX1Xi7rvVsNkG" + "Tspr8Cqewp3IhlXwXhIqrMYm7MBSMGCjQAZr1lBYvpyCSiWu27a09Ou2r7wiPDVG" + "oBWbsBp34mnR4+3+Zy7e6v0Zfv3JEyDogZA3J4fB6tU+" + "3HmnF21tjTh6tAOlpaURTSXm66wsGIaBy+" + "WCzWbjZooRBAGlUgmPx4Pc3FzuKSPY+" + "sF0YrGEHUVR8Hg8oGkaFEUFTdhFcvwNDQ3QarXIysqCw+" + "GA1WpFS0sLvF5vVDPRpCLdZIx0o/" + "H3lcrs5tChQ3j22Wdx1llnYcqUKQCAzZs344orroh5bTGccaSrUChiPtn4VoslJS" + "UoKiqK63BKrxdYsUKNP/1p4KTWwosdWIo/YF/" + "Avo0Yjfl4EZ9hoO+3oIDAE0848dOf6sEwDChKSLYulwK7d/" + "frtm63ULe9Dw9jJbYgA86Az/" + "JBjX34PR4i1sL6n4EoT6VisHAhiRUrCJBkB44eNWPEiBGYNWtWzGPH2U6nESNGwO" + "l04tSpU1AqlRg1ahS8Xi9qamrg8Xig1WoFEXEoIhMjYnY2Xk9PDyoqKsIm7ML9XQ" + "zDQKVSiU4K9nq9gploYjpxRkZGxJF30xosywAAIABJREFUJBiK5Fck60TjMCaFl+" + "55550XF9kxGFKedGP11I0GwawWXS6X5FURbKRrMgG33iqUE0phwku4ETNwJGC/1/" + "Fz3Imn0IeBWtvLLqOwbNkpVFXlg6J0giQZwyjw4ov9um1rq1C3vR6vYDuWoRjiN5" + "R/" + "4EoswU5UQ1gbecklFLZuJTBypAU1NTUwGAyYPn26pF7FPp8PdXV1sFqtqKysFL34" + "CIKAzWYLIDI+" + "ERsMBtHKDdbOsKioSHCj4CfsWBJmn0jC6cShyFJsJlownZimaXi9XqjVamRmZg66" + "VEvKSJf9e2PF6W7rCJwGpBstBkO67GQJs9ksarUYr5E9b72VjtWrtQI54Rf4G/" + "6KBciCTfB+" + "Ahosw3bsxSIArI7JYMMGCosXUzh1ioLD4eCy6kqlEl98oRTVbafhCPZgsaDkjI/" + "vMRH34WG8h0sF2ysrWd3WBZOpFiYTgfHjx0tqMMQwDFpaWtDU1ISxY8eGbDLRarX" + "Iz89Hfn4+" + "t83n83EJu4aGBjgcDigUCmRkZMBoNEKtVqOlpQV6vV70RhEsqg0lT7ARcbTnSDCd" + "+MSJE1Cr1ejq6kJdXR03nJLvOxGJTpyMQylP91E9wGlAuoONdCMB32oxJycnqNWi" + "1PW/Xi+wcWMB9u8fOKG08GIX7sfv8GjA+80oxo14CV9iFrdt9GgGzz7rw+zZ/" + "TLCsGHD0NzcjObmZnR06PD00+Pwr38Jx/" + "0MRxs2YxVux34oEfi41Y08rMN6PI67QfFOnexsBitX+" + "nDXXV60tNTj2LEulJWVIT8/" + "X9JEZ19fH2pqarjfYjARnkajQW5urqDrjqIoWCwWmM1mOJ1ObqzTqVOnuIg4nJNZ" + "OJ24u7sb3d3dKCgoEJQtso0d0XTYqdVqFBQUcITD1hPb7XZYrVY0NzeDIAhOXuGP" + "4eH/" + "HsnYTkySZMQ3ArvdLpPuUCGayQiREiRrtZiWloYpU6YgPT096HulHIdjNvdXJxw5" + "MtBSGUpOOIhr8Sv8H6wYiIauvJLC44/" + "7kJ1NgyT7jysrKwtqdTYefliDvXsD623vxW6swuaguu0f8Ts8hLWwYOBxTqlkcNd" + "dJFatIkCS7Th6tB6jRo2KWbf1h9vtRk1NDWiaxsSJE2MqxfMH28TS0NCAsWPHYsS" + "IEZzuz688YCsnWEtJloxDtb4qlUq43W6cOnUKKpWKi5z9a6H5EgWr+" + "4ZK2PmTJVtPrNfrBe3OXq+Xc/" + "Tq7OzkvAtYInY6nZKY+Euph0aj6SbjJONIcFqQbjQIR7qDsVqUKpr7xz+" + "UuOsuNazWyOSEJdiJffg9WDlBo2GweTOJe+" + "7xgWFo0DQ43fa551R48EEN2tuj023fxM9wP3YF6LYXXURh2zYCo0b1cY0gM2bMkN" + "TXlqIo1NfXo6urC+" + "Xl5QKZQApYrVZUV1fDaDQGHHuwygm32w2bzQaLxYKmpiZ4vV7odDouGjYajUhLSw" + "PDMKivr0dnZ6eon0UsHXaRRqisTsz/" + "3kiS5IjYYrGgu7s7YKBotDrxUMxHS2TiS2qcFqQbTaQbzPQmEqvFeMHnA9asUWHv" + "3oGfQwsvdmIJfo8/Bry/DiW4AS/jCGZw24qLaTzzDIFp0waaGxQKxf/" + "8bTU4elR4UczAl9iNe4X1tjz8gAm4Dw/" + "jXVwm2D5qlAuLFzfhkks8sNmsMJkUqKqqkly37ejogNlsjkvkzBr8uN3uqI6dH1G" + "yff4Mw3ARpc1mQ1tbGxwOBwiCQGZmJkaPHs1Ft+EqJ8R0Yv+EHUmScLlcoGma85+" + "IRp5Qq9XclGCfzwej0Yjc3FxBVB9MJw4W1UtNupHkW9jrPRnq9KPFaUG60cA/" + "0mWz4D09PSgvL4+oflRKNDX1Vyd8/" + "rmw2eFl3ICZCBzU+HfMwwL8VSAnXH01hUcf9SAriwHQfwHW1yuwZo0Gr74q/" + "IlHouV/uu0zoscTTLfNymKwYoUPv/oVgcZGOzo6epCZmQmfz4fvv/" + "8eer1eEO0NNuK12+" + "04depU0ERWLKBpGs3NzWhpaQlonhgsFAoF0tLSOAP1U6dOwWg0oqSkhGsXrqurg8" + "vlEkTPRqORKwELBn50619RwcoCYhFxpETMRsyhonq73Q6LxRJSJ5aadENJeSwcDk" + "dKeukCZyjper1egdViuCx4pIi2fvLdd/sdv/" + "hWjFfhDezH7ciBRfBeAhrcj134I34HvpywZYsPCxcSUCj6CcBuV2D7dg0efVQtmE" + "uWDheWYCeWYxsMcAUcSyjddsECVrdtw3ffNaCoqAjjx48XEALbsNDd3Q2z2Qyfzx" + "dAxKEIlI0+XS4Xxo0bJ/" + "kFxRqz5+XlYdasWZJqgTRNo6GhAR0dHaioqBCUffmXgLGVE01NTXA4HAAQ0Ors/" + "3jtdrtx8uRJaLVa0RtRqMoJFmIJu1BkKaYTMwwj8J1gdWL2GFpbWzl/" + "4sE+" + "mUSq6Vqt1rj6I8QTpwXpRkN0KpUKfX19aG9vx8iRIyO2WgwH1t4xkhOGooCNG4WT" + "HdTwYTNWYSl2BrzfjGLcgJfxFWZy24qLaTz9tAfTp/e37lKUAvv3q/" + "HQQxp0dw98HwrQuAkHsBUrMBrNosfzD1yJ+7ELNagUbL/" + "wQla37UVNTQ2ys7NFdVv/" + "hgVggIjtdrugc4x9ZGVNqzUaDZqamtDa2hrUXjIWeDwe1NTUgKIonHXWWZJNf2bB" + "mhsVFhaGlUH4j/" + "YsaJqGw+GAzWZDe3s7lzBkE3bszWz8+" + "PFBJa9IOuzEEnasPBGpRqxQKER14u7ubrS1tYGiKDQ1NcHp7E/" + "G8o3iMzIyIro2ItV0rVZrSlYuAKcJ6UYCViesqamBUqmM2moxHFinsXAnTGdn/" + "2SHDz8cOMlHoRkvYr6ovvoarsadeEoQfV51FYnHHvMgJ0cBhUKJ999XYsUKLY4fF" + "144c/" + "AZduNezIH4XLLvMRH3Yjf+" + "jZ8ItpeX09iyxYcLL3SgpqYaDQ1M1FUDfCLm658ej4dLRLFjldLS0rhHfTYxFSvx" + "8qPPeCThPB4PN2WDNdUZDJRKZcCoc5qm0dbWhrq6OqSlpUGtVuPkyZOCGxarsUbb" + "6gz0E1tzczNXHudvFB9phx0fBoMBo0eP5v4/" + "fwQPO2uPoihuQjBLxP46caSka7FYJOlGGwqcFqQb7gLt6elBbW0tMjIyMGnSJDQ0" + "NEg+PVbMU9cfn36qwC23aNDaKpzs8AJ+iQJ0C97rgxrLsQ27cS/4csKmTQTuuad/" + "PtnJkwqsWqXFv/" + "4ljNTHoAFbsQI34UXR4+" + "hCPh7ABjyJu0R127vu8qClxYzvvutFRUWF6CSJwYAdqcM+" + "ihoMBpx99tkAwCWiWlpaOLNw/" + "4qASImYra2OJPqMFmxXYnt7e1zInCAIVFdXw+fzYcaMGRyZ+9fi8isn+" + "Dqxfy0uH0qlEjabDSdPnhTILPyEXX+LeGQddizEZAr/" + "ETzs3+ByueBwOAQTgnU6HUfEXq83Ki/" + "dVMRpQbrBYLPZUFNTA5VKhUmTJsFgMMDr9SZ8egTDAPv2qbBqlQok+b/" + "6S1BYg41Yh/" + "UBjQhNKMKNeEngnTBmDI1nnvFi5kwGXV0KbNmiwZNPqkFRAxdYBuxYga24H7uQhs" + "ABnAQ02ItF2ITVgkScStVfb7tyJQGvtwXHjjVh9OjRmDVrlqSP+" + "iRJcnPsKioqBI/L/" + "rPN+" + "EMm29ra4Ha7odVqBUTsTzAulwvV1dVQqVSYMmXKoHyMQ6G3t19mKSgowMyZMyXVh" + "fmddmKz80LV4rKtzh0dHXC5XFCr1dz3xGqsNE3DZDLBbrdjwoQJgooNMcP3SDrsW" + "CKONJHGf/" + "oJphO7XC4cO3YMarU6wJ+" + "Yf4wy6SYZXC4XampqQBBEgNViPI3MxUjXbgfuvluNgwd5k27RjedxMy7DuwHvfwe" + "X4RY8hx4MRFCXX07gL3/" + "xwWBQYM8eNbZv1whqeZWgcCeewkaswXB0iB7fQVyLZdgOE4RWeJdc0u9vO3x4vza" + "Zm5s76G6vYGAYBq2trWhsbMSYMWNQUVERlszZigC+Xyq/" + "NIslGI1Gg4yMDHg8Hi4Jx09eSQGv14vq6mpQFIXJkycPWkoIBrvdjpMnTyIrKyvq" + "716n06GgoEDwPbGtzjabDfX19bBarfB6vTAajRg+fDgnJ4Qiykid2Fiz+" + "KysLPh8vqg77Px14q6uLsyaNQs+n4/" + "znWB1Ypa0jx49ipMnT6KkpCTi7ykU3nnnHSxatAgUReGuu+" + "7CCn9nf4mhCFPfmhIVyDRNw+fzcVaLVqsVFRUVQR/" + "9Pv30U5xzzjmirw0WNTU1yMrKEkRrJ04ocOONalRXD5yAs/" + "E5XsH1AUktCkqsw3psxirOilGlYrBoURuuvroO//" + "53Fv761wq0tgqjt4vwAR7GfZiCY6LHdRRTcB8eFhiYA8C4cf0+CeedZ+" + "d07oqKCskJhe3sy87ORklJiaSyDkvmdXV1XPkV23XFj4hD2TyGAk3TaGpqQltbGx" + "d9SgmSJGEymbhEmdQVGx6Ph3NgKysr4yJKm80WYBLPfl/" + "REL7dbseJEyeQk5ODMWPGcPXyfE6JpMOOj8OHD2PWrFmir7E68SuvvIJXX30VHR0" + "d0Ov1mDRpEvbv3z+" + "o35iiKFRWVuK9995DUVERZs6ciQMHDkgxHy3owZwWkS5JkqitrUVnZydKSkokz4B" + "HAv9I95VXlPjNb9RwOtnjYPD/8Cgexn3QQhhpd2AYfokX8AF+zG0bObK/" + "2UGtzsWKFYX47DNhVFKJU9iBpfg5/" + "iF6PG0YjtXYhP24HTQG9s3NZbBqlQ+33+" + "5GU1MdfvjBGvCoLwXYqgGSJCVv3QX66zRPnTqF9PR0zJ49W1BGxY/" + "0WD+FSNzF+GBLzPLz8+MiJbA1t2PGjJGkXNF/fbYema876/" + "X6oCbxHR0dqK2t5ZJdYibxLCiKgtlsRl9fn2jXptjopMFM7PAHezNdsGABTCYTrr" + "rqKvz4xz9GU1PToL+/w4cPo7y8HKWl/" + "ZOp58+fj9dffz1uQymB04R0aZqGVqvlrBaHAmzThc/XP0pn376Br9YAB57A/2/" + "vzOOjKs++/" + "51sJCErS2JICNlnwiaQIPRVi69vFavWviKCRcWN0ipCfHADsQJiAVFBEUvhQfFR6" + "1bbqq8LfXywVKUQdhTJShLIvpBkJtvs5/0jvU/OZCEzyRkC4fw+H/" + "5gktznzmTOda77un7X77eQebzX5ee+5Srm8gGVjJJfu/" + "ZaB6tW2di82a+LCeQwzrKS1TzIVvzpWptuI5AXeYzneZIWOup2fn4Sv/" + "mNnSeesNDWVs7x42Wq8ZOVEPznmpoar2SHYphF2MV3RxvqTtRGcGRNJpOsLtbdsI" + "LNZqOgoACbzeYVillvnNv+" + "QpQqIiIien1YeCISHxgYSFhYGDqdjqqqKmJjY8nMzOz2s9MXJTYBdylsJpOJiIgI" + "fH19SUhI6PV96QlCplUgLi6O7Ozu2T5qYVAE3SFDhhAfH+/" + "296shZN4Zvr6+VFQ4ufdef/bu7Vg3jTz+yizGcbLLz7zIoyxnHXb8/" + "70viUWL7Pj4wHXXDcFiUfhyYWExr/" + "I0z3VxiRB4hztZzjrKGO3y+k9+" + "UsuSJWUkJdnIyzPK2ZvadVuRvY0aNUp11oCQ1xTCNJ4+" + "LLrjyDocDjkQnzlzhoaGBqxWKxEREURFRWGz2VSbthIUNqHFoPbJwuFwyE3K/" + "pQqeuJcNzc3k5+fT1tbG4GBgVRUVFBXV+dSmujNFflcdWJxMgoPD+" + "9CYesuI75YtXRhkATd8ylk3hOOHw/" + "mN78ZTm1txwfjVv7Km9xLGE0u32silHt5k7/" + "RYYAXHi5x5ZUO3nvPz2VCDSRu4y9s4AmSKO722nv5XyxlIwdwtY0eN87J889bycx" + "0kpfXRGurk8jISJqamjh48KA8MaYcVOgLmpqayM/" + "PJygoiClTppxTeasvMJlM8nitmqI6vr6+" + "8nG7qqqKmJgY4uPjZVEbYZAJdKl9ehKI6+vryc/PJzo6mqlTp6p+GhMUuXNln/" + "2BUFlLSEjgsssuk9dXisTX1NS4LRKvhE6no6amhuLiYpKTk4mKinIrI66urlaFvR" + "AbG0tpaan8/7KyMmJjY/" + "u97rkwKBpp0N5hdhdHjx5Fr9erJGsHO3b4sHSpHzbbv8XDsfN7VvAkG7p8/" + "w+M5zb+" + "0mX6KzBQcpFbhPam20s8ypX8q9trF5HIkzzPR8xGWbePipJYudLK3LltnD5dRFNT" + "E6mpqS4fUuUxUtw4NpuNoUOHykG4Nw1Zq9UqDzikpaWpPpapFKbR6/" + "WqiuqI9QsKCrBYLOj1+h7rzsqpMdGEcjqdsvB5T+O7gnNrt9vR6/" + "WqNykFq8LpdKLX61WnyFksFnJzc/" + "Hx8UGv17uVpChF4oWamU6ncxlzFg8ti8VCTk4O/" + "v7+pKWlnfOzJgKv2Wxm48aNvPXWW5w8ebLfnzm73U5aWhq7d+" + "8mNjaWqVOn8u677zJu3Lh+rctgb6SBdzR1e4PFAkuW+PBf/9XxYRlBLe9zB/" + "+Hr7t8/zvcyW/" + "YRitdb25lwE2gmPUsYy4fdnvdRsL5PSvYzBKsdGSVQ4ZILF5sZ+" + "lSC0ZjGceOlZOQkIBer++S/" + "fR0jOysISsaK8qM2MfHR27UJCYmYjAYVM2unE4n5eXllJWVqSZMo4RoNLm7fk9TY" + "8omlBjfFRKJFotFFlFSMlrU2r/g9AqRJrXXFxQ/" + "T9fvSSRe0L8qKipobm6W+" + "fLR0dHyxOK54OPjw7Fjx8jKyuKWW26huLhYlROPn58fW7ZsYebMmTgcDu6//" + "341Au45MWgyXavV6nbQzcnJITo6ul+" + "TVmVlTm67Tcfx4x3ZxRQO81dmMYYzLt9rw4//YBOvsYhzPACJoIEV/" + "J7FvMoQrF2+bseXP/" + "JbVrHKhccLMGeOnVWrrAQHtwfLqKgoxowZ0+96pAjEIsurr6+" + "nra2NoKAgYmJiCA8Pl21u1IBSmCYxMVF1kWqj0UheXh6RkZEkJSWpLnxTW1tLYWG" + "hbImk1FHobxkH2lkbubm5hIaGkpycrGpdHto57jk5OQwdOpSUlBTV129rayMnJ4f" + "AwEBGjRol63OYTKYuIvGhoaEEBgZisVjYsGEDe/" + "bsYdu2bUycOFHVPXkJPd7ogybo2mw2t90buuPUugtJkti1y8gDD0RQX9+" + "RZd7NW2xnYZdJsHJGcTt/" + "dpku64wALCziNZ7mOYbR0O33fMoveIIN5GFweX36dAfr19tITzeRn59PQEAAKSkp" + "qh81xbSXj48PKSkpOJ1Ol9KEw+" + "HoUprw5IZVCtOkpaWpzhpQlioMBoPqFDbBuW1qanJRSeupjOOJAht00LTq6+" + "sxGAyql3LEeHN1dTV6vV71aS8lja07UXfxPaKe3tTURHZ2NuvWrZOHnH77299yzT" + "XXuEzkXcDQgq4SJSUl+Pv7e1wwNxqNbNrUyEsvpWCztTcH/" + "LDxEo92a4X+T37KHD6khu4/" + "JDqczOFD1vJUj02yw0zhMV7sMtyQkOBkzRobN93URlFRe101NTVVdeUlYTdfX39u" + "HQblcVvcNMq6Z08NKG9rGSiP4omJiURHR6teqlBybkeNGtXr+" + "p2Di8lk6laBTTQkRSMuJiaG0aNHq96IU+oxJCYmqr6+" + "yJ5DQkJISUlx63RhsVhYv3493377LatXr8ZsNnPkyBGuvPJKfvazn6m6Py9h8Add" + "u93utttqWVkZDoeDMWPGuPX97UeiAl55ZRQffNARqEdQy4fM4X+zp8vPvEwWj/" + "OCTAfrjBnsYQNPcAUHu/" + "16KXE8xVr+xJ3yhBq0sxyeeMLGb35jpbq6PVglJiZ6pe4pKFqjR48mNjbW4/" + "V7C8SidnjZZZcxZswYrwSTvLw8wsPDSUpK8spRPC8vj4CAAFJTU/" + "vFhlEqsIn3ymw2y0aNY8aMYcSIEaoosAkoaWZqu39A++" + "905swZKisrMRgMbmfPhw8f5pFHHuH222/nscceU/" + "3vdp6gBV0lqqqqaGlpITk5+ZzfJ4j4Z84YeemlqezZ03Fkn8hxPuGXXbzF2gjk1/" + "wnf+KubtccxwnWs4yb+bzbr5sIZR3LeZlHMNPR7fbzk/" + "j1r+08+aQVSWq3VImOjiY+Pt4rdU/" + "hHZaUlKTq6K5wxhVNOnFDKelYnlKyOsNms7kIoqsdTJxOp+" + "zd5g3OrXjglZSUyHY/" + "gg3QXwU2AZE9x8bGEhcXpzrNrLm5WR4Rdrc2bzabWbduHfv27WPbtm1eb2h5GVrQ" + "VULYYRsMhm6/Lo685eXl+Pgk89BDo8nJ6cjCZvEX3mJ+FweG08Tzf/" + "mYY0zusmYcpaxmJffwX/jStQxiw48/8lue5RnqcO0W/" + "+IXdtassXHZZSaZD5ucnKw6H1b4xIkamtrBStQlz54961Kq6EzJampq5zUrSxMhI" + "SG93rjKrntnTqlaUHJuvZGdt7S0kJuby9ChQ0lOTu72gadUYGtqanJLgU3AZrORn" + "5+P1WolPT1d9dq/" + "GAKpra31qPZ88OBBli5dyty5c1m6dOnFmt0qMfiDrjDtcwdCj3T8+" + "PEurwuh86KiIqKioqipSWLu3EBqazv0E57mOdbwTJc19zCD2/" + "lzl4AZST3LWM8SNncrtwjtvmfLWE8hqS6vZ2Q4WLvWxtSpbRQWFmI2m0lLS1NdGM" + "XhcMhNlOTkZEaMGOG1uqfIrNzx71IGFhGIlcT70NBQeR0x/" + "hoWFuaVrr5S59ZgMKjOuVVmz31pZCkV2IREor+/" + "v8t71dzcTHFxsVdq29AhgDNixAgSEhLceiC1tbWxdu1aDh48yLZt20hPT1d1TwMI" + "Legq0dLSQkFBAZMmTZJfa2xsJC8vTy72//3vQcyf7yfzZ4dg5g3u71Y/" + "YQuL+A82udRvg2lhCZt5kud7HNv9jit5nBfYz09cXo+" + "JMfPoo2eZPduJydRIbW0tSUlJqptmSpIku79edtllxMfHq565KYVpUlJS+" + "lX3FHxP5ZCCcnIpKSmJ6Oho1cePlTq3anNuoYMmJ2h+" + "au1fqIrV19fLdjpDhw4lPDxcDsbBwcH9vp7T6aSoqEgWwHH3hJSdnc1jjz3GvHnz" + "yMrKGgzZrRKDP+gKeUd3YLFY+OGHH8jMzJSpUA6HQ67/bd/" + "uQ1aWn+xfNoJaPuGX/C/2uaxjw4+H+AM7+LX8mj9WFrCD37GGGKq6vX4OBpazjk/" + "4Jcq/TWSkxOOPW5k3r4Ha2jKqq6vx8/" + "NzyVg6Z3h9hQiGgYGBpKSkqF6qcEeYpj9Q1j2joqLkuqeYgOpcmujL+" + "6XUufVGI06I65jNZgwGg+" + "o0OfHAKCsrkw0zlQpsTU1NtLS0yMMf7o7uKmE0GsnNzZX7C+5mt8899xxHjhxh+/" + "bt6PX6/v6qFyK0oKuEw+Fg//" + "79DBs2TNbeHT58OJIEa9f6smZNx82VSj5f8nOSKXJZo47h3MZf+IYZQLuQ+" + "J38iVWs6pH+VUYsq1jFm9zrYpMTECDx29/" + "aeeIJGz4+RgoKCuSaXkBAgMtRW9wsQiFKBBZ3bxSbzSbzSb0ZDE+" + "fPu02hcpTCJv2kJCQbuueSiEbkRF78n71xLlVC6KMVVxc7LXac0tLCzk5OYSGhvZ" + "K01IqsIkHV2928Q6HQ9YCTk9Pd5v3vG/fPh5//" + "HHuvvtulixZonoT+ALC4A+" + "6wvajN4j6ZUFBAePHjycmJubfI8TtkoybNnUEw2ns5zNuZgRnXdbIwcDNfEYRyeh" + "wMpuPWM1K0snt9poNRLCeZbzKYtroyGZ0Oom5cx2sXGkjKqrNoyaWw+" + "GQg4rJZJI1Y5XjukrVJ+VorbdudKUwjdqsB+" + "if6Lc7gTg4OJi6ujqPOLeeQkg7DhkyhNTUVNXfI2Vt2GAw9Pmhqny/" + "RCAGZGZJXV0dcXFxsnh5b2htbeXZZ5/l+++/Z/" + "v27aSlpfX6Mxc5tKArMrDi4mJGjRpFRUUFV1555b+/" + "1jXgzmQXf2UWwbS5rLOba7mNv2AijFv5GytZzUR+" + "6PaarQSxmSU8z5Mubr7QbpPz7LNWxo+3yzdJf5tYNpvNJRC3trYSEBCAv78/" + "JpOJESNG9NgR7w+8LUwjSRJVVVWUlJSoGgyVGV5DQwP19fX4+" + "PgwcuRIIiMjVat5guvElzdoZtBx1Fe7NiwgBHBaWloICQmhra393jiXApskSXJ2e" + "99997Fo0aLBnN0qcWkHXUHzCQ8Pl4/sSsueDRt8eeaZjoA7i7/" + "wPnd0EQnfyb08yFZ+wf/jaZ7jcr7v9npW/" + "NnOQn7PCqqIcfnalCkOnn3WxjXXOORA4m5H31OIrMpmsxEeHk5raytms1kWpO48+" + "eQpvC1MAx215+DgYFJSUryaGQpmiDIjVrpOKEsTnvyeQu/" + "Bk66+J3A4HBQWFtLU1OTRUd8TnD17lvz8/" + "C4PvZ4U2E6cOEFpaSmnT5+mqqqKN954g5SUlF6uMqgw+" + "IMudJV3FMLLOp2OtLQ0lw/jvn37mDZtGl984cvs2R0d9Vn8hQ+Yix+unN/" + "neYIc0lnGegzkdXt9Bz68zd2sZiUluJrmpaY6+" + "d3vbMya5cBobKSgoEAWLfHGMbykpKQLHxbaH07CQdZoNMojqJ5q6zY0NMhGlt4Qp" + "hHOwUajEb1er7rWAHQ8jHtjbiibT+" + "IEoSzlCMfdzoFY2Ei1tLR4Re8B2oNhQUEBcXFxfZoa7A2i2WexWNzm9TocDj766C" + "N27NghG8GazWZ27tzJ5Zdfrur+OmPTpk3s2LEDnU7HhAkT2Llzp+" + "pcZDdxaQRdoTRmsVgoLCykubm5x6PcgQMHGDNmIpmZobLw+LXs5kt+" + "3sXD7Ayj8cVBLBXdXteJjve5g9WsJB/" + "XTuyoUU6eesrG3Xc7sNnaXERd1L4JlcdwcRO6k1UJLQARhIXik6AXKQVslN5namk" + "Sd96LaDL1dfy4N1gsFpffoS+c294Csc1mk+vnom+" + "gJgRvWLBuvBFYhGKaJz2A5uZmVq5cSX5+" + "Ptu3b5enPgWd05u0sPLycq666ipOnjxJUFAQc+bM4cYbb+Tee+/" + "12jXPgcEowQyxAAAbJElEQVSvpwsdE0/" + "V1dUkJSUxduzYLh8U4VYaFBTE739fT21te6MhjlL+" + "zO1dAi5APKVdXoP2YPsBc1nD78jB1chuxAiJRx+1sXChHT+/" + "jswzJSVFdYtw6BjdDQ0N9dhdQafTERwcTHBwcBdtXaVerNlsxuFwyPQgtWlmYhor" + "KCjIK/5hSh3d/nJuu9ONtdls1NXVUVxcLI84C/" + "1YJS+2PwFY+WAVvGS1YbVaycvLQ5Ikt51AJEni22+/ZdmyZSxcuJDXXnvN5YF/" + "vji4drudtrY2/P39aW1tZdSoUb3/0HnGoAq6P/" + "zwA+Hh4T0aVEqShMPhQJIkDAYDx493fJie58keZRU7w44vf+" + "JO1rG8i9RiRITEkiU2HnrITkhIB31K2Dt7o7khptXUFC0RXNeQkBACAgJobGwkLi" + "6OYcOG0dzc7GJlIwJKeHi4RxxPASG80tDQgF6vV53GBq7iN2r7w0FHo7aiogK9Xi" + "8/WJW258LSxt/f36WU09PIbmcomQ9q2hYpISYyPQnoTU1NPPPMMxQVFfHxxx/" + "3yyiyP4iNjeWxxx4jPj6eoKAgrr/+eq6//" + "voB2cu5MCjLC50hppaE9KMwuouJCcJkav+wGwnr4mXWGS0E8wb38xKPcpoEl6+" + "FhbWbSj78sI2IiI6aZ0REBImJiV5pAAlJRG9Mq4Grhm5aWlq3R9juqFjKxlN4eHi" + "P2Z1yPDguLs4rwive5txChzSiu/" + "VtZSBWskyUNWJlIJYkidLSUioqKnrUou0vBDPB19cXvV7v1udVkiT++c9/" + "snz5ch588EEWLlw4YG7c0H7P3XbbbXzwwQdERERw++23M3v2bO66q3vxKS/" + "j0igvdLbs6SnYCgwdKslBt4aoHoPuaeLZyoP8J7+" + "mHtfSQFiYk4cesvPww3YiI9uzkePH85EkifHjx3ul5ilUuoTRodpNrJ6EabqDMHd" + "UagXY7XY5oAgPNWV2Jxxf8/" + "PzGTJkiNdKCUqdW7Wt5sE1oI8dO9btU0ZAQADDhw93KTMJk0eTyURlZaUsYhMYGE" + "hjYyORkZFkZmZ6JUMX5QpPrHmampp4+umnOXPmDJ9++qnbMqnexP/8z/+QmJgo/" + "w6zZs3iX//610AF3R4x6IIu9B5sBa64wsknn7Q/" + "mRfzKh8yh1Daj8wmQvmcm3ibu/" + "k7M3HiGtiGD3dw55113HRTCb6+zRQVtU+" + "OWa1WUlNTvTKjL9gYAQEBTJo0SfXmSWdhmr6WQ/z8/" + "LrUO0VQaWxs5NSpU5jNZnlUt7GxUZYoVAOtra3yMdwbAR06mkyjR49WJaAHBAQwY" + "sQIWcTd6XRSUFBAXV0dw4YNw2KxcPDgQVVkHQXMZjM5OTkelSskSWLPnj089dRTP" + "Pzww2zbtm1As1sl4uPj2b9/" + "P62trQQFBbF7924yMzMHeltdMKjKCzabDbvdLgug9BRsBb77zoeZMztu9AgamMj3" + "NBLBScZ2K0CelORk8WI7d91lJzi4ozlz5swZhg0bhq+vLyaTSXbWFd3/" + "sLCwPmek3tYxAHWFabqDENc5deqUzEtWZncmkwmLxUJQUJBLvdOTfXhb5xbaj+" + "F5ee2UQb1er3ozETrEl7rTMxB0P/" + "FPqa+r5F2f63PfnSaDOzCZTDz99NOUl5ezbds24uPj+/" + "27qo2VK1fywQcf4Ofnx+TJk9mxY4dX/" + "kZu4NKgjD3++OOEhISQmZlJRkYGoaGhvWYBL7zgx6pVvd/YP/" + "uZg4UL7dxwgwMRO+" + "vr6124qsqjn7L7bzQaaWpqQpIkj5pOSoWrMWPGeIV6pByt9VZAFw4L/" + "v7+pKam9ngTKG1sxL/" + "OtvA9mWC6y7ntK5QeX96wFQJXXm96errbpSmlvm5vgbitrY2TJ096ZJ0jSRJff/" + "01K1asICsri/vuu++CyW4vYFwaQTcvL4/9+/eTnZ3NkSNHsFqtjB8/" + "noyMDKZOncq4ceO6HKEkCb74wpdnnvEnN7fjg6TTSUye7OSWWxzMnesgPr7jrRDS" + "kD4+PqSmprrN8xTCNYIPK5pOIggrO9nnCuhq4HwI0zgcDkpKSqirq+" + "tz5tnZjdhkMrlY/" + "gQFBVFVVSXzVdXWuYUOFwQx0eiNMVZRrlDjb6EcgFGeIiRJwmazyQ9wdzJAo9HIU" + "089RU1NDX/84x8ZPXp0n/" + "d1ieHSCLqdYTabOXbsGPv37+fgwYP8+" + "OOPBAcHk5GRQWZmJpmZmS4z6jU1UFDgQ3CwRHKyROchKHHMF8pkahxflXoJRqORl" + "pYW7HY7fn5+jBkzRpYtVBPeFqYB5FKCN8wUxejp6dOnqaurIyAgAD8/" + "P5dR3b7KOSqh9BDzVGDHXSg5sd4qV7S0tMjZbWRkpDy2a7FYehwJlySJr776imee" + "eYalS5cyf/58Lbv1DJdm0O0MSZKor6/" + "n4MGDciBWcmhFMI6MjHTJNJQaA9465iuzQuF7phzTFUdsIUDdl8zX28I00M7eyMv" + "Lw9fXl7S0NK8EEfHQiIiIICkpCV9fX1ngXHmKEDqxfdFMEOO1o0aNYvTo0ar/" + "vZUnDW+JoytFdrpTHOvODPPo0aN88MEHcla8fft2F7F/" + "DW5DC7o9QTRfsrOzyc7O5tChQ7JwSEZGBna7nfz8fJYuXUpCQoLqR0slZacn4RtJ" + "kmhtbXUZ03U6nYSGhspliXNldspJLG9ZtTgcDtkbqzeaWV+" + "hpGgZDIZeHxpCRUy8b8pR3c7lHIHzMV7b7i6dIzctvXHSENY5ntiqS5LErl27eP7" + "555k2bRrBwcEcOXKEWbNm8eCDD6q+x+7Q2NjIggULOHHiBDqdjjfeeIOf/OQnvf/" + "ghQct6HoCm83Gp59+" + "yqpVq7DZbEREROB0OpkyZQpTpkwhMzOT1NTUfgdgk6ndaFIpWO4ulMLmRqPRpT4s" + "gkpQUBCNjY1eFaaBdqPPwsJCrzaxlJzb/" + "tQ8O5dzlKaOdrud+vp6UlJSvDJeq7Qk1+" + "v1XmFXOJ1OmWOdnp7udkmkoaGBZcuWYTKZ2Lp164CNz95zzz1cffXVLFiwAKvVSm" + "trq8d+" + "cRcItKDrKT755BOio6OZPn06kiTR1NTEoUOHyM7O5sCBAxQWFhIVFeVSH3Y3g7Ra" + "rbKWgZpGk2IowWg00tDQgNFoRKfTER0dzYgRI/" + "ol49gd2traXFTcvJEVKjm3qampXuHcNjQ0kJubi4+PD35+flitVpdaZ3h4eL+" + "vK6x/PLEk9xQmk4mcnByP9HQlSeLLL79k9erVPPnkk8ybN2/" + "AardGo5FJkyZRVFSk+" + "klsAKAFXbUh7L5FWeLAgQPU1dWRmpoqU9amTJnSxb1BZDre0p9VjgcnJycTFhYmH" + "6+NRqMs46jkD3taHxY229XV1R7xPD29hrc5t8qsUKn50LnW2Vn+UtTV3SkLiOm+" + "hoYGrzXjlA2/" + "sWPHuq1eV19fz5NPPklbWxuvvfaaLHY0UDh27BgLFy5k7NixHD9+" + "nIyMDF555RWvSGKeB2hB93zA4XCQk5NDdnY2Bw8e5MiRIzgcDiZOnEhoaCiHDh1i" + "69atcvNHbYhjfnR0dI+ZjqgPK/nDDofDhT98rvqwaDCd6xr9hbc5t325hvJ9E/" + "+Eu64yECv/" + "rg0NDeTl5RETE+O2rY2naGxsJDc316OGnyRJfP7556xZs4annnqKO+" + "6444LILA8dOsT06dPZu3cv06ZNIysri7CwMNasWTPQW+sLtKA7EJAkiZycHLk+" + "lZiYKCtdCe5wZmam27q3PUEwBs4lTHMuCAqWyIiF8aWy4eTj40NBQQGSJJGWluYV" + "PqzFYnFpYnnjGjabjfz8fKxWKwaDoV/" + "XcDqdLhxiMQATHByM2WxGkiTGjRvnlUxNuEU0Nzd7NEhx9uxZHn/" + "8cex2O6+99ppXatd9RVVVFdOnT6ekpASAb7/9lvXr1/" + "P5558P7Mb6Bi3oDhSKioqoqqqSrYGEYI2yLFFeXk5CQoJcG54yZQrh4eG9Zh9Kmp" + "najAFlfbiqqorW1laGDh0q14bV1EpQU+" + "f2XNdQ6tB6o7QD7YGjsLBQbv546kTsDkSW7olbhCRJfPrpp6xdu5YVK1Ywd+" + "7cCyK77Yyrr76aHTt2oNfrWbVqFS0tLbzwwgsDva2+QAu6FzKcTieFhYVyED58+" + "DCtra2MGzdODsTjx4+" + "Xm2BOp5OamhqKi4u95q8GHTd3VFQUCQkJcudfZMQWi6VPdU4luuPcqg3RjPMmRUt" + "II/r4+KDX610ab546N/cEQV/" + "0xDoH2stOjz76KDqdji1btnjloaYWjh07Jp8Mk5KS2Llzp1fq+" + "ecBWtC92GC1Wjl27JgciE+" + "cOEFgYCAJCQnk5OTwwAMPcOedd3qFMSAseXo75ndn8+NwOAgJCXGx+" + "enugSB0Bpqbm93i3PYFouFXU1ODXq/" + "3CvVINFTPnDnjkTRiT87NykCsVBCrq6ujoKDAo+EcSZL4+OOPWb9+Pb/73e+4/" + "fbbL8jsdpBCC7oXOxwOB1lZWezZs4cZM2ZQWloqSzBOmTJFnqjrj4W70+" + "mktLSUyspKkpOT3Q4gnddoaWnBaDTK/" + "GGdTucSTJqamlS3U+8ModTlLTtyaM+" + "gc3JyGDp0KCkpKf3Wx7BarS4PMLPZTEBAAFarFV9fX494tzU1NTz66KP4+/" + "vz6quv9ulvqaFf0ILuYMA//vEPZsyYIQcQEST379/PgQMHOHjwII2Njej1erlRd/" + "nll7tlB9PQ0EB+fr5sE67mMV8cr+" + "vq6qioqJAFayIiIuSMWK2M3WazyaPOBoNBdRF5cB2v9VYGDe3WOYWFhbIriDvOzZ" + "Ik8de//pUNGzawatUqZs2apWW3AwMt6F4qsNvt/" + "Pjjj7K2xLFjx9DpdEyaNEke5NDr9XJQbW1tpaioCJvN5hV3X+" + "iec6vM6oxGo6ylq+QPe1J7VU6teeJe6ymENY8n47Wewmq1kpubi06n61If7sm5+" + "euvv6alpYXjx48zcuRI/" + "vCHP3hFflKD29CC7qUKSZJobm7m8OHDMn84Pz+" + "fyMhIQkJCqKio4PXXX0ev13slSLnLhxUDCaIsoawPK/" + "nD3WXgwrAxICDAa1NrygEENQ1AleirdY7D4WDbtm387W9/" + "Izw8nMbGRqxWKx9++CFJSUmq7/" + "Nc+xAUyM8+++y8XfcChRZ0NXQgJyeHu+++" + "m5SUFOLj4zly5AhVVVWkpKTIZYnJkycTEhLS50CsBudWWR8WPFidTicL/" + "YSEhHD27Fmqq6u9ZtgIHQ8OwRTxxsPJbDaTm5uLv78/" + "aWlpbmf5VVVVLF26lNDQUF5++WUXF2JfX1+" + "vsEF6wsaNGzl06BAmk0kLulrQ1aBEXV0djY2NpKSkyK8Jo0hRHz569ChWq5UJEyb" + "IgXjs2LG9BgNvc26F+" + "3B1dTWVlZXodDqCg4OJiIjotuvfH6g5SNETlOyHtLQ0t0eqnU4nH374IZs2beK55" + "57jlltuGdDabVlZGffccw8rVqxg48aNWtDVgm732LVrF1lZWTgcDhYsWMCyZcsGe" + "ksXFMxmM0ePHnURgQ8JCXER+" + "VGWDOrr6zl16pRXObdC3lFQzYYOHSp7rYmM2Gw2ExgYSHh4uFwj7mt92FtSmNAh8" + "RgcHOwR+" + "6GqqoqsrCyGDRvGpk2bvJbhe4LZs2ezfPlympqaePHFF7WgqwXdrnA4HKSlpfHVV" + "1/" + "JIubvvfceY8eOHeitXbCQJImzZ8+" + "6iMCfOXOGmJgYbDYb4eHhvPjii16jgdXU1HDq1KleqWZKwRoRiO12u4tRaGedBAF" + "xzPfz8yMtLc0r9WGl35onEo9Op5P333+fzZs3s3btWm666aYLgpnw2Wef8cUXX/" + "CHP/yBPXv2aEG3HVrQ7Yx9+/axatUq/" + "v73vwOwbt06AJYvXz6Q27rosGvXLh555BFmzJjBkCFDOHz4MM3NzYwdO1bOiCdOn" + "NgvSpjZbJa1JTp3892F8FpT8oeFUagIxI2NjZSVlXl0zPcULS0t5OTkEBYW5pHfW" + "mVlJVlZWYwcOZKNGzdeUFNay5cv5+2338bPz09+" + "2M2aNYt33nlnoLc2kNCCbmd89NFH7Nq1ix07dgDw9ttvk52dzZYtWwZ4ZxcX8vPz" + "GT58uEuQslqt/PDDD7K+xA8//IC/" + "vz+TJ0+W68MpKSluKXuVlpZSUVHhFQlJUR+" + "ura2loqICSZLkbFjJH1Yjm5QkSZbD7M46pyc4nU7effddtmzZwrp167jxxhsviOy" + "2J2iZrowe/0jqWsxeorj//" + "vv57LPPiIqK4sSJEwO9nfOKtLS0Lq8FBASQkZFBRkYGDz30EJIkYTKZZBH4VatWc" + "erUKaKjo13qw0oRGqPRSH5+" + "PhEREUydOtUr9WGdTkdDQwP19fVMmjSJ8PBwF32JyspK2traZEFzEYg9zbSFm3Bk" + "ZCRTp051m9tbUVHBkiVLiImJ4ZtvvrlYHRQ0dMIlm+mqWV745ptvCAkJYf78+" + "Zdc0O0rJEmivLyc7OxsuT589uxZkpKSaGtrIyQkhI0bN8rTWGrDaDSSm5vb65iws" + "DNXDnLYbDaX+nBYWFi3DwUxFFJXV+fRCK/T6eSdd95h69atPP/" + "888ycOfOCzm41dAutvNAZdrudtLQ0du/" + "eTWxsLFOnTuXdd99l3LhxfVqvpKSEm2++WQu6/cDXX3/" + "NokWLyMzMJDAwkGPHjiFJEhMnTpSzYYPB0C+NA6FDK8xH+6J1K+" + "rDSiF4UR8WGbHT6SQvL4+RI0d6pP1QVlbGkiVLGD16NC+++KLbZQgNFxy08kJn+" + "Pn5sWXLFmbOnInD4eD+++/" + "vc8DVoA6ioqLYvXu3bIoo3BoOHz7MgQMHeOGFF8jLyyMyMlIuX0ydOtVtTVnhehE" + "XF0daWlqfs0edTkdISAghISHyXoUFfGNjIydOnKCtrY3g4GCsVis1NTXdOg8r4XQ" + "6eeutt9i2bRsvvPAC1113nZbdDlJcspmu2lAj0y0tLWX+/" + "PlUV1ej0+" + "lYuHAhWVlZKu7y4ockSdTW1rqIwFdUVJCYmOgiAh8WFiYHLYvFQkFBAXa7HYPB4B" + "U5TOiwzhH2PEIIXuk8PGTIELksERwczNChQyktLWXx4sUkJSWxYcMGwsLCvLI/" + "DecVWnnB21Aj6FZWVlJZWcmUKVNoamoiIyODjz/" + "+WOMO9wIhAi+" + "m6Q4fPozZbGbs2LEEBgaSl5fHzp07vcYf9sQ6R8kf3rx5M7t376a5uZnbbruNefP" + "mccUVV3hl8q07aA95r0IrL1wMiImJkR1ZQ0NDSU9Pp7y8XAu6vUB4w6WlpTF//" + "nwAiouLmT9/" + "Pg6Hg8TERObMmUNgYCBTpkyRM2I1VMKUugzulCwCAwMJDAzEbDZz+" + "vRpfv7zn7NgwQJ+/PFH/vznPzN8+HDGjx/frz25Cz8/P1566SWXh/" + "x1112nfd68DC3TVQG/+tWv2LNnD3V1dURHR7N69WoeeOCBfq1ZUlLCT3/" + "6U06cOKEdN/" + "uAM2fOUFhYyLXXXgu0lyUaGxs5cOCArLYm7I5EEM7IyGD48OFuZcN2u52CggLa2t" + "pIT093Ozt1Op28/vrr7Ny5k5deeolrr732gqnd/vKXv+Thhx/" + "muuuuG+itDAZo5YWLCc3NzcyYMYMVK1Ywa9asPq1hNpv56U9/" + "isViwW63M3v2bFavXq3yTi9uCDFypQi80WjEYDB0EYFXoi/" + "WOdD+IH344YcZO3Ys69ev94o8ZF+hPeRVhxZ0LxbYbDZuvvlmZs6cydKlS/" + "u8jqA1hYSEYLPZuOqqq3jllVeYPn26irsdfLDZbF1E4H18fJg8eTIGg4GvvvqK+" + "fPnM3PmTLcbcg6Hg9dff50333yTl19+" + "mRkzZlww2S2o85DX0AVa0L0YIEkS99xzD8OGDePll19Wbd3W1lauuuoqtm7dyrRp" + "01Rb91KAEIHfvHkzW7ZsYeLEiZSXlxMVFSVP002dOrVHJbLi4mIWL17MhAkTWLt2" + "bZ94wd6EWg95DV2gNdIuBuzdu5e3336bCRMmMGnSJADWrl3LjTfe2Kf1HA4HGRkZ" + "FBYWsmjRIi3g9gGCk+vj48P333/" + "PyJEjkSSJyspKDhw4wP79+9m+fTs1NTWyCHxmZiaXX3457733Hm+//" + "TavvPIKV1999QWV3UL7A+WBBx4gPT1dC7jnEVqmewmgsbGRW2+" + "9lVdffbXPnXHNiuXccDgc5OXlyfzhXbt2ccUVV/" + "Dmm296xXdODXz33XdcffXVTJgwQWZx9Ochr8EFWnnhUsezzz5LcHAwjz32WJ9+" + "XrNi8QySJF1wma2G84oe//jqW5lquCBQW1tLY2Mj0O5Q8NVXX2EwGPq0VllZGZ9/" + "/jkLFixQc4uDGlrA1dATtJruIEVlZSX33HMPDocDp9PJnDlzuPnmm/" + "u01iOPPMKGDRtoampSeZcaNFx60ILuIMXEiRM5evRov9cROsEZGRns2bOn3+" + "slJCTIVjl+fn4cOnSo32tq0HAxQQu6Gs6JvXv38umnn/LFF1/IugF33XVXv6xY/" + "vGPfzBixAgVd6lBw8UDraar4ZxYt24dZWVllJSU8P7773Pttdde6t5XA45du3ah1" + "+tJSUlh/" + "fr1A70dDR5CC7oazit0Oh3XX389GRkZbN++" + "faC3c9HB4XCwaNEivvzyS06ePMl7773HyZMnB3pbGjyAFnQ1uI1rrrmm33Sx7777" + "jiNHjvDll1/y2muv8c033/R5rcbGRmbPno3BYCA9PZ19+/" + "b1a28XAw4cOEBKSgpJSUkEBARwxx138Mknnwz0tjR4AC3oajiviI2NBdpdIm699V" + "YOHDjQ57WysrK44YYbyM3N5fjx46Snp6u1zQsW5eXljB49Wv5/" + "XFwc5eXlA7gjDZ5CC7oazhtaWlpk2llLSwv//d//" + "3ecJOaPRyDfffCNLaAYEBGhuuRouCmjsBQ3nDdXV1dx6661Aux7tvHnzuOGGG/" + "q0VnFxMSNHjuS+++7j+PHjZGRk8Morr1xwgjJqIzY2ltLSUvn/" + "ZWVl8ulBw8UBbQxYw0WJQ4cOMX36dPbu3cu0adPIysoiLCyMNWvW9Gm9vLw85s6d" + "K/+/" + "qKiIZ599lkceeUStLasCtV2sNXgNmsqYhsGFuLg44uLiZOW02bNn94s+" + "pdfrOXbsGNDOEIiNjZWz8gsJmov1xY/" + "eMl0NGi5Y6HS6b4EFkiTl6XS6VcBQSZIeV2Hd64GVkiRd2d+" + "1NGjoDC3T1XAxYzHwJ51OFwAUAfeptO4dwHsqraVBgwu0TFeDBgX+" + "HcArgHGSJFUP9H40DD5olDENGlzxc+CIFnA1eAta0NWgwRW/QistaPAitPKCBg3/" + "hk6nGwqcAZIkSTIO9H40DE5oQVeDBg0aziP+" + "P84A4X98zSsYAAAAAElFTkSuQmCC", + "text/plain" : ["
"] + }, + "metadata" : {"needs_background" : "light"}, + "output_type" : "display_data" + } ], + "source" : [ + "# returns a curve composed of the split curves, 2 in our case\n", + "piecewiseCurve = ref.split(array([[0.6]]).T)\n", "\n", + "# displaying the obtained curves\n", "\n", "fig = plt.figure()\n", + "ax = fig.add_subplot(111, projection=\"3d\")\n", "\n", + "# first, plotting the complete piecewiseCurve is equivalent\n", + "plotBezier(piecewiseCurve, ax=ax, linewidth=10.0, color=\"b\")\n", + "plotBezier(piecewiseCurve.curve_at_index(0), ax=ax, linewidth=4.0, " + "color=\"r\")\n", + "plotBezier(piecewiseCurve.curve_at_index(1), ax=ax, linewidth=4.0, " + "color=\"orange\")" + ] + }, + { + "cell_type" : "markdown", + "metadata" : {}, + "source" : [ + "The split is achieved by the De Casteljau algorithm. The continuity " + "at the split location is infinite.\n", + "Of course, the split will also work for variable Bezier curves.\n", + "We can exploit the convexity of Bezier curves to continuously impose " + "constraints on a given interval of the curve.\n", + "If the control points of the sub curve satisfy a set of linear " + "constraints, then the entire sub-curve satisfies the constraint.\n", + "\n", + "For instance, let us impose the z value to be negative between t = " + "0.4 and t= O.8" + ] + }, + { + "cell_type" : "code", + "execution_count" : 52, + "metadata" : {}, + "outputs" : [ { + "data" : { + "image/png" : + "iVBORw0KGgoAAAANSUhEUgAAAV0AAADnCAYAAAC9roUQAAAABHNCSVQICAgIfAhk" + "iAAAAAlwSFlzAAALEgAACxIB0t1+/" + "AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6L" + "y9tYXRwbG90bGliLm9yZy+" + "AADFEAAAgAElEQVR4nOy9aZAj13klem4mdqBQe3V1V1d1V1fvG1tsNjdRq21aj8+" + "hiJFkjxWSHbItK0LhH/Q4/" + "EMhh0di+" + "D1J4ZEXWf4zER7JMZYtzRNjZNm0bJqiLdEjimw2m6RINpu1F2rfsWUCSGTe+" + "35k3kQm1gQqUV1o5mGQzQYSFwkg8+SX5/u+8xHGGDx48ODBw/5AuNM74MGDBw/" + "vJHik68GDBw/" + "7CI90PXjw4GEf4ZGuBw8ePOwjPNL14MGDh32Er8HzXmmDBw8ePDQPUusJL9L14MG" + "Dh32ER7oePHjwsI/wSNeDBw8e9hEe6Xrw4MHDPsIjXQ8ePHjYR3ik68GDBw/" + "7CI90PXjw4GEf4ZGuBw8ePOwjPNL14MGDh32ER7oePHjwsI/" + "wSNeDBw8e9hEe6Xrw4MHDPsIjXQ8ePHjYRzRyGfPgoSYYY6CUolAoQFVV+Hw+" + "CIIAURQhCAIEQQAhNc2WPHh4R4I0GEzpWTt6qABjDJqmQVVV2//z56xEy0mY/" + "+uRsYd3CGoe4B7penCMcrIlhIAQAlVVoaoqBEGo2N76bzkZ8z+" + "DwaBHxh7uNtQ8kD15wUNDMMagqio0TTPJs5xgq4GTcrX1AGBlZQWapmFkZMR8zou" + "MPdzt8EjXQ01wsuXSgVOybQROoIIggFIKURTN9wMAVVVRLBZt0TEhBKIomroxJ2e" + "PjD10GjzS9VABSqlNp60VsXLshfis8paVYKttUy5tMMYgCAJyuRzi8biNkBvtswc" + "Pdwoe6XowQSmFqqqYnp7G+Ph424nL6dqNyPitt97CPffcY4vCeVTu8/" + "kqZAqPjD3cSXik+w4HT3IVi0VQSgEA6+vrmJiYaPt782h1L6/" + "n4MQKlMiYl7OVv4ZLE15k7OFOwCPddyh4ja2qqibZ3gni2Qvp1kKtyJi/" + "H5dPFEWxPZdOpzEwMGBL4nlk7MFteKT7DkM52XJSuRPEcqfes9r7UkoxNTWFeDxe" + "Ud5WrZrCq6jw0Co80n2HoFaN7Z0kjr3KC26Cfxe8koLDGhl7jR8e3IBHunc5ONku" + "Li5iaGjIpn26hWQyiWw2i66uLkQiEdfX3w+" + "UEypHvVpjroUrimJuQylFKpUyv2uPjD2UwyPduxTlDQ1LS0sYHBx07cRnjGF7exu" + "zs7Pw+/2IRCLY2dmBLMtgjCEcDiMajZr/" + "ViPjgxTpNot6MkUikUBfXx+" + "KxaLtOS8y9gB4pHvXoVZDA29EcGP9zc1NzM7OIhqN4vz584hEIlAUxVY9kMvlIEk" + "SJEnC1tZWVTJWFOXAkG6tSLcVVGsiKW/8sIL/" + "Pl7jxzsDHuneJWjU0NAs6ZaTEGMMa2trmJ+fRzwex+" + "XLlxGJRMz3toIQgkgkgkgkgsHBQdsaVjLmkfH29rajyLgTwBs2ytFK48f29jaGh4" + "erRsYeIXcuPNLtcPBKBE3TANS+7W2GdK3tuZRSrKysIJFIoLe3F+" + "9617sQCoVa2tdyMu7q6sLu7i4mJiYcRcbtJGO3Il1eEeIU9ch4YWEBg4OD5oXU+" + "hqv8aNz4ZFuB4Incba3t00SanTCNUO63DlseXkZi4uLGBwcxH333YdAIODWRzDfh" + "//pJDKuRcaapkHTtAMRGbtF3vz3rCVTeI0fnQuPdDsI5TW2t2/" + "fxpUrV+DzNf4ZnZKuqqooFAq4fv06jhw5gvvvvx9+v9+" + "N3a9Ao0SaUzJWFAWvvvrqniJjt8jSTW24Glpp/" + "Egmk+jq6kI4HPYaPw4APNLtANRqaOC3/" + "04gCEJdgisWi0gkElhdXQUhBPfeey+" + "i0ahbH8FVlJPx9vY2rly5Yprf3A0yRSsJxlokur6+Dr/fD1EUbZoxP4a8xo/" + "9hUe6BxiNGhqalQyqbasoChYWFrCxsYHR0VE89NBDeO211/" + "blVt3tkrG9yBTBYBCapoFSuqfP7qY27NZvQCk19V8rvMaPOwOPdA8gqpFttROwle" + "QYRz6fx/z8PHZ2djA2NoaHHnrINs2hWTJs5WTcrxPYCRmn02nk83m8/" + "PLLd51MYfUstqLZxg9N05DJZDA4OOiR8R7gke4BQrMTGkRRNKsWGoGTbi6Xw9zcH" + "JLJJMbHx3HmzJmKE6ZWVNwO3Mk6XSsZx+NxZLNZ3HPPPaCUIp/" + "P142MY7GY+" + "Vrrb3QQI91mk4y1yDifz2NlZQW9vb1e48ce4JHuAYC1oeH69et44IEHHJ0kzUS6q" + "qpifn4elFKMj4/" + "j3LlzNU+" + "IViLdVsjmoHWkWWWbapFxORlvbm5WkLEgCKb2vhfSdFtecGMtxljVNnKnjR8eGev" + "wSPcOolpDQzN1nk5IN5PJYHZ2FslkEsPDwzh9+nTD9VuJdDv9JHJC/" + "k7IeGtrC5lMBi+//" + "DIAIBwOIxKJIBaLIRqNIhwO76tMwffPDdLVNK2mTGH9k6Ne40c+" + "n4ff70csFqtI4HX6sdQIHuneAThtaGiEetULqVQKMzMzoJTixIkT6Onpcdxa2mz3" + "WqsnyUGKdPdCclYy9vl88Pl8OHXqlI2Ms9ksNjY2kMvlAKBCMy4nYzcjXcCdi2It" + "0m30ntXIeGtrC8FgsKLc8Z3Q+OGR7j6h2oSGeokMp+" + "RYrunu7OxgdnYWgiBgYmIC3d3dAABJkpqqdNgvMjwopOsWrL9dvcg4l8tBluWaZM" + "x/" + "W7fJdy9olnRrgd9J8TI2jndK44dHum1GsxMauJ7aTERqdfwKBAI4c+" + "YMurq6KrYt19sardtuHKSTZT+rDgRBMCPcamTMfSkkSbLJFPUi4/" + "2AW6QL6Ppv+" + "VqtNH4AdpN5HtTE43FX9rMd8Ei3TeAHye7uLmRZxtDQkKOrMo9wnJxQhBAkk0kkE" + "gnT8SsWi9Vc96BFugdJXnALe5UpOKkGAgEIgoDTp0/" + "byFiSpKZkCjfhZqu1pmmOOik56t0VcjIGgKeffhqvvfYavvSlL7myn+" + "2AR7ouo7zGNp/" + "PI5lM4tChQ45ez8vA6rXecsevhYUFBINBm+" + "NXLeylpvedgINWX2uVFaxkXL6NEzJ2S6bgTRZuwE2pwvp9p1IpU1I7qPBI1yXUam" + "jw+XyOa2mB+skxq+NXX18fjh8/" + "DkppQ8IFmifdZiJQxhgURUEgEGjaYetui3SbdRmrhWZlivJ9KPemcEOm0DQNwWCw" + "tQ9UBlVVXSNwK1KpFHp6elxf1014pLtHNGpoqJbsqodq22uaVtXxa21tDZIkOV7X" + "KcE5LRmzGprzi44oimZ5FP+" + "zXYY5bsMtsnTjFnwvkamVjDVNw87ODq5evbpnmcJNTdfNtaxIpVI4duyY6+" + "u6CY90W0StCQ3laKZrrHx7VVWxtLSEpaUlHD58uMLxqxnDm2ZqbxtFxVayjcViuH" + "z5slmOViwWbSd1NpuFqqoIBALmCc3J+CBFum7tx90sU+TzedeSn+" + "2y4vQi3bsQvPbSmmmtdyC2Ii8UCgXMzMxgdXUVIyMjePDBB6veijUTRbuRSLOSbV" + "dXF+655x6Ew2FTXgAAv9+Pnp4e24HPS+" + "Wy2SwkScLy8jIkSTIvWjMzM7bW2oNSItUKDlobsJN1nJJxKpVCJpOBKIquJPDaUb" + "2STqc90r1bYG1oeOGFF/" + "Dwww87OmiaiXQVRUEqlcL6+" + "jrGx8fx0EMP1b0Fa1dyrJzMGWPY2NjA7Ows4vG4SbZOQQhBIBBAX18f+" + "vr6zMdzuRxu376N7u5uSJKE7e1tyLIMADaPA35St7PE7CBHqHdqnXIylmUZx48fR" + "zgc3nM1Rbt+y3Q67SXSOhn1GhqcHjROSNfq+" + "BUKhTA2NobDhw87WrsdpMsj3XKyvXLlSlNk62SfBEHAwMAABgYGzMetEVY2m8Xa2" + "hpyuRwIIRUShVuJHbfglqZ70MgbKOmwe5Ep+" + "N1Mu2SlVCqF3t7etqztFjzSrYJGDQ1cH3VqSlPrAKvm+" + "LWwsNByRNpo22ZIN5VK4YUXXkB3d7frZGt9n2qodVJrmgZZliFJEpLJJJaWllAoF" + "JDL5TA5OYlYLGaScbOjhQ5ipOtGdn8/" + "k19OyJhfRGVZxksvvWR27PHfLRQK7eki4Wm6HQaeged1jbWiWq7TtnpwSJKE2dlZ" + "SJJU4fjVTsmg0baMMayvr2N6ehp+" + "v39PQyidopmIRxRFdHV1VXTb3bhxA8PDw8jlctja2sL8/" + "DyKxSL8fn9FZFyPyA4a6R7ESLeVtcrJuFgs4o033sA999xjI+" + "P19XUzMo5EIhUyhZPvo1GN+" + "0GAR7poPKGhHKIoQlXVpn9c7vhVKBRw4sQJ9Pf3V7wHb2V0ArdIl5Pt3Nwcuru7c" + "eLECeRyOdcJd35e/" + "6yjowyi6F6dLiEE8Xi84rZSURTzVndtbQ3ZbNasNbWSsZu3u25GzHda0y2HW/" + "vEa3SdRMaZTMYxGR+USphGeEeTLifbxcVF9Pf3m62XjdBsRYKmabh586bp+" + "GVNJpVDFEXk83lH67ZiYm6FlWx7enrMyJb7xLqNP/" + "7jIL71LT8CAYYTJyj+63+" + "VMTLiztrVTrhAIIBAIGAjY8YYCoWCScaLi4uQZdm80PEyuFYz8gdNi3WbdPfDrcx" + "KxkNDQ+bjlFLIsgxZlpHJZLC2tmaeK/Pz83jllVfAGMP09DROnDixZ1nlz/7sz/" + "BXf/VXIITg0qVL+OY3v+lKIPKOJN3yGtvNzU3E43HHSRke6TYCd/" + "wqFAq4dOmSI62pXckx67a8jXhubg69vb0VMkIrbcBOTsbpaX0bRSG4fVuEz+" + "dOdNJsF1woFEIoFEJ/f7/5+O7uLlZXV9HV1VXh/" + "MWjK6vuWOs972Z5wS1UM7txAkEQTN2+nIwHBgaQSqXw9NNP4/Of/zxmZ2fx6U9/" + "Gp/97Gdb2sfl5WX8xV/" + "8BW7duoVwOIxf+ZVfwXe+8x186lOfamk9K95RpFutoYEQAp/" + "P54hEOepFutUcv958882aRjTlaGdyjFKK1dVVk2zvvffeqlfuViZHOMHUlP3kP3m" + "SIp12/W1aht/vx+DgYIXzF0/epVIprKysIJ/Pm9EYJ2KevDto8kK7Or/" + "2gmbNbhpBEASMj4/" + "jsccew9NPP43vfve7rqyrqipyuRz8fj9kWcaRI0dcWfcdQbrVJjRYT4xmSbdapGt" + "tHCh3/" + "OIygJMDrRnJwOnJzRjD6uqqSRxXr16tG9W3MjmiEXZ3ge3tEokEAgxjYwyvv36wd" + "ThrdGU1LdI0zZQotre3kUgkoCgKisUiMpkMCoWCScatJHYOmrzg5kW4nS3AblUuj" + "IyM4Pd///cxNjaGcDiMRx99FI8++qgra9/VpOt0QkOzGq11e36rPj8/" + "j3g8XtXxq5n1m20brgdOtvPz8+" + "jr60MkEsHZs2cbvq6VSLdRhFce5Z44QeHzHaw24GYiVFEUEY/" + "HK3xbJycnzbuH9fV1s/OOt0FbI+N6xOOmvOBGVOlW5A201+zGrcaI3d1dfP/" + "73zfzHb/8y7+Mb33rW/" + "jkJz+557XvOtJtZkIDRyuRbrFYxNLSkun4Va+8aq8Jr2ZRTrY8sn3++" + "ecdvb4dkW456Z4+" + "fXdaRxJC0NXVVZG8s1ZS8DZoSilCoZCNjHkb9EGrXnC73rcdpJtMJl2LdH/" + "4wx9ifHzclJo+8pGP4Pnnn/dI1wprQ8Nbb72FY8eOOa7tc5oYA/" + "QDJplMYmtrCyMjI6bjV6P19yPS5ZrtwsIC+" + "vv7G8oItdAq8deLFicnK0n3oBnetCtxRQhBMBhEMBi0Va5wv2Vep8pHvQN6uZvP5" + "0Nvb++" + "e2qDdIku3p0a0o5PQTXlhbGwML7zwAmRZRjgcxrPPPov77rvPlbU7nnSrNTQUi0V" + "omub4IPX5fBUzmcrBHb+Wl5cRi8Vw+" + "PBhnD592tH6zZJus4RXTrZOLgT10CwZ8juJeq95++" + "13RqTbDHkTQhAOhxEOhyvaoF977TVEIhGzNCqXy5kz16wSRTAYrPt+" + "bka6d2pqhFO4aXbzwAMP4GMf+xjuvfde+Hw+" + "vOtd78JnPvMZV9buWNKt19DQSjVCre2LxSISiQTW1tZw5MgRPPDAA0in01hfX3e8" + "frsiXUopFEXBT3/" + "6UwwMDOyZbDnaMTni9m17lHTmjDuapVs4SG3A3JNicHDQFhHyNuhsNovd3V2zDVo" + "UxaqVFMDBlRfalUhz4lniFE888QSeeOIJ19bj6DjSrTWhwQq/" + "3++4qwuoTrqKomBhYQEbGxsYHR3Fgw8+aB4oe/" + "HIbQQneiqfILGwsADGGK5eveq4aNvpRIJmb/" + "sVRTGHA5Yjny91o3F4kW59VCPLWm3QqqqaEsXm5qatDZr/" + "LtwsqNUIk1La1qGUbqATfBeADiRdTdNQLBZrmoYDzSfGrNtbHb/" + "Gxsbw0EMPVbxPKx65bpSBWcl2cHAQ165dw6uvvur4ROISQCNSaCaRls1mMT09DVm" + "WTaLmt8A88pqcDIPS0nuOjlKUdX7ecRykSLfZdXw+" + "H7q7uysy94qi4M0337SVDPI2aGtUHIlEGpJgJyTSPNJtE/itVz34/" + "f6mSbdQKODWrVtIpVI4fvw4zpw509B7wSn2WgZmJduhoSFcu3bNvH3kzRRODmIuG" + "zgxtW4U6UqShJmZGeTzeZw8eRKxWMysHCm/" + "Bf7nf+" + "4BcNF87cSE0rayoTuNg9QGHAgE4PP5MDIyYrrEWdugs9ksdnZ2IMsyKKUIh8M2Mr" + "a2Qbd7/" + "Lob8Ej3DsLn8zmeHSZJEqanp83ZSlbHr3rrNxvp8skKzYBSiuXlZSQSiQqyta7td" + "ttwvUhXlmXMzMxAlmVMTEyYpj3881mbCTi+/" + "337Po+MJPHaa7ehaRry+TxmZmbM17RzhHg9dHKkWw/" + "l5F2rDZoxZnP8Km+DppTC7/" + "ebRkh72bd2abrpdPrAe+kCdzHpNopErY5f4+" + "PjyGazTY1Jb2ekyxjD4uKiSbbls9GsaEfbcLVKBE6OmUwGExMTGBgYcHzivfWWnU" + "QfeaQbV69eBWMM169fR3d3t6lH8hPdmhiKxWJNTxq+" + "U3CLLAF3rCadRsyEENPbtlobdCKRQD6fx9TUVNU26FgsBr/" + "f73if36nz0YAOJF0nP2o9eSGVSmFmZqbC8WtqasrVfbDCKUnzyFaSJOTz+" + "bpky9EO/13r5ysUCpidnUUymcSJEydw/vz5pj//" + "rVv2qOb8+" + "VLTSq3JETzi2t3dxeLiolm3atWK95IYKsdBi1Ddwl5lCuudSyAQwPDwMABdIuAyk" + "rUNmv9GVvvF/fK3LRaLB26SSDV0HOk6gc/" + "nq6he4I5fgiBgYmJiX+" + "coNZIjKKVYWlrC4uIiDh06hFgs5tiarl2m55RSvP3229je3sb4+" + "DjOnj1bl0xq1elms8DcnPX2luHMmfr7IAhC1Sw9H26ZzWaxurqKbDYLSikKhYLZh" + "s0TQ3eK+O420uUolwR8Pl/" + "VNmg+DZqbklvboDkZ89Z8NyWGg9Jk4wQdR7pODmguL1Rz/Co/" + "kfcDteSFcrLlke3u7q7jg7JZ0m10cBaLRczNzUGWZcRiMZw+" + "fXpPJFIuLYyPM5RZUziG3+" + "9Hb29vRYvtjRs3EIvFzLlcsizbGgmskVot3K2RLuCOTOH0eKw1DZq3QWezWaiqil" + "deecVsgy6vpNjLReKgfffV0HGkCzTumPL5fMjlcnjxxRcRjUZx4cKFCnf6ams2Gx" + "U4PcHKSddKtsPDwxUyQjPJMbdqgFVVxfz8PNbX13Hs2DFEo1GMuOAw/" + "uab9hP14kV3zHw4CCEQRREDAwM2qcHaSLC9vY2FhQXbCB+" + "rTOF2xNUJJ36z2Etkam2Djsfj2NzcNDX9Wm3Q1Sop6n2v+Xy+I6QFoENJtxasjl+" + "KouC+++" + "5zPFCRR8dOO7o4MTo5EDkxapqGpaUlLC0tYXh4GA888EBVTbJdnrrVtlVVFYlEAq" + "urqxgdHTXrkhOJhKM1G+H11+0XsYsX96cpolYjgTXishrPEELg9/" + "vNyKtVr4O7mXTdkin4MV+vDdo6rqdWG7Q1weqmw1i7cVeQLq9jtTp+" + "3bx5s6kJtq2QbjP1hrIs44UXXqhLtta12+HVYCVdPqZoeXkZIyMjto47N/HGG/" + "YT9dKlO9uJVmuETyKRMM3K+Uyuahn6RsfH3Uq6bnWkOTlnao3rqdUG/cMf/" + "hBvvvkmMpkMnnvuOVy8eLHuSCwnSCaT+" + "PSnP4033ngDhBB84xvfwEMPPbSnNTk6knS5vKBpGpaXl7G4uIjBwcE9eQ+" + "4OT2CgxPb0tISKKUNyZajWSvIZrZVVRULCwtYWlrC4cOHHe9TK6AUeOON9soLboB" + "HuV1dXTh69Kj5ODcqryZRlFdRcCJxg3QPYlLITbeyVo+3WncvJ0+exPe+" + "9z1873vfw5NPPokvfvGL+MM//EN84AMfaHk/H3/8cXzoQx/" + "Ck08+CUVRXJ0Z2JGky2+" + "Jl5eXq2qiQPMarRvTIzisUeThw4fx4IMP4vr1644PtnZUJFBKkclksLq6iqNHj7a" + "VbDnm5wkymRIBdXfr0yLagXYQVS2jckVRzCoKq0QRDodRKBSwtbW1JztGN5N6buE" + "gWkRy9PX1YWxsDNeuXcNXv/rVPa+XSqXw3HPP4a//" + "+q8BlO6O3EJHku7CwgIA1CWOZuUCNyLdcrJtldiajXTrmfswxrCysoL5+Xn4/" + "X5MTEzYorl62OvJ/" + "7Of2U+uS5c0tOPOe7+rDgKBAPr6+" + "iq8cXO5HF599dUKHbI8cdfomDxoo3oA9zTdTmgBnpubw+" + "DgIH7jN34Dr732Gq5evYqvfe1rDZPxTtGRpHvy5MmGpMQbJNpFutZI10q23P5xL1" + "Fks9UL1Ua2Wyf+9vf349q1a1hZWWnK67VZb9hyvPaa/" + "SS9fPnudBYDSh1dfr8fJ06cMB+3ShSbm5uYm5urGN8Ti8VspjMHyb/" + "BCrcTaW7CzakRqqri5s2b+PrXv44HHngAjz/+OL7yla/gj/" + "7oj1xZvyNJ12mt7l7tHeuB+ynMzc1hZWXFEdk6PZn2Ur3AGMP6+" + "ro528k6PaIV2WIvJ9qrr9ojmitXDp6ey+" + "HmDDArqkkUvG41m81CkiQsLi6apjORSAShUMicRLsXn4O7afx6I6TTaZw8edKVtY" + "4ePWpKcADwsY99DF/5yldcWRvoUNJ1glbkgmoRYzWoqopUKoXFxUUcO3bMUea/" + "mcixlZlqfBrxzMwMuru7q85sa4bM9zpKhzHg1VftJ/" + "yVK3dvpNsMrHWrVtMZXirFm2O4z0G5STn3OWgEN/VTt/" + "Rhbi3pNtyUF4aHhzE6Ooq3334bZ86cwbPPPovz58+7sjZwF5NuK/" + "aOjbZXVRWLi4tYWVlBNBrFsWPHMD4+3tT6TuQOURQbjg/" + "iEAQBkiThxRdfRCwWw5UrV2qWyjXSf8u3bXZ6hPWisrREbCPXo1GGU6cOLukehFI" + "vrv8SQpBMJnHxom6HWW5SbpUoyqsorJHtQYx0O2FUDwB8/" + "etfxyc+8QkoioITJ07gm9/" + "8pmtrdyTp7re8YG0g4DWtm5ubju0jgfbU3u7s7OD27dtQVRVXr15tKPQ3Q6TNRLp" + "c0igWi4jH44hEIrh5035xuXxZQxvuKu9KlJNlNZNyq0TBfXH58ci7uax3QXu5oLh" + "5QWpnIs3N5ogrV67gxo0brq1nRUeSrhO4QbrVyHY/" + "RvY0kgF2d3cxPT1tViOsr687yqy6XYpmlTTi8Tj8fj8SiQQkScI//" + "dMEgGPmtpcvO/8t7gQOQqTL4SRCbSRR8LbadDqNl156CaIo2uSJZty/" + "3K6CaNfUiE7w0gU6lHSd2jtyb1YnsFYj8AaCtbU1HD16tKpm20riba/" + "DKVOpFKanpyEIAs6ePYuuri7IsozV1VVH6zYzhqdRpLu9vY3p6WlEo1FcuXLFlHP" + "4yfnEE3aJY3BwHtevr5hNCNFoFF1dXQeyEeBOYy8XAGs3l9/" + "vRzAYxMmTJ20ShdX9yzq6h1dRlBNspwyl9Ej3DqOVSFdRFMzMzNQlW+v27Yp0y+" + "WFTCaDqakpMMZw8uRJ223Ufvo0APrBPTU1BZ/Ph4sXL5oRtvUCpGnAK6/" + "Yv7ePfnQUExNHbbfECwsLkGUZL730EiKRCLq6uhw5grUDnRbpOoG1traWRFEoFMw" + "qiu3tbbPzKhKJmETs8/lci3TbNaapUCg01fZ/" + "J3FXk67TSJTLCKlUCsPDw46qEdo5PYITKR/" + "6WCwWcfLkyapXcretHWttm81mMTU1BUopTp8+XdGlZSWsyUnB1onW28tw4oS+" + "VnljwY0bN3DlyhXk83lkMhns7OzY2m2tUfFebf8a4W4j3UZ+" + "CdbRPeWGM9zjIJVKIZlMQpIkvPzyy7bEHSfkZtCOSLfT7pY6knSb8dSth2KxiIWF" + "Bayvr2N0dNSsSHCCdka6iqJgZ2fHHPpYz7yjXSbmXIrI5XLmtN9Tp045MhJ56SX7" + "SXX1av1OtGpz1QD9e8hkMpAkyYyKAdiaCspf0yrcOHHdOvnvdHNE+e+" + "RSqWwurqKiYkJm0QxMzNjmy7MybjexdGtzrZqOCgXzUboSNIFGmuOfr+/" + "prxQTrbcznBpacnx+7cj0uVDH7PZLILBIK5du9bwQGqlptcJGGOYm5tDPp/" + "HxMQEBgcHHR/UL71kP6nuv7/2/tX7HQOBAPr7+ysSRbIs26LidDqN119/" + "3ZwcsR9RcTtx0NqAeXRay6CcSxTlnri1TOTdJkd+" + "V9Qp6FjSbYRqkW4tsm0Fzdax1iNHPvQxnU5jYmICZ8+" + "exSuvvOLo4GzmAHayz8ViEfPz89jY2MDRo0dx5cqVpk+SF1+" + "0R7rXrrnXiVYtKn7llVdw+vRp0xC7XlRcSyt2I7rkvrx7hZuk64Z+Wk+" + "mcCJRWG0YZVnG5OSkrYpir/" + "uYSqUq5K6DjI4l3UaRrvXgtxLJ2NhYXbJ1evK1MpyyvOGh1tBHSmlT0oVT1CNdTd" + "OQSCSwsrKCsbExjIyMoLe3t+nPubsL3L5dOkEJYbjvvtYi3WbAvQzKo+" + "Ja1ozlWrEbcKuV2C15wa3ur1Z02FqS0fXr1zE4OAhJkrC6ugpJkqBpmm1sDzeRd/" + "pddsoUYI6OJcCWkEwAACAASURBVF0nYIxhamrKEdkCJZ22HdlVqxzBPRtqDX1sJu" + "HVDKqRrnV00JEjR8wkIq+WaBbXr1dO/" + "r1Thv61BlxW04oLhQIikQhyuVzLFRR3Wott1zpuJb/4/" + "lSbc5fP580qis3NTbPcs5qJfPl33ElTI4AOJt16B7eiKFhYWIAkSQiFQo5lBC5Jt" + "It0FUXB5OQkNjc3cfz48T0PfWwWVtJljGF1dRVzc3MYGhqqMOtppQ0YAF54wX5yP" + "vhg/" + "YjdrUi3GVTTimdmZhAIBODz+WxRsbXVtlYdK4ebPrh3I+" + "nWWsc6tmdwcNC2vVWiWFxctI15j8Vipo2mF+neISiKgvn5eWxubuLYsWOIx+" + "M4cuRI24zMnZrYqKqKtbU1rK+v4/" + "Tp03vSkvcCXoq2sbGBmZkZ9PT04Nq1a1Ujulaj7eefP/" + "ikWwuRSMRGxEApKuYSRT2t2M1I1y0t1i3SdaNuutmAptakiGKxaCbuvvOd7+Af//" + "EfkclkMD8/j0uXLuHxxx/" + "f07geTdNw3333YWRkBE899VTL69TCXUG65WTLSY37ATi9SrfqqVsrc2ptIx4cHMT" + "AwABGR0cdr+82kskkstksNjY26hrjAM11r/Ht83ng5Zft3/" + "XDDx9cO0cnqFVBUU0r9vl8KBQKWFtbaxgV18NBi1Ddmo/m1v74/" + "X5TovjCF76AY8eOQVVVfPjDH8brr7++5wvE1772NZw7dw7pdHrP+" + "1oNHUu6hBCTbLe2tqpqtm6O4Km1vaZpFaRrnY3GO9sKhQLefvttx2s3g0ajiaxdZ" + "KFQyHSvqodWIt2XXxahKKVIb3SUYnS0/" + "hoHJdJtJkqtpRXzNu1CodAwKnZrX+rhoJF3O81uxsbGMDExgYmJiT2ttbS0hH/" + "6p3/CH/zBH+BP//" + "RPXdpDOzqWdLe2tnDr1i0cO3YMJ0+" + "erHpwtcPesd72lFIsLi7aklL8dqpZgxygOdPzaicY7yLTNA2nTp1Cd3c3nn/" + "+eUfv3WykCwA/+Yn9cHr3uxt/" + "3k4paHcC7nVgbbCpFRXX04rv1kRaO6dGXL582ZW1fvd3fxd//Md/" + "jEwm48p61dCxpNvX14cHH3ywYTVCu6dHaJoGSimWl5eRSCRw6NAhG9mWb9vs2k4O" + "0vKkVytdZNXWbOa7A4D/+A/" + "7vj7yiLPP22mRbjNr1IqKrQ0F5VFxLpeDz+dDV1fXnm6V2+" + "HhsNd12jU1wo1E2lNPPYWhoSFcvXoVP/rRj/" + "a+" + "YzXQsaTrxHO2lci1GaIRRRFra2t44403MDQ0VHUqsXXbZkm3mTlplFLTsCeZTDbd" + "RVaOZm/78/" + "nK9t9HHmn83bslL3QacdeyZZQkCdPT02bHXbMVFFbsl4eDU7SrMsitOt2f/" + "OQn+Id/+Af84Ac/QD6fRzqdxic/+Ul861vfcmEvS+hY0nWCVkjXiR0kH/" + "q4urqK3t7emhUAVjRLfs24hwHA7Owsdnd3q9b9toJmS8ZefJEgny+959GjFOPj+" + "0OE+z0NuF1r8Kg4HA7jyJEjZpdVvai4nlZ80CLUg+6l++Uvfxlf/vKXAQA/" + "+tGP8NWvftV1wgU6mHTb4anbiKT5hITZ2Vn09vaaJjntsCF0EhnzLrKdnR1b1YYb" + "cJpIY4xha2sLf/" + "u3KoDj5uP33pvC9nbSvEWu9XsdlEQasHfyblcCrF5UXE8rbibgqAc3E2ntmI+" + "WTqc7xksX6GDSdYK9JsY4yick3HvvvQiFQkgkEm1p1wXqywtWDfnIkSM4dOgQhoa" + "GXK39dZJISyaTmJycRDgcxu3bV2zPvec9ClKpFJaXl1EoFMzW2/" + "Jb5IOSSHNL4tivqNuJVqwoCm7evAmg+QoKK9zUhtsR6cqy7LqX7vvf/368//" + "3vd3VNjo4lXbfsHettzxjD9vY2ZmZmEI1Gcc8999j69HldZjtQTV7gssbc3BwGBw" + "dNDfmtt95qivydntS1iEiSJExOToJSinPnzkHTunDzpj0S+vCHozh8uFS+" + "U63JgJf9ra6uor+/vyV/" + "VjdxUCPdZmCNijc2NnDt2rWWKijK4ZYXRLu8dDvJUa5jSRfYm71jNVg9cnd2djA9" + "PW3WtVabQdbOMjDr2tZIu6enB1evXrXdprXiqetkZHz5moVCAdPT08hms7aqiO99" + "TwClpc907pyGw4ftv0u1JgNN0/" + "DGG2+AEGLzZ+WDFXlkHAwG2x4RH7RI100SaaWCwm2/" + "YqB9dbpAZ5UedjTpNkIrkW4+n8dLL70Ev9+P8+" + "fP1z3oWi0xcxLNcXlhZ2cHU1NTiEQiNbvI2kG61khXVVXMzc1hc3PT5obG8cwzdo" + "L44AedjyXy+/0YGhoyv2fGmDlYMZ1Om/" + "IEL6GymmW7SUwHzdpxP0jEqVYsSRJeffXVlioorGiHvNBOIm8X7mrSbaY5gndt5X" + "I5XL58uSIqqIZmI91mDHWKxaJJthcuXKhL/" + "u0wMieEQNM0LCwsYGlpCaOjo1XrohmrJN2f+7nm/" + "Susf49EIohEIhgaGjIfLxaLpjyxuLhojhuPRqPI5/" + "NIJpPo7e29o2bWB82ophVUi4pffPFFnDt3rqUKCivaQZDpdLqjvHSBDifdRvKCk7" + "Ir69DHU6dO4c0333REuEB7JgJLkoSpqSlkMhkMDw/" + "j1KlTDddtx2j17e1tbGxsIBwOVziQWXH7NsHiYikqC4VYRSdaXlGxnpQgFYoIB3w" + "I+X0IBXwIBUTHt/" + "V+v982Ww0oRWW3bt3C9vY2lpaWoKqq6c3KI+" + "NQKNQwcjwIJWNu74sb4BeAVisorFFxOzTdTvPSBTqcdBuh3oHrZOhjI7TaZVYNuV" + "wOMzMzkCQJJ0+eRC6X29cpvxzb29uYmppCOBxGb28vTp48WXe9f/" + "5ne0T2nvdo4ApIUdOwnpSQzJaSjVK+CClf0tnnNyUUA0n0Kwxhvx/" + "BgIhwwAfRQaTHo7JgMIiJiQnT6Yt7s2YyGayuriKfz9vsALmBudvR5EFIpLm5BlA" + "/+VUtKmaM2SY+W6PiXC6HpaUlVyc+" + "d5qXLtDhpNvKAS5JEmZmZuoOfXR68rgxnLJWF9nKyorjJKAoio63rUW66XQak5OT" + "8Pl8Zh/75ORkw/" + "V+8AP7if3ooyo0SrGZlrGTyQMwvkvGYI+" + "9jMcJkCuoSGYLSKJEzn6fgJDfh0jAh2BAj4wDvsZRUi1vVqsdYLk8EYvFkM/" + "n91zX6uYYdzf05TvRjUYIqRkVX79+HX6/v+UKimrwSPeAgidnrJFkf39/" + "1QPbaaIJ2NtwSp6c2tjYqNpF1q6Bk+XbyrJsOmOdPn3aPIBzuVzDNXd2gJ/" + "+1PodMtz/SBqTKxI0jdke538SQqC/" + "gqDe6ppGkdUUZHKKZd+JTZ4I+" + "vWo2AmsdoAc1iGXiqJgenoalFJzui2XJ8LhsCMSdJN094qDZscoCAJEUcThw4fNx" + "+pFxU61Yk9e2Gc4deB64403kM1mHfkRcJ3WyYHWrP0hj0jn5uawsrJSdzhmu0nXG" + "mGfOnWq4iLk5LP9y78I0DSDQv15nLqYRqArC40yAJXfMV+fsvLHmGVEu/" + "5aWuWtKWWQ8kXI+SJgGsgDS7s5dG9nEI9GmpYn+Em9vb2NEydOIBwOm6VUmUwG6+" + "vryOVyEEWxQp4oP0YOEuketBbgasdSvajYiVYcDoc90j1I4EMfs9ksRkZGcPHixa" + "YaKtxuV6SUIpPJYGlpCWNjY+" + "Ysslpo1vDGKUEzxrC8vIxUKlXXp8FJR9pTTwkgPgVCOAviV/Dwe4rQzy1dNhCM/" + "2WUgQgE1ZYjhIBBr4LQVQhjX4zXc/" + "qmxjYCMU5gxj8PoKgaknIBkkIBMAgCgUgEhINGws7fnDxRbbqtqqpmRLa8vAxJks" + "AYs40ZLxaLB6ZI/yA6jDldx6lW/MUvfhFTU1MYHh4GYwyXL1/GBz/" + "4wZb2d3FxEb/+67+O9fV1EELwmc98Bo8//" + "njT6zjBXUe65UMfi8Uiuru7HUcgzVYkNIK1iywQCOD48eM4fvx4w9c1Y3jjJNLlr" + "cPr6+s4dOhQQ5+GRmumMyr+9T9kiF0FM6h95N2W740BlDAIzCBVqj/" + "I5QVGoOu8jIFYCNT2evN/" + "dSLVKAWIAIEQy+" + "tLL9G1Y4BSgIKiKCtIyyV5QhQJQn4fwgEfguafonlsNLoD6unpsUVV5WPGt7a2oG" + "katra2Klqe9zsCvtu8dKtFxd/97nfxxBNPYGRkBP39/fjhD3+In/u5n2tpfZ/" + "Phz/5kz/Bvffei0wmg6tXr+IXfuEXcP78+Zb3ueZ7ub7iPqJ8zDov4D9+/" + "DhOnToFQRCQTCbbamReC9wIZnp6Gt3d3bh69Sq2traaSo65QbqMMXMm2sDAAI4cO" + "YK+vr6GJ2QteUHVKDZSEr7/gwLymnEyMmBgEDh3Ti/qp2AQQMBM4uS/k/" + "4YM14jEKITKKMggr6V9XnAiGyhR8mECGXPG9IE9KiYkzljVcQNopNxefUEIUDQ78" + "N6KofeTA49RC9la1aeAGCWpg0MDJg1xZubm5Bl2dzWSsbtLOp3K0J109axHZ9Xki" + "RcuXIFH/jAB/" + "a0zuHDh029uaurC+fOncPy8rJHutWgqirm5+" + "exvr7uysieZisSqk1t2N3dxdTUFEKhkM2vQRRF5PN5R+" + "u24qdbjt3dXUxOTiIajZomPTMzM46bI6zbUcqwlZGxmZJBKcO//" + "btxAhns9r73avr/E0BglZEjAzPCW5j6rS79liJhK8UTI/" + "xlRvRabz8ZdHKnxkWC8N0iBMwgZaC6rsgYkFeKyOZVrKdk7Ob03z7gExEKiAgFSp" + "FxI3mCMQZRFM2IrFyekCTJLGPLZrOglNrkib2alltx0BJp7bR1dFvTnZ+" + "fxyuvvIIHHnjA1XU5Opp0C4UCXnjhhboJqVb8F1qZqxYIBJBOpzE1NQVBEKq2EDd" + "T7dCsvGDdNpvNYnJyEoSQim62ZjrSOHYyOWykJBQ1CgKgWAT+4zlSElwBfOAD+" + "nOs5tJGVCoY1QsMBiESlHMhEQDGvRxsTMwJlOiSBCkRdzkYAAFM/" + "4eVnhd0Noa9gE2Pzq1QVA2KqiEtK8YFgEAQSvIE14qt8kS9RJrP50N3d7etvIkxZ" + "soTqVQKS0tLKBQKyOfzmJ6e3lPL7UGUF9o1H81NW8dsNouPfvSj+PM///" + "O2dbp1NOmGQiE8/" + "PDDDUf27HU4JWPAwgIwOUmwtESQShEoCuDzAcnkCN58swifL4FDhzK4//" + "6TNesGm4miW5EX+" + "MkqSRJOnz5d9WBsptJBVlRMrWwjr5T2gwG4fp0gKxEjSQb09TK86wqgaTqpVit60" + "Im0PKItRb6EAIQRMMLAalQ/" + "gOnZNcaM+" + "NXQGbi8IBA94iVGVo4yVKxDLa8hBmkb5cKG1aRFviC6TMIrKTSNQdIq5YlwwI+" + "gX8RONo/" + "umAiNUkfyBCEE0WgU0WgUhw4d0vePUty4cQO9vb1mwkiSJAiCgGg0apMn6kWObpK" + "uG63V7RxK6RbpFotFfPSjH8UnPvEJfOQjH3FlzWroaNIFGlu6+f3+puwX+" + "fQIxoB/" + "+zeCb39bxDPPCFhfr5UIGTf+1JssBgcZLl9muHaN4qGHGB5+" + "mIInYZsh0mbkBV4ZcfPmTZw8ebJuWZwT0s0VilhLSlhPFzBc1EAIT1jpa/" + "7rvwpGpKqT6Xvfp2JuYQapVAqiICAciSASDiMajSISCUMUfTWJlLdyM3AJQn8fYm" + "gEBLpsQLgUQVG2Tkle4NUN1NhCJ1M9qqWMx9qASPQ1eQTMmP53aiTmGNNJkxlrE0" + "OmALPvv2AQtFwoQi4UsZHOIa0wSGzbkCd0fdipPKHviy5RVHNk4/" + "KEE0c2N0k3FAq5sk475IVsNuuKExpjDL/1W7+Fc+fO4fd+7/" + "dc2LPa6GjSdVoC1qy88H/+TxD/+T/78frrzR+0m5sEzz5L8Oyz+mtFkeG++xg+/" + "3kNjzzinHSdTFSglGJhYQHLy8sghDQc1AnUHzipqBrWd7NISvpFipdymREpgHwBe" + "O45YpZ4AcDExCx6ursxcmQEhAC5XB65nIzt7W0sLuVANYpQKIhIJGIQcQR+v9+" + "8HaeWEjAOxmA+RohgarOcjLk8wYlQJ0BOpKVom8sIAuGJNv17FYjRnFFW/" + "aBH3UKVOmFiRr78r+" + "U6NKMleaGgalA1irTMLwF69YTNe8IvIuj32Y7jWmQpiiLi8bjtltfqyFZuGM8YQy" + "gUQjabbUmesO7PQZUX3PTS/clPfoK/+Zu/waVLl3Dlim7I/" + "6UvfQmPPfbYntcuR0eTLtCYnJqRF4pF4Atf6MU3vlHpndsqNI3gxRcJKNVa8t+" + "tBsYYVlZWMD8/j8OHD+OBBx7AjRs3HB181SJdjVJspGTspGVoTNdZq7wrGAh+/" + "GOCfIGAGEW0fb0qPvKR4xAEvVyPUZ1gg8Gg3mJNCAghyOfzkCUZqXQaq6ur0FQVv" + "kAAlFJQqiEaiSAYCJhpL2tEaq3JNZ8EoOusRj0vBQSfpTrCAlvizljEuo1AAMKoo" + "ffyk7mKTsyIUR1hjXp5GZx+JfAZEgUYT+yV1tE0hmyuiGyuaO4TIQQBnx4NhwM+" + "CKBVNepqqOXIpigKZmdnTZc4a5eXVZ5wIhsc9FE9gDteuo888si+" + "jY3qeNJtBKf2jsUi8PGP+/" + "DUU9UPjEiEYnw8jVOnBIyORhAMAqoKLC1lsLsbwtpaENPTBIVC5QEgigzvfjfdM+" + "lay9CsAzGZUe/qBFbSZYxhK53DZrrUtkssjQ1ca2WMGqIs8NRTFsImwKO/" + "qD9PqX6Bo5SBMqo3RoCZf/f7/" + "IjH4+" + "jt7eGLQlVVI3mkYCGRgFJQIIq6dhmOhBGLxBAKh0xZwAqTSKlRuWBICMY3VWo3Nk" + "jSGrHbF9L/Q5lBqhZ5o/" + "R6mPVsPJK2LsCMqJsZO2BNqJXLG3zfzUicMeQVFXlFxS4ARSlgfktC1+" + "oOAj6etNOlCr9D8gsEAgiFQjYy1jTNbHne3Nw0SbmRI9tBrl7YL99ht9HxpOsk0n" + "UiL/z+7/" + "vw1FP2g4sQhg99SMIHPziFRx8NYWJizDhwSsQ5P78Bv9+" + "PkZERaBowPU1w4wbBT38q4LnnCCYnBVy9yhCPA5S2TrqpVAqTk5MIBoMVZubNHHi" + "cdHezOWwkZShqlf3h9bXmLb4AWZLw+s+W8fKNCwDVb7VBgEd/" + "QYUgEJMUBZFAQCniFmhJJ6BU0wmKUoAxCIIIfyCAcCiMvr5eEEEAVTVIsgRZzmFl" + "dUUvsSMEkXAEsage1YWNZoPaRKpHnpRRIyI1KicsOjGY/hl0LbdyHR4xm/" + "Eslw64TIHKMjgKppe4VZE3CL8QGOty7blSVmEQRQF5RUNe0ZCWS/" + "mIcnmCa8XVUC5TiKJYtcurkSOb0xLHRmhHIi2TyTi2YT1I6HjSbQQn8sIzzxD89/" + "9uPyCOHlXxuc+9hve+N4Dx8VM1b8WsFQmiCJw5w3DmDMMnPqFHhCsrus4LNO/" + "VAJT8dTVNw5kzZ/" + "ZcxpJTNCxsZVAIZADo2iZQTgDMzOIXigoWEwnk83m8+dZpfTtBZ44T4wxnzpSy/" + "9Vu7fWElE4+1ox+" + "oVDA0uIiFKWAQ4ODAGPQVA0AQyQSRTQaAyGDZlgoyznkZBnrGxvI5fMAYwiGQohF" + "o9BUFUyjEAJG9UNVIiUlnVhnXTAKk0hhdL3prFgi0tLPZSVSy6qEf18EhFk034pt" + "7I0h5WvwqJrSyoQdh0YZ5LyKbE4xP5sgEAT9YkUpm5NEmhNHNlmW8dZbb5mVFtaa" + "4maqGtoR6SaTyY7zXQDuAtLdy4BFQD+pPv95+9dw6JCE//E/" + "ZvHgg6ca6lCiKEJRlJrPHzkCHDnSvFbE6zVff/" + "1105BmL8gXVaztZLG8k0WuwC9CdmMZZpKwPjVCLSp46623cPToUfT09OL/" + "+X+Nwn0jN/" + "TYY6ol2VaCnvDilQGsdHsOgGoUq2ur2N3ZwcjICPr6+" + "kwCYpSBMaNillK9msC4hQyFQgiHw+" + "gf6De1Ba4TF4tFzM7NgjKGQCCAaCSCWDSKcCQCvz9Qh0itt/" + "ml5J0gwJYoLCdJvk6JiI3uO8af0F9sek80kDeIhWwZoxCEUvWGVb/" + "WZQq7TkwpQ66g6vaYpiYNrGykURDC0ERZj4gDomN5wurItrW1hYsXL0IURZsJzfz" + "8vKnTWnXiWo5snoF5CR1PunvFc88RW5UCIQx/" + "+Ie38L73XXb0+mY72BqBd9htbOiyxdWrV/" + "dUJ1lUNWykZOxmcyAARCKAsfL91etrQQkoZdjY3MDa6ioAgosXLoAQgp/" + "9jGFuRjC2BUQfw6OPVn5uTri0jIkJgK3tbayuLGNwYBAXL14E70YztxEICIwTUxT" + "hAwHj5Mt0MxtKATAKyigC/" + "gACvQHs7O7g2Ngx+P0+KEoRck5GOpPF2sYGikoRok9ELBpFNBJBJBpBKBiq6HTT/" + "R2MfTdka/" + "tHaEykppZLiC4f6LuMCnmDlZozGIztjHUo1WUXfgHgFRuUMbPLDkQvoTMvmARGPX" + "GpUqJQVCEVilhPSub+" + "BXyCXsoW9CHs9yMUEGvKExycLGuZ0BQKBbPludyRjZNxNBp1PKaqGXSily7gkS6+" + "/W07cfyn/0Rx/" + "nzW8eub9dStBUoplpaWsLi4aM4ju3nzpuNa3cr1GDZTEjbTsv222HT74skePXJil" + "CGZTCGxmEB3PI7z5y/g9u3bSCaTiMZi+P4/hEHEEgu9+90U/" + "WbQadSFGg0J5Xbl2WwGicQiItEIzp07D5/PD96Nxm/" + "PdR1Z3xce5FEwQCDGLbtRggcjIgaDVixidXUNmlo03puZAyy7490gxmuLahGynIM" + "kS9je2UWhUIAgCnqNq0HGYNRIpFWvXGhIpCgRt/" + "79VyxgKYNjpcYMY21OpNyu0lzTWk8MmBqOqaETAmbcepTuLnTdnBg7w4lbUSkUlS" + "KbLwLI6a835ImwOUJJlycEgV8EaierrI5sVnmCO7JlMhnTkY13SXIidqPl2Yt07x" + "CcJJGqFYtLkoTp6Wn8+79ftG37a7/" + "WHMm1Eulas9uMMayvr2N2dhZDQ0O2eWTNVjtwGWUnm8NmSkZR1VBOIHoUWipLYox" + "AkiUsLCzA5/Ph9KnTCAb8oIxh5OgRpJIpTE2t49kf2iP/x/" + "6vAhgEw1xGJ1AKrk8at/" + "+FPBYSCVBKMTExjlA4bGb6ASPjb+" + "FnglLpFYykUyWF60SxubmF1dU1DB0awujomPkcNZJ0epKLQqUMhAimHkkMBmKUQZ" + "Yk5HI5rK6tQ5bzuH37LYTCYZs8IYqiuY91iZTrxPzTE64PWxJuloi0FpEyRiESAb" + "oSLphyRXUJp1SWVjGXg+lDMk2tuHzXze+" + "LoaCoyBdUcwVCYDZ3JGW9Ay8UEOFzKA9Uc2S7fv06jh07BkmSsLu7i0QiAUVRzOq" + "JVhzZ0um0F+keVHD/" + "hWAwiHw+" + "j5mZGWQyGYyOnkIiYa0CYHjkEYrXX3feRtnK9AhecM7nkcXjcVy9erVCP27W9CaZ" + "zWEznUOhyInaMHyxZM0JMcI1BuQVPZmVz+cxNnYMsVgMlGrQjM/" + "e3d2D7u4ePP8TEUVFMNcbHCyit+" + "9tvP6zIgLBAKJG4isS1WttVaphZXkFqXQKo0ePorenx2gPLpGt7WLASt1dpgeChW" + "WIqa8SZLIZLCQWEI3GcO78uYpbVp8g2uQNXSfmJXXMIGUAoAhHI4hEoxgYHEA+" + "n8OZM2d1nTgnY2t7B7mlJWiUIhQsNXZEo1G9NM6MUvUYXNefmaWqwioE87pmZkSw" + "gnFhsINHthAEUGYTdPXn+" + "XuBE3SNqBww7zz4rpTubKzQib1cCmIMKBQ1FIoaduUiEpspUAb4RMHUh53KE1bU8" + "sht1ZEtmUzaIuxOQceTrtOutFwuh/n5eWxvb2NiYgLnz5/" + "H7CyB1QzlyBGgq6sUvToh3VbmpKVSKczNzUEURVy6dAnRaPVmDKemN7lCEavpAvx" + "ruxX6LwExb90FIkAQBKiahsXFBHZ3dzE6Ooru7m4wcDtASwQGgGrA9/" + "7eZ9zd67riRz9KcOnCOTAARUVBNishK2WxsbkBWZKhaSpiXV04MjyMYCCon9S0fK" + "/0ClY9kaSTZM10IwEKShELiQVomoYT4/" + "qEB1iiasooBCIY+q+" + "FsAVibgNA14kZBaU6vTNNQzKZhKZpoEwf1RMMhTDQ329epOyNHWv6FINgANEIb3W" + "O6o0dVRpLeGUC121ZiQVhJUIuT+i387V/" + "a1qW1DObLMD1YWYcNxSCYCUqqycGM78rEJ2cdZ2a2C4GvE6ba8eqRpHJKcjkAKs8" + "EfKLNmnCKk/Ug9UjtxlHtq6uLmiahlQq1XBw6kFEx5NuI6iqClmW8bOf/" + "QwTExM4ffq0eaCn0/" + "YDo79fP7p4mZmTBFYzkS5v2ZycnMS5c+" + "ca3ho1khcKRX20eUoqoKjpkRyPGEtREDO1Vkoptre3kclk0NvbhwsXdWmFUgaB6O" + "EmMTrIuB/C8z8VsbzC0+KAz8/" + "wS7+kmhzqCwTQ0xcAEQiSqSQODQ2if2AA+" + "VwOWVnG9s4u8vk8RFFENGYksyK6JwMhvHqiJDqTMiJljGFpZQXJ3V0cHR01b1lLw" + "aShDUMApaWxP7xKgX8NtgQfIRBEEflcDvMLCwj4Azh77hwCfj/" + "A9GYOZtxhaGDw+/" + "zo7u62NHYAmqYiK0mQZRmbW9tQCgqUogJhbRXxri69Uywcgh5J1voFS8k87jtMuS" + "wg2BNuOmlWxsbWemCBEGP39MSjKAgV9cCmBs+/" + "GGZ9vrS+YDirMSM6R5WomktVcoFBLqiWx0vyBC9l02p/" + "CRWo5shGKTXPn93dXXzuc5/DrVu38Mwzz+D69eu4//778bGPfczxe5TjX/7lX/" + "D4449D0zR8+tOfxuc+" + "97mW12qEu5Z0KaVIJBJYWlpCMBjEyZMnba2S1cBP2GZah53orrwtc3d3F5FIBGfP" + "nnVUb1trbW4kvpPJmScdIQSaRi0nOLFFTLvJJBYTi4jH44hEohg6NKTfDkM/" + "yZlJdPaTJo3xvAAAIABJREFU4//7XyKglXJHP/" + "8LGnotA5Rzcg6JxQREQcDpU2cQDAbBoNfQdvf2mmSnqkVIkoxsJovV1ApkOQdBFB" + "AJG34M0Qgi4QgEkfssMOxs72B5ZRlDh4Zw6eJF08GsRENllRKWggRrVCcaqjMYgw" + "BAUVU9wZOVMHZsTNd6zVgTEI0KCkYZRAAa1cxbf0KZ3ipN9FvgeFdcr/" + "wAMD01hXhXHKpaNBsN9MYOPWFnNnYIQkkHL+" + "MiZmjQuq8DNapK9M9BrDqxVQs3ibT0JTDGwCxRKt9OgG5jWW5iVNpGT8xRpreuE0" + "EoI+zS96pLLJURrS5PqFA0DSmpAMooFpN59C5t2+SJcMCHgN+" + "ZTsxd1rgj25NPPonPfvaz+LVf+zUAwOrqqqN1qkHTNPzO7/" + "wOnnnmGRw9ehTXrl3Dhz/" + "84bYYmAN3AemWywuUUqysrGBhYQHDw8N48MEHsbCwUFUbLTcnSqX0tZoh3XryBu9" + "9X11dxfHjx3HmzBncunWr5cm93Eh8Oy1DM6RJHukJgmiUDJVODsYASZaxsLAAv8+" + "P06dPw+cX8eorr2EpsYhYl35rHAgEys8oAMDbbxPcvCkCQimC/" + "JWPaSDQSXR5eQlSVsbY2Ci6uroMrbFMHwRP6vjQ3c0NW3RpQaMUsiQhI0nYWN+" + "AnJNBoGvwci6HSDiC02c4kduJRiSlKLBGIGbsswDN+" + "KbAGDY3t7C2tobhw8M4fuyYvZ647PNzMvUJPmM2m3FXACOrDx6NU6iqimJRQTSq1" + "wYPDtobO2RZwsbmFmRZBiEMgWAQsYiug0ciEVMn1jX4EpHa/" + "InLu08Mf2FipN0qXYKJ+T1wMyDNdsnin7P0iO51oT+" + "nW1SK5vamURCzrE4qZ9lxwYTvO9X0dazyhCDkcag7in5/" + "KafSLFKpFE6dOoUTJ060vAagJ/lOnjxprvOrv/qr+P73v++RbiNYqwD6+/tx//" + "33m/JALf+FQ4fsp9nKCqBpex/Zw4c/Liws4MiRI7YhlM3aO/" + "Jtd7M5rCclFFU7YfMstigIAKUQBL1zSVEULCYWUVAKODZ2DNFo1GjDZbh48QIymS" + "yyWQlr63otq9/vR1eXnj2ORKMIBYP4u7/" + "1wRxgBuDed1GcOkWxsrKGra0tHDlyBMeOHdc/M2B2Y/" + "GLgbmPxvlt9UZgAIggINrVhWhXFwgDiloRiQW9+" + "21wYADFYhHT09O6iU44jGgkilhMryqAmUCzvA9KngmMGTW9xv5ns1kkFhKIxqJ6A" + "k70AWX1xDxyNvfQEgmaUykMIuZkJDABm5ubWF9fx/" + "DwYQQCQZ3kKDUTeMFQ0Oj60tdjKDV27CaTWF5egaZpCAQDAGMIBgIoKopx/Fa/" + "qHOj9/Lv2qoTC4ZeU95QYYdB1xbHtFJTiN6SrJO7Tu8VKoFFrmdGJG11dmOE1/" + "qW8iNd4QAO98UcWV3Wg1vVC8vLyxgdHTX/" + "fvToUbz44ot7XrcW7grS5SYw8XjcHEtjhc/" + "nq+" + "qpG48DAwMMW1v6UaYoBHNzpGXSZYxhc3MT09PTFcTP0SzppuUC5NUdSxdZOYxR5A" + "KBqmkoFvVb5+RuEqNjo+jt7QGjzLxFJkSAPxBAX38f+vr7+" + "I7rTQWyBEmSsLm5iUSC4N//7TLMOjAw/N+/" + "tIM335xDX18fLl28AGK0+JqfvyxWFED021jz+" + "Wpfmv6f5ZVV7OxsY2TkqKmdmikmRiHn85AkCTu7u5AWl0yzlkjUqCqIROEP+" + "EAgQLPIDapSxOLSIpSighMnxg0DHT02K9dIS1q4QcCmpkksDmSlzyFJEhLzC4hEo" + "zh7rrKSgnfYAXpETA0fCsaY3tjRE0BfX6/" + "5WdViEYtLy8grCmbn51FUivD5fEYCKYpIOIJgMAihxmRl6/" + "FglolZpQFS0olLNFwWTaN0R6Fqmp58hcVaU6hMuAElLwnrRYzLxBrVIIgi/" + "D4Bh3qi6Inu3Z8X0L0XvJKxO4Tt7W1cvnzZnEVWDp/" + "PB0mSqj534QLDj39cigJu3CB4+OHmSbfaPLJqcEq6eUXF8q6MjFzAYV8UMGQE/" + "QTV9TgKBtG43SNEwM7OLubm5nDo0DAuXNKTZKqqZ8O5x4LNu5V3MBGCQNCPUKgXP" + "T29AAGefNJv+" + "CwAAMORwxL6e29DFMJQiyp2dncQiUT1z1kmTdi01jKmtUaTlFLs7u5ieXkZ/" + "f0DuHDhohlJ6u9qxIVEMD0CBgYGzJgtl8tBkmWk02msra2iqKhGVYGerJNlCbu7S" + "Rw9qhM5IcRye2zsh8EMliAcggDzVl9/" + "M3udrKqqeqldTsbx8XFEIpGKOlq+vij6jERlSSdmRrJOX1onZsoAIogIBAKIh+" + "LmBVHTNMiSDEnW61tzuRwEUSw1dkSjCIXDpvyhfyb+" + "ufg3Vaon5oQrCFweJiBCpU6s7yuFIJZKypj9P+" + "DHJCHM0uFXGVVTjaInEsTEcC98YuOKIKdwy+t3ZGQEi4uL5t+" + "XlpYwMjKy53VroeNJlxCCs2fPVsnsllDP3vH++yl+/" + "OPSgfDjHwt473urR8bVkM1mkcvlMDs7WzGPrBoakW5R1bCWlJDM5pEv6l6zOnjNp" + "RGlEIBQPbueSiaxvb2FWCxmElcpSUbAJyDoL7erfpxkeMcXCMXysoCnn7afHJ/" + "6FMX9998HpViEJMuQshJ2dnYh53Lw+3xGtBlBNBZFMBgyu6HKwT+DbGjNgUAQZ8+" + "cRSDgByw1rkaAaWi1lREpAITCYYTDEQz094Eri4qiYGNjA/" + "PzcxB9PghEwNr6GqRsFmGjxMu8UJRJCyIhoITr5FUic8awsbGJjfU1DB8+" + "guPHj8Paymx22DHoxjswIj8LB/" + "ESNsEQYwj00fIa1bC6soJMJo2BgT5dnjCej8b0SJd/" + "p4wyyDkZsiRjdW0N+" + "ZxevhUOhxCJxhCLGCWIfJBcedKNwSInVNGJiR62Ukoh1CE1PeI2OuYqtGb9H78oI" + "N4bRjFEXSVcN71vr127hqmpKczNzWFkZATf+c538Hd/" + "93eurV+OjiddAGaJUy3Us3d873sp/tt/K/" + "396acFfOELPqhq9ciYwzqPLBqN4uLFi45MmmuRrkYpNlMyttJ6MkkggCjq9ZZWmC" + "cNAyRZMkue+vsHEI1GDT2RGaYp9c1+uHcuLfWnAiD45jcFaJpgZsFHxxg+" + "9CE98vX5/" + "RXlPKqqIifLkKQslpZX9P57QTBIWNeJw+GwXiOsqkgkjIaMY2NmjbJ+" + "K2xogShvbbXfEANl0bRBkfl8HomFBASBmL+" + "HIBAUCgW9ckLSLxS1StjKL8t8RBAhDNlsFnNz8/" + "p47gsXKiMsUtKBSw0SFiI2LiT8c5iJOTCkUkksLS1hYHAQ589fKEX7VPeYYLBIFc" + "ZvHw6FEQlHMEgG9IQrY8gbkf/m1pbuCvfGLcNXN2xr7LAaANnBIBild/" + "rvqssLXCcm0F3cCNOJ1uoZUfZFAAToi4cwFI9ia2sTtE1TI9zw0/X5fPjLv/xL/" + "OIv/iI0TcNv/" + "uZv4sKFC3tet+" + "b7tW3lA4R6Gu173sMQjTJIkv7jrawQvPJKGMePb1fdvlgsYm5uDltbW5iYmMCFCx" + "fw2muvOXbGL3clY4xh25i2y43EOf3pDml6TYAAARD0EzdfKGBx0Z4k29zaxNLSIl" + "KpJCLGCcZLsIx8ipkR59FyRb6eMdy8mcS/" + "Pj0MHu8RAfjN31QhipVJJk53fp8fvngcXZYyOOtt8erqKnK5HFS1CEoZ+" + "nr7MDp61OYJbOxZ6SJgRpDWONIgNIN5uDpCNYqVlWUkUykcGzuGrniXSQUaZfD5A" + "+juCaC7p8fUMVWtCEmSIEuy7tuby+" + "mJPU7CRgkbpRoWF5egKHmcODGBcCRcUUtsjgzikZ/le63W6sw/" + "llIoYD6RAAHBmTNn4Q/" + "4zecEgYAazSz6gWM8ZXbYGbUilEHT9ASpPxBAXzCEnp4e5PI5nD17FvlcDvlcDql" + "UCqura3r9ecCv68TG5wwGAqAgpn8FB2W6vMDlCQZqkWdqG7WHAj6M9McQNj5PO8x" + "ustmsq166jz32WFtG81TDO4J068kLoRDw2GMU3/1u6Ur85JNR/Jf/" + "Yo9Ged3v8vIyxsbGbPPIWp3ym5LyWE9KlrZdO4gg6LWSRhG6VtSwvLKC3d1djI2O" + "orenR7+FpRr6evvQ290DOZ/" + "Tk2Ebm5BkPVqPhCNmVBeLRg3vQoDPBAOAdCqNhcQC/uf/PAOq6REwERiOH2f4+Z/" + "XbEkmQD+" + "5rKVCHHwLURTRFe9CPN6F3d1dPZIbGEQ83o1cPoeNjU3I8gIIAcLhCKJGS240Gq3" + "dCUisiSw9ut3e2sHK6goODQ3h4oULYNBlAq1GhM+" + "J3Cf60R3vRjzeDd4dZy1hW19fRzqdhqYWEY3G0NvbC01TTdcta9MCr20FiGkLWVk" + "wUCq3YpRhbW0N29tbGB0bQ3d3N/" + "eEN353UiFLwPKcfifkM7Vp0xKTMVCqYW11BaFAAExVEQj44ffrFxwYjS9FRYEky5" + "BlGRtbm1AVBYIomoNEo9EoQsEQqKUr06wFtkS31sYMABAFgqF4BP1xu71jO7x0U6" + "lU20aktxt3Bek2usVo1DX28Y/bSffv/z6ET33KOD0Zw+rqKubm5sy63/" + "Jby2a60kRRREbOY7qiIoEnyvRDmlIKnyhC06g+w2x9A+" + "vrazh0aFi3RYTeJGFGXQIgCD7EYzHEjQhA76zSZYicLGNjcxPzCwsAdCKORPUBkd" + "tb2yCEQJLP4KWXugBLNPbbn1Zg6yblUZgle20rD+NaLIBcTsb8wgL8/" + "gBOnz6jl0QBiHfHgUP6WgQMWVmClJWxtbmFRCIBZrR86pUJMUTDYbOOldOmLOmac" + "DgcwrmzZ+Hz+81yJX3OW4korJ6+" + "dlmitP8MMEvYGIDd7S0MDvTjyOEjyBcKyGaz2NragiTLlhI2vS01bNbZ2kJaU7OF" + "IflQ6Be3xGICfb199sShscPUZOxS5E9MkjOIm9q7qrklZjKZxNLiIgYGBzE2NmSQ" + "f8mnklEKDbp1ZCwWQ093HGZTjEYh84kdK3pjB4+" + "KRUL0UT6GRGTLpRmIhf040ttVtdmhHfPROtXWEbhLSLcRGpHyo49SjIwwLC/" + "r20kSwf/+3wM4d24LU1NT6OnpMeeRVYPTSLdQVLGalJHYymCiu0JBtCd/" + "Same883X30BvXw8uXrgACII+" + "i4sw8wSwkh9PVPE1RYGgK9aFeFcXhoYOgUEn4kwmg5WVZchyzohCBPzF13xGobz+" + "+osXKN73Pmq/" + "rYd+" + "C10tCjPeEqqmIZFYhCzLGDs2hq5YDDCy3KXdIwDRJYxoNIZotJSAZFSfcitJWexs" + "byORzYJShnBYNzKXJAlFVcX48XFEohEz4qawEil/" + "H1Nc1Ss4+K0xf97yOdRiEYuLCShKEeMnJhAy5I+Iz4dINFrKSzFq+Mhm65awBQJ+" + "Y5IFUCyqSCwmoKkazpw6jWAoaHwXJZvHaiVsYKXEHoEul5SqUfS1FUXBgnExPXvm" + "DPyBgOUOpHTXwDvsuPcEDFLm72pO7BD0zs31tVVDLgHWNzYh52SAGRM7DGmiKxbD" + "yEA3emO1y8C8qRF23BWku1cx3ecDfvu3NXzxi6Wv49vfHsbHP/" + "4m7rnnnpqlaByNIl1Vo1hPStjN5iArmjENAeYJZZ75RnTEmF4DOjs7B+X/Z+/" + "N46Mq7/" + "3x9zmzb1nJOslkT9gUJVC1tWpViliLitcfaqu3LtduaqyCUHpFbFHqwtVb9QqutF" + "bFXr9aqwJqVaj0SliUyiKEJCSTfc/" + "s6znP749znmfObNkYFCHv14vWZCZnnjkz53M+z/vz/rw/" + "wQBmzpwJNfUFEEWoeV7x5ARVdtCtP8cCEdsKikBvXy/" + "6enuQn58vuzRxeHvNl2hpjeZYL1lwGE3NIpMmUavDqCwONMBJwbm7pxe9vb0oKCx" + "AaWlJFDer3DHTziseSvcx+TTwHMwyHULrPYIgVfd7e/" + "skXhUcmpoaYdAbWMOEyWSSzlPcuVBOXVC+" + "UGQ9vT096OntQUGhFdnyFONYEBbseOj0Buj0BkyBzJcTwOf3w+" + "3xwOV0oqe7C8FgCFqdDkQuchUWWpGbm8MyWsYLi1AYDZHoz5QouGI58jKqhxD09P" + "ait6cXtuIiZGVmKm7A8aD+wiI4pkqg/" + "sSizBGDSLssqVDrQ2ZGJjIyMjCFvlFEGjvCfg98/" + "mEc6W2FXq+P8srV6XTsupycGhGNkyLojhVKH9tY3HqrgEceUbGC2vCwHv/" + "4xyx861ujZ7DJMl1RJOh3etHn9LKKsOTyJUYVV2glG5A8aO2tdgRDIdhsxWjv6IB" + "arZY0kzwHFcdHtpbRu1m2recI3X5GX3p0+" + "5mRkYHp02fI3CTgsDvx9LvlYPpODrjoojAuv7wEfp8fbrcnbmstBWKpjVWtUsPpc" + "KKtvQ0Z6Rk47bQZ4Dgl7ymtRbrgFb9hNx3F++A4cKLs96vgm+" + "1tdmSkp2PWrFngeV4ORKI0WNHjgcMhjXYPhULQ6/" + "UyP2mE2WSGWpvcuMjlcsFutyMtLQ3Tp88Er+" + "KjFAcgUgZNvcpivSki7wPQ6fUw6A0g8mglt9uNlqNHodXpkZWdjaHhIfT09ECjUT" + "NawmQ0Qq/" + "Xx3V6yf5DgOw3wZJ0GR6PB60trTBbzDjttBkAxyP2G0h3KAB1YYuf6AFIwVgFFSu" + "4ejxeHG05CrPZzPTNyg47o16HamsOLEYdqEGS3++Hy+WC0+" + "lEZ2cnAoGA3OVogdvtRjAYHPH6Gy8mg+43ALSAlWibEwwG0dPThIULs/" + "DqqxFD7EceUeHf/" + "13AaJadKpUqSpJGCMGwXCQLC2JUVsPzKghMexsprghCGO0dHRgeHoZNdtMSRRGiI" + "ODAgf2y5MciZZwGQ1QTgXQkAg488xBgdWVO6v1vbW2FWqNBTU0NtFpdhIoAsP6eN" + "jhQC1rN0RE/" + "fnndEHgug0mNCMkFII1Ul7b+" + "HgwODsBub4XP74dapcKUKVNgSUuDIBKoVJSXjMptkTgHi+" + "ZaiayhDQaCaLW3ghCC6qpK6PUGKdsnhM0j0xsMEg1AnQEJgd8fgN8njRvv7ulBKB" + "iCTqdl236j2QQQoL29DaFQCOXl5YxKoCtlsYlILdbMnUz+tXI0Dls/" + "pADNmif8flRUVrJjc3IlMBgOwevxSBK2gcE4CRv9jAUo7sby8QVBQHt7OzxuD8rL" + "y2AwGONuXJH3IfPA8l9TViiZCkUkItrbO+BwOhl1E31AgiyzHlMs0ph2pS+" + "IWq1GZmYmsrOzpSYUnmdeuf39/" + "ejs7GR2pjQbtlgsIxdOR8Bk0P2aMZa7J1UwKINuOBxGa2sruru7UV5ejkcfzcWmT" + "YQZ3zgcHO69V41160YukqnVajaq2ukNoGfYDX8wknfQYgoPQK2migSAEA5hRZEsP" + "z9SJBMEEeCAGTNmQBCkqrrH60F3dxd8Xi84npeq/" + "mYT0sxm6PQGiHw0pxkOBdHe3g6fzw+brRhpcpFIyWn6PvkMO9vLoPzDm+f+" + "C7lTZ0W2sQrwPAez2QiDQYf2Ni8ADtVV1dBoNBIHOzSI9vZ2iKIAvUEv8bUy/" + "6dWs1tBlHYVHMeyKCB6eCWr7kNasBg5gsLYJ1Io43keBr0eeoMeGVmRNudAMAivx" + "wuX243WNjtCgQD0BiMy0tOlLi+Olwp9iu8Sz0UKc/R1IuBYZkjPNyEE/" + "f3SRAuJXillT5CKYlJ41Gg0SM/" + "IkCVs0vsIh2WrSI8bnZ2S1jlWwhYIBNDZ0Ym8vFyUlJSw16RyQMaesKKhnOXGcd0" + "xnyk4OJzDsLe2ISdnCmZOny6Pko9Ar1GjKNsCgy561yCKVDURyYRFUYQgSKobOpZ" + "n6tSp0Gg0EEWRjfJpa2tjnaImk4kFYrPZPCoH7HQ6pfP7DcRJEXTHAtogodfro+" + "aRFRUV4ZxzzmF321//WsDy5ZHTsmGDCj/6kYDvfjdxNgFIma7b60dz9xA8/" + "sRNGGybyqkgitIXc3h4GG1tbcjKzIwMakxQJONVPMxpFpjTIrpEqdosNSR0dkUCs" + "VG+SH1+H5wOJ6xWK8rKykAI4mVUHg/SH38Ar4vDeAY/xcv4EYo1Xfj/" + "HkziriQHme6eHvR09yI/Px/FNhvbYppMRuSAyMO/" + "OGkuWWwg1suB2GSC2WSESq2RAof8EkODQ2jvbI9qC+ZpoYmug4vJRhFNwcp6/" + "kihjJPMsoOBIJxOB6ZkZ6OgoBCCIMDjccPt8aCvrx+" + "BgB9ajRYmkwEmk7T9T9TmHP06UmD2eSWTfKPBgBkzpkuGOpC39bysbU3wFaLvQ6V" + "SIT1NcmGj2agghOH1+jA8NIzGzg5pioVWB7fbA5F0JxwpRM9FtOVi/" + "Dgf6bccQqEQ7HY7QuEQKqurmKObfJrB8xymWIzISU88RodeN0rOlmbAVNMO9n6kR" + "ISOTiosLGTHpKblPT09aGpqgiAIUablsTPVvsmZLjdKO92ID54ooGM/" + "RsLBgweRn5/" + "PvG1zcnJQVlYWd0cNBoFvfUuDQ4ciW56yMoJdu4JxVpAAEAwLaGjpQFNbJ8rLypj" + "HgSivK9peDwABPv/" + "8c2h1Wui0OhQXF0WKZIRArdBnscAS812nUqLYjy4cDqOnpwe9PT3MaIdX8TAaTYy" + "DNRgiQUTz4INQv/" + "suOBCIHI9GVMC9fBWmXVaGWLUBx3FwOB2w29uQZklDobUwYXFEkjTR7CtmG0sIfD" + "4/PF6PtL12eyAIAgwGPTRaLVxOJ/" + "QGgzTZV6uBiqPxO8JLxssmFFMQEoCDpEpoaWmBIAqw2UqiqISYQ0EQQnC5paYJj8" + "cDv98HjUYDk8kIk9EEg9EEvUEHFa+CSKTGhI72DrjdbpSUlkRNAeGjgl30+" + "VSuNhnXqtTz2mw2pKengRDA6/" + "XC7XZLN90oCZsJFrMJelnCluhcALKWWJRsLju7ulBoLUxYPDTrtSjMskA3Rs9bJQ" + "YHB9HQ0ACr1YqioiJGRyiz4liLU3rzpv/o+3S5XHC5XGzk1v/+7//" + "i6NGj+" + "MlPfoIrr7wyZTzx0qVL8fbbb0Or1aKiogIvvvjisQT2pIs6ZYLuF198AafTiczMT" + "FRWVo6oG9y+ncPFF0fLw/" + "793wWsXx+hGQRRRO+" + "wBwMuH9weDzo7OlFVVRV3LFoPIhwQ8AfQ0tqKocFBzDztNNbxRAiBKkb+" + "FXUMUIoiwsHFPs/tdqPN3gaDQY+ioiJoNFppaywI8Ho88HqlIEc7r/L27UfxH/" + "4bhOPYVjK8eDHCt98e99qBQEDSzxKCkhIb9Hp9gsARH0ziQCSDbuY8RqRsqNVuh9" + "vthsloRCgUhiCEoNPJrasyz0lVCfG0AokLFuzlRMnuc2CgH1arFRmZmdIxiPKGIN" + "0UqNojUUZIx8d4PB74PB54/T6oeBVUKhV8Xi+m5OagsKCQKQKU/PRI4OmYD/" + "peFI+53W60trYiPT0dRYVWgI9/" + "j1QTLcqZttfjlTXPniQubBrwHAefz4+jLUeh0+" + "pgsxVDo1bLFI90RnieQ36GGVmW8XvdhkIhHDlyBIFAAFOnTo3rOoyFMgDT/" + "456jzGB2O/3429/+xuef/55mM1m9PX14Tvf+Q6eeuqpca81Fu+//" + "z4uvPBCqNVqLFu2DADw0EMPTfRwJ3fQBZDUoMblcqGhoQE+n49ttceCH/94CK+/" + "ns9+/g62477b+/" + "Ddhxeg3+" + "lFv8snT2ogCPgDaG1tQU3NVMURIkWycDiMjo52OJxOFBcVoa2tDaeddhqIKMqUAy" + "3DJAfNICPqMin4BAMBtNrtCIVCUqZlMCad/" + "MpWZrdDf9NNUMlGKSAE3sJC2B9cA2NWJswmE3R6PSAStHd2wOFwsFlqSlDFBK3Ej" + "BR0eZk6YS3/" + "JGIoXliQjyk5OQCkoKxUJdCMMxwOM1WCyRQtD4vMW4u0qzodTrS1tSE9PQOFhYVy" + "O2s8mOqDxCoWEqxfDox+vx9Hm4+" + "C4yXOkkqoeCZ1kzJio9GQ0PhnpKAshAW0t7fB5/ehtESyohwNyvIkp/" + "iN3+eH2+NmNE8oHAYRpUJfXn4epkyZAl2MgX26UYfCLPOYJ/" + "8qQW1NS0tLkZ+fP+EMdLSMGAB+8IMf4G9/" + "+xtycnIQCARS3nzx5ptv4vXXX8fLL7880UMkffMnLafr8/" + "nQ2NgIn8+H6upquFyuuLvoSLjzzk78619TcOSIGtfjT3gW/4H+9Ra8V/" + "0XWOdFMloOHNRqFURBkL1GJUqBECAsiujp7kFvbw/yCwpQbLOBEAJD/" + "wC++" + "OIL2fXKzHSwkjG27ItAC0NysBJBoj7GsBBGV2cnhh0OFFuLkJmVwYpS0uDZeGqCA" + "wC/H7p77wXn90OkF4VGC/F3v0NGXi68Hi/" + "ah9vgdnsRCgZhNluQn5cnXZyKrDIucBDFayi20pJyg1b/" + "pee4XS602u2wmC1soq8cNpnSw2gwSJaJORFqwu/" + "3w+v1wuFworOziwVims2ZTSaIIkGbXZoUUlVdBb1OzzK4qE+fKCwc6eMxXw/" + "6Hjk52IYFEV1dnRgeHkZpSQnMit5/" + "nuPYPD633Ebs9XoBjkhrk4thJqMJhOPjM2pCMDA4iM6OTuTn56O0tEQqdxKa7UXW" + "GPXdINHvjCj+" + "V2fQS0M2p0ic6dGjR5GWkQaT2Qyv14uWlhYEA0FoNGqkp1lQXpiDbKNJMsQfB4LB" + "IA4dOgQAqK2tTdpENFaMxBP7/X7813/" + "9F9ra2ligTXXABYAXXngBixcvTvlxgZMo06U6wFAohObmZgwODqKyslLyX+" + "U4dHd3w+v1jnm0x6FDh9DbW4CdC57EndxD6DBmwKfWoJ/LhfjCM8isyWPPFYmIA/" + "v34/" + "RZp0uWeURkfgNZWVnIzy+" + "A0gmNit3poD2PxwOvzytpIGVFgsVkgt5oku3wiMK0OpIh5ubmID8vD5EGhBiQCL1" + "By9uqlSuh+uijqKeF6+oQvvpq8ACcLjfsdmnCQl5eHgJ+" + "P3xeHzxetyQN46UefYMc5JIVmpRBmQbiUCiI1lY7QuEgSktpQlRTAAAgAElEQVRK" + "pbZSJKZLYt8H3YlTpysWiAMBaevv9mBwaBDhYAgGkxEZGRmy/" + "MrMjGTomggUY9NHek0+Mu2CtdhOmYK8/" + "HwWmJRTiBNBFETZhlFSn3jcXgCEaYiNsmTK3maHTqtDSYltRDtF6X1INzLFUpMWy" + "qhhj9vtRllZGQxGA/" + "sjGsxNGh4GlURDOZ1OeL1eqNVqpKWlwWKxyHP1jHHSLkIkzrmlpQUVFRWjziA8Vu" + "zduxd1dXVYuHAhli9fPqbBsbG4+OKL0d3dHff7Bx54AJdffjn77927d+" + "ONN944Fr745M906Tyyzs5OlJaWRk39BUa2d0wEtVqNmho/DNfmw/jnIIo9g/" + "CqtchWedB5Vx24V9eDpEnbbTUv62NFysW1QK/" + "Xo0aWyRDZok8tC++JTClQfwEKIhI2vaFbnhkGACajiRVo+" + "vp6kZ6WhukzpkGtUoEktOiTIRez6MQC9TPPQP3hR2AhmhCEL7oIwtX/" + "hlAwCHtbG8LhsDxhQbo49Xq9ZJYC6SIOh0OsiNM+NISAPwBexUuKBJl/" + "NRgMUdIkUSTo7u6SudWIoTj7eEj0FlkJXg6SrLOOktryeox6PUKBADodw8jJmYKC" + "/EIEQ7I8zOVGd3c3QiGp95+2rRplflM+RXEFP8j8uUggaYVbJWMepX+" + "ESAhzxCVEbrZV8KL0vahUPNLMliifZeqH63a70dLaAr/" + "PB41WC61ajb6+" + "XhiNJhgMRqg18ZcnzW7FJEFWurdKN4LBwSHY29qQm5cLm604RuIB6DQqWLMtMOri" + "g1coFGLNDkePHoXH4wHP80xJoNPp0NbWBr1ejzlz5kwoAI4VgUAADz/" + "8MLZu3Yrnn38ep59++oSP9fe//" + "33Exzds2IB33nkHH374YcoKdLE4aTLd3bt3w2w2w2azJayqDw8Po6OjY8w+" + "mS0tLdBoNLBarfi/s+7B9/71h6jHhblz4Xzjr/DpDPAGw/i/" + "HfXQ6AwIhwXYSmxRRTJedvWKi48s25BOszQdNjpnEQURQ8ND6OzohCCEoVLxUKkk" + "LwDWnqs3gFfRABDtPEuPpX7zTajXro1++bIy+J9+" + "Gh3DwxgeHkJxUTEyMzPjijqxx4pFOBSxSfR6PfD7A1CpVTAaTeA4DkNDQ8ieko2C" + "/AJFNxmJywWiqAn5TYw0uTsYCEpUAghsthKp9ZQxIJFAKhKCUDAIt1u6oXm8HoSC" + "IWnKhHwejUYTdDotOHYOpSyuf6AfxUU2pGdE+Gy6zhHyZEluRXlg+" + "Y6ifLbL6UKrvRWZmZkoKiyEKCs7vF4P47JFUYBBr5c9iQ0wmc1QqUbOk3hwCIZCa" + "GltARGlwqdOp4uWz4BDbnpyGVgyhMNhpq8dGBiAVquFWq1msi6aGaey5ffzzz9HX" + "V0dFi1ahKVLlx7X4L5lyxbcdddd2LZtm9wef0w4+" + "QtplF5IBrfbjaamJsyaNWtMx2tvl0xMSkpKEA4I+HLGtZjT/reo54hz58L7//" + "4fmoeG0NraijPOOBNGSxo8/iA8/" + "iB8wRDCYZLYL5qCKK4Hxc8cx0kGLB2SHMlWXIz0tHSITJHgZRpTv88Hnpc6mswmM" + "0wmKduklAa/eTM0DzwI5cfJp6Wh69FHYA+LyMmZgry8/" + "LguNxY4KJeY5C3QMqCy3OF2u9HSIl34Wp0G4WAYKrWKaXRNZlNcEYe+" + "f2VQjg7EsoeCSNDV3YmhwUEUFdtGdJuiXWCxgZjIDRMet6Ts8Hq8CAQD0Op0UKvV" + "cLlcyMrMQlFRkdQaTIO5Qqo30vlIJOnjCBAKh9DWJnXClZaWQKfTj0BxSBSUzys1" + "dXi9kiexwWBgY+tNRqmgSM9iX18furq6pRFFWZlxhzTpNCjMNkM/" + "geDl8Xjw5ZdfIi0tDRUVFVCpVKzZwel0MmmXKIqs2YEG4vEGy0AggN///" + "vfYvn071q9fz5qGjicqKysRCASQLbdxn3322Vi3bt1ED3fyB91wODyi01cgEMC+" + "ffswZ86cMR2vu7sbHo8HFRUV0i98Pmh++EPw27dHPc9dVob+l15CcyCAs88+mxH+" + "VOIiiCJ8wTB8gZD8/" + "2EE5XXySDTNVZY69fagr7cP+QX5yM3JiUjGkFglINAijtsDj8ctt5aqUbBnN/" + "KfeRacKMjbeBFEq8Ohu+8GmTkTRUVFCU1iWCE/" + "thAnB0Aic6p0agFbh2xM43A6YSu2MUNxDkAwFIJbDnIejwcBfwBqjZoFYovZBK1O" + "C5L8+4phBVduLSwEJxelYs/HaNk5ey8y1SMSaThnS0sLAgE/zGYz/" + "IGANClZq4HFZIJRXicdLRSbVTN+N9GrKrrViqxWZGVnSTlngsyc/" + "nVCvlsuKHq8XnbjDYfD0MjDV/UGA4ptJTDodVE3NBXPIS/" + "DjOwJyMBEUURrayt6e3sxderUUS0VRVFq3KGB2Ol0IhwOw2g0siBMKYpE2LNnD+" + "68805cffXVWLJkScodyr4iTAZdQRCwa9cunH322WM6Xn9/" + "PwYGBlBTUxP5pdMJzWWXgd+5M+" + "q5otWKfatXw1FejrS0NKSnpyMtLQ16vT7h9i0siPAGQvAHw1IgDoYQEkSAEKlg09" + "6OjMxMWAut8oyzeESrBAhA4i927tVXoZP1ixyRxqwIajUO33ordBdehKysLOj0Oj" + "Y6XYSouBGMDKqqYGkdCAYG+tHR0YXcvFzk5eZKSopRKIJQMASPxy0HYi+" + "CgSBUGpVUZDJGMuJAMIg2ux0AB5vNxrjVuPMB+" + "SaWINOMRkTSB0LdunpQXCxRLJR7J4CCmnDD45XWqNFqokx/" + "dDode3XljQmQlDQtLRLPb7MVg+" + "fVI1ySERkbMHJWzUG68XV0dmJwYFAK5KIIt8eDUDAInU4Hk9GE3OwMVBbnwWIaH5" + "0ASO22hw4dwpQpU1BaWjohnwTI6/" + "R6vSwbdjqdCAaD0Ov1SEtLQ2NjI4qKivDaa69hx44dWL9+/XEdmfMVYDLoAsD//" + "d//4dvf/vaYjpeIAx4eHkbT55/" + "jtBUrYPn886jnE70e3scew8Cll8LpdMLhcMDv90On0yFNbu9MT09PencfHHZg/" + "8FDgEqDvEIrCFQIJZ+zDSBaOwoosiZBgPqJP0D1v6+" + "zSj0BB5HnMbDkboTPOw9uWeyvDCBms1RN12m1oMWkWC6SU2RkFB6PB/" + "ZWOwxGg9SYoVIztQF9VrIvEo/" + "4KQmhYEjSl3qkzjWXyw2RiMjIzER2VnZUtqmEIuTKPytXHMkilZph6tZlsVhgtVq" + "j9LzMdlLBu9MMPxiUeWyatcvnkRY9TWZpHllXZyccDifKSktgtpgjxxjjZxp5b/" + "L/" + "yzcTDpLSpKW1BZmZmSgsKIymhwiBKAgwq0UgHIDT6YTf75emDcvfR4vFwmioWAiC" + "gObmZgwPD2PatGmjDlydCKgM0OVyYc2aNdi6dStcLhdmzJiB73znO1i1alXKX/" + "MrxMmvXkh1pVE5V83r9aKhoQGCIKB6zhxo/v53hG+4Aep33428vt8P089/" + "Dt1112HKo48C5eUSbxiQvvBOpxPt7e0IBAIwGAxRQdhut8Pn8+" + "GMmdOiRpAEw0KElpAzYkFU+LDG3DAJB5D+fmjv/y34zz8Dx4S6BFCrELr/fpi/" + "dwEAjnVnAZIxjsvlhtvtZq5cUUUmkwl6nU5KWfmIKkEy/" + "W6H3+9HSUkJjCYj+6bF2QwyTjQy40wmO+K+" + "nhqtBpnaTIBIdEJBYQGysrPh80qFuv6+3kiQk4uJFrNZokkU3wOF3kFaA/" + "2ZcBBEAe1tbfD6fNFSKsiHIMq1xfo8cNBqtdDptcjOzmRBlGbtbo8HXd1d8Hq80O" + "o0yMrMgj8QhEoTiOKxJTkfrbJJfXHJpGeR98BBCIdhb2+D3+" + "dDVUUlW7syWGdbjMjLjNfc0u+jy+Vis+" + "s0Gk2UPCwQCKChoQGFhYWYM2fO8aviy8d94okn8OWXX+Kvf/" + "0rpk2bhu7ubjQ1NR2X1zwRcNJkuoIgjDoyZzyZrt/" + "vx759+2CxSDO+qqurkZWVxdoVIQjQ/" + "frX0Dz9dNzfikVFCD7+OMQFC+IeI3JxhGbSLpdLcp2SKQn6LxmP5Q+G4Q+Fo+" + "gJeqGq/vEJNA8/BG5oCBwhEOkFZzAi+MADEL81F4AsLYrorhQTddkiWZHJ7XHD5/" + "EgGApBrzewOVpenw+DTAKWBXAjeyBQRFX+" + "icK8W66sE0iBobW1FSqeR3FxPJVAEQwE4ZW3/F6PB/" + "5gAFqtjrW9mkwm9rfM34BEO4FNka0I6c2Jl28EI72L2Ixa+" + "b4kLbLUnFFaWgpwHDxuNxtbL/" + "nMqhktwSR28kcQCcTRQZRK2wYHB9HW1i4b0E+Jy/" + "Z1GhUKsyww68feoEAtGIeHh9HV1YVgMAiTyYSMjIwRdbrHivr6eixZsgTXXXcd6u" + "rqvqncbTKc/PSCKIqj6nA//" + "fRTnHXWWaN+eURRREtLC5qamjB9+" + "nQUFBREtSPSIhkAqF56Cdo77wQnWzsqISxYgOADD4AoeGFCJD+" + "Ao0ePorCwEMXFxeA4Dh5ZmE7/" + "iaIIs9nMMmKz2ZxQikMIQfBoK0IrVyH43gfwqTTwqzWs24zk5iL40EMgVcouOsRx" + "nhG9qhQMRUQyPpqZ+" + "gMB9Pf1obe3TzJUV6nliQHSmHU64juZQU0yYxd23uWOr6HhYZTYbEhLS0di2X8S2" + "VbUtt8NjzuiSDCZTGwenNFklAqI9CKPUUxEjh9NpxCMcGMhBL29fejp6UFRcRGyM" + "zPZOeQiT4lkxNT0x+NGwC91hVEO20R3FvJ55DkOoaAkAwMAm2wIFH0+" + "OOSkG5E7ThkYBW3hLSkpQUFBAZOH0azY4/" + "FIw0blIlhaWtqEvXB9Ph9Wr16Nzz77DM8880x03eTkwWTQBYBdu3Zh1qxZSdsUaU" + "Bsbm5Gbm4uenp6EioSYsHt3w/dT34C/ssv44/" + "J8xAWL0borrswVFiII0eOwGKxoLy8fMR2SaUUh37xAbAvfHp6OsxeL7R/" + "+APU69ZFBX0CwKfSwP3d8+H4r8fhtaTLE4eldGrkPC4SgGn2yYGDP+" + "BHa6sdAGCTtZ8cIWxEDe0Kk3x0I5MlTCaj3OZLZFF/" + "YgwNDqGjvQ3ZOTnIj5GvRXsrjKVIpgjKRITP50dbmx1erxdarRaCKECr0bHOP9Mo" + "0yUAyrWKbDXSmZHOpNcjtdSazSb5JsqPWigDlCPbJapG6TXh9/" + "uhVqtgNpkQCgtwuV0osdkkWkimaqjqQa9RwZqdBr12/" + "JliMBjE4cOHQQhBTU3NiC21NBDTYOx2u8HzPEsOaEAeKRB/+umnWLp0Ka6//" + "nrccccdKR/jcwLh5A+6Y3Ea+/" + "zzz1FTU5Nw5tnw8DAOHz4Ms9mMiooKaLVafPLJJ8jPzx+1CAYA8Puh+" + "d3voP7DH6RxMwkwXFsL/" + "uabob7qKiT0iRwFgiDA5XQiuH07jK+" + "8guwtW6BK8J6JWo3QihUIL1kCyF9qUSTwB8PwBkPs/" + "+NHv8dnclGG4vJEC3CRAlgcMyHKkiaPmzlziaLIZpgxnwmVStKh+" + "v1obW2BWq1BcbEtLoNTQulkRrf4ibJqShGAEAwNSWqQvLw8Np9Mok8C8MkBzuPxI" + "hgMQKvTR0bVyxxxwoxacW46OtrhdrtQVloOk9E4KjXBc5BaxWMuyShaQb7ROR1OH" + "G1pAa/ioVFrEAgEoFarmddEmsWMkrxsTEk3JXilkZGqFl5BEOICMQAWiA0GA/" + "R6PXiex29/+1t88cUXeOaZZ1BdXT2h1/sGYTLoAsD+/" + "fths9miilXKIllNTQ1MJhMEQWDHo0oEKnGhWkPKwcbyUNzevdAuWQLVp58mX6teD" + "/H88yFccAHEs86COGNG8iBMCLi2NvB79oD/" + "5BOotmwBL09+" + "TQRnTQ2OLF0KVW0tW2cy6RrVEPuDEkfsC4YRDAvsdYeGhtHR0S75DeRJrlFx3WSE" + "7gDkwhgRpVxQQSWQRD4T8vBDQRRQWFCAnJwc2fCHNi8gZqs/" + "hgydi6yH2hdqNVrYbMVRWuSENpQxzRIeea6XVq+H2WxmNwx6HKoXzsnJRX5+Xhy/" + "y7H/ihAkHJJn+sq/" + "JUREe3snnE4HSktLYDZb2LkMh0LweL1AKAADH0YoII36USoSTCbTiBSD3+/" + "Hl19+CZ1Oh6qqqpR3eQmCwHxwDx48iGXLlmFwcBBlZWW49tprMX/+fEyfnsQo/" + "+TBZNAFJBObnJwcZGdnMzPzhEUyJKYSqNZQyb0KghDHvfIcB8cLLyB97VqY7Paxr" + "T83FyQ/HyQtTXJaCQSkglh7Ozivd9S/F/" + "PzEbr3XgjXX4+gIESt0efzRUnXqIY4EcKCiP6hYRz4sgGEVyOv0Arwqmh+" + "dwTQTE4qCiVQWRDCzIDS09Oh1emk9uEYnwlq3yhtVRWGPwm+" + "ypQOEQkBEQk6uzoxNDSEElsJ0tIsgKybFUURvGw+PvJ7iIwPigrEHg+" + "CwQBCYQEatQZWawHS0tITNpdE3q9EIxAxQVdcgnPncDjR2tqK7Owpkj1iTJegRsU" + "jP9OMDFPk8wuFQlGNCF6vlwViJf8KSJ2WHR0d7Dt/POHxeHD//" + "ffj4MGDePLJJxEMBvHZZ5/BarVi/vz5x/W1TwCc/" + "EEXSO6pS9HY2AiTyYRAIICOjg6UlpaOWCQbC0RRhMfjYdnw0NAQAoEAjEYjrPn5y" + "N+xA+bnnhsx8z0WiMXFCN92G8I33wyMYBjt9/ujArFSukb/" + "cRyH5uZmOJ1OVFdXs86jUFiQKQlJtuYLhBGOdf1PUNGPRcDnR0vrUWg1OhQVF0ET" + "w2lLI4io94AHXnkEkZKWMBgMjDOkgUyUs2KHw4E2uz0uYFGTeBpsmRE6kTbyykw0" + "qfk4IejuiXQJqnheLth55UYEySOBFsKoXSVGOCuRjFie12e3IxAMoqysLCGVlWnS" + "oyDLPCbrRaVhDd3208+8qKgIGRkZx0WRAEjne/v27Vi2bBluueUW/" + "PznPz+ZudtkODWC7kj+" + "C4QQ7Nu3D4MyN1lSUgLlRNPxBttYeDweNDQ0QKVSoby8HOFwmAVij8cDS2srbB9/" + "jKyPP4amvX3CrwMARKeDcMklEH70Iwjz5wMTkNpQ6Rq9KPv6+uD3S+" + "2veXl5o0rXkmmIE4Fyny6XCzabjfnQxjYviBAVgUpCMp8JsxzcTEYTVCoerXY7CI" + "DSkpKoYJ6MQ40FD+" + "rQJTd1KBo2PB4PWlpakGZJQ1GRNd6YXFZ2eGlB0eOGEBZk1UR0IFaCvtOBgSF0dH" + "QwCRvPcVBmxBq15AY2HhkYhbKFt7KyEhzHJVQkKKmJYwnEbrcb9913HxoaGvDMM8" + "9E2uhPPZzaQXdoaAgNDQ3gOA5ZWVkoLy9nrvTHGmwpTeFyuVBVVZV0phLdAjodDo" + "T27oXx00+ReegQ0pqaoG1vBzdCN13YZIK3ogKa73wH/" + "IUXQjjvvAkV4hJheHgYDQ0NyMjIQFlZWVQzR6x0bTQXqUBICsBUQ+wNhNA/" + "MICuzk7k5EZagxODyJ1iiGmiiO2Ik8bVu92SNeLAwAD8fr9kQZmezgKcQa8DwMuB" + "NHkGPnKhTB537vGirLwUBr1h1AuCdrER0IKih9ETYUGAXs6IzSZpBFFbWztUahVK" + "bLY4moIDhylpBuRljMzRJsNYWnjD4XAUNaG0cKSf+" + "VgCMSEEn3zyCZYvX45bb70VP/" + "vZz45LFv0NwqkRdEOhUNRoD5p9EkJQXV0t+dR2d0sdSIpt6kQgiiLa2tqYf+" + "9ExpOwLf/" + "AAPzNzUBfH0yEwKTXQ5+" + "WhiFCMKDToay2Fpkp5t8CgQCOHDmCYDDICoiJEEufxErX0tLSJB475lx6PB4cOnQ" + "IvFqLwuISCIRjWXFsgEvW+kqh3IbLw+PhcrnQ0tqKjIwMFBYUQhQFuQFB8nHw+" + "vzQajQKVzMj9Dq9wtOAGt0keEFCMDgoZZ/" + "5+XnIzc2Na1KgXWqsqQEjUBOK49JA3NfbB7fHDa1GI+tzzcw5TK1Ww6BVw5oVP/" + "J8LDjWFt5YjS6VhiULxC6XCytXrkRzczOeffZZqSlkEqdW0A0Gg2hqaoLD4UBVVR" + "UrkgWDQbS1tbE+" + "dJod0SLYWKq4hBD09fWhubkZeXl5Sf17JwJaqKPbQbVazfxKx5JpjgWiKMJut6O7" + "uxsVFRVsssZ4QGVCSr6Q53kWgB0OB9xud0JHKkII44f9gRD8oTB8QWFENljJF4dD" + "IdjtbQiFgigtK4NBLghKqgmZ65WPpWzLVfpMWMwmGI1m1rHGya9BINEELS0tUKvV" + "KC0pgVqtHvEiICKBWsVJZvI0q46R0cmLAs9zsuWlwuuB51ggpjy2RccjPystqktx" + "rN1aQ0NDOHz4cFTjTSqQSKP79NNPw+12Y//+/" + "bj++uuxcuXKpAXa8eKmm27CO++8g9zcXOzfvx8AsHjxYhw+" + "fBiAtEPLyMjA3r174/" + "62tLSUXSdqtRq7d+" + "9OyZrGiVMj6Pr9frS0tKCzsxNlZWXIz89PWiSjZhtKSVg4HIbJZGJf9tgA53Q6ce" + "TIERgMBlRUVKR8NtPQ0BCOHDnCtvoajWbETJOuc6w8XH9/" + "PxobG1N+swDkqb6trejo6IBer4coiqynn/" + "5LZq4iiiSqtZlqiGkwpJpb2vFltVqRlZXJqAqaCRPEd9UpwUGig6hjmOTGJftMGI" + "0IykY75aUlsFjS2IygkamJBI/" + "HNC+IRJSGfHZ0wOl0obS0NGpiCIVZr4U12wKNio/" + "qUHS5XBAEQdLmKm6+ykAcDodx5MgR+Hw+TJs2bdQpvMcKl8uFFStWoKOjA+" + "eccw6OHj2KgwcP4pNPPknJdfGPf/wDZrMZN9xwAwu6Stx9991IT0/" + "HypUr4x4rLS3F7t27MWXKlGNexzHg1Ai6X8odYTabbUJFMkIIC3AOh4MFOKPRCL/" + "fD1EUMW1atClNKuDz+XDkyBGIoojq6uqEzRtKKDNNh8PBCiJK/" + "bAywHm9Xhw+fBhqtRpVVVUpy0Yo3G43Dh8+" + "DIPBgMrKStZpR3v66Q1jPNI1SUMcgj8ooHdgCIcaGqEzmGAtskZuFiR6jlkiRLrZ" + "AEK4qAKZdAwij7WxQ6PRQM3zUT4TJnm6r1Zu2qAz38YyYl0iQ3g4HA602luRl5OD" + "PJmGUtIpap5HQVa0DCzuSPJ3M1Eg5nleksiVlKCoqOi4GdTQdWzduhUrVqzAbbfd" + "hptvvvm4cbctLS247LLL4oIuIQQ2mw0fffQRqhTt7RSTQfcrRCgUQjgcTlmRTBAE" + "HD16FD09PcjMzIQgCPB4PGxo32i+uWM9/sDAACorK5lj/" + "UTACnVyIPb5fFLLqyAgFAqhsrISeXl5ox9oHAiHw2hqaoqTmI2EsUjXaNAOhUJoa" + "mpiVIXeYJSbOUIsKw4Ko9hfQlYjKH5HM+hwOAx7Wyv8/" + "gDKysqg1xuifCZoEYyOgDcY9JHJHCYTNLLPhKR4iPWZAILBMOx2O0LhEEpLSxNmg" + "BkmPQoyzfIA0vEhEAjgwIEDCIVCMJvNrPsvlXSUEk6nE//5n/+Jjo4OrF+/" + "HjabLSXHTYZkQfcf//gH7rrrrqS0QVlZmeSJzHH46U9/" + "iltvvfW4rjMJTo2gu3TpUpjNZsyZMwe1tbWwWCwTCobKFkmr1SqNbFHczWmnmtI3" + "l/" + "LDNBCPxA8rj19UVCRze6nLFujxm5ubkZWVxcbPUP2wMsBNpBtJuX6bzYbCwsIJ39" + "wS0TyhUAg8z8Pv96OwsBClpaVJ15lMQzya5lZSVXShoKAAOVMkty5lkS2eMpBsOl" + "1yV11CnwmjEWqN1N7c1z+Azs5OWK1FUVQIhValQmG2BRbD+" + "GVgI7XwUjpKmREfayAmhOCjjz7Cb37zG9TV1eHGG2/8SpQJyYLuz3/" + "+c1RWVuLuu+9O+HcdHR2wWq3o7e3FvHnz8MQTT+" + "C888477uuNwakRdA8fPowdO3agvr4en332GYLBIGbOnIna2lrMnTsXM2bMGDXIDA" + "0NobGxEWlpaSgvLx9zcW2s/" + "LDD4UBDQwMsFgsqKipS3oLpdDpx+" + "PDhhMen2ly6xtiOurFckC6XC4cPH4bJZEJlZWXK1+92u3Ho0CFotVpkZmbC4/" + "GwrfRY1xkMC3GTOaiGmPL+" + "o447Z7wszWTjLwWlz4Tb44HP40EoHIYgiNDqtLBarUhTcq9EMk7PthiRl25itpbj" + "wURaeI8lEDscDqxYsQK9vb1Yt24diouLx73miSJR0A2Hw7BardizZw+" + "KiopGPcaqVatgNpuxZMmS47nURDg1gm4s/H4/" + "9u7dix07dmDXrl04cOAAjEYjamtrMWfOHMyZMwclJSXgeR5dXV3o6+" + "uDKIqoqqpKKqEaK5RfdBrk/H4/eJ5HUVERcnNzR+2RHw+CwSAaGxvh8/" + "lQXV0Ni9yAMN51JnIzo34UtFutpqYm5bw2Pf7Q0BBqamriqIqJStcofIEQDjc2ob" + "OnD4XFJdDqDBBG4WQTaXg5DpBtJljThdTcRtDV1Y3+/" + "n5WwGU+" + "E4TAaDAiKyMNVcV5yM3OHHemSAhhLbxVVVXHREUB8S52brcbhBCYzWbWVen1evHA" + "Aw/" + "grrvuwg033JCy7DaRMmHVqlV49tln2RTeBx98ENOnT48LuqtXr8aDDz6IwsJC3HL" + "LLVi+fHnUsSnFYrFY4PF4MG/" + "ePKxcuRKXXHJJStY+" + "DpyaQTcWhBAMDg5i165dLBA3NzeD53mEQiE88MADOOeccxgflAoIgsAkYGVlZdBq" + "teyLTvlhpWxNp9ONuw2ZXozl5eXIzc095rXHFuqGh4cRDAaRmZmJgoICpKenJ1Ui" + "TAS9vb1oampCUVHRuApB1FiFrlMpXVPqSWlzTH5+" + "Pmw2GwseLBNWdNbRADvabDcKjgM8bqljLT09AwWFBfHBiRAYVQQaEmS6VyD+" + "xpYsqCWawns8QAPxBx98gP/5n/" + "9BY2MjrFYramtrUVdXh9NPPz0lr5NImRCbkV577bXYunUr+vv7kZeXh/vvvx8/" + "+clPkJGRgWXLluGee+7B3Llz8eqrryIjIwO33I0j+" + "wkAAB5OSURBVHILNm3ahObmZlx55ZUApKz4uuuuw29+85uUrHucmAy6ifDFF1/" + "g+uuvx7XXXovi4mLs2rULu3fvhsvlwrRp01hGPGvWrHFX/" + "Akh6O3txdGjR1FQUIDi4uKEF1Wsk9l4+OHBwUEcOXKEdRyl+" + "mKkVILZbIbNZotqG/Z6vWOe/" + "5YMPp8Phw4dgkajQVVVVUqkRlRPSm8WQ0NDAIC8vDxkZWWNKF2jGmJKSUhFu8QaY" + "g4cREFAW3s7PB4PSktL2dgc5Wgio1aNwuw06DTRn81IWmelsqO9vR09PT1jmsJ7r" + "CCE4L333sOqVauwZMkS/" + "PjHP0YwGMS+fftgtVpRWFiYsteKpQ7GQgN8+umnWLVqFd577z0AwJo1awAAv/" + "71r1O2rhQiadA9qeZjjBdTp07F9u3b2Vb8Rz/6EQCpar5v3z7U19fjj3/" + "8I7744guo1WrMnj0bs2fPxpw5c1BVVZU0yDmdTjQ0NMBoNGL27NkjmpVrtVpMmTK" + "FyVsoP+" + "xwODAwMIDm5mYmDVIG4cbGRgDA6aefnnJNplI1UFNTw86P0WiM2tYGAgF2s1DOf1" + "OK+hPdMJR+ALR5JVVQq9XIyMiA1+uFz+" + "fD9OnTkZmZyQJcd3c3U3Yo10l3GAadRu4CM8hrjdEQB6TJzYNDQ2hva0NObi5stu" + "KoQhnhpEaI/" + "AwzspKMPFepVMjIyIhqG1d2gjU0NGBoaAharRY5OTnwer2Sl65xYpMhRsPQ0BCWL" + "18Op9OJLVu2sACr1+sxd+7clL9eIjz55JP405/" + "+hDlz5mDt2rXIVMzxA6QCmZJTLioqQn19/" + "VeytlTilM50xwpCpLbT3bt3o76+Hjt37kRjYyNyc3Oj+OFgMIj6+" + "nqUl5ePi1cdDZTPpHPVPB4P9Ho9srKyohokjvViJISgs7MTdrt9Qq3NShMdGoxjb" + "xg0oMdu9VMFWoijhcRknVxKjwmHw4FAIMDGgdO1JrpZBoNBfHnoEHyBMIpKykB4F" + "byBUMSHGEC6UYeCTDM06vHvPKiMcGhoCNOmTYNOp4vKiD0ez5ibTsYCQgg2b96M+" + "++/H8uWLcN11133tSgTenp6WHfkvffei66uLrzwwgtRf/" + "P6669jy5YteO655wAAL730Eurr6/Hkk08e9/" + "VOAJOZ7rGA4zikpaXhwgsvxIUXXgggEqDq6+vxz3/+E7/+9a/" + "hdDpx7rnnYu7cufB6vZg9e3ZKMhOO4+" + "D1etHe3s4kbPRG4HA40NzczDKhifLDVPWQlpaGuXPnTmhIIMdxMBqNMBqNyM/" + "PBxC5YQwMDGD//v0IhULQ6/" + "Xwer3o7Owclc8cK2iwGhwcxNSpU0ct9Ol0OuTk5LDCjVKBMjQ0hNbWVmZan56eDo" + "vFwj6DRJMWBFGENxAGx2FCbmBAdAuvcgpvVlZW1G6ANp04nU709PSwMUSx1MRon/" + "3g4CCWLVsGn8+H999/HwUFBRNadyqg1JD/x3/" + "8By677LK451itVrS1tbGf6fXwTcNkppsC3HPPPcjKysLtt9+Oo0ePor6+" + "Hrt27cJnn30GQRBw+" + "umns2x42rRp4wpoybq9EiERP6wc955oux8KhdDY2Aiv14uamppxm6OMBlro6+" + "zsREVFBXJychLymcrpB3T67FhvGLS9OdV+A9QLo6+" + "vD3a7HYQQaLXaKMVEKpoPwuEw+wwm2sIb6w7n9/uTdv8RQvDuu+/id7/" + "7HVasWIFrrrkmZecskTJh6dKlePvtt6HValFRUYEXX3wRw8PDUZluV1cXzjnnHFg" + "sFgwODsLn82FwcDDq2OFwGNXV1fjwww9htVoxd+" + "5cvPLKK5gxY0ZK1p5iTBbSvg7Q7faePXuwc+" + "dO1NfX49ChQ0hPT2fa4Tlz5iRsjqDbcJfLNeZur0SvT/" + "lhGoyp3tVisSAYDKKvr4/" + "5VKSaK6S2kdnZ2aMW+" + "qjpNl0rzd6UvGtsMTMQCEQNVUx1e7OSe66pqUFGRkacxE4ptaJrHUm6Fov+/" + "n4cOXKETeFN5Q0jNhDX19fjjTfegCAIUKlUWL9+PWbOnJmS16NIpEx4//" + "33ceGFF0KtVmPZsmX429/+huHh4ShlwtatW/" + "Haa6+hqqoKFRUVWL9+" + "PQoKCtDZ2cmUCQCwadMm3HnnnRAEATfddNPXpUwYCyaD7okCQgj6+/tRX1/" + "P+" + "GE6xWLOnDk444wz8NlnnyEnJwcLFixI6YUISIGkp6cHTU1NUKlU8twzPs5A51g9h" + "hsbG+H3+" + "0e0jRwNNGjQQKxsGQ4GgxgcHERVVRWjCFIJh8OBQ4cOITc3l2m5k0EpXaMa4tHOa" + "TAYZLP5pk6dmnLzpFgQQvDWW2/hsccew7nnngudToc9e/" + "bg6quvTnmbbLJOMgB488038frrr+Pll1+Oe+wE8UxIFSaD7okMURTR2NiIP//" + "5z3j22WeRn58PnucxdepURkvMnDnzmC9MZQOFkkoQFDPVqIGORqMZNz+" + "sLMSlSjMce/z+/n40NDRArVaD5/" + "ko9y3KvR7Ldp9u9T0eD6ZOnTrhG4ZSiUALYJRCIYQwv41U+2EkQn9/" + "P+6++25wHIcnn3xywpN/x4qRgu4Pf/hDLF68GD/+8Y/" + "jHjtBPBNShclC2okMnudRVVUFv9+Pbdu2obq6GsFgEHv37kV9fT2eeeYZ7N+/" + "H3q9HmeeeSYLxOXl5WPaxtJupvb29oTBUKVSITMzM0qio+SHOzs7GT+" + "cTA7mcrkYdTLRQtxICIfDaG5uhsPhwOmnn86UIUpnuK6uLmZaP9bGAyX6+" + "vrQ2NgIm82GmpqaY7phqNXquHPqcrnw5ZdfQhRFGI1GNDc3o729PYpzH29zzEggh" + "OCvf/0rfv/73+Pee+/F1VdffVwdyEbDAw88ALVazaSZsdi+fXuUZ8LUqVO/" + "Ds+" + "E447JTPcbAkIIhoeHsWvXLlaoa25uhtVqxezZszF37lzU1tbGmZJTXjUzMxNlZWU" + "TDoZKflgpBzMajQgGgwiHw5g2bdpxEfDTjrXi4mJYrdZRAwfd7tN1jlaoCwQC0pQ" + "LnkdNTc2IxcqJgBCCjo4OtLe3x7XwJiqAUekaDcYTWU9vby/" + "uvvtuaDQaPPHEE8eFgkmGRJnuhg0bsH79enz44YejWpcCX6tnQqowSS+" + "cjKAjg3bs2IGdO3di165dGB4eRk1NDWpqalBfX49FixbhqquuSrkqgTpdNTU1ISM" + "jAxwnTUXgOC5l/" + "LDf78fhw4fB8zyqq6uPiV6hs8BiC3Ucx8Hj8aCioiKlHVcUXq8XX375JcxmMyorK" + "0elPpTSNfqPSteUFEqyLkVCCN544w08/" + "PDDWLVqFRYtWvSVZ7exQXfLli246667sG3btqTB/" + "wTyTEgVJoPuqYJgMIj77rsPf/" + "7zn1FbW4u2tjbwPI8zzjiDNXLU1NQcE+9J558ZDIY4pyvKDyuDGxXzK/" + "2HRwK9mXR1daXE3CUR3G43Dh48CK1WC5PJxKwvR5PYjRV0LFIqWnipdE0ZiJVcNs" + "3ifT4f7r77bhgMBvz3f/93SgtSiaRgg4ODWLx4MVpaWlBaWoq//" + "OUv+" + "MUvfhHnmbBixQoMDg6C53nk5eXh0ksvxbp166KUCSeQZ0KqMBl0TxUQQrBhwwYsX" + "rwYRqMRhBC43W7s2bOH0RJUxlVbW4va2lp861vfGpNkTNmAkMgJLBmCwWCUbG2kd" + "mGHw4HDhw+" + "PSWY2EYiiyIzjY5soYiV2SovO8RTqKHebnZ2NsrKy49LhpZSuffTRR1i7di36+/" + "sxe/ZsLFq0CJdccgnKy8tT9nqJpGBUn758+XL8/ve/" + "x9DQEB566KGovxscHMScOXOwe/" + "ducByH2tpa7NmzJ67F9yTEqRN0t2zZgrq6OgiCkND6LRAI4IYbbsCePXuQnZ2N11" + "577ZSbXkqpgZ07dzK3te7ublRWVjL98Jlnngmz2cwCcU9PD44ePZqSBoRE7cJ04g" + "cA1vGV6mBFO77G04KsLNRROZiyUKfU5ca28Kaa0kmE7u5u3HXXXbBYLHjooYfQ0d" + "GBXbt2Yfr06bjgggtS+" + "lqxtEFNTQ22bt2KgoICdHV14YILLmCDIyleffVVbN26FevXrwcA/" + "PSnP8UFF1yAa6+9NqVrOwFxaqgXBEHAL3/" + "5S3zwwQcoKirC3LlzsXDhQkyfPp095/" + "nnn0dmZiYaGxuxceNGLFu2DK+99trXuOqvHhzHoaCgAJdffjkuv/" + "xyANK5a2howI4dO/" + "DWW29h1apVCAaDKCsrQ2trKy655BLccccdKQkkynbhvLw8VijLz8+" + "HVqvFwMAAWlpaoly30tPTJ9xSHQqFcOTIEfj9fsyaNWtcHV8cx8FsNsNsNrOWU1E" + "UmRzMbrezBolAIIDs7GxMmzbtmP2YR4MoivjLX/" + "6Cxx57DKtXr8bChQvBcRwKCwu/" + "MoOanp4e1jqcn5+Pnp6euOckMqnp6Oj4StZ3ouKkCro7d+" + "5EZWUl21Zdc801eOutt6KCLg0oAPBv//" + "ZvuO2229g8tVMZKpUK06ZNw7Rp03DjjTcCAB5++GG8+OKLuPjii9Hc3Ix58+" + "bBbDZHmfwci2kNtXbUarWYM2dOXJVeadPY1NQEj8fDPAbGwg9Te83m5uYJGfgkA8" + "/zzHqzoKAAjY2NcLvdKC0tRSAQQFNTU5QfQqrlYN3d3airq0NWVha2bduWUpe2ie" + "JY5xGeSjipgu5YrN+Uz6EGMQMDAydLF0xKce655+LOO+9kwZCK+qkJ/" + "MaNG2G322Gz2dhcutra2lFN4JXttdXV1Un5vURaVyU/PJKdpN/" + "vZ169tbW1KZeBARHPh+Li4oS6XuVaOzo6orwwaDAeT6FOFEVs3LgRf/jDH/Dggw/" + "iBz/4wdca6PLy8tDV1cXohURNF1arFVu3bmU/" + "t7e3p5z2+" + "KbhpAq6qUBbWxtuuOEG9PT0gOM43Hrrrairq4t6ztatW3H55ZejrKwMALBo0SKsX" + "Lny61juccW3v/3tqJ85jsOUKVOwYMECLFiwAECkMFVfX4+PPvoIDz/" + "8MNxuN6ZPn84y4tNPP51lpJ2dnWhra0Nubi7mzp077iyZ+ssq3cHo3Lf+/" + "n40NTXB7/" + "dDEAQUFBSgoKAg5Y0ayhbeM888M6mULdFaqRxscHAQLS0tCIfDzMmMBuNEhbquri" + "7U1dUhJycH27ZtOyEKUQsXLsQf//hHLF++HH/84x8ZVaXE/PnzsWLFCmYm//" + "777zPz8VMVJ1XQHYv1G31OUVERwuEwHA5HlCRJrVZj7dq1mD17NlwuF2prazFv3r" + "woigIAvvvd7+Kdd945vm/oGwCe51FRUYGKigpcd911AMCmDdTX1+PFF1/" + "Evn372PYzOzsbq1evHtXPYKxQ8sNmsxlOpxP5+fnIzc2F2+" + "1Ge3s70w8fKz9MCGEFxfLy8nG38HIcB4PBAIPBwP6WFuqowfqRI0eYgU5bWxtMJh" + "Oam5vx9NNPY82aNbj00kuPW3Z7+PBhLF68mP3c3NyM3/" + "72t7jzzjvZ+Jy+vj7wPA+r1Yr09HR4vV48//zzKCkpwV/" + "+8hcAwO7du7Fu3To899xzyMrKwr333st45pUrV54QdMjXiZNKvTAW67ennnoK+/" + "btw7p167Bx40a88cYb7MuSCJdffjluu+02zJs3j/" + "1u69atePTRRyeD7hjx4Ycfoq6uDldccQUMBgN27dqFpqYm5OXlRfHDE/" + "VqoEMth4eHMXXq1ITm8Up+mHohjIcfVtIV1dXVKZ+CrAQt1G3cuBEvv/" + "wy7HY7ysrKcNZZZ+FXv/" + "oV22EdTwiCAKvVivr6epSUlLDfT373x4xTQ72gVqvx5JNPYv78+" + "cz6bcaMGVi5ciXmzJmDhQsX4uabb8b111+PyspKZGVlYePGjUmP19LSgs8//" + "xxnnXVW3GOffvopZs2ahcLCQjz66KMnqqfnCYHp06dj+/" + "btUaNpaGtsfX09duzYgaeeegoDAwOorq5m/" + "PCZZ545akY6ODiIhoaGOOPvWCTih5UuZpQfju38UqvVSVt4jyfeeustbNiwAQ899" + "BDmz58Pl8uFzz77LGXTSEbDhx9+iIqKiqiAO4nU4KTKdFMJt9uN888/H7/" + "5zW+" + "waNGiqMecTid4nofZbMamTZtQV1eHI0eOxB2jtLSUienVajV2794d9TghBHV1ddi" + "0aROMRiM2bNiA2bNnH9f3dSJDEAQcPHiQWV5+/" + "vnnIIREmcBPnToVarUaPT096OnpgSiKmDp1akq8dJX8sNPpxPDwMBuNZLVakZGRA" + "YvFclzH2bS3t+OOO+5AcXExHn300eM+jDIZbrrpJsyePRu33XZb1O+" + "3bt2Kq666CkVFRZMJx8g4dZojUoFQKITLLrsM8+" + "fPx1133TXq85P5gI7mD7pp0yY88cQT2LRpE+rr61FXV/" + "eNHLR3vEDbX2NN4On2+1e/" + "+hUuvfTScY1tHwuULbxVVVVQq9UsI6ZeuanQD8e+5p/+9CesX78ejzzyCObNm/" + "e1KROCwSAKCwtx4MCBON56rAnHJE4ReiEVIITg5ptvxrRp05IG3O7ubuTl5YHjOO" + "zcuROiKE5o2/nWW2/" + "hhhtuAMdxOPvsszE8PMwkOJOQCk8mkwnnnXcezjvvPIiiiCuvvBLp6em45JJLcPD" + "gQdx+++" + "3o7OxEWVkZy4Znz56NtLS0CQUtalGZlZUVpa5IS0tDUVERgIh5jtPpZGN2lFMuxj" + "uOvq2tDbfffjvKy8vxySefjDrf7Xhj8+bNmD17dsJCoXJtl156KX7xi1+gv79/" + "UnI5DkwG3Rj885//xEsvvYTTTjsNZ5xxBgDgwQcfhN1uBwD87Gc/" + "w+uvv46nn34aarUaBoMBGzduTHiBcxyH73//" + "+0lNmZN160wG3cTgeR5PPPEEbDZb1O+pCfyOHTuwefNmrF69Gn6/" + "HzNmzIgygR9JqyuKIpqbm8fUwqtWq+OGRY7GD6elpcVJ10RRxIYNG/" + "Dss89i7dq1uOiii45bdjseqqu/" + "vx933nlnwuOkKuE4lTEZdGNw7rnnYhTKBbfddlsc15UIqTBlHknGQ3Gq6IYBxAVc" + "AMz6sbq6GjfccAMAKQhSE/j169czE/" + "jZs2ezQEzNaA4fPozh4WHk5+ePWIwbCYmmC1N+uK+vD01NTcwZ7L333kNFRQWef/" + "55TJ06Ff/85z+/Ep+Gjz/+OGlGunnzZhw5cgR79+6F1WrF22+/" + "zTo3161bB2B8CcckkmMy6B5HUI1wbm4urrzySuzcuTMq6I5FV1xTU4O9e/" + "cCiMh4qAWeEpO64WjodDqcddZZTHlCTeApN/" + "zGG2+" + "gsbGRPXflypWoqKhI2esr9cN05yKKIgYGBtDY2IiXX36ZNUusWbMGDzzwQMpeeyK" + "gVJfZbIbD4UBNTQ2jun72s5+x54014ZhEckwG3eOEWFPm999/" + "Py77XLhwIZ588klcc801qK+vZ738yTAp45k4OI5DZmYm5s+fj/" + "nz5+Po0aNYtGgRFi9ejJKSEmzfvh2PPfYYHA4Hpk6dytzWxmuQMxLsdjtuu+" + "02TJ8+HXv27IHZbIbL5UJTU1NKjj8SJqmuEweTQfc4oaenJ86U+" + "ZJLLonaql166aXYtGkTKisrYTQa8eKLL454zI0bNya1xJvUDY8PNpsNmzdvRn5+" + "PgCw8xoKhXDgwAHs2LEDL7/" + "8MpYuXQqe53HmmWeyRo7q6upx+fwKgoDnn38eGzZswOOPP47zzz+" + "fbcktFgurHRxPnCrzx74RIISM9G8SJwgCgQDJzs4m3d3dcY85HA7icrkIIYS8++" + "67pLKykj124403kpycHDJjxgz2u4GBAXLxxReTyspKcvHFF5PBwcGEr7lhwwZSWV" + "lJKisryYYNG1L8jr4ZEEWROJ1O8vHHH5M1a9aQRYsWkZkzZ5Lvfe97ZMmSJWTjxo" + "2kqamJuN1u4vF44v7t37+ffO973yN33HEHcbvdX/" + "fbIYQQct9995FHHnkk6ne33noreeWVV9jP1dXVpLOz86te2smEpHF1Muh+Q/DXv/" + "6VzJs3b0zPLSkpIX19fYQQQrZt20b27NkTFXSXLl1K1qxZQwghZM2aNeSee+" + "6JO8bAwAApKysjAwMDZHBwkJSVlSUNzqcaRFEkHR0d5M033yTLli0jF154IZk5cy" + "a54ooryO9+9zuyefNm0tnZSdauXUvOOOMMsm3bNiKK4te2XrfbTZxOJ/" + "vvc845h2zevDnqOe+" + "88w655JJLiCiK5NNPPyVz5879OpZ6MmEy6H7TsXjxYvLCCy8kfKyrq4td1PX19aS" + "4uDjqIj969GhU0FVmMZ2dnaS6ujrumK+88gq59dZb2c+xmdAkohEOh8mBAwfICy+" + "8QH7605+SkpIScvXVVxOPx3PcXtNut5MLLriATJs2jUyfPp08/vjjcc/" + "5+OOPidlsJnq9nuj1epKTk0NWr15NCCHk6aefJk8//TQhRLqR/" + "OIXvyDl5eVk5syZZNeuXcdt3acIksbVSU73GwCPx4MPPviAjTwBjk3GM+" + "n4n3qoVCpMnz4d06dPx4033viVGOOP1RHv/" + "PPPT6hsUaoSOI7DU089dVzXOwkJk0H3GwCTyYSBgYGo36VKxjNWx/" + "8333wTDQ0N2LBhA5uRtXTpUrz99tvQarWoqKjAiy++GGVqQzGaMP9kxFehXaV+" + "wYBUkJs2bRo6Ojrigu4kTiwcP+eOSZywoI7/AEZ0/FdqiIuKirBixYqo58ybNw/" + "79+/HF198gerq6hHNqT/" + "++GPs3bv3lAi4XwfG4oi3YMECHDhw4GtY3SSUmAy6pyCo4z+AER3/33//" + "fQwNDWFoaAj79u3DpZdeGvWc73//+6y19eyzz0Z7e/vxX/" + "wk4uB2u3HVVVfh8ccfj/NtmD17NlpbW/Gvf/" + "0Lt99+O6644oqvaZWTYBiJ8P062OdJpBbXXHMNyc/PJ2q1mlitVvLcc8+R/" + "v5+cuGFF5LKykpy0UUXkYGBAUIIIbt27SI333wz+9vnn3+eVFRUkIqKCvLCCy/" + "EFeSUuOyyy8hLL72U8LHS0lJy5plnktmzZ5P169en/k2ewggGg+T73/" + "8+" + "Wbt27Zier1S2TOK4YlK9MIljR7Kgu3r1anLFFVcklUW1t7cTQgjp6ekhmZmZJCMj" + "I+o49913HyksLCSzZs0is2bNIu+++27C42zevJlUV1eTiooKJnk7lSGKIrn++" + "utJXV1d0ueMpmyZxHHDpHphEscHGzZswDvvvIMPP/wwafFI6UFx+eWXIz09HX//" + "+9+jnvOrX/0KS5YsSfo6giDgl7/" + "8JT744AMUFRVh7ty5WLhw4UlbNNqyZQvq6uogCAJuueUWLF++" + "POrxQCCABQsW4OOPP4bBYMD7778PrVY7YUe8SXx1mAy6k5gwtmzZgocffhjbtm2D" + "0WhM+JxYD4rDh///9u4gpMkwDOD4/" + "6EhQYSeJpiHGGoIOg1REBRBMiHFk+" + "g8CYqoYHgYeBtE0K2wwyAQ5qXDpgiyKAliChkE0kXo0DDSQwkeDMVOIjwdyvHNTT" + "co56bP77Tv+959vLs877f3e9/niTM6OpoSdDNZW1ujoqICj8cDgM/" + "nIxqNXsqgm80AEwqFqKqqYnl5mUgkwuLiInNzcyn3sgQ1+" + "cdepJmsDAwM0NzcTDwep7y8nFAoxMTEBAcHB3R0dFBfX59Yxra9vZ146bazs0NLS" + "wt1dXU0NTXR1dVFW1tbyv2DwSBer5ehoaFEuW6nq7Ru2DnAFBUVJQYYp2g0yuDgI" + "AC9vb3EYrGMKUlNfrAnXZOVcDiccm54eDht27KyMpaWlgDweDysr68nXd/" + "a2ko6Hh8fJxAIICIEAgH8fj+zs7MZ+xSLxXC73bjd7sTa4f7+" + "fuLxOAB7e3uUlJQkUmM65fPa4XQDzMkyTs42LpeL4uJidnd3rYJDAbCgay6csyzM" + "yMgI3d3dKW3S5R5ubW1lbGwskbgcSPqL7ff7zyzseFZSb2POi00vmAt3vFED/" + "ux8q6mpSWnT2NjIxsYGm5ubHB4eEolEmJycTCqZ46SqzM/" + "Pn5oKM59lk9ze2ebo6Ij9/" + "X0rm1MgLOianEo3Nzw1NUVtbS1er5eVlRWmp6eB5Llhl8tFMBiks7OT6upq+" + "vr6zswZvLq6SmlpKZWVlWmvHyf1bmhoYGZm5v//" + "0H+" + "QboDp6elJauPc4LKwsEB7e7utSigQmUqwG5PXROQ28FpVa06cfwF8VdVnp3zvlqr" + "+EBE38A54qKrvz7u/" + "2RKRB8Bz4Bowq6pPROQx8ElVX4nIdeAlcBf4CfhU9dvF9dhky4KuKWjpgq6IuIAf" + "QIOqZtybLCKPgF+q+vScumlMgk0vmMvoHvDltIArIjdE5ObxZ+A+8DmH/" + "TNXmAVdU7BEJAx8BO6IyHcROV7D5gPCJ9qWicjS38NS4IOIrANrwBtVfZurfpurz" + "aYXjDEmh+xJ1xhjcsiCrjHG5NBv12F+NSMctaYAAAAASUVORK5CYII=", + "text/plain" : ["
"] + }, + "metadata" : {"needs_background" : "light"}, + "output_type" : "display_data" + } ], + "source" : [ + "# first, split the variable curve\n", + "piecewiseCurve = variableBezier.split(array([[0.4, 0.8]]).T)\n", + "\n", + "constrainedCurve = piecewiseCurve.curve_at_index(1)\n", + "\n", + "# find the number of variables\n", + "problemSize = prob.numVariables * dim\n", + "# find the number of constraints, as many as waypoints\n", + "nConstraints = constrainedCurve.nbWaypoints\n", + "\n", + "waypoints = constrainedCurve.waypoints()\n", + "\n", + "ineqMatrix = zeros((nConstraints, problemSize))\n", + "ineqVector = zeros(nConstraints)\n", + "\n", + "\n", + "# finding the z equation of each control point\n", + "for i in range(nConstraints):\n", + " wayPoint = constrainedCurve.waypointAtIndex(i)\n", + " ineqMatrix[i, :] = wayPoint.B()[2, :]\n", + " ineqVector[i] = -wayPoint.c()[2]\n", + "\n", + "\n", + "res = quadprog_solve_qp(A, b, G=ineqMatrix, h=ineqVector)\n", + "fitBezier = variableBezier.evaluate(res.reshape((-1, 1)))\n", + "\n", + "\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot(111, projection=\"3d\")\n", + "\n", + "# now plotting the obtained curve, in red the concerned part\n", + "piecewiseFit = fitBezier.split(array([[0.4, 0.8]]).T)\n", + "plotBezier(piecewiseFit.curve_at_index(0), ax=ax, linewidth=4.0, " + "color=\"b\")\n", + "plotBezier(piecewiseFit.curve_at_index(1), ax=ax, linewidth=4.0, " + "color=\"r\")\n", + "plotBezier(piecewiseFit.curve_at_index(2), ax=ax, linewidth=4.0, " + "color=\"b\")\n", + "\n", + "# plotting the plane z = 0\n", + "xx, yy = np.meshgrid(range(20), range(20))\n", + "\n", + "# calculate corresponding z\n", + "z = 0 * xx - 0 * yy\n", + "\n", + "# plot the surface\n", + "ax.plot_surface(xx, yy, z, alpha=0.2)\n", + "plt.show()" + ] } - ], - "source": [ - "# returns a curve composed of the split curves, 2 in our case\n", - "piecewiseCurve = ref.split(array([[0.6]]).T)\n", - "\n", - "# displaying the obtained curves\n", - "\n", - "fig = plt.figure()\n", - "ax = fig.add_subplot(111, projection=\"3d\")\n", - "\n", - "# first, plotting the complete piecewiseCurve is equivalent\n", - "plotBezier(piecewiseCurve, ax=ax, linewidth=10.0, color=\"b\")\n", - "plotBezier(piecewiseCurve.curve_at_index(0), ax=ax, linewidth=4.0, color=\"r\")\n", - "plotBezier(piecewiseCurve.curve_at_index(1), ax=ax, linewidth=4.0, color=\"orange\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The split is achieved by the De Casteljau algorithm. The continuity at the split location is infinite.\n", - "Of course, the split will also work for variable Bezier curves.\n", - "We can exploit the convexity of Bezier curves to continuously impose constraints on a given interval of the curve.\n", - "If the control points of the sub curve satisfy a set of linear constraints, then the entire sub-curve satisfies the constraint.\n", - "\n", - "For instance, let us impose the z value to be negative between t = 0.4 and t= O.8" - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" + ], + "metadata" : { + "kernelspec" : { + "display_name" : "Python 3", + "language" : "python", + "name" : "python3" + }, + "language_info" : { + "codemirror_mode" : {"name" : "ipython", "version" : 3}, + "file_extension" : ".py", + "mimetype" : "text/x-python", + "name" : "python", + "nbconvert_exporter" : "python", + "pygments_lexer" : "ipython3", + "version" : "3.6.9" } - ], - "source": [ - "# first, split the variable curve\n", - "piecewiseCurve = variableBezier.split(array([[0.4, 0.8]]).T)\n", - "\n", - "constrainedCurve = piecewiseCurve.curve_at_index(1)\n", - "\n", - "# find the number of variables\n", - "problemSize = prob.numVariables * dim\n", - "# find the number of constraints, as many as waypoints\n", - "nConstraints = constrainedCurve.nbWaypoints\n", - "\n", - "waypoints = constrainedCurve.waypoints()\n", - "\n", - "ineqMatrix = zeros((nConstraints, problemSize))\n", - "ineqVector = zeros(nConstraints)\n", - "\n", - "\n", - "# finding the z equation of each control point\n", - "for i in range(nConstraints):\n", - " wayPoint = constrainedCurve.waypointAtIndex(i)\n", - " ineqMatrix[i, :] = wayPoint.B()[2, :]\n", - " ineqVector[i] = -wayPoint.c()[2]\n", - "\n", - "\n", - "res = quadprog_solve_qp(A, b, G=ineqMatrix, h=ineqVector)\n", - "fitBezier = variableBezier.evaluate(res.reshape((-1, 1)))\n", - "\n", - "\n", - "fig = plt.figure()\n", - "ax = fig.add_subplot(111, projection=\"3d\")\n", - "\n", - "# now plotting the obtained curve, in red the concerned part\n", - "piecewiseFit = fitBezier.split(array([[0.4, 0.8]]).T)\n", - "plotBezier(piecewiseFit.curve_at_index(0), ax=ax, linewidth=4.0, color=\"b\")\n", - "plotBezier(piecewiseFit.curve_at_index(1), ax=ax, linewidth=4.0, color=\"r\")\n", - "plotBezier(piecewiseFit.curve_at_index(2), ax=ax, linewidth=4.0, color=\"b\")\n", - "\n", - "# plotting the plane z = 0\n", - "xx, yy = np.meshgrid(range(20), range(20))\n", - "\n", - "# calculate corresponding z\n", - "z = 0 * xx - 0 * yy\n", - "\n", - "# plot the surface\n", - "ax.plot_surface(xx, yy, z, alpha=0.2)\n", - "plt.show()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.9" - } - }, - "nbformat": 4, - "nbformat_minor": 2 + "nbformat" : 4, + "nbformat_minor" : 2 }