{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Introduction\n", "\n", "CausalML is a Python package that provides a suite of uplift modeling and causal inference methods using machine learning algorithms based on recent research. The package currently supports the following methods:\n", "\n", "Tree-based algorithms\n", "* Uplift tree/random forests on KL divergence, Euclidean Distance, and Chi-Square\n", "* Uplift tree/random forests on Contextual Treatment Selection\n", "\n", "Meta-learner algorithms\n", "* S-learner\n", "* T-learner\n", "* X-learner\n", "* R-learner\n", "\n", "In this notebook, we use synthetic data to demonstrate the use of the tree-based algorithms." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "\n", "from causalml.dataset import make_uplift_classification\n", "from causalml.inference.tree import UpliftRandomForestClassifier\n", "from causalml.metrics import plot_gain\n", "\n", "from sklearn.model_selection import train_test_split" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Generate synthetic dataset\n", "\n", "The CausalML package contains various functions to generate synthetic datasets for uplift modeling. Here we generate a classification dataset using the make_uplift_classification() function." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "df, x_names = make_uplift_classification()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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", "
treatment_group_keyx1_informativex2_informativex3_informativex4_informativex5_informativex6_irrelevantx7_irrelevantx8_irrelevantx9_irrelevant...x11_uplift_increasex12_uplift_increasex13_increase_mixx14_uplift_increasex15_uplift_increasex16_increase_mixx17_uplift_increasex18_uplift_increasex19_increase_mixconversion
0control-0.5428881.976361-0.531359-2.354211-0.380629-2.614321-0.1288930.448689-2.275192...0.656869-1.3153040.7426541.891699-2.4283951.541875-0.817705-0.610194-0.5915810
1treatment30.2586540.5524121.434239-1.4223110.0891310.7902931.1595131.5788680.166540...1.050526-1.391878-0.6232432.443972-2.8892532.018585-1.109296-0.380362-1.6676060
2treatment11.697012-2.762600-0.662874-1.6823401.2174430.8379821.0429810.177398-0.112409...1.072329-1.1324971.0501791.573054-1.7884271.341609-0.749227-2.091521-0.4713860
3treatment2-1.4416441.8236480.789423-0.2953980.718509-0.4929930.947824-1.3078870.123340...1.398966-2.0846190.0584811.3694390.4225381.087176-0.966666-1.785592-1.2683791
4control-0.6250743.002388-0.0962881.9382353.392424-0.465860-0.919897-1.072592-1.331181...1.398327-1.4039840.7604301.917635-2.3476751.560946-0.833067-1.407884-0.7813430
\n", "

5 rows × 21 columns

\n", "
" ], "text/plain": [ " treatment_group_key x1_informative x2_informative x3_informative \\\n", "0 control -0.542888 1.976361 -0.531359 \n", "1 treatment3 0.258654 0.552412 1.434239 \n", "2 treatment1 1.697012 -2.762600 -0.662874 \n", "3 treatment2 -1.441644 1.823648 0.789423 \n", "4 control -0.625074 3.002388 -0.096288 \n", "\n", " x4_informative x5_informative x6_irrelevant x7_irrelevant \\\n", "0 -2.354211 -0.380629 -2.614321 -0.128893 \n", "1 -1.422311 0.089131 0.790293 1.159513 \n", "2 -1.682340 1.217443 0.837982 1.042981 \n", "3 -0.295398 0.718509 -0.492993 0.947824 \n", "4 1.938235 3.392424 -0.465860 -0.919897 \n", "\n", " x8_irrelevant x9_irrelevant ... x11_uplift_increase \\\n", "0 0.448689 -2.275192 ... 0.656869 \n", "1 1.578868 0.166540 ... 1.050526 \n", "2 0.177398 -0.112409 ... 1.072329 \n", "3 -1.307887 0.123340 ... 1.398966 \n", "4 -1.072592 -1.331181 ... 1.398327 \n", "\n", " x12_uplift_increase x13_increase_mix x14_uplift_increase \\\n", "0 -1.315304 0.742654 1.891699 \n", "1 -1.391878 -0.623243 2.443972 \n", "2 -1.132497 1.050179 1.573054 \n", "3 -2.084619 0.058481 1.369439 \n", "4 -1.403984 0.760430 1.917635 \n", "\n", " x15_uplift_increase x16_increase_mix x17_uplift_increase \\\n", "0 -2.428395 1.541875 -0.817705 \n", "1 -2.889253 2.018585 -1.109296 \n", "2 -1.788427 1.341609 -0.749227 \n", "3 0.422538 1.087176 -0.966666 \n", "4 -2.347675 1.560946 -0.833067 \n", "\n", " x18_uplift_increase x19_increase_mix conversion \n", "0 -0.610194 -0.591581 0 \n", "1 -0.380362 -1.667606 0 \n", "2 -2.091521 -0.471386 0 \n", "3 -1.785592 -1.268379 1 \n", "4 -1.407884 -0.781343 0 \n", "\n", "[5 rows x 21 columns]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
meansize
conversionconversion
treatment_group_key
control0.5111000
treatment10.5141000
treatment20.5591000
treatment30.6001000
All0.5464000
\n", "
" ], "text/plain": [ " mean size\n", " conversion conversion\n", "treatment_group_key \n", "control 0.511 1000\n", "treatment1 0.514 1000\n", "treatment2 0.559 1000\n", "treatment3 0.600 1000\n", "All 0.546 4000" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Look at the conversion rate and sample size in each group\n", "df.pivot_table(values='conversion',\n", " index='treatment_group_key',\n", " aggfunc=[np.mean, np.size],\n", " margins=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Run the uplift random forest classifier\n", "\n", "In this section, we first fit the uplift random forest classifier using training data. We then use the fitted model to make a prediction using testing data. The prediction returns an ndarray in which each column contains the predicted uplift if the unit was in the corresponding treatment group." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# Split data to training and testing samples for model validation (next section)\n", "df_train, df_test = train_test_split(df, test_size=0.2, random_state=111)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "uplift_model = UpliftRandomForestClassifier(control_name='control')" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "uplift_model.fit(df_train[x_names].values,\n", " treatment=df_train['treatment_group_key'].values,\n", " y=df_train['conversion'].values)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "y_pred = uplift_model.predict(df_test[x_names].values)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "# Put the predictions to a DataFrame for a neater presentation\n", "result = pd.DataFrame(y_pred,\n", " columns=uplift_model.classes_)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Create the uplift curve\n", "\n", "The performance of the model can be evaluated with the help of the [uplift curve](http://proceedings.mlr.press/v67/gutierrez17a/gutierrez17a.pdfc). " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create a synthetic population\n", "\n", "The uplift curve is calculated on a synthetic population that consists of those that were in the control group and those who happened to be in the treatment group recommended by the model. We use the synthetic population to calculate the _actual_ treatment effect within _predicted_ treatment effect quantiles. Because the data is randomized, we have a roughly equal number of treatment and control observations in the predicted quantiles and there is no self selection to treatment groups." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "# If all deltas are negative, assing to control; otherwise assign to the treatment\n", "# with the highest delta\n", "best_treatment = np.where((result < 0).all(axis=1),\n", " 'control',\n", " result.idxmax(axis=1))\n", "\n", "# Create indicator variables for whether a unit happened to have the\n", "# recommended treatment or was in the control group\n", "actual_is_best = np.where(df_test['treatment_group_key'] == best_treatment, 1, 0)\n", "actual_is_control = np.where(df_test['treatment_group_key'] == 'control', 1, 0)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "synthetic = (actual_is_best == 1) | (actual_is_control == 1)\n", "synth = result[synthetic]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Calculate the observed treatment effect per predicted treatment effect quantile\n", "\n", "We use the observed treatment effect to calculate the uplift curve, which answers the question: how much of the total cumulative uplift could we have captured by targeting a subset of the population sorted according to the predicted uplift, from highest to lowest?\n", "\n", "CausalML has the plot_gain() function which calculates the uplift curve given a DataFrame containing the treatment assignment, observed outcome and the predicted treatment effect." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "auuc_metrics = (synth.assign(is_treated = 1 - actual_is_control[synthetic],\n", " conversion = df_test.loc[synthetic, 'conversion'].values,\n", " uplift_tree = synth.max(axis=1))\n", " .drop(columns=list(uplift_model.classes_)))" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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Zz9nAtRxhdFonsawmlWUfN+S/p0XZH/Hhj19us6cOXNw8uRJ97kdHbj77rvR0tICl8uFn//851i1ahWqqqpw++23Y+7cufj000+Rm5uLF154AWazGSUlJfje974Hi8WCuXPneq5rt9vxwx/+ECUlJRBFEb/97W+xaNEibNmyBTt27ICiKDh16hQeeughOBwObN26FUajEdu2bfMsukgIIWT40vek+BLOlwOqAlHXI2PPzgUMxkg3zb89UX/HYUpRFOzduxc33XQTAMBkMmHz5s3Yt28f3n77bTzyyCPoqWJcUVGBBx98EIcOHUJaWhreeustAMB3v/td/PGPf8SuXbs0137mGXeVw08++QTPPfccvvvd73oWczx16hSeffZZ7N69G7/5zW9gsVjw8ccf45prrsGLL74YrY9PCCEJh7U0Aj6L6PZbWwuE8+WaL1ZXA0Sxsn2gxNwezNEFVnvB7xjrqNgsBTOselxiwWazYcGCBTh//jxmzpyJpUuXAnCvzvzoo4/iwIEDEAQBtbW1qKtzz43Pz8/H9OnTAQAzZ87E+fPn0draira2NixYsAAAcOedd+KDDz4AABw6dAjf/va3AQDFxcUYN24cysvdkfHChQuRkpKClJQUpKamYsWKFQCAKVOmeHp/CCGE9IGqwvSXn0E6dghqZg5sjzwBnpXTr0sZXnkW8vYtYAGCFGXSDNh+/KeoTDfWJ+ZyWQZz+kyDriz1my5ty81D9PtbqMcl4npyXL788ks4nU5P78jLL7+MhoYG7N27F/v378eIESM8vSRGo/dHQRRFuFwuhFpTKtRrvtdijHm2BUGAoigD+myEEDIciSUHIR07BAAQmupgeOmpfl1HqD4Hw9ubAwYtACCeOQZ595v9bmfYVNUvKHHNXqzZFqrK/IaTqMclCvqak9JjMBZZTEtLwx/+8Afcc889eOCBB9DW1obs7GzIsox9+/bhwoULIc9PT09HamoqDh48iHnz5mHbtm2e16677jps27YNixcvRnl5OS5cuICioiIcO3ZsQG0mhBDiTyw7odmWPv8YXe0tQEp6n64j7e196Rdpzw44l98GML+1BgcNq6sBs1s92zwpBa5ZCyAf/MCzTzx9DOyS9znFGYNtZGwCF+pxiaIZM2Zg6tSpePXVV3HHHXegpKQES5YswbZt21BcXNzr+U8++ST+5V/+BTfccIMmkHrwwQehKAquu+463H///XjyySc1PS2EEEIGj74IG1NckA/s7NtFnA6/c9SRY6GMKwQXvI9msaYSQsVX/W5rOETd51Hyi6Dq6rOIVaWaniE+aixU48D+oO8vFmqYYahobW0N+CFaW1uRlpY24OsPRo9Lohmse6tHS9JHD93r6KF7HT0Rv9ecI+l7t4B1tmt2q6PzYf3d38PuGZEO74bpyV97L5uUgs6/vAIYjDD91yOQjnrXoHMuWomuB34yKM0PxLD1aRje8U7WcKxcC8cd3w74OT1tmns9Tnztroj/XKelpfndUOpxIYQQQsLEGi4FfJgLNVUQysOf8CDt2a7Zdl633DO12Ll4lfbYQ7sBW2c/Whse/UKKakERwBiUEOX8Y1HqvwcFLoQQQkiYAi1E2EPWBSPBsLoaSF8d1exz+QQryvQ5UDOyvcc77O7gJRI495tRpOS7UxfUguApDKFeizQKXAghhJAwhSrUJn26B7B29HoNed87mm2l8Aqo4yZ4dwgiXItWas8JI5G3P/Q9SNxkAc8ZDSB0r0qo3phIS+jARRAEOByOWDcj4TgcDghCQv/oEEJIQKF6XJjDDulwLz0jigvSx+9qdjkXrfI7zLnwJnCffBnx3OmgawkNhP7zqPlFQPfvdyVIr4o6IhdIShn0toQroadDJycno6OjAzabbUDXaWtrQ2pq6iC1augTBAHJycEWQiCEkATFuV/1WNc1iyF9ttezLe/ZDtfSW4JeQjz+KYSWRu8ljSa4rl3m/1YjcqFMnQ3pxGeefdLeHXCs+z8D+QT+7an0n1HkaUPOGHCTGcyufYbGMr8FSPDAhTGGlJSBR4V1dXUYN27cILSIEELIUMWaGyC0NXu2ucGIrju+A/HIPs9U4Z4Ks8Ee7vo8GNfc6wGzJeCxzsWrNIGL/MkuOO78x0FdH8ivx8W3l0UQoOYVQSw9rjlG0U2VjraEDlwIIYSQweL3kB9XCJ4zGsqVsyF9qesZWf/Pfuez5gaI3RV3e+hnEPlSrroOPCUNrL3Vfb61A69ufQ9Hit1VbU0iw015JszJMQJOB6SDH0C4cFZ7EUmCa8ZcqJNn+r9BgB4k/fCQUlDsF7ioBdTjQgghhMS9YA955+JVmsBFPtjdM6Ir0Cbtfw+MexdlVMaOhzrhiuBvKBvgnH8jDO+97NlV8Nl7eMA127P91xMd2HFTNha9+wTkj94OeBnDOy/B9uPHoFw5W7M/UA8Sz9WOLgSaPRTroSLKsCSEEELCoJ823PMAV66aD9Wn3D+zdkI6sk97sqpC3qudTeRavLrXgnX1c1dothe3nkKRtdZ7DQ5sPFwFaU/oWUfyh6/77QvUgwRB1OzT98ComTn4l5MMt7zXgP86J+OVs1Y02qO77h0FLoQQQkgY9KX+Pb0RkgzXghs1r+mnL4unvoBQX+PZ5rIM53U39PqeRwyjcSBVGzzcX7tXs51/dJemJydg2yv9Z0P1NkwEAHxMAVwz5nq2nSvvwseXurCvtgubL8p4cG8zTrW4ev0cg4kCF0IIIaQXrK0ZQlO9Z5uLEtQxBZ5tp67uinhGuyihfkFF16xFQHLvs1WPNTrxXO4Szb7vNn2Myd0TOxlX8Q+1ezSvO69bjq613wUXvdkgQlMd0NaibWOoxFwf9od/Ddv/+Q2s//YUWhavQWmrNlCZlin3+jkGEwUuhBBCSC/0vRPq2AmA5H1g89H5UIqnaY7x9Lp0tEL6/GPNa64lq8N632ONDryScy1aRbNnX3JnC34nu5cXWNb8FSbYfQIqWUbXvQ/DueIOdxt96AMVvx6kYLkrsgHK1QugFl6Bky0uqD6rA05IEZFmiG4oQYELIYQQ0ouQ04a7ORdrgxFp//uAywn5k11gLqf33JzRUCbNCOt9jzU6YRVNeHHkdZr9N5R9CKMIfKv2I81+1+zFnuJw+tk/voGKXw+SJEMdMz6s9viamW0I63MMJgpcCCGEkF74FWoLMCXYdc1icHOSZ1toa4b4xSd+w0TORas81WlDaelSUdnuTnx9Pnep5jXTyc/w/eRL+HrDEW0bfNc8ytcGV76fwa8HadwEQOp9orE+cJmRFd1hIoACF0IIIaRX/qXxA+SDGE1wzfuadtfWpyFWn/Nsc0GAa+EK/ZkB+QYJR1PG41RagWebcRW/+PgxGLk336TcPBJ1Bd7hKr8eF58E3bA+TwAlFLgQQgghca6zHUK9dwoyFwTtoog+nLrcFd+ZRACgzJwHnp4V1tseb9SutXd46nLNtqWpVrP9XO5SvHTW7tlWxxWC+/TsCPU1QPeCiuH0IOnZXRynm7WBy/QoJ+YCFLgQQgghIekf8urogqBl99X8Ir8hGl+hKuXqHWvSBgnt1ywDlwPnlLggYOPIhdhU2gnevfwADEaoo/M1x4ndCzX2p8flVIsTLp/E3FyjikyTGPyECIlK4MIYe54xVscYO+Gz798ZYxcZYyXdXyuDnLuCMXaGMVbOGPtpNNpLCCGE9PBPzA3dOxEsOFHTs6FMmxP2++rzSSaPyYDrmiUBj92efTUuG9NxusWFz+q9PTX6gESoLA3cgzS274m5k5JD146JlGj1uPwdQKBBvT9zzmd2f72jf5ExJgL4HwA3AZgCYC1jbEpEW0oIIYT48Etk7aV3wjXvevAAPTKd81fgvn2tuOa1y3jmVEfIa7Q7VZT71EthcNdL0Q9F9XjOJ3l3Y6nV21a/mUVl/vVbxowPa+HGY7qhq8lJCRy4cM73AWjqx6lzAJRzzs9yzh0AXgKwZlAbRwghhATDOcSKrzS7es0HsSTDNWeJ3+7fpCzAm5V2lLW68ONDrThS7/A/t9uJJid8RmVQlCYhWRagFk+DOkq7npAtNRvvZ073bL92zgZ795iOvhquWHnGPxALUnhOz68HKEY9LrFeZPEhxth6AEcA/Ihz3qx7fQyACz7b1QCuDXXBsjL/ssaDIVLXJf7oXkcP3evooXsdPYN5r5POl6K44ZJnWxVElDkZ1F7eI6lwJor3v+/Zbh4/BU/UJWuO+cuntfhlceDg5YMaCYA3n2W8we75XDlXzsUYn6q8zTPmIcPA0BNXWF0c7x8/iykpKgQHw3QwsO4wiNVWw/75Afj2r1yypKOhl8/jUoETjWa4+37cJierEfm5LioKHRjGMnB5CsCjAHj3fx8H8C3dMYFWn+IB9nn09oH7o6ysLCLXJf7oXkcP3evooXsdPYN9r40fvaLZVq+ej8Kp04Ic7aOoCI6WWsjvboWanYs3V/wIXae0j7TdTTL+J39cwMqzNZeaAXiHfBYUZKKoyF1YDuML4Gq+BLHkIJQpVyN1/UO4bn8H3q7yzihqThqFoiJ3TRmeOxas1h3oMHCknj2pea+sa+Yjo5d7dqLJCQev82znWgRkGSLzzO1NzAIXzvnlnu8ZY88A2B7gsGoAvn1iYwHUBDiOEEIIGVyd7ZA+26PZFSzHJBDHN78Fxy3rAUnCE2/VAdAOtVhdHK+eteFbk5P8zj3WoO2JmZHlM5tIkmH//qOAy+UpGjcjy6EJXEoaHMAk93WV/GIItd4eGqZ6h3g4Y1DzCnv9LCW6/JbpWdGvmNsjZtOhGWO5PpvfAHAiwGGfAShijI1njBkA3AXgrWi0jxBCyPAmHfoQzNHl2VazRkKZOquPF5FwrNHhV7itx8bSTr99VpeK07qFDAPWS/GpdKsvBOc7lTroGkQAeG4eYDQHfd1zvTgoPNcjWtOhXwRwEMAkxlg1Y+wBAP/BGPuSMXYcwFIAP+g+djRj7B0A4Jy7ADwE4H0ApwC8zDk/GfBNCCGEkEEk+5XqXwkIfa9bsslnlo9eSaPTb7bOV83ahQwLUkSkG0M/rvWBxMkmJ5zdFwmVfKuECGp8HdcHLjEoPNcjKkNFnPO1AXY/F+TYGgArfbbfAeA3VZoQQgiJFKGyVDNtmDMG18Kb+nwdq0vFy2e1gUuGkaG5yxuZbC61YsY879CLPpAJp3cjxywi1yKg1uoeBnKowOkWF6ZlyiGDk3BmFCkqx5dN/j0uttogJ0QYVc4lhBBCdOQ92rRLZdoc8KycPl/nzUo72hzeICXbJOBPc9M1x2w9a4XV5c078VuBOcx8khm64zwBUFIK1BGjA56jny4dSHmbC1aX9jOMSYp+xdweFLgQQgghvrpskA59qNnlXBx+Uq4vfQ7L2okW3JJvRrbJ+/htc3C8VelNrO1vPolfnovPdYJV+1XzJvZ63UDtYSzQpN/ooMCFEEII8SF9thfM5g041NQMKDPn9fk6Za1OHLysHfZZX2yBQWRYO9Gi2d8T4DgUjq/0Cxn2M3DxzUsJtH6SOnIMYEn2268XT4m5AAUuhBASUZesCk51MKg8ZAkqEkf0SbmuBSs0M3jCpU/KnTfSgKI090N/XZE2cPnksgMvlluxobQTTp+CtGOTRGSHuZChfqjoyyYnFE+Crn+PS6jFIH3pp0Lr3yfaYl05lxBCEtY7522458MmcJhxc3MTNi7NjGkXO+kdq6mCWPqlZl9fVnTu4VA4XijXBi7ri731WorTZcwbadD0yPzTx/ri8eH3tgDAaIuAbJOABrs78rG6OMraXJicLgecEt3bYpEAoHKOL6nHhRBCEp+icvzkUKun1PfbVXbsq+0KeQ6JPenz/ZptZfIM8FFj+3yddy/YPQEEAKTKDGsKTJpjfAOZYPoSJDDGgua58NQMqJkjNK/1tlgkABxtcKLN6e0tTDUw5CfHLjEXoMCFEEIiYm9tF6o7Fc2+jSHqeZD4IFae0Ww75ywNcmRom3RJubcXWmCRtI/cNQUm5IUIAmQB+Ob43ovD+fIPXLw9Oq75N3q+V7NHQSnufekC/edYMMoY815DGioihJAICBSkvF1lQ6NdQVaYOQsk+oQq7aKB6vjJfb7G+Q4XPryo7V1bX2zxO84iCXjlhiw8farTL8hNk90JvD05MeHynxLtHeZx3HwveFIKWH0tXMvWAAaj/nSNDqeKV8/aNPv0uTmxQIELIYQMsga7gh3nbX77HSqwtcKG707tfSYHiYHOdgj13qpqXBCgjh3f58tsKbNqVgOekSUHTWgtTpfx+Lz0gK/1h77H5ctGJ1TOITAGGE1w3nRn2Nd67ZwNHT71W0aZBdww1hTijOigoSJCCBlkL5ZbNTNDfG0q7QSnGUZxSaws1WyrY8b32iuhp6gcW8q0vW33hZHLMljyk0WkGbxDOW1Ojsp2JcQZwemHie4pskASYp9cToELIYQMIs55yLVpTrW4cKQ+8IJ7JLb8honCXMfH10c12twms8hw64S+5akMhDtBN0gF3T74qtmJz3Q/p+uiGICFQoELIYQMokN1DpT6rOwrMeCqVO1fvBsCrAhMYk/Q97iEUQ5fT/9v+/XxZqQZovuo1Q8XlTT0PVDWV/xdnGtEQUp8ZJdQ4EIIIYNIn5S7Ms+E9WO1D47XztnQ5ggylkRiRtT1uIS7cnKPOpuCd8/bNfvuC5CUG2l+M4ua+ha42F0cWyv0NWhin5TbgwIXQggZJK0OFW+c0yblri9OwtwMFaMt3l+3VhfH6+f8k3dJDNk6IVy64NnkjEHNK+zTJV4qt8InlxXFaRKuzYl+ldlAU6L7kle147xNs3p1hpFhdX70hrt6Q4ELIYQMklfP2mBTvL/wxyaJWDraCIkB9xRp8wNouCi+COcrNNt81DjAFH4vA+fcr7dtXbElJjVPClMlJEve923u4rjQGX6Crv5z3FVogVGMfVJuj/gYsCKEkASgD0buLbJA7J6FcW+RBY8da/dMkz3a4MTaDxohd//5mGkUsK44CbNGxHYdmOFKrNLmtxy0FODx3Y1hn29zcZS3eXObZAF+CylGi8AYpmXJmuUEjjU6kZfc+yP/XJsLe3UVnuMlKbcHBS6EEDIIjjU6NMW+GNzTR3vkp0hYMtqIj2q8D4V3L2jzIV47Z8OBr+dgXBgPGDK4hEptfsvrGIe3quxBju7dqjxz2IsjRsIMXeBS0uDAzWEM92wu0wbf14yQMSUjtmsT6dFQESGEDAL9FOivjTH6BSC91fNoc3JsOEPLAsSCoCv1/0VywYCuF4ukXF8zdVOi36i09Zrn4gpQgyac9ZSijQIXQggZIKtLxctntb/w7w3wC391vgkLR4UeCtpS3gmXSgXqoqrLDqHmvGZXSXJ+vy+3YpwJi0f3rXDdYLthrNEzDAkAFW0KDlwOXc9lZ7Udl2ze2W7JEsM3+rhWUjRQfyQhhAzQm5V2tDm8wcYIk4CbxvmXRpcEhtdvzMbhOodn5WCVczy8v8VTWr3WqmJXtR035cXfAyNRCRcqwLj3gV1uGolW2R14/nleOjJN4f+NP8osYPYIg7vEfgxlmUSszjPj9Urv7LWNpZ1YMCp4QKVPyr11ghnJcvz1b1DgQgghA6Qv1nX3RAsMQWZhSALDfN3D46OaLs1DY2OplQKXKNJXzP0ipQAAkGpg+IdJsZkZNBjum2TRBC5vVdrwH9eqSDf6ByM1nQp2Vutr0MTfMBFAQ0WEEDIgpS1OTRIk4J4G2xf6PIKd1XbUWvu3vgzpO/0aRT35LdMz5SEbtADAolwj8pK9CcJ2BXi5InAO1QvlVviOUE7NkHBVdnwl5fagwIUQQgZgky6Z8bqRBkxM69sv/FnZMqZkeDvAFQ68UEZJutGi73E5muJeETrYis5DhcAY1hVpg+gNARb5VDn3W1BxfXFS3AZtFLgQQkg/ORSOF8sHPguDMeZ33qayTqi0inTkOR0Qqs9pdvX0uMzMis8eh764uygJvgs6n2x2oaRRuwTAx7VdqOrw9vAZReCOwvgp8a9HgQshhPTTuxfsniRbwJ0Tsaagf7kpdxZaYPQp+1HZruBjXSEwMviE6nNgirdwXJUxC42GFAD+pfOHojFJIm4Yq00U33BG27uyQZeUuybfjIwAeTDxIn5bRgghcU6flHvnBAvMUv+61zOMAm7RFQjTz/Igg88/Mdc9TJQkMRSmJsb8lfW64aJXztrQ4XQH3I12BdurtOtmxVulXL3E+FchhJAo6FI4nGrPtGUFuy/qS6MPrHt9XXEStp31PkTerrKhusMVcBbIQIiM9TvASjTBEnOnZcqe5RqGuuXjTBhpFnC5u0ZLh4tjW4UNtxeasaXMCt+FyiekiFjQS62hWKPAhRBCeuFUOb69txlvV9k0q//6mpklY/oAkzkXjDJgfIqIc+3ufAOHCly57fKArhkIg3vGycZlmUgzDO+O92BToacnwDBRD1lguHuiBX/+ssOz7wcHW/CDgy1+x66L46TcHsP7J5YQQsLwzKlOvF4ZPGgBBqfmhRAgSTcSOIC9tV347y/bI/5ecc1mhXChXLPraHePSyLkt/gKZ/hHZO4aRPGOAhdCCAmBc46/65IZ9VINDN+cMDgF49ZOtCBaa/PtG+bJv9Lh3WBO7wybKmMWLhkzAPiv9TPUTUiVsKyXZQhuzjdjpCV2C0OGi4aKCCEkhMN1DpS2ujT7knzyQ/KTRTw6J23QhlxGWUQ8vSgTvz0bReCgAAAgAElEQVTahoudg1uEjgOw+nQbnWhywaVySAmSy9FX8t4dmu3NoxYCAEwiMCk98R6Pf12QgX/6uBlH6x3w7TwUGHBtjgGPzUuLWdv6IvH+ZQghZBDpp4renG/CpmVZEX3PNQXmfk+rDoVzjklbL6GuO0nTpnCUtrowJSOxhkXCIZyvgHj2lGbf/45aDACYmiEnZDA3JknEWyuyY92MAaOhIkIICaLVoeKNc9qpotHIQYkUxhhmZGqDlGO6YmTDhbRP29uyK+NKVJpzAAz9irmJjgIXQggJ4tWzNtgUb6f62CSx1zyBeKd/KB9rdAQ5MoE5uiAf2KnZ9VzuUs/3iZaYm2gocCGEkCA26ArM3VNkGfK1PfTTfIdjj4v0+cdgVu/U4CY5BW9lz/JsU+AS3yhwIYSQAEoaHJqHOoM7cBnqZupW/P2y0Tns1kSS9mzXbG8YuQAOwX1fZAG4Yhjm/AwlFLgQQkgAm3WrM18/xoi85KE/n2FckogMo7fXqMPFUdHmCnFGYmGXqiGdLtHsez53ief7K9JlGMWh3auW6ChwIYQQHatLxctntYFLvK/fEi7GWIA8l+EzXCTve0ezfWH0FTiVNNazTcNE8W/o//lACCGD7M1KO9oc3uGTbJOAm8aZQpwxtMzIlLGnxlt87lijE7dNiM5713QqOFzXhetGGvtU7OyLBgeqOxUsG21Ekhz4b+5TzU68WSshy+XOXxEUF/Iqv8AUZwPyk0UwxiDtf1dzzlvjl2m2KXCJfxS4EEKIjn7V57UTLTAk0PCB/uEcrR6XqnYXlr1dj8YuFWaR4dA3cpCf0vtjaGNpJ75/wL2uzryRBry9Ituvzsquajvu2NUIDgNQ0QoAePXL/8Saxs+DXpebLHg69RrAZ8Y7TYWOfzRURAghPlodKg5e1k4RXj/AVZ/jzcxs/ynRPAoJun/5sh2NXd7id8+eDr2UAuBe4PI3R9s82wcvO/D+BbvmGM45/v1Iq6Ya7KTOmpBBCwA0zlqKr2zeIE5gwNRM+ns+3lHgQgghPo7reh8mp0soSkus4YOCFBGpsrfHotXBUdUxuMsL6HU6VbxyVlvMr6Sh9xoy712weyr99tioS5z+osGJk83aBONZ7WdDXpcbTXi2YKVm39wcAywSPRbjHYWWhBDiQ1+QLRFzHgTGMC1LxoFL3s96rNGJgjCGbfrrjUob2p3aXp1jTU5wzsFY8GG4TaX+vTK7qu2o6VQwOsmdI6Mf2rsiXcL6pouafYdSJ6ImpxCr882AyQzb7CX4y+FUAN6gKFESsBMdhZaEEOJD3+OSaKsE9/DPc4lsBd1NujWfAKCtl56e6g4XPrjov4K1yoEtZe5gpSNAT84jV6diqaNKs+8/x67EHWPX4+Sa78Fxx3ewXchDg90btKQaGNYUJE4CdiKjwIUQQnzoE1UTsccFCFT6P3IJuqdbnDhUFzgwCvW+W8qtUIOk3mwqs0LlHG9U2tDhs+J1tkHFjWMMEKrKNccfTRnvPq87gNL35NwxwULDREME/SsRQki3DqeK0lZtrsS0hA1c/GcWRSpBN1Bvi/d9Awc0ispDnne+Q8Hemi5sPKM9ZnWOArmhFszmDUyaJQsqTSMAAC+UW3G2zYUPdT056xIsATuRUeBCCCHdTjQ5NTNTJqZKSAlSM2SoK0qVYJG8uSUNdhU1VjXEGf3TpXC8VB4qcAnc47KntgvVnd5hJLPIcKOuls6vPm/Dp/XawGfNSBfEqlLNvuOp44HuPJoGu4pv7WnS/DvPzJJpGvQQkpj/RxJCSD8Ml2EiABAFhmmZ2s8XziyfvnrnvM0zBRpwrwWkfc/APT36hNs1BSY8NDVZe67u32tRrhFjzRxCZZlmv2NcUcjz1lNS7pBCgQshhHQbToELEGCl6KbBz3PZqBvu+YfiJCT59PQ0dqm42KlN0K23KXjnvLZWy/riJCwYZcCElODVdnvq7Qi6Hpf8aVcEPcciMdw6wRz6Q5C4EpXAhTH2PGOsjjF2wmffnxhjpxljxxljrzPG0oOcW8kY+5IxVsIYOxKN9hJChif/qdCJPXwQ6Qq6le0ufFSjzSW5b1KSX0+P/n1fKrfC6TNqVZQmYd5IAxhjQXtHMowMq/PMAOcQdT0uY6ZNwcwgQejXC8xIM9Df8ENJtOq4/B3AEwA2+uzbBeBfOecuxtgfAfwrgP8b5PylnPOGyDaREBLPXj9nxYvlVlyVbcBPZqRAFPxrf3x00Y6nT3WiMFXCI1enwiyFX6bf5uI43aJNzE30Hhd9YLa3xo5lb9cBcFeRvTbHGPQ+fl7vwF++bEe2ScAvrk5FplGAvP0FSMcOAi73fUyzKjho9famWCSGyVUyNncqqLd59486JcLss27RqmYnvqZ4h4/GJImwHHe//i8qx43dPUMqGA6mFeOR8XfgzsIMmCQGQ2sjWKe30i43mcFzxuC+YhtKDrb4fY5Eq4o8HEQlcOGc72OMFej27fTZPATgtmi0hRAy9Bytd+CBvc1QObCzugtJEsP3p6Vojqlqd+Ge3U2wdk+Ndaoc/zE3YEduQF81O+HzrER+soh0Y2L/JT45XYJRBLq6Ywi7Ahxt8PZ+HKl3BryPrQ4Vd37Q6KmDUmdTsRUfw/jKM5rjxnV/aTQDBXB/ebRrD5muP8fndRHANT4vXdteAZErmPPNHwMAzJfOa05V84oAQcCtE8z4+Wetnp8PAChOk3BtTmL3qiWieKmc+y0AW4O8xgHsZIxxAE9zzv8W6kJlZWWhXu63SF2X+KN7HT1D5V4/XmqAyr2/rp443oLlxkvwXffwyUoZVpe3h2TjmQ6sTatHcpi/5XbVSgC8D7FCY9eg3p94vddTkoz4oi143kig+/hqrYQGu/de7aiywXX8xUg2M6QHL+1Bac1qlDWakVurLTzXmD4CF7vv/bJMA7bXeT/ITRlWlJdr672QvonEz3VRUVHI12MeuDDGfg7ABWBLkEPmc85rGGM5AHYxxk5zzvcFu15vH7g/ysrKInJd4o/udfQMlXvd0qVi98FLgM8E1jqHgAuWcbhhrHt6rEvlePfzS/At325XGY4Jo/EPReHNGKmtawbgTSSdn5+JoqKU4Cf0QTzf69+lduHODxrR5ghcwyXQfXzvVB0Ab8/MwtbTSG6+HOmmBmVWHJhUXwXX0puhvKjtcUmdMQeW7nv/pzEKSrbXo7pTwTUjZPx04eg+DScSrVj9XMc0cGGM3QdgNYDreZDKR5zzmu7/1jHGXgcwB0DQwIUQklhePWeFTfH/9bDhTKcncNlVbcclm38Nkg2lnfiHSeEFLvoE0ZnZiZ3f0mPeSCNK78zFV83eGjYvlVvxjM/Kzb738Vijw2868bdq92i2O6+8FsuNqzRVb/86Px1TMrz39Lv7m3HGJ6fod3PScMnqwn+f8L5vjlnAlmWZEAKsZSQdeB+GD9/wbMt7t8O1ZDUsl7Q9LmqB98GaaxFx7LaRuNCpID9ZDLlGEolfMQtcGGMr4E7GXcw5D1idiDGWBEDgnLd3f78cwK+j2ExCSIxtOBO4eNl7F+y4bFUw0iL6Tbnt8UWDE8cbHZjey+wgh8LxVbP2YTw9c3gELgBgkhiuHuG9R9kmAc+e7vQEMr73cbPuXqc7O3Fb/WHNvtcnrcLhxkLP9hXpEibNyoHqEyjIl5vxmc+/7R5zCt6us+N4qvff4aczU4CJqQhUFs+Zmg5595tg3X/ziufOQDx+GHKnNyGGG4xQc/M054kCi+hikiTyojUd+kUABwFMYoxVM8YegHuWUQrcwz8ljLH/v/vY0Yyxd7pPHQlgP2PsGIBPAezgnL8XjTYTQmKvpMGB40Fqi7g48FKFFbVWBTur7QGPAdxr2vTmVIsTDp+n4xiLiBHm4HkfiS4/RcLS0UbNvk1lVlhdKrae1d7PtXUHYFa9/0Zq1kj8umui5pj1xUl+vRv6GU0vVVg1/9YMwL1FwWf88BG5UKbO1uwzbnlCs62OKwREClISTbRmFa0NsPu5IMfWAFjZ/f1ZADMi2DRCSBzTBx0m0T3zpcfG0k44VWhmA+mPebnCil/PTguZy6AfJtIXZhuO1hcnYbdPDZaXK6yYmiFrcmFMAscDNR9pziuZdgPOdniPMQjAnYX+Bd70U80r2rRF6L42xoixvWRWOxevgnTiM8+2cLla87pSUBzyfDI0JfZcP0LIkGV1qdhWoQ1c/nBtOnxrhVW0Kfjzce1c2p9flYosn2nMrQ6Ot6psId/r+DCrmBuOlXkmv/v4809bNcf8KvsyZnZ6k2EVMNzjulZzzM35ZmSa/HuvpmTICJUXuy6MMvzK1fPBU9KCvq7mx2dCNBkYClwIIXHpjXM2tDm9f7mPMAm4p8iC1fnav947fepyGEXg3uIkrJ2oHWLQr3uj518xlwIXg8j87qPvvQaA+y7u1my/lzkDZVKmZl+wAm9GkeGKjMD3eYRJwArdgooBSTKc828M+rJKPS4JiQIXQkhc0g8T3T3RAllgISud3pJvRoZRwDrdMQcuOVDeGiRXRuU40aStmDszm4qSAfC7j76WZqnI+lw7TPRc7lLNdkGKiIW52lwZX8ECxLsnWmAQw5vx41y8KuB+LslQxxSEdQ0ytFDgQgiJO6UtThy8rO0F6VmjZlGuEXnJgRNne4YXJqXLmDdSG3w89VUnTrc4/b4+uGjXTLfOMQsYZaZfjUDg+9jjEedRMLs3uLwkp+GdrJmaY9YVJQWcytwjWOASKmDS46PzoRRP89uvjh0PSNRzlogo3ZoQEnf005vnjzKgMM3960pgDOuKLPjtF9rclvEpIhaM8j5k1xVZNMHPc6c78dzp0ENGADAjU6b6Hj709xEAUg0M877aqdm3cdQiuATvI0VgwN0hZgUBgQOX60YaMDGtbwGHc/EqiKVfavap+TRMlKjozwpCSFxxKBwv6ZJy9SsC31OUBP0ai+uLtX/drykwI1XuewCS6CtC91Wg+/j9jEYYyk9q9r0/cZlme/lYE3ItoaeUT82QA/479pXrmsXgZu15SgEl5iYqClwIIXHl3Qt2z+J9AJBmYLhFl5A7OknU7EuW/BNJk2QhrJkpeivzwkgKHUb091FiwHcu79Eco0yegeXXaAOF71zR+71PkgVNvZhci4A1Bf5Tp3tlNGtyXbgkQ5k2p+/XIUMCDRURQuLKhjPa4Zw7Ci0Ba7D8+bp0WCSGGquCf56WjFEB/rr/xdWpcKgcB2q7EGDVAI1UA8O64iRNBVni1nMfTzU78e2JBoz6rw80rzsXr8Y/TUlCs13FgctduH2CBUvHhBcAPj4vHY9+3gabwvGTGSn9XjvIcfv/BygKukpPQLp5LfiI3H5dh8Q/ClwIIXGjqt2Fj3yKngHBhw4yjAKeXJgR8nomieFPc9MHrX3Dle99lA5/BNburefCLclwzV4EgTE8Miu1z9cuSJHw3JLM3g/sjSTDce/DKI/jBS3J4KChIkJI3NhSboVvx8hV2TKmDaM1g4YCae8OzbZz/nLAEHzKMyGDjQIXQkhcUFSOLbrZRPf1I0eFRA6rr4V08ohmn2tR4DoqhEQKBS6EkLjw4cUuXLR616uxSAzfHN+PRE0SMfK+dzTbyvjJUPMKgxxNSGRQ4EIIiQsbdGX5vzHejFQD/YqKG4oL0sfvanY5l6yOUWPIcEa/FQghMXfZquC9C3bNvvW9FC8j0SV++RmE5gbPNjea4Lp2WYgzCIkMClwIITH3YrlVM115crqEOTk0LTmeyHu3a7Zd1y4DzBRckuij6dCEkH7hnGP/JQf21NjhUrWvzciSsabADFFfFjXIdfSrN68rTqKy+3GEtTRCLDmo2RdscUNCIo0CF0JIv2w/b8e63U1BX/9RsxO/mJXW63UOXHbgbLs3KdcgAHcVUlJuPJH2vwemeqNTZUwB1MIpMWwRGc5oqIgQ0i9Pf9UR8vUnT3ai1aGGPAYAdl/U5raszjcjyxR6jRsSRZxD1tVucS1ZDVCPGIkRClwIIX2mco7jjc6Qx9gUjlfOWkMeAwDHdNdZPpbWCoon4ukSCHU1nm0uyXBed0MMW0SGOwpcCCF9VtWuoM3pzaZNkRn+fVYqVukWKNxYGjpw4Zz7BS4zs6lSbjzRV8p1zVoIJPc+BEhIpFDgQgjpM32wMSNLxj9PT8Efrk0D0x1X0uAIep0aq6pZCdoiMRSlUupd3Ohog3Rkr2aXi5JySYxR4EII6bNjjdpgZGaWe+ryuGQJ14/RrluzuSx4r4v+OtMy5bBmIpHokD/ZBeb0BqnqiNFQrrgqhi0ihAIXQkg/BOpx6aFfzfnls1ZY9fOlu5XorjM9i4aJ4gbnkHS1W5yLVwICPTZIbNFPICGkTzjnfgGHb+CyYpwJI0zeXy1tDo43K7Uzh3qECoBIbAlnT0OsPufZ5oIA14IVMWwRIW4UuBBC+qS6U0FTl7cHJUliKPTJSzGIDGsnaiuq6gvM9TiuGyqakUXVcuOFvlKuMmMeeEZ2jFpDiBcFLoSQPtH3kgTKS1lfrA1cDl52oLRFe95lq4JaqzcAMoruUv8kDtiskA59qNlFlXJJvKDAhRDSJ/rAJVBeysQ0GdeN1PaebNIl6R5v0l5naoYMmRJz44L06UdgXd7hPTU9C8r0OTFsESFe9OcNIaRP9MM7M4PkpawvTsInl73HvlhuxS+uToVBdAcn+mnSlN8SHfL72yDvfguwBa98zKzaoT3XwpsAkR4XJD5QjwshpE/8E3MD56WsKTAj1eDtQWmwq3j3gveveP/EXMpviTTxq6MwvvA/EC5dgNDaHPSLObVBpXPRyhi1mBB/FLgQQsJ2yargss2bl2ISgUlB8lLMEsOdE4In6R5rohlF0SZ/+Eafz3FNnQWeMzoCrSGkfyhwIYSETd9LMjVDhhQiL2WdLkl398UunO9wocmu4EKHd0VoiQFXpFPgEkmstQniFwf6dI46cgy67vtBhFpESP/QoCUhJGz6Sre9De9MzzJgZpbsGV7iALaUWTFPl7g7OUOGSaLE3EiSDuwEU7zBopqbB9tP/xz8BEEAT0mnVaBJ3KHAhRAStv4siHhfcRJKDrZ4treUWWHQ9dIES/Alg4RzyLrFEp2LV4GnZ8WoQYT0Hw0VEULC5jcVOrP3gOPWCWZYfHpTqjsVPHNKO6OF8lsiSzhzHMKlC55tLkpwzr8xhi0ipP8ocCGEhKXRrqC60zvUIAvAFRm9BxypBgFfLzBr9l2yadcuosAlsvS9La6rFwCp6TFqDSEDQ4ELISQs+t6WK9JlGMXw8h/u0yXp+hKYO8mXREhnO6TP9mh2uagKLhnCKHAhhIRlIAsizskxYFJa4JS64jQJSTL9KooU6dCHmrosavZIKFNnxbBFhAwM/bYghIRlIIELY8xvanSPQEsGkEHCOeQ92sUSnYtWAQL96idDF/30krjlUjmONTrgVHmfzmuwK/iq2QnO+3YeCU0/FXpmdt8q3a6daEGgjpWZVDE3YoTKUojnyz3bnAlwLVwRwxYRMnAUuJC41O5UMfu1y1j8Vj1mbruM5i6195MA7LxgR/FLl3DdG3V4cG8zBS+DpKVLxbl2b2Ku2I+8lCyTiNV5Zr/9lJgbOfqkXGX6HPDMnBi1hpDBQYELiUt/P92Jyu4H5UWrgqe/Cr4gXA+Vc/z4UAt6OmhePWfD/kuO0CeRsOyt7dJsT0qTYO5Hwbj1AYaLpoUxpZr0Q5cN0sEPNLuclJRLEgAFLiQufVavDTg+r+89ANlX24UqnzLyALCptDPI0aQvNuvu4/xRxn5dZ/Foo6b2y/KxRqQa6NdQJEif7gGzWz3baloGlBnzYtgiQgYHVc4lcUmfCFrS6M5ZYSHKj28stfrte7PKhv/oUpFupIdjf1V3uPDBRW2Pyz1Fwac3hyIwhheuz8T/nOyAwBgevjJ5MJpIAvCr3bLgJkCiX/lk6KOfYhJ3WrpUv56TeruKSzYVuRYx4DmNdgXbq2x++7sU4OUKK749hR6Q/bW5zArfTKHpmXKfE3N9jU2W8PtrqfhZJLGaKohlJzT7nItWxqg1hAwu+jOUxB19b4t3f/DhopcqbHAEyd/dUNpJSbr9pKgcm8u0PVmB8lRIfPHrbZk8E3zU2Bi1hpDBRYELiTvHgwQowQIaznnIXJaTzS580RD4XBLantouTZl/s8hw2wQKXOKa0wH5wPuaXa4lq2PUGEIGHwUuJO6UBAlQSoIEH5/WOXC6xeXZlhgwZ4R2KGMjJen2y4Yz2vu2psBE+UJxTvziE7D2Vs82T0qBa9bCGLaIkMFFv4FI3AnWs3I8yP6NuqGMFeNM+D/TtDktr5y1ocMZXi0Y4lZvU/DOebtm332TkmLUGhIu/TCR87obAEP/ZoEREo8ocCFxpcMFlLe5Ar520aqg3qZN2m1zqHj9nDYp975JSbhxnAmjzN4f7w4X9zuOhPZSuRUun9SgojQJc3Ooym08Y/W1EE8e0exzLaLaLSSxRC1wYYw9zxirY4yd8NmXyRjbxRgr6/5vRpBz7+s+powxdl+02kyir6wz9I/k8SZtr8urZ22w+jxdx1hELBtthCQw3K2bsrspwHRpEhjn3K8na32RJeR0dBJ78sfvgvkkoisTroCaVxjDFhEy+KI5HfrvAJ4AsNFn308BfMg5/wNj7Kfd2//X9yTGWCaAXwKYDYAD+Jwx9hbnvDkqrSZRdbojdOByrNGJ68eYPNsby7Q5GPcUWyAK7ofruqIk/Odxb8XdT+sdONXsxBV9LFU/lNTZFPztVCfO6XqtjCLDzfkm3BSg5D4AHL7chZcqrGhzuB96VhdHWav3GrIA3DWRknLjmqpA2veOZhdVyiWJKOzAhTG2HMBMAJrkAc75v4VzPud8H2OsQLd7DYAl3d9vALAHusAFwI0AdnHOm7rbsQvACgAvhtt2MnSc0fW4FKaKqGjzDg/5Tok+3ujQzBZiAO7xebiOT5WwKNeIfT7l6jeWdiZsDRHOOdbtbsLhusCzsl4ot+L15VlY6hP4AUB5qxPf2Nmo6bnSW5lnwghz4Bo6JD6Ixz+F0Nzg2eZGE1zXLothiwiJjLACF8bYEwDuAPARAN/+44EWxxjJOa8FAM55LWMs0OpfYwBc8Nmu7t4XUFlZ2QCbFN3rEq3THdqH6k2ZNjzR5s2rOHLJirKyJgDAXytkAN7ek2vTFTgunUPZJe/5y1NF7Kv1Jia+UNqBe9PrkYhV5o+2CjhcZwp5zO8/rcPYK72BXFlZGf5UIcPqCt0LdX1Si+e+k/6J9O+Q8e9shW9/WtPkWThffTGi7xmv6Pd19ETiXhcVFYV8Pdwel7UAZnLOL/R65OALNKgeNGDq7QP3R1lZWUSuS7SsLhXn9tdo9j18bR6eqroEpftf/KJdwIi8QhhFhvc/rYXvj8I/zhyBovHaoZBx4zker6xFc5f7uFYXwxl5DL6ZgLVIHtvXBCB0AvKnLSLkUeNRkCKhrKwMY8dP9LuPesvHGnHvNaMhUH5Lv0X6dwhraYSl7Lhmn/mWu1E0cfj93qLf19ETq3sd7t+djQBaIvD+lxljuQDQ/d+6AMdUAxjnsz0WQE2A48gQd7LJBdUnTh2fImKkRcTkdG18fbzJibeqbJ58DADIMgpYmeff22CSGO4s1AYp+qTTRNDSpeLNSm3Q8sjVqXh2cQamZmjvn28l3LeqbGjV3cdnF2d4vt5ekY0Xrs+ioCXOSfvfA1O90/2VMQVQC6fEsEWERE64gcvjALYwxuYxxib4fg3w/d8C0DNL6D4AbwY45n0AyxljGd2zjpZ37yMJRl/Sf0aWQfNfz3ENDr/CaGsnWmAQAz9c1xVpa4/sqelCZXvgKddD1bazVth9ZoqPSxbxw+nJuG2CBd/RrdO0pawTLtUdrOgL862daMFtE7xfC3PdM7RIHOPcv8T/4lUABZskQYUbuDwFYDWAAwDKfb7CHtxijL0I4CCASYyxasbYAwD+AOAGxlgZgBu6t8EYm80YexYAupNyHwXwWffXr3sSdUli0Reem5Ela/7b47VKGz65rA1yQq2fMzVTxuwR2mtsTqCp0ZxzbNB9nnVFFk8vyTfGm5EkeR9itVYVH1y0o8rGcOCS9j6uo3WIhhzxdAmEOm8nNJdkd9E5QhJUWDkunPMBpzJyztcGeen6AMceAfCgz/bzAJ4faBtIfAs3cNGvOzRvpAHF6aGTS9cXJ+FIvXe0c0t5J356VUpC9CaUNDpxwqe+jcCAe3x6mVJkAd8cb8YmnyGijaVWZCva//3njTRgUi/3kcQfSd/bMmshkJKYM+cIAahyLokTXQrHqZbAgcuVmXLADO0e64p67yX45ngzknW9Druq7SHOGDr0wz03jDFiTJJ26vL6Yu1w2fsX7HjzsjZwCec+kjjT0QbpyF7NLhfVbiEJLmjgwhh7z+f7jxlj+wJ9RaeZJNGdanbCdymhsUkiskzuh2+yLKAoLXDnYKrM8PXxgYuq+UqWBXxzgva4jQkwXNTpVPHKWW1S7rpi//WEZo+QMcUnyVnh7hlWPVJlhjUFvd9HEl/kgx+AOb0BvzoiF8oVV8WwRYREXqihIt8Kt89GuiFkeNOX8tcPD83IklHa6p9Qe3uhBRYpvI7D9cVJmmBlZ7UdtVYFuZahW1jt9Uob2p3eWUE5ZgE3jvOfXcUYw7riJPzrp61+rwHAbRMsSJKpA3ZI4RzSnu2aXc7FqwCB/h1JYgsauHDOX/D5fkN0mkOGq5KG0IHL9CwZ28761yjpy/DGrGwZUzIkfNXsDoAUDrxQZsWPZqT0o8WDT+Ucrj4uYK1ff+meiRbIQfJ27iw045dHWuEI8B6hkptJHFFcQPdaRMK5MxCrz3pe4kyAa8GKWLWMkKjpS8n/kQDmAMiGT1G47sRZQgYk2FToYNvufTJmZoe/WjFjDOuLk/DTw95eh01lnfjB9OSY1yn5y/F2/PnLdk1NldtTVw4AACAASURBVP64t8h/mKhHpknEzflmvKpbJXt6Zt/uI4kBRxdMTz0K8dhBMEUJeIgyYy54RnaUG0ZI9IXVp8gY+zqACgC/BvA0gIe7/7suck0jw0WHU8WJ5l56XDL9Z7v0p5fgzkILjD4jQ5XtCj4LsrZPtHxe78C/f9424KBlwSgDCoPkAvUIdM+otyX+ybteg3R0f9CgBaAFFcnwEe5g6G8A3M85vwpAZ/d/vw3g84i1jAwbr52zocvn9/HYJBGjdHkn6UYBs7K9wUuqzHBbP8r2ZxgFrNDlgHyuG6aKtr/riun11wOTg/e29FiYa9QkOqf08z6S6BJPhv5Vq2bmQJlxbZRaQ0hshRu45HHOt+n2bQCwfpDbQ4Yh/XTeuwoDP0gfn5eOq7Lds2OeX5KJtH6ulDgnx6jZ1g9TRVO7U8VruqEbiQGyEP5XhpHh+1cm4+thzAoSGMOzizMwM0tGnlnFM4szkG6kZM64xjnEqlLtLlEEFyVwUYKSVwj7934JiGGP/BMypIX7k17HGBvJOb8MoJIxNg9AA4ChOx2DxIWTTU4cqdf2eNwbZOhiZrYBH90caAHxvtEPQx1vjF2Py2tnbeh0eYeIRlsEHL99VEQL483IMmDPLTnuBdLG0RToeMea6sA62jzb3GRG51M7aPYQGbbC/cl/BsCC7u//DOAjAMcAPBmJRpHhY1OZtrflmjQFBSmR/ctxmi5f5kyrC9a+TucZJPrepruLkhKimi8ZPMI5bW+LmldEQQsZ1sIt+f9Hn+83Msb2AEjinJ+KVMNI4rO7OLZWaKfzfn1U5Bc/TDMImJAi4my7O7FG5cCJJqffEFKknWhyavJrGKh6LfGnHyZSCopi1BJC4kO/wnbO+XkKWshAbT9vQ3OXd5gkw8iwJCv4rInB5LfidAyGi/S9LUtGG5Ef4d4mMvQIVdq1bNX84hi1hJD4EDJwYYzdwBj7s8+2jTGm+Hx9LfJNJIlKX3L/rkIL+plv22czs7XDRdEOXGwBeptoWjIJRKjUDRVRjwsZ5np7TPwzgHd9trsAFHd/3QfgBxFqF0lw59pc2FfbpdmnXwgwkvQJutEOXLZX2TR1W7KMAlbmUaIs0WItjRBamzzbXDZAzc2LYYsIib3eApfpAHb7bHPOeQXnvALASwCmRaxlJKHpk3LnjDDgigz/InORoi9od6rZiS5lYAXg+sJvCvhEC4wiJeUSLb/elrxCmvZMhr3e/g9I121P8PmeAcgc3OaQRFDe6sTByw6oIeKALWXaYZJ1UR4myTSJGJcs4kKHO6fGxd3By0BL33POcaTeiU6XivmjjAHXDTrb5sLHl7S1Y2iYiASiD1yUgkkxagkh8aO3wOUigJkAjgAA57zZ57WrANREqF1kiNp90Y5bdzaiL30XKTLDN8ZHf5hkRqbsCVwA93DRQAOXx46147dftAMA7ig042+L/GP7Tbrelrk5BkxKj15vExk69DOK1HzKbyGkt6GiFwA8xRjL9d3JGBsN4AkAmyPVMDL0cM7xb0fa+hS0AMCt481IlqNfl0Kf51IywAq6LV0qHjve7tl+ucKG47prOlWOF8pj29tEhg6hUjejqIBmFBHS29Pi9wBqAZQzxnYzxl5gjH0EoBTA5e7XCQEAlDQ6caKpb0muZpHhn6YmR6hFoel7VwaaoLu1wqpZcwkANumGxN6/YMdlm7fYXYrMwirVT4ahthYITXWeTS5KUMcUxK49hMSJkENFnHMngFu6pz1fDyAbwGEAv+Oc74pC+8gQok84LU6TMHdk8KGXZJnh1vGWmA2T6HtcTjY74VR5wLyU3nDOsaHUf7HElyus+PXsNJgl9zX1w0S3TTAjKQa9TST+ifr6LWMnABINKRISbuXcDwB8EOG2kCGs06nilbPaxQL/bVYqVufHb29CjllErkVArdXdA9KlAGdaXLgys+8Phy8anPiq2b/qb6uD460qG+4stOBip4JdF7VTwO+L4hRwMrRQ/RZCAqM/9cigeKPShnanN7slxyzgxnGmGLYoPNP9Kuj2L89F39sU6LUtZZ2amVbTMmW/Xh9CeviV+qeKuYQAoMCFDBJ9Fdx7Jlr6NeQSbYNRiK4jQG+TrwOXHChrdfrlu6wvtoCx+L9HJDYoMZeQwChwIQN2usWJw3Xanop7i4bGEMiMzIEHLq+fs6HD5e1KGWkWcM0I7XX/6eNmzdRrkwjcPoFmE5EgOtsh1HurTXBBgDpuQogTCBk++hS4MMbGMcbmRqoxZGjapOttWTDKgMK0oVHdUz+z6MsmJ5RQlfMC0H/+e4osuH+SNnA7Uq8NiNYUmJFupL8bSGDi+XLNtjq6ADBEd/VyQuJVWL85GWN5jLEDAE6jO0mXMXYbY+zZSDaOxL8uheMlXV2SoZRwOtoiINvk/d/A6uIob/NPsg3mVLMTn9Zre5vWFSVhTYEZqXLwYaBorstEhh5KzCUkuHD/5HsawA4AKQB6/nTcBeCGSDSKDB3vnLehsctblyTdwHBzHM8k0mOMDSjPRZ+UuyjXiPGpEpJkAbcXBh4Kmpgq4boQ08QJ8QtcKDGXEI9w+/PnAFjFOVcZYxwAOOetjLG0yDWNDAX6pNw7Ci0wSUMr4XRGlowPfaYp//rzNjx32h2QJMsMd0+04NYA+ShdCsdLFf4Jtz3WFVk819Efk6hJucK5M5DfeQlCU71mPzeb4VqwAq6518eoZYOPtTTC8MbfIVw4p31BEuGaMQ/OFXcAQv+GA/1mFFGPCyEe4QYulwFMhLtiLgCAMTYFwPlINIoMDdUdLnxUo61LMhSHQGbopkRXdyqo7vQm0u6+2IUxSSLmjtTmGOyosqG5y5sPk2FkWJ3n7W2amW3A9EwZx32qCUvMvRJ0QrJZYfrzv0JobQr4snjiCNTMHKjFibGovPFvv4N08vOAr4mnj4EnpcC1eFXfL2ztALtU7dnkjEHNm9jfZhKScML9c+AxANsZY/cDkBhjawFsBfDHiLWMxL1DuplEV2XL/SreFmuzsmWEmrnNATz9lX/PyQZ9b9ME/94m/arPN+WZkGMW+93WeCYd+jBo0AIAjHPIO1+NYosiR7hwNmjQ0kP6dE+/ri0d/giMewNinpsHmBI02CWkH8IKXDjnzwP4CYDbAVwAsB7ALzjnWyLYNhLn9Lkgi3OH5qyHsckSHu5lvaTt521osHt7YSrbXdhbq6uCO8m/t2ldcRLmdeezZJsE/Hp24o6uynt39HqMdHQ/0NYShdZElhTGZxUrzwC8r0uO+t9H1zWL+3wNQhJZWENFjDGRc/4GgDci3B4yhJQ0aHtchnIV2F9dk4ZvT0nGhQ7vjKLv7W9GRZs7WHGqwEvlVjx0ZQoAYLOut+WaETKmZPh/fqPI8M5N2ahocyEvWYJBTNDclvPlEM+d9mxzxmD/59+BW5JhevaPEC67hz6Y4oL8yU53/sdQ5eiC/MlOza6uO/8RysQpMD/2E7AuOwCAdbSBNdWBZ40M+9KB7qNz4U2D025CEkS4Q0WXGGNPMsbmR7Q1ZMjgnOOYbiVofa7IUNOTx9LzpZ/WvanUCs45XCrHlnLt0NG6ELk9jDFMTJMTNmgB/HsglKmzocycB7V4GpxLVmtek/ds71dPRLyQPt8P1tnu2ebJqXDe8E2oxdP9clH0s4N6vXaA+8hH5Pa/sYQkoHADl+UAOgC8yBirZIz9v/buPD6O6soX+O9Udbc2W5ZleV8kL7LxgtfYYGxjA2ExZkkySYAQSDKZmZdk8oa8mbwkk5eZzGSyTGZJJpmskxUIIQmEAMFmC4uNDRiD8QbGkhd5321509Zddd4f3e7uql7Uknot/b6fjz6oblVXX5Ub6/jec8/9hoh4I8OOemXveQtnu2K/fKr9goaB3srduH1SJeJTVnacCeG1Y1149kBHdGNGABjgE7xvfOksAc+6rk74X3ZuFh+MS0oNLboOasY+G8bhfTCat+Wte9nmW/2E4zi46HrAHw7aLVdZfvcOz2l18xyJKCzTHJc3VfVzqjoOwEcADAbwnIhsyWnvqGi581suHeKH4bElvsMqTCwf59wo8t6mtoQl4O+bUIEB/v5bBdf3+hpI2/nosQ4cBGvOFbHjQbWw5jgHazPJhylGcvQAfNvfdLTFBxd2vXPZck9GXLp7jkQU1pu/bXcA2I5wkm5DVntDJcO9i/LsEp8mSsU9XfSHPe145kBH2mv6G3+aEYhom2vkwPfaC0DcL+lS4V/zpOPYmjQDOrohemw3THGc70ngkslzJKLMS/7XiMjHReQ5ALsALEN4KfSwHPaNiph7xKWUE3PTuWpUGcZUxaY52i2FFZeeMW2wD3PrvPmzZ0KO7If5zmZHW7LpDWvGu2DXxv66kK5O+F59Luf9y6pQCL6XnIGL+2e1R42DxgUbxplTkNaT3d460+dIRJmPuBwCcAeAXwMYparvVdXfqWpHN68jD1LVfhO4mIbgzsbUNTTunlzl2Sq4mfCvWeU4thpnQEfVJ15omAhd6VwdU2rTReaWVx11arS8EqEFrqXKpg/22ImOpkxGXTJ+jkSUceXciap6OKc9oYLrshRBW1HVTb7GwQsWTnTEklMrfYJJ1aWxG3Rv3NlYiX/bdA7udTBlJnBbiv2IPMG2IMePAAk/eYQqfGufcjSlGyUILlkO/2P3RYurmS1NMLeshz18dPgCfxm0dmg2ep4TCfVVLr8maWE4u74R5u7t0WNjbzMwrc550fmzkAtnw98ne46ulVhEFJPyt42IXKmqayKHU0VkarLrVPX5nPSM8urp/R34i9Wn0GUrvjp/EP5yauqCbAmJubV+mOlKz5a4cQN8uGZ0Gf500Flw7pb6Cgwu82ZSrrH7HVR86/OQc2cyfo1WVCG0YFnq83UjYM2YD9/W16JtFf/5ecc11oSpaP/cfwIVxRUQyqljMDevd7QFlyUP0qyGyYgffzRbmoBpC8MHqgjc/x34n38conbS12tFFYvOEaWR7p/JPwAwI/L9z1JcowAmZLVHlHddluLTa0/jXDD8L+G/X38GN9VXYGRl8uXN7votMz06TRTvrslVCYFLutotJU0VZT//9x4FLUBkBKIs/bLw4NIVjsDFzdy9HYE/3o+uD/6vHr13rvleX+MINKxxExMScS+yXUuijbgl0eb2NxF4Ln0dz0yeI1F/lvKfi6o6I+778Sm+GLR4wJP7O3A8buonpMCDO9tSXt9f8lviLR9b7kjSnVrjw+IR3lzxYex+B+b+XT16jRoGglff0u111pwrYHdTSda39ikgFEp7Tb4Zu99xHIcWXgukyG2yRzdAzdi/CY2TR2G2hQvW+V58IulrLsr0ORL1Z5mW/H9MVW9N0v6Iqr4v+92ifLq/KXEDwfubLuAzlw5IWptly0l3qX9v/gKPFzAFD1xTi3954yx8huAr76r2XN2ai9y5HFo5ADqgOuX1OmAQgtf9WWY7GPv86Ljnqwg89JPoNgAAICePQaxwsGKcOQ1z8yuw5i3p3Q+QA+5CctbEaakv9gdgjxnveE3l4X3AxInwvfGS41K7bjhghAPiHj1Hon4s04zKq1K0L8tSP6hA9p0P4TnXFAgA7Dln4aXDXVg6yrlx4tE2y1E1tswELqnxbmJuvFlDAnj4urruLyxlHW3wrXcuU+74qy9mtRCaXd+Ijs/+m6Ot7Jffgv+Fx6PH/tUriydw6WyHHN7naOouuLDrG52By5F98K97BhKKjVbaw0ej7Zu/SjlyQ0TJpf2NIyJfiXwbiPv+ogkA9uakV5Q3DzS3pVozgvubLyQELltc+S3TB/vh93Bibn/jW/8CpKM9emzXDIE1c0HO3ze4dIUjcDG3vAY5eQw6pPCloox9u6IroQDAHjG22+Rhq2GyY4lzxZG98DVtdFwTvPJGBi1EvdDdkoixkS8j7vuxAMYgXDn3AzntHeWUZSseaE6dy/J4SztOdViOtv6Y39KfJCz5XbIcMHM/omY3TIYVN4ohaicsES4U01WHxXKV9U/GnaA7qHkLzIMt0WM1DIQW35CV/hH1N2n/RlLVjwGAiLysqj/JT5coX1441IkDF2KBSYUpqKswsP98uK3LBn67qx2fnB5bGr3pRP/Lb+kvjAO7Ye5629EWXLI8xdVZJoLQ0hUw7/9OtMm/ZiWCN38YMAq75NxdQM4dlCRjj50INQyIHZ5WNULOgN+avRBaMyR7nSTqRzLdZPEnACAiA0VkvIhMuPiV2+5RLt3rSsp9z/gKfGyKc4nv/U0XoHHD5O6l0Bxx8Q6fe7Rl2lzoxeJweRBc+G5nufwTR2G+9Ube3j8Vw5WY695IMalAGew0lW+DS1lgjqi3Mt2raKqIvAngDICdka/myBeVoGPtFp7c594ssBIfmlQJM27a/e3WEN44EQ5WTnVY0dEYAPAJMLWGgYsndHXCv+5ZR1Mo33vlVA1EaP4yR5M7mMq7rk4YB/c4mqwMRlwAwK5Pfp09uA7WpfP73DWi/irTMdgfAngBQC2AswAGA/gxgI/05c1FZIqIbIr7Oisin3Fds0xEzsRd8499eU8K+83ONoTisnInD/LhsmEBjKg0cf3Ycse19+4Ij8y4E3MvGexHuY/JhV7ge2NtrAQ9AK2qRmju4rz3I2EX6Y1rgbOtee/HRcaBPdHpHgCwh44EqgZm9Fq7IfnITL7yhoi8KtP/e2YBuFZVgyIiqnpGRP4vgG0AftXbN1fVHQBmA4CImAAOAvhDkktfUlWOrWaJquK+JmdS7l2TK6ObBd49uRKr4kZjHtnTjuGVZkJ+y2xOE5WmUAi+N17CyC2vI7ClFgBgblzruCS46DogUJbs1TllT5kJe8RYGEf2AwDECsG/7mkEl9+W974AgLHXld+SyTRRhJVkxEVFwquJiKjXMg1cOgD4AQQBnBCRcQBOA8hmdtk1AHapKpdY59jLR7uw82ysMqnfAO6YFFve+e7R5RhZaUTrtVwIKf5j87mE+zC/pTQFfvMDBJ59BCPSXBNaWqBfriIILl2Bst/+KNrkX70SwRs+WJClw2aLq/BchtNEQLjWi4o4llJb0+ZBh47MWv+I+qNMA5eXAHwQwC8BPAzgSQCdALK5weLtAB5McW6hiGwGcAjAZ1X1rVQ3aW7OTdpNru5bCN/fEUD8H/3S2hBO79+N03HXLB/ix8/b0gcmtW1H0dyc/U3DvfSsi43vXCtm/Cn9XjkXRk9AU7sFFOjPwTeyETMME2KH86mMw/vQ8vp6BAuwCmfyji2ODRP3+6twrgfPZWrtcJSfPBJ7/ZS5aOXnO+f4d0j+5OJZNzamH9nMKHBR1Q/GHX4RwFsABgC4r9c9iyMiAQC3APj7JKc3AqhX1fMiciOARwGk/Km6+4F7o7m5OSf3LYTWThvPv+IMNj41dzgaRzvzWj4/2sITjx/DsfbkO9heNiyA984dlfWy91561sXI/8QDKXclBsJTGcYdnyz4n4E9aRrMpq3R44kShJXvPoWCqDx+yNE08oplGFE9OONbyI23AZEl3taEqRi64gMY6uNIZS7x75D8KdSz7nGGmKraAO7Pcj+WA9ioqkeTvN/ZuO9XicgPRKROVU9kuQ/9wkO72xBfU27sABPLRiXmMgyvNPHcTUOxcl8HznY5f9GNqTJxU32FZ/fq8SzVhAJzwfnLYI+NVDUwTVjT5sGecEkBOudk1U92BC7m3iZY78rvFgDGwRZnif7aodAeBC0AELzmPbBH1ePo9m2ou/49AIMWoj5LGbiIyP1AymrwUap6dxb6cQdSTBOJyAgAR1VVRWQBwiuhTmbhPfsdVcW97qTcxsqUAcjYAT58YtqApOeo9JjvbIJxLDaCYJs+dH70/wADBhWwV8m5V+S4a6nkQ2L9lszzW6JEYE2bi9P+gahLs1ElEWUu3YjLznx0QEQqAVwL4H/FtX0CAFT1RwDeD+CTIhIC0A7gdo2viEYZ23QyiG1xS5oNAe5srErzCvISd02UM1PmwF+EQQuQGCS4q9fmg/s9Myn1T0S5lzJwUdV/zkcHVLUNrtVJkYDl4vffA/C9fPTF6+5zVcq9dnQZRleZBeoN5dX5s/C9vtrRdGLOEhTr+hZ71DioPwAJhpfgG2dOQVpP5rVMvukecenBiiIiyp2MclxE5OpU51Q1myuLKEcuBG08vLvd0XbXZI629Bf+V/4ECcblawwdhfMNUwrYo26YPtjjJsLctT3aZLQ0wZq9MD/vb1sw9jkHnXtSw4WIcifT5NyfuY6HAggAOACA+xWVgD+0tONcMDbDNqzCSKiQSx6lCt+LTziagktvBKSwmxd2x66f7Axc9jbnLXCRw/shXZ2xvgwaDB1cl5f3JqL0Ml0OPT7+OFLl9ksAEquSUVG635WUe+ekSvgNrgrqD4zd78A8sDt6rGIgtPgG4MTpNK8qPKu+0VFDxWzZgWDKq7PLdO8IXT+5IAXwiChRr/7JpaoWgK8B+Fx2u0O58E5rEOuPOcv1f5hJuf2Gewm0Nevykhg9cOeUGC35W1nkTszlNBFR8ejLTl/XAkhdyYqKhjspd/GIACYO4iZvXmTseQeB3/8MxsHYzhlyxlk9wL2RYbGyRzdATR/ECm9PYZw6Ft5wsboGACBnT6Ps3m/D2LMD6MVCQ6txOrpu+yR0yLCEc+7E3J6U+iei3Mo0OXc/nDVdKgGUA/hULjpF2WOr4ne7nEm5dzMp15tsG+U//jqMw/tSX1IzBNasy/LYqT7wB2CPGe8IIsy9zbAunQ8AKPvFf8C3cV2vb2+sPwaxbXR82rWA0raT1HDhiAtRscj0n90fdh1fANAUX9WWitPusyGc6IgNjFX7BTfXVxSwR5Qrcuxg2qAFAEJLlgNm6Yy22fWNjsDF2NsE69L5kBNHYL75cp/vb25+FbAtwIiVBZBjhyAdsZwwrRoIrUu3JSUR5VOmybmru7+KitHmk850xrlDA6jwMcnQi9wJpW7W5JnouvnOPPUmO6yGKfCvWRU9vpjn4l/zpGPX5d6Srk7I4f3Q0Q3RNnOvq/BcAxNziYpJplNFgwD8DYA5CG+uGKWq1+WgX5Qlm1yBy6xa7pXiVe7pja5r3oPgijvCB/5Aj/fZKQbu0v/m3ibAtuB7aZWjvfO2TyB02VUZ3bPsp9+E7+2NsXu2NCEUF7i4k4B7VeqfiHIm0zHjhwCYAP6AcNl9KhHuEZdZQxi4eFXCSpgpM6FDhheoN9lhj50INQyIHZ7uNI4dgm/9izBOHY9eo4FyBK+6GajILHfLnjgNiAtcjJYmYNF1ccc7nNc3ML+FqJhkGrhcDmCIquarjAJlgapi80nnMuhZQwIF6g3llGrCVJHlhZGCQBnsUfUwD+yJNf3uR45LQguWZRy0AIl7DjlWEKkmrijywnMk8pBM67isBTA1lx2h7Nt73sKZrlgewEC/YHw19ybyIjlxBNJ2Pnqs5ZXQYaMK2KPsSdhwMW60BQCCy27q2f3c9WH2NgORER05cQRyIVZX00vPkcgrMh1x+SiAVSKyHsDR+BOq+pVsd4qywz1NNHOIHwaTDD0pacE0o7hL+mfKbmgE1j2d/NyoetiTpvfoflo3Alo5IBroSUcb5Ngh6IgxyZdBe+Q5EnlFpv9Hfg3AWADDATTGfU3KUb8oC7YkTBMxv8WrEqc3vJOXkW6qJrh0Rc9X/IgkFJS7uJIocbrNO8+RyCsyHXG5HcBkVT2cy85QdiWsKGJ+i2cljLh4qNKrPW4SVCRh+bOaPgQX9W5Ro90w2ZWg2wxcdnXiiIuHniORV2Q64rIbyNv+ZpQF4cRcrijqF1QTAhdPlaivqISOGJPQHJq3BBhY06tbuivhGi07vP8ciTwi0xGX+wE8LiL/jcQcl+ez3ivqs0NttqNibqVP0FhdOhVTKXNy+jiMc63RYw2UQUeOLWCPss+qnwzj8H5HW6gPey4lThU1h5/j2diO2V58jkRekOlvsr+O/PfrrnYFMCF73aFscS+DvrTWD9NgYq4XJRRMGzfJUcLeC+z6RuDV52LHdSNgTZvb6/vpsNHQ8gpIR7gslVw4B98ba53v6cHnSOQFGU0Vqer4FF8MWopUshVF5E0JJeo9mFAamrcYGrfHUvCGD/ZttY9hwB7nfE6+F59wHHvxORJ5AecOPCoxMZeBi1cljLh4MC9Dh49Bxz1fg2/dU7AnTEPw3e/t8z2thkaYTVuix+aB3Y7zXnyORF6Q6V5F+xGeFkqgquOy2iPKisSl0FxR5FXG3iQ1XDzImnUZrFmXZe1+3e1B5NXnSFTqMh1x+bDreCSAewD8JrvdoWw42mbhcFssMTdgAJfUcHDNi+TMKRinT0SP1eeHPXp8AXtUOtKNqPA5EhWvjH6bqepqd5uIvAjgKQDfyXKfqI+2nHJOE02v9cPPxFxPSqg7MnYC4GOQmgl75FhooAzS1Zl4js+RqGj1pZZ1JwD+k6QIuRNzZzO/xbMSS9QzLyNjpg/22IlJT/E5EhWvTHNc3PsRVQK4EcCTWe8R9dmmE8xv6S8SStQ3MC+jJ6yGyTB3vZ2knc+RqFhlOhbqrsJ0AcC3EC5MR0Vm8ymuKOovEjdX5EhBT6RKwOVzJCpemea4fCzXHaHsONVhYf95K3rsE2BqDQMXTzp/FsaJI9FDNQzYYzh72xPJEnT5HImKW9rARUQWAbhFVT+f5Ny/AnhUVV/NVeeoe/vOh3Dvjgs4eCEcrJzqtB3nLxnsR7mPibleICePwb9mJeR4OFiR82cc5+3R44FAWSG6VrLs0Q1Qnx8SCsa18TkSFbPuRly+COAHKc69COD/Abg5mx2izHWEFH/2zEk0nwmlvIbTRB5hWyj/ry/C3Lcz9SUsmNZzPj/sMeMduUJ8jkTFrbtVRbMRXvKczJ8AzMtud6gnntjXnjZoAYC5dQxcvMBoaU4btACANX5KnnrjLfb4SxzHfI5Exa27wKUaQKolKX4AA7PbHeqJ+5ra00JHaAAAIABJREFU0p4fU2Xi9omVeeoN5ZK7Oq6bPWQ4Qouvz1NvvKVr+QehkakhPkei4tfdVNE7AK4D8FiSc9dFzlMB7DkbwprDzsJZ31gwCIMC4XyWQQEDV48uRwXzWzzB3OMMXIKXXQ1r5gIAgFYOgDVjPvMyekmHj8GFbz8Ec/d2WJfM5nMkKnLdBS7fBvBjETERTsS1RcQA8B4A3wfwt7nuICV3f/MFx/GCoQF8cvqAAvWGcs094hJafD2smdnbt6ffG1DN50lUItIGLqr6axEZAeBeAGUicgJAHYAOAF9W1Qfz0EdyCdmKB5qd00R3TeaUkGeFgjAO7HE0cQNAIuqvuq3joqrfEpGfAlgIYAiAkwBeUdWzue4cJffMgQ4cbY8tex7gE7x3fEUBe0S5ZBxscS7XHVwHHVRbwB4RERVOpgXozgJ4Osd9oQzd60rK/bMJFRjg78u2U1TMEvYjauCqFyLqv/jbrsQcumDh2QMdjraPTK4qUG8oH9xl/S1OExFRP8bApcT8emcbbI0dTx/swxzWavE090aKLJBGRP0ZA5cSYqvi/ibnaqK7J1dBhEuePcsKwdi/y9HExFwi6s8y3R2aCuB7287h21vO46Rr/6GLykzgNhaYy43ODpT/6Kswm7YguPBadN35aaA3AaIqAg/9D/yrV8KaMBUdn/oyUJH5n5lxeD+kK1avx64eDB1c1/N+EBF5BEdcitTG41340oazKYMWALi1vgI1ZfwjzIXAY/fCt3Et5PxZBJ79PXyvPter+5hvrkNg5YOQ82fh27IegYd/0qPXJybmTu5dAEVE5BH8rVekfumaEkrmo1OYlJsToSD8a1Y5mvwv/LFXt/I//7jzeN0zQGdHiqsTuRNzOU1ERP0dA5cidC5o4/e721OeH1wm+Ie51bhiBEuT54L55jrIuTPOth2bIUf29+g+cvIozG0bnG3tF+DbsDrzvrhXFDExl4j6Oea4FKE/7GnHhVBs6dDISgNbPzACPoNTBPngf3Fl8vbVK9F12ycyvo9vzZMQ1YR2/+onMtvIz7Zh7HNNFXHEhYj6OY64FKH7XNNEd06qYtCSJ3L8MMy3Xk96zrf2aSCugm1atpUw3XSR2bQVcmhv9305dhDSERt506qB0LoRmb0/EZFHMXApMm+dCuL1485fjh/mPkR543/pqaSjJABgnD0Nc9MrGd3H3PY6jFPHUr9PiqDGcY9kheeYmEtE/RwDlyLj3vV56cgyNAzkjF5e2BZ8LzkDCrvGufTY/+ITGd3Kv9o53eS+TyajNyz1T0SUiIFLEekIKX67y7kP0Uc42pI35tYNME4djx5roBwdn/yS85ptGyAnj6a9j5w9DfPNdY62zr/6ArQytgrMONeacI1bwoqiBua3EBExcCkiT+xrx+nO2DTF4DLBinru+pwv7lGS0GVXwb5kNqz62EoeUYVvzZNp7+Nb+zTEsqLH9shxsKbNQ3DhtWnfz0EVpmvEJb4fRET9VVEELiLSIiJbRWSTiCRkRkrYd0Vkp4hsEZG5hehnrt3n2vX59omVKDOZ05AP0noS5qaXHW3BpSsc/73Iv2YVYFtISjUhIAkuXQGIIOS6j7ntdciJI8n7c+II5MK52G3LK6HDRmX0sxAReVkxJU9cpaonUpxbDqAx8nUZgB9G/usZe86GsOZwp6Ptbu763CtyaC+MU8dhTZkJ+AMZvca3zjVKMqoe9qTpAIDQwmugv/lBtPS+ceoYAo/eC3voyMT3Pn0CRly9FzV9CC26LnzP+kZY46fA3LMjfK0q/C89ia73fizhPkkLzxlF8e8MIqKCKqbAJZ1bAdynqgrgVRGpEZGRqnq40B3Lll+5knIXDA1g6mDu+txTvpefRfmPvwYACM2Yj46/+1fAMNO/KOkoyU2xFTyVAxBasAz+tU9Hzwceuy+j/lhzF0GrB8fdd0U0cAHCtV66br07oY8J00QsPEdEBKBIpooAKIBnROQNEfmrJOdHA4gvW3og0uYZq/Y5y8DfxaTcnrNCCPz2R9FD37YNMLcmr8kSz9ixGcbRg9FjNX0ILnLmo7inizIVXHqT4zh0+TXQQHnsvU8dS9pHc8trjmMWniMiCiuWEZdFqnpIRIYBeFZE3lHVNXHnkyV6JC220dzcnKy5z3J1XwBot4AdrRWI/zGnW4eQw7csar191tVNmzCx9aSjrXPVb7Gnsjbt6+r/+CDiw8TWKbPRcuQ4cOR4XGs5Jo2bjIH7mtwvT+nCyHo0Barh/oMcN3UehmyOrShy97Hi8F5csjf2PgrBzrJBCObgA5HLzzU58VnnD591/uTiWTc2pv+HWlEELqp6KPLfYyLyBwALAMQHLgcAjI07HgPgULJ7dfcD90Zzc3NO7nvRa8c6YSOW3jNhoIm5U/vnv7D78qzLn/h5Qtug5s2YPGwIdFCK4OXCOVTt2Oi8z4rbk/fh//4bOl/8I4yjB7rti103ErjqZjTWDEk4Z9x8BxAXuLj7GHjFOW1lXTofDe/KfkpXrj/XFMNnnT981vlTqGdd8MBFRKoAGKp6LvL9dQC+4rrscQCfFpHfIJyUe8ZL+S2bTzoLkc0akllCKcXIqeMwN69PbLcs+NY+jeCKO5K+zv/ys5Bg7PnbdSNgTUuxaK26BsFb7upzX+1J02GPqocRKfvv6GNnB/yvPOu4PrjspmS3ISLql4ohx2U4gLUishnAawBWqupTIvIJEbm4o90qALsB7ATwEwCfKkxXc8MduMyuY1JuT/nWPgVRO+k5/+qVQLIy/qrwuZNyr7wx96t3RBJyXy720bdhNaQtlqhtVw+GNXthbvtDRFRCCj7ioqq7AcxK0v6juO8VwF/ns1/5lDjiwsClR2w77d4/xtEDMHZshn3JbGf7nh0w9++KHqsYCC25IWfdjBdcdC0Cv/sxxAo5+phQBG/x9YCPnwcioouKYcSlX+u0FNtPOwOXmbX8RdUT5vaNMI7HZg7V70doxnzHNcmq1LrbrJkLoLXDctNJt4E1CM1b4mgqe+inMJu2ONp6u5qJiMirGLgU2PbTQYTiZjHGDjBRW95N3RFycE/3hN61FMHltzmv2bAaiKtEi442+F79k+OafOeSJFTS3bnNcWxNmQUdMRZERBTDwKXANrmniTja0jPnWuF7Y62jKbR0Baxpc2HXjYi2SbAL/pdjSa++116EdLRHj+1BtbBmXp77/sZx99GNoy1ERIkYuBTY5pNdjmPmt/SMf92zkFDcqqDho2FdMhswjHCibRxfXJJuYi7JDYAvzylfSfp4kVZWITR/aX77Q0RUAhi4FFi/XAqtCv8zv0f5974Mc8PqPt0nYVVQZENDAAgtuQEqsY+4uX8XKr7+N6j4+j0wd77lfF2KACLX3H28KLjwWiBQVoAeEREVNwYuBRS0FW+d7n8rinyrV6Lsgf+Gb8NqlH//n2G4gohMGbvehnmoJXqshoHQoutjx7XDYM1c4HiN2bQV5o7NjrbQ1DnQEWN61Ye+0tphsGYlFpdz578QEVEYA5cC2tEaQmdsQ2KMrDQwvNLjibmqCDz1u+ihqA3/M7/v1a0SVgXNvgLqqlSbScJtoYMEdy6L1TCZexMREaXAwKWA3PktM/vBNJHRvA3G4X2ONt8bLwHnz/TsRu0X4Hv1eUdTsmRWa/YVCM1ZlPI2oenvQmjBsp69d5bF91H9AXTedU9B+0NEVMwKXoCuP+uPheeS1VORUBD+dc8geP0HMr6P79XnIV2xHbXtwXUJ00IAAMNAxz1fhXFwD+ScMzjSqmrYYydEc2IKJtJHObwPOngoUMGdwYmIUmHgUkAJgYvXl0K3nYfvtReTnvKtXongde/P+FYJq4KuvBEwUkyzicAeMyHjexeECHRUfaF7QURU9DhVVCCWrdh6qn+NuPhefc4xShLPPNgCY9fbGd3H2LcT5p53oscqguCS5VnpIxERFTcGLgWy82wIbXElc4eUGRhd5e3EXPcoiZq+tOdTcS+BtqbNgw4d2bfOERFRSWDgUiDJ8luk0LkWOWTsbYbZ0hQ9VhF03vlpxzW+9c/D6Ew+IhPV1emogAvkv1Q/EREVDgOXAnEHLrPrPD5N5B4lmfEuhJbdBHtwXbRNOjsw+K3X0t/n9TWQtvPRYx04CNacK7LbWSIiKloMXAoksdS/h5dCd3bA/4prlGTpCsD0IeTKTRmy6aW0t/KvfsJ5n0XXA34PPzsiInJg4FIAtiq29KOl0OFRkgvRY3tgDaxI3ZLglTdC46bIqg61wNi3M+l95Mh+mO84q95yI0Iiov6FgUsBtJyzcDYYS8ytDgjqB3g3MTdxQ8PrAV84UNOhI2FNm+c471uzKvl9XO3WpBlcQkxE1M8wcCmAhGmiWu8m5srpEwl7A7k3NHSX3Pevewbo6nTeKBSCb+1Tzvss42gLEVF/w8ClANyJuV4u9W/E1VsBAGv8lIRRktDcRdCBg6LH0nYevtfXOK4xN70C48zp6LFWVBW8VD8REeUfA5cCSFhR5OH8FrOl2XFsTZyWeJE/EE6yjeNeheRf45puuvwaoKwiO50kIqKSwcAlz1S1X+1RZOxtchzb9ZOTXueePvK9swly5AAAQE4eg7nFuUyatVuIiPonBi55duCChVOddvR4gE8waZB3t4wyXCMudkPywEVHN8CaNMPRdnGUxbf2KYjGnplV35jyPkRE5G0MXPLMPdpy6RA/DK8m5raehNF6Inqsfj/sNKuA3Mm2vrVPAcGuhGkiLoEmIuq/GLjk2SZ3Yq6Hd4Q29rpGW8ZMBHypR5dCC5bBCpTHXn/mNMoe+B6ME0ejbRooC+e3EBFRv8TAJc+2JFTM9XDg0uLKb2loTP+CsgqcnrHA0eR/4XHHcWj+MqBqYDa6R0REJYiBS54lJuZ6dym06RpxsVIk5sY7MefKtOc5TURE1L8xcMmjI20WjrbHkkzLTWBKjYcTc90rirobcQHQPmIcrHGTkp6zR46FPfnSrPSNiIhKk3d/axYh92jL9MF++IziTcyV1pPhQnAXzjnatWYIQvOWAAOqU7/4/Blnboppwh49PoM3FYSWroB5/3cSTgWvXAF4NJGZiIgyw8Alj9yl/mfXFfE0Udt5VPzjXziq1caznn8M7f/w/eieQ27uaSJ79HggUJbRWwcXvhuB3/wQEow9LzXN8B5HRETUr3GqKI9KqfCc79XnUgYtAGC2NMHcuC7l+UzrtyRVNTCchBvHmrMIWj0483sQEZEnMXDJo4Q9iop4KbS7VH8y7l2f4yWsKKrvPr8lXnDFHdDI0mj1+9F184d79HoiIvImThXlyYkOCwcuWNFjvwFMHVy8gYs78Aguvh5aVY3A0w9F28y3XoccPwwdOjLh9aYrMdfqYaVbe8x4tH/5hzDffgPWJbNhp0jYJSKi/oWBS55scY22TK3xo8ws0kTTUBDGgd2Opq7bPgGtHgyzaQvMPTsAAKIK/0tPout9f+58fdt5GEcPRg9VDNhjJ/S4G/aY8bDHZJDQS0RE/QanivKklPJbjIMtECsUPbZrh0bzS4JLnZsb+tasAmzL+fp9Ox3H9shx3MmZiIiygoFLnpRU4JKQnxKb5gldfnU09wQAjNMnYG7d4LjenR+TSf0WIiKiTDBwyRP3Uuhirpjr3mPIik+srahC6LKrHOf9Lz7hen3qwIeIiKgvGLjkQWunjT3nYtMppgAzinpFkSvwGO8MPILLnNNF5qaXIa0no8fupdA9TcwlIiJKhYFLHmw95ZwmmjLIhwpfkSbmWiEY+3c5mtwjJvbEabBGNUSPxbbhW/d0+KCzHcbhfa7Xc0UQERFlBwOXPNjkmiaaWcz5LYf3Q7o6o8f2oMHQmiHOiyJl+eP5V68EVGHs2wXR2H5M9vAxQEVVTvtMRET9B5dD54F7KXS+81uMliYEHvqJY4kyAKg/AGv+UnS996PRPYCSJuYm2R8ouOhaBB76H0go/LMZRw+i8rO3A13OIM1iYi4REWURA5c8KOiKolAQ5d/5EoxTx5KeNh9rgT1kWHQEJTGxNkXgMbAGoXmL4V//QrQpflPF2OuZ30JERNnDqaIcOx+00Xwm5GjLZ2Ku+ea6lEHLRf4/PQKohq/vQWJtyFXTJRlryswMeklERJQZBi45tu1UEBp3PKnah+pA/h57uv2ELjL37QpPEdk2jH2uGixp9hiyps1F17vfC5XEn0cNA8GrboE9aXrPO01ERJQCp4pyzD1NNLsuf6MtcuIIzG2vO9raP/vvsIeNQtl9/wXftljhOP/qJ9B1wwchHe3RNq2qhtaNSPMGgq677kHX+/4ccv6s45RWDQQGVGfnByEiIopg4JJjCfkteZwm8q95EqKx8R5r/BRYl84HAASvvsURuPheeQ7W+Escr7caGpMm5iaoGhgOVIiIiHKMU0U5lrgUOk8rimwLvpdWOZqCcUuYrVkLYQ8aHD2WjjYEHrvPeQsm1hIRUZFh4JJD7SHFjlZnYm6+VhSZW1+Hcep49FgD5Qhdfk3sAp8PocXLHa8xTjpXBXGPISIiKjYMXHLo7dNBWHGZufUDTNSU5eeR+9c4k3JDl12VUAgueOWNae9hccSFiIiKDAOXHCpU/RY5cwrmm+scbUFXpVsA0BFjELpkdtJ7aHkldNionPSPiIiotxi45FChdoT2rX0aYsU2dbRH1adclhxalrwWi13fCBj8eBARUXEp6KoiERkL4D4AIwDYAP5HVb/jumYZgMcA7Ik0PaKqX8lnP3srX0uh5fhhyOlYPou7dktw6YqUq4NC85ZAqwZCLpxztHNHZyIiKkaFXg4dAvB3qrpRRAYCeENEnlXVt13XvaSq3ZdpLSJdluLt087AZWYOlkIHfvVdBJ59JOV5NX0IXnFdmhuUIXjFtQn3SFd4joiIqFAKOhegqodVdWPk+3MAtgMYXcg+Zcv21iC6YpskY3SliaEVZlbfw2hpShu0AOERFVTXpL/mysT8F464EBFRMSr0iEuUiDQAmANgfZLTC0VkM4BDAD6rqm+luk9zc3OqU33S0/s+e8QEUBY9nljemfW+jXny16hMc14h2DN1AS5k8L4Tx09F9Z7tAID2oaPQdL4TyNGz7E6u/gwpEZ91/vBZ5w+fdf7k4lk3NqYf8S+KwEVEBgD4PYDPqOpZ1+mNAOpV9byI3AjgUQApf6rufuDeaG5u7vF9j5xoBXAhenzFuMFobMxiCfzODlS9vcHRZI2bBJSVAwivCgotuQGjLrs6s/v97TfQ9egvIR3tsG/6EBpH1Wevrz3Qm2dNvcNnnT981vnDZ50/hXrWBQ9cRMSPcNDygKomzHvEBzKqukpEfiAidap6Ip/97KnEFUXZzW/xbVgNaY8FRnb1YLR/+YeAr5fvU12Drrs/k6XeERER5UZBc1xERAD8DMB2Vf1WimtGRK6DiCxAuM8n89fLngvZim2n3BVzs7sU2r/6Ced7Lr6+90ELERFRiSj0iMsiAHcB2CoimyJtXwQwDgBU9UcA3g/gkyISAtAO4HbVuJ0Di1DzmRDa40rmDqswMLIyezGiHNoLs2mroy1ZgTkiIiKvKWjgoqprAaTdflhVvwfge/npUXYk2xFaMtllOUP+Nc7NE60ps6Ajxmbt/kRERMWKpVFzwL0jdFaniUJB+NY+7WjiaAsREfUXDFxywD3iMjOLibnmm+tgnGuNHmtlFULvujJr9yciIipmDFyyzFbF1hxurphQzn/htdEl0ERERF7HwCXLdp8N4XwolphbExCMG5Cdirly4gjMba872kKcJiIion6EgUuWJSTmDglkLTHXv+ZJSNyCKqthMvcUIiKifoWBS5YlBi5ZmiayLfhecq4mCi4rqX0niYiI+oyBS5a5A5fZWQpczK2vwzh1PHqsgXKEMi3nT0RE5BEMXLJIVZOU+s/OUuiESrkLlgGVA7JybyIiolLBwCWL9p630NoVy0EZ6BeMr+57Yq60noS56WVHG6eJiIioP2LgkkXuaaJLa/0wspCY61v3DMSyosf2qHrYk6b3+b5ERESlhoFLFm3JxY7Qqom1W5auALK4hQAREVGpYOCSRQmJuXV9z28xdmyGcfRA9FhNH4KLruvzfYmIiEoRA5csUVVsysFSaPdoS2jeEmBgTZ/vS0REVIoYuGTJoTYbJzrs6HGFKWis7uPm2xfOwbdhtaOJlXKJiKg/Y+CSJe5l0JfW+mEafctD8b/8LCQYu69dNwLWtLl9uicREVEpY+CSJVmvmKsKnzsp98obAYN/ZERE1H/xt2CWuAOXmX0MXIyWHTD374oeqxgILbmhT/ckIiIqdQxcssS9FLqvK4r8LzpHW6yZC6C1w/p0TyIiolLHwCULjrVbONQWS8wNGMAlNX1IzO1og+/VPzmaWCmXiIiIgUtWuKeJptf64e9DYq7vtdWQjvbosT2oFtbMy3t9PyIiIq9g4JIFCYm5tX3Lb0nYUHHxDYCvj0uriYiIPICBSxZkc0do48AemDvfcrQFl97Y6/sRERF5CQOXLMjmUmjfmlWO49DUOdDhY3p9PyIiIi9h4NJHpztt7Dsf27nZJ8C0wb0MXIJd8K972tHESrlEREQxDFz6yD1NdMlgP8p9vUvM9W1cCzl/NnqsVQPDexMRERERAAYufZbVaSJ3pdwrrgMCZb2+HxERkdcwcOmjbK0okuOH4XvrDUcbp4mIiIicGLj0UeKKot4FLn7XaIs1cSrssRN63S8iIiIvYuDSB2e7bOw6G0vMNQSY0csRF/PNdY7j4JUcbSEiInJj4NIHW085p4kaq32o8vfikXZ2wDi419EUmr+0L10jIiLyJAYufbDJnd9S17vRFmP/LojG9jqyh40Cqgb2qW9ERERexMClD7JVMdfY2+w4tuon97pPREREXsbApQ+2ZGkptNnS5Di2Gxp73SciIiIvY+DSSxeCNprOhBxtl/YyMdc94mJzxIWIiCgpBi699NbpIGyNHU8YaGJQoBePM9gF48AeR5PFERciIqKkGLj0krvw3Oy6Xua3HGyBWLGRG3vIcGBgTZ/6RkRE5FUMXHopW6X+DXd+Sz1HW4iIiFJh4NJLCUuhs5SYazUwv4WIiCgVBi690BFSvHPaGbjMzFpiLkdciIiIUmHg0gvbW4MIxSXmjh1gorbc7PmNQiEY+3c6mmyOuBAREaXEwKUXsrUjtHF4HyQYu5c9qBZaM6RPfSMiIvIyBi69kK0doY297sJzHG0hIiJKh4FLL2RtKXSLK7+FgQsREVFaDFx6KGgr3jqdpRVFrhEXi4m5REREaTFw6aF3WkPotGLHIysNDKvoRWKubSeuKOKICxERUVoMXHrInd8ys5c7QsuR/ZDOjuixDqiG1g7rU9+IiIi8joFLD2WrYq7pGm2x6icDIr3uFxERUX/AwKWHtmRrKbS71D83ViQiIuoWA5cesGzF1lNZ2qMooWIu81uIiIi6U/DARURuEJEdIrJTRL6Q5HyZiPw2cn69iDTks38hW3GiCzjaZmHD8S60xZXMrSs3MLrKBEIhSOtJxxcunEt9U9XEFUVMzCUiIuqWr5BvLiImgO8DuBbAAQAbRORxVX077rKPAzitqpNE5HYA3wRwW7762HIuhOWvVQKvHUk4N2uIH/5Xn0PZff8FaTufcD40bS46PvN1oKzc0S7HD0PaLkSPtbIKOmxU9jtPRETkMYUecVkAYKeq7lbVLgC/AXCr65pbAdwb+f5hANeI5C+LVYJduP3oOvz0nR8Dqo5zl1d1ouzn/540aAEA39sbEVj5YEK72bTFcWyNa2RiLhERUQYKOuICYDSA/XHHBwBcluoaVQ2JyBkAQwCcSHbD5ubmZM09p4pRzz2MqZvW4lcdbQCAX4xYhnU1U6KXLN+xCtLVmf4+zz+G5ulXAEYsRpz09COIH4M5UTsSh7PVbw/I2p8hdYvPOn/4rPOHzzp/cvGsGxvTL1YpdOCSbJhBe3FNVHc/cE+UP90BXyRoAYBPHX8RzSOnYlDAwN2NFZj/u1ednaqsgvoDkHNnILYNAAica8Ul7adgzV4IIFy/pWqfM79l4M23Y8Co+qz1u5Q1Nzdn9c+QUuOzzh8+6/zhs86fQj3rQk8VHQAwNu54DIBDqa4RER+AQQBO5aNzwWU3OY4/eHw9mm4ZiA3vG457BhyCuW9X9JyKgbav/QJt3/0DQotvcLzOv3pl3PerHOesyTOhDFqIiIgyUujAZQOARhEZLyIBALcDeNx1zeMAPhL5/v0AnlfVlCMu2WRNnwd7yPDosXR1wvfKcwCcwQgAWDMXRCvfBpeucJwzN70cXmkUCsK39inHOfe1RERElFpBAxdVDQH4NICnAWwH8DtVfUtEviIit0Qu+xmAISKyE8DfAkhYMp0zhongkuWOJv/qlUBnezSAuSh+dMaeOA3W6Ibosdg2fOuehrnpFRhnT0fbtaIKoflLc9N3IiIiDyp0jgtUdRWAVa62f4z7vgPAB/Ldr4tCVy5H4NF7IZG0GnNvEwIP/QQSl/tiD6qFNfPy2ItEEFq6Auavvx9t8q9eCXvYaOe9F747Yak0ERERpVboqaKip0OG4+zE6Y62wLOPOI5Di28AfM4YMHjFtVBfrKqucfQgfFtfc17jyqEhIiKi9Bi4ZODknCVpzweX3pjYOLAGoXmpX2fVT4Zdz8x3IiKinmDgkoGzjTNhVw9Oei40dQ50+Jjk59Ik3jIpl4iIqOcYuGRATR9Ci69Pei5dcGJNnQN76MjE+wXKEFp4Tdb6R0RE1F8wcMlQshESrRqYdjoIhpH0daEFy4DKAVnsHRERUf/AwCVDOmIsrCmzHG3BK64DAmVpXxdafANUnI+Z00RERES9w8ClB7puvRsa2QxRK6sQvO7Pun2NDq5D6Kqbo8ehaXNhN16asz4SERF5WcHruJQSa/o8tP+//4bZvA2h2Quhw0Zl9LrOOz8Nq3EG0NmB0GVXcSdoIiKmCUObAAAJ30lEQVSiXmLg0kN24wzYjTN69iKfH6Errs1Nh4iIiPoRThURERFRyWDgQkRERCWDgQsRERGVDAYuREREVDIYuBAREVHJYOBCREREJYOBCxEREZUMBi5ERERUMhi4EBERUclg4EJEREQlg4ELERERlQwGLkRERFQyGLgQERFRyWDgQkRERCWDgQsRERGVDFHVQvehz86cOVP6PwQRERE5DBo0SNxtHHEhIiKiksHAhYiIiEqGJ6aKiIiIqH/giAsRERGVDAYuREREVDIYuKQhIjeIyA4R2SkiXyh0f7xERMaKyAsisl1E3hKReyLttSLyrIg0R/47uNB99QoRMUXkTRF5InI8XkTWR571b0UkUOg+eoWI1IjIwyLyTuQzvpCf7dwQkf8T+Ttkm4g8KCLl/Gxnh4j8XESOici2uLakn2MJ+27k9+UWEZmbq34xcElBREwA3wewHMA0AHeIyLTC9spTQgD+TlWnArgcwF9Hnu8XADynqo0AnoscU3bcA2B73PE3AXw78qxPA/h4QXrlTd8B8JSqXgJgFsLPnZ/tLBOR0QD+BsC7VHUGABPA7eBnO1t+CeAGV1uqz/FyAI2Rr78C8MNcdYqBS2oLAOxU1d2q2gXgNwBuLXCfPENVD6vqxsj35xD+i300ws/43shl9wJ4T2F66C0iMgbACgA/jRwLgKsBPBy5hM86S0SkGsCVAH4GAKrapaqt4Gc7V3wAKkTEB6ASwGHws50VqroGwClXc6rP8a0A7tOwVwHUiMjIXPSLgUtqowHsjzs+EGmjLBORBgBzAKwHMFxVDwPh4AbAsML1zFP+C8DnANiR4yEAWlU1FDnm5zt7JgA4DuAXkam5n4pIFfjZzjpVPQjgPwDsQzhgOQPgDfCznUupPsd5+53JwCW1hGp9ALh2PMtEZACA3wP4jKqeLXR/vEhEbgJwTFXfiG9Ocik/39nhAzAXwA9VdQ6AC+C0UE5E8ituBTAewCgAVQhPWbjxs517efs7hYFLagcAjI07HgPgUIH64kki4kc4aHlAVR+JNB+9OLwY+e+xQvXPQxYBuEVEWhCe8rwa4RGYmsjwOsDPdzYdAHBAVddHjh9GOJDhZzv73g1gj6oeV9UggEcAXAF+tnMp1ec4b78zGbiktgFAYyQ7PYBwwtfjBe6TZ0RyLH4GYLuqfivu1OMAPhL5/iMAHst337xGVf9eVceoagPCn+PnVfVOAC8AeH/kMj7rLFHVIwD2i8iUSNM1AN4GP9u5sA/A5SJSGfk75eKz5mc7d1J9jh8HcHdkddHlAM5cnFLKNlbOTUNEbkT4X6YmgJ+r6tcK3CXPEJHFAF4CsBWxvIsvIpzn8jsA4xD+S+kDqupODqNeEpFlAD6rqjeJyASER2BqAbwJ4MOq2lnI/nmFiMxGOBE6AGA3gI8h/A9FfrazTET+GcBtCK9UfBPAXyCcW8HPdh+JyIMAlgGoA3AUwJcBPIokn+NI4Pg9hFchtQH4mKq+npN+MXAhIiKiUsGpIiIiIioZDFyIiIioZDBwISIiopLBwIWIiIhKBgMXIiIiKhkMXIioWyJyp4g8U4D3XRTZhfa8iBTFfjMiskxEDvTh9T8SkX/IZp+I+hMuhyYqIZHqt8MBWHHNk1U1axUqI3tH7QHgj9vvpSBE5DkAj6vqd1Kcb0HseVwAsArA/1bV8zns0zIAv1LVMRlc+1EAf6Gqi3PVH6L+hiMuRKXnZlUdEPeVELTElTsvdfUA3urmmptVdQDCZfXnA/hSzntFRAXDwIXIA0SkQURURD4uIvsAPB9pf0hEjojIGRFZIyLT415TISL/KSJ7I+fXikgFgDWRS1ojUzQLReSjIrI27rVXiMiGyOs2iMgVcedeFJF/EZF1InJORJ4Rkbo0ff9LEdkpIqdE5HERGRVp34XwTst/jPSjLN0ziOwU/CSAGZHXj4rc71Tk/n8Z957/JCIPi8hvI33cKCKz4s6riEyKO/6liHw1Rf+/ICK7Ivd5W0TeG2mfCuBHABZG+t+a7F6pfv64fnwiMl12WkS+H6lQStRvMXAh8palAKYCuD5y/CSARoS3nt8I4IG4a/8DwDyEN6WrBfA5hLdfuDJyviYyovNK/BuISC2AlQC+C2AIgG8BWCkiQ+Iu+xDCZe6HIVz2/rPJOisiVwP4BoAPAhgJYC/CpdqhqhMRLil+cYQpbcl2ERkL4EaES7wDwIMIb/w2CuF9a74uItfEveRWAA9FfvZfA3hUwht/9tQuAEsADALwzwB+JSIjVXU7gE8AeCXS/5qe/PxxbkJ4JGlW5LrrQdSPMXAhKj2Pikhr5OtR17l/UtULqtoOAKr6c1U9F/ml/08AZonIIBExAPw5gHtU9aCqWqr6cob7uawA0Kyq96tqSFUfBPAOgJvjrvmFqjZF+vE7ALNT3OtOhPcB2xh5779HeISiIaMnEfZoZDRjLYDVCAcoYwEsBvB5Ve1Q1U0I7x10V9zr3lDVhyO7Cn8LQDmAy3vwvgAAVX1IVQ+pqq2qvwXQDGBBhi/P5Of/V1VtVdV9CG8emOpZEvULDFyISs97VLUm8uVeabP/4jciYorIv0amMc4CaImcqot8lSM8WtBToxAeGYi3F+GN7S46Evd9G4ABmdwrklR70nWv7lx8HvWq+qlIsDQKwClVPZemj9Fnpao2YqMzPSIid4vIpovBJMJTVSmnxlwy+fkzfZZE/QIDFyJviV8m+CGEp0PejfA0RkOkXQCcANABYGI390jmEMJJs/HGATjYw74m3EtEqhCefurNvdz3rRWRgXFt7j6OjXtfA8CYyOuAcIBQGXftiGRvIiL1AH4C4NMAhkSmg7Yh/IyBHj7LLP78RJ7FwIXIuwYC6ET4X/CVAL5+8URkhOHnAL4VSWI1I0m4ZQCOI5zrMiHFfVcBmCwiHxIRn4jcBmAagCd60cdfA/iYiMyOvPfXAaxX1ZZe3CtKVfcDeBnAN0SkXERmAvg4nDk+80TkfZEVWJ9B+Fm9Gjm3CcCHIs/lBoRzh5KpQjg4OQ4AIvIxRJKDI44CGCMigRSvz8nPT+RlDFyIvOs+hKchDgJ4G7Ffyhd9FsBWABsAnALwTQCGqrYB+BqAdZHpD0feh6qeRDhh9O8QDoo+B+AmVT3R0w6q6nMA/gHA7wEcRngE6Pae3ieFOxAeZToE4A8Avqyqz8adfwzAbQBOI5z78r5IvgsA3INwzk4rwnko7lyii/1/G8B/AngF4SDlUgDr4i55HuHl3EdEJOH55PjnJ/IkFqAjon5HRP4JwCRV/XCh+0JEPcMRFyIiIioZDFyIiIioZHCqiIiIiEoGR1yIiIioZDBwISIiopLBwIWIiIhKBgMXIiIiKhkMXIiIiKhk/H/sPKHJgb75TgAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_gain(auuc_metrics, outcome_col='conversion', treatment_col='is_treated')" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.1" } }, "nbformat": 4, "nbformat_minor": 2 }