{ "cells": [ { "cell_type": "markdown", "metadata": { "lines_to_next_cell": 0, "toc": true }, "source": [ "

Table of Contents

\n", "
" ] }, { "cell_type": "markdown", "metadata": { "lines_to_next_cell": 0 }, "source": [ "# Analyzing precip and temperature data\n", "\n", "## Learning objectives\n", "\n", "1. Document your project data by capturing important information\n", " as metadata in a json file\n", "\n", "1. Use the groupby method for a pandas dataframe to group observations\n", " by season\n", "\n", "1. Find the probability density function (histogram) of temperature and\n", " precipitation data and determine possible statistical models (normal distribution,\n", " exponential distribution) that best describe the variation in the data\n", "\n", "1. Find best fit parameters for statistical models that describe the precipitation\n", " and temperature data, assuming that temperature and precipitation are\n", " independent of each other.\n", "\n", "1. Use groupby to find the median temperature for each decade and each season\n", " and determine whether the seasonal temperatures have increased at YVR\n", " since the 1930's\n", "\n", "## Introduction\n", "\n", "We have about 30,000 days worth of YVR precipitation and temperature\n", "data generated by the 10-pandas1, 10-pandas2, and 10-pandas3 notebooks, these\n", "gave you a new csv file: data/processed/weather_YVR.csv. We will use\n", "that data set to estimate statistical distributions that could produce realistic\n", "simulated rainfall and temperature inputs to a model. It makes use of several\n", "new python modules/methods:\n", "\n", "1. The **context** module: We will write a new module called context.py that\n", " will be used to locate folders and libraries associated with a project, such as\n", " `weather_YVR.csv`.\n", "1. **The json module**. This reads and writes files written\n", " in \"javascript object notation\" i.e.\n", " [json](https://en.wikipedia.org/wiki/JSON). We will use it to\n", " save \"metadata\" or data about our data.\n", "\n", "1. **pandas.DataFrame.groupby**\n", " We will use groupby to split the dataframe into 4 seasons, each corresponding\n", " to 3 months of the year: winter (month initials djf), spring (mam),\n", " summer (jja), and fall (son). This is the tip of the iceberg of what\n", " you can do with pandas split/apply/combine functions. For more examples\n", " see [the Python Data Science Handbook](https://github.com/jakevdp/PythonDataScienceHandbook/blob/master/notebooks/03.08-Aggregation-and-Grouping.ipynb)\n", "\n", "1. The [scipy.stats](https://docs.scipy.org/doc/scipy/reference/stats.html) module. As you will see\n", " below, the temperature data is best fit with a a Gaussian (normal) distribution\n", " using the norm.fit:\n", " - [scipy.stats.norm.fit](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.norm.html#scipy.stats.norm)\n", "\n", " Precipitation, on the other hand, follows an exponential distribution, which\n", " can be fit with:\n", " - [scipy.stats.expon.fit](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.expon.html#scipy.stats.expon)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "in context.py, found /Users/phil/repos/eosc213_students/notebooks/pandas/data/processed\n" ] } ], "source": [ "import json\n", "\n", "import context\n", "import pandas as pd\n", "import scipy.stats as st\n", "from matplotlib import pyplot as plt\n", "import pprint\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": { "lines_to_next_cell": 0 }, "source": [ "## The context module (repeated from 10-pandas1)\n", "\n", "As your project grows more complicated, it's good to have a central\n", "module that keeps track of important files and sets your scripts\n", "up so that they can import functions and classes from you modules.\n", "If you were planning to distribute your project using conda, then\n", "you would need to write an installation script, which is a fair\n", "amount of work. At this stage, it's easier and more flexible to\n", "store that information in a file that travels along with your notebook.\n", "By convention, this file is called:\n", "[context.py](https://github.com/phaustin/eosc213_students/blob/master/notebooks/pandas/context.py)\n", "\n", "Clicking on that link shows you the source -- the code is executed when\n", "you do `import context` and does the following:\n", "\n", "1. Defines Path objects that give the location of the raw and processed data folders\n", "\n", "1. Puts the notebooks/pandas folder on python's list of places to look for\n", " library modules (sys.path). We will use this when we start extracting\n", " code from notebooks into libraries" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/Users/phil/repos/eosc213_students/notebooks/pandas/data/processed\n" ] } ], "source": [ "#\n", "# Here is the path to the processed csv file\n", "#\n", "print(context.processed_dir)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Reading the processed data\n", "\n", "The next cell uses [\"globbing\"](https://en.wikipedia.org/wiki/Glob_(programming)) to\n", "find every csv file in all folders below `data/processed`. (See\n", "[this optional tutorial](https://realpython.com/python-pathlib/) for more information)." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "yvr files: \n", "[PosixPath('/Users/phil/repos/eosc213_students/notebooks/pandas/data/processed/weather_daily_YVR_1938-2017_all.csv'),\n", " PosixPath('/Users/phil/repos/eosc213_students/notebooks/pandas/data/processed/weather_daily_YVR_1938-2019_all.csv'),\n", " PosixPath('/Users/phil/repos/eosc213_students/notebooks/pandas/data/processed/weather_YVR.csv')]\n" ] } ], "source": [ "yvr_files = list(context.processed_dir.glob(\"**/*YVR*csv\"))\n", "print(f\"yvr files: \\n{pprint.pformat(yvr_files)}\")" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "yvr_file = context.processed_dir / \"weather_YVR.csv\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Metadata is data about data\n", "\n", "Since we care about this dataset, it's a good idea to save\n", "details for future reference. We can't put this kind of information\n", "into a csv file, but there are many file formats that can store\n", "this type of descriptive metadata -- one of the most popular is\n", "[json](https://en.wikipedia.org/wiki/JSON). In the next cell we\n", "write the data into a nested dictionary called meta_dict, and\n", "dump that information into a new json file called metadata.json" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "meta_data = dict()\n", "\n", "file_info = dict()\n", "file_info[\"written_by\"] = \"10-pandas3-process-daily-data.ipynb\"\n", "file_info[\"contact\"] = \"paustin@eoas.ubc.ca\"\n", "file_info[\n", " \"description\"\n", "] = \"EC canada YVR data downloaded by 10-pandas2-download-daily-data.ipynb\"\n", "\n", "meta_data[\"weather_daily_YVR_1938-2017_all.csv\"] = file_info\n", "\n", "file_info = dict()\n", "file_info[\"written_by\"] = \"10-pandas3-process-daily-data.ipynb\"\n", "file_info[\"contact\"] = \"paustin@eoas.ubc.ca\"\n", "file_info[\n", " \"description\"\n", "] = \"Reduced YVR data subsetted by 10-pandas3-process-daily-data.ipynb\"\n", "\n", "meta_data[\"weather_YVR.csv\"] = file_info\n", "\n", "history_file = context.processed_dir / \"history_metadata.json\"\n", "with open(history_file, \"w\") as f:\n", " json.dump(meta_data, f, indent=4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Take a minute and look at history_metadata.json with jupyter to see how the metadata is written out." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Read weather_YVR.csv into a dataframe\n", "\n", "Here's the dataframe produced by 10-pandas3\n", "\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "there are 29632 days in the dataframe\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", "
DateYearMonthDayT_mean (C)T_high (C)T_low (C)Rain (mm)Snow (cm)Total Precip (mm)
01938-01-011938114.49.4-0.6NaNNaN0.3
11938-01-021938124.57.21.7NaNNaN0.5
21938-01-031938131.77.2-3.90.00.00.0
31938-01-041938142.27.2-2.80.00.00.0
41938-01-051938152.27.2-2.80.00.00.0
\n", "
" ], "text/plain": [ " Date Year Month Day T_mean (C) T_high (C) T_low (C) Rain (mm) \\\n", "0 1938-01-01 1938 1 1 4.4 9.4 -0.6 NaN \n", "1 1938-01-02 1938 1 2 4.5 7.2 1.7 NaN \n", "2 1938-01-03 1938 1 3 1.7 7.2 -3.9 0.0 \n", "3 1938-01-04 1938 1 4 2.2 7.2 -2.8 0.0 \n", "4 1938-01-05 1938 1 5 2.2 7.2 -2.8 0.0 \n", "\n", " Snow (cm) Total Precip (mm) \n", "0 NaN 0.3 \n", "1 NaN 0.5 \n", "2 0.0 0.0 \n", "3 0.0 0.0 \n", "4 0.0 0.0 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "yvr_df = pd.read_csv(yvr_file)\n", "print(f\"there are {len(yvr_df)} days in the dataframe\")\n", "yvr_df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Handling missing data\n", "\n", "What should we do about missing vlaues like the Rain and Snow totals for Jan./Feb. 1938?\n", "This is a judgement call -- we could through away the whole row, or do something\n", "more complicated like masking the missing values in calculations where they are referenced.\n", "For this notebook we'll fill the NaNs with zeros -- not a great idea since 0 is an\n", "actual temperature, but we can see if that makes a difference later" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "yvr_df_zeros=yvr_df.fillna(0.)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Use apply to tag the 29,190 days with their season\n", "\n", "We know that the seasons are quite different, and if we are interested in\n", "generating daily data we have to take that into account. In the next cell\n", "we set up a lookup table (dictionary) called season_table that maps the\n", "month number to one of four seasons. With this table we can write\n", "a function called find_season that takes a row of the dataframe and\n", "returns the season for that row" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "season_table = dict()\n", "for i in range(12):\n", " m = i + 1\n", " if m in [12, 1, 2]:\n", " # winter\n", " season_table[m] = \"djf\"\n", " elif m in [3, 4, 5]:\n", " # spring\n", " season_table[m] = \"mam\"\n", " elif m in [6, 7, 8]:\n", " # summer\n", " season_table[m] = \"jja\"\n", " else:\n", " # fall\n", " season_table[m] = \"son\"\n", "\n", "\n", "def find_season(row, season_table):\n", " month = row[\"Month\"]\n", " return season_table[month]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### creating a new column with apply\n", "\n", "One of the most useful pandas dataframe methods is [apply](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.apply.html). This method has lots of bells and whistles, all we need here is to apply the `find_season` function to every\n", "row of the dataframe, which means that we want to return a new column with the same number of rows\n", "as the other columns. We do that by tell apply that we want to return `axis=1` (rows are axis=0)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "season = yvr_df.apply(find_season, args=(season_table,), axis=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now add that column to the dataframe" ] }, { "cell_type": "code", "execution_count": 10, "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", "
DateYearMonthDayT_mean (C)T_high (C)T_low (C)Rain (mm)Snow (cm)Total Precip (mm)season
01938-01-011938114.49.4-0.6NaNNaN0.3djf
11938-01-021938124.57.21.7NaNNaN0.5djf
21938-01-031938131.77.2-3.90.00.00.0djf
31938-01-041938142.27.2-2.80.00.00.0djf
41938-01-051938152.27.2-2.80.00.00.0djf
\n", "
" ], "text/plain": [ " Date Year Month Day T_mean (C) T_high (C) T_low (C) Rain (mm) \\\n", "0 1938-01-01 1938 1 1 4.4 9.4 -0.6 NaN \n", "1 1938-01-02 1938 1 2 4.5 7.2 1.7 NaN \n", "2 1938-01-03 1938 1 3 1.7 7.2 -3.9 0.0 \n", "3 1938-01-04 1938 1 4 2.2 7.2 -2.8 0.0 \n", "4 1938-01-05 1938 1 5 2.2 7.2 -2.8 0.0 \n", "\n", " Snow (cm) Total Precip (mm) season \n", "0 NaN 0.3 djf \n", "1 NaN 0.5 djf \n", "2 0.0 0.0 djf \n", "3 0.0 0.0 djf \n", "4 0.0 0.0 djf " ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "yvr_df[\"season\"] = season\n", "yvr_df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Grouping the data by season\n", "\n", "The next cell uses the groupby method to sort all of the\n", "rows into 4 seasons. The resulting group object (`seasons`) has\n", "4 dataframes inside it, keyed by the season marker djf, mam, etc." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "seasons = yvr_df.groupby(\"season\")" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
DateYearMonthDayT_mean (C)T_high (C)T_low (C)Rain (mm)Snow (cm)Total Precip (mm)season
01938-01-011938114.49.4-0.6NaNNaN0.3djf
11938-01-021938124.57.21.7NaNNaN0.5djf
21938-01-031938131.77.2-3.90.00.00.0djf
31938-01-041938142.27.2-2.80.00.00.0djf
41938-01-051938152.27.2-2.80.00.00.0djf
591938-03-011938315.09.40.63.60.03.6mam
601938-03-021938324.78.31.10.50.00.5mam
611938-03-031938338.112.83.30.00.00.0mam
621938-03-041938348.613.33.90.00.00.0mam
631938-03-051938356.210.61.71.30.01.3mam
1511938-06-0119386111.718.94.40.00.00.0jja
1521938-06-0219386213.620.07.20.00.00.0jja
1531938-06-0319386314.721.18.30.00.00.0jja
1541938-06-0419386416.725.08.30.00.00.0jja
1551938-06-0519386516.422.210.60.00.00.0jja
2431938-09-0119389116.220.611.71.30.01.3son
2441938-09-0219389215.318.911.72.30.02.3son
2451938-09-0319389315.019.410.60.00.00.0son
2461938-09-0419389414.817.811.73.30.03.3son
2471938-09-0519389515.619.411.71.30.01.3son
\n", "
" ], "text/plain": [ " Date Year Month Day T_mean (C) T_high (C) T_low (C) \\\n", "0 1938-01-01 1938 1 1 4.4 9.4 -0.6 \n", "1 1938-01-02 1938 1 2 4.5 7.2 1.7 \n", "2 1938-01-03 1938 1 3 1.7 7.2 -3.9 \n", "3 1938-01-04 1938 1 4 2.2 7.2 -2.8 \n", "4 1938-01-05 1938 1 5 2.2 7.2 -2.8 \n", "59 1938-03-01 1938 3 1 5.0 9.4 0.6 \n", "60 1938-03-02 1938 3 2 4.7 8.3 1.1 \n", "61 1938-03-03 1938 3 3 8.1 12.8 3.3 \n", "62 1938-03-04 1938 3 4 8.6 13.3 3.9 \n", "63 1938-03-05 1938 3 5 6.2 10.6 1.7 \n", "151 1938-06-01 1938 6 1 11.7 18.9 4.4 \n", "152 1938-06-02 1938 6 2 13.6 20.0 7.2 \n", "153 1938-06-03 1938 6 3 14.7 21.1 8.3 \n", "154 1938-06-04 1938 6 4 16.7 25.0 8.3 \n", "155 1938-06-05 1938 6 5 16.4 22.2 10.6 \n", "243 1938-09-01 1938 9 1 16.2 20.6 11.7 \n", "244 1938-09-02 1938 9 2 15.3 18.9 11.7 \n", "245 1938-09-03 1938 9 3 15.0 19.4 10.6 \n", "246 1938-09-04 1938 9 4 14.8 17.8 11.7 \n", "247 1938-09-05 1938 9 5 15.6 19.4 11.7 \n", "\n", " Rain (mm) Snow (cm) Total Precip (mm) season \n", "0 NaN NaN 0.3 djf \n", "1 NaN NaN 0.5 djf \n", "2 0.0 0.0 0.0 djf \n", "3 0.0 0.0 0.0 djf \n", "4 0.0 0.0 0.0 djf \n", "59 3.6 0.0 3.6 mam \n", "60 0.5 0.0 0.5 mam \n", "61 0.0 0.0 0.0 mam \n", "62 0.0 0.0 0.0 mam \n", "63 1.3 0.0 1.3 mam \n", "151 0.0 0.0 0.0 jja \n", "152 0.0 0.0 0.0 jja \n", "153 0.0 0.0 0.0 jja \n", "154 0.0 0.0 0.0 jja \n", "155 0.0 0.0 0.0 jja \n", "243 1.3 0.0 1.3 son \n", "244 2.3 0.0 2.3 son \n", "245 0.0 0.0 0.0 son \n", "246 3.3 0.0 3.3 son \n", "247 1.3 0.0 1.3 son " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#\n", "# this creates a new object of type DataFrameGroupBy\n", "#\n", "print(type(seasons))\n", "seasons.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Use a dictionary comprehension put the dataframes into a dictionary\n", "\n", "In the next cell we create a new dictionary by iterating over the DataFrameGroupBy object. We\n", "will use a [dictionary comprehension](https://jakevdp.github.io/WhirlwindTourOfPython/11-list-comprehensions.html),\n", "to simplify the loop -- note that we wind up with 4 dataframes in the dictionary,\n", "one for each season. We do this because a dictionary of dataframes is simpler to work with than\n", "the DataFrameGroupBy object, which somewhat obscures the season keys." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['djf', 'jja', 'mam', 'son'])" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "season_dict = {key: value for key, value in seasons}\n", "season_dict.keys()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here is how you get the fall (son) dataframe from the dictionary" ] }, { "cell_type": "code", "execution_count": 14, "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", "
DateYearMonthDayT_mean (C)T_high (C)T_low (C)Rain (mm)Snow (cm)Total Precip (mm)season
2431938-09-0119389116.220.611.71.30.01.3son
2441938-09-0219389215.318.911.72.30.02.3son
2451938-09-0319389315.019.410.60.00.00.0son
2461938-09-0419389414.817.811.73.30.03.3son
2471938-09-0519389515.619.411.71.30.01.3son
\n", "
" ], "text/plain": [ " Date Year Month Day T_mean (C) T_high (C) T_low (C) \\\n", "243 1938-09-01 1938 9 1 16.2 20.6 11.7 \n", "244 1938-09-02 1938 9 2 15.3 18.9 11.7 \n", "245 1938-09-03 1938 9 3 15.0 19.4 10.6 \n", "246 1938-09-04 1938 9 4 14.8 17.8 11.7 \n", "247 1938-09-05 1938 9 5 15.6 19.4 11.7 \n", "\n", " Rain (mm) Snow (cm) Total Precip (mm) season \n", "243 1.3 0.0 1.3 son \n", "244 2.3 0.0 2.3 son \n", "245 0.0 0.0 0.0 son \n", "246 3.3 0.0 3.3 son \n", "247 1.3 0.0 1.3 son " ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "season_dict[\"son\"].head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Fitting the distributions\n", "\n", "What does it mean to \"fit\" a distribution? We want to be able to generate a series of random\n", "numbers that resemble temperatures and precip amounts that we might see at YVR during a \n", "particular season. We need to find two things:\n", "\n", "1. A probability density function (pdf) that has a similar shape to the histogram\n", " we get from the data.\n", " \n", "1. The best choice of parameters for that pdf that getting it \"closest\" in some statistical\n", " sense to the data.\n", " \n", "You'll see below that temperature is best fit with a Gaussin (normal) distribution, whilc\n", "precipitation more closely follows an exponential distribution. Both the normal and\n", "exponential distributions are functions of two parameters. For the normal distribution,\n", "the best estimate (maximum likelihood values) of those parameters is provided by the \n", "mean and the standard deviation of the temperature data. For the exponential distribution,\n", "they are given by the minimum value and the mean.\n", "\n", "### Daily average temperature\n", "\n", "The next cell shows histograms temperature for each of the seasons. We use\n", "[scipy.stats.norm.fit](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.norm.html#scipy.stats.norm) to\n", "find the mean and standard deviation (called the `loc` and `scale` here) of the data\n", "and then shows that fitted distribution as a red line. Specifically, for temperatures x the red\n", "line is a plot of:\n", "\n", "\\begin{align*}\n", "f(y) &= \\frac{\\exp(-y^2/2)}{\\sqrt{2\\pi}} \\\\\n", "y &= (x - loc) / scale\n", "\\end{align*}\n", "\n", "The four plots show that a normal distribution give as pretty good representation of each of the seasons." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Missing values again\n", "\n", "How many of our temperature measurements are missing? Here's the count for the whole dataframe" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "We are missing 24 temps and 25 precips out of 29632 records\n" ] } ], "source": [ "missing_temps=np.sum(np.isnan(yvr_df['T_mean (C)'].values))\n", "missing_precip=np.sum(np.isnan(yvr_df['Total Precip (mm)'].values))\n", "print(f\"We are missing {missing_temps} temps and {missing_precip} precips out of {len(yvr_df)} records\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So not a showstopper, but still unprofessional/incorrect to set these to 0. Instead\n", "we'll remove them with the [dropna](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.html) method\n", "below" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "lines_to_next_cell": 2 }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "6 nan values dropped\n", "8 nan values dropped\n", "5 nan values dropped\n", "5 nan values dropped\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/Users/phil/mini37/envs/e213/lib/python3.6/site-packages/numpy/lib/histograms.py:824: RuntimeWarning: invalid value encountered in greater_equal\n", " keep = (tmp_a >= first_edge)\n", "/Users/phil/mini37/envs/e213/lib/python3.6/site-packages/numpy/lib/histograms.py:825: RuntimeWarning: invalid value encountered in less_equal\n", " keep &= (tmp_a <= last_edge)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "key_list = [\"djf\", \"mam\", \"jja\", \"son\"]\n", "df_list = [season_dict[key] for key in key_list]\n", "#\n", "# set up a 2 row, 2 column grid of figures, and\n", "# turn the ax_array 2-d array into a list\n", "#\n", "fig, ax_array = plt.subplots(2, 2, figsize=(8, 8))\n", "ax_list = ax_array.flatten()\n", "#\n", "# here is the variable we want to histogram\n", "#\n", "var = \"T_mean (C)\"\n", "#\n", "# store the fit parameters in a dictionary\n", "# called temp_params for future reference\n", "#\n", "temp_params = dict()\n", "#\n", "# loop over the four seasons in key_list\n", "# getting the figure axis and the dataframe\n", "# for that season. \n", "#\n", "for index, key in enumerate(key_list):\n", " the_ax = ax_list[index]\n", " the_df = df_list[index]\n", " the_temps=the_df[var]\n", " before_drop=len(the_temps)\n", " the_temps = the_df[var].dropna()\n", " after_drop=len(the_temps)\n", " print(f\"{before_drop-after_drop} nan values dropped\")\n", " #\n", " # find the mean and standard deviation to\n", " # set the pdf mu, sigma parameters\n", " #\n", " mu, sigma = st.norm.fit(the_temps)\n", " #\n", " # save the parameter pair for that season\n", " #\n", " temp_params[key] = (mu, sigma)\n", " #\n", " # get the histogram values, the bin edges and the plotting\n", " # bars (patches) for the histogram, specifying 20 bins\n", " # note that we can specify the histogram variable by it's dataframe\n", " # column name when we pass the dataframe to matplotlib via\n", " # the data keyword\n", " #\n", " vals, bins, patches = the_ax.hist(var, bins=20, data=the_df, density=True)\n", " #\n", " # turn the bin edges into bin centers by averaging the right + left\n", " # edge of every bin\n", " #\n", " bin_centers = (bins[1:] + bins[0:-1]) / 2.0\n", " #\n", " # plot the pdf function on top of the histogram as a red line\n", " #\n", " the_ax.plot(bin_centers, st.norm.pdf(bin_centers, mu, sigma), \"r-\")\n", " the_ax.grid(True)\n", " the_ax.set(title=key)\n", " #\n", " # label the xaxis for the bottom two plots (2 and 3)\n", " # and the yaxis for the left plots (0 and 2)\n", " #\n", " if index > 1:\n", " the_ax.set(xlabel=var)\n", " if index in [0,2]:\n", " the_ax.set(ylabel='relative frequency')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Daily average total precipitation\n", "\n", "Precipitation data is a different story. Because negative precipitation\n", "is impossible, there is no way a normal distribution is going to work\n", "to represent the variablity. Instead we use\n", "[scipy.stats.expon.fit](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.expon.html#scipy.stats.expon) to fit an exponential distribution.\n", "\n", "\\begin{align*}\n", "f(y) &= \\exp(-y)\\\\\n", "y &= (x - loc) / scale\n", "\\end{align*}\n", "\n", "\n", "where `loc` is the minimum of the data and `scale` is the distance\n", "between the minimum and the mean.\n", "\n", "The fits are not quite as good -- but do capture the one-sided nature\n", "of the variability. No comments on this one, but it's a copy and paste of\n", "the temperature grid plot above." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "7 nan values dropped\n", "5 nan values dropped\n", "10 nan values dropped\n", "3 nan values dropped\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfsAAAHwCAYAAAChTMYRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3XuYHGWZ///3J5NkksyQZEJCEggQ0MiScAgQ4oEACQeJh4VVYQXRhZVdVgUPK7qi8gNE3S+iCC7iCioqCCKwq8Q1LAvIeAYSDhLCQQJGSBAmISHJ5Mgk9++PqgmdzmSmJjPV1dPzeV1XX91d/VT1PT1TfU899dT9KCIwMzOz2jWg6ADMzMwsX072ZmZmNc7J3szMrMY52ZuZmdU4J3szM7Ma52RvZmZW45zsLReSfiDpS5KOlPRUyfL9JD0saY2kjxUZo5lZfzGw6ACstkXEb4D9Shb9G9AcEYcUFJKZWb/jI3urtL2BhUUHYWbWnzjZW6+QdIikh9Lu+Z8AQ9LlMyUtSR//EpgFfFNSq6Q3FBiyWb8kabGkT0t6VNJaSd+TNFbSHen+e7ekprTtrZJelLRK0q8lTSnZzg8kfStdr1XS7ySNk3SlpJWSnpTkHrwq4WRvPSZpMPAz4AZgFHAr8J7ydhFxDPAb4NyIaIyIP1U0UDNr9x7geOANwN8CdwCfA0aT5IX28TR3AJOA3YCHgBvLtvP3wAXpehuBP6TtRgO3AV/P84ew7JzsrTe8CRgEXBkRr0bEbcC8gmMysx27KiJeioilJP+A3x8RD0fERuCnwCEAEXFdRKxJl18MHCxpRMl2fhoRD0bEhnS9DRFxfURsBn7Svh0rnpO99YbdgaWx7axKfykqGDPr0kslj9d38LxRUp2kSyU9I2k1sDh9fXR3ttN7IVtPONlbb/grsIcklSzbq6hgzKxXvA84CTgOGAFMTJdrRytY9XKyt97wB6AN+JikgZLeDUwvOCYz65ldSM7DvwwMA/692HCsJ5zsrcciYhPwbuBMYCXwXuC/i4zJzHrsepLTcUuBx4H7ig3HekLbnmY1612SjgG+GxH7Fh2LmVl/5SN7y9sBwJ+LDsLMrD9zuVzLjaRvACcCZxQdi5lZf+ZufDMzsxrnbnwzM7Ma52RvZmZW42rmnP3o0aNj4sSJXbZbu3YtDQ0N+QfUA46xd/SFGKHycT744IPLI2JMxd5wJ2TZn6v191uNcTmm7Koxrs5iyrw/R0RN3A477LDI4t57783UrkiOsXf0hRgjKh8nMD92Yh8DZgNPAYuA8zt4/UPAAuAR4LfA5JLXPpuu9xRwQlfvlWV/rtbfbzXG5Ziyq8a4Oosp6/7sbnwz65KkOuBq4G3AZOA0SZPLmt0UEQdGxFTgMtIZz9J2pwJTSP5h+Fa6PTOrECd7M8tiOrAoIp6NpGLizSR107eKiNUlTxuA9kt9TgJujoiNEfFnkiN8l1M2q6CaOWdvZrnaA3i+5PkS4I3ljSSdA3wSGAwcU7JuaanVJekyM6sQJ3szy6Kjmc62K9IREVcDV0t6H3ABSUGlTOtKOhs4G2Ds2LE0Nzd3GlBra2uXbYpQjXE5puyqMa7eiMnJ3syyWALsWfJ8AvBCJ+1vBv6zO+tGxLXAtQDTpk2LmTNndhpQc3MzXbUpQjXG5Ziyq8a4eiMmn7M3syzmAZMk7SNpMMmAuzmlDSRNKnn6DuDp9PEc4FRJ9ZL2ASYBD1QgZjNL+cjezLoUEW2SzgXuBOqA6yJioaRLSC79mQOcK+k44FWSqY7PSNddKOkWkmlS24BzImJzIT+IWT/V75L9gqWrOPP8X3TaZvGl76hQNGZ9R0TMBeaWLbuw5PHHO1n3y8CXezMe78tm2bkb38zMrMY52ZuZmdU4J3szM7Ma52RvZmZW45zszczMapyTvZmZWY1zsjczM6txTvZmZmY1LtdkL2m2pKckLZJ0fgevHyXpIUltkk7u4PXhkpZK+maecZqZmdWy3JK9pDrgauBtwGTgNEmTy5o9B5wJ3LSDzXwR+FVeMZqZmfUHeR7ZTwcWRcSzEbGJZBask0obRMTiiHgU2FK+sqTDgLHA/+UYo5mZWc3LM9nvATxf8nxJuqxLkgYAlwOfziEuMzOzfiXPiXDUwbLIuO5HgLkR8bzU0WbSN5DOBs4GGDt2LM3NzV1ueOxQOO/Atk7bZNlOnlpbWwuPoSuOsff0lTjNrO/KM9kvAfYseT4BeCHjum8GjpT0EaARGCypNSK2GeQXEdcC1wJMmzYtZs6c2eWGr7rxdi5f0PmPvfj0rreTp+bmZrL8LEVyjL2nr8RpZn1Xnsl+HjBJ0j7AUuBU4H1ZVoyI09sfSzoTmFae6M3MzCyb3M7ZR0QbcC5wJ/AEcEtELJR0iaQTASQdLmkJcApwjaSFecVjZmbWX+V5ZE9EzAXmli27sOTxPJLu/c628QPgBzmEZ2Zm1i+4gp6ZmVmNc7I3MzOrcU72ZmZmNc7J3szMrMY52ZuZmdU4J3szM7Ma16+T/fTnH+MzzT+AyFrF16x/yjBd9SclPS7pUUn3SNq75LXNkh5Jb3MqG7mZQT9P9gf+9Wk+fP9t7LJpXdGhmFWtjNNVP0xS6fIg4DbgspLX1kfE1PR2YkWCNrNt9Otkv6yxCYAxrSsLjsSsqmWZrvreiGj/r/k+uiiWZWaV1b+TfUOa7Nc62Zt1orvTVZ8F3FHyfIik+ZLuk/R3eQRoZp3LtVxutXOyN8sk83TVkt4PTAOOLlm8V0S8IGlf4JeSFkTEMx2s260pq6t1uupqnLLYMWVXjXH1RkxO9jjZm3Uh03TVko4DPg8cHREb25dHxAvp/bOSmoFDgO2SfXenrK7W6aqrccpix5RdNcbVGzH16278VUMa2TRgoJO9Wee2TlctaTDJdNXbjKqXdAhwDXBiRLSULG+SVJ8+Hg0cATxescjNDOjnR/ZILGtoYkzrK0VHYla1IqJNUvt01XXAde3TVQPzI2IO8FWgEbhVEsBz6cj7/Ummr95CcnBxaUQ42ZtVWP9O9sCyxpE+sjfrQobpqo/bwXq/Bw7MNzoz60q/7saH5Ly9k72ZmdWyXJN9hqpbR0l6SFKbpJNLlk+V9AdJC9OKXO/NK0Yne7O+b8CWzfz0+vP4hwd/XnQoZlUpt2SfserWc8CZwE1ly9cB/xARU4DZwJWSRuYR57KGJnZdt4oBWzbnsXkzq4AtA+qYuPIFJr38fNeNzfqhPI/ss1TdWhwRjwJbypb/KSKeTh+/ALQAY/IIcllDE3WxhVHrV+exeTOrkJbGJnZrXVF0GGZVKc9k392qWx2SNB0YTAfX5fYGX2tvVhtaGkaxm0tfm3Uoz9H4matu7XAD0njgBuCMiNjSwevdqrgF21fdGlc/HH4GHxrzMs8duBdQTNWtUtVYwamcY+w9fSXOatfS2MQ+zy8tOgyzqpRnss9UdWtHJA0HfgFcEBH3ddSmuxW3YPuqW3u+MppTgF8/tpr/UrK8iKpbpaqxglM5x9h7+kqc1a6lcdekhy4C1NGxhln/lWc3fpdVt3Ykbf9T4PqIuDXHGFk+LBn35258s76tpbGJ+s1tjNywpuhQzKpObsk+ItqA9qpbTwC3tFfdknQigKTDJS0BTiGpsrUwXf3vgaOAMyU9kt6m5hHn+sFDWDN4qJO9WR/X0jAKwIP0zDqQawW9DFW35tHBvNcR8SPgR3nGVsrX2pv1fS2NyWDbsa0r+NOYicUGY1Zl+n0FPXCyN6sFLY3tR/bel83KOdmTJnt/QZj1aVu78de6G9+sXJfJXtIBlQikSMsafWRv1te1j7/xOXuz7WU5sv+2pAckfSSvkrVFW9bQxIiNa6lv21R0KGbWAy2Nu7qXzqwDXSb7iJgBnE5yzfx8STdJOj73yCpoWUPyP8zotZ7X3qwva2lscje+WQcynbNP69RfAHwGOBr4D0lPSnp3nsFVikvmmtUGl8w161iWc/YHSbqC5Fr5Y4C/jYj908dX5BxfRTjZm9WGlsYmxrauSKromdlWWY7svwk8BBwcEedExEOwdTa6C/IMrlKc7M1qQ0vDKIa2bWSXTeuKDsWsqmQpqvN2YH1EbAaQNAAYEhHrIuKGXKOrkBXDRrAFeWCPWR/XXlhnt9YVrKlvKDgas+qR5cj+bmBoyfNh6bKa0VY3kBXDhvvI3qyPa2ncFXBhHbNyWZL9kIhobX+SPh6WX0jFcBU9s76v/ch+jEfkm20jS7JfK+nQ9ieSDgPW5xdSMZzszfq+10rmOtmblcpyzv4TwK2S2ueiHw+8N7+QirGsYST7rHyh64ZmVrXWDB7G+oH17sY3K5OlqM484G+ADwMfAfaPiAfzDqzSth7Z+5Ids+1Imi3pKUmLJJ3fweuflPS4pEcl3SNp75LXzpD0dHo7I+dAX7v8zsy2yjrF7eHAxLT9IZKIiOtzi6oAyxqaGNK2yZfsmJWRVAdcDRwPLAHmSZoTEY+XNHsYmBYR6yR9GLgMeK+kUcBFwDQggAfTdXM79G5pGOUqemZlshTVuQH4GjCDJOkfTrLj1pRl7QN73P1nVm46sCgino2ITcDNwEmlDSLi3oho/0/5PmBC+vgE4K6IWJEm+LuA2XkG29LY5G58szJZBuhNA46IiI9ExEfT28eybDxD199Rkh6S1Cbp5LLXKtf1hwvrmHViD+D5kudL0mU7chZwx06u22MtjaMY4258s21k6cZ/DBgH/LU7G87Y9fcccCbwqbJ1K97152RvtkPqYFmHg1skvZ9kvz16J9Y9GzgbYOzYsTQ3N3ca1NihcN6Bbdst3+/PIxn+4Do+84a1XW4jD62trYW8b2ccU3bVGFdvxJQl2Y8GHpf0ALCxfWFEnNjFelu7/gAktXf9bU32EbE4fW1L2bpbu/7S19u7/n6cId6d4mRvtkNLSGa9bDcB2O7SFUnHAZ8Hjo6IjSXrzixbt7mjN4mIa4FrAaZNmxYzZ87sqNlWV914O5cv2P4r7D2to3kL8OP7V/PrD/59p9vIQ3NzM13FXmmOKbtqjKs3YsqS7C/eyW131H33xh6sm2vX36ohjWwaMNDJ3mx784BJkvYBlgKnAu8rbSDpEOAaYHZEtJS8dCfw75Ka0udvBT6bZ7BbS+Z6kJ7ZVl0m+4j4VXoZzaSIuFvSMKAuw7Yzd9/t7Lrd7faDHXf9AWxsGsnMQSsK78Kpxm6kco6x91R7nBHRJulcksRdB1wXEQslXQLMj4g5wFeBRpKaHADPRcSJEbFC0hdJ/mEAuKS9xy4v7YV1xq5xsjdr12Wyl/TPJAl1FPA6kiPsbwPHdrFqpq6/TtadWbZuc3mj7nb7wY67/gCOHNzEK0tWFd6FU43dSOUcY+/pC3FGxFxgbtmyC0seH9fJutcB1+UX3bZaGnxkb1Yuy2j8c4AjgNUAEfE0sFuG9bZ2/UkaTNL1NydjXHcCb5XUlHb/vTVdliuXzDXr+1YOHc6mAQN9+Z1ZiSzJfmN6bS0AkgaSoTs+ItqA9q6/J4Bb2rv+JJ2YbutwSUuAU4BrJC1M110BtHf9zaMCXX/gZG9WE9Iqej6yN3tNlgF6v5L0OWCopONJSub+PMvGM3T9zeO14hvl61a06w+SZL/rulWweTPUZRmWYGbVaFnDKBfIMiuR5cj+fGAZsAD4F5LkfUGeQRVlWUMTdbEFli8vOhQz64Gkip6P7M3aZRmNvwX4Tnqrae3X2vPiizB2bLHBmNlOa2kcxfTnFxYdhlnVyDIa/890cI4+IvbNJaICbZPsDz642GDMbKe1NDTRtGENbNwI9fVFh2NWuCzn7EsnvRlCMphuVD7hFKt9MhxefLHYQMysR9qvtefFF2HvvTtvbNYPZJnP/uWS29KIuBI4pgKxVdzyYSOTB072Zn3aS+3J/q/dmtLDrGZl6cY/tOTpAJIj/V1yi6hA6wcPYc3goeziZG/Wpy1zsjfbRpZu/MtLHrcBi4HKzy5RIcsampzszfq4lgYne7NSWUbjz6pEINViWUMT+zrZm/VpLw8bzmYNoM7J3gzI1o3/yc5ej4iv9144xVvW0ORz9mZ93JYBdSxvGMnYF7JOx2FW27IU1ZkGfJhkApw9gA8Bk0nO29fcuftljU72ZrWgpaHJ3fhmqSzn7EcDh0bEGgBJFwO3RsQ/5RlYUZY1NMErr8CGDTBkSNHhmNlOeqlxFAc62ZsB2Y7s9wI2lTzfBEzMJZoqsKwhvfzupZeKDcTMeqSlcZSP7M1SWY7sbwAekPRTkkp67wKuzzWqAm1TRc/FOMz6rGUNo6ClBdraYGCWrzqz2pVlNP6XJd0BHJku+seIeDjfsIqzTbI3sz6rpbEJIpKEv/vuRYdjVqgs3fgAw4DVEfENYImkfXKMqVBO9ma1ocWFdcy26jLZS7oI+Azw2XTRIOBHeQZVpBXDRoDkZG/Wx7W0/+Puy+/MMh3Zvws4EVgLEBEvkPGSO0mzJT0laZGk8zt4vV7ST9LX75c0MV0+SNIPJS2Q9ISkz5avm5e2uoEwerSTvVkf5yN7s9dkSfabIiJIp7mV1JBlw5LqgKuBt5Fcl3+apMllzc4CVkbE64ErgK+ky08B6iPiQOAw4F/a/xGoiHHjnOzN+ritp+Sc7M0yJftbJF0DjJT0z8DdwHcyrDcdWBQRz0bEJuBm4KSyNicBP0wf3wYcK0kk/1g0SBoIDCW53G91hvfsHU72Zn1eW91AGDPGyd6MbKPxvybpeJJkux9wYUTclWHbewDPlzxfArxxR20iok3SKmBXksR/EvBXksGB/xoRKzK8Z+8YNw6efrpib2dmORk/3snejC6SfdoVf2dEHAdkSfDbrN7BssjYZjqwGdgdaAJ+I+nuiHi2LL6zgbMBxo4dS3Nzc5dBjR0K5x3Y1mmb5xZvYo8XXuA3996bDNarsNbW1kw/S5EcY+/pC3FKmg18A6gDvhsRl5a9fhRwJXAQcGpE3Fby2mZgQfr0uYg4sTJR42Rvluo02UfEZknrJI2IiFXd3PYSYM+S5xOA8mGx7W2WpF32I4AVwPuA/42IV4EWSb8jqdG/TbKPiGuBawGmTZsWM2fO7DKoq268ncsXdN6h8dHp0+EnP2HmoYfCiBFdbrO3NTc3k+VnKZJj7D3VHmfJ+JvjSfbZeZLmRMTjJc2eA84EPtXBJtZHxNTcA+3I+PGwcGEhb21WTbKcs98ALJD0PUn/0X7LsN48YJKkfSQNBk4F5pS1mQOckT4+GfhlOhjwOeAYJRqANwFPZvmBesW4ccm9z9ubQYbxNxGxOCIeBbYUEeAOjR+f7Mdbqisss0rLUkPyF+mtW9Jz8OcCd5J0/V0XEQslXQLMj4g5wPeAGyQtIjmiPzVd/Wrg+8BjJF3930+/SCqjNNnvt1/F3tasSmUZf9OZIZLmA23ApRHxs94MrlO7756Uy12+HHbbrWJva1ZtdpjsJd0TEccCkyPiMzuz8YiYC8wtW3ZhyeMNJJfZla/X2tHyivGRvVmpLONvOrNXRLwgaV/gl5IWRMQz271JN8fgZBl/89iilzkAmDdnDmtf//puhLzzqnEMhmPKrhrj6o2YOjuyHy/paOBESTdTtsNHxEM9eudq5mRvVirL+JsdSgtxERHPSmoGDgG2S/bdHYOTafzNicfDxRdz+IQJUKFxEdU4BsMxZVeNcfVGTJ3tKRcC55Ps2F8vey2AY3r0ztWsqQkGDXKyN0tsHX8DLCU53fa+LCtKagLWRcRGSaOBI4DLcou03Pjxyb1H5Fs/t8Nkn146c5uk/y8ivljBmIonubCOWSrL+BtJhwM/JblU9m8lfSEipgD7A9dI2kIyIPjSslH8+XKyNwOyFdXpX4m+nZO92VYZxt/MI+kFLF/v98CBuQe4I0OGwMiRTvbW72Wd4rb/cbI3qw3jx3vmO+v3nOx3xMnerDbsvruP7K3fy5TsJc2Q9I/p4zHpQJ3aNm4ctLTA5s1FR2JmPeGSuWZdJ3tJFwGfAdrnlB8E/CjPoKrCuHFJ1a3ly4uOxMx6oj3ZR3dKA5jVlixH9u8CTgTWwtZrZnfJM6iq4GvtzWrD+PGwcSO88krRkZgVJkuy35TWqw+AtFZ97XOyN6sNvvzOLFOyv0XSNcBISf8M3A18J9+wqoCTvVltaE/2HpFv/ViW6+y/Jul4YDWwH3BhRHR3bvu+Z+zY5N7J3qxv23335N5H9taPdZnsJf0rcGu/SPClGhpgl12c7M36Onfjm2Xqxh8O3CnpN5LOkTQ276Cqhq+1N+v7GhuTm5O99WNdJvuIaK9xfQ6wO/ArSXfnHlk1cLI3qw2+1t76ue5U0GsBXgReBnbLJ5wq42RvVhuc7K2fy1JU58PpHNT3AKOBf46Ig/IOrCo42ZvVBid76+eyHNnvDXwiIqZExEXdmZ5S0mxJT0laJOn8Dl6vl/ST9PX7JU0see0gSX+QtFDSAklDsr5vrxk3LinEsWFDxd/azHqRJ8Oxfm6HyV7S8PThZcBzkkaV3rrasKQ64GrgbcBk4DRJk8uanQWsjIjXA1cAX0nXHUhSkvdD6XiBmcCr3frJekP7tfYvvVTxtzazXrT77rB2LaxZU3QkZoXo7Mj+pvT+QWB+ev9gyfOuTAcWRcSzEbEJuBk4qazNScAP08e3AcdKEvBW4NGI+CNARLwcEZWfkcaFdcxqgy+/s35uh9fZR8Q70/udneFuD+D5kudLgDfuqE1EtElaBewKvAEISXcCY4CbI+Ky8jeQdDZwNsDYsWNpbm7uMqixQ+G8A9s6bdO+ncYlS5gGLLjrLl5ev77LbfeW1tbWTD9LkRxj7+krcfZppcn+DW8oNhazAmQpqnNPRBzb1bKOVu1gWfm0UztqMxCYARwOrAPukfRgRNyzTcOIa4FrAaZNmxYzZ87sIiS46sbbuXxB5z/24tPT7aRfCgeOGQMZtt1bmpubyfKzFMkx9p6+Emef5iN76+c6O2c/JD03P1pSU8n5+okk19t3ZQmwZ8nzCUD5CJmtbdLz9COAFenyX0XE8ohYB8wFDs32I/WiMWNAcje+WV/nZG/9XGfn7P+F5Pz837Dt+frbSQbedWUeMEnSPpIGA6cCc8razAHOSB+fDPwynWHvTuAgScPSfwKOBjJfBdBrBg2C0aOd7M36upEjob7eyd76rc7O2X8D+Iakj0bEVd3dcHoO/lySxF0HXBcRCyVdAsyPiDnA94AbJC0iOaI/NV13paSvk/zDEMDciPhFd2PoFb7W3qzvk5IR+b78zvqpLLPeXSXpAJLL54aULL8+w7pzSbrgS5ddWPJ4A3DKDtb9Ecnld8VysjerDS6sY/1YlgF6F5Fc5z6ZJHG/Dfgt0GWyrwnjxsHTTxcdhZn11Pjx8HjlzwaaVYMsFfROBo4FXoyIfwQOBupzjaqatB/ZR/mFBGbWp/jI3vqxLMl+fURsAdrSqnotwL75hlVFxo1LyuWuXl10JGaFyVD6+ihJD0lqk3Ry2WtnSHo6vZ1Rvm7FjB+flL+uYM0Ms2qRJdnPlzQS+A7JaPyHgAdyjaqauIqe9XMZS18/B5zJa5U329cdBVxEUlBrOnCRpKa8Y+5Q++V33petH8oyn/1HIuKViPg2cDxwRtqd3z+0f0E8/3zn7cxqV5elryNicUQ8CmwpW/cE4K6IWBERK4G7gNmVCHo7vtbe+rEdDtCTtMMiNpIOjYiH8gmpykydmtzfdx8cd1yxsZgVI0vp6+6su0dHDbtb/ro7pa8BGpYu5XBg4V13sWzTpq4j30nVWP7YMWVXjXH1Rkydjca/vJPXAjimR+/cVzQ1wQEHwG9/W3QkZkXJUvq6x+t2t/x1t0pfA0yZktyNGpVr+etqLH/smLKrxrh6I6bOiurM6tGWa8mMGXDjjbB5M9TVFR2NWaVlKX3d2bozy9Zt7pWoumvXXWHgQHfjW7/U5Tn7tGTtBZKuTZ9PkvTO/EOrIkcemcyD/eijRUdiVoQspa935E7gren8Gk0k01ffmVOcnRswIBlw62Rv/VCW0fjfBzYBb0mfLwG+lFtE1WjGjOTeXfnWD0VEG9Be+voJ4Jb20teSTgSQdLikJSQVMa+RtDBddwXwRZJ/GOYBl6TLirH77rB0aWFvb1aULivoAa+LiPdKOg0gItZL6ug8XO3aay/Yc88k2X/0o0VHY1ZxGUpfzyPpou9o3euA63INMKuDD4Zbb/UpOet3shzZb5I0lHRQjaTXARtzjaoaHXkk/OY3rqRn1pfNnJkU1vnjH4uOxKyisiT7i4D/BfaUdCNwD/BvuUZVjWbMSM71/fnPRUdiZjurfUTzvfcWGoZZpXWa7NPu+ieBd5NUx/oxMC0imnOPrNr4vL1Z37f77vCGN0CVXUdtlrdOk31EBPCziHg5In4REf8TEcsrFFt1mTIFRo5MuvLNrO+aNQt+/Wto67wgj1ktydKNf5+kw3OPpNoNGABHHOEje7O+btasZGKrhx8uOhKzismS7GcBf5D0jKRHJS2QlOmC8wwzZdVL+kn6+v2SJpa9vpekVkmfyvJ+uZsxA558EpYtKzoSM9tZRx+d3Lsr3/qRLMn+bcDrSMrj/i3wzvS+UxlnyjoLWBkRrweuAL5S9voVwB0ZYqyMI49M7n/3u2LjMLOdN24c7L+/B+lZv5Jl1ru/dHTLsO0uZ8pKn/8wfXwbcGz7NfyS/g54FliY9YfJ3bRpUF/vrnyzvm7WrGT8zauvFh2JWUVkKaqzs7LMlLW1TUS0SVoF7CppPfAZkil1d9iF391ZsqD7M2WVm7rffgyYO5eH3plfxeBqnHWpnGPsPX0lzpoycyZ861vw0EPwxqwT+Jn1XXkm+yyzXe2ozReAKyKitbNifd2dJQt2Yqascu94B3z1q8w8/HBoaOjy/XZGNc66VM4x9p6+EmdNKb3e3sne+oEs5+x3VpaZsra2kTQQGAGsIOkBuEzSYuATwOcknZtjrNnNmJFcsvPAA0VHYmY7a8yYZOpqn7e3fiLPZJ9lpqw5wBnp45OBX0biyIiYGBETgSuBf4+Ib+YYa3ZveQtIPm9v1tfNnJnsxz5vb/1Absk+y0xZwPdIztEvAj4JbHd5XtUZORIOPNDFdcz6ulmzYN06mDev6EjMcpfOa2LHAAAgAElEQVTnOfssM2VtIJkSs7NtXJxLcD0xYwZcf33SnT8w14/QzPLSfr39vfcmPXZmNSzPbvzadeSR0NoKj2aqLWRm1WjXXeGgg1xcx/oFJ/ud0T4pjrvyzfq2WbOSIlkb+9+s3da/ONnvjAkTYO+9PUjPrK+bNQvWr/fVNVbznOx31pFHJsk+yksHmFmfcdRRydU17sq3Gudkv7NmzIAXX4Rnnik6EjPbWU1NMHWqr7e3mudkv7Paz9u7K9+sb5s1C37/e9iwoehIzHLjZL+z9t8fRo1ysjfr62bOTAbo3X9/0ZGY5cbJfmcNGABHHOER+WZ93ZFHJvuzu/KthrkiTAcmnv+LLtssvvQdSVf+z38OLS2w224ViMzMet3IkXDIIUmyv/jioqMxy4WP7HviyCOT+9/9rtg4zHImabakpyQtkrRdWWtJ9ZJ+kr5+v6SJ6fKJktZLeiS9fbvSsWcyaxbcd19yGZ5ZDXKy74lDD4UhQ9yVbzVNUh1wNfA2YDJwmqTJZc3OAlZGxOuBK4CvlLz2TERMTW8fqkjQ3TVrFmzaBH/4Q9GRmOXCyb4n6uth+nQP0rNaNx1YFBHPRsQm4GbgpLI2JwE/TB/fBhwrSRWMsWdmzIC6Op+3t5rlc/Y9deSRcOmlsHYtNDQUHY1ZHvYAni95vgR4447aRESbpFXArulr+0h6GFgNXBARHXaFSTobOBtg7NixNHdR6GbsUDjvwLZO23S1jVKHTprElttv55Fjj828TkdaW1u79b6V4Jiyq8a4eiMmJ/uemjEDNm9Ozvf18EvCrEp1dIReXjpyR23+CuwVES9LOgz4maQpEbF6u8YR1wLXAkybNi1mzpzZaVBX3Xg7ly/o/Cts8emdb2MbJ50EX/86M6dPh2HDsq9Xprm5ma5irzTHlF01xtUbMbkbv6fe/Oak3Ka78q12LQH2LHk+AXhhR20kDQRGACsiYmNEvAwQEQ8CzwBvyD3inTFzJrz6qgfcWk1ysu+pESPg4IOd7K2WzQMmSdpH0mDgVGBOWZs5wBnp45OBX0ZESBqTDvBD0r7AJODZCsXdPTNmwMCBrpNvNSnXZN+Dy3WOl/SgpAXp/TF5xtljM2Yko3jbOj9/aNYXRUQbcC5wJ/AEcEtELJR0iaQT02bfA3aVtAj4JNC+vx8FPCrpjyQD9z4UESsq+xNk1NgIhx/uQXpWk3I7Z19yuc7xJF188yTNiYjHS5ptvVxH0qkkl+u8F1gO/G1EvCDpAJIvmT3yirXHZsyAb34THnkEpk0rOhqzXhcRc4G5ZcsuLHm8ATilg/X+C/iv3APsLTNnwle/Cq2tSfI3qxF5Htnv9OU6EfFwRLSfE1wIDJFUn2OsPdNeXGfu3M7bmVl1mzUr6aHzeXurMXmOxu/J5TrLS9q8B3g4IjaWv0F3L9WBbJfrZFH+Xge8+c2MvPRSHpgyhU277trxShlV46Uf5Rxj7+krcfYLb3kLDBqUdOWfcELR0Zj1mjyTfU8u10lelKaQdO2/taM36O6lOpDtcp0struk5/rrYcoU3nL77cnjHqjGSz/KOcbe01fi7IuyzHMB6VwXkNTKmD7dg/Ss5uSZ7Ltzuc6S0st1ACRNAH4K/ENEPJNjnDuloy+R8w57Fx+94QZO3nIA8ydMee0LxMz6jtmz4cILk678I44oOhqzXpHnOfueXK4zEvgF8NmI6DMnz771plNYussYvnDXNQzYsrnocMxsZ3ziE7DXXnDWWbBhQ9HRmPWK3JJ9Dy/XORd4PfD/lcyWVfVzyK4fPIQvH3MWU1qe5X1/vLPocMxsZzQ2wrXXwlNPwRe/WHQ0Zr0i13K5Pbhc50vAl/KMLS9z9zuC3+19EJ/69fWw/AswenTRIZlZd731rXDmmfCVr8App8DUqUVHZNYjrqDX2yQuOu5DNGxaD5//fNHRmNnOuvzy5J/1D37QBbOsz3Oyz8Gi0Xvxw0PfCd/5DsyfX3Q4ZrYzRo2Cq6+Ghx9OEr9ZH+Zkn5NvzHgf7LYbfPSjsGVL0eGY2c54z3uS20UXJefwzfooJ/ucrKlvgMsuS6a+7eF192ZWoG9+E4YOhX/6J//jbn2Wk32e3v/+pCLXZz4Dr7xSdDRmtjPGjYMrrkhmtvz2t4uOxmyn5Doav98bMACuuiqZHOfii+HKK4uOyMw60GWlvRjN4uOPT/5xf+c7k+vwzfoQJ/sctX+BfOng2Zz6H1fx9jWT+NOYidu1c6U9syonJdfeH3AAfOhD8ItfJMvM+gh341fA1476AGvqG/jC3ddAlE8PYGZ9wsSJ8P/+H9xxB9x4Y9HRmHWLk30FvDJ0OF876gO8+bkFvGvhvUWHY2Y76yMfScbhfPzj8NJLRUdjlpm78SvkxwefwCkL7ubyX1zB5JZn+dqRH2DjoPqiwzKzjNpPy71u/w8w9/6PctfRJ3Pu352/TRufkrNq5SP7CtkyoI7T3/slbpo6m3+e9zPm/uBjHLL0yaLDMrNuemb0nvzHW07jnU/9lu/e9gX2fOXFokMy65KTfQWtrR/GBSecw+nv/RL1bZu47cZ/4/zm73tmLbM+5j/fdDJfnvlB3vT8Y9z93Q/zid/eSP2rG4sOy2yH3I1fgN9NnMrsD17N5+79Hh+6/794esIDfOrtn+CPu+8HwHkHtnFm2aVA7h40qx5bBtTxnTe+mzmTj+Jz936fT/zux7z7sV9y1l8eYeq7Dttu/y3lfdmK4CP7grTWD+Nzsz/KP5zyBRo2ree/f/RpPv2rHzK47dWiQzOzjF7aZTQfP/HTnHbqv7NhYD3f+68v8s6vfYm9Vv616NDMtuFkX7Bf73sYJ5x1NbcdcCzn3HcrP//hx9n9yYUoXJbTrK/4w94H8fZ//A++NOuD7PHkY9z1vY/wr7/5EUNe9Sk6qw7uxq8Ca+ob+MzbP84d+72FS//3Kt7zpc9z9LAR/H7vg/nt3lP53cSpXVf4wt2DZkVqqxvId6e/m93fPYNdv/VDPv77m3n3wnv57ymzmD9hMg/v/je01g/LtC+D92frXbkme0mzgW8AdcB3I+LSstfrgeuBw4CXgfdGxOL0tc8CZwGbgY9FxJ15xloNml93OMf/03/y9fW/Z/VvH2XGX/7IiU/8GoBnm3bndxOn8tu9p/KHvQ9i9ZDGgqO1/sb7czZrm0ZxyYmf5sdTT+DffvVDzv3DLdTFFjZrAE+Omci8CZOZP2Ey8/eYzIvDRxcdrvUTuSV7SXXA1cDxwBJgnqQ5EfF4SbOzgJUR8XpJpwJfAd4raTJwKjAF2B24W9IbImJzXvFWizX1DTw5bRaXjzweIpi0/Dlm/OURZix+hHc/9ks+8PBcNmsAT+y2D8+PGMuLu+ya3Bp35dT3PcpfdxnNi4277vAafh8t2M7w/tx99+11EO/+wOU0blzH1Bee4vAlj3PY0sf5+wV3ceZD/wPAkuG7MW/CZJ4evRfLh41keUNyW9bQxBs+9TM2DRzU4zi8zxvke2Q/HVgUEc8CSLoZOAko/XI4Cbg4fXwb8E1JSpffHBEbgT9LWpRu7w85xlt9JJ4eszdPj9mb7087iUGbX+Xgv/6JGYsf4dClTyb/CCx+mF02rd9u1VeGNPJi46601g9j3aAhrB9Uz/pB9dz0v1exftCQbZZtqhtE24A62gYMpG3AAL7x/sNh0CAYODC5DRoEdXXJxD4SDBjA8AULYPDgbZYhbXtLf4YOn3fws3b6fAefT2eG/eUv8MQTXW8n6/vlZNhzz8GTO1lzYc89oaGhdwPqmPfnndRaP4zf7nMIv93nEAAGbm5j/5Y/M23p40xb8jhvee5R3vV4c4frrqpvYFlDE8sbRvLK0F3YMHAwGwbWp/eD2Tiwng2DBm9dvnFgsi9vVh2bBwxg84A6PnjyA5y0L7z/P3/L5gHJ8i0SQXpTctu6LH0eJPtEpLvGHZ84OnlQui+X3rfLsn/Tzf2zs233sh7tjz0xdCjsvXdum88z2e8BPF/yfAnwxh21iYg2SauAXdPl95Wtu0d+ofYNr9YNYv6EKcyfMGWb5Q0b1zGu9WXGrUluY1tfu2/YtJ7GTesYs3YlQ1/dyLBXNzD01Q0Me3UjdTsaBPg/XcdyaC/8PHmbXnQAGfUozjvvhLe+tbdC6Yz3517SVjeQBeMnsWD8JL4/7SQA6ts2MXrtK4xeu5LR615hTGtynyx7hTFrVzJxxQsMadvEkLaN6X1yy+qkngb+/Z5uYFvVun8WFde8PSZzyvsv22ZZb/bK5JnsO/oXrHwWmB21ybIuks4Gzk6ftkp6KkNco4HlGdoV5mM7EePjXTfpbVX/OdI3YoSexHnCCTuz1s4cPlTj/lyVv9+d2X8B/pRDLCWq8bOqxpigqLiWPg5feec2i/SVrQ87iynT/pxnsl8C7FnyfALwwg7aLJE0EBgBrMi4LhFxLXBtd4KSND8ipnVnnUpzjL2jL8QIfSbOqtufq/Vzq8a4HFN21RhXb8SU53X284BJkvaRNJhkgM6csjZzgDPSxycDv4yISJefKqle0j7AJOCBHGM1s855fzbrw3I7sk/P2Z0L3Elyqc51EbFQ0iXA/IiYA3wPuCEdsLOC5AuEtN0tJL3TbcA5tT5y16yaeX8269uU/OPdf0g6O+0urFqOsXf0hRih78RZbar1c6vGuBxTdtUYV2/E1O+SvZmZWX/j2vhmZmY1rt8ke0mzJT0laZGk84uOB0DSnpLulfSEpIWSPp4uHyXpLklPp/dNVRBrnaSHJf1P+nwfSfenMf4kHbRVdIwjJd0m6cn0M31ztX2Wkv41/V0/JunHkoZU42dZ7aphf5Z0naQWSY+VLCv0761av1PSv/MHJP0xjesL6fLC//ar8btN0mJJCyQ9Iml+uqxHv8N+kez1WqnPtwGTgdOUlPAsWhtwXkTsD7wJOCeN63zgnoiYBNyTPi/ax4HScldfAa5IY1xJUiq1aN8A/jci/gY4mCTeqvksJe0BfAyYFhEHkAx0ay8rW22fZdWqov35B8DssmVF/71V63fKRuCYiDgYmArMlvQmquNvv1q/22ZFxNSSS+569juMiJq/AW8G7ix5/lngs0XH1UGct5PUHn8KGJ8uGw88VXBcE9I/rmNI6uuJpMDDwI4+34JiHA78mXQcSsnyqvksea3C3CiSK2H+Bzih2j7Lar9V0/4MTAQeK3leNX9vaQxV950CDAMeIqnAWOjffrV+twGLgdFly3r0O+wXR/Z0XOqzqsp1SpoIHALcD4yNiL8CpPe7FRcZAFcC/wa019fdFXglItrS59Xwee4LLAO+n3bJfVdSA1X0WUbEUuBrwHPAX4FVwINU32dZ7ap5f66av7dq+05Ju8sfAVqAu4BnKP5vv1q/2wL4P0kPKqksCT38HfaXZJ+pXGdRJDUC/wV8IiJWFx1PKUnvBFoi4sHSxR00LfrzHEhSsv8/I+IQYC3Vcfpjq/Qc20nAPiSzvzWQdEWXK/qzrHbV+PdXVarxOyUiNkfEVJKj6enA/h01q1Q8Vf7ddkREHEry/XCOpKN6usH+kuwzlessgqRBJDvljRHx3+nilySNT18fT/KfcFGOAE6UtBi4maS760pgpJKSqFAdn+cSYElE3J8+v40k+VfTZ3kc8OeIWBYRrwL/DbyF6vssq13V7s9Uwd9btX+nRMQrQDPJmIIi//ar9rstIl5I71uAn5L8c9Sj32F/SfZZSn1WnCSRVB17IiK+XvJSadnRM0jOuxUiIj4bERMiYiLJ5/bLiDgduJekJCoUHCNARLwIPC9pv3TRsSQV26rmsyTpvn+TpGHp7749xqr6LPuAqtyfU4X+vVXrd4qkMZJGpo+Hkvzj+wQF/u1X63ebpAZJu7Q/Bt4KPEZPf4eVHnhQ1A14O8nEUs8Any86njSmGSRdRI8Cj6S3t5OcN7oHeDq9H1V0rGm8M4H/SR/vS1LffBFwK1BfBfFNBeann+fPgKZq+yyBLwBPpjvvDUB9NX6W1X6rhv0Z+DHJ2ItXSXobzir6761av1OAg4CH07geAy5Ml1fF3341fbel7//H9Law/e+7p79DV9AzMzOrcf2lG9/MzKzfcrI3MzOrcU72ZmZmNc7J3szMrMY52ZuZmdU4J3szM7Ma52RvZmZW45zsrdek81TPlPQ5Sd8tOh4zM0u4qI6ZmVmN85G9mZlZjXOyt14jabGk4yRdLOlHJctvlfSipFWSfi1pSpFxmtm2JH1G0lJJayQ9JelYSfWSrpT0Qnq7UlJ92n6mpCWSzpPUIumvkv6x6J/DdszJ3irhDmASsBvwEHBjseGYWbt0pshzgcMjYhfgBGAx8HmSaWinAgeTTLN6Qcmq44ARwB4kkwBdLampcpFbdzjZW+4i4rqIWBMRG4GLgYMljSg4LDNLbCaZfXGypEERsTgingFOBy6JiJaIWEYyY+MHStZ7NX391YiYC7QC+5Vv3KqDk73lSlKdpEslPSNpNckRA8DoAsMys1RELAI+QfKPeIukmyXtDuwO/KWk6V/SZe1ejoi2kufrgMacw7Wd5GRveXsfcBJwHEmX38R0uYoKyMy2FRE3RcQMYG8ggK8AL6TP2+2VLrM+yMne8rYLsBF4GRgG/Hux4ZhZKUn7STomHXy3AVhP0rX/Y+ACSWMkjQYuBH7UyaasijnZW96uJ+n+Wwo8DtxXbDhmVqYeuBRYDrxIMpD2c8CXgPnAo8ACksG1XyooRushF9WxXiPpOeD9JF32EyLigwWHZGZm+MjeeomkMcAYkqP4ycCfi43IzMzaOdlbj0k6HHgauAr4GTAB+E6hQZmZ2VbuxjczM6txPrI3MzOrcU72ZmZmNW5g0QH0ltGjR8fEiRO7bLd27VoaGhryD6jK+XNI9MfP4cEHH1weEWOKjqMzWfbnav/dVXt8UP0xOr6uZd2faybZT5w4kfnz53fZrrm5mZkzZ+YfUJXz55Doj5+DpL903apYWfbnav/dVXt8UP0xOr6uZd2f3Y1vZmZW45zszczMapyTvZmZWY1zsjczM6txTvZmZmY1zsnezMysxjnZm5mZ1TgnezMzsxpXM0V1slqwdBVnnv+LTtssvvQdFYrGrG+QNBv4BlAHfDciLi17/SjgSuAg4NSIuK3ktb2A7wJ7AgG8PSIW9zQm78tm2fnI3sw6JakOuBp4GzAZOE3S5LJmzwFnAjd1sInrga9GxP7AdKAlv2jNrCP97sjezLptOrAoIp4FkHQzcBLweHuD9iN1SVtKV0z/KRgYEXel7VorFLOZlfCRvZl1ZQ/g+ZLnS9JlWbwBeEXSf0t6WNJX054CM6sgH9mbWVfUwbLIuO5A4EjgEJKu/p+QdPd/b7s3kc4GzgYYO3Yszc3NnW547FA478C2Ttt0tY08tba2Fvr+WVR7jI6v9+Sa7DMM6vkQcA6wGWgFzo6Ix9PXPguclb72sYi4M89YzWyHlpAMrms3AXihG+s+XHIK4GfAm+gg2UfEtcC1ANOmTYuuZhO76sbbuXxB519hi0/vfBt5qoYZ0bpS7TE6vt6TWzd+xkE9N0XEgRExFbgM+Hq67mTgVGAKMBv4lrv+zAozD5gkaR9Jg0n2zTndWLdJUvt828dQcq7fzCojz3P2Wwf1RMQmoH1Qz1YRsbrkaQOvdQ2eBNwcERsj4s/AonR7ZlZhEdEGnAvcCTwB3BIRCyVdIulEAEmHS1oCnAJcI2lhuu5m4FPAPZIWkJwS+E4RP4dZf5ZnN35Hg3reWN5I0jnAJ4HBJP/1t697X9m6WQcEmVkvi4i5wNyyZReWPJ5H0r3f0bp3kVx/b2YFyTPZZxrUExFXA1dLeh9wAXBG1nW7O6AHqn9QT6X0pYElefLnYGb9QZ7JvruDem4G/rM763Z3QA9U/6CeSulLA0vy5M/BzPqDPM/ZdzmoR9KkkqfvAJ5OH88BTpVUL2kfYBLwQI6xmpmZ1azcjuwjok1S+6CeOuC69kE9wPyImAOcK+k44FVgJUkXPmm7W0hG7bYB56QDfczMzKybcr3OPsOgno93su6XgS/nF52ZmVn/4HK5ZmZmNc7J3szMrMY52ZuZmdU4J3szM7Ma52RvZmZW45zszczMapyTvZn1eYotvGXxI+z78pKiQzGrSk72ZtbnBeIHt17MyY/dXXQoZlXJyd7M+j6JlcOGM2rd6q7bmvVDTvZm1iVJsyU9JWmRpPM7eP0oSQ9JapN0cgevD5e0VNI384pxxdDhjFrvZG/WESd7M+uUpDrgauBtwGTgNEmTy5o9B5wJ3LSDzXwR+FVeMQKsHDqcJh/Zm3XIyd7MujIdWBQRz0bEJpLpqE8qbRARiyPiUWBL+cqSDgPGAv+XZ5Arho3wkb3ZDjjZm1lX9gCeL3m+JF3WJUkDgMuBT+cQ1zZWDB1Ok5O9WYdynfXOzGqCOlgWGdf9CDA3Ip6XOtpMyZtIZwNnA4wdO5bm5uZO248dCucd2Lb1+d/8qZGmR9bwqSkbiQF1AF1uI0+tra2Fvn8W1R6j4+s9TvZm1pUlwJ4lzycAL2Rc983AkZI+AjQCgyW1RsR2g/wi4lrgWoBp06bFzJkzO93wVTfezuULXvsKO2PNSKZHcN28DawYNgKAxad3vo08NTc309XPULRqj9Hx9R4nezPryjxgkqR9gKXAqcD7sqwYEae3P5Z0JjCto0TfG1YOHQ5A07rVW5O9mSX69Tn7KS89wxkP/hwia4+kWf8TEW3AucCdwBPALRGxUNIlkk4EkHS4pCXAKcA1khZWOs6X0wQ/av2qSr+1WdXr10f2Ryx+hM81f59bDzyOdYOHFh2OWdWKiLnA3LJlF5Y8nkfSvd/ZNn4A/CCH8IDXjuw9It9se/36yH51fQMAIza0FhyJmfXUivZk72vtzbbTr5P9qiGNgJO9WS1YOXQXAF9+Z9YBJ3uc7M1qwcZB9awdNIRR63zO3qxcrsk+Qz3tT0p6XNKjku6RtHfJa5slPZLe5uQRn5O9WW1ZMWyEj+zNOpDbAL2SetrHk1ynO0/SnIh4vKTZwySX4qyT9GHgMuC96WvrI2JqXvGBk71ZrfFkOGYdy/PIPks97XsjYl369D66GM3b21anyX64k71ZTVg51NPcmnUkz2Tf3XraZwF3lDwfImm+pPsk/V0eAa6pH8YW5CN7sxqxYpiP7M06kud19pnraUt6PzANOLpk8V4R8YKkfYFfSloQEc+UrdetWtqwfT3tTQ0NHN24BpUs6yu1jnuiL9V0zpM/h9qy0pPhmHUoz2SfqZ62pOOAzwNHR8TG9uUR8UJ6/6ykZuAQYJtk391a2rB9Pe0TBzXy7NJ12ywrsp52pfSlms558udQW14eNoLGTeupb9vExoGDiw7HrGrk2Y2/tZ62pMEk9bS3GVUv6RDgGuDEiGgpWd4kqT59PBo4Aigd2NdrVg1pdDe+WY1or6I30kf3ZtvILdlnqacNfJVkJqxbyy6x2x+YL+mPwL3ApWWj+HvNqnone7Na0V5Fb1cP0jPbRq618TPU0z5uB+v9Hjgwz9jarRrSyPg1yyvxVmaWs5XD0pnvfGRvto0uj+wlHVCJQIqyekgDIzb6yN6sFrxWH99V9MxKZenG/7akByR9RNLI3COqsNVDGpPr7D3NrVmft3VOex/Zm22jy2QfETOA00lG1s+XdJOk43OPrEJWDWmkfnMbQ9o2dt3YrJ/KUPr6KEkPSWqTdHLJ8qmS/iBpYVoW+73l6/amV4buwhbka+3NymQaoBcRTwMXAJ8huRb+PyQ9KendeQZXCS6Za9a5ktLXbwMmA6dJmlzW7DngTOCmsuXrgH+IiCnAbODKPHsINw+oY9WQRh/Zm5XJcs7+IElXkIyoPwb424jYP318Rc7x5W5VvZO9WReylL5eHBGPAlvKlv8pPVhor53RAozJM9gVw4Z7NL5ZmSxH9t8EHgIOjohzIuIh2LrjXpBncJXgI3uzLnW39HWHJE0HBlNWHKu3JVX0PEDPrFSWS+/eTjID3WYASQOAIRGxLiJuyDW6Cngt2a8tOBKzqpW59PUONyCNB24AzoiILTto063y1+Wlr9uNGrsLw5e3cN6BbYWWQu4LpZirPUbH13uyJPu7geOA9kPfYcD/AW/JK6hKak/2w335ndmOZCp9vSOShgO/AC6IiPt21K675a/LS1+3G9M2kpkrFnH5goGFlr7uC6WYqz1Gx9d7snTjD4mIrZkwfTwsv5Aqy934Zl3qsvT1jqTtfwpcHxG35hjjVlsnw/HltGZbZUn2ayUd2v5E0mHA+vxCqqw19cn/LU72Zh3LUvpa0uGSlgCnANdIWpiu/vfAUcCZaUnsRyRNzTPeFUOHU7+5jcZNNfM1ZdZjWbrxP0FSu7692248kOu1spW0ZUAdq+sbnOzNOpGh9PU8ku798vV+BPwo9wBLuGSu2fa6TPYRMU/S3wD7kQzUeTIiXs09sgpa1V5Fz8z6PJfMNdte1olwDgcmpu0PkUREXJ9bVBXmI3uz2rFi2AjAR/ZmpbpM9pJuAF4HPAJsThcHUDPJPpnT3pfemdWCrUf2TvZmW2U5sp8GTI6o3aGtq4Y08rqXlxQdhpn1gvZz9u7GN3tNltH4jwHj8g6kSKuGNHqaW7MasWbwMF4dUOcje7MSWY7sRwOPS3oA2Do1XEScmFtUFZZ04zvZm9UEKbnW3vXxzbbKkuwvzjuIoq0a0siQtk3Ut21i48DBRYdjZj308rARPrI3K5FlPvtfAYuBQenjeSQT49SM1e0lc310b1YTtlbRMzMg2xS3/wzcBlyTLtoD+FmeQVXaqvoGAIZ7RL5ZTVgx1NPcmpXKMkDvHOAIYDVAOjf1bnkGVWmuj29WW1YO85G9WaksyX5jRGxqfyJpIBmnt5Q0W9JTkhZJOr+D1z8p6XFJj0q6R9LeJa+dIenp9HZGlvfbWVuTvUfkm9WEFUOHM3L9Gti8uevGZv1AlmT/K4k8ae0AACAASURBVEmfA4ZKOh64Ffh5VytJqgOuBt4GTAZOkzS5rNnDwLSIOIjkVMFl6bqjgIuANwLTgYskNWX7kbrPR/ZmtWXl0OEMIGDlyqJDMasKWZL9+cAyYAHwLySTYVyQYb3pwKKIeDbtGbgZOKm0QUTcGxHr0qf38dpEGicAd0XEiohYCdwFzM7wnjtltZO9WU1pL5nL8uXFBmJWJbJMhLMF+E566449/v/27jxOiurc//jnOzPAsDMwQBRFUHCLGkXQxIASHY1bNAu5kpgbNSYmuRqz6C9qbuIWk2iuC/7URI2a6xaXkBslCZEr4rhFCai4oBARUccNZAcVHHjuH1UNTdvTXcN0dfVUP+/Xq1/TXVWn+umarn6qTp06B3g963ULwZl6W04G/l6g7JDcApJOAU4BGDx4MM3NzUWDGtwdztizdYtpNa3dADii7yoa92yNtJ7Obs2aNVXxOYvx7ZBOmS5zWbIEdt012WCcqwBR+sZ/hTzX6M1sx2JF80zLe61f0tcIuuU9qD1lzex64HqA0aNH2/jx44uEBFfdfi+XPZf7ses4oWt35r76Hpc9V8ei44uvp7Nrbm4myvZKO98O0Ug6HLgSqAVuMLOLc+YfCEwC9gImmtnkrHknsLk28CIzuznueDNd5vqZvXOBqH3jZ9QDXwb6RyjXAmyf9Xo74M3chSQ1Af8JHGRm67LKjs8p2xzhPbfaym7ei55z+WS1vzmUYN+cJWmKmb2QtdhrwInAmTllM+1vRhMcsD8Zlo31YvqmM3tP9s4B0TrVWZr1eMPMJgEHR1j3LGCkpOGSugITgSnZC0jah+D+/WPMbHHWrGnAYZIawoZ5h4XTYrOq3oe5da4NUdrfLDKzZ4GNOWXL2v4mw5O9c1uKUo0/KutlDcEReu9i5cysVdJpBEm6FrjJzOZKuhCYbWZTgP8CegF/lATwmpkdY2bLJP2c4IAB4EIzW9aeD9ZeK+t7eQ96zuXX3vY3xcp+pP1Nqa3r0o21Xerp6cneOSBaNf5lWc9bCbrO/bcoKzezqQSt97OnnZv1vKlA2ZuAm6K8TymsrO/FDsvfKtfbOdeZRG5/05Gy7W1wm6+xbbYNfXvz9vPPMy+hBpidofFnpcfo8ZVOlNb4nylHIEnzke+ca1Ok9jcFyo7PKducb8H2NrjN39h2s4Pq+rJXbS0fS6gBZmdo/FnpMXp8pROlGv9Hheab2eWlCyc5K+t70Wed943vXB6b2t8AbxC0v/lqxLLTgF9mdYp1GHBO6UP8qOXd+/g1e+dCUTrVGQ18l+A62xDgOwQ94vUmwrX7zmJlfS96fvgBdRvarhZ0rhqZWSuQaX/zInB3pv2NpGMAJI2R1EJwt851kuaGZZcBmfY3syhD+5uMZZ7sndskyjX7RmCUma0GkHQ+8Ecz+2acgZWbd5nrXNsitL+ZxeYeMHPLlrX9TcayHn3hdU/2zkG0M/uhwPqs1+uBYbFEkyBP9s6ly7LufWD1ali3rvjCzqVclDP7W4F/SvozQSvaLwC3xBpVAlaFY9p7sncuHbboRW9I7Hf7OVfRorTG/4WkvwPjwkknmdnT8YZVfj4YjnPpskXHOp7sXZWLUo0P0ANYZWZXAi1hq9xUyVTj9/Ex7Z1LheXei55zmxRN9pLOA85i8+0yXYDb4gwqCX7N3rl08S5zndssypn9F4BjgLUAZvYmKbrlLsOTvXPp4mPaO7dZlGS/3syMsItLST3jDSkZH9Z24b0u3TzZO5cSK7qH5yRLliQbiHMVIEqyv1vSdUA/Sd8CpgO/izesZPgwt86lx4aaWmho8DN754jWGv9SSYcCq4BdgHPN7P7YI0uAd5nrXMo0Nnqyd44iyV5SLTAtHJ0ulQk+mw+G41zKeLJ3DihSjW9mG4D3JPUtUzyJWuXJ3rl0GTjQk71zROtB7wPgOUn3E7bIBzCz02OLKiEr63ux2+KFSYfhnCuVxkaYPTvpKJxLXJRk/7fwkXpeje9cymSq8c1ASjoa5xLTZrKX9ICZHQLsbmZnlTGmxKzq1pPe69+H1laoi3Ic5JyraI2NsH49rFkDvVPXPYhzkRW6Zr+NpIOAYyTtI2lU9qNcAZZTpmMdVqxINhDnKpCkwyXNl7RA0tl55neTdFc4f6akYeH0LpJulvScpBclnZNbNjaNjcFfv27vqlyh09dzgbMJxqi+PGeeAQfHFVRSNiX75cs3/0g45zJ35lwDHAq0ALMkTTGzF7IWOxlYbmYjJE0ELgGOA74MdDOzPSX1AF6QdIeZLYo98IEDg7/vvgvDUzekh3ORtZnszWwyMFnSz8zs52WMKTFbJHvnXLb9gAVmthBA0p3AsUB2sj8WOD98Phm4WpIITg56SqoDugPrCfrtiF/moN170XNVrmgPeh1J9BGq/Q6U9JSkVkkTcuZtkDQnfEzZ2hjaw5O9c20aArye9bolnJZ3GTNrBVYCAwgS/1rgLeA14FIzWxZ3wIBX4zsXiq0VWsRqv9eAE4Ez86zifTPbO6748vFk71yb8jVlt4jL7AdsALYFGoBHJE3P1BJsKiydApwCMHjwYJqbmwsGNLg7nLFna8FlHp03j7HAgieeoGXo0ILLltqaNWuKfoakVXqMHl/pxNnkvGi1X+aanaSNMcYRmSd759rUAmyf9Xo74M02lmkJq+z7AsuArwL3mdmHwGJJjwGjgS2SvZldD1wPMHr0aBs/fnzBgK66/V4ue67wT9iiXx0JdXWM6NePEUXWV2rNzc0U+wxJq/QYPb7SiZTsJY0FRprZ7yUNBHqZ2StFiuWr9tu/HbHVS5oNtAIXm9k9eeJq15kAFD4bqF1fD8DCp57itU5ytLa1OtMRaZx8O0Q2CxgpaTjwBjCRIIlnmwKcADwOTABmmJlJeg04WNJtQA/gk8CkskQteZe5zhEh2Us6j+AofBfg90AX4Dbg08WK5pmWW+1XyFAze1PSjsAMSc+Z2ctbrKydZwJQ7Gygjm/UdWXHhgZ27CRHa1urMx2Rxsm3QzRm1irpNGAaUAvcZGZzJV0IzDazKcCNwK2SFhCc0U8Mi19D8NvxPMHvwu/N7NmyBd/Y6A30XNWLcmb/BWAf4CmAMAFH6Z0iSrVfm8zszfDvQknNYQwvFyxUAivre1Hv1fjOfYSZTQWm5kw7N+v5BwS32eWWW5Nvetn4mb1zkcazX29mRnhWLqlnxHVvqvaT1JXgKD9Sq3pJDZK6hc8bCWoRXihcqjRWduvl1+ydSxNP9s5FSvZ3S7oO6CfpW8B04HfFCoW33mSq/V4E7s5U+0k6BkDSGEktBEf910maGxbfDZgt6RngQYJr9mVJ9qvqe3qydy5NPNk7V7wa38wulXQoQScYuwDnmlmkse0jVPvNIqjezy33D2DPKO9Raivr/czeuVRpbIRly2DDBqitTToa5xIRpYHeD4E/Rk3wnV2Q7IvdaOCc6zQGDoSNG4MxLwYMSDoa5xIRpRq/DzBN0iOSTpU0OO6gkuRn9s6ljHeZ61yk7nIvMLOPA6cS9ID1kKTpsUeWkFXdesHKlUGVn3Ou8/Muc52LdGafsRh4G1gKDIonnORt6kVv5cpkA3HOlYYne+eKJ3tJ3w3vc38AaAS+ZWZ7xR1YUrzLXOdSxpO9c5E61dkB+IGZzYk7mErgyd65lPFk71zbyV5SHzNbBfw6fN0/e37Zhqgss5X1YZ9BK1YkG4hzrjR69Age3kDPVbFCZ/Z/AI4GniToPS+7r3sDdowxrsT4mb1zKeQd67gq12ayN7Ojw7/DyxdO8jzZO5dCnuxdlYvSQO+BKNPSwpO9cynkyd5VuULX7OsJxp5ulNTA5mr8PgT326fSB3XdoEsXT/bOpcnAgbBgQdJROJeYQmf23ya4Xr9r+DfzuJdgfOp0kqChwZO9c1kkHS5pvqQFks7OM7+bpLvC+TMlDcuat5ekxyXNlfRceCJRXj6mvatyha7ZXwlcKel7ZnZVGWNKnid75zaRVEtwgH8o0ALMkjQlZyTKk4HlZjZC0kTgEuA4SXXAbcC/m9kzkgYAH5b5IwTJfvVqWLcOunUr+9s7l7Qoo95dJWkPYHegPmv6LXEGlihP9s5l2w9YYGYLASTdCRwLZCf7Y4Hzw+eTgaslCTgMeNbMngEws6XlCnoLmXvtly6FbVN7FdK5NkVpoHcecFX4+AzBfffHxBxXsjzZO5dtCPB61uuWcFreZcysFVgJDAB2BkzSNElPSfpxGeL9KO9Yx1W5KD3oTQA+ATxtZieFo97dEG9YCWtogPnzk47CuUqhPNMs4jJ1wFhgDPAe8ICkJ80s310+pwCnAAwePJjm5uaCQQ3uDmfs2Vpwmcw6+ra0sA8wZ/p0ViwrT39ga9asKfoZklbpMXp8pRMl2b9vZhsltUrqQzAgTio71NnEz+ydy9YCbJ/1ejvgzTaWaQmv0/cFloXTHzKzdwEkTQVGEYy1sQUzux64HmD06NE2fvz4gkFddfu9XPZc4Z+wRceH6xg4EIC9hwyBIustlebmZop9hqRVeoweX+lEGfVutqR+wO8IWuM/Bfwz1qiS1tAQdJe7cWPSkThXCWYBIyUNl9QVmAhMyVlmCnBC+HwCMMPMDJgG7CWpR3gQcBBbXusvD6/Gd1UuSgO9/wifXivpPqCPmT0bb1gJa2gAs6D1bt++SUfjXKLMrFXSaQSJuxa4yczmSroQmG1mU4AbgVslLSA4o58Yll0u6XKCAwYDpprZ38r+IfqHQ3t4sndVqlCnOqMKzTOzp+IJqQI0NAR/ly/3ZO8cYGZTgak5087Nev4B8OU2yt5GcPtdcrp0gX79PNm7qlXozP6yAvMMOLjYyiUdDlxJcDZwg5ldnDP/QGASsBcw0cwmZ807Afhp+PIiM7u52PuVTHayHzasbG/rnIuRd5nrqlihTnU+05EVR+yI4zXgRODMnLL9gfOA0QQHFk+GZcvTai472Tvn0mHgQO9Fz1WtKPfZ95D0U0nXh69HSjo6wro3dcRhZuuBTEccm5jZovD6f25LuM8C95vZsjDB3w8cHuE9S6Nfv+CvJ3vn0sPP7F0Vi9Ia//fAeuCA8HULcFGEclE64oijbMf5mb1z6ePJ3lWxKPfZ72Rmx0n6CoCZvR92g1lMlI44OlS2vZ1wQLSOOB55/nnGAS/Pns3rI0ZEibfT6UydQcTJt0MVySR7s2DAK+eqSJRkv15Sd8JkK2knYF2EclE64ihUdnxO2ebchdrbCQdE7IjjV0dAbS079e/PTp2kw4T26kydQcTJt0MVaWwMBsJZuxZ69Uo6GufKKko1/nnAfcD2km4n6PkqSv/WUTriaMs04DBJDZIaCAbTmBaxbMf5MLfOpU/Yi55X5btqVDDZh9X184AvErSavwMYbWbNxVYcDoaR6YjjReDuTEccko4J1z9GUgvB/bnXSZobll0G/JzggGEWcGE4rXw82TuXLple9LxFvqtCBeuzzcwk3WNm+wLt7vUqQkccswiq6POVvQm4qb3vWTKe7J1LF+8y11WxKNX4T0gaE3sklcaTvXPp4sneVbEoDfQ+A3xb0qvAWoKW8mZme8UaWdIaGmDhwqSjcM6Viid7V8WiJPsjYo+iEvmZvXPp0q8f1NZ6sndVKcqod6+WI5CKk0n2fk+uc+kgBWf33kDPVaEo1+yrU79+sGEDrFmTdCTOuVLxXvRclfJk3xbvMte5LUg6XNJ8SQsknZ1nfjdJd4XzZ0oaljN/qKQ1ks7MLVs222wDr7yS2Ns7lxRP9m3xZO/cJlmjWB4B7A58RdLuOYudDCw3sxHAFcAlOfOvAP4ed6wFHXggPPMMLF2aaBjOlZsn+7Z4sncuW9FRLMPXN4fPJwOHZMbRkPR5YCEwt0zx5tfUFLTDefDBRMNwrtw82bfFk71z2aKMRLlpmbAHzZXAAEk9gbOAC8oQZ2FjxkDv3jB9etKROFdWUW69q06e7J3LFmUkyraWuQC4wszWFBows72jWEYZwTLfOvbYc096/uUvzJw4sWDZjuoMIypWeoweX+l4sm+LJ3vnskUZxTKzTIukOqAvsAzYH5gg6ddAP2CjpA/M7Orswu0dxTLSCJbH51nHxIlw+umM32EHGD68YPmO6AwjKlZ6jB5f6Xg1flt694aaGk/2zgWijGI5BTghfD4BmGGBcWY2zMyGAZOAX+Ym+rJqagr+PvBAYiE4V26e7NtSUxPca79iRdKROJe4KKNYAjcSXKNfAPwI+MjteRVh111h2239ur2rKl6NX4h3mevcJhFGsfyAYLjqQus4P5bg2kMKzu6nToWNG4MDe+dSzr/lhXiydy6dmpqCnvSefTbpSJwrC0/2hXiydy6dDjkk+OtV+a5KeLIvpF8/T/bOpdG228Luu3uyd1XDk30hfmbvXHo1NcHDD8O6dUlH4lzsPNkXkj3MrXMuXZqa4P334fHHk47Eudh5si+koQE+/BDeey/pSJxzpXbQQVBb61X5rip4si/Ee9FzLr369IH99/dk76pCrMl+a8e/ljRM0vuS5oSPa+OMs02e7J1Lt6YmmDXLO89yqRdbsi/B+Ncvm9ne4eM7ccVZkCd759KtqSnoWKeTDGbi3NaK88y+Q+NfVwRP9s6l2/77Q8+eXpXvUi/OZL/V41+H84ZLelrSQ5LGxRhn2zLJ3qv4nEunrl2Dhnqe7F3Kxdk3fkfGv34LGGpmSyXtC9wj6eNmtmqLwu0c/xraNwZ23erVjAUWzJpFyw47FF13Z9KZxmGOk28Ht6mf/Ndfh+23L768c51QnMl+q8e/NjMD1gGY2ZOSXgZ2BmZnF27v+NfQzjGwN24EiREDBjCik4xZHFVnGoc5Tr4d3BZD3p54YqKhOBeXOKvxt3r8a0kDwwZ+SNoRGAksjDHW/GpqoG9fv2bvXJrtsQcMGuRV+S7VYjuzN7NWSZnxr2uBmzLjXwOzzWwKwfjXt4bjXy8jOCAAOBC4UFIrsAH4jpktiyvWgrx/fOeQdDhwJcG+fIOZXZwzvxtwC7AvsBQ4zswWSToUuBjoCqwH/p+ZzShX3MPO/luk5RY1NQXJ3iwYAte5lIl1PPutHf/azP4E/CnO2CLz/vFdlcu6jfZQgktvsyRNMbMXshbbdButpIkEt9EeB7wLfM7M3pS0B8HBf25D3eQ1NcEf/gBz5wZn+s6ljPegV4wne+e2+jZaM3vazDJtdeYC9WEtQGXxIW9dynmyL8aTvXMdvY0240vA02ZWecPMDR0KO+/syd6lVqzV+Kngyd65jtxGG8yUPk5QtX9Ym2/Szltpo9xGG1VzczMjd9uNj02bxqPTp2N1Hf9p7Ay3dVZ6jB5f6XiyL8aTvXNbfRstgKTtgD8DXzezl9t6k/beShvlNtqoFh0/PtjP772Xg+rrYezYDq+zM9zWWekxenyl49X4xTQ0wLp1wbjXzlWnjtxG2w/4G3COmT1Wtoi3xvjxwe22XpXvUsiTfTHeP76rcuE1+MxttC8Cd2duo5V0TLjYjcCA8DbaHwGZUS5PA0YAP8saxXJQmT9CNA0NMHq0J3uXSl6NX0x2//jbbptsLM4lpAO30V4EXBR7gKVyyCHw61/DqlXBePfOpYSf2ReTSfZv5l6idM6lTlMTbNgADz+cdCTOlZQn+2LGjIEBA+DCC4PetZxz6XXAAVBf71X5LnU82RfT0ACXXAKPPAK33JJ0NM65ONXXw7hxcN99wUBYzqWEJ/soTjoJPvUpOPNMWJZMF/3OuTI5/niYPx/OOMNr81xqeAO9KGpq4NprYdQo+MlPgufOudTYYsAcG8C5+x7DNyZN4hdzVvG7/b8IwKKLj0ooOuc6zs/so9prLzj9dLj+epg5M+lonHNxkfj5Id/kr7uO4z+bb+LYuQ8mHZFzHebJvj0uuAC22Qa++11oLU03nc65ymOq4YyjfsgT2+/Bf029kk8vmpN0SM51iCf79ujdGyZNgqefht/8JulonHMxWlfXlVO++FNeHrAd1/35F8F+71wn5cm+vSZMgM9+Fn76U3jrraSjcc7FaFV9L0788vms7NYLjjwSXnkl6ZCc2yreQC+PLRrr5LHDDl/ioeZm+NGP4I47yhOUcy4R7/Ru5IR/u4DJt/+YpaPHMeH4X7O8R9+8y3ojPlep/Mx+K7zasC2ccw7cead3vuFcFVjQOJRvfulnDFm1hBv/dCH1H36QdEjOtYsn+6111lkwYgScemowKp5zLtVmb/dxvv+5M/nEWy9x9b2XULtxQ9IhOReZV+NvpWHnP8C4UV/n1rvP5bKmk7nq01/5yDJepedcukzb+QDOO/Q7XPS/v+GX913NeYd+mw+61CcdlnNFebLvgEeGj+Kvu4zltMfv5t7dx/NawzZJh+Sci9lt+xzJoNVLOf3xu/jcvIeZseMYpu46lgd3HL1Fe58z9mzlxDztf/wkwCUh1mQv6XDgSqAWuMHMLs6Z3w24BdgXWAocZ2aLwnnnACcDG4DTzWxanLFurZ8f8k3Gv/IkF0y/lpMmnA9S0iE5F4tq2J+junzc13hs2N4cPe8RDp//D46e/yjv13Vjxk6jmbrLWGbsNIa2fl6LNQDO8IMCV0qxJXtJtcA1wKFACzBL0hQzeyFrsZOB5WY2QtJE4BLgOEm7AxOBjwPbAtMl7WxmFXeR7J3ejVwx9nh+NuMGrvvzL3j2YyOZN2gY8wcOY9hZfy1Z8vcd3yWpWvbnyCRmDt2TmUP35Lymb7Nfy1yOnPcYR/zrMY6a/xjv13XjjX1G8a+PjWXewGEs7tWflfW9/GTAJSbOM/v9gAVmthBA0p3AsUD2j8OxwPnh88nA1ZIUTr/TzNYBr0haEK7v8Rjj3Wr/ve/n2Gnp64xbNIfPvvTEpumru3bnX407MG/QMOYNDA4A3unVn9aaOj6sqaW1to7WmtrwUceHtbWY8reZjHI24AcELkZVsz+318aaWp4YuhdPDN2L85tOYUzLCxw5/1Em/OsfXDVr80dcV9uFxb36s7hnA4t79eedXv1Z3Ks/S3o2sKpbT9bVdWF9bRfW1XVlXV1XDjv5GtbVdd00rbWmlo2qYYNq2ChhquFfvzoqGLujpsYPJFxBcSb7IcDrWa9bgP3bWsbMWiWtBAaE05/IKTskvlA7ZkNNLT85/HsA9Fr3Hju/+yq7LHmVXZe8wq5LXuWoeY9y/Jz7oq0r3Jlt034rLNyJjfBvOC/zOmPt5R9dn7XxA3BAjbFmY/w/Dr261sb+Hh0xdsMGqK3sGAu65x445JByvFPV7M8dsbGmdtMZ/+offIPp9y9i+xVvM2jtcgauWcagtcsZvGYpI5a+zgGvPkPfdWs79oaXZb13+FthsMVvRvZvCeG8zG/Hp2uM9zdu+buSkfv70pbc35hS7vOVvn+WNL5PfhLuv78068ojzmSf75uSO15kW8tEKYukU4BTwpdrJM2PEFcj8G6E5bba3I4Uto3BI36xbwcA1sf+Dh1Vnu0Ql6amrSm1w1aUqcT9uaL/d98re3y2eUje6CPzlj7G0u7zFf0/ppTxTZ++tbUzkfbnOJN9C7B91uvtgDfbWKZFUh3QF1gWsSxmdj1wfXuCkjTbzEa3p0wa+XYI+HaIrOL250r/31V6fFD5MXp8pRNnpzqzgJGShkvqStBAZ0rOMlOAE8LnE4AZZmbh9ImSukkaDowE/hljrM65wnx/dq4Ti+3MPrxmdxowjeBWnZvMbK6kC4HZZjYFuBG4NWyws4zgB4RwubsJGv+0Aqd26pa7znVyvj8717nJLPrFnTSQdEpYXVjVfDsEfDt0XpX+v6v0+KDyY/T4Sqfqkr1zzjlXbXwgHOeccy7lqibZSzpc0nxJCySdnXQ85SJpe0kPSnpR0lxJ3w+n95d0v6SXwr8NScdaDpJqJT0t6a/h6+GSZobb4a6w8ZmrcJW2P3eW/aySv/+S+kmaLGleuB0/VYHb74fh//d5SXdIqq+kbVhIVST7rK4+jwB2B74SduFZDVqBM8xsN+CTwKnhZz8beMDMRgIPhK+rwfeBF7NeXwJcEW6H5QRdvroKVqH7c2fZzyr5+38lcJ+Z7Qp8giDOitl+koYApwOjzWwPgoaqmW6hK2Ubtqkqkj1ZXX2a2Xog09Vn6pnZW2b2VPh8NcEONITg898cLnYz8PlkIiwfSdsBRwE3hK8FHEzQtStUyXZIgYrbnzvDflbJ339JfYADCe7owMzWm9kKKmj7heqA7mE/Ej2At6iQbVhMtST7fF19prK7zkIkDQP2AWYCg83sLQh+qIBByUVWNpOAHwOZLgoHACvMrDV8XZXfi06oovfnCt7PKvn7vyOwBPh9eJnhBkk9qaDtZ2ZvAJcCrxEk+ZXAk1TONiyoWpJ9pO4600xSL+BPwA/MbFXS8ZSbpKOBxWb2ZPbkPItW1feik6rY/1ul7med4PtfB4wCfmtm+wBrSf6SxxbC9gLHAsMJRm/sSXApKVdFfBdzxTqefQWJ1F1nWknqQvADdLuZ/U84+R1J25jZW5K2ARYnF2FZfBo4RtKRQD3Qh+BMp5+kuvDIvKq+F51YRe7PFb6fVfr3vwVoMbOZ4evJBMm+UrYfQBPwipktAZD0P8ABVM42LKhazuyjdPWZSuF1uRuBF80se1y87K5NTwDuLXds5WRm55jZdmY2jOD/P8PMjgceJOjaFapgO6RExe3Plb6fVfr338zeBl6XtEs46RCCHhcrYvuFXgM+KalH+P/OxFgR27CYqulUJzyincTmrj5/kXBIZSFpLPAI8Bybr9X9hOB64t3AUIIv8ZfNbFkiQZaZpPHAmWZ2tKQdCRp49QeeBr4WjrvuKlil7c+daT+r1O+/pL0JGg92BRYCJxGckFbM9pN0AXAcwd0XTwPfJLhGXxHbsJCqSfbOOedctaqWanznnHOuanmyd84551LOk71zzjmXcp7snXPOuZTzZO+cc86lnCf7TkTSAElzwsfbdsF8qAAAA+BJREFUkt7Iev2RkZbCEaO+E2G9dZJWtDF9Q7j+58MRnbqX4HPsL+mKdpbpKalZUsm/s5IekNS31Ot1rhDfn31/Lie/9a6TknQ+sMbMLi2wzAhgspntXWRddcC7ZtavrelhJxJ3Ao+Z2f/PWkYE36ONxEjBkKGtZnZNDOs+GWg0s0tKvW7novD9uaTr9v05Dz+zTwlJPw6P1p+X9L1w8sXALuGR/MWS+kiaIekpSc+G/WVHYsFR4SPACEkjwve5FngK2EbSEZIeD9d9l4JBLDJH/Y9LekbBmM89JDVJuiecf5GkmxWMBf6SpG+0EcLxhD1TheUfVDD29UvhOr4uaVb4uYaFy90m6Zpw2ZclHRi+1zxJN2at+17gq1G3hXNx8/3Z9+eSMzN/dMIHcD5BL1gQDPn5DMGQi70JhtfcCxgBzMkq0wXoHT4fBLwUPq8jGLkp9z02TQ/L/hX4VrjejcCYrHU9BPQIX/8nQe9h9cArwKhwel+CHs+agHvCaRcR/MDUh+tpIRjpKjuOeuDNrNdNwDJgcDjvbeDccN4ZwKXh89uA28LnXyIYpWp3goPcOcAeWetcCPRL+v/qj+p8+P7s+3PcDz+zT4dxwJ/M7D0LxtK+BxibZzkBl0h6FvhfYHtJjUXW3VvSHIL+yF8G/juc/rKZzQqfH0Cw0/0jXPZ4YBiwG/CabR7ne6WZbcjzHveY2Qdmthh4GBiTM38QwY9Btplm9o6ZfUCwY08Lpz8XvnfGX7Kmv2lmL1hQRflCznJLgG3a2gjOlZHvz74/l1y1jHqXdvmGqszn6wRH46PMrFVSC8GRdCGrLecaYXBZj7U573+fmf17znKjiDbcY+4yua/fzxNndt/TG7Neb2TL7/W6PMvkW64+fB/nkub7s+/PJedn9unwMPAFSd0VjKd9LMH1uNUE1YAZfQnGtG6VdCjBAA6l8A/gIAWDamRa2o4E5gI7hD8ShNcYa/OU/7ykbuFZyThgdvZMC4aUrFeeFsqloKBFcCPwehzrd66dfH/uAN+f8/Mz+xQws39KuoOgag7gt2b2HICk2ZKeA/4GXA78RdJsgutqL5Xo/d9R0AL2rqwd+Cdm9pKkrwC/lZQ50j44zypmAX8nGKP8PDN7J88yDxBULzaXIuYc+wGPtlEl6VxZ+f7cYb4/5+G33rlESbqI4HagSUWWGwP8h5mdFEMM1wB3m9lDpV63c9XE9+fK5dX4rlMIGw89qhg64QCe9h8G58rH9+fy8zN755xzLuX8zN4555xLOU/2zjnnXMp5snfOOedSzpO9c845l3Ke7J1zzrmU82TvnHPOpdz/ARwkFg2NlV1YAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax_array = plt.subplots(2, 2, figsize=(8, 8))\n", "ax_list = ax_array.flatten()\n", "var = \"Total Precip (mm)\"\n", "precip_params = dict()\n", "for index, key in enumerate(key_list):\n", " the_ax = ax_list[index]\n", " the_df = df_list[index]\n", " the_precip = the_df[var]\n", " before_drop=len(the_precip)\n", " the_precip = the_df[var].dropna()\n", " after_drop=len(the_precip)\n", " print(f\"{before_drop-after_drop} nan values dropped\")\n", " loc, scale = st.expon.fit(the_precip)\n", " precip_params[key] = (loc, scale)\n", " vals, bins, patches = the_ax.hist(var, bins=20, data=the_df, density=True)\n", " bin_centers = (bins[1:] + bins[0:-1]) / 2.0\n", " the_ax.plot(bin_centers, st.expon.pdf(bin_centers, loc, scale), \"r-\")\n", " the_ax.grid(True)\n", " the_ax.set(title=key)\n", " #\n", " # label the xaxis for the bottom two plots (2 and 3)\n", " # and the yaxis for the left plots (0 and 2)\n", " #\n", " if index > 1:\n", " the_ax.set(xlabel=var)\n", " if index in [0,2]:\n", " the_ax.set(ylabel='relative frequency') " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Saving the fit parameters\n", "\n", "We have two new dictionaries: `temp_params` and `precip_params` that\n", "we should save for the future." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "wrote the fit coefficients to /Users/phil/repos/eosc213_students/notebooks/pandas/data/processed/fit_metadata.json\n" ] } ], "source": [ "data_dict = dict()\n", "data_dict[\n", " \"metadata\"\n", "] = \"\"\"\n", " loc,scale tuples for daily average temperature (deg C)\n", " and precipitation (mm) produced by 11-pandas4 for YVR\n", " \"\"\"\n", "data_dict[\"temp\"] = temp_params\n", "data_dict[\"precip\"] = precip_params\n", "fit_file = context.processed_dir / \"fit_metadata.json\"\n", "with open(fit_file, \"w\") as f:\n", " json.dump(data_dict, f, indent=4)\n", " \n", "print(f\"wrote the fit coefficients to {fit_file}\")" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{\n", " \"metadata\": \"\\n loc,scale tuples for daily average temperature (deg C)\\n and precipitation (mm) produced by 11-pandas4 for YVR\\n \",\n", " \"temp\": {\n", " \"djf\": [\n", " 3.8457018498367788,\n", " 3.5951553549810953\n", " ],\n", " \"mam\": [\n", " 9.366519174041297,\n", " 3.4672545858069648\n", " ],\n", " \"jja\": [\n", " 16.897835148581414,\n", " 2.2841620229501727\n", " ],\n", " \"son\": [\n", " 10.315880994430106,\n", " 4.365765620923032\n", " ]\n", " },\n", " \"precip\": {\n", " \"djf\": [\n", " 0.0,\n", " 4.847911848728065\n", " ],\n", " \"mam\": [\n", " 0.0,\n", " 2.6111245141401955\n", " ],\n", " \"jja\": [\n", " 0.0,\n", " 1.2540769644779333\n", " ],\n", " \"son\": [\n", " 0.0,\n", " 3.7721988319978266\n", " ]\n", " }\n", "}\n" ] } ], "source": [ "#\n", "# here's what the file looks like:\n", "#\n", "\n", "with open(fit_file,'r') as f:\n", " print(f.read())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Grouping by decade\n", "\n", "The two functions below take a season dataframe and\n", "create a new column with the decade that each day belongs\n", "to. For example if a measurement in taken in 1941, then\n", "its decade is 194. We can use that see whether the temperature\n", "at the airport has been increasing since the 1930's and whether\n", "that increase depends on season" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "def find_decade(row):\n", " \"\"\"\n", " given a row from an Environment Canada dataframe\n", " return the first 3 digits of the year as an integer\n", " \n", " i.e. turn \"2010\" into the number 201\n", " \"\"\"\n", " year_string=f\"{row['Year']:4d}\"\n", " return int(year_string[:3])\n", "\n", "\n", "def decadal_groups(season_df):\n", " \"\"\"\n", " given a season dataframe produced by groupby('season'), add\n", " a column called 'decade' with the 3 digit decade\n", " and return a groupby dictionary of decade dataframes for that\n", " season with the decade as key\n", " \"\"\"\n", " #\n", " # add the decade column to the dataframe using apply\n", " #\n", " decade=season_df.apply(find_decade,axis=1)\n", " season_df['decade']=decade\n", " #\n", " # do the groupby and turn into a dictionary\n", " #\n", " decade_groups=season_df.groupby('decade')\n", " decade_dict={key:value for key,value in decade_groups}\n", " return decade_dict" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Finding the median temperature\n", "\n", "Once we have the dictionary that has the decade as key and\n", "the dataframe for that decade as value, we can find the median\n", "value of the daily average temperature for each decade using\n", "the `median_temps` function below." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "def median_temps(decade_dict):\n", " \"\"\"\n", " given a decade_dict produced by the decadal_temp function\n", " return a 2-column numpy array. The first column should be the\n", " integer decade (193,194,etc.) and the second column should be\n", " the median temperature for that decade\n", " \"\"\"\n", " values=list()\n", " for the_decade,the_df in decade_dict.items():\n", " T_median=the_df['T_mean (C)'].median()\n", " values.append((the_decade,T_median))\n", " result=np.array(values)\n", " return result\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Assignment\n", "\n", "Using the functions above, calculate the median temperature for\n", "each decade and save your (decade, temperature) lists into\n", "a dictionary with a key for each season. Use that dictionary\n", "to make a 2 x 2 plot of temperature vs. decade for each of the\n", "four seasons, using the 4 box plotting code above. (My solution\n", "is 14 lines long)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "nbgrader": { "grade": true, "grade_id": "cell-55c843e9a4c0efe7", "locked": false, "points": 10, "schema_version": 1, "solution": true } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl0AAAJcCAYAAADD3hGOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xl8lPd16P/PmdG+w2gBSYAWVrEJLGMWY8kYHNexTeLGWdrcZnfspImd5Da3vbe/pLe9XdI2idOm3uqkaZo2zuZ6axNbxoyMDdgSCDAIJCGhBQRaRxvaZ76/PyQ5siyBlpl5Zkbn/Xr5hZh59DznQdbMme9yjhhjUEoppZRSvmWzOgCllFJKqYVAky6llFJKKT/QpEsppZRSyg806VJKKaWU8gNNupRSSiml/ECTLqWUUkopP9CkS1lORH4kIv9PRHaLSOWEx9eISLmI9IjIl62MUSmllJqvMKsDUGqcMeYQsGbCQ18HnMaYLRaFpJRSSnmNjnSpQLYCOGN1EEoppZQ3aNKl/E5EtojI8bFpw58BUWOPF4nIxbGvXwVuBb4vIr0istrCkJVSC4SI1InIH4nIKRG5KiI/EJE0Efn12GvWKyKyaOzYX4jIFRHpEpHXRGT9hPP8SEQeHfu+XhF5Q0SWiMgjIuISkXMioqP4C4wmXcqvRCQCeBb4N2Ax8AvgdycfZ4zZAxwC/tAYE2eMqfJroEqphex3gX3AauBu4NfA/waSGX3fHF9j+mtgFZAKHAf+fdJ5Pgz86dj3DQJHxo5LBn4JfMeXN6ECjyZdyt+2A+HAI8aYYWPML4FSi2NSSqmJ/tEY02yMucToh783jTHlxphB4D+BLQDGmB8aY3rGHv8zYLOIJE44z38aY44ZYwbGvm/AGPNjY4wb+Nn4edTCoUmX8rd04JJ5d6f1equCUUqpKTRP+Lp/ir/HiYhdRP5GRGpEpBuoG3s+eTbn8V7IKhho0qX87TKQISIy4bHlVgWjlFJz9HvAfmAvkAhkjT0u032DUpp0KX87AowAXxaRMBG5F9hmcUxKKTVb8Yyu02oHYoC/sjYcFQw06VJ+ZYwZAu4FPgm4gI8Az1gZk1JKzcGPGV0acQmoAI5aG44KBvLupTVKWUdE9gBPGWNyrI5FKaWU8jYd6VKBZANwweoglFJKKV/QNkAqIIjI94B7gE9YHYtSSinlCzq9qJRSSinlBzq9qJRSSinlBwE5vZicnGyysrKsDmNaV69eJTY21uowfG4h3OdCuEcI/Ps8duxYmzEmxeo4vEFfvwKD3mfoCIZ7nOlrWEAmXVlZWZSVlVkdxrScTidFRUVWh+FzC+E+F8I9QuDfp4iETFcCff0KDHqfoSMY7nGmr2E6vaiUUkop5QeadCmllFJK+YEmXUoppZRSfqBJl1JKKaWUH2jSpZRSSinlB5p0KaWUUkr5wbyTLhGxi0i5iLw4xXPLReTg2POnROTO+V5PKaWUUioYeWOk6yHg7DTP/Snwc2PMFuCjwKNeuJ5SSimlVNCZV9IlIpnA+4GnpjnEAAljXycCTfO5nlLBrqV7gEud/VaHoZRSs+b2GE5d7LQ6jKA234r0jwBfB+Knef7PgJdF5EtALLB3uhOJyP3A/QBpaWk4nc55huY7vb29AR2ftyyE+/T3Pf5taT8d/Ya/3h2NiPjtugvhZ6mU8q1nyy/xtV+c5IU/vJmNmYlWhxOU5px0ichdQIsx5piIFE1z2MeAHxljvi0iO4B/E5ENxhjP5AONMU8CTwIUFBSYQC75HwwtCbxhIdynP+9xaMRDzSsvMThiWLRyC/nLkvxyXVgYP0ullG+V1nUA8NKZK5p0zdF8phd3AfeISB3wNLBHRH4y6ZjPAD8HMMYcAaKA5HlcU6mg9falLgZHRj9vPHfiksXRKKXU7JQ3jE4tvnK22eJIgtecky5jzJ8YYzKNMVmMLpJ/1Rjz8UmHNQC3AYjIOkaTrta5XlOpYFY29inxxqxFvHDyMm6PsTgipZSame6BYapaekiNj+TclR4aO/qsDikoeb1Ol4j8uYjcM/bXrwGfE5GTwE+BTxpj9J1GLUildS6yk2P59K5s2noHOVzTZnVISik1I6cauzAGvnzbKgBertDRrrnwStJljHEaY+4a+/obxpjnx76uMMbsMsZsNsbkG2Ne9sb1lAo2Ho/hWH0HBSsWcevaVOIjw3juhG7mVUoFh/IGFwB3b05nTVo8xRVXLI4oOGlFeqX8oKa1F1ffMDdmLyYq3M4dG5bwm9NXGBh2Wx2aUkpd1/EGF6tS40iMDmdfXhqldS46+4asDivoaNKllB+U1o1+SrwxazEA+/Mz6B0c4dVzLVaGpZRS12WMobyxky3LR3dc78tLw+0x+vo1B5p0KeUHZXUdJMdFkOWIAWBHroOU+EjdxaiUCnh17X109g2zZfkiADZmJJIaH6m7GOdAky6l/KC0voOCFYvfKYhqtwl3b0rn4LlWuvqHLY5OKaWmN76ea3yky2YT9ualUVLZyuCILpGYDU26lPKxK10DNHb0U5C16F2P789PZ8jt4TenL1sUmVJKXd/xBhdxkWGsSv1t85l9eWlcHXJzuKbdwsiCjyZdSvnYeBXnbdmL3/X4psxEspNjdRejUiqglTd0snlZInbbb1uX7cx1EBthp1hLR8yKJl1K+VhZXQcxEXbylia863ER4Z7N6Rypbae5e8Ci6JRSanp9QyOcu9LDlmXvHqmPDLNTuCaFVyqa8Wih5xnTpEspHyutc7FleRJh9vf+uu3PT8cYeOGkjnYppQLPqYtduD2GrSve2yt2X14aLT2DnLrUZUFkwUmTLqV8qHtgmHNXuilYsXjK53NS4tiUmahTjEqpgDTebzF/0kgXwK1rUrHbhFd0inHGNOlSyoeO17vwmPeu55rons3pvH2pi5rWXj9GppRS11fe4CLLEcPi2Ij3PJcUE8GNWYt0XdcsaNKllA+V1bmw24T8Ze8dmh939+Z0RNDRLguIyEMiclpEzojIw1M8nygiL4jIybFjPmVFnEpZwRjD8YZOti5/7yjXuH15S6hs7qGhXRtgz4QmXUr5UGldB+vTE4iNDJv2mLSEKHbmOnj+xCW0H7z/iMgG4HPANmAzcJeIrJp02BeBCmPMZqAI+LaIvPcjv1Ih6KKrn7bewXfqc03l9rw0AF7WXowzokmXUj4yNOLhRGPntOu5Jtq/OYO69j5OXdQFqX60DjhqjOkzxowAJcAHJx1jgHgZrWobB3QAI/4NUylrlDeOrufaco2RrmWLY1i7JF6nGGdo+o/fSql5Od3UxeCIhxuzpn/BGve+DUv402dP8+yJS2y+xlSk8qrTwF+KiAPoB+4EyiYd833geaAJiAc+YozxTD6RiNwP3A+QlpaG0+n0Ydjz09vbG9DxeYve5/y9cHaQCBs0Vx6nrVqmPW5V7BAv1vTw4ssHiYuY/ri5CqWfpSZdSvlI6YXRoqgFWdcf6UqMDmfP2lReOHmZP31/3ruKECrfMMacFZFvAcVAL3CS945ivQ84AewBcoFiETlkjOmedK4ngScBCgoKTFFRkY+jnzun00kgx+ctep/z990zb5C/wsZte3Zc87hFuZ288E9vMOhYxV03ZHo9jlD6Wer0olI+UlrnIjs5lpT4yBkdvz8/nbbeQY5oWw2/Mcb8wBiz1RhzC6NTh9WTDvkU8IwZdR64AKz1d5xK+dvAsJuKpq5rrucatzEjkbQEbYA9E5p0KeUDHo/hWH0HBSuuP7U47ta1qcRHhvHsiUs+jExNJCKpY38uB+4FfjrpkAbgtrFj0oA1QK0/Y1TKCmeauhl2m2vuXBxnswl716VRUtXKwLA2wL4WTbqU8oHatl5cfcPcOIOpxXFR4Xbu2LCE35y+oi9c/vMrEakAXgC+aIxxicgDIvLA2PN/AewUkbeBA8D/Msa0WRWsUv5S3uACYMsM15juy0ujb8itI/XXoWu6lPKB0rrRF6wbr1EUdSr78zP4xbGLHDzXwu9sXOqL0NQExpjdUzz2+ISvm4Db/RqUUgGgvKGTjKRoUhOiZnT8jlwHcZFhvFzRzK1rU30cXfDSkS6lfKD0QgfJcRFkOWJm9X07ch2kxEfqFKNSylLlDa4ZrecaFxlmp3B1Cq+c1QbY16JJl1I+UFrfQcGKxYyWd5o5u024e1M6B8+10tU/7KPolFJqele6BmjqGpjReq6J9ual0tozyMmLnT6KLPhp0qWUl13pGqCxo5+CGdTnmsr+/HSG3B5eOq0VnpVS/vfOeq5ZjHTBhAbYuotxWpp0KeVlZfWj9blms4h+ok2ZiWQ5YnSKUSllifLGTiLsNvLSE2b1fUkxEWzLWqzV6a9Bky6lvKz0QgcxEXbWz/IFa5yIcE9+Bkdq22nuHvBydEopdW3H611syEggMsw+6+/dl5dGVXMv9e1XfRBZ8NOkSykvK60bXYAaZp/7r9f+/HSMgRdONnkxMqWUurahEQ9vX+q6Zr/Fa9k31gBbR7umpkmXUl7UPTDMuSvdM2pyfS25KXFszEjkuROadCml/OfclW4GRzyzXs81brwB9suadE1Jky6lvKi8oROPmft6ron256fz9qUualp7vRCZUkpd3/H60UX0s925ONG+vDTK6jrouDrkrbBChiZdSnlRWV0HdpvM+VPiRHdvTkcEntfRLqWUn5Q3dpKWEMnSxJkVRZ3Kvrw0PAYOnmvxYmShQZMupbzorQsdrE9PIDZy/s0e0hKi2JHj4LkTlzBGiw0qpXyvvKGTLcsWzbrG4EQbMxJZkhCl67qmoEmXUl4yNOLhRGPnvNdzTbQ/P5269j5OXezy2jmVUmoqbb2DNHT0sXXF/EbqRYS9eam8Vq0NsCfTpEspLznd1MXgiIcb51gUdSp3bFhKhN2mC+qVUj5X3jBaSX6uOxcn2pe3hL4hN4drgq8//OCI7xJFTbqU8pKyutGiqAVeWEQ/LjE6nFvXpvDCqSbc2s9MKeVD5Q0uwmzCxozEeZ9re85i4iLDgnKK8RvPnuETP3zLJ8s65p10iYhdRMpF5MVpnv+wiFSIyBkR+Y/5Xk+pQPXWBRfZybGkxEd69bz78zNo7RnkSE27V8+rlFITlTd0kpeeQFT47IuiTvbbBtgtQdUAu67tKr88fpGclNh5rWubjjdGuh4Czk71hIisAv4E2GWMWQ887IXrKRVwPB7DsfoOClZ4b2px3J61qcRHhvGctgVSSvnIiNvDyYudbFk2/53X4/blpQVdA+zvHagm3C48WJTrk/PPK+kSkUzg/cBT0xzyOeCfjDEuAGOM7h9VIam2rRdX37BX6nNNFhVu530blvCb01eCYlGqMYbvvFxJY0ef1aEopWaoqrmXviG3V9ZzjRtvgB0sU4zVzT08e+ISn9iZRWr83EtmXMt897U/AnwdiJ/m+dUAIvIGYAf+zBjzm6kOFJH7gfsB0tLScDqd8wzNd3p7ewM6Pm9ZCPfprXt0Ng4D4Gmpxumsmff5JssSNz2DI/zjrw5y45LZ/9r682fpbBzmR2eGaGtq4PascL9cUyk1P+WNo0VRvVFjcFxiTDg3ZY82wP76HWu9dl5feeSVamLC7Xz+Ft+McsE8ki4RuQtoMcYcE5Gia5x/FVAEZAKHRGSDMeY9Y43GmCeBJwEKCgpMUdF0p7Se0+kkkOPzloVwn966x+d/foLkuFY+cuetPlkHsNtj+NG5A9QML+KPim6Y9ff762dZ29rLzw68zs0rk/l/f7ANm837/xZKKe87Xt+JIzaC5YtjvHrefXlp/N8XKqhru0pWcqxXz+1NFU3d/Nfbl/nSnpUsjo3w2XXmM724C7hHROqAp4E9IvKTScdcBJ4zxgwbYy4AlYwmYUqFlNK6DgpWLPZJwgVgtwl3b17Kq+da6Oof9sk15mvY7eHhn50gMtzGtz+8WRMupYJIeaOLLcuTvP4atnddcDTA/u4rVSREhfHZ3Tk+vc6cky5jzJ8YYzKNMVnAR4FXjTEfn3TYs8CtACKSzOh0Y+1cr6lUILrSNUBjRz8FXqzPNZX9+RkMuT28dPqKT68zV997pZpTF7v4m3s3kpbgm/UQSinv6+wborb1qlfXc40bb4AdyEnXycZOiiua+dzuHBKjfbskwut1ukTkz0XknrG/vgS0i0gFcBD4I2OM7ntXIaWsfrQ+ly8W0U+0OTORLEcMz50MvF2MpXUdPOo8z303ZHLHhqVWh6OUmoXyxvGiqN5bzzXR7XlplNUHbgPs7xRXsSgmnE/dnO3za3kl6TLGOI0xd419/Q1jzPNjXxtjzFeNMXnGmI3GmKe9cT2lAklZnYvocDt56Qk+vY6IcE9+Bodr2mnuHvDptWaje2CYh58+wbLFMXzznvVWh6OUmqXyhk5sApsyfZN07ctbgsfAqwHYALusroOSqlYeKMwlzgs9c69HK9IrNU9vXehg64okwu2+/3Xan5+OMfDCycBpC/Rnz53hSvcA3/1Ivl9etJRS3lXe4GJ1WrzPfn83ZCSwNDGK4orAWxrx7ZerSI6L5A92ZPnlepp0KTUP3QPDnLvS7dUm19eSmxLHxoxEng+QpOuFk008U36JP7x1JVt9sB5EKeVbHo/hRGMnW31Q2HmciLB3XRqvVbUFVK3Bw+fbOFLbzhdvzSU6Yv5V+GdCky6l5qG8oROP8f16ron256dz6mIXta29frvmVJo6+/k///k2W5Yn8aU9Ky2NRSk1NzWtvfQMjHi1Ev1U9uWl0T/s5o3zgdEA2xjDt4urWJoYxce2LffbdTXpUmoeyuo6sNvEZwtQp3LXpnRE4LkT1o12eTyGr/38JCMewyMfySfMD1OrSinvK28YX0Tv25HqmwKsAXZJVSvH6l384Z6VXuk1OVP6SqnUPJTWdbA+PYFYP65lWpIYxY4cB8+fbMIYaxrJPvV6LUdq2/mzu9ezwhG4BQ+VUtd2vMFFYnQ4OT4uXBoZZqdwTWA0wDbG8J3iKjIXRXPfDcv8em1NupSao6ERD+UNnX5bzzXR/vx0LrRd5dTFLr9f+0xTF3/3UiV3rF/CfQWZfr++Usp7yhs6yV+W5JdixrfnpdHWO8gJixtgF1c0c+piF1++bRURYf5NgzTpUmqOTjd1MTji4UYfF0Wdyh0blhJht/l9inFg2M1DT59gUUwEf33vRp9V4FdK+V7PwDBVLT1+Wx5RtCaVMIsbYHs8o6Nc2cmx3Lslw+/X16RLqTkqqxstilrgx0X04xKjw7l1bQovnGrC7ceh+r/59TnOt/Ty7Q9vZpEP+5P5i4g8JCKnReSMiDw8zTFFInJi7JgSf8eolK+cutiFMfht53FidDg35Sy2NOn679OXOXelh4f3rrJkLaomXUrNUWmdi+zkWFLiIy25/v78DFp7BjlS458mD87KFn50uI5P78pm96oUv1zTl0RkA/A5YBuwGbhLRFZNOiYJeBS4xxizHrjP74Eq5SPH610AbPbxzsWJ9q1L43xLLxfarvrtmuPcHsN3i6tYnRbHXZvS/X590KRLqTnxeAxldR0U+LC2zfXsWZtKXGQYz53wfVug9t5B/ucvTrEmLZ6v37HG59fzk3XAUWNMnzFmBCgBPjjpmN8DnjHGNAAYYwKvpLZSc1Te2MnK1Dif9xucaG/eeANs/xdKfe7EJWpar/KVvaux+2EN21S0fLRSc1Db1ourb9iv9bkmiwq3c8eGJfzm9BX+4gMbfLbt2RjDHz/zNt39w/zbZ7b5dXu1j50G/lJEHEA/cCdQNumY1UC4iDiBeOB7xpgfTz6RiNwP3A+QlpaG0+n0Ydjz09vbG9DxeYve57UZY3irpo8tqWF+/3daFm/jl0eqWO1pnNHx3vhZjngMf/N6P8vjbUS2ncPprJzX+eZKky6l5qC0bnRYvsCCRfQT7c9P55fHLnLwXAu/s9E3jaafLm2kuKKZP33/OtYt9W1/SX8yxpwVkW8BxUAvcBIYmXRYGHADcBsQDRwRkaPGmKpJ53oSeBKgoKDAFBUV+Tj6uXM6nQRyfN6i93ltF9qu0vuSkztvWkeRH4uDAnxwuIrvv1rNxoIdOOKuvzzDGz/Ln5U20NL3Nj/4xA3sWZc2r3PNh04vKjUHpXUdJMdFkO3j2jbXsyPHQXJcpM92Mda29vLnL1Rw88pkPr0r2yfXsJIx5gfGmK3GmFuADqB60iEXgd8YY64aY9qA1xhd/6VUUCtvGP3g6M/CzuNuz0vzawPswRE3/3DgPPnLktizNtUv15yOJl1KzUFZnYuCFYstL5kQZrdx9+alvFrZQlf/sFfPPez28JWfnSAy3Mbf37fZL3V8/E1EUsf+XA7cC/x00iHPAbtFJExEYoCbgLP+jVIp7ytv6CQuMoxVqfF+v/b69ATSE6P8tovx56WNXOrs56v7Vlv+mq1Jl1Kz1Nw9QENHn+VTi+P252cwNOLhpdPeXZj6DweqOXmxi7/64EaWJEZ59dwB5FciUgG8AHzRGOMSkQdE5AEYnYIEfgOcAt4CnjLGnLYuXKW843iDi83LEi1ZUC4i7M1L41C17xtgDwy7+cdXz7MtazG7VyX79FozoUmXUrNUOlafy8pF9BNtzkxkhSOG5056bxdjaV0H/3TwPB+6IZM7fbRWLBAYY3YbY/KMMZuNMQfGHnvcGPP4hGP+buyYDcaYR6yLVinv6Bsa4dyVHrYss+6D4951ow2wX6/2bQPsnxytp6VnkK/ebv0oF2jSpdSsldW5iA63k5ceGIvKRYT9+RkcrmmnpXtg3ufrGRjmKz87QeaiGP7snvVeiFApFUjevtiF22MsWc81bnuOg3gfN8C+OjjC4yU13Lwyme05Dp9dZzY06VJqlkrrOti6IolwC6oZT+eezekYA8+fnP+C+m8+f4amzn6++5F84vzYyFsp5R/HG0Z7H27xUyX6qUSE2Shck8KBc80+a4D9r0fqaOsd4qu3r/bJ+ecicN41lAoCPQPDnL3cbUmT62tZmRrHhoyEeSddL55q4pnjl/jDPau4wcLCr0op3ylvcJHliGGxxa289uWl0dY7RHmj9xtgdw8M80RJLbeuSfFbm6OZ0KRLqVk43tCJxwTOeq6J9m/O4NTFLmpbe+f0/Ze7+vnfz7xN/rIkvrxnpZejU0oFAmMM5Y2dlo5yjfNlA+wfvn6Brv5hvrovsDpoaNKl1CyU1XVgtwn5Fq6FmM7dm9MRYU41uzwew9d+fpIRj+GRj+Rb0ghWKeV7lzr7ae0ZZGsAvIYlRoezPcfh9ZZAnX1D/ODQBd63Po2NmYlePfd86SurUrNQWtdB3tKEgFzrtCQxiu3ZDp4/2YQxs1sj8dTrtRyuaeebd+eRZXHBV6WU7wTCeq6J9q5Lpab16pxH6Kfyz4dq6R0a4Sv7Amct1zhNupSaoaERDycaOwNyanHc/vx0LrRd5e1LXTP+noqmbv7upUretz6NDxcs82F0SimrlTe4iAq3sWaJ/4uiTuW3DbC9M8XY3jvIv7xRx12b0lm7JDB2mE+kSZdSM3S6qYuBYQ83BkhR1Kn8zoalRNhtPFs+synGgWE3Dz1dzqKYCP763k0BUcdGKeU75Q2dbMoMnN3XmYtiyFuawCtnvZN0PV5Sw8Cwm4f3rvLK+bwtMP7VlQoCZWNFUW8I4KQrMSacojUpvHCqCfcMtmH/za/PUd3Sy9/ft9nynUxKKd8aGHZzpqnL0vpcU9mXl8axehftvYPzOk9z9wA/PlLPB7dkkpsS56XovEuTLqVmqLRudJt1anxgt8TZn59Ba88gR2vbr3mcs7KFHx2u41O7srhldYqfolNKWeVMUzfDbmNpJfqp7BtrgH1gng2wHz14HrfH8NBtgTnKBZp0KTUjxhjK6joCej3XuNvWpRIXGcaz5dO3BWrvHeSPfnmK1Wlx/K871voxOqWUVcobXAABsXNxIm80wL7U2c9P32rkvoJlLHfEeDE679KkS6kZqGntxdU3HBRJV1S4nfetX8JvTl+ZspmsMYY/fuZtuvqG+d5HtxAVbrcgSmUF19UhTrSMWB2Gskh5QycZSdGkJgTWaP1vG2C30j80twbY33+1GoAvBXiNQU26lJqB0rrRT4gFAbyea6L9+en0DI7grHzvcP3PShsprmjm63esYd3SwNvdo3zn/3vuNI8cH6Sps9/qUJQFyhtcAbeea9y+vDQGhj28fn72DbAb2vv4RdlFPrZtGelJ0T6Izns06VJqBkrrOnDERpAdJDWsduY6SI6LfM8uxgttV/m/L1Swa6WDT+/Ktig6ZYWzl7t58dRlAI7UXHu9nwo9V7oGaOoaCJj6XJPdlD3eAHv2hVK/d6Aau0344q2BPcoFmnQpNSNldS4KshYFTUmFMLuNuzYt5dXKFrr6hwEYdnt4+OlyIsJs/P19m7HZguNelHd8t7iK+MgwYsPhsCZdC06grucaFxFmo2htKgfOtsxo5/W48y29/Gf5Rf5gx4qAmzadiiZdSl1Hc/cADR19QbGea6L9+ekMjXh46czoJ8d/PFDNyYtd/PW9G1maGNhD8Mq73r7YxcsVzXxmdzbrFts5UtM2664FKriVN3YSYbeRlx64Swr25aXRfnWIE42uGX/P9w5UExVu54HCXB9G5j3zTrpExC4i5SLy4jWO+ZCIGBEpmO/1lPK30rH6XMGWdOUvS2KFI4bnTlyi2uXm+wfP86EbMrlz41KrQ1N+9u3iSpJiwvn0zdnkOew0dY1+kFALR3mDi/UZCUSGBe7GmaI1KYTZhJdnuIvx3JVuXjjZxKd2ZeGIi/RxdN7hjZGuh4Cz0z0pIvHAl4E3vXAtpfyurM5FdLg9oD8hTkVE2L85ncM17Tx2cpCMRdF88+48q8NSfnas3oWzspX7b8khISqctYtH33R1inHhGBrxcOpiF1sDdD3XuISo8QbYM0u6xqfMP7c7x8eRec+8ki4RyQTeDzx1jcP+AvhbYGA+11LKKqV1HWxZHjhtM2bjnvwMjAHXgOGRj+QTHxVudUjKz75TXElyXASf3JkFwNJYITU+UpOuBeTclW4GRzwBu3Nxon15adS2XqXmOg2w377YxUtnmvns7hySYoKnm0bYPL//EeDrwJSdM0VkC7DMGPOiiPzPa530s2GqAAAgAElEQVRIRO4H7gdIS0vD6XTOMzTf6e3tDej4vGUh3Of17rF/xFDR1Mc9ueFB+2+xKz2MJZHD9Fw4hfOC1dEofzpS084b59v50/evIyZi9OVeRNiZ6+D18+0YY4Jmc4iau/KGToCA3bk40d68NL75/BmKK5rJLZy+lc933pkyz/JfcF4w56RLRO4CWowxx0SkaIrnbcB3gU/O5HzGmCeBJwEKCgpMUdF7ThkwnE4ngRyftyyE+7zePZZUtWJ4i/uKtnLzqmT/BeZFRUUL42ep3s0Yw3eKK0lLiOTj21e867kduQ6ePdHE+ZZeVqVN+ZlZhZDyBhdpCZGkJwb+7r6MpGjWpyfwSkXztIvjj9W7OFjZytfvWBN0o/fzmS/ZBdwjInXA08AeEfnJhOfjgQ2Ac+yY7cDzupheBZOyug7sNiE/CIbllZroteo2Sutc/OGtK9/TdWBn7ugHCJ1iXBiON3SyZVnwlLzZl5fGsQYXbdM0wJ48ZR5M5px0GWP+xBiTaYzJAj4KvGqM+fiE57uMMcnGmKyxY44C9xhjyuYbtFL+UlrXQd7SBOIi5zsTr5T/GGP4zsuVZCRF8+Ebl73n+WWLY8hcFM3hmtlX/1bBpa13kIaOvqBYzzVuX14axsCrZ9/bUeNo7eiU+QOFue9MmQcTr68MFpE/F5F7vH1epfxtaMTDicbOoGn9o9S4A2dbOHmxiy/ftnLaEgE7cx0cre3AM4tClCr4nBhbz7V1RfC8juUtTSAjKfo9pSNGP0xUTTllHiy8knQZY5zGmLvGvv6GMeb5KY4p0lEuFUzONHUxMOxhW5DV51ILm8dj+HZxFSscMdy7NXPa43bkOujqH6bicrcfo1P+drzBRZhN2JCeaHUoMyYi7F2Xyuvn390A+1B1G2/VdUw5ZR4sgm8PvFJ+Ml4U9QYd6VJB5DdnrnD2cjcP3bbqmmVOduSMruvSPoyhrbyhk3VLE4iOCK4kZV/eEgaGPRyqbgVGR7m+XVw17ZR5sNCkS6lplNa5yHLEkBof+Dt+lAJwewzfKa4iNyWW/fkZ1zx2SWIUOSmxHKnVpCtUuT2Gkxc7g2o917ibchYTHxXGK2dHpxgPnG3hZGPnNafMg4EmXUpNwRhDWV0HBTq1qILICydHy0B8Zd9q7DNoaL4jx8Gbte0Muz1+iE75W+WVHvqG3AFfiX4q4XYbt675bQPs78xgyjwYaNKl1BRqWq/i6hvW9VwhTkQeEpHTInJGRB6+xnE3iohbRD7kz/hmY8Tt4ZFXqli7JJ47N8ysv+bO3GSuDrl5+1KXj6NTVigfaxwdjCNd8NsG2D+vHKJiBlPmwSC4o1fKR8bXc+nOxdAlIhuAzwHbgM3AXSKyaorj7MC3gJf8G+HsPHP8EnXtfXx132psMxjlAtieM/qhQtd1habyhk4Wx0awfHGM1aHMSeGaFMLtwkv1IzOaMg8GmnQpNYXSug4csRFkJ8daHYrynXXAUWNMnzFmBCgBPjjFcV8CfgW8t2hQgBga8fC9A9VsykxkX17ajL/PERfJ2iXxmnSFqOMNLrYuTwqaoqiTjTfABmY8ZR7ogq+ymFJ+UFbnoiAreCo4qzk5DfyliDiAfuBO4F1lbUQkg9FEbA9w43Qnsrp37KsNw1zqHOIjuR5KSkqueezkfqPLIgdx1vZQ/OpBwkPgTW3cQugdC9PfZ++Qoba1jy1JQ0H973BTohvPEkNMeyVOZ5XV4cybJl1KTdLcPUBDRx9/sCM4i++pmTHGnBWRbwHFQC9wEhiZdNgjwP8yxrivlYBb2Tt2YNjNHx92csOKRXzpQzuu+0Fhch/O4dRmin9cRnzWpndGFULBQuk3Ot19OitbgFJ+t3ArO1cGZ99YgCJgQwj9LHV6UalJyupGF5/eqIvoQ54x5gfGmK3GmFuADqB60iEFwNNj/WM/BDwqIh/wc5jX9B9vNnCle4Cv3b56TiOz27IXYxNd1xVqjjd0YhPYtCw4F9GHKk26lJqktK6D6HA7eekJVoeifExEUsf+XA7cC/x04vPGmOwJ/WN/CXzBGPOs3wOdRt/QCI86z7Mjx/FOE+vZSowOZ0NGoiZdIaa8wcXqtHjtGxtgNOlSapLSug62LE8K+q3JakZ+JSIVwAvAF40xLhF5QEQesDqwmfjxkXraeof42u2r53WeHbkOyhtd72q5ooKXx2M40djJliCszxXq9F1FqQl6BoY5e7lbi6IuEMaY3caYPGPMZmPMgbHHHjfGPD7FsZ80xvzS/1FOrWdgmCdKaihcnTLv/1935iYz7DaU1Xd4KTplpdq2XnoGRtgapPW5QpkmXUpNUN7QicegRVFVwPuXN+pw9Q3z1X3zG+UCKFixiDCbcFinGEPC8fpOAB3pCkCadCk1QWldB3abkK+fEFUA6+ob5p8P1bIvL43NXlgoHRsZRv6yJE26QkR5o4uEqDBytM5gwNGkS6kJSus6yFuaoItPVUD750O19AyMeGWUa9zOXAdvX+yke2DYa+dU1ihv6CR/+aIZdyZQ/qNJl1JjhkY8nGjs1NY/KqB1XB3iX964wPs3LmXdUu/tsN2e68BjoPSCrusKZj0Dw1Q29+h6rgClSZdSY840dTEw7NH6XCqgPVFSQ/+wm6/se0+byHnZunwREWE2nWIMcqcudmGMrucKVJp0KTVmvCiqjnSpQNXSM8C/Hqljf34GK1PjvXruqHA7BSsWadIV5MobRl/H8jN1pCsQadKl1Ji36jrIcsSQGh9ldShKTenRgzUMuw0P3ebdUa5xO3MdnL3cjevqkE/Or3zveEMnK1PjSIwJtzoUNQVNupQCjDGU1XVofS4VsJo6+/mPNxv40NZMsny0K21H7mjvxaO1OtoVjIwxlDe42KKtfwKWJl1KATWtV3H1DXOjTi2qAPX9g+cxGL5020qfXWNTZhIxEXadYgxS9e19uPqGdT1XANOkSymgrG50x5YuoleBqLGjj5+XNvLRG5eTuSjGZ9cJt9vYlr2YIzrSFZSOj63n2rpCR7oClSZdSgGldS4csRFkazFBFYC+d6Aam0344q2+G+UatyPHwfmWXlq6B3x+LeVd5Q2dxEbYWeXlTRbKezTpUorRoqgFWYsQ0WKCKrDUtvbyzPGLfPymFSxJ9P0mj525yQA62hWEyhtdbF6WhF2LogYsTbrUgtfcPUBDR59OLaqA9L0D1USG2XmwKNcv18tLTyAhKowjuq4rqPQPuTl7uYetup4roGnSpRa839bn0qRLBZbKKz08f7KJT+zMIiU+0i/XtNuEm3Icupg+yJy62InbY9iilegDmiZdasErresgOtzO+nTvtVRRyhseeaWK2IgwPn9Ljl+vuzPXQUNHH40dfX69rpq78sZOAPK1XERA06RLLXildR1sWZ5EuF1/HVTgOH2pi1+fvsKnb85mUWyEX6+t67qCT3mDiyxHDI44/4yIqrnRdxm1oPWPGM5e7tapRRVwvltcRUJUGJ+5Odvv116dFocjNoKjOsUYFIwxHG/o1PpcQUCTLrWg1XS68Ri0KKoKKOUNLg6ca+HzhbkkRvu/nYuIsD13dF2XMcbv11ezc6mzn9aeQV3PFQQ06VILWpXLg90m+glRBZTvFFexODaCT+7MsiyGnbkOrnQPcKHtqmUxqJkpbxhdz7Vlmb6OBTpNutSCVu1yk7c0gbjIMKtDUQqAN2vbOVTdxoOFucRa+P+lrusKHscbXESF21i7VIuiBrp5J10iYheRchF5cYrnvioiFSJySkQOiMiK+V5PKW8ZGvFQ0+mhQKcWVYAwxvDt4ipS4iP5+HZrXy6zHDEsSYjS0hFBoLyhk00ZuhkoGHjjJ/QQcHaa58qBAmPMJuCXwN964XpKecWZpi6GPNpvUQWON86389aFDr5YlEt0hN3SWESEnbkOjuq6roA27DFUNHXreq4gMa+kS0QygfcDT031vDHmoDFmvNDLUSBzPteb7O9fquT+H5d585QBxxjD135+kkPVrVaHEnLevDDa5FpHulQgGB3lqiQ9MYqP3bTc6nAA2JHroP3qEFXNvVaHoqZR3+VhyO3RdalBYr4LBh4Bvg7MZCL5M8Cvp3tSRO4H7gdIS0vD6XRe94R19UMcuDDMfxcfJCbcf72ment7ZxSfN9R3u/nV8QGOVl3iL3ZFY/Njb0B/3qe/uT2GHxzqZ0WcoeLYUSqsDsjHQvlnGSoOVrZQ3tDJX31wI5Fh1o5yjduR6wDgcE0ba5boeqFAVNPlAdCRriAx56RLRO4CWowxx0Sk6DrHfhwoAAqnO8YY8yTwJEBBQYEpKrrmKQGIXt7Oi08exbZ0HUUblswi+vlxOp3MJD5veNR5HqjkUq/Bk5bHnrw0v1wX/Huf/vb8ySZa+8v50paokL3HiUL5ZxkKjDF8++Uqli+O4b4Cr04IzEvmohiWL47hcE07n9rl/3ph6vpqOt1kJEWTluD7Zuhq/uYzvbgLuEdE6oCngT0i8pPJB4nIXuD/APcYYwbncb332LpiEfGRYZRUhe7UW0llK2vS4slcFM2jzvO6tsILjDE85qwhNyWWLamBMaKgFraXzlzhTFM3X75tVcAtht6Z6+BobTtuj772BKLznR4d5Qoic/7tNsb8iTEm0xiTBXwUeNUY8/GJx4jIFuAJRhOulnlFOoVwu41dK5MpqWwJyWSkZ2CYY/Uu9qxL5fO35HC8oZO3xtYhqblzVrVy9nI3DxTm+nW6VqmpeDyG7xZXk5Mcywfy060O5z125DroGRihoqnb6lDUJFe6BugYMLqeK4h4/SOViPy5iNwz9te/A+KAX4jICRF53tvXK1yTQlPXAOdbQm+h5xvn2xnxGApXp3BfwTIcsRE8VlJjdVhB7zFnDUsTo9ifn2F1KErx4tuXqWzu4eF9qwkLsFEugB05v13XpQLLiUYXoOu5golXfsONMU5jzF1jX3/DGPP82Nd7jTFpxpj8sf/uufaZZq9wdQpASE4xllS1EhcZxg0rFhEVbufTN2fjrGzlTFOX1aEFrWP1Hbx1oYPP7c4hIizw3uCUf4nIQyJyWkTOiMjDUzz/+2N1Bk+JyGER2ezN64+4PTxSXMWatHju2rjUm6f2mtSEKFamxmm9rgBU3tBJmMD69ASrQ1EzFPTvOulJ0axOiwu5pMsYw2tVrexa6XhnjcfHt68gLjKMx0tqLY4ueD3mrGFRTDgf3bbM6lCUxURkA/A5YBuwGbhLRFZNOuwCUDhWa/AvGNvs4y3Pnmiitu0qX9m3GpstcKe6d+Y6KK3rYNjtsToUNcHxBhcrEmwBs9tVXV/QJ10wOtr1Zm0HfUMjVofiNTWtvVzq7Kdwdeo7jyVGh/P725fzX6eaqNN+aLNWeaWHV8628Mmd2cREaNsfxTrgqDGmzxgzApQAH5x4gDHmsDHGNfZXr9YaHHZ7+N6BKjZkJPC+9f7blTwXO3Ic9A25OXWx0+pQ1Jhht4dTF7vITQqJt/EFIyTeeQpXp/LPhy5wtLadPWsD+8VrppyVoyN3hWtS3vX4Z3Zl8y9v1PHkoVr+6oMbrQgtaD1eUkNMhJ1P7NRuVAqA08BfiogD6AfuBK5VbXnaWoNzqTN49PIIjR2D/O5WDyUlJbMMfe7mUrPNPTS6UenfXymjJzfCB1F5X6jXpqt2uRkc8ZAZ7Q7p+4TQ+lmGRNJ1Y/YiosPtlFS2hkzSVVLVyqrUODKSot/1eGpCFB+6IZNfll3k4dtWkaq1WWaksaOP50828amdWSTFBMebhvItY8xZEfkWUAz0AieBKYfLReRWRpOum6c516zrDN7iMewqaOPmlcmIH3fRzrVm26NnD3HFE05R0XbvB+UDoV6b7uivzxFmq+WGjJiQvk8IrZ9lSIxLRobZ2ZnrCJl1XX1DI7xZ2/HOJoHJPn9LDiMeDz9444KfIwte/3yoFpvAZ3ZrgUf1W8aYHxhjthpjbgE6gOrJx4jIJkZbne03xnhtNbnNJuxeleLXhGs+duQ6KKt3MTDstjoUBbxytplt2YuJ9WM3FjV/IZF0weg0XF17X0isdTpa286Q2/OeqcVxKxyxvH9TOv9+tIGu/mE/Rxd82noH+VlpIx/cksHSxOjrf4NaMEQkdezP5cC9wE8nPb8ceAb4H8aYKv9HGDh25joYGvFwvMF1/YOVT11ou8r5ll72+bFDifKO0Em6Qqh0REllK9Hhdm7MWjztMQ8W5tI7OMJPjtb7MbLg9KM36hhye/h8Ya7VoajA8ysRqQBeAL5ojHGJyAMi8sDY898AHMCjY7UGr7XmK6Rty16M3SYc0dIRliuuuAKgSVcQCpmka4Ujluzk2NBIuqpa2ZHrICp8+m3AeekJFK1J4YevX6B/SIf7p9MzMMy/HqnjjvVLyE2JszocFWCMMbuNMXnGmM3GmANjjz1ujHl87OvPGmMWTag1WGBtxNaJjwpnQ0aiJl0BoLiimXVLE8hcFGN1KGqWQibpgtHRrsM1bUG95qCu7Sp17X3Truea6MHCXNqvDvGLY41+iCw4/cebDfQMjPBgkY5yKTVfO3MdnGjs5Opg6JTnCTbtvYMcq3fpKFeQCrmka2DYQ2ld8PYnHB+pm0nStS17MTesWMQTJbVatHAKA8Nunnr9AjevTGZTprbJUGq+duY6GPGYoH6NDXYHzrXgMXC7Jl1BKaSSru05DiLCbJRUBu8UY0lVKyscMWQlx173WBHhwcJcLnX28+KpJj9EF1yeOX6J1p5BvqCjXEp5RcGKxYTbhSO1OsVolVcqmlmaGKWtf4JUSCVd0RF2bspeHLTrugaG3RypaadoBqNc4/asTWVNWjyPOWvweIwPowsuI24PT7xWw+bMRHbkOqwOR6mQEB1hZ8uyRbquyyIDw24OVbexd11a0JQaUe8WUkkXjE7LVbeMttAJNmV1LvqH3dOWipiKzSY8UJRDVXMvr55r8WF0weXXp69Q397Hg0Ur9cVJKS/akevg9KUuLVdjgder2+gfdut6riAWcklX0VjCEoxTjM7KFiLsNrbnzG5k5u5N6WQuiuZR53mM0dEuYwyPOmvISYnVdQ9KednOXAceA29d0HVd/lZc0Ux8ZNis3yNU4Ai5pCs3ZbR1TklV8I36lFS1clPO4lk3Yw6z27j/lhyON3TqCyGj/45nL3fzQGEuNpuOcinlTfnLk4gMs3G4ps3qUBYUt8dw4FwzhWtSiAgLubfuBSPkfnIiQuGaFN443x5UO/oudfZT3dI7o12LU7nvhmU4YiN4rKTGy5EFn8ecNSxNjOID+RlWh6JUyIkMGy3crOu6/OtEo4u23iGdWgxyIZd0wei6rt7BEY7VB0+7ivHp0LkmXdERdj59czbOylbONHV5M7SgcqzexZsXOvjs7hz9NKiUj+zIdXDuSg/tvYNWh7JgFFe0EGYTitakWh2KmoeQfFfamesgzCZBtYuxpKqF9MQoVqbOvWr6x7evIC4yjMdLar0YWXB5zFlDUkw4H9u2zOpQlApZ4zuCj9bqcgZ/Ka64wk05i0mMDrc6FDUPIZl0xUeFc8OKRUGzmH7Y7eGN8+0Urkmd1067xOhwfn/7cv7rVBP17cHf+Hu2Kq/08MrZZj65M2vW6+KUUjO3KSORuMgwXdflJ7WtvdS0XmXfOp1aDHYhmXQBFK1JpeJyNy3dA1aHcl3H6130Do7MeWpxos/syibMbuOJ1xbeaNcTJTXERNj5xI4sq0NRKqSF2W1sy9Z1Xf5SXNEMwF5dzxX0QjbpGk9ggmGK0VnVSphN2Lly/tuAUxOi+NANmfyy7GJQJJze0tjRx3Mnm/jYtuUsio2wOhylQt7OXAe1bVe50rVwXmesUlzRTJ42uA4JIZt0rVsaT0p8ZFAkXSWVrWxdsYiEKO/M1d+/O4cRj4cfvHHBK+cLBk8dqsUm8Nnd2VaHotSCMF4r6kitTjH6UlvvIMcatMF1qAjZpEtEKFydwqHqNtwB3B6npXuAisvd7xR19Yas5Fju3LiUfz/asCCqRrf1DvJ0aSMf3JLB0sRoq8NRakHIW5pAYnQ4h8/rFKMvvXquBWPQpCtEhGzSBaPV6bv6hznR2Gl1KNN6rXr0U6I31nNN9GBRLr2DI/zkaL1XzxuIfvRGHUNuD58v1MbWSvmLzSbsyHFo82sfK65oJl0bXIeMkE66bl6ZjE0Ce12Xs7KFlPhI8pZ69xdqfXoihatT+OHrFxgYdnv13IGkZ2CYHx+p4471S8hNmXu5DaXU7O3IdXDR1U9jR5/VoYSk/iE3h6pb2ZunDa5DRUgnXUkxEeQvSwrYpMvtMRyqbqNwdYpPfqG+UJRL+9Uhfl7W6PVzB4r/eLOB7oERHizSUS6l/G3nWL0uLR3hG6+fb2Ng2KNTiyEkpJMugMLVqZy62EnH1SGrQ3mPkxc76eof9vrU4rht2YvZujyJJ0pqg6ol0kwNDLt56vUL3LwymU2ZSVaHo9SCszI1juS4SA5r6QifKK64QnxkGDdla4PrUBHySVfRmhSMgUPVgTfaVVLZik1Gp0F9QUT4QtFKLnX281+nLvvkGlZ65vglWnsGdZRLKYuICDtyHRypaceYwN2wFIzcHsOBsy0UrU3VlmYhJOR/khszElkcGxGQ1emdVa1sXpbk07pSe9amsjotjsecNXgCeBfnbLk9hideq2FzZuI7UxxKKf/bmeugpWeQmtaF1wXDl040umi/OsTeddprMZSEfNJlswm7VyXzWnVrQCUdHVeHOHWxk6LVvv2FstmEBwpzqWzu4WBli0+v5U///fZl6tv7eLAoVxeYKmWh8Q89R3Rdl1e9XNGsDa5DUMgnXTBajqGtd4iKy91Wh/KOQ9WtGAOFXqzPNZ27N6eTkRTNo86akJgCMMbwmLOGnJRYbs9bYnU4Si1oyxfHkJEUraUjvKy4opntOQ5tcB1iFkTSdcvYQnVnAI30lFS2sigmnI0ZiT6/Vrjdxv235HCs3kVpncvn1/O116rbqLjczQOFudhsOsqllJVEhO05o+u6Amk2IZjVtPZS23pVdy2GoHknXSJiF5FyEXlxiuciReRnInJeRN4Ukaz5Xm8ukuMi2ZiRGDClIzwew2vVrexelYLdT0nDhwuW4YiN4FHneb9cz5cePXiepYlRfCA/w+pQlFKMTjG6+oY5d6XH6lBCgja4Dl3eGOl6CDg7zXOfAVzGmJXAd4FveeF6c1K4OoXjDZ0B0Ran4nI3bb1DXm39cz3REXY+tSsLZ2UrFU2BM806W8fqXbx5oYPP7s7RHT1KBYgd4+u6dIrRK4ormlmfnkBGkrY1CzXzetcSkUzg/cBT0xyyH/jXsa9/CdwmFq16LlqTgttjOHze+sWe4yNuu1f5L+kC+B87soiLDOOxkhq/XtebHnPWkBQTzkdvXGZ1KEqpMelJ0WQ5YnQxvRe09gxyXBtch6yweX7/I8DXgfhpns8AGgGMMSMi0gU4gPf8ZorI/cD9AGlpaTidznmG9m5ujyE6DH5acoro9sp5nau3t3de8T33Vj8rEmycOXZkXnHMxe504cWTTexOdJEac+2ce7736W2Xejy8crafD6wMp/TI6145Z6Ddo68slPtU1tmRm8yLJ5sYcXsIs+so9FwdHGtwvXedJl2haM5Jl4jcBbQYY46JSNF0h03x2JQrLY0xTwJPAhQUFJiioulOOXe3Xj7G8fpOCgsL51VmwOl0Mtf4uvqHqXm5mAcKcygqWjvnGOZq3dYBDnzrICcHU/jLOzde89j53KcvfPVnJ4iJuMI3P1bktdpmgXaPvrJQ7lNZZ2eug5++1cDppm7yl2mHiLl6uaKZjKRobXAdoubzcWQXcI+I1AFPA3tE5CeTjrkILAMQkTAgEeiYxzXnpXB1Cle6B6hq7rUqBA6fb8PtMZbVXklLiOJ3b8jkF8cu0tIzYEkMc3HR1cdzJ5v42LblPi0mqxYWEXlIRE6LyBkReXiK50VE/mFsM9ApEdlqRZzBYHvOeL0uXdc1V/1Dbl4/38redalafzBEzTnpMsb8iTEm0xiTBXwUeNUY8/FJhz0PfGLs6w+NHWPZnuLCsUKkVpaOKKlqJT4qjC0WfhL8/C05jLg9/PD1OstimK2nDl3AJvDZ3dlWh6JChIhsAD4HbAM2A3eJyKpJh/0OsGrsv/uBx/waZBBJiY9kdVqcNr+eh0PVrWMNrrX+YKjy+sS7iPy5iNwz9tcfAA4ROQ98Ffhjb19vNpYkRrF2SbxlpSOMMTgrW7l5ZbKlax6ykmO5c+NSfnK0PiB2c15Pe+8gT5c28IH8DJYm6m4e5TXrgKPGmD5jzAhQAnxw0jH7gR+bUUeBJBFZ6u9Ag8XO3GTK6lwMjXisDiUoFVc0Ex8Vxk05i60ORfnIfBfSA2CMcQLOsa+/MeHxAeA+b1zDWwpXp/DDNy5wdXCE2Eiv3P6MVTX3cqV7wK+lIqbzQGEuL566zE+O1vPFW1daHc41/ehwHYMjHj5fqI2tlVedBv5SRBxAP3AnUDbpmHc2A425OPbYuzrI+3ojkDf5clNFfP8I/cNufvTCQVYvsvvkGjMVbJtHPMbwm7f7WO+w88ah12b8fcF2n3MRSvfo36wjABSuTuGJ12o5UtPu98JzJVWj05rjFfKttCEjkcLVKfzLGxf4zM3ZRIVb+wI5nZ6BYf71cB3vy1vCytQ4q8NRIcQYc1ZEvgUUA73ASWBk0mEz2gzkj41A3uLLTRVb+ob5/omX6Y9fTlHR5Jla/wq2zSNldR30vHSE3yvaRNHm9Bl/X7Dd51yE0j0uuH29BVmLiYmw46zy/7ouZ2Ura9LiA2aK7MGiXNp6h/hFWeP1D7bIT99qoHtghAeLdJRLeZ8x5gfGmK3GmFsY3eRTPemQdzYDjckEmvwVX7BJjAlnfXqCruuag+KKZsLtEhAzIcp3FlzSFRFmY2duMs7KVr82f746OEJpXYdfGlzP1E3Zi9myPL4IwjsAACAASURBVIknXqtlxB14azAGR9w8degCu1Y62Kxb0JUPiEjq2J/LgXuBn0465HngD8Z2MW4Huowxl1HT2pmbTHlDJwPDbqtDCSrjDa4TorTBdShbcEkXQOGaFC66+rnQdtVv1zxS086w21AUAFOL40SELxSt5KKrnxdPBd77yDPHL9HSM8gXigJ7zZkKar8SkQrgBeCLxhiXiDwgIg+MPf/fQC1wHvhn4AsWxRk0duQ4GHJ7OFbvsjqUoHG+pZfaNm1wvRAsuDVdwDuJT0lVKzkp/lknVFLVSkyEnRuyFvnlejN129pUVqXG8Zizhv356QFTG8btMTxRUsOmzER2jvV1U8rbjDG7p3js8QlfG+CLfg0qyN2YvRi7TThc08aulclWhxMU3mlwrVXoQ96CHOlatjiGnJRYnJX+KR1hjMFZ1cLOXAeRYYG1YN1mEx4syqWyuYdXz1lXv2yyX5++TF17H18oyg2YRFApdX1xkWFszkzksBZJnbHiiitsyEggXRtch7wFmXTB6C7Go7Xtfll3cKHtKo0d/RQG0NTiRHdvTicjKZrHnIHRCNsYw2POGnJSYrldiwQqFXR25Do4dbGL3sHJm0HVZK09g5Q3duoo1wKxoJOuwREPb17wfVei8WKs4xXxA0243cb9t+RQVu/iLT/8e1zPa9VtnGnq5oFbcrHZdJRLqWCzMzcZt8dQGgCvJ4Hu1XPNGIOu51ogFmzStT3HQWSYzS8tgUqqWslJjmW5I8bn15qrDxcsY3FsBI85z1sdCo85z7MkIYoPbMmwOhSl1BzcsGIREXablo6YgeKxBtd5S7XB9UKwYJOuqHA723McPm8JNDDs5khNe0AURL2W6Ag7n9qZxcHKViqaui2L43iDi6O1HXx2dzYRYQv2f0+lglpUuJ0ty5M4Uqvruq6lb2iEQ9Vt7MtL07WrC8SCflcrXJ1CbetVGjv6fHaNNy90MDjiCaj6XNP5gx1ZxEbYebzEurVdjzlrSIoJ52PbllsWg1Jq/nbmJnOmqZvOviGrQwlYh6rbGBzx6NTiArKwk641vy0d4Sslla1EhtnYkRP4ZQ8SY8L5/e0rePFUE/Xt/qthNq6quYfiimY+sSPL730xlVLetXOlA2PgaK2u65rOeIPrbdna4HqhWNBJV05yLJmLon1aOsJZ1cJNOY6A7W042WduzibMZuPJ12r9fu3HS2qIDrfzyZ1Zfr+2Usq7NmcmER1u56hOMU7J7TG8eq6FW9ekEm7//9m78/iqqnv//69PJsIYphAZZQyDTGIYHIki1qJVO4hjq9bKvR1t1VvtYAdvba1Va/vV3t+11apFURyqojggGqzKKJIwj0kgJJBAmBLIeNbvjxx6YzyBDOecfYb38/HII+fs4ezPImHns/da+7Pi+k9xXInr2wlmDfNcvbx6NzV1vqCPIdpVfpQdZZVcN/XUoH5uKGV0S+WrZ/TnhU+KODAwkWXHNoXluM45XltTzDfOHEyPzilhOaaIhE5KUgJZg3toMH0zVu88QHlljboW40xcJ13QUMZh7rKdrCos56xhwa2efLzbMtomMP3P6cNYtGEv7xTWkLArP2zH7dk5hVvOGxK244lIaJ01rDe/f2sTZUeqSe/awetwIoomuI5PcZ90nTmsF8mJxpItZSFJugb06MjQ3p2D+rmhdmqvzqz6+UxycnLIzs72OhwRiVLHp/BaumM/l03o53E0kcM59+8Jrrtqguu4EvdJV5cOSWSd2pMlm8v4yRdHB+1za+p8fLxtH1ec3l+PAotIXDqtXze6dkji/U2lnD6we1iP7XMurMdrje1lFeTvq+SbZw/2OhQJs7hPuqCh++93b25iz6EqTklLDcpnriosp7KmPmKn/hERCbWkxASmDevFPz/dzT8/3R3WY4/skcC55/kicpD6O8cnuNZ4rrijpIuG0hG/e3MTH2wpY/bkgUH5zCVbykhONM4aHtwuSxGRaPLry07jC6eFdw7VogNHefjdrdz35ibuvnRMWI/dEu9u2MvY/t3om6YJruONki5gZEZXTumWypJgJl2by8g6tSddVG9KROJYv+4d+doZA8J+3PVb83n8w3zOOLUHs8b1Dfvxm3N8gusfzsj0OhTxQOTdd/WAmTE9M51/bS2jrt7X7s/bc6iKTXuOREUVehGRWHTVyBQmDerOj1/MY3tZhdfh/NvijZrgOp4p6fKbPjKdw1V1rNl1sN2f9YG/VITGc4mIeCMpwXj0ukmkJCXw7bmfcLSmzuuQgP+b4Hp0365ehyIeUNLld/bw3iQmWFCmBFqypYyMbh0YdYr+U4mIeKVvWkf+dPVEtpZW8LN/rsN5/ETj0Zo6PtymCa7jmZIuv7SOyZw+sHu7pwSqq/fxr61lTM9M138qERGPnTsinR9dmMk/P93NM8t3ehrLB1saJri+SF2LcUtJVyPZI9NZu/sQ+yqq2/wZa3Yd5HBVHdMz+wQxMhERaavvnT+c7JHp3LNgA3lF7R9C0lbvbtxLt9QkJmuC67ilpKuR44nSv7a2/W7Xki1lJCYY54xQqQgRkUiQkGD8cfZE0rt24NtzV3OgsibsMfx7gutRmuA6nukn38hp/brRq3MKS9rRxbhkSxmnD+xOWkdN7SAiEil6dE7hL9dNouxINT+avwafL7zjuz4p1ATXoqTrMxISjPMy0/lg6742/YfcV1FNXtEhPbUoIhKBJgzszt1fGkPO5jIefX9bWI+9aMMekhNNfx/inJKuJrJHplNeWcPa3Ydave/xbknV5xIRiUzXTx3EFRP78dC7W/hw676wHPP4BNdnDuutCa7jnJKuJs4Z3hsz2lQ6YsnmMnp1TmFsv7QQRCYiIu1lZvz2K+MY0acLP3juU0oOHQv5MbeVVlCw/6i6FkVJV1O9unRgfP+0ViddPp/jg637OC8znYQElYoQEYlUnVKS+J/rz6C6tp7vPrOamrr2z0RyIos2+ie4Hq2n2uOdkq4Apmem8+nOAxw82vInXNbuPkR5ZY3660VEosCw9C784coJrN55kN+9uTGkx1q0YS/j+qdpgmtpX9JlZqlmtsLMcs1svZn9OsA2g8zsfTP71MzyzGxWe44ZDtNH9sHn4MNtLe/vX7KlDDM4V6UiRESiwqxxffnm2UP4+0cFvJ5XHJJjlB6pYs2ug+paFKD9d7qqgQuccxOAicDFZjatyTY/B+Y7504Hrgb+0s5jhtyEAWmkdUxuVemIJVvKGN8/jV5dOoQwMhEJJjP7kf+CcZ2ZzTOz1Cbro+6iUVrnJ7NGccapPbjzxTy2lQZ/YuzFG0s1wbX8W7uSLtfg+G9psv+raa0FB3Tzv04DQnM5EURJiQmcM6I3S7aUtWiurkNHa/l05wF1LYpEETPrD/wAyHLOjQUSabgwbCzqLhqldZITE3j02kmkJify7bmfUFkd3ImxF23Yy4AeHTUXrwCQ1N4PMLNE4BNgOPCoc255k01+BbxjZt8HOgMXNvM5c4A5ABkZGeTk5LQ3tHY5xVdL6ZEa/rHgPQZ1S/zMuoqKis/Et6KkDp+DrpVF5OSUhDnS0GnazlgUD22E+GlnGyQBHc2sFujE5y8Ko+6iUVrvlLRU/nzN6Xz98eX89J9refiqiUGZO7eyumGC6+umDtJcvAIEIelyztUDE82sO/BPMxvrnFvXaJNrgCedcw+a2ZnAP/zb+Jp8zmPAYwBZWVkuOzu7vaG1y5jDVTy+bjGV3QaTnT3sM+tycnJoHN8bL+TSLXUPN112PkkxNL1D03bGonhoI8RPO1vDObfbzB4AdgLHgHecc+802exXROFF44nESwLelnZeMTyZl9cU061mHzMGtb+e1id766ip85Fes4ecnLbPdHIi8fDzjKU2tjvpOs45d9DMcoCLgcZJ183+ZTjnlvrHTPQGSoN17FDo0y2V0X27sWRLKd9uknQ15pxjyZYyzs1Mj6mESyTWmVkP4HJgCHAQeMHMrnfOzW20WVReNJ5IvCTgbWnneec5Dj69iuc2l/HV8yczcWD3dsWwYH7DBfktV5wfsvkW4+HnGUttbO/Ti+n+O1yYWUcargI3NdlsJzDDv81oIBUITcofZNMz01lVcIAjVbXNbrOx5AilR6o1nksk+lwI5DvnypxztcDLwFlNtrkZmA8NF400nL/0iHKMSkgwHpo9gYxuqXz3mfZNjF1X7+O9TXu5QBNcSyPt/U3oC7xvZnnASmCRc+51M7vHzC7zb3M7cIuZ5QLzgBtdS0anR4DpmenU+Rwfb9/f7DbHi6gq6RKJOjuBaWbWyRoG3MwAmhZsitqLRmmb7p3+b2LsHz7f9omxPyk8wIGjtcwcc0qQI5Ro1t6nF/Occ6c758Y758Y65+7xL/+Fc+41/+sNzrmznXMTnHMTA4yZiFhnnNqDLh2STlidfsmWUkb37UZGt9RmtxGRyON/6OdFYDWwlobz4WOxctEobTd+QHd+ddlpLNlSxv97r20TYy/asJeUxATNxSufEbQxXbEoJSmBs4b1YsnmhtIRTZ8+qaiuY1XBAb517lCPIhSR9nDO/RL4ZZPFv2i0fgNwdliDkohwzZSBrCos5+HFWzh9UHfOa0VvhnOORRv3cuawXnTpoD+z8n/U0XwS00ems/vgMbaXfb5o3kfb9lHnc+paFBGJMWbGvVeMY2RGV2597lOKD7Z8YuxtpRUU7j/KhSqIKk0o6TqJ4wlVToDq9Eu2lNE5JZEzTu0R7rBERCTEOqYk8pfrJlFb7/hOKybGfmdDwwTXM0cr6ZLPUtJ1EgN6dGJ4ny6fG9flnGPJ5jLOHt6blCT9M4qIxKKh6V144MrxrNl1kN8ubNnE2Is27GX8gDROSdNYX/ksZQstMD0zneX55Ryrqf/3su1llew+eEyDJEVEYtzFY/vyrXOG8OTHBbyWe+JJCUoP+ye41l0uCUBJVwtMz0ynps7Hsh3/VzoiZ3NDbdfzRijpEhGJdXd+cRSTB/fgrpfy2Lr3SLPbvbux4W/DzNOUdMnnKelqgSlDepKanPCZLsYlW8oYlt6ZgT07eRiZiIiEQ3JiAo9cO4lOKYl8+5nVzU6MvWjDHgb27MjIDE1wLZ+npKsFUpMTOXNor38nXdX1juX55WSP7ONxZCIiEi4Z3Romxt5RVsFdL6+lacm2yuo6Ptq+nwtHZ2iCawlISVcLTc9MJ39fJYX7K9lUXk9NnU+lIkRE4sxZw3pz+0UjWZBbzNNLCz+z7l9by6ip8zFTpSKkGUq6Wmi6/67Wki1lrC2rJzU5gSlDenoclYiIhNu3pw9jxqg+/OaNDazeeeDfy9/ZsJe0jslMGay/DRKYkq4WGtK7M6f26sSSzWWs3VfPmUN7kZqc6HVYIiISZg0TY0/klLRUvvfMasora/wTXJdywag+JGmCa2mGfjNaYXpmOh9sLWPvUVWhFxGJZ2mdkvmf685gX2UNtz73KSsKyjl4tFZdi3JCSrpaYXpmOrX1DQMnp2sQvYhIXBvbP417LjuNf23dx23P55KSmNCqORol/ijpaoUzh/UiJTGB9I7G4F4qFSEiEu+umjyQr50xgD2HqzTBtZyUfjtaoVNKEv+ZPYzDewr1OLCIiGBm/PflY6mqrefKrIFehyMRTklXK902M5OcnBNPAyEiIvGjY0oij1w7yeswJAqoe1FEREQkDJR0iYiIiISBki4RERGRMFDSJSIiIhIGSrpEREREwkBJl4iIiEgYKOkSERERCQMlXSIiIiJhoKRLREREJAzMOed1DJ9jZmVAoddxnEBvYJ/XQYRBPLQzHtoIkd/OU51zMTFTsM5fEUPtjB3R0MYWncMiMumKdGa2yjmX5XUcoRYP7YyHNkL8tFNOLl5+F9TO2BFLbVT3ooiIiEgYKOkSERERCQMlXW3zmNcBhEk8tDMe2gjx0045uXj5XVA7Y0fMtFFjukRERETCQHe6RERERMJASZeIiIhIGCjpCsDMnjCzUjNb12jZBDNbamZrzWyBmXVrss8gM6swszvCH3HrtbaNZjbev269f32qN5G3TmvaaWbJZvaUf/lGM/uJd5G3nJkNNLP3/TGvN7Nb/ct7mtkiM9vq/97Dv9zM7M9mts3M8sxskrctkGDS+Uvnr2g6f0GcncOcc/pq8gWcB0wC1jVathKY7n/9TeC/m+zzEvACcIfX8Qe7jUASkAdM8L/vBSR63YYQtPNa4Dn/605AATDY6za0oI19gUn+112BLcAY4H7gLv/yu4Df+1/PAt4EDJgGLPe6DfoK6u+Dzl86f0XN+csfb9ycw3SnKwDn3AdAeZPFI4EP/K8XAV89vsLMrgB2AOvDEmAQtLKNFwF5zrlc/777nXP1YQm0nVrZTgd0NrMkoCNQAxwOR5zt4Zwrcc6t9r8+AmwE+gOXA0/5N3sKuML/+nLgaddgGdDdzPqGOWwJEZ2/AJ2/oub8BfF1DlPS1XLrgMv8r68EBgKYWWfgTuDXHsUVTAHbCGQCzszeNrPVZvZjT6ILnuba+SJQCZQAO4EHnHNNT3gRzcwGA6cDy4EM51wJNJzUgD7+zfoDuxrtVuRfJrFL5y+dv6JCrJ/DlHS13DeB75rZJzTc/qzxL/818EfnXIVnkQVPc21MAs4BrvN//7KZzfAmxKBorp1TgHqgHzAEuN3MhnoTYuuZWRcauol+6Jw70RWuBVim2jGxTecvnb8iXjycw5K8DiBaOOc20XCbGjPLBC7xr5oKfM3M7ge6Az4zq3LOPeJNpG13gjYWAUucc/v86xbSMM5gsRdxttcJ2nkt8JZzrhYoNbOPgCwaul4impkl03CyesY597J/8V4z6+ucK/Hfei/1Ly/i/66OAQYAxeGLVsJN5y+dvyJdvJzDdKerhcysj/97AvBz4P8DcM6d65wb7JwbDDwM/DYaT1jQfBuBt4HxZtbJP15gOrDBmyjb7wTt3Alc4H8ypjMNAzQ3eRNly5mZAY8DG51zDzVa9Rpwg//1DcCrjZZ/w9/OacCh47fwJTbp/KXzVySLp3OY7nQFYGbzgGygt5kVAb8EupjZd/2bvAz83aPwgqI1bXTOHTCzh2h4asYBC51zb4Q/6tZr5c/yUf/rdTTcvv67cy4vvBG3ydnA14G1ZrbGv+ynwH3AfDO7mYYT8pX+dQtpePpnG3AUuCm84Uoo6fwF6PwVTecviKNzmKYBEhEREQkDdS+KiIiIhIGSLhEREZEwUNIlIiIiEgZKukRERETCQEmXiIiISBgo6RIREREJAyVdIiIiImGgpEtEREQkDJR0iYiIiISBki4RERGRMFDSJSIiIhIGSrpEREREwkBJl4iIiEgYKOkSERERCQMlXSIiIiJhoKRLREREJAyUdImIiIiEgZIuERERkTBQ0iWeMLP1ZpZtZj81s795HY+IiEiomXPO6xhEREREYp7udImIiIiEgZIu8YSZFZjZhWb2KzOb22j5C2a2x8wOmdkHZnaal3GKiACY2Z1mttvMjpjZZjObYWYdzOxhMyv2fz1sZh3822ebWZGZ3W5mpWZWYmY3ed0O8ZaSLok0bwIjgD7AauAZb8MRkXhnZiOB7wGTnXNdgS8ABcDPgGnARGACMAX4eaNdTwHSgP7AzcCjZtYjfJFLpFHSJRHFOfeEc+6Ic64a+BUwwczSPA5LROJbPdABGGNmyc65AufcduA64B7nXKlzrgz4NfD1RvvV+tfXOucWAhXAyHAHL5FDSZdEDDNLNLP7zGy7mR2m4UoSoLeHYYlInHPObQN+SMOFYKmZPWdm/YB+QGGjTQv9y47b75yra/T+KNAlxOFKBFPSJZHkWuBy4EIabskP9i83rwISEQFwzj3rnDsHOBVwwO+BYv/74wb5l4kEpKRLIklXoBrYD3QCfuttOCIiDWO6zOwC/yD5KuAYDV2O84Cfm1m6mfUGfgHMPcFHSZxT0iWR5Gkabs/vBjYAy7wNR0QEaBjPdR+wD9hDw4M+PwV+A6wC8oC1NDz88xuPYpQooOKo4gkz2wlcT0NX4gDn3Dc9DklERCSkdKdLws7M0oF0Gu5qjQHyvY1IREQk9JR0SViZ2WRgK/D/gFeAAcBfPQ1KREQkDNS9KCIiIhIGutMlIiIiEgZJXgcQSO/evd3gwYO9DqNZlZWVdO7c2eswQi4e2hkPbYTIb+cnn3yyzzmX7nUcwaDzV2RQO2NHNLSxpeewiEy6Bg8ezKpVq7wOo1k5OTlkZ2d7HUbIxUM746GNEPntNLPCk28VHXT+igxqZ+yIhja29Bym7kURERGRMFDSJSIiIhIGSrpEREREwkBJl4iIiEgYKOkSERERCQMlXSIiIiJhoKRLREREJAyUdIlI0NXV+7wOQUSkTXy+0E2PqKRLRIJqz6EqLvnzh7y1bo/XoYiItNo9r2/ge8+uDknypaRLRIJm98FjXPXYUnYfPEavLilehyMi0io7yiqYu6yQtI7JJCRY0D8/IqcBEpHos6v8KNf8dRmHjtXy9M1TmDSoh9chiYi0yn1vbqJDUgI/vDAzJJ+vO10i0m4F+yqZ/b9LOVJVx7PfmqaES0SizvId+3lnw16+nT2M9K4dQnIM3ekSkXbZVlrBtX9dRp3PMe+WaYzp183rkEREWsXnc/x24Ub6pqVy8zlDQ3Yc3ekSkTbbvOcIVz+2FJ+D5+Yo4RKR6LQgr5jcokPccdFIOqYkhuw4SrpEpE3WFx/i6seWkphgPP8f08jM6Op1SCIirVZVW8/9b23mtH7d+PLp/UN6LCVdItJqeUUHufavy+mYnMjzc85kWHoXr0MSEWmTJz8uYPfBY/xs1uiQPLHYmMZ0iUirfFJ4gBufWEFap2Tm3TKNgT07eR2SiEib7K+o5tH3tjFjVB/OGt475MdT0iUiLbYiv5yb/r6C9K4dePaWafTr3tHrkERE2uzPi7dytLaen8waFZbjKekSkRb5eNs+bn5qFX27pzLvlmlkdEv1OiQRkTbbXlbBM8t3cs2UgQzvE54xqRrTJSIntWRLGTc9uZKBPTvy/JwzlXCJSNS7781NpCYnhqwQaiAnTbrM7AkzKzWzdY2WPW9ma/xfBWa2ppl9u5vZi2a2ycw2mtmZwQxeREJv8ca93PLUKoamd2HeLdNCVjRQRCRclu3YzyJ/IdTeXcJ3TmtJ9+KTwCPA08cXOOeuOv7azB4EDjWz75+At5xzXzOzFEAjbkWiyFvr9vD9easZ3bcbT39zCt07aT5FEYluny2EOiSsxz5p0uWc+8DMBgdaZ2YGzAYuCLCuG3AecKP/c2qAmraHKiLh9HpeMbc+t4bxA9J46ptT6Jaa7HVIIiLt9lpuMXlFh3ho9gRSk0NXCDWQ9g6kPxfY65zbGmDdUKAM+LuZTQA+AW51zlUG+iAzmwPMAcjIyCAnJ6edoYVORUVFRMcXLPHQznhoI7S+nR8X1/HXvGpG9EhgTmYNq5d9FLrgQszMngAuBUqdc2P9y64EfgWMBqY451Y1s+/FNNyxTwT+5py7LyxBi0hIVNXW84e3NzO2fzeumBjaQqiBtDfpugaYd4LPngR83zm33Mz+BNwF3B1oY+fcY8BjAFlZWS47O7udoYVOTk4OkRxfsMRDO+OhjdC6ds5fuYu/rs1j2tBePH5jFp1Sov4h5ydpMkQCWAd8Bfjf5nYys0TgUWAmUASsNLPXnHMbQheqiITSEx/ls/vgMf5w5fiQF0INpM1PL5pZEg0nreeb2aQIKHLOLfe/f5GGJExEItQzywv58Ut5nDO8N0/cODkWEi6ccx8A5U2WbXTObT7JrlOAbc65Hf7hEc8Bl4coTBEJsf0V1fzl/e1cOLoPZw0LfSHUQNpzRr0Q2OScKwq00jm3x8x2mdlI/8ltBqArRJEI9eRH+fxqwQYuGNWHv1w3KexjHSJQf2BXo/dFwNRAG2p4RORRO2NHsNr4jw3VHK2p44JeRzz7Nztp0mVm84BsoLeZFQG/dM49DlxNk65FM+tHw7iHWf5F3wee8T+5uAO4KYixi0iQPPbBdn67cBMXjcngkWsnkZKkEn5AoL4HF2hDDY+IPGpn7AhGG7eVVpDzzgdcN/VUrr10bHACa4OWPL14TTPLbwywrBiY1ej9GiCrHfGJSIg98t5WHnhnC5eM78vDV00kOVEJl18RMLDR+wFAsUexiEg73PfmJjomJ3LrhSM8jUNnV5E45ZzjoUVbeOCdLXz59P78SQlXUyuBEWY2xH+3/mrgNY9jEpFWWrp9P+9uDH8h1EB0hhWJQ8457n97M39evJUrzxjAA1dOIClGEy7/EImlwEgzKzKzm83sy/7hEmcCb5jZ2/5t+5nZQgDnXB3wPeBtYCMw3zm33ptWiEhb+HyOexduoJ8HhVADif5Hk0SkVZxz/OaNjTz+YT7XTh3Eby4f68mj0+HS3BAJ4J8Btm06RGIhsDBEoYlIiL2au5t1uw/zx6vCXwg1ECVdInHE53P8asF6nl5ayI1nDeaXXxpDw8QSIiKxpaq2nj+8tZlx/dO4fEL4C6EGoqRLJE74fI6f/nMtz63cxZzzhvKTL45SwiUiMevxD/MpPlTFg7MnRszdfCVdInHA5xz/9WIeL60u4nvnD+f2izKVcIlIzNpXUc3/5GznwtEZnDmsl9fh/JuSLpEYV1fv47G8apaVFPGjCzM9f2RaRCTU/vTuVo7V1vOTWaO8DuUzlHSJxDDnHLfNz2VZST0/vngk38ke7nVIIiIhta30CM+u2Ml1UwcxLL2L1+F8Rmw+Iy4iALywqojXcov5yohkJVwiEhfue3MTnZITuXVG5N3VV9IlEqN2lR/lntc3MHVITy4dmux1OCIiIffx9n28u7GU75w/nF4eF0INREmXSAzy+Rz/9WIuAA9cOYEEDZoXkRjn8zl+u3Aj/bt35KazB3sdTkBKukRi0JMfF7BsRzl3XzqagT07eR2OiEjIvbKmoRDqf31hZEQUQg1ESZdIAytQ8gAAIABJREFUjNlWWsHv39rEBaP6MDtr4Ml3EBGJclW19fzh7c2MH5DGZRP6eR1Os5R0icSQunoft89fQ8eURO77yjjV4hKRuPD4h/mUHKrip7NGR0wh1EBUMkIkhvwlZzu5RYd45NrT6dMt1etwRERCruxINX95fxszx2QwbWjkFEINRHe6RGLEut2H+PPirVw2oR+Xjo/c2+siIsH0p8VbqK7z8ZMvRlYh1ECUdInEgKraem6bv4aenVO45/LTvA5HRCQstpUeYd6KXVw3dRBDI6wQaiDqXhSJAX9ctIUteyv4+02T6d4pxetwRETC4ncLGwqh/iACC6EGojtdIlFuRX45j/1rB9dMGcT5I/t4HY6ISFh8vG0fizeV8t0LIrMQaiAnTbrM7AkzKzWzdY2WPW9ma/xfBWa25gT7J5rZp2b2erCCFpEGldV13PFCLgN6dORnl4z2OhwRkbDw+Rz3+guh3njWYK/DabGW3Ol6Eri48QLn3FXOuYnOuYnAS8DLJ9j/VmBjmyMUkWbdu3Ajuw4c5cErJ9Klg0YLiEh8+Oenu1lffJgfXxy5hVADOWnS5Zz7ACgPtM4aigDNBuY1s34AcAnwt3bEKCIB5Gwu5dnlO7nl3KFMGdLT63BERMLiWE09D7yzmQkD0vhSlD2p3d5L43OBvc65rc2sfxj4MdD1ZB9kZnOAOQAZGRnk5OS0M7TQqaioiOj4giUe2hmtbaysdfzsw2P072JkddhDTs7eE24fre0UEWnq8Q93UHKoioevmhjRhVADaW/SdQ3N3+W6FCh1zn1iZtkn+yDn3GPAYwBZWVkuO/uku3gmJyeHSI4vWOKhndHaxluf+5SK2mPMnXM2Y/unnXT7aG2niEhjZUeq+Z+c7Vw0JoOpEV4INZA2J11mlgR8BTijmU3OBi4zs1lAKtDNzOY6565v6zFFBN7IK+HVNcX86MLMFiVcIiKx4o/vNhRCvSsKCqEG0p6SERcCm5xzRYFWOud+4pwb4JwbDFwNvKeES6R9So9U8fNX1jJ+QBrfOX+Y1+GIiITN1r1HeG7FTq6fdmpUFEINpCUlI+YBS4GRZlZkZjf7V11Nk65FM+tnZguDH6aIOOf4yUtrOVpTz0OzJ5CcqDJ7IhI/fvfmJjp3SIqaQqiBnLR70Tl3TTPLbwywrBiYFWB5DpDT6uhE5N9eWFXE4k2l3H3pGIb3OemzKSIiMeOjbft4b1MpP/niKHp2jt5ZN3SpLBIFdpUf5Z7XNzBtaE9uiqJCgCIi7eVzjt+80VAI9YYoP/8p6RKJcD6f444XcgH4w9cmRN0j0l5rZlaNnma2yMy2+r/3aGbf+81svZltNLM/+2sTikgYfVxcx8aS6CuEGoiSLpEI9/ePC1ieX87dl45mYM9OXocTjZ6kyawawF3AYufcCGCx//1nmNlZNDyFPR4YC0wGpoc0UhH5jGM19by0pZYJA7tz2YToKoQaiOYNEYlg20oruP+tTVwwqg+zswZ6HU5Ucs59YGaDmyy+HMj2v36KhjGndzbdlYZyNymAAcnAiavQisSwD7fu43vzVnO0uj5sx/Q5R53P8b+zRhMLN5qVdIlEqLp6H7fPX0OnlETu++q4mDjhRJAM51wJgHOuxMz6NN3AObfUzN4HSmhIuh5xzgWcR1YzakQetTO46nyOn390jGQHMweFN3VIT6nhaGEeOYVhPWxIKOkSiVB/ydlObtEhHr12En26pnodTtwxs+HAaGCAf9EiMzvPPx/tZ2hGjcijdgbX00sL2FO5nr99I4sLx2SE/HiNxdLPUmO6RCLQut2H+PPirVw2oR+XjO/rdTixaK+Z9QXwfy8NsM2XgWXOuQrnXAXwJjAtjDGKRITDVbU8/O5Wpg3tyYzRn7spLK2gpEskwlTV1vOj59fQs3MK91x+mtfhxKrXgBv8r28AXg2wzU5gupklmVkyDYPoA3YvisSy/8nZTnllDT+bNUbDHNpJSZdIhHlo0Ra2llbw+6+Np3un6C0CGCmamVXjPmCmmW0FZvrfY2ZZZvY3/64vAtuBtUAukOucWxD2Boh4qOjAUR7/MJ+vnN6fcQM012t7aUyXSARZkV/OX/+1g2umDOL8kbqNHwzNzaoBzAiw7SrgW/7X9cB/hDA0kYj3wNubMeD2L4z0OpSYoDtdIhGisrqOO17IZWCPTvz8ktFehyMicS6v6CCvrCnm5nOG0L97R6/DiQm60yUSIe5duJFdB47y/Jwz6dxB/zVFxDvOP/VOr84pfDt7mNfhxAzd6RKJAO9vLuXZ5Tu55dyhTBnS0+twRCTOLdqwlxX55fxwZiZdU5O9DidmKOkS8djBozXc+WIemRlduG1mptfhiEicq633cd+bmxiW3plrJmsmjGBS0iXisV+8up7yyhoemj0x6idzFZHo9+zynezYV8lPZ40mKVFpQjDpX1PEQ2/klfBabjE/mDGCsf31OLaIeKuhEOoWzhzaiwtG6QnqYFPSJeKR0sNV/PyVtUwYkMZ3NFBVRCLAX97fzsFjtfzsktiYYDrSKOkS8YBzjrteXsvRmnoenD1Rt/BFxHO7yo/yxEf5fPn0/rrzHiI604t4YP6qXby3qZQfXzyK4X26eB2OiAgPvNNQCPWOi1QINVROmnSZ2RNmVmpm6xote97M1vi/CsxsTYD9BprZ+2a20czWm9mtwQ5eJBrtKj/KPQs2MG1oT246a7DX4YiIsGbXQV5dU8wt5w6lnwqhhkxLKjA+CTwCPH18gXPuquOvzexB4FCA/eqA251zq82sK/CJmS1yzm1oX8gi0cvnc9zxQi5mxh++NoGEBI2ZEBFvOef47Rsb6d0lhf/U+NKQOumdLufcB0B5oHXWMMpuNjAvwH4lzrnV/tdHgI1A/3ZFKxLlnlpawPL8cn5x6RgG9uzkdTgiIryzYS8rCsr54YWZdNFsGCHV3n/dc4G9zrmtJ9rIzAYDpwPLT7DNHGAOQEZGBjk5Oe0MLXQqKioiOr5giYd2hrONdT7HH3OOMaZXAukV28jJ2R6W40J8/CxFpPVq6hoKoQ7v04WrVQg15NqbdF1DgLtcjZlZF+Al4IfOucPNbeecewx4DCArK8tlZ2e3M7TQycnJIZLjC5Z4aGc42/h6XjGHaz7lv76Uxflhrn8TDz9LEWm9Z5cXkr+vkiduzNJT1GHQ5qTLzJKArwBnnGCbZBoSrmeccy+39VgisWDuskIG9OjIeZnpXociIsKhY7X8afFWzhrWi/NHqhBqOLQnrb0Q2OScKwq00j/e63Fgo3PuoXYcRyTqbSs9wrId5Vw7dRCJGjwvIhHgL+9vUyHUMGtJyYh5wFJgpJkVmdnN/lVX06Rr0cz6mdlC/9uzga8DFzQqLzEriLGLRI25y3aSnGjMztKYCRHx3q7yo/z9owK+cvoATuunQqjhctLuRefcNc0svzHAsmJglv/1h4BSZ4l7R2vqeOmTIr44ti+9u3TwOhwREf7w9mYSEuCOL2R6HUpc0ag5kRB7bU0xR6rruH7aqV6HIiLCml0HeS23oRBq3zQVQg0nJV0iIeScY+7yQjIzujB5cA+vwxGROOec4943NtC7Swr/MV2FUMNNSZdICOUWHWLd7sNcP+1UDVQVEc+9vX4vKwsO8KOZKoTqBSVdIiE0d1khnVIS+fLpmoxBRLzVUAh1IyP6dOEqPdTjCSVdIiFy8GgNC3KLueL0/nRNTfY6HBGJc88sL6Rg/1F+Omu0CqF6RP/qIiHy4idFVNf5uH6qBtCLiLeOF0I9e3gvskeqQLNXlHSJhIDP53hm+U4mDerOmH7dvA5HROLco+9v49CxWn46S4VQvaSkSyQEPt6+n/x9lSoTEQHM7AkzKzWzdY2W9TSzRWa21f894KOlZjbIzN4xs41mtsHMBocrbpFg2VV+lCc/KuCrk1QI1WtKukRCYO6yQnp0SmbWuL5ehyLwJHBxk2V3AYudcyOAxf73gTwN/ME5NxqYApSGKkiRUPn9W5saCqFeNNLrUOKeki6RINtzqIpFG/dyZdZAUpMTvQ4n7jnnPgDKmyy+HHjK//op4Iqm+5nZGCDJObfI/zkVzrmjoYxVJNhW7zzA63klzDl3KKekpXodTtxTkQ6RIHtu5U7qfY5rpwzyOhRpXoZzrgTAOVdiZn0CbJMJHDSzl4EhwLvAXc65+qYbmtkcYA5ARkYGOTk5IQu8vSoqKiI6vmBROxsKof52eRXdUozRCcXk5JSEN7ggiaWfpZIukSCqq/fx3IpdnDuiN4N7d/Y6HGmfJOBc4HRgJ/A8cCPweNMNnXOPAY8BZGVluezs7LAF2Vo5OTlEcnzBonbCm2tL2HpwNb/98ji+ODV6LwJj6Wep7kWRIHp3Yyl7DlfxdQ2gj3R7zawvgP97oLFaRcCnzrkdzrk64BVgUhhjFGmzmjof9721icyMLszOGuB1OOKnpEskiJ5ZXkjftFQuGBWot0oiyGvADf7XNwCvBthmJdDDzI4XNboA2BCG2ETabe6yQgr3H+UnKoQaUfSTEAmS/H2V/GvrPq6ZMkgnuQhiZvOApcBIMysys5uB+4CZZrYVmOl/j5llmdnfAPxjt+4AFpvZWsCAv3rRBpHWOHS0lj+/t5VzhvcmO1OFUCOJxnSJBMmzywtJSjCunqw5zSKJc+6aZlbNCLDtKuBbjd4vAsaHKDSRkHjk/a0qhBqhdDkuEgRVtfXMX1XERadl0KebHssWEW/s3H+Upz4u5GuTBmg2jAikpEskCF7PK+HQsVrNsyginvr925tITDBuVyHUiKSkSyQI5i4rZGh6Z84c1svrUEQkTn1SeIA38kq45TwVQo1UJ026mpm37HkzW+P/KjCzNc3se7GZbTazbWbW3DQbIlFt3e5DrNl1kOumnqrxEyLiCeccv124kd5dOvAf5w31OhxpRkvudD1Jk3nLnHNXOecmOucmAi8BLzfdycwSgUeBLwJjgGv802qIxJRnlheSmpzA1yapFo6IeOPNdXv4pPAAt1+USecOekYuUp006Wpm3jIArOGyfjYwL8DqKcA2f2HBGuA5GuY7E4kZh6tqeeXTYi6b0I+0TslehyMicaimzsd9b25iZEZXZmfp6elI1t50+Fxgr3Nua4B1/YFdjd4XAVOb+yDNXRZ54qGd7W3ju4W1HKutZ3Tyvoj+t4qHn6VIvPrHskJ2lh/lyZsmk5igIQ6RrL1J1zUEvssFDYUEm3LNfZDmLos88dDO9rTROce9f/yA8QM6ctPl5wQ3sCCLh5+lSDyqqHH8eclWzh3Rm+kqhBrx2vz0opklAV+hYRLYQIqAxvc5BwDFbT2eSKRZkV/O1tIKlYkQEc8s2FHD4SoVQo0W7SkZcSGwyTlX1Mz6lcAIMxtiZinA1TTMdyYSE/6xrJBuqUl8aUI/r0MRkThUuL+SdwvruPKMAYzuq0Ko0aAlJSMCzVsGDUnUvCbb9jOzhQDOuTrge8DbwEZgvnNufTCDF/FK2ZFq3l6/h6+eMYCOKYlehyMicej+tzaTmIAKoUaRk47pam7eMufcjQGWFQOzGr1fCCxsR3wiEWn+ql3U1juuU9eiiHhge1kFb6wt4fJhyWRo6rGooYr0Iq1U73M8u3wnZw7txfA+XbwOR0Ti0Mfb9wNwVj/V5IomSrpEWilncym7Dx7j62fqLpeIeGNlfjnpXTvQp5MGz0cTJV0irTR3WSF9unZg5pgMr0MRkTjknGNlQTlTBvfUE4tRRkmXSCvsKj9KzpYyrp48kORE/fcRkfArOnCMkkNVTB7cw+tQpJX0V0OkFZ5dsRMDrp4yyOtQRCROrSxomJlv8pCeHkciraWkS6SFquvqmb9yFzNGZ9Cve0evwxGROLWyoJyuHZIYdYpqc0UbJV0iLfTWuj3sr6zh+mkaQC8i3lmRX84Zg3tonsUopKRLpIXmLivk1F6dOHd4b69DEZE4tb+imu1llUwerK7FaKSkS6QFNu05zMqCA1w7ZRAJuroUEY+sLDgAwBSN54pKSrpEWuCZZTtJSUrgyqyBJ99YRCREVhaUk5KUwPgBaV6HIm2gpEvkJCqr6/jnp7u5dFxfenZO8TocEYljKwvKmTigOx2SNOdrNFLSJXISr6zZTUV1HddpAL2IeKiyuo71xYeZPET1uaKVki6RE3DOMXfZTkb37cakQd29DkdE4tjqnQeo9zkNoo9iSrpETmD1zoNsLDnM9dMGaboNEfHUyvxyEgzOOFV3uqKVki6RE3hmWSFdOiRxxcT+XocibWRmT5hZqZmta7Ssp5ktMrOt/u/N/hUzs25mttvMHglPxCKBrSgoZ3TfbnRNTfY6FGkjJV0izSivrOH1vBK+fHp/OndI8jocabsngYubLLsLWOycGwEs9r9vzn8DS0ITmkjL1NT5+HTnQXUtRjklXSLNeGHVLmrqfapAH+Wccx8A5U0WXw485X/9FHBFoH3N7AwgA3gnZAGKtMDa3YeorvOpPleU0+W7SAA+n+PZFTuZPLgHI0/p6nU4EnwZzrkSAOdciZn1abqBmSUADwJfB2ac6MPMbA4wByAjI4OcnJygBxwsFRUVER1fsMRaOxfuqAGgtngTOfs3/3t5rLUzkFhqo5IukQD+tW0fhfuPctvMTK9DEe98B1jonNt1soconHOPAY8BZGVluezs7NBH10Y5OTlEcnzBEmvt/EfBSob0ruTyL2R/ZnmstTOQWGrjSbsXAw1C9S//vpltNrP1ZnZ/M/v+yL9+nZnNM7PUYAUuEkpzlxXSq3MKF489xetQJDT2mllfAP/30gDbnAl8z8wKgAeAb5jZfeELUaSBz+dYVXiAyYP11GK0a8mYridpMgjVzM6nYUzEeOfcaTSckGiyTX/gB0CWc24skAhc3d6ARUKt+OAxFm/cy+zJA1X1OXa9Btzgf30D8GrTDZxz1znnBjnnBgN3AE8750404F4kJLaUHuHQsVoNoo8BJ026mhmE+m3gPudctX+bQFeJ0NB92dHMkoBOQHE7YhUJi+dW7MQB104Z5HUoEgRmNg9YCow0syIzuxm4D5hpZluBmf73mFmWmf3Nu2hFPm9lfsOfYA2ij35tHdOVCZxrZvcCVcAdzrmVjTdwzu02sweAncAx4B3nXLNPAGkgauSJh3Y2bWOdz/HUR8cY1zuR7Xkr2O5daEEVDz/L5jjnrmlm1ecGxzvnVgHfCrD8SRru+ouE3YqCA/Tp2oFBPTt5HYq0U1uTriSgBzANmAzMN7Ohzjl3fAN/scHLgSHAQeAFM7veOTc30AdqIGrkiYd2Nm3jG3klHKpeza2zTid7dIZ3gQVZPPwsRWKRc46V+eVMHtJTs2LEgLbW6SoCXnYNVgA+oHeTbS4E8p1zZc65WuBl4Ky2hyoSenOXFdK/e0eyR36ugoCISNgVHTjGnsNVTNF4rpjQ1qTrFeACADPLBFKAfU222QlMM7NO1pCezwA2tjVQkVDbVlrB0h37uXbqIBITdEUpIt5b4R/PpUH0saElJSMCDUJ9AhjqLyPxHHCDc86ZWT8zWwjgnFsOvAisBtb6j/VYiNoh0m7PLC8kOdGYnTXQ61BERABYWVBO19QkFWmOEScd03WCQajXB9i2GJjV6P0vgV+2OTqRMDlWU89LnxRx8di+pHft4HU4IiJAwyTXWaf20N33GKG5F0WABbnFHK6q4/qpKhMhIpFhf0U1O8oqmaxSETFDSZcIMHd5IZkZXVQHR0QixsqCAwAaRB9DlHRJ3MsrOkhe0SGum3qqHskWkYixsqCclKQExg1I8zoUCRIlXRL35i4rpGNyIl+e1N/rUERE/m1lQTkTB3bXdGQxREmXxLXKWsdrucVccXo/uqUmex2OiAgAldV1rC8+rK7FGNPWivQiMeHD3XVU1fq4buqpXocicWbr3iP8Y1lh2I+7e3c17x1aF/bjhlvfunqyvQ6iHVbvPEC9z2kQfYxR0iVxyznH+7tqOX1Qd8b215gJCa/SI9UsyC0O+3Fra+tI3hf+44ZTZU09vVMd3/Y6kHZYmV9OgsGkQd29DkWCSElXK3268wDvFtayc2mB16GEVKeUJLrVu5NvGMWWbt/PnkrHf83SXS4Jv7OH9+bTX1wU9uPGwzyc/1hawN2vrmfL3iNkZkRnUdEVBeWM6deNrhr2EFOUdLVCXb2Pbz21iv2VNbBxvdfhhFz2wCQumuF1FKFRW+/jd29uomsKXDK+r9fhiEgQfWHsKfzi1fW8kVdC5szoS7pq6nx8uvMg16puYMxR0tUKS3fsZ39lDbeMS+E/Lz/P63BC6i8523n8w3ze31zK+TE4+fOj729j7e5DfHdiB1KT9WSQSCzp0zWVzB4JLFxbwo9mZnodTqut3X2I6jqfBtHHICVdrbAgt5guHZKYfEoSvbrE9lQx//WFkby1poA7X8zjnR+dR/dOKV6HFDRriw7xyHvbuHxiPyafcsjrcEQkBKb0TeIfGyqisotxZUHDJNdZSrpijkpGtFBNnY+31u3hojEZpCTGfgHN1OREbhnXgfLKGn7xaux0pVbV1nPb/DX06pLCPZeN9TocEQmRMzISMYM38kq8DqXVVuaXM7R3Z80DG4OUdLXQv7aWcbiqji9N6Od1KGEzOC2RH8wYwWu5xVF54grkwXc2s7W0gvu/NoG0ThqgKhKrundIYOqQnixcG13nLp/PsarwAJN1lysmKelqoQW5xaR1TObs4b29DiWsvpM9jAkD0vj5K2spPVLldTjtsmzHfv72YT7XTR3E9Mx0r8MRkRC7ZFxftpY2dDFGiy2lRzh0rFb1uWKUkq4WqKqtZ9GGvXxx7CmkJMXXP1lSYgIPzp7I0Zp6fvLSWpyLzjISFdV13PFCLgN7dOKns0Z7HY6IhMEXxp4SdV2MK/MbxnNpEH1siq8Moo3e31RKZU09l46Pn67Fxob36cKPLx7F4k2lzF+1y+tw2uTeNzaw++AxHpw9gc4d9PyISDzo0zWVqUN68kYUdTGuKDhARrcODOzZ0etQJASUdLXA63kl9O6SwrSh8XvlcdNZg5k2tCf3LNjArvKjXofTKu9vKmXeil3MOW+oxkmIxJlLxvVlW5R0MTrnWJlfzuTBPTGL/Qe24pGSrpOorK5j8aa9zBrXl6TE+P3nSkgwHrhyAmbGHS/k4vNFRzfjwaM13PlSHiMzunJbFNbrEZH2+cLYU0iIki7GogPH2HO4iikazxWz4jeLaKF3N+6lqtYXt12LjQ3o0YlfXDqG5fnl/P3jAq/DaZG7X11PeWUND86eQIckFUEViTd9uqYyJUq6GFf4x3PpjnzsOmnSZWZPmFmpma1rsvz7ZrbZzNab2f3N7NvdzF40s01mttHMzgxW4OGyILeEU7qlknVqD69DiQhXZg1gxqg+3P/WJraVRvbt+gW5xSzILebWGSM0obVIHIuWLsaVBeV0S01iZJQVc5WWa8mdrieBixsvMLPzgcuB8c6504AHmtn3T8BbzrlRwARgY9tDDb9Dx2pZsqWUS8b3JSFB/esAZsbvvjqOTimJ3DY/l9p6n9chBVR6uIq7X13HhIHd+Xb2MK/DEQ8FunA0s55mtsjMtvq/f+6qyswmmtlS/4VlnpldFd7IJViOdzG+HuFdjCsKyska3FN/b2LYSZMu59wHQHmTxd8G7nPOVfu3KW26n5l1A84DHvdvU+OcO9juiMPonfV7qK13cVUQtSX6dE3lN1eMI6/oEH95f7vX4XyOc447X8rjWE09D82eENdj8QQIcOEI3AUsds6NABb73zd1FPiG/8LyYuBhM+seykAlNI53MUZyodR9FdXsKKtU12KMa+uz85nAuWZ2L1AF3OGcW9lkm6FAGfB3M5sAfALc6pyrDPSBZjYHmAOQkZFBTk5OG0MLnqdWVZHe0Tiw7VNytv/flUdFRUVExBdqJ2pnZ2Ba30T+vHgLaZU7GZwWOeOlluyq5f3NNVw3KoVd61dxoiIX+lnGPufcB2Y2uMniy4Fs/+ungBzgzib7bWn0utjMSoF0IKouHqXBJeP7cfcr6yJ2LsZV/vkWpwzRUJZY1takKwnoAUwDJgPzzWyo+2zlzCRgEvB959xyM/sTDVeTdwf6QOfcY8BjAFlZWS47O7uNoQVHeWUNG995lznnDeX880d9Zl1OTg5exxcOJ2vn6VNquejhJTyzPYkF3z+H1GTvE69d5Uf57nsfcObQXvz3N6ae9Da9fpZxK8M5VwLgnCsxsz4n2tjMpgApQMBbu5F40diceEnAm7azW7XDgEdfW8qXR6R4FldzXt5YTXICHNieS05+y7sX4+HnGUttbGvSVQS87E+yVpiZD+hNw52txtsUOeeW+9+/SOBb+BHpzXUl1PscX9JTi81K65TM7786nhv/vpKHFm3xvNK7z+e4/YVczIw/XDle4yIkKMysL/AP4AbnXMBBjJF20Xgi8ZKAB2rnvMKlrD9Sw8PTz4u4OlgPrv2QSacmcuEFrXveLB5+nrHUxrYOdnkFuADAzDJpuALc13gD59weYJeZjfQvmgFsaOPxwm5BbjFD0zszum/k3YaOJNkj+3Dt1EH89V87WL5jv6exPPFRPivyy/nFl8YwoEcnT2ORiLfXn0wdT6o+Ny7Vv64b8Abwc+fcsjDGJyFwyfh+/qcYK7wO5TMqqutYX3xI9bniQEtKRswDlgIjzazIzG4GngCG+p8Geo6GK0BnZv3MbGGj3b8PPGNmecBE4LfBb0LwlR6uYnl+OV8a3y/iroYi0c9mjWZgj07c8WIuFdV1nsSwde8R7n97MxeOzuDKMwZ4EoNEldeAG/yvbwBebbqBmaUA/wSeds69EMbYJEQuPs1fKDXCBtSvLjyAz6k+VzxoydOL1zjn+jrnkp1zA5xzj/ufRLzeOTfWOTfJOfeef9ti59ysRvuucc5lOefGO+eucM4dCGVjguWNtSU4B1+a0NfrUKJC5w5JPHCx7qi0AAAceElEQVTlBIoOHOPeN8JfFaS23sdt83Pp0iGJ331lnBJl+YxmLhzvA2aa2VZgpv89ZpZlZn/z7zqbhiewbzSzNf6viR40QYIkvWsHpg7pxcK1JXx2CLK3VhaUk2AwSfUgY55m/g3g9bwSRp3SleF91LXYUlOG9GTOuUP53w92cNFpGZw/8oTjkoPq0fe3sXb3If7nukmkd+0QtuNKdHDOXdPMqhkBtl0FfMv/ei4wN4ShiQdmje/rf4qxgpGnRMY5fkV+Oaf1S6NLB/1JjnUqYNRE0YGjfFJ4QLW52uBHMzPJzOjCnS/mcfBoTViOmVd0kP/33jaumNiPL47TnUkRObFI62Ksrqtnza6D6lqME0q6mjg+KaqeWmy91OREHpo9kfLKGu5+dX3Ij1dVW89t83NJ79KBX182NuTHE5Hod7yL8Y284ojoYly3+xDVdT7V54oTSrqaeD2vhAkD0hjUS0+/tcXY/mn8YMYIFuQW83pecUiP9cDbm9lWWsH9XxtPWqfkkB5LRGLHrPF92V5WGRFPMa7IbxjqnKU7XXFBSVcjBfsqWbv7kLoW2+k72cOYMCCNn7+yjtLDVSE5xrId+3n8o3yunzaI8zLTQ3IMEYlNkdTFuLKgnKHpnendReNR44GSrkaO35mZpbFB7ZKUmMCDsydyrKaeu15eG/Rb+BXVddzxQi6DenbyvCCriESfSOli9PkcqwrKmaK7XHFDSVcjC3JLmDy4B/26d/Q6lKg3vE8X7rx4FO9tKmX+qhPNfth6976xgd0Hj/HglRPolKKnfUSk9S6JgC7GzXuPcLiqToPo44iSLr8te4+wee8RLtUA+qC58azBnDm0F/cs2MCu8qNB+cz3Nu1l3opdzDlvqMZAiEibXTzW38UY4rGnJ7Ly35Nc61wWL5R0+b2eW0yCwRfHneJ1KDEjIaFhDkQz444XcvH52ncb/0BlDXe+tJaRGV25bWZmkKIUkXjUu4u/i9HDQqkr8ss5pVsqA3qodyVeKOkCnHMsyCth2tBe9Oma6nU4MWVAj0784tIxLM8v54mP8tv1WXe/uo6DR2t46KoJdEhKDFKEIhKvjncxbt57JOzHds6xsqCcyUN6ahaNOKKkC1hffJj8fZV6ajFErswawIxRfbj/7c1sK23bya2hBEUJt84YwWn90oIcoYjEo+NdjAvzwv8U467yY+w9XM2UwarPFU+UdAEL8opJSjAuPk1di6FgZvzuq+PonJLIbfNzqa33tWr/vYeruPvVdUwc2J3/nD4sRFGKSLzp3aUD04Z608W4wj+ea7LGc8WVuE+6nHO8nlvCOSN606NzitfhxKw+XVO598vjyCs6xKPvb2vxfs457nwpj6raeh6cPYGkxLj/lRWRIJo1zpsuxpX55aR1TCZTc/zGlbj/C/bproPsPnhM0/6Ewaxxfbl8Yj8eeW8ba4sOtWif51buImdzGXddPIph6V1CHKGIxBuvuhhXFpSTdWoPEhI0niuexH3StSC3mJTEBGaeluF1KHHhnsvG0qtLCrfNX0NVbf0Jt91VfpTfvL6Bs4b14htnDg5PgCISV453Mb4exi7GsiPV7NhXqa7FOBTXSVe9z/FGXgnZI9Pplqq5+8IhrVMyv//qeLaWVvDgO5ub3c7nc9z+Qi4JZvzhygm6GhSRkJk1ri87wtjFuOr4eC7VGow7cZ10rSwop/RItZ5aDLPskX249v9v786j4yrPPI9/f7bkVeB9kY2NscHgeKEhxkATiALBEJslJOmkkyZN0unhdA4nHSZwkjCdaSbDkE5z0uk+fTLTaYY4MNM50Elw6HgJtIdY0HEAi83yxhYkiJGMsGXwAl4kPfNHXWEhSnupSlX39zmnjm699d5bz+uSXr91n3vf99zZ3PWbOp54eW/WOqs21bG5rpm/vvIDzPQKAWY2iPKdYtxc38yo8mEsnuk7sdMm1YOutbUNjC4fziULphY6lNT5qxULmDVhDDf9bAsHj7S857UXXj/AHQ89z0cXTONTHzypQBGaWVrkO8VYU9/MH8waz4iyVP8XnEqp/cRbWtv41dbdXLJgqtfvK4CxI8v4u0+fyWtvvsPt63a8W36stY2v/fRZKkaW8TefWOxJA80sL/KVYjxw+Bg7GvZ7keuU6nHQJWmVpCZJ2zqVf0XS85K2S7qjm/2HS3pG0tpcBJwrj728l72HjnqtxQI6Z85Err9wLvdu/j0bn2sC4Ae/foltr+3nO9csYsoJIwscoZmlxfG1GAc3xfj0q2/SFp6fK616c6brbuDyjgWSPgJcDSyJiIXA97rZ/6vAzv4GOFjWbGmgYmQZVadPKXQoqfafL53P/GkVfOP+Wh594Q1+sPElrjlrJpcvqix0aGaWIvmaKLWmrpnhw8TZsz0TfRr1OOiKiEeB5k7FXwa+GxFHkjpN2faVdBKwErhrgHHm1NGWNh7ctpvlC6cxqtxr+BXSqPLhfP/Tf0DzoaNc9+PNTKkYyX+7amGhwzKzFFq5ZPBTjJvrm1k440TGjvRlLWnU3099PnChpNuBw8DNEVGTpd4/AF8HepxyV9L1wPUA06ZNo7q6up+h9ezZphb2H27hZO3p1/scPHhwUOMbKvLZzqvnlbH6xWNcOz945olNeXlP8GdpZsddtnA6//WBbayrbeSM6Sfm/PhHWlp59vdv8vnzTs75sa049HfQVQZMAM4DzgF+KmludDgnK+kKoCkinpJU1dMBI+JO4E6ApUuXRlVVj7v02wP3PcP4MW/w5Wsu7tfdI9XV1QxmfENFPttZVQV/degoE/O8FJM/SzNr1zHF+LVL5+f8Rp6tu97iaEub5+dKsf7evbgLWB0Zm4E2YHKnOhcAV0mqB+4DLpb0L/2ONEcOH2tlw47XuXzhdN+uO8Tke8BlZtZZe4rxud25TzG+u8j1HF/PlVb9HXU8AFwMIGk+MALY07FCRNwSESdFxBzgj4FfR8S1A4g1JzY+18Sho62eENXMzN7nsoXJRKlbc38XY01dM/OmjGVShe/MTqveTBlxL/AYcLqkXZK+BKwC5ibTSNwHXBcRIWmGpPWDG/LArKltePcUspmZWUeTK0Zy/rzc38XY2hY8+co+lnmqiFTrzd2Ln42IyogoT85c/SgijkbEtRGxKCLOjohfJ3UbImJFlmNUR8QVg9GAvjh4pIVfP9fEisXTGe61/MxSIdtcg5ImStog6cXkZ9Z8j6TrkjovSrouf1FbIbVPlJrLFOPzuw9w4HCLr+dKuVRd1PTwztc5fKzNqUWzdLmbTnMNAt8EHo6I04CHk+fvIWkicCtwLrAMuLWrwZmVlssHIcVY40WujZQNutZsaWT6iaP4oCelM0uNLuYavBq4J9m+B/h4ll0vAzZERHNE7AM28P7Bm5WgSe0pxtrcpRg31zdTOW4UJ00YnZPjWXFKzexsb719jEdeaOK68+cwzKlFs7SbFhGNABHRKCnbqvczgd93eL4rKXuffM4zOFBpmbNtoO08dcQxNu05yr+s3cisEwZ2fiIi2PT8O5wxcRiPPPLIgI7VWRo+z1JqY2oGXQ/t2M2x1uAKpxbNrHeyfTvLetojn/MMDlRa5mwbaDsXHzzC/935/3h9xEw+X3X6gGJ5Ze8h3nyompXnLqAqxxOjpuHzLKU2pia9uLa2kVkTR3PmSeMKHYqZFd7rkioBkp/ZljLbBczq8PwkoCEPsdkQ0J5iXJ+Duxg312Wy28t8PVfqpWLQtffgETa9tIcrl8zI+QzDZlaUfgm03414HfBvWeo8BCyXNCG5gH55UmYpsXLxDF7eM/C7GGvqmxk3upzTplbkKDIrVqkYdD24fTetbcEVS5xaNEubLuYa/C5wqaQXgUuT50haKukugIhoBm4DapLHf0/KLCUuWziN4cPEutqB3cVYU7+Pc+ZM8PXElo5rutZsaWDelLEsqOxx3W0zKzER8dkuXrokS90ngT/v8HwVmcmgLYUmVYzkvLkTWb+1kZuW928txqYDh6nbc4g/PmdWz5Wt5JX8ma6m/Yd5oq6ZK5xaNDOzPmpPMe5s7F+K8cn6fQCc45nojRQMujJLOcCVZ1YWOhQzMysy7SnG/k6UurmumVHlw1g0wzdxWQoGXWu2NLCg8kROnerUopmZ9c2kipGcP7f/dzHW1Ddz1qwJjCgr+f9urRdK+rdg1763efrVN7liic9ymZlZ/6xYXNmvFOOBw8fY2bjfqUV7V0kPutrvOLnSdy2amVk/9TfF+NQr+2gLz89lx5X0oGttbSNnnjSO2ZPGFDoUMzMrUu0pxnV9TDHW1DczfJg4a/b4QYzOiknJDrrq9hxi62tvcaWX/TEzswFasbiSuj6mGGvq9rFoxomMHZmK2ZmsF0p20LV2S2a1jpW+nsvMzAaorynGIy2tPLvrTc5xatE6KN1BV20j58yZQOW40YUOxczMilxfU4y1u97iaEubL6K39yjJQdcLrx/g+dcPOLVoZmY505cUY/si1z7TZR2V5KBr7ZYGhgk+tsipRTMzy41312Lc2tBj3Zr6Zk6dWsHEsSPyEJkVi5IbdEUEa2obOX/eJKacMLLQ4ZiZWYk4PlHq7m5TjK1twVP1+3yWy96nx0GXpFWSmiRt61T+FUnPS9ou6Y4s+82StFHSzqTOV3MZeFe2N+ynbs8hz81lZmY5t3JJzynG53bv58CRFpadMiGPkVkx6M2ZrruByzsWSPoIcDWwJCIWAt/Lsl8LcFNELADOA26Q9IGBhduzNbUNlA0Tly+aPthvZWZmKXPZwuk9phhrfD2XdaHHQVdEPAo0dyr+MvDdiDiS1GnKsl9jRDydbB8AdgIzBxxx97GydksjF542mfFjnEc3M7Pcmjh2RI8pxpr6fcwYN4qTJnhibnuv/s7YNh+4UNLtwGHg5oio6aqypDnAWcAT3dS5HrgeYNq0aVRXV/c5qJfebOW1Nw+zYlZrv/bvrYMHDw7q8YeKNLQzDW2E9LTTLB9WLqnkltVb2dG4n4Uzxr3ntYhgc30zfzhvUoGis6Gsv4OuMmACmbThOcBPJc2NLMN+SRXA/cCNEbG/qwNGxJ3AnQBLly6NqqqqPgf1yJrtjCh7la98sooTR5X3ef/eqq6upj/xFZs0tDMNbYT0tNMsHy5bOJ1vPbCN9Vsb3zfoemXv27xx4IhTi5ZVf+9e3AWsjozNQBswuXMlSeVkBlw/iYjV/Q+zZ61twbraRqrmTxnUAZeZmaXbxLEj+MN52VOMm+szV+Ms86SolkV/B10PABcDSJoPjAD2dKwgScCPgJ0R8f2BBNkbNfXNNB044glRzcxs0LVPlLqj8b0JnJq6ZsaPKefUKRUFisyGst5MGXEv8BhwuqRdkr4ErALmJtNI3AdcFxEhaYak9cmuFwCfBy6W9GzyWDFI7WDNlgZGlw/nkgVTB+stzMzMgON3MXZei7GmvpmlJ09k2DAVKDIbynq8pisiPtvFS9dmqdsArEi2fwPk5beupbWNX23bzSULpjJmhFdzNzOzwdWeYlxX28jNy09HEk0HDlO/920+d+7sQodnQ1RJzEj/29/tpfnQUacWzcwsb1YsrqR+79vvphhr6vYBnp/LulYSg661tQ2cMLKMD8+fUuhQzMwsJd6dKLU2k2KsqW9mdPlwFs0c18OellZFP+g62tLGg9t2c+nCaYwqH17ocMzMLCWO38XYmJmfq66Zs2aPp3x40f/XaoOk6H8z/uPFN9h/uMWpRTMzy7uVSYrxibpmdu7e79SidavoB11rtjQwfkw5Hzr1fdOEmZmZDarlSYrxf6zbQYTn57LuFfWg6/CxVjbseJ2PLZru07lm1meSvippm6Ttkm7M8vo4SWskbUnqfLEQcdrQ1Z5i3PbafsqGibNmjy90SDaEFfVIZeNzTRw62soVS5xaNLO+kbQI+E/AMuBM4ApJp3WqdgOwIyLOBKqAv5M0Iq+B2pC3cnElAAtnjvO0Rdatoh50raltYHLFSM6b64VFzazPFgCPR8TbEdECPAJc06lOACckK2xUAM1AS37DtKHusoXTGTF8mBe5th4V9ZD8puWn8+retxnumX/NrO+2AbdLmgS8Q2Zi5yc71fkB8EugATgB+ExEtHU+kKTrgesBpk2bRnV19SCGPTAHDx4c0vHlSr7beev5I5lU1kh19e68vSek4/MspTYW9aBr3pQK5nl9KzPrh4jYKelvgQ3AQWAL7z+LdRnwLJm1ZucBGyT9R0Ts73SsO4E7AZYuXRpVVVWDHH3/VVdXM5TjyxW3s3SUUhuLOr1oZjYQEfGjiDg7Ii4ikzp8sVOVLwKrI+MloA44I99xmllp8KDLzFJL0tTk52zgE8C9naq8ClyS1JkGnA68nM8Yzax0FHV60cxsgO5Pruk6BtwQEfsk/QVARPwQuA24W9JWQMA3ImJP4cI1s2LmQZeZpVZEXJil7IcdthuA5XkNysxKltOLZmZmZnngQZeZmZlZHnjQZWZmZpYHHnSZmZmZ5YEHXWZmZmZ5oIgodAzvI+kN4JVCx9GNyUAabhtPQzvT0EYY+u08OSKmFDqIXHD/NWS4naWjGNrYqz5sSA66hjpJT0bE0kLHMdjS0M40tBHS007rWVp+F9zO0lFKbXR60czMzCwPPOgyMzMzywMPuvrnzkIHkCdpaGca2gjpaaf1LC2/C25n6SiZNvqaLjMzM7M88JkuMzMzszzwoMvMzMwsDzzoykLSKklNkrZ1KDtT0mOStkpaI+nETvvMlnRQ0s35j7jv+tpGSUuS17Ynr48qTOR905d2SiqXdE9SvlPSLYWLvPckzZK0MYl5u6SvJuUTJW2Q9GLyc0JSLkn/KOklSbWSzi5sCyyX3H+5/yqm/gtS1odFhB+dHsBFwNnAtg5lNcCHk+0/A27rtM/9wM+Amwsdf67bCJQBtcCZyfNJwPBCt2EQ2vk54L5kewxQD8wpdBt60cZK4Oxk+wTgBeADwB3AN5PybwJ/m2yvAH4FCDgPeKLQbfAjp78P7r/cfxVN/5XEm5o+zGe6soiIR4HmTsWnA48m2xuAT7a/IOnjwMvA9rwEmAN9bONyoDYitiT77o2I1rwEOkB9bGcAYyWVAaOBo8D+fMQ5EBHRGBFPJ9sHgJ3ATOBq4J6k2j3Ax5Ptq4H/ExmPA+MlVeY5bBsk7r8A919F039BuvowD7p6bxtwVbL9R8AsAEljgW8A3y5QXLmUtY3AfCAkPSTpaUlfL0h0udNVO38OHAIagVeB70VE5w5vSJM0BzgLeAKYFhGNkOnUgKlJtZnA7zvstisps9Ll/sv9V1Eo9T7Mg67e+zPgBklPkTn9eTQp/zbw9xFxsGCR5U5XbSwDPgT8SfLzGkmXFCbEnOiqncuAVmAGcApwk6S5hQmx7yRVkEkT3RgR3X3DVZYyzx1T2tx/uf8a8tLQh5UVOoBiERHPkTlNjaT5wMrkpXOBT0m6AxgPtEk6HBE/KEyk/ddNG3cBj0TEnuS19WSuM3i4EHEOVDft/BzwYEQcA5okbQKWkkm9DGmSysl0Vj+JiNVJ8euSKiOiMTn13pSU7+L4t2OAk4CG/EVr+eb+y/3XUJeWPsxnunpJ0tTk5zDgW8APASLiwoiYExFzgH8AvlOMHRZ03UbgIWCJpDHJ9QIfBnYUJsqB66adrwIXJ3fGjCVzgeZzhYmy9yQJ+BGwMyK+3+GlXwLXJdvXAf/WofxPk3aeB7zVfgrfSpP7L/dfQ1ma+jCf6cpC0r1AFTBZ0i7gVqBC0g1JldXAjwsUXk70pY0RsU/S98ncNRPA+ohYl/+o+66Pn+X/TLa3kTl9/eOIqM1vxP1yAfB5YKukZ5Oy/wJ8F/ippC+R6ZD/KHltPZm7f14C3ga+mN9wbTC5/wLcfxVT/wUp6sO8DJCZmZlZHji9aGZmZpYHHnSZmZmZ5YEHXWZmZmZ54EGXmZmZWR540GVmZmaWBx50lThJ1ZKWJtvrJY0fhPeolzQ518ftcPx329DXOpJulDRmsGLrJp6ft88GLalC0j9L+p2k7ZIelXSupBHJtqduMcvC/Zf7r1LjQVeKRMSKiHiz0HHk2Y1AXjstSQuB4RHRPhP0XWQWrT0tIhYCXwAmR8RRMrNifyaf8ZkVI/df+eH+a3B50DXESJoj6TlJd0naJuknkj4qaZOkFyUtS+qNlbRKUo2kZyRdnZSPlnSfpFpJ/0pmtfn2Y7/7jU7SA5KeSr65XN+hzkFJt0vaIulxSdOyxDhJ0r8n7/vPdFgHS9K1kjZLejb5djQ8Kb9cmcVmt0h6OClbJum3yXF+K+n0XrThnyQ9mcTd7SK9kv6SzDpkGyVtTMqWS3osieVnyqz11f5v853ktSclna3MArm/k/QXSZ2q5JvdLyTtkPRDZWaF7uxPSGZOljSPzFIr34qINoCIeLnD5IwPJPXNip77L/df1oOI8GMIPYA5QAuwmMyg+ClgFZmO4WrggaTed4Brk+3xwAvAWOBrwKqkfElyrKXJ83oy31AAJiY/R5OZwXhS8jyAK5PtO8j8sXWO8R+Bv062Vyb7TAYWAGuA8uS1/wX8KTCFzIrwp3R67xOBsmT7o8D9yXZ3bWjfdzhQDSxJnle31+kUa8c2TwYeBcYmz7/RoR31wJeT7b8HasksJjsFaErKq4DDwNzk/TcAn8ryno8Ai5Ptq4BfdPN5DwfeKPTvnR9+5OLh/sv9lx/dP5yLHZrqImIrgKTtwMMREZK2kunUILPg6VWSbk6ejwJmAxeR6VSIiFpJXS0D8ZeSrkm2ZwGnAXvJrFi/Nil/Crg0y74XAZ9I3mOdpH1J+SXAB4EaSZDpEJvIrAH2aETUJfs0J/XHAfdIOo1Mx1fe4fhdteHTyTfbMqAS+ACZDqY3zkvqb0riGwE81uH1XyY/twIVEXEAOCDpsI5fS7I5ktPuyizR8SHg553epxJ4ozcBRUSrpKOSTkjez6zYuf9y/2Vd8KBraDrSYbutw/M2jn9mAj4ZEc933DH5Y+x2bSdJVWS+mZ0fEW9LqibT6QEci+QrDNBK178j2d5DwD0RcUun97uqi/q3ARsj4hpJc8h82+vy+JJOAW4GzonMemp3d4i7NwRsiIjPdvF6x3/nzp9B+79D57iyteudDnFtB86UNCyS0/NZjCTzDdSsFLj/cv9lXfA1XcXrIeArSnopSWcl5Y+S5NglLSJzeruzccC+pMM6g8w3qL7o+B4fAyYk5Q8Dn5I0NXltoqSTyXwb+3DS6SBpYoc4Xku2v9DF8Tu24UTgEPBWcq3Gx3oR6wEyp9kBHgcukHRqcuwxkub3ss3tlkk6JbkW4jPAb7LU2QmcChARvwOeBL7d4bM6TcevYZlE5vT8sT7GYVbM3H+5/0olD7qK121kTmfXStqWPAf4JzKr0NcCXwc2Z9n3QaAsqXMbmT/mvvg2cJGkp8mkCV4FiIgdwLeAf0+OvQGojIg3gOuB1ZK2AP+aHOcO4G8kbSJzbUC7rG2IiC3AM2S+fa0CNvUi1juBX0namMTxBeDe5NiPA2f0se2PkVn5fhtQB/wiS511ZK6faPfnwHTgpSTF8r+BhuS1jwDr+xiDWbFz/+X+K5V0/EysmXUnSWvcHBFX9FBvNLARuCAiWnuouxq4pXOaxcwsl9x/DQ0+02WWYxHxDnArMLO7epJGkLmbyx2WmQ0J7r8Gl890mZmZmeWBz3SZmZmZ5YEHXWZmZmZ54EGXmZmZWR540GVmZmaWBx50mZmZmeXB/wdum4HzOGlcEQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "### BEGIN SOLUTION\n", "season_temps=dict()\n", "for season_key,season_df in season_dict.items():\n", " decade_dict=decadal_groups(season_df)\n", " temp_array=median_temps(decade_dict)\n", " season_temps[season_key]=temp_array \n", " \n", "fig, ax_array = plt.subplots(2, 2, figsize=(10, 10))\n", "ax_list = ax_array.flatten()\n", "for index,key in enumerate(key_list):\n", " temps=season_temps[key]\n", " the_ax=ax_list[index]\n", " the_ax.plot(temps[:,0],temps[:,1])\n", " the_ax.grid(True)\n", " the_ax.set(title=key)\n", " if index > 1:\n", " the_ax.set(xlabel='median decadal temp (C)')\n", "### END SOLUTION" ] } ], "metadata": { "celltoolbar": "Create Assignment", "jupytext": { "cell_metadata_filter": "all", "notebook_metadata_filter": "all,-language_info", "text_representation": { "extension": ".py", "format_name": "percent", "format_version": "1.2", "jupytext_version": "1.0.3" } }, "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.6.7" }, "nbsphinx": { "execute": "never" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": true, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": true, "toc_position": {}, "toc_section_display": true, "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 2 }