{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Mutagenicity\n", "\n", "--- This is a classification problem ---\n", "\n", "1. Loading dataset from file...\n", "\n", "2. Calculating gram matrices. This could take a while...\n", "\n", "getting shortest paths: 100%|██████████| 4337/4337 [00:44<00:00, 97.63it/s]\n", "calculating kernels: 0%| | 2789/9406953.0 [01:36<77:03:17, 33.90it/s] " ] }, { "ename": "KeyboardInterrupt", "evalue": "", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 56\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'task'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m'task'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mds\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;34m'classification'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mNUM_TRIALS\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m30\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 57\u001b[0m \u001b[0mdatafile_y\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'dataset_y'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m'dataset_y'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mds\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 58\u001b[0;31m extra_params=(ds['extra_params'] if 'extra_params' in ds else None))\n\u001b[0m\u001b[1;32m 59\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/media/ljia/DATA/research-repo/codes/Linlin/py-graph/pygraph/utils/model_selection_precomputed.py\u001b[0m in \u001b[0;36mmodel_selection_for_precomputed_kernel\u001b[0;34m(datafile, estimator, param_grid_precomputed, param_grid, model_type, NUM_TRIALS, datafile_y, extra_params)\u001b[0m\n\u001b[1;32m 99\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'gram matrix with parameters'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams_out\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'is: '\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 100\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 101\u001b[0;31m \u001b[0mKmatrix\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcurrent_run_time\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mestimator\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdataset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mparams_out\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 102\u001b[0m \u001b[0mKmatrix_diag\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mKmatrix\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdiagonal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 103\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/media/ljia/DATA/research-repo/codes/Linlin/py-graph/pygraph/kernels/pathKernel.py\u001b[0m in \u001b[0;36mpathkernel\u001b[0;34m(node_label, edge_label, *args)\u001b[0m\n\u001b[1;32m 70\u001b[0m Kmatrix[i][j] = _pathkernel_do_l(Gn[i], Gn[j], splist[i],\n\u001b[1;32m 71\u001b[0m \u001b[0msplist\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnode_label\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 72\u001b[0;31m edge_label)\n\u001b[0m\u001b[1;32m 73\u001b[0m \u001b[0mKmatrix\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mKmatrix\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 74\u001b[0m \u001b[0mpbar\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/media/ljia/DATA/research-repo/codes/Linlin/py-graph/pygraph/kernels/pathKernel.py\u001b[0m in \u001b[0;36m_pathkernel_do_l\u001b[0;34m(G1, G2, sp1, sp2, node_label, edge_label)\u001b[0m\n\u001b[1;32m 130\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mpath1\u001b[0m \u001b[0;32min\u001b[0m \u001b[0msp1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 131\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mpath2\u001b[0m \u001b[0;32min\u001b[0m \u001b[0msp2\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 132\u001b[0;31m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpath1\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpath2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 133\u001b[0m kernel_path = (G1.node[path1[0]][node_label] == G2.node[path2[\n\u001b[1;32m 134\u001b[0m 0]][node_label])\n", "\u001b[0;31mKeyboardInterrupt\u001b[0m: " ] } ], "source": [ "%load_ext line_profiler\n", "%matplotlib inline\n", "import numpy as np\n", "import sys\n", "sys.path.insert(0, \"../\")\n", "from pygraph.utils.model_selection_precomputed import model_selection_for_precomputed_kernel\n", "from pygraph.kernels.pathKernel import pathkernel\n", "\n", "dslist = [ \n", "# {'name': 'Acyclic', 'dataset': '../datasets/acyclic/dataset_bps.ds', 'task': 'regression'}, # node_labeled\n", "# {'name': 'COIL-DEL', 'dataset': '../datasets/COIL-DEL/COIL-DEL_A.txt'}, # edge_labeled\n", "# {'name': 'PAH', 'dataset': '../datasets/PAH/dataset.ds',}, # unlabeled\n", " {'name': 'Mutagenicity', 'dataset': '../datasets/Mutagenicity/Mutagenicity_A.txt'}, # fully_labeled\n", " {'name': 'MUTAG', 'dataset': '../datasets/MUTAG/MUTAG.mat',\n", " 'extra_params': {'am_sp_al_nl_el': [0, 0, 3, 1, 2]}},\n", " {'name': 'Alkane', 'dataset': '../datasets/Alkane/dataset.ds', 'task': 'regression', \n", " 'dataset_y': '../datasets/Alkane/dataset_boiling_point_names.txt',},\n", " {'name': 'BZR', 'dataset': '../datasets/BZR_txt/BZR_A_sparse.txt'},\n", " {'name': 'COX2', 'dataset': '../datasets/COX2_txt/COX2_A_sparse.txt'}, \n", " {'name': 'ENZYMES', 'dataset': '../datasets/ENZYMES_txt/ENZYMES_A_sparse.txt'},\n", " {'name': 'DHFR', 'dataset': '../datasets/DHFR_txt/DHFR_A_sparse.txt'},\n", " {'name': 'SYNTHETIC', 'dataset': '../datasets/SYNTHETIC_txt/SYNTHETIC_A_sparse.txt'},\n", " {'name': 'MSRC9', 'dataset': '../datasets/MSRC_9_txt/MSRC_9_A.txt'},\n", " {'name': 'MSRC21', 'dataset': '../datasets/MSRC_21_txt/MSRC_21_A.txt'},\n", " {'name': 'FIRSTMM_DB', 'dataset': '../datasets/FIRSTMM_DB/FIRSTMM_DB_A.txt'},\n", " {'name': 'PROTEINS', 'dataset': '../datasets/PROTEINS_txt/PROTEINS_A_sparse.txt'},\n", " {'name': 'PROTEINS_full', 'dataset': '../datasets/PROTEINS_full_txt/PROTEINS_full_A_sparse.txt'},\n", " {'name': 'D&D', 'dataset': '../datasets/D&D/DD.mat',\n", " 'extra_params': {'am_sp_al_nl_el': [0, 1, 2, 1, -1]}},\n", " {'name': 'AIDS', 'dataset': '../datasets/AIDS/AIDS_A.txt'},\n", " {'name': 'NCI1', 'dataset': '../datasets/NCI1/NCI1.mat',\n", " 'extra_params': {'am_sp_al_nl_el': [1, 1, 2, 0, -1]}},\n", " {'name': 'NCI109', 'dataset': '../datasets/NCI109/NCI109.mat',\n", " 'extra_params': {'am_sp_al_nl_el': [1, 1, 2, 0, -1]}},\n", " {'name': 'NCI-HIV', 'dataset': '../datasets/NCI-HIV/AIDO99SD.sdf',\n", " 'dataset_y': '../datasets/NCI-HIV/aids_conc_may04.txt',},\n", " \n", "\n", "# # not working below\n", "# {'name': 'PTC_FM', 'dataset': '../datasets/PTC/Train/FM.ds',},\n", "# {'name': 'PTC_FR', 'dataset': '../datasets/PTC/Train/FR.ds',},\n", "# {'name': 'PTC_MM', 'dataset': '../datasets/PTC/Train/MM.ds',},\n", "# {'name': 'PTC_MR', 'dataset': '../datasets/PTC/Train/MR.ds',},\n", "]\n", "estimator = pathkernel\n", "param_grid_precomputed = {}\n", "param_grid = [{'C': np.logspace(-10, 10, num = 41, base = 10)}, \n", " {'alpha': np.logspace(-10, 10, num = 41, base = 10)}]\n", "\n", "for ds in dslist:\n", " print()\n", " print(ds['name'])\n", " model_selection_for_precomputed_kernel(\n", " ds['dataset'], estimator, param_grid_precomputed, \n", " (param_grid[1] if ('task' in ds and ds['task'] == 'regression') else param_grid[0]), \n", " (ds['task'] if 'task' in ds else 'classification'), NUM_TRIALS=30,\n", " datafile_y=(ds['dataset_y'] if 'dataset_y' in ds else None),\n", " extra_params=(ds['extra_params'] if 'extra_params' in ds else None))\n", " print()" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "--- This is a regression problem ---\n", "\n", "1. Loading dataset from file...\n", "\n", "2. Calculating gram matrices. This could take a while...\n", "\n", " --- mean average path kernel matrix of size 183 built in 21.938350677490234 seconds ---\n", "\n", "gram matrix with parameters {} is: \n", "[[1. 0.56568542 0. ... 0. 0. 0. ]\n", " [0.56568542 1. 0. ... 0. 0. 0. ]\n", " [0. 0. 1. ... 0.14113936 0.15109947 0.1490712 ]\n", " ...\n", " [0. 0. 0.14113936 ... 1. 0.71655637 0.66906607]\n", " [0. 0. 0.15109947 ... 0.71655637 1. 0.73430128]\n", " [0. 0. 0.1490712 ... 0.66906607 0.73430128 1. ]]\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQgAAAD3CAYAAADhRcqHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzsvXmcXVWV9v/d+wx3vrfmIVWZB8gAhCFAEFAEGUSBxgl70Fa6tVG7nfr3OrSvre1P7H5bW3vCCRBnTSvIqIjMKoQESUjIPFdSVan5zvdMe79/7FtVARKo8EIn2vV8Pje37r0nZ+8zrbPWep61jtBaM41pTGMah4M81hOYxjSmcfxi2kBMYxrTOCKmDcQ0pjGNI2LaQExjGtM4IqYNxDSmMY0jYtpATGMa0zgipg3ENKbxBwAhxM1CiAEhxMYj/C6EEP8mhNghhHhaCHHaVNY7bSCmMY0/DNwCXPoCv18GLKy/3gN8dSornTYQ05jGHwC01o8AIy+wyJXAd7TB40CDEKLzxdY7bSCmMY3/GegCeg75vL/+3QvCfsWmM41pTOMFcckFKT08Ek1p2Sef9p4Baod89Q2t9TdekYkdgmkDMY1pHCMMjUSsvrd7Sss6nTtrWusz/h+GOwDMPORzd/27F8R0iDGNaRwzaCKtpvR6GXAH8I46m3E2kNda973Yf5r2IKYxjWMEDShenmpqIcQPgdcALUKI/cDfAw6A1vprwD3A64EdQAV411TWO20gpjGNYwSNJtBTy0G86Lq0fvuL/K6B9x/teqcNxDSmcQzxcnkQrxSOeQ5CCHGpEGJrXeH18WM9n6lCCLFHCLFBCLFOCLG2/l2TEOI+IcT2+nvjsZ7noTic2u5Ic36pyrtXGkfYhs8IIQ7Uj8U6IcTrD/ntE/Vt2CqEuOTYzPrw0ECEntLrWOGYGgghhAX8J0bltQR4uxBiybGc01HiAq318kOyyx8H7tdaLwTur38+nnALz1fbHWnOL0l599+AWzi8YvDL9WOxXGt9D0D9XLoGWFr/PzfUz7njBgo9pdexwrH2IM4Edmitd2mtfeBHGMXX7yuuBL5d//vbwFXHcC7PwxHUdkea80tS3r3SmIJi8FBcCfxIa+1prXdjEnRnvmKTO0poINJ6Sq9jhWNtIF6Suus4gQZ+KYR4Ugjxnvp37YdQR/1A+7GZ2lHhSHP+fTs2H6iHQjcfEtod99ugpvg6VjjWBuL3GedqrU/DuOLvF0Kcf+iP9azx8Z2Beg5+H+dcx1eB+cByoA/40rGdztSgp5h/+B+bg+AlqruOB2itD9TfB4DbMK7rwXE3vP4+cOxmOGUcac6/N8dGa31Qax1prRXwTSbDiON6G7SGYIqvY4VjbSDWAAuFEHOFEC4moXTHMZ7Ti0IIkRJCZMb/Bi4GNmLm/s76Yu8Ebj82MzwqHGnOL0l5dyzwnNzIH2GOBZhtuEYIERNCzMUkXJ/4757fkSGIpvg6VjimOgitdSiE+ABwL2ABN2utnzmWc5oi2oHbhBBg9uEPtNa/EEKsAVYJIa4F9gJvPYZzfB6OoLb7Rw4/55ekvHulcYRteI0QYjkmPNoDvBdAa/2MEGIVsAkIgfdr/TIpk14GaEAd5wGdmH5wzjSmcWyw7GRXr7q7dUrLLp3V++T/Y7HWS8K0knIa0zhGMEKpYxc+TAXTBmIa0ziGUHraQExjGtM4DKY9iGlMYxpHhEYQ6ONK+f08vGI059EWYR2iRvy9xO/7/GF6G/67Me5BHM805ytiIF5iEdbvzYE9An7f5w/T2/DfDEGk5ZRexwqv1Mh/aEVY05jGyw7TUUpO6XWs8ErlIA5XJHPWoQvUXcH3AIiYe/qsLpusaNIA/owU7Y1j9OcbiO0vT/yfsDWFqFeuRLn6H1Wz89y+MoeDakgBGhEBArQEGUGQEEgF6pB97wwcfh0TyCTRgNDaHF3BxHs8liOb6dIoDUZARRSTiLrMREvQgonPANbwi4w3FSTjZry6nkXo+jjjChwN2hLPGjeKW4hIoy0xuR2Am2wk3TRTA8jRqc1NxGOTH/T4P+M7BjMvISb2iXYs0BothVlMARJEvnJUmy1cB4Ssb6A2f2tN3M6Qi3foZ88HQKBd69nTk8IolcrV56zbBa3MghPH+FA3v756P3jevIqMDmmtpyZuYDpJeUTUW3Z/AyArmvSi3gu5t28dc3/xFyx691rog0XA8nVw6y9X8s9Xf5evLlwwuYLnFPzu/OFy1Kg5WRs2Sk595wYA9p9dOvwEDvN1/4fOwWvWOAVBmIT4EMQKCqesKb9rjNYrtr7wRvnP+fwi5/zgdSvRtsCqaWQA2mLifI4VFWjwspLUQIhTCAlTNmiNXYnYdXUM7WoWvn/1Cw9yONRe4Lf6tVJ661loKbBrChlqwoTELiuQECYkaBg4QzL3E48d3djeEb5+/QqcYkCUtHEHq4S5GFHcwqpFRDGJm/eRFR9R9Rk4v53mm15g3CNpJZ9/PZvFX3sa0lccXJEkNqZpvGVq22QtWUiUSyBroTG2wH1rP7t3Sv8Z0Foc0/BhKnilDMRLKpKZ+4u/YPelN3IJyye+u/3Olfx/b7mdj975pyzg8SP+39zDCez6BTl6eZnH7j4ZgJn8dsqTbn7GI8jY2FVFFBO4hZBdb3Jwhy1i9zdPeT1TRdMWDy0FMlCISKHl5J1e1gJQkEw6HDg/SWLQxmswv7sFTdsTGmW/cidXZlcJhEAEEUQaHbPMhSAEOmaZO79Iv2zjJfcVwPNxHBtRqiJLLjg2BCE4NiOnNhErxHGKIY1bqy++wqOAeyCPCCOaN1rY1akrscVoAbvqQRg9x8OYOtT/UA9ioggLYxiuAf74SAsnl8Det69k0bsf4xKWc2/vOubeey3zZg4y74Mj3P6tFSzY/Tjdj6d5b/uDALztl+8D4MaLbub20dNQH60hPXNwm673EX3bAei5bQl/umANkZZ8c/X5nLdsK1nbY15ikGXxHm448FrObzbL/uI9IUiBVY2QgcSqhiz4QYT0QmS+wuavnUnXnCEiLehK53n6wAxUTwqk5uyVW1jX30V3wxiD5RSjwxn+ZsX9/NuTr+XvVtzD13edx/vmP8wNO1/NBTO2M+Bl2PP3csLVFpGoG4h6qBAZ+ku5khmPVrDKASphgwZZC5E1H6Rkx/UrUbNrSCsil64xsr0JlVBkO4rUnmlALCwRc0NcO2I0nyKZqtGaLrO0oY9Gp0I+TNBfy/K7fTOZ2zZMOXAZLSdo/3oCLcDyFCLSRDGJXY3Qoh6iaEjvLLH1hjNx8hbRTOOW6BGX2IiFm4fCwhAkyFRAfFOCypyAxqdscm/qpTle5slNc2npypNyfeQXM9ilgChu4w7bhJlJD0LFLNK9PlY5wCobN63nb8/BazKhY5jSCAXxQYmWgACnBJanqbYKkn2asSWa3DZBtUUgT8/j2iG2pQgjSe4/M1i+wq5GyEpAzyfPAQ0qBn5OkeqR+DkIUwrLE1hVgVOGzkfy+I1xs1/s+oW+b+oXiUbg6+NbafCK1WLU+wJ+hckirM8fadlY90z9r/fP46eL2wDY9q3T2X3JTSz5z/cx9wcHoOYR9vWz48tnT8TLt131FQD+6NYPAbDoOwVztwPwfBgyMciev15KmNBYvsAdg2qbxikJgoyeiC+jhNkHi24cQyUdpBeiHQtZDdBCIPwAUa5y4E1z8HNgVUHbIH1wixotodYkkBHIAJQFlge1Vo07JvAbNCIShAmNXRVmPA1zbyuhLYms36WxJnMJshYCoOI2IlSIqo92HbNv/QDhGQMxcMEMvAYxEaI4RY1yQQtBrKAI4wKvQWDXwwotIKjf+FUMRATK0dhlE1bJ0Hw3876iyV14EUIptGsjvACEQLsm1JGFKgPntWEFECRNbseqgQw1VqAJ48JcwHGBXTOfh84JyW50CJPglCFyIYqZ8WQlMJ5KoYpOxsyYvjkWRBrpBYiqiVEKp3bgpyWWZ/a/cgROWZlcjxRYgUb6migusMuKWrPFwXMUHY9Kas0mRFKOOV5ta4qIQCGiCFELGDu1FdtTaCEIEwK3oAhSEuWAUGD5Ghlq0ptHUNmE2S/SeHO/fOofplwzseCkpP7S7YumsihXzV//h1WLUe8LeM9Ulp3ZOMw//fxDEyHEvJmDLPnP97Hp/Tdwyecnww3tauy8ORB/+ekPA/APf7eKf93xWtS67Yddt1UDpyRwChrlQGJQEBvRLHrvZjYMdFIcS04sqzZuMe/1z891NmOjs3GKYHsaGZgkn4hMwi02plE2xEcjE6MLyJ8W4s0QEEgynUXiQlPc3oD0BcrV8MSGQ9N5z8KhY7+QCU8ubSc+KpChRkTmxFWOwK6YNchahNccw65EKNfsuz1v1sT3uXitEYSCRL9E2cYwoMyAes2GibHHx3/uPCKgoSuHCM2+kH40kQSUgQKtEbUQHbeJUg4i1LQ9NMr+K7oIU5ogA7kdEKQEPLHhsPtdP2e8caQzCaJUDBkqhB8SJV1jVCUT7r4I1YTBTfQJmh8t0n9JN5ELTknjlMAtKXhiw7O2M5eMIarGU9GOPWEgoZ7wDRVEmmjrjhc9Pi+G6DiXWh8X1ZxZ0aTPEhey/CmTc5j34xFEpUa4e++zwg35ueaJMEJWzAEUfcMAdN5ZfVb4MR56bPzkKYhIY1VDtCVRrsQuB1hDRUQQop1JG3nurZv44c7TKQ2l+KuzH6Kn1sQ9q5cjPcH7Lvkld370tebu5KsJwyCUnvBqlCVwSgHKsUCCM1AyWXKtzd1fAsqwIFoItnwg+/yQ5UCSs1duYcxPECrJ1u0zcAdtZGg8EKFBeoK/evM99PkNrPnYGShbTBgHEWmULSZiaemF+E1xrEqIdiRaCJyChyx7qLg7MZeJC0trULDrLVmYVybqS0Krhyo5ZDuKuHbE0P4GWrrHmN84xMBn5xkDIU04gjaekAgUQmlkNUAlHMKUg4g07qBhR1TSRQuQfoRyLbb9eYLsdptqmyZojBDJECE1esQl0WchQ4iNGCOfe1MvzqcbCLIOlq+QXkSYdrCqEUjjPSGYmAMYr8IuGu9j3DNRCQdZDdj5tgaS/YLimVXmdAyj/7EVp2QymipmIUJNmDBhlbIFMtDISLHnsjiWJ3Dz5vi7Rc1T3/jolO/0809K6X/82YlTukbeuuB3f1gexEvBrb80Ccnbv7UCauZgzr332olwY3Z+7NlhBEBg3h96bBkPiWUA3H7VVyZCjwVjZYQydzIsMRE6iKoHUYQIJ+9L3731QkQE2SLcNHgRTknw4T+5m5q2+dqdlzB39DAhQaQn1SRSIis+0jH5A1Gp+/VKI8Jo0qBojRCC3KYmRg50YFVhi91O3AenrHlqaAmWZyjLrIamyw+QcT1aYyU8ZVMJHb7208tQLswbLaEcabaxfmfDlsbtBYQX4khhwqZ6UlOWPITnIyM1MReEmKT9tCa3I0vQl8auaLQVR1ugn24klNAYafwtLaxramb2WAkRKZDSHJtxWjNUJp/iB1ihmpjb+D6RSpnlghDLt2l+Mk08HxEflshAEiRjKMeEITJU9L8mQu92KM8PiO7qoqswjIhMcld4ESJUSC80IdC4B6Hq+wOM0aqYc0r4IYQRVhBBENK4BdxShIgSDDnddOaLyLIHQiBrFiiF9E14pwX1cTXta1yUbUIb5Zgbx9FC/Q9lMV4S/vnq7xq2YvckW3GkcOO5eG74MR568MT2Z7mPcGQWLNUzG6/J0I7jociPP30pTllx5qc3M/iJsSOGBIdb94udLrHRzueFLGiIjWncknHX/YyF/EILXslnb3IGQmtkNcS7zsfpc9FrNkzkwQ+d13PneOhcppKnTy5qhkOTlHGJXYnQQhDVac7BU5wJ9/xwYx4O4RG+b2g/bSJJaY9WiTIxVMxCehHalZzwNR9Z8xE1n/1XdBE9s3VizPFxn7u/p+ob51oyyCBieEmW2JgJr15oH42PmS3NRacTJk8ij/5CN1LraQPxovDmJhi6ZCVfXQgLMGzFQ48tQ7ua+Z/zmZ0f45LPG3bjwk1XMCc9woNPLEWnI1INVRa1DJBbZZE+EFFrkKQP+PzgklfRisdbtvQyGGZYted0bln2bSIEH999NXuGm7DtiD+Zv5b1hW4ubd7Af3wBojhErsAtgNckMCoeGPqbbk5YW+aM9G76gkaezM/ij9tX84ODZ7GiYQ8bil10x8dYtfk03r3sMebFBvjUk1dy89m38Jdr3sE1Jz7J7kozc5PD/HpwPld1ruc/fwoyMFlxywc/AyqmiY0Iqr7ErmoqHYJak0t8xMHPClAmkbjwxirarsH93cxKj9Lklnkm38l5zTtYPTqHg5UMF3Vu5TtrVnLlqetYP9LFa9q2s6/ahBSaXz2zmDkzB8m5NRpjFRJWQJNj3P9lif185scrkYFAhCaRF6bBzTvIAGotJrfTtCUi8XA789OD9FQb2T3WTGuqxP58jpUz9rCmfxZjuxux2ysk4gHzm4Z45pEF+C0RJy3ehytDbKmQaNb9Io5VixPFIXUgjp8RBGmT7A1TYFcTWDWIDysadwT0/2wxthURRBbVSoxZbSP0DDYyu22EfUONRKFloh1LEVQdkrkq/s4sl712LQNehnUHuljW2cfGvk7YnEIGEBuFxLBi949OJvRsYskAy1KURxI0tJbwQ4uGVJXRUpJqMUbjEy7VVnPsItfsJzZM/bz/fSjWOi4MBJGc0DAAvLf9QR4Sy7DzEulFE2HFhZuu4P4ld7AzKPFAbDEEgivmbuCuvUvJHYiwq4p01cSk1EOHL6y/lJtX3MK7TnmaFXd9mMvPWM9VHetYnZjH21pW88GnruGKBRt4eOxEkkMhlm/hVBWRK3ELEdoCu2LmcOfaUykvN2Kst7Wt4Z93XszBDe38Ti7khitv4tPbruR7Z9/E9T2Xc0vv2Xz9rO/y53e9l7uv+DJv+PX7+cKZt/KJJ67mQ6c+wM8HltK4xSQ2Lc/kD7ScVFraZYXQECtKZKBx8yFuySgB7WqE9CN0JNi1diaFk2OkXZ8VTXv52ppX46Z8/mzxE9z88Kv52IV3sbHczRs7N/DA0AnMSw+xZnAWP77gq/SGjQyHabZUO/nJk2ewaF4fQ5UkP8yfQdtmjZYap2ryGmFC4pQU2oLEkKx7OgGb+9tZPzKbk5bs44SmAZ7q68LfkeXRtaeSPWeAN7zqSdKWx223ncv+s0KcouDdVz5IRbl89+FzmXXiQWak8uR2KGKFiCApSfb7eE2OEWdVlVGkRhq3GGEXTejkr2uk0BEiIkGio8Tu/a24e2Ps3ZsEBYlRgeVBuVvTuBtqF9aIDQse+MkKul63j4vnbaG/luXieVtY87PTsTyN5Wmccmio64TC04LG5iJhb5Z8LYfdXKN3sAVZkSRGJI1bPeIjjgkxXHHU2Uqt+R8rlHpFMCc9ws6gxHzH8HQyNemw1hok6arCa7CwS5OSufltQwAcjCQtM8dYmd3BaxN7WZ2fR7NVJhn3GPLStMRKbElZVDokKIlb1Hg5m1jeHHVnBBo6C7TEJiWYszOjDM9OYVnGuT2jtYctfievb91A3ArY7nUgm31GVJxsxoh7spkqO2utzEmP0NM9BxnUqUFfEKQFKgaxUY1MSeyaptImJ+bgp410O0hbZOrbqLtrdKXz5JwajU6ZbFOZlnSZnFUl1V1kv99Eg1MhZ1XoSo6RtWu0J0ts8ToJtE0+SlII4ySbKmTcGhm3xj6pKXUnkCHUQkNbBimBWzB0aq3Z0KaxvEV7wyhDlqIzkSdr19ifaaB3lk1tOM6iVJHeao7u5Bi1roDZiQojLZoBP0Pa9rBaPE5v3kdfLUelQ+I1CKK4QFsx/LQgSAksTxCmBFbVHOPEqIWbD6nN9oinTf6pI1dkzA0Y0SAsQyFHSRcRCOzZJYo6zayGAnvb0qi4JmaHVCOXlO1TjVxKXRIZgJvXJGxQrT6xlE8YWGRiPiMdIU7Wo7WhRD4W4tUcqgmXUrdLtUVg+XLSgzgqiONeKHVcsBjJtpl6xn+8h7nXPA3Atq+v4PZL/p2//PSHaVo3iqh4RDt2s/3fzkLHzMW4+43fZCAqc963/xaA7gf9CYbDKgfI3kEAdnxwPmFGmTtNn6TSHWFVJVYNwgTYVQiyZh/Mu80jSNtYVWXYjlIAlkBWQ6yxCnvf1I7XorDLgsgFuyZwRwEJ5Rkay2eitsAuC/ysJnlQUOnU2CVBkFU4BYnfoJChYMYjkdFTeBpZZ0XGaTm7bIxfmLKNiKdkZMgow0zISgASei9owmvWyECgHE1sVBDGjU4jPqTxs0aHYdUm6y5EaLQfyja8vrbBHRUEWY0IQShBx+rAMDa1CKGYyEEgIEwYTyY2XKPvvAwyMNoKocAugww0lgdBWiAUhElz8QUZwev++HF+8dOzieIaN2/CiCimmfGbEKcUEsYtYkNVglzciLNqEVHMQiiNXZoUSg2d3oCfMfoKZQm0bahLo4MwoYnlG8MWK2hKnZLT3r6BTTcso9xpWA5lGe1G88bQsCG+wqoEDJ2aRvpmXwVpQXxYEaQFUczoOizPSOMbt5bxGmPY1cgwSRoe+tUnpsw2zF6W0Z/86dQeefpXJz4yzWK8GHQ6gkAgUyEDUZk2KzXxm5+ziQ9EhvoqT5ryoCkCW6FDSbUDZJNPFEisfS7K1UTKWHAVU4QJm0qLjdDglBV+No5biLABawxqrQqVDdGWjXIVUVoQxiXagigTEQmNVbKIGkKCioVVNgo85WjCNChXE6aNAQjTEeV2Q9/Z9RAjSEoix9R/hEkLq2YEPm7JGMUgZSO0RkQ28YrZxlqbJsgphC/QtpFfR3Fdr5kQIDVBQ0QYjGsDTM4DaeYjQ2NYghyECQ3CiLpKnTYyBBlJZAhBUuCWTJGXlzMCJadoUWvWdQNSN2xJAVoYA5zSSN8Iw6K4IHI1g36aKK6J4uBJTZBViFBQabGxshZRTKAtQZCShAmJ5VsECWMIrKyFO2bjlALKMwRR3Kxf2xotwM/U6VoNlm+2NchAkBFU2zTFIEZ5hiBMmHNDOcawVtosRGQRKypcKai2GgNiVSHIQORKk5uKaYQSSF9gBRDPx6k1WMjAQjlGi3K0mE5STgHJ5ir2M5O6/hsvupk/uvVD/MPfreL75542QWWmGqpcMddkgcY9h63v/ipv2HYZ+kYHwggX0EGALppQQNYkXYsHcayI3l93Q3dIOufxuXNvZ7Y9yjXrrmVpaz8A+etTJLfZEEVGGReEdcouRNc84oPtVJISFVc4OQ/dkyTZb04mb2WVoDcFHR4UHZy85H+96Tb+af3FfP7UO7lp/7n89az7+dBv3s78mQOMVBK0/YtRJopIwTjtN47AeBApxza/eT4xx6kHrhE6CEBIUj2NlDFCpzCuiI2YO121KyS73SZ/QmSMh6txxizClGLuWftZmB2k2S2RDxPcv28Rlb1ZZGsNFUhU2ab9wQFDy4Z16tKyzJykMH8DVGu4hXk4BSh3mzu3XRHEhzVuQTO2UKJcc1fP7lIU5kl2/stimq89SC5WY/PWbnAUOIrWR0fM+m0LqjWIuWac8WMB4AcTFZTZ+fMJ0oZT8rMm3xAfNvUsWppiN+lryu0W6d4QLR36vzIfFoBaVMZ2IrzRBAjNvO8aypQwgjAk0zUXZRuFJwgy+xV+yoSAds14R05ZkVm9j0wibuZtvRQWQ0z3pHwpuH3UuF3/uuO1tDA28f2ilgHu2rv0Wcu+Ydtl3LXo51zOFYddl2706dnXYjyPnMIFRrY38bHwajSwrLWf/911NwB/+yKPsQgy5g4RO2ijRiywjfusLYh2pSGucbYlIGvu+NevvQwdST65+o9obCzx8fVX09hc5KK2Lfxq4ERejt0fpsxFEh8WqLHJ9aV3m78zOy2qnRr3gCCKgztqsZ0utusudDKCUJJuL6EbfZIJH9+ycbMvVO75bMRGjYuf7DfhhNFNgJ8VpHqNdxEmjDeTGDD7b2hNO/0pjZT150I4R68fiFxzYbkFjVM2c3jWfokJLGE8CRUTOEUztuWDvSllQiTXeCCHg1PRxAqaoGySs0JJbM/UfliB8VheDkx7EFOAv0Ux83O/ZecPlpN7OIH6aI1F+QJq3XY6D6E8c6sscnUqs3Wfj5+z0Tc6XM4V3P3bO55FgSa7SyxqGSB+Xxx3zJxIpW6BGMiQrkHn9y2UYzEQm8uHS+8hTLvkv1ri/QseYkV8L/eUlvHg4AnsGmzCH0wSby8jN0HigI1VBcsXhpZ0QUtNsl/gNwjS+zTlLlM0NP9rmkqnTXwooNraSLqqCRMpfjVwLpU2l9N/9Lvn0abbvXY2FLt4qr+batXl62d9lw/87o/xe1KIdg+tQBUdrAaf2W0j+L81J20Uq9eBOKAdkBXwmiDZpwmKAhmCCk2eoO1xQao/IMhYphbDzhBvkFiBS9yp5w2+WWB5036a7DKrR+dwVuMe7jhwEkFk0Z0Zw1c2rfEyu+8el5Ea+jWMG0Nkeeazmzf6jnKbyU84JUHn4yFezsLLCmRgYXsS51tV2hMFw3j8+kzaFw0yMzNGKYhxIJ+mXI4TeRZur4PfEpHaY0KFatt4OAMiEGirLhkXYqIHSKleECVDifQhs0fjVBV+WuKWIg5+2SFfSLFoxkEOlrJU1ggsX+AUDL1b7rKJ3PpmOhoZmKRm76XdNLSUGBtMM3vWEHv3tsJfTP28n6Y5jxJqNIZd4VnU5qGUZ/o5VGZ8YJLOfC4FOkF/7lDICJxyRDwvJuhLEUTYZW9CY++MVvn5Kd/iVb+9Dn8kzvcu+Rq5jipf2PoGEJqV3XvYdOuy59OS9b4iAKpfEBuLSIyaykzpR6T3lCHSpAJzl4yNGiVeqtc7PG36TBs3XHkT72xTpITP2x98L9aIY3qrjLqgjHH6+iXfZVOtmx9snoFyTJgiQ3N3i1yBU89b2NUIp+JMqP20gPhIiFPwEZFjpNZS4ObFxPYIrdm1dibqDMGOve0snXeAmzet5M8WP0GnM8b/efpi3rRoHYG2zP6t12LYNdPDYlKObpKtYcrGH7CQoSbRV1dSejaJIYHlRYRxi8397WzbMJ9qV8gbX/UkxTDOsJdi70gP4uWkAAAgAElEQVQjan0OR0BmGIIUvPvKB/n5Ha/Ba7CwfI1dVXg5C6diCqzGmUMZ6om8gLIFsRETnkQxieUpnJKNXQ45cKCB9E6brbqdv1r+CLd973XE8vXK1YRE+pogZVaqLVNnIkNofs0w+7e3ERuR9Pd2khs8OrdCM62kfFnxXCozyDrUDfvzKNBxVDokbl4DFqVOiVDg5QTxPlMPoGI2VtknSrkcjCTz24YYTJl1vDG1jX9MhujAHMRSt3w+LekA0rjaftYwBeVO40GkeqDWnsAd9fEaXdP8JG4RH6rhNbqHpU3H5iQmPm/xO2lpLzAU5SASiFQIShApwXavg521Vkrdsl4cVa/oFMabcAuGHkwelFTaJFbN5CYsXyMje2IuQhkD4eXMBTyejdfdNWalRhloStOVHKPa7JCzquSjJN3NYzQ6ZXZU2gwtDMaDCIzkO0oIrJpERBArmCSj1ySwyxqI4+ZDgoyNn5ZmLp6mvaHI/o4EidYKvdUcGcejM5GnkImztyuJCCRRzFRUDvgZ8vMcwoTxUqyaJEgJZCgnjTaT7+NIJiRhXOCWFHZV4acttAXx5iqVWorWpiKVKEapS1JtlThFw4IgmfAgtM2EeCyhJHZLFc+NgdSoerXt0eB47yh1XNCc48Vag9etpPTqMvOv9yeozUMpz/SBZ1OZwASdueXv5j6LAj3h5usA6HwsNHeyaogaL9YqBTgDzy/W2vq+VqyKuZuO06Hff8u/sdAOWPmtj9L+xPNpSaEm41FtCZxCgIpZaAGx/rKpR1AKHXNM6Xj9M1Ky77KG59Om+Tpl6mF6PwSCC9/4JH/a/Ftq2qGmHZLS49pV16FczcxfRSjXKB5FpJFBnaKtV3NatXCimjOqV3M6hQCr6KETzmT7NykOmZ+mf2WGIGv6KkSuSUBq27xLnzozAV0Ph/ViLWFk2fX1yXrthVUNiBIOYdpBhIrYoFHERSlzxUk/QsVs+s9OEhsxVKiIDG1qytfrfR0uLhJtzvCG16/mFz89mxmPVvFzDjJQ2LVogp7WEpNIxdzpn1WsVTC1GMq1kX5IlHCwqgF95+aIjWlqLYIgBe1rAtxCMNH7QtaLtcaPsfEgNPl5LloaelU5AsvTPPGDv50yHdm1tEG/b9W5U7pGPrXs7hddrxDiUuBfMS0WbtRa/+Nzfp8FfBtoqC/z8XrV9RFxXHkQp75zA4/dfbJp9lJnLg5lNH5wyasmQgod1IVCdbYi2V2aYDhOuPm6SXbj5pjJwoeROXHq7IQuV9BRNJmRB+YsC9izcQaRL+heNEA1cHjXNz+IUPCVv7iJf/vO65/POowXJ4F59wOT0RYCXar3ddQaYduT9wql6ydxA1FKEaXAyXmEPUncvBH3qEiilMTakuA33zqd33A6ysUYjRA+/oFb+VHvCtz/sNCW6cco1KTxGWdBCEOsoQQiCCfZgJqHDgKkbU/OG8zvyhhZ67Q0lTRYVYHXqHGKgmqnKadO9Nh4LRHpzhKpr1Um90F0SAVDveiLMMSybVzH9JDQ9f6PzvjdNoqwbBt13myciiZMCKodpmoTbTQZ8RGN+9M0sXzI40+voOHaftzveDhxd4J9cGKO2cZDj4VSk0/HlWKiwM+qsyOWbUMYYteyxIqKwfMjWjvypL4XmOMIhlWJFLH6jUTLyeM/eMpM3Lw2fUBCjVs4+ucCv1xKykM6yb8O0wN2jRDiDq31pkMW+xSwSmv91XqX+XuAOS+03uM7AOLZjMYLYZzhGGc5xtmNo8GubR3oRh8/p+jZ18LI9qaJ3z628eqjnPmL41BWhN2mL0WQNoyItTWFsy1Brf3wJ931ay/jorYtL/ucxhGmBPFhc7El+8x7erdNqs6OJHte3nvLRIgGZHdBqscwI4kBYzQOxdCa9pd1bDCsR2KXS+HJlin/n8x+RayoJ/I9KvYSchB1NeWLvaaAqXSS10C2/ncO6H2xlR4XHoQ/I0Xl7LPYf/ZqZvJbem5bQvS7BqwaBJ/0WTBWhie285YtvXxh/aXMbxtix2PzCZoiZE2iG33i98XJ7VBUOiSd2wL0zTEu5yru/vXPeOuuC9nY38l1ix9lXuwgXz/wGjZuXIR2FRedvIlH9sxnTssIuZ/Z5JcrcDSJvQ5hSuMUDQPS8H9cPnPfdyiqOF/tvYChappz23byN82PU9Oaj+y9iq/M/hmvfviv+eQZPycuA/73vW/m5FP2sH7zbL71uhv566ev4UMnPsD1T17Gl876Lz72uw4Yi6FcjeUJvHSENacCu9KIyLjXtVkRfs4iMaTxGg3fj4Q535Lca7+aa39+GzOdYR4pnUiv18CYn+CjM+7l/Zv/mJOa+7h/ywn83Zn3cOfAKZza0MPOSgvPDHUwtrMJ2WYShgs7B3hr51rKKkaHnccSik+ub6E6lERWpWlw01XD2hc3DMecGno4RttPspx/+xryYQJP2ewstTLmJfizmY+zqvcM+otZCv0Zsh1Frp67nseG57LjyQVoRxOfWeR9ix9hvjvAPWMns2l9J9aoTZQNSe9wqLVowoYQWbJwusv4B5M4eZvEgKB5o+LCX2wmHyVotMs8MHQiZzduZ7/XSHdslF6vAU/ZzE4M01NrxBGKjliem357Pn95zsN8b9sKqqMJZs8eZO/eGbjZMloJ2JMksxu6f3SQhBVw354TOLXzALMSI1SUOyHJ73TzrBmbzfbfCKLuGqpmIVzTv4LbjubMP6qmtS1CiLWHfP5GvfHzOF60kzzwGeCXQoi/BlLARS826HFhIIwrOZkL+dMFa7hps+nHICLjOmtgMMxw84pbAPizjdeBrehaPEjPvhbcMSObdfP1Fvf13Mpbd13Iqnn380RXwHeGzmVhrJ93dv6Wf6kmuaBjO3fvXcqclhFmpUcZKc0ksdudSES6eWE6D1VMdv7DW9/G++Y+zFdm/4wGafOT0iwuXPuXzMgW+NGiVfz9wQv40tn/RX+QY1+tmWvOe4yn81187Py7+cgzb+Hzy37GZza/kVfN38lPBs9Abk4TV0buLX2QnoUaypAsglU1eYjUdhenYJqRjO8ry6/vrwj+/6dfz4VztvHmpjUMx9MMhhk+33M5Ny35Ll/sv5iPrriPlPT4+Mx72Bm08dbcWr4oLuakeU8w0xmh1S5w++hpfGnzRZzS3kshiOOFNnpDloSqzyuAoJzAzZt9XPMTRk9Qi6gpByk0r8s9Q1esi9nuEJ986iqWdvbx2aUP8ZtZC3lVZjsf+c3buOHc7/E3q9/NRa9Zx8UNG/nY767mrFl7SFgBid0uThmCUUmy30jDgzHHUJijGVI1Q5MmRhROWXHD0+eTy1TIxj2a42X2e438YvMSTpzZz7bedqKCg1ACp6VKeCDJSafvxipJfrjzdD538h2MRUksodjR1s5PbzvPtA8sgFtUPLhrIfF4wNsXPkklcvnxxtM5ofsgtlSUghiPl+dwcH8jzTuhUjJVpso1od9RnvZHQ3MOvQxS67cDt2itvySEWAl8VwixTGt9RCHKcRFiGDps0pWOtKzz0KYTlKj3Z1y153ROcKo0SA8RCQgljmXk10YwE+GWNHY1rKviIjb2d/KEF3BmzOGeZ5bxYHExzVYJpQVzY4OMDWRI2AF7Sk24ZY2bN0bGLdRfZY1TViaZdbCBpysz+ffhc9kVwl2DJ1M6mGbbrk5GlGJHsZWLEyNsr7Zz74HFnJzsYfNTszk7sYvRgQx7/VZGBzJ0x8fYU2iqj3XoeOazU9C4RY1bUua3uhvrlDRuyXxv1UKsakhtMMH+SgM3D5xLTTv8++bXMFDJ0B+l+c2euVya2sxwlEYKxdOVmTxQOYHfHezmdanNBNpiQ20mnnIoDaQ4UM7RM9bAjt7W588tXxclFSf3kV1R/LLvRFZtOZUHi4uJyYBv7j8PvxBj/dr5/Hz0JC7PrafJKiGHHG7sOw+hYHl6Hxur3QSDCcb8JOUwNrHdsbxRKR465sQ8iuZY2JUINRKjWEpwYKgBgN8cmAt5h807ZxDl653IByz8ikNsVCKFQvoC/5kc3+1bSV/QwKNji4jLoD5OfaySIii5KCW5be/J7Ks2oYoO23rbKXhxthxsY2Aoi1WwzPEYn2OBOls2dYwrKafymgKm0kn+WmAVgNb6MSAOvGBMdXx4EIKJbkcA31x9PtmxuujHkqZzE3DLsm+z4q4P0zJzjESfqa3o/XU3MqcodQvieUGpUxIfkhOZ7OsWP8p3hs7lmmeWsevim3ikBtfvuZyR37Vx/darmL2kn/WbZrN0cQ/DTYLCCRHaUaR2OdRaFdkdgsixiA9Irjl5LV2xUQA+tfcq/n7WHaxKn8ll2af5RM+VrGjay9J73s/fn3877136KFd8+2/5/p/+B2/+6Qc5acUebtx+Dict3M+PHl3J2adv47GlTciijV0RSE/gtUWInI+7MwFaEBuFwoKIZK9F5Fr4DZMlxYl+gbYk5526hYQVsCzVy20Dp/LlU1bxX8Nn8s97L2XVWd/kol99iCuXr+PewaW8uX0tGyozmd0wytXf+wjR3BqpVA2lBacu3oOvbLpa85w07wBf81+NKJu7m/QFUS7EHjZzrc0MsMZsEsMWZ7fu4Zx5O3i8NJ87+k5hedN+5ALNO2Y8xqqDZ/Cu+/6CbEeRBaf1MDc1zDp3IV/82ZU0Lx9gyTLTAnrrSBuFEyKIBDoW4WdswqQmyEXIQBBlQ+xRU6iWGLDJ7hOcsXwHeS9Bwg7oK2c5r2sXTydmcEHHNn7VdwLBbAvXinCsiFJrjFEvSdAY8U8X/phbB0/nW+tXsnRWHw9tX4haEoASxPtsol6L9hkjCKGJ2yF9lSwNXQXmNw0xVE1z3uxd9FWz7M00MlrJ4bWFpkAvrhCVoxc9vYxPzZpKJ/l9wIXALUKIxRgDMfhCKz0uDISWEB2S4Dlv2VYeH1xKYlCgXGm6GmM448vPWM/K7A7+9+43I5t86A5xATGQIXKNzkG5ciJjPy92kIWxflKneDxSg/PjMNj9KJ9adCWndvQBEFsUck7TLv5LzkXbGlmxTEVgVdTb0muUYzE/PsDp8b1sC9p4Q9vT1LRNk12mph3e3fFrWq0iO5e18obUbgKtaThjkIfLJ7JsxW66k2MsTA/gKQdvqc35jdtYHZ+D9ixE0agXpVcvonJM9SfadMoy4iVjMK1avRO1a6EtwfzkEIsTB3BFxGUtHrv8NpZn9rEgOcATtbmcsqCHaxpXcyDTyHxnkA47z4h/Fu0r+lmYGyRhBQRakrACGu0K7U6ejFXDToREVQurIk31p61MtaoAbDMhLaErNkZ/mGNFehc52zAUpzX28OvCImYkChycM8Q5bbsZC5LMiQ8RZSJyXWOsaN2H0pIzMztZn57FrfvPwClJAseoMIMsaFsjqhIrGaKKFm7eVOECLEgNEqUkxTBOc6zMzPgI5ZxLKYyxpPEgB2sZJJpZqRG25ts5p2UX3znYxLZaJy1umRO6DzIvPUTYLdl6oB2tBNoyz/tY1DiAJTReZDMnOcxq5tCdHGNuanhiG6XQbJU5cBV4pj+GTh4di2H6Qbw8OgitdSiE+ABwL5Od5J8RQvwDsFZrfQfwUeCbQogPY241f65fROdwXBgIGYJbmAzgsraHUzIt3+xygKwGRMDHd1/NVR3reG1iL5+pSqJAks55jGxvIl0DtxDh5YQp067TfF8/8Bre2flbLss+zfV7Lmew+1HelC7wWSfk4pZNfOHxy8g0VnhELMApa5xRC+WYjscqJnDK2hTolD2+t/8sdreap6qdmdrJf42eybrhbh6wTuB/zfk59xZP4uKmjewI4txVWM7ipoN8/anz+PiKX/DFda/jzSc+xZ3bTqKjqcAvBpfBYAynNNlRKkwJwjGXxJgxDnZN4w5bRtrtGXd23IOwywHaEtyxbxkHO7KkLI+lyQP8qHcFs1KjXN2ylm/3v4pLWzeypjqPk+I93FdegiMitudbubBjKxXlMhYk2FNsZu9wI52NBTKux/58DjUQx64Y0ZQMBNGogwwEdgX8UQenKLGrIY+PzWW4luKCtm10OmM8PLaInlIj+wcbeduSJzm3fRfd7ih37liGN9MCqVne2kuoLe7ftYjWE4tsLnTgjFqmpXzZyL/dvEAoCxEKwv4Ybt4Yf6E0Vk3zQN8iXCsiZocsbejjNyPz6Stmce2Qqu+QzyfRkUTNFWw/0Mbihn6Ub3HLxrNZ1DlAe6LIQC1De6LItv5ZSCVwCgLbU6w/2MXC5kH25puwZcRQKcXacBZzsiNsqM2gErgcHMvglARqyAEFKi5NlexR4uUs1jpcJ3mt9acP+XsT8KqjWedxYSDIhQyeHKfDNKVmXmKQX2ZMa/qRdzROPAthz3ATqxPzWJ2fh1UDa5/L5869nY+FV9P5fQsRRMT7MM+QKBtBzsaNi/iXahKlBSO/a+NTi67ks07I02f+kG/kZ2DFIhoSNSqBS/P6PA3bHSPecSyssmeasfoholih77ez+H53KyjBj1Onow7GSfQb9d77lv8JwWACsgG6YuOMWfzkmi/z8JZFuCIkl6myKNFPUHQppx0GC23M/0mtXjGp6o1fxQRvL70QtKZ5vWNk1BUfHRt/LkaIqPloKQge6uSXnU1oC36SUCT32vQkunmgZQmZHTZrZy9EO+aReVZJEiUV1577CEnpc1ZqJ8NRmgd3XU7Um2RvzUEHElGxWLCqapq2+hEohYrZyKrRQaiYeYCPna+y4Vcn4BThlo4uwFzYbh4ai5qfbj3PeIcJTXYnPNG1lI7NmrPO28WeWgv+cJxbHjsXXMXCOytYlQAVt7FGK6h0bELQpFy7vg/qzwMByj9tp5IznldvYiZCQ3xYU5OAhJaSkZ33NM2jczDivs1n0rlbUZjjUmqOsTTXx0/WnAFasPC2GiKIEIFCegH96WZ26wYiV/BkuoVkv6aUEaxLdiB948XlKpqWNcOE2bhpt28bLcrOozjtTQ7iuEgDHhHHhYGIQmsySw8si/eAgA0DnXQHpQkBjm1HvK1lNc1WmYcTJ6FczWx71PDJjoVd9lBJFxmERgQFaFdxQcd25sYGuX7rVZza0cfFLZv4Rn4G78n18kWpmJHOk7AC+sQsorhtmqXWIqJM3JyUAGFIFNc0tJRw7IhTWnp5kIUEpQRIuGT+Zu6TJ3LBnO3sLLSwfX8bI1ES6SguSe7iBvFqTnT7wFEsbh6gr5IlTLUhQm2iUGFarCtHYpdDlDQPrYmSDlYlQFvWIXkaG1GsIKRpDhM1BzjxkFktY/SUO4mSiqWLe9hanMPCZfsZqSaZnRvhmf5OWtMVHh+Zy3XdD1JQccoqxuzWUXYOJ0hnqyglKYsEYdI24ZojJ5+sJYwBC5M2Vv25F7W2kMi1cOaUSMR8Rg9mUX22MV4nVIjHA7IxH6+vFX+WR3ksxtZKB1JosDUzZw9R8lyieNo8lsCRiCCGipnjoG2jfpW+QlsSyxKIqk+13TwGQFsQtJmciBZyoi5GKE0UCsrdGrsmqcwJsGsOYVIjhaan2khLV550zCNMtCBiFnYlQAcRXqMgyGm0qFOtkUOQAr8pwi5KLE+gCoIo5RIlbbQrUbbZT0d97h/nUuvjwkBYdmSafdRxw4HXgobiWBLt1CZa0//J/LV88KlrSMY97CpESnDNumtZ1trPQGwu2rXNnc6xJxSSF528ibv3LmVsIMPsJabvwxcevwwrFvFFqdh2/ne4esfrmJkYpTdmTXRstplUzem6EjJ94ihSKkbyKX7Vv5iGlhKl+ZDNVLhr48l0doxy3wOnYs8rkcx4vOuBazlpUQ/n/OpDvOP0x7huw5/wjtMe5659S/nJyTfzzsRHTKGTLRChJIrLeuGVhQwFQoj68xg0IjJ3cQBhK6RjLsLqXJ9ExqM6FmfvSAc0B0hLsfmp2aimkH0Pz8JfWGV4ZxOi2aN/pInhbJq/Wffn0OIhpeZDy+/n4ViFtliJQEveesoTfPb2a02hkwJZNxCiTkdHCXPh2q6NVZUETRFhX5KwksayIExq/GaFszuBHElSyGnCLoUYdXDKmjvvPYtwhk9r1xizMqMM2mm8RBZtCyNZrtlEcZsoLpGhGVvapsJShuZJY36DRtlGP5LY7RKmNWFSE2bMU8IqrmlQIyKotAvsvG26RJ1YYu/eVvbnO5i9vJddu9qZlTCSeaHMusOkyQGZ8nXHtJMLIT5gwk8tTQm7StiECQsZyolnkxwNNIJQTVdzHjXOb97OhsTc532/vtDNFQs2MOSleShrVI5L6/0cPlx6D8BES7JxjIugZjeMsn7TbGKLQjKNFRoSNWak81y943XcuuA+NvsVPlJbjDsqDhtiAOT3NNA4bwQVSLLNZQqFBPa+OEUrQePSYfqHcuQWj1AsJagNJjhp6T427u7i9IV7uKdnKbMbRrmnZyk/X/4t3rfnKuJD/rNCDLvy/BAjVn/2g6z4Eyfg+HwA4j0uVQmiZkEmwOqPESUVNPnEd8fxF1Zx4yF+M+hQgq0JPZvZS/uQQlMJHB4cPoF1+2Yyu/3/svfeYZJVdf7/69xUuaqrOndPT86JgWGGGRjAASQogiAqCK4JDOwaN6i7rqvurq6uuqyiYEBXQLIESRIlM4SByXm6Z6ZzrK588/n+caob8Lfuwj7us7i/Pc/TT1V3V91769S9537CO4wzWYvy4nAXjaPO700xNEdJ8gsvQK8KzJKBkwsIUiHmhIZZrpPiGiWleT4YktQek1pL/fjnVYgZAaOHsxTKMZoyZRJ59zUphpaMoNd+f4oRG1JkObOiVJ/MksAsQZhXNxqzrCQA7ZwgNirJZ5QEnfFSCme2T9js0t3bjIgERCbC16QYkUkx7fHpxyWpPvDSSh7PLIppOTtzrIpwX5tivNHxZtekfFMuEL9vnNmo1KenGJBh5BV8h5+0MPM1goSFUXtlkZgCQR0q51i2pJfjc908IeZT9SxiukdXLM9ut8oSK04YNXCz1rRydBBPqCIpKnLVm21mZfIkLIXT78wU2O12YCVdGmI2UdNnvJhgSecQpeYIRSfKhkX7mXASzMpMkLVqGFrAQ9WZLEsP8tumuYqS7EmEL6cjCLMcoMUMhBviNliY1SmfznoNImpg2OozOs0BsbSNyNRpzXM9QtvAivr4C0PCmkGuuUBBj5GK2VQdi3jEpWhHaE2WiRkeUd2nOVekNVaiMVohY9rsbV5WjyDM6QjCqBqIUOIlDaU7WXVx23xEJEA3QgJPw41pBBMGQbru7FXRCSM+dpMk6HBwx6IEvk5zpozfqDOzKY+GxMlaaEmT0BRYmnhVBGGqCMIN0RMmRtlEq7pUOxQxy08oG0NpKOXtqQgiiKpCr5tR5DE/FeBkdapLbFKZGnbNIhF3qFQjOLmI0rysBBhlgdMg690kCKIhdrM+HbGQUd0toybwmuK4KRPNt/5rEcQfsIvx3zXeVGzOoU8fT+NOB6Pqoxcdwh17OHlbjetuP5VEr0TzIT7m4yV04sMOfswgvlO1KkeuinP/UT9nONA4587PMnv5AN372sjsNhSgpSKp5VTb0qxIGrcWpq3sNdsnjBo8cPu1LH3mEuxyhJtOvppqGOFDD10KIbTNGaf6YCuEYNSUaKkfF9MiqWZZ4iUFyYGAarMOAlo2l3EzFmbRw22wFNPS1LAKLm7G4siFAe9e+RIAF2c38bXes9m8Zw4Pn/4vNOk6JjpHPfFRgtEoADIaKD63hG+ccivbql3c+4sNimHpK7FYpGoZW0XFtoyNK2VsvSYJIko3MT4aEh11FMMyVGpMfkLd9afo0n2nSU48eg+bB7p425xdPDsyh68uuIs2vczH9lzMJ+Y8zrPF+Tx17Wol1S/VXRWp1J50R5GYrFKIF9dwsgKjKkkMBxiVAC+t48VUCiFCkJeNMrSrBb2jyo/XXM9Op5MjTiNb850ceKkLpGLZBjHJn59/Fz/+7rmK4u2Bbqu5190p4V8UBX5KI7L+e2xsygFLotvKkNeshAy830UcjBPOrfGV1Xfzz1e+F6MmMWp1ujevtOGn6N66Kzn78if45Y61BAVTbX/AYO/XPve62ZxNS5rk23/xu3SJf39ce9zP/k+01mmUeCkD6mE3wI0HVyMCZWITREF3lTS9WVECs/F96iP86fzHOOGZTzCvZQy9Kji0owORdSmsCon1WHiFOgjKUK3Mhv2mukvFNKy8wM1aLH3mEnYdfz3fz8/i2/1nYgcmespDjkYY7m7CXFfGnYxgThiKO5ELMJptND2k2p1EzqzC83HKq2sIDXK7TUpdJskBQWG2SWwipJbTyB6QFOaY3HTSD6e5HZ8avZANLQf57hl38rnD72T/eDPlUpRvHHc7f7f1HLwjCYysjecYhBWTv37gPYicS2RDEdc1CIoWwlEXOc2KN+HlAtweg8oCF1HTkfEAUdMJd+lonoWbruNGdCjO1TDLdXXqAP7h1JvpcZrx23ReHJ/JZ+c+zN/sPY8g1Lh62fVcM3YSh8o5CqtcCOqCuLV6i7KrjHc4geYLIhM6Tk6izS3hDSTw4wbxYQ07KyjNVi3U6JjgfZ3bedRcxOrcET700KV0zB5jXfMhbN/k/W99gmfG5tIz0kjYF+ebD5yDeIuNbgR4tgFFE5F10TSJ7+gYkQBRNxgJQw1NC/Edg9r+CE5TSPqgjlHRcDMCq6Bx0dJnGJjbgCZCvvzCOejHV/AdA33Iwm9QosdaVKVVhhUoU54QbtqzmrMXbyeuuRyp5SgvjbD3a6//fP9j0KR8U/VYzKLAqIXotUDl4EB5LIFZUrb2hGDWQqWqVFPGMgQBBAFroodxJ6KMVpKq1TapISYsRE1H89TdVZohWk1TsmFuoLQPJNOu1HY5wvfzs/hk9jAtkTJuoBN6msqzJzXckoVWVf36KXl73zHwHAPDFgQlU11wtkHg6Oi2X3fNltOW8bor0WsBuiu5c3I1e+ZSKZcAACAASURBVJwONjbuJR2xOS+zmW4vjSYkrmcQ1gwWW8Poeh0mbJuEvoYI1OeTExa1QlQtDq5SW5a6JKwZKhKI+Sq6KBtotoawdfSyEnWZSm00T6J7SsFZt2X9ER6YWEZGr/HB1qc4KtePKXwaojV0LeTqkY2M2El6JxsQNR1CgbC1aUCXPRklNBXgK9RBeOAUomi2IDRU0VPzwawo3wvDVl4ZH5rxNKsThwBIWQ6akBzXfIhnx+cwVEqRqXuL6DU1124hgqyplmtYMfDLJoQCv2DhFSJ4hQhB1cArWUhbfW+aJ+oGykwf76axOWwd62DUTmJFfLxCBOlqGFWBXtHA1QjLJmHZxC1bBFUDWbAwjIC+agP3H1nK7Pg4+8dePxN0avwB2Zz/LeNNFUH4cRXKad4r6MmPr3uMa0ZPIzaq7PACS5nahJYKD6cQk/eVl3P9GVcD8P6eTzBj4Qi9R5qIHVaEH92BRLdZTwdUW1SzlaR9aOoYtYCbTv4R3+4/k73VNq7sfI5fldN8Yeh8vFxAx+wxJja11VOMKRKTrtqPGlglIDQxS5J4two5QyskMRyieZLo5CuPoaURnQx5fHg+l895nJNjh/lAej+3lWdyY/9ablp4Cy+0ZajKCP86dBq2bRImQzRdtd5CXXL+O56mz27ghd8sR+pyWlEKqRNEdKwCBJNRYiMSqWmYVfCjSmbfKof1qv2U6pIkNiqnRWeFhBf6ZvHhY55ij9POB3NPc8vkGr4z9zYA/vbIOVzc9hzPxOdz/+Z1qmAp1ZyIEIIxDcNWoXikIHGTAt01MaqQHAjRbRW+x4aniGeQNmxuGT6WpekhLlj7Au/OPs9EkKQSRrh162olOVE1MHw47bSXeeqmY/CSikhm1MBN6+iOSpGmwGRa8MpzBMSHJMGYWggNO0QKdQ6NVeNM9DWQW1TlqmN+yeU//zhGVc2FUVXAikBleYSm+py6Bx96y7M8PLqYYjHG06NzsY+k3tD5riTn3twRxJtqgYiOKUSlXvOn0ZO9dm4aVenkRB0taWCUPdx0dBox+dvRRWTaarwjsQ+9plHzTLSyjp+QdVSe8rXQa4IwItArDkEqqpSQKg5BPEE1jGAHJgdKTfyqnOZdySJ/YRsgJCU7gpsJMcqC0FPb89ISPxGCDkZNx0uHSENgN4d18xyP4qwIkUmJHxFEbImfFCQqHpU2k5gesLvWwe5aB2sTB9lSmQnAS26KNqPEFjtDX6WBwDYgMnXbE5gZh0Enw6FiI25WRRehIdE1VbDzYxIhNezmAKOqE8RUKzWIqfZdWFdF0l0VTYSGcrEyqxIvrlp+8ajDvYWj2JKfwURzkmEnzSE/y6ifJmvVKIVRdkx24Cfq9oEuEFMCL14qxKgJhK9qPkEM3AZV4LAbBGYZZUqTEvihAjjtLLWzva+TQkuMYxuPcOfkauK6y75KC1bcxa2ZSCPEawxxAoNaq7IGRAr8hFK98tIKF6E5YhoPIfV65yRQfBc3A8lepaEpDaUQlbA8JpMeJTfCg8XleGmJ2yCJDWnKFyMip/02wjr0XXMFW0ozKDpRkimboh0hTL5BwRj55m9zvqmKlIVL1jGyTjL/Bnu6SLn/yuP47MbfcPOXz8RNar+3SHnwO1mciRgi7nPTiT/iQz/5NKA0FV5vkXLfB6PoKU+lFVaAbxv0nPlTNjsul/z8M/Uo4Q9XpDx8PpgpB98xkIGGZgWENQNhBVA2lZ9FzuWJjd/jJaeFE6NjmELjGTvFJ2++lNCE+ID4bylS9p8skGkPHOWihRWCqyFClcagS/AFmV3GH6RIOXAK6BUNPxkQHTZwciEyFqBVdTRbcMlZj7Oz1M6s+AT3/Ho9iX75BytS9r5VxyxqarEXkDykva4iZbVdKMxERT1aBcGef3z9Rcrs4hZ5ys8ueF3XyO0nXPV/RUqzorgHmuMj6pJfmiOwpaHSCcG01qJW89XB+yqCcEfjikDkaSwwvGnBUquo9BzMSkhg6iAUt0K4PgIUCMr1VTEmBDkawagK5cglJJsdl9URa9q7EVl3wvLktEiq1JSPgggVVTkSqata2z6GoanHmq4WCF+iOep3czyCFwj0skYYkVAwsMoCt1HpMooAxKjFD8eP50vNLzIchNgSjo+WmPKgt4rylQXCr1+gjkojAk9gVgLMksrzA1fl/2YlQLd9xZINJLouAGNawFZIiEyY+I6lIi5LIjUdaajti0Adr+aqhWjKcFjz6i5bFnVxXEXPFqFi5Rq2xKiqfUuj/hl99X5r3MAsCvyKocRyyoLQMTDKiqfy4OBiBve2cPnZP+YeuR6rpEBQmq94KiKs+1W8JsV47QIxpeytuSG6U1f9rgZYBVNpXbgaQVzRyo2axHCUHwZA4KrthAbT6uFOVkUlRg2MmsCovPFz/v9SjDcwKh+aJPJII1qhOs2/uPyMB7n67jNY++XdjH1qBsILMCcU30KfBGmr10VbK6yfcQiA9T//c6649Bo+v+N8Gr6lcA16zSM6ok0DoESpCr6PqOsyCqBtjsNwdxNCCjpmj1GyI1zy88+gebDzkz/k9Hd/8PdyJ0BR1vWyQ3TEUCCjYhWrUAEp0SqvMqMJQ6ySjea0ghkSZCRGwiMcVgQpFtr4nk4YCszDEe69dgP3+RsIYtRl7+HWz32XD23/E7J3xZCmhvAlhBLNV1GKVlMLp+b6WJMxNNtT1HlNoJccRM1Bq5jq+HUNE17R2ATMZU24DRIrL/DjKs93Uip1iozo+JkQvc2m4c4p4V6B5gXT+pTCV1BsYXvIqEksbqH5Idqkuor0ohKtFUGANHVEmCM2JrGlwE2rC1EKFc1E8hLn1lY6CiFf3PRRPvvlO7njwpMJkhGEp5zOg4SlCttCTIsIiyCcxiZIXaCV1bkiTQPh+ZgRA+H4mMUo0TFJ7KJROpIFyvd0KJCcEMoWwQ8Jo/VLpY6uFX5IuTON4TBtymNV3iiS8s2/QLwpUox4S5dct/xy9McUJmDf1WvJ7DKI5CXxEQ8r78Dz21n0osndLx5NQ3sRd1MOuzkkOqrhpVRVPLtHUp6hkdvlk9ijaO5feegWPrv3vQwON3DhyheZFx3h+r7jGHymkyAqSS7OUzjUgN5sE38hjr2ujFuyiPZZuJmQ5BElm5/dW+PBW/+NK/KzuWvgKAq1KGvajnBR43OkNJu/6TmP78y9jbMf+hRf2nA3Cc3hKzddRPzocUq7c5yycQsPbl/Gxauf48bfnsBpJ2ylu9RE92ATYiiC7gjcJp+u2WP07W3BLGhYRYE4IY/3UpbYqKTSoazttABaNjuEhuBnP76CQmjy07GTGLJTuKHBe9te4Nt73sqKlgGe3LmQz61/iN+OL2RFZoABu4HHDi5AOxjDbVLRWLSpxjdW3cGz5fmcmtpJKYxx4/BaXuqZiawYCFcjM3uS0oEGCAWphXkmh1O0PGWw/tMvUAsUgKu71ITjG/x88XV8ZO8ljFfilIeSNHQUuXLFDXyz923sfm4Owge/w+WHG65nl93Jpsk5bO3vxBuNoWVdrN0x7PYAPevgFy3WLD/IC/vmYIyZREcEyYGQL371WqLC45HSMl6a6OKctm10mHk2ledxQmo/rtRp1MsEUqMqIwx5Gb759Nv40cZ/4+NPvx8mLeJdJaq9KVau6kETIVtfmkd6n8bnP30jA16WGw8dy/KmQQwRsjp1iAk/SatZoBRGiQqPb/32bNrnjTJeTJCKO7QmS9x/8vdfdyrQsLhFnviT976ua+Sek678/3GKIRTvYWp0zh5jor8Ns6T+LnUNARyb7KGyKkJTpMyvDqwjTPtU4yoEjPUbKvzzVJ44pW5cCqNcPudxtrV20RnJszp6mJ7mZn45o5mGpjKaFpKdO8GsTJ6Dzy3AnYygVZUugFFWLbEpM5gr8rP5TPYQUeHhSYPj4gfY47ST0Fwum/Ekk2GEs1Ztp8scx0MnclSe+bkxRo52iOkeaxb10F1pon3JCM1WmYcHFxOWTUxPqC5EVad/pAGjqnwsNA+KQyningprjaqot2zVHVFqgivHTuL87Itc1PgsXUaVa/LH0WWO8645W2g3J9GXSy5J7yajV1gd7WVnrI1DrTlqOZO2RBFDC8lZVe4aP5oF8RGeriwEYMuRLmTFQK9oaJ5gcjyJVad/T44n0SqqNvGOhpc56LayLtZNtcnk1vwafjyxgZZ4iXnpMUZzSVY3HOEHg6eyNnuIndZsMovzLG0a5vqR9ZyW28WqdB8v7Jyr9CA01e0wShqeZmGUdDb3zEQrGBgVRTcXITxeXExM91id6GFjajeVMMJ1g+s5qXE/NwwfR96J11GiHnknzrs7NgNw6/ha1s4/xLidYFF6hLHWBC/0zEL6GmZJ1WgeyC+nJVJiVmaCS5qf4anyIkphFF2ETAQJMnqNG/vWYI1rDMRyiJrOmBVlTKR5I+OPAQfx5lggQuVhMDUCKdBrKtfX3RDNC5DAoJedfo1REcplOxoSGTamNRN0W/lWiEBt76qBjVwx6062VZUa1z6vpb5PgWkETBQShJ5GwvIwahJzQrEYjRqEnqjnohLhh9w1cBRR4fHxhn4OemW2u21ceXAjKxoHubz1Ua4e2YipBexyOolrLroWkrWqFJwYD3Qv4bz5W7njwFEAPGvMQQxFMD2BUVEXvmEKguEIZqGO97cl1qiOUW/TWiUUbsNT/hciEDzat5AJL8FXO+7n9tJyLss+x5/1vIsvdN3H45XFBFLwi+JSuswJtjsdrIn2clukih8mmRWfYFF8iF8NHENvvoEjDVmCUCOi+zAQxawbxGieQI6ZaoHyIag/192QIb+BZZE+bKnz68LRfL7lSU554aN8fcUdtBkFvnb4HJrMEr88soYrNtzDdZWNCCE5LtPDlTtOZsKJE4Qa5oRSq0LqGDWJNalIa3pN4MmoWhxs6ua5kgcOLyEecdmXacEOTE5s3M+ugTaObuhlS18nXk1FNfG0TXU0wZ3aKvSiTn81w5dn3c0DpRXMjw5zx8jRaANRhK+o6rojea5vFhHT58oVN/BwaTk37l09rSQ1OzFBd7mRw/1NpPKC0DLRHKHcul5LA/rPhwT/TU73flMcnZBMX9AAncmCMqjxpMoh63nk5sJM3pbbxtpEN4GlcAZmxiE0FTFH86XCJwSy7okQMlZL0qAZXJzdxAOjy5gMEqxNHMRIeBzVNEBQM0hl6ipBHuiOKjxprsr1p0BWIggp1KJ40ph28NrvtFKuRdgz2cISU+WTH2x6ElME7Kp2sK79ME/3zeWsth24tkFnJI9rG8xrHiMIFW1Yd+qVeJf6flVRbmrfev1YpkBN6qde3AsklZqFpfns9zLMtsa4q7wEQws4OhKytTiDD7Q8TZtRYE10gAANDRitJTm/YwtL4wO0GZM0x8o4NSU+64UaQ6WUOoZXzcWUeO30c1cV6nqcZh4uLceWJgtjQ+z3YgSBxrVDx9OguVzU/jxvTezBsw32ezFCE05o7yFnlPFsg6TpkI1WX5mH+qM2NR/e7+zbU9+z6xhIKSg4MVqjJXrtHEGgsb3YQRhqYOuIqoEQIByN9lgRqcO+wRb2ua0sifUz4SdZmBxRn8Wpz7snCUNBKuqw320jpdsEvs6wnSJuuAzU0hSdKNIX08eoyFv19uobGFM1iD+QJuV/y3hzRBD1FGNqGrb1dxB1XwmjpzQp39f6HP988HRmpfIKuZgUyN44GOCmVDfBS07JxKn3bGg5yG3lmdwzupK/m/lrbGlwa34t4XCU37KAhqYyxWKMzkyBUlzBp9EUCMpLK3VlzVfFvTVtRzgufoDtbhu3l1r5y9xBtnZ0saFhP9cW5zAnPsbXj5zN+9o3sSLbywef/DB/tvoxfrLnBNqbC9w7vIL25gL7hppZNaOfw03NaFVdRQ6OwGkMkUkf3bXwY2Dq6m+ar1IONyWmwU1Tc7O4fYQliUGG/AZSWo02o8CK9AD/NHYUP5h5Lx/qPo/LOh/ntuJKLkpv46HqbFKWww92nkRnrkA2UiVr1ehqzTMzkafkR2hrKnL38CqEraDTmifwMwFS0zFqArcpICzq+BGBHZrMiYwy5GeICo9nqgvoyBZY03CYn4xvYEt+Bs9l5tLRnue56nxCU3L/vmWMzUrS3jqJIUIarBpOLlB4jpjEqOp4CfAyIZqj9h1O6sqgNxQYtmB+2yhpyyame+SsCk5o0JwrMSM+SV9DA5WYhSYk2XiNkU5BRPcJoyHvWbKFF8tz2DbRyWltexh1U7hNAcJXClZGTdCZK5AwXX4zvpxFyWE6myaJGy5NVoWY7mLpAflsDCdnqfd6gjAaotlv/H77vzrFEEIcAkpAAPhSymOFEDngZpRjzyHgPVLK/H+4Ifla2fuwN1FvY9XdouoRxA3DxzG8vZXxWQkiefCjGvEhVWUPLeoCJ/Vt1Yuvn2rcxKkvXkZ5OMktybXkjApbxmcoEEw5RnkeGEei7HY7yGhgNNsKl6Dr+IlQtfc0IJRc1Pgce5x2rjy4kXItwtaOLq6f/RgjQYXzdr6fa5dcyzVPncRbm3dRDSPEd0X5WWo9wY4M575rE1c9dhobj93J6IuttMwr0zZzguHhBkLPglAiYwFzZ41wqNihQuqawOysEI6nCE3lNK3X6nNfn5NL2p8loTk8XVrIoJNhsJrme/Nu4YKXL+VILcfWvTPpbmrl4dHF9DsN7C+3sL27k/j+CIcbExwGwkaPdx+1mf5aA8tSg5SDCLPnjnB4oFHBtl1BQ3uRYrUBaUBDe5FJ0iA02q1J9tltOKHBkUqWwUqabyy8g68cPIeJaozSYIrh9iSXLXiGX/UfrWTr9sZ5triAi9c9y7GJHq7oOQ2j2cYrRNDTLv5IHLcxQMu6+CWTWXNHONzbhFYw8GMCqQs+PuMxdtS6WBrr567xo1mfOUi2s0q7NUmms4YX6iyODXDQaaVlRpGo8LhfX0FGr3HLi2vQJw1+MdaA7I/RsWIYgCGvheiY4JhcL4tjg3x316k0zazw4ZlPMehl6XcayBg11jUfJGct5f7hlTR0FnE8g6jloWuSQ2/g+vljqEH8IVKMjVLKVa+qsH4BeERKuQB4pP77fz7EqyZKk3V8QR0RVz/KNQ2HQJPoumq3SR0VfegoVF39tVLUtycEtpR0pIugS85Kb+Oo2BEiul/3cFRiL1IHK+kqPIEeIvS6x6PONM4BIKXZJDSXFY2DZJNVNjTsZySo0KInaI2XlDqQBvOsEU6MdSM1OGFGN1KTVIMIMuET0z2kBjHdxdSm9qUQgOgSUwvUPuv71vXwlc85PS/1ORGQ1lT7dHZ0DEvz2dB0kNEgRjrqcGLDPtAlcc2hNVbimORhlqSHSGfVZw7iIUGDjxnziGsuEc0nrjssiA1jaQFCl6BJhRStH4fUJIYegq48SROaw8p4L52RPJYesDQ7jCt11jQdpjlZAU2SiLjENYfl2UGkLpG6xEi7xDWXcT+JqQdoegiaRNPC+udXz9GlqonU50jWv19LBMR1h0oYIZCChOYQ1x0a9TJxzSWuu+o1mksoNaphBIyQDcm9NLSUCJIBrbkiQTLA1EIsPZg+5+K6y0SQoCs7SUx3GfYz0/PTYhaphCqtQ1Pzoushhh5iGW/QGAOQUryun/+p8d+RYpwLvKX+/BfAY8Dn38gG1q3fw8tjS4lMvrYFu73UyQ/PvQaAy7svJUgFOOtrBN1J4kNqEiP5177nc4ffyU0Lb2FifsgXe8/lw21P8Vez7+fyVRdzxrzd3LNjJdll4zTEbArlBNXuJJYtsEoKPq2Mc9Q2/6bnPC6b8SSXtz7KkhlwbXEO5+18P63xErfPf4ivjx3DfWdewWE/y93l5Zx5wSYe7l3En19wF9/ZdhqfW/swV+44meUbDrC31Erf3haMqqaKki7orsW+chexIQ2zorgAxf1p4hOK0xAaGrorEa86D7+6/2ze0bmD4xIHWNnUy8PlZdw8cRy3L7uOL/afwc2nXAXARakjvOwanNF0hC0TM7jo4kcAiGsOD+WXc8uBo1nSMsyT4wsoOlGO7G3FKGtEqsoYOG/nSAxrEEJe5IiWNAwnYMJPMuYleVfDiyyN9uNJg28eOgtNSD4/+36qsyIcFxni9M0f5fsrb+I3HM2573iWJbEBvrXjdE6fs4e5qTEOvTCDeEHgpQwS/RLdNvAmdWJlwf5aJ9EJHbOoYNlmNeTvD7yd5liFqOExNz7GPruNe44sY152nEOFHPlCAgl0Nec5PNjIpauehprOp7dfyIfnP0tkoUc1tCh3RPnZYycjfEFiSCNSCHlkcBEdyQLvaNtGg17l23veyqrWfpqsMtvKXfRVG9g32kzyoEG+kkO3BbYJ/5Xr+H+7YIxEWXlJ4Ed1K7BWKeVg/f9DwL9rpCiE+CjwUQAzmVXIuvr/tgx1ogUKLBPqYpqQNSM6yZf3ncuxzb3oLgRC4g0kICpxGwThkMBNqxB0KiK5Ytad/N3wRg6UmlmTO0yzXuKB0gq80RgPaYtpb8szNJYhavqqfjGzil0yITTx0iGaW4cgGxrfnXsbk2GEq0c2KuOd+BjXLrmWAMHXx47hr5v2ctL2i7ly0Y3ENYd/ff5UWlsLXLHzFD689FmuO7SWs+fv4K69K/nsqkeYXBSjbzCHFBaaC25TQNvscUbCZoKihmUKzAUF3HIG3RU4jdRVpyDUFYrz24tupU2v8kh1IdXQYl+lhc+3P8Dn+88kZdh8du97+cGiG/lxYRFtRoGdTozRSoJ/2Px2UskaoRS0pUp8ZNGzlIIoy2N9lMIot1mr2dnToZCNriA2u4QdpEFCdE6JykgC/4BGRq9SCGJssWfS4zTTXWniyvk38WcHLuR7fadxZLKBVa39/P3yX3P35CrCqOS2HUfT3DifTy39Lack9vG9kVOQM2vURqPQ4GKXotTaA0TWxS9aLF9+mO37uvCjBiAwHI0fLrqR/iDDuJ9ka2UmK+O9LFw4xLCX4YKWFxn103SaeQKpUemyWBYZ4Jr08Xx4/rP8W/dxVO0Ic5rG6RlrZOHyPjQh2ffSTMyi4OOzn6LDyHNl/6mc0byTC+duJmtU0AlJaA5BWmO0KcX3Bs6gcW6eQilGMu7QlKzQ80YuHvm/vAYBbJBS9gshWoCHhBCvcZOVUkoxRcz/nVFfTH4MkMx1Sb3oThPvZjRMMuhliOYDzLKHVnUJgFt2H8P1665hj9vOQ+Ex6GUd2hzMfTGSRySRSUXbNouvuDOf/Pgn+c66W/mntqdZdt+fcnB5M6fndkDaY+Ps/Tz06NFklkwwXkzQOBDA83EFmS4pglNkMlDOWmWHsx/6FGet2o6pBXyw6Um+fuRsrnnqJNDgvjOv4KTtF/PEiju4rPdUXhzq4iOrn+a6uzfyzfdcx5/ffQlnnfgydz6+lvXr9vD9HW/BfCFFqs4l0DzwxgzK3a1k86pbYdiS6mMZIgVJNB9glZRepuZLzJKL1AXvv/cTLF7eS9qyeVvjNjYPdPGxwsV8e+GtfGjzB9ly/M/4aWE+pyT2cMvkGlrNIoVinGuPv4ZnqgvIewkOVJr5wYOnk543yfWVtfhFi+RBg3QdfyF8id+fIVNU0YszkqHBhtiYx096NjBRjHPeom0siQ2wZXIGb3vw02hVnXee+Dw/m3cblVBy+s1/ydHH78PMa3ziLb+lu9bMt+97BzesGCYdsUk8H0d3JEE0SmIwJDai4SVj6I7kUPdcslVlRRidDLAKPuff9ymMnA1Csm7WIb6++0zKvWlk0kdUDcy8huYL7FkO0UMR1py5A/1IlB90v42uE/o4e+ZOdhbbec/Cl7j9upPRfMhNqnn+6tPn0NxWwNQDdlY6uX/zSvSUx6zWcQbyGVzHQAxFaN4msHuaSLgQRBKMubl/71T/D4YgCN8UjcTfO/5gSEohxFeAMnAZ8BYp5aAQoh14TEq56D96b6KxSx6/6KOwaRsAY3cvxH28iUxPQGzExSg5hFt2cfK2Gpvyc3hb83b+5Y5zcNs88DT0ioaV12ja4VOYbdC03SF6YASA83/zAp7U2V9rZUWij7MTPRzwolz04CdYuGCAIxNZfE9nSecQvTfPpbi+RmgbxKedtTQixZCGPWXefd3DdJnj7HI6MUVAs1Fk1E8zz1L76jAKfH/4VH7S9TQjQYW3PPcxFjaPYgcGgdRImTYlL0p/PsPpc/bweN98JkdSmKNKgMZu9WmdPcH4jmaMqsCahMqaGpEdMWKjkmqbwv0DtG2qIjXB6Vc9wVxrFE/qBGj0OM3MtMaohhFMEbCpOI/LWh5T8yx8RoMEf99zNlXPJButYWghJTdCc6yMpQUsSIwQInigfwnD/VklQuMKIjPLeN0phA/GwhL2cIK2JwQXffl+PKmzKDrAkNfAmJ+i1SzwaH4xc+LjbC90sLFxH31ulpmRcb696QyyTSUWNo5iaT5nN27l9tHVvNA9CzlpQdojui+K0xQisx6UDZrmTDDam8Uo6sSGBakjAR/+2l1MBAnKQRRTBGSNCmOeoluHCPpqWSK6z8pELy+XZ7Ixs4evbX87717wMjuL7RTcGK2xEsO1FGPlBEJISntypA/AKR/fRLtVYHelnZXJPp4rzGFBYoScUcEUPoNeA0NOmoc2rSTaUcH3dEzLR9Mku975tdeNeEwubJfLv//B13V9PXfmP/2PICn/y8uXECIhhEhNPQdOB3YAvwY+UH/ZB4C7/vONgXxVkTI/nlIu1q8qUALMjYywZ6CVRycWY1QEoqpjjel1B6w66vJ3ipRRzWPQa+Dp4bkcH1OOV/cUV2FO6uzva0HXQ/xJi5IbAQFCQzEVp/Y9hfIUqhDmoRPXXPbXWmkzCiQ0hwXmOHucdibDKC8OdU0XLu2BBCc0HmBfbyumFjBQzmBqAbUx5Udp1AtzvKrwqIplcrroqmlh/Rh+56d+fHHNpRRGiWsOh50mFkYHWxPrhQAAIABJREFUqYYRdlU7WBAZYstoJ6NBiu12FxqSirQwtYCh3hx9hQzjtTiT1RhR3cMODKqhRdaoYNQLhLJ+fPpUMfVVzxGqhjE/MoQdWuyz24hrLq40WJXqY9xNsm+shR2VDqKaR0JzEDWd/GCavB0nogX0OC2M2wlEvTCpCqN1mramCpqmHtQL13UylhDoIsQLDTQkA06D+m6kTqtZIKg7hTUYVQpBnIjm0+vlcF2D9YkDWFrAcCmJLzWGS0mMepFR1r/3UAqGvTQx3aUQxAilIK47TPgJ4pqDhlR+FvW5EPXCuaH9Xg/cf3f8MeAg/ssRhBBiLq+YnRvADVLKfxRCNKIMQmcCh1Ftzon/aFuRmV1y1YmfIX3jJgDO2jnJ1b86C6fLZcm3ioiqjX+4l4M3rOJHx13HfqeN7/z6HAC+cO4dfP3Fs5h3tVKJAhA1DzGkuBh7vjyfC098lpXxXr5y84U0HDvKktwwn217iIkgPi1NX3SiRL6cxo+bSgnK0qfdqzTbRytWOfiBDiJH5dG1kHXth/nNrqXEd0WRGpx5wSZu33Y0H1n9NDfsOxZ7IEH3BT9i7h0f4/lzvsv6J/+Uq4+7jsvuu5ST1+zi+f6ZtP0wqrbvhQhfaRSI+veh14Vqg7iB8EL0iksYU+QqzfERNRd0jd63N1Ne6qJHArpaJujb3EEQD1m68ggHfzuHNWfuYF++hY5kgZ2D7eTSFY5u6ucb7b+lGgaMhgZ/efACul/swphbxqlYUDSYc6evFignUJTwulfIlH8HEsx8jb0fSWPldVhSIhbxmBxMk+w2MEuSyfUOczrGMETI6G1d5Ne65DZZ3PbX/8wz9iy+fO+70TuqJOMO2SuSGFWPMKJjjNcI0hG1TycgtHSlylV10WoqdRw4tQmnEaUE1u5jTOok+gVBRAnFRPJKvavUpZE+FDL4lpDcyzpeUrD8Xbu5sOU5/nbnuTQlK/CNZrQ6YlerefSdkcVLgJ8ICbI+ma0WbgacxhCzbv8XyUtaNxXwslE0O6h/d/DIU1963Xf6xIJ2ufR7H3pd19uLb/vGHxcXQ0rZDRz17/x9HGUQ+gY2xjQ9G+B7m08hOSlwOl7LlvzZun/jg/d8DK3RJTGsxD++ufV0ZKBRbTdIHqpgt8aIH3oF87ryqENsK3Ry82PH88tLruTxymJ+9PKJPL5nIZoZsmJhLzt6OtmwaD+9mSZKXSahYZEYDinOipAY8jAMDatQIX70OPNzY2StKk/0zuPPVj/Gz1Lr2TCjm4d7F9HaWuC6uzeyZEM3Jyx+lrl3fIzu837EnLs/w7nHvsz3+05j3tIBHt+8lFUruulZtGAayq354KQFflwQHw4RMoJZDii3G8QmQqyCgZ/Qp6nLib3jEEqqq2pEIz5LWofYMdDOe898ilt2H8Pu3jbe+86nuP3uE0ivHmNbXyfrZh9isJomkILVN32WxPwCnZkCfZMZssvHMPUAM1Ni9YojPLp3Hbqt5l7zldqXWVbw91qjkpvPOAHZOXlWrh1k53gbo8MZuuaM0kszZ63exkP7FzP06AxqHQHyqIC5XaOMbZ3BGTf8JV1r+ulaPsR4JU7VttDmWiAtpXExahFYAi+uiGl+DMwKIKNEJwOiozbFNTayooR0RFXHnF+iGEuSnTvB5MEclRlK8g4R4DSq2o3dKPj4JfeypdTFZ569kNbmAt0H2sgu0JUzV14SHfeottXlDNttqBlUZkiCVgfKJsGCKk7JxMsYRCfTOHV3rykNDJ56Q2f+m76L8aaokAj5Ku4+8Ddr7sNtkOBpU6VeAC574U+495x/4Rfrr6HaLnEzIV87+m7QJNExDwKJlXcVzFoqsNTW3bM4u2Ubv3rnv3LJ7X/KsxNz+cKa3/DldXfz5InfZ/vBGRwz7zATTgKz6JEc8Mn0eFgFn/QRB7PooVc8kJLS7hwj1RSHSo1cuuhprtm7Hn97hsceWMWfLnqcYjXKN99zHXZgcNXmk3n+nO8y5+7L6HnHT7j/wFK+0HUfB/a1c/ZxLzFQzpDu9UmM+MTGfKJjHsl+n4aDHrExj/igg5V3SfX7RCdczIJNZMIlkneJDtemP2NkT4wgEBycaOKE2T3c8NTxeDWTC5a/zM2PHc9Hz3+AjmSR9y97nkPFHI3RCuNOgi0XXsFNq67hb2bdw5KWYcb3NVJ1LAbzaW5/cTXpwz7JIZ9Un0eqzyV9xCfZ7xIbUc/jwx56zWNiNM2TTy/D1AOOmtfL4HgGa1TnyVuOIZ2qsvG8zZyzfjOpfQaDk2lCE656z495X+fzHNnXSjpm09ZQUvN+SG070V8jMeSSHPBJ9db/NuSRPmITG6iglxyi+6IYJR19wsBqqWIPJ4gNa1Q3NxEZ10gfEOS2axgVjcxeMHM2mgdX3fh2KoHFXx37AFHD58Sj9pDqC0gd8YkPO5gFB6ugEVqSoGQSTTuqDT0YQcYC5GAUc9wgMiZI9tqken3SPS6Zbo9Ur/eGznvJmx8H8aage0dmz5DLT/0cuZ8/C0D+3gWUnm/GPDpP55ckWtXG7z7Euq0e129fSzpVw96cw09KZq/uY6IaI3ptlsSAg5O1iPeVEYNjAPzVMw/zuZ3vJj+SYsWCPmbG8zx4YDGZVA0hJGfN2KVMbTITjH19DoU5JrqrtCP9iCA6EWDUAqyBAl3XDxDTPR7oXoJrG7Q3Fzh3xlaqQYQb9hzLh5c+y48fOpW5R/VjagH7B1t4+6Id3H9gKXtPvJaz953FOa1b+faWt/KtY3/Fl6/6E4yqEijRfHCTArdBEBtRmolmNaQwyyQxHBCZ9HEaDKXAFECiRyli1b5rsyAzyu58K0U7gusanDlvN3e9cAxW1kZ2J1i4/hC7jrTTmCtTKEdpy5boPdxEQ2sJISQtyTLH5o4Q11yimocpAn7887er43JVBGHnBLExJf5SbVG6oA37alS/VKTmmvihRrkYQ9Z0OmaNMziUhYJJdEzDbgqJzShRLcRI7bAozw5Izixy8bwXiWgez0/OYfcvl2BWJH4MkkMBTlrHi4Nhqzu/NanwKJFCgJV3mfxSlXItQi5ZpX8wS7axTKEQpzFXZmIySegLEmmbSimK0CQNmQr2s02sO2cbTx2ei5uPEmuq4h5OEu9XrmGxkZD4sMehP5FEYh7e4QS0O6SSNSo1C69molshmXSFicEMrU/o1BoVNiU0FKhv+7++fkWp+IIOufCKj7yua2Tr2f/wx5Vi/EGHeAWtCHD5vMf5x+3vIiqmCnhqBe2pNvKNtbcD8Nf7LyK0JJ+c+Qhf2Ho+yVo9d7cDpHgFU/HJbRfyj8vv5PC8Zn66/3gWJEe4YPHLLIwNsdga5BPbL2ZWQ56sVWPCC4lNhNOKzxFbsSanmKYPbl/GmkU9nDd/K52RPPcOr+Cqx05DJnw+t/Zhrju0lrNOfJmBWpqBcoarj7uO7/edxi/W/Jyz953NPQvvZ8nT72dVVx8/7T9RpRIh04rXQmqYVYlZC9Ecte/4aIBRC9GcALOiIirdredjGvTubGNiToylzcOQgkOFHPfuXc75a17krr0rWXp8D4YIeNuSnXSXG1nf1sOxyR6iczxWR/qpSIOv9Z7NjduPpas1T9UzqbkmyYFQCe14U8pNArMaIuqyi0oqTlJ1LBzPYGHzKIVEFEML6dnSiUwFLFl5hLFqgqXpPNsfW8CyEw9xZOcc3nfSM5yX2cz7nr+U5kyZiOETmwgx7BDf1jCLASIA3VEXn2EL1fathZglH80LmNzehJ8M6bdi6EmPcjWCcSTKaM3AnDCIFAQyjKK1hMQHNCaPhrgPj+5exFfX38WYn+bFwiwmG2PkN8+sq2wH6E6IPhDFiVnE56oFtLo9i9fqI6yAwNHJH84SHdGJjbpovoHuSgJTvCYKfr0jDN/cKcabY4H4nRrEDw+ejFETlPY30BZOTvM05sTH+eLz55NO1ZSGYFLymacvIttYwo8pfkYQ1acLfQCfWfwoX9n9jukIwglN7t63Aq9kgRnyJ8ds4r7eZRhaQGhq1HLaKxFEUhANJGFd2/Di1c/RXWnijgNHTUcQG4/dSUz3uHLHyZw9fwd3Pr6WuUf1k4tVuey+S5m3dICLHvgEX3zLPSx5+v3sPuE6Fj7+Af5i1UNc2TqnHkGoC/CVCEJgmCFmFarNOokQdEfHSygNx9DUsABCWHbMIQwRsHeshaptIYRkWecgt79wLFbWZs8zc2g7Zogth7pozJU5MNzE/eEyZH+MoMlFaJKFXcP87Zp7OSXejQk8WpvFP3W8tx5BiFdFELwmgohrAtfXEUKye6gVt2yBL+hYNsLgUJY922YSHdN4qamRhqMm2NndSUrCLfdt4Jfta7lo1QtM+nHWprr519wFmBWBHwPD0V8VQYhXIgir7r/hh5gLisT0ENczsMdjaA024Zwa8YiHn9FxAo1YzEXULCqtAtNSFgTrF3bzd0+9E71gYM0qqwiibSqCAM0JkTNr4GnY3SmCBh9tlg2+hnR0hBWi5xzsuEGt2/j/RBBv6LSX/I+mD69nvEkWCHUSTo2NHfu5I9aE5tar+vUL/qnReXzm6Ec5aDdz90EVbc3rGuG0lj08PLIBEYREx+w61Vu95+ubz+KEeQeZ0bWbm55cj7PMoC1XpJI0WdI4wj1HlFfmQ9WZ/KLQSfaA8q0ILY1ExVPako4PYciNvz2B9iUK87Cka4h9Q82MvtiK1GD5hgPctXcl69ft4aWBGdTG4rxlzS4e37yUdxz3Et/e8lZWdfWx8PEPsO/kX3DqrnNo3Km8OXVXSaPFRl/VxahLxjVWg3oXw0Ove0BotjoeoWnsf3Qu3sIagaOTzlUo92TYOjGLXOck5W2NdKwZxAl0WpsLTJbjmGZAtWBxyonbKXhRqr5F2rL56pPn8tOucfIVRdfu2OYiBeiOOrbEoIZRC5ACYqOqqKdXPJxDKTRX4Hc4GDGfcCTK5BNtxEOozPYxVhfICIn/eCPM99FdaD5mmCDUuPmx47FmVNiVaSN7wMUoewRRA2u8SiQVIYjq6HZAqldHhFLNQd17VXuukVqDVBoVTSHiYILouOpimCEkihLNjRG2CBIDktHjAhoKsP2OJYiVNrG5RRzHIDa3SOODcaU74ir/z8iODKFV9/VwdNJbLNw0uA1KFVx3IFGFht0F4tmomhfjv3ah/29HUv5hhlDS6VNjxElNS4xLoVyuAd7ZvpX7R5YxOzmB5gv8ZMBENcbDI4uptlivqkH4Si8S+M5xt3Lb6LE8MTyfdav3cVJ2H78ZXc5osYXBaprbVv6Myw+9k2XpQdyM9ZoaRKXNrNcgdKySzWknbKXZKvOsMYeyG2HVjH5a5pWJ6S57S618dtUjfH/HWzhz3m4qXRGe6ZvNqhXdPD8yi28d+yt+2n8if7HqIU7ddQ6PLP01K5dd/h/UIMzfqUHor6pBREj0+EghaD1hgJW5fg6UmvFCHWN+wHFtR3i6fw6JFRMcGcxx6uK97J1sYVnbIHknzqTl8dThueTSFTQhubjjOeavGWWGNUFU8zg+1sO7nv/L/7wG4QS0LhvBC3TipkehFqXaHtKwuMzweAZNQmkghZmzMY8vkNQkTn8Dk4NZmppLnLR+J5e2PM6dk6t5eH4HZsWs1yD031ODsIgUolh5l9jJo2iegWUE+KUYiYRNqRwjnapSrkap2gbW/2PvvaMsO8pz719V7XBy5zzTEzRJk5TzKCAJJDLIMiYZm2gT7IsDH7av/X2Yi40x2GAbMLZJxkEgsC5IIBAC5TiakWY0Oc/09HQOJ5+d6/ujdveMBMYSy+t61rqutXr1OX1O10613/2G532erEkaTq9xWDo4x+R8P+dceYKR+Q5aTZeXrDrI1vFhZjc4Z+QgFP7GJq4b4s3myHU1afVIkkQgtCCRGsuJqMznyMwXf9KDeODFLf2zIAX4M8dZkaRcoL2f/vUr6NzvE7tykYfyTH7Kyurn8k42+hS9D04AsOrro8/hqwQIixpxTgO5r4BTgeqGwEioTbuc8y2PKG8RZSWZmQCv22H0loivX/N3fLt8EQ9OrsJRMceP92LPWkhfsHTLyZ/gkOwfnsOWCaMHelmydor5Hw1gbZnDUgmlTxeZW+tSOhkxv9oiN5nQ7JN07QmY3eDw7O9+/ic4Lt/T8yD/89jrOT7TiV/J8OnrbuN3t/4i8mQGPdwialoI3wDEwlLCBRcf5lS9jcnpNrSnIBa0D1apHW4n6QnIHMwgLqjQrGRxCz5hYFHcmqV0IsIvmSezVoLZTZCZFXhdhiH6h2/8JH8xdQMjzQ6mGgXeseIx/vbgNQD87rp7+d9TF7BnYoAkEcRpmLGgbHXFpkM88cwaRChwZyVeb8zFFx7mqYMrKOx1KIwleB2S8vkhhILCcYsbfmkrO2aXsLZ9kh9u30T/8lk2d42xb76fj6/+N/7X8VdzZKIHRrOIyHhsiZYcmeuiXs7S01tlsFDl4HQPa3qmkSIx6uWRQ7vTYqzRxvjWAeIVHvmnstgNjd8ucMuaP/3wFyknOb566ir2HRxi07qTNEKHo4f7yXS10Bq6Sg2U0JRcj5lmns5sk5H5Dj6w7gG215azuTAKwAfX//gFJxOzqwb18k/+2gu6R/bf8pH/i5OU6dCWSNGQp3koz+SnlKF4Du+kjFhsyno+X2WcT5MaZZdMKpUnaxbaV9h1kbJTm+SgloaL8Bc3P00tyTDkzvO+FQ+yrzXIqdk2wliAnXB0vPsnOCQnJ9sRKsFqSkbHOymGUJ4qgtQUldHQEIk2ilWpcpWWRiPip3FcHg+7efeSh3mmcxlzYZ5YS2wnwivF5DMhQmhCpXHPq9Kd8dkxspQkFuhGKq8Xs8gfmZSNqlh9JoeqK/xAmu+cEc6JNIJz54QBAM2Zuv5nZ67hTV2P80NnE7TD6wqHmFpRIicDltqz/OWyb/NnmRv5/tObjDanMLoWIhE8cWQFVl0iQrCaYFck248No+atRU5JEWucCQsVCKRvuC3HWm1cVDzB+Po2Lu84xqtKO/lHdSWfG7+BZugQRxLhaNrWzfPMgeXIbETStFA1xTQlpifbIJDsrC0xBN2JMPsmTcm8UBX4JzJpfwkpMxc8VF/Hk7PLWVuaorTRY+vh5eimhTOr8MMcSBiruya8c2OSQDEZd3D9pn3UkgxLMvPsaw6wbWophuHgBa53/mtLmC9knFUGQqVVAwSLPJTP4adsiefwTlpncE8+n68yzoM7aZE4OtUtMPGqqAlUy9CyS4xREpGRxQPDYfmSrgNcmz3BvtagEXGtS+I2/VM5JJPQQUuNXRFo4aA8jT1tpaxU/qKGhlMzyD6nBipIcGr6p3Jc3j23mff13cd2vRyA7Y3lxJHEqiuaNRcdS0RDoboSZmt5GMsghZHeU75AS41IDGektowEnjNjoZqCuHVaC1MtnL9EIxS48ynFnWdu4PtG1/A/eh7i3R1PooB/rmzmxsIeykmOvzx5E9d1H+BItRt7LpUNSNWmjNaFmyprmfOupSAZyyzqcyhfo3xBZva08M1E1M5b+x6nS9W5U5/Ha0s7aGiLD/c+zJZH3mdo5BJz7oXQuGM2cdZCxUarU8ROSuYLIlaGMv95Qld2TSNiYaT3fE3smXX1w1PrmJ4qIYc1bxl6gqcfXov0hdHKCA1hUOKaMltiWViRac+/8KoT7KgN8/CJlbx61W6mRzp4seM/038XQtwM/BWggC9qrf/sp3znDcBH0k3v1Fq/+WfNeVYApRaGDM/QMkhLRmfyUz6fd1JGp7knn89XuchVucjp+FzOR7OdJOV2NL/f0vEEM60C90xvoF1aXJo/gk5FYqx8+NM5JH0W51zYzgKXo/FQWPwtF96n4rU/jeNygd/yjR1b+dXuh3m2MkToWUb+LR3aMVDvc3pm0u2K08d5xvGav2nDmxia7y2wYosoLedGGpXyXKqQxc8bLYdDYRvfqZ8LwHGviwvchC2ZCpaMWe7M0JOtnz4nz9/uGXMtnJtFjs+FbS5wbUZwzO/haxNX8qPaRt40sJUeleBpm0Nh1hy/p6BmLXJaKp/ncEkuXAeZ7svCfqlAPOe6nea1PP1bawGeYt7LssEdey7PZGAIg+XiMYrFa39+5gSTXpE4UuwqD754yjltvJwX8vMfDSGEAj4HvBxYD7xJCLH+ed9ZDfw+cJXWegPwwf9o3rPKgzCMQc/loTyTn/L5vJNhTi6GGM/nq4xSrkq/ECN9hYwEfm9sOA7zAqQgcRVxxqg4xxnJR0++ii29R3h923a+VR9mR2MY6cRQsUgmM0Td0U9ySGZjUBoVGH7CcMbC64vShiOBXxLYNUlQEAhtfmenTUnzp3FcFqXH16oreKY+zGSrxHuGHuT3Z1+PV7aRdkKiNEls8YO967HciLA7MorWgSHBTSxNkjNUeWFnjNW0CDoSYl8QZTVWy3SJJo4kdgQiESQKgjbD4B1lTYixbmCKiaidfqvCt2ob+B899/NnM5fiJxabSmNIErIqNByeCkRoPAYRC6JijGqadmukoQQMemK0pVCe4ZQMc4Kg3XBMOmWNl9hc0n6CbqvGV0ev5GB3Pxuyo5wIuhkcmKfaypC0C7yRIt8/uIG4L0G7htlbtgRxPlmUBRRhmjBMMM9STSo4pAiKxotAQJQ3UO5zOmbwQovefJ2Pj77C6IUkmHNY0iZZbhtVMW0nkAikJ/mb8RvJWQFD3WVWFWc40tfz4tf8f16IcSlwOG2BQAjxdQx5094zvvNu4HMLFJBa66n/aNKzykAsqESfWdpMTuWwG+biJK6RaUtcQGtSvRYADvl9TO7ppbw8i1MxFOZhAdTyJslMkcQC0RaAhKhsOCATW5LYIn0t2L5/BX9507c5Gpa47dSlZvstI4dnNQVd101yaqqdeNJFC9CFiJXLprBlzMH6UvqXz1I/2kff8jkcFSN0O1HO0NAF7UYcN2g3pcygXfCengc5HnZz99xm9pd7KUqPX28/xS2HX8reiX78uSxDw3cRxxLVEqba4xshm+xRm7CoWXPZSaYbeSrVHFFaBu0erDDrd+J2togmiliDTULPIlvwadUyJGPuYucrGKPb6tO4cwK/0+RK3jd0PyNhF8fCHnZUlnB17iD3jq8jSiR/se52vjZzFQ8dPwenv2nAPloYqvlYsGnNSXYdWEocCaRv4fdErFk9xsFj/YRVh8QSJJaguTRCxAIRKVZlJtnTHGKJM8fhw/24KqKgPPbXB3jHssf43vQmTlY78BNQh7MMX3mKOJFUWhmqtSydbQ3asx5zjRxtWQ8hNI6MCRJF1gqZbhQoN7tIlngks1mSEGLXcJhe3n6UjcUxxvx2vr97A0PnTBNrwYTqwu70yLkRGTsi0VB0A/zYCO6eqHbw5uFteG0WGREh1yR87sUu+f+8GGMIOHnG+1Hgsud9Zw2AEOJRjOn8iNb6Bz9r0rPLQPyUcSb9nDv3XFo5t3oaXfV8OjprWZ34aAGOFsgtCPgeyZLYmmzZzGM1IkR6se16zI9e9lf89onXIYXm62tu5+mgyLtHf4Wgy8jh/TSKuOPVQcMxOSGZSnromNfM7u5BS80KfHKTCcpLyE4ZhGR2ymw7O6V/KoXdLYdfyh2r7uXYsjqelnxm6gYCz4ZSggUIK0G7cPOtT3Gs0cWOnStNXN0SOL7JAczXDD1cWCmQndDUMnncpiDMuTi+wKkYNKbyjbcgFRROSpM/aRjGqj8+9Co+tubbTIUlfn/J3dzXOJc7NvwTBWHzexNX8fbuR0i05IH7NxuQm4BMy2x/T2M5uUlpxHvLGrthcSgaIjOjyI8ZyrjEEhSOWcjA5AbmogI75pdgi5hPX38bF7sTTMYOq91J/mj3a2i1HOKygwJe++rHuePeK4gzCcqTOHVBud2loo0nU3XM+jByCmleJhIURgRhOYtbNtqbaHBqmgdm1rLn1ADL+2b5yjVf4Z13vQfVFBTKgmAuTyCglTHfn3dMvkfEgq/e+jm+OHUtOyaHWNY+z86jS4DbXvDaXujFeIGjWwix7Yz3f5+SLr2YYQGrMZSQS4CHhBCbtNbln/UPZ81wawnSCxGxUdyOgXKQNaIx9ZhWILEaCTIvsRoRUU5BaFLyz0ws4Vd6jcFQPiSxxPLMglUtw86EFkYtS4P0IxIpkJEBQsmsRbdSHJrtIQgtnupvo9+qGZXtGEMKUjH08wvxaZRdEPAx3YZxVRpIcNM8nVUzQmgXGRgYsfQ1lp2gWhGWZ3N8ppNnOpexXS/njR1beaY+zN6Jfo4tq7PCLuDrkEdHV0LVhgTChikjIjWujJBCY1ekcbMXFbfMPonYcEbIGJyq+VwkplKhAo3yYyzbGAOtBFZjIelrbqzJ6Ta+03Mh22eWUljq8dj8Sl5e2E0gA8ZabcwmeeaDLHbDHKuIzLZEAk55wTUxcynP/M1qpo15gUnY2jWTSLRbmvtm1nL4eB8VL8P7Nj3Gk94gJ4JudtWHqE/nEaFENSXa1vTZVeyqQHmnj92updSASmM1zfaFTiH82rRiq1CTpLBtk3cRqFBzstpGPOsyojo4PtSNM2/msuqGpySxTH4DDHhKxGYNnAy72DE5RL2RYZ/Xh5q1n7+kf/bQvBgiy5n/oMx5Clh6xvsl6d/OHKPAk1rrEDgmhDiIMRhP/XuTnlUGYiFWPHNEiVyUl7daJsSwvIW+i9NfbrUc8iJgfzBgwpFEojTYNdIbWuPOp/N4JoQRfmxAWFojggQbRb2WIWlZNLXLDq8NkWbmk0Qs3mgLFHG2MtT0WprypWObLL1TPs2JaddjAw1ump4Ou2n2124m+JUMc2EeAE8rJlsl/Lksnpb4OsQVNs1qBpUu+FhgDITQ5FRARkU4FbOdBQOBgNhPVbdjgd1ICHOpureb9jT42iRnU/EdnfaALDSCiURDxWbKL1JuZJkKSkw0SlQSl6JsMdEoMRsVjIGqsRjvGyOQlGn5AAAgAElEQVSk06SpST46NUNTl9jCeHH1xHgvgcSum/KyCjQzzTyyZlHOZ3GEwNM2k2GJaa+AVbYgMYrfcQakSIzsQVYsqntHOZMDMYLKZp+eX8VYAH6ZSkqCbQmUn1CrZ7ErkiDvEGuJUzXJSbuR9tYLI6sAkKSq5CqAGEmtniWu2SA02cqLz/n/J4YYTwGrhRArMIbhjcDzKxTfBt4EfEUI0Y0JOY7+rEnPKgPhlyS5nE3iSERoru6BQ4OUNARFRbNf4NYkzV6JW7bwuhR52xzC3132T7zp/l+ju69qngz7s3h9Md5wTP6QQ5yRVFfFaEfjzCq6dtrEOZsoq3DjhKDd4byH3sPHL7uDdc4kfzVxI6ONdnRngJh2sE+4iKvmqU4UcaYVKk1S2kMNlEqoHiphr67QfKCNxiUtpEyIn7aoD1gUE6gss8lNxzR7FF3NmMoym09f9zViLdneWM5HT7yG9ww9yNDwXXxm6gYeHV1Js5rh6Mu+xLpHfploJI/b38Rv2uiWxdfufglhT0j/9ZPM13L4s1mkn2IcBj38I1mC7ojEsmhs8qBmo3MxBBLxjEK1bIIzgFJz6wXunExzEJL/96XfYi4qcF3HAR4pr+YTa77F/zz6egBuHtzLj+bXc6zcRXVTYNrypUY2FCKBwY0TjO/oR8Tgzkm8bk3v+ROMH+4h2a/IS/DaJXObjDEpjEheNXiAzJLd9NpVLrv7g1y28Qgbi2MM5+e59hUH+fboecxW88Qn83z27pfT/copbC2YmS1C1cbqbtFebDEzXaK7p4oUGiE0fmiRc0LmG1nKT7fRGg7peMbCbkr8NoFbEbxz4wPMrC1wqNbLJ3e9lOINJmlZPVYi6QhACzJFHyE0WTeg3syQz/p89uh1/ML6Z3h8agWvHnqW/fUBDnz0RS76/yQDobWOhBAfAO7B5Be+rLXeI4T4KLBNa31n+tnLhBB7MVo2H0r5W/7dcVYhKf1XXsL0ZpvBh5uGh3LnPo5/7AoGLxtDfryb+bUOhbEYv01RPOkTtFkUnzEE2kc/1U54vEDcFvHKC57l0a9cBEDQhkla1jSNIRNzqxb0P1ZBK0mStVD1gLjgcOQWF3fQ3PCeZxN7Fg/f+Bk+P3sl3/vaFoKieUpannnChMVUpl6BO2e2VRzR1IfMU2fogQatvgyZuYBWt4PVSoiykuykT6vPZeKWANuJiCNJ6FnkSh5xLE3OoWqjmhK1vM7+Lf/EB05dxtu7H6YoQ746dwV3fmMLyRlU68/xIDLmmMM85CZOc1nGGbPf+fGE/ERAWLAMW5Ql8NsUMjTJWpFoJq+LsPMhSSKJfYWdCwirLsQCkY/QsUBUbbIT0jxkFz0IiDJpaTACp6KJcgYubdchN5nglmOCkiIopVgJXzPxUsMvKrMR9tEsfl+EzIcknoXwJR+58d/otWp8dvR6jt2zwmiEZkxoo3xDaCNic/wLN514njeam9Dm3NRMyBkUJE49YfRlGlU3HBDSl7jzxlN0qjqtmJlkJqTCTJHxIPwuTdgWoxqSuJBgzymO/P7vvGDEo7tyiR786Ptf0D1y/Jf/4L+RlHY1IjttoRqhoVTDdDkWHR+/HpCZs3EqJudg1VNyDt98LziZN810seCtXY/xKMZAZGcMSMmuJ8RO2mTka2QzQCuFiBNkc4GByiUcyRMHgqSQgJvwtN/LH/Zs4+5oC9lpnbq0KS7DE2bhCKNboQJBZj4mdgy4RjUCnIoxQK4lkX6M8hWqEeKWFfJkBq8UY9UVwtV4ZdtUK0rJYqgVjeT5wKnL+OzQkxwMQ5qJxR/3PsN35Ba0guzkadYnGRqDEbvpTdASZMoJWkmUD7FjsA5uOTbnTxtMhlZiEd2olcnRuKcc4qyN8kHYkCgbaZkQhLqLtkzjUnYmvRuTlAE7MTeu8lO0ZN20cBsUqdm2Uw1TkiCZtnUnOKcc7LogyhnxZHtOkdQUbtPE+58/eh1Th7vY+vq/5FrxIbLTmihj8h7KhzCXYhrkacPwfAORKcfErsSum7ZuGSqsZowz7eBUTa4hzmoyMwZzYzdMEhRhzp3Q5oFg5AgNi5RVt1AeZt7Gi1zw/93N+eJGlLfw2wVJ1kKExmRHWU2PW+dEbpCgJHDqiqAgcXMWYd7Ctc33RJ9PMu8g8hGethdjRr/DXAAtpNHOsM3TVbs22pIkroWINUnGRmdirA6PwLORymTYrs7MMBknxFloFY0uhVMzCyQoCqKCUZtKLInfBU5N0uxPnzpZmyivUL6N325hNyRhXqJaFn67hR5ukc+ENGsuANJOQGgsTEIyFuD2N3l798McDEPW2Hl8HTIet0gciB1NY4gUHWieaiKBoGTwJFEelCdp9Yp0EaceUEti1y2inEoTe9DsVli+JnKNsQiW+Ug7IWhYIMAu+oQNc1JV1mAvQuXQ7FWLN6LlAYl5smamTaYfwG+TNAc0mTmB5UlkbBEWJM0eaXgY6oJgMCSqWCTFCHvGJuyKULkIP43v37Z0Jw9mV/OY10Oc0dSXCGLXAOGsJoQlTPI5ZNFoGwNojIYBqCnCoiArDAo2zBttkWBJQFi3IDH5hcaQ4Z10KoqwaOaKXTNfYmtkZL7ndyUkuRjZUCTZhKD5c+AO/+sd+J85zioDgdaLCcmFITT4iWWwEQmLmXGS5+IldNpvQWISXAtzKP+M/0kz6v/uRdGC0LfQsUALDUJgC4mXbs9qGteTdK6FcMW0bOtUvh6sFot6ngvbkpHZV/PbvI+aFkJodJzCeFWKc7AMGIdE4DdtitJ4DguJy0YSLh6TXRemWhGe9iAMXFqn2Xvj6SgvPR9Bei5YOI60uuOZfbMWzlXdIs5Hi0nRyEsrKLEg1imUPDFPd0j7K1IPwqmYqoFI9KLH5tQM6tRcO714nhbQnPjGyyAy6l0ikMRSISIDSvISm4Lt42kbkQjTmxOJRXc/aZ32IJTH6STlGSGHCjU6raSIhbWUgKhbWDWJtoyxt+tm3VgtnYokp3Npk2yVkQnVorwAbQR/IyR29ecBJp/dHsRZBbW2mjFOVSO9CJEK30hf0IxsZCtCRmC1YnOB/MhctDiGOCap2cjAwFJz0k+hzakLGpgqBpzObIsgQkQp3DqITE+HhqRhI5oWScNGqYTHvCJLLWngtfHCjagX4+2FISJSN/u09ZG+YYYWYcqQFBhGJumZfRe+IvQsRENBKEhaFsJT6DTph9DolsVX565gg2MxGfvsC5qc6+TMzRiJxafmQgPSwuIXGnN1dfqZ1ulNnDJEhXFaTUgM58Pi99L/DwSiaSFbEhFK0yma4gqIJIQGeyHjBbzBaSO86DWnvxf+LmOdll7TiskCMVYE0jMlZNkyN6oIBQQS6ZlS9OOzK3jqwAquzJxanFvEZ4QTZ1QsFh8yBr+VUuWbz7Qy12ihUc9Uc9Kb3idV+U57OjTPCVcWfhYfOOJ0/4nBRvwci16/wJ//onFWeRBHb3Hp3aqRXoBIcwu/fuvdhgL/vQGrv9hCBjHFeohohWSaITo0hkS1B/zdTYYS/523v5ff+8Ad/Om2l7P8K9KQjXgR2QmxSGcvvABRayLTKojlBXz8+rv4g3vegFOW3PLqRxn32/iNb7wLNHzzt/+S33rn+3+Spj7Wi2Y2URK7FpAfS5uFWkHKPp2QT4lODBNUQv5YhDPThXteFdV1mkY/e9Tm5lufSoV0A75290u48xtb+I7cYsImbQzB3vd/nrePXM3IH6xJn2qpGnqUoG2J9GJjFPyYsDODakVo2+yoqgbIpo9s2caDEAJnVhjujdQrqw530LqghTiZwVrSwB/PsX7zSTrdBo88dS7Lzp3EWRUT/UkfMk5MR2yQLM630FMjWiE6axPlbVPunTN1XqtqkzslEEGEdiy0ypMfFTT7JUNXjVL1MtSaLr7IUtqpmBxZRn854bVbP8Tdf/Dn/Povvpeo6CzS1Ud5O6UbZLHELOJkkY1MS4GqGndHuwrhx2SyNqIV4lQ6KR7X+K8r85tr7+e2970CqxaAEMSuSkNQtTiPjMz1P3Y52PtyOBVzXbIzL04Xw0z44v/l/+Q4qwyEdkwsj0x/gPGgncQBe9xBWx46jWvFgu+TvljWO8debwlHvB4SR/P1sUt4z/mPcI91LcQstpBrJVK3USAW+j7S8WxzKaIzIMBh1GvneLXLxLMa3r7rbZTSdnQRi1T5e+ERme5/2n+hpYFXo6Rxp6U0wkAS4z6n78NSQnfGZ7aWZ6TRYXorippjjS6k0GRURNgTYjUco8btGJddSMHbR67mK8MPc721Fq0ECQt2SpIogZQCjTDq4eqMNnohUMr0SGgpEVqf3jchTMSWmPxF7Cukq01p1dGM14q0IvN6rpHj3J5JpixBgonlhTQeDUosuhFi4XwrYfZwQSBJSmNEpTQ3XSgI2gSJo5mu5/F9m9AzLewLGIfEEiS24K373kZeSYNJSIQJCc8471qkvRhnJADP7O9BSkjPi1CC2DFkuY3DbXw5cyWuMp2wsHAsRiPWJCmNSyJJiJoKJ/ViYgeizIsMFzQvqBHrv3KcFWXOQudSfeU570Rv3wPAsT+9grbDkJsybrAz76Of2gU/XsLRbUvRSzzyW7N4vZr8SRMLBm2ajn2GTKZrT0h+vxHOefP3H+Zjz74CbzrL1Rfs55zcDHeObCR8oJsoA60VAZmTDn5PTPGwItxSpVXJkBlxCDoSCsclTlXTsb/J3932OT47cw33ja6h0XJYNzDFWwcepyQ9/vjQq/jU2m/yy997L+99yY/IyYAvfPnVNM9v4e7P0nvNGCf39LPhwuMcum8lfVeN0Z2ts2NkKYxlUAEE3RFrVo1zaO8QdkXiVASF6ycpP95HdtokJO0UCdr3lI+2BPd99Yvc2cjxr1OXM90q4EcWty59mi/suZo1fdPs2jPMO7c8xMPTq1jbNslckOfR3avJH7XxO00uIOqI+PCWu/nu1Gau7DxKM3HwE4s79p5PUrMRgaR71Sxz+7sA6Fw3y/R4G70P2qx//24akYMlEo5VOwkixf8+78u8fuc7qDczhJNZckvqPHDJ3/PWQ2/g6BPDWE2BNxBzxyv+mtvKl3H/2GrqLRdvMo/q8LH35mgtiXA6PIKyy69e/ij/uONy5JRLdkpQOJXw2T/5a3pUwJ9P3sCO2SFeOrCf93Y+xR+N38j/03cvMYJOCScim6VWyN2NFfzxA6/jD6+9k4898BrsiiIa8LHGXV790icpWR7/+NDVtO1TfOVDn2a7t4wvHLmGjd3jxFqwoTBOt1Wj3y7zTHM5Nxb2LMo3jlVLdOWbXNlzlE+cf8cLL3MuX6L7/+g3X9A9MvKuD//fW+bUArQ6nQ5Jlnn4M1ky82m3oW3IY4YL81Q3uwwVKuw+spqwLaGRBtoiNgkkg3oTi/MttWe5YflBRnvbyaqQc7OnmOwv8cOBTuKukGzRpyUhW/LQR0sEgQWhRCsD4lmUurMllcTmlo5tzIV5HBlxbn7cqD0jePXQbvpVk3UbT7LSmaaWZKivD8i4EdHGOqvbpplbkcUSMeGaFps7T/HU9DBJLJAifYongulG3jQwpZ7SfC23mMYScZqQTJGJWgnubOR4Tb7J4bbjdHbVuXtmE68u7GbX8BI6nQbRuZJXFXeSkwGr3AlOBD1s71iKvzkkm/NJEsnazjlGg07Obx+lzWpiJxE/mNiAjmS6L1BvuWaftHlNJNEKNhVOMeJ3sik3SqUtxxPlFRwNS2TsiL7eGertLps7x7ijvppVxRkOZZcSD3t0tTf4bu08LsidwB6K+freixChIA7Sp3IgiAKFCCWPzJyD9tViXkkL2B8MMKuqrM1N0G432Zgd5Z8rm+iyG9xd30AlztKmWrSpBvfUuripuAvshNGgk9JAjaDbYk3PDOOdRZ6eW4rWppUbATv8pQzZ8/QValzRdoQRv4tV7iR5aZKkq9xJvls9H9mUTNULNBsuSSK4P1798y3+s3icFQZiIeO94MtIFS/yBohYL8aRnU6DghPQZnsmKRSY2vUCWamIE/P3iMXqxkP1ddza+RRfjrawMT+GI2Lyyjf9E5mIVjmD8BSizWAc4qqDCETKXqUXF6WINF9MWZb+ePD7HArbmIjaebS2huWZGS7LH+bHzTWUHI9QKzpVHeXGnNs3wZG5bvbN97G+Z5IDM73EvuJwrcfQxDUsg/wMTMt2pZozyb+0KuHPZsmlSUjlncFlEGkS4F+nLudw23F+u/MoP2i6/OGS7/Gd2mZu6d7GAW+QY1YXs0mOla7p7L0xv487OzczUS2yqnOGJbkyj46vYLa1hjbXI6MGSRAcn+hCN5XhWAgErWoGJzRJvFY1g2wZhu23t+0mRpMRim/Vh/nY0jv5+PjN/MaK+2lXTf7ixMtYlZvkm2MX8ferbuOe4EKUE3HNwGG+d2oDW/qy7CoPElcdrEAQtZQpxTYkoWWjWpIjp3qQDXWaYyKC789uItGCX+17hBjBJnecz49cx6dX3c7vHPlFKl6GvBOQtwNmmnnqAy74klGvg99cez+PVFazOjfFveE6Tox3oSOJ0zRQ9K+PXcJArspvLf0hRekx4nehRMK9lQ2szE7TY1X54SmjD1ueKYAvaXqK5mzu51r7Z/M4e6oYZ2gKtBW8lBloIdNskj97KgNc0nmCdYVxElujLU1UjEnUc0lAFoyKSIyw62xc4KbOPTw4t5rZqMCG3CmSbMJQdxnhKyimFZNQI3yJ9OUZxCcLxDSaCa/IUqvJHbWN1JIsRdli3G9je20ZeRHQTBxe0fUsMZLdraUs7Z1j99gAF/aPUvUM1qHpOZQ6G4SJQnvKZO9TshXlm0rGcwhX0n1ZIF5ZIDFZODfTrQKdVp0fNF1uzvl8avxltKkmjcRs7+Xdu1lvV+hXFYateQ6F3ZRbWS4dGKHDadGIXNZ2TlNrZSg5Hl5sMdUokHgK6UtDuBIAvkyNRfraN5n/+1r9fHLmKqbjiLcUx/mH2S3UQpdPHnwpD9XWcmPvfpY7M5RbWf6lcjHa0qzpm6YaZal7Lq6MWFOaMuc9OON4A5FuH3OeFghb0utRDrK4KmIs6uDW4m4eaK7Giyy+PLuFVmjT8BzmGjmiRFJruSzPzBjvYHqIe+fW48cW81GOa3oPmwqNn16HCKTQdNoN/mHiWorCrI2t9ZUMuWVG/C7Gwg680Fwn/JTGz1cI/8UTxpztVYyzw0BojUhOZ4DnDnVi1/SiB7FgPK7uOsxtz1zKPx++FHdeYNUlhaPW6fp/mJbRwmSRaaocZJmOivzp7pt5z8CDhFrxL6cuI3fC4uSzA5CPUBOuoTRLy1qJm5Y8Hb14gWSUECQWX5q/jFuLuzkVdhBqi/FmiaWZeX5U38DT1WE+secmjvk9rMpMMLp9kDese4YHt60nCCyOVzoRQlM/1sZcM2tgy7GpvWsBiaVPg3sUppQXsViuE0kajlmkJVqNH1ncPbOJQavC205cw9eWPcRdU+cxHZXosyt8Zv/1fGL6Ov6tfDFPtFaSIFEy4f6nNrBtYimzfp6nTy1Bazg8181cK0dvvp7KHkKiUnhxYjwq4+0ZYSKRQDnO8cGuR9gZ9POmozfxoZ5HOFbu5MELvsZ1xX18df/l3DV7Pn6keEvbNqQv2L1zGZUwQxxLfjy+hvtPrjbn3UlBZ3ZawkxBTiKU6XUxUHCAspdl31wfP5zdwJv3/TKVOEulmeXywhHmG1nCUBGEFpO1Ir5vc9voJUhfckX/MV7dvZM536h+337wQjN/IBdLmifL7TwwtooPDtzL385cy3eObaIaZblzbDOt2Oah2dU0m25aUTLJSy30YsfnCx8LddgX8PNfNM6KEANxRtYYSLIJiaNSMhcB6WdPzi/HyQd0FxpMZDqIM6ZDEUDbBvoau4YtaaEK8juD9/AnJ19JR77FN2cv5fziCMP5eU5mlxDnEqRKiHMJiWfhuAJ6PHTLInYVUVYTu5LYh8SW/FL/Uyy1Z/nAsV/AkjGbSmP89Tm3Mx1n+cbcZXx44B5+rfIWhp0Z5qICcS7h9n0XonMxN5+zj+8d2MiGoXF2zi3jsv4RHk8k5dkCIrHNjZFL6B6sMF/rNLyavoBBj7iSI3YNQnKBM1Lbplpx69KneXVhN9+pbeba9oO87tBNfHv1Pbzx2PUsy83RlW/yuvanub9+Ljnp82htNTPzRXQ2ptF02VUfpKujzoauCQbcCjGScphlYnie6ck2REuhA0G2v47fLBk+jf46TZkndsw5/szsFla401zZcZR3Hf0FPrTmXm7a/WaKjk97oUmC4FXL9vD7o68hzmp0NmH3xABXLT3GKzt3srW+km80LiIuO1AKiScVflcC7QFJ3aZr2Twzp9qwKhaxa67z25cZJfguVedwqY9O1eDGZQcYCzt46fID1MIMw9k5molDogVv7HiSW0feRyt2+OiOVxKFinpgvKz2pWW0FtTCdtx5wa0rd3BtYT+/e/AXedPwU5y37iSTYRsXDx+jkbhcWTxMzgp5fGodmcEGQWCRdSLEzxMvnOUhxllhIESsF/kfAEr9NfSzHVjNGBkkCD9EA5PNIr987lbaVIu/tZaAhNZQZIhHmmDXE5yqwGrGizwR79/3Zr60/p+YiAt88sTNrMpNcUv3Nu7rXs+Gc0+y75ll0BngZCKcqkaNZJDSwLGFNhUMp54gWxGf2v9SfmHFDn5v6d1c4Cb82cx53PrMuyhlfO7Y8E98+NTNfGrNN9nhDbO3Ocj6zSPsO9nPGy7Yxu1PXsotl2zjjqcupnOozKOnVtA40obTFIsITS0Vs74hexGxaRbyj2QXm820FIvoROnFSCn4wp6r2TW8hFu6t9FIXF7as5c3Hruer6+4j3eObOHPV3+T/f4Av97xJPc2l/Purke4J7+O1298FoAOq8Fd45t5YM9auvuqRLGk6TnEozkcT6Rt3AI/KuGUBZYHTVUiUxfYjZjRoJOi8ljnjjMVF/n/hu/kHTt/hU2943xm6fd42m9nkzPPlgd/g69c9RXezhqu27Sf9YUxPv/kS5hfk6UWZMx5jyBuuKbdOpKENRcZCOabXWSrJre0cD3+Zv91FDI+PbkGa4uTjAdt/ODIuVwxfJzHTqwgqJonfM9QmenRdrgEhKd44Mhq3rv5IdpUk5Ggi9muAj944EJkDLlpgVNL+OaRC9jZPcRvrvwx01GJv9hzI+v7JtirBggSxbyf48hoD/lRiecVUTEEKez7RY+fAzrxf3KcFQbi+cPb005H9SfP3I0DB/jyg9eSX1IjM2P4E0uHzCH4RgrDwF/PGJu6xvnUxMt49PgKbr/sH9jqreAfJ66ieNjiQG05SWdE5liGaE1CnIGwM0ZkI+JyBq8nJjMjiUMz56beMQbsMg821vHX40v43PD3GGl1cnX7QX7/1E0ULY+3b/9Vfnfjvdza+RS/dtf7+KXXPWIUpAabfOfAZpwOj/qzXeQ3zZH0BCRl0xOifEHYGeN2tggrhZSV2WhvWE3LwHnzGHdTGmSkRrCmb5pOp8EBbxCAPrvCstwc7xzZwpeGH+Gi7W/hLSu28fGpl/Cu7of5l/Kl2CrmX+69mqQnwM2FZJyQYlcDx4qwlGBZ+zy7gkGCmm3CnEBCe0AgHZK6JOn1CZRDYgvmoxybcqPs8gxXyb7WEENtFS5rO8ZHJq7n0bEVrOiYZai3zA8qm0HDQ49t4NnVA7R315n3c3iRRdiZPh7cGL/pEmdMp6SIBLSF+Mr0gYhE4pYFa7unSLSgyzXAqyhR9LfXGMqU6Sw18LM+rh3R5nroIcFckEcrzds3Ps59M2s5ON7L5cuPMVLrJO4OiLVABjZ2TdBTrGPJhH8ev4Ll+VmGO+expOHgHMhUyKiQybYCXrdL1GNg7yoXmfP1Yobmv6sYL2QIzeITH0CsrhMdK5inZBgjfPPZ1566gg/f8F1Gg06+XboapKayNqZ4RJEb11itmNykRHkRROZ/frx/Lb9zyb384RXf58YffZDzVp3k5p7dbFu2mtUbRxl5cJhgdYukZZGd1QTHLLS0jLpVU5GdTbAbMTKIeHjPGtRGTawF7+x/iLcffT07Dwxzn1rHN67/W37rwC+x48ov84HR6/jC9DVccvNu7rjrKt5/yz184a6bWH/lMfY/toLBS8YZGe8kcyiD8hbaxzVW0yKaKJKd0MjYdBMmlkVm1ih9KU+mSEcM2Y1K2LVnmOhcyTGri5d37+bP9t5EV77Jn6/+JhdtfwvbL7qdv5lfxnu7H+T2ysW0qRZzE2184jW38VBlHdXI5WS9g9FnBgmW1wlaNpPVbjJTyvRZpF2aYT6DU007YYMMdgOcSsCTU8u4t7mW167cxYbcKe6fXcO+4wPs27+Et1zxONsu/ldmkxZXfOt3OJyvonzBG17+CEcb3Tz16Doym0JcFZM/ZhkPwrHIjxvgUlgw+aUwr7DrZj8y8wnufMT2/Stw2zyUSnjJ8GEeG1/O/HiJ0Zl2UxEpK+oappe1kCNZ8jcew6oovnr39fScP8kr1uxhf6WP87tGmXpwEJFAZlaTm0k4MdaFsyTGjy3sQsyB4wPYuYCVvbM8Xl5OECiiyRwdx8CrOMgYYscxydyfZ+2fxeOsMBCJJUhK2cX3rhPhtwv8LhcVJNgpYvG1F+xgd2MJ7XaToF0TtseIQNAa0IQ1gd20DZlMxUXNmPn+56V3k5c+P2icy2vP38EbO57kqdZKtJ0w18oRrG7hZCI6eyo0e/tprA6QdQstJXHWkKfYNYFTzvLbV9zLW0v7+MfqeqajEu8eepCj3X3kpIHwfm7tbXyxsop39z7AdFeR/3XwVZQumuGh2dWsucKI7PZfOIEfK25Yd4DHCsupz+RwZoxyV9CRYA02qWXyOFXD/NzY5JHsz6DVQlemybSHnRm0Erxzy0O8qriT2STHervCruElvK79afb7A7xlxTb+Zn4Zv9Fxgh2+4k74xgkAACAASURBVG3tW5lLHL4+eBG3T16CJRMkmqF8hY7LmyzJlXFlRCt2zA031oaqS2QoiJd6xMczBli1ooU/45Kdtvij1d/jgDfIq4q7iLVgX2mQmy/fw7+NXUioFR+b2cjF+aO87pqtrM1NsK2wisdnVjCUL3PJVfv5hZ7tbG8s57bV3VgzNlF7jAosWn2aqD1EVRVta+eYP96BO6sAiYxsPnzVXUihyUufIWuel3fs5L6h9XTYTZqxw7jfRlaF9Dg1Rld28K7uh7mrdzM3rt/PfJBlpNHBssIcjcjFvXSORAtqe9sRWvKOCx5jY3aUh6treF/3QxQu8hly5um1qjSGXEKteLi8hoebm2BFnbDmonIRmezPYSHOcgNxVlQxRKIR3mkPwrFiLM80b6lmZJqegJ1zQ6zMTrPCnUZ5AhEKwxA1b2Jj07+vsZoxIowQYcRdU+ex3J7hkuxRjta7ORV1sClzEiQsa5tDz7kEvkWlmUW1NKKlEKHAbprYe4HPUnoh98+u4a7GMEvtOa7MnuSAN8j3pzbwSGU1G23NA821XJ07BMBE2M5gocJcJc8F7SfZOzLAYLbK6KQRVzlQ7qVZyaLqCtU0+698QehZizkJy9NQs7FaKW2et4CF0KhWhGpGPDy9ivsa51JLspyIstgi5v76ubw0d5zjXhc35vexw/c533WpJDaDKiBOBJe0n2BVfprVhSnm/Bx7J/rZUx5gV3mQbdNLKZfzqIZc1NxImqasZ7XS1y3TAXrAG2QyLFFLbKaTHBuzozxSXkWQKG4o7uGm4i5ekqnyxPRyhu1Z0LC2bYoVuVl2TgyytbGSw40eREstNm2JBcxH0zB3zc8VUE2j1GUo6hLum1vHk5WVPFRZwy5vKTuby9hTGeBIs4cd5SXsmBziifFlHGt2sW1iKXv9AUgEu2YHWJab4+L2EUqWR7vdpDyXpzqXx2qZ7tRt88vY1ljByuw0+8NuHppaxe7GEIf8PvY0h3i4vIa9833IQBBWXIQviesWjZkXj4M428dZ4UFowWKlAmC+kqeIqUYIrRcrHNf1HuK+mbUM5cqLltcuK+IMJCm6MHaFya6nVYwL2k9yJOzl2eZSbu3bxjn2NPc21qPqkj0TA4guHx1JilkPz21D52ISCVFGEWdNlSQODNJzU9sYF2VOsssf5OHWMt5UepZTfjsXFk7wTGDRb1W4vXwJb2rfypXZo/z5+Mu4fPlx7h1fR1dnnaP1Lro665TrOTb0jzNVKOAHkrhlUJFRVpMt+IQ5F5GYY9G5mDijiJ2UkwBTZtS26WFY2zbJKtfok2ZExDmZKXLS597mct7V/TC3Vy7mbe1b2eHD+a7LDh/yTsj3xjbSnmmRswI63SatDpvhwjwAK4uzPNg6h2bTeFJagcpHRFnLdKXmI+KmqTK5MuScjAFhOcSU4xwDmSrtdotnWsuZCQtMFA+xojRHNcmAgCcnhtncM86S9gqKhP5M1RxnIEhyMYkrzTXNxUSJIpMP8HI2MpTmetiCFflZisqA0lxpsAq9WZODiNO4PqNCSpbPQKlKjERYCdcPHGQ2zHOk3sPGtjHqsYubD9BaEGVtYgeW5MrYImYqLLHcmWYgV6VkeXSqBm2qBcBktshMRqMKkelZcWKEfPHuwNkeYpwVHsTze+JzeW8xd6PF6c9GWp2sLMzQ49RTjIAgyieLZClanG7rXhhHmt1c6J5k2J1lV3MpU3EBW8TEucSU4BqG/6HpOwZ30VKomiEysVJSVRlrkIIxr509QT+XZE5yZeYE9zaXc6hujM9au0U1ydJnV5mO8xyNOuksNRhvlhgsVKjUM6wqTlOpZ5AyYd7PEQbWIlBKBWC1BK1axig7pZ4CgQEQqTPBUilprxYm+XYi6GG1PcNI1EG/XWFXcymXZ0/wb5WLKCqPucShT4WLnoStYgYLFVYXpri07TiTrSKVVoaxRhuVIMNYs40wVMiWERWymoK4YTwb5ZnX0jNt0f1WhZJs0S4NYfDVucPGbZcRLynsxZURy61Z6qHLddkxVEvSmWuxvjBGNTDu+kijE9FSWHWJbCisZtp63VJm27FEtSRWw4j7yBgakct8mGM+zHGo1UePVcWLbZRIiBKFH1s0Qhc/sWiGDl5iuDzH/TYuLR7j4o4TFJVHJcySxBKdpOFbCNXIpZk4vKb0DBkRMlLroM1qUolzKBLqsUuUSKyWIPYVoq5IWtbP13j13ziI/3iEBaisLVHcYd73FBpMFDo4fqtm7Rd8ZN0nxiDcnpoepi9XN25oS7DislEOMUTvE4LMXISMLexqCJ7JC+yZ6edT4mU8PbmEZe3zzAWXcajSwzu3PMQTcyuYLRWIfIucG2BNJyR7DZGrU09IlMCtmiSlqvk8cGQ1x/s6+ZbbZLpVoOj47Do6xImODnbMLVkUsFneP4stYy7oPkWsBbN+nv6OGhcXjvH9ZAPNikPZCSluNUrVVsqS7ZQhGXNT3YqUffoZhVM1PI5WSy5yL6hqgFKCR3evZnvHUu7s3Ey5lUXJhJn5Ivfk12GrmLmJNr4+eBFxIsg7IbaK+fH6O3nFgVfwq317OB50c3K2ncCz8UOzHJRKyD1WMFT2KW+CO2cbVuhQ41RtLE+TmQ35yJ5XIYQmY0dU6lkcJ6JxqohoD/i2PI9kMsNt3RfDrMvNlXeQGxP0XFXnVYVdfKl2Jd+tbySOJG17Fco3uJP8ZIxTlYQ5YzijiQKqZc5JJqWsu/uxC9BOArZBj32nuIlkNMe27uWIOXux5HgotwSnLPnY8VdTOGqxY2CIN3U/wc7GUp6YXM7sfIHik1lkpHGqCZn5mEcfX4/QcHvbxQg7QU26fP7US1gU723Y2HOK7v0JrWkHFWhiRyHDF3k7ac76MudZ4UHIEDLzp3MQG9oNEW1mxEE2/EVuiB/tOZe/Wvd1bunbTpw1PAyrS9OgIT8RYlcDspM+quajQ8MVUT7SyabiKP983lfY9/BKDlV6uKH/ADkZ8N4l9xNPZlk2NEMQKTLTPqWRiLbjEbmpiNKIT2bax5nzEC0feSRLK7SZbhW4ZXAHByd7yB1yCbd38KahrVRrOb525ZdohjYHDg/y8YH7+fFD5/HVFd/l5IluMjJEn8py/fr91JsZSiciiqciCmMR+fHAbPtoRGE8pDDmk530KY5E5CcCMjMeuYmA7GRAbrxl+BwaPvmjNlGomKgW2dw9xtSRLuKW4vUrnqVyoJNPXHs7w6V53rD8GQB6snVeceAV3L32blbbs5yfGWFV7wz2SZc4ljSrGRrH2iidiCidjCiNRBRHQ9qORxRPBuTHzevCaIRd9qjP5mj+/+y9d7xcV3n3+11rt+nnzOlV0lG3Lcmy5SLLBtsU0wwGTGyIE2pCAiQhzalv3hu4vCGEF25IaKHjQCDG2NgOjo0B4ypbcpUsy2rnSDq9Tp/Zfd0/1pw5skmCzeUmyufe9fmMpmjO3mvW3nvt9TzPrxxpxzYizh6cxG3YOHMG6SeS5NtqfOCVP+C92x8gOyrxAhMl4W+Gb+cRdw3RaAbTjOjOV5rj7tN2IiA92SAz6ZMbD8me9Mkd1+OUHfdITtcxCw2SMxKzbGAULJL5BuFCksS8xBlzSMxLsmPQdgSssiA3qnDyLjKA8P4OvjZ7CVflH8c2Il66/ii5kyG5EyGZKZ/EvItd0n6sCMi0NbCLAmveAkMhZh3sRYPkvCA94epxOhHQNhaQOxn+9Mn9M5pQL+zxX9VOixWEMrWs/XIVOW/ViR3wuiPihI1sOnivGZ5nKtQQ59jUUOhOu4pKRQRZAxFZRAkD6UdIU/802eMybC2x3xsgGnHZ0DZPPba5MH1Mx8RdHlIoejNVGpk2/Jw2vxExGL5+jSGQNQu/K6IvXWZ1aomU9BjsKHGiM02U0v3LZho8VN9APtGg1lOlHkek15cYD2PaeyvscCaJunxKQULX6nPaE8P0FDLUXplK6mSlaWnzXz9noEzNogxTWtXJ8CWyYaGklqlPpjzWdyzoPgyXqdV1siLu9rmvtBlTxlSiBO2JBoOJIu/sPdAyDO6QdUwR43dGdKddakaMZ8f4WQ00MprcljAhmvoLWg1ahmBVLLJdNdy0TV+6TD20GeouMDGRxOuJWZWuct/iBoZSRbw8jHQUGJdtLEQWV6bH+FBPQMIKsWSMl9M2iGFCYLgWQdYgSEpMTxImNAfDMkAoC2lKgqwiSscoKyaOBUaHR1BI4ndFWAVDw8EjiBJK65zGWo+0Nhzx9t6H6DOqOvTzE3g5Q8P0jeVx1ldkpqOOZUR4KUWQD5FWTJQPiesGRsMgzFj4uaYnqtUUD3rRJ//Pe9X857TTYgWxzIFYbqUwqeW7whWFI4A222UxzFCKUlpmPRSUwiSEsil51mR+Pk/jotsssxhlSKddkkZAMUiyGGUoRmmkVNQDS/soxOo50mLLhC8iTdYCMGXMptQM3WaZfBOkgx2Tkh6xEhSCNKaMySY85mOTwbYSS3ECIRQ1ZSKkoh7arf3JU4hlz5E1i59LOtOvT+mTUi1MRBxLhlLaPW0kv4SKBXmzhpMKKIcOEoUhYm006xQ57ncxHyUpRHXyRjPz3rxNCQGmFT5vDE55HZ3yWkF70qWzvUqnUyNWgo1tc6DA7HRZk17SWhEyAgUbc3PICBbjFEvN490c1uft63n7OUXqjajJzxF6jDAVSgkSSV9PCqnwOXfdZfm9ONZalyodkZUN2mREj1NFiuVjsPybVEvzdLi9SMLSqwLR5OcIK0YZTSzKT50vP9+5fzqTtX7mCkII8RXgSmBOKbWl+VkH8M/AGuA4cI1SqiCEEMCngNcCdeCdSqnHf2YvRJOc1GwzbhPzP6OVl0QzUZl36jzb6KccJlCmVhj+0cmNZHqrxGZ2RTVJipZy0Yb+OW4tnIsXW8RKECjJ8Uon94y+jtXdBX53+4+4Z3ETCSOkaminaxFrpdPY1FBjwxBgSBJdDTrsOt+dOpfuZJW83SDuDLCTAXcXttCXrXC01k3Fd6h7NtcfewsTxTb+L/MKejJVPjx+JRuHZ8nZLtcNPMLfGddohTajSRIzNDlJGk1lKqUVsGJzWZUJUCu/TwlBmA/Z1LHEg9MjbOqY59nZHjrzVW6f3kbCDhiv5hlMl9i7tJoOp86/zp7F+GI763sWMJtn9Pc23MWO8jW8pO8Yx6rdnJmb5kfGxbqCFAlQquW8jmi+bvZjcq4dpQRPC0XW9vjx0U1EqRhVcPjBsU2kkz6Ph8MEuZgfjG3GMOH6A2+hLelipXy2dU/T41S41+hr/UYll3+zVnJaPibLqlDKEEQJBbkQfIlSUF1IYya0hmeUUARN68HYVgRpgWVFWh0sFLx/33UYMuYPNv2Q9nyNDxsbWv4gSgrCjJ4EDh4eJNHhEqYVomihOnxU3dQVpoRq9U0a+tjJFylA+18dPryQ9kJCjK8BnwZuOOWzPwF+pJT6ayHEnzTf/zHwGrTX3wa0s/Dn+GmH4Z9qCp4j/fb4yWHsmtZ6WJZCA0gaATc9dh6pjjp2QRC0Qf1EDpX3SbRrBSavzdDWd812Tf+jfOLgK6jOpTnnjOMkjYATi3miqRTHFpPc69R58uQw3R1ljLSkvFZiNCA5r0+s9FwEmFjAR7ffwq2L5zBeaOfoVDfDvQV+6ezHSEmfG4+ew3s27eYzP7iCHRccYThTYPd9Z5HfssATj67nbZc/yLf2n8dfnP99PnT/Vaw/f57FreAsCZwCLcm1Rq8iMy4xawqrrlg6U9B2VEvL17sMTFchlIG9qCHXf3zJHUz4HSw2NrJvdgDDiDmrc4afHNhEtrPGxBMD5HfWGZ3vpJG3KDUS+K7FkQfX4Hdqpdkd5Wt4bMeNfHxpHS9re4ZKlOTb5+kJ2myqRdd7FekpvQSvDYJTFCSWDDo7SkSxrgLNLLShIsGbdu3l1mfPJigmqB9JU+wJueryR7njyJlICfUnOyj0h/zD5V/jrtJWpt0c5bWyZfajpEWjUxJktOdpZW1EetzALgsSBUliIeDsHcfoTlR5Yn6IhYUsq1fP07W5ykSlnbVti/ixQd5uMO9mkCKmEiQ4mcrwzgsf5GsPX4xZMvlQ/XWok2nic/WKJHfEJDsB27YeZ7aeYeakxu8nV1doSzWoezbpHp0Pc8yQxfkh6gMKoy41cTCh9G3zxbT/7lBrpdR9Qog1z/v4KrRDMMDXgZ+gJ4irgBuU1rF7WAjRLoToV0pN/4c70TJ/rTbSs8iJVLopW671EwE6rBob106TtV325XKESYXsdkklfYzAbvofLGss6g3WYoeze6eYzLThxyZ5s05/vswJ1yKTa9DjVFndu0hvssJ43KUlz129dLTqK0tPhGB3dT0bUnOcbM8j84pV6QKTjXYcGXJGzyyVKEFuXRFbRtRDG3NtFcuIyK0tkpI+w70FXpYa5UvDiwzZSyQWRUsExgi0zLqzJDTYy1uuHkgtkhutfKZVlfQq4l/mtmklKMdlOFvk6FIX/U6Jrt4ythnir6kylCpS6kiyKlNgSrbhBSbRhoDutNbCf0nfMT6+tI7rO45xLKhyt7+J5Iw2gjE87a1pl8SKI3ZJYNZ12GUZEUqZdGcrtKcaTBdy7F1YjVJg5nyCpCTX1uDeifUkEgGRoT038vkatxXOJWc2+NTQnVxW3aK3iQZgLftiWnVFasrAqirMOpgNLUR7dKmLUkajZdM5l7LrMFPMknQCnpoZwPMsHCdAKYFbt9k4NAvA3sJqkp0N/KzJup5FTpox8tGcNhGu6fEdK3RgyBgsRSbpUW04zBczpJM+pYYOF6vldrpKisjW4CqtZvbzlDlf/J/8Z7afNwfRe8pFPwP0Nl8PAuOnfG+i+dlPNSHEe4UQjwohHo2rtefEb7XAbhqdoPMJ8cooLtR1zKx1EhRxIPF9k8jSdfnYbOYtmnoQfWaJcpCgWE/SbjfotUpkbQ8VSOJYEihJsZEgVFp4NchAkNbJwiC1LDmnl9kvzx7AUyZRLKkHFpXQYUN6js2ZafzYZEtygmotwYb0HOsyC3g1G0vG1F2bhAyoBxYWUKglScgAt1NzDmILIkub0XodiighCB29zPY6VEtebvmzyFnJzezqGKXfLpIwQsp+AtOIiZCEkSRWAr9h4cgQS2oyVNrS5V+vZlNzbeqercOKxGQrcbnZmabRFxOkdZ+ipNb8DJPa0dxv02a5SO16lrZ9pFDUfBvTjLmi/yCGGWnPj7pJGEnO6xsnZQda86Fh4ocm52XH2Jic4e5GP0EGwpTQ+0wIgrRoHYv6QESQEYQpCJMaIHZ+3zjrc/O0JfQkt6qtyJb+adpTDc7um2Jj/xzn9E9y8fAYm4dn6E+ViRJwaddhokjbCVZ8h0bFodEbUx+MCdJ6fEfySwzkyhhOhGOGZJIea3sW6UjXGW4vMpArMzKwgN8m8LoUXh7cLkVt8MUnIZ6fw/j3Hv9V7f9xkrK5WnjR86BS6gtKqfOUUucZ6XRLVg70BdTyPIhpJR23JCcoltKcLOebWWqBqpnYdjOp1kowrWzLEDFeaFIuJ9manSRruEyU2hB1g1oxyTWdewBos1y9jeXk2KlJqObmKrG+YzlGSNV16EuUqUYObUaDspegEicIyzYxgn67CGWTHZ0n8YsOloho+BY/bqwmiiS7kmP//snwnP2LZlLy1H41xySGemxrzQMERTdJX6ZCMUhSd216U1UoWzQim6KbJGkExEpiGDGyaOG5NmEoOTM3TSVKcndtEz9pSC5LNv07TjkGuh/LfVyx6vMik3angReZVBsOhoyZ87P05StEkcSsGLgNm0ZkYcpYGxCVDcJQUomSpKTHfaXNzxv35z2ilX0vJ2djBKUgScVzaNQd3MikGjiYMqYaOniRiRuZFPwkjdBi3s0gFPSaJUwzAs+gO1lDmnFLnGb5eNdCm4KbRMqYmmdTbejtVTyHKJZUfYd6YK2cL63Hi1e1Pt3LnC9I1boZYvzLKUnKQ8BlSqlpIUQ/8BOl1CYhxD80X3/r+d/7j7a/bN5b/aULyY5W8TuTLSXrUxWuZy8wnqNcXe036b1Hbzr8YvgcxWvDU4RpQXhRGbU/h12C8lYfMxkSzyVYd2ODMGUSpjX+we12GH8VfOTl3+WupbPYO7GaVMKjMNqBsySxqrDxjYd/SoV6zdo5bBlx5JlBztx6khPfHyF9+RymjHH+Js/SGQ65EyFLm00yUzHVAUn3Pp/5bTa3/fbf/JRK9vsH7+FDR65kdr4NShb/85W38KEH3oAzaeOv9qBqInxBakoSpuHKq3bz+NIwx2c6iV0DAkn3qgJLz3aiejycw0kS5y9SLKZJpj2CwCD1UIbciRA/21RqMgTzzZxDo09fMMfe+nneOvYyJirtlBoJfmX9Xr56cCcAv3nW/dw+vY3R0V6SHQ2NCDVi/IoNkeDtOx/iHx+4BBEInAWJ2x/xjkvu54Z9F5LalyQzGePmJZWL60QNk8whm/PevJ998/2syy/y6OPraV9TZHPnHIeWurlr+1d5y8HrODnTgTnhYNYFb37L/TQii3smN1AsplnVt8QlPce4dWwrV43sx2q62NRjmzajweOlYfY9sAF7Uxnjvjasmi5/OkXFzX/xcVwleNfBX2XmYA9vuexhJhvtPPjseto7q4SxZCBXps1p0OXUOFjs5aKuMb53bBvv2PQIB6r9rEst8Irs07x0ZPQFq08nBofVqvf//gv5Kkf+x+//t1K1vg14B/DXzedbT/n8t4QQ30YnJ0s/M/9wSlvJztP0UQDW1gimMyB0Ik/JZgwuResZYHvHBPF5glXpAruf3UY9A4lFaCykSC7fiWoGURO+ixDNUqnOL8hQ8ZJzDjHmdXN+7gTvPvcBvl86m5sWziX0bPx2xeNjq1A1EytsOim5BiemOhGGwqxKDowNkAtgdjIPhmKtUDqfobSBMKop/CL08yfmXs7bOnfzwe77WiK4J4NOPrLxe9zafS5zXpalMIOVDoiSlq7Dp0MQJo1zGkSewc3PbEeFUgvMelombn62DdsV+BVtvluYasOoSerLTlnhKWVDpVdeyzkHZiQyoiU6s893iZWgGCfZcu44lSjJVJDn+jV38eeNq1iabF+R5XO1CvY/PnkhRm2FdGUVJF9/aidyzsZsLN9tFebRJHag8zCfHLyLu/KDvCI1wdu8t/K/1t7MmVbE1FDE2w6/lZpvI81YVza2Vfjm3p0IJ9J6lTWDE2EXJya6IBR8s9DMiy+vbQUQCtIlgX84R7rpQiYD/fwn46/naLGLrZ3TXH75Eb75xAXgGdjzBqVaG8pQHF5KrSApA4PjYz384SV3MmgVqEQJeq0Sv/HkrwIfenFX0mmeg3ghZc5voROSXUKICeD/QE8MNwoh3gOcAK5pfv0OdInzKLrM+a4X1Rk3RgTaeVl4kS57T6cw60p/FoLVULghGG6k3aFDfafoMGscPdHLXEdGJxobeuKQjaYYapOjYdQ1XFn6EbGla+PSjyC2eGxqmLDP4J29D/Cs18+ThSHwDIyGwC4I6glTMxwDEIE+0eOGiZIKpy4Ia1rTQHhST2RNBKgIVZNPoZrsyBjpw8l6nh/YW/n1/CM86w3QZ5YYC7qZC3I8tjBMsZbksvwh4li7c/u1psGsLxDjCaSjiBP6opS+VsaODRANQ4dmTayAUZVNCX/NrZChhkwbgV5Wq0g0GaPLqlUwUWlnn++yzU7wmOez3x1GipjjbhdHKj08aQ9RazjaKq9pEbAcCsTPE04xPEFQsTDc5jEJVZMpq637DFdxc3Ut12aPU4kVE0vtTK3KMxXCrsQss5UMbsPGMGJUBP5MChkJlC9btneqrkFkylDIetPZrPleh2dakUp6GoAmoxVrxtFSJ8VKkmdkL0G7RFRMUJqDoixJbCniUHMi4qA53p5g0stzsDbAvRPr+N3NP26ZML+YdrqXOX9mDkIp9TalVL9SylJKDSmlvqyUWlRKvVwptUEp9Qql1FLzu0op9QGl1Dql1Fal1KMvqjOhagFhWiK23d6KwnUT1bfs6yiX5e2V4pHCGs5aO8nOgeNEtk4atdSRlxWv/eZJEgiIdWVARjqhKSPFa0eeYbqe447S2exMjnJ592GWxWu9DoXwtTaCDJrqx03pfRE078q+PvmEL5C+tvxblqhfTrrqZ/1+rpYBwADenDnIVJDnydIQr8nu45eGH+eqtft5oLiByDNWHKuFQlkKc10V1eFrsdWmNL30m9tvyvYLX7b6abS+o/veAl9FK/0RLYl/KDUSxErwmOezw7GZDXL8cvYQ1+UfRoqYrdlJUgm/Ob7aP7OlKr485s1xEqf2qUl+k6fcwWUIEZJvlNfxuN/FK0eeZVdilm6jjCMkbsMmDAz8uoUyoXNtoTX2y8d0ZQwkIjjltz7vd59qG7DszwkQuhZhZHBV55Mr34+aN4JTtieWtx8I3tD2BF5sEseCZxv9qMZpAUz+hbbT6heFSYlyDCJHYti6a3HV0rZzCUmY0d8J0oIoock8GBphdWH+OF955iIanRZKglXRWfB40CWoJRGRIGoLicyYqGARO6YWpHVk6/XuuRF+b+0PsUTIjcXzmfVyYMcoaWA2ILmxSHExg1qwtLtzW0R7fxnTiCm4HSTXVAgn23BWVTCMmNhJEKZ0390OfRG5HYL0tH7/gZGHeGPmCN8obeO428kHu+/hJanD/Lh2Bg8V1jJTy/GxjTex5+QqYsPCynqEroVSAm86hbIV3esXqTYcGuUEoScRcVNgNsxBu0+QThANuwR1EyMd4tZMnCWLyNEQ5mWj2nqvwi7paoWIBe9av5dinGS/O8wtpRwf6dnP70xdihSK3x26m4QIuCO5hdKgi4qFNuxumIhI0DOyyNxoZ/PCknhdMR0bllgYb8eqmgTNY1gfjLWkHIJ19ix3lrYxYBXYO7+Kz1gX8Kbc4/zt4g5ev3E/+4qDTBba9MzSkgAAIABJREFU8IoWC9Nt5DYWMWRMreHglx2S+QaOFVJr2CQTgUaqCkUYSywjotZw8NwMXk+EVdHnVpjWk8a1q55gf36QpBHwydFXkF5fwg9M6mYalQ+QdoRthyglSDo+fmiiFHx5/qXszB1j2+YJ7c1xxklOvtiT/jRfQZxWE4RZi5FuiNmIWkK1pwrY2iXrOcK0dtVoSdXdNrn1OYK2jX4tZmucTGjR17LCXDS1r0QgkI0QU2jJctnQuo//c8Ot/PmhN9GeaPCJtTdxPMzzY/9MlKnwsjHh0fafEpkt19tRBqRnJW6Uo62saIxm8aVCuo1muBOTXIix6jHJBe1QnlyI+dzhlzI3kuMVmQN8IH+Iv164gLunN3PzWf/IazJPU4od/nz0TQRlB2kqgpqtVb6l4sxt40xXsiw924mIBHZztRSbCq+uBWZ9aWOXITqewPAEYdLErgvsihbVWeZWKClIT2mcg1XTq4uvHtzJlnPHkSLmDzof4XemLuXvBvZSjV1+7cRreXP3Y0ihRX6VsexHovkPi7VubFePs10GI5AUwk6SRdESnY1NQeakDvGcouKB6iam3Tb2mav40IbbONcp8rSf5crck1zzwG8Q+4amvgOXbX2WB+/ZQmzqVZnjQ1DIEjRDika4rBWg8TWNZiUgNS8wGiZ2WWE1NDjKripuHt/OzEQH2e4qn972Ld5z4/sQQHpeEBQdjcZsIn3LloJYYx/+5Ly7+OOTb+SZ2T7O7J3h6adXv7gT/nkUg9OxnR5cjOXWNF491aHZNqPW5zKgdTJq+3elQVRSEEQG/VaRQBkadNW0zBPxSrnOrOs42azr/2eZ1yD1RdFnVIliSdHV5cz5MKdh12r5+80JpblUNRvNpXVAsxzbXE6H6Duj0ESsVrm02Y9ljwuAlPQpxikCFeHFJmEsyQiLrIwZMrU4ybJ/Rut1IOlwarQnNQag5c8Q6j6JSOtcmlWJ4TVj8GYpDtXUmVguozY5LP8W9r8SJTnudnEiNJBCUY1dMjKBRJGTLlnLQ8Ra7UpE+qJpardo7YiGBn+JJslRxMuy/c3QDn1sALzY5GQlz4zXxqBZxmjClsfDphpxLHQ+yRN0WLVWH0Ws8wrL479M81Y0z5G4GZlFWitk2SlNhxj62TE0olQpQayk/rtgJZErQrEc3bXGEgEpocVylRKU/CTq55W9/+/MxfjPbK0QI2FgeLprCxPt5CNFlJS4XZBckLidgvSsgdcmWyHGULbI3+y7gqHOItKH5LhmfIZrXFw/SWwI3OEAzBi/GWKEKZMoaSC9iCBj8hvPXsfnz/oGn5+7nL84+QbydgNlKEQkceYMkmcXKC5miJohht91SoghOkiMVPDm2jA3llshRqNTYNUM6j16Lq73SJLz+v0fbb6bYWuRT46/ii81fTY+sflG/mTmYqYabczUcrx64BnGprqg6mAkQyJlopA8sPcMHWJsXgkxOCXEqBs54h4P6ScIRxr4zRDDr5nYZQunbOBnZCvEqA3ynBDjN8+6n6kgz5FKDx+uXsnvDt3Nr514LRLFP43cw5dLfUxVc4RrdIjBvxNiRM5zQwzDN5Ghgdsuqa7SIUZqWrAuMce9aj1p0+PXDv4K69oWuaT9CHfMb+XaLY+xd2k1o9NdxPMONz++g9yZKyFG4wWGGLU4g9cTIn2TqCbx27SH63uH9/BIbi1ebPKBJ99GalMRPzCpTvx0iJE5JcR439jVXJA/zut7nuKh0nqyW9wXFWK0Jp3TuJ1WE8SygIaeqfXIdQ0V8Z/t0ncHV3/HbD4b3sro+rHJ1RufJG/V+HJyEK8rIjVuohadpmWdwiiaIBRWRTapzLGWs2veVd87ci9fXngpBT/JdX2PUIkT/Ng4g9hRhG0x3my2qXikE4Jx2aBIDgxFoiKpzaVpd6E6m0ZJRa8K9ZI91GVO2XwWzXLnLXPn8MnV3+OyrkOssReQxNywcDHv6nqAxTjNYpjhh4Uztb29qZrhBSAUq8+YZamWYn66DULZursKoC7TJKoC37CxauAtOFgNQVQ3MF0NZRbLidNY3zmdooZPC6XzErdPb+P6NXfxpD3E1uwkCRHw5u7HyEmXL5f6eE/bDD9qX2DhaGfrzmp6evUyO57HLkpkKLCqgJQsTLVhFTRk2vAVhqdwFpvKXQ1Fu1HHbQquvHFoH71WiUuToxxze7h7cjM11yaumRgxbN04ztP7V6PsGOFLzKqkEaZooO/2ZTPROp+EEiihEKEgUxSgTExXrWh8erC7tI49k6sY6VzitSPPcNOe85GuxFmS+KGtw5ZEjFAC105olnEouGjjHkphknrcTcFPsm/i3wQN/+xz/hfUhBCvRpMlDeBLSqm//ne+dzVwE3D+zyoknFYTxNx5EkSGzLEqsuYSAevyCzzZ0cn82RYdz0Y4xQCnZGAvuVgVAxp6md2dqBEog6P1HqIEZPqr0A89N+Uw3QizHpNc1OGH2QgxSw1QCtM2dWm17rO7vJ7j1Q7Gi+08lFrP08UBCJslxD6X/B1pPbH4MUagCB0BQqIEmF5EeFSSXAhILhggBFahQZsXYTQCzJqNiBUpKTBqAe1exIGZfv468QqOlbvoTlZJGgH3HV9HrCQFP4kUirFiJ6JsYVYFgWEjY10etNdHnNE9y9h3N+mwK1yp7kS2xKpFxJbALvkk501MN9aaBbFWgrKKLlbF0qVAqYlXxDpkE5Fi9Ixe/rxxFbWGw9OJfu5IbkEKRdbymKrm+FH7Av80cg87P7updRc0fE2Jjk0Do8kfsaoRYdLAGzUwvZjkvI/0IpyiRWZaIv0YpOCPHrmauGLxncK5tLXVcayQL8pLmFvKoaYSSF+QrOswZqLUxsA9EKRMZKgwvRg/bWi5QQHNf3SVphlrKAGJJU87xYcxhhcTpk3MWsi9z27EPmlzoD9FY8Si936J1VBIPyRM6rAydPQKUBlmqyr15a5dRLPJVi7BWXjx3py/qBWEEMIAPgO8Ek1x2CuEuE0p9czzvpcFPgg88oK2+0KQlP9vt2zbkLp41TuJDhwC4PBnL6DzMYP2UX1AraIHe/aTvLeXgzO99LZXKP6gH7dTYZcFTkHR6BG0HY2p90nyhwPSB+cBeOmtB3Bjix9Mb2Zn93EGnSIPF0fY/8NNuD0hRkNi1AV+X0jbPovSdh/RMEjMGIRpRWpKJ9baj9Q58+8P8Pr2J5gJ2xnzunFji367SFp6LIUZ2ow6Xxy7hOtW7yUlPf7X3VeRHymwNJ9jYGCJumfjhwbe8Sy9Z82xUMpoGPaSVoz2OiLsvjrRaAarJrAqGv2ZOmqTXFDUe5pxfgRdT3koU7D6w4fYmpnkXW1P8+NGH8VIc1Um/A4KYYpH5lbzP5rS9I4M6DNL/OWBK6kupsh26TzG5Fw7nR2aWJa1PbzIZLaUpbGQauJIBPGgi3EygYh12KYWHXr2wMMf/zzHgipZKbi5spF2o85jtTU4MiRruHx7dAeXDh3leLWTdw48yB9951cJukLWr5uhHlhc0jvKvdPrmZ1uxyiYRLmIzFELt0sRtofIqoE1VMOfTWGVJMk5QWo25oI/epRSkOTjg3dyR201r0+f5FePXc3n136H94+9hYrv0JnQGhVuZLGrc5Sv3Hcpl573DKaIeXqpj+Fskf3TA8Sx0GHS8RTZMRi+bpQ1mUXWJeZ5VeYZZqI0NhHfKZzPmsQir8o8w3sPXcfU4/1EQy6xayDsGCEVx6/78xeMeEz2D6uRd78wJOXBv/qPkZRCiIuAv1RKvar5/k8BlFIffd73/ha4G7ge+MOftYI4fZKUp5j3WiVDg3iatWrRVJRal5nHX0qwUEnrrHkMVllDhYFWTVuEqoWPKIVJAmUwX8ywK3sURwYsummsSlMROx0jI4FwIj2bLy/nFTpLvoyHjxWNyOKY38saa55ISUaceU56nVgiYiHIcNLvZKmcIlAG3WYZu2CwrXsao2DS8Fc0H6Wvk6pRaMCp+H0D4ibPQUn0jTCQyzfEVmJTSZBRjAgVtdDmpNdBhGJPbS2vTR/lsNuHIWK2piYo1xMtaXpLRATKQAiFUbBwGzZBLFFKEMUCPzRxQ4s22yXwzRbwSJkKFWt9BhGDaiZrhaJF8JqJDJ6uDbHVmWK8keft+YcZspeouzZLfopGaLHGXAQJRsXQ2hyRwZFKN3Xfgki0sB6xgU46xjrRGwY6t6HMFd2QJT/Fopfm3kY/D5Y3cCS0qAU2CSEoewkagUXBS1ELHMpegmP1bgD6nRJDiQJKCbKmR+CbhIFB6But5GPJT3CylmeDM8NedxW3F8/hWNDDeCNPPbZ5qDGi3doVxIHU/QRi7xRRkxfYfoFkrZ9JlBRCnAsMK6W+/0L7d/pMEKdQZaNhlyDVFE2RtKjb4408W888yUtWHSPIaDmx2pBCmWi1IENns1uCMULgxSaXZA7zpk37eLi6jm6zzOU9h6n3KYwNVYSv79yGGa9kxn19ARg+rc+W1bV3JkexRMTl2WfIGg282GQqaOfq9kdZZS/ypk372JSYIlAmnFHhwGIfvWfNEcaSjd3zhKFBOOCRsgJt9rpc0Yg1IEeXOHQlhBiQaoW0RvOEaULMlQSzOREkhMFvdjzAI14fI848l6QPU48drlq7nyuz+7mmfQ87Esc5PzFOwgrp2zrLtqFJtnVO0d9TJI4lnakaKcunEjhIQ4/HMhBK52nQ/Tsls56VooW4fG/3vdSUSZdd48bSDtqNGi9fe5hru/dgyBhLxMSmom3jEme0zaKUYEN2viWXZ7gCItGqhIDOKUipf7z09P8JpbVBVqUK9JlF3t71IFkRkLU9ngnS5BwXU8aYIqYzUUMKxYW5UZQVM1rvwhIRWzunGUktcN6aE0ipkKZqjW9vqsLmrKaHvyp1kkGnQFY22Nk+Rt6s0W2WyTi+DhGkvpmoSCDMn6Nm+cKrGF3L7Ofm470vZjdCCAl8EviDF/N3p8UEIRQQRs/5TEYaAm14Gn4NMFbsJGe55Ez3OXfTZVSl6cZaW8GLIYogijhW7eYZd5BVziL7CoMcdvvpt7Q8W9LxMeoSDIgCieE3jXMinYQkbpbGAoUMIkYrXdRji+8VdzDq9xAryclansdKq5mJcox53ZyRnGImaGdPbS1JJ2B+to3uZI1qOUnJT+BXbQwrptRIEFatljnNMqowaFgtCLIMQNaMFvrPbGpH6LHRcfRYuYNSlOKm6iqGzCTfmNlJPXaYi7IAnJXSyto1ZWtHqMZaStUkA5kSbmQxXsuTtT3KlSReZLJQTzNdzOFX7Ba3QkQrFQrD06+1VL/i5spGvjB/aWuS+MbiLo7XOvjO6Dnsrm5ge+YkkZJMltr42tIulAEdqQYT9XaK5RSVMIFtRHrcVXNyjsF0BbKuk5hBxdZGSc2LRQaK45VOFvw0+91hzrRc/qW6lblahm8v7mSmmmW+lGGi2MaSl9IrTqFACQ7M9XHP/Ebm3QwnGp2sTi0RViyiJhRcBrDopomQfH7yMmYjyUKQ5Yels3Bji33VYZ5uDLNYTWG4mk0sXAM8A34ub84X+ICFZfZz8/GF521tEhg+5f1Q87PllgW2AD8RQhwHdgK3CSH+w3DotJgggFbVAkAt2a2KxXKoANCdrvLE9CB7F1Zj1nStvZV9b9b4l3UFl1vRS7LaXuD2mW1s75gA4N7iRuySoDCbQxlgLUlUJFfwAqfQmltgFqXwQpPvFM7nd7t2s8GeYTzoYLqWI234BMpktNbFTTM7WAizDNkFitM5hgcXOTDZj2oYmu4cCuK5BHVXg56WxVWXac3LmIef1oOkSbtmhQKvFH5o8HBxhF3JMf5s9jw+u+ZWfrK4kXXWPEthmu/Onss3ixdqGLe7ivMTJ7DtkCdODlMLbIbTBY7NdKMiwXQhR92zscyo2Y9lWvcKCEqP0crrdqPO+7p/gqsMfmfqfP5uYC8L9TRfPPsGfqfzYW6ePof5MEcYST7SuwezLhid6mIgVSKOBPsWB9g/06+3dyq1+9R9Lo9RtHJ8q4HNeKWdR8predfom8hKl7pvsSNznIZvEUeSMDQoukl83+SHi2cgXclwe5HfHL6XoVSRoUSBH09ubG5/5TfNVTLsWVjNV9fewt21M7j9+BYcGbKnsIak4fNEeZjAN1eo6NHKsXux7RdI994LbBBCjAghbOCtaPJk8/JSJaVUl1JqjVJqDfAw8Ib/PlWMU0IMZ8lAhk2Ei7Gi1DNRasM/mmNqlUkm0HeExKJqQrH1sjtKiufI1/3q8MP82RNvxC87yPWKc/PjjFfz2CWIp03ClMKqSqIlk8gW2MNV3GKCaEESZGMiWxLZun9f3fyPfGHpEl62971EkWQgX+KjG2/BVwYfO/4aPr3+27z2Bx/kLS99DF+ZZEZNxunGnjcYOH+WsScHGThrjuJ9fbRvrrJ6aJyHj40gQkcjHbMRWzeOc6C2RpcJfcHAlhkWF/qJEuB1ajh0C0hmCG45+yuMBjk+Ov1qKoHDaybfxfUb7+bdT72DwbYSB4/38+qdB7hjaSv9iTJP14aoTWZx5gwmJpJMqAGiVMybdu1l78Jqrug/yJyfJT9S5x+fvJC4YiF8jW1YrOk4vmdkkdnxPLFp8FhtDd9bOIcuu8bxWgc7n3wLD2+/ibN2vxMhoLaY4iu+w23n/QPXHr1aT8hjCe4snc3vXX4nKenx6cOXEQ/X8GZTyLxPsJCkMRBi5V38YoLfvuSHfPrRy4nnbG2kYwnu2PJNToSCf61s5bFwFZaI+OftX+ZLi5fw3XO/SD02GTBDIqWIgKnI4dqDa7mm/1Guv/ttyIYg6ggxlkze9vKH6LKqfPrHrySxKPni2TdgoHjTwV/m8t7DvH7N02xJTrAzc4xOo8pkOs/vD9zFtZX3c9bGCSZLbXRlaryi51n+7MWe97+gGoFSKhRC/BZwF7rM+RWl1AEhxIeBR5VSt/3HW/i32+kxQSwrQDWbXWoyH4NYh96h/r+LBo5z/6Pn4C4mWnVsu6zwc3rpa/jaAVuGcUs05sap8zirf5qnJtfx9oHdPFDeyMR8nnxFQ4z9zliXBnORZh2eSCOsJhKxITA8XbcXYcx7Dv0KPakKf7X1Fm6Y2cX57Sf4y2Nv4PyuE0ih+K2jb0XWDX5c2Mz27ARWRfGaHfu4/8ZzmZ7Jo7IR0zN5UjHMLrYxfbQbs6odmmSgmab7Dw2TmtULO8NTTD/ZR9LT9frEvFhRa440JPNNT72bhBXy2yP38PHDr+Tec27gVU//Mlt7prmwbYyDzw7x3alz8WODdqtB0vAR7T7WmJamNztdVMHh1mfPRim4oXABffkKE0d7MGq6HzKAudFObFev2uZGO7GLEiOIcWTIh4du58bSDu6fXMsXz76Bs3a/kwMXfZOPL63js/e9nCAyuHLP+/jUOd/mg411Gn9wVpVPPXU5UsYEVRujaGJEgihyMDxITpoE5TRWBJ++55VYRQ0CMzx9brziyXdQ9yyG80VOLHYwkCzxsaeu4M+238nrHvyAlsI3I6RUhIFJMuVhLpnsLq/j6ov2cOuhbWwbnOLJp9by7fsv0gCzWY08vW73r2NaER/dfgtfmnwJh2e6OTzUw4HZPrb2TTNbz3J8oovkCYuD9dWICIrJHGNPDAL/+qJO/V8kUEopdQeaUX3qZ//z3/nuZS9km6dHiNEMDZZbeUNImNAyb6eGDHtnVpHbNce2rce1BFlaUdwgT2FJNmGw0UoVY6aS5e39u3nFJU9x46wOt6498zEqqwW1C+tYRYnXqbevKcCnMBDDZi6gub3FWoqs6dFnlvirVbeyEGRYqid5fGmY61ffSdIMeONL9jCSWmS00U3xIo+7j2zGfukClCzO2DAJJYvamlCrWQdCQ3pbTEqhcRfLVOTnMUBF1KzstBivimo9QZvj0m7UedXQszzkZsnaHn87/H0O1fu47qLdbO+Y4E9H7mDQKfJL+T1IqUi8bJ4zt5zkivXPYnW4RBULKfWqbHK+XfftlHFYZjCKUPdbhhovkTVc9rqrOCd1nNeveZo1po8QtDQu37JzLx/dfDO+azJolglTCrGzyOWrjhKVbbrbqyTb3eb2VtiWy8dSBqK1P31c9Di4galNnmXMOQMTOFLjuY+6Wv0wbpgENZukExA1DLb2TBM7igcn1jLoFLjuzL0MJMsMbZw7ZR/6WEsjZiBfYsAssLNjDCkVpogZzheJldChYvN8Ec2/FYEGhv085/7pDLU+TSYI1SJdAZobEYFwQ2QjAF+ntYtjeS7oOYEpI52Y9AWxreN0u6QwayFOWWE0AghDCEPKM1kerGzgbZ2P8MQzIzyxONjiayQSAc6SIMhFyJqBXYm1yvSCxCkpnCWwKzFWNUa4AdWZDPNehg+feAN73VU8WRiiMp1l9FgvdeVwstjOH/fcz/7SAD8ZX8/IwAL20yku6jtBYkGyUE+TWJBk+yrEZQtnUeIUtKqRU9SCtc68id18b1f0Z3ZJE5ycUoxTVjglhWgEyEZAMJuk6jt84sQVtJkNPvjEWyl5CR732nlwaoQPdT9FSvrkpMtCkOG20rnEswneuvoxTBFzqNxDOuljzxtEgSQoOsiphB6DJdFS3XYWJHZRE6ucBYldAKsa8e3RHXz4ydfx/cJ2VjmLvP3INdQWU3z2vpdz/cw5fLzvCc60SohZh+vHrsbwYNfgGIfKPdgLBqV6EscKV/a1KLFLCqegVva9KPVzAZyywqxFVGczVGsJjsx2kzZ9vj92FsFSgm89fR5RwcFaMLFnLEqlFNa8RbvdwKgLgoM5vnLkIo7Vu3h0fpg1uUW9/SV9HOxqjF/VviW/d+haZrw2vLLDnuNr8CKTfVMDjM12YixZp/RRkGiO14tpLzT/8P95Zy2EAGulKzIdECYSqISJMiVGM8Qwe+tkDI+hVJFDKYiSCiW1kKoyBGHaJEgKoqSF0XTWyvVVuDh7BClicn0VdvWMMWQXiJKKnONTblNgKmInJEhZWvchAD8jiJIQpJp8hYRF+0CZHe0n6bIqnJ84ySNta5ntz5B2fC50ZtjeO0ktVlzeeZjuRJXjlU4aAxGmjHC7Ys7MFXi8q5M2obA6XNwwiVXSIqyGD2EKvO4Qq2ZqUlOodS2sGoSuxGvTS2ChQCUtlCFIDVXZ1jHF+tQsa+wFdg2PESPYahcYyS+yGDc4Lz3KNjtiJnuENeYi3+o6j0AZDKWKmDLi8XCYYk9Irq1BmJG4WRs3bWMVmq5RIXhdMUag3a+8rhikJEwaXDp0lCU/xevyTxIpyS/1P8ZXfIcgMnh12z6mwyr9ZgY52OC6gUf4S2c1AJtycxzt62VT5yKN0OJERx6zqleFUQG8vCDIKsy6wO2LUKY29Q0dTfXvGirSkdTOV0OJAhcPxeyWa1jVXuRkpp1qNokQiqGeIhPk2Zia4c5MjOjw2dU3wbrUPIZQpA2fRp820ZChxK5IevuXWJtdYEt6im6zzH1da1mbX2JVeon+VJklL8Wo6MKbT+N2x60b1c/V/utxiv9hOy0mCGUIVMJuvU88k8R0Y6K0RWxqaCxAMhFwyy2X4A4GdJS0+nNuNCZMCmo94M8ZeB2CMGNhNyecN488xe8/eC1ywWL9ueMUgxS3H91C7hh4092EgzHZZzVyz8sL5NoKXimB4Vv47TFmXaIMSTJl8+mtX+Uz0y/nmyfP53+7VzDQX+DXNzxESnpc8dh7+T+33MYV/3w9b37lbvqcMnu/uh11dsSPv3kByYtL7P/JBtrPXiK8txNrV4nt5x7lsbFVxFMJTf7qjti4YYoj4SB2UV+MPdtnKFT7EDHU+xV2RVdWwrSeIH5y/ue4ubqB70ztoNhI4oUGV64+wCX3/jaDPUUuuukPeONL9/BXR9cwkluiGjiw6PCtL74SLw8oCHIxV13+KPdOrGfX0HEakcWG9Bxff2onQTNJ2bFhiULYCaCJV1NteKMGx6udNEKLz4y/jMlSG2Ekue28f+DKPe/jvQ+9HTHrIAcbHL7061yy780YruChG8/B7VF86A3f4d7iZu6fWodcW8WdTSE7fNxqksZQiNXu0Sg5/PFLv8/HHnk15pyNiAVWw+DLW26gW4ZcP3Elt53cwmUDR/nhji/xWyfewN7zbyBQEYGKmYoE2TMi7qhuAgnvPfsBvviDl/NwWeL2hSRmTH7t6h8xYBf48F1vxqoI7tz6db5X3cBnDl3KGd2zrO9Y4MzcDBsT0wzmC9xZ2sZX1/8zu0q/zxmbJjhZyNOdrfKO4d285/de3Ln//5O1XkhTQLSSpKyvCUjNmDreFErnFIB1HQtMXBiyOlln6vBqIltRXitJzinMmkZSmjWdUFwuje5eHOGzl3yDL02/hJH0ImsSC3jDBnsGz8Jf5SEKFo0eRTTgYY46BFNpTWiqA0pi1pV23w5jPjb+Wi7IH+dvL/kXjgRJHqmv57uT57AlP83fb/s2txe3c86uw6xyFklLj8IFPmuH55nuytEoJTnrJcc5MDoI60MyUrH38AhGwcSq6BWEMg0Oj/WRWNB3S6uqmD7aTbYKZh0SSwLp6ThZT5qSXzlyDeuzC3xh/bf4Zuk8rmt7lD+deANfvfir3FnaxtF0mU2pGV65/gDlOMFlySleXXo33rDJSEeBjbk5fjC2mTuOnEkiEbB/sR9Txuw+NoKcs5vYAMHCeDvJoi5BLoy3YxU0t+KdAw+yxlzEEjFfW9rFR3r3cO3Rq/nUOd9m0Cxz/djVXDfwCJfsezMPbLuZTXvfh7ejzus2HuBjB17Fuq5FspkGxWMd2CVJEDg4JVCWid+Q2DXBxx+7AmvGxipr2Lvpxnx4/EoAehJV1uUXOT8zxjUHr+OtQ3t57cGrKTYSWEZMR7LOdDnHpUNHEaFgf2WQj73+n7i3vIlBp8jtk1v50hMXA5CYk1h1xXWH30reqbP7vK9zS62fvz3yci7MH+fhyno2pmY+yF1qAAAgAElEQVQoBimu2v8ukpMmB8Ugsm5wPJnmQyffADz04s/907idFlyMtkSf2rHrgxg/0S598795EYUdIWf+1RwqlUDUXcKxExz/yEVYFYHbpbjqZY8w72c49skzAIhsQW60QaM/QeZYGTGl0XmH/2h9k7UIkQ1RNgKp6LvHoNYvmwYt4GcFHYdCSiOaJp6ZinHbBdnJCLMe4ZwscOTXe4lthVnTsODY0tqKytDbiBMKqyDxBwJEwyC/TxIm9XeXYbw0EZpeu67CmHX0BBQ0l9VpSE81GZ/VmOqAQWIxxilGBBmtp6kEtB0ogBAcva6DKKk1IZWpkJ7Qzuc09+VpK7ll8VajIUlNLft96ERbbOrXyoDYRkvTN/QDdGIwTOuL03Ch0SOwqoqOZ11OvCoBEmJTl5vNuoZkGw1BmNKsycjRKEklFYfe8znO/vj7iWy9Tz+vtHt2VR+j2ILUbEzoCMK0ToSGKb0/EYNTjEnN+Jx4rWZsCi0nuqK1YejQzPBEc3WksKoCryPm0bd8kks+94caBCf0724lRBUkFhXJhZCZnSZRQrueBVmF4QqtS9kcG62BIUhPKPx2jd6NbV1p2v+pF64+neodVhuufWFcjH1//99L1foX2oKs1QojANquniL6l0Em3jDI4A8XW5/7XRHvvuoe5vwsd353J1FC0fmeWRb29tL/sE5y2qXnWrArS/GKy55ke+Yk//t7V9E2WGR79xQXvmSUQ/U+br/rQsS6GlFoYD4uSc1KZKTVqK0qmPUIw20auIbQtrmAEIqL+8f418NnYR5KoQy46vW7uenpc3jfZfdww7ELKUznuOnPPsGr/ul6PnfNF/j17/8av/zSh7jxjkvoPneW4nSevrut5smmmZimq41brHqM9BWGH5OWWmnLLgfIyOT/Zu+9oyW7yjPv3977pMq3buy+93ZutdRqtQJSKyMkECIpGBDJxgGbZQyOfE7LHns8DowX9jdgbMxgDDbGxnhgYIiyCAIklBPdCt3qnG++t3LViXt/f+y61S2bZSTPeKE1H3utWrfuqapzTp3a+z1veN7n4SyyFbALMlsforyUbROLPLVnAyanuX7nM9xz/w7e+Kp7eWBpE+dWFnhobj3D+R5j17T5k3VfYilzWdZ5fv3p2+nuHibeEGF6Dk5TMXTI9Cso9nhJTuK1dZ9n03ZOyigjGU1RLUVl2wrD+R5HZkZxjwbW+F3c4OqpowDc/+lLiC7tctGfvos9v/4hPtZYw3s//1rEui5mc0b+M0WcSJP6ktxiQppXpB2JijVpYFGuKtS4rRTVjXE6OeKKAdcgp3qkywHBrCILDCoWeA177mkBgkVDsj3kJe//NYQLF71uL78/9WVue+wdjBQ7RH+7BpnZpKvbTACHLK/plA3+cA+eLJH5kI4myIaDigWqAcWZhKjroBJD5opBL9BzHj/gBORzGS8IA2EcayRWOYFHgg4LeUgLBp33kH2MxM7tJ+hqj6IT9bUQoeKHzBUMUUUhI4ek5KB6Hq5nYa/BuhY3DT3FU71pRi5eYNfYCVKjOBaOIoUhnYzJORljlTZJeZSwaktqTp+SzDhgHIFqeqSTMeePznNF5SjDTpulDUUeaJ6DU47ZnpthbGQrR3pjbBtZpFbocH+4gXW7TnMsHqO4vslrK4/xybWXk2nJ6FiLsDqKyIyFLSeGJG8NhHYsjFnFknBI4imLf0iKfe6K1OA0XZBWc2JkqMN1aw/RTHMELzrEU3NrOb84wxPnrOVIZ5SpQp0xr8WFY7OcX5zh5uKTfKO7mZsLR8nrJpVcSG1tSrXaIS45pMOS8HipTxRsy3+rqlMyM4RDNlnq1122bplDG8H2yjynukO84rx93Nm4CLWjzfXTh9nfHOfc8gLhuOE1257mG7svH/BJvGcyYqTUw1EZYbWE01NkATiRJbNJ8gIVKdK89UAcv18lkBCOaUwhReUy/CChsrFHLRxGresSzeT7re2CtJIRjihcLyXNQbS9x59Of5kjaZ5dkyeY7ZZpDEtkYtDKMmPHQxrja7ZvPU0vdTlRLaDW9vCVhlJE1PFAe8RlRVgVNpHr0efXfL6T///AAvoPHC8IAwFwtjDyY3s3UelAUuLZ9HMy5e/vvhY1GpFrCCJp2Ld/GikhKgtyS4K4KMnNn9nXu7bfw28+/jqSxRznX3ACbSR3HdlGvByAYxibqrN4vEo6ohjOSVobwe0IcvOQlM5AfAE+dO0/8A8LV/HBp15CEjqsnajzY1c+QF7G/MlTN/FL53+L//eOW7j6mr2sL9b4z195A+sumOM9d93GO17yTX704bfzlosf4X98+2quu+ppvn1xBW/OIVi2nBPxEHTXWS5NtwVuW7Cy0zD8lEBmku6YFdMVGvKnLaLyc6/+c77cuoivnN5BO/TJMsk1647yoYduYGi0zSP3nceua57hfx66mOmhBs/UxvlY62qyI0V+f9yWj918zF/d8HG+WHsRl5WO0spyfCC9AedQzvaFJNCd0pZDEkF7vcZflhRnJWHikmSKh+Y3UG/meTKb5N033MkH9tzAVx67CG9JcWjNBL9/62d479OvAAnv/fxrec9kxJGX/w2/MnsZzzQmOLwR/Jp16UWq6I3b525LkF7cRu4t4tWtkRKZ4c3X3c+WYIG/O3EVM0tDrJus8/M3f5uPHruW23bcR6Idpr1lnulNsiVY4K6V7Tx6sMRvX/rPXH3XLyPrLmYkxjnto6/popTGe7SITA0//pJ7ebIxye4j6xkabjN0zgoTxTZFN6LqdTneHmbHhbPc2bqS7voUp6XI8hpntAcffZ7T/gXOSfmCMBDWzT5zpUanGoQHR6kc6mtW9DESjtSsP2+eS0dOcMf+K0nKGlxteU4ShYoyZObYz2R2VW/xFrhi/THqayxPwuWlw4yd1+LjD1zLug1LrC/VaLRzrB+t0U1zg85FFVsApxy0nGfsDae4cXgvK1GeohvhCM1lhaMsp0Vu2vQMLy0c4B93znPzyB6ORuPcPdlluZNn7dZFfJkwVmlTT/N40x3ePn433062Wzr6pH+cfk+AjDnj3q/Sug/AU/2uwzhFSMmn6ldwSf44107k8GXKXbPbeM3wHmrbctSiPMHOhNePPca6fA2FJjGKL7cvIDi3QeCmaAMXjs3y1cZOyv2kw4RbJ+s5eIkY8HmK1MbaMusDyFLbMHbtxBEOtsY4p7RIayLgieVJ8jJCSs3ExiUa4znOHVnm7vp5bBldZl+1jFjXZaTU41dmL+PP1j7KO7KrOJqstzX/zOqODmQFNMRdl1y6igmw4diWYIE9nXVcN3GIE+Uqa4Mm9zXO4ZyhRQ51x5ntVVifHyKnYu5vbOX1Y4/xQOUcHmtvpFAJ0aWI88bnOV6tsjJXIVOGoK+TcbgzxivHnuZYfZiXTR+gmQZoIwf6phdVT3OwNWavS2zL4GSCpH2mEvec5/4PPYjvP4y01PCrJ1PwYjp+3631FCru8yhgmCw0mA0rZL6lEcO1RsKJJGmgUJFB+84AB3FH/UKrSemG7F8ZZ09xPfuaa8DTtCOPRafIaKWNxCbBgqU+JZu2SatVvUjj2qaoi8unyLRECsOQ1+PPjt6IqzI2l5b484WXUvZDPrd4KcthgWI+oht6uAXNw/VN+E7K5aUj7K2s4fP1Sykec5CRFY6RKXh1e/d0W5Z1WcWG4gmJE9nOTbctzqh7ew5GCr41cw7uVMaT9Um2lRdohz4PtzfTigPC1MFXGY91NnK0M8KaoMmJzjBZKhkudXD7iMBxv8VsWOYD03fy9d5a7mmcR3G/bZhbPTewQCKA/Gw/BJOCu2e3Wj4HwFMZtU6ODx64nqTtUXPy+G5KL3X5zswWSsUeXl1gNmc4KuOZxgTvyK7ir6Yf4KKlS/ps24Kgbis0KrTHEXt93JbBaxv8umWqeu/uVzA50qAZ+vhuyp5oinYrwAtSkkSRdR2ecidRriZtejR2BPiLDg/MbLRzSRq0kRS8hPigi0jBX7ECTbvnpjhQG6NeL/BIsIGZlTJGSyaGm1YvRAu6K3nGZwwykaiwr+7N8zQQP2CU5HMZL4gqxqo2Z/SqXeRPNAmnSgMWqbPZpWauDZ7FGtUddRj7jlX2c/+29yy2Ke2CXzOsXJ6QO+pZbc5zM4xjcGuKjV/qkgUOWU7i1WLiqkfyi8vcOvUkC3GJshPydGstj+7Zirds+wD09va/YoByxkKk0mRHipj1PQoP52lf2kNI2PAxSWOzR3EmpbHRJbei6Q1Lqodials9XvIzD/8rhqqtwTwraZFvLp3LUrfAjZP7+eR3L8c77RFPJhBJZNhXs0oE3oa2VTdveoiofzcbi1AnApLhjMJRh845liXL5G1bdWWvonwiJS6vanNCc7PVH02K1lu5/NYned/UV/lcezMZki3ePPe2zyXSDluCBYZU19LExWdIb2yrPHjrOiTHC8jUoiOjYYPc3CaZKVA6IsnPa8KqoLXRQquDJcGe3/wQv7Owk7dVH+D23W/nndvu4UeKB/lmd5p/mrucuU6JhcUyzmnfJkYLKcrJSEIHmi6iGtu+i0jh+FZZHEBriZSaNHIIDvpEo5ryYYnTMcQVi1K94B1Pcaw1zLpijZWowIHZcdLIQc15pEMZOBoZZGDA8TKyVGE03H7Bd3lt5TFiFI92N/OpY5fx+Gv+63OvYoytM+e97rlVMb77kf8fVzFWh9tKIIpx2gmym6CB8kGHoJHhtBNUGOA3M6IhgdtOUeUzuhgTuSYHntzCqTU5RlYMbrffxFVzcDvgdA1kArdtF4XqJhglbQKymyCLLnN7x/mmey5vm76PT89fxpOnplAdidsU5JYMS6M53LYc6GLIWJA0fJCGfEPQWwysfF3dQyuD0w3BePbu37H1e7cjcNoJbsdl9/I0M70Kb514gN2NaXYNHefp7hS7a9McOjaBbDkE009BInHbgrTh9KnjBYVTgrgi6AYFRCJw+spa2oOs7vXv+n0eiSXXqlfFYkCF7/SyAUelUTbrb9vmrVv/xOJavlqd4k2lY/xDcwt3Ni5kNqxwolXlbrOVMHHQLRfVlWiXM3wNGqL5PCrrU9FrcNqCcD6P17DX3ok0Tk/h18SAwPd3FnbyR+NPciAR1E+XObFhhI8kZW4qPcn+hXGijod0NSoSeIddemsVSb93REWCTPtkoo+KrbuDnJZRxqoQ9rksnLZAhX3i3NDyfTx8ej1hz2NmpYLvJ5ZnUtrOWaEV2peYtmXYSjxjQ61QcnjjKO/r3MTuU1P88oXfYmm+/Lzm+w9ZrZ/nyPIOruuQBQ4ysjO8N24IlqW92wcW+pwFgjRQZL4Ax9J8FVVEbyolN9YlKZVJc3aGZOWUpGYl84yfkbigOgodOGjXohXtc4Ga7HLp8AlckXF+eY7GeI4j9TWkHYfQCNuKLF0wymaucwZVjm1HYsmBoZgsCKCcIJVB+1YyL/Mlac7CpdMcZIFDmoNzh+a5tHScEdVmZ3mGUafFtLeCKzIaYUC9kGPcbSJzKWneQZdSSCVGSrprJNozqGpEFivSnhXvNdJAOSHr+OBnZJ5DOpQhQ4nOZzac86VVKgtspt8oSAoAFochDJxfXebG/Cla2rDOW2bSrfGEs54ht0fBiQD4TO1FZI4CYSHQoq/PKasxWeYjE+t6pwWDHI4tCKouSX1pf8uS6euUCN5WfYADiWCbW8AbCdkWzHJxcAqFYf1wjQWvSC9yyXKGpGwwQwnC0ehY2XMopAilIZOYfHZm5QkQwqATRRZ4FsodWEOV5QRZDFtGl1noFBkKbA7mQDWH0YK0JUkrGtMPYwGUp9GZIMtJthSXuDB/kg35FcsyNdx9/pP+hwbiuQ9vsYdo9/CWHUQ3IgOSaoZMJE6tR+F0QH4uxigff6lnKeb6rNb/697LueWax5jpVTiclemtMZSPQPGQS37O4HY0ccnpi7yAqnURiY8KHVStiycFH9n1D7zt62/nU1zJ7Zc/wmUjJ5iZn0ZkEJfB25ezwKaeZZlyuop0IY+RUDhtCFsBhVlNkrfgIWd5hfyih78SUfQEbjPDiRTecpfinOJrj+1k9vwKXzQX8Za1D/PxU1dz6NAa3v/ST/GunffjCcEVd/wK/pzFS7hLrqXUc2DqmlMstgukj1bxVrsgEwsayuYVXhOirk9h1qBiB5GC9iVOFwrzGf5yhArdgbKWkS5OaAZyfI8+vpW3RG/m1MoQL9/0DI8sWsWrqXKTt+97Kz8y/QSVSpf0qWH0qrJWH0SULOUsuW5qm+iyGoTtHH4DghVNbjHBiRQiVQhjCOqa23e/nfrpMt5IyP4Xf4KPNdbw4cXrOdIa4fB3pwfixFIabnjpHu79X5cMgGf2e1tDtSqsZFY9CMmAiSo/Z/CaksJchtPTuB2F187Yd3oN4niOhYLmDS9+iJNf3wACcguGpKjIfDXYj3YYJLFfdcMTvP3BnyTrKT7rvAjv+L9HvPeFbSFeUAYirfjItkda8gcnJvIpSd4nK/nEJUE07BIXBUklIClI8G1iaGLbIq00oORGVpPThSRvUZcWxSdJ84akbAVidNG3mpyBgyz6ZIHD09EUkxuXKHkRb6g+zOfrlxIN2+SgdiAe1TgtiVe37nxSgHgkwyiDCh16azNyC1YoxihDVvbJPEGWc4jKNj6Pygq/5BOVFWs2LnBl9Si3lXczpjQHRtfgq5TL/DkeCicJjcsVFxzmIbMVd0WRjKQD8dhmGBBFLvF0iogFTp+6TmQQjWhkKskCQ5qD3oR1p7MAZAReU5IWXJKSPSftCHojFlWaFKyBGNq4zHs2f46Z9VWuDub5S/dyXuTXUQi2VJaZcBv4bkp71Az4Mp3QHr83mZI77aAzixaNqoLedIpxHZyOIM1bnENvXPRDIck7t93DiQ0jbAtmBziJK3NHqUxk3LTyc4Qdj7Tl4jSlbYJbY+/sMrThV1wxIC2SVPvmTNnc5juRkQ0voyHw+g1ycVEgjGLzxCyHGaVSCLmmeIDPTF1h1bqMtN6KtPynwoD2rNiP0IJL/A6vPvcp7j61lZdMH+JL5sLnN+FX2cpewOMFZSCyQIHrPEtZS0hjYc2+IjlbvNeXpLkzylrrSnWWowJrcw3LfGzsnTYdSknqLiITJBWbpBRaoT0H7SuyQKJ6DlkgORGNcOXYMaQwrGRF8irG5DJ05GAEqGpEIj1EppCRIKloZLUfYtQVohqTFHOYagzShhhJ3oZDSR5UJEny9nsmedg1MsPN5T10jMNy4rIjd4qiCpnPPI7Ho8wnZS4ozfBIYQO6pVD5lEwqjJS0uj5J6OBVQ9JYkTguMrLcGAzFJC2fpGIVw9KhBN1V6H6SMsn3xY9zZ5S1kiKAFTwWGi4aWeB8N2MmhYNJjteWH+ep2PJcXjt0kJfkjvDX8lrSofQMq3PXcli61ZCkWRjwOSQlgzsUEfckaUGSdiwIKinZRKsKBT9SPMhHkjIXB6f48OL1XJk7yg4vx8NRwsaRFeb9IjVRRIceS908VGMcR5OGDrFyoBojpCELFTLIBgRlOhNIZbcnRY+krO2NRfTFezM4p7xIJ/GYLDb4bnejDZFCRRK5JJUMlEEEGcaIfpJSYrTg3rDKjZWn2ZyzEgtDw50fivf+Rw4VWsyDCjNEnNoq0IpVh5JRZpNMPZuocsIMFasB3qGd+BxfqdIsBbgtbNdf2yDbqq+gZCej6Elbx49TjCP7WIMUmbrsqU0Rpi5XjB2jo30OdMaRXYXTtnfVXsnDaakBeEhGwhKeKkOuLUibnlX7aju2yhBFyMwyXTn9hJgTClSY4YSwr7aGv1NX85vj3+Fgojgej/JMey3n+PM82Z5iMSyyvlBDhw5+VxC1XHvuoSASOWQoiXMKkUir7xFbl1q33T5+os9U1bQ5k1RbVTAVg4xsaVhog1YCtwNu14Cw33X/yhgz0xlXB/P4QvJny5dyc3k3J9Nh7ljcyeFwnIWVMrJtXftVbITIIK4HuH3jIFMLB+81fLyOBTmpWKMihdvqE9T2DN/sTnNT6UkUhiOtESoTGQ9HCZf7LsdXqoQ9ry+aK6jXC9BwSR2DSKyQUKZctLRYEhMqG2L0+08yYew1im2PiEWpGmRfce27y1MsrJTpJQ67ho6ha54N6doCIxXaM5jYolhTz5Iai0QQiIQ7mxfytRPn8fZz7qdRKzzvOf/DJOXzGJkvwbV3dhNazyA3a/kpjSdJC/2EX0GQ+YokJwaU+KcbRfSeCsen8gxHhmDFkOYE7nSHtFZCpoKsnKLyKemcbz0IT5L5Eu05ZL7k0OPr+PGX38MDy5v4zJ5L8fIxMrQLyq8ZLnjlYR47up7E2PbstJKxYfMCvko52JvigguOc+zIZkY3reCqDO0N9ZOSVk/UCQXhiKB0UhGOCN5/zmf5y9mXce297yIJHSbX1vjpDffzu0/dSnuxgFN3eMmrDyAiiYoAYZChZS4q71GkecHrf+Ie7l3awuHTY2ShNRYjG2rUuiNQSUgKisq5K9RWigSFmCyTpHNFskANkpRaQWtzRn5G0Z3MEJngoYv/lrcceDPzrSJhz+OWbU/yxnvfAcCbLniMr58+DzMT4K7vkCaO9aJadhH/4rXf4IPferllaYol4ZqM37zuK/zpYzeR1nOkgSTNQ3pxm7jrIvb6/NPc5exfGGf9cI3D353mppWfY+PICsdXqjx91SfZ9fgbWZqtWC3PPTne9lN3EmqXzxy9hEatwPrJZX503cP8+b4bePf2u1BCkxlJI8tTVCH31LbxcGc7wfl10sWqXex5a0C/dP4nKEmHqx99G3/9xZt492138FRnkq89fT7VkTZx6rC+WmMq32DMa/HQ8kZ+dOph3vnwW3nj9sfZMrzEiWiYe176ATY830n/QwPx3IfXiFm5ZJjiTDxo8ZYpzF2fce6HY5xezt6BepaizgnPXN1OJ8AVIBJJ76YW3meLuB1DPJ+n0Af8ODUH3VK23JZpZKyRjhg8xyjuX9rMXKuEMRD3XH7yVXfztdnziD4zwSMHNiEbNo6WCei64vjJUZCGYEXx5IF1VLuGxZNVkIatmdXmlInBq5vBX6Ht3z88dgvdxENrK77S7AV8ZXEnvZ6HSCRo+Pypi/gvN36WDx25np9Yt4dQuzywvIn5ExsQKfzd7isxkUJ2rJcgNCydrpBrCiLl4bahdqyK6krCvGs9jZ5FI8pklTVbUDhpdTNFphAabt/3Y3Rij7DnkSaKJ+pTFvOgBY+sbKATehYePp9HZIIMcPs5iA8+egNuX5vTa9k29vc+9Erbsr2qzRkK5N4iuRTclmGuUyLqeCx4RWQsCDse8741TrsefyOPvOjT/N7iDr54bCfpd4b5i/tfBo6BUOK0FMejMf74xKsRkeKPlm85c2vWAqSBWFJaFoR7hyj37NzRnu2kve3Jt9GNPHodDyXgfQ+8HGJJsODQqLkYx7BvMc8+Mw2eZSb/o0O3AvDPJ7cTJS6HVkb5wv4Lgd997hP+h81az2/IbozfDFCdBBklZFh0mznqIsPYktS2MsIhaXERZTWgo8siRWm5X8KrlfD7XZ1uw7EU+T1AM6jFyz4OQsUC2U1QBRevITi6MEKl1EN0HYyjebq1ltn940w2NM6Si9MRVp8ihrQAsuFYpuYmpIGtkjhNhZEG1e2CCVBRhtt1bObcs9qcbtfj8NwYWWqNg+gq9JDgZLNKVvdQXZt8W24WGHdaLBwa4e7cORTdiP1H17KmrtGOoLPg92HJDBJ0TsNWLcAaWH9ZIRJsNajTd7HDDHc1VyMFXtNyYKxS7Z+YG0Y6GqU0JhOcrlUgtiLBR2ZH0R2HXFcgtMQ49tgWKg26T+yyWtVwuuAsWD4HoW1XpuMLvHofB9E2LCyWka6mF7mo2IZuNVEELViarfB7izv4/bGn+cR91zDcMrjLzqrGkIWm1+z/RhlkwzmDg+iTKlo4vw0bVomIV7U95mf73y2SqJ6ARRcjLHmyyGyy13RsiKFd1ac7tEnflfkyJBJVTjCLz7+K8UMP4nkM0YttO28nRvRsrV270NmSIMKYYFnjtBJyNYXqxHh1B9M3EN6MS1Kw77/tFQ/x4BO7AMgtCHIrGrejyS30qdy0QUQxSglk6iCiGKftkuV89Kk8NfI4KSQjmg35Fd5180f4rQd/lmBBPIu/QWhBmrPcCsGyDXiDekZuXmGkQPYSgnqGasf4DQe3ZVet6sT4jQBO5RBn8UuEJ0pE2nKWG9d2q2YnC3xw/KU8/Nr3cX84Rmhc3rf+C9z28K+jXUFugTMGIjFoV5D5lu1baElQs2l8mRoy30KXg3qG044RxrWemhIENYnT06SRBGNwTvkYBSYDx4Go7iLp84Au+qj+gvOaYlBaXCUfdvoiuyI1+E0rciy05ZPw63pwHbRj+y78usY5ban/s5yxJLFNiQ496xWlgi8e28kn7ruGoz/yES46+C5yC7aUKfplTitNYI2dTPieBiJYsfRwfiNDhRqZgdPJcBet4Zepfb+30Bf7Xe5Xf7y+qro5I8coYwhHwem5yESQrdicyvOa7/zQg3heY+G6Car7e8/adjY3RPVQ3xisegftMxpt/5IrYuhn5lh6ZIKRp6xxcLoZ5RP2B1T90ET04gEPhezG/OrrvsB7v3orqie48cbvEmUOX/7iVXzZXMW7//Pn+ds/vPVf8TcYZSeT27VJP6+RUjrBoAM1WAyRYYpXi5FJNjieV4sRqfOv+CXUoRy33fIAE24TKTQfvONVHP3qJl4ift2W2voVgzt++094676fQH9iHCOe3ciVecKS3NYFfs0mYFWsLWdBBl4zQcQp0pGIzCIpg6XELu6OXbRON0Bf2CKeyzOyucbSbIXrdz7DsNvhc49fys5tJznVqBB8smqvpbEGShjLjaASyyfhdDKyQOL2FE6o8ZcTVDfuExP3FckzQzJq8A67JGWLczjWGmGpm6deL60d5+MAACAASURBVJDfkyP9zjDDLcNFBy2fxIt/4R2kvhgkgZOcNYIIy4aOsAnRs4dfSwk8iQozZJQhE4PqpWjHtfwRL1/mV7bdxYd/7/YB/4TXthYmc+11N+pMI13xNYvM75kYeG9+7fmv9rPZ3F+I44XRi1GYNNeMv5n0uNUenfm1qxk6klE81CAr+DjNkOzp/cx9fjvx7irhhojR73h0JgXlo5rME/QmBKNPJDQ2u4zu6eEdXQDgZXfu40NPXIde8bns4kNsLSzyzdltpJ8dozchiIcMuTlBd1IztF9Qv95SwJcOOvQmDJWDFgpc2dfgnf/zC9zdPI+vHt9OHDlsXbPIz01/G09k/OGh1/CX536K193xS/ynl34BJTR/9pe309wVEhwIKF61SP3JUdxzmsiHKuRessh0qc5392/En3FREfQmNJt2zHDi8SncZp/R+TULdL41Tm7R0J62it8IWHN/C6Mkf/yPf80z8Vr+eXkn9ThHPczxExse5C+euZ5zRxd47JlN/OY1d/DNlfPYVFimk/rccf8l5OYkScniBbLAcNGlhzm0MsquNSfRCKaCOp985EpkWyETQX5bnd6+ITCQO79O61SZyW/BZb/9GCtxnpxKONYaoZ143HHBJ7lx908SJg7t+SKj03U+dsEn+IOTN/PEvefgdAThmB60bL939yvQWmIWfcxQQm6/T2+NhmoMDZdfuOHr/MX9L8NddsgtCMrHM77zwb/ivlDztdZO9tSnuX50Py8v7ONvlq/hp0fuo2McJlVEZMAVsJh53P71n+e3XvwV/vjbN+M0FelIgrPs8oab7mOt1+AD//wqqnsF/+13/jtjsssvHX4T144eppbm2RIsMuy0WePU2RtOsyt3hLd89Z1s3TbLTL3MeLnNbZN7+NXzv/GceyaKw+vMzlf8ynNaIw/+06/9QHoxXhi090pi/DOdcNGwIS5KsoJPUnbJCvY1R2WWaLQYE5cEWWBIipasI81BNKRIcxBXXEzgYQKPRpajUurijIQ0ohwZEk9lxBVBmjNox5AUrWuZFKzYCnJ1mwUOJXlBVvQJREJOJeT9mEqpR9kLeaq3jmeitYzlOpzOKjjDIStZgZm4SjQCpuOQlA3tnk9a1DhKEw0ZosRBG4nMpWQ5Q5o3GF+TaUkWaLRnQU7aCLIA0gAy35DlbBiVljySssuYihlTTbQRjAVtUm1/0mIQoY3Ar4RIYSg5ESUV4ssE42niIUNa1qQFjakmjAVtxoodHJnRy1x6mYvwM4xn0K5BSY127LGV1BhPk+QljSRHPc7jCk01sFDj46mgG7lWQLccM5zrMrbaHALEFYMppIOW7cmRBsrJMNJYAVwBxtUoR2McQ6hdcIzNMfRh3feFmmsCyWJcQgpNLS1QkhmzYYVhmVESCV0jqGuPunZYzgqgBQd7E+AYsoLGLSQWxwEkxsLi00Cw0+1yMBkl1ZLEKBbCEo0sx4tzx5lULZbSInmZ2AqQEWgtiTNFsio9/jzG/0F17/+Q8cIIMYxBnCXeK7JVN16jYo3INAZIMluDhn4eILbFbq9p6I3bhJONx+1nAKpOh3IQ0WrnyDkJrTTAd9IBQEhFFgOQFmzsmoQOaDFQsh4IuSQZd7V2cGnhKAcq4zSiHDmVcH7uNB3tEzgJy2kRhKGdBUiMTUD5GtORDBe7nPZyxImD0xV4TsbhlRF010H1BXtEJmj0AlRfNFemsLRcItfnKbDxOP0kmUZowZ/Mv4xz83P81MS9zKRVosxhRLUZy3cY8S0RSkFGODIjMf1J7GqMVLbHwLEZ/u8uTgNwpDVKK/I5sDyGCdWAMKfT8we8j52ej4itS/+nU3dyd28ta5w6T4breEht5p9bO1lXreNIzcHQw1UZv37qZsaDtgVyuQaVy/i7E1dx3cQhmqEFfWGErZQY2wyVhg4iEXzm6CUQykHMLjP4Wmsnn1wu8aGpB/liJ89Ob4HfOHkrfzD9Jd598la6qcd0vk479VDCsLN4GpEITvaq5Ie7dJsBlVKPpdDhS8cuAGzDmUwNP3/iNVxQmqHqd3nj0CNsHZU8EOX4wOJ1VN0u/8/Io7zpwO2ISHBqeYg0VizpIh9rXo1Vvns+c/9/Z+H8x4/v60EIIf5GCLEghHjqrG3/RQhxWgixu/949Vmv/ZYQ4pAQYr8Q4hXP6Sw0A8ATWKo5Iy0piowyRGRf63V9cmvaTFYbaGVJWuNynyQ17IOoQoMTZlYtPM345tJ5jAQdLpw+zWKvQJQ57BiaJc1BMp7gtAVJCdv4FBrbOhwLnJ7F26vQWGMVZzy+so6yDAkzl/XFGuN+iy8sX8JXV3awOb/Ens56rtxwDFdkzMdlwrUpoqtw1nc4PVtFFRPC5RzRqKbRytGu51B94JUKQfYEzVYOp22h3Cqy56P60ns2QWrPSyY2jt69PMV8UmZvNMWN+SOcag9xKJrg3NI8Q26XG9YfYsqpcUFhhimvZhWojMDb1MKvhnjFGLccsbRUohe7zDVLLNVK1OsFWzoNLYQ7bvqoGJxO/3lb4kSGOzob+Fp9BwBvKh2kFuV5rLGe48vDlN2Q6zYeZlf1OPuWx1mKCmgX5FSPXD5iZmmIE70qvpv2v6dA9KyaudsWiJaD6koatQJOSyFjm5BUsWZPfZq5XokvdvLcWujy1c65nGwN8fGVqzjerHJkeYSH5tazFBZ5YnFtf3LC3sUJtJYUKiGek7Jxeol2LU97Jd+v8MB8z3oMC90SLppPtdZzV3MHUhiOdkf5QnsdM82yvRYNH912idseUT14TtP9WevLPLfHD2o8lxDj48Arv8f29xtjLu4/7gAQQpyPVRXe0f/Mh4QQ39/vUuJZIYZlNxZkeY+06KLzlpBk/fgKvVZAvRdYrkhhF45WgrQAUUXZkKDoYHwX47tcWT3KeNDm4PIYl4ycZlthniPtUYQBVXdIixZRZxwbrohqjPE1cdlmxpNiP8QoeNy65gk62ufFIwfJqZhIO1xVOcwrhp/GlRm7ikfZPT9F1elweekITl0RrOkQL+apjrSRUuMOhTgdQbEQMjbeJBtOSIuGpGDd3qFKh3hI27AiL3BGe6R5SPKQlG3/RxpYXYy06PLytc9wSf44ry4+zR2dbdwy9QSjTovEKHqZx/2zG+kYj1YWEGmXSwvHcEsR4VyBLFV4XkrS8lm/1oK7tgwvs3XtAuvXrKArKVlekwWGXLU36MDMVXuklYy4ILmlcIKfGbuHYRny0cZOXjn2FK8YeZpXbN7HunyNB05vZCaqcP3kIV439jgiwxLMuinbJudZGzTpRh6iGpP5Bgop2rVhCNWYrKhZP7lMOpTaVnYPkpzk+tH97KzMsNNb4MP1KX5u6DSXjp7kx6sPcsX4ca6YPM6N0wfYNXycF08eIS8jjDTcvOFpzhlfRAhD4KScmB9mcnKFyakVkrImzcHO6gyjbovXTe9GI1jnLvM7Y4+y1mtwy8hubimc4OKJ06RFQ2m8jSon5Id6jE42nsNyOmsYBhKR3/fxAxrfN8QwxtwjhNj4HPd3G/BPxpgIOCqEOARcDjzwb35KG8RZ0nvBosTtZMgwRTkSGaVo4ORiFe+4z4qB0bYhLgmCZRtKiKTPBp1KVE8P9ncqqnLnvvOh4fJEbpJOxWO2Vbaq4MI2cLkt2+OhYlti033Dk5SN9SISg4xSJt0afz97FXtn1pBlkrHhFtWpLnkV8eUTO9i2bY72yTJLm0rMmiEKpwXNXJHcvKRRzuOcCNCbegTLglY7x46pWRbnK/0wxpYCh3IhDbNK8wZDpR6drGibmgwDngcVZhgpeOfwI/xDYycfOnE9YerQ6Oa4ccN+7jy8nTVDLWqzZb45dT5PN9YynmsRZi76VJ78oiSp5Uh0HicwjJ7XZq5ewqlmkDlcO36Y46dGB2Ae301J+vPUd1N6WJjyjx9+PZ3Eo+RFLHSKdGOX/3Hxx3jvnpsASFYCHpAb+calH+WN+37MlhtnFbVwmJ+/+dvc1ziHdiuw/RLC2JZtAUhj+3Ck4UfXPcwfn3h1n5/UVhBeXthHSWb8xslbOdkaYm/3JH8++QivO3QbH9v0BUKjCYRkRWuGpeRLnfUAZEiefmwjTk9wZLiIt6J4zYX3s9lf4D/tfRMyhV8c/TYPhht434GXsXt0mnqc567yHJcXjjCs2vz+wnW8d+oOrg7OY6LUZiaTjJU6/NyGu/mx57hQVsf/zc1avyCE+AngUeBXjTE1YAp48Kz3nOpve15jVbOB1Ue/ZLhhfIXjx/MIZQavG3mm/GTEGb2H1c9M+zXOWzfHvniSG9YcoJ36eE5KaPlXSUsGXROkJWM7PiMF/f0bRb8V2u7vwfYWrhs5yCVDJ3myOcl0vs5ar86IsuIt80kFU7QreNpbIfOhunmFbm2UkeE2iz2HvJ+Q+VAudTmwOAax7B/HgnxWOnnEqtaGFCwtlsmJvoZFcqaub4T9/r87eyMjbof3b/00f7N8LVcWDzOTVLlq/TGmgjqnloaoul3W5ptMBXWU0Dw6upGs5ROPZoh8iuk5nGoNkfMTlsMCjtR84ehOSO15GCXo9DzbtRrZ5yK1KKUPb/4MgRDsTQr80/KVXFo8xkeXr+W3L76TQ+EEn3rqMtYP1fmF47fy5ulHeN9jt1pq+nVdPnrsWs4ZWsQLUsK2Z/Mhmb0eMhIWOq4Ff77vBkSk7LlIAULwN8vXMBtW+IPpL/Hxlav48eqDvO7QbXxu69e59eDriFKHiXzTGkQjmM7XEUYQaYdzLj7JodlxNo6vcOzQBH+//3KMsRgPI+GXj76BjYUVXr9hD+fnTuOKlMxI/nHhSrYX5/jR4Qd4yzNvRXUlx+ZH0JlgLpP87tJtwCPPeZ7/34yD+O/AH2KdpD8E/hvw089nB0KInwV+FiDwK4MFbV9kMBFM/wFwYqlq8xWmv1DMmQUjsn7vvwbkmX3NREMcmJmAWPKN2XM5vzpPL3YHwZXTEWf+GnD8jLTh2bt1X3wFS1zENaWD/OP8Few+NYXWklNDQ1SmetRkgWONYW4ffxTRddAITsXDyAzqh4fxM1ipF3FXHNKKwtXQ7gZsXzPPnta0hTf3laIruZCmZ3C6Fmo9Otaks39sICqjwv6k6l+X35j4One0d/Crh99AL3H5+rFzefnG/dx/fBPD5Q5Z06Obecz3SmTGNmyJFRcZg1tTiBWrJbG5ssyeuUnW5pu0U5/bNj3JJ2tXILsKkQhyQUIvtfmeXJDQdAJA8K6jt9OMAsp+yFy7xHdObeazL/prXnPfzwNgGh4nikM8susTvHrf662oTSyIZvLctuM+DnXHSRJLE6frLiafWRi7b5BBhgkV795+F3+0fAuy4fSTx4afHrmPYZnx7pO3crxZpas9PrbpC9x68HV88Zw76eqYtkloaUOG4MHeBr7Ipbgi4+CedahQcKw1gVtX/NS1D3JuMMuvnnorQgs+ufVzfKG9jr849FIOjo6zGBa5sHKaN48/zLBq848rV3HH+Z/mgoO/yJaJZU4uDzFa7vAbW+7ktc9nEfyAw4fnMv5dBsIYMyCWF0L8NfDl/r+ngXVnvXW6v+177eMjwEcAyqWpZ10lt23denuAM9uzVJGr2dyEimyyzm9ZFaZnGRh7YgBE2iFrungrimSDYj4s0WjkGW1bkErXs12fWSAG7EODY4pnHz82ilqUJ+m5ECo6OY9EKxKhqDUKLKZl3JrkVK9KTiX4NUNnGoIlQ5gK/IYgyiSFpqEbOkihLa5HnDmWOPuWIkD+i/8RZyW+BWQIGlmORhjQCT2SRNFKAuKmT5SLcOqK2ajCbNPSoUWZ5dO0hLx9vY0MYq2IIpd6nCPKHNw+1/8Aztw/D8Ozz6kV+4SpQ6rzNNo5dCbpagetBbrn4DYl7VKOxGTUe4GljGvYHFOiHWZ7FbKug1tIBrdUM7gW/TzTKnPw4DoJOsZBakM39Wj1AlpJQGg0UerQ1TF56dHOElraJS9T5tMKIrZlSacrcNoC7Vk6QVdkSPrlVQGJ0axkRTqhx2JYJMoc2pnPXFJBoumkPq5QGGEs2XH/d/LEmUT7cx0vdA/i34WDEEKsPevf1wKrFY4vAm8WQvhCiE3AOcDD33eHBtBngjFbNbD6kyLRiP5rxtjcgEhsSVOk9BWozqhACW3LnGj72JBbRmirL+mpDInBZNIi/VLIPJtnWBWkGVyY/m+9qiwlMs2IapNzLHpTaIEUhvNyM2z15zHAlFuzRK0qpez0ULHFEMgUCuUQoSGXi5ExeLkEKQxGn6W9ocGT2ZnsdWYNxqAWvrrNgMjstRmWUFE9Cl6MozRKGdbnVqCfNxAGciqxSTmV4PSD3tXWbLRdFFWvh+8nDPtdqn538LsMzkXYsq1dn/3nmWEk6FDwYgpujONkSKWZdNIBnkRo+/7EaFylB9dZaMG0t8z6fA3h/huBuIHMPHuaiswwqSKUMEzn6/huwqjfJhCSiXyTtklYyDqMqwJ5mTKpFGNOCwSsC1as0dN92LSGULu0dK6/b1jMBJNuDcfJKLsh6ws1RtzOwAhsyC1zKu0NVo9SGikMy1nx+0717zn3n8vjBzS+rwchhPgUcD0wKoQ4BfwecL0Q4mLsqR8D3gFgjHlaCPFpYC+QAj9vjPn+ZnU1m9sfvTFBbtlCZoU2g85OpTSdaYOzoU2yv0hSgs6EsgtcnKUZoQ30IawnwyruaI8w7+KqjPWFFfQmwcnhzXSmrWEJhy0jUbBiWZBRdgFYzc0+Y3NmyIwkUAn5coioQDXf43A0QV7GrBurkRlJuCHiwsJJGlme1joJIqO5BdJWgBzXiJ6HHrf77KbegBEaASh7JxeZGIROUXLmJ1rV97QT3H6/46lLRXUouDF+OWW+VaKrPcam6lT8kMUNPca8FheMzVJ2IiLf4WB+muYm0Ydu2xLvYljEGEFOJYSZQ1d7g2tgFKRaDkK4VEuEsd6HNgJHaEaCDqJqqIc5MmOTvUOjbRpununxOjOZYDjXZbls5fDSSsYzvUlyKka52iIplemHl1i9y8y6L40sD/qs/BIQGWhpl3bqMVFsE8iEFa0JM5eWNrS0S1132OYW2B1FDKkuOp8RaZe0oslyAlNM6a2x3kE9yw+ub8u4eCKjFEQMeT3meiV2FEPGnSauSEmMomUcS9Cb9b0lI6hn+e871f/leKF7EM+livGW77H5Y//G+98DvOd/56Tyswan86/vKknPpXoUWqaI3zQkJUFxJkX7grb53l/FFZr0dJ5cTdIe89nfmODg6XHWLmY4oaQ7Icgt9pNfxiCl5lkQ/rMseNf41KI83cUCIpIsTAnGp5toIzk+O0JnnUdwzOe7O9bjy5TyMU00IikfhNq0IT8j6UwICjOGxW0eQ1M924p81nFyTmKJZ/ukinkvIV49lX7e5eywZ52T8NXWCEvdAq2eTxTZpNziqSHMlECeyHFqc5U981OsLTfpJh5eXVI+YoiG+iFGQSCFJux6nO5W6KUuL6qcZJXzEQOuyuj1j+2qDGMTIYSZSyfx6KUuS62CpeAH0sSh3vRxF11OUaW0PWO2WcZtC4JFQzii2BIscH9jK2nTw61Eln1aWGo3JIPKRlGFZ67T4He1v60Shvl2kUY5x7CUFnmKGHgOu6OIi32fp2Mf2VWE2sVfVDhtiCIXf0mQVzEFGQ2YyLSRBCKh3smxUsoTqJSVtEBeVpCu5ZnQxjZwFb2IFceC8NznG2IYBjeyF+p4YSAp+3Hl6qifb3AiRW5W2IWr+oul0iN8Wcj6oSZLM9P0xg1Gurgte5G1069oSDFIVK7xG+y89KiF40Z5rh49wvahOb6+73K6GxOchkOtAmkpw3tCkkYWSYnAojZX434lmEsqvGHyMT4vL2ZtromvUgKR0DU+b7/4Pnb4M+x65VPcUHmGk8kwX7reutTNl4cMFULql4DrpSxekbFucoWZTgWSs9xnDYudouU87M+bWic3sAerJU5hVqsrgjs6m3hF6Unaa302Bkt86tQu3lx9CHbBSlygcONR3j76HfZW15IhCbXLHx27heb20N75tMR1M1pJwLbpeSZyLRbDIo831kG/9Cq0sOhJcxaqMrVNalePHOFwd4wrykeQwvCN5e3MZD65fMTOjbMMXdRjW36OO9rnWt7GI5eRbA9xvZS7Vrbz+rHHaOwIePzwBkQm0IkaJIhXCXDuqW2DvoLVallwMfNYzgrsLJ5mZ/E0eRnxpc56pvN1HuxtYD6tMOa0GFJdno59fqy0zO+UUmaiCtl5bYSjqQQxcap4tLaBvc5am5QGTqTDvLawwiVrT/PW8Qe4t72NCbfJzuAky1mR9f4y3+6eiwwl8+0S3a7Pksr42tL5wD3Pb+q/wMucL4hmrUqwxuza9YuI+3YDsPSOq1i5KOP8986ih4qW4frgEY78yVX4y4JwXPPia56mlfjM/dkWAKKKZOhgSGfKp3ywhTq9BMDe/7IB1bZowKSaIUsJOlas/ZpDZ60c0I5FVUHlcMbKebbfv3jaEFYFpVOZbRU/WmPfr9nORdVUGAU60DYccTT0FLKcoE4EONtaxLFD5ds5wpE+uYxnF7h2LM9Ad9KGMV5T4LZs+3g0LAiHDcUTthvSaxnqWyTFU7ZFOxxSg+Tt0BN1UIJn3lmylOyR5VmUkUSXUkRoy4JOQ5GOx5ZzwtGYnkPxiDNgwKZfHUnzdr9ZcCb/4TUstFumtj8mWLS5n84UeHXB2J6Io6+19xjj2mSGDCW6kOGsOGjfoLqCtKht92YqePT17+Ml7/81KwNQNCSVDH/R6SNH7fELpy1oLSnaRHQ4YgiWbQt5sKLJzyUceXOfRyP5/9p77zDJrvrO+3NuvpWrujp3T+jJo5mRhEYSEkJCgYwkMMGAZUyyFxtsbLzB67XXL378YoO9YK+NYQHZwmuQCAtGYCRhkJAESjOSRpocume6p3Oqrlw3nvePU9MSGEkjvzzWsNT3eeqpqtu3b52bfvec3/n+vl/RHpa0h5ftnpfw1fI4EaE1dOJ0yMlXf46NX3wf9nJb9t5u811S6lwkpyE1EzF5rUBaMeaSQZhWJeKxKZGmGgKJUP1u+qSGV1DHKrIkWiQ49kdnb3CTzg7Jiy77zbO6R+696/eec7tCiFcBf4VSDPiclPLPfuzvHwLeixr+LwDvllKOP9s2z4keRJg0V2snAJpFQd/9GrOvHKLn4ZXV5a++Zi93f/ViYkdy6G93UB8QsLFNPW73w0PnR2czfvXye7l19CL8g1k+eu2XONbq55YDL6ayzlI3xdYaxmNpGttapCcsvGKs6vsXwc9CPCfatmrwv66+ha8sXcJUI8uxmR7esm0fWb3JFamjfHD/W3n3xgf55NhrePOmx7kseYL/vPc9vO+mf+ZTt76Wy173JHcf3sJlm8fY//VtbLh8nGPTvXjjzqofp5+WxEMtghWXuKWWNdcEuItKEi9IC2RD8TPO4A+uup1Jv8BkK8++hUEu6ztJM7L4/ugm3rXjQW759jVct/0I+5f6uab/GDNeln39g4T3F6gPR8hkBKHgnZf+kD2ltVxVPEavUeZjh16JfyyD5qkA5/VEStw3FHg9IUjlK3LV7kP022XGGkUOzvcxnFvhLf17ebCygR9OjhAcziAKPr92/g/YXx3kik/9R4SpXLZ//6I7eLS2jgen11EZy2HUlIeGVVHq00EmRm8KnO0rtA7llPWgL3Asjf/60n/meLOX0808hxZ6ed3ag0RoeLGagYmlYNhZxotNWrHJtJdl4xffx4m3f5qLHn0LpbECyTUVmieyGGtrmGaE18zhLGu8/NIn0IXkUKmPlOVRDywuK55krFFkR3qaaS+HFxn8oLaTYNhHNnVEIsRNec/72v9p5SDajOVPAi9H8Y/2CCFul1IeetpqjwO7pZQNIcSvAx8DfvHZtntOBAhpQJAyMdvfjYtL1Py88nhIWujtpMBEvUDvdZO4RsCJxfWEyRhtqEG45FLYpxFkDLRAEqUsdFNtTRcxO3tmqORLfGL0Oq7oHWNj3wL0QdlzCCOd+m5Jl+MjRQF7WXlHgFS5iTPCI67FfbWtXJCeYKx6ITsGZ1j2k6wIl9HGFbyod5IIQf9l00y3cnyu8lJ2vPEwt4xdytZXHGdzco7mZpNaaCOuKLE5M8/xh9cq/r+ntBTsFQHjjqq5qEv0QOJMm2iBbGsXqJ6G1pTEKQupCf55YSe/O3QXf127jmsGj3Hn+DZ+a8s9jPV08S9zW+k6f55dqUmakUkgdbzIYH1+CeP1Cwy4ZcJYZyVwOdXsYld2ilrkMO9naI2lsctt9awAYtNY9ea055T7uNSh5CU4ttLN1tw8l/RPsGd2mO/a23ng+AiJtId93grr0lW+ObVTpTN0uOj6A5gi5on6MEN2iRvWVfnK3quwVhS13VmKkUJDC9W5qJ/I4paUTZ5TihGx5GszF1J06rRCk6FsmRkvy4HFfiwjJJaCWssm5Xhk7RbTlQxvWP8kWiB4+8mr6U7WOe+SWabqOUpbIipHC0QSUmU1vT5WLTKUXGGmlOGiodNUPIfJVo604fFkZRBDxDw5N0BiVtDQLIyaIHIMAvt5Kkr9dGcoLgFOSCnHAIQQt6GYzasBQkp5z9PWfwi46bk2ek4ECBH+qPiLocXIhrpp9LqP8FT34MhcD68YOUIzsjjVBNDQjBhjRscpRZiVtmJTzYdAbe/TD72MP7jim8wEOf7+ics46PTTn6hQtGqcbubZ++Bm4m6fMNAZKEckJ9X436zHypKuEmE0IkTT54v3voQNO6a4svsE29wp/vbU1Uw+0U+UivivL/sWnzhwLW/Z/BgPLI4wV03xJ+d9g98efSu/uuGHfPS+1/KbV3yXv73rFbgjFb51ZCe5URChxPDUVKhSaAKrEqMHykg2c1KJv1iVEBHrbQq2RKv5oAsOPLCR927o48XDpzjdyNOfqfCRR1/N7190BinGEAAAIABJREFUBx/d90pes/kg9yxtZndugkdK69idH2feT3Nj/jH69BpZLeKGfe+heqSAHGoSeTp4Ol1Hhfqd9vSx3hJYtTNalkpE16yEzDXU7Icm1EzIlYNj3HnvhRiDTd684XFGG0U2J+f5wv+5hpdfv4d7Wn380cC3mY0SvOMbv4E9XEPTJMlJNV1t1pUqlx4oXxPdl5hVgdGK0X2pzkc1YHTPGo4lY2QyJJltcXolh38oS7SuhTbhYFYE1Rjm+2ISUxpfCS/EKgse2ruFj7/mH3l9ssbrj78SLSnRjhYQEdjVCKsccurRIU7k+7h42xhzzTQzj/cxOZBHM5T8XtwwcKZM8jMRRlNrK3k9lSM66+seno9xTlEIsfdp3z/T5hKdwSBw+mnfJ4FLn2V77wHueK4fPScChNQhcg3O9JwNPcYzFWEqdk30QGWHd/TPMNvKkDR8Yh1iU+KVXGxL6UeYNQM/pWO65qq799q1C+gi5mSjyHlrZhhJLTLfSvPVPbspDpZZe8E0Y6e7SSY8gqSDn1VailIorUURqSSiaRskhqtsycyz0ZljLshxXd8RPr+YY7BQoRFbrC8ucbDST69bpcup84cHb6S3u8yXpnbjFhvsLa/FWlvD8wyu3niMh/adr+TS2k9ppdaNStIFAtMQeFnFqdYCXfk5tHkEjmsidUHY77G5e5FNiXlKYYKR5CI132bC7+LF605ypNzL2tQypTDBjuw0poh4aG4djy0OM5Aq02PX+N0t3+XDjdeyoWeJqm/T7dYZHd3wVKl7qNp2ZvztZ1X1aZg0GE6vkDY81rpLAHRbVaJCyK7BaRb8NMdKPehC0uoLGbRXiA248dH/wMUDE8gun609c8RS42Q2q+TdXIFZ1/FTQpXg+6poLbZUubsWqQdH2BVgJgOy6SaWEeIYIWOFlKJPV3uJLY3YAJkK8TyTrONTsyG5psKDtY3cMt3LP226i1sqPfyP3LCSEJTqOIddAZodkTY8QksjGvBIZ5roWoxlRNSSNs1GGj+l4Wef8kTVAp4/zj5JufjTEowRQtwE7Aaueq51zwnBGBGB3nwq/IaRhhaAVYvRmsGqQe+BmX76nAqGiNsXigChdCGsWoxRD7FqEXozgDCEMGR8vJsTrV7WJxY5ONHPsUoPtq5KnlO2x9hYL0KT1Bs2Zj3GKit9CasWY1Xlqlyd8EIap9Ms+km+Pn8hM36W8WYXcspl6mSRWuRwcrGL8zIzzDXTHFropZiqMzvexXCqhD+eYsV38cdT2HbIIzNrsFckVlnpNtpV2dZsVMlJuxpj1iPssmqL0VDJUqsWY9ZiRDNAawYYMzYz1TT/MreVhO7zf45fwFI1yZKfYqJaYGtW3YAAtcjmSL2PpVKKTbkFwlhjtpUmp9eRE0kmlvNMz+TZPzGw2jarotpnlZ9q15nlRj1k/8wA945u4kB1gIJV51und6AvG+x7YoQnlwfYnJ8nqfs4swbfnNqJFkIxVWemoZy6x8t5lluJ1e1bZYlVi546HpWn2mFVY4x6hN4MMZZMgorF4kIaS484NduFtaxz6kQvZknHXtRITGtoFQN7UeCHulLtOpHlvtkN1EOLWyo9vDMzr/a1fc7NWoRWMYgDjftPjVD2XcSyRWU2TRDpLCylqS8ksEqaukbOtK39/ryvfSnP6nUWOCsWsxDiOuC/ATe0iyqfq30v/CxGRhTkpeJaoqtfhDVVprk+j1Xy4JH9nPzIZeSPQPZ4g4lXJckfjakNahQOhzR6dLrvmwVg7hMmy1M5nK4m1g/Sq5L4tWvqaIdSWGWobA/QEiFi1mbk6y1CVydydexlH69gMfN2j7dt38tDi+tZbCRIWgFTh3qxyhpmBUZuHGX/6QG0aeWL4RcjBtYtYmoxE0d62bxjkqlvr8V46TKGHpP5RJrSJov0ZERps0FyNqbep9F10GfpPIu/+I3Pcl9tK9+Z2oqUgg35RV6cG+P7i1s4XclSrbm8Z8cDfPqHV2Mt6PhDPqJmIEKBVdaILMn1r3yYx5aHGZ/pUgIvgUZueEWNq4s+7gkb+5JlVpaT2EmfONJIPJAkMxHiZXS0SBnnLL5I4s5pNHtjRAR3v+Uv+L3T1zNW7gLgjWse52unL8DWI94+/AgPljdw75HNmG5AGOhomiSsmhAL3vbih7jt/svQAoG9pNHsi3jvy77P5x5/CaknlH9pq6BRfUmDqG6SOm6y+xf288jUGjYUlzg81cdI7yKbMgs8vjTIV7f/AzfufxcLM1nMBZPYgLdc90MAvnlqB7VSgoGBZV47cJD/ffQS3rn1IUwR0YpNapFNQvfZW1rL4ftHEJtr2D9MY9YVD8Rekez9409x2G9w0/53sjyX4T2X/IAnK4PsObqedFedIDAYyJfpdasU7RqPLQ5z/eB+7pg5j+v6jnCo2s+gu8Kb849w2brxs57FyKQH5cUXvf+s7pG77/1vz7pdIYQBHAOuRQWGPcDbpZQHn7bOhcBXgVdJKY+fze+eE0OMM9D8GBFGSkUqUCpSiVmBVYuUQEpwxiGLttKUvjr7Ua4kSY0aNFpJ0itytUZDxmJVaIS4/T0WiCBC2LpSuA4i9T6aYHokR6nlsjyZYyUVYFY0rLKqp9BEjAw1NfUXKLVlaJN7QjUO18L2dyHV/rQpyUK2u+uy3XYJK3GCh5fWsTCfgZZOKzDYkZ7m4FQ/0ZKNWdZY3JJCr2lYFUFQMzCqGloI6VNKki5jtJBSIENNsTJDoXICEURSDZfitlabbGdcz3hi6Ku+GO3puzaTEAEtKTixUmSl6hK2TPbnB5mdLICQPJwZ4ZGpNVgTFvGmEBmJtpOV4kwUzZoS143PFLsJBqySOlaS1WGCrsdEuqK8n6oWaDUt5uspxLjLKEXqgcX8coa0ZtDwLPCVbL9Vhn6r/JTEW/sZN2LPIyVscWbQiKnGLitRgqTmccjoV4QvM1qlmWuBej/sN9hmJajWHZwJizVXLHLayqtj0r42DRGTNltkDCXht8M9zWfmrmC+kGahlSJp+Oww/y09iH/LnfKvIaUMhRAfQEla6cDftZnNfwzslVLeDvw5kAK+IhTvaEJKecOzbfecChBzFyfoOqBjNCNEFCGB6iVNROSytD2DXVIBwiqrm8+uxko5Ctg8MMdR2Ut3oUrjdA8LV0a4YxacSrQTfxJnxkDquvJnCGKMRoCIDfW5HhGPBGgiZii9QmFLg6pvMzdno/ka7tsWeOKxDZhVgVVWykMi1pkNepS796zGscfWUFiRlI4UkLokHzRwShKzEeLO65j1SMnU+zHufMwtUy9hS2YebY2k1HLpSdaY9nKs611iQs/jJy2OV3uILalcpWOhhHIi8F6/Qv1Els/f91I1xGqIVeOcapAjsSDQfBNnSVI9lMNtCkLXVMnGSozRjJC68qmIDUHmuIFZV1WkIpa86/Avs7NrhkNaL2FKx9UD0t01ZLtken3XMgf7E5inEphtAqF1xjjn7pfjzqlAZq9ItFDjj+/6BZx5DWdJYtYiYl3H2pvCCZX3yXCqxPRylpzTZD4Zk022GEiVaQbK8apZt9A8tU3t5Uv81R2vble3Cpy6YK7Uo/QcfMHvTt60emeLiNXy8fQ0eM0cdjnGaEmEVMOEm/a/k2rd4diV/8BNa17Gh+94E5onSC0JvLTqsYxaSUblMLGlHlAffPJdyF6Pw+U+yi2HR+tD7DjyPuD3n99F/1PswbeFm779Y8v++9M+X/d8t3lOBQh7RWI0I7RGgGipjM+6viUWzSHsFXCXYsx6iGuA3giwNKFyDcBcLcP7LriPRmRzW7KH7r4ylaki6ZNgVdXYPZrWIQbDi9G8ANmWodc8JT33/1x0B/99zw1YdsinXvQFvlPZwZcP9hAlJAOpMt6xHpXR99TT12gKnEXFaLTLMWZF4JQiMid0EG1fjKUAvR6QmNPQvRjNi9EaAYk5ncPHBsnsaPFLgw9xnj3Nn06+hjsOnMffX/n3nBosEkmNP9//cjRPI3Jlu6RdeV/81pZ7+Dvnchq39ymCVCBXa1HsksCqxphVQWIxRkgN3ZNEllrPKUUYtaBdjKVo5ulJ1bOISyrITB7u4eqrjxPkNG7s2sfHx67jb3bdSiw13r/vbbxm/SGa601W9gyqJ22sto0EZ0n9nhadyeVomFWB2ZC4iyFmJVhNtiqtzZhlL4ltq3P+5pc+zEtSx3i8sY6Lc6f47O2vQBfKV1Nq8Nubv8df/9ObCR2lIan7ymbxjK+FiFWPZrVH1L4HE0sRzrKm8lStGC3QMWsRU3MZnAmLm9a8jH9c930u+vy21RxYkFC/eYYLE7etAnQf3vGa7/HJg1cSTCXR+5okDj9PyTnZYVKeFTKpQSV7f0p5I0/+/uVkR2OyRyt4RRer7CP37OfkbbuITyeJu33yD1o0uwXpcdX+ynrxtPxEQPKoclweum2Oe8Y2EdQsegdW2Jyf54m5QfQ7c3h5QZhQ/AMvJ3HnBY3L6wRlG3dSqVEnTwusqiR3tMG7b7mdu0o7eHhyLXEsGCyUeVHhNAnd53szW3jvuh/w4R/ewJsufJRYCr7zpRfT6Iuxyhrehhb6tI1c08Q+kMDb0WD74CwHTg1gzNhonlA5jQ0LzBzpUUmwCljXLtJ4oIizKKkPCsyauqh6HmsR64KPf/Zv2ecNc9v0xWhCcnolx5tG9vGV0QvpTtcYn+7i3Rc+wN7SWoYSK1RCmx8+uB2rrNS0hIQwFbNr5ylOlgqszy9TDy1eVDjNl/ddhKgaaL4gubFM40gOBCS2rFCZTdN7v0bfr52k7Dv0JqostZLMV1N89vx/4Jce/FU0PcavWfT2r3D7zs/zS8feyukfKnFcPxfzy1f9gNF6N/tmB/E9g2hOOaO7RxyagxFa3icuWfzO1Xfy8Qdfjrlg4s4LktMxf/ann2an2eD9E69lrplmZ36a3yx+nw+efDNf2Pg1AhmzEAmq0iSWGhNhgd+76628/NIn+ZeHdqG3NDVbUTF417XfZ421yIfveBO5I4JH/+hT3FbN85ej17K7+zSn6gXOy87whuyjANxWupQ/6LmXS77xIdZvnWFyKUchU+cDI9/nHZsfPvscRGpQXnr+r5/VPfLdB/7wBZG9Pyd6ECKW4PlPLZDqKS+aPmbNQKt7qgDIM8CNsZM+mm8pKq2hXKn1tmNSs1vDqgSrlnyuHuA4AZYVIYREF5JNXQuclDmCrMSoiVV1KqMp1W9oEqMBfk5iNNVyve4xHeTpsavYZkja8UiaPlvdGZajJAOpMgNGie6+Mv1WmbkgQ5BUY0yvGGG7AZ5rQaARW2DbAfXAQjYMNE+RpYhV3kBviFV7t1ZgtHMutF3KVZfZqPpIQ+PR1loGzRL9iQoFs85cLcVVqSM8URzE0GKsoYgd7iSt2MQUEUnDU23qbo8LYlWxOddIoWsxodRoBCZTzRx4Ome05v3AUOkJH/zAQGtpmE3JutQSE/U8I4lF1iaWeSRei47EMCMG8mW0omQkvcg/1TaRtxucciBKxEg7Zn95gFd1H+RYqZtGxQFNlb8ryvgZRSk4UB9Qyltn9CF8SbfW4P6WYjYOJ1yKZpWHWmtZl1zmG7VhlqMUA2YJS0Q4IuANyWX+i6WKu6QdE7oxmh0R5yRPVgY5beVXWaO3VfO8NV3iFqfJ7vRJMkaTvFlnJU5Qj202uXPcWtkOMdR9S+W1hOS7pe3Aw8/v4n/hn8/PinMiQACccekGiG1WVaSA1UIuOxHgSUEYKMt5van49HZFYlbUxWNWn2I/AvzLqS28bdOjfH18F44R4kUG4+UCkSWQba0FhKpHMJoSfdZSgiINiTur7OgMLwYhuPXUbtZml/mbnV/kuN/HnUs7+PihaxnOr3B935P8zdS1mHrE4Xo/ru4TJmPobyGrJsF4ksRIldZYmtiUtJYSjC0ksZZ0rLIKAFLTmdW7SK0IjBqYdUnlZIZcRbanYHWMplxVlAL49OiV9Kaq/M7wd/js7FV88rxb+Y/H3sxvjXyPf5y5DC8yuL+ymRF3gfkgw1tyj/Dl7G4QkCo0GM6tcPjYILMTBTAllWoCTYuZni5gLegYDZXwbBhJkgsqcNUmk9jLGpofssFZ4FXZ/aotUy/ja1tv5Q2H386fXvB1BowSv3P0F9mRnOaTR6/iwd2f55JvbaGekWzbOMW+sTWcWimwspJEn7WwyoKwquHOS5AagWdi1gTfObgdZ95QyeIl5Xj1W6O/SBhr5O0G8400vzC0j48fu5Y3rn2Cvz5xDfWWhWGoku2VusuF/VOYSwaHSn385ku+x0Mr60kbHvefGmHP0fXqeCyp6fK/HL2WW5wmd279Zz65MszXjp/P9RsP8JnlK9mUXuB4tZvjS924MzrzWhd6XWNmwWHa7Xrel/3zIEq9IDgnAoTSV3wqQPjZWHlemgaxraO1VLZa12PyXVXSts9KKkGQBhAEdY0wBZGrESQFkaODof7nwv4pGpHFtq55ZhoZ1iWWMLSIR1NFwlyI0TAJE5LIiQmSGmEuQpoaRkMjSENQaRvUWgY7ipPc1P0A363uIK232JKao7imjqv75PQGr+w+yMH6INsSM5QjlygfQtPAKbQIUgZCSKJcSOzpJLoaxLGGFyTQAp3IVyK5ZqGFv5xsB0hBnPcJUjZ6S7VHJRYhsnXQBTuKM1yWHSWttfijwW/xqcWreNuaPSyEGdYllzBTEb9RvI8jQZF11gIrsYswY1LZJqYeUfYcnEILgJTrYRshdc+ChEe5nkWaGiIAmQ8IVmylEZEP8EOL0BW8MnWIPa01vDIxwf+79p/4fGU7V/ce43NTL+XFhZNc2DVFt1FhW/ccX6/3E6QldqFJMzTJFWpcO3SMPc5axhs9iFgnzMYEKZ0gowq5pKaT76pRLpmISFMGzjWNq4ujBFLnLbk9mMTECPYVh9juTq3KxGXMFjmryXI6wU09D/JAegspy+PuxS00Q5PQ0hgurrDgJBGAlzYJEoJLuk+zO32ST64M8/7caQYv/DqOCNjUDgBvzO3hI/J1HEpn0QoeoWmiJUISyaf1gs/qwgeiToB4TogfE4xJntba1OIYEcpVtan6sks4nWG5L6R3KSayNNKTijhUHzTQfKl0BEIJ7enPNe4yXzpwEXHVJDdY4WHWsVhLkpiVaJFJZEF6ElrdbTEAIyZyATQlw34GYYwhYn5Q28KtRy8iCnUGiyu8e80PmAuz/MWRl/PWkUe549FdVHY5xFKQfcJSojRjFulLlmnsz6OtbZHZZ9HsbgfEVZFdJdySsEP89tCJ9tThmb+fEVORbV9LpbYkmPC6mPDUxXvP6U2cv/U0/+PgdawplDh6qp/URR73zW+kP1FhoppHn7OJjjp4CUkN5UPirq1Sa9rgQss3MYwIqStFLIFAsyJiqz2da6m/CQmzUZJ99TUshGkWgzTfPLWD69cd4NhsNyfmi3gVm/uKI2wsLPKXx69FbwnYn2YinyS3aZlK6DC9nAEjJrY1pBkT2braZ10SWxI/NJCGJHKkMtIFSmGC+VaajUWNW6vrGDaX2g5f4apMnOsEzDbTOHrID2qb0XxBPbAYP9KHXlcMSbFsYQ3WAXXMpQan6gUyRpOvHT+fwQu/zuuTNW4u93FfaTOuHnB98hjLrYSqhgWEHSN0ie8/P2ctwVmToF4wnBNMSqmJ1Sc+qCrKIKme2qGrI211JnLdNfxCjJnxCFLKks5PCsKEpvwSkuo9dHUwDTCVMtKWoTn0bMCGwiI789OkHY8gLQiSgIAgozw6I1ugORFoquwYDSJbENmC2DG4KH2KhO7x0rVjbBucpS9ZYSbI44iQC3qnyBt19HTApuQ8F2Yn8LMQ9XoEaUm9aeH3hsShhp+BOBZ0ZepINyK2JZEN0pQ4Zqjs5g1F33XSnipas9RwKrZUcVvs6ISuznmpGS5MjLM7eZJYCq4aGmUuyLK9d5ac3cRM+AxaJXbmpxlJLnLj0BOEXQFBRuJ3hwRDPgjIJppEkaArUacvV2EgUwE7VmXOhsSyQkVvt9ufHcUzsYi4IDnBiDVPJXR4xZoj7HAnuWBoihcNTqK7ESP5ZbZnZnnT2seJTUmQkuj9TXpTNWKpIWNNCdTqtF2/lF+ocCKkKVmTLyHteDVXFJmCDc4C29MzPOi5jLZ6uMKpsy0zSyQ1dmWn2JadZY27zBWFUUaSi/SaFWJTclnxJPl1pVX6dOzEDOTLrCmU1HSyCedlZ8ibda7feABHBNxc7uM92VnOz5zmVXk1nNpRmEGakkyqiWZFuK7PQKHyb7j45dm9XiCcEwHixxEm46ei89OOjR/qGF0tunO19o2rdAMi6ydvB2DRS2FoMUPdJRabKUwRsS6zTJgAv6ASdUEKYuNHlZ1WPz/tfTlMEUuNmWYGRw8oWnWmvBwTXoGiVUMnZm3vEgWjTiOy8bpiqJmEPQFB00RYEQQafk4pRultbcdVyLbA0NOWnRGxFWeWP+3vQkLRqJLUPO6vbKZo1jhQ6mfAKuHoIWnDY6RniR6jwrCzzHp7Ab1tCRj0+mjJEKHHyIJPw7NIuj5BrFP3LbJ2c5Xk9HSSFRKkFKu6C18pXcw3Fi7ghNdHn1XheLUHU0QcnOtj2Usw3LPMmuQym50Zxltdyke1GKDpMSnTw9QieguVf7VfYvW3YTBRXv18Zp2CUeMdub18e+V8Aqnz6ZWtXJIc44vzL+aS1BjbE9P0WyuM2PMMWcu8yD2JNCVjjSLVuoNmxOhaTKq3Rq9bZV16aVXF6w3ZR9npTDJaKzIRdHFPaSt/vryB/1QY5QJ7mptXdnNR6pSaphTqXGpCsim78MwX4jOhEyDOEk9LSp4h/EhdEBtiNemYSzYJyjblhtv2iRSK8BKpwi2pq6er1MWq4lLRrqEhmV1Jsym7QNZosthKovlgVDVlTNtU25cGGFYElgpQsdV+khuAJug1y2giZl1ymTDWcHWfHqvKJneOZmSR1DymS1lMEbLenscsa+h5D71koFsxMtIQVoxREwhNkrFbKpNuyLYgSUza9ttPMkWOcm1ftcVQ+xibKqEqNXVs+swVWtJkxF1gLsiwq6C8Qv1YJ2c2mFzJUY9tSkGSCI2s3kCzI/Qlk9jTFQuzYZC0fcJYw9ZD8k6Tol1HsyOkpYyEXdtHmqpdru0jLVXtus5Z4qLsBCm9xbSXY1N6ni69xs6+GTJWi5lShkUvxaBZYnNiFmLQympkm7eUOG656WBYyihYt9omwVaM3l7WbVWfOieGmsXpM1aoxxp5s8Gyn2TEnle5jtQsBb3GgFlijblEWmsyYJaUoKyAHelpsqkWMlL+qI2aTdGu0W3V2oQ0dbHVY5tNaXXDu3rAiLXAaFBjg5miaFTpMmpIS5K2fUwrJGH7qp3PBxJVrHU2rxcI50QO4l+pWjeFoiOHMVogV817S7UEWkPDa5k4nirS0r2281WgKdPeHzPv7bfKPFRfh98ymWkq6fdGYLWnDNX4XvfUb4pQSevTpmefcbdS1NyYauyQ1ZuM1bqoeA6WHvHi7lHqscVkI0eU0fA9g5kgh4ZEb4FXNTE9QTpTpzSeRy94ymfTCllsJIl9HSNUJB9igRfpisYdKVZireGgn6EGn1lPghbGIDUeb6xjoz1Ht1EhkDr3LW3i8vQJSl4CRw/wfWXYO+epfa9FNnHdxPIEcUNH6pqiRaOehrFU4/TDK73EgRLQFTH4oZLiE1H7c6hISq9MHeKB5nq6jQolJ8njlWGmknnmGmkMLSYMdZa9BHeWd7ESJBBx2xejbjFeK3B+foo4Fu3j3haqlapqNAqVifHDS+va8ndPqV0dag1xX5jiQ117+YY1zFXOPB+ev5K3Fx7ki8uXUQ9t1rpLBFInkhpr7CVEKJj2cpSrLnHDoJa0iRsGjy0OK5p8oHI7t5UuZZM7x/FqN2/M7eH65DEAbl7ZTdGo8r7cFO8YvxIiKDVcokhQ9yzuntn8vC/9cz0HcW4EiNW+tYJZP5NolGhRjIgkEmhWbdxljaZrKW5A0NZtEKyWJqv3pxKbe1bWMjeZR6/ojKfzaEIyt5Im25DEFUHoqnl1o6m0B2QMwtPQA+W0pPvtmoUwxhEBt05ezPhUERkKSnmXgrUdSws5ttDNQjGNmLWZ3Zwhlhp2SRJkDexlwfJMFmdep5UwSDagXEowvH6FuSivFLE8JdcGSgvzjO9H0vUI/NRq3YDmt2+SUKIRc13qIN+qXMB3prbSCgwaDZuEETA62c1cNkU4l+D+lc0cKvUy56YJYw1zWcdZFOhNpf8YORLbCKlVcgSpOpEUXFk8yamTPW1ugFi1HEBp+6pkZQi/dvSXqLRsUrbPUi1B4Bt8aOAuTk0WAdCXTcZEkb/f+CVu3P8udE+gl4HY4rxdMxyvdtNYTqA5IVpLI3K1No1d1c2IQPD2wUf4kxM3qJoaX53fi90xElrALx57E9OVDN/tneKjg9/mbUdu4tvbv4wpdCbDJlVpEEvB9xtbEIHAiww4lcBpCpqNNE5J4/rL97PDPc0Hn3wXug9/0HMvt1a2c3ypm4/I17HcSrCjMMNFqVN0GTXeMX4l/7D2Pkb2bCPrtmg2LRwz5GNbv8rVz/vSP7cDxLnBpGxXc+rbNiFKFaLBIlrNIzp6grE/u4zePTGZJ+aZfXkf+aM+tSGL3LE6zT6H9MOKfXnoT4YYHloiiDWCr/XgpwXpyZiFFwkyo2DWJKVtqsdg1gRrvrlElLSIXQNzsUFQTHD5/3yE245chGFEvGfLg+yrDrHnrh3KzSqC+roIa0nDLqkehleAZn+o1I1HDerDEd17NRZ2Kw3GLZ+rUt6aIXW6RWW9g7sQ0uw2yB2usrItTe0Xqlw6MM6LMuNc4Izz1zPXMV7J8xdbvsLpoIsIjb8ZexlLT/RgVAVeMVazAALkmiZhw4BQQ2tobWUq9fT1umMSkxpeUZI+CdV1KthFjgqE+SO49WTjAAAKjklEQVQxyckWYcpUtRi6YGWTiVWWq3oY3ssqvH/7vUx5eW7IPs7NC1fye313kRDw6yffyGWFMW4+cDmMJ1ZzA3pL/W9zTYA7bqJFYJeU3md9XYg7ZZCclKSmA/yMzspGRYRKTkte9qEHGa0V2ZBa5NWZJ7nQrvODVh5HBPz6IzcRlG30quJlFC+dZepkUQnqegKjLghTktiJ0RsasSOV6nZbPh8NtJZGekyj2S0pHJYYLaUhYtVi9PfNcXouj5SC37noe3zinldBDO6MTpBWwzppqtyNtCS0OWZjb/pfvPXkNRyc72NnzwwPHtnAxLufWzvyDLJuv7xs49kZ0t114CM/v0zKM4iyLkbTw887WG1ehO618xApl2a3wFk2aRYF7oJNK6eTdhX/PVesMXm8B6PYJK2BVVaBLxpq0ai5WE5bS9GKiRdNwoxDlFCzJMJ38NMmXzhwCa/bup/JRo7vLmyl4jmECYnmCQwP+jcsMO0WiC1zlRqdG6xg6DGleoGukRKtk0WcgTq6HhPkHbyswKqYNLs0tNCg2aWRyDs0uzQ+sPX7VGOHfdU13LVwHgnD5+1r9vK5+avYNzdItebyxu2P8+VTXRg1gzihKo80X2AeTmBFMHTtBPO1FCuLKfA0RChwBuq0WmnC7oBW2YL1NbyyjZ4KaXk6zQULs2bhZ5R4a6wrEd3IEnhFldN595aHGTRLHK4PcPPClbw4M8p/mXg9YaxzSf4U5dAlmnNhqEUcaAhNEtQNRCQ4b/MkhxtrlceoELS6Y7ZtmeSwGMSsmXgNg1Ze0FgTInwNLdB4Q/ZRPl5/BbsSp3nvQ7/Ca7Yc4LrsQe6s7OIt2x7jjtPbWJ7LYDRN5p7oZePuSWIpmFzK4Zdt0j01etM1Ts11saF3Ca2dzfQig5TlMVdLU1spEgz7NOdtzLoKhrGhcWPfEeYLaQ6X+/jkwStZv3WGum8xr3WhFZRkQjbVRAiVcyg1XLJui7eevIbb1t/NzYU+djqnMbRr+cLzvejP8VqMcypAaK0QwkhVc3oBEqUAbdZjhB+i++qz7muqqCvQV8VkVhZS2MsanmVj1lQRkNGIiVt6O98g1cnwlOel1gqRltI91FohWmgRlU0Sms/ocpFKxSWVbmHUBUZTMTSXKklEU1+lRotA4AUGYaye7OWqS9KHMNCJIg2tFbUp00ou7czLaEbovuTR6jqGnBL3j4+s8ipaWYN9c4PU6g5R1eTB+fXodUUQ0uo6RlO0FadVjmS6kqFRt8HT0FoaQoLvG+gRKlcRQVC1EYFG5OmImt5uR7yaDNZ00BtKRk5vqO0frPVTjRzundxAHAt2bZ3k0FwfUgqu73mCRtytRoYtlbOREkSgISKYKmdX3cLU/gsmSnm0hsozKDk9gVFVPQi9BT46+yYHWZtYJmrq3Du5kRF3ge9MbGVDYREvMCHQ0AJFh55eyRDHGqGvQyRo1B2mI404EpxeyiGEItbFsWDZcGk0bKwIZFPtvxawKgNwqNrPQitFueUQTCWZlGp4o9c1QtNE2DGVmgtS0LBsokjQbFqUGi43F9QU6A3Hr2ehkXze1/y5noM4d2YxULMPCIE0xI9Sr02B1BTHIbbUtGZstNWmdQ10jbVrlMw97WpHpOJFCCsmbv8fTqx6EI4EQyM2NJW1PvMuYKJZ4LVrD7KmbxlDjwgTkrg9jZpOeEgrJrIVaSd2YhwrwLUCYhOSCY/IVt4Xth0gdUFkCWJTbT8y270hQ73vSk0y52e4fuMBNvQtsCM/gyNC1uZKaLrKyF0/+CRRKlYcCDcmdOWqLF1kQVeygeP6YMVIWxK5MZYVEtkSPRESWaAnQqQZK4KTG6s2tY9fbKp2RY7qSkeO2rcNiUWGrGV+e+vdvGb9ISIE23tnGSqs8EB5I4cqfSppaMUIJ2r/vmpDMVUncmMiV7aPvaQ7XSN21bmITCUhFyXU/sQm7G2M8MFd93BxagxhSK4aOgHAezc9wIbUIpoWo2cCxRER0JOpUUjXV2edbMenO13HtEOKmTrdmRrFVJ1iuk5/uko23SCyJCIRts+J4pTEJgy6K6xLLRNGGnpfk0KmTne+SuTGaIlwleeQTLbIpRo4TkAu02Bnzww7ndPccPxV3L7pTobTKzxvnOPTnOdUD+Inwaqqpx20RV9kW+hD/qiX5vh4N9kFQWyZSjOiEhHbajpRJS8loqEjExF6U2XaRCTbjET17k6b1LbbfH10F62JNHEqIlEWGHWw6pJ8qsqiyPxIUlHXZNtpSkmpLfoFpKaKwoRUPZczgixaJJ9SIGm/750fZmEij9bSGO3tRtsc88TYEPqSiVvWOFLrx1zWMevgNzTMinpKu4sxoSO4vHuMe6JNNJYS6unsa6oozRP4VRPdB8f1qdcNdSzcEC0w1M0dtb1MUQEC0bbjiwTXpQ/wH/b9Mo2qjWwa7Nw2wYEDa5FCkt7R4snJQexFjVavJPZ0hBFDKCASXNdzhJOPD6KF7SI04FeGH+TDEzcoBe9QMTKNYpOgZgEWt57azeJchlShgTVu8025i1yhTrmU5L5r/opvHN2FXLAxqwK7JLlx4AkCqXNz5XKIBAk74H1r7+UPF2/kP2+4E0tELEUpVqIEplCmNgejIm7KQwvspyW04c35R9hhSnYceR+Jww4feNe3+G5pO9NuF4mkj+/rdCUbbMou0G1VuXtmMx/b+lV+5Z73YmjXstBI8paxa/nyyPd4XlxKyTnvrHVOJCmFEAtAHVh8odvy/wNFfrbbD519+GlgrZSy+2xWzDp98vI1v3JWG73z+Md+fpOUUspuIcTeF+IA/LTws95+6OzDC4Jz4AH9bDgnAkQHHfxcQrJaVHiuohMgOujgBYME2QkQZ4vPPPcq5zR+1tsPnX3490dniHF2+DEbsZ85/Ky3Hzr78O+On4FZjHMmQHTQwc8lOj2IDjro4BnRCRAddNDBT4SUEEUvdCueFZ0A0UEHLyQ6PYgOOujgGdEJEB100MFPhuzMYnTQQQfPAAmyQ5TqoIMOnhGdHkQHHXTwjOjkIDrooIOfiM40ZwcddPBskHEnB9FBBx38RLywcnJng06A6KCDFwo/A8Va55RobQcd/NxBxmf3OgsIIV4lhDgqhDghhPi9n/B3WwjxpfbfHxZCrHuubXYCRAcdvECQgIzlWb2eC0IIHfgk8GpgO/A2IcT2H1vtPUBJSrkR+ATw0efabidAdNDBCwUpf5o9iEuAE1LKMSmlD9wG3Phj69wIfL79+avAtUI8zTX7J6CTg+iggxcQ8qc3zTkInH7a90ng0mdaR0oZCiHKQBfPogLeCRAddPACoUrpru/KrxbPcnVHCLH3ad8/8++hntUJEB108AJBSvmqn+LmpoDhp30fai/7SetMCiEMIAssPdtGOzmIDjr4vwN7gE1CiPVCCAt4K3D7j61zO3DGqedNwN3yOZyzOj2IDjr4vwDtnMIHgLsAHfg7KeVBIcQfA3ullLcDNwP/WwhxAlhGBZFnxTlhvddBBx2cm+gMMTrooINnRCdAdNBBB8+IToDooIMOnhGdANFBBx08IzoBooMOOnhGdAJEBx108IzoBIgOOujgGdEJEB100MEz4v8DY8FMC8n7BgcAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "3. Fitting and predicting using nested cross validation. This could really take a while...\n", "calculate performance: 0%| | 2/1230 [00:00<01:21, 15.11it/s]" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/ljia/.local/lib/python3.5/site-packages/sklearn/linear_model/ridge.py:154: UserWarning: Singular matrix in solving dual problem. Using least-squares solution instead.\n", " warnings.warn(\"Singular matrix in solving dual problem. Using \"\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n", "4. Getting final performances...\n", "\n", "best_params_out: [{}]\n", "best_params_in: [{'alpha': 0.028183829312644536}]\n", "\n", "best_val_perf: 19.284813121504737\n", "best_val_std: 1.7539191965273788\n", "final_performance: 17.419054880627353\n", "final_confidence: 6.5735119825429456\n", "train_performance: 8.713177142570567\n", "train_std: 0.6321269636192276\n", "\n", "time to calculate gram matrix with different hyperpapams: 21.94±nan\n", "time to calculate best gram matrix: 21.938350677490234 s\n", "\n", "params train_perf valid_perf test_perf gram_matrix_time\n", "--------------------- ------------ ------------ ----------- ------------------\n", "{'alpha': '1.00e-02'} 7.33±0.80 21.66±4.80 17.62±6.52 21.94\n", "{'alpha': '1.12e-02'} 12.46±27.45 60.87±219.23 32.83±83.68 21.94\n", "{'alpha': '1.26e-02'} 7.52±0.80 20.73±4.15 17.39±6.51 21.94\n", "{'alpha': '1.41e-02'} 7.59±0.73 20.11±3.03 17.22±6.52 21.94\n", "{'alpha': '1.58e-02'} 7.72±0.71 19.78±2.62 17.15±6.54 21.94\n", "{'alpha': '1.78e-02'} 7.87±0.69 19.56±2.36 17.14±6.56 21.94\n", "{'alpha': '2.00e-02'} 8.05±0.68 19.42±2.16 17.16±6.57 21.94\n", "{'alpha': '2.24e-02'} 8.24±0.66 19.33±2.00 17.22±6.58 21.94\n", "{'alpha': '2.51e-02'} 8.47±0.65 19.28±1.87 17.31±6.58 21.94\n", "{'alpha': '2.82e-02'} 8.71±0.63 19.28±1.75 17.42±6.57 21.94\n", "{'alpha': '3.16e-02'} 8.99±0.62 19.32±1.65 17.56±6.57 21.94\n", "{'alpha': '3.55e-02'} 9.29±0.60 19.40±1.56 17.73±6.55 21.94\n", "{'alpha': '3.98e-02'} 9.62±0.58 19.52±1.48 17.92±6.54 21.94\n", "{'alpha': '4.47e-02'} 9.98±0.57 19.67±1.40 18.15±6.52 21.94\n", "{'alpha': '5.01e-02'} 10.37±0.55 19.86±1.32 18.40±6.50 21.94\n", "{'alpha': '5.62e-02'} 10.80±0.54 20.08±1.25 18.68±6.47 21.94\n", "{'alpha': '6.31e-02'} 11.26±0.52 20.34±1.18 19.00±6.44 21.94\n", "{'alpha': '7.08e-02'} 11.76±0.51 20.64±1.11 19.35±6.41 21.94\n", "{'alpha': '7.94e-02'} 12.30±0.49 20.98±1.05 19.73±6.37 21.94\n", "{'alpha': '8.91e-02'} 12.87±0.48 21.35±1.00 20.15±6.32 21.94\n", "{'alpha': '1.00e-01'} 13.48±0.46 21.76±0.95 20.60±6.27 21.94\n", "{'alpha': '1.12e-01'} 14.12±0.45 22.20±0.91 21.08±6.22 21.94\n", "{'alpha': '1.26e-01'} 14.80±0.44 22.68±0.88 21.59±6.16 21.94\n", "{'alpha': '1.41e-01'} 15.51±0.43 23.19±0.86 22.13±6.09 21.94\n", "{'alpha': '1.58e-01'} 16.25±0.42 23.73±0.85 22.71±6.02 21.94\n", "{'alpha': '1.78e-01'} 17.02±0.41 24.30±0.84 23.31±5.94 21.94\n", "{'alpha': '2.00e-01'} 17.82±0.41 24.90±0.83 23.93±5.87 21.94\n", "{'alpha': '2.24e-01'} 18.63±0.41 25.51±0.83 24.57±5.79 21.94\n", "{'alpha': '2.51e-01'} 19.47±0.41 26.15±0.83 25.23±5.71 21.94\n", "{'alpha': '2.82e-01'} 20.32±0.41 26.80±0.82 25.90±5.62 21.94\n", "{'alpha': '3.16e-01'} 21.18±0.41 27.46±0.82 26.58±5.54 21.94\n", "{'alpha': '3.55e-01'} 22.05±0.41 28.13±0.82 27.26±5.46 21.94\n", "{'alpha': '3.98e-01'} 22.93±0.41 28.80±0.81 27.95±5.39 21.94\n", "{'alpha': '4.47e-01'} 23.80±0.41 29.46±0.81 28.63±5.32 21.94\n", "{'alpha': '5.01e-01'} 24.67±0.42 30.13±0.80 29.31±5.25 21.94\n", "{'alpha': '5.62e-01'} 25.54±0.42 30.79±0.79 29.98±5.19 21.94\n", "{'alpha': '6.31e-01'} 26.39±0.42 31.43±0.78 30.64±5.14 21.94\n", "{'alpha': '7.08e-01'} 27.23±0.43 32.07±0.77 31.29±5.09 21.94\n", "{'alpha': '7.94e-01'} 28.06±0.43 32.69±0.75 31.92±5.05 21.94\n", "{'alpha': '8.91e-01'} 28.86±0.43 33.29±0.74 32.54±5.02 21.94\n", "{'alpha': '1.00e+00'} 29.65±0.43 33.88±0.73 33.14±5.00 21.94\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python3.5/dist-packages/numpy/core/_methods.py:135: RuntimeWarning: Degrees of freedom <= 0 for slice\n", " keepdims=keepdims)\n", "/usr/local/lib/python3.5/dist-packages/numpy/core/_methods.py:127: RuntimeWarning: invalid value encountered in double_scalars\n", " ret = ret.dtype.type(ret / rcount)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "calculate performance: 100%|██████████| 1230/1230 [01:50<00:00, 14.38it/s]" ] } ], "source": [ "%load_ext line_profiler\n", "%matplotlib inline\n", "import numpy as np\n", "import sys\n", "sys.path.insert(0, \"../\")\n", "from pygraph.utils.model_selection_precomputed import model_selection_for_precomputed_kernel\n", "from pygraph.kernels.pathKernel import pathkernel\n", "\n", "datafile = '../../../../datasets/acyclic/Acyclic/dataset_bps.ds'\n", "estimator = pathkernel\n", "param_grid_precomputed = {}\n", "param_grid = {'alpha': np.logspace(-2, 0, num = 41, base = 10)}\n", "\n", "model_selection_for_precomputed_kernel(datafile, estimator, param_grid_precomputed, param_grid, \n", " 'regression', NUM_TRIALS=30)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The line_profiler extension is already loaded. To reload it, use:\n", " %reload_ext line_profiler\n", "\n", " --- This is a regression problem ---\n", "\n", "\n", " Loading dataset from file...\n", "\n", " Calculating kernel matrix, this could take a while...\n", "\n", " --- mean average path kernel matrix of size 185 built in 29.430902242660522 seconds ---\n", "[[ 0.55555556 0.22222222 0. ..., 0. 0. 0. ]\n", " [ 0.22222222 0.27777778 0. ..., 0. 0. 0. ]\n", " [ 0. 0. 0.55555556 ..., 0.03030303 0.03030303\n", " 0.03030303]\n", " ..., \n", " [ 0. 0. 0.03030303 ..., 0.08297521 0.05553719\n", " 0.05256198]\n", " [ 0. 0. 0.03030303 ..., 0.05553719 0.07239669\n", " 0.0538843 ]\n", " [ 0. 0. 0.03030303 ..., 0.05256198 0.0538843\n", " 0.07438017]]\n", "\n", " Saving kernel matrix to file...\n", "\n", " Mean performance on train set: 3.619948\n", "With standard deviation: 0.512351\n", "\n", " Mean performance on test set: 18.418852\n", "With standard deviation: 10.781119\n", "\n", "\n", " rmse_test std_test rmse_train std_train k_time\n", "----------- ---------- ------------ ----------- --------\n", " 18.4189 10.7811 3.61995 0.512351 29.4309\n" ] } ], "source": [ "%load_ext line_profiler\n", "\n", "import sys\n", "sys.path.insert(0, \"../\")\n", "from pygraph.utils.utils import kernel_train_test\n", "from pygraph.kernels.pathKernel import pathkernel, _pathkernel_do\n", "\n", "datafile = '../../../../datasets/acyclic/Acyclic/dataset_bps.ds'\n", "kernel_file_path = 'kernelmatrices_path_acyclic/'\n", "\n", "kernel_para = dict(node_label = 'atom', edge_label = 'bond_type')\n", "\n", "kernel_train_test(datafile, kernel_file_path, pathkernel, kernel_para, normalize = False)\n", "\n", "# %lprun -f _pathkernel_do \\\n", "# kernel_train_test(datafile, kernel_file_path, pathkernel, kernel_para, normalize = False)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# results\n", "\n", "# with y normalization\n", " RMSE_test std_test RMSE_train std_train k_time\n", "----------- ---------- ------------ ----------- --------\n", " 14.0015 6.93602 3.76191 0.702594 37.5759\n", "\n", "# without y normalization\n", " RMSE_test std_test RMSE_train std_train k_time\n", "----------- ---------- ------------ ----------- --------\n", " 18.4189 10.7811 3.61995 0.512351 29.4309" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "- This script take as input a kernel matrix\n", "and returns the classification or regression performance\n", "- The kernel matrix can be calculated using any of the graph kernels approaches\n", "- The criteria used for prediction are SVM for classification and kernel Ridge regression for regression\n", "- For predition we divide the data in training, validation and test. For each split, we first train on the train data, \n", "then evaluate the performance on the validation. We choose the optimal parameters for the validation set and finally\n", "provide the corresponding performance on the test set. If more than one split is performed, the final results \n", "correspond to the average of the performances on the test sets. \n", "\n", "@references\n", " https://github.com/eghisu/GraphKernels/blob/master/GraphKernelsCollection/python_scripts/compute_perf_gk.py\n", "\n" ] }, { "ename": "IndentationError", "evalue": "unindent does not match any outer indentation level (utils.py, line 106)", "output_type": "error", "traceback": [ "Traceback \u001b[0;36m(most recent call last)\u001b[0m:\n", " File \u001b[1;32m\"/usr/local/lib/python3.5/dist-packages/IPython/core/interactiveshell.py\"\u001b[0m, line \u001b[1;32m2910\u001b[0m, in \u001b[1;35mrun_code\u001b[0m\n exec(code_obj, self.user_global_ns, self.user_ns)\n", "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m31\u001b[0;36m, in \u001b[0;35m\u001b[0;36m\u001b[0m\n\u001b[0;31m from pygraph.utils.utils import split_train_test\u001b[0m\n", "\u001b[0;36m File \u001b[0;32m\"../pygraph/utils/utils.py\"\u001b[0;36m, line \u001b[0;32m106\u001b[0m\n\u001b[0;31m train_means_list = []\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mIndentationError\u001b[0m\u001b[0;31m:\u001b[0m unindent does not match any outer indentation level\n" ] } ], "source": [ "# Author: Elisabetta Ghisu\n", "\n", "\"\"\"\n", "- This script take as input a kernel matrix\n", "and returns the classification or regression performance\n", "- The kernel matrix can be calculated using any of the graph kernels approaches\n", "- The criteria used for prediction are SVM for classification and kernel Ridge regression for regression\n", "- For predition we divide the data in training, validation and test. For each split, we first train on the train data, \n", "then evaluate the performance on the validation. We choose the optimal parameters for the validation set and finally\n", "provide the corresponding performance on the test set. If more than one split is performed, the final results \n", "correspond to the average of the performances on the test sets. \n", "\n", "@references\n", " https://github.com/eghisu/GraphKernels/blob/master/GraphKernelsCollection/python_scripts/compute_perf_gk.py\n", "\"\"\"\n", "\n", "print(__doc__)\n", "\n", "import sys\n", "import os\n", "import pathlib\n", "from collections import OrderedDict\n", "sys.path.insert(0, \"../\")\n", "from tabulate import tabulate\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "from pygraph.kernels.pathKernel import pathkernel\n", "from pygraph.utils.graphfiles import loadDataset\n", "from pygraph.utils.utils import split_train_test\n", "\n", "train_means_list = []\n", "train_stds_list = []\n", "test_means_list = []\n", "test_stds_list = []\n", "kernel_time_list = []\n", "\n", "print('\\n Loading dataset from file...')\n", "dataset, y = loadDataset(\"../../../../datasets/acyclic/Acyclic/dataset_bps.ds\")\n", "y = np.array(y)\n", "print(y)\n", "\n", "# setup the parameters\n", "model_type = 'regression' # Regression or classification problem\n", "print('\\n --- This is a %s problem ---' % model_type)\n", "\n", "trials = 100 # Trials for hyperparameters random search\n", "splits = 10 # Number of splits of the data\n", "alpha_grid = np.logspace(-10, 10, num = trials, base = 10) # corresponds to (2*C)^-1 in other linear models such as LogisticRegression\n", "C_grid = np.logspace(-10, 10, num = trials, base = 10)\n", "\n", "# set the output path\n", "kernel_file_path = 'kernelmatrices_path_acyclic/'\n", "if not os.path.exists(kernel_file_path):\n", " os.makedirs(kernel_file_path)\n", "\n", "\"\"\"\n", "- Here starts the main program\n", "- First we permute the data, then for each split we evaluate corresponding performances\n", "- In the end, the performances are averaged over the test sets\n", "\"\"\"\n", "\n", "# save kernel matrices to files / read kernel matrices from files\n", "kernel_file = kernel_file_path + 'km.ds'\n", "path = pathlib.Path(kernel_file)\n", "# get train set kernel matrix\n", "if path.is_file():\n", " print('\\n Loading the kernel matrix from file...')\n", " Kmatrix = np.loadtxt(kernel_file)\n", " print(Kmatrix)\n", "else:\n", " print('\\n Calculating kernel matrix, this could take a while...')\n", " Kmatrix, run_time = pathkernel(dataset, node_label = 'atom', edge_label = 'bond_type')\n", " kernel_time_list.append(run_time)\n", " print(Kmatrix)\n", " print('\\n Saving kernel matrix to file...')\n", "# np.savetxt(kernel_file, Kmatrix)\n", " \n", "train_mean, train_std, test_mean, test_std = \\\n", " split_train_test(Kmatrix, y, alpha_grid, C_grid, splits, trials, model_type, normalize = True)\n", " \n", "train_means_list.append(train_mean)\n", "train_stds_list.append(train_std)\n", "test_means_list.append(test_mean)\n", "test_stds_list.append(test_std)\n", " \n", "print('\\n') \n", "table_dict = {'RMSE_test': test_means_list, 'std_test': test_stds_list, \\\n", " 'RMSE_train': train_means_list, 'std_train': train_stds_list, 'k_time': kernel_time_list}\n", "keyorder = ['RMSE_test', 'std_test', 'RMSE_train', 'std_train', 'k_time']\n", "print(tabulate(OrderedDict(sorted(table_dict.items(), key = lambda i:keyorder.index(i[0]))), headers='keys'))" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "ename": "ImportError", "evalue": "cannot import name 'deltaKernel'", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mImportError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0msys\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minsert\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"../\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mpygraph\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mutils\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgraphfiles\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mloadDataset\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mpygraph\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkernels\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdeltaKernel\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mdeltaKernel\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0mdataset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mloadDataset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"../../../../datasets/acyclic/Acyclic/dataset_bps.ds\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mImportError\u001b[0m: cannot import name 'deltaKernel'" ] } ], "source": [ "import sys\n", "import networkx as nx\n", "sys.path.insert(0, \"../\")\n", "from pygraph.utils.graphfiles import loadDataset\n", "from pygraph.kernels.deltaKernel import deltaKernel\n", "\n", "dataset, y = loadDataset(\"../../../../datasets/acyclic/Acyclic/dataset_bps.ds\")\n", "G1 = dataset[12]\n", "G2 = dataset[55]\n", "sp1 = []\n", "num_nodes = G1.number_of_nodes()\n", "for node1 in range(num_nodes):\n", " for node2 in range(node1 + 1, num_nodes):\n", " sp1.append(nx.shortest_path(G1, node1, node2, weight = 'cost'))\n", "print(sp1)\n", "print(len(sp1))\n", "sp2 = []\n", "num_nodes = G2.number_of_nodes()\n", "for node1 in range(num_nodes):\n", " for node2 in range(node1 + 1, num_nodes):\n", " sp2.append(nx.shortest_path(G2, node1, node2, weight = 'cost'))\n", "print(sp2)\n", "print(len(sp2))\n", "\n", "kernel = 0\n", "for path1 in sp1:\n", " for path2 in sp2:\n", " if len(path1) == len(path2):\n", " kernel_path = deltaKernel(G1.node[path1[0]]['label'] == G2.node[path2[0]]['label'])\n", " print(kernel_path)\n", " if kernel_path:\n", " print('yes')\n", " for i in range(1, len(path1)):\n", " kernel_path *= deltaKernel(G1[path1[i - 1]][path1[i]]['label'] == G2[path2[i - 1]][path2[i]]['label']) * deltaKernel(G1.node[path1[i]]['label'] == G2.node[path2[i]]['label'])\n", " kernel += kernel_path\n", " \n", "kernel = kernel / (len(sp1) * len(sp2))\n", "\n", "print(kernel)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "- This script take as input a kernel matrix\n", "and returns the classification or regression performance\n", "- The kernel matrix can be calculated using any of the graph kernels approaches\n", "- The criteria used for prediction are SVM for classification and kernel Ridge regression for regression\n", "- For predition we divide the data in training, validation and test. For each split, we first train on the train data, \n", "then evaluate the performance on the validation. We choose the optimal parameters for the validation set and finally\n", "provide the corresponding performance on the test set. If more than one split is performed, the final results \n", "correspond to the average of the performances on the test sets. \n", "\n", "@references\n", " https://github.com/eghisu/GraphKernels/blob/master/GraphKernelsCollection/python_scripts/compute_perf_gk.py\n", "\n", "\n", " --- This is a regression problem ---\n", "\n", " Normalizing output y...\n", "\n", " Loading the train set kernel matrix from file...\n", "[[ 0.15254237 0.08333333 0.0625 ..., 0.11363636 0.11363636\n", " 0.11363636]\n", " [ 0.08333333 0.18518519 0.15591398 ..., 0.16617791 0.16617791\n", " 0.16890214]\n", " [ 0.0625 0.15591398 0.15254237 ..., 0.12987013 0.12987013\n", " 0.13163636]\n", " ..., \n", " [ 0.11363636 0.16617791 0.12987013 ..., 0.26383753 0.2639004\n", " 0.26156557]\n", " [ 0.11363636 0.16617791 0.12987013 ..., 0.2639004 0.26396688\n", " 0.26162729]\n", " [ 0.11363636 0.16890214 0.13163636 ..., 0.26156557 0.26162729\n", " 0.25964592]]\n", "\n", " Loading the test set kernel matrix from file...\n", "[[ 0.18518519 0.1715847 0.11111111 0.16588603 0.11904762 0.16450216\n", " 0.17281421 0.14285714 0.125 0.16477273 0.16880154 0.14583333\n", " 0.1660693 0.16906445 0.13333333 0.16612903 0.16420966 0.16441006\n", " 0.15151515]\n", " [ 0.1715847 0.19988118 0.15173333 0.18435596 0.16465263 0.21184723\n", " 0.18985964 0.19960191 0.16819723 0.21540115 0.19575264 0.2041482\n", " 0.21842419 0.20001664 0.18754969 0.2205599 0.20506165 0.22256445\n", " 0.2141792 ]\n", " [ 0.11111111 0.15173333 0.16303156 0.13416478 0.16903494 0.16960573\n", " 0.13862936 0.18511129 0.16989276 0.17395417 0.14762351 0.18709221\n", " 0.17706477 0.15293506 0.17970939 0.17975775 0.16082785 0.18295252\n", " 0.19186573]\n", " [ 0.16588603 0.18435596 0.13416478 0.17413923 0.14529511 0.19230449\n", " 0.17775828 0.17598858 0.14892223 0.19462663 0.18166555 0.17986029\n", " 0.1964604 0.18450695 0.16510376 0.19788853 0.1876399 0.19921541\n", " 0.18843419]\n", " [ 0.11904762 0.16465263 0.16903494 0.14529511 0.17703225 0.18464872\n", " 0.15002895 0.19785455 0.17779663 0.18950917 0.16010081 0.2005743\n", " 0.19306131 0.16599977 0.19113529 0.1960531 0.175064 0.19963794\n", " 0.20696464]\n", " [ 0.16450216 0.21184723 0.16960573 0.19230449 0.18464872 0.23269314\n", " 0.19681552 0.22450276 0.1871932 0.23765844 0.20733248 0.22967925\n", " 0.241199 0.21337314 0.21125341 0.24426963 0.22285333 0.24802555\n", " 0.24156669]\n", " [ 0.17281421 0.18985964 0.13862936 0.17775828 0.15002895 0.19681552\n", " 0.18309269 0.18152273 0.15411585 0.19935309 0.18641218 0.18556038\n", " 0.20169527 0.18946029 0.17030032 0.20320694 0.19192382 0.2042596\n", " 0.19428999]\n", " [ 0.14285714 0.19960191 0.18511129 0.17598858 0.19785455 0.22450276\n", " 0.18152273 0.23269314 0.20168735 0.23049584 0.19407926 0.23694176\n", " 0.23486084 0.20134404 0.22042984 0.23854906 0.21275711 0.24302959\n", " 0.24678197]\n", " [ 0.125 0.16819723 0.16989276 0.14892223 0.17779663 0.1871932\n", " 0.15411585 0.20168735 0.18391356 0.19188588 0.16365606 0.20428161\n", " 0.1952436 0.16940489 0.1919249 0.19815511 0.17760881 0.20152837\n", " 0.20988805]\n", " [ 0.16477273 0.21540115 0.17395417 0.19462663 0.18950917 0.23765844\n", " 0.19935309 0.23049584 0.19188588 0.24296859 0.21058278 0.23586086\n", " 0.24679036 0.21702635 0.21699483 0.25006701 0.22724646 0.25407837\n", " 0.24818625]\n", " [ 0.16880154 0.19575264 0.14762351 0.18166555 0.16010081 0.20733248\n", " 0.18641218 0.19407926 0.16365606 0.21058278 0.19214629 0.19842989\n", " 0.21317298 0.19609213 0.18225175 0.2151567 0.20088139 0.2171273\n", " 0.20810339]\n", " [ 0.14583333 0.2041482 0.18709221 0.17986029 0.2005743 0.22967925\n", " 0.18556038 0.23694176 0.20428161 0.23586086 0.19842989 0.24154885\n", " 0.24042054 0.20590264 0.22439219 0.24421452 0.21769149 0.24880304\n", " 0.25200246]\n", " [ 0.1660693 0.21842419 0.17706477 0.1964604 0.19306131 0.241199\n", " 0.20169527 0.23486084 0.1952436 0.24679036 0.21317298 0.24042054\n", " 0.25107069 0.21988195 0.22126548 0.25446921 0.23058896 0.25855949\n", " 0.25312182]\n", " [ 0.16906445 0.20001664 0.15293506 0.18450695 0.16599977 0.21337314\n", " 0.18946029 0.20134404 0.16940489 0.21702635 0.19609213 0.20590264\n", " 0.21988195 0.20052959 0.18917551 0.22212027 0.2061696 0.22441239\n", " 0.21607563]\n", " [ 0.13333333 0.18754969 0.17970939 0.16510376 0.19113529 0.21125341\n", " 0.17030032 0.22042984 0.1919249 0.21699483 0.18225175 0.22439219\n", " 0.22126548 0.18917551 0.2112185 0.224781 0.20021961 0.22904467\n", " 0.23356012]\n", " [ 0.16612903 0.2205599 0.17975775 0.19788853 0.1960531 0.24426963\n", " 0.20320694 0.23854906 0.19815511 0.25006701 0.2151567 0.24421452\n", " 0.25446921 0.22212027 0.224781 0.25800115 0.23326559 0.26226067\n", " 0.25717144]\n", " [ 0.16420966 0.20506165 0.16082785 0.1876399 0.175064 0.22285333\n", " 0.19192382 0.21275711 0.17760881 0.22724646 0.20088139 0.21769149\n", " 0.23058896 0.2061696 0.20021961 0.23326559 0.21442192 0.2364528\n", " 0.22891788]\n", " [ 0.16441006 0.22256445 0.18295252 0.19921541 0.19963794 0.24802555\n", " 0.2042596 0.24302959 0.20152837 0.25407837 0.2171273 0.24880304\n", " 0.25855949 0.22441239 0.22904467 0.26226067 0.2364528 0.26687384\n", " 0.26210305]\n", " [ 0.15151515 0.2141792 0.19186573 0.18843419 0.20696464 0.24156669\n", " 0.19428999 0.24678197 0.20988805 0.24818625 0.20810339 0.25200246\n", " 0.25312182 0.21607563 0.23356012 0.25717144 0.22891788 0.26210305\n", " 0.26386999]]\n" ] }, { "ename": "ValueError", "evalue": "Precomputed metric requires shape (n_queries, n_indexed). Got (19, 19) for 164 indexed.", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 133\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 134\u001b[0m \u001b[0;31m# predict on the test set\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 135\u001b[0;31m \u001b[0my_pred_test\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mKR\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mKmatrix_test\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 136\u001b[0m \u001b[0;31m# print(y_pred)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 137\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.5/dist-packages/sklearn/kernel_ridge.py\u001b[0m in \u001b[0;36mpredict\u001b[0;34m(self, X)\u001b[0m\n\u001b[1;32m 182\u001b[0m \"\"\"\n\u001b[1;32m 183\u001b[0m \u001b[0mcheck_is_fitted\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m\"X_fit_\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"dual_coef_\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 184\u001b[0;31m \u001b[0mK\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_kernel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mX_fit_\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 185\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mK\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdual_coef_\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.5/dist-packages/sklearn/kernel_ridge.py\u001b[0m in \u001b[0;36m_get_kernel\u001b[0;34m(self, X, Y)\u001b[0m\n\u001b[1;32m 119\u001b[0m \"coef0\": self.coef0}\n\u001b[1;32m 120\u001b[0m return pairwise_kernels(X, Y, metric=self.kernel,\n\u001b[0;32m--> 121\u001b[0;31m filter_params=True, **params)\n\u001b[0m\u001b[1;32m 122\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 123\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mproperty\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.5/dist-packages/sklearn/metrics/pairwise.py\u001b[0m in \u001b[0;36mpairwise_kernels\u001b[0;34m(X, Y, metric, filter_params, n_jobs, **kwds)\u001b[0m\n\u001b[1;32m 1389\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1390\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mmetric\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"precomputed\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1391\u001b[0;31m \u001b[0mX\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcheck_pairwise_arrays\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mY\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mprecomputed\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1392\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mX\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1393\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmetric\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mGPKernel\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.5/dist-packages/sklearn/metrics/pairwise.py\u001b[0m in \u001b[0;36mcheck_pairwise_arrays\u001b[0;34m(X, Y, precomputed, dtype)\u001b[0m\n\u001b[1;32m 117\u001b[0m \u001b[0;34m\"(n_queries, n_indexed). Got (%d, %d) \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 118\u001b[0m \u001b[0;34m\"for %d indexed.\"\u001b[0m \u001b[0;34m%\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 119\u001b[0;31m (X.shape[0], X.shape[1], Y.shape[0]))\n\u001b[0m\u001b[1;32m 120\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mX\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mY\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 121\u001b[0m raise ValueError(\"Incompatible dimension for X and Y matrices: \"\n", "\u001b[0;31mValueError\u001b[0m: Precomputed metric requires shape (n_queries, n_indexed). Got (19, 19) for 164 indexed." ] } ], "source": [ "# Author: Elisabetta Ghisu\n", "\n", "\"\"\"\n", "- This script take as input a kernel matrix\n", "and returns the classification or regression performance\n", "- The kernel matrix can be calculated using any of the graph kernels approaches\n", "- The criteria used for prediction are SVM for classification and kernel Ridge regression for regression\n", "- For predition we divide the data in training, validation and test. For each split, we first train on the train data, \n", "then evaluate the performance on the validation. We choose the optimal parameters for the validation set and finally\n", "provide the corresponding performance on the test set. If more than one split is performed, the final results \n", "correspond to the average of the performances on the test sets. \n", "\n", "@references\n", " https://github.com/eghisu/GraphKernels/blob/master/GraphKernelsCollection/python_scripts/compute_perf_gk.py\n", "\"\"\"\n", "\n", "print(__doc__)\n", "\n", "import sys\n", "import pathlib\n", "import os\n", "sys.path.insert(0, \"../\")\n", "from tabulate import tabulate\n", "\n", "import random\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "from sklearn.kernel_ridge import KernelRidge # 0.17\n", "from sklearn.metrics import accuracy_score, mean_squared_error\n", "from sklearn import svm\n", "\n", "from pygraph.kernels.pathKernel import pathKernel\n", "from pygraph.utils.graphfiles import loadDataset\n", "\n", "# print('\\n Loading dataset from file...')\n", "# dataset, y = loadDataset(\"/home/ljia/Documents/research-repo/datasets/acyclic/Acyclic/dataset_bps.ds\")\n", "# y = np.array(y)\n", "# print(y)\n", "\n", "# kernel_file_path = 'marginalizedkernelmatrix.ds'\n", "# path = pathlib.Path(kernel_file_path)\n", "# if path.is_file():\n", "# print('\\n Loading the matrix from file...')\n", "# Kmatrix = np.loadtxt(kernel_file_path)\n", "# print(Kmatrix)\n", "# else:\n", "# print('\\n Calculating kernel matrix, this could take a while...')\n", "# Kmatrix = marginalizeKernel(dataset)\n", "# print(Kmatrix)\n", "# print('Saving kernel matrix to file...')\n", "# np.savetxt(kernel_file_path, Kmatrix)\n", "\n", "# setup the parameters\n", "model_type = 'regression' # Regression or classification problem\n", "print('\\n --- This is a %s problem ---' % model_type)\n", "\n", "# datasize = len(dataset)\n", "trials = 100 # Trials for hyperparameters random search\n", "splits = 100 # Number of splits of the data\n", "alpha_grid = np.linspace(0.01, 100, num = trials) # corresponds to (2*C)^-1 in other linear models such as LogisticRegression\n", "# C_grid = np.linspace(0.0001, 10, num = trials)\n", "random.seed(20) # Set the seed for uniform parameter distribution\n", "data_dir = '/home/ljia/Documents/research-repo/datasets/acyclic/Acyclic/'\n", "\n", "# set the output path\n", "kernel_file_path = 'kernelmatrices_marginalized_acyclic/'\n", "if not os.path.exists(kernel_file_path):\n", " os.makedirs(kernel_file_path)\n", "\n", "\n", "\"\"\"\n", "- Here starts the main program\n", "- First we permute the data, then for each split we evaluate corresponding performances\n", "- In the end, the performances are averaged over the test sets\n", "\"\"\"\n", "\n", "# Initialize the performance of the best parameter trial on validation with the corresponding performance on test\n", "val_split = []\n", "test_split = []\n", "\n", "p_quit = 0.5\n", "\n", "# for each split of the data\n", "for j in range(10):\n", " dataset_train, y_train = loadDataset(data_dir + 'trainset_' + str(j) + '.ds')\n", " dataset_test, y_test = loadDataset(data_dir + 'testset_' + str(j) + '.ds')\n", " \n", " # Normalization step (for real valued targets only)\n", " if model_type == 'regression':\n", " print('\\n Normalizing output y...')\n", " y_train_mean = np.mean(y_train)\n", " y_train_std = np.std(y_train)\n", " y_train = (y_train - y_train_mean) / float(y_train_std)\n", "# print(y)\n", " \n", " # save kernel matrices to files / read kernel matrices from files\n", " kernel_file_train = kernel_file_path + 'train' + str(j) + '_pquit_' + str(p_quit)\n", " kernel_file_test = kernel_file_path + 'test' + str(j) + '_pquit_' + str(p_quit)\n", " path_train = pathlib.Path(kernel_file_train)\n", " path_test = pathlib.Path(kernel_file_test)\n", " # get train set kernel matrix\n", " if path_train.is_file():\n", " print('\\n Loading the train set kernel matrix from file...')\n", " Kmatrix_train = np.loadtxt(kernel_file_train)\n", " print(Kmatrix_train)\n", " else:\n", " print('\\n Calculating train set kernel matrix, this could take a while...')\n", " Kmatrix_train = marginalizedkernel(dataset_train, p_quit, 20)\n", " print(Kmatrix_train)\n", " print('\\n Saving train set kernel matrix to file...')\n", " np.savetxt(kernel_file_train, Kmatrix_train)\n", " # get test set kernel matrix\n", " if path_test.is_file():\n", " print('\\n Loading the test set kernel matrix from file...')\n", " Kmatrix_test = np.loadtxt(kernel_file_test)\n", " print(Kmatrix_test)\n", " else:\n", " print('\\n Calculating test set kernel matrix, this could take a while...')\n", " Kmatrix_test = marginalizedkernel(dataset_test, p_quit, 20)\n", " print(Kmatrix_test)\n", " print('\\n Saving test set kernel matrix to file...')\n", " np.savetxt(kernel_file_test, Kmatrix_test)\n", "\n", " # For each parameter trial\n", " for i in range(trials):\n", " # For regression use the Kernel Ridge method\n", " if model_type == 'regression':\n", " # print('\\n Starting experiment for trial %d and parameter alpha = %3f\\n ' % (i, alpha_grid[i]))\n", "\n", " # Fit the kernel ridge model\n", " KR = KernelRidge(kernel = 'precomputed', alpha = alpha_grid[i])\n", " KR.fit(Kmatrix_train, y_train)\n", "\n", " # predict on the test set\n", " y_pred_test = KR.predict(Kmatrix_test)\n", " # print(y_pred)\n", "\n", " # adjust prediction: needed because the training targets have been normalized\n", " y_pred_test = y_pred_test * float(y_train_std) + y_train_mean\n", " # print(y_pred_test)\n", "\n", " # root mean squared error in test \n", " rmse_test = np.sqrt(mean_squared_error(y_test, y_pred_test))\n", " perf_all_test.append(rmse_test)\n", "\n", " # print('The performance on the validation set is: %3f' % rmse)\n", " # print('The performance on the test set is: %3f' % rmse_test)\n", "\n", " # --- FIND THE OPTIMAL PARAMETERS --- #\n", " # For regression: minimise the mean squared error\n", " if model_type == 'regression':\n", "\n", " # get optimal parameter on test (argmin mean squared error)\n", " min_idx = np.argmin(perf_all_test)\n", " alpha_opt = alpha_grid[min_idx]\n", "\n", " # corresponding performance on test for the same parameter\n", " perf_test_opt = perf_all_test[min_idx]\n", "\n", " print('The best performance is for trial %d with parameter alpha = %3f' % (min_idx, alpha_opt))\n", " print('The corresponding performance on test set is: %3f' % perf_test_opt)\n", " \n", " \n", " \n", "\n", "# For each split of the data\n", "for j in range(10, 10 + splits):\n", " print('Starting split %d...' % j)\n", "\n", " # Set the random set for data permutation\n", " random_state = int(j)\n", " np.random.seed(random_state)\n", " idx_perm = np.random.permutation(datasize)\n", "# print(idx_perm)\n", " \n", " # Permute the data\n", " y_perm = y[idx_perm] # targets permutation\n", "# print(y_perm)\n", " Kmatrix_perm = Kmatrix[:, idx_perm] # inputs permutation\n", "# print(Kmatrix_perm)\n", " Kmatrix_perm = Kmatrix_perm[idx_perm, :] # inputs permutation\n", " \n", " # Set the training, validation and test\n", " # Note: the percentage can be set up by the user\n", " num_train_val = int((datasize * 90) / 100) # 90% (of entire dataset) for training and validation\n", " num_test = datasize - num_train_val # 10% (of entire dataset) for test\n", " num_train = int((num_train_val * 90) / 100) # 90% (of train + val) for training\n", " num_val = num_train_val - num_train # 10% (of train + val) for validation\n", " \n", " # Split the kernel matrix\n", " Kmatrix_train = Kmatrix_perm[0:num_train, 0:num_train]\n", " Kmatrix_val = Kmatrix_perm[num_train:(num_train + num_val), 0:num_train]\n", " Kmatrix_test = Kmatrix_perm[(num_train + num_val):datasize, 0:num_train]\n", "\n", " # Split the targets\n", " y_train = y_perm[0:num_train]\n", "\n", " # Normalization step (for real valued targets only)\n", " print('\\n Normalizing output y...')\n", " if model_type == 'regression':\n", " y_train_mean = np.mean(y_train)\n", " y_train_std = np.std(y_train)\n", " y_train = (y_train - y_train_mean) / float(y_train_std)\n", "# print(y)\n", " \n", " y_val = y_perm[num_train:(num_train + num_val)]\n", " y_test = y_perm[(num_train + num_val):datasize]\n", " \n", " # Record the performance for each parameter trial respectively on validation and test set\n", " perf_all_val = []\n", " perf_all_test = []\n", " \n", " " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 2 }