{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Policy Iteration\n", "\n", "由策略评估价值,根据价值改进策略...反反复复,这叫“策略迭代”。\n", "\n", "算法如下。\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example 4.2 Jack’s Car Rental\n", "\n", "Jack manages two locations for a nationwide car rental company. Each day, some number of customers arrive at each location to rent cars. If Jack has a car available, he rents it out and is credited 10 dollars by the national company. If he is out of cars at that location, then the business is lost. Cars become available for renting the day after they are returned. To help ensure that cars are available where they are needed, Jack can move them between the two locations overnight, at a cost of 2 dollars per car moved. We assume that the number of cars requested and returned at each\n", "location are Poisson random variables, meaning that the probability that the number is $n$ is $\\frac{\\lambda^n}{n!}e^{-\\lambda}$, where $\\lambda$ is the expected number. Suppose $\\lambda$ is 3 and 4 for rental requests at the first and second locations and 3 and 2 for returns. To simplify the problem slightly, we assume that there can be no more than 20 cars at each location (any additional cars are returned to the nationwide company, and thus disappear from the problem) and a maximum of five cars can be moved from one location to the other in one night. We take the discount rate to be # = 0.9 and formulate this as a continuing finite MDP, where the time steps are days, the state is the number of cars at each location at the end of the day, and the actions are the net numbers of cars moved between the two locations overnight." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2020-01-16T13:04:57.490129Z", "start_time": "2020-01-16T13:04:52.199283Z" } }, "outputs": [], "source": [ "#######################################################################\n", "# Copyright (C) #\n", "# 2016 Shangtong Zhang(zhangshangtong.cpp@gmail.com) #\n", "# 2016 Kenta Shimada(hyperkentakun@gmail.com) #\n", "# 2017 Aja Rangaswamy (aja004@gmail.com) #\n", "# Permission given to modify the code as long as you keep this #\n", "# declaration at the top #\n", "#######################################################################\n", "\n", "import matplotlib\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import seaborn as sns\n", "from scipy.stats import poisson\n", "\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2020-01-16T13:07:49.225095Z", "start_time": "2020-01-16T13:07:49.220114Z" } }, "outputs": [], "source": [ "# maximum # of cars in each location\n", "MAX_CARS = 20\n", "\n", "# maximum # of cars to move during night\n", "MAX_MOVE_OF_CARS = 5\n", "\n", "# expectation for rental requests in first location\n", "RENTAL_REQUEST_FIRST_LOC = 3\n", "\n", "# expectation for rental requests in second location\n", "RENTAL_REQUEST_SECOND_LOC = 4\n", "\n", "# expectation for # of cars returned in first location\n", "RETURNS_FIRST_LOC = 3\n", "\n", "# expectation for # of cars returned in second location\n", "RETURNS_SECOND_LOC = 2\n", "\n", "DISCOUNT = 0.9\n", "\n", "# credit earned by a car\n", "RENTAL_CREDIT = 10\n", "\n", "# cost of moving a car\n", "MOVE_CAR_COST = 2\n", "\n", "# all possible actions\n", "actions = np.arange(-MAX_MOVE_OF_CARS, MAX_MOVE_OF_CARS + 1)\n", "\n", "# An up bound for poisson distribution\n", "# If n is greater than this value, then the probability of getting n is truncated to 0\n", "POISSON_UPPER_BOUND = 11\n", "\n", "# Probability for poisson distribution\n", "# @lam: lambda should be less than 10 for this function\n", "poisson_cache = dict()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2020-01-16T13:08:00.174475Z", "start_time": "2020-01-16T13:08:00.170485Z" } }, "outputs": [], "source": [ "def poisson_probability(n, lam):\n", " global poisson_cache\n", " key = n * 10 + lam\n", " if key not in poisson_cache:\n", " # 设置字典,防止重复求泊松分布\n", " # key 相当于一种哈希编码 Hash(n)\n", " poisson_cache[key] = poisson.pmf(n, lam)\n", " return poisson_cache[key]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2020-01-16T13:08:11.358555Z", "start_time": "2020-01-16T13:08:11.349579Z" } }, "outputs": [], "source": [ "def expected_return(state, action, state_value, constant_returned_cars):\n", " \"\"\"\n", " @state: [# of cars in first location, # of cars in second location]\n", " @action: positive if moving cars from first location to second location,\n", " negative if moving cars from second location to first location\n", " @stateValue: state value matrix\n", " @constant_returned_cars: if set True, model is simplified such that\n", " the # of cars returned in daytime becomes constant\n", " rather than a random value from poisson distribution, which will reduce calculation time\n", " and leave the optimal policy/value state matrix almost the same\n", " \"\"\"\n", " # initailize total return\n", " returns = 0.0\n", "\n", " # cost for moving cars\n", " returns -= MOVE_CAR_COST * abs(action)\n", "\n", " # moving cars\n", " NUM_OF_CARS_FIRST_LOC = min(state[0] - action, MAX_CARS)\n", " NUM_OF_CARS_SECOND_LOC = min(state[1] + action, MAX_CARS)\n", "\n", " # go through all possible rental requests\n", " for rental_request_first_loc in range(POISSON_UPPER_BOUND):\n", " for rental_request_second_loc in range(POISSON_UPPER_BOUND):\n", " # probability for current combination of rental requests\n", " prob = poisson_probability(rental_request_first_loc, RENTAL_REQUEST_FIRST_LOC) * \\\n", " poisson_probability(rental_request_second_loc, RENTAL_REQUEST_SECOND_LOC)\n", "\n", " num_of_cars_first_loc = NUM_OF_CARS_FIRST_LOC\n", " num_of_cars_second_loc = NUM_OF_CARS_SECOND_LOC\n", " '''\n", " 注意作者的编程习惯,全部大写表示当前客观变量\n", " (当前2个 LOC 各客观存在这么多车)\n", " 小写表示临时变量,用于计算\n", " '''\n", "\n", " # valid rental requests should be less than actual # of cars\n", " valid_rental_first_loc = min(num_of_cars_first_loc, rental_request_first_loc)\n", " valid_rental_second_loc = min(num_of_cars_second_loc, rental_request_second_loc)\n", "\n", " # get credits for renting\n", " reward = (valid_rental_first_loc + valid_rental_second_loc) * RENTAL_CREDIT\n", " num_of_cars_first_loc -= valid_rental_first_loc\n", " num_of_cars_second_loc -= valid_rental_second_loc\n", " \n", " '''\n", " 这里之所以要用2层 for\n", " 是为了遍历状态,求期望\n", " '''\n", "\n", " if constant_returned_cars:\n", " # get returned cars, those cars can be used for renting tomorrow\n", " returned_cars_first_loc = RETURNS_FIRST_LOC\n", " returned_cars_second_loc = RETURNS_SECOND_LOC\n", " num_of_cars_first_loc = min(num_of_cars_first_loc + returned_cars_first_loc, MAX_CARS)\n", " num_of_cars_second_loc = min(num_of_cars_second_loc + returned_cars_second_loc, MAX_CARS)\n", " returns += prob * (reward + DISCOUNT * state_value[num_of_cars_first_loc, num_of_cars_second_loc])\n", " '''\n", " 这里很重要\n", " 作者在这个函数开头便说明了:\n", " 还车数当成常数,对结果没有影响\n", " 但若是还使用泊松分布生成返回值,则 O(n^4)\n", " 极大地影响了运行时间\n", " '''\n", " else:\n", " for returned_cars_first_loc in range(POISSON_UPPER_BOUND):\n", " for returned_cars_second_loc in range(POISSON_UPPER_BOUND):\n", " prob_return = poisson_probability(\n", " returned_cars_first_loc, RETURNS_FIRST_LOC) * poisson_probability(returned_cars_second_loc, RETURNS_SECOND_LOC)\n", " num_of_cars_first_loc_ = min(num_of_cars_first_loc + returned_cars_first_loc, MAX_CARS)\n", " num_of_cars_second_loc_ = min(num_of_cars_second_loc + returned_cars_second_loc, MAX_CARS)\n", " prob_ = prob_return * prob\n", " returns += prob_ * (reward + DISCOUNT *\n", " state_value[num_of_cars_first_loc_, num_of_cars_second_loc_])\n", " return returns" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "ExecuteTime": { "end_time": "2020-01-16T14:12:29.413904Z", "start_time": "2020-01-16T14:12:29.404927Z" } }, "outputs": [], "source": [ "def figure_4_2(constant_returned_cars=True):\n", " value = np.zeros((MAX_CARS + 1, MAX_CARS + 1))\n", " policy = np.zeros(value.shape, dtype=np.int)\n", "\n", " iterations = 0\n", " _, axes = plt.subplots(2, 3, figsize=(40, 20)) # 注意这里\n", " plt.subplots_adjust(wspace=0.1, hspace=0.2) # 这里的 subplot 技巧\n", " axes = axes.flatten()\n", " while True:\n", " fig = sns.heatmap(np.flipud(policy), cmap=\"YlGnBu\", ax=axes[iterations])\n", " fig.set_ylabel('# cars at first location', fontsize=30)\n", " fig.set_yticks(list(reversed(range(MAX_CARS + 1))))\n", " fig.set_xlabel('# cars at second location', fontsize=30)\n", " fig.set_title('policy {}'.format(iterations), fontsize=30)\n", "\n", " # policy evaluation (in-place)\n", " while True:\n", " old_value = value.copy()\n", " for i in range(MAX_CARS + 1):\n", " for j in range(MAX_CARS + 1):\n", " new_state_value = expected_return([i, j], policy[i, j], value, constant_returned_cars)\n", " value[i, j] = new_state_value\n", " '''\n", " 注意这里的编程习惯\n", " 使用 new_state_value 过渡\n", " 增强易读性\n", " '''\n", " max_value_change = abs(old_value - value).max()\n", " print('max value change {}'.format(max_value_change))\n", " '''\n", " 直到评估出当前策略对应的 最优价值 才结束\n", " '''\n", " if max_value_change < 1e-4:\n", " break\n", "\n", " # policy improvement\n", " policy_stable = True\n", " for i in range(MAX_CARS + 1):\n", " for j in range(MAX_CARS + 1):\n", " old_action = policy[i, j]\n", " action_returns = []\n", " for action in actions:\n", " if (0 <= action <= i) or (-j <= action <= 0):\n", " action_returns.append(expected_return([i, j], action, value, constant_returned_cars))\n", " else:\n", " action_returns.append(-np.inf)\n", " new_action = actions[np.argmax(action_returns)] # 注意这句\n", " policy[i, j] = new_action\n", " if policy_stable and old_action != new_action: \n", " # 确认 policy_stable == True \n", " # 以保证程序安全性,如果为 False 就没必要考虑置为 False 了\n", " policy_stable = False\n", " print('policy stable {}'.format(policy_stable))\n", "\n", " if policy_stable:\n", " fig = sns.heatmap(np.flipud(value), cmap=\"YlGnBu\", ax=axes[-1])\n", " fig.set_ylabel('# cars at first location', fontsize=30)\n", " fig.set_yticks(list(reversed(range(MAX_CARS + 1))))\n", " fig.set_xlabel('# cars at second location', fontsize=30)\n", " fig.set_title('optimal value', fontsize=30)\n", " break\n", "\n", " iterations += 1\n", " \n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "ExecuteTime": { "end_time": "2020-01-16T14:13:36.797660Z", "start_time": "2020-01-16T14:12:30.598734Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "max value change 196.62783361783852\n", "max value change 134.98823859766583\n", "max value change 91.41415360228919\n", "max value change 67.17097732555729\n", "max value change 51.29055484635097\n", "max value change 38.49091000659837\n", "max value change 29.406139835126424\n", "max value change 25.7210573245398\n", "max value change 22.381602293031023\n", "max value change 19.40385808254939\n", "max value change 16.77577350573091\n", "max value change 14.47251552455765\n", "max value change 12.464101852186843\n", "max value change 10.719367983418692\n", "max value change 9.20806226246873\n", "max value change 7.9019189666795455\n", "max value change 6.775146571130392\n", "max value change 5.8045764710083745\n", "max value change 4.969618520007145\n", "max value change 4.252112693842776\n", "max value change 3.6361309524054946\n", "max value change 3.107761240497666\n", "max value change 2.654891834022692\n", "max value change 2.26700589940549\n", "max value change 1.9349911763441128\n", "max value change 1.650966802154585\n", "max value change 1.4081276418079938\n", "max value change 1.2006055672075036\n", "max value change 1.02334664187498\n", "max value change 0.8720029351049448\n", "max value change 0.7428376083516355\n", "max value change 0.6326419232035505\n", "max value change 0.5386628774742235\n", "max value change 0.45854026040933604\n", "max value change 0.3902520158000584\n", "max value change 0.33206690395809346\n", "max value change 0.28250355471067223\n", "max value change 0.2402951004837064\n", "max value change 0.20435866938208846\n", "max value change 0.1737691018435612\n", "max value change 0.14773633074884174\n", "max value change 0.12558593365213255\n", "max value change 0.10674242749371388\n", "max value change 0.09071493100810812\n", "max value change 0.07708486873008269\n", "max value change 0.06549543334426744\n", "max value change 0.05564256088280217\n", "max value change 0.047267206266042194\n", "max value change 0.040148735572074656\n", "max value change 0.03409927655258116\n", "max value change 0.028958890796900505\n", "max value change 0.02459144993093787\n", "max value change 0.02088111467702447\n", "max value change 0.01772932984539466\n", "max value change 0.0150522606048753\n", "max value change 0.012778605996800252\n", "max value change 0.010847734796413988\n", "max value change 0.00920809667559297\n", "max value change 0.007815868406908066\n", "max value change 0.006633800647819044\n", "max value change 0.005630235829983121\n", "max value change 0.0047782719802853535\n", "max value change 0.004055050928627679\n", "max value change 0.003441152547054571\n", "max value change 0.002920079317334512\n", "max value change 0.0024778178350288727\n", "max value change 0.0021024658457236\n", "max value change 0.0017839150607983356\n", "max value change 0.0015135814573454809\n", "max value change 0.0012841759864272717\n", "max value change 0.0010895096651211134\n", "max value change 0.0009243279118891223\n", "max value change 0.0007841697620847299\n", "max value change 0.000665248240920846\n", "max value change 0.0005643487139082026\n", "max value change 0.00047874254232738167\n", "max value change 0.00040611372588728045\n", "max value change 0.0003444966009737982\n", "max value change 0.000292222921245866\n", "max value change 0.0002478769196159192\n", "max value change 0.00021025715051337102\n", "max value change 0.00017834408060934948\n", "max value change 0.00015127258103575514\n", "max value change 0.00012830856951495662\n", "max value change 0.00010882917825938421\n", "max value change 9.230592559106299e-05\n", "policy stable False\n", "max value change 72.93565506480746\n", "max value change 5.771584637253568\n", "max value change 2.1472970104344995\n", "max value change 1.070365975080108\n", "max value change 0.8619106467957636\n", "max value change 0.7181428891676092\n", "max value change 0.611364010490604\n", "max value change 0.5169059906119742\n", "max value change 0.4358272831748309\n", "max value change 0.3670218562992318\n", "max value change 0.30890785349942007\n", "max value change 0.259927010978231\n", "max value change 0.21868429274547907\n", "max value change 0.18397356667821896\n", "max value change 0.15476712387498992\n", "max value change 0.1301950284682789\n", "max value change 0.10952318723241206\n", "max value change 0.09213308201026393\n", "max value change 0.07750397308279844\n", "max value change 0.065197614125168\n", "max value change 0.054845259444334715\n", "max value change 0.046136675532011395\n", "max value change 0.038810871455780216\n", "max value change 0.03264828952961807\n", "max value change 0.02746423075132043\n", "max value change 0.02310332179803254\n", "max value change 0.019434859485443212\n", "max value change 0.016348893962117472\n", "max value change 0.013752933586260951\n", "max value change 0.011569172929284832\n", "max value change 0.009732160858675343\n", "max value change 0.008186838889457704\n", "max value change 0.006886890992063854\n", "max value change 0.005793355427499591\n", "max value change 0.004873456997415815\n", "max value change 0.004099624717810002\n", "max value change 0.003448665460666689\n", "max value change 0.0029010688248831684\n", "max value change 0.0024404223665897007\n", "max value change 0.002052919695017863\n", "max value change 0.0017269466670768452\n", "max value change 0.0014527332954799022\n", "max value change 0.0012220609166320173\n", "max value change 0.001028015870474519\n", "max value change 0.0008647822832017482\n", "max value change 0.000727467756007627\n", "max value change 0.0006119567266296144\n", "max value change 0.0005147871261783621\n", "max value change 0.0004330466088617868\n", "max value change 0.00036428526584586507\n", "max value change 0.0003064422000988998\n", "max value change 0.0002577837491344326\n", "max value change 0.00021685153535599966\n", "max value change 0.00018241874482782805\n", "max value change 0.00015345336976224644\n", "max value change 0.00012908726307614415\n", "max value change 0.00010859013127628714\n", "max value change 9.134763803331225e-05\n", "policy stable False\n", "max value change 4.7865793901779625\n", "max value change 3.2947349349497017\n", "max value change 2.2411823866665372\n", "max value change 1.616931343950455\n", "max value change 1.1197864003121367\n", "max value change 0.7204544260453076\n", "max value change 0.443826224180043\n", "max value change 0.270089591177225\n", "max value change 0.16639579119885184\n", "max value change 0.1097569388878128\n", "max value change 0.09306955083684443\n", "max value change 0.07883243113371918\n", "max value change 0.06673516197616891\n", "max value change 0.05647744756430484\n", "max value change 0.04778890580797679\n", "max value change 0.04043363544485601\n", "max value change 0.03420889623009771\n", "max value change 0.02894175601244342\n", "max value change 0.0244852782967655\n", "max value change 0.020714866829109724\n", "max value change 0.01752498189301832\n", "max value change 0.014826276628639334\n", "max value change 0.01254313570910881\n", "max value change 0.010611575530163009\n", "max value change 0.008977459770164842\n", "max value change 0.00759498609147613\n", "max value change 0.006425404193464601\n", "max value change 0.005435930515432119\n", "max value change 0.004598829696703888\n", "max value change 0.00389063733302919\n", "max value change 0.003291502340118768\n", "max value change 0.0027846305547996053\n", "max value change 0.0023558140037494013\n", "max value change 0.0019930326484427496\n", "max value change 0.0016861174636346732\n", "max value change 0.0014264653930240456\n", "max value change 0.001206798198722936\n", "max value change 0.0010209584465883381\n", "max value change 0.0008637369118673632\n", "max value change 0.0007307265586291578\n", "max value change 0.0006181990110007973\n", "max value change 0.0005230000359119913\n", "max value change 0.00044246113805002096\n", "max value change 0.00037432475153309497\n", "max value change 0.00031668096374914967\n", "max value change 0.0002679139766428307\n", "max value change 0.00022665681694888917\n", "max value change 0.00019175301355289776\n", "max value change 0.00016222418821598694\n", "max value change 0.00013724262737468962\n", "max value change 0.00011610807808892787\n", "max value change 9.822812404536307e-05\n", "policy stable False\n", "max value change 0.5643315459673204\n", "max value change 0.19760617142037518\n", "max value change 0.10013580858492332\n", "max value change 0.06076229858263105\n", "max value change 0.04080851176706801\n", "max value change 0.02724975517776329\n", "max value change 0.01637959485265128\n", "max value change 0.00917172069227945\n", "max value change 0.0049277609952014245\n", "max value change 0.0025834353657501197\n", "max value change 0.0013420404746966597\n", "max value change 0.0007016294298409775\n", "max value change 0.00037558255417025066\n", "max value change 0.00020989058543818828\n", "max value change 0.00013043237390775175\n", "max value change 0.00011051700198549952\n", "max value change 9.361574132071837e-05\n", "policy stable False\n", "max value change 0.04079438312567163\n", "max value change 0.010408227162770345\n", "max value change 0.005110707129347247\n", "max value change 0.0032318390198042835\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "max value change 0.0021719229242762594\n", "max value change 0.0013911772695109903\n", "max value change 0.0008154469392138708\n", "max value change 0.0004459807777266178\n", "max value change 0.0002340408432246477\n", "max value change 0.00012037610895276885\n", "max value change 6.173777182993945e-05\n", "policy stable True\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAACMcAAAScCAYAAACFwHqkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xu4bXdZH/rvu7O5h0u4hRAuQULaKiKXDdhaJdwMASVWoIGcgxAjqZdo1QrS1oNgWwUKpYgoBpAEUIEDKLcAB4UogkoQQkS8pRggXCqBcIlyS/KeP+bc3TPLtfZea661xpxrjs/HZzxzzDF+Y/zeuX0e/e6Rd/9GdXcAAAAAAAAAAGAV7Vt0AQAAAAAAAAAAsFs0xwAAAAAAAAAAsLI0xwAAAAAAAAAAsLI0xwAAAAAAAAAAsLI0xwAAAAAAAAAAsLI0xwAAAAAAAAAAsLI0xwCjU1XnVVVPtxPWOX/CzPnzBi8QAADYEbI/AACMg+wPwJHsX3QBAAyrqv5lkicleUCS45J8NcnfJfmdJC/q7isWWB4AALBN0/8YcJ8kB6af90lyy+npP+jukxdSGAAAsGOqan+Sk5M8JMn9kvyLTHL/N5L87yQXJXlVkjd19zULKhNgaWiOARiJqqokz03yk0lq5tSNkhyT5N5JzqmqM7r7nQsoEQAA2Kaq+vEkv7zoOgAAgN1TVQ9M8tocaoKfdf0k3zTdTk9yUVU9rrv/14AlAiwdzTEAa3T3Zblu88iq+KUkPzXd/4ckL03yviRHJ3lUkocmOTbJG6rqO7v74oVUCQAAA1nR7H/Umu9fSfK3Se6xgFoAAGAprGD2Pz6HGmM+n+T3kvxJkk8nuV4mK8n8QJKbJblvkndV1f26+zMLqBVgKWiOARiBqrpXkqdMv34xyXd19yUzQ369qp6e5OczaZY5t6ru3909bKUAAMA2XZbkhUn+bLp9JMkdMnmVKgAAsDr+PJN/FPv67v7amnOvqKpnJnl7km9Jcsckz0ryhGFLBFge+xZdAACDeFoOdcX/pzWNMQc9I5OVZJJJJ/nDhygMAADYOd39u919Tne/rLsv6e6rF10TAACw496c5Nu6+7fXaYxJknT3J5M8dubQY6rqxoNUB7CENMcAu6aqTq6qnm5Pnx771qo6t6r+V1V9pao+W1W/V1WP28J971hVz6yqD1TV56vqa1X1yap6U1U9sarWLiO+1bpPmKn7vE2MP1BVv1xVH6qqz1XVN6Z1/WlVPbeq7j8z9qiqunx6789W1fU3cf97z9Tzqjl+z02TnDr9+qUk6/6m6SoxL5g5dPpW5wIAYJxk/+XI/gAAsNtk/+XI/t39hc2s/N7dH07yV9OvN0py4lbnAlgVmmOAwVTV45NclORJSb4pyQ2T3DrJg5P8VlW9uapueIR7/Lskf53kZ5PcK8kxSa6f5PZJvifJy5J8sKpO2J1fcZ1ablJVv5nJb/rxJPfI5B2f+6d13S/JTyf5k6q6c5J09zVJXjq9xa2TfN8mpnrSzP6L5yj1AUluMN3/w+7+x8OMffvM/qkbjgIAgMOQ/ReW/QEAYFCy/57I/l+e2b/RLs8FsLT2L7oAYDTum+Q/Tfd/I8kfJrlmevysJDdJ8ogkr0zy6PVuMA3IL5o59KYkb0nyhSQnJTkzyV2SfGuSP6qqe3X3Z3f8l0xquWGSd03rT5KvJnlNkvckuTLJzZLcPZNXE52UQ680SiZB9z8nOSqTAPyaw8xz4yRnTL9+NMk75yj37jP7f3a4gd392ar6WJI7J7l1Vd22u/9+jjkBABgv2f+QobM/AAAMSfY/ZCmz/3QVm7vNHPrYbs0FsOw0xwBDeXgm3cnf3d1/MnP8lVX1K0kuzKQL/FFV9ajuft3sxdOO8OdNv16T5Izufs2aMc9J8v9mEraPT/KrSR6z479k4n/kUED+UJJHdvfH1xn3U1X1oEyCfJKkuy+vqguSfG+SB1fVXbr77zaY5/RMAneSvGQzyySu46SZ/cs2Mf5gc8zBazXHAACwFbL/1AKyPwAADEn2n1ri7P9vk9xiuv+B7v7MLs4FsNS8VgkY0pPXBOQkSXf/bSZd5Af9zDrX/kQOLff33LUBeXqfr2TSbf3p6aFHVdVJa8dtV1XdKYeWPPxcklM3CMgH63pnd39hzeGDnfCV6/72tX5o+nl1JktHzuMWM/tXbGL85za4FgAANkv2P2TI7A8AAEOT/Q9ZquxfVcckefbMoV/arbkA9gLNMcBQrsxhQl53vy3JR6Zfv72qbrdmyPdPP69O8tzD3OdLmXSOJ5MAupl3e27V6Tm08tYLuvvThxu8gbfl0PKFZ1bVUWsHVNU3J/lX069v2kZH99Ez+1/dxPivzOzfdM45AQAYL9n/uobM/gAAMCTZ/7qWJvtP535VkuOmh97S3a/djbkA9grNMcBQ3t3dXz/CmNn3ah5cujBVddsces3Ph7r7SK/5+f9m9u+/+RI37V/P7L9xnht097WZvIM0mSwr+Yh1hj1pZv/F65yfa+odug8AAGxE9p+xwOwPAAC7TfafsWTZ//lJvnu6//EkT9zFuQD2BM0xwFAu3eKY28/sHzez/zebuM/smOM2HDW/O8zs/+U27vPSJN+Y7v/Q7ImqukGSx0+/fiLJ27cxz1Uz+zfacNT6Y768jXkBABgn2f+fGir7AwDAkGT/f2rh2b+q/luSH5t+/d9JHtrdV+zGXAB7ieYYYCj/uIkx/zCzP/sqoJtuMGYjs80gu/FaoJtNP6/p7s28pmhd0+USD3agP7yqjp85/W+S3Gq6/9Jpx/m8Zt97eqsNR60/Zu07UwEA4Ehk/zUGzP4AADAk2X+NRWf/qvq5JP9p+vWKJA/p7s00HwGsPM0xwFBuvIkxN5nZnw26X95gzEZmA/ZurHzypennUVV1w23e60UH75XkzJnjB5dWvDbJb2xzjtnge8Imxt95Zl9oBgBgq2T/9Q2R/QEAYEiy//oWkv2r6ilJ/sv065WZrBjz4Z2eB2Cv0hwDDOXELY751Mz+p2f277aJ+8yO+dSGo+Z3+cz+v9jmvX4/h5aV/MGa+KYkD5wee2t3f2Kbc8yG3wOHG1hVt8mh5pgrNvGeVwAAWEv2X98Q2R8AAIYk+69v8OxfVT+V5FnTr19Kckp3X7yTcwDsdZpjgKH866q6/hHGPHBm/6KDO9MGjY9Nv95z2sBxON89s/++zZe4ae+e2X/kdm7U3Z3k3OnXuyR5SCbvIa3psRdv5/5TFyb52nT/u6rqRocZe8rM/lt3YG4AAMZH9l/HQNkfAACGJPuvY+jsX1U/luR/TL9+OcnDuvuiw1wCMEqaY4Ch3DLJEzY6WVXfneRbpl//ePpezlmvm37uT/KTh7nPTZP86PRrJ/mduao9vFcn+cZ0/8er6rht3u9lOdS88iNJnjjd/3SSt2zz3unuq5JcMP16s5n7X0dVVZJzZg69ertzAwAwSrL/xnY1+wMAwMBk/40Nkv2r6klJXjD9+g9JHt7df7xT9wdYJZpjgCE9p6ruu/ZgVd01132/5nPXufYFSb4y3X9KVT1qnfvcMMkrk9x+euh13f232yv5n5oud3iws/tWSS6oqjttNL6qHlBVtzjM/a7Iob8E/JskB0P3y7r76h0oOZm8Z7Sn+79UVfdYZ8zTktx/un9RDjXUAADAVsn+699viOwPAABDkv3Xv9+uZ/+qenySF2WyIs0/Jvme7v6jnbg3wCrav+gCgNG4IMlDk7ynqs7PZInCa5LcN8lZSY6ejnt9d79u7cXdfdn0nZkvyuT/dr22qt4wve8XMnnf6A8m+abpJZ9M8mO793PyH6a13zfJPZP8dVW9Osl7k3w+yU0z6Yh/eCbvJ73LtM6N/HqSM2a+d5KX7FSx3f3Bqnp2kp9NcvMk762ql2Sy/OTRSR6VQ8tSXpXk7OnSjwAAsFWy/wKzf5JU1X9dc+jmM/t3Wef8B7r79TtZAwAAoyD7Lyj7V9WpmaxOc3AhhN9Icouq+r4jXPqB7v74TtQAsNeU//YJ7JaqOjnJu6Zfn5Hk0kyC3w02uOSCJI/q7q8e5p4/nOR5SW54mKk/nOR7u/uyDe5xXg4t9XiXteOq6oQkfzf9en53P3GD+xydSfh89GFqOejORwqcVfWRTAJ1kryju7/7cOO3avrapOdmsjxlbTDs75M8rrvfuZNzAwCw2mT/61iG7L/Vhz0b/nYAAJgl+1/HwrJ/VT09yc/PcemZ3X3eTtQAsNd4rRIwmO5+ZSYd1y9J8tEkX82k2/qdSf6v7n7E4QLy9B4vSnJSkmcluTiTruyvZ/KezguSnJnknhsF5J3U3Vd192OSfEeSc5P8dZIvJ7k6yeeS/HGSZye51yY7sX9vZv/FG46aU0/8dCb1npdD/zv4QpIPZPJapW/RGAMAwHbJ/ke0q9kfAACGIvsfkewPsCSsHAPsmrUd5N399MVVs9yqal+Sy5LcMclnk9yhu7++0KIAAGCTZP/Nk/0BANjLZP/Nk/0BlouVYwCWwyMyCchJ8jIBGQAAVpbsDwAA4yD7AywRzTEAC1ZVR2XySqNksjTjry2wHAAAYJfI/gAAMA6yP8Dy2b/oAgDGqKq+NcnxSW6Z5IlJDkxPnTfEe1MBAIBhyP4AADAOsj/ActMcA7AY/yHJE9YcuyzJzw5fCgAAsItkfwAAGAfZH2CJLf1rlarq5lX1zKr6q6r63HT7y+mxWyy6PoBtuibJ32WypOK3d/fnF1wPACyM7A+sONkfAKZkf2DFyf4AS6i6e9E1HFZVvT3JO5Oc392fmR67XSadlw/p7oducN3ZSc5OkpPOefJ9bn/qaQNVDAAwv3c9/Dtq0TUcdKM7PW7Xg+JXPv7bS/N7WbydyP77jzlwn/1HnzhQxQCweXe47b8abK5rv/m2g8zzjfvcbpB5kuSudxtmAezvut1XBpknSZ5x74csTRaW/RnavNl/Om5l8/9xt77vYHPtu+sw/79iSFff/TaLLmHH3fJuN150CQCDu/vx1y66hF3x8gc8YGny8G7n/2XN/ku/ckySE7r7WQcDcpJ092e6+1lJ7rTRRd19bncf6O4DGmMAAGBP2Hb2X6UH4wAAsMLmyv7TcfI/AABbNsw/udiej1XVUzLpIP/fSVJVxyZ5YpJPLLIwAIBVVrUX+qhZMbI/AMACyP4sgOwPALAgY83/e+FXn57kVkn+oKqurKrPJ7kwyS2T/NtFFgYAAOwo2R8AAMZB9gcAYFBLv3JMd19ZVS9L8o4kf9LdVx08V1UPS/K2hRUHALDCak/0UbNKZH8AgMWQ/Rma7A8AsDhjzf9L/6ur6ieSvCHJOUk+XFWnzZz+xcVUBQAA7DTZHwAAxkH2BwBgaEu/ckySJyW5T3dfVVUnJHltVZ3Q3c9PUgutDABghY31vaMslOwPALAAsj8LIPsDACzIWPP/XmiOOergkordfVlVnZxJUL5zhGQAAFglsj8AAIyD7A8AwKD2QkvQZ6rqnge/TAPz9yS5dZJvXVhVAAArrmrfrm+whuwPALAAsj8LIPsDACzIWLP/8lZ2yA8k+czsge6+urt/IMl3LaYkAABgF8j+AAAwDrI/AACDWvrXKnX35Yc5954hawEAGJMqK1kzLNkfAGAxZH+GJvsDACzOWPP/Xlg5BgAAAAAAAAAA5rL0K8cAALAo+qgBAGAcZH8AABiPceb/cf5qAAAAAAAAAABGwcoxAACsq0ofNQAAjIHsDwAA4zHW/D/OXw0AAAAAAAAAwChYOQYAgHWNtXscAADGRvYHAIDxGGv+1xwDAMC6yiKDAAAwCrI/AACMx1jz/zh/NQAAAAAAAAAAo2DlGAAA1jXWpRUBAGBsZH8AABiPseb/cf5qAAAAAAAAAABGwcoxAACsa6zd4wAAMDayPwAAjMdY8/84fzUAAAAAAAAAAKOw9CvHVNXRSZ6S5FFJ7pDk60n+V5IXdfd5h7nu7CRnJ8lJ5zw5tz/1tN0vFgBghYy1e5zFmif/z2b//cccyP6jTxymWACAFSH7swg78exf/l9+V9/9NosuYVfc8m43XnQJO+7ux1+76BIAGMhY8/9e+NW/meSjSU5J8owkv5zk8UkeWFW/uNFF3X1udx/o7gMaYwAAYM/Ycv6fzf4ejAMAwJ6x7Wf/8j8AwN5VVUdV1Qer6s3rnHtiVX22qi6ebj+03fn2QnPMCd19Xndf3t3/I8kju/tvk5yZ5PsXXBsAwMqqAf4H1iH/AwAMTPZnQWR/AIAFWKLs/++T/OVhzr+6u+853V6yvV+9N5pj/qGq/nWSVNX3Jvl8knT3tYm/VQEAwIqR/wEAYBxkfwCAkaqqOyR5RJJtN71s1v6hJtqGH07ykqo6KcmHk/xgklTVbZK8cJGFAQCssrG+d5SFk/8BAAa2LNm/qo5K8v4kn+zu71lz7olJ/nuST04P/cpO/OtRFkr2BwBYgN3O/1V1dpKzZw6d293nrhn2P5M8JclND3OrR1XVdyX5myQ/1d2f2E5dS98c092XJLnfOsc/W1VfXkBJAADALpH/AQBG7eCy6jfb4Pyru/ucAethF8n+AACradoIs7YZ5v+oqu9J8vfd/WdVdfIGw96U5Le7+2tV9cNJzk/yoO3UtRz/JGB+z1h0AQAAq6pq365vsEXyPwDALliG7L+IZdVZarI/AMAuWXT2T/IdSR5ZVZcleVWSB1XVK2cHdPfnuvtr068vTnKf7f7upV85pqou2ehUkmOHrAUAANhd8j8AwGraxNLqgy+rzmLJ/gAA49Td/zHJf0yS6coxP9Pd//fsmKo6rrs/Pf36yExWmNyWpW+OySQEn5LkyjXHK8l7hy8HAGAcrOzCgsj/AAADGyL7H25p9UUtq87Cyf4AAAuwrM/+q+oXkry/u9+Y5Ceq6pFJrk7y+SRP3O7990JzzJuTHN3dF689UVUXDl8OAACwi+R/AIDxObis+sOT3DDJzarqlbP/erS7Pzcz/sVJnjVwjew82R8AYOS6+8IkF073nzZz/P+sLrNTlr45prvPOsy5M4asBQBgXJaze5zVJv8DACzCYrP/opZVZ7FkfwCARRnns/+lb44BAAAAAGB8dntZdQAAYDw0xwAAsK5lfe8oAACws5Yp+w+5rDoAAIzRMuX/IY3zVwMAAAAAAAAAMApWjgEAYF1j7R4HAICxkf0BAGA8xpr/x/mrAQAAAAAAAAAYBSvHAACwrtJHDQAAoyD7AwDAeIw1/4/zVwMAAAAAAAAAMApWjgEAYF1jfe8oAACMjewPAADjMdb8P85fDQAAAAAAAADAKFg5BgCAdVXVoksAAAAGIPsDAMB4jDX/a44BAGBdY11aEQAAxkb2BwCA8Rhr/h/nrwYAAAAAAAAAYBSsHAMAwLpqCfqoq+phSZ6f5KgkL+nuZ645f4MkL09ynySfS3J6d19WVddL8pIk984k8768u39p0OIBAGCPWIbsD7Bdt7zbjRddwo67+/HXLroEAFbQWPP/0v/qqjpQVe+qqldW1R2r6h1V9cWquqiq7nWY686uqvdX1fs/9dY3DFkyAAA7oKqOSvLCJKcm+eYkj6uqb14z7KwkV3b3iUmel+RZ0+OPSXKD7v7WTBpn/l1VnTBE3WzPPPl/NvtffdWlQ5cMAADMYSee/cv/AABs1tI3xyT51STPTvKWJO9N8uvdffMkT52eW1d3n9vdB7r7wO1PPW2YSgEAVkjVvl3fjuB+SS7t7o9299eTvCrJ2mB3WpLzp/uvTfLgqqokneQmVbU/yY2SfD3Jl3bqz4ZdteX8P5v99x994nCVAgCsiCXI/ozTtp/9y/8AAFs31uy/vJUdcr3ufmt3/3aS7u7XZrLz+0luuNjSAADYjtl/8Tfdzp45fXyST8x8v3x6LOuN6e6rk3wxya0yaZT5hySfTvLxJM/p7s/v0s9gZ8n/AAAwDrI/AACD2b/oAjbhq1X13UlunqSr6vu6+3er6gFJrllwbQAAK2uIDu/uPjfJuRuVsN4lmxxzv0yy4u2THJPk3VX1e9390XlrZTDyPwDAwJb5X3ey0mR/AIAFGGv+3wvNMT+cydKK1yY5JcmPVNV5ST6Z5EkLrAsAgN11eZI7zny/Q5JPbTDm8ukrlG6e5PNJzkjytu7+RpK/r6r3JDmQRHPM8pP/AQBgHGR/AAAGs/QtQd39oe4+pbtP7e6/6u5/39236O5vSfLPFl0fAMCqquzb9e0ILkpyt6q6S1VdP8ljk7xxzZg3JnnCdP/RSd7Z3Z3Jq5QeVBM3SfLtSf5qx/5w2DXyPwDA8JYg+zNCsj8AwGKMNfsvb2Wb84xFFwAAwO7o7quTnJPk7Un+MslruvsvquoXquqR02EvTXKrqro0yU8neer0+AuTHJ3kw5k02bysuy8Z9AewG+R/AAAYB9kfAIAdtfSvVaqqjf4jRiU5dshaAABGZQneO9rdFyS5YM2xp83sfzXJY9a57qr1jrP85H8AgAVYguzP+Mj+AAALMtL8v/TNMZmE4FOSXLnmeCV57/DlAAAAu0j+BwCAcZD9AQAYzF5ojnlzkqO7++K1J6rqwuHLAQAYhxpp9zgLJ/8DAAxM9mdBZH8AgAUYa/5f+uaY7j7rMOfOGLIWAABgd8n/AAAwDrI/AABDWvrmGAAAFqOqFl0CAAAwANkfAADGY6z5f5zr5QAAAAAAAAAAMApWjgEAYF2ljxoAAEZB9gcAgPEYa/4f568GAAAAAAAAAGAUrBwDAMC6qvRRAwDAGMj+AAAwHmPN/+P81QAAAAAAAAAAjIKVYwAAWF/VoisAAACGIPsDAMB4jDT/WzkGAAAAAAAAAICVZeUYAADWp40aAADGQfYHAIDxGGn+H+nPBgAAAAAAAABgDKwcAwDA+kb63lEAABgd2R8AAMZjpPnfyjEAAAAAAAAAAKyslV05pqrOTnJ2kpx0zpNz+1NPW3BFAAB7zEi7x9l7ZrP//mMOZP/RJy64IgCAPUb2Zw+R/1kGdz/+2kWXAADzG2n+X/qVY6rqA1X1c1V1161c193ndveB7j6gMQYAAPaGefL/bPb3YBwAAPaGnXj2L/8DALBZe2HlmGOS3CLJu6rqM0l+O8mru/tTiy0LAGDFLX0bNStK/gcAGJrsz2LI/gAAizDS/L8XfvaV3f0z3X2nJP8hyd2SfKCq3jVdPhEAgF3QVbu+wTrkfwCAgcn+LIjsDwCwAGPN/nuhOeb/6O53d/ePJjk+ybOS/MsFlwQAAOwS+R8AAMZB9gcAYLfthdcq/c3aA919TZK3TTcAAHbD8jZ4s9rkfwCAocn+LIbsDwCwCCPN/0u/ckx3P3ajc1V15pC1AAAAu0v+BwCAcZD9AQAY0tI3xxzBMxZdAADAytpXu7/B1sj/AAC7QfZn+cj+AAC7ZaTZf+lfq1RVl2x0KsmxQ9YCAADsLvkfAADGQfYHAGBIS98ck0kIPiXJlWuOV5L3Dl8OAMBI1PJ2eLPS5H8AgKHJ/iyG7A8AsAgjzf97oTnmzUmO7u6L156oqguHLwcAANhF8j8AAIyD7A8AwGCWvjmmu886zLkzhqwFAGBUxtk8zoLJ/wAACyD7swCyPwDAgow0/+9bdAEAAAAAAAAAALBbdmTlmKq6fpJbJLnhZsZ398d3Yl4AAHbRvpG2j3NYsj8AwAqS/dmA/A8AsIJGmv/nbo6pqpOS/ESSU5LcJZtffKe3My8AADAs2R8AAMZD/gcAYBXNFVSr6swkv5rk+gcP7VhFAAAshxLxkP0BAEZB9mdK/gcAGIGR5v8tN8dU1f2SvDiTUFxJvpLk/Uk+meRrO1odAACwMLI/AACMh/wPAMAqm2flmJ9Jsi+TJRJ/OcnPdfdVO1oVAACLN87mca5L9gcAGAPZnwn5HwBgDEaa/+dpjvmOTMLxW7v7J3e4HgAAYHnI/gAAMB7yPwAAK2ue5phbTT9fv5OFAACwZPaNtH2cWbI/AMAYyP5MyP8AAGMw0vy/b45rPjv9/PJOFgIAACwd2R8AAMZD/gcAYGXN0xzzZ9PPE3eyEAAAlkwNsLHsZH8AgDGQ/ZmQ/wEAxmCk2X+e5phfy+QnPb6q5rkeAADYG2R/AAAYD/kfAICVteWA291vT/KiJP88yUuqav+OV3UEVXWrI48CAGA7umrXN5bbMmT/RP4HANhtsj/JcuR/2R8AYPeNNftvOdxW1Z2SPDvJzZM8Icn9q+rXkvxJkiuSXHuke3T3x7cw3zOTPKe7r6iqA0lek+Taqrpekh/o7j/Y4Lqzk5ydJCed8+Tc/tTTNjslAACQ4bP/dM4t5//Z7L//mAPZf7RV4AEAYKv24rN/+R8AgM2ap/P7siQ98/2fJ3n+Fq7vLc77iO5+6nT/vyc5vbsvqqqTkvxWkgPrTtJ9bpJzk+SBF7yn1xsDAMBh7FveDm8Gc1mGzf7JHPl/Nvvf6E6Pk/0BALZK9mfisuyxZ//yPwDAHEaa/+ddFnHIP63rVdX+7r46yY26+6Ik6e6/qaobDFgHAACM0dB/U5L/AQBgcTz7BwBgJc3THHP+jldxeC9McsF0icW3VdX/TPL6JA9OcvHAtQAAjMc4m8e5rqGzfyL/AwAMT/ZnwrN/AIAxGGn+33JzTHefuRuFHGa+F1TVnyf5kSQnZVLzSUl+N8l/GbIWAAAYk6Gz/3RO+R8AABbAs38AAFbZvK9VGlR3X5jkwrXHq+rMJC8buh4AgFGokbaPs3DyPwDAwGR/FkT2BwBYgJHm/32LLmCbnrHoAgAAVta+2v0Ntkb+BwDYDbI/y0f2BwDYLSPN/ku/ckxVXbLRqSTHDlkLAACwu+R/AAAYB9kfAIAhbbs5pqoelOT7k9w/yXFJbprky0k+leR9SV7X3e/axhTHJjklyZVrp07y3m3cFwCAw1neBm8WZIDsn8j/AADDk/1Zh2f/AAAraqT5f+7mmKo6KckrkhyYPTz9vGkmYfk+SX6kqt6X5Ae6+2/nmOrNSY7u7ovXqeHCOe4HAABswYDZP5H/AQBgoTz7BwBgFc3VHFNV90xyYSZBeLav6ItJrkpydJKbzxy/f5KLquoB3f2hrczV3Wcd5twZW7kXAABbUCNtH+c6hsz+ifwPALAQsj9Tnv0DAIxWsWQNAAAgAElEQVTASPP/vq1eUFU3SPK7SW6WSTj+UJLHJ7ltdx/T3Xfs7mOS3HZ6/IPTS2+W5Hem1wMAAEtO9gcAgPGQ/wEAWGVbbo5J8qQkd0rSSc5Ncp/u/s3uvmJ2UHdf0d2/meS+SX59evjOSX5oG/UCADCUqt3fWHayPwDAGMj+TMj/AABjsODsX1U3rKr3VdWHquovquoZ64y5QVW9uqourao/raoTtvuz52mOOW36+edJfrS7rz3c4On5H0tyyfTQ980xJwAAMDzZHwAAxkP+BwBgCF9L8qDu/rYk90zysKr69jVjzkpyZXefmOR5SZ613UnnaY75lkw6x19xpHB80HTcKzJZivHuc8wJAMDQ9g2wsexkfwCAMZD9mZD/AQDGYMHZvyeumn693nTrNcNOS3L+dP+1SR5ctb0lKef5a8mtpp8f2+J1H59+HjPHnAAAwPBkfwAAGA/5HwCAbauqs6vq/TPb2euMOaqqLk7y90ne0d1/umbI8Uk+kSTdfXWSL+ZQXp3L/jmuOTjpsVu87jbTzy/NMScAAEPbXhM2q0H2BwAYA9mfCfkfAGAMdjn/d/e5Sc49wphrktyzqm6R5Heq6u7d/eGZIesVuXZ1mS2ZZ+WYS6eFPHqL1x0cf+kccwIAAMOT/QEAYDzkfwAABtXdX0hyYZKHrTl1eZI7JklV7U9y8ySf385c8zTHvHX6+V1V9ZObuaCqzklyciadPG+ZY04AAIZWA2wsO9kfAGAMZH8m5H8AgDFYcPavqttMV4xJVd0oyUOS/NWaYW9M8oTp/qOTvLO7B1855leSfGG6/9yq+q2quud6A6vqHlX1iiTPnx76YpJfnWNOAABgeLI/AACMh/wPAMAQjkvyrqq6JMlFSd7R3W+uql+oqkdOx7w0ya2q6tIkP53kqduddP9WL+juK6vqzCSvzaS55vQkp1fVFUn+Nsk/JLlJkrslufX0skpyTZIndPeV2y0aAIDd1/v8886xk/0BAMZB9ieR/wEAxmLR+b+7L0lyr3WOP21m/6tJHrOT8265OWZayBuq6rQkv5HkttPDt8mhQJxcd8Gcv09yZne/NQAAwJ4h+wMAwHjI/wAArKq5mmOSpLsvqKoTk/xgkn+T5L5Jbjwz5B8zWQLndUnO6+6rtlMoAAADK/96lAnZHwBgxcn+zJD/AQBW3Ejz/9zNMUkyDb2/PN1SVTdLctMkX+7uL22/vPlV1dlJzk6Sk855cm5/6mmLLAcAAPa0vZL99x9zIPuPPnGR5QAAwJ4n/wMAsGr27eTNuvtL3f3JnQzHVfWwmf2bV9VLq+qSqvqtqjr2MLWc290HuvuAxhgAgDnUABt71m5k/2S+/D+b/T0YBwCYg+zPESzrs3/5HwBgDiPN/jvaHLNLfnFm/7lJPp3kezNZtvHXF1IRAACwW+R/AAAYB9kfAIDBbOu1SgtwoLvvOd1/XlU9YaHVAACssn1L3OLNWMj/AABDWILsX1U3TPKHSW6QyXPr13b3z68Zc4MkL09ynySfS3J6d182cKnsDtkfAGAoS5D/F2HD5piq+oGD+9398vWOz2v2fptw26r66UwW4LlZVVV39/TcXlj5BgAAltoSZf9E/gcAGKuvJXlQd19VVddL8kdV9dbu/pOZMWclubK7T6yqxyZ5VpLTF1HsXrZE+V/2BwBgMIdbOea8JD3dXr7O8Xmtvd+RvDjJTaf75ye5dZLPVtXtkly8jToAADicGmf3+Eidl+XI/on8DwAwvCXI/tOmiKumX6833dZm0dOSPH26/9okv7KmoYLNOS/Lkf9lfwCARViC/L8IR3qt0kZ/KoP9aXX3MzY4/pmqetdQdQAAwIpbePZP5H8AgFVVVWcnOXvm0Lndfe6aMUcl+bMkJyZ5YXf/6ZrbHJ/kE0nS3VdX1ReT3CrJFbtW+OpaeP6X/QEAGNLhmmPO3OLxRXhGkpctuggAgJU0zubxsdoL2T+R/wEAdscA2X/aCHPuEcZck+SeVXWLJL9TVXfv7g/PDFmvUqvGbN1eyP+yPwDAbhnps/8Nm2O6+/ytHN8tVXXJRqeSHDtkLQAAsIqWJfsn8j8AAEl3f6GqLkzysCSzzTGXJ7ljksuran+Smyf5/PAV7m3Lkv9lfwAAhnSk1yotg2OTnJLkyjXHK8l7hy8HAGAk9o20fZxFk/8BAIa2BNm/qm6T5BvTxpgbJXlIkmetGfbGJE9I8sdJHp3knd1t5Zi9S/YHAFiEJcj/i7AXmmPenOTo7r547Ynpvx4AAABWh/wPADBOxyU5v6qOSrIvyWu6+81V9QtJ3t/db0zy0iSvqKpLM1kx5rGLK5cdIPsDADCYLTfHVNW1Sa5N8v3Tv5Bs9rpTklyQpLt70/N291mHOXfGZu8DAMAWjbR7nEOGzv6J/A8AsBBLkP27+5Ik91rn+NNm9r+a5DFD1jUmnv0DAIzEEuT/RZh35Zh5/7TG+acMALAHteTGhOwPALDiZH9myP8AACturPl/36ILAAAAAAAAAACA3TLvyjHzuOn08ysDzgkAwLxGurQiO0L2BwDYS2R/tkf+BwDYS0aa/4dcOebB08/PDDgnAAAwPNkfAADGQ/4HAGDpHXblmKp6QJIHbHD6sVV1zyPcv5LcJMm9kzwwSSf5460WCQDAAtQ4u8fHSvYHABgx2X905H8AgBEbaf4/0muVTk7ytHWOV5LTtzhXJbk6yS9v8ToAAGD3nRzZHwAAxuLkyP8AAIzIkZpjkkmw3crxjXwwyX/u7ou2eB0AAIsw0veOjpzsDwAwRrL/WMn/AABjNNL8f6TmmPOSXDjzvZK8M5MlEv+fJO85wvXXJrkqyd919xfmKxEAABjAeZH9AQBgLM6L/A8AwIgctjmmuz+W5GOzx+rQ+6c+3N1/sEt1AQCwaPsWXQBDkv0BAEZM9h8d+R8AYMRGmv8381qltR44/fzwThYCAAAsHdkfAADGQ/4HAGBlbbk5Rsc4AMBI1DjfO8ohsj8AwEjI/kT+BwAYjZHm/z25YE5V3XbRNQAAAMOQ/wEAYBxk/9Wz/8OfXXQJAABJ5nut0j9RVbdMcnySmyU56kjju/sPt3jv6xxK8r6quleS6u7Pb3Dd2UnOTpKTznlybn/qaZudEgCAJNk3zu5xDm83s//M/a9zKEfI/7PZf/8xB7L/6BO3MiUAALI/G1j2Z//y//K7+u63WXQJAMBaI83/czfHVNXNkvz7JI9PctctXNpbnPeKJB9bc+z4JB+Y3uub1p2k+9wk5ybJAy94T29hPgAAYMaA2T+ZI//PZv8b3elxsj8AAGzDXnr2L/8DALBZczXHVNU/T3JBkjtn0s29m56S5CFJntzdfz6d/++6+y67PC8AwKj1SN87ynUNnP0T+R8AYHCyPwd59g8AsPrGmv+33BxTVTdI8qYkJ0wP/WGS9yZ5aibd3K9J8olMwvPJSW4zPf76JB/e6nzd/ZyqelWS51XVJ5L8/PR+AACsuKp6WJLnZ7J890u6+5lrzt8gycuT3CfJ55Kc3t2XzZy/U5KPJHl6dz9nqLpXxdDZP5H/AQBgUTz7BwBglc2zcswPZrKUYid5Snc/N0mq6qnT87/d3W+cHrtekh9N8ktJHpbkpd39tq1O2N2XJ3lMVX1vknckufEcdQMAsBX7Fjt9VR2V5IVJHprk8iQXVdUbu/sjM8POSnJld59YVY9N8qwkp8+cf16Stw5V8woaPPsn8j8AwOAWnP1ZGp79AwCMwUjz/zw/+5HTz785GI430t3f6O7nZ/IfKG6S5JVVdYc55jx4vzcleWAmSy2mqs6c914AACy9+yW5tLs/2t1fT/KqJKetGXNakvOn+69N8uCqyZqQVfV9ST6a5C8GqncVLSz7T+8p/wMAwHA8+wcAYGXN0xzzbZl0jr96s/ecBts3JzkmyY/MMefsvb7S3QeXaHzGdu4FAMBh7Kvd3w7v+EyW7D7o8umxdcd099VJvpjkVlV1kyQ/G3lxuxaa/af3k/8BAHbb4rM/y8GzfwCAMRhp9p/ntUq3nH5+bM3xazIJxxste/iWJN8z3f7zZierqks2OpXk2M3eBwCA5VNVZyc5e+bQud197sHT61yy9v3zG415RpLndfdV04VkmM+g2T+R/wEAYIE8+wcAYGXN0xxzTZLrJfnSmuNfTnLzJMdtcN0Xpp933OJ8xyY5JcmVa45Xkvdu8V4AAGzWAE0l00aYczc4fXmumx3vkORTG4y5vKr2Z5JHP5/k/kkeXVXPTnKLJNdW1Ve7+1d2sv4RGDr7J/I/AMDwNJQz4dk/AMAYjDT/z9Mc85kkJ2SyTOKsjyf51iT33OC6b5p+3miL8705ydHdffHaE1V14RbvBQDA3nFRkrtV1V2SfDLJY5OcsWbMG5M8IckfJ3l0knd2dyf5zoMDqurpSa7SGDOXobN/Iv8DAMCiePYPAMDKmqc55sOZBOR/tub4RUnukeR7q+qW3f35gyeq6vpJzpp+/cRWJuvusw5zbu1/HAEAYKcs+N2g3X11VZ2T5O1JjkryG939F1X1C0ne391vTPLSJK+oqkszWTHmsYureCUNmv0T+R8AYCEWnP1ZGp79AwCMwUjz/745rnl3Jssafuea46+aft40ye9V1cOq6qSqOjXJH2TSPd5J3jpvsQAAjEt3X9DdJ3X3Xbv7v02PPW3aGJPu/mp3P6a7T+zu+3X3R9e5x9O7+zlD174iZH8AABgP+R8AgJU1T3PMm6afB6rqzgcPdvfvJ3lHJuH525K8JclfZrI04v2mw65M8uy5qwUAYDg1wMayk/0BAMZA9mdC/gcAGIORZv8tv1apu/+6qp6Q5MbTbdZjkrwuyYPXufSTSR7d3Z/ccpUAAMDgZH8AABgP+R8AgFW25eaYJOnuV2xw/EtJHlpV35nkIUmOTfKPmbyT9He6+6vzFgoAwLB6pO8d5bpkfwCA1Sf7c5D8DwCw+saa/+dqjjmS7n53Ju8nBQBgrxppQGZrZH8AgBUg+7NJ8j8AwAoYaf7ft+gCAAAAAAAAAABgt+zKyjEAAKyAGmf3OAAAjI7sDwAA4zHS/L/llWOq6jZV9ftV9c6qeugmr3nodPw7quoWWy8TAAAYmuwPAADjIf8DALDK5nmt0hlJHpjk3tn8u0XfneReSR6U5HFzzAkAwND2DbCx7GR/AIAxkP2ZkP8BAMZgpNl/ntIemqSTvKW7v7qZC6bj3pSkkpwyx5wAAMDwZH8AABgP+R8AgJU1T3PMPaaff7rF6y5acz0AAMusavc3lp3sDwAwBrI/E/I/AMAYjDT7z9Mcc9vp56e2eN1npp+3m2NOAABgeLI/AACMh/wPAMDK2j/HNVcnuV6SG2zxuutPPwdpFaqqs5OcnSQnnfPk3P7U04aYFgBgdexb3g5vBrPnsv/+Yw5k/9EnDjEtACviDrf9V4suARZP9mdC/gcAGIOR5v95Vo757PTzX2zxuoPjr9jKRVV1u6r6tap6YVXdqqqeXlV/XlWvqarjNrquu8/t7gPdfUBjDAAAzGXQ7J/Ml/9ns78H4wAAMLc99+xf/gcAYLPmaY65KJMO8H9bVZu6vqqOSnJ6kk7ywS3Od16SjyT5RJJ3JflKkkckeXeSF23xXgAAbNa+2v2NZTd09k/kfwCA4cn+THj2DwAwBiPN/vM0x7xp+nnXJP91k9f81+n4JHnDFuc7trtf0N3PTHKL7n5Wd3+8u1+Q5M5bvBcAALB5Q2f/RP4HAIBF8ewfAICVNU9zzG8l+eh0/2er6hVVdcJ6A6vqzlX1yiRPyaRz/GNJzt9GjS9fc+6oLd4LAIBN6qpd31h6Q2f/RP4HABic7M+UZ/8AACMw1uy/f6sXdPc1VfXYJH+Q5IZJzkjy2Kr6cJK/THJVkqMzec/o3TMJuJXJkoind/fVW5zyDVV1dHdf1d0/d/BgVZ2Y5K+3Wj8AALA5C8j+ifwPAAAL4dk/AACrbMvNMUnS3e+vqlOSvDrJcZl0cd9jus062Bb0qUzC8UVzzPW0DY5fWlVv2er9AADYpHnWGGTlDJn9p/PJ/wAAQ5P9mfLsHwBgBEaa/+f+2d39R5l0iP9cko9kEoZntyT5iyT/Mck3d/d7tlfqup6xC/cEAABmLEn2T+R/AADYdUuS/2V/AAB21FwrxxzU3V9K8otJfrGqjklyfJKbJflSkk9295XbLbCqLtnoVJJjt3t/AAA2sMTvBmV4Q2T/RP4HAFgI2Z81PPsHAFhhI83/22qOmTUNwzvyQHyNY5Ocss69K8l7d2E+AADgMHYx+yfyPwAALBXP/gEAWAU71hyzi96c5Ojuvnjtiaq6cPhyAABGYt84u8dZOPkfAGBosj+LIfsDACzCSPP/jjTHVNWtk9w/yXFJbprky0k+leR93X3Fdu7d3Wcd5twZ27k3AACwNbuZ/RP5HwAAloln/wAArIptNcdU1cOTPDXJdxxmzLuTPLO737aduQAAGNhIu8dZn+wPALDCZH/WkP8BAFbYSPP/vnkuqokXJXlTJuG4DrN9Z5K3VNWv7UjFAADAYGR/AAAYD/kfAIBVNe/KMc9LcvbM90uTvCPJ3yS5KsnRSe6W5KHTzyQ5u6q+1t0/OeecAAAMaZzN4/xTsj8AwKqT/TlE/gcAWHUjzf9bbo6pqnsn+fEkneTKJP+uu193mPHfn+RFSW6d5JyqOr+7PzhnvQAAwEBkfwAAGA/5HwCAVTbPyjFPyqSX6GtJHtzdHzrc4O5+fVVdmuRPk1w/k67zH5ljXgAABtQjfe8o1yH7AwCMgOzPlPwPADACY83/++a45uRMOsdffqRwfFB3X5Lk/EyC9clzzAkAAAzv5Mj+AAAwFidH/gfg/2fvTqNtO8s60f+fnYMIJGACJCGEMhrCVUgpklNBGkNCI41NAKEIWENKsE5ZVVysDpviFgZsBtS1cHhFyzooAioiUjRBgjRiaAIiQcAKnURACZGeokvANM/9sOaBnc3e5+y1zt5rrb3m7zfGHHOtOec732effPlnjme9E2BFzdIcc/th/+Ypx126YTwAAMusavc3lp3sDwAwBrI/E/I/AMAYjDT7z/JapWOG/XVTjjt0/TGHvQoAgOUw0qUVuRHZHwBgDGR/JuR/AIAxGGn+n2XlmI8P+7tNOe7Q9Z+YYU4AAGD+ZH8AABgP+R8AgJU1S3PMpZm8P/RxVXXSdgZU1clJHpfJ+0ovPcLlAAAsg5rDxrKT/QEAxkD2Z0L+BwAYg5Fm/1maY35v2H9LktdX1Z0Pd3FVfUeS1yY5fjj0/BnmBAAA5k/2BwCA8ZD/AQBYWfumHdDdr62qP0nyg0m+I8k7q+pVSV6T5G+SfDnJLZKckeQBSX5gmKeT/El3v3aHagcAYBetzdJGzUqR/QFYlFNPvOeiS9hxN9z5xEWXAFuS/Unkf3bHvss/levOvO2iywAA1hlr/p+6OWbw6CR/muReSW6S5IeGbTOHFs558zBuKlV1yyQ/l+TUJK/q7hesO/eb3f1vtxh3IMmBJLnTE56UUx58/rRTAwAAc8z+yWz5f33233f8/uw79o6zTA0AAOyxZ//y//LTGAMAbFRVz8mkIfuT3X3mJufPTfLyJB8eDr2ku592tPPO1BPU3V9Ocp9Mgusncvg3Sn08yc8kObe7r55hut8d7vO/klxQVf+rqm46nPvew9R4sLv3d/d+jTEAANOr2v2N5Tfn7J/MkP/XZ38PxgEApif7c8hee/Yv/wMATG8Jsv9zkzzoCNe8qbvvOmxH3RiTzL5yTLr7hiTPqKpnJrlnkrOT3C7JcUm+mOQfkvxlkrd097VHUePp3f0jw+eXVdWTM3nf6Q8fxT0BAIBtmmP2T+R/AABYKM/+AQDYTd39xqo6bd7zztwcc8gQft8wbLvhplW1NgTydPcvVdWVSd6Y5NhdmhMAYPT8upON5pD9E/kfAGDuZH8249k/AMBq2iP5/x5V9e4kVyX5z939nqO94UyvVZqzVyS57/oD3f28JP8pyT8upCIAAGC3yP8AADAOsj8AwAqqqgNVddm67cCUt/irJN/a3d+d5NeTvGwn6jrqlWN2W3f/9BbH/7Sqfnne9QAAjEXtkfZxVov8DwAwf7I/iyD7AwAsxm7n/+4+mOTgUYz/wrrPF1fVb1bVbbr700dT115YOeZwnrroAgAAgLmR/wEAYBxkfwCAkaqqk2vo4KmqszPpa/nM0d53y5VjqupDR3vzLXR3n77di6vqr7c6leSknSkJAICN/Hh0PJYl+w+1yP8AAHMm+4/LsuR/2R8AYDEWnf+r6g+TnJvkNlV1ZZKfT3KTJOnu30ryiCT/pqquS3JNkgu6u4923sO9Vum0JJ1JEN1J0xZ9UpIHJvnchuOV5C07UhEAAIzbaVmO7J/I/wAAsNtOy3Lkf9kfAGCEuvvRRzj/rCTP2ul5D9cc8/eZ7WH2TvuTJMd297s2nqiqS+ZfDgDAOCy6e5y5Wpbsn8j/AABzJ/uPzrLkf9kfAGABxpr/t2yO6e7T5ljHlrr78Yc595h51gIAAKtoWbJ/Iv8DAMBuW5b8L/sDADBPh1s5BgCAEau1RVcAAADMg+wPAADjMdb8P9I/GwAAAAAAAACAMbByDAAAmxrre0cBAGBsZH8AABiPseZ/K8cAAAAAAAAAALCyrBwDAMCm1kbaPQ4AAGMj+wMAwHiMNf9bOQYAAAAAAAAAgJVl5RgAADY11veOAgDA2Mj+AAAwHmPN/1aOAQAAAAAAAABgZVk5BgCATY21exwAAMZG9gcAgPEYa/63cgwAAAAAAAAAACvLyjEAAGyqxto+DgAAIyP7AwDAeIw1/1s5BgAAAAAAAACAlTX1yjFVdUOSG5I8vLsvmmLcA5NcnKS7e9dXrKmqA0kOJMmdnvCknPLg83d7SgCAlVLaqEdvL2b/fcfvz75j77jbUwIc0akn3nPRJbBNN9z5xEWXsOOuPevkRZfAHiP7k8j/AABjMdb8P+ufPes6O3UUY7/xZlWv2upcdx/s7v3dvV9jDADA9Kp2f2NPWIrsn2yd/9dnfw/GAQCmtwzZv6qeU1WfrKrLtzh/blV9vqreNWxP2el/B5IsSf7f7rN/+R8AYHqLzv6Lsutd3Eerqu621akkd51nLQAAwO6S/wEARuu5SZ6V5PmHueZN3f2D8ymH3Sb7AwAwT/Nsjjlu2F8z5bi3J3lDNu86/5ajqggAgC0tc4c3S2/W7J/I/wAAc7cM2b+731hVpy26Dmbi2T8AwB6yDPl/EebZHHO/Yf/xKce9L8m/7u4PbjxRVR896qoAAICdNmv2T+R/AAC2do+qeneSq5L85+5+z6ILIoln/wAA7AGHbY6pqvskuc8Wpy+oqiMtbVhJbpHkbknOS9JJ3jpljRcmWdvi3P895b0AANimsXaPj9WSZP9E/gcAmLt5ZP+qOpDkwLpDB7v74BS3+Ksk39rdX6qqhyR5WZIzdrLGMVmS/H9hZH8AgLkb67P/I60cc26Sp2xyvJI8asq5Ksl1Sf6/aQZ194sPc/r4KWsAAAA2d24WnP0T+R8AYFUNjTDTNMNsHP+FdZ8vrqrfrKrbdPend6TA8Tk3nv0DADAiW3Vlr1cbtq2OH2l7Z5If7u6371TxSZ66g/cCAGCdtdr9jaWzzNk/kf8BAHbFXsj+VXVy1eQ3rlV1dibPtj9z9HcetWXO/7I/AMAuWfbsv1uOtHLMc5Ncsu57JXl9Jksk/tcklx5h/A1JvpTkw939f2YpsKr+eqtTSU6a5Z4AAMA3eG4WnP0T+R8AYKyq6g8zWc3kNlV1ZZKfT3KTJOnu30ryiCT/pqquS3JNkgu6uxdU7ip4bjz7BwBgRA7bHNPdf5fk79Yfq6+/gOry7n7DLtW13klJHpjkcxuOV5K3zGF+AIBRGut7R8dqSbJ/Iv8DAMzdMmT/7n70Ec4/K8mz5lTOyluS/C/7AwAswDLk/0U40soxmzlv2F++k4Ucxp8kOba737XxRFVdMqcaAABgjOad/RP5HwAAFsWzfwAAVtbUzTFz/MXoofkef5hzj5lnLQAAYzLW7nG+bt7Zf5hT/gcAmDPZn8SzfwCAsRhr/p9l5ZhtqaqHJLn3MMe7k7y4u7+6W/MBAACLIfsDAMB4yP8AAOxFUzfHVNVpSZ45fP3l7r5sw/mbJHl5Ju8KXe/JVfWg7v77GeoEAGDOam2k7eN8jewPADAOsj+J/A8AMBZjzf9rM4z5wSQPTXJukr/e5Pz/k+RBSWrD9h1JXlY11kV6AABgz5H9AQBgPOR/AABW1izNMd8/7F/b3f+4/kRVfXOSf5+kk3w2yRMyCdQXDZd8d5J/PlupAADMU9Xubyw92R8AYARkfwbyPwDACIw1+8/SHHN6JgH4sk3OPTDJccPnx3X3b3b3xUl+JMkHh+OPnGFOAABg/mR/AAAYD/kfAICVNUtzzG2G/ZWbnDtv2H+6uw91jKe7r0/ywkyWWPyeGeYEAGDO/HqUyP4AAKMg+zOQ/wEARmCs2X+W5pjjh/1XNjl3r0w6y/9sk3MfGvYnzTAnAAAwf7I/AACMh/wPAMDK2jfDmGuSHJvkhPUHq+q4JHcdvr55k3FfHvbfNMOcAADM2TJ3eDM3sj8AwAjI/gzkfwCAERhr/p9l5Zi/G/bfu+H4DyQ5Zvh86SbjDgXqL8wwJwAAMH+yPwAAjIf8DwDAypqlOebSTN4f+uiqunvytc7xnxnOf6K7373JuDOH/YdnmBMAgDlbq93fWHqyPwDACMj+DOR/AIARGGv2n6U55mAm7xa9WZI3VdU7M3mn6HcNx397i3HnDeffMcOcAADA/Mn+AAAwHvI/AAAra9+0A7r7nVX1C0meMoz/7nWn35PkGRvHVNVdktwlk4D8+tlKBQBgnsb63lG+TvYHTj3xnosugW244c4nLroEtuHas05edAk77vQzpn60yJKS/Unk/8O53W3+2UXeKmUAACAASURBVKJL2LP2Xf6pXHfmbRddBgCwzljz/ywrx6S7L0zysCSvTPKBJO9M8t+SfF93f3mTIU88NDRTBuSqulVVPb2q3l9Vnxm29w3HvuUw4w5U1WVVddlVr3r5NFMCAACDeWb/ZLb8vz77X/elK6adEgAAGOy1Z//y//LTGAMALIuZf97R3S9Psq2uk+7+10n+9YxTvSiTUH1ud388Sarq5CSPTfLHSR6wxZwHM1kGMuddfGnPODcAwGjVTG3UrKI5Zv9khvy/Pvvf7J88WvYHAJiS7M96e+nZv/wPADC9seb/qZtjquqc4ePnu/vdO1zPZk7r7hst1zgE5WdU1ePmMD8AAIzSArJ/Iv8DAMBCePYPAMAqm6Un6JIkf57k0Ttbypb+rqp+uqpOOnSgqk6qqp9J8tE51QAAMDpVu7+x9C7JfLN/Iv8DAMyd7M/gknj2DwCw8saa/Wdpjrl62M/rl6OPSnLrJG+oqs9W1WczCeknJHnknGoAABidqtr1jaU37+yfyP8AAHMn+zPw7B8AYATGmv1naY75h2F/zE4WspXu/lx3/0x3f0d3nzBs39ndP5PkofOoAQAARmqu2T+R/wEAYIE8+wcAYGXN0hzzhmF/t50sZEZPXXQBAACrytLqZLmyfyL/AwDsCtmfwTLlf9kfAGCXjDX775thzP9I8tgk/7KqntHdn9jhmm6kqv56q1NJTtriHAAAcPTmmv0T+R8AABbIs38AAFbW1M0x3f2OqvqvSX45yZ9V1QXdffnOl/Y1JyV5YJLPbTheSd6yi/MCAIzaMnR4V9WDkvxaJst6/3Z3P33D+ZsmeX6Ss5J8Jsmjuvsjw7mfS/L4JNcneWJ3v3qOpa+EBWT/RP4HAJi7Zcj+LJ5n/wAA4zDW/D91c0xV/ViSq5K8KsmDk7yrqt6U5E1JPpbkmiPdo7ufP8WUf5Lk2O5+1ya1XDLFfQAA2EOq6pgkv5HkAUmuTPL2qrqou9+77rLHJ/lcd9+xqi5I8owkj6qqOye5IMldkpyS5HVVdafuvn6+f8XetoDsn8j/AACwEJ79AwCwymZ5rdJzk/TwuZOsJTln2LajM/l17/Yu7n78Yc49Zrv3AQBgOkvQPX52kiu6+0NJUlUvTHJ+kvXNMecnuXD4/OIkz6qqGo6/sLu/muTDVXXFcL+3zqn2VfHczDH7J/I/AMAiLEH2Zzk8N579AwCsvLHm/7UZx9W6beP37WwAAHAkt0/y0XXfrxyObXpNd1+X5PNJbr3NsWyP7A8AAOMh/wMAsJJmWTnmx3e8CgAAls7aHB5rVtWBJAfWHTrY3QcPnd5kSG/4vtU12xnLkcn+AAAjMI/sz54g/wMAjMBY8//UzTHd/bzdKAQAgPEZGmEObnH6yiR3WPf91CRXbXHNlVW1L8mtknx2m2M5AtkfAADGQ/4HAGCVzbJyDAAAI7AE3eNvT3JGVX1bko8luSDJxvfOX5TksUnemuQRSV7f3V1VFyV5QVU9M8kpSc5I8pdzqxwAAPaQJcj+AADAnIw1/2uOAQBgKXX3dVX1hCSvTnJMkud093uq6mlJLuvui5L8TpLfq6orMlkx5oJh7Huq6kVJ3pvkuiT/rruvX8gfAgAAAAAALJTmGAAANrVWvegS0t0XJ7l4w7GnrPv8lSSP3GLsLyX5pV0tEAAAVsAyZH8AAGA+xpr/1xZdAAAAAAAAAAAA7JYtV46pqkPLznd379vk+KxudD8AAJbTWN87OkayPwDAuMn+4yL/AwCM21jz/+GC6lb/JCP9pwIAgJUl+wMAwHjI/wAAjM7hmmPemGSzl01tdRwAgBXi/ZujIvsDAIyY7D868j8AwIiNNf9v2RzT3edOc3w3VdXpSR6W5A5JrkvywSR/2N2fn3ctAACwamR/AAAYj2XJ/7I/AADztPRNQVX1xCS/leSbk/yzJDfLJCy/tarOXWBpAAArba161zdYT/YHAFgM2Z95k/0BABZnrNl/y5VjqupzSW5I8i+6+1Xrjp8zfLy8uz+7y/Ulyb9Kctfuvr6qnpnk4u4+t6r+Z5KXJ/mezQZV1YEkB5LkTk94Uk558PlzKBUAAPaeVcr++47fn33H3nEOpXI0Tj3xnosugSVzw51PXHQJbMO1Z5286BLYptPPONyb1Pemc06+ZtElwMpYkvw/U/Yf6vxa/r/1HR6RW97mHrtc6vysnS4TAQDslsOtHHOrJN+S5CYbjl+S5M+T3HuXatrMof+jv2mS45Kku/8+31jb13T3we7e3937NcYAAExvrXZ/Y2msTPbXGAMAMD3Zf3SWJf9Pnf2Ha76W/1epMQYAYF7Gmv0P9zOSQ+vdLLr8307y9qr6iyTnJHlGklTVbZPM49erAACw6mR/AAAYj2XI/7I/AABzdbjmmC8nuUWSk+ZUy6a6+9eq6nVJvjPJM7v7/cPxT2USmgEA2AWHW2KQlSP7AwCMmOw/OgvP/7I/AMDijDX/H+7vvmLY/4uq+uZ5FLOV7n5Pd7/4UEAGAAB2lOwPAADjsRT5X/YHAGCeDrdyzKuS3DXJvZJcWVUfSPLVded/sar+/Qxzdnffb4ZxAADM0TK/G5QdJ/sDAIyY7D868j8AwIiNNf8frjnmV5I8Jsm3JjkhyfeuO1dJ7jLDfJWvv88UAABYDrI/AACMh/wPAMDobPlape7+XJK7J3lWkr9Ncm1uHHBrhg0AgD2iqnd9YznI/gAA4yb7j4v8DwAwbmPN/odbOSbd/ckkT1x/rKpuyCQkP6y7L9rF2gAAWKCxLq04VrI/AMB4yf7jI/8DAIzXWPP/livHAAAAAAAAAADAXnfYlWO28NRh//6dLAQAgOWii5rI/gAAoyD7M5D/AQBGYKz5f+rmmO5+6pGvAgAA9jrZHwAAxkP+BwBglc2ycgwAACOwVr3oEgAAgDmQ/QEAYDzGmv/HumIOAAAAAAAAAABzVlUPqqoPVNUVVfWzm5y/aVX90XD+bVV12tHOaeUYAAA2tVaLrgAAAJgH2R8AAMZj0fm/qo5J8htJHpDkyiRvr6qLuvu96y57fJLPdfcdq+qCJM9I8qijmdfKMQAAAAAAAAAAzMPZSa7o7g919z8meWGS8zdcc36S5w2fX5zkflV1VG09Vo4BAGBTuqgBAGAcZH8AABiP3c7/VXUgyYF1hw5298F132+f5KPrvl+Z5O4bbvO1a7r7uqr6fJJbJ/n0rHVpjgEAAAAAAAAA4KgNjTAHD3PJZivA9AzXTEVzDAAAm1r0e0cBAID5kP0BAGA8liD/X5nkDuu+n5rkqi2uubKq9iW5VZLPHs2kVswEAAAAAAAAAGAe3p7kjKr6tqr6piQXJLlowzUXJXns8PkRSV7f3VaOAQBg563VUeVMAABgj5D9AQBgPBad/7v7uqp6QpJXJzkmyXO6+z1V9bQkl3X3RUl+J8nvVdUVmawYc8HRzjt1c0xVPWX4+MLu/pspxp2e5EeTpLufNu28AADAfMn+AAAwHvI/AADz0t0XJ7l4w7GnrPv8lSSP3Mk5Z1k55sIkneRdSbYdkJPccd3YbQfkdcvoXNXdr6uqxyS5Z5L3JTnY3ddOUQMAANu0BO8dZfEujOwPALDyZH8GF2ZO+V/2BwBYnLHm/73wWqXfzaTOm1fVY5Mcm+QlSe6X5Ox8/T1TAADA3ransv+pJ95z0SWwDTfc+cRFl8CSufaskxddAttw+hl74ZEVSXLOydcsugRgb9pT2X/t9NXLlNededtFlwAAMFfzfNJwzLC/fspx/7S7v6uq9iX5WJJTuvv6qvr9JO/ealBVHUhyIEnu9IQn5ZQHnz9LzQAAo7W26ALYyxaW/fcdvz/7jr3jLDUDAFPSGLM6ZH+O0iz5f6bsn9w4/9/6Do/ILW9zj1lqBgAYrbHm/3n+3d867L8w5bi1YYnF45LcPMmthuM3TXKTrQZ198Hu3t/d+zXGAADAXC0s+2uMAQCAuZsl/8+U/ZMb53+NMQAAbNfRrBzT27moqm6e5G5J/sMw5v1TzvM7w5hjkjw5yR9X1YeSfG+SF055LwAAtmmtthX3GAfZHwBghcn+bDCP/C/7AwAsyFjz/2GbY6rq55M8ZbNTSV5WVbPM+fJpLu7uX62qPxo+X1VVz09y/yTP7u6/nKUAAADgxmR/AAAYj0Xnf9kfAIB5287KMVul4FnS8ZuT/Nq0g7r7qnWf/0+SF88wNwAAU1ib6Vkoe5zsDwAwQrL/aC00/8v+AACLMdb8f6TmmI8kecOGY/fJZInE9yb59BHG35DkS0k+nOTPkryyu2+YvkwAAGCXfSSyPwAAjMVHIv8DADAih22O6e7nJXne+mNVdSjgPrm7L9qtwgAAWKyxdo+PlewPADBesv/4yP8AAOM11vy/ndcqbfTGTLrHj9Q5DgAA7G2yPwAAjIf8DwDAypq6Oaa7z92FOgAAWDJriy6AhZP9AQDGQfYnkf8BAMZirPl/rH83AAAAAAAAAAAjMMtrlQAAGIG16kWXAAAAzIHsDwAA4zHW/H9UzTFVdYsk5ye5e5JTk9wyyTFHGNbdfb+jmRcAAJgv2R8AAMZD/gcAYNXM3BxTVU9M8rQkx00zLMk425AAAPaYtVp0BSwL2R8AYLXJ/qwn/wMArLax5v+ZmmOq6heT/FwmgfdIDgXikf4TAwDsTWuLLoClIPsDAKw+2Z9D5H8AgNU31vw/9d9dVd+V5L8MX9+f5LwkNxu+d5KHJjk2yV2S/KckVw7nnpfkZt19pKUXAQCAJSD7AwDAeMj/AACssllWjvnJYX9tkgd290eTpOrrzeHdfXWS9yV5X1U9O8mLk/xYJu8l/ZGjKRgAgPkY69KK3IjsDwAwArI/A/kfAGAExpr/Z1kx55xMusRfdCgcH053fymTUPzxJA+tKgEZAAD2BtkfAADGQ/4HAGBlzdIcc+qw/6stzt9044Hu/nKS383k3aM/NsOcAADMWVXv+sbSk/0BAEZA9mcg/wMAjMBYs/8szTE3H/Yf23D86mF/qy3GXT7s7zrDnAAAwPzJ/gAAMB7yPwAAK2vfDGO+kOT4JDfZcPxzSW6W5PQtxh037E+cYU4AAOZsrO8d5UZkfwCAEZD9Gcj/AAAjMNb8P8vKMVcM+9tvOP7eTJZOvP8W4+497K/e4jwAALBcZH8AABgP+R8AgJU1S3PMZZkE4e/ZcPw1w/5uVfW49Seq6vwkP5qkk7xzmsmq6olVdYcZ6gQA4CiszWFj6cn+AAAjIPszkP8BAEZgrNl/ltpeN+wfUFXrxz8/yeeHz8+uqrdV1Quq6m1JXrJurmdPOd8vJHlbVb2pqv5tVd12hpoBAIDpyf4AADAe8j8AACtr3wxj/jTJ3yX55kyWUXxNknT3p6rqJ5P8QSZheP+wJZNu8yT5g+7+oynn+1CSs4a5HpXkqVX1jiR/mOQl3f3FGf4GAACOYK160SWweHsu+5964j2nnHL53XDnExddAttw7VknL7oElszpZ8zyyIVFOOfkaxZdAizcsmT/qnpQkl9LckyS3+7up284f9NMGjXOSvKZJI/q7o/Mu84Vtufy/9rpq5WVrztz9fqDTjjj5osuAQDYYFny/7xNvXJMd3+lu7+tu2/X3a/ZcO6Pktw3ySVJrs8kGFeSDyZ5Ynf/2Aw1dnff0N2v6e7HJzklyW8meVAm4XlTVXWgqi6rqsuuetXLZ5gWAADGbS9m/89/6tIZpgUAYNGq6pgkv5HkwUnunOTRVXXnDZc9PsnnuvuOSX41yTPmW+Vq24v5/wsfev0M0wIAMEY7/jOm7n5jkvtW1U2S3DrJ1d39haO4Za3/0t3XJrkoyUVVdbPD1HEwycEkOe/iS8fZ+gQAcBTW6sjXMG7LmP3P2P/rsj8AwJSWJPufneSK7v5QklTVC5Ocn+S96645P8mFw+cXJ3lWVVV3y4BzsIz5/46P/H3/7QEAprQk+X/upl45Zru6+9ru/vhRhuNkspziVnNY9xYAABZM9gcA4EjWr/YxbAc2XHL7JB9d9/3K4dim13T3dUk+n0mTBnMk/wMAsBct/Quwu/tvFl0DAMAYjbV7nMWR/QEAFmMe2X/9ah9b2KyKjauCbOca9gj5HwBgMcb67H/XVo4BAAAAAIBtujLJHdZ9PzXJVVtdU1X7ktwqyWfnUh0AALCnLf3KMQAALMYxiy4AAACYiyXJ/m9PckZVfVuSjyW5IMljNlxzUZLHJnlrkkckeX13WzkGAACmsCT5f+40xwAAAAAAsFDdfV1VPSHJqzN5Xv+c7n5PVT0tyWXdfVGS30nye1V1RSYrxlywuIoBAIC9RHMMAACbWis/wAQAgDFYluzf3RcnuXjDsaes+/yVJI+cd10AALBKliX/z9vaogsAAAAAAAAAAIDdYuUYAAA2tVaLrgAAAJgH2R8AAMZjrPnfyjEAAAAAAAAAAKwsK8cAALCpsXaPAwDA2Mj+AAAwHmPN/1aOAQAAAAAAAABgZe3ayjFVVUnOGOb42+7+6m7NBQDAzjtmpN3jTE/2BwDY22R/piH/AwDsbWPN/1OvHFNVN6uqHx62O2xxzaOTXJXkfUn+d5JPVtWFR1UpAAAwV7I/AACMh/wPAMAqm2XlmAcl+V9Jrk/y7RtPVtUDk/z+oa/D/rgk/7Wqjuvu/zRLoQAAzNdY3zvKjcj+AAAjIPszkP8BAEZgrPl/6pVjMgnISfK27v7oJuf/30yCcSW5LMmLk3x++P5TVfXdsxQKAMB8rVXv+sbSk/0BAEZA9mcg/wMAjMBYs/8szTH7k3SSN248UVV3S3LmcP6Z3X12d//zJP8syZczCcmPm71cAABgjmR/AAAYD/kfAICVNUtzzG2H/Qc2OffAYX9tkl86dLC7r0jyokwC8r1nmBMAgDlbq93fWHqyPwDACMj+DOR/AIARGGv2n6U55jbD/gubnDsUft/S3Z/bcO7tw/7bZpgTAACYP9kfAADGQ/4HAGBl7ZthzKFen5vd6GBVJblHtlh2Mcmnh/2xM8wJAMCcHbPoAlgGsj8AwAjI/gzkfwCAERhr/p9l5ZhPDfs7bTh+dpJvGT6/ZZNxNx/2X5lmsqq6e1Xdcvh8s6p6alW9oqqeUVW3muZeAADAVGR/AAAYj7nlf9kfAIB5m6U55l2ZdJA/uqrWd5D/q2F/bZJLNxn37cP+H6ac7zlJrh4+/1qSWyV5xnDsd6e8FwAA27Tb7x1d5neP8jWyPwDACMj+DOaZ/2V/AIAFGWv2n+W1Sn+c5AeT3DHJJVX1giR3SfK4TJZVfGV3f3mTcXcfzr9nyvnWuvu64fP+7r7b8PnNVfWurQZV1YEkB5LkTk94Uk558PlTTgsAAKO357L/be7+E7nlne4/5bQccu1ZJy+6BLbh9DNm+V95Vtk5J1+z6BIAWA3zzP8zZf/kxvn/hB98Yo7b/5AppuWQE864+ZEv2mPOvP0Niy4BAFhis6wc8wdJLsukg3x/kmcmefxw7h+TXLhxwLA84nnD1zdMOd/lVfXjw+d3V9X+4Z53yqRTfVPdfbC793f3fo0xAADTW6ve9Y2lt+eyv8YYAIDpyf4M5pn/Z8r+yY3zv8YYAIDpjTX7T90c0903JHlwkpdn0g1ew3ZVkkd09//eZNi/TPJNw+c/m3LKn0hyn6r62yR3TvLWqvpQkmcP5wAAgF0g+wMAwHjMOf/L/gAAzNVMazF392eSPKyqbpvJ+0SvTvKeITxv5v1JfjzJDd19+ZRzfT7Jv6yq44a59iW5srs/MUvtAABszzFL/G5Q5kf2BwBYfbI/h8wr/8v+AACLM9b8f1QvKu/uTyX51Daue83RzDPc44tJ3n209wEAAKYn+wMAwHjMK//L/gAAzMvUzTHD0oZJ8oru/qkdrgcAgCWxNtLucb5O9gcAGAfZn0T+BwAYi7Hm/1lWjrlDkrUkf73DtQAAAMtF9gcAgPGQ/wEAWFmzNMd8Isntknxhh2sBAGCJjLV7nBuR/QEARkD2ZyD/AwCMwFjz/9oMY9477E/bwToAAIDlI/sDAMB4yP8AAKysWZpjXpCkklyww7UAALBE1mr3N5ae7A8AMAKyPwP5HwBgBMaa/Wdpjnl+kkuTfE9V/coO1wMAACwP2R8AAMZD/gcAYGXtm3ZAd99QVT+c5PeT/Ieq+r4kv5nkTUk+1t1f3eEaAQBYgGOqF10CCyb7AwCMg+xPIv8DAIzFWPP/1M0xVXX9+q9J9id5zrrzR7pFd/fU8wIAAPMl+wMAwHjI/wAArLJZXqtU67aN37e7AQCw5NbmsB2Nqjqhql5bVR8c9sdvcd1jh2s+WFWP3eT8RVV1+VGWs6pkfwCAEVj27M/cyP8AACMw1uw/Sxf3G5OMc50dAACWyc8m+bPufnpV/ezw/WfWX1BVJyT5+Ux+8dhJ3lFVF3X354bzD0/ypfmWvafI/gAAMB7yPwAAK2vq5pjuPncX6gAAYMmsLf9v/s5Pcu7w+XlJLsmG5pgkD0zy2u7+bJJU1WuTPCjJH1bVsUn+Y5IDSV40h3r3HNkfAGAc9kD2Zw7kfwCAcRhr/l/mVW0AAOBwTuruf0iSYX/iJtfcPslH132/cjiWJL+Q5L8nuXo3iwQAAAAAABZrltcqAQAwAvPoHq+qA5ms3HLIwe4+uO7865KcvMnQJ293ik2OdVXdNckdu/s/VNVp27wXAACspLH+chQAAMZorPlfcwwAAAszNMIcPMz5+291rqo+UVW36+5/qKrbJfnkJpddma+/eilJTs3k9Uv3SHJWVX0kk0x8YlVdYhlxAAAAAABYPZpjAADY1DHViy7hSC5K8tgkTx/2L9/kmlcn+eWqOn74/v1Jfq67P5vkfyTJsHLMn2iMAQBgrPZA9gcAAHbIWPP/UTXHVNUtkpyf5O6Z/Ar3lkmOOcKw7u77Hc28AACQSVPMi6rq8Un+Pskjk6Sq9if5ye7+ie7+bFX9QpK3D2OeNjTGMCXZHwAAxkP+BwBg1czcHFNVT0zytCTHTTMsyTjbkAAA9phlf+9od38myTc8eO3uy5L8xLrvz0nynMPc5yNJztyFEleG7A8AsNqWPfszX/I/AMBqG2v+n6k5pqp+McnPZRJ4j+RQIN6Rf+KquneSs5Nc3t2v2Yl7AgDwjcYakLkx2R8AYPXJ/hwi/wMArL6x5v+pm2Oq6ruS/JdMgu/7k/ybJH+R5Jrh2MOSvC7JtyZ5UJJ/n8myi8/LZHn7r045319299nD53+V5N8leWmSn6+qu3X306f9GwAAgCPbi9n/2rNOnmZKFuT0M47qDb/M0TknX7PoEgCAOdmL+X9eTjjj5osuYc868/Y3LLoEAIAkydoMY35y2F+b5IHd/YaNobe7r+7u93X3rya5S5LXJvmxJC+YYb6brPt8IMkDuvupSb4/yY9uNaiqDlTVZVV12VWvevkM0wIAjNta7f7G0ttz2f9Lb3nFDNMCAIyb7M9gz+X/L1528QzTAgCM2zJn/6p6ZFW9p6puqKr9h7nuI1X1v6vqXVV12bb+7hnqOSeTLvEXdfdHj3Rxd38pyY8k+XiSh1bVj0w531pVHV9Vt05S3f2p4b5fTnLdYeY92N37u3v/KQ8+f8opAQCA7MHsf+w9f2jKKQEAgMGey//H7X/IlFMCALDkLk/y8CRv3Ma153X3Xbt7yyaa9WZpjjl12P/VFudvuvHAEGZ/N5N3j/7YlPPdKsk7klyW5ISqOjlJqurY7NC7TAEA+EbH1O5vLD3ZHwBgBGR/BvI/AMAILHP2H1Yp/MDO/KU3NsuL3g+9XPNjG45fneRmmQTazVw+7O86zWTdfdoWp27I5B2nAADA7pD9AQBgPOR/AAD2ik7ymqrqJP+zuw8eacAszTFfSHJ8bvw+0CT5XCYB+fQtxh037E+cYc5v0N1XJ/nwTtwLAIBvtFa96BJYPNkfAGAEZH8G8j8AwAjsdv6vqgNJDqw7dHB980pVvS7JyZsMfXJ3v3yb09yru6+qqhOTvLaq3t/dh30V0yyvVbpi2N9+w/H3ZrLU4f23GHfvYX/1DHMCAADzJ/sDAMB4yP8AABy17j7Y3fvXbQc3nL9/d5+5ybbdxph091XD/pNJXprk7CONmaU55rJMgvD3bDj+mmF/t6p63PoTVXV+kh/NZGmbd84wJwAAc7Y2h42lJ/sDAIyA7M9A/gcAGIG9nv2r6hZVddyhz0m+P19/1eeWZqntdcP+AVW1fvzzk3x++PzsqnpbVb2gqt6W5CXr5nr2DHMCAADzJ/sDAMB4yP8AACxUVT2sqq5Mco8kr6yqVw/HT6mqi4fLTkry5qp6d5K/TPLK7v7TI9173wz1/GmSv0vyzZkso/iaJOnuT1XVTyb5g0zC8P5hSybd5knyB939RzPMCQDAnK3Vka9h5cn+AAAjIPszkP8BAEZgmfN/d780k9ckbTx+VZKHDJ8/lOS7p7331M0x3f2VJN+2xbk/qqp/SHJhJu8ZPXT/Dyb59e5+1rTzAQAAiyH7AwDAeMj/AACssllWjjms7n5jkvtW1U2S3DrJ1d39hZ2eBwCA3XXMEnePsxxkfwCA1SD7sx3yPwDAahhr/t/x5phDuvvaJB/frfsDAADLQfYHAIDxkP8BANiLdq05BgCAvW2tetElAAAAcyD7AwDAeIw1/8/UHFNV35ekkny4uz+6jev/SZLTktzQ3W+eZU4AAGD+ZH8AABgP+R8AgFU1dXNMVd03yeuSdJL9SY4YkJMcn+SSJF1V53T3pdPOCwDAfK2N9L2jfJ3sDwAwDrI/ifwPADAWY83/azOMefiwf1d3v3M7A7r73UneMXx95AxzAgAA8yf7AwDAeMj/AACsrFleq3SPTDrHXz3luFcnOSvJPWeYEwCAORtr9zg3IvsDAIyA7M9A/gcAGIGx5v9ZVo45fdi/b8pxH9gwHgAAWG6yPwAAjIf8DwDAyppl5ZibD/urpxx3zbA/boY5AQCYhp1+qAAAIABJREFUs1m6qFk5sj8AwAjI/gzkfwCAERhr/p/l7/4/w/7EKccduv6LM8wJAADMn+wPAADjIf8DALCyZmmO+ciwP2/KcecO+4/OMCcAAHNWtfsbS+8jw172BwBYYbI/g48Me/kfAGCFjTX7z9Ic8+dJKslDq+rO2xlQVWcmeViSTvL6GebceL/nH+09AACAI5L9AQBgPBaa/2V/AAB2074Zxvx2kv+Y5Jgkr6yqH+ju9251cVXdJclFw/XXD+O3raou2ngoyXlV9S1J0t0/PM39AADYniVu8GZ+ZH8AgBGQ/RnMLf/L/gAAizPW/D91c0x3f7CqnpXkp5L8kyTvqKo/SPKKJO9L8qUkxyb5ziQ/nOQxSb4pk87x3zpcmN7CqUnem0mw7kz+W+1P8t8PN6iqDiQ5kCR3esKTcsqDz59yWgAAGDfZn1VwzsnXLLoEAIA9Yc75f6bsn9w4/9/h8f85t7nv6vTRnHn7GxZdAgDAyqrunn5Q1TFJXpLkh4ZDh7vJocaji5L8SHdfP+Vca5mE8YckeVJ3v6uqPtTd377de5x38aXT/5EAAAvw5w+519I0bV/26Vfueobaf5sfWJq/l83J/ux1mmMAWFZPvdv9lyYLy/4cMq/8vxPZP0nu9oI3rVT+1xwDAKvr+fe5z9Lk4d3O/8ua/Wd5rVKGkHt+Vf10kp9OcsJhLv9skqd396/MONcNSX61qv542H8iM9YNAMD2rS26AJaC7A8AsPpkfw6ZV/6X/QEAFmes+f+owmZ3/7eq+o0kD05y70yWQrxlki8kuTLJm5K8qruvPtpCu/vKJI+sqh8Y7g8AAMyJ7A8AAOMxr/wv+wMAMC9H3Ynd3V9O8uJh23Xd/cokr5zHXAAAY1a1UqtTswNkfwCA1ST7s5l55n/ZHwBgfsaa/8e6Yg4AAAAAAAAAACPgHZ4AAGyqFl0AAAAwF7I/AACMx1jzv5VjAAAAAAAAAABYWVaOAQBgUzXW9nEAABgZ2R8AAMZjrPnfyjEAAAAAAAAAAKwsK8cAALCpkTaPAwDA6Mj+AAAwHmPN/1aOAQAAAAAAAABgZVk5BgCATa2NtX0cAABGRvYHAIDxGGv+t3IMAAAAAAAAAAAry8oxAABsaqTN4wAAMDqyPwAAjMdY87+VYwAAAAAAAAAAWFlWjgEAYFM11vZxAAAYGdkfAADGY6z5f6aVY6rqQ1X1t1X1fTtdEAAAsDxkfwAAGA/5HwCAVTXryjGnJekkN9t4oqpOSHJmknT3G2euDACAhRpp8zjf6LTI/gAAK032Z53TIv8DAKy0seb/3Xit0vcleWmSG3bp/gAAwHKQ/QEAYDzkfwAA9qzDBtiqel2S1ye5JMnbuvv6Ke491oYjAICVIMyNi+wPADBewtz4yP8AAOM11jB3pO7u+yY5b/h8dVW9KZOwDAAArBbZHwAAxkP+BwBgVI7UHPPcJOdm8p7RWyR5UJIHrjv/1Kq6Z5K3JvmL7v78zpeYVNXZSbq7315Vdx7qeH93X7wb8wEAkKyNtX18vJ4b2R8AYJSWPftX1SOTXJjkO5Oc3d2XbXHdR5J8Mcn1Sa7r7v3zqnEPem4WnP9lfwCAxVj2/L9bDtsc092PS5KqOi3J/TLpJj83ye2GS+6e5OxDl1fVB5J8eicLrKqfT/LgJPuq6rXDnJck+dmq+p7u/qWdnA8AAMZoVbL/OSdfs5MlAQCH8aBTv7roEhiPy5M8PMn/3Ma153X3jubUVbTo/L9Tz/3PvP0NO1USAOyYe54oJ8MyWtvORd39ke7+ne7+0e6+/bpTb07y4UxeS7WWSef+vQ+drKorqurZVfWYqrpdZvOIJPdKck6Sf5fkod39tEy62B+11aCqOlBVl1XVZVe96uUzTg0AMF41h43ls9ez/zte8soZpwYAGK9lz/7d/b7u/sBR3oZNLDD/z5T9h7m/lv//5hWvmGFqAIBxW+bsv5u21RxzGL/Y3XdMclKShyZ5RpJ3rTv/7Ukel+T3klxZVe+rqt+Yco7ruvv67r46yd929xeSpLuvSbJlW3h3H+zu/d29/5QHnz/llAAAwAZ7Ivuf9fAfmHJKAADmYX1Dw7Ad2IVpOslrquodu3T/Mdnt/D9T9h+u+Vr+v9MP/dAUUwIAMGaHfa1SVZ3Q3Z890k26+1NJLkpyUVX9RZKXDqeeluS8TJZfvGmS/yvJnTLpBN+uf6yqmw8h+ax1td0qRwjJAADMrqoXXQJzJPsDAIzXPLJ/dx9McnDrGup1SU7e5NSTu3u7S4Pfq7uvqqoTk7y2qt7f3W+codyVtwT5X/YHAFiQsT77P2xzTJJPVtVfZ/Kuz9cneeOhDu7t6O4Lk1xYVd+c5J6ZhOVzp6zxnO7+6nC/9aH4JkkeO+W9AACAzcn+AAAsTHfffwfucdWw/2RVvTSTxg3NMZtbdP6X/QEAmKsjNcesJblrku9O8lNJbqiqd647f9PtTNLdX8kkYL9+2gIPBeRNjn86yaenvR8AANuzzO8GZVfI/gAAI7UK2b+qbpFkrbu/OHz+/kxWN2FzC83/sj8AwOKsQv6fxZGaYx6eSbf3uUn+aZJjkuzP5N2tleRlVfWBJG9JcumwH+u/JQDASimpbmxkfwCAkVr27F9VD0vy60lum+SVVfWu7n5gVZ2S5Le7+yFJTkry0pr8MfuSvKC7/3RhRS8/+R8AYKSWPf/vlsM2x3T3y5K8LEmq6vgk98kkLD8xXw/J35HJ+0R/fBj2j4fGV9WZ3X35jlcNAADsKNkfAPj/2bvzcNeq+v7j7y8zAgqIKJNctYJaB0QERYsXUMQJQRzqBNSB6k+LOFUUhavWljpbtbUgiHUeUaEWAeXizCAIgqAgXmRSFBBkkPH7+2Ovw9k3JDk5J9lJTvJ+Pc96srOzstfayU7ySc46a0vjKjOPAY5ps/4K4Oll+WKqWVDUA/O/JEmSps1cM8fcJTOvpQrL34iIA8rqfy/b2BHYlmqqxTWZDc9nR8TVwClU5y49OTN/ObDeS5IkqTGrjLoDGhmzvyRJ0nQx+083878kSdJ0mdb83/PgmA5OzswTACJiDappF/cFXslsSN4I2JtqmkYi4o+Zeb8+25UkSZI0XGZ/SZIkaXqY/yVJkjRRBjYoKDNvzcwfA9+urX4k8Drgm8CfqQLzfQbVpiRJkpoT0XzR4mT2lyRJmixmf3Vj/pckSZos05r9+505pqtyztFzgY9GRADbADs32aYkSZKk4TP7S5IkSdPD/C9JkqTFpp/BMfMa85OZCZxViiRJksbcGA/w1vCZ/SVJkiaY2V8tzP+SJEkTbFrz/4IGx2TmwE7HJEmSJGl8mf0lSZKk6WH+lyRJ0qRq4rRKvwM+3cB2JUmSNETjfG5QjQ2zvyRJ0gQw+6tH5n9JkqQJMK35f+CDYzLzLOAfBr1dSZIkSePF7C9JkiRND/O/JEmSFrMmZo6RJEnSBJjSweOSJEnS1DH7S5IkSdNjWvO/5w+VJEmSJEmSJEmSJEnSxHLmGEmSJLW1yrQOH5ckSZKmjNlfkiRJmh7Tmv+dOUaSJEmSJEmSJEmSJEkTy5ljJEmS1NaUDh6XJEmSpo7ZX5IkSZoe05r/nTlGkiRJkiRJkiRJkiRJE2tRDI6JiIdExK4RsW7L+t1H1SdJkqRJF5GNF6mV2V+SJGn4zP4aBbO/JEnSaExr9h/7wTERcQDwTeCfgHMj4tm1m/91NL2SJEmSNGhmf0mSJGk6mP0lSZI0bKuNugM9eCXwmMy8ISKWAF+NiCWZ+RG6nA4rIvYH9gfY6rVvZtOnPbtTVUmSJLUxrecd1Uj1nf2fcfCBPOY5zxhGXyVp6uy++S2j7oKm2Nb3umPUXZhoZn+NwIKyP6yc/3d44xvZ6lnParqvkjQ2dtzYTK6VPf6+t466C1qEpjX/L4bBMatm5g0AmbkiIpZSBeUt6fK8ZebhwOEAO3/7R+M7d48kSZKkGX1n/0PPPMnsL0mSJI2/BWX/Uv+u/L/PKaeY/yVJktSTsT+tEvD7iNhm5koJzM8ENgIeMbJeSZIkTbiI5ovUwuwvSZI0AmZ/jYDZX5IkaUSmNfsvhsEx+wC/r6/IzNszcx9gp9F0SZIkSVIDzP6SJEnSdDD7S5IkaajG/rRKmXlZl9t+NMy+SJIkTZMxHuCtCWX2lyRJGg2zv4bN7C9JkjQ605r/F8PMMZIkSZIkSZIkSZIkSdKCjP3MMZIkSRoNR1FLkiRJ08HsL0mSJE2Pac3/07rfkiRJkiRJkiRJkiRJmgLOHCNJkqS2YlpPPCpJkiRNGbO/JEmSND2mNf87c4wkSZIkSZIkSZIkSZImljPHSJIkqYMpHT4uSZIkTR2zvyRJkjQ9pjP/OzhGkiRJbcWUBmRJkiRp2pj9JUmSpOkxrfnf0ypJkiRJkiRJkiRJkiRppCLi3RFxTkT8PCJOiIhNO9TbNyIuLGXfXrbtzDGSJElqK8Jx1JIkSdI0MPtLkiRJ02PM8//7MvMdABFxAHAI8Kp6hYjYEDgU2A5I4GcR8a3MvLbbhsd6ryVJkiRJkiRJkiRJkjT5MvP62tV1qAa/tHoqcGJmXlMGxJwI7D7Xtp05RpIkSR1M53lHJUmSpOlj9pckSZKmx3jn/4h4D7APcB2wc5sqmwGX1q5fVtZ15cwxkiRJkiRJkiRJkiRJ6ltE7B8RZ9TK/i23nxQR57YpzwbIzIMzcwvgc8Br2zXRZl27GWZW4swxkiRJaivGfPS4JEmSpMEw+0uSJEnTo+n8n5mHA4d3uf3JPW7q88D/Aoe2rL8MWFq7vjmwfK6NOXOMJEmSFqWI2DAiToyIC8vlBh3q7VvqXBgR+9bWvzAifhER50TE8RGx0fB6L0mSJEmSJEmS6iLiwbWrewAXtKn2HWC3iNig/F1gt7KuKwfHSJIkqYMYQunLQcB3M/PBwHfL9ZX3IGJDqlHlOwDbA4eWwLwa8BFg58x8JHAO7adnlCRJkqbA2Gd/SZIkSQMz1tn/sHKKpXOoBr28DiAitouITwJk5jXAu4HTS3lXWdeVp1WSJEnSYvVsZqdO/DTVtIlvaanzVODEmWAcEScCuwNfpUrp60TE1cA9gYua77IkSZIkSZIkSWonM/fusP4M4BW160cBR81n2w6OkSRJUlsRzU8yGBH7A/vXVh1ezkfai/tm5pUAmXllRGzcps5mwKW165cBm2XmbRHxauAXwI3AhcBr5r0DkiRJ0gQYRvaXJEmSNB6mNf87OEaSJEkjUwbCdBwMExEnAfdrc9PBPTbRbg7HjIjVgVcDjwYuBj4KvBX4lx63K0mSJEmSJEmSFolFPTgmIv4hMz816n5IkiRNpr7PDdq3zHxyp9si4g8RsUmZNWYT4Ko21S5j9tRLAJtTnX5pm7L935RtfRk4aEDdVkPM/5IGYffNbxl1F9SDre91x6i7oCm14ZoPGXUXRmT02V+qM/tLk2vHjc3ji8Xj73vrqLugMbLluquOugsaqOnM/4t9vpx3drohIvaPiDMi4owr/u+bw+yTJEmShuNbwL5leV+gXej7DrBbRGwQERsAu5V1lwMPi4j7lHpPAc5vuL/qX9v8X8/+P/v6/w67T5IkSZIGr6ff/n997LHD7JMkSZIWsbGfOSYizul0E3DfTverT9G/87d/lA10TZIkaaLF+I8ePwz4ckS8HPgd8DyAiNgOeFVmviIzr4mIdwOnl/u8KzOvKfXeCXw/Im4DLgH2G/YO6O4Wkv/r2f/QM08y+0uSJM3TIsj+mkCD+O1/n1NOMf9LkiTN07Tm/7EfHEMVgp8KXNuyPoAfD787kiRJGgeZeTWwa5v1ZwCvqF0/CjiqTb1PAJ9oso9aEPO/JEmSNB3M/pIkSRqaxTA45jhg3cz8eesNEbF8+N2RJEmaDtM6elwjZ/6XJEkaMrO/RsTsL0mSNALTmv/HfnBMZr68y20vGmZfJEmSJDXL/C9JkiRNB7O/JEmShmnsB8dIkiRpVFYZdQckSZIkDYXZX5IkSZoe05n/p3OvJUmSJEmSJEmSJEmSNBWcOUaSJEltRUzneUclSZKkaWP2lyRJkqbHtOZ/Z46RJEmSJEmSJEmSJEnSxHLmGEmSJHUwnaPHJUmSpOlj9pckSZKmx3Tmf2eOkSRJkiRJkiRJkiRJ0sRy5hhJkiS1FVM6elySJEmaNmZ/SZIkaXpMa/535hhJkiRJkiRJkiRJkiRNLGeOkSRJUgeOo5YkSZKmg9lfkiRJmh7Tmf8dHCNJkqS2pnVqRUmSJGnamP0lSZKk6TGt+X86hwRJkiRJkiRJkiRJkiRpKjhzjCRJktqKmM7R45IkSdK0MftLkiRJ02Na878zx0iSJEmSJEmSJEmSJGliOXOMJEmSOpjO0eOSJEnS9DH7S5IkSdNjOvO/M8dIkiRJkiRJkiRJkiRpYjlzjCRJktoKx1FLkiRJU8HsL0mSJE2Pac3/i2JwTEQ8BHg2sBmQwBXAtzLz/JF2TJIkSdJAmf0lSZKk6WD2lyRJ0jCN/ZCgiHgL8EWqE1+dBpxelr8QEQeNsm+SJEmTLYZQpFlmf0mSpFEx+2u4zP6SJEmjNJ3ZfzHMHPNy4G8z87b6yoj4IHAecFi7O0XE/sD+AFu99s1s+rRnN91PSZIkSf3pO/s/4+ADecxzntF0P6Wpsfvmt4y6C4vW1ve6Y9RdUI82XPMho+6CJE2jBWX/Uueu/L/DG9/IVs96VpP9lKbGjhtPXvZ//H1vHXUX1IMt11111F3QmFl/jQeNuguaUIthcMydwKbAJS3rNym3tZWZhwOHA+z87R9lY72TJEmaUBHjO8JbE6vv7H/omSeZ/SVJkubJ7K8RWFD2h5Xz/z6nnGL+lyRJmqdpzf+LYXDMgcB3I+JC4NKy7v7A3wCvHVmvJEmSJA2a2V+SJEmaDmZ/SZIkDdXYD47JzOMjYitge2AzqpNUXQacnpnOUSxJktSY6Rw9rtEx+0uSJI2K2V/DZfaXJEkapenM/2M/OAYgM+8EfjrqfkiSJElqltlfkiRJmg5mf0mSJA3TohgcI0mSpOELVhl1FyRJkiQNgdlfkiRJmh7Tmv+nc68lSZIkSZIkSZIkSZI0FZw5RpIkSR1M53lHJUmSpOlj9pckSZKmx3Tmf2eOkSRJkiRJkiRJkiRJ0sRy5hhJkiS1FVM6elySJEmaNmZ/SZIkaXpMa/535hhJkiRJkiRJkiRJkiRNLGeOkSRJUlsR0zl6XJIkSZo2Zn9JkiRpekxr/nfmGEmSJEmSJEmSJEmSJE0sZ46RJElSB46jliRJkqaD2V+SJEmaHtOZ/6dzryVJkiRJkiRJkiRJkjQVnDlGkiRJbQXTed5RSZIkadqY/SVJkqTpMa3535ljJEmSJEmSJEmSJEmSNLGcOUaSJEkdTOfocUmSJGn6mP0lSZKk6TGd+d/BMZIkSWorYjoDsiRJkjRtzP6SJEnS9JjW/O9plSRJkiRJkiRJkiRJkjSxHBwjSZKkDlYZQpEkSZI0euOd/SPi3RFxTkT8PCJOiIhNO9TbNyIuLGXfvhqVJEmSJtb4Zv8mjW/PJEmSJEmSJEmC92XmIzNzG+A44JDWChGxIXAosAOwPXBoRGww3G5KkiRJGlerjboDkiRJGk/BdJ53VJIkSZo24579M/P62tV1gGxT7anAiZl5DUBEnAjsDnyh+R5KkiRJi8e45/+mODhGkiRJkiRJkjTWIuI9wD7AdcDObapsBlxau35ZWSdJkiRJkJmWNgXY37bGvx33aXG0M6ltuU+Lo61J3Ccfv8XRzrDbslgs/RXfg8a/nUlty31aHG1N4j75+C2OdtynxdOW2b+3xwg4o1b2b7n9JODcNuXZLfXeCryzzfbfDLy9dv0dwBtHvd+W8Su+By2Ottwn23KfFmdbk7hPPn6Lo51J3SfLYMsqqJP9bWtRtDPMttwn2xpVO8Nsy32yrVG1M8y2JnGfJPXP96Dxb2dS23KfFkdbk7hPw2zLfVocbU3iPg2zLbP/HDLz8MzcrlYOb7n9yZn58Dblmy2b+jywd5smLgO2qF3fHLhisHuhCeF70OJoy32yrVG1M8y23CfbGlU7w2zLfdLYcHCMJEmSJEmSJGlsRcSDa1f3AC5oU+07wG4RsUFEbADsVtZJkiRJEquNugOSJEmSJEmSJHVxWERsDdwJXAK8CiAitgNelZmvyMxrIuLdwOnlPu/KzGtG011JkiRJ48bBMZ0dPncV2xqDdobZlvtkW6NqZ5htuU+2Nap2htnWJO6TpP75HjT+7UxqW+7T4mhrEvdpmG25T4ujrUncp2G2ZfZvUGa2O40SmXkG8Ira9aOAo4bVLy1avgctjrbcJ9saVTvDbMt9sq1RtTPMttwnjY3IzFH3QZIkSZIkSZIkSZIkSWrEKqPugCRJkiRJkiRJkiRJktQUB8e0ERG7R8SvIuKiiDiowXaOioirIuLcptoo7WwRESdHxPkRcV5EvK7BttaKiNMi4uzS1jubaqu0t2pEnBURxzXczoqI+EVE/DwizmiwnfUj4qsRcUF5vh7fUDtbl32ZKddHxIFNtFXae305Hs6NiC9ExFoNtfO60sZ5g96fdq/XiNgwIk6MiAvL5QYNtvW8sl93lvNpN9XO+8rxd05EHBMR6zfY1rtLOz+PiBMiYtMm2qnd9qaIyIjYqN92OrUVEcsi4vLaa+vpTbRT1v9T+aw6LyLe2287ndqKiC/V9mdFRPy8wba2iYifzrzXRsT2DbXzqIj4SXlfPzYi7jmAdtp+1jb1PiFpcMLs309bZv/+22o8/4fZfyHbNvsPvq2BZ/9ObdVuG1j+77BPA8/+ndoq6wea/zvsk9m/97bM/9IiFBOW/UtbQ8n/MeTsX9psPP/HhGX/0s7Q8n8MKfuXthZ9/u/QzsCzf5e2Bp7/O7Rj9u+jrbLe7L/wtvztX91lpqVWgFWB3wAPBNYAzgYe1lBbOwHbAuc2vE+bANuW5fWAXze4TwGsW5ZXB04FHtfgvr0B+DxwXMOP4QpgoybbKO18GnhFWV4DWH8Iba4K/B7YsqHtbwb8Fli7XP8ysF8D7TwcOBe4B7AacBLw4AFu/26vV+C9wEFl+SDg3xts66HA1sByYLsG29kNWK0s/3vD+3TP2vIBwCeaaKes3wL4DnDJoF7LHfZpGfCmQR13XdrZuRzja5brGzfVVsvtHwAOaXC/TgCeVpafDixvqJ3TgSeV5ZcB7x5AO20/a5t6n7BYLIMpmP37bcvs339bQ83/mP173b7Zf/BtDTz7d2qrrB9o/u+wT8sYcPbv0tbA8/9cn0uY/edqy/xvsSyywgRm/9LWUPI/Q87+pZ3G8z8TnP1LO43lf4aU/cu2JyL/d2hn4Nm/S1sDz/8d2jH799eW2b+/tvzt39K1OHPM3W0PXJSZF2fmrcAXgWc30VBmfh+4poltt7RzZWaeWZb/ApxPFVyaaCsz84ZydfVSsom2ImJz4BnAJ5vY/rCV0Ys7AUcCZOatmfnnITS9K/CbzLykwTZWA9aOiNWoAuwVDbTxUOCnmXlTZt4OnALsNaiNd3i9PpvqSw3lcs+m2srM8zPzV4PY/hztnFAeP4CfAps32Nb1tavrMID3ii7vqx8C/nkQbfTQ1kB1aOfVwGGZeUupc1WDbQEQEQE8H/hCg20lMDOS+14M4L2iQztbA98vyycCew+gnU6ftY28T0gaGLN/f22Z/fswovxv9u+B2b+Rtgae/Tu1VQw0/w/rPbxLWwPP/2b/vtsy/0uLz8Rl/9LWUPL/MLM/TF7+n+Df/oeR/WFC8v+wsn+Xtgae/83+jbRl9u+vLX/7V1cOjrm7zYBLa9cvo6Efk0chIpYAj6Ya2d1UG6uW6beuAk7MzKba+jDVB96dDW2/LoETIuJnEbF/Q208EPgj8Kmopov8ZESs01BbdX/PgD702snMy4H3A78DrgSuy8wTGmjqXGCniLh3RNyDavTpFg20U3ffzLwSqg9HYOOG2xu2lwH/12QDEfGeiLgUeDFwSENt7AFcnplnN7H9Nl5bpo08qsFp9LYC/i4iTo2IUyLisQ21U/d3wB8y88IG2zgQeF85Jt4PvLWhds4F9ijLz2PA7xUtn7WT/j4hLXZm//7bMPsv3Cjyv9l/4Sb9M30isn9pZ5j5fxjZH4af/83+82D+lxaNic7+0Hz+H2L2h+Hl/0nO/tBg/h9i9gfzfxMazf9m/76Y/fvjb//qysExdxdt1jU2AnqYImJd4GvAgS0jNwcqM+/IzG2oRp1uHxEPH3QbEfFM4KrM/Nmgt93BEzJzW+BpwGsiYqcG2liNavqv/8rMRwM3Uk3D1ZiIWIPqQ+IrDbaxAdXoyQcAmwLrRMRLBt1OZp5PNRXgicDxVFOj3t71TuooIg6mevw+12Q7mXlwZm5R2nntoLdfviwdTIMBvMV/AQ8CtqH6UviBhtpZDdgAeBzwZuDLZYR3k15Ig39MK14NvL4cE6+n/DdNA15G9V7+M6ppEG8d1IaH9VkraWDM/n0y+/dlqPnf7K9OJiX7w9Dz/7CyPww//5v9e2T+lxaVic3+MJz3o2Fkfxh6/p/I7A/N5/9hZX8w/w/aMPK/2b8vZv/++Nu/unJwzN1dxsqjyDanuanghiYiVqd6wX4uM78+jDbLtIDLgd0b2PwTgD0iYgXVFJi7RMRnG2gHgMy8olxeBRxDNQ3noF0GXFYbcf9VqsDcpKcBZ2bmHxps48nAbzPzj5l5G/B1YMcmGsrMIzNz28zciWoqtSZHugL8ISI2ASiXAzm1zahFxL7AM4EXZ+awfiT4PAOa3rrFg6i+oJ1d3i82B86MiPs10BaZ+YfyQ8GdwBE0814B1fvF18uUtqdR/RfNRg21RZka9TnAl5pqo9iX6j0Cqi/ujTx+mXlBZu6WmY+hCv6/GcR2O3zWTuT7hDRBzP4DYvZfkGHnf7N/fybyM33Csj+0Qf/8AAAgAElEQVQMMf8PMfvDEPO/2b935n9p0ZnI7A/Dz/8NZ38YYv6f4OwPzef/oWV/MP8Pygjyv9l//sz+ffC3f83FwTF3dzrw4Ih4QBlZ+/fAt0bcp76UEYVHAudn5gcbbus+EbF+WV6bKiBdMOh2MvOtmbl5Zi6heo6+l5mNjEqOiHUiYr2ZZWA3qmm5Biozfw9cGhFbl1W7Ar8cdDsthjEi9HfA4yLiHuVY3JXqfHwDFxEbl8v7U32gN71v36L6UKdcfrPh9hoXEbsDbwH2yMybGm7rwbWre9DMe8UvMnPjzFxS3i8uA7Ytr7eBmwlCxV408F5RfAPYpbS5FbAG8KeG2oLyXp6ZlzXYBlQ/Sj2pLO9CQ19ya+8VqwBvBz4xgG12+qyduPcJacKY/ftry+zfhxHkf7N/fybuM33Ssj8MN/8PMfvDcPO/2b+37Zr/pcVn4rI/DC//Dyv7w/Dy/4Rnf2g+/w8t+4P5fxCGlf/N/n0z+/fB3/41p8y0tBSq8xX+mmo02cENtvMFqum3bqN60355Q+08kWqKyHOAn5fy9IbaeiRwVmnrXOCQITxfS4HjGtz+A6mm6TsbOK/hY2Ib4Izy+H0D2KDBtu4BXA3cawjP0TupAtC5wGeANRtq5wdUXyrOBnYd8Lbv9noF7g18l+qD/LvAhg22tVdZvgX4A/Cdhtq5iOr8yzPvFZ9ocJ++Vo6Jc4Bjgc2aaKfl9hXARg3u02eAX5R9+hawSUPtrAF8tjx+ZwK7NLVPZf3RwKsG0cYc+/VE4GflNXwq8JiG2nkd1ef8r4HDgBhAO20/a5t6n7BYLIMrmP37acvs3397Q8n/mP3nu22z/+DbGnj279RWy+0rGED+77BPA8/+XdoaeP7v9Nhh9u+1LfO/xbIICxOW/UtbQ8n/jCD7l3aX0lD+Z0Kzf2lrKPmfIWX/0taiz/8d2hl49u/S1sDzf4d2zP79tWX2768tf/u3dC1RnlRJkiRJkiRJkiRJkiRp4nhaJUmSJEmSJEmSJEmSJE0sB8dIkiRJkiRJkiRJkiRpYjk4RpIkSZIkSZIkSZIkSRPLwTGSJEmSJEmSJEmSJEmaWA6OkSRJkiRJkiRJkiRJ0sRycIwkqaOIODoispQlfWxn+cx2Bte7yRIRS2uP9bJR90eSJEnTxew/PGZ/SZIkjZLZf3jM/tJ4cXCMhiYi9ipv/ndGxEYttx1VbvveqPqnhYmI/SJimR/q0soiYv2Z10ZE7Dnq/kiSNExm/8lk9pfaM/tLkqaZ2X8ymf2l9sz+0uK22qg7oKmytFz+IjP/1HLbzuXy5OF1RwOyH/CksrxsdN2Qxs76wKFl+dPAN0bYF0mShm1puTT7T5b9MPtL7Zj9JUnTbGm5NPtPlv0w+0vtmP2lRczBMRqmpeVypSAcEQ8AlrS7TZKmRWYuB2LU/ZAkaUCWlkuzvyS1MPtLkibM0nJp9pekFmZ/abx4WiUNRURsCDyiXG2dQnHXcnkTcOrQOiVJkiRp4Mz+kiRJ0nQw+0uSpMXEwTEalidRjYy8E/h+y227lMsfZuZtQ+2VJEmSpEEz+0uSJEnTwewvSZIWDQfHaFhmzk15Vmb+ueW2peWykakVI2KriHhvRJweEX+MiNsi4rqIODMiPh4Ru0bE3aY0i4i1I2KvUufUiLi6dt/zIuK/IuJRPbS/PCIyIrJcXzUi9ouIEyPi8oi4PSJWtNxn1Yh4aUQcGxGXRsRfI+LmsnxmRBweEc+JiHv08bj0tX8z+8Xsc8vMfraUZQvs3/oR8ZaIOCUiroqIWyPi+oi4OCJ+HBGHRcTSds9dy3Z2j4ijI+LCiPhLRNwUEb8p6544j/5sEBH/HBEnRcQVEXFLRNwYEb+KiM9HxIsjYq0u979HRLw+Ik6OiN+X+18VET+MiLdGxL3maH9Z7TFdWtY9LiI+FxGX1LZ3XETs3uM+rRYRry2P57URcUNEXBARH4iILXt9bAYtInYox/ivynN2Y3nOPh0Ru8y9hbu2ExGxZ0R8pjz/15fj6MryPL4tIpZ0uO/9y2PzldKPG8p9ryrH/ls6PWcRsaS8Nn5bW71vh9fHktr9lvb6uhnH40mSpBqzv9l/vv0z+698f7O/2b/extgdT5Ik1Zj9zf7z7Z/Zf+X7m/3N/vU2xu54kiZOZlosAy1ADqis6LMfqwEfAm7voa0ntbn/b3vs57/O0Y/ltbobAj/otq/ARsBpPba9Zx+PT1/717Jf3cqyBfTtscAfetz++h22cR/guz3c/5PA6nP0Z1/guh62dWiH+z8OuHyO+/4J2K1LH5bV6i4F3gbc0WV775xjnzYGzuxy/2uBJwNH19Yt6eN4u+t4meM1e3gPj/OXgbXnaO9BwM962NZv29x3KdV/u8x136uAJ7a5/5Iej92VHtPS7pyvm3E8niwWi8UyvWUen3lzlRV99sPs371ffe0fZv925dAO9x+7rIbZf6b8ts19l2L2n9fxZLFYLJbpLfP4zJurrOizH2b/7v3qa/8w+7crh3a4/9hlNcz+M+W3be67FLP/vI4ni2USy2pIE6iMKv4asEdZdQfwDapR6lcB9wAeCjwV2IZq6sdWawPXACcCZ1F9KN0GbAZsCzwfWB14a0RclZkf7qFrnwWeCJwNfAFYAdwTeGStzhFUIRHgolLv18DNpe7WwE7ADj20102/+/d2qkD/L8DflnV7tWnngvl0KqpR8cdQhTiopuM8DvgdVXDZCHg41Tlrt+6wjQ2Bn1AFJYBfAl+hehzvLP3dD9gceDlVONuvw7beCLy/tupHwLHAJcCqVIHoScDOtDmOImIbqvPtrl1WnQV8vuzP/age5ycA9waOi4jdMnN5u77U7A+8kOo5Oxo4D1gD2B14QenHIRFxSma2nuuXiFgDOB54dFl1FdWXhXOBdcp29qZ6zH4+R18G6X+o9gvgr8CngR9TvX63o3qu1gOeB9wrInbPzGzdSERsRfX8b1hWXQl8iep1dyPVsbUd8Ezav/bXKuvPo3rPOB+4uqzfAtgTeAzVF7HjImKbzFxRu/9VVK+FjYH/LutOBv6jTVtXdXow2hnH40mSpFEz+/fE7G/2N/ub/cHsL0la5Mz+PTH7m/3N/mZ/MPtL7Y16dI5l8grVG2u9HEZtxHPLbTOjqU9tc78n9dGHf661eQnwiC51HwNs2WE/Vutyvy2pPjwTuB5Yr0O95aw8EvNDwCod6m7M7CjO04F15mj/bv2e5/M00P0b0PHz3Npj9Z9z1N0BWLPN+mNq23h7u8cbWBf4Tq3e7m3qPJ7Z/0C4GXhBl75sBuzQsm4VquA508aHO/TlHbU6vwPWalNnWctxdEK74wN4fa3Otzv09e21OmcB925TZ2/u/t8XS/p4XrseJ1RhbKad3wMP63BMXlyr95o2dVYFzqnV+Sxwjw5trg48q0M7Hd8zSp0X1l6rn+pQZ0mtH0f38BgtrdVf1ub2sTyeLBaLxTLdBbN/a73lrPwZa/bv3i+zv9nf7G/2t1gsFssiKZj9W+stZ+XPWLN/936Z/c3+Zn+zv8Uy8jLyDlgmv1CNvk3ggja3/abc9q4Btrcu1WjPBG6Z68Ouz7Z2rn2AvKRDneW1Ome0+1Cr1X1cre7rx+C5m9f+DajNg2ptPnoB99+2dv8j56i7AfDnmZDQ5vYTatvafwF92aN2/58A0aXucbW6r2hzez3U/AnYoMN2VqH6YphUo7BXa7l9DWanrrwFeHCXPr2vJUgt6eN57XqcsPJUj0/rsp3tmZ36cAWwasvtL6pt5wfdXm8DOFY/Xdq5iTZTdDL4kDx2x5PFYrFYLK0Fs//yWh2z/9xtmv3N/mZ/s7/FYrFYFmnB7L+8VsfsP3ebZn+zv9nf7G+xjLysgtS8Hcvlj+srI2Jj4IHl6k8G2N7TmJ1W7fOZ+YsBbrtVfZ96me7w45l5Z5fbb6ot/23HWsMz3/0bhH4fg5fWlt/fsRaQmdcC3y5Xd4qINWdui4j7AE8pVy+mmn5wvp5TW35fZmaXuod1uF87/1P6fjfl+DqlXF2T2SkmZzyB2akrj83MC7u080GqQNqoiFjC7FSPv8jM/+tUNzNPo5peEKqR3o9pqfLi2vLb53i99Wvm9bE2K0+R2pRxPJ4kSWpl9p9l9p+b2d/sb/ZvbxyPJ0mSWpn9Z5n952b2N/ub/dsbx+NJmlirjboDmmwldGxbrv6o5ebHl8sEfjrAZp9YW/5WPxsqQX4fYDfgYVQjju/RofrmPWzyB3Pcfh5wBbAp8PJyDtUjgNOa+LBvYP8G4SSqYyKAT0TEg6i+7HQLc3V/Vy5vBbaOiLbnJ61Zs3b5QKopJWHl4+i4BT7+25fLpDrHazc/Bm6g+g+Iub6QzPV6uby2vEHLbY+tLX+320Yy88qI+CXVuV6btH1t+YQe6p9Ade5ZqB6r02q3zTxv11Gdt3bBImIH4CVU/9nxQKrznq7eofrmwM/6aa8H43g8SZJ0F7P/3Zj952b2N/vPxew/PseTJEl3Mfvfjdl/bmZ/s/9czP7jczxJE8vBMWradsyGkB+33DYTkn/VafTiAtXD3Pkda80hIl4A/Ddwrx7vcs8e6lze7cbMvCMi/hH4GtU0eC8r5c8R8RPgh8B3MrPvD+OG9q9vmfnLiDgMeCuwDtU0cMsi4lKqY+j7wP9m5iUdNrGkXK5BdQ7S+agHgEEcR5uUy99n5l+6VczMOyPiN8CjgA0jYo3MvLVD9T/N0e4tteW1Wm7btLZ80RzbmanTdEjepLb86x7q1+vcdd+IWI/Z4/SCOUZYdxQRa1D9x8BL56pbM4zXxzgeT5Ik1Zn9V2b2n4PZ3+zfQ32z//gcT5Ik1Zn9V2b2n4PZ3+zfQ32z//gcT9LEcnCMBiYitgXu37L66eXyVuAhLaN5dyuXf4qIPVvu98PMnOuNu5P6h9UNC9lAROwEfB7uOvXYmVQjm39DNTK1/qExE8RWnWu7mXlzD3WOi4jtqcLhM6hGrK5PNW3k04D3RMS5wJsz8/he9qdVU/s3KJn5tog4HXgLs6NftwBeUMrHIuJ44MDMbA1VvYb+dtaoLfd9HFGNOAa4scf69XbWozqHbjv9/DfBurXlmzrWmtVr3/uxXm25l/ZaH6cZg3jOAD7ObEC+hWoKztOpvuTeCNxRbtsF+KeyPIzXxzgeT5KkKWX2N/sPitn/rvua/dsz+/fG7C9JaozZ3+w/KGb/u+5r9m/P7N8bs7/UBwfHaJAOAPbtcNsawNc73PZEVp7KDmBnYPkC+3F9bXndjrW6W8ZsgNw/M49oVyki1lng9rvKzLOBvcqI2CdQnb91p3K5OtWI3m9HxEsz83MLaGIZI9y/XmTmMcAxEbEp1ZSJOwJLqc7xGFRfGHaMiMdnZn2E9w1UXypWZOYD+ujCII6jv5S+9Po41tvpOkK4D/Xg1GkqzbphHAP1fe2lvU6PU9/PWTkP6svL1cuAJ2XmxR3qbraQNvowjseTJGl6mf0HxOxv9sfs343Zvzdmf0lSk8z+A2L2N/tj9u/G7N8bs7/Uh1XmriItOpfVlh863zuXqdVmzl95RqcAWWw53+3PR2b+JTOPz8xDMnMp1fRqHyo3B/DBiJjXyNVx2r9eZOYVmfmlzHxdZj4K2IpqtDtUo8Xf3XKXmSkst4iIfqa86+s4Kq4sl/crX3g6KueZfVC5enWXqfD6dUVt+W96qN9LnX5dWVt+cA/163Xu2p8y5eB15erW5TGdr12oXlsAh3UKyMWwXx/jeDxJkjRqZv8uxmn/emH2Hzizf3dmf0mSFhezfxfjtH+9MPsPnNm/O7O/JMDBMRqgzNwvM2OmUI30nbFNy23vKut/W19fK8v76MoPast7LOD+92Z2VqXfzFH3qQvY/oJl5tWZ+QbgjLJqY3oLFXWD3r+7pmZbYCiZl8y8EHgus1Pctf73wSnlclXgWX009UNg5tyVz4yIhbxfnlYuA9h1jro7Mjvi97RuFftU3/Yu3SpGxCYs/AvCfNT79JQe6u9WW259rH5YLten+q+L+bpvbbnf10d92sJBvDbG8XiSJE0ps3/zzP5m/wEw+3dn9pckqQdm/+aZ/c3+A2D2787sLwlwcIyatXO5vBo4p+W2peXy5Aba/T/gmrL8ooh4xDzvXz8f44M6VSojOF8/z20Pyora8nxPjzbo/atP1zeU6Rgz8zrg2nK1df//p7Z8yEKniMzMPwInlKsPBF6xgM18rbb8pjm+RLylw/0G7UfAH8ryHhHR8RgADmQI59TMzBVU578FeFRE7NapbkRsx2y4vwT4WUuVz9aW/2UBX256fX08m5V/CGhn0K+NcTyeJEmaYfZvzorastl/ZWb/7sz+3Zn9JUlaGLN/c1bUls3+KzP7d2f2787sLwlwcIyaNfNBdkpmzozEJSLWBnYoVwcekjPzRuCwcnUN4NhuQTkitomIu6ZJKwHswnJ1u4jYq8191gW+AmwxsI5X231qRLwuIu7Vpc7fMDvK9gbmHuW6kgb277e15W3n05d2IuKAiNg7IlbvUud5wEbl6tn12zLzVGZDwVZUz399VHDrtlaLiD0j4v+1uXkZsyPVPxIRz++ynU0iYvuW1f8LnFeWnwC8r11oi4i3MTva/VJgIeeT7Ulm3gZ8tFxdA/hyRGzYpk97Am9oqh9t/Htt+eiIeEhrhYi4P/BFZj+73peZd7RU+wqzX8qfCPxPRLQ9x2p57p/Rsvr02vKbImKDNvfbATiq454UmXkNs9M9bjOA/7AYu+NJkqQas/88mf3N/pj9wezfydgdT5Ik1Zj958nsb/bH7A9m/07G7niSJtl8R55KPSlv3DNTmy1vuXlHYM2y3MQIcoD3U31A7kF1fsCzIuKY0pergLWBrammaduOarT7JbX7fxT4j7L81Yj4HNW0bX8BHg7sB2xKNVp5nwH2exPgw8B7I+Jk4FTgYqpRrRsBjwWez+xo1A9n5s0LaGeQ+/dd4ICyfGREfIjqsZwJLxdl5kXz6Nu2wEeAayPiBKoRwpdTTVV3P6rnbGZauwT+rc02XkYVkB9B9dxeHBFfBX4C/AlYi+qx3rZsb0PgyNaNZOZPI+ItVMfTWsCXIuIA4FvA76jC2pZU53J9MvCv1Kayy8w7I+KlVKO21wbeCOxcHu/LqKbyez6zU0TeBuyTmX/t/eFakPdRTVG5DdVj8MuIOIIqgK0D7A7sTRXwfs7sf3w0JjO/XIL5C6memzMj4miq5+wOqtfpy4GZ88meAPxnm+3cUb5E/YTqeX0xsEtEfJHqC9XMa2lbqiD5V6rwOeMnVMfcY4AlwAUR8QngV1TP4S7AC6imOPw88KI5du17wF5Uo9G/FBFfB/5cu/2UXl/DY3w8SZKmnNl/wcz+Zn+zv9m/rTE+niRJU87sv2Bmf7O/2d/s39YYH0/SZMpMi2XgheoDKEt5eMtt7y7rf9VwH1YHPk71AZtzlJ1a7htU07R1u883qD6oZq4v79CP5TN1eujzPj30NakC44eBVRb42Axy/1alOt9rp+0sm2ffjurxMbgBeGmX7axHNdq4l20l8K4u23oF1ReIubZxSIf7Px64Yo77Xg08tUsfltXqLp3jMZyzLtV5a8/s0p9rqYL/0bV1S/p4Pc75OqAasHlED4/zV4C152jvwVQjyefa1sVt7vs3VF+COt3nr1RfxParrduvQz+2oQrmnba1pFZ3aW19x9fNOB5PFovFYpnugtm/vq05M0+trtnf7N+pD8tqdZfO8RjOWRez/0wx+5v9LRaLxdJnwexf39acmadW1+xv9u/Uh2W1ukvneAznrIvZf6aY/c3+Fkvb4mmV1JSZ847+idnpwFpvO7nJDmTmbZn5GuBRVCOSf0E1cvOOcvkzqpHUO2Xm91vum5n5EqrRoSeX+rdSjdI8DnhBZu6ZCxu93c1nSn/fAHwTuAi4sfR5ZjTvx4DHZOaBmXnnQhoZ5P5lNb3dU4CDqEbfXsvs6PGFeBVVWHhX6dvlwC3A7VTH0w+BQ4GtMvMzXfr1l8z8e6ovbB8GzqIKDrdTBewLqb4IvAF4UGYe0mVbn6Q6/+g7qEbv/rFs50bgAqovHM9ndlrP1vv/hCq0vQE4pdz/ttKfnwAHlz58p9sDM0iZeRXVNKf/BPwUuJ4qzP0K+BCwTWaeNKz+lD7dnpmvpAqBRzJ7/N9MNY3nZ4FdM/N5cx2bmXkhVUD9e+CrVKH3Zqrj/ArgRKrzcz6xzX0vAh5N9d8J51OF4huoHpuPAdtm5pzTK5Zt/ZxqNPony/1v6n6PnrY5dseTJGnqmf0Xxuxv9h8Ks7/ZX5KkATL7L4zZ3+w/FGZ/s7+k7iIzR90HSZIkSZIkSZIkSZIkqRHOHCNJkiRJkiRJkiRJkqSJ5eAYSZIkSZIkSZIkSZIkTSwHx0iSJEmSJEmSJEmSJGliOThGkiRJkiRJkiRJkiRJE8vBMZIkSZIkSZIkSZIkSZpYDo6RJEmSJEmSJEmSJEnSxHJwjCRJkiRJkiRJkiRJkiaWg2MkSZIkSZIkSZIkSZI0sRwcI0mSJEmSJEmSJEmSpInl4BhJkiRJkiRJkiRJkiRNLAfHSJIkSZIkSZIkSZIkaWI5OEaSJEmSJEmSJEmSJEkTy8ExkiRJkiRJkiRJkiRJmlgOjpEkSZIkSZIkSZIkSdLEcnCMJEmSJEmSJEmSJEmSJpaDYyRJkiRJkiRJkiRJkjSxHBwjSZIkSZIkSZIkSZKkieXgGEmSJEmSJEmSJEmSJE0sB8dIkiRJkiRJkiRJkiRpYjk4RpIkSZIkSZIkSZIkSRPLwTGSJEmSJEmSJEmSJEmaWA6OkSRJkiRJkiRJkiRJ0sRycIwkSZIkSZIkSZIkSZImloNjJEmSJEmSJEmSJEmSNLEcHCNJkiRJkiRJkiRJkqSJ5eAYSVMnIo6OiCxlSZvbl9RuP3roHZQkSZI0EGZ/SZIkaTgiYkXJ1StG3ZcmRMTyme8Oo+7LIM31nUmSJslqo+6AJKl5EfFQYEfgscCjgPsCGwFrAX8GfgUsBz6VmRePqJuSJEmSGhQRBwP/Ulv16czcb0TdkSRJ0hiLiP2AJQCZuWyUfZEkaRAcHCNJ0+FTwA4dbrtPKU8E3hIR78nMdw6tZ5IkSZIaFxFbA+8YdT8kSZK0aOwHPKksLxtdNyRJGgwHx0hSi8xcAcSo+9GA64DTgHOAK4ArgQS2BJ4O7ASsDiyLiFUz85BRdVSSJEkahgnO/iuJiAA+CawJ3AisM9oeSZIkadJk5pJR90GSpG4cHCNJ0+EfgAsz8/YOt/97RLwY+AzVHwfeGhH/nZmXD62HkiRJkpryaqqZIm8E3gs4U6QkSZIkSZoqq4y6A5Kk5mXm+V0GxszU+RxwbLm6GvDUxjsmSZIkqVERsTnwb+XqIcDvRtgdSZIkSZKkkXBwjKTGRMTSiMhSlpV1j4iIwyPiNxFxc0T8MSJOiogXzmO7W0TEYRFxZkRcExG3RMTlEXFsROwXEav22e8ltX4f3UP97SLiPyLi7Ii4OiJuK/06NSI+EBE71OquGhGXlW3/MSLW6GH729b688V+9q0Hv6wt36/htiRJkjQhzP5jnf3/C7gncBbwkQFtU5IkSQ2IiIdGxEci4tyIuK7k6Esi4ssRsVcP919RsuSKcn2diPjniDij5NYby7bfExEbdtjG8ohI4Em1ddmmLOvWdpvtLqvdd2lZt2tEfC0iLo2Iv5bvDodHxJYt910rIv4xIn5csvVNEfGLiDgoItac4zG5Z0S8OCKOjIizIuLPtRx/ZsnxD5rrse1XRHywtv/P6vE+Z5b6t0bEvVtuWzsi9oqIj5fvIzPfT66LiPMi4r8i4lED6PfdnrcB1V03Ig6MiBMj4oryXe+aiDg9It4VEffpt++S1MrTKkkamoh4KXAE1XnuZ6wF7ArsGtVpfZ6bmX/tso1/BD4ErN1y06alPBN4Q0TskZkrBtj9dn1ZBzgceFGbmzcAti/lDRGxJDMvycw7IuJIqv/Y3AjYE/jyHE29srZ8RP8976r+JeD3DbclSZKkCWX2H4/sH9VApGcCdwCvLH3qd7OSJElqQES8EzgYaB0Afv9SnhcRpwB7Z+bVPWxvS+D/gIe23PS3pbw8Ip6ZmWf03fkFiIjDgLe0rH5gKc+NiF0z86yIuB/VjOfbtdR9ONUMiU+PiKdm5s1t2lgDuIqVv5fM2KCURwMHRMSBmfnxvnaqu88Ary/LL2F2Fve2IuKhpW8A327znP8SWNLmrvcEHlbKqyLi3zLzbQvtdBMi4mnA0cDGLTetQfU8bwccGBEvycxvDbl7kiaYg2MkDctjgZkAdhTwfaofaB8LvBxYB3gG8Fngue02UH4c/0Rt1bHA/wJ/BrYC/gF4APAI4IcR8ejM/OPA96Tqy1rAyaX/AH+l+qH7R8C1VAH04cDTS9/qv0AfweyXnFfS5QfyiLgHsz/AXwx8b2A7cfe2ngE8p1z9K/DtptqSJEnSRDP7zxpZ9i//WTozU8xHM/Nn/WxPkiRJzYmIfwMOKlfvAL5IlQdvpsq8LwPuSzWby/ci4nHtBoPUrA58hWpgzKnAF6j+GXJLYF+qgRP3BU6IiG0ys37qzbdTDe7+F6pBNADtZq25YJ67Wfcaqu8CvwU+BfwaWB94KfAEqkErX42Ih1N9D9iW6vfq44CrgYcABwD3Bv6OKnO/vU07q1ANjLkCOBE4B/gDcCewBbAj8Cyqv5d+LCKuyMxj+tivjspAn/OoHtM9IuKemXl9l7u8tLb8mTa3rw1cQ7VfZwGXA7cBm1E9Xs+nOg7eGhFXZeaHB7AbfYuIvYEvUX1HuoPqOf0u1fG5HrAz8IKyfExEPCUzG/u7iKTp4uAYScPydOAvwG6Z+dPa+s9GxMeA5VT//bl3ROydmV+r3zkillD91yhUgelFmfnlljrvpwr8z6AKgP8JPG/ge1L5ILM/jp8N7NOKiLEAACAASURBVNHyBWLG6yNiF6of8QHIzMsi4ttUoXvXiHhAZv62QzsvoPqxHeCTmZn9djwitgM2L1fXoHqsngI8ray7A3hNZjpzjCRJkhbC7F+MOPt/GLgPcCnwjj63JUmSpIZExOOZnUHlRuDpmfn9WpUvlPz7HaoZNR4JvAt4c5fNzsy2+F7goHq2jIgPUc3a8SKqQSgfp8qrAGTmD0u9A2vrvrHA3evkuVSDIp5Xn00yIo6gGgyzO9UMMj8AtgFenJmfr28gqtOQ/pxqkMhrIuLdmXlLSzu3Uf3u/Z1O+ToiHkn12N4PeH9EfDMz7xzAPrbzWarZbtYC9qYaGNSuT8HswPk/Uz1WrfYDTsrM2zts42DgeKqBRO+KiCMz8y999b5PEbEF1T9QrEo1SOlZmXl6S7WjIuI/qAb93Av4dEQ8MDNvG25vJU2iVUbdAUlT5c0tP44DkJkXUv0H6Yw3tbnvAcxOp/6B1h/Hy3ZupgqMV5ZVe0fEVv11+e4i4v7MTnd+NfC0Dj+Oz/Tre5n555bVM/8FG6y8761eUS5vp0NQXoA3AceU8iWqH/tnBsb8iOqPGEcNqC1JkiRNJ7P/rKFn/4h4KtVU7QCvzcwb+tmeJEmSGvVmZmcffHPLwBgAMvMaqgElN5VVr46I9efY7k9oGRhTtnUbVS5dUVY9MyK2XmDfF+oq4CWtp1ktg1LeVVv1GOC/WwfGlLq/phpsAtWsM9u3qXNHZh7fbeB5Zp7D7MyXD6SaTaYpnwNm+vKSLvX+jmqWH4CvtBn0Q9mvtgNjyu2XAP+vXF0PePb8uztwb2b2HwKe12ZgDABl/RvK1c1p7h8hJE0ZB8dIGpZr6fIDb2YeT3WOTIDHlfOI1s2c7ud24ANdtnM91X+NQvWFYs8F9ba7FzA789ZHM/PKbpU7OB64pCz/Q0S0nkeWiHgYs0H82CHM5PIH4ASqKSwlSZKkhTL7r2yo2T8i1gH+u1z9emZ+a6HbkiRJUrMiYk2qmRehGox9ZKe6ZbDDF8rVdYDd5tj8BzsNCimDUv6ztqrdaZOa9JnMvK7DbadTzfgy4+NdtvPD2vLD+ujPj2vLO/Sxna4y81KqmTQBlkbEZh2q1gfOtDulUq+Gsl+9KLPhvLhcPS0zfzDHXb5E9Z0Q5j7WJaknDo6RNCw/yMxb56hTP2/kzLTlRMTGzI6SPjszr5pjOyfUlpsIfE+sLS/oh+YyAv6IcnVTqungW72ytnxEm9sXJDP/PjMjM4PqS9TDgbdSnWLpncAvyn+aSpIkSQth9q8ZQfb/V6rH8HqqWXgkSZI0vh4FrFmWl/eQo+eTf783j9sf27FWM07tdEOZDeXqcvVGZgfWt/OH2vIGnSpFxJKIODQiTo6IKyPi5ojImQJcUKu+eQ/978fMbDerMHvqpHpf16CaJQiqQfY/bK1Tq7txRLwpIk6IiMsi4saW/arPzNP0fs3lb4ENy/I1EbFntwI8BZiZAfOhI+mxpImz2txVJGkgLppnnU1ry5vUlnuZ1aReZ5OOtRauHiLP72M7RwKHAqtTTaF+14/t5T8GXlquXkp1ztOBy8ybgPOA8yLiC1SnVdoMODYiHpuZZzfRriRJkiaa2f/uhpL9I+JxwGvL1bdl5uUL3ZYkSZKGoqn8e005FVM3nTL5MFw9x+0zpxG6ptspkWr1ANZqVyEiDgQOY3YQ0lzuOXeVvnwV+BjVqWRfAryv5fZnMjvQ57Od9j8iXkA1Y+S9emy36f2ay5La8u6l9KrjwCdJmg8Hx0galpvmrsKNteV1a8vrdajTyQ215fU61lq4mRB5R+s5UecjM38fEd8C9gaeHhGb1X683gu4d1k+svy3aaMy85KIOIhqmsbVqc6z+oKm25UkSdLEMfu3GEb2L/9heiTVf6D+f/buPMzSs6wT//eu7iSIYQlbyIQlQmBcIoI2qINKQDEMSHBGkWVUDGj/xH3EBdxGnNERR4fBBTAubCrCgAqExUEliKAQFIwoLqhsAgIalsiWrr5/f5zTdqWsqu5zquo9p877+VzXe51z3u153tOnq7711l3P89okT5m3vwAADGa/8u9uMvkQTjfz7uq+eFX9lyRP3LDqVUlemeStST6c5MRIPbfKyalJ/800qHupuz80/dngIUnuUlWf2d1/tmGXjVMq/Uq2UFVflOTXcnKGkD9J8jtJ/jbJB3P9oqHfnD7u63WdhtMt4tnKmXvWC2DUFMcAQ7nhaezzyRuebwz5H95mn+1sDPIf3nav+X1o+nioqm6wm5vkSZ6ayQ3yQ0kuS/I/putPDKt+PMkv7+L8s3rZhucXD9guAACrQ/bf2n5n/89P8unT53+b5Puqaqv97rbh+V2q6gemz/+qu//vLtoHAGB2+5V/d5PJV8mPTB+PJbm0u1+61U5V9RnDdSnJ5A9UT/xh6lcn+d5pP26a5P7T9Vd1919ucWyS/HBOFsYc7e4tp2atqtP5TO2ltR22bfyM/XB3P36/OwOwmeIYYCgXzrjPuzY8f/eG53c6jfNs3Odd2+41v3cm+ezp809L8oZdnOt3Mxm+8sIkj6yqH03yKUnuPd3+0u5+xy7OP6uNP1DddMB2AQBYHbL/1vY7+2+shHn4aR5zt5wslnlBEsUxAADD2q/8e7OqutkpplbaLpOvhKq6Q5I7TF/+1naFMVO3H6BLG/12kvcluWWSh1fV46YjSH5VTk7/tN2oMWcm+cLpy9dvVxgztRfXtXEUmlON4HKLHbZtnPJ16GIkgCQ7V/AB7KUvmIa2ndx7w/OrTjzp7vcmedv05V2r6panOM+Xbnj+utPv4ml71Ybnl+7mRNP5Qi+fvvyUJF+S5Otz8sb2TsF2P2z8gej9A7cNAMBqkP23sITZHwCAxfvTnCw+uLiqzjjF/rPk33vPsP2qLbb/65RGtc2QhEvu3A3P//YU+16ynx3ZrLuPJfn16cvbJLnX9PmJKZU2bt/s5jk5+MEQ1/WBDc//3Sn2/dwdtr0hJ0fm/NIFjGoDoDgGGMzNkjxiu41V9aU5WS38h939nk27PH/6eDjJd+xwnhsl+abpy87J+TT30nOSXDd9/q1Vdd4uz/e0nPwB6NFJvm76/N1JXrzLc8/q6Ibnrxm4bQAAVoPsv719y/7dfWV316mWTKZ0OuEZG7Z9+W7aBwBgdt398ZzMgbfIyXz4b1TVbZM8bPryX5L8v1Oc/r/ucK6zcjJLJ1tn6Y3T4BzEQoaPbHh+x+12qqrb5PoZeSjP2vD8q6vq9km+YPr6t6d/OLCV072uG2WHz8AM/mLD8/vs0N49c3LUzX+ju9eT/Or05U2SfN8e9A1gJopjgCH9ZFXdffPKqrpjkl/esOqntjj2Z5J8dPr8e6rqK7Y4zw0yGWrwRPXy87v7b3bX5X9rOtT5ib/qvHmSl1TV7bbbv6ruNZ0rdLvzvT8nfwHwn5KcuOH+tGkF+a5U1aVV9eCq2nYqvapaq6rvTPKtG1Y/ebdtAwAwWrL/1ufb1+wPAMCB9L9ycpSWn5oWGVxPVZ2T5Hk5WaTylO7+wOb9NrlnVf3Y5lFfpveJfzGT0QyT5Iru/qstjv/7Dc+3LXpYYm/OpIgoSR5UVffYvENVnZvJ9KI3GrJjSdLdVyU58b5/RZJH5eSokltOqTQ97oNJTvzsc6Sq/tPmfarq7EymTL3tHnT1j3Jy9JiHVtXnbNHeHbNDnzf4sQ3nelxVfVdVbfu76qq6ZVX9QFXdZdZOA2xl21+UAuyxlyS5b5JXV9UzMhmefD3J3TMJfWdP9/uN7n7+5oO7+61V9V+TPDWTr13Pq6oXTM/7gUzmWn1kTs4h+g9Jvnn/LiePmfb97knumuSvquo5mYy28s+ZhOnPSHL/JJ+WyQ8aO/2w8vNJHr7hdWfyA8peuEOSJyZ5f1X9dpI3JnlPJr9wuEmST0/y5bl+lflPdfcr9qh9AADGRfZfXPYHAOCA6e4/qqonJHlcJtnylVX17CS/l8k93IsymY7zxDRBVyf5oVOc9l2Z5OTHZTJd07OT/GOS22cyyuOJkRyvyfZZ+neTfNv0+S9V1RMzmQJ1fbruLd39ltO9zqF19yeq6ueTfGeSM5L8flX9ciZTSF2XScHPZUlumuSZSb52Ad38lST/PZP79N87XffhTAp2dvIzSX56+vx5VfWrSf5geuxFmYxA9O+yB9fV3R+vqp9J8oOZvI9XVtVTk7w+yVlJPn/aRiV5YXaYjra731lVD53ud2YmhWFHq+r5mRQzfSTJjTP5me/zknxhkkNJrtzNNQCcoDgGGMpVSZ6dyU3fr58um70kyX/Z7gTd/fPTKvcnJrlBkgdNl83elOSBOww7uGvd/bGquk8mw6J/5bQ/j8j2w8cf32b9ifP9flW9OZOb6UnyO9399zsdM4dbZPL+bvseZxKef7C7n7THbQMAMB6y/87nGyL7AwBwgHT391XVsUymmjmU5Kuny2avTPIV3f3RLbZtdF2SB2eSuz9/umz23iQP6O63b3OOF2dScPEFSS5M8nObtj8+yQ+foh+L9v1J7pbk3pkUcjx6umz080l+IosrjvmRTApLzpyue95p/Pv+bJLPzeRnqrUkXzNdNnpBkm/M3lzXj2ZSrHLfTP7Y4bs2bf/QtC9HskNxTJJ0929X1b0ymWLpDpkUwjx2h0OuTfLB+boNcH2mVQIG092/kslfW/5ikr9L8rFM/tLy95L8l+5+QHd/7BTneGqSOyd5QiYjoHwgySeSvDuToH9Zkrt291v36TI29uXa7n5wknsmuTyTIRA/nORYkn9K8oeZhOq77fADxka/s+H5L2y71+yenEmF9Q8meVkmc4T+07SfH0ryt5nMKftNSS5QGAMAwG7J/qe0X9kfAIADqrt/KMldMhkV5C8yyZsfT/LOTKbm/Iruvri7/+k0z/e2JPfIpPDgTzLJ0x/NZISO/5nk07r79Tscv55JMcRjM8m71+TkqDEHwvRnji/N5N73H+bke/q2JM9Nckl3f2NOUeC+j/17ayYFSBudcnqinvjqTEakfEVO/qz0ziRXJHlId3/5aRTZnG4/P57JSJmPzmQEzQ9l8jPeWzIZweau3X3FDOf7oyT/PpMCsOdmMoXXtZn8fPXPmYxK8wtJHpLk1t39Z3txHQDV3YvuA7CiquriTIJZkjy+u394cb1ZbtN5Nd+ayRyg70tym+7+xEI7BQAAp0n2P32yPwAA+6Wq3prJ1Elv6+4LFtsbAFguRo4BWA4PyOTmeJI8zc1xAABYWbI/AAAAwMAUxwAsWFUdSvJD05fHkjxlgd0BAAD2iewPAAAAsBiHF90BgDGqqs9Mcn6SmyX5uiRHppuePp1nFAAAWAGyPwAAAMDiKY4BWIzHJHnEpnVvTfK9w3cFAADYR7I/AAAAwIIt/bRKVXWTqvrxqvrLqvqn6fLm6bqbLrp/ALu0nuTvMxlO/fO6+58X3B8AWBjZH1hxsj8ATMn+AAAMrbp70X3YUVX9dpLfS/KM7n7PdN2tM/mrqy/p7vtuc9zRJEeT5PA5Rz7n8NkXDtRj5nXeLe4+WFtrd7zVYG0N5dhFt1x0Fxipm93phovuAkvmovOPL7oLB9oz73WvWnQfTvik2z1s34PiR9/+7KW5XhZP9l+8oTK5PA57SyZnUWT/3ZH9GbN5s/90v3/N/+c85DGfc/Z/eOD+9/faT+x7G0lS/3LdIO0kSX1kmLYGvaaPHhuurY8N1NbH14dpJwNe0ycGvKZPDJNV+hPDfc7X1z8+WFvHjn9smHYGvKb19WGuaf34cJ+JYwNd0/Hjw3wvTJL19eHev+M93PeOZcrD+53/l+laN1r6kWOSXNDdTzgRkJOku9/T3U9IcrvtDuruy7v7SHcfcXMcAAAOBNkfAADGYa7sP93vX/P/EIUxAACshsOL7sBpeFtVfU8mFeT/mCRVdW6Sr0vyjkV2DABglVUdhDpqVozsDwCwALI/CyD7AwAsyFjz/0G46ockuXmSV1bVNVX1z0muTHKzJF+1yI4BAAB7SvYHAIBxkP0BABjU0o8c093XVNXTkrw8yR9197UntlXV/ZK8bGGdAwBYYXUg6qhZJbI/AMBiyP4MTfYHAFicseb/pb/qqvq2JC9I8i1J3lRVD9qw+ccW0ysAAGCvyf4AADAOsj8AAENb+pFjknxDks/p7mur6oIkz6uqC7r7SUlqoT0DAFhhY513lIWS/QEAFkD2ZwFkfwCABRlr/j8IxTGHTgyp2N1vraqLMwnKt4+QDAAAq0T2BwCAcZD9AQAY1EEoCXpPVd31xItpYP6yJLdI8pkL6xUAwIqrWtv3BTaR/QEAFkD2ZwFkfwCABRlr9l/enp30tUnes3FFdx/r7q9N8kWL6RIAALAPZH8AABgH2R8AgEEt/bRK3f3OHba9esi+AACMSZWRrBmW7A8AsBiyP0OT/QEAFmes+f8gjBwDAAAAAAAAAABzWfqRYwAAWBR11AAAMA6yPwAAjMc48/84rxoAAAAAAAAAgFEwcgwAAFuqUkcNAABjIPsDAMB4jDX/j/OqAQAAAAAAAAAYBSPHAACwpbFWjwMAwNjI/gAAMB5jzf+KYwAA2FIZZBAAAEZB9gcAgPEYa/4f51UDAAAAAAAAADAKRo4BAGBLYx1aEQAAxkb2BwCA8Rhr/h/nVQMAAAAAAAAAMApGjgEAYEtjrR4HAICxkf0BAGA8xpr/x3nVAAAAAAAAAACMwsqOHFNVR5McTZLD5xzJ4bMvXHCPGKNjF91y0V3Ycze70w0X3QVG7KLzjy+6CzAqY60e5+CR/dmJTA57Rx6H1SX7c5BszP+3fPhjcuMvvHTf2/zEDYb5VUqt9yDtJEmODfR9/boB88OA718P1NaQn4k+PMz3gjq+gv9Oa4cGaSdJqof71e7aQG1VrhuknSSpGuqajg3SzqStoXLccHlx0Gw64LfeZTLW/L/0V11VZ1fVj1TVn1fVB6vqfVX1R1X1dTsd192Xd/eR7j7i5jgAwMFVVYeq6g1VdcUW275umg/fOF2+fhF9ZO/Mk/9lfwCA1SD7j8te3PsfojAGAIDVcBBGjvnVJL+Z5JIkX5Xkk5P8epIfqKo7d/f3LbJzAACrqlKL7sIJ357kzUluvM3253T3twzYH/aX/A8AMDDZnwWR/QEAFmCJ8v+gln7kmCQXdPfTu/ud3f2/k1za3X+T5LIk/3nBfQMAYB9V1W2SPCDJLy66LwxG/gcAGCHZf5RkfwAABnMQimP+paq+IEmq6oFJ/jlJuvt4MtKSJgCAAVStDbDU0ap6/Ybl6KZu/J8k35Nkp0nKv6Kqrq6q51XVbffvHWEg8j8AwMBkfxZE9gcAWID9zv7L6iBMq/SNSX6xqu6c5E1JHpkkVXXLJD+3yI4BALA73X15ksu32lZVX5bkvd39x1V18TaneFGSZ3f3x6vqG5M8I8l99qWzDEX+BwBYQbI/W5D9AQAYzNIXx3T31UnuscX691XVhxfQJQCAUViCCu97Jrm0qu6f5AZJblxVv9LdX31ih+7+pw37/0KSJwzcR/aY/A8AMDzZn0WQ/QEAFmMJ8v9CHPSrfvyiOwAAwP7o7sd19226+4IkD03yextvjidJVZ234eWlSd48YBcZnvwPALCCZH+2IPsDALCnln7kmKq6ertNSc4dsi8AAGOyrNXjVfUjSV7f3S9M8m1VdWmSY5nMT/91i+wbuyf/AwAMT/ZnEWR/AIDFWNb8v9+WvjgmkxB8SZJrNq2vJK8ZvjsAAAytu69McuX0+Q9tWP+4JI9bTK/YJ/I/AMCIyf6jIvsDADCYg1Acc0WSs7v7jZs3VNWVw3cHAGAsxlk9zsLJ/wAAg5P9WQjZHwBgIcaZ/5e+OKa7H7XDtocP2RcAAGB/yf8AADAOsj8AAENa+uIYAAAWY6zzjgIAwNjI/gAAMB5jzf/jvGoAAAAAAAAAAEbByDEAAGxprNXjAAAwNrI/AACMx1jz/zivGgAAAAAAAACAUTByDAAAWyp11AAAMAqyPwAAjMdY8/84rxoAAAAAAAAAgFEwcgwAAFsa67yjAAAwNrI/AACMx1jz/zivGgAAAAAAAACAUTByDAAAW6qqRXcBAAAYgOwPAADjMdb8b+QYAAAAAAAAAABWlpFjAADY0ljnHQUAgLGR/QEAYDzGmv8Vx7Cj825x90V3gdN0szvdcNFd2HMXnX980V0AGLUyyCDAaVvFPJ7I5ABjIftzUJ155jDtrK8P83/k+HWHBmknSXLWQG0dGzBPrvdgTdV1A13X4QG/Pg/V1vHh/p0G+/wN+O+0dny4rxPHB/rl+dragNfUw1zTkIUHa2vD/Lr/eB8bpJ1k2PdvrEUiY83/S3/VVXWkql5RVb9SVbetqpdX1Qer6qqqutsOxx2tqtdX1euPXfuWIbsMAADMaZ78L/sDAMDBsxf3/q955QuH7DIAAAfYQRg55slJ/luSmyZ5TZL/2t33raovnm77/K0O6u7Lk1yeJJ90u4cNWIYKALAaxlo1z8LNnP9lfwCA3ZH9WZBd3/v/9F/+ffkfAGBGY83/B+Gqz+jul3b3s5N0dz8vkye/m+QGi+0aAACwx+R/AAAYB9kfAIDBHISRYz5WVV+a5CZJuqq+vLt/q6rulWR9wX0DAFhZY60eZ+HkfwCAgcn+LIjsDwCwAGPN/wehOOYbk/xEkuNJLkny6Kp6epJ/SPINC+wXAACw9+R/AAAYB9kfAIDBLH1xTHf/aSbB+IRvny6pqssymYsUAIA9VgdiBk5WjfwPADA82Z9FkP0BABZjrPn/oF/14xfdAQAAYDDyPwAAjIPsDwDAnlr6kWOq6urtNiU5d8i+AACMykjnHWWx5H8AgAWQ/VkA2R8AYEFGmv+XvjgmkxB8SZJrNq2vGFYRAABWjfwPAADjIPsDADCYg1Acc0WSs7v7jZs3VNWVw3cHAGAcaqTV4yyc/A8AMDDZnwWR/QEAFmCs+X/pi2O6+1E7bHv4kH0BAAD2l/wPAADjIPsDAIxXVd00yS8muShJJ3lkkr9K8pwkFyR5a5Kv6u5rqqqSPCnJ/ZN8JMnXdfefzNrmOEuCAAA4para9wUAAFg82R8AAMZjSbL/k5K8rLs/NclnJXlzkscm+d3uvlOS352+TpL/mORO0+VokqfMc92KYwAAAAAAAAAA2HdVdeMkX5Tkl5Kkuz/R3R9I8qAkz5ju9owkXz59/qAkz+yJP0py06o6b9Z2l35aJQAAFqPUUQMAwCjI/gAAMB77nf+r6mgmI7yccHl3X77h9R2SvC/J06rqs5L8cZJvT3Jud787Sbr73VV1q+n+5yd5x4bj3zld9+5Z+qU4BgAAAAAAAACAXZsWwly+wy6Hk3x2km/t7tdW1ZNycgqlrWw1V1PP2i/FMQAAbKnKX48CAMAYyP4AADAeS5D/35nknd392unr52VSHPOPVXXedNSY85K8d8P+t91w/G2SvGvWRhd+1QAAAAAAAAAArL7ufk+Sd1TVv5+u+uIkf5HkhUkeMV33iCQvmD5/YZKvrYnPS/LBE9MvzcLIMQAAbK22GqkQAABYObI/AACMx3Lk/29N8qtVdWaSv0tyWSaDuzy3qh6V5O1JHjzd9yVJ7p/kLUk+Mt13ZopjAAAAAAAAAAAYRHe/McmRLTZ98Rb7dpJv3m2bimMAANiaCTgBAGAcZH8AABiPkeb/kV42AAAAAAAAAABjYOQYAAC2thzzjgIAAPtN9gcAgPEYaf43cgwAAAAAAAAAACtrZUeOqaqjSY4myeFzjuTw2RcuuEecytodb7XoLnAaLjr/+KK7AMBQRlo9zsEj+zM2MjkAe0725wDZmP/Pv+y7cvP7XLrvbR5b3/cmkiQfu8GAv7JZHyhTrvcw7STJsQHbum6gD8X6cH/jXuuHBmmnjw/371SHh3n/esDPea0N8++UJGt95jDtHD82SDtJslbD/N/tteG+nh/vYa5prYa7pq4hPxMrWy6xs5Hm/6UfOaaq/qSqfqCq7jjLcd19eXcf6e4jbo4DAMDBME/+l/0BAODg2Yt7/0MUxgAAsBoOQinUOUlumuQVVfWeJM9O8pzuftdiuwUAsOKWvoyaFSX/AwAMTfZnMWR/AIBFGGn+PwiXfU13f1d33y7JY5LcKcmfVNUrpsMnAgCwD7pq3xfYgvwPADAw2Z8Fkf0BABZgrNn/IBTH/KvuflV3f1OS85M8IcnnL7hLAADAPpH/AQBgHGR/AAD220GYVumvN6/o7vUkL5suAADsh+Ut8Ga1yf8AAEOT/VkM2R8AYBFGmv+XfuSY7n7odtuq6rIh+wIAAOwv+R8AAMZB9gcAYEhLXxxzCo9fdAcAAFbWWu3/ArOR/wEA9oPsz/KR/QEA9stIs//ST6tUVVdvtynJuUP2BQAA2F/yPwAAjIPsDwDAkJa+OCaTEHxJkms2ra8krxm+OwAAI1HLW+HNSpP/AQCGJvuzGLI/AMAijDT/H4TimCuSnN3db9y8oaquHL47AADAPpL/AQBgHGR/AAAGs/TFMd39qB22PXzIvgAAjMo4i8dZMPkfAGABZH8WQPYHAFiQkeb/tUV3AAAAAAAAAAAA9suejBxTVWcmuWmSG5zO/t399r1oFwCAfbQ20vJxdiT7AwCsINmfbcj/AAAraKT5f+7imKq6c5JvS3JJkk/J6Q++07tpFwAAGJbsDwAA4yH/AwCwiuYKqlV1WZInJznzxKo96xEAAMuhRDxkfwCAUZD9mZL/AQBGYKT5f+bimKq6R5JfyCQUV5KPJnl9kn9I8vE97R0AALAwsj8AAIyH/A8AwCqbZ+SY70qylskQiT+d5Ae6+9o97RUAAIs3zuJxrk/2BwAYA9mfCfkfAGAMRpr/5ymOuWcm4fil3f0de9wfAABgecj+AAAwHvI/AAAra57imJtPH39jLzsCAMCSWRtp+Tgbyf4AAGMg+zMh/wMAjMFIpc+6UwAAIABJREFU8//aHMe8b/r44b3sCAAAsHRkfwAAGA/5HwCAlTVPccwfTx8v3MuOAACwZGqAhWUn+wMAjIHsz4T8DwAwBiPN/vMUxzwlk0v6mqqa53gAAOBgkP0BAGA85H8AAFbW4VkP6O7frqqnJvnGJL9YVUe7+9jed217VXXz7v6nIdtktRy76JaL7gIALL2uJS7xZhDLkP0T+R8AYL/J/iTLkf9nzf5nnTXMZ3d9oHdh/cxh2kmS69Zn/vXQXOq644O0kyQ5a8C2jh0app31HqadJDk20Pu3PmDt3RkDtTXkv9OAba0dH+ZzfmhtuC9+nWE+58cH/Pa5VsO01WvDfN9IkuM9XFtVA/7/XSJjzf8zf7Kq6nZJfiLJTZI8IsnnVtVTkvxRkvcnp/6q0t1vn6G9H0/yk939/qo6kuS5SY5X1RlJvra7X7nNcUeTHE2Sw+ccyeGzjQQJAACzGDr7T9ucOf/L/gAAsHsH8d7/7Y9+d271JZeebpMAAIzYPGVXb02ysYTqU5M8aYbje8Z2H9Ddj50+/19JHtLdV1XVnZP8WpIjWzbSfXmSy5Pkk273sHGWfAEA7MbaOKvHuZ63Ztjsn8yR/2V/AIBdkv2ZeGsO2L3/e/zfP5D/AQBmNdL8P++YREO+W2dU1eHp8I2f1N1XJUl3/3VVnTVgPwAAYIyG/klJ/gcAgMVx7x8AgJU0T3HMM/a8Fzv7uSQvmQ6x+LKq+j9JfiPJFyd548B9AQAYj3EWj3N9Q2f/RP4HABie7M+Ee/8AAGMw0vw/c3FMd1+2Hx3Zob2fqao/S/LoJHfOpM93TvJbSf77kH0BAIAxGTr7T9uU/wEAYAHc+wcAYJXNO63SoLr7yiRXbl5fVZcledrQ/QEAGIUaafk4Cyf/AwAMTPZnQWR/AIAFGGn+X1t0B3bp8YvuAADAylqr/V9gNvI/AMB+kP1ZPrI/AMB+GWn2X/qRY6rq6u02JTl3yL4AAAD7S/4HAIBxkP0BABjSrotjquo+Sf5zks9Ncl6SGyX5cJJ3JXldkud39yt20cS5SS5Jcs3mppO8ZhfnBQBgJ8tb4M2CDJD9E/kfAGB4sj9bcO8fAGBFjTT/z10cU1V3TvKsJEc2rp4+3iiTsPw5SR5dVa9L8rXd/TdzNHVFkrO7+41b9OHKOc4HAADMYMDsn8j/AACwUO79AwCwiuYqjqmquya5MpMgvLGu6INJrk1ydpKbbFj/uUmuqqp7dfefztJWdz9qh20Pn+VcAADMoEZaPs71DJn9E/kfAGAhZH+m3PsHABiBkeb/tVkPqKqzkvxWkhtnEo7/NMnXJLlVd5/T3bft7nOS3Gq6/g3TQ2+c5DenxwMAAEtO9gcAgPGQ/wEAWGUzF8ck+YYkt0vSSS5P8jnd/avd/f6NO3X3+7v7V5PcPcnPT1ffPsnX76K/AAAMpWr/l1N2oW5QVa+rqj+tqj+vqsdvsc9ZVfWcqnpLVb22qi7Yh3djrGR/AIAxkP2ZkP8BAMZgwdl/UeYpjnnQ9PHPknxTdx/faefp9m9OcvV01ZfP0SYAAOP08ST36e7PSnLXJPerqs/btM+jklzT3RcmeWKSJwzcx1Um+wMAMBTZf/HkfwAAVtY8xTGfkUnl+LNOFY5PmO73rEyGYrxojjYBABja2gDLKfTEtdOXZ0yX3rTbg5I8Y/r8eUm+uGqJy9MPFtkfAGAMZH8m5H8AgDFYcPZflHm6dvPp49tmPO7t08dz5mgTAIAVVFVHq+r1G5ajW+xzqKremOS9SV7e3a/dtMv5Sd6RJN19LMkHczKzsjuyPwAAe0L2PxDkfwAAVtbhOY458QPHuTMed8vp44fmaBMAgKEN8AeY3X15JnPZ77TPepK7VtVNk/xmVV3U3W/asMtWHd38F6bMR/YHABgD2Z8J+R8AYAxGOvjiPCPHvCWTH0K+csbjTuz/ljnaBABg5Lr7A0muTHK/TZvemeS2SVJVh5PcJMk/D9q51SX7AwAwONl/YeR/AABW1jzFMS+dPn5RVX3H6RxQVd+S5OJMqvhfPEebAAAMrQZYTtWFqltO/2o0VfVJSb4kyV9u2u2FSR4xff6VSX6vu/316N6Q/QEAxkD2Z0L+BwAYgwVn/0WZpzjmZ5N8YPr8p6rq16rqrlvtWFV3qapnJXnSdNUHkzx5jjYBABin85K8oqquTnJVkpd39xVV9SNVdel0n19KcvOqekuS70zy2AX1dRXJ/gAADEX2Xzz5HwCAlXV41gO6+5qquizJ8zIprnlIkodU1fuT/E2Sf0nyyUnulOQW08MqyXqSR3T3NXvRcQAA9levLb7Eu7uvTnK3Ldb/0IbnH0vy4CH7NRayPwDAOMj+JPI/AMBYLEP+X4SZi2OSpLtfUFUPSvLLSW41XX3LnAzEyfUHzHlvksu6+6UBAAAODNkfAADGQ/4HAGBVzVUckyTd/ZKqujDJI5P8pyR3T3LDDbt8JJPhL5+f5Ondfe1uOgoAwMBqnNXj/FuyPwDAipP92UD+BwBYcSPN/3MXxyTJNPT+9HRJVd04yY2SfLi7P7T77s2vqo4mOZokh885ksNnX7jI7jBSN7vTDU+9EwDAASD7AwDAeByU/H/hN313bn3Jpfve5vqxfW8iSXL8+DDtTNpaG6ad63b1a6jZrA/4Bq4PdF3Heph2kuTYMO9fHR/umnp9mM95nTHkNQ33Oa/jhwZpZy1nDNJOkqz1MF/QD62dOUg7SdI9zGdiqHaSZK2G+97RNeD3DhZuT78rdPeHuvsf9jIcV9X9Njy/SVX9UlVdXVW/VlXn7tCXy7v7SHcfcXMcAGAONcDCgbUf2T+ZL//L/gAAuyT7cwrLeu9/iMIYAICVM9LsP0zJ5O782IbnP5Xk3UkemMmwjT+/kB4BAAD7Rf4HAIBxkP0BABjMgOPZ7Ykj3X3X6fMnVtUjFtobAIBVtrbEJd6MhfwPADAE2Z/Fk/0BAIYy0vy/bXFMVX3tiefd/cyt1s9r4/lOw62q6jszGYDnxlVV3X1i8r6DMPINAAAstSXK/on8DwAA+2qJ8r/sDwDAYHYaOebpSXq6PHOL9fPafL5T+YUkN5o+f0aSWyR5X1XdOskbd9EPAAB2UuOsHh+pp2c5sn8i/wMADE/2H5unZznyv+wPALAII83/p5pWabt3ZbB3q7sfv83691TVK4bqBwAArLiFZ/9E/gcAgIEsPP/L/gAADGmn4pjLZly/CI9P8rRFdwIAYCWNs3h8rA5C9k/kfwCA/SH7j81ByP+yPwDAfhlp/t+2OKa7nzHL+v1SVVdvtynJuUP2BQAAVtGyZP9E/gcAgP22LPlf9gcAYEinmlZpGZyb5JIk12xaX0leM3x3AABGYm2k5eMsmvwPADA02Z/FkP0BABZhpPn/IBTHXJHk7O5+4+YNVXXl8N0BAAD2kfwPAADjIPsDADCYtVkPqKrjVXWsqi6d8bhLqmq9qo7Nclx3P6q7/2CbbQ+f5VwAAMxgrfZ/YakNnf0T+R8AYCFkf+LePwDAaIw0+887csy8V7S87wQAANfTkhsTsj8AwIqT/dlA/gcAWHFjzf8zjxwDAAAAAAAAAAAHxbwjx8zjRtPHjw7YJgAA81ri4Q9ZerI/AMBBIvuzO/I/AMBBMtL8P+TIMV88fXzPgG0CAADDk/0BAGA85H8AAJbejiPHVNW9ktxrm80Praq7nuL8leSTk3x2knsn6SR/OGsnAQBYgBpn9fhYyf4AACMm+4+O/A8AMGIjzf+nmlbp4iQ/tMX6SvKQGduqJMeS/PSMxwEAAPvv4sj+AAAwFhdH/gcAYEROVRyTTILtLOu384Yk39/dV814HAAAizDSeUdHTvYHABgj2X+s5H8AgDEaaf4/VXHM05NcueF1Jfm9TIZI/MEkrz7F8ceTXJvk77v7A/N1EQAAGMDTI/sDAMBYPD3yPwAAI7JjcUx3vy3J2zauq5PzT72pu1+5T/0CAGDR1hbdAYYk+wMAjJjsPzryPwDAiI00/5/OtEqb3Xv6+Ka97AgAALB0ZH8AABgP+R8AgJU1c3GMinEAgJGocc47ykmyPwDASMj+RP4HABiNkeb/eUaOWbiqulV3v3fR/YBlctH5xxfdBQCAfSH/AwDAOMya/W9w5jC/2Fk/NkgzWR/wFu+x9YEautkZ+dhHepi2hnwDrxumrTpruGvqod6/9YE+D0lqoLb6jEPJx4b5QlFnHhqknSTpgf6p1gb8r7u2NswXv0M93EUd72E+e2trZ2d9/WODtHUow32d6Pj96pjsSXFMVd0syflJbpzklF+Vu/v3Zzz39VYleV1V3S1Jdfc/b3Pc0SRHk+TwOUdy+OwLT7dJAACSZG2c1ePsbD+z/4bzX29VTpH/ZX8AgF2S/dnGst/7/9Rv/e7c5v4POt0mWYDBCmNgkQYqjIFFGqowhoGMNP/PXRxTVTdO8u1JvibJHWc4tGds9/1J3rZp3flJ/mR6rjts2Uj35UkuT5JPut3DpC8AAJjTgNk/mSP/y/4AALB3DtK9//u+7NXyPwAAp2Wu4piq+tQkL0ly+0yquffT9yT5kiTf3d1/Nm3/77v7U/a5XQCAUeuRzjvK9Q2c/RP5HwBgcLI/J7j3DwCw+saa/2cujqmqs5K8KMkF01W/n+Q1SR6bSTX3c5O8I5PwfHGSW07X/0aSN83aXnf/ZFX9epInVtU7kvy36fkAAIB9NHT2T+R/AABYFPf+AQBYZfOMHPPITIZS7CTf090/lSRV9djp9md39wun685I8k1J/meS+yX5pe5+2awNdvc7kzy4qh6Y5OVJbjhHvwEAmMXaojvAEhg8+yfyPwDA4GR/Jtz7BwAYg5Hm/3ku+9Lp41+fCMfb6e7ruvtJSR6S5JOT/EpV3WaONk+c70VJ7p3JUIupqsvmPRcAAHBKC8v+03PK/wAAMBz3/gEAWFnzFMd8ViaV48853XNOg+0VSc5J8ug52tx4ro9294khGh+/m3MBALCDtdr/hWW30Ow/PZ/8DwCw32R/Jtz7BwAYg5Fm/3mmVbrZ9PFtm9avZxKOtxv28MVJvmy6fP/pNlZVV2+3Kcm5p3seAABgZoNm/0T+BwCABXLvHwCAlTVPccx6kjOSfGjT+g8nuUmS87Y57gPTx9vO2N65SS5Jcs2m9ZXkNTOeCwCA01XLW+HNYIbO/on8DwAwPNmfCff+AQDGYKT5f57imPckuSCTYRI3enuSz0xy122Ou8P08ZNmbO+KJGd39xs3b6iqK2c8FwAAcPqGzv6J/A8AAIvi3j8AACvr38wRehpOzPn57zetvyqTiu4HVtXNNm6oqjOTPGr68h2zNNbdj+ruP9hm28NnORcAADPY73lHl3juUf7VoNk/kf8BABZC9mfCvX8AgDFYguxfVW+tqj+rqjdW1es3rP/WqvqrqvrzqvqJDesfV1VvmW67ZK7LnuOYV2UShL9w0/pfnz7eKMnvVNX9qurOVfUfk7wyk+rxTvLSeToKAAAMTvYHAIDxkP8BABjSvbv7rt19JEmq6t5JHpTkLt39GUl+crr+05M8NMlnJLlfkidX1aFZG5unOOZF08cjVXX7Eyu7+3eTvDyT8PxZSV6c5M2ZDI14j+lu1yT5iQAAsPxqgIVlJ/sDAIyB7M+E/A8AMAbLm/0fneTHu/vjSdLd752uf1CSX+/uj3f33yd5S07m0NM2c3FMd/9Vkkck+eYkN9y0+cFJfjdbvwX/kOQB3f0Ps7YJAAAMT/YHAIDxkP8BANgLVXW0ql6/YTm6xW6d5P9V1R9v2H7nJF9YVa+tqldW1d2n68/P9afwfOd03UwOz3pAknT3s7ZZ/6Ek962qL0zyJUnOTfKRTOYk/c3u/tg87QEAMLw+zblBWW2yPwDA6pP9OUH+BwBYffud/7v78iSXn2K3e3b3u6rqVkleXlV/mUn9yjlJPi/J3ZM8t6rukK3Ho+lZ+zVXccypdPerMpmfFACAg8oNck6D7A8AsAJkf06T/A8AsAKWIP9397umj++tqt/MZJqkdyb5je7uJK+rquNJbjFdf9sNh98mybtmbXPmaZUAAAAAAAAAAGBWVfXJVXWjE8+TfGmSNyX5rST3ma6/c5Izk7w/yQuTPLSqzqqqT0lypySvm7XdfRk5BgCAFVCLrx4HAAAGIPsDAMB4LD7/n5vkN2vSj8NJfq27X1ZVZyb55ap6U5JPJHnEdBSZP6+q5yb5iyTHknxzd6/P2ujMxTFVdcskv57JvE7/s7tffhrH3DfJ45KsJ3lwd39g1nYBAIBhyf4AADAe8j8AAEPo7r9L8llbrP9Ekq/e5pgfTfKju2l3nmmVHp7k3kk+O6c/t+irktwtkyFwHjZHmwAADG1tgIVlJ/sDAIyB7M+E/A8AMAYjzf7zdO2+STrJi7v7Y6dzwHS/F2VScX7JHG0CAADDk/0BAGA85H8AAFbWPMUxd5k+vnbG467adDwAAMusav8Xlp3sDwAwBrI/E/I/AMAYjDT7z1Mcc6vp47tmPO4908dbz9EmAAAwPNkfAADGQ/4HAGBlHZ7jmGNJzkhy1ozHnTl9HKRUqKqOJjmaJIfPOZLDZ184RLODOe8Wd190FwCAVbe2vBXeDEb2XwKyPwCw72R/Jg5c/r/bd3xXPuXLLt33Nq87a56/M57d+vFBmpm0tT5MO8cHaidJPrE+z6+85lPXDfOP1es9SDtJUkN9AAd675Ik68P8383xQ8O0kyTHh/tMZKjP34Cf80PHzximoR7uc368jw3STg94TUO2dWjtzFPvtIpGmv/n+a7wvunjp8143In93z/LQVV166p6SlX9XFXdvKp+uKr+rKqeW1XnbXdcd1/e3Ue6+8iq3RwHAICBDJr9k/nyv+wPAAB74sDd+x+iMAYAgNUwT3HMVZlUgH9VVZ3W8VV1KMlDknSSN8zY3tOT/EWSdyR5RZKPJnlAklcleeqM5wIA4HSt1f4vLLuhs38i/wMADE/2Z8K9fwCAMRhp9p+nOOZF08c7Jvkfp3nM/5junyQvmLG9c7v7Z7r7x5PctLuf0N1v7+6fSXL7Gc8FAACcvqGzfyL/AwDAorj3DwDAypqnOObXkvzd9Pn3VtWzquqCrXasqttX1a8k+Z5MKsffluQZu+jjMzdtG3ASPwCAcemqfV9YekNn/0T+BwAYnOzPlHv/AAAjMNbsf3jWA7p7vaoemuSVSW6Q5OFJHlpVb0ry5iTXJjk7k3lGL8ok4FYmQyI+pLuPzdjkC6rq7O6+trt/4MTKqrowyV/N2n8AAOD0LCD7J/I/AAAshHv/AACsspmLY5Kku19fVZckeU6S8zKp4r7LdNnoRFnQuzIJx1fN0dYPbbP+LVX14lnPBwDAaZpnjEFWzpDZf9qe/A8AMDTZnyn3/gEARmCk+X/uy+7uP8ikQvwHkvxFJmF445Ikf57kcUk+vbtfvbuubunx+3BOAABggyXJ/on8DwAA+25J8r/sDwDAnppr5JgTuvtDSX4syY9V1TlJzk9y4yQfSvIP3X3NbjtYVVdvtynJubs9PwAA21jiuUEZ3hDZP5H/AQAWQvZnE/f+AQBW2Ejz/66KYzaahuE9uSG+yblJLtni3JXkNfvQHgAAsIN9zP6J/A8AAEvFvX8AAFbBnhXH7KMrkpzd3W/cvKGqrhy+OwAAI7E2zupxFk7+BwAYmuzPYsj+AACLMNL8vyfFMVV1iySfm+S8JDdK8uEk70ryuu5+/27O3d2P2mHbw3dzbgAAYDb7mf0T+R8AAJaJe/8AAKyKXRXHVNX9kzw2yT132OdVSX68u1+2m7YAABjYSKvH2ZrsDwCwwmR/NpH/AQBW2Ejz/9o8B9XEU5O8KJNwXDssX5jkxVX1lD3pMQAAMBjZHwAAxkP+BwBgVc07cswTkxzd8PotSV6e5K+TXJvk7CR3SnLf6WOSHK2qj3f3d8zZJgAAQxpn8Tj/luwPALDqZH9Okv8BAFbdSPP/zMUxVfXZSb41SSe5Jsn/193P32H//5zkqUlukeRbquoZ3f2GOfsLAAAMRPYHAIDxkP8BAFhl84wc8w2Z1BJ9PMkXd/ef7rRzd/9GVb0lyWuTnJlJ1fmj52gXAIAB9UjnHeV6ZH8AgBGQ/ZmS/wEARmCs+X9tjmMuzqRy/JmnCscndPfVSZ6RSbC+eI42AQCA4V0c2R8AAMbi4sj/AACsqHmKY86fPv7BjMe9etPxAAAss6r9X1h2sj8AwBjI/kzI/wAAYzDS7D9Pccyh6eOxGY87sf+hHfcCAACWhewPAADjIf8DALCy5imOec/08bNnPO7E/v84R5sAAAxtrfZ/YdnJ/gAAYyD7MyH/AwCMwUiz/zzFMa/OZP7QR1bVuadzQFXdOskjM5mv9NWn2B0AgGVQAywsO9kfAGAMZH8m5H8AgDEYafafpzjmWdPHmyb5var69J12rqpPTfLyJOdMVz1zjjYBAIDhyf4AADAe8j8AACvr8KwHdPfLq+qKJF+W5FOTvKGqXprk/yX56yT/kuSTk9wpyX2TPGDaTie5ortfvkd9ZwBrd7zVorsAACzI2jxl1KwU2X985H8AGCfZn+Rg5v8bnXF8kHY+MUwzOX58uP+M68d6kHbOOrPy0Y8O09b6+nDv3/H1M4ZpaH2gD1+SrM/8K8P5DPTZS5IcH6itMw+lPnZskKZ6wM95DfT+9YCf8zp+aJB21jLQ14gkh/rMYdpZOzPH1j8+SFvdw30mhmxrmYw1/8/7ne5hSV6W5J5JzkjywOmylRMD5/zB9LiZVNWNkzwuyW2SvLS7f23Dtid39zdtc9zRJEeT5PA5R3L47AtnbRoAgAWrql/O5Mbse7v7oi22X5zkBUn+frrqN7r7R4br4SgMlv2T+fK/7A8AcPDJ/kvjQN37//zHPCZ3vnS77rEMhiqMgUUaqjAGFmmowhjYT3PVBHX3vyS5VybB9R+z84xS70nyvUku7u6PzNHc06bneX6Sh1bV86vqrOm2z9uhj5d395HuPuLmOADA7Kr2fzkNT09yv1Ps86ruvut0cXN8jw2c/ZM58r/sDwCwO7I/Jxy0e/8KYwAAZrcE2X8h5h4jrSdjDD2hqv53kv+Q5B5JzktyoyQfTvLuJK9L8pruvm4Xfbxjd3/F9PlvVdX3ZzLf6aW7OCcAAAdAd/9+VV2w6H6M3YDZP5H/AQBGSfZfHu79AwCwinY9geA0/L5yuuyHs6pqbRrI090/WlXvTPL7Sc7epzYBAEZvmSu8N/n8qvrTJO9K8l3d/eeL7tCqGiD7J/I/AMDgZH+24t4/AMBqOkD5f0/NNa3SwF6U5D4bV3T3M5I8JsknFtIjAAD2RFUdrarXb1iOzniKP0ly++7+rCQ/k+S39r6XDEz+BwBYQbI/W5D9AQAYzK5Hjtlv3f0926x/WVX92ND9AQAYixqgfLy7L09y+S6O/9CG5y+pqidX1S26+/170kEGJ/8DAAxP9mcRZH8AgMUYIv8vo4MwcsxOHr/oDgAAsDhVdeuaJvmqukcm+fafFtsr9pH8DwAwUrL/6Mj+AADsqW1Hjqmqv9unNru773i6O1fV1dttSnLu3nQJAIDNlqF4vKqeneTiJLeYzj3/35KckSTd/dQkX5nk0VV1LMlHkzy0u3tB3T2wliX7T/si/wMADEz2H5dlyf+yPwDAYixD/l+EnaZVuiBJZxJE99KsP7Ccm+SSJNdsWl9JXrMnPQIAYCl198NOsf1nk/zsQN1ZZRdkObJ/Iv8DAIyS7D+oC7Ic+V/2BwBgMP8/e/ceZmla1of691QPzHAYkJGDCsRR0a0yUcARFBFnQAUVBVQiQi4QiBP2NhlMTDzEqICHK0Sj2x1zGjSCCUSUiIxycEQcEFRkEDAcdeQgI0EhIggDzHT3s/+or6GmqerutbrqW6vWe9/X9V3fqu+wnndVVXf/etVT73uq5pi/yHJvZu+330xy6+5+3cknqurq+YcDADCGUbvHB7Uu2T+R/wEAZif7D2dd8r/sDwCwAqPm/z2bY7r7whnHsafufsIpzj1qzrEAAMAmWpfsn8j/AABw0NYl/8v+AADM6VQzxwAAMLDaWvUIAACAOcj+AAAwjlHz/6AvGwAAAAAAAACAEZg5BgCAXY267igAAIxG9gcAgHGMmv/NHAMAAAAAAAAAwMYycwwAALvaGrR7HAAARiP7AwDAOEbN/2aOAQAAAAAAAABgY5k5BgCAXY267igAAIxG9gcAgHGMmv/NHAMAAAAAAAAAwMYycwwAALsatXscAABGI/sDAMA4Rs3/Zo4BAAAAAAAAAGBjmTkGAIBd1ajt4wAAMBjZHwAAxjFq/jdzDAAAAAAAAAAAG2vhmWOq6niS40m+ubuvXOC+ByV5YZLu7gOfsaaqLktyWZKcc7uLc86t73bQJfPpt//SA6+xyY5edIdVDwEA2KG0UQ9P9j81+X95sj8ArBfZn+Rw5v9Lv/ef56KHPeSgS+aG4wdeIklytOf7Le5jR+epdXymz12SHD02X62PHDsyT6EbZ1wA4ljPU+foTHWS5NhM34Bzfe6S1Iy1eqZSdXzzXtPWjH/3bW3N85ffkZ7vRfWMtbajz3hGzf/LvuxlU1Odxb2f/GRVL9rrXHdf0d0Xd/fFc705DgCwSaoOfuNQWIvsn+yd/2V/AICzI/uzw1rk/zN973+OxhgAgE0zavafseV0OVV1r71OJbnHnGMBAAAOlvwPAABjkP0BAJjTnM0x50/7jyx436uTvCy7d51/ylmNCACAPa1zhzdrb9nsn8j/AACzk/05S977BwA4REbN/3M2xzxw2r9nwfvenOQfd/efnXyiqt511qMCAAD227LZP5H/AQDgsPHePwAAa++UzTFV9VVJvmqP04+sqtNNbVhJbpXkXkkuTdJJ/mDBMT45ydYe5/7pgs8FAMAZGrV7fFRrkv0T+R8AYHay/3jWJP8/ObI/AMDsRs0Y0aJ4AAAgAElEQVT/p5s55pIkP7zL8UrybQvWqiRHk/x/i9zU3c89xenbLTgGAABgd5dkxdk/kf8BAGAml8R7/wAADGSvruyd6qRtr+On216b5Ju6+9X7NfgkT9nH5wIAYIetOviNtbPO2T+R/wEADoTsP6x1zv+yPwDAARk1+59u5phnJLl6x8eV5KXZniLxh5K88jT3H0/yoSRv7+6/XWaAVfUne51KcqdlnhMAAPgkz8iKs38i/wMAwEyeEe/9AwAwkFM2x3T3O5O8c+ex+sQCVG/o7pcd0Lh2ulOSByV5/0nHK8nvz1AfAGBIo647Oqo1yf6J/A8AMDvZfzxrkv9lfwCAFRg1/59u5pjdXDrt37CfAzmF30xy6+5+3cknqurqmcYAAAAjmjv7J/I/AACsivf+AQDYWAs3x8z4G6Mn6j3hFOceNedYAABGMmr3OJ8wd/afasr/AAAzk/1JvPcPADCKUfP/MjPHnJGq+vok95tqvD7Jc7v7YwdVDwAAWA3ZHwAAxiH/AwBwGC3cHFNVFyb56enDn+jua046f7Mkz8/2WqE7/WBVPbi7/2KJcQIAMLPaGrR9nI+T/QEAxiD7k8j/AACjGDX/by1xz0OSPCzJJUn+ZJfz/zrJg5PUSdvnJ/n1qlEn6QEAgENH9gcAgHHI/wAAbKxlmmO+dtr/dnffsPNEVZ2X5LuTdJK/SfJPsh2or5wu+eIk/2C5oQIAMKeqg99Ye7I/AMAAZH8m8j8AwABGzf7LNMd8TrYD8DW7nHtQkvOnx4/v7v/Y3S9M8i1J/mw6/oglagIAAPOT/QEAYBzyPwAAG2uZ5pjbT/vrdjl36bR/X3ef6BhPdx9L8svZnmLxnkvUBABgZn57lMj+AABDkP2ZyP8AAAMYNfsv0xxzu2n/0V3OfUW2O8t/Z5dzb5v2d1qiJgAAMD/ZHwAAxiH/AwCwsc5Z4p6PJLl1kgt2Hqyq85PcY/rwFbvc9+Fpf/MlagIAMLN17vBmNrI/AMAAZH8m8j8AwABGzf/LzBzzzmn/ZScd/4YkR6bHr9zlvhOB+oNL1AQAAOYn+wMAwDjkfwAANtYyzTGvzPb6od9eVfdJPt45/n3T+b/q7tfvct9F0/7tS9QEAGBmW3XwG2tP9gcAGIDsz0T+BwAYwKjZf5nmmCuyvbboLZL8XlW9Nttrin7RdPzn97jv0un8a5aoCQAAzE/2BwCAccj/AABsrHMWvaG7X1tVP5rkh6f7v3jH6TcmedrJ91TV3ZPcPdsB+aXLDZWdtj7njqsewqF2wefectVDAIC1N+q6o3yC7L8eZP+zI/sDwOnJ/iSHM//f9ubHZqlztGcpk6M93x/GG847cvqL9sF551U+fP08n8Cj83w7JEmOz1TrY8duNk+hJHVspm/0G4/PUydJji38Y9Cl9HnnpD584zy1eqavU5Kaq9axZeZyWNLxmV7TjF+nc/rceeocOTdHj35kllqd+f6emLPWOhk1/y/1t013PznJw5O8IMlbk7w2yb9N8pXd/eFdbrn8xK1ZMCBX1W2r6t9U1Vuq6v9M25unY59yivsuq6prquqaox+6dpGSAADAZM7snyyX/2V/AADYH4ftvf8//rUXLFKSFZirMQZWaa7GGFiluRpj4CAt3TLZ3c9P8vwzvPYfJ/nHS5b6lWyH6ku6+z1JUlWfluSxSX41ydfsUfOKbE8DmVv8vW+XvgAAFlQz/tIG623G7J8skf9lfwCAsyP7s9Nheu//h17zEvkfAGBBo+b/hZtjqur+08MPdPfr93k8u7mwu28yXeMUlJ9WVY+foT4AAAxpBdk/kf8BAGAlvPcPAMAmW6Yn6Ookv5vk2/d3KHt6Z1V9b1Xd6cSBqrpTVX1fknfNNAYAgOFUHfzG2rs682b/RP4HAJid7M/k6njvHwBg442a/Zdpjrl+2s/1m6PfluRTk7ysqv6mqv4m2yH9giSPmGkMAADDqaoD31h7c2f/RP4HAJid7M/Ee/8AAAMYNfsv0xzzv6f9kf0cyF66+/3d/X3d/fndfcG0fUF3f1+Sh80xBgAAGNSs2T+R/wEAYIW89w8AwMZapjnmZdP+Xvs5kCU9ZdUDAADYVKZWJ+uV/RP5HwDgQMj+TNYp/8v+AAAHZNTsf84S9/ynJI9N8h1V9bTu/qt9HtNNVNWf7HUqyZ32OAcAAJy9WbN/Iv8DAMAKee8fAICNtXBzTHe/pqp+KMlPJPmdqnpkd79h/4f2cXdK8qAk7z/peCX5/QOsCwAwtHXu8GYeK8j+ifwPADA72Z/Ee/8AAKMYNf8v3BxTVY9J8u4kL0rydUleV1W/l+T3kvxlko+c7jm6+5cWKPmbSW7d3a/bZSxXL/A8AADAAlaQ/RP5HwAAVsJ7/wAAbLJlllV6RpKeHneSrST3n7Yz0UnOOCB39xNOce5RZ/o8AAAsZtTucW7iGZkx+yfyPwDAKsj+TJ4R7/0DAGy8dcj/VfWOJH+X5FiSo919cVX9ZJJvTHJDkj9P8rju/tvp+h9I8oTp+su7+7cWrbm17Fh3bCd/fCYbAABwOMj+AAAwDvkfAIC5XNrd9+jui6ePfzvJRd39RUn+NMkPJElVfWGSRya5e5IHJ/mPVXVk0WLLzBzzuCXuAQDgkNnytiayPwDAEGR/JvI/AMAA1jX/d/dVOz78wyTfOj1+aJJf7u6PJXl7VV2b5N5J/mCR51+4Oaa7n7noPQAAwOEj+wMAwDjkfwAA9kNVXZbksh2HrujuK066rJNcVVWd5L/scv7xSZ4zPb5ztptlTrhuOraQZWaOAQBgAOvaPQ4AAOwv2R8AAMZx0Pl/anQ5udnlZF/R3e+uqjsm+e2qekt3vzxJquoHkxxN8qzp2t1G3IuOa2vRGwAAAAAAAAAAYBnd/e5p/9dJnpftZZJSVY9N8pAkj+7uEw0w1yW5647b75Lk3YvWNHMMAAC72qqFG68BAIBDSPYHAIBxrDr/V9Wtkmx1999Nj782yVOr6sFJvi/JV3X39TtuuTLJs6vqp5N8RpLPTfJHi9bVHAMAAAAAAAAAwBzulOR5VZVs96w8u7tfXFXXJjk328ssJckfdvcTu/uNVfUrSd6U7eWWvqu7jy1adM/mmKo68WTd3efscnxZN3k+AADW00GvO8r6kP0BAMYm+49F/gcAGNuq8393vy3JF+9y/G6nuOfHk/z42dQ9VVDd61Piv0oAALBZZH8AABiH/A8AwHBO1Rzz8iS7LTa113EAADbI1qoHwJxkfwCAgcn+w5H/AQAGNmr+37M5prsvWeT4Qaqqz0ny8CR3zfYaUn+W5H909wfmHgsAAGwa2R8AAMaxLvlf9gcAYE5r3xRUVZcn+c9JzkvypUluke2w/AdVdckKhwYAsNG2qg98g51kfwCA1ZD9mZvsDwCwOqNm/z1njqmq9yc5nuQfdveLdhy///TwDd39Nwc8viT5ziT36O5jVfXTSV7Y3ZdU1X9J8vwk99ztpqq6LMllSfKpd/3W3Ob2Xz7DUDfP0YvusOohHGoX3fn4qocAAHBasj8nyP/Lk/0BgMNiTfL/Utl/GufH8/8jfvhJ+fJHfMMBDzW54fg8We+G4zVLnSS58dg8tY6dN9/vaM/0ZdqudWyeOsdm+jolybGje/7IcH8dnfMLNdMPaI/N94PgmrHWXK+r5/z8zVSqZ/wy1Ux/pI70ufMUggN0qlRy2ySfkuRmJx2/OsnvJrnfAY1pNyf+RT43yflJ0t1/kU8e28d19xXdfXF3X+zNcQCAxW3VwW+sDdkfAGBgsv9w1iX/L5z9p2s+nv/naIwBANg0o2b/U7WBnuhpW/Xwfz7Jq6vqD5PcP8nTkqSq7pBkjt9eBQCATSf7AwDAONYh/8v+AADM6lTNMR9Ocqskd5ppLLvq7p+tqpck+YIkP93db5mOvzfboRkAgAMw38THrAHZHwBgYLL/cFae/2V/AIDVGTX/n+p1Xzvt/2FVnTfHYPbS3W/s7ueeCMgAAMC+kv0BAGAca5H/ZX8AAOZ0qpljXpTkHkm+Isl1VfXWJB/bcf7Hquq7l6jZ3f3AJe4DAGBG67w2KPtO9gcAGJjsPxz5HwBgYKPm/1M1x/xUkkcl+cwkFyT5sh3nKsndl6hX+cR6pgAAwHqQ/QEAYBzyPwAAw9lzWaXufn+S+yT5uSR/nuTG3DTg1hIbAACHRFUf+MZ6kP0BAMYm+49F/gcAGNuo2f9UM8eku/86yeU7j1XV8WyH5Id395UHODYAAGAmsj8AAIxD/gcAYDSnbI4BAGBco647CgAAo5H9AQBgHKPm/2WaY54y7d+ynwMBAGC97Ln+JiOR/QEABiD7M5H/AQAGMGr+X7g5prufcvqrAACAw072BwCAccj/AABsMssqAQCwq63qVQ8BAACYgewPAADjGDX/jzpjDgAAh0BVPbiq3lpV11bV9+9y/tyqes50/lVVdeH8owQAAPaD/A8AABwUM8cAALCrrVpt/ao6kuQ/JPmaJNcleXVVXdndb9px2ROSvL+771ZVj0zytCTfNv9oAQDg8Fp19k/kfwAAmMs65P9VMHMMAADr6t5Jru3ut3X3DUl+OclDT7rmoUmeOT1+bpIHVtWg0R4AAA41+R8AADgwmmMAANjV1gxbVV1WVdfs2C7bMYQ7J3nXjo+vm45lt2u6+2iSDyT51H14+QAAMIw1yP6J/A8AALM46Oy/riyrBADAynT3FUmu2OP0br8B2ktcAwAArNhpsn8i/wMAAAdIcwwAALtag3VHr0ty1x0f3yXJu/e45rqqOifJbZP8zTzDAwCAzbAG2T+R/wEAYBZrkv9nt86z2gAAMLZXJ/ncqvqsqrp5kkcmufKka65M8tjp8bcmeWl3+81RAAA4fOR/AADgwJg5BgCAXW3Vat9j7u6jVfVPkvxWkiNJ/mt3v7Gqnprkmu6+MskvJPlvVXVttn9j9JGrGzEAABxOq87+ifwPAABzWYf8vwoLN8dU1Q9PD3+5u/90gfs+J8mjk6S7n7poXQAAxtPdL0zywpOO/fCOxx9N8oi5xzUK2R8AgDnJ/6sl/wMAsMmWmTnmyUk6yeuSnHFATnK3HfeecUDeMYXmu7v7JVX1qCT3TfLmJFd0940LjAEAgDM06rqj3MSTI/sDAGw82Z/JkzNT/pf9AQBWZ9T8fxiWVfrFbI/zllX12CS3TvJrSR6Y5N75xBqzAADA4Sb7AwDAGGR/AABmNWdzzJFpf2zB+/5+d39RVZ2T5C+TfEZ3H6uq/57k9XvdVFWXJbksSe5wr8flNp/9gGXGzIwu+NxbrnoIAMAOW6seAIeZ7M8pyf4AsF5kf87SMvl/qeyf3DT/P+5HL8+lj/z6Zca8kBuPH3iJJMmx4/P9GvfRmWod7VnKJEmOHZvv83fs6Ex1ZnxNHzl+5PQX7YM+OuOPJo/N9A14bKa/JOau1fN8/mqmOknSc72m4xv4mnq+P7vz/G00tlHz/5yv+zOn/QcXvG9rmmLx/CS3THLb6fi5SW62103dfUV3X9zdF3tzHAAAZiX7AwDAOJbJ/0tl/+Sm+X+OxhgAADbD2bR4nVEbWlXdMsm9kvyz6Z63LFjnF6Z7jiT5wSS/WlVvS/JlSX55wecCAOAMbdWMv97FupP9AQA2mOzPSebI/7I/AMCKjJr/T9kcU1U/kuSHdzuV5NerlprO7fmLXNzdP1NVz5kev7uqfinJVyd5enf/0TIDAAAAbkr2BwCAcaw6/8v+AADM7UxmjtkrBS+Tjl+R5GcXvam7373j8d8mee4StQEAWMDWfMtasz5kfwCAAcn+w1pp/pf9AQBWY9T8f7rmmHckedlJx74q21MkvinJ+05z//EkH0ry9iS/k+QF3X188WECAAAH7B2R/QEAYBTviPwPAMBATtkc093PTPLMnceq6kTA/cHuvvKgBgYAwGqN2j0+KtkfAGBcsv945H8AgHGNmv/PZFmlk708293jp+scBwAADjfZHwAAxiH/AwCwsRZujunuSw5gHAAArJmtVQ+AlZP9AQDGIPuTyP8AAKMYNf+P+roBAAAAAAAAABjAMssqAQAwgK3qVQ8BAACYgewPAADjGDX/n1VzTFXdKslDk9wnyV2S3CbJkdPc1t39wLOpCwAAzEv2BwCAccj/AABsmqWbY6rq8iRPTXL+IrclGbMNCQDgkNmqVY+AdSH7AwBsNtmfneR/AIDNNmr+X6o5pqp+LMkPZDvwns6JQDzopxgA4HDaWvUAWAuyPwDA5pP9OUH+BwDYfKPm/4Vfd1V9UZJ/NX34liSXJrnF9HEneViSWye5e5LvSXLddO6ZSW7R3aebehEAAFgDsj8AAIxD/gcAYJMtM3PME6f9jUke1N3vSpKqTzSHd/f1Sd6c5M1V9fQkz03ymGyvS/otZzNgAADmMerUityE7A8AMADZn4n8DwAwgFHz/zIz5tw/213iv3IiHJ9Kd38o26H4PUkeVlUCMgAAHA6yPwAAjEP+BwBgYy3THHOXaf/He5w/9+QD3f3hJL+Y7bVHH7NETQAAZlbVB76x9mR/AIAByP5M5H8AgAGMmv2XaY655bT/y5OOXz/tb7vHfW+Y9vdYoiYAADA/2R8AAMYh/wMAsLHOWeKeDya5XZKbnXT8/UlukeRz9rjv/Gl/xyVqAgAws1HXHeUmZH8AgAHI/kzkfwCAAYya/5eZOebaaX/nk46/KdtTJ371Hvfdb9pfv8d5AABgvcj+AAAwDvkfAICNtUxzzDXZDsL3POn4VdP+XlX1+J0nquqhSR6dpJO8domaAADMbGuGjbUn+wMADED2ZyL/AwAMYNTsv8zYXjLtv6aqdt7/S0k+MD1+elW9qqqeXVWvSvJrO2o9fZFiVXV5Vd11iXECAABnR/YHAIBxyP8AAGysc5a458VJ3pnkvGxPo3hVknT3e6vqiUmele0wfPG0Jdvd5knyrO5+zoL1fjTJ91fVnyf5H0l+tbvfu8S4D9zRi+6w6iFwhi668/FVDwEA1t5W9aqHwOrJ/qcg/x8Osj8AnJ7sz+TQ5f8Lzp0n691wbJYyueFYnf6ifXJ0pj/2N8wYx284fmS2Wsdn+lodm/HzN1etjx672TyFkqRn+kafq06SzPlf3OMzva656iSpmT5/cyaruf7l2MTXlCTz/cuxXkbN/wvPHNPdH+3uz+ruT+/uq04695wkD0hydZJj2f7erSR/luTy7n7MEmN8W5K7ZDsof0mSN1XVi6vqsVV1/l43VdVlVXVNVV3zwbe9dImyAAAwNtkfAADGcRjz/4uf9aIlygIAMKJlZo45pe5+eZIHVNXNknxqkuu7+4Nn95R9PNtd6ldNz/t1Sb49yU8l2fXXNbv7iiRXJMndHvHfx2x9AgA4C1tztuhzKMn+AACbQfbnTKxj/n/Bu14k/wMALGjU/L/vzTEndPeNSd6zD091ky/N9LxXJrmyqm6xD88PAACcBdkfAADGIf8DAHAYHVhzzD76tr1OdPdH5hwIAMBIRu0eZ6VkfwCAFZD9WRH5HwBgBUbN/1urHsDpdPefrnoMAADAwZP9AQBgHPI/AABzOgwzxwAAsAJHVj0AAABgFrI/AACMY9T8v/YzxwAAAAAAAAAAwLLMHAMAwK62qlc9BAAAYAayPwAAjGPU/G/mGAAAAAAAAAAANpaZYwAA2NVWrXoEAADAHGR/AAAYx6j538wxAAAAAAAAAABsLDPHAACwq1G7xwEAYDSyPwAAjGPU/G/mGAAAAAAAAAAANtaBzRxTVZXkc6caf97dHzuoWgAA7L8jg3aPszjZHwDgcJP9WYT8DwBwuI2a/xeeOaaqblFV3zRtd93jmm9P8u4kb07yv5L8dVU9+axGCgAAzEr2BwCAccj/AABssmVmjnlwkv+Z5FiSzz75ZFU9KMl/P/HhtD8/yQ9V1fnd/T3LDBQAgHmNuu4oNyH7AwAMQPZnIv8DAAxg1Py/8Mwx2Q7ISfKq7n7XLud/MtvBuJJck+S5ST4wffykqvriZQYKAMC8tqoPfGPtyf4AAAOQ/ZnI/wAAAxg1+y/THHNxkk7y8pNPVNW9klw0nf/p7r53d/+DJF+a5MPZDsmPX364AADAjGR/AAAYh/wPAMDGWqY55g7T/q27nHvQtL8xyY+fONjd1yb5lWwH5PstURMAgJlt1cFvrD3ZHwBgALI/E/kfAGAAo2b/ZZpjbj/tP7jLuRPh9/e7+/0nnXv1tP+sJWoCAADzk/0BAGAc8j8AABvrnCXuOdHrc4ubHKyqJF+ePaZdTPK+aX/rJWoCADCzI6seAOtA9gcAGIDsz0T+BwAYwKj5f5mZY9477T/vpOP3TvIp0+Pf3+W+W077jy5SrKruU1W3mR7foqqeUlW/UVVPq6rbLvJcAADAQmR/AAAYx2z5X/YHAGBuyzTHvC7bHeTfXlU7O8i/c9rfmOSVu9z32dP+fy9Y778muX56/LNJbpvkadOxX1zwuQAAOEMHve7oOq89ysfJ/gAAA5D9mcyZ/2V/AIAVGTX7L7Os0q8meUiSuyW5uqqeneTuSR6f7WkVX9DdH97lvvtM59+4YL2t7j46Pb64u+81PX5FVb1ur5uq6rIklyXJBQ+5POdf/PULll1vF3zuLU9/EQAAnB3Zfw3I/gAAzGTO/L9U9k9umv+//6f+SR7+mAcvUHY5R48feIkkyY3H5/tp0o09T50bZnxNR3vGWsfnWZDi2Ezfe0lyfKZaPeNr+tjxm81TaMbXlOMz/eFNUj1Prfle0Xzm7A2Y6/O3ia8pSbZXj2QUy8wc86wk12T7z8DFSX46yROmczckefLJN0zTI146ffiyBeu9oaoeNz1+fVVdPD3n52W7U31X3X1Fd1/c3Rdv2pvjAABz2Ko+8I21J/sDAAxA9mcyZ/5fKvsnN83/czTGAABsmlGz/8LNMd19PMnXJXl+thu3atreneRbu/t/7XLbdyS5+fT4dxYs+Y+SfFVV/XmSL0zyB1X1tiRPn84BAAAHQPYHAIBxzJz/ZX8AAGa1zLJK6e7/k+ThVXWHbK8nen2SN07heTdvSfK4JMe7+w0L1vpAku+oqvOnWuckua67/2qZsQMAcGaOmFGSyP4AACOQ/Tlhrvwv+wMArM6o+X+p5pgTuvu9Sd57BtdddTZ1puf4uySvP9vnAQAAFif7AwDAOObK/7I/AABzWbg5ZpraMEl+o7uftM/jAQBgTWwN2j3OJ8j+AABjkP1J5H8AgFGMmv+XmTnmrkm2kvzJPo8FAABYL7I/AACMQ/4HAGBjLdMc81dJPj3JB/d5LAAArJFRu8e5CdkfAGAAsj8T+R8AYACj5v+tJe5507S/cB/HAQAArB/ZHwAAxiH/AwCwsZZpjnl2kkryyH0eCwAAa2SrDn5j7cn+AAADkP2ZyP8AAAMYNfsv0xzzS0lemeSeVfVT+zweAABgfcj+AAAwDvkfAIDZVNWRqnptVf3m9PEDq+qPq+p1VfWKqrrbdPzcqnpOVV1bVa+qqguXqbdwc0x3H0/yTUlelOSfTcUfW1WfXVXnLjMIAADWz5HqA99Yb7I/AMAYZH8S+R8AYBRrlP2flOTNOz7+T0ke3d33yPashv96Ov6EJO/v7rsl+ZkkT1vmdZ+z6A1VdWznh0kuTvJfd5w/3VN0dy9cFwAAmJfsDwAA45D/AQCYS1XdJck3JPnxJP98OtxJbjM9vm2Sd0+PH5rkydPj5yb5uaqq7l6oE2eZoHpyAl7jVaMAAFjWMutvsnFkfwCAAcj+TOR/AIABrEn+/3+TfG+S83cc+0dJXlhVH0nywSRfNh2/c5J3JUl3H62qDyT51CTvW6TgMs0xL892xw4AALDZZH8AABiH/A8AwFmrqsuSXLbj0BXdfcWO8w9J8tfd/ZqqumTHdf8sydd396uq6l8m+elsN8zs1rS9cG5duDmmuy857UUAABx6W35HcHiyPwDAGGR/EvkfAGAUB53/p0aYK05xyVck+aaq+vok5yW5TVW9IMnnd/erpmuek+TF0+Prktw1yXVVdU62l1z6m0XHtSYz5gAAAAAAAAAAsMm6+we6+y7dfWGSRyZ5aZKHJrltVX3edNnXJHnz9PjKJI+dHn9rkpd298HPHAMAwBj89igAAIxB9gcAgHGsY/7v7qNV9Z1J/mdVHU/y/iSPn07/QpL/VlXXZnvGmEcuU0NzDAAAAAAAAAAAs+ruq5NcPT1+XpLn7XLNR5M84mxraY4BAGBXR2rhWQkBAIBDSPYHAIBxjJr/z6o5pqpule21n+6T5C5JbpPkyGlu6+5+4NnUBQAA5iX7AwDAOOR/AAA2zdLNMVV1eZKnJjl/kduSjNmGBABwyKzjuqOshuwPALDZZH92kv8BADbbqPl/qeaYqvqxJD+Q7cB7OicC8b58iqvqfknuneQN3X3VfjwnAACfbNSAzE3J/gAAm0/25wT5HwBg842a/xdujqmqL0ryr7IdfN+S5P9O8odJPjIde3iSlyT5zCQPTvLd2Z528ZlJntjdH1uw3h91972nx9+Z5LuSPC/Jj1TVvbr735zuOS743FsuUpIdLrrz8VUPAQCAFZH9xyP/AwCM6zDm/1udM89kNbc/b56cfOPx+X5S9bGZov8NM76mozPWOjZTrWPHt2apkyTHZ/qe6BnnmOqe5/N3Q242S50kqRk/gXO9QzDfd/mMU5zN2HlQM30Cu+Z8TfPV6q1js9Vi9Zb54/LEaX9jkgd198tODr3dfX13v7m7fybJ3ZP8dpLHJHn2EvV2/otyWZKv6e6nJPnaJI/e66aquqyqrqmqa9730iuXKAsAMLatOvjtbFTVI6rqjVV1vKouPsV176iq/1VVr6uqa86u6nBkfwCAAcj+TA5d/v/VZ7x4ibIAAGNb5+x/kJZpjrl/thvrfqW733W6i7v7Q0m+Jcl7kjysqr5lwXpbVXW7qvrUJNXd752e98NJjp6i7hXdfZFw7kYAACAASURBVHF3X3z7B3zTgiUBADgE3pDkm5O8/AyuvbS779Hde76Rzq5kfwAA1oHsP49Dl/8f8R0PXrAkAACjWqY55i7T/o/3OH/uyQemMPuL2V579DEL1rttktckuSbJBVX1aUlSVbfOPq1lCgDAJztSB7+djem3Fd+6P6+WPcj+AAADkP2ZyP8AAANY5+x/kM5Z4p5bTvu/POn49Uluke1Au5s3TPt7LFKsuy/c49TxbK9xCgAAp9JJrqqqTvJfuvuKVQ/oEJH9AQA4TGT/syP/AwCwsZZpjvlgktvlpuuBJsn7sx2QP2eP+86f9ndcouYn6e7rk7x9P54LAIBPtlV94DWq6rJsry1/whU738Cuqpck+bRdbv3B7n7+GZb5iu5+d1XdMclvV9VbuvtMpmNH9gcAGILsz0T+BwAYwBz5fx0t0xxzbZIvTXLnk46/aTr21Ul+YJf77jftr1+iJgAAG2h6M3zP3+bs7q/ehxrvnvZ/XVXPS3LvJN4gPzOyPwAA+0L2PxTkfwAANtbWEvdck+31Pu950vGrpv29qurxO09U1UOTPDrb01q+domaAADMbGuG7aBV1a2q6vwTj5N8bT4x5TenJ/sDAAxA9mci/wMADOCwZ/9lLTO2l0z7r6mqnff/UpIPTI+fXlWvqqpnV9WrkvzajlpPX26oAADwCVX18Kq6LsmXJ3lBVf3WdPwzquqF02V3SvKKqnp9kj9K8oLufvFqRnwoyf4AAKyc7D8b+R8AgI21zLJKL07yziTnZXsaxauSpLvfW1VPTPKsbIfhi6ct2e42T5JndfdzzmrEAADMYqtOf80qdffzkjxvl+PvTvL10+O3JfnimYe2SWR/AIAByP5M5H8AgAGse/4/KAs3x3T3R5N81h7nnlNV/zvJk7O9zuiJ5/+zJP++u39uyXECAAAzk/0BAGAc8j8AAJtsmZljTqm7X57kAVV1sySfmuT67v7gftcBAOBgHRm0e5wzJ/sDAGwG2Z8zIf8DAGyGUfP/vjfHnNDdNyZ5z0E9PwAAsB5kfwAAGIf8DwDAYXRgzTEAABxuW9WrHgIAADAD2R8AAMYxav5fqjmmqr4ySSV5e3e/6wyu/3tJLkxyvLtfsUxNAABgfrI/AACMQ/4HAGBTLdwcU1UPSPKSJJ3k4iSnDchJbpfk6iRdVffv7lcuWhcAgHltDbruKJ8g+wMAjEH2J5H/AQBGMWr+31rinm+e9q/r7teeyQ3d/fokr5k+fMQSNQEAgPnJ/gAAMA75HwCAjbXMskpfnu3O8d9a8L7fSvIlSe67RE0AAGY2avc4NyH7AwAMQPZnIv8DAAxg1Py/zMwxnzPt37zgfW896X4AAGC9yf4AADAO+R8AgI21zMwxt5z21y9430em/flL1AQAYGbLdFGzcWR/AIAByP5M5H8AgAGMmv+Xed1/O+3vuOB9J67/uyVqAgAA85P9AQBgHPI/AAAba5nmmHdM+0sXvO+Saf+uJWoCADCzqoPfWHvvmPayPwDABpP9mbxj2sv/AAAbbNTsv0xzzO8mqSQPq6ovPJMbquqiJA9P0kleukTNk5/vl872OQAAgNOS/QEAYBwrzf+yPwAAB+mcJe75+ST/PMmRJC+oqm/o7jftdXFV3T3JldP1x6b7z1hVXXnyoSSXVtWnJEl3f9MizwcAwJlZ4wZv5iP7AwAMQPZnMlv+l/0BAFZn1Py/cHNMd/9ZVf1ckicl+XtJXlNVz0ryG0nenORDSW6d5AuSfFOSRyW5ebY7x//zqcL0Hu6S5E3ZDtad7a/VxUn+3aluqqrLklyWJHd9wr/I7R9w8Fn6ojsfP/AaAMD87nvHj616CLASsv+pyf8AsHlkf0Y2c/5fKvsnN83/P/Gz/08e9fgHL1B2Ocf6wEskSY6eN9//MW6YqdTR4/P9+O3YjLWOzvQ9cXymOtuWWWyCbfN97m7IzWerVTOtjXJ8a74/u3VkplpHjs5TJ5ltDZua8evUc32dkuQcf/eNZJmZY5LkXyT57CTfmOTcJI+btt2c+O69Msl3L1Hr4myH8R9M8i+7+3VV9ZHuftmpburuK5JckST3evbvzRofAAA2wTqvDcqsZH8AgA0n+7PDXPl/qeyf3DT/v/NDvyH/AwAsaNT8v1RzTHcfS/LQqvreJN+b5IJTXP43Sf5Nd//UkrWOJ/mZqvrVaf9XWb6pBwCAM6RnnkT2BwAYgezPCXPlf9kfAGB1Rs3/ZxU2u/vfVtV/SPJ1Se6X7akQb5Pkg0muS/J7SV7U3def7UC7+7okj6iqb5ieHwAAmInsDwAA45gr/8v+AADM5aw7sbv7w0meO20HrrtfkOQFc9QCABhZldmpuSnZHwBgM8n+7GbO/C/7AwDMZ9T8P+qMOQAAAAAAAAAADMAangAA7KpWPQAAAGAWsj8AAIxj1Pxv5hgAAAAAAAAAADaWmWMAANhVjdo+DgAAg5H9AQBgHKPmfzPHAAAAAAAAAACwscwcAwDArgZtHgcAgOHI/gAAMI5R87+ZYwAAAAAAAAAA2FhmjgEAYFdbo7aPAwDAYGR/AAAYx6j538wxAAAAAAAAAABsLDPHAACwq0GbxwEAYDiyPwAAjGPU/G/mGAAAAAAAAAAANpaZYwAA2FWN2j4OAACDkf0BAGAco+b/pWaOqaq3VdWfV9VX7veAAACA9SH7AwDAOOR/AAA21bIzx1yYpJPc4uQTVXVBkouSpLtfvvTIAABYqUGbx/lkF0b2BwDYaLI/O1wY+R8AYKONmv8PYlmlr0zyvCTHD+j5AQCA9SD7AwDAOOR/AAAOrVMG2Kp6SZKXJrk6yau6+9gCzz1qwxEAwEYQ5sYi+wMAjEuYG4/8DwAwrlHD3Om6ux+Q5NLp8fVV9XvZDssAAMBmkf0BAGAc8j8AAEM5XXPMM5Jcku11Rm+V5MFJHrTj/FOq6r5J/iDJH3b3B/Z/iElV3TtJd/erq+oLp3G8pbtfeBD1AABItkZtHx/XMyL7AwAMSfYf0jOy4vwv+wMArMao+f+UzTHd/fgkqaoLkzww293klyT59OmS+yS594nLq+qtSd63nwOsqh9J8nVJzqmq355qXp3k+6vqnt3946d7jovufHw/hwTAhrvvHT+26iEAzE72B2BU8j8wolXn//3I/klyy3N6v4Z0Skdn+m/GsZ7v/zM3zlTqxuPz/fTt2DzfDpy1rdkq1UzffnPVSZKtI/N9/j565ObzFLrZfK8pR2b6Ys34dco5M72mOb9OHz06W6m6YZGVJTnszui7uLvf0d2/0N2P7u477zj1iiRvz/ayVFtJviDJ/U6crKprq+rpVfWoqvr0LOdbk3xFkvsn+a4kD+vup2a7i/3b9rqpqi6rqmuq6po//Y3fWLI0AMC4aoaN9SP7AwCMR/Yf1wrz/1LZf6r98fz/S7/wW0uUBgAY26jZ/3TLKp3Oj3X3VVV1hyRfPm1fm+Se0/nPTvJZSU50of9pkpd293ctUONodx/L9rqnf97dH0yS7v5IVe3Z29zdVyS5Ikke87KX6RcGAICzI/sDAMA4Djr/L5X9p2s+nv/f+9Er5X8AAM7IKWeOqaoLzuRJuvu93X1ld/9AkqfuOPXUbHeY35DtJqH/K8kTFxzjDVV1y+nxl+wY222TmDMdAOCAVPWBb6wP2R8AYFyy/3jWIP/L/gAAKzJq9j/dzDF/XVV/ku21Pl+a5OUnOrjPRHc/OcmTq+q8JPdNcmm21y1dxP27+2PT8+0MxTdL8tgFnwsAANid7A8AAONYdf6X/QEAmNXpmmO2ktwjyRcneVKS41X12h3nzz2TIt390WwH7JcuOsATAXmX4+9L8r5Fnw8AgDOzzmuDciBkfwCAQcn+Q1pp/pf9AQBWZ9T8f7rmmG/Odrf3JUn+fpIjSS5O0tn+nP16Vb01ye8neeW0H/VzCQCwUUqqG43sDwAwKNl/SPI/AMCgRs3/p2yO6e5fT/LrSVJVt0vyVdkOy5fnEyH587O9nujjpttuOHF/VV3U3W/Y91EDAAD7SvYHAIBxyP8AAIzmdDPHfFx3vz/bYfnXq+ry6fDTpue4b5J7ZXuqxXPzifD8+qr6P0lelu21S3+3u9+0b6MHAODAbK16AKyM7A8AMBbZf2zyPwDAWEbN/2fcHLOH3+3uq5Kkqm6e7WkXH5vkO/OJkHz7JN+S7WkaU1Xv7e5PO8u6AADAvGR/AAAYh/wPAMBG2bemoO6+obt/P8kLdxz+oiRPSvL8JH+b7cB8h/2qCQDAwak6+I3DSfYHANgssj+nIv8DAGyWUbP/2c4cc0rTmqNvSPLvq6qS3CPJpQdZEwAAmJ/sDwAA45D/AQA4bM6mOWahnp/u7iSvnTYAANbcGjd4Mz/ZHwBgg8n+nET+BwDYYKPm/6WaY7p735ZjAgAA1pfsDwAA45D/AQDYVAexrNJfJHnmATwvAAAzWue1QVkbsj8AwAaQ/TlD8j8AwAYYNf/ve3NMd782yeP2+3kBAID1IvsDAMA45H8AAA6zg5g5BgCADTBo8zgAAAxH9gcAgHGMmv+tHwoAAAAAAAAAwMYycwwAALvaGrV9HAAABiP7AwDAOEbN/2aOAQAAAAAAAABgY5k5BgCAXQ3aPA4AAMOR/QEAYByj5n8zxwAAAAAAAAAAsLEORXNMVX1+VT2wqm590vEHr2pMAACbrqoPfIOTyf4AAPOT/VkF2R8AYDVGzf5r3xxTVZcneX6Sf5rkDVX10B2nf2I1owIAAPab7A8AAGOQ/QEAmNs5qx7AGfjOJF/S3R+qqguTPLeqLuzun80plsOqqsuSXJYk9/me78nnfeM3zjFWgFO67x0/tuohsGa+/E43rHoIsKdR1x1lpWR/YGPI/pxM9medyf6swFLZP7lp/v/Z//jdedw/eshBjzV98w8feI0kmfP3rLvnqXY8x2apw9nbmukfgyNb832nv3/ryCx1zpmnzMbW+ug58/24+tiRmb7RbzbfF6pvNs9cGHXO0VnqJEnN9XVKkiNrP5fIgRg1/x+G5pgj3f2hJOnud1TVJdkOyp+ZU3zduvuKJFckyWNe9rL1nbsHAAA4QfYHAIAxLJX9p+s/nv//7sbfkf8BADgjh6EV6j1VdY8TH0yB+SFJbp/k769sVAAAG67q4Dc4iewPALACsj8rIPsDAKzIqNn/MDTHPCbJe3Ye6O6j3f2YJPdfzZAAAIADIPsDAMAYZH8AAGa19ssqdfd1pzj3yjnHAgAwkjVu8GZDyf4AAKsh+zM32R8AYHVGzf+HYeYYAAAAAAAAAABYytrPHAMAwGroogYAgDHI/gAAMI5R8/+orxsAAAAAAAAAgAGYOQYAgF3VqAuPAgDAYGR/AAAYx6j538wxAAAAAAAAAABsLM0xAADsoWbYAACA1ZP9AQBgHOuR/avqSFW9tqp+86Tj/76qPrTj43Or6jlVdW1VvaqqLlz8NVtWCQCAPZQ3sAEAYAiyPwAAjGON8v+Tkrw5yW1OHKiqi5N8yknXPSHJ+7v7blX1yCRPS/JtixYzcwwAAIdSVf1oVf1JVb2uqq6qqs/Y47rHVtWfTdtj5x4nAABwdmR/AADYLFV1lyTfkOTndxw7kuQnk3zvSZc/NMkzp8fPTfLAqlq4w8fMMQAA7Kpq7fuof7K7fyhJquryJD+c5Ik7L6iqC5L8SPL/t3fn8ZKU9b3HP7/Z2GWRoGwyikJMNCIiKBIYwCAaRYhx37jq5Zob4564BkdNcokaJYuJohjccF8CJFFQGdSI7KAgINsgm44ogoCy/u4fVYdT0/R2TlfV6dP9eb9ez6uru6vq91R3dfe3zzzzNHsACZwTESdk5k1td1aSJEkaV2Z/SZIkaXqMSf4/mmIQzGaV214FnJCZN3SMfdkeuAYgM++OiJuBBwI3zqXgWBy1JEmSNFeZeUvl6iYUfwDv9BTglMz8ZflH8VOAg9vonyRJkqR6mP0lSZKkxSMijoiIsyvtiI77nw6sy8xzKrdtBzwb+Oduu+xyW7fvBH05c4wkSZJ6GJvfHe0pIv4WeAlwM7B/l1XuG1Feura8TZIkSdJ9zP6SJEnS9Gg2/2fmMcAxfVZ5EnBIRDwN2BB4AHARcAdweTlrzMYRcXlmPpwi2+8IXBsRy4DNgV/OtV/OHCNJkqQFM8QI8m9ExIVd2jMBMvNtmbkj8GmKKRfvV6LLbXMeUS5JkiRpNGZ/SZIkSQCZ+ZbM3CEzVwLPA76VmVtm5oMzc2V5++3lwBiAE4CXlst/Wq7vzDGSJEmqR7Twv0cHjSDPzCcPuavjgf8E3tFx+7XAqsr1HYA1w/dQkiRJmnxmf0mSJGl6tJH/a3Ys8MmIuJxixpjnzWcnzhwjSZKkRSkiHlG5eghwSZfVvg4cFBFbRsSWwEHlbZIkSZIWCbO/JEmSNJkyc01mPr3L7ZtWln+bmc/OzIdn5p6ZeeV8ajlzjCRJknoY+9HjR0XErsC9wNXAKwEiYg/glZn5isz8ZUS8Gzir3OZdmTnn3yKVJEmSJpvZX5IkSZoeY5//G+HgGEmSJC1KmfmsHrefDbyicv1jwMfa6pckSZKkepn9JUmSJI3KwTGSJEnqKsJf4JQkSZKmgdlfkiRJmh7Tmv+n86glSZIkSZIkSZIkSZI0FRb1zDER8b8y898Xuh+SmrH3NncsdBcWtSc+6M6F7oLGyE6bLl3oLmhRms7fHdX4Mv9Lk8vsPxqzvzqZ/zV3Zn+Nl2Gz/wZLN2+jOyTZTp3lt7dSp3BvS3Xa+z/aS7invVotvW0ub/G/uC9f0s55vqKlOgDLWnqebl7a4nm+tL3P7CUtHdaStl5QwG9bqnXn8vbyeLR1TrR4nrf24gVYfnd7tcbKdOb/xT5zzDt73RERR0TE2RFx9o9PPLHNPkmSJElqRtf8b/aXJEmSJs5Qf/v/6DFfbrNPkiRJWsTGfuaYiPhBr7uAB/XaLjOPAY4BeMlpp7U3DFWSJGlCxJSOHtfCmk/+N/tLkiSNxuyvhVDH3/7vvPds878kSdIcTWv+H/vBMRQh+CnATR23B/C99rsjSZIkqUHmf0mSJGk6mP0lSZLUmsUwOOYkYNPMPL/zjohY0353JEmSpsO0jh7XgjP/S5IktczsrwVi9pckSVoA05r/x35wTGa+vM99L2izL5IkSZKaZf6XJEmSpoPZX5IkSW0a+8ExkiRJWihLFroDkiRJklph9pckSZKmx3Tm/+k8akmSJEmSJEmSJEmSJE0FZ46RJElSVxHT+bujkiRJ0rQx+0uSJEnTY1rzvzPHSJIkSZIkSZIkSZIkaWI5c4wkSZJ6mM7R45IkSdL0MftLkiRJ02M6878zx0iSJEmSJEmSJEmSJGliOXOMJEmSuoopHT0uSZIkTRuzvyRJkjQ9pjX/O3OMJEmSJEmSJEmSJEmSJpYzx0iSJKkHx1FLkiRJ08HsL0mSJE2P6cz/Do6RJElSV9M6taIkSZI0bcz+kiRJ0vSY1vw/nUOCJEmSJEmSJEmSJEmSNBWcOUaSJEldRUzn6HFJkiRp2pj9JUmSpOkxrfnfmWMkSZIkSZIkSZIkSZI0sZw5RpIkST1M5+hxSZIkafqY/SVJkqTpMZ3535ljJEmSJEmSJEmSJEmSNLGcOUaSJEldheOoJUmSpKlg9pckSZKmx7Tm/0UxOCYifhd4JrA9kMD1wAmZefGCdkySJElSrcz+kiRJ0nQw+0uSJKlNYz8kKCLeBHyW4oevzgTOKpc/ExFvXsi+SZIkTbZooUmzzP6SJEkLxeyvdpn9JUmSFtJ0Zv/FMHPMy4Hfz8y7qjdGxPuBi4Cjum0UEUcARwDs9YY3sMszntF0P6WpsPc2dyx0F2r3xAfdudBdWNR22nTpQndBY2aLFTsvdBckLV5mf2nMmP9VZfZXJ7O/pBHMK/uX69yX/z/84XdxxBHPbbKfAGRm4zWAVv/FJuL2lird21IdWBLt/WPckpZKbbCkpXMPWNZSrbbqACxr6Xlq95jam/dgyZJ2ai1d1t7jt6SlrzRLW3w/v2Ppilbq5PIWvw8ub3F+j2VjP5eIarQYBsfcC2wHXN1x+7b0SVWZeQxwDMBLTjutvXdVSZKkCREt/lFJKpn9JUmSFoDZXwtgXtkf1s//8GPzvyRJ0hxNa/5fDINjXgt8MyIuA64pb3sI8HDgVQvWK0mSJEl1M/tLkiRJ08HsL0mSpFaN/eCYzPxaROwC7AlsT/EjVdcCZ2XmPQvaOUmSpIk2naPHtXDM/pIkSQvF7K92mf0lSZIW0nTm/7EfHAOQmfcC31/ofkiSJElqltlfkiRJmg5mf0mSJLVpUQyOkSRJUvuCJQvdBUmSJEktMPtLkiRJ02Na8/90HrUkSZIkSZIkSZIkSZKmgjPHSJIkqYfp/N1RSZIkafqY/SVJkqTpMZ3535ljJEmSJEmSJEmSJEmSNLGcOUaSJEldxZSOHpckSZKmjdlfkiRJmh7Tmv+dOUaSJEmSJEmSJEmSJEkTy5ljJEmS1FXEdI4elyRJkqaN2V+SJEmaHtOa/505RpIkSZIkSZIkSZIkSRPLmWMkSZLUg+OoJUmSpOlg9pckSZKmx3Tm/+k8akmSJEmSJEmSJEmSJE0FZ46RJElSV8F0/u6oJEmSNG3M/pIkSdL0mNb878wxkiRJkiRJkiRJkiRJmljOHCNJkqQepnP0uCRJkjR9zP6SJEnS9JjO/O/MMZIkSZIkSZIkSZIkSZpYzhwjSZKkriKmc/S4JEmSNG3M/pIkSdL0mNb87+AYSZIk9eAkg5IkSdJ0MPtLkiRJ02M68/90HrUkSZIkSZIkSZIkSZKmgjPHSJIkqatgOqdWlCRJkqaN2V+SJEmaHtOa/505RpIkSZIkSZIkSZIkSZMrM21dGnCEtca/jse0OOpMai2PaXHUmsRj8vFbHHXarmWz2UZrvgeNf51JreUxLY5ak3hMPn6Lo47HtHhqmf1ttsXTfA9aHLU8Jmt5TIuz1iQek4/f4qgzqcdkq7c5c0xvR1hrUdRps5bHZK2FqtNmLY/JWgtVp81ak3hMkkbne9D415nUWh7T4qg1icfUZi2PaXHUmsRjarOW2V9aPHwPWhy1PCZrLVSdNmt5TNZaqDpt1vKYNDYcHCNJkiRJkiRJkiRJkqSJ5eAYSZIkSZIkSZIkSZIkTSwHx/R2jLUWRZ02a3lM1lqoOm3W8pistVB12qw1icckaXS+B41/nUmt5TEtjlqTeExt1vKYFketSTymNmuZ/aXFw/egxVHLY7LWQtVps5bHZK2FqtNmLY9JYyMyc6H7IEmSJEmSJEmSJEmSJDXCmWMkSZIkSZIkSZIkSZI0sRwc00VEHBwRl0bE5RHx5gbrfCwi1kXEhU3VKOvsGBGnRsTFEXFRRLymwVobRsSZEXFBWeudTdUq6y2NiPMi4qSG66yNiB9GxPkRcXaDdbaIiC9GxCXl8/XEhursWh7LTLslIl7bRK2y3uvK8+HCiPhMRGzYUJ3XlDUuqvt4ur1eI2KriDglIi4rL7dssNazy+O6NyL2aLDOe8vz7wcR8ZWI2KLBWu8u65wfESdHxHZN1Knc98aIyIjYetQ6vWpFxOqIuK7y2npaE3XK2/+i/Ky6KCLeM2qdXrUi4nOV41kbEec3WGu3iPj+zHttROzZUJ3HRMTp5fv6iRHxgBrqdP2sbep9QlJ9wuw/Si2z/+i1Gs//Yfafz77N/vXXqj3796pVua+2/N/jmGrP/r1qlbfXmv97HJPZf/ha5n9pEYoJy/5lrVbyf7Sc/cuajef/mLDsX9ZpLf9HS9m/rLXo83+POrVn/z61as//PeqY/UeoVd5u9p9/Lf/2r/4y01ZpwFLgCuBhwArgAuD3Gqq1L7A7cGHDx7QtsHu5vBnw4waPKYBNy+XlwBnAExo8ttcDxwMnNfwYrgW2brJGWefjwCvK5RXAFi3UXAr8FNipof1vD1wFbFRe/zxweAN1HgVcCGwMLAO+ATyixv3f7/UKvAd4c7n8ZuDvG6z1SGBXYA2wR4N1DgKWlct/3/AxPaCy/GrgQ03UKW/fEfg6cHVdr+Uex7QaeGNd512fOvuX5/gG5fVtmqrVcf8/AEc2eFwnA08tl58GrGmozlnAfuXyy4B311Cn62dtU+8TNputnobZf9RaZv/Ra7Wa/zH7D7t/s3/9tWrP/r1qlbfXmv97HNNqas7+fWrVnv8HfS5h9h9Uy/xvsy2yxgRm/7JWK/mflrN/Wafx/M8EZ/+yTmP5n5ayf7nvicj/PerUnv371Ko9//eoY/YfrZbZf7Ra/u3f1rc5c8z97QlcnplXZuadwGeBZzZRKDO/DfyyiX131LkhM88tl38NXEwRXJqolZl5a3l1edmyiVoRsQPwx8BHm9h/28rRi/sCxwJk5p2Z+asWSh8IXJGZVzdYYxmwUUQsowiw1zdQ45HA9zPz9sy8GzgNOKyunfd4vT6T4ksN5eWhTdXKzIsz89I69j+gzsnl4wfwfWCHBmvdUrm6CTW8V/R5X/0A8Fd11BiiVq161Pkz4KjMvKNcZ12DtQCIiACeA3ymwVoJzIzk3pwa3it61NkV+Ha5fArwrBrq9PqsbeR9QlJtzP6j1TL7j2CB8r/Zfwhm/0Zq1Z79e9Uq1Zr/23oP71Or9vxv9h+5lvlfWnwmLvuXtVrJ/21mf5i8/D/Bf/tvI/vDhOT/trJ/n1q153+zfyO1zP6j1fJv/+rLwTH3tz1wTeX6tTT0x+SFEBErgcdSjOxuqsbScvqtdcApmdlUraMpPvDubWj/VQmcHBHnRMQRDdV4GPBz4N+jmC7yoxGxSUO1qp5HTR963WTmdcD7gJ8ANwA3Z+bJDZS6ENg3Ih4YERtTjD7dsYE6VQ/KzBug+HAEtmm4XtteBvx3kwUi4m8j4hrghcCRDdU4BLguMy9oYv9dvKqcNvJjDU6jtwvwhxFxRkScFhGPb6hO1R8Crax2rwAAG8pJREFUP8vMyxqs8VrgveU58T7gLQ3VuRA4pFx+NjW/V3R81k76+4S02Jn9R69h9p+/hcj/Zv/5m/TP9InI/mWdNvN/G9kf2s//Zv85MP9Li8ZEZ39oPv+3mP2hvfw/ydkfGsz/LWZ/MP83odH8b/Yfidl/NP7tX305OOb+osttjY2AblNEbAp8CXhtx8jNWmXmPZm5G8Wo0z0j4lF114iIpwPrMvOcuvfdw5Myc3fgqcCfR8S+DdRYRjH9179l5mOB2yim4WpMRKyg+JD4QoM1tqQYPflQYDtgk4h4Ud11MvNiiqkATwG+RjE16t19N1JPEfE2isfv003Wycy3ZeaOZZ1X1b3/8svS22gwgHf4N2BnYDeKL4X/0FCdZcCWwBOAvwQ+X47wbtLzafAf00p/BryuPCdeR/m/aRrwMor38nMopkG8s64dt/VZK6k2Zv8Rmf1H0mr+N/url0nJ/tB6/m8r+0P7+d/sPyTzv7SoTGz2h3bej9rI/tB6/p/I7A/N5/+2sj+Y/+vWRv43+4/E7D8a//avvhwcc3/Xsv4osh1obiq41kTEcooX7Kcz88tt1CynBVwDHNzA7p8EHBIRaymmwDwgIj7VQB0AMvP68nId8BWKaTjrdi1wbWXE/RcpAnOTngqcm5k/a7DGk4GrMvPnmXkX8GVg7yYKZeaxmbl7Zu5LMZVakyNdAX4WEdsClJe1/LTNQouIlwJPB16YmW39keB4apreusPOFF/QLijfL3YAzo2IBzdQi8z8WfmHgnuBj9DMewUU7xdfLqe0PZPif9Fs3VAtyqlR/wT4XFM1Si+leI+A4ot7I49fZl6SmQdl5uMogv8Vdey3x2ftRL5PSBPE7F8Ts/+8tJ3/zf6jmcjP9AnL/tBi/m8x+0OL+d/sPzzzv7ToTGT2h/bzf8PZH1rM/xOc/aH5/N9a9gfzf10WIP+b/efO7D8C//avQRwcc39nAY+IiIeWI2ufB5ywwH0aSTmi8Fjg4sx8f8O1ficitiiXN6IISJfUXScz35KZO2TmSorn6FuZ2cio5IjYJCI2m1kGDqKYlqtWmflT4JqI2LW86UDgR3XX6dDGiNCfAE+IiI3Lc/FAit/jq11EbFNePoTiA73pYzuB4kOd8vI/Gq7XuIg4GHgTcEhm3t5wrUdUrh5CM+8VP8zMbTJzZfl+cS2we/l6q91MECodRgPvFaWvAgeUNXcBVgA3NlQLyvfyzLy2wRpQ/FFqv3L5ABr6klt5r1gCvB34UA377PVZO3HvE9KEMfuPVsvsP4IFyP9m/9FM3Gf6pGV/aDf/t5j9od38b/Yfbr/mf2nxmbjsD+3l/7ayP7SX/yc8+0Pz+b+17A/m/zq0lf/N/iMz+4/Av/1roMy0dTSK3yv8McVosrc1WOczFNNv3UXxpv3yhursQzFF5A+A88v2tIZq/QFwXlnrQuDIFp6vVcBJDe7/YRTT9F0AXNTwObEbcHb5+H0V2LLBWhsDvwA2b+E5eidFALoQ+CSwQUN1vkPxpeIC4MCa932/1yvwQOCbFB/k3wS2arDWYeXyHcDPgK83VOdyit9fnnmv+FCDx/Sl8pz4AXAisH0TdTruXwts3eAxfRL4YXlMJwDbNlRnBfCp8vE7FzigqWMqbz8OeGUdNQYc1z7AOeVr+AzgcQ3VeQ3F5/yPgaOAqKFO18/apt4nbDZbfQ2z/yi1zP6j12sl/2P2n+u+zf7116o9+/eq1XH/WmrI/z2Oqfbs36dW7fm/12OH2X/YWuZ/m20RNiYs+5e1Wsn/LED2L+uuoqH8z4Rm/7JWK/mflrJ/WWvR5/8edWrP/n1q1Z7/e9Qx+49Wy+w/Wi3/9m/r26J8UiVJkiRJkiRJkiRJkqSJ488qSZIkSZIkSZIkSZIkaWI5OEaSJEmSJEmSJEmSJEkTy8ExkiRJkiRJkiRJkiRJmlgOjpEkSZIkSZIkSZIkSdLEcnCMJEmSJEmSJEmSJEmSJpaDYyRJPUXEcRGRZVs5wn7WzOynvt5NlohYVXmsVy90fyRJkjRdzP7tMftLkiRpIZn922P2l8aLg2PUmog4rHzzvzcitu6472Plfd9aqP5pfiLi8IhY7Ye6tL6I2GLmtRERhy50fyRJapPZfzKZ/aXuzP6SpGlm9p9MZn+pO7O/tLgtW+gOaKqsKi9/mJk3dty3f3l5anvdUU0OB/Yrl1cvXDeksbMF8I5y+ePAVxewL5IktW1VeWn2nyyHY/aXujH7S5Km2ary0uw/WQ7H7C91Y/aXFjEHx6hNq8rL9YJwRDwUWNntPkmaFpm5BoiF7ockSTVZVV6a/SWpg9lfkjRhVpWXZn9J6mD2l8aLP6ukVkTEVsCjy6udUygeWF7eDpzRWqckSZIk1c7sL0mSJE0Hs78kSVpMHByjtuxHMTLyXuDbHfcdUF5+NzPvarVXkiRJkupm9pckSZKmg9lfkiQtGg6OUVtmfpvyvMz8Vcd9q8rLRqZWjIhdIuI9EXFWRPw8Iu6KiJsj4tyI+GBEHBgR95vSLCI2iojDynXOiIhfVLa9KCL+LSIeM0T9NRGREZHl9aURcXhEnBIR10XE3RGxtmObpRHx4og4MSKuiYjfRsRvyuVzI+KYiPiTiNh4hMdlpOObOS5mn1tmjrOjrZ5n/7aIiDdFxGkRsS4i7oyIWyLiyoj4XkQcFRGruj13Hfs5OCKOi4jLIuLXEXF7RFxR3rbPHPqzZUT8VUR8IyKuj4g7IuK2iLg0Io6PiBdGxIZ9tt84Il4XEadGxE/L7ddFxHcj4i0RsfmA+qsrj+mq8rYnRMSnI+Lqyv5OioiDhzymZRHxqvLxvCkibo2ISyLiHyJip2Efm7pFxF7lOX5p+ZzdVj5nH4+IAwbv4b79REQcGhGfLJ//W8rz6IbyeXxrRKzsse1DysfmC2U/bi23XVee+2/q9ZxFxMrytXFV5eaX9nh9rKxst2rY1804nk+SJFWY/c3+c+2f2X/97c3+Zv9qjbE7nyRJqjD7m/3n2j+z//rbm/3N/tUaY3c+SRMnM222WhuQNbW1I/ZjGfAB4O4hau3XZfurhuzn3w3ox5rKulsB3+l3rMDWwJlD1j50hMdnpOPrOK5+bfU8+vZ44GdD7n+LHvv4HeCbQ2z/UWD5gP68FLh5iH29o8f2TwCuG7DtjcBBffqwurLuKuCtwD199vfOAce0DXBun+1vAp4MHFe5beUI59t958uA1+wxQzzOnwc2GlBvZ+CcIfZ1VZdtV1H8b5dB264D9umy/cohz931HtOy7sDXzTieTzabzWab3jaHz7xBbe2I/TD79+/XSMeH2b9be0eP7ccuq2H2n2lXddl2FWb/OZ1PNpvNZpveNofPvEFt7Yj9MPv379dIx4fZv1t7R4/txy6rYfafaVd12XYVZv85nU822yS2ZUgTqBxV/CXgkPKme4CvUoxSXwdsDDwSeAqwG8XUj502An4JnAKcR/GhdBewPbA78BxgOfCWiFiXmUcP0bVPAfsAFwCfAdYCDwD+oLLORyhCIsDl5Xo/Bn5TrrsrsC+w1xD1+hn1+N5OEej/Bvj98rbDutS5ZC6dimJU/FcoQhwU03GeBPyEIrhsDTyK4jdrd+2xj62A0ymCEsCPgC9QPI73lv09HNgBeDlFODu8x77eALyvctP/ACcCVwNLKQLRfsD+dDmPImI3it/b3ai86Tzg+PJ4HkzxOD8JeCBwUkQclJlruvWl4gjg+RTP2XHARcAK4GDguWU/joyI0zKz87d+iYgVwNeAx5Y3raP4snAhsEm5n2dRPGbnD+hLnT5BcVwAvwU+DnyP4vW7B8VztRnwbGDziDg4M7NzJxGxC8Xzv1V50w3A5yhed7dRnFt7AE+n+2t/w/L2iyjeMy4GflHeviNwKPA4ii9iJ0XEbpm5trL9OorXwjbAh8vbTgX+qUutdb0ejG7G8XySJGmhmf2HYvY3+5v9zf5g9pckLXJm/6GY/c3+Zn+zP5j9pe4WenSObfIaxRtrtR1FZcRzx30zo6nP6LLdfiP04a8qNa8GHt1n3ccBO/U4jmV9ttuJ4sMzgVuAzXqst4b1R2J+AFjSY91tmB3FeRawyYD69+v3HJ+nWo+vpvPnTyuP1b8OWHcvYIMut3+lso+3d3u8gU2Br1fWO7jLOk9k9n8g/AZ4bp++bA/s1XHbEorgOVPj6B59+evKOj8BNuyyzuqO8+jkbucH8LrKOv/Vo69vr6xzHvDALus8i/v/74uVIzyvfc8TijA2U+enwO/1OCevrKz3513WWQr8oLLOp4CNe9RcDjyjR52e7xnlOs+vvFb/vcc6Kyv9OG6Ix2hVZf3VXe4fy/PJZrPZbNPdMPt3rreG9T9jzf79+2X2N/ub/c3+NpvNZlskDbN/53prWP8z1uzfv19mf7O/2d/sb7MteFvwDtgmv1GMvk3gki73XVHe964a621KMdozgTsGfdiNWGv/ygfIi3qss6ayztndPtQq6z6hsu7rxuC5m9Px1VTzzZWaj53H9rtXtj92wLpbAr+aCQld7j+5sq8j5tGXQyrbnw5En3VPqqz7ii73V0PNjcCWPfazhOKLYVKMwl7Wcf8KZqeuvAN4RJ8+vbcjSK0c4Xnte56w/lSPT+2znz2ZnfpwLbC04/4XVPbznX6vtxrO1Y+XdW6nyxSd1B+Sx+58stlsNputs2H2X1NZx+w/uKbZ3+xv9jf722w2m22RNsz+ayrrmP0H1zT7m/3N/mZ/m23B2xKk5u1dXn6vemNEbAM8rLx6eo31nsrstGrHZ+YPa9x3p+oxDTPd4Qcz894+999eWf79nmu1Z67HV4dRH4MXV5bf13MtIDNvAv6rvLpvRGwwc19E/A7wR+XVKymmH5yrP6ksvzczs8+6R/XYrptPlH2/n/L8Oq28ugGzU0zOeBKzU1eemJmX9anzfopA2qiIWMnsVI8/zMz/7rVuZp5JMb0gFCO9H9exygsry28f8Hob1czrYyPWnyK1KeN4PkmS1MnsP8vsP5jZ3+xv9u9uHM8nSZI6mf1nmf0HM/ub/c3+3Y3j+SRNrGUL3QFNtjJ07F5e/Z+Ou59YXibw/RrL7lNZPmGUHZVB/iXAQcDvUYw43rjH6jsMscvvDLj/IuB6YDvg5eVvqH4EOLOJD/sGjq8O36A4JwL4UETsTPFlp1+Yq/rD8vJOYNeI6Pr7pBUbVC4fRjGlJKx/Hp00z8d/z/IyKX7jtZ/vAbdS/A+IQV9IBr1erqssb9lx3+Mry9/st5PMvCEifkTxW69N2rOyfPIQ659M8duzUDxWZ1bum3nebqb43dp5i4i9gBdR/M+Oh1H87unyHqvvAJwzSr0hjOP5JEnSfcz+92P2H8zsb/YfxOw/PueTJEn3Mfvfj9l/MLO/2X8Qs//4nE/SxHJwjJq2B7Mh5Hsd982E5Et7jV6cp2qYu7jnWgNExHOBDwObD7nJA4ZY57p+d2bmPRHxf4AvUUyD97Ky/SoiTge+C3w9M0f+MG7o+EaWmT+KiKOAtwCbUEwDtzoirqE4h74N/GdmXt1jFyvLyxUUv0E6F9UAUMd5tG15+dPM/HW/FTPz3oi4AngMsFVErMjMO3usfuOAundUljfsuG+7yvLlA/Yzs07TIXnbyvKPh1i/us5920bEZsyep5cMGGHdU0SsoPgfAy8etG5FG6+PcTyfJEmqMvuvz+w/gNnf7D/E+mb/8TmfJEmqMvuvz+w/gNnf7D/E+mb/8TmfpInl4BjVJiJ2Bx7ScfPTyss7gd/tGM17UHl5Y0Qc2rHddzNz0Bt3L9UPq1vns4OI2Bc4Hu776bFzKUY2X0ExMrX6oTETxJYO2m9m/maIdU6KiD0pwuEfU4xY3YJi2sinAn8bERcCf5mZXxvmeDo1dXx1ycy3RsRZwJuYHf26I/Dcsv1LRHwNeG1mdoaqYUN/NysqyyOfRxQjjgFuG3L9ap3NKH5Dt5tR/jfBppXl23uuNWvYvo9is8ryMPU6H6cZdTxnAB9kNiDfQTEF51kUX3JvA+4p7zsA+ItyuY3XxzieT5KkKWX2N/vXxex/37Zm/+7M/sMx+0uSGmP2N/vXxex/37Zm/+7M/sMx+0sjcHCM6vRq4KU97lsBfLnHffuw/lR2APsDa+bZj1sqy5v2XKu/1cwGyCMy8yPdVoqITea5/74y8wLgsHJE7JMofr913/JyOcWI3v+KiBdn5qfnUWI1C3h8w8jMrwBfiYjtKKZM3BtYRfEbj0HxhWHviHhiZlZHeN9K8aVibWY+dIQu1HEe/brsy7CPY7VO3xHCI6gGp15TaVa1cQ5Uj3WYer0ep5Gfs/J3UF9eXr0W2C8zr+yx7vbzqTGCcTyfJEnTy+xfE7O/2R+zfz9m/+GY/SVJTTL718Tsb/bH7N+P2X84Zn9pBEsGryItOtdWlh85143LqdVmfr/y7F4BsrTTXPc/F5n568z8WmYemZmrKKZX+0B5dwDvj4g5jVwdp+MbRmZen5mfy8zXZOZjgF0oRrtDMVr83R2bzExhuWNEjDLl3UjnUemG8vLB5Reensrfmd25vPqLPlPhjer6yvLDh1h/mHVGdUNl+RFDrF9d577jKaccvLm8umv5mM7VARSvLYCjegXkUtuvj3E8nyRJWmhm/z7G6fiGYfavndm/P7O/JEmLi9m/j3E6vmGY/Wtn9u/P7C8JcHCMapSZh2dmzDSKkb4zduu4713l7VdVb6+0NSN05TuV5UPmsf0DmZ1V6YoB6z5lHvuft8z8RWa+Hji7vGkbhgsVVXUf331Ts80zlMxJZl4G/CmzU9x1/u+D08rLpcAzRij1XWDmtyufHhHzeb88s7wM4MAB6+7N7IjfM/utOKLqvg/ot2JEbMv8vyDMRbVPfzTE+gdVljsfq++Wl1tQ/K+LuXpQZXnU10d12sI6XhvjeD5JkqaU2b95Zn+zfw3M/v2Z/SVJGoLZv3lmf7N/Dcz+/Zn9JQEOjlGz9i8vfwH8oOO+VeXlqQ3U/W/gl+XyCyLi0XPcvvp7jDv3Wqkcwfm6Oe67Lmsry3P9ebS6j686XV8r0zFm5s3ATeXVzuP/RGX5yPlOEZmZPwdOLq8+DHjFPHbzpcryGwd8iXhTj+3q9j/Az8rlQyKi5zkAvJYWflMzM9dS/P4twGMi4qBe60bEHsyG+6uBczpW+VRl+W/m8eVm2NfHM1n/DwHd1P3aGMfzSZKkGWb/5qytLJv912f278/s35/ZX5Kk+TH7N2dtZdnsvz6zf39m//7M/pIAB8eoWTMfZKdl5sxIXCJiI2Cv8mrtITkzbwOOKq+uAE7sF5QjYreIuG+atDKAXVZe3SMiDuuyzabAF4Ada+t4sd+nRMRrImLzPus8nNlRtrcyeJTreho4vqsqy7vPpS/dRMSrI+JZEbG8zzrPBrYur15QvS8zz2A2FOxC8fxXRwV37mtZRBwaEf+3y92rmR2p/o8R8Zw++9k2IvbsuPk/gYvK5ScB7+0W2iLircyOdr8GmM/vyQ4lM+8C/rm8ugL4fERs1aVPhwKvb6ofXfx9Zfm4iPjdzhUi4iHAZ5n97HpvZt7TsdoXmP1Svg/wiYjo+hur5XP/xx03n1VZfmNEbNllu72Aj/U8klJm/pLZ6R53q+F/WIzd+SRJUoXZf47M/mZ/zP5g9u9l7M4nSZIqzP5zZPY3+2P2B7N/L2N3PkmTbK4jT6WhlG/cM1Obrem4e29gg3K5iRHkAO+j+IA8hOL3Ac+LiK+UfVkHbATsSjFN2x4Uo92vrmz/z8A/lctfjIhPU0zb9mvgUcDhwHYUo5VfUmO/twWOBt4TEacCZwBXUoxq3Rp4PPAcZkejHp2Zv5lHnTqP75vAq8vlYyPiAxSP5Ux4uTwzL59D33YH/hG4KSJOphghfB3FVHUPpnjOZqa1S+D/ddnHyygC8qMpntsrI+KLwOnAjcCGFI/17uX+tgKO7dxJZn4/It5EcT5tCHwuIl4NnAD8hCKs7UTxW65PBv6OylR2mXlvRLyYYtT2RsAbgP3Lx/taiqn8nsPsFJF3AS/JzN8O/3DNy3sppqjcjeIx+FFEfIQigG0CHAw8iyLgnc/s//hoTGZ+vgzmz6d4bs6NiOMonrN7KF6nLwdmfk/2ZOBfu+znnvJL1OkUz+sLgQMi4rMUX6hmXku7UwTJ31KEzxmnU5xzjwNWApdExIeASymewwOA51JMcXg88IIBh/Yt4DCK0eifi4gvA7+q3H/asK/hMT6fJElTzuw/b2Z/s7/Z3+zf1RifT5KkKWf2nzezv9nf7G/272qMzydpMmWmzVZ7o/gAyrI9quO+d5e3X9pwH5YDH6T4gM0Bbd+ObYNimrZ+23yV4oNq5vqaHv1YM7POEH1+yRB9TYrAeDSwZJ6PTZ3Ht5Ti91577Wf1HPv2sSEfg1uBF/fZz2YUo42H2VcC7+qzr1dQfIEYtI8je2z/ROD6Adv+AnhKnz6srqy7asBjOHBdit+tPbdPf26iCP7HVW5bOcLrceDrgGLA5keGeJy/AGw0oN4jKEaSD9rXlV22fTjFl6Be2/yW4ovY4ZXbDu/Rj90ognmvfa2srLuqcnvP1804nk82m81mm+6G2b+6r4GZp7Ku2d/s36sPqyvrrhrwGA5cF7P/TDP7m/1tNpvNNmLD7F/d18DMU1nX7G/279WH1ZV1Vw14DAeui9l/ppn9zf42W9fmzyqpKTO/O3ojs9OBdd53apMdyMy7MvPPgcdQjEj+IcXIzXvKy3MoRlLvm5nf7tg2M/NFFKNDTy3Xv5NilOZJwHMz89Cc3+jtfj5Z9vf1wH8AlwO3lX2eGc37L8DjMvO1mXnvfIrUeXxZTG/3R8CbKUbf3sTs6PH5eCVFWHhX2bfrgDuAuynOp+8C7wB2ycxP9unXrzPzeRRf2I4GzqMIDndTBOzLKL4IvB7YOTOP7LOvj1L8/uhfU4ze/Xm5n9uASyi+cDyH2Wk9O7c/nSK0vR44rdz+rrI/pwNvK/vw9X4PTJ0ycx3FNKd/AXwfuIUizF0KfADYLTO/0VZ/yj7dnZn/myIEHsvs+f8bimk8PwUcmJnPHnRuZuZlFAH1ecAXKULvbyjO8+uBUyh+n3OfLtteDjyW4n8nXEwRim+leGz+Bdg9MwdOr1ju63yK0egfLbe/vf8WQ+1z7M4nSdLUM/vPj9nf7N8Ks7/ZX5KkGpn958fsb/Zvhdnf7C+pv8jMhe6DJEmSJEmSJEmSJEmS1AhnjpEkSZIkSZIkSZIkSdLEcnCMJEmSJEmSJEmSJEmSJpaDYyRJkiRJkiRJkiRJkjSxHBwjSZIkSZIkSZIkSZKkieXgGEmSJEmSJEmSJEmSJE0sB8dIkiRJkiRJkiRJkiRpYjk4RpIkSZIkSZIkSZIkSRPLwTGSJEmSJEmSJEmSJEmaWA6OkSRJkiRJkiRJkiRJ0sRycIwkSZIkSZIkSZIkSZImloNjJEmSJEmSJEmSJEmSNLEcHCNJkiRJkiRJkiRJkqSJ9f8BA2ewLW7j+8UAAAAASUVORK5CYII=\n", "text/plain": [ "<Figure size 2880x1440 with 12 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "figure_4_2()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 多线程解法 如下\n", "\n", "jupyter 上迟迟不执行,怀疑 jupyter 无法处理多线程。" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "ExecuteTime": { "start_time": "2020-01-16T14:33:22.506Z" } }, "outputs": [], "source": [ "# This file is contributed by Tahsincan Kรถse which implements a synchronous policy evaluation, while the car_rental.py\n", "# implements an asynchronous policy evaluation. This file also utilizes multi-processing for acceleration and contains\n", "# an answer to Exercise 4.5\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import math\n", "import tqdm\n", "import multiprocessing as mp\n", "from functools import partial\n", "import time\n", "import itertools\n", "%matplotlib inline\n", "\n", "############# PROBLEM SPECIFIC CONSTANTS #######################\n", "MAX_CARS = 20\n", "MAX_MOVE = 5\n", "MOVE_COST = -2\n", "ADDITIONAL_PARK_COST = -4\n", "\n", "RENT_REWARD = 10\n", "# expectation for rental requests in first location\n", "RENTAL_REQUEST_FIRST_LOC = 3\n", "# expectation for rental requests in second location\n", "RENTAL_REQUEST_SECOND_LOC = 4\n", "# expectation for # of cars returned in first location\n", "RETURNS_FIRST_LOC = 3\n", "# expectation for # of cars returned in second location\n", "RETURNS_SECOND_LOC = 2\n", "################################################################\n", "\n", "poisson_cache = dict()\n", "\n", "\n", "def poisson(n, lam):\n", " global poisson_cache\n", " key = n * 10 + lam\n", " if key not in poisson_cache.keys():\n", " poisson_cache[key] = math.exp(-lam) * math.pow(lam, n) / math.factorial(n)\n", " return poisson_cache[key]\n", "\n", "\n", "class PolicyIteration:\n", " def __init__(self, truncate, parallel_processes, delta=1e-2, gamma=0.9, solve_4_5=False):\n", " self.TRUNCATE = truncate\n", " self.NR_PARALLEL_PROCESSES = parallel_processes\n", " self.actions = np.arange(-MAX_MOVE, MAX_MOVE + 1)\n", " self.inverse_actions = {el: ind[0] for ind, el in np.ndenumerate(self.actions)}\n", " self.values = np.zeros((MAX_CARS + 1, MAX_CARS + 1))\n", " self.policy = np.zeros(self.values.shape, dtype=np.int)\n", " self.delta = delta\n", " self.gamma = gamma\n", " self.solve_extension = solve_4_5\n", "\n", " def solve(self):\n", " iterations = 0\n", " total_start_time = time.time()\n", " while True:\n", " start_time = time.time()\n", " self.values = self.policy_evaluation(self.values, self.policy)\n", " elapsed_time = time.time() - start_time\n", " print(f'PE => Elapsed time {elapsed_time} seconds')\n", " start_time = time.time()\n", "\n", " policy_change, self.policy = self.policy_improvement(self.actions, self.values, self.policy)\n", " elapsed_time = time.time() - start_time\n", " print(f'PI => Elapsed time {elapsed_time} seconds')\n", " if policy_change == 0:\n", " break\n", " iterations += 1\n", " total_elapsed_time = time.time() - total_start_time\n", " print(f'Optimal policy is reached after {iterations} iterations in {total_elapsed_time} seconds')\n", "\n", " # out-place\n", " def policy_evaluation(self, values, policy):\n", "\n", " global MAX_CARS\n", " while True:\n", " new_values = np.copy(values)\n", " k = np.arange(MAX_CARS + 1)\n", " # cartesian product\n", " all_states = ((i, j) for i, j in itertools.product(k, k))\n", "\n", " results = []\n", " with mp.Pool(processes=self.NR_PARALLEL_PROCESSES) as p:\n", " '''\n", " 多线程,传入 all_states 参数\n", " 固定 func, policy, values\n", " 在临界区(不知理解的对不对)\n", " '''\n", " cook = partial(self.expected_return_pe, policy, values)\n", " results = p.map(cook, all_states)\n", "\n", " for v, i, j in results:\n", " new_values[i, j] = v\n", "\n", " difference = np.abs(new_values - values).sum()\n", " print(f'Difference: {difference}')\n", " values = new_values\n", " if difference < self.delta:\n", " print(f'Values are converged!')\n", " return values\n", "\n", " def policy_improvement(self, actions, values, policy):\n", " new_policy = np.copy(policy)\n", "\n", " expected_action_returns = np.zeros((MAX_CARS + 1, MAX_CARS + 1, np.size(actions)))\n", " cooks = dict()\n", " with mp.Pool(processes=8) as p:\n", " for action in actions:\n", " k = np.arange(MAX_CARS + 1)\n", " all_states = ((i, j) for i, j in itertools.product(k, k))\n", " cooks[action] = partial(self.expected_return_pi, values, action)\n", " results = p.map(cooks[action], all_states)\n", " for v, i, j, a in results:\n", " expected_action_returns[i, j, self.inverse_actions[a]] = v\n", " for i in range(expected_action_returns.shape[0]):\n", " for j in range(expected_action_returns.shape[1]):\n", " new_policy[i, j] = actions[np.argmax(expected_action_returns[i, j])]\n", "\n", " policy_change = (new_policy != policy).sum()\n", " print(f'Policy changed in {policy_change} states')\n", " return policy_change, new_policy\n", "\n", " # O(n^4) computation for all possible requests and returns\n", " def bellman(self, values, action, state):\n", " expected_return = 0\n", " if self.solve_extension:\n", " if action > 0:\n", " # Free shuttle to the second location\n", " expected_return += MOVE_COST * (action - 1)\n", " else:\n", " expected_return += MOVE_COST * abs(action)\n", " else:\n", " expected_return += MOVE_COST * abs(action)\n", "\n", " for req1 in range(0, self.TRUNCATE):\n", " for req2 in range(0, self.TRUNCATE):\n", " # moving cars\n", " num_of_cars_first_loc = int(min(state[0] - action, MAX_CARS))\n", " num_of_cars_second_loc = int(min(state[1] + action, MAX_CARS))\n", "\n", " # valid rental requests should be less than actual # of cars\n", " real_rental_first_loc = min(num_of_cars_first_loc, req1)\n", " real_rental_second_loc = min(num_of_cars_second_loc, req2)\n", "\n", " # get credits for renting\n", " reward = (real_rental_first_loc + real_rental_second_loc) * RENT_REWARD\n", "\n", " if self.solve_extension:\n", " if num_of_cars_first_loc >= 10:\n", " reward += ADDITIONAL_PARK_COST\n", " if num_of_cars_second_loc >= 10:\n", " reward += ADDITIONAL_PARK_COST\n", "\n", " num_of_cars_first_loc -= real_rental_first_loc\n", " num_of_cars_second_loc -= real_rental_second_loc\n", "\n", " # probability for current combination of rental requests\n", " prob = poisson(req1, RENTAL_REQUEST_FIRST_LOC) * \\\n", " poisson(req2, RENTAL_REQUEST_SECOND_LOC)\n", " for ret1 in range(0, self.TRUNCATE):\n", " for ret2 in range(0, self.TRUNCATE):\n", " num_of_cars_first_loc_ = min(num_of_cars_first_loc + ret1, MAX_CARS)\n", " num_of_cars_second_loc_ = min(num_of_cars_second_loc + ret2, MAX_CARS)\n", " prob_ = poisson(ret1, RETURNS_FIRST_LOC) * \\\n", " poisson(ret2, RETURNS_SECOND_LOC) * prob\n", " # Classic Bellman equation for state-value\n", " # prob_ corresponds to p(s'|s,a) for each possible s' -> (num_of_cars_first_loc_,num_of_cars_second_loc_)\n", " expected_return += prob_ * (\n", " reward + self.gamma * values[num_of_cars_first_loc_, num_of_cars_second_loc_])\n", " return expected_return\n", "\n", " # Parallelization enforced different helper functions\n", " # Expected return calculator for Policy Evaluation\n", " def expected_return_pe(self, policy, values, state):\n", "\n", " action = policy[state[0], state[1]]\n", " expected_return = self.bellman(values, action, state)\n", " return expected_return, state[0], state[1]\n", "\n", " # Expected return calculator for Policy Improvement\n", " def expected_return_pi(self, values, action, state):\n", "\n", " if ((action >= 0 and state[0] >= action) or (action < 0 and state[1] >= abs(action))) == False:\n", " return -float('inf'), state[0], state[1], action\n", " expected_return = self.bellman(values, action, state)\n", " return expected_return, state[0], state[1], action\n", "\n", " def plot(self):\n", " print(self.policy)\n", " plt.figure()\n", " plt.xlim(0, MAX_CARS + 1)\n", " plt.ylim(0, MAX_CARS + 1)\n", " plt.table(cellText=self.policy, loc=(0, 0), cellLoc='center')\n", " plt.show()\n", "\n", "\n", "TRUNCATE = 9\n", "solver = PolicyIteration(TRUNCATE, parallel_processes=4, delta=1e-1, gamma=0.9, solve_4_5=True)\n", "solver.solve()\n", "solver.plot()\n" ] } ], "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.0" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }