{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "ce312ad9",
   "metadata": {},
   "source": [
    "---\n",
    "title: scATAC-seq 变异分析：SNP 在染色质开放区域的富集\n",
    "author: SeekGene\n",
    "date: 2026-01-29\n",
    "tags:\n",
    "  - ATAC + RNA 双组学\n",
    "  - 分析指南\n",
    "  - Notebooks\n",
    "  - SNP富集分析\n",
    "---\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b0426a4a-48d1-4565-bf34-1227be2f6491",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "source": [
    "# scATAC-seq 变异分析：SNP 在染色质开放区域的富集"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "35f271f8-2f87-4532-ab89-97ed5261a7d1",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "source": [
    "## 背景介绍\n",
    "  全基因组关联研究（GWAS）是解析复杂性状遗传基础的关键工具，其鉴定出的大量显著单核苷酸多态性（SNP）往往位于基因组的非编码调控区域。这提示这些 SNP 可能通过影响基因表达调控而非直接改变蛋白质编码序列来影响性状，其效应通常具有细胞类型或状态特异性。理解这些非编码变异如何在特定细胞背景下发挥作用，是揭示复杂性状分子机制的核心挑战。scATAC-seq 能够以单细胞分辨率在全基因组范围内刻画染色质的开放状态，从而精准地定义出不同细胞类型和活化状态下特异性的调控元件（如增强子、启动子）及其活性图谱。本分析旨在建立特定性状与关键细胞类型/状态之间的功能关联。核心策略是计算 GWAS 鉴定的性状相关 SNP（或其连锁区域内的标签 SNP）在各类细胞状态特异性开放染色质区域中的富集程度。<br>\n",
    "  首先，基于 scATAC-seq 定义细胞状态特异的开放区域；其次，对于每个关注的 GWAS 性状（如疾病风险、血液生化指标、神经精神表型等），我们计算其 GWAS 显著 SNP 集合以及其紧密连锁的区域（如 LD 区块）出现在每个特定细胞状态开放区域内的频率。 通过统计检验（如超几何检验、置换检验等）评估该频率是否显著高于随机期望值。 从而揭示哪些细胞类型或活化状态可能是该性状遗传变异影响的主要“靶细胞”。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "10f7cfb2-2d67-4fd2-aa2f-bdc23780a929",
   "metadata": {},
   "source": [
    "## 分析前期数据准备\n",
    "### 在进行 SNP 富集分析之前，需要提前准备如下两种文件\n",
    "#### （1）traits 相关 SNP 信息\n",
    "#### 以 azoospermia_with_SNP.csv 文件为例，\n",
    "azoospermia 这个 trait 相关 SNP 的信息必须包含以下内容：<br>\n",
    "trait_name         index_snps    index_chrom    index_pos               SNP_id           tagged_r2       POS<br>\n",
    "azoospermia        rs7192        6              32443869                rs9268686        0.929192        32447745<br>\n",
    "azoospermia        rs7192        6              32443869                rs9268670        0.937897        32446510<br>\n",
    "azoospermia        rs7192        6              32443869                rs7195           1.000000        32444762<br>\n",
    "azoospermia        rs7192        6              32443869                rs2213585        1.000000        32445373<br>\n",
    "azoospermia        rs7192        6              32443869                rs567082101      0.937897        32453552<br>\n",
    "azoospermia        rs7192        6              32443869                rs7775108        0.937897        32452461<br>\n",
    "azoospermia        rs7192        6              32443869                rs9268783        0.937897        32452938<br>\n",
    "azoospermia        rs7192        6              32443869                rs4935354        1.000000        32444621<br>\n",
    "azoospermia        rs7192        6              32443869                rs78456540       0.914852        32586949<br>\n",
    "\n",
    "其中 trait_name 列是待分析的 trait 名称；index_snps 列表示这个 trait 相关的所有 SNP 信息，可能是几个，也可能是几百几千个，该信息来源于 GWAS 分析结果，也可以从 EBI 官网下载获取；index_chrom 列表示该 SNP 所在染色体编号；index_pos 列表示该 SNP 所在染色体具体位置；SNP_id 表示与前面 index_snps 具有连锁不平衡的 SNP；tagged_r2 则表示连锁不平衡的 r2 系数；POS 表示连锁不平衡的 SNP 所在的位置。<br>\n",
    "\n",
    "├── index_snps_with_LD_with_pos                    该路径下存放着待分析的所有 traits 的 SNP 信息，每个 traits 单独成一个独立的 csv 文件<br>\n",
    "│   ├── azoospermia_with_SNP.csv<br>\n",
    "│   ├── cardiomyopathy_with_SNP.csv<br>\n",
    "│   ├── chronic.lymphocytic.leukemia_with_SNP.csv<br>\n",
    "│   ├── chronic.myelogenous.leukemia_with_SNP.csv<br>\n",
    "│   ├── chronic.pancreatitis_with_SNP.csv<br>\n",
    "│   ├── diffuse.gastric.adenocarcinoma_with_SNP.csv<br>\n",
    "│   ├── endocarditis_with_SNP.csv<br>\n",
    "│   ├── ewing.sarcoma_with_SNP.csv<br>\n",
    "│   ├── gastric.adenocarcinoma_with_SNP.csv<br>\n",
    "│   ├── gastritis_with_SNP.csv<br>\n",
    "│   ├── head.and.neck.squamous.cell.carcinoma_with_SNP.csv<br>\n",
    "│   ├── hyperplasia_with_SNP.csv<br>\n",
    "│   ├── infectious.meningitis_with_SNP.csv<br>\n",
    "│   ├── invasive.lobular.carcinoma_with_SNP.csv<br>\n",
    "│   ├── leukemia_with_SNP.csv<br>\n",
    "│   ├── myelodysplastic.syndrome_with_SNP.csv<br>\n",
    "│   ├── neoplasm.of.mature.bcells_with_SNP.csv<br>\n",
    "│   ├── neoplasm_with_SNP.csv<br>\n",
    "│   ├── nervous.system.disease_with_SNP.csv<br>\n",
    "│   ├── pancreatitis_with_SNP.csv<br>\n",
    "│   ├── papillary.renal.cell.carcinoma_with_SNP.csv<br>\n",
    "│   ├── polyp_with_SNP.csv<br>\n",
    "│   └── portal.hypertension_with_SNP.csv<br>\n",
    "\n",
    "\n",
    "\n",
    "#### (2)celltype-by-peak 矩阵\n",
    "celltype-by-peak 矩阵行名是 celltype，列名是 peaks 信息，值表示在某一 celltype 中，该 peak 位置处于开放状态的细胞数占总细胞数的比例\n",
    "\n",
    "└── peaks 该路径下存放着 celltype-by-peaks 的矩阵文件<br>\n",
    "│   └── celltype_by_peaks.csv<br>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "70e54d5a-747b-48fa-9fca-7ee6c62285ff",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "source": [
    "## SNPenrichment 分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "e980aa61-f72f-42b3-939a-9be5a88770f4",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T01:27:07.180282Z",
     "iopub.status.busy": "2025-06-10T01:27:07.179744Z",
     "iopub.status.idle": "2025-06-10T01:30:03.820443Z",
     "shell.execute_reply": "2025-06-10T01:30:03.819660Z",
     "shell.execute_reply.started": "2025-06-10T01:27:07.180252Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": [
     "remove-input"
    ]
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/PROJ2/FLOAT/shumeng/apps/miniconda3/envs/ATAC_SNPEnrich/lib/python3.11/site-packages/requests/__init__.py:86: RequestsDependencyWarning: Unable to find acceptable character detection dependency (chardet or charset_normalizer).\n",
      "  warnings.warn(\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import scanpy as sc\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "from matplotlib.pyplot import rc_context\n",
    "import bbknn\n",
    "import re\n",
    "import json\n",
    "import os\n",
    "import rpy2\n",
    "import anndata\n",
    "from datetime import date\n",
    "import scipy.stats\n",
    "from datetime import datetime\n",
    "import requests\n",
    "import logging\n",
    "\n",
    "# YYYY-MM-DD\n",
    "today = date.today()\n",
    "today = today.strftime(\"%Y-%m-%d\")\n",
    "\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e3cce546-6287-4911-93a4-ae033ce00a73",
   "metadata": {},
   "source": [
    "### 参数说明\n",
    "peaks_path：存放 celltype_by_peaks.csv 文件的路径； <br>\n",
    "SNP_path：存放 traits 相关 SNP 信息的文件的路径；<br>\n",
    "n_permutations:置换检验的次数；<br>\n",
    "output_path:结果文件输出路径；<br>\n",
    "threshold：判断 celltype 在某一 peak 上是否开放的阈值；<br>\n",
    "pval_sig_threshold:富集显著性阈值。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "85079152-a536-4960-817f-5c6985b92a11",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T01:31:07.282251Z",
     "iopub.status.busy": "2025-06-10T01:31:07.281152Z",
     "iopub.status.idle": "2025-06-10T01:31:07.285770Z",
     "shell.execute_reply": "2025-06-10T01:31:07.285080Z",
     "shell.execute_reply.started": "2025-06-10T01:31:07.282220Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "peaks_path='/PROJ2/FLOAT/shumeng/project/scATAC_learn/Signac/example_data/joint.14/joint14.22/'\n",
    "SNP_path='/PROJ2/FLOAT/advanced-analysis/Seek_module_dev/ATAC_SNPenrichment/demo/index_snps_with_LD_with_pos/'\n",
    "n_permutations=1000\n",
    "output_path=\"../result/\"\n",
    "threshold=0.05\n",
    "pval_sig_threshold=0.05"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "baf26c6c-9cf5-459a-ba24-30539b16d26f",
   "metadata": {},
   "source": [
    "### 读取 celltype-by-peaks 文件"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "283f3ecb-9281-404b-acf1-294115f1c7d3",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T01:31:08.444392Z",
     "iopub.status.busy": "2025-06-10T01:31:08.443684Z",
     "iopub.status.idle": "2025-06-10T01:31:24.322265Z",
     "shell.execute_reply": "2025-06-10T01:31:24.321572Z",
     "shell.execute_reply.started": "2025-06-10T01:31:08.444359Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>chr1-9815-10616</th>\n",
       "      <th>chr1-180437-181865</th>\n",
       "      <th>chr1-190528-191930</th>\n",
       "      <th>chr1-267655-268361</th>\n",
       "      <th>chr1-629577-630313</th>\n",
       "      <th>chr1-633636-634418</th>\n",
       "      <th>chr1-778209-779399</th>\n",
       "      <th>chr1-817017-817549</th>\n",
       "      <th>chr1-819870-822573</th>\n",
       "      <th>chr1-822744-823396</th>\n",
       "      <th>...</th>\n",
       "      <th>chrY-56861377-56861817</th>\n",
       "      <th>chrY-56864364-56864795</th>\n",
       "      <th>chrY-56868776-56869176</th>\n",
       "      <th>chrY-56869677-56870379</th>\n",
       "      <th>chrY-56870544-56871524</th>\n",
       "      <th>chrY-56873556-56874208</th>\n",
       "      <th>chrY-56879530-56880478</th>\n",
       "      <th>chrM-11-4079</th>\n",
       "      <th>chrM-6124-6729</th>\n",
       "      <th>chrM-9885-16556</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>fine_grain</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Neurons</th>\n",
       "      <td>0.011323</td>\n",
       "      <td>0.022375</td>\n",
       "      <td>0.039922</td>\n",
       "      <td>0.004150</td>\n",
       "      <td>0.013939</td>\n",
       "      <td>0.070913</td>\n",
       "      <td>0.091979</td>\n",
       "      <td>0.004827</td>\n",
       "      <td>0.025171</td>\n",
       "      <td>0.009473</td>\n",
       "      <td>...</td>\n",
       "      <td>0.003473</td>\n",
       "      <td>0.002571</td>\n",
       "      <td>0.003338</td>\n",
       "      <td>0.006361</td>\n",
       "      <td>0.008030</td>\n",
       "      <td>0.004782</td>\n",
       "      <td>0.006135</td>\n",
       "      <td>0.996391</td>\n",
       "      <td>0.850956</td>\n",
       "      <td>0.999865</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Macrophage</th>\n",
       "      <td>0.009381</td>\n",
       "      <td>0.023139</td>\n",
       "      <td>0.013133</td>\n",
       "      <td>0.001876</td>\n",
       "      <td>0.010006</td>\n",
       "      <td>0.058787</td>\n",
       "      <td>0.076923</td>\n",
       "      <td>0.012508</td>\n",
       "      <td>0.025641</td>\n",
       "      <td>0.008755</td>\n",
       "      <td>...</td>\n",
       "      <td>0.002502</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.004378</td>\n",
       "      <td>0.006879</td>\n",
       "      <td>0.007505</td>\n",
       "      <td>0.006254</td>\n",
       "      <td>0.005629</td>\n",
       "      <td>0.997498</td>\n",
       "      <td>0.846154</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Endothelial_cells</th>\n",
       "      <td>0.016760</td>\n",
       "      <td>0.050279</td>\n",
       "      <td>0.053073</td>\n",
       "      <td>0.005587</td>\n",
       "      <td>0.050279</td>\n",
       "      <td>0.212291</td>\n",
       "      <td>0.114525</td>\n",
       "      <td>0.008380</td>\n",
       "      <td>0.044693</td>\n",
       "      <td>0.002793</td>\n",
       "      <td>...</td>\n",
       "      <td>0.011173</td>\n",
       "      <td>0.005587</td>\n",
       "      <td>0.005587</td>\n",
       "      <td>0.008380</td>\n",
       "      <td>0.016760</td>\n",
       "      <td>0.011173</td>\n",
       "      <td>0.005587</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.977654</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>T_cells</th>\n",
       "      <td>0.009019</td>\n",
       "      <td>0.022548</td>\n",
       "      <td>0.012401</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.013529</td>\n",
       "      <td>0.072153</td>\n",
       "      <td>0.065389</td>\n",
       "      <td>0.004510</td>\n",
       "      <td>0.011274</td>\n",
       "      <td>0.005637</td>\n",
       "      <td>...</td>\n",
       "      <td>0.003382</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001127</td>\n",
       "      <td>0.005637</td>\n",
       "      <td>0.011274</td>\n",
       "      <td>0.006764</td>\n",
       "      <td>0.006764</td>\n",
       "      <td>0.996618</td>\n",
       "      <td>0.906426</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Smooth_muscle_cells</th>\n",
       "      <td>0.010081</td>\n",
       "      <td>0.029234</td>\n",
       "      <td>0.025202</td>\n",
       "      <td>0.004032</td>\n",
       "      <td>0.015121</td>\n",
       "      <td>0.102823</td>\n",
       "      <td>0.072581</td>\n",
       "      <td>0.009073</td>\n",
       "      <td>0.027218</td>\n",
       "      <td>0.012097</td>\n",
       "      <td>...</td>\n",
       "      <td>0.005040</td>\n",
       "      <td>0.001008</td>\n",
       "      <td>0.003024</td>\n",
       "      <td>0.009073</td>\n",
       "      <td>0.008065</td>\n",
       "      <td>0.005040</td>\n",
       "      <td>0.008065</td>\n",
       "      <td>0.998992</td>\n",
       "      <td>0.873992</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 243391 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                     chr1-9815-10616  chr1-180437-181865  chr1-190528-191930  \\\n",
       "fine_grain                                                                     \n",
       "Neurons                     0.011323            0.022375            0.039922   \n",
       "Macrophage                  0.009381            0.023139            0.013133   \n",
       "Endothelial_cells           0.016760            0.050279            0.053073   \n",
       "T_cells                     0.009019            0.022548            0.012401   \n",
       "Smooth_muscle_cells         0.010081            0.029234            0.025202   \n",
       "\n",
       "                     chr1-267655-268361  chr1-629577-630313  \\\n",
       "fine_grain                                                    \n",
       "Neurons                        0.004150            0.013939   \n",
       "Macrophage                     0.001876            0.010006   \n",
       "Endothelial_cells              0.005587            0.050279   \n",
       "T_cells                        0.000000            0.013529   \n",
       "Smooth_muscle_cells            0.004032            0.015121   \n",
       "\n",
       "                     chr1-633636-634418  chr1-778209-779399  \\\n",
       "fine_grain                                                    \n",
       "Neurons                        0.070913            0.091979   \n",
       "Macrophage                     0.058787            0.076923   \n",
       "Endothelial_cells              0.212291            0.114525   \n",
       "T_cells                        0.072153            0.065389   \n",
       "Smooth_muscle_cells            0.102823            0.072581   \n",
       "\n",
       "                     chr1-817017-817549  chr1-819870-822573  \\\n",
       "fine_grain                                                    \n",
       "Neurons                        0.004827            0.025171   \n",
       "Macrophage                     0.012508            0.025641   \n",
       "Endothelial_cells              0.008380            0.044693   \n",
       "T_cells                        0.004510            0.011274   \n",
       "Smooth_muscle_cells            0.009073            0.027218   \n",
       "\n",
       "                     chr1-822744-823396  ...  chrY-56861377-56861817  \\\n",
       "fine_grain                               ...                           \n",
       "Neurons                        0.009473  ...                0.003473   \n",
       "Macrophage                     0.008755  ...                0.002502   \n",
       "Endothelial_cells              0.002793  ...                0.011173   \n",
       "T_cells                        0.005637  ...                0.003382   \n",
       "Smooth_muscle_cells            0.012097  ...                0.005040   \n",
       "\n",
       "                     chrY-56864364-56864795  chrY-56868776-56869176  \\\n",
       "fine_grain                                                            \n",
       "Neurons                            0.002571                0.003338   \n",
       "Macrophage                         0.000000                0.004378   \n",
       "Endothelial_cells                  0.005587                0.005587   \n",
       "T_cells                            0.000000                0.001127   \n",
       "Smooth_muscle_cells                0.001008                0.003024   \n",
       "\n",
       "                     chrY-56869677-56870379  chrY-56870544-56871524  \\\n",
       "fine_grain                                                            \n",
       "Neurons                            0.006361                0.008030   \n",
       "Macrophage                         0.006879                0.007505   \n",
       "Endothelial_cells                  0.008380                0.016760   \n",
       "T_cells                            0.005637                0.011274   \n",
       "Smooth_muscle_cells                0.009073                0.008065   \n",
       "\n",
       "                     chrY-56873556-56874208  chrY-56879530-56880478  \\\n",
       "fine_grain                                                            \n",
       "Neurons                            0.004782                0.006135   \n",
       "Macrophage                         0.006254                0.005629   \n",
       "Endothelial_cells                  0.011173                0.005587   \n",
       "T_cells                            0.006764                0.006764   \n",
       "Smooth_muscle_cells                0.005040                0.008065   \n",
       "\n",
       "                     chrM-11-4079  chrM-6124-6729  chrM-9885-16556  \n",
       "fine_grain                                                          \n",
       "Neurons                  0.996391        0.850956         0.999865  \n",
       "Macrophage               0.997498        0.846154         1.000000  \n",
       "Endothelial_cells        1.000000        0.977654         1.000000  \n",
       "T_cells                  0.996618        0.906426         1.000000  \n",
       "Smooth_muscle_cells      0.998992        0.873992         1.000000  \n",
       "\n",
       "[5 rows x 243391 columns]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "os.makedirs(\"../result\", exist_ok=True)\n",
    "peakfile=os.path.join(peaks_path, \"celltype_by_peaks.csv\")\n",
    "#print(f'{current_time}:...reading peak file...takes 5 mins...')\n",
    "peaks=pd.read_csv(peakfile)\n",
    "    \n",
    "peaks.columns = peaks.columns.str.replace('Unnamed: 0', 'fine_grain')\n",
    "peaks=peaks.set_index(peaks['fine_grain'])\n",
    "peaks=peaks.drop(columns=['fine_grain'])\n",
    "\n",
    "# replace characters which can break the code\n",
    "peaks.index=peaks.index.str.replace('+', 'pos')\n",
    "peaks.index=peaks.index.str.replace('/', '_or_')\n",
    "\n",
    "now = datetime.now()\n",
    "current_time = now.strftime(\"%H:%M:%S\")\n",
    "#print(f'{current_time}:...done.')\n",
    "peaks.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "22c0edac-8e75-4a4b-9a4f-a386fe847f7f",
   "metadata": {},
   "source": [
    "```\n",
    "celltype-by-peaks 矩阵每行代表一种细胞类型，每列代表一个 peak，对应的值代表 celltype 在 peak 中处于开放状态的细胞数在 celltype 总细胞数的占比。这个表格需要自己提前制备。具体方法：首先将 peak-cell 矩阵二值化，其中 0 代表不开放，1 代表开放，然后统计开放和总数的占比所得。\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "13c70c11-8d43-4bbe-83c8-22706ccd96b2",
   "metadata": {},
   "source": [
    "### 整理数据中所涉及所有 peaks 的 peak_window、chrom、start、end 信息，为后续统计 traits 相关 SNP 受否覆盖在 peaks 信息中做准备"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "c42bc144-d2f5-49b3-877d-67cc24e5e07f",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T01:38:20.716514Z",
     "iopub.status.busy": "2025-06-10T01:38:20.715656Z",
     "iopub.status.idle": "2025-06-10T01:38:21.674393Z",
     "shell.execute_reply": "2025-06-10T01:38:21.673709Z",
     "shell.execute_reply.started": "2025-06-10T01:38:20.716482Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 878 ms, sys: 47.5 ms, total: 925 ms\n",
      "Wall time: 948 ms\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>peak_window</th>\n",
       "      <th>chrom</th>\n",
       "      <th>start</th>\n",
       "      <th>end</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>peak</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>chr1-9815-10616</th>\n",
       "      <td>9815_10616</td>\n",
       "      <td>chr1</td>\n",
       "      <td>9815</td>\n",
       "      <td>10616</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>chr1-180437-181865</th>\n",
       "      <td>180437_181865</td>\n",
       "      <td>chr1</td>\n",
       "      <td>180437</td>\n",
       "      <td>181865</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>chr1-190528-191930</th>\n",
       "      <td>190528_191930</td>\n",
       "      <td>chr1</td>\n",
       "      <td>190528</td>\n",
       "      <td>191930</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>chr1-267655-268361</th>\n",
       "      <td>267655_268361</td>\n",
       "      <td>chr1</td>\n",
       "      <td>267655</td>\n",
       "      <td>268361</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                      peak_window chrom   start     end\n",
       "peak                                                   \n",
       "chr1-9815-10616        9815_10616  chr1    9815   10616\n",
       "chr1-180437-181865  180437_181865  chr1  180437  181865\n",
       "chr1-190528-191930  190528_191930  chr1  190528  191930\n",
       "chr1-267655-268361  267655_268361  chr1  267655  268361"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%%time\n",
    "# 生成初始DataFrame\n",
    "all_peaks = pd.DataFrame(peaks.columns, columns=['peak'])\n",
    "\n",
    "split_result = all_peaks['peak'].str.split('-', expand=True)\n",
    "all_peaks['peak_window'] = split_result[1] + \"_\" + split_result[2]  # 直接字符串拼接\n",
    "all_peaks['chrom'] = split_result[0]\n",
    "all_peaks['start'] = split_result[1].astype(int)  # 转为整数\n",
    "all_peaks['end'] = split_result[2].astype(int)\n",
    "\n",
    "# 设置索引\n",
    "all_peaks = all_peaks.set_index('peak')\n",
    "all_peaks.head(4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "2b0852ba-fe0c-40e5-bf96-2234a247108d",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T01:38:23.366269Z",
     "iopub.status.busy": "2025-06-10T01:38:23.365714Z",
     "iopub.status.idle": "2025-06-10T01:38:23.547576Z",
     "shell.execute_reply": "2025-06-10T01:38:23.546835Z",
     "shell.execute_reply.started": "2025-06-10T01:38:23.366236Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>peak_window</th>\n",
       "      <th>chrom</th>\n",
       "      <th>start</th>\n",
       "      <th>end</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>peak</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>chr1-9815-10616</th>\n",
       "      <td>9815_10616</td>\n",
       "      <td>chr1</td>\n",
       "      <td>9815.0</td>\n",
       "      <td>10616.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>chr1-180437-181865</th>\n",
       "      <td>180437_181865</td>\n",
       "      <td>chr1</td>\n",
       "      <td>180437.0</td>\n",
       "      <td>181865.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>chr1-190528-191930</th>\n",
       "      <td>190528_191930</td>\n",
       "      <td>chr1</td>\n",
       "      <td>190528.0</td>\n",
       "      <td>191930.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>chr1-267655-268361</th>\n",
       "      <td>267655_268361</td>\n",
       "      <td>chr1</td>\n",
       "      <td>267655.0</td>\n",
       "      <td>268361.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>chr1-629577-630313</th>\n",
       "      <td>629577_630313</td>\n",
       "      <td>chr1</td>\n",
       "      <td>629577.0</td>\n",
       "      <td>630313.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>chrY-56873556-56874208</th>\n",
       "      <td>56873556_56874208</td>\n",
       "      <td>chrY</td>\n",
       "      <td>56873556.0</td>\n",
       "      <td>56874208.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>chrY-56879530-56880478</th>\n",
       "      <td>56879530_56880478</td>\n",
       "      <td>chrY</td>\n",
       "      <td>56879530.0</td>\n",
       "      <td>56880478.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>chrM-11-4079</th>\n",
       "      <td>11_4079</td>\n",
       "      <td>chrM</td>\n",
       "      <td>11.0</td>\n",
       "      <td>4079.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>chrM-6124-6729</th>\n",
       "      <td>6124_6729</td>\n",
       "      <td>chrM</td>\n",
       "      <td>6124.0</td>\n",
       "      <td>6729.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>chrM-9885-16556</th>\n",
       "      <td>9885_16556</td>\n",
       "      <td>chrM</td>\n",
       "      <td>9885.0</td>\n",
       "      <td>16556.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>243391 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                              peak_window chrom       start         end\n",
       "peak                                                                   \n",
       "chr1-9815-10616                9815_10616  chr1      9815.0     10616.0\n",
       "chr1-180437-181865          180437_181865  chr1    180437.0    181865.0\n",
       "chr1-190528-191930          190528_191930  chr1    190528.0    191930.0\n",
       "chr1-267655-268361          267655_268361  chr1    267655.0    268361.0\n",
       "chr1-629577-630313          629577_630313  chr1    629577.0    630313.0\n",
       "...                                   ...   ...         ...         ...\n",
       "chrY-56873556-56874208  56873556_56874208  chrY  56873556.0  56874208.0\n",
       "chrY-56879530-56880478  56879530_56880478  chrY  56879530.0  56880478.0\n",
       "chrM-11-4079                      11_4079  chrM        11.0      4079.0\n",
       "chrM-6124-6729                  6124_6729  chrM      6124.0      6729.0\n",
       "chrM-9885-16556                9885_16556  chrM      9885.0     16556.0\n",
       "\n",
       "[243391 rows x 4 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# select a window size (bp) of interest (by default it is 500bp)\n",
    "window_size=500\n",
    "window_adjustment=(window_size-500)/2\n",
    "#print('adjustment '+str(window_adjustment))\n",
    "window_size_for_filename='peak_width_'+str(window_size)\n",
    "#print(window_size_for_filename)\n",
    "\n",
    "all_peaks['start']=all_peaks['start'].apply(lambda x: x-window_adjustment)\n",
    "all_peaks['end']=all_peaks['end'].apply(lambda x: x+window_adjustment)\n",
    "\n",
    "all_peaks"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "38cc0b25-214d-4219-a4b3-171049f8578f",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T01:38:24.332254Z",
     "iopub.status.busy": "2025-06-10T01:38:24.331720Z",
     "iopub.status.idle": "2025-06-10T01:38:24.337035Z",
     "shell.execute_reply": "2025-06-10T01:38:24.336427Z",
     "shell.execute_reply.started": "2025-06-10T01:38:24.332221Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Neurons',\n",
       " 'Macrophage',\n",
       " 'Endothelial_cells',\n",
       " 'T_cells',\n",
       " 'Smooth_muscle_cells',\n",
       " 'Keratinocytes',\n",
       " 'DC',\n",
       " 'B_cell']"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# get list of celltypes for subsequent analyses\n",
    "cell_types=peaks.index.unique().tolist()\n",
    "cell_types"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "1cc206b4-3ed5-448f-88b9-c17137f387b4",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T01:38:25.581020Z",
     "iopub.status.busy": "2025-06-10T01:38:25.580479Z",
     "iopub.status.idle": "2025-06-10T01:38:25.585030Z",
     "shell.execute_reply": "2025-06-10T01:38:25.584390Z",
     "shell.execute_reply.started": "2025-06-10T01:38:25.580989Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0p05\n"
     ]
    }
   ],
   "source": [
    "# Set threshold for binarisation\n",
    "threshold_for_filename=str(threshold).replace('.','p')\n",
    "print(threshold_for_filename)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3a4fc7e3-167b-4f7a-84b6-429c7a9c1843",
   "metadata": {},
   "source": [
    "### 根据 SNP_path 路径下包含的所有 traits 信息，统计此次富集分析中，每个 traits 包含的 SNP 总数，包含 SNP 和与之连锁不平衡的 SNP"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "c81110e4-8fd7-4530-b808-36fc6d9b2a04",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T01:44:49.333609Z",
     "iopub.status.busy": "2025-06-10T01:44:49.332740Z",
     "iopub.status.idle": "2025-06-10T01:44:50.145241Z",
     "shell.execute_reply": "2025-06-10T01:44:50.144584Z",
     "shell.execute_reply.started": "2025-06-10T01:44:49.333580Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 76.1 ms, sys: 2.6 ms, total: 78.7 ms\n",
      "Wall time: 802 ms\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>n_SNPs</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>efo_term</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>chronic.lymphocytic.leukemia</th>\n",
       "      <td>483</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>neoplasm.of.mature.bcells</th>\n",
       "      <td>285</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>cardiomyopathy</th>\n",
       "      <td>192</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ewing.sarcoma</th>\n",
       "      <td>157</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>chronic.myelogenous.leukemia</th>\n",
       "      <td>139</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>gastritis</th>\n",
       "      <td>121</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>azoospermia</th>\n",
       "      <td>118</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>pancreatitis</th>\n",
       "      <td>108</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>myelodysplastic.syndrome</th>\n",
       "      <td>102</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>leukemia</th>\n",
       "      <td>90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>papillary.renal.cell.carcinoma</th>\n",
       "      <td>83</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>head.and.neck.squamous.cell.carcinoma</th>\n",
       "      <td>63</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>hyperplasia</th>\n",
       "      <td>61</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>gastric.adenocarcinoma</th>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>chronic.pancreatitis</th>\n",
       "      <td>57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>diffuse.gastric.adenocarcinoma</th>\n",
       "      <td>56</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>neoplasm</th>\n",
       "      <td>51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>polyp</th>\n",
       "      <td>27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>infectious.meningitis</th>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>portal.hypertension</th>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>nervous.system.disease</th>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>invasive.lobular.carcinoma</th>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>endocarditis</th>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                       n_SNPs\n",
       "efo_term                                     \n",
       "chronic.lymphocytic.leukemia              483\n",
       "neoplasm.of.mature.bcells                 285\n",
       "cardiomyopathy                            192\n",
       "ewing.sarcoma                             157\n",
       "chronic.myelogenous.leukemia              139\n",
       "gastritis                                 121\n",
       "azoospermia                               118\n",
       "pancreatitis                              108\n",
       "myelodysplastic.syndrome                  102\n",
       "leukemia                                   90\n",
       "papillary.renal.cell.carcinoma             83\n",
       "head.and.neck.squamous.cell.carcinoma      63\n",
       "hyperplasia                                61\n",
       "gastric.adenocarcinoma                     60\n",
       "chronic.pancreatitis                       57\n",
       "diffuse.gastric.adenocarcinoma             56\n",
       "neoplasm                                   51\n",
       "polyp                                      27\n",
       "infectious.meningitis                      24\n",
       "portal.hypertension                        18\n",
       "nervous.system.disease                     11\n",
       "invasive.lobular.carcinoma                  6\n",
       "endocarditis                                4"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "# make a table of metadata about the SNP files\n",
    "md_efo_terms=[]\n",
    "md_n_SNPs=[]\n",
    "\n",
    "\n",
    "files=os.listdir(SNP_path)\n",
    "\n",
    "for file in files:\n",
    "    \n",
    "    efo_term=str(file.split('_')[0])\n",
    "    md_efo_terms.append(efo_term)\n",
    "                      \n",
    "    snps_df=pd.read_csv(f'{SNP_path}{file}')\n",
    "    snps_df=snps_df.set_index('SNP_id')\n",
    "    \n",
    "    snps_df[\"Chrom\"] = snps_df['Chrom'].apply(lambda x: 'chr'+str(x)).str.split('.',expand=True)[0] # creates a new 'chrom' column and should work even for X or M chromosomes\n",
    "\n",
    "    md_n_SNPs.append(len(snps_df))\n",
    "\n",
    "md_dict={\n",
    "    'efo_term':md_efo_terms,\n",
    "    'n_SNPs':md_n_SNPs\n",
    "}\n",
    "\n",
    "\n",
    "SNP_md=pd.DataFrame(md_dict)\n",
    "SNP_md=SNP_md.set_index('efo_term')\n",
    "\n",
    "SNP_md.sort_values('n_SNPs',ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "ff0b5448-e4b6-41b0-bf6d-e93102beeb63",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T01:45:01.332164Z",
     "iopub.status.busy": "2025-06-10T01:45:01.331608Z",
     "iopub.status.idle": "2025-06-10T01:45:01.335775Z",
     "shell.execute_reply": "2025-06-10T01:45:01.335106Z",
     "shell.execute_reply.started": "2025-06-10T01:45:01.332134Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "efo_terms=SNP_md.index.unique().tolist()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "63c3661c-0371-485c-921d-1b348339251a",
   "metadata": {},
   "source": [
    "### 统计 traits 相关 SNP 落在已知 peaks 区域内的个数，形成 peak-traits 矩阵"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "202b85ba-2720-4f84-b439-a926ca2a681a",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T01:45:02.406820Z",
     "iopub.status.busy": "2025-06-10T01:45:02.406193Z",
     "iopub.status.idle": "2025-06-10T01:46:36.197685Z",
     "shell.execute_reply": "2025-06-10T01:46:36.196990Z",
     "shell.execute_reply.started": "2025-06-10T01:45:02.406784Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 1min 32s, sys: 99.4 ms, total: 1min 32s\n",
      "Wall time: 1min 33s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "# Add on a column for each trait, indicating whether a SNP from that trait falls within a peak. This file varies with the which traits are assessed\n",
    "\n",
    "all_peaks_path=f'{output_path}SNP_mapped_to_peaks/'\n",
    "os.makedirs(all_peaks_path,\n",
    "           exist_ok=True) # makes the directory\n",
    "files=os.listdir(SNP_path)\n",
    "for efo_term in efo_terms:\n",
    "    file = [f for f in files if f\"{efo_term}\" in f]\n",
    "    file = file[0]\n",
    "    file_path = os.path.join(SNP_path, file)\n",
    "    snps_df=pd.read_csv(file_path)\n",
    "    snps_df=snps_df.set_index('SNP_id')\n",
    "    snps_df[\"chrom\"]=snps_df[\"Chrom\"].apply(lambda x: 'chr' + str(x)).str.split('.', n=1).str[0]\n",
    "    all_peaks[efo_term]=0\n",
    "    for snp in range(len(snps_df[\"chrom\"])): # This loop incrementally adds 1 if there is a SNP within a peak (open or closed)\n",
    "        all_peaks[efo_term][(all_peaks['chrom'] == snps_df[\"chrom\"][snp])&(all_peaks['start'] <= snps_df['POS'][snp])&(all_peaks['end'] >= snps_df['POS'][snp])]+=1 # Adds one for each SNP which falls inside a peak\n",
    "all_peaks.to_csv(f'{all_peaks_path}all_peaks_with_SNPs_for_traits_incremental.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "c2f396e4-6db5-4121-9408-e8c5c208c29b",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T01:46:49.499551Z",
     "iopub.status.busy": "2025-06-10T01:46:49.499004Z",
     "iopub.status.idle": "2025-06-10T01:46:49.858795Z",
     "shell.execute_reply": "2025-06-10T01:46:49.858041Z",
     "shell.execute_reply.started": "2025-06-10T01:46:49.499522Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "# Show number of SNPs falling in peaks, for each trait\n",
    "efo_terms_to_drop=[]\n",
    "\n",
    "for efo_term in efo_terms:\n",
    "#    print(efo_id+': '+str(sum(all_peaks[efo_id])))\n",
    "    if sum(all_peaks[efo_term]) == 0:\n",
    "        efo_terms_to_drop.append(efo_term)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "b9067c3c-481a-46a6-8566-ebbc4dc58ddc",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T01:46:51.332014Z",
     "iopub.status.busy": "2025-06-10T01:46:51.331391Z",
     "iopub.status.idle": "2025-06-10T01:46:51.335460Z",
     "shell.execute_reply": "2025-06-10T01:46:51.334817Z",
     "shell.execute_reply.started": "2025-06-10T01:46:51.331986Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "efo_terms=[efo_term for efo_term in efo_terms if efo_term not in efo_terms_to_drop]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "82f46ef7-c3bc-4c8e-9c24-28feca3831f8",
   "metadata": {},
   "source": [
    "### 对于每个细胞类型，通过打乱该细胞类型峰的开放/关闭标签来创建随机背景（1/0 的二值化矩阵），使得随机的一组峰被标注为开放，其数量等于该细胞状态实际开放峰的数量。重复此操作以创建 1000 个随机排列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "11cba875-6c62-4bab-a776-896d4ecdf13a",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T01:46:52.559891Z",
     "iopub.status.busy": "2025-06-10T01:46:52.559374Z",
     "iopub.status.idle": "2025-06-10T01:46:52.593087Z",
     "shell.execute_reply": "2025-06-10T01:46:52.592408Z",
     "shell.execute_reply.started": "2025-06-10T01:46:52.559862Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "NOT generating binarised matrix for Neurons since it already exists\n",
      "NOT generating binarised matrix for Macrophage since it already exists\n",
      "NOT generating binarised matrix for Endothelial_cells since it already exists\n",
      "NOT generating binarised matrix for T_cells since it already exists\n",
      "NOT generating binarised matrix for Smooth_muscle_cells since it already exists\n",
      "NOT generating binarised matrix for Keratinocytes since it already exists\n",
      "NOT generating binarised matrix for DC since it already exists\n",
      "NOT generating binarised matrix for B_cell since it already exists\n",
      "finished\n",
      "CPU times: user 1.58 ms, sys: 976 μs, total: 2.56 ms\n",
      "Wall time: 26.5 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import os\n",
    "from datetime import datetime\n",
    "\n",
    "permutations = range(n_permutations)\n",
    "bin_mat_path = f'{output_path}binarised_permutation_matrices/'\n",
    "os.makedirs(bin_mat_path, exist_ok=True)\n",
    "\n",
    "for cell_type in cell_types:\n",
    "    output_file = f'{bin_mat_path}{cell_type}_{n_permutations}_permutations_bin_threshold_{threshold_for_filename}_matrix.csv'\n",
    "    \n",
    "    if not os.path.isfile(output_file):\n",
    "        print(f'{datetime.now().strftime(\"%H:%M:%S\")}...generating binarised matrix for {cell_type}...')\n",
    "        \n",
    "        # 初始化 DataFrame\n",
    "        cell_df = pd.DataFrame(peaks.loc[cell_type])\n",
    "        cell_df['peak'] = cell_df.index\n",
    "        split_result = cell_df['peak'].str.split('-', expand=True)\n",
    "        cell_df['chrom'] = split_result[0]\n",
    "        cell_df['peak_window'] = split_result[1] + \"_\" + split_result[2]\n",
    "        cell_df['start'] = split_result[1].astype(int)\n",
    "        cell_df['end'] = split_result[2].astype(int)\n",
    "        cell_df[f'{cell_type}_binarised_real'] = cell_df[cell_type].ge(threshold).astype(int)\n",
    "        \n",
    "        # 生成所有 permutation 列\n",
    "        for perm in permutations:\n",
    "            cell_df[f'{cell_type}_binarised_permutation_{perm}'] = np.random.permutation(cell_df[f'{cell_type}_binarised_real'])\n",
    "        \n",
    "        # 一次性保存\n",
    "        cell_df.to_csv(output_file, index=True)\n",
    "    else:\n",
    "        print(f'NOT generating binarised matrix for {cell_type} since it already exists')\n",
    "\n",
    "print('finished')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f39df66b-9bb6-4016-9fea-88a6cdf7e4f4",
   "metadata": {},
   "source": [
    "### 将每个细胞类型的随机排列的二值化矩阵与实际 peak-traits 矩阵进行合并"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "8e649ee5-a617-49ed-aa6e-be32fabdac20",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T01:46:58.332164Z",
     "iopub.status.busy": "2025-06-10T01:46:58.331504Z",
     "iopub.status.idle": "2025-06-10T01:46:58.365682Z",
     "shell.execute_reply": "2025-06-10T01:46:58.365004Z",
     "shell.execute_reply.started": "2025-06-10T01:46:58.332133Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "NOT generating joined binarised matrix for Neurons since it already exists\n",
      "NOT generating joined binarised matrix for Macrophage since it already exists\n",
      "NOT generating joined binarised matrix for Endothelial_cells since it already exists\n",
      "NOT generating joined binarised matrix for T_cells since it already exists\n",
      "NOT generating joined binarised matrix for Smooth_muscle_cells since it already exists\n",
      "NOT generating joined binarised matrix for Keratinocytes since it already exists\n",
      "NOT generating joined binarised matrix for DC since it already exists\n",
      "NOT generating joined binarised matrix for B_cell since it already exists\n",
      "finished\n",
      "CPU times: user 2.2 ms, sys: 21 μs, total: 2.22 ms\n",
      "Wall time: 28 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "joined_bin_mat_path = f'{output_path}binarised_permutation_matrices_joined_incremental/'\n",
    "os.makedirs(joined_bin_mat_path, exist_ok=True)\n",
    "\n",
    "for cell_type in cell_types:\n",
    "    output_file = f'{joined_bin_mat_path}{cell_type}_{n_permutations}_permutations_for_traits_bin_threshold_{threshold_for_filename}_matrix_joined.csv'\n",
    "    \n",
    "    if not os.path.isfile(output_file):\n",
    "        # 读取已生成的二值化矩阵\n",
    "        binarised_matrix = pd.read_csv(\n",
    "            f'{bin_mat_path}{cell_type}_{n_permutations}_permutations_bin_threshold_{threshold_for_filename}_matrix.csv'\n",
    "        )\n",
    "        \n",
    "        # 清理并设置索引\n",
    "        binarised_matrix.set_index('peak', inplace=True)  # 确保索引是唯一的 peak 列\n",
    "        \n",
    "        # 添加 SNP 是否在 peaks 中的列（假设 all_peaks 是另一个 DataFrame）\n",
    "        # 方法一：指定后缀\n",
    "        binarised_matrix = binarised_matrix.join(\n",
    "            all_peaks, \n",
    "            lsuffix=\"_right\"\n",
    "        )\n",
    "        \n",
    "        # 保存到新目录\n",
    "        binarised_matrix.to_csv(output_file)\n",
    "    else:\n",
    "        print(f'NOT generating joined binarised matrix for {cell_type} since it already exists')\n",
    "\n",
    "print('finished')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9a6138e0-a4c7-4814-a80d-d331d786b67a",
   "metadata": {},
   "source": [
    "### 对于每个性状和细胞状态，计算该性状相关单核苷酸多态性（SNP）落在该细胞状态开放峰内的比例（SNP 比例）。对于每个随机排列也计算此 SNP 比例。然后可以计算 P 值，即随机 SNP 比例超过或等于实际 SNP 比例的次数所占的比例。最后，使用 Benjamini-Hochberg 方法对这些 P 值进行多重检验校正"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "140486d5-1fb2-4b0e-ae97-04c0960adae4",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T01:46:59.756191Z",
     "iopub.status.busy": "2025-06-10T01:46:59.755728Z",
     "iopub.status.idle": "2025-06-10T02:04:45.852597Z",
     "shell.execute_reply": "2025-06-10T02:04:45.851857Z",
     "shell.execute_reply.started": "2025-06-10T01:46:59.756162Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "...evaluating 19 traits, across 8 cell types...\n",
      "...================================================================...\n",
      "...09:46:59: 8 of 8 cell types remaining. Reading binarised matrix for Neurons...\n",
      "...================================================================...\n",
      "...================================================================...\n",
      "...09:49:31: 7 of 8 cell types remaining. Reading binarised matrix for Macrophage...\n",
      "...================================================================...\n",
      "...================================================================...\n",
      "...09:51:32: 6 of 8 cell types remaining. Reading binarised matrix for Endothelial_cells...\n",
      "...================================================================...\n",
      "...================================================================...\n",
      "...09:54:00: 5 of 8 cell types remaining. Reading binarised matrix for T_cells...\n",
      "...================================================================...\n",
      "...================================================================...\n",
      "...09:56:07: 4 of 8 cell types remaining. Reading binarised matrix for Smooth_muscle_cells...\n",
      "...================================================================...\n",
      "...================================================================...\n",
      "...09:58:15: 3 of 8 cell types remaining. Reading binarised matrix for Keratinocytes...\n",
      "...================================================================...\n",
      "...================================================================...\n",
      "...10:00:35: 2 of 8 cell types remaining. Reading binarised matrix for DC...\n",
      "...================================================================...\n",
      "...================================================================...\n",
      "...10:02:40: 1 of 8 cell types remaining. Reading binarised matrix for B_cell...\n",
      "...================================================================...\n",
      "...================================================================...\n",
      "...10:04:45:FINSIHED\n",
      "...================================================================...\n",
      "CPU times: user 9min 9s, sys: 26.8 s, total: 9min 36s\n",
      "Wall time: 17min 46s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "import logging\n",
    "\n",
    "# Set up logging\n",
    "logging.basicConfig(level=logging.ERROR)\n",
    "\n",
    "\n",
    "\n",
    "# Find the proportion of all peaks which are open in this celltype\n",
    "enrichment_output_path=f'{output_path}enrichment_output/'\n",
    "os.makedirs(enrichment_output_path,\n",
    "           exist_ok=True) # makes the directory\n",
    "\n",
    "list_of_output_dfs=[]\n",
    "\n",
    "#now = datetime.now()\n",
    "#current_time = now.strftime(\"%H:%M:%S\")\n",
    "#print(f'...================================================================...') \n",
    "#print(f'...{current_time}:STARTING')\n",
    "#print(f'...================================================================...') \n",
    "\n",
    "# make some empty lists\n",
    "proportion_of_SNPs_found_in_celltype_specific_open_peaks=[]\n",
    "proportion_of_all_open_peaks_found_in_this_celltype=[]\n",
    "\n",
    "n_times_proportions_of_SNPs_in_permuted_open_peaks_greater_than_observed_proportion=[]\n",
    "mean_proportions_of_SNPs_in_open_peaks=[]\n",
    "p_values=[]\n",
    "efo_term_list=[]\n",
    "cell_type_list=[]\n",
    "n_SNPs_list=[]\n",
    "\n",
    "cell_types_done=[]\n",
    "n_cell_types_total=len(cell_types)\n",
    "\n",
    "permutations=range(n_permutations)\n",
    "\n",
    "print('...evaluating '+str(len(efo_terms))+' traits, across '+str(len(cell_types))+' cell types...')\n",
    "\n",
    "for cell_type in cell_types:\n",
    "    \n",
    "    try:\n",
    "    \n",
    "        cell_types_done.append(cell_type)\n",
    "        n_cell_types_done=len(cell_types_done)\n",
    "        n_cell_types_remaining=n_cell_types_total-n_cell_types_done\n",
    "\n",
    "        now = datetime.now()\n",
    "        current_time = now.strftime(\"%H:%M:%S\")\n",
    "        print(f'...================================================================...')    \n",
    "        print(f'...{current_time}: {n_cell_types_remaining+1} of {n_cell_types_total} cell types remaining. Reading binarised matrix for {cell_type}...')\n",
    "        print(f'...================================================================...') \n",
    "\n",
    "        cell_bin_mat=pd.read_csv(f'{joined_bin_mat_path}{cell_type}_{n_permutations}_permutations_for_traits_bin_threshold_{threshold_for_filename}_matrix_joined.csv',index_col='peak')\n",
    "\n",
    "        prop_bins_in_this_cell_type=(len(cell_bin_mat[cell_bin_mat[f'{cell_type}_binarised_real']==1]))/len(cell_bin_mat)\n",
    "\n",
    "\n",
    "        for efo_term in efo_terms:\n",
    "\n",
    "            # grab some metadata\n",
    "            n_SNPs=SNP_md.loc[efo_term]['n_SNPs']\n",
    "\n",
    "            # add columns which won't change until we run a new cell_type\n",
    "            proportion_of_all_open_peaks_found_in_this_celltype.append(prop_bins_in_this_cell_type)\n",
    "            cell_type_list.append(cell_type)\n",
    "\n",
    "            # add columns which won't change until we run a new efo_id\n",
    "            n_SNPs_list.append(n_SNPs)\n",
    "            efo_term_list.append(efo_term)\n",
    "\n",
    "            # subset to just open regions for this cell type\n",
    "            # find the proportion of SNPs for this trait that lie within this cell types open peaks\n",
    "            observed_proportion=(cell_bin_mat[efo_term][cell_bin_mat[f'{cell_type}_binarised_real']==1].sum())/(cell_bin_mat[efo_term].sum())\n",
    "\n",
    "            proportion_of_SNPs_found_in_celltype_specific_open_peaks.append(observed_proportion)\n",
    "\n",
    "            proportion_of_SNPs_found_in_permutations_of_celltype_specific_open_peaks=[]\n",
    "\n",
    "            for permutation in permutations:\n",
    "                proportion_of_SNPs_found_in_permutations_of_celltype_specific_open_peaks.append(cell_bin_mat[efo_term][cell_bin_mat[f'{cell_type}_binarised_permutation_{permutation}']==1].sum()/cell_bin_mat[efo_term].sum())\n",
    "\n",
    "            proportions_of_SNPs_in_permuted_open_peaks_greater_than_observed_proportion = [i for i in proportion_of_SNPs_found_in_permutations_of_celltype_specific_open_peaks if i >= observed_proportion]\n",
    "\n",
    "            n_times_proportions_of_SNPs_in_permuted_open_peaks_greater_than_observed_proportion.append(len(proportions_of_SNPs_in_permuted_open_peaks_greater_than_observed_proportion))\n",
    "\n",
    "            p_values.append(len(proportions_of_SNPs_in_permuted_open_peaks_greater_than_observed_proportion)/len(permutations)) # p val is simply the proportion of null hypotheses 'observations' greater than the actual observed proportion\n",
    "\n",
    "            mean_proportions_of_SNPs_in_open_peaks.append(sum(proportion_of_SNPs_found_in_permutations_of_celltype_specific_open_peaks)/len(proportion_of_SNPs_found_in_permutations_of_celltype_specific_open_peaks))\n",
    "\n",
    "            # Plot histograms for each cell type\n",
    "    #        plt.rcParams[\"figure.figsize\"] = (20,10)\n",
    "    #        plt.rcParams[\"figure.dpi\"] = 300\n",
    "\n",
    "    #        plt.hist(proportion_of_SNPs_found_in_permutations_of_celltype_specific_open_peaks,\n",
    "    #                 bins=100,color='red',\n",
    "    #                 range=(0,1),\n",
    "    #                 histtype='stepfilled',edgecolor='none')\n",
    "    #        plt.axvline(x=observed_proportion, color='blue', linestyle='--')\n",
    "    #        plt.legend(['null: proportion of SNPs falling in randomly shuffled OC regions','observed: proportion of SNPs falling cell-type specific OC regions'])\n",
    "    #        plt.title('cell type: '+cell_type+', trait: '+efo_id+', term: '+efo_term+', threshold for binarisation: '+threshold_for_filename)\n",
    "    #        plt.savefig(f'{output_path}{efo_id}_{efo_term}_{cell_type}_{threshold_for_filename}_SNP_enrichment.png')\n",
    "    #        plt.clf() #clears the current plot\n",
    "\n",
    "    \n",
    "    except KeyError as e:\n",
    "        # Log the error\n",
    "        logging.error(e)\n",
    "        print(cell_type)\n",
    "\n",
    "    # edited so that the file is written incrementally\n",
    "        \n",
    "    output_dict={\n",
    "        'cell_type':cell_type_list,\n",
    "        'proportion_of_all_open_peaks_found_in_this_celltype':proportion_of_all_open_peaks_found_in_this_celltype,\n",
    "        'proportion_of_SNPs_found_in_celltype_specific_open_peaks':proportion_of_SNPs_found_in_celltype_specific_open_peaks,\n",
    "        'mean_proportions_of_SNPs_in_open_peaks':mean_proportions_of_SNPs_in_open_peaks,\n",
    "        'n_times_proportions_of_SNPs_in_permuted_open_peaks_greater_than_observed_proportion':n_times_proportions_of_SNPs_in_permuted_open_peaks_greater_than_observed_proportion,\n",
    "        'p_value':p_values,\n",
    "        'n_SNPs':n_SNPs_list,\n",
    "        'efo_term':efo_term_list}\n",
    "\n",
    "    output_df=pd.DataFrame(output_dict)\n",
    "\n",
    "    list_of_output_dfs.append(output_df)\n",
    "    combined_output_df=pd.concat(list_of_output_dfs)\n",
    "    combined_output_df=combined_output_df.sort_values(by=['efo_term'])\n",
    "    combined_output_df=combined_output_df.set_index('cell_type')\n",
    "    combined_output_df.to_csv(f'{enrichment_output_path}{threshold_for_filename}_{window_size_for_filename}_SNPs_in_LD_all_traits_summary.csv')\n",
    "\n",
    "now = datetime.now()\n",
    "current_time = now.strftime(\"%H:%M:%S\")\n",
    "print(f'...================================================================...')    \n",
    "print(f'...{current_time}:FINSIHED')\n",
    "print(f'...================================================================...')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "d65c27d8-b7b4-4a6b-a051-58c7a7b40c48",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T02:09:24.597565Z",
     "iopub.status.busy": "2025-06-10T02:09:24.597007Z",
     "iopub.status.idle": "2025-06-10T02:09:24.602396Z",
     "shell.execute_reply": "2025-06-10T02:09:24.601794Z",
     "shell.execute_reply.started": "2025-06-10T02:09:24.597534Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.3010299956639813"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "neglog10_pval_sig_threshold=np.negative(np.log10(pval_sig_threshold))\n",
    "neglog10_pval_sig_threshold"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ac3fb4cd-e08f-4f10-a80a-b6beab3e75d8",
   "metadata": {},
   "source": [
    "## 富集结果可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "832c196f-7f1a-447e-8451-fcc327114ac9",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T02:09:27.413333Z",
     "iopub.status.busy": "2025-06-10T02:09:27.412696Z",
     "iopub.status.idle": "2025-06-10T02:09:27.535771Z",
     "shell.execute_reply": "2025-06-10T02:09:27.535132Z",
     "shell.execute_reply.started": "2025-06-10T02:09:27.413306Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>cell_type</th>\n",
       "      <th>proportion_of_all_open_peaks_found_in_this_celltype</th>\n",
       "      <th>proportion_of_SNPs_found_in_celltype_specific_open_peaks</th>\n",
       "      <th>mean_proportions_of_SNPs_in_open_peaks</th>\n",
       "      <th>n_times_proportions_of_SNPs_in_permuted_open_peaks_greater_than_observed_proportion</th>\n",
       "      <th>p_value</th>\n",
       "      <th>n_SNPs</th>\n",
       "      <th>efo_term</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Neurons</td>\n",
       "      <td>0.075689</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.068429</td>\n",
       "      <td>1000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>118</td>\n",
       "      <td>azoospermia</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Neurons</td>\n",
       "      <td>0.075689</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.068429</td>\n",
       "      <td>1000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>118</td>\n",
       "      <td>azoospermia</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Keratinocytes</td>\n",
       "      <td>0.095275</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.092000</td>\n",
       "      <td>1000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>118</td>\n",
       "      <td>azoospermia</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Smooth_muscle_cells</td>\n",
       "      <td>0.061617</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.060429</td>\n",
       "      <td>1000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>118</td>\n",
       "      <td>azoospermia</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>T_cells</td>\n",
       "      <td>0.038198</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.036643</td>\n",
       "      <td>1000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>118</td>\n",
       "      <td>azoospermia</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             cell_type  proportion_of_all_open_peaks_found_in_this_celltype  \\\n",
       "0              Neurons                                           0.075689     \n",
       "1              Neurons                                           0.075689     \n",
       "2        Keratinocytes                                           0.095275     \n",
       "3  Smooth_muscle_cells                                           0.061617     \n",
       "4              T_cells                                           0.038198     \n",
       "\n",
       "   proportion_of_SNPs_found_in_celltype_specific_open_peaks  \\\n",
       "0                                                0.0          \n",
       "1                                                0.0          \n",
       "2                                                0.0          \n",
       "3                                                0.0          \n",
       "4                                                0.0          \n",
       "\n",
       "   mean_proportions_of_SNPs_in_open_peaks  \\\n",
       "0                                0.068429   \n",
       "1                                0.068429   \n",
       "2                                0.092000   \n",
       "3                                0.060429   \n",
       "4                                0.036643   \n",
       "\n",
       "   n_times_proportions_of_SNPs_in_permuted_open_peaks_greater_than_observed_proportion  \\\n",
       "0                                               1000                                     \n",
       "1                                               1000                                     \n",
       "2                                               1000                                     \n",
       "3                                               1000                                     \n",
       "4                                               1000                                     \n",
       "\n",
       "   p_value  n_SNPs     efo_term  \n",
       "0      1.0     118  azoospermia  \n",
       "1      1.0     118  azoospermia  \n",
       "2      1.0     118  azoospermia  \n",
       "3      1.0     118  azoospermia  \n",
       "4      1.0     118  azoospermia  "
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#combined_output_df=pd.read_csv(f'{output_path}{threshold_for_filename}_{window_size_for_filename}_SNPs_in_LD{LD_threshold_for_filename}_all_traits_summary.csv',index_col='cell_type')\n",
    "combined_output_file=os.path.join(peaks_path, \"celltype_by_peaks.csv\")\n",
    "combined_output_df=pd.read_csv(\"/PROJ2/FLOAT/advanced-analysis/Seek_module_dev/ATAC_SNPenrichment/demo/new_output/enrichment_output/0p05_peak_width_500_SNPs_in_LD_all_traits_summary.csv\")\n",
    "combined_output_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "542af461-af5a-4fae-a1a2-5b36309f798c",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T02:09:28.630398Z",
     "iopub.status.busy": "2025-06-10T02:09:28.629850Z",
     "iopub.status.idle": "2025-06-10T02:09:28.641348Z",
     "shell.execute_reply": "2025-06-10T02:09:28.640651Z",
     "shell.execute_reply.started": "2025-06-10T02:09:28.630371Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>cell_type</th>\n",
       "      <th>proportion_of_all_open_peaks_found_in_this_celltype</th>\n",
       "      <th>proportion_of_SNPs_found_in_celltype_specific_open_peaks</th>\n",
       "      <th>mean_proportions_of_SNPs_in_open_peaks</th>\n",
       "      <th>n_times_proportions_of_SNPs_in_permuted_open_peaks_greater_than_observed_proportion</th>\n",
       "      <th>p_value</th>\n",
       "      <th>n_SNPs</th>\n",
       "      <th>efo_term</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Neurons</td>\n",
       "      <td>0.075689</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.068429</td>\n",
       "      <td>1000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>118</td>\n",
       "      <td>azoospermia</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Neurons</td>\n",
       "      <td>0.075689</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.068429</td>\n",
       "      <td>1000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>118</td>\n",
       "      <td>azoospermia</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Keratinocytes</td>\n",
       "      <td>0.095275</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.092000</td>\n",
       "      <td>1000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>118</td>\n",
       "      <td>azoospermia</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Smooth_muscle_cells</td>\n",
       "      <td>0.061617</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.060429</td>\n",
       "      <td>1000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>118</td>\n",
       "      <td>azoospermia</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>T_cells</td>\n",
       "      <td>0.038198</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.036643</td>\n",
       "      <td>1000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>118</td>\n",
       "      <td>azoospermia</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             cell_type  proportion_of_all_open_peaks_found_in_this_celltype  \\\n",
       "0              Neurons                                           0.075689     \n",
       "1              Neurons                                           0.075689     \n",
       "2        Keratinocytes                                           0.095275     \n",
       "3  Smooth_muscle_cells                                           0.061617     \n",
       "4              T_cells                                           0.038198     \n",
       "\n",
       "   proportion_of_SNPs_found_in_celltype_specific_open_peaks  \\\n",
       "0                                                0.0          \n",
       "1                                                0.0          \n",
       "2                                                0.0          \n",
       "3                                                0.0          \n",
       "4                                                0.0          \n",
       "\n",
       "   mean_proportions_of_SNPs_in_open_peaks  \\\n",
       "0                                0.068429   \n",
       "1                                0.068429   \n",
       "2                                0.092000   \n",
       "3                                0.060429   \n",
       "4                                0.036643   \n",
       "\n",
       "   n_times_proportions_of_SNPs_in_permuted_open_peaks_greater_than_observed_proportion  \\\n",
       "0                                               1000                                     \n",
       "1                                               1000                                     \n",
       "2                                               1000                                     \n",
       "3                                               1000                                     \n",
       "4                                               1000                                     \n",
       "\n",
       "   p_value  n_SNPs     efo_term  \n",
       "0      1.0     118  azoospermia  \n",
       "1      1.0     118  azoospermia  \n",
       "2      1.0     118  azoospermia  \n",
       "3      1.0     118  azoospermia  \n",
       "4      1.0     118  azoospermia  "
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "combined_output_df['efo_term']=combined_output_df['efo_term'].astype(str)#+\"_\"+combined_output_df['n_SNPs'].astype(str) # Add the n_SNPs - useful for later inspection\n",
    "combined_output_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "ad37e946-82aa-4663-8673-e779f4d838e1",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T02:09:29.383035Z",
     "iopub.status.busy": "2025-06-10T02:09:29.382395Z",
     "iopub.status.idle": "2025-06-10T02:09:32.778238Z",
     "shell.execute_reply": "2025-06-10T02:09:32.777528Z",
     "shell.execute_reply.started": "2025-06-10T02:09:29.383006Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Axes:"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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4wlru/baa2M5RSUlJfHidwB1dgZ1dgZ1dg61dkYs6tyxY8cG9WuSN8m2bdtW/fr1U0FBQVh7QUGBsrKymmJKAADAIk12i2fmzJl68MEH1b9/f91xxx3685//rP/973965JFHmmpKAADAEk0WUMaPH68TJ07ot7/9rUpKSpSZmanNmzcrIyOjqaYk6cLtpAULFtS5pYToos7OoM7OoM7OodbOsKHOLmMa8lkfAAAA5/BdPAAAwDoEFAAAYB0CCgAAsA4BBQAAWKdVBpSVK1eqR48eateunfr166edO3detv/27dvVr18/tWvXTj179tSf/vQnh2bavEVS55dfflnZ2dnq2rWrkpKSdMcdd2jr1q0Ozrb5ivT1XOvtt99WfHy8vvOd78R2gi1EpHUOBAKaP3++MjIy5PF4dOONN+ovf/mLQ7NtviKt84svvqi+ffsqISFBqampeuihh1rEdw7F0o4dOzR69GilpaXJ5XLplVdeueJzmuQ6GJUv12lGNmzYYNxut3nuuefMwYMHzaOPPmo6dOhgjhw5Um//Tz/91CQkJJhHH33UHDx40Dz33HPG7Xabl156yeGZNy+R1vnRRx81v//9781//vMf89FHH5l58+YZt9tt/vvf/zo88+Yl0jrXOnXqlOnZs6fx+Xymb9++zky2GWtMnceMGWMGDBhgCgoKTHFxsfn3v/9d5/vHEC7SOu/cudO0adPG/PGPfzSffvqp2blzp7n11lvNfffd5/DMm5fNmzeb+fPnm7///e9Gktm0adNl+zfVdbDVBZTbb7/dPPLII2FtN910k5k7d269/efMmWNuuummsLYpU6aYgQMHxmyOLUGkda7PLbfcYhYuXBjtqbUoja3z+PHjza9//WuzYMECAkoDRFrnN954w3Ts2NGcOHHCiem1GJHW+amnnjI9e/YMa3v66adN9+7dYzbHlqYhAaWproOt6hZPdXW1ioqK5PP5wtp9Pp8KCwvrfc6//vWvOv1HjBih3bt3KxgMxmyuzVlj6nyxmpoaVVZWKjk5ORZTbBEaW+c1a9bok08+0YIFC2I9xRahMXV+7bXX1L9/fy1ZskTXXXedevfurdmzZ+vs2bNOTLlZakyds7KydOzYMW3evFnGGH3xxRd66aWXdM899zgx5Vajqa6DTfptxk47fvy4zp8/X+cLCVNSUup8cWGt0tLSevufO3dOx48fV2pqaszm21w1ps4X+8Mf/qAzZ85o3LhxsZhii9CYOh86dEhz587Vzp07FR/fqv7zb7TG1PnTTz/Vrl271K5dO23atEnHjx/X1KlT9eWXX/I+lEtoTJ2zsrL04osvavz48frqq6907tw5jRkzRrm5uU5MudVoqutgq1pBqeVyucL2jTF12q7Uv752hIu0zrX++te/yu/3a+PGjerWrVusptdiNLTO58+f14QJE7Rw4UL17t3bqem1GJG8nmtqauRyufTiiy/q9ttv1w9/+EMtXbpUa9euZRXlCiKp88GDB/WLX/xCv/nNb1RUVKQtW7aouLiY73SLgaa4DraqX6G6dOmiuLi4Omm8rKysTjqs5fV66+0fHx+vzp07x2yuzVlj6lxr48aNmjx5sv72t79p+PDhsZxmsxdpnSsrK7V7927t2bNH06dPl3ThQmqMUXx8vPLz83XXXXc5MvfmpDGv59TUVF133XVhXyt/8803yxijY8eOqVevXjGdc3PUmDovXrxYgwYN0q9+9StJ0re//W116NBBd955p5544glWuKOkqa6DrWoFpW3bturXr58KCgrC2gsKCpSVlVXvc+644446/fPz89W/f3+53e6YzbU5a0ydpQsrJ5MmTVJeXh73kBsg0jonJSVp37592rt3b2h75JFH9K1vfUt79+7VgAEDnJp6s9KY1/OgQYP0+eef6/Tp06G2jz76SG3atFH37t1jOt/mqjF1rqqqUps24ZexuLg4SV//ho+r12TXwZi+BddCtR9jW716tTl48KDJyckxHTp0MIcPHzbGGDN37lzz4IMPhvrXfrzql7/8pTl48KBZvXo1HzNugEjrnJeXZ+Lj480zzzxjSkpKQtupU6ea6hSahUjrfDE+xdMwkda5srLSdO/e3fzoRz8yBw4cMNu3bze9evUyDz/8cFOdQrMQaZ3XrFlj4uPjzcqVK80nn3xidu3aZfr3729uv/32pjqFZqGystLs2bPH7Nmzx0gyS5cuNXv27Al9nNuW62CrCyjGGPPMM8+YjIwM07ZtW/O9733PbN++PfTYxIkTzeDBg8P6v/XWW+a73/2uadu2rbnhhhvMqlWrHJ5x8xRJnQcPHmwk1dkmTpzo/MSbmUhfz99EQGm4SOv8/vvvm+HDh5v27dub7t27m5kzZ5qqqiqHZ938RFrnp59+2txyyy2mffv2JjU11fz0pz81x44dc3jWzcs///nPy/7/1pbroMsY1sEAAIBdWtV7UAAAQPNAQAEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArENAAQAA1iGgAAAA6xBQAACAdf4fIQH1w/ji8QwAAAAASUVORK5CYII=",
      "text/plain": [
       "Figure size 640x480 with 1 Axes"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "combined_output_df.proportion_of_SNPs_found_in_celltype_specific_open_peaks.hist(bins=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "ecc09458-6627-44b1-be5f-87e5e0a08c55",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T02:09:34.383174Z",
     "iopub.status.busy": "2025-06-10T02:09:34.382614Z",
     "iopub.status.idle": "2025-06-10T02:09:34.392700Z",
     "shell.execute_reply": "2025-06-10T02:09:34.391969Z",
     "shell.execute_reply.started": "2025-06-10T02:09:34.383144Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>p_value</th>\n",
       "      <th>cell_type</th>\n",
       "      <th>efo_term</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.0</td>\n",
       "      <td>Neurons</td>\n",
       "      <td>azoospermia</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.0</td>\n",
       "      <td>Neurons</td>\n",
       "      <td>azoospermia</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.0</td>\n",
       "      <td>Keratinocytes</td>\n",
       "      <td>azoospermia</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.0</td>\n",
       "      <td>Smooth_muscle_cells</td>\n",
       "      <td>azoospermia</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.0</td>\n",
       "      <td>T_cells</td>\n",
       "      <td>azoospermia</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   p_value            cell_type     efo_term\n",
       "0      1.0              Neurons  azoospermia\n",
       "1      1.0              Neurons  azoospermia\n",
       "2      1.0        Keratinocytes  azoospermia\n",
       "3      1.0  Smooth_muscle_cells  azoospermia\n",
       "4      1.0              T_cells  azoospermia"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#pivot the table to prepare for heatmap\n",
    "df=combined_output_df[['p_value',\"cell_type\",'efo_term']]\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "b2ff0e03-26a5-40b4-baab-ce19d33e4603",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T02:09:36.382588Z",
     "iopub.status.busy": "2025-06-10T02:09:36.381940Z",
     "iopub.status.idle": "2025-06-10T02:09:36.824482Z",
     "shell.execute_reply": "2025-06-10T02:09:36.823805Z",
     "shell.execute_reply.started": "2025-06-10T02:09:36.382559Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>efo_term</th>\n",
       "      <th>azoospermia</th>\n",
       "      <th>cardiomyopathy</th>\n",
       "      <th>chronic.lymphocytic.leukemia</th>\n",
       "      <th>chronic.myelogenous.leukemia</th>\n",
       "      <th>chronic.pancreatitis</th>\n",
       "      <th>diffuse.gastric.adenocarcinoma</th>\n",
       "      <th>ewing.sarcoma</th>\n",
       "      <th>gastric.adenocarcinoma</th>\n",
       "      <th>gastritis</th>\n",
       "      <th>head.and.neck.squamous.cell.carcinoma</th>\n",
       "      <th>hyperplasia</th>\n",
       "      <th>leukemia</th>\n",
       "      <th>myelodysplastic.syndrome</th>\n",
       "      <th>neoplasm</th>\n",
       "      <th>neoplasm.of.mature.bcells</th>\n",
       "      <th>pancreatitis</th>\n",
       "      <th>papillary.renal.cell.carcinoma</th>\n",
       "      <th>polyp</th>\n",
       "      <th>portal.hypertension</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>cell_type</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>B_cell</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.156</td>\n",
       "      <td>0.000</td>\n",
       "      <td>1.00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.215</td>\n",
       "      <td>0.058</td>\n",
       "      <td>0.215</td>\n",
       "      <td>0.302</td>\n",
       "      <td>0.279</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.099</td>\n",
       "      <td>0.099</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.001</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.249</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>DC</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.011</td>\n",
       "      <td>0.003</td>\n",
       "      <td>1.00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.205</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.205</td>\n",
       "      <td>0.266</td>\n",
       "      <td>0.013</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.003</td>\n",
       "      <td>0.123</td>\n",
       "      <td>0.072</td>\n",
       "      <td>0.072</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.002</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.247</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Endothelial_cells</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.008</td>\n",
       "      <td>0.000</td>\n",
       "      <td>1.00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.392</td>\n",
       "      <td>0.066</td>\n",
       "      <td>0.392</td>\n",
       "      <td>0.475</td>\n",
       "      <td>0.203</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.254</td>\n",
       "      <td>0.323</td>\n",
       "      <td>0.323</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.004</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.112</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Keratinocytes</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.025</td>\n",
       "      <td>0.002</td>\n",
       "      <td>1.00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.028</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.508</td>\n",
       "      <td>0.172</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.002</td>\n",
       "      <td>0.260</td>\n",
       "      <td>0.301</td>\n",
       "      <td>0.301</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.102</td>\n",
       "      <td>0.103</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Macrophage</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.190</td>\n",
       "      <td>0.000</td>\n",
       "      <td>1.00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.252</td>\n",
       "      <td>0.072</td>\n",
       "      <td>0.252</td>\n",
       "      <td>0.311</td>\n",
       "      <td>0.003</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.106</td>\n",
       "      <td>0.106</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.277</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Neurons</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.144</td>\n",
       "      <td>0.004</td>\n",
       "      <td>0.19</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.291</td>\n",
       "      <td>0.170</td>\n",
       "      <td>0.291</td>\n",
       "      <td>0.438</td>\n",
       "      <td>0.139</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.004</td>\n",
       "      <td>0.210</td>\n",
       "      <td>0.321</td>\n",
       "      <td>0.321</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.087</td>\n",
       "      <td>0.068</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Smooth_muscle_cells</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.105</td>\n",
       "      <td>0.002</td>\n",
       "      <td>1.00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.254</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.376</td>\n",
       "      <td>0.363</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.002</td>\n",
       "      <td>0.179</td>\n",
       "      <td>0.232</td>\n",
       "      <td>0.232</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.054</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>T_cells</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.102</td>\n",
       "      <td>0.005</td>\n",
       "      <td>1.00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.229</td>\n",
       "      <td>0.237</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.005</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.133</td>\n",
       "      <td>0.133</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.184</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "efo_term             azoospermia  cardiomyopathy  \\\n",
       "cell_type                                          \n",
       "B_cell                       1.0           0.156   \n",
       "DC                           1.0           0.011   \n",
       "Endothelial_cells            1.0           0.008   \n",
       "Keratinocytes                1.0           0.025   \n",
       "Macrophage                   1.0           0.190   \n",
       "Neurons                      1.0           0.144   \n",
       "Smooth_muscle_cells          1.0           0.105   \n",
       "T_cells                      1.0           0.102   \n",
       "\n",
       "efo_term             chronic.lymphocytic.leukemia  \\\n",
       "cell_type                                           \n",
       "B_cell                                      0.000   \n",
       "DC                                          0.003   \n",
       "Endothelial_cells                           0.000   \n",
       "Keratinocytes                               0.002   \n",
       "Macrophage                                  0.000   \n",
       "Neurons                                     0.004   \n",
       "Smooth_muscle_cells                         0.002   \n",
       "T_cells                                     0.005   \n",
       "\n",
       "efo_term             chronic.myelogenous.leukemia  chronic.pancreatitis  \\\n",
       "cell_type                                                                 \n",
       "B_cell                                       1.00                   1.0   \n",
       "DC                                           1.00                   1.0   \n",
       "Endothelial_cells                            1.00                   1.0   \n",
       "Keratinocytes                                1.00                   1.0   \n",
       "Macrophage                                   1.00                   1.0   \n",
       "Neurons                                      0.19                   1.0   \n",
       "Smooth_muscle_cells                          1.00                   1.0   \n",
       "T_cells                                      1.00                   1.0   \n",
       "\n",
       "efo_term             diffuse.gastric.adenocarcinoma  ewing.sarcoma  \\\n",
       "cell_type                                                            \n",
       "B_cell                                        0.215          0.058   \n",
       "DC                                            0.205          1.000   \n",
       "Endothelial_cells                             0.392          0.066   \n",
       "Keratinocytes                                 1.000          0.028   \n",
       "Macrophage                                    0.252          0.072   \n",
       "Neurons                                       0.291          0.170   \n",
       "Smooth_muscle_cells                           1.000          0.254   \n",
       "T_cells                                       1.000          1.000   \n",
       "\n",
       "efo_term             gastric.adenocarcinoma  gastritis  \\\n",
       "cell_type                                                \n",
       "B_cell                                0.215      0.302   \n",
       "DC                                    0.205      0.266   \n",
       "Endothelial_cells                     0.392      0.475   \n",
       "Keratinocytes                         1.000      0.508   \n",
       "Macrophage                            0.252      0.311   \n",
       "Neurons                               0.291      0.438   \n",
       "Smooth_muscle_cells                   1.000      0.376   \n",
       "T_cells                               1.000      0.229   \n",
       "\n",
       "efo_term             head.and.neck.squamous.cell.carcinoma  hyperplasia  \\\n",
       "cell_type                                                                 \n",
       "B_cell                                               0.279          1.0   \n",
       "DC                                                   0.013          1.0   \n",
       "Endothelial_cells                                    0.203          1.0   \n",
       "Keratinocytes                                        0.172          1.0   \n",
       "Macrophage                                           0.003          1.0   \n",
       "Neurons                                              0.139          1.0   \n",
       "Smooth_muscle_cells                                  0.363          1.0   \n",
       "T_cells                                              0.237          1.0   \n",
       "\n",
       "efo_term             leukemia  myelodysplastic.syndrome  neoplasm  \\\n",
       "cell_type                                                           \n",
       "B_cell                  0.000                     1.000     0.099   \n",
       "DC                      0.003                     0.123     0.072   \n",
       "Endothelial_cells       0.000                     0.254     0.323   \n",
       "Keratinocytes           0.002                     0.260     0.301   \n",
       "Macrophage              0.000                     1.000     0.106   \n",
       "Neurons                 0.004                     0.210     0.321   \n",
       "Smooth_muscle_cells     0.002                     0.179     0.232   \n",
       "T_cells                 0.005                     1.000     0.133   \n",
       "\n",
       "efo_term             neoplasm.of.mature.bcells  pancreatitis  \\\n",
       "cell_type                                                      \n",
       "B_cell                                   0.099           1.0   \n",
       "DC                                       0.072           1.0   \n",
       "Endothelial_cells                        0.323           1.0   \n",
       "Keratinocytes                            0.301           1.0   \n",
       "Macrophage                               0.106           1.0   \n",
       "Neurons                                  0.321           1.0   \n",
       "Smooth_muscle_cells                      0.232           1.0   \n",
       "T_cells                                  0.133           1.0   \n",
       "\n",
       "efo_term             papillary.renal.cell.carcinoma  polyp  \\\n",
       "cell_type                                                    \n",
       "B_cell                                        0.001  1.000   \n",
       "DC                                            0.002  1.000   \n",
       "Endothelial_cells                             0.004  1.000   \n",
       "Keratinocytes                                 0.000  0.102   \n",
       "Macrophage                                    0.000  1.000   \n",
       "Neurons                                       0.000  0.087   \n",
       "Smooth_muscle_cells                           0.000  1.000   \n",
       "T_cells                                       0.000  1.000   \n",
       "\n",
       "efo_term             portal.hypertension  \n",
       "cell_type                                 \n",
       "B_cell                             0.249  \n",
       "DC                                 0.247  \n",
       "Endothelial_cells                  0.112  \n",
       "Keratinocytes                      0.103  \n",
       "Macrophage                         0.277  \n",
       "Neurons                            0.068  \n",
       "Smooth_muscle_cells                0.054  \n",
       "T_cells                            0.184  "
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df=df.pivot_table(values='p_value',index='cell_type',columns='efo_term')\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "aae6a237-1130-414a-8783-d2ede1029e3c",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T02:09:39.431308Z",
     "iopub.status.busy": "2025-06-10T02:09:39.430873Z",
     "iopub.status.idle": "2025-06-10T02:09:39.437396Z",
     "shell.execute_reply": "2025-06-10T02:09:39.436688Z",
     "shell.execute_reply.started": "2025-06-10T02:09:39.431278Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(8, 19)\n",
      "(8, 15)\n"
     ]
    }
   ],
   "source": [
    "# drop columns where p value is all 1 (i.e. nothing at all significant)\n",
    "print(df.shape)\n",
    "df=df.loc[:, (df != 1).any(axis=0)]\n",
    "print(df.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "a427f00e-971e-4f4f-9418-c0b3c07c8871",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T02:09:40.720136Z",
     "iopub.status.busy": "2025-06-10T02:09:40.719579Z",
     "iopub.status.idle": "2025-06-10T02:09:40.725724Z",
     "shell.execute_reply": "2025-06-10T02:09:40.725009Z",
     "shell.execute_reply.started": "2025-06-10T02:09:40.720096Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(8, 15)\n",
      "(8, 15)\n"
     ]
    }
   ],
   "source": [
    "# drop columns where p value is all 0 (i.e. no open peaks)\n",
    "print(df.shape)\n",
    "df=df.loc[:, (df != 0).any(axis=0)]\n",
    "print(df.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "a76d4311-b3bf-4398-8796-4ea1cbdfb544",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T02:09:42.382245Z",
     "iopub.status.busy": "2025-06-10T02:09:42.381696Z",
     "iopub.status.idle": "2025-06-10T02:09:42.940211Z",
     "shell.execute_reply": "2025-06-10T02:09:42.939457Z",
     "shell.execute_reply.started": "2025-06-10T02:09:42.382218Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "Figure size 360x240 with 4 Axes"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.rcParams['figure.dpi'] = 100\n",
    "\n",
    "tmp=df.loc[:, (df > 0.05).any(axis=0)]\n",
    "tmp=tmp.loc[(tmp > 0.05).any(axis=1),:]\n",
    "\n",
    "g=sns.clustermap(tmp,\n",
    "               xticklabels=True,\n",
    "               yticklabels=True,\n",
    "               cmap='OrRd',\n",
    "               figsize=(tmp.shape[1]*0.3,tmp.shape[0]*0.3),\n",
    "#               annot=anno_df,\n",
    "               fmt = '',\n",
    "               dendrogram_ratio=0.05,\n",
    "               cbar_pos=(0.98,0.9,0.02,0.1)\n",
    "              )\n",
    "\n",
    "for a in g.ax_row_dendrogram.collections:\n",
    "    a.set_linewidth(1)\n",
    "\n",
    "for a in g.ax_col_dendrogram.collections:\n",
    "    a.set_linewidth(1)\n",
    "    \n",
    "ax = g.ax_heatmap\n",
    "ax.set_xlabel('GWAS traits')\n",
    "ax.set_ylabel('Cell types')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "77211ba8-25d7-4720-9727-21a96d763309",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T02:09:46.489751Z",
     "iopub.status.busy": "2025-06-10T02:09:46.489281Z",
     "iopub.status.idle": "2025-06-10T02:09:46.676217Z",
     "shell.execute_reply": "2025-06-10T02:09:46.675499Z",
     "shell.execute_reply.started": "2025-06-10T02:09:46.489723Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "原始数据描述:\n",
      "efo_term  cardiomyopathy  chronic.lymphocytic.leukemia  \\\n",
      "count           8.000000                      8.000000   \n",
      "mean            0.092625                      0.002000   \n",
      "std             0.070484                      0.001927   \n",
      "min             0.008000                      0.000000   \n",
      "25%             0.021500                      0.000000   \n",
      "50%             0.103500                      0.002000   \n",
      "75%             0.147000                      0.003250   \n",
      "max             0.190000                      0.005000   \n",
      "\n",
      "efo_term  chronic.myelogenous.leukemia  diffuse.gastric.adenocarcinoma  \\\n",
      "count                         8.000000                        8.000000   \n",
      "mean                          0.898750                        0.544375   \n",
      "std                           0.286378                        0.381603   \n",
      "min                           0.190000                        0.205000   \n",
      "25%                           1.000000                        0.242750   \n",
      "50%                           1.000000                        0.341500   \n",
      "75%                           1.000000                        1.000000   \n",
      "max                           1.000000                        1.000000   \n",
      "\n",
      "efo_term  ewing.sarcoma  gastric.adenocarcinoma  gastritis  \\\n",
      "count          8.000000                8.000000   8.000000   \n",
      "mean           0.331000                0.544375   0.363125   \n",
      "std            0.419288                0.381603   0.102227   \n",
      "min            0.028000                0.205000   0.229000   \n",
      "25%            0.064000                0.242750   0.293000   \n",
      "50%            0.121000                0.341500   0.343500   \n",
      "75%            0.440500                1.000000   0.447250   \n",
      "max            1.000000                1.000000   0.508000   \n",
      "\n",
      "efo_term  head.and.neck.squamous.cell.carcinoma  leukemia  \\\n",
      "count                                  8.000000  8.000000   \n",
      "mean                                   0.176125  0.002000   \n",
      "std                                    0.124161  0.001927   \n",
      "min                                    0.003000  0.000000   \n",
      "25%                                    0.107500  0.000000   \n",
      "50%                                    0.187500  0.002000   \n",
      "75%                                    0.247500  0.003250   \n",
      "max                                    0.363000  0.005000   \n",
      "\n",
      "efo_term  myelodysplastic.syndrome  neoplasm  neoplasm.of.mature.bcells  \\\n",
      "count                     8.000000  8.000000                   8.000000   \n",
      "mean                      0.503250  0.198375                   0.198375   \n",
      "std                       0.413574  0.107493                   0.107493   \n",
      "min                       0.123000  0.072000                   0.072000   \n",
      "25%                       0.202250  0.104250                   0.104250   \n",
      "50%                       0.257000  0.182500                   0.182500   \n",
      "75%                       1.000000  0.306000                   0.306000   \n",
      "max                       1.000000  0.323000                   0.323000   \n",
      "\n",
      "efo_term  papillary.renal.cell.carcinoma     polyp  portal.hypertension  \n",
      "count                           8.000000  8.000000             8.000000  \n",
      "mean                            0.000875  0.773625             0.161750  \n",
      "std                             0.001458  0.419184             0.088627  \n",
      "min                             0.000000  0.087000             0.054000  \n",
      "25%                             0.000000  0.775500             0.094250  \n",
      "50%                             0.000000  1.000000             0.148000  \n",
      "75%                             0.001250  1.000000             0.247500  \n",
      "max                             0.004000  1.000000             0.277000  \n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAGxCAYAAACXwjeMAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAK2dJREFUeJzt3XtcVXW+//H3VnADCuQFuaggFpp46aKJ0imoBEetpuN4plI7eLLzKM3SOh3LmAZ0GjzZRNZ4afJ4a4r0nCbNmcyki+aMWmp6bBSdpjCpRIIUUAkVvr8/+rHHHaiAwNpfej0fj/V4zF5r7b0/rJj2q7UXe7uMMUYAAACWauP0AAAAABeDmAEAAFYjZgAAgNWIGQAAYDViBgAAWI2YAQAAViNmAACA1YgZAABgNWIGAABYjZgBfNQ///M/KzAwUMeOHTvnPuPHj5e/v7+OHDlS78d1uVzKzMy8+AEbaOPGjXK5XJ6lXbt2CgsL07XXXqv09HR98cUXte6zfPlyuVwuHTx4sEHPlZWVpTVr1jToPnU9V3Jysvr379+gx7mQdevWnfP49+zZUxMnTmzS5wN+DIgZwEdNmjRJ3333nXJycurcXlpaqtWrV+vmm29WeHh4C0/XeFlZWdq6davef/99LVmyRMnJyVq6dKn69u2rV155xWvf0aNHa+vWrYqMjGzwczQ0Zhr7XA21bt06zZo1q85tq1ev1hNPPNGszw+0Rn5ODwCgbiNHjlRUVJSWLl2qKVOm1Nr+6quvqqKiQpMmTXJgusaLi4vT0KFDPbdvvfVW/cd//IeGDx+uiRMnauDAgRowYIAkKSwsTGFhYc06T0VFhQICAlrkuS7kqquucvT5AVtxZgbwUW3btlVaWpp27typTz75pNb2ZcuWKTIyUiNHjtQ333yjKVOmKD4+Xh06dFDXrl114403avPmzRd8nszMTLlcrlrrz/UWz6pVqzRs2DC1b99eHTp00IgRI7Rr165G/5yS1KlTJ/3ud7/TmTNn9Oyzz553hl27dunmm29W165d5Xa7FRUVpdGjR+vLL7+U9P3baCdOnNCKFSs8b2klJyd7Pd6GDRt09913KywsTEFBQaqsrDzvW1qbN2/W0KFDFRgYqG7duumJJ55QVVWVZ3vNW2gbN270ut/Bgwflcrm0fPlySdLEiRO1YMECz5w1S81z1vU206FDhzRhwgTPz9u3b18988wzqq6urvU8v/nNb5Sdna3Y2Fh16NBBw4YN07Zt2xrwTwKwEzED+LC7775bLpdLS5cu9Vq/b98+ffTRR0pLS1Pbtm317bffSpIyMjL05ptvatmyZerVq5eSk5NrvcBejKysLN15552Kj4/X//zP/+j3v/+9ysvLdd1112nfvn0X9djXXHONIiMj9cEHH5xznxMnTiglJUVHjhzRggULlJubq3nz5ik6Olrl5eWSpK1btyowMFCjRo3S1q1btXXrVi1cuNDrce6++275+/vr97//vV577TX5+/uf8zkLCwt1xx13aPz48XrjjTc0duxYPfnkk5o2bVqDf8YnnnhCY8eO9cxZs5zrra1vvvlGiYmJ2rBhg371q19p7dq1Gj58uB555BFNnTq11v5nH5NXXnlFJ06c0KhRo1RaWtrgWQGb8DYT4MMuu+wyXX/99Xr55Zc1d+5cz4tuTdzcfffdkqQ+ffp4vWBXVVVpxIgROnjwoJ5//nnPmYmLUVBQoIyMDE2dOlXPP/+8Z31KSori4uI0a9YsrVq16qKeIzo6Wnv27Dnn9v3796ukpERLlizRT3/6U8/6n//8557/PXToULVp00ZhYWFeb2ed7aabbtLvfve7es1UUlKiN954Q7feeqskKTU1VRUVFVq0aJFmzJih6Ojoej2OJF166aWe65vONdvZsrOz9dVXX+nDDz/UkCFDJEkjRoxQVVWVXnjhBU2fPl29e/f27B8cHKw//elPatu2rSQpKipKQ4YM0VtvvaU77rij3nMCtuHMDODjJk2apOLiYq1du1aSdObMGb388su67rrrFBcX59nvhRde0NVXX62AgAD5+fnJ399f7777rvLy8ppkjrfffltnzpzRv/7rv+rMmTOeJSAgQElJSU1yBsgYc97tl112mTp27KhHH31UL7zwQqPPBv3sZz+r977BwcGekKkxbtw4VVdXn/csUlN47733FB8f7wmZGhMnTpQxRu+9957X+tGjR3tCRpIGDhwoSXX+pRjQmhAzgI8bO3asQkNDtWzZMknf/zXMkSNHvC78zc7O1uTJk5WQkKA//OEP2rZtm7Zv366f/OQnqqioaJI5av78+5prrpG/v7/XsmrVKhUXF1/0cxw6dEhRUVHn3B4aGqpNmzbpyiuv1OOPP65+/fopKipKGRkZOn36dL2fpyF/sVTXX4pFRERI+v6sTXMqKSmpc9aaY/TD5+/cubPXbbfbLUlN9jsA+CreZgJ8XGBgoO68804tXrxYhw8f1tKlSxUcHKx/+Zd/8ezz8ssvKzk5WYsWLfK6b811JOcTEBAgSaqsrPS8+EmqFSddunSRJL322muKiYlp9M9zLh999JEKCwsv+NdZAwYM0MqVK2WM0Z49e7R8+XLNnj1bgYGBeuyxx+r1XHVd8HwudX2GT2FhoaR/xMPZx/BsFxt4nTt31uHDh2ut//rrryX9458J8GPHmRnAApMmTVJVVZWefvpprVu3TnfccYeCgoI8210ul1eISNKePXu0devWCz52z549Pfuf7Y9//KPX7REjRsjPz0+fffaZBg8eXOfSWN9++63uu+8++fv766GHHqrXfVwul6644go9++yzuuSSS/Txxx97trnd7iY7G1FeXu55i69GTk6O2rRpo+uvv17SuY/hD+9XM5tUv7MlN910k/bt2+f1s0nSSy+9JJfLpRtuuKHePwfQmnFmBrDA4MGDNXDgQM2bN0/GmFpnL26++Wb96le/UkZGhpKSknTgwAHNnj1bsbGxOnPmzHkfe9SoUerUqZMmTZqk2bNny8/PT8uXL1dBQYHXfj179tTs2bOVnp6uzz//XD/5yU/UsWNHHTlyRB999JHat29/zg+DO9unn36qbdu2qbq6WiUlJfrwww+1ZMkSlZWV6aWXXlK/fv3Oed8//elPWrhwoW677Tb16tVLxhi9/vrrOnbsmFJSUjz7DRgwQBs3btQf//hHRUZGKjg4WH369LngbHXp3LmzJk+erEOHDql3795at26dFi9erMmTJ3su/o2IiNDw4cM1Z84cdezYUTExMXr33Xf1+uuv13q8ms/QeeqppzRy5Ei1bdtWAwcOVLt27Wrt+9BDD+mll17S6NGjNXv2bMXExOjNN9/UwoULNXnyZK+Lf4EfNQPACs8995yRZOLj42ttq6ysNI888ojp1q2bCQgIMFdffbVZs2aNSUtLMzExMV77SjIZGRle6z766COTmJho2rdvb7p162YyMjLMf//3fxtJJj8/32vfNWvWmBtuuMGEhIQYt9ttYmJizNixY80777xz3vnff/99I8mz+Pn5mc6dO5thw4aZxx9/3Bw8eLDWfZYtW+Y1w/79+82dd95pLr30UhMYGGhCQ0PNkCFD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2ni/5LVt21bSP84c4OI59lrYrJcXW6zmz/6WLFli9u3bZ6ZPn27at29vDh48aIwx5rHHHjN33XWXZ/+aP0d76KGHzL59+8ySJUv40+x6auixzsnJMX5+fmbBggXm8OHDnuXYsWNO/QhWaOhx/iH+mql+Gnqcy8vLTffu3c3YsWPN3r17zaZNm0xcXJy55557nPoRrNDQ47xs2TLj5+dnFi5caD777DPz5z//2QwePNgMGTLEqR/BCuXl5WbXrl1m165dRpLJzs42u3bt8vwJvK+8FhIz57FgwQITExNj2rVrZ66++mqzadMmz7a0tDSTlJTktf/GjRvNVVddZdq1a2d69uxpFi1a1MIT26shxzopKclIqrWkpaW1/OCWaejv9NmImfpr6HHOy8szw4cPN4GBgaZ79+7m4YcfNidPnmzhqe3T0OP8/PPPm/j4eBMYGGgiIyPN+PHjzZdfftnCU9vl/fffP++/b33ltdBlDOfXAACAvbhmBgAAWI2YAQAAViNmAACA1YgZAABgNWIGAABYjZgBAABWI2YAAIDViBkAAGA1YgYAAFiNmAEAAFYjZgAAgNX+H868REX35TotAAAAAElFTkSuQmCC",
      "text/plain": [
       "Figure size 640x480 with 1 Axes"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"原始数据描述:\")\n",
    "print(df.describe())\n",
    "plt.figure()\n",
    "sns.histplot(df.values.flatten())\n",
    "plt.title('Value Distribution')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "6171af17-1aed-4fac-a9e5-5cf2e189f7f1",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T02:09:51.426640Z",
     "iopub.status.busy": "2025-06-10T02:09:51.425909Z",
     "iopub.status.idle": "2025-06-10T02:09:52.235212Z",
     "shell.execute_reply": "2025-06-10T02:09:52.234520Z",
     "shell.execute_reply.started": "2025-06-10T02:09:51.426610Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>efo_term</th>\n",
       "      <th>cardiomyopathy</th>\n",
       "      <th>chronic.lymphocytic.leukemia</th>\n",
       "      <th>chronic.myelogenous.leukemia</th>\n",
       "      <th>diffuse.gastric.adenocarcinoma</th>\n",
       "      <th>ewing.sarcoma</th>\n",
       "      <th>gastric.adenocarcinoma</th>\n",
       "      <th>gastritis</th>\n",
       "      <th>head.and.neck.squamous.cell.carcinoma</th>\n",
       "      <th>leukemia</th>\n",
       "      <th>myelodysplastic.syndrome</th>\n",
       "      <th>neoplasm</th>\n",
       "      <th>neoplasm.of.mature.bcells</th>\n",
       "      <th>papillary.renal.cell.carcinoma</th>\n",
       "      <th>polyp</th>\n",
       "      <th>portal.hypertension</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>cell_type</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>B_cell</th>\n",
       "      <td>0.178286</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.5820</td>\n",
       "      <td>0.144000</td>\n",
       "      <td>0.5820</td>\n",
       "      <td>0.508</td>\n",
       "      <td>0.318857</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.266</td>\n",
       "      <td>0.266</td>\n",
       "      <td>0.001333</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.277</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>DC</th>\n",
       "      <td>0.044000</td>\n",
       "      <td>0.004000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.5820</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.5820</td>\n",
       "      <td>0.508</td>\n",
       "      <td>0.052000</td>\n",
       "      <td>0.004000</td>\n",
       "      <td>0.416</td>\n",
       "      <td>0.266</td>\n",
       "      <td>0.266</td>\n",
       "      <td>0.002286</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.277</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Endothelial_cells</th>\n",
       "      <td>0.044000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.6272</td>\n",
       "      <td>0.144000</td>\n",
       "      <td>0.6272</td>\n",
       "      <td>0.508</td>\n",
       "      <td>0.316000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.416</td>\n",
       "      <td>0.323</td>\n",
       "      <td>0.323</td>\n",
       "      <td>0.004000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.224</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Keratinocytes</th>\n",
       "      <td>0.066667</td>\n",
       "      <td>0.003200</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0000</td>\n",
       "      <td>0.144000</td>\n",
       "      <td>1.0000</td>\n",
       "      <td>0.508</td>\n",
       "      <td>0.316000</td>\n",
       "      <td>0.003200</td>\n",
       "      <td>0.416</td>\n",
       "      <td>0.323</td>\n",
       "      <td>0.323</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.408</td>\n",
       "      <td>0.224</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Macrophage</th>\n",
       "      <td>0.190000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.5820</td>\n",
       "      <td>0.144000</td>\n",
       "      <td>0.5820</td>\n",
       "      <td>0.508</td>\n",
       "      <td>0.024000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.266</td>\n",
       "      <td>0.266</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.277</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Neurons</th>\n",
       "      <td>0.178286</td>\n",
       "      <td>0.004571</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.5820</td>\n",
       "      <td>0.272000</td>\n",
       "      <td>0.5820</td>\n",
       "      <td>0.508</td>\n",
       "      <td>0.316000</td>\n",
       "      <td>0.004571</td>\n",
       "      <td>0.416</td>\n",
       "      <td>0.323</td>\n",
       "      <td>0.323</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.408</td>\n",
       "      <td>0.224</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Smooth_muscle_cells</th>\n",
       "      <td>0.168000</td>\n",
       "      <td>0.003200</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0000</td>\n",
       "      <td>0.338667</td>\n",
       "      <td>1.0000</td>\n",
       "      <td>0.508</td>\n",
       "      <td>0.363000</td>\n",
       "      <td>0.003200</td>\n",
       "      <td>0.416</td>\n",
       "      <td>0.323</td>\n",
       "      <td>0.323</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.224</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>T_cells</th>\n",
       "      <td>0.168000</td>\n",
       "      <td>0.005000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.0000</td>\n",
       "      <td>0.508</td>\n",
       "      <td>0.316000</td>\n",
       "      <td>0.005000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.266</td>\n",
       "      <td>0.266</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.277</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "efo_term             cardiomyopathy  chronic.lymphocytic.leukemia  \\\n",
       "cell_type                                                           \n",
       "B_cell                     0.178286                      0.000000   \n",
       "DC                         0.044000                      0.004000   \n",
       "Endothelial_cells          0.044000                      0.000000   \n",
       "Keratinocytes              0.066667                      0.003200   \n",
       "Macrophage                 0.190000                      0.000000   \n",
       "Neurons                    0.178286                      0.004571   \n",
       "Smooth_muscle_cells        0.168000                      0.003200   \n",
       "T_cells                    0.168000                      0.005000   \n",
       "\n",
       "efo_term             chronic.myelogenous.leukemia  \\\n",
       "cell_type                                           \n",
       "B_cell                                        1.0   \n",
       "DC                                            1.0   \n",
       "Endothelial_cells                             1.0   \n",
       "Keratinocytes                                 1.0   \n",
       "Macrophage                                    1.0   \n",
       "Neurons                                       1.0   \n",
       "Smooth_muscle_cells                           1.0   \n",
       "T_cells                                       1.0   \n",
       "\n",
       "efo_term             diffuse.gastric.adenocarcinoma  ewing.sarcoma  \\\n",
       "cell_type                                                            \n",
       "B_cell                                       0.5820       0.144000   \n",
       "DC                                           0.5820       1.000000   \n",
       "Endothelial_cells                            0.6272       0.144000   \n",
       "Keratinocytes                                1.0000       0.144000   \n",
       "Macrophage                                   0.5820       0.144000   \n",
       "Neurons                                      0.5820       0.272000   \n",
       "Smooth_muscle_cells                          1.0000       0.338667   \n",
       "T_cells                                      1.0000       1.000000   \n",
       "\n",
       "efo_term             gastric.adenocarcinoma  gastritis  \\\n",
       "cell_type                                                \n",
       "B_cell                               0.5820      0.508   \n",
       "DC                                   0.5820      0.508   \n",
       "Endothelial_cells                    0.6272      0.508   \n",
       "Keratinocytes                        1.0000      0.508   \n",
       "Macrophage                           0.5820      0.508   \n",
       "Neurons                              0.5820      0.508   \n",
       "Smooth_muscle_cells                  1.0000      0.508   \n",
       "T_cells                              1.0000      0.508   \n",
       "\n",
       "efo_term             head.and.neck.squamous.cell.carcinoma  leukemia  \\\n",
       "cell_type                                                              \n",
       "B_cell                                            0.318857  0.000000   \n",
       "DC                                                0.052000  0.004000   \n",
       "Endothelial_cells                                 0.316000  0.000000   \n",
       "Keratinocytes                                     0.316000  0.003200   \n",
       "Macrophage                                        0.024000  0.000000   \n",
       "Neurons                                           0.316000  0.004571   \n",
       "Smooth_muscle_cells                               0.363000  0.003200   \n",
       "T_cells                                           0.316000  0.005000   \n",
       "\n",
       "efo_term             myelodysplastic.syndrome  neoplasm  \\\n",
       "cell_type                                                 \n",
       "B_cell                                  1.000     0.266   \n",
       "DC                                      0.416     0.266   \n",
       "Endothelial_cells                       0.416     0.323   \n",
       "Keratinocytes                           0.416     0.323   \n",
       "Macrophage                              1.000     0.266   \n",
       "Neurons                                 0.416     0.323   \n",
       "Smooth_muscle_cells                     0.416     0.323   \n",
       "T_cells                                 1.000     0.266   \n",
       "\n",
       "efo_term             neoplasm.of.mature.bcells  \\\n",
       "cell_type                                        \n",
       "B_cell                                   0.266   \n",
       "DC                                       0.266   \n",
       "Endothelial_cells                        0.323   \n",
       "Keratinocytes                            0.323   \n",
       "Macrophage                               0.266   \n",
       "Neurons                                  0.323   \n",
       "Smooth_muscle_cells                      0.323   \n",
       "T_cells                                  0.266   \n",
       "\n",
       "efo_term             papillary.renal.cell.carcinoma  polyp  \\\n",
       "cell_type                                                    \n",
       "B_cell                                     0.001333  1.000   \n",
       "DC                                         0.002286  1.000   \n",
       "Endothelial_cells                          0.004000  1.000   \n",
       "Keratinocytes                              0.000000  0.408   \n",
       "Macrophage                                 0.000000  1.000   \n",
       "Neurons                                    0.000000  0.408   \n",
       "Smooth_muscle_cells                        0.000000  1.000   \n",
       "T_cells                                    0.000000  1.000   \n",
       "\n",
       "efo_term             portal.hypertension  \n",
       "cell_type                                 \n",
       "B_cell                             0.277  \n",
       "DC                                 0.277  \n",
       "Endothelial_cells                  0.224  \n",
       "Keratinocytes                      0.224  \n",
       "Macrophage                         0.277  \n",
       "Neurons                            0.224  \n",
       "Smooth_muscle_cells                0.224  \n",
       "T_cells                            0.277  "
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# multiple testing correction\n",
    "import statsmodels.stats.multitest\n",
    "from statsmodels.stats.multitest import multipletests\n",
    "\n",
    "method='fdr_bh'\n",
    "columns=df.columns.tolist()\n",
    "\n",
    "# correct for multiple testing (each test being one cell type). Replacing the column with a corrected value\n",
    "for column in columns:\n",
    "    df[column]=statsmodels.stats.multitest.multipletests(df[column],method=method)[1]\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "220d57a4-774a-4c9f-bc12-0fdaa4456e07",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T02:09:54.915209Z",
     "iopub.status.busy": "2025-06-10T02:09:54.914544Z",
     "iopub.status.idle": "2025-06-10T02:09:54.937350Z",
     "shell.execute_reply": "2025-06-10T02:09:54.936668Z",
     "shell.execute_reply.started": "2025-06-10T02:09:54.915180Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>efo_term</th>\n",
       "      <th>cardiomyopathy</th>\n",
       "      <th>chronic.lymphocytic.leukemia</th>\n",
       "      <th>chronic.myelogenous.leukemia</th>\n",
       "      <th>diffuse.gastric.adenocarcinoma</th>\n",
       "      <th>ewing.sarcoma</th>\n",
       "      <th>gastric.adenocarcinoma</th>\n",
       "      <th>gastritis</th>\n",
       "      <th>head.and.neck.squamous.cell.carcinoma</th>\n",
       "      <th>leukemia</th>\n",
       "      <th>myelodysplastic.syndrome</th>\n",
       "      <th>neoplasm</th>\n",
       "      <th>neoplasm.of.mature.bcells</th>\n",
       "      <th>papillary.renal.cell.carcinoma</th>\n",
       "      <th>polyp</th>\n",
       "      <th>portal.hypertension</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>cell_type</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>B_cell</th>\n",
       "      <td>0.748883</td>\n",
       "      <td>2.875061</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.235077</td>\n",
       "      <td>0.841638</td>\n",
       "      <td>0.235077</td>\n",
       "      <td>0.294136</td>\n",
       "      <td>0.496404</td>\n",
       "      <td>2.875061</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.575118</td>\n",
       "      <td>0.575118</td>\n",
       "      <td>2.875061</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.557520</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>DC</th>\n",
       "      <td>1.356547</td>\n",
       "      <td>2.397940</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.235077</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.235077</td>\n",
       "      <td>0.294136</td>\n",
       "      <td>1.283997</td>\n",
       "      <td>2.397940</td>\n",
       "      <td>0.380907</td>\n",
       "      <td>0.575118</td>\n",
       "      <td>0.575118</td>\n",
       "      <td>2.640978</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.557520</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Endothelial_cells</th>\n",
       "      <td>1.356547</td>\n",
       "      <td>2.875061</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.202594</td>\n",
       "      <td>0.841638</td>\n",
       "      <td>0.202594</td>\n",
       "      <td>0.294136</td>\n",
       "      <td>0.500313</td>\n",
       "      <td>2.875061</td>\n",
       "      <td>0.380907</td>\n",
       "      <td>0.490797</td>\n",
       "      <td>0.490797</td>\n",
       "      <td>2.397940</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.649752</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Keratinocytes</th>\n",
       "      <td>1.176091</td>\n",
       "      <td>2.494850</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.841638</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.294136</td>\n",
       "      <td>0.500313</td>\n",
       "      <td>2.494850</td>\n",
       "      <td>0.380907</td>\n",
       "      <td>0.490797</td>\n",
       "      <td>0.490797</td>\n",
       "      <td>2.875061</td>\n",
       "      <td>0.38934</td>\n",
       "      <td>0.649752</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Macrophage</th>\n",
       "      <td>0.721246</td>\n",
       "      <td>2.875061</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.235077</td>\n",
       "      <td>0.841638</td>\n",
       "      <td>0.235077</td>\n",
       "      <td>0.294136</td>\n",
       "      <td>1.619789</td>\n",
       "      <td>2.875061</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.575118</td>\n",
       "      <td>0.575118</td>\n",
       "      <td>2.875061</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.557520</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Neurons</th>\n",
       "      <td>0.748883</td>\n",
       "      <td>2.339948</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.235077</td>\n",
       "      <td>0.565431</td>\n",
       "      <td>0.235077</td>\n",
       "      <td>0.294136</td>\n",
       "      <td>0.500313</td>\n",
       "      <td>2.339948</td>\n",
       "      <td>0.380907</td>\n",
       "      <td>0.490797</td>\n",
       "      <td>0.490797</td>\n",
       "      <td>2.875061</td>\n",
       "      <td>0.38934</td>\n",
       "      <td>0.649752</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Smooth_muscle_cells</th>\n",
       "      <td>0.774691</td>\n",
       "      <td>2.494850</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.470228</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.294136</td>\n",
       "      <td>0.440093</td>\n",
       "      <td>2.494850</td>\n",
       "      <td>0.380907</td>\n",
       "      <td>0.490797</td>\n",
       "      <td>0.490797</td>\n",
       "      <td>2.875061</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.649752</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>T_cells</th>\n",
       "      <td>0.774691</td>\n",
       "      <td>2.301030</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.294136</td>\n",
       "      <td>0.500313</td>\n",
       "      <td>2.301030</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.575118</td>\n",
       "      <td>0.575118</td>\n",
       "      <td>2.875061</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.557520</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "efo_term             cardiomyopathy  chronic.lymphocytic.leukemia  \\\n",
       "cell_type                                                           \n",
       "B_cell                     0.748883                      2.875061   \n",
       "DC                         1.356547                      2.397940   \n",
       "Endothelial_cells          1.356547                      2.875061   \n",
       "Keratinocytes              1.176091                      2.494850   \n",
       "Macrophage                 0.721246                      2.875061   \n",
       "Neurons                    0.748883                      2.339948   \n",
       "Smooth_muscle_cells        0.774691                      2.494850   \n",
       "T_cells                    0.774691                      2.301030   \n",
       "\n",
       "efo_term             chronic.myelogenous.leukemia  \\\n",
       "cell_type                                           \n",
       "B_cell                                        0.0   \n",
       "DC                                            0.0   \n",
       "Endothelial_cells                             0.0   \n",
       "Keratinocytes                                 0.0   \n",
       "Macrophage                                    0.0   \n",
       "Neurons                                       0.0   \n",
       "Smooth_muscle_cells                           0.0   \n",
       "T_cells                                       0.0   \n",
       "\n",
       "efo_term             diffuse.gastric.adenocarcinoma  ewing.sarcoma  \\\n",
       "cell_type                                                            \n",
       "B_cell                                     0.235077       0.841638   \n",
       "DC                                         0.235077       0.000000   \n",
       "Endothelial_cells                          0.202594       0.841638   \n",
       "Keratinocytes                              0.000000       0.841638   \n",
       "Macrophage                                 0.235077       0.841638   \n",
       "Neurons                                    0.235077       0.565431   \n",
       "Smooth_muscle_cells                        0.000000       0.470228   \n",
       "T_cells                                    0.000000       0.000000   \n",
       "\n",
       "efo_term             gastric.adenocarcinoma  gastritis  \\\n",
       "cell_type                                                \n",
       "B_cell                             0.235077   0.294136   \n",
       "DC                                 0.235077   0.294136   \n",
       "Endothelial_cells                  0.202594   0.294136   \n",
       "Keratinocytes                      0.000000   0.294136   \n",
       "Macrophage                         0.235077   0.294136   \n",
       "Neurons                            0.235077   0.294136   \n",
       "Smooth_muscle_cells                0.000000   0.294136   \n",
       "T_cells                            0.000000   0.294136   \n",
       "\n",
       "efo_term             head.and.neck.squamous.cell.carcinoma  leukemia  \\\n",
       "cell_type                                                              \n",
       "B_cell                                            0.496404  2.875061   \n",
       "DC                                                1.283997  2.397940   \n",
       "Endothelial_cells                                 0.500313  2.875061   \n",
       "Keratinocytes                                     0.500313  2.494850   \n",
       "Macrophage                                        1.619789  2.875061   \n",
       "Neurons                                           0.500313  2.339948   \n",
       "Smooth_muscle_cells                               0.440093  2.494850   \n",
       "T_cells                                           0.500313  2.301030   \n",
       "\n",
       "efo_term             myelodysplastic.syndrome  neoplasm  \\\n",
       "cell_type                                                 \n",
       "B_cell                               0.000000  0.575118   \n",
       "DC                                   0.380907  0.575118   \n",
       "Endothelial_cells                    0.380907  0.490797   \n",
       "Keratinocytes                        0.380907  0.490797   \n",
       "Macrophage                           0.000000  0.575118   \n",
       "Neurons                              0.380907  0.490797   \n",
       "Smooth_muscle_cells                  0.380907  0.490797   \n",
       "T_cells                              0.000000  0.575118   \n",
       "\n",
       "efo_term             neoplasm.of.mature.bcells  \\\n",
       "cell_type                                        \n",
       "B_cell                                0.575118   \n",
       "DC                                    0.575118   \n",
       "Endothelial_cells                     0.490797   \n",
       "Keratinocytes                         0.490797   \n",
       "Macrophage                            0.575118   \n",
       "Neurons                               0.490797   \n",
       "Smooth_muscle_cells                   0.490797   \n",
       "T_cells                               0.575118   \n",
       "\n",
       "efo_term             papillary.renal.cell.carcinoma    polyp  \\\n",
       "cell_type                                                      \n",
       "B_cell                                     2.875061  0.00000   \n",
       "DC                                         2.640978  0.00000   \n",
       "Endothelial_cells                          2.397940  0.00000   \n",
       "Keratinocytes                              2.875061  0.38934   \n",
       "Macrophage                                 2.875061  0.00000   \n",
       "Neurons                                    2.875061  0.38934   \n",
       "Smooth_muscle_cells                        2.875061  0.00000   \n",
       "T_cells                                    2.875061  0.00000   \n",
       "\n",
       "efo_term             portal.hypertension  \n",
       "cell_type                                 \n",
       "B_cell                          0.557520  \n",
       "DC                              0.557520  \n",
       "Endothelial_cells               0.649752  \n",
       "Keratinocytes                   0.649752  \n",
       "Macrophage                      0.557520  \n",
       "Neurons                         0.649752  \n",
       "Smooth_muscle_cells             0.649752  \n",
       "T_cells                         0.557520  "
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 应用变换\n",
    "df = -np.log10(df)\n",
    "\n",
    "# 处理所有特殊值\n",
    "df = df.replace([-0.0, 0.0], 0.0)  # 统一零值\n",
    "df = df.replace([np.inf, -np.inf], np.nan)  # 无穷大转NaN\n",
    "\n",
    "# 用有限值最大值填充NaN（跳过NaN计算最大值）\n",
    "if not df.isnull().all().all():\n",
    "    max_val = df.max().max()  # 自动跳过NaN\n",
    "    df = df.fillna(max_val)\n",
    "else:\n",
    "    df = df.fillna(300)  # 全为无穷大的情况\n",
    "\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "458a838a-a114-4cc4-a12e-a1a323c94c76",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T02:10:03.429719Z",
     "iopub.status.busy": "2025-06-10T02:10:03.429068Z",
     "iopub.status.idle": "2025-06-10T02:10:03.869106Z",
     "shell.execute_reply": "2025-06-10T02:10:03.868369Z",
     "shell.execute_reply.started": "2025-06-10T02:10:03.429691Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxEAAAL8CAYAAACfyjiOAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAXEgAAFxIBZ5/SUgAA4wpJREFUeJzs3XdUFOf7NvBr6AhYsVBEFAVbxEosVLES7C02xAqxd43RaKLf2DVqoiaiYo8Ve8GCCFZUFDVYEMUCKiAqIihl3j982Z+bpezCssvi9TmHE5l5ZvbaUcjcO08RRFEUQUREREREJCctdQcgIiIiIiLNwiKCiIiIiIgUwiKCiIiIiIgUwiKCiIiIiIgUwiKCiIiIiIgUwiKCiIiIiIgUwiKCiIiIiIgUwiKCiIiIiIgUwiKCiIiIiIgUwiKCiIiIiIgUwiKCiIiIiIgUwiKCiIiIiIgUwiKCiIiIiIgUwiKCiIiIiIgUwiKCiIiIiKiEev36NSpVqgRBEFC7dm2lnZdFBBERERFRCTVx4kQkJCQo/bwsIoiIiIiISqDTp09j06ZNGD58uNLPLYiiKCr9rEREREREpDapqalo0KAB9PT0sH//ftja2sLOzg53795Vyvl1lHIWIiIiIiIqNn755Rc8fPgQZ8+eha6urtLPz+5MREREREQlSEREBJYuXYrBgwfD2dm5SF6DTyKIiIiIiIqJevXq5brvzp07+R6flZWF4cOHo2zZsli0aJEyo0lhEUFEREREVEKsWrUKV65cwcaNG1GhQoUiex0WEURERERESvQ/QSjwsXcKMefR06dPMXPmTLi4uMDb27vA55EHiwgiIiIiIiVS/jBm+YwcORKfPn3CmjVrivy1OMUrEREREZES/V6IJxHjC3FrLggCypYtC3t7e6ntaWlpuHz5MgwNDeHg4AAAOHz4MIyNjQv+WiwiiIiIiIiU589CFBGjCllEyCspKQlly5Yt8GtxilciIiIiIiXSL8RXYYiimOPXo0ePAAB2dnaSbYUpIACOiSAiIiIiUip1jYlQJRYRRERERERKxCKCiIiIiIgUoqfuACrAIoKIiIiISImK25MIa2trKHsuJRYRRERERERKpKtd8ucuYhFBRERERKREOrra6o5Q5FhEEBEREREpkbYOiwgiIiIiIlKArl7Jv8Uu+e+QiIiIiEiFtNmdiYiIiIiIFMEnEUREREREpBCOiSAiIiIiIoXo6rGIICIiIiIiBXBMBBERERERKYTdmYiIiIiISCHa+rrqjlDkWEQQERERESmRlm7Jv8Uu+e+QiIiIiEiF+CSC6AuiKGLYsGG4efOmuqMQ0X/Y29vDz88PgiCoOwoR0VdPm08iiP5PWloaCwiiYurmzZtIS0uDoaGhuqMQEX312J2JKBeBgYG8WSEqBlJTU9GuXTt1xyAioi9o67E7E1GODA0NWUQQERER5YBPIoiIiIiISCEcWE1ERERERArhwGoiIiIiIlKIoKOl7ghFjkVEAYmiiLS0NHXHUKnU1NQc//w1MTAw4BSaXxFN+DnXpJ9L/vwQ0ddCS7fkFxGCKIqiukNoGlEUMXToUERERKg7CqkY5+L/evDnXPn480NEX4v3EzsX+FjjZQeVmKTo8ElEAaSlpfHG4ivFufi/Hvw5Vz7+/BDR10L4Cp5EsIgoJK6XoBzFvRtGWloaOnf+/KlCcc8KgP8mlYw/54XDtSyI6GujxTERlB+ul6AcTk5O6o4gN024Gbp69aq6I5Qo/DknIiJFfA1PIorlmIi0n3uoO0KJknD9ibojEMkwX/CDuiOUKFo1PNQdoeQoVUXdCYhIw32a26vAx+rN2l2o1/7w4QMCAwNx6NAhhIWF4fHjx8jMzETNmjXRo0cPTJw4EcbGxoV6DQAo+WUSEREREZEKCTpaBf4qrO3bt6Nbt27YsGEDsrKy0KFDBzg5OeHRo0eYPXs2mjVrhlevXhX6ddidiYiIiIhIidTZnUlPTw8//PADJkyYgFq1akm2x8XF4bvvvkN4eDjGjx+P7du3F+p1WEQQERERESmRoKOtttf28vKCl5eXzHYzMzP8+eefaNmyJfbt24dPnz5BT0+vwK/DIoKIiIiISJn0dNWdIEf29vYAgI8fPyIxMRFmZmYFPheLCCIiIiIiZdIpnrfY0dHRAABdXV2UL1++UOcqnu+QiIiIiEhT6RbPJxErVqwAAHTo0AH6+vqFOhdnZyIiIlIyQRDy/fL29i7SDP7+/hAEAXPmzCnS1wEAa2trCIKgttcRBAHW1taFPr8qr1lBFfU1ICXR1S3wV7169XL9KoyjR49i/fr10NXVxdy5cwv9FvkkgoiIqIgMGjQo132Ojo4qTFI4giCgWrVqePz4sbqjEGkEQbd43WJHRkZiwIABEEURixcvloyNKIzi9Q6JiIhKEH9/f3VH+CpERkZCt5h2H6GvVCH+Pd65c0eJQYBnz56hQ4cOSEpKwsSJEzFu3DilnJdFBBEREWm02rVrqzsCkbRi8iQiISEBbdu2xZMnTzB48GAsWbJEaefmmAgiIqJiILtPe2ZmJhYtWgRbW1vo6+ujatWqmDZtGj5+/JjjcREREfD09ESZMmVQpkwZtG3bFhcvXszztRITEzFlyhTUqlULBgYGKF++PDp06IDAwECpdtljBAAgJiZGakyHq6trjuf28/NDgwYNYGhoiCpVqsDHxwdv3rzJse2nT5+wYsUKNGvWDCYmJjAyMoKDgwPWr18PURTzvmBfyGk8gCiK2LFjB77//nvY2trCyMgIJiYmcHBwwOrVq5GVlSX3+RX15MkTjB49WnJ9K1SoAAcHB/z2229ITU2Vaqusa5Cby5cvo1u3bqhWrRr09fVRpUoVODg44Mcff8T79+8LfX7KhZ5ewb+UJDk5GR07dsTdu3fRvXt3rFu3Tqljl5RaJomiiLS0tEKfp+iHZhERERVP/fv3x+HDh+Hg4AA7OzuEhIRg0aJFeP78ObZu3SrV9vLly2jdujU+fPiAhg0bonbt2rh9+zZcXFxyHbj9/PlzODs7Izo6GlZWVujatSvi4+Nx6tQpnDhxAsuWLcOECRMAADVr1sSgQYOwadMmGBkZoWfPnpLz5PTp/9SpUyU3xB06dMCFCxfw999/IzIyEsHBwVI3MCkpKejYsSNCQkJgamoKR0dHaGlp4eLFixg2bBjCwsKwdu3aAl/Hjx8/ol+/fihXrhzq1q2Lxo0bIyEhARcvXsSoUaNw5cqVIuludu7cOXTu3Blv375FjRo10KVLF6SkpODff//FTz/9hH79+kkKnqK+BkeOHEHnzp0hCAJatWqFli1bIikpCffv38eCBQvg4+MDY2NjJb1zkqKt3icRHz9+RJcuXXD16lW0b98eO3bsgLa2chfAU9o7FEURQ4cORURERKHPFepRTQmJiIiIFJfXDCjK7qv8XzExMShVqhRu374tudF89OgRmjRpgm3btuGXX36BjY0NACArKwve3t748OED5s+fj+nTp0vOM2vWLMybNy/H1/D19UV0dDQGDhwomakFAEJDQ9G+fXtMmTIF7u7uaNCgARwdHeHo6IhNmzbB1NQ035vurVu34vLly2jYsCGAz10pWrRogZCQEAQFBaF169aStlOmTEFISAgGDhyI1atXS25m4+Pj0alTJ/z111/o1KkTvvvuu4JcSujo6GDv3r3w9PSUWpU3Pj4eHh4e2LRpE4YMGQJnZ+cCnT8nSUlJ6NmzJ96+fYvly5dj3LhxUoXTuXPnUK5cOcn3RX0NFi9eDFEUceXKFTRp0kRq35UrV1ChQoUCnZfkoK2+zj6ZmZno27cvgoKC4OTkhH379hVqZercKO0dpqWlKaWAICIiKinymuJ1//79OR6zatUqqa451atXx4ABAwAAISEhku1nz57F3bt3YWtri2nTpkmdY/bs2bCyspI5d3R0NA4fPozSpUtj5cqVUoORHR0d4evri8zMTKxevbpA73fu3LmSAgIATE1N8cMPPwD4fAOd7dWrV/Dz80P16tWxbt06qU/DK1asiL/++gsAJP8tCB0dHXTv3l3m5qlixYqYP38+AODAgQMFPn9O1q1bh/j4eHh6emL8+PEyXUecnZ1RpkwZAKq5Bq9evUKZMmVkCggAcHBwgImJSYHPTfnQ1i74VyH98ccfCAgIAPD5Z3DkyJHw9vaW+UpISCjU6xTJs5bAwEAYGhoW/ATzBygvDBERkQKU+bQhrylec7rJ19XVzXGsga2tLQAgLi5Osi00NBQA0KtXL5mbVR0dHfTs2RPLli2T2p59jIeHB8qWLSvzOgMHDsSyZcukihVFtGvXTq7swcHBSE9Pz3XBK3t7e5iYmCAsLKxAOb5048YNBAYGIiYmBh8+fIAoikhOTgYAPHjwoNDn/9KpU6cAAD4+Pvm2VcU1aNKkCbZu3YqhQ4diwoQJqF+/foHPRQrSUm7XIUUkJSVJ/pxdTORkzpw5MDU1LfDrFEkRYWhoWKgiovCjKoiIiNRP0T73ZmZmOfZbzv6U+svB1bGxsQByLkZy2559TG6LkmVvz26nKEtLS5ltOWXPXm9izZo1WLNmTa7n++8gZEV8+vQJ3t7e2LFjR65tsosJZXn69CkASLqc5UUV1+C3337DrVu3sGHDBmzYsAGmpqZo2bIlunbtin79+hV6xWLKg5LHHyhizpw5KlkwsXjMP0VEREQKzZySPXNPQWZbye2Y7O0FncFF3uMyMzMBAI0aNUKDBg0K9Fr5WbZsGXbs2IH69etj8eLFaNy4McqVKwddXV3cv38fdnZ2Spn9KCfyXAdVXIOqVavi6tWrOHPmDA4fPozg4GAcOnQIBw8exKJFi3DhwgWpMRqkRGocE6EqLCKIiIg0kLm5OYDPg7Fz8uTJk1yPefToUY7HZH86bmZmpoSEuct+YuHq6irT5UpZsrtxZBcSX4qOji6S16xatSru3r2LqKiofNeuUMU1AD53bWvXrp2kq1n2egFnzpzBggULsHDhwiJ77a+aGrszqUrJL5OIiIhKIEdHRwDA3r17ZT5Rz8jIwN69e3M95siRIzmu3ZA9hayTk5PUdl1dXWRkZCgjNgDAzc0N2traOHz4sOQTeWXL7hdetWpVmX27du0qktds06YNAODvv//Ot60qrkFOrKysJAPxb926pbLX/eqocWC1qrCIICIi0kBubm6wtbXF3bt3ZVahnTdvXo5PKGrUqIHvvvsOycnJGDduHNLT0yX7Ll68iDVr1kBbWxsjR46UOs7c3BwvX77MddE4RVlYWMDb2xsPHjzAwIEDc5wl5sKFCzh69GiBXyN7QPd/11nYs2cPNm/eXODz5mXYsGEwNTXFoUOH8Mcff8gUdyEhIXj79i0A1VyD5cuX4+XLlzLbjx8/DiD38TSkBF9BEcHuTEREREUktwXfgM83cL/++muBz62lpQV/f3+4u7tj6tSp2LFjh2Sxubt372LYsGHw8/OTOe6vv/6Ck5MTNm/ejODgYLRo0QLx8fE4e/YsMjMzsXTpUpk++p07d8aqVavQuHFjtGzZEgYGBrCzs8OUKVMKnH/lypWIjo7Gjh07cPjwYTRs2BDm5uZ48eIFoqKi8Pz5c4wbNw4eHh4FOv/UqVNx/PhxTJ8+Hbt374atrS0ePHiAq1evYvLkyTKFlzKUL18eu3btQpcuXTBmzBj8/vvvaNKkCT58+IA7d+7g0aNHePTokWSa16K+Br/88gsmT54Me3t71KpVC6IoIiIiAvfu3YOpqWmh/v4oHxpUDBQUiwgiIqIismnTplz32dvbF6qIAIAWLVrgwoULmDFjBkJDQxEVFYVmzZphzZo1ePDgQY5FhIWFBcLCwjB//nzs378f+/btQ6lSpeDu7o5JkyblOE3r/PnzIYoiDhw4gJ07dyIjIwMuLi6FugktVaoUAgMDsWnTJmzZsgURERG4fPkyKlWqBBsbG4wbNw59+/Yt8PmdnZ0RGhqKn376CeHh4bh//z6++eYb7N27F40bNy6SIgL4/IToxo0bWLhwIU6cOIH9+/ejdOnSsLGxwYgRI1ClShVJ26K+BqtWrcLx48dx7do1HDt2DMDn7l2TJ0/GxIkTi3zsy1dNq+TfYguikqYmSE1NlfShDAkJKdwUrz/3UEYk+v8SrssOriNSN/MFP6g7QomiVaNgn1RSDkpVyb8NEVEesu7lPrVwfrTsCl44qlLJL5OIiIiIiFRJSzf/NhqORQQRERERkTJ9Bd2ZSv47JCIiIiqABQsW4O7du3K1XbJkCUxNTYs4EWkKQZtPIoiIiIi+SsePH0dwcLBcbefMmcMigv6PUPJvsYvlO+RAYKKSTzB3UHcEIqI8nT17Vt0RSFPxSQQRERERESmEYyKIiIiIiEghLCKIiIiIiEghnOKViIiIiIgUwoHVRERERESkEHZnIiIiIiIihWhpqztBkdNSdwAiIqKSRhAEmS89PT1UrVoV/fv3x61bt9QdMU+PHz+GIAhwdXWV2n727FkIggBvb2+15CLSGIJOwb80hOYkJSIi0jCDBg2S/Pnt27e4du0atm/fjj179uD48eNwc3NTYzoiKioCuzMRERFRQfn7+0t9n56ejqFDh2LLli0YN24cIiIi1BOMiIqWBj1RKCh2ZyIiIlIRXV1dzJkzBwBw69YtvHnzRq15iKiIaOkU/EtDFKqIEEURqampki8iIiLKW+XKlSV/zsjIKNS5Ll68iN69e8Pc3Bz6+vqwsLBA+/btsXXrVpm28fHxmDx5Muzs7GBgYIBy5cqhY8eOOHfuXKEyEFEOvoIiolBJhw0bhps3b+a6XxRFpKWlFeYliIiISpRr164BAExNTWFqalrg8/z++++YOHEiRFFEs2bN4OLiglevXuH69eu4d+8eBgwYIGl79+5dtGnTBs+fP4eNjQ08PDyQmJiIM2fOIDAwEFu2bEG/fv0K/d6I6P8zrKTuBEWuUEVEfgXE0KFDC9Tfc38VoTCxiIiICqxevXq57rtz506Bz/v27VtcuXIFo0ePBgDMmDGjwOc6d+4cJk6cCBMTExw4cEBqFqVPnz4hKChI8n1mZiZ69eqF58+fY8WKFRgzZgwE4fP/Z8PDw9G2bVuMGDECbdq0QaVKJf/Gh4iUQyljIgIDAxEYGCi1LS0tjQPGiIjoq/blFK9ly5ZFu3bt8ObNG2zfvh0TJkwo8HkXLFgAURTx888/y0zDqqenh/bt20u+P3ToEG7fvo2+ffti7NixkgICABo1aoRZs2YhJSUlxy5QRES5UUrHK0NDwzz3BwYG5tvmS4m9nAsbiYiIqEAK87Thv76c4vXjx4+IiYnB5cuXMXXqVJibm8PFxUXhc2ZmZuLs2bMAgBEjRuTb/uTJkwCArl275rjf0dERABAWFqZwFiL6eqlk9IahoaFCRQQREVFJ8N8pXoHPXYhcXFzQvn17REZGonr16gqdMyEhAampqahUqRJMTEzybf/48WMAQJ8+fdCnT588z0tEJC/NGQJORERUAjRq1Ag+Pj5YsmQJ/vjjDyxdurRA5/myW1JeMjMzAQAdO3bMc8xD7dq1C5SDiL5OLCKIiIhULPvpw7179xQ+1tTUFIaGhnj58iWSk5PzfRphaWkJAPD19UXnzp0VD0tElAMuNkdERKRi0dHRAAAjIyOFj9XW1pYMpl63bl2+7du0aQMA2L9/v8KvRUSUGxYRREREKhQeHo6///4bAODh4VGgc0ybNg2CIGDu3LkICQmR2peeno4TJ05Ivu/Zsydq164Nf39/LFy4EOnp6VLtP336hH379uHWrVsFykJEXyd2ZyIiIioi3t7ekj9/+vQJMTExuHTpErKystCpUycMHDiwQOd1cXHBokWLMGXKFDg7O8PBwQE2NjZ49eoVbt68CSMjI8mAah0dHQQEBKB9+/aYPn06VqxYgQYNGqB06dJ4+vQp7t69izdv3iAgIADffPONEt41EX0NWEQQEREVkU2bNkn+rKWlhbJly8LZ2RkDBw6Et7c3tLQK3iFg8uTJaNasGZYvX44LFy4gPDwclSpVQpMmTeDl5SXVtnbt2rhx4wZWrlyJgIAAhIaGQhRFmJmZwdnZGd26dZN0eyIikgeLCCIiIiUTRVElr+Pi4iL3WhPlypXD7NmzMXv27HzbWltb5/geXF1dVfbeiKh445gIIiIiIiJSCIsIIiIiIiJSCLszERERqdmXA7DzYmpqiiVLlhRtGCIiObCIICIiUrMvB2DnpVq1aiwiiKhYYBHxFShX10LdEYhkiK/vqztCiSKYm6o7AhUCBysTkabhmAgiIiIiIlIIiwgiIiIiIlIIiwgiIiIiIlIIiwgiIiIiIlIIiwgiIiIiIlIIiwgiIiIiIlIIiwgiIiIlEwQBgiDkuC8jIwM9e/aEIAiwtbXF8+fPVZyu4B4/fgxBEODq6qruKESkZiwiiIiIVCQ9PR19+vTB3r17YWdnh7Nnz8LCovis5ePv7w9BEDBnzhx1R1ELV1dXCIKAx48fqzsKFZEHDx5g8+bNePTokdT2K1euoEWLFjA2Nka9evVw4MABNSXUHFxsjoiISAWyC4iAgADUrl0bQUFBqFKlirpjKcTCwgKRkZEoVaqUuqMQFcjSpUvh5+cnVUTEx8ejXbt2ePfuHQRBQGRkJHr16oWwsDDY29urMW3xxicRRERERSw9PR29evVCQEAA6tati7Nnz2pcAQEAurq6qF27NqysrNQdhahAQkND0aBBA1StWlWybcOGDXj37h0mTZqE1NRUBAQEIDMzE0uXLlVj0uKvSIqI1NRUpKamFsWpiYiINMqnT5/Qs2dPHDhwAPXr10dQUBAqV66cY9tDhw6hffv2qFChAgwMDGBra4tZs2bh/fv3Mm2/7Hqzfft2NG/eHCYmJihbtqykzZEjRzBkyBDUqVMHpUuXhpGREezt7fHbb7/h48ePMucbPHgwAOCXX36RjOsQBAH+/v4Ach8T8WU3qCdPnqBfv36oWLEiDA0N0bRpUxw6dCjX63P06FG0bdsW5cqVg4GBAezs7DB9+nS8efMm12OOHTsGT09PVKpUCfr6+rCyskLXrl1x5MgRAEBYWBgEQUCrVq1yPUf2e5w3b57kfQUHBwMAqlevLvX+vySKIjZt2gRnZ2eULVsWhoaGaNCgAZYsWYL09HSZ10lMTMSMGTNQr149GBsbo0yZMrC1tYWXlxeuXLmSaz4qGnFxcahWrZrUtmPHjkFfXx+zZ8+Gnp4eunTpgubNm+PSpUtqSqkZiqQ7U7t27XLdJ4oi0tLSiuJliYiIipVPnz6hR48eOHz4MBo0aIDTp0/D1NQ0x7aTJk3CsmXLYGBgAAcHB5iamuLatWuYN28ejh07huDgYBgZGckcN3/+fPj5+aFVq1bw9PTE06dPJfuGDh2KlJQU1KtXD9988w3evXuHK1eu4KeffsLp06cRGBgIbW1tAECHDh2QkZGB8+fPw97eHg0bNpScp2bNmnK938ePH6NZs2YwMDCAo6MjXr58iYsXL6Jr1644duyYzP3B/PnzMWPGDOjo6MDFxQWmpqY4f/48Fi5ciICAAJw7d06m4Mq+Ttra2mjRogUsLS0RGxuLoKAgvHnzBt999x2aNWuGJk2a4MKFC7hz5w7q1asndY6srCxs3LgR2traGDx4MPT19TFo0CAcP34cL1++RI8ePWBsbCzz/rKysvD9999j9+7dKF26NJo1awZjY2NcvnwZU6ZMQVBQEA4dOgQtrc+f0b5//x7NmzdHVFQUatWqhfbt2wMAnjx5gh07dqBGjRpwcHCQ69qScqSlpcHAwEDyfWZmJq5evYrmzZtL/Z1bW1vjxo0bakioOZRWRBgYGMDe3h43b97MtY0oihg6dCgiIiLyPNf+KjnPaEFERFTU/nvD+aU7d+4odK7u3bvjyJEjaNiwIU6dOoUKFSrk2G7Xrl1YtmwZGjVqhH379sHa2hrA525Qo0ePxt9//405c+Zg8eLFMsdu3rwZZ86cgYuLi8y+tWvXom3btlLFR3JyMvr164fDhw9j27Zt8PLyAgBMnz4dVapUwfnz59G1a9cCDa7etGkTxowZg2XLlkFH5/MtxooVKzB+/HjMmzdPqogICwvDzJkzYWJiglOnTklupj9+/IiBAwdi9+7dGDNmDHbt2iU5ZuvWrVi2bBksLS1x5MgRNGjQQLIvJSUFly9flnzv4+ODESNGwM/PD8uXL5fKGRgYiJiYGHTq1EkysN3f3x+urq54+fIllixZIvk7+NKSJUuwe/dutG3bFtu2bUPFihUlr923b18cOnQIa9aswahRowAAe/bsQVRUFMaMGYOVK1dKnevVq1d49eqVwteYCqdq1aq4e/eu5PuQkBB8+PABbm5uUu1SU1NzLNrp/yitO5MgCPDz80NISAhCQkIQGBgo0yYtLS3fAoKIiKikOHLkCARBwJYtW3ItIADgt99+AwDs2LFD6uZVV1cXK1asQJUqVeDn54esrCyZY4cOHZpjAQEAXbt2lbkRMjExkdxUK3sGmho1amDp0qWSAgIARo0ahXLlyuHSpUv49OmTZPsff/yBrKwsjB8/XurTeH19ffzxxx8wNDTE3r17pabAzb5Ov//+u1QBAQBGRkZo3bq15Pt+/fqhdOnS2LJli0zXLT8/PwDA8OHD5X5vGRkZWLx4MUxMTLB9+3ZJAZH92uvWrYO+vj7++usvyfbsIuHLXNkqVaqE+vXry/36pBzu7u6IiIjAihUrEBERgZkzZ0IQBHTp0kWq3a1bt6TGTZAspXZnEgQBhoaGcrUNDAzMtW1iL2dlxiIiIpKbok8b8tKqVSucP38e33//PYKDg3MsJF69eoWbN2+iTp06sLOzk9lvYGCApk2b4vDhw3jw4IFMm86dO+eZ4cGDBzh69CiioqKQkpKCrKwsiKIo2adMrq6u0NXVldqmo6ODGjVq4Nq1a0hMTISZmRmAz58AA0D//v1lzlOpUiW0a9cOBw4cwIULF9CrVy/ExsYiMjISFSpUQI8ePfLNYmRkhP79+2PNmjUICAjA999/D+Dz9T548CDMzc3h4eEh93sLDw9HQkICOnbsmGOXtMqVK6NWrVq4ffs2UlNTYWhoiCZNmgCApMtWmzZtpLrSkOr9+OOP2LVrFyZOnAjgcy+ZPn36SM3CdOfOHTx8+BCjR49WV0yNoLYpXg0NDeUuOIiIiDTRkSNH0Lp1a1y/fh3t27fHmTNnULp0aak2MTExAIDIyMhcF6jLlpCQIFNE5DZTkiiKmDx5MpYvXy4pGv4rOTlZ3rciF0tLyxy3Z/c1//KJQGxsLARBkBnkmi37iUxsbCwASMZ62NjYyJ3H19cXa9aswbp16yRFhL+/P9LT0zFkyBDJeBB5ZK8dcezYsXz/nl6/fg0LCwu4u7tjwoQJ+P3339GpUyfo6emhYcOGaNeuHYYOHZpjlykqWpaWlrhx4wbWrVuH+Ph4NGnSBN7e3lJtwsPD0aVLF/Tu3Vs9ITUE14kgIiIqImXKlMGJEyfg4uKCa9euwdPTE8ePH5daZyEzMxMAYGZmlufEJAByfJKR2yfbO3fulIwf+P3339GiRQtUrFgRurq6+PTpE/T19XMtLgoqv5trZZxTkddo0KABmjdvjqCgIDx8+BA2NjZYv349BEHA0KFDFcqR/fdUq1YttGzZMs+2+vr6kj8vW7YMPj4+OHDgAE6fPo3z58/jypUrWLRoEXbu3ImuXbsqlIMKz8LCIs8xPwMGDMCAAQNUF0hDsYggIiIqQqampjh58iScnJwQEhKC7t274+DBg9DT0wPwf5/eV6lSRTKVqjIEBAQAANasWQNPT0+pfdHR0Up7nYIyNzfHo0ePEBMTk2M3ruwnNNndn7L7p0dFRSn0Or6+vrh06RLWr1+P9u3b4/79+2jXrp3CTwGy/57q16+v8N+TnZ0dpk6diqlTpyItLQ1//vknJk+eDB8fHxYRpLG42BwREVERMzc3x+nTp2FhYYETJ06gb9++kk+2LS0tYWdnh4iICKlVdAsrKSkJAHIcHPrljEdfyi5sMjIylJYjN05OTgCAbdu2yeyLj49HYGAgtLS0JJ/6m5ubo06dOkhMTMS+ffvkfp3evXujXLly8Pf3x5o1awDkPqA6r/ffrFkzlClTBkFBQXj37p3cr/9fBgYGmDRpEszMzDhDkxodO3YMXbt2hYWFBfT19aWeTB07dgwTJ06UdKWjnLGIICIiUgFra2ucOnUKFStWxL59+zBkyBBJd6KZM2ciMzMTPXr0wO3bt2WOffjwITZs2KDQ69na2gIA/v77b6luSyEhITlOFQt8vlEHgHv37in0WgUxatQoaGlpYcWKFbh69apk+6dPnzBmzBh8+PAB3bt3l0zBCnyehhYAxo8fLzMAPiUlBWfOnJF5HUNDQ3h5eSEuLg47d+5ExYoVZWbiyZbX+9fX18fkyZPx5s0b9OjRQ/Kk5EsRERHYuXOn5Pv9+/fnuGBZeHg4Xr58CRMTE5QrVy7HLFR0Ro4cCU9PTxw8eBDv379Henq61M9I2bJl8fvvv+Off/5RY8rij0UEERGRitSuXRuBgYEoW7YsNm/ejDFjxgD43Ad76tSpCA8PR8OGDdGsWTP07t0bHTp0QJ06dVCzZk2ZdQbyM3bsWBgZGWH16tWoX78++vbtC2dnZ7i4uMDX1zfHY5o3b45KlSphz549cHV1xZAhQzBs2DBcuHCh0O/9vxwcHDB37ly8e/cOLVq0QNu2bdG3b1/UrFkTO3fuRK1atfDHH39IHePl5YXRo0fj6dOnsLe3h7OzM/r16wdXV1eYm5vj119/zfG1fHx8JH/29vaWmUEqW/ZMV/369UOvXr0wbNgwDBs2TLJ/xowZ6Nu3L06dOgU7Ozu0bNkS33//Pdq0aYMaNWrA3t4eO3bskLQ/e/asZEG8Tp06oX///nBzc4ODgwOysrIwd+7cXLNQ0diwYQPWrl0LBwcH3LhxA2/fvpVp06JFC1hYWOS50jqxiCAiIlKphg0b4ujRozAyMsKff/6JH3/8EQCwcOFCnD59Gp07d8azZ8+wf/9+hIeHo1SpUpgyZUqBnkSEhYWhU6dOSEhIkHzq+tdff+X6JMLAwABHjhxB27ZtcePGDfj7+2P9+vW4f/9+od93TmbMmIHDhw/DxcUFYWFh2LdvH/T19TF16lRcvnxZZrVqAFi1ahUCAgLg7u6O27dvY+/evXj06BHc3d0xbdq0HF+nTp06kqcMXxYF/9W9e3csX74clpaWOHToENavX4/169dL9mtpaWH79u3Ys2cP3Nzc8ODBA+zbtw///vsvKleujDlz5mDhwoWS9t7e3pg0aRLMzc1x5coVSVYPDw8EBQVh3LhxBb10VEB//fUXypcvL1lFPjc1a9YsFmOHijNBLMTUDE2bNgXw+dHof6drTU1NlfR3zN6f07acPPNsVtBIlINydS3yb0SkYoYjvNQdoUTRMs97thhSQKkq6k5ASnbhwgW0atUKLi4uOHv2rLrjkBoZGxvDzc1N6imDlpYWvL29pQr1vn37Yv/+/UhNTVVHTI3AJxFERERUomWvdM3Fw0hLSyvHld//KzY2Vma1d5LGKV6JiIioxLlw4QLWr1+P27dv48qVK2jSpAm6d++u7likZrVr18bVq1fx4cMHqfVavpSYmIgbN25IVhynnPFJBBEREZU49+/fx4YNGxAZGYlOnTph37590NLibc/Xrn///oiPj8eoUaNynMpXFEWMHTsW79+/x8CBA9WQUHPwSQQRERGVON7e3vD29lZ3DCpmRo4cib1792LTpk0IDQ1F+/btAXyennfy5Mk4fPgw7t+/j9atW2PQoEFqTlu8sYggIrUQytVUd4SSRYvTRBIR5UdXVxfHjx/H5MmTsX79eqxevRoAcP36dVy/fh3a2toYOnQoVq5cySdX+WARQURERERfjVKlSmH16tX45ZdfEBwcjMePHyMzMxOWlpZwc3OTTAdMeWMRQURERERfnYoVK6Jnz57qjqGxWEQQERER0VcpMTERsbGxAAAzMzOYmpqqOZHmYGcvIiIiIvpqiKKIP/74A3Xq1EGlSpXQsGFDNGzYEJUrV0adOnWwatUqudaS+NrxSQQRERERfRU+fvyITp064fTp0xBFEeXKlUO1atUgiiKePHmCe/fuYfz48Th48CAOHz4MfX19dUcutvgkgoiIiIi+Cr/99htOnTqFevXq4dixY0hMTMT169cRHh6OxMREHDt2DPXr18eZM2ckK51TzlhEEBERFYGTJ0+ia9euqFKlCvT09FChQgXUrVsX/fv3x7p16/Dp0yd1RyxSjx8/hiAIcHV1VXcUjeTq6gpBEPD48WN1R1GaOXPmQBAE+Pv7S2339vaGIAg4e/ZskWfYunUrypYti6CgIMkaEV9q3749Tp8+jTJlymDLli1FnkeTsYggIiJSstmzZ6Ndu3Y4cOAAKlasiE6dOsHd3R26urrYsWMHRowYgdevX6s7ZqGcPXsWgiBwQTfSKLGxsXB3d0eFChVybWNqaorWrVsjLi5Ohck0j0rGRKSmpkr9l4iIqKS6evUqfv31V+jp6SEgIAAeHh5S+58/f45169axrzWRGlhYWMj1FDA9PZ3rReRDJUVEu3btVPEyREREahcQEAAA6N27t0wBAXy+iZkzZ46KUxERAPTv3x9Lly5FTEwMqlWrlmObmJgYnD59GhMmTFBxOs1SZN2ZDAwMYG9vX1SnJyIiKpbi4+MBfF7ISl6CIMDa2hoZGRmYO3cuatasCUNDQ9SpUwcbN26UtDtz5gzc3NxQunRplCtXDl5eXkhMTMzxnImJiZgyZQpq1aoFAwMDlC9fHh06dEBgYGCuOf7991/0798fZmZm0NPTg4WFBby8vHDv3j2pdt7e3nBzcwMAbNq0CYIgSL5yKpBSU1Mxffp0VKtWDfr6+qhZsyYWLlwIURTlvkb/9WX/+mvXrqFjx44oW7Ysypcvj969e+PZs2cAgJSUFEyZMgXW1tYwMDBA/fr1sWfPHpnz+fv755ofyH2MQmRkJAYOHAgbGxsYGBigYsWKaNiwIcaPH59jd5h///0XgwcPllyLypUrw9nZGStWrJD7vcfHx2Py5Mmws7ODgYEBypUrh44dO+LcuXNynyM36enpWL16NVq1aoWyZcuiVKlSsLW1xfDhw3H79m2Z9qGhoejWrRsqVaoEfX19WFtbY+zYsZKfg8JITEzEjBkzUK9ePRgbG6NMmTKwtbWFl5cXrly5UqBzzpw5E+7u7nB2dsaGDRuQkpIi2ZeSkoINGzbAxcUF7u7u+Pnnnwv9HkqyInsSIQgC/Pz8kJaWJtmWmpoq9VRCFEWp/URERJrO0tISALB37178+OOPChUTvXv3xqlTp9CiRQvY2NggODgYQ4YMAQCYmJigb9++sLe3R9u2bXH58mVs2bIFjx49wrlz5yAIguQ8z58/h7OzM6Kjo2FlZYWuXbsiPj4ep06dwokTJ7Bs2TKZT1lPnz6NTp06ITU1FY0bN4arqyvu3r2LLVu2ICAgAEePHoWTkxMAwNHRES9evMCJEydgY2MDR0dHyXkaNmwodd5Pnz6hXbt2uHPnDhwcHFCnTh0EBwdj+vTpSE5Oxrx58xS6vv91+fJl+Pr6ombNmmjTpg1u3ryJ3bt34+bNm7hy5Qratm2L6OhotGjRAtWrV0dwcDB69+6NY8eO5TiwVhHXr1+Ho6Mj0tLS4ODgAAcHByQnJyM6OhorVqxA165dYWZmJmm/e/duDBw4EB8/fkS9evXQsmVLvH79Grdv38b48eMxbty4fF/z7t27aNOmDZ4/fw4bGxt4eHggMTERZ86cQWBgILZs2YJ+/foV6P2kpKSgY8eOCAkJgbGxMZycnGBiYoJHjx7B398fFhYWqF+/vqT9ypUrMX78eGhpacHBwQEWFha4ffs2Vq1ahcOHD+P8+fNS718R79+/R/PmzREVFYVatWpJ/q6ePHmCHTt2oEaNGnBwcFD4vHZ2dhBFEc+ePcPw4cMxfPhwlCtXDgCQlJQkaScIAuzs7KSOFQQBDx8+LND7KYmKtDuTIAgwNDTMcZ8oihg6dCgiIiJk9u2vIuRwBBERUdGrV69ervvu3LmT7/H9+/fH/Pnz8eTJE9SsWRNdu3aFk5MTWrRogbp160rd7H8pJiYGJiYm+PfffyWFSFBQEFq3bo2ffvoJnz59wj///IMePXoAAN69e4eWLVsiNDQUZ8+elTwZAABfX19ER0dj4MCBWL9+PXR1dQF8/tS4ffv2mDJlCtzd3dGgQQMAn28e+/fvj9TUVKxZswa+vr6Scy1fvhwTJ05Ev379EBUVBX19fQwbNgw1a9bEiRMn4OjoKDPbzpcuXrwIJycn3L9/X7Ia8NWrV9GiRQssX74c06dPh7Gxcb7XNTdr167F8uXLMX78eACfP0n38PDAqVOn0LJlS1SqVAkPHjyQ3CiuX78ew4YNw2+//VboImLlypVITU3F3r170b17d6l9kZGRKFu2rOT7Bw8ewMvLC1lZWdi5cyd69+4t2ZeVlYWjR4/m+3qZmZno1asXnj9/jhUrVmDMmDGSf0/h4eFo27YtRowYgTZt2qBSpUoKv59x48YhJCQEbm5u2L17t9Tg4+fPn+PFixeS7y9duoQJEybAysoKBw8elPxbEkUR8+bNw88//4yxY8di9+7dCucAgD179iAqKgpjxozBypUrpfa9evUKr169KtB5c5rtKqdJDmJiYgp0/q+J2mZnSktLy7GAICIi0mQ2NjY4cOAAzM3N8e7dO2zevBnDhw9H/fr1UaVKFUydOhVv3rzJ8diVK1dKCggAcHNzQ+PGjREXF4fvvvtOUkAAQOnSpTFixAgAQHBwsGR7dHQ0Dh8+jNKlS2PlypWSAgL4/ATB19cXmZmZWL16tWT7rl278PLlSzg5OUkVEAAwYcIENGnSBM+ePZOM91CElpYW/Pz8JAUEADRt2hQdO3bEhw8fcPXqVYXP+SVnZ2dJAQEAurq6GDt2LADg3r17WLdunaSAAD53xTI1NcXFixeRnp5eqNfOvpFt3bq1zL46depIfQq/fPlypKWlwcfHR6qAAD5fI09Pz3xf79ChQ7h9+zb69u2LsWPHShWkjRo1wqxZs5CSkoKtW7cq/F7i4uLg7+8PQ0NDbN68WWb2IgsLCzRp0kTy/YIFC5CVlYW///5bUkAAnz9AnjlzJho1aoR9+/YhISFB4SxA3te2UqVKUk9EFJGVlVWoL/o/xWKK18DAQISEhEi+iIiI1OXOnTu5fsmrXbt2iI6Oxq5duzB8+HA0aNAAWlpaePXqFRYvXoxmzZrJ9BnX09ODi4uLzLlq1KgBAGjbtq3MPhsbGwCQ6nsfGhoKAPDw8JD6JDzbwIEDAUDq/7fZf+7fv3+O72fAgAEyx8jL2toatra2MtuztxV2Gs2crkv2NbO2tkbNmjWl9mlra8Pa2hrp6ekFvsHNln1Tnd1HP6+bzFOnTgEAfHx8Cvx6J0+eBAB07do1x/3Z3crCwsIUPndQUBAyMzPh4eEhVcjmJCsrC6dPn4aJiQnc3d1l9guCgFatWiErKwvXrl1TOAvwf9d2xowZOHz4MLu/F0PFoogwNDSU+iIiItJ0+vr66NWrF/7++2/cvHkTL168wKJFi1CqVClERUVhxowZUu2rVKkCLS3Z/y0bGRkB+PxJcG77Pn78KNkWGxsL4PMNdE6yt2e3K+gx8srthjS7C9OX2Qsir+uS074v9xf2tadMmQJXV1ccOnQI3377LcqXL4/27dtj1apVSE5Olmr79OlTAP9X4BREdlecPn36SA1mz/5q2rQpABSoOMrOl12Y5iUxMRHv379HcnIydHR0cszyxx9/FDgLALi7u2PChAm4e/cuOnXqhDJlyuDbb7/FrFmzCrUA34ULFwp8LElTyRSvREREX7uKFStiypQpMDQ0xJgxY3DkyBGp/bmNlZB3v7zts7fntF/ZGQp6jLLOr8zXzukpQ+nSpXHmzBmcP38ehw4dwtmzZ3H69GkEBgZi/vz5CAkJkbopz77BLqjMzEwAQMeOHfMc81C7du0Cv4Y8+bJzmJiYyIwF+a/cplGVx7Jly+Dj44MDBw7g9OnTOH/+PK5cuYJFixZh586duT6RyYujoyPq1q2L4cOHY+DAgShfvnyB833tWEQQERGpkKurK4CCf0Kbn+wFsh49epTj/uxPcb/sr5/fMdmDTAs6044m0NPTA/B5VqCcZH9S/1+CIMDR0VHSlSg+Ph7jxo3Djh07MGPGDOzcuRMAULVqVTx48AAPHz4scH/+7Kc6vr6+6Ny5c4HOkZuqVasCAKKiovJta2pqCn19fejq6uY5qF4Z7OzsMHXqVEydOhVpaWn4888/MXnyZPj4+BSoiHBxccG5c+cwceJETJ8+Hd27d8fw4cMlP5ckv2LRnYmIiKikyG/tg+wpIotqNdzsm9kjR47kOIA7e9Bt9nStX/5527ZtOZ4ze/uXx2TfdGdkZBQ+dDGQXSDdv39fZt+9e/fw5MkTuc5TsWJFyVoTt27dkmxv06YNAODvv/8ucMbsc+zfv7/A58iNq6srtLW1cfToUTx//jzPtjo6OnB1dcXr16+VsjaFvAwMDDBp0iSYmZkVeIamoKAg3L9/H1OmTEG5cuWwY8cOuLu7w9bWFosWLcLLly+LIHnJxCKCiIhIiWbNmoWpU6fm+Kn+gwcPMGnSJADItxtIQdWoUQPfffcdkpOTMW7cOKkZiC5evIg1a9ZAW1sbI0eOlGzv3bs3KleujJCQEJmb3JUrVyIsLAyWlpbo1q2bZHt2EfTfheg0VbNmzVCqVCkcO3ZMajBwfHw8hg4dmmN3prVr1+b493zs2DEAgJWVlWTb+PHjYWBggLVr12Lv3r1S7eWd4rVnz56oXbs2/P39sXDhQpnZpT59+oR9+/ZJFS/yMjc3h5eXF1JTU+Ht7S0z7WlsbCyuX78u+X7GjBnQ0tLCoEGDJIP5/9v+zz//VDhHtv379+PSpUsy28PDw/Hy5UuYmJhIzbqlCBsbGyxYsABPnz7F3r170b59e0RHR2P69OmwsrJCz549cfz48UIthvg1YHcmIiIiJXr//j1WrFiBJUuWwM7ODnXq1IGuri6ePHkimcGnSZMmmD17dpFl+Ouvv+Dk5ITNmzcjODgYLVq0QHx8PM6ePYvMzEwsXbpUalpOIyMjbNu2DZ06dYKPjw/+/vtv2Nra4u7duwgPD4eRkRG2b98OfX19yTHW1tZo0KABrl69CgcHB9SrVw/a2tro3Lmz0rvaqIKxsTEmT56MX3/9FY6OjpLuLZcuXULdunXRokULXLx4UeqYtWvX4ocffkDdunVRp04d6Ojo4N69e7hx4wYMDQ2l/o5tbW2xYcMGDBo0CD179kT9+vVRv359JCUl4datW4iNjc33plVHRwcBAQFo3749pk+fjhUrVqBBgwYoXbo0nj59irt37+LNmzcICAjAN998o/A1WLFiBe7evYtTp07B2toaTk5OMDY2xuPHj3H9+nX89NNPaNy4MQBIVtkeP348nJyc0KBBA9SqVQtpaWmIiYlBZGQkjI2NMWrUKIVzAMDZs2exYsUKWFhYoFGjRihdujRiY2MRGhqKrKwszJ07V2r64oLQ1tZGt27d0K1bNzx79gzr16/Hxo0bERAQgICAAFhaWmLYsGEYPnw4qlSpUqjXKon4JIKIiEiJZs6cic2bN6Nfv37Q0dFBcHAw9u3bh6ioKLi4uODPP//EhQsXUKZMmSLLYGFhgbCwMEyaNAk6OjrYt28frl27Bnd3d5w4cQITJ06UOcbd3R1hYWHo27cvnj17hj179uDFixcYMGAArl27JtWVKdvevXvRtWtXREdHY/PmzVi/fr3Up9WaZs6cOVi8eDEsLS1x+vRp3L59G0OHDsXJkycl3be+NHfuXAwZMgSCIOD06dM4dOgQPnz4gBEjRiAiIgItWrSQat+3b1+EhYWhX79+SExMxN69e3Hjxg3UqlVLZkG13NSuXRs3btzAnDlzUKlSJYSGhuLIkSOIj4+Hs7MzNm7cKOn2pCgTExMEBQVh+fLlsLOzQ3BwMA4fPow3b95gyJAh6NWrl1T70aNH4/Lly+jfvz+SkpJw8OBBXLx4EVpaWvD19cWBAwcKlAP4vJ7HpEmTYG5ujitXrmDv3r149OgRPDw8EBQUJNfq3oqwtLREq1at0LRpU4iiCFEU8fTpU8yePRvVq1fHlClTCr2uSEkjiIV4VpM9lVhISIhcU7OmpqZKfgkFBgaiXbt2OR7/zLNZQSNRDsrVzXmKOyJ1KjXtV3VHKFEEI/6cK41BhfzbEFGJEBcXhw0bNmDDhg14/PgxRFGEvb09fHx84O7ujt27d+OPP/7Ay5cvMXbsWCxfvlzdkYsNPokgIiIioq9GVlYWDh06hC5duqBatWqYNWsWXrx4gUGDBuHixYsIDw+Hr68vatWqhRkzZuDu3buwtrbGjh071B29WOGYCCIiIiL6KsyaNQsbN25EXFwcRFFE3bp1MWLECAwaNCjXLoalS5eGk5MTtmzZouK0xRuLCCIiIlKrhIQETJ48Wa62tWvXxvTp04s4keYLDQ2Fn5+fXG27du1aoDUXNNH//vc/6Ovro2/fvvDx8clxrE9OXF1di3zhRE3DIoKIiIjU6v3799i0aZNcbV1cXFhEyCEqKkrua2ptbf3VFBGLFi3C4MGDUaGCYmOfvL294e3tXTShNBSLCCIiIlIra2trzsmvZLzpzZmDgwMSExPzLSIePHiAuLg4ODs7qyiZ5mER8RXQNSncPMpERULgvA5KlcWpB4mI8uPm5gZvb2+sX78+z3aLFi3Chg0bkJmZqaJkmof/FyciIiKir0L2GhDytKO8sYggIiIiIvpCbGwsjI2N1R2jWGN3JiIiIiIqsTZv3iz1fVRUlMy2bBkZGbh37x5OnTqF5s2bqyKexmIRQUREREQllre3t2R6VkEQcP78eZw/fz7X9qIowsDAAD///LOqImoktRURaWlp6nppIiIiIvpK/PzzzxAEAaIo4tdff0XDhg3RpUuXHNvq6enB3Nwc7dq1g5mZmYqTaha1FRGdO3dW10sTEREVqexPPcuWLYtHjx6hbNmyMm3mzJmDX375BfPnz+e6B0RFaM6cOZI/+/v7o02bNpg9e7b6ApUQKh1YbWBgAHt7e1W+JBERkdq8efMGy5cvV3cMIvr/Hj9+jEWLFqk7Romg0iJCEAT4+fkhJCQEgYGBqnxpIiIildLS0oKenh5+//13JCUlqTsOEZFSqXyKV0EQYGhoCENDQ1W/NBERkcro6upi2LBhePfuHZYtW6buOERESsV1IoiIiIrIjBkzoK+vjxUrVuD169dyHyeKIjZt2gRnZ2eULVsWhoaGaNCgAZYsWYL0dNnVyQVBgLW1dY7n8vf3hyAIUv3CAcDV1RWCIODx48fYvn07mjdvDhMTE6nxGx8+fMDcuXNRv359GBoaokyZMnB2dsY///yT42tZW1tLxoP4+fmhQYMGMDQ0RJUqVeDj44M3b97IHJOSkoKFCxeiYcOGKFu2LIyNjWFjY4NevXrhxIkTcl0vIlI9FhFERERFxMLCAsOHD0dycjKWLl0q1zFZWVno06cPvL29cfPmTTRt2hTt27dHfHw8pkyZgq5duyIrK0tpGefPn4+BAwdCT08Pnp6eqF+/PgAgOTkZzs7O+Pnnn/Hq1St4enqiVatWuHLlCvr27Yvx48fnes6pU6di1KhRKF26NDp06ABRFPH333+jc+fOUisBZ2Zmol27dpg+fToSExPh6uoKDw8PVK5cGYcPH8aOHTuU9j6JSLmK1ToRoihy6lciIipRfvzxR/j5+WHVqlWYOHEiKlSokGf7JUuWYPfu3Wjbti22bduGihUrAvj8iX3fvn1x6NAhrFmzBqNGjVJKvs2bN+PMmTNwcXGR2j5jxgxcu3YNbdq0QUBAgGT13rt378LFxQUrVqxAu3bt4OHhIXPOrVu34vLly2jYsCEAICEhAS1atEBISAiCgoLQunVrAEBISAguXLiALl26YN++fdDS+r/PNt++fYuoqCilvEciUr5i8yRCFEUMHToUTk5O6o5CRERfsXr16uX6VRDm5uYYMWIEkpOTsWTJkjzbZmRkYPHixTAxMcH27dslBQQAGBkZYd26ddDX18dff/1VoCw5GTp0qEwBkZKSgvXr10NLSwurV6+WFBAAULt2bcycORMAsHLlyhzPOXfuXEkBAQCmpqb44YcfAADnzp2TbH/16hWAz12rviwgAKBMmTJo0qRJwd8YERWpYlNEpKWlISIiQt0xiIiIlG769OkwMDDAH3/8gYSEhFzbhYeHIyEhAY6OjjA1NZXZX7lyZdSqVQu3b99GamqqUrLltG7TtWvXkJqaCgcHB9SqVUtm/8CBAwEA58+fl+qelK1du3Yy22xtbQEAcXFxkm0NGzaElpYWFi9ejH/++QfJyckFfh9EpFrFpoggIiIqDu7cuZPrV0GZmZnB19cX79+/x+LFi3Nt9/jxYwDAsWPHIAhCjl+3b9+GKIoKDdTOi5WVlcy22NhYAMh1sHbZsmVRpkwZvH//Hu/evZPZb2lpKbMt+2nGx48fJdtsbW2xePFixMfHo2/fvihXrhwaNmyIyZMnF+p6E1HRK1ZjIoiIiEqqadOm4a+//sKff/6JyZMn59gmMzMTAFCrVi20bNkyz/Pp6+vL9br5DcI2MDDIdV/2TEt5yamNPMdlmzhxInr16oX9+/fj5MmTCAkJwdKlS7F8+XKsXLlSaWM/6Oukra1d4GMFQUBGRoYS05QsLCKIiIhUoEqVKvjhhx+wbNkyLFq0CEZGRjJtsj/Br1+/Pvz9/eU+t66uLt6/f5/jvqdPnyqc1dzcHADw6NGjHPe/ffsWb9++hZGREUxMTBQ+/39VrVoVY8aMwZgxY5CRkYF//vkHgwcPxsSJE9G/f3+paWeJFFG1alWFilqSH4sIIiIiFZk2bRrWrl2L1atXw8vLS2Z/s2bNUKZMGQQFBeHdu3coXbq0XOc1MzPDkydP8Pr1a5QvX15qX2BgoMI5mzRpAkNDQ1y5cgUPHjyQGRexdetWAICjo6PSb9B0dHQwYMAArF69GhcvXsT9+/fh4OCg1Negr0d2F0FSPo6JICIiUpFKlSph5MiR+PDhAzZt2iSzX19fH5MnT8abN2/Qo0cPxMTEyLSJiIjAzp07pbZlz640d+5cyTZRFDF//nxcuHBB4ZxGRkYYMmQIsrKyMGrUKKSkpEj23b9/H/PmzQMAjBkzRuFzfykoKAinTp2S6XIVExODyMhICIKQ4/gKIlI/PokgIiJSoalTp2LNmjVSN+ZfmjFjBv7991/s2LEDdnZ2aNy4MaysrJCQkIDo6Gg8evQIXbp0QZ8+fSTHTJs2DXv27MHvv/+Os2fPwsbGBrdu3cLTp08xcuRIrF69WuGc8+fPx6VLl3Dy5EnUqFEDLi4uSElJwZkzZ5CWloaxY8fiu+++K/B1AICbN29iwoQJqFixIpo0aYIKFSogPj4e586dQ1paGsaPHy/pWkVExQuLCCIiIhWqWLEiRo0ahUWLFuW4X0tLC9u3b0ePHj3g5+eHq1ev4urVqzA1NUW1atUwaNAgfP/991LH1KtXD2fOnMGPP/6IK1euIDo6Gq1atcKuXbsQHh5eoJwmJiYIDg7G0qVLsXPnThw8eBB6enpo2rQpRo4cib59+xbovF/y9PREYmIigoKCcPPmTSQmJqJixYpwcnLCyJEj0bVr10K/Bn3dnjx5Uqjjc5q9jD4TxJwmeJZT06ZNAXxecdLQ0FChY1NTUyULy4WEhACA5Pv9VTgARpkqfWut7ghEMnRHzVZ3hBJFMJBdU4AKqFQVdScgIiXR0tIq8Lgdzs6UNz6JICIiIqISydnZmbMzFREWEURERERUIp09e1bdEUoszs5EREREREQKKRZPIlJTU9UdgYiIiIi+Mh8/fsTr16+hr68vs8YK5a1YPIlo164d2rVrp+4YRERERPQVWLNmDRo2bAgjIyNYWlpi8uTJkn27du1C9+7d8eDBAzUmLP7U9iTCwMAA9vb2uHnzproifDUEnWJRKxJJE7Pyb0NERKREGRkZ6NatG44ePQo9PT3UrVsXt2/flmpTp04d7N+/H40bN8bMmTPVlLT4U9vdpSAI8PPzQ0hICEJCQhAYGKiuKERERET0FVixYgWOHDkCT09PxMTEICIiQqbNN998g+rVq+PYsWNqSKg51DomQhAEhdeXICIiIiIqiM2bN8PMzAz//PNPnvegNWrUQGRkpAqTaR72cyEiIiKir8KDBw/w7bff5vshtqmpKRISElSUSjOxiCAiIiKir4K+vj7ev3+fb7snT56gTJkyKkikuVhEEBEREdFX4ZtvvkFYWBgSExNzbfPkyRNcv34dTZs2VWEyzcMigoiISEkEQVDoy9raWt2RZcyZMweCIMDf319qu7e3NwRB4ArApNGGDh2Kt2/fYsCAAUhKSpLZ//79ewwbNgyfPn3CsGHD1JBQcxSLxeaIiIhKgkGDBslsCw0NxcOHD2Fvb4+GDRtK7TM1NVVRMiICPv+MHjlyBHv27EH16tXh6OgIALhw4QJ69uyJoKAgJCUloV+/fujWrZua0xZvLCKIiIiU5L+f3gOfP8F/+PAhunbtijlz5qg8ExFJ27lzJxYvXowlS5bg6NGjAID79+/j/v37KFOmDObOnYsZM2aoOWXxxyKCiIiIiL4agiBg6tSpmDRpEsLDw/H48WNkZmbC0tISzZo1g56enrojagSOiSAiItIw6enpWL16NVq1aoWyZcuiVKlSsLW1xfDhw2VW3wU+d6nq1q0bKlWqBH19fVhbW2Ps2LGIj48vdJbExETMmDED9erVg7GxMcqUKQNbW1t4eXnhypUrhT4/UVHR1tZG06ZN0bNnT/Tp0wetWrViAaEAPokgIiLSICkpKejYsSNCQkJgbGwMJycnmJiY4NGjR/D394eFhQXq168vab9y5UqMHz8eWlpacHBwgIWFBW7fvo1Vq1bh8OHDOH/+PMzMzAqU5f3792jevDmioqJQq1YttG/fHsDn2W127NiBGjVqwMHBQSnvm6igzpw5g2fPnqFp06aoW7dunm3//fdfXL16FVWrVoWbm5uKEmomFhFEREQaZNy4cQgJCYGbmxt2796NChUqSPY9f/4cL168kHx/6dIlTJgwAVZWVjh48CAaNGgAABBFEfPmzcPPP/+MsWPHYvfu3QXKsmfPHkRFRWHMmDFYuXKl1L5Xr17h1atXBTovkbI8ffoU3333HapWrYpr167l275q1aro1q0bnj17hgcPHsDc3FwFKTUTiwgiIqIv1KtXL9d9d+7cUWESWXFxcfD394ehoSE2b94sVUAAgIWFBSwsLCTfL1iwAFlZWfj7778lBQTwuU/4zJkzERAQgH379iEhIaFAM0VlFwmtW7eW2VepUiVUqlRJ4XMSKZOfnx8+ffqERYsWwcTEJN/2JiYmWLx4Mbp27Yr169dj1qxZKkipmYrNmAgDAwPY29urOwYREVGxFRQUhMzMTHh4eMDS0jLPtllZWTh9+jRMTEzg7u4us18QBLRq1QpZWVlyfUKbkyZNmgAAZsyYgcOHDyMtLa1A5yEqKidPnkTFihXRtWtXuY/p3LkzKleujGPHjhVdsBKg2DyJEAQBfn5+SEtLQ2IvZ3XHISKir5S6nzbk5enTpwAAGxubfNsmJibi/fv3AAAdnbz/d5+QkFCgPO7u7pgwYQJ+//13dOrUCXp6emjYsCHatWuHoUOHFsvF9OjrcvfuXbRq1Urh45o2bYoLFy4UQaKSo9gUEcDnQsLQ0FDdMYiIiIo1QRDybZOZmQngc/eM7t2759m2WrVqBc6ybNky+Pj44MCBAzh9+jTOnz+PK1euYNGiRdi5c6dCnwATKVtKSgrKlCmj8HFlypSRFOGUs2JVRBAREVHuqlatCgCIiorKt62pqSn09fWhq6ub4yJ4ymRnZ4epU6di6tSpSEtLw59//onJkyfDx8eHRQSpVbly5fDy5UuFj3v58iXKlStXBIlKjmIzJoKIiIjy5urqCm1tbRw9ehTPnz/Ps62Ojg5cXV3x+vVrnDt3TkUJP49xnDRpEszMzDhDE6ld3bp1cenSJaSmpsp9zIcPH3Dx4sV8p4P92rGIICIi0hDm5ubw8vJCamoqvL298fr1a6n9sbGxuH79uuT7GTNmQEtLC4MGDUJoaKjM+WJjY/Hnn38WOM/+/ftx6dIlme3h4eF4+fIlTExM+GkuqVWnTp2QkpKCefPmyX3MvHnzkJqaik6dOhVhMs3H7kxEREQaZMWKFbh79y5OnToFa2trODk5wdjYGI8fP8b169fx008/oXHjxgAAZ2dnrFixAuPHj4eTkxMaNGiAWrVqIS0tDTExMYiMjISxsTFGjRpVoCxnz57FihUrYGFhgUaNGqF06dKIjY1FaGgosrKyMHfuXOjq6irz7RMpxMfHB4sXL8aCBQtgaGgoKaxzkpWVhf/9739YsGABqlSpAh8fHxWn1SwsIoiIiDSIiYkJgoKCsGbNGmzbtg3BwcEQRRGWlpYYMmQIevXqJdV+9OjRaNGiBZYvX45z587h4MGDMDExgaWlJXx9fWXaK8Lb2xs6Ojo4d+4crly5grdv36JKlSrw8PDAhAkT4OrqWsh3S1Q4pUqVwr59++Du7o7Zs2dj3bp16NWrFxo3boyKFSsCAOLj43H9+nXs3r0bz549g4GBAfbu3YtSpUqpOX3xJoiiKBb04KZNmwIAQkJClDqr0jPPZko7FwGVW9VQdwQiGTojflJ3hBJFMOSiXkpTqoq6ExCRkkVERGDAgAG4fft2jrObZd8O16tXD1u3buXaZXLgkwgiIiIiKtEaNGiAiIgInDhxAkeOHEF4eDgSExMhiiJMTU3RsGFDfPfdd+jQoYO6o2oMFhFERERE9FVo37492rdvr+4YJQKLCCIiIjUJDQ2Fn5+fXG27du3KNReIqNhgEUFERKQmUVFR2LRpk1xtra2tWUQQUbHBIoKIiEhNvL294e3tre4YREQKK5ZFhIllRXVHKFEyUzPUHYFIhnbcVXVHKFFEbT11RygxtOoMUHcEIqJijytWExERERGRQlhEEBERERGRQlhEEBERERGRQlhEEBERERGRQlhEEBERERGRQlhEEBERKZkgCFJfurq6MDU1xTfffANvb2/s3bsXGRn5z5yXkpKC5cuXw83NDZUrV4aenh7KlSuHFi1a4Oeff8aTJ09U8G6IiGQVyyleiYiISoJBgwYBALKysvD27Vvcv38fmzdvxqZNm1CzZk1s27YNDg4OOR576dIldO/eHXFxcShVqhSaN2+OypUr4+3btwgLC8OlS5ewaNEiHD58GG3atFHl2yIiYhFBRERUVPz9/WW2PXz4EDNmzMCuXbvg5uaG8+fPo2HDhlJtIiIi0Lp1a6SmpmLatGmYNWsWjIyMJPuzsrKwf/9+TJ06Fc+ePSvid0FEJIvdmYiIiFTIxsYGO3fuxNChQ/HhwwcMGTJEar8oihgwYABSU1MxZ84cLFiwQKqAAAAtLS10794d165dQ9OmTVUZn4gIAIsIIiIitVi6dCmMjIwQHh6O0NBQyfYTJ07g1q1bsLS0xE8//ZTnOcqUKYP69esXdVQiIhksIoiIiNSgTJky6NixIwAgKChIsv3IkSMAgF69ekFHh72Oiah4UtpvJ1EUkZaWpqzTERERlXgNGzbEnj17EBkZKdkWHh4OAGjcuLG6YhER5UspRYQoihg6dCgiIiKUcTqcblpJKechIiJSVL169XLdd+fOHaW+lqmpKQAgKSlJsi0xMREAULFiRaW+FhGRMimlO1NaWprSCggiIqKvhSiKAD6vK/HfbURExZnSO1sGBgbC0NCwUOf4NKGHktIQEREpRtlPG/KSkJAAAChfvrxkm6mpKe7du4f4+HiV5SAiUpTSB1YbGhoW+ouIiOhrcOPGDQBA3bp1Jduy14y4fv26GhIREcmHszMRERGpwdu3b3H8+HEAgJubm2T7d999BwDYvXs3MjIy1JKNiCg/LCKIiIjUYNKkSUhJSUGzZs3QokULyfYOHTqgXr16ePbsGf73v//leY53796ptPsVEVE2FhFEREQqFB0djT59+mD9+vUwMjLC+vXrpfYLgoCtW7fCwMAAc+bMwY8//oiUlBSpNqIo4uDBg2jatCnCwsJUGZ+ICEARDKwmIiKiz7y9vQEAWVlZePfuHe7fv4+7d+9CFEXUqlUL27dvxzfffCNzXMOGDXHq1Cn06NEDCxYswMqVK9GiRQtUrlwZb9++xdWrV/Hy5UsYGBigatWqKn5XREQsIoiIiIrMpk2bAAA6OjooXbo0zM3N4eXlhc6dO6Nz5855rkjdqlUrREVF4a+//sKhQ4cQERGBpKQkGBsbw87ODr6+vhg2bBgsLS1V9XaIiCRYRBARESmZstZ6MDY2xqRJkzBp0iSlnI+ISFk4JoKIiIiIiBTCIoKIiIiIiBTCIoKIiIiIiBSilCIiLS1NGachIiIiIiINoJQionPnzso4DRERERERaYBCzc5kb2+PmzdvKiuLRPKzeKWf82uW/EzdCYhkWUxoru4IJYr473F1RyAioq9IoYoIPz8/pKWlITU1Fe3atVNWJiIiIiIiKsYKVUQIggBDQ0NlZSEiIiIiIg3A2ZmIiIiIiEghLCKIiIiIiEghLCKIiIiIiEghLCKIiIiUTBAEydfFixdzbbdr1y5JO2tra9UFLGa+9vdPpIlYRBARERWhbdu25bpv69atKkxCRKQ8LCKIiIiKgL6+PurWrYudO3ciIyNDZn9iYiKOHz+Oxo0bqyEdEVHhsIggIiIqIv3790dCQgJOnDghs2/nzp1IT0/HgAED1JCMiKhwWEQQEREVkf79+0MQhBy7LW3duhXGxsbo0qVLjseKoogdO3bg+++/h62tLYyMjGBiYgIHBwesXr0aWVlZub7usWPH4OnpiUqVKkFfXx9WVlbo2rUrjhw5Imnz+PFjCIIAV1dXvHv3DpMmTUL16tWhq6uL8ePHS9r9+++/6N+/P8zMzKCnpwcLCwt4eXnh3r17Mq979uxZCIIAb29vxMXFwdvbG5UrV4ahoSEaN26MzZs353m9MjMzsWjRItja2kJfXx9Vq1bFtGnT8PHjR5m2N27cwNSpU9GkSRNUrFgR+vr6qFGjBkaOHInY2NhcX2PXrl1o1qwZDA0NUblyZQwePBgvX76Et7c3BEHA2bNnZY6Jj4/H5MmTYWdnBwMDA5QrVw4dO3bEuXPn8nw/RCVZoRabIyIiotxVq1YNrVq1wsGDB/H+/XsYGxsDAB49eoSLFy/Cy8sLpUqVyvHYjx8/ol+/fihXrhzq1q2Lxo0bIyEhARcvXsSoUaNw5coV+Pv7yxw3adIkLFu2DNra2mjRogUsLS0RGxuLoKAgvHnzBt99951U+9TUVLi4uCAmJgYuLi5o3LgxypUrBwA4ffo0OnXqhNTUVDRu3Biurq64e/cutmzZgoCAABw9ehROTk4yGV6/fo3mzZvj48ePcHV1RVJSEoKCgjBo0CA8evQIs2fPzvE99+/fH4cPH4aDgwPs7OwQEhKCRYsW4fnz5zKF2IIFC7Bnzx7Ur18frVq1giAIuHHjBtasWYP9+/fj6tWrMDc3lzrm999/x4QJE6CtrQ1XV1eYmpri5MmTOHv2LBo0aJBjprt376JNmzZ4/vw5bGxs4OHhgcTERJw5cwaBgYHYsmUL+vXrl+OxRCWZ0ouI1NRUZZ+SiIhIYw0YMAChoaHYt28fvLy8APzfgOr+/fvnepyOjg727t0LT09P6OnpSbbHx8fDw8MDmzZtwpAhQ+Ds7CzZt3XrVixbtgyWlpY4cuSI1I1xSkoKLl++LPM6V65cQYsWLRAdHY2yZctKte/fvz9SU1OxZs0a+Pr6SvYtX74cEydORL9+/RAVFQV9fX2pcx46dAht27ZFQEAAjIyMAABhYWFo3bo1fv31V3Tp0gUNGzaUOiYmJgalSpXC7du3JTM1PXr0CE2aNMG2bdvwyy+/wMbGRtJ+xIgRWL58OczMzCTbsrKyMG/ePMyePRszZ87Ehg0bJPuio6Mxbdo0GBgYIDAwUFL8pKWloWfPnjh48KDMtcnMzESvXr3w/PlzrFixAmPGjIEgCACA8PBwtG3bFiNGjECbNm1QqVIlmeOJSjJBFEWxsCdJTU3N8ZOIgtpfRVDauYioeLLYskndEUoU8d/j6o5QYnwzYn2u++7cuSPXOQRBgL6+PtLS0pCUlIQqVarA1dVVMjaidu3aePv2LZ49e4b4+HiYmZmhWrVqePz4sVznP3XqFNq2bYuJEydi6dKlku1169ZFZGQk9uzZgx49euR5jsePH6N69eoAPt/gN23aVGr/xo0bMWTIEDg5OeXYbadp06a4du2apMsV8Lk7k5ubGwRBQGRkJOzs7KSOmT59OhYuXIgRI0bgr7/+krpe2e/L3d1d6pixY8di1apV2LhxI7y9vfO5Mp9ZWloiNTUViYmJkm0zZ87E//73P/j4+GDt2rVS7R8+fAhbW1tkZWUhKCgIrq6uAID9+/ejW7du6Nu3L7Zv3y7zOitWrMD48eOxdOlSTJw4Ua5sRCWFUp5EGBgYwN7eHjdv3lTG6YiIiEqMcuXKwcPDA4cOHcKLFy/w9OlT3Lt3T9KtJj83btxAYGAgYmJi8OHDB4iiiOTkZADAgwcPJO1iY2MRGRmJChUq5FtAfMnMzEymgACAkJAQALk/LRkwYACuXbuGkJAQSRGRrVGjRjIFBAD07dsXCxcuRGhoqMw+XV1dyc37l2xtbQEAcXFxMvsSExNx8OBB3L59G2/evEFmZiYAID09Ha9fv8br169Rvnx5AMCFCxcAAL169ZI5j42NDRo1aoRr165JbT958iQAoGvXrjLHAICjoyOAz0UY0ddGKUWEIAjw8/NDWlqaMk6HxF7O+TciIiIqAvI+bVDEgAEDsH//fvzzzz949OiRZFtePn36BG9vb+zYsSPXNtnFBAA8ffoUAKS6/MjDysoqx+3Zg5NzWwQue3tOg5irVaum8DFmZmY5FlXZ40j+O7h6x44dGDFiBN6/f5/jawGfr092EZH9mlWrVs2xrZWVlUwRkf1kqE+fPujTp0+ur5OQkJDrPqKSSmljIgRBgKGhobJOR0REVGJ4enqibNmy2Lx5M2JjY1GnTp1814dYtmwZduzYgfr162Px4sWSAc+6urq4f/8+7OzskFOP5OyuQfIyMDDIc39+51P09ZRxnpiYGHh7e0MURfz+++/47rvvYGFhIbkPadmyJS5evKjQ9cmpbfaTjY4dO+Y55qF27dpyZycqKTg7ExERURHT19dHz5494efnB+BzP//8BAQEAICkkPhSdHS0TPvsT9ijoqIKGxcAJDMbZT85+a+YmBgAkBrY/N99uW3/76xJijp69Cg+ffqESZMmYdy4cTL7c7o+ZmZmuHfvHp48eYJatWrJ7M9+kvMlS0tLAICvry86d+5cqMxEJQ3XiSAiIlIBLy8vVKhQAaampnnOypQtKSkJQM7db3bt2iWzzdzcHHXq1EFiYiL27dtX6LzZE6Zs27Ytx/3Z23OaWOXGjRu4f/++zPbsrlmtWrUqVLa8rs25c+fw8uVLme0tW7YEAOzZs0dmX3R0NMLDw2W2t2nTBsDnAdZEJI1FBBERkQo4OTkhISEB8fHxuY4Z+FL2gOL/ziS0Z8+eXBdtmz59OgBg/PjxMmM7UlJScObMGbnz9u7dG5UrV0ZISAj+/vtvqX0rV65EWFgYLC0t0a1bN5ljs7KyMHbsWHz48EGy7dq1a/jzzz+hpaUFHx8fuXPkJPvabN26FSkpKZLtz58/l5qK9kuDBw+Grq4u/P39JYOsgc9TvI4fPz7Hxft69uyJ2rVrw9/fHwsXLkR6errU/k+fPmHfvn24detWod4PkSZiEUFERFQMTZ06Fdra2pg+fTqaNm2Kfv36oVmzZujVqxcmTJiQ4zFeXl4YPXo0nj59Cnt7ezg7O6Nfv35wdXWFubk5fv31V7lf38jICNu2bYOhoSF8fHwkGRo3boxx48bByMgI27dvl1kjAvg8BiQyMhI2Njbo06cPOnTogBYtWiA5ORkzZsxAkyZNCnxdAKBz586oV68erl69ipo1a6Jnz57w9PSEra0typUrJ3nq8KWaNWvit99+Q1paGpydndG2bVt8//33qFWrFm7evIlOnToBgNSaHDo6OggICEDVqlUxffp0VKtWDR06dEDv3r3RokULVK5cGT169MDDhw8L9X6INBGLCCIiomLI2dkZoaGhaN26NaKjo3H48GHo6elh7969GDVqVK7HrVq1CgEBAXB3d8ft27exd+9ePHr0CO7u7pg2bZpCGdzd3REWFoa+ffvi2bNn2LNnD168eCGZ3jW3NaIqVKiAixcvok2bNggKCsLZs2dRt25dbNy4EXPnzlUoQ0709PQQEhKCH374AQYGBjh8+DAiIyMxZswYnDx5Erq6ujkeN3nyZOzYsQP29vYICQnBmTNn4ObmhkuXLkkWy61QoYLUMbVr18aNGzcwZ84cVKpUCaGhoThy5Aji4+Ph7OyMjRs3Sro9EX1NlLLYnLI982ym7ghEVMS42JxycbE55dFqxUXDCip7sblBgwbB399f3XHklpKSAmtra6SmpuLt27dyrd9B9LXjkwgiIiL6KkRHR+Pt27dS296/fw9fX18kJCSgT58+LCCI5MQpXomIiOirsGvXLsyZMwdNmjSBpaUlkpKSEB4ejoSEBFhbW+O3335Td0QijcEigoiIiL4K7u7uuHHjBi5duoTw8HCIoggrKysMGjQI06ZNQ8WKFdUdkUhjsIggIiIipXB1dc1x5efiolmzZvjnn3/UHYOoROCYCCIiIiIiUkixnJ1JE9SrVw8AZBbzIcXxWioXr6fy8FoqD68lEVHJwicRRERERESkEBYRRERERESkEBYRRERERESkEBYRRERERESkEBYRRERERESkEBYRRERERESkEE7xSkRERERECuGTCCIiIiIiUgiLCCIiIiIiUgiLCCIiIiIiUgiLCCIiIiIiUgiLCCIiIiIiUgiLCCIiIiIiUgiLCCIiIiIiUgiLCCIiIiIiUgiLCCIiIiIiUgiLCCIiIiIiUgiLCCIiABcuXFB3BCIiIo0hiKIoqjuEJvnw4QOCgoLw4MEDJCcnI6fLJwgCZs2apYZ0moPXkYobLS0t1K1bF8OHD8fAgQNRvnx5dUcqMe7cuZPnzzoAeHl5qTgVEREVBosIBfj7+2PChAl49+6dZJsoihAEQeb7zMxMdUTUCLyORSM0NBQHDhzItzA7ffq0GtIVf25ubjh37hwAQE9PD927d8fw4cPh6uqq3mAa7NSpUxg5ciQePnyYaxv+rBMRaSYWEXI6deoU2rdvjzJlymDUqFEICgrCxYsXsXbtWjx8+BABAQF48OABRo8ejSZNmmDQoEHqjlws8ToqnyiKGDp0KDZt2iQpHARBkCoisr/nzVreHj58iHXr1mHz5s148eIFBEGAjY0Nhg0bhkGDBqFy5crqjqgxrl69ilatWkEQBPTq1Qu3bt3CrVu3MH36dDx8+BCnTp1CUlISvL29YWVlhdmzZ6s7MhERKUIkuXTo0EHU1tYWb9y4IYqiKHp7e4taWlqS/RkZGeKECRNEIyMj8datW+qKWezxOirf6tWrRUEQxGbNmomnTp0Se/ToIWppaYn3798Xjx8/Lg4ePFjU0dERp06dKj5+/FjdcTVCRkaGuG/fPrFjx46itra2KAiCqKenJ/bo0UM8duyYmJWVpe6IxV737t1FLS0tMTAwUBRF2Z/1pKQksXfv3mKlSpXEJ0+eqCsmEREVEIsIOVWoUEFs1aqV5Pv//g9RFEUxMzNTrF69uti9e3dVx9MYvI7K5+DgIBobG4sJCQmiKOZ8TXfv3i1qaWmJ+/fvV0dEjfb06VNxzpw5YrVq1UQtLS1RS0tLtLKyEn/99VcxLi5O3fGKrSpVqohNmjSRfJ/Tv8u0tDSxSpUqopeXl6rjERFRIXF2Jjm9f/8eVlZWku8NDAwAAMnJyZJtWlpa+PbbbxESEqLyfJqC11H5IiMj0aJFC1SoUAEAJGNLvuy21LNnTzRp0gRLlixRS0ZNZmlpiVatWqFp06YQP3/wgqdPn2L27NmoXr06pkyZgvT0dHXHLHZev36NmjVrSr7X09MDAKSkpEi26evrw8nJCSdPnlR5PiIiKhwWEXKqUqUKEhISpL4HgPv370u1e/36NVJTU1WaTZPwOipfVlYWTE1NJd+XKlUKAJCUlCTVrlatWrh165ZKs2myuLg4/O9//4ONjQ3at2+Pffv2wd7eHqtXr8a9e/cwb948lCtXDsuWLcPUqVPVHbfYqVixotTkCRUrVgQAREdHS7VLTU3F27dvVZqNiIgKj0WEnGrXri11o9uyZUuIooiFCxdKBrBeuHABZ86cgZ2dnbpiFnu8jspnYWGBZ8+eSb6vVq0aACA8PFyq3f3796Gjo6PSbJomKysLhw4dQpcuXVCtWjXMmjULL168wKBBg3Dx4kWEh4fD19cXtWrVwowZM3D37l1YW1tjx44d6o5e7NSsWVNqViYHBweIooi//vpLsi0qKgpnzpxBjRo11BGRiIgKQ41dqTTKypUrRUEQxIsXL4qi+Lnfvr29vailpSWamZmJjRs3FvX09EQtLS1xy5Ytak5bfPE6Kt/3338vVqhQQUxPTxdFURRv3LghCoIg2tvbi//++6/47t07cdGiRaIgCGKbNm3UnLb4mjlzpmhhYSFqaWmJgiCI9erVE1esWCG+efMmz+MGDRok09efRHHhwoWiIAiSCRI+fvwoWltbi1paWqKDg4PYvXt3sWzZsqKWlpa4fPly9YYlIiKFsYiQ05s3b8Tjx49LzW7z7NkzsX379pLZW8qWLSv+9ttvakxZ/PE6Kt/27dtFQRDEgIAAyba+ffuKgiBIBgJraWmJurq64uXLl9UXtJgTBEE0MDAQ+/fvL547d07u4zZu3Ch6e3sXYTLNFBcXJ65du1a8ffu2ZFtERIRYu3ZtURAEURAEUVtbWxwxYgRnuyIi0kBcJ0IJPnz4gLdv36JSpUrQ1tZWdxyNxetYcB8/foSOjo7kuqWnp2Pp0qXYv38/kpKSYGtri6lTp8LJyUnNSYuvJUuWYPDgwZIB6lR07t69i6SkJNSsWVMyVoKIiDQLiwgiIiIiIlIIB1YTEREREZFCOFWLAuLj47F69WoEBwcjLi4OHz9+zLGdIAhSs5J8zYYMGQJBEPDbb7+hcuXKGDJkiNzHCoKA9evXF2E6Imn//vsvFi1ahHPnziEuLg6fPn3KsZ0gCMjIyFBxOs3z8eNH/PPPP3L9zjx9+rSK0xERUWGwO5Ocbt26hdatW+P169eQ55JlZWWpIFXxp6WlBUEQEBkZCVtbW2hpyf/wSxAEqQXT6LMaNWpAEAScOnUK1atXV2h6TBa4ubt48SLatGkjWZ+kQoUKMDY2zrX9o0ePVBVNIz158gRt2rTBw4cP8/2dyZ91IiLNwycRcho/fjwSExPh5eWFSZMmwcbGRrKoF+UuKCgIACSrVGd/TwX3+PFjAJCskpz9PRXOjz/+iNTUVIwfPx4zZ85E+fLl1R1Jo40bNw5RUVFo3bo1xo0bBxsbGxgZGak7FhERKQmfRMjJyMgItWrVwo0bN9QdhYiKgLGxMWxtbXH9+nV1RykRSpcuDTMzM9y5c4eLHBIRlUAcWC0nY2Nj1KpVS90xiKiI6OnpoWbNmuqOUWLo6urC3t6eBQQRUQnFIkJOrVu35lMIohLM0dERt27dUneMEqNFixaIjIxUdwwiIioi7M4kp4cPH6JFixbw9vbGggULFBogTNLu3LmDJUuWSGZs4Qw4yvPkyZM8Z8EBAGdnZxUm0hy3b99G8+bN8csvv2DSpEnqjqPxrl+/DmdnZ8yfPx9jxoxRdxwiIlIyFhEKiIqKQpcuXZCeng5XV1dYWFhAEASZdoIgYNasWWpIWPwFBwejY8eOSEtLgyAIqFChQp6DLTkDjnzWr1+P//3vf4iJicm3LWfB+Wzz5s0y28LCwrB69Wo4OTmhbdu2sLS0zPFnHAC8vLyKOqLGu3DhAgYMGIBq1aqhbdu2uf7OBHg9iYg0DYsIOaWnp2PEiBHYvHkzpysshG+//RZhYWGYOXMmJk+ejNKlS6s7ksZbs2YNRo8eDVEU0ahRo3xnwdm4caMK0xVf2dMP/1f2z3duN7uiKPJnXE6//PILFi9ejA8fPvB6EhGVMBzxJqeZM2di06ZNqFy5Mvr3748aNWpwusICiIiIQPPmzfHrr7+qO0qJsWzZMujp6eHIkSNo3bq1uuNojJ9//jnXG1sqvMWLF+OXX36Bvr4+unfvzt+ZREQlDJ9EyMnS0hLp6em4desWKlWqpO44GsvCwgLNmzfH3r171R2lxDA0NISbmxuOHj2q7ihEEjVq1MDr169x+fJl2NnZqTsOEREpGUcHyykpKQmOjo4sIArJ09MTV65cyXUwNSnOyspKrlXUKW9PnjzB69ev822XlJSEJ0+eqCCRZnvx4gVcXFxYQBARlVAsIuRUr149vHz5Ut0xNN68efOgp6eHwYMH4927d+qOUyIMGjQIFy9eRFxcnLqjaLTq1atjypQp+babOnUqatSooYJEms3Gxgbv379XdwwiIioiHBMhp0mTJmHgwIG4cOECWrZsqe44GqtixYq4cuUKXFxcYG1tjaZNm+Y5y9X69evVkFKzTJs2DVeuXEGHDh2watUqTuFaQKIoyv1Eh09+8ufr64upU6fi7t27qF27trrjEBGRkrGIkFOLFi0wevRoeHh4YOLEiWjTpk2e0xVaWVmpOKFmePfuHXr16oXIyEiIoohTp07l2pZFhHy0tbXx119/wd3dHW5ubtDT00OVKlVyLcwePnyohpQlR0JCAgwNDdUdo9gbNWoUHj58iHbt2mHevHlo06YNzM3N1R2LiIiUhAOr5ZQ9HWT2dIR54SJpuRsxYgT8/PxQv359jBgxIt8ZW1xcXFSYTjNFRkbCzc0N8fHxcn1CnpWVpYJUmuHcuXOSP7u6uqJDhw6YPn16jm0zMjJw7949TJw4EfXr10dYWJiqYmokbW1tAODvTCKiEopFhJxcXV0Vmg4yKCioCNNorsqVK8PAwAD//vsvp3tUEg8PDxw/fhze3t6YOHEiatSogVKlSqk7lkb4cq0IeW52s9ts27YN33//vSoiaixra2uFfmdyYUkiIs3CIoJUqnTp0mjfvj12796t7iglRpkyZVC9enXcuHFD3VE0jre3t+RGd9OmTahZsyZatWqVY1s9PT2Ym5ujU6dOaNy4sSpjEhERFTscE0Eq1ahRI8TExKg7Romip6eHWrVqqTuGRvL395f8edOmTXB0dMSGDRvUF4iIiEhDsIgooMTERMTGxkIQBJiZmaFChQrqjqQRZs2ahQ4dOmD//v3o2rWruuOUCG5ubggPD1d3DI3HsSJFLzk5GYIgwNjYWN1RiIiokNidSUFr167FypUrce/ePanttWvXxpgxY+Dr66umZJrh3Llz2LdvH1avXo0BAwbkO8sVpyvNX3R0NBwcHDBkyBAsWLAAWlpc/oWKj+PHj2PlypU4f/68ZN0IIyMjODk5YcyYMejQoYOaExIRUUGwiJBTVlYWevfujYCAAIiiiLJly6JatWoAPq90m5SUBEEQ0K1bN+zevVuhAYVfky9nuQKQ73XKzMxURSyN9uuvvyI6OhpbtmyBjY0NXF1d81x7Y9asWWpIqTmePHmCQ4cO4cGDB0hOTs5xxitOPyyfiRMnYsWKFZJrWKZMGQDA27dvAXy+juPGjcOyZcvUlpGIiAqGRYSc1q5di5EjR8LOzg6LFy+Gp6en1P4jR45gypQpuHfvHlavXg0fHx81JS3evhzIKo+NGzcWYZqS4b+FWV4EQWBhlodff/0Vc+fOlera9N+CN3uGJl7HvO3cuRN9+/ZFpUqVMHPmTAwcOFBSRLx79w5btmzBvHnz8OrVK+zYsQO9e/dWc2IiIlIEiwg5ffvtt7h37x7u3buHypUr59jmxYsXsLOzQ+3atXH58mUVJ6Sv1aZNmxRqP2jQoCJKotmyb3qtra3x008/Yffu3Th58iSOHz+O6Oho7Ny5E2fPnsXEiRPRqVMnrmGSDxcXF4SFheHGjRuwtbXNsc39+/fRsGFDODg44OzZs6oNSEREhcIiQk4mJiZo27Yt9u3bl2e77t274+TJk0hOTlZRMiJSBhcXF1y+fBn37t1DtWrVMHjwYGzevFnqicPy5csxdepUBAUFwdHRUY1pi7+yZcvC0dERhw8fzrOdp6cnQkND8ebNG9UEIyIipeAITCXjWAj5vX79GidPnsSOHTtw4cIFdcehr1xERARatmwpGev0ZfelbBMmTICdnR3mzZunloya5NOnT3ItKGlkZIRPnz6pIBERESkTiwg52dnZISgoCImJibm2SUhIwJkzZ2BnZ6fCZJrn5cuX6NOnDypXrowOHTpgwIAB8PPzk+xfvXo1ypcvj5CQEDWm1DwZGRnYv38/fvrpJ/j4+EitdxAbG4uIiAhkZGSoMWHx9vHjR1SpUkXyvYGBAQDIfEJub2+PsLAwVUbTSDY2NggODsaHDx9ybfPhwwcEBwfDxsZGhcmIiEgZWETIadCgQXj79i3atGmD4OBgmf1nz55F27Zt8e7dO3h7e6s+oIZISEhAy5YtsXv3bjRo0ACjRo2SGRDctWtXJCcnY8+ePWpKqXmCg4NRo0YN9OjRA/Pnz4efnx9CQ0Ml+0+fPo1GjRrhwIEDakxZvJmZmeHFixeS7y0sLAAAd+7ckWr37NkzDqqWQ+/evfHq1St0794d0dHRMvsfPnyI7t27Iz4+Hn369FFDQiIiKhSR5JKRkSF6eHiIgiCIWlpaorm5udiyZUuxVatWorm5uailpSUKgiB+9913YmZmprrjFltjx44VBUEQ586dK9kmCII4ePBgqXbffPON2LBhQ1XH00gRERFiqVKlRH19fXHChAninj17ZK5pSkqKaGxsLPbt21eNSYu3Ll26iGZmZpLvQ0NDRUEQRDc3NzE5OVkURVHcuXOnKAiC2LJlS3XF1BgfPnwQmzRpIgqCIOro6IgtW7YU+/XrJ/bv319s2bKlqKOjIwqCIDZr1kz88OGDuuMSEZGCWEQoIDMzU1yyZIloZWUlCoIg9VWtWjVxyZIlLCDyYW1tLdatW1dqW05FhKenp2hqaqrKaBqrZ8+eora2tnj69GnJtpyuabNmzcTatWurOp7G8PPzEwVBEE+ePCnZ1rp1a1EQBFFXV1csX768qKWlJWppaYnHjh1TY1LNkZycLI4ePVosVaqUzO/MUqVKiaNHj5YUaEREpFl01P0kRJNoaWlh0qRJmDRpEp4+fYrY2FgAgLm5OapWrarmdJohLi4OXbp0ybedgYEBZ7iSU3BwMJo3b47WrVvn2c7KygonT55UUSrNM2DAADg6OqJixYqSbQEBAZg6dSr279+PpKQk1K1bFz/++CNXWZaTsbExVq1ahYULF+LatWtSvzObNGmCUqVKqTkhEREVFIuIAqpatSoLhwIoU6YMnj9/nm+7Bw8eSA1ypdy9e/dO0n8/Lx8/fmRf/jzo6+vLTIpQunRprF27FmvXrlVTqpKhVKlScHJyUncMIiJSIg6sJpVq2bIlrly5IjNY9Uvnz59HREQEnJ2dVZhMc5mZmSEyMjLfdrdv35ZMX0pERERUGHwSoYBXr15h9erVOHfuHOLi4vDx48cc2wmCgIcPH6o4nWaYNGkSDh48iM6dO+Pvv/+Gm5ub1P7Q0FB4eXlBR0cHEyZMUFNKzdKuXTv4+fkhICAA3bp1y7GNv78/YmJiMHnyZBWn00yXL19GaGioVPebVq1aoXnz5mpOplk+fvyIHTt2yPU78/Tp0ypOR0REhcEVq+UUGRkJFxcXJCYmykxJmpOsrCwVpNJMK1euxMSJEyGKIkxMTJCcnAwTExPo6uri9evXEAQBK1euxMiRI9UdVSPExMSgQYMG+PjxI6ZMmYIuXbrAwcEBvXv3xsyZM7F//3789ttvMDIywq1bt9hNLA+3bt3CkCFDcP36dQD/t9Bc9sJzDRs2xMaNG9GgQQO1ZdQUz58/h7u7Ox48eJDv70xBENjVjohIw7CIkJOnpyeOHj2KHj16YMaMGbC1tZVrNVbK2aVLl7BgwQKcOXMG79+/B/C5T7qrqytmzJjB/tMKCg0NRa9evfDy5UuZVdNFUUTFihUREBCAli1bqilh8Xfv3j20aNECb968QdWqVdGjRw9YW1tDFEU8efIEe/fuxZMnT1CmTBlcvHgRtWvXVnfkYq1fv374559/0LJlS0yaNAm2trYwNjbOtT272hERaRYWEXIqU6YMzM3N8e+//8rcpJH8MjIyoKPzf73oRFFEYmIiMjMzYWpqCm1tbcm+Z8+ewdLSUh0xNVJycjLWr1+PU6dO4fHjx8jMzISlpSXatGkDHx8flC1bVt0Ri7UePXogICAA06dPx6+//ir17xQAMjMz8fPPP2P+/Pno1q0b9u7dq6akmqFChQowMTHB3bt3Jat/ExFRycEiQk6lS5dGhw4dsGvXLnVH0Wh9+vTBzp0782335MkTtG7dGlFRUSpIpdni4uJgZmYmV9vTp0/D3d29iBNppvLly8PCwgK3bt3Ks90333yD58+f4/Xr1ypKppmMjY3RsWNH7N69W91RiIioCHB2Jjk1bdqUN7RKsHv3bvj6+ubZ5vHjx3BxccGjR49UlEqztW3bFm/evMm33YkTJ9C5c+eiD6Sh0tPT5Rrr0KBBA6Snp6sgkWb75ptv8OzZM3XHICKiIsIiQk5z5szBrVu3+CSikLp3745169ZhxowZOe6Pjo6Gq6srYmJisGTJEhWn00yRkZHo2LEjPnz4kGubY8eOoWvXrlLdxUiavb29XLOqPXz4EPb29ipIpNmmTZuGsLAwBAcHqzsKEREVAU7xqoBx48ahf//+OHr0KNq2bQtLS8tcx0dwjYOc7dixAx4eHli4cCHKly8vNeVoVFQUWrdujWfPnuH333/H2LFj1ZhUcyxatAhTpkxB165dceTIEejq6krtP3z4MHr27Ak9PT0cPXpUTSmLv59++gmenp7YsGEDhgwZkmObjRs3IiwsDIcOHVJxOs3TuHFjTJo0CZ06dcLEiRPz/Z1pZWWl4oRERFQYHBMhJy0tLQiCIDPlY244XWHuUlJS4O7ujrCwMKxbtw5DhgzB/fv30bp1a8TGxmLlypUYPXq0umNqlBkzZmDBggXo0aMHdu3aJfn3eeDAAfTu3Rv6+vo4fvw4Z2fKw7lz57Br1y6sWbMGrVq1Qp8+fSQzBsXExGDnzp04f/48fvjhB/Tu3VvmeH5wIO3L35n5/b4UBAEZGRkqSkZERMrAIkJO3t7eCs3KtHHjxiJMo/mSkpLg6OiI+/fvY/78+Vi+fDni4uLwxx9/cH2IAvLx8cG6deswdOhQrFu3Dnv37kXfvn1haGiIEydOcKG0fOT3QUF+HyDwgwNprq6uCv3ODAoKKsI0RESkbCwiSG1iY2PRsmVLPH36FACwevVq+Pj4qDmV5hJFEX369MHevXvh4eGBwMBASQHx7bffqjtesafoBwX/xQ8OiIjoa8IigorUuXPn8tx///59jBw5Et9//z2GDRsms59dRBSTnp4OT09PnDx5EmXLlsWJEyfQrFkzdcciIiKiEoZFBBWp7C4iecmrzzS7iMj69ddf89z//v17/P777/Dw8EDjxo2l9gmCgFmzZhVlPCIiIvoKsIjIxa+//gpBEDBq1CiUL18+3xu3L/FG7f+wi4jy/bfvviIEQWBhJoeMjAzcvHkTsbGxEAQBZmZmsLe3l1nFmv7P5s2bAQDdunWDiYmJ5Ht5eXl5FUUsIiIqIiwicpF9oxYZGQlbW1uFbtx4o0ZFadOmTYU6ftCgQUpKUvJ8/PgRs2fPxtq1a5GcnCy1z8TEBL6+vpgzZw4MDAzUlLD4yu13Zn6yn0TydyYRkWbhx2q5yP4E3MzMTOp7InVjEVA0Pn78CHd3d1y8eBHA55Wpra2tAXye4vXmzZtYvHgxQkNDcfr0aejr66sxbfHz888/QxAEmJqaSn1PREQlE59EEBEBWLBgAWbMmAFHR0esXr0a9evXl9p/+/ZtjB49GiEhIfjtt98wbdo0NSUlIiJSPxYRpFK5rQScE0EQsH79+iJMQ/R/7O3t8eLFCzx8+BDGxsY5tnn//j1sbGxQuXJlREREqDghERFR8cEiQk5Pnz5FUFAQmjdvDltb2xzb3Lt3D5cvX0br1q1haWmp4oSaQUtLK982X65yy37S+atRo4bcbQVBwMOHD4swjeYyMjKCp6cndu7cmWe7Pn364PDhw0hJSVFRMs2UlJSEW7duoWbNmjA3N8+xzfPnz/Hw4UM0aNAAZcuWVW1AIiIqFI6JkNOyZcuwatUq3Lt3L9c2Ojo6GDx4MCZOnIjFixerMJ3myG1V2qysLDx9+hQnTpzAzp07MWHCBHTq1EnF6TTT48eP1R2hRNDR0cGHDx/ybffhwwfO0iSHpUuXYv78+bh+/XquRURCQgLc3Nwwa9YszJkzR7UBiYioUPgkQk716tWDvr4+rl+/nme7xo0bIz09Hbdu3VJRspJn69atGDJkCE6dOsXF5gpBFEVJYfbzzz/Dy8sLCxcuVHesYsvR0RHh4eG4ffs2qlevnmObR48eoX79+mjcuDFCQkJUnFCzNGrUCJ8+fcKdO3fybFevXj0YGBjg2rVrKkpGRETKkH/fEgIAPHnyBDVr1sy3Xc2aNfH06VMVJCq5BgwYgHr16vGTyUISBAFWVlYYPnw4jhw5ghUrVmDdunXqjlVs+fj4IDU1Fa6urti0aRM+ffok2ffx40f4+/vD1dUVaWlp8PX1VWNSzfD48WPY2dnl287Ozg4xMTEqSERERMrEIkJOgiAgPT0933bp6enIyMhQQaKSrVatWrh69aq6Y5QYjRs3hoODA1atWqXuKMXWwIEDMXz4cDx9+hRDhgxBqVKlYGFhAUtLSxgZGWHo0KF4+vQpRowYgf79+6s7brGXnp4ObW3tfNvJ242MiIiKFxYRcqpVqxZCQ0ORmpqaa5vU1FSEhobCxsZGhclKnqysLERERMg1CJvkV7FiRURFRak7RrH2119/Yffu3XB0dISOjg7i4uIQGxsLHR0dODk5Yffu3VizZo26Y2qE6tWr4+LFi3lOjpCZmYkLFy7AyspKhcmIiEgZeJcmp549eyIxMREjRozIsZBIS0uDj48PXr9+jZ49e6ohoeb78OEDbty4gb59++LBgwdwcXFRd6QS4/Xr1zh//jxnwJFDjx49EBwcjPfv3yMuLg5xcXF4//49zp49ix49eqg7nsbw9PREXFwcZsyYkWubn376CXFxcejcubMKkxERkTJwYLWcPnz4gGbNmuHu3buoUqUK+vfvDxsbGwiCgKioKGzbtg0vXryAra0twsLCcp1n/msnT/cGURRRsWJFhISE5DqdLv2fc+fO5brv/fv3uH//PtasWYOoqCj4+vrizz//VGE6+lolJibC3t4ecXFxsLe3x7Bhw6R+Z/r5+eHmzZuoUqUKbty4gYoVK6o7MhERKYBFhAJevHiBAQMG4MyZMwA+j5MAPt/0AoCbmxu2bNmS63SGBFhbW0uu23/p6enBzMwMLi4uGDVqFCpVqqTidJpJS0sr12uaTRRFuLi44ODBgzAxMVFRMs1iZ2eH4cOHY9CgQbyhVZJ///0XPXr0wL1792T+jYqiCFtbW+zduxf16tVTU0IiIiooFhEFEBYWhlOnTklmYapatSratGmDZs2aqTkZfY28vb3lKszc3NxUnEyzZBdjOjo66NKlC4YPH462bduqO5bGy8zMxL59+3L8ndm9e3e5nk4SEVHxwyJCTt27d4eZmRm7ghCVUDExMfDz84O/vz+eP38umSJ32LBhGDx4MJ8wKmjixIkoV64cZs2ape4oRERUBFhEyMnAwABdu3bFP//8o+4oJcqDBw+QkJCAChUqcPwDFQtZWVk4evQo1q1bh2PHjiEjIwPa2trw8PDA8OHD4eHhwZnD5KCnp4cuXbpg9+7d6o5CRERFgP8nlFP16tWRkpKi7hglQmpqKqZNm4YKFSqgdu3acHR0xIIFCyT7N27ciMaNG+PGjRvqC6mhbty4gXXr1mH+/Pk4ePCgZPvHjx/x7t07NSbTHFpaWvD09MSBAwfw5MkTzJs3D1ZWVjh06BC6dOkCKysr/Pzzz3j8+LG6oxZrlpaWyMrKUncMIiIqIiwi5NS3b18EBwfjxYsX6o6i0VJSUuDi4oIlS5ZAX18f3333Hf77MMzZ2Rk3btzAzp071ZRS80RGRqJ58+Zo0qQJfH19MXPmTOzfv1+yf8OGDShXrhyOHz+uvpAaqEqVKpgxYwbu37+P8ePHQxRFxMbGYt68eahZsya6dOmCmzdvqjtmsdStWzcEBwcjOTlZ3VGIiKgIsIiQ048//ggnJye4uLggICBArtWrSdbChQtx9epVDB8+HI8ePZL6tDybjY0NateujVOnTqkhoeaJiYmBs7Mzrly5gi5dumDRokUyhdn3338PXV1d7N27V00pNdPTp0/xyy+/oEaNGlixYgUAwMHBAT/++CNsbGxw6NAhNGvWDAcOHFBz0uJnzpw5sLKygoeHB8LDw9Udh4iIlIxjIuRUo0YNZGVlSWYXEQQBlSpVgoGBgUxbQRDw8OFDVUfUCHZ2dkhPT8eDBw8ks7JoaWnB29sbGzZskLTr2LEjbty4gbi4OHVF1RhDhgzBpk2b4O/vj4EDBwLI+Zo2btwYnz59wu3bt9UVVSNkZmbi4MGDWLduHU6ePInMzEyYmJigX79+8PX1hb29vaTt7t274eXlhVq1aiEiIkKNqYuf1q1bIzU1FZcvX4YgCDAzM4OVlVWuvzNPnz6thpRERFRQOuoOoCn+2/9ZFEV2bSqAJ0+ewNPTM99pHUuXLo2kpCQVpdJsJ06cQKNGjSQFRG6qVauG4OBgFaXSPNkLoG3atAmvXr2CKIpo1KgRfHx80L9/fxgZGckc06tXL+zatSvHJ2pfu7Nnz0r+nN0NLDY2Nse2+a1zQkRExQ+LCDlxgKByGBkZISEhId92jx49QoUKFVSQSPMlJibC0dEx33aCICAtLU0FiTSTra0tBEGAoaEhvL294evrK9faL2XKlGH3xhw8evRI3RGIiKgIsYgglWrSpAlCQ0Px9OlTVK1aNcc2d+7cQXh4OLp06aLidJrJ1NRUrhu2yMhIWFhYqCCRZqpbty58fX3h5eWF0qVLy32cn58f/Pz8ijCZZqpWrZq6IxARURHiwGpSqdGjRyM1NRXdu3dHVFSUzP6YmBh4eXkhKysLo0ePVkNCzePi4oJr167h/PnzubY5fPgw7t27xxWY83D79m2MHj1aoQKCiIjoa8WB1QWQnJyMhw8fIjk5WWYWnGzOzs4qTqU5Jk2ahOXLl0MQBNSpUweRkZEwMzNDlSpVEBERgYyMDEybNg3z589Xd1SNcPv2bTRt2hSlSpXC4sWL0blzZ1SuXBne3t5YuXIl9u/fjwkTJiA1NRU3b96EjY2NuiPTV+jNmzd5/s60srJScSIiIioMFhEKuH37NsaPH4+zZ8/m+j/CbJmZmSpKpZl27dqF3377TWZGGzs7O8ycORP9+/dXUzLNtHfvXgwaNAipqamSbYIgSP6dGhgYYOvWrejWrZu6ImqM4OBgBAcHIy4uDh8/fsyxjSAIWL9+vYqTaZ4XL17g/7V331FR3evXwPcZBFFBQFHpVcFesKPSxBpFSYg1KpYYjfmZqFFvEjWJGmOSG2ss0URRMZYEu5CrwQLYC2BDULpSFEFFUBA47x++zJVLm4FhDqP7sxZrZeY8g5tZZuQ537ZgwQIcPHgQmZmZ5dYJgoCCggI1JiMioupiE6GgO3fuoGvXrnj69Cl69eqF1NRUxMfHY9SoUYiLi8PVq1dRUFAALy8vGBoaYuvWrVJH1ggPHz5EYmIiCgsLYWFhwTn71ZCQkIBVq1bhn3/+QUJCgvw99fT0xJw5c9C8eXOpI9ZqmZmZ8Pb2RlhYWKU3CQRB4I2CSqSmpqJr165ISUmBubk5Xr58iQcPHqBnz56Ii4tDeno6BEFAz549oa2tjZMnT0odmYiIlMAmQkETJkyAv78/tmzZggkTJmDixInYvn27/BeJu3fvYvLkyUhLS8P58+dhZGQkcWIiUsaECROwY8cOtGnTBlOnToW9vX2Z27oWc3V1VWM6zTNjxgxs2LABixcvxoIFC0p9ZoaEhGD69Olo1KgRjh8/Xub5EUREVHuxiVCQpaUlDAwM5Ad1/e8/iMCrOb92dnYYM2YMfvnlF6miElEVNGrUCHp6erh16xb09PSkjqPxitfeFB+8WdZn5v379+Ho6IhPP/0U3333nSQ5iYioarjFq4KKh+GLaWtrAwBevHghv4NmaGgINzc3HDlyhE3E/zdp0qQqv5bzzkmdCgsL0b17dzYQKnL//n2888478sfFB0zm5eWhbt26AABzc3O4u7tj7969bCKIiDQMmwgFNWrUqMRBXY0aNQLwaktSR0fHErUPHjxQa7bazM/Pr8qvZRNRNjs7uyq/VhAE+Z1hKsnJyQmJiYlSx3hjNGzYsMTaEkNDQwCvmovX/w7r6uri/v376o5HRETVxCZCQba2tiUO9OrYsSNEUcTu3bvx9ddfAwAyMjJw6tQpblX4Gi6WVL2EhASpI7yRFi5ciIEDB+LAgQMYPny41HE0npWVVYm/q23btgUABAYGys+Ayc3NxZkzZ2BqaipFRCIiqgY2EQrq378/lixZgvj4eNja2mLo0KEwNjbG4sWLcevWLVhYWGDfvn148uQJD0l7DRefql5RUZHUEd5IHh4e+OOPPzB16lQcOnQInp6eMDc3hyAIZdbzLJiKeXh4YNWqVUhPT0ezZs3g5eWFBg0a4PPPP0dycjIsLCzg7++P9PR0TJ8+Xeq4RESkJC6sVlBsbCx+++03eHt7o1u3bgCAEydOYMSIESX2P+/Xrx8OHTokn/NLRJrDz88PX331FdLS0iqt5RavFYuMjMTy5cvx0Ucfwc3NDQCwa9cuTJw4Efn5+fJzTNq0aYOwsDAYGBhIG5iIiJTCJqKacnJyEBoaiqysLDg4OKBz585SRyKiKvDz88PkyZMhiiKcnJxgZ2dX4RavPAumapKSkhAYGCj/zPTy8pJvVEFERJqDTQTVOuvXr0dGRgYAYNGiRRKnobdF69atkZCQgMDAQPmdcyIiIiobmwgF5eXlIT09HUZGRtDX1y+zJjs7G1lZWTAxMYGOjo6aE745WrVqhejoaJ4KTGpVv359uLq6IigoSOooREREtZ5M6gCaYsWKFbC1tUVkZGS5NZGRkbC1tcXq1avVmOzN4+3tjQkTJmD8+PFSR6G3iLm5udQR3ihr1qyBlpYWAgMDy60JCgqClpYW1q9fr8ZkRESkChyJUFD37t3x6NEj3L17t8I6e3t7NGvWDGfPnlVTMiJShSVLluDnn39GVFQUtxxVAVdXV8TFxSE5ObncGlEUYWlpCQcHB5w4cUKN6YiIqLo4EqGg2NhYtG7dutK6Nm3a8DAvIg305Zdfom/fvhg4cCBCQkKkjqPxoqOj5WdDlEcQBLRr1w63b99WUyoiIlIVnhOhoJycnAp3ailWv359PH36VA2JiEiVWrRoAeDVKfTu7u7Q0dGBiYlJmedE8OTvyj1+/BiNGjWqtM7IyKjENtlERKQZOBKhIEtLS1y+fLnSuitXrnAqRAV27twJOzs7HD9+vNyaY8eOwc7ODnv27FFjMnrbJSQkICEhAaIoQhRF5OXlITExUf7861+vn15PZTMxMcH169crrbtx4waMjY3VkIiIiFSJTYSC+vfvj7i4OKxdu7bcmnXr1iE2NhYDBgxQYzLNsmPHDuTk5MDd3b3cGg8PDzx79gzbtm1TYzJ62xUVFSn1RRVzd3fHzZs3ERAQUG7Nvn37cOPGjQo/D4iIqHbiwmoFJScno127dsjOzsbQoUMxdepU2NvbQxAE3L17F5s2bcLhw4ehr6+PiIgI2NjYSB25VrKwsECrVq0qHIkAXp38HR0djaSkJDUlIyJVioqKgpOTE0RRxLRp0zB16lTY2dnJp4Jt2rQJGzduBABcunQJ7dq1kzgxEREpg02EEkJCQuDj44OMjIxS86RFUYSxsTH27t3Lg6oqoKuri/feew87d+6ssG7s2LEICAjAixcv1JSMiFTtzz//xIQJE5CXlyd/ThAE+ZQxXV1dbNmyBaNGjZIwJRERVQWbCCU9fvwYmzZtQnBwsHzrQktLS3h6emLKlCkwMjKSOGHtZm5uDktLS5w/f77Cuh49eiAhIQFpaWlqSkb0yo0bN7B+/XqEhoYiJSUFgiDA1NQULi4umD59eqU7DlFJd+/exYoVK8r8zPzss8/kC9qJiEizsIkgtRoxYgQCAgJw6tQp9OnTp8yasLAwuLi4YPjw4di3b5+aE9LbbPXq1Zg7dy4KCwtR1kdjnTp18NNPP+HTTz+VIB0REVHtwYXVpFazZs0CAHh5eWHVqlXIycmRX8vJycGqVaswbNgwCIIgryVSh+PHj2PWrFnQ0dHBrFmzEB4ejqysLDx+/BgRERGYM2cO6tati9mzZyM4OFjquERERJLiSASp3apVqzBnzhz546ZNm0IQBKSnp8uf++mnnzB79mwp4tFbatCgQQgODsapU6fg7OxcZs25c+fg4uKCfv36ITAwUM0JiYiIag82ESrk6+uLpKQkCILAO5WVCAkJwfLly3H69Gk8f/4cAFCvXj24ublh/vz5cHFxkTghvW0aN24MJycnhXYOu3r1Kh49eqSmZG+ur776CqmpqRAEAb///rvUcYiISAk8sVqFLly4gOjo6DJPuKWSXFxc4OLigqKiImRkZAAAjI2NIZNxhh1JIzc3F02aNKm0rkmTJsjNzVVDojffvn375J+ZbCKIiDQLmwgV+v777/HkyROpY2gUmUyGpk2bSh2DCJaWljh37hwKCwuhpaVVZk1BQQHOnTsHS0tLNad7M33yySfymwhERKRZ2ESo0PDhw6WOQERVNGzYMPz888+YMmUKVq9ejYYNG5a4/vTpU3z66adISkoqsaaHqm7GjBlSRyAioirimgiqUR4eHhAEAdu2bYOFhQU8PDwUfi3XlpA6ZWZmomvXrkhISEDDhg0xePBg2NjYQBAExMfH4+jRo3j69Cns7Oxw6dIlnglDRERvNTYRVKNkMhkEQUBUVBQcHByUWvMgCAIKCwtrMB1RSSkpKfjoo49w9OjRMq+/8847+PXXX2FmZqbmZERERLULm4hybN++vVqvHz9+vIqSaLbExEQAr06qrlOnjvyxoqytrWsiFlGF4uPjERYWhpSUFACAmZkZevfuDVtbW4mT1V4hISHVej13ZCMi0ixsIspRfAddWaIo8g46Eb11qvqZWYyfmUREmoULq8uxaNEibtVaA7Zv347mzZuXe5hXsfPnzyMmJoYjOkQaYvz48fzMJCJ6i3AkgtRKJpPB19cXW7ZsqbDuww8/xJYtW3h3kmpM8ZRFb29v6OvrKz2FkQ0uERG9zTgSQbVSUVER72pSjfL19YUgCOjRowf09fXljytTPGWRTQQREb3N2ERQrRQXF1dqn34iVSqesmhsbFziMREREVWO05nKsXjx4iq/VhAELFy4UIVpNNvr7+U333yDjh07lnswX0FBAaKjo/HXX3+hX79++Pvvv9WUkoiqgzvaERG9XdhElKN4p5GqvD3cnamk199LRd/Tpk2bIjAwEE5OTmpISETVxR3tiIjeLpzOVI6tW7dKHeGNUfxeiqKISZMmoXfv3pg8eXKZtTo6OjAzM0OPHj1Qt25ddcYkomrgdDAiorcLRyJIrdzc3DB48GDMmzdP6ij0lps0aVKVXysIAn7//XcVpiEiItIsbCKI6K0kk8nKfL74bvr/fjS+/jyn3xAR0duO05mqICIiApcuXUJGRgbatGkDLy8vAEBeXh7y8vK4q1AFHB0d8eGHH2LChAlo0qSJ1HHoLXby5MlSz+3duxcbNmyAs7MzRo0aBSsrKwBAUlISdu3ahXPnzmH69OkYMWKEuuNqtMzMTFy5cgUZGRmwtrau9LBJIiLSACIp7NatW2L37t1FmUwm/5o4caL8+vr160WZTCYGBQVJmLJ2EwRBlMlkoo6Ojvj++++Lx44dkzoSkSiKonj06FFRS0tL/P3338ut2bJli6ilpSUeOXJEjck0V1pamjhixAixTp06ZX5mrlu3TjQyMhJDQkIkTElERFVR9ng+lZKYmAgXFxdcvHgRw4YNw48//lhqusOoUaOgra2NgIAAiVLWfvHx8fjyyy/RtGlT/PXXXxg4cCBsbW3x3XffISUlRep49Bb77rvv0K1btwrXSkycOBHdunXDd999p8ZkmikjIwPOzs74888/0b59e8yYMaPUZ+bw4cORnZ2Nv/76S6KURERUVWwiFPTtt98iMzMT27Ztw759+zBnzpxSNUZGRmjdujXOnTsnQULNYG1tjSVLliAxMRGHDh3CkCFDcP/+fSxcuBDW1tYYNmwYjhw5gqKiIqmj0lvm2rVrsLW1rbTO1tYW169fV0MizbZkyRLEx8dj8eLFuHLlCtasWVOqxszMDK1atUJISIgECYmIqDrYRCjoP//5Dzp16oRx48ZVWGdtbc076gqQyWQYMmQIDh48iKSkJCxduhRWVlY4fPgwhg0bBisrKyxatAgJCQlSR6W3RN26dXH16tUKa0RRxNWrV7n9sAIOHTqEVq1aYcGCBRXWWVtb4969e2pKRUREqsImQkGPHj2Cvb19pXWCIODFixdqSPTmMDExwZdffomYmBh89tlnEEURKSkpWLp0KZo3b45hw4YhMjJS6pj0huvXrx9iYmIwc+ZMPH/+vNT158+f47PPPkNMTAz69esnQULNkpqairZt21Zap6uri+zsbDUkIiIiVeLuTAoyNjZGfHx8pXVRUVEwNzdXQ6I3R3JyMrZs2YItW7bI70h269YNffv2xV9//YXDhw8jKCgIf/75J4YNGyZxWnpTLV++HCdOnMC6devwxx9/YPDgwbCysoIgCEhMTERgYCCysrLQpEkTfP/991LHrfUMDAxw//79Suvu3LkDExMTNSQiIiJV4kiEglxdXXHlyhWcOXOm3JojR44gOjqadykVUFhYiP3792Pw4MGws7PDt99+i8ePH2Pq1KkIDw/H+fPn8d133yE6Ohp79uyBlpYWFi5cKHVseoNZW1vj7Nmz8PT0RGZmJvz9/bFs2TJ899138Pf3R2ZmJjw8PBAWFgYbGxup49Z6zs7OuHjxIm7evFluzZkzZ3Dt2jW4uLioMRkREakCD5tT0I0bN9ClSxfUr18fP/30E7y8vNCsWTP4+vpizZo1OHDgAGbNmoXnz58jMjJSoalPb6O7d+/it99+w7Zt2/DgwQOIoohOnTrho48+wtixY9GgQYMyX/f+++/j0KFDyMvLU3NiehvFxcXhzJkzSElJgSiKMDMzQ69evfj/tRLCwsLg6uoKGxsbbNq0Ce7u7qhTpw58fX2xZcsWhIWFYfz48bh37x4uXLiATp06SR2ZiIiUwCZCCQEBAZgwYUKJ+dKCIMi3LdTV1YW/vz+8vb2liljryWQyCIKAevXqYeTIkZg2bRq6du1a6eumTJmCLVu2cNcmqjHvvvsuTE1NsW7dOqmjvDHWrFmD2bNnQxRF6OvrIzs7G/r6+tDW1kZmZiYEQcCaNWvw8ccfSx2ViIiUxCZCSQkJCVi1ahX++ecfJCQkoLCwEBYWFvD09MScOXPQvHlzqSPWam3btsW0adMwfvx4nuxNtYquri6GDx+O3bt3Sx3ljXL+/Hn5epNnz54BeLUTlpubG7788kv06dNH4oRERFQVbCKIiAC0atUKzZs3x+HDh6WO8kYSRRGPHj1CYWEhjI2NoaWlJXUkIiKqBi6sJrXKy8tDUlJShVs6ZmdnIykpCfn5+WpMRm+70aNH4/Tp00hLS5M6yhtJEAQYGxujWbNmbCCIiN4AbCIUdPbsWUyaNKnC06iLay5cuKDGZJplxYoVsLW1rfDch8jISNja2mL16tVqTEZvuy+++AJ9+vSBq6sr9u/fj5cvX0odSaPdvHkTixcvRnh4eLk14eHhWLx4MaKiotSYjIiIVIHTmRQ0duxYHDhwAPfv34ehoWGZNVlZWTA3N8f777+Pbdu2qTeghujevTsePXqEu3fvVlhnb2+PZs2a4ezZs2pKRm87Ozs7FBUVITk5GcCrO+dNmzaFrq5uqVpBEBAbG6vuiBpl6tSp2LZtGxISEmBqalpmTWpqKqytrTFlyhSsX79ezQmJiKg6eNicgs6fP49OnTqV20AAgJGREZycnCo8S+JtFxsbC2dn50rr2rRpwxEdUquEhIQSj0VR5NSmajh9+jQ6depUbgMBAKampnBycsLJkyfVmIyIiFSB05kUlJKSAisrq0rrrKyskJqaqoZEmiknJ6fcsyBeV79+fTx9+lQNiYheKSoqUuqLKnbv3j3Y2tpWWmdjYyM/qZ6IiDQHmwgFNWjQABkZGZXWZWRkQEdHRw2JNJOlpSUuX75cad2VK1cqvINJRLWbjo5OhRsoFHv27BkEQVBDIiIiUiU2EQrq0KEDwsLCKrxjdu/ePYSGhqJ9+/ZqTKZZ+vfvj7i4OKxdu7bcmnXr1iE2NhYDBgxQYzIiUqU2bdogNDQUjx8/LrcmKysLoaGhaNWqlfqCERGRSrCJUNCkSZPw4sULDB06tMzdRsLDw+Hl5YX8/HxMmjRJgoSaYf78+dDX18dnn32G4cOHIzAwENHR0YiJiUFgYCCGDx+OmTNnomHDhpg/f77UcektlZ2djYiICISGhiIkJKTML6rYmDFjkJ2djffff7/MKZ6pqakYOXIknj17hrFjx0qQkIiIqoO7Mynh/fffR0BAAGQyGZycnGBvbw9BEHD37l1cvXoVRUVF8Pb2RkBAgNRRa7WQkBD4+PggIyOj1DQGURRhbGyMvXv3ws3NTZqA9Na6ceMGPvvsM5w6dQqVfTQWFhaqKZVmKigogIeHB8LCwlC/fn0MHjy4xGdmYGAgcnNz4ezsjJMnT0JbW1vqyEREpAQ2EUooKirCsmXLsGLFilJD9IaGhpg1axa+/PJLHqSkgMePH2PTpk0IDg6Wb6lpaWkJT09PTJkyBUZGRhInpLfNnTt30LVrVzx9+hS9evVCamoq4uPjMWrUKMTFxeHq1asoKCiAl5cXDA0NsXXrVqkj13q5ubmYOXMmtm3bVqrp0tLSwvjx47F69Wro6elJlJCIiKqKTUQVvHz5EpcvXy7xy2+XLl14J41Ig02YMAH+/v7YsmULJkyYgIkTJ2L79u3yX37v3r2LyZMnIy0tDefPn2ejq4S0tDScPHmyxGemm5sbN08gItJgbCKIiPDqF1sDAwPcuHEDAEo1EcCrETQ7OzuMGTMGv/zyi1RRiYiIJMeF1SSJhw8f4scff8TQoUPRuXNndOnSBUOHDsVPP/2EBw8eSB2P3kIPHjxA69at5Y+LRxZfvHghf87Q0BBubm44cuSI2vMRERHVJjyxWoUuX76M3NxcAICLi4vEaWqvgIAATJ48GdnZ2aUWrwYGBuK7777Dli1b8O6770qUkN5GjRo1KtEwNGrUCACQmJgIR0fHErVsdFUjNTUVL1++BACFDvMkIqLagyMRKjRu3Di4u7vDw8ND6ii11uXLlzF69Gg8e/YM3t7e2L9/P8LDwxEeHo4DBw7g3XffxbNnzzB69GiFDqUjUhVbW1vEx8fLH3fs2BGiKGL37t3y5zIyMnDq1Cn+wqsiHh4esLW1hZ2dndRRiIhISRyJUCEzM7MSdzKptO+//x6FhYX4888/S400dOjQAV5eXvJmYvny5fjrr78kSkpvm/79+2PJkiWIj4+Hra0thg4dCmNjYyxevBi3bt2ChYUF9u3bhydPnuCTTz6ROu4bQRRF+RcREWkWLqwmtWrWrBkcHBwQGhpaYV2fPn0QExOD9PR0NSWjt11sbCx+++03eHt7o1u3bgCAEydOYMSIEcjMzJTX9evXD4cOHULdunWlikpERCQ5NhGkVrq6unjvvfewc+fOCuvGjh2LgIAAjuyQ5HJychAaGoqsrCw4ODigc+fOUkciIiKSHJsIUisbGxs0aNAAN2/erLCuTZs2yMnJQUJCgnqC0VsvLy8P6enpMDIygr6+fpk12dnZyMrKgomJCXR0dNSckIiIqPbgwmpSqwEDBuD27dtYuHBhmfOgRVHEggULcPv2bQwcOFCChPS2WrFiBWxtbREZGVluTWRkJGxtbbF69Wo1JtNMubm5SEpKQk5OTonnnzx5gi+++AJDhgzBjBkzSixmJyIizcGRiHJUZ7cQQRAQGxurwjRvjnv37qFTp07IzMyEnZ0dRowYARsbGwiCgPj4eOzZswfx8fFo3Lgxrl69CgsLC6kj01uie/fuePToEe7evVthnb29PZo1a4azZ8+qKZlm+vLLL/HDDz/gwoUL6NKlCwAgPz8fHTt2RHR0tPwmQtOmTREZGYlmzZpJGZeIiJTEJqIcMln1BmmKiopUlOTNc/36dYwdO1Z+MrAgCAAg/6WiXbt22LlzJ9q2bStZRnr7GBsbw9nZGYcOHaqwzsvLCxcuXOCi/0qU1ZT5+flh0qRJ8PDwwPz58xEUFIRVq1Zh3rx5WL58uYRpiYhIWdzitRxsAmpOu3btcO3aNZw6dQqhoaFISUkB8GqL3D59+sDNzU3agPRWysnJQYMGDSqtq1+/Pp4+faqGRJotKSkJnTp1KvHcgQMHIJPJ4OfnBwsLC/Tr1w9BQUE4evQomwgiIg3DJoIk4+bmxoaBag1LS0uFDji8cuUKTE1N1ZBIs2VlZcHIyKjEc2fPnkW7du1KTFNs3749/vOf/6g7HhERVRMXVhMR4dVhc3FxcVi7dm25NevWrUNsbCwGDBigxmSaycTERD7KCAA3b95ERkYGXF1dS9QVT2ckIiLNwjURVfT48WNkZ2eXe9KqlZWVmhNplvj4eISGhiI1NRV5eXll1giCgIULF6o5Gb2tkpOT0a5dO2RnZ2Po0KGYOnUq7O3tIQgC7t69i02bNuHw4cPQ19dHREQEbGxspI5cq3l7e+Po0aO4ePEiOnbsiClTpmDr1q34z3/+A09PT3ld586d8fz5c9y6dUvCtEREpCw2EUpIS0vDggULcPDgwRIn2P4vQRBQUFCgxmSaIz8/H1OmTJEfNlfRXz9BEFBYWKiuaEQICQmBj48PMjIySt0hF0URxsbG2Lt3L6fhKeDChQvo1asXAMDAwABZWVno2LEjLl++LN+44sGDBzAzM8Po0aOxY8cOKeMSEZGSuCZCQampqejatStSUlJgbm6OJk2a4MGDB+jZsyfi4uKQnp4OQRDQs2dPaGtrSx231lq0aBH8/f1hZGSEDz74AA4ODtDT05M6FhEAwMXFBTExMdi0aROCg4ORnJwM4NV6CU9PT0yZMqXUPH8qW/fu3XHw4EH89NNPePjwId555x0sW7asxM53f/zxB/T19XkmDBGRBuJIhIJmzJiBDRs2YPHixViwYAEmTpyI7du3y++Uh4SEYPr06WjUqBGOHz8OXV1diRPXTlZWVnj27BnCw8NhbW0tdRwiIiIiqgIurFbQ33//DVtbWyxYsKDM6y4uLjh27BjCw8OxZMkSNafTHA8ePECfPn3YQBARERFpMDYRCrp//z46duwof6ylpQUAJRYFm5ubw93dHXv37lV3PI1hbW2NnJwcqWMQERERUTWwiVBQw4YNSywCNjQ0BPCquXidrq5uqefovyZPnoyLFy/K55oT0ZtJS0tL4a86dbg8j4hI07CJUJCVlRUSEhLkj9u2bQsACAwMlD+Xm5uLM2fO8CCqCnz++ed45513MGjQIJw6darC3ZmISHNZWlrCysqq1JeFhQXq1KkDURQhiiKsrKxgaWkpdVwiIlISb/8oyMPDA6tWrUJ6ejqaNWsGLy8vNGjQAJ9//jmSk5NhYWEBf39/pKenY/r06VLHrTXs7OzKfD4xMRF9+/aFtrY2TE1NyzxwShAExMbG1nREIqoBr990+V9FRUUIDg7GzJkz0aFDB+zatUt9wYiISCW4O5OCIiMjsXz5cnz00UfyPeJ37dqFiRMnIj8/H4IgQBRFtGnTBmFhYTAwMJA2cC3x+naOVVFUVKSiJERU28TFxaF9+/ZYsGAB/vWvf0kdh4iIlMAmopqSkpIQGBiIrKwsODg4wMvLi+dEEBEpyNPTE0lJSYiJiZE6ChERKYFNBBERSWbYsGE4duwYnj9/LnUUIiJSAhdWExGRJBITExESEoJmzZpJHYWIiJTEhdVKio+PR2hoKFJTU0ucEfE6QRCwcOFCNSfTLNeuXcOGDRsQFhaGlJQUAICZmRl69+6NqVOnolOnThInJKLq2L59e7nXnj17hpiYGPj7++Pp06f4+OOP1ZiMiIhUgdOZFJSfn48pU6Zg586dAFDh1qSCIKCwsFBd0TTOkiVLsHjx4nLfIy0tLXz11Vf45ptv1BuMiFRGJpOVuetaseLP0PHjx+O3337jWRFERBqGn9oKWrRoEfz9/WFkZIQPPvgADg4O0NPTkzqWxtmxYwe+/vpr6OnpYcaMGRg9ejRsbGwAvJra8Mcff2D9+vVYsmQJ7O3tMW7cOGkDE1GVLFq0qNwmQkdHB6ampnB1dYWtra2akxERkSpwJEJBVlZWePbsGcLDw2FtbS11HI3VuXNn3LhxA2fPnkXnzp3LrLly5QqcnZ3Rtm1bXLlyRc0JiYiIiKgyXFitoAcPHqBPnz5sIKopKioK7u7u5TYQwKtGw8PDA1FRUWpMRkRERESK4nQmBVlbWyMnJ0fqGBqvYcOGMDIyqrTOwMAADRs2VEMiIqppFy9eRGhoKFJSUiAIAkxNTdGnTx9069ZN6mhERFRFbCIUNHnyZCxduhTJycmwtLSUOo7GGjhwoHxP+Hr16pVZ8/z5c4SEhGDAgAFqTkdEqhQTE4Px48fj0qVLAP67mLp4rUS3bt2wfft2tGjRQrKMRERUNVwToaCioiKMHTsW169fxy+//AJXV9cKdx6hsqWlpaFHjx5o1aoV1q5di+bNm5e4fvfuXcycORNRUVE4d+4cTExMJEpKRNWRmpoKJycnpKenw8zMDO+//36JTRT+/PNP3L9/H6amprh8+TJMTU2lDUxEREphE6EgOzs7AK/+8QMAbW1tmJqaltlICIKA2NhYtebTFJMmTUJmZiYOHToEmUyGTp06ydeZJCYmIiIiAkVFRRgyZAgaN25c4rWCIOD333+XIjYRKWnGjBnYsGEDZs2ahe+//x46Ojolrr98+RJffPEFVqxYgRkzZmDt2rUSJSUioqpgE6EgmUy5NehFRUU1lESzKfs+vo7nbxBpDltbW+jq6la4QYIoimjdujVevHiB+Ph4NaYjIqLq4poIBbEpUI2TJ09KHYGI1CA1NRXvvfdehTWCIMDJyQkBAQFqSkVERKrCJoLUytXVVeoIRKQGDRs2RHJycqV1ycnJ3ImNiEgD8ZwIIiJSuZ49e+Ls2bMICgoqtyYwMBBnzpyBs7OzGpMREZEqcE2EkoKCgvDrr7/i0qVLyMjIwAcffCBf7BsUFITjx4/j888/h5mZmcRJa7/CwkJkZGQgLy+v3BorKys1JiIiVTl37hxcXFwgk8kwZswYjBkzBjY2NhAEAfHx8di5cyd27doFURQREhKCHj16SB2ZiIiUwOlMSvj444/x66+/QhRF6Ovr4+XLl3i9BzM0NMSqVatgYWGB2bNnS5i0djt+/DiWLVuGc+fO4eXLl+XWCYKAgoICNSYjIlXp2bMntm7dio8++gjbtm3D9u3bS1wXRRH16tXDpk2b2EAQEWkgjkQoaMuWLZgyZQq6d++OX3/9Fe3bt4dMJoOvry+2bNkir7O0tETz5s25gLgcAQEBGDlyJIqKimBsbAwbGxs0aNCg3Hq+j0Sa7d69e9i8eTPCwsKQkpICADAzM0OfPn0wefJkHt5JRKSh2EQoqHv37oiNjUV0dLT8/IKymgh3d3fExcXJz5Ogktq1a4eoqChs2rQJvr6+1drylYiIiIikwd/gFHTz5k307Nmz1AFo/8vExAQPHjxQUyrNc/fuXbi6umLSpElsIIiIiIg0FNdEKEgmkyl0VkRKSkqF03PediYmJtDT05M6BhGpUVJSElJTUyvcRMHFxUWNiYiIqLrYRCioZcuWuHz5MnJzc1G/fv0yax49eoSIiAh07txZzek0h4+PD7Zt24anT59yb3iiN9zvv/+O7777TqHpnTyNnohIs7CJUNDYsWMxa9YszJgxA5s3b0adOiXfOlEUMXPmTDx79gzjxo2TKGXt9+233+L06dPw9vbGb7/9BltbW6kjEVEN2LBhAz755BOIoohOnTrB3t6eo7RERG8QLqxW0MuXL9G3b1+EhYXB3t4eAwYMwPr16+Hk5AQ3NzccOXIEMTEx8PDwwLFjxzjfvwJPnz6Fs7MzYmJiYGNjA3NzcwiCUKpOEAQEBwdLkJCIqqtFixa4d+8ejh49Cg8PD6njEBGRirGJUEJubi4+//xz/P7776XON9DS0oKvry/WrFmDevXqSZSw9rt//z48PT0RExODyv7qCYLAKQ5EGqpevXpwd3dHYGCg1FGIiKgGsImogocPH+L06dNISEhAYWEhLCws4O7uzlOqFTBy5Ej8+eef8PT0xMyZM2FnZ1fhFAdra2s1piMiVXF0dISdnR2CgoKkjkJERDWATYSCnJycYG9vjz///FPqKBqtcePGMDY2xq1bt6ClpSV1HCKqIcuWLcOPP/6IqKgomJqaSh2HiIhUjBP3FRQdHQ1tbW2pY2i8oqIidOjQgQ0E0Rtu/vz5cHNzw8CBAxESEiJ1HCIiUjHuzqSgFi1a4NGjR1LH0Hg9evTA7du3pY5BRDVMS0sLv/76K/r27Qt3d3fo6OjAxMSk3E0UYmNjJUhJRERVxelMClq7di3mzp2LiIgItGzZUuo4Guvq1avo1asXfvzxR/zf//2f1HGIqIZERUXB3d0dDx8+rHQTBQAKHeZJRES1B5sIJUybNg379+/Hv/71LwwdOhRWVlbQ0dGROpZG2b59O86fP49ff/0Vrq6u8PT0LHeLVwAYP368mhMSkSoMHjwYf//9N3x9fTF79mzY2dmVe1AnERFpHjYRCiqewy+KYrm/8BYTBAEFBQXqiKVxZDIZBEGQ35ks770sfp+5xSuRZjIwMICtrS0iIiKkjkJERDWAayIUZGlpWWnzQJVbtGgR30eit4COjg5atGghdQwiIqohHIkgIiKVGzFiBMLDw3Hnzh2poxARUQ3gFq9ERKRyy5cvR1ZWFubNm8dF00REbyCORJBa9e/fH1OnTsWwYcN47gbRG2zx4sWIi4vDjh07YG9vDzc3t3I3URAEAQsXLpQgJRERVRWbCFKr4oXVjRs3hq+vLyZPngxHR0epYxGRiv3vJgoV4SYKRESah02ECrVu3RrR0dHcnakCISEh2Lx5MwICAvDixQsIgoA+ffrgww8/hI+PD+rWrSt1RCJSgW3btilVP2HChBpKQkRENYFNhAq1bNkSMTExAHhwUmWePHmCHTt2YPPmzbh+/ToEQYCBgQHGjRuHyZMno3379lJHJCIiIqJysIlQkCJz+VNSUvDy5UsAgLW1tTrjabRLly5h8+bN2LNnD7KzsyEIArp27YqpU6di5MiRaNCggdQRiYiIiOg1bCIUxLn8NS8nJwcLFy7EqlWr5Isv9fT04Ovri3/9618wNTWVOCERERERAWwiFMa5/DXn+fPn2Lt3LzZv3oxz585BFEWYm5vDxcUFgYGBePLkCQwMDHDkyBH06tVL6rhEpCBRFLFz504cPHgQd+7cQXZ2dpkLrQVBQGxsrAQJiYioqthEKIlz+VUnPDwcmzdvxh9//IHs7GwAr6aNTZs2DUOHDoVMJsPz58/xyy+/4IsvvkCXLl1w/vx5iVMTkSLy8/Pxzjvv4MSJE+Xu0PT67k1cR0ZEpFl42JySDAwM8MknnyAyMhIXLlzA5MmTUVhYiLVr16JTp07o0aMHtmzZgpycHKmj1krZ2dnYuHEjOnfujC5dumDjxo2oV68e5s+fj9jYWAQFBWHYsGGQyV791axXrx7mzp2LQYMGITIyUuL0RKSon3/+GcHBwRgyZAju3LmDcePGQRAE5OXlISoqCt988w0aNGiAuXPnsoEgItJAHIlQAc7lV5yenh6eP38OURTh7u6OadOmwdvbG3Xq1KnwdVOmTMGWLVv4ywaRhujYsSPu3buHxMRENGjQABMnTsT27dtLnAcRGhoKd3d3bNq0CZMmTZIwLRERKYtNRDVwLr/yjI2N4evri48++ggtWrRQ+HWZmZnIzs7mrldEGkJPT0/+WQgAkydPhp+fH/Lz86GlpSWvc3V1RU5ODi5fvixVVCIiqoKKb/9SmZSdyz9nzhzO5f//UlJSoKOjo/TrGjVqhEaNGtVAIiKqCVpaWmjYsKH8cfFWzQ8fPoSJiYn8eXNzcxw+fFjt+YiIqHrYRCgoOzsbO3fuxObNmxEREQFRFNGsWTN8/PHHmDp1KmxsbErUF8/lDwkJwT///CNN6FqoKg0EEWkec3NzJCUlyR83b94cAHD+/HkMHz5c/vy1a9egp6en7nhERFRNbCIUZGpqWqW5/M2aNUNeXp6aUtY+ISEh1Xq9i4uLipIQkTr16NEDAQEBeP78OerVq4fBgwdj1qxZ+PTTT1G3bl1YWFhg06ZNiIqKwtChQ6WOS0RESuKaCAVxLn/VFB/SV1WvL8IkIs1x9OhRTJkyBb/++iu8vLwAAHPmzMHKlSvlnwmiKKJBgwa4fPkyD+8kItIwbCIUdPHiRdSvXx9t27aVOopG8fX1rVYTsXXrVhWmISKp7d69GwcOHEBWVhYcHBwwc+ZMpW7MEBFR7cAmQkFaWlpwdXXFiRMnpI5CRERERCQpHjanICMjI573QEREREQELqxWWI8ePXD9+nWpYxARaYTXd2ZShJWVVQ0lISKimsDpTAq6dOkSevfujWXLlmHOnDlSx3mjpaam4uXLlwD4iwWRplJmUwVBEFBQUFDDiYiISJXYRCho+/btOH36NPz8/NCuXTsMGTIEVlZW0NXVLbN+/Pjxak745mjVqhViYmL4iwWRBnNzcyuziSgqKkJycjKSkpJQVFSEnj17QkdHBydPnpQgJRERVRWbCAUV31V7/e0q6x9IURQhCAK3Jq2Gli1bIiYmBsCrXziI6M0THR2NyZMnQxAEHD9+vNwbMkREVDuxiVDQN998o9RWpV9//XUNpiEi0nwPHz6Eo6MjPvzwQ/zwww9SxyEiIiWwiSAiIskMHjwYN2/eRGJiotRRiIhICdzilYiIJJWeni51BCIiUhKbCFKrmzdvYvHixQgPDy+3Jjw8HIsXL0ZUVJQakxGRuoWHh+PUqVOwtraWOgoRESmJ50QoKSwsDAcPHsSdO3eQnZ2NsmaDCYKA4OBgCdLVfqtXr8a2bdvw4YcflltjYmKCpUuXIi0tDevXr1djOiJSlcWLF5d77dmzZ4iJiUFQUBAKCgrw0UcfqTEZERGpAtdEKEgURUyePBnbtm2TNw5l7dbE3Zkq5ujoCCMjI5w/f77Cuh49euDJkyccjSDSUGXtaPe/6tevj88//xzffPON+oIREZFKcCRCQRs3boSfnx+6dOmC77//Hhs2bMD+/fsRHR2NuLg47NmzBzt27MDs2bPx8ccfSx231rp37x6cnJwqrbOxscHRo0fVkIiIasLWrVvLvaajowNTU1N07doVDRo0UGMqIiJSFTYRCvLz80ODBg0QFBSExo0bw9/fHwDQokULtGjRAgMGDMDgwYMxcuRIODs7c45vOXR0dJCdnV1p3bNnz5TaUpeIapcJEyZIHYGIiGoQF1YrKCoqCj179kTjxo0B/PegudenLfn4+KBz587497//LUlGTdCmTRuEhobi8ePH5dZkZWUhNDQUrVq1Ul8wIiIiIlIYmwgFFRUVwdjYWP64fv36AF79wvu6Fi1a4Pr162rNpknGjBmD7OxsvP/++0hNTS11PTU1FSNHjsSzZ88wduxYCRISERERUWU4nUlB5ubmuHfvnvxx8XSl8PBw9OvXT/58TEwM6tTh21qeqVOnYvfu3QgODkaLFi0wePBg2NvbQxAE3L17F4GBgcjNzYWzszOmT58udVwiqiItLa0qv1YQBBQUFKgwDRERqRp3Z1LQ6NGjcfz4caSlpaFOnTqIjIxEp06d0L59e+zatQsWFhbYuHEj5s+fj759++L48eNSR661cnNzMXPmTGzbtq3ULlZaWloYP348Vq9eDT09PYkSElF12djYAACSkpLkzxkaGgJAiemMVlZWZa5/io+Pr8l4RERUTWwiFLRr1y6MHTsW+/btw/DhwwG8mpqze/fuEv8AamlpISwsDN26dZMoqeZIS0vDyZMnkZycDACwtLSEm5sbTE1NJU5GRNX18uVLvPvuu4iMjMTChQsxevRo+Y2BZ8+eYdeuXVi6dCnat2+Pffv2QVtbW+LERESkDDYRSsjLy0OdOnXkw/QvX77Ezz//jAMHDiArKwsODg6YN28e+vTpI3FSIiJpLVq0CCtXrsSNGzfK3a0uMTERbdu2xaeffoqlS5eqOSEREVUHmwgiIlI5e3t7tG/fHvv376+wztvbG5GRkYiLi1NTMiIiUgWuAKYatX37dgCvflHQ19eXP1bU+PHjayIWEdWwlJQUdOjQodI6QRDK3KmNiIhqN45EUI2SyWQQBAFRUVFwcHCQP66MKIoQBKHUwmsi0gwODg5IT09HdHQ0TExMyqxJS0uDo6MjmjZtijt37qg5IRERVQdHIsphZ2dX5dcKgoDY2FgVptFcixYtgiAI8jM2ih8T0Ztt4sSJ+Oqrr+Di4oIlS5bgvffek29/XVBQgICAACxatAjPnj3DF198IXFaIiJSFkciyiGTVe8cvqKiIhUlISLSPIWFhRg1ahQCAgIgCAJkMhmaNWsGQRCQlpaGoqIiiKIIb29v7N27t1rnShARkfqxiSAiohqza9cubNiwARcvXkR+fj4AQEdHB926dcNHH33Ek+mJiDQUmwgiIqpxBQUFePToEURRhLGxsXxqExERaSY2EaR2eXl52LVrF0JCQpCamoq8vLwy6wRBQHBwsJrTEREREVFleCuI1Or+/fvo27cv7ty5g8r6Vy7AJtJcubm5yMjIQOPGjdGgQQP580+ePMHy5ctx/fp1WFtb4/PPP4etra2ESYmIqCo4ElGO6izyEwQBBQUFKkzz5hgzZgx2794NZ2dnzJkzBw4ODtDT0yu3vryTbomodvvyyy/xww8/4MKFC+jSpQsAID8/Hx07dkR0dLT8JkLTpk0RGRmJZs2aSRmXiIiUxCaiHDY2NtW6Ex4fH6/CNG+Oxo0bQ19fH7dv34aurq7UcYiohnTv3h2PHj3C3bt35c/5+flh0qRJ8PDwwPz58xEUFIRVq1Zh3rx5WL58uYRpiYhIWWwiSK309PQwaNAg/Pnnn1JHIaIaZGpqik6dOiEwMFD+3PDhw3HkyBEkJCTAwsICANCqVSvUqVMH169flyoqERFVQfUOQyBSUrt27XDv3j2pYxBRDcvKyoKRkVGJ586ePYt27drJGwgAaN++PZKTk9Udj4iIqolNBKnV/PnzcenSJZw+fVrqKERUg0xMTJCSkiJ/fPPmTWRkZMDV1bVEHTdQICLSTNydqRxJSUkAAHNzc2hpackfK8rKyqomYmk8JycnzJkzB0OHDsXs2bPRr18/WFhYlPuLBN9HIs3UqVMnHD16FBEREejYsSNWrlwJQRAwZMiQEnV37tyBmZmZRCmJiKiquCaiHDKZDDKZDLdu3YKDgwNkMpnCd8y4O1P5it9HURQrfT/5PhJprgsXLqBXr14AAAMDA2RlZaFjx464fPkyZLJXg+APHjyAmZkZRo8ejR07dkgZl4iIlMSRiHK4uLhAEATUr1+/xGOqHr6PRG+H7t274+DBg/jpp5/w8OFDvPPOO1i2bJm8gQCAP/74A/r6+hg4cKCESYmIqCo4EkFERERERErhwmoiIiIiIlIKpzNVQ3Z2NgBAX19f4iSa69GjR0hJSYEgCDA1NUXjxo2ljkREREREleBIhJKOHDmCQYMGwcDAAIaGhjA0NETDhg0xaNAgHD58WOp4GmPjxo1o3bo1mjZtio4dO6JDhw5o2rQp2rRpg40bN0odj4jU4KuvvsKkSZMwefJkqaMQEZGSuCZCQaIoYsqUKfDz80PxW2ZoaAhRFPHkyRMAr3YTGjduHLZu3crFw+UoKirCiBEjsH//foiiCENDQ1hbWwN4ta1uVlYWBEGAt7c3/vzzT76PRG+wVq1aITo6GoIgoLCwUOo4RESkBI5EKGj16tXYunUrTE1NsWHDBjx58gSZmZnIysrCkydPsGHDBpiammLHjh1YvXq11HFrrU2bNmHfvn1wcHDAoUOHkJmZifDwcISHh+PRo0c4fPgwHB0dsX//fmzatEnquERUgz755BN8/fXXWLRokdRRiIhISRyJUFDr1q2RlJSE69evw9bWtsya+Ph4tGvXDlZWVrh165aaE2qG7t27Izo6GtHR0WjWrFmZNWlpaXB0dETLli1x4cIFNSckIiIiospwJEJB8fHx6Nu3b7kNBADY2tqib9++iI+PV2MyzXLr1i14eHiU20AAgImJCfr27ctGjOgt8fLlS6kjEBGRkthEKKhJkybQ0dGptE5HRwfGxsZqSPRm41oIIs22atUqhery8/Ph7e1ds2GIiEjl2EQoyNvbGydOnEBWVla5NZmZmThx4gSGDx+uvmAaxtHRESdPnsSjR4/KrcnIyMCJEyfg6OioxmREpEpz5szB9u3bK6zJz8+Hl5cXgoKC1JSKiIhUhU2EgpYuXQo7Ozt4eHjgxIkTpa6fOHEC/fr1g52dHZYtWyZBQs0wYcIEPHnyBJ6enjh9+nSp66dOnUK/fv3w9OlT+Pr6qj8gEamEo6MjpkyZgkOHDpV5PS8vD0OGDMGxY8fw7rvvqjkdERFVFxdWK8jDwwN5eXk4d+4cBEFAo0aNSmxNWnxnvUePHqhbt26J1wqCgODgYLVnro0KCwvldx4FQYCJiQlsbGwgCALi4+ORlpYGURQxePBgHDp0CDIZ+1wiTXTv3j307t0bDx48QGBgINzc3OTXnj9/jqFDh+LEiRPw8fHB7t27+f86EZGGYROhoOr8A8c90EsqKirCypUrsWbNGiQnJ5e4ZmVlhf/7v//DrFmz+EsFkYaLiYlB7969kZeXh5MnT8LJyQk5OTkYMmQITp8+jZEjR8Lf3x9aWlpSRyUiIiWxiVBQYmJitV5fPGrxtnv69CkEQYC+vj4AIDk5GSkpKQAAMzMzWFpaShmPiFTs6tWrcHd3h66uLo4cOYLPP/8coaGhGD16NHbs2MGbBUREGopNBKmVTCZD9+7dce7cOamjEJGanD59GoMGDUJeXh5EUcSYMWOwfft2NhBERBqMn+CkVgYGBrCzs5M6BhGpkaurK/bs2QMtLS2MHz8e/v7+bCCIiDQcRyKq6PHjx8jOzkZ5b5+VlZWaE2kGDw8P5Obm4vz581JHISIVqs66BkEQUFBQoMI0RERU09hEKCEtLQ0LFizAwYMHkZmZWW4d/0Es33/+8x8MHjwYe/bsgY+Pj9RxiEhFindZq6r4+HgVpiEioppWR+oAmiI1NRVdu3ZFSkoKzM3N0aRJEzx48AA9e/ZEXFwc0tPTIQgCevbsCW1tbanj1lr16tXDlClTMHLkSAwZMgRDhw6FlZUVdHV1y6x3cXFRc0IiqoqEhASpIxARkRpxJEJBM2bMwIYNG7B48WIsWLAAEydOxPbt2+Vbt4aEhGD69Olo1KgRjh8/Xu4vxW87mUwGQRDk08Aqu3PJrXGJiIiIah+ORCjo77//hq2tLRYsWFDmdRcXFxw7dgyOjo5YsmQJvvvuOzUn1Azjx4+v1pQHIiIiIpIemwgF3b9/H++88478cfEiwry8PPkJ1ebm5nB3d8fevXvZRJTDz89P6ghEpAZr1qzBrFmzcPjwYQwePLjMmqCgIAwZMgRr167Fxx9/rOaERERUHdxjT0ENGzYssROToaEhgFfNxet0dXVLPUdE9LYJCAiAmZlZuQ0EAAwcOBCmpqb466+/1JiMiIhUgU2EgqysrEosHGzbti0AIDAwUP5cbm4uzpw5A1NTU3XHIyKqVaKjo+Wfk+URBAHt2rXD7du31ZSKiIhUhdOZFOTh4YFVq1YhPT0dzZo1g5eXFxo0aIDPP/8cycnJsLCwgL+/P9LT0zF9+nSp49ZqeXl52LVrF0JCQpCamoq8vLwy6wRBQHBwsJrTEZEqPH78GI0aNaq0zsjIqMIts4mIqHZiE6GgsWPHIjk5GVFRUWjWrBkaNWqEX3/9FRMnTsRPP/0k33GoTZs2XA9Rgfv376Nv3764c+dOuQf1FeMCbCLNZWJiguvXr1dad+PGDRgbG6shERERqRK3eK2mpKQkHD16FI8fP4aDgwO8vLx4TkQFxowZg927d8PZ2Rlz5syBg4MD9PT0yq23trZWYzoiUpXibbD37t2L9957r8yaffv2wcfHB2PHjsWOHTvUnJCIiKqDTUQ1ZGdnAwD09fUlTqI5GjduDH19fdy+fZtnaRC9waKiouDk5ARRFDFt2jRMnToVdnZ2EAQBsbGx2LRpEzZu3AgAuHTpEtq1aydxYiIiUgYXVivpyJEjGDRoEAwMDGBoaAhDQ0M0bNgQgwYNwuHDh6WOV+vl5eWha9eubCCI3nCtWrXC9u3bIZPJsHbtWrRr1w4NGjRAgwYN0K5dO6xZswYymQx+fn5sIIiINBBHIhQkiiKmTJkCPz8/+Vx+Q0NDiKKIJ0+eAHg1h3/cuHHYunUr5/OXo2fPngCAc+fOSZyEiNTh7t27WLFiBYKDg5GcnAwAsLS0hKenJz777DO0aNFC4oRERFQVbCIUtGrVKsyePRtmZmZYuHAhxowZI5/GlJ2djT/++ANLlixBamoqfv75Z3z22WfSBq6lDhw4AB8fHwQHB8PV1VXqOERERERUBWwiFNS6dWskJSXh+vXrsLW1LbMmPj4e7dq1g5WVFW7duqXmhLVTUlJSqefWrVuHDRs2YPbs2ejXrx8sLCzKHbmxsrKq6YhEREREpCQ2EQqqV68e+vfvj4MHD1ZYN2zYMBw7dgzPnz9XU7LaTSaTldkgiKJY6ZQvQRBQUFBQU9GISA0yMjLg7++PS5cuISMjA3379sW8efMAvNreNS4uDp6enqhfv77ESYmISBk8J0JBTZo0gY6OTqV1Ojo63PP8NS4uLlwfQvSW2r17N6ZOnYqcnBz5jQNzc3P59Tt37sDHxwd+fn4YN26chEmJiEhZbCIU5O3tDX9/f2RlZcHIyKjMmszMTJw4cQJjxoxRc7ra69SpU1JHICIJhIaG4oMPPoCRkRGWLl2KXr16oWvXriVqhgwZAgMDA+zbt49NBBGRhuEWrwpaunQp7Ozs4OHhgRMnTpS6fuLECfTr1w92dnZYtmyZBAk1Q15eHpKSkuRnbJQlOzsbSUlJyM/PV2MyIlKl77//Htra2vjnn38wc+ZMdO7cuVSNtrY2WrZsiZs3b0qQkIiIqoNNhIKGDRsGHR0dREZGol+/fmjSpAm6dOmCLl26oGnTpujXrx8iIiKgo6ODYcOGwcPDQ/7Vt29fqePXGitWrICtrS0iIyPLrYmMjIStrS1Wr16txmREpErnz59Hjx490KFDhwrrLC0tkZqaqqZURESkKpzOpKDXp+WIoohHjx7h0aNHperKOv+AawL+68CBA7C1tUXv3r3LrenduzdsbGywf/9+zJ07V43piEhVnj9/jsaNG1da9/TpU35GEhFpIDYRCoqPj5c6whshNjYWzs7Olda1adMGFy5cUEMiIqoJ1tbWuHbtWoU1BQUFuHbtGpo3b66mVEREpCpsIhRkbW0tdYQ3Qk5ODho0aFBpXf369fH06VM1JCKimjBkyBCsXLkS69atw4wZM8qsWbFiBdLS0jBt2jQ1pyMiouriORGkVg4ODhBFEXfu3KmwrkWLFigsLERcXJyakhGRKmVkZKBjx45ITU3FmDFjMGzYMIwYMQKDBw/GtGnTcODAAfj5+cHS0hIREREwMDCQOjIRESmBC6tJrfr374+4uDisXbu23Jp169YhNjYWAwYMUGMyIlIlY2Nj/PPPP2jdujV27tyJkSNHAgCCgoIwbNgwbNmyBQ4ODvj777/ZQBARaSCORJBaJScno127dsjOzsbQoUMxdepU2NvbQxAE3L17F5s2bcLhw4ehr6+PiIgI2NjYSB2ZiKqhqKgIhw4dwj///IOEhAQUFhbCwsICnp6e8PHxgZaWltQRiYioCthEkNqFhITAx8cHGRkZpXZlEUURxsbG2Lt3L9zc3KQJSEREREQVYhNBknj8+DE2bdqE4OBgJCcnA3i1X7ynpyemTJlS7qngRERERCQ9NhFERFRjcnNzcfnyZaSmpiIvL6/cuvHjx6sxFRERVRebCCIiqhGLFi3CypUrkZubW26NKIoQBAGFhYVqTEZERNXFcyKIiEjlfvzxRyxduhR16tTBkCFD4ODgAD09PaljERGRinAkgoiIVK5FixZISUlBaGgonJycpI5DREQqxnMiiIhI5ZKTk+Hq6soGgojoDcUmgoiIVM7ExETqCEREVIPYRBARkcqNGjUKFy9eRFZWltRRiIioBnBNBBERqdyLFy/Qv39/aGlp4bfffoO9vb3UkYiISIXYRBARkcp5eHggPz8f586dg0wmg42NDSwsLEqdUg8AgiAgODhYgpRERFRVbCKIiEjlZDLFZ8vynAgiIs3DcyKIiEjl4uPjpY5AREQ1iCMRRERERESkFO7ORERERERESmETQURERERESuGaCCIikoSvry+SkpK4OxMRkQbimggiIpJEq1atEB0dzd2ZiIg0EEciiIhIEt9//z2ePHkidQwiIqoCjkQQEREREZFSuLCaiIiIiIiUwiaCiIiIiIiUwjURRERUbYsXL67yawVBwMKFC1WYhoiIahrXRBARUbXJZDIIgoD//SdFEAT5fxdf+9/nuDsTEZHm4UgEERFV29atW0s9d/bsWWzevBlWVlbw8fGBlZUVACApKQkBAQFITEzEhx9+CGdnZ3XHJSKiauJIBBERqdz58+fh5uaG+fPnY9GiRdDS0ipxvbCwEEuWLMHy5ctx8uRJ9OzZU6KkRERUFWwiiIhI5fr374/09HRERkZWWNehQwc0a9YMx44dU1MyIiJSBe7OREREKnfx4kW0bdu20rq2bdvi4sWLakhERESqxCaCiIhqxO3bt1VSQ0REtQ+bCCIiUrnevXsjIiICP/30U7k1//73vxEeHo7evXurMRkREakC10QQEZHKXbt2Dc7Oznj+/DkcHR3luzMJgoDExEQEBATg9u3bqFevHs6ePYv27dtLHZmIiJTAJoKIiGrEhQsX4Ovri+joaAD/PR+i+J8dBwcH+Pn5oUePHpJlJCKiqmETQURENUYURZw6dQphYWFISUmBKIowMzND79694e7uXuLgOSIi0hxsIoiIiIiISClcWE1EREREREqpI3UAIiJ6c8XHxyM0NBSpqanIy8srs0YQBCxcuFDNyYiIqDo4nYmIiFQuPz8fU6ZMwc6dOwH8dzF1WQRBQGFhobqiERGRCnAkgoiIVG7RokXw9/eHkZERPvjgAzg4OEBPT0/qWEREpCIciSAiIpWzsrLCs2fPEB4eDmtra6njEBGRinFhNRERqdyDBw/Qp08fNhBERG8oNhFERKRy1tbWyMnJkToGERHVEDYRRESkcpMnT8bFixeRnJwsdRQiIqoBXBNBREQqV1RUhLFjx+L69ev45Zdf4OrqytOpiYjeIGwiiIhI5ezs7AAAiYmJAABtbW2YmpqW2UgIgoDY2Fi15iMiouphE0FERConkyk3W7aoqKiGkhARUU1gE0FERERERErhwmoiIiIiIlIKmwgiIiIiIlJKHakDEBHRmy07OxuxsbHIzs5GeTNoXVxc1JyKiIiqg00EERHViBs3buCzzz7DqVOnym0eihUWFqopFRERqQKbCCIiUrk7d+6gd+/eePr0KXr16oXU1FTEx8dj1KhRiIuLw9WrV1FQUAAvLy8YGhpKHZeIiJTENRFERKRyS5cuRXZ2NrZu3YrQ0FD06dMHALBz506cO3cON2/eRO/evXHr1i2sWLFC4rRERKQsNhFERKRyJ06cQKtWrTBhwoQyrzdv3hwHDx7Ew4cPsXDhQjWnIyKi6mITQUREKvfgwQO0bt1a/lhbWxsA8OLFC/lzhoaGcHNzw5EjR9Sej4iIqodNBBERqVyjRo1KNAyNGjUCACQmJpaqffDggdpyERGRarCJICIilbO1tUV8fLz8cceOHSGKInbv3i1/LiMjA6dOnYKVlZUUEYmIqBrYRBARkcr1798ft27dkjcSQ4cOhbGxMRYvXoyRI0dizpw56Nq1K548eYIRI0ZInJaIiJQliJVt3k1ERKSk2NhY/Pbbb/D29ka3bt0AvFpsPWLECGRmZsrr+vXrh0OHDqFu3bpSRSUioipgE0FERGqTk5OD0NBQZGVlwcHBAZ07d5Y6EhERVQGbCCIiIiIiUgrXRBARERERkVLqSB2AiIjeTqmpqXj58iUAcIcmIiINw+lMREQkiVatWiEmJgaCIKCgoEDqOEREpASORBARkSREUZR/ERGRZuFIBBERERERKYULq4mIiIiISClsIoiIiIiISClsIoiIiIiISClcWE1ERNVmZ2dX5dcKgoDY2FgVpiEioprGhdVERFRtMpnyA9uCIMh3ZioqKlJ1JCIiqkGczkRERNVWVFRU6uvjjz9Gw4YN8cUXX+DatWt4/Pgxnjx5gmvXruGLL75Aw4YN8fHHH6OwsFDq+EREpCSORBARkcqtXLkSX3zxBc6fP4+OHTuWWRMREYEePXpg2bJlmD17tnoDEhFRtbCJICIilWvVqhVsbW0RGBhYYd3gwYMRHx+PqKgoNSUjIiJV4HQmIiJSuYSEBOjr61dap6+vj4SEhJoPREREKsWRCCIiUjlra2u8ePECsbGx0NPTK7MmOzsb9vb20NXVRVJSkpoTEhFRdXAkgoiIVG7UqFF4+PAh+vfvjwsXLpS6fuHCBQwaNAiPHj3C6NGjJUhIRETVwZEIIiJSudzcXPTr1w/nzp2DIAgwNzeHlZUVBEFAYmIi7t+/D1EU0b17dwQHB6N+/fpSRyYiIiWwiSAiohqRn5+Pn3/+GRs2bMC9e/dKXLOwsMBHH32EuXPnQkdHR6KERERUVWwiiIioxiUnJyMlJQWiKMLMzAxWVlZSRyIiompgE0FERERERErhwmoiIiIiIlJKHakDEBHRmyssLAwHDx7EnTt3kJ2djbIGvwVBQHBwsATpiIioqthEEBGRyomiiMmTJ2Pbtm3yxkEQhBJNRPFjQRCkiklERFXE6UxERKRyGzduhJ+fHzp37ozjx4/j3XffBQBER0cjKCgIvr6+kMlkmDt3LuLi4iROS0REyuLCaiIiUrnu3bvj1q1bSEhIQOPGjTFx4kRs374dhYWF8pq//voLI0eOxL59+zBs2DAJ0xIRkbI4EkFERCoXFRWFnj17onHjxgAgn7L0ehPh4+ODzp0749///rckGYmIqOrYRBARkcoVFRXB2NhY/rj4ROqsrKwSdS1atMD169fVmo2IiKqPTQQREamcubl5iVOqra2tAQDh4eEl6mJiYlCnDvf4ICLSNGwiiIhI5ZycnHDr1i0UFBQAAPr37w9RFDF37lxERUUhOzsbP/30E65cuYJOnTpJnJaIiJTFhdVERKRyu3btwtixY7Fv3z4MHz4cADBmzBjs3r27xJauWlpaCAsLQ7du3SRKSkREVcEmgoiIakReXh7q1KkDLS0tAMDLly/x888/48CBA8jKyoKDgwPmzZuHPn36SJyUiIiUxSaCiIiIiIiUwjURRERERESkFG6JQURENSYjIwP+/v64dOkSMjIy0LdvX8ybNw8AcOPGDcTFxcHT01O+BSwREWkGNhFERFQjdu/ejalTpyInJweiKEIQBJibm8uv37lzBz4+PvDz88O4ceMkTEpERMridCYiIlK50NBQfPDBB6hbty5WrlyJS5cu4X+X4A0ZMgQGBgbYt2+fRCmJiKiqOBJBREQq9/3330NbWxv//PMPOnToUGaNtrY2WrZsiZs3b6o5HRERVRdHIoiISOXOnz+PHj16lNtAFLO0tERqaqqaUhERkaqwiSAiIpV7/vw5GjduXGnd06dPSxw+R0REmoFNBBERqZy1tTWuXbtWYU1BQQGuXbuG5s2bqykVERGpCpsIIiJSuSFDhiA2Nhbr1q0rt2bFihVIS0uDt7e3GpMREZEq8MRqIiJSuYyMDHTs2BGpqakYM2YMhg0bhhEjRmDw4MGYNm0aDhw4AD8/P1haWiIiIgIGBgZSRyYiIiWwiSAiohpx+/ZtvP/++7h58yYEQZCfFQEAoiiiZcuW2L9/PxwdHSVOSkREymITQURENaaoqAiHDh3CP//8g4SEBBQWFsLCwgKenp7w8fGBlpaW1BGJiKgK2EQQEREREZFSeNgcERHVmNzcXFy+fBmpqanIy8srt278+PFqTEVERNXFkQgiIqoRixYtwsqVK5Gbm1tuTfE6icLCQjUmIyKi6uJIBBERqdyPP/6IpUuXok6dOhgyZAgcHBygp6cndSwiIlIRjkQQEZHKtWjRAikpKQgNDYWTk5PUcYiISMV42BwREalccnIyXF1d2UAQEb2h2EQQEZHKmZiYSB2BiIhqEJsIIiJSuVGjRuHixYvIysqSOgoREdUArokgIiKVe/HiBfr37w8tLS389ttvsLe3lzoSERGpEJsIIiKqNg8Pj1LP5efn49y5c5DJZLCxsYGFhQUEQShVJwgCgoOD1RGTiIhUhE0EERFVm0xW9dmxPCeCiEjz8JwIIiKqtvj4eKkjEBGRGnEkgoiIiIiIlMLdmYiIiIiISClsIoiIiIiISClsIoiIiIiISClsIoiIiIiISClsIoiIiIiISClsIoiIiIiISClsIoiIiIiISClsIuitkpubi7Vr16J///4wNTWFjo4O9PX10bp1a0ycOBGHDx9GUVGRvP7q1asQBAHW1tZlfr+CggI0aNAAgiDg008/LbPm6NGjEAQBXbp0KfP6oEGDIAgCDAwM8OLFiwrzFxYWYvPmzXBxcYGRkRF0dHRgamqKzp07Y8aMGThy5IiC74R0BEGAjY2N1DGIiIioGthE0Fvj3LlzaNGiBWbOnInQ0FA4ODjgvffeg6enJ2QyGfz8/ODl5YVOnTrJX9OhQwc0bNgQSUlJSEpKKvU9r1y5gtzcXABAaGhomX9uWFgYAKBPnz6lrqWnp+P48eMAgKdPn+LQoUPl5s/Pz8fgwYMxdepUnD17Fq1bt8a7776L7t2749GjR1i/fj0+//xzhd8PX19fCIKAU6dOKfyamnLq1CkIggBfX1+poxAREZEC6kgdgEgdIiIi4OHhgby8PPzrX//Cl19+CX19/RI1CQkJWLFiBbZu3Sp/TktLCz179sR//vMfhIaGYuzYsSVeU9wgdOjQAZGRkXj69CkaNmxYZk1ZTcQff/yBwsJCmJqaIjU1Ff7+/hgxYkSZP8PatWtx7Ngx2NjY4J9//oG9vX2J6+Hh4Th69KiC74h0oqKioK2tLXUMIiIiqgaORNAbTxRFfPDBB3jx4gWWLVuG77//vlQDAQA2NjZYs2ZNqTvzxb/8FzcDrwsLC0O9evXwySefoKioCOfOnStxPT8/H5cvXwYA9O7du9Trd+zYAQDYtGkT6tevj7///hsZGRll/hz79u0DACxYsKBUAwEAnTp1woIFC8p8bW3SsmXLMvMTERGR5mATQW+8wMBA3Lx5E9bW1pg3b16l9Z07dy7xuLiJKGu60tmzZ9G1a1e4u7uXWXPp0iW8ePECjo6OaNq0aYlrt27dQnh4OCwtLfHOO+9g+PDhePnyJfbs2VNmrocPHwIAmjRpUunPUBlBELBt2zYAgLu7OwRBkH8lJCQAAL755hsIggA/Pz9cvHgRQ4YMQePGjSEIAiIiIgC8GuGZN28eOnfujCZNmqBu3bqws7PDxx9/jJSUlHL/7NfXRPj6+srfv23btpXI8s0338jroqKiMG7cONjb20NXVxdNmjRBx44d8dlnnyE1NbXa7wkREREpjk0EvfGCgoIAAD4+PpDJlP8r361bN9StWxe3bt1CZmam/Pno6Gg8ePAAvXv3hr29PUxMTEo1ERVNZdq+fTsAYMyYMRAEAR988AGA/45O/C8LCwsAwO+//46CggKlf47XTZgwQT4aMGDAAEyYMEH+paenV6I2JCQEvXv3RkJCAvr37w8XFxf5+7h8+XKsWLEChYWF6NWrFwYPHgxRFLFhwwZ06dKl3Ebidb1798aAAQMAAPb29iWydOzYEcCrBe6dO3fGzp070aRJE3h7e6N79+7Iz8/H6tWrER0dXa33g4iIiJQkEr3hevfuLQIQ/f39q/w9evXqJQIQDx06JH/ut99+EwGIR48eFUVRFN99911RV1dXzMvLk9cMGTJEBCBu27atxPcrLCwULS0tRQDi9evXRVEUxYKCArFZs2YiADEmJqZUhp07d4oARACilZWV+Omnn4p79uwRk5OTq/QzTZgwQQQgnjx5sszrX3/9tfzP++GHH8qsCQ4OFlNSUkr9bN9++60IQJw4cWKp1wAQra2tSzx38uRJEYA4YcKECrMGBASUunbr1q1SGYiIiKhmcSSC3njFawyMjY3LvO7r61vq68KFCyVqyprSFBYWBkEQ4OzsDADo1asXXrx4IV8DIYoizp49W+L1xU6dOoXk5GR06NABbdu2BfBqEffIkSMBAP7+/qVyjhkzBj/++CPq1auHpKQkrF69GiNHjoSlpSVat26N9evXo7CwULk3RwFt27bF3Llzy7zm4eEBU1PTEs/JZDIsWrQI5ubmOHjwoEoyPHjwQP7n/a9WrVqVykBEREQ1i00EvfFEUQTwai5+WbZt21bqKz4+vkRNWYurw8LC0LZtWxgaGgJ41US8XlM8/cnc3By2trYlvl/xlKVx48aVeL748c6dO8vMOnfuXCQlJWHDhg0YMWKEfG1BVFQUZsyYAR8fnxLnXKjC0KFDy33vAODRo0fYunUr5syZg8mTJ8sbsZcvXyIzM7PEFLCqKl6nMn78eFy8eFHlPyMREREph00EvfGKRyDK2/VIFEX514QJE8qs6dWrF2QyGS5fvoznz5/jwYMHuHv3rrxxAAAnJyfUq1dPPlpR3nqI58+fIyAgADKZDKNHjy5xrUuXLmjZsiViY2Ploxhl/TzTpk3Dnj17EB8fj+joaHz44YcAgAMHDmDXrl2VvSVKsbKyKvfarl27YGNjg0mTJmHFihXYsmWLvBErHj3Izs6udoa5c+fCzc0Nhw8fRvfu3dGoUSMMGDAAa9euVcn3JyIiIuWwiaA3XocOHQC8WpxbVQYGBmjXrh1evnyJCxcuyBuF17dt1dbWRteuXXHmzBmIolhuE3HgwAFkZ2dDW1sbI0aMQO/evUt8Fd+5L2tKU1kcHBywadMmvPfeewCg8rMidHV1y3w+MTERvr6+yMvLw6pVq3Dnzh3k5ubKG7KePXsC+O9IUHU0bNgQJ06cQGhoKObNmwdHR0cEBwdj5syZcHR0RGxsbLX/DCIiIlIcmwh64w0aNAgA8Ndff1VrGszrU5qKG4TXRyKKH2dlZeHmzZvlNhHFU5ny8vJw5syZUl/Fd/D37NmD/Px8hfO5ubkBKH/ERdUCAwORn5+PmTNn4tNPP0Xz5s1Rr149+fW4uDiV/nmCIKB379744YcfcOHCBaSmpmL06NFITU3Fl19+qdI/i4iIiCrGJoLeeIMHD0arVq2QmJiIH374ocrf5/XF1WFhYTA3Ny9x3gHw36Ziz549SEhIgKGhoXzhNPBqgfDx48eho6ODzMzMElOpXv9ydnZGZmamfHtaoPI7+sV3483MzBT6eXR0dACgytvFZmVlAQAsLS1LXQsJCUF6errC36sqWZo0aSI/R+L69esKv46IiIiqj00EvfFkMhl27NiBunXr4quvvsIXX3xR5jz6xMRExMTElPt9ipuIs2fPIiIioswTqJ2dnSEIAn755RcAr6Y7vb4o+Y8//kBBQQEGDhwIIyOjcv+sUaNGASh5ZoSXlxfWrl2Lx48fl6oPCgrCxo0bAQDvvvtuud/3dcXNRlXPWHBwcADwatpVTk6O/Pn79+9j2rRpSn2vyrJs3Lix1GJ34L9ngFS0boOIiIhUTxBVMWGZSAOEhYXBx8cH6enp0NXVRbdu3WBmZobnz5/j3r17CA8PR1FREdq0aYO//voLLVu2LPU9mjdvLr/jv2bNGvzf//1fqZo2bdrg1q1bAIAffvihxCnZnTt3xtWrV7Fr1y55o1CW9PR0mJubo06dOkhLS4OhoSE6duyIyMhIaGtro1OnTrCxscHLly9x+/ZtREVFAQCmTJmCzZs3K/R+XLlyBV27doWOjg4GDhwoX4D+ww8/oHHjxvjmm2/w7bffYuvWrfD19S31+vz8fDg5OeHmzZswMTGRb3F78uRJ+SFxZ8+eRXx8fIkRG0EQYG1tLT8Zu1iHDh1w7do1dO3aFW3atIGWlha8vLzg5eUl/9lbt26NVq1aoU6dOoiOjkZERATq1auH4OBg+RoMIiIiUgN1H0xBJKVnz56JK1euFD08PMSmTZuK2traop6entiyZUtx3Lhx4qFDh8SCgoJyX+/r6ys/gO3q1atl1nz44YfymjNnzsifv3XrlghArF+/vvjs2bNKs/bt21cEIG7atEkURVG8c+eOuGrVKvGdd94RW7RoIerp6Yk6OjqihYWF6O3tXeIgPEXt3LlTdHJyEuvVqyfPHB8fL4rifw+b27p1a7mvz8zMFKdPny7a2NiIdevWFe3s7MT58+eLOTk5oqura4nvVwxlHDZX/PMNHz5cbNy4sSiTyUQA4tdffy2KoigeOnRInDRpktimTRvR0NBQrF+/vujg4CBOnTpVvHPnjtI/NxEREVUPRyKIiIiIiEgpXBNBRERERERKYRNBRERERERKYRNBRERERERKYRNBRERERERKYRNBRERERERKYRNBRERERERKYRNBRERERERKYRNBRERERERKYRNBRERERERKYRNBRERERERKYRNBRERERERKYRNBRERERERKYRNBRERERERKYRNBRERERERKYRNBRERERERKYRNBRERERERKYRNBRERERERK+X8o7P7MrEFJmQAAAABJRU5ErkJggg==",
      "text/plain": [
       "Figure size 750x750 with 4 Axes"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.rcParams['figure.dpi'] = 150\n",
    "\n",
    "tmp=df.loc[:, (df > 1).any(axis=0)]\n",
    "tmp=tmp.loc[(tmp > 1).any(axis=1),:]\n",
    "\n",
    "\n",
    "\n",
    "g=sns.clustermap(tmp,\n",
    "               xticklabels=True,\n",
    "               yticklabels=True,\n",
    "               cmap='OrRd',\n",
    "               figsize=(5,5),\n",
    "#               annot=anno_df,\n",
    "               fmt = '',\n",
    "               dendrogram_ratio=0.05,\n",
    "               cbar_pos=(0.98,0.9,0.02,0.1),\n",
    "                 vmax=4\n",
    "              )\n",
    "\n",
    "\n",
    "for a in g.ax_row_dendrogram.collections:\n",
    "    a.set_linewidth(1)\n",
    "\n",
    "for a in g.ax_col_dendrogram.collections:\n",
    "    a.set_linewidth(1)\n",
    "    \n",
    "ax = g.ax_heatmap\n",
    "ax.set_xlabel('GWAS traits')\n",
    "ax.set_ylabel('Cell types')\n",
    "plt.savefig(f'{output_path}overview_heatmap_SNP_enrichment.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ba4f18fe-af68-4f86-9e5d-80664c61464e",
   "metadata": {},
   "source": [
    "### 删掉在所有细胞类型中都不显著富集的 traits"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "947196f7-6d5a-4db5-afd6-baaa83d4a093",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T02:10:14.773344Z",
     "iopub.status.busy": "2025-06-10T02:10:14.772642Z",
     "iopub.status.idle": "2025-06-10T02:10:14.779455Z",
     "shell.execute_reply": "2025-06-10T02:10:14.778777Z",
     "shell.execute_reply.started": "2025-06-10T02:10:14.773315Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "df=df.loc[:, (df > neglog10_pval_sig_threshold).any(axis=0)]\n",
    "df=df.loc[(df > neglog10_pval_sig_threshold).any(axis=1),:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "8f790aa1-7c93-400a-9aa1-603a5b765e4d",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T02:10:16.586128Z",
     "iopub.status.busy": "2025-06-10T02:10:16.585579Z",
     "iopub.status.idle": "2025-06-10T02:10:16.589416Z",
     "shell.execute_reply": "2025-06-10T02:10:16.588719Z",
     "shell.execute_reply.started": "2025-06-10T02:10:16.586088Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "threshold=0.05"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "19822d16-6751-476d-ac3a-2a8631de5d42",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T02:10:40.590745Z",
     "iopub.status.busy": "2025-06-10T02:10:40.590101Z",
     "iopub.status.idle": "2025-06-10T02:10:41.127288Z",
     "shell.execute_reply": "2025-06-10T02:10:41.126587Z",
     "shell.execute_reply.started": "2025-06-10T02:10:40.590717Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtIAAAKWCAYAAABko37QAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAA77hJREFUeJzs3XdYE9n3P/B3aEko0kSK0sSChWLBxiogKqJib1iRj72tnUUXBevaXbtrw7527AUR3XVFF3XtXVHsBcUOUs7vD3+ZL0MCBESDel7Pk0e5c2fmzM1kcjJz546EiAiMMcYYY4yxfNHSdACMMcYYY4x9iziRZowxxhhjrAA4kWaMMcYYY6wAOJFmjDHGGGOsADiRZowxxhhjrAA4kWaMMcYYY6wAOJFmjDHGGGOsADiRZowxxhhjrAA4kWaMMcYYY6wAvnoiHRkZCYlEkuPryJEjhbq+8PBwSCSSfM/n7e2NypUrF2osX8vDhw8RHh6Os2fPFvqy//vvP3h5ecHY2BgSiQRz5swp9HWoEhQUBAcHB1GZg4MDgoKC8px38uTJiIqK+iJx/UhUvQcvXrxAx44dUaJECUgkErRs2RIAIJFIEB4e/tVj/NbcuXMHEokEM2bM0HQoher48eMIDw9HcnKy0jRvb294e3sX6vpiYmJQvXp1GBgYQCKRfJXP+5MnTzB69Gi4u7ujWLFi0NPTQ6lSpdC6dWvs3LkTGRkZAIBTp05BIpFg6tSpSsto0aIFJBIJlixZojTN19cX5ubmyP7w4datW0MikWDgwIE5xnblyhV07doVpUuXhkwmQ/HixVG1alUMHDgQr1+/znW7cnvvCoOq40h+j9FJSUkIDQ1FxYoVYWBgAGNjYzg7O6Nr1644f/68UE+Rb8hkMty9e1dpOaq+5x0cHEQ5iaGhIWrWrInVq1fnazvZD4S+spUrVxIAWrlyJcXFxSm9Xr16Vajru3fvHsXFxeV7Pi8vL6pUqVKhxvK1xMfHC21c2Nzd3als2bK0d+9eiouLo0ePHhX6OlTp3r072dvbi8rs7e2pe/fuec5rYGCgVj2Wu5s3b9KZM2dEZUOGDCE9PT1au3YtxcXF0bVr14iIKC4uju7du6eJML8pCQkJBICmT5+u6VAK1fTp0wkAJSQkKE27dOkSXbp0qdDWlZmZSWZmZlSrVi06dOgQxcXF0YsXLwpt+arExcWRhYUFFS9enMLCwmjPnj109OhRWrNmDbVv3560tbVp2bJlRESUkZFBxsbG5OfnJ1pGRkYGmZqakoGBAXXo0EE0LTU1leRyObVu3VpU/uTJE9LV1SUAZGJiQh8+fFCK7cyZMySXy6lq1aq0cuVKio2Npc2bN9Ovv/5KZcqUUfmeZJXbe1cYVB1H8nOMfvPmDZUpU4asrKxo5syZdOjQIdq1axfNnDmTPD09adWqVUJdRb4BgLp06aK0LFXf8/b29uTp6SnkJJs3b6aaNWsSAFq4cGH+N5h993Q0lcBXrlwZ1atX/2LLf//+PfT19VGqVCmUKlXqi63nR3Px4kX06tUL/v7+mg6FfWVOTk5KZRcvXoSTkxM6d+4sKq9Vq9bXCuuHpjjOfUsqVqxYqMt7+PAhXrx4gVatWsHX17dQlvnhwwfIZDKVVzOTk5PRsmVLGBoa4p9//oG1tbVoepcuXXD+/HkkJSUBALS0tFCvXj3ExsYiPT0dOjqfvnbPnTuHly9fYsSIEVizZo1oGSdPnsSHDx/g4+MjKl+9ejXS0tLQtGlT7NmzB9u2bUOnTp1EdebMmQMtLS0cOXIERkZGQnnbtm0xYcIEpTPcn+vDhw+Qy+Vq11d1HMmPzZs34+bNmzh8+LBS+wwbNgyZmZlK8zRu3Bjr16/HiBEj4Obmluc6TExMRMewBg0awN7eHrNmzUK/fv0+K372/SnSfaQVl6/WrFmDChUqQF9fH25ubti9e7eonqL7xpkzZ9C2bVuYmpoKH9acunasX78etWvXhqGhIQwNDeHu7o7ly5cr1YuPj0fdunWhr6+P0qVL47fffhN9UI8cOQKJRIL169cjJCQE1tbWMDQ0REBAAJ48eYI3b96gd+/eKF68OIoXL44ePXrg7du3onUQERYuXAh3d3fI5XKYmpqibdu2uH37tqie4jJUbjEdOXIEHh4eAIAePXoIl6fyusx+8eJFtGjRAqamppDJZHB3d8eqVauE6YpLZOnp6Vi0aJGw3NykpqZi/PjxqFChAmQyGczNzeHj44Pjx4/ne9sLSiKR4N27d1i1apUQs7e3N+7cuQMdHR1MmTJFaZ6//voLEokEmzdvBvB/+9B///2H1q1bo1ixYjA2NkaXLl3w7Nkzpfk3btyI2rVrw8DAAIaGhvDz88N///2nVrzPnj1D7969YWtrC6lUCgsLC3h6euLQoUNCHcV+8Pfff6NWrVqQy+UoWbIkwsLChMvJCh8/fsTEiRPh7OwsLK9Hjx4q487rM5H1kqyiS8KhQ4dw5coVpa5Zqva5Bw8eCNump6cHGxsbtG3bFk+ePMm1TVJSUhAaGgpHR0fo6emhZMmSGDBggNKlZwcHBzRr1gzbt2+Hq6srZDIZSpcujblz5yot8/Xr1xgxYoRomUOGDMG7d+9E9dQ9BuUkOTkZw4cPR+nSpSGVSlGiRAk0adIEV69eVao7a9YsODo6wtDQELVr18aJEydE04OCgmBoaIgLFy6gUaNGMDIyEhLHFy9eoH///ihZsiT09PRQunRpjBkzBqmpqSq3Z+XKlShfvjzkcjmqV6+OEydOgIgwffp0IYb69evj5s2bovmjo6PRokULlCpVCjKZDGXKlEGfPn3w/PlzoU54eDhGjhwJAHB0dFTaN7J37cjavSWvNsguPDxcOFESEhICiUQi6jZw7Ngx+Pr6wsjICPr6+qhTpw727NkjWobi2Hbw4EEEBwfDwsIC+vr6Sm2nsHTpUjx58gTTpk1TSqIVXF1dRUmej48P3r59i1OnTgllR44cgY2NDXr27IknT57g8uXLommK+bJasWIFLC0tsWrVKsjlcqxYsUJp3UlJSShWrBgMDQ1VxpbbcTuv907xGdu2bRuqVKkCmUyGiIgIAMCCBQtQr149lChRAgYGBnBxccG0adOQlpYmWkf2rh05HaNzoviBklPba2kppzWjRo2Cubk5QkJCclxubkxMTFC+fHlR95BFixbBzc0NhoaGMDIygrOzM0aPHl2g5bNv3Nc+Ba641HLixAlKS0sTvdLT00V1AZCDgwPVqFGDNm3aRHv37iVvb2/S0dGhW7duCfXGjRtHAMje3p5CQkIoOjqaoqKiRNOyCgsLIwDUunVr2rx5Mx08eJBmzZpFYWFhQh0vLy8yNzensmXL0uLFiyk6Opr69+9PAESXjmJjY4V1BwUF0f79+2nx4sVkaGhIPj4+1LBhQxoxYgQdPHiQpk6dStra2jRo0CBRPL169SJdXV0aPnw47d+/n9avX0/Ozs5kaWlJjx8/zldMr169Etr4119/FS5P5XaZ/erVq2RkZEROTk60evVq2rNnDwUGBhIAmjp1KhERPX36lOLi4ggAtW3bVlhuTtLS0sjHx4d0dHRoxIgRtHfvXtq5cyeNHj2aNmzYkO9tL2jXjri4OJLL5dSkSRMhZsVl5VatWpGdnZ3SfteuXTuysbGhtLQ0IhLvXyNHjqQDBw7QrFmzyMDAgKpUqUIfP34U5p00aRJJJBIKDg6m3bt307Zt26h27dpkYGCg1uVsPz8/srCwoD/++IOOHDlCUVFRNHbsWPrzzz+FOor9wMbGhubOnUsHDhygwYMHEwAaMGCAUC8jI4MaN25MBgYGFBERQdHR0bRs2TIqWbIkVaxYkd6/fy/UVeczkfU9SElJobi4OKpSpQqVLl1aqWsWABo3bpww7/3798na2pqKFy9Os2bNokOHDtHGjRspODiYrly5kmN7ZGZmkp+fH+no6FBYWBgdPHiQZsyYIbR9SkqKUNfe3p5KlixJdnZ2tGLFCtq7dy917txZqevEu3fvyN3dXRTL77//TsbGxlS/fn3KzMwU6qp7DFLl9evXVKlSJTIwMKDx48fTgQMHaOvWrfTzzz/T4cOHiej/unY4ODhQ48aNKSoqiqKiosjFxYVMTU0pOTlZ1P66urrk4OBAU6ZMoZiYGDpw4AB9+PCBXF1dycDAgGbMmEEHDx6ksLAw0tHRoSZNmohiUuzHderUoW3bttH27dupXLlyZGZmRkOHDqUWLVrQ7t27ad26dWRpaUmurq6i9li0aBFNmTKFdu7cSUePHqVVq1aRm5sblS9fXvgc3Lt3jwYNGkQAaNu2bUr7hpeXF3l5eQnLzE8bZHfv3j3atm0bAaBBgwZRXFyc0G3gyJEjpKurS9WqVaONGzdSVFQUNWrUiCQSiejzpDhelixZknr37k379u2jLVu2KB0XFBo2bEja2tr07t27XN//rP777z8CQJMnTxbKAgICKDAwkIiIrKysaMGCBcI0Hx8fsrCwELX9P//8QwBo5MiRRETUpUsXkkgkdPv2bdG6Jk6cSAAoMDCQjhw5Ivqc5yWv987e3p6sra2pdOnStGLFCoqNjaV///2XiIiGDh1KixYtov3799Phw4dp9uzZVLx4cerRo4doHdmP5bkdo1U5duwYASAPDw/avn07PX/+PMe6ivc2Pj6efv/9dwJAMTExwvScunY0bdpUVPbx40cqUaIE2djYEBHRhg0bhH3u4MGDdOjQIVq8eDENHjw4l9Zl3yuNJdKqXtra2uLgALK0tKTXr18LZY8fPyYtLS2aMmWKUKZIdMaOHau0vuyJ9O3bt0lbW5s6d+6ca5xeXl4EgE6ePCkqr1ixoqivmyKRDggIENUbMmQIAVD6YLVs2ZLMzMyEvxXJ6cyZM0X17t27R3K5nEaNGpXvmPLbR7pjx44klUopMTFRVO7v70/6+vqiL7LsyVpOVq9eTQBo6dKlOdbJz7Z/iT7Sivdu+/btQtmDBw9IR0eHIiIihDLFPjR06FDR/OvWrSMAtHbtWiIiSkxMJB0dHaUfSm/evCErKytq3759nrEaGhrSkCFDcq2j2A927NghKu/VqxdpaWnR3bt3iej/DvZbt24V1VPsH4r+fup+JlS9BzndS5A9kQ4ODiZdXV26fPlyruvIbv/+/QSApk2bJirfuHEjAaA//vhDKLO3tyeJREJnz54V1W3YsCEVK1ZMSHymTJlCWlpaFB8fL6q3ZcsWAkB79+4VbYc6xyBVxo8fTwAoOjo6xzqKJNLFxUWUuP37778EQPSjs3v37gSAVqxYIVrG4sWLCQBt2rRJVD516lQCQAcPHhRtj5WVFb19+1Yoi4qKIgDk7u4uStzmzJlDAOj8+fMqY8/MzKS0tDS6e/eu0v6YWz/bnBJpddpAlZz6mdeqVYtKlChBb968EcrS09OpcuXKVKpUKWFbFd9J3bp1y3U9Cs7OzmRlZaVUnpGRIToxlJGRIUxT9ONu1KiRUNfExIQWL15MRETt27entm3bEtH/9Y/OfrwIDg4mAMIPT8XxK+uPXaJPP3Jbtmwp+l6tUqUKjRkzhp4+fZrn9uX23tnb25O2trZwL0ROFG2xevVq0tbWFvVZV3Ucye99LOPHjyc9PT1hGx0dHalv37507tw5Ub2siXRqaiqVLl2aqlevLrz3OSXSTZo0Ed7HhIQE4bOn+BEzcOBAMjExUTte9n3TWNeO1atXIz4+XvQ6efKkUj0fHx9RPy9LS0uUKFFC5R24bdq0yXO90dHRyMjIwIABA/Ksa2VlhRo1aojKXF1dVa67WbNmor8rVKgAAGjatKlS+YsXL4TuHbt374ZEIkGXLl2Qnp4uvKysrODm5qY0ikl+YlLX4cOH4evrC1tbW1F5UFAQ3r9/j7i4uHwvc9++fZDJZAgODs6xTn63vbB5e3vDzc0NCxYsEMoWL14MiUSC3r17K9XP3g+4ffv20NHRQWxsLADgwIEDSE9PR7du3UTbI5PJ4OXlJWwPEYmmp6enC8usUaMGIiMjMXHiRJw4cULpsqiCkZERmjdvLirr1KkTMjMz8ddffwH41L4mJiYICAgQrcvd3R1WVlZCPPn5TBTUvn374OPjI3wu1HX48GEAUBqdpV27djAwMEBMTIyovFKlSkp9IDt16oTXr1/jzJkzAD61S+XKleHu7i5qFz8/P5UjB+XnGJTVvn37UK5cOTRo0CDP7WzatCm0tbWFv11dXQFArePc4cOHYWBggLZt24rKFW2WvY18fHxgYGAg/K14T/z9/UWX/RXlWWN4+vQp+vbtC1tbW+jo6EBXVxf29vYAPo0U8Tny0wZ5effuHU6ePIm2bduKujhoa2uja9euuH//Pq5duyaaR53vj9wMGzYMurq6wivr51MikcDLywv//PMP0tLScPbsWSQnJwtdGBTHByLCiRMnlPpHv337Fps2bUKdOnXg7OwszOPk5ITIyEhRd0OpVIrt27fj8uXLmD17Njp27Ihnz55h0qRJqFChgtJ255erqyvKlSunVP7ff/+hefPmMDc3h7a2NnR1ddGtWzdkZGTg+vXrn7XO7MLCwpCYmIgVK1agT58+MDQ0xOLFi1GtWjVs2LBB5Tx6enqYOHEiTp06hU2bNuW6/L179wrvo6OjIzZt2oRBgwZh4sSJAD4dp5OTkxEYGIgdO3aIujaxH4/GEukKFSqgevXqole1atWU6pmbmyuVSaVSfPjwQak8pz5TWSn6hqpzA2J+1m1mZib6W09PL9fylJQUAJ+GUCIiWFpaig7Curq6OHHihNIHND8xqSspKUll29nY2AjT8+vZs2ewsbFR2V9NIb/b/iUMHjwYMTExuHbtGtLS0rB06VK0bdsWVlZWSnWzl+no6MDc3FxoH0VfXw8PD6Xt2bhxo7A9R48eVZp+584dAJ/6V3fv3h3Lli1D7dq1YWZmhm7duuHx48eidVtaWuYYX9Z4kpOToaenp7S+x48fC/Hk5zNRUM+ePSvQ8pOSkqCjowMLCwtRuUQigZWVldK+mdv7lrVdzp8/r9QmRkZGIKJC+8zlZ5uzr0MqlQKA0jr09fVRrFgxUVlSUhKsrKyU+r6WKFECOjo6Sm1U0GNVZmYmGjVqhG3btmHUqFGIiYnBv//+K/Rj/pxjEKB+G6jj5cuXIKJ8HdfU+f4AADs7Ozx79gzv378XlQ8fPlw4KaRqWT4+Pnj37h3i4+MRGxsLS0tLlC9fHsCnpPj58+e4dOmS8MM8ayK9ceNGvH37Fu3bt0dycjKSk5Px6tUrtG/fHvfu3UN0dLTS+ipUqIAhQ4Zg7dq1SExMxKxZs5CUlISwsDC1tjMnqrYtMTERdevWxYMHD/D777/j77//Rnx8vHCS4nP3DVUsLS3Ro0cPLF68GOfPn8fRo0ehp6eHn3/+Ocd5OnbsiKpVq2LMmDE5nqQAgJ9++gnx8fE4deoULl++jOTkZMydO1f4THTt2hUrVqzA3bt30aZNG5QoUQI1a9ZU+T6w75/GRu34EtQZL1rxhXz//n2lM7CaULx4cUgkEvz999/CF0dWqsoKm7m5OR49eqRU/vDhQyHG/LKwsMCxY8eQmZmZYzJdFLa9U6dOCAkJwYIFC1CrVi08fvw4xzOzjx8/RsmSJYW/09PTkZSUJCQAinbasmWLcJZOlWrVqiE+Pl5UpvhyL168OObMmYM5c+YgMTERO3fuxC+//IKnT59i//79Qn1VN+gpku2s8Zibm4vmy0pxlvVrfCYsLCxw//79fM9nbm6O9PR0PHv2TJRMExEeP34s3FirkP0HR9ayrO2S041aiumFoaDbnBtVxzhzc3OcPHkSRCSa/vTpU6Snpxfa9ly8eBHnzp1DZGQkunfvLpRnvyGxKDA1NYWWlla+jmvqPm+gYcOGOHjwIPbu3Su6CmBrayt8fhQJV1aKxPjIkSOIi4uDl5eXMK1ixYooXrw4YmNjceTIEVhbWwtJNgDhpt8hQ4ZgyJAhSstevnw5/Pz8coxZIpFg6NChGD9+PC5evKjWdua2rOyioqLw7t07bNu2TXTs+xLPMshJvXr10KhRI0RFReHp06coUaKEUh3FeN4NGzbEH3/8keOyjI2N8xxVrEePHujRowfevXuHv/76C+PGjUOzZs1w/fr1XI//7PtTpEft+BIaNWoEbW1tLFq0SNOhAPjUJYSI8ODBA6Uz9NWrV4eLi0u+l5nfMzm+vr44fPiw8AWjsHr1aujr6xdoKDN/f3+kpKQgMjIyxzpfYttVye3soUwmQ+/evbFq1SrMmjUL7u7u8PT0VFl33bp1or83bdqE9PR04fKsn58fdHR0cOvWLZXbozgwGxkZKZWr+uK1s7PDwIED0bBhQ6FbgsKbN2+wc+dOUdn69euFobaAT+2blJSEjIwMlbEovqi/xmfC398fsbGx+b6srBiVYu3ataLyrVu34t27d0rDnV26dAnnzp0Tla1fvx5GRkaoWrUqgE/tcuvWLZibm6tsl+wPiygof39/XL9+Xeie8qX4+vri7du3Sg+0UDxAorCGhFMkUNl/4Kp6mMjnnE0uDAYGBqhZsya2bdsmiiEzMxNr165FqVKlVHZPUEfPnj1haWmJUaNGqUzUc1KpUiVYWFjg8OHD+Pvvv0UjU0gkEtSrVw/79+/HiRMnRGejr1y5gri4OLRp0waxsbFKL19fX+zYsUM4w55TTA8fPsTr16+FH+05Kch7p2rfICIsXbpUrfnzc1X1yZMnKoe4y8jIwI0bN6Cvrw8TE5Mc52/QoAEaNmyI8ePHK42gVRAGBgbw9/fHmDFj8PHjR1y6dOmzl8m+LRo7I33x4kVR31AFJycnpcu4hcnBwQGjR4/GhAkT8OHDBwQGBsLY2BiXL1/G8+fPhaF8vhZPT0/07t0bPXr0wKlTp1CvXj0YGBjg0aNHOHbsGFxcXPI9bqWTkxPkcjnWrVuHChUqwNDQEDY2NjkeQMeNG4fdu3fDx8cHY8eOhZmZGdatW4c9e/Zg2rRpMDY2zvd2BQYGYuXKlejbty+uXbsGHx8fZGZm4uTJk6hQoQI6duz4RbZdFRcXFxw5cgS7du2CtbU1jIyMRGd7+vfvj2nTpuH06dNYtmxZjsvZtm0bdHR00LBhQ1y6dAlhYWFwc3ND+/btAXzat8aPH48xY8bg9u3baNy4MUxNTfHkyRP8+++/MDAwyHX/evXqFXx8fNCpUyc4OzvDyMgI8fHx2L9/P1q3bi2qa25ujn79+iExMRHlypXD3r17sXTpUvTr1w92dnYAPl3GXLduHZo0aYKff/4ZNWrUgK6uLu7fv4/Y2Fi0aNECrVq1+iqfifHjx2Pfvn2oV68eRo8eDRcXFyQnJ2P//v0YNmyY0O8zu4YNG8LPzw8hISF4/fo1PD09cf78eYwbNw5VqlRB165dRfVtbGzQvHlzhIeHw9raGmvXrkV0dDSmTp0qjLc8ZMgQbN26FfXq1cPQoUPh6uqKzMxMJCYm4uDBgxg+fDhq1qz52ds8ZMgQbNy4ES1atMAvv/yCGjVq4MOHDzh69CiaNWumNLRZQXXr1g0LFixA9+7dcefOHbi4uODYsWOYPHkymjRpolYfbXU4OzvDyckJv/zyC4gIZmZm2LVrl8rL2Yofwb///ju6d+8OXV1dlC9fXtTX/EubMmUKGjZsCB8fH4wYMQJ6enpYuHAhLl68iA0bNhToibfAp6HQoqKiEBAQADc3N/Tr1w+1atWCoaEhkpKS8Ndff+Hx48eoU6eOaD7FsG5btmwBEYnOSAOfuncMGTIERCTaNxRno0eNGqV0fwzw6Ud1TEwM1q5di59//hm9e/dGcnIy2rRpg8qVK0NbWxtXr17F7NmzoaWllecQcAV57xo2bAg9PT0EBgZi1KhRSElJwaJFi/Dy5cvcGzPLOnM7Rme1Zs0aLFmyBJ06dYKHhweMjY1x//59LFu2DJcuXcLYsWNVnpjIaurUqahWrRqePn2KSpUqqRVjVr169YJcLoenpyesra3x+PFjTJkyBcbGxsJVsrt378LJyQndu3dXObQu+4587bsbcxu1A9lGeUAOI0RkH61BMarCs2fPlOqqGv6O6NOoEh4eHiSTycjQ0JCqVKkiGuUip9EIst9xrLhzevPmzSq3M/vIADnFumLFCqpZsyYZGBiQXC4nJycn6tatG506dSrfMRF9GrHB2dlZeApW1hEUVLlw4QIFBASQsbEx6enpkZubm8pRP3J6T1T58OEDjR07lsqWLUt6enpkbm5O9evXp+PHj+d72z9n1I6zZ8+Sp6cn6evrEwDRiAEK3t7eZGZmpnKoKMV7dvr0aQoICCBDQ0MyMjKiwMBAevLkiVL9qKgo8vHxoWLFipFUKiV7e3tq27YtHTp0KNc4U1JSqG/fvuTq6krFihUjuVxO5cuXp3HjxomG2lLsB0eOHKHq1auTVCola2trGj16tDBkn0JaWhrNmDGD3NzchH3d2dmZ+vTpQzdu3BDVzesz8TmjdhB9Go0lODiYrKysSFdXl2xsbKh9+/Yq2zCrDx8+UEhICNnb25Ouri5ZW1tTv3796OXLl6J6imGrtmzZQpUqVSI9PT1ycHCgWbNmKS3z7du39Ouvv1L58uVJT0+PjI2NycXFhYYOHSoadlHdY1BOXr58ST///DPZ2dmRrq4ulShRgpo2bUpXr14lotyfbJi9Dbt3704GBgYq15OUlER9+/Yla2tr0tHRIXt7ewoNDRUND5jT9uQUg6pj2+XLl6lhw4ZkZGREpqam1K5dO0pMTFT5foeGhpKNjQ1paWkRAIqNjSWinEftUKcNVMlt/r///pvq168vHFtq1apFu3btEtXJ6Vidl8ePH1NoaKgw9KBinw4ICKDVq1crfRaJiBYuXEgAyMLCQmna2bNnhe9BxWdTMeyau7t7jnGkp6dTqVKlyMXFhYiIDhw4QMHBwVSxYkUyNjYmHR0dsra2ptatW6v9lN+c3jtVQ8Mp7Nq1SzjOlCxZkkaOHEn79u0TzU+k+jiizjFa4fLlyzR8+HCqXr06WVhYkI6ODpmampKXlxetWbNGVDe397ZTp04EQK3h77JbtWoV+fj4kKWlJenp6QnHsqwj3Cj2S36q7vdPQlTIjzli7Bvz9OlT2NvbY9CgQZg2bZrS9PDwcERERODZs2eF1t/0c3h7e+P58+ef3dfxe+Pg4IDKlSur/bAUxhhj7HN9VzcbMpYf9+/fx+3btzF9+nRoaWnlerc3Y4wxxlh2P9zNhowpLFu2DN7e3rh06RLWrVsnGpGDMcYYYywv3LWDMcYYY4yxAuAz0owxxhhjjBUAJ9KMMcYYY4wVACfSjDHGGGOMFQAn0owxxhhjjBUAJ9KMMcYYY4wVACfSjDHGGGOMFQAn0owxxhhjjBUAJ9KMMcYYY4wVACfSjDHGGGOMFQAn0owxxhhjjBUAJ9KMMcYYY4wVACfSjDHGGGOMFQAn0owxxhhjjBUAJ9KMMcYYY4wVACfSjDHGGGOMFQAn0owxxhhjjBUAJ9KMMcYYY4wVACfSjDHGGGOMFQAn0owxxhhjjBUAJ9Lsm3Py5Em0atUKdnZ2kEqlsLS0RO3atTF8+PAvts7IyEhIJBLcuXPni63jS3BwcEBQUNBXWVdwcDAaN24s/H3kyBFIJBJs2bIlz3mDgoJgaGj4JcP7pjx8+BDh4eE4e/ZsoS/7W92X79y5A4lEgsjIyC+6nq5du6Jly5ZfdB2Mse8HJ9Lsm7Jnzx7UqVMHr1+/xrRp03Dw4EH8/vvv8PT0xMaNGzUd3g/rv//+w6pVqzBx4kRNh/JdePjwISIiIr5IIs1yFx4ejj179uDw4cOaDoUx9g3Q0XQAjOXHtGnT4OjoiAMHDkBH5/92344dO2LatGkajOzH9ttvv6FGjRqoXr26pkP5Yt6/fw99fX2l8oyMDKSnp0MqlWogKlbYnJyc0LhxY/z222+oX7++psNhjBVxfEaafVOSkpJQvHhxURKtoKWlvDuvX78etWvXhqGhIQwNDeHu7o7ly5cL06Ojo9GiRQuUKlUKMpkMZcqUQZ8+ffD8+XO14jl06BB8fX1RrFgx6Ovrw9PTEzExMQXfwK8gMTERXbp0QYkSJSCVSlGhQgXMnDkTmZmZonr3799H27ZtYWRkBBMTE3Tu3Bnx8fFKl9efPHmC7du3o2vXrirXl5KSgmHDhsHKygpyuRxeXl7477//VNa9efMmmjRpAkNDQ9ja2mL48OFITU1Va7syMzMxb948uLu7Qy6Xw8TEBLVq1cLOnTtFdaZNmwZnZ2dIpVKUKFEC3bp1w/3790XL8vb2RuXKlfHXX3+hTp060NfXR3BwsNC9YNq0aZg4cSIcHR0hlUoRGxsLADh16hSaN28OMzMzyGQyVKlSBZs2bVKK9cGDB+jduzdsbW2hp6cHGxsbtG3bFk+ePMGRI0fg4eEBAOjRowckEgkkEgnCw8OF+dVdz4kTJ+Dp6QmZTAYbGxuEhoYiLS1NrfZUdLe5dOkSfH19YWBgAAsLCwwcOBDv37/Pdd5z585BIpGIPmsK+/btg0QiEd6XmzdvokePHihbtiz09fVRsmRJBAQE4MKFC2rF6ODgoFQeHh4OiUQiKiMiLFy4UNg/TE1N0bZtW9y+fVtp/q5du+LQoUO4detWnjEwxn5snEizb0rt2rVx8uRJDB48GCdPnsw1KRg7diw6d+4MGxsbREZGYvv27ejevTvu3r0r1Ll16xZq166NRYsW4eDBgxg7dixOnjyJn376Kc+EY+3atWjUqBGKFSuGVatWYdOmTTAzM4Ofn59ayXR6erpaLyJSv4Hy8OzZM9SpUwcHDx7EhAkTsHPnTjRo0AAjRozAwIEDhXrv3r2Dj48PYmNjMXXqVGzatAmWlpbo0KGD0jIPHjyItLQ0+Pj4qFzn6NGjcfv2bSxbtgzLli3Dw4cP4e3trZTApKWloXnz5vD19cWOHTsQHByM2bNnY+rUqWptW1BQEH7++Wd4eHhg48aN+PPPP9G8eXNRX+B+/fohJCQEDRs2xM6dOzFhwgTs378fderUUfrx9OjRI3Tp0gWdOnXC3r170b9/f2Ha3LlzcfjwYcyYMQP79u2Ds7MzYmNj4enpieTkZCxevBg7duyAu7s7OnToIPrh8eDBA3h4eGD79u0YNmwY9u3bhzlz5sDY2BgvX75E1apVsXLlSgDAr7/+iri4OMTFxaFnz54AoPZ6Ll++DF9fXyQnJyMyMhKLFy/Gf//9l6/uN2lpaWjSpAl8fX0RFRWFgQMHYsmSJSr3g6zc3NxQpUoVYTuyioyMRIkSJdCkSRMAn7qxmJub47fffsP+/fuxYMEC6OjooGbNmrh27ZrasealT58+GDJkCBo0aICoqCgsXLgQly5dQp06dfDkyRNRXW9vbxAR9u7dW2jrZ4x9p4ixb8jz58/pp59+IgAEgHR1dalOnTo0ZcoUevPmjVDv9u3bpK2tTZ07d1Z72ZmZmZSWlkZ3794lALRjxw5h2sqVKwkAJSQkEBHRu3fvyMzMjAICAkTLyMjIIDc3N6pRo0ae61NsQ16vlStXqr0N2dnb21P37t2Fv3/55RcCQCdPnhTV69evH0kkErp27RoRES1YsIAA0L59+0T1+vTpoxRTv379SC6XU2ZmpqhubGwsAaCqVauKpt25c4d0dXWpZ8+eQln37t0JAG3atEm0jCZNmlD58uXz3M6//vqLANCYMWNyrHPlyhUCQP379xeVnzx5kgDQ6NGjhTIvLy8CQDExMaK6CQkJBICcnJzo48ePomnOzs5UpUoVSktLE5U3a9aMrK2tKSMjg4iIgoODSVdXly5fvpxjrPHx8Tm+9+qup0OHDiSXy+nx48dCnfT0dHJ2dhbtyzlRvCe///67qHzSpEkEgI4dO5br/HPnziUAwj5FRPTixQuSSqU0fPjwHOdLT0+njx8/UtmyZWno0KFCuaLts7ZJ9+7dyd7eXmkZ48aNo6xfb3FxcQSAZs6cKap37949ksvlNGrUKKVllCxZkjp06JDrNjLGGJ+RZt8Uc3Nz/P3334iPj8dvv/2GFi1a4Pr16wgNDYWLi4twVjE6OhoZGRkYMGBArst7+vQp+vbtC1tbW+jo6EBXVxf29vYAgCtXruQ43/Hjx/HixQt0795ddPY4MzMTjRs3Rnx8PN69e5fruuPj49V6BQQE5LocRR/drDHk5PDhw6hYsSJq1KghKg8KCgIRCTdYHT16FEZGRqJROAAgMDBQaZkPHz6EhYWF0qV0hU6dOomm2dvbo06dOkJ3CAWJRKK0ra6urqIrCDlt6759+wAg1/dbsb7so5jUqFEDFSpUULqKYGpqmmMf2ebNm0NXV1f4++bNm7h69So6d+4MQHy1oUmTJnj06JFwdnXfvn3w8fFBhQoVcow1J/lZT2xsLHx9fWFpaSnMr62tnefZ5OwU61Lo1KmTsHzgU3eZrHFkZGQI80mlUtFZ8g0bNiA1NRU9evQQytLT0zF58mRUrFgRenp60NHRgZ6eHm7cuJHrZzA/du/eDYlEgi5duohitbKygpubG44cOaI0T4kSJfDgwYNCWT9j7PvFNxuyb1L16tWFG9vS0tIQEhKC2bNnY9q0aZg2bRqePXsGAChVqlSOy8jMzESjRo3w8OFDhIWFwcXFBQYGBsjMzEStWrXw4cOHHOdVXApu27ZtjnVevHgBAwODHKe7u7vntokCbW3tXKf7+vri6NGjwt/du3fPcYiwpKQklX1KbWxshOmKf7MmYAqqyj58+ACZTJZjfFZWVirLzp07JyrT19dXWo5UKkVKSorwd07b+uzZM2hra6tcl4Ji26ytrZWm2djYiBL2nOrlNE2xP4wYMQIjRoxQOY/iR96zZ89y3S9zk5/1JCUl5dj26tLR0YG5ubnK+RXtGRwcjFWrVgnTvby8cOTIEZiZmaF58+ZYvXo1JkyYAG1tbURGRqJGjRqoVKmSUH/YsGFYsGABQkJC4OXlBVNTU2hpaaFnz565fgbz48mTJyAilfsvAJQuXVqpTCaTFdr6GWPfL06k2TdPV1cX48aNw+zZs3Hx4kUAgIWFBYBPN8zZ2tqqnO/ixYs4d+4cIiMj0b17d6H85s2bea6zePHiAIB58+ahVq1aKuvk9KWdNW51rFy5MtexoJcsWYI3b94oxaaKubk5Hj16pFT+8OFD0bzm5ub4999/leo9fvxYqax48eI4c+ZMjutUNc/jx4+VEjR15LStFhYWyMjIwOPHj3NMgBXre/TokVIi+/DhQ6V2y+kMu6ppinlDQ0PRunVrlfOUL19eiDX7zY3qys96zM3Nc2x7daWnpyMpKUn0XinmV5SFh4eL+tcbGRkJ/+/Rowc2b96M6Oho2NnZIT4+HosWLRKtY+3atejWrRsmT54sKn/+/DlMTExyjU8mk6m8GTV7f/fixYtDIpHg77//Vjm6iqqyFy9eqPzRyRhjWXEizb4pjx49UpkoKS4BK86sNmrUCNra2li0aBFq166tclmKZCj7l+iSJUvyjMPT0xMmJia4fPmyKInIj/j4eLXqOTo65jpdkTipw9fXF1OmTMGZM2dQtWpVoXz16tWQSCTCDYNeXl7YtGkT9u3bB39/f6Hen3/+qbRMZ2dnbNiwAa9evYKxsbHS9A0bNmDYsGFCe9+9exfHjx9Ht27d1I5bIadt9ff3x5QpU7Bo0SKMHz9eZR1FN421a9cKo2IAn96HK1euYMyYMfmOJ2tcZcuWxblz55QSQlWxrlmzBteuXctxexT7ZPYzovlZj4+PD3bu3IknT54IP+oyMjLyPd76unXrMHjwYOHv9evXA/h0Qx7w6aE/OSWcjRo1QsmSJbFy5UrY2dlBJpMpdQ+SSCRKn8E9e/bgwYMHKFOmTK6xOTg44OnTp6Jt/PjxIw4cOCCq16xZM/z222948OAB2rdvn+c2p6en4969e8INkYwxlhNOpNk3xc/PD6VKlUJAQACcnZ2RmZmJs2fPYubMmTA0NMTPP/8M4NMX7OjRozFhwgR8+PABgYGBMDY2xuXLl/H8+XNERETA2dkZTk5O+OWXX0BEMDMzw65duxAdHZ1nHIaGhpg3bx66d++OFy9eoG3btihRogSePXuGc+fO4dmzZ0pn3rLTxJjLQ4cOxerVq9G0aVOMHz8e9vb22LNnDxYuXIh+/fqhXLlyAD51mZg9eza6dOmCiRMnokyZMti3b5+QoGQdalAxwsHJkyfRqFEjpXU+ffoUrVq1Qq9evfDq1SuMGzcOMpkMoaGhhbZddevWRdeuXTFx4kQ8efIEzZo1g1QqxX///Qd9fX0MGjQI5cuXR+/evTFv3jxoaWnB398fd+7cQVhYGGxtbTF06NDPimHJkiXw9/eHn58fgoKCULJkSbx48QJXrlzBmTNnsHnzZgDA+PHjsW/fPtSrVw+jR4+Gi4sLkpOTsX//fgwbNkzYL+VyOdatW4cKFSrA0NAQNjY2sLGxUXs9v/76K3bu3In69etj7Nix0NfXx4IFC/Lsu5+Vnp4eZs6cibdv38LDwwPHjx/HxIkT4e/vj59++inP+bW1tdGtWzfMmjULxYoVQ+vWrZV+bDVr1gyRkZFwdnaGq6srTp8+jenTp6vV/aVDhw4YO3YsOnbsiJEjRyIlJQVz584V+mkreHp6onfv3ujRowdOnTqFevXqwcDAAI8ePcKxY8fg4uKCfv36CfXPnz+P9+/f5zgSDWOMCTR7ryNj+bNx40bq1KkTlS1blgwNDUlXV5fs7Oyoa9euKkdBWL16NXl4eJBMJiNDQ0OqUqWK6K7/y5cvU8OGDcnIyIhMTU2pXbt2lJiYSABo3LhxQr3so3YoHD16lJo2bUpmZmakq6tLJUuWpKZNm9LmzZu/UAvkT/ZRO4iI7t69S506dSJzc3PS1dWl8uXL0/Tp04XRHhQSExOpdevWZGhoSEZGRtSmTRvau3ev0ogmGRkZ5ODgoDQahmLUjjVr1tDgwYPJwsKCpFIp1a1bl06dOiWq2717dzIwMFCKP/voC7nJyMig2bNnU+XKlUlPT4+MjY2pdu3atGvXLlGdqVOnUrly5UhXV5eKFy9OXbp0oXv37omW5eXlRZUqVVJah2LkiOnTp6uM4dy5c9S+fXsqUaIE6erqkpWVFdWvX58WL14sqnfv3j0KDg4mKysr0tXVJRsbG2rfvj09efJEqLNhwwZydnYmXV1dpf1R3fX8888/VKtWLZJKpWRlZUUjR46kP/74Q+1ROwwMDOj8+fPk7e1NcrmczMzMqF+/fvT27dtc583q+vXrwgg00dHRStNfvnxJ//vf/6hEiRKkr69PP/30E/3999/k5eVFXl5eQj1Vo3YQEe3du5fc3d1JLpdT6dKlaf78+TnuNytWrKCaNWuSgYEByeVycnJyom7duintj2FhYVS8eHFKSUlRezsZYz8mCVEhDlLLGPuuTZ48Gb/++isSExNFZwxnzpyJSZMm4cGDB5DL5RqMkBWWoKAgbNmyBW/fvtV0KF9VRkYGypQpg06dOmHSpEmaDocxVsRx1w7GmErz588H8KkPdFpaGg4fPoy5c+eiS5cuSpfdBwwYgPnz52PBggU5jibB2Ldg7dq1ePv2LUaOHKnpUBhj3wBOpBljKunr62P27Nm4c+cOUlNTYWdnh5CQEPz6669KdWUyGdasWZPjo78Z+1ZkZmZi3bp1eY4YwhhjAMBdOxhjjDHGGCsAfrIhY4wxxhhjBZCvRDoyMlIYC/bIkSOQSCS4c+eOUr3w8HCVT1bLOs+dO3cgkUhUPpr1W/f06VMEBQWhePHi0NfXR+3atZUeP5yb27dvo3Xr1jAxMYGhoSEaNmyo8oEXDg4OkEgkSq++ffuqvS7FAwqyP9VNlaCgoK/2gILVq1fDwsJC9PANdcXExMDQ0LBIPN539+7d6NatG1xcXKCrq5vrQz5U6dmzJypXrgwTExPI5XKUK1cOI0eOVHrgBAC8ffsWQ4YMgY2NDWQyGdzd3VWO+3zs2DH07NkT1apVg1QqzfFzrDBv3jw4OztDKpXC0dERERERSEtLE9XZtm0bAgMDUaZMGcjlcjg4OKBz5864ceOG0vI+fvyIsWPHwtHREXp6erC3t0doaKjKp8hdv34dbdq0gampKfT19VGzZk3s3LlTZZzr1q1DlSpVIJPJULx4cXTq1An37t1Tqpffz82xY8fQpEkTmJqaQi6Xo2zZspgwYYJSvbS0NMyaNQsuLi6Qy+UwMTFBnTp1cPz4caHOu3fv0LFjR5QvXx5GRkYwMDBApUqVMHHiRJXD0h04cACenp6Qy+UwNjZGQEAALl26pFQvNTUV06dPR+XKlWFgYABLS0v4+/uL1q3w66+/olmzZihZsiQkEkmOD/vZsGED6tWrB0tLS0ilUtjY2CAgIEBpmS9fvoSJiQmioqJULkddDg4OCA8PB/BpSMXcHkL0LTl+/DjCw8ORnJysNM3BwQHNmjX7+kHloLDjUXzP5/Sk1azCw8OVjo9FYZ84c+YMGjRoAENDQ5iYmKB169a4ffu22vMfOnQItWvXhr6+PooXL46goCA8ffpUVEfRTqpeqo7hrGgptDPSu3btwt69e0VlRIS1a9eqPJh/r1JTU+Hr64uYmBj8/vvv2LFjBywtLdG4cWPRo41z8uzZM9StWxfXr1/HihUrsGnTJqSkpMDb2xvXrl1Tqu/p6Ym4uDjRKyQkRK1YiQhDhgxBr169YG9vn+9t/VLev3+P0aNHIyQkRPSUNHX5+vqiRo0aGD169BeILn+2b9+OEydOoGLFinBzc8v3/O/evUPv3r2xfv167NmzBz179sQff/wBLy8vfPz4UVS3devWWLVqFcaNG4d9+/bBw8MDgYGBwgM0FGJiYnDo0CHY2dmhTp06ua5/0qRJ+Pnnn9G6dWscOHAA/fv3x+TJkzFgwABRvalTp+L9+/cYM2YM9u/fj4kTJ+K///5D1apVlRK/wMBATJ8+Hb1798bevXvRs2dPzJo1Cx06dBDVu3PnDmrXro1r165h8eLF2Lx5MywsLNCyZUts3bpVVHfevHno0qULqlevjh07dmDq1Kk4cuQI6tati5cvXyptl7qfm/Xr18PLywvGxsZYvXo19u7di5CQEGTvEZeRkYFWrVph/PjxCAwMxL59+7Bu3To0btxYlCCnpaWBiDBs2DBs3boVO3bsQJs2bTB+/Hi0aNFCtMwdO3bA398fJUqUwNatW7F48WLcuHEDdevWxa1bt0R1e/XqhV9++QUtW7bErl27sGDBAjx79gxeXl5KT6icPXs2kpKS0Lx5c+jp6Slts0JSUhI8PT2xcOFCHDx4ELNmzcKTJ09Qr1490bHM1NQUQ4cOxciRI5X2SfYpkY6IiFCZSLOi7erVq/D29sbHjx+xadMmrFixAtevX0fdunXx7NmzPOc/evQo/P39YWlpiR07duD333/HoUOH4Ovrq/KJnIMGDVI6LjVs2PBLbBoDMGXKFHh4eMDIyAglSpRAy5YtVeZZecrPWHmKsXSJ/m+MWMVYpFevXqVOnTqRn58fdezYkfr27Us//fQTDRw4kB48eKA0j2JM0NjY2EIZx09Tbt26RR8/fhT+XrBgAQGg48ePC2VpaWlUsWJFqlGjRp7LGzlyJOnq6tKdO3eEslevXlHx4sWpffv2orr29vbUtGnTAseuGBP46tWratXv3r072dvbF3h96lq4cCHJZDJ6+fJlgZexZcsW0tbWpsTERFH5zZs3KS0t7TMjVF/WsZkHDBig9pjIuVm4cCEBoJiYGKFsz549BIDWr18vqtuwYUOysbGh9PR0lTFNnz49xzGFnz9/TjKZjHr37i0qnzRpEkkkErp06ZJQlnX8Y4UHDx6Qrq4u/e9//xPK4uLiCADNnDlTVHfy5MkEgA4ePCiU9enTh2QyGd2/f18oS09PpwoVKpCtra2wHSkpKWRsbEwBAQGiZR4/fpwA0OjRo0Xl6n5u7t+/TwYGBtSvX788686ePZu0tLQoLi4uz7qqjBo1igDQrVu3hLLy5cuTq6srZWZmCmV37twhPT096tSpk1CWkpJC2tra1KVLF9EyHz58SABo8ODBovKs77+BgYHSOOO5SU5OJl1dXeratauo/PHjx6Sjo0Pr1q1Te1nZ2dvbC2Nle3l55Suuoiy3z9jnHMPfv38v2jcKw+d+p2SX09jfqqga+1vT+0S7du2oePHi9OrVK6Hszp07pKurS6NGjcpzfg8PD6pYsaLoO+eff/4hALRw4UKhLK/x6dmX4efnRytXrqSLFy/S2bNnqWnTpmRnZ5evcfKJiArtjHT58uWxbt069O/fH9u2bcOGDRswc+ZMzJs3T3hss6YpupasXbsWw4YNg5WVFeRyOby8vPI12sDjx48xd+5c1KpVC05OTqIzTtu3b0f58uVFj6XW0dFBly5d8O+//+bZ3WD79u2oX7++6Ayx4olgu3btQnp6ej62OHeLFi2Ch4dHvh4xnV1KSgpCQ0OFy/QlS5bEgAEDlM6+pKamYvjw4bCysoK+vj7q1auH06dPw8HBQely3aJFixAQEKB017xEIsHAgQOxZMkSlCtXDlKpFBUrVlR56SsgIACGhoZYunSpqHzChAmwsbHBgAEDcOzYMaUzi4Ut6xMAC4uFhQWAT/uVwvbt22FoaIh27dqJ6vbo0QMPHz7EyZMn8x3T/v37kZKSgh49eigtk4hEl/JLlCihNL+NjQ1KlSol6l7xzz//AIDSo5cVl5Oznmn+559/4ObmhpIlSwpl2tra8Pf3x71794QzrRcvXsSrV6+Ullm7dm2YmZkpnb1W17Jly/Du3Tu1rvD8/vvvqFevHmrVqlWgdWV/T5OSknDt2jX4+/uLLnfb29ujcuXKiIqKEp7ep6WlBS0tLaUnBhYrVgxaWlqQyWSi8s/ZJ42MjCCTyUT7HgBYWlqiYcOGWLx4cYGXnZfExER06dIFJUqUgFQqRYUKFTBz5kxkZmYKdRSXyKdNm4ZJkyYJjyWvXr26yu51N27cQKdOnUTLXLBggaiO4ntjw4YNGDNmDGxsbFCsWDE0aNAgz7NX4eHhwjB6jo6OwuX67F0a9+/fj6pVq0Iul8PZ2RkrVqwQTVd0qzx48CCCg4NhYWEBfX194azmxo0bUbt2bRgYGMDQ0BB+fn5K32m3b99Gx44dYWNjA6lUCktLS/j6+uLs2bNKcecVD/Dpc9eiRQuYmpoKXclWrVqVa3so7NmzB+7u7kJ3sRkzZqg139eUnp6O3bt3o02bNihWrJhQbm9vDx8fH2zfvj3X+R88eID4+Hh07dpV9HmpU6cOypUrl+f87Mvbv38/goKCUKlSJbi5uWHlypVITEzE6dOn87egwsrsr1+/Tl27diU/Pz/q0KED9e3blzw9PWnQoEH08OHDz1p2WlqaWq+8fp0rzojb2tpSixYtaNeuXbR27VoqU6YMFStWTHQ2KLuXL1/S8uXLydfXl7S0tMjY2Ji6detGe/bsEa3XysqK2rVrpzT/7t27CQAdOHAgx3W8f/+eJBIJjRw5Umna/PnzCQBdu3ZNKLO3tycjIyMyNDQkHR0dqlChAs2YMUN09jEnqampJJfL1fpVrZD9jHRmZib5+fmRjo4OhYWF0cGDB2nGjBlkYGBAVapUET0VLDAwkLS0tOiXX36hgwcP0pw5c8jW1paMjY1FZxnu3bun9GtdQfHeVaxYkTZs2EA7d+6kxo0bEwCVTxL09/enqlWrisoSEhJo4sSJVLlyZWF5I0eOpP/++y/Xbc/IyFBrH8yt7T/njHRaWhq9ffuWjh07Rs7OzvTTTz+J1lWrVi3y8PBQmu/ixYsEgJYsWaJyubmdLfvll18IgMpf58WLF6fAwMBcY7516xZpaWnR0KFDhTLFmefbt2+L6l67do0AUO3atYWycuXKUb169ZSWGxoaKtomxZnnFStWKNW1trYmLS0t+vDhg1Cm7uemfv36ZGZmRvv37yc3NzfS1tYmCwsL6tOnj+gMleJJmIMGDaLQ0FAqUaIEaWtrU8WKFSkyMlJl22RmZlJaWhq9evWK9u3bR1ZWVqL2VJxNHjt2rNK8tWvXVjoW/Pzzz2RoaEjbt2+nV69eUUJCAgUGBpKpqSnduHFDZQxE6p2RTk9Pp48fP1JCQgL17t2bDA0NlZ4ESEQ0depU0tLS+qwrSTl5+vQplSxZkiwsLGjx4sW0f/9+GjhwIAEQXTFQnNmztbWln376ibZu3UqbN28mDw8P0tXVFV0pvHTpEhkbG5OLiwutXr2aDh48SMOHDyctLS0KDw8X6im+NxwcHKhz5860Z88e2rBhA9nZ2VHZsmVz/czfu3ePBg0aRABo27ZtFBcXR3FxccL+Y29vT6VKlaKKFSvS6tWr6cCBA9SuXTsCQEePHhWWo7gaXLJkSerduzft27ePtmzZQunp6cIVouDgYNq9ezdt27aNateuTQYGBqKrRuXLl6cyZcrQmjVr6OjRo7R161YaPny46KqwuvFcvXqVjIyMyMnJiVavXk179uyhwMBAAkBTp05Vej+ynpE+dOgQaWtr008//UTbtm0T3h87O7tCuWKXnp6u1rE6+5Ncs7t69SoBoAULFihNGzFiBEkkEtFxJbv9+/cTANqzZ4/StLZt25K1tbXwt6KdFE+blcvl5OnpKXqCLFNfSkoKvXr1SvRS5ymlN27cIAB04cKFfK2v0BLpHTt20O7du4no0yWalStXUmZmJq1evZr++eefAi9XsYOp88qrm4jigFi1alWly6W6urrUs2dPUf13797Rn3/+SS1atCA9PT0yMDCgDh060Pbt23N8U3R1dalPnz5K5Yov++yX3rN68OABAaApU6YoTVu/fr1Sl5H+/fvTihUr6OjRoxQVFUWdO3cmAEqXeFU5efIkAaA///wzz7oK2RNpxYFi2rRponobN24kAPTHH38Q0acvLAAUEhIiqrdhwwYCIPoiV8x74sQJpfUDILlcTo8fPxbK0tPTydnZmcqUKaNUf8yYMaSlpZXjZZpLly5RWFgYlStXjgCQs7MzRURE0PXr11Vuuzr7YNZHGmdX0ERa0R1C8WrSpAm9fv1aVKds2bLk5+enNK8iIZs8ebLKZeeWSPfq1YukUqnK+cqVK0eNGjXKMea0tDTy9vamYsWKibrXREVFCY8Nz2r58uUEgMqVKyeUtWzZkkxMTOjNmzeiunXr1hVtU1JSEmlpaYm6kBB96sajaLOsP+bV/dyUL1+eZDIZGRkZ0eTJkyk2NpamTZsmfMkpjiGK96dYsWJUsWJF2rRpEx04cIDatm0r+hxkpdj3Fa8ePXqILv9mZGSQmZkZ+fr6iuZ7+fIlGRkZKR0LMjMzaezYsaSlpSUs087OLs8fiOok0uXLlxeWaW1tTceOHVNZLzo6mgDQvn37cl1eQSh+1J08eVJU3q9fP5JIJMKPCsX3hY2NjSjJef36NZmZmVGDBg2EMj8/PypVqpToRxER0cCBA0kmk9GLFy+I6P++N5o0aSKqt2nTJgKQZ3eevLp2yGQyunv3rlD24cMHMjMzE32PKBLpbt26ieZPTEwkHR0dGjRokKj8zZs3ZGVlJXQHfP78OQGgOXPm5BqruvF07NiRpFKpUtc5f39/0tfXp+TkZCJSnUjXrFkzx/enMBJpLy8vtY7Vee33ii4YGzZsUJqmOCGQ20nCdevW5bh/9O7dm/T09IS/Hz58SL169aJNmzbR33//TevWraNatWoRAFq6dKn6G/+digDy9VJ0E8r6UnQRyklmZiYFBATQTz/9lO/4Cu2BLM2bN1cqk0gk6Nq162ct18bGBvHx8WrVVbeLQqdOnZQul9apUwexsbFC2f79+9GuXTukpaWhSZMmWL16NQICAqCvr5/n8nMbmUGdURvUnT/7JUjFZbb58+dj2LBhqFKlSo7LefjwIQDlS/KZmZmiS6USiQTa2toql3H48GEAUOqa0a5dOwQHByMmJga9evUSbkxq3769qF7btm2V9o+c4lLw9fWFpaWl8Le2tjY6dOiAiIgI3L9/X/TEvRIlSiAzMxOPHz+Gk5OT0rIqVqyI8ePHY/z48Thz5gw2btyIFStWYNy4cWjTpg22bNki1A0PD8fAgQNVxpRVQW6OzIuLiwvi4+Px/v17nD17Fr/99hsaNmyIw4cPi/bHz93v8jtfTtOICP/73//w999/Y+vWrbC1tRWm+fv7o0yZMggJCYGlpSU8PDxw4sQJjB49Gtra2qJuBwMHDsSOHTvQrVs3zJgxAwYGBpg/f75w87KirpmZGTp37ozVq1fDw8MD7dq1w/3799G7d29oa2sjIyNDtFx1PzeZmZlISUnBuHHj8MsvvwD4NHKAnp4ehgwZgpiYGDRo0ED4vKSkpGDv3r1Ct6yGDRuievXqGD9+PHr16iVap5+fH+Lj4/HmzRvExcVh6tSpSEpKwvbt24WuGgMGDMCECRMwYcIE9OnTB69fv8aQIUPw/v170fYDn24KnTFjBsLDw1G3bl28fv0a8+fPR8OGDXHw4MFcjwV52bp1K969e4fExEQsXrwY/v7+2LlzJ7y9vUX1FJ/ZLzFazuHDh1GxYkXUqFFDVB4UFIRFixbh8OHDKFeunFDeunVrUZcWIyMjBAQEYMOGDcjIyEBaWhpiYmLQr18/6Ovri7rMNWnSBPPnz8eJEyfg7+8vlGf/jnN1dQUA3L17t8BdegDA3d0ddnZ2wt8ymQzlypVTOZJSmzZtRH8fOHAA6enp6Natm2gbZDIZvLy8hO80MzMzODk5Yfr06cjIyICPjw/c3NxUdvNRJ57Dhw/D19dX9NkGPr0f+/btQ1xcHBo3bqy07Hfv3iE+Ph79+/dX+f6o2zUkN0uWLFFrtKfixYurtbwv9X2etdza2hp//PGHaHq7du1Qs2ZN/PLLLwgKClLqTvUjyfmWaNWGhoZi2LBhojKpVJrrPAMHDsT58+dx7NixfK7tCz3ZUDFcTWHQ09ODu7u7WnVzSviys7KyUll27tw54W+ZTAZDQ0M8ffoUycnJePXqFd6/f59nIm1ubo6kpCSl8hcvXgD4dEDLiampKSQSSYHnB4AuXboIXwK5fXkqhhrL3n9y/PjxiIiIEP62t7fPcWi0pKQk6OjoCP07FSQSCaysrITtUPybNQEGPvUHNTc3VysuhZzeO8V6sibSimWoGlYtq8zMTLx69QrJycl4+/YtdHR0lPpn29nZKT0WW5WCJqy5MTAwQPXq1QEA9erVQ82aNVGrVi0sWbIEQ4cOBfB5+11OzM3NkZKSonK/f/HiBapVq6Y0DxGhZ8+eWLt2LVatWqU0EoWenh727duHrl27olGjRsL2TZ48GRMmTBD1h/b19cXKlSsxfPhw4YdQxYoVMWHCBIwePVpUd9GiRSAi9O/fH3379oWWlha6du0KS0tLHDhwQGk/y07V58bc3Bw3btyAn5+fqK6/vz+GDBkiDIulWLazs7Po3gaJRAI/Pz9MmTIFT58+Ff04NDU1Fd5THx8fODk5oWPHjtixYwdatWoFABg7dizevn2LiRMnYuzYsQCApk2bokePHli2bJmw/VeuXMHYsWMxbdo00ePZ/f39UbFiRQwbNkx0kiC/KlWqBACoUaMGWrZsiSpVquDnn38WHS8B9T9vBZGUlKRy6E3F/TfZ9/2cjhMfP37E27dv8fbtW6Snp2PevHmYN2+eynVmH2Iy+z6k+GL+3O1VtW9KpVKVy7W2thb9/eTJEwCAh4eHymUrEmWJRIKYmBiMHz8e06ZNw/Dhw4UfoJMmTRKdAFAnnqSkJKVYgJzfD4WXL18iMzMz1+P45ypTpoxa977kda+Aoh1yOq5KJJJcn36Z1/x5HZN1dXXRoUMH/PLLL7hx4wYqVKiQa/3vmepsIGdSqTTPxDmrQYMGYefOnfjrr7/U+p7Prsg/kOXOnTvQ1dVV66XO8HLAp5sFVZVlPYB4e3vj/v37OHDgABwcHDBq1ChYW1ujcePGWLlyZY5DGbm4uODChQtK5YqyypUr5xiXXC5HmTJlcpxfLpejdOnSuW6b4gCS10FC8WtckWgp9O7dG/Hx8cJr165dOS7D3Nwc6enpSsMAEREeP34srEPRroqDvkJ6errSQSanuBRyeu+yrkdBsQxVZx6ICMeOHcOgQYNgY2MDX19fXLx4EeHh4Xj48CGWLVsmqh8cHKzWPujr66sy7sJUvXp1aGlp4fr160KZi4sLrly5onQzqjr7XU5cXFxEy1B4/Pgxnj9/rrRMRRK9cuVKLFu2DF26dFG53DJlyiAuLg7379/H+fPn8fTpU7Rr1w7Pnz9HvXr1RHW7d++Ox48f4/Lly7hx44YwlJ5EIkHdunWFegYGBlizZg2eP3+Oc+fO4cmTJ4iMjMS1a9dQp06dPM/mqPrcKM445lXXyckpxx/Y6n4eFWdas76nOjo6mDVrFpKSknD+/Hk8fPgQu3fvRmJiIhwdHYUD/rlz50BESsmUrq4u3NzccPHixVzXnR86OjqoWrWqKE6F3D5vn8vc3ByPHj1SKldcwcq+zpyOE3p6ejA0NISpqSm0tbURFBQkOt5lfWW/ebUoyP5DXbHdW7ZsUbkNWW8ytre3x/Lly/H48WNcu3YNQ4cOxcKFC4WbIfMjv++HguJkUW7H8c/l6+ur1rE6ODg41+U4OTlBLpfn+H1cpkyZHE/4AP93zM1pfnWOyeoeP7530ny+1EVEGDhwILZt24bDhw/D0dGxYAHmuzPIV5aamkrx8fFqvbL3G81O0detWrVqKvtIZ+9jmVVKSgpt3bqV2rZtSzKZjPT09KhZs2a0Zs0a0U0LiqHJsvbxTUtLo0qVKlHNmjXz3N5Ro0aRnp6eqO/Z69evycLCgjp06JDn/P369SMAdPbs2VzrKW7q+/333/NcpkL2PtIHDhwgADRr1ixRvc2bN4v6dilueMt+Y6OqPtJ//fUXAVB5kwVy6SPt5OSkVL9Xr15kbm4ueq8vXLhAw4YNo1KlShEAcnFxocmTJ4uGG1QlISFBrX0wt6EEC2v4u5iYGAJAM2bMEMoUQxlm7/PeuHFjpeHvssqt/2ZSUhLJZDLq27evqHzKlClKw99lZmbS//73P5JIJCr7BOdl6NChZGBgIBrqTpXk5GRycHCgli1b5rnMHTt2EACKiorKs66qz41i/540aZKo7qxZswgA/f3330JZYGAg6erqitoxMzOT3N3dVe6b2Sn6iG/ZsiXXeqdPnyZtbW1RX9ejR48SAPrtt99EdVNSUsjR0ZHc3d1zXF5+h7/78OEDlStXjipXrqw0TdEn9Ny5c2ovT12KG0xPnz4tKh8wYEC++khn7XPeoEEDcnNzo9TU1FzXrfjeyH5Ds7pDu82dO5cA0OXLl5Wm5TTcnJeXl+h+C0Uf6fj4eKUYdHR0RDf45Ye7u7voJmV14wkMDCSZTCYMbavQtGlTjfeRvnr1qlrHalXHvOzat29PJUqUEOUWd+/eJT09PaV7flSpUaMGVa5cWXT8VdxTsWjRolzn/fjxI7m7u1Px4sXVGkDge7YMyNdLXf369SNjY2M6cuQIPXr0SHi9f/8+X/EV+US6MGUftWP37t20bt06KlOmDBkZGdHNmzfVWs7r168pMjJSGLEi613qKSkpVKlSJbK1taV169ZRdHQ0tWrVinR0dOjIkSOi5dSvX5+0tbVFZU+fPiVra2tycXGh7du30969e6levXpkZGREV65cEeqtW7eO2rRpQytWrKCYmBjaunUrdezYkQBQUFCQWttRunTpPEdeyCqnUTt0dXUpPDycoqOjaebMmWRoaKhy1A5tbW0KDQ2l6Oho0agdPXr0EOopRhMJDQ1VWr/ivVM1aoeqmyZdXFyodevWStvg6OhIoaGhdPHiRbW3vaDu3LlDmzdvps2bN4tGGNm8ebPoS/HOnTukra1NwcHBQtmuXbuoefPmtGzZMoqOjqa9e/fS+PHjyczMjMqUKSN8WSk0bNiQTE1N6Y8//qDDhw9Tr169CACtXbtWVO/p06dCDN26dSPg0ygpmzdvVtpHJ06cSBKJhEaPHk1Hjhyh6dOnk1QqpV69eonqKUZQCA4OFkYmULzOnDkjqjt16lRatWoVxcbG0p9//kmtW7cmLS0tpTGInzx5QqNGjaIdO3bQ4cOHaeHCheTg4EClS5dW+gLfsmULzZ07l6Kjo2nXrl00fPhw0tHRUfoRkN/PTUBAAEmlUpowYQJFR0fTlClTSCaTUbNmzUT1bt68SSYmJlS+fHnasGED7dmzh1q1akUSiUSUgC1evJg6d+5Mq1atosOHD9OuXbto1KhRJJfLqU6dOqIbDhU3N+7fv5/27dtHERERpK+vT02bNlUaF9zDw4NkMhmNHTuWDh06RFu3biVvb2+VN3YeOXJEeP9lMhl5e3sLfz99+lSoV7t2bZoyZQpFRUVRbGwsrVy5kmrUqEHa2tq0c+dOpbYaNGiQ0g9XRSL1ueP/KkbtsLKyoj/++IMOHDhAgwcPJolEQv3791dan2LUjm3bttGWLVvIw8ODdHR0RDdKXrp0iUxNTalGjRq0cuVKio2NpZ07d9KsWbPIx8dH9D58TiKtmL9Pnz50/Phx0Umfz02kiT7d+Kajo0N9+vSh7du305EjR2jjxo00fPhwYdSXc+fOUd26dWnu3Lm0b98+iomJEW7GzjrOurrxKEbtKFeuHK1du5b27t0r3LSb9eZzVW108OBB0tLSop9++om2b98uvD+2traFkkgXpitXrpChoSHVq1eP9u7dS9u2baPKlSuTjY2N6LNCRKStrU3169cXlcXGxpKOjg61atWKoqOjad26dWRra0uVK1cWfT8OHTqUBg4cSBs2bKDY2FhavXo1eXh4qLV//QjWAPl6qQs53Iia3zYvWnvtF6Y4oK1Zs4YGDx5MFhYWJJVKqW7duiqHc1LHkydPlB7w8fjxY+rWrRuZmZmRTCajWrVqUXR0tNK8iruLs7t58ya1bNmSihUrRvr6+uTr66t0JiYuLo58fX3JysqKdHV1SV9fnzw8PGjhwoV5DuujEBYWRqampmoNC0Ok+oEsHz58oJCQELK3tyddXV2ytramfv36KQ2BlZKSQsOGDaMSJUoIbRIXF0fGxsai4dGIiLp27UoVK1ZUWj8AGjBgAC1cuJCcnJxIV1eXnJ2dVT4EQjFiw9atW0XlnzsUY34pvgBVvbImF6oSjitXrlDbtm2FO+llMhk5OzvTyJEjKSkpSWldb968ocGDB5OVlRXp6emRq6uryjvOFZ8DVS9Vo478/vvvVK5cOdLT0yM7OzsaN26c6CFERJ++gHNaZvZ9JiIigpycnEgqlZKJiQk1btyY/vrrL6X1JiUlUaNGjcjCwoJ0dXXJzs6OBg0aRM+ePVOqu337dnJ3dycDAwOSy+VUvXp1Wr58udKQmPn93Lx//55CQkLI1taWdHR0yM7OjkJDQ1V+Zi5cuEBNmzYlIyMjYR/ftWuXqM4///xDzZo1IxsbG9LT0yN9fX1yc3OjCRMm0Lt375Tq1qxZk4oVK0ZSqZQqV65MM2bMUGp7ok9n6seMGUMVKlQgfX19KlGiBHl7e9PevXuV6uY2qkHWkY+GDx9Obm5uZGxsTDo6OmRlZUWtWrVSOQpTZmYm2dvbK40eceHCBQJAv/zyi9I8+XX37l3q1KmTMERY+fLlafr06aL3TfE5mjp1KkVERFCpUqVIT0+PqlSponLo0YSEBAoODqaSJUuSrq4uWVhYUJ06dWjixIlCnc9NpIk+nVG3sbERRlVRtHNhJNJEn0bD8fHxEfYVe3t7atu2LR06dIiIPn1PBQUFkbOzMxkYGJChoSG5urrS7NmzRT/K1I2H6NN7GxAQQMbGxqSnp0dubm5KbZFTG+3cuZNcXV2FY8pvv/2m8oEsRcGpU6fI19eX9PX1qVixYtSyZUuVJ91yOn4ePHiQatWqRTKZjMzMzKhbt25KD7Bavnw51ahRg8zMzEhHR4dMTU3Jz88v1+FyfySbgXy9vjYJ0Rd+IkURcuTIEfj4+GDz5s1o27atpsPRuIcPH8LR0RGrV69Wejzz13D8+HF4enpi3bp16NSpk1B+6tQpYTSHmjVrCuUSiQQDBgzA/Pnz81x2WFgYVq9ejVu3bv3Qdzsz9jXExMSgUaNGuHTpEpydnYXyhQsXYtSoUbh165bSzcZfwp07d+Do6Ijp06eLbrxkjH27duXzJv6Ar5zWcobxA7OxscGQIUMwadIktGvX7ove0BAdHY24uDhUq1YNcrkc586dw2+//YayZcuidevWorrVq1dH+/btMWHCBOzevTvf60pOTsaCBQswb948TqIZ+womTpyI4OBgURINALGxsRg8ePBXSaIZY98nXV31RmTTFM4yfnC//vor9PX18eDBA6UxQQtTsWLFcPDgQcyZMwdv3rxB8eLF4e/vjylTpqi883nmzJlYvnw53rx5k++xmRMSEhAaGio6y80Y+zJevnwJLy8v9O/fX2na5s2bNRARY+x7oqNXtFPVH6prB2OMMcYY+3b8ZZ6/k2n1kvJ+IE9hKtppPmOMMcYY+2EV9TPSRTs6xhhjjDH2w9LlRJoxxhhjjLH805UV7VS1aEfHGGOMMcZ+WHxGmjGmJDExEe/fv9d0GIx9M/T19WFnZ6fpMBhjX5mOnq6mQ8gVJ9KMfWWJiYlKY2czxvK2bds2TqYZ+8FoSzmRZoxloTgTPWHCBDg6Omo4GsaKvoSEBISFhfFVHMZ+QDoyPU2HkCtOpBnTEEdHR6UnwTHGGGPs//AZacYYY4wxxgpAm/tIM8YYY4wxln/aUu7awRhjjDHGWL5xH2nGGGOMMcYKgPtIM8YY+2YUxTHOExISRP8WFTy2NWNfnkRXW9Mh5IoTaVYkFcUv88JSVJOCwsQJxrepqI9xHhYWpukQlPDY1ox9WVq6WpoOIVecSLMip6h/mReWopgUFCZOML49PMa5+nhsa8a+Di0pn5FmLF/4y/zbxgnGt4/HOGeMFRV8RpqxAuIv87w9f/4cz58/13QYKhW1rivFixdH8eLFNR0GY4yxfJAU8URaQkSk6SCY5oRLJJoOgbEf1oihAZoO4ZthOH6BpkP4NhjaajoCxgrVx8kd8lVfb/TGLxSJanxGmjHGGGOMFUnctYMxxhhjjLEC4OHvGGOMMcYYKwg9fiALY4wxxhhj+SeVajqCXHEizRhjjDHGiiY9PU1HkKui3YObMcYYY4z9sCR6uvl65cdff/2FgIAA2NjYQCKRICoqKt/xcSLNGGOMMcaKJl3d/L3y4d27d3Bzc8P8+fMLHB537WCMMcYYY0WT7Mv1kfb394e/v/9nLYMTacYYY4wxVjTl8yzz18ZdO1iRFBQbq+kQvgncTurjtlKPvP8kTYfAGGP/R0cnX6/U1FS8fv1a9EpNTf1i4XEizYoM2zp1UNrXV1RW2tcXtnXqaCiioonbSX3cVurRcqgA7bJuojLtsm7QcqigoYjYt+rIkSOQSCRITk7+rOVERkbCxMTks5Zx584dSCQSnD17tsCxeXt7Y8iQIZ8VR0HX5eDggDlz5nyVdRdp2tr5ek2ZMgXGxsai15QpU75YeJxIsyLjVWIiqvXpg6YLFkDPyAhNFyxA1Z49kXznjqZDK1K4ndTHbaUeSn4G3dqNIW3TF5DKIW3TFzq1GoJePtF0aOwLCgoKgkQiUXo1btz4q8bxtRLGOnXq4NGjRzA2Nv7i62KFKJ9npENDQ/Hq1SvRKzQ09IuFx4k0KzJe37+Pze3bI+XVK9hUq4aU5GRsCQzEm4cPNR1akcLtpD5uK/VQ8nOkrJ4KSnkPbdsyoA/vkLpmBujVC02Hxr6wxo0b49GjR6LXhg0bNB3WF6GnpwcrKytIJBJNh8LyQ1snXy+pVIpixYqJXtIv+FAXTqS/A4mJibh69WqBXkWJkY0N2m7YAJmJCR6ePg2ZqSnabtgAIxsbTYdWpHA7qY/bSj0SYzNIu46ARGaAjHs3IZEbfvrb2EzTobF8ym//UKlUCisrK9HL1NQUACCRSLBs2TK0atUK+vr6KFu2LHbu3Cmaf+/evShXrhzkcjl8fHxwR8XVnq1bt6JSpUqQSqVwcHDAzJkzhWne3t64e/cuhg4dKpwRz+rAgQOoUKECDA0NhaQ/q5UrV6JChQqQyWRwdnbGwoULc9zW7F07kpKSEBgYiFKlSkFfXx8uLi6f9SMiNTUVo0aNgq2tLaRSKcqWLYvly5cL0y9fvowmTZrA0NAQlpaW6Nq1K54/f6728sPDw2FnZwepVAobGxsMHjy4wLF+U/LZtSM/3r59i7NnzwrdfxISEnD27FkkJiaqvQweteMbl5iYiNatWxd4/maFGMvnMnFwwJlly3A7JgZBsbHY078/Svv6wsTBgc8gZsHtpD5uK/VITC2RfiIaGTfOQd5/ElK3LoJ2WTdITC35rPQ3ZsqUKYiIiBCVjRs3DuHh4QVaXkREBKZNm4bp06dj3rx56Ny5M+7evQszMzPcu3cPrVu3Rt++fdGvXz+cOnUKw4cPF81/+vRptG/fHuHh4ejQoQOOHz+O/v37w9zcHEFBQdi2bRvc3NzQu3dv9OrVSzTv+/fvMWPGDKxZswZaWlro0qULRowYgXXr1gEAli5dinHjxmH+/PmoUqUK/vvvP/Tq1QsGBgbo3r17ntuWkpKCatWqISQkBMWKFcOePXvQtWtXlC5dGjVr1sx3W3Xr1g1xcXGYO3cu3NzckJCQICTKjx49gpeXF3r16oVZs2bhw4cPCAkJQfv27XH48OE8l71lyxbMnj0bf/75JypVqoTHjx/j3Llz+Y7xm6Tz5VLVU6dOwcfHR/h72LBhAIDu3bsjMjJSrWVwIv2Ne//+PQBgwoQJcHR0zPf8f1YoOjcT3Tt+XKnsdkyMBiIp2rid1MdtpZ7MO1eUyjJu/CBf0t+Z0NBQIRlQyO2y9u7du2FoaCgqCwkJQVhYGIBP/agDAwMBAJMnT8a8efPw77//onHjxli0aBFKly6N2bNnQyKRoHz58rhw4QKmTp0qLGvWrFnw9fUVlleuXDlcvnwZ06dPR1BQEMzMzKCtrQ0jIyNYWVmJ4khLS8PixYvh5OQEABg4cCDGjx8vTJ8wYQJmzpwpnExydHTE5cuXsWTJErUS6ZIlS2LEiBHC34MGDcL+/fuxefPmfCfS169fx6ZNmxAdHY0GDRoAAEqXLi1MX7RoEapWrYrJkycLZStWrICtrS2uX7+OcuXK5br8xMREWFlZoUGDBtDV1YWdnR1q1KiRrxi/Wfk8y5wf3t7eIKLPWgYn0t8JR0dHODs7azqMQhOZ5Rciyxm3k/q4rdTzYeEYTYfAPoNUKs1Xf1AfHx8sWrRIVGZm9n9delxdXYX/GxgYwMjICE+fPgUAXLlyBbVq1RJ1x6hdu7ZoWVeuXEGLFi1EZZ6enpgzZw4yMjKgnUuSpK+vLyTRAGBtbS2s+9mzZ7h37x7+97//ic5kp6enq30zYUZGBn777Tds3LgRDx48QGpqKlJTU2FgYKDW/FmdPXsW2tra8PLyUjn99OnTiI2NVfrRAgC3bt3KM5Fu164d5syZg9KlS6Nx48Zo0qQJAgICoPMFz9YWGdpFexuLdnSMMcYY+2IMDAxQpkyZHKfrZnsYhkQiQWZmJgCodSaPiJT6Pat7BlDVuhXzKmJYunSp0tnj3JLzrGbOnInZs2djzpw5cHFxgYGBAYYMGYKPHz+qNX9Wcrk81+mZmZkICAgQna1XsLa2znP5tra2uHbtGqKjo3Ho0CH0798f06dPx9GjR5Xa6bujrafpCHLFiTRjjDHG8q1ixYqIiooSlZ04cUKpzrFjx0Rlx48fR7ly5YSEV09PDxkZGflat6WlJUqWLInbt2+jc+fO+Q8ewN9//40WLVqgS5cuAD4luzdu3ECFAnR5dHFxQWZmJo4ePSp07ciqatWq2Lp1KxwcHAp8Flkul6N58+Zo3rw5BgwYAGdnZ1y4cAFVq1Yt0PK+GUU8keZROxhjjLEfVGpqKh4/fix6qTuSRN++fXHr1i0MGzYM165dw/r165Vu0Bo+fDhiYmIwYcIEXL9+HatWrcL8+fNFfZMdHBzw119/4cGDB/kexWLKlCn4/fffcf36dVy4cAErV67ErFmz1Jq/TJkyiI6OxvHjx3HlyhX06dMHjx8/Vnv9WTk4OKB79+4IDg5GVFQUEhIScOTIEWzatAkAMGDAALx48QKBgYH4999/cfv2bRw8eBDBwcFq/YiIjIzE8uXLcfHiRdy+fRtr1qyBXC6Hvb19geL9pmjp5u/1tcP76mtkjDHGWJGwf/9+WFtbi14//fSTWvPa2dlh69at2LVrF9zc3LB48WLRzXTApzOxmzZtwp9//onKlStj7NixGD9+PIKCgoQ648ePx507d+Dk5AQLCwu1Y+/ZsyeWLVuGyMhIuLi4wMvLC5GRkWrfeB8WFoaqVavCz88P3t7esLKyQsuWLdVef3aLFi1C27Zt0b9/fzg7O6NXr1549+4dAMDGxgb//PMPMjIy4Ofnh8qVK+Pnn3+GsbExtLTyTsVMTEywdOlSeHp6wtXVFTExMdi1axfMzc0LHO+3QqKtl6/XV4+PPvd2RaZRV69eRZcuXbB27doC3WwYzgPTM6YxI4YGaDqEb4bh+AWaDuHbYGir6QgYK1R0L38jLUlsfb9QJKpxH2nGGGOMMVY0aX+5pxIWBk6kGWOMMcZy8ffff8Pf3z/H6W/fvv2K0fxgtIv2qCScSDPGGGOM5aJ69erCY6TZV6ZVtFPVoh0dY4wxxpiGyeXyXMfbZl+QBkbiyA9OpBljjDHGWNGkVbTHkeZEmjHGGGOMFUkS7trBGGOMMcZYAXDXDsYYY4wxxgqAE2nGGGOq6A/8n6ZDYIyxoo0TacYYY4wxxgpArv5j4zUh7we8M8YYY4wxxpRwIs0YY4wxxlgBcCLNGGOMMcZYAXAizRhjjDHGWAFwIs0YY4wxxlgBcCLNGGOMMcZYAXAizRhjjDHGWAFwIs2KpKDYWE2H8E3gdlIftxVjjLHCxok0KzJs69RBaV9fUVlpX1/Y1qmjoYiKJm4n9XFbMVZ0SSQSREVFAQDu3LkDiUSCs2fPajQmxvKLE2lWZLxKTES1Pn3QdMEC6BkZoemCBajasyeS79zRdGhFCreT+ritGMtZUFAQJBKJ8DI3N0fjxo1x/vx5TYfG2DeDE2lWZLy+fx+b27dHyqtXsKlWDSnJydgSGIg3Dx9qOrQihdtJfdxWjOWucePGePToER49eoSYmBjo6OigWbNmmg6LsW8GJ9LfqMTERFy9ehUJCQmaDqXQGNnYoO2GDZCZmODh6dOQmZqi7YYNMLKx0XRoRQq3k/q4rRjLnVQqhZWVFaysrODu7o6QkBDcu3cPz549y3Pe+/fvo2PHjjAzM4OBgQGqV6+OkydPCtN37dqFatWqQSaToXTp0oiIiEB6evqX3BzGvjodTQfA8i8xMRGtW7fOdfr79++/YkSFw8TBAWeWLcPtmBgExcZiT//+KO3rCxMHBz6DmAW3k/q4rdiPJjU1FampqaIyqVQKqVSa57xv377FunXrUKZMGZibm+dZ18vLCyVLlsTOnTthZWWFM2fOIDMzEwBw4MABdOnSBXPnzkXdunVx69Yt9O7dGwAwbty4Am4dY0UPJ9LfIEWSPGHCBABAWFiYMC2vJDu7onQB797x40plt2NiNBBJ0cbtpD5uK/ajmTJlCiIiIkRl48aNQ3h4uMr6u3fvhqGhIQDg3bt3sLa2xu7du6GllfsF6/Xr1+PZs2eIj4+HmZkZAKBMmTLC9EmTJuGXX35B9+7dAQClS5fGhAkTMGrUKE6k2XeFE+lvmKOjo1JZ1iRb1fTs/qxQodDjKgyRPj6aDuGbwO2kPm4r9iMIDQ3FsGHDRGW5nY328fHBokWLAAAvXrzAwoUL4e/vj3///Rf29vY5znf27FlUqVJFSKKzO336NOLj4zFp0iShLCMjAykpKXj//j309fXzs1mMFVmcSH+nHB0d4ezsrOkwGGOMfUXqduNQMDAwEJ1JrlatGoyNjbF06VJMnDgxx/nkcnmuy83MzERERITKK6QymUzt+Bgr6jiRZowxxhiAT2M7a2lp4cOHD7nWc3V1xbJly/DixQuVZ6WrVq2Ka9euiZJ0xr5HnEgzxhhjP6jU1FQ8fvwYAPDy5UvMnz8fb9++RUBAQK7zBQYGYvLkyWjZsiWmTJkCa2tr/Pfff7CxsUHt2rUxduxYNGvWDLa2tmjXrh20tLRw/vx5XLhwIdcz3Yx9a3j4O8YYY+wHtX//flhbW8Pa2ho1a9ZEfHw8Nm/eDG9v71zn09PTw8GDB1GiRAk0adIELi4u+O2336CtrQ0A8PPzw+7duxEdHQ0PDw/UqlULs2bNyrXfNWPfIj4jzRhjjP2AIiMjERkZWeD57e3tsWXLlhyn+/n5wc/PL8fpRCT838HBQfQ3Y98KPiPNGGOMMcZYAXAizRhjjDGRyZMnw9DQUOXL399f0+ExVmRw1w7GGGOMifTt2xft27dXOS2voe8Y+5FwIs0YY4wxETMzsxwftsIY+z/ctYMxxhhjjLEC4ESaMcYYY4yxAuBEmjHGGGOMsQLgRJoxxhhjjLEC4JsNGWNMQyh6l6ZD+HZ0rqrpCBhjTAmfkWaMMcYYY6wAOJFmjDHGGGOsADiRZowxxhhjrAA4kWaMMcYYY6wAOJFmjDHGGGOsADiRZowxxhhjrAA4kWaMMcYYY6wAOJFmjDHGGGOsADiRZowxxhhjrAA4kWZFUlBsrKZD+CZwO6mP20o93Ted13QI7AclkUgQFRWl6TAYyxdOpFmRYVunDkr7+orKSvv6wrZOHQ1FVDRxO6mP20o9Zx68wvG7L0Vlx+++xJkHrzQUEfsagoKC0LJlS1HZli1bIJPJMG3atC+23vDwcLi7uyuVP3r0CP7+/l9svQXByT3Li46mA2BM4VViIvxmzUKF1q2hZ2SEpgsWQG5mhgPDh2s6tCKF20l93FbqsS4mw9Qjt3HoZhLefczA+JibeJWShlH1Sms6NPYVLVu2DAMGDMCCBQvQs2fPfM//8eNH6OnpFXj9VlZWBZ6XMU3hM9LfiYSEBFy9ehUJCQmaDqXAXt+/j83t2yPl1SvYVKuGlORkbAkMxJuHDzUdWpHC7aQ+biv1WBtJMSegAgz1tHH56VsYSXUws2kFWBpJNR0a+0qmTZuGgQMHYv369UISffz4cdSrVw9yuRy2trYYPHgw3r17J8zj4OCAiRMnIigoCMbGxujVqxcAICQkBOXKlYO+vj5Kly6NsLAwpKWlAQAiIyMRERGBc+fOQSKRQCKRIDIyEoD47O+dO3cgkUiwbds2+Pj4QF9fH25uboiLixPFvXXrVlSqVAlSqRQODg6YOXOmaHpqaipGjRoFW1tbSKVSlC1bFsuXLwcRoUyZMpgxY4ao/sWLF6GlpYVbt27BwcEBANCqVStIJBLhbwDYtWsXqlWrBplMhtKlSyMiIgLp6enC9PDwcNjZ2UEqlcLGxgaDBw8u2BvDijw+I/2N09fXBwCEhYXlWCcxMRHv37//WiEVmJGNDfxmzsSHly/x8PRpyExN0XbDBhwYPpwTnyy4ndTHbaWeJ29SMe2v2ygm1UHFEoZ4nZKG4XuuYFS90pxMf2NSU1ORmpoqKpNKpZBKc34ff/nlFyxYsAC7d+9GgwYNAAAXLlyAn58fJkyYgOXLl+PZs2cYOHAgBg4ciJUrVwrzTp8+HWFhYfj111+FMiMjI0RGRsLGxgYXLlxAr169YGRkhFGjRqFDhw64ePEi9u/fj0OHDgEAjI2Nc4xtzJgxmDFjBsqWLYsxY8YgMDAQN2/ehI6ODk6fPo327dsjPDwcHTp0wPHjx9G/f3+Ym5sjKCgIANCtWzfExcVh7ty5cHNzQ0JCAp4/fw6JRILg4GCsXLkSI0aMENa3YsUK1K1bF05OToiPj0eJEiWwcuVKNG7cGNra2gCAAwcOoEuXLpg7dy7q1q2LW7duoXfv3gCAcePGYcuWLZg9ezb+/PNPVKpUCY8fP8a5c+fUefvYN0hCRKTpIFj+XL16FV26dMHatWvh7OwsSpQTEhIQFhYmmta6descl9Xs9OmvFXaebOvUga5cjtsxMQiKjUWkjw9K+/oi7cMH3Dt+XNPhFRncTuor6m0Vtvh/mg4BwKc+0inpmahjb4rum85jVXtXHL/7EjIdLVQtmXOS8zVpdx6n6RC+CeEzliMiIkJUNm7cOISHhyvVDQoKwoYNG/Dx40fExMSgfv36wrRu3bpBLpdjyZIlQtmxY8fg5eWFd+/eQSaTwcHBAVWqVMH27dtzjWn69OnYuHEjTp069SnG8HBERUXh7NmzonoSiQTbt29Hy5YtcefOHTg6OmLZsmX43/8+fU4uX76MSpUq4cqVK3B2dkbnzp3x7NkzHDx4UFjGqFGjsGfPHly6dAnXr19H+fLlER0dLfxAyOrRo0ewtbXF8ePHUaNGDaSlpaFkyZKYPn06unfvrhSTQr169eDv74/Q0FChbO3atRg1ahQePnyIWbNmYcmSJbh48SJ0dXVzbRv27eMz0t8BOzu7HKcpEuwJEybA0dFRafqfFSp8sbjyS1ViczsmRgORFG3cTurjtlKPqmS5jr2pBiJhnys0NBTDhg0TleV2NtrV1RXPnz/H2LFj4eHhASMjIwDA6dOncfPmTaxbt06oS0TIzMxEQkICKvz/747q1asrLXPLli2YM2cObt68ibdv3yI9PR3FihUr0Pa4uroK/7e2tgYAPH36FM7Ozrhy5QpatGghqu/p6Yk5c+YgIyMDZ8+ehba2Nry8vFQu29raGk2bNsWKFStQo0YN7N69GykpKWjXrl2uMZ0+fRrx8fGYNGmSUJaRkYGUlBS8f/8e7dq1w5w5c1C6dGk0btwYTZo0QUBAAHR0OOX6HvG7+oNwdHSEs7OzpsNQW6SPj6ZD+CZwO6mP20o9q9q75l2JFVl5dePIrmTJkti6dSt8fHzQuHFj7N+/H0ZGRsjMzESfPn1U9u3NevLGwMBANO3EiRPo2LEjIiIi4OfnB2NjY/z5559KfZfVlfWMrkQiAQBkZmYC+JTYK8oUsl5kl8vleS6/Z8+e6Nq1K2bPno2VK1eiQ4cOQpfJnGRmZiIiIkLl1V6ZTAZbW1tcu3YN0dHROHToEPr374/p06fj6NGjfIb6O8SJNGOMMfYDs7Ozw9GjR+Hj44NGjRrhwIEDqFq1Ki5duoQyZcrka1n//PMP7O3tMWbMGKHs7t27ojp6enrIyMj47LgrVqyIY8eOicqOHz+OcuXKQVtbGy4uLsjMzMTRo0dVdu0AgCZNmsDAwACLFi3Cvn378Ndff4mm6+rqKsVatWpVXLt2Lde2kcvlaN68OZo3b44BAwbA2dkZFy5cQNWqVQu4tayo4kSaMcYY+8GVKlUKR44cEZLpJUuWoHbt2hgwYAB69eoFAwMDXLlyBdHR0Zg3b16OyylTpgwSExPx559/wsPDA3v27FHqQ+3g4ICEhAScPXsWpUqVgpGRUb7OoisMHz4cHh4emDBhAjp06IC4uDjMnz8fCxcuFNbTvXt3BAcHCzcb3r17F0+fPkX79u0BANra2ggKCkJoaCjKlCmD2rVrK8UaExMDT09PSKVSmJqaYuzYsWjWrBlsbW3Rrl07aGlp4fz587hw4QImTpyIyMhIZGRkoGbNmtDX18eaNWsgl8thb2+f721kRR8Pf8cYY4wxlCxZEkePHkVycjJ69eqFo0eP4saNG6hbty6qVKmCsLAwoZ9yTlq0aIGhQ4di4MCBcHd3x/Hjx5VGlWrTpg0aN24MHx8fWFhYYMOGDQWKt2rVqti0aRP+/PNPVK5cGWPHjsX48eOFETsAYNGiRWjbti369+8PZ2dn9OrVSzSEHwD873//w8ePHxEcHKy0jpkzZyI6Ohq2traoUqUKAMDPzw+7d+9GdHQ0PDw8UKtWLcyaNUtIlE1MTLB06VJ4enrC1dUVMTEx2LVrF8zNzQu0naxo41E7vkHZR+3IbVpudQEgPFv/MsbY11NURu34FvCoHWoytNV0BN+cf/75B97e3rh//z4sLS01HQ77xnDXDsYYY4z9cFJTU3Hv3j2EhYWhffv2nESzAuGuHYwxxhj74WzYsAHly5fHq1evMG3aNE2Hw75RnEgzxhhj7IcTFBSEjIwMnD59GiVLltR0OOwbxYk0Y4wxxhhjBcCJNGOMMcYYYwXAiTRjjDHGGGMFwIk0Y4wxxhhjBcCJNGOMMcYY+yJWrVqFPXv2CH+PGjUKJiYmqFOnjtLj479FnEgzxhhjjLEvYvLkyZDL5QAgPMZ92rRpKF68OIYOHarh6D4fP5CFMcY0RFK/saZD+Hbo6Gs6AsZYAdy7dw9lypQBAERFRaFt27bo3bs3PD094e3trdngCgGfkWaMMcYYY1+EoaEhkpKSAAAHDx5EgwYNAAAymQwfPnzQZGiFgs9IM8YYY4yxL6Jhw4bo2bMnqlSpguvXr6Np06YAgEuXLsHBwUGzwRUCPiPNGGOMMca+iAULFqB27dp49uwZtm7dCnNzcwDA6dOnERgYqOHoPh+fkWaMMcYYY1+EiYkJ5s+fr1QeERGhgWgKH5+RZowxxhhjX8zff/+NLl26oE6dOnjw4AEAYM2aNTh27JiGI/t8nEgzxhhjjLEvYuvWrfDz84NcLseZM2eQmpoKAHjz5g0mT56s4eg+HyfSjDHGGGPsi5g4cSIWL16MpUuXQldXVyivU6cOzpw5o8HICgcn0owxxhhj7Iu4du0a6tWrp1RerFgxJCcnf/2AChkn0qxICoqN1XQI3wRuJ/VxWzHG2NdnbW2NmzdvKpUfO3YMpUuX1kBEhYsT6e9UQkICrl69ioSEBE2HojbbOnVQ2tdXVFba1xe2depoKKKiidtJfdxWjH1fJBIJoqKiNB1GoTly5AgkEkmROTPr7e2NIUOGCH87ODhgzpw5n7XMPn364Oeff8bJkychkUjw8OFDrFu3DiNGjED//v0/L+AigIe/+87o6396jG5YWJiGI8m/V4mJ8Js1CxVat4aekRGaLlgAuZkZDgwfrunQihRuJ/VxWzGWu6dPnyIsLAz79u3DkydPYGpqCjc3N4SHh6N27doaiys8PBxRUVE4e/asxmJghWPUqFF49eoVfHx8kJKSgnr16kEqlWLEiBEYOHCgpsP7bHxG+jtjZ2eHbdu2Ye3atVi7di0mTJig6ZDU9vr+fWxu3x4pr17Bplo1pCQnY0tgIN48fKjp0IoUbif1cVsxlrs2bdrg3LlzWLVqFa5fv46dO3fC29sbL1680HRo7DsyadIkPH/+HP/++y9OnDiBZ8+efVP5SW44kf4O2dnZwdnZGc7OznB0dNR0OGozsrFB2w0bIDMxwcPTpyEzNUXbDRtgZGOj6dCKFG4n9XFbMZaz5ORkHDt2DFOnToWPjw/s7e1Ro0YNhIaGCo9xlkgkWLJkCZo1awZ9fX1UqFABcXFxuHnzJry9vWFgYIDatWvj1q1bomUvWrQITk5O0NPTQ/ny5bFmzRrR9MTERLRo0QKGhoYoVqwY2rdvjydPngAAIiMjERERgXPnzkEikUAikSAyMlKY9/nz52jVqhX09fVRtmxZ7Ny5U63tVXSjOHDgAKpUqQK5XI769evj6dOn2LdvHypUqIBixYohMDAQ79+/F+ZT1b3B3d0d4eHhwt/h4eGws7ODVCqFjY0NBg8eLExLTU3FqFGjYGtrC6lUirJly2L58uU5xnn8+HHUq1cPcrkctra2GDx4MN69e6fWNua1rsuXL6NJkyYwNDSEpaUlunbtiufPn6u17Ly2My/6+vqwtLSEjY0NDA0N1Z6vqONE+geTmJiIq1evCq+ixMTBAWeWLcOe/v3x8c0b7OnfH2eWLYOJg4OmQytSuJ3Ux23FfjSpqal4/fq16KUYtzc7Q0NDGBoaIioqKsc6ADBhwgR069YNZ8+ehbOzMzp16oQ+ffogNDQUp06dAgDRJfrt27fj559/xvDhw3Hx4kX06dMHPXr0QOz/v+GXiNCyZUu8ePECR48eRXR0NG7duoUOHToAADp06IDhw4ejUqVKePToER49eiRMAz49Ea99+/Y4f/48mjRpgs6dO+frDHp4eDjmz5+P48eP4969e2jfvj3mzJmD9evXY8+ePYiOjsa8efPUXt6WLVswe/ZsLFmyBDdu3EBUVBRcXFyE6d26dcOff/6JuXPn4sqVK1i8eHGOieSFCxfg5+eH1q1b4/z589i4cSOOHTumdheI3Nb16NEjeHl5wd3dHadOncL+/fvx5MkTtG/fvlC2Myfp6ekICwuDsbExHBwcYG9vD2NjY/z6669IS0tTa91FGfeR/oEkJiaidevWorJmGopFlXvHjyuV3Y6J0UAkRRu3k/q4rdiPZsqUKUqPXh43bpzo7KmCjo4OIiMj0atXLyxevBhVq1aFl5cXOnbsCFdXV6Fejx49hGQrJCQEtWvXRlhYGPz8/AAAP//8M3r06CHUnzFjBoKCgoQbyYYNG4YTJ05gxowZ8PHxwaFDh3D+/HkkJCTA1tYWwKen3FWqVAnx8fHw8PCAoaEhdHR0YGVlpRR3UFAQAgMDAQCTJ0/GvHnz8O+//6Jx48ZqtdHEiRPh6ekJAPjf//6H0NBQ3Lp1SxhBom3btoiNjUVISIhay0tMTISVlRUaNGgAXV1d2NnZoUaNGgCA69evY9OmTYiOjkaDBg0AINeRKqZPn45OnToJN/yVLVsWc+fOhZeXFxYtWgSZTJbjvHmta9GiRahataroISgrVqyAra0trl+/jnLlyhV4O3MzcOBAbN++HdOmTRP63cfFxSE8PBzPnz/H4sWL81xGUcZnpH8giktVEyZMEPpQF1WRPj6aDuGbwO2kPm4r9iMIDQ3Fq1evRK/Q0NAc67dp0wYPHz7Ezp074efnhyNHjqBq1aqirhRZk2pLS0sAEJ2JtLS0REpKCl6/fg0AuHLlipCoKnh6euLKlSvCdFtbWyGJBoCKFSvCxMREqJObrPEYGBjAyMgIT58+zXO+nLZHX19flHBaWlrma3nt2rXDhw8fULp0afTq1Qvbt29Heno6AODs2bPQ1taGl5eXWss6ffo0IiMjhasFhoaG8PPzQ2ZmZp6jcOW1rtOnTyM2Nla0bGdnZwBQ6pqT3+3MzYYNGxAZGYk+ffrA1dUVrq6u6NOnD1asWIENGzbkOX9Rx4n0D8jR0VHoQ80YY+z7IZVKUaxYMdFLKpXmOo9MJkPDhg0xduxYHD9+HEFBQRg3bpwwPevT6CQSSY5lmZmZSmUKRCSUZf1/TnVyk3XdinVlXXd+5pdIJHkuT0tLC0QkqpO1S4KtrS2uXbuGBQsWQC6Xo3///qhXrx7S0tIgl8vVjgv41IZ9+vTB2bNnhde5c+dw48YNODk55TpvXuvKzMxEQECAaNlnz57FjRs3VD4wJbvctjM3MpkMDiq60zk4OEBPTy/P9RZ1nEgzxhhjTFCxYkW1b25TpUKFCjh27Jio7Pjx46hQoYKw/MTERNy7d0+YfvnyZbx69Uqoo6enh4yMjALHUJgsLCzw6NEj4e/Xr18rnR2Wy+Vo3rw55s6diyNHjiAuLg4XLlyAi4sLMjMzcfToUbXWVbVqVVy6dAllypRReuWVdOa1LsWyHRwclJZtYGCgVnw5bWduBgwYgAkTJoj64aempmLSpEnfxfB33EeaMcYY+wElJSWhXbt2CA4OhqurK4yMjHDq1ClMmzYNLVq0KPByR44cifbt26Nq1arw9fXFrl27sG3bNhw6dAgA0KBBA7i6uqJz586YM2cO0tPT0b9/f3h5eaF69eoAPp2tTEhIwNmzZ1GqVCkYGRnleWb9S6lfvz4iIyMREBAAU1NThIWFQVtbW5geGRmJjIwM1KxZE/r6+lizZg3kcjns7e1hbm6O7t27Izg4GHPnzoWbmxvu3r2Lp0+fqrzJLyQkBLVq1cKAAQPQq1cvGBgY4MqVK2rdAOng4JDrugYMGIClS5ciMDAQI0eORPHixXHz5k38+eefWLp0qWibVMltO3Pz33//ISYmBqVKlYKbmxsA4Ny5c/j48SN8fX1F925t27Yt12UVRZxIM8YYYz8gQ0ND1KxZE7Nnz8atW7eQlpYGW1tb9OrVC6NHjy7wclu2bInff/8d06dPx+DBg+Ho6IiVK1fC29sbwP89nXDQoEGoV68etLS00LhxY1Gi2KZNG2zbtg0+Pj5ITk7GypUrERQU9JlbXDChoaG4ffs2mjVrBmNjY0yYMEF0RtrExAS//fYbhg0bhoyMDLi4uGDXrl0wNzcH8Okmv9GjR6N///5ISkqCnZ1dju3r6uqKo0ePYsyYMahbty6ICE5OTqJRS3KT27psbGzwzz//ICQkBH5+fkhNTYW9vT0aN24MLa28OyjktZ25zdemTRtRWdb+8d86CWXv+MOKvKtXr6JLly5Yu3Ztnv2cs9YFoDRfuBr90RhjX8bY65s1HcI3Q8uWbxZViyz3pIYxVri4jzRjjDHGGPsiwsPDcffuXU2H8cVwIs0YY4yxb17fvn1FQ7tlffXt21fT4X22v//+O8ftK8pPCty1axecnJzg6+uL9evXIyUlRdMhFSruI80YY4yxb9748eMxYsQIldOKFSv2laMpfNWrV8fZs2c1HUa+nT59GufPn8fKlSsxdOhQDBgwAB07dkRwcDA8PDw0Hd5n40SaMcYYY9+8EiVKoESJEpoO44uRy+UoU6aMpsMoEFdXV8yePRvTp0/Hrl27sHLlSnh6eqJ8+fLo2bMngoKCYGxsrOkwC4S7djDGGGOMsS8uMzMTHz9+RGpqKogIZmZmWLRoEWxtbbFx40ZNh1cgnEgzxhhjjLEv5vTp0xg4cCCsra0xdOhQVKlSBVeuXMHRo0dx9epVjBs3DoMHD9Z0mAXCiTRjjDHGGPsiXF1dUatWLSQkJGD58uW4d+8efvvtN1E3lW7duuHZs2cajLLguI80Y4wxxhj7IhRPzyxZsmSOdSwsLJCZmfkVoyo8nEgzxpimaOtqOoJvR/p7TUfwjeAHsrCihYhgamqqVP7hwwdMnz4dY8eO1UBUhYe7djDGGGOMsS8iIiICb9++VSp///49IiIiNBBR4eJEmjHGGGOMfRFEBIlEolR+7tw5mJmZaSCiwsVdOxhjjDHGWKEyNTWFRCKBRCJBuXLlRMl0RkYG3r59+108cZITacYYY4wxVqjmzJkDIkJwcDAiIiJED1zR09ODg4MDateurcEICwcn0owxxhhjrFB1794dAODo6AhPT0/o6HyfKef3uVWMMcYYY0zjvLy8NB3CF8WJ9A8iISFB0yEwxhhjjH1XOJH+zunr6wMAwsLCNBwJY4wxxtj3hRPp75ydnR22bduG9+/fIyEhgRNqxhhjjLFCwuNI/wDs7Ozg7OwMR0dHTYeitqDYWE2H8E3gdlIftxVjjLHCxmekWZFhW6cOdOVy3I6JEcpK+/oi7cMH3Dt+XIORFS3cTurjtmIsZ0FBQVi1ahWmTJmCX375RSiPiopCq1atQEQajI59y1q3bq123W3btn3BSL48TqRZkfEqMRF+s2ahQuvW0DMyQtMFCyA3M8OB4cM1HVqRwu2kPm4rxnInk8kwdepU9OnTB6ampl9tvWlpadDV1f1q62NfV9Yxo7933LWDFRmv79/H5vbtkfLqFWyqVUNKcjK2BAbizcOHmg6tSOF2Uh+3FWO5a9CgAaysrDBlypQc6xw/fhz16tWDXC6Hra0tBg8ejHfv3gnTJRIJoqKiRPOYmJggMjISAHDnzh1IJBJs2rQJ3t7ekMlkWLt2LTIzMzF+/HiUKlUKUqkU7u7u2L9/v7AMxXzbtm2Dj48P9PX14ebmhri4OKHO3bt3ERAQAFNTUxgYGKBSpUrYu3dv4TQOK7CVK1eq/frWcSL9A0tMTNR0CCJGNjZou2EDZCYmeHj6NGSmpmi7YQOMbGw0HVqRwu2kPm4r9qNJTU3F69evRa/U1NQc62tra2Py5MmYN28e7t+/rzT9woUL8PPzQ+vWrXH+/Hls3LgRx44dw8CBA/MdW0hICAYPHowrV67Az88Pv//+O2bOnIkZM2bg/Pnz8PPzQ/PmzXHjxg3RfGPGjMGIESNw9uxZlCtXDoGBgUhPTwcADBgwAKmpqfjrr79w4cIFTJ06FYaGhvmOjbGC4q4dP6jExES0bt0azTQdSBYmDg44s2wZbsfEICg2Fnv690dpX1+YODjwGcQsuJ3Ux23FfjRTpkxBRESEqGzcuHEIDw/PcZ5WrVrB3d0d48aNw/Lly0XTpk+fjk6dOmHIkCEAgLJly2Lu3Lnw8vLCokWLIJPJ1I5tyJAhor6zM2bMQEhICDp27AgAmDp1KmJjYzFnzhwsWLBAqDdixAg0bdoUABAREYFKlSrh5s2bcHZ2RmJiItq0aQMXFxcAQOnSpdWOh305VapUgUQiUavumTNnvnA0XxYn0j+o9+/fazoEJapu/sp6kxj7hNtJfdxW7EcTGhqKYcOGicqkUmme802dOhX169fH8Gz3D5w+fRo3b97EunXrhDIiQmZmJhISElChQgW1Y6tevbrw/9evX+Phw4fw9PQU1fH09MS5c+dEZa6ursL/ra2tAQBPnz6Fs7MzBg8ejH79+uHgwYNo0KAB2rRpI6rPNKNly5aaDuGr4USaFUmRPj6aDuGbwO2kPm4r9iOQSqVqJc7Z1atXD35+fhg9ejSCgoKE8szMTPTp0weDBw9WmsfOzg7Apz7S2Uf4SEtLU6pvYGCgVJb9rCURKZVlvSlRMS0zMxMA0LNnT/j5+WHPnj04ePAgpkyZgpkzZ2LQoEG5bS77wsaNG6fpEL4a7iPNGGOMMfz222/YtWsXjme5klO1alVcunQJZcqUUXrp6ekBACwsLPDo0SNhnhs3buR51bNYsWKwsbHBsWPHROXHjx/P11luALC1tUXfvn2xbds2DB8+HEuXLs3X/OzLS05OxrJlyxAaGooXL14A+NSl48GDBxqO7PPxGWnGGGOMwcXFBZ07d8a8efOEspCQENSqVQsDBgxAr169YGBggCtXriA6OlqoV79+fcyfPx+1atVCZmYmQkJC1BrabuTIkRg3bhycnJzg7u6OlStX4uzZs6JuJHkZMmQI/P39Ua5cObx8+RKHDx/OdyLOvqzz58+jQYMGMDY2xp07d9CrVy+YmZlh+/btuHv3LlavXq3pED8Ln5FmjDHGGABgwoQJom4arq6uOHr0KG7cuIG6deuiSpUqCAsLE/oqA8DMmTNha2uLevXqoVOnThgxYgT09fXzXNfgwYMxfPhwDB8+HC4uLti/fz927tyJsmXLqh1vRkYGBgwYgAoVKqBx48YoX748Fi5cmL+NZl/UsGHDEBQUhBs3bohuTvX398dff/2lwcgKB5+RZowxxn5AinGes7K3t0dKSoqozMPDAwcPHsxxOTY2Njhw4ICoLDk5Wfi/g4ODyqckamlpYezYsRg7duz/a+/Ow2pM/z+Av09ppV1StCoRRclumOwjk31pxpAY64x90MzYhzD2nSExtrE0g7FlKmZESJKl0CZLEVkLLef8/vBzvo5ijobuJ71f19V11f081bvnoj7PfT7PfRf5dYv6PGNjY5WxV2fPSZpOnz6N1atXFxqvUqUKMjIyBCR6vzgjTUREREQfhK6uLh49elRo/PLlyzA3NxeQ6P1iIU1EREREH0SnTp0wffp05UouMpkMaWlpmDhxIrp16yY43X/HQpqIiIiIPoh58+YhMzMTlSpVwtOnT9GiRQs4OjrCwMAAM2fOFB3vP2OPNBERERF9EIaGhjh27BjCw8MRExMDuVwODw8PtG7dWnS094KFNBERERF9UC1btkTLli1Fx3jv2NpBRERERO9VeHg4XFxcinzQ8OHDh6hVqxb++ecfAcneLxbSRERERPReLVq0CF9//TUMDQ0LHTMyMsLgwYOxYMECAcneLxbSRERERPRenTt3Du3bt3/j8bZt2+LMmTMlmOjDYI90GZSSkiI6AhEREX3Ebt++/dat4suVK4fMzMwSTPRhsJAuQ15u2Tpp0iTBSYgIAFCQJzoBEdEHUaVKFZw/fx6Ojo5FHo+Li1PZar60YmtHGWJjY4OQkBBs2rQJM2bMEB2HiIiIPlIdOnTA5MmTC205DwBPnz7FlClT0LFjRwHJ3i/OSJcxNjY2oiMQERHRR+7HH39ESEgIqlevjm+++QbOzs6QyWSIj4/H8uXLUVBQgB9++EF0zP+MhTQRERERvVcWFhY4fvw4hg4dioCAACgUCgAvtghv164dVqxYAQsLC8Ep/zsW0kRERET03tna2mL//v24f/8+EhMToVAo4OTkBBMTE9HR3hsW0kRERET0wZiYmKB+/fqiY3wQfNiQiIiIiKgYWEgTERERERUDC2kiIiIiomJgIU2S5BcRITpCqcDrpD5eKyIiet9YSJNkWDdpAodWrVTGHFq1gnWTJoISSROvk/p4rYikSyaT4Y8//gAApKamQiaTITY2VmgmonfFQpok42FaGuoNHgzv5cuhbWAA7+XL4TFwIB6kpoqOJim8TurjtSIqmkwme+ubn5+f6IhEpQILaZKMRzduYEfPnnj28CGs6tXDswcPsNPXF49v3RIdTVJ4ndTHa0VUtPT0dOXbokWLYGhoqDK2ePFi0RGJSgUW0iQZBlZW6L51K3SNjXHrzBnompig+9atMLCyEh1NUnid1MdrRVS0ypUrK9+MjIwgk8kKjf2bGzduoHfv3jA1NUX58uXh6emJkydPKo/v3bsX9erVg66uLhwcHDBt2jTk5+erle/+/fv48ssvYW5uDj09PTg5OWH9+vXF/nmJPhRuyEKSYWxnh5i1a5EcFga/iAjsGzYMDq1awdjOjjOIr+B1Uh+vFZU1z58/x/Pnz1XGdHR0oKOj816/z5MnT9CiRQtUqVIFe/bsQeXKlRETEwO5XA4AOHToEPr06YMlS5bgk08+QVJSEgYNGgQAmDJlyr9+/UmTJuHSpUs4cOAAKlasiMTERDx9+vS9/gxE7wML6TJKX19fdIRCrh8/XmgsOSxMQBJp43VSH68VlTWBgYGYNm2aytiUKVMwderU9/p9tmzZgszMTJw+fRqmpqYAAEdHR+XxmTNnYuLEiejXrx8AwMHBATNmzMD48ePVKqTT0tLg7u4OT09PAICdnd17zU/0vrCQLqNsbGwQEhKCIFtb0VGKFOzlJTpCqcDrpD5eKyoLAgICMGbMGJWx9z0bDQCxsbFwd3dXFtGvO3PmDE6fPo2ZM2cqxwoKCvDs2TPk5OT862TO0KFD0a1bN8TExKBt27bo3LkzmnC1HZIgFtJlmI2NjegIRET0Hn2INo6i6OnpvfW4XC7HtGnT0LVr10LHdHV1//Xrf/bZZ7h27Rr27duHv/76C61atcLw4cMxb968Ymcm+hD4sCERERG9Ezc3N8TGxiIrK6vI4x4eHrh8+TIcHR0LvWloqFd6mJubw8/PD5s2bcKiRYuwZs2a9/kjEL0XnJEmIiKid+Lr64tZs2ahc+fOCAwMhKWlJc6ePQsrKys0btwYkydPRseOHWFtbY0ePXpAQ0MDcXFxOH/+PH766ad//fqTJ09GvXr1UKtWLTx//hx//vknatasWQI/GdG74Yw0ERERvRNtbW2EhoaiUqVK6NChA1xdXTF79mxoamoCANq1a4c///wThw8fRv369dGoUSMsWLAAtmo+l6OtrY2AgAC4ubmhefPm0NTUxLZt2z7kj0RULDKFQqEQHYLeTUJCAvr06YNNmzahRo0a/+lrTZXJ3lMqInpXk6/sEB2h1NCwbCg6QulQwVp0AqIyhTPSRERERETFwEKaiIiIVMyaNQsVKlQo8u2zzz4THY9IMviwIREREakYMmQIevbsWeSxf1v6jqgsYSFNREREKkxNTd+42QoR/Q9bO4iIiIiIioGFNBERERFRMbCQJiIiIiIqBhbSRERERETFwIcNiYgEyVm5UXSEUkPLiLvaqUNnyk7REYjKFM5IExEREREVAwtpIiIiIqJiYCFNRERERFQMLKSJiIiIiIqBhTQRERERUTGwkCYiIiIiKgYW0kRERERExcBCmoiIiIioGFhIExEREREVAwtpkiS/iAjREUoFXif18VqpR2/YTNERSg2tftNERyAiwVhIk2RYN2kCh1atVMYcWrWCdZMmghJJE6+T+nit1KNhVxOaTnVUxjSd6kDDrqagRNIls3aGzN5VdczeFTJrZ0GJis/Pzw8ymQwymQxaWlqwsLBAmzZtEBQUBLlcrnLu2bNn0aNHD1hYWEBXVxfVq1fH119/jStXrghKTyQNLKRJMh6mpaHe4MHwXr4c2gYG8F6+HB4DB+JBaqroaJLC66Q+Xiv1KB5kQqtxe+h0GwLo6EGn2xCUa9QGivu3RUeTHMXDu9Cs1xblOgwEtHVRrsNAaHq0huJBpuhoxdK+fXukp6cjNTUVBw4cgJeXF0aOHImOHTsiPz8fAPDnn3+iUaNGeP78OTZv3oz4+Hj8+uuvMDIywqRJkwT/BERisZAmyXh04wZ29OyJZw8fwqpePTx78AA7fX3x+NYt0dEkhddJfbxW6lE8uItnG+dA8SwHmtaOUDzNxvNf50HxMEt0NOl5dA/5O+dD8TwHGlbVoHiWg/xdC4HHpfNa6ejooHLlyqhSpQo8PDzw/fffY/fu3Thw4ACCg4ORk5OD/v37o0OHDtizZw9at24Ne3t7NGzYEPPmzcPq1atF/whEQpUTHYD+m7S0NOTk5IiO8V4YWFmh3fz5eHr/Pm6dOQNdExN037oVh8aOZeHzCl4n9fFaqUdmZAptH38gJxsF1xMh06sAna/GIXdPEIvp1xmYolzbfsCzJ5DfSoJMrzzKdRuN/NANkiimnz9/jufPn6uM6ejoQEdHR+2v0bJlS9SpUwchISEwMzPD3bt3MX78+CLPNTY2/i9xiUo9FtKlWHp6Or777rv/9DU6vqcs74OxnR1i1q5FclgY/CIisG/YMDi0agVjOzsWPa/gdVIfr5V6ZCYWyI86jIKr56A3bCae71oJTac6kJlYsJB+jczYHAUxf0GRch5a/aYhf98vL3qkjc2hkEAhHRgYiGnTVB+CnDJlCqZOnfpOX6dGjRqIi4vD1atXlR8TUWEspEuxZ8+eAQBmzJgBe3v7Yn2NbTWl8zDR9ePHC40lh4UJSCJtvE7q47VSjzw1vtBYwdVzApJIn+L65cJjKecFJClaQEAAxowZozL2LrPRLykUCshkMigUivcVjeijxEL6I2Bvb//RzRYEe3mJjlAq8Dqpj9dKPU9X/CA6QqmRt2GK6AiFvGsbx5vEx8fD3t4e1atXBwAkJCSgcePG//nrEn1s+LAhERERKYWHh+P8+fPo1q0b2rZti4oVK2Lu3LlFnvvgwYOSDUckMZyRJiIiKqOeP3+OjIwMFBQU4Pbt2zh48CACAwPRsWNH9O3bF5qamli7di169OgBHx8fjBgxAo6Ojrh79y62b9+OtLQ0bNu2TfSPQSQMC2kiIqIy6uDBg7C0tES5cuVgYmKCOnXqYMmSJejXrx80NF68aN2pUyccP34cgYGB+OKLL/Do0SNYW1ujZcuW+OmnnwT/BERisZAmIiIqg4KDgxEcHKzWuZ6enti1a9eHDURUCrFHmoiIiIioGFhIExEREREVAwtpIiIiIqJiYCFNRERERFQMLKSJiIiIiIqBhTQRERERUTGwkCYiIiIiKgYW0kRERERExcBCuhS7deuW6AhEREREZRZ3NiyF9PX1AQArV64UnISI/ovyI4aIjlBqxPvwWqnDZYroBERlC2ekSyEbGxuEhIRgxowZoqMQERERlVmckS6lbGxskJOTIzoGERERUZnFGWkiIiIiomJgIU1EREREVAwspImIiIiIioGFNBERERFRMbCQJiIiIiIqBhbSRERERETFwEKaJMkvIkJ0hFKB10l9vFb0vtmu+010BCISjIU0SYZ1kyZwaNVKZcyhVStYN2kiKJE08Tqpj9eK3je9up4o37CZylj5hs2gV9dTUCLy8/ND586dRcegMoqFNEnGw7Q01Bs8GN7Ll0PbwADey5fDY+BAPEhNFR1NUnid1MdrRe9bXvpNmPT4EpV/+Aka5Sug8g8/wbhrb+Tdui462jvz8/ODTCbDkCGFt18fNmwYZDIZ/Pz8Sj4YUSnCQpok49GNG9jRsyeePXwIq3r18OzBA+z09cXjW7dER5MUXif18VrR+5Z/Ox03xg2F/PFj6Lm4Qv74EW5O+Ab5d26LjlYs1tbW2LZtG54+faoce/bsGbZu3QobG5sP9n3z8vI+2NcmKkkspEkyDKys0H3rVugaG+PWmTPQNTFB961bYWBlJTqapPA6qY/Xit63cpUsUGXOMmgYGuLppfPQMDRClTnLUK6ShehoxeLh4QEbGxuEhIQox0JCQmBtbQ13d3fl2MGDB9GsWTMYGxvDzMwMHTt2RFJSksrXunHjBnr37g1TU1OUL18enp6eOHnyJABg6tSpqFu3LoKCguDg4AAdHR0oFAqkpaWhU6dOqFChAgwNDdGzZ0/cvv2/m5KXn7d69WpYW1tDX18fPXr0wIMHDwr9LPPmzYOlpSXMzMwwfPhwlWJ906ZN8PT0hIGBASpXrowvvvgCd+7cUfn8PXv2wMnJCXp6evDy8sKGDRsgk8lUvtfx48fRvHlz6OnpwdraGiNGjEB2dnaxrj19HFhIfwRSUlKQkJBQrDcpMbazQ8zatdg3bBhyHz/GvmHDELN2LYzt7ERHkxReJ/XxWtH7pmVljQch25Dx0w+QZz9Bxk8/4EHINmhZWYuOBgB4/vw5Hj16pPL2/Pnzt35O//79sX79euXHQUFB8Pf3VzknOzsbY8aMwenTpxEWFgYNDQ106dIFcrkcAPDkyRO0aNECt27dwp49e3Du3DmMHz9eeRwAEhMTsX37duzatQuxsbEAgM6dOyMrKwtHjx7F4cOHkZSUhF69eql875eft3fvXhw8eBCxsbEYPny4yjkRERFISkpCREQENmzYgODgYAQHByuP5+bmYsaMGTh37hz++OMPpKSkqLStpKamonv37ujcuTNiY2MxePBg/PDDDyrf4/z582jXrh26du2KuLg4/Pbbbzh27Bi++eabt15f+riVEx2Aik9fXx8AMGnSpGJ/jY7vK8x7cP348UJjyWFhApJIG6+T+nit6H17GhtdaCz75DEBSYoWGBiIadOmqYxNmTIFU6dOfePnfPXVVwgICEBqaipkMhkiIyOxbds2HDlyRHlOt27dVD5n3bp1qFSpEi5duoTatWtjy5YtyMzMxOnTp2FqagoAcHR0VPmc3Nxc/PrrrzA3NwcAHD58GHFxcUhJSYG19YsbkV9//RW1atXC6dOnUb9+fQAvWk02bNiAqlWrAgCWLl0Kb29vzJ8/H5UrVwYAmJiYYNmyZdDU1ESNGjXg7e2NsLAwfP311wCgcmPg4OCAJUuWoEGDBnjy5AkqVKiAVatWwdnZGT///DMAwNnZGRcuXMDMmTOVn/fzzz/jiy++wKhRowAATk5OWLJkCVq0aIGVK1dCV1f3jdeYPl4spEuxly/H5eTkFPtrbKtZ8z0men+CvbxERygVeJ3Ux2tF79u1Ab3+/aQSFhAQgDFjxqiM6ejovPVzKlasCG9vb2zYsAEKhQLe3t6oWLGiyjlJSUmYNGkSoqKicPfuXeVMc1paGmrXro3Y2Fi4u7sri+ii2NraKotoAIiPj4e1tbWyiAYAFxcXGBsbIz4+XllI29jYKItoAGjcuDHkcjkuX76sLKRr1aoFTU1N5TmWlpY4f/688uOzZ89i6tSpiI2NRVZWlkp+FxcXXL58Wfn9XmrQoIHKx2fOnEFiYiI2b96sHFMoFJDL5UhJSUFNif49pQ+LhXQp9yEfBiEiotJFR0fnXwvnovj7+ytbFJYvX17o+Oeffw5ra2v88ssvsLKyglwuR+3atZGbmwsA0NPT+9fvUb58eZWPFQoFZDJZofPeNP7Sy2OvnqOlpVXonJfFcnZ2Ntq2bYu2bdti06ZNMDc3R1paGtq1a6fMX9T3VCgUKh/L5XIMHjwYI0aMKJSJf4vLLhbSREREZVz79u2VRWW7du1Ujt27dw/x8fFYvXo1PvnkEwDAsWOq7Sxubm5Yu3YtsrKy3jor/SoXFxekpaXh+vXrylnpS5cu4eHDhyqzu2lpabh16xas/v8h4RMnTkBDQwPVq1dX6/skJCTg7t27mD17tvL7REertujUqFED+/fvVxl7/RwPDw9cvHixUMsKlW182JCIiKiM09TURHx8POLj41VaJIAX/cdmZmZYs2YNEhMTER4eXqh9xNfXF5UrV0bnzp0RGRmJ5ORk7Nq1CydOnHjj92zdujXc3Nzw5ZdfIiYmBqdOnULfvn3RokULeHr+b4MbXV1d9OvXD+fOncM///yDESNGoGfPnsq2jn9jY2MDbW1tLF26FMnJydizZw9mzJihcs7gwYORkJCACRMm4MqVK9i+fbvyYcWXM9UTJkzAiRMnMHz4cMTGxuLq1avYs2cPvv32W7Vy0MeJhTQRERHB0NAQhoaGhcY1NDSwbds2nDlzBrVr18bo0aOVD+W9pK2tjdDQUFSqVAkdOnSAq6srZs+eXagof5VMJsMff/wBExMTNG/eHK1bt4aDgwN++01163VHR0d07doVHTp0QNu2bVG7dm2sWLFC7Z/L3NwcwcHB2LFjB1xcXDB79mzMmzdP5Rx7e3vs3LkTISEhcHNzw8qVK5WrdrxslXFzc8PRo0dx9epVfPLJJ3B3d8ekSZNgaWmpdhb6+MgUrzcBUZky9S19aET0YU1J2Sc6QqkR71N49z0qzCUuTXSE92rq1Kn4448/lMvllaSZM2di1apVuH699O1aSSWHPdJERERU5q1YsQL169eHmZkZIiMj8fPPP3ONaPpXLKSJiIiozLt69Sp++uknZGVlwcbGBmPHjkVAQIDoWCRxbO0o49jaQSQOWzvUx9YO9XxsrR1EUseHDYmIiIiIioGFNBERERFRMbCQJiIiIiIqBhbSRERERETFwEKaiIiIiKgYuGoHSc7z588RGBiIgIAA5Y5SVBivk/p4rdTD66Q+XisiAlhIkwQ9evQIRkZGePjwYZHb1dILvE7q47VSD6+T+nitiAhgawcRERERUbGwkCYiIiIiKgYW0kRERERExcBCmiRHR0cHU6ZM4QM8/4LXSX28VurhdVIfrxURAXzYkIiIiIioWDgjTURERERUDCykiYiIiIiKgYU0EREREVExsJAmIiIiIioGFtJERERERMXAQpqIqAzz8/PD33//LToGEVGpxEKaqBQpKCjAvHnz0KBBA1SuXBmmpqYqb0Tv6vHjx2jbti2cnJwwa9Ys3Lx5U3QkIqJSg+tIk6Tk5OQgLS0Nubm5KuNubm6CEknL5MmTsXbtWowZMwaTJk3CDz/8gNTUVPzxxx+YPHkyRowYITqiZBQUFGDhwoXYvn17kf+msrKyBCWTnnv37mHTpk0IDg7GhQsX0Lp1awwYMACdOnWClpaW6HiSc+nSpSL/Tfn4+AhKRESisJAmScjMzET//v1x4MCBIo8XFBSUcCJpqlatGpYsWQJvb28YGBggNjZWORYVFYUtW7aIjigZvOkonrNnzyIoKAhr165FhQoV0KdPHwwbNgxOTk6iowmXnJyMLl264Pz585DJZHj551MmkwHg7ymisoitHSQJo0aNwv379xEVFQU9PT0cPHgQGzZsgJOTE/bs2SM6nmRkZGTA1dUVAFChQgU8fPgQANCxY0fs27dPZDTJ2bx5M3755ReMGzcO5cqVg6+vL9auXYvJkycjKipKdDxJSk9PR2hoKEJDQ6GpqYkOHTrg4sWLcHFxwcKFC0XHE27kyJGwt7fH7du3oa+vj4sXL+Lvv/+Gp6cnjhw5IjoeEQnAQpokITw8HAsXLkT9+vWhoaEBW1tb9OnTB3PnzkVgYKDoeJJRtWpVpKenAwAcHR0RGhoKADh9+jR0dHRERpMc3nSoJy8vD7t27ULHjh1ha2uLHTt2YPTo0UhPT8eGDRsQGhqKX3/9FdOnTxcdVbgTJ05g+vTpMDc3h4aGBjQ0NNCsWTMEBgbyFQ6iMoqFNElCdnY2KlWqBAAwNTVFZmYmAMDV1RUxMTEio0lKly5dEBYWBuDF7NikSZPg5OSEvn37wt/fX3A6aeFNh3osLS3x9ddfw9bWFqdOnUJ0dDSGDBkCAwMD5Tnt2rWDsbGxuJASUVBQgAoVKgAAKlasiFu3bgEAbG1tcfnyZZHRiEiQcqIDEAGAs7MzLl++DDs7O9StWxerV6+GnZ0dVq1aBUtLS9HxJGP27NnK97t3746qVavi+PHjcHR05INOr3l509GwYUOMHDkSvr6+WLduHdLS0jB69GjR8SRj4cKF6NGjB3R1dd94jomJCVJSUkowlTTVrl0bcXFxcHBwQMOGDTF37lxoa2tjzZo1cHBwEB2PiATgw4YkCZs3b0ZeXh78/Pxw9uxZtGvXDvfu3YO2tjaCg4PRq1cv0RGplIuKiuJNB/0nhw4dQnZ2Nrp27Yrk5GR07NgRCQkJMDMzw2+//YaWLVuKjkhEJYyFNElSTk4OEhISYGNjg4oVK4qOI9SePXvw2WefQUtL618fvGSBSO8qOzsbs2fPRlhYGO7cuQO5XK5yPDk5WVCy0iErKwsmJibKlTuIqGxhIU0kcRoaGsjIyEClSpWgofHmxxpkMlmZX36LNx3vztfXF0ePHsVXX30FS0vLQgXhyJEjBSUjIpI+FtIkCQqFAjt37kRERESRs2IhISGCklFpwpuOd2dsbIx9+/ahadOmoqNI3rNnz7B06dI3/p7ig9FEZQ8fNiRJGDlyJNasWQMvLy9YWFjwZVIqllcLm9eLHCqaiYkJt5dXk7+/Pw4fPozu3bujQYMG/D1FRJyRJmkwNTXFpk2b0KFDB9FRJO/UqVM4cuRIkTNiCxYsEJSKSqtNmzZh9+7d2LBhA/T19UXHkTQjIyPs37+fs/dEpMQZaZIEIyMjLh+lhlmzZuHHH3+Es7NzoZl7zo4VxpuOorm7u6v8e0lMTISFhQXs7OygpaWlci7bFf6nSpUqKutrExGxkCZJmDp1KqZNm4agoCDo6emJjiNZixcvRlBQEPz8/ERHkTzedLxZ586dRUcolebPn48JEyZg1apVsLW1FR2HiCSArR0kCTk5OejatSsiIyM5K/YWlpaW+Pvvv+Hk5CQ6iuRZWFhgzpw5vOmg9yYzMxM9e/bE33//DX19/UK/p7KysgQlIyJROCNNkuDn54czZ86gT58+fNjwLUaPHo3ly5dj0aJFoqNInoaGBntZ1eDg4IDTp0/DzMxMZfzBgwfw8PDgOtKv8PX1xc2bNzFr1iz+niIiAJyRJokoX748Dh06hGbNmomOImlyuRze3t64cuUKXFxcCs2IcZnA/5k7dy5u3brFm45/8eqSga+6ffs2rK2tkZubKyiZ9Ojr6+PEiROoU6eO6ChEJBGckSZJsLa2hqGhoegYkvftt98iIiICXl5eMDMz44zYW4wbNw7e3t6oVq0abzqK8OqGNYcOHYKRkZHy44KCAoSFhcHe3l5ENMmqUaMGnj59KjoGEUkIZ6RJEvbt24elS5di1apVsLOzEx1HsgwMDLBt2zZ4e3uLjiJ5w4cPx7p16964Nvn69esFJZOGlxvWyGQyvP5nQEtLC3Z2dpg/fz46duwoIp4khYaGYtq0aZg5cyZcXV0L3ZxxMoCo7GEhTZJgYmKCnJwc5Ofn8yGet7C1tcWhQ4dQo0YN0VEkjzcd6rG3t8fp06dRsWJF0VEk79Wbj1cpFArulklURrG1gySBfazqmTp1KqZMmYL169dz84x/YWpqimrVqomOIXkpKSmiI5QaERERoiMQkcRwRpqoFHF3d0dSUhIUCgWXCfwX69evx8GDB3nToYbs7GwcPXoUaWlphR4uHDFihKBURETSxxlpkoyCggL88ccfiI+Ph0wmg4uLC3x8fKCpqSk6mmRwIw31LVmyBElJSdyx71+cPXsWHTp0QE5ODrKzs2Fqaoq7d+9CX18flSpVYiH9mgcPHmDdunUqv6f8/f1VHtYkorKDM9IkCYmJiejQoQNu3rwJZ2dnKBQKXLlyBdbW1ti3bx9foqd3Nm3atLcenzJlSgklkbZPP/0U1atXx8qVK2FsbIxz585BS0sLffr0wciRI9G1a1fRESUjOjoa7dq1g56eHho0aACFQoHo6Gg8ffoUoaGh8PDwEB2RiEoYC2mShA4dOkChUGDz5s0wNTUFANy7dw99+vSBhoYG9u3bJzihdDx48AA7d+5EUlISvvvuO5iamiImJgYWFhaoUqWK6HhUyhgbG+PkyZNwdnaGsbExTpw4gZo1a+LkyZPo168fEhISREeUjE8++QSOjo745ZdfUK7cixd08/PzMXDgQCQnJ+Pvv/8WnJCIShpbO0gSjh49iqioKGURDQBmZmaYPXs2d6d7RVxcHFq3bg0jIyOkpqbi66+/hqmpKX7//Xdcu3YNGzduFB1RUnjT8e+0tLSUq1BYWFggLS0NNWvWhJGREdLS0gSnk5bo6GiVIhoAypUrh/Hjx8PT01NgMiISRUN0ACIA0NHRwePHjwuNP3nyBNra2gISSdOYMWPg5+eHq1evQldXVzn+2WefcTbsNXFxcahevTrmzJmDefPm4cGDBwCA33//HQEBAWLDSYi7uzuio6MBAF5eXpg8eTI2b96MUaNGwdXVVXA6aTE0NCzy5uL69eswMDAQkIiIRGMhTZLQsWNHDBo0CCdPnoRCoYBCoUBUVBSGDBkCHx8f0fEk4/Tp0xg8eHCh8SpVqiAjI0NAIuniTYd6Zs2aBUtLSwDAjBkzYGZmhqFDh+LOnTtYs2aN4HTS0qtXLwwYMAC//fYbrl+/jhs3bmDbtm0YOHAgfH19RccjIgHY2kGSsGTJEvTr1w+NGzdWrq6Qn58PHx8fLF68WHA66dDV1cWjR48KjV++fBnm5uYCEknX6dOnsXr16kLjvOlQ9WpLgrm5Ofbv3y8wjbTNmzcPMpkMffv2RX5+PoAXrTFDhw7F7NmzBacjIhFYSJMkGBsbY/fu3bh69SoSEhKgUCjg4uICR0dH0dEkpVOnTpg+fTq2b98O4MUOa2lpaZg4cSK6desmOJ208Kbj3dy5cweXL1+GTCaDs7Mzr1ERtLW1sXjxYgQGBirXc3d0dOQ65URlGFftICpFHj16hA4dOuDixYt4/PgxrKyskJGRgcaNG2P//v0oX7686IiSMWjQIGRmZmL79u0wNTVFXFwcNDU10blzZzRv3py7af6/R48eYfjw4di2bZtyi2tNTU306tULy5cv5/rIRERvwUKaJKGgoADBwcEICwvDnTt3IJfLVY6Hh4cLSiZN4eHhiImJgVwuh4eHB1q3bg2FQqFcfYF406Gunj17IjY2FkuXLkXjxo0hk8lw/PhxjBw5Em5ubspXP+jFDpCzZ89+4++p5ORkQcmISBQW0iQJ33zzDYKDg+Ht7Q1LS8tCBeHChQsFJZOWwMDAIlecKCgoQJ8+fbB161YBqaSNNx1vV758eRw6dAjNmjVTGf/nn3/Qvn17ZGdnC0omPb6+vjh69Ci++uqrIn9PjRw5UlAyIhKFPdIkCdu2bcP27dvRoUMH0VEkbdGiRTAzM8OgQYOUYwUFBejduzcuXLggMJn0vLzpaNmyJVq2bKkc502HKjMzsyLbN4yMjGBiYiIgkXQdOHAA+/bt49r2RKTE5e9IErS1tflgoRr279+PCRMmKF9uz8vLQ48ePXDx4kVEREQITictixYtKrR828ubjtjYWDGhJOjHH3/EmDFjkJ6erhzLyMjAd999h0mTJglMJj0mJiYqm0YREbG1gyRh/vz5SE5OxrJly/iS+784cuQIOnXqhI0bN2LdunVISkpCeHg4LCwsREeTlDNnzqB169ZYvXo1evbsiby8PPTq1QsJCQkIDw9H5cqVRUeUBHd3dyQmJuL58+ewsbEBAKSlpUFHRwdOTk4q58bExIiIKBmbNm3C7t27sWHDBq7UQUQAWEiTRHTp0gUREREwNTVFrVq1lGtJvxQSEiIomTTt2bMH3bp1Q82aNREeHo6KFSuKjiRJvOn4d9OmTVP73ClTpnzAJNLn7u6uXPbOzs6u0O+psn6jQVQWsUeaJMHY2BhdunQRHUOSunbtWuS4ubk5jI2NVfqlecOh6tNPP8Wvv/6qvOk4evQobzpeU9aL43fRuXNn0RGISGI4I00kcf3791f73PXr13/AJNL3ppuOqKgoODo6qhTRvOlQdebMGcTHx0Mmk8HFxQXu7u6iIxERSR5npIkkrqwXx+/iTZuHtGvXroSTlB537txB7969ceTIERgbG0OhUODhw4fw8vLCtm3buMMhEdFbcEaahPHw8EBYWBhMTEzg7u7+1ocM2XtI9GH06tULSUlJ+PXXX1GzZk0AwKVLl9CvXz84OjqW+WUCTU1NceXKFVSsWBEmJiZv/T2VlZVVgsmISAo4I03CdOrUCTo6OgDYe6gue3v7t/4h585q9K4OHjyIv/76S1lEA4CLiwuWL1+Otm3bCkwmDQsXLoSBgYHyfa4qRESv4ow0USmyePFilY/z8vJw9uxZHDx4EN999x0mTpwoKJn08KZDPQYGBvjnn39Qt25dlfGzZ8+iRYsWePTokZhgRESlAGekSRJOnz4NuVyOhg0bqoyfPHkSmpqa8PT0FJRMWt60BfHy5csRHR1dwmmkbdSoUSofv37TQS+0bNkSI0eOxNatW2FlZQUAuHnzJkaPHo1WrVoJTict+/fvh6amZqGe+9DQUBQUFOCzzz4TlIyIROGMNElCgwYNMH78eHTv3l1lPCQkBHPmzMHJkycFJSsdkpOTUbduXc4equHlTQcf4nzh+vXr6NSpEy5cuABra2vIZDKkpaXB1dUVu3fvRtWqVUVHlAw3NzfMnj0bHTp0UBk/ePAgJkyYgHPnzglKRkSisJAmSahQoQLi4uLg4OCgMp6SkgI3Nzc8fvxYULLSYe7cuVixYgVSU1NFR5E83nQU7fDhw0hISIBCoYCLiwtat24tOpLk6OnpIT4+HnZ2dirjqampqFWrFrKzs8UEIyJh2NpBkqCjo4Pbt28XKqTT09NRrhz/mb70+uomCoUCGRkZyMzMxIoVKwQmKz127twJU1NT0TEkIyUlBfb29mjTpg3atGkjOo6kGRkZITk5uVAhnZiYiPLly4sJRURCsUIhSWjTpg0CAgKwe/du5VrADx48wPfff88/7q94fXUTDQ0NmJub49NPP0WNGjXEhJIo3nSox9HREc2bN8eAAQPQvXt36Orqio4kWT4+Phg1ahR+//13VKtWDcCLInrs2LHw8fERnI6IRGBrB0nCjRs30KJFC9y7d0+5o1psbCwsLCxw+PBhWFtbC05Ipc20adNUPuZNR9EuXLiAoKAgbN68Gc+fP0evXr3g7+9f6MFfAh4+fIj27dsjOjpa2Tt+48YNfPLJJwgJCYGxsbHYgERU4lhIk2RkZ2dj8+bNOHfuHPT09ODm5gZfX19oaWmJjiYpSUlJWL9+PZKSkrB48WJUqlQJBw8ehLW1NWrVqiU6HpVS+fn52Lt3L4KDg3HgwAE4OTlhwIAB+Oqrr7i74Svkcjn++usvld9TzZs3Fx2LiARhIU3C5eXlwdnZGX/++SdcXFxEx5G0o0eP4rPPPkPTpk3x999/Iz4+Hg4ODpg7dy5OnTqFnTt3io4oKbzpeHfPnz/HihUrEBAQgNzcXGhpaaFXr16YM2cOLC0tRccTJj8/H7q6uoiNjUXt2rVFxyEiidAQHYBIS0sLz58/545hapg4cSJ++uknHD58GNra2spxLy8vnDhxQmAy6Tl69ChcXV1x8uRJhISE4MmTJwCAuLg4TJkyRXA66YmOjsawYcNgaWmJBQsWYNy4cUhKSkJ4eDhu3ryJTp06iY4oVLly5WBra4uCggLRUYhIQlhIkyR8++23mDNnDvLz80VHkbTz58+jS5cuhcbNzc1x7949AYmkizcd6lmwYAFcXV3RpEkT3Lp1Cxs3bsS1a9fw008/wd7eHk2bNsXq1asRExMjOqpwP/74IwICApCVlSU6ChFJBFftIEk4efIkwsLCEBoaCldX10JLSYWEhAhKJi3GxsZIT0+Hvb29yvjZs2dRpUoVQamk6fz589iyZUuhcd50qFq5ciX8/f3Rv39/VK5cuchzbGxssG7duhJOJj1LlixBYmIirKysYGtrW+j3FG82iMoeFtIkCcbGxujWrZvoGJL3xRdfYMKECdixYwdkMhnkcjkiIyMxbtw49O3bV3Q8SeFNh3quXr36r+doa2ujX79+JZBG2l5ffpKIiA8bEpUieXl58PPzw7Zt26BQKFCuXDkUFBTgiy++QHBwMDQ1NUVHlIzx48fjxIkT2LFjB6pXr46YmBjcvn0bffv2Rd++fdkn/Ypnz54hLi4Od+7cgVwuVznG9ZGJiN6MhTRRKZSUlISzZ89CLpfD3d0dTk5OoiNJTlE3Hfn5+fjyyy950/GKgwcP4quvviqy3UUmk/HhOiKit2AhTZKxc+dObN++HWlpacjNzVU5xt5DKq7k5GTExMTwpuMNHB0d0a5dO0yePBkWFhai40haQUEBFi5c+MbfU3wIkajsYY80ScKSJUvwww8/oF+/fti9ezf69++PpKQknD59GsOHDxcdT6gxY8aofe6CBQs+YBLp+7drFRUVpXy/rF+rl+7cuYMxY8awiFbDtGnTsHbtWowZMwaTJk3CDz/8gNTUVPzxxx+YPHmy6HhEJABnpEkSatSogSlTpsDX1xcGBgY4d+4cHBwcMHnyZGRlZWHZsmWiIwrj5eWl1nkymQzh4eEfOI208Vq9O39/fzRt2hQDBgwQHUXyqlWrhiVLlsDb2xsGBgaIjY1VjkVFRRW5SgwRfdxYSJMk6OvrIz4+Hra2tqhUqRIOHz6MOnXq4OrVq2jUqBGXKyP6QHJyctCjRw+Ym5vD1dUVWlpaKsdHjBghKJn0lC9fHvHx8bCxsYGlpSX27dsHDw8PJCcnw93dHQ8fPhQdkYhKGFs7SBIqV66Me/fuwdbWFra2toiKikKdOnWQkpIC3usRfThbtmzBoUOHoKenhyNHjqjsMCqTyVhIv6Jq1apIT0+HjY0NHB0dERoaCg8PD5w+fRo6Ojqi4xGRANzZkCShZcuW2Lt3LwBgwIABGD16NNq0aYNevXoVuZMfqVqxYgWmT58uOgaVQj/++COmT5+Ohw8fIjU1FSkpKcq35ORk0fEkpUuXLggLCwMAjBw5EpMmTYKTkxP69u0Lf39/wemISAS2dpAkyOVyyOVylCv34kWS7du349ixY3B0dMSQIUNUtnimwlq1asXCh4rF1NQUp0+fRrVq1URHKXVOnjyJyMhIODo6cr1tojKKhTQRURk2evRomJub4/vvvxcdhYio1GGPNEnC+vXrUaFCBfTo0UNlfMeOHcjJyeH2xEQfSEFBAebOnYtDhw7Bzc2t0MOGXCbwfwIDA2FhYVGojSMoKAiZmZmYMGGCoGREJAp7pEkSZs+ejYoVKxYar1SpEmbNmiUgkTQFBgYiKCio0HhQUBDmzJkjIBGVdufPn4e7uzs0NDRw4cIFnD17VvkWGxsrOp6krF69GjVq1Cg0XqtWLaxatUpAIiISja0dJAm6urpISEiAnZ2dynhqaipq1qyJp0+figkmMXZ2dtiyZQuaNGmiMn7y5En07t0bKSkpgpIRffx0dXURHx8Pe3t7lfHk5GS4uLjg2bNngpIRkSickSZJqFSpEuLi4gqNnzt3DmZmZgISSVNGRgYsLS0LjZubmyM9PV1AIvqY3LhxAzdv3hQdQ7Ksra0RGRlZaDwyMhJWVlYCEhGRaCykSRJ69+6NESNGICIiAgUFBSgoKEB4eDhGjhyJ3r17i44nGfxDTu+bXC7H9OnTYWRkBFtbW9jY2MDY2BgzZsyAXC4XHU9SBg4ciFGjRmH9+vW4du0arl27hqCgIIwePRpff/216HhEJAAfNiRJ+Omnn3Dt2jW0atVKuQSeXC5H37592SP9ipd/yPPy8tCyZUsAQFhYGMaPH4+xY8cKTkel0Q8//IB169Zh9uzZaNq0KRQKBSIjIzF16lQ8e/YMM2fOFB1RMsaPH4+srCwMGzYMubm5AF60e0yYMAEBAQGC0xGRCOyRJkm5evUqYmNjoaenB1dXV9ja2oqOJCkKhQITJ07EkiVLCv0hnzx5suB0VBpZWVlh1apVhdZB3r17N4YNG8ZWjyI8efIE8fHx0NPTg5OTE3c1JCrDWEgTlUL8Q07vi66uLuLi4lC9enWV8cuXL6Nu3bp80JeI6C3YI02Stnv3bmzcuFF0DMmpUKEC6tevj9q1a7OIpv+kTp06WLZsWaHxZcuWoU6dOgISlT4rVqzA9OnTRccgIgE4I02SVqNGDVy9ehUFBQWiowjTtWtXBAcHw9DQEF27dn3ruSEhISWUij4WR48ehbe3N2xsbNC4cWPIZDIcP34c169fx/79+/HJJ5+Ijih5rVq1QkpKCpKTk0VHIaISxocNSdISEhJERxDOyMgIMpkMAGBoaKh8n+h9aNGiBa5cuYLly5cjISEBCoUCXbt2xbBhw7gSjJrCwsJERyAiQTgjTURERERUDJyRJmGK2oDlTdzc3D5gktKjZcuWCAkJgbGxscr4o0eP0LlzZ4SHh4sJRqVKXFwcateuDQ0NjX/9f1jW/+/t2bNH7XNfX/mEiD5+nJEmYTQ0NCCTyfCmf4Ivj8lksjLdI/0qDQ0NZGRkoFKlSirjd+7cQZUqVZCXlycoGZUmr/47etv/Q/7fe3Gt1MFrRVQ2cUaahElJSREdodR4ddbw0qVLyMjIUH5cUFCAgwcPokqVKiKiUSmUkpICc3Nz5fv0ZtzdkYjehjPSRKXAy1lDAEXOHOrp6WHp0qXw9/cv6WhERERlFgtpEoa9h+q7du0aFAoFHBwccOrUKeVsIgBoa2ujUqVK0NTUFJiQShP+31PfkiVL1D53xIgRHzAJEUkRC2kShr2H7y47Oxvly5cXHYNKudf/773eI/3qEotl/f+evb29WufJZDKuI01UBrFHmoRh7+G7s7CwQM+ePeHv749mzZqJjkOl1Kv/9/766y9MmDABs2bNUtmQ5ccff8SsWbMEppQG9pAT0dtwRpok59mzZ9DV1RUdQ5L27t2L4OBg/Pnnn7C1tYW/vz/69u3LjTOo2GrXro1Vq1YVujH7559/MGjQIMTHxwtKJl25ublISUlBtWrVUK4c56OIyjL1Xlsn+sAKCgowY8YMVKlSBRUqVFC+RDpp0iSsW7dOcDrp+Pzzz7Fr1y7cunULQ4cOxdatW2Fra4uOHTsiJCQE+fn5oiNSKZOUlAQjI6NC40ZGRkhNTS35QBKWk5ODAQMGQF9fH7Vq1UJaWhqAF73Rs2fPFpyOiERgIU2SMHPmTAQHB2Pu3LnQ1tZWjru6umLt2rUCk0mTmZkZRo8ejXPnzmHBggX466+/0L17d1hZWWHy5MnIyckRHZFKifr162PUqFFIT09XjmVkZGDs2LFo0KCBwGTSExAQgHPnzuHIkSMqr5q1bt0av/32m8BkRCQKC2mShI0bN2LNmjX48ssvVVafcHNzQ0JCgsBk0pSRkYG5c+eiZs2amDhxIrp3746wsDAsXLgQv//+Ozp37iw6IpUS69atw507d2BrawtHR0c4OjrCxsYG6enpfDXoNX/88QeWLVuGZs2aqTyQ6eLigqSkJIHJiEgUNneRJNy8eROOjo6FxuVyOXfre0VISAjWr1+PQ4cOwcXFBcOHD0efPn1UtgyvW7cu3N3dxYWkUsXJyQnnzp3DX3/9hYSEBCgUCri4uKB169YqxSIBmZmZhXYVBV6spsNrRVQ2sZAmSahVqxb++ecf2Nraqozv2LGDReEr+vfvj969eyMyMhL169cv8hwHBwf88MMPJZyMSqP8/Hzo6uoiNjYWbdu2Rdu2bUVHkrT69etj3759+PbbbwH8b5nAX375BY0bNxYZjYgEYSFNkjBlyhR89dVXuHnzJuRyOUJCQnD58mVs3LgRf/75p+h4kpGeng59ff23nqOnp4cpU6aUUCIqzcqVKwdbW9syv1a0ugIDA9G+fXtcunQJ+fn5WLx4MS5evIgTJ07g6NGjouMRkQDskSZJ+Pzzz/Hbb79h//79kMlkmDx5MuLj47F37160adNGdDzJOHLkCA4dOlRo/NChQzhw4ICARFTa/fjjjwgICEBWVpboKJLXpEkTREZGIicnB9WqVUNoaCgsLCxw4sQJ1KtXT3Q8IhKA60gTlSJubm6YPXs2OnTooDJ+8OBBTJgwAefOnROUjEord3d3JCYmIi8vD7a2toV2zoyJiRGUjIhI+tjaQZJw+vRpyOVyNGzYUGX85MmT0NTUhKenp6Bk0nL16lW4uLgUGq9RowYSExMFJKLSjiu8qG///v3Q1NREu3btVMYPHToEuVyOzz77TFAyIhKFhTRJwvDhwzF+/PhChfTNmzcxZ84cnDx5UlAyaTEyMkJycjLs7OxUxhMTEwvNJBKpg/306ps4cWKRG68oFApMnDiRhTRRGcQeaZKES5cuwcPDo9C4u7s7Ll26JCCRNPn4+GDUqFEqa9YmJiZi7Nix8PHxEZiM6OPHV4SI6HUspEkSdHR0cPv27ULj6enpKFeOL5y89PPPP6N8+fKoUaMG7O3tYW9vj5o1a8LMzAzz5s0THY9KoYKCAsybNw8NGjRA5cqVYWpqqvJG//PyFaHX8RUhorKLhTRJQps2bRAQEICHDx8qxx48eIDvv/+eq3a8wsjICMePH8e+ffswbNgwjB07FmFhYQgPD1fZlIVIXdOmTcOCBQvQs2dPPHz4EGPGjEHXrl2hoaGBqVOnio4nKXxFiIhex1U7SBJu3ryJ5s2b4969e8oNWGJjY2FhYYHDhw/D2tpacEKij1O1atWwZMkSeHt7w8DAALGxscqxqKgobNmyRXREyXj48CHat2+P6OhoVK1aFQBw48YNfPLJJwgJCeHNLFEZxEKaJCM7OxubN2/GuXPnoKenBzc3N/j6+kJLS0t0NEk5evQo5s2bh/j4eMhkMtSsWRPfffcdPvnkE9HRqBQqX7484uPjYWNjA0tLS+zbtw8eHh5ITk6Gu7u7yqtE9OLBwsOHD6v8nmrevLnoWEQkCJtPSTLKly+PQYMGiY4haZs2bUL//v3RtWtXjBgxAgqFAsePH0erVq0QHByML774QnREKmWqVq2K9PR02NjYwNHREaGhofDw8MDp06eho6MjOp7kyGQybqdOREqckSZJS09PR15eHmxsbERHkYSaNWti0KBBGD16tMr4ggUL8MsvvyA+Pl5QMiqtJk6cCENDQ3z//ffYuXMnfH19YWdnh7S0NIwePbrI5d5IVXR0NHJycjgzTVQGsZAmSatZsyauXLmCgoIC0VEkQUdHBxcvXoSjo6PKeGJiImrXro1nz54JSkYfi5MnTyIyMhKOjo58gE5N/D1FVHZx1Q6StI0bNyI8PFx0DMmwtrZGWFhYofGwsDA+kEnFEhgYiKCgIOXHDRs2xJgxY3D37l3MmTNHYLLSIywsrMhl8Yjo48cZaaJSZOXKlRg1ahT8/f3RpEkTyGQyHDt2DMHBwVi8eDEGDx4sOiKVMnZ2dtiyZQuaNGmiMn7y5En07t0bKSkpgpIREUkfHzYkKkWGDh2KypUrY/78+di+fTuAFy8r//bbb+jUqZPgdFQaZWRkwNLSstC4ubk50tPTBSSSrpiYGGhpacHV1RUAsHv3bqxfvx4uLi6YOnUqtLW1BSckopLGQpqEMTExgUwmU+vcrKysD5ym9OjSpQu6dOkiOgZ9JKytrREZGQl7e3uV8cjISFhZWQlKJU2DBw/GxIkT4erqiuTkZPTu3RtdunTBjh07kJOTg0WLFomOSEQljIU0CcM/OsWXm5uLO3fuQC6Xq4xzdRN6VwMHDsSoUaOQl5eHli1bAnjR8zt+/HiMHTtWcDppuXLlCurWrQsA2LFjB5o3b44tW7YgMjISvXv35u80ojKIhTQJ069fP9ERSp2rV6/C398fx48fVxlXKBSQyWRcNYDe2fjx45GVlYVhw4YhNzcXAKCrq4sJEyYgICBAcDppUSgUypvXv/76Cx07dgTwYlb/7t27IqMRkSB82JAk5+nTp8jLy1MZMzQ0FJRGWpo2bYpy5cph4sSJsLS0LNQaU6dOHUHJqLR78uQJ4uPjoaenBycnJ27GUoSWLVvC2toarVu3xoABA3Dp0iU4Ojri6NGj6NevH1JTU0VHJKISxkKaJCE7OxsTJkzA9u3bce/evULHOdP6Qvny5XHmzBnUqFFDdBSiMicuLg5ffvkl0tLSMGbMGEyZMgUA8O233+LevXvYsmWL4IREVNLY2kGSMH78eERERGDFihXo27cvli9fjps3b2L16tXcWe0VLi4ufAmZSBA3NzecP3++0PjPP/8MTU1NAYmISDTOSJMk2NjYYOPGjfj0009haGiImJgYODo64tdff8XWrVuxf/9+0RGFefTokfL96Oho/Pjjj5g1axZcXV2hpaWlci5bYIiIiEoOZ6RJErKyspTLbxkaGiqXu2vWrBmGDh0qMppwxsbGKr3QCoUCrVq1UjmHDxsSfXgaGhpvXbKT//+Iyh4W0iQJDg4OSE1Nha2tLVxcXLB9+3Y0aNAAe/fuhbGxseh4QkVERIiOQEQAfv/9d5WP8/LycPbsWWzYsAHTpk0TlIqIRGJrB0nCwoULoampiREjRiAiIgLe3t4oKChAfn4+FixYgJEjR4qOSERUpC1btuC3337D7t27RUchohLGQpokKS0tDdHR0ahWrRqXdHvN/fv3sW7dOsTHx0Mmk6FmzZro378/TE1NRUcjKpOSkpLg5uaG7Oxs0VGIqISxkCYqRY4ePQofHx8YGRnB09MTAHDmzBk8ePAAe/bsQYsWLQQnJCpbnj59ioCAABw4cACXL18WHYeIShgLaZKMsLAwhIWFFbn1dVBQkKBU0lK7dm00adIEK1euVC63VVBQgGHDhiEyMhIXLlwQnJDo42ViYlLowd/Hjx9DX18fmzZtgo+Pj8B0RCQCC2mShGnTpmH69Onw9PQscse+1x/yKav09PQQGxsLZ2dnlfHLly+jbt26ePr0qaBkRB+/DRs2qHysoaEBc3NzNGzYECYmJoJSEZFIXLWDJGHVqlUIDg7GV199JTqKpHl4eCA+Pr5QIR0fH4+6deuKCUVURvTr1090BCKSGBbSJAm5ublo0qSJ6BiSN2LECIwcORKJiYlo1KgRACAqKgrLly/H7NmzERcXpzzXzc1NVEyij9aDBw9UHvZ1cXGBv78/jIyMREcjIgHY2kGSMGHCBFSoUAGTJk0SHUXSNDQ03npcJpNxcxaiDyQ6Ohrt2rWDnp4eGjRoAIVCgejoaDx9+hShoaHw8PAQHZGIShgLaZKEkSNHYuPGjXBzc4Obm1uhra8XLFggKJm0XLt2Te1zbW1tP2ASorLnk08+gaOjI3755ReUK/fiBd38/HwMHDgQycnJ+PvvvwUnJKKSxkKaJMHLy+uNx2QyGcLDw0swDRFRYXp6ejh79ixq1KihMn7p0iV4enoiJydHUDIiEoU90iQJ3AZbfTdv3kRkZGSRywSOGDFCUCqij5+hoSHS0tIKFdLXr1+HgYGBoFREJBILaZKUxMREJCUloXnz5tDT01P2+9IL69evx5AhQ6CtrQ0zMzOVayOTyVhIE31AvXr1woABAzBv3jw0adIEMpkMx44dw3fffQdfX1/R8YhIALZ2kCTcu3cPPXv2REREBGQyGa5evQoHBwcMGDAAxsbGmD9/vuiIkmBtbY0hQ4YgICDgXx88JKL3Kzc3F9999x1WrVqF/Px8AICWlhaGDh2K2bNnQ0dHR3BCIippLKRJEvr27Ys7d+5g7dq1qFmzJs6dOwcHBweEhoZi9OjRuHjxouiIkmBmZoZTp06hWrVqoqMQlVk5OTlISkqCQqGAo6Mj9PX1RUciIkE4pUWSEBoaijlz5qBq1aoq405OTu+0UsXHbsCAAdixY4foGERlmr6+PlxdXeHm5sYimqiMY480SUJ2dnaRf5Du3r3Ll0tfERgYiI4dO+LgwYNwdXXlMoFEJejZs2dYunQpIiIiinzYNyYmRlAyIhKFhTRJQvPmzbFx40bMmDEDwIsH5+RyOX7++ee3Lo1X1syaNQuHDh1SbhH++sOGRPTh+Pv74/Dhw+jevTsaNGjA/3NExB5pkoZLly7h008/Rb169RAeHg4fHx9cvHgRWVlZiIyMZE/w/zMxMcHChQvh5+cnOgpRmWNkZIT9+/ejadOmoqMQkUSwR5okwcXFBXFxcWjQoAHatGmD7OxsdO3aFWfPnmUR/QodHR3+EScSpEqVKlwvmohUcEaahMvLy0Pbtm2xevVqVK9eXXQcSQsMDER6ejqWLFkiOgpRmXPgwAEsWbIEq1atgq2treg4RCQB7JEm4bS0tHDhwgX2G6rh1KlTCA8Px59//olatWoVetgwJCREUDKij5+npyeePXsGBwcH6OvrF/r/l5WVJSgZEYnCQpokoW/fvli3bh1mz54tOoqkGRsbo2vXrqJjEJVJvr6+uHnzJmbNmgULCwve/BMRWztIGr799lts3LgRjo6O8PT0RPny5VWOc1k3IhJNX18fJ06cQJ06dURHISKJ4Iw0ScKFCxfg4eEBALhy5YrKMc76/M/UqVPRv39/9mcSCVCjRg08ffpUdAwikhDOSBOVIvXq1cO5c+fQokULDBgwAF27doWurq7oWERlQmhoKKZNm4aZM2cWuSGSoaGhoGREJAoLaaJSJi4uDuvXr8eWLVuQm5uL3r17w9/fH/Xr1xcdjeijpqHxYsXY118lUygUkMlkKCgoEBGLiARiIU2StmLFCty9exeTJ08WHUVy8vPzsXfvXqxfvx4HDx6Es7MzBg4cCD8/PxgZGYmOR/TROXr06FuPt2jRooSSEJFUsJAmScjOzi70gCEAtGrVCikpKUhOThaQStpyc3Px+++/IygoCOHh4WjSpAlu376NW7du4ZdffkGvXr1ERyQiIvqosZAmSahQoQJ69uwJf39/NGvWTHQcSTtz5gzWr1+PrVu3QkdHB3379sXAgQPh6OgIAJg/fz7mzp2L27dvC05K9HHKyclBWloacnNzVcbd3NwEJSIiUVhIkyTs3bsXwcHB+PPPP2Frawt/f3/07dsXVlZWoqNJipubG+Lj49G2bVt8/fXX+Pzzz6GpqalyTmZmJiwsLCCXywWlJPo4ZWZmon///jhw4ECRx9kjTVT2aIgOQAQAn3/+OXbt2oVbt25h6NCh2Lp1K2xtbdGxY0eEhIQgPz9fdERJ6NGjB1JTU7Fv3z507ty5UBENAObm5iyiiT6AUaNG4f79+4iKioKenh4OHjyIDRs2wMnJCXv27BEdj4gE4Iw0SdbSpUvx3XffITc3FxUrVsSQIUMwceJE6Ovri45GRGWQpaUldu/ejQYNGsDQ0BDR0dGoXr069uzZg7lz5+LYsWOiIxJRCeOGLCQpGRkZ2LhxI9avX4+0tDR0794dAwYMwK1btzB79mxERUUhNDRUdMwSNWbMGLXP5Q6QRB9OdnY2KlWqBAAwNTVFZmYmqlevDldXV8TExAhOR0QisJAmSQgJCcH69etx6NAhuLi4YPjw4ejTpw+MjY2V59StWxfu7u7iQgpy9uxZtc7jDpBEH5azszMuX74MOzs71K1bF6tXr4adnR1WrVoFS0tL0fGISAC2dpAkGBkZwdfXFwMGDHjjxiJPnz7F3LlzMWXKlBJOR0QEbN68GXl5efDz88PZs2fRrl073Lt3D9ra2ggODuaSk0RlEAtpEi4/Px9r1qxB165dUblyZdFxiIjUkpOTg4SEBNjY2KBixYqi4xCRACykSRL09fURHx8PW1tb0VFKJe4ASUREVPLYI02S0LBhQ5w9e5aFdDHt2rULKSkpLKSJPiB/f/+3Hg8KCiqhJEQkFSykSRKGDRuGsWPH4saNG6hXr16h7cK5Y9jbhYWFiY5A9NG7f/++ysd5eXm4cOECHjx4gJYtWwpKRUQisbWDJEFDo/DeQDKZDAqFAjKZjDuGEZEkyeVyDBs2DA4ODhg/frzoOERUwlhIkyRcu3btrcfZ8vFCYGAgLCwsCr3EHBQUhMzMTEyYMEFQMqKy6/Lly/j000+Rnp4uOgoRlTC2dpAksFBWz+rVq7Fly5ZC47Vq1ULv3r1ZSBMJkJSUhPz8fNExiEgAFtIkKZcuXUJaWhpyc3NVxn18fAQlkpaMjIwiN34wNzfnbBjRB/b6LqMKhQLp6enYt28f+vXrJygVEYnEQpokITk5GV26dMH58+eVvdHA/3brY4/0C9bW1oiMjIS9vb3KeGRkJKysrASlIiobXt9lVENDA+bm5pg/f/6/ruhBRB8nFtIkCSNHjoS9vT3++usvODg44NSpU7h37x7Gjh2LefPmiY4nGQMHDsSoUaOQl5enXCUgLCwM48ePx9ixYwWnI/q4RUREiI5ARBLDhw1JEipWrIjw8HC4ubnByMgIp06dgrOzM8LDwzF27NhCM0FllUKhwMSJE7FkyRJl+4uuri4mTJjANaSJiIhKGAtpkgQTExOcOXMGDg4OqFatGtauXQsvLy8kJSXB1dUVOTk5oiNKypMnTxAfHw89PT04OTlBR0dHdCSij567u7uy3ezfxMTEfOA0RCQFbO0gSahduzbi4uLg4OCAhg0bYu7cudDW1saaNWvg4OAgOp7kVKhQAfXr1xcdg6hMad++PVasWAEXFxc0btwYABAVFYWLFy9i6NCh0NPTE5yQiEoaZ6RJEg4dOoTs7Gx07doVycnJ6NixIxISEmBmZobffvutTO8a1rVrVwQHB8PQ0BBdu3Z967khISEllIqo7Bk4cCAsLS0xY8YMlfEpU6bg+vXr3CKcqAzijDRJQrt27ZTvOzg44NKlS8jKyoKJiYnaL6V+rIyMjJTXwMjISHAaorJrx44diI6OLjTep08feHp6spAmKoNYSJNkmZqaio4gCevXry/yfSIqWXp6ejh27BicnJxUxo8dOwZdXV1BqYhIJBbSJMy/tSm8ii0LRCTaqFGjMHToUJw5cwaNGjUC8KJHOigoiKvmEJVRLKRJGLYpvLvbt29j3LhxCAsLw507d/D6Iw7cuIbow5k4cSIcHBywePFibNmyBQBQs2ZNBAcHo2fPnoLTEZEIfNiQqBT57LPPkJaWhm+++QaWlpaF+sc7deokKBkREVHZw0KaqBQxMDDAP//8g7p164qOQlTmXL9+HTKZDFWrVgUAnDp1Clu2bIGLiwsGDRokOB0RicDWDhKGmxu8O2tr60LtHERUMr744gsMGjQIX331FTIyMtC6dWvUrl0bmzZtQkZGBvukicogFtIkTOfOnUVHKHUWLVqEiRMnYvXq1bCzsxMdh6hMuXDhAho0aAAA2L59O1xdXREZGYnQ0FAMGTKEhTRRGcTWDqJSxMTEBDk5OcjPz4e+vj60tLRUjmdlZQlKRvTxq1ChAi5cuAA7Ozv4+PigadOmmDBhAtLS0uDs7IynT5+KjkhEJYwz0kSlyKJFi0RHICqzatWqhVWrVsHb2xuHDx9W7nB469YtmJmZCU5HRCJwRpqEMTU1xZUrV1CxYsV/3cGQM61EJNqRI0fQpUsXPHr0CP369VPuZPj9998jISGB690TlUGckSZhFi5cCAMDAwCcaX0XBQUF+OOPPxAfHw+ZTAYXFxf4+PhAU1NTdDSij9qnn36Ku3fv4tGjRzAxMVGODxo0CPr6+gKTEZEonJEmKkUSExPRoUMH3Lx5E87OzlAoFLhy5Qqsra2xb98+VKtWTXREIiKiMoOFNElGQUEBfv/9d+VMa82aNdGpUyeUK8cXTl7q0KEDFAoFNm/eDFNTUwDAvXv30KdPH2hoaGDfvn2CExKVPd9//z0yMjKUrR5EVHawQiFJuHDhAjp16oSMjAw4OzsDAK5cuQJzc3Ps2bMHrq6ughNKw9GjRxEVFaUsogHAzMwMs2fPRtOmTQUmIyq7bty4gevXr4uOQUQCsJAmSRg4cCBq1aqF6OhoZe/h/fv34efnh0GDBuHEiROCE0qDjo4OHj9+XGj8yZMn0NbWFpCIiDZu3Cg6AhEJoiE6ABEAnDt3DoGBgSoP8JiYmGDmzJmIjY0VF0xiOnbsiEGDBuHkyZNQKBRQKBSIiorCkCFD4OPjIzoe0UftbbPOUVFRJZiEiKSChTRJgrOzM27fvl1o/M6dO3B0dBSQSJqWLFmCatWqoXHjxtDV1YWuri6aNm0KR0dHLF68WHQ8oo9amzZtcO/evULjkZGRaN++vYBERCQaWztIEmbNmoURI0Zg6tSpaNSoEYAXMzzTp0/HnDlz8OjRI+W5hoaGomIKpVAo8PDhQ2zduhW3bt1CfHw8FAoFXFxceLNBVAI++eQTtG3bFkeOHFEu3fn333/j888/x9SpU8WGIyIhuGoHSYKGxv9eHHm5McvLf5qvfiyTyVBQUFDyASVALpdDV1cXFy9ehJOTk+g4RGWOQqFAjx49cOfOHYSGhuLEiRPw8fHBTz/9hJEjR4qOR0QCcEaaJCEiIkJ0BMnT0NCAk5MT7t27x0KaSACZTIatW7fC29sbrVq1QlxcHAIDA/HNN9+IjkZEgnBGmqgU2bdvH2bPno2VK1eidu3aouMQffTi4uIKjT1+/Bi+vr7w9vbG0KFDleNubm4lGY2IJICFNElKTk4O0tLSkJubqzLOP1AvmJiYICcnB/n5+dDW1oaenp7K8aysLEHJiD5OGhoakMlkePVP5asfv3y/LLedEZVlbO0gScjMzET//v1x4MCBIo/zD9QLixYtEh2BqExJSUkRHYGIJIyFNEnCqFGjcP/+fURFRcHLywu///47bt++jZ9++gnz588XHU8y+vXrJzoCUZlia2srOgIRSRgLaZKE8PBw7N69G/Xr14eGhgZsbW3Rpk0bGBoaIjAwEN7e3qIjSoZcLkdiYiLu3LkDuVyucqx58+aCUhF9/AIDA2FhYQF/f3+V8aCgIGRmZmLChAmCkhGRKCykSRKys7NRqVIlAICpqSkyMzNRvXp1uLq6IiYmRnA66YiKisIXX3yBa9eu4fXHG9ijSfRhrV69Glu2bCk0XqtWLfTu3ZuFNFEZxJ0NSRKcnZ1x+fJlAEDdunWxevVq3Lx5E6tWrYKlpaXgdNIxZMgQeHp64sKFC8jKysL9+/eVb3zQkOjDysjIKPL3kbm5OdLT0wUkIiLROCNNkjBq1CjlH6IpU6agXbt22LRpE7S1tbFhwwbB6aTj6tWr2LlzJ3cyJBLA2toakZGRsLe3VxmPjIyElZWVoFREJBILaZKEL7/8Uvl+3bp1kZqaioSEBNjY2KBixYoCk0lLw4YNkZiYyEKaSICBAwdi1KhRyMvLQ8uWLQEAYWFhGD9+PMaOHSs4HRGJwEKaJGPdunVYuHAhrl69CgBwcnLCqFGjMHDgQMHJxHp1Q4hvv/0WY8eORUZGBlxdXaGlpaVyLtfbJvpwxo8fj6ysLAwbNky51r2uri4mTJiAgIAAwemISARuyEKSMGnSJCxcuBDffvstGjduDAA4ceIEli1bhpEjR+Knn34SnFCcojaEeBU3hCAqWU+ePEF8fDz09PTg5OQEHR0d0ZGISBAW0iQJFStWxNKlS+Hr66syvnXrVnz77be4e/euoGTiXbt2Te1zueYt0YeXmJiIpKQkNG/eHHp6esobWSIqe7hqB0lCQUEBPD09C43Xq1cP+fn5AhJJh62trfJty5YtCAsLUxmztbVFWFgYtm3bJjoq0Uft3r17aNWqFapXr44OHTooH5AeOHAge6SJyigW0iQJffr0wcqVKwuNr1mzRuVBxLJu9erVqFGjRqHxWrVqYdWqVQISEZUdo0ePhpaWFtLS0qCvr68c79WrFw4ePCgwGRGJwocNSTLWrVuH0NBQNGrUCMCLzUeuX7+Ovn37YsyYMcrzFixYICqicFzHlkic0NBQHDp0CFWrVlUZd3JyeqcWLCL6eLCQJkm4cOECPDw8AABJSUkAXhSH5ubmuHDhgvK8st6HyHVsicTJzs5WmYl+6e7du3zgkKiMYiFNkhARESE6QqnAdWyJxGnevDk2btyIGTNmAHhxYy+Xy/Hzzz/Dy8tLcDoiEoGrdhCVIgqFAhMnTsSSJUsKrWM7efJkwemIPm6XLl3Cp59+inr16iE8PBw+Pj64ePEisrKyEBkZiWrVqomOSEQljIU0USnEdWyJxMjIyMDKlStx5swZyOVyeHh4YPjw4UU+u0BEHz8W0kRERERExcAeaSIiIjU9ePAAp06dwp07dyCXy1WO9e3bV1AqIhKFM9JERERq2Lt3L7788ktkZ2fDwMBAZRUhmUyGrKwsgemISAQW0kRERGp4uaPhrFmzilwGj4jKHhbSREREaihfvjzOnz8PBwcH0VGISCK4RTgREZEa2rVrh+joaNExiEhC+LAhERGRGry9vfHdd9/h0qVLcHV1hZaWlspxHx8fQcmISBS2dhAREalBQ+PNL+LKZDIUFBSUYBoikgIW0kRERERExcAeaSIiIiKiYmAhTURE9B9ER0fj77//Fh2DiARgawcREdF/ULNmTVy5coU90kRlEAtpIiKi/+DWrVvIy8uDra2t6ChEVMJYSBMRERERFQPXkSYiInqDR48eqX2uoaHhB0xCRFLEGWkiIqI30NDQgEwmU+tc9kgTlT2ckSYiInqDiIgI5fupqamYOHEi/Pz80LhxYwDAiRMnsGHDBgQGBoqKSEQCcUaaiIhIDa1atcLAgQPh6+urMr5lyxasWbMGR44cEROMiIRhIU1ERKQGfX19nDt3Dk5OTirjV65cQd26dZGTkyMoGRGJwg1ZiIiI1GBtbY1Vq1YVGl+9ejWsra0FJCIi0dgjTUREpIaFCxeiW7duOHToEBo1agQAiIqKQlJSEnbt2iU4HRGJwNYOIiIiNd24cQMrVqxAQkICFAoFXFxcMGTIEM5IE5VRLKSJiIiIiIqBrR1ERERqevDgAU6dOoU7d+5ALperHOvbt6+gVEQkCmekiYiI1LB37158+eWXyM7OhoGBgcpGLTKZDFlZWQLTEZEILKSJiIjUUL16dXTo0AGzZs2Cvr6+6DhEJAEspImIiNRQvnx5nD9/Hg4ODqKjEJFEcB1pIiIiNbRr1w7R0dGiYxCRhPBhQyIiIjV4e3vju+++w6VLl+Dq6gotLS2V4z4+PoKSEZEobO0gIiJSg4bGm1/ElclkKCgoKME0RCQFLKSJiIiIiIqBPdJERERERMXAHmkiIiI1ZWdn4+jRo0hLS0Nubq7KsREjRghKRUSisLWDiIhIDWfPnkWHDh2Qk5OD7OxsmJqa4u7du9DX10elSpWQnJwsOiIRlTC2dhAREalh9OjR+Pzzz5GVlQU9PT1ERUXh2rVrqFevHubNmyc6HhEJwBlpIiIiNRgbG+PkyZNwdnaGsbExTpw4gZo1a+LkyZPo168fEhISREckohLGGWkiIiI1aGlpQSaTAQAsLCyQlpYGADAyMlK+T0RlCx82JCIiUoO7uzuio6NRvXp1eHl5YfLkybh79y5+/fVXuLq6io5HRAKwtYOIiEgN0dHRePz4Mby8vJCZmYl+/frh2LFjcHR0xPr161GnTh3REYmohLGQJiIiIiIqBvZIExEREREVAwtpIiKi/+D777+Hv7+/6BhEJAAfNiQiIvoPbt68ievXr4uOQUQCsEeaiIiIiKgY2NpBRERERFQMbO0gIiJ6gyVLlqh97ogRIz5gEiKSIrZ2EBERvYG9vb3Kx5mZmcjJyYGxsTEA4MGDB9DX10elSpWQnJwsICERicTWDiIiojdISUlRvs2cORN169ZFfHw8srKykJWVhfj4eHh4eGDGjBmioxKRAJyRJiIiUkO1atWwc+dOuLu7q4yfOXMG3bt3R0pKiqBkRCQKZ6SJiIjUkJ6ejry8vELjBQUFuH37toBERCQaC2kiIiI1tGrVCl9//TWio6Px8sXc6OhoDB48GK1btxacjohEYCFNRESkhqCgIFSpUgUNGjSArq4udHR00LBhQ1haWmLt2rWi4xGRAOyRJiIiegdXrlxBQkICFAoFatasierVq4uORESCsJAmIiIiIioGbshCRESkphs3bmDPnj1IS0tDbm6uyrEFCxYISkVEorCQJiIiUkNYWBh8fHxgb2+Py5cvo3bt2khNTYVCoYCHh4foeEQkAB82JCIiUkNAQADGjh2LCxcuQFdXF7t27cL169fRokUL9OjRQ3Q8IhKAPdJERERqMDAwQGxsLKpVqwYTExMcO3YMtWrVwrlz59CpUyekpqaKjkhEJYwz0kRERGooX748nj9/DgCwsrJCUlKS8tjdu3dFxSIigdgjTUREpIZGjRohMjISLi4u8Pb2xtixY3H+/HmEhISgUaNGouMRkQBs7SAiIlJDcnIynjx5Ajc3N+Tk5GDcuHE4duwYHB0dsXDhQtja2oqOSEQljIU0EREREVExsEeaiIhITQ8ePMDatWsREBCArKwsAEBMTAxu3rwpOBkRicAZaSIiIjXExcWhdevWMDIyQmpqKi5fvgwHBwdMmjQJ165dw8aNG0VHJKISxhlpIiIiNYwZMwZ+fn64evUqdHV1leOfffYZ/v77b4HJiEgUFtJERERqOH36NAYPHlxovEqVKsjIyBCQiIhEYyFNRESkBl1dXTx69KjQ+OXLl2Fubi4gERGJxkKaiIhIDZ06dcL06dORl5cHAJDJZEhLS8PEiRPRrVs3wemISAQ+bEhERKSGR48eoUOHDrh48SIeP34MKysrZGRkoFGjRjhw4ADKly8vOiIRlTAW0kRERO8gIiICZ86cgVwuh4eHB1q3bi06EhEJwkKaiIhITWFhYQgLC8OdO3cgl8tVjgUFBQlKRUSilBMdgIiIqDSYNm0apk+fDk9PT1haWkImk4mORESCcUaaiIhIDZaWlpg7dy6++uor0VGISCK4agcREZEacnNz0aRJE9ExiEhCWEgTERGpYeDAgdiyZYvoGEQkIWztICIieoMxY8Yo35fL5diwYQPc3Nzg5uYGLS0tlXMXLFhQ0vGISDAW0kRERG/g5eWl1nkymQzh4eEfOA0RSQ0LaSIiIiKiYmCPNBERERFRMbCQJiIiIiIqBhbSRERERETFwEKaiOg9mjp1KurWrSs6BhERlQAW0kT03mRkZGDkyJFwdHSErq4uLCws0KxZM6xatQo5OTkAgN69e+Ozzz5T+bwDBw5AJpNh0qRJKuMzZsyAlZWVytisWbOgqamJ2bNnF/r+BQUFCAwMRI0aNaCnpwdTU1M0atQI69evf2Pm4OBgGBsbF/MnLmzcuHEICwtTfuzn54fOnTu/t69PRETSUU50ACL6OCQnJ6Np06YwNjbGrFmz4Orqivz8fFy5cgVBQUGwsrKCj48PvLy8MG7cOOTn56NcuRe/go4cOQJra2tERESofM0jR44UWn5s/fr1GD9+PIKCgjBx4kSVY1OnTsWaNWuwbNkyeHp64tGjR4iOjsb9+/f/88+Xm5sLbW3tfz2vQoUKqFChwn/+fkREVAooiIjeg3bt2imqVq2qePLkSZHH5XK5QqFQKC5fvqwAoDhx4oTyWIMGDRTLly9XaGtrK7KzsxUKhULx/PlzhZ6enuKXX35RnnfkyBFFlSpVFLm5uQorKyvF0aNHVb5HnTp1FFOnTlU7c0REhAKAytuUKVMUCoVCYWtrq5gxY4aiX79+CkNDQ0Xfvn0VCoVCMX78eIWTk5NCT09PYW9vr/jxxx8Vubm5yq85ZcoURZ06dZTvv/71IyIiFM+fP1cMHz5cUblyZYWOjo7C1tZWMWvWLLVzExGRNLC1g4j+s3v37iE0NBTDhw9H+fLlizxHJpMBAKpXrw4rKyvl7PPjx48RExODHj16oFq1aoiMjAQAREVF4enTpyoz0uvWrYOvry+0tLTg6+uLdevWqXyPypUrIzw8HJmZmWrlbtKkCRYtWgRDQ0Okp6cjPT0d48aNUx7/+eefUbt2bZw5c0bZdmJgYIDg4GBcunQJixcvxi+//IKFCxcW+fXHjRuHnj17on379sqv36RJEyxZsgR79uzB9u3bcfnyZWzatAl2dnZqZSYiIulgIU1E/1liYiIUCgWcnZ1VxitWrKhsdZgwYYJy/NNPP8WRI0cAAP/88w+qV68Oc3NztGjRQjn+st2jWrVqAIBHjx5h165d6NOnDwCgT58+2LlzJx49eqT8ugsWLEBmZiYqV64MNzc3DBkyBAcOHHhjbm1tbRgZGUEmk6Fy5cqoXLmySltGy5YtMW7cODg6OsLR0REA8OOPP6JJkyaws7PD559/jrFjx2L79u1Ffv0KFSpAT08POjo6yq+vra2NtLQ0ODk5oVmzZrC1tUWzZs3g6+ur5tUmIiKpYCFNRO/Ny1nnl06dOoXY2FjUqlULz58/V457eXkhMjISeXl5OHLkCD799FMAKFRIt2zZUvk5W7ZsgYODA+rUqQMAqFu3LhwcHLBt2zblOS4uLrhw4QKioqLQv39/3L59G59//jkGDhxYrJ/H09Oz0NjOnTvRrFkzZdE9adIkpKWlvdPX9fPzQ2xsLJydnTFixAiEhoYWKx8REYnFQpqI/jNHR0fIZDIkJCSojDs4OMDR0RF6enoq415eXsjOzsbp06cRERGBFi1aAHhRSJ8+fRpZWVk4ceKESltHUFAQLl68iHLlyinfLl68WKi9Q0NDA/Xr18fo0aPx+++/Izg4GOvWrUNKSso7/1yvt6lERUUpVx35888/cfbsWfzwww/Izc19p6/r4eGBlJQUzJgxA0+fPkXPnj3RvXv3d85HRERicdUOIvrPzMzM0KZNGyxbtgzffvvtG/ukX6pWrRqsra2xZ88exMbGKgtpS0tL2NnZYf78+Xj27JmykD5//jyio6Nx5MgRmJqaKr/OgwcP0Lx5c1y4cAG1a9cu8nu5uLgAALKzs4s8rq2tjYKCArV+zsjISNja2uKHH35Qjl27du2tn/Omr29oaIhevXqhV69e6N69O9q3b4+srCyVn4+IiKSNhTQRvRcrVqxA06ZN4enpialTp8LNzQ0aGho4ffo0EhISUK9ePZXzvby8sGLFCjg6OsLCwkI53qJFCyxduhQODg6wsbEB8OIhwwYNGqB58+aFvm/jxo2xbt06LFy4EN27d0fTpk3RpEkTVK5cGSkpKQgICED16tVRo0aNInPb2dnhyZMnCAsLQ506daCvrw99ff0iz3V0dERaWhq2bduG+vXrY9++ffj999/fel3s7Oxw6NAhXL58GWZmZjAyMsKyZctgaWmJunXrQkNDAzt27EDlypXf63rWRET04bG1g4jei2rVquHs2bNo3bo1AgICUKdOHXh6emLp0qUYN24cZsyYoXK+l5cXHj9+rOyPfqlFixZ4/PixcjY6NzcXmzZtQrdu3Yr8vt26dcOmTZuQm5uLdu3aYe/evfj8889RvXp19OvXDzVq1EBoaKhyzerXNWnSBEOGDEGvXr1gbm6OuXPnvvFn7NSpE0aPHo1vvvkGdevWxfHjxwttIvO6r7/+Gs7OzvD09IS5uTkiIyNRoUIFzJkzB56enqhfvz5SU1Oxf/9+aGjwVzIRUWkiUygUCtEhiIiIiIhKG05/EBEREREVAwtpIiIiIqJiYCFNRERERFQMLKSJiIiIiIqBhTQRERERUTGwkCYiIiIiKgYW0kRERERExcBCmoiIiIioGFhIExEREREVAwtpIiIiIqJiYCFNRERERFQMLKSJiIiIiIrh/wC/Y9Y6oLEHUQAAAABJRU5ErkJggg==",
      "text/plain": [
       "Figure size 600x600 with 4 Axes"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.rcParams['figure.dpi'] = 100\n",
    "\n",
    "# Make annotation df\n",
    "anno_df=df.where(df<1, other=\"*\")\n",
    "anno_df=anno_df.where(anno_df=='*', other=\" \")\n",
    "anno_df=anno_df.astype(str)\n",
    "\n",
    "\n",
    "g=sns.clustermap(df,\n",
    "               xticklabels=True,\n",
    "               yticklabels=True,\n",
    "               cmap='OrRd',\n",
    "               figsize=(6,6),\n",
    "               annot=anno_df,\n",
    "               fmt = '',\n",
    "               dendrogram_ratio=0.05,\n",
    "               cbar_pos=(0.98,0.9,0.02,0.1),\n",
    "                 vmax=2\n",
    "              )\n",
    "\n",
    "g.ax_col_dendrogram.set_title(f'Enrichment of cell type-specific open chromatin for GWAS trait SNPs.\\n\\nScale = -log(bh-corrected p-value)\\n\"*\" = p<{pval_sig_threshold} (-log(p)>={neglog10_pval_sig_threshold}), \"open threshold\" = {threshold}')\n",
    "\n",
    "for a in g.ax_row_dendrogram.collections:\n",
    "    a.set_linewidth(1)\n",
    "\n",
    "for a in g.ax_col_dendrogram.collections:\n",
    "    a.set_linewidth(1)\n",
    "    \n",
    "ax = g.ax_heatmap\n",
    "ax.set_xlabel('GWAS traits')\n",
    "ax.set_ylabel('Cell types')\n",
    "plt.savefig(f'{output_path}overview_heatmap_SNP_enrichment.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2f3264f7-7e86-4893-9fcd-deb007c02677",
   "metadata": {},
   "source": [
    "#### 删掉不感兴趣的 traits"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "413a6371-a27b-4530-81f9-6bfb534d74c8",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T02:10:55.430305Z",
     "iopub.status.busy": "2025-06-10T02:10:55.429765Z",
     "iopub.status.idle": "2025-06-10T02:10:55.435184Z",
     "shell.execute_reply": "2025-06-10T02:10:55.434544Z",
     "shell.execute_reply.started": "2025-06-10T02:10:55.430277Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['cardiomyopathy', 'chronic.lymphocytic.leukemia',\n",
       "       'head.and.neck.squamous.cell.carcinoma', 'leukemia',\n",
       "       'papillary.renal.cell.carcinoma'],\n",
       "      dtype='object', name='efo_term')"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "df.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "a37151c2-1795-4664-88bc-0590f018dd79",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T02:10:58.382488Z",
     "iopub.status.busy": "2025-06-10T02:10:58.381852Z",
     "iopub.status.idle": "2025-06-10T02:10:58.388207Z",
     "shell.execute_reply": "2025-06-10T02:10:58.387569Z",
     "shell.execute_reply.started": "2025-06-10T02:10:58.382458Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['CARDIOMYOPATHY', 'CHRONIC.LYMPHOCYTIC.LEUKEMIA',\n",
       "       'HEAD.AND.NECK.SQUAMOUS.CELL.CARCINOMA', 'LEUKEMIA',\n",
       "       'PAPILLARY.RENAL.CELL.CARCINOMA'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.columns = map(str.upper, df.columns)\n",
    "df = df.reindex(sorted(df.columns), axis=1)\n",
    "df.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "3c04158f-c7b3-4123-a9db-c91788362058",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2025-06-10T02:11:10.382681Z",
     "iopub.status.busy": "2025-06-10T02:11:10.382015Z",
     "iopub.status.idle": "2025-06-10T02:11:20.265699Z",
     "shell.execute_reply": "2025-06-10T02:11:20.265014Z",
     "shell.execute_reply.started": "2025-06-10T02:11:10.382644Z"
    },
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "Figure size 600x600 with 4 Axes"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.rcParams['figure.dpi'] = 60\n",
    "plt.rcParams['font.size'] = 15     # 设置全局基础字体大小\n",
    "from matplotlib.colors import LinearSegmentedColormap\n",
    "# Make annotation df\n",
    "anno_df=df.where(df<neglog10_pval_sig_threshold, other=\"*\")\n",
    "anno_df=anno_df.where(anno_df=='*', other=\" \")\n",
    "anno_df=anno_df.astype(str)\n",
    "\n",
    "#cmap_celadon = LinearSegmentedColormap.from_list('celadon_gradient', \n",
    "#                colors = [\"#DFEDEA\",\"#B9EAE1\", \"#79D8C5\", \"#49C4AC\",\"#17BCA0\",\"#0A9E81\"],\n",
    "#                N=256)\n",
    "#g=sns.clustermap(df,\n",
    "#               xticklabels=True,\n",
    "#               yticklabels=True,\n",
    "               #cmap = cmap_celadon,\n",
    "#               camp = \"OrRd\",\n",
    "#               figsize=(8,12),\n",
    "#               annot=anno_df,\n",
    "#               fmt = '',\n",
    "#               dendrogram_ratio=0.05,\n",
    "#               cbar_pos=(0.98,0.9,0.02,0.1),\n",
    "#                 vmax=5,\n",
    "#                 row_cluster=False, col_cluster=False\n",
    "#              )\n",
    "g=sns.clustermap(df,\n",
    "               xticklabels=True,\n",
    "               yticklabels=True,\n",
    "               cmap='OrRd',\n",
    "               figsize=(10,10),\n",
    "               annot=anno_df,\n",
    "               fmt = '',\n",
    "               dendrogram_ratio=0.05,\n",
    "               cbar_pos=(0.98,0.9,0.02,0.1),\n",
    "                 vmax=2,\n",
    "                 row_cluster=False, col_cluster=False\n",
    "              )\n",
    "\n",
    "g.ax_col_dendrogram.set_title(f'Enrichment of cell-type-specific open chromatin for GWAS trait SNPs.\\n\\nScale = -log(BH-corrected p-value)\\n\\n\"*\" = p<{pval_sig_threshold} (-log(p)>={round(neglog10_pval_sig_threshold,2)})')\n",
    "\n",
    "for a in g.ax_row_dendrogram.collections:\n",
    "    a.set_linewidth(1)\n",
    "\n",
    "for a in g.ax_col_dendrogram.collections:\n",
    "    a.set_linewidth(1)\n",
    "\n",
    "ax = g.ax_heatmap\n",
    "ax.set_xlabel('GWAS traits')\n",
    "ax.set_ylabel('Cell types')\n",
    "plt.savefig(f'{output_path}overview_heatmap_SNP_enrichment_physiological.pdf',bbox_inches='tight')\n",
    "plt.savefig(f'{output_path}overview_heatmap_SNP_enrichment_physiological.png')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cdfba8bd-6001-43f5-97d8-d268e3ac545d",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "source": [
    "```{note}\n",
    "热图展示 GWAS traits 相关的 SNP 在细胞特异性开放染色质区域的富集情况，颜色表示经过 BH 方法矫正后的-log（p）值，颜色越绿，表示越显著。‘*’表示矫正后 p 值<0.05，即 GAWS traits 在对应细胞类型中具有显著富集的现象。\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "60694d7d-d5d1-49b5-946a-e0571778f28a",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "source": [
    "## 结果文件\n",
    "\n",
    "├── enrichment_output <br>\n",
    "│   ├── 0p05_peak_width_500_SNPs_in_LD_all_traits_summary.csv<br>\n",
    "│   └── overview_heatmap_SNP_enrichment_physiological.pdf<br>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cb5c527e-89ad-4adb-bbf2-8ec24180df29",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "source": [
    "## 文献案例解析\n",
    "\n",
    "* 《Spatially resolved multiomics of human cardiac niches》\n",
    "\n",
    "  在这项研究中，作者利用 scATAC-seq 数据分析与心脏生理和病理相关的 GAWS traits SNP 在各个细胞类型中的富集情况。\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "## 参考资料\n",
    "\n",
    "[1] Kanemaru K, Cranley J, Muraro D, et al.Spatially resolved multiomics of human cardiac niches[J].Nature, 2023.DOI: 10.1038/s41586-023-06311-1."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "059455e6-b826-4582-b83d-aa42d6a4594c",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "source": [
    "## 附录\n",
    "\n",
    ".txt ：结果数据表格文件，文件以制表符（Tab）分隔。unix/Linux/Mac 用户使用 less 或 more 命令查看；windows 用户使用高级文本编辑器 Notepad++ 等查看，也可以用 Microsoft Excel 打开。\n",
    "\n",
    ".pdf ：结果图像文件，矢量图，可以放大和缩小而不失真，方便用户查看和编辑处理，可使用 Adobe Illustrator 进行图片编辑，用于文章发表等。\n",
    "\n",
    ".rds : 包含基因活力 assay 的 Seurat 对象，需要在 R 环境中打开查看和用于进一步分析。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "ATAC_SNPEnrich",
   "language": "python",
   "name": "atac_snpenrich"
  },
  "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.11.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
