1318 lines
281 KiB
Plaintext
1318 lines
281 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"# Aragon Conviction Voting Model - Version 2\n",
|
||
"\n",
|
||
"New to this model are the following elements:\n",
|
||
"\n",
|
||
"* Influence - Participant social network where participants influence each others perception of a a proposal.\n",
|
||
"* Conflict - A network with the notion of supporting one proposal may mean going against an alternative proposal. For proposals with conflicts, an edge is created between them with a function to calculate the degree of conflict.\n",
|
||
"* Sentiment - Participant sentiment\n",
|
||
"* Updated trigger function to better represent 1Hive's implementation\n",
|
||
"* Updated plotting\n",
|
||
"* Updated affinity distribution to between -1, 1\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"# An Introduction to Conviction Voting\n",
|
||
"\n",
|
||
"Conviction Voting is an approach to organizing a communities preferences into discrete decisions in the management of that communities resources. Strictly speaking conviction voting is less like voting and more like signal processing. Framing the approach and the initial algorithm design was done by Michael Zargham and published in a short research proposal [Social Sensor Fusion](https://github.com/BlockScience/conviction/blob/master/social-sensorfusion.pdf). This work is based on a dynamic resource allocation algorithm presented in Zargham's PhD Thesis.\n",
|
||
"\n",
|
||
"The work proceeded in collaboration with the Commons Stack, including expanding on the pythin implementation to makeup part of the Commons Simulator game. An implemention of Conviction Voting as a smart contract within the Aragon Framework was developed by 1hive.org and is currently being used for community decision making around allocations their community currency, Honey.\n",
|
||
"\n",
|
||
"\n",
|
||
"## The Word Problem\n",
|
||
"\n",
|
||
"Suppose a group of people want to coordinate to make a collective decision. Social dynamics such as discussions, signaling, and even changing ones mind based on feedback from others input play an important role in these processes. While the actual decision making process involves a lot of informal processes, in order to be fair the ultimate decision making process still requires a set of formal rules that the community collecively agrees to, which serves to functionally channel a plurality of preferences into a discrete outcomes. In our case we are interested in a procedure which supports asynchronous interactions, an provides visibility into likely outcomes prior to their resolution to serve as a driver of good faith, debate and healthy forms of coalition building. Furthermore, participations should be able to show support for multiple initiatives, and to vary the level of support shown. Participants a quantity of signaling power which may be fixed or variable, homogenous or heterogenous. For the purpose of this document, we'll focus on the case where the discrete decisions to be made are decisions to allocate funds from a shared funding pool towards projects of interest to the community.\n",
|
||
"\n",
|
||
"## Converting to a Math Problem\n",
|
||
"\n",
|
||
"Let's start taking these words and constructing a mathematical representation that supports a design that meets the description above. To start we need to define participants.\n",
|
||
"\n",
|
||
"### Participants\n",
|
||
"Let $\\mathcal{A}$ be the set of participants. Consider a participant $a\\in \\mathcal{A}$. Any participant $a$ has some capacity to participate in the voting process $h[a]$. In a fixed quantity, homogenous system $h[a] = h$ for all $a\\in \\mathcal{A}$ where $h$ is a constant. The access control process managing how one becomes a participant determines the total supply of \"votes\" $S = \\sum_{a\\in \\mathcal{A}} = n\\cdot h$ where the number of participants is $n = |\\mathcal{A}|$. In a smart contract setting, the set $\\mathcal{A}$ is a set of addresses, and $h[a]$ is a quantity of tokens held by each address $a\\in \\mathcal{A}$. \n",
|
||
"\n",
|
||
"### Proposals & Shares Resources\n",
|
||
"Next, we introduce the idea of proposals. Consider a proposal $i\\in \\mathcal{C}$. Any proposal $i$ is associated with a request for resources $r[i]$. Those requested resources would be allocated from a constrained pool of communal resources currently totaling $R$. The pool of resources may become depleted because when a proposal $i$ passes $R^+= R-r[i]$. Therefore it makes sense for us to consider what fraction of the shared resources are being request $\\mu_i = \\frac{r[i]}{R}$, which means that thre resource depletion from passing proposals can be bounded by requiring $\\mu_i < \\mu$ where $\\mu$ is a constant representing the maximum fraction of the shared resources which can be dispersed by any one proposal. In order for the system to be sustainable a source of new resources is required. In the case where $R$ is funding, new funding can come from revenues, donations, or in some DAO use cases minting tokens.\n",
|
||
"\n",
|
||
"### Participants Preferences for Proposals\n",
|
||
"\n",
|
||
"Most of the interesting information in this system is distributed amongst the participants and it manifests as preferences over the proposals. This can be thought of as a matrix $W\\in \\mathbb{R}^{n \\times m}$.\n",
|
||
"\n",
|
||
"\n",
|
||
"These private hidden signals drive discussions and voting actions. Each participant individually decides how to allocate their votes across the available proposals. Participant $a$ supports proposal $i$ by setting $x[a,i]>0$ but they are limited by their capacity $\\sum_{k\\in \\mathcal{C}} x[a,k] \\le h[a]$. Assuming each participant chooses a subset of the proposals to support, a support graph is formed.\n",
|
||
"\n",
|
||
"\n",
|
||
"## Aggregating Information\n",
|
||
"\n",
|
||
"In order to break out of the synchronous voting model, a dynamical systems model of this system is introduced.\n",
|
||
"\n",
|
||
"### Participants Allocate Voting Power\n",
|
||
"\n",
|
||
"\n",
|
||
"### System Accounts Proposal Conviction\n",
|
||
"\n",
|
||
"\n",
|
||
"### Understanding Alpha\n",
|
||
"https://www.desmos.com/calculator/x9uc6w72lm\n",
|
||
"https://www.desmos.com/calculator/0lmtia9jql\n",
|
||
"\n",
|
||
"\n",
|
||
"## Converting Signals to Discrete Decisions\n",
|
||
"\n",
|
||
"Conviction as kinetic energy and Trigger function as required activation energy.\n",
|
||
"\n",
|
||
"### The Trigger Function\n",
|
||
"\n",
|
||
"https://www.desmos.com/calculator/yxklrjs5m3\n",
|
||
"\n",
|
||
"Below we show a sweep of the trigger function threshold:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/home/aclarkdata/anaconda3/lib/python3.7/site-packages/statsmodels/tools/_testing.py:19: FutureWarning: pandas.util.testing is deprecated. Use the functions in the public API at pandas.testing instead.\n",
|
||
" import pandas.util.testing as tm\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"from model.model.conviction_helper_functions import *\n",
|
||
"import warnings\n",
|
||
"warnings.filterwarnings(\"ignore\")\n",
|
||
"\n",
|
||
"beta = .2 #later we should set this to be param so we can sweep it\n",
|
||
"# tuning param for the trigger function\n",
|
||
"rho = .001\n",
|
||
"alpha = 1 - 0.9999599"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"supply_sweep = trigger_sweep('effective_supply',trigger_threshold,beta,rho,alpha)\n",
|
||
"alpha_sweep = trigger_sweep('alpha',trigger_threshold,beta,rho,alpha)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAABI8AAAR8CAYAAAAU87S1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzdebgte13f+c/3Xjj7nuECMhiVSRREwRgHFBM14tSi6YhTFFojJM5Koq2PcWwkDjGmuzMYUdRuJY44PGpQUVsNEhW1uY5pUBQZLwjKZbjsu/fZ+957qv+otc6pvXZVrRp+w/dX9X49z37OOXutVfVbVbX2qfrs7+9bVlWVAAAAAAAAgDY35R4AAAAAAAAA/CI8AgAAAAAAQCfCIwAAAAAAAHQiPAIAAAAAAEAnwiMAAAAAAAB0IjwCAAAAAABAJ8IjYA8z+ygze0XucXhhZr9sZk/PPQ4vzOw1ZvbxoZ8LAMBQnKucxbnKWZyr5GVm72lmlZndJ/dY5jCzQzN7r9zjQD6ER1ilzQ+/7dc1Mztu/Ptzms+tquq3qqp6bK6xNpnZM8zs3p3xf3fE9T3bzH60+b2qqj6pqqr/EmFdz9v8x/qUne//h833nxF6nUOZ2ZXNtv7lXGMAAKwL5yqD18e5ijhXicnMnrtzPB+a2dFmn//DxGN5ppndZmYnZva8lsc/zsz+fDO+F5nZIwcs8zfN7Av2Pa+qqitVVb1q4tCxAIRHWKXND78rVVVdkfQ6Sf+48b0f2z4v528Ietb9u83xV1X1zKQDi+svJH3e9h+bbfBZkv4q24hqnyHpRNInmNm7ZR4LAGAFOFdxi3OVlamq6kt2jucrkn5W0osk/U7i4bxR0rdJ+sHdB8zswZtx/W+SHijpNkk/OXeFTn/GIAPCI6DBzJ5kZreb2dea2Zsk/dD2e43nfLCZ/ZGZvdPMftrMftLMvq3x+L8ys782szea2Rdsfivx6M1jB2b2f5jZ68zszZvfZFzsWveIcT/DzH5753vN9T7PzJ5jZr+0Gffvm9l7N577eDP7NTN762Zc32BmT5b0DZI+e/Mblj/ZPPf6byfM7CYz+yYze62Z/Y2Z/bCZ3X/z2LZE9+mb9/sWM/vGPW/lFyR9pJm9y+bfT5b0p5Le1Bjre5vZfzOzOzbL/DEze0Dj8deY2deb2cvN7G1m9kNmdsvQbdnh6ZKeuxnL53Y9afPbz5/ZHBPvNLM/NLO/t/O0DzSzPzWzd2yed8vmte9iZr9oZn+7GfcvmtnDetb1tWb2hs16XrH5TdMtVv9m+sGb53yjmd1jZvfb/Ptbzew/bv7eeSxuHv+fzeyPzeztZvYSM/uAxmMxtjEAYADOVThX6cC5SqJzFTP7UkkfI+lpVVXdO+H172FmL9gcy680sy9sPHbRzP7LZsx/tvmsXv9sV1X1s1VV/bykO1oW/emSXlZV1U9XVXVV0rMl/T0ze9+esXy7pI+S9N3WqBLcfC6+3Mz+UtJfNr63/bw+yMx+wczuNLOXmtm3NT/fZvY/bfb5O8zse8zsxdaobjKzf755f28zs1+1RoVU27rhA+ERcN67qU7rHynpi5oPmNkFST8n6Xmb5/yEpE9rPP5kSV8l6eMlPVrSk3aW/W8lvY+kD9w8/lBJzxqy7gCeKulfS3oXSa+U9O2bMd8q6dcl/Yqk99iM6zeqqvoVSf9G0k9ufsuye2IhSc/YfH2MpPeSdEXSbmn6R0p6rKSPk/QsM3u/njFelfRfN2OV6t/s/fDOc0zSd2zG+n6SHq76P8emz5H0iZLeW/X2/qaedfba/Gf2JEk/tvn6vN4XSE+R9NOq9+OPS/p5M7tv4/HPUn2i+ShJH6B6+0n1z+MfUr3vHyHpWOe35XZMj5X0TEkfWlXVrarf62s2JwovlfTRm6d+tKTXSvqIxr9fvPl757FoZh+k+jdaXyzpQZK+T9ILzOygMYxg2xgAMBrnKpyr3FgZ5yrJzlXM7EMl/e+SPruqqjc3vv+LZvZ1AxfzfEm3qz4+PlPSvzGzj9089s2S3lP1sfoJ6gkCWzxe0p9s/1FV1V2qK+Ie3/WCqqq+UdJvSXpmS5Xgp0p6oqTHtbz0OZLuUv3z4OmbL0nXK6B+RtLXq943r5D0DxqPP0V16Pvpkh6yWf9P7Cy/b93Ipaoqvvha9Zek10j6+M3fnyTpVNItjcefJOn2zd//oaQ3SLLG478t6ds2f/9BSd/ReOzRkqrNn6b6h+x7Nx7/+5Je3bXulrE+Q9I9kt7e+Prwzfd/e+e5laRHb/7+PEn/V+OxT5b055u/P03SH3Ws79mSfnTne78p6Qs2f/8NSV/WeOyxku6WdB/V//FVkh7WePz/lfTUjnU9T3UZ7kdK+l1JD5D0ZkkXN9v4GR2v+9Tm+Df780t23utfzTg+vknSH2/+/lBJ90r6oI7j59mSfq/x2E2S/lrSRzWe+7mNx/+dpOd2rPcDJb2t47FHS/ob1Sf+99157FslfddmH7xJ0leoPvm6RfVJ3oMGHIvfK+lbd5b7CkkfHWMb88UXX3zx1f8lzlU4V+k/PjhXqeKfq6gO214j6atGvm57nN1HdZB4r6RbG49/h6Tnbf7+Kkmf2HjsC7T5bO8s89u2r2l87/+W9G93vvc7Xcdl2+el8b1K0se2fO/Rkm5W/Rl67M54fnvz989TPXV1+5hJer1ufCZ/WdLn7xyDR5Ie2bVuvnx8UXkEnPe3Vf1bkTbvIekN1eYn28brdx5/fcdjD5F0SdIfbMpr3676N2gPGbjurd+rquoBja/f2/P8rTc1/n6k+jdvUv2f2NR5+u+h+rdFW69V/R/j3xmw3lZVVf226m3yjZJ+saqq4+bjZvZ3zOz5mzLoOyX9qKQH7yymud1fuxnnOWb2MrvR+PCjOob0eap/i6eqqt6g+rdhT+947pl1V1V1TTd+s7TVuj3M7JKZfZ/VZfV3Svrvkh5gZjfvrqCqqldK+krVJ4B/s9ke23W8WPXJ/QdL+h+Sfk31b/E+XNIrq6q6Q/uPxUdK+urtY5vHH77zPgZtYwBAFJyrDMe5ynmcqzQM2cZmZqr3421VVf37tucM9B6S3lpV1Tt3xvbQxuNdn899DiXdb+d795P0zpbnDtG17oeo/gx1jfPMe9j8LLq98fgjJf2nxn57q+qA6aGN54x530iE8Ag4r+p57K8lPXTzH8jWw3cef1jHY29R/duUxzdOpu5f1U33hqy7z12q/4OVJNm4RomvV10a22bfeN6o+j+ArUeo/m3jm9ufPtiPSvpqnS8Dl+ry9ErS362q6n6qy3lt5znN7f6IzTjPqarq8dWN5oe/tfu4mf0DSY+R9PVm9iar+zs8UdL/Yt0N/B7eeP1Nqo+H1vXv+GrVvw194uZ9be/esfvetmP/8aqqPlL19q8kfefmoZdslvNpkl5cVdXLVW+DT9aNMvB9x+LrJX37zon/paqqmiXFg7YxACAKzlWGj4dzlfM4Vzk7zt5tvPFNqqtu/nnH40O9UdIDN1Mxm2N7w+bvfZ/PfV4m6frUTTO7rHrK3sv2vK7rM9T1/b9V/RnqGueZ97D5WdR87uslffHOvrtYVdVLBqwbGREeAeP8rupS02ea2X02c3Y/rPH4T0n6Z2b2fmZ2SfXdDiRd/83OD0j6D2b2rpJkZg81s08MMK4/kfR4M/tAq5sBPnvEa39R0rub2Vda3ZjwVjN74uaxN0t6z82JRZufkPS/mtmjzOyKbvQduGfi+9j6LtXzvP97y2O3qv7NyjvM7KGSvqblOV9uZg8zsweq/q3g1DtNPF31b8Mep7o0+wMlvb/q8vRP6njNh5jZp29O2L5S9Z1PhvzG9VbVJ0lv34z7m7ueaGaPNbOP3czrv7p53TVJqqrqSNIfSPpy3TgBe4mkL9n+e8Cx+AOSvsTMnmi1y2b2j3ZOdEJtYwBAWJyrnMW5ynmcq4xgZh8v6V9J+oyqqu6csoytqqper/q9fofVzcM/QNLnqw4jpfrz+fVWNyd/qOq+Uc2x3Gfz+blZ0s2bZWxDwp+T9P5m9hmb5zxL0p9WVfXne4b1ZnWHs23v4V7Vd3V7ttXVaO+rs322fknS3zWzT92M7ctV90baeu7mPT5+857ub2b/ZOj6kQ/hETBCVVWnqpu7fb7qOfyfq/qE5mTz+C+rPpl4kepGj9v/iE82f37t9vtWl/v+uurfvMwd119I+pbN8v5S9bz7oa99p+qTn3+sukz5L1U3lZTqZoqSdIeZ/WHLy39Q0o+oPnF6teqTg38x4S3sjumtVVX9xk7J/da/Vl3m/A7V/zn9bMtzflzS/6N63vhfqZ6HPcrmP93PkvSfq6p6U+Pr1arfc1c5+H+V9NmS3ibpn0r69Kqq7h6wyv+o+kTvLaqPm1/pee6B6t4Ab1G9z95VdVPCrRdLuq/qvg3bf9+qsye4ncdiVVW3SfpC1U0w37Z53jN2xjB7GwMAwuNc5RzOVc7jXGWcb1D9vn/Xbkxv2359jiSZ2S+b2TcMXN7TVPdBeqPqwOebq6r69c1j36J6iterVb/fn9GNz6ZUV0AdS/o61Z/t4833VFXV30r6DNWN5t+mugLtqdrvP0n6TKvvfPZdA9/DMyXdX/W+/RHVIe32Z8xbJP0T1f2y7lAdbN7WePznVFehPX+zX/8/dQedcMTaf94BGMrMfl91I8Efanns/VT/QDwI8BsuDGBmr1HdkO/X9z03wrqfrbrx55g7YxQn5zYGAIzHuYovnKvEt5RzFTP7UtUN3D8691j6mNl3Snq3qqrOBZabqsDbJX1OVVUvSj44BEPlETCSmX20mb3bpmz06apvYforjcc/bVNS/S6qU/Vf4GQMAACkwrkKUCYze3cz+wgzu8nMHqu6z9TP5R7XLjN7XzP7gM2UwQ9TXen4c43HP9HMHrCZtvgNqvtiDW2cD6cIj4DxHqt63v7bVf9A/8yqqv668fgXq7416V+p7jnwpclHCAAA1oxzFaBMFyR9n+o7pP031VMMv2fuQlum2+27g98+t6qejnmX6l5S/+dmrFt/X/XPl7eonm76qbt3JUR5mLYGAAAAAACATlQeAQAAAAAAoBPhEQAAAAAAADrdJ/cAxjK7XEkPSLS2mxOtR0qT48V+PzHfQ6yxh15uyG0Qalkh3mPGnNlmvHbKW5/yVseuZ8x7GrPsoWMfuswhy9v3nLmP9421bzt2va5rfWOf3/b93e/ddO38U24++72bdp5jOjuV/CZd6/x38+/N13U9Z/v3vu9tl7P7/eafzb83n7/9MlX136truuleSdckVZs/7978eU/j62Tz56l0fFo3eXi99Jaqqh4iuGIPelBlj3iEpPPHrmc3mf+x7n72vdj9GZRLznGkXneKYyH2e4qx/JDbJdT4Qixn6jKmbo+x6xvz/NDP3fce9y2j7/G+ZXe9ru01bc/tO3eTpJuunV3Omf+i7m38vfm0ay1/H/LntY5/360b52b3SNU90sm99SnZK3vOwYoLj+rg6MsSret+idYjSRcTrOPWyMuPub1iLTv0Ngm5H0O95xDLmfm+5gRAt8x47eUJr5lySFwZ+fyDEc8dM56h4xj6vCHbb9+hsW9dcx7vOza6Xjf2+13boO19X9kJfi4fnXvKpVvP9oq8dOnscy7o9OzjOur890XdWNaBThrfP2o8/7jx96Nzjx9s1nfjseMz/76wWe6lxve3r7+k4+vrvahjXdKRLulIF3RaP+/kSJfuuia7S/XZyF2S3rz5862qW/XeIenVN/7809dJL5b0L6XXCv485FGqnnObpLPnt63m/OwObO9YpfE/x1O7crL/OQldvHL+51tMXZd5F27Js10uXUjb9/eC4r/P5v8X4Zcd/ni5GHCZBzv/9041931OfU9Txj92XWOOj4OBx+vFAcscsk37Ph994+5b9u75WN9r2r6373yu7/Ez53H3Ns71TurXHNy1+cZhYwHb8yw1/ry6873tc+7aPPY3jT/fKul10hveKD2s5xyswPAIAAAAyd2j+r45MeUKnaa8r5SB01vG/NZB0bfj8ZjfgkTcToMvZwOHb+/Qu+x9TsqALUSI9vaemR1zw7K+ZU8Pxh7U+t2QIdjYMKjtfY4Jad628/qpodaQce+Odd84d58/dGx9y22+36791lzvvlCqLYx6e+OzurtdtsseEz69XQ9oXU5b2NR8Xtvrmq9pPt5c3h03N37Bt/2F46VNqPTAnUDpQaoDpQfqRlD0oM2flzd/HjT+fovqX95t3SW9612S3tG5OQiPAAAAMMDdkt7U83iIkOBw/1OCmTveq0FG0W1OABRrO07ZZqG305TtcjgyfOsy4v0fh1jnwNDr+PDS5FUMCblOr057L0NCraOR1e37gqzTUeXd/cHB0LH1BVZH2r9vusKe4wGvbQtnTnSh9zVtwU/fONvG1ze25pj6xtIcR9fymstq2x/NbX/Ssu+bgdPxzuu3YdPue2++3+bxtD1WmuO41LKM7etPG+/9gk7PPWf7793nN597SUc61YVz3zu++ZIu6khHly7q0r3HOjnYBEmXN0HSFdVB0fbtX1b9s3MbHG1tfz7fJeldpfteFeERAAAAZqrUHwSMCQk8TGsbGrDkmtI2ZHypx7ZvH6fYr/u2S8xt0vf+Y7z3rgAq4HvsDLkCVGt1hVpzqrLagqw5lVe7gcSUKqvdwGpsNdW5MYyonmoLLfZpBjVDKqOaAdCQiqPdUGTfOPrGsF1313r3LWO7bdu26YkOWquZtiHTbiXTkS6de0/bfd/c50e6eG59ba8d8ljbc5phUluQpM22un5UNkOkLtsKpT0/xwiPAAAAsN+9SlsZhP0O5atfk7fxYIZA1Vot0naMyqC/8AeI52Y1Prp76vCa/ZAuN756EB4BAABgv2saHx51BQkeQ6iuscaenjZU12+Ec21LL/t2dxyp9tfu/oj5vlO9x+Z7Cv1+mu8h8JS+OdP2trbVUFOn6Ek3KqCOTqfdaGZb9TR16t2YKYBt0632v+Zo1FS6odPn9o1h33ov6mjv9Li211/UUec2u6Tj1mlw7es/3vseLuhk9BTN7mXdqDpqTo27vp22dxA+kKTTG9PYmq7qRlB0ufFvwiMAAABkkTskGlMF4y2E2ZUyxBoyBSvF9hqybXL1d0rZyynke+x7XyHeU4yQs23McwKolil5YwOotql3Y4On3el2Y0Kn5vS6oWHT7tSqvetomXrV//x6m+wLmIaES81pal3r3be+vvX0BUr1OtunEjYDpe2Ut2YvpbY+SnXIc7Z30m7fpN0eR/XzzvY5aguMdl/TfB9HN188GyDVgz47PW1bdXSHBiE8AgAAwH7XlKcKx2Pj6DZTp2vFHqOHJtdNY/ZnjG0zdHukCmy2YgY3TXPfV6xQLXR41jfOMcFTR++nMWFTV4+noWFTW0+nfUFTW++mfSHTbq+mfQHT0HBpt5/PkObYXcHSvlCpua7d9fQtf7vcrte0hUm7lUkHOhkVJO1WjA0Jkc4u58K5KqTmc88FSFL9WWpWF11W3Q/pls3XnkOS8AgAAAD7XZP0zoHPvTXgelMEViGaHaectjRGzgCmTaj9OXWfhdgeY99/6KqbLnO27dDtGTrI2Ro79n3jHTPOEEFTT4PxIUFTXxPxfSFTinCprQl435Svs8+bHirtNsLuqiLqWlfIMKnrzm+7VUlDKpLmhEi7VUj7AiRJOjm4oDN7uHnHte03mbYGAACA5IaGTFOEDKa2YgRUIe++lboKZp9Q48kdQqUOoKa831TrCh3eNIUKcpqGjjdUNda+cQ0JmWYETFPDpa470XWFS113m+sKloaGSm13O9tXOSRNC5RCh0lDg6QhU9uGhkjNnlRdd1nbFyBdH/PN2tyFrWEbEl3VqKlrhEcAAADY75rO/rayz57fXs4SOpiKEUZJ+StsuuSovOmSqiKnS4wpVn1iVe2EWFfMsClG0BQyZAoRMA3qz9UTMPUES1J/uDQlWIoZKoUMlNpuYd8X+kjtwU/b8ruCqq7lNZfVFiTthkj1a9urkS62hkM3QqS+KqShAVLzPZ6bvtbcRZclvVVUHgEAACCDoSHTEDGDKClcGOU5hPIUQOUOnnKETin7dsUOm2L10Bq7jUKEOVv7xjc3XMoULI0NlboCJak9VAodKIUIk0IESV3L61rWbug0NERqq0KS6u3XV4U0NEBqLnt3u1zfRXeJyiMAAAAE1myYHTqM6BMqiPIeQsUKn6T0FTZ9UlbfhFh/6rBp7jaPGQINXX6MgMlruJQrWNoTKEntoVLMQKkrTJLOB0ohwqSUQdKYaqR9IdLQKqQ5AVK9jBt/l25UHx3cdfa9X688GoDwCAAAAON4nZLVZ24I5Tl88lb1lLvSKVfYlDJoShEyxQqYvIdLIYKlOQ3I51QqTahSGhMoxQiT2oIkqb0p9dnH4wZJc0KkIT2RuqqQ5gZIu8s51zz7sm5MXbus+hg+0I07rvUgPAIAAEAeKe4OFcrU8Cl26CRNC568VDrlrm7KETSlCpliB0ylhEuhgqVUodKc9e+GShMqlFKHSSmDpHPTt9QeADWXOTRE6qtC2r6HviqkMQHSVttUtd07rl3YeV/XHWj0/2uERwAAANjvXrWHFDFDiD5eqmL2mRI6eQycPFQ35QyaUodMKQKmmOHSnPGHXu7c6qCtWKHS1CqlSFPeUoRJKYKk1CHS0CqkEAFS8/HdsXZ9X5J0s85PXRvxOSA8AgAAwHRTp1uVFDp5D5w8hU0eKppyhUwpAybv4VLqYMlbqDQnUEo95W1EmNQXJElnw6SUQdLYaqQhU9raQqQhd2jbV4XUNo1tToDUV320+/frY7wsHRyq/r9j2zCbu60BAADAJW9TrfqkvLvWFGPCJi+9m3KHTDkCpiWFS96CpdihUspAKWd1UqSqpNhB0txqpK5KpCFVSG3LGFuFNDZA6tPV++icK9KAxZ1BeAQAAID9ruUegMoJnHJPxeozNGhaesgUe0pXGw/hUqh1hKra2TW3iifW8mIESqmrkzJWJY0NkoY0255TjTSkgkgaX4U0pBfSnABp93VDq4+a6z+3XS5LukODEB4BAABgGI/TqfYZEzgRNN0wZF97mC63lnApVOgTex0xQqXQQVisQClXmOSwKmlukDSmGilXiDSmF1KoAGlK9ZFUB0nbsR7dfPHGeJpNs5m2BgAAgGxKC5tyV8Psk2s6VhcPAZPHcCllsFRKtVKIyp1dIauU5gQ5W7nCpNRVSSPu4Da0R9KcaqQhIVJbgFQ/1j6ta+xUtiHT2PoCpLPraA+QtrYB0pDqo67xnRxcONs0+7Kkt7YO5wzCIwAAAPjgZUrVPp5DptICppzh0hKCpZzVSnOXnyJQylmdFDJMSlmVtG9dEauRYoVIoauQQgdIfQFX3zr2aZu6dn0826bZIxAeAQAAYD8PPY+2lhQyeQyYvIRLBEvzhO4flGL5oQMlT9VJc8KkEFVJY4OkSNPaPIdIQ6uQYgdIc6uPusZz1FbxRM8jAAAABDf0t5QhL1DnKCFk8hgweQmXCJbSVSrFrFLyHiiFCJPmTnNLUZU0dn2RprWlDJHGTmUbejc1qbsP0tgAqWtczQCpb/ntyzk/dU2SLui0vWn21p7jgvAIAAAAYS0xZPIcMK0xXPIYLMXYD7HuarYrZpVSqLCmae6UsKYQ4wtZleQ5SHIaIqWoQhraB2lsgNTX/+jG67ubZ+9WH+1qm7p2vWn2FUknqo+Bg3MvPYfwCAAAAHkMCZlKCZi8hkvepsUtOVjKHSqVEiilqE4KFSblqEoKESRN6ZEUuhopYYgUqwppah+ksf2Jpk5fa7Nv6tr1Me82zR6A8AgAAAB+7QuYCJf6lVK1lHsqXOpQaSmBktfqpFBhUuiqpFRBkqdqpMQh0tQqpNB9kHZfO3X6Wp/d6qMhY5+D8AgAAAD7XZN0LG0q/f0opXop5zSrPimrZfp4DJUIlPYrMUzKWZVUWpDkOEQKXYUUIkDa99op09faqo+6xrQvMDrVhfOPD5iutkV4BAAAgOH2/zK0rICJYKmdl6lwOUOl1FVKSwiUUk11m7PMGFVJpQVJhYRIMauQYgRIQ+7C1hc6dU1fG2u3z9Hpprn3JR2133Fta8/PNsIjAAAAhLXvfNdTuOR9WlxJwdKaQ6WlBUqxqpNiVCZ5qEryECQtMEQKUYU0JUCSzjfSHjoNrG862tTn9915rW/qWte4t3dcO7ksHRyq/vl1WdJb+8dKeAQAAIC0+sIlT8GS5LtqyVuw5DVUWnqgVFKYFGOa21KDpDWFSAGqkKZMYxvbSHvoXdjm9D/aV320r3F2c119gdf1O66NQHgEAAAAP5ZSteQ1WFpjqOQlUCq5OqmUMCnW9LYcQdLU104Zd+wQKUEV0tRpbF4CpH3aqo9SIzwCAABAOUqpWuoKlgiVbkg1JatNjkBpSdVJoRpQ7wo9xS3U8kIGSZ6rkWKFSI6qkMYGSK3LGRggjTGl+mh36lrTbt+jEAiPAAAAsN813bj4zXl3sD4lBEslhUoESukDpRLDpBRVSR6DpJzVSB5DpMRVSKkCpLG9hPoaaMeuPuprsr1tmn0uULqivb2OtgiPAAAAMI63XjtDdAVLhErdvFQpeQqUlhgmlVCV5DFIylmNNHdKW4wQKXEVkocAaYh9AVLXc+dUMu2uo/nvU13obvy95+fNTZNGAwAAALS5q+fLo+OOLy8OO75y8rBv39nylcLVlq+YUmznmNsxxrYK/TkIsay573HOGKa8duxYx6xj6HKHLG9bhdTh+PDS9V5IbbZ9kNpsG2mfe43aX3PU8puGI51f93HL9/oMeX7buo8339uOoXvc55e//d7JQV2NdP1ua3tQeQQAAIA0SqpYKrFSyVuVUu4KpSVWJ6WoTCqpKilkRZKHaW2p+yINnW7WXEfqKqSZ09hiVyCFmL7WtK/6aM7UtbkIjwAAAJCflylS+3gOlQiUzso13S1XmBQ7SJLi9UryGiSVGiJ5msoWshdSQQHSGEOmqE0JhfqaZh/r0ujlER4BAADAL0Klebz1UkrV06dLjuqkVGFSyVVJXoOkkL2RUoZIU6uQpHEhUugqpEICpCHmVB8NX8fZuzNNa2UAACAASURBVK7FRs8jAAAAlKeUvkpe+yl56aGUex/m7psUU8peSSGF3jahjvG5y8nRE2lqP6QYyx+y3CHLG9AHqUuoHkhD+x/tOtnc8axNs/dR83ltPZFOOvobNcc6ZDxjER4BAABgv2tKc8E7V+4wYgiPgZKnptxrCpNSNd8uMUjy2mg7VIg05X2lCpGmNNQeutwQy4sUII0xJEDa1wx7bMDTts4xTlvCq5MRFYqERwAAABin7Y5TnkOlEqqUCJS6eQmTUkgdJMXYniUFSbmXkaMSaYwYVUhD92OGAGnsHdiG2A2QplQfjbUbMh3p0vWgqjew2vM2CY8AAAAQRkmBkkSgNMWawySqksbzPq0tZIg0dTmpp7OVVIXkPECaOn1t7PP7KpiOZ1QjHd28ee2BBvW6IjwCAABAPEuoUvKEMOm8NYZJsay1GslDX6S5IVLs1ywwQOrSFSC1PndAeLNv+toUu32PukKotqlqbd8bgvAIAAAA6REoheGtOslbmJTSkoKkUqe1zeWhL1LKfkgxq5AKCJDG9j8aOn1tXzXRnKlr+8KqmE2zCY8AAADgQ0lVSiUFSjnlDpM8VCXFtoQgKRSPU9qmSh0ijTEmQBraB2nIsnofn9aXKNb0tV191Udzp65NMSVYIjwCAACAb6UGSl4QJt2QYx8RJO235BApxN3Zpq537PPHViGFHEvkAClk/6Mh5lQfeUV4BAAAgPKUGCZ5CZQIk25YQ5AUS8wQKdT28dQXqaSpbEMtKEAaY2r1UZ9m2DR06tq271Fb0+y542lDeAQAAIDyUZ00ndcwKbWlBklUI9VChkhzX58jRIr1/NB9kDIFSCmqj3annoWuPgrd42gX4REAAAD2u1fp7y41VwmBEmFSt5xVSQRJ06wlRPLQDyn2+mJNY0sVIE0wJkCKUX20z5y+R0e61BounRwMD7AIjwAAADDNbphUYqDkDWFSN4KksAiR8odIqauQvExjCxUg9a4j/vS1IfZVH3U9d05QtBtsnTYqnE77qp0u9y+X8AgAAADhlBYoESaNR5C0rCAp5vEfY3vFCJHmyh0iTVlfrOenDJAyT18LUX00ZOpa33NOWsZwdjzdIdT1gOqK9gZHEuERAAAAYispUPI+1c1bmOShKmltQVJMJVUjxWisPVeuqWwESD2P94crbboCpKli9CLaDanammZ3v3baeAiPAAAAkF4pYZJEmDSGpyApZZiUch8spRopFG8hUq4qpBTT2EoNkDqMnb4WqvpoztS1fdPZYjbNJjwCAABAfoRJYXgNkjyESaksNUgKjRBp/+uniF2FVGKAFHD6Wgyh77q21Rdi9fY+6kB4BAAAAH9KnurmBVVJZ60lSIplrSHSXARI4Zc5xYTpa22mVh+NaZzdJlbANAbhEQAAAMpQYpjkCUHSDTl7JMVGiFQLtR1yVyGlnsY25rlDnx/qeEk8fS1l9dEU24CqrWl2W6A1F+ERAAAAylRCmERV0n45g6QlVyPF/mwQIo1XQhVSrEbaQ8aRcfraGEOrj8ZoVhbN7XsUC+ERAAAAloEwaTqCpLxBUmyESH6mss2tQppibQFS7/LbQ54Y1Uehp67tM+aOa1MQHgEAAGCYexpfJSgtTPKCICl9kJS6GimGEkKkJVQhzZnGNnY9MYQKkCK8fszd12JUH+0zp+/RqS603ont6ObhgRPhEQAAAMa7R2WHSR55rEoiSFpmNRIhUrgQaY7U09hi90AKOY59y0s4fS1H76O2oGfqa5v/nrNcwiMAAADMV1qYRFXSeN6CpNRyVSPFVGqIFIqHKqTU09i8BEghRDi+5lYfnXvOnqlrTV2VRUl6HF3efPUgPAIAAEB4hElhESSdt5ZqJEKk86hCmvc6DwFS7ulrkaqPxk5dmxoMbV+3G07tanv8dBNSbYOskz2h0RbhEQAAAOIrOUzyhiDpvFxBUspqpBTbee0h0lwhqpBSvW4pAdKc6WsdYlcfxXASud+SRHgEAACAHEoKkwiShvMUJKW2pGqkEkOkEDxUIaVspL2WAKlzuXmqj4ZOXWt73r6m2THvuEZ4BAAAgPxKDJK8hUkESWflrkZKgRDpBo9VSFOl7IPkIUCKbcL0tTHVR3PF6mnUF2JNaZxNeAQAAABfqEqaz2uQlAsh0jyxQ6SQPFUhlTKNLXeAlLP6aKS26qMUU9eSNM3eg/AIAAAAvhEkzeMpSFpjNVKOvkixxDq+qULqtoQAKdT65wRIiauP5kxd84rwCAAAAOUopSqJIGk/L0FSSoRI/WKESCGEqkKaqvQAKWT/oxXY19doq++OazHCKcIjAAAAlIsgaTqPQVIOhEjTxQyRQvFUhUSANF/i6qM2U6eu9emaljalaXYshEcAAABYBoKk6bwESTmrkXJOaYstRYgUmucqpDmWGCANlar/UcDXhpy6tlshFLo66GTPVLm5CI8AAAAwQCXp7s1XAUqY3uY9SMptTdVISwiR1lSFlLORtscAKUf/o5ivHyBG9dE+c5tmn7ZULI1ZJuERAAAARrpbRQVJEkHSFN6qkXJYcogUS4zj2GMVUs4+SCUHSJ6nr0VonO3BkS5er3KaU+1EeAQAAIAZ7lZxYRJB0nieQqScU9pSSREilTqVLZTSp7EtPUDK/fMmkH1T15qaVUBz+hod96yj1y39DxMeAQAAICCCpKC8BUlrr0YiRBrHexWSp2lsU6w9QJpTfdS5zOHVRyGmrg2pBIpx57RzBrRLIjwCAABAJARJQXkKkSRCJEKk4dZQhVRagLQUqQI0Z7aVScfXp6O1h1a7lU/1cy9tHquXcXIwrMqJ8AgAAAAJFDa9zXOQRDXSeWsKkWIrrQoplLUFSEupPorx+o7qo7UjPAIAAEAGBQZJHnkNknLJ1RcpZYhEFdJZoaexzTX380iANF6i6qOpU9fG9D3aO4YUU9g6EB4BAAAgs0KCJM/VSBIh0i5CpPnWWIXkoQ/SUgKkUHJUH2Uyt2n2SSOoCt0rifAIAAAAjhAkzeapGmmtU9qWFCKVVoUUCgHSfJ6aZ499XcKpa0kaYu84nRBMER4BAADAKYKk2byESBIhUmylTmULfYx6nMY2ldcAKcb0tUIMnbp27jlDbmfWI0fAtIvwCAAAAAUoLEjyhhDphiWHSKVPZQuJACmu0J/h2NVHfa+NUH202/fo3OMz+h7lQngEAACAwhQUInkLkjxOacslV4iUQqlT2QiQ2qUKkGL1P0rZPHsBhjbF3vZEanv+cYRwivAIAAAAhaIaaRZCpFrqEGlpU9lCizGNLQQCpHlCLTdW9dEIU6eu9emaltbWNDvXHdcIjwAAALAABQRJ3quRciNEiiNFFVIMHvsghThGcgRIY8XqfxR63SnWG3Dq2ty+R3vXF3kqHOERAAAABriWewAjFBQkeeJlSlvuO7QtuR9SLExjGyd1gOSl/9GCqo9CKK3vEeERAAAABjpW2jk3IRQSInkNknLLFSIttR9SiVVIS53G5j1Ayjl9zVv1UYsYU9f2mXPHtSNdbH39mGUSHgEAAGCC0oIkqpEm8RQi5bDkqWyxlFCFtIQAaYqYAVLqz2jK6qMZU9c8aE6XO23poTQU4REAAABmKilEkgiRJvAQIuWeyra0EKnUKqRQSg+QPDbQDjl9bSF3XhvT96hZBTSnKfZJpN5KhEcAAAAIhGqkoDxOaSNESh8ixUaANF9pAdJSxHj/M6euxdB2x7UoLvc/THgEAACACEoNkpwiRDovd4iUSulVSDECNwKkG7z1P/JUfZRh6trYvkdzm2bPCZbO9Du6sv/5hEcAAACIrKQgqZBqJC/WHCJRhTROjAAp1LHnJUCaqtQAKYSVVl/tTmvrmuY2pEn20c3DAizCIwAAACRUSogkESKNQIiUxhKqkEILGSCFOH7mvMfcn6HUclcfBXjNkKlru32PSkV4BAAAgAyoRgrCW1+ktYdIqZRcheQ5QJLKDZBKrT4KcZxN3WeZpq4NbZo95fGYooZHZvZkM3uFmb3SzL6u5fFHmNmLzOyPzOxPzeyTY44HAABgDco7ByslRJLchkgSIdIuqpDmow9SHksJkEJZyJ3Xxppyx7W5PZT6RAuPzOxmSc+R9EmSHifpaWb2uJ2nfZOkn6qq6oMkPVXS98QaDwAAwBqUfQ5WYjWSQ4RIN1CFNF9J09g8BUhLbqA9lJfqoymNsxMGVrECn+Oe5U6pYIpZefRhkl5ZVdWrqqo6lfR8SU/ZeU4l6X6bv99f0hsjjgcAAGANFnIORog0GyHSDTlCJKqQhiFA6pYyQBpjzdVHLVPXhvQ9mmvOXdVCiRkePVTS6xv/vn3zvaZnS/pcM7td0gsl/Yu2BZnZF5nZbWZ2W74W9gAAAEWIdA52R4yxDlBKNVIBfZE8IESKiwCplnvKZFMpl69LqD7Kufwdu32Pdptm9/U98ip3w+ynSXpeVVUPk/TJkn7EzM6Nqaqq76+q6glVVT1Bupx8kAAAAAsz4RzsQckHeV4JIZJEiDSAhxApNQKkfl4DJBpoz39uqM/bvnWGbpztpdrJiZjh0RskPbzx74dtvtf0+ZJ+SpKqqvpdSbdIenDEMQEAACzdCs7BCJFm8RYi5bLkKqTYH5FYfZAIkNqtZfoaYY2k4f2Itg2126a0nUSobIoZHr1U0mPM7FFmdkF1M8YX7DzndZI+TpLM7P1Un7j8bcQxAQAALN2KzsFKm9LmjJcQiSqkeEqsQiJAapfqM5J7+to+c6qPQr23CH2PuppmT7njWizRwqOqqu6R9ExJvyrpz1Tf0eNlZvYtZvYpm6d9taQvNLM/kfQTkp5RVVUVa0wAAABLt95zMEKkyQiR8lUhpVBqgBRy+ywlQJrC0/S1HMsbKsHUtd2+R5OX0xEoxQ6a7hNz4VVVvVB1E8bm957V+PvLJX1EzDEAAACszbrPwbZXynFufRzGNkC6b9ZRnHOPIl8dDLS90L81w7q3F5C3JFrfNkiI3dY19sfiUNKVCMu9S+G2zTsV5pi6qnTHx66p7yHnmJtCjSPW8RbY6dUDXbjlJPcwgsndMBsAAABFuFfSnbkHMUIJU9ocViJ5qUKS1jWVbQlVSCU00vZSgbS06Wveqo8yTV0ba+wd19p6G43RNjXudMQyCY8AAAAwwp0qK0SSCJEm8BIirWkqW8pm2rGU0Eh7rQGSl+bZOXqMDTVzbHP7HsU0NqhqQ3gEAACACe5UeUESIdJohEjLrEIqtQ9SKEsIkKYYO17Pdz9L2Tjb83YYoNkjaeid3NoQHgEAAGAmQqSwCJE6rakKKbbYHwMCpGGmvqeSp68N2WaFBzZbp1fPVvz0Nc1uTiubE/J03bltLsIjAAAABEKIFJbTECm3tVQhLWUaW2geA6RcPE5fSynG8TVm+wToe+TKnub0hEcAAAAIrLQpbYRIo1CFlBYB0nneAiSmr41/borqowxT18b2PRrSi+h4RhXSUCcD7mpIeAQAAICICJHCIUQ6J1cV0lKnscVCgLSf9+lrcGU7rW1fsHTcM4Vte6e1oeEU4REAAAASIEQKhxDpnDVUIaWYxkaANE9JAdJSqo8W0htprpNNEDTE6YjnNhEeAQAAICFCpHAcBUiSjwCJKqT5Yh72BEhIbcr+CNz3aLdpdqkIjwAAAJABIVIYVCGds5YqpNjWGiDltrbqoxCmritS36N9+u64ts+YCqPQCI8AAACQESFSGA5DpJxyViGlQoB0Vqjt4aH6yHOAFFqKxtmJjW2a3XTU6FF0NKFRdszm2oRHAAAAcKCkO7QRIg2y1iqklNPYCJDi8BAgeeW1+qhP7KlrMw2549oUJ4GXS3gEAAAAZwiR5nMSIEn5Q6SlVyGV3Eg7dLiwpP5HVB+dFatxtpeAK7EpVU2ERwAAAHCKEGkeR1VI0nqrkFIhQKp5C5DmSBkgjVFi9VEobe8nQdPsmNPRhiI8AgAAgHOESPM4CpHWWIW0pGlsawyQ5spd1TNU7nHGXn/u97djTtPsXAiPAAAAUIiSQiSPnARIElVIMREg1ZbSQHsJ1Uep1hl66tqM/TanabZXhEcAAAAoTAkhElVIe3moQkqNAKkfAVK7VJVUsY7PpU1dc2LbtyjVlDbCIwAAABSKEGk6ZyFSLrmmsaVAgFTzFCClFrt5duh9FaJx9tzlDzGx79FQR5o/pS3EMnYRHgEAAKBw3gMkyXeI5MDaqpAIkPotNUBa4vS1oVJVHxVa5XSq9vCp7a5oJ7oQezitCI8AAACwACVUIUl+AyRHIVIuS22kfZfihkilBEheLG36Wo7qoxgi9D3aNfeOa/vEDpUIjwAAALAgJYRIVCH1yh0gUYU0XgkBkpfqoxy8jDnU/iwkWFxa02zCIwAAAAxwLfcARiJEmsZJFRLT2OIgQAqjxOlrY+WsPpqrbzy5KptaHJ2G70vUp21qXNu0uC6ERwAAABgoR1nGXIRI0zgKkXIhQBrP22HcZgkB0hRefnQPCZocBTydIjfNbpPqrmpdCI8AAAAwEiFSHB6vvJ0ESLlCJAKk8WIcxl4baOdC9VGc9SXoe5TLmAqjLoRHAAAAmIgQKTyqkDrlDJBSHuYESO28TY2Sypu+VtKP67mfg0KmrqVwrBvT4440faoc4REAAABmKjVE8sxbgCStOkCS0gdIqe7EFov3AGmt09fGilF95DEIjGS3aXbfHdeaPYnmhDyxprcRHgEAACCQ0kIkqpDGcxIgMY0tHAKkci29+miflFPXUq0/pz0tmwiPAAAAEBghUljeQiSmsSVFgHSetwCptOqjsePNVX0Uc+raWEPHMrJp9pA7roXoV7TPycGFvc8hPAIAAEAkJYZInnkKkCQCpIQIkPzLFSCVXj2Vi/fpggPNCZbGvpbwCAAAAJGVFCJRhTSOgyqkXNPYlthIu6QAyVv1UWlK+ZG8z9Kmjg10orOVQl19jk5a5qLthkZDQyTCIwAAACRCiBSOpwBJyh4gSeuoQio9QArNW4C05OqjUqeuIRjCIwAAACRWSoAk+Q+QPIVIBEhJlBwg0f8onrU3z+7Sd3x0fZYCN80ec8e1vctK0P+oC+ERAAAAMqAKKRxvAZKDaWw5ECAN4z1Ays1zpU2M6qMQUq3L875JgPAIAAAAGREihUEV0hk5+yClQoAUh4fqo5TT13L/+F3i1LWRd1xrOm30KDrS/jux7drthRQS4REAAAAcKC1E8srTVflKp7EtLUCKZekNtEv5cTZWicfckirTRpgSPvUhPAIAAIAjpVxxUYU0zEqnsS0pQFrrHdhyW0L1UcjG2bGE6Hs009Fp2JBniNMJFUqERwAAAHCGKqQwvARIEgFSZCUHSKGFuuin+qhbjuqjfevMGUAlWPdRxkbZW4RHAAAAcKqUEMl7FZIXBEhRlRogeTpEd+UOkFJWH8WypGowafI+2b3jWokIjwAAAOAcIdI8TGO7jgBpnlICpKUFFink/hEbe585OyZOr05vqp0L4REAAAAKkfvqZiiPAZLkJ0CSsgdIqUOklPknAVJtKdPXvFYfLWnqWoy+RzPuuOYV4REAAAAKQhXSPARI1y25CokAqeYpQCpB7sbZcI3wCAAAAAUqIUCS/AZIXkIkAqRoSg2Qlorqo/0ImSRJpxpWtXSyuWNaWzPt4wgNtgmPAAAAUKiSqpA88hQg0QcpihxTi+ai+qhdqn3p/UfqnO0Q6lhoG8MKgi/CIwAAABSuhBDJ8zQ2TyFSJgRI0zB9bZwcP6Zyh15bqcKVQkOco9OL7d/X+e/HqCoagvAIAAAAC+E9QJJ8BkgSAZIIkKYqJUDyIsf0tbHGjHEpU9diNM3ecXwYN/SJHSoRHgEAAGBBqEKazsvVOgFScbxUt/TxUn2Ug5cxF1oVNNnC7rhGeAQAAIABruUewEglXJETIHUjQAquxAbaTF87z2Mfq9Rj2re+vv3sKMA6vVpWuER4BAAAgIG8BAtDUYU0jZc+SBkbaecIkFIgQFqvsfsm549ORwFPpwwhXttd1ea+/nRzx7YhCI8AAAAwgpdgYQzvAZLkL0CS/OznlQRIS+h/FEvIQ5Hqo7w8B0Nzt6vj93bc0nh7LMIjAAAATFBaiFRKFZI3XvYxAVJQJTbQDsnxRb4rORtne1ofx4skwiMAAADM4iVcGKqEAMlbiORlHxMgBVVagOTlMGwqrfqohGBva25gU0jfoxROdKO30qmm91kiPAIAAMBMVCGF5zFA8rCPCZCCWnOA5GX62pIMPZ7WFN7s3HHt+LC7b9HR6Y2pZXNCnpMRfYzGIDwCAABAIB7ChTEIkMbzsI8JkBCIhxDDe/URx+F6XOl/mPAIAAAAAXmpUBnKexUS09jaESAFs+bqo1ByTl9bsxjH7phlJuq7dBSg2XUIhEcAAACIoMQQyTMCpPMIkIJZc4DkofpoDm/VRyGnrnnqezT0+SOXe3p1+vS0kI5u3h9QER4BAAAgIg8hw1AlVCF54mHfEiAFs+YAKQSqj5DBnP5GR+ruv9SG8AgAAACRUYUUjrdpbB72LQFSMKlvt+5F6dVHUyyl0fdKj9njneCnKwhqm/K2+73TgQEU4REAAAASyR0yjOE5QJJ8BUhS/n17t7KESARIw3mvPgoRIOWqPkoRoJQ6dQ3BEB4BAAAgIQ+VKkMxjW0cD/uVAMk17wESlmdK+BQ6jDv00ddoLsIjAAAAZFDSFZ/nq3UCpPNWECDFVlr/o1DWVn0Us3F2CULs7wnb/fhwXK+hprF9ikIiPAIAAEAmpVUheeWxD1JuCw+QSp6+FoOHQ67Jc0CWSsipa6HWNVekO66VgvAIAAAAmXm78uvCNLbhPOxTAqTZSup/FIqHC3/P1Uc5eNgniRyd3mhmfarx0912G2mHRHgEAAAAB6hCCoMA6SwCJLdChxZLa57tVYnH3IrCp6bQQRLhEQAAABzxEDgM4fkKigDpLAKkWZi+lofnO68N5WksYyUc++nVMhpqEx4BAADAmVKuAD1PY/MWIOXepwRIszB9bRrP768p9ziHbOt9z5l6jK60KmlK423CIwAAADjkIXAYynOA5C1EymnhAVJspQRIuQ+zNfD6Iy+FtrApQZXSkS7uf1JkhEcAAABwrJQrQc9XUwRINyw4QPJ8CKYW6jDLXX20hMbZJU9dC+mwjKlpfQiPAAAA4FwpVUhMYxsm974kQJqslOojlCf29DFn09OOD+PdFS0WwiMAAAAUInfoMBQB0n6l7MsCESDVqD6KK8ePuVh9j2Isz1lYFQLhEQAAAApSSuhAgLRfzn254OojqdwAyasFBgGt1jp1bS37dybCIwAAABSmpGlsHhEg1RYeIJXIa/VRCFQfIbDjzR3TTnQhyfoIjwAAAFAoT1eGXbz2QSJAqi04QCq1+shrgER1Snyl9D2KfMe1o9P5d1aLESgRHgEAAKBgJQRIEgHSPgRIUZQaIC1VjuqjsbxPXUvd9yiR06v+78ZGeAQAAIDCMY1tujvlJ0QiQIrC42G3D9VH4TB1rWinOh8qHSnPndoIjwAAALAQBEjTESBlCZCWoJTpa16sufpoiFwBXdd6Qx7fh3Gri2KHSoRHAAAAWBACpOkIkJIHSEupPiphqhDVR0itxGOlB+ERAAAAFqaEaWw00u5HgBScx8NtH6qPliVV36NYrw3s+DDP9LOpCI8AAAAwwL25BzCB9wBJ8nlFT4BEgDRBCdUtS6g+8jh1zduPsRKOxQyONe8uboRHAAAAGMhTc+WhCJCm8bKfCZCKEuOi3Wvz7NKUFKg4qg7q1DbGyNv4aGb4077M4dVPhEcAAAAYyUuwMFQJV4sESN1K2H+BpAiQPB5q+3ic5jU34CihcXYMnkOsEkKriU5a7to2FuERAAAAJvASLAxVSh8kb7zs51z7bqF3YGP6GobwPHUtZdBTwjGdAOERAAAAJmIaW3gESN1WEiDR/6gd1UfzrSkE6XuvC64watOc7jZmmtouwiMAAADM5CVcGIoAaTwv+5gACYF4/zGwj8cfEyGtLODZdXQ6vb/R8YyAqA/hEQAAAALwEi4M5f3K8Z3yd3VY2j4ObYEBEtVH8y29+ijG1LU1VUDtHh+H3b2HTq/O70sUE+ERAAAAAiltGht9kMbzsH9XdAe2FNYcIHn/+O/j7cdDarmrk3KvP7CTy/2PEx4BAAAgMA8BwxjeryC9XSF62L8rCZCYvlaG0qqP0M1hIHQa4E5pIRAeAQAAIAIPAcMYBEjjeNi/3vdZIExfO4/qo3lKmbo2N8gJ2TR76DYbuW2PD+P0JxprSJ8kwiMAAABEUuI0Ns8IkM6jgXYw3g6v0uSqWGG/rdqc5tinujDq+YRHAAAAiMxDyDAUAdI4HvbtSgKkklF9tB9T1zDC0cDQaEi4NHRZhEcAAABIwEPIMJT3RtoESOetIEAqvfpoDXfYKqn6KObUtZQc9ijK4WREFdHUHkpRwyMze7KZvcLMXmlmX9fxnM8ys5eb2cvM7MdjjgcAAGAN/J6DMY0tHAKk8wiQgvB2aPWh+sgnT32PEMx9Yi3YzG6W9BxJnyDpdkkvNbMXVFX18sZzHiPp6yV9RFVVbzOzd401HgAAgDUo4xzsTkn3S7vKyY4lXcw9iA7vlHRr7kE0eNivnvdXIPco4lVcZFcl3RJ4mXdJ2nOLcazYlGPuUNKVgGMIvbxMYlYefZikV1ZV9aqqqk4lPV/SU3ae84WSnlNV1dskqaqqv4k4HgAAgDUo5BzMQ6XKUB5KErp4KxMpab+GtLD+R2udvhbioz63UmZq9dGap65NFaKqacoyDqdNG5Oko4zheMzw6KGSXt/49+2b7zW9j6T3MbPfMbPfM7Mnty3IzL7IzG4zs9uWd8QCAAAEFekc7B0RhlpS0ECANFzu/cr0tSC8HVZ9uET0J+Xxk2pqm+fgM4HcDbPvI+kxkp4k6WmSfsDMHrD7pKqqvr+qqidUVfUEahIBAABmm3AOdv9IiKdk7wAAIABJREFUQ8kdNIxBgDRc7v1KgOSa54twD9VHa7LEvkczju/Tqzeqko5OfU3BjRkevUHSwxv/ftjme023S3pBVVV3V1X1akl/ofpEBgAAANMUeA5WUiNtAqThcu9Tz/uqEN4OqT5Lqj7yPHUNrh3pUrRlxwyPXirpMWb2KDO7IOmpkl6w85yfV/0bL5nZg1WXUL8q4pgAAACWruBzsNxhw1CeQwlvV/u592mOfbWw6qNYh5Tn0ILqo24lhnSej7WITnQh6PKihUdVVd0j6ZmSflXSn0n6qaqqXmZm32Jmn7J52q9KusPMXi7pRZK+pqqqO2KNCQAAYOnKPwfLHTYMdSy/IZK3ACk3AqTVKDHY6JKy+igWT2MZK2H4d3wYr1qoy5TG21Fv8lhV1QslvXDne89q/L2S9FWbLwAAAARQ/jmYh1u+D+X11vDvlHRr7kFslLQ/Q7pb0n1zDyKMWIfTlNuopxLio13KLdpz74ch69+3Ladu61L2kQO5G2YDAAAALUqpQJKoQBoi9/70uo8CKbn6KPSUoiVVH3nFNj4rQZXSqQ72PykywiMAAAA4RSPt+QiQbmD62iyeDqVUcn+smbrmz9SwcwE9sAiPAAAA4Fzu0GGo3FeaXTxdveXelwsPkGIrpXm2p8qYUkKDlTaVxnCERwAAAChA7tBhKAKk/XLvywUHSCVPX/PK60c6t9ABXezwKnU4tm99h/mnoY1FeAQAAIBC5A4dhvJ6tUmAdIPXfRRAqdPXqD5qt4Spa6Hs246hq7xKqRpLhPAIAAAABckdOgzlNZzwdEVZyr4MZUHT17BMsapzPP3YaUNINAjhEQAAAApTSuhAgLRfzn3J9LXJ1lZ9FOJQyVF9hEU70iVJ0vHmz9gIjwAAAFAgAqR5PAVIOREgTcYh5F/sfVRa36NCnF6d3w8pRqBEeAQAAIBC3akyQiQCpH6596HX/bNSS64+KoH3AGdOBVeo99a2nBVMfSM8AgAAQOFyhw9DeL3yJEDKg+qjVVrz1LVUx0qhIc7xYXul0NHpxcQj6UZ4BAAAgAUoIXwgQOpH/6MoYgdIMVB9FE5pU9ew15HyBEqERwAAAFgIAqTpCJD87hvnSmme7UWhlTHJ5NrvXfsl5P6KvO9PdCHq8gmPAAAAsCAESOVbU4C0kOojL9ljnyVUH6Wq8llqcJfawrYj4REAAAAWhgBpmhISgCVaSIAUw8IuvrPx8tEONQ6qt7IgPAIAAMACESBN4+Uqc03VRwvh5dDp46U/z9IaZ3sbU9/29RRIHh7kHsEohEcAAAAY4JrKu6gmQJrGSwqwpgCJ6qNOni72tzx+bEPzuN0xy4nmhVWERwAAABihtKsmAqRpCJAWGyDF5OWw6eOtSiaVEvbNVgnBVYYxns4Mf9oc6dLg5xIeAQAAYCSPYUcfAqRpvFxtlrD/CkL1URhzP7JLm7o2lJcfK23m9lJy3IvpSBdnL4PwCAAAABN4DDv6lBBAeNymnq/0Ulho9VHMAGnth8ySjAntUgdaKYMax6FQSoRHAAAAmMhj2NGHAGkaD2kA09dWL2T1UaigI2f10RQePsooFuERAAAAZvAYdvQhQCpXCfuuIFQfla3kqWtDzA0LS7njWgLHjb5GxzOmrxEeAQAAYKbSwo4SQghv29RLGpBr31F95ILH6iOM5+XHiWOnV6c3xx7TBHsMwiMAAAAE4C3s2IcAaby1X/EtMECi+mi+pU9d89z3qAS7269nfx8fxgl9QiE8AgAAQCDH8hd49CkhQPLGQyKwpv5HhYtxuFB9dEPp45+LRtZBnRxc6H2c8AgAAACBlXSB7T1A8rgt1x4gpVR49dFaePyYYpoxgVSi3klHp9P7FIVEeAQAAIAISrqa8h5EeNyWaw6QPO6PmdY8fc1D9Q4VNO1KbGy94H1JeAQAAIBISrrIJkDCGCn3B82zzykxVIhlSvjloe9RilAx5B3XYoVCh9MbY4c0pMk24REAAAAiKin0IEAax0NJifd9Fkrh09c8HCqxeft4YhXm3Flt7GsJjwAAABBZSVdV3sMIb9vSQyrA9LVVWlrj7AVPd0J4RxrWB+lE/U2wJel0wHMkwiMAAAAkUdKFNgHSOARIaVB9hA7epq6lROgmSToeUUU0tVqJ8AgAAACJeAs9+hAgjUMykAb9j87wVn0092O5lCAkZN8jr6HVChEeAQAAICFvoUcfAqSyrKH6KAGqj7B2SwnxAiM8AgAAQGIlXWx7D5A88ZAMrCFAKnz6WmjeKlNK+vG2BrGDoCHHn7djdKJB4ZGZPcbMfsbMXm5mr9p+xR4cAADAmi37HKykKyzPAZK37bjmAAmDeDhEupTcOHvNfY+myvV+ZgRapzoIN46RhlYe/ZCk71WdQX+MpB+W9KOxBgUAAABJiz8H8xZ89PEcSHjbjp7TgZioPspmaaHGEqQM4lJNM1v5dLah4dHFqqp+Q5JVVfXaqqqeLekfxRsWAAAAtIpzMG/BRx8CpOFyB0hMX3Mt9+HRx0Pj7DVZYtPsGSHT8eG0O6GlMDQ8OjGzmyT9pZk908w+TdKViOMCAADAas7BSrrSIkAqh+d9VYiSqo+WxPPUNSRzenX8FLUTXYgwktrQ8OgrJF2S9C8lfYikfyrp6bEGBQAAAEmrOgcrKfjwHEp42o5rvSql+miQ0IdHyOoUD72PvCqtCgjB3GfIk6qqeunmr4eS/lm84QAAAGBrfedgx5Iu5h7EQHdKul/uQRTgnZJuzbh+9tNs92jgVSPOKOnHWSx3SbqcexCq/wf1XLN7eCBdOQm+2GNd0kUdBVveoB8DZvY+kr5G0iObr6mq6mODjQQAAABnrPMcrKQrLq/BhLdtuMYAKeU+uFvSfROtK7DQh8ZVSbcEXF5OUwMPL4FN6bwHThkMzZB/WtJzJf2ApHvjDQcAAAANKz0H8xZ+9CFAQpcF7YM1Vh+FCGFKOQRy57tD1r8vGJwa9iwpcBzhVAe6NHKK7dAfAfdUVfW944cEAACAGVZ8DlbKVZdnnrZh7qtTryFfKAVXH4W20jAgKbbxWQm2x9HpRV26kLenXW/DbDN7oJk9UNIvmNmXmdm7b7+3+T4AAAAC4xxsy1Pz5z400B4mdwPtHPtpQc2zY915Lfdh4VnKu65hmKn7ZAH2VR79gaRKkm3+/TWNxypJ7xVjUAAAACvHOdh1nqpn+niubPG0DXNXIOXgafuvRKhKEKauzUcPptoCqrV6w6Oqqh6VaiAAAACocQ62q5SrL88BEmpL30eRp6/F6n20xkwRadEAe7ahd1u7RdKXSfpI1b/t+i1Jz62q6mrEsQEAAKwa52BNBEjzeNp+uZOCpd99DUHlrpzxGnqErqTJ/WMhtH37zet+7dHb86jhhyU9XtJ/lvTdm7//SKxBAQAAQBLnYDs89e/p47UHkqftR6ObeOh9JKkON7zI8dFbYt+jffs0dD+iFfc3ajO06PD9q6p6XOPfLzKzl8cYEAAAAK7jHOycUio4qEDyjeoj4Jy19j1aQD+iFIZWHv2hmX349h9m9kRJt8UZEgAAADY4B2vlqYKmDxVI/XJXHy357mtUH0kKV320xCoeYKShlUcfIuklZva6zb8fIekVZvY/JFVVVX1AlNEBAACsG+dgnajiWIalNToBOsz5kTW1P07sih8qdrI60kVd0rGOdEmXdBR9fUPDoydHHQUAAADacA7Wq4QAielr++UMkJY8fY07rwXlferVEnjd94kdH17SxSvzwqAYgVLvx93MHrj5a2sBYVVVbw06GgAAAHAONoqnEKQLAZJvXvcPgqA6ZhzvAc6c/RnqDmdty1nBcbYvK/4D1beFtc2/q82ftvn7e0UaFwAAwJpxDjZKCSGI14DCy7bzfsUaGtVHq5Rj6poXqSq3St1OhwfSlZNz3z69eqALt5z/fg69H/Wqqh61/fvmN2CP0eLzNAAAgLw4B5vCSwjSx2uA5MXapq+lEjlAiiH0oRCqKqTEqWsljhm9TnWgC0ofKA3Kic3sCyR9haSHSfpjSR8u6SWSPi7e0AAAANaNc7Al8hhSlBC8pZB63yxku1N9tG5Lma7V9T5KrWSK4KaBz/sKSR8q6bVVVX2MpA+S9I5oowIAAIDEOdhIXm5BXyIv2y70vdq9S7Xd7060noCWeijM2eWHwUbRL+e2X+p+l+qAKqJjXYq6/KHh0dWqqq5KkpkdVFX155IeG29YAAAAEOdgE3gJQfrcmXsAHbxsu5xXj173jXP35B7AAKEu3O8KtBwsX6qwL5GhBYa3m9kDJP28pF8zs7dJem28YQEAAECcg01UwnQgj9PXkMdCmmfHsLY+6rF46XsUahxLmSpXmEHhUVVVn7b567PN7EWS7i/pV6KNCgAAAJyDzUKANI2X7Ubz7OKU0PvIS+jg5WMWipftOoSnHkaexjLA6I93VVUvjjEQAAAAdMt/DnYt7+onKeEKzWNQ4WW7rSlAovqoKDkreVIFDiVXfRUWypRiaM8jAAAArF6J/WC89PEpDdsNE8TofbTkBsopldSrqYR9nqGf0dHpvID5qCWgPtWFwa8nPAIAAMAIBEjhlbhNU1lT82zuvJZE5DteDeb9xxLG83JsRUJ4BAAAgJFKDDu8X6l53KZetlkJZQiheNnmzng8BHJW8pR8Fy/PFVALDn+OdWn2MgiPAAAAMIHHsKN0Hrfp2sMMj/skhIjVRzGmriGPMaFd6uAl5fpKDusCIjwCAADARKVdWJcQhJS2TVNh+trqhTwEvFSYpN7Vnqt+4B7hEQAAAGYoLezgwnw8L9vM49ylklF9NBthjF991UIrqyQ6aTTFPtHB5OUQHgEAAGAmAqSwPG5P79ssNqqPFsdL9dFUSw9AVp4VHx9O71F0MuIOamMQHgEAACAAj4FHH+8X5x63p4dttvIryuAKqz5i9/s2NJBbU8XWbsjXt40Op1cFpUB4BAAAgEA8Bh59PIQhfUrbnqnkShCoPkKLuUGI975HBHbYIDwCAABAQAQeYXnbnmsPNLztjxBWXH3E1LWylb7/nDm6+WLv44RHAAAACKykC+y1hyFTeNhmaymH8LCtgRUZE0glCu9Or/qYzkZ4BAAAgJXzfoFeUhiX0lqmr8G90qaulWItGXEhCI8AAAAQQWkX2N6v3rxtT+/ba0lSbGumrq1KzL5Hnppmh6wMGrqssceTk6mHpwPu0EZ4BAAAgEi8BR77eA9EvG1PD9uL6iOsnJPwoTgL2W5H6u9TFBLhEQAAACIq7SLbQyAC7KL66BxvU5qYuobCjA2eCI8AAAAQWWkBkmfetqWHK16qjzDTGqeuoWinGtZE+1iX9j7naMBzJMIjAAAAJFHShbaHQKSPt23pYXutIUCi+ggdpkzBitn3KCWCP0nDAyBJOp441Y3wCAAAAIl4Cz36eAhEAPTy1jg7RRPoEoQMdLyGVitEeAQAAICECJDC8LYdPWwrqo/CiFh9hH4ePkYpEbYVhfAIAAAAiXkLPvp4vprzth09byu4wNQ1pDZlSh9T4VoRHgEAAADF8hYg5Ub1URgFVR8xda2Wou8Rzhuy3afsmw5Hp9P6FYVAeAQAAIAMSgo9qKgZzsO2okmKa1Qf9fPwEeqytI9WwFBnlEIrmwiPAAAAkAkBUhjetqPnbRUT1UfZLC3UWIKUAUmqdeUKm5wgPAIAAEBG3oKPPp5DkZK2YwqkCZio5KlrJRqyrUr7OM85hg4Pgg0jNMIjAAAAZFZS8OE5QPJkrdtpadVHkTB1LY6VV8YszfHhpfGv0fjXDEV4BAAAAAdKCpC88rYNc4cbpZUreMTUtSxSfnSoksJAhEcAAADAKLlDkT7eAqTcciQKVB8N4rn6iKlr3ZYU0mEUwiMAAAA4UVLw4fmi3dN29LydYvK0D+YqqPoIvni5q5j36XyRxncUeAob4REAAAAcKemie63ByFi5t9PSSyVyb19HlrSrp+5W70FJKbwEX44QHgEAAMCZkgIkr9iG+S1pH0SqPlr61LVS5J5iF2L9U/fXSsO2KVVJUcMjM3uymb3CzF5pZl/X87zPMLPKzJ4QczwAAABrsIxzsFIuvD1XfXjahrm305JKUtrk3r5olTuUWZKlf4QLEC08MrObJT1H0idJepykp5nZ41qed6ukr5D0+7HGAgAAsBbLOgfzFH704cIdXUo5hjMKXX1EyBAf2/isBNVLp1cP4q9kj5iVRx8m6ZVVVb2qqqpTSc+X9JSW532rpO/UugoDAQAAYuEcLAuvAZKn8CL3Nlr6FW/s7bvCxtm5fzrS98ifFW/bmOHRQyW9vvHv2zffu87MPljSw6uq+qW+BZnZF5nZbWZ2G7V/AAAAvSKdg+UKITyFH6XytA3XGCB52v4r4SknLOXyNdY4cwdwXiwgdMrWMNvMbpL07yV99b7nVlX1/VVVPaGqqidIl+MPDgAAYKGmn4PdL/7gOpVy8Z07GAEKrT7y3Dgby7CA8Ca3mOHRGyQ9vPHvh22+t3WrpPeX9Jtm9hpJHy7pBT4bNgIAABRjoedgBEjzeNp+ubcR1UcYgcqZdqE/RqVUaA2177gp8LiKGR69VNJjzOxRZnZB0lMlvWD7YFVV76iq6sFVVb1nVVXvKen3JH1KVVW3RRwTAADA0i34HIwL8HnYfutA9ZEkX1PX5qDv0Q379mmBgUxJooVHVVXdI+mZkn5V0p9J+qmqql5mZt9iZp8Sa70AAABrxjmYB7kra0qQextRfYSEllZVszRdQRth1Bn3ibnwqqpeKOmFO997VsdznxRzLAAAAGux7HOwO5W3/9JQx5Iu5h5EC0/bz+s2AlbqLsVpMXxV0i0RlouksjXMBgAAAKYppYIjd3VNl1K2X2xLrj5i6pqkcLuYChSA8AgAAAAlIgBZBq8BGxDYnKlrfEzQ4lQHkqSjRBWchEcAAAAoVAkBktervhK2XQpUH00XqfoI4cRums0d1+I4PJi9iBNdCDCQswiPAAAAgKgIkPp53T7IgqlriCVUmNa2nCXe3W4H4REAAAAK5iUAwTw5AySqj4DrvFf/5Pi4QhLhEQAAAIpXQoDk9SK+hG0HvwppnO3FmvseparcKrVCrKNy6fjwUtpx9CA8AgAAwAKUEIKUfvUXG9VHcXDcrXrq2gqmU63N0WmaBtm7CI8AAACAZDxeyJcQvKXAfJhpaJy9akv52BCy7UV4BAAAgIUgBJnOy7bzGK4hC6au5ZNzjN62T8hqs8gB1ZHiTnEjPAIAAMCCeAlB+hCQ+JW6jIKpa8ksYeoau7EsJU5z7EF4BAAAgIUhQJrGy3bzuG3Qj6lrrjElCwEQHgEAAADYIECi+siRpU5dW6tQlThL6bNUGMIjAAAALJCXEKRPgRfzQKcCqo+8hA7e+vrM5WW7DuGpCquwaW2ERwAAABjg3twDmIAAaRov243qo/A8Hm8FWkPfo5IDrsJCmVIQHgEAAGCgkn69vOUlCAEwCVPX4FGGCqbTqwezXn/ccje2MXdoIzwCAADACCUGSN55rAbxErpRfVQWpq655Wm61j4lVz0tGOERAAAAFq6Ei3ICJKTi8Vgr0NypUWsNSJY8paykgG4CwiMAAACMVOKv7glCykX1UVkiVB8xde0s8r84Fhz+nOjC7GUQHgEAAGCCEgMk7zxeES4hzMB5Ho81uDOmOir1fwkp17fkaqkRCI8AAAAwUWkBUglBCBf17ag+QkCl/egKZcGVNYiP8AgAAAAzlHYVxoX5eGwzjLWSqWv0PfKrb9+sLERr3mXtSBcnL4fwCAAAACvjPQzxWH3kYZutqfooBY/HGQZb+u4jWHOH8AgAAAAzLfHCGj4t/Yp5y0NYt3D82IJnhweTX9qsNAqJ8AgAAAABlHYl5v3i3GNI4n2bxVbaMT5EzOOMqWuDeK+widE0e00NqHffa9+UOefT6QiPAAAAEEhpF9fewxCPAZIHa9ku3o9PFMl5QAG/CI8AAAAADLT2QKO0gBS9St+da8lRkcS+6W6ERwAAAAiotKsx72EIV4ft1rJdUhyfTF1DoWL8dzOmMmtlVVyERwAAAAiMACksb0GJ9+0FJLb0vkfI6vgwTgPssQiPAAAAEEFpARLG8RAg5QrVUh/bVB9FxY8qvwjVXCE8AgAAAFyEIX28VR8BGTF1bZ6x061KveNa3zrGboOh44213MiO9vQ7kgiPAAAAEE1pv9InQBrHw/ZaS/UR0MHbjwUkdaqDZOsiPAIAAEBEXGQD8zF1zT36HqEwY4MnwiMAAABEVlKA5KGapo+3MgMP24vqo1UKOXWNXYnCHJ1eHPa8AdPRhiI8AgAAAM7wEIgAu0qvPgIiIPibbWjARHgEAACABDjDD8fbBb6HsI3qI/+YuhbNlMM/ZtNsJHekYZVIknQysU8S4REAAAASKelC20Mg0ocACWDqmlMh77hGaOUG4REAAAASKukKjUCkLGuoPmLq2qIRlMAxwiMAAACgSN4u8gnbsM8Kpq7BlylTCcdO6VsJwiMAAAAkRvURYqH6aHVCTl0LIVffI+QxJGhayDFBeAQAAIAMCJDCoPoIMXg7rhIp6cfSrhRNs5cm1/ufsd7Tq9OaXYdAeAQAAIBMSr5S82SlF/qd1rA9Sg7pmLrWy3PfI89jS2EhFURTER4BAAAAe5V8sZ7aWrfV0sLQgkI4b1PXkPbjsLSPnlOERwAAAMiopLN+z6FIQRf6SbA9MFGIH0krr1AZZci2Kq3iac50OMdTCQmPAAAAkFlJARKG8Ry0xUTj7GGYuhYFmemyHObrb9SG8AgAAAAYzPMFO1eOZ7E95itoGy5p6lrKShvHlS4Y70iXoi2b8AgAAAAOlFR95DlA8mSt24nqIyxYaVPIEAzhEQAAAJwoKUDyqqBKkSTYHn45nrpG36NlWem+ONGFoMsjPAIAAABG81zx4Skw8bydYlpSEOrpeEJRSv4YpJzOV0i4RXgEAAAAR0q62lhrMFKapYcfHIfX0fdo+Yc7siE8AgAAgDMlBUheebqCJNwoX6zjaeFT10qRu2l2zsqb3O89k2NdHP0awiMAAABgMoKRYXJvpxxhGo2zV6+Q6UhF2FeJtaawLxPCIwAAADjElcB8nqqPgESWNHXNK+64dlaC6qXjw0vxV7IH4REAAACcKiVAoupjmNzbaenVR7GtcOoasGvF1WSERwAAAMBsuYORLlQfrYfXY7BgubM/mmbDEcIjAAAAOJb76m0JPF1JrjHg4BhOztPUtVIqVWJNveLwr5VyHPQgPAIAAIBzpVx9rDEYKY2nIK1ETF0D1orwCAAAAFg8T6EJIVs8bFsUKnZlzgIqf3IjPAIAAEABqD5CKDTOxgi5d53XO5t5HZcX+6YBJrhDW2iERwAAAChE7qu4obwGSFQfrUPsbVvI1LW19z3y9HEPZV9gVcp/EYUiPAIAAACwMlQfAdjoqgIqsDooJsIjAAAAFKSUC3CvlTWeyhG8biNgpbjjGnoQHgEAAKAwXIkgBE9BWmhMXZMUbuoaP3IAwiMAAAAgDq+VNZ5CE6/bKBZSiNWa0/eI5tRocXR6UZJ0qoMk6yM8AgAAQIFKuQj3Go54CpByWvJ28HrsIZnYh3foUCtHY3EMRngEAACAQpUSIKHf2kKOpRy3hUxdA0oToPfUsS7NX8gOwiMAAAAgKq/hyJKrboAN+h5hK1RlU9tyVnBnNsIjAAAAFIwrumXIGbDlCNFSHbdeg0u45T0Eof9TNoRHAAAAKFwJAZLXi3iqjzAHx88oa26anerHdAn/HbTpOjYO/3/27jxctqI+9/j7Azwzk4IDoOCARBwuGsQhqCQaBSeMEgUnUBKN3mhu4hy8BocMhuSaGM1juFFRUUSJRq5AcEBQFJFRBA2KgIwqs5yzN+cAp+4fVX3O2n169bSmqlrfz/PsZ+/dvbq71tS71tu/qt3OZNjTIDwCAAAAWhFrgARCkNgw71FtOLSzs+GubgIlwiMAAABkINWPm2MQy9Vl38I1hq61hnmPmpN6RRSmRngEAACATKRwZceFfLxiCdFSw3ZDBsrmeop9DqgWER4BAAAAvRdLANC3cC2FwLMrmQ5dS2Heoy4Dk7r+I1qMGl63Ba1s9PkJjwAAAJCRFC7G+xaQpCSWEK1uHHO1DV0DppVZ1RLhEQAAAADFE5wQdKQnlmOnBSnk08N6tHvQHMIjAAAAZCaFqzsCEgwwcXa5TIeu9VVdhzqTdHeC8AgAAAAZIkCaTywlCl1um1i2AbKV87w+sYtp2yc2rI3wCAAAAABQUQKhWw7zHsVYdRNbm1L47CBBhEcAAACYwsauGzCHFK4gqD4q16fqI4auJSWFt5aqEquKQfMIjwAAADClWEIFAP3BvEeIUEzD36a0XssqPZ7wCAAAABlLoUQgxmqQWILCGLdNU1I4VieJ5bjBFlLaNQkGM21YXLuq9udc0MqplyU8AgAAwAxSugIZyOGiHO1L8VifRp8CuRFimfeIgCQ/mQ/1IzwCAADAjHK9qO5SjBf0seznGLcN2hXh0LUuM+nYJqieRcxZfubhT1WERwAAAOiBmK9YEK9cJ85uUiyhI1qVcqDVA4uqPuSN8AgAAABz4AKxfjFW2LCf8xTjsYboxFyJ02ZYFfN2aBHhEQAAAOaUWrCQQ1VHX3UZdqR2nGOiWOY9ahuHMiogPAIAAECPxB4gxVgRwhVnu2I/RqfRxDGT4bxHTJqNFizUMGRNIjwCAABAJQQL9YsxQIoB26VebM+kMcfQeOOCvR6HdlXmPiI8AgAAQEWpBUg5VHa0LbV9XDcmzs5OX4eupaLHAU+sCI8AAACA6FAVMhrbpd8iHLqG2ZGNTlZhku66hqkNazQ8MrMDzexyM7vCzN454v6/MLMfm9klZvZNM9u9yfYAAAD0QTd9sNQqU7h6mV1q+7huOa5/k2FcjttrhNznPZolxGAo3ZaGt9+4/R35sdBYeGRmW0v6qKS9lW25AAAgAElEQVSDJO0t6TAz23tosYsk7euce5ykkyT9fVPtAQAA6INu+2CpXSzGHiBRZTNaX7ZL7McnkpTa2zSi0WTl0X6SrnDOXemc2yDp85IOLi7gnPuWc24h/Pp9Sbs12B4AAIA+oA+GBnHliYww7xGwyaThbk2GR7tKurbw+3XhtjJHSjqtwfYAAAD0Qcd9sNTChdirO/pSZZOK1I7vaaQ2dI15jzbp+zCxrtc/8mFmddum6wZIkpm9UtK+kp5Rcv/rJL3O/7Z9a+0CAADI2Wx9sB1neOZFSSsrtg7ximH//kbSdh23oQ13Stq260YA/bFW0pquGxGnJiuPrpf04MLvu4XbljCzZ0k6StILnXPrRz2Rc+5Y59y+zrl9pdWNNBYAACATDfXBcu5NU32EWeRYfYRKcp80G91au7zrFkhqNjw6T9KeZvZQM1sm6VBJJxcXMLPHS/o3+U7LrxtsCwAAQF9E0gfjAjtvMezfvoRqbYSbqQ1dqxHzHsUrxVBtlv9Ol5jGwiPn3D2S/lTS6ZJ+IukLzrnLzOx9ZvbCsNgx8h9jfdHMLjazk0ueDgAAAFOgDzYvqo+AdDDvUSWz5nmzBCLTzkPUxltuna/RVCgUSdi0QcsmLtPonEfOuVMlnTp023sKPz+rydcHAADoo3j6YDHMjTML5peZTQz7t6u5j2JYd0A+rGFml9ndJWlF141IS5PD1gAAANB7kQ9ZSQrVR/2V+tC1Hoi9eBFZWtjQXohNeAQAAABswhUgpkUwOr0mtlWNQ9dimPcoxfl9kLQFrZppecIjAAAANIyL7PrEVh0Sw76NbZsAQLM23DXdf2BbP8VcRtMiPAIAAACWoPoIMWLoGrCFaSfoRqlpJsuWCI8AAADQihgqVHIR2wV+DPu2q20Sw7qngm3VmHkClCb/4xpat0HTVSJJ0sKck/0THgEAAKAlKV08Un0ExC+yeY942/DqrAZiLqhoEB4BAAAAyaH6aEuxbZMmMHQta30LSgjbkkJ4BAAAgBbFEDJMiysbTCOlY7prbCskgCF6IxEeAQAAAKViDpBiqxAhGAAQmZjfwhNDeAQAAICWETKgKX2YOJuha0vVOO9RHQgr+mWaoYaZVDIRHgEAAKADKQVIMV8NxnaRn9J+BYbUMWl2V9r4j2u56WqOqQqvu7h2VX3tmBHhEQAAAICMxBaoYam+JxYTxDxpdiYVNJgP4REAAAA6ktJFJNVH00tpv9Ypt6FrQAXzVELFrufhGeERAAAAAGBIbKHkOJHNe4R25RhURYjwCAAAAB1KqUol5mqPlC7028D2wJzqmPco5reK2EyzrWIeyjdKlQqliNeV8AgAAAAdSylAwnT6uk8Zujadvh4fDaMCJy+RDZMjPAIAAACmFvMFO9U2S7E9qmMbdqLN6hNyvKwsaGVjz014BAAAgAhwBZOfvu7Tvq5315j3CGgS4REAAAAwE6qPEIuYj8VJIg7ZmPeoXGRDqdAewiMAAABEIuKLScyp631KmFYd2xCJyzXIm2BRq2p9PsIjAAAARKTrsGFaMV+NcLHfvVSOY6BBKU/g3WaFVSLVXIRHAAAAwFxiDpCwWe5hGsfhZhnNezTvpNkpBzaIGuERAAAAIkPVRnUxBSbsT5Th2IhC17uhy/yzzf9sF5H1Wj7zYwiPAAAAgLlR9YEyXV+R1ymmMLIlTJodl0khDxVXjSM8AgAAQIRyuvDuSkwX/F3vz5i2RRNIKQA0i/AIAAAAqIQLd2B+dQeLGc17FKtEJnhuTRtD39bOPsysboRHAAAAiFTX1So5iKnipuv92cW26Hqd6xTTsQR0pMfBGeERAAAAUBnVR+gax2Dt6pj3qIoc/uNaTG1BJYRHAAAAiFhOlRsAeodMD1IWFUuERwAAAIhcKgFSrFeJMQ036npfMnStmqa2H/MedS6nwxSNIDwCAAAAgCzEGmACHePUqIzwCAAAAAlI5WPxWK9QqD7ajOojIDqxvnU2pY3/0FYzwiMAAAAAAEZJddLspmUwh0+jMtw+hEcAAABIRCrVG7F+hE71UT80ffwx79HMunhLyPG/nE0K0nJc54gQHgEAAADoGYauAQjKQqkMq4eqIDwCAABAQlK5AKf6CEBimnp7pSIoC4RHAAAAADqQShCYolSHrkWq63mPgAgQHgEAACAxqYQOVB/FjaFr8cl43iMgcYRHAAAASBAX4XlgP6InqmTJsf7HNXRqw13LJUkLG1a28nqERwAAAEBjYq0+gpdzFRbHXu81PddQ3RNKc8hGjfAIAAAAiaJqZX45hyaxy+W45RgCGlFDpdmCVlV/kiGERwAAAECj+Dh9vFzCFNQj0nmPmDQbA3VXXCWC8AgAAAAJI3iYH5UjHtsB2CT2t9QqVTlN5vg9mJeK8AgAAABoHNVH48V+xVq3tta36eOO4G0mTJqNhBEeAQAAIHF9Cx7qxMU/gBY0PXl3269Tt7KhcBENkSM8AgAAAFpB9VG8CNHiQiBcm1TDFJRaXFv/ZNjTIDwCAABABrjYnF8swUnf9mEuQ9dSwKTZjYmoMgbNIjwCAAAAAMwplvARqIA5pSYiPAIAAEAmUqhcoQpkvC73ISEI0LnY3iLrrKxquEprg5Y3+vyERwAAAEDvEZx0g6Fr5VIIg+eQwn9cy3TToxrCIwAAAGQkhaueFC/k+4IQLV/Me4SWZTYfFOERAAAAAMUTnKQQAGKpWI4dAE0hPAIAAEBmUggfqD7CQArHK5K2rusGBLG0A3MhPAIAAAAQxFJBwsTZ9UsxsCRYwwj8Z7ROEB4BAAAgQylcdKZ4MQ+USSF0q2neo6pyO/VTmtsnpm2fWAhGeAQAAIAp3Nt1A4CMpRB2YpMuJ81OLHDoBMPjGkF4BAAAgEylcEEe08fgA7FUkDB0rX4xHm+IUgpvn2gV4REAAACmlOsFNYB4kWIgQikN1QsWtarS4wmPAAAAkLEULjxjrAaJJShMYf/VJYd1jeW4wRZSGsoV41tiDNYur/0pN2j65yQ8AgAAwAy4OERfcKzniUmz0ZDM56MiPAIAAEDmUqjoiPFKkvAkTzEeawnqctJsoAOERwAAAJgRoQLalEL4h2ZxDCyRcoVLzMPnUt6uEyxUnO9IIjwCAADAXFILkLj4xDzaPs5zOE5Te29ALRKcQBqzITwCAAAAohDjcCKCgDzFeKwhOjFnmW1WCRGMSSI8AgAAwNxSCxZivhLCeOw71CmSSbOBhBAeAQAAANGIsSIktZCwbgxdi0OE26XqpNltn+4xzzeE6BEeAQAAoILUgoUIL0AxJfZdOlJ7X0B2xgVlMWb0DVqvZSN/nhXhEQAAABCVnl3ZoCMcZ0nL+D+DSeLwjBDhEQAAACpKrcqACpbZpbaP68bQtfww7xEwC8IjAAAAIDp87D4aoUq/sf+zwNxLk1WoLFvQyvraUUB4BAAAgBqkVpnCRejsUtvHmKzJkLInx0vVSbNzwr+039LwNhm3jSLffoRHAAAAADARQ9fQgNj/4xqHIQLCIwAAANQktUqD2K+KGLo2Wuz7DQDyQ3gEAAAAYEqpBYTAOIlPmp37f1xDqzZo2dj7CY8AAABQo9TChdirWKg+iktqx/c0Upv3KPZzFq3pOjyLfI6iuhEeAQAAAJhBDAFKXwKEvqwnEImuA6mIER4BAACgZjGEC7OI/QKd6iMgalX/4xqnOMaJpMKJ8AgAAAANSC1AQnq6Cv1yPLZJLxAhDsuoEB4BAAAAVB/NKMcAJVaxH5uTxD7vUeKTZs9j3YzLp3oIzrqedch42BvhEQAAABpCwAAAvTLtEKsugp2iWfP4poaORRI2LWjVxGUIjwAAAABJ6X683pUYwkGGrqHnIgkfkD/CIwAAADSIi+z6xDZ0De1pIyTj+Kqk6qTZwBw23LW8tdciPAIAAAA2ofoIqB8h8kRkd2jZolbOtDzhEQAAABrGhWN9YrvCjGHfMnStn5g0G/21uHbyHEWStDjFXEbTIjwCAAAAlqD6CADQD9NMli0RHgEAAKAVVGnki33bDuY9Qo26/m9ndWHCcEnSwobph6DNW41EeAQAAAAkhQv8LTF0LX492FZdTZrdRoBCQWbvER4BAACgJSldPHKlBMSP8zRKa7tuAJpAeAQAAAAkJ7bqo5SCwZQRljQngkmzYzutmzbN0Lm+bZOIER4BAACgRSmFDFyop4Wha/Xgah3AlhoNj8zsQDO73MyuMLN3jrh/uZmdGO4/18z2aLI9AAAAfUAfrC+4yEdqcgvakCUm4R6psfDIzLaW9FFJB0naW9JhZrb30GJHSrrNOfcISR+S9MGm2gMAANAHafTBUrqApPpoeintVwC9kMt/lYtAk5VH+0m6wjl3pXNug6TPSzp4aJmDJX0q/HySpGeamTXYJgAAgNzRB0OP9WHoWhvrmFJVW2QBb1f/cQ3dmGZy8EwmEG8yPNpV0rWF368Lt41cxjl3j6Q7JN2vwTYBAADkLpE+WEpVKpFdnC4R20V+SvsVGBbBpNnzmmeoVd+rcrp6+6wSJq1dXlszZrVNZ688AzN7naTXhV/XSu++vMv2dGQnSTd33YgOsf4pr7+r8FjfX59v/efp68e5ldPe/9Uluf4bR9w23FeYsu+Q5PpXtHvXDYBHH6yX518R68/6s/7zqFJ9dFuFx9aPYyDi9V8c+n5HPU9b2gdrMjy6XtKDC7/vFm4btcx1ZraNpO0l3TL8RM65YyUd21A7k2Bm5zvn9u26HV1h/Vl/1p/177odXen7+mMu9MFq0vfzj/Vn/Vn//q6/xDbo+/oPa3LY2nmS9jSzh5rZMkmHSjp5aJmTJR0efj5E0hnOuSo1CgAAAH1HHwwAANSqscoj59w9Zvankk6XtLWkTzjnLjOz90k63zl3sqSPS/qMmV0h6Vb5zg0AAADmRB8MAADUrdE5j5xzp0o6dei29xR+vkvSHzbZhoz0tmQ8YP37jfXvN9YfmBF9sNr0/fxj/fuN9Ufft0Hf138Jo0IZAAAAAAAAZZqc8wgAAAAAAACJIzzqgJkdaGaXm9kVZvbOEfcvN7MTw/3nmtke4fbfN7MLzOxH4fvvFR5zZnjOi8PX/dtbo9lUWP89zGyxsI4fKzzmt8N2ucLMPmxm1t4azabC+r+isO4Xm9lGM9sn3JfT/n+6mV1oZveY2SFD9x1uZj8LX4cXbs9p/49cfzPbx8zOMbPLzOwSM3tZ4b7jzOyqwv7fp631mVXF/X9vYR1PLtz+0HCuXBHOnWVtrMs8Kuz/3x06/+8ysxeF+5LZ/0DXKvwNpg9GH4w+GH0w+mD0wfrdB3PO8dXil/zElT+X9DBJyyT9UNLeQ8u8UdLHws+HSjox/Px4SbuEnx8j6frCY86UtG/X69fw+u8h6dKS5/2BpCdLMkmnSTqo63Wte/2HlnmspJ9nuv/3kPQ4SZ+WdEjh9vtKujJ83zH8vGOG+79s/R8pac/w8y6SbpS0Q/j9uOKysX5VWf9w39qS5/2CpEPDzx+T9Iau17WJ9S8sc1/5CY5XpbT/+eKr668qf4NFH2wP0QcbLEMfjD4YfbDNt9MHS2D/1/VF5VH79pN0hXPuSufcBkmfl3Tw0DIHS/pU+PkkSc80M3POXeScuyHcfpmklWa2vJVW12fu9S97QjN7kKTtnHPfd/4s/rSkF9Xf9FrUtf6HhcemZuL6O+euds5dImnj0GOfI+nrzrlbnXO3Sfq6pANz2/9l6++c+6lz7mfh5xsk/VrSzu00uzZV9v9I4dz4PflzRfLnTnb7f8ghkk5zzi0011QgS/TB6IPRB6MPRh+MPhh9sDkRHrVvV0nXFn6/Ltw2chnn3D2S7pB0v6FlXiLpQufc+sJtnwzlcv874pLRquv/UDO7yMzOMrOnFZa/bsJzxqKu/f8ySScM3ZbL/p/1sbnt/4nMbD/5T01+Xrj5r0Mp9YcivqCpuv4rzOx8M/v+oFxY/ty4PZwr8zxnm2rZ//Kfhg+f/ynsf6Br9MHog9EH24w+GH0w+mCz63UfjPAoQWb2aEkflPT6ws2vcM49VtLTwterumhbw26U9BDn3OMl/YWkz5nZdh23qXVm9iRJC865Sws392H/Q5s+5f2MpNc45wafjLxL0m9JeqJ8Oe07Ompe03Z3zu0r6eWS/snMHt51g9oW9v9jJZ1euLkv+x/oHH0w+mCiD9Zb9MHog6nnfTDCo/ZdL+nBhd93C7eNXMbMtpG0vaRbwu+7SfqypFc75zYl3s6568P3OyV9Tr40L0Zzr79zbr1z7hZJcs5dIJ/4PzIsv9uE54xFpf0fbJF4Z7b/Z31sbvu/VOionyLpKOfc9we3O+dudN56SZ9Unvu/eJxfKT/HxOPlz40dwrky83O2rNL6By+V9GXn3N2DGxLa/0DX6IPRB6MPthl9MPpg9MFm0/s+GOFR+86TtGeYmX6Z/B+hk4eWOVnS4L8YHCLpDOecM7Md5N+03umc++5gYTPbxsx2Cj/fR9LzJV2qOFVZ/53NbGtJMrOHSdpT0pXOuRsl/cbMnhxKhV8t6SttrMwc5l5/STKzreTfuDaNtc9w/5c5XdKzzWxHM9tR0rMlnZ7h/h8pLP9lSZ92zp00dN+DwneTH2ue3f4P+315+HknSb8j6cfh3PiW/Lki+XMnu/1fcJiGLlwS2v9A1+iD0QejD0YfjD4YfTD6YPNyEcza3bcvSc+V9FP5T22OCre9T9ILw88rJH1R0hXy/8HgYeH2d0taJ+niwtf9Ja2WdIGkS+QncfxnSVt3vZ4NrP9LwvpdLOlCSS8oPOe+8ifrzyV9RJJ1vZ51r3+47wBJ3x96vtz2/xPlxyGvk/9E47LCY18btssV8iXDOe7/kesv6ZWS7h46//cJ950h6UdhGxwvaU3X69nA+j81rOMPw/cjC8/5sHCuXBHOneVdr2fd6x/u20P+U7Kthp4zmf3PF19df837N1j0weiD0QejD0YfjD5Yz/tgFlYaAAAAAAAA2ALD1gAAAAAAAFCK8AgAAAAAAAClCI8AAAAAAABQivAIAAAAAAAApQiPAAAAAAAAUIrwCEiAmR1lZpeZ2SVmdrGZPSncfrWZ7dRhu44J7Tpm6PYjzOym0NaLzezTNb3e1OtrZseZ2VXh9X9oZs+sow3zMrMdzOyNczzuaDN7axNtAgAA5eh/bXpe+l8AtE3XDQAwnpk9RdLzJT3BObc+/PFeVsPzbuOcu6fi07xO0n2dc/eOuO9E59yfVnz+qt7mnDvJzH5X0rGS9uywLTtIeqOkf+2wDQAAYAr0vyqh/wVkiMojIH4PknSzc269JDnnbnbO3VC4/01mdqGZ/cjMfkuSzGw/MzvHzC4ys++Z2V7h9iPM7GQzO0PSN81stZl9wsx+EJY9ePjFzTvGzC4Nr/GycPvJktZIumBw2zhmdoCZfbXw+0fM7Ijw89Vm9t4R63E/M/ta+HTt3yVZuH21mZ0SPtG6dIrXP0fSruGxW4f1OS98kvj6wnp+xMwuN7NvmNmpZnZIoX07hZ/3NbMzC+3YYvuZ2aPDbReH19hT0t9Jeni47Ziw3NsK7XhvYdscZWY/NbOzJe01adsCAIDa0f+i/wWggMojIH5fk/QeM/uppG/If6J0VuH+m51zTzBfkvtWSX8k6b8lPc05d4+ZPUvS30h6SVj+CZIe55y71cz+RtIZzrnXmtkOkn5gZt9wzq0rPP+LJe0j6X9I2knSeWb2befcC81srXNun5J2v8zM9g8//7Okqyas56j1+CtJZzvn3mdmz5N0ZFj2QEk3OOeeJ0lmtv2E5z5Q0n+Gn4+UdIdz7olmtlzSd83sa5IeL99R2FvSAyT9WNInJjzvURqx/ST9iaR/ds591syWSdpa0jslPWawvczs2fKfxO0n3yk72cyeLmmdpEPlt/k2ki6UdMGEdgAAgHrR/6L/Rf8LKCA8AiLnnFtrZr8t6WmSflfSiWb2TufccWGRL4XvF8h3NCRpe0mfCp+4OEn3KTzl151zt4afny3phbZ5TPcKSQ+R9JPC8vtLOiGURv/KzM6S9ERJJ09o+pKyaTM7YMLyo9bj6YOfnXOnmNlt4fYfSfpHM/ugpK86575T8pzHhA7abpKeEm57tqTHDT7Vkt9We4bXGqznDeHTwUnKtt85ko4ys90kfck59zMzG/XYZ0u6KPy+JrRjW0lfds4tSJs+YQQAAC2i/0X/a4p2AL1CeAQkIPxBPVPSmWb2I0mHSzou3L0+fL9Xm8/p90v6lnPuD8xsj/DYgeKnWibpJc65y5to95B7tHSo7Iqh+0etx0jOuZ+a2RMkPVfSB8zsm865941YdDDm/k3yn2L9tvw6v8k5d3pxQTN77pRtL7a7bPv9xMzOlfQ8SaeG0uwrh5YxSX/rnPu3oXb8rzHtAAAALaH/tRT9L6DfmPMIiJyZ7RU+wRrYR9IvJjxse0nXh5+PGLPc6fJj9gdj2R8/YpnvyJdAb21mO8t/QvSDado+5BeS9jaz5aHEeJr/vvFtSS8PbTtI0o7h510kLTjnjpd0jHwp+DgfkbSVmT1Hfp3fYGb3Cc/1SDNbHV5rsJ4Pkv+UceBq+Y6PtLn8XCrZfmb2MElXOuc+LOkrkh4n6U75T7WKj32tma0Jj9nVzO4f2vEiM1tpZttKesHkzQQAAOpE/4v+1+TNBPQLlUdA/NZI+pfwB/8eSVfI/5eNcf5evmz63ZJOGbPc+yX9k6RLzGwr+XHxzx9a5svyJcc/lC/Bfrtz7pezroRz7loz+4KkS8PrXDThIZL0XkknmNllkr4n6Zpw+2PlS6I3Srpb0hsmvLYzsw9Ieruk35e0h6QLQ6fjJkkvkl/P35Mfa3+NfOlzsR0fN7P3a+mniGXb76WSXmVmd0v6paS/CXMcfNfMLpV0mnPubWb2KEnnhL7PWkmvdM5daGYnym/vX0s6b4rtBAAA6kX/i/4XgAJzznXdBgCIjpkdJz+e/6Su2wIAANAH9L+AeDFsDQAAAAAAAKWoPAIAAAAAAEApKo8AAAAAAABQivAIAAAAAAAApQiPAAAAAAAAUIrwCAAAAAAAAKUIjwAAAAAAAFCK8AgAAAAAAAClCI8AAAAAAABQivAIAAAAAAAApQiPAAAAAAAAUIrwCAAAAAAAAKUIjwAAAAAAAFCK8AgAAAAAAAClCI8AAAAAAABQivAIAAAAAAAApQiPAAAAAAAAUIrwCAAAAAAAAKUIjwAAAAAAAFCK8AgAAAAAAAClCI8AAAAAAABQivAIAAAAAAAApQiPAAAAAAAAUIrwCAAAAAAAAKUIjwAAAAAAAFCK8AgAAAAAAAClCI8AAAAAAABQivAIAAAAAAAApQiPAAAAAAAAUIrwCAAAAAAAAKUIjwAAAAAAAFCK8AgAAAAAAAClCI8AAAAAAABQivAIAAAAAAAApQiPAAAAAAAAUIrwCAAAAAAAAKUIjwAAAAAAAFCK8AgAAAAAAAClCI8AAAAAAABQivAIAAAAAAAApQiPAAAAAAAAUIrwCAAAAAAAAKUIjwAAAAAAAFCK8AgAAAAAAAClCI8AAAAAAABQivAIAAAAAAAApQiPAAAAAAAAUIrwCAAAAAAAAKUIjwAAAAAAAFCK8AgAAAAAAAClCI8AAAAAAABQivAIAAAAAAAApQiPAAAAAAAAUIrwqIfM7GlmdnnX7YiFmZ1mZod33Y7cmdmZZvZHXbcjR2Z2gJld13U7xjGzB5jZt83sTjP7x67bAwCIE/3UpeintoN+KjAZ4VEmzGxt4WujmS0Wfn9FcVnn3Hecc3t11dYiMzvCzO4dav9HGny9o83s+OJtzrmDnHOfauC1jjMzZ2YHD93+oXD7EXW/5pTtOtLM/jtcxP/KzE41s227aEufmNlDho7zwdc9ZnZG1+1rwesk3SxpO+fcW7puDACgPfRTp349+qn0U4FobdN1A1AP59yawc9mdrWkP3LOfWN4OTPbxjl3T5ttm+K1z3HO7d96g9rxU0mvlvQVyW8DSS+V9PMuGmNmz5D0N5IOdM5dZGb3lfSCLtrSN865ayStKd5mZo+T9F35fRKFBt8jdpf0Y+eca+C5AQARo58aLfqpAKZG5VHmBsNZzOwdZvZLSZ8cHuJiZk8ws4tCwv9FMzvRzD5QuP/tZnajmd1gZn8UPo14RLhvuZn9g5ldEz4d+JiZrSx77RnafYSZnT10W/F1jzOzj5rZKaHd55rZwwvLPtrMvm5mt4Z2/aWZHSjpLyW9LHxy9MOw7KYyVTPbyszebWa/MLNfm9mnzWz7cN8eoQ2Hh/W92cyOmrAq/0/S/ma2Y/j9QEmXSPploa0PN7MzzOyW8JyfNbMdCvdfbWbvMrMfm9ltZvZJM1sx7bYc8kT5TtBFkuScu9U59ynn3J3D2yL8vmQ/hPV/s5ldGdp6jJltVVj2u2b2ETO7I3xq9MzhBpjZsrBfHlu47f5mtmBmO49Y/hFmdlZ4zpvN7MRw+3vN7F/Cz/cxs3Vmdkz4faWZ3RU6HTKzJ5vZ98zsdjP7oZkdUHj+7c3s4+EYv97MPmBmW8+yTvMws+0knSTpg6M60CWPeW44Du4MbX3r0P1vCcftjWb2msLtzzN/jv/GzK41s6ML9w2O6yPN7BpJZ4TbX2tmPwnH3OlmtvsU7XuqmZ0XttV5ZvbUcPtxkg6X9PZw7j1rzHMcbf596Piwnj8ys0eGc+DXof3PLiz/mtDOO8Nx+frCfe8w/96wTfj9DWZ22aTzx8z2Lxwv11r49DUcK582s5vMv0e8e+j4P9v8++FtZnaVmR0U7nuZmZ0/9Bp/bmYnT9qmAJAzo59KP3Up+qmR9FOBUQiP+uGBku4r/8n/64p3mNkySV+WdFxY5gRJf1C4/0BJfyHpWZIeIemAoef+O0mPlLRPuH9XSe+Z5rVrcKik90raUdIVkv46tHlbSd+Q9F+Sdgnt+qZz7r/kP8040Tm3xjn3P0Y85xHh6w9hIssAACAASURBVHclPUy+UmS4PHl/SXtJeqak95jZo8a08S75T3MODb+/WtKnh5YxSX8b2vooSQ+WdPTQMq+Q9BxJD5ff3u8e85rjnCvpOeEP2u+Y2fI5nuMPJO0r6QmSDpb02sJ9T5L/tGonSX8l6UuDP4wDzrkNkj4v6ZWFmw+T30c3jXi990v6mvx+3k3Sv4Tbz9Lm4/GJ8h2dp4ffnyLpcufcrWa2q6RTJH1A/lh8q6T/KHQAjpN0j/xx8nhJz5ZUHPM+cZ3m9ElJP1M4bqVNocXtYx7zcUmvd85tK+kxCkFP8EBJ28ufg0dK+mihM7hO/tjbQdLzJL3BzF409NzPkD/+nmO+hP0vJb1Y0s6SviP/3lAqbJNTJH1Y0v0k/R9Jp5jZ/ZxzR0j6rKS/D+fepLDsBZI+I7/PL5J0uvzfq10lvU/SvxWW/bWk50vaTtJrJH3IzJ4Q7jtG0npJ7zazPeXP/1c65+4asx67SzpN/jjbWf697eJw97/Ib+OHyW+vV4fXHHiSpMvlj5W/l/RxMzP5zvleoQ0DL5f0uQnbAQD6gH4q/dQB+qnx9FOBLTnnkvuS9An5C4ZLp1j2IZK+JX8Bcomk53bd/ha2z9WSnhV+PkDSBkkrCvcfIOm68PPTJV0vyQr3ny3pA4Vt/beF+x4hyYXvJn9R+vDC/U+RdFXZa49o6xHyb4i3F76eHG4/e2hZJ+kR4efjJP174b7nSvrv8PNhki4qeb2jJR0/dNuZ8uXTkvRNSW8s3LeXpLvlh3juEdqwW+H+H0g6tOS1jpP/Q7C/pHPkL9x/JWll2MZHlDzuRcX2h/35J0Pr+vMKx8dB8hezt0taK3+Rv/Xwtijsn7MLvzv5UuLB72+U/2M6WPaGoWPpB5JeNWI7P0nSNYNlJZ0v6aUl7f20pGOL2z3cvlK+03M/Se+UDzuuk+9IvVfSh8Ny75D0maHHni5fCfMA+XBhZeG+wyR9a5p1qrAP3hL2631nfNw1kl4vP29Q8fYDJC1K2qZw268lPbnkef5J0ofCz4Pj+mGF+0+TdGTh960kLUjafUzbXiXpB0O3nTM4zhXOhynW8WhJXy/8/oJwnA6O0W1De3coefx/Svqzwu97SLpV0k8kvWuK13+XpC+PuH1r+fezvQu3vV7SmYVj5YrCfatCOx8Yfj9e0nvCz3tKulPSqirHEV98dfEl+mB8VfwS/VT6qeOPD/qpHfdT+eKr7CvVyqPj5Msqp/FuSV9wzj1ePlX/16YaFbGbXPkn7btIut455wq3XTt0/7Ul9+0sf4F0QSizvF3+U5RiSee41x74vnNuh8LX9ycsP/DLws8L2jyfzIM1/1jtXST9ovD7L+T/ID9gitcdyTl3tvw2OUrSV51zi8X7zf8Xqs+HUtTfyF9k7jT0NMXt/ovQzi2YH5IzmNDxaSXtOc059wL5TzcOlv/DM8t/lxjXluFjaWRbnXPnym+7A8zst+Q7eWVDeN4u3wH8QVi/14bnWJT/Y/4M+c7lWZK+J+l3wm1nhcfvLukPB8doOE73l/SgcN99JN1YuO/fJN1/1nUys1cUtv1pJesiM9tfvtNwiHPu1rLlSrxEvlP2i1Ai/ZTCfbe4pXM1bDo2zexJZvYt88Ot7pD0Jxp/jO0u6Z8L2+RW+X2w65i2DZ87Cr+Pe0yZXxV+XpR0s3Pu3sLv0uZ1O8jMvh9KzG+X3z6b1s05d7X8xesekj46xWuXvX/sJH+sDL8/FNdv03uDc26h2E75KqPDws8vl/SfhWWAlBwn+mCoF/3U6dFPnYx+asn2B6pKMjxyzn1b/mJmE/Pjcf/LzC4ws++EE13yCfR24eft5dPZvnFj7rtR0q5haMXAg4fu363kvpvlL+QeXfiDur0rTIo44bXHWSf/B1+SZGYPnOGx18qX8o4yqT03yL9RDzxE/hOnX41efGrHy1ebDJcCS75E2Ul6rHNuO/kyWRtaprjdH6KS49g592jnS53XOOe+M65BzrmNzrlvyg99eky4ecl2ly/nHjauLcPHUmlbJX1Kfl1fJemkss6bc+6Xzrk/ds7tIl/p8a8W5hSQ/8P7e/JlvOeF358jaT9J3w7LXCv/iU6x47faOfd34b71knYq3Ledc+7Rs66Tc+6zhW1/0Kh1MbMHSDpR0ludc+ePWmYc59x5zrmD5TsN/ynpC1M+9HPynZ4HO+e2l/QxbXmMDXfMXz+0zVY657435jWGzx3Jb6vrp2zjzEI5+39I+gdJD3DO7SDpVBXWzcyeJ/9J8zflh7FNcq182f2wm+U/3R1+f5h2/b4uaWcz20c+RGLIGpJEHwwNoJ86fXvop9JPnaufCtQhyfCoxLGS3uSc+235saKDT7eOlvRK8xPvnSrpTd00L1rnSLpX0p+a2TZhrpP9Cvd/QdJrzOxRZrZK0v8e3OGc2yjp/8rPMXJ/STKzXc3sOTW064eSHm1m+5ifdO/oGR77VUkPMrP/ZX6ixG3N7Enhvl9J2sPC5HkjnCDpz83soWa2RpvHnlf9zx8flvT72vyHomhb+bLcO8K457eNWOZ/mtluYQzzUfIBxMzM7GAzO9TMdjRvP/lPPwafol0s6cVmtir84TtyxNO8LTz+wZL+bKgt95f0ZvMTA/6h/Nj4U0uac7z8uPRXanRnZdDmPzSzQcfwNvkOzMbw+1ny4/N/7PwY9TPlP526ym0el368pBeY2XPMbGszW2F+kszdnHM3yo9T/0cz2878RJQPN//fPuZZp1LmJzf8vKQznHMfm+Pxy0J10/bOubsl/aawHSbZVtKtzrm7wj5/+YTlPybpXWb26PDa24d1H+dUSY80s5eH95KXSdpb/nxsyjJJyyXdJOke8xNUFyfT3knSv8sfE4fLHwfPnfCcn5X0LDN7aViP+5nZPqHy6QuS/jq8p+wuP8/G8WOfLQj77IvyAdZ95cMkIBf0wdAU+qlL0U+ln9pIPxWYRhbhUXjzfKqkL5rZxfLlfA8Kdx8m6Tjn3G7ywxk+M+YNuXfCG9mL5d98b5d/g/yqfMot59xp8n9QviU/2d/gzXt9+P6Owe3mS1m/IT/+umq7fio/Me435CcVPnv8I5Y89k75P4AvkC/d/Zn8xIKSv3iTpFvM7MIRD/+E/ES935Z0lfxY5cqdXef/W8Q3h8pKB94rP6nfHfIT5n1pxDKfk//jcaV8qfMHRiwzjdsk/bH8NhmUHh/jnPtsuP9D8uP/fyX/ictnRzzHVyRdIP8H/BT5SZwHzpWfz+Vm+YkhD3HO3TKqIc65ayVdKP9HdtynT0+UdK6ZrZWvnvkz59yV4b7vyY8pH3R2fiy/zzZ1fsLrDCaAvkn+U5y3afP736vlQ4gfy2+fk7T5/WOmdZrgd+TnV3iJbS7ZHnxdJklm9rSwnmVeJenqcK79ifwEldN4o6T3mdmd8hOFjq1Ycs59WdIHJX0+vNal8nMQjHvMLfITV79F0i3yZdzPd87dPGUbZxbO9TfLr89t8qFYsaz8WElfcc6dGtp3pKR/N7P7jXnOa+T/VrxFvrriYkmDSUvfJP+p55Xy70mfk3/PmNbn5Cd1/WINHX0gCvTB0CT6qVugn0o/tal+KjCRjX6PiJ+Z7SE/Lvcx5v/l9eXOuQeNWO4y+YnTrg2/Xyk/ieyv22xvSszsXEkfc859csR9j5K/kFzOxU87zOxq+Qn8pvp37g23xUna0zl3xYj7jpBv5/4zPN8nJN3gnJv3v3I0ap51AoDc0QdDl+inxoV+anfop6JtWXz645z7jaSrBsMqQpnj4JPia+T/VeXgD8oK+VQXgZk9w8weGMqBD5f0OPkJBQf3/0Eoq91Rvhrh//EHGVWFi48Xa+knQgCAhNAHQ9Pop6IL9FOBLSUZHpnZCfJjoPcys+vM7Ej54RtHmtkPJV0mX/4n+aEHfxxuP0H+306mWW7VnL3kx27fLr+9DgljbAdeL/9veX8uP+78Da23EFkxs/fLfzJ4jHPuqq7bg+kMhtWN+prxeU4reZ6/bKrtQ6//ipLXv6yN1wdSRh8MHaCfilbRTwVGS3bYGgAAAAAAAJqXZOURAAAAAAAA2kF4BAAAAAAAgFLbdN2AWZmtdtIOLb3a1i29jtROjtf0+jS5Dk21ve7nrXMb1PVcdaxjhzmzVXjsPKs+z6rO+jqzrNMszz1t26d9zmmeb9IyVe8f19Zx27HscWWvN+vyo24fvm2rjVsusvXS27YaWsa0dCj5VtpY+nvx5+LjypYZ/DzutsHzDN9e/F78ubj84Mvk/M9uo7a6V9JG+X90vFHS3eH7PYWv9eH7Bmlxg3SnpGulm51zOwtR2XqnHd199til1uc0bXmexGorxTvVw/B7RddiaE8XbWj7NYf/ZtStyfWp+7nr3BZ1tK3qc8z7+Hm2w6yvNe3ydS436W/FpPfnca9Rdl/Z7TZi2p+t7h26YdRDhx9WXObekuUmLXPv0HIbh+7bWFh+8Pvg6x7//e57ffdsvaS7JN0wpg+WXHjkg6M3tvRa27X0OpK0soXX2Lbh529yezX13HVvkzr3Y13rXMfzVFyvKgHQigqPXT3HY+Y5JNbMuPzyGZadpT3TtmPa5abZfpMOjUmvVeX+ccdG2eNmvb1sG4xa7zVDwc/qhS0WWbXt4tLfVy1dZpk2LL1fC6W/r9Tm51qu9YXbFwrLLxZ+Xtji/uXh9Tbft7jk92XheVcVbh88fpUWN73uSi1qlRa0Sgtapg1+ufULWrVuo2ydfI9knaRfhe+3yk9ve4ukqzZ/v+Qa6SxJb5Z+IUTnPnvsot3PP6H2511WOH5jVzynYjP8ftG14feztnW1Pdp83aa3cZPrsrLm515e47aoo21V3yvm3fbzHBOzvtYsy0/Tnmmeb9I+mbT/x73GypJ9VfaYZeu3/Ju1at3Qh4HrRjxw+GHFZdaWLLeu5Oe7hm4rfl9f+HnwvIN+2Lrw2HXy/bD10vW3+O7ZzyRdIendY/pgDFsDAAAAACyxoFVdN2Fq67Ws6yagQ+z/dhAeAQAAoDMbZirH7NZCK5Xi80npQr8NbA/Ma7GGYyfm94rYTHOu1rFP2uTmGf0wEPGfRMIjAAAAALXa0NNKgDZDq5S3cWphAADCIwAAAHSM6qN6UG2DunFMpWWeQJF9HLF5Kpga/HNKeAQAAAAgO1wU90tO895w7CJGhEcAAADoHNVH+Ul5WFUVDF1Dzgi2+ovwCAAAAMgEF3ZIRczzHjFpNrAlwiMAAABEIaXqI0yn68oYwrTq2IZIXW+P4TX1Ph3hEQAAADCjmKsKenuhFBH2AdB9eFxFq+dwzSFPUwiPAAAAEA2qj1C33IOclC/Q65bTpNnz4nhAUwiPAAAAgDnEXH0UEy5mUSbmeY+6lnvoGYvFvr6Pr579IYRHAAAAiArVR9Vx4dm9nPZBTusyrT4FW13v3zpen6qz5hEeAQAAAHOi+igNXV8cN43qrjjx/lCfPoV5sSI8AgAAQHSoPqoupsCEcANtoQKleTG9t6A9hEcAAABABVQXAPOjogSpW1jdQqwyxxxFdSM8AgAAQJSoPqoupgqBrquPutgWMW3/qnJaF2BeG5b39+8S4REAAABQEdVH6FrX4VyOuq6Kmjew41hAEwiPAAAAEC2qjwCkrO/BMkFWkMGfMsIjAAAAIGMxDTfq+kKSoWtxqrvCh0mzZ8dxikkIjwAAABC1VKqP+l5hgO41Hc4RMCBVHLvVER4BAAAAmYvpwqnr6iMA8YnpPQqjER4BAAAgelQfoS4MXcMsup40O1Yc0+O51RMWmHR/hAiPAAAAAABZyWXeI0KazQjyukV4BAAAgCRQfVRNTBehDF1rTqrzHuUcDHTxntDHcyyXwDBWhEcAAAAAeoWhawAGFkvCPc7ZpQiPAAAAkAyqj6rhYghAmabeH/pYBZUjwiMAAAAAreOCsjmpDl2LVc5D6oBpER4BAAAgKVQfVdO3C/8yDF2LT90hDXPgAPUhPAIAAADQCaqP0BdVwmRCR4y0euh7wwiPAAAAkByqj1AHLsqRs9SGL3I+xo3wCAAAAElKJUCKERdp3Wlr26cWHACoUQPVSIRHAAAAADrD0DUUxTo5daztQvs2LG/4g4tIPxchPAIAAECyUqg+inXoGpUjHtshb0yaPZucz4cm121hdf7RSv5rCAAAACBqfas+ymXoGtA2KsC6Q3gEAACApFF9NL+cqwzQPI6f2fT5P661FWQmW2m2pusGTEZ4BAAAAKDXUr8wzw3VJUAwauLrFa23QhLhEQAAADJA9VH6+jbEiqFr7amrGiXFUIv9j7oQHgEAAAA9RtUNquD46Tf2f38QHgEAACALVB+hCi6Cgf5aLHlvTup9YdQQtxoRHgEAAAA9F8sFEkNsMJDiELFppDBpdpfvB7G8FzUi/s83xiI8AgAAQDaoPkJKmPeoPcn+Fy4gEoRHAAAAAKL5xL/LoCOWbZCaPm23XCuiUD/X8DCythEeAQAAICtUHwHAZrFUnsXSDsyH8AgAAAAAOsLQtXJU+WAUjotuEB4BAAAgO1QfzSeW4UcMXUPOYjz3+yKq8zuxYW2ERwAAAACASqK6KC+Rw6TZMW7n2NqUw36OEeERAAAAJtqYYLeR6qP5xHIh2KfqI4aupaUPw6ZieR9APNLrBQAAAKATXEwAaFsfghqgFRWHyREeAQAAIFspVB/FiKAQ8+C4iVdKVWcpHEcblnfwt6WBOZK2XTH9soRHAAAAmFoKnfrUxDh0LRYMXUPdmA8HTVlYnXe8kvfaAQAAoPeoPgI2S6kCJWZVh9MRGiM1hEcAAACYCRUS9YvxQjKW/UzYAeY9WiqWc3MeMZ/PixG+D8eE8AgAAADZo/oI82Do2uxyWAfMjv0euRrmSyI8AgAAwMy4UKgf1UdoS8zVH4hHzOd/m9VoMW+HNhEeAQAAYC6pdaipPkoXYQfqxKTZwOwIjwAAAIBIUH0UH4auxSHGeY9SmzSbEBZVEB4BAABgbqld6FJ9lC4ufOvV5PZM7X0B+RlXXda747P4Z2/F/E9DeAQAAIBeiT1AovooPn1ff8Qn92My9/VLEeERAAAAKqGTD9SLc6p5zHuEqEX4GQfhEQAAACpL7WKX6qM0MXQtHU28J8Q47xFmx3ncsIb+vBEeAQAAAJgotYCwbjmuPxfx1aU2afasZjnuczxHqnKrh24YF+ysabIl1REeAQAAoBapXThQfZSmvgQeqZ1PSENfzh/Uj/AIAAAAwFQINJAT5j0CNttuwv2ERwAAAKhNauEC1UeYRWrH9zSarERh3qNm5Xg8zoJjoV2ERwAAAACmFsMFa1+G3sSwrYE+WZwhsN+wPO4PH+pGeAQAAIBapXbBS/URgCpynzQbHRuedLsjhEcAAACoXWoBEtLTVfVRjsd2Xyq5kJYcz7WUER4BAACg96g+mg0Xde1JfVvHPu9RHyfNnjUsnGUfTrtsG4Flnft22vVaWD1jxBJJVdGkybIlwiMAAAA0JPWLXqAMxzZiwbE4H7bb7AiPAAAAAFF9NKsYLr4YbgWg11qsXCI8AgAAQGNiCBiA1LVxHjUZxPXhfYBJs5GcGT8vITwCAABAo1K6cKT6aDYx7Fsmzu4n5j0C2kV4BAAAAAAAkIoVUy63ZvIi2075VIRHAAAAaFxKVRpUH80mpX2bstSHriEuuezrOivQkjbL3EdzzpNEeAQAAAAMiT1AwlIMXYtfH7ZVV0FGG9u2D/sP4xEeAQAAoBVcfNQntuojoAvMexSnad/rpwl9+bsRD8IjAAAAYASqj6YXwwVeH6qPGLqWN0JhxIzwCAAAAK2JIWQA0A3Of6RgkRBvJMIjAAAAtCqlC8iYq49iq1JIab8C6AeGI9aH8AgAAABAFhi6Vo+Uhq7FNu8R//2rXzYsn/wBg5vzv5vFhvAIAAAArUupSoXqo+mltF+BnMxz7qUUEjahs/erKn9SOgyiCI8AAAAAZKPvF8SxI2AcL7ZAuKjv+67v6094BAAAgE6k1BGn+mh6Ke3XOuU2dC0lDBWLD8dofgiPAAAA0BkuMNAEqo+qYxsiFYSH7SA8AgAAAKZA9dH0+hoKUn00nZjbzqTZ7ZompIz5eBllYXWFmGVNfe2oG+ERAAAAOpXahQEAxIj30szM83lFgxNqEx4BAAAAU6L6KB0Mu6oupW2YU7VPm+dySvsY3SI8AgAAQOdS+sQ85gApJint0zoxdA0545jrL8IjAAAARIGLkuqoPlqKqop4xXy+M+9RXurYnyA8AgAAAGZG9dF0Yg4IMB0COMyL879jNc9/RHgEAACAaHCxUR3VR91j6Fo3qPZBXRbbfB9tcJLrOhEeAQAAAHOg+mg6XYcbVM7Eq+tjI2bzhsBs09mwvaZHeAQAAICo0Jmvjuqj7uV0HPcxgOvTPDld7986Xp+qsxnNUe3UeXhkZn9uZpeZ2aVmdoKZrei6TQAAALmLvQ+WyoU31UfT6Xp/dn1x3LSuty9GI9CoD8d49zoNj8xsV0lvlrSvc+4xkraWdGiXbQIAAMgdfbB+oPoIfURg0zyCnKU2LG/hQ4QI5kXqvPJI0jaSVprZNpJWSbqh4/YAAAD0QfR9sFQuUKg+mk7X+7OL6qOu17lOTW2/nLYR8tfn47XT8Mg5d72kf5B0jaQbJd3hnPva8HJm9jozO9/MzpfWtd1MAACArMzTB9t4061tNzMpsQZIVB/1R58vapvS9bxHTJqNmHQ9bG1HSQdLeqikXSStNrNXDi/nnDvWObevc27fKOq1AAAAEjZPH2yrne/bdjMlcREEIG19H0bHe7jnMogxuh629ixJVznnbnLO3S3pS5Ke2nGbAAAAcpdUHyyViw+qjybrel8ydK2aVIau9T2wmUfuk8qjuq7Do2skPdnMVpmZSXqmpJ903CYAAIDc0QcDMpRTUIV+aTq86noIYg66nvPoXEknSbpQ0o9Ce47tsk0AAAC5S7EPlspFMdVHk3W9L6k+wiwIHUbjmB5vYfWEqCXOPxVjbdN1A5xzfyXpr7puBwAAQJ/QBwOA+C1opVZpsetmRGFBq7RKC103o7e6HrYGAAAATCWVT7qpPposlX2Zoqa3LfMeza6LtvTxHKt7Oy9G9J4ZA8IjAAAAJKOPF0SoH0PXAAxwbk6H8AgAAACoGdVHk3HBBsQllaoydIPwCAAAAElJ5UIk1gAJXs7VRwxd8+oaxsSk2QDhEQAAANArVB8B7asSZMV0ziIiK8L31e28HOERAAAAkpNK6BBr9REXo14X1UdtSeUcQXOaPgbqfv6cz8ccEB4BAAAgSVwc56Fv+zGX9U1l6BqQnDU1PEcDn1sQHgEAAAANovoI6A7zHmGgrn04KuDcsDzO9/k6ER4BAAAgWVQpoKqch8pwfmBWsZ8PHNPdITwCAABA0lK4mKD6aLwU9mGdclnf2IOG2PR50uy2jvm6Ks1a19Kk11UQHgEAAADoNUKQuOQSrsWAbZm4UZ87dBQ0ER4BAAAgeSlcIFF9NF4K+7BOba1v37brKMx71ByOr/4gPAIAAABaEmuABKqP5sV2Qw4IwSYjPAIAAEAW6PzPj+ojxCbXYyHZOXlaElsYuVjje6NrerhZw89PeAQAAIBspHDBSfURBhi61p4cQpu2Qt7YAhzEgfAIAAAAANVH4qJ5Xn3absx7hGktrM4rbslrbQAAANB7KVRZUH2EgRSOV6QtlmMslnZgPoRHAAAAyA4XKfOh+ijfKpoUz4kU24zmVTkuqBybH+ERAAAA0AGqj5CTFEK3WOY9qtKOWALeothCvlj280SJ/QkgPAIAAMBEGxPsNsZ2QTNKjAFSLBenfao+YuLstPSheiWFMBDtSq8XAAAAgE4sbowjVADQHwReiFGSx+XqLW/absRtZQiPAAAAkK0UOvhUH5VLYf/VJYd1pVolXikdXxxHJWYIeppAeAQAAICppVh9lNJFE+KR6wVs38+HWObDiaUdqM+G5fF9EFAnwiMAAADMJMUAKXZUH5Xre9iBOI+BLuc9iuXcnEeM+3Ig5rbFgPAIAAAA2eOiAPPIdeLsJuVasYXxcjh2s1bD5xOERwAAAJhZitVHsV/cUH2EtsR+LjSNIWPTiTkIbPMYXuR9UBLhEQAAAOaUYoAUuxgDpBh0GXZQfYSmtB1icWyhCsIjAAAAzC21AImLp9lRfYRZNRG4xXjudjnvEebXu/22pp6nITwCAAAAIkL10WgxhgcpY3umLfdQt2oAydDEEqvnfyjhEQAAACqh+ih/uV+oTsLQtfwQLiBqVaqFKgRE4xAeAQAAoDICpHpRfTRa7PsNm/Vl6Bpm1+f96MYFOw2FPnUhPAIAAAAwEdVH+VUf9fkivi5V58+JvQJqluOe42lLC6vziVzyWRMAAAB0iuqjesVYfRRDgBT7fgNixvmDeREeAQAAoDYESPWKMUDqs7arj9rQ5DkQ+9C12Kt+JokhzO1S7O/fqZl0NBEeAQAAAJhaDBesfblo7Mt6ArGY5Zzr2/lJeAQAAIBaUX1UL6qP4pJj9RGqyX3eI3Qskj8BhEcAAACoHQFS3qg+ak/qE2czdA3zSjGo3bA8kqSnAYRHAAAAaERqAVLMqD4CUJdZw7cm/uNaG6HouGBw1mqxxaYC80je2qdZO8IjAAAAQPFXssQWIPW5+ijFigjkKYbzEB1a0d5LER4BAACgMVQfAdUxdC1+zHuE5KyebXHCIwAAADQqpQCJ6qPZxFD1QPVRPzHvEXpt2uBnxoBoHMIjAAAAoCD2AAn9lHr1EdAEjtnqpt2ChEcAAABoXErVR7Gj+mhUG6g+ih3bqjnznINNTpqNDsxSYTTnPEmERwAAAGhFSgESn2YD8Ytt6FrVeY9yUed+IbSKB+ERAAAAMELMARLVR6PakH/1EUPX8ta3uZc41tJCeAQAAIDWpFR9FLvYAiRgEqpIkAJCrdEIjwAAANCqlAIkLiKm1+fqozb1YR1nJQOxswAAIABJREFUEdv2YOhaXJqu5prm+FtYnUfsksdaAAAAICkESPWIrfoohgCpC7lV1MR8zDcp5WFjbUyanZuugj43y+TWw6o8tiLCIwAAAADZ6PsFcexyC9rqFnOAxb7rN8IjAAAAdILqo3pQfRQHJs7uTkpt7Ys290lbr7XY0/e2AcIjAAAAdIYAqR6xBUhdi3lfIW51VP4w79H0cjxXNyzP8/2Y8AgAAABArag+al7KF90Mf8IsenW8FOc0WtNZK0YiPAIAAECnqD6qB9VHS8W8r1LBNuzGvNVPTJqNJifUJjwCAABA5wiQ8kP1UfM4FjdjW7SjV1VAWILwCAAAAFFIKUCKFdVHSxEoxCvmEIJ5j/IS83+wSwnhEQAAADCjmEOJmAIkqo/SF/OxjrilfOy02vam3rJrfl7CIwAAAESD6iPULeUL2Gnkvn6zyGlbtDnvETANwiMAAABEJZUAKeYLVaqPUKemjvWYK7T6NNSp6/eyLl+/t8ML55hYm/AIAAAA0SFAykvXAVIX+4mJs9HbYKIBk84nzoHmER4BAAAAGYqp+ghoCyFC82KuGOtCK8dcBG/nhEcAAACIEtVH1cUUIFF9lLY+Dl0Dhi32eBgu4REAAACiRYAETIdjsH5dz3uUw6TZHJfewur0o5f01wAAAABAKaqPiq9P9VGM6t5GMQUWqcx7FNM2Q5wIjwAAABA1qo+A6TR9DHKMI1VdV5HlgPAIAAAA0SNAqobqo+LrU32E6RE6jJZztVgdNiwf/57rVrfUkBoRHgEAACAJqQRIsYopQEJzUq0+yjmMqDJ0LYd5j+oy6RiJaZ/niPAIAAAAqBEXMJN1fWFL9RGAgbJwj/fypQiPAAAAkIxUqo9iveiIqfqo6wAJwFJNvW/F+n6I2RAeAQAAICmpBEiIW87VRwxd8+pqJ/MeAYRHAAAASFAKAVKsn7ZTfQS0r4t5j5C5waTbK9p5OcIjAAAAoCEESHGLdf/UIdXqI9Sn6XA21koxaHOwVCPCIwAAACQpheojTNa36iMmzh4v1kCC6h8MLDb9ntVA8FMHwiMAAAAkK4UAKdZP06k+8mLdP0AXYj8fqoSLTQaAsW+3OhAeAQAAIGkESPOLJUCi+qgZDF2LS5/nPWrrWEn2mIzjrXgswiMAAACgBcle1PQA+yYuDO2rT9+C2eysGXFbR8PaCI8AAACQvBSqj2JF9VE3cqk+SgHzHjWHoK8/CI8AAACQhRQCJC7kx+syQGLfzIfthhyUDSms8/heWN1w/NJwRRLhEQAAANCiGC+2Y6k+6huqj8rlWtGSwrxHXR4vKR6rfUF4BAAAgGykUH0Uq1gCJKqP0pPCdmPoGtq2YXkc76l1ITwCAABAVlIIkFK42EY7cq2wqQPbph6xzCdW1/sex0U3CI8AAACQHQKk+VB9FOd+qUOu65WiKkPXUE1MlWOuo/+aNi/CIwAAAEy08V66jUBTcqikSCGcymHoWkzhx0Bsx28Kx2KK6AUAAABgKgtr0+qQU300H6qP4twvdUhxvWILJvoixWMFE1R8ayc8AgAAQLYIkOZDgNS+HEKSGI9leCmdSykcR4tdbM8m3pZneE7CIwAAAEwtteojKY0ACfFJ4QJ2Hrmu17RiWX/mPcpPLMdWUwiPAAAAMJMUA6TYxXjRQfVR+3KoPmpCjNuFeY/mE+N73UDWgd6a6k9BeAQAAICZpRYgpVB9FONFVSwBUldi3Cd1aHK9ct1mGK/tgK/N1+OY9giPAAAAMBcCJLSFybNRp77u01nPo75uJ4xGeAQAAIC5ESDVK8aLtb5XH7UtxiFas2riOI5xu1QdPpb1MCnEY3XJzzMiPAIAAECvECDNLoYAieqjeuW4Tn2S8rxH06h6fI57fO7brimdh0dmtoOZnWRm/21mPzGzp3TdJgAAgNzV2Qf7/+3deZRtaVnn+d+TpBE3Im4myegAKqCopQWCpmg5sBRLREWlhS5xRq3CqVjWqlYbGqpstYpSWWWJbdlKgyJqKRalki1YOCCUKAgkIGMLCWoxqZCA5L0RRph53/7jnHNjx4kz7OEdnnfv72etu27cEyf2efdw4r7xi+d5d23VR6jXVBbP9lhlMzaEZ3BtQIXQoK/doHh4JOnpkv57COFTJH26pLcUHg8AAMAURJ2D1RYgUX3UnYfqo5I8npOhals422OoNvbWtS7nse35GeN7aZ2T3bPfNw8PNkQwzr/FFg2PzOzOkh4q6VmSFEI4CSF8qOSYAAAAxi7VHIwAKa4p/YDVBdVHQH9Tef8gvtKVR/eV9D5Jv2BmrzWzZ5rZuSIrM3u8mb3azF4tXc4/SgAAgHHpPge79f2tNkyAFJe3AInqI1/nI4YpVx/Vfj6nvnYPAWtc1235fOnw6FpJnyHp/w4hPFizZOiJy08KITwjhHBjCOHGZA18AAAA09F9Dna3u7feeG0BErrxECBNpXqCH46BvLq0ER7l+j50Mc/LbFM6PHqXpHeFEP50/u/naTaRAQAAQDrMwRqoPkIXnA8sG/u6R6XwXvOlaHgUQvhrSe80s0+eP/TFkt5ccEgAAACjl2MOVlv1EQFSN1Qf5ZOj+ojWtWnp+t6pddHsmK/RdltdXzM4aay6vsVzrk0+iu2eIOlXzGxH0jskfWvh8QAAAExB8jnY4aV97V88jL3ZZI6u7GnvmqPSw6jGiXa1o+OiYzjUnvaV/5wdal/7qufaxngdaV97XIudjea4HSjbstDFw6MQwusk3Vh6HAAAAFOSaw5WW4DkGYHFdJ1oRzs6SfoaKa+vKVy7Q8OIY+1oN/E5Bs7oGDyVXvMIAAAAI1dTCxvta91MuX3N27mYGlrXMGlt291afIu+7kK7TREeAQAAIDkCpHi8/aDrIUCagtrXPoIvY1kzjDsSzrUMgCT1voE94REAAACwxHuAhLOoPvLP+8LZMQy965rn102xaDbqQngEAACALGqqPpJ8B0jeQgsP1UdjqaTYhOqjdDzs9/HEQpc2x9zDecEM4REAAACyqS1A8owfqnzgPLTHsUINphbitRUtPDKzJ5jZXWJtDwAAAJvVOv+qKUDyXH3kzZSrj3KGIrQEneXteJRqXcNqqd+bRy2+55zslv/eGEPMyqOPlPQqM/t1M3uEmVnEbQMAAOC8audfBEhxeKvk8BAgYThv11UuNe93n9Cqa9ha8/FZpVTQd3gwIIYp+C02WngUQniKpPtLepakx0l6m5k91cw+IdZrAAAA4FTt8y8CpDjG9gPdUFQf+cb1utlYWqZqvkbXmfq1G3XNoxBCkPTX8z+3S7qLpOeZ2Y/HfB0AAADM1D7/qilAQjseqo+msHh2ajX9oOwtqKB1rb0Y15m381/Te6eLmGsefa+Z3SzpxyX9saQHhBC+S9JnSnp0rNcBAADADPOvvKg+as9DgFQC1UfteLtemzyPbaomdU6a3zoPio1ipWsjbuuukr4mhPBXzQdDCFfM7JERXwcAAAAzo5h/HV7a1/7Fw9LDaOXoyp72rjkqPYyVDrWvfdVxHHM41J725fNc1aKma+pEO9rRSelhRHGsHe322Jcj7Wuv4/nifTIyB5Iup9n04MojM7urmd1V0tMl3bb4d+NxhRDeMvR1AAAAMDPG+VdN7WtUILVD9VF6VB8hN87bdMWoPLpZUph/vHyHjyDpfhFeAwAAAKdGOf+iAml8TrSrHR0Xe32qKoarqfoolhj73KcKCGlM8RqWFL0KaXB4FEK4b4yBAAAAoJ0xz79qCpC8muwPSmuUCJBynoMxtWsNxbHwFVrVfD76tg72EQ4kS9RqFlPUu62Z2deY2U+Y2X80s0fF3DYAAADOG+P8q5YWNtrX2plq+9qYpLqePF2ny0qP7ThjS2LpuxOWvOPaZO+Md6H7l8S829rPSPpOSW+Q9EZJ32lm/znW9gEAAHDWmOdfBEjDlf7ht6l0gFTih2PWPsJkg4kEPH0/m6qYd1t7mKR/FEIIkmRmvyjpTRG3DwAAgLNGPf+qpYWN9Y+wDi2E28U+RjW3StWC6/qsI+1pL3Vr7EVJl9K+xDYx29ZukfRxjX9/7PwxAAAApMH8ywmvFUiefls/xeqjnFJXH3m6lnIpvc99W9eoeEqn9DVRUszw6DpJbzGzl5jZSyS9WdL1ZnaTmd0U8XUAAAAwM/r5Vy3ta555+mFnigGSp+M/FZ7a+GoJclK9Nzydi5JOdutf+y1m29q/jbgtAAAAbDeJ+Rfta0A7qVu2UrUr0QaF1NcA19hw0cKjEMJLzeyjJD1EUpD0qhDCX8faPgAAAM6a0vyLAGkYTz84nWhXOzou9vqH2tN+6vVJzr2mn+OPbkqfu5y3jO+i9HHxbtvxOTy4RvuXr2Qc0XAx77b2zyW9UtLXSHqMpFeY2bfF2j4AAADOmtr8q5YWNtY/2q50+9qY1br2UeztemqXKtG6Vku7XBfbrhFP53yMYratfb+kB4cQbpUkM7ubpD+R9PMRXwMAAACnJjf/ogJpGKoFZqg+As4r8b7w4Ej72lvx3vRa9VVKzAWzb5V0W+Pft80fAwAAQBqTnH/VUoGEzUpXH4357mtUH8XldVy1oCJoHGJWHt0i6U/N7Pma9dx/taTXm9m/lqQQwk9EfC0AAABMeP5VQwUS1UfblV7/KDdPx34KUi8g3sW66pY2qIDBSgeSLjf+Tixm5dHbJf2WZhMXSXq+pL/Q7Bay10V8HQAAAMww/3KO9Y98K1F9lOvY11p9hHhSr3sU+xrgmpqLUZR5EGEbS2Lebe2HYm0LAAAA2019/lVD9ZFEBdI2U6s+wmaxr8tY1Ude3i/oL9Y5XLWdI+1pb+TrRUULj8zsD3X6W6+rQggPi/UaAAAAOMX8iwBpLEoGSGNePDt12xaBSjc1tK6lej8Q4m0WDiTL0Ho2RMw1j76v8fEFSY+WdHvE7QMAAOAs5l+qJ0DyaKw/iHU11btMecV1Gc+QwKpGnta5imLVeka7UomsPWbb2s1LD/2xmb0y1vYBAABwFvOvUzUESF6rj7z8oD619rWxVB/VgKqXdDgm0xFtwWwzu2vjz93N7Esl3TnW9gEAAHAW86+zDi/5X2yVBbQ3O4myUmw/JRbPHoNU146XazK21ItY167UeV93Xo4jLjx/spv4+9uFtJuP2bZ2s2Y996ZZufRfSPr2iNsHAADAWcy/llCBhCFyt69RfZTPGKqPal/3aGrGVpUVs23tvrG2BQAAgO2Yf61GgNSPlx90pta+NgZerh2s5mXdI0LMug1uWzOzzzKzj2r8+5vN7Plm9lNmdteh2wcAAMBZzL+2o4WtHy+tQlNqX8t1zE8itt/k4uV6jI3WtWGGXBeerqnDg2irCGURY7Q/J83iQzN7qKQflfQcSX8n6RkRtg8AAICzss+/whVLsdmkagiQPPL0w9VUjOGY17APsQK0kvsacw2eWLyd+xqD0hrECI/uFEL4wPzjr5X0jBDCfwsh/BtJnxhh+wAAADiryPzr+IgJeWweq4+8mFL1US41/lDtLZiYirG+B2Kp8rq8uOKxg/ZfHiU8MrPF2klfLOnFjc/FXJAbAAAAM8XmX7UFSDVUH3kMkLz8YDSlAMnLMR+ihn2oMUCLoaZWuRquo1WOUn/PWBX+ZBQjPPpVSS81s+dLOpL0R5JkZp+oWek0AAAA4io6/yJAio8Aab2SAdIY1RieeLkWm4aOaUiY47F1rS3P119NAVtnHSqM1hn8m6kQwr83sz+Q9NGSfjeEEOafukbSE4ZuHwAAAGd5mH8dH+1od6+eu+ZwB7Z+pn4Xrdy3LB/D8R7DPqC73Oc95+sda0e73CUuTllzCOEVKx57a4xtAwAA4DwP8y8CJORyol3t6LjIa48xQJr6LdOnuv9H2tdeh2sr97UP3+q6NxwAAABcoYUtLtrX1qN9La6U7UMprhkv12FTydY1bLbp+vZ4LSW1u+bjjgiPAAAAMAgBUlwESP6wePb4eF57p42a1z1qg/fAABHWN1olanhkZh9vZv90/vGemV0Xc/sAAAA4y8v8iwApLgKk1ag+iovqI8TU9vzUHtx1sXxMTnbXfw8LzdDH4be6aOGRmf0LSc+T9HPzh+4t6bdibR8AAABneZt/ESDF5TFA8qBUgET1EVaprXWt6+vlvu7hV8zKo++R9HmSPixJIYS3SbpnxO0DAADgLHfzLwKkuLwFSFMPNMb4g/SUq49qr4AZe+vaNqW/H5V+/diu3/L5mOHRcQjh6pL1ZnatpLDh+QAAABjG5fyLAGncPPzANJX2NQ/HGttxnsbD5SLmidYw6ipmePRSM/s/JO2Z2ZdI+q+S/t+I2wcAAMBZbudfBEjxeKs+knz8sEz7WjxUH5XlMrBwwMP3ma6OKq1ObLNYYszw6ImS3ifpDZK+Q9ILJT0l4vYBAABwluv5V20BkmceA6QpG2P7GurUp3Ut5bpHnhbN3vQaXYOpVC2ChwdR72GW1LURt/UoSc8JIfw/EbcJAACA9dzPv46PdrS7d7L9iQ4cXtrX/sXD0sNY6+jKnvauOSo9jKsOta99lT1eJ9rVjo6LjiGHHMf6RDvaUZr3qodrJbUp7CMcOpB0Oc/Xxoy5vlLSW83sl8zskfOeewAAAKRTxfyrpgokz+1rkr8KJA9tJVNpX8NZtK5h0tp+22uxXtL1LddUihYehRC+VdInatZr/3WS3m5mz4y1fQAAAJxV0/yLACkeAqTzphAgsfYR1vHWupYT19Vcl0W1ey7AHbXBLoTwD5J+R9KvSbpZs1JqAAAAJFLT/IsAKR4CJMBf9RHvg5mY6x5xTP2IFh6Z2ZeZ2bMlvU3SoyU9U9JHxdo+AAAAzqpx/kWAhFSoPoqD6qNyaF3zgfOwWszKo2+W9FuSPjmE8LgQwgtDCLdH3D4AAADOqnL+RYAUB9VH5xEgTY+34+FtPFOXej2rNud7LNdEzDWPvi6E8FshhPHf7gAAAMCBmudfBEhxECAhhalWH9W8cPaU1z3qq9S1eLI7IOS+GG8cXQ0Oj8zsZfO/bzOzDzf+3GZmHx4+RAAAADSNZf5FgBQHAdJZVB/F4SFIaav0NYfzcp6TXK/VJ6Abk8HhUQjh8+d/XxdCuL7x57oQwvXDhwgAAICmMc2/CJDi8BYglVYqQEI7nsMeFs7Oa4yLZh8NCJJDzzuh5RBzwexfavMYAAAA4hjL/IsAKQ5PAZKHH/ZKBEhUHyEGz61ryKjPt7AL0UdxVcwFsz+t+Q8zu1bSZ0bcPgAAAM4azfyLACkOAqTyxhYgpRJ77DUfi5qMbd0jtBdjzaMnmdltkh7Y7LeX9DeSnj94hAAAADhjrPMvAqTxKf0DPe1rw02x+ojWtTi8HAPv1/DhQcyanobILXAx1jz6DyGE6yQ9banf/m4hhCdFGCMAAAAaxjz/IkAazlP1kVT+B0ja1/yi+mi9nK1rOI92vvNiRlyvNLM7L/5hZjeY2aMibh8AAABnjXL+RYA0nLcAaYrG1N7jvXIjhSlVH5UOSmIsmt33WNdyjqLrUZUUMzz6wRDC3y3+EUL4kKQfjLh9AAAAnDXa+RcB0nCeAqTSP6CNvX2t9PEdguqj+owpGI0hyzXn4C5sMcOjVdu6NuL2AQAAcNao518ESMMRIJ2ifW0Yqo/yo3XNnykf25jh0avN7CfM7BPmf35C0s0Rtw8AAICzRj//qilA8ooA6dTYA6Rajbn6yNNYNknVulbL/qc2huMQMzx6gqQTSc+V9GuS/l7S90TcPgAAAM6axPyrlgDJa/WRRIA0FVQfoVapry2u3eGilTWHEC5LeqKZHcw/BgAAQEJTmn8tAqTdvZPCI9ns8NK+9i8elh7GSkdX9rR3zVHpYRR3ol3t6Djrax5qT/sax7E/0Y52FP99eKh97SveeyfW9lLtb1tH2tdej/041o52E467xDW97ZzGvoaGONKe9jYcn5PdXe0c5/0+NFS0yiMz+1wze7Okt8z//elm9jOxtg8AAICzpjj/qqEKyXMFkhelq4/G3L5W+tjiPM6Jb+vOT+m70HkTs23tP0n6Ukm3SlII4c8kPTTi9gEAAHDWJOdfBEj90b52asx3YKu1fa30NbHOVFqeWPcIm8QMjxRCeOfSQ3fE3D4AAADOmur8iwCpPwKkclg8Oy9P19eQsVABg5UW+fdBnpeLGR6908w+V1Iws48ws+/TvIQaAAAASUx6/kWA1B8B0gzta/1RfeRf6tvKx76WazzGKYQYYVCCQClmePSdmt3d416S3i3pQRrh3T4AAAAcmfz8iwCpP08BUkm0r40bx6Ab71VOQ85nrHBqVSg3hetscHhkZj82//CLQgjfEEL4yBDCPUMI3xhCuHXo9gEAAHAW86+zCJD68xIglf7BK3eANJb2talVHw015da1XOe01mvn8GBNNOMo245RefTlZmaSnhRhWwAAANiO+dcSAqT+CJDKGEv7Wg1iHYMa26pqa11DCxfLvGyM8Oi/S/qgpAea2YfN7Lbm3xG2DwAAgLOYf61AgNQfAdK429dSovqomxr2q2SVU6mAbt15iXkskp/7xAtnxwiPnhJCuEHSC0II14cQrmv+HWH7AAAAOIv51xoESP0RII23fa3WxbNjGkP1Ue2ta1NzNLKqrBjh0cvnf0/2t1wAAACZMf/agAAJQxAg+VHjmD1K3brWVqzzyXVRxrURtrFjZl8v6XPN7GuWPxlC+I0IrwEAAIBT+edfV2LepDe946Md7e6dlB7GRoeX9rV/8bD0MM44urKnvWuOSg9Dh9rXvnwdm5QOtad9lT/uQ5xoRzty/p6LdF0N3dch4zjSvvacvTe8Xb+bjq+n6/Rkd1c7x8elh9FajPDoOyV9g6QbJH3l0ueCJMIjAACAuIrMv65c3tc1B75+aNmEAKkfAqRZ9dGO6vmhrq0aQ7kaxzwGHkMqT461o10nIVRrB5IurXjsA+2+fHB4FEJ4maSXmdmrQwjPGro9AAAAbFZy/kWAFB8B0npTCpByVW+kPKaeqjrW8RJG5R5HTWFHDdfRKsnP6YGky+k2v83g+mMz+wFJCiE8y8z+16XPPXXo9gEAAHBW6fnXlct1rTdxfLTjfh0kj2sgsYD2eNc/qo3HNW5YOLsfj+dywfPYBovwrSxG8/pjGx8/aelzj4iwfQAAAJxVfP5VW4Ak+V9ImwBpvVH/UFdAyuM5pTuvjV2XkCp38JnzHNYc1sUUIzyyNR+v+jcAAACGczH/unJ5v7oQiQCpOy8BUilUH3WXIkDyGPgM3c/c++Tlrms5bDq2NQScUR00Pr7YfzMxwqOw5uNV/wYAAMBwruZfBEhxESCtRvta7Nfwd53lVPv+j70aZnIBT0wX0mw2Rnj06Wb2YTO7TdID5x8v/v2ACNsHAADAWe7mXwRIcREgrTalACmH2trXPAY+tVUfdZWidc37Psd0tHRMNu374cFpPBMO1j6tmBh3W7tTjIEAAACgHa/zL+7EFhd3YVvNy92yUst197Upm8q11FTTXdeQ17boL0blEQAAACCJCqTYqEBarVTlAu1r3Uyl+qiUsbeubZPiWuiyzSmtISURHgEAACCy2hbSJkCq01QCpBxqC5C8GXvrWilTuHZayfAtp80VSHgEAACAJAiQ4vEWIHmoPiopZ4A0hruvxRYzbKk9uOlTfdS1YqbWdY9i3nGt7THoul8nu/WE0YRHAAAASKa2AMlziESAdF7tP/i3Rfuaf1QfoYgh2VPHu7K5CI/M7E5m9loz++3SYwEAAJiKXHOwmgIkyXcVEgHSeVNpX6s9QIqN6iNIEz53F1s+r81d21p+K3MRHkn6XklvKT0IAACAick2B2MdpHgIkM6bSoBUsyksnl2qwqrW1jVE1CYkWuj5bat4eGRm95b0FZKeWXosAAAAU1FqDkaAFAcB0nlTCJCoPkrHw357GENObfa3RCA3tfPQVvHwSNJPSvoBSVfWPcHMHm9mrzazV0uX840MAABgvLrNwT7wvmgvTIAUBwHSeQRIvlF9hNxSXx9tKriOKn7PNhUNj8zskZL+NoRw86bnhRCeEUK4MYRwY7d6LAAAACzrNQe76z2ijoEAKQ4CpPO8hQk1muri2R6unb5j8Na6VoNS1+Kg66xgHFK68ujzJH2Vmf2lpF+T9DAz++WyQwIAABg9F3MwAqQ4CJB8GFv1kYcgpa2axjoVOSvkcp3/sYVnXRUNj0IITwoh3DuEcB9Jj5X04hDCN5YcEwAAwNh5moPVtJA2AVJ7pQMk2td8G3v1UU0LZ5fmdd2jIYZcQ4cHpxFN6FNllLAyqXTlEQAAAFBVgOQ1RCJAOosAKcb2fV1Tm9Q01m1y7svUW9fQnpvwKITwkhDCI0uPAwAAYEo8zcFqCZAkv1VIBEhnjSlQKCXVMfRcTVJz9ZEnXqrjvH8fONlNFDhHrkJyEx4BAAAABEjDESCdVeIHxzFVH6UUO2DxHhJ0kXPh7NJKnrd11+CYrqWVegRLhEcAAABwhXWQhju8tO8qRCJASov2tfimVH3UtXWthG3HcorXaG6ERwAAAHCJAGk4AqRTYw+QUqulfY0QIb0aq5tiWbXvWcI3B99KCI8AAADgFgHScARIp8YcINXcvhZbrPNcuvooZ+taqgCE63LmaATHgfAIAAAArtXSxkaA1E7pAGnMam1fq6W9C+mkDnapSBuO8AgAAABVqCVA8hoiESDNjLn6SCJAWqD6KO11XqJ1raZ1j7aNxdNY2yI8AgAAQDVqCJAkv1VIBEgzYw+QgD6m2ro22TuudUR4BAAAgKoQIA3jKUAqacwBEtVHM56qj2p+fTh1cf53plya8AgAAADVYR2kYbwESKXXPyJAGrJ9H9dQLUqs61Rb6xrX1MzhQYSY5sLwTSwjPAIAAEC1CJD6I0CaGfMPrN7bhVah+qisLLedH6DE+lHLVoVm3o9bDIRHAAAAqBoBUn8ESDO5g4GxrH9US/vg4KrKAAAgAElEQVSaF2NcOLutXEFmrSHfye7q7wnhYMWDqx7LgPAIAAAA1aslQPIYIhEgzYw1QKJ9jeqjlLyEU0ONYtHsxKES4REAAABGgXWQ+iNAmiFA8sNr+9pQHtqutinZguXlPMWwvC9HFb4PmwiPAAAAMCoESP0QIJUxhgBpSu1rNYYbXqqDYl2DHq+LKSA8AgAAwHZXSg+gGwKkfgiQxn0HtpRqCFW8tK/VUH3UhZdwamHTMfJ0/DyNpQ3CIwAAALRzyUqPoJMa2tgIkNabWoCUA+1raIvWtc2KBGZDM+ZVX99hnSTCIwAAALRXWYAk+a9C8riQ9uGlfRch0pQCJNrX8hhD9VEfXqqDPAeYQ89JycAtB8IjAAAAdHPJqguRvAdIElVI6xAgxVdbgET10VkeF87OHU7lvCZqCEW3inAnNsIjAAAA9FNhgOQ9RCJAWo0AqS7eAySqjzApB2s+7ojwCAAAAP1RhRQdAdJqBEhxeW4fyqH2apLax7/N0P2rZdHsdQ4PBkQ1EaqMViE8AgAAwHAESFERIK1GgBQX7WvD1VZ91FWK1rUpBZfL18fRhn0/2fVddUh4BAAAgDgqq0Ly3sbmdSHt0qYUIOUw5QCp9vPZZ/xjal3zHrzV5votnyc8AgAAQFwVBUgSVUhdESDl2/8xrH80BWOvPpqSLuciVxAXErWhdUV4BAAAgPgqrELyjADpPAKkeKg+qleO6qNSrWue1j1q+/wux6rPOFK57sL25xAeAQAAIJ3KAiTPIRIB0nklA6ScCJDO81atQ/URirg44Gs7VjQRHgEAACAtqpCi8RgglQ6RSgVILKA9Hl6qP3Iay9pHkw3dloOfdd8eVgVEy4FTyxCJ8AgAAAB5ECBFwULa5xEg+ee9+ijG+EpVH+W4DmttXUM8hEcAAADIp6IqJNrYuiFAGofa2teATfpcc5OtZtqC8AgAAAD5VRIgSf6rkDwhQEqv9va12MeK6qP+r5ty4ewaxDjfbY7h8uscDXl/FSw+JDwCAABAGZVVIXlFgHTW0ZW9IiESAVI5VIr4k3NNpVznP9Ud12pBeAQAAICyKgqQvIZI3tZBKh0gSWWqkAiQ2m63/PWxDtVHebHu0Vknu6fv68ODHnFNxzuodUF4BAAAgPKoQoqCAOksAiS/aF+rU41VNWM9F1tdiLs5wiMAAAD4QYA0GAHSWQRIw9C+VobnO6+1VbqqaYic15Knc7YJ4REAAAB8qaQKyXsbmxeHl/aLh0gESMPQvlZuGzmUDnlitK6NIWzLqse3DMIjAAAA+FRBgCT5rUJiHaSzxh4gpVZLgET1UXo1tq7Fsup6zRG+hYRrGbVFeAQAAAC/qEIajADp1JgDJBbQPhUrdKm1+sjTwtmlq5q8GEOQTHgEAAAA/yoIkCTfVUheECClU/MC2l6V/qF/KtVHqdfWyn0etx2fo4rWElsgPAIAAEAdKqpC8ogA6RQBUn9Tqz6KoZbqI+9yr3vk6RrygPAIAAAAdakkQPIYInlaB4kAKR0CpBlP7WtD5AoxaF2r1MU8L0N4BAAAgPpQhTSIpwCpZIhEgNRfLQGSF2OsPqqtda0WJ7st37ubFtFOsMA24REAAADqVUmA5DFE8hIgSWWrkAiQ+qvhh31P1UdDtkH10cyQ1rVY77sUd1yrITQlPAIAAEDdqELqjTa2GQIkX2hfi6e26iOcdXiwIrIp9JYmPAIAAMA4ECD1RoBEgNQX7WvdTLn6qI1S1Ww5Fs1Ofk0nDpUIjwAAADAeFVQh0ca2GQFSfWoIkKg+Ki9X65oXY6vKIjwCAADAdldKD6CjSkIkb7y0sREgxcf6R34CpBqqj7rwFpLkWPcohqMK3jNNhEcAAABo52j+pyYVBEheQ6TSSt6JjQCpnxQBkqcf9mvW9ThOsXWtixLXZRh6B7VVX3+h/ZcTHgEAAKCbGgOkCkIkbzwESFK5KqSjK3vZQ6QxBEgpjLF9bWzVR22VDKW2GXpOPe/byuCoI8IjAAAAdEcVUnQeq5CmHiBJ+auQag+QprT+0VC5q1dSVh/lbl3Leey8XC+lER4BAACgv9pCJKqQOmMdJAKkrmpoO4oRCJRsqRt7oDH0Gqpl3aMklquMmv8e8LYnPAIAAMBwNQVIUhUBkscQqTQCpLhqC5A8/tBfsn0tx+ulqD5y3d4V2fIx2XT8m5872fXXXkp4BAAAgDioQoqOAOm8KS2kTYC0apvja1/rq/bxD5Xi/dFlmx7DzCGu2/J5wiMAAADERYgUlccAyUuIVAIBUjdTCJCoPkojZetaKl2P1VGLfTw8SB/bXN9iQW3CIwAAAKRRY4jkFG1sqxEgxVNbgORNqSoUb9VHtbSudT1f3o7zVUPuotbxawmPAAAAkFZNIRJVSJ0QIOVTe4AUm7fqo6HG1gKVy2SP2/Jb9eKa511Y8dimBbU3IDwCAABAHrUESJL7AMlTiOShja3UOkgESO3Rvpbu6/uMvZaFs6dQtVYLwiMAAADkQxVSNJ4CJGm6VUhHV/ayhkg1V1p4D5Bi8DaeqUsdrLV5btswzTvCIwAAAORHiBQFVUjnTaGNLXVAMdX1j2puX6u1+qikUuseDXn/hiFrHA1EeAQAAIByaguRnPIUIEnlq5AIkIarKUAaW/taXx7Cr65itK55q/Yashh4c19Odnu8BxMuW0Z4BAAAgPJqCpCchkgeq5BKmsI6SARIze2NJ0DKGYakrD7yosZQzSPCIwAAAPhQWxWS4xDJi6m2sREgteM5QCotZ/taKjW3ruW8lo5StXJuanFbd3e2DQiPAAAA4EttIZJDVCGdRYA0TMoAKbZYx6J09VFOpauPam9dy/Hahwflo5vyIwAAAABWqSVEogqpFQKktGoNkMa+gHaJ9jWqj9Lpe2zHcBwIjwAAAOAbIdIgnqqQSrexlVgH6ejKXrYQiQBpsT1f6x/VoIbqoyFyn8dt+1NLVVoT4REAAADqUFOI5JCXAEmiCiklAqTF9vxc71OvPoolVeuah3WPakB4BAAAgLrUEiA5DJGoQjpFgNTf1AKkWtvXvLzOGFq2XFq8DTctjB0R4REAAADqU1MVEiHSRgRIaRAgLbbnJ0DKLfWYp9q6tmo7Md9vUbaVIFAiPAIAAEC9agqRHCJAKrcOUg4ESL7U0L7mvfrI813Xhjhas18nu+ffYyFTpdEywiMAAADUr4YQiSqkjabWxkaAtFnMAMlT9VEN4UaXMdZWfbROjnWPkrfvXUy7ecIjAAAAjAchUm8eAiSpfBVSTrnuxFZrgBSTpwCpr9oXz85VfeRFqSAsFcIjAAAAbHel9AA6IkTqhSqk8baxHWo/aYiUIkAa6/pHY1s821tIsmnsXoI0qUAV2sB2N8IjAAAAtHN5/qcmtYRIzngIkKTpVSHlQIDk49rOPQ5Pock23sKoVVIvmr3K4UGC+KZDoER4BAAAgG4IkeKjCmmt0lVIOREgreYxQKqxfS3l67QNfDy3ruVY96iYCItsEx4BAACgn1pDJM+chkgeTKWNjQBpNY/r3NTWvjal6qNaWteyuND4eECIRHgEAACAYWoLkbxXIUnuQiRPVUil5A6Qal9I23uANIb1j/roOl7P1Uc1WD4mm/b9qHF9D7ouEq1fT3gEAACAOC6rriCplhDJEQ8hEm1scREg1av28Q+Vs3VtlVwVTCe7ee5muG3PCY8AAAAQHyFSPM6qkCQfrWy0scVDgDTM2NvXSlUfeWpda3sMup4PNwFgi7cp4REAAADSIUSKx1mIRBUSAVJbBEh5xoDpCIu1i7a9tTatcbTb4jkNhEcAAABIjxApHkKkcwiQ4iBAGqZUgDTl6iOPC6kX0WUh7J5vRcIjAAAA5EOIFI+jAEkq38pWqgopZxtbjoW0pxwgxTC5O3k51+d6jr3u0dD2Oy8IjwAAAJAfIVIcVCGdQxXScIfaTxYieQ6QPLSOTa36KIa+5z/l/m8y5G5zhwflIhzCIwAAAJRDiBSHwxCppJJVSLnU3MY29gBpzO1rseVYODu3IdfQUeM67rWdi71feivCIwAAAJR3WfUESYRIrUy1Cil3G1tqBEj9lA5lUvFafbRJ6ta1oZK9Vpd1kFogPAIAAIAvhEjDESJdNfYqpJrXQUoRIMVSOkCi+uisVAtnl973YnoES4RHAAAA8IkQaTgnAZLko5UttzG1sdUSII3pDmw5A6RU2/dSfRTLqn3PsWj2yW75oJXwCAAAAL4RIg1DFdJVJaqQxtTGRoCUX67XL7V49MKQRaTbyH0et71e6v1NgfAIAAAAdSBEGoYQ6aoxVyGlbmNLdSe2MQdIJVqjPLWvxao+yt26Vjo49IbwCAAAAHWpZXFtQqStSgdIVCH1N7UAaaipt6+1UWM1TgpHLa/bsFi3aNXbJkGXG+ERAAAA6kWI1J+TEIkqpHRqDZBihkhjuQOb1/a1tjxUH8U6hn3XPeq6zU2Pl0B4BAAAgPoRIvVHiFSsCimHGgMkKW4V0lgCpD5St6+NpfooR+tarADt8GBNjNPjDmpdFA2PzOxjzewPzezNZvYmM/vekuMBAACYglHPwQiR+iNEyh4i5Wpjy7EOUgpjDZByv7aX6pVc1UdeeDnusZSuPLpd0v8WQvhUSZ8j6XvM7FMLjwkAAGDsus/B7pB0KcPIYqlhXSTPIZIDU2plG0MVEgFSe2NrX/NWfVSqda2rrvt5sjvwvbCqMqlDtVLR8CiE8N4QwmvmH98m6S2S7lVyTAAAAGM3aA52SXWFSBIhUh9UIY26CimVGu7ENtUAycvi2Z6rhoa2FJa4q15rF4ZvonTl0VVmdh9JD5b0p2VHAgAAMB2952CXVF+QRIjUHSHSKKuQamxjI0Aa/tpdv8ZzGJJz4ezq288O1nzckYvwyMwuSvpvkv5VCOHDKz7/eDN7tZm92vf/+AAAAPXoNAf78PvWb4gQKa4j+QuSHIVIJVCF1B0BUjveF9BO0b7Wpvqo1MLZsS0fk0373nzu0ZDr82L/L92keHhkZh+h2aTlV0IIv7HqOSGEZ4QQbgwh3Jh8CXEAAIAJ6DwHu/4e2zdaWzUS6yJ15yBEogopLgKkGNspEyBVXxEzUIoWuJJrPZV+neu2tLaVvtuaSXqWpLeEEH6i5FgAAACmIsscrNYgyStCpHNKhUhjrEJK2cZGgJSWt/Y1T9VHJVrXugaBQ/cxDKmtaVYotdhO6cqjz5P0TZIeZmavm//58sJjAgAAGLu8czBCpHgIkc6ZUoiUWsoAKXa4MrYAifWP+vG8AHdKhwdLUc66t0ObO6y1XEz72nZPSyOE8DJJ5ZunAQAAJqTYHKwZICVakyGaZoDkcdWERYCUruOom0WAdDEUG8IiQLrm4DDr6x4f7Wh37yTLay0CpP2L6fbx6Mqe9q5Jk1Aeal/7ijf2RYC0o+PB2zrUnvYLJ7Mn2tGO8lxLKbU9z0fa196W5x1rR7sDjkmf8xr7PMS+7kspXXkEAACAKaIaKQ4qkc6hCmm4qbaxxahAqmn9Iw/tazH0rT6K0brWZz+HVEud7MaruOuK8AgAAADl1LQ2EiFSe4VDpCm0suVaCykFAqTNxhIgtTHGO6/FakHsdce1hJWyhEcAAADwoZYgyfNd2o7kK0iacIiUS80Bktd1kAiQ4oi5ePawcXRfODvnGk/JwrFNb4cebxXCIwAAAPhTQ4gk+Q2RJEKkhhIh0piqkGpqYyNASt8yVmLx7G0BS66Fs2O1rsV43dwIjwAAAOAX1UjDESJdNYUQKaUpBkhDQyQPP/S3kap9rYbqoxSWj8/ycajxLnGERwAAAKhDDSGSRIjUhoMQKTeqkDbzGiBJw4OHIfs2pfa1bVJVH3loXasB4REAAADqQjXSMIRIkqhCGipVgBQzwDjRrps2tloCpC5KLJ49RKzqo9Sta223dXgwi3PCqkWyL0YbzlWERwAAAKhXbUGSJ54W1yZESiJHFVIKXquQphAglW5f28bL2kexrduvVXdcO9mNV1XXBeERAAAAxqGGIMljiCQRIqlciJQDbWwESCmfH1Op8CdF69q2dY+iS5wpER4BAABguyAf4UJbtYRI3oIkQqTsIRJVSOulaGOLocYAqasuY6yp+ihl61pX2YOyCyse6/CWIDwCAABAe55andqgGqkfL+eYECm6qVchTTVA8rL+UZtxeKs+yvX1Sbe/al2kjgiPAAAA0A9BUlweq5G8nGNCpKhqrUKKJdZC2mMPkDy3r+WsPqrurmvLQdHBhs91QHgEAACA4byEDG0RJHXn4fxOLERKLWWIlKIKyWMbGwHSKW/tax50WfeouT8lgrvrtwRLhEcAAACIq9YgyStCpPMmEiKNpZUtNgKkU2MOkIa2r/WpPuqycPaq53Y9tm32cdUd16JrUZFEeAQAAIB0agqSqEbqxsO5XYRIBYIkWtnaS1WFFEvtAVINr5dKDdVHKZzszq7Zw4NZpBPWhT+rLu2DNX9vQXgEAACAPDyEDW3VEiR54eG8FgiRxroeUiqe29hiBUhDQqS++5JjTZ4xVh+t02Vf2zy3ujWT1iA8AgAAQH4ESXF4rUYqaSIhUkqpq5Biixkgla5CyhkgjaV9rW/1UaqFs7ftU9t1j/psOyXCIwAAAJRFkBSHxxDJQ0tbRmNbDylViEQb27avnVaAlNrQ6qXU1o2v13XQvHQv9hvPOoRHAAAA8MND6NCW1yCJaqSzCJEGq6UKyWMbW/+vHUeAFGt7uauPYreuDRV90eyW6xw1ER4BAADApxqDJG88BUmlzych0iBTrEIiQBouZvvaELGqj/pWU3mpwhqC8AgAAAD+Hal8+NCG12okyU+IJPkIkTIGSYRI28UOkTytgzTGAKlE+5rn6qOuX1vj3e4IjwAAAFAfgqT+PFYjlUKI1FsNrWye2timHiDF2t6QCqKU1Ucxj0XbEOxkd3ZNHh6siHV6tKVtQ3gEAACAuhEk9eclSCp9DkceIqUyxSqkYePY6x0i9Q3CvARIudrXPFUfLdt0DLosmr1uTCFBYNREeAQAAIDt7ig9gJZKhxBteA+SSptgiJQ6SKq5lS2WWFVINbaxpV5vJ3aAtM2Q9rWcd14bW+sa4REAAADa8VKl0lYN6yR5DJK8nOeS526k6yLVGCKNuQqp/9emD5BS3YGtzThKhSpdzknq1rVVBt1x7UCrW9kutt8E4REAAAC6uyw/IUNbBEndeTnHE6xGSqnG9ZC8ViENG8e4AqSYtr12zuqjEsehb/udJJ27LJv/vtB/s4RHAAAAGK62MIkgqTsP59dDNVImtYdIU6lCIkDq/txc7Wt9DK0+Or+9s2OMte5RElsuZcIjAAAAxOchaGjLe3ub5yCppNIhUqYgiRDpvJghUowqpKHrIA1dSLurWgKklItnp6o+StXut+7rFndcW2tTW9riS9e1tC0hPAIAAEBaVCXF4y1I8nBeJ1KNRIh0HlVIi6+bboBUuvrIi8ODDtFOz7uyER4BAAAgr5rCpFqCJA9hkodzWup8ESK1RhXStjEQIHW1KUBKXX3UZuHsGK1rp58vF2wRHgEAAKAsD6FDG7S3tefhnJYMkTIESTWHSFQhbXv9aQVIqbfTZ/HpnNVH6/avz7hDs6qoZ4XROoRHAAAA8IOqpDgIkk6NvBppESKlDJJqCZE8ViH1f/1+6yD1GXfpu7CVbF9LVX0UW/RFs3sES4RHAAAA8KuWMMlzVRJB0qkRh0hS+mqkqYZIQ9TSxpYqQPKy/lGf9rWYd8Lr0rrmFeERAAAA6lFjmOQJQdJMifMzopa2mkKkGDxUIfX7uvEFSB6krj5qWw218Y5rw9ZuX4nwCAAAAPWqIUzyWpVEkDRTMkhKrOYQKZaxVCERILXbjqfqo/PbWj+2LuserVs0u9Md13ogPAIAAMB2V0oPoCXCpH483bltSkFSpmqk1OsipQiRvLaylaxCGrIOUhcn2ukUIsUOkIZup2+AFNu2cWavtBq4gDbhEQAAANrxFDC0VVuY5IWX8+whSMplBNVIUwuRhsjdxpb6TmwxA6QY6x/10aX6qMTC2YP2ed3l1iFQIjwCAABAP8thUumgoQ3vYZL3qqSSSp23kVcjpVBLiDTU0Cqk3G1sqe/EljtA2sRr9VHb1rW+d4+TpLAcCF1sfLwpLNoSJBEeAQAAIB7CpLg8B0klz+/UgqSEphwi1V6FlLONLfa2YwRIKdrXclcftXn+prBr0LXXDIsubH864REAAADSqa06yXOYRFXSalMIkjJUI6VcF2kKIVKNVUhd1Bog9TGk6ieX5UWzV95xTVpdTbQcFLW87AiPAAAAkBdhUhzewiQP53RKQVJCqUOkmEHSGEOkfq9LgLRKzPa1vtVHMVvXUoRlbREeAQAAoKyaqpMIk9rxcD5LB0mpZaxGSmEKIVJffauQ+rSxdQ27vN6FLXaAlLP6KOZC24cHjYhn0yXU485rhEcAAADwx0P40AZhUjulz2WJczSitraaWtpih0iDxjLSKqQSAVLKBbS7aFt91Oc5m+Rc5HsdwiMAAAD4V0t1Ui1hUkmlz+NUgqREphYilW5ly12F1NaJdloHOrkCpL7HOEX1UY61mhbrHq3a1rk7rkVAeAQAAIA61RAoLYdJXgIlqpJmSpybXMe90mqksYdIfeWqQkq1DlKstXpyr3+0et2h+NVHzf3qu+7R2kWzIyE8AgAAwHZXVD5kaMN7mCQRJm1S+vwRJPWSMkSKFSR5CZFKVSF1e36adZBitXelCpC6aHNMY1cfDW5dW3XpdLicCI8AAADQ3nLI4D1QqrE6yQMv57jkuSNI6qyGaqSxhEjdXy99G1usbZYKkIa2r5W8E9pGB5IuNj7uifAIAAAAwxAoxeWx1c3L+fUQJOU4H7mDpAQIkVqOo2eIlLMKqS1vAVIfXap7+lQfxWpd2ziugx4xz4G2BkuERwAAAIiPQCkuwqTzplKVlOM4V1aNFLOlzVOI1EefEKlrFVKXgKvtQto5AqSY7Wupqo/6nvfF121aNFvS6ra0g6W/L654zgqERwAAAMhjVaDkOVTyHCh5q07ycE5LnSuCpNY8VyMtQqShQdKQEKlEK1u358etQmqzv22eEztAir14dt/qoy5jy4HwCAAAAGURKMVBmHRWifOU8xzkOMaJgqSU1Ugx1Boi5apCaj+efG1suQKkFNaNr9c10LjjWtjUhnah86YJjwAAAOBQTVVKXgMlT9VJHs4lVUnDVBIkeWtpqylEav/cbm1sbbc59Dl9A6R1VgVIOaqPVol1l7ghCI8AAABQDw8hRBu1BEollTyPU6pKSiFxkBQLIZKPKqSc6yD1CZBirH/UtQXw/NefbnPdwtnrvuZoVXjVZ9HsLa6NvkUAAAAgp3U/IA+by8e3KqRouVBpMqtCjAG3ch5k+TzmPH/L5ybHeWke+5THvHlcUxzTZoB0MUTZZDNAuubgcPD2mgHS7t5J7+0sAqT9i/3HtAiQ9q7pnuwtwoJ9tX/9RYC0o+MOr7On/ZbJY5cxnWhHO9p8/A+1v3Vb256z6XXWfe2R9rW34vFj7Wh3y5jbjnN5XG32dZV1Y+q7vbYIjwAAALDdFa2vligVNmxTQ6hEoLTelMKk5WOe6ngTJF0NkmKESFL/IGloiNQ1JOgaIi0qabqESFMKkFY9t0vo1se68W21XIC2HFx/oN1mCI8AAAAwDKFSXARKq606b7nO2RjDpNThnPMgyUs1Ut8QqU8VkpQ2RGo7pkVb1qYQqc22hgRI68QOkLpUHzU/bj6va1h4srurneP2lWaSZt9jtnyfYc0jAAAApLFqwebS6+xs4nmR7lVrKJVeR8nDuS11rnKfhxzHOOVxTLBGUopFtocYui5S3zWRcq6H1P658RbT3ratvmsg9bkDW199zs82i8W8N617JK2549rBmr+3oPIIAAAAeW36AdhjtVLJipdtvFUpla5QKnWuclYm1V6VFLkiyVs10tCWtpyVSKmrkHK1sfWtQOpa0ROrfa1P9dGm1zv72o1tHVyj/ctXWuxZO4RHAAAA8KOWYMlz69u6SphSoZK3QIkwqbtUayVVECSVamnzHiKVaGPLGSDlbl/bJvpi2AeS/r7blxAeAQAAoA41rK206eep0sGSpyqlkoFSieqknMc+dZiUKoxzGiSVrkZqtrJ1CZJSh0ip1kIasg7Sts/nDpC66FJ9tDyOVePvte7RFoRHAAAA2O6O0gPYgGql/jxVKU09UBpDmJQiSJIGh0keg6Rc1UjeQqShAVKb7Wz6fMoA6fw201QfrRvTkfa0t+k8HOj89x3utgYAAIDoti0MXPqOYKvUECwRKq03pUBpDGFSBVVJXoKkGNVINYZIbcaRuo0tVoDU5nnbAqR1rz+kTW35a8OBZJJ0rNn3lXWn88Lm7RIeAQAAII7awiXvwRKh0mqeAqWcYZKU5jjnCpMmECTlrkYaEiJJ7YOkE+0mWQ8pRxtbygApRvtam+qjTQtnb2pdk9Ysmr2r2fv+wvzv3fmfLQiPAAAAkMemcIlgqT2P6yqVXk+p1HpYY6xOShUmpQjeIra3xQiSSlUj5VgXqdYqJA8BUszqo22h29bWtQEIjwAAAFBeTVVLBEvteAgLS1Qp5QyUcoR2tYZJIwmSvLW0lQyRhgRI67afKkA6v731AVLf6qNtNi6afaDN/5etQHgEAAAA/2oJl7ZNxkuGS57a4Eq2v5WoUioZKE01TIpUldQMkqR+YdKQIClnNZKHEGlIFVLfNrYUAdKQ9rW21UfLrWttxj4E4REAAAC2uyLptsa/rys1kDW2hUuSj4DJY9VSDdVKYwyVcoV5qauTUlV3pQyTClYllQySUoZI0vYgqU2IlKMKaV2AJJ0PpmIGSF3a11YZst9XF80eEP4SHgEAAKC727Y/pbqAqXS45LFqyUuw5C1Uqr1KKXeg5C1MSlCVVCpISlmN1HVx7bbVSDFCpGAbZWUAABn0SURBVCFVSF3b2NY9P3aA1KX6aNMYltc9OrNo9oFO3/8Hkv5+/vFFbX2fEh4BAAAgjTYBk+QnZPJeveQtXPIQLJVaV8lDlVJNgdIEwqSh7W19gyTP1UheQqSUbWwxAqQ2r738+eWxrFt3aeW6RxelM6fmQNIH1r7kVYRHAAAAKKumKibP1UuewiXPwdJYQqUcbW+pAqUU1VypwqQCVUk5g6S+1UglQqS+rWzbqpBSBEjLNgVI68bQtvqo19fsigWzAQAAMEK1VDF5rl7yEi5t+/k0dbhUolqpdKg0xUApVphUuCqpGSRJ7cOk1EFSl5a2WCFSqiqkddvtsg7Scji0qhJoU8jUpn2tOa5m9dGqhbOXW9diIDwCAADAdlekjfP+3Q2fy6mGkMlrwFRDuDS2YCnXAuqpq5RyBUoxwySp3/5HDpNyVCUNCZJiViN5CJFiVSH1DZDObqNb+1qf6iNp1romHWtfV84vmn1h6+auIjwCAADAcNvv1nzKQ9DkPWTyGDB5CJdKVi15CZZqCZVStA16rE4aGCbFqkpKFSSlqEZqe4e21CFS1yqkGAHS0Pa15fEsVx+12s/FotkHmr2nDhp/NiA8AgAAQF41BU2eQ6Y2AZOUL2Rqs35G6oCpVLiUM1jKUa2UO1TyEijFqE4qFCb1aW/zFCSlDpFiVCGtCqNWbWNVgCSp0VLWLkBa1b62rfqodeva8qLZLRAeAQAAwK+Ok9tiYVPbkEnKHzR5CplKB0wlwiUPwZL3UCl2lVLKQGlomCR1CpRihEldgyRpe5jUJ0gaWo00JETq08o2pApp213Y+gRIy6+1qfqobYtbF4RHAAAA2O6KfLZSLashbPIaNHkJmUoGTLnDpVx370tdrZQzVCodKBWuTuqzXlLqqqS2QVKsaqSUIVLXtrFNzzuaj2NdG1vXFra2gdByq9yh9uf/183XPWoe1gNJt84/3vL/IeERAAAA4mkbQDSVDJy8h00egyYPIVOpgKnNzYtS39msKdVdzhaGHsMUi5/HrFKKVak1NFDqGSYtVyVJ7QKlIVVJOYOkbdVIh42DvCpI6hMidalCGtLG1iVA2tS+tm3to5Wta7uaXfuLvw/U6v82wiMAAACU1SdwksqETl3DJilf4NQlaJLSh02lQ6Y2AZMUP2TKGTClDpdSLpIeu1opdaiUM1Aa0OrWtc2ta1VSl/a2FEFSn2qk2CFSjDa2tgFSm9dY9bnFOktrK5UWi2Z3QHgEAACA7e7Q+nDC8x3J1skZPHkNnLyETV3OY867mi3LcZezppR3PFtIGS7FXLR6odfd0NY83nXfY1QpFQiUcoZJOYKkIdVIm7bdJUTqUoU0NEBatf7Rtva6VdVHkq62rh1cvnL6Rc22tS3vCcIjAAAADNM1hFjF6yLSy3KFTh4DJw9hU8mgKXfIlCNgShkupahaihksxVrIfGiolDlQShkmta1KagZJ0vowKVaQ1KUaKXaItPyc5XWQlgOk5ufaBEjr2teaY1zex3Cg2bpHizuuXdDsev3AucN0BuERAAAAyhsaQHlb72edlOFTn8BJShc69TmnMc9j13OVY3HqppQLVTcNCZhSLpIfO1yKudh5jGBpSKg0pKWvY6DUdd2k1GFSiiCpTTVSihCpbRXSosVsVRVSlwCpaRFE7WrN+Vmsd9QB4REAAAC2C/JZDbMQo/pJ8rMO0Cqpgqe+oZMU//yWDJxyh01dfnBLsbbQsthrDTXFXMx6IWa4FCNY8hwqJQyUlsMkaX2g1CZMalOVlCJIWrfNRYg029bmhbGXHxtahbQpQGq+5qa2tmMtnZ9daf/yfL8X6x4dNP5sQHgEAACAdIYEE6t4a81ap3TL1jqxAygPwVOpwCln2NSxQiB6S9iymC1iTTHaxZqGtI41tar42fL5bfs2ZP2oPqFSxkApZZjUDH2kVRVE8YOkFCFS1wBpXWVT8/HltY+uPvfgGu3ryqx1rQPCIwAAAGx3h8rfPUuqJ4zyGkJ5CqBKBk9Dzk/fc9Ln2KdqCVsWu0WsKVa7WNPQKp+mIRU/C0PDpVTBUtdQaVWgJK0NldoGSm2rk2KHSX2CpDZtbauqkfqGSKuqkJptbM3H1wVIq9Y/ar7ucvXRmX2/qNlaRwfa+n2V8AgAAABxxQgo1vFUObNJyaqaTUpU3Kwz5FzGOG99z1HO4CnXwu4pw6YUQVPMkClGwDR07akhVUt9gqWEoVLMQGk5TJLOB0qbwqRNVUknS98AFoHK4dJBWIRJbauRVj1vU4jUtQqpbYDUfN3l6qOT3V1dvevaZZ2949oGhEcAAADY7orKVGssSxlMLcQIqFKFUtKwYCp2GCXlrcRZp885KxFA5XoPpQ6duoZNUpwKn2Vb1/rpsK2+AU1TnyqgprXhzZavWzf2rsFS13WhWoZKqwIl6XyoFCNQihEmNStzVrW2rQqI2lQjtQ2RNlUhLQKkdRYB0vJ2l+3o+PSua5d0ese1DQiPAAAAkF6K0GIbD6HGNqVCj01yBiKb5AhL1ml7XmKdizbHPMZx3nZMUy7o3idwkoYHMsv6BjRNfcKaZV3Dm4WVIU6Lr1sec9cFybu07q0LlaQzwVKbUGlVoCSdDZU2BUrLYZJ0GiitC5PaVCV1CZKWn7P877YhUps2tuXXaK6LdKyd0zHu7s4Wzu7w/Z7wCAAAANtdUfrQoo0uwUaJwGqhbfCRM6iS2oUiuc7ztnOZ8vylDFHW2XTsc63llXItrlTrafUNnaT+Ac2y5fwhxvpVfYOmvm2AXQOmru18bauWWgRL60Il6TRY2hYq9QmUVlXpzEKZ82HSqva2VWFU2yCpTYh0dR+XqpC2BUhX93HpsZ2DeevaRXG3NQAAAERyRT4qcjwEWE2pf0gfItUP+H2sOp85z+Xyecp1fprnIOdaYCmObfMYxjx+sY9R1wBkk8UP030Cp4VFxjAkcOq7JlXXoKnrWlJtA6a2FVWbgiVJuhi2BkubQqVVgZI0C5XaBkp9w6RtQVIJ+7uH2j84mrWuER4BAAAgijuUNxC5TWludx/bJaW9u9wQx0p3N7muSp9Pz+cphtLHd4jY12nNx6IWR+p2F71oNodLVzaEMb3y1BXfM460t/IOb8t3dlu2qBDyZE9Hp9VHu5qte7RB8fDIzB4h6emS7iTpmSGEHy08JAAAgNHrNQe7PfWolnyw4/NLzWy7hGq5f6iNfevzIdr89JYy7Np2nlKcmyF30epq0/GNcVw3Hb+hx27VcYp9N74+x2DVPg+9Y16X/Vqu7Gl7l7vljKJN0NMcZ9e71LVdl6rtHee2rSm19i5ytvZ1rlyaf9GKO8QdzauZ1i3gfW7Rbu2fv+vbUqi0KlA60e6Z9ZOaYVLz+Ys7qK3fztk7rC1a2Jp3Z2sTVh1p77T6aNG6tkHR8MjM7iTpP0v6EknvkvQqM7sphPDmkuMCAAAYs35zsDskfTjL+KTr+31Z7nCrj66BWF9dZ/kl1xdqStXaVWKtp1yLYEvp13DadvyGHLvYrZ/rjkXXYxCjdXbVvg0Jm/uGwSkXx5Y2j6ttG+G29ZO2rd+07XWutvKtqF6ab/tqwHR1m7Og6ajRKrdqzaWr6yw129QuHuqoMejlRbqX29+arW/Nlrdmu1vzseYaR8tBUnNx7UWIdKKdM19zpmXurrfqLpePtl5fpSuPHiLplhDCOyTJzH5N0ldLIjwCAABIp8cc7FjS3+QYW8TXKdJX0VHPoGybwUFaxHHlCsw26TOG3D8pDaneubXDc/tU9Ly/5fNSVY51OTbbjkXb/d+2z0P3tc0+rduXbfuwbuxdx9zluK8b0/JY1lW3vG/p39u+fS+/3rbXaW5/3bbPbdPObevK+xr/mG/nqPmEReD0/hsknYZNH9Ts34ug6VbdTZLOVDAtAqYP6S5Xq40+pBuuVitJs2DpQ7pB+zqcf+5k/vjh1cebIdOxdvQh3aBdnWhPh9rXkW7Qh65uf7EY984936MDXVlzYGZKh0f3kvTOxr/fJemzC40FAABgKnrMwQ4lvTTdiDaqZQGTREFQFF6CNA/HqOX1FLWSrcXxjxKytTi+g1/HwzlsIdZPujG+/QxpwesbUvUZd5dxdhlXm7G0ee1tr7ntdda9xrpAq23IdGYbjcqmPenKmWBpKWg6kI50l/Ov1Wita7bSLYKnReDUbJPb1+HVkGnRrjZ77ET7Ojzz8Z4OtasT3U236gZ9SB/SDfrg7g36mI99rzalr6XDo1bM7PGSHj//5yXpKX9ecjyF3F3tM/8xYv9r3v/zrcXtzb739dv/PmvS+TzKdZ//4arc/1W/u1muBm5ZfV7l/g/08aUHgJnzc7B/MbU52BTff03sP/tf7/4PD/9m+x8j1PNQfddP3dfAcMX3vzmfPFr6O5G1c7DS4dG7JX1s49/3nj92RgjhGZKekWtQHpnZq0MIN5YeRynsP/vP/rP/pcdRytT3H8kwB2th6u8/9p/9Z/+nu/8Sx2Dq+7/smsKv/ypJ9zez+5rZjqTHSrqp8JgAAADGjjkYAABorWjlUQjhdjP7l5JepNltYn8+hPCmkmMCAAAYO+ZgAACgi9JtawohvFDSC0uPowKTLRmfY/+njf2fNvYfSIA5WCtTf/+x/9PG/mPqx2Dq+3+GhTBkJVsAAAAAAACMWek1jwAAAAAAAOAY4VEBZvYIM/tzM7vFzJ644vO7Zvbc+ef/1MzuM3/8S8zsZjN7w/zvhzW+5iXzbb5u/uee+faomwH7fx8zO2rs4882vuYz58flFjP7KTOzfHvUzYD9/4bGvr/OzK6Y2YPmnxvT+X+omb3GzG43s8csfe5bzOxt8z/f0nh8TOd/5f6b2YPM7OVm9iYze72ZfW3jc882s79onP8H5dqfrgae/zsa+3hT4/H7zt8rt8zfOzs59qWPAef/i5be/39vZo+af66a8w+UNuD/YOZgzMGYgzEHYw7GHGzac7AQAn8y/tFsUcq3S7qfpB1JfybpU5ee892Sfnb+8WMlPXf+8YMlfcz8438s6d2Nr3mJpBtL71/i/b+PpDeu2e4rJX2OJJP0O5K+rPS+xt7/pec8QNLbR3r+7yPpgZKeI+kxjcfvKukd87/vMv/4LiM8/+v2/5Mk3X/+8cdIeq+kG+b/fnbzuV7/DNn/+ecurdnur0t67Pzjn5X0XaX3NcX+N55zV0kfkLRf0/nnD39K/xnyf7CYg91HzMEWz2EOxhyMOdjp48zBKjj/sf5QeZTfQyTdEkJ4RwjhRNKvSfrqped8taRfnH/8PElfbGYWQnhtCOE988ffJGnPzHazjDqe3vu/boNm9tGSrg8hvCLM3sXPkfSo+EOPItb+f938a2uzdf9DCH8ZQni9pCtLX/ulkn4vhPCBEMIHJf2epEeM7fyv2/8QwltDCG+bf/weSX8r6R55hh3NkPO/0vy98TDN3ivS7L0zuvO/5DGSfieEcJhuqMAoMQdjDsYcjDkYczDmYMzBeiI8yu9ekt7Z+Pe75o+tfE4I4XZJfyfpbkvPebSk14QQjhuP/cK8XO7fOC4ZHbr/9zWz15rZS83sCxrPf9eWbXoR6/x/raRfXXpsLOe/69eO7fxvZWYP0ey3Jm9vPPzv56XU/8nxDzRD9/+Cmb3azF6xKBfW7L3xofl7pc82c4py/jX7bfjy+7+G8w+UxhyMORhzsFPMwZiDMQfrbtJzMMKjCpnZp0n6MUnf0Xj4G0IID5D0BfM/31RibIm9V9LHhRAeLOlfS/ovZnZ94TFlZ2afLekwhPDGxsNTOP/Q1d/y/pKkbw0hLH4z8iRJnyLpszQrp/3fCw0vtY8PIdwo6esl/aSZfULpAeU2P/8PkPSixsNTOf9AcczBmIOJOdhkMQdjDqaJz8EIj/J7t6SPbfz73vPHVj7HzK6VdGdJt87/fW9Jvynpm0MIVxPvEMK753/fJum/aFaa51Hv/Q8hHIcQbpWkEMLNmiX+nzR//r23bNOLQed/7lziPbLz3/Vrx3b+15pP1F8g6ckhhFcsHg8hvDfMHEv6BY3z/Dev83dotsbEgzV7b9wwf6903mZmg/Z/7p9J+s0Qwj8sHqjo/AOlMQdjDsYc7BRzMOZgzMG6mfwcjPAov1dJuv98Zfodzf4TumnpOTdJWtzF4DGSXhxCCGZ2g2bftJ4YQvjjxZPN7Fozu/v844+Q9EhJb5RPQ/b/HmZ2J0kys/tJur+kd4QQ3ivpw2b2OfNS4W+W9PwcO9ND7/2XJDO7RrNvXFd77Ud4/td5kaSHm9ldzOwukh4u6UUjPP8rzZ//m5KeE0J43tLnPnr+t2nWaz668z8/77vzj+8u6fMkvXn+3vhDzd4r0uy9M7rz3/B1WvrBpaLzD5TGHIw5GHMw5mDMwZiDMQfrKzhYtXtqfyR9uaS3avZbmyfPH/thSV81//iCpP8q6RbN7mBwv/njT5F0WdLrGn/uKelA0s2SXq/ZIo5Pl3Sn0vuZYP8fPd+/10l6jaSvbGzzRs3erG+X9NOSrPR+xt7/+ee+UNIrlrY3tvP/WZr1IV/W7Dcab2p87bfNj8stmpUMj/H8r9x/Sd8o6R+W3v8Pmn/uxZLeMD8GvyzpYun9TLD/nzvfxz+b//3tjW3eb/5euWX+3tktvZ+x93/+ufto9luya5a2Wc355w9/Sv/p+3+wmIMxB2MOxhyMORhzsInPwWy+0wAAAAAAAMA5tK0BAAAAAABgLcIjAAAAAAAArEV4BAAAAAAAgLUIjwAAAAAAALAW4REAAAAAAADWIjwCKmBmTzazN5nZ683sdWb22fPH/9LM7l5wXE+bj+tpS48/zszeNx/r68zsOZFer/X+mtmzzewv5q//Z2b2xTHG0JeZ3WBm393j6/5PM/u+FGMCAADrMf+6ul3mXwB0bekBANjMzP6JpEdK+owQwvH8P++dCNu9NoRw+8DNPF7SXUMId6z43HNDCP9y4PaH+v4QwvPM7IskPUPS/QuO5QZJ3y3pZwqOAQAAtMD8axDmX8AIUXkE+PfRkt4fQjiWpBDC+0MI72l8/glm9hoze4OZfYokmdlDzOzlZvZaM/sTM/vk+eOPM7ObzOzFkv7AzA7M7OfN7JXz53718ovbzNPM7I3z1/ja+eM3Sboo6ebFY5uY2Rea2W83/v3TZva4+cd/aWY/tGI/7mZmvzv/7dozJdn88QMze8H8N1pvbPH6L5d0r/nX3mm+P6+a/ybxOxr7+dNm9udm9vtm9kIze0xjfHeff3yjmb2kMY5zx8/MPm3+2Ovmr3F/ST8q6RPmjz1t/rzvb4zjhxrH5slm9lYze5mkT952bAEAQHTMv5h/AWig8gjw73cl/Vsze6uk39fsN0ovbXz+/SGEz7BZSe73Sfrnkv4/SV8QQrjdzP6ppKdKevT8+Z8h6YEhhA+Y2VMlvTiE8G1mdoOkV5rZ74cQLje2/zWSHiTp0yXdXdKrzOx/hBC+yswuhRAetGbcX2tmnz//+OmS/mLLfq7ajx+U9LIQwg+b2VdI+vb5cx8h6T0hhK+QJDO785ZtP0LSb80//nZJfxdC+Cwz25X0x2b2u5IerNlE4VMlfaSkN0v6+S3bfbJWHD9J3ynp6SGEXzGzHUl3kvRESf94cbzM7OGa/SbuIZpNym4ys4dKuizpsZod82slvUbSzVvGAQAA4mL+xfyL+RfQQHgEOBdCuGRmnynpCyR9kaTnmtkTQwjPnj/lN+Z/36zZREOS7izpF+e/cQmSPqKxyd8LIXxg/vHDJX2VnfZ0X5D0cZLe0nj+50v61Xlp9N+Y2UslfZakm7YM/UzZtJl94Zbnr9qPhy4+DiG8wMw+OH/8DZL+o5n9mKTfDiH80ZptPm0+Qbu3pH8yf+zhkh64+K2WZsfq/vPXWuzne+a/Hdxm3fF7uaQnm9m9Jf1GCOFtZrbqax8u6bXzf1+cj+M6Sb8ZQjiUrv6GEQAAZMT8i/lXi3EAk0J4BFRg/h/qSyS9xMzeIOlbJD17/unj+d936PQ9/SOS/jCE8L+Y2X3mX7vQ/K2WSXp0COHPU4x7ye062yp7Yenzq/ZjpRDCW83sMyR9uaR/Z2Z/EEL44RVPXfTcP0Gz32J9pmb7/IQQwouaTzSzL2859ua41x2/t5jZn0r6CkkvnJdmv2PpOSbpP4QQfm5pHP9qwzgAAEAmzL/OYv4FTBtrHgHOmdknz3+DtfAgSX+15cvuLOnd848ft+F5L9KsZ3/Ry/7gFc/5I81KoO9kZvfQ7DdEr2wz9iV/JelTzWx3XmLc5u4b/0PS18/H9mWS7jL/+GMkHYYQflnS0zQrBd/kpyVdY2Zfqtk+f5eZfcR8W59kZgfz11rs50dr9lvGhb/UbOIjnZafS2uOn5ndT9I7Qgg/Jen5kh4o6TbNfqvV/NpvM7OL86+5l5ndcz6OR5nZnpldJ+krtx8mAAAQE/Mv5l/bDxMwLVQeAf5dlPR/zf/Dv13SLZrdZWOTH9esbPopkl6w4Xk/IuknJb3ezK7RrC/+kUvP+U3NSo7/TLMS7B8IIfx1150IIbzTzH5d0hvnr/PaLV8iST8k6VfN7E2S/kTS/5w//gDNSqKvSPoHSd+15bWDmf07ST8g6Usk3UfSa+aTjvdJepRm+/kwzXrt/6dmpc/NcTzLzH5EZ3+LuO74/TNJ32Rm/yDpryU9db7GwR+b2Rsl/U4I4fvN7B9Jevl87nNJ0jeGEF5jZs/V7Hj/raRXtThOAAAgLuZfzL8ANFgIofQYAMAdM3u2Zv38zys9FgAAgClg/gX4RdsaAAAAAAAA1qLyCAAAAAAAAGtReQQAAAAAAIC1CI8AAAAAAACwFuERAAAAAAAA1iI8AgAAAAAAwFqERwAAAAAAAFiL8AgAAAAAAABr/f8zdCDh49sHQgAAAABJRU5ErkJggg==\n",
|
||
"text/plain": [
|
||
"<Figure size 1440x1440 with 4 Axes>"
|
||
]
|
||
},
|
||
"metadata": {
|
||
"needs_background": "light"
|
||
},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"trigger_grid(supply_sweep, alpha_sweep)\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Resolving Passed Proposals\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"## Social Systems Modeling\n",
|
||
"\n",
|
||
"Subjective, exploratory modeling of the social system interacting through the conviction voting algorithm.\n",
|
||
"\n",
|
||
"### Sentiment\n",
|
||
"\n",
|
||
"Global Sentiment -- the outside world appreciating the output of the community\n",
|
||
"Local Sentiment -- agents within the system feeling good about the community\n",
|
||
"\n",
|
||
"### Social Networks\n",
|
||
"\n",
|
||
"Preferences as mixing process (social influence)\n",
|
||
"\n",
|
||
"### Relationships between Proposals\n",
|
||
"\n",
|
||
"Some proposals are synergistic (passing one makes the other more desireable)\n",
|
||
"Some proposals are (parially) substitutable (passing one makes the other less desirable)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Schema of the states \n",
|
||
"The model consists of a temporal in memory graph database called *network* containing nodes of type **Participant** and type **Proposal**. Participants will have *holdings* and *sentiment* and Proposals will have *funds_required, status*(candidate or active), *conviction* Tthe model as three kinds of edges:\n",
|
||
"* (Participant, participant), we labeled this edge type \"influencer\" and it contains information about how the preferences and sentiment of one participant influence another \n",
|
||
"* (Proposal, Proposal), we labeled this edge type \"conflict\" and it contains information about how synergistic or anti-synergistic two proposals are; basically people are likely to support multiple things that have synergy (meaning once one is passed there is more utility from the other) but they are not likely to pass things that have antisynergy (meaning once one is passed there is less utility from the other).\n",
|
||
"* The edges between Participant and Proposal, which are described below.\n",
|
||
" \n",
|
||
"\n",
|
||
"Edges in the network go from nodes of type Participant to nodes of type Proposal with the edges having the key *type*, of which all will be set to *support*. Edges from participant $i$ to proposal $j$ will have the following additional characteristics:\n",
|
||
"* Each pairing (i,j) will have *affinity*, which determines how much $i$ likes or dislikes proposal $j$.\n",
|
||
"* Each participant $i$, assigns its $tokens$ over the edges (i,j) for all $j$ such that the summation of all $j$ such that ```Sum_j = network.edges[(i,j)]['tokens'] = network.nodes[i]['holdings']```. This value of tokens for participants on proposals must be less than or equal to the total number of tokens held by the participant.\n",
|
||
"* Each pairing (i,j) will have *conviction* local to that edge whose update at each timestep is computed using the value of *tokens* at that edge.\n",
|
||
"* Each proposal *j* will have a *conviction* which is equal to the sum of the conviction on its inbound edges: ```network.nodes[j]['conviction'] = Sum_i network.edges[(i,j)]['conviction']```. \n",
|
||
"\n",
|
||
"\n",
|
||
"The other state variable in the model is *funds*, which is a numpy floating point. \n",
|
||
"\n",
|
||
"The system consists of 100 time steps without a parameter sweep or monte carlo.\n",
|
||
"\n",
|
||
"\n",
|
||
"## Partial State Update Blocks\n",
|
||
"\n",
|
||
"Each partial state update block is kind of a like a phase in a phased based board game. Everyone decides what to do and it reconciles all decisions. One timestep is a full turn, with each block being a phase of a timestep or turn. We will walk through the individaul Partial State update blocks one by one below."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"```\n",
|
||
"{\n",
|
||
"# system.py: \n",
|
||
"'policies': { \n",
|
||
" 'random': driving_process\n",
|
||
"},\n",
|
||
"'variables': {\n",
|
||
" 'network': update_network,\n",
|
||
" 'funds':increment_funds,\n",
|
||
"}\n",
|
||
"```\n",
|
||
"\n",
|
||
"To simulate the arrival of participants and proposal into the system, we have a driving process to represent the arrival of individual agents. We use a random uniform distribution generator, over [0, 1), to calculate the number of new participants. We then use an exponential distribution to calculate the particpant's tokens by using a loc of 0.0 and a scale of expected holdings, which is calculated by .1*supply/number of existing participants. We calculate the number of new proposals by \n",
|
||
"```\n",
|
||
"proposal_rate = 1/median_affinity * (1+total_funds_requested/funds)\n",
|
||
"rv2 = np.random.rand()\n",
|
||
"new_proposal = bool(rv2<1/proposal_rate)\n",
|
||
"```\n",
|
||
"The network state variable is updated to include the new participants and proposals, while the funds state variable is updated for the increase in system funds. \n",
|
||
"[To see the partial state update code, click here](model/model/system.py)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"```\n",
|
||
"{\n",
|
||
" # participants.py \n",
|
||
" 'policies': {\n",
|
||
" 'completion': check_progress \n",
|
||
" },\n",
|
||
" 'variables': { \n",
|
||
" 'sentiment': update_sentiment_on_completion, #note completing decays sentiment, completing bumps it\n",
|
||
" 'network': complete_proposal\n",
|
||
" }\n",
|
||
"},\n",
|
||
"```\n",
|
||
"\n",
|
||
"In the next phase of the turn, [to see the logic code, click here](model/model/participants.py), the *check_progress* behavior checks for the completion of previously funded proposals. The code calculates the completion and failure rates as follows:\n",
|
||
"\n",
|
||
"```\n",
|
||
"likelihood = 1.0/(base_completion_rate+np.log(grant_size))\n",
|
||
"\n",
|
||
"failure_rate = 1.0/(base_failure_rate+np.log(grant_size))\n",
|
||
"if np.random.rand() < likelihood:\n",
|
||
" completed.append(j)\n",
|
||
"elif np.random.rand() < failure_rate:\n",
|
||
" failed.append(j)\n",
|
||
"```\n",
|
||
"With the base_completion_rate being 100 and the base_failure_rate as 200. \n",
|
||
"\n",
|
||
"The mechanism then updates the respective *network* nodes and updates the sentiment variable on proposal completion. "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"```\n",
|
||
" # proposals.py\n",
|
||
" 'policies': {\n",
|
||
" 'release': trigger_function \n",
|
||
" },\n",
|
||
" 'variables': { \n",
|
||
" 'funds': decrement_funds, \n",
|
||
" 'sentiment': update_sentiment_on_release, #releasing funds can bump sentiment\n",
|
||
" 'network': update_proposals \n",
|
||
" }\n",
|
||
"},\n",
|
||
" ```\n",
|
||
" \n",
|
||
"The [trigger release function](model/model/proposals.py) checks to see if each proposal passes or not. If a proposal passes, funds are decremented by the amount of the proposal, while the proposal's status is changed in the network object."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"```\n",
|
||
"{ \n",
|
||
" # participants.py\n",
|
||
" 'policies': { \n",
|
||
" 'participants_act': participants_decisions\n",
|
||
" },\n",
|
||
" 'variables': {\n",
|
||
" 'network': update_tokens \n",
|
||
" }\n",
|
||
"}\n",
|
||
"```\n",
|
||
"\n",
|
||
"The Participants decide based on their affinity if which proposals they would like to support,[to see the logic code, click here](model/model/participants.py). Proposals that participants have high affinity for receive more support and pledged tokens than proposals with lower affinity and sentiment. We then update everyone's holdings and their conviction for each proposal.\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Model next steps\n",
|
||
"\n",
|
||
"The the model described above is the second iteration model that covers the core mechanisms of the Aragon Conviction Voting model. Below are next additional dynamics we can attend to enrich the model, and provide workstreams for subsequent iterations of this lab notebook.\n",
|
||
"\n",
|
||
"* Mixing of token holdings among participants\n",
|
||
"* Departure of participants\n",
|
||
"* Proposals which are good or no good together\n",
|
||
"* Multiple proposal stages such as killed, failed and completed\n",
|
||
"* Affects of outcomes on sentiment"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"# Simulation\n",
|
||
"\n",
|
||
"## cadCAD Overview\n",
|
||
"\n",
|
||
"In the cadCAD simulation [methodology](https://community.cadcad.org/t/differential-specification-syntax-key/31), we operate on four layers: **Policies, Mechanisms, States**, and **Metrics**. Information flows do not have explicit feedback loop unless noted. **Policies** determine the inputs into the system dynamics, and can come from user input, observations from the exogenous environment, or algorithms. **Mechanisms** are functions that take the policy decisions and update the States to reflect the policy level changes. **States** are variables that represent the system quantities at the given point in time, and **Metrics** are computed from state variables to assess the health of the system. Metrics can often be thought of as KPIs, or Key Performance Indicators. \n",
|
||
"\n",
|
||
"At a more granular level, to setup a model, there are system conventions and configurations that must be [followed.](https://community.cadcad.org/t/introduction-to-simulation-configurations/34)\n",
|
||
"\n",
|
||
"The way to think of cadCAD modeling is analogous to machine learning pipelines which normally consist of multiple steps when training and running a deployed model. There is preprocessing, which includes segregating features between continuous and categorical, transforming or imputing data, and then instantiating, training, and running a machine learning model with specified hyperparameters. cadCAD modeling can be thought of in the same way as states, roughly translating into features, are fed into pipelines that have built-in logic to direct traffic between different mechanisms, such as scaling and imputation. Accuracy scores, ROC, etc. are analogous to the metrics that can be configured on a cadCAD model, specifying how well a given model is doing in meeting its objectives. The parameter sweeping capability of cadCAD can be thought of as a grid search, or way to find the optimal hyperparameters for a system by running through alternative scenarios. A/B style testing that cadCAD enables is used in the same way machine learning models are A/B tested, except out of the box, in providing a side by side comparison of muliple different models to compare and contrast performance. Utilizing the field of Systems Identification, dynamical systems models can be used to \"online learn\" by providing a feedback loop to generative system mechanisms. \n",
|
||
"\n",
|
||
"\n",
|
||
"## Differential Specification \n",
|
||
""
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Configuration\n",
|
||
"Let's factor out into its own notebook where we review the config object and its partial state update blocks."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 4,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"from model import economyconfig"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# pull out configurations to illustrate\n",
|
||
"sim_config,genesis_states,seeds,partial_state_update_blocks = economyconfig.get_configs()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 6,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"{'N': 1, 'T': range(0, 100), 'M': [{}], 'simulation_id': 0, 'run_id': 0}"
|
||
]
|
||
},
|
||
"execution_count": 6,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"sim_config"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 7,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"[{'policies': {'random': <function model.model.system.driving_process(params, step, sL, s)>},\n",
|
||
" 'variables': {'network': <function model.model.system.update_network(params, step, sL, s, _input)>,\n",
|
||
" 'funds': <function model.model.system.increment_funds(params, step, sL, s, _input)>}},\n",
|
||
" {'policies': {'completion': <function model.model.participants.check_progress(params, step, sL, s)>},\n",
|
||
" 'variables': {'sentiment': <function model.model.participants.update_sentiment_on_completion(params, step, sL, s, _input)>,\n",
|
||
" 'network': <function model.model.participants.complete_proposal(params, step, sL, s, _input)>}},\n",
|
||
" {'policies': {'release': <function model.model.proposals.trigger_function(params, step, sL, s)>},\n",
|
||
" 'variables': {'funds': <function model.model.proposals.decrement_funds(params, step, sL, s, _input)>,\n",
|
||
" 'sentiment': <function model.model.proposals.update_sentiment_on_release(params, step, sL, s, _input)>,\n",
|
||
" 'network': <function model.model.proposals.update_proposals(params, step, sL, s, _input)>}},\n",
|
||
" {'policies': {'participants_act': <function model.model.participants.participants_decisions(params, step, sL, s)>},\n",
|
||
" 'variables': {'network': <function model.model.participants.update_tokens(params, step, sL, s, _input)>}}]"
|
||
]
|
||
},
|
||
"execution_count": 7,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"partial_state_update_blocks"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Initialization\n",
|
||
"To create the genesis_states, we create our in-memory graph database within networkx. \n",
|
||
"\n",
|
||
"\n",
|
||
"### Hyperparameters\n",
|
||
"* $\\beta$ = .2 # maximum share of funds a proposal can take\n",
|
||
"* $\\rho$ = 0.002 # tuning param for the trigger function\n",
|
||
"* $\\alpha$ = 1 - 0.9999599\n",
|
||
"* supply = 21706 # Honey supply balance as of 7-17-2020 \n",
|
||
"* initial_sentiment = .9\n",
|
||
"* n= 24 #initial participants\n",
|
||
"* m= 3 #initial proposals\n",
|
||
"* sensitivity = .75\n",
|
||
"* tmin = 7 #unit days; minimum periods passed before a proposal can pass\n",
|
||
"* min_supp = 50 #number of tokens that must be stake for a proposal to be a candidate\n",
|
||
"* base_completion_rate = 100\n",
|
||
"* base_failure_rate = 200 \n",
|
||
"* initial_funds = 48000 # in xDai"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 8,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# import libraries\n",
|
||
"import networkx as nx\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"import numpy as np\n",
|
||
"from model.model.conviction_helper_functions import * \n",
|
||
"\n",
|
||
"# Parameters\n",
|
||
"# maximum share of funds a proposal can take\n",
|
||
"beta = .2 #later we should set this to be param so we can sweep it\n",
|
||
"# tuning param for the trigger function\n",
|
||
"rho = 0.002\n",
|
||
"alpha = 1 - 0.9999599\n",
|
||
"supply = 21706 # Honey supply balance as of 7-17-2020 \n",
|
||
"initial_sentiment = .9\n",
|
||
"\n",
|
||
"\n",
|
||
"n= 24 #initial participants\n",
|
||
"m= 3 #initial proposals\n",
|
||
"\n",
|
||
"\n",
|
||
"sensitivity = .75\n",
|
||
"tmin = 7 #unit days; minimum periods passed before a proposal can pass\n",
|
||
"min_supp = 50 #number of tokens that must be stake for a proposal to be a candidate\n",
|
||
"base_completion_rate = 100\n",
|
||
"base_failure_rate = 200 \n",
|
||
"\n",
|
||
"initial_funds = 48000 # in xDai\n",
|
||
"\n",
|
||
"def initialize_network(n,m, inital_funds, supply):\n",
|
||
" '''\n",
|
||
" Definition:\n",
|
||
" Function to initialize network x object\n",
|
||
"\n",
|
||
" Parameters:\n",
|
||
"\n",
|
||
" Assumptions:\n",
|
||
"\n",
|
||
" Returns:\n",
|
||
"\n",
|
||
" Example:\n",
|
||
" '''\n",
|
||
" # initilize network x graph\n",
|
||
" network = nx.DiGraph()\n",
|
||
" # create participant nodes with type and token holding\n",
|
||
" for i in range(n):\n",
|
||
" network.add_node(i)\n",
|
||
" network.nodes[i]['type']= \"participant\"\n",
|
||
" \n",
|
||
" h_rv = expon.rvs(loc=0.0, scale= supply/n)\n",
|
||
" network.nodes[i]['holdings'] = h_rv # SOL check\n",
|
||
" \n",
|
||
" s_rv = np.random.rand() \n",
|
||
" network.nodes[i]['sentiment'] = s_rv\n",
|
||
" \n",
|
||
" participants = get_nodes_by_type(network, 'participant')\n",
|
||
" initial_supply = np.sum([ network.nodes[i]['holdings'] for i in participants])\n",
|
||
" \n",
|
||
" \n",
|
||
" # Generate initial proposals\n",
|
||
" for ind in range(m):\n",
|
||
" j = n+ind\n",
|
||
" network.add_node(j)\n",
|
||
" network.nodes[j]['type']=\"proposal\"\n",
|
||
" network.nodes[j]['conviction'] = 0\n",
|
||
" network.nodes[j]['status'] = 'candidate'\n",
|
||
" network.nodes[j]['age'] = 0\n",
|
||
" \n",
|
||
" r_rv = gamma.rvs(3,loc=0.001, scale=100)\n",
|
||
" network.nodes[j]['funds_requested'] = r_rv\n",
|
||
" \n",
|
||
" network.nodes[j]['trigger']= trigger_threshold(r_rv, initial_funds, initial_supply,beta,rho,alpha)\n",
|
||
" \n",
|
||
" for i in range(n):\n",
|
||
" network.add_edge(i, j)\n",
|
||
" \n",
|
||
" rv = np.random.rand()\n",
|
||
" a_rv = np.random.uniform(-1,1,1)[0]\n",
|
||
" network.edges[(i, j)]['affinity'] = a_rv\n",
|
||
" network.edges[(i, j)]['tokens'] = 0\n",
|
||
" network.edges[(i, j)]['conviction'] = 0\n",
|
||
" network.edges[(i, j)]['type'] = 'support'\n",
|
||
" \n",
|
||
" proposals = get_nodes_by_type(network, 'proposal')\n",
|
||
" total_requested = np.sum([ network.nodes[i]['funds_requested'] for i in proposals])\n",
|
||
" \n",
|
||
" network = initial_conflict_network(network, rate = .25)\n",
|
||
" network = initial_social_network(network, scale = 1)\n",
|
||
" \n",
|
||
" return network, initial_funds\n",
|
||
"#initializers\n",
|
||
"network, initial_funds = initialize_network(n,m,initial_funds,supply)\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"# Create initial states\n",
|
||
"genesis_states = { \n",
|
||
" 'network':network,\n",
|
||
" 'funds':initial_funds,\n",
|
||
" 'sentiment':initial_sentiment,\n",
|
||
"\n",
|
||
"}"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 9,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"{'network': <networkx.classes.digraph.DiGraph at 0x7f6a4ce65850>,\n",
|
||
" 'funds': 48000,\n",
|
||
" 'sentiment': 0.9}"
|
||
]
|
||
},
|
||
"execution_count": 9,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"genesis_states"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"#### Exploring the State Data Structure\n",
|
||
"\n",
|
||
"A graph is a type of temporal data structure that evolves over time. A graph $\\mathcal{G}(\\mathcal{V},\\mathcal{E})$ consists of vertices or nodes, $\\mathcal{V} = \\{1...\\mathcal{V}\\}$ and is connected by edges $\\mathcal{E} \\subseteq \\mathcal{V} \\times \\mathcal{V}$.\n",
|
||
"\n",
|
||
"See *Schema of the states* above for more details\n",
|
||
"\n",
|
||
"\n",
|
||
"Let's explore!"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 10,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# To explore our model prior to the simulation, we extract key components from our networkX object into lists.\n",
|
||
"proposals = get_nodes_by_type(network, 'proposal')\n",
|
||
"participants = get_nodes_by_type(network, 'participant')\n",
|
||
"supporters = get_edges_by_type(network, 'support')\n",
|
||
"influencers = get_edges_by_type(network, 'influence')\n",
|
||
"competitors = get_edges_by_type(network, 'conflict')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 11,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"{'type': 'participant',\n",
|
||
" 'holdings': 893.6452645743616,\n",
|
||
" 'sentiment': 0.102446375901169}"
|
||
]
|
||
},
|
||
"execution_count": 11,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"#sample a participant\n",
|
||
"network.nodes[participants[0]]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 12,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"Text(0, 0.5, 'Count of Participants')"
|
||
]
|
||
},
|
||
"execution_count": 12,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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\n",
|
||
"text/plain": [
|
||
"<Figure size 432x288 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {
|
||
"needs_background": "light"
|
||
},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Let's look at the distribution of participant holdings at the start of the sim\n",
|
||
"plt.hist([ network.nodes[i]['holdings'] for i in participants])\n",
|
||
"plt.title('Histogram of Participants Token Holdings')\n",
|
||
"plt.xlabel('Amount of Honey')\n",
|
||
"plt.ylabel('Count of Participants')\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 13,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"Text(0.5, 1.0, 'Participants Social Network')"
|
||
]
|
||
},
|
||
"execution_count": 13,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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\n",
|
||
"text/plain": [
|
||
"<Figure size 432x288 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"nx.draw_kamada_kawai(network, nodelist = participants, edgelist=influencers)\n",
|
||
"plt.title('Participants Social Network')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 14,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"{'type': 'proposal',\n",
|
||
" 'conviction': 0,\n",
|
||
" 'status': 'candidate',\n",
|
||
" 'age': 0,\n",
|
||
" 'funds_requested': 533.7442840291636,\n",
|
||
" 'trigger': 862.188323033792}"
|
||
]
|
||
},
|
||
"execution_count": 14,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"#lets look at proposals\n",
|
||
"network.nodes[proposals[0]]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Proposals initially start without any conviction, and with the status of a candidate. If the proposal's amount of conviction is greater than it's trigger, then the proposal moves to active and it's funds requested are granted. "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"All initial proposal start with 0 conviction and state 'candidate'we can simply examine the amounts of funds requested"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 15,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"Text(0, 0.5, 'Amount of Honey requested')"
|
||
]
|
||
},
|
||
"execution_count": 15,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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\n",
|
||
"text/plain": [
|
||
"<Figure size 432x288 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {
|
||
"needs_background": "light"
|
||
},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"plt.bar( proposals, [ network.nodes[i]['funds_requested'] for i in proposals])\n",
|
||
"plt.title('Bar chart of Proposals Funds Requested')\n",
|
||
"plt.xlabel('Proposal identifier')\n",
|
||
"plt.ylabel('Amount of Honey requested')\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Conviction is a concept that arises in the edges between participants and proposals in the initial conditions there are no votes yet so we can look at that later however, the voting choices are driven by underlying affinities which we can see now."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 16,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"Text(0.5, 104.1, 'participant_id')"
|
||
]
|
||
},
|
||
"execution_count": 16,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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\n",
|
||
"text/plain": [
|
||
"<Figure size 1440x360 with 2 Axes>"
|
||
]
|
||
},
|
||
"metadata": {
|
||
"needs_background": "light"
|
||
},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"affinities = np.empty((n,m))\n",
|
||
"for i_ind in range(n):\n",
|
||
" for j_ind in range(m):\n",
|
||
" i = participants[i_ind]\n",
|
||
" j = proposals[j_ind]\n",
|
||
" affinities[i_ind][j_ind] = network.edges[(i,j)]['affinity']\n",
|
||
"\n",
|
||
"dims = (20, 5)\n",
|
||
"fig, ax = plt.subplots(figsize=dims)\n",
|
||
"\n",
|
||
"sns.heatmap(affinities.T,\n",
|
||
" xticklabels=participants,\n",
|
||
" yticklabels=proposals,\n",
|
||
" square=True,\n",
|
||
" cbar=True,\n",
|
||
" ax=ax)\n",
|
||
"\n",
|
||
"plt.title('affinities between participants and proposals')\n",
|
||
"plt.ylabel('proposal_id')\n",
|
||
"plt.xlabel('participant_id')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Run simulation\n",
|
||
"\n",
|
||
"Now we will create the final system configuration, append the genesis states we created, and run our simulation."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 17,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"from cadCAD.configuration import append_configs\n",
|
||
"\n",
|
||
"# Create configuration\n",
|
||
"append_configs(\n",
|
||
" sim_configs=sim_config,\n",
|
||
" initial_state=genesis_states,\n",
|
||
" seeds=seeds,\n",
|
||
" partial_state_update_blocks=partial_state_update_blocks\n",
|
||
")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 18,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
" ___________ ____\n",
|
||
" ________ __ ___/ / ____/ | / __ \\\n",
|
||
" / ___/ __` / __ / / / /| | / / / /\n",
|
||
"/ /__/ /_/ / /_/ / /___/ ___ |/ /_/ /\n",
|
||
"\\___/\\__,_/\\__,_/\\____/_/ |_/_____/\n",
|
||
"by cadCAD\n",
|
||
"\n",
|
||
"Execution Mode: local_proc\n",
|
||
"Configuration Count: 2\n",
|
||
"Dimensions of the first simulation: (Timesteps, Params, Runs, Vars) = (100, 1, 1, 3)\n",
|
||
"Execution Method: local_simulations\n",
|
||
"Execution Mode: parallelized\n",
|
||
"Total execution time: 9.99s\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import numpy as np\n",
|
||
"import pandas as pd\n",
|
||
"from model.model.conviction_helper_functions import *\n",
|
||
"from model import run\n",
|
||
"from cadCAD import configs\n",
|
||
"pd.options.display.float_format = '{:.2f}'.format\n",
|
||
"\n",
|
||
"%matplotlib inline\n",
|
||
"\n",
|
||
"# Pass in configuration to run\n",
|
||
"df = run.run(configs)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"After the simulation has run successfully, we perform some postprocessing to extract node and edge values from the network object and add as columns to the pandas dataframe. For the rdf, we take only the values at the last substep of each timestep in the simulation."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 19,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"df= run.postprocessing(df)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 20,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>network</th>\n",
|
||
" <th>funds</th>\n",
|
||
" <th>sentiment</th>\n",
|
||
" <th>simulation</th>\n",
|
||
" <th>run</th>\n",
|
||
" <th>substep</th>\n",
|
||
" <th>timestep</th>\n",
|
||
" <th>conviction</th>\n",
|
||
" <th>candidate_count</th>\n",
|
||
" <th>candidate_funds</th>\n",
|
||
" <th>...</th>\n",
|
||
" <th>funds_requested</th>\n",
|
||
" <th>share_of_funds_requested</th>\n",
|
||
" <th>share_of_funds_requested_all</th>\n",
|
||
" <th>triggers</th>\n",
|
||
" <th>conviction_share_of_trigger</th>\n",
|
||
" <th>age</th>\n",
|
||
" <th>age_all</th>\n",
|
||
" <th>conviction_all</th>\n",
|
||
" <th>triggers_all</th>\n",
|
||
" <th>conviction_share_of_trigger_all</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>785</th>\n",
|
||
" <td>(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,...</td>\n",
|
||
" <td>46982.84</td>\n",
|
||
" <td>0.91</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>4</td>\n",
|
||
" <td>96</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>[533.7442840291636, 101.99039020309893, 681.00...</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>[0.011360408350392771, 0.002170800728349896, 0...</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>[96, 96, 96, 37]</td>\n",
|
||
" <td>[nan, nan, 0.0, nan]</td>\n",
|
||
" <td>[nan, nan, nan, nan]</td>\n",
|
||
" <td>[nan, nan, nan, nan]</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>789</th>\n",
|
||
" <td>(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,...</td>\n",
|
||
" <td>46991.86</td>\n",
|
||
" <td>0.90</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>4</td>\n",
|
||
" <td>97</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>[533.7442840291636, 101.99039020309893, 681.00...</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>[0.01135822863874518, 0.002170384218706383, 0....</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>[97, 97, 97, 38]</td>\n",
|
||
" <td>[nan, nan, 0.0, nan]</td>\n",
|
||
" <td>[nan, nan, nan, nan]</td>\n",
|
||
" <td>[nan, nan, nan, nan]</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>793</th>\n",
|
||
" <td>(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,...</td>\n",
|
||
" <td>46997.55</td>\n",
|
||
" <td>0.90</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>4</td>\n",
|
||
" <td>98</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>[533.7442840291636, 101.99039020309893, 681.00...</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>[0.0113568542037439, 0.002170121585145174, 0.0...</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>[98, 98, 98, 39]</td>\n",
|
||
" <td>[nan, nan, 0.0, nan]</td>\n",
|
||
" <td>[nan, nan, nan, nan]</td>\n",
|
||
" <td>[nan, nan, nan, nan]</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>797</th>\n",
|
||
" <td>(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,...</td>\n",
|
||
" <td>47001.32</td>\n",
|
||
" <td>0.89</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>4</td>\n",
|
||
" <td>99</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>[533.7442840291636, 101.99039020309893, 681.00...</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>[0.011355942408387219, 0.0021699473549623024, ...</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>[99, 99, 99, 40]</td>\n",
|
||
" <td>[nan, nan, 0.0, nan]</td>\n",
|
||
" <td>[nan, nan, nan, nan]</td>\n",
|
||
" <td>[nan, nan, nan, nan]</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>801</th>\n",
|
||
" <td>(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,...</td>\n",
|
||
" <td>47002.12</td>\n",
|
||
" <td>0.88</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>4</td>\n",
|
||
" <td>100</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>[533.7442840291636, 101.99039020309893, 681.00...</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>[0.011355749547503383, 0.0021699105021895683, ...</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>[]</td>\n",
|
||
" <td>[100, 100, 100, 41]</td>\n",
|
||
" <td>[nan, nan, 0.0, nan]</td>\n",
|
||
" <td>[nan, nan, nan, nan]</td>\n",
|
||
" <td>[nan, nan, nan, nan]</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>5 rows × 29 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" network funds sentiment \\\n",
|
||
"785 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 46982.84 0.91 \n",
|
||
"789 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 46991.86 0.90 \n",
|
||
"793 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 46997.55 0.90 \n",
|
||
"797 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 47001.32 0.89 \n",
|
||
"801 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 47002.12 0.88 \n",
|
||
"\n",
|
||
" simulation run substep timestep conviction candidate_count \\\n",
|
||
"785 1 1 4 96 [] 0 \n",
|
||
"789 1 1 4 97 [] 0 \n",
|
||
"793 1 1 4 98 [] 0 \n",
|
||
"797 1 1 4 99 [] 0 \n",
|
||
"801 1 1 4 100 [] 0 \n",
|
||
"\n",
|
||
" candidate_funds ... funds_requested \\\n",
|
||
"785 0.00 ... [533.7442840291636, 101.99039020309893, 681.00... \n",
|
||
"789 0.00 ... [533.7442840291636, 101.99039020309893, 681.00... \n",
|
||
"793 0.00 ... [533.7442840291636, 101.99039020309893, 681.00... \n",
|
||
"797 0.00 ... [533.7442840291636, 101.99039020309893, 681.00... \n",
|
||
"801 0.00 ... [533.7442840291636, 101.99039020309893, 681.00... \n",
|
||
"\n",
|
||
" share_of_funds_requested \\\n",
|
||
"785 [] \n",
|
||
"789 [] \n",
|
||
"793 [] \n",
|
||
"797 [] \n",
|
||
"801 [] \n",
|
||
"\n",
|
||
" share_of_funds_requested_all triggers \\\n",
|
||
"785 [0.011360408350392771, 0.002170800728349896, 0... [] \n",
|
||
"789 [0.01135822863874518, 0.002170384218706383, 0.... [] \n",
|
||
"793 [0.0113568542037439, 0.002170121585145174, 0.0... [] \n",
|
||
"797 [0.011355942408387219, 0.0021699473549623024, ... [] \n",
|
||
"801 [0.011355749547503383, 0.0021699105021895683, ... [] \n",
|
||
"\n",
|
||
" conviction_share_of_trigger age age_all \\\n",
|
||
"785 [] [] [96, 96, 96, 37] \n",
|
||
"789 [] [] [97, 97, 97, 38] \n",
|
||
"793 [] [] [98, 98, 98, 39] \n",
|
||
"797 [] [] [99, 99, 99, 40] \n",
|
||
"801 [] [] [100, 100, 100, 41] \n",
|
||
"\n",
|
||
" conviction_all triggers_all \\\n",
|
||
"785 [nan, nan, 0.0, nan] [nan, nan, nan, nan] \n",
|
||
"789 [nan, nan, 0.0, nan] [nan, nan, nan, nan] \n",
|
||
"793 [nan, nan, 0.0, nan] [nan, nan, nan, nan] \n",
|
||
"797 [nan, nan, 0.0, nan] [nan, nan, nan, nan] \n",
|
||
"801 [nan, nan, 0.0, nan] [nan, nan, nan, nan] \n",
|
||
"\n",
|
||
" conviction_share_of_trigger_all \n",
|
||
"785 [nan, nan, nan, nan] \n",
|
||
"789 [nan, nan, nan, nan] \n",
|
||
"793 [nan, nan, nan, nan] \n",
|
||
"797 [nan, nan, nan, nan] \n",
|
||
"801 [nan, nan, nan, nan] \n",
|
||
"\n",
|
||
"[5 rows x 29 columns]"
|
||
]
|
||
},
|
||
"execution_count": 20,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"df.tail()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 21,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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\n",
|
||
"text/plain": [
|
||
"<Figure size 1440x360 with 2 Axes>"
|
||
]
|
||
},
|
||
"metadata": {
|
||
"needs_background": "light"
|
||
},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"affinities_plot(df)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 22,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"<matplotlib.legend.Legend at 0x7f6a4fcb62d0>"
|
||
]
|
||
},
|
||
"execution_count": 22,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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unv37qxiRE72Ckt328uf9FqyfleJn9fs361N+W/OH1rvG/7www93Gjt2bFcRYdCgQXsvvPDCrWPGjDm0srIy1KFDh/iLL764vFevXvGbb765+6pVqwq/+OKL6Nq1awtHjRq14a677toIcPvtt3d78cUXO3fq1Kmye/fuFcOGDSsH59vpd7/73R1XXnnltpdffrntbbfd1qu4uDg5fPjw3annnzp1aslPf/rT0lgsFioqKko+/fTTnw8YMKDigQce6L5v377QwIEDW99yyy3rLrrooh0//OEPSxctWlQcj8flzjvvXPv9739/e02vKR6Pc/311/ecOnVqOxHRyy+/fPOdd9658Y033mgzevToXolEgqFDh5ZPmDDhi+LiYu3Ro8dRM2fOXHjooYfG33333ZJbb7211/Tp0xfX9ppvueWWnqtWrYoOHDhw8Ne//vWd48aNW+3X+/bfH/x3r6Xblvp6L/Tt0Lf8vq/eV+e9UP0++NWvfrXm8ssv77N169ZIp06d4hMmTFjRr1+/ivPOO69PUVFRct68eSVbtmwpeOyxx1b86U9/6jRr1qxWw4YN2/PKK6+sACgpKRl28cUXb542bVrbLl26VL7yyivLu3fvHk9/zvfee6/k5ptv7lVeXh7q0KFD/M9//vOKt99+u/W8efNKRo4ceXhRUVFy5syZC2fPnl1c/bjevXtXvvfeeyVXXXVVH4CTTjppZ12vrznfEwD/mrCw19Y1u329Lzr2aF3+jZGDar0vLrnkktLVq1dHzzjjjH4XXHDB1jfffLN9+ud06NChsUmTJrV56KGHuk6dOnVp+rlr166NXHnllb3XrFlTCPDb3/525amnnrpn/fr14fPOO+/wDRs2FB533HG765sguPp9+frrr3++ePHiwtruzdTfG3DuwfLy8tmTJk1qc++993bv2LFj5eLFi4uPOuqo8tdff/3z+++//5CNGzcWfP3rX+/foUOH+H/+858lmfz/WcZSi5kzZxY9+OCDh06bNm3J4sWLF4wbN27lt771rd1z5sxZtHDhwgXnn3/+1nvvvbdb6vilS5cWTZs2bcmMGTMWPvjgg91jsZi89957Ja+99lrHuXPnLpgyZcpnn3zySavqz1NeXi433HBDn4kTJy6dN2/ewo0bN1Z9Gx06dOi+GTNmLFq4cOGCe+65Z83PfvaznkVFRXrHHXesPfPMM7ctWrRowdVXX73t5z//+aEnn3zyzrlz5y587733Ft911109d+7cWeN7+9BDD3VZuXJl4YIFC+YvWbJkwVVXXbWlvLxcrr322sNefPHFZUuWLFkQj8f5zW9+U2/VRU2v+aGHHlrdq1ev2KJFixb4/QekKdR0H1x33XWll1566ZYlS5YsuOiii7Zcd911vVLH79ixIzJ79uxFY8aMWTVixIi+t91224bPPvts/qJFi4o//PDDYoC9e/eGysrK9ixdunT+V7/61V2jR4/unv6csVhMbrzxxtI33nhj2fz58xdefvnlm2+99dYeV1555bYjjzyyfMKECcsXLVq0oKCggJqOA/jhD3/Y5/e///3KxYsXL6jvNdo9kbnnnntu5SGHHFI5bdq0JbfccsvG6p/Tus699tpre918880b5s2bt/C1115bNmrUqD4Ao0eP7v7lL39599KlS+efe+6529etW1dY2zVqui8B6ro3a7Nw4cLiRx55ZNXSpUvnr1y5MjplypTWd91118bU68s0qEAzyFi8ZBZBmDx5ctszzzxz26GHHhoH6Nq1a2L69OnF55xzTs9NmzYVVFRUhHr16lW1Bvqpp566vbi4WIuLi+MdO3asXL16dWTq1Kmtv/3tb29v06ZNMnVM9eeZM2dOUc+ePWNHHXVUDODSSy/d8sQTT3QB2Lp1a/iiiy46bMWKFUUiopWVlVJTWd955522kydPbj927Nhu4PxhWrp0aeGxxx67r/qxb7/9dttRo0ZtKihw4lfXrl0T//73v4t79uwZO/roo2MAV1xxxZZHHnnkEKDGwU91vWYv/7fZqi+zCEJN98Hs2bNb/e1vf1sGcN1112395S9/WfWH5Dvf+c72UCjEscceW96pU6fK4cOH7wXo37//3mXLlkW/8pWv7A2FQlx11VVbAX7wgx9s+d73vndAm9qnn34a/eyzz4pPOeWU/gDJZJIuXbpUVi9bbcdt3rw5vGvXrvAZZ5yxO/Ucb7/9dq1Vp835ngCoK7NoDF4/pykffPBB288++6w49Xj37t3hHTt2hD766KM2r7766lKAESNG7Lj22msTtV2jpvsSoK57szZHHXXUniOOOKISYMiQIeXLli2rNaB5lfOBJZfccMMNpTfddNP6Sy+9dEcqhUzti0ajVXlrOBwmHo/XeXN5cfvtt/f4+te/vmvKlCnLFi9eXHjKKacMqOk4VeXll19eOnTo0FhN+xsiHA5rMpkEnG/a6fuCeM3NXVFRkYLz/1FYWFj1/xMKhWr9/3GXuK+iqtK3b9+9c+bMWVTXc9V23ObNm8NZvwAP7J44kNfPaYqq8vHHHy8sKSlptCEVkUhEEwknTiUSCdKDXxDvmVWF1eK0007b+de//rXD+vXrwwAbNmwI79q1K1xaWloJ8PTTT3eq7xqnnHLK7rfeeqv97t27Zdu2baEpU6a0r37MMcccs2/NmjWF8+fPjwK88MILHVP7du7cGe7Zs2cFwLhx4zqntrdt2zaR3qh28skn73zooYe6pj7sH3zwQdW3oeq+8Y1v7Bw3blznykrnC/CGDRvCQ4cO3bdmzZrCefPmRQEmTJjQ6Wtf+9ougJ49e1Z88MEHJQAvvfRSnT2WANq1a5fYs2dPi7mvaroPhg0btueJJ57oADBu3LiOZWVlu+u+yoGSySSp3l9PP/10p+HDhx/QiePoo4/et3Xr1sg///nPVuBkoDNnziwCaN26dWLHjh3huo7r3Llzok2bNonJkye3dp+jI3Wwe6Jhavuc1uaEE07Y+cADD1R1ZkhVkX7pS1/alfq78tJLL7XduXNnrV8QarovAWq7N3v37l0xa9asEoDnnnuuvZfg0apVq8SOHTusV5ifysrK9t1yyy3rvva1rw0cMGDA4Ouvv77XnXfeufbiiy8+YsiQIYM6deoUr+8aJ5xwQvm555679cgjjxzyzW9+s9/RRx+9p/oxJSUl+oc//OGL7373u30HDx48qHPnzlXXvf3229f/4he/6Dlo0KDB8fj+pzvjjDN2LVmypHjgwIGD//jHP3YYM2bM2ng8LgMHDhzct2/fIXfddVeP2sr005/+dFPPnj0rBg4cOGTAgAGDn3zyyY4lJSX62GOPrbjggguO6N+//+BQKMStt966CeDuu+9e+7Of/az0yCOPHBQOh+v9htWtW7fEcccdt7tfv35Drr322nrT8FxX033w2GOPrXzmmWc69+/ff/Dzzz/f6dFHH82oKqa4uDg5ffr0Vv369Rvy7rvvtnnggQfWpe8vKirSF154Ydno0aN7DhgwYPCQIUMGT5s2rTXAyJEjN//4xz/uPXDgwMHxeJzajnvyySdX3HjjjaUDBw4crKp1/hGxe6Jhavuc1ubxxx9f9fHHH7fq37//4COOOGLIww8/3AVgzJgxaz/44IPWffv2HfLqq692OPTQQytqu0ZN9yVAbffmj3/8400ffvhhmwEDBgz+8MMPWxUXFyfrK+fll1+++fTTT+9//PHH9/f8n+HKyaWJP/nkkxVDhw7d3NTlMCYIqR45TV0OYxrik08+6Tx06NA+Ne2zjMUYY4yvrPG+hXrllVfa3nnnnQdUO/Tq1Ss2ZcqUZU1VJuNoqmzF7onmZ/369eGTTjrpoM4A77zzzuJu3brV2musqVlVmDHGmIxZVZgxxphGY4HFGGOMryywGGOM8ZUFFmOMMb6ywOKDSZMmtZkyZUrVBJO//vWvuzz88MP1jszPFdXLbw5U03omta21kb7mjlclJSXD/Ctt5kaPHt2t/qOM8c4Ciw/efvvtNu+9917r1OOf/exnm2644YYtTVmmTFQvv6lfc19rI93YsWMPbeoymJYl98ex0L2G3QAAB/lJREFUvP6jXmxc4OtaCxwyuJxzHqn3j8I3v/nNI9atW1cYi8VCo0aN2nDrrbdufvnll9vefffdPRKJhHTs2DH+9NNPr5gwYUKXUCikL730Uqff//73K//xj3+0bd26deLcc8/dMXLkyMPmzp27EJxvvmeeeWbfJUuWLKhpvY3evXsfNIMtwLx586LXXHNN7y1btkTC4bD+5S9/WT5o0KDYdddd1/Ptt99uJyJ62223rbv66qu3VV8DYuTIkaVlZWV7brzxxi09evQ46sILL9wyefLkdvF4XF588cXlJSUlyerlP/300zOa+6qxrP35nb1in33m670Q7devvPv9/89zgFiwYEHheeed1/f888/f8v7777epvtZGuvnz50dHjRpVunXr1khRUVHyiSee+GLYsGH7Fi1aVDhixIjDy8vLQ6effnqN6+aku/POO7v95S9/6SgifOMb39jx6KOPrvnwww+Lr7vuut579+4N9e7dO/bcc8+t6NKlS2L48OEDHnzwwVUnnnhi+bp16yJlZWWD1qxZM3fs2LGdJk2a1H7v3r2hlStXRs8444ztjz322Orrr7++RywWCw0cOHBw//7999a2aJUxmbCMpQ5//vOfV8yfP3/hnDlzFowbN67rqlWrIjfccEOfV199ddnixYsXvP7668sGDBhQMXLkyE2jRo3asGjRogXpf5SHDRu2r7KyUhYtWlQIMGHChI7nnHPOttrW26itHJdccslho0aN2rh48eIFM2fOXFRaWlo5YcKE9nPnzi1euHDh/H/9619L7r777p5ffPFFvSsLdu7cOb5gwYKFP/jBDzaNGTOma13lNwf65JNPouedd17f8ePHf3788ceX13f8VVdd1fvRRx9dOX/+/IW/+c1vVl933XWlANdff33pVVddtWnJkiULDj300Bq/TKS89NJLbd966632s2bNWrR48eIF99xzz3qAK6644rD7779/9ZIlSxYMGTJk7+233969rusALFiwoOT1119fvnDhwvkTJ07ssHTp0oJHH310TTQaTS5atGiBBRXjl9zPWDxkFkH51a9+1fXNN99sD7B+/fqCsWPHdhk+fPiugQMHVsD+NRDqcs4552ydMGFCx/vvv3/9a6+91uHFF19c7nW9DYBt27aFNmzYUDhy5Mjt4ExaCeh7773X5sILL9waiUTo1atX/Pjjj9/9/vvvl7Rr167OyeUuueSSbQDDhw8vnzhxYr0z0+aSTDILv23dujVyzjnn9H355ZeXHXfccfsmTZrUpq7jd+zYEZo9e3brCy644IjUtoqKCgH4+OOPW6fWzLj22mu33HfffbVOzDhlypS23//+9zen1vTp2rVrYsuWLeFdu3aFv/Od7+wGuPrqq7dccMEFh9f3Gk444YSdnTp1SgD07dt337Jly6J9+/atM7AZk43cDyxNZNKkSW2mTZvWZubMmYvatGmTHD58+IBhw4aVL168uCiT61x22WXbLrjggsNHjBixTUQ46qijYtOnTy/2st5GNgoKCqrWygBnKvX0/an1QiKRiObDWhl+adOmTaJ79+4VU6dObX3ccccdtIBadYlEgjZt2sQXLVpU4wqOoVAokCkv0tfdKC8vP+D9TV8fJhwO17sglTHZsqqwWmzfvj3crl27RJs2bZKzZ88u+uSTT1rt27cvNH369Dapqq3UGght2rRJ7Nq1q8a1E4YMGRILhULcfffd3c8999ytUPd6G9V16NAh2a1bt4pnnnmmPcDevXtl165doRNPPHHXyy+/3DEej7N27drI9OnTW3/ta1/bc8QRR8SWLl1avHfvXtm8eXP4/fffb1vfa62r/MZRUFCgf/vb35Y9//zznR577LE61zcB6NixY7Jnz54V48eP7wBOVvrvf/+7GODYY4/d/cc//rEjwB//+Mc6ew+edtppO5999tnOu3btCoFzz3Xq1CnRtm3bxN///vfUFPmdvvzlL+8GZ+6v6dOntwL485//7CkjjUQiWv0LiDENYYGlFuedd96OeDwuhx9++JDbbrutx9ChQ/cccsgh8bFjx64499xz+w4YMGDwueeee7h77PY333yz/cCBAwenPuzpvve972194403Ol522WXboO71Nmry7LPPfv7II48c0r9//8FlZWUDV61aFbnsssu2DxkyZO+gQYOGnHTSSf1/+ctfri4tLY337du38swzz9w2cODAIWefffbhQ4YMqbctoL7yG0fbtm2TkydPXvrwww939bIA0vPPP7/8qaee6jxgwIDB/fr1G/LKK6+0B3j00UdXPv7444f0799/8Jo1a+psFzv//PN3nnHGGduPOeaYQQMHDhx83333dQN46qmnPr/99tt79u/ff/Cnn35aPGbMmLUAo0eP3vDkk092GTRo0ODNmzd7qpG49NJLNw0aNGjwWWeddZiX442pj01CaYwxJmM2CaUxxphGY433OeSyyy4rnTFjxgFVUdddd92Gm266qdkMtjTZmT59evHIkSMPqIoqLCxMfvrpp7538DAmaBZYcsgzzzyzsqnLYJrG8OHD99bWg8yY5iZXq8KSyWTSeqkYY0wOcv8+1zpmLlcDy7xNmza1s+BijDG5JZlMyqZNm9oB82o7JierwuLx+FXr169/Yv369UeSu8HPGGPyURKYF4/Hr6rtgJzsbmyMMab5smzAGGOMryywGGOM8ZUFFmOMMb6ywGKMMcZXFliMMcb46v8D6/VtQhis4PoAAAAASUVORK5CYII=\n",
|
||
"text/plain": [
|
||
"<Figure size 432x288 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {
|
||
"needs_background": "light"
|
||
},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"df.plot(x='timestep',y=['candidate_count','active_count','completed_count', 'killed_count', 'failed_count'],\n",
|
||
" kind='line')\n",
|
||
"plt.title('Proposal Status')\n",
|
||
"plt.ylabel('count of proposals')\n",
|
||
"plt.legend(ncol = 3,loc='upper center', bbox_to_anchor=(0.5, -0.15))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 23,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"<matplotlib.legend.Legend at 0x7f6a4c6e3490>"
|
||
]
|
||
},
|
||
"execution_count": 23,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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OfHEEwf985//7NrYOrfffnv3pUuX5qez3UWLFhUMGzZsTGPr2DWRvt///ve777nnnmOOPfbYwfUtf/PNN0vOPPPMAdC8z6Rfv357r1mzpsE686b2nw4/14hfrb6SPwxuvfXW1c1978yZM0tmzpzZYdKkSVvTfe/y5cvzZs2a1WH58uVzm7t/kzv/+te/euy7774VgwYNqs7UNu2aaJ777ruv5yuvvLJ4yJAh9Z6Lgw8+uPzggw8uz9X+c6VNBZjLnpw1YHHZ9pJMbnN4707l/3fS2BVNrXfnnXd2v/3223uJCKNGjao45ZRTNt144419qqurI127do0//vjjnw8YMCB+8cUX912xYkXBsmXLClevXl1w/vnnr73qqqvWAVx++eW9H3/88R7du3ev7tu3b9W4cePKwfu3evTRR28966yzNj/55JOdL7vssgHFxcU1EyZM2JHc/+uvv17yq1/9amAsFosUFRXVPPDAA1+MGDGi6oYbbuhbWVkZGTlyZMdLLrlkzaRJk7aeffbZAxcuXFgcj8flyiuvXP3DH/5wS33HdMQRRwxft25dwciRI0ffeuuty6+++up+N91004qDDz64fM2aNXnjx48ftWrVqjm3335792nTpnWpqKiILF++vHDixIlb7rrrrpUAt912W/dbbrmlT6dOnRJjxowpLygoUID777+/6w033NA3Eolop06dEjNnzlxUXxqa63/f+d8BpZtLM3otDO06tPx3B/6u0Wuh7nXwpz/9adUZZ5wxaNOmTXndu3ePT5kyZemwYcOqTjzxxEFFRUU1c+fOLdm4cWP+XXfdtfTBBx/s/tFHH3UYN27czqeeemopQElJybjTTjttw4wZMzr37Nmz+qmnnvq8b9++8dR9vvXWWyUXX3zxgPLy8kjXrl3jDz/88NLXXnut49y5c0tOP/30PYuKimpmzpy54JNPPimuu94ee+xR/dZbb5Wcc845gwAOOeSQbY0dX1u+JgBenbJgwKZVOzJ6XXTr17H88NNHNXhd/M///M/AlStXFk6cOHHYySefvOmFF17okvo9HTt2bGzatGmd/vKXv/R6/fXXS1Pfu3r16ryzzjprj1WrVhUA3Hzzzcu/853v7CwrK4ueeOKJe65du7Zg//3339HYoMSp+588efKGrVu35nXs2DFx/fXXrwUYNmzYmGnTpi0BmDhx4rAJEybsmDlzZsdevXpVvfzyy6UdO3bUhq6RmTNnFp111lmDq6urpaamhqeeeuqzvffeO1ZvQuphRWQ+zJw5s+imm27qM2PGjMWLFi2af/fddy8/8sgjd3z66acLFyxYMP+kk07adP311/dOrl9aWlo0Y8aMxR9++OGCm266qW8sFpO33nqr5Jlnnuk2Z86c+dOnT18ya9asDnX3U15eLhdeeOGgqVOnls6dO3fBunXraos/xo4dW/nhhx8uXLBgwfxrrrlm1a9//ev+RUVF+pvf/Gb1Mcccs3nhwoXzf/KTn2z+7W9/2+fQQw/dNmfOnAVvvfXWoquuuqr/tm3b6j3Pzz//fOmAAQNiCxcunH/UUUftqG+dpPnz55c8++yzny9YsGDe1KlTu5aWluYvW7Ys/8Ybb+z77rvvLvzwww8XLl68uDi5/o033tjnv//97+JFixbNf+mll0ob23ZbUd91cMEFFwycPHnyxsWLF8+fNGnSxgsuuGBAcv2tW7fmffLJJwtvvPHGFaeeeurQyy67bO2SJUvmLVy4sPjdd98tBqioqIiMHz9+Z2lp6bwDDzxw+xVXXNE3dZ+xWEwuuuiigc8999xn8+bNW3DGGWdsuPTSS/udddZZm/faa6/yKVOmfL5w4cL5+fn51LcewNlnnz3o1ltvXb5o0aL5TR2jXRPpe+SRR5bvvvvu1TNmzFh8ySWXrKv7PW3sveedd96Aiy++eO3cuXMXPPPMM5+df/75gwCuuOKKvt/4xjd2lJaWzjv++OO3rFmzpsDP/q+55pqv9EVJtXz58qKLLrpoXWlp6bzddtstMWXKlK7Q8DVyxx139PzpT3+6duHChfNnz569YPDgwVW+PxjaWA7GT04jCC+//HLnY445ZnOfPn3iAL169Up88MEHxT/4wQ/6r1+/Pr+qqioyYMCA2qj+ne98Z0txcbEWFxfHu3XrVr1y5cq8119/veP3vve9LZ06dapJrlN3P59++mlR//79Y8l/CJMnT95477339gTYtGlTdNKkSYOXLl1aJCJaXV0t9aX1jTfe6Pzyyy93uf3223uD9wNVWlpasN9++1W25DM46KCDtnXv3j0BMHTo0MrPPvuscN26dXkHHHDA9uQ/7hNOOGHT4sWLiwDGjx+/Y/LkyYNOPPHEzZMnT97ckn3Xp6mcRhDquw4++eSTDv/5z38+A7jgggs2XXfddbU/KN///ve3RCIR9ttvv/Lu3btXT5gwoQJg+PDhFZ999lnhN7/5zYpIJMI555yzCeDHP/7xxhNOOGGXOrfZs2cXLlmypPiwww4bDlBTU0PPnj2/UgzS0HobNmyIbt++PTpx4sQdyX289tprza6zS9XargmAxnIa2eD3e5r0zjvvdF6yZEltEN6xY0d069atkffee6/T008/XQpw6qmnbj3vvPMSmUhfv379Yt/85jcrAMaNG1e+dOnSwsaukW984xs7b7rppj4rV64sOPXUUzenk3uBNhZgWpMLL7xw4C9+8YuyyZMnb502bVqn66+/vvafZ2FhYW1+NhqNEo/HG73I/Lj88sv7ffvb394+ffr0zxYtWlRw2GGHjahvPVXlySefLB07dmxaFwJAXl6eJhLedVxeXr5LmpPFHADRaLTJL84jjzyy/LXXXuswderUhdoQfgAADNhJREFU3fbff//RH3300fzevXtn5EvSVhQVFSl410Dq5xeJRBq8JkR2na2qMnTo0IpPP/10YWP7ami9DRs2RJt9ANg1kS6/39MkVeXjjz9eUFJSkrGuGHl5eVpTU1M7HYvFas9L3XNWUVHRaCnW+eefv+lb3/rWzmeeeWa3o48+etgdd9yx7Nhjj93uNy1WRObDd7/73W3PP/9817KysijA2rVro9u3b48OHDiwGuCBBx7o3tQ2DjvssB0vvvhilx07dsjmzZsj06dP71J3nX333bdy1apVBfPmzSsEeOyxx7oll23bti3av3//KoC77767R3J+586dEzt27Kg9j4ceeui2v/zlL72SF9g777xT+++oKQMGDIh98MEHHQAefvjhRlswARx88ME733///U5lZWXRWCwmzzzzTO175s2bV3jYYYftvPXWW1d37do1/vnnnzeYxW8r6rsOxo0bt/Pee+/tCnD33Xd3Gz9+fKPFSnXV1NSQbC32wAMPdJ8wYcIuX9599tmnctOmTXmvvPJKB/B+LGbOnFkE0LFjx8TWrVujja3Xo0ePRKdOnRIvv/xyR7ePbqTBron0NPQ9bchBBx207YYbbqhtrZcsOj3ggAO2J39Xnnjiic7btm3z/Udh0KBBsU8//bQDwNtvv12yatWqwsbWb+wamT9/fsGoUaNiV1111brvfve7Wz799FPfvydgAcaX8ePHV15yySVrvvWtb40c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\n",
|
||
"text/plain": [
|
||
"<Figure size 432x288 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {
|
||
"needs_background": "light"
|
||
},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"df.plot(x='timestep',y=['candidate_funds','active_funds','completed_funds', 'killed_funds', 'failed_funds'])\n",
|
||
"plt.title('Proposal Status weighted by funds requested')\n",
|
||
"plt.ylabel('Funds worth of proposals')\n",
|
||
"plt.legend(ncol = 3,loc='upper center', bbox_to_anchor=(0.5, -0.15))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 24,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"nets = df.network.values"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 25,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"K = 0\n",
|
||
"N = 100\n",
|
||
"\n",
|
||
"#snap_plot(nets[K:N], size_scale = 1/10,savefigs=True)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 26,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Run the following code , without the #, in the images/snap folder to make a movie\n",
|
||
"# ffmpeg -r 10 -i %01d.png -vcodec mpeg4 -y movie.mp4"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 27,
|
||
"metadata": {
|
||
"scrolled": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<video width=\"400\" height=\"400\" controls>\n",
|
||
" <source src=\"images/snap/movie.mp4\" type=\"video/mp4\">\n",
|
||
"</video>\n"
|
||
],
|
||
"text/plain": [
|
||
"<IPython.core.display.HTML object>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"%%HTML\n",
|
||
"<video width=\"400\" height=\"400\" controls>\n",
|
||
" <source src=\"images/snap/movie.mp4\" type=\"video/mp4\">\n",
|
||
"</video>"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Conclusion\n",
|
||
"\n",
|
||
"We have created a simplified conviction voting model that illustrates the state objects, and provides descriptions of how the model fits together. In subsequent notebooks, we will expand the model to introduce additional complexity to more fit real world implementations. "
|
||
]
|
||
}
|
||
],
|
||
"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.7.5"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 2
|
||
}
|