From c08fd4f321c4a21b63dd79e1bc62e820fb636c38 Mon Sep 17 00:00:00 2001 From: Milton Pividori Date: Mon, 8 Jan 2024 09:14:40 -0700 Subject: [PATCH] k_max analyses: add notebook to plot results --- nbs/99_manuscript/k_max/03-k_max-plots.ipynb | 966 +++++++++++++++++++ nbs/99_manuscript/k_max/py/03-k_max-plots.py | 167 ++++ 2 files changed, 1133 insertions(+) create mode 100644 nbs/99_manuscript/k_max/03-k_max-plots.ipynb create mode 100644 nbs/99_manuscript/k_max/py/03-k_max-plots.py diff --git a/nbs/99_manuscript/k_max/03-k_max-plots.ipynb b/nbs/99_manuscript/k_max/03-k_max-plots.ipynb new file mode 100644 index 00000000..444b816a --- /dev/null +++ b/nbs/99_manuscript/k_max/03-k_max-plots.ipynb @@ -0,0 +1,966 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "c1948eb4-fb63-4fad-8243-bcd57b98def3", + "metadata": { + "papermill": { + "duration": 0.005855, + "end_time": "2024-01-08T16:10:30.257537", + "exception": false, + "start_time": "2024-01-08T16:10:30.251682", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "# Description" + ] + }, + { + "cell_type": "markdown", + "id": "d5775ff8-d222-4fbc-b1a9-8366662c2896", + "metadata": { + "papermill": { + "duration": 0.004453, + "end_time": "2024-01-08T16:10:30.272482", + "exception": false, + "start_time": "2024-01-08T16:10:30.268029", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "Reads $k_{\\mathrm{max}}$ analyses and plot results." + ] + }, + { + "cell_type": "markdown", + "id": "d6252b4c-6d56-4cf0-aecd-5d8c769a3609", + "metadata": { + "papermill": { + "duration": 0.004415, + "end_time": "2024-01-08T16:10:30.282910", + "exception": false, + "start_time": "2024-01-08T16:10:30.278495", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "# Modules loading" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "77e9d29d-5307-4b4a-b103-7d1fbd6a7e56", + "metadata": { + "execution": { + "iopub.execute_input": "2024-01-08T16:10:30.293338Z", + "iopub.status.busy": "2024-01-08T16:10:30.293016Z", + "iopub.status.idle": "2024-01-08T16:10:31.078510Z", + "shell.execute_reply": "2024-01-08T16:10:31.078035Z" + }, + "papermill": { + "duration": 0.792755, + "end_time": "2024-01-08T16:10:31.080258", + "exception": false, + "start_time": "2024-01-08T16:10:30.287503", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "\n", + "from ccc import conf\n", + "from ccc.coef import ccc" + ] + }, + { + "cell_type": "markdown", + "id": "262eb535-3e5d-43d7-9efd-bd6cfdac9190", + "metadata": { + "papermill": { + "duration": 0.004494, + "end_time": "2024-01-08T16:10:31.089682", + "exception": false, + "start_time": "2024-01-08T16:10:31.085188", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "# Settings" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d24607ca-2774-4e51-b392-538c85c86052", + "metadata": { + "papermill": { + "duration": 0.0045, + "end_time": "2024-01-08T16:10:31.098867", + "exception": false, + "start_time": "2024-01-08T16:10:31.094367", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "eec9bb6d-4ba2-4817-9b36-bc8e68a2beae", + "metadata": { + "papermill": { + "duration": 0.004471, + "end_time": "2024-01-08T16:10:31.107970", + "exception": false, + "start_time": "2024-01-08T16:10:31.103499", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "# Paths" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "413010af-a3b0-45a0-adb8-8559c06d228c", + "metadata": { + "execution": { + "iopub.execute_input": "2024-01-08T16:10:31.118060Z", + "iopub.status.busy": "2024-01-08T16:10:31.117723Z", + "iopub.status.idle": "2024-01-08T16:10:31.121000Z", + "shell.execute_reply": "2024-01-08T16:10:31.120560Z" + }, + "papermill": { + "duration": 0.009763, + "end_time": "2024-01-08T16:10:31.122338", + "exception": false, + "start_time": "2024-01-08T16:10:31.112575", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "assert (\n", + " conf.MANUSCRIPT[\"BASE_DIR\"] is not None and conf.MANUSCRIPT[\"BASE_DIR\"].exists()\n", + "), \"Manuscript dir not set\"" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "ee9e6b70-9abd-4714-9ce5-49c270a1b0be", + "metadata": { + "execution": { + "iopub.execute_input": "2024-01-08T16:10:31.132334Z", + "iopub.status.busy": "2024-01-08T16:10:31.132029Z", + "iopub.status.idle": "2024-01-08T16:10:31.137935Z", + "shell.execute_reply": "2024-01-08T16:10:31.137462Z" + }, + "papermill": { + "duration": 0.012268, + "end_time": "2024-01-08T16:10:31.139286", + "exception": false, + "start_time": "2024-01-08T16:10:31.127018", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "PosixPath('/opt/data/results/k_max_test')" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "INPUT_DIR = conf.RESULTS_DIR / \"k_max_test\"\n", + "INPUT_DIR.mkdir(parents=True, exist_ok=True)\n", + "display(INPUT_DIR)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "dba263cb-ebc2-46d6-ba7e-0a782588d279", + "metadata": { + "execution": { + "iopub.execute_input": "2024-01-08T16:10:31.149705Z", + "iopub.status.busy": "2024-01-08T16:10:31.149343Z", + "iopub.status.idle": "2024-01-08T16:10:31.153147Z", + "shell.execute_reply": "2024-01-08T16:10:31.152679Z" + }, + "papermill": { + "duration": 0.010404, + "end_time": "2024-01-08T16:10:31.154471", + "exception": false, + "start_time": "2024-01-08T16:10:31.144067", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "PosixPath('/opt/data/results/k_max_test/k_max-results.pkl')" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "INPUT_FILE = INPUT_DIR / \"k_max-results.pkl\"\n", + "display(INPUT_FILE)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "e9d32632-5447-407e-8d83-918b3d47b612", + "metadata": { + "execution": { + "iopub.execute_input": "2024-01-08T16:10:31.164989Z", + "iopub.status.busy": "2024-01-08T16:10:31.164655Z", + "iopub.status.idle": "2024-01-08T16:10:31.168885Z", + "shell.execute_reply": "2024-01-08T16:10:31.168411Z" + }, + "papermill": { + "duration": 0.010928, + "end_time": "2024-01-08T16:10:31.170239", + "exception": false, + "start_time": "2024-01-08T16:10:31.159311", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "PosixPath('/opt/manuscript/content/images/misc')" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "OUTPUT_FIGURE_DIR = conf.MANUSCRIPT[\"FIGURES_DIR\"] / \"misc\"\n", + "OUTPUT_FIGURE_DIR.mkdir(parents=True, exist_ok=True)\n", + "display(OUTPUT_FIGURE_DIR)" + ] + }, + { + "cell_type": "markdown", + "id": "2597ad7d", + "metadata": { + "papermill": { + "duration": 0.004783, + "end_time": "2024-01-08T16:10:31.179924", + "exception": false, + "start_time": "2024-01-08T16:10:31.175141", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "# Load data" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "97b70efe-b953-40ba-bdda-8d0c90abc0de", + "metadata": { + "execution": { + "iopub.execute_input": "2024-01-08T16:10:31.188293Z", + "iopub.status.busy": "2024-01-08T16:10:31.188141Z", + "iopub.status.idle": "2024-01-08T16:10:31.191819Z", + "shell.execute_reply": "2024-01-08T16:10:31.191332Z" + }, + "papermill": { + "duration": 0.008369, + "end_time": "2024-01-08T16:10:31.192634", + "exception": false, + "start_time": "2024-01-08T16:10:31.184265", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "results = pd.read_pickle(INPUT_FILE)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "eb31f318-5413-4e81-b81b-a13f3ed91848", + "metadata": { + "execution": { + "iopub.execute_input": "2024-01-08T16:10:31.198469Z", + "iopub.status.busy": "2024-01-08T16:10:31.198144Z", + "iopub.status.idle": "2024-01-08T16:10:31.201939Z", + "shell.execute_reply": "2024-01-08T16:10:31.201456Z" + }, + "papermill": { + "duration": 0.007717, + "end_time": "2024-01-08T16:10:31.202816", + "exception": false, + "start_time": "2024-01-08T16:10:31.195099", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(33, 4)" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "e4fbe0fe-d584-49ad-bf1c-9f1d0adfb833", + "metadata": { + "execution": { + "iopub.execute_input": "2024-01-08T16:10:31.208868Z", + "iopub.status.busy": "2024-01-08T16:10:31.208441Z", + "iopub.status.idle": "2024-01-08T16:10:31.218721Z", + "shell.execute_reply": "2024-01-08T16:10:31.218249Z" + }, + "papermill": { + "duration": 0.014169, + "end_time": "2024-01-08T16:10:31.219542", + "exception": false, + "start_time": "2024-01-08T16:10:31.205373", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
data_sizek_maxk_max_as_n_fractioncoef
0200.02.00.010.043594
1200.010.00.050.043594
2200.024.00.120.043594
3200.046.00.230.043594
4200.068.00.340.043594
\n", + "
" + ], + "text/plain": [ + " data_size k_max k_max_as_n_fraction coef\n", + "0 200.0 2.0 0.01 0.043594\n", + "1 200.0 10.0 0.05 0.043594\n", + "2 200.0 24.0 0.12 0.043594\n", + "3 200.0 46.0 0.23 0.043594\n", + "4 200.0 68.0 0.34 0.043594" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results.head()" + ] + }, + { + "cell_type": "markdown", + "id": "df7a660a-61af-48ed-9fd8-eb7b2c6a4e49", + "metadata": { + "papermill": { + "duration": 0.00261, + "end_time": "2024-01-08T16:10:31.224801", + "exception": false, + "start_time": "2024-01-08T16:10:31.222191", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "# Stats" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "04f4e3c1-1146-47ab-8fbd-5b45f23bbf03", + "metadata": { + "execution": { + "iopub.execute_input": "2024-01-08T16:10:31.230732Z", + "iopub.status.busy": "2024-01-08T16:10:31.230565Z", + "iopub.status.idle": "2024-01-08T16:10:31.248247Z", + "shell.execute_reply": "2024-01-08T16:10:31.247759Z" + }, + "papermill": { + "duration": 0.021625, + "end_time": "2024-01-08T16:10:31.249037", + "exception": false, + "start_time": "2024-01-08T16:10:31.227412", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
data_sizek_maxk_max_as_n_fractioncoef
count33.00000033.00000033.00000033.000000
mean866.666667395.5151520.4586530.019595
std690.410506489.0038420.3377930.018079
min200.0000002.0000000.0011110.001045
25%200.00000068.0000000.1200000.003200
50%600.000000200.0000000.4450000.010162
75%1800.000000533.0000000.7777780.043594
max1800.0000001800.0000001.0000000.043594
\n", + "
" + ], + "text/plain": [ + " data_size k_max k_max_as_n_fraction coef\n", + "count 33.000000 33.000000 33.000000 33.000000\n", + "mean 866.666667 395.515152 0.458653 0.019595\n", + "std 690.410506 489.003842 0.337793 0.018079\n", + "min 200.000000 2.000000 0.001111 0.001045\n", + "25% 200.000000 68.000000 0.120000 0.003200\n", + "50% 600.000000 200.000000 0.445000 0.010162\n", + "75% 1800.000000 533.000000 0.777778 0.043594\n", + "max 1800.000000 1800.000000 1.000000 0.043594" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results.describe()" + ] + }, + { + "cell_type": "markdown", + "id": "f6186c63-d6af-420c-be22-cf0ddd478cde", + "metadata": { + "papermill": { + "duration": 0.00272, + "end_time": "2024-01-08T16:10:31.254549", + "exception": false, + "start_time": "2024-01-08T16:10:31.251829", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "# Change data types" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "75f69785-4f09-4bc5-95cc-dc0105536882", + "metadata": { + "execution": { + "iopub.execute_input": "2024-01-08T16:10:31.260880Z", + "iopub.status.busy": "2024-01-08T16:10:31.260485Z", + "iopub.status.idle": "2024-01-08T16:10:31.265160Z", + "shell.execute_reply": "2024-01-08T16:10:31.264691Z" + }, + "papermill": { + "duration": 0.008744, + "end_time": "2024-01-08T16:10:31.265977", + "exception": false, + "start_time": "2024-01-08T16:10:31.257233", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "data_size float64\n", + "k_max float64\n", + "k_max_as_n_fraction float64\n", + "coef float64\n", + "dtype: object" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results.dtypes" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "3314e2e2-08f1-43fa-b973-488fbc0b762f", + "metadata": { + "execution": { + "iopub.execute_input": "2024-01-08T16:10:31.272796Z", + "iopub.status.busy": "2024-01-08T16:10:31.272237Z", + "iopub.status.idle": "2024-01-08T16:10:31.276312Z", + "shell.execute_reply": "2024-01-08T16:10:31.275836Z" + }, + "papermill": { + "duration": 0.008234, + "end_time": "2024-01-08T16:10:31.277076", + "exception": false, + "start_time": "2024-01-08T16:10:31.268842", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "results[\"data_size\"] = results[\"data_size\"].astype(int)\n", + "results[\"k_max\"] = results[\"k_max\"].astype(int)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "933f152c-4f51-4cf8-b6ed-d7f90d7bb9c2", + "metadata": { + "execution": { + "iopub.execute_input": "2024-01-08T16:10:31.283563Z", + "iopub.status.busy": "2024-01-08T16:10:31.283237Z", + "iopub.status.idle": "2024-01-08T16:10:31.287680Z", + "shell.execute_reply": "2024-01-08T16:10:31.287199Z" + }, + "papermill": { + "duration": 0.008588, + "end_time": "2024-01-08T16:10:31.288496", + "exception": false, + "start_time": "2024-01-08T16:10:31.279908", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "data_size int64\n", + "k_max int64\n", + "k_max_as_n_fraction float64\n", + "coef float64\n", + "dtype: object" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results.dtypes" + ] + }, + { + "cell_type": "markdown", + "id": "4fad9af5-d018-4669-be7b-50c4a999f596", + "metadata": { + "papermill": { + "duration": 0.002821, + "end_time": "2024-01-08T16:10:31.294191", + "exception": false, + "start_time": "2024-01-08T16:10:31.291370", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "# Plot" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "1cb866fb-81ac-4276-a7c5-114e3ebf5bb7", + "metadata": { + "execution": { + "iopub.execute_input": "2024-01-08T16:10:31.300757Z", + "iopub.status.busy": "2024-01-08T16:10:31.300431Z", + "iopub.status.idle": "2024-01-08T16:10:31.303963Z", + "shell.execute_reply": "2024-01-08T16:10:31.303467Z" + }, + "papermill": { + "duration": 0.007701, + "end_time": "2024-01-08T16:10:31.304744", + "exception": false, + "start_time": "2024-01-08T16:10:31.297043", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "sns.set(rc={\"figure.figsize\": (12, 8)})" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "a80ec32a-b519-4d89-babf-eb40eb81f80d", + "metadata": { + "execution": { + "iopub.execute_input": "2024-01-08T16:10:31.311487Z", + "iopub.status.busy": "2024-01-08T16:10:31.311004Z", + "iopub.status.idle": "2024-01-08T16:10:31.714553Z", + "shell.execute_reply": "2024-01-08T16:10:31.714212Z" + }, + "papermill": { + "duration": 0.408123, + "end_time": "2024-01-08T16:10:31.715710", + "exception": false, + "start_time": "2024-01-08T16:10:31.307587", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwwAAAILCAYAAABFDRt3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABh9klEQVR4nO3de1xUdeL/8ffAcBPEKxKa1xJUMNf7ZattXduob7aV2S6t6ddarbUtv99dy9p2C/xWZquVtmb+TK1EKbfS7ba6dr9RaK6FaOQN8wahCTggMDDn9wfOyAhHBhiGAV7Px6OEcz6fz/mcD0c57/mci8UwDEMAAAAAUIuA5u4AAAAAAP9FYAAAAABgisAAAAAAwBSBAQAAAIApAgMAAAAAUwQGAAAAAKaszd0BM/v379cnn3yizMxM7dy5Uzk5OTIMQ4sXL1ZiYmKD233zzTeVlpam7OxsORwO9e3bV5MmTVJSUpICAshPAAAAQHV+GxjS0tL00ksvebXNlJQUrVu3TiEhIRo7dqysVqvS09M1b948paena/HixQoMDPTqNgEAAICWzG8DQ2xsrG6//XYlJCQoISFBDz74oDIyMhrc3ubNm7Vu3TpFRUUpNTVVffr0kSQdP35cU6dO1ZYtW5Samqpp06Z5aQ8AAACAls9vA8PkyZO92t7y5cslSXPmzHGFBUnq2rWrkpOTdeutt2rFihW69dZbuTQJAAAAOKNNnBnn5uYqKytLQUFBtd7/MGrUKEVHRys/P187duzwfQcBAAAAP9UmAsOuXbskSf3791doaGitZQYPHixJ2r17t8/6BQAAAPg7v70kyZsOHz4sSerevbtpmZiYGLeyjbFr1y6VlZUpMDBQISEhjW4PAAAAOFdZWZkqKysVEhKiQYMGNdl22kRgKCkpkSSFhYWZlgkPD5ckFRcXN3p7ZWVlcjgccjgcstvtjW4PAAAAMFNWVtak7beJwGAYhiTJYrH4ZHuBgYFyOBwKCAhQu3btfLJNAAAAtC0lJSVyOBxN/lqANhEYnLMHzpmG2jhnFpxlGyMkJER2u13t2rVTXFxco9sDAAAAzpWdnS2bzdbkl8C3iZuee/ToIUk6evSoaZnc3Fy3sgAAAADaSGBw3gSyZ88elZaW1lomMzNTkjRw4ECf9QsAAADwd20iMMTExCg+Pl52u12bNm2qsT4jI0O5ubmKiorS0KFDm6GHAAAAgH9qVYFh0aJFSkxM1KJFi2qsmzlzpiRp4cKFOnjwoGv5iRMnlJKSIkmaMWMGb3kGAAAAqvHbm56zsrJcJ/KStHfvXknSU089pVWrVrmWr1+/3vV1fn6+Dhw4oPz8/BrtJSYmKikpSWlpaZo4caLGjRsnq9Wq9PR02Ww2TZgwQVOmTGnCPQIAAABaHr8NDDabTV9//XWN5Tk5OQ1uMzk5WcOHD9fatWuVkZEhh8Ohfv36adKkSUpKSmJ2AQAAADiHxXC+pABe43zEVUREBI9VBQAAQJPw1Tmn384wAAAAtHalpaUqKirSqVOnZLfbxee4bZPFYlFoaKg6deqkyMhIn71s2FMEBgAAgGZgs9l0+PBhQgJkGIZOnz6t06dPq7S0VNHR0c3dJTcEBgAAAB8rLS11hYXIyEh16tRJoaGh3E/ZRlVWVqqoqEh5eXn68ccfFR4eroiIiObulgtHJQAAgI8VFRW5wkL37t3Vrl07wkIbFhgYqE6dOqlLly6Sqo4Pf8KRCQAA4GOnTp2SJHXq1MnvrldH82nfvr0kqaSkpJl74o7AAAAA4GN2u12SFBoa2sw9gT8JDg6WJFVUVDRzT9wRGAAAAHzMeaMzlyGhOudsk7/dCM9RCgAAAPgBf708jcAAAAAAwBSBAQAAAIApAgMAAAAAUwQGAAAAAKYIDAAAAABMERgAAAAAmCIwAAAAADBFYAAAAABgisAAAAAAn7vjjjsUFxenlStXym63a82aNZo8ebKGDRumn/70p/rDH/6gQ4cONXc3Icna3B0AAABA25OdnS1JioyM1I033qjvvvtOYWFhMgxDx48f15YtW5SZmal33nlH4eHhzdzbto0ZBgAAAPhUYWGhjh07JklauHChwsPD9fLLL+s///mPduzYoSVLlshqtSo3N1fvvPNOM/cWBAYAAAD4lHN2QZJ69+6tl156SUOHDpXFYpHFYtFVV12lK664QpKUk5PTPJ2EC4EBAAAAPvXtt99KkqxWqxYtWqTg4OAaZSIjIyVJFovFp31DTQQGAAAA+JRzhmH06NHq2bNnrWUOHz4sSerRo4fP+oXaERgAAADgU84Zhp///OemZb777jtJUv/+/X3SJ5gjMAAAAMBnKisrtXfvXklSfHx8rWWOHj2qgoICWSwWDRgwwJfdQy0IDAAAAPCZnJwclZaWKiAgQHFxcbWW2b17tyTpwgsvVEREhC+7h1oQGAAAAOAzzvsXevXqZfp+BeclSwMHDvRZv2COwAAAAACfcQaG84UBZ2Awm4GAbxEYAAAA4DPOMDBo0CDTMs5Lkphh8A8EBgAAAPiMc4bB7GZmm83meqQqNzz7BwIDAAAAfKKwsFDHjh2TZD578O2338owDEVGRvIOBj9hbe4OAAAAoG3o0KGDa4bBzIgRI+osA99ihgEAAACAKQIDAAAAAFMEBgAAAACmCAwAAAAATBEYAAAAAJgiMAAAAAAwRWAAAAAAYIrAAAAAAMAUgQEAAACAKQIDAAAAAFMEBgAAAACmCAwAAAAATBEYAAAAAJgiMAAAAAAwRWAAAAAAYMra3B0AAAAAzmW327Vt2zZ99NFH2r59u44ePaqCggJ16tRJQ4cO1W9/+1uNHj3atP6bb76ptLQ0ZWdny+FwqG/fvpo0aZKSkpIUEGD+mXlD67VmBAYAAIBWzjAMVZ4u1un8PNmLCiXDIVkCFBTZQWFR0QoMC5fFYmnubrrZunWrpk+fLkmKiopSfHy8wsLCtG/fPm3evFmbN2/WrFmzNHv27Bp1U1JStG7dOoWEhGjs2LGyWq1KT0/XvHnzlJ6ersWLFyswMNBr9Vo7AgMAAEArZhgOFR86oPLCM0HBtcIhe+FJ2YsKFdyhg8J79pXF4j+foFssFl111VWaOnWqRowY4bbunXfe0Zw5c/Tss89q9OjRGjNmjGvd5s2btW7dOkVFRSk1NVV9+vSRJB0/flxTp07Vli1blJqaqmnTprm12dB6bYH/HBUAAADwKsMwzoSFAvew4FbIofLCAhUfOiDDMHzav/MZO3aslixZUiMsSNI111yjG264QZL0xhtvuK1bvny5JGnOnDmuk35J6tq1q5KTkyVJK1askMPh8Eq9toDAAAAA0EpVni4+M7NQRxAwDJUXFqrydLFvOuYFgwYNkiTl5eW5luXm5iorK0tBQUFKTEysUWfUqFGKjo5Wfn6+duzY0eh6bQWBAQAAoJU6nZ9nPrNwLsOh0vy8usv5iZycHElV9zc47dq1S5LUv39/hYaG1lpv8ODBkqTdu3c3ul5bwT0MAAAAfuh0fq5O5x2VfHgJTHnhSf34zbaGNxAQoLDo7gqLusB7napFfn6+NmzYIEn65S9/6Vp++PBhSVL37t1N68bExLiVbUy9toIZBgAAAD9Ump/n07DgFY6mn6WoqKjQvffeq1OnTmns2LEaP368a11JSYkkKSwszLR+eHi4JKm4+OzlVw2t11YQGAAAAPxQaFS01NKe+x8QUNXvJvTwww8rPT1dMTEx+tvf/ua2znnTdn0fEdvQem0FlyQBAAD4obCoCxp9ac+pg/tkLzzpcfngDp0U0fuiRm2zKT3yyCN69dVXFRUVpRdeeMHt/gXp7CyAc8agNs4ZAmfZxtRrK1pYbAUAAICnwqKiJU/frWBp+tmBxnj88ce1Zs0ade7cWS+88ILbo0+devToIUk6evSoaTu5ubluZRtTr60gMAAAALRSgWHhCu7QQarrUhuLRcEdOigwzD8/PX/iiSe0evVqdezYUatXr9bFF19caznno1b37Nmj0tLSWstkZmZKkgYOHNjoem0FgQEAAKCVslgsCu/ZV8EdOprPNFgCFNyh45k3PfvfNfwLFy7UypUr1aFDB61evVoDBgwwLRsTE6P4+HjZ7XZt2rSpxvqMjAzl5uYqKipKQ4cObXS9toLAAAAA0IpZLAEK79lPkRfFKqhDp7PBwRKg4A6dFHlRnCJ6XSSLp5cu+dDTTz+tFStWKDIyUqtWrXLNBJzPzJkzJVUFjYMHD7qWnzhxQikpKZKkGTNmKOCcG8obWq8t4KZnAACAVs5iscjaLkLte0c0d1c89t5772nZsmWSpF69eik1NbXWcv369XOd7EtSYmKikpKSlJaWpokTJ2rcuHGyWq1KT0+XzWbThAkTNGXKlBrtNLReW0BgAAAAgN8pLCx0fb1z507t3Lmz1nKjRo1yCwySlJycrOHDh2vt2rXKyMiQw+FQv379NGnSJCUlJZnOEjS0XmtnMZwPnoXXZGdny2azKSIiQnFxcc3dHQAA4Gd2794tqW3eQIvzq8+x4atzzrYZkwAAAAB4hMAAAAAAwBSBAQAAAIApAgMAAAAAUwQGAAAAAKYIDAAAAABMERgAAAAAmPL7F7e9+eabSktLU3Z2thwOh/r27dvgl2fk5uZqxYoV+vTTT3Xs2DEZhqGYmBiNGTNGM2bMUM+ePZtoLwAAAICWya9nGFJSUjRnzhzt3LlTI0aM0Lhx45STk6N58+bpnnvuUWVlpcdt7dq1SxMnTlRqaqpKS0t16aWX6rLLLlNpaaleeeUVXXfdddq+fXsT7g0AAADQ8vjtDMPmzZu1bt06RUVFKTU1VX369JEkHT9+XFOnTtWWLVuUmpqqadOmedTevHnzVFRUpJtvvlkPPfSQgoKCJEl2u10PP/ywXnvtNSUnJ+uNN95oql0CAAAAWhy/nWFYvny5JGnOnDmusCBJXbt2VXJysiRpxYoVcjgcdbZVVlam//znP5Kke+65xxUWJCkoKEizZ8+WVPV67dOnT3tpDwAAAICWzy8DQ25urrKyshQUFKTExMQa60eNGqXo6Gjl5+drx44ddbYXEBAgq7VqMsUwjBrrLRaLJKldu3YKDQ1tXOcBAACAVsQvA8OuXbskSf379zc9gR88eLAkaffu3XW2FxQUpDFjxkiSnnnmGdntdtc6u92up59+WpI0adIkV3gAAAAA4Kf3MBw+fFiS1L17d9MyMTExbmXrkpycrN/97ndav369Pv74YyUkJEiSMjMzVVRUpKlTp+q+++5rZM/d2Ww2ffXVV15tEwAAtA6hoaEqLi5u7m7AzzgcDpWWlvrVOaRfBoaSkhJJUlhYmGmZ8PBwSfL4L1rPnj2VlpamuXPn6uOPP1Zubq5rXUJCgkaOHOl2bwMAAAD8Q2lpqV5++WW9++67+v7771VRUaHOnTtr0KBBuuWWW/STn/ykRp1//etf+sc//qG9e/eqsrJSffr00XXXXafJkyef99H8Da3XmvllYHDeZ+DNy4O2b9+uu+++WxEREXr22Wc1bNgwGYah7du3a8GCBbr77rt199136w9/+IPXthkREaG4uDivtQcAAFoH5yXVzg9Am1rx0Twd+fBL9bhitMK7R9e53J8cOnRIt99+uw4ePKguXbpo1KhRCg4O1pEjR/TRRx8pPj5eP/3pT93qpKSkaN26dQoJCdHYsWNltVqVnp6uBQsWaPv27Vq8eLECAwNrbKuh9bwpICBA7dq108CBA+ssm52dLZvN1qT9kfw0MDj/8jhnGmrjnFnw5C9aUVGR7rrrLp0+fVovv/yy2wvaJkyYoP79++u6667TsmXLdO2117o9lQkAAKAlKz6ap4ObPpZRUamDmz5W78TLFd492nS5PykpKdFtt92m77//XrNmzdKsWbPcrgg5efKkCgoK3Oo09NH83n6kf2vil/MqPXr0kCQdPXrUtIzzkiJn2fP58MMP9eOPP2rIkCG1vs25d+/euuSSS1RRUaGMjIwG9hoAAMC/VA8Fklzh4PiO3bUuLz6a15zdrWHZsmX6/vvvdf3112v27Nk1Lh/v1KmT+vbt67asoY/m9+Yj/VsbvwwMgwYNkiTt2bNHpaWltZbJzMyUJI+ma44dOyZJat++vWmZyMhISaqRUgEAAFqqIx9+6QoFTkZFpX7YvrPW5Uc+/NKX3Tuv8vJyrV+/XpI0c+ZMj+o09NH83n6kf2vjl4EhJiZG8fHxstvt2rRpU431GRkZys3NVVRUlIYOHVpne926dZMkZWVluT1S1clutysrK0uSdOGFFzay9wAAAP6hxxWjZbHWvOb+3LAgSRZroHpcMdoX3fJIVlaWCgoKFBMTo4suukjbt2/Xk08+qYceekhLlixxvZS3uoY+mt/bj/RvbfzyHgapKknOnj1bCxcu1NChQ9W7d29J0okTJ5SSkiJJmjFjhtvd6osWLdKWLVt05ZVX6k9/+pNr+eWXX66wsDAdPXpU8+fP1/3336/g4GBJVen10Ucf1bFjx9ShQwdddtllPtxLAACA2h3/5lvlf7VTDnuFT7ZnVFQq560PGtVGQJBVUcMT1PWSAY3uz3fffSep6tLx+++/Xxs2bHBbv3TpUl111VV64oknXCf5DX00f1M80r818dvAkJiYqKSkJKWlpWnixIkaN26c6051m82mCRMmaMqUKW518vPzdeDAAeXn57st79Klix5++GE9+OCDWrt2rbZs2aL4+HhJ0s6dO5Wfn6/g4GA99thj571sCQAAwFdOfPOtz8KCtzjsFTrxzbdeCQyFhYWSpG3btqmyslK33XabkpKS1LFjR23dulUpKSnavHmzwsPDNX/+fEkNfzR/UzzSvzXx28AgVb1sbfjw4Vq7dq0yMjLkcDjUr18/TZo0SUlJSfV6Fu4NN9yg2NhYvfjii9q2bZs+++wzSVJ0dLRuuukmTZ8+XRdffHFT7QoAAEC9dLlkgE9nGLwhIMiqLl4IC5JcNxdXVFRo8uTJmjt3rmvdL37xC3Xr1k2TJ0/Wxo0bNWvWLPXs2bPBj+Zvikf6tyZ+HRgkaeLEiZo4caJHZR9//HE9/vjjpuvj4+P1xBNPeKtrAAAATabrJQMa/Un9uU9JOh+LNdCvHq1a/dH5N998c431gwcPVnx8vHbu3Kkvv/xSPXv2bPCj+b39SP/Wxi9vegYAAEDj1faUJEmmN0L701OSqj863+yhNM7lx48fd6tT30fze/uR/q0NgQEAAKCVqu0pSRZroLoNT6h1uT89Jcl5v6lU9YK22jiXt2vXTlLDH83v7Uf6tzYEBgAAgFYqvHu0eide7goHzsuOug4ZWOtyf7kcSaq6z3TIkCGSpC+++KLG+sLCQtfjUBMSEiQ1/NH83n6kf2tDYAAAAGjFnKEhKKKdWygwW+5P7rzzTklVj1Ct/v6DsrIyJScn69SpU4qPj3c7iXe+5G3hwoU6ePCga/n5Hs3fmHptgcVw3hYOr8nOzpbNZlNERITi4uKauzsAAMDPOE9+2+LlLfW1YMECrVq1SkFBQRoyZIg6duyob775Rj/88IOio6P10ksvqU+fPm51kpOTlZaWppCQkFofzb9kyRIFBta8j6Oh9bypPseGr845/f4pSQAAAGi75s6dq2HDhmnNmjXavXu3Tp8+re7du2v69OmaOXOmOnfuXKNOQx/N781H+rcmzDA0AWYYAADA+TDDADP+OMPQNmMSAAAAAI8QGAAAAACYIjAAAAAAMEVgAAAAAGCKwAAAAADAFIEBAAAAgCkCAwAAAABTBAYAAAAApggMAAAAAEwRGAAAAACYIjAAAAAAMEVgAAAAAGCKwAAAAADAFIEBAAAAgClrc3cAAAAAqM3+/fv1ySefKDMzUzt37lROTo4Mw9DixYuVmJhoWi83N1crVqzQp59+qmPHjskwDMXExGjMmDGaMWOGevbsaVr3zTffVFpamrKzs+VwONS3b19NmjRJSUlJCggw/6y9ofVaAgIDAAAA/FJaWppeeumletXZtWuXpk2bpqKiIl1wwQW69NJLJUk7d+7UK6+8ojfffFMrV67UsGHDatRNSUnRunXrFBISorFjx8pqtSo9PV3z5s1Tenq6Fi9erMDAQK/VaykIDAAAAPBLsbGxuv3225WQkKCEhAQ9+OCDysjIOG+defPmqaioSDfffLMeeughBQUFSZLsdrsefvhhvfbaa0pOTtYbb7zhVm/z5s1at26doqKilJqaqj59+kiSjh8/rqlTp2rLli1KTU3VtGnTvFKvJSEwAAAAtHI/H369Thw/abq+S9dO+uCrjb7rkIcmT55cr/JlZWX6z3/+I0m65557XGFBkoKCgjR79my99tprys7O1unTpxUWFuZav3z5cknSnDlzXCf9ktS1a1clJyfr1ltv1YoVK3Trrbe6XWLU0HotScvsNQAAADx2vrDgyfqWIiAgQFZr1efhhmHUWG+xWCRJ7dq1U2hoqGt5bm6usrKyFBQUVOu9EaNGjVJ0dLTy8/O1Y8eORtdraQgMAAAAaBWCgoI0ZswYSdIzzzwju93uWme32/X0009LkiZNmuQKD1LVfQ+S1L9/f7cgUd3gwYMlSbt37250vZaGS5IAAAD80Iv/7xUte3q1SopP+2R7l/T+WaPbaBcept//z3RNm/lrL/SoYZKTk/W73/1O69ev18cff6yEhARJUmZmpoqKijR16lTdd999bnUOHz4sSerevbtpuzExMW5lG1OvpWGGAQAAwA+9tOIVn4UFbykpPq2XVrzSrH3o2bOn0tLSdPnllys3N1fvvvuu3n33XeXl5emiiy7SyJEj3e5tkKSSkhJJcrun4Vzh4eGSpOLi4kbXa2kIDAAAAH5o6oxfq124+YmoP2oXHqapM5pvdkGStm/frokTJ+r777/Xs88+qy+++ELp6elaunSpioqKdPfdd+vvf/+7Wx3n/Q7VL1PyREPrtTRckgQAAOCHps38tdcu7fHkcqNvDn7klW01p6KiIt111106ffq0Xn75ZbcXtE2YMEH9+/fXddddp2XLlunaa691PdXIOQvgnDGojXOGwFm2MfVaGmYYAAAA0Cp8+OGH+vHHHzVkyJBa3+bcu3dvXXLJJaqoqHB7n0OPHj0kSUePHjVtOzc3161sY+q1NAQGAACAVq5L106NWt9SHDt2TJLUvn170zKRkZGSpIKCAteyQYMGSZL27Nmj0tLSWutlZmZKkgYOHNjoei0NlyQBAAC0cv74Uram0K1bN0lSVlaW7HZ7jZub7Xa7srKyJEkXXniha3lMTIzi4+OVlZWlTZs26frrr3erl5GRodzcXEVFRWno0KGNrtfSMMMAAACAVuHyyy9XWFiYjh49qvnz56u8vNy1rry8XI888oiOHTumDh066LLLLnOrO3PmTEnSwoULdfDgQdfyEydOKCUlRZI0Y8aMGm9rbmi9lsRi1PYaPDRKdna2bDabIiIiFBcX19zdAQAAfsb5Eq+WfJmKL2RlZblOuiVp7969Ki4uVp8+fdShQwfX8vXr17u+3rBhgx588EFVVlaqW7duio+PlyTt3LlT+fn5Cg4O1lNPPaUJEybU2F5ycrLS0tIUEhKicePGyWq1Kj09XTabTRMmTNCSJUsUGBjotXq1qc+x4atzTi5JAgAAgF+y2Wz6+uuvayzPyckxrXPDDTcoNjZWL774orZt26bPPvtMkhQdHa2bbrpJ06dP18UXX1xr3eTkZA0fPlxr165VRkaGHA6H+vXrp0mTJikpKcl0lqCh9VoKZhiaADMMAADgfJhhgBl/nGFo2XEHAAAAQJMiMAAAAAAwRWAAAAAAYIrAAAAAAMAUgQEAAACAKQIDAAAA4Af89eGlBAYAAAAfs1gskiSHw9HMPYE/cQYG5/HhLwgMAAAAPhYUFCRJKi0tbeaewJ+Ul5dLkqxW/3q3MoEBAADAx9q3by9JOnnypN9ehgLfO3XqlCSpXbt2zdwTdwQGAAAAH4uMjJTFYlFRUZGOHj2qkpISORwOwkMbZBiGKisrdfLkSZ04cUJS1fHhT/xrvgMAAKANCA0N1YUXXqjDhw+rqKhIRUVFzd0l+InOnTsrIiKiubvhhsAAAADQDCIiItS3b18VFhbq1KlTstvtzDC0URaLRaGhoerUqZPfzS5IBAYAAIBmExISom7duqlbt27N3RXAFPcwAAAAADBFYAAAAABgisAAAAAAwBSBAQAAAIApAgMAAAAAUwQGAAAAAKYIDAAAAABMERgAAAAAmCIwAAAAADBFYAAAAABgisAAAAAAwBSBAQAAAIApAgMAAAAAUwQGAAAAAKYIDAAAAABMERgAAAAAmCIwAAAAADBFYAAAAABgisAAAAAAwJS1uTtQlzfffFNpaWnKzs6Ww+FQ3759NWnSJCUlJSkgoP55p7S0VGvWrNGmTZt08OBB2e12denSRQkJCZo2bZqGDx/eBHsBAAAAtEx+HRhSUlK0bt06hYSEaOzYsbJarUpPT9e8efOUnp6uxYsXKzAw0OP2Dh06pNtvv10HDx5Uly5dNHLkSAUHB+vIkSN6//33NWDAAAIDAAAAUI3fBobNmzdr3bp1ioqKUmpqqvr06SNJOn78uKZOnaotW7YoNTVV06ZN86i9kpIS3Xbbbfr+++81a9YszZo1S0FBQa71J0+eVEFBQRPsCQAAANBy+e09DMuXL5ckzZkzxxUWJKlr165KTk6WJK1YsUIOh8Oj9pYtW6bvv/9e119/vWbPnu0WFiSpU6dO6tu3r1f6DgAAALQWfhkYcnNzlZWVpaCgICUmJtZYP2rUKEVHRys/P187duyos73y8nKtX79ekjRz5kxvdxcAAABotfzykqRdu3ZJkvr376/Q0NBaywwePFh5eXnavXu3hg0bdt72srKyVFBQoJiYGF100UXavn27PvzwQxUUFKhr16667LLLNHToUK/vBwAAANDS+WVgOHz4sCSpe/fupmViYmLcyp7Pd999J0nq3bu37r//fm3YsMFt/dKlS3XVVVfpiSeeMA0oDWGz2fTVV195rT0AAADA1/wyMJSUlEiSwsLCTMuEh4dLkoqLi+tsr7CwUJK0bds2VVZW6rbbblNSUpI6duyorVu3KiUlRZs3b1Z4eLjmz5/vhT0AAAAAWge/DAyGYUiSLBaLV9pz3hhdUVGhyZMna+7cua51v/jFL9StWzdNnjxZGzdu1KxZs9SzZ0+vbDciIkJxcXFeaQsAAACoLjs7Wzabrcm345c3PTtnD5wzDbVxziw4y3rSniTdfPPNNdYPHjxY8fHxcjgc+vLLL+vbXQAAAKDV8svA0KNHD0nS0aNHTcvk5ua6lfWkPUm68MILay3jXH78+HGP+wkAAAC0dn4ZGAYNGiRJ2rNnj0pLS2stk5mZKUkaOHBgne3Fx8e7vj558mStZZzL27VrV6++AgAAAK2ZXwaGmJgYxcfHy263a9OmTTXWZ2RkKDc3V1FRUR49DjU6OlpDhgyRJH3xxRc11hcWFroe5ZqQkNDI3gMAAACth18GBunsC9YWLlyogwcPupafOHFCKSkpkqQZM2YoIODsLixatEiJiYlatGhRjfbuvPNOSVWPUN29e7dreVlZmZKTk3Xq1CnFx8fzPgYAAACgGr98SpIkJSYmKikpSWlpaZo4caLGjRsnq9Wq9PR02Ww2TZgwQVOmTHGrk5+frwMHDig/P79Ge+PHj9dtt92mVatWafLkyRoyZIg6duyob775Rj/88IOio6P15JNPeu3JTAAAAEBr4LeBQZKSk5M1fPhwrV27VhkZGXI4HOrXr58mTZqkpKQkt9kFT8ydO1fDhg3TmjVrtHv3bp0+fVrdu3fX9OnTNXPmTHXu3LmJ9gQAAABomSyG86UH8BrnM3F5DwMAAACaiq/OOf32HgYAAAAAzY/AAAAAAMAUgQEAAACAKQIDAAAAAFMEBgAAAACmCAwAAAAATBEYAAAAAJgiMAAAAAAwRWAAAAAAYIrAAAAAAMAUgQEAAACAKQIDAAAAAFMEBgAAAACmCAwAAAAATHkcGP70pz9p4MCBuuOOOzxufObMmRo4cKAeeOCBBnUOAAAAQPPyKDDs2bNHb7/9ttq3b68FCxZ43PiCBQsUHh6uf/7zn8rJyWloHwEAAAA0E48Cw8aNGyVJU6dOVceOHT1uvFOnTpo6daocDoc2bNjQkP4BAAAAaEYeBYZt27bJYrHoqquuqvcGrr76aknSl19+We+6AAAAAJqXR4EhJydHgYGB6t+/f7030L9/f1mtVi5JAgAAAFogjwJDcXGxIiIiGryR8PBw2Wy2BtcHAAAA0Dw8CgwRERENPuE3DEM2m03h4eENqg8AAACg+XgUGC644AJVVlYqKyur3hvYvXu3KisrdcEFF9S7LgAAAIDm5VFgGDlypCTp9ddfr/cGXn31VVksFo0aNaredQEAAAA0L48Cw69+9SsZhqFXXnlF6enpHjeenp6u9evXu9oAAAAA0LJ4FBgSEhJ09dVXq6KiQr///e/1wgsvqLy83LR8eXm5XnjhBf3+979XZWWlrrrqKiUkJHit0wAAAAB8w2IYhuFJwZKSEiUlJSk7O1sWi0UdOnTQT3/6U8XFxble5lZQUKDs7Gx99tlnKiwslGEYiouL07p169rUTc/Z2dmy2WyKiIhQXFxcc3cHAAAArZCvzjk9DgxS1eNV//rXv+qdd96pqmyx1FrO2eTVV1+t//u//2vUI1lbIgIDAAAAmpqvzjmt9SkcHh6uJ598Ur/73e/08ssv68svv9TBgwfdyvTu3VujR4/WzTffzGVIAAAAQAtXr8DgNGjQIM2bN0+SVFFRocLCQklShw4dZLU2qEkAAAAAfqjRZ/dWq1VdunTxRl8AAAAA+BmPA0NeXp6+//57WSwWjRgxwqM627Ztk2EY6tOnj6KiohrcSQAAAADNw6PHqkrSH/7wB02dOlWffPKJx41/8sknmjp1qv73f/+3QZ0DAAAA0Lw8Cgzp6enKzMxUr169NHv2bI8bv+eee9SzZ0999dVX2rp1a4M7CQAAAKB5eBQY3n77bVksFk2fPl0BAR5PSigwMFDTp0+XYRh66623GtxJAAAAAM3Do7P/r7/+WpL085//vN4bGD9+vCRp+/bt9a4LAAAAoHl5FBiOHTum4OBgRUdH13sD0dHRCgkJ0bFjx+pdFwAAAEDz8igwlJaWKjQ0tMEbCQ0NVVlZWYPrAwAAAGgeHgWGjh07qqioSOXl5fXeQHl5uYqKitShQ4d61wUAAADQvDwKDL1795YkffXVV/XegPNdDL169ap3XQAAAADNy6PAMHbsWBmGoVWrVtV7A6tWrZLFYtG4cePqXRcAAABA8/IoMEyePFkhISH69NNPtWzZMo8bX7ZsmT799FMFBwdr8uTJDe4kAAAAgObhUWCIjo7WnXfeKcMwtGTJEs2aNUs7d+40LZ+ZmalZs2ZpyZIlslgsmjlzZoOesAQAAACgeVk9Lfj73/9ehw4d0uuvv64PPvhAH3zwgbp06aIBAwa4bmguLCzUt99+qxMnTkiSDMPQDTfcoLvuuqtpeg8AAACgSXkcGCTpscce0yWXXKJnnnlGJ06c0PHjx/XZZ5+5lTEMQ5LUuXNn3X333UpKSvJebwEAAAD4VL0CgyT95je/0Y033qh///vf+vLLL7Vv3z4VFBRIqnr86kUXXaTRo0fryiuvVEhIiLf7CwAAAMCH6h0YJCk4OFjXXnutrr32Wm/3BwAAAIAf8TgwfPnll9q6dasiIiL03//93x7VWb16tYqLizVmzBiNGDGioX0EAAAA0Ew8ekpSWVmZ7r33Xi1dulQXXHCBx41fcMEF+vvf/677779fdru9wZ0EAAAA0Dw8CgybN2/WDz/8oFGjRikxMdHjxq+++mqNHDlSR44c0ZYtWxrcSQAAAADNw6PA8O6778pisWjKlCn13sCtt94qwzD073//u951AQAAADQvjwJDVlaWJGns2LH13sC4ceMk6bwvegMAAADgnzwKDD/++KPCw8MVERFR7w1EREQoPDzc9TI3AAAAAC2HR4HBMAw5HI4Gb8QwDNcL3QAAAAC0HB4Fhk6dOun06dMqLCys9wYKCwtVUlKiTp061bsuAAAAgOblUWCIi4uTJH3yySf13sBHH33k1gYAAACAlsOjwHD55ZfLMAwtW7ZM5eXlHjdeXl6u5557ThaLRT/72c8a3EkAAAAAzcOjwHDjjTeqa9eu2r9/v+655x7ZbLY66xQXF+uee+7R/v371aVLF91www2N7iwAAAAA3/IoMISGhmrevHmyWCz66KOPdO2112rVqlU6cOBAjbIHDhzQypUrde211+qjjz5SQECAUlJSFBoa6vXOAwAAAGhaFqMejy96/fXXlZycrPLyclksFklScHCwIiMjJUlFRUWuS5YMw1BwcLAeeugh3XTTTU3Qdf+VnZ0tm82miIgI7t0AAABAk/DVOadHMwxON954o/7xj3/oiiuukFQVCsrKypSfn6/8/HyVlZW5Hp96xRVXaP369W0uLAAAAACtibW+FeLi4vTcc88pLy9PGRkZ2rdvnwoKCiRJHTt21EUXXaRRo0YpOjra230FAAAA4GP1DgxO0dHRmjhxojf7AgAAAMDP1OuSJAAAAABtC4EBAAAAgCkCAwAAAABTBAYAAAAApggMAAAAAEwRGAAAAACYIjAAAAAAMEVgAAAAAGDK7wPDm2++qVtuuUXDhw/X0KFDdeONN2rt2rVyOByNbvvJJ59UXFyc4uLitHLlSi/0FgAAAGhdGvymZ19ISUnRunXrFBISorFjx8pqtSo9PV3z5s1Tenq6Fi9erMDAwAa1/c033+j555+XxWKRYRhe7jkAAADQOvhtYNi8ebPWrVunqKgopaamqk+fPpKk48ePa+rUqdqyZYtSU1M1bdq0erddXl6uBx54QF26dNEll1yid99918u9BwAAAFoHv70kafny5ZKkOXPmuMKCJHXt2lXJycmSpBUrVjTo0qTFixdr7969SklJUfv27b3RXQAAAKBV8svAkJubq6ysLAUFBSkxMbHG+lGjRik6Olr5+fnasWNHvdr++uuvtXr1al177bUaP368l3oMAAAAtE5+GRh27dolSerfv79CQ0NrLTN48GBJ0u7duz1ut6ysTHPnzlWHDh304IMPNr6jAAAAQCvnl/cwHD58WJLUvXt30zIxMTFuZT3x1FNP6cCBA3rqqafUuXPnxnXSAzabTV999VWTbwcAAABoKn45w1BSUiJJCgsLMy0THh4uSSouLvaoze3bt+vFF1/UhAkTdM011zS+kwAAAEAb4JczDM7HnFosFq+0V1paqgceeEARERF6+OGHvdKmJyIiIhQXF+ez7QEAAKDtyM7Ols1ma/Lt+OUMg3P2wDnTUBvnzIKz7Pk8+eSTysnJ0f33369u3bp5p5MAAABAG+CXMww9evSQJB09etS0TG5urlvZ83n33XcVEBCgjRs3auPGjW7r9u/fL0lKS0vThx9+qF69eunRRx9tYM8BAACA1sUvA8OgQYMkSXv27FFpaWmtT0rKzMyUJA0cONCjNh0OhzIyMkzXHzp0SIcOHVJRUVEDegwAAAC0Tn4ZGGJiYhQfH6+srCxt2rRJ119/vdv6jIwM5ebmKioqSkOHDq2zvffff9903f33368NGzbovvvu0+23397YrgMAAACtil/ewyBJM2fOlCQtXLhQBw8edC0/ceKEUlJSJEkzZsxQQMDZXVi0aJESExO1aNEi33YWAAAAaKX8coZBkhITE5WUlKS0tDRNnDhR48aNk9VqVXp6umw2myZMmKApU6a41cnPz9eBAweUn5/fTL0GAAAAWhe/DQySlJycrOHDh2vt2rXKyMiQw+FQv379NGnSJCUlJbnNLgAAAADwPovhfOkBvMb5TFzewwAAAICm4qtzTj6iBwAAAGCKwAAAAADAFIEBAAAAgCkCAwAAAABTBAYAAAAApggMAAAAAEwRGAAAAACYIjAAAAAAMEVgAAAAAGCKwAAAAADAFIEBAAAAgCkCAwAAAABTBAYAAAAApggMAAAAAEwRGAAAAACYIjAAAAAAMEVgAAAAAGCKwAAAAADAFIEBAAAAgCkCAwAAAABTBAYAAAAApggMAAAAAEwRGAAAAACYIjAAAAAAMEVgAAAAAGCKwAAAAADAFIEBAAAAgCkCAwAAAABTBAYAAAAApggMAAAAAEwRGAAAAACYIjAAAAAAMEVgAAAAAGCKwAAAAADAFIEBAAAAgCkCAwAAAABTBAYAAAAApggMAAAAAEwRGAAAAACYIjAAAAAAMEVgAAAAAGCKwAAAAADAFIEBAAAAgCkCAwAAAABTBAYAAAAApggMAAAAAEwRGAAAAACYIjAAAAAAMEVgAAAAAGCKwAAAAADAFIEBAAAAgCkCAwAAAABTBAYAAAAApggMAAAAAEwRGAAAAACYIjAAAAAAMEVgAAAAAGCKwAAAAADAFIEBAAAAgCkCAwAAAABTBAYAAAAApggMAAAAAEwRGAAAAACYIjAAAAAAMEVgAAAAAGCKwAAAAADAFIEBAAAAgCkCAwAAAABTBAYAAAAApggMAAAAAExZm7sDdXnzzTeVlpam7OxsORwO9e3bV5MmTVJSUpICAjzLO3a7Xdu2bdNHH32k7du36+jRoyooKFCnTp00dOhQ/fa3v9Xo0aObeE8AAACAlsevA0NKSorWrVunkJAQjR07VlarVenp6Zo3b57S09O1ePFiBQYG1tnO1q1bNX36dElSVFSU4uPjFRYWpn379mnz5s3avHmzZs2apdmzZzf1LgEAAAAtit8Ghs2bN2vdunWKiopSamqq+vTpI0k6fvy4pk6dqi1btig1NVXTpk2rsy2LxaKrrrpKU6dO1YgRI9zWvfPOO5ozZ46effZZjR49WmPGjGmK3QEAAABaJL+9h2H58uWSpDlz5rjCgiR17dpVycnJkqQVK1bI4XDU2dbYsWO1ZMmSGmFBkq655hrdcMMNkqQ33nij8R0HAAAAWhG/DAy5ubnKyspSUFCQEhMTa6wfNWqUoqOjlZ+frx07djR6e4MGDZIk5eXlNbotAAAAoDXxy8Cwa9cuSVL//v0VGhpaa5nBgwdLknbv3t3o7eXk5Eiqur8BAAAAwFl+eQ/D4cOHJUndu3c3LRMTE+NWtqHy8/O1YcMGSdIvf/nLRrV1LpvNpq+++sqrbQIAAAC+5JczDCUlJZKksLAw0zLh4eGSpOLi4gZvp6KiQvfee69OnTqlsWPHavz48Q1uCwAAAGiN/HKGwTAMSVVPN2pKDz/8sNLT0xUTE6O//e1vXm8/IiJCcXFxXm8XAAAAyM7Ols1ma/Lt+OUMg3P2wDnTUBvnzIKzbH098sgjevXVVxUVFaUXXniB+xcAAACAWvhlYOjRo4ck6ejRo6ZlcnNz3crWx+OPP641a9aoc+fOeuGFF9we2woAAADgLL8MDM7HnO7Zs0elpaW1lsnMzJQkDRw4sF5tP/HEE1q9erU6duyo1atX6+KLL25cZwEAAIBWzC8DQ0xMjOLj42W327Vp06Ya6zMyMpSbm6uoqCgNHTrU43YXLlyolStXqkOHDlq9erUGDBjgzW4DAAAArY5fBgZJmjlzpqSqk/yDBw+6lp84cUIpKSmSpBkzZigg4OwuLFq0SImJiVq0aFGN9p5++mmtWLFCkZGRWrVqlWsWAwAAAIA5v3xKkiQlJiYqKSlJaWlpmjhxosaNGyer1ar09HTZbDZNmDBBU6ZMcauTn5+vAwcOKD8/3235e++9p2XLlkmSevXqpdTU1Fq32a9fP1dQAQAAAODHgUGSkpOTNXz4cK1du1YZGRlyOBzq16+fJk2apKSkJLfZhfMpLCx0fb1z507t3Lmz1nKjRo0iMAAAAADVWAznSw/gNc5n4vIeBgAAADQVX51z+u09DAAAAACaH4EBAAAAgCkCAwAAAABTBAYAAAAApggMAAAAAEwRGAAAAACYIjAAAAAAMEVgAAAAAGCKwAAAAADAFIEBAAAAgCkCAwAAAABTBAYAAAAApggMAAAAAEwRGAAAAACYIjAAAAAAMEVgAAAAAGCKwAAAAADAFIEBAAAAgCkCAwAAAABTBAYAAAAApggMAAAAAEwRGAAAAACYIjAAAAAAMEVgAAAAAGCKwAAAAADAFIEBAAAAgCkCAwAAAABTBAYAAAAApggMAAAAAEwRGAAAAACYIjAAAAAAMEVgAAAAAGCKwAAAAADAFIEBAAAAgCkCAwAAAABTBAYAAAAApggMAAAAAEwRGAAAAACYIjAAAAAAMEVgAAAAAGCKwAAAAADAFIEBAAAAgCkCAwAAAABTBAYAAAAApggMAAAAAEwRGAAAAACYIjAAAAAAMEVgAAAAAGCKwAAAAADAFIEBAAAAgCkCAwAAAABTBAYAAAAApqzN3YG2wlFZITkcMgxDFotFCghQQGDTDL8vt+VtLbnvvsQ41Y0x8gzj5BnGqW6MkWcYJ88wTnVzVFZIhuGTbTHyTcxRWSlHeZlO5x2TvahAkiHJoqDIjgqLjlFAcIgCAgNb3La8rSX33ZcYp7oxRp5hnDzDONWNMfIM4+QZxqlu1ceooqTYJ9u0GIaPokkbkp2dLZvNpojwcPWJ7qriQzmmZcN79lFQZKdGH/yOykrZi076ZFve1pL77kuMU90YI88wTp5hnOrGGHmGcfIM41S3c8foWIVUalgUERGhuLi4Jtsu9zA0IcMwznvQS1LxoRw5yssavS1HeZnPtuVtLbnvvsQ41Y0x8gzj5BnGqW6MkWcYJ88wTnXzZIyaAoGhCXl6QJ/OO1Z1HVpDt1NZodN5x3yyLW9ryX33JcapboyRZxgnzzBOdWOMPMM4eYZxqlt9xsjbuIehCRmVlR6NsL2oQJWnu6lgf3aDttO+X9yZ6/yaflve1pL77kuMU90YI88wTp5hnOrGGHmGcfIM41S3+oyRtzHD0KQ8vT3EG7eR+HJb3taS++5LjFPdGCPPME6eYZzqxhh5hnHyDONUN0MBwSFqd2E/BQSH+GyrBIYmZfFyOX/Zlre15L77EuNUN8bIM4yTZxinujFGnmGcPMM41SUgOFRh0T2V98U3CovuKVl8cyrPU5KagPMpSWHWQF1gqfsau6DITgrv2bvBzxd2VFao+NBB2YtONvm2vK0l992XGKe6MUaeYZw8wzjVjTHyDOPkGcapbo7KCtltJfr+Xx+rvMim4MgIVQzuq5LSUp6S1JJ5OlUUFh3TqIM+INCqsOgYn2zL21py332JcaobY+QZxskzjFPdGCPPME6eYZzq5rBXKvez7SovskmSyotsKvux0CfbJjA0IYvFovCefc5bJrxnX69cgxYQHOKzbXlbS+67LzFOdWOMPMM4eYZxqhtj5BnGyTOMU02GYaiitExlJwtVXmTTBeOGKTgywrXeUVnpk35wSVITcL24LSJC/S++mDc9e6Al992XGKe6MUaeYZw8wzjVjTHyDOPkmdY+TobDoYrSMlWeLlNFaemZP8tUWVqmitNlqiwtdf++rFyqdqoeHBmhHj8foyMffFE1wxDbQ0b7dk1+SRKBoQlUDwzOH56jskJyOGQYhiwWixQQ0GTTab7clre15L77EuNUN8bIM4yTZxinujFGnmGczq+itEzW0JAa4+SocMgaFtrc3avBUVFRLQCUqfL0OSf8pWeCQWm5Kk6XylFub/Q2Iy68QJ0TYvX9po99Fhg4Qn0kINAq+SgQ+3Jb3taS++5LjFPdGCPPME6eYZzqxhidn/NE+NxxqigtIzCcYbeV6OjHGep++SgFRbRzjVON5U3EMAw57BVVn/KfPnvSXxUAqi07EwwqS8vlqGj6F8gFBAfJGhqiwLAQhXbuqM6D+uvQlk+bfLvVcYQCAAA0IbMTXl+dCLcEdluJct56X+VFNuW89b76XDteQRHtTJd7wjAMVZaVnznxLz3nU//aZwMMh6Npd9RiUWBIsCsAWENDFBgaKmtYiAJDQ6otD1VgaIgCQ4PdLsGqPh6+RGAA/JjzEylPl7dljJVnGCfPME6eYZzq1hQnwq1NRWmZjn6c4fb0n5y33ne7Vt+5vCpgjVRZoc09CFS/L8Dk+v+mYAkIqDrRP3PCf+5Jv1swCAtVYHCQLAENe+bQueMkSQGBgfLFbc/cw9AEaruHATXxi+b8+ETKc4yVZxgnzzBOnmGc6lZRWqYj76fLdjjXtezcm1adIi68QD3Gj/Xb33+Gw3HmP6Pa1w4ZlY6qew2qL690uJdxGDIclZKzTKX78oCgIIV3j9ahf39y3k/OzcbOmyzWQNfJvbVGADhnNiAsRAFBQVX3oviI3Vai/MO5KjccslgCVFheLLu9nJueWyJPAkNbP1nmF835Vf/kKTgyotZPpKovb8sYK88wTp5hnDzDOHnOk0tIgiMj1PuaK+SoqJCjovKcE/FqJ9eVlTVP2M/8J4dRy4m68+TcqFbu3DZrqeNsr9rJfVOrKww0NCxUv/7feZmP2+U/oSGyhp1dHmD1/4tvjnx/VFdfliRJmjtvlgYkXExgePPNN5WWlqbs7Gw5HA717dtXkyZNUlJSkgIaMKXj7fZqYxYYnGGgrZ8s84vm/FrTJ1JNjbHyDOPkGcbJM94YJ+PM02/kMGQYZ09oq3/vfEKO+9dn1tWoc+bramXOfn9mmeE8CT6nrGG4f0J+Tr9qbLt6v0z6Xn3bQRHt1OOK0V4/EW6NOo8fq0proCpOl9ZYZw0LVWBFpQo/3+7B9f9Vy8+9/t9fGIahCnuFysvtstvtKi+3q7zMLnt5edXX5XaVl5fLXm6XvbxC5dWW28vLdcnQeN2UeJskAoMkKSUlRevWrVNISIjGjh0rq9Wq9PR0FRcX68orr9TixYsVWI8DwdvtmaktMNhtJfphW6aihifo4NsftNmTZV/+QnY7tKt97VruWnT2e6Pqf9VbObv63L8qxjn13JozXH8armXu7UmG+6WVZ75xXtt48J0PPfpEqrLszFManNszjKpfVMaZNg3nsqrvnftoGI6zywznMuNMP85T37lMNZdVb+PsOFdff7bds9tSreurt+G+/ux2A8PDFDVkoA6/93mdY3XhL8bph68yZbeVmJZrrYIi2qnb8MGMUx0YJ8/UZ5x6jB+rY59uU3nhqTMn2IZPPq32N56cCP/4fnoz9Kx+LIEBsgS4/6cAiyyBgbIEWM5Zd2a5xSJLYIB0Tr2qts7WsYaFqiSina65/BbT7b/zSZou7NW9Xn02DEN210n42RPx8rJqJ+vl1U7Wy6qdrNvPnKyX2au1UX6mvL32dp3tlZ0pZ69wq+P8szGn3ytfflq3/+Z/JPkuMPjtvMvmzZu1bt06RUVFKTU1VX369JEkHT9+XFOnTtWWLVuUmpqqadOmNUt7njAqq/5RdIaBC8YN07FPtnp8U4/ZybLpJyk1PiE5z/fVpxtr/eSk2vc1Pq2p/n31Ns+tX72Nqk9ewn8ySIHx/RXRr1fVCesZP/xYoKAhAxTmMFT42VcKjoxQ1IjBynnrA5UXnar/SXwLFxwZoU5XjFZxwSm3cXKyWAIU3rF9naGiLbBeGKOwMUMVXFpW61gFWwLUsVNknSc3rVnZj4UqLzjl0THFODFOdanPOB15P73NjpNTcGSEKq1WXfOz85wIf7xOET0vUEVJabUT8Won3TVOxqufrNdcfu7JeM02z1/n3JN7WaTKSocqKitVYa9QRUWFKisqVeH6z/l9hSorK2W3V/1Z4fqzal1Fmd2tbEW1MmXFpzXm0hHnHcsf83/U31KeUUWl45yTfbvKy9xPysvLy2W3V8juhfcewI8Dw/LlyyVJc+bMcZ3cS1LXrl2VnJysW2+9VStWrNCtt97q0aVE3m7PE2V2u74/cFiGYShk1BD9WFKqwEH91alfL538OENSVTg48M933eoFR0ao24jB+n7zxyovtNWcpm3BJ8VWu13X/WKq6fo3Nq08O+PQhn/RlBfZVFxk08SrppuWeXPLC212fKorNxy67ny/iD9aq/yvdrb5seKY8gzj5BlvjJPrhNdSdaIq5wmu5cxJq8V5wlv1crOq5eesO/PiM/flzjYDZFgkWSRZAqo+Zzpzc6phsVR9bZEkixwWQ1KAJEOyWGQEWM68YNgih2GcKWupak+SobN1DRmSRXLIuTHDtS1DhspKy2UpPv9MVEmRTTnlFVJoyDkn4JWqrKiUvfpJ9vlO1muUrXT7umbZSteJfcU59SqqrXP4aFZo5fCE864vK7frg3c/90lfmprVGqig4GAFBVkVHByk4JBgBQUHVX0dHKTg4LPfn/tneDNcgeKXgSE3N1dZWVkKCgpSYmJijfWjRo1SdHS08vLytGPHDg0bNsyn7Xlq547dWvDQszWWv/NJmoIjI857LePhJjxZNgznZTLGmSs7nJd9nL0kx6h2uUzN8pLzkhVPyldfFuo4f9ipqHTodEw3bXvzfZXk5tfcXo0+n/nznPW197Xaeme/3Pp99tKiGm1YVPVL48xKt3qqNg5u+ywZFuf41NI3nW3c0Jnras8sDwgO0jU/HX7esTpdbtdbO79T5ZmpzVqubnK1d3acqvVf1co4Lyeqtv/OsXO42nLfF53btmv/qo+Ps/65x8vZeo5q2z732HKOSc1j9cz3DkP31fELJj//Ry34e2qjpn9biwfqGKuTp4o1f8MWH/XGfzFOnqlrnH4ssun/1v9LjjOXErr+k87MOhuuE1GHc3bakGvm21lPhiGH45w2qi9zOGScacN5WaOzPX+x8uWnz7u+0FaiOff8n2860wZZnSflwcEKDg6q+j4k2HVyHlRtXXBwkIJCghQUFFRt/Zl1IeecyDvLhFQrU61OULDVvV1nMAiyNuoS+COHjnlxdDzjl4Fh165dkqT+/fsrNLT214APHjxYeXl52r17d50n+N5ur7F+yM3X3CdXq+J0aY2T9cDgYFU+ukyOyspaT3qrn/yee+JZ28na2ZPoc66XbyYr65huPHmqWLdPvddHvfFvl958zXnXnzpVrLX/fM9HvfFfdU03V1RUalfWHh/1xr/VNVb2crt279rro974L8bJM3X+3bNXaO+eHN90Bk3Oag2U1WpV4Dl/Vi0PVGBgoKxBVte6IFeZauvO/Bno9ueZsoGBiogIP28fOnbqoIXPprhO3Kt/6h4cHFx14h4U5PZJfVBwkNeuHGnL/DIwHD58WJLUvbv5jS0xMTFuZX3ZXl3KysokSb369tDcebNqrHdYKvTfd93c6O20RBaro9Yx8XR9W8JYeYZx8hxj5RnGyTMtapzOXD5kOd8yS/U/LKpeuKqoRecUrbns7P/cvg8IMs47FoHB0iNP3+varsViqfrvzDYsZ5ZJZ792Pvvfcma9atQ5U/acNnVmmevrM3UsZy67Olun+nbP/tmUyh2l5x2nkjKbulzQvtqSSlUYlaooK1VJmaRTTd5FvxBkDdKafy6RJFVUVkg6e+7ZVPwyMJSUVF3rFxYWZlomPLwqhRYXF/u8vbpUVla9c69deJgGJFxcaxmz5W1BXfvelsfmXIyVZxgnzzFWnmGcPMM4eco471gYcqhHrxgf9sc/VVTYzztOFRXcwCxJ9lrGwXnu2VT8MjA4L9PxVpr1dnt1CQkJUVlZmQIDAxUS0vae0Q0AAICmV1ZWpsrKyiY/3/TLwOD8tN85M1Ab50yAs6wv26vLoEGDGt0GAAAA4A/88i6QHj16SJKOHj1qWiY3N9etrC/bAwAAANoKvwwMzk/o9+zZo9LSmm9FlKTMzExJ0sCBA33eHgAAANBW+GVgiImJUXx8vOx2uzZt2lRjfUZGhnJzcxUVFaWhQ4f6vD0AAACgrfDLwCBJM2fOlCQtXLhQBw8edC0/ceKEUlJSJEkzZsxwe7buokWLlJiYqEWLFnmlPQAAAKCt88ubniUpMTFRSUlJSktL08SJEzVu3DhZrValp6fLZrNpwoQJmjJlilud/Px8HThwQPn5+V5pDwAAAGjr/DYwSFJycrKGDx+utWvXKiMjQw6HQ/369dOkSZOUlJRU79kAb7cHAAAAtHYWw/mSAgAAAAA4Bx+pAwAAADBFYAAAAABgisAAAAAAwBSBAQAAAIApAgMAAAAAUwQGAAAAAKYIDAAAAABM+fWL2/zFm2++qbS0NGVnZ8vhcKhv376Netmbt9tD8/DGz9Fut2vbtm366KOPtH37dh09elQFBQXq1KmThg4dqt/+9rcaPXp0E+8JvKkp/34/+eSTWr58uSTpvvvu0+233+6NLqOJefuYKC0t1Zo1a7Rp0yYdPHhQdrtdXbp0UUJCgqZNm6bhw4c3wV7A27x5XOTm5mrFihX69NNPdezYMRmGoZiYGI0ZM0YzZsxQz549m2gv4C379+/XJ598oszMTO3cuVM5OTkyDEOLFy9WYmJig9v11nHGi9vqkJKSonXr1ikkJERjx46V1WpVenq6iouLdeWVV2rx4sUKDAxstvbQPLz1c/z88881ffp0SVJUVJTi4+MVFhamffv26bvvvpMkzZo1S7Nnz27S/YF3NOXf72+++Ua/+c1v5HA4ZBgGgaGF8PYxcejQId1+++06ePCgunTpoiFDhig4OFhHjhzRt99+q1mzZmnWrFlNuEfwBm8eF7t27dK0adNUVFSkCy64QPHx8ZKknTt3Ki8vT+3atdPKlSs1bNiwptwlNNKjjz6ql156qcbyxgQGr/77Y8DUpk2bjNjYWOOnP/2pceDAAdfy/Px84+qrrzZiY2ONF154odnaQ/Pw5s/x888/N+6++25j69atNda9/fbbxsCBA43Y2FgjPT3dW91HE2nKv99lZWXGNddcY1x66aXGrFmzjNjYWOP555/3Us/RVLx9TBQXFxsTJkwwYmNjjaefftooLy93W//jjz8a+/fv91b30US8fVz8+te/NmJjY42//OUvbsdEeXm58cADDxixsbHGxIkTvbkLaALr1683FixYYLz99tvGwYMHjSlTphixsbHGv/71rwa15+3jjMBwHjfccIMRGxtrbNiwoca6L7/80vWDqKysbJb20Dx8+XP885//bMTGxhoPPPBAo9tC02rK4+KJJ54wYmNjjffee8+YO3cugaGF8PYxsXDhQiM2Nta47777vNxT+JI3j4vS0lIjNjbWiI2NNX744Yca63Nzc13rS0pKvNF9+EhjA4O3//3hgnkTubm5ysrKUlBQUK1TQaNG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WrVq1ap6v0SuX79+mjZtml544QWlpqYqNTVVHTp0kM1mU2VlpS699FIlJCToueeeq1G3rKxM77zzjl5//XVZLBa1b99edrvd9eShwMBApaSk+Oyae2/skyRdc801ysvL0xNPPKFNmzZp06ZNateunRwOh0pLSyVVPSGquuuuu04rV67UV199pTFjxqhz584KCgpSdHS00tLS6uzz7bffrn379mnjxo16+umn9cwzzygiIkJFRUUyDEMBAQH6y1/+opEjRzZ+gOqhufrlnGEwu5nZZrO5HqnKDc9Ay0dgANDiFBUVuW70rO1yh5tuuknffvut1qxZo7vvvluvvvqq23PgzZ7eExgYWGPZuZfMPProo/rHP/6hKVOmaNiwYWrfvr0CAgL02GOP1Xp5jfORrxUVFdq3b58uvvhiz3f0jAceeEAXXXSR0tLStHfvXlVUVGjAgAH61a9+pSlTprguOznXn/70Jw0bNkxffPGFDh48qPz8fFVWVqpXr14aMWKEpk2b1mwncw3dJ6fp06dr7NixevHFF/Xll18qPz9fYWFh6t27t0aPHq0bbrjBrfxFF12k1atXa/ny5crMzNTx48flcDg87m9gYKAWLFig8ePHa/369dq5c6eKi4sVFRWlUaNGafr06UpISGjQWDRGc/SrsLBQx44dk2Q+e/Dtt9/KMAxFRkbyDgagFbAYzfmMOgDwoWeeeUZ///vf9emnn7pdz/3QQw/plVdecX1q6jRr1ix9/fXX+uyzz1zLRowYoSuvvFLz5893K3vZZZepT58+WrNmjWvZ3r17dcMNN+jKK6/UsWPHlJOTo7feektdunRpoj0EAMD7uIcBAOohMDCwxkzCW2+9VeONxBUVFbrvvvvUsWNHPfTQQ1qwYIFKS0v10EMP+bK7AAA0GpckAUA9jB8/Xhs3blRERIT69++v3bt361//+pd69uzpVu65555TVlaW/t//+3/q2LGjOnbsqDlz5mjevHnauHGjrr/++ubZAQAA6onAAAD18OCDD8pqteqdd95RSUmJEhIStGLFCv3tb39zldm1a5eee+45TZ48WT/72c9cy2+55Ra99957evTRRzVmzBhdcMEFzbELAADUC/cwAAAAADDFPQwAAAAATBEYAAAAAJgiMAAAAAAwRWAAAAAAYIrAAAAAAMAUgQEAAACAKQIDAAAAAFMEBgAAAACm/j/4LHT6kky/vwAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "with sns.axes_style(\"whitegrid\"), sns.plotting_context(\"poster\"):\n", + " # fig, axes = plt.subplots(1, 2, figsize=(24, 8))\n", + "\n", + " common_params = {\n", + " \"data\": results,\n", + " \"x\": \"k_max_as_n_fraction\",\n", + " \"y\": \"coef\",\n", + " \"hue\": \"data_size\",\n", + " \"style\": \"data_size\",\n", + " \"markers\": True,\n", + " \"dashes\": False,\n", + " }\n", + "\n", + " ax = sns.lineplot(\n", + " # ax=axes[0],\n", + " **common_params,\n", + " )\n", + " ax.set(xlim=(0, 1), ylim=(0, 1.0))\n", + " ax.set(ylabel=\"CCC\", xlabel=\"$k_{\\mathrm{max}}$ as fraction of $n$\")\n", + " ax.xaxis.grid(False)\n", + " # sns.move_legend(ax, 0, title=\"$n$\")\n", + " ax.get_legend().set_title(\"$n$\")\n", + "\n", + " plt.savefig(\n", + " OUTPUT_FIGURE_DIR / \"constant_baseline-k_max.svg\",\n", + " bbox_inches=\"tight\",\n", + " facecolor=\"white\",\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "f82a6e6c-6b8f-43de-9e5e-9eef34cc0f94", + "metadata": { + "execution": { + "iopub.execute_input": "2024-01-08T16:10:31.732091Z", + "iopub.status.busy": "2024-01-08T16:10:31.731908Z", + "iopub.status.idle": "2024-01-08T16:10:32.133214Z", + "shell.execute_reply": "2024-01-08T16:10:32.132784Z" + }, + "papermill": { + "duration": 0.414084, + "end_time": "2024-01-08T16:10:32.134897", + "exception": false, + "start_time": "2024-01-08T16:10:31.720813", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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6++GcniX5HQ69fzzz0uSVq5c6dc1dXV1qqqqUlxcnIqKinqdLygoUFZWlurr67V3794hXwcAAAAAgxWRIXV2drby8/Plcrm0bdu2XucrKytVV1enzMxMzZo167L9jRkzRpJUVVUll8vV67zL5VJVVZUk6Yorrhji6AEAQCQa98W5Mll776F8cUAtSSarReO+ODcUw/JLVVWVGhoalJ2drSuvvFJ79uzRI488oh//+Md6/PHH9f777/e65sCBA5KkKVOmyGaz9dnvjBkzJHn3BR/KdQAAAAAwWBG5J7XUuUro3nvv1cMPP6xZs2Zp4sSJkqSzZ8+qtLRUkrRixQqfN8uvXbtWO3bs0Fe+8hX967/+q+f4ggULlJiYqNraWv3sZz/TAw88oPj4eEmdK5N++tOf6tSpU0pLS9MXvvCFED4lAADwx5kPP1L97v1yu9pDcj+jvUNH//jakPowx1mVOWe6Rl97zZDH8/HHH0vq3KLsgQce0AsvvOBz/oknntCNN96ohx56yBMsnzhxQpKUk5PTb7/Z2dk+bYdyHQAAAAAMVsSG1EVFRSouLlZ5ebkWL16s+fPne94qb7fbtWjRIt12220+19TX1+vIkSOqr6/3OT5q1Cg9+OCD+tGPfqTNmzdrx44dys/PlyTt379f9fX1io+P17/9279dcksQAAAQHmc//ChkAXWguF3tOvvhRwEJqRsbGyVJu3btUkdHh+68804VFxcrPT1d7733nkpLS7V9+3YlJyfrZz/7mSTvC6gTExP77bf7BdTdL6QeynUAAAAAMFgRG1JLUklJiebMmaPNmzersrJSbrdbkydP1pIlS1RcXOyzivpybrnlFl199dX69a9/rV27duntt9+WJGVlZemb3/ym7rjjDl111VXBehQAADAEo669JqQrqQPBHGfVqAAE1JI8Lyhsb2/X0qVLdf/993vOffnLX9aYMWO0dOlSvfjii1q1apXGjx8vwzAkSSaTaUD3Gux1AAAAADBYER1SS9LixYu1ePFiv9r+/Oc/189//vN+z+fn5+uhhx4K1NAAAECIjL72miGvSG6uPa2abTv73IP6YiarRROLFig5J2tI9wyU7pXLkvStb32r1/kZM2YoPz9f+/fv17vvvqvx48d7ruleGd2X7pXQPfsf7HUAAAAAMFgR+eJEAACAQDv5+rv9viTxYkZ7h06+/m4ohuWXcePGeT7395Ln7uNnzpzxuaa2trbffuvq6nr1P9jrAAAAAGCwCKkBAEBMGPfFub0CaZPVojFzpvd5fNwX54ZyeJfU/S4NSTp//nyfbbqPJyUlSZKmTZsmSTp06JAcDkef1+zbt0+SNHXqVM+xwV4HAAAAAINFSA0AAGJCck6WJhYt8ATS3Vt6jJ45tc/jkbLVh9T5Do2ZM2dKkt55551e5xsbG3XgwAFJ0vTp0yVJ2dnZys/Pl8vl0rZt23pdU1lZqbq6OmVmZmrWrFme44O9DgAAAAAGi5AaAADEjO6gOi4lySeI7u94JPnud78rSXriiSd08OBBz/G2tjaVlJTowoULys/P9wmOV65cKUl6+OGHVVNT4zl+9uxZlZaWSpJWrFjR62XUg70OAAAAAAYj4l+cCAAAEEjJOVm6+h+/7vfxSLFw4ULdeeedevrpp7V06VLNnDlT6enp+vDDD/XZZ58pKytLjzzyiEwmk+eaoqIiFRcXq7y8XIsXL9b8+fNltVpVUVEhu92uRYsW6bbbbut1r8FeBwAAAACDQUgNAAAQJe6//37Nnj1bzz77rA4ePKjW1lbl5OTojjvu0MqVKzVy5Mhe15SUlGjOnDnavHmzKisr5Xa7NXnyZC1ZskTFxcX9roYe7HUAAAAAMFCE1AAAAFHkK1/5ir7yla8M6JrFixdr8eLFA77XYK8DAAAAgIFgCQwAAAAAAAAAIGwIqQEAAAAAAAAAYUNIDQAAAAAAAAAIG0JqAAAAAAAAAEDYEFIDAAAAAAAAAMKGkBoAAAAAAAAAEDaE1AAAAAAAAACAsCGkBgAAAAAAAACEDSE1AAAAAAAAACBsCKkBAAAAAAAAAGFDSA0AAAAAAAAACBtCagAAAAAAAABA2BBSAwAAAAAAAADChpAaAAAAAAAAABA21nAPAAAAAJd3+PBhvfnmm9q3b5/279+vo0ePyjAMrVu3TkVFRf1eV1dXp40bN+qtt97SqVOnZBiGsrOzNW/ePK1YsULjx4/v99qtW7eqvLxc1dXVcrvdmjRpkpYsWaLi4mKZzf2vdRjsdQAAAABiEyE1AABAFCgvL9dvfvObAV1z4MABLV++XE1NTRo7dqw+//nPS5L279+v3/72t9q6daueeuopzZ49u9e1paWl2rJlixISElRYWCir1aqKigqtWbNGFRUVWrdunSwWS8CuAwAAABC7CKkBAACiwNVXX6277rpL06dP1/Tp0/WjH/1IlZWVl7xmzZo1ampq0re+9S39+Mc/VlxcnCTJ5XLpwQcf1O9//3uVlJTopZde8rlu+/bt2rJlizIzM1VWVqbc3FxJ0pkzZ7Rs2TLt2LFDZWVlWr58eUCuAwAAABDbCKkBAEBM+dKcb+jsmfP9nh81OkOv7X4xdAPy09KlSwfUvq2tTe+//74k6Z577vEE1JIUFxene++9V7///e9VXV2t1tZWJSYmes5v2LBBkrR69WpP0CxJo0ePVklJiW6//XZt3LhRt99+u8/2HYO9DgAAAEBs47sDAAAQUy4VUPtzPlqYzWZZrZ3rEQzD6HXeZDJJkpKSkmSz2TzH6+rqVFVVpbi4uD73ui4oKFBWVpbq6+u1d+/eIV8HAAAAAITUAAAAw1BcXJzmzZsnSfrVr34ll8vlOedyufTYY49JkpYsWeIJrKXOfawlacqUKT7hdU8zZsyQJB08eHDI1wEAAAAA230AAICI9+v/77da/9gmtTS3huR+1078uyH3kZScqH/+f+7Q8pV/H4ARDU5JSYm+853v6Pnnn9fOnTs1ffp0SdK+ffvU1NSkZcuW6b777vO55sSJE5KknJycfvvNzs72aTuU6wAAAACAldQAACDi/Wbjb0MWUAdKS3OrfrPxt2Edw/jx41VeXq4FCxaorq5Or7zyil555RWdPn1aV155pW644QafvaolqaWlRZJ89qi+WHJysiSpubl5yNcBAAAAACE1AACIeMtW/L2SkvsPPyNRUnKilq0I3ypqSdqzZ48WL16sY8eO6cknn9Q777yjiooKPfHEE2pqatLdd9+tf//3f/e5pnv/6p5bgPhjsNcBAAAAANt9AACAiLd85d8HbNsMf7by+LDmjYDcK5yampr0ve99T62trXruuec0fvx4z7lFixZpypQp+vrXv67169fr5ptvVm5uriTvaufuldF96V4J3d12KNcBAAAAACupAQAAhqHXX39d586d08yZM30C6m4TJ07Utddeq/b2dlVWVnqOjxs3TpJUW1vbb991dXU+bYdyHQAAAAAQUgMAgJgyanTGkM5Hi1OnTkmSRowY0W+b1NRUSVJDQ4Pn2LRp0yRJhw4dksPh6PO6ffv2SZKmTp065OsAAAAAgO0+AABATHlt94vhHkJIjBkzRpJUVVUll8vV6wWJLpdLVVVVkqQrrrjCczw7O1v5+fmqqqrStm3b9I1vfMPnusrKStXV1SkzM1OzZs0a8nUAAAAAwEpqAACAYWjBggVKTExUbW2tfvazn8npdHrOOZ1O/eQnP9GpU6eUlpamL3zhCz7Xrly5UpL08MMPq6amxnP87NmzKi0tlSStWLFCZrM5INcBAAAAiG2spAYAAIgCVVVVnqBXkj755BNJ0qOPPqqnn37ac/z555+XJI0aNUoPPvigfvSjH2nz5s3asWOH8vPzJUn79+9XfX294uPj9W//9m+9tgQpKipScXGxysvLtXjxYs2fP19Wq1UVFRWy2+1atGiRbrvttl5jHOx1AAAAAGIbITUAAEAUsNvt+uCDD3odP3r0aL/X3HLLLbr66qv161//Wrt27dLbb78tScrKytI3v/lN3XHHHbrqqqv6vLakpERz5szR5s2bVVlZKbfbrcmTJ2vJkiUqLi7udzX0YK8DAAAAELsIqQEAAKLA3LlzVV1dPeDr8vPz9dBDDw3qnosXL9bixYtDdh0AAACA2MRSFgAAAAAAAABA2BBSAwAAAAAAAADChpAaAAAAAAAAABA27EkNAAAARLGtW7eqvLxc1dXVcrvdmjRp0pBeVDmY/urq6rRx40a99dZbOnXqlAzDUHZ2tubNm6cVK1Zo/PjxQ31MAAAADGOE1AAAAECUKi0t1ZYtW5SQkKDCwkJZrVZVVFRozZo1qqio0Lp162SxWILa34EDB7R8+XI1NTVp7Nix+vznPy9J2r9/v377299q69ateuqppzR79uyAPjsAAACGD0JqAAAARBzDMMI9hIi3fft2bdmyRZmZmSorK1Nubq4k6cyZM1q2bJl27NihsrIyLV++PKj9rVmzRk1NTfrWt76lH//4x4qLi5MkuVwuPfjgg/r973+vkpISvfTSSwF7dgAAAAwv7EkNAADCymQySZLcbneYR4JI0h1Sd//5QG8bNmyQJK1evdoTKEvS6NGjVVJSIknauHGj3/9uDaa/trY2vf/++5Kke+65xxNQS1JcXJzuvfdeSVJ1dbVaW1sH9HwAAACIHYTUAAAgrLpDLYfDEeaRIJI4nU5JktXKD/71pa6uTlVVVYqLi1NRUVGv8wUFBcrKylJ9fb327t0btP7MZrPna9TX6vfuv2RISkqSzWbz8+kAAAAQawipAQBAWI0YMUKSdP78ebZ4gMeFCxckdYab6O3AgQOSpClTpvQb/s6YMUOSdPDgwaD1FxcXp3nz5kmSfvWrX8nlcnnOuVwuPfbYY5KkJUuWsCoeAAAA/WJpCgAACKvU1FSdO3dOTU1NkqSMjAzZbDaZTCZCrRhjGIbcbreampp09uxZSZ1/PtDbiRMnJEk5OTn9tsnOzvZpG6z+SkpK9J3vfEfPP/+8du7cqenTp0uS9u3bp6amJi1btkz33XffZccwEHa7Xbt37w5onwAAAAgfQmoAABBWNptNV1xxhU6cOKGmpiZPWA2MHDlSKSkp4R5GRGppaZEkJSYm9tsmOTlZktTc3BzU/saPH6/y8nLdf//92rlzp+rq6jznpk+frhtuuMFnr2oAAADgYoTUAAAg7FJSUjRp0iQ1NjbqwoULcrlcbP0Ro0wmk2w2mzIyMlhFfQmBfrHkUPrbs2eP7r77bqWkpOjJJ5/U7NmzZRiG9uzZo1/84he6++67dffdd+v73/9+QMYqdf43Iy8vL2D9AQAAoH/V1dWy2+1BvQchNQAAiAgJCQkaM2aMxowZE+6hABGve1Vz9wrovnSveO5uG4z+mpqa9L3vfU+tra167rnnNH78eM+5RYsWacqUKfr617+u9evX6+abb1Zubu5lxwIAAIDYw4sTAQAAgCgzbtw4SVJtbW2/bbq33ehuG4z+Xn/9dZ07d04zZ870Cai7TZw4Uddee63a29tVWVl52XEAAAAgNhFSAwAAAFFm2rRpkqRDhw7J4XD02Wbfvn2SpKlTpwatv1OnTkmSRowY0W/f3du2NDQ0XHYcAAAAiE2E1AAAAECUyc7OVn5+vlwul7Zt29brfGVlperq6pSZmalZs2YFrb/u7Xmqqqrkcrl6XedyuVRVVSVJuuKKK/x+PgAAAMQWQmoAAAAgCq1cuVKS9PDDD6umpsZz/OzZsyotLZUkrVixQmazd8q/du1aFRUVae3atQHpb8GCBUpMTFRtba1+9rOfyel0es45nU795Cc/0alTp5SWlqYvfOELgXhsAAAADEO8OBEAAACIQkVFRSouLlZ5ebkWL16s+fPny2q1qqKiQna7XYsWLdJtt93mc019fb2OHDmi+vr6gPQ3atQoPfjgg/rRj36kzZs3a8eOHcrPz5ck7d+/X/X19YqPj9e//du/XXJLEAAAAMQ2QmoAAAAgSpWUlGjOnDnavHmzKisr5Xa7NXnyZC1ZskTFxcU+q56D1d8tt9yiq6++Wr/+9a+1a9cuvf3225KkrKwsffOb39Qdd9yhq666KiDPCwAAgOHJZBiGEe5BDDfV1dWy2+1KSUlRXl5euIcDAAAw7DH/ig18nQEAAEIvFHMw9qQGAAAAAAAAAIQNITUAAAAAAAAAIGwIqQEAAAAAAAAAYUNIDQAAAAAAAAAIG0JqAAAAAAAAAEDYEFIDAAAAAAAAAMKGkBoAAAAAAAAAEDaE1AAAAAAAAACAsCGkBgAAAAAAAACEDSE1AAAAAAAAACBsCKkBAAAAAAAAAGFDSA0AAAAAAAAACBtruAdwOVu3blV5ebmqq6vldrs1adIkLVmyRMXFxTKbB56xOxwOPfvss9q2bZtqamrkcrk0atQoTZ8+XcuXL9ecOXOC8BQAAAAAAAAAgL5EdEhdWlqqLVu2KCEhQYWFhbJaraqoqNCaNWtUUVGhdevWyWKx+N3f8ePHddddd6mmpkajRo3SDTfcoPj4eJ08eVKvvvqqrrnmGkJqAAAAAAAAAAihiA2pt2/fri1btigzM1NlZWXKzc2VJJ05c0bLli3Tjh07VFZWpuXLl/vVX0tLi+68804dO3ZMq1at0qpVqxQXF+c5f/78eTU0NAThSQAAAAAAAAAA/YnYPak3bNggSVq9erUnoJak0aNHq6SkRJK0ceNGud1uv/pbv369jh07pm984xu69957fQJqScrIyNCkSZMCMnYAAAAAAAAAgH8iMqSuq6tTVVWV4uLiVFRU1Ot8QUGBsrKyVF9fr7179162P6fTqeeff16StHLlykAPFwAAAAAAAAAwSBG53ceBAwckSVOmTJHNZuuzzYwZM3T69GkdPHhQs2fPvmR/VVVVamhoUHZ2tq688krt2bNHr7/+uhoaGjR69Gh94Qtf0KxZswL+HAAAAAAAAACAS4vIkPrEiROSpJycnH7bZGdn+7S9lI8//liSNHHiRD3wwAN64YUXfM4/8cQTuvHGG/XQQw/1G4oPht1u1+7duwPWHwAAAAAAAAAMNxEZUre0tEiSEhMT+22TnJwsSWpubr5sf42NjZKkXbt2qaOjQ3feeaeKi4uVnp6u9957T6Wlpdq+fbuSk5P1s5/9LABPAAAAAAAAAADwR0SG1IZhSJJMJlNA+ut+uWJ7e7uWLl2q+++/33Puy1/+ssaMGaOlS5fqxRdf1KpVqzR+/PiA3DclJUV5eXkB6QsAAAD9q66ult1uD/cwAAAAAAxCRL44sXuVdPeK6r50r6DubutPf5L0rW99q9f5GTNmKD8/X263W+++++5AhwsAAAAAAAAAGKSIDKnHjRsnSaqtre23TV1dnU9bf/qTpCuuuKLPNt3Hz5w54/c4AQAAAAAAAABDE5Eh9bRp0yRJhw4dksPh6LPNvn37JElTp069bH/5+fmez+fPn++zTffxpKSkAY0VAAAAAAAAADB4ERlSZ2dnKz8/Xy6XS9u2bet1vrKyUnV1dcrMzNSsWbMu219WVpZmzpwpSXrnnXd6nW9sbNSBAwckSdOnTx/i6AEAAAAAAAAA/orIkFqSVq5cKUl6+OGHVVNT4zl+9uxZlZaWSpJWrFghs9n7CGvXrlVRUZHWrl3bq7/vfve7kqQnnnhCBw8e9Bxva2tTSUmJLly4oPz8fL9CbwAAAAAAAABAYFjDPYD+FBUVqbi4WOXl5Vq8eLHmz58vq9WqiooK2e12LVq0SLfddpvPNfX19Tpy5Ijq6+t79bdw4ULdeeedevrpp7V06VLNnDlT6enp+vDDD/XZZ58pKytLjzzyiEwmU6geEQAAAAAAAABiXsSG1JJUUlKiOXPmaPPmzaqsrJTb7dbkyZO1ZMkSFRcX+6yi9sf999+v2bNn69lnn9XBgwfV2tqqnJwc3XHHHVq5cqVGjhwZpCcBAAAAAAAAAPTFZBiGEe5BDDfV1dWy2+1KSUlRXl5euIcDAAAw7DH/ig18nQEAAEIvFHOwiN2TGgAAAAAAAAAw/BFSAwAAAAAAAADChpAaAAAAAAAAABA2hNQAAAAAAAAAgLAhpAYAAAAAAAAAhA0hNQAAAAAAAAAgbAipAQAAAAAAAABhQ0gNAAAAAAAAAAgbQmoAAAAAAAAAQNgQUgMAAAAAAAAAwoaQGgAAAAAAAAAQNoTUAAAAAAAAAICwIaQGAAAAAAAAAIQNITUAAAAAAAAAIGz8Dqn/9V//VVOnTtU//dM/+d35ypUrNXXqVP3whz8c1OAAAACAaMF8GQAAABgcv0LqQ4cO6U9/+pNGjBihX/ziF353/otf/ELJycn67//+bx09enSwYwQAAAAiGvNlAAAAYPD8CqlffPFFSdKyZcuUnp7ud+cZGRlatmyZ3G63XnjhhcGMDwAAAIh4zJcBAACAwfMrpN61a5dMJpNuvPHGAd/ga1/7miTp3XffHfC1AAAAQDRgvgwAAAAMnl8h9dGjR2WxWDRlypQB32DKlCmyWq38+CIAAACGLebLAAAAwOD5FVI3NzcrJSVl0DdJTk6W3W4f9PUAAABAJGO+DAAAAAyeXyF1SkrKoCfNhmHIbrcrOTl5UNcDAAAAkY75MgAAADB4foXUY8eOVUdHh6qqqgZ8g4MHD6qjo0Njx44d8LUAAABANGC+DAAAAAyeXyH1DTfcIEn6wx/+MOAb/O53v5PJZFJBQcGArwUAAACiAfNlAAAAYPD8Cqn/5//8nzIMQ7/97W9VUVHhd+cVFRV6/vnnPX0AAAAAwxHzZQAAAGDw/Aqpp0+frq997Wtqb2/XP//zP+uZZ56R0+nst73T6dQzzzyjf/7nf1ZHR4duvPFGTZ8+PWCDBgAAACIJ82UAAABg8EyGYRj+NGxpaVFxcbGqq6tlMpmUlpamz33uc8rLy1N6erokqaGhQdXV1Xr77bfV2NgowzCUl5enLVu2xNSLYKqrq2W325WSkqK8vLxwDwcAAGDYi4T5F/Pl4IuErzMAAECsCcUczO+QWpKam5v1f/7P/9HLL7/cebHJ1Ge77i6/9rWv6f/+3/+rlJSUAAw1ejB5BgAACK1ImX8xXw6uSPk6AwAAxJJQzMGsA2mcnJysRx55RN/5znf03HPP6d1331VNTY1Pm4kTJ2ru3Ln61re+xY8sAgAAIKaEY768detWlZeXq7q6Wm63W5MmTdKSJUtUXFwss9mv3f0C0p/D4dCzzz6rbdu2qaamRi6XS6NGjdL06dO1fPlyzZkzZyiPCQAAgGFsQCup+9Le3q7GxkZJUlpamqzWAeXewxIrPAAAAEIrkudfwZwvl5aWasuWLUpISFBhYaGsVqsqKirU3Nysr3zlK1q3bp0sFkvQ+zt+/Ljuuusu1dTUaNSoUZo5c6bi4+N18uRJffTRR1q1apVWrVo15OeN5K8zAADAcBVxK6n77MBq1ahRowIxFgAAAGDYCdZ8efv27dqyZYsyMzNVVlam3NxcSdKZM2e0bNky7dixQ2VlZVq+fHlQ+2tpadGdd96pY8eOecLouLg4z/nz58+roaEhEI8MAACAYcrvn/87ffq03nvvPe3atcvvznft2qX33ntP9fX1gxocAAAAEC1CPV/esGGDJGn16tWeQFmSRo8erZKSEknSxo0b5Xa7g9rf+vXrdezYMX3jG9/Qvffe6xNQS1JGRoYmTZo0gCcDAABArPE7pP7+97+vZcuW6c033/S78zfffFPLli3Tv/zLvwxqcAAAAEC0COV8ua6uTlVVVYqLi1NRUVGv8wUFBcrKylJ9fb327t0btP6cTqeef/55SdLKlSsH9AwAAABAN79C6oqKCu3bt08TJkzQvffe63fn99xzj8aPH6/du3frvffeG/QgAQAAgEgW6vnygQMHJElTpkyRzWbrs82MGTMkSQcPHgxaf1VVVWpoaFB2drauvPJK7dmzR4888oh+/OMf6/HHH9f777/v9zMBAAAgdvm1J/Wf/vQnmUwm3XHHHQN6Q7jFYtEdd9yh0tJS/fGPf9QNN9ww6IECAAAAkSrU8+UTJ05IknJycvptk52d7dM2GP19/PHHkqSJEyfqgQce0AsvvOBzzRNPPKEbb7xRDz30UL/h92DY7Xbt3r07YP0BAAAgvPyaQX/wwQeSpC996UsDvsHChQslSXv27BnwtQAAAEA0CPV8uaWlRZKUmJjYb5vk5GRJUnNzc9D6a2xslNS5t/aLL76oO++8Uzt27NB7772nJ598UllZWdq+fbtKS0svOwYAAADELr9WUp86dUrx8fHKysoa8A2ysrKUkJCgU6dODfhaAAAAIBqEer5sGIYkyWQyDfh+geyv+yWK7e3tWrp0qe6//37PuS9/+csaM2aMli5dqhdffFGrVq3S+PHjAzLelJQU5eXlBaQvAAAAXFp1dbXsdntQ7+HXSmqHwzGkH8+z2Wxqa2sb9PUAAABAJAv1fLl7VXP3Cui+dK947m4bjP56fv7Wt77V65oZM2YoPz9fbrdb77777mXHAQAAgNjkV0idnp6upqYmOZ3OAd/A6XSqqalJaWlpA74WAAAAiAahni+PGzdOklRbW9tvm7q6Op+2weiv5+crrriiz+u6j585c+ay4wAAAEBs8iuknjhxoiQN6uUku3btkmEYmjBhwoCvBQAAAKJBqOfL06ZNkyQdOnRIDoejzzb79u2TJE2dOjVo/eXn53s+nz9/vs/ruo8nJSVddhwAAACITX6F1IWFhTIMQ08//fSAb/D000/LZDJp/vz5A74WAAAAiAahni9nZ2crPz9fLpdL27Zt63W+srJSdXV1yszM1KxZs4LWX1ZWlmbOnClJeuedd3pd19jYqAMHDkiSpk+f7vfzAQAAILb4FVIvXbpUCQkJeuutt7R+/Xq/O1+/fr3eeustxcfHa+nSpYMeJAAAABDJwjFfXrlypSTp4YcfVk1Njef42bNnVVpaKklasWKFzGbvlH/t2rUqKirS2rVrA9KfJH33u9+VJD3xxBM6ePCg53hbW5tKSkp04cIF5efn+xWWAwAAIDZZ/WmUlZWl7373u1q3bp0ef/xx7du3T6tWrep3NcS+ffu0fv16vfbaazKZTFq5cuWg3nQOAAAARINwzJeLiopUXFys8vJyLV68WPPnz5fValVFRYXsdrsWLVqk2267zeea+vp6HTlyRPX19QHpT5IWLlyoO++8U08//bSWLl2qmTNnKj09XR9++KE+++wzZWVl6ZFHHpHJZBrQ8wEAACB2+BVSS9I///M/6/jx4/rDH/6g1157Ta+99ppGjRqla665xvOSl8bGRn300Uc6e/asJMkwDN1yyy363ve+F5zRAwAAABEiHPPlkpISzZkzR5s3b1ZlZaXcbrcmT56sJUuWqLi4uNeq52D1d//992v27Nl69tlndfDgQbW2tionJ0d33HGHVq5cqZEjRw7q+QAAABAbTIZhGAO54LnnntOvfvUrz8T64hUR3d2NHDlSd999t4qLiwM01OhRXV0tu92ulJQU5eXlhXs4AAAAw14kzb+YLwdPJH2dAQAAYkUo5mB+r6Tu9g//8A+69dZb9Ze//EXvvvuuPv30UzU0NEiS0tPTdeWVV2ru3Ln6yle+ooSEhECPFwAAAIhozJcBAACAgRlwSC1J8fHxuvnmm3XzzTcHejwAAABA1GO+DAAAAPjP75D63Xff1XvvvaeUlBT9r//1v/y6ZtOmTWpubta8efN0/fXXD3aMAAAAQMRjvgwAAAAMjl9vUmlra9MPfvADPfHEExo7dqzfnY8dO1b//u//rgceeEAul2vQgwQAAAAiGfNlAAAAYPD8Cqm3b9+uzz77TAUFBSoqKvK786997Wu64YYbdPLkSe3YsWPQgwQAAAAiGfNlAAAAYPD8CqlfeeUVmUwm3XbbbQO+we233y7DMPSXv/xlwNcCAAAA0YD5MgAAADB4foXUVVVVkqTCwsIB32D+/PmSpP379w/4WgAAACAaMF8GAAAABs+vkPrcuXNKTk5WSkrKgG+QkpKi5ORknT17dsDXAgAAANGA+TIAAAAweH6F1IZhyO12D/omhmHIMIxBXw8AAABEMubLAAAAwOD5FVJnZGSotbVVjY2NA75BY2OjWlpalJGRMeBrAQAAgGjAfBkAAAAYPL9C6ry8PEnSm2++OeAbvPHGGz59AAAAAMMN82UAAABg8PwKqRcsWCDDMLR+/Xo5nU6/O3c6nfqP//gPmUwm/d3f/d2gBwkAAABEMubLAAAAwOD5FVLfeuutGj16tA4fPqx77rlHdrv9stc0Nzfrnnvu0eHDhzVq1CjdcsstQx4sAAAAEImYLwMAAACD51dIbbPZtGbNGplMJr3xxhu6+eab9fTTT+vIkSO92h45ckRPPfWUbr75Zr3xxhsym80qLS2VzWYL+OABAACASMB8GQAAABg8kzGA14j/4Q9/UElJiZxOp0wmkyQpPj5eqampkqSmpibPjzcahqH4+Hj9+Mc/1je/+c0gDD1yVVdXy263KyUlhb0FAQAAQiBS5l/Ml4MrUr7OAAAAsSQUczC/VlJ3u/XWW/Vf//Vf+uIXvyipc2Ld1tam+vp61dfXq62tTd2Z9xe/+EU9//zzTLgBAAAQM5gvAwAAAANnHegFeXl5+o//+A+dPn1alZWV+vTTT9XQ0CBJSk9P15VXXqmCggJlZWUFeqwAAABAxGO+DAAAAAzMgEPqbllZWVq8eHEgxwIAAAAMG8yXAQAAAP8MaLsPAAAAAAAAAAACiZAaAAAAAAAAABA2hNQAAAAAAAAAgLAhpAYAAAAAAAAAhA0hNQAAAAAAAAAgbAipAQAAAAAAAABhQ0gNAAAAAAAAAAgbQmoAAAAAAAAAQNhEfEi9detW/eM//qPmzJmjWbNm6dZbb9XmzZvldruH3PcjjzyivLw85eXl6amnngrAaAEAAAAAAAAAA2EN9wAupbS0VFu2bFFCQoIKCwtltVpVUVGhNWvWqKKiQuvWrZPFYhlU3x9++KH+8z//UyaTSYZhBHjkAAAAAAAAAAB/RGxIvX37dm3ZskWZmZkqKytTbm6uJOnMmTNatmyZduzYobKyMi1fvnzAfTudTv3whz/UqFGjdO211+qVV14J8OgBAAAAAAAAAP6I2O0+NmzYIElavXq1J6CWpNGjR6ukpESStHHjxkFt+7Fu3Tp98sknKi0t1YgRIwIxXAAAAAAAAADAIERkSF1XV6eqqirFxcWpqKio1/mCggJlZWWpvr5ee/fuHVDfH3zwgTZt2qSbb75ZCxcuDNCIAQAAAAAAAACDEZEh9YEDByRJU6ZMkc1m67PNjBkzJEkHDx70u9+2tjbdf//9SktL049+9KOhDxQAAAAAAAAAMCQRuSf1iRMnJEk5OTn9tsnOzvZp649HH31UR44c0aOPPqqRI0cObZB+sNvt2r17d9DvAwAAAAAAAADRKiJXUre0tEiSEhMT+22TnJwsSWpubvarzz179ujXv/61Fi1apJtuumnogwQAAAAAAAAADFlErqQ2DEOSZDKZAtKfw+HQD3/4Q6WkpOjBBx8MSJ/+SElJUV5eXsjuBwAAEKuqq6tlt9vDPQwAAAAAgxCRK6m7V0l3r6juS/cK6u62l/LII4/o6NGjeuCBBzRmzJjADBIAAAAAAAAAMGQRuZJ63LhxkqTa2tp+29TV1fm0vZRXXnlFZrNZL774ol588UWfc4cPH5YklZeX6/XXX9eECRP005/+dJAjBwAAAAAAAAAMRESG1NOmTZMkHTp0SA6HQzabrVebffv2SZKmTp3qV59ut1uVlZX9nj9+/LiOHz+upqamQYwYAAAAAAAAADAYERlSZ2dnKz8/X1VVVdq2bZu+8Y1v+JyvrKxUXV2dMjMzNWvWrMv29+qrr/Z77oEHHtALL7yg++67T3fddddQhw4AAAAAAAAAGICI3JNaklauXClJevjhh1VTU+M5fvbsWZWWlkqSVqxYIbPZ+whr165VUVGR1q5dG9rBAgAAAAAAAAAGJSJXUktSUVGRiouLVV5ersWLF2v+/PmyWq2qqKiQ3W7XokWLdNttt/lcU19fryNHjqi+vj5MowYAAAAAAAAADETEhtSSVFJSojlz5mjz5s2qrKyU2+3W5MmTtWTJEhUXF/usogYAAAAAAAAARB+TYRhGuAcx3FRXV8tutyslJUV5eXnhHg4AAMCwx/wrNvB1BgAACL1QzMEieiU1AAAAAFyKu6NdcrtlGIZMJpNkNstsCey3OaG4RyBEyzhDgVp4UQsvauFFLbyohRe18KIWXu6OdikEa5xjs7oAAAAAopq7o0NuZ5taT5+Sq6lBkiHJpLjUdCVmZcscnyCzxRLx9wiEaBlnKFALL2rhRS28qIUXtfCiFl7UwqtnLdpbmoN+P0JqAAAAANHFMORqOq/m40cvPiFX03m5ms4reXyu4lIzBv2NpLujI+j3CIRoGWcoUAsvauFFLbyohRe18KIWXtTCq+9amIJ6T948CAAAACCqGIbRxzeQvpqPH5Xb2Tboe7idbUG/RyBEyzhDgVp4UQsvauFFLbyohRe18KIWXv7UItAIqQEAAABEFX+/OWw9fapzH8WB9t/RrtbTp4J6j0CIlnGGArXwohZe1MKLWnhRCy9q4UUtvAZSi0Biuw8AAAAAUcXo6PDrOxlXU4M6Wseo4XD1gPofMTmvax/K4N0jEKJlnKFALbyohRe18KIWXtTCi1p4UQuvgdQikFhJDQAAACDK+PuG+aG8iT4U9wiEaBlnKFALL2rhRS28qIUXtfCiFl7Uwiv0z0hIDQAAACDK+PvinqG84CcU9wiEaBlnKFALL2rhRS28qIUXtfCiFl7Uwiv0z8h2HwAAAACiislikXT5vSDjUtNlSUzUyGuvH1D/7o52xaWmy9V0Pmj3CIRoGWcoUAsvauFFLbyohRe18KIWXtTCayC1CCRWUgMAAACIKub4BL/aJWZly2wZ+Locs8WqxKzsoN4jEKJlnKFALbyohRe18KIWXtTCi1p4UQuvgdQioPcN+R0BAAAAYAhMJpOSx+desk3y+El+h9l9MccnBP0egRAt4wwFauFFLbyohRe18KIWXtTCi1p4+VOLQBu+sT8AAACA4clkUlxqhlKnJKn19KmuN9AbkkyKS03vXOEUnyCzxTLoW5gtlqDfIxCiZZyhQC28qIUXtfCiFl7UwotaeFELr4troXMNQb+nyTCMWHglZUhVV1fLbrcrJSVFeXl54R4OAADAsBfL86+tW7eqvLxc1dXVcrvdmjRpkpYsWaLi4mKZzQP/wclA9PfII49ow4YNkqT77rtPd91114DH0Ze+vs7ujnbJ7ZZhGDKZTJLZHPAfwQ3FPQIhWsYZCtTCi1p4UQsvauFFLbyohRe18HJ3tOvQoU9kb24O6lw7NqsLAAAADAOlpaXasmWLEhISVFhYKKvVqoqKCq1Zs0YVFRVat26dLANY7ROI/j788EP953/+p0wmk0KxHsZssUpBXtAUinsEQrSMMxSohRe18KIWXtTCi1p4UQsvauFltlglkyno9yGkBgAAAKLQ9u3btWXLFmVmZqqsrEy5ubmSpDNnzmjZsmXasWOHysrKtHz58pD153Q69cMf/lCjRo3Stddeq1deeWWojwkAAIAYwIsTAQAAgCjUvZ3G6tWrPYGyJI0ePVolJSWSpI0bN8rtdoesv3Xr1umTTz5RaWmpRowY4f/DAAAAIKYRUgMAAABRpq6uTlVVVYqLi1NRUVGv8wUFBcrKylJ9fb327t0bkv4++OADbdq0STfffLMWLlw40EcCAABADCOkBgAAAKLMgQMHJElTpkyRzWbrs82MGTMkSQcPHgx6f21tbbr//vuVlpamH/3oR5d/AAAAAKAH9qQGAAAAosyJEyckSTk5Of22yc7O9mkbzP4effRRHTlyRI8++qhGjhx52fsNld1u1+7du4N+HwAAAIQGK6kBAACAKNPS0iJJSkxM7LdNcnKyJKm5uTmo/e3Zs0e//vWvtWjRIt10002XvRcAAABwMVZSAwAAAFHGMAxJkslkCmt/DodDP/zhD5WSkqIHH3wwIGPxR0pKivLy8kJ2PwAAgFhWXV0tu90e1HuwkhoAAACIMt2rmrtXQPele8Vzd9tg9PfII4/o6NGjeuCBBzRmzJjLDxwAAADoAyupAQAAgCgzbtw4SVJtbW2/berq6nzaBqO/V155RWazWS+++KJefPFFn/aHDx+WJJWXl+v111/XhAkT9NOf/vSyYwEAAEDsIaQGAAAAosy0adMkSYcOHZLD4ZDNZuvVZt++fZKkqVOnBrU/t9utysrKfvs+fvy4jh8/rqampsuOAwAAALGJ7T4AAACAKJOdna38/Hy5XC5t27at1/nKykrV1dUpMzNTs2bNClp/r776qqqrq/v855ZbbpEk3XfffaqurtZ///d/D+GJAQAAMJwRUgMAAABRaOXKlZKkhx9+WDU1NZ7jZ8+eVWlpqSRpxYoVMpu9U/61a9eqqKhIa9euDUh/AAAAQCCw3QcAAAAQhYqKilRcXKzy8nItXrxY8+fPl9VqVUVFhex2uxYtWqTbbrvN55r6+nodOXJE9fX1AekPAAAACARCagAAACBKlZSUaM6cOdq8ebMqKyvldrs1efJkLVmyRMXFxQNe9Rzo/gAAAAB/mAzDMMI9iOGmurpadrtdKSkpysvLC/dwAAAAhj3mX7GBrzMAAEDohWIOxlIIAAAAAAAAAEDYEFIDAAAAAAAAAMKGkBoAAAAAAAAAEDaE1AAAAAAAAACAsCGkBgAAAAAAAACEDSE1AAAAAAAAACBsCKkBAAAAAAAAAGFDSA0AAAAAAAAACBtCagAAAAAAAABA2BBSAwAAAAAAAADChpAaAAAAAAAAABA2hNQAAAAAAAAAgLAhpAYAAAAAAAAAhA0hNQAAAAAAAAAgbAipAQAAAAAAAABhQ0gNAAAAAAAAAAgbQmoAAAAAAAAAQNgQUgMAAAAAAAAAwoaQGgAAAAAAAADgo93RFrJ7EVIDAAAAAAAAADxc9hadfLVCLntLSO5HSA0AAAAAAAAAkNQZUB/946uyn6jT0T++KqPDHfR7ElIDAAAAAAAAANTuaFPtzko5m+ySJGeTXY6z54N+X0JqAAAAAAAAAICstgTlLChQfGqK55i7oyPo9yWkBgAAAAAAAABIkuJSkpR780KfoDrYCKkBAAAAAAAAAB6GDI393JyQ3c8asjsBAAAAAAAAACJa09ETsiYmqu7t3SG7JyupAQAAAAAAACDGudvbVVe5V9ZEm06+VuF5eWIoEFIDAAAAAAAAQAxznG/U4Rd2KHnsGNXv3u8TUJstlqDfn5AaAAAAAAAAAGJUw8dHdPiFv6jtfKPq/rZHmXOme16aGJ+aItuojKCPgZAaAAAAAAAAAGKM29Wuk6+/q5OvvyujvUOS5Gpulcveook3L1TKFWOVe/NCmSzBj5B5cSIAAAAAAAAAxBDH+UadeOVttZ1v8hyLT0/V+EXzZRuZLkkat7BQVltCSMZDSA0AAAAAAAAAMeJ89WGdenu3Z/W0JKVdNVHZX7helrg4z7FQBdQSITUAAAAAAAAADHtuV7tOvb1LDR8f9RwzWSzK/twcpedNkslkCtvYCKkBAAAAAAAAYBhznOva3qOh/+09womQGgAAAAAAAACGIcMw1PDxEZ16a7eMjh7be0zJVfbn5/hs7xFOhNQAAAAAAAAAMMx0uFw69dZuNR466jlmsliU/fk5ysibHL6B9YGQGgAAAAAAAACGEce5Bh1/5W9y9tjeIyE9VVcs+pxsI9PCOLK+EVIDAAAAAAAAwDBgGIYaqg/r1Nt7fLb3SL96krI/N0fmuMiMgyNzVAAAAAAAAAAAv3W4XDr15i41flLjOWayWpTz+euVfvWkMI7s8gipAQAAAAAAACCKOc416PiOt+VsvOA5lpDRtb1HRuRt73ExQmoAAAAAAAAAiELRur3HxSJ+lFu3blV5ebmqq6vldrs1adIkLVmyRMXFxTKbzX714XK5tGvXLr3xxhvas2ePamtr1dDQoIyMDM2aNUvf/va3NXfu3CA/CQAAAAAAAAAERofTpVNvRef2HheL6JC6tLRUW7ZsUUJCggoLC2W1WlVRUaE1a9aooqJC69atk8ViuWw/7733nu644w5JUmZmpvLz85WYmKhPP/1U27dv1/bt27Vq1Srde++9wX4kAAAAAAAAABgSx9kGHX/l4u090jR+0XwlRMH2HheL2JB6+/bt2rJlizIzM1VWVqbc3FxJ0pkzZ7Rs2TLt2LFDZWVlWr58+WX7MplMuvHGG7Vs2TJdf/31PudefvllrV69Wk8++aTmzp2refPmBeNxAAAAAAAAAGBIDMPQ+Y8+Vd3f3vfd3iNvsrI/N1tma8TGvZfk334ZYbBhwwZJ0urVqz0BtSSNHj1aJSUlkqSNGzfK7XZftq/CwkI9/vjjvQJqSbrpppt0yy23SJJeeumloQ8cAAAAAAAAAAKsw+nSyVcrdOrNXZ6A2my1atyX5mnc3xVEbUAtRWhIXVdXp6qqKsXFxamoqKjX+YKCAmVlZam+vl579+4d8v2mTZsmSTp9+vSQ+wIAAAAAAACAQHKcPa/DL/xFjZ8e8xxLyEjT5Fu/qvQpueEbWIBEZEh94MABSdKUKVNks9n6bDNjxgxJ0sGDB4d8v6NHj0rq3K8aAAAAAAAAACKBYRg6d+ATHX5xh8/+0+nXTNbkW76ihPTUMI4ucCJyDfiJEyckSTk5Of22yc7O9mk7WPX19XrhhRckSV/96leH1NfF7Ha7du/eHdA+AQAAAAAAAAx/HU6Xane+p6bD3tXTZqtV2V+4flisnu4pIkPqlpYWSVJiYmK/bZKTkyVJzc3Ng75Pe3u7fvCDH+jChQsqLCzUwoULB90XAAAAAAAAAARC65nzOvHK23I22T3HEkamafyizw2b1dM9RWRIbRiGJMlkMgX1Pg8++KAqKiqUnZ2tX/7ylwHvPyUlRXl5eQHvFwAAAL6qq6tlt9sv3xAAAACIYIZh6PzBT1RX8b6MDrfneMY1V2rs/FlR/XLES4nIp+peJd29orov3Suou9sO1E9+8hP97ne/U2Zmpp555hn2owYAAAAAAAAQNp3be1Sq6fBxzzFznFU5X7hBaVdNDOPIgi8iQ+px48ZJkmpra/ttU1dX59N2IH7+85/r2Wef1ciRI/XMM88oNzd3UOMEAAAAAAAAgKHqa3sP26h0XfHl+cNye4+LRWRIPW3aNEnSoUOH5HA4ZLPZerXZt2+fJGnq1KkD6vuhhx7Spk2blJ6erk2bNumqq64a+oABAAAAAAAAYIAMw9D5A13be7h7bO8x9UqNLRy+23tczBzuAfQlOztb+fn5crlc2rZtW6/zlZWVqqurU2ZmpmbNmuV3vw8//LCeeuoppaWladOmTbrmmmsCOWwAAAAAAAAA8EuH06kTr/xNp97e7QmozXFWXbGwUDlfuCFmAmopQkNqSVq5cqWkzmC5pqbGc/zs2bMqLS2VJK1YsUJms/cR1q5dq6KiIq1du7ZXf4899pg2btyo1NRUPf30057V2gAAAAAAAAAQSq315/Tp77er6Yh3/2nbqHRNvvXGYb//dF8iNo4vKipScXGxysvLtXjxYs2fP19Wq1UVFRWy2+1atGiRbrvtNp9r6uvrdeTIEdXX1/sc/+tf/6r169dLkiZMmKCysrI+7zl58mRPOA4AAAAAAAAAgWQYhs5VHdLpd/b6bu8x7SqNnTdLZqsljKMLn4gNqSWppKREc+bM0ebNm1VZWSm3263JkydryZIlKi4u9llFfSmNjY2ez/v379f+/fv7bFdQUEBIDQAAgKiydetWlZeXq7q6Wm63W5MmTRrwfHmw/blcLu3atUtvvPGG9uzZo9raWjU0NCgjI0OzZs3St7/9bc2dOzdQjwoAABDVOpxO1b5RqaYjJzzHzHFW5SwoUNqVE8I4svAzGYZhhHsQw011dbXsdrtSUlKUl5cX7uEAAAAMe7E6/yotLdWWLVuUkJCgwsJCz08eNjc36ytf+YrWrVsni8X/1TgD7e9vf/ub7rjjDklSZmam8vPzlZiYqE8//VQff/yxJGnVqlW69957A/K8sfp1BgAA0a+1/pyOv/K2XBeaPcdsozJ0xaL5SkgbEcaRXV4o5mARvZIaAAAAQN+2b9+uLVu2KDMzU2VlZcrNzZUknTlzRsuWLdOOHTtUVlam5cuXB60/k8mkG2+8UcuWLdP111/v09/LL7+s1atX68knn9TcuXM1b968gDw3AABANGF7D/9E7IsTAQAAAPRvw4YNkqTVq1d7AmVJGj16tEpKSiRJGzdulLvHN0OB7q+wsFCPP/54r4Bakm666SbdcsstkqSXXnrJ38cCAAAYNjranDq+423V/W2PJ6A2x1l1xaL5yvn89QTUPRBSAwAAAFGmrq5OVVVViouLU1FRUa/zBQUFysrKUn19vfbu3Rvy/rpNmzZNknT69Gm/rwEAABgOWj87q0//sF0Xjnr3n7aNztDkW29U2uTY3n+6L4TUAAAAQJQ5cOCAJGnKlCmy2Wx9tpkxY4Yk6eDBgyHvr9vRo0clde5XDQAAEAsMw9DZfdU68tJfffafHpk/RZP+56KI3386XNiTGgAAAIgyJ050rsjJycnpt012drZP21D2J0n19fV64YUXJElf/epX/brGX3a7Xbt37w5onwAAAEPW3qG4mtOyNHjDacNslit3jGptUu0AfiIt1hBSAwAAAFGmpaVFkpSYmNhvm+TkZElSc3Nzv22C1V97e7t+8IMf6MKFCyosLNTChQsvew0AAEA0MzU7FHf4lMzOds8xd1KCXJPHykiID+PIogMhNQAAABBlDMOQJJlMpojs78EHH1RFRYWys7P1y1/+MiB99pSSkqK8vLyA9wsAADBQhmHo3P6Pdfr9Tz0vR5Q6t/fImnedzJbofzlidXW17HZ7UO9BSA0AAABEme5Vzd0roPvSveK5u22o+vvJT36i3/3ud8rMzNQzzzzDftQAAGDY6mhz6uTr7+pCzUnPMXN8nMb9XYFSJ40P48iiDyE1AAAAEGXGjRsnSaqtre23TV1dnU/bUPT385//XM8++6xGjhypZ555Rrm5uZe9NwAAQDRq+eysTrzytlx271/y2zJHavyX5ys+NSWMI4tOhNQAAABAlJk2bZok6dChQ3I4HLLZbL3a7Nu3T5I0derUkPT30EMPadOmTUpPT9emTZt01VVX+fcwAAAAUcQwDJ3dV63T734gdW2ZJkkjp1+trLkzh8X2HuFgDvcAAAAAAAxMdna28vPz5XK5tG3btl7nKysrVVdXp8zMTM2aNSvo/T388MN66qmnlJaWpk2bNumaa64Z3IMBAABEsHZHm47/5S2dfmevJ6A2x8dp/Fc+r+z5swmoh4CQGgAAAIhCK1eulNQZENfU1HiOnz17VqWlpZKkFStWyGz2TvnXrl2roqIirV27NiD9SdJjjz2mjRs3KjU1VU8//bRnVTYAAEC0aXe09Xu89cw5Hf7Ddp/9pxMzR+rKW29U6qQrQjXEYYvtPgAAAIAoVFRUpOLiYpWXl2vx4sWaP3++rFarKioqZLfbtWjRIt12220+19TX1+vIkSOqr68PSH9//etftX79eknShAkTVFZW1udYJ0+e7AnBAQAAIpHL3qLanZXKWVCguJQkz3GnvUWndlYqc850mXr8ZT3bewQWITUAAAAQpUpKSjRnzhxt3rxZlZWVcrvdmjx5spYsWaLi4uJeq54D3V9jY6Pn8/79+7V///4++y0oKCCkBgAAEctlb9HRP74qZ5NdR//4qnJvXqi4lCQ5LzSr5k+vydlkl7PJrnFfmqfat3ZrzJx8peayejqQTIbRY4dvBER1dbXsdrtSUlKUl5cX7uEAAAAMe8y/YgNfZwAAEGjtjjadfLVC9hN1nmPxqSnK+eJc1b7+rpxNds/xlCvGKufvChSXnNRXV8NWKOZg7EkNAAAAAAAAICZZbQnKWVCg+NQUzzFnk11HX/qrT0Adn5qi7AU3xFxAHSqE1AAAAAAAAABiirujQ61nzuv8R4d1vvqwrlg03yeo7ik+NUW5Ny9UfEpyiEcZO9iTGgAAAAAAAMCw5Xa1y3G2Qa1nzslx9rwcZxrUdr5RhtvtadN6+ozGzp+tY9t29rp+3Jfm+bxMEYFHSA0AAAAAAABgWGh3tMlx5nxXGH1erWfOy9l44ZLXxKemKHPOdJ187Z0+z5987R3PyxQRHITUAAAAAAAAAKKKYRhqb26V42xnEN0dTLvsLX73ETciWSMmZCtj2hQd3/6mzx7UPTmb7Dr6x1cJqoOIkBoAAAAAAABAxDIMQ84me2cQfea8WrtWSXc42vzrwGRSQnqqbKPSZRs9Uomj02UblSFLQrzaHW06+WpFr5ckjvvSPJ187R3PcWeTXbU7KzVuYaGstoRgPGZMI6QGAAAAAAAAEBEMt1tt5xt9Vkc7zjbI7Wr363qTxayEkelKHJUh2+iuf0amyWztOwa12hKUs6BAR//4qpxNds9LEuNSkpR780Kf4zkLCgiog4SQGgAAAAAAAEDIuV3tcpxr8Fkd3XbO94WGl2KOs3aG0KMylNgVSCekp8pkNg9oHN2BdO3OSuUsKPBs6dHfcQQeITUAAAAAAACAoOpoc3auju4Kox1nzqut8YJkGH5db0lM8F0dPSpD8akpMplMARlfXEpSn1t59HccgUVIDQAAAAAAAMSodkdbnwFsf8cvxzAMtbc45Dhzrmt1dEPnCw0vNPvdR9yIZNlGZcg2unvbjpGyJtkCFkj3p7/nJaAOPkJqAAAAAAAAIAa57C19bmXR3/GLeV5o2GN1dOvZ8+poHcALDdNG+KyOto1KJxSOQYTUAAAAAAAAQIxx2Vs8LwU8+sdXPS8L7O+44XarraGpM4j2bNvRILfL5df9TGazEkamyTY6w7ttx8h0meOIJ0FIDQAAAAAAAMSUdkebandWytlklyRPID3uS/N08rV3fI7X7qzU6OumqebPr8voGMALDUeld23Z0flSw/j0VJktlqA9E6IbITUAAAAAAAAQQ6y2BOUsKPCsmJY6A+kj//2KT7v41BRlzpmuk6+9029AbbElyDYqXYmjR3Zt2ZGu+LQRQd8/GsMLITUAAAAAAAAwTBmGofZWh5yNF9TWcEHOxiY5Gy7I3dHRa+V0T/GpKb3Ox6Uk+ayOto3KkDU5kUAaQ0ZIDQAAAAAAAEQ5d3u7J4hu6wqiu3/f377R9SaTxs6frWPbdvY6N/Zzc9Rc+5kypl7pCaZ5oWHsOH+2QS0trZKktjZn0O9HSA0AAAAAAABEAcPtlqu5Rc6GC2prvND1a2cg7WpuGVBfPbfy6Evd27s9L01E7GlpadXXPv8PkqT716zSNdOvCur9CKkBAAAAAACACNLR5lRbQ1PXSugm71YdTRf8fnlhT+Y4q+LTU5WQNkLxaSOUmDlSCempqnn59T63+pC8L1MkqEYoEFIDAAAAAAAAIebu6JCrya62i/aKbmu8oA5H28A7NJkUn5qi+LQRnWF0+gglpKUqPn2ErIk2n32j2x1tOvlqhU9A3dce1M4mu2p3VmrcwkK2+oghDecb5WgdxJ/BISCkBgAAAABgmGh3tPUZJPV3fDijFr6oh1coa2EYhtpbHHI2NnXuFd21KtrZeEHOC82SYQy4T0tiQmf4nDZCCekjFJ+WqoT0EYobkSyzxeJXH1ZbgnIWFOjoH1+Vs8mu+NQUz4rp3JsX+hzPWVAQc39GYs3ZM+e1+90PtPvdvdr17gc69NFhPfXcYyEdAyE1AAAAAADDgMveotqdlcpZUODzo/n9HR/OqIUv6uEVrFp0OF1yNnXtEd29PUdXGO12tQ+4P5PFctGK6BGe7TosCfED7q8v3YH0xc/d33EMH2c+O6td736gXe/s1e53P9Cnh46Ge0iE1AAAAAAARDuXvcWz8rHnHrL9HR/OqIUv6uE11FoYbrdc9uauFdFdq6G7Vki3t7QOakxxKUldK6JTfX6NS0ny2Z4jWOJSkvrcyqO/44hOp+vqPYH0rnc/0NFPj12yvcViUXx8XIhG14mQGgAAAACAKNbuaFPtzkqfPWSP/vHVmNxbllr4oh5eA61F9hduUPPJ02pr7Nqeo+GCnE12Ge5BvLQwPs5nJbT3BYYpMlvDH8319zUfrn8WYsGpk6e169292lXRuX3H8ZqTl2xvjbNqxsypmjN3pq6fd52um5Ov8+caQzTaTibDGMTmN7ik6upq2e12paSkKC8vL9zDAQAAGPaYf8UGvs5A/3quBO1PfGqKJt70RXW0OWV0DDxoiwYmi1mWhHjVvPx6zNdCoh49DaQWFwfXfvVvNisuNaUrfO7eK7pzZbTFlhCSVdGITYZh6OTxU9r1zl7PFh61J+oueU1cfJyunTVN18+dqTlzr9PMOflKTLT5tDl/tkEtXT8hcPb8GblczqDOwcL/1zUAAAAAAKAXwzDU0eZUh6NN7Y62zl9bO3/teazD0SaT1apxCwt18tWKPoO17uDtcgHdcHC5kDGWaiFRj578rcWlAmprkq1rr+jUzr2iu7bniB+RLJPZHOxHAGQYho4dPdm1fcdevffOXp0+VX/JaxIS4nXt7HxdP+863TDvOs24bqoSLrNSPmNUujJGpUuS7C1NcrmcgXqEPhFSAwAAAACiVrujrc8fSe/veLgYhiGjvcMbNl8mdG53tKmjzSkN4Ief63ft09j5s3Vs285e58bOn6363fuHfQgpdW7XUL97P7XoQj28/K2Fq6VVtlHpik9L7VwRnd4VSqeNkCXE+/QChmHo6KfH9N47e7Xr3b3a/c4Hqv/s7CWvsSXaNOv66Zoz9zpdP2+mpl97jeID9MLNYCGkBgAAAABEJZe9RbU7K5WzoMDnJWf9HQ8kw+1Wh8PZFSw71O7oXvHsUEf359Yenx1tMjo6gjIWqXMFaOac6Tr52jt9nq/72x5dsWi+TPFxam9uCdo4IoE1OUmZ103ViVf+1uf5WKqFRD168qcWE//Hl0L20kKgL263W58eOqrd73zQGUpXfqiz9ecueU1ScqJmXT9D18+7TtfPnalp116juLjoin2ja7QAAAAAgKhZPRxMPfdgPvrHV5V780LFpST1e/xSDMOQ2+XyWdl88YrnjtY2tbe1eULnjrbg/thzN3N8nKy2BFm6/rH2/DWx81drcmLnXrt/6n+7BmeTXSde+Ztf9Yh2l9ufO5ZqIVGPnvypRc2fXouJWiByuN1uHfrocOeLDt/5QLvf/UAN5y/90sKUEcmaXXCtru9aKX1N/hRZI+AlnEMR3aMHAAAAgBgTztXDkaLd0abanZWeoKk7kL54L1lnk121Oys1dv5s2U/U9b2lhqMzeDbcwX9ZnMli7h00d39O7OOYLcGvPW7bHW299qLua2/d7nqMW1g4bP8y4+I/G1Ls1kKiHj1RC0SKjo4OVR/4xPOiwz2VH6qp8cIlr0lNG6E5c2d6XnSYN+1KWSyWEI04NEyGMYANruAX3joOAAAQWsy/YgNfZ99VgPGpKX2uHu55PBIYbrfcHR0yOtwy2jtkuDvkbnfL6OiQ0dHhc87t7pDRdc7ddd7ocMvd3iHD3dWmo0OW+DilXzNZJ3a8fcl9dP15CdpQWBLiZUm0yWqL7zNg7rni2WJLkNlqDdoWAtH4ZyNYqIUv6uFFLRAO7e3tOrj/UNeLDj/Q+7v26cJl/j8pY2SaZhfM1PXzZur6uddpyjWTZQ7jizlDMQcjpA4CJs8AAAChxfwrNsT617l7taz9RJ3nWH8hbMoVYzVuYaEsCfGdAXBfoW93ONwzKO7o8Dnnc01HR2fI3NEhd0fPkLnH53ZvP93XDOTFfwNxuQB6oAG12Wr1hMm+K527A2ibLLb4rtDZJkt8nF+rnEOJVfZe1MIX9fCiFgg2l6tdBz78SLve/UDvvbNXe3ftU0tz6yWvGTk6QzfMu65ztfS86zT5qolhDaUvRkgdpWJ98gwAABBqzL9iA19nyWlvVs0fX7v86uGFhap9/V21NTSFcHShl3LFWI2cfrWObdvZ69yEry3QhSMn1dZ4wWf/5r5XPMfLHOV7eXZjv3IvauGLenhRCwSSs82pfR8c9LzocO/uKjlaHZe8ZkzWaE8gff3cmcq9ckJEv6wzFHOw4fH/wgAAAAAwjHS0OdXW0KS2841qO9/k+Wwym/1bPXzR/sRhZTLJZDHLbLHIZLF0frZ2f7bIbDH3/my1dLXvfa77WktCvOJGJOvYn9/o87Z1b++JyR/Z7y9gi8XgjVr4oh5e1AJ9OX+2QS0t/a94TkpKVMaodLU52vTh+we0690PtOudvfpwT5XaLvMy3bE5Yzz7Sd9QeJ3GTxwX0aF0OBBSAwAAAEAYGIahDkdbZxDd0NQZRnd9bm/pfwVW/e79Gjt/dp+rh8fOn6363ft9AuruoLfP0Ndq6XXOJzS29hMUdwXJF4fPfZ4L0o8r99xDti/dL1OMxaAaADBwLS2t+trn/6Hf88+//J/6l+/+H+3be1Aup+uSfY0bn+3ZT3rO3Os0bvxYQunLIKQGAAAAgCAyDEPtza1qa+haFX2+yfO54zIrry4WnzZCY264Vif++rc+z9f9bY8m/o8vyZIQJ5O5Kzgeht8UtzvaVLuz0ieg7msPameTXbU7KzVuYSErJAEAQ3Khya49lR/2eW5C7jjNmXudJ5jOHpcV4tFFP0JqAAAAAAgAw+2Wy97Sa4uOtoYmuV3tA+rLZDErPi1VCRmpSkhPVUJGmmyj0mWymC+5J7Wzya6aP73WtXo4PhCPFZGstgTlLCjwrKSOT03xrJjOvXmhz/GcBQUE1AAAH22ONtUcOaHDn9To00NHdeSTGn37zm/6fX3ulRN0fdee0nPmzlTW2MwgjjY2EFIDAAAAGBZC9SIsw+2Ws/GCd4sOTxh9QUZHx4D6Mlutiu8RRHf+mqr4Ecm9tslod7T12ms6llcPdwfStTsrlbOgwLOlR3/HAQCxp6W5RUc+PdYVRB/zBNLHa2rldrt92v797d+4ZF/JKUn65RMPak7BTI0eMyqIo45NhNQh4u5ol9xuGYbR+eN2ZrPMlsCVP9j9B1I0jTXYqIUXtfCiFl7UwotaeFGLTtTBy93RLhlGuIeBMHPZW/oMJfs77g93e4ecjRcH0U1qa7gw4D9zloR4JaSndgXSabJldH6OS07yezsOVg/3FpeS1GcY399xAMDw1NjQpMOHanT4kxodPnRUn35SoyOf1OjUydMBu0daeqqmzcgLWH/wFZvfyYSQu6NDbmebWk+fkqupQZIhyaS41HQlZmXLHJ8gs8USsf0HUjSNNdiohRe18KIWXtTCi1p4UYtO1MGrZy3aW5rDPRyEUc8X6PV8UV5/xy/W4XTJ2dDU6+WFzgvNAw6jrYm2zpXQ3Vt0dH22JtoCsjc0q4d76y+IJqAGgOHFMAydrT/XFUR3btNx+JPOYPps/bkB9WUymTRufLYmT5moyVdN1JVTcpXJ6uiwIqQOJsOQq+m8mo8fvfiEXE3n5Wo6r+TxuYpLzRjUN5Pujo6g9h9I0TTWYKMWXtTCi1p4UQsvauFFLTpRB6++azH8Xg6Hy7v4BXrdgXR/W2Bkf+EG2U/UdYbSXXtHu5pbBnzfuOSkzv2iM9IUn57qDaNDEIyyehgAMJy53W7V1X7mWRXdHUof/qRGTY0XBtSX1WrRhNwrNKkriO4OpXOvnCDbRf9/efL4qUA+BgaIkDqIDMPo45tIX83Hjyp1SpLMiQNf6eB2tgW1/0CKprEGG7XwohZe1MKLWnhRCy9q0Yk6ePlTC8SGi7fAkDoD6SP//YpPu/jUFGXOma6aP/X/0sFeTCbFj0j27hfdtXd0fHqqLPFxgX6UAWH1MAAg2rW3t+vk8TpPEN29X/ThT46ptaV1QH0lJMQr98oJnlXRnaH0RI3PvUJxcf7Fn0lJifrzW89d8jyCh5A6iNzONr8W9LSePqXk8RMHtI+ku6Ndraf9+xuewfQfSNE01mCjFl7UwotaeFELL2rhRS06UQevgdQCseHiPZkv1tfLBX2YTEpIH6GEdG8QnZCRqvi0ETJbh+e/RwAAhIqzzamaoyd05JMafXrIuzr66OHjcjldA+orKTlRk6fk6sopE72ro6+aqJwrxsoyxJ8kzBiVroxR6UPqA4PHjCuIjI4OvyrsampQR+sYNRyu9rvvEZPzuvahDE7/gRRNYw02auFFLbyohRe18KIWXtSiE3XwGkgtEDviUpI07kvzeq2glqSx82erfvd+uZpbZRuV3rkquiuITshIU3xqikxmcxhGDQDA8NHS0qqjnx7r3C/6k6OeUPpETa06OjoG1FdaeqquvLozgJ48pfvXicoamxmQdzwg8hBSB5W/L1kZ7Nvog91/IEXTWIONWnhRCy9q4UUtvKiFF7XoRB28DJnjE2QbM06Oz05K7W3hHhDCzGVv0cnX3unzXN3f9mji//ii4pKTCKMBAOjh/NkGtVxia42kpMReq4ubGi94V0X32De69kTdgO8/Jmu0Z2uOST226hg5Kp0wOsYQUgeVSf59kzjYf+mC3X8gRdNYg41aeFELL2rhRS28qIUXtehEHbqZ421KzLpCdRV7NbbwOunoYcmIhXAefXHZW/rd6kPq3KO65k+vK/fmhYpLGd77tQMAMBAtLa362uf/od/z//3X3+gvL7+uw4eO6tNDNTrySY3qPzs74PvkXDHWZ6/oyVd1htKpaSOGMnwMI4TUQWSyWCS1X7ZdXGq6LImJGnnt9X737e5oV1xqulxN54PSfyBF01iDjVp4UQsvauFFLbyohRe16EQdvNwd7UrMnqBjf94pZ5Ndx7a/JfOMSZLDEe6hIQzaHW2q3VnpE1DHp6Zo3Bfn6eTr7/i8TLF2Z6XGLSzk5YIAgJjkbHOqublFzfZWtTS3qNneorT0S4fEZ+rP6af/76N+9W+xWDQ+d5wmXzVBk6/K9YTSuVeO56WDuCxC6iAyxydIrsuH1IlZ2QN+sZHZYlViVrZf36gOpv9AiqaxBhu18KIWXtTCi1p4UQsvatGJOni5XR2qe3uPT/joOtcoJRE8xiKrLUHZn79eNS+/LmeTXfGpKZpw4wIlZKT6vEwxPjVFOQsKCKgBAFGjo6NDzfYWtTS3qtneoubmFk+43NzcohZ7a1fo3HX8ogC6s7332vY+MqqnnntswOOKi49T7uTxviujp+RqwsRxik+ID8CTIxYN3+9eIoDJZFLy+Fw1Hz/ab5vk8ZM6w+xBMMcnBLX/QIqmsQYbtfCiFl7UwotaeFELL2rRKdbrYLjdane0yd3m1NjPzdGxP7/hCardA3wZD4YPwzB0+r0PNe5L81S/e7/G3HCt4tNSJHW+TDH35oWq3VmpnAUFbPWBYW0w+8oOZ9TDi1r4CmY9DMNQa0urmrvC455hca+wuY8QufNYq+ezwxH+d27Excdp8ZIbfV5gOG78WFmtRIoILP5EBZPJpLjUDKVOSVLr6VNdb6E3JJkUl5reucopPkFmi2VQ3ZstlqD2H0jRNNZgoxZe1MKLWnhRCy9q4UUtOg3HOhhut9pbHZ3/tHT92tqmju5jPY539PhGLT41ReO+NE8nX3un332IERvOf/Spmj49Jkf9OY2dP1tmq9Xn5YhxKUls8YGYcLl9Zf/81nMxFURSDy9q4euyezC/+qyq9lX3CJhbPYGyd8Vyq/dzd5uuwNntdofwaQbGarUoKTlJySlJnb8mJyrhMv//mDlmlH76yP8O0QgRywipg8xsscicmKTk8RMl93gZhtH5dlKzOSA/hhvs/gMpmsYabNTCi1p4UQsvauFFLbyoRSe3q13WPurgbnfLmmgL9/Akda5qbm91qKOlR9DcFT57AueuYx1tzkHdw9lkV/3u/Ro7f7aObdsZ4CdAtHC1tOrcgU81oWiB6v62Ry119RoxIadXOwLq4StaV4gahiFnm1OtrQ45WtvU2upQa4tDDkfX71taO391dB33nG/zfm51qNXhbftA6T2XvGftibpLBnPDzeW2MIilelALX5erx5nPzmrV8vtCM5jLMJlMSkpOVHJykpJSOkPl7pC581jnOe/5JCWn+LbpGUjHJ8R3zp97OHn8VJieDvAVO9/RhZnZYpWCuKgp2P0HUjSNNdiohRe18KIWXtTCK9Zr0e5o84RMPWvR7miTNS52pjMue4vvtgWWfo4Hgbu9vcdKZ+8/HS1tvY65na6gjEGSLAnxsibZZBudoVHXXqMTO94O2r0Q+c68f0A5n5+j+t37dcWXC5WQkRbuISHEgrVC1OVq7wx/Lw6FuwJlR6tvcNza0qrW1q62nvPetq3dwXNXf47WtoCvtuxrr1kAoWezJXgD4+TEHuFx0kWBc49jvQLlzrDZlmiTucdPBwHDWex8VwcAAKJSfwFsKILZSOKyt3heAHf0j68q9+aFiktJ6vf45RiGIber3WdVs3drDW/w3H3OHcTww5KYIGuirfc/STZZfI4leLZx6PnciD1Gh1stp88o7aqJni1fnE125d68UOYUvsUZ7jo6OuToCoQ7LrMfvf1Cs9Y/9kzvULlH8NwZMvf83Kr2dva5B2JVfHycCr9wfY/VyD2C5n5WLKekJCspOVFJyYlRt1dzUlKi/vzWc5c8D4RCdP2bA0SxnqsA/Tk+3FEPL2rhi3p4UYvAB7PRqt3RptqdlZ5Atvu5L96T2dlk7wzu/65Azia7737Orb7hc3uLQ0awXjZoMsnaI3i29AidLw6iLbZ4n/2D/XFxPaTO7WCIlGKH4+x5dYxIV93bu3v9+R/u+09H+vYWHR0danO0da0c7t6+onsLi65Vxp4tLNp8guG+ViJ3/761R1tnj22CLvdj+02NF7T+0U1BfurBiYuPk82WoMSkRCUmJsiWaFNiok22xM5jNlvXsaSu47YEJSbZPMdsNm/bxMQEpYxIvuT9cq4Yqw+Ovh6ah4sAtSfqLnk+lupBLXxdrh6jx4zShrK1IRpN+GWMSo/IbZEQewipEVQELJ1YBeiLenhRC1/Uw4taDDyYjaRgyjAMGW535z8d7t6fLzqmPtq6e7Q1Wy3KKpwl5/Y3fZ77yH+/4nPf+NQUZc6ZrqNbA7/C2GQ2917x3CN07hlEW/rY7zCQrLYE5SwoUP2JOjkNt0wmsxqdzepwDW5/a0Qfd0eHjv35DZ9j8akpyllQEDH/HQiWoWxv4Xa7u7ab8O5j3B0Yd++N7OixB/LFeyI7fLa66FqNfNHvnYPcZz7SmM1mbzh8UXCc2B0SJybIZrN5g2OfkLnrOpu3bVKP4NmWmBDw1Zb+7CsbzP82RyPq4UUtAIQbIXUYxEpwS8DSiVWAvqiHF7XwRT28qEWn7iCy55YO/QWz2Z+/Xu0tDjmb7DI6OvwLhy8RGl+yrU+bjj6vk2EEvB7xqSm9AvqBnO+LyWLxXfHcx0rn7iDaHB8XUd/AxqUkyUiy6etfKJYk3b9mla6ZflWYR4VQsWSkKWVRruf3JkkWq0WfnW9UUpsz6laEtbe3q83h9OxX3OZok8PhlMPR43PX8WnX5l2yr7Nnzut//8tPfV6y1x1Ktw2TANlkMnmCXov10i9sSBmRrJV3L/MGx7YegXFighITO3+9eMVyXIT9Nw8AgOEu4kPqrVu3qry8XNXV1XK73Zo0aZKWLFmi4uLiQW0eH+j+BqK9zSnD1R4TwS0BS6doXgUYDNTDi1r4oh5eQ6lF9+pdeVbxdv2+x2fPsZ4rfd1GZ5sex3RR+76u8bQzAnUv7/HuY3EpyX4FszUvvz7s9yZ2NtlVv3u/0hcUqLmxqdd5a6JN9Y0XlHTtNTI+ONjn1hoXB9HmOGtEhDCGYcjldMnpdKmtzSlnm7Prc5tcnmMuOducnZ+dnW3yZ14T7qFHhEiZL4dynr1/70H94sdP9nlusC/K66n7z6TD0SaHo61r+wqH2hzO3p+7guQ2h7PreGf7zlXJ3uu7VzB7Pvc4PpAX3l1ue4s2R5vef2/fkJ5/qDpXFftuWdEZCNs857xbW9h8Q2Kb7+9tth59dR1P6PHTGpdbPZyaNkLfX31XKB477NhX1hf18KIWvqgHEJkiOqQuLS3Vli1blJCQoMLCQlmtVlVUVGjNmjWqqKjQunXrZLFc+m/Og9nfQLiaW9Xe6tCJV94e9sFtKMImo3uF2kUr1bzHPf8jGZLR+T/qccC3vbcD32t69tX1q9HrmLdfT3ddH0xms7I/f71PeHKpVYDOJrvazjV0Xm4YncGOz6/q45j3XPfvJaMzCJK6fjU6A5+ev/bTV89+vMf6uEcfx3qdu+j+luREjbnhWs/LjS5VjzE3XKuTr78jl71Fw1FcShK16IF6eA2kFpnXz9DRP70mZ0NT579rQVi9G25t5xvVeKFZifOuU1yro9d5a6JNjReaIzKgNpnNnf9YzL0/d/0qP9p0f7Ym2pQyPlunT5/V14v6D1z+/NZzurp4sV9jNAxDLld7r/DX6ewMhJ1tPUPjzjae0Nh5UWjs6HGd07/rXD3aDcblwrpYECnz5XDOsy/W0tKq3z77Yq8VyI62i0Lirs+dQXOPz13He80Th4meIXH3fsieULjHnsfe8z2C5R5bW3SvQvb01RUkJwR5ux/0j31lfVEPL2rhi3oAkSliQ+rt27dry5YtyszMVFlZmXJzcyVJZ86c0bJly7Rjxw6VlZVp+fLlYenPH0aHW1LnquK2xiad/eCjIQW3/a4663e13EWr1i577qIVc4O8hzUpUcmzp0uTJ8gw3J7xf3auQXEzr1GcJKvbUOu+6s6A5Y+vydl04fIhcpR+o5CxoECJ82Yp3tHmU49u8Saz0jNSY2IVoCRZr8j2qx4n/vq3YV2PtnONcjZcUMYX56q54UKftTCZzEpOHzHsayF11iMudzx/NjSwPxsnX60Y1rWQOsP4DqtVN/3dP/bb5uWdW5QyfqzaWxwXhbwWmUymPkJfS79BcHdwbPYjNL64T5k77yWTSW7DUEeHW+2udrW3t3f92qH29na5Lj7W/fv2drW7uto4nL2OtTW36LP/KNfXVvz9JWt27myDfl7yuE9Y3DMMvjggHq5BXCyIlPlyOObZl9JwrlE//X8fDcm9AsVsNivBliCbLb5zpbAtQbaEHp8TE2SzJSjBlqDkyyxmGTU6Q5v+6/EeL9rzXYEc7J8eDTVWRAIAMDxEbEi9YcMGSdLq1as9E11JGj16tEpKSnT77bdr48aNuv322/2aaAW6P3+0uVw6duSEDMPo3Cdv2hSlTJ4gS0eHGrveRN7fyriabW/I1Wj3DYGj5ZvIsw3SpPFafOMd/TbZun1TZ0AfAwGL03Dr65cKV97YrPrd+4d9HbpRDy9nk13NTfZL/7uy45mYqIXEn42ehvRnw2TqCk1NnkBV3Z+7zsnnvEky+bbvfcwkmTvDV5k672HIJMPUGZgbPY5JkmEySTI6w1qTSSaTOs/5/Nrjs6Fe5zr7M+Rsc8ncfOlV8y1Ndh11tku2hM4A2NneZ/DrPdZxUVB8ibC4r/M9Auf++gymBbd/45LnHa0OvfHK34I6hmCwxlmVkBCv+Pg4xSfEKyEhXnHx8T7H4uPjOn+fEK/4hLjLhnXDXaTMl8Mxzw4Fa5xViV3BbkL3lhU23882m613uGzzBsq2roC5z882mxJs8QPe//hy21sk2BI0p2BmIEoQFVgRCQDA8BCRIXVdXZ2qqqoUFxf3/7d353FRlfsfwD8DM2yC4Bbhvg4KqIng0mYZlplLpmUa5VVzCa/atRLJMvGnkqZmKi7XBRWNolLyqlFqdcsVzZsBoiKKKcrigmwCA/P8/sAZGWFAZg4zA/N5v17dO5z1e84zgx+eOec5GDhwYIX5vXr1gru7OzIyMvDnn3/C19fXpNt7WPrGyvvPjxGVLq994FEtdNwKoRmmQkCtGYah3DAYotxQFeLeUA2aESc0w1g8uGz5bYoH9uNQWlplPWpbW5z8z88oSM+C+oF9aLZ9f3sPU1u5eiq8vj90x/1zgHsdI2UvHtyPutwXAuX3J2Sac1DJ/oS439FS7vwM6v1YleciJzsXB/9MQt71TKiLVQ/UDW3d2nNy73/K6hV6l9FpI1Rybssvrz1Gcf+8lvv5fttXnKbWDC9SvqbybVP+3AD4oKdPlecjK+sWFq/ebjVX9oVUcz5u5+YjbNd+E1VjXiG+fG+UV91741ZOHkK/3ld2ZwsE1PeG1lGrRbnPnYBac/fLvd//2rtyBMrmlV9OQDsu9P1l7883l+qGdLiTV4D3p/+faYqph+Ry2wqdwWUdxArdDuJ70+0q6TTWrK+znr1mmXLrVtrZXPazIZ2X1XXW1WeWkpfNlbOr4ujkiJFjhtzrNLaD472OZHsHu7JO53sdyI6O9rC3L/faQfe1qYYnISIiIiIL7aQ+c+YMAKBTp05wcHCodJmuXbsiIyMDSUlJ1YZdqbdnrJs5eXhvVWS5DsKyzj0bOwXUC9ZAXVpaoRNWp8MP9ztbdTss73fqPtjxbGqbnvSrcv6NG7fwz/8LN1E15vV04LAq5+ffLcSG9fpvUaxvVMWqKueXlJTiTGKyiaoxv+rOh6pYhaQzF0xUjXmpVHxvlFftZ0VVgosXLpuoGqopmUwGuUIOuVwOudwWcoUcCrn83jTbsukPzJeXm68oP19xb3m5HDZCwMmx6uc4NGrihi82LNTpTL7fQWwPO3uFtjPZzk4Budwi4yBVw1LysqXlbABo1NgVc8Per/X9mAuHtyAiIqL6yCL/Krl69SoAoHnz5nqX8fDw0FnWlNurTlFREQCgdbsWCJ4fVGG+WqbC2++/ZfR+LJlMrq702B92fn3Cc6GL50MXz8d9PBe6LPp8yAAZZDo/60yRaf5P9sDP2pXLraZ7e7tMVm4FlHX22ihElcdqawcsWPFB2R7vDT0iuzfMiAyyez/j3rSy/zTHoFlOZx2Z7N56Va9TNk3/fmqDTCZDqaykyvORX5CDhk00nVRqlIhClBQWIr/icyfrPIVcgcjvVwIASkrLhlnR5LD6zlLysqXlbAC4cTMT6ZnXjN5XnZZq7gKIiIioPqrNrG2RndQFBWVjTzo66r8KoEGDBgCA/Px8k2+vOqX3hrpwauCIzj4dK11G3/T6pLpjtIZzoMFzoYvnQxfPx308F7p4PjRElccqoEaL1h4mrMd8hBBQlaiqPB+azlproCqpeMdBaTVDjtUXlpKXLTFnW9NngIiIiMiUajNrW2QntWYYDKmuQpJ6e9Wxt7dHUVERbG1tYW9f9S25RERERGS8oqIilJaWWk32spS8zJxNREREVP+ZImtbZCe15moLzZUZldFciaFZ1pTbq46Xl5fR2yAiIiIi0sdS8jJzNhERERFJoeaPUTeBFi1aAACuXdM/llx6errOsqbcHhERERGROVlKXmbOJiIiIiIpWGQnteYKieTkZBQWVv6Un/j4eABAly5dTL49IiIiIiJzspS8zJxNRERERFKwyE5qDw8PeHt7Q6VSITY2tsL8uLg4pKeno1mzZujRo4fJt0dEREREZE6WkpeZs4mIiIhIChbZSQ0AkyZNAgAsXboUly9f1k6/efMmQkNDAQATJ06Ejc39Q1i2bBkGDhyIZcuWSbI9IiIiIiJLZSl5mTmbiIiIiIxlkQ9OBICBAwdi9OjRiIqKwpAhQ/D4449DLpfj6NGjyMvLQ0BAAAIDA3XWycrKwqVLl5CVlSXJ9oiIiIiILJWl5GXmbCIiIiIylsV2UgPAvHnz0LNnT+zYsQNxcXFQq9Vo3749RowYgdGjR9f4agypt0dEREREZE6WkpeZs4mIiIjIGDIhhDB3EURERERERERERERknXhJAxERERERERERERGZDTupiYiIiIiIiIiIiMhs2ElNRERERERERERERGbDTmoiIiIiIiIiIiIiMht2UhMRERERERERERGR2bCTmoiIiIiIiIiIiIjMhp3URERERERERERERGQ2cnMXUBf85z//QVRUFM6dOwe1Wo127dphxIgRGD16NGxsat7PL/X2yHhStIlKpcLJkyfx3//+F6dOncK1a9eQnZ2NRo0aoUePHnjjjTfQu3fvWj4SqkptfvaWL1+O9evXAwBmzZqFCRMmSFEyGUDqdi4sLERkZCRiY2Nx+fJlqFQqNGnSBD4+Phg7dix69uxZC0dB1ZGyndPT07FhwwYcOnQI169fhxACHh4e6NOnDyZOnIhWrVrV0lFQZS5evIjff/8d8fHxSEhIQGpqKoQQ+OKLLzBw4ECDt8v8ZZmYs60Ds7Z1YNau/5izrQNzdv1myVlbJoQQBldgBUJDQ/Hll1/C3t4effv2hVwux9GjR5Gfn48BAwbgiy++gK2trdm2R8aTqk2OHDmCcePGAQCaNWsGb29vODo6IiUlBefPnwcABAUFYcaMGbV6PFS52vzs/fXXX3j99dehVqshhGBwNiOp2/nKlSuYMGECLl++jCZNmqB79+6ws7NDWloazp49i6CgIAQFBdXiEVFlpGznM2fOYOzYscjJycGjjz4Kb29vAEBCQgIyMjLg5OSETZs2wdfXtzYPicpZuHAhtm3bVmG6McGZ+csyMWdbB2Zt68CsXf8xZ1sH5uz6z6KztiC9YmNjhVKpFE888YS4dOmSdnpWVpZ48cUXhVKpFFu2bDHb9sh4UrbJkSNHxLRp08SJEycqzNu7d6/o0qWLUCqV4ujRo1KVTw+pNj97RUVFYtCgQeLJJ58UQUFBQqlUio0bN0pUOdWE1O2cn58vAgIChFKpFCtWrBDFxcU682/duiUuXrwoVfn0kKRu51GjRgmlUik++ugjnTYuLi4WISEhQqlUiiFDhkh5CFSN6OhosXjxYrF3715x+fJlERgYKJRKpfjhhx8M2h7zl2VizrYOzNrWgVm7/mPOtg7M2dbBkrM2O6mrMHz4cKFUKsWuXbsqzDt+/Li2EUpLS82yPTKeKdvkww8/FEqlUoSEhBi9LaqZ2mznJUuWCKVSKQ4ePCiCg4MZnM1I6nZeunSpUCqVYtasWRJXSsaQsp0LCwuFUqkUSqVSZGZmVpifnp6unV9QUCBF+WQAY4Mz85dlYs62Dsza1oFZu/5jzrYOzNnWyZKyNgdm0yM9PR2JiYlQKBSVXu7eq1cvuLu7IysrC3/++afJt0fGM3WbeHl5AQAyMjKM3hY9vNps59OnTyMiIgKDBw9G//79JaqYDCF1OxcXFyM6OhoAMGnSJKnLJQNJ3c42NjaQy8sezyEqGf1MJpMBAJycnODg4GBc8WQWzF+WiTnbOjBrWwdm7fqPOds6MGeTISR/39RCjfXCmTNnAACdOnXS+4Hp2rUrACApKcnk2yPjmbpNUlNTAZSNoUemU1vtXFRUhODgYLi6umLOnDnGF0pGkbqdExMTkZ2dDQ8PD3To0AGnTp3C8uXLMXfuXKxcuRL/+9//pCueHprU7axQKNCnTx8AwKpVq6BSqbTzVCoVVqxYAQAYMWKENkhT3cL8ZZmYs60Ds7Z1YNau/5izrQNzNhlC6veNXLrS6perV68CAJo3b653GQ8PD51lTbk9Mp4p2yQrKwu7du0CADz//PNGbYtqprba+fPPP8elS5fw+eefo3HjxsYVSUaTup01D2Bq06YNZs+erf38aoSHh+OFF17AkiVL+M2/CdXG53nevHl4++23ER0djd9++w0+Pj4AgPj4eOTk5OCtt97CrFmzjKyczIX5yzIxZ1sHZm3rwKxd/zFnWwfmbDKE1O8bdlLrUVBQAABwdHTUu0yDBg0AAPn5+SbfHhnPVG1SUlKCDz74ALm5uejbty9vVTOx2mjnU6dOYevWrQgICMCgQYOML5KMJnU737lzBwBw8uRJlJaWYvz48Rg9ejTc3Nxw4sQJhIaG4scff0SDBg0QFhYmwRHQw6iNz3OrVq0QFRWF4OBg/Pbbb0hPT9fO8/Hxgb+/PxQKhRFVkzkxf1km5mzrwKxtHZi16z/mbOvAnE2GkPp9w+E+9NCMmSPVbQdSb4+MZ6o2+eSTT3D06FF4eHjgs88+q9V9UUVSt3NhYSFCQkLg7OyMTz75RJJtkvGkbme1Wg2g7A/fkSNHIjg4GK1bt0bDhg3x3HPPITw8HDKZDDExMbhy5Yok+6Tq1cbv7VOnTmHIkCH4+++/sWbNGhw7dgxHjx5FeHg4cnJyMG3aNKxevVqy/ZFpMX9ZJuZs68CsbR2Ytes/5mzrwJxNhpD6fcNOaj00Pf2abwUqo/kWQLOsKbdHxjNFmyxYsADffvstmjVrhi1btnCMPDOQup2XL1+O1NRUzJ49G4888og0RZLRaut3NgC89tprFeZ37doV3t7eUKvVOH78eE3LJQNJ3c45OTmYOnUq8vPzsXHjRjz33HNo1KgRGjdujICAAGzcuBEODg5Yu3atdqxTqluYvywTc7Z1YNa2Dsza9R9ztnVgziZDSP2+4XAferRo0QIAcO3aNb3LaG5V0Cxryu2R8Wq7TT799FNERkaicePG2LJlC9q2bWtQnWQcqdv5wIEDsLGxQUxMDGJiYnTmXbx4EQAQFRWFX3/9Fa1bt8bChQsNrJxqorZ+ZwNAy5YtK12mZcuWSEhIwI0bN2pSKhlB6nb+9ddfcevWLfTp0wetWrWqML9Nmzbo1q0b4uLiEBcXx9/jdRDzl2VizrYOzNrWgVm7/mPOtg7M2WQIqd837KTWw8vLCwCQnJyMwsLCSgfsj4+PBwB06dLF5Nsj49VmmyxZsgQRERFwc3NDREQEOnbsaHzBZJDaaGe1Wo24uDi9869cuYIrV64gJyfHgIrJEFK3s7e3t/b17du3K31gz+3btwEATk5OBtVMNSd1O1+/fh0A4OLioneZhg0bAgCys7NrWi5ZAOYvy8ScbR2Yta0Ds3b9x5xtHZizyRBSv2843IceHh4e8Pb2hkqlQmxsbIX5cXFxSE9PR7NmzdCjRw+Tb4+MV1ttsnTpUmzatAmurq6IiIhA586dpSybakjqdv75559x7ty5Sv8bPnw4AGDWrFk4d+4cvv/+e8mPhyondTu7u7uje/fuAIBjx45VmH/nzh2cOXMGALRPqabaJ3U7a24jTkxMhEqlqjBfpVIhMTERgP4rfciyMX9ZJuZs68CsbR2Ytes/5mzrwJxNhpD6fcNO6ipMmjQJQFkQunz5snb6zZs3ERoaCgCYOHEibGzun8Zly5Zh4MCBWLZsmSTbo9oldRuvWLECGzZsQMOGDbF582btt0pkXlK3M1kmqdt5ypQpAIDw8HAkJSVppxcVFWHevHnIzc2Ft7c3OzxMTMp2fvrpp+Ho6Ihr164hLCwMxcXF2nnFxcVYsGABrl+/DldXVzz11FO1eVhkJOavuoc52zowa1sHZu36jznbOjBnkz6mymAc7qMKAwcOxOjRoxEVFYUhQ4bg8ccfh1wux9GjR5GXl4eAgAAEBgbqrJOVlYVLly4hKytLku1R7ZKyjQ8ePIi1a9cCAFq3bo3t27dXus/27dtrP8RkGlJ/lskySd3O/fv3x/jx47F582a8+uqr6N69O9zc3PDXX38hMzMT7u7uWL58uaRPwKbqSdnOTZo0wSeffII5c+Zgx44d2L9/v/YW1ISEBGRlZcHOzg6LFi2q8lZFklZiYqI20ALAhQsXAACff/45Nm/erJ0eHR2tfc38VfcwZ1sHZm3rwKxd/zFnWwfmbOtgyVmbndTVmDdvHnr27IkdO3YgLi4OarUa7du3x4gRIzB69OgaX40h9fbIeFK1yZ07d7SvExISkJCQUOlyvXr1YnA2A372rIPU7RwcHAxfX19ERkYiKSkJd+/eRfPmzTFu3DhMmjSp0jH0qPZJ2c7Dhw+HUqnE1q1bcfLkSRw+fBhA2a2oI0eOxLhx4zjWqYnl5eXh9OnTFaYb8+R3/htgmZizrQOztnXg56/+Y862DszZ9Z8lZ22ZEEIYXAURERERERERERERkRH4dSYRERERERERERERmQ07qYmIiIiIiIiIiIjIbNhJTURERERERERERERmw05qIiIiIiIiIiIiIjIbdlITERERERERERERkdmwk5qIiIiIiIiIiIiIzIad1ERERERERERERERkNuykJiIiIiIiIiIiIiKzYSc1EUli8uTJ8PT0xObNm81dilXIy8tDWFgYAgIC4OPjA09PT/Tv39/cZUnizTffhKenJ3bu3GnuUkyiPrclERERSYNZ27Tqcz5j1q4/bUlU38jNXQAR1Q9JSUkAgC5dupi5Euswbdo0HDlyBADg7OwMV1dXNGrUyMxVVW3nzp1IS0tDQEAA3yfl1MW2JCIiItNi1jatupjPmLUrVxfbkshasZOaiIx2+/ZtZGRkAAA6d+5s5mrqv+TkZBw5cgQKhQLbt2/HY489Zu6SHsquXbsQFxeHFi1aVBmcPTw80K5dO7i4uJiwOvOoq21JREREpsOsbVp1NZ8xa1dUV9uSyFqxk5qIjKa5ssPDw4PfSptAcnIyAECpVNbLoLVkyRJzl2Ay9b0tiYiIyHjM2qZV3/MZszYRWSqOSU1ERjt79iwA3n5oKkVFRQCABg0amLkSMhbbkoiIiKrDrG1azGf1B9uSqG6RCSGEuYsgorrtgw8+wO7duzF16lRMnz5dZ15eXh6Cg4Nx4MABNG/eHOHh4fDy8jJTpYbLzs7GL7/8gp9//hnJycnIyMiAEALNmzfHU089hfHjx8Pd3b3SdYuLixEVFYUffvgBFy5cwN27d+Hq6oqmTZuiZ8+eGDp0KHr06FFtDatWrcLq1av1zt+2bRt69+4NAOjfvz/S0tKwbds2tG3bFmvXrsXvv/+OjIwMdOjQAd9//71Rx6SRkpKCrVu34vjx48jIyIBcLoeHhwd69+6Nl19+GT4+Pti5cydCQkL0bqNFixb4+eeftT+/+eabiIuLQ1hYGF555ZUKy//000/4+uuvkZiYiLy8PDRu3Bj+/v4YP348vL29K91H+fPh6emJtWvXYv/+/cjMzESjRo3Qr18/TJ8+HY888kiVx1uVmtRVk7aszuTJk/Hrr79i1qxZeOutt/DVV19h9+7dSElJgaOjI3r06IHg4GC0atXK4GMjIiIi82HWZtZm1mbWJrIGHO6DiIymubrjwUB88eJFTJ06FRcvXoS/vz9WrlyJxo0bm6NEo61fv17naerOzs64e/cuUlJSkJKSgt27dyMiIqLCOIElJSWYMGEC4uLiAAAymQwuLi7Izs7GzZs3ce7cOWRnZz9UcHZyckLTpk1RWFiIvLw8KBQKuLq6aucrFIoK66SmpmLGjBm4ffs2HB0ddZYx9Jg0IiMjERYWhtLSUm19KpUK58+fx/nz53Hu3DlERkbCwcEBTZs2xZ07d6BSqeDs7AwHBwftdh72tlW1Wo2QkBDExMQAAGxtbdGgQQNkZGRgz5492LdvHz7++GOMGTNG7zbS09MREhKCtLQ0ODo6QiaTITMzE9988w2OHDmCXbt26ZzT2qrLkLbU59y5cwCAhg0b4pVXXsH58+fh6OgIIQRu3LiB/fv3Iz4+Hvv27eNVJERERHUQszaztqY+Zm1mbaJ6TRARGaGoqEh4eXkJpVIprly5op2+f/9+4evrK5RKpfj4449FcXGxGas0XkREhFi6dKlITEwUeXl5QgghSkpKRHx8vBg/frxQKpXipZdeEmq1Wme9Xbt2CaVSKbp37y5iYmJEYWGhdt20tDSxfft2sW7duhrV8t133wmlUikCAwP1LvPss88KpVIpHnvsMTF48GDxxx9/aOelpqYadUxCCLFv3z6hVCqFUqkU06ZNExcuXBBCCKFWq0VGRob4/vvvRVhYmM46gYGBQqlUiu+++67K49O33Pr164VSqRSenp4iPDxc5ObmCiGESE9PF9OnTxdKpVJ07txZxMXF6T0ffn5+YtiwYeLUqVNCCCFUKpU4cOCA8PPzE0qlUixevLjK2ipjTF0P05ZVyc7O1rZDr169xKhRo8SpU6eEWq0WarVaxMbGaj+f0dHRBu2DiIiIzIdZm1mbWZtZm8hacExqIjLK+fPnUVJSgoYNG6Jly5YQQmDlypX45z//iaKiIoSGhmL+/Pk1+rbaEv3jH//Ae++9By8vL+035La2tvDx8cHatWvRsWNHJCcn48SJEzrr/fnnnwCAYcOGYdiwYbC3t9eu27x5c7zxxhuYPHlyrdUtl8sREREBX19f7bQ2bdoYdUwqlQqffvopAGDw4MFYuXIlOnToAKDs6pVHHnkEQ4cOxezZsyU7joKCAqxfvx4AMHHiRAQFBcHZ2RkA4O7ujuXLl6Nnz55Qq9VYsWKF3u3Y2dkhIiJCezWNXC7Hc889h3feeQcA8OOPP5qlLkNpruwAytp127Zt6NGjB2QyGWQyGV544QU888wzAMqu9CEiIqK6hVmbWZtZm1mbyFqwk5qIjKK5/bBz587Izc3FlClTEB4ejsaNG2PLli14/fXXzVxh7bOzs8Pjjz8OADh16pTOPE2IysrKMnldQFlgb9q0aY3Xq+qYjh49ivT0dNja2mLWrFmS1Fmdw4cPa2/Ve/vttyvMt7W1RVBQEADg5MmTes/3a6+9VuktjwEBAQCAq1evoqCgwOR1GUrz+ZPL5Vi2bBns7OwqLNOwYUMAZX/UEBERUd3CrM2sbQrM2pVj1iYyLY5JTURG0fzDbWdnh5EjRyI1NRXe3t4IDw+Hh4eHmauTVkpKCnbs2IETJ04gLS0NBQUFEA88ezYzM1Pn56effhobNmzAwYMHMWXKFLzyyivw9/d/6LHhjFXd+HuGHNPp06cBlP2xVN3DXqSSmJio3ae+cez8/f0hl8tRUlKCM2fOoF+/fhWW6dq1a6Xrlj+O3NxcODk5mbQuQ2mu7ujdu7feh7VcvXoVQNlDc4iIiKhuYdZm1jYFZu3KMWsTmRY7qYnIKElJSQCAQ4cOAQD69OmD9evX6zysoz7Yu3cvgoODoVKpAAA2NjZwcXHRfpteUFCAgoIC3L17V2e9Xr16Yfr06VizZg1++eUX/PLLLwCA9u3b45lnnsGoUaPQtm3bWqu7qofnGHpMN27cAACT/mF069YtAKgyqNvb28PNzQ03btzQLv8gfQ8z0dwaCkB7PkxZl6E0f7g+++yzepc5f/48AKBTp06S7puIiIhqH7M2s7YpMGtXjlmbyLQ43AcRGUXz7fKQIUMAlH3bfe3aNXOWJLlbt27ho48+gkqlwqBBg/Ddd9/hr7/+wokTJ3D48GEcPnwYY8eOBYAKV0YAwNSpUxEbG4v33nsPTz75JJydnXHx4kVs3rwZL730kvZJ1bXBxqbyX/PGHFNlx2gqxcXFZtt3VcxRV2lpKS5cuAAA8Pb2rnSZa9euITs7GzKZTO+T44mIiMhyMWsza5sSs/Z9zNpEpsdOaiIy2JUrV5CbmwuFQoFFixZh8ODByM3NxTvvvIOcnJxK11m1ahU8PT1x8eJFzJ49G/7+/ujduzc+++wzqNVq3Lx5EzNmzICfnx/69OmD1atXV9hGWloa5s2bh4EDB6J79+7w8/PDlClTkJycrF2msLAQL774Ip5//nmdcc8KCgowYMAAvPjiiygqKnqo4/ztt99QUFCAjh07YtmyZfDx8anwcJqbN29WuY1WrVph0qRJ2LRpE+Li4rBt2zb4+/ujpKQEoaGh1a4vNWOOqVmzZgBg0j+QNFepVLXPoqIiZGdn6yxf28xZV2pqKgoLC2FjYwNPT89Kl9FcfdWyZUvtmI1ERERUNzBr38esXbuYtSti1iYyPXZSE5HBNLc/tWvXDnZ2dli4cCG8vb2RmpqKd999F6WlpXrXnTlzJgoLC/Gvf/0LPXv2xMaNG7Fx40aMHz8eDRo0wMyZM9G5c2esWrUKBw4c0Fk3Pj4eJ06cwPPPP48PP/wQY8eORXx8PAIDA7UPy3BwcMDixYuRlpaGJUuWaNddvHgxrl27hsWLF+vcdlaV9PR0AICnp2elV0sIIXDs2LGH2hZQ9oCP3r17Y926dVAoFCgoKEBCQsJDry8FY46pe/fuAMqu7MnIyHjofWoeJmLI1SGaqxcuX76sd58nTpxASUkJAMDLy6vG+zCEOevSXFnVunVrvbdWaj6jXbp0kWy/REREZBrM2mWYtR8OszazNlFdx05qIjKY5ptjza1NDg4OWLNmDZo2bYrDhw/j008/1buul5cXVqxYgTFjxiA8PBytWrXC8uXL0b9/fyxatAhjxozB+vXr4erqim+//VZn3X79+mHv3r2YOXMmRo0ahWnTpuHLL79EQUGBzrLdunXDpEmTEBUVhUOHDuHQoUP46quvMHnyZHTr1u2hj9PFxQUAkJycXGnoi46Oxt9//13pulXdmmZnZ6cNraa+hc2YY+rbty/c3d1RWlqq80dJdTRXF+Tm5ta43ieeeALOzs5QqVTYuHFjhfmlpaVYs2YNAMDPz097BUptM2ddmuBcVSjWBGd9V38QERGR5WLWLsOs/XCYtZm1ieo6dlITkcEeDM4A8Oijj2LVqlVQKBTYtm0bvvnmm0rXffXVV7WvZTIZunXrBiEERowYoZ1ub28PT0/PCgHO0dFR+/ru3bu4ffs2XFxc0LZtW+0ToDWCgoLg7e2NOXPm4MMPP4S3tzfeeeedGh1n3759IZPJcP78eSxYsEB7e2VeXh42btyI+fPnw83NrdJ1g4ODERISgt9//x15eXna6VevXkVwcDCKiorg4OCAnj171qgmYxlzTAqFArNnzwYA7NmzBzNmzEBKSop2fmZmJqKjo7FgwQKd9TQPE/npp59qHJ6dnJwwefJkAEBkZCTWrl2L/Px8AEBGRgZmzpyJP/74AzY2Nnj33XdrtG1jmLMuTSiu6ooRzWeUV3cQERHVPczazNrM2szaRNZEbu4CiKju0vzD/eBDInx9fTFv3jzMmTMHoaGhaNeuHfz8/HSWad68uc7Pmm/+H3yKtYuLCy5duqQzraioCF988QV2796tveVQo1GjRjo/KxQKhIWFYejQoZDL5di8eXOF8eCq0759e4wdOxZbtmzB9u3bsX37dri6uiIvLw+lpaV48skn4ePjg3Xr1lVYt6ioCPv27cPOnTshk8ng4uIClUqlfYq3ra0tQkNDTTaumxTHBACDBg1CRkYGlixZgtjYWMTGxsLJyQlqtRqFhYUAyp62Xt7QoUOxadMm/PHHH+jTpw8aN24MhUIBd3d3REVFVVvzhAkTkJKSgpiYGKxYsQKrVq2Cs7MzcnJyIISAjY0NPvroI/j7+xt/gmrAXHVpru7Q95CWvLw8XL16tcpliIiIyHIxazNrM2szaxNZE3ZSE5FBcnJytA+wqOz2ppEjR+Ls2bOIjIzEtGnT8O2336JFixba+fqehG1ra1th2oO3yC1cuBDffPMNAgMD4evrCxcXF9jY2GDRokWV3k536NAhAEBJSQlSUlLQsWPHhz/Qe0JCQtChQwdERUXhwoULKCkpQefOnTFs2DAEBgZqbzN70HvvvQdfX18cO3YMly9fRlZWFkpLS9G6dWv4+flh7NixZgs1hh6Txrhx49C3b19s3boVx48fR1ZWFhwdHdGmTRv07t0bw4cP11m+Q4cOiIiIwPr16xEfH48bN25ArVY/dL22trZYvHgx+vfvj+joaCQkJCA/Px/NmjVDr169MG7cOPj4+Bh0Loxhjrru3LmD69evA9B/5cbZs2chhEDDhg11PntERERk+Zi1mbWZtc1XF7M2kXnIhCGj6hMRGWjVqlVYvXo1Dh06pDNm2Ny5c/H1119rv7HWCAoKwunTp3H48GHtND8/PwwYMABhYWE6yz711FNo27YtIiMjtdMuXLiA4cOHY8CAAbh+/TpSU1OxZ88eNGnSpJaOkIiIiIjIPJi1iYioruKY1ERU59ja2la4imPPnj3IzMzUmVZSUoJZs2bBzc0Nc+fOxeLFi1FYWIi5c+easlwiIiIiojqDWZuIiMyBw30QUZ3Tv39/xMTEwNnZGZ06dUJSUhJ++OEHtGrVSme5devWITExEf/+97/h5uYGNzc3vP/++5g/fz5iYmLw8ssvm+cAiIiIiIgsFLM2ERGZAzupiajOmTNnDuRyOfbt24eCggL4+Phgw4YN+Oyzz7TLnDlzBuvWrcOrr76Kfv36aaePGTMGBw8exMKFC9GnTx88+uij5jgEIiIiIiKLxKxNRETmwDGpiYiIiIiIiIiIiMhsOCY1EREREREREREREZkNO6mJiIiIiIiIiIiIyGzYSU1EREREREREREREZsNOaiIiIiIiIiIiIiIyG3ZSExEREREREREREZHZsJOaiIiIiIiIiIiIiMyGndREREREREREREREZDbspCYiIiIiIiIiIiIis/l/3VzrLfqyWFcAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "with sns.axes_style(\"whitegrid\"), sns.plotting_context(\"poster\"):\n", + " fig, axes = plt.subplots(1, 2, figsize=(24, 8))\n", + "\n", + " common_params = {\n", + " \"data\": results,\n", + " \"x\": \"k_max_as_n_fraction\",\n", + " \"y\": \"coef\",\n", + " \"hue\": \"data_size\",\n", + " \"style\": \"data_size\",\n", + " \"markers\": True,\n", + " \"dashes\": False,\n", + " }\n", + "\n", + " ax = sns.lineplot(\n", + " ax=axes[0],\n", + " **common_params,\n", + " )\n", + " ax.set(xlim=(0, 1), ylim=(0, 1.0))\n", + " ax.get_legend().set_title(\"$n$\")\n", + "\n", + " ax = sns.lineplot(\n", + " ax=axes[1],\n", + " legend=False,\n", + " **common_params,\n", + " )\n", + " ax.set(xlim=(0, 1), ylim=(0, 0.12))\n", + "\n", + " for ax in axes:\n", + " ax.set(ylabel=\"CCC\", xlabel=\"$k_{\\mathrm{max}}$ as fraction of $n$\")\n", + " ax.xaxis.grid(False)\n", + "\n", + " plt.savefig(\n", + " OUTPUT_FIGURE_DIR / \"constant_baseline-k_max-ccc_scaled.svg\",\n", + " bbox_inches=\"tight\",\n", + " facecolor=\"white\",\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f74b63d9-1f50-4590-9bb3-82d8569655f2", + "metadata": { + "papermill": { + "duration": 0.010906, + "end_time": "2024-01-08T16:10:32.152737", + "exception": false, + "start_time": "2024-01-08T16:10:32.141831", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "all,-execution,-papermill,-trusted", + "notebook_metadata_filter": "-jupytext.text_representation.jupytext_version", + "text_representation": { + "extension": ".py", + "format_name": "percent", + "format_version": "1.3" + } + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.12" + }, + "papermill": { + "default_parameters": {}, + "duration": 3.226923, + "end_time": "2024-01-08T16:10:32.574505", + "environment_variables": {}, + "exception": null, + "input_path": "nbs/99_manuscript/k_max/03-k_max-plots.ipynb", + "output_path": "nbs/99_manuscript/k_max/03-k_max-plots.run.ipynb", + "parameters": { + "GTEX_TISSUE": "skin_sun_exposed_lower_leg" + }, + "start_time": "2024-01-08T16:10:29.347582", + "version": "2.3.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/nbs/99_manuscript/k_max/py/03-k_max-plots.py b/nbs/99_manuscript/k_max/py/03-k_max-plots.py new file mode 100644 index 00000000..32587148 --- /dev/null +++ b/nbs/99_manuscript/k_max/py/03-k_max-plots.py @@ -0,0 +1,167 @@ +# --- +# jupyter: +# jupytext: +# cell_metadata_filter: all,-execution,-papermill,-trusted +# notebook_metadata_filter: -jupytext.text_representation.jupytext_version +# text_representation: +# extension: .py +# format_name: percent +# format_version: '1.3' +# kernelspec: +# display_name: Python 3 (ipykernel) +# language: python +# name: python3 +# --- + +# %% [markdown] tags=[] +# # Description + +# %% [markdown] tags=[] +# Reads $k_{\mathrm{max}}$ analyses and plot results. + +# %% [markdown] tags=[] +# # Modules loading + +# %% tags=[] +import numpy as np +import pandas as pd + +import matplotlib.pyplot as plt +import seaborn as sns + +from ccc import conf +from ccc.coef import ccc + +# %% [markdown] tags=[] +# # Settings + +# %% tags=[] + +# %% [markdown] tags=[] +# # Paths + +# %% tags=[] +assert ( + conf.MANUSCRIPT["BASE_DIR"] is not None and conf.MANUSCRIPT["BASE_DIR"].exists() +), "Manuscript dir not set" + +# %% tags=[] +INPUT_DIR = conf.RESULTS_DIR / "k_max_test" +INPUT_DIR.mkdir(parents=True, exist_ok=True) +display(INPUT_DIR) + +# %% tags=[] +INPUT_FILE = INPUT_DIR / "k_max-results.pkl" +display(INPUT_FILE) + +# %% tags=[] +OUTPUT_FIGURE_DIR = conf.MANUSCRIPT["FIGURES_DIR"] / "misc" +OUTPUT_FIGURE_DIR.mkdir(parents=True, exist_ok=True) +display(OUTPUT_FIGURE_DIR) + +# %% [markdown] tags=[] +# # Load data + +# %% tags=[] +results = pd.read_pickle(INPUT_FILE) + +# %% tags=[] +results.shape + +# %% tags=[] +results.head() + +# %% [markdown] tags=[] +# # Stats + +# %% tags=[] +results.describe() + +# %% [markdown] tags=[] +# # Change data types + +# %% tags=[] +results.dtypes + +# %% tags=[] +results["data_size"] = results["data_size"].astype(int) +results["k_max"] = results["k_max"].astype(int) + +# %% tags=[] +results.dtypes + +# %% [markdown] tags=[] +# # Plot + +# %% tags=[] +sns.set(rc={"figure.figsize": (12, 8)}) + +# %% tags=[] +with sns.axes_style("whitegrid"), sns.plotting_context("poster"): + # fig, axes = plt.subplots(1, 2, figsize=(24, 8)) + + common_params = { + "data": results, + "x": "k_max_as_n_fraction", + "y": "coef", + "hue": "data_size", + "style": "data_size", + "markers": True, + "dashes": False, + } + + ax = sns.lineplot( + # ax=axes[0], + **common_params, + ) + ax.set(xlim=(0, 1), ylim=(0, 1.0)) + ax.set(ylabel="CCC", xlabel="$k_{\mathrm{max}}$ as fraction of $n$") + ax.xaxis.grid(False) + # sns.move_legend(ax, 0, title="$n$") + ax.get_legend().set_title("$n$") + + plt.savefig( + OUTPUT_FIGURE_DIR / "constant_baseline-k_max.svg", + bbox_inches="tight", + facecolor="white", + ) + +# %% tags=[] +with sns.axes_style("whitegrid"), sns.plotting_context("poster"): + fig, axes = plt.subplots(1, 2, figsize=(24, 8)) + + common_params = { + "data": results, + "x": "k_max_as_n_fraction", + "y": "coef", + "hue": "data_size", + "style": "data_size", + "markers": True, + "dashes": False, + } + + ax = sns.lineplot( + ax=axes[0], + **common_params, + ) + ax.set(xlim=(0, 1), ylim=(0, 1.0)) + ax.get_legend().set_title("$n$") + + ax = sns.lineplot( + ax=axes[1], + legend=False, + **common_params, + ) + ax.set(xlim=(0, 1), ylim=(0, 0.12)) + + for ax in axes: + ax.set(ylabel="CCC", xlabel="$k_{\mathrm{max}}$ as fraction of $n$") + ax.xaxis.grid(False) + + plt.savefig( + OUTPUT_FIGURE_DIR / "constant_baseline-k_max-ccc_scaled.svg", + bbox_inches="tight", + facecolor="white", + ) + +# %% tags=[]