Skip to content

Instantly share code, notes, and snippets.

@cicdw
Created March 28, 2017 23:27
Show Gist options
  • Save cicdw/56a1fa4707d90b46426653ffad63d138 to your computer and use it in GitHub Desktop.
Save cicdw/56a1fa4707d90b46426653ffad63d138 to your computer and use it in GitHub Desktop.
Async ADMM for Logistic Regression
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Imports and initial setup"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import dask.array as da\n",
"import pandas as pd\n",
"import numpy as np\n",
"import time\n",
"\n",
"from dask import delayed, persist\n",
"from dask.distributed import Client, as_completed\n",
"from dask_glm.algorithms import local_update\n",
"from dask_glm.utils import make_y\n",
"from toolz import partition_all"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<Client: scheduler='tcp://127.0.0.1:8786' processes=8 cores=8>"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"client = Client()\n",
"client"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Data Setup"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We will create a base coefficient vector that actually has many 0's to compare against:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"//anaconda/lib/python3.5/site-packages/dask/array/core.py:476: RuntimeWarning: overflow encountered in exp\n",
" o = func(*args, **kwargs)\n"
]
}
],
"source": [
"## create inputs with a bunch of independent normals\n",
"beta = 3 * (np.random.random(100) - 0.5) # random beta coefficients, no intercept\n",
"zero_idx = np.random.choice(len(beta), size=10)\n",
"beta[zero_idx] = 0 # set some to 0\n",
"X = da.random.normal(0, 1, size=(2000000, 100), chunks=(40000, 100))\n",
"y = make_y(X, beta=beta, chunks=(40000, ))\n",
"\n",
"## make sure all chunks are ~equally sized\n",
"X, y = persist(X, y)\n",
"client.rebalance([X, y])"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"metrics_v1 = []\n",
"metrics_base = []\n",
"\n",
"def update_metrics(hist):\n",
" '''Will look in current namespace for all the variables it needs;\n",
" written purely for convenience and DRY'''\n",
" \n",
" ## update metrics\n",
" hist.append({\n",
" 'time_elapsed': time.time() - START, ## this isn't quite appropriate; time passed is what we want\n",
" 'primal_res': np.linalg.norm(betas - z),\n",
" 'dual_res': np.linalg.norm(rho * (zold - z)),\n",
" 'eps_primal': np.sqrt(p * nchunks) * abstol \\\n",
" + nchunks * reltol * np.maximum(np.linalg.norm(betas), np.linalg.norm(z)),\n",
" 'eps_dual': np.sqrt(p * nchunks) * abstol \\\n",
" + nchunks * reltol * np.linalg.norm(rho * u),\n",
" 'num_zeros': (z == 0).sum()})"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Algorithmic Setup"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The only two parameters worth calling out here are `rho` and `over_relax`; `rho` can be interpreted as the step-size for the dual problem updates, and `over_relax` is a parameter in $(0, 2)$ which weights the current local update with the current global parameter estimate (`z`)."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def local_f(beta, X, y, z, u, rho):\n",
" eXbeta = np.exp(X.dot(beta))\n",
" return (np.log1p(eXbeta)).sum() - y.dot(X.dot(beta)) + (rho / 2) * np.dot(beta - z + u, \n",
" beta - z + u)\n",
"\n",
"def local_grad(beta, X, y, z, u, rho):\n",
" p = 1 / (1 + np.exp(-X.dot(beta)))\n",
" return X.T.dot(p - y) + rho * (beta - z + u)\n",
"\n",
"\n",
"def shrinkage(beta, t):\n",
" return np.maximum(0, beta - t) - np.maximum(0, -beta - t)\n",
"\n",
"\n",
"## set some algorithm parameters\n",
"MAX_TIME = 45 # in seconds\n",
"lamduh = 7.2\n",
"rho = 1.2\n",
"over_relax = 1.7\n",
"\n",
"abstol = 1e-4\n",
"reltol = 1e-2\n",
"\n",
"(n, p) = X.shape\n",
"nchunks = X.npartitions\n",
"ncores = sum(client.ncores().values())\n",
"XD = X.to_delayed().flatten().tolist() # imagine a list of numpy arrays, one for each chunk\n",
"yD = y.to_delayed().flatten().tolist()\n",
"XD = client.compute(XD)\n",
"yD = client.compute(yD)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Standard ADMM"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# the initial consensus estimate\n",
"z = np.zeros(p)\n",
"\n",
"# an array of the individual \"dual variables\" and parameter estimates,\n",
"# one for each chunk of data\n",
"u = np.array([np.zeros(p) for i in range(nchunks)])\n",
"betas = np.array([np.zeros(p) for i in range(nchunks)])"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"START = time.time()\n",
"time_elapsed = 0\n",
"history = []\n",
"\n",
"while time_elapsed < MAX_TIME:\n",
" \n",
" # process each chunk in parallel, using the black-box 'local_update' magic\n",
" betas = [delayed(local_update)(xx, yy, bb, z, uu, \n",
" rho, f=local_f, fprime=local_grad) for\n",
" xx, yy, bb, uu in zip(XD, yD, betas, u)]\n",
" betas = np.array(da.compute(*betas))\n",
" \n",
" # everything else is NumPy code occuring at \"master\"\n",
" beta_hat = over_relax * betas + (1 - over_relax) * z\n",
"\n",
" # create \"consensus\" estimate\n",
" zold = z.copy()\n",
" ztilde = np.mean(betas + np.array(u), axis=0)\n",
" z = shrinkage(ztilde, lamduh / (rho * nchunks))\n",
" history.append(z)\n",
" \n",
" # update dual variables\n",
" u += betas - z\n",
" \n",
" update_metrics(metrics_base)\n",
" time_elapsed = time.time() - START"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Async version 1: single updates"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# the initial consensus estimate\n",
"z = np.zeros(p)\n",
"async_history = []\n",
"\n",
"# an array of the individual \"dual variables\" and parameter estimates,\n",
"# one for each chunk of data\n",
"\n",
"count = 0\n",
"u = np.array([np.zeros(p) for i in range(nchunks)])\n",
"betas = np.array([np.zeros(p) for i in range(nchunks)])\n",
"\n",
"starting_idx = np.random.choice(nchunks, size=ncores*4, replace=True)\n",
"new_betas = [client.submit(local_update, XD[i], yD[i], betas[i], z, u[i], \n",
" rho, f=local_f, fprime=local_grad) for\n",
" i in starting_idx]\n",
"index = dict(zip(new_betas, starting_idx))\n",
"pool = as_completed(new_betas)\n",
"\n",
"START = time.time()\n",
"time_elapsed = 0\n",
"\n",
"for update_count, future in enumerate(pool):\n",
" \n",
" local_beta = future.result()\n",
" i = index.pop(future)\n",
" betas[i] = over_relax * local_beta + (1 - over_relax) * z\n",
" \n",
" zold = z.copy()\n",
" ztilde = np.mean(betas + np.array(u), axis=0)\n",
" \n",
" if update_count < nchunks:\n",
" ztilde *= nchunks / (update_count + 1)\n",
" \n",
" z = shrinkage(ztilde, lamduh / (rho * nchunks))\n",
" async_history.append(z)\n",
" \n",
" update_metrics(metrics_v1)\n",
" \n",
" time_elapsed = time.time() - START\n",
" if time_elapsed > MAX_TIME:\n",
" break\n",
" \n",
" i = np.random.choice(nchunks, size=1, replace=False)[0]\n",
" u[i] += betas[i] - z\n",
" new_fut = client.submit(local_update, XD[i], yD[i], betas[i], z, u[i], \n",
" rho, f=local_f, fprime=local_grad)\n",
" index[new_fut] = i\n",
" pool.add(new_fut)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Check the histories"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"history = np.array(history)\n",
"async_history = np.array(async_history)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"//anaconda/lib/python3.5/site-packages/ipykernel/__main__.py:1: RuntimeWarning: invalid value encountered in true_divide\n",
" if __name__ == '__main__':\n"
]
},
{
"data": {
"text/plain": [
"array([ 0.01134411, -0.01160599, 0.00742045, 0.01406688, nan,\n",
" 0.01383868, nan, 0.00728119, -0.01117423, -0.01210531,\n",
" 0.0090128 , 0.01030718, -0.01294137, -0.01361662, -0.03522071,\n",
" -0.05056273, 0.00928889, -0.01350995, 0.00477387, 0.01164756,\n",
" nan, -0.00629868, -0.05253693, -0.00913588, 0.05741004,\n",
" 0.02851519, 0.01964217, -0.01922045, 0. , 0.01933886,\n",
" -0.02258792, 0.00385494, 0.00992352, 0.03559424, 0.01274679,\n",
" 0.01001344, 0.01584353, 0.01498987, -0.00104109, -0.01135339,\n",
" nan, nan, 0.01546493, 0.01328574, 0.012612 ,\n",
" -0.00888411, 0.03679211, -0.0152337 , -0.00850041, -0.03638186,\n",
" -0.01052571, -0.01568436, 0.01927185, nan, -0.011584 ,\n",
" 0.0105958 , nan, 0.01754306, 0.00767948, 0.01398525,\n",
" -0.01661346, -0.00687698, 0.01383607, 0.01304863, 0. ,\n",
" 0.019761 , nan, -0.01524462, 0.01085713, 0.01596415,\n",
" 0.00773895, -0.0083532 , 0.00102086, -0.09866519, -0.01359679,\n",
" 0.00926936, 0.0106877 , -0.03916571, 0.01017578, 0.00303997,\n",
" 0.00247362, 0.01320502, 0.01218278, 0.00270092, 0.00837631,\n",
" -0.01060944, 0.01405632, -0.00989981, 0.00955468, nan,\n",
" 0.0104829 , 0.01009631, -0.05910316, -0.01216926, -0.01694624,\n",
" -0.01255824, -0.00760888, nan, 0.00714541, 0.00918642])"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"abs(history[-1, :] - async_history[-1, :]) / beta"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.023905339599367137"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.max(abs(history[-1, :] - async_history[-1, :]))"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0. , 0. , 0. , 0.00983 , 0. ,\n",
" 0. , 0. , 0. , 0.0024363, 0. ,\n",
" 0. , 0. ])"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"beta[np.where(history[-1, :] == 0)]"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0. , 0. , 0. , 0.00983 , 0. ,\n",
" 0. , 0. , 0. , 0.0024363, 0. ,\n",
" 0. , 0. ])"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"beta[np.where(async_history[-1, :] == 0)]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can see from the above that \n",
"- both algorithms found similar coefficient estimates\n",
"- both algorithms found almost all the \"true\" 0's of beta (this isn't an accuracy issue, it's more related to setting the correct value of `lamduh`)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x11769d4e0>"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAhkAAAFyCAYAAABYwciPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzsnXd4HNXVh9+7q9Wqy01uGFdwAQPGdEzvJR8QWjAQCARI\nQighJCEhCUkgQAIBQglJ6CXBhBZC7xjTi43BxsYG927ZstWl1e6c748zq12t1a215OW8z3OfmZ25\nM3On7NzfnHvuuU5EMAzDMAzD6GoC3V0AwzAMwzAyExMZhmEYhmGkBRMZhmEYhmGkBRMZhmEYhmGk\nBRMZhmEYhmGkBRMZhmEYhmGkBRMZhmEYhmGkBRMZhmEYhmGkBRMZhmEYhmGkBRMZRtpwzh3lnPvU\nOVfrnIs554r85d91zs11zkWcc2X+sqnOuTc7cQzPOXdVV5e9p+Kc+55/zkO7uyydwTm32Dl33xY+\nZr5z7h7n3Cr/2t28JY9vGN9kTGRkOM65kc65fzrnFviVfblz7h3n3CXOuZw0HrcP8B+gBrgQ+C5Q\n7ZwbA9wPfAWcB5zvbyKA14lDiZ/ShnNusnPu0g7k/5Vz7vg0FSet5+uc28c597u4IEwDHmm+X83w\na+As4G/AmcDDW+KgzrmAc26lL2yO3BLH3FI454qdc3X+x8OYFvLc7597PFX676HHnXMnOudcM9tM\n9fPOa2GfhyXt78Sk5WcnLd+3hW2X+euf6ex5Gx0nq7sLYKQP59yxwGNAHfAQMBvIBvYDbgB2AH6Y\npsPvARQAvxGRRguFc+4gwAGXisiipPyHd/I4uUC0s4VsJ6cDOwK3tjP/lcDjwP/SUJaHgCkiEknD\nvgH2Ba5ChWBFGvY/hs6Jyc3hYOADEfnjFj7uIcBAYBFwBvDyFj5+OjkFvY+r0XNryZpYB3wf/c/n\nAsOA/wOeAKY6544Tkaqk/ALUAts553YXkU9S9neGv76lD6Ra9P/6XvJC59yBwDZ+eYwtiFkyMhTn\n3HBgCvqCGycil4nIvSLydxE5AxUYX6SxCAP8aXkLy5tUYCISFZEOiwURiYjIlq60ugznXF5H8ouS\nLoEBWhl0/U59q5mINIhILB3HaIX+wMau2plzLuicC7Uj65nAdOAW4ATnXG5XlaEHcCbwPPqOOb2V\nfFERmSIij/jvn6tEZFfgl8BBwN3NbLMAmAdMTl7onAsD3/aP2xIvAKc451LrttOBT1BRZGxJRMRS\nBibg70AM2Kud+YPAb4GvUbW/CLgWyG4m79HANKAKFQvPATskrX8T/cqJJU3v9/eZvNwDrvK3mQq8\nkXKcMPB79IVTC6wEngRGJOVp3EfSssHAfegLpQ614JyTkudAf9tTUHP6Mv8YrwGjWjkXD1jYynVM\nzesB9/nrfu//Hgc8ApQB0/11O/nXaIFfjlXAvUCflP1/z9/H0I7ck6R8Y1Dr1lq0KetL4I/+ut81\nU/5Y/FjtfUaAxcAzwBHAx/75XJK07r6U/MXAX4Gl/n6/An4BuJR8p6EVRQUqXj+P77eFexG/xy2d\nT4l/jVf7ZZwJnJWyj2H+dj8FLvXPvQHYuY3/U45fxp+iwjoKnNZMvgH+fV/mn/tK4OmkMj4AlALB\nZrZ9BZib8uzdBhwPzCLx7B/ZzLaD/XNf4edbCNwJZLXjXbGtfx1PRC2WHrB3M/nuBypa2c9L/nXZ\nLuX/9rn/nC1PyX8KUA+c7B/zxKR1ZyeVKZp8zkAIWA/8xH9mn2nve9TS5idrLslcvoVWhh+2M/+9\naLv1Y8BfgL2AXwFjgZPimZxz30VffC+hFUEe8CPgbefcriKyFPgjKgzOB36DViwLgP+iL4MTgB8A\n1egLBVLa6f0vkedRU/cUtBIqRJtVxqMvi01wzvUHPkRfOLcB69AK+F7nXKGI3JayyS/9vDeild0V\nwL+Affz1f/SXb4O+pBxakbfEmei1/BC4y1+2IOUcHwfmo9c3bjk4HBhBQhztiF6jHZLKEt9H6rVq\nzz3BObcz8Db6ov4nsAQYhT4rvwGeAkajlfml6IsZtJKDdj4jfvnGokLqn/51mJe0Lrnsuag4GgT8\nA61s9wWuR5safurnO9zf36v+OYKKtX3R+9wcc9D78Vd/vzfFz8e3rLwFjARuR5/RU4AHnHPFInJ7\nyr7ORUXvP9HrV9bCMeMcD+QDj4rIGufcVNTU/2hKvqf887gNvR/90WdhKCq6Hkb9mY5Ev9Lxr8cA\n9L/xu5T97Y9WtHcClcAlwBPOuaEissHfdhAq/or885mHPt8no89OW81kp6P/gedFpN45t8A/tw/a\n2C6Vh1Ehejgq3pJ5BPiDc+4gEZnqL5sMvE7ieWyOxX45JpNonjoGPddH0efa2JJ0t8qx1PUJrYw9\n4Kl25t/Zz/+PlOU3oBXwgf7vfPTl+veUfCXAhuTtSXxZTEzJ+zt/eeoX+pskWTKAc/wytfil6udr\nYskA7gGWA71S8sUtB2H/d/wrdzZJX4nAxX75ki0zz9KK9aKZMlWS8rWedO4e8HAz68LNLPuOX5ZJ\nzVzX+JduR+7JW2izwTatlP3y5P139Bnxly3ylx3WzP4XJV8bVNxUACNT8l0HROJlRZscNnTy/7DJ\n1yta2cRIsi6glpp3UQtEvr8sbsnYkPrMtnHMZ4BpSb/PQ8VJ36Rlxf6+f9rKfhwqNh5JWX4Z+sU+\nLOW/UAsMT1q2k7/8wqRlD6LWmF07eT0/Ax5K+v1HYA0QSMnXliVjF79sf0la9ibwuT//EXBX0rWq\nQ8VM/L/bnCVjIupovpHEf/0/wGstPQuW0pvMJyMzifcMqGxn/mPQL8xbUpbfhL7kjvV/H4H+2R91\nzvWNJ3/bD9Evq67iRPSL5Y5ObPcsEEwp4yt+2Sem5L9PmvoIvI2e88jOFbtNBP16bLpQpD4+75wL\n+2X+0C9LapmTadc9cc71Q79y7xWRFZ0od3ufkTiLROS1duz3ZPSal6eU/3XUMf0AP99GIL8Le2kc\nDawWkUbLgv8c3IY6LB+Ykv8JEWnLegE09qw6EhW2cZ70p6cmLatFhdRBzrleze1LtGb8N3Cccy4/\nadXpwHsisiRlk1dFZHHS9rPwRZxfNodaWZ4RkU/bcz7J+NawnWh6blOAfug5d4S4RbCwhfWPACc6\n57JQK1MUbUpqi8dQi8y3nHMFqKXu3x0sm9FFmMjITOLmzpb+vKnEv9aamCxFZA36ch/mL9oOrVDe\nRAVAPK1FTZ4lm1XqpowC5kkHnDqdcyVAL+CClPKVos0QoOboZJal/N7gT3t3tMAdYJOmHudcb+fc\nrc65uH9AKdpOLqiIaIn23pO4aOqss297n5E4zTZnNcP2wFFser9eRc89fr/uRJuYXvC7It67mYJj\nGOr7kcpc9Hqmns/iDuz7NFQgzXTOjXLOjQLiovGMeCZRB94rUMGzxjn3lnPu535TSDIPoZXmtwH8\nLqO7+ctTSX2eQZ/p+PNcgn6EdPY5OBMVB4uTzq0ebeo5o9UtN6XAn7b0MfQo+uwfg4qq50Skuq2d\nisg61LfqdPSjI4D2ZjG6AfPJyEBEpNI5txL1XejQpm2sD/h5zkTNo6mkuytpW8RF879Qk3BzfJ7y\nu6WeDmnpZeFT28yyx4G90eaHz9AXeQBtV27tY2BL35O2npE4zZ1jcwRQQfFnmr/m8wFEpNQ5NwH9\nWj7aT+c45x4UkXPaeazNob3nA4neFu+lLNf2D+eGx60NInKrH7fhBPTcrgZ+5Zw7WEQ+8/PMdc5N\nR+/xv/xpPfrMpJLu5/k0tIluTspyAUqcc3kiUtPOfcXfT6n+GLpDkdXOubfQJrx9UcHQXh5Be64M\nAl4UkfZadY0uxkRG5vIccL5zbi9p2/lzCfqy356Eg17cibKXvx7UgdEBpSLyRtcXuQkLgD2dc0Fp\nf5fHUvSrKNjF5Wtvxdqp/L6p/BDgtyJybdLy7dqxeXvvyUJ/2pbwbKns7X1GOsoCoECSYqm0WDDt\n4vy8n3DO/R24wDl3jYgsbHXjTVmCmv1TGZe0vsP4XcfjzqjTUlYHUJFwOupzAoBovJhbgFt8y8Bn\naMV6VtK2DwE3OecGok6Nz4tIavfw9lCKWjo7+gESj3EzBPWj+TJldW/UwfcEmjaltMZZqHXs1Vby\nPIL6WZUBL3aguP9FmyX3Qn2bjG7CmksylxvQLor3+BVBE3xT5yX+zxfQiuonKdkuRyudeL/0l9EX\n1JV+O2nqPvt1UdlB27BLgIvau4HftPIkcJJzbsfU9ZtRvmpab7JoLn+zbewtEBdRqf/Hy2hbsLTr\nnvgm5GnAuc65bVvZX9wcnVr+9j4jHeUxYB/n3BGpK5xGlQz6832a2XaWPw134rgvAAOdc40VkH+s\ni1Gh+lYn9glqZRDgRhF5KiU94e/3DP94uX7sh2QW+cdPXT7Fn96K9kLqVNRS38fjaeD/nHOt+fo0\nR7yp5C/NnNu9qEWiXU0mzrlfos15j4rIglayPoF2/f6xdCCOjt+s8kN/22fbu53R9ZglI0MRkYXO\nudPRds25zrnkiJ+TUIe7+/28nzvnHkS/CnujL8K90C+Np0TkLT9fpXPuR+hX1Qzn3KPol9FQ1PHv\nHbTLXJzNMdE+5B//ZufcXqhzYAFwKPA3EWnpxREP8vOhc+5u1KzbB23DPgR1UOso04FTnXM3oV3/\nqkTkuTbyH+acuwyNe7BIRD5qKbN/XacBv3DOZaOxC44AhtPGNezgPbkEvY4znHN3oRXaCOAY0QBJ\n8bI74Dp/Xw2ok2C7npFOcCNwHPCcc+4B//j5aG+WE/1rUIaK5T7AG2jvoeGoAP1UROZ24rh3oV2E\nH3DO7U6iC+s+aDTaNtv+W+AMYGYrzrXPALf7TT8CvO6cewx9TqPoOfcnISoAFYnOuZf8Mm4gqTtr\nJ7gSreCn+c/BXDRuxsloT6ZNurD6z+WJqGNpS8HgngEucc7180UtQJZzLi48clBfl+NQK9Lr6D1o\nEb8sV7fzvJr8V0Rki4SPN9qgu7u3WEpvQh0o/0EiyFM52k3vIpKCKKFf0b8hEWhpMXANEGpmnweg\nL7ky9Mt3PhpDYdekPJ3pwvp6yrIw+oKJl2kFKpqGJ+WJoc0Mydv1Q83Vi5O2ewU4NynPgf62J6Zs\nO8xfflbSsjz0y3G9v67V7qxorIk30a++GIlgXM2eu79uEPrVtt6/rlPQQE1Nzo+ULqwduSd+vnFJ\nx6lGK7ffpeS5Eu022UDT7rLtekbQppn/tXBtFqI9XJKX5ZGIrVKL+pa8jVpNgn6eb6Pm8lV+nkXo\nWCT92/EfaLY8/nNyj3+8eDCu77bwPFzWjuPs6uf9XSt5hvp5/oI2MdyGOmFW+PfuvdRnMmnbeBCq\nO1tYHwNubec1H4J+ZKxGLZ5foVaSZoNx+dc/Bpzdyrkd4Oe5yP99v/87nirR99BjwAkt7ONN4LM2\nrvMm/11aeN+091mwlL7k/AtvGMZWgHPuXNShbVsRWdnd5TG2HM6541Bfg/1FJNWp1DB6JGn1yXA6\nGuVHzrkK59wa59x/nXOj29jmQNd05D7P6Uh/m/gVGMY3kMGomb1dMRuMjOIC1IpmAsPYaki3T8b+\naMjeT/xjXQ+84pwbJyKtdQkT1OTc2O1IRNams6CG0ZPxRfYpaBv2eyJio0l+Q3DOnYb6qBxNU58n\nw+jxbNHmEt/TfS1wgIi800KeA1Hnrt7SjAOSYXwT8f8XL6DjMlwgrXvkGxmEc85DP7geBX4kW/Go\nw8Y3jy3du6QX7TP1OjRaXg7aI+L3ZiI0vsmI9t7IbzOjkXGIiIUaMLZatpglw4+Z/yxQKCKp4wIk\n5xuNeg9/gvYuOB8dhXBPEZnZTP6+aKS8xajHu2EYhmEY7SMH7RL+soisbyNvh9mSIuPvqBiYJCKr\nOrjtVGCJiJzdzLrTscFvDMMwDGNzOENE2huttd1skeYS59wd6CA3+3dUYPh8hAaQao7FAP/6178Y\nN25cC1mMrY3LLruMW25JHfDT2Fqx+5lZ2P3MHObOncuZZ54JHRsEsN2kXWT4AuN44EARWdrJ3UxA\ng/A0Rx3AuHHjmDixo1FyjZ5KcXGx3c8Mwu5nZmH3MyNJi7tBWkWGc+5OdDCf44DqpCGMy+Nd8Jxz\n1wHbxJtCnHOXotH8vkDbis4HDkbD4BqGYRiGsZWQbkvGD9HeJFNTlp+DjrUAGk45ecCmbOAmNOhQ\nDTo096EikjqioWEYhmEYPZi0ioz2dL0SkXNSft+IDppkGIZhGMZWjPW/NnokkydP7u4iGF2I3c/M\nwu6n0V5MZBg9EnuJZRZ2PzMLu59GezGRYRiGYRhGWjCRYRiGYRhGWjCRYRiGYRhGWjCRYRiGYRhG\nWjCRYRiGYRhGWjCRYRiGYRhGWjCRYRiGYRhGWjCRYRiGYRhGWjCRYRiGYRhGWjCRYRiGYRhGWjCR\nYRiGYRhGWjCRYRiGYRhGWjCRYRiGYRhGWjCRYRiGYRhGWjCRYRiGYRhGWjCRYRiGYRhGWjCRYRiG\nYRhGWjCRYRiGYRhGWjCRYRiGYRhGWjCRYRiGYRhGWjCRYRiGYRhGWkiryHDO/co595FzrsI5t8Y5\n91/n3Oh2bHeQc266c67OOTffOXd2OstpGIZhGEbXk25Lxv7A7cBewGFACHjFOZfb0gbOueHAc8Dr\nwC7ArcA9zrnDWzuQSNcU2DAMwzCMriErnTsXkWOSfzvnvgesBXYD3mlhsx8BC0XkF/7vec65/YDL\ngFdbOlY0utnFNQzDMAyjC9nSPhm9AAHKWsmzN/BayrKXgX1a27GJDMMwDMPoWWwxkeGcc8BfgXdE\nZE4rWQcCa1KWrQGKnHPhljYykWEYhmEYPYu0NpekcCewAzApHTs3kWEYhmEYPYstIjKcc3cAxwD7\ni8iqNrKvBgakLBsAVIhIfUsb/frXl3HrrcVNlk2ePJnJkyd3osSGYRiGkVlMmTKFKVOmNFlWXl6e\n1mM6SXO3DF9gHA8cKCIL25H/T8DRIrJL0rJHgF6pjqT+uonA9Oefn84xx0zswpIbhmEYRmYzY8YM\ndtttN4DdRGRGV+8/3XEy7gTOAE4Hqp1zA/yUk5TnOufcg0mb/QMY6Zz7s3NujHPuQuBk4ObWjmXN\nJYZhGIbRs0i34+cPgSJgKrAyKZ2alGcQsG38h4gsBo5F42rMRLuufl9EUnucNMFEhmEYhmH0LNId\nJ6NNESMi5zSzbBoaS6PdmMgwDMMwjJ5FxoxdEot1dwkMwzAMw0gmY0SGWTIMwzAMo2dhIsMwDMMw\njLRgIsMwDMMwjLSQMSLDfDIMwzAMo2eRMSLDLBmGYRiG0bMwkWEYhmEYRlowkWEYhmEYRlowkWEY\nhmEYRlowkWEYhmEYRlowkWEYhmEYRlowkWEYhmEYRlowkWEYhmEYRlrIGJHR0NDdJTAMwzAMI5mM\nERmRSHeXwDAMwzCMZExkGIZhGIaRFkxkGIZhGIaRFkxkGIZhGIaRFjJGZJjjp2EYhmH0LDJGZJgl\nwzAMwzB6FiYyDMMwDMNICxkjMiwYl2EYhmH0LDJGZJhPhmEYhmH0LExkGIZhGIaRFtIqMpxz+zvn\nnnHOrXDOec6549rIf6CfLznFnHP92zqWiQzDMAzD6Fmk25KRD8wELgSkndsIsD0w0E+DRGRtWxuZ\nT4ZhGIZh9Cyy0rlzEXkJeAnAOec6sGmpiFR05FgmMgzDMAyjZ9ETfTIcMNM5t9I594pzbt/2bGTN\nJYZhGIbRs+hpImMV8APgJOBEYBkw1Tk3oa0NY7E0l8wwDMMwjA6R1uaSjiIi84H5SYs+cM6NAi4D\nzm5t2+XLL+O444qbLJs8eTKTJ0/u8nIahmEYxtbGlClTmDJlSpNl5eXlaT2mE2mvP+ZmHsg5DzhB\nRJ7p4HY3AJNEZFIL6ycC04cNm87ixRO7oKSGYRiG8c1gxowZ7LbbbgC7iciMrt5/T2suaY4JaDNK\nq5jjp2EYhmH0LNLaXOKcywe2Q505AUY653YBykRkmXPuemCwiJzt578UWAR8AeQA5wMHA4e3dSzz\nyTAMwzCMnkW6fTJ2B95EY18IcJO//EHgXDQOxrZJ+bP9PIOBGuBz4FARmdbWgcySYRiGYRg9i3TH\nyXiLVppkROSclN83Ajd25lie15mtDMMwDMNIF1uDT0a7MJFhGIZhGD2LjBEZ1lxiGIZhGD2LjBEZ\nZskwDMMwjJ6FiQzDMAzDMNKCiQzDMAzDMNJCjworvjmYyDCMtvE8eOABWLMG9t4b9tgDCgq6u1SG\nYWQqGSMytlB0dMPYaikrg7PPhueeU2FRVQWhEBxwABx2mP6H1q+HgQNh331h/HjIyYFAADZsgHXr\nEqm6WrdNTdnZifmCAth+e93eMIxvJhkjMsySYRgtM2cOHHMMVFbCs8/C0UfDl1/Cm2/C88/DNdeo\noOjTB1asgNrarjluSQkceaSKll12gZ12gsLCrtl3JiMCzrWdzzB6OhkjMsySYXzTWLkSPv9cQ+pn\nZUH//jBggFbsoVAi38cfq6gYPBimTYOhQ3X5jjtquuiipvttaND9zp+v87EY9O4N/folUkGBrktO\nkUjT3+vXw+uvw8svw6OPJrqZjxgBEybA/vvDQQep8MjKmDfR5lFfD9dfDzfeCH37wtixsOeecMQR\n2rSVk6PiIxpVS1RenlqPUolEYNkyWLJEt9lrLwgGt/z5GMYWG4U1XcRHYYXpxGITzTRrfCOYMQMO\nP1ybQJqjTx8VHAMGwCefaEX+/PMqFrqD+nq1nHz2mQqY6dPhgw+grk4rygkTYPfdYbfdYJ99tJll\na6KmBp58EubNU2tRXZ02EwWDOg0EVHhVV6sAyMpqmoJBnb78Mnz1FVx8sYqDOXPgnXdUsIEKjOxs\nvZ5x+vdX4Zebq/tZvhxWrWr64TVwoFqyCgrU6huL6XTAAF2+xx5Nm7VENNn7NPNJ9yisGSUy6uom\nEg53d4kMI71Mn64+FNtvD488opV0QwOUlqpDZ2rq0wduuAHy87u75E2pr4ePPtI0fbqm+fN13eWX\nw3XXNf+VvqVZskQr/xUrtLKPxbRCz85OWGz++1+oqIBhw7Q5KCenaWUei6l1KT9ft4vF1BqRmoYM\ngZtuUlEYx/Pg009h9my9ZvX1KhYKClTQxMtVW6v7GDxYyzF8uE5LS+GJJ+CNN/S4yeJn4UL1tyks\nVJETiSQsUqCiJlkM5ebqOeTn6/Hj8/n5en5xQZWcgkEoKtLnsG9fnebnq+CqqtJziKfk3zU1KooH\nD9b8InotPE/nS0p0XU6Olrd3b7WObS3CKH4+sVjieUiexud79dLrly5MZLRBssiorJxonvJGRvPR\nR2o6HzcOXnoJiou7u0RdS3k53HMP/OpX6sNxwQX6FR4MNhVOpaVaWY0cqRVzr176e9tt9at+/nyY\nOlUr0MGDtXKrrNT99+qlywoKtMKOV6xVVfDee1oZb9yo+6mtVctLMKhf/X37amVbW6sVWyikFe8x\nx8D3v69NQVsT0ahalN59VyvnuPNudrYKjGQx1NCg511dnRAIyfNxQZWcRHTbigoVQhUVm5YhGFSR\nU1io9yQ+n5enlrqVK/W4ziWEi4g+A8kWHYDttoPzz9d7FRdLkYiWLRhsmjyvqahqbr61dcnzzYmD\n9ixrD7ffvmmTZldiIqMNkkVGWdnEbjMHG0a6+eADdaIcPx5efDG9XzfdzSefwDnnwBdfNDX7x5uB\n+vXTXi4LF25a0WRl6Ys8Xnlt3JhY51zr/luDBsEhh6gIWb9e8x55pPq0ZPL13lI0NOj9qKpKWGPi\nfiYdRURFZH29iqN58+DOO+HxxxOWmLhoCgYTFXs8BYNNRVVH5lOXxZu84s1eydOW5tu7fty4hB9V\nOki3yMgodysbv8TIVN57D446Sr/uX3gh83to7L47zJql/+l163Tav/+mzSeep5VWebmKgmXL1Cdh\n++1h0iS9TjU1mqeoSM3uFRWJHjThcKKyyMlRAWO9OtJHKKTNHCUlm78v51R0xunXT+/5/fcnmnns\nXnY/GSUy4urVMDKJd97RL+mJE9V585vUJJiVpc0lLREIaEXTp482Vey++6Z58vI0xSkuzrxmJiNB\nT/DjMRJsJS4y7cNEhpFpTJumFow99lALxjdJYBiGsfVjIsMweihTp6oFY599NEpnT+sdYhiG0RYZ\nJTLMJ8PIFF5/XXss7LcfPPNMU3O/YRjG1oL5ZBhGNxONaiyGOXM0OueLL2rMiCOP1PgLOTndXULD\nMIzOYSLDMNKIiPb1X7o0kRYv1qiOX32lMR82bEjk79NHI3lefDF85zukJbjcZ59pmSZM6L4IoIZh\nfDMwkWEYm8mSJfD11wkRsWxZU1GRPNhYOKwBo0aP1qBagwdrd74hQ3QckcGD09ftbuNGuOIKuOuu\nxLLttoODD9ZIiXFB1K8f7LorjBnT/JgiIk3HKnEuEUEyGEwEcXJOA1UZhvHNJaNEhvlkGOlgxQqN\niFhbq00X9fU6NsTXX6vvxKJFibwDB2rgnKFD1aciPj90qIqLkpLuCXs8dSpMnqzRGe+4QwcmmzkT\n3n9fz+HuuzVfbm5TURQPIx2LbRpyuj1MnKjNPjvvrEJq+HDYZhuLX9AaS5bAffdpdNHRozU2yqBB\n3V0qw+gcGSUyIpHuLoGRCcyfDw8/rD4SM2dqVMlUevVS0XDssTqOyPjxWoluqbFzRDS64ccfa1yA\n3FxtaunXTyun5OkTT8DPfw4HHKDntc02uo8dd4QzztD58nIVUOGwWjxmzoQFCxKho7Oymgauiqes\nrE3HYBBRi0ZNjQ4lf++9sHZtouwFBTq66LhxmnbYQacjR269o7F6nkZknT07MZZI6hgeWVmbRozM\ny0uM/ZGXB2+/rWOXhMOJcUpAn7Xx4zWgWHysmkhE71mfPhp0LB4qe/16vd7xlJurz+hBB+l8/H6J\naPCx8eNN9BnpI61hxZ1z+wM/B3YDBgEniMgzbWxzEHATsCOwFLhWRB5sJX9jWPEXX5zIUUd1VemN\nbyIrVmhMikhEmwx23FF7eBxwgPov1NUlBorqLior4Xvfg6ee0iG8PU+FQFlZIjpmKj/7mQ4h3l2V\neEWFRuLrogU3AAAgAElEQVRcsADmzm2a4uNZhEIaqXPXXeE3v1Eh0hOIRlV0LVkCq1erIIuPeVJf\nrz41L72k6wIBtTr07avbxsfwiAuw5DEx6utViCW/gnNy9F5dcYU+Y0uX6oi7H36oPjyVlXqv4yKv\ntlbve2WlHgdUWPbvn0jr18Mrr6j/T3MMGtS8AEmdF9F7lJOTSKFQ06azSETzxQVVfGC1vDwVQn37\napNgv356PZK3jc/X1KilsLRUt+vbV0WXiIqheDjy+CBt8dSvn/XC6gxbe1jxfGAmcC/wVFuZnXPD\ngeeAO4HTgcOAe5xzK0Xk1ba2r6nZnKIa33RqauD44/WlOGNG85EmQ6EtX65kFi2Cb31L/T7++184\n4YSm60W0wlm/XgXH+vVqddl77+4pb5yiIrVY7LAD/N//JZaLaIWSLDpefFGbCK64Ak46Sbf1PP0q\nLy3V6fr1WvmMHKmWmd69NcXvT1mZWhY2btQmquLihGWgd2/dJj+/aYVfVaW9euJDqxcW6rV8883E\n+CehkO4rHE6kvDxtijrpJBV9HRFyInrs+EBjhYVNnXFHjNB00kmbd/09T0VS3FcmnhYsUIH0/vua\nJ3ldINB0HlQI1Ner2K6r02uXOqaHc01Hlm1o0P9WZWXzA6Q1R2GhCqTaWr0X9fVtjzsTCmlcmZNO\n0muYLOhE9DkqLNT9NDeQW/LveLmTU7IYamhIDAiXLMaSB5RLHWm3oaHpfj1Pn514gL1UsRaf/uQn\nm3//u5O0igwReQl4CcC5dhnkfgQsFJFf+L/nOef2Ay4D2hQZdXWdLanxTSYahbfe0uHQ585V/4vW\nQll3Fx9/rAKjsFC/bMeN2zSPc/oyLSraOkYEdU6/bAcPhkMP1WW1tWp1+dOf4Jprmt+uVy+tsOJf\n73Hy8/X6rF7d+fKMH68iZN06bYK47DJtbhgzRpsmurJpwbmEVSBu/UgHgUDzz8OIEXpuW4q4P9P6\n9SrGmht0LDe3ZYuE5+nzUVWVSPFRYOfMgf/8B84+u2vL7JyWLTnFB12LN4XFxVjcchMf4Cz1d3z7\n+KBwNTUqnJ1reg0KChK/t/aB+XpaC+jewGspy14GbmnPxiYyjI4Sr7jXroVhw+Cxx7RrZ0/j2Wfh\ntNPUgfKZZ7pmgKmeSm4uXH01XHihWmwqKvQlXFKiX7fx4dYjEe0OvGqVNlnEU3m59prZd18Vi6Wl\nuixueSgr02axmpqEn0k4rC/+HXe0br3pJBxW59/hwzu3fSCQ8GEZMKDpuiOO0K/+9evVipBcaYuo\nEKmsTOwneej45N9xsRDfPhjcnDM2eprIGAikthyuAYqcc2ERqW9mm0ZMZBgdYf16OPlkFRcvvKA9\nIXqiA9ydd2rcjOOPh3//+5vTLXTgwNYtStnZ2vti9OjW95Majn3ECNAmaCMTackiFB9Iz9iyZFRY\ncRMZRnvxPPjud9XU+sQTWun0NIHheeqX8OMfwyWXwOOPf3MEhmEYmUFPs2SsBlKMYAwAKtqyYsBl\n3H13MVOnJpZMnjyZyZMnd20Jja2atWt1sLH//AdefVUtGEOHdnepNqWuTnuQPPYY3HKLmoENwzA2\nhylTpjBlypQmy8rLy9N6zJ4mMt4Hjk5ZdoS/vA1u5tRTd+MPf0hDqTKMeBfHrTUmQXuJRmHePI1z\nMXu2iov3/Sdp333hX/+iR3V5rqqCzz/XMv7nPzBrllovtmbPcsMweg7NfXgndWFNC2mtZpxz+cB2\nQNwQPdI5twtQJiLLnHPXA4NFJO4P/A/gx865PwP3AYcCJwPHtH2wROAao2Xq6nRsjIUL1Xv/jDO6\nJwJlOvnkE41g+eST6ncB2i5/+OEaSfHYY7vHcbK+XmMdzJ+vjofLl+t0xQrtSrhsmebLzdWukG+8\nocO8G4ZhbK2k+1t2d+BNQPx0k7/8QeBc1NFz23hmEVnsnDsW7U1yCbAc+L6IpPY42RQnJjLawPPU\nBP/JJ9pt7ayz4NZbNfjPSSc1HwNi8WL4wx/glFM0THY0Cr/6lfZweOutntfVc/p0DZ41aBCcd56W\nefvttZzp8rmIRBK9Glav1msWT0uWaO+GsjJdF4vpNuGwdpOMp7331i6pO+6oPUi6Ox6HYRhGV5Du\nOBlv0YpzqYic08yyaWiE0I4RMJHRFlddpW38cRP8tGkqICZP1jgFP/oRXHCBdhOMxbQnw0UX6fwD\nD8D552ul+frr2o/7ggvgf//Tynv1au0SOHJk953funV6XjvtpOGZu2KIdBE9548/1uaMYFCdRVes\nUBExcyZ8+WVCPMTp3z/RVW+HHdSrfZttdH7MGI1O2NMcTQ3DMLqazGmVt+aSVnn4Ybj2Wg04FW/j\nP+AAFQyzZ+ugWdddp8GPhg7VirWhQXtg3Hab+gj89Kdacb/8sla4J5yg4iMWg0svVZGx3Xbq53D0\n0RqqeEuF+a2pgdNPVwEwbdrmCYwXXoD779fmjIULm467AerLMmiQjiex//4qxAYP1kiQJSUqLCy8\nsWEYRprHLtkSNI5dkvMhZ568Jw8/3N0l6nm8954O533mmXDPPS1/QZeVqWhYsUItErvsok0PcVas\n0C/5eBPJOefAQw9pM8x552lQq5de0rDQS5ZoRX/VVfCLXzQNaPP882oFufVWjVOxOTQ0qIC66ipt\nlnjhhUTkyM4wZYoKqwkT1CIydKiOZbLnnmqN8Dw9FwvQYxhGJpDusUsQka06ARMBIe9DOfVUyXhi\nMZGf/ETkmmtEli5tO//ixSIlJSL77y9SX9+1Zdm4UeTkk0Uef7zpcs8TmTtX5Gc/E3FOZL/9RN56\nS2T9epG77xYJBkUGDhTJyRF5//2W9//CCyIffbTp8kWLRK64QmSvvUTCYR266TvfEfn6686fS3W1\nyB13iAQCImefLRKNdn5fhmEYWwvTp0+P+0xOlHTU0enY6ZZMjSKj4AM5/vjNutZbBbffrnctN1cr\n8KOOEnnsMZG6uk3zVlSI7LSTyIgRImvXbvmyiohMmyYyfLhI8liOF16olfqkSSL9+4ssXLjpdu+9\np2IkGBT5059UID37rMgJJ6gQ6N1b5MwzRW69VeTzzztfvmXLdJ+5uVq2H/xAhZxhGMY3gXSLjMxp\nLil+n6P33ZsXXujuEnUtIgkT/aJFasI/6yztfvrYY9ol8/33dcCoAw5QH4EDDtCmjpNP1h4g77+v\nvRa6i0hE41XMmaOhoE84QZtsSku1i2YwqCNfxruVlpdrc8XAgdrMc/316uNQU6Pn/+Mfa9NParjo\njlJaqteqqkojah5/fNshqg3DMDKJdDeXZI7I6P0eh+++D6+80t0l6louvBAeeUSdGmfPVl+H2bN1\npMk4c+eq4Jg2TQVFba12gYzFdGCtY9qOMtJtfP21+n1ss40OqR2N6jm/+KL23BgxAl57TcXSiSeq\n+OiKXhkbN2o33uXLtSfK9ttv/j4NwzC2NtItMjKnd0nQIxLp7kJ0LV99BXfdpUGk/vc/WLlSe3Yk\nCwzQ+Aq/+53ORyIwY4ZaBsaN69kCA7Q3yssvw4EH6kBlGzeqiHjkkcTQ1IcdtvnDUcdiGk3z7bfV\nOfXNN9Ux9a23TGAYhmGki8wRGVna0yCT+MMftMngv/9Vy8SyZW0PkZydrYGd9t675TwPPqgWkQsv\n1HgN3c0uu6i14tFH1VKx336dHwoatInps89UvHz8sXZD/eorbRbJztb9X3utNif1xHFLDMMwMoUM\nEhmy1YqMykptNhg1CoqKdNkXX+jX/J13JmI+bE7FG+fmm+Hyy1W03HCDdiW98EK1KDTH11/DjTfq\nWB9nnKF+EVddpU0zzz+v8SK6gt1317S5rF+vVo+ZM9WPY++9tQvq5MmJ+a4I0rW18m55OdcuWUJZ\nQwNj8vIYk5fH6NxctsvNJcs5YkCfrCwGh8MELVqYYRibSQaJDK9x4K908uijam5/4IGu2+fll+tY\nG6CV9ujRWlkOGwbnntt1x7n+erjySk2XXaZxKv72Nx3l87DDND7EccepE+n69Wrx+M1vtLK+6y7d\nvqJCU26uhhp/4w0VLI8+qo6Uhx8OY8d2TzTLqiptHlqxQu/RQQdp+G4Dvqiu5mcLFvBSWRk75+cz\noaCA+bW1PLt+PRua+eNkO8fgcJheWVkUBIPUxGJUxGI0eF5jnlRvrtTfIecYn5/PHoWFjMrNpX92\nNoOzsxmRk0OOBRpplgbP46l163iitJTiYJBhOTmMzstjp/x8RuXmku0crh1/rgbPoyoWo9bzyAsE\n6GVx6o1uInMcP7ebyvicA5k1K33HWrxYezdUVanD4DbbbP4+PU+FxVFHaQU9f35i5NArr4Rvf3vz\njyECV18Nv/+9NsH89rcJEVBbq2HG775b/ThCIY1cuW6d5rnkEm1amDtXp3l52rNlxQr1ozj1VPUV\niYuNhga9LocfDkccoc6aqRW9CHz6qTaTdFVds3q19rr54AOYOhUmTuya/fZk3tywgZlVVcREECAn\nEGiSsvybPHXjRv62YgUjcnO5dsQITi4pIZBUUa2LRFhYV4cnQsA51jU0sKiujuX19ZRHo1TFYuQH\ngxQGg4RbGE2vuWqvJhbjs+pqPqmsZGOSkHHAkHCYUbm5jMrJYWhODkPCYbYJh9kmO5uhOTkU9eAh\ngqOeR43nUet51MRibIxGeb+igmkbN7K8vp46z6PO86gXod7zEHRsBQc453D+74BzZDtHOBBoTPNr\nalgZibBnYSEesKSujtIkE20ACAcCxERoECHkHPnBoKZAgFAgwNpIhNKGhiaib1RODjsXFJDtHAJ4\naPiCwqwsRufmMiInh3AgQNA5gs4RgFbnG6fOEUyZD/h5k+fj+fMCgTYFpojgAVGRdosqo/NY75I2\naBQZY99kjBzEl1+m5ziepxXnvHlaqd57r0a8bIspU2D8eBUnzfHBB9qN8+23m0bXbI2331ZfinHj\n2s4rAr/+tVohrrtOBzdriRUr1P9jwwa1Ruy6a8vNKKDRQ88/Xy0ud98NkyZpM8qrr8Irr2gvmDFj\nNGR53HFzwwZtonniCe0x8+CDnRtyXkS79H76KTz9tIY9D4d14LaDD+74/rYmFtXW8tMFC3h63Try\nAgGy/Yq/3q/4UikIBvntsGFcOmRIiyIhnYgI1bEYaxsaWF5fz4LaWr6urW2cLquvZ21SRRoETiwp\n4SdDhrBXUdEmzTYRz6MiGqU4K4tQK+cTr6ySt4+JaIXfQsW1LhJhTk0N5dEoWc5R7guIjyorWVlf\nT2lDQ7PXOMs59iwsZLvcXHJ9wZDj3xuHP0KkLwbjFbznn0tcjNR5Hn1DIc4fNIidCwoa972+oYFZ\nVVUsra+n1vOo9zyCzpHlHA2eR7XnUR2LUR2LERGhfyjEoOxsemVlkRcMUtbQwPSqKuZUV+Phix0/\nbYhGmV9b20QEppvcQIDCYBAPvR8xEaL+NIaKi+TrWhwMkpNyn51zFASDFAWDBJ2j3vPICQTYrbCQ\n3QsLyfeFTGr9Ju2Z74JtYqg1qUGEiEjjfIMIEX8+JkLQOUL+vQwFAo0DfSXv7Yjevdk93o6eBkxk\ntEGjyBj/OqNqD+HrrxPrRGDWLP1C/+IL7YHRv3/njvP3v6vvwquvqoVh1CgVEK1RXw+9e6vZvqX4\nHVdeqU0Ra9a076v+tdfUQiCiloBTT9Why3feedMmChH4+c/hpps0/fSn7TrVDvH22ypGkt6Jjcya\npTEt3n5b43SMHKkOmRUV8IMfwF/+ouV/6KFNhUY0qlaUXr0STTag1+nuu+Ef/1BRBCqELrxQRV+v\nXl1/jj2FBs/jpmXL+MOSJfQLhbhp1ChOKSlpUmGK/yKr9TyifjCc/GCQ3B7ePBHxPFZFIqyor+eT\nykruWLGCr2prAcj3K+2Y/8KOV/IBYHA4zMDsbAp9S0tBMEhuIMDXtbXMrKqiPBZrXBZvPgiiwisc\nCDRW+AI0iFCZOtIdagXYu6iIYTk5lIRCjZV3XiBArn/M8fn5jRXb1oaINDaFxQAvqcJvbj5ZHMTn\nG6d+3uT55H3UxGKURaNURKONQqlxSsJiEvKn1b6lqD5F2HlAdSxGeTSKh1p3KqJRPqqs5Gv/uekJ\nZPnnEk/ZgUDjfJZzRH2B1ZAktOLWLlAheN3IkXy/q5zfmsFERhs0iowJrzF846EsWqTLRRJ+B1lZ\nWmk9/LAGceoM22+vjoMPP6yV3j/+0bYweOstFRiBgPYMGTx40zw77aSm/QcfbLsMK1dqhT5hAvzw\nhypyXnhBBwUbNEgtCfvso2nCBLjiCrj9dk0XXdS5895cRBIxPBYvVqfLm29W68eTT8Jpp2lwrn/9\nK9GsIqIjwt5zj967wYN1iPqpU1WwZGerE+q3v63Xo6cNN58O3i0v5wfz5vFlTQ2Xbbstvxs2jIIe\n3KSwuXgivLlxI4vr6qjwK5l45dMrK4uirCzKGhpY7DcnVMZimqJRqj2P4Tk57FpQQEkoREUsRm0s\nRmFWFoXBIPWeR2UsRkPcqoGa9QPA8JwcxuXn0y8UIiZCOBCgr/kzbFVURaM0JNVrqTarZFGevK6l\n+c5sE/Cf1a2hqcfGLmkjEQ8rvvurMmSI1xgq9YYbREDk5ps1hHVJicjVV7caXbVFqqs1hPd99+nv\nadN03x9/3Pp2V10l0quXjtHx5z9vun7hQt3PE0+0vI/LLxcZPFjk+98X2WcfnU8OEV5XJ/LaayK/\n+IWOTxIPjx0I6PSf/+z4+W5Jnn5axx85/HCRykpNV12lZb/vPpH580UOOUSv4THHiNx5p0hZWXeX\nestRFonIBV9+Kbz5puz1yScys7Kyu4tkGEYGke6w4pnzKRT0iPqWzsce05E/f/1rtWaAdv9cvLhz\nu547V7+u46G5995bmwdeeaX1bpdvvKEjgobD2hvl5z9v2qTx7LP6VX7EEc1v//HH+tV/zDHa5LNw\noQ7NHg+/DbrvQw9NjDza0KBBp95/X60vRx7ZuXPeUhx/vPYEOe44tVhUVurya65J+Ly8/rr6xHSD\nO0G3EfU87lm1it8uXkzE8/jb9tvzg8GDrVupYRhbFZkjMgJC1BPAcfvt6qR5zTWJ1SNG0NiU0lFm\nz9bpDjvoNBSCQw7RYE9XXtn8NlVV6tR5661a2T/yCHz0Eey1l/boeP99uP9+dVJMjeAJGqHywgvV\n1+Lpp7XZoLZWu462RigEu+2maWvhoINURD35pPpt7LyzNoMkk4kCI+J5rI5EWBWJ6LS+nuX19Xxd\nW8snlZUsqKvj7AEDuH7kSAZZX1zDMLZCMkdkZEHM9w0qLVVnyOSPvhEj1DLQGWbP1u2TnRuPPBIu\nvVS/vJsTCe+8o34ghxyiImPIEPjJT9Qn4f331Sm0b1/tDjp7Njz1lA74VVio/hWffQaffALvvptw\nimxLYGzN7LyzpkygKhpllS8eVvniYXXyb3/Z+hSP/iAwKBxmVE4OB/fuzZRBg9gjjV7lhmEY6SZz\nREZAiPoiY926TcNlDx8OS5dqxd9Rf7nZs7UbKmjzxXPPaQ+HaFTnJ0/edJs33lDz/5gxKnYuvhj+\n/GcdJfXPf1YLxvjx+oV+xBEJh8aqKm0aAA3Ete++HSur0fVURaMsr6+n0u8iWBGNUtrQwMr6eubX\n1jK/poYNfjyJMn+aTE4gwKDs7MY0plevJr8H+T0k+oVC1hxiGEZGkTkiIyh4nhCLQVnZpiJjxAht\nglixQns2dIQvvtDeDJ9+qj02olEdjnzSJO0V0pzIeP11tWJ88IEe7xe/0JTK8uXaLfWee1RUxGKw\ndq0Gl2pPHAyjaxERHlqzhidLS1laV8fS+vpmI2ICFAeDjPbDcu+RnU1+IEBvP0ZBPA3MzqY4K2ur\n8DI3DMPoajJIZHjEPA32JNK8JQPUL6MjIqO8XLufjh0LZ5+tfhnLlmnzxve+p/EeVqxoGv1z7lwV\nJD/4gUbyPOQQDXLVHP/+tzpvnnyyfxpBbS5JY7doowUW1Nbyw/nzeW3DBg7p1Yt9i4s5LRxm25wc\ntg2HKc7KItsPAlQSCllobMMwjDbIIJEBXkybSkBFRmmpWgl69UqIjkWL1NGwvXzxhU7ffVfFw8cf\nw1//qk6KH3ygAaMefhh++Uv1z7j6anX2HDFCBzurqNBh2hcs0ABeyYioJeTb304MjGZsWZbW1fGH\nxYt5u7ycr2prGRoO89LOO3Nknz7dXTTDMIytnszx2Q8KIgmRMXOmdjk9/XTtArrnntCnT8e7sX7x\nhVoXnn1WA0RNmAAnnQRffqkWjBNP1O6py5dr88nf/qajlM6ercGjhg1TB8/bbtt039Onq3A5++zN\nPHejU7yxYQO7TZ/Oy2VlHNmnD4+MG8fsPfYwgWEYhtFFZI4lIyB4XkJkXHKJRpK8/Xb9vcMO2nOj\no91YZ8/WppYFCxIWkMMP154mTz6pTSb//reG+M7PV0vHjjuq8+b//qciJy9PrR9XX62Dj4FaMe69\nV5tF4uN6GOllQ0MDn1ZVMaOykulVVTy2di2H9O7NlHHj6Jed3d3FMwzDyDjSLjKccz8GfgYMBD4D\nLhaRZjuTOucOBN5MWSzAIBFZ2+qBsgTxXKPIOPVUHX487m83Zow6hHbUkjF7NgwYoCIjHnsiJwe+\n9S31y4iPY5KfDy++mAgd/tFH6rx5wgk6tsaf/6yjnw4erE0v772n5fn1r7tuJNItSdTzyOqhwSvW\nRiK8W17OjKoq5tXUsCoSYVldHUvq6wHICwSYUFDANSNG8Ittt+2x52EYhrG1k1aR4Zz7DnATcAHw\nEXAZ8LJzbrSIrGthMwFGA5WNC9oSGKDNJV5iiPJx45rGyRg7VpsvOmPJGDdOfTqGDk0sP+kkOOUU\njcL58ccqMpI/hp9+WiNz7ruviojTT1erSkGBRgy9+GJtXjnkkI6VZ3NZUFvLWXPnsrCujuP69uX4\nfv2YVFxMcTP9ej0Rnl63jntXrWJCQQHnDxrEykiE3y5axPTKSp4cP55De/cGdARQEel2Z8iHV6/m\nR/PnU+15DAiF2DE/n+E5OexbVMTOBQVMLChgdF6edRU1DMPYAqTbknEZ8E8ReQjAOfdD4FjgXOCG\nVrYrFZGKDh0poE0Qa9fqNLV3xpgxanmorYVIpKkgaInVq3V/Q4aoFSO5XjrmGPXxuPNOuOWWTbd9\n+mkNlR2vc++4Ay6/XAVLd41r9eiaNVwwfz4loRCn9e/PM+vWcdeqVThgx/x89ikqYp+iIsKBAJ9V\nVfHc+vXMqalhz8JC7lixguuXLkWAnfLz2bWwkKM//5x/jB7Nivp6/rp8ORWxGLvk57N3UVFj2i4+\nfGoaERFmVVfzl2XLeHjNGs4aMIDrRo5kG4uSaRiG0a2krbpzzoWA3YDr4stERJxzrwH7tLYpMNM5\nlwPMBn4vIu+1dbygg5jnGof/Th2Zc+xYqKnR+aVLtQmjLe6+W5tGli3TrqjJ5OXpSKi33Qa//33C\n18LztHfJvHlw442J/AUFOuJqd7AmEuHH8+fz5Lp1nNa/P/8cPZqirCxuHjWK+bW1vF9eznsVFbxf\nUcE9q1YhwLBwmL2KirhnzBj2KS6mOhbjydJSCoJBTujXj5gI582bx/fnzSPsHOcPHsy4vDw+rKjg\ntQ0b+NvKlQDsX1zMlUOHcmSfPjjnKI1EuHbJEh70xcD1I0eS10HrR20sxrTycmZUVjKnpoZ3y8tZ\nVFdHcTDIg2PHctY3YVhWwzCMrYB0flP3QyMlr0lZvgYY08I2q4AfAJ8AYeB8YKpzbk8RmdnawQIB\nFRl+3dasJSPO4sVti4yqKnXWPO007T3S3EBoP/6xCol774Wf/lR7m3zve9pt9tJL1drR1dTEYvxx\nyRIaRNg5P5+dCwoYm5dHuAW/gmfWreOcL78k4Bz/2WEHTikpaQwM5ZxjTF4eY/Ly+J5/wcqjUTwR\neqcMb50fDDapvAPO8cDYsZxYUsKehYWNY2tc6AcMKWto4PUNG/jLsmUcPWsWeYEAA7KzKW1oIACc\nUlLCXatW8VJZGQ+NG8deKX14P6+q4rQ5c3DApUOGsH9xMa9v2MALZWW8uXEjdZ5HcTDIDvn5HNOn\nD//Xrx8H9erV4nUwDMMwtjw9qneJiMwH5ict+sA5Nwptdmm1o2ds2rXAvcyYob9//Ws499zJTPbD\ncW6/vS53rn1+GXffrTEuJk1SkdHcgGODB8N3vqOWi5120qigoZCOznr44W0foz1EPY81DQ0Mzs5m\nRX09x8+ezdyaGgZkZ/OXZcsAyHKOsXl57Jyfz06+8Bifn8/fV67kT0uXcnzfvtw9Zgwl7Wgjas43\noyWccxyfGvXMp08oxCn9+3NySUmj1WFNJEJOIMBF22xDv+xsfrbttpz15ZfsO2MGvxo6lKuGDycq\nwv/WreO8efPYPjeXEbm5/HD+fAQIOcf+xcVcM3w4x/Tty7i8PIukaRiG0U6mTJnClClTmiwrLy9P\n6zGdiKRnx9pcUgOcJCLPJC1/ACgWkW+3cz83AJNEZFIL6ycC0/O/+zTVDx9P794a9bO+flO/i5Ej\n1TH04ovh2mt1WXm59hS5914YPVqX1ddrj5FDD9Xuq3//O6xZowKlwfPYEI3S39/5jBkJAXLYYTra\navJQ7JtDRTTKYZ99xseVlfT2K/+CYJD/jR/ProWFlEejzK6u5vOqKmb508+rq6n0x84IAH8aOZKf\nbbttj62Mo57H9UuXcvWSJYSdo9ofuOU7JSXcO3Ys+cEgC2prmVdTw/7FxRR2l0OLYRhGBjJjxgx2\n00psNxGZ0dX7T9sbW0QanHPTgUOBZwCc1nSHAs2EpmqRCWgzSquEAlo5lZerv0RzH+1jx2pPkPjQ\n7aADmb3zDjzxRGLY9ilTYOVKjeL5858nnD5rYzGO/vxzZldXs3jvvSnIymLiRG026ddPu6h2pnNF\nTSzGoro6RuTkNPon1MRifGvWLObX1PDA2LEsq6tjXUMDvxw6lIF+00RxVhaTiouZFHcIQZ0gl9TV\n8a4BRJgAACAASURBVHl1NUPDYSY0N0RsDyIrEOC3w4fzrb59ebGsjCHhMKNzc9mrqKhRGI3KzWVU\nJg9BaxiGkaGk+7PwZuABX2zEu7DmAQ8AOOeuBwaLyNn+70uBRcAXQA7qk3Ew0GbjQ4GrYiPqeOn3\nqtyEMWM0fsXUqdDQoE0bb/pROV5/PSEynnwS9ttPRcknn8B556kF4ztz5vBRZSURz+PBNWv4se9/\ncMcdLZdLRNq0Ipz95Zc8UVoKwCB/NM5az2NVfT2v7rIL+ySJiLZwzjE8N5fhW1mlvGthIbv2cEFk\nGIZhdIy0igwRecw51w+4GhgAzASOFJFSP8tAYNukTbLRuBqD0aaWz4FDRWRaW8cqCiR6vLbgJsDY\nsdqU4nkqNiZNUpGRm6sBsurqtPvr669rj5F587SZZPfd4Sdff81LZWU8M348961eza3Ll/OjwYMJ\ntCIgPBEOnjmTo/r04VctjMr2QXk5T5SWcs3w4QwJh1lUV0dZNEplNMp5gwZ1SGAYhmEYRk8i7Q3c\nInIncGcL685J+X0jcGNzedui0CWcV4pG1fFUqfox9M7KoncoRL9QiDFjgniedjd99VV1Bp09W4dg\nv+EGjcJZX6+xNI49VptLtt0WDjrM44wZq/nNsGEc1bcvRVlZTPr0U14qK+OYvn1bLNPz69czze8e\nely/fuyYn596/lyxcCE75efzq2HDLECUYRiGkVFkjBddQZIlY/7BCznpi6ZBQgPAU0MnAL3YYQcV\nGTvsoOsuvhjuv18tGOXlOqjZypU69sijj8KsaAU1nsexvqDYp6iIPQoL+evy5a2KjJuWLWMP30Hz\nR/Pn89aECU2aTl4sK2NaeTnP77STCQzDMAwj48gYkVEY2NA4Xz2okp9vuy0XDBrEhmiUsmiU0+fM\nYYbbQFFRLwYOhGee0aic222nI6dOmqQiY80aOPpouOwy9cs49VS4eslGemdlMaGgAFC/h58MGcIZ\nc+cyo7KSic34EkyvrOSt8nIe32EHeodCHPbZZ1y1eDH9QiG+qqnhq9paPq6s5MDiYo62UT+NLYCI\nR1XVp5SVvUQsVkUo1J9QqITs7P6EQv1wTl8HzmUTDOY3JueyG8Wx9kbzEPFamQoiHs4FyMrq3WN7\nNvVERISami+pqPgQgEAgJyWFCQTCQCDpujo/6Xzq8kAgTCjUl2CwaJP72HQ/htH1ZIzIyA/Gm0uE\nqt617Jyf3ySk9d5FRXxYUcG4cer0GYupleKoo+BPf4KTT4YP9X9NOAxz5qjTp3Pw+oYNHNSrVxNr\nwyklJVy7ZAmXfPUVb++66yZ/1JuWLWNETg7fLikh6BxnDhjAH/1umtvl5rJ9Xh7nDRrERdtsY39y\no8PEYtWsX/8ikcgKnMsmEMhOmoab/I5E1lJW9iJlZS8QiawmGCwkFOpHJLIWz6tux9HiAc68Dpcz\nEMghHB5KVlZvAoEcgsECQqF+TVJWVjHBYAHBYKG/vg/h8Jbvdi0ixGKV1NevxPNqcC4Lz4tQV7eY\nurrFiETQoZUS+ZUYkUgpkchqPK8aEQ+RGAnRFUsSYbEUQabouToikVVEIqvTdIbx65k4B+dCZGcP\nIjt7ABp1wCFSTyxWhedFcC6ICpGAPw3iXIBAIJesrD5kZRUiEsXz6huTSD2eF2ky71zAF6shAoEQ\nzoX85zM+H/KfWQ0CGI1uIBrdiHNZBAK56DMY869fzL++yb+jOJflC+YSAoHcxv01/X+E/HvXVBTH\nBVn8PjT9HWhxXUKsiT8fTzS5XvH55q5lW+sKCnYhN3dk1z4KW5DMERlZvsgICARgu5TeFXsXFXHL\n8uVcdKRw262OUaN0ZNVoVNfHR2fNzVWn0KOOgokToToW44OKCm5JCREaCgS4Y/vtOeSzz3S8DD8a\n5pK6Ou5ftYrH1q7l5u22axQm944Zw3UjRrBNONyqs6hhtIQKixcoLX2c9eufw/NqCQTyEIkgEm11\n27zccQyoP4A+X/ai+O0yAjUN0Ls3sX4FNPQP09DL6T4iEbyCMLF+BXjFYWKhGLGsKE6AmIfz/GnM\ng5j484KLCUQ9/3cMYoIQI1JYT11+NbGcGLFsiAXqqa39ioqK92loWEc0WtZsebOy+lBYuAehUNPm\nSJEYsVglsViVX9nl+KIq3Pil71w2DQ2l1NcvJRotb6FS2vS3SBSR+mbLEwwW+JUdbGo1cIRC/cgO\n9iMoeTiyQBwuXjmJw0kAXAAXCEJWCBfIgkBQQxUHnH7NOEdWNIdey/tS/JmHc9l4+SFNeVl4uUFN\nOQHICeuYB+GwzmdnIyH/dd4QgZpqP9UQ8+qI5kSIZke0/osJzvMgBl4wQn24kohXRlwMqRhUC1bz\nQskjFqsmGt1AJLK6sRKPi9e4tUWXh5P204DnRRBp8Ocb/GdX53VdVeP9z8kZgUgMz6v1LWPBxgTB\nTX6LNNDQUEokssoXPBFEIo3T+PH1vgWaTOPWt7hIaCoYWlsXSBIfyfOpQqbp9YuL0GTB1xLbbXc7\nQ4Zc1Ga+nkrGiIy8uMgI69dBalyFvYqK2BCNsvsJtZRfncd++6nImDVLI3dOn65OnqNHa7PJQw/p\ndu+Wl9MgwiG9em1yzIN79+Y7JSX8YsECspzjodWreWXDBvKDQc4fPJjzk2KbZwcCbJuTk56TNzKW\n+vpVlJW9wPr1z1FW9gqeV0NBwUSGB8+l5G3IXVADgQASDCAhh5clSAi8LPBCIEEhuGI94cfegPK5\nOojOhAlQVATz5hF8v4zghg3klJdrkJdwGCorE+o7HYTD0KsXFPdDeo8iVpJPtF8+sb55xHqFaSjJ\nonJEA5U5pUS8lYk63VNRE/TC5EQLEQdeIIoXqCTqNuDRgEcEjwZCrpjchv6EGobhPAcCznM4f4on\n+lvf+zgPXAxCZUJ4VYRgjYfkZOM8yPmqiqwFa3BV1eoZ7ge7axwxUQTWL4KqWZt3XZzTfQEUFkIg\nQKCmRk2v7SUQ0O5zHSUvT+9LKKQjOCZPndNnoqJCz905PY4vjJrMt7UuN1djDBQUaDkbGvRZS071\n9VA+S48XDusQ16FQ4tq0NM3O1vEkBg7cNFBSankCAT1WXZ1O4+caT7GYlqO+XvNEIk33E7/30ajm\nbW3a0rpYTIVhdggJh3QaCiLB/2fvvMOrqNI//plbc0t6hRBISAKhQ0QUESmKDVEsqz9QwYprX1dX\n3V0VFdvaWXUtrI1VwY6KDRUQQXpvCZAChBTSk5vcfs/vj0NuEkgAkRCI5/M855m5M2fOnJlJ5nzn\nPe95jwZ6DaGTS92doTDhtz/S44UOIzIsxn0zw9t9hOr0xOw398aQfX4TlQk1pKdbCQmRfhcvvCC7\nTSZOhMmT5fNfsgQuukge91NlJZ1MJjJamU302dRUMlas4MqtWxm6b0Kxy2NjsavIlIrDwO934fOV\n4/GU4vWWBZPHs4fKyh+prV0F6AgLPYVk9xXEfu/CMutnKHxFTgPcowcEpPVACwTQ7Xt5EQgEX2SE\nhcnJdC6+GPr3ly/YgxEIQHk5lJbKoVZutxQg+zc+LTVIDesGg3z519TIMLtlZbLM8nLpXV1dDVVV\naNXVGKqqMBRUwea9UFUFJSVE1zSZhNlikWW5XG36LAApfhIT5TmdTnnepCToP0DeR7O58doaEshx\n8/HxQXEQTHp947oQslFtaFhbWtrtcMopMuRw04bM6ZQzPB4seTyyDJtN1qMh6XTyfjscBz5Hl0tO\nNV1e3nh8Q10akhCynLCw5tceCLS83tq+QEBeR2WlFC1N69F03WSSQwBDQ2WdHI5G0dtwT1paulxQ\nVCSnz95fJO9fn0BAni8kRN6Turrm16zXN7EUhcjnAgc+d4Oh8Z7+1qVOh7bvXmtN/y72v2edk9vk\nT/1Y0WFaQnOINLNpEV7SrJYD+nMjjEYyrFaW19Zw6aUJzJghZ1END4dLLpGOn+vWyVElY8fK/yeA\n+VVVjI6IaLV/uEtICEsyMzFqGr33G6Kq+GMghB+frxa/vxqfrwafrxq/v+lSrksxURJMXm8Jfr/j\ngPI0zYTRGEu4dQiJFYOJmlOIac4CqF0KKSnSG/mii6RncluIWZ1Oxsb/vfHxNU022hERhzftcQNC\nyAmG1q6FigrZgGqa/GcND5f/nGFh8gXscrWcoqKkiTIiovHF3vQl39LvhobueMNgaBQMCsUJRocR\nGQajNGfp4tythqA+NSyMZTU1zLhMOnu++CKMGyffK+PHw333SSHZEPmzxONhTW0tN3fufNBzD2hQ\nuYoTHp+vhvLyudTVbcTvdxIINKaG335/XTNBcXDnSR0GfRh6nR0jYRiJxBKIINzXBaPbhsllxlhv\nwujQY6zVYSz3od9dhpaXD8u/kn+QgwfLYC4XXQR9+zZ+vXVUNE1ONNT9xHV2UygUkg4jMvR6aR4T\nCS5SW/F9OCU0lP8VF5Nxup/kZD35+XDhhXLf+PFw993yY+H886Xn+G3btxNpMHDhQWJhKE5s6uqy\nKC+fi9O5A6dzO9XVixHCg9nUFT0h6AIG9D4DOp8OnUfD6IYQNxicNgx1dvR1nTDUBtDX+DFUeTFU\netBXujGUOdGXOdFX1KOJKqDq4BWxWKSZOyxMfoF36SKn9R03Tq4rFArFCUiHERkGgxQZgTgXaZaW\n/SdODQvDD6xx1HLppRFMny5HkYD8aDr5ZNllbbHAh3tL+aS0lA979ybmMKZIVxy/CCHwesvxePbg\ndhfgcu3E5cqjqmohtbWr0OlsWI3JhLij6L71dGLfzSVkeX7LhVksjf3FdvuBKdkGfe1SMDQk+36/\n999utR7aT0KhUChOQDqMyNDp9jn6hHtb7S7pa7Nh1elYXlPDAw9EcNFFoNm9nLdhKy+mpfHTT1ZM\nJih2u7ll2zYuj43l8ri4Y3gVbYvfX09p6WeUlLyL212IxdIdiyUdu30AdvtArNbeTcaR+3E6c6ir\n20h9/TYsljTCw0/H76+jouIbXK5ddOp0HTZb72B+YN9wsvbD7S6muPht6uo24nYX4Hbvwe3e02xo\nooYBs74zdkc8XReeStSMjegrN8udMTHSvHXLCIiOlp7wTdO+GXAVCoVCcWg6jMiwGh2kXbKAHZlm\nUi0pLeYx6HScFh7OnLIy7unaleHD4YXdxXxXUcHTu3bxZkYGAA9l56PTNF5JTz+Wl3DY1NdvQ4gA\nFkvKvuh/rSOEoKZmGcXFb7F374f4/bWEuzKIrI3BGVFEmXk9BYEXAOlwaLP1AXTU128hEHACoBcW\n/JozWKaGEYM/hIKC54iMPJtAoJ7a2jUI4cFk6ozZnERISBJmc1fCw08nImIUBkOj34rLVYDDsZaw\nsCGYTPFHdA+EEPh8FXg8xbhcO6mvz6amZhllZZ+jBXSEVsVjrjQQtjeAuTgO8x4P5p11mPIcmCt8\naIFdwC5pvrr779Cvn/To79mzbZwpFQqF4g9Ih3mb6up1nHn76+QHbqbLQb42b0tMZPymTSytruaU\nsDD+U1hImF7P+yUlPNm9O+5AgHeKi3k8JeW46Cbx+WpwOnMwmxPx+arJy/snpaUf79urYTYnYbGk\nYbGkYjZ3DTbuZnMStbWr2L37WRyO1ZjdEXRZGkHCfx1Y9mQ1DtEDfBaoGxyJY3AEtT1rIOAnfms4\ntuUe7Nv9mCqduKOg+lQbOqePiKVudD4vJeMsFE/chKkuhORN0ejr/Lg7gTuuAFfsLqpDv2e38Wk0\nzURISDJ6vRWfrxqXK29f/XVERp5JXNwEYmIuxmiUsUj8fhd7986mqOgNhPARGnoyZnMX3O5dOJ15\nTSIwNlondAEj1qoIus8xkPCZE2O4D7p2lv4N0dGQGgVDouWog6goua17d+XvoFAoFG1IxxEZdQai\nqKCb2XLQiJrjoqPpabHwzO7d3NS5MzucTr7q25fLt2zhtcJCyrxeQvV6/tzCiBIhBIWF/6G6eikZ\nGW8e0orwexBCUFLyPjk5f8XrLQ1uN/kj6fl5CiHFOlwpZpxJepydSqgNz6PMVIWXymblROZF0e9V\niNpYj3bmMJj6oHQmjI+XE7Xk5mLIzSU8J4fwvDx4L0cO5+vTByb1lrPIpaZi3r6duF9/lWPYnx0D\nUVF0+s9/6HTHexBrhwH74ghsKYcFJZCXh9hVhbMTVIwy4O5Rh9/uRueF8AVWbBvqqRoVyt4Lt5Bd\neT3btv0Zu30Qfn8NbncBfn8tUbsSMNabqOr6MR5zHSH1YYRUGIneEyAkx4J5hwdTucBcCuZyH1q3\nUPjTdbDmOhk/QqFQKBTtSocRGQaniWjKyQg9eFRNnaZxT1ISU7ZtI9/lYqDdztjoaCYnJPDynj3U\n+v38o2tXQvczmQcCPnbsuJPCwv8AenQ6Iz17vnXI+RUcjg375gZoOeZAg3DZu/cj/P4a/P46NM2I\nEB6czh3EbUkg8f0wPEmhBISTmC8q0I86RX6F5++FX3bL0KVlZQD4TeCOBXcnHcayAPbwJLj3JTn8\ncf84HgkJMp122sFvLkDXrnDmmc23Pf20TK2g1ddjXbYM68KFsGOnDMKjaTDsZLixN9ZFi+h896e4\nXYK9F5hwnLwHY1UA4y6InQvWqFhpcVizBmrqIT4UUhJlrIiUFBia0rielHR8xjhQKBSKPzAdRmQY\nPRaiqCDNYsHtLqSs7HOqq3/F4ykhOvoCYmMvIyREmsavio/nwfx81joc/LdnTzRN487ERF7b13Vy\ne2LiAeVnZV3N3r0f02NWZ/RFlWz96zvYbH1JSrq71TqVlX3J5s2XYjTG0bfvF4SFDW623+erJivr\nOsrKPiN6Yxi2Cj16NwirmYBJR/onEFUVClfdLCMhejzw63VyUpX9qa6G3Fz0ublYa2qwut1SiIwZ\n035xFaxWGD1appa45BJ4/nnMK1aQ9Omn8MUGGQCqc2f49FIYMkTWPRCQUSdbcehVKBQKxfFJhxEZ\nJp8NO2WkhehZt24ELtdO7MY+GKsD5Fb+jZycuxkwYB6RkWcSotfzt6Qkntm9mwn7Ro9k2GzclphI\nD4uFiP2+iKuqFrN372wyntJI2BsPxFM3J5uc8X9Drw+lc+cpB9SnvPwbNm+6jOgNVtzxLtZ5h9Ml\n6S/4fDW4XDv3+Rfkojk99HkMYrteILswdDoorpCRDiePgSlTDu8LPTwcBg2S6URCp4NTT5XpYHmU\nwFAoFIoTjg4jMuwBOxZySXTPxuHMZfD7o7C/tQACAXw2WPcc7HL/hchz5CRGd3Xpwi2dOxOibxxy\n+VILo0mEEORtvgvbDojPuB2+ehaqqkgZPgx/aAnbuAmnM5eYmHGUlX1BTc3yYCyG6I02ej9lRnic\nbP+ricJTX8bsCiWk3EB4cYD4HTpif9BjeWYWXHrpMbtXCoVCoVAcCzqMyDAbZFTO+sLHSFhsx/5T\nLrzyCkyYgMHhIOnZ89jacyOO2g3YQ/ujaVozgdEalZU/Ue1dRd+5cWgfPi2tCrGxaN//QNroUYTs\n8pFzzdPs3v0vjIZYIhhIWFUvLD9CwgcV6ObPB5OJjMsug39uBJuQzpTJydLP4YvJcvikQqFQKBQd\njA4jMowhcfgBAgGSp9fAJ1/CiBFyZ3g4sRc9T07pGAqW/42Ms74/rDKFCJC38U5Ct0D0n55rHoip\nWze0latImjiR8FvmIeJjCPulFC3wQ3A/X3wj55oAOZd8cbGc4VFFd1QoFArFH4AOIzJMtkScQJe1\nqYREeOCMM5rt1404k8T7upB/9o9095Q2G+1RV7cVq7UnmtbY+NfXbyc76zpq/VsYsKA72ocTDzxp\nVBR8/TVhr7wip0u+vidkZMjhk+HhzfMajXIEhEKhUCgUfxA6jMgwhnehx18gPDsLHnrswBEVmkbn\nIY+y03cdu1f9jdTT3gGguPg9srKuJjHxTtLTXwSgpOQDsrOux1ShMfBhiHj2tdatD3o93HFH212Y\nQqFQKBQnKB1GZBAZSeR6QAdMntxiFuPFk+h6993kj38XW/5phMaewbbsm7CWh7GH6dhsvdA0E9lZ\n1xP/s4ke74Shf2OOHAaqUCgUCoXiN9HmzgGapt2qaVqepmlOTdOWaZp28iHyj9Q0bbWmaS5N07Zp\nmtayYtifyEi5PP98GWehJfR6uk38joR5RrJyb2LjytGYC9xkTnbQ+RsT27bdSnb2dXT+WiPj1+Ho\nV22Gs8/+TderUCgUCoVC0qYiQ9O0K4DngKnAIGA98L2maTGt5E8G5gI/AQOA6cB/NU07tCkhJkZG\nrzxE14U2ZAg9zptH9Ao9HlcRfT7ug2HDdtIWDyRuoY6us3Wk54xD+2quLFOhUCgUCsUR0dbdJXcB\nrwshZgJomvZnYCxwHdBSPOqbgVwhxL37fmdrmnb6vnJ+OOiZLBYoLDys6Ja64SPpK37E++1sTB88\nD1Yrum++p/fFF8uhpR+9oUJUKxQKhULxO2kzkaFpmhE4CXiiYZsQQmia9iMwtJXDTgV+3G/b98AL\nh3nSw6/fGSMxnTGycUNEBCxYcNjHKxQKhUKhODht2V0SA+iBkv22lwAJrRyT0Er+ME3T2m7KU4VC\noVAoFEedDjO6ZM03a6jbWtfe1VAoFAqF4qgy8JyBhMaEtnc1joi2FBllgB+I3297PFDcyjHFreSv\nEUK4D3ayGx+88UjqqFAoFArFcc2i9xYx/Mrhv7ucWbNmMWvWrGbbqqurf3e5B6PNRIYQwqtp2mrg\nTOBLAE3TtH2//93KYUuB8/bbdva+7QdlxrQZ9EzpeeQVVigUCoXiOGTgOQOPSjkTJkxgwoQJzbat\nWbOGk0466aiU3xJt3V3yPPDOPrGxAjlKxAq8A6Bp2pNAZyFEQyyM14BbNU37F/AWUpBcBpx/qBNl\nnp9JZmbmUb8AhUKhUCgUR0abigwhxEf7YmI8iuz2WAecI4Qo3ZclAUhqkj9f07SxyNEkdwAFwPVC\niP1HnCgUCoVCoTjOaXPHTyHEf4D/tLLv2ha2LUIOfVUoFAqFQnEC06HmHF+5ZyX+gL+9q6FQKBQK\nhYIOJDIcHgenvnkqn2z5pL2rolAoFAqFgg4kMuo99QREgI17N7Z3VRQKhUKhUNCBRIbbL8NobC3b\n2s41USgUCoVCAR1IZLh8LgC2lh6eyHD5XAfkLa0rxel1HvW6KRQKhULxR6TDiAy3380puyG3dBte\nv/eQ+e/49g76v9afnVU7AfD4PZw842QunH0hQoi2rq5CoVAoFB2eDiMyvNVVLHkLLtrsJ6cy56B5\ncytzeXvtW/j8Pp5eImecf3fdu+ys3smPuT/y3Y7vjkWVFQqFQqHo0HQYkeGvq0UvoGcZZJVlHTTv\nY4se46/rbVT+J4z3VvyXXdW7eGLxE7yf1YdHCzO498d71VBYhUKhUCh+Jx1GZHhdcgbWtMqD+2Vs\nL9/O+2ve5Z+/GogoreHSbD3nvncu3p35TPg4i/s/KSa3YBMz1888VlVXKBQKhaJD0mFEhtNRBUCv\nGvNBR5g8sfgJrsmPIKy4ApKTeSA7jq1lW3l+Z0+0kBCMNQ5eLRjA/T/dT25l7rGqvkKhUCgUHY4O\nIzJc9TUApJT7WxUZARHgq+yv+McaG+KMM/A/8jDd1+3kZssZXPJLGbvGj6bisrFc+X0RcVooZ848\nk4KagmN5GQqFQqFQdBg6jMho6C6JqfGxq3BriyNEssqySNlRTrdNu5k3rjc9i/6BiIzkP++WYSgt\n5//ifubP/XehLy3j58AkAiLAWTPPospVdawvR6FQKBSKE54OIzJ8zrrgenxxXYsWiEU7F3Hnco1A\nSgoP2JeT4ypk+9hTYcsWSof0ZWl4DR971lJ9yViiXnyd+ePnsKNiB7M3zT7ouQtqCqhwVhz1a1Io\nFAqF4kSmw4gMv8sVXE+tbDny5y87F3Fevp7yi8awqmQtoaZQnulbDXo975wRSp/YPkSGRPLq+ESo\nrib16RmMSB7B51mft3regpoC+r/an8TnE7nxyxtZXbhaxdlQKBQKhYIOJDKER4qMgAY9q/QtDmPd\nsX4h0TU+vo+sICIkgqfOeoo3XUvZuu5HHgxfwzUDr2Fiv4n8u/gL/E8+Dq++ym31/ZifN59KZ+UB\n5QVEgMlzJmM1Wvnn8H/y7Y5vGTxjMF1e6MItX99CnafugGMUCoVCofij0GFERsAtRUZuJAyqC2dt\n8dpm+3dW7SQxuwiAf7OMP/X+E1f3vxqr0cpli27F4/cwoe8Erh14LUWOIr4/OxWGDWPcM19gcPv4\nevvXB5zz+aXPsyBvATMvnskDZzxA3p15/DTpJyb0ncCba9/kpRUvBfP6A35q3DVteAcUCoVCoTi+\n6DAiQ+wTGZtjYVB9GO9teI+1RY1C45ddvzBkDzjjo1kpCriq/1WEmkO5vM/lbCndwqiUUSSGJZLZ\nKZP+8f15a/078MYbGHLzuassjc+2ftbsfNll2fzjp39w99C7GZ0yGgCj3sjolNE8e/azXDfwOp5b\n+hwOjwOAa764hvCnwkl/KZ0Jn05g2s/T+Hjzx8E5VxQKhUKh6Gh0GJGBx4tXB9uioWuZh96xvbn2\ni2vx+D0A/LLzF0aWWsnqHkZSWBKndz0dgOsGXQfAlf2uBEDTNKZkTuHzrM9ZE+mCHj34U3E03+34\njnpvffB0Dy18iAR7AtNGT4ONGyE/v1l17j/9fqpcVby26jXe3/A+7214j7+f/nfGpo+loKaAf6/4\nN5d/cjnXf3n9Mbg5CoVCoVAcezqMyNB5PLgMkBMJpj3FvH3+G2zau4l//PQPssuyWZS3kAEFPhbE\n1HJhzwvRafLST+96Oj9N+olJAyYFy5py0hT6xvXlxq9uJDBqJH0278XpczIvZx4A64rX8dHmj3ho\nxEOElFbCaadBejrcdBPs2gVAt4huXDPgGv615F/c/PXNXN3/ap448wlePPdFfrn2F0r/VsrrF7zO\nBxs/YMWeFcf+hikUCoVC0cZ0GJGhNYiMKND5A2R6Y3jwjAd5bulzZLySgdi2DUu9h++iKugXhnGU\n1gAAIABJREFU16/ZsaNTRmPQGYK/jXojM8bNYG3RWr5OcmHakcfZ5j7c9s1tLN61mAcXPEhaVBqT\nB0yG++8HsxmmTYNPP4Xu3eHyy2HxYv4+/O9UOiuJscbw8vkvH1Dn6wddT7+4ftw97241IkWhUCgU\nHY6OIzK8PlwGqE6Mlhtycpg6cirbbtvGwskLmdX1LgBWJAToG9f3kOUNSRzC7UNu57b6jwGYHX0T\n3SO7M/KdkczdNpdHRz6KceVqmDkTnnhCio28PHjhBdiwAYYPp/u6nXx2xWd8e+W3hJnDDjiHXqfn\n2bOfZfGuxbyz7h2yy7JZV7yOH3N/5OPNH1NeX370bpBCoVAoFMcYw6GznBgYvH5cBjCnpOPTV2DI\nkdO9p0enkx6dDrs/oSa5E9WWIvrE9TmsMh8Z9Qgvr3yZirREopatY/6M+UxdMJWtZVu5ovefYOhp\nMGgQXL/PryI0FG6/HW67DTIz4amnuPD77+W+Bx+E11+H886DceNg8GDo1o2zU8/mvLTzuO7L6w44\nf0ZMBgsnLyTeHn9U7pFCoVAoFMeSDiMydF4/bj0kRadQEr2OxC1bmmdYuZLctGg6h2pEhEQcVpkR\nIRH0jevL6l5+xsyfj0Fn4PEzH5c7v/wSVq6En39mVclaoi3RpESmyH2aBvfeCxMnwrp1YDTCk0/C\nmDGwapW0fgCEhcHrr/Pp5Z/y6+5fMeqNWAwWYqwx1HpqOfe9czlz5pm8d8l7bCzZSEFNAbecfAvh\nIeGt1tntc7Orehc7q3eSFJZEz5iev/VWHnO8fi8vrXiJ73O+Jzk8WTrtDrq2ReuPQqFQKE4ctBPd\nF0DTtExg9SP9zIwtdzP77XsY/PAbXLG0RloNrrlGdmM89BAzJvbk49EJzLt63mGXf/Pcm9F/NZeX\n3yiA3FxI2SckxoyB2lrK5s8l+cVkdJqOd8a/wyW9LpH7fT5IS4Nhw6CwEPbskaNQzGYoKJBdKtOn\nw6ZNkJMDISEHnDurLIuR74ykpK4EAJPeREpECnP+bw4ZMRnsrt7Nkt1LWLJrCauLVpNXlUexozh4\nvF7Tc89p9zB1xFQsRsuR3uKjghCCOq8MTmY32YPbF+Yv5NZvbiWrLIsx3cdQ7CgmqyyLxLBEZl06\ni9TIVN7f+D5ZZVn0j+/P4M6DGRA/AKPe2F6XolAoFB2GNWvWcNJJJwGcJIRYc7TLbzNLhqZpkcDL\nwAVAAPgUuFMI0WoYTE3T3gYm77f5OyHE+Yc6n8Hrx23Q6BLWhevOc3P57R+gPfooXHGF7MY45RQ+\n6LabgbFn/qbrGJo0lDsiX+MlnQ5t/nzZNbJlC/z4I7z3Hs8vfR6As7qfxaUfXcrtQ27ngTMeIM4W\nB3ffDXfcse8qvpMCA6BLF5lSU6F3b3jrLbjllgPOnRGTwaopq9hQsoFTEk+hwlnB+A/HM2TGEMJD\nwoPzs6RFpXFK4imM6T6G5IhkukV0o2t4Vz7c9CGPLnqUT7d+yhsXvMGolFG/6doPh/yqfBLsCYQY\nDhRJe+v2MnvTbP634X9s2rsJl8+FWW/mhswbmDxgMi8uf5EPNn7AaUmnsXrKagYmDAQgpyKHKz+7\nktPePA29Tk9ABEiPSueN1W/gF35sRhvDug5jUMIgUiNT6Rffj5M7n4xepz/q16dQKBSKI6fNLBma\npn0LxANTABPwDrBCCHHVQY55G4gDrgG0fZvdQojqgxyTCaz+V5qek4Wg4suPuOzjyyj7WxnR5ggo\nKYFOnXD6XNiftPP6Ba9zQ+YNh30dOyp2kP5SOuXf9COqsBJ++QWefho++4yK7HV0+086twy+hafO\neorpy6fz4IIH8Qf83HLyLTx56gMY03rAGWfAJ5+0fIIrr4RFi2DHjkYRchBq3bVMXTgVvaZnWNdh\nDO0y9KA+G1llWUz5agq/7PqF6wddzzNjniHSEnlAvjpPHYt3LWZh/kKK64ox683E2eKYNGASaVFp\nuH1uvt7+NSGGEM5NOxd/wM/9P97P88ueJ8oSxcS+E+ke2Z3s8my2lW8juzybwtpCDDoDF/S4gBHd\nRhBviyenMocXl71IubOcWGssz4x5hqsHXB0cUtyA1+/llZWvIITgyv5XEmeLw+VzsbZoLYt2LuLn\nnT+zpXQLu2t2ExABYqwxjOsxjodHPkzX8K6HvI8KhUKhaHtLRpuIDE3TMoAtyEqv3bftHOBroIsQ\noriV494GwoUQl/yGc2UCq59P1uhl1hPx4y8MfXMo6/+8nv7x/YP51hatJfONTH697leGJg097GsR\nQhD3bBz3Jl/F3+7/UvpbFBfDPffw4Bl+nl/2PPl35hNriwWgvL6c6cunM23RNGZdOov/ix0FUVHS\nL6Mltm6FPn2kY+jgwVBaKlNVFUyaBL16HXZdWyMgAsxYPYN7f7wXi8HCy+e/zNj0sSwtWMqCvAUs\nyF/A8j3L8QV8xNviSY1Kxe1zk1uZS5WrijO6ncHGvRuDM82mR6UTZYliddFqHh35KDXuGt5d/y5V\nrip6RPegR3QPekb3pGdMT85NO5cYa0yz+jg8Dn7M/ZGRySMP2z+mNTx+D6sKV/FV9lfM3DATh8fB\nv8/9N5MGTELTtEMXoFAoFH9gTlSRcS3wrBAiusk2PeACLhNCfNHKcW8DFwFeoBKYDzwghGh1HvUG\nkfFSF+gWaWLQ4hySXkji64lfc356Yy/Lexve4+rPr6bqvqqDOk62xEWzL6LeW88Pw2fA8OFQXEz1\nto10/fAUpmRO4ZmznzngmKFvDiXGGsNXE74C5DTzn239jDHdxzAqZRRWo7Ux85VXwgcfNP6OjAQh\nZDfPqlUQF/eb6tsae2r2cNu3tzEnaw4GnQFfwEeMNYaRySMZlTyKUcmjyIjJCDbOTq+T2ZtmM2vT\nLDI7ZXLNwGuoclXxwrIXyC7L5pXzX2FY12GAFGMCcYBF4lhS5arizu/uZOb6mXQO7Uz/+P6kR6UT\nbYkm1hZLRkwG/eL6BQWhQqFQ/NE5UX0yEoC9TTcIIfyaplXs29ca3yJ9N/KAVOBJ4BtN04aKQ6gh\nkw88Rh0J9gR0mi7or9DA5r2b6RLW5TcLDIChXYby+C+P4++ahH7JEtixgw8rFuHwOLhr6F0tHnNl\nvyu56/u7KKsvIzIkkpvm3kReZR7Tl0/HrDczKmUU56edz3WDrsM2Ywb8/e8QEwPR0dLqUVAgLRuX\nXSb9P4SA6urfJTgSwxL5/IrP+Xrb1+RW5jIyeSR94vq0KgwsRgvXDrqWawdd22z7h5d9eEBeTdPQ\n+B2Wg8pKWLECOneG5GQpsH4jESERvDv+XSb1n8T8vPls3LuRBfkLKK8vp6y+DG/AC0C8LZ5+8f0Y\n030Md516l3IiVSgUijbiN4kMTdOeBO47SBYBHLF9XwjxUZOfmzVN2wjkACOBBQc79tUK0Lm8vDv+\nEkw5Jp797llCbw9lwoQJsrDSzYcVhKslTks6DYfHwebSzfTv2h+6duV/b09lTPcxdA7t3OIxV/S5\ngr989xc+2vwRkSGRZJVlseKGFYSaQ/lm+zd8s/0b/jrvr2wu3cxrF7wGfferW5cuMoLoqFGQkSFH\np3g88K9/wd/+JrttGnC7pcVj8WJYulSGNi8pgf794b33pHBpwtgeY4/oPrQZCxbA1VfLawTQ6+WQ\n33vukdfp9cruo9jDs0Cc2f1Mzuze3MHXF/Cxo2IHG0s2snHvRjaUbOAfP/2DDzd/yMzxMw87dopC\noVCcqMyaNYtZs2Y121Zd3arL41Hht1oyngXePkSeXKAY6cAZZF93SdS+fYeFECJP07QyII1DiIy/\nhUKgt52rvvySU/97Kk6fk+gh0QREAJ2mY3PpZi7OuPhwT92MwZ0HY9AZ+HX3r/SP709eZR6Ldy3m\nfxf/r9VjYm2xnJN2DjPXz6TGXcN5aedxcuLJgBw18tehf+XhhQ/z3NLneGbMM4SaW/hyHzYMPvwQ\nvvhCBvfatQvuu09aOcaMgSVLpLBYuVIKELsdTjkFhgyRwuKNN+DUU+Hrr6FHjyO69qOGxyN9WQwG\naa0AKR6mToWnnoKRI+Gbb8DhgM8/l3FGsrKkv8oLL8hr7tULzjkHzj4bRowAq/Wgp2yKQWcgIyaD\njJgM/tTnTwCsLlzNpDmT6P9af3pG92RgwkCmnDSFkckjj/71KxQKRTszYcKE4Id3A026S9oGIcRR\nT0AG4AcGNdl2NuADEn5DOV32lXPBQfJkAuKTCMTbo6OFEELM2zFP9P1PX8HDiJinY0Svl3sJHka8\nteYtcaSMeHuEyHg5Q9S6a8W0n6cJ2+M24XA7DnrMBxs+EDyM4GHEst3LDti/q2qX0D2iE6+vev3w\nK/Lqq0LodEKAEJ07C3H55UJMny7E6tVCeL3N8+bkCJGRIURkpBDffnv45zhaeDxCvPuuEP37y/qC\nrPukSULMny/EkCFCGAxCPPmkED5f82NnzhTCZJL7J08W4n//E+L664Xo0kWWYzIJkZkpr3/aNCHW\nrxciEPjNVXR6neKtNW+JW7++VfR/tb/gYcQNX9wgCmsKhcfnOTr3QaFQKI5TVq9eLZC9EJmiDfRA\nWw5h/QZpzbgZOYT1LeQQ1qub5MkC7hNCfKFpmg2YivTJKEZaL/4F2ID+QghvK+fJBFZ/aYe9w+O5\n/htpKBFCsLRgKT/k/EC1uxqP38PUEVOP2OkvuyybwTMGc1HPi1hZuJJTEk9h5sUzD3pMvbee+Gfj\nGZY0jO+u+q7FPONmjaOwtpDVU1YffmW2bZN+G8nJzbtNWqKyEq66Cr79Fh5+GB54AHStOGf6fLBs\nmbQmZGRA166t5wVYvVpGNR02THZtpKTAmjWwfLlMixZJ68XYsXDJJZCYCNu3w+OPy+2pqdLhdciQ\nlsvPzgabTXYdNSCE3D5vngxktmOH7CqqrZUz4c6YIa0cR0DTUTg17hoArEYrGTEZ9Intg81owxvw\noqFhN9kJDwmna3hXUiJSSLAnEG2NJsoS1WyyPYVCoTieOSFHlwBomhaBDMY1DhmM6xNkMK76Jnn8\nwLVCiJmapoUAc4CBQARQCHwPPCSEKD3IeTKB1d9ZYNfZSdw4Z1ebXA/ArI2zmPjZRADmXTWPMalj\nDnnMkl1LSI5IJjEsscX9c7fNZdyscay8cSWDOw8+qvUNEgjIhn3qVDj3XOmnERUl9xUXy0Bh33wD\nP/wgfR8aiIqCG26QaeFCePVV2UXxyCNS5FxwgRQ65eUyqqnBIIVKSAicdJLsurnmGujXfNZb6uth\n/nwpBo7AwfMA3G7p1/Hkk/Drr/D883L+mCMcwlpUW8SS3Uuo89RR7ixn897NbC7djDfgxaQ34Q/4\nqfPWUemspNhRjKD5/1BESAQx1hiiLdFEW6OD6w3LOFscKZEppEamttxNplAoFMeIE1ZkHCsaRMYC\nE2SPT+WmD3e06fnu/PZO5uXOY9PNm45KhEl/wE/y9GRirbHEWGPIr8qnzluH1+9l2qhp3DT4pqNQ\n633MmyctD3Y7/N//SVGxZo1sjIcMgfPPl6HYY2OlP8SPP8J//ytHtWiaFBV790orhU4n/SjmzJFB\nxD75BGpqpLDo27f1uCBtic8nfTleeAG6dZPRVDMypC9HRoZMh+k8eri4fC52Ve9ib91eyurLKK8v\np9xZHlwvc5YFR7eUO8upcFYQEIHg8bHWWFKjUuke2Z3UyFSZolJJi0ojwX6wgVgKhULx+1Ei4xA0\niIwlethwZW/+/O7mNj+nL+A7qibxN1a/wUsrXiI9Kp3ukd0JNYWyce9Gvsz+kmU3LCOzU+ZROxc7\nd0qhkZ0tnSjPP186UrbW+NbWSivH4MGye0MIOTncihUygFgLc660O999Jy0lW7dKsZSbK605IB1i\nBw2SDrEXXggnn3xMqxYQAcrqy8itzCWnIoecyhy5XplDTkUORY6iYN6zU8/m8dGPt52FS6FQ/OFR\nIuMQNIiM1cCKKZn8+fXf4NtwHOP2uRn65lDqvHWsmbKGwtpCtpRuYVzPcUcn4JUQR9yd0BZ4/V5y\nK3NJjkjGbDh0ePXfhNstfUGysuS8M6tWSd+T8nLZtXLHHcfNvaj31pNXmcfqotU8ufhJssqyuKTX\nJUwbNY3esb3bu3oKhaKDcaIG42ofjsev6iPEbDAz69JZZL6RSdILSVS6KgG4b9h9PHXWUy0eU+Gs\nYG3RWtYWr2VN0RoyYjJ44IwHWhYlx0mjClDsKGb87PEs37McvaYnIyaD1y94PRhN9HdjNssunKax\nSPx+2bXyl7/AunVw441ymHA7/w1ZjVb6xPWhT1wfJvabyPsb3ufhnx+m36v9uKr/VTwx+olW/XsU\nEiGECimvUBwndCiRoYUcftyEE4GeMT15/5L3mZczj/PSziOrLIt7f7yXxNBEbsi8gV93/8rSgqWs\nKVrDmqI17KzeCYDNaKNPXB9mb5pNTmUOb1745nE74mF98XrGzRqHL+Dj4z99TKWzknfWv8M5753D\n3Ilz6R3bm4cWPMSygmUM7zqcs7qfxZjUMc3Dsh8Jej0895wUHrffDu+8I/1IbrpJBjz7DTE42gqD\nzsDkgZOZ0G8CM1bPkDPqbvmUfwz/B3edehcWo6W9q9gmeP1evt7+NR9s/IDcylzK6svwBXxEhEQQ\nHhIul+ZwPH4PNe6aZqnWU4vD46CTvRO9YnsRZ4vDF/Dh9XvlMuA94Lc/4AdAp+lICk+iZ3RPIkMi\n8fg9GPVG+sf3Z2DCQGKtsWqm3yYIIfALf3BKgQb8AT/egBchBFajFaPeiNfvpdpdTbWrmmp3NQ6P\nA52mQ6fp0Gv64LpO02HSm4i0RBIREoEQAm/Ai8fvweP34Av4ANntWOGsoLSuFF/Ah8Vooc5Tx8rC\nlWwo2YA34EWv6THoDOh1evSaHr1u32+thd/78jTkN+gMGHQGjDpj47pergdEAI/fgz/gb1a2XpN/\nG37hJyACwdT02o4k9Y/vT/fI7u3yjI8GHaq7ZPXUcdz48JftXaU25Z559/D80ucx6U24/W4iQyLJ\n7JRJZqdMBiUMIrNTJmlRaeh1emZvms3Vn1/NhT0v5INLPjj63RCHQUAE+HTLpywrWEZJXQmhplCm\njpxKgj2Bn3J/YvyH40mPSufLCV/SJUwOVa331nPR7ItYsmsJRr0RnaYLTuiWW5mL1WhlbPpYRnQb\nQa/YXgxMGEiUJerIK+n1woYN0pfjscfkiJmnn4a0NDl89miMgDkKVLuqmbZoGtOXTyfGGsP9w+7n\n/PTzcfqc1HnqqPfWU++tp84r1xu2hYeEM7HfRMLMYe19CYBsnCpdcmROiaOEIkcRRbVF5Fflk12e\nzZqiNZQ7yzmp00kM7jyYaEs0Bp1BNlLuaqpcVVS7qjHpTYSZw5qlUFMoVqOVgpoCtpRtodJZiVFv\nDDYWDQ2FUWeU65ohKBx8AV+wDg6PA5PeRL23HofHEay7zWiT5zGHYjfZsRgsWI1WUiNT6R3bmzhb\nXDDEvk7ToWkaXr832FB6/fuWrfyOscZwdf+rSQpPanbPvH4vJXUlFDuKKa8vx6g3EmIIwe1zU+2u\npsZdQ7WrmnpvPaHmUCJDIom0RAbFUnZ5NjurdiIQwbrpNB3lznI27t1ITkUOmqYF74tRZ0TTtGDj\n3lDPpqkhTP+haJgn6VgQb4tnUKdBWAwW/MKPP+DHL/z4Ar4W1/2Bfb9byNsgSPcXpXpNj0lvQqfp\ngoKi4dim97bh+QshmomOgAgcMCLtYLx03kvcNuS2NrtnyifjEDQVGWufuoLr75vd3lVqUwIiwEvL\nX0IgOKv7WfSJ7XNQ0/DcbXO57KPLGJk8ks+u+Oz3WwCa4A/4mbFmBueknkNKZMoB9Vy0cxH3/nAv\nKwtXkh6VToI9gayyLPzCz/WDrufFZS8yOmU0n1z+CXaTvdnxLp+Lm+beRLg5nKkjphJtlaHRt5dv\n59Otn/Lp1k9ZX7web8CLUWfk0t6XcuvJt3J619N/30VlZcm4Iqub+PZ07SqH4TbMpmuzQXx8y+kY\ndLfkVuby2KLHmLl+Jn7hbzVfiCEEq9FKjbsGm9HGLSffwp2n3Em8Pf6AvG6fG5PehKZpBESAotoi\nih3FB3z5NzREDQ22XtMTEIHgy7jpS7reW09OZQ7byrexp3YPJQ7ZSO6t23tAAxVqCg1aEXrH9uby\nPpc3m0W5vQiIAHmVeWwo2UCFsyJoLalx1+DwOHD5XNR6atlevp3s8mw8fs9By9Nreox6Iya9CaNu\n37LJ7901u6n31jMqeRSaplHsKKbYUUxZfdkh62rWm7EardR6ag9o1DU0EsMSg1/iDSnMHEbfuL70\niOrRTBB5/V4EArPeHKxf09RQd4POEOyObXgP6TRdUKQ0CF+LwdLMCmUz2QD5DmmoS0OD7fa5qXJV\nUeWqClo2Gupg0BnQ0NA0jciQSGJtsRh0Blw+Fya9iU72TidEV1mD9Wd/8dFSshltbWq1VCLjEDQV\nGetemMx1f3mnnWt0/LEgbwHjZo1jUKdBzJ0wt8VJ4jaWbGRO1hy+2vYVDo+DfvH9ODXxVKacNCX4\nQthQsgGz3kzPmJ4IIbj1m1t5ddWrWI1Wnhj9BGNSxwSnjl+Yv5ByZzmDOw/m+bOfZ3i34QCU1Zdx\n+7e3SytL/6t588I3j3iCMq/fS05lDt9u/5bXVr/GtvJtPDryUR4c8eCR3yyQI1Hy8uRcKjt3yqBf\nmzbJkTY+nxyqW1IiHUf3//8JC2tdgDSkTp2khcTw+7qw8qvyya/Kx2q0YjVasRltcmmyYTFYgl/o\nBTUFTF82nddWv4bX72XygMn0iu1FVlkW2eXZZJdlU+QowqAzEG2Jptpdjcvn+l11a8BmtNEjugdJ\n4Ukk2BKIt8cTb4sn3h5Pgj2BeJtcdoR4Ib6Aj3pvfbABaVg2FROHctquddcye9NsPs/6HJvJRoIt\ngQS7TJ1CO5FgTyDGGoMv4MPpdWI2mAk3hxNmDgtaKoUQwTgula5KdJqOtKg0Qgwdx2dNcfRQIuMQ\nNBUZ61/7M9fe9Gp7V+m4ZHnBcs57/zwS7Al8NeErUqNSqXJV8cHGD3hz7ZusKVpDqCmU89LPI9Ya\ny8a9G1lWsIx4WzwPnvEg3+V8x2dbP0Ov6bl76N3YTDamLpzK9HOns618G6+sfAWQptFTu5zK6OTR\njE4ZzfBuw1t8se6o2EFqZOpR++oQQvD4L4/z4IIHmTpiKlNHTG37LxqfD0pLpeA4VCotbRxGC9In\npFs3OSy4e/fGZcN62NHv2qhyVfHqyleZvnw61e5qekT3ICMmg57RPUmJSMHpc1JeX06oOZTUyFQS\nwxKDX48N1guBOMC/oWn/dkMft0FnwGwwE2uNPSG+LBWKPypKZByCpiJjw7t3cc2k59u7Ssct2WXZ\njJs1jgpnBWd1P4svsr/A6/cytsdYrh90PeemnYtJbwrmz6nI4a/z/sqX2V/SLbwbj4x8hIKaAqYt\nmobb7+ahMx7ikVGPALCmaA1l9WUMSxoWtHy0B08tfoq///R3Tkk8hdOSTiOzUyY9onvQI7oHESER\n7VYv/H5p+SgpkdFRc3MbU06OTI7Gvn9iY6VD6n33gcnUerlHQEMwsKMyFFqhUJzQKJFxCJqKjM0f\nPcDVf5rW3lU6rqlwVnDNnGvIqcxhUv9JTBowiU6hnQ56zPby7XQN7xo0x24r38bS3UuZNGDScfmV\n+uGmD5mTPYflBcvJq8oLbo+xxtAjugendTmN89PP5/Supx9xV81RRwgoK2sUHkuXyjDu6elyNt3T\nf6eviUKhULSAEhmHoKnI2Dr3Sa4ce397V0lxHFHrrmV7xXa2lW9je/l2tpZtZUH+AoodxWTEZLBg\n8oLjN3z3xo0wZYoMHHbjjXJobWRke9dKoVB0IFQwrt+A3tL+sQ0Uxxeh5tDgEN8GAiLA8oLlXPbx\nZZw18ywWXrOQGGtMO9ayFfr1gyVL4LXX4O9/hy++gBdflPPOHIcWpOMCvx/q6uSwY3WPFIp2p4OJ\njPbzBVCcOOg0HUOThjJ/0nxGvDOC0e+O5o5T7mBU8ihSo1Lbu3rN0englltg/Hi4804578y778qu\nlJSUQx9/opKXB6+/LsPBl5dL8RAV1ZgiI+XEfYWFchRQYaGcUbi2Vh4fGgp9+kBCgnS41TTpTBsW\nJmcBrqwEp7P5OTVN3tN+/eQcNw6HvP+ZmXKyvd85GkhxlAkE5N+AEPJ519TAzz/LrsaqKvmcAwH5\n3AIB+Tzr6uRz1uvldr2+Me3/u+k2g0H6RplMMoJwQ2r4bTTKZDAcuL7/smFdp5P1cTjkNTScU6dr\nXodOnRpnzT4B6VDdJflrZ3HJwP9r7yopTiA27d3EDV/ewMrClQREgIn9JvLmhW8ev8P95s6VoqOs\nDB5+WEYo1evlSJfyctl4ulwywJjHI1NCwjGfCO434fNBfj7s2CFFxeLFclbfyEg5MV9UlLzGykqo\nqJCpshLCw6Fz58aUkAAREXKW4V27ZHdTebk8NhCQjVBNjYzmGhUFFktza4fPJ8+fnS3XmxISIp1x\nQ0Mbk90uG4yQEBgwQPrN9Owp9+kPERlUCPlsnM7mKTJSXsuREAjIeXpCQg604gQC8m9Gp2tsII1G\neT+2bJGOxx6PvG6/v3naf9uhfjeMompoW5ouHQ4oKpJ12f/a9XoZg8Zul8lqlY1wVZW8rv2vp6am\n+YitBrp1g7g4+Xz1elknkM/Ftu9D9HCvpWGbz9f4/+R2N6aGe9aW/Pvf0gm8jVA+GYegQWSsBIqz\nvuSCnuPau0qKE5BqVzWfbv2UW7+5lYEJA/nkT5/QObTzcenYisMBDz0E06e3/JJtiauughdegJh2\n6BZyu2H3bmlxaEi7dzeKivz8xhe1yQQZGdIX5dpr2ye8e0Pjb7NJwbZmDaxdKwVLbW2jWKmrk/V2\nOOT8N00tI00FjKY1X/f7ZbktPTtNk1arm2+WX7tFRc1TYWHjcGhNk+U4HDLV18syDAayN9Q3AAAV\nKUlEQVQpVhqSxyOFU8P+Q3Gwr/uDfe03/RJver1Nlzab/DKPjZXP1mJpTA3WhgaLQ12dzB8eLvfv\nf5/Cw6VY1DR5jNEohV7Xrod3nUeLQECKep9PLhtSw++m25tu8/vl9dls8p41CLT9BVtysrxnbYQS\nGYeg6VTvjuzvOTv17PaukuIEZuWelVw4+0KKHcVYjVYSQxPpF9+PQQmDiLJEoaFhMVqIscYQZ4sj\nPSqdSEs7OWNu3iyDhAkhX/QN3QgWi3zhmkxy+f33cNddMs+0aXDddXI7yIZr1SpZjskkX9zV1TII\nWXGxfHk7nY1f7BaLXDaYig0G2dDV18uXfdPzer2y7LVrm3/thYXJYGSpqXL0TFpa4zIp6dBWgOMR\nr1de586djQKkpS95kPepaePaNG3aJMVgVlZj2Xa7bGQaUlycvO9CyGfR8OVvt8vnUlMjLT0NSa+X\nwi01VR7T9EvcZpNdQenpsqymAkHxh0CJjEPQIDIWmEDLXsiI5BHtXSXFCc7eur3Mz5tPsaOYnVU7\nWV+ynvUl66l11yIQB4RsjrPF0Tm0MzHWGDrZO5EckUxKRAopkSmkRKTQJaxL+0+sVVIC99wD778v\nG5RevaQA2LNH7g8Pl19NtbWy4enWTZrt7XbZ+Pl8Ukw0TQ2m4gbxAXJbQ1eNpsHAgTB0qGzkEhNl\nsttbr6dCPocNG+R9SkhQ90vRpiiRcQgaRMZ3FgjL/pWhSUPbu0qKDo7H76G8vpwiRxHbyreRXZZN\nSV0JpfWlFNYWkleZR5GjKJjfoDPQNbyrFB5NxEdyRDIpkSnE2+KPXbfM+vXwyCPya/fkk2UaPFha\nEBpM+eprVqH4w6CGsB4mHj3tMsuo4o+HSW+iU2gnOoV2ajY0tilOr5Od1TvJq8wjvyqfvKo88qry\nWFu8ls+yPqPCWRHMazFYgoIjLTKNzE6ZnJx4Mr1ieh198TFgAHz2Wev7T8SuCoVCcdzScUSGgWYh\nsRWK9sRitJARk0FGTEaL+2vcNeRVSuHRVIh8l/Md/17xbwAu7XUp/73wv+0bDl2hUCh+Bx1GZLj1\ncqpjheJEIMwcxoCEAQxIGHDAvmpXNV9t+4rbvrmNQa8P4sPLPmRI4pB2qKVCoVD8PjrMDEmqu0TR\nUQgPCeeq/lex9qa1xNviGfbWMJ779bngxGYKhUJxotBhRIZbr7pLFB2LlMgUfrn2F+469S7u+eEe\nxs0aR1l9WXtXS6FQKA6bNusu0TTtH8BYYCDgFkIcVlxUTdMeBW4AIoAlwM1CiB2HOs6juksUHRCj\n3sjTY55mVPIoJs2ZxIDXBvDBJR/8IYZq76jYQWFtIf6AH7/w4w/40ev0dAnrQlJYEg6Pgz21e9hT\ns4eCmgIKawspdhRTWl9KUlgSmZ0yibPFUeupxe1zYzfZCTWHUu+tp8JZgdfvxWwwY9abCTGEYDFa\nGBA/4JCzEiuOX+o8dSzetZg6bx0BEQgmf8DfuC78QaughoamaS0udZqu1X2apmHUGbGb7NhMNnSa\nLlheAw15DToDBp0Bo97YuK4ztrhdr+mPzwCAv4O29MkwAh8BS4HrDucATdPuA24DJgH5wGPA95qm\n9RJCeA52rFs5fio6MOeln8e6m9Zx5WdXMnrmaKaOmMo/h/+z/eNvtAG7q3fzz/n/5H8b/nfYx+g1\nPZ1CO5FgTyDGGsMPuT/wyspXELQ+RF9Da3F/WlQaXcK6UOuuRa/Tc0riKQxLGka3iG7E2eIIM4dh\n0psw682Y9KYO1ygcDl6/lzpvHXWeuuBS0xob1KZJp+mo89RR5aqi0lVJlasqmKpd1QgEek2PXqdH\nr+kx6o1YjVYsBgtOn5Madw0BEcBisKDX6al111LjrpHJU4OGht1kp7S+lHk583D5XO19e34X+4uQ\nf531L2486cb2rtYR02YiQwjxCICmaZN/w2F3AtOEEHP3HTsJKAHGIwVLq3h1yidD0bFJDEvkp0k/\nMW3RNB75+REW5i/k/tPvJyACOL1Oqt3VVLuqmy/d1URbonls9GPH1UyzQgjKneVsL9/O9ortbCvf\nxvaK7Wwv387m0s1EhETw6thXGZ0yOtgA6TQdvoCPgpoCdlfvxm6ykxiWSGJoInG2uAMEl8PjoMZd\nQ6gpFLPBHPxtM9qICInAoDPgC/hw+924fW5qPbWs3LOSRTsXUe4sp0dUD5w+J9/u+JaXVrzU6rWE\nGEIYljSMi3pexICEAdhNdkx6E16/F4/f02ryBhr3O71OnD4nCfYEJg2Y1OLcOUIIKl2VlNWXodf0\nmPQmHB4HpfWl1HnqMOlNWI1WOod2pnNoZ4x6GdW1zlPH8j3LWV+8HqCZANhds5v5efNZXbSagAig\n03ToNXmvG+55w2+dpsPlc1HnrcPjP+g33yHRaTrCzeGEh4SjoQUtVX7hx+P3UO+tx+VzYTFYCDWH\notN0OL1O/MJPmDksmEJNoQDkV+VjMVqYNmoa43qMI9YWe0Dd908AAoEQ4oiWHr8nKLIatjV9VkDQ\ncuL1e/EFfHgDcukL+A7Y1vB7/22tDZM/UWjzYFz7RMYLh+ou0TQtBcgBBgohNjTZvhBYK4S4q5Xj\nMoHVU9NhanbgD/lVofjjsTB/IRM/ndgs6BfImBvhIeHBF3i4OZw1RWsw6U3MvHgmZ3U/67DP4Q/4\n8Qa8eP1eTHrTb/5qF0KQX5XPsoJl7K7ZTXl9OXtq9wQFRZWrKpi3c2hnekT3ID0qnb5xfblm4DWE\nmcMO+1xtTVl9GYW1heyt20utuxaP34Pb78bj91DlquKH3B9YkLcAb8D7m8rV0DDpTcHumtK6UhLD\nEvnn8H9iMVjYXbObLaVbWF+ynu3l23H73YcudF+5FqMFo86Iw+PAL/xBS0BDQ+YL+IiyRDEqeRSn\nJZ1GiCEk2NA37WJoEAABESDEEILNZJPdBEZbsLvAarSioTUru2mym+xEWiKJCIkgIiQCu8kebOhb\nQwih3ufHgD9SMK4EQCAtF00p2bfvoPiMmvqDVPxhGJk8kh137KDEUSJN9wZz0Iy/P4W1hUyeM5kx\n/xvDtQOv5ckznyTeHo/D42DxrsV8u/1bFu9ejEFnINwcTpWriryqvAOcTDW0YGMYYgjBYrBg0pvw\n+D24fK5gCvx/e/cfW1d533H8/Y1jO9ghSRPnRwOGhiUzKe2ikZaUjLZh2dS1W8PQJCavW1omMaqu\nUsVUNRqjg1JNCOhK9osK7QdV1dUdLNu6VbDsB0xpWSFbsk1tIWQjsFJSsgKrU4JjEvvZH+c4u3bj\n62uTx/f45v2SjnLPvc+557l5cu795DnPOU8apau9i0Q6ddOxxZ2L6enqYdXCVVyy4hKuvvhq1i1b\nx7ql61i7dC3dHd2z8vc2Uz1dPXV7gj66+aPFGJGjz3HsxDGGTw6fCmb1lom9L0++8CQ3PnQj13/5\negCWnrOUvmV9XNF7Bdddeh2rz13N8q7ljKZRhkeKcSbLu5bT3dF9qgfguaPP8ezRZ3n51Zc5MXKC\nJQuWsLl3M+uXrx/3wz72H8yqfm9WtV6anmmFjIi4DdhRp0gC1qeUDr6mWs3Ayfmtd25aqqervYs1\nr1szZbnV565m9y/u5p5/vYebHr6JXU/s4oLFF/D4dx9nNI3Su6iXrRdtpS3aGBwepHdRL9v6tvH6\nha+nc34n8+fNPxUkhk4MFX+eLP4cPjlM5/xi4OTYEgRDJ4cYGR1hw6oNvO38t1XqVE0uCzsW0tfT\n95reo6+nj13X7OLIy0c4t/NcutqnPwvtm1a8qaFy/ohrNkzrdElELAOWTVHsUErp1AxSs3W65KLF\nwSXv+Jlxr/X399Pf3z9FdaWzx4uvvMjtj9zO945/j03nbWJz72Yu7rnYHxzpLDAwMMDAwMC45wYH\nB9mzZw/M1QnSGg0ZZdnDwJ0ppbvK9UUUp0u2p5Tun2SbS4F9H9m0gJ2PDp3BmkuS1Npyj8nIdjOu\niOiNiA3AhUBbRGwol+6aMgci4qqazXYCN0XEeyPizcDngG8DX5pqf6PtVRpeIkmScv4y30pxv4sx\nYwnpSmBP+XgdsHisQErpjojoAu6huBnXV4B3T3WPDIARQ4YkSZWS8z4Z1wLXTlHmB0ZrppRuAW6Z\n9v462qe7iSRJyqhl5i4xZEiSVC0tEzJG2w0ZkiRVScuEjGTIkCSpUlonZHQaMiRJqpLWCRkdzsAq\nSVKVGDIkSVIWLRMyosNp3iVJqpKWCRl02pMhSVKVtEzIsCdDkqRqaZmQMa9zQbOrIEmSarRMyKDT\nngxJkqqkZUJGW+c5za6CJEmq0TIhwzEZkiRVS8uEjHZDhiRJldI6IWOetxWXJKlKWiZkdLR5nwxJ\nkqqkZUKGPRmSJFVL64SMNkOGJElVYsiQJElZtEzI6JjnmAxJkqqkZUKGPRmSJFWLIUOSJGXRMiHD\n0yWSJFVLy4QMezIkSaqWbCEjIm6MiEci4lhEvNTgNvdGxOiE5YFGtjVkSJJULfMzvnc7cB/wNeCX\np7Hdg8AHgCjXhxvamTfjkiSpUrKFjJTSJwAi4v3T3HQ4pfTd6e7P24pLklQtVRyTsSUijkTEgYi4\nOyKWNrLR/Hk5O2UkSdJ0Ve2X+UFgF/A08EPAbcADEXF5SinV29CeDEmSqmVaISMibgN21CmSgPUp\npYMzqUxK6b6a1W9GxNeBp4AtwMP1tv34jo+z9HXjOz36+/vp7++fSVUkSWopAwMDDAwMjHtucHAw\n6z5jig6C8YUjlgHLpih2KKV0smab9wN3pZQaOu1xmn3+D/AbKaU/nOT1S4F9j+19jMveetlMdiFJ\n0llp//79bNy4EWBjSmn/mX7/afVkpJReBF4805WYTEScTxFqvjNV2bZ5bfkrJEmSGpbzPhm9EbEB\nuBBoi4gN5dJdU+ZARFxVPu6OiDsiYlNEXBgRW4G/Ag4CuxvYX6ZPIkmSZiLnwM9bge0162PdMFcC\ne8rH64DF5eMR4EfKbZYAhynCxW+mlE5krKckScog530yrgWunaJMW83j48BP5aqPJEmaXVW8T4Yk\nSWoBhgxJkpSFIUOSJGVhyJAkSVkYMiRJUhaGDEmSlIUhQ5IkZWHIkCRJWRgyJElSFoYMSZKUhSFD\nkiRlYciQJElZGDIkSVIWhgxJkpSFIUOSJGVhyJAkSVkYMiRJUhaGDEmSlIUhQ5IkZWHIkCRJWRgy\nJElSFoYMSZKUhSFDlTQwMNDsKugMsj1bi+2pRmUJGRFxYUT8UUQciohXIuI/I+KWiGhvYNtbI+Jw\nud3fR8TaHHVUtfkl1lpsz9Zie6pRuXoyLgYCuA54I3AD8EHgt+ptFBE7gA8DvwJcBhwDdkdER6Z6\nSpKkTObneNOU0m5gd81Tz0TEpyiCxsfqbPoR4JMppS8DRMR24Ajws8B9OeoqSZLymM0xGUuAlyZ7\nMSLWAKuAfxx7LqV0FHgMuDx77SRJ0hmVpSdjonJcxYeBX6tTbBWQKHouah0pX5vMAoAnnnjitVRR\nFTM4OMj+/fubXQ2dIbZna7E9W0fNb+eCHO8fKaXGC0fcBuyoUyQB61NKB2u2OQ/4J+ChlNL1dd77\ncuCrwOqU0pGa5/8MGE0p9U+y3S8Af9rwh5AkSRO9L6X0hTP9ptPtyfgUcO8UZQ6NPYiI1cBDwFfr\nBYzS8xSDRVcyvjdjJfBvdbbbDbwPeAY4PsU+JEnS/1sAvIHx4yjPmGn1ZEzrjYsejIeAfwF+KTWw\no4g4DNyZUrqrXF9EETi2p5Tuz1JRSZKURa77ZKymOEXy3xRXk6yIiJURsXJCuQMRcVXNUzuBmyLi\nvRHxZuBzwLeBL+WopyRJyifXwM+fBC4ql2fL54JizEZbTbl1wOKxlZTSHRHRBdxDcTXKV4B3p5Re\nzVRPSZKUSbbTJZIk6ezm3CWSJCkLQ4YkScpizoeMiPjViHg6IoYi4tGIeGuz66SpRcTNETE6YXl8\nQhkny6uoiHh7RPx1RDxXtt2205Sp234R0RkRfxARL0TE9yPizyNixex9Co2Zqj0j4t7THK8PTChj\ne1ZERPx6ROyNiKMRcSQi/jIifvg05bIfo3M6ZETEzwO/DdwM/CjwHxQTqvU0tWJq1Dco7oOyqlyu\nGHvByfIqrxv4d+BDFAO6x2mw/XYCPw38HPAOYDWwK2+1NYm67Vl6kPHH68QbJNqe1fF24PeATcBP\nAO3A30XEOWMFZu0YTSnN2QV4FPidmvWguOT1Y82um8uUbXczsL/O64eBG2rWFwFDwDXNrrvLD7TV\nKLBtOu1Xrg8DV9eU6Svf67Jmf6azeZmkPe8F/qLONrZnhRegp2yLK2qem5VjdM72ZEREO7CR8ROq\nJeAfcEK1uWJd2T37VER8PiJ6wcny5roG2+8tFJfQ15Z5EvgWtnFVbSm73g9ExN0RsbTmtY3YnlW2\nhKKH6iWY3WN0zoYMimTWxvQnVFM1PAp8AHgX8EFgDbAnIrqZ+WR5qoZG2m8l8Gr5xTZZGVXHg8B2\n4McpbrD4TuCBiIjy9VXYnpVUttFOiuk9xsa9zdoxOiuzsEoTpZRq75P/jYjYS3GH2GuAA82plaTT\nSSndV7P6zYj4OvAUsAV4uCmVUqPuBt4I/Fgzdj6XezJeAEYo0latlRSTrWkOSSkNAgeBtYyfLK+W\nbTs3NNJ+zwMd5fxEk5VRRaWUnqb4Dh67GsH2rKCI+H3gPcCWlNJ3al6atWN0zoaMlNIJYB+wdey5\nsltoK/DPzaqXZiYiFlJ8YR0uv8CeZ3zbLqIYKW3bVlyD7bcPODmhTB9wAfC1WausZiQizgeWAWM/\nXLZnxZQB4yrgypTSt2pfm81jdK6fLvk08NmI2AfsBW4AuoDPNrNSmlpE3An8DcUpkvOATwAngC+W\nRcYmy/sv4BngkzhZXmWUY2fWUvxvCOCiiNgAvJRSepYp2i+ldDQi/hj4dET8L/B94HeBR1JKe2f1\nw6hue5bLzRSXLj5flrudoudxN9ieVRMRd1NcYrwNOFYzOelgSul4+Xh2jtFmX1pzBi7N+VD5FzRE\nka7e0uw6uTTUbgPlP+ghitHKXwDWTChzC8VlVq9QfJmtbXa9XU61zTspLmUbmbD8SaPtB3RSXMv/\nQvkFdj+wotmf7Wxc6rUnsAD4W4qAcRw4BHwGWG57VnOZpC1HgO0TymU/Rp0gTZIkZTFnx2RIkqRq\nM2RIkqQsDBmSJCkLQ4YkScrCkCFJkrIwZEiSpCwMGZIkKQtDhiRJysKQIUmSsjBkSJKkLAwZkiQp\ni/8DQKeq1o8IG8EAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x116a6cd30>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"\n",
"for i in range(10):\n",
" plt.plot(async_history[:, i])\n",
"plt.title('Coefficient trajectories for Async ADMM')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Plots"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Below we will plot the \"primal residual\" (`primal_res`) as well as the \"dual tolerance\" (`eps_dual`); the former attempts to measure how much consensus there is, and the latter tracks the size of the dual variables (`u`). Both are used in the ultimate convergence criterion."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"metrics_base = pd.DataFrame(metrics_base)\n",
"metrics_v1 = pd.DataFrame(metrics_v1)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x116861668>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x116855748>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"\n",
"x, y = 'time_elapsed', 'primal_res'\n",
"\n",
"ax = metrics_base.plot(x=x, y=y, label='standard ADMM', title=y)\n",
"metrics_v1.plot(ax=ax, x=x, y=y, label='single update async-ADMM')"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x116a88a20>"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nI7GxsWzYsMGmfMeOHZw+fZouXbpkui8XFxfatm3LkiVLMiwLDw+na9euufykojCShJ+J3Rd3s/ro\naqr4Ppr4PKFZAAAgAElEQVTrhEIUBHFxcYwePZoqVarg4uJCQEAA7du3Z//+/QC0bt2aH3/80Xpd\n22AwULVqVQCSk5P58MMPady4MT4+Pnh4eNCyZUu2bt1qs4+0dadNm8a8efMIDAzExcWFJ598kj17\n9mSIafXq1dSpUwdXV1fq1avH6tWrM4196tSpPP300/j5+eHm5kbjxo1ZsWJFhnoGg4FRo0YRHh5O\nnTp1cHFxYePGjQDExMQQGhqKj48Pvr6+DB48mOjo6Fwdw5UrV5KQkECfPn144YUXWLlyJUlJSTle\n39nZmW+//ZYSJUowadKkDMvLlStHy5YtCQ8PtykPDw+nXr16PP7441luOyQkhPXr1xMbG2st2717\nNydOnCAkJAStdY7jFIWTJPx0tNbM3j2bpxc8TTmvcszsNNPeIQnxyIwYMYK5c+fSp08f5syZw7hx\n46z38Ab44IMPqF+/Pn5+foSFhbF48WK+/PJLAGJjY1mwYAGtW7dmypQpTJgwgaioKDp27MjBgwcz\n7CssLIypU6cycuRIJk2axJkzZ3j++ecxmUzWOps2baJ37944ODgwefJkevToweDBgzM9MZgxYwYN\nGzbk448/5tNPP8XR0ZG+fftmaAkDbN68mTfffJN+/foxffp0KleuDED37t0JCwtj4MCBTJo0iQsX\nLjBo0KBcdXWHh4fTunVr/P396devH7GxsZl2o2fH3d2dnj17cvHiReuxTy84OJgffvjB+jwHk8nE\n8uXLCQkJyXa7vXr1QinFypUrbeKtWbMmDRo0yFWMonCSW+umMmszg1YPYvHBxbz+5OtMbT8VJ6OT\nvcMShVh8PBw9mv/7qVkT3Nwefjvr169n+PDhTJnyv3tNpL+W3LZtW8qVK0d0dDTBwcE265YoUYIz\nZ87g4PC/r5Thw4dTo0YNZs6cybx582zqnz9/nhMnTuDl5QXAY489Ro8ePdi4cSOdO3cG4J133qF0\n6dL8+uuveHh4ANCqVSvatWtnTdJp/v77b5ydna3vX3vtNRo0aMC0adPo1KmTTd3jx49z+PBhatSo\nYS1bs2YN27dvZ+rUqbz55psAvPzyywQFBeXo2AFcv36d//73v9au+AoVKvDUU08RFhbG888/n+Pt\n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\nnXuv4Z89exaDwcC0adOYN28egYGBuLi48OSTT2baIlq+fDmPP/44rq6u1KtXj9WrV+d4XMClS5cY\nMmQIpUuXxsXFhTp16vDNN9/cd720GL/99tsMy+693j5+/HgMBgPHjh2jb9++eHt74+fnx+jRo0lM\nTLRZNykpiTFjxuDv74+Xlxc9evTg4sWLGfZx7tw5XnnlFWrWrImbmxt+fn707duXs2fPWussWrSI\nvn37Av/rRjYajfzyyy/WOhs2bKBly5Z4eHjg5eVF165d+euvv+77+W/dusXYsWOpV68enp6eeHt7\n07lzZw4ePJih7syZM6lTpw7u7u6UKFGCJk2asHTpUgC2bt2KwWBgzZo1GdYLDw/HYDCwc+dOwPJ3\n4unpyaVLl+jRoweenp74+/szbty4DF3nWmumT59OvXr1cHV1xd/fn06dOrF3b7aPdrc6f/4827dv\nJzg4mBdeeIFTp07xxx9/5GjdNG+//Tbt27dn+fLlnDhxIsPy4OBg/vOf/9iUrV27lrt379K3b99M\nLwcopQgODubGjRtERERYy5OTk/n+++8JCQnJdL38VKQT/rrj6xiwcgB9avfh/7X8f/YOR4gCbcSI\nEcydO5c+ffowZ84cxo0bh5ubG0eOHLHWUUpl2goNCwtj6tSpjBw5kkmTJnHmzBmef/55TCaTtc6P\nP/5Iv379cHZ2ZvLkyfTq1YuhQ4eyd+/e+7Zsr127RtOmTdmyZQujRo1ixowZVK9enaFDhzJjxow8\nOwZpcfTt25ekpCQmT55Mly5dmDFjBiNGjLCpm7bvjh078tlnn+Ho6EiXLl0yfJbdu3fzxx9/EBwc\nzMyZM3n55ZfZvHkzrVu3JiEhAYBWrVoxatQoAD744AMWL17Md999R61atQD47rvv6Nq1K56enkyZ\nMoUPP/yQI0eO0KJFi/te8z916hRr166lW7dufPHFF7z99tscPnyYoKAgrly5Yq03b9483njjDerU\nqcP06dP56KOPaNCggTWJBwUFUaFChUy7zMPCwggMDKRp06bW42g2m+nQoQOlSpXi888/JygoiGnT\npvH111/brDtkyBDGjBlDpUqVmDJlCu+++y6urq45Ttrh4eF4eHjQpUsXmjRpQrVq1bLt1s/Kiy++\niNlstknOaUJCQrh06RJbt261li1ZsoS2bdtSqlSpLLdZuXJlmjVrZtM7sH79emJjY+nXr1+uY3xo\n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\nA57KXijmuG9+AAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x116a1ae48>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x, y = 'time_elapsed', 'eps_dual'\n",
"\n",
"ax = metrics_base.plot(x=x, y=y, label='standard ADMM', title=y)\n",
"metrics_v1.plot(x=x, y=y, ax=ax, label='single update async-ADMM')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The dual variables `u` are simply the running sum of local residuals `betas[i] - z`; we expect $u \\rightarrow u^*$ to converge to the optimal dual variables which would imply asymptotic stability in the above, but we do see a *slight* updward trend."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Actual Convergence Time"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The above plots were all skewed in that `matplotlib` interpolates values for us; this makes synchronous ADMM look better than asynchronous ADMM. In fact, if we track the actual `time_elapsed` to convergence, we find async converges faster.\n",
"\n",
"This is because synchronous is blocked from an update until all workers have reported back, whereas asynchronous is constantly updating it's estimates, allowing it to converge in the interim times between synchronous updates.\n",
"\n",
"The standard convergence criterion for ADMM can be informally stated as follows: \n",
"- the size of the difference between the global consensus estimate and the individual worker estimates should be \"small\", where \"small\" is measured by the current size of all the estimates\n",
"- the size of the difference between the current global consensus estimate and the old global consensus estimate should be \"small\", where \"small\" is measured by the current size of the dual variables (this difference is a proxy for dual variable feasibility)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"metrics_base['primal_conv'] = metrics_base.primal_res - metrics_base.eps_primal\n",
"metrics_v1['primal_conv'] = metrics_v1.primal_res - metrics_v1.eps_primal"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"metrics_base['dual_conv'] = metrics_base.dual_res - metrics_base.eps_dual\n",
"metrics_v1['dual_conv'] = metrics_v1.dual_res - metrics_v1.eps_dual"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"standard_primal_conv = metrics_base.loc[np.where(metrics_base['primal_conv'] < 0)[0][0], 'time_elapsed']\n",
"async_primal_conv = metrics_v1.loc[np.where(metrics_v1['primal_conv'] < 0)[0][0], 'time_elapsed']\n",
"\n",
"standard_dual_conv = metrics_base.loc[np.where(metrics_base['dual_conv'] < 0)[0][0], 'time_elapsed']\n",
"async_dual_conv = metrics_v1.loc[np.where(metrics_v1['dual_conv'] < 0)[0][0], 'time_elapsed']\n",
"\n",
"standard_converged = max(standard_primal_conv, standard_dual_conv)\n",
"async_converged = max(async_primal_conv, async_dual_conv)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Standard converged in 23.239s\n",
"Async converged in 14.121s\n"
]
}
],
"source": [
"print('Standard converged in {:.3f}s'.format(standard_converged))\n",
"print('Async converged in {:.3f}s'.format(async_converged))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Convergence Plots"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that we interpolated between update times with constants, we can better see the path to convergence of both synchronous and asynchronous ADMM; the algorithms are converged whenever both the primal and dual lines are below 0."
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"all_metrics = pd.merge(metrics_base, metrics_v1, on='time_elapsed', how='outer', suffixes=('_stan', '_async'))\n",
"all_metrics.sort_values(by='time_elapsed', inplace='True')\n",
"all_metrics.fillna(method='ffill', inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x117c9f7b8>"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nMoTKlSszceJELr30UoYPH86KFSuK7An88ccfOfvss3nnnXe45ZZbmDp1Ki1atGD48OFMnTq11D6D\n7HYMHjyYgwcPMnHiRPr06cPUqVO58cYbc+XNrrtnz5488sgjVKxYkT59+uS7lo8//pgPP/yQ5ORk\nnnzySf7whz+wZMkSunbtyv79+wH4/e9/zy233ALAvffey+zZs3n++ec59dRTAXj++efp27cvCQkJ\nTJo0ifvvv581a9Zw/vnnFzmmdMOGDbzyyiv069ePxx9/nD/96U98/vnndOnShR9++CEn39NPP82t\nt95KmzZteOKJJxg3bhzt2rXLCS67dOlCgwYNwj76Tk1NpXnz5px99tk5n2NWVhY9evSgdu3aPPbY\nY3Tp0oXJkyfzt7/9Lde51157LaNHj6ZRo0ZMmjSJP//5z8TFxRU7mJwzZw5Vq1alT58+dOrUiWbN\nmhX6eL4gV111FVlZWbmCxmwpKSls3bqVpUuX5qSlpaXRrVs3ateuXWCZjRs35pxzzsnVm/rGG2+w\ne/duhgwZUuI2HhXnXJnagPaAW758uRMREeeWL1/uyvPvxcTERDdy5MhC8wwbNsw1adIkZ3/jxo3O\nzFzt2rVdRkZGTvorr7ziAoGAe/3113PSTj/9dNewYUO3b9++nLT33nvPmVmuMp1zzszc2LFjc/aH\nDx/uTj75ZLdz585c+ZKTk12NGjXc/v37C2xzdhtnzZqV71jeesaMGePMzA0YMCBXvptvvtkFAgG3\nevVq55xzn376qTOzfJ/XFVdc4QKBQK4yw7Vt2bJlzszc7Nmzc9JeeuklFwgE3Lvvvpsr7549e1yN\nGjXciBEjcqX/+OOPLjEx0d14440FXrtzzh08eDBf2qZNm1xsbKwbP358Tlr//v3d6aefXmhZd999\nt4uLi3O7d+/OSdu+fburWLGiGzduXE7asGHDXCAQcBMmTMh1fvv27V2nTp1y9t955x1nZm706NGF\n1luYtm3buquuuipn/5577nF16tRxmZmZufINGzbMJSQkFFjOqlWrnJm5//mf/8lJ69KlS85n0qlT\nJ3f99dc755zbtWuXq1y5sps9e7ZbunSpMzM3b968nPOeffZZFwgE3PLly920adNc9erVc34OBg8e\n7Lp16+acc65x48auX79+hV5fUb93so8D7V0hcZ16REVETjD79sGKFZHd9u0rvfYmJiaybNkyvv/+\n+xKfO2TIEKpVq5azf/755+OcY8OGDQB8//33fP7551x99dXExcXlynf66acXWf78+fPp168fmZmZ\n/PTTTznQNd/1AAAgAElEQVRb9+7dycjIKPZj3OIwM26++eZcaSNHjsQ5xxtvvAH43l0zY+TIkbny\njRo1Kt/j1sqVK+d8f/jwYXbs2EHTpk1JTEwsVrsXL15MRkYGQ4YMyXXtZsbZZ5/Nv//970LPDx3T\nm5WVxY4dO4iPj6dly5a56k9MTOS7774LO6Qi29ChQ9m/fz8vvfRSTtoLL7xAZmYmV1xxRb78eXuR\nzz///JyfCYB58+YRCAS4//77C72Ggnz22WesXr2alJSUnLTk5GTS09N56623SlRW1apVAfj555/D\nHk9JSWH+/PkcPnyYuXPnUqFCBfr3719kuYMHD2bfvn289tpr7Nmzh9deey3sZxVpFY55jSIiElVr\n10KHDpGtY/lyaN++dMqaNGkSw4YNo0GDBnTo0IHevXszdOjQYo3fbNCgQa79xMREwI9PBHLGQzZr\n1izfuc2bN2flypUFlr19+3Z27drF3/72N2bMmJHvuJnx448/FtnGkmjevHmu/WbNmhEIBHJmtG/e\nvJlAIJDvesIt87N//34eeughnn32WbZs2ZITqJoZGRkZRbblq6++wjlH165d8x0zM6pXr17o+c45\npkyZwvTp0/nmm29yhkuYGUlJSTn57rzzTpYsWcJZZ51F8+bN6d69OykpKZx77rm5rq9Tp06kpqZy\nzTXXAP7R+DnnnEPTpk1z1RsbG0utWrVypdWoUSPnZwL8sIH69evn/LyEs3PnTg4ePJizHxcXl/NH\nz+zZs6latSqNGzfm66+/Bnzg36hRI1JTU+nVq1ehn02o7BnzCQkJYY8PGTKEO+64gzfeeIM5c+bQ\nt29fqlSpUmS5SUlJXHjhhcyZM4e9e/eSlZXFwIEDi92u0qJAVETkBNOqlQ8UI11HaRk0aBCdO3dm\nwYIFLFq0iEcffZRHHnmEBQsW0KNHj0LPjYmJCZuet3fwSGTPOL7yyiu5+uqrw+Zp27ZtgecXNP40\n70zmwhzNbPY//vGPzJo1i9GjR3POOedQvXp1zIzLL7+8WG3IysrCzJg9ezZ169bNd7xChcJDjAkT\nJnD//fdz3XXXMX78eGrWrEkgEODWW2/NVX+rVq1Yt24dr732Gv/617+YP38+Tz31FA888AAPPPBA\nTr6hQ4cyatQotm7dyi+//MKHH37IU089la/egn4mSurSSy/l3XffBfx9uPrqq5k5cybge2P37t1L\n69atc51jZmzfvp19+/YRHx9frHo+//xzIP8fIdnq1avH73//ex577DE++OCDXOuGFiUlJYXrr7+e\n77//nl69ehUY7EaSAlERkRNMfHzp9VYeK3Xr1mXEiBGMGDGC9PR02rVrx4QJE4oMRIvSqFEjgLAz\nksOlhapduzYJCQlkZmZywQUXlLjuGjVqALBr165c6aGz1vP66quvctqc3casrKyc3uFGjRqRlZXF\n119/TYsWLXLyhVtjdd68eQwbNoxJkyblpB04cCBfewoKdps1a4Zzjtq1ax/R9c+bN48LLrgg3ySh\nXbt25ZtoExcXx6BBgxg0aBCHDx9mwIABTJgwgT//+c9UqlQJ8D2Dt912G2lpaezbt49KlSrlzPgv\nqWbNmrFo0SJ27dpVYK/o5MmTc/Wi1q9fH/Cz+L/77jvGjx9Pqzx/ke3cuZMbbriBhQsX5npsX5jn\nnnuOQCDARRddVGCelJQUrrvuOmrWrFmi3tYBAwZw4403smzZsnyz748VjREVEZHjVlZWFrt3786V\nlpSURP369fMtW3QkTjrpJNq0acNzzz3HvpCBre+++y6rV68u9NxAIMBll13GvHnz+OKLL/IdT09P\nL/T8hIQEkpKSci2FBDBt2rSwwZ9zjmnTpuVKmzp1KmZGz549AejVqxfOuXwz9qdMmZKvzJiYmHw9\nn1OnTs21ogBAlSpVcM7lC1B79OhBtWrVeOihhzh8+HC+9hZ1/TExMfl6pufOnZtvqakdO3bk2q9Q\noQKnnnoqzjkOHTqUk16rVi169erF888/T2pqKj179qRmzZqFtqEgl112GVlZWYwdO7bAPO3ateOC\nCy7I2bKDzuzH8rfffjuXXnpprm348OE0b9682LPnJ06cyOLFixkyZEjY4SPZBg4cyJgxY5g2bVqR\nPdGhqlSpwl//+lfGjBlDv379in1eaTpmPaJmdhfwEDDFOXdbSPo44DogEfg/4A/OucL/DBURkRPC\nzz//zCmnnMLAgQM544wzqFq1KosXL+aTTz5h8uTJpVLHQw89RP/+/Tn33HO55ppr2LFjB9OmTeP0\n00/P90abvLIXHD/77LO5/vrrad26NTt27GD58uW88847RQZj1113HRMnTuT666+nY8eOvPfeezlj\nL8P55ptvuOSSS+jZsycffPABqampXHnllTkTq8444wySk5N56qmn2LVrF+eeey5Llizh66+/zldm\n3759ef7556lWrRqtW7fmP//5D0uWLMk1PhPgzDPPJCYmhkceeYRdu3ZRuXJlunXrRlJSEtOnT2fo\n0KG0b9+eIUOGULt2bTZv3szrr7/O7373u0KXsOrbty8PPvgg1157Leeeey6rV68mNTU1X8DVvXt3\n6tWrx3nnnUfdunX58ssvmTZtWtixkEOHDmXgwIGYGePHjy/0sy9Mly5duOqqq5g6dSr//e9/6dmz\nJ1lZWbz//vtccMEF3HTTTWHPO3jwIPPnz+eiiy7K6anN6+KLL2bq1Kmkp6fnfNaHDx/OCU7379/P\npk2beOWVV1i9ejXdunULOwY5VLVq1Yo9sSrvz8FVV11VrPMiprAp9aW1AZ2ADcBKYHJI+p3ADqAv\n0AZYCHwNVCqkLC3fJCISojwv33Tw4EF35513unbt2rnq1au7hIQE165dOzdjxoxc+YYNG+aaNm2a\ns79x40YXCATc5MmT85UZCARyLenjnHMvvviia926tYuNjXVt2rRxL7/8shs4cKBr3bp1kedu377d\njRw50jVq1MhVrlzZ1a9f31100UXumWeeKfL6fvnlF3f99de7GjVquOrVq7vk5GSXnp6er54xY8a4\nQCDg1q5d6wYNGuSqV6/uatWq5W699VZ34MCBXGUeOHDAjRo1ytWuXdslJCS4/v37uy1btuQrMyMj\nww0fPtzVqVPHVatWzfXu3dv997//dU2aNHHXXnttrjKfeeYZ17x5c1exYsV8Szm9++67rlevXq5G\njRouPj7etWjRwl177bVuxYoVhV77gQMH3B133OFOPvlkV6VKFde5c2e3bNky17VrV3fBBRfk5Hv6\n6addly5dXO3atV1cXJxr0aKFu+uuu9zPP/+cr8yDBw+6mjVruho1auT7XJzzPyfVqlXLlz5mzBgX\nExOTKy0rK8s99thjOT8XdevWdX369HErV64s8Jrmz5/vAoGAe/bZZwvM8+6777pAIOCefPLJnDYF\nAoGcrWrVqq5p06Zu0KBBbsGCBWHL6NKli2vbtm2BdTjn3NKlS10gEChw+abCNGnSxF188cWF5imt\n5ZvMRXj1fDOrCiwH/gDcB6x0wR5RM9sK/K9z7vHgfjVgG3C1c+7FAsprDyxfvnw57cvaICcRkQhY\n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\nxGazsXHjRsD6PgkLC2P//v307t2bsLAwKlWqxKOPPprnFriI8MorrxAdHU1wcDCVKlWia9eupKSk\n5HttAL///jvr168nNjaWf/zjH+zcuZMNGzYUqG2Oxx57jE6dOrFo0SK2b9+eZ39sbCzvv/++U9lH\nH33EqVOn6N+/v9vb+sYYYmNjOXz4MKtXr3aUnzt3jg8++IC4uDi37XxFe0RVyfbkkzBkiOf99ep5\nbx8SAm5uXzi59lrv+zt08H6MwEDv7UGvA+Dzz+HYMejVK//zqBJlxIgRLFmyhFGjRtGoUSMOHz7M\nV199xbZt22jatClg/XJ112uXkJDAiRMnGDlyJMYYpkyZwh133MHOnTsdPagrVqxgwIABXHfddUye\nPJmjR48ybNgwqlevnm9P4F9//cX1119PQEAADz74IJGRkXz66acMGzaM48eP8+CDD16S9yAnjv79\n+xMVFcXkyZPZsGEDM2fOJC0tjXnz5jnqDhs2jMTERO68805uuOEG1q5dS/fu3fNcy3fffceGDRuI\njY2lRo0a7N69m1mzZtGhQwe2bt1KUFAQf//733nwwQd59dVXeeaZZ2jYsCEAjRo1AuDdd98lPj6e\nLl26MHXqVDIyMpg9ezY33XQTP/zwA7Vq1fJ4TTt37uSjjz6iX79+REVFcfDgQebMmUP79u3ZunUr\nVapUAeCNN97goYceon///owePZrTp0+zefNmNm7cyIABA2jfvj01a9YkISGBXi4/HxISEqhfvz7X\nX3+9433Mzs6mc+fOtG7dmpdeeonPPvuM6dOnU79+fUaMGOFoO3ToUObPn0/37t0ZPnw4mZmZrF+/\nng0bNhRo+cjExETKli1L9+7dKVOmDPXq1SMhIYHWrVvn2za3u+66i1WrVrF69Wrq13deYj0uLo5n\nn32WdevW0b59e8Ba07Njx45UrFjR4zHr1KlD69atSUpKonPnzgB88sknHDt2jAEDBvDKK68UKsaL\nIiLFagNiAElOThal1BVk0CCRG2/0dxRFUnJyspTkn4sREREyatQor3Xi4+MlKirK8Xr37t1ijJGK\nFStKenq6o/yjjz4Sm80mK1ascJRde+21UqtWLcnIyHCUffnll2KMcTqmiIgxRiZMmOB4PWzYMKle\nvbocPXrUqV5sbKyUL19eTp8+7THmnBjnz5+fZ5/recaPHy/GGOnTp49Tvfvvv19sNpts2bJFRER+\n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\nB2X0eqlGdIuFAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1179f9160>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(2, 1, sharex=True, figsize=(8, 5))\n",
"\n",
"x, y = 'time_elapsed', 'primal_conv'\n",
"\n",
"all_metrics.plot(ax=ax[0], x=x, y=y + '_stan', label='standard ADMM', title=y, color='red')\n",
"all_metrics.plot(x=x, y=y + '_async', ax=ax[0], label='single update async-ADMM', color='blue', title='primal convergence')\n",
"\n",
"y = 'dual_conv'\n",
"\n",
"all_metrics.plot(ax=ax[1], x=x, y=y + '_stan', label='standard ADMM', title=y, color='red', linestyle='--')\n",
"all_metrics.plot(x=x, y=y + '_async', ax=ax[1], label='single update async-ADMM', color='blue', linestyle='--',\n",
" title='dual convergence')"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python [default]",
"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.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment