{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Income Prediciton\n", "\n", "The dataset is credited to Ronny Kohavi and Barry Becker and was drawn from the 1994 United States Census Bureau data and involves using personal details such as education level to predict whether an individual will earn more or less than $50,000 per year.\n", "\n", "The dataset provides 14 input variables that are a mixture of categorical, ordinal, and numerical data types. The complete list of variables is as follows:\n", "\n", "- Age.\n", "- Workclass.\n", "- Final Weight.\n", "- Education.\n", "- Education Number of Years.\n", "- Marital-status.\n", "- Occupation.\n", "- Relationship.\n", "- Race.\n", "- Sex.\n", "- Capital-gain.\n", "- Capital-loss.\n", "- Hours-per-week.\n", "- Native-country.\n", "\n", "There are a total of 48,842 rows of data, and 3,620 with missing values, leaving 45,222 complete rows.\n", "\n", "There are two class values ‘>50K‘ and ‘<=50K‘, meaning it is a binary classification task. The classes are imbalanced, with a skew toward the ‘<=50K‘ class label.\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "### We will include the following contents:\n", "- Data Exploration\n", " - Load Dataset\n", " - Data Statistics\n", "- Bias Analysis\n", " - Bias Metric\n", " - Fairness Visualization\n", "- Fair machine learning methods\n", " - Fair constrainted learning\n", " - Fair Representation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Data Exploration" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "import os\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "import warnings\n", "warnings.filterwarnings('ignore')" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "scrolled": true, "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(32561, 15)\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AgeWorkclassFinal WeightEducationEducation Number of YearsMarital-statusOccupationRelationshipRaceGenderCapital-gainCapital-lossHours-per-weekNative-countryIncome
039State-gov77516Bachelors13Never-marriedAdm-clericalNot-in-familyWhiteMale2174040United-States<=50K
150Self-emp-not-inc83311Bachelors13Married-civ-spouseExec-managerialHusbandWhiteMale0013United-States<=50K
238Private215646HS-grad9DivorcedHandlers-cleanersNot-in-familyWhiteMale0040United-States<=50K
353Private23472111th7Married-civ-spouseHandlers-cleanersHusbandBlackMale0040United-States<=50K
428Private338409Bachelors13Married-civ-spouseProf-specialtyWifeBlackFemale0040Cuba<=50K
\n", "
" ], "text/plain": [ " Age Workclass Final Weight Education \\\n", "0 39 State-gov 77516 Bachelors \n", "1 50 Self-emp-not-inc 83311 Bachelors \n", "2 38 Private 215646 HS-grad \n", "3 53 Private 234721 11th \n", "4 28 Private 338409 Bachelors \n", "\n", " Education Number of Years Marital-status Occupation \\\n", "0 13 Never-married Adm-clerical \n", "1 13 Married-civ-spouse Exec-managerial \n", "2 9 Divorced Handlers-cleaners \n", "3 7 Married-civ-spouse Handlers-cleaners \n", "4 13 Married-civ-spouse Prof-specialty \n", "\n", " Relationship Race Gender Capital-gain Capital-loss \\\n", "0 Not-in-family White Male 2174 0 \n", "1 Husband White Male 0 0 \n", "2 Not-in-family White Male 0 0 \n", "3 Husband Black Male 0 0 \n", "4 Wife Black Female 0 0 \n", "\n", " Hours-per-week Native-country Income \n", "0 40 United-States <=50K \n", "1 13 United-States <=50K \n", "2 40 United-States <=50K \n", "3 40 United-States <=50K \n", "4 40 Cuba <=50K " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "columns = [\"Age\", \"Workclass\", \"Final Weight\", \"Education\", \"Education Number of Years\", \"Marital-status\", \"Occupation\", \"Relationship\", \"Race\", \"Gender\", \"Capital-gain\", \"Capital-loss\", \"Hours-per-week\", \"Native-country\", \"Income\"]\n", "df = pd.read_csv(\"../datasets/adult/raw/adult.data\", index_col=None, header=None, names=columns)\n", "print(df.shape)\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABP8AAAGXCAYAAADMAfXLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACnoklEQVR4nOzdd3QU1d8G8Gdreu8NEnrvCkgREEEEQVABlSIigoqKqD8rvogKCIpYsSEg0qyIIEpv0ksILZCQhJDe62b7vH9Eg5GebHJ3Z5/POXsks7OzT9Ykd+Y7tygkSZJAREREREREREREsqMUHYCIiIiIiIiIiIjqBot/REREREREREREMsXiHxERERERERERkUyx+EdERERERERERCRTLP4RERERERERERHJFIt/REREREREREREMsXiHxERERERERERkUyx+EdERERERERERCRTLP4RERERERERERHJFIt/RHZux44dUCgU2LFjR9W2Rx55BNHR0cIyERERXU9KSgoUCgWWLl0qOgoREdFVRUdH45FHHhEdg6hOsfhHTuHUqVMYM2YMIiIi4OLigvDwcDz88MM4deqU6GhEREQ3ZOnSpVAoFFd8vPzyy6LjERER1Yl/t3979uy57HlJkhAVFQWFQoEhQ4YISEhk/9SiAxDVtZ9//hkPPvgg/P39MXHiRMTExCAlJQWLFy/Gjz/+iNWrV2P48OGiYxIREd2QWbNmISYmptq2Nm3aCEpDRERUP1xdXbFy5Ur07Nmz2vadO3ciLS0NLi4ugpIR2T8W/0jWzp8/j7Fjx6JRo0bYtWsXgoKCqp579tln0atXL4wdOxZxcXFo1KhRvWQqLy+Hh4dHvbwXERHJz6BBg9ClSxfRMYiIiOrV3XffjR9++AEfffQR1OpLpYyVK1eic+fOyMvLE5iOyL5x2C/J2vz586HT6fDll19WK/wBQGBgIL744guUl5dj3rx5+PHHH6FQKLBz587LjvPFF19AoVDg5MmTVdvi4+Nx//33w9/fH66urujSpQvWrVtX7XX/dFHfuXMnnnzySQQHByMyMhIAcOHCBTz55JNo3rw53NzcEBAQgAceeAApKSm2/yCIiMgpbNy4Eb169YKHhwe8vLwwePDgy6a4eOSRR+Dp6YnU1FQMGTIEnp6eiIiIwKeffgoAOHHiBPr16wcPDw80bNgQK1eurPb6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/vD398eaNWuwZs0a3HrrrdWG7QYHB6NPnz744osvkJmZedl75ubm3lA2lUpVrScFAHz88cfVhk8RERHdiIEDB8Lb2xuzZ8+GyWS67PkbbZtuxJXarx9++OG68/XZqv0kIiLn5unpiUWLFmHmzJm45557rriPSqWCQqGodm2VkpKCtWvXXvf4I0eOxL59+/Dnn39e9lxRURHMZnONsxOJwp5/JGtNmzbFsmXL8PDDD6Nt27aYOHEiYmJikJKSgsWLFyMvLw+rVq2q6jEBVPZIGDFiBFavXo3y8nK89957lx33008/Rc+ePdG2bVtMmjQJjRo1QnZ2Nvbt24e0tDQcP378utmGDBmC5cuXw8fHB61atcK+ffuwZcuWa86XREREdCXe3t5YtGgRxo4di06dOmH06NEICgpCamoqNmzYgB49euCTTz6xyXsNGTIEs2bNwoQJE3DbbbfhxIkTWLFiRVXPvmuxRftJREQ0fvz4az4/ePBgLFiwAHfddRceeugh5OTk4NNPP0WTJk2uOy3Uiy++iHXr1mHIkCF45JFH0LlzZ5SXl+PEiRP48ccfkZKScs2e7kT2iMU/kr0HHngALVq0wJw5c6oKfgEBAejbty9effVVtGnT5rLXjBo1Cl9//TUUCkW1VQ//0apVKxw+fBhvvvkmli5divz8fAQHB6Njx4544403bijXhx9+CJVKhRUrVkCv16NHjx7YsmXLVedBIiIiupaHHnoI4eHhmDt3LubPnw+DwYCIiAj06tULEyZMsNn7vPrqqygvL8fKlSuxZs0adOrUCRs2bMDLL7983dfaov0kIiK6nn79+mHx4sWYO3cupk2bhpiYGLz77rtISUm5bvHP3d0dO3fuxOzZs/HDDz/g22+/hbe3N5o1a4Y333wTPj4+9fRdENmOQvrvuA0iIiIiIiIiIiKSBc75R0REREREREREJFMs/hEREREREREREckUi39EREREREREREQyxeIfERERERERERGRTLH4R0REREREREREJFMs/hEREREREREREckUi39EREREREREREQyxeIfERERERERERGRTLH4R0REREREREREJFMs/hEREREREREREckUi39EREREREREREQyxeIfERERERERERGRTLH4R0REREREREREJFMs/hEREREREREREckUi39EREREREREREQyxeIfERERERERERGRTLH4R0REREREREREJFMs/hEREREREREREckUi39EREREREREREQyxeIfERERERERERGRTLH4R0REREREREREJFMs/hEREREREREREckUi39EREREREREREQyxeIfERERERERERGRTLH4R0REREREREREJFMs/hEREREREREREckUi39EREREREREREQyxeIfERERERERERGRTLH4R0REREREREREJFMs/hEREREREREREckUi39EREREREREREQyxeIfERERERERERGRTLH4R0REREREREREJFMs/hEREREREREREckUi39EREREREREREQyxeIfERERERERERGRTLH4R0REREREREREJFMs/hEREREREREREckUi39EREREREREREQyxeIfERERERERERGRTLH4R0REREREREREJFMs/hEREREREREREckUi39EREREREREREQypRYdgMiRWK0SiitMKKowodxgBgAoFQooFJf+qwCg+Pc2AFq1Ej5uGni48FeOiIjsg9liRUG5EQazFQAgSYAE6V//BiTp76//3gYASgXg666Fn7sGCoVCQHIiIqLLmSxWlOrNKNObUW40w2KV8E8zpcDf12qKf/0blddtXq5q+Lpr4KJWCc1PVJdYiSCnpzdZkFqgQ3JeOS4W6FBQbkRRhQnFFSYU60x/F/uMKNKZUGYwV1381IRGpYCPmwY+bhr4umsR4KFFkJcLAj1dEORV+Yj0c0OjQE+4adn4EBHRzTFbrMgrMyKvzIDcMgPySg3IKzMit9SAvLJLj9xSA4oqTLVq01RKBfz+bssCPLUI8HSp/LdH5b/9PbQI9NTC30OLMB83tmtERHTTJElCZrEeqQU6pObrcLFQh9xSQ+U1m86EQp0RhToTSvQmGP++mVVTbhoVfN0rr9X83LXwddf8/dDC312LSD83NAzwQHSgO9y1LKWQY1FIUm1O+4gcg9FsRWqBDil55UjJL0fy3/9NydMhs7gCVjv7LVAogHAfNzQK8kDjIE80DvZE4yAPNAnyRLC3q+h4REQkWInehITsUiRklyEhp/KRmF2KzBJ9rQp6dUWhAMK8XdE42BNNgj3ROKjyv02DPRHg6SI6HhERCSRJEi7k65CQU4YL+ZUdMi4U6JBaoENaYUWti3p1IcjLBdEB7pXFwKr/eiAmyAOeHO1FdojF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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,ax=plt.subplots(ncols=3,figsize=(16,5))\n", "df[\"Income\"].value_counts().plot.pie(autopct=\"%.2f%%\",ax=ax[0], title=\"Overall\")\n", "df[df[\"Gender\"]==\" Female\"][\"Income\"].value_counts().plot.pie(autopct=\"%.2f%%\",ax=ax[1], title=\"Female\")\n", "df[df[\"Gender\"]==\" Male\"][\"Income\"].value_counts().plot.pie(autopct=\"%.2f%%\",ax=ax[2], title = \"Male\")" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Bias Analysis\n", "\n", "Take the age as exmaple, we can run the following command to get the fairness analysis results:\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "\n", "import os\n", "import sys\n", "sys.path.append(os.path.join(os.getcwd(), '../src'))\n", "import numpy as np\n", "import pandas as pd\n", "import torch\n", "import torch.nn as nn\n", "import torch.optim as optim\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.preprocessing import StandardScaler\n", "from torch.utils.data import DataLoader\n", "from torch.optim.lr_scheduler import StepLR\n", "from tabulate import tabulate\n", "\n", "\n", "from dataset import load_german_data, load_adult_data\n", "from utils import seed_everything, PandasDataSet, print_metrics, clear_lines, InfiniteDataLoader\n", "from metrics import metric_evaluation\n", "from networks import MLP\n", "\n", "from loss import DiffDP\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "def train_step(model, data, target, sensitive, scheduler, optimizer, clf_criterion, fair_criterion, lam, device, args=None):\n", " model.train()\n", " optimizer.zero_grad()\n", " h, output = model(data)\n", " clf_loss = clf_criterion(output, target)\n", " fair_loss = fair_criterion(output, sensitive)\n", " loss = clf_loss + lam * fair_loss\n", " loss.backward()\n", " optimizer.step()\n", " scheduler.step()\n", " return model, loss.item(), clf_loss.item(), fair_loss.item()\n", "\n", "def test(model, test_loader, clf_criterion, fair_criterion, lam, device, prefix=\"test\", args=None):\n", " model.eval()\n", " clf_loss = 0\n", " fair_loss = 0\n", " target_hat_list = []\n", " target_list = []\n", " sensitive_list = []\n", "\n", " with torch.no_grad():\n", " for data, target, sensitive in test_loader:\n", " data, target, sensitive = (data.to(device), target.to(device), sensitive.to(device))\n", " h, output = model(data)\n", "\n", " clf_loss += clf_criterion(output, target).item()\n", " fair_loss += fair_criterion(output, sensitive).item()\n", " target_hat_list.append(output.cpu().numpy())\n", " target_list.append(target.cpu().numpy())\n", " sensitive_list.append(sensitive.cpu().numpy())\n", "\n", " target_hat_list = np.concatenate(target_hat_list, axis=0)\n", " target_list = np.concatenate(target_list, axis=0)\n", " sensitive_list = np.concatenate(sensitive_list, axis=0)\n", " metric = metric_evaluation(y_gt=target_list, y_pre=target_hat_list, s=sensitive_list, prefix=f\"{prefix}\")\n", "\n", " clf_loss /= len(test_loader)\n", " fair_loss /= len(test_loader)\n", " \n", " metric[f\"{prefix}/clf_loss\"] = clf_loss\n", " metric[f\"{prefix}/fair_loss\"] = fair_loss\n", " metric[f\"{prefix}/loss\"] = clf_loss + lam*fair_loss\n", " metric[f\"{prefix}/y_hat\"] = target_hat_list\n", " metric[f\"{prefix}/sensitive\"] = sensitive_list\n", "\n", " return metric\n", "\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+---------------+--------+\n", "| dataset | german |\n", "+---------------+--------+\n", "| num_features | 101 |\n", "+---------------+--------+\n", "| num_classes | 2 |\n", "+---------------+--------+\n", "| num_sensitive | 2 |\n", "+---------------+--------+\n", "| num_samples | 45222 |\n", "+---------------+--------+\n", "| num_train | 18088 |\n", "+---------------+--------+\n", "| num_val | 13567 |\n", "+---------------+--------+\n", "| num_test | 13567 |\n", "+---------------+--------+\n", "| num_y1 | 11208 |\n", "+---------------+--------+\n", "| num_y0 | 34014 |\n", "+---------------+--------+\n", "| num_s1 | 30527 |\n", "+---------------+--------+\n", "| num_s0 | 14695 |\n", "+---------------+--------+\n" ] } ], "source": [ "device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n", "dataset = \"german\"\n", "sensitive_attr = \"sex\"\n", "seed = 42\n", "batch_size = 64\n", "lr = 1e-2\n", "mlp_layers = \"256,256\"\n", "evaluation_metrics = \"acc,dp\"\n", "num_training_steps = 200\n", "\n", "\n", "\n", "# X, y, s = load_german_data(path=\"../datasets/german/raw\", sensitive_attribute=sensitive_attr)\n", "X, y, s = load_adult_data(path=\"../datasets/adult/raw\", sensitive_attribute=sensitive_attr)\n", "\n", "categorical_cols = X.select_dtypes(\"string\").columns\n", "if len(categorical_cols) > 0:\n", " X = pd.get_dummies(X, columns=categorical_cols)\n", "\n", "\n", "n_features = X.shape[1]\n", "n_classes = len(np.unique(y))\n", "\n", "X_train, X_testvalid, y_train, y_testvalid, s_train, s_testvalid = train_test_split(X, y, s, test_size=0.6, stratify=y, random_state=seed)\n", "X_test, X_val, y_test, y_val, s_test, s_val = train_test_split(X_testvalid, y_testvalid, s_testvalid, test_size=0.5, stratify=y_testvalid, random_state=seed)\n", "\n", "dataset_stats = {\n", " \"dataset\": dataset,\n", " \"num_features\": X.shape[1],\n", " \"num_classes\": len(np.unique(y)),\n", " \"num_sensitive\": len(np.unique(s)),\n", " \"num_samples\": X.shape[0],\n", " \"num_train\": X_train.shape[0],\n", " \"num_val\": X_val.shape[0],\n", " \"num_test\": X_test.shape[0],\n", " \"num_y1\": (y.values == 1).sum(),\n", " \"num_y0\": (y.values == 0).sum(),\n", " \"num_s1\": (s.values == 1).sum(),\n", " \"num_s0\": (s.values == 0).sum(),\n", "}\n", "\n", "# Create the table using the tabulate function\n", "table = tabulate([(k, v) for k, v in dataset_stats.items()], tablefmt='grid')\n", "\n", "print(table)\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "numurical_cols = X.select_dtypes(\"float32\").columns\n", "if len(numurical_cols) > 0:\n", " # scaler = StandardScaler().fit(X[numurical_cols])\n", "\n", " def scale_df(df, scaler):\n", " return pd.DataFrame(scaler.transform(df), columns=df.columns, index=df.index)\n", "\n", " scaler = StandardScaler().fit(X_train[numurical_cols])\n", "\n", " def scale_df(df, scaler):\n", " return pd.DataFrame(scaler.transform(df), columns=df.columns, index=df.index)\n", "\n", " X_train[numurical_cols] = X_train[numurical_cols].pipe(scale_df, scaler)\n", " X_val[numurical_cols] = X_val[numurical_cols].pipe(scale_df, scaler)\n", " X_test[numurical_cols] = X_test[numurical_cols].pipe(scale_df, scaler)\n", "\n", "\n", "train_data = PandasDataSet(X_train, y_train, s_train)\n", "val_data = PandasDataSet(X_val, y_val, s_val)\n", "test_data = PandasDataSet(X_test, y_test, s_test)\n", "\n", "\n", "train_infinite_loader = InfiniteDataLoader(train_data, batch_size=batch_size, shuffle=True, num_workers=4, drop_last=True)\n", "train_loader = DataLoader(train_data, batch_size=batch_size, shuffle=True)\n", "val_loader = DataLoader(val_data, batch_size=batch_size, shuffle=False)\n", "test_loader = DataLoader(test_data, batch_size=batch_size, shuffle=False)\n" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MLP(\n", " (network): ModuleList(\n", " (0): Linear(in_features=101, out_features=256, bias=True)\n", " (1): Linear(in_features=256, out_features=256, bias=True)\n", " )\n", " (head): Linear(in_features=256, out_features=1, bias=True)\n", ")\n" ] } ], "source": [ "mlp_layers = [int(x) for x in mlp_layers.split(\",\")]\n", "net = MLP(n_features=n_features, num_classes=1, mlp_layers=mlp_layers ).to(device)\n", "clf_criterion = nn.BCELoss()\n", "fair_criterion = DiffDP()\n", "optimizer = optim.Adam(net.parameters(), lr=lr)\n", "scheduler = StepLR(optimizer, step_size=50, gamma=0.1)\n", "\n", "print(net)\n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+-------------------+-------------------+-------------------+\n", "| Step(Tr|Val|Te) | acc | dp |\n", "+===================+===================+===================+\n", "| 0 | 75.22|75.22|75.21 | 0.00|0.00|0.00 |\n", "+-------------------+-------------------+-------------------+\n", "| 20 | 83.24|82.52|82.69 | 11.83|11.69|11.01 |\n", "+-------------------+-------------------+-------------------+\n", "| 40 | 84.54|83.93|84.06 | 16.19|16.87|15.69 |\n", "+-------------------+-------------------+-------------------+\n", "| 60 | 85.06|84.25|84.42 | 17.94|18.54|17.53 |\n", "+-------------------+-------------------+-------------------+\n", "| 80 | 85.16|84.40|84.48 | 17.77|18.20|17.31 |\n", "+-------------------+-------------------+-------------------+\n", "| 100 | 85.19|84.49|84.55 | 18.61|18.96|18.14 |\n", "+-------------------+-------------------+-------------------+\n", "| 120 | 85.18|84.49|84.58 | 18.56|18.97|18.12 |\n", "+-------------------+-------------------+-------------------+\n", "| 140 | 85.17|84.48|84.59 | 18.39|18.80|17.93 |\n", "+-------------------+-------------------+-------------------+\n", "| 160 | 85.19|84.48|84.61 | 18.05|18.63|17.70 |\n", "+-------------------+-------------------+-------------------+\n", "| 180 | 85.19|84.47|84.59 | 18.06|18.64|17.70 |\n", "+-------------------+-------------------+-------------------+\n" ] } ], "source": [ "lam = 0\n", "logs = []\n", "headers = [\"Step(Tr|Val|Te)\"] + evaluation_metrics.split(\",\")\n", "\n", "# evaluation_metrics = \"ap,dp,prule\"\n", "\n", "\n", "for step, (X, y, s) in enumerate(train_infinite_loader):\n", " if step >= num_training_steps:\n", " break\n", "\n", " X, y, s = X.to(device), y.to(device), s.to(device)\n", " net, loss, clf_loss, fair_loss = train_step(model=net, data=X, target=y, sensitive=s, optimizer=optimizer, scheduler=scheduler, clf_criterion=clf_criterion, fair_criterion=fair_criterion, lam=lam, device=device)\n", "\n", "\n", " if step % 20 == 0:\n", " train_metrics = test(model=net, test_loader=train_loader, clf_criterion=clf_criterion, fair_criterion=fair_criterion, lam=lam, device=device, prefix=\"train\")\n", " val_metrics = test(model=net, test_loader=val_loader, clf_criterion=clf_criterion, fair_criterion=fair_criterion, lam=lam, device=device, prefix=\"val\")\n", " test_metrics = test(model=net, test_loader=test_loader, clf_criterion=clf_criterion, fair_criterion=fair_criterion, lam=lam, device=device, prefix=\"test\")\n", " res_dict = {}\n", " res_dict.update(train_metrics)\n", " res_dict.update(val_metrics)\n", " res_dict.update(test_metrics)\n", " res = print_metrics(res_dict, evaluation_metrics, train=True)\n", " logs.append( [ step, *res] )\n", " \n", "table = tabulate(logs, headers=headers, tablefmt=\"grid\", floatfmt=\"02.2f\")\n", "print(table)\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAHHCAYAAACle7JuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACCvklEQVR4nO3dd3xT5eIG8Odkpytt6S6lLSB7g6ACMhWZIiq4EFAQBVz8vFdQGaKCOJCLAnodoHhVEFFRtkxFVBBwsEEosy3Q3Wbn/f1xmkDobtMmaZ/v55MP9OTknPecps3Td0pCCAEiIiIiP6TwdgGIiIiIKotBhoiIiPwWgwwRERH5LQYZIiIi8lsMMkREROS3GGSIiIjIbzHIEBERkd9ikCEiIiK/xSBDREREfotBhlxmzpwJSZJq5Fw9e/ZEz549XV9v27YNkiRh5cqVNXL+0aNHIykpqUbOVVl5eXkYO3YsYmJiIEkSnnrqqWo/Z8+ePdGqVatqPw9RcSRJwsyZM8u1b1JSEkaPHl2t5SH/wCBTSy1duhSSJLkeOp0OcXFx6NevHxYsWIDc3FyPnOf8+fOYOXMm9u/f75HjeZIvl608Zs+ejaVLl+Kxxx7DsmXLMHLkSG8XqcIKCgowc+ZMbNu2zdtF8QmzZ8/GN998U659/f396wk///wzZs6ciaysLG8XpUo+++wzzJ8/v8h2fo89RFCttGTJEgFAzJo1Syxbtkx89NFHYvbs2eLWW28VkiSJxMRE8ccff7i9xmq1CqPRWKHz7N69WwAQS5YsqdDrzGazMJvNrq+3bt0qAIgvv/yyQsepbNksFoswmUweO1d16NKli+jatWuNnrNHjx6iZcuWHjvexYsXBQAxY8YMjx3TnwUGBopRo0aVa9/K/mz5M6PRKKxWq+vr119/XQAQJ0+eLLKvyWQSFoulBktXeQMHDhSJiYlFttfF73F1UHkvQlFN6N+/Pzp16uT6eurUqdiyZQsGDRqEIUOG4NChQ9Dr9QAAlUoFlap63xIFBQUICAiARqOp1vOURa1We/X85ZGeno4WLVp4uxhel5+fj8DAQG8Xg2qATqcr975arbYaS+KbnL8/6RreTlJUPZw1Mrt37y72+dmzZwsA4r///a9r24wZM8S1b4mNGzeKrl27CoPBIAIDA0WTJk3E1KlThRBXalGufTj/unD+db9nzx7RvXt3odfrxZNPPul6rkePHq7zOI/1xRdfiKlTp4ro6GgREBAgBg8eLE6fPu1WpsTExGL/qr36mGWVbdSoUUX+QsrLyxOTJ08W9evXFxqNRjRp0kS8/vrrwuFwuO0HQEycOFF8/fXXomXLlkKj0YgWLVqIdevWFXuvr5WWliYeeughERUVJbRarWjTpo1YunRpkXtx7aO4v0qFEOLmm28Wbdq0Kfa5Jk2aiFtvvbVc5RLiyvfswIEDomfPnkKv14u4uDgxd+5ct/3MZrOYNm2a6NChgwgJCREBAQGiW7duYsuWLa59Tp48Wex1lFY743zfbtu2TTz22GMiMjJShIaGup5fu3at6NatmwgICBBBQUFiwIAB4u+//3Y7xoULF8To0aNFfHy80Gg0IiYmRgwZMsTt/iUmJoqBAweKDRs2iLZt2wqtViuaN28uvvrqqyJlyszMFE8++aTrfdGoUSPx6quvCrvd7raf3W4X8+fPF61atRJarVZERESIfv36uX4Gi7sXJdXOlPX+FUKIFStWiA4dOgidTifq1asn7r//fnH27NkS762TxWIRM2fOFI0bNxZarVaEh4eLrl27io0bN7rtd+jQIXHnnXeKsLAwodVqRceOHcW3337rto/z+/XTTz+Jp59+WkRERIiAgAAxdOhQkZ6e7rbv7t27xa233irq1asndDqdSEpKEmPGjHHb5+r3h/P3UUk/B1f/HnDWbFz9c+S0fv16AUB89913rm1nz54VY8aMEVFRUa6f3w8//LDMe3etb775RgwYMEDExsYKjUYjGjZsKGbNmiVsNptrnx49ehS5hsTExCr9/iR3rJGpo0aOHInnnnsOGzduxLhx44rd58CBAxg0aBDatGmDWbNmQavV4vjx49i5cycAoHnz5pg1axamT5+ORx55BN27dwcA3HTTTa5jXL58Gf3798c999yDBx54ANHR0aWW65VXXoEkSXj22WeRnp6O+fPno2/fvti/f7+r5qg8ylO2qwkhMGTIEGzduhUPP/ww2rVrhw0bNuBf//oXzp07h7feestt/59++gmrVq3ChAkTEBwcjAULFuDOO+/E6dOnUa9evRLLZTQa0bNnTxw/fhyTJk1CcnIyvvzyS4wePRpZWVl48skn0bx5cyxbtgxPP/006tevj//7v/8DAERGRhZ7zJEjR2LcuHH4+++/3Trq7t69G0ePHsULL7xQ7vsGAJmZmbjtttswbNgwDB8+HCtXrsSzzz6L1q1bo3///gCAnJwcfPDBB7j33nsxbtw45Obm4sMPP0S/fv3w22+/oV27doiMjMTixYvx2GOP4Y477sCwYcMAAG3atCmzDBMmTEBkZCSmT5+O/Px8AMCyZcswatQo9OvXD3PnzkVBQQEWL16Mbt26Yd++fa7O23feeScOHDiAxx9/HElJSUhPT8emTZtw+vRptw7ex44dw4gRI/Doo49i1KhRWLJkCe6++26sX78et9xyCwD5L+AePXrg3LlzGD9+PBo0aICff/4ZU6dOxYULF9z6PTz88MNYunQp+vfvj7Fjx8Jms+HHH3/EL7/8gk6dOmHZsmUYO3YsOnfujEceeQQA0KhRo2Kvv6z379KlSzFmzBhcf/31mDNnDtLS0vCf//wHO3fuxL59+xAaGlrivZ05cybmzJnjKktOTg727NmDvXv3uq77wIED6Nq1K+Lj4zFlyhQEBgZixYoVGDp0KL766ivccccdbsd8/PHHERYWhhkzZuDUqVOYP38+Jk2ahOXLlwOQaxdvvfVWREZGYsqUKQgNDcWpU6ewatWqEss5bNgwHD16FJ9//jneeustREREACj+56BTp05o2LAhVqxYgVGjRrk9t3z5coSFhaFfv34AgLS0NNxwww2QJAmTJk1CZGQk1q1bh4cffhg5OTkV6lS/dOlSBAUFYfLkyQgKCsKWLVswffp05OTk4PXXXwcAPP/888jOzsbZs2ddv0eCgoKq5fdnneXtJEXVo6waGSGEMBgMon379q6vr62ReeuttwQAcfHixRKPUVobr/MvkXfffbfY54qrkYmPjxc5OTmu7StWrBAAxH/+8x/XtvLUyJRVtmtrZL755hsBQLz88stu+911111CkiRx/Phx1zYAQqPRuG37448/BADx9ttvFznX1ebPny8AiE8//dS1zWKxiBtvvFEEBQW5Xbuz1qAsWVlZQqfTiWeffdZt+xNPPCECAwNFXl5emcdwcn7PPvnkE9c2s9ksYmJixJ133unaZrPZ3Po4CSHXXERHR4uHHnrIta2ifWSc79tu3bq5/VWbm5srQkNDxbhx49z2T01NFQaDwbU9MzNTABCvv/56qedJTEwUANxqYLKzs0VsbKzbz8RLL70kAgMDxdGjR91eP2XKFKFUKl21hVu2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deUJMv/+979Fy5Yt3baNGDFC9OvXrxpLVnPYtORlFosFv//+O/r27evaplAo0LdvX+zatavY1+zatcttfwDo169fifvXZpW5f9cqKCiA1WpFeHh4dRXTJ1X23s2aNQtRUVF4+OGHa6KYPqsy92/16tW48cYbMXHiRERHR6NVq1aYPXs27HZ7TRXbJ1Tm3t100034/fffXc1P//zzD9auXYsBAwbUSJn9WW3/zPCLmX1rs0uXLsFutxdZciE6OhqHDx8u9jWpqanF7p+amlpt5fRVlbl/13r22WcRFxdX5Ae9tqvMvfvpp5/w4YcfYv/+/TVQQt9Wmfv3zz//YMuWLbj//vuxdu1aHD9+HBMmTIDVasWMGTNqotg+oTL37r777sOlS5fQrVs3CCFgs9nw6KOP4rnnnquJIvu1kj4zcnJyYDQaodfrvVQyz2CNDNVpr776Kr744gt8/fXX0Ol03i6OT8vNzcXIkSPx/vvvIyIiwtvF8UsOhwNRUVH473//i44dO2LEiBF4/vnn8e6773q7aD5v27ZtmD17NhYtWoS9e/di1apVWLNmDV566SVvF428jDUyXhYREQGlUom0tDS37WlpaYiJiSn2NTExMRXavzarzP1zeuONN/Dqq6/ihx9+QJs2baqzmD6povfuxIkTOHXqFAYPHuza5nA4AAAqlQpHjhxBo0aNqrfQPqQy773Y2Fio1WoolUrXtubNmyM1NRUWiwUajaZay+wrKnPvpk2bhpEjR2Ls2LEAgNatWyM/Px+PPPIInn/+eSgU/Lu8JCV9ZoSEhPh9bQzAGhmv02g06NixIzZv3uza5nA4sHnzZtx4443FvubGG2902x8ANm3aVOL+tVll7h8AvPbaa3jppZewfv16dOrUqSaK6nMqeu+aNWuGv/76C/v373c9hgwZgl69emH//v1ISEioyeJ7XWXee127dsXx48ddARAAjh49itjY2DoTYoDK3buCgoIiYcUZCAWXDCxVrf/M8HZvY5KHIWq1WrF06VJx8OBB8cgjj4jQ0FCRmpoqhBBi5MiRYsqUKa79d+7cKVQqlXjjjTfEoUOHxIwZM+r88OuK3L9XX31VaDQasXLlSnHhwgXXIzc311uX4DUVvXfXquujlip6/06fPi2Cg4PFpEmTxJEjR8T3338voqKixMsvv+ytS/Cait67GTNmiODgYPH555+Lf/75R2zcuFE0atRIDB8+3FuX4DW5ubli3759Yt++fQKAmDdvnti3b59ISUkRQggxZcoUMXLkSNf+zuHX//rXv8ShQ4fEwoULOfyaPO/tt98WDRo0EBqNRnTu3Fn88ssvrud69OghRo0a5bb/ihUrRJMmTYRGoxEtW7YUa9asqeES+5aK3L/ExEQBoMhjxowZNV9wH1DR997V6nqQEaLi9+/nn38WXbp0EVqtVjRs2FC88sorwmaz1XCpfUNF7p3VahUzZ84UjRo1EjqdTiQkJIgJEyaIzMzMmi+4l23durXY32HO+zVq1CjRo0ePIq9p166d0Gg0omHDhmLJkiU1Xu7qIgnBOjkiIiLyT+wjQ0RERH6LQYaIiIj8FoMMERER+S0GGSIiIvJbDDJERETktxhkiIiIyG8xyBAREZHfYpAhIr8yc+ZMtGvXztvFICIfwSBDRHXOqVOnIEkS9u/f7+2iEFEVMcgQERGR32KQIaIa98knn6BevXowm81u24cOHYqRI0eW6xjLli1DUlISDAYD7rnnHuTm5rqeW79+Pbp164bQ0FDUq1cPgwYNwokTJ1zPJycnAwDat28PSZLQs2fPql8UEXkFgwwR1bi7774bdrsdq1evdm1LT0/HmjVr8NBDD5X5+hMnTuCbb77B999/j++//x7bt2/Hq6++6no+Pz8fkydPxp49e7B582YoFArccccdcDgcAIDffvsNAPDDDz/gwoULWLVqlYevkIhqisrbBSCiukev1+O+++7DkiVLcPfddwMAPv30UzRo0KBctSMOhwNLly5FcHAwAGDkyJHYvHkzXnnlFQDAnXfe6bb/Rx99hMjISBw8eBCtWrVCZGQkAKBevXqIiYnx4JURUU1jjQwRecW4ceOwceNGnDt3DgCwdOlSjB49GpIklfnapKQkV4gBgNjYWKSnp7u+PnbsGO699140bNgQISEhSEpKAgCcPn3asxdBRF7HGhki8or27dujbdu2+OSTT3DrrbfiwIEDWLNmTbleq1ar3b6WJMnVbAQAgwcPRmJiIt5//33ExcXB4XCgVatWsFgsHr0GIvI+Bhki8pqxY8di/vz5OHfuHPr27YuEhIQqH/Py5cs4cuQI3n//fXTv3h0A8NNPP7nto9FoAAB2u73K5yMi72LTEhF5zX333YezZ8/i/fffL1cn3/IICwtDvXr18N///hfHjx/Hli1bMHnyZLd9oqKioNfrsX79eqSlpSE7O9sj5yaimscgQ0ReYzAYcOeddyIoKAhDhw71yDEVCgW++OIL/P7772jVqhWefvppvP766277qFQqLFiwAO+99x7i4uJw++23e+TcRFTzJCGE8HYhiKju6tOnD1q2bIkFCxZ4uyhE5IcYZIjIKzIzM7Ft2zbcddddOHjwIJo2bertIhGRH2JnXyLyivbt2yMzMxNz5851CzEtW7ZESkpKsa957733cP/999dUEYnID7BGhoh8SkpKCqxWa7HPRUdHu80fQ0TEIENERER+i6OWiIiIyG8xyBAREZHfYpAhIiIiv8UgQ0RERH6LQYaIiIj8FoMMERER+S0GGSIiIvJbDDJERETkt/4fyrlsZeTl8sIAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "y_hat = train_metrics[\"train/y_hat\"].reshape(-1)\n", "sensitive_attr = train_metrics[\"train/sensitive\"].reshape(-1)\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "\n", "# Separate y_hat based on sensitive_attr\n", "y_hat_0 = y_hat[sensitive_attr == 0]\n", "y_hat_1 = y_hat[sensitive_attr == 1]\n", "\n", "sns.kdeplot(y_hat_0, bw_adjust=.5, label='sensitive_attr=0', shade=True)\n", "sns.kdeplot(y_hat_1, bw_adjust=.5, label='sensitive_attr=1', shade=True)\n", "\n", "# Plot formatting\n", "plt.legend(prop={'size': 12})\n", "plt.title('Distribution of y_hat respect to sensitive_attr')\n", "plt.xlabel('y_hat')\n", "plt.ylabel('Density')\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MLP(\n", " (network): ModuleList(\n", " (0): Linear(in_features=101, out_features=256, bias=True)\n", " (1): Linear(in_features=256, out_features=256, bias=True)\n", " )\n", " (head): Linear(in_features=256, out_features=1, bias=True)\n", ")\n", "+-------------------+-------------------+----------------+\n", "| Step(Tr|Val|Te) | acc | dp |\n", "+===================+===================+================+\n", "| 0 | 75.67|75.50|75.51 | 0.67|0.37|0.30 |\n", "+-------------------+-------------------+----------------+\n", "| 20 | 82.57|81.91|82.31 | 9.42|9.39|9.02 |\n", "+-------------------+-------------------+----------------+\n", "| 40 | 83.57|82.73|83.33 | 7.39|7.39|6.95 |\n", "+-------------------+-------------------+----------------+\n", "| 60 | 81.66|81.16|81.59 | 1.27|1.97|1.09 |\n", "+-------------------+-------------------+----------------+\n", "| 80 | 83.18|82.58|82.88 | 4.56|4.13|4.09 |\n", "+-------------------+-------------------+----------------+\n", "| 100 | 82.92|82.27|82.60 | 3.47|3.52|3.16 |\n", "+-------------------+-------------------+----------------+\n", "| 120 | 82.97|82.36|82.64 | 3.54|3.59|3.15 |\n", "+-------------------+-------------------+----------------+\n", "| 140 | 83.06|82.41|82.74 | 3.80|3.81|3.41 |\n", "+-------------------+-------------------+----------------+\n", "| 160 | 83.09|82.41|82.79 | 3.79|3.89|3.41 |\n", "+-------------------+-------------------+----------------+\n", "| 180 | 83.09|82.42|82.80 | 3.80|3.90|3.43 |\n", "+-------------------+-------------------+----------------+\n" ] } ], "source": [ "net = MLP(n_features=n_features, num_classes=1, mlp_layers=mlp_layers ).to(device)\n", "clf_criterion = nn.BCELoss()\n", "fair_criterion = DiffDP()\n", "optimizer = optim.Adam(net.parameters(), lr=lr)\n", "scheduler = StepLR(optimizer, step_size=50, gamma=0.1)\n", "print(net)\n", "lam = 0.88\n", "logs = []\n", "headers = [\"Step(Tr|Val|Te)\"] + evaluation_metrics.split(\",\")\n", "\n", "# evaluation_metrics = \"ap,dp,prule\"\n", "\n", "\n", "for step, (X, y, s) in enumerate(train_infinite_loader):\n", " if step >= num_training_steps:\n", " break\n", "\n", " X, y, s = X.to(device), y.to(device), s.to(device)\n", " net, loss, clf_loss, fair_loss = train_step(model=net, data=X, target=y, sensitive=s, optimizer=optimizer, scheduler=scheduler, clf_criterion=clf_criterion, fair_criterion=fair_criterion, lam=lam, device=device)\n", "\n", "\n", " if step % 20 == 0:\n", " train_metrics = test(model=net, test_loader=train_loader, clf_criterion=clf_criterion, fair_criterion=fair_criterion, lam=lam, device=device, prefix=\"train\")\n", " val_metrics = test(model=net, test_loader=val_loader, clf_criterion=clf_criterion, fair_criterion=fair_criterion, lam=lam, device=device, prefix=\"val\")\n", " test_metrics = test(model=net, test_loader=test_loader, clf_criterion=clf_criterion, fair_criterion=fair_criterion, lam=lam, device=device, prefix=\"test\")\n", " res_dict = {}\n", " res_dict.update(train_metrics)\n", " res_dict.update(val_metrics)\n", " res_dict.update(test_metrics)\n", " res = print_metrics(res_dict, evaluation_metrics, train=True)\n", " logs.append( [ step, *res] )\n", " \n", "table = tabulate(logs, headers=headers, tablefmt=\"grid\", floatfmt=\"02.2f\")\n", "print(table)\n", "\n" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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lcVNN93k3B8YGIi3tzc2m+2S723Tpk2kpqaycuVKLr/8cuf248ePl2lb0X3U14zwzYE8lhJs2LCBp59+mpiYGP72t79V2C4tLa3Mtu7duwM4u5NL6zlqawbRDz74wKUOaMWKFcTHxztH6YDjF8nPP/9MUVGRc9s333zDqVOnXM5VndhGjx6NzWbj9ddfd9m+cOFCFEVxuf6lGD16NAkJCS5d5yUlJfzf//0fZrOZ2NjYGp/7tttuIz09nRkzZpCTk+NSN1PbSpOm83tztm/fzrZt21zalc7Jcamfj5EjR2KxWHjuuefKrdlITk4GHKObCgoKXPa1atUKb2/vMo9Azp49y+eff+58n5WVxQcffED37t2dvUM33ngj27ZtY82aNWWumZGRQUlJCeAYoaWqKk899VSZdud/jby8vKr8tajo89u7d2+CgoJ46623XO5p1apVHDhwgDFjxlR63tTUVJf3ZrOZ1q1bO88VFBTEkCFDePvtt4mPjy9zfOnXujrS09PL9Gpe+LOkPNX9+dKhQwe6dOnC8uXLWb58OaGhoS6Jh1ar5brrruOzzz5j7969ZY6vzr2V9z1QVFTEm2++We59lPeYqrZ/fjZn0nPTzKxatYqDBw9SUlJCYmIiGzZsYN26dURFRfHVV19VOmnWvHnz2LJlC2PGjCEqKoqkpCTefPNNIiIiGDx4MOD4xeHj48Nbb72Ft7c3Xl5e9OvXr0zNRFX5+fkxePBgpk6dSmJiIq+88gqtW7d2Ga4+bdo0VqxYwVVXXcWNN97I0aNHWbZsWZlhtdWJbdy4cQwdOpR//etfnDhxgm7durF27Vq+/PJLHnjggQqH7FbX3//+d95++22mTJnCr7/+SnR0NCtWrGDr1q288sorldZAXUyPHj3o3Lkzn376KR06dKBnz561EnN5xo4dy8qVK7n22msZM2YMx48f56233qJjx47k5OQ423l4eNCxY0eWL19O27Zt8fPzo3PnztVev8pisbBo0SJuu+02evbsyU033URgYCAnT57k22+/ZdCgQbz++uv8+eefDB8+nBtvvJGOHTui0+n4/PPPSUxMdPkLHhyPlO644w527NhBcHAw77//PomJiSxevNjZ5pFHHuGrr75i7NixTJkyhV69epGbm8uePXtYsWIFJ06cICAggKFDh3Lbbbfx2muvcfjwYa666irsdjs//PADQ4cO5Z577gGgV69efP/997z88suEhYURExNDv379yr3nyj6/zz//PFOnTiU2Npabb77ZORQ8OjqaBx98sNKvZceOHRkyZAi9evXCz8+PnTt3smLFCmeMAG+88QaDBw+mS5cuTJ8+nZYtW5KYmMi2bds4ffo0v//+e7X+/f773//y5ptvcu2119KqVSuys7P5z3/+g8ViYfTo0RUe16tXL8AxnPqmm25Cr9czbty4SovkJ06cyOzZszGZTNxxxx1l6tv+/e9/s3HjRvr168f06dPp2LEjaWlp7Nq1i++//77cP+rKM3DgQHx9fZk8eTL33XcfiqKwdOnSch9N9+rVi+XLl/PQQw/Rp08fzGYz48aNq/Wfn81a/Q/QEu5QOkSz9FU6mdkVV1yhvvrqqy5DjktdOBR8/fr16jXXXKOGhYWpBoNBDQsLU2+++eYyw2K//PJLtWPHjqpOpyt3EqryVDQU/KOPPlJnzZqlBgUFqR4eHuqYMWPUuLi4MscvWLBADQ8PV41Gozpo0CB1586dZc5ZWWzlTeKXnZ2tPvjgg2pYWJiq1+vVNm3aVDqJ34UqGqJ+ocTERHXq1KlqQECAajAY1C5dupQ7FLSqQ8HP98ILL6iA+txzz1XruFIV/Ztd+PWy2+3qc889p0ZFRalGo1Ht0aOH+s0335T7df3pp5/UXr16qQaDocqT+FU0ZHjjxo3qyJEjVavVqppMJrVVq1bqlClT1J07d6qqqqopKSnq3XffrbZv31718vJSrVar2q9fP/WTTz5xOc/5k/h17dpVNRqNavv27ctd/iM7O1udNWuW2rp1a9VgMKgBAQHqwIED1Zdeesll+v+SkhL1xRdfVNu3b68aDAY1MDBQHTVqlPrrr7862xw8eFC9/PLLVQ8Pj0on8StV0edXVVV1+fLlao8ePZwT8VV1Er9nnnlG7du3r+rj46N6eHio7du3V5999tkySxkcPXpUnTRpkhoSEqLq9Xo1PDxcHTt2rLpixQpnm4r+vUq/nzdu3Kiqqqru2rVLvfnmm9UWLVqoRqNRDQoKUseOHev8dytV3ufj6aefVsPDw1WNRlPhJH7nO3z4sPPn3o8//lju1yAxMVG9++671cjISFWv16shISHq8OHDXSY1rYqtW7eq/fv3d052+c9//lNds2aNy72rqmOC0FtuuUX18fFxTuJXqiY/P0VZiqq6qeJRCFHnXn31VR588EFOnDhR7ogu4RAdHU3nzp355ptv3B2KEKIWSM2NEE2Uqqq89957xMbGSmIjhGhWpOZGiCYmNzeXr776io0bN7Jnzx6+/PLLMm3S0tJcCrAvpNVqK1zeQYjmJjk5GZvNVuF+g8FQL3MaiaqT5EaIJiY5OZlbbrkFHx8fHn/8ca6++uoybSZMmFDp7MdRUVF1PlGiEI1Fnz59Kp0MMTY2lk2bNtVfQOKipOZGiGbo119/rXT2ZA8PDwYNGlSPEQnRcG3dupX8/PwK9/v6+jpHcomGQZIbIYQQQjQpUlAshBBCiCal2dXc2O12zp49i7e3t0x1LYQQQjQSqqqSnZ1NWFhYmckYL9TskpuzZ88SGRnp7jCEEEIIUQOnTp0iIiKi0jbNLrkpnc7+1KlTWCwWN0cjhBBCiKrIysoiMjKySsvSNLvkpvRRlMVikeRGCCGEaGSqUlIiBcVCCCGEaFIkuRFCCCFEkyLJjRBCCCGaFEluhBBCCNGkNLuCYiGEaGhsNhvFxcXuDkMIt9Hr9Wi12lo7nyQ3QgjhJqqqkpCQQGZmJrISjmjOFEXBarUSEhJSKxPsSnIjhBBukpmZSUZGBoGBgXh5ecms6aJZUlWV3NxckpOT8fDwwMfH55LPKcmNEEK4gaqqJCUlYbFYCAgIcHc4QriVh4cHhYWFJCUlYbVaLznRl4JiIYRwA5vNhs1mk8lEhTjHYrE4vy8ulSQ3QgjhBiUlJQDodNKBLgT89b1Q+r1xKSS5EUIIN5I6GyEcavN7QZIbIYQQQjQpktwIIYQQokmRh71CCNEAncnIJz23yK0x+HoZCPfxcGsMtenEiRPExMSwePFipkyZctH2iqIwZ84c5s6dW+exidolyY0o47eT6ew5k8lt/aOkHkAINziTkc/wBZsoKLa7NQ6TXsP6fwxpUgnOhb777jt++eWXRp/AvPnmm3h6epZJ2vbv388nn3zClClTiI6OrpdYvvrqK+bOncv+/fsJCgpi6tSpPPnkk/VaPC/JjXBxOj2PqUt2kJFXTGGxnemXt3R3SEI0O+m5RRQU27l7aGu3JRZnMvJ5Y+MR0nOLmkxyExUVRX5+Pnq93rntu+++44033ig3ucnPz280o9nefPNNAgICyk1unnrqKYYMGVIvyc2qVasYP348Q4YM4f/+7//Ys2cPzzzzDElJSSxatKjOr1+qcfyriXpRUGzjrmW7MGg1jOwUwnPfHSDC14NRXULdHZoQzVK4jwcxAV7uDqPJUBQFk8lU5fbVadsUqKpKQUEBHh41T2Yffvhhunbtytq1a52JocVi4bnnnuP++++nffv2tRVupaSgWDjN/+4ABxOyeGBEWyYNiKJ/S38eWL6bpKwCd4cmhGhksrOzeeCBB4iOjsZoNBIUFMQVV1zBrl27nG22b9/OVVddhdVqxdPTk9jYWLZu3epynrlz56IoCkeOHGHKlCn4+PhgtVqZOnUqeXl5Lm3XrVvH4MGD8fHxwWw2065dOx5//HHn/hMnTqAoCkuWLAFgypQpvPHGG4Aj8Sl9lVIUxdmjs2LFChRFYfPmzWXu9e2330ZRFPbu3evcdvDgQa6//nr8/PwwmUz07t2br776qtpfx8WLFzNs2DCCgoIwGo107NixTA9IdHQ0+/btY/Pmzc57GDJkCEuWLOGGG24AYOjQoc59mzZtch43duxY1qxZQ+/evfHw8ODtt9+udoyl9u/fz/79+/n73//u0uM1c+ZMVFVlxYoVNT53dUnPjQDAZldZuesMY7uGOf9SvH1wDNuXprLuQCJ/6xfl5giFEI3JnXfeyYoVK7jnnnvo2LEjqamp/Pjjjxw4cICePXuyYcMGRo0aRa9evZgzZw4ajcb5i/yHH36gb9++Lue78cYbiYmJYf78+ezatYt3332XoKAgnn/+eQD27dvH2LFj6dq1K/PmzcNoNHLkyJEyydL5ZsyYwdmzZ1m3bh1Lly6t9H7GjBmD2Wzmk08+ITY21mXf8uXL6dSpE507d3bGMmjQIMLDw3nsscfw8vLik08+Yfz48Xz22Wdce+21Vf46Llq0iE6dOnH11Vej0+n4+uuvmTlzJna7nbvvvhuAV155hXvvvRez2cy//vUvAIKDg2nVqhX33Xcfr732Go8//jgdOnQAcP4X4NChQ9x8883MmDGD6dOn065dO8Cx7llVVqo3mUyYzWYAfvvtNwB69+7t0iYsLIyIiAjn/vogyY0AYN/ZTLILS+gW4ePcZjbq6BBqYd1+SW6EENXz7bffMn36dBYsWODc9s9//hNwPP648847GTp0KKtWrXL2lsyYMYNOnTrxxBNPsHbtWpfz9ejRg/fee8/5PjU1lffee8+Z3Kxbt46ioiJWrVpV5bW6BgwYQNu2bVm3bh233nprpW09PDwYN24cK1as4LXXXkOr1QKQkJDA5s2bXWp27r//flq0aMGOHTswGo2Ao/di8ODBPProo9VKbjZv3uzymOiee+7hqquu4uWXX3YmN+PHj+eJJ54gICCgzH1cdtllvPbaa1xxxRUMGTKkzPmPHDnC6tWrGTlypMv2a665ptxeqgtNnjzZ2RMWHx8PQGho2VKG0NBQzp49e9Hz1RZJbgQAPx1NxaTX0CrQ9fl+zxa+LN9xitzCEryM8nERQlSNj48P27dv5+zZs4SFhbns2717N4cPH+aJJ54gNTXVZd/w4cNZunQpdrsdjeavyok777zTpd1ll13G559/TlZWFhaLxbmS9JdffsnUqVNdjq0tEydO5KOPPmLTpk0MHz4ccDyustvtTJw4EYC0tDQ2bNjAvHnzyM7OJjs723n8yJEjmTNnDmfOnCE8PLxK1zw/sSntTYmNjWXNmjVkZmZitVov6Z5iYmLKJDYACxYsID09/aLHn/9vm5+fD+BM6M5nMpnIysq6hEirR35bCQB+OpJC+xBvdFrXHwi9onxZ+nMcPxxO4arOIW6KTgjR2LzwwgtMnjyZyMhIevXqxejRo5k0aRItW7bk8OHDgOOv/opkZmbi6+vrfN+iRQuX/aX70tPTsVgsTJw4kXfffZdp06bx2GOPMXz4cCZMmMD1119fa4lOaX3Q8uXLncnN8uXL6d69O23btgUcPSGqqvLkk0/y5JNPlnuepKSkKic3W7duZc6cOWzbtq1MjVFtJTfl6dWrV7XPVZqIFRYWltl3qYXK1SXJjaCoxM6OE+mM71H2my3YYiLS14PvDyRKciOEqLIbb7zR2buydu1aXnzxRZ5//nlWrlyJ3e6Yv+fFF1+ke/fu5R5fWsdRqvQx0IVUVQUcv1i3bNnCxo0b+fbbb1m9ejXLly9n2LBhrF27tsLjq8NoNDJ+/Hg+//xz3nzzTRITE9m6dSvPPfecs03pvT388MPl9ogAtG7dukrXO3r0KMOHD6d9+/a8/PLLREZGYjAY+O6771i4cKHzWpeiooQjLS2NoqKLTyLp4eHhTLBKH0fFx8cTGRnp0i4+Pr5MHVVdkuRG8MfpDPKLbXQKs5S7v2eUL+sPJGKzq2g1MqmfEKJqQkNDmTlzJjNnziQpKYmePXvy7LPPsnDhQsAxRHjEiBG1dj2NRsPw4cMZPnw4L7/8Ms899xz/+te/2LhxY4XXqe5EpRMnTuS///0v69ev58CBA6iq6nwkBdCypWNuML1ef8n39vXXX1NYWMhXX33l0nO1cePGMm0ruo+aTsQ6YcKEatfclCaqO3fudElkzp49y+nTp/n73/9eo1hqQpIbwU9HU/EyaInxL38+jd5Rvny5+yy/xqXTN8avnqMTQjQ2NpuNnJwcl0cmQUFBhIWFUVhYSK9evWjVqhUvvfQSt9xyS5lemuTkZAIDA6t1zbS0NPz8XH8+lf6yLe8xSSkvL8fPvYyMDGfdTmVGjBiBn58fy5cv58CBA/Tt29fl0U5QUBBDhgzh7bff5t577y1TXFudeyvtbSrtnQLHo6jFixeXex8ZGRnlbgfK3VeZmtTcdOrUifbt2/POO+8wY8YMZ/yLFi1CURSuv/76asVwKSS5EWw9kkKHUAuaCnplWgaaMRt1/HwsVZIbIerRmYz8Rnnt7OxsIiIiuP766+nWrRtms5nvv/+eHTt2sGDBAjQaDe+++y6jRo2iU6dOTJ06lfDwcM6cOcPGjRuxWCx8/fXX1brmvHnz2LJlC2PGjCEqKoqkpCTefPNNIiIiGDx4cIXHldaW3HfffYwcORKtVstNN91UYXu9Xs+ECRP4+OOPyc3N5aWXXirT5o033mDw4MF06dKF6dOn07JlSxITE9m2bRunT5/m999/r9I9XXnllRgMBsaNG8eMGTPIycnhP//5D0FBQc6RSeffx6JFi3jmmWdo3bo1QUFBDBs2jO7du6PVann++efJzMzEaDQ6582pTE1qbsDxqPHqq6/myiuv5KabbmLv3r28/vrrTJs2zWUIel1rMMnNv//9b2bNmsX999/PK6+8UmG7Tz/9lCeffJITJ07Qpk0bnn/+eUaPHl1/gTYxhSU2dp1M5+a+LSpso1EUYgK82HMmsx4jE6L58vUyYNJreGPjEbfGYdJr8PUyVPs4T09PZs6cydq1a501Nq1bt+bNN9/krrvuAmDIkCFs27aNp59+mtdff52cnBxCQkLo168fM2bMqPY1r776ak6cOMH7779PSkoKAQEBxMbG8tRTT1VadDthwgTuvfdePv74Y5YtW4aqqpUmN4CzeFlRFG688cYy+zt27MjOnTt56qmnWLJkCampqQQFBdGjRw9mz55d5Xtq164dK1as4IknnuDhhx8mJCSEu+66i8DAQG6//XaXtrNnzyYuLo4XXniB7OxsYmNjGTZsGCEhIbz11lvMnz+fO+64A5vNxsaNGy+a3NTU2LFjWblyJU899RT33nsvgYGBPP7449W679qgqOf3d7nJjh07uPHGG7FYLAwdOrTC5Oann37i8ssvZ/78+YwdO5YPP/yQ559/nl27djknT7qYrKwsrFYrmZmZWCzl15g0JwcTsrjqlR+YM64j7UMq/np89MtJfjmexs+PD6/H6IRougoKCjh+/DgxMTHlTvMvq4KL5uZi3xPV+f3t9p6bnJwc/va3v/Gf//yHZ555ptK2r776KldddRWPPPIIAE8//TTr1q3j9ddf56233qqPcJucY8m5AIRd5AdYTIAXX/1+luTsQgK9y85hIISoXeE+HpJYCFFDbl9b6u6772bMmDFVqirftm1bmXYjR45k27ZtFR5TWFhIVlaWy0v85VhyDt4mHRaTvtJ2Lc8tybBXHk0JIcQlS0hIqPSVmSk/ay+FW3tuPv74Y3bt2sWOHTuq1D4hIYHg4GCXbcHBwSQkJFR4zPz583nqqacuKc6m7GhyLmHWi/91GOhtxGzUsedMJkPb182zWiGEaC7KW6LgfOcPsRbV57bk5tSpU9x///2sW7euTpeVnzVrFg899JDzfVZWVpnJhZqzo0k5hFgv/vVXzhUV/3E6o+6DEkKIJm7dunWV7r9wyQpRPW5Lbn799VfnpE6lbDYbW7Zs4fXXX6ewsLDMjJIhISEkJia6bEtMTCQkpOKZc41GY7nrXAjH3AnHUnIZV8HkfReKCfBi+/HUizcUQghRqdqcvFCU5baam+HDh7Nnzx52797tfPXu3Zu//e1v7N69u9ypsgcMGMD69etdtq1bt44BAwbUV9hNSnJ2ITmFJRctJi7VMsCLxKxCkrIL6jgyIYQQoubc1nPj7e1dZvi2l5cX/v7+zu2TJk0iPDyc+fPnA45l5GNjY1mwYAFjxozh448/ZufOnbzzzjv1Hn9TcPTcSKnQqiY3gX8VFQ9rX3ePEoUQQohL4fbRUpU5efKkyyyMAwcO5MMPP+Sdd96hW7durFixgi+++KLKc9wIV8dSctAoEFzFod0BZiPeJh17TsuIMyGEEA2X2+e5Od+mTZsqfQ9www03cMMNN9RPQE3c0aRcQqwmdNqq5biKohDt78XeszJEUQghRMPVoHtuRN06mpxDqKV6k4SF+3pwODG7jiISQgghLp0kN83YseQcQn2qVzsT7uPBqbR8ikrsdRSVEEIIcWkkuWmmCoptnE7Pr9IEfueL8PHApqqcSM2to8iEEKJunDhxAkVRqjw5nqIozJ07t05jEnWjQdXciPoTl5qHCtXuuQnzdSRDhxNzaBvsXQeRCSEAyDgFeW6eV8rTH3ya9qSn3333Hb/88kujT2LefPNNPD09mTJlisv2/fv388knnzBlyhSio6PrPI7ly5fz9ddfs337do4cOUJsbGy59bN1TZKbZup4Sg4AodXsubGY9FhMOo4k5dRFWEIIcCQ2b/SB4nz3xqH3gLt3NJkEJyoqivz8fPT6v9bS++6773jjjTfKTW7y8/PR6RrHr8k333yTgICAcpObp556iiFDhtRLcrNo0SJ+/fVX+vTpQ2qq+5LzxvGvJmrd2YwCDFoNFlP1PwLhvh4cSZbkRog6k5fqSGwu+wdY3ZRYZJ6CHxY4YmkiyY2iKNVa7qculwZqiFRVpaCgAA+Pmq9Gv3TpUsLDw9FoNG6dpkVqbpqp+Mx8AswGFEWp9rFhVhkxJUS9sEaCf2v3vC4xqcrOzuaBBx4gOjoao9FIUFAQV1xxBbt27XK22b59O1dddRVWqxVPT09iY2PZunWry3nmzp2LoigcOXKEKVOm4OPjg9VqZerUqeTl5bm0XbduHYMHD8bHxwez2Uy7du14/PHHnfsvrLmZMmUKb7zxBuBIfEpfpc6vuVmxYgWKorB58+Yy9/r222+jKAp79+51bjt48CDXX389fn5+mEwmevfuzVdffVXtr+PixYsZNmwYQUFBGI1GOnbsyKJFi1zaREdHs2/fPjZv3uy8hyFDhrBkyRLn1ClDhw517it9TBQdHc3YsWNZs2YNvXv3xsPDg7fffrvaMZ4vMjISjcb9qYX03DRTZzML8PMy1OjYcF8Pfjicgs2uotVUPzkSQjR9d955JytWrOCee+6hY8eOpKam8uOPP3LgwAF69uzJhg0bGDVqFL169WLOnDloNBrnL/IffviBvn37upzvxhtvJCYmhvnz57Nr1y7effddgoKCeP755wHYt28fY8eOpWvXrsybNw+j0ciRI0fKJEvnmzFjBmfPnmXdunUsXbq00vsZM2YMZrOZTz75hNjYWJd9y5cvp1OnTs6ein379jFo0CDCw8N57LHH8PLy4pNPPmH8+PF89tlnXHvttVX+Oi5atIhOnTpx9dVXo9Pp+Prrr5k5cyZ2u527774bgFdeeYV7770Xs9nMv/71LwCCg4Np1aoV9913H6+99hqPP/44HTp0AHD+F+DQoUPcfPPNzJgxg+nTp9OuXTsAMjMzKS4uvmh8JpMJs9lc5fupL5LcNFPxGfn41jS58fGgyGbndHoeUf5etRyZEKIp+Pbbb5k+fToLFixwbvvnP/8JOB5/3HnnnQwdOpRVq1Y5e0tmzJhBp06deOKJJ1i7dq3L+Xr06MF7773nfJ+amsp7773nTG7WrVtHUVERq1atIiAgoEoxDhgwgLZt27Ju3TpuvfXWStt6eHgwbtw4VqxYwWuvveZc/zAhIYHNmze71Ozcf//9tGjRgh07djgXbp45cyaDBw/m0UcfrVZys3nzZpfHRPfccw9XXXUVL7/8sjO5GT9+PE888QQBAQFl7uOyyy7jtdde44orrmDIkCFlzn/kyBFWr17NyJEjXbZfc8015fZSXWjy5MlVHn1WnyS5aabOZhbQP8a/RseGn1uL6khSjiQ3Qohy+fj4sH37ds6ePUtYWJjLvt27d3P48GGeeOKJMkWnw4cPZ+nSpdjtdpfHG3feeadLu8suu4zPP/+crKwsLBYLPj4+AHz55ZdMnTq1Th6NTJw4kY8++ohNmzYxfPhwwPG4ym63M3HiRADS0tLYsGED8+bNIzs7m+zsvx7hjxw5kjlz5nDmzBnCw8OrdM3zE5vS3pTY2FjWrFlDZmYmVqv1ku4pJiamTGIDsGDBAtLT0y96/IX/tg2FJDfNkM2ukpxViL+5Zj03fl4GPPRajiTlMLxDcC1HJ4RoCl544QUmT55MZGQkvXr1YvTo0UyaNImWLVty+PBhwPFXf0UyMzPx9fV1vm/RooXL/tJ96enpWCwWJk6cyLvvvsu0adN47LHHGD58OBMmTOD666+vtUSntD5o+fLlzuRm+fLldO/enbZt2wKOnhBVVXnyySd58sknyz1PUlJSlZObrVu3MmfOHLZt21amxqi2kpvy9OrV65LO626S3DRDSdkF2FS1xjU3iqIQ7mPisAwHF0JU4MYbb3T2rqxdu5YXX3yR559/npUrV2K3O2Y4f/HFF+nevXu5x19Yx1H6GOhCqqoCjh6OLVu2sHHjRr799ltWr17N8uXLGTZsGGvXrq3w+OowGo2MHz+ezz//nDfffJPExES2bt3Kc88952xTem8PP/xwuT0iAK1bt67S9Y4ePcrw4cNp3749L7/8MpGRkRgMBr777jsWLlzovNalqGhkVFpaGkVFRVU6/lITrLogyU0zFJ9ZAIB/DZMbgFAfDw4nyYgpIUTFQkNDmTlzJjNnziQpKYmePXvy7LPPsnDhQgAsFgsjRoyotetpNBqGDx/O8OHDefnll3nuuef417/+xcaNGyu8TnVHjE6cOJH//ve/rF+/ngMHDqCqqvORFEDLli0B0Ov1l3xvX3/9NYWFhXz11VcuPVcbN24s07ai+6jJiFiACRMmSM2NaFziM84lN2Zjjc8R7uPB7j8yUFW1xt88QoimyWazkZOT4/IXfVBQEGFhYRQWFtKrVy9atWrFSy+9xC233FKmlyY5OZnAwMBqXTMtLQ0/Pz+XbaW9QoWFhRUe5+XlqBvMyMhw1u1UZsSIEfj5+bF8+XIOHDhA3759XR7tBAUFMWTIEN5++23uvfdeQkNDXY6vzr2V9jaV9k6B41HU4sWLy72PjIyMcrcD5e6rjNTciEYnPjMfo06Dl6Hm3bShVg+yC0tIyy26pCRJCNH0ZGdnExERwfXXX0+3bt0wm818//337NixgwULFqDRaHj33XcZNWoUnTp1YurUqYSHh3PmzBk2btyIxWLh66+/rtY1582bx5YtWxgzZgxRUVEkJSXx5ptvEhERweDBgys8rrS25L777mPkyJFotVpuuummCtvr9XomTJjAxx9/TG5uLi+99FKZNm+88QaDBw+mS5cuTJ8+nZYtW5KYmMi2bds4ffo0v//+e5Xu6corr8RgMDBu3DhmzJhBTk4O//nPfwgKCiI+Pr7MfSxatIhnnnmG1q1bExQUxLBhw+jevTtarZbnn3+ezMxMjEajc96cytS05mbLli1s2bIFcCRyubm5PPPMMwBcfvnlXH755TU6b3VJctMMxWcWEGA2XlKPS7DFkdCcSM2V5EaIupJ5qlFe29PTk5kzZ7J27VpnjU3r1q158803ueuuuwAYMmQI27Zt4+mnn+b1118nJyeHkJAQ+vXrx4wZM6p9zauvvpoTJ07w/vvvk5KSQkBAALGxsTz11FOV1oRMmDCBe++9l48//phly5ahqmqlyQ3gLF5WFIUbb7yxzP6OHTuyc+dOnnrqKZYsWUJqaipBQUH06NGD2bNnV/me2rVrx4oVK3jiiSd4+OGHCQkJ4a677iIwMJDbb7/dpe3s2bOJi4vjhRdeIDs7m9jYWIYNG0ZISAhvvfUW8+fP54477sBms7Fx48aLJjc1tWHDBp566imXbaWF1XPmzKm35EZRz+/vagaysrKwWq1kZmZisVjcHY5bzPzfr5xKy+fx0R0u3rgChSU2pizewUs3dOP6XhG1GJ0QzUNBQQHHjx8nJiam7DT/sraUaIYq/Z6ger+/peemGTqTkV/jkVKljDot/l4G4lJzaykqIYSTT6QjqZBVwYWoEUlumqGEzAJaBVz6dNnBFhPHUyS5EaJO+ERKYtGEJSQkVLq/oQ6xbiwkuWlmSmx2krML8avhBH7nk+RGCCFq5sJRVBdqqEOsGwtJbpqZxOxC7OqlzXFTKsRq4pfjqTIcXAghqmndunWV7m+oQ6wbC0lumpmETEeBor/XpY9wCrGYyC2ykZpbRICMmBJCiCqrzckLRVm1v7KYaNDOOifwq52eG4AT8mhKCCFEAyLJTTMTn5mPh16Lh/7S11kpnetG6m6EqLlmNhuHEBWqze8FSW6amfjMAvy8DLVSI1M6HPyEDAcXotp0OkdVQElJiZsjEaJhKP1eKP3euBSS3DQzSdmF+Hrqa+18IVYTJ1Lzau18QjQXWq0WrVZLVlaWu0MRokHIyspyfl9cKikobmZSsguxeNRechNsMXE8WXpuhKguRVGcawQZjUa8vLxk1KFollRVJTc3l6ysLEJDQ2vl+0CSm2YmObuQ9iHetXa+YIuJn4/JcHAhasJqtZKfn09KSgrJycnuDkcIt1EUBR8fn1qbuFCSm2YmOaeQfh5+tXa+UIuJvCIbyTmFBHmXXQtECFExRVEIDQ0lKCiI4uJid4cjhNvo9fpaeRxVSpKbZqSwxEZ2QQnWWqy5CT43HDwuNU+SGyFqqLbqDIQQDlJQ3Iyk5hQBYK3Fmpsgb8dw8DgpKhZCCNFAuDW5WbRoEV27dsVisWCxWBgwYACrVq2qsP2SJUtQFMXlVd6y6KJ8ydmFAFg9Ln0Cv1ImvRZfTz0nZTi4EEKIBsKtj6UiIiL497//TZs2bVBVlf/+979cc801/Pbbb3Tq1KncYywWC4cOHXK+lyLWqkvJKU1uaq/nBiDIYiIuTXpuhBBCNAxuTW7GjRvn8v7ZZ59l0aJF/PzzzxUmN4qiEBISUh/hNTmlyY3Fo3b/2YO8jTKRnxBCiAajwdTc2Gw2Pv74Y3JzcxkwYECF7XJycoiKiiIyMpJrrrmGffv2VXrewsJCsrKyXF7NVUpOERaTDp2mdv/Zgy0mTkrNjRBCiAbC7cnNnj17MJvNGI1G7rzzTj7//HM6duxYbtt27drx/vvv8+WXX7Js2TLsdjsDBw7k9OnTFZ5//vz5WK1W5ysyMrKubqXBS84urNWRUqWCLSbS84rJLpChrEIIIdzP7clNu3bt2L17N9u3b+euu+5i8uTJ7N+/v9y2AwYMYNKkSXTv3p3Y2FhWrlxJYGAgb7/9doXnnzVrFpmZmc7XqVOn6upWGrzknEKspjpIbmTElBBCiAbE7fPcGAwGWrduDUCvXr3YsWMHr776aqUJSym9Xk+PHj04cuRIhW2MRiNGo7HW4m3MUrILa72YGBw9NwAn0/LoHF47s0sKIYQQNeX2npsL2e12CgsLq9TWZrOxZ88eQkND6ziqpiGpjpIbb5MOD72WkzJiSgghRAPg1p6bWbNmMWrUKFq0aEF2djYffvghmzZtYs2aNQBMmjSJ8PBw5s+fD8C8efPo378/rVu3JiMjgxdffJG4uDimTZvmzttoNFJyCrHW4tILpRRFIcRqksdSQgghGgS3JjdJSUlMmjSJ+Ph4rFYrXbt2Zc2aNVxxxRUAnDx5Es15I3vS09OZPn06CQkJ+Pr60qtXL3766acKC5DFX/5aeqH2JvA7X6C3kTgZDi6EEKIBcGty895771W6f9OmTS7vFy5cyMKFC+swoqYrpQ6WXjhfsLeRXScz6uTcQgghRHU0uJobUTdSsutmduJSwRYT8Zn5FJXY6+T8QgghRFVJctNMlM5O7FMH89yAI7mxq3AmI79Ozi+EEEJUlSQ3zURKTiEKYKmDeW4Agi2lc91I3Y0QQgj3kuSmmUjOLsTbpEOrqZuFRv29jOg0igwHF0II4XaS3DQTKTlFdbL0QimNRjk3YkqSGyGEEO4lyU0zkZxTNxP4nS/IIsPBhRBCuJ8kN81EclbdrCt1vmBvmchPCCGE+0ly00zUR89NsMXEqbQ8VFWt0+sIIYQQlZHkpplIzy3CUg+PpQpK7CRlV21tMCGEEKIuSHLTDNjsKpn5xXjXw2MpQB5NCSGEcCtJbpqBjLwiVByrd9elYEtpciNFxUIIIdxHkptmIC3Xsa5UXU3gV8qg0+DnZZC5boQQQriVJDfNQGlyU9c9N+BYQFMeSwkhhHAnSW6agfS8qvfcmLJO0H797Xgn7ajRtYIsJk7IYykhhBBuJMlNM5CaW4RGAU+jttJ22sJM2m+4HZ/4H+i49m8EHV5e7WsFeRs5KT03Qggh3EiSm2YgPbcIi0mPRql4XSnFVkS7zXehL0jlaP/5ZITF0urnWQQe+bRa1wq2mMjILyaroPhSwxZCCCFqRJKbZiA1t+ii9TbBhz/CkrSDU90eoNAcQXzHO8gK7E3ogfegGpPylY6Ykt4bIYQQ7iLJTTOQnluE+SLJje+pdeT4dSbPt4NzW1rEcLwy/sScsrvK1wq2GAGZ60YIIYT7SHLTDKTlFlU6gZ+2KAtL4nayA3u6bM/170KRKZDgwx9V+Vpmow4vg5a4NCkqFkII4R6S3DQDqblFeBsr7rmxxv+IRrWRE9DddYeiIT18KP4nvkFblFWlaymKQrDFJI+lhBBCuI0kN81A2kXWlfI9vYF8cwuKPQLL7MsIj0VjLyLg+JdVvl6QxcgJSW6EEEK4iSQ3zUB6ZQXFdhu+ZzaW7bU5p8ToS3ZADwKOVT25CZG5boQQQriRJDdNXH6RjYISe4U1N+bU39EXppeptzlfjn83vFN/R1uUXaVrBltMJGQWUFBsq1HMQgghxKWQ5KaJS80tBMBSQc+N7+kNlBgs5FtbV3iOXP/OKKoN76RfqnTNkNLh4LLGlBBCCDeQ5KaJS891TKZXUc+Nd9JOcn3ag1LxR6HII5giUyDW+J+qdM0QqyO5OZEij6aEEELUP0lumrg057pS5fTcqCpeGQcp8I6u/CSKQq5fJ3zif6zSNa0eekx6jcx1I4QQwi0kuWni0s49liqv58aQl4CuKIsC78iLnifXrxOemYfR5ydftK2iKFJULIQQwm0kuWni0nKLMek1GHRl/6k9Mw4CUGhucdHz5Ph1BsCaULVHU0EWE8flsZQQQgg3kOSmiUvLLcRSQb2NZ/pBbDpPik0BFz2PzWilwNwCa/zWKl1Xem6EEEK4iyQ3TVxabnGFc9x4pR+gwNwCKlkt/Hy5fp2qldzEZxRQWCLDwYUQQtQvSW6auMoWzfRMP0Ch+eL1NqVyfdtjzIvHkJdw0bbBVhMqcEqGgwshhKhnbk1uFi1aRNeuXbFYLFgsFgYMGMCqVasqPebTTz+lffv2mEwmunTpwnfffVdP0TZOqbmFeBvLPpZSbIV4ZJ2gwPvi9Tal8i2OuXCqskp46Vw3J1IkuRFCCFG/3JrcRERE8O9//5tff/2VnTt3MmzYMK655hr27dtXbvuffvqJm2++mTvuuIPffvuN8ePHM378ePbu3VvPkTceablF5Q4D98g8gqLaKKhGz02JyZcikz/m5N0Xbevrqceo00jdjRBCiHrn1uRm3LhxjB49mjZt2tC2bVueffZZzGYzP//8c7ntX331Va666ioeeeQROnTowNNPP03Pnj15/fXX6znyxiMtt6jcYeBe6aUjpaqe3ADkW1rhnfLbRduVrg4uyY0QQoj61mBqbmw2Gx9//DG5ubkMGDCg3Dbbtm1jxIgRLttGjhzJtm3bKjxvYWEhWVlZLq/mwmZXycwvxtujbM+NZ/pBCj2Cses8qnXOfGsrvFL3gL3kom2DLUZ5LCWEEKLeuT252bNnD2azGaPRyJ133snnn39Ox44dy22bkJBAcHCwy7bg4GASEioucJ0/fz5Wq9X5ioysXk9FY5aVX4xdBUs5NTee6QcprMLkfRfKt7ZGayvAM+PwRdvKcHAhhBDu4Pbkpl27duzevZvt27dz1113MXnyZPbv319r5581axaZmZnO16lTp2rt3A1d6dIL5Y2W8sw4RIFXDZIbSwyqosFchUdTwVYTZzPyZTi4EEKIeuX25MZgMNC6dWt69erF/Pnz6datG6+++mq5bUNCQkhMTHTZlpiYSEhISIXnNxqNztFYpa/mIj33XHJjdE1uNMV5GApSKPKs+OtWEVVrosDcAu8qjJgKtXpgV+GkrDElhBCiHrk9ubmQ3W6nsLCw3H0DBgxg/fr1LtvWrVtXYY1Oc5eeV7oiuGtyY8xx9F4VeQbV6Lz5llZV6rkJO7c6+NFkeTQlhBCi/pQ/u1s9mTVrFqNGjaJFixZkZ2fz4YcfsmnTJtasWQPApEmTCA8PZ/78+QDcf//9xMbGsmDBAsaMGcPHH3/Mzp07eeedd9x5Gw1Wel75PTemc8lNsUcNkxtrK3zPbEBblIXNUHFPmNVDj6dBK2tMCSGEqFduTW6SkpKYNGkS8fHxWK1Wunbtypo1a7jiiisAOHnyJBrNX51LAwcO5MMPP+SJJ57g8ccfp02bNnzxxRd07tzZXbfQoGXkFeGh16LTunbQGXNOYtcYKDH41Oi8+dbWKKh4pe4lK3Rghe0URSHUauJYck6NriOEEELUhFuTm/fee6/S/Zs2bSqz7YYbbuCGG26oo4ialvS88teVMuWcpsgjqMprSl2o0CsMm9aIV9q+SpMbgBCrB0cluRFCCFGPGlzNjag9GXlF5SY3xuyTFHsE1vzEioYC7yjMaXsu2jTMapLHUkIIIeqVJDdNWHpuMV7G8npu4hw9N5egwDsGr9SLL3sRavUgPa+YjHP1P0IIIURdk+SmCUvPKypTTIyqYsw5c2k9N0CBJRqP7BNoi7IrbRfqIyOmhBBC1C9JbpqwtNyyyY2+IAWtreCSe27yvWMA8Ew/UGm70tXB5dGUEEKI+iLJTROWkV+2oNiYfRLgkpObQq9w7BoD5tTK625Mei0BZoOMmBJCCFFvJLlpolRVJSOvCPMF60pd6hw3ThotBd5ReKVdvO4mxGrimDyWEkIIUU8kuWmi8opsFNvUMj03ppyTlBis2HWmS75GgXd0lYuKZTi4EEKI+iLJTRNV0ezExpxTl/xIqlS+JQaPrGNoiivvlQmzmohLzcNmV2vlukIIIURlJLlpojLOrSt14YrgpuyTFF3iSKlSBZZox0zFFykqDrV6UGSzczYjv1auK4QQQlRGkpsmqrTnxvvCnpvsk5deb3NOgVcEdo3+oo+mws4NBz8ij6aEEELUA0lumqj0cnpuFFshhvykWuu5QaOjwNwCr/R9lTbzNxsx6jQcTZLkRgghRN2T5KaJysgrQqtR8NBrnduMuWdRUGut5wZwjJi6SM+NRlGI8PXgcKIkN0IIIeqeJDdNVHquY44b5bzFMQ258QAUm/xr7ToFlhg8M4+g2AorbRdm9eDPpMpnMxZCCCFqgyQ3TVR6XlGZehtDfiIAxUa/WrtOvnc0imrDM/1gpe3Cz/XcqKqMmBJCCFG3JLlpojLyisqMlDLkxlOi90bVGmrtOoXmSFRFg1da5XU34b4e5BSWkJhVeQ+PEEIIcakkuWmi0vOK8TJcMFIqP5FiU+312gCoWgMF5kjMF0luIn09ATgsj6aEEELUMUlumqi03KIysxMbcuMpMfrW+rUcRcWVrzEVaDZi0GqkqFgIIUSdk+SmiXKsK3VBcpMXT3GdJDcxeGYcQrEXV9hGo1EcdTcyHFwIIUQdk+SmicrIK8Zscl0005CXSEktFhOXyrdEo7EX45F5pNJ2YVYTfybKYykhhBB1S5KbJqjEZie7sMRltJRiL0ZfkFrrNTcAheYoVJSLFhVH+HpyODFbRkwJIYSoU5LcNEEZ+WVnJ9bnJzkm8KuDnhu7zkShVxheqRcfMZVVUEJyjoyYEkIIUXckuWmCMspZV8qQmwBASR303ICjqNic+kelbSJ8PAA4IkXFQggh6pAkN01QeetKGfMcyU1d9NwAFFha4pl+AOwlFbYJspjQaRUpKhZCCFGnJLlpgtJzHT0354+WMuQlYNOasOs86+Sa+ZaWaG0FeGYerrCNVqMQ7uPBwQQpKhZCCFF3JLlpgsqruTHkJThGSp231lRtKvCORkVz0fluWvh6ciA+q05iEEIIIUCSmyYpI68IT4MWneavf15DXiLFptqf46aUXWei0ByO+WLJjb8nhxKysdtlxJQQQoi6IclNE5SeV1zOBH5n62SOm/Ple8dctKi4hZ8n+cU2Tqbl1WksQgghmi9JbpqgjLziMksvGHMT6mR24vMVWGLwTD+IYiuqsE0LP0fNjzyaEkIIUVckuWmCMvKKXBfNVO3oC5IoNvnX6XXzLS3R2IvxzDhUYRsfTwM+nnoOSFGxEEKIOiLJTROUnleM1/kT+BWkorGX1Mmimecr8I5CVaSoWAghhHtJctMEpV+waKYhLxGgTpZeOJ+qNVBgjqxSUbEkN0IIIeqKW5Ob+fPn06dPH7y9vQkKCmL8+PEcOlTxIw2AJUuWoCiKy8tkMtVTxI1DZl6x6+zEzgn86vaxFDhWCK9KUfHp9HyyCypeRVwIIYSoKbcmN5s3b+buu+/m559/Zt26dRQXF3PllVeSm5tb6XEWi4X4+HjnKy4urp4ibhwy8orwuiC5URUtNoN3nV8739oKz4w/0RRXPBqqtKhYJvMTQghRF3QXb1J3Vq9e7fJ+yZIlBAUF8euvv3L55ZdXeJyiKISEhNR1eI1SQbGNghK7y2gpfUEyxUYfUOo+l82ztkFRbZjT9pAV3K/cNuE+Hug0Cgfjs+gTXbePyoQQQjQ/DarmJjMzEwA/v8p/4eXk5BAVFUVkZCTXXHMN+/ZVvBp1YWEhWVlZLq+mLOPculKuPTfJlBh86uX6heYIbDoPzMm7Kmyj02oI9/Vgf7z03AghhKh9DSa5sdvtPPDAAwwaNIjOnTtX2K5du3a8//77fPnllyxbtgy73c7AgQM5ffp0ue3nz5+P1Wp1viIjI+vqFhqEjPyyK4Lr85OxGaz1E4CiId/SCu/k3yptFunryf74zPqJSQghRLPSYJKbu+++m7179/Lxxx9X2m7AgAFMmjSJ7t27Exsby8qVKwkMDOTtt98ut/2sWbPIzMx0vk6dOlUX4TcY6bnn1pU6v+cmP4liYz0lN0C+tTXeyb+CWvESCzEBXhyMz6bYZq+3uIQQQjQPDSK5ueeee/jmm2/YuHEjERER1TpWr9fTo0cPjhw5Uu5+o9GIxWJxeTVlmed6bs5fNFOfn1Rvj6XAUXejL0zHmHOywjYtA70oLLFzODGn3uISQgjRPNQouTl27FitXFxVVe655x4+//xzNmzYQExMTLXPYbPZ2LNnD6GhobUSU2OXnleMAn/NUKza0RemUmL0qbcY8q2tASp9NBXt74VGgT1nMuopKiGEEM1FjZKb1q1bM3ToUJYtW0ZBQUGNL3733XezbNkyPvzwQ7y9vUlISCAhIYH8/Hxnm0mTJjFr1izn+3nz5rF27VqOHTvGrl27uPXWW4mLi2PatGk1jqMpycgrxsuoQ6NRANAVZZ6bndin3mKwGbwp9AzDO6Xi5Mak1xLu48Efp6XuRgghRO2qUXKza9cuunbtykMPPURISAgzZszgl19+qfZ5Fi1aRGZmJkOGDCE0NNT5Wr58ubPNyZMniY+Pd75PT09n+vTpdOjQgdGjR5OVlcVPP/1Ex44da3IrTU7GBbMT6/OSACipr4Lic/KsrTEn/Vppm5gAL0luhBBC1LoazXPTvXt3Xn31VRYsWMBXX33FkiVLGDx4MG3btuX222/ntttuIzAw8KLnUSspOC21adMml/cLFy5k4cKFNQm7WbhwRXBDQTJAvfbcAOT7tMHn4FY0xXnY9Z7ltokJMLPtlziKSuwYdA2i/EsIIUQTcEm/UXQ6HRMmTODTTz/l+eef58iRIzz88MNERkYyadIklx4XUT/S84rwNGqd7/X555KbeiwohvMm80vZXWGbloFeFNtU/kyU+W6EEELUnktKbnbu3MnMmTMJDQ3l5Zdf5uGHH+bo0aOsW7eOs2fPcs0119RWnKKKHItm6p3vDfnJ2HReqFpDvcZRaI6gRO+NNXF7hW2i/D3RKMijKSGEELWqRo+lXn75ZRYvXsyhQ4cYPXo0H3zwAaNHj0ajceRKMTExLFmyhOjo6NqMVVRBRl4xrQKNzvf6/HNLL9Q3RUOebwcsCduAB8ttYtRpifTzPDdiqkV9RieEEKIJq1Fys2jRIm6//XamTJlS4RDsoKAg3nvvvUsKTlRfRn6x69IL+Un1XkxcKte3A8GHP0RTko9d51Fumxh/L34/JT03Qgghak+Nkpt169bRokULZ09NKVVVOXXqFC1atMBgMDB58uRaCVJUjaqqZOQVuS6aWZ9LL1wg168jGnsx5uTfyAodWG6bloFe/HgkhYJiGya9ttw2QgghRHXUqOamVatWpKSklNmelpZWo4n4RO3IL7ZRbFPLLL1Q3yOlShV6hVNisFRad9M6yJsSu8reM9J7I4QQonbUKLmpaAh3Tk4OJpPpkgISNZeeV3ZdKbfV3AAoGnJ92mNJ+KnCJi38PDHqNPwal16PgQkhhGjKqvVY6qGHHgJAURRmz56Np+df85fYbDa2b99O9+7dazVAUXXpua7rSim2QnTF2W6ruQHI8+1A8OH/VVh3o9UotA4yS3IjhBCi1lQrufntN8d0+qqqsmfPHgyGv4YXGwwGunXrxsMPP1y7EYoqy8x37bkx5LtnAr/zOepuSjAn7yIrdFC5bdoEebPlcDKqqqIoSj1HKIQQoqmpVnKzceNGAKZOncqrr77a5FfYbmzS88713JxLbtw1gd/5Cr0iKDZY8Yn/scLkpm2wmS92n+FkWh5R/l71HKEQQoimpkY1N4sXL5bEpgHKyCtGo4CnwTHqSN8Aem5QFHL8u+FzZmOFTdoEeQPIoykhhBC1oso9NxMmTGDJkiVYLBYmTJhQaduVK1decmCi+koXzSx9tGPIT0JVtNj0ZrfGlRPQncg9r2HIPUORV3iZ/WaTjghfD3adTGdCzwg3RCiEEKIpqXJyY7Vanb80rVb3FaiKijkWzfxr6QV9wbmRUop7F6XM8e+CqmjwObOZpLa3lNumTZCZnSek50YIIcSlq3Jys3jx4nL/XzQc6XnFeJ23aKYhP8WtI6VK2fVe5Pm0w/f0xkqSG282/5lMdoFrgiaEEEJUV43+pM/PzycvL8/5Pi4ujldeeYW1a9fWWmCi+tLPPZYq5ZiduGHURmUHdMeasBXFVlju/rbB3thV2H0qo34DE0II0eTUKLm55ppr+OCDDwDIyMigb9++LFiwgGuuuYZFixbVaoCi6jLKSW4aQs8NOOputLYCLBXMVhzmY8Ji0rH9WFo9RyaEEKKpqVFys2vXLi677DIAVqxYQUhICHFxcXzwwQe89tprtRqgqLr0vGLMLjU3DeOxFDiGhBeZAvE9Xf6oKUVR6BBq4aejZZf1EEIIIaqjRslNXl4e3t6O4btr165lwoQJaDQa+vfvT1xcXK0GKKrOpedGVdEXpDaY5AZFITuwB/4nV4NqL7dJxzALf5zOJLewpJ6DE0II0ZTUKLlp3bo1X3zxBadOnWLNmjVceeWVACQlJcn8N25it6tk5hc7kxtNSS5aW0HDSW6AzJABGPIT8U7aWe7+TqFWSuyqzHcjhBDiktQouZk9ezYPP/ww0dHR9OvXjwEDBgCOXpwePXrUaoCiarILSrCr4G0qXXrB8XjHZmw4yU2+tQ1FpgACTnxT7v4wHxM+nnq2HUut58iEEEI0JTVKbq6//npOnjzJzp07Wb16tXP78OHDWbhwYa0FJ6ruwqUXdAWOBKEh9dygaMgK7od/3HdgL/voSVEUOoRI3Y0QQohLU+PZ3UJCQujRowcazV+n6Nu3L+3bt6+VwET1lCY3zp6bAkeCUNJAhoKXygwegL4wDWviz+Xu7xhmYe/pLHKk7kYIIUQNVWvhzFK5ubn8+9//Zv369SQlJWG3uxaIHjt2rFaCE1WXkee6Iri+IAVV0bh96YULFVhiKPQMwf/EN2SGDi6zv2OoBZuqsuNEGkPbBbkhQiGEEI1djZKbadOmsXnzZm677TZCQ0OdyzII9/mr58YxFFxfOjuxm5deKENRyAruj3/cd5zoMwe7zsNld6jVhK+nnm1HUyW5EUIIUSM1Sm5WrVrFt99+y6BBg2o7HlFDGXnFGHUaDDpHMtOQ5ri5UHpYLIHHv8A/7luSW13vsk9RFDqHW9n8ZzKPj+7gpgiFEEI0ZjX6s97X1xc/P7/ajkVcgoy8Ime9DZQmNw2r3qZUsWcw2f7dCD60rNz93SJ8OJSQTWJWQT1HJoQQoimoUXLz9NNPM3v2bJf1pYR7ORbNbJjrSpUnPWI43ql/4JW6t8y+LhFWFGDzn8n1H5gQQohGr0aPpRYsWMDRo0cJDg4mOjoavd51Feddu3bVSnCi6i5cNNOQn0KOfxc3RlS57IAeFJn8Cf7zQ44NeM5ln8Wkp1WQmc2Hkrmxd6SbIhRCCNFY1Si5GT9+fC2HIS5VmRXBG9LSC+XRaMkIG0rA8S+I6/VYmV6mbhFW1u5PpMRmR6dtYEXRQgghGrQaJTdz5syp7TjEJUrPLSbUagJAU1KAtiS3YSc3QHrEUAJOfEnIoaWc6XK3y75uET58tusMv5/OoFeU1HcJIYSouhr/SZyRkcG7777LrFmzSEtLAxyPo86cOVNrwYmqSz+voNg5O3EDWnqhPCVGXzLChhC6/z00xbku+1oFmjEbdWw+JHU3QgghqqdGyc0ff/xB27Ztef7553nppZfIyMgAYOXKlcyaNavK55k/fz59+vTB29uboKAgxo8fz6FDhy563Keffkr79u0xmUx06dKF7777ria30aRk5BVjNjpqn0pnJ27IBcWlUqLHoSvOJvjwRy7bNRqFLuFWNkpyI4QQoppqlNw89NBDTJkyhcOHD2MymZzbR48ezZYtW6p8ns2bN3P33Xfz888/s27dOoqLi7nyyivJzc2t8JiffvqJm2++mTvuuIPffvuN8ePHM378ePbuLTvqprkoLLGRX2zDfK7nRp9fuvRCw+65ASj2CCAj9DLC9r2NpsR16HePFj7sOZNJQqYMCRdCCFF1NUpuduzYwYwZM8psDw8PJyEhocrnWb16NVOmTKFTp05069aNJUuWcPLkSX799dcKj3n11Ve56qqreOSRR+jQoQNPP/00PXv25PXXX6/JrTQJmeeWXvA+f+kFFEr0Db/nBiAl5mr0BekE/+k6702PFr5oFFh3INFNkQkhhGiMapTcGI1GsrKyymz/888/CQwMrHEwmZmZAJVOELht2zZGjBjhsm3kyJFs27at3PaFhYVkZWW5vJqa9NJ1pUx/JTc2gzdotO4Mq8qKPENIDx9KxB//h64gzbndbNTRKczK2n1VT5iFEEKIGiU3V199NfPmzaO42PFLVVEUTp48yaOPPsp1111Xo0DsdjsPPPAAgwYNonPnzhW2S0hIIDg42GVbcHBwhT1G8+fPx2q1Ol+RkU1v3pTSdaWci2bmN9ylFyqS1PoGFNVG5O+vuGzvFeXLtqOpZBUUuycwIYQQjU6NkpsFCxaQk5NDYGAg+fn5xMbG0rp1a7y9vXn22WdrFMjdd9/N3r17+fjjj2t0fEVmzZpFZmam83Xq1KlaPX9DkFGa3JzXc9NQl16oiM1gITnmWoL//BCP9L+KyntH+VJiV9kkhcVCCCGqqEbz3FitVtatW8fWrVv5/fffycnJoWfPnmUeF1XVPffcwzfffMOWLVuIiIiotG1ISAiJia41GImJiYSEhJTb3mg0YjQaaxRXY5GeV4wCmA3nJzeNq+cGIK3FSHzPbCDmlznsv/JDUDT4m420DPRi7b4Eru4W5u4QhRBCNALV7rmx2+28//77jB07lhkzZrBo0SJ+/PFHzp49i6qq1TqXqqrcc889fP7552zYsIGYmJiLHjNgwADWr1/vsm3dunUMGDCgWtduStLzivAy6tBoFAAM+cnYGmFyo2p0xLefijXpF4L//NC5vVcLXzYeTKKwxObG6IQQQjQW1UpuVFXl6quvZtq0aZw5c4YuXbrQqVMn4uLimDJlCtdee221Ln733XezbNkyPvzwQ7y9vUlISCAhIYH8/Hxnm0mTJrnMnXP//fezevVqFixYwMGDB5k7dy47d+7knnvuqda1m5KMvOILVgRPbXSPpUrl+ncmLXwYUbv+jSHHMSFkn2g/cotsbPkzxc3RCSGEaAyqldwsWbKELVu2sH79en777Tc++ugjPv74Y37//Xe+//57NmzYwAcffFDl8y1atIjMzEyGDBlCaGio87V8+XJnm5MnTxIfH+98P3DgQD788EPeeecdunXrxooVK/jiiy8qLUJu6tJz/1pXSrEXoyvKbJSPpUoltr0Fm86TVtseBdVOpJ8nLfw8+Pp3mf1aCCHExVWr5uajjz7i8ccfZ+jQoWX2DRs2jMcee4z//e9/TJo0qUrnq8pjrE2bNpXZdsMNN3DDDTdU6RrNQXpesTO5KR1K3ZiTG7vOk7MdpxO9az5h+97hbOc7GdAygC9/P0NeUQmehhqVigkhhGgmqtVz88cff3DVVVdVuH/UqFH8/vvvlxyUqJ6M81YE1xeUzk7cOB9Llcr170Jy9NW02L0Ac9KvDGjlT0GxnfUHktwdmhBCiAauWslNWlpamTlmzhccHEx6evolByWqJz2vCC/nMHDHopmNsaD4QkmtbiDP2pq2P9xLuCGP1kFmvv79rLvDEkII0cBVK7mx2WzodBU/EtBqtZSUlFxyUKJ60vOK/1p6Ib9p9NwAoNFyuss9aEvyaLvlHgbFWNl4KInMfJnQTwghRMWqVbygqipTpkypcN6YwsLCWglKVJ3drpKZV4y36a8VwW06T1Stwc2R1Y4Skz+nutxP9K7nmGJ+lw9so1i9N56JfVq4OzQhhBANVLWSm8mTJ1+0TVWLiUXtyC4owaaqWM57LNWYi4nLk+fXgfh2k4g5uJiH/a18utNXkhshhBAVqlZys3jx4rqKQ9RQ2rmlF7wb8dILVZEeMQJTzmnuOv0m29O9OJbclZaBZneHJYQQogGq0dpSouFIyy1NbhyPpfT5ydiaYHKDohDfbhLZ/t1YpH+VzVs2ujsiIYQQDZQkN41ceu6FPTdN77GUk0bL2a73kq0PYOyee7Glxbk7IiGEEA2QJDeNXNqFK4LnN83HUqXsOhOHOj+ETYXCxddAbqq7QxJCCNHASHLTyKXnFuFl0KLTaEC1oytMb7o9N+f4BwTzjnEyam4y/O96KMxxd0hCCCEaEEluGrm0vCJnvY2uKBONWtLkkxtFUWgR1ZpnC2/CnnQQPr4FSmQaAiGEEA6S3DRy6blFf9XbnJvAr0kWFF+ga4QPpzVhbIqYASe3wYrbwSYTSAohhJDkptFLyy3+q97m3NILTb3nBsCo09A1wsrHJ60UX/Yo/LkKvpwJdru7QxNCCOFmktw0cmm5hX8tveBcNLPpJzcAfaL8yCooYXtxKxj8EPzxCXz3D6jCavNCCCGaLkluGrm03KLz5rhJwa7RY9d5uDmq+hHgbSQmwIvVexMgJhYG3gs734e1T0iCI4QQzZgkN41cel7xBXPc+ICiuDeoetQn2pcjyTkcSsyGNldC3xmw7XXY8Iy7QxNCCOEmktw0YiU2O1n5fy2a2VSXXqhMmyBvAryMfP37WceGDuOg9+3ww0uw6Xn3BieEEMItqrW2lGhYMvOLUXGdnbg5jJQ6n0ZR6N/Kj2/+iOdMRj7hPh7QaQLYS2DTc6DRwOWPuDtMIYQQ9Uh6bhqxtAuXXshPbjbFxOfrEm7FbNTxze/x5228Ebr/zfF46ocF7gtOCCFEvZPkphErs2hmM3wsBaDTaOgb48eWI8nOrwkA3W6GbrfA+nmw+UX3BSiEEKJeSXLTiKXnNaNFMy+iV5QvBq2GL3efcd3R/RZHD87GZ2DjfBlFJYQQzYAkN41YWm4xCmA26NAU56K1FTS7mptSJp2W/jH+fH8wiZScC5Zi6HYz9JwEm/8N38+VBEcIIZo4SW4asfQ8x9ILGo3S7CbwK0+fGD8MOg1fXNh7A44anN7TYOsrsOpRmclYCCGaMEluGrELJ/ADKDE23+TGqNMwsKU/Gw8mk5RdzkKancbDgHvgl3ccSzXIWlRCCNEkSXLTiJ2/aKZBem4A6B3lh4deyyc7T5XfoO1VcNnDsOcTWH4rFOfXb4BCCCHqnCQ3jVhabhFm41/DwFVFg01vdnNU7mXQabi8bSA/HknhaHJO+Y1axsLQJ+HYBvhgPOSl1WuMQggh6pYkN41Y6vmPpQpSzi29IP+kPVr4EGg2snRbHCoVFA9H9IYrn4Wk/fD+SMg4Wb9BCiGEqDPym7ARKy0ohnMT+DXjepvzaRSFER2COZiYzY4T6RU3DGwPo16Ewiz4z3A4s6v+ghRCCFFnJLlpxFxrbprvHDflaR1kpmWAF0u3xVFkq2RklDXckeB4+sHiUbD/q/oLUgghRJ2Q5KaRKiyxkVtkO2+0VFKznJ24MiM7hZCWV8Tnv5UzNPx8Hr6OR1QRfeCT22DLSzIXjhBCNGKS3DRSGXnFwPnrSqVIz80FAsxGBrb056vdZzmTeZFRUTqjY4HNbjfDhqdh5XQZSSWEEI2UW5ObLVu2MG7cOMLCwlAUhS+++KLS9ps2bUJRlDKvhISE+gm4AUnNObf0glEHqvpXQbFwMah1ABYPHe/9cLzi4uJSisaxVEPsY3DgK0ehcebp+glUCCFErXFrcpObm0u3bt144403qnXcoUOHiI+Pd76CgoLqKMKGq3SBSKuHHk2JY+kF6bkpS6/VMKpzKPvjs1h/ILlqB0UPhqtegOx4eDsW4rbVbZBCCCFqlc6dFx81ahSjRo2q9nFBQUH4+PjUfkCNSGquYwZei4ceQ76j50pGS5WvVaCZHpE+LP35BN0irQSajRc/yL8VjH7ZsR7Vf8fB6Beg9+11H6wQQohL1ihrbrp3705oaChXXHEFW7durbRtYWEhWVlZLq+mICWnCKNOg0mvRV/g6JGwSc9NhUZ0DMak07Bo01HsVS0W9vCBK5+BNlfCNw86XrbiOo1TCCHEpWtUyU1oaChvvfUWn332GZ999hmRkZEMGTKEXbsqnp9k/vz5WK1W5ysyMrIeI647qTmFWD0uXFfKx40RNWwmnZax3cLZH5/Fqr3VqNHS6KD/XY41qXZ9IDMaCyFEI9Cokpt27doxY8YMevXqxcCBA3n//fcZOHAgCxcurPCYWbNmkZmZ6XydOlXBmkONTMr5yU1BMnZFh03n5eaoGraWAV70i/bjw+0nOZ6SW72D214FVzwDiXvgnSGQ/GedxCiEEOLSNarkpjx9+/blyJEjFe43Go1YLBaXV1OQknPeBH75qY56G0Vxc1QN37AOQQR5G3l1/Z/kF9uqd3BIZxjzsuP/3xsBx3+o/QCFEEJcskaf3OzevZvQ0FB3h1HvUnIKsbisKyX1NlWh02i4tkc4ablF/OeHYxcfHn4hczCMegH8WsLSa+GPT+smUCGEEDXm1tFSOTk5Lr0ux48fZ/fu3fj5+dGiRQtmzZrFmTNn+OCDDwB45ZVXiImJoVOnThQUFPDuu++yYcMG1q5d665bcJvUnCKi/R2PofT5ydhkduIq8zcbGds1jJW/naFNkJlRnauZHBu8YPgc+On/YOU0yEtx1OUIIYRoENya3OzcuZOhQ4c63z/00EMATJ48mSVLlhAfH8/Jk3+t1lxUVMQ//vEPzpw5g6enJ127duX77793OUdzkZp7fkFxMiVGXzdH1Lh0CrNyJj2fpT+fJCbATPsQ7+qdQKODQQ84RlStfgzyUmHov+TRoBBCNACKqjavRXSysrKwWq1kZmY22vqbvKISOs5ewz1DWzOodQA9PxtMVlBvktrc5O7QGhWbamfZzyfJyCvi2Wu7VG3+m/Ls/Qx+XewYUXXlM5LgCCFEHajO7+9GX3PTHJUuvWDx0DuWXihMlWHgNaBVNFzfMwKNovDi6kPVLzAu1fk66DsDtr0Oq/4pi24KIYSbSXLTCKXknJud2KRDW5yNxlYoBcU15GXUMbFPJAlZBbyx8Qi2miYmHcY5em5+eQfWPiEJjhBCuJEkN41Qac+N1UOPvuDcBH6S3NRYkLeJa3uE82tcOv/7+eTFD6hI26ug352OHpwNT9degEIIIarFrQXFomZK15XyNunRJ5fOTizJzaVoG+zNyM4hfLc3ngCzgdFdaji9QPuxYCuCHxaAyQcG3VercQohhLg4SW4aoZScIscjKY0iPTe1qE+UH5l5xXzwcxy+XgYGtPSv2Yk6TYDCXFj3JHgFQPdbajdQIYQQlZLkphFKzSlyFBMDhvxk7Boddll6oVYMax9ETkEJr288gtmoo0t4DZPGHrdCQQZ8eQ94BkDbK2s1TiGEEBWTmptG6PzZiQ15iY45bmT4ca3QKArjuoUS4+/JS2sPcTQ5p2YnUhToPxMi+sCnk+Hs7lqNUwghRMUkuWmEUnIKnetKyQR+tU+r0XBdz0gCvI3MX3WQU+l5NTuRRguXPQzWCPjfDZBxCcXKQgghqkySm0bo/BXBDfmJUm9TBww6DTf3aYGXUcsz3x4gIaugZifSm2DYk6DRwP9uhIKs2g1UCCFEGZLcNEKpuUXnLb2QRLFM4FcnPPRabunbAp1G4elv9pN8bn6h6p/IF4bNdvTcrLgd7DWcLFAIIUSVSHLTyNjtKum55xUU5yXJY6k6ZDbqubVfFHZVZd7X+53D8KvNpwXE/hOOboA1/6rdIIUQQriQ5KaRycgvxq6C1aRHsRWhL8qgxODj7rCaNIuHnlv7RVNUYuPpb/aTlltUsxOF94K+02H7Ivh1Sa3GKIQQ4i+S3DQyqaVLL3jo0RckA0jPTT3w8dRz24Bo8otsPPXNvpr34LQfC+1Gw7f/gBM/1m6QQgghAEluGp0U56KZOgx5juRGam7qh6+ngdsGRFNQZGPuV5dQg9P37xDcGZbfCmnHazdIIYQQktw0NqU9BlYPPYb8REB6buqTr6eBSQOiKbHbmfvVPuIzazCKSqOD2EdB7wEfTpQRVEIIUcskuWlkUnOK0GkVPPRa9PlJqIoWm97s7rCaFR9PA5P6RwMKc7/ax8m0GsyDY/R2DBHPOiMjqIQQopZJctPIJGUX4OtpQFEUDPnJjkdSivwz1jeLh57JA6LwMGiY+/U+DiVmV/8k1ki4/J9wdD2sm137QQohRDMlvxUbmaSsQnw8zlt6QUZKuY2XUcdt/aMJMBt59tv97DqZXv2ThPeEPtNh2+uwc3HtBymEEM2QJDeNTFJ2ocsEfiVSTOxWpnMT/cUEmHlpzZ+sO5BY/ZN0GAftxsB3D8OxTbUeoxBCNDeS3DQyiVkF+HgaADBIctMg6LUaru8VQa9oX9778Tj/2x6HXVWrd5K+f4eQbrD8Nkg6UDeBCiFEMyHJTSOTlFWAr+d5PTcGGSnVEGgUhas6hXBlx2C+/iOeBWsPkV9cjSJhjdYxgsrTH5ZdB9kJdResEEI0cZLcNCLFNjtpecX4ehrAXoK+IE16bhqYfjH+TOwTyZ4zWTzxxd7qLbhp8IThc6CkEP53vQwRF0KIGpLkphFJOTdpnI+nHkNBCgoqxTLHTYPTNsib2wc5ZjN+/PM91Ss09gpwJDhpxx2T/JXUcKJAIYRoxiS5aUSSskqTGwP6/CQA6blpoAK9TdwxOIZwHw9eWHOIT349ja2qdTh+MTD0X3ByG3x+p8yBI4QQ1STJTSOSlO1Ibnw99RjyJLlp6Ex6LTf2jiS2bSCf7zrNs98eID2/iotuhnSByx6G/V841qGqboGyEEI0Y5LcNCJJ2QVoFLCY9I7ZidFQYrC6OyxRCY2icHmbQG7tH8XJ1DweXfEHe85kVu3gqIEw4F74dTGsfUISHCGEqCJJbhqRpKxCfDwNaDTKuWHgVpmduJGI9vdi+uUx+JuNPPvdAT7ecRKbvQrJSpsroO8MxyR/G56RBEcIIapA5+4ARNU5ll44NztxfrI8kmpkzEY9t/RtwU9HU/ly91n2x2dz77DWBJqNlR/YYRzYiuGHl0BRHPU4ilI/QQshRCMkf/Y3IolZf81ObMiNl5FSjZBGURjcOoDJA6JJzMzn0c/+YGdcFUZTdZ4AvabClhdh/TzpwRFCiEpIctOIJJ0/O3FePCVGfzdHJGoq0s+T6Ze1ItLXk5fWHmLZ9jhKLvaYqvN10PsO+PFlWP0Y2O31E6wQQjQy8liqEUnKLqRtiDcAxrx4cgK6uzcgcUk8DFpu6BXB9uNpfLcngT8Tc3hwRBvHJI0V6XQt6Ezw85tQmAXj/g+08m0shBDnc2vPzZYtWxg3bhxhYWEoisIXX3xx0WM2bdpEz549MRqNtG7dmiVLltR5nA2Bza6SmlOEj4cBTXEeuqIsik3Sc9PYKYpC/5b+TBoQRXxmPo+t3MOhxOzKD2o3Ci57CP5YDh/fDEV59ROsEEI0Em5NbnJzc+nWrRtvvPFGldofP36cMWPGMHToUHbv3s0DDzzAtGnTWLNmTR1H6n5puUXYVBVfLz2GPMe6Q8VGPzdHJWpLpK8n0wbHYDXpmff1fjYeSqr8gJZDYdhsOP4D/Hcc5KbUT6BCCNEIuLU/e9SoUYwaNarK7d966y1iYmJYsGABAB06dODHH39k4cKFjBw5sq7CbBCSsh1rFPl6GjDkxQNIz00TYzbquXVAC1bvSeDtLcc4nZ7PLf1aoK1oZFR4Lxj5HGyYB/8ZCn9bAYHt6jdoIYRogBpVQfG2bdsYMWKEy7aRI0eybdu2Co8pLCwkKyvL5dUYOZde8NBjPJfclMhoqSZHq2gY3SWUkR2D+W5PPK98/ydFtkoKhwPawOgFgALvjoAj39dbrEII0VA1quQmISGB4OBgl23BwcFkZWWRn59f7jHz58/HarU6X5GRkfURaq1Lyi5AAayeegy5CZQYrKjaSgpPRaOlKAp9Y/y5sXcku09l8My3B8guKKn4AHMQjHrR0Wvzvxtg66syVFwI0aw1quSmJmbNmkVmZqbzderUKXeHVCNJWYVYPPToNBqMefEUm6TepqlrG+zNbf2jOJ2ex9yv95GWV8m6VAZPGPqEY7j4utnw6RQoaJy9lEIIcakaVXITEhJCYmKiy7bExEQsFgseHh7lHmM0GrFYLC6vxigpu/Cv2Ylz46WYuJkI9/Fk8oBosguKmfPlPufiqeXSaKHnZIh9DA6vhXeGQMLeeotVCCEaikaV3AwYMID169e7bFu3bh0DBgxwU0T1Jym7AGtpcpN3lhJJbpqNALORyQNisKkqs7/cy9nM8h/BOkUPhjELQbU7Co23vy2PqYQQzYpbk5ucnBx2797N7t27AcdQ7927d3Py5EnA8Uhp0qRJzvZ33nknx44d45///CcHDx7kzTff5JNPPuHBBx90R/j16mxGAX6ejjWIjHkJMlKqmfHx1DN5QBR6rYanvtrPmYyLJDjWcBj9ErQdCav+Cf+7HrLO1k+wQgjhZm5Nbnbu3EmPHj3o0aMHAA899BA9evRg9uzZAMTHxzsTHYCYmBi+/fZb1q1bR7du3ViwYAHvvvtukx8GDnA2Ix9/8/kT+EnPTXNjNuq5rX8URr2Gp77ex5mMi0zepzM6VhQfPgfO7II3+sFvy6QXRwjR5Cmq2rx+0mVlZWG1WsnMzGw09TcFxTbaP7maO2NbMjI4hx5fjeB4ryfJ8+vg7tCEG+QWlbDs5zgKi23MvroT4dby681cFGbDjnfh6HqIGgxjX5Y5cYQQjUp1fn83qpqb5ioh0zGBn7+XEWOe49GC9Nw0X14GHbf2i8Kg0zLv6/3En/t8VMroDYMfhBFPQfoxWDQI1vwL8tLqPmAhhKhnktw0AqUFpP5mg3PpBZnAr3nzMuq4tX8L9BoNT3+zn8SsSkZRnS+8F1z9OnS7CXa+B691hx8XQmFOncYrhBD1SZKbRuBsxl89N4bceJnATwB/LdeAAvO+2UdyThUTHK0Buk6Ea9+BqEGw4Rl4pTNsflHWqBJCNAmS3DQCZzPy8fHQY9BpZKSUcOFt1HNbvyjsqsq8r/eTmlvFBAfAwxf6z3QkOS0GwpYX4OUO8MVMiNsmhcdCiEZLkptGoHSkFJRO4CePpMRfLB56bu0XTZHNzrxv9lc+k3F5zEHQ/y64fgl0u8WxPtXiq+DVbvD9XDi1A+yVrG8lhBANjCQ3jcDZjHz8vM4lN3lnpZhYlOHj6RgmXlBkY97FlmqoiMkCXa6HCf+BkfMdo6l2vg/vjYAXW8Hy2+Dnt+Dkdii6yDB0IYRwI527AxAXdyYjnzbB3qCqGHPPkh3Yy90hiQbI19PAbQOi+WDbCeZ9vY/ZYzs5k+JqUTQQ0sXxstsg+QCc3Q2Je+DQKrAXAwpYI8C/DfhEgiUMvALA5ANGC+hNoPMAjQYULShK2cdcGi1odKD3AL2n41id1JIJIS6dJDcNnKqqnM0oYEDLAHRFGeiKcyj2CHR3WKKB8vU0MGlANEu3neCpb/bxxJiOBJqNNT+hRgvBnR0vAFsxZJyEtKOQdcYx63HcT5CXCgWZoNou7QaMFkei5N8KAtpCWE+I6O3YJoQQVSTJTQOXmV9MfrENf7MBY45jRfMijyA3RyUastIenGU/xzH3q308OaYjIVZT7Zxcq3ckHv6tyu5TVSgpgKJcsBU5Xqrd8SqP3eZIhmxFUFwIhVmOBCk3GbIS4NR2xzB1gKCO0PYq6HIDBHesnXsRQjRZktw0cKXDwAPMBow5pwEoluRGXISvp4HJA6JZtv0kc77ay+NjOhLl51m3F1WUc4+YqjBjclXlpkDSfjiz0zHD8o8vQ3hv6HcndJ7g6FkSQogLSEFxA3c2o3QCPyOmnFPYdJ7YdF5ujko0BhYPx2KbHgYdc7/ax96zme4Oqfq8AiDmchj8ENzwXxgyy9Hbs3IavNEX9qyQIetCiDIkuWngzmbmo9MoWD30GHNOOR5JKYq7wxKNhJdRx20Dogi1mpi/6iA/HmnEk/Rp9Y5JB694Gsa87Jin57M7YMkYSDro7uiEEA2IJDcN3JnS1cAVBVP2SYo9AtwdkmhkTDotN/WJpFOohdc3HmH5jlPYG3tvR0Bbx2rnI+ZB+gl4azBsfVXm4xFCAJLcNHjxGQX4ezlGuxhzTlFkkpFSovq0Gg1XdwtjWPsgPt99hgVrD5FTVOLusC5deE/HWlkdr4Z1c2DpeMhOdHdUQgg3k+SmgTuTkY+/lwFUO8bcs1JMLGpMURQGtQpgYp9I9sVnMeuzPRxLznV3WJdOq4deU+HKZyBxL7wzBM7+5u6ohBBuJMlNA1f6WMqQl4jGXizDwMUlaxvkzbTBLdFrFZ78ai9f/X4WW2N/TAUQ2s1Ri2P0hvdHwt6V7o5ICOEmktw0YMU2O0lZBfibjc45bmQCP1EbfD0NTB4YTd9oPz785STzvt5PQmaBu8O6dJ7+cNV8aDEAVtwO299xd0RCCDeQ5KYBO52ej12FEIsJk3MCP0luRO3QaTSM6BDMpP5RJGUX8Mhnv/P57jMU2xp5L47W4Bg63vEaWPUIbHhWhosL0czIJH4N2IlURz1EiNWEMeUUxQYfVO0lTKUvRDmi/L34+2Wt2HI4mU92nOKHP5OZNDCa7hE+7g6t5hQN9JkGHj6w5QXHzMlXzJNpFIRoJiS5acBOpOSi1yr4eTlmJy72lHobUTcMOkcvTpdwK2v2JfDvVQfpHunD3/q1INK3jmc2rkudr3f05Pz0mmNdrKvmS4IjRDMgyU0DFpeaR7DF5Jzjpsgkc9yIuhVsMXFb/ygOJmSz/mAi/1zxB5e3DeT6XhGXtgCnO3W4GhQdbH/T0aMz8llJcIRo4iS5acCOp+QS7O1Y8NCYc4qskAFujkg0B4qi0CHUQttgM7tOZvDD4RR+PJzCsPZBXNsjHD8vg7tDrL72owE7/PyGY+j4iLmS4AjRhEly04CdSM2lU5gVxVaIIT9JiolFvdJqNPSJ9qNbhA87TqTx45EUNh5KYlj7IK7pHuacXLLRaD8WbCWw9RXQGWHo4+6OSAhRRyS5aaBKbHbOpOczvH0QxpzTKKgyx41wC4NOw6DWAfSK9mXH8XR+OJzC+oNJDGsXyNXdwxvX46pO48FeApufd6xePvhBd0ckhKgDktw0UGcy8imxqwRbTHhk/gFAkVe4m6MSzZlJp+WyNgH0ifFl54l0fjyayoaDycS2C2R893CCvBtJktPlerAVwvdzQWeC/ne5OyIhRC2T5KaBOpGaBzjmuPE4eRSbzosSg9XNUQnhSHIGtw6gb7QfO+PS+PlYGpsOJnNZW3+u7R5BiNXk7hAvrtstYCuC1Y+BRgd9p7s7IiFELZLkpoGKS81Fp1EIMBvxyDxGoVeYFECKBsWg0zCwVQB9ov34NS6dbcdS2fJnCoNaBzChZzhhVg93h1gxRYGeUxw1ON89fG59qinujkoIUUskuWmgTqScGwauUfDMPEyhZ6i7QxKiXHqthv4t/ekV5ctvJzP46VgKW4+kMKiVP9f2iiC8oSY5iuKY6E+1wdf3O2px+kxzd1RCiFogyU0DdSIlhyCLEVQVU9YxcqPGujskISql12roG+NHjxY+7D6VwU9HU9h6NJWBrfyZ0DOCcJ8GmOQoCvSdAYoWvv0HlBTBgJnujkoIcYkkuWmgjqfm0T7EG31+MrriHMdjKSEaAb3WMYS8RwsffjuVwU9HzktyeoQT0dBmPC7twdHqYc0syE93DBOXx8BCNFqS3DRANrvKqbQ8hrQNxCPrKIAkN6LR0Wk09Inyo0ekD7tPZfLTkWR+OppKvxg/JvSMIMqvASU5igI9J4PR7FiLKicBxiwErfyIFKIxahCrgr/xxhtER0djMpno168fv/zyS4VtlyxZgqIoLi+TqRGMzqiGsy7DwI9gV3Qyx41otHQaDb2jfLl7aGvGdAnlUEI2j372By+uOciR5Bx3h/cXRXGsRTXoQfjtf7BsAuSluTsqIUQNuD25Wb58OQ899BBz5sxh165ddOvWjZEjR5KUlFThMRaLhfj4eOcrLi6uHiOue8dS/loN3CPzGEWeIY7hqkI0YlqNhp4tfJk5tBVXdwvjRGoeT3yxl6e/3c+eM5moqO4O0aH1cMcK4md/g3eGQOI+d0ckhKgmtyc3L7/8MtOnT2fq1Kl07NiRt956C09PT95///0Kj1EUhZCQEOcrODi4HiOuewfjszDpNQR6G/HIOkKRl4yUEk2HVtHQLcKHO2NbcV3PCFJzCnn2uwM8vnIP246lYlMbQJIT2g3GvOwoNH5nCGx/BxpCXEKIKnFrclNUVMSvv/7KiBEjnNs0Gg0jRoxg27ZtFR6Xk5NDVFQUkZGRXHPNNezbV/FfVoWFhWRlZbm8GrpDCdm08PNEoyh4ZB6VYeCiSdIoCh1DLUwb3JJb+rQAReHV9Yd54OPdfLcnnvxim3sD9A6B0S9Cmyth1SOw7DpIb1q9xEI0VW5NblJSUrDZbGV6XoKDg0lISCj3mHbt2vH+++/z5ZdfsmzZMux2OwMHDuT06dPltp8/fz5Wq9X5ioyMrPX7qG3747OI8PVEU5yLMS+BQll2QTRhiqLQKsjMrf2iuGNQDMEWI8u2n2Tm/3ax9Oc4krIL3Reczgj97oThcyDhD3ijL/zwMhQXuC8mIcRFuf2xVHUNGDCASZMm0b17d2JjY1m5ciWBgYG8/fbb5bafNWsWmZmZztepU6fqOeLqKbbZOZKUQws/TzyyjgEyUko0H2E+HlzbI4J7h7amRwsfNhxM4v6Pf+PldYfYH5/lvrqciD5wzRvQdiRseAb+ryfs/gjsbu5dEkKUy61VqgEBAWi1WhITE122JyYmEhISUqVz6PV6evTowZEjR8rdbzQaMRobyYJ+wPGUXErsqiO5yXTck9TciObG4qFnePtgLmsdyB9nMtl5Io153+wn0teTUV1CGNw6AIO2nv8203tCn+nQdhT8thS+uNMxbHzwQ9B1IugM9RuPEKJCbu25MRgM9OrVi/Xr1zu32e121q9fz4ABA6p0DpvNxp49ewgNbRoJwIF4R01QpJ8nXmn7KPQIxq5rQPOBCFGPDDrHMPIZl7fklr4tMOk1vLPlGDP/t4uPfjlJaq4bHllZI2DILMc8OOYQ+OoeeKWL43GVDB0XokFw+/jihx56iMmTJ9O7d2/69u3LK6+8Qm5uLlOnTgVg0qRJhIeHM3/+fADmzZtH//79ad26NRkZGbz44ovExcUxbVrTWBPmYEI2/mYDZqMOr9S9FFii3R2SEG6nKAqtAs20CjSTllvEjhNprNqbwNe/x9OvpR+ju4TQJsi7foMKaOOYyTjjJOz/AjbNd/TkdLvFUacT2LZ+4xFCOLk9uZk4cSLJycnMnj2bhIQEunfvzurVq51FxidPnkSj+auDKT09nenTp5OQkICvry+9evXip59+omPHju66hVp1KD6LFr6eoNoxp+0jJXqcu0MSokHx8zIwslMIQ9oF8fupDHacSGPbsVTaBnsztksIvaL90Nbn0gk+LWDgfdBjEvy5CvathJ3vQdurHNujBspSDkLUM0VVm9fkDVlZWVitVjIzM7FYLO4Op4z+89fTN9qPqe1t9PhyOCd6ziLXv4u7wxKiwbKrKn8mZrP9WBon0/MIthgZ2zWM2LaB9V+XA2ArhmObHL05GXEQ2R+GPAoth0qSI8QlqM7vb7f33Ii/ZOYVk5BZQAs/T7xSHfP8FHhHuzcoIRo4jaLQPsRC+xALZzLy2HY0lfd+PM6nO08xpksYIzoG4WWoxx91Wj20ucIx0/HpnfDHclh6LUT2c8x83KJ//cUiRDMlyU0DcigxG8CR3BzfR5FHIDZDPdcRCNGIhft4cn0vT1JzC9l2NJVPfj3FF7vPcFWnEEZ1CcViqscfeYoGIvs6hpGf3QW7PoD3R0K7MTDyGfBrWX+xCNHMSHLTgBxMyEKnUQj1MWFO3SO9NkLUkL+X49HU5W0D+flYGt/sOcu3e84yvEMIY7uG4O9Vj9NDKAqE94KwHnB8iyPJeaMfDLwXLnsYDDIaUojaJslNA/L7qUxa+HmiUxS80vaS2mKUu0MSolGzmPRc2TGYQa392XE8jY2HElm7L4HL2wQytnso4VaP+gtG0UDLIY7HUntWwE//B3s+dQwpbzPioocLIapOkpsGZMeJNDqEWjDmnEJXnC3DwIWoJV4GHUPaBdG/lT+/xqXzy/E0Nv6ZRO8oX8Z2DaNdiBmFeir21Zmgx62OAuPtb8L/roMuN8Ko58HTr35iEKKJa3TLLzRVydmFnEzLo12wGa+0vQDke8e4OSohmhaTTsugVgHcM7Q1Y7qEciIlj7lf7+Pxz/ey6VASRTZ7/QVjDYcrnoFBD8Ch7+D13rDvi/q7vhBNmCQ3DcSvcY6ZTdsGe2NO3UuRyR+b0ermqIRomvRaDT1b+DIjtiU39YlEq8BbW45x57Jfee/HY/yZlF0/61gpCrQeAeMXQUBb+HQyfDIJcpLr/tpCNGHyWKqB2HEinUBvI/5mI95Jv5BvaeXukIRo8jSKQpsgb9oEeZOeV8Suk+lsP57GugNJ+HsZ6BPjR68WvrQN9saoq8O/BT18YcjjEPcjbH8L3ugDo16ALjfI3DhC1IAkNw3EjhNptA0yoynOw5zyOwntJrk7JCGaFV9PA8PbBzO0XRBxqXkcSMhi65EUVu9NQKtxLP/QMsCLKH9PQqweBHkbsHoY0GnKTz5UVIpKVHIKi8kqKCG7oJis/BIy84vJzC8mK7+YnMISsgtKyC+ykV9io6jEE0/bdCaqq+m/cjo/rnyTV4x3kuMRhq+ngWCLkRCrB1H+nkT7e9E+xBtfL1mwU4gLSXLTAOQX2dh/NovbBkThnbwTjWoj17dpLCchRGOjURRiAryICfBiVKcQknMKOZGSx6n0PHacSGP1vgSX9kadBpNei1ajoEGh2G6nxKZSUGzDVs4E8AatgpdRh6dBh4dei0mvxWzRYdRp0Gs1aBRf9ih/JzNnD4NSP+XDonv5ynMSn6vXcCixiJ+OppKSU4j93KlDrCa6R/rQN9qP/i396RDqjSK9PaKZk+SmAdh9KoMSu0q7YG+scdsoNvpS5BXm7rCEaPYURSHI20SQt4m+MY6RTMU2Oxl5RaTnF5NXWEJBsZ0imx27XUVVVbRaDVpFwaDXYNJp8dBr8TQ4Xl5GHfoqLwkxlFMl/Qk8uoLrTr7PGO91xPV6gvSIYZTYVRKzColLy+VESi5HknNYfyCRYptKgNlAbNsgRnYK5vK2gZj02rr7AgnRQEly0wD8GpeGp0FLpK8n1u0/kevbQZ6zC9FA6bUaAr1NBHqb6vxadp0Hie1uIyMslpA//0f7TdPJCurDqe4PoQvuR7ivBwNbBQCOpOvPxGx+P5XB9uOpfLbrNB56LVd2DGZ8z3Auax2Azh1rbQnhBpLcNAA7TqTTJsiMviQbr9R9nO1wh7tDEkI0IIXeLYjr+RjmlN0EHV1Bp7U3kxXUh7Md7iA9YjhotOi1GjqFWekUZuWWflGcycjnl+Np/HQ0hS9/P0uA2cD1vSK5sXcELQPN7r4lIeqUJDdulldUws/HUrm+VwSWxB0o2Mn1k3obIcQFFIWcwB7kBHTHO3kn/nHf0X7znRR6hZHccgLJLcdTYPlrvapwHw+u7RHO+O5hnEjNY9OhJJb9HMdbm4/Sv6U/t/ZvwZUdQzDU5SgwIdxEkhs32/JnCoUldnpH+WH58yeKTIEUewS5OywhREOlKGQH9SE7qA+mzKP4nV5P6IH3idjzOvmWlqRHDCMzuB85AT0oMfmhOAukY/hbvyh+OZHGhgOJ3PPhb/ibDdzcpwU392tBuE89LkUhRB2T5MbN1u5PINLXgxCrCZ/4H6XeRghRZQXWVpy1tiK+/RTMqb/jnfwbgUdXErb/XQAKPUPJt7Ym39KSIs9gijyDGWuyMKqvN/G5Gn46kcamH+NYu9lG/2hfxnYNoVekBS12sNtAtQOqY10sjRa0RsdCnwZvx9w8WvkVIhom+WS6UYnNzvoDSQxtF4gp8yiemYdJiR7r7rCEEI2MqjU4e3NQVfQFyXhmHMaYcxJjbjy+ZzagK0hDV5LrPKYzcAWA9tzr7LlXlSmOBMcaDj5R4NcSgjqce3UEXT2uvC7EBSS5caMdJ9LJzC+mV5QfASfexabzJMe/m7vDEkI0ZopCsUcQmR5BwCDXXbYitCV5aEryUOzFaOzF53pnQFUhJbeY/Ym5HEnOpdCu0DLAm57RvnQNs+CpA2zFUFIAxXlQkAUFGZCbDFln4fROyDk3B5BGD8EdIbI/tOgHLQaCJbRevwyieZPkxo3W7U/Ez8tAywBPArZ9TVZgb1StzDYqhKgbqtZAidYARp9y95t9oW8EdC+xcyAhiz9OZ7BlRx5aTSFdwq30PbcchdVDX/4FivMh/QSkHoGUP+Hg1/DL2459vjEQcxlEXwbRg8Eic3mJuiPJjZuoqsqafQn0bOGDOeMgHlnHSWp1o7vDEkIIDDoN3SJ86BbhQ1ZBMfvPZnEoIZt3thwDICbAi+4RPnQMs7iuu6X3+OvRVKn8dEjcCwl74dgW2PWBY7tPC0ePTkRvxyuoE+jkjztROyS5cZPtx9M4k5HPlIHRBJx4ixK9Nzl+ndwdlhBCuLCY9PRv6U//lv7kFpZwJDmHo8k5rNmfwOe7z6BVFFr4e9ImyExMgBfR/l6E+3pgKJ0w0MP3XG/NZY73+RmQtA8S98GZX2Hvp47iZY0OAto46nX824BfDFjCHT08nv5gsspgC1Flkty4yZKtx4nw9aBTqDcB278mK6iv45tbCCEaKC+jztmjo6oqyTmFxKXlcSY9n11xGazdnwiAAgR6Gwnz8SDY20iQxYS/2YCflwFfTw+sEQMwRJ2rByophLRjjlf6cUj+E45uhPw014srWjB4gdEMOg9HwbLO6Pi5qdGf+68OtPrzXkbQm0Dv5RjlZfQGo8WRcHn6gVcgmIMd7yVxalLkt6kbnE7PY+3+RKYMjME3fjPG3LOc7TDN3WEJIUSVnb/uVp8ox7aiEjtJ2QUkZxeSklNEam4huzLyycgrotjmuoioh16Lt0mHxUOPt1GH2dQOb2NnzEFazC10WHR2/MjCShZm8vGw56IpyXfU9ZQUgr3YUeBst4FaAnY72M4VO6slYCtxtCkp4v/bu/uoqsp8gePfw+G8gHAAeUdRBBUNTEyTsBx7YeW6lmWrMcsW2UzZzEq7jdyaLCubytRqZjE5lklTjr3ROMu8XXWYlKJGo+VNZa4jaikKYoKivL+c1+f+sfEkiQkI58Dh91lrr+Q5zz77t38Lzvn1PHs/G6cV7G2v2ZqAHz3QVG+E4BgIiYewBG0LT4LwkdookjHQEykVPUiKGy947+tyAgx6po4MZ0jBappDRtEcmuztsIQQ4rIY/f0YGhbI0LD2xYBSila7i/pWO42tDhptDhqtDlpsTpptThqtTqobbbTanbTYnDTZHD8qP0zodWZCAgyEBxmJCjYRFWwmJsxMbKiZoaEBBBo7+XWmXFqBY63X7vhqqYHmM9BcDY2ntamyg5uhta5tBx2EDdemy2KuhJhxEDseQobKaE8fJsWNh7XYnHy4q5xpyVFE1uzBUr2HsrTH5I9ECOGzdDodAUY9AUY90ZZL91dKYXW6aLZqhU6TVSuGGloc1LXYOV7Twr4TddS3Otz7hA8ykhAxiBHhgxgZFcTIqCCCTB18xen82qangrVrei7G2gj1FVB7HGrLtK3sK+32d9CmsmLGQ9z4tqLnSm20x0+ewt4XSHHjYeuLjtHQaufmK6IZuutZWoKG0xgxwdthCSFEn6HT6TD76zH76xk86OJ3UNkcLs402Tjd0MqpBiuV9a2UnKynxeYEIMZiZmyMheSYIK6ICyEy2IiOTv6PpCkIIsdo2zlKaaM8Z0u1293PlkLxh9D0R+11fxNEJLddFD0SwhO1qS5LnHZ9jyxs6DFS3HjQ97Ut5Gz/jptTYkiyHiT05D85Pm6hjNoIIUQ3GP39iA0xExtidrcppahptlNR00xFTQv7T9bx+benABg8yEhKnIUrYi2kxIUQFdzFYkOng0ER2hY/+Yf21nqoKYWaMm2dn5P/gkN/B2td+/0NbRc1GwK12951em0kSbnO2xQ/PPLCX7uI2hgMQZHadUFhIyBiNESnQEBot/I2EEhx40HP/89+zAY/5oyPIGnbfFqCR1AffY23wxJCCJ+h0+kYPEi7M+vKoaEAtNidlJ9toqy6me+qGvnnd9WANpV1RZyFsbEWxsZYiAkxdX5k53xmC8Smadv5rI3atTxN1Vqh09oA9iZw2rRNKW3T6QCdVtDozj2lve35Xo5WsDVD5T44+iU0VrlXlSYiGYZnQNJNkHi9FocApLjxmIIDVeTvr+KRG0eSXPJHzI3llKYvO+8XWQghRG8IMOhJjraQ3HbBz7li51h1M4erGtnxXTUKCDb7kxwdzKioYEZGBZEYOYgAw2VcQ2MK0rawhB45D0C7Q6z+BJw5AqcPwOEC2L1OG+UZMQ1S7oCxMwf8qI5OKaUu3c131NfXExISQl1dHRaLZ6rcg5X1zH6jiJFRQbww/iwp27OoGjWXMwm3eOT4QgghLq7V4aTibDPHz7ZQUdvM97Ut2NpuXY+xmEiICGJYWABDBwcyJDSAaIsZf78+dDlBQyVU/C+U7dQWR9QbIPk/YPxcGJnpM09v78r3txQ3vez72hbueH0nAQY9r17TyoQvHqDFkkDZVU/KqI0QQvRBrrYFCivrWrWtvpXTjVb3hcp+6IgINhIdbCbSYiIy2EREkJGwQCPhg0yEBhoub8TncjSfgaNfaAsh1hyFQVGQdg+k3QuR/XvJkX5X3KxevZpXXnmFyspKxo8fz6pVq5g8efJF+2/YsIFnnnmGY8eOMWrUKFauXMmMGTM6dSxPFjf/PlHHw+/vodXu5LUpLVy98yFag4dTnvY4Ln/zpd9ACCFEn6CUotHm4EyjjepGG7XNNs422ahrsVPXancXPucY9X6EBBi0LdBAiNmAJcCf4PP+e36b+3EVPRcwnD0Ch7dr1+pY6yHuKhh/tzZ1FRTVs8fzgH5V3Hz00Ufcd999rFmzhvT0dHJyctiwYQOHDh0iKurC5H/11Vf87Gc/Y/ny5dx666188MEHrFy5kj179pCamnrJ43miuHE4Xbz7dRkvbT1AUqieP8ZtY/Tht2kKHUP5hP9C6aWwEUIIX2JzuGiw2mlodWgLFVodbWv0OGmyOmixt/3b5rhgtWb4YcXmkAADoYFaURQaYCQ00EhYoNYWNshIiNmAvqtTYk47VOyCI59pixQqFwy/Fsbepk1fhcb3UBZ6V78qbtLT07n66qv505/+BIDL5SI+Pp5HHnmExYsXX9B/zpw5NDU1sXnzZnfbNddcQ1paGmvWrLnk8XqzuHE4XXz0zXHWFB6hrqaap4b8i9ut/42p+SSnR9zBmYSZKHl+lBBCDGg2h4tmm5Nmm4Nmm4Mmm1YAaas1O2i2am2NVm0Bw/O/pHWAJcDA4ECD+64w7ZldRgYHGRkcaCR0kJFBRn3Hd35ZG7Rrc8qLtFvWXQ7tERNJN8CwayA+XVvcsA8uUdKV72+vftPabDZ2797Nk08+6W7z8/MjMzOToqKiDvcpKioiOzu7Xdv06dPZtGlTb4baKX//dyVLPv43c4aeZZn1MfRn7dRHTaJi3H9iC/qJlTCFEEIMGEZ/P4z+foQGGi7Z16UUzTYHDa1OGtoeX1HfNkJU1+KgoraFhlatMDqfQa9rG/n5YSTIYjZgMfsTZJ5E0JhrsFxhJbS2hEFn/g/jgc3odq3Vdg4Ig+hxEDkaBidpj5+wxEFQjPbA0X6wGKFXi5vq6mqcTifR0dHt2qOjozl48GCH+1RWVnbYv7KyssP+VqsVq9Xq/rmuTltUqb6+/nJC71BNbR0uazPhLeU0t7Rw1DCKxio7VH3Y48cSQggxcAS0bRe7UkYZFHanC4dTYXe5cDkUWIHa9v0cbU21P34DwrDoTCTpvifYehZqv4BDX3Q5zhz7HbzlvJVHM0cyf2pSl/f/Kee+tzsz4eTzcyTLly/nd7/73QXt8fG9N8f4RNsGe3rtGEIIIUTfsx5Yz2M58FgvHaGhoYGQkJCf7OPV4iYiIgK9Xk9VVVW79qqqKmJiYjrcJyYmpkv9n3zyyXbTWC6Xi7NnzxIeHo6uD84p9rb6+nri4+M5fvy4x9b56Y8kT5cmOeocyVPnSJ46ZyDnSSlFQ0MDcXFxl+zr1eLGaDQyceJECgoKmDVrFqAVHwUFBSxcuLDDfTIyMigoKOA3v/mNu23btm1kZGR02N9kMmEytZ8fDA0N7Ynw+zWLxTLg/jC6Q/J0aZKjzpE8dY7kqXMGap4uNWJzjtenpbKzs5k3bx6TJk1i8uTJ5OTk0NTUxC9+8QsA7rvvPoYMGcLy5csBePTRR5k2bRq///3vueWWW8jLy+Obb75h7dq13jwNIYQQQvQRXi9u5syZw+nTp3n22WeprKwkLS2N/Px890XD5eXl+Pn9sLjRlClT+OCDD3j66ad56qmnGDVqFJs2berUGjdCCCGE8H1eL24AFi5ceNFpqMLCwgvaZs+ezezZs3s5Kt9kMplYunTpBVN1oj3J06VJjjpH8tQ5kqfOkTx1jtcX8RNCCCGE6Eny5EYhhBBC+BQpboQQQgjhU6S4EUIIIYRPkeJGCCGEED5FihsftHr1ahISEjCbzaSnp7Nr166f7L9hwwbGjBmD2Wxm3LhxbN261UOReldX8pSbm8vUqVMJCwsjLCyMzMzMS+bVF3T1d+mcvLw8dDqde3FOX9fVPNXW1rJgwQJiY2MxmUyMHj16QPzddTVPOTk5JCcnExAQQHx8PIsWLaK1tdVD0Xrel19+ycyZM4mLi0On03XqgdCFhYVcddVVmEwmRo4cybp163o9zn5BCZ+Sl5enjEajevvtt9X+/fvV/PnzVWhoqKqqquqw/86dO5Ver1cvv/yyKikpUU8//bQyGAxq3759Ho7cs7qap7lz56rVq1ervXv3qgMHDqj7779fhYSEqIqKCg9H7jldzdE5R48eVUOGDFFTp05Vt99+u2eC9aKu5slqtapJkyapGTNmqB07dqijR4+qwsJCVVxc7OHIPaureXr//feVyWRS77//vjp69Kj6xz/+oWJjY9WiRYs8HLnnbN26VS1ZskRt3LhRAerjjz/+yf6lpaUqMDBQZWdnq5KSErVq1Sql1+tVfn6+ZwLuw6S48TGTJ09WCxYscP/sdDpVXFycWr58eYf977rrLnXLLbe0a0tPT1e/+tWvejVOb+tqnn7M4XCo4OBg9Ze//KW3QvS67uTI4XCoKVOmqLfeekvNmzdvQBQ3Xc3TG2+8oRITE5XNZvNUiH1CV/O0YMECdeONN7Zry87OVtdee22vxtlXdKa4+e1vf6tSUlLatc2ZM0dNnz69FyPrH2RayofYbDZ2795NZmamu83Pz4/MzEyKioo63KeoqKhdf4Dp06dftL8v6E6efqy5uRm73c7gwYN7K0yv6m6Onn/+eaKionjggQc8EabXdSdPn3zyCRkZGSxYsIDo6GhSU1N56aWXcDqdngrb47qTpylTprB792731FVpaSlbt25lxowZHom5PxiIn9+d1SdWKBY9o7q6GqfT6X50xTnR0dEcPHiww30qKys77F9ZWdlrcXpbd/L0Y0888QRxcXEXfLD4iu7kaMeOHfz5z3+muLjYAxH2Dd3JU2lpKZ999hn33nsvW7du5fDhwzz88MPY7XaWLl3qibA9rjt5mjt3LtXV1Vx33XUopXA4HPz617/mqaee8kTI/cLFPr/r6+tpaWkhICDAS5F5n4zcCNFFK1asIC8vj48//hiz2eztcPqEhoYGsrKyyM3NJSIiwtvh9Gkul4uoqCjWrl3LxIkTmTNnDkuWLGHNmjXeDq1PKSws5KWXXuL1119nz549bNy4kS1btvDCCy94OzTRD8jIjQ+JiIhAr9dTVVXVrr2qqoqYmJgO94mJielSf1/QnTyd8+qrr7JixQq2b9/OlVde2ZthelVXc3TkyBGOHTvGzJkz3W0ulwsAf39/Dh06RFJSUu8G7QXd+V2KjY3FYDCg1+vdbWPHjqWyshKbzYbRaOzVmL2hO3l65plnyMrK4sEHHwRg3LhxNDU18dBDD7FkyZJ2D1QeqC72+W2xWAb0qA3IyI1PMRqNTJw4kYKCAneby+WioKCAjIyMDvfJyMho1x9g27ZtF+3vC7qTJ4CXX36ZF154gfz8fCZNmuSJUL2mqzkaM2YM+/bto7i42L3ddttt3HDDDRQXFxMfH+/J8D2mO79L1157LYcPH3YXfwDffvstsbGxPlnYQPfy1NzcfEEBc64gVPJIRGBgfn53mrevaBY9Ky8vT5lMJrVu3TpVUlKiHnroIRUaGqoqKyuVUkplZWWpxYsXu/vv3LlT+fv7q1dffVUdOHBALV26dMDcCt6VPK1YsUIZjUb1t7/9TZ08edK9NTQ0eOsUel1Xc/RjA+Vuqa7mqby8XAUHB6uFCxeqQ4cOqc2bN6uoqCj14osveusUPKKreVq6dKkKDg5WH374oSotLVWffvqpSkpKUnfddZe3TqHXNTQ0qL1796q9e/cqQP3hD39Qe/fuVWVlZUoppRYvXqyysrLc/c/dCv7444+rAwcOqNWrV8ut4G2kuPFBq1atUsOGDVNGo1FNnjxZff311+7Xpk2bpubNm9eu/1//+lc1evRoZTQaVUpKitqyZYuHI/aOruRp+PDhCrhgW7p0qecD96Cu/i6db6AUN0p1PU9fffWVSk9PVyaTSSUmJqply5Yph8Ph4ag9ryt5stvt6rnnnlNJSUnKbDar+Ph49fDDD6uamhrPB+4hn3/+eYefM+fyMm/ePDVt2rQL9klLS1NGo1ElJiaqd955x+Nx90U6pWR8TwghhBC+Q665EUIIIYRPkeJGCCGEED5FihshhBBC+BQpboQQQgjhU6S4EUIIIYRPkeJGCCGEED5FihshhBBC+BQpboQQ/d5zzz1HWlqat8MQQvQRUtwIIQRw7NgxdDodxcXF3g5FCHGZpLgRQgghhE+R4kYI0SesX7+e8PBwrFZru/ZZs2aRlZXVqfd49913SUhIICQkhLvvvpuGhgb3a/n5+Vx33XWEhoYSHh7OrbfeypEjR9yvjxgxAoAJEyag0+m4/vrrL/+khBBeIcWNEKJPmD17Nk6nk08++cTddurUKbZs2cIvf/nLS+5/5MgRNm3axObNm9m8eTNffPEFK1ascL/e1NREdnY233zzDQUFBfj5+XHHHXfgcrkA2LVrFwDbt2/n5MmTbNy4sYfPUAjhKf7eDkAIIQACAgKYO3cu77zzDrNnzwbgvffeY9iwYZ0aRXG5XKxbt47g4GAAsrKyKCgoYNmyZQDceeed7fq//fbbREZGUlJSQmpqKpGRkQCEh4cTExPTg2cmhPA0GbkRQvQZ8+fP59NPP+XEiRMArFu3jvvvvx+dTnfJfRMSEtyFDUBsbCynTp1y//zdd99xzz33kJiYiMViISEhAYDy8vKePQkhhNfJyI0Qos+YMGEC48ePZ/369dx8883s37+fLVu2dGpfg8HQ7medTueecgKYOXMmw4cPJzc3l7i4OFwuF6mpqdhsth49ByGE90lxI4ToUx588EFycnI4ceIEmZmZxMfHX/Z7njlzhkOHDpGbm8vUqVMB2LFjR7s+RqMRAKfTednHE0J4l0xLCSH6lLlz51JRUUFubm6nLiTujLCwMMLDw1m7di2HDx/ms88+Izs7u12fqKgoAgICyM/Pp6qqirq6uh45thDC86S4EUL0KSEhIdx5550EBQUxa9asHnlPPz8/8vLy2L17N6mpqSxatIhXXnmlXR9/f39ee+013nzzTeLi4rj99tt75NhCCM/TKaWUt4MQQojz3XTTTaSkpPDaa695OxQhRD8kxY0Qos+oqamhsLCQn//855SUlJCcnOztkIQQ/ZBcUCyE6DMmTJhATU0NK1eubFfYpKSkUFZW1uE+b775Jvfee6+nQhRC9AMyciOE6PPKysqw2+0dvhYdHd1ufRshhJDiRgghhBA+Re6WEkIIIYRPkeJGCCGEED5FihshhBBC+BQpboQQQgjhU6S4EUIIIYRPkeJGCCGEED5FihshhBBC+BQpboQQQgjhU/4f78igbydWebIAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "y_hat = train_metrics[\"train/y_hat\"].reshape(-1)\n", "sensitive_attr = train_metrics[\"train/sensitive\"].reshape(-1)\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "\n", "# Separate y_hat based on sensitive_attr\n", "y_hat_0 = y_hat[sensitive_attr == 0]\n", "y_hat_1 = y_hat[sensitive_attr == 1]\n", "\n", "# Create the distribution plots\n", "sns.kdeplot(y_hat_0, label='sensitive_attr=0', shade=True)\n", "sns.kdeplot(y_hat_1, label='sensitive_attr=1', shade=True)\n", "\n", "# Plot formatting\n", "plt.legend(prop={'size': 12})\n", "plt.title('Distribution of y_hat respect to sensitive_attr')\n", "plt.xlabel('y_hat')\n", "plt.ylabel('Density')\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.16" } }, "nbformat": 4, "nbformat_minor": 4 }