great-ai/simple-mag/train/train.ipynb

1781 lines
135 KiB
Text

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Train a field of study (domain) classification of sentences on the [MAG](https://github.com/allenai/scibert/tree/master/data/text_classification/mag) dataset\n",
"\n",
"[SciBERT achieves an F1-score of 0.6571 on this dataset.](https://paperswithcode.com/sota/sentence-classification-on-paper-field) \n",
"This notebook shows that better results can be achieved without even using transformers."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"84000it [00:09, 8647.60it/s] \n",
"22399it [00:03, 6368.63it/s]\n"
]
}
],
"source": [
"import json\n",
"from typing import Tuple\n",
"from great_ai.utilities import clean, parallel_map\n",
"from tqdm.cli import tqdm\n",
"\n",
"\n",
"def preprocess(line: str) -> Tuple[str, str]:\n",
" data_point = json.loads(line)\n",
"\n",
" return (clean(data_point[\"text\"], convert_to_ascii=True), data_point[\"label\"])\n",
"\n",
"\n",
"with open(\"mag/train.txt\", encoding=\"utf-8\") as f:\n",
" training_data = list(tqdm(parallel_map(preprocess, f.readlines())))\n",
"\n",
"X_train = [d[0] for d in training_data]\n",
"y_train = [d[1] for d in training_data]\n",
"\n",
"\n",
"with open(\"mag/test.txt\", encoding=\"utf-8\") as f:\n",
" test_data = list(tqdm(parallel_map(preprocess, f.readlines())))\n",
"\n",
"X_test = [d[0] for d in test_data]\n",
"y_test = [d[1] for d in test_data]"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"plotlyServerURL": "https://plot.ly"
},
"data": [
{
"alignmentgroup": "True",
"hovertemplate": "domain=%{x}<br>count=%{y}<extra></extra>",
"legendgroup": "",
"marker": {
"color": "#636efa",
"pattern": {
"shape": ""
}
},
"name": "",
"offsetgroup": "",
"orientation": "v",
"showlegend": false,
"textposition": "auto",
"type": "bar",
"x": [
"geography",
"politics",
"economics",
"business",
"sociology",
"medicine",
"psychology"
],
"xaxis": "x",
"y": [
12145,
12051,
11995,
11990,
11977,
11928,
11914
],
"yaxis": "y"
}
],
"layout": {
"barmode": "relative",
"height": 400,
"legend": {
"tracegroupgap": 0
},
"margin": {
"t": 60
},
"template": {
"data": {
"bar": [
{
"error_x": {
"color": "#2a3f5f"
},
"error_y": {
"color": "#2a3f5f"
},
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
},
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "bar"
}
],
"barpolar": [
{
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
},
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "barpolar"
}
],
"carpet": [
{
"aaxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"baxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"type": "carpet"
}
],
"choropleth": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "choropleth"
}
],
"contour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "contour"
}
],
"contourcarpet": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "contourcarpet"
}
],
"heatmap": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmap"
}
],
"heatmapgl": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmapgl"
}
],
"histogram": [
{
"marker": {
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "histogram"
}
],
"histogram2d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2d"
}
],
"histogram2dcontour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2dcontour"
}
],
"mesh3d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "mesh3d"
}
],
"parcoords": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "parcoords"
}
],
"pie": [
{
"automargin": true,
"type": "pie"
}
],
"scatter": [
{
"fillpattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
},
"type": "scatter"
}
],
"scatter3d": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter3d"
}
],
"scattercarpet": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattercarpet"
}
],
"scattergeo": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergeo"
}
],
"scattergl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergl"
}
],
"scattermapbox": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattermapbox"
}
],
"scatterpolar": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolar"
}
],
"scatterpolargl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolargl"
}
],
"scatterternary": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterternary"
}
],
"surface": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "surface"
}
],
"table": [
{
"cells": {
"fill": {
"color": "#EBF0F8"
},
"line": {
"color": "white"
}
},
"header": {
"fill": {
"color": "#C8D4E3"
},
"line": {
"color": "white"
}
},
"type": "table"
}
]
},
"layout": {
"annotationdefaults": {
"arrowcolor": "#2a3f5f",
"arrowhead": 0,
"arrowwidth": 1
},
"autotypenumbers": "strict",
"coloraxis": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"colorscale": {
"diverging": [
[
0,
"#8e0152"
],
[
0.1,
"#c51b7d"
],
[
0.2,
"#de77ae"
],
[
0.3,
"#f1b6da"
],
[
0.4,
"#fde0ef"
],
[
0.5,
"#f7f7f7"
],
[
0.6,
"#e6f5d0"
],
[
0.7,
"#b8e186"
],
[
0.8,
"#7fbc41"
],
[
0.9,
"#4d9221"
],
[
1,
"#276419"
]
],
"sequential": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"sequentialminus": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
]
},
"colorway": [
"#636efa",
"#EF553B",
"#00cc96",
"#ab63fa",
"#FFA15A",
"#19d3f3",
"#FF6692",
"#B6E880",
"#FF97FF",
"#FECB52"
],
"font": {
"color": "#2a3f5f"
},
"geo": {
"bgcolor": "white",
"lakecolor": "white",
"landcolor": "#E5ECF6",
"showlakes": true,
"showland": true,
"subunitcolor": "white"
},
"hoverlabel": {
"align": "left"
},
"hovermode": "closest",
"mapbox": {
"style": "light"
},
"paper_bgcolor": "white",
"plot_bgcolor": "#E5ECF6",
"polar": {
"angularaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"radialaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"scene": {
"xaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"yaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"zaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
}
},
"shapedefaults": {
"line": {
"color": "#2a3f5f"
}
},
"ternary": {
"aaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"baxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"caxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"title": {
"x": 0.05
},
"xaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
},
"yaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
}
}
},
"width": 1200,
"xaxis": {
"anchor": "y",
"domain": [
0,
1
],
"title": {
"text": "domain"
}
},
"yaxis": {
"anchor": "x",
"domain": [
0,
1
],
"title": {
"text": "count"
}
}
}
}
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import pandas as pd\n",
"from collections import Counter\n",
"import plotly.express as px\n",
"\n",
"\n",
"df = pd.DataFrame(Counter(y_train).most_common(), columns=[\"domain\", \"count\"])\n",
"px.bar(df, \"domain\", \"count\", width=1200, height=400).show()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.naive_bayes import MultinomialNB\n",
"from sklearn.pipeline import Pipeline\n",
"from sklearn.feature_extraction.text import TfidfVectorizer\n",
"\n",
"\n",
"def create_pipeline() -> Pipeline:\n",
" return Pipeline(\n",
" steps=[\n",
" (\"vectorizer\", TfidfVectorizer(sublinear_tf=True)),\n",
" (\"classifier\", MultinomialNB()),\n",
" ]\n",
" )"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fitting 3 folds for each of 24 candidates, totalling 72 fits\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>mean_fit_time</th>\n",
" <th>std_fit_time</th>\n",
" <th>mean_score_time</th>\n",
" <th>std_score_time</th>\n",
" <th>param_classifier__alpha</th>\n",
" <th>param_classifier__fit_prior</th>\n",
" <th>param_vectorizer__max_df</th>\n",
" <th>param_vectorizer__min_df</th>\n",
" <th>params</th>\n",
" <th>split0_test_score</th>\n",
" <th>split1_test_score</th>\n",
" <th>split2_test_score</th>\n",
" <th>mean_test_score</th>\n",
" <th>std_test_score</th>\n",
" <th>rank_test_score</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>1.227354</td>\n",
" <td>0.011710</td>\n",
" <td>0.652844</td>\n",
" <td>0.040511</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" <td>0.05</td>\n",
" <td>5</td>\n",
" <td>{'classifier__alpha': 1, 'classifier__fit_prio...</td>\n",
" <td>0.677283</td>\n",
" <td>0.670398</td>\n",
" <td>0.665671</td>\n",
" <td>0.671118</td>\n",
" <td>0.004768</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>1.279783</td>\n",
" <td>0.037969</td>\n",
" <td>0.634761</td>\n",
" <td>0.068606</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" <td>0.1</td>\n",
" <td>5</td>\n",
" <td>{'classifier__alpha': 1, 'classifier__fit_prio...</td>\n",
" <td>0.676970</td>\n",
" <td>0.670244</td>\n",
" <td>0.666123</td>\n",
" <td>0.671112</td>\n",
" <td>0.004470</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>1.332854</td>\n",
" <td>0.171405</td>\n",
" <td>0.743611</td>\n",
" <td>0.109792</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" <td>0.05</td>\n",
" <td>5</td>\n",
" <td>{'classifier__alpha': 1, 'classifier__fit_prio...</td>\n",
" <td>0.675678</td>\n",
" <td>0.669321</td>\n",
" <td>0.665305</td>\n",
" <td>0.670101</td>\n",
" <td>0.004271</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>1.253222</td>\n",
" <td>0.072134</td>\n",
" <td>0.612344</td>\n",
" <td>0.016771</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" <td>0.1</td>\n",
" <td>5</td>\n",
" <td>{'classifier__alpha': 1, 'classifier__fit_prio...</td>\n",
" <td>0.675569</td>\n",
" <td>0.669482</td>\n",
" <td>0.665225</td>\n",
" <td>0.670092</td>\n",
" <td>0.004245</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1.472035</td>\n",
" <td>0.080849</td>\n",
" <td>0.654935</td>\n",
" <td>0.044302</td>\n",
" <td>0.5</td>\n",
" <td>True</td>\n",
" <td>0.1</td>\n",
" <td>5</td>\n",
" <td>{'classifier__alpha': 0.5, 'classifier__fit_pr...</td>\n",
" <td>0.675225</td>\n",
" <td>0.668912</td>\n",
" <td>0.665652</td>\n",
" <td>0.669930</td>\n",
" <td>0.003974</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1.380641</td>\n",
" <td>0.054306</td>\n",
" <td>0.739966</td>\n",
" <td>0.053385</td>\n",
" <td>0.5</td>\n",
" <td>True</td>\n",
" <td>0.05</td>\n",
" <td>5</td>\n",
" <td>{'classifier__alpha': 0.5, 'classifier__fit_pr...</td>\n",
" <td>0.675264</td>\n",
" <td>0.668781</td>\n",
" <td>0.665394</td>\n",
" <td>0.669813</td>\n",
" <td>0.004095</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>1.284987</td>\n",
" <td>0.113903</td>\n",
" <td>0.696876</td>\n",
" <td>0.003757</td>\n",
" <td>0.5</td>\n",
" <td>False</td>\n",
" <td>0.1</td>\n",
" <td>5</td>\n",
" <td>{'classifier__alpha': 0.5, 'classifier__fit_pr...</td>\n",
" <td>0.674199</td>\n",
" <td>0.668005</td>\n",
" <td>0.664456</td>\n",
" <td>0.668887</td>\n",
" <td>0.004026</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>1.291148</td>\n",
" <td>0.101837</td>\n",
" <td>0.686561</td>\n",
" <td>0.083989</td>\n",
" <td>0.5</td>\n",
" <td>False</td>\n",
" <td>0.05</td>\n",
" <td>5</td>\n",
" <td>{'classifier__alpha': 0.5, 'classifier__fit_pr...</td>\n",
" <td>0.673996</td>\n",
" <td>0.668048</td>\n",
" <td>0.664572</td>\n",
" <td>0.668872</td>\n",
" <td>0.003891</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>1.268873</td>\n",
" <td>0.042412</td>\n",
" <td>0.645649</td>\n",
" <td>0.022738</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" <td>0.05</td>\n",
" <td>20</td>\n",
" <td>{'classifier__alpha': 1, 'classifier__fit_prio...</td>\n",
" <td>0.656459</td>\n",
" <td>0.647433</td>\n",
" <td>0.644864</td>\n",
" <td>0.649585</td>\n",
" <td>0.004972</td>\n",
" <td>9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>1.147120</td>\n",
" <td>0.009335</td>\n",
" <td>0.599006</td>\n",
" <td>0.045637</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" <td>0.1</td>\n",
" <td>20</td>\n",
" <td>{'classifier__alpha': 1, 'classifier__fit_prio...</td>\n",
" <td>0.656196</td>\n",
" <td>0.646960</td>\n",
" <td>0.645436</td>\n",
" <td>0.649530</td>\n",
" <td>0.004754</td>\n",
" <td>10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1.186988</td>\n",
" <td>0.057330</td>\n",
" <td>0.642233</td>\n",
" <td>0.078248</td>\n",
" <td>0.5</td>\n",
" <td>True</td>\n",
" <td>0.1</td>\n",
" <td>20</td>\n",
" <td>{'classifier__alpha': 0.5, 'classifier__fit_pr...</td>\n",
" <td>0.654424</td>\n",
" <td>0.644690</td>\n",
" <td>0.644991</td>\n",
" <td>0.648035</td>\n",
" <td>0.004519</td>\n",
" <td>11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1.413231</td>\n",
" <td>0.153288</td>\n",
" <td>0.765960</td>\n",
" <td>0.099535</td>\n",
" <td>0.5</td>\n",
" <td>True</td>\n",
" <td>0.05</td>\n",
" <td>20</td>\n",
" <td>{'classifier__alpha': 0.5, 'classifier__fit_pr...</td>\n",
" <td>0.654622</td>\n",
" <td>0.644901</td>\n",
" <td>0.644425</td>\n",
" <td>0.647983</td>\n",
" <td>0.004699</td>\n",
" <td>12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>1.193013</td>\n",
" <td>0.079000</td>\n",
" <td>0.691768</td>\n",
" <td>0.027448</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" <td>0.05</td>\n",
" <td>20</td>\n",
" <td>{'classifier__alpha': 1, 'classifier__fit_prio...</td>\n",
" <td>0.655125</td>\n",
" <td>0.645586</td>\n",
" <td>0.643166</td>\n",
" <td>0.647959</td>\n",
" <td>0.005163</td>\n",
" <td>13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>1.043618</td>\n",
" <td>0.098733</td>\n",
" <td>0.450375</td>\n",
" <td>0.061660</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" <td>0.1</td>\n",
" <td>20</td>\n",
" <td>{'classifier__alpha': 1, 'classifier__fit_prio...</td>\n",
" <td>0.654254</td>\n",
" <td>0.645409</td>\n",
" <td>0.643514</td>\n",
" <td>0.647726</td>\n",
" <td>0.004680</td>\n",
" <td>14</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>1.301459</td>\n",
" <td>0.062143</td>\n",
" <td>0.660748</td>\n",
" <td>0.056054</td>\n",
" <td>0.5</td>\n",
" <td>False</td>\n",
" <td>0.05</td>\n",
" <td>20</td>\n",
" <td>{'classifier__alpha': 0.5, 'classifier__fit_pr...</td>\n",
" <td>0.652727</td>\n",
" <td>0.643691</td>\n",
" <td>0.642749</td>\n",
" <td>0.646389</td>\n",
" <td>0.004498</td>\n",
" <td>15</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>1.433934</td>\n",
" <td>0.155240</td>\n",
" <td>0.636608</td>\n",
" <td>0.024064</td>\n",
" <td>0.5</td>\n",
" <td>False</td>\n",
" <td>0.1</td>\n",
" <td>20</td>\n",
" <td>{'classifier__alpha': 0.5, 'classifier__fit_pr...</td>\n",
" <td>0.652290</td>\n",
" <td>0.642975</td>\n",
" <td>0.643421</td>\n",
" <td>0.646229</td>\n",
" <td>0.004290</td>\n",
" <td>16</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>1.325535</td>\n",
" <td>0.073539</td>\n",
" <td>0.672542</td>\n",
" <td>0.085835</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" <td>0.05</td>\n",
" <td>100</td>\n",
" <td>{'classifier__alpha': 1, 'classifier__fit_prio...</td>\n",
" <td>0.587097</td>\n",
" <td>0.577411</td>\n",
" <td>0.580170</td>\n",
" <td>0.581560</td>\n",
" <td>0.004075</td>\n",
" <td>17</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>1.237677</td>\n",
" <td>0.070063</td>\n",
" <td>0.651091</td>\n",
" <td>0.102538</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" <td>0.1</td>\n",
" <td>100</td>\n",
" <td>{'classifier__alpha': 1, 'classifier__fit_prio...</td>\n",
" <td>0.585713</td>\n",
" <td>0.577197</td>\n",
" <td>0.580763</td>\n",
" <td>0.581224</td>\n",
" <td>0.003492</td>\n",
" <td>18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1.394873</td>\n",
" <td>0.105286</td>\n",
" <td>0.637073</td>\n",
" <td>0.041708</td>\n",
" <td>0.5</td>\n",
" <td>True</td>\n",
" <td>0.05</td>\n",
" <td>100</td>\n",
" <td>{'classifier__alpha': 0.5, 'classifier__fit_pr...</td>\n",
" <td>0.586346</td>\n",
" <td>0.576987</td>\n",
" <td>0.579852</td>\n",
" <td>0.581062</td>\n",
" <td>0.003915</td>\n",
" <td>19</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1.270732</td>\n",
" <td>0.013414</td>\n",
" <td>0.620984</td>\n",
" <td>0.025393</td>\n",
" <td>0.5</td>\n",
" <td>True</td>\n",
" <td>0.1</td>\n",
" <td>100</td>\n",
" <td>{'classifier__alpha': 0.5, 'classifier__fit_pr...</td>\n",
" <td>0.585634</td>\n",
" <td>0.576217</td>\n",
" <td>0.580320</td>\n",
" <td>0.580723</td>\n",
" <td>0.003855</td>\n",
" <td>20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>1.177219</td>\n",
" <td>0.039633</td>\n",
" <td>0.586308</td>\n",
" <td>0.044247</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" <td>0.05</td>\n",
" <td>100</td>\n",
" <td>{'classifier__alpha': 1, 'classifier__fit_prio...</td>\n",
" <td>0.581096</td>\n",
" <td>0.572833</td>\n",
" <td>0.576280</td>\n",
" <td>0.576736</td>\n",
" <td>0.003389</td>\n",
" <td>21</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1.165583</td>\n",
" <td>0.046999</td>\n",
" <td>0.603675</td>\n",
" <td>0.031774</td>\n",
" <td>0.5</td>\n",
" <td>False</td>\n",
" <td>0.05</td>\n",
" <td>100</td>\n",
" <td>{'classifier__alpha': 0.5, 'classifier__fit_pr...</td>\n",
" <td>0.580841</td>\n",
" <td>0.572391</td>\n",
" <td>0.575731</td>\n",
" <td>0.576321</td>\n",
" <td>0.003475</td>\n",
" <td>22</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>0.907388</td>\n",
" <td>0.121543</td>\n",
" <td>0.354655</td>\n",
" <td>0.023775</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" <td>0.1</td>\n",
" <td>100</td>\n",
" <td>{'classifier__alpha': 1, 'classifier__fit_prio...</td>\n",
" <td>0.579769</td>\n",
" <td>0.572373</td>\n",
" <td>0.576699</td>\n",
" <td>0.576280</td>\n",
" <td>0.003034</td>\n",
" <td>23</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>1.210845</td>\n",
" <td>0.041339</td>\n",
" <td>0.653606</td>\n",
" <td>0.028117</td>\n",
" <td>0.5</td>\n",
" <td>False</td>\n",
" <td>0.1</td>\n",
" <td>100</td>\n",
" <td>{'classifier__alpha': 0.5, 'classifier__fit_pr...</td>\n",
" <td>0.579743</td>\n",
" <td>0.571607</td>\n",
" <td>0.576352</td>\n",
" <td>0.575901</td>\n",
" <td>0.003337</td>\n",
" <td>24</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" mean_fit_time std_fit_time mean_score_time std_score_time \\\n",
"12 1.227354 0.011710 0.652844 0.040511 \n",
"15 1.279783 0.037969 0.634761 0.068606 \n",
"18 1.332854 0.171405 0.743611 0.109792 \n",
"21 1.253222 0.072134 0.612344 0.016771 \n",
"3 1.472035 0.080849 0.654935 0.044302 \n",
"0 1.380641 0.054306 0.739966 0.053385 \n",
"9 1.284987 0.113903 0.696876 0.003757 \n",
"6 1.291148 0.101837 0.686561 0.083989 \n",
"13 1.268873 0.042412 0.645649 0.022738 \n",
"16 1.147120 0.009335 0.599006 0.045637 \n",
"4 1.186988 0.057330 0.642233 0.078248 \n",
"1 1.413231 0.153288 0.765960 0.099535 \n",
"19 1.193013 0.079000 0.691768 0.027448 \n",
"22 1.043618 0.098733 0.450375 0.061660 \n",
"7 1.301459 0.062143 0.660748 0.056054 \n",
"10 1.433934 0.155240 0.636608 0.024064 \n",
"14 1.325535 0.073539 0.672542 0.085835 \n",
"17 1.237677 0.070063 0.651091 0.102538 \n",
"2 1.394873 0.105286 0.637073 0.041708 \n",
"5 1.270732 0.013414 0.620984 0.025393 \n",
"20 1.177219 0.039633 0.586308 0.044247 \n",
"8 1.165583 0.046999 0.603675 0.031774 \n",
"23 0.907388 0.121543 0.354655 0.023775 \n",
"11 1.210845 0.041339 0.653606 0.028117 \n",
"\n",
" param_classifier__alpha param_classifier__fit_prior \\\n",
"12 1 True \n",
"15 1 True \n",
"18 1 False \n",
"21 1 False \n",
"3 0.5 True \n",
"0 0.5 True \n",
"9 0.5 False \n",
"6 0.5 False \n",
"13 1 True \n",
"16 1 True \n",
"4 0.5 True \n",
"1 0.5 True \n",
"19 1 False \n",
"22 1 False \n",
"7 0.5 False \n",
"10 0.5 False \n",
"14 1 True \n",
"17 1 True \n",
"2 0.5 True \n",
"5 0.5 True \n",
"20 1 False \n",
"8 0.5 False \n",
"23 1 False \n",
"11 0.5 False \n",
"\n",
" param_vectorizer__max_df param_vectorizer__min_df \\\n",
"12 0.05 5 \n",
"15 0.1 5 \n",
"18 0.05 5 \n",
"21 0.1 5 \n",
"3 0.1 5 \n",
"0 0.05 5 \n",
"9 0.1 5 \n",
"6 0.05 5 \n",
"13 0.05 20 \n",
"16 0.1 20 \n",
"4 0.1 20 \n",
"1 0.05 20 \n",
"19 0.05 20 \n",
"22 0.1 20 \n",
"7 0.05 20 \n",
"10 0.1 20 \n",
"14 0.05 100 \n",
"17 0.1 100 \n",
"2 0.05 100 \n",
"5 0.1 100 \n",
"20 0.05 100 \n",
"8 0.05 100 \n",
"23 0.1 100 \n",
"11 0.1 100 \n",
"\n",
" params split0_test_score \\\n",
"12 {'classifier__alpha': 1, 'classifier__fit_prio... 0.677283 \n",
"15 {'classifier__alpha': 1, 'classifier__fit_prio... 0.676970 \n",
"18 {'classifier__alpha': 1, 'classifier__fit_prio... 0.675678 \n",
"21 {'classifier__alpha': 1, 'classifier__fit_prio... 0.675569 \n",
"3 {'classifier__alpha': 0.5, 'classifier__fit_pr... 0.675225 \n",
"0 {'classifier__alpha': 0.5, 'classifier__fit_pr... 0.675264 \n",
"9 {'classifier__alpha': 0.5, 'classifier__fit_pr... 0.674199 \n",
"6 {'classifier__alpha': 0.5, 'classifier__fit_pr... 0.673996 \n",
"13 {'classifier__alpha': 1, 'classifier__fit_prio... 0.656459 \n",
"16 {'classifier__alpha': 1, 'classifier__fit_prio... 0.656196 \n",
"4 {'classifier__alpha': 0.5, 'classifier__fit_pr... 0.654424 \n",
"1 {'classifier__alpha': 0.5, 'classifier__fit_pr... 0.654622 \n",
"19 {'classifier__alpha': 1, 'classifier__fit_prio... 0.655125 \n",
"22 {'classifier__alpha': 1, 'classifier__fit_prio... 0.654254 \n",
"7 {'classifier__alpha': 0.5, 'classifier__fit_pr... 0.652727 \n",
"10 {'classifier__alpha': 0.5, 'classifier__fit_pr... 0.652290 \n",
"14 {'classifier__alpha': 1, 'classifier__fit_prio... 0.587097 \n",
"17 {'classifier__alpha': 1, 'classifier__fit_prio... 0.585713 \n",
"2 {'classifier__alpha': 0.5, 'classifier__fit_pr... 0.586346 \n",
"5 {'classifier__alpha': 0.5, 'classifier__fit_pr... 0.585634 \n",
"20 {'classifier__alpha': 1, 'classifier__fit_prio... 0.581096 \n",
"8 {'classifier__alpha': 0.5, 'classifier__fit_pr... 0.580841 \n",
"23 {'classifier__alpha': 1, 'classifier__fit_prio... 0.579769 \n",
"11 {'classifier__alpha': 0.5, 'classifier__fit_pr... 0.579743 \n",
"\n",
" split1_test_score split2_test_score mean_test_score std_test_score \\\n",
"12 0.670398 0.665671 0.671118 0.004768 \n",
"15 0.670244 0.666123 0.671112 0.004470 \n",
"18 0.669321 0.665305 0.670101 0.004271 \n",
"21 0.669482 0.665225 0.670092 0.004245 \n",
"3 0.668912 0.665652 0.669930 0.003974 \n",
"0 0.668781 0.665394 0.669813 0.004095 \n",
"9 0.668005 0.664456 0.668887 0.004026 \n",
"6 0.668048 0.664572 0.668872 0.003891 \n",
"13 0.647433 0.644864 0.649585 0.004972 \n",
"16 0.646960 0.645436 0.649530 0.004754 \n",
"4 0.644690 0.644991 0.648035 0.004519 \n",
"1 0.644901 0.644425 0.647983 0.004699 \n",
"19 0.645586 0.643166 0.647959 0.005163 \n",
"22 0.645409 0.643514 0.647726 0.004680 \n",
"7 0.643691 0.642749 0.646389 0.004498 \n",
"10 0.642975 0.643421 0.646229 0.004290 \n",
"14 0.577411 0.580170 0.581560 0.004075 \n",
"17 0.577197 0.580763 0.581224 0.003492 \n",
"2 0.576987 0.579852 0.581062 0.003915 \n",
"5 0.576217 0.580320 0.580723 0.003855 \n",
"20 0.572833 0.576280 0.576736 0.003389 \n",
"8 0.572391 0.575731 0.576321 0.003475 \n",
"23 0.572373 0.576699 0.576280 0.003034 \n",
"11 0.571607 0.576352 0.575901 0.003337 \n",
"\n",
" rank_test_score \n",
"12 1 \n",
"15 2 \n",
"18 3 \n",
"21 4 \n",
"3 5 \n",
"0 6 \n",
"9 7 \n",
"6 8 \n",
"13 9 \n",
"16 10 \n",
"4 11 \n",
"1 12 \n",
"19 13 \n",
"22 14 \n",
"7 15 \n",
"10 16 \n",
"14 17 \n",
"17 18 \n",
"2 19 \n",
"5 20 \n",
"20 21 \n",
"8 22 \n",
"23 23 \n",
"11 24 "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.model_selection import GridSearchCV\n",
"\n",
"optimisation_pipeline = GridSearchCV(\n",
" create_pipeline(),\n",
" {\n",
" \"vectorizer__min_df\": [5, 20, 100],\n",
" \"vectorizer__max_df\": [0.05, 0.1],\n",
" \"classifier__alpha\": [0.5, 1],\n",
" \"classifier__fit_prior\": [True, False],\n",
" },\n",
" scoring=\"f1_macro\",\n",
" cv=3,\n",
" n_jobs=-1,\n",
" verbose=1,\n",
")\n",
"optimisation_pipeline.fit(X_train, y_train)\n",
"\n",
"results = pd.DataFrame(optimisation_pipeline.cv_results_)\n",
"results.sort_values(\"rank_test_score\")"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>#sk-container-id-1 {color: black;background-color: white;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>Pipeline(steps=[(&#x27;vectorizer&#x27;,\n",
" TfidfVectorizer(max_df=0.05, min_df=5, sublinear_tf=True)),\n",
" (&#x27;classifier&#x27;, MultinomialNB(alpha=1))])</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" ><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">Pipeline</label><div class=\"sk-toggleable__content\"><pre>Pipeline(steps=[(&#x27;vectorizer&#x27;,\n",
" TfidfVectorizer(max_df=0.05, min_df=5, sublinear_tf=True)),\n",
" (&#x27;classifier&#x27;, MultinomialNB(alpha=1))])</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" ><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">TfidfVectorizer</label><div class=\"sk-toggleable__content\"><pre>TfidfVectorizer(max_df=0.05, min_df=5, sublinear_tf=True)</pre></div></div></div><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-3\" type=\"checkbox\" ><label for=\"sk-estimator-id-3\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">MultinomialNB</label><div class=\"sk-toggleable__content\"><pre>MultinomialNB(alpha=1)</pre></div></div></div></div></div></div></div>"
],
"text/plain": [
"Pipeline(steps=[('vectorizer',\n",
" TfidfVectorizer(max_df=0.05, min_df=5, sublinear_tf=True)),\n",
" ('classifier', MultinomialNB(alpha=1))])"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn import set_config\n",
"\n",
"set_config(display=\"diagram\")\n",
"\n",
"classifier = create_pipeline()\n",
"classifier.set_params(**optimisation_pipeline.best_params_)\n",
"classifier.fit(X_train, y_train)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" business 0.6412 0.7258 0.6808 3198\n",
" economics 0.6635 0.7146 0.6881 3189\n",
" geography 0.7461 0.6791 0.7111 3207\n",
" medicine 0.8806 0.9021 0.8912 3187\n",
" politics 0.5563 0.5895 0.5724 3169\n",
" psychology 0.7654 0.6811 0.7208 3252\n",
" sociology 0.5165 0.4698 0.4921 3197\n",
"\n",
" accuracy 0.6803 22399\n",
" macro avg 0.6814 0.6803 0.6795 22399\n",
"weighted avg 0.6817 0.6803 0.6796 22399\n",
"\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABDAAAAOZCAYAAADoINC+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAADj/0lEQVR4nOzdd3hUVf7H8c9k0mdSCCRAQgiE0AWUolJVBBURBCyIggWxYll117I2bLhrWXVFWBEFBbECIhhRBFEUAVGKUpJAQgIJJSSEJJM65ffHQJJhAsGfJHPB9+t55nnIzHfunDuHc+fOd77nXJPL5XIJAAAAAADAwPx83QAAAAAAAIC6kMAAAAAAAACGRwIDAAAAAAAYHgkMAAAAAABgeCQwAAAAAACA4ZHAAAAAAAAAhufv6wagWlBkiEKbhfm6GTiJnFkMsdNKZaWvW4CTzOVw+roJOIlMJpOvmwDgOFwul6+bgJOozGVThavM1804bVx8gUV5+Q5fN+O4mjQ/X0uWLPFpG/h2ZSChzcJ0wdtX+LoZOIlsdzTxdRNwEpn27Pd1E3CSOQuLfd0EnESm4CBfNwEnm5Mk4+nEVcEPAaeT1ZW+/SJ7usnLd2jtVy193YzjOvuyA75uAlNIAAAAAACA8VGBAQAAAACAD7kkOUXVWV2owAAAAAAAAIZHAgMAAAAAABgeU0gAAAAAAPAplxwuppDUhQoMAAAAAABgeCQwAAAAAACA4TGFBAAAAAAAH3JfhcTl62YYHhUYAAAAAADA8EhgAAAAAAAAw2MKCQAAAAAAPuYUVyGpCxUYAAAAAADA8EhgAAAAAAAAw2MKCQAAAAAAPuSSSw4XVyGpCxUYAAAAAADA8EhgAAAAAAAAwyOBAQAAAAAADI81MAAAAAAA8DGnWAOjLlRgAAAAAAAAwyOBAQAAAAAADI8pJAAAAAAA+JBLkoMpJHWiAgMAAAAAABgeCQwAAAAAAGB4TCEBAAAAAMDHuApJ3ajAAAAAAAAAhkcCAwAAAAAAGB5TSAAAAAAA8CGXJIeLKSR1oQIDAAAAAAAYHgkMAAAAAABgeEwhAQAAAADAx5y+bsApgAoMAAAAAABgeCQwAAAAAACA4ZHAAAAAAAAAhscaGAAAAAAA+JBLLjnEZVTrQgUGAAAAAAAwPBIYAAAAAADA8JhCAgAAAACAL7kkBzNI6kQFBgAAAAAAMDwSGAAAAAAAwPCYQgIAAAAAgA+5JDl93YhTABUYAAAAAADA8EhgAAAAAAAAw2MKCQAAAAAAPmWSQyZfN8LwqMAAAAAAAACGRwIDAAAAAAAYHlNIAAAAAADwIZckp8vXrTA+KjAAAAAAAIDhkcAAAAAAAACGxxQSAAAAAAB8jKuQ1I0KDAAAAAAAYHgkMAAAAAAAgOEZfgpJq1atNGPGDA0aNOikbG/lypWaMGGCUlJSTsr24OYqdKrsX8Wy/1whU4Sfgm4LVcDg4FpjHSl2lb9eLEeqXaZgkwLHhSrwqhCPGPv6SpXec0iB14co6BZLQ+wCarCGleu++39W9x57dehQkGa901Urvk3wiuvabZ+uvW6LktoeVHFRgG68fljVYxGRZbr9jvXq0nW/goMd2rkzXG+9eZZStjVuyF3BYdbwSv3t6W3q3jtfhQUBmvVaG61IblpLpEs33Zeui0flSJK+mh+rma8kSodLGpN/+1ZlJX5yHf77+y9j9NqkDg20FzjCGmHXfS9kqMeAQh3K99fMF1poxcLaxpZL4x/erUuuyZUkLfkwWu/8q4Ukk+Jal2nCP3epY49imc0upW60aNqkltqdHlLLdlDfrBGVuu+5NHXvW6BDBwM06z8JWrE4ppZIl8b/facuvnKfJOmrT5vqnZdaSUeVHV94+T79/YU0vfpokr76tFm9tx+erBGVum/yDnXvV6BDB/016+UErVgUXUukS+P/kamLr9ovSfrqkxi982KCJJPCG1XqiWnbFJ9YKj+zS7t2hGjGv1ppy6/hDbovcOO4CxiD4RMYJ1v//v1JXtSDsv8USwGSdWFjObbbVfpgofyS/GVu7flfzFngVOnfDynobotCzg+S7C459zs9Ylx2l8r/Wyy/Tn+5/56GMfGuX1VZ6acxV1+uNm0K9NSzK5WeHqmszAiPuLIyf339VWt9t6KlRl+zxeOxkGC7UlOjNP3NM3WoIEgXX5Khp575XjeOu0xlZQENuTuQdOejqbJX+una8/sqsUOxnnpjk9JTrMra4ZkgHHJVjnpfkKuJV/aSXCY9N32D9u0OVvIncVUxE6/spT27Qht6F1DDXc9kyl5p0jU9zlSbTiV6emaaMraEKjPN8yT40mtz1eeiAt15yRlyuaTJ76do764gJb8fI0u4Xau/idTLf2+tUpufrrs3R0++tV23XNjFR3v11zbxiR3u427fc9SmY7GeenOL0rdZlLX9qDE6eq96D8rXxMvPcvfpzN+1d3ewkj9sXhVjDbdr9O27tTOVceorEydlqLLSpDG9e6lNR5ueemur0rdalLXds0+GXLPP3Z/Du7n7c9YWd39+0EylNrNeeSRJOTuD5XJJvQfla9Kb23TNub3kdDBPvqFx3EV9c4k1ME4EU0jwp7lKXbJ/V6Ggmy0yhZrk3zVA/n0DZf+q3Cu28qNSmc8OVMBFwTIFmmQK9ZO5lWeiouLDUpl7BcqvpbmhdgE1BAXb1bffbs1+t4vKygK0eXO0Vv8Uqwsv3OkVm5rSWMuXtdKePd5VMnv3WrVgXnsdzA+R0+mnL5PbKMDfqRbxRQ2wF6gpKMShvoNzNXtKa5WV+mvL+kitWdFEA4ft9Yq9cPhezX+vpfL2BStvf5DmvxuvQZd7x8F3gkIc6jvkoN57uYXKSszavC5Mq7+J1MBRB7xiB115QPPeaqoDewOVty9Q899qpsFXuuNSN1r11UfRKj7kL4fdT/NnNFN8UpnCIu0NvUt/eUEhDvW9KE+zX0tw9+kvEVq9PEoXXp7rFTtoxH7NfydOB/YFKW9/kObNjNPgkfs9Ym58YKcWzo5V4UF+CPCFqv58teXh/gzX6mVRunBELf05Mlfz34nVgb1BytsXpHlvx2rwKHd/Vlb4KTsjRC6XSSaT5HSaFBZpV1hEZUPv0l8ex13AOE6JBMbPP/+sTp06qVGjRrrppptUVlamWbNmqV+/fh5xJpNJ27dvlyQlJyerU6dOCgsLU1xcnF566SVJ0ooVK9SiRYuq57Rq1UovvfSSunbtqoiICI0ePVplZWVVjy9evFhnnnmmIiMj1adPH23atKnqsX//+9+Ki4tTWFiY2rdvr2XLlkmS1q5dq549eyo8PFxNmzbV/fffX2/vjRE4dzkkszwSDuYksxwZ3gdjxxa7TOEm2e4oUPGwPJU8dEjOfY7qbe11qPKLMgXdyK9GvtIirkgOh0nZ2WFV92WkRyqhVeGf2m5i4kH5BziVk239s03EHxSXUCKH3aTszOpxlZ5iVUIbm1dsQhubMlKqE1IZKVa1TPKMe2HWes359kc9+spvioktrb+Go1YtEsvcYzSjeppe+tYQJbTz7ouEtmVK31qj37eE1honSV3OKVL+/gAVFfClt6G1aFXq7tOd1b/kZmyzKCGpljHatkTp2ywecS3bllT93a5LkdqeUazkD5g24istWtfWn6FKqNFPR9Tan0mecVMXbdDC31dr0pvb9OVHMTqUH1h/jUetOO4CxnFKjJb3339fX331lSwWi4YNG6Znn31WSUlJx33OzTffrI8//lj9+/fXwYMHlZGRcczYjz/+WEuWLFFwcLD69u2rWbNm6fbbb9f69es1fvx4LVq0SD179tScOXM0fPhwpaSkaOfOnZoyZYp+/vlnxcbGaufOnXI43F/E7733Xt17770aN26ciouL9fvvv5/U98NoXKUumSxHlTtZ/KQSl1esc79DjlS7Qv8TLr9Ef5VPs6l0UpEs0yIlSeWv2RQ0wV3JAd8IDrGrpMRziofNFqCQkP//Lz6hoZX6+0Nr9P6cziop4cSroYWEOlRi8zzc24r9FWJxeMUGhzpkK/b3iAu1OOQubDTpwRvP0raN4QoKcej6uzM0acpvuuuqnnI6Tol8+GkhONSpkiLP99tW6K9Qi9M71uKQrag6uWwrMivU6tSR/jyiSbMKTXwmU9Ofia+vZuM4gkMdKin2rDq0FR1vjJo94o6MUT8/aeKkHZr2dKJcLj5HfSU41PnH+rOOMXrnsDMVEOhUn4vyFBDgfW6F+sdxFw3FybG7TqfEGeddd92l+Ph4RUVF6dFHH9UHH3xQ53MCAgK0ZcsWFRYWqlGjRurevfsxY++55x7FxsYqKipKw4YN04YNGyRJ06dP12233aZzzjlHZrNZN9xwg4KCgrR69WqZzWaVl5dry5YtqqysVKtWrdSmTZuq196+fbsOHDggq9Wqc88995ivPX36dPXs2VM9e/ZUecGp+UumKcQkl+2oD9QSp1RLEsIUZJJ//0CZOwbIFGRS0E2hcv5ul6vYKfuP5XKVuBRwYVADtRy1KSv1V2ioZ7IiNLRSpaX/v3UrAgPtmvT0Sm3b2lgff9jpZDQRf1BpiVmhFs+KqFCLXaU272laZSXmw1+GDsdZHSqxmXXkpOv3XyJlt/vJVhSgN//VVs3iStUy0ftXRdSfshI/hYZ5njSHhjlUYvP+SC+zmRVqPao/i/1U8yQ6IqpSz81J0eLZMVrxOYvs+kJZiWc/SVKo9Y+P0cuu3aOdKaHatpFFHn2prMTvj/VnHWNUck8n+W5xtK66LVutO3hX5qB+cdwFjOOUSGDEx1dnJhMSEpSTk1Pnc+bNm6fk5GQlJCTovPPO008//XTM2GbNqsssQ0NDVVxcLEnKzMzUyy+/rMjIyKrbrl27lJOTo6SkJL366quaNGmSYmJidM0111S16+2331Zqaqo6dOigXr16afHixcd87VtvvVXr1q3TunXrFBR5aq5A7BdvlhyHp5Ic5tju8FrAU5L82vh7fibX+Lf9l0o5ttlVfHmeii/Pk315uSo+KVXpI39u6gL+mN3ZYTKbXYqNrV6ronVigTJ3/vET4oAAh56Y9KMOHAjR66/1PJnNxB+QnRkqs79LsS2rEw2J7YuVucN77ZLMHRa1bl9c9XfrdsVeiwjW5JLp6PNs1LPd6cHuMdqqerpjYscSZaZ6f4ZkpgUrsWN1cjyxk2ecNdyu5+akavXSSH04JbZ+G45j2r0zxN2nCdV91bqDTZm1jL3MtFAl1vgCm9ihWFlp7nL1br0L1HtQnt7/YY3e/2GNOp5VpFseztAdj++o/51Ald0ZtfVniTLTvKfHuvuzxrG5o81roc+a/P1dah5fdszHUT847gLGcUokMHbt2lX176ysLMXGxspisaikpPqAv3ev5yJzvXr10sKFC7V//36NGDFCV1999R9+3fj4eD366KMqKCioupWUlGjMmDGSpGuvvVY//PCDMjMzZTKZ9NBDD0mS2rZtqw8++ED79+/XQw89pCuvvFI22+mbLTeFmOQ/IFDlb9vcC3puqpT9hwr5X+xdSRFwaZDs31fIkWZ3X21kVonMXf1lsvopaEKoLHMbKfQd982/X6ACLgtW8COsmdCQysv8terHOI274XcFBdvVqVOuevfJ0bJlrbxiTSaXAgIc8vd3SSYd/rc7kWU2O/Xo46tUXmHWSy+cQzmzD5WXmrXqm2iNnZihoBCHOp1ZoHMvOKDli7znyC//vJlGXr9LjWPKFRVdrlE3ZOmbhe64lm1sSmxfJD8/l4JD7Jrw9+3K2xeoXemsWdOQykvN+nFJI11/f7a7P3sWqffgAi2f38Qr9pt5TTTqlr1q3LRCUTEVuuKWvVr6qTsu1OrQc7NTtWWdVTP/TQmzL5WXmrVqaWONuyfT3afdC9X7wnwtW+h92c1lC2M08qZs9xiNKdeom3K0dIH7cqv/ebidbru0h+4acZbuGnGW0n636v0pLfXuK96XwUb9KS81a9XXURr3t13V/TkoX8s+q6U/P4vWyPE5aty0XFExFRo1PkdL57v7s8OZRerco1D+AU4FBjl01a27Fdm4Qts2hnltB/WL4y4awpGrkBj5ZgSnxBoYb7zxhi677DKFhobqueee0+jRo9WtWzdt3rxZGzZsUIcOHTRp0qSq+IqKCn3yySe67LLLFBERofDwcPn5/fFczS233KKRI0dq0KBBOvvss1VSUqIVK1ZowIABysnJUXZ2tvr27avg4GCFhIRUrYExZ84cXXzxxYqOjlZkZKQk/b9e/1QS/IBVZc8Xq3h4nkzhfgp+wCJza3/ZN1aq9B+HFPa1+8Dt3yNQQbeGqvTBQrnKXDJ39VfwE+4PYlOon0w1vwcFmmQKMckUfnq/d0Y05fUeuu+Bn/Xhx5+psDBIU/7bQ1mZEep8Rq6eee57jbr8CknSGV1y9cJL31Y97/MvPtWmjdF66B8D1anTAZ1zbo7Kysz6dMGCqpjHHx2gzb97n8Shfr3xbDvd98w2fbDiBxUeCtAbz7ZX1g6LOncv0NPTNumKcwZIkpI/iVWzFqWaOn+tJOmrec2V/In7F6JGjSs08bEUNWlarrJSs7ZujNCku7rKYWeMNrQpjyXo/hcz9NGvG1R40F+vP5agzLQQde5VpGffTdXITj0kScnvR6t5y3L972v3WkxLPoxW8vvu8dfn4oNqf6ZNCe1Kq1bIl6RbB52h3Bym8jW0KU+10X2T0/ThqjUqLAjQlEltlLXdos49DumZtzZrVPc+kqTkD5upWXyZpi1aL0la8mlTJX/oTjLaivxlq3GhJ3ulSSXFZpUUnxKne6eVKZMSdd/zO/Th6p9VWOCvKU8mKmt7qDr3LNQzM7Zo1Jnu6cXJHzR19+fijZKkJZ/EKPmDppKkgECnbn8sQ83iy+Sw+2lnaqievLWj8vezlpQvcNwFjMHkcrkMvRpQq1atdNttt2n27NnKycnR5ZdfrmnTplUlM1555RWFhITo+eef17hx45SWlqaWLVtq+PDhWrNmjRwOh9q3b69XXnlF/fr104oVKzR27Fjt3r27avszZszQoEGDJEmTJk3S9u3bNWfOHEnSkiVL9PjjjystLU0hISHq16+f3nnnHWVkZGjChAnaunWrAgIC1KdPH02fPl2xsbEaO3asvv76a5WUlCghIUHPPfecRowYUee+NuoQowvevqLe3ks0PNsd3pl5nLpMe/bXHYRTirOwuO4gnDJMwXwBOO04vRdJxKnLVcElYE8nqyuXqNCZ5+tmnDY6dQ3UnMXGvoLUraNitG7dOp+2wfAJjL8SEhinHxIYpxcSGKcfEhinFxIYpyESGKcVEhinFxIYJ1fHrkF6b3FzXzfjuO4Y1cTnCQzqfgEAAAAAgOGRwAAAAAAAAIbHqk4AAAAAAPiYk6v21YkKDAAAAAAAYHgkMAAAAAAAgOGRwAAAAAAAAIbHGhgAAAAAAPiQS5JDrIFRFyowAAAAAADAn5afn6+RI0fKYrEoISFBc+fOrTWuvLxct99+u5o2baqoqCgNGzZM2dnZdW6fBAYAAAAAAPjTJk6cqMDAQO3bt0/vv/++7rjjDm3evNkr7rXXXtNPP/2kTZs2KScnR40aNdLdd99d5/ZJYAAAAAAA4FMmOVx+hr7VxWazad68eXrmmWdktVrVr18/DR8+XLNnz/aKzcjI0MUXX6ymTZsqODhYo0ePrjXRcTQSGAAAAAAA4Lhyc3PVs2fPqtv06dM9Hk9NTZW/v7/atWtXdV+3bt1qTUzcfPPN+vHHH5WTk6OSkhK9//77GjJkSJ1tYBFPAAAAAABwXNHR0Vq3bt0xHy8uLlZ4eLjHfRERESoqKvKKbdu2reLj4xUXFyez2awuXbpoypQpdbaBCgwAAAAAAHzIJckpP0Pf6mK1WlVYWOhxX2FhocLCwrxiJ06cqPLycuXl5clms2nUqFEnVIFBAgMAAAAAAPwp7dq1k91uV1paWtV9GzduVOfOnb1iN2zYoBtvvFFRUVEKCgrS3XffrbVr1+rAgQPHfQ0SGAAAAAAA4E+xWCwaNWqUnnjiCdlsNv34449auHChxo0b5xXbq1cvvffeezp06JAqKys1depUxcbGqkmTJsd9DRIYAAAAAAD4mEMmQ99OxNSpU1VaWqqYmBiNGTNG06ZNU+fOnbVy5UpZrdaquJdeeknBwcFq27atoqOjlZycrAULFtS5fRbxBAAAAAAAf1pUVJQ+++wzr/v79++v4uLiqr8bN26s999//w9vnwoMAAAAAABgeFRgAAAAAADgQy6XSQ4X9QV14R0CAAAAAACGRwIDAAAAAAAYHgkMAAAAAABgeKyBAQAAAACAjzlP8FKlf2VUYAAAAAAAAMMjgQEAAAAAAAyPKSQAAAAAAPiQS5KD+oI68Q4BAAAAAADDI4EBAAAAAAAMjykkAAAAAAD4lEkOF/UFdeEdAgAAAAAAhkcCAwAAAAAAGB5TSAAAAAAA8CGXJCf1BXXiHQIAAAAAAIZHAgMAAAAAABgeU0gAAAAAAPAxh8vk6yYYHhUYAAAAAADA8EhgAAAAAAAAw2MKCQAAAAAAPuSSSQ7qC+rEOwQAAAAAAAyPBAYAAAAAADA8EhgAAAAAAMDwWAMDAAAAAAAfc7qMXl/g8nUDqMAAAAAAAADGRwIDAAAAAAAYHlNIAAAAAADwIZd0ClxG1eHrBhj+HQIAAAAAACCBAQAAAAAAjI8pJAAAAAAA+JBLJjlcJl83w/CowAAAAAAAAIZHAgMAAAAAABgeU0gAAAAAAPAxJ/UFdSKBYSDOnWaV3Bzh62bgJGr2Xravm4CTaN/QAF83ASeby+nrFuAkMgUyRk83zmKbr5uAk8jPavF1E3ASmQ7xZRsNj/91AAAAAADA8KjAAAAAAADAh1wuyeGivqAuvEMAAAAAAMDwSGAAAAAAAADDI4EBAAAAAAAMjzUwAAAAAADwKZOcMvm6EYZHBQYAAAAAADA8EhgAAAAAAMDwmEICAAAAAIAPucRlVE8E7xAAAAAAADA8EhgAAAAAAMDwmEICAAAAAICPOagvqBPvEAAAAAAAMDwSGAAAAAAAwPCYQgIAAAAAgA+5ZJLTZfJ1MwyPCgwAAAAAAGB4JDAAAAAAAIDhMYUEAAAAAAAf4yokdeMdAgAAAAAAhkcCAwAAAAAAGB5TSAAAAAAA8CGXJKeL+oK68A4BAAAAAADDI4EBAAAAAAAMjwQGAAAAAAAwPNbAAAAAAADAp0xyyOTrRhgeFRgAAAAAAMDwSGAAAAAAAADDYwoJAAAAAAA+xGVUTwzvEAAAAAAAMDwSGAAAAAAAwPCYQgIAAAAAgI9xFZK6UYEBAAAAAAAMjwQGAAAAAAAwPKaQAAAAAADgQy6XiauQnADeIQAAAAAAYHgkMAAAAAAAgOExhQQAAAAAAB9zMIWkTrxDAAAAAADA8EhgAAAAAAAAwyOBAQAAAAAADI81MAAAAAAA8CGXJKdMvm6G4VGBAQAAAAAADI8EBgAAAAAAMDymkAAAAAAA4FMmLqN6AniHAAAAAACA4ZHAAAAAAAAAhscUEgAAAAAAfMglyeniKiR1oQIDAAAAAAAYHgkMAAAAAADwp+Xn52vkyJGyWCxKSEjQ3Llza40bMmSIrFZr1S0wMFBdunSpc/tMIQEAAAAAwMccp0F9wcSJExUYGKh9+/Zpw4YNGjp0qLp166bOnTt7xH355Zcef59//vkaOHBgnds/9d8hAAAAAADgUzabTfPmzdMzzzwjq9Wqfv36afjw4Zo9e/Zxn7dz506tXLlS119/fZ2vQQIDAAAAAAAcV25urnr27Fl1mz59usfjqamp8vf3V7t27aru69atmzZv3nzc7b733nvq37+/WrVqVWcbmEICAAAAAIAPuWQy/FVIoqOjtW7dumM+XlxcrPDwcI/7IiIiVFRUdNztvvfee3rsscdOqA0kMHBSWMMq9LcHf1H3nvtVeChQs946QyuWxXvFdT0zV2Nu2KqktgUqLg7UTddc4vF4TDOb7nvoF7XveFC5+0M07bUzteGXmIbaDRzmPORSweQyla+xyy/SpLA7ghR6cUCtsRXbHCp8tVyVKQ6Zgk2y3hgo6+jAqseLP6qQ7cMKOQ+6ZG7qp6gXQ+TfkuKvhmYNr9Tfnt6m7r3zVVgQoFmvtdGK5Ka1RLp0033punhUjiTpq/mxmvlKoiT3B2ryb9+qrMRPrsN/f/9ljF6b1KGB9gJHWCPsuu/FTPUYUKhD+f6a+e84rVgYVUukS+MfydYl1xyQJC35sIneeT5OR/rznn9lqus5RYptXa5X/p6gpZ82abidgAfG6OnFGmHXff/OUI/+h3TooL9mvtBCKz6vbXy5NP6h3bpk9H5J0pKPYvTOv1tIMimudakmPLJLHbsXy2x2KXWTRdOeStDu9JAG3Re4WSMq9benU9S9z+Ex+mqiVnxxjDF6f7ouvmKPJOmrec018z81xujmFYfHqNv3yTF67UnGKE4PVqtVhYWFHvcVFhYqLCzsmM/54YcftHfvXl155ZUn9BokMP6grKwsderUSYcOHZLZbPZ1cwzjzr9tkL3ST9eOGqrEpAI99fwqpe+IUNZOzwxcWZlZS5Nb6bsgh0aPTfHazkOP/6xtm6P05EN91evcvfrnU2s04bqLVHgoqKF2BZIOvVQm+UtNk62qTHUo/4FSBbT1U0Ci5/95R4FT+feVKvzeIIUMDJGrUnLsd1Y9bltYoZLPKxX1nxD5t/KTI9slvzBjZ5ZPV3c+muoeo+f3VWKHYj31xialp1iVtcPiETfkqhz1viBXE6/sJblMem76Bu3bHazkT+KqYiZe2Ut7doU29C6ghruezZK90qRrundVm86lenpmmjK2higz1fOLzaXXHVCfiwp058Wd5HJJk+emae+uICXPiZYkZWwJ0feLGmn8I9m+2A3UwBg9vdz19E73GO11ltp0KtHTb6cqY2uoMtM8++XSMbnqc9FB3XlpF/cYnb3NPUbnxsgS7tDqbxrp5X8kqtTmp+vuydGT09N0y6CuPtqrv7Y7H0uTvdKka8/r4x6jU39T+rbaxuge9R54QBNH9XSP0Rkb3WP04xpj9Iqe2pPFGMXpp127drLb7UpLS1Pbtm0lSRs3bvRawLOmd999V6NGjZLVaj2h1+Bn0D+oZcuWKi4uJnlRQ1CwXX0HZGv2O51UVuqvLb810ZpVzTXwoiyv2NRtUVq+tKX27rF4PRbXokhJbQs0Z2ZHVVSY9eP3cdqZHq5+53Fi3ZCcpS6VfmtX+G1B8gs1KehMfwX391fpl3avWNsHlQo6x6zQSwJkCjTJz2JSQGv32HA5XSp6u0IRfwtSQGuzTCaT/Fv4yS+CBEZDCwpxqO/gXM2e0to9RtdHas2KJho4bK9X7IXD92r+ey2Vty9YefuDNP/deA263DsOvhMU4lDfIQV676VYlZWYtflnq1Z/E6mBo/K8Ygddkad5bzXVgb2BytsXqPnTm2rwldVxi96L0YYfw1VZzrj0Jcbo6SUoxKG+lxzUe/+Jc4/RdWFavSxSA0fWNkYPaN6MZtVjdEZzDb4yV5KUutGqrz6OVvEhfznsfpr/djPFtylTWGRlQ+/SX17VGH29tcpK/LXl10it+baJBg6vZYxevlfz342vHqOz4jVoBGMUfw0Wi0WjRo3SE088IZvNph9//FELFy7UuHHjao0vLS3Vxx9/rBtvvPGEX4MKDPxpcS2K5XD4KXt3dWlQ+o4Idel24A9tp2WrQu3ZY1FpafVUhYwdEWrZqvA4z8LJ5shyymSWxzSPgLZmlf/qncCo+N2hgDZ+yr3FJsdulwI6+SniH8Hyb+Ynx36XnPtdqkx36uAzxTKZpZBLAxR2c6BMfnxZakhxCSVy2E3Kzqz+tSc9xaouPQu8YhPa2JSRUp1gzEixqmWSzSPmhVnrZfKTtm4I11svJml/DuXMDalFYrkcDik7I7jqvvQtIepybrFXbEK7UqVvqdHvW0OU0K60QdqJE8cYPb20aF0mh8Ok7Izq9z19a6i6nOM9BzyhbanStx41RtvWPka7nF2k/P0BKiqofUon6k/tY9SiLr0OecUmJNmUsa36l+SMFItaJpV4xLzw7gaZ/Fzauj5Cb73QhjGKKs7ToL5g6tSpGj9+vGJiYtS4cWNNmzZNnTt31sqVKzVkyBAVF1efr3z22WeKjIzUBRdccMLb99k7lJOToyuuuELR0dFq3bq1/vvf/0qSHA6HJk+erDZt2igsLEw9evTQrl27JEmrVq1Sr169FBERoV69emnVqlVV2zv//PP1+OOPq2/fvgoLC9NFF12kAweqv0B//vnn6ty5syIjI3X++edr69atVY+1atVKL774orp27SqLxaKbb75Z+/bt05AhQxQWFqZBgwbp4MGDktyXeDGZTLLb3V/m8vPzddNNNyk2NlaNGjXSiBEjJEkHDhzQZZddpsjISEVFRal///5yOqtL608nISF2lZR45sJsxQEKCfX+wnv87ThUYvvz28Gf4yx1yWTxTDCYLJKrxDvWsd+pkuRKRdwXrKafWeQf66eDj7tPvJz73bM7y9fYFfO+RY3fCFXp15Uq+ZxfjhpaSGhtY8tfIRaHV2xwqEO2Yn+PuFCLQzo8W/fBG8/STRf31m3Dz1Z+bpAmTflNfubT89hmVMEWh0qKPKsAbUXmw/10dKxTthqxtkKzQq1OqWr2NYyAMXp6CbY4VVJ8omPUIVthjTFa5F/rGG3SrEITn96p6c+2rJc24/jcY/SoPi32r/Uc1T1Gj+rTmmP0+jN100Xn6rbLzlZ+bqAmTWWM4vQSFRWlzz77TDabTVlZWbr22mslSf379/dIXkjSmDFjlJmZKZPpxH/c9EkCw+l0atiwYerWrZuys7O1bNkyvfrqq/rqq6/0n//8Rx988IGSk5NVWFiod955R6GhocrPz9fQoUN1zz33KC8vT/fff7+GDh2qvLzqcry5c+dq5syZ2r9/vyoqKvTSSy9Jcl/OZcyYMXr11VeVm5urSy+9VMOGDVNFRUXVc+fNm6elS5cqNTVVixYt0pAhQzR58mTl5ubK6XRWJViONm7cOJWUlGjz5s3av3+/7rvvPknSyy+/rBYtWig3N1f79u3T5MmTa+2Y6dOnV12GpsJRyzfEU0Bpqb9CjzqAh1rsKi35YwU+paXmWrZT+Ye3gz/HL8Qkl83zxMllk0y1TNU0BZkUfJ6/AjuZZQoyKWxCkCp/c8pZ7JLp8LIl1rGB8gszyT/WT5YRgSr/yfsEDvWrtMSsUEstY9TmPRWurMTzJDvUeuSkzX38+v2XSNntfrIVBejNf7VVs7hStUw8NY9dp6oym1mhYZ7jKNTq9Dq5dsf6KdRaoz/DHCop9tOR/oQxMEZPL0ePO6lmPx0d6zmeQ63eYzQiqlLPvbdNi+c01YpFjeut3Ti20hLvBFSoxVHrOWpZidnzuFvbGK08PEafb6tmcWWMUeAP8EkC4+eff1Zubq6eeOIJBQYGKjExUbfccos+/PBDzZgxQ88++6zat28vk8mkbt26qXHjxvriiy/Utm1bjRs3Tv7+/hozZow6dOigRYsWVW33pptuUrt27RQSEqKrr75aGzZskCR99NFHGjp0qAYPHqyAgAD9/e9/V2lpqUcFx913362mTZsqLi5O/fv31znnnKOzzjpLwcHBGjlypNavX++1H3v27NGXX36p//3vf2rUqJECAgJ03nnnSZICAgK0Z88eZWZmKiAgQP379681gXHrrbdq3bp1WrdunQLNp+ZiPtm7rTKbnYqNq86oJbY5pMyjFvCsS9bOcDWLtSkkpPoX+sQ2h7wWAkX9Mrf0k8sh2bOqfw2o3O7wWsBTkgKS/I75Pcic4CcFyPNxvjP5RHZmqMz+LsW2rD5BSmxfrMwd3mvRZO6wqHX76rHcul2xsrZ7xx3hkol+bWC704NkNkuxrcqq7kvsVKLM1GCv2MzUECV2qtHvHUu9FvqE7zFGTy+7M4JlNrs8x2jHklrHXmZaiBI7lnjGpVXHWcPteu69FK3+ppE+fCO2fhuOYzrmGN3ufe6euf2oMdq+WFm1xB3hkhijkCS5XJLDZTL0zQh8ksDIzMxUTk6OIiMjq26TJ0/Wvn37tGvXLrVp08brOTk5OUpISPC4LyEhQdnZ1Qs8NmvWrOrfoaGhVSUqRz/Xz89P8fHxHs9t2rT6MkghISFefx9d7iJJu3btUlRUlBo1auT12D/+8Q8lJSXpoosuUmJiov71r38d9z05lZWX+WvVyjiNHb9FQcF2dTojT+f2zdHyr73LHE0mlwICHfI3O2XS4X/7u78oZ+8OU/r2CF174zYFBDrUu1+2WrUp1A/fxXltB/XHL8Sk4PP9VfRWuZylLpVvtKvse7tChnj/yhB6WYDKvrOrMtUhl92lopnlCuxmlp/VJL9gk0IG+at4ToWcNpd7usnCSgX1ZQHchlZeataqb6I1dmKGgkIc6nRmgc694ICWL2rmFbv882Yaef0uNY4pV1R0uUbdkKVvFrrjWraxKbF9kfz8XAoOsWvC37crb1+gdqWfmsnXU1V5qVk/LonU9Q/kuPuzZ7F6Dy7Q8vnev8x+M7+xRk3Yr8ZNKxTVtEJX3LpPSz+tjvMPcCogyCmZJHOASwFBTplMTC9paIzR00t5qVk/ftVI19+3292fPYrUe1CBli+obYw20aib97rHaEyFrpiwV0s/dV8lKNTq0HPvpWjLL1bNfMH70vRoOOWlZq1a2kRj797p7tOzDuncgQe0/PPaxmhTjbx+d/UYvXGXvvmsxhjtcHiMhto14cHtytsXxBgF/gCf1ObHx8erdevWSktL83qsffv22rFjh8444wyP+2NjY5WZmelxX1ZWli655JI6Xy82Nla//fZb1d8ul0u7du1SXNyf+2IcHx+v/Px8FRQUKDIy0uOxsLAwvfzyy3r55Zf1+++/a+DAgerVq5cuvPDCP/WaRvXGK2fqvod+0QcLvlBhYaDeeOUsZe0MV+cuB/T0Cz/qiiGXS5LO6HZA/351ZdXzFn69UJs2NNHDfxsgSfrX02fr/od/0ceLFil3X6gmP3kOl1D1gch/BKvguTLtG1IsvwiTIh4MVkCiWeUb7Mq/r1TNv3Uv2BrU01/htwcp74FSucpcCuxqVqOnq38Fjvh7sAqeL9O+YcUyWU2yXB6g0GEsPuYLbzzbTvc9s00frPhBhYcC9Maz7ZW1w6LO3Qv09LRNuuIc9xhM/iRWzVqUaur8tZLc169P/sT9q1+jxhWa+FiKmjQtV1mpWVs3RmjSXV3lsJ/6C06daqY82lL3v7RTH63fpMKDZr3+aIIyU0PU+ewiPfvudo3seJYkKXlOEzVvWa7/Ld0iSVryYRMlz2lStZ3Jc9LUtbc7Qd+5p01/+3eWHry6nTatPvb12lE/GKOnlymPt9L9L6Tro3XrVXjQX68/nqDMtFB17lWkZ2emaOQZPSVJyXOj1bxlmf63xH2euuSjaCXPdScw+lyUr/bdbEpoW6rBV1Sv63brRV2Um8O5UUOrGqPf/+geo8+0qx6jb27SFb0Oj9GPY9UsvkxTP/tZ0uEx+vHhMdqkQhMfT60eoxvCNenOLoxR4A8wuVyuBv+pxeFwqFevXho9erTuueceBQYGauvWrSotLdWKFSs0e/ZszZs3T0lJSfrtt9+qEg1t2rTR1KlTdfXVV2vevHm67bbbtH37djVp0kTnn3++xo4dqwkTJkiSZs2apRkzZuiHH35QSkqKunfvrs8//1wDBgzQa6+9pqlTp2rbtm0KDAxUq1atNGPGDA0aNEiSNHbsWCUlJWnSpEmSpBkzZujDDz/UN998o507d6p169aqrKyUv7+/hg4dqoiICL3xxhuyWq366aefNGDAAC1evFgdOnRQmzZttHv3bp199tmaO3fucVdYjQhurt6tbqjfNx8Nqul7+33dBJxE+4aSfDndOA9xlaPTiV8EUw5PN85iW91BOGX4hVJpcDr56dACHbLn+roZp42mnaJ0zfsX+7oZx/XjLWlat26dT9vgk3Sf2WzW4sWLtWHDBrVu3VpNmjTRhAkTdOjQId1///26+uqrddFFFyk8PFw333yzSktL1bhxYy1evFgvv/yyGjdurBdeeEGLFy9WkyZN6ny99u3ba86cObr77rvVpEkTLVq0SIsWLVJgYOCf3pfZs2crICBAHTp0UExMjF599VVJUlpamgYNGiSr1arevXvrzjvv/EOXhwEAAAAAANV8UoGB2lGBcfqhAuP0QgXG6YcKjNMLFRinHyowTi9UYJxeqMA4uajAODFcnxIAAAAAAB9yySSni/VQ6sI7BAAAAAAADI8EBgAAAAAAMDymkAAAAAAA4GMOmXzdBMOjAgMAAAAAABgeCQwAAAAAAGB4TCEBAAAAAMCHXJKcLqaQ1IUKDAAAAAAAYHgkMAAAAAAAgOGRwAAAAAAAAIbHGhgAAAAAAPiUSU4X9QV14R0CAAAAAACGRwIDAAAAAAAYHlNIAAAAAADwMae4jGpdqMAAAAAAAACGRwIDAAAAAAAYHlNIAAAAAADwIZdLcriYQlIXKjAAAAAAAIDhkcAAAAAAAACGxxQSAAAAAAB8zOmivqAuvEMAAAAAAMDwSGAAAAAAAADDYwoJAAAAAAA+5JJJTq5CUicqMAAAAAAAgOGRwAAAAAAAAIZHAgMAAAAAABgea2AAAAAAAOBjTrEGRl2owAAAAAAAAIZHAgMAAAAAABgeU0gAAAAAAPAhl8RlVE8AFRgAAAAAAMDwSGAAAAAAAADDYwoJAAAAAAA+5nRRX1AX3iEAAAAAAGB4JDAAAAAAAIDhMYUEAAAAAABfcpm4CskJoAIDAAAAAAAYHgkMAAAAAABgeEwhAQAAAADAh1ySnGIKSV2owAAAAAAAAIZHAgMAAAAAABgeU0gAAAAAAPAxrkJSNyowAAAAAACA4ZHAAAAAAAAAhkcCAwAAAAAAGB5rYAAAAAAA4EMusQbGiaACAwAAAAAAGB4JDAAAAAAAYHhMIQEAAAAAwMeYQlI3KjAAAAAAAIDhkcAAAAAAAACGxxQSI3HYpbyDvm4FTqL9I0J93QScRCN++M3XTcBJNr9LrK+bgJPJz+zrFgA4ntgYX7cAJ1MJXyVPJpdMTCE5AVRgAAAAAAAAwyOBAQAAAAAADI+6HwAAAAAAfMwpppDUhQoMAAAAAABgeCQwAAAAAACA4TGFBAAAAAAAX3KJq5CcACowAAAAAACA4ZHAAAAAAAAAhkcCAwAAAAAAGB5rYAAAAAAA4EMusQbGiaACAwAAAAAAGB4JDAAAAAAAYHhMIQEAAAAAwMeYQlI3KjAAAAAAAIDhkcAAAAAAAACGxxQSAAAAAAB8yCUTU0hOABUYAAAAAADA8EhgAAAAAAAAw2MKCQAAAAAAPuZiCkmdqMAAAAAAAACGRwIDAAAAAAAYHlNIAAAAAADwMaeYQlIXKjAAAAAAAIDhkcAAAAAAAACGRwIDAAAAAAD8afn5+Ro5cqQsFosSEhI0d+7cY8b++uuvGjBggKxWq5o2barXXnutzu2zBgYAAAAAAD7kcknO0+AyqhMnTlRgYKD27dunDRs2aOjQoerWrZs6d+7sEXfgwAFdcskleuWVV3TllVeqoqJCu3fvrnP7VGAAAAAAAIA/xWazad68eXrmmWdktVrVr18/DR8+XLNnz/aK/c9//qOLL75Y1113nYKCghQWFqaOHTvW+RokMAAAAAAAwHHl5uaqZ8+eVbfp06d7PJ6amip/f3+1a9eu6r5u3bpp8+bNXttavXq1oqKi1KdPH8XExGjYsGHKysqqsw1MIQEAAAAAwMdcBp9CEh0drXXr1h3z8eLiYoWHh3vcFxERoaKiIq/Y3bt369dff9XSpUvVpUsXPfjggxozZox+/PHH47aBBAYAAAAAAPhTrFarCgsLPe4rLCxUWFiYV2xISIhGjhypXr16SZKefPJJNWnSRIcOHVJERMQxX4MpJAAAAAAA4E9p166d7Ha70tLSqu7buHGj1wKektS1a1eZTNUVJzX/fTwkMAAAAAAA8CmTnC5j3+pisVg0atQoPfHEE7LZbPrxxx+1cOFCjRs3ziv2pptu0oIFC7RhwwZVVlbqmWeeUb9+/Y5bfSGRwAAAAAAAACfB1KlTVVpaqpiYGI0ZM0bTpk1T586dtXLlSlmt1qq4gQMHavLkyRo6dKhiYmK0fft2zZ07t87tswYGAAAAAAD406KiovTZZ5953d+/f38VFxd73HfHHXfojjvu+EPbJ4EBAAAAAICPGf0qJEbAFBIAAAAAAGB4JDAAAAAAAIDhMYUEAAAAAAAfckkndKWPvzoqMAAAAAAAgOGRwAAAAAAAAIbHFBIAAAAAAHzJJblcvm6E8VGBAQAAAAAADI8EBgAAAAAAMDwSGAAAAAAAwPBYAwMAAAAAAB9zytiXUTVC66jAAAAAAAAAhkcCAwAAAAAAGB5TSAAAAAAA8CGXJJfLCJM0js0IraMCAwAAAAAAGB4JDAAAAAAAYHhMIQEAAAAAwKdMchp8CokRqh+M0AYAAAAAAIDjIoEBAAAAAAAMjykk/0+tWrXSjBkzNGjQIF83xRCs4ZX629Pb1L13vgoLAjTrtTZakdy0lkiXbrovXRePypEkfTU/VjNfSdSRNW2Tf/tWZSV+ch3++/svY/TapA4NtBc4whpeqXuf2KzuvQ+osCBQs15vq++WNK8l0qWb7knTRSOyJUlffxanmf9tqyP96efn0nW3b9fgy3MUEmrXnl2heuTWnrIVBzTczkCSVFFg0i+PhWvfqkAFRTrV+f5itbys3Cvuh1sjdOCX6v5xVpoU1sqhwZ/nS5K+vLCxyvL8ZDK7JEmNz7Sr/9sFDbIPqGaNsOu+FzPVY0ChDuX7a+a/47RiYVQtkS6NfyRbl1xzQJK05MMmeuf5OEkmxbUu04RHd6tjD5vMZpdSN1o07cl47U4PbtB9gZs1vFJ/e2qLuvfOU+HBQM36b5JWfNmslkiXbvrbdl088vDn6IJYzXw1STWPu2Pv2KHBI3IUYnFoz64QPTyhh2xFHHcbkjXCrvv+naEe/Q/p0EF/zXyhhVZ83qSWSJfGP7Rbl4zeL0la8lGM3vl3C7nHaKkmPLJLHbsXu8foJoumPZWg3ekhDbovcLOGletv969T9x57VVgYpFlvd9GKbxO84rp2268xYzcrqW2BiosCdNO4yzweH3fDb+rdN0fxLQv14fsd9f7sMxpqF3AKcLl83QLjI4GBk+LOR1Nlr/TTtef3VWKHYj31xialp1iVtcPiETfkqhz1viBXE6/sJblMem76Bu3bHazkT+KqYiZe2Ut7doU29C6ghjsf3iq73aTrBp2vxPZFmvTaemWkhikr3eoRd8kVu3Xu+ft11zW9JZf07LRftDc7RF/Oi5ckXXf7dnXsVqAHbjxbuXuCldCmWBUVFH75wvpnwuQX4NJlKw+oYJu/frw9QpHt7Qpv6/CI6zf9kMff310fqZhzKjzu6zO1QE37VNZ7m3Fsdz2bJXulSdd076o2nUv19Mw0ZWwNUWaq5xebS687oD4XFejOizvJ5ZImz03T3l1BSp4TLUu4Q6uXRurlB1qp1GbWdffm6MkZ23XLQE6mfeHOf25zf45eMMD9Ofr6eqWnWpW1w/O4O+TKbPfn6FXnSJKe+9967csOUfInLSRJY+/YoY5nHtID1/fS/j3BSkiyqaKc425Du+vpne4x2usstelUoqffTlXG1lBlpnme31w6Jld9LjqoOy/t4h6js7e5x+jcGPcY/aaRXv5Hokptfrrunhw9OT1Ntwzq6qO9+mu78+5fZbf76dqrhyuxTYGeeu4HpadHKiszwiOurMyspV+11nffOjR6zFav7eTkhOmdt7pqyGU7GqrpwGnlL/mJZrfbfd2E00pQiEN9B+dq9pTWKiv115b1kVqzookGDtvrFXvh8L2a/15L5e0LVt7+IM1/N16DLveOg+8EBdvV58J9mj01yd2fGxppzffRGjg0xyt20GU5WjCnlfL2BysvN1gLZido0HB3nDWsUpdfm6X/PtNZuXtCJJmUuSNMlRXmBt4j2Euk7KVB6nSPTf4Wl5r0qFTsBRXK/Pz4v7Tbsv104JcAtRxR1kAtxYkICnGo75ACvfdSrMpKzNr8s1Wrv4nUwFF5XrGDrsjTvLea6sDeQOXtC9T86U01+Ep3XOpGi776qImKD/nLYTdp/oymik8qV1gkn5ENLSjEob6D9mv2G4nVn6PfRWvgZXu8Yi8ctsf9Obo/WHn7gzV/dkvP4+7YXXrtqY7af+S4u93KcbeBBYU41PeSg3rvP3HuMbouTKuXRWrgyNrG6AHNm9GseozOaK7BV+ZKklI3WvXVx9GHx6if5r/dTPFtyhQWSQK5oQUF29W3X7ZmzzpDZWUB2rI5Wmt+itXAQZlesakpjbX8m1bau8day5akZUtbad3PzVVawu/IwP+HTxIYv/76q8466yyFhYXpqquu0ujRo/XYY49JkhYvXqwzzzxTkZGR6tOnjzZt2lT1vK1bt+r8889XZGSkOnfurM8//7zqsby8PA0bNkzh4eHq1auXHnvsMfXr16/qcZPJpDfeeENt27ZV27ZtJUn33nuv4uPjFR4erh49emjlypVV8ZMmTdKVV16p0aNHKywsTN27d9fGjRs99mPDhg3q2rWrIiIiNHr0aJWVuU/yzzjjDC1atKgqrrKyUk2aNNH69etP4rtoHHEJJXLYTcrOrP5VIT3FqoQ2Nq/YhDY2ZaRUV2VkpFjVMskz7oVZ6zXn2x/16Cu/KSa2tP4ajlod6c+crBr9lBqmlm2KvWJbJtqUkVr9AZ2eGqaWie64hLZFcjhM6nfhPs35eoWmL/hBQ6/Oqv8dgJfinf7yM0thraurLSI6VKpw+/FPnrI+C1aTHpWyxDk97v/5wQgt6tNEK2+OVME2TsAaWovEcjkcUnZGdQIqfUuIEtp5J5oS2pUqfUuNY/PWECW0q/242uWcYuXv91dRAX3a0OISbIc/R6uPu+kpYcf4HC1WRmpY1d8ZKWFqeTiuVdtiOewm9Ru8X3OWfa+3Pl+ly0bvqv8dgIcWrcvkcJiUnVFdEZW+NbTWsZfQtlTpW48ao22PMUbPLlL+/gAVFTAdqKHFxbnPabKzq8de+o4IJSQcOs6zgD/O5TIZ+mYEDZ7AqKio0MiRI3XjjTcqPz9fY8aM0YIFCyRJ69ev1/jx4/Xmm28qLy9Pt912m4YPH67y8nJVVlZq2LBhuuiii7R//369/vrruu6665SSkiJJmjhxoiwWi/bu3at3331X7777rtdrf/bZZ1qzZo22bNkiSerVq5c2bNig/Px8XXvttbrqqquqkhCStHDhQl111VVVj48YMUKVldVZ748//lhLlixRRkaGNm3apFmzZkmSrr/+es2ZM6cqLjk5Wc2bN9dZZ5110t9PIwgJdajE5nnCayv2V4jF4RUbHOqQrdjfIy7U4pDknvD14I1n6aaLe+u24WcrPzdIk6b8Jj+z02s7qD8hoQ6V1tafobX1p91jPYuSGv3ZJKZc1jC74hJKNH5Yf01+sJuuu22HzjzH+xco1C97iUn+Vs9xFGB1yW47/gdR5ufBShjp+aW414uFGvLNAQ1ZdkDR51Toh1siVFFojA+0v4pgi0MlRZ6/qNuKzIfH3tGxTtlqxNoKzQq1OnXkmHtEk2YVmvhslqY/HV8vbcbxhYQc43M01LsaJjjUIVtR7Z+jTZqWyxp++Lh7aV8990AXXXd7us46l+NuQwq2OFVSfKJj1CFbYY0xWuR/7DH69E5Nf7ZlvbQZxxcSYldJiWfiyGYLqHWMAqhfDZ7AWL16tex2u+655x4FBARo1KhROvvssyVJ06dP12233aZzzjlHZrNZN9xwg4KCgrR69WqtXr1axcXFevjhhxUYGKiBAwfqsssu0wcffCCHw6F58+bpqaeeUmhoqDp16qQbbrjB67UfeeQRRUVFKSTEnREfO3asGjduLH9/fz3wwAMqLy+vSohIUo8ePXTllVcqICBA999/v8rKyrR69eqqx++55x7FxsYqKipKw4YN04YNG6q2m5ycrMLCQknS7NmzNW7cuFrfj+nTp6tnz57q2bOnKpynZpl2aYlZoRbPA3ioxa5Sm3fJalmJ5wd4qNWhEptZRxYf+/2XSNntfrIVBejNf7VVs7hStUwsqdf2w1NpiVkhtfVnSW396e/R9zX788ic67lvJaqi3KydaWH6/qtm6tUvt17bD2/+oS7Ziz0P95U2k/wtx14p6sAvASo74KcWF3ku9Nmke6XMwZJ/iNTh1hIFhLk8Fv1E/SuzmRUa5vlFKNTqPDz2jo71U6i1xjE3zKGSYj8dOeZKUkRUpZ57P02L34vWis9rWwgU9a20tJbPUau91hLzshKzQq01jrsWe9Vxt/zwcfeDN1tXHXe/+6qpevY7UK/th6ejx51U8/Px6FjP8RxqPcYYfW+bFs9pqhWLGtdbu3FspaX+Cg31nLrjPjeiYg1oaA2ewMjJyVFcXJxMpuoDc3y8+xefzMxMvfzyy4qMjKy67dq1Szk5OcrJyVF8fLz8/KqbnJCQoOzsbOXm5sput1dtp+Y2azr6vpdeekkdO3ZURESEIiMjdejQIR04cKDWeD8/P7Vo0UI5OdXrADRrVr06eGhoqIqL3aXzsbGx6tu3r+bNm6eCggJ9+eWXuu6662p9P2699VatW7dO69atU6Dfqbnye3ZmqMz+LsW2rE40JLYvVuZRC3hKUuYOi1q3r56K0LpdsbK2e8cd4ZKp5mc4GkBVf8ZXly63blfktZCcJGWlW9S6XZFn3OGFPjPSDpdZ1viObJTSs78aayu7nA6paGf1yfOhbf4KTzr2L0eZnwUrblD5cZMckmQy6egfClHPdqcHyWyWYltVJ70TO5UoM9X7MyQzNUSJnWocmzuWeiz0aY2w67k5aVq9NEIfTqntSkNoCNmZFu/P0XZFx/gctap1uxqfo+2LqhbMPjKlr+axluNuw9udESyz2eU5RjuWeC2yK0mZaSFK7FjiGZdWY4yG2/Xceyla/U0jffhGbP02HMeUnR3m7tO46nOexMQCZR61gCeA+tfgCYzmzZsrOztbrhrXiNm1yz0/Mz4+Xo8++qgKCgqqbiUlJRozZoxiY2O1a9cuOZ3VZdBZWVmKi4tTdHS0/P39tXv3bq9t1lQzabJy5Uq98MIL+vjjj3Xw4EEVFBQoIiKi1nZJktPp1O7duxUbe2IfHjfccIPmzJmjTz75RL1791ZcXFzdTzpFlZeateqbaI2dmKGgEIc6nVmgcy84oOWLvC//tvzzZhp5/S41jilXVHS5Rt2QpW8WuuNatrEpsX2R/PxcCg6xa8LftytvX6B2pXNFkoZUXuavVcubauwdOxQUbFfHbgd17nm5Wv6F9//9ZYtjNXJsphpHlymqSZlGjt2pbz53x+3dHarff43U6Jsz5B/gVHzrYg24eI/Wroxu6F36y/MPleIGlWvL6xbZS6QDvwYoZ3mQEobXXvXlKJN2Lwnymj5SkuOnA78GyFkhOcqllLdDVX7QT43PYkG5hlReataPSyJ1/QM57mNuz2L1Hlyg5fO9f5n9Zn5jjZqwX42bViiqaYWuuHWfln7qjgu1OvTc7DRtWWfVzH+1aOjdQA3lpWatWhajsXfuqP4cPT9Xyxd7J5WWL26ukeMy1TimzP05en2W53H3l0iNvuXIcdem8y7Zq7Xfc9xtSOWlZv34VSNdf99ud3/2KFLvQQVavqC2MdpEo27e6x6jMRW6YsJeLf3U3V+hVoeeey9FW36xauYLTO/ypfIyf636IU5jb/hdQcF2dep8QOf2ydHyb7wvo2oyuRQQ4JC/v1Mmkw7/u7rKxmx2KiDAIT8/yWx2Hf4306XhvoSqr9e4YA2MWvTu3Vtms1lTpkyR3W7XwoULtXbtWknSLbfcov/9739as2aNXC6XbDabvvjiCxUVFemcc85RaGioXnjhBVVWVmrFihVatGiRrrnmGpnNZo0aNUqTJk1SSUmJtm3bpvfee++47SgqKpK/v7+io6Nlt9v19NNPV035OOKXX37R/PnzZbfb9eqrryooKEjnnnvuCe3niBEj9Ouvv+q1117T9ddf//97s04hbzzbTkHBTn2w4gc9+MIWvfFse2XtsKhz9wLNW/N9VVzyJ7Fau6Kxps5fq2kL1urn7xsr+RP3iVejxhV6+MXN+vSn7/XOl6vVNK5Mk+7qKof9L3mxHJ+a+nxHBQY5NHfZCj04+Te98XxHZaVb1fmsg/r0h2VVcV/Oa6E130frjY9Xaeonq/TzD9H6cl71F6EXHumqmOal+vDbbzXptfWaPS1JG9dS/uoLZz1RJEe5SYv7RWvt38N11pNFCm/r0IF1AfqsRxOP2JxlQQoMcyn6HM/EhN1m0vqnwvT5udFKPq+J9v0QqH7TCxTUiBKMhjbl0ZYKDHbqo/Wb9PDr6Xr90QRlpoao89lFWrC1esHo5DlNtGZZhP63dIveXLpFa5dHKHmOu7/7XFKg9meW6KKr87Rg6/qqW3RsxbFeFvXojec6KCjIqQ++/U4P/us3vfFcR2XtcB935/30bVVc8idxWvtdtKZ+ulrT5v2kn79v4nEp8n8/fIZimpfpo++/06QpGzT7jTbauJapQQ1tyuOt3GN03Xo9/NoOvf54gjLTQtW5V5EW/L6uKi55brTWLIvU/5b8pje/+k1rv41Q8lx3AqPPRflq382mi648oAW/r6u6RceWH+tlUY/eeL27ggId+uDjhXrwn6v1xmvdlZUZoc5n5Gre5/Or4s7okquFyfP09OSVimlaooXJ8/Tsv6rPhe+5f50WJs/T+QOzdM11W7UweV6tVzMBUDuTq2bJQQNZt26dJkyYoO3bt2vIkCFyOBw666yz9Pjjj2vJkiV6/PHHlZaWppCQEPXr10/vvPOOwsLCtHnzZt15553asGGD4uLi9Nxzz2nkyJGSpNzcXN14441auXKl2rdvr4EDB2rdunVatsz9ZctkMiktLU1JSUmSJIfDoVtuuUWffvqpLBaL7rvvPk2dOlUzZszQoEGDNGnSJP3+++8ym81KTk5WUlKS3n77bXXv3l2S1KpVq6pYyX3Vku3bt3ss3jlhwgR98MEH2rdvn6zW2i+lVFNEQLR6R446qe81fMsUwNoAp5PLv/3N103ASTa/CyXZpxO/Ro183QScZM6jflzCqc0vqZWvm4CT6Kftb+tQqfflnvH/E5IUq6T/3OLrZhxX0NNfaN26dXUH1iOfrDzTs2fPqgUvJemcc87RsGHDJEmXXHKJLrnkklqf17lzZ3333Xe1PhYdHa0vvvii6u+HHnpILVpU/xJ8dJ7GbDbrnXfe0TvvvFN134MPPugRExwc7JGQqGnnzp0ef0+aNMkrpmXLlho5cuQJJS8AAAAAAH9dToNM0zAyn9Tmf/fdd9q7d6/sdrveffddbdq06ZhJixO1bds2bdq0SS6XS2vXrtXbb79dVZ3hC/n5+Xr77bd16623+qwNAAAAAACcLnySwEhJSVG3bt0UGRmpl19+WZ9++qmaN/9zq58XFRVp1KhRslgsGj16tB544AFdfvnlJ6nFf8xbb72l+Ph4DRkyRAMGDPBJGwAAAAAAOJ34ZA0M1I41ME4/rIFxemENjNMPa2CcXlgD4/TDGhinF9bAOL2wBsbJFZIUq9YvGbt6P/TZxT5fA4PLOwAAAAAAAMMjgQEAAAAAAAzPJ1chAQAAAAAA1VxchaROVGAAAAAAAADDI4EBAAAAAAAMjykkAAAAAAD4kEsmppCcACowAAAAAACA4ZHAAAAAAAAAhscUEgAAAAAAfMzl6wacAqjAAAAAAAAAhkcCAwAAAAAAGB4JDAAAAAAAYHisgQEAAAAAgC+5xGVUTwAVGAAAAAAAwPBIYAAAAAAAAMNjCgkAAAAAAL7GdVTrRAUGAAAAAAAwPBIYAAAAAADA8JhCAgAAAACAj3EVkrpRgQEAAAAAAAyPBAYAAAAAADA8ppAAAAAAAOBjLq5CUicqMAAAAAAAgOGRwAAAAAAAAIbHFBIAAAAAAHzIJa5CciKowAAAAAAAAIZHAgMAAAAAABgeCQwAAAAAAGB4rIEBAAAAAIAvuSSxBkadqMAAAAAAAACGRwIDAAAAAAAYHlNIAAAAAADwMZfL1y0wPiowAAAAAACA4ZHAAAAAAAAAhscUEgAAAAAAfI0pJHWiAgMAAAAAABgeCQwAAAAAAGB4TCEBAAAAAMCnTHK5TL5uhOFRgQEAAAAAAAyPBAYAAAAAADA8ppAAAAAAAOBrXIWkTlRgAAAAAAAAwyOBAQAAAAAADI8EBgAAAAAAMDzWwAAAAAAAwJdc4jKqJ4AKDAAAAAAAYHgkMAAAAAAAgOExhQQAAAAAAF/jMqp1IoFhJE6XXBWVvm4FTiJH/kFfNwEn0bzOzX3dBJxkX+1e5+sm4CS6OPZMXzcBJ5k5PNzXTcBJ5Nic4usm4CRyucp93QT8BTGFBAAAAAAAGB4JDAAAAAAAfM5k8Fvd8vPzNXLkSFksFiUkJGju3Lm1xk2aNEkBAQGyWq1Vt/T09Dq3zxQSAAAAAADwp02cOFGBgYHat2+fNmzYoKFDh6pbt27q3LmzV+zo0aM1Z86cP7R9KjAAAAAAAMCfYrPZNG/ePD3zzDOyWq3q16+fhg8frtmzZ5+01yCBAQAAAACAr7mMfcvNzVXPnj2rbtOnT/dofmpqqvz9/dWuXbuq+7p166bNmzfXuruLFi1SVFSUOnfurGnTpp3QW8QUEgAAAAAAcFzR0dFat+7YV3ArLi5W+FFXj4qIiFBRUZFX7NVXX61bb71VTZs21Zo1a3TFFVcoMjJSY8aMOW4bqMAAAAAAAAB/itVqVWFhocd9hYWFCgsL84rt1KmTYmNjZTab1adPH91777369NNP63wNEhgAAAAAAPiaAaaJHPdWh3bt2slutystLa3qvo0bN9a6gOfRTCaTXK66X4QEBgAAAAAA+FMsFotGjRqlJ554QjabTT/++KMWLlyocePGecUuXLhQBw8elMvl0tq1a/Xf//5Xl19+eZ2vQQIDAAAAAAD8aVOnTlVpaaliYmI0ZswYTZs2TZ07d9bKlStltVqr4j788EMlJSUpLCxM119/vR566CHdcMMNdW6fRTwBAAAAAPAllySXydet+NOioqL02Wefed3fv39/FRcXV/39wQcf/L+2TwUGAAAAAAAwPBIYAAAAAADA8EhgAAAAAAAAw2MNDAAAAAAAfOwEriL6l0cFBgAAAAAAMDwSGAAAAAAAwPCYQgIAAAAAgK8xhaROVGAAAAAAAADDI4EBAAAAAAAMjykkAAAAAAD4msvk6xYYHhUYAAAAAADA8EhgAAAAAAAAw2MKCQAAAAAAPmbiKiR1ogIDAAAAAAAYHgkMAAAAAABgeEwhAQAAAADAl1yHbzguKjAAAAAAAIDhkcAAAAAAAACGRwIDAAAAAAAYHmtgAAAAAADgUybJZfJ1IwzvmAmMcePGyWSq+w187733TmqDAAAAAAAAjnbMBEZSUlJDtgMAAAAAAOCYjpnAePLJJxuyHQAAAAAA/HVxGdU6nfAinkuXLtXNN9+sYcOGSZLWrVun5cuX11vDAAAAAAAAjjihBMbrr7+uO+64Q23bttX3338vSQoJCdFjjz1Wr40DAAAAAACQTjCB8eqrr+qbb77Rww8/LD8/91M6dOiglJSUem0cAAAAAAB/CS6D3wzghBIYRUVFio+Pl6SqK5NUVlYqMDCw/loGAAAAAABw2AklMAYMGKB//etfHvf997//1QUXXFAvjQIAAAAAAKjpmFchqen111/XsGHD9NZbb6moqEjt27dXWFiYFi9eXN/tAwAAAADg9GeQaRpGdkIJjObNm+vnn3/Wzz//rMzMTMXHx+vss8+uWg8DAAAAAACgPp1wBsLpdKqyslKS5HA45HKRHgIAAAAAAA3jhCowNm3apBEjRqi8vFxxcXHavXu3goODtWDBAnXr1q2+2wgAAAAAwOnLJcll8nUrDO+EKjDGjx+viRMnavfu3Vq7dq2ys7N11113afz48fXdPgAAAAAAgBNLYKSmpupvf/tb1SVUTSaT7r33XqWlpdVr4wAAAAAAAKQTTGBceuml+vzzzz3uW7RokYYOHVovjQIAAAAA4K/E5DL2zQiOuQbGuHHjqiouHA6HrrnmGvXo0UPx8fHatWuXfvnlF11++eUN1lAAAAAAAPDXdcwERlJSksffZ5xxRtW/O3XqpIsvvrj+WgUAAAAAAFDDMRMYTz75ZEO2AwAAAAAA4JhO6DKqklRRUaGUlBQdOHBALlf1BJiBAwfWS8MAAAAAAPjLMMg6E0Z2QgmMH374QVdddZXKy8tVWFio8PBwFRUVKT4+Xunp6fXdRgAAAAAA8Bd3Qlchue+++/Tggw8qPz9fYWFhys/P1+OPP64777yzvtsHAAAAAABwYgmM1NRU3XvvvR73Pfzww3rllVfqpVEAAAAAAAA1nVACIyIiQoWFhZKk5s2ba8uWLTp48KCKi4vrtXE4dVgjKvX4lC1asH6VZi3/Wedftv8YkS6N/3uGPlq9Wh+tXq3xf89QbZO9Lrx8n75M+UEXX7m3XtuN2oVF2vXEjAwtTNuk99Zs1gUjDh4j0qWb/5mjT37/TZ/8/ptu/meOavbnvf/epRnfb9WXuzZo8NV5DdJ21M7dpzu0MHWD3lv9uy4YkX+MSJdu/me2Pvltoz75baNu/me2PPs0UzO+26wvs37V4KvoU18pPGjWU+NbaXibLhrXq5OWz4+sNa6i3KTXHmqh0V0764pOZ+iJ61vrwJ6Aqsf37grUY2MTdUXHM3RNt86a8s84OewNtBPwEBZp1xNvZ2jh9t/03totumDkcY67j+bok99/1ye//66bH/U87iZ2LtWUJalauGOTpixJVWLn0gZpPzxZIyr12OtbNP/XHzVr2drjnhfd9ECGPlz9kz5c/ZNueqD286KBl+9T8raVnBf5EGMUMIYTSmCMGjVKycnJkqTx48frggsuUI8ePXTllVfWa+Pqw6RJkzR27FhJUlZWlqxWqxwOx3Gfs3LlSrVv374hmnfKmvjEDlVW+mlM33P04j/a6a5JO9QyyeYVN2T0XvUelK+Jl5+lO4efpXMuyNel13h+GFvD7Rp9+27tTA1tqObjKBOf2y17pUmju3XWv+9K0N3P71JCO+8P2EvH5qn3JYd0x+D2un1Qe50z+JCGjqv+Upu+JVhT/tlC238LacjmoxYTn90le4VJo8/son/f3Up3T86qvU+vO6DeFxfojos66vbBHXXOoEMaOvZA1ePpW0I15Z/x2v4b49OX3vhnC/kHuPTRps16aEqmXn8kXjtTgr3iPpsRra2/WPS/ZSn64NfNskY6NPWxuKrHpzzSQpFN7Ppg/WZNXZqi31ZbtWhWk4bcFRw2cXK2+7jbtZP+fVdL3f38biW0K/OKu3RsvnpfUqg7Brc7fNwtrDru+gc4NWlmhpbNa6QrO56hpZ800qSZGfIPcDb07vzl3fnEDtkrTbq237l64R/tNfHJ7cc5L8rTxMu7a+Lw7jrngjxdOvro86JKjb5tF+dFPsYYBYzhhBIYr776qq699lpJ0t///nd9+umneuutt/TWW2/Va+PqW8uWLVVcXCyz2XzcuP79+yslJaWBWnXqCQpxqO9FeZr9WoLKSsza/EuEVi+P0oWX53rFDhqxX/PfidOBfUHK2x+keTPjNHik568SNz6wUwtnx6rw4AlfJAcnUVCIQ/0uPaR3X2zm7s+frfppaYQuvML7l4bBV+Vr3pvROrAnUHl7AzXvzRgNvrr6l/1F70Zrww9hqig/oUMN6om7Twv07ouxNfo0Uhde4V2FMfiqfM2b3rS6T6fHeFTPLHo3Wht+DFdFuakhdwE1lJX46YfkCN3w4F6FWJw64xybel90SMs+beQVu3dXoHqeV6hG0XYFBrt03vACZdZIdOzNCtSAYQcVGOxSVIxdPc8vUmaqdyIE9avquPtCc/cYXWvVT19H6MIraxmjV+dr3v+OHHcDNO/NaA2+2n187trHJrPZpQVvNVFlhZ8Wvh0tk0k6sy8Vsw0pKMShvoMPaPZ/3edFW36N0JrljTVwuHcVxoUj9mn+zDjlHT4vmj+zhQaN3OcRc+P9O/X57FgVFgR4PR8NgzGKhmJyGftmBP+vbxX9+/fXkCFD5OfHlxJILVqVyuEwKXtn9a/sGdssSqjll4aEtiVK32bxiGvZtqTq73ZditT2jGIlf9CsfhuNY2qRWC6HQ8pOr/4Sk7E5RAntvX9lSGhXpvQt1f2eviWk1l8j4FtVfZpRo0+3hNRagZHQrpQ+NbjdO4JkNkst2pRX3de6U6lHYuKIS8bkafPPFuXt9VdZiUnL5zdSz4FFVY+PvCVXKxY2UlmJSQf2BOjnb8PU84Iir+2gfrVoc+S4G1R1X8aWYCW0L/eKdR93q/s6vcbxOaFdmTK2hkiqTjC6t8MYbkhxVedF1RUT6SkWJdQ43zkiIalEGTXPi1KOcV70YfP6bTSOizEKGMcxMxD9+/fXgAED6rzVl1atWunFF19U165dZbFYdPPNN2vfvn0aMmSIwsLCNGjQIB086M5mrl69Wn369FFkZKS6deumFStWVG0nIyND5513nsLCwjR48GAdOFBdCr1z506ZTCbZ7e4Jv/n5+brpppsUGxurRo0aacSIEZKkFStWqEWLFh5te+mll9S1a1dFRERo9OjRKiurPvAsXrxYZ555piIjI9WnTx9t2rSp3t4nIwgOdaik2LOKxVbkrxCL99Sc4FCHbDVibUX+CrU4JLnk5+fSxEk7NO3pRLlc/LrrKyEWp0qKju5Pc+39aXGqpNDsERdqdYqLWBvLMfvU6l2ySp8aX2mJn0LDPMejJdyhUpt3NWFc63JFx1bq2u5naGT7rtqVFqTr7qsuT+9ybrEyU4I1sn1XXdejs9p1K1WfSw7V+z7AU0hoLWO08DjH3aLax2iIxSnbCY511J+QWs+LjtGfoQ7ZivxrxB11XvTkdk19pg3nRT7GGAWM45g1+hMmTGjIdtRq3rx5Wrp0qex2u8466yytX79eb7/9tjp27KhLL71U//3vfzVhwgQNHTpUs2fP1iWXXKJly5bpiiuu0LZt2xQdHa1rr71WvXv31tdff601a9Zo6NChuvzyy2t9vXHjxslqtWrz5s2yWq1atWrVMdv28ccfa8mSJQoODlbfvn01a9Ys3X777Vq/fr3Gjx+vRYsWqWfPnpozZ46GDx+ulJQUBQUFeW1n+vTpmj59uiSpwnVqZl/LSswKtXoewEOt9lpPpstKzIc/mI/EOVRiM0sy6bJrc7QzJVTbNobXd5NxHKU27y9HoWG1fzkqOyo21OpQSbGfav6yAN+rtU+tDpUWe+ewvfvUSZ8aTG0n0iXH+HI05Z8tVFlh0iebf1NwqFOfTI3RY2MT9d8v0uR0So9e20ZDxubplc/TVGbz08v3t9TbzzbXhMf3NNTuQLUnpY573K3xZafmcbfU5uf9eRzmrHWso/6U1npedIz+PCo21GqvOi8aem22MlIsSuG8yOcYo2gwJCvrdMwExg033NCQ7ajV3XffraZNm0pyV4TExMTorLPOkiSNHDlSy5Yt05w5c3TppZfq0ksvlSQNHjxYPXv2VHJysi644AL9/PPP+uabbxQUFKQBAwZo2LBhtb7Wnj179OWXXyovL0+NGrnnEZ933nnHbNs999yj2NhYSdKwYcO0YcMGSe6ExG233aZzzjlHkvt9nDx5slavXl3r9m699VbdeuutkqQI86m5cNrunSEym12KTShVTqa79Lx1B5syt1u8YjPTQpXYwabU38IkSYkdipWV5i6x7Na7QF16HVLPAWskSWERdrXpZFNiR5umPdOmgfYGu9Pd5emxrcuVk+FOuiUeozw9MzVYiZ3KlLLBUh3H/HnDqe7TMuUcnkbi7ivvxVUzU0OU2Km0Rp+W0KcGU13KHKi4xApJh6f61FKCvGNziG58aI/CG7lPmC8ff0Dvvdhch/LcJ937swN1+U25CgxyKTDIoYtH52vWC81IYDSwI9OCPI+7ZcpM8f7hw33cLVXKBvdnZ2Ln6uNzZmqwrrgtV+6KKfdJcOuOpVo0s3GD7Afcsms5L0psb1NmmvcinJnbQ9W6Q3HVeVHr9raq86Izzz2kM3odUs8BqyUdPi/qWKzEjsWa9kxSA+0NJMYoYCSGTvcdSV5IUkhIiNffxcXFyszM1CeffKLIyMiq2w8//KA9e/YoJydHjRo1ksVS/UU6ISGh1tfatWuXoqKiqpIXdWnWrHqNhtDQ0KpLymZmZurll1/2aM+uXbuUk5Pzh/b9VFJeataqpY017p5MBYU41Kl7oXpfmK9lC6O9YpctjNHIm7LVOKZcUTHlGnVTjpYuiJEk/efhdrrt0h66a8RZumvEWUr73ar3p7TUu6/U3meoH+WlZv34ZYSu//sed3/2LHYvEDjPe2x882mURt26X42bVSiqaaWuvC1XSz+OqnrcP8CpgCCnTCbJ31+H/81UhIbm7tNIXf9AzT4t0LJ5UV6x33wapVG37DvcpxW68tb9Wvpx9YmVR58GuOhTHwgOdarvkEN678XmKivx0+a1Fv30VYQuvNJ7od123Ur0zadRshX6yV4pLXq3sRo3q1BEY4ciGjvUrGW5Fr/bRA67VHzIrKWfNFLrjqdmNeCprOq4+4+97jHay6beFx/Ssk9rGaOfNNKo23LVuFlljeOu+/i8aZVFTqc04uYDCgh0avhN7mmzG360Nuj+/NUdOS8ae+S86KxDOvfCPC3/PMYrdvlnTTXyxprnRdn6ZoH7fPc/j7TT7UN76O6R3XX3yO5K22zV3Dda6t1XWjXwHoExChiHoRMYJyI+Pl7jxo1TQUFB1c1ms+nhhx9W8+bNdfDgQdls1YtJZmVlHXM7+fn5Kigo+NPtefTRRz3aU1JSojFjxvyp7RrdlKfaKDDYqQ9XrdFDL6doyqQ2ytpuUecehzT/1+qpOMkfNtOab6M0bdF6/W/Req39rpGSP3Qng2xF/jp4ILDqZq80qaTYrJJirkbS0Kb8s4WCgp36eNNmPTLVfYnGzNQQnXF2sT5LrV7T5YvZjbV6aYTe/CZF05dt05pl4fpidvWX3clzd2hx+iZ17mXT317cpcXpm9TlXFba9oUpj8a7+3Tjb3rkjQy9/s+W1X2asqEq7os5TbT6mwi9+c1WTV+2VWuWh+uLOdXVYZPnbtfiHRvcffpClhbv2ECf+sBdz+9WeZmfru7SWc/f6b7Ucav2ZfptjUWXJ3Wpirv1iRwFBjl1U9+OurpLF/28LFxPvL2z6vEnZuzUuhXhurrLGbqpT0eZA1y6/alsH+wRpjwS5x6jv205fNxtoczUYPcYTfutKs593A3Xm8tSNH15isdx117pp6fGt9Kgqw5q3tbfddE1+XpqfCvZK0/5071TzhtPJykoyKkPflytB19O0RtPJVWdF8375cequOSPmmntt4019fNfNe3zX/Xzd1FK/uhY50V+Kin257zIRxijqHeuU+BmACaXy2WQpnhq1aqVZsyYoUGDBkmSxo4dq6SkJE2aNEmSNGPGDH344YeaOXOmevXqpXfffVeDBg1SZWWlVq9eraSkJLVo0ULnnnuu+vXrp8mTJ2vt2rW69NJLNXz4cM2ZM0c7d+5U69atVVlZKX9/fw0dOlQRERF64403ZLVa9dNPP2nAgAFasWKFxo4dq927d9fatkmTJmn79u2aM2eO1q1bp5EjR+rTTz/V2WefrZKSEq1YsUIDBgxQWFjYcfc5wtxE51qH19+bigbnLOaL3WnFxAnG6ear3b/4ugk4iS6OPdPXTcBJZg5n/YfTiaOw0NdNwEm0xrVMhS7vS8ni/ycoPl5xD9zn62YcV9ScuVq3bp1P23DKn43Hx8dr4cKFmjx5sqKjoxUfH68XX3xRTqd78Zy5c+dqzZo1ioqK0lNPPaXrr7/+mNuaPXu2AgIC1KFDB8XExOjVV1/9w+3p2bOn3nrrLd11111q1KiRkpKSNGvWrP/n3gEAAAAAAOkEKzDKy8v19NNP64MPPlBeXp4OHTqkr7/+Wqmpqbrrrrsaop1/CVRgnH6owDjNUIFx2qEC4/RCBcbphwqM0wsVGKcXKjBOLiowTswJnY3fd999+v333/X+++/LZHKvmNu5c2dNmzatXhsHAAAAAMBfgq/XuDgF1sA4oVWAFixYoO3bt8tiscjPz53ziIuLU3Y2C30BAAAAAID6d0IVGIGBgbLb7R735ebmqnFjrlkMAAAAAADq3wklMK666irdcMMNysjIkCTt2bNHd911l6655pp6bRwAAAAAAH8FJpexb0ZwQgmMyZMnq3Xr1urSpYsKCgrUtm1bxcbG6sknn6zv9gEAAAAAAJzYGhiBgYF65ZVX9Morryg3N1dNmjSpWswTAAAAAACgvp1QAiM9Pd3j76Kioqp/JyYmntwWAQAAAADwV2OQaRpGdkIJjKSkJJlMJrlc1e/okQoMh8NRPy0DAAAAAAA47IQSGE6n0+PvvXv36qmnnlL//v3rpVEAAAAAAAA1nVAC42jNmjXTq6++qnbt2unaa6892W0CAAAAAOCvhSkkdTqhq5DUJiUlRSUlJSezLQAAAAAAALU6oQqM/v37e1x1pKSkRJs3b9YTTzxRbw0DAAAAAAA44oQSGBMmTPD422KxqFu3bmrbtm29NAoAAAAAgL8Kk8t9w/HVmcBwOBxavny5pk+frqCgoIZoEwAAAAAAgIc618Awm836+uuv5ef3/14uAwAAAAAA4E85oazEfffdpyeffFKVlZX13R4AAAAAAAAvx01gfPDBB5Kk119/XS+++KLCwsIUHx+vli1bVt0AAAAAAMCf5DIZ+2YAx10D47bbbtOYMWM0Z86chmoPAAAAAACAl+MmMFwu9zKo5513XoM0BgAAAAAAoDbHTWA4HA59++23VYmM2gwcOPCkNwoAAAAAgL8ULqNap+MmMMrLy3XzzTcfM4FhMpmUnp5eLw0DAAAAAAA44rgJDIvFQoICAAAAAAD43HETGAAAAAAAoP6ZmEJSp+NeRvV4a18AAAAAAAA0lOMmMIqKihqqHQAAAAAAAMfEFBIAAAAAAHyNCRB1Om4FBgAAAAAAgBGQwAAAAAAAAIbHFBIAAAAAAHzJxVVITgQVGAAAAAAA4E/Lz8/XyJEjZbFYlJCQoLlz5x43vqKiQh07dlSLFi1OaPtUYAAAAAAAgD9t4sSJCgwM1L59+7RhwwYNHTpU3bp1U+fOnWuNf/HFFxUdHX3CV0ClAgMAAAAAAF9zGfxWB5vNpnnz5umZZ56R1WpVv379NHz4cM2ePbvW+IyMDM2ZM0ePPPLIib5DJDAAAAAAAMDx5ebmqmfPnlW36dOnezyempoqf39/tWvXruq+bt26afPmzbVu7+6779bkyZMVEhJywm1gCgkAAAAAADiu6OhorVu37piPFxcXKzw83OO+iIiIWqeHLFiwQA6HQyNHjtSKFStOuA0kMAAAAAAAwJ9itVpVWFjocV9hYaHCwsI87rPZbHrwwQeVnJz8h1+DBAYAAAAAAL52il9GtV27drLb7UpLS1Pbtm0lSRs3bvRawDMtLU07d+5U//79JbmvRHLo0CE1a9ZMq1evVqtWrY75GiQwAAAAAADAn2KxWDRq1Cg98cQTmjFjhjZs2KCFCxdq1apVHnFnnHGGdu3aVfX3qlWrdNddd+nXX39VdHT0cV+DRTwBAAAAAMCfNnXqVJWWliomJkZjxozRtGnT1LlzZ61cuVJWq1WS5O/vr2bNmlXdoqKi5Ofnp2bNmslsNh93+1RgAAAAAADgY6ZTfAqJJEVFRemzzz7zur9///4qLi6u9Tnnn3++du/efULbpwIDAAAAAAAYHgkMAAAAAABgeCQwAAAAAACA4ZHAAAAAAAAAhkcCAwAAAAAAGB5XIQEAAAAAwNdOg6uQ1DcqMAAAAAAAgOGRwAAAAAAAAIbHFBIAAAAAAHzJJZmYQlInKjAAAAAAAIDhkcAAAAAAAACGRwIDAAAAAAAYHmtgGInZLL/wMF+3AieRX1Skr5uAk8hVWOzrJuAkuzj2TF83ASdR9vzOvm4CTrKWN+7ydRNwEjku6O7rJuBk+vknX7fg9MMaGHWiAgMAAAAAABgeCQwAAAAAAGB4TCEBAAAAAMDXmEJSJyowAAAAAACA4ZHAAAAAAAAAhscUEgAAAAAAfMgkycQUkjpRgQEAAAAAAAyPBAYAAAAAADA8ppAAAAAAAOBrTCGpExUYAAAAAADA8EhgAAAAAAAAw2MKCQAAAAAAvuTiKiQnggoMAAAAAABgeCQwAAAAAACA4TGFBAAAAAAAX2MKSZ2owAAAAAAAAIZHAgMAAAAAABgeCQwAAAAAAGB4rIEBAAAAAICvsQZGnajAAAAAAAAAhkcCAwAAAAAAGB5TSAAAAAAA8DETU0jqRAUGAAAAAAAwPBIYAAAAAADA8JhCAgAAAACArzGFpE5UYAAAAAAAAMMjgQEAAAAAAAyPKSQAAAAAAPiSS0whOQFUYAAAAAAAAMMjgQEAAAAAAAyPKSQAAAAAAPiYiSkkdaICAwAAAAAAGB4JDAAAAAAAYHgkMAAAAAAAgOGxBgYAAAAAAL7GGhh1ogIDAAAAAAAYHgkMAAAAAABgeEwhAQAAAADAx7iMat2owAAAAAAAAIZHAgMAAAAAABgeU0gAAAAAAPA1ppDUiQoMAAAAAABgeCQwAAAAAACA4TGFBAAAAAAAX3KJKSQngAoMAAAAAABgeCQwAAAAAACA4TGFBAAAAAAAHzIdvuH4qMAAAAAAAACGRwIDAAAAAAAYHgkMAAAAAABgeKyBAQAAAACAr3EZ1TpRgQEAAAAAAAyPBAYAAAAAADA8ppBIMplMSktLU1JSkm6//XbFxcXp8ccfrzV28uTJSk9P14wZMxq4lcZmDa/QvY/9ru7nHlBhQYBmvdFe330VW0ukSzfdlaKLLt8tSfp6YQvNnNJekkmdz8zXU6+t84gOCXXouQfP0qpvm9X/TqCKNbxC9/5zo7qffUCFBYGa9b8O+u7ruFoiXbrpzm26aHiWJOnrz1tq5tQOOnIRqK49Dujmu7cotkWJCgsC9cnsNlqyMKHhdgRVrBGV+tvTKereJ989Rl9N1IovmtYS6dJN96fr4iv2SJK+mtdcM/+TqCN9mrx5hcpK/KoqHL9PjtFrT3ZokH1AtbBIu+57eZd6nFesQ/lmzXy+ub5d0KiWSJdufnSPLhmTL0la8kGU3n6uuY70Z2LnUt3/8i7Fty3TrrRg/eeBeKVvDmm4HUEVU5Fdjd7IUdDGYjnD/FU4NkalAyK94sI+3K+weblyBVT/BrX/P23kaBbo/sPhUthH+2VZViBTqVP25oE68HQruSzmBtoTSIePuc+mqXvfgyo8GKBZr7TSisUxtUS6dNMDO3XxVXslSV990kwzX26loy+mOPDyffr7v1P12mNt9dWnnBP5QpilXA/c8oN6dMlRYXGQ3v6oh5avauMV163THo0buUFtW+WpyBaksX+7yuPxNgl5uuv6NUpsma+SsgAtXtZe7392ZgPtBYzOxBSSOpHAOMr//ve/qn+vWLFCY8eO1e7du6vu++c//+mLZhnenQ9ukd1u0nUXD1Riu0JNevUXZaSFKSs9zCPukpG7dO75+3XXdX0ll0nPTlmrvTmh+nJ+S23eEKUrz7uoKrZL9zw98Z9f9MtPTRp6d/7y7nzgd9kr/XTd0MFKbFuoSS+vVUZauLIyjurPEVk6d8Be3TVugCTp2dfWaO+eUH25IEFms1OP/Wud3nmjo5Z81lJtOx7S81N+UsrmRsrYHu6L3fpLu/OxNNkrTbr2vD5K7FCsp6b+pvRtVmXtsHjEDblqj3oPPKCJo3pKLpOem7FR+3YHK/nj6gTWxCt6ak9WaEPvAmqYODlb9kqTRnftpDZnlOqZ9zKUvjlEmanBHnGXjs1X70sKdcfgdnK5THr+wx3amxWoL2Y3kX+AU5NmZmjBW9Fa/G5jXTouT5NmZmh83w6yV1Kg2dAi39ojl79Je99pr4CdZWr8XJYqWwXL3jLYK7a0b4QO/q1FrdsJ+2i/graVKvf51nJEB8g/q1yuAFOtsag/dz6xw33M7Xeu+5j75malb7Moa/tRx9zRe9V7UJ4mXt5dcknPvfOb+5j7UfOqGGt4pUbftks7Uznu+tLdN/4ku8NPV915jZIS8vXcP5ZqR2aUMrM9k8dlZf5a8l1bfbsqUWMu3+S1nX9O/E4//JygB569RE2ji/XqE8lKz4rST7+2bKhdAU5pnKHgTwsKtqvPwL2a/b92Kiv115aNUVrzfYwGXprjFTvosmwteL+V8vaHKC83WAveb61Bl+2uZavShZdl68flzVReRp6tIQUF29Xngj2aPb29uz83RWnNyqYaeIl3Pw26dLcWfJCovNwQ5eWGaMEHiRp06S5JUlh4pSxWu779soUkk9K2RmrXTqtati5q4D1CUIhDfQfnavbrrVVW4q8tv0ZqzbdNNHD4Xq/YCy/fq/nvxitvX7Dy9gdp/qx4DRrhHQffCQpxqN+lh/TuC81VVmLW5rVW/fR1hC68Mt8rdvDV+Zr3v2gd2BOovL0BmvdmtAZffVCS1LWPTWazSwveaqLKCj8tfDtaJpN0Zt/iht6lvzxTmVMhq4tUdG2MXCFmVXS0qKxXmEK/O/THtlPskHVxvg7eGStHTKBkMsmeECwFcrrXkNzH3AOa/d8ElZWYteXXCK1Z3lgDh+/3ir1wxD7NnxmnvH1B7mPuzBYaNHKfR8yN9+/U57NjVVgQ0FC7gKMEB1Wq/9mZmvlJd5WVB+j31KZa9WtLDe63wys2JT1a3/yQpD37w2rZktS0SbGWrWojp8tPe/aH6/fUpmrVoqCe9wA4fZxWn2itWrXS888/r06dOqlRo0a66aabVFZWJkl66623lJSUpKioKA0fPlw5Od5friXpxhtv1GOPPSabzaYhQ4YoJydHVqtVVqtVOTk5mjRpksaOHVsV/8MPP6hPnz6KjIxUfHy8Zs2aJUlKTk5Wp06dFBYWpri4OL300kv1vv++EtfSJofDpJys6l8VMtLC1DLR+4tqy8RiZaRW//qenhauloneJ8tBwXb1HbhXyxbXNm0B9amqP3dZq+7L2B5ee3+2LlJG2lH9eThBUXAwSCu+jtWgy3bJz8+lDmccVEyzUm3eGFX/OwEPcQklcthNys6s/vUuPcWihKQSr9iEJJsyttXo+xSLWh4V98K7GzTnux/16Ku/Kya2tP4ajlq1aFMuh0PKTg+qui9jS7AS2pd7xSa0K1P6lupf8NM3hyihfVnVYxlbQ1SzVN29nbL6azxq5Z9TLpefZI+t7tPKhGD576q9L4LXFan59dsUc+92WZZUJ64CMsskPylk1SE1G5+iphPTZPkyr97bD09xrUrlcJiUvfOoY27b2o65JcrYVuP8KcWiljXi2nUpUtszipX8YXOv56LhtGhW6O7TvRFV96VnNlLC/yPxMH9JZ13Ub7vMZqdaND+kTm3369ff6V8c5jL4zQBOqwSGJL3//vv66quvtGPHDqWmpurZZ5/V8uXL9cgjj+jjjz/Wnj17lJCQoGuuuea427FYLPryyy8VGxur4uJiFRcXKzbWc02HzMxMDRkyRHfffbdyc3O1YcMGnXnmmZKkm2++WW+++aaKior0+++/a+DAgfW1yz4XEupQqc2zSsJWHKCQUIdXbHCIXbbi6tiSYn+FWhw6ekT0uWCfCgsC9duvfNltaCEhdpXaPH/lsRX7KyTU7hUbHGKXrUbs0f353dI4jRmfqs++S9YL01bpvTfb68B+5tc3tJBQh0psnvPfj9mnoQ7ZiqtjbUWeffrg9WfqpovO1W2Xna383EBNmvqb/MzOem0/PIWEOlVSdFR/FpoVYqnlmGvxjLUVmRVqdUpyKcTilO3o7RSZFWKlPxuaqcwpV6hnXzgtfvIr9e6L0r7h2vffJO2Z2V4Fd8Qq7ONchax0V2qY8yrlV+KU/54K7Z3WVnn/iFfYR7kK2kBVTUMKCXWopLiWsVXbGA11yFbkXyOu+pjr5+fSxCe3a+ozbeRyMQ3Il4KDK1VSGuhxn600UKHBlX94W6vXt1D/s3cqeeZ7mvXSfH25op1S0qNPVlOB095pV5t/1113KT4+XpL06KOP6u6779aePXs0fvx4de/eXZL0/PPPq1GjRtq5c6datWr1/36tuXPnatCgQRozZowkqXHjxmrcuLEkKSAgQFu2bFG3bt3UqFEjNWpU2+Jq0vTp0zV9+nRJUoXz1Pwls7TErBCL5xehUItdpSXeC4aVlfortEZsqMV++IuV5wfzoMuytTw5zut+1L/SUn+FWDw/kN396X24cPdnpUfckf5skVCsh57+Vc890kPr10YrNt6mJ19aq/wDwfp5VW2LR6K+lJaYD58QVwu1OGrv0xKzQq3VsaFWh8cY/f2XSEmSvdJPbz7fVp+uWamWiSXamWb12hbqR2mJn0LDjurPMIdKbbUcc21+hxMWh+OsDpUU+0kyqdTm59HX7u04VVp82v22YXiuYD+ZSjz7wq/EKWeId1/Y46sraio6hKr4siiF/HRIpf0j5Do8VaToqmgpyE/2VsEq7Ruh4F+LVH4mY7ShlB51HJXcY6/WMep1zK3+HB16bbYyUixK2ci6Ub5WVhag0JAKj/tCQypVUvbHpvWEWcr1/ENLNWXWuVq2KlFRkaV68t5vVXAoWJ9/0/FkNhk4bZ12ZylHkheSlJCQoJycHOXk5CghofrKB1arVY0bN1Z2dvafeq1du3apTRvv1Yclad68eUpOTlZCQoLOO+88/fTTT7XG3XrrrVq3bp3WrVunQL9T85fp7CyLzGaXYuNtVfe1blvotYCnJGWlW9W6XdFRcZ4nVU2alqpL93wt+6K2q5igvlX1Z4vqX+yO2Z8ZYWqdVOgZd3ihz4TEQmXvsujXNTFyuUzKzrLq51VN1aO39xxg1K/szFCZ/V2KbVldlpzYvliZ270XhMvcblHr9jX6vn2xsmqJO8IlkWdsYLt3BMlslmJbV08ZSexUpsyUIK/YzNRgJXaqTo4ndi5VZkpw1WOtO5apZgVc647Vj6Ph2GODZHJK5pzqPg3YWeaRrDiuw11Y2epwfM0xyfhscNk7Q9yfowk1xl57mzLTajvmhqp1h5rHXJuyDsedee4h9R6UpzkrV2vOytXqeGahJjyUrjse317/OwEPu/eGy2x2Ka5p9bo0bVrmK3N35B/aTvOYIjmdJi39IUlOp58O5Fv07U+tdfaZta8Hh78gX08RYQpJw9u1a1fVv7OyshQbG6vY2FhlZmZW3W+z2ZSXl6e4uOOvr2AyHf9TPz4+Xjt2eC/eI0m9evXSwoULtX//fo0YMUJXX331H9iLU0t5mb9WfdtMY29LU1CwXR27HtS55+3X8mTvBMSyL+I08toMNY4uU1STMo0cu1PfLPZcSX3gkBxt3RSpvdkWr+ej/pWX+WvViuYae0vq4f7M17n992n5Eu8V75d92UIjx2SocXSpuz/HpOubZHcScUdqhGJb2NS1xwH9X3v3HR1VufVx/DfpPaRASCcJIEVFpYkUBREQBGlKkSKogIIFr9frFV8EwYKCHVBAQYqCCkoHC6AUAVGpIoEA6bQE0nvm/SMykJtAIIScSfx+1mKt5Mwzk33ycCYze/Z+Hsms2oEZatH6pI6zA0mly8my1bbvfTXoyeNydC5Qo1tTdHuHM9qwouRWfBtW+KnXkDj51MqRd80c9X44Vj98WzQuJCJD4Q3SZGNjlpNLvh59/oiSTjoq9igr41emnCxbbV3rqSH/PlE0n80z1Kpzin78umTL3Q9fean3yNPyqZ0nb7889R15Wt9/WVQRuHebqwoLpZ6PnJG9Q6F6DDsjSdq9lU/qK5vZyUZZLd3lsfiUTNmFcjiYKadf05R5p2eJsU47U2VKL5DMZtkfzpTbmmRltyh6Xi2o7aCcRi5y//qMlFcou7gcOW9JUXaz0hcTxPVR9Jzro0FPRV94zr07SRtWlNxGdcO3fur1cHzRc26tHPUeFq8fvimqUnz7v/U1qltTPdnrNj3Z6zYdPuCmz6eH6LN36lTyGSE7x15bfg3V0L5/yMkxT43rn9QdTWP0/ZaSH2SaTGbZ2+fL1q7Q8rWdbVGVTdwJD5kkdbgjSiaTWV6embrr9mM6GkPLNHClql0CY/r06YqLi1NycrJeffVV9evXTwMGDNDcuXO1e/du5eTk6MUXX1TLli3LbB/x8/NTUlKSUlJKXwX8oYce0g8//KAvv/xS+fn5SkpK0u7du5Wbm6tFixYpJSVF9vb28vDwkI1NtftVFzNjSiM5OBbo8+826PlXd2v6G40Vc9RdjW9J1tc/fWcZt3ZZsHZsrqXpX2zRjMVb9OuWmlq7LLjYY3XoFq8fV7N4p5FmTL2xaD7XfK/nJ/6u6W/dpJhj7mrcJElf/7jWMm7tNyHasaWWpi/8WTMW/aRft9XS2m+KtgE7Ee+qd19ropFjD+irH9ZpyoxftG2jv9avYJswI0yfXF+OjgX64uetev6tPzV9Un3FRLmq8W3ntPTXny3j1nwZoJ0/+WjGt79q5vJf9evPPlrzZVEy0ss3Vy9M/VNf79isT9ftkF9AtiY8cZMK8qv385s1+vC/gXJ0KtSX+/7Uf2dE64P/Bik60kk3tkjXt4f3WcatXuCj7d976OMfD2nWhkPa8aOHVi8oanXMz7PRxOF11PGBs1p6cL869U/WxOF12ELVIOdG+MuUa1btYX/J6504nRvhr/wQJzn8mSH/gQct45y3pKj2E4fl/9Bf8no/Xmm9fJXZvobl9uSxQbI9nSf/oYfk82q0UgfUUs7NJKUq2/RX6srRsVBfbN2u56cd0vSJdRVzxFWNm6Zo6W9bLePWLKmtnRt9NGPF75q54nf9+pO31iwpShpnpNnp7BkHy7/8PBtlptspM73adYBXCe/PbSVHhwJ9NWOxxo3+Se/NbaXoeC/deMMJrfxkgWXczQ1OaO28BXr9+e/l55uhtfMWaMoLRa+FM7McNOHd9urT5U99O2uRPn5thY7HeWnRt02MOi2gyjGZzWYrKQa5dnXq1NHIkSO1YMECJSQk6P7779fMmTPl4uKijz76SG+99ZbOnj2rO+64Qx999JGCgoo+UTaZTDp8+LDq1q2rhx9+WEFBQZo8ebIkafjw4Vq+fLkKCgr0559/atasWTpy5IgWLlwoSdq8ebOee+45HTx4UJ6enpo8ebIGDBigHj16aMeOHSooKNANN9ygd955R23atLls/J4OfrrD7/KLi6KKsSvZ74qqy5zKQnjVTcHZs0aHgAoUv6yx0SGggoU8HFv2IFQZuU3rGh0CKtCuX6crNZX2l4riUitY9fs9a3QYl2X3yyLt2rXL0BiqXQJjzpw56tixo9GhlAsJjGqIBEa1QgKj+iGBUb2QwKh+SGBULyQwqhcSGBWLBMaVoU4UAAAAAABYPZroAAAAAAAwWrXpjbh+qlUC4/jx40aHAAAAAAAArgNaSAAAAAAAgNUjgQEAAAAAAKweCQwAAAAAAAxmMlv3vyuRnJysXr16ydXVVaGhofr8889LHffOO+8oPDxcHh4eCggI0NixY5Wfn1/m45PAAAAAAAAA12z06NFycHDQyZMntWjRIj3++OM6cOBAiXE9evTQ77//rtTUVO3fv1979uzR+++/X+bjk8AAAAAAAADXJCMjQ0uXLtWkSZPk5uamNm3aqEePHlqwYEGJsREREapRo4YkyWw2y8bGRkeOHCnzZ5DAAAAAAADAaGYr/1eGyMhI2dnZqX79+pZjTZo0KbUCQ5I+//xzeXh4yNfXV3v27NHIkSPL/BkkMAAAAAAAwGWdPn1azZo1s/ybNWtWsdvT09Pl4eFR7Jinp6fS0tJKfbyBAwcqNTVVkZGRGjVqlPz8/MqMwa784QMAAAAAgH+CmjVrateuXZe83c3NTampqcWOpaamyt3d/bKPW69ePTVu3FhPPPGEli1bdtmxVGAAAAAAAGAwo3cZudZdSOrXr6/8/HwdPnzYcmzPnj1q3LhxmffNz89XVFRUmeNIYAAAAAAAgGvi6uqq3r17a/z48crIyNDWrVu1fPlyDR48uMTYOXPm6NSpU5KkP//8U6+//rruvvvuMn8GCQwAAAAAAHDNZsyYoaysLNWqVUsDBgzQzJkz1bhxY23evFlubm6WcVu3btVNN90kV1dXde3aVV27dtVrr71W5uOzBgYAAAAAAEa6wp0+rJ23t7e+/fbbEsfbtm2r9PR0y/dz584t1+NTgQEAAAAAAKweCQwAAAAAAGD1aCEBAAAAAMBo1aCF5HqjAgMAAAAAAFg9EhgAAAAAAMDqkcAAAAAAAABWjzUwAAAAAAAwkEmSiTUwykQFBgAAAAAAsHokMAAAAAAAgNWjhQQAAAAAAKPRQlImKjAAAAAAAIDVI4EBAAAAAACsHi0kAAAAAAAYzGSmh6QsVGAAAAAAAACrRwIDAAAAAABYPVpIAAAAAAAwklnsQnIFqMAAAAAAAABWjwQGAAAAAACwerSQAAAAAABgMJOVt5BYQ3hUYAAAAAAAAKtHAgMAAAAAAFg9WkgAAAAAADCaNfRoWDkqMAAAAAAAgNUjgQEAAAAAAKweCQwAAAAAAGD1WAMDAAAAAACDsY1q2ajAAAAAAAAAVo8EBgAAAAAAsHq0kAAAAAAAYDRr6NGwclRgAAAAAAAAq0cCAwAAAAAAWD1aSAAAAAAAMJLZ+nchsQZUYAAAAAAAAKtHAgMAAAAAAFg9WkgAAAAAADAaLSRlogIDAAAAAABYPRIYAAAAAADA6tFCYk3MhTJnZxsdBSpQYWq60SGgApmcHI0OARXMrraf0SGgAgUPjTE6BFSwh3/ba3QIqEBzHwg0OgRUIFN+odEhVCsmsQvJlaACAwAAAAAAWD0SGAAAAAAAwOqRwAAAAAAAAFaPNTAAAAAAADCamUUwykIFBgAAAAAAsHokMAAAAAAAgNWjhQQAAAAAAIOxjWrZqMAAAAAAAABWjwQGAAAAAACwerSQAAAAAABgJPPf/3BZVGAAAAAAAACrRwIDAAAAAABYPVpIAAAAAAAwmKnQ6AisHxUYAAAAAADA6pHAAAAAAAAAVo8WEgAAAAAAjMYuJGWiAgMAAAAAAFg9EhgAAAAAAMDqkcAAAAAAAABWjzUwAAAAAAAwmIk1MMpEBQYAAAAAALB6JDAAAAAAAIDVo4UEAAAAAAAjmSWZ6SEpCxUYAAAAAADA6pHAAAAAAAAAVo8WEgAAAAAADMYuJGWjAgMAAAAAAFg9EhgAAAAAAMDq0UICAAAAAIDRaCEpExUYAAAAAADA6pHAAAAAAAAAVo8WEgAAAAAADGQSu5BcCSowAAAAAACA1SOBAQAAAAAArB4tJAAAAAAAGMlsLvqHy6ICAwAAAAAAWD0SGAAAAAAAwOqRwAAAAAAAAFaPNTAAAAAAADAY26iWjQoMAAAAAABg9UhgAAAAAAAAq0cLCQAAAAAARqOFpExUYAAAAAAAAKtHAgMAAAAAAFg9WkgAAAAAADAYu5CUjQoMAAAAAABwzZKTk9WrVy+5uroqNDRUn3/+eanj3nrrLd14441yd3dXWFiY3nrrrSt6fCowAAAAAADANRs9erQcHBx08uRJ7d69W926dVOTJk3UuHHjYuPMZrPmz5+vm2++WVFRUerUqZOCg4PVv3//yz4+FRgAAAAAABjJLKnQbN3/ypCRkaGlS5dq0qRJcnNzU5s2bdSjRw8tWLCgxNjnn39et912m+zs7HTDDTfo/vvv19atW8v8GSQwAAAAAADANYmMjJSdnZ3q169vOdakSRMdOHDgsvczm83avHlziSqN0tBCAgAAAAAALuv06dNq1qyZ5fsRI0ZoxIgRlu/T09Pl4eFR7D6enp5KS0u77ONOmDBBhYWFGjZsWJkxkMAAAAAAAMBoVr4LSc2aNbVr165L3u7m5qbU1NRix1JTU+Xu7n7J+3z44YeaP3++Nm/eLEdHxzJjoIUEAAAAAABck/r16ys/P1+HDx+2HNuzZ88lW0M+/fRTvfHGG/rxxx8VFBR0RT+DCgxUCDePPD3zyl+6rVWyUs/Za957Edq0xq+UkWYNG3tUnXsnSJLWLwvQ3HfCJZkkSWv2bVR2po3Mf3//89paem9Cg0o6C5zn5pmvsW8eU9N2qUpJttPcN4O0ablPKSPNGv5CnLr0Py1JWre4pj59I0iSSYFh2Xr0xVg1bJouW1uzIve4auaEEMUdda7Uc0ERN888jX31sG5rfU4pZ+017+1QbVpVq5SRZg1/7rg69z0pSVr/tZ8+nVpH56/R8+6+/6See/Ow3h1XV+u/rn3d40dxbh55enr8Ad3W6oxSzzlo3gf19NM6/1JGmjXsqcPq1DNekvTdt4Ga+349nZ9PGxuzHhp1RPfcnyBnl3wlxrrovyOaKSPdvvJOBpIq5hr18MrT+Bl/KjgsSza2ZsVGuWjOm2H683ePUh4H11POORttftFX8Vud5ehVqOb/SlZE94wS49Y/4qcTvzlZvi/MM8kzLE+9V8UrPcFWS7sWf0Gfn2mjFv9J0k2PpP7vQ+E6c3PL0dixO3XbbSeUkuKoefNu1qZNdUqMu/nmkxo48IDq1j2r9HR7PfxwD8ttnp7ZGjXqd9100yk5ORXo+HFPzZ59qw4dKu01FlD1uLq6qnfv3ho/frzmzJmj3bt3a/ny5dq2bVuJsYsWLdKLL76ojRs3Kjw8/Ip/RrVKYGzatEmDBg1SXFzcVd933rx5mjNnjrZs2XIdIqv+nhgXqfw8Gw28q7XCG6Rr4vS9OnrITTFRrsXG3ftAglq1P63RfZtLZpNenbVbJ+OctOarQMuY0X2bKzHWpbJPARcZMyla+Xkm9W96iyIaZeqVuYd17E8XRR8unnzoOvC07uh0Tk90uVFms/TaokM6EeuoNYtqydUjX9t/qKFpz4UpK8NGDz2doJdnH9Fjd99k0Fn9s40eH6W8PBsNaN1SEQ3TNfHjP3X0L1fFHPmfa7TfCbXqmKzR999aNKdz9+tEnJPWLL7w5tjNI1/9RsXpeCTXqVGeeOGg8vNNeqjjXQq/IU0T3vtDxyLdFXPUrdi4Ln3idPtdpzSmfyvJLE2e+ZtOxDtr7dJgSdJDo46oYZNz+tfDLXQ60UmhEenKzaU40wgVcY1mZdjqnRfrKeG4s8xmqdXdyZow80/1v6OlCgtMl/jJuB62TfSRjb1ZA7fFKOmgg74bUVveDXLlVS+v2LjOn5ws9v3qQbUVcHu2JMktoEBDd0dbbkuLtdNX9wSpTufM638CKGH06N+KrtEBPRURcU4TJ/6so0e9FBPjWWxcdradvvsuTD/9FKJ+/f4sdpuzc74iI701a9atSklxVOfORzVx4k96+OHuys4mcYzqYcaMGRo+fLhq1aolHx8fzZw5U40bN9bmzZt17733Kj09XZL00ksvKSkpSc2bN7fcd9CgQfroo48u+/i8SsE1c3QuUOt7TmvBh2HKzrLTn3/U0I5NvurQ/USJsXf3OKFl80OUdNJJSaccteyzYHW8v+Q4GMfRuUCt7z2r+dOClJ1pqwO73LX9hxrq0PtMibEd+57R0tl+OnPCQUknHbRsdm3d07doXOQeN61fUlPpKXYqyLfRsjm1FVw3W+418iv7lP7xHJ0L1LpTkha8F1o0p795avsGb919/+kSYzv2PKVlnwbqzElHJZ1y1NK5gbqn16liYx7+13EtXxCg1LPVKgdeZTg65euOu09qwYy6Rc+5u7204+ea6tAtocTYjvcl6JuFdZR0yklJp530zYJQdexRNM7NPU/3D4zR+5Ma63SisySToqPclZdrW8lnhIq6RvNybRR/zEVms0kmk1RYKLnXyJe7Z16Jx8H1k5dp0vHvXNX0mbOydzWrdrMchXTI1JFv3S57v7Q4O53c5aS6PdNLvf3wt26q3Txb7kH8Ha1sjo75at06TgsW3KTsbHsdOFBT27cH6O67j5cYGxnpow0bwpSYWHK+T5xw0zffNNDZs84qLLTR2rV1ZW9fqKCgyy9wiH8Ok9m6/10Jb29vffvtt8rIyFBMTIwGDhwoSWrbtq0leSFJx44dU15entLT0y3/ykpeSNWsAgPGCAzNVEG+SfHRFz6NPXrITTc1O1dibGhEho4duvBp0rFDbgqpW7yk8s15f8hkIx3c7aHZb9XVqQRaDipTUHi2CgpMij92oaT16EFn3dSy5B/X0HrZOnrwonn/00Wh9bNKfdybWqYp+ZS90s7xtFPZgupkFc3p8QvX0rG/XHVT85QSY0PrZeroX67FxoXUu/BpX/2b0lTvxnRNnxChdl1KvrnC9Xf+OTch5qJ5inTXjU2TS4wNCc/QscgLL6KPRrorJLzoxUNovTQVFJjU5u6T6vlQtDIz7LT8ixCt/jLk+p8EiqnIa1SSZqz4XUFhWbJ3MGvtl35KSXa4fsGjhJTj9jLZmuUZdiHR4NMwR4k7L/965si3bvJrVnqCwmwuuv2W0ecqOlxcgaCgoufL+PgL7VjHjnnppptOXeZeZQsPPys7u0IlJFw+uQXggkqpwKhTp45ef/11NWrUSF5eXho2bJiys7N15swZ3XfffapRo4a8vb3Vtm1bFRYW6q233lKfPn2KPcZTTz2lp59+WpKUnJysYcOGKSAgQF5eXurZs2exsdOmTVOtWrXk7++vuXPnWo6npKRoyJAhqlmzpkJDQzV58mQVFhaWGvO2bdvUvHlzeXp6qnnz5sX6do4dO6Z27drJ3d1dHTt21OjRozVo0CBJUrdu3fTBBx8Ue6ybb75Z33zzTbl/f9bO2aVAmRnF35RmpNvJ2bWgxFgnlwJlpNsVG+fiWqDzS+4+//CtGta5lUb2aKHk046a8OE+2diWPke4PpxcCpWZVvypISPVTi6uJefBybVAGWkXPq3NSLOVi1uh/ncJZd/auRo9KVqzJgVfl5hxeU4uBcpML/6pekba5a5R22Ljzl+jNjZmjZ4QpZmvhMtsphzdKM4uBcoq7TnXpbT5zC+2nkXmRc+5vrVy5Oaer8DQTA3v3lavPd9ED42M0i0tk673KeB/VNQ1et4TPW5Tn6at9MazN+jP31j/orLlZ5jk4Fb8b6a9m1l5GZd/3jz8rZvq9S69+uLkLkdlJdkqrHPJdTRw/Tk55Skzs3iLR0aGvZydy1/d5OKSp+ee265Fi25UZiZJRuBKVVoLyaJFi7R+/XpFRUUpMjJSkydP1rRp0xQUFKTTp0/r5MmTeu2112QymTRo0CCtW7dO586dkyTl5+dr8eLFGjJkiCRp8ODByszM1IEDB3Tq1CmNHTvW8nNOnDihlJQUxcfH65NPPtHo0aN19uxZSdKTTz6plJQUHT16VD/99JPmz59fLMFxXnJysrp166annnpKSUlJevbZZ9WtWzclJRW9qBs4cKBatGihpKQkTZgwQQsWLLDcd+jQoVq4cKHl+z179ig+Pl7dunUr9fcya9YsNWvWTM2aNVNuYfa1/ZINkpVpKxfX4p8WuLjmKyujZBlydqbt3y+0/h7nVqDMDFudX1Bu/281lJ9vo4w0e338Rj3VDsxSSDi9npUpO9NGLu7FX3i5uBcoM6Pk00V2hq1c3P5nPtNtdPGCj57eeXp14SGtWlBLm1awSJURsjOLz5Mkubhd/TV638BEHT/kor/28IbISFmZtnIu7Tk3s7T5tCv2/HzxfObmFF3Tn88OV26OrY4fdtfP62ureRsqaypbRV2jF8vLtdFPq2vqgRFxCruh9DfFuD7sXM3KTS/+NzMv3SR710vXX5/Y5aisM5dOUBz+xl11OmVc9jFw/WRn28vFpXiywsUlT1lZ5Vu3wsEhXxMm/Ky//vLRl182qogQUV2Yzdb9zwpUWgJjzJgxCg4Olre3t8aNG6cvvvhC9vb2SkxMVHR0tOzt7dW2bVuZTCb5+/urXbt2+uqrryRJ69atk6+vr5o2barExEStXbtWH330kby8vGRvb68777zT8nPs7e01fvx42dvbq2vXrnJzc9OhQ4dUUFCgxYsX6/XXX5e7u7vq1Kmjf/3rX8WSD+etXr1a9erV0+DBg2VnZ6cBAwaoQYMGWrlypWJiYvTrr7/qlVdekYODg9q0aaMePS6sLtyjRw9FRkZato5ZsGCB+vXrJweH0jOrI0aM0K5du7Rr1y452DiVOsbaxUe7yNbOrICQC4mG8BvSFf0/C3hKUnSUa7EXUmH100ssUHYxs0z/+5oM11ncUSfZ2poVUOdCQi28YaaiI0uWvkYfdlJ4wwstI+GNio9z88jXqwsjtf37Glr8YcD1DRyXFHfcuWhOQy/MVViDDEWXcu1FH3ZReIMLL6DDG6Qr5nBRm1CTVufUqmOSFm3ZoUVbdqjhrWl67IVjevz/oq7/ScDC8pwbfGGewuqnKSaqZAlyzFFXhdVPKz7u74U+jx3+e0/2i16PUFljjIq6RktjZ2eWf3DV/ICkqvKskydzgUkpxy9USiX/5SCvurmXvM/hb9xV557SExT52SYdW+eqer1IRBklLs696BoNuOj5NOycoqM9L3Ov0tnbF2j8+C06c8ZFH3zQvOw7ACim0hIYwcEXSsdDQ0OVkJCgf//736pbt646deqk8PBwvfHGG5YxF1cyLFy4UIMHD5YkxcbGytvbW15eXqX+HB8fH9nZXfiD4eLiovT0dJ05c0Z5eXkKDQ0tFkd8fHyJx0hISCg27uKxCQkJ8vb2lovLhRcLF5+bk5OT+vXrp4ULF6qwsFBffPGFJfbqKifLVtt+qKlBo4/J0blAjW45p9vbn9GGlSW3VtyworZ6DYmVT60cedfMUe+hMfphedG4kIgMhd+QJhsbs5yc8/Xoc0eUdNJBsUfZ6aAy5WTZaus6Lw15Nr5oPpulqdU957RhmW+JsT8s9VXvx07Ixy9X3rVy1eexE/r+66JxLm4FenVBpP7c5aa5U2gdMVJOlq22fe+jwU9FF83pbalqdXeyflxes8TYH5fXUq9h8UXXaK0c9R6WoO+/KdrK8e0X6mtk16Ya0/NWjel5qw7vd9OiD0P02TuhJR4H109Otp22bfDToMej5OiUr4ZNzur2O09rw+qSScIfVwWo16Bo+dTMlrdvtnoNOq4fVhSNOxHnov2/11C/R47Jzr5QwWHpatc5UTs3l/x/geuroq7RBk1S1bhpiuzsC+XgWKAHHotTDd88/bXXvbJP6R/N3sWs0Hsy9Pt7XsrLNOnkb46K/tH1kotz5mebdGyt6yXbR6K/d5GjZ4H8bycRZZScHDtt2xakwYP3ydExX40anVarVvH68cc6JcaaTGbZ2xfIzq6omrXo66KqKVvbQo0bt1U5ObaaOrUlSWOgHCptNb3Y2FjL1zExMQoICJC7u7umTZumadOmaf/+/erQoYOaN2+uu+++Wz179tTjjz+u/fv3a9WqVXrzzTclFSULkpOTde7cOdWoUeOKf76vr6/s7e0VHR2tRo0aWeIIDAwsMTYgIEDR0dHFjsXExKhLly7y9/dXcnKyMjMzLUmMi89NKkq+DB48WG3atJGLi4tatWp1xXFWVdMn19fYSX/pi01blJpir+mTb1BMlKsa33ZOr8zcqz4t20mS1nwVoNpBWZqxbKckaf1Sf635qujFtJdPrka/dEi+fjnKzrLVwT2emjDmZhXks1lOZfvwpVA9+9YxLfl9t1LP2umDl0IVfdhZjZunafJnkerVqKkkac2imvIPydFH3+2XJK1bXFNrFhW94L6j81ndcEuGQutnWXYmkaQRHW/U6QTHyj+pf7gPJ0Zo7GuHtXjbDqWes9eHEyIUc8RVjZumaNLsA+p92x2SpDWLa6t2cLZmrvxDkrTuaz+tWVyUZMxIs1PGRWu55ueZlJluq8x0FmatbDNeb6hnXt6vz3/cpNRzDpr+ekPFHHVT41vPauIHv6tvm7slSWuXBql2UJamf1m0jtP6b4O0dmmQ5XHe/O/NevrlA1q8caNSkh20YGZd7dlJq5cRKuIatXcwa9RLUaodnKOCPJOOR7ro5RGNlHyK59zK1npCkn7+r68+bxUixxqFaj3xjLzq5enEr45a/1jtYtujRv/gIgePwksmKA5/46a696fLxHtdQ334YVONHbtTixd/o9RUR334YVPFxHiqceNTmjTpZ/Xu3VeSdOONp/Tmmxst91ux4ivt3VtT//nP3WrU6IxatkxQdratvv56mWXM//1fOx04UKvSzwnW50p3+vgnM5nN17+ZpU6dOnJ3d9fatWvl4uKiHj16qF27drrjjjvUoEEDRUREKC4uTi1atNDnn3+u9u3bS5Iee+wx7dixQ76+vtqwYYPl8bp16yZPT09Nnz5dbm5u+uWXX9SuXTtt2rRJgwYNUlxcXLGfPWfOHHXs2FGDBg1SRkaG5s+fr+TkZHXu3FnPPfecHn30Uc2bN09z5szRli1blJSUpIiICM2YMUMPPvigli5dqpEjR+rIkSPy9fXV7bffrnbt2mny5Mn67bff1KVLF3Xv3r3Y2hf169eXk5OT+vbtq/Hjx1/R78nTvqZa1ehdQb91WIPCVMo9qxOTE28CqhsbVyq8qpPCDNZMqm6G/bbX6BBQgeY+0NXoEFCBth+ao5TMklt4o3zcPYPU7PYnjQ7jstKSvtKuXbsMjaHSPtoeOHCgpVUkIiJCL730kg4fPqyOHTvKzc1NrVq10hNPPGFJXkhFlQz79u0r0YKxYMEC2dvbq0GDBqpVq5befffdK4rhgw8+kKurq8LDw9WmTRsNHDhQw4cPLzHOx8dHq1at0rRp0+Tj46M333xTq1atkq9vUWn8okWL9Msvv8jHx0cvvfSS+vXrJ0fH4m9shgwZon379ll2JwEAAAAAAOVXaRUY56sgrkZMTIwaNGigEydOyMPDele979evnxo0aKCJEydajs2fP1+zZs3Sli1brvhxqMCofqjAqF6owKh+qMCoXqjAqH6owKheqMCoXqjAqFjuHlWgAiP5H1SBcbUKCwv19ttvq3///laXvPj1118VFRWlwsJCrVu3TsuXL1fPnj0tt2dmZmrGjBkaMWKEcUECAAAAAFCNWOXKaxkZGfLz81NoaKjWrVtndDglnDhxQr1791ZSUpKCgoI0c+ZM3XrrrZKk9evXq3fv3urYsaMGDhxocKQAAAAAAFQPlZLAOH78+FWNd3V1VXq69Zbed+/eXd27dy/1ts6dOysjI6PU2wAAAAAA+F8mSabrv7pDlWe1LSQAAAAAAADnkcAAAAAAAABWzyrXwAAAAAAA4B+l0OgArB8VGAAAAAAAwOqRwAAAAAAAAFaPBAYAAAAAALB6rIEBAAAAAIDB2Ea1bFRgAAAAAAAAq0cCAwAAAAAAWD1aSAAAAAAAMJL573+4LCowAAAAAACA1SOBAQAAAAAArB4tJAAAAAAAGMossQtJmajAAAAAAAAAVo8EBgAAAAAAsHq0kAAAAAAAYDATHSRlogIDAAAAAABYPRIYAAAAAADA6tFCAgAAAACA0diFpExUYAAAAAAAAKtHAgMAAAAAAFg9EhgAAAAAAMDqsQYGAAAAAABGMkumQqODsH5UYAAAAAAAAKtHAgMAAAAAAFg9WkgAAAAAADAa26iWiQoMAAAAAABg9UhgAAAAAAAAq0cLCQAAAAAARqODpExUYAAAAAAAAKtHAgMAAAAAAFg9WkgAAAAAADCYiV1IykQFBgAAAAAAsHokMAAAAAAAgNWjhQQAAAAAAKPRQlImKjAAAAAAAIDVI4EBAAAAAACsHgkMAAAAAABg9VgDAwAAAAAAI5klFRodhPWjAgMAAAAAAFg9EhgAAAAAAMDq0UICAAAAAICBTDLLxDaqZaICAwAAAAAAWD0SGAAAAAAAwOrRQgIAAAAAgNFoISkTFRgAAAAAAMDqkcAAAAAAAABWjxYSAAAAAACMZu0tJCajAyCBYX1MVvC/AhXGxs3V6BBQgUyODkaHgAqWf+Kk0SGgAp0b3MroEFDBPuvkZXQIqECRk5yMDgEVKPv/eN+CykcLCQAAAAAAsHpUYAAAAAAAYCSzpEKjgyiDrdEBUIEBAAAAAACqABIYAAAAAADA6tFCAgAAAACAwUzWvguJFaACAwAAAAAAWD0SGAAAAAAAwOqRwAAAAAAAAFaPNTAAAAAAADAaa2CUiQoMAAAAAABg9UhgAAAAAAAAq0cLCQAAAAAAhjLTQnIFqMAAAAAAAABWjwQGAAAAAACwerSQAAAAAABgJLNoIbkCVGAAAAAAAACrRwIDAAAAAABYPVpIAAAAAAAwWqHRAVg/KjAAAAAAAIDVI4EBAAAAAACsHi0kAAAAAAAYzMQuJGWiAgMAAAAAAFg9EhgAAAAAAOCaJScnq1evXnJ1dVVoaKg+//zzUsdt3LhR7du3l6enp+rUqXPFj08CAwAAAAAAXLPRo0fLwcFBJ0+e1KJFi/T444/rwIEDJca5urpq+PDheuutt67q8UlgAAAAAABgNLPZuv+VISMjQ0uXLtWkSZPk5uamNm3aqEePHlqwYEGJsS1atNDgwYMVHh5+Vb8iEhgAAAAAAOCaREZGys7OTvXr17cca9KkSakVGOXFLiQAAAAAAOCyTp8+rWbNmlm+HzFihEaMGGH5Pj09XR4eHsXu4+npqbS0tAqLgQQGAAAAAABGMksqtO5tVGvWrKldu3Zd8nY3NzelpqYWO5aamip3d/cKi4EWEgAAAAAAcE3q16+v/Px8HT582HJsz549aty4cYX9DBIYAAAAAADgmri6uqp3794aP368MjIytHXrVi1fvlyDBw8uMbawsFDZ2dnKy8uT2WxWdna2cnNzy/wZJDAAAAAAADCUFewyco27kEjSjBkzlJWVpVq1amnAgAGaOXOmGjdurM2bN8vNzc0y7ueff5azs7O6du2qmJgYOTs7q1OnTmU+PmtgAAAAAACAa+bt7a1vv/22xPG2bdsqPT3d8v1dd90l8xUmRS5GBQYAAAAAALB6VGAAAAAAAGC0clQk/NNQgQEAAAAAAKweCQwAAAAAAGD1aCEBAAAAAMBotJCUiQoMAAAAAABg9UhgAAAAAAAAq0cLCQAAAAAARjJLKqSFpCxUYAAAAAAAAKtHAgMAAAAAAFg9EhgAAAAAAMDqsQYGAAAAAACGMkvmQqODsHpUYAAAAAAAAKtHAgMAAAAAAFg9WkgAAAAAADCamW1Uy0IFBgAAAAAAsHokMAAAAAAAgNWjhQQAAAAAACOZJRXSQlIWKjAAAAAAAIDVI4EBAAAAAACsHi0kAAAAAAAYjV1IyvSPSGDce++96t+/v4YOHXrZccePH1dYWJjy8vJkZ/eP+NVUGDePPD0z8aBuuyNZqWftNe/9CG1aU7uUkWYNeyZKnXsnSJLWLwvQ3HcjJJkkSWv2blB2lo3M5qLvf15XS+9NaFhJZ4Hz3Dzz9Mwrh4rm85y95r0brk2r/UoZadawZ4+qc59ESdL6pf6a+3a4LPN5YJOyM210/qn45zW19N7LDSrlHFCcm0eenh5/QLe1OqPUcw6a90E9/bTOv5SRZg176rA69YyXJH33baDmvl9P5+fUxsash0Yd0T33J8jZJV+JsS7674hmyki3r7yTgdxr5GvstFg1vTNdKcm2mvu6vzZ+41XKSLMeGZeoLgOSJUnrvvDWJ6/66/x8Pv1mrG5qlaHAsBy9/Wywvv/Su/JOAsV4OGdrXN9Nalk/TucynDRjXUt9t7teiXGD2u1W16aHVNsrXSkZTlr6S2Mt/PkWSZJfjTQtfnZJsfEujvl6b1Urfb65SWWcBv7m5p6rp1/co9tanFZqioPmzWygn74PKmWkWcOeOKhO3WMkSd+tDNHcGQ11/hq9uekZPTLmgAKCMpV6zkFfLayrdctDK+9EYGGTnq9ac2Lksi9NBe62SnowQOl3lHzO9F6WKK8VJ2S2u1DoHvNaA+XXcpR9YrZ8FifI+XCGVGhWTriLTg8OUp6/U2WeClCl/SPepa9du9boEKq9J8YdUn6ejQbe1UbhDdI18cM9OnrITTFRbsXG3ds3Qa06nNHoB1pIZpNe/fgPnYx31pqvAi1jRvdtocRYl8o+BVzkiZcOKz/PpIF33lE0nzP26ehfboqJci027t4HEovms3ezovmcs0cn45y05suL5rNPMyXGMJ9Ge+KFg8rPN+mhjncp/IY0TXjvDx2LdFfM0eLXaJc+cbr9rlMa07+VZJYmz/xNJ+KdtXZpsCTpoVFH1LDJOf3r4RY6neik0Ih05ebSjVjZRr8Wr/w8k/rd3EgRN2Zp0vxjOnrAWdGRxV8Edx2UrFZdUvX4PfVlNpv0+uIonYhx0OoFvpKko38666cVNfTIuEQjTgMX+XfPLcorsNW9k4aqfsAZvT1srQ4n+ujYyf95g2Qya+KSDjpywkeB3ql6/9FVOpnipu/31NXJc+5qP/5Ry1B/r1Qtff4LbdwfVslngyee26f8PBs9dF8nhddL0YSpO3XsiKdijrkXG9fl/mjd3vaExgy5s+g5973tOpHgorXf1pGtbaFeev1XfTq9odYtD1W9hil6/YNtOnSgho4d8TTozP65an4WK7OdScem3yjH6Cz5T4tSboizcoOcS4xNb+mlk4/XKXHcJrNAGbd66tRjISp0spX3t4nyf+eoYt5sVAlnAFQPvOrENXN0LlDrjqe1YHq4srPs9OcfNbRjk6863HeixNi7eyRq2WfBSjrppKRTjlo2P0Qd7+eFszVxdC5Q63tOa8EHYcrOtNOfv9fQjo2+6tCjlPm8/0Tx+ZwXrI49S46DsRyd8nXH3Se1YEbdomt0t5d2/FxTHbollBjb8b4EfbOwjpJOOSnptJO+WRCqjj2Kxrm55+n+gTF6f1JjnU50lmRSdJS78nJtK/mM/tkcnQvUpmuKPnvTX9mZtjqw002/fOepu/smlxh7z4PJWvpRTZ1JdFDSCXst/bim7nnwrOX2lfN8tXuLu3JzTJV5CvgfTvZ5an/jUX38XXNl5dprz3F/bf4zVPfeGlli7MKfbtWhhJoqKLRRzJka+vnPOro5tPTn3a5NI7X7mL8Sz3pc71PARRyd8nXHXYlaMPuGoufcvT7ascVPHbrElRjbsWucvlkcoaTTzko646xvvohQx66xkiR3jzy5uuVr47ogSSYdPlhDsdFuCglLr+Qzgim7QG6/pii5j7/MTrbKvsFNGbd5yn1ryefdy8mJcFXaXT4qdLOT7Ew616WWHBJzZJOWf50iR5VjNlv3PytgtQmMKVOmKDAwUO7u7rrhhhv0448/KicnR88884wCAgIUEBCgZ555Rjk5OZb7LF++XLfccos8PDwUERGhdevWSZLuuusuzZkzR5JUWFioyZMnKzQ0VLVq1dKQIUOUkpJSagwJCQnq0aOHvL29VbduXc2ePdtyW1ZWloYOHSovLy81bNhQb775poKCikoD33rrLfXp06fYYz311FN6+umnK/R3ZC0CQzNVkG9SfPSFT9mPRrortG5GibGhERk6FnnhE99jh9wUElF83Jtzf9fCDVs07u19qhWQdf0CR6lKnc9Drgqtm1libGjdDB376+L5dFXI/4x787PdWvjTVo17dz/zaZDzc5oQc6GC5liku0IiSr4IDgkvfo0ejXRXSHjRuNB6aSooMKnN3Se18LtNmvXNFnV7MOb6nwCKCYrIUUGBFH/U0XLs2J9OCr0hp8TY0PrZOvrnhaqMowecFXpDdqXEiSsXUjNFBYU2ij1Tw3LscKKPwv3OXvpOkiSzbqmTqKMnS28f6npbpFb/Vr8iQ8UVCAzJUEGBSQmxF/19POypkLC0EmNDwtJ07PCFBNPRIx6WcefOOmrTd4Hq2C1WNjZmNbgxWbVqZ+nAHlq9Kpv9iRyZbVWs1SM32FkOcaU/n7r8kaKwUXsV/MJBefxw+pKP6/xXuvI97VTo/o8oigcqhFVeLYcOHdKHH36oX3/9VQEBATp+/LgKCgr06quvavv27dq9e7dMJpPuv/9+TZ48WZMmTdLOnTs1ZMgQff3117r77ruVmJiotLSSfyjmzZunefPmaePGjZYExpgxY7RgwYISY/v3768bb7xRCQkJ+uuvv3TPPfcoIiJCHTp00MSJE3X8+HEdPXpUGRkZ6tq1q+V+gwYN0oQJE3Tu3DnVqFFD+fn5Wrx4cbVtZXF2KVBmRvH/ShnptnJ2KSgx1smlQBlpdheNs5OLa4GKNj426flht+qvPZ5ydC7QkDFHNeHDvRrzQHMVFlhtrq3aKZrP4p+oZ6Tbydml5KcDTi4Fyki/MDYj7X/mc8gt+muvhxydCjTkqWOaMGOfxvRpxnxWMmeXAmWVuEbtLnGN5hdbzyLzomvUt1aO3NzzFRiaqeHd2yogJFOvfbRL8dGu2r3D53qfBv7m7FKozLT/uUZTbeXsWsp8uhYfm5FmKxe3Qp2/RmEdXBzylJFTfB2Z9GwHuTjmXvZ+j92zSzYmadWukmsL3VLnhLzdMrVhX0SFxoqyOTvnKyuj+HxmZFzi76hzvjIuen7O/J/XRT99H6Cn/rtHI585IEmaPvUmnTlVsmUB15dNTqEKnYs/7xa62Momu7DE2LSWNZTS3lcFnnZyOpKh2u8fU6GrrdJbFU882Sbnqub8OJ15KLDEYwC4NKt8F2Fra6ucnBz9+eefysvLU506dRQREaFFixZp/PjxqlWrlmrWrKmXX37Zknj45JNPNHz4cN1zzz2ysbFRYGCgGjQo+Qd90aJFevbZZxUeHi43Nze9/vrrWrx4sfLzi/9RiY2N1datWzVlyhQ5OTnplltu0aOPPqr58+dLkr788ku9+OKL8vLyUlBQkJ566inLff39/dWuXTt99dVXkqR169bJ19dXTZs2LRHPrFmz1KxZMzVr1ky5hVXzU7GsTFu5uBb//bm4Figrs2RZeXamrVzcCi4al//3m+WiF9L7f/NSfr6NMtLs9fGU+qodmKWQ8JKf/OP6KZrP4m+EiuazZL6zxHy6FfzPfNZQft7f8/l6PdUOzGY+DZCVaSvnEtdo/iWuUbti1/PFc5qbU/Qn4/PZ4crNsdXxw+76eX1tNW9z6U+XUPGyMm3k4v4/16h7gbIySpnPDJu/ExZ/j3MrUGa6jUheWJfMXHu5OuYVO+bqmKfMHIdL3qdvq/3qeluknp13r/IKSs5916aHtHF/uLJyWWC3smVl2cnZtfh8Fj3nlvJ3NMtOLhclNi5+XRQUmqb/vPK73p50q+6/s5seH3SX+jwUpeZ3nLzep4D/UehoI5us4s+7NlkFKnQq+VYqL9BZBV72ko1J2fXddK5zTbntPFf8vql5CpwSpZS7fUskNgBcnlUmMOrWrat3331XEyZMUK1atdS/f38lJCQoISFBoaEXVl4ODQ1VQkJRb3ZsbKwiIsr+lKG0x8jPz9fJkydLjPP29pa7u3uxsfHx8Zbbg4ODLbdd/LUkDR06VAsXLpQkLVy4UIMHDy41nhEjRmjXrl3atWuXHGyq5grE8dEusrUzKyDkwhvT8BvSFX3EtcTY6ChXhd1woTIm7Ib0EgtDXuz8biSoPJeez5ILcUYfcVXYDRfaEMJuSFdMKePOM0u8bzKAZU6DL7RrhdVPK7HIriTFHHVVWP204uP+Xujz2OG/nw8vaoHkGq18cVGOsrWVAsIutIyEN8pW9CHHEmOjI50U3uhC61Z44yxFH6qaf2uqs5jTnrK1KVSwzznLsXr+SZdoDZG6N/tLQ9v/odGzu+tUSsnr2NEuX3fffFSrf7vheoWMy4iPcZWtrVkBQRf9faybWmIBT0mKOeausHqppY4LDU9TfKyrft9RS2azSfExbvp1Wy01vf3U9T8JFJNX21GmAsn+xIUPGx1ispQbdAXPp6bifydtMvIV+GaUMm7z0Nn7S9uxD/9cVrDGBWtglN/AgQO1ZcsWRUdHy2Qy6T//+Y8CAgIUHR1tGRMTE6OAgABJRQmEqKioMh+3tMews7OTn59fiXHJycnF2lBiYmIUGFhU5uXv76+4uAuLMcXGxha7f8+ePbV3717t379fq1at0kMPPXQVZ1+15GTZatsPNTVo9FE5Oheo0S3ndPtdp7VhVckn5Q0r/dVrcKx8auXIu2aOeg+J1Q/Li7ZyDIlIV/gNabKxMcvJOV+PPndYSaccFXuMHSwqU06WrbZ976tBTx4vms9bU3R7hzPasKKU+Vzhp15D4i7M58Ox+uHbonEhERkKb/D3fLrk69HnjyjppKNijzKflS0n207bNvhp0ONRcnTKV8MmZ3X7nae1YXVAibE/rgpQr0HR8qmZLW/fbPUadFw/rCgadyLORft/r6F+jxyTnX2hgsPS1a5zonZurlnZp/SPlpNlq61rPTXk3yeKrtHmGWrVOUU/fl3yU7wfvvJS75Gn5VM7T95+eeo78rS+//LCm2I7+0LZOxbKZJLs7Mx/f20dL1D+SbLz7LXpQJhGdNolJ/s83RyaqHaNj2vtHyXXr+h8S6Qe77JDT865TwnJpS/OeeeNx5Sa6aDfokpe47j+crLttO0nfw167FDRc+5Nybq97QltWFdyG9Uf1wapV/+j8vHNKnrOHRClH9YUfSgWFempgKAM3dz0jCSzagdmqEXrkzoexaKslc3sZKv0Zp7yXpooU3aBnCLT5fp7itJal3zedf3tnGwy8iWzWY5RGarx3Wll3Fa0a4wpq0ABb0Ypq56rkvrROgKUh8lstpJUykUOHTqk+Ph4tW7dWiaTSaNGjVJBQYGCg4O1YcMGLV++XCaTST179tRdd92lyZMna+fOnerUqZOWLl2q9u3bW9bAaNCgge666y4NGjRIjz76qObMmaMpU6bou+++U82aNfXwww/LyclJCxcu1PHjxxUWFqa8vDzZ2dmpbdu2atKkiaZOnarIyEjdc889WrRokTp27Kj//Oc/2rlzp5YtW6bMzEx169ZNZ86cKZbUeOyxx7Rjxw75+vpqw4YNZZ63p31NtfLqU+Y4a+TmkaexrxzUra2SlXrOXvPei9CmNbXV+LZzemXGHvW5/c6/R5o1fGyUOvcuqpxZvyxAn74TIcmkJi2SNfqlSPn6ZSs7y1YHd3vqk7frKqEqb8FZULI3sipw88zT2El/6dZWZ5WaYq9574Rr02q/ovn8eK/6NG/390izhv/rqDr3KdpJZv1Sf306LVySSU1antXo/4uUr1/O3/PpoU+mRlTp+TQ5Xrqc29q5eeTpmZf369bbk5R6zkHzPqinn9b5q/GtZzXxg9/Vt83df480a9jTh9W5Z9Fz2fpvgzT3vXo6XzrjUzNbT798QI1uOaeUZAd99VkdrVsaXPoPrQLyT1TNUmz3Gvl69u1Y3dYuXalnbfXpa/7a+I2XbmyRrsmLjqlnvZv+HmnWIy8l6t4BRSvlr/3CW59M9tf5+Xzz6yNqckfxhZT/3SdCe38p+al+VXBucCujQyg3D+dsvfTAJrWoF6eUTCdNX9tS3+2up1vqJOqd4ast26N+859FquWZodz8C59BrfujvqZ8087y/XuPrNKfsbX08XctKv08Kprv5nijQygXN/dcPTNut25tfqbo7+jMhvrp+yA1bpKkidN2qG/H82unmTXsiYPq3KNoQeT1K0I0d0ZDnb9G23RI0IDhkarll6nMDHtt+i5Q82Y2rLLVb39NqrrrJdmk56vW7Bi57E9Tgbutkh4MUPod3nI6lK6At6J0dE4TSZLf9GNy2Z8mU55Z+d72SrnbVymda0mS3DcnyW9WjAodbIpVpMa80VD5vlXvNUbC/01XztGqeY1aI0+HWrqjZj+jw7is0/6/aNeuXYbGYJUJjL179+rRRx/VwYMHZW9vrzvuuEOzZs2St7e3nn/+ecvaEg888IDefPNNOTkVlW998803evnll3Xs2DH5+flp+vTp6ty5c7EExvldSGbPnq3s7Gx17txZH3zwgby8vEokMOLi4jRq1Cht27ZNXl5e+ve//61Ro0ZJkjIyMjRq1CitXLlS/v7+euihhzR37txiVSBbtmxR27Zt9emnn2rYsGFlnndVTmDgEqpoAgOlq8oJDJSuqiYwULqqnMBA6apqAgOlq8oJDJREAqNiedrX0h2+DxgdxmWdDtxBAqO6mDlzphYvXqyffvrJciwmJkYNGjTQiRMn5OFRdrkfCYxqiARGtUICo/ohgVG9kMCofkhgVC8kMKoXEhgViwTGlbHaNTCsXWJiorZu3arCwkIdOnRI06ZNU69evSy3FxYW6u2331b//v2vKHkBAAAAAAAureR+Trgiubm5GjlypI4dO6YaNWqof//+euKJJyQVtZf4+fkpNDRU69atMzhSAAAAAIDVozmiTCQwyik0NFT79+8v9TZXV1elp6eXehsAAAAAALh6tJAAAAAAAACrRwUGAAAAAABGo4WkTFRgAAAAAAAAq0cCAwAAAAAAWD1aSAAAAAAAMJRZKqSFpCxUYAAAAAAAAKtHAgMAAAAAAFg9EhgAAAAAAMDqsQYGAAAAAABGMktmc6HRUVg9KjAAAAAAAIDVI4EBAAAAAACsHi0kAAAAAAAYjW1Uy0QFBgAAAAAAsHokMAAAAAAAgNWjhQQAAAAAAKOZaSEpCxUYAAAAAADA6pHAAAAAAAAAVo8WEgAAAAAAjGQ2S4WFRkdh9ajAAAAAAAAAVo8EBgAAAAAAsHq0kAAAAAAAYDR2ISkTFRgAAAAAAMDqkcAAAAAAAABWjxYSAAAAAAAMZmYXkjJRgQEAAAAAAKweCQwAAAAAAGD1SGAAAAAAAACrxxoYAAAAAAAYysw2qleACgwAAAAAAGD1SGAAAAAAAACrRwsJAAAAAABGMksqpIWkLFRgAAAAAAAAq0cCAwAAAAAAWD1aSAAAAAAAMJq50OgIrB4VGAAAAAAAwOqRwAAAAAAAAFaPFhIAAAAAAAxklmRmF5IyUYEBAAAAAACsHgkMAAAAAABg9WghAQAAAADASGYzu5BcASowAAAAAACA1SOBAQAAAAAArB4JDAAAAAAAYPVYAwMAAAAAAIOxjWrZqMAAAAAAAABWjwQGAAAAAACwerSQAAAAAABgNLZRLRMVGAAAAAAAwOqRwAAAAAAAAFaPFhIrYu9p1pmQXUaHcd2dPn1aNWvWNDoMVCDmtHr5R81ngNEBVI5/zJweOGZ0BJXiHzOfkk57Gx1B5finzKnPO0ZHUDn+KfOZlppjdAjVyh2dW+jMGev+O+br62t0CDKZzWb2akGlatasmXbtqv6Jmn8S5rR6YT6rH+a0emE+qx/mtHphPoHrhxYSAAAAAABg9UhgAAAAAAAAq0cCA5VuxIgRRoeACsacVi/MZ/XDnFYvzGf1w5xWL8wncP2wBgYAAAAAALB6VGAAAAAAAACrRwIDAAAAAABYPRIYAAAAAADA6pHAAIB/uD179hgdAgAAAFAmEhgwRFZWlnJycowOAxVk48aN+umnn4wOA+XUsWNHNWnSRFOnTlViYqLR4QBAtbd8+XLl5+cbHQYqyNixY7V7926jwwD+EUhgoFI899xz2rlzpyRp9erV8vb2lpeXl1auXGlwZCiPO++8U1u3bpUkTZkyRf3799fAgQP12muvGRwZyiMxMVGvvPKKduzYoXr16qlTp05auHChMjMzjQ4N1yAvL0+bN2/WkiVLJEkZGRnKyMgwOCqU19tvv215g7R9+3aFhIQoLCxMv/zyi7GBoVzGjx8vf39/jRkzRjt27DA6HFyjgoICde7cWTfeeKOmTJmiuLg4o0MCqi22UUWl8Pf3V1RUlFxcXNSyZUs9//zz8vT01NixY7Vv3z6jw8NV8vHx0alTp2Rra6u6detqxYoVcnd3V+vWrRUTE2N0eLgGKSkp+uqrr/T+++/r2LFj6tWrl0aOHKnWrVsbHRquwr59+9SjRw85OjoqLi5O6enpWrNmjT777DNLQgNVS3BwsPbv3y9PT0+1b99e999/v9zd3TVr1izeAFdRe/bs0cKFC/XFF1/I1dVVgwcP1qBBg1SnTh2jQ0M5FBQUaO3atVq0aJFWrVqlli1basiQIerdu7fc3NyMDg+oNkhgoFJ4enoqJSVFSUlJatCggU6fPi1J8vDwUGpqqsHR4Wp5eXkpKSlJx44dU6dOnRQVFSVJcnd3V1pamsHRobzS09O1dOlSLViwQL///rv69OmjkJAQffLJJ+rWrZumT59udIi4Qm3atNHIkSM1ePBgeXl56ezZs8rIyFD9+vUVHx9vdHgoh/N/L9PS0hQaGqrTp0/L1tZWNWrU0Llz54wOD9fAbDbrxx9/1L/+9S/t379frVu31siRIzVgwADZ2FAsXRUdOHBAAwcO1L59++Ti4qL+/ftr4sSJCgwMNDo0oMqzMzoA/DPUr19fixYt0pEjR3TPPfdIks6cOSNnZ2eDI0N5tGnTRmPGjFFiYqJ69eolSYqKipKvr6/BkaE8Vq9erQULFmjt2rVq3bq1Hn30UfXs2VNOTk6SpNGjRyskJIQERhVy4MABDRo0SJJkMpkkSa6ursrKyjIyLFyD4OBgbdu2TQcOHFC7du1ka2ur1NRU2draGh0arkFUVJQWLlyohQsXysbGRq+88opCQkL04YcfaunSpVq2bJnRIeIKpaam6quvvtLChQu1d+9e9enTRzNmzFBISIimTZume++9V3v37jU6TKDKI4GBSjFjxgw9/fTTcnBw0CeffCJJWr9+vTp16mRwZCiPefPmadq0aapZs6aef/55SdJff/2lp59+2uDIUB4vvPCChgwZonfeeUf+/v4lbvf29ta7775b+YGh3OrUqaPffvtNzZo1sxzbuXOn6tata2BUuBZvvfWW+vbtKwcHBy1dulSStGrVKrVo0cLgyFAe06dP14IFC3T48GH169dPCxYs0O233265vU+fPqpVq5aBEeJq9O3bV+vXr1e7du00atQo9ezZU46Ojpbb3377bXl6ehoYIVB90EICAEA1s2rVKj3yyCMaNWqUpk2bpnHjxumjjz7S7NmzSRxXI3l5eZIke3t7gyPB1brvvvs0dOhQy1o1pfnuu++4XquIqVOnatCgQapdu/Ylx2RmZsrFxaUSowKqJxIYqBQbN25UnTp1FBYWpsTERL3wwguysbHR66+/ftkne1in3r17a+zYsWrbtq3l2ObNm/Xee+/p66+/NjAylEdubq7mzZun3bt3Kz09vdht8+fPNygqXKs//vhDs2fPVnR0tIKDg/XYY4+padOmRoeFcpo/f75uueUW3XzzzZZje/bs0d69ezV48GADIwMAoPKQwEClaNiwodavX6+QkBANHDhQkuTs7KzTp09rxYoVBkeHq3XxLiTn5efny8/PT0lJSQZGhvLo37+/9u7dq+7du5f4dOjll182KCoAFwsNDdXu3bvl5eVlOZacnKxbb71V0dHRBkaG8hgyZEipxx0dHRUUFKSePXuqSZMmlRwVyis4ONiy3tDFzs9n79699fjjj8vOju594FpxFaFSxMfHKyQkRPn5+Vq/fr2io6Pl4OCggIAAo0NDOTg5OSkjI0MeHh6WY+np6ZQxV1Hr16/XsWPHVKNGDaNDQQWhqqb6SU1NLfacKxXt8MUOJFWTh4eHFixYoB49eig4OFixsbFauXKl+vfvr4MHD2rKlCn66KOPLpnogHV56qmntHDhQj311FMKDg5WTEyMpk+frgceeEDe3t6aNm2aYmNj9eabbxodKlDlkcBApfDw8NDJkye1f/9+NWrUSG5ubsrNzbX076Jq6dy5s0aOHKmPP/7YsrXfmDFj1KVLF6NDQzmEhIQoJyfH6DBQgYYOHao9e/aoe/fu8vPzMzocVIBGjRpp6dKlevDBBy3HvvnmGzVs2NDAqFBekZGRWrNmjVq3bm059ssvv2j8+PH6/vvvtW7dOj3zzDMkMKqIefPm6fvvvy/2wdy9996rTp066cCBA2rfvr06duxIAgOoALSQoFJMmTJF06dPV25urt599131799fGzdu1AsvvKAdO3YYHR6u0tmzZzVo0CCtX79e3t7eSk5O1r333qsFCxbwKX4VsWHDBsvXf/zxh7766is9/fTTJd7sdujQobJDQwXw8vKiqqaa2bJli7p27ap77rlHEREROnLkiH788ccSb4JRNXh6eiopKalYS0FeXp58fX2VkpIis9ksd3f3EhVUsE7e3t46fvx4sSqpc+fOKSwsTGfPnpXZbJaHh4fS0tIMjBKoHkhgoNJERkbK1tZWERERlu9zcnJ00003GRwZyisxMVFxcXEKDg5mMdYqJiwsrMwxJpNJR48erYRoUNGaNGmi7777juqLaiY6OlpffPGFYmNjFRwcrIceekjBwcFGh4VyuPPOO3X77bdr4sSJcnJyUnZ2tiZMmKBt27bp559/1tGjR3XXXXcpJibG6FBxBYYOHaqYmBiNGzdOQUFBiouL0+uvv67AwEDNnz9f27Zt08iRI7Vv3z6jQwWqPBIYqDR5eXnavn27EhIS1K9fP2VkZEiSXF1dDY4MV8JsNlsWqCosLLzkOBsbm8oKCcAlTJs2jaoawIodP35cAwcO1K5duyyVjM2aNdOiRYsUFhamXbt26cSJE7rvvvuMDhVX4HwC6quvvlJCQoL8/f314IMPavz48XJxcdGJEyeUm5urkJAQo0MFqjwSGKgU+/bts+x1HhcXp/T0dK1Zs0afffaZlixZYnR4uALn17qQipIU/7va9vkER0FBgRHh4RoVFBRYEoyBgYFq2bJlsV1mULVcqsKGqpqqZcSIEZo1a5YkafDgwaXuciCxMGtVFhsba3nDy5tbACgbi3iiUjz++ON65ZVXNHjwYMsWcHfeeacee+wxgyPDlTpw4IDl62PHjhkYCSra3r171bNnT2VnZ1tKX52cnLRs2TLdcsstRoeHcuAarR4uTkTVrVvXwEhwPZw9e1YbN25UfHy8AgMD1b1792Lb5KJq2bRpk+bPn2+Zz8GDB6t9+/ZGhwVUO1RgoFJ4eXkpOTlZJpPJUiopqdjXAIzRrFkzDRgwQM8++6xMJpPMZrPeeecdLVq0SL/99pvR4QGQdOLEiVLXGrrUcVi3X375Rd26dVODBg0UGhqqmJgYHTx4UKtXr1arVq2MDg9Xac6cOXrxxRf16KOPWubzk08+0aRJk/iwDqhgJDBQKW699VbNnj1bzZo1syQtdu7cqTFjxmjnzp1Gh4erlJKSovfff19//PFHiRXSv/vuO4OiQnl5eHjo7NmzxVpGCgoK5OXlZWkbgvVr2LChDh48KEkKDg6+ZLsBiwJWTRe38V2MDwKqppYtW2rs2LHq37+/5diSJUs0depU/frrrwZGhvKoX7++vvrqKzVp0sRybO/everTp48OHz5sYGRA9UMLCSrFpEmT1K1bN40aNUq5ubl6/fXX9dFHH2n27NlGh4ZyeOCBB1RQUKBevXrJ2dnZ6HBwjbp27aoVK1aoV69elmMrV65Ut27dDIwKV+vi59OFCxcaGAmuh9I+b0pNTWXh5CoqMjJSDz74YLFjffv21ahRowyKCNciKSlJjRo1KnbshhtuILkIXAdUYKDS/PHHH5o9e7aio6MVHBysxx57TE2bNjU6LJSDh4eHzpw5IwcHB6NDQQV44IEHtGLFCjVt2lTBwcGKjY3Vb7/9pvvvv19OTk6WcSwUCFS+89U0CQkJCggIKHZbUlKSBgwYoDlz5hgUHcqrRYsWeuaZZzRw4EDLscWLF2vq1KnatWuXgZGhPO6//36FhIRoypQpcnFxUUZGhv773//q2LFjWrlypdHhAdUKCQwAV61r16564403dPPNNxsdCirAxIkTr2jcyy+/fJ0jQUXp3bu3xo4dq7Zt21qObd68We+9956+/vprAyPD1frpp59kNpvVtWtXrV271nLcZDLJz89PN9xwg4HRoby2bdum++67T/Xr11doaKiOHz+uw4cPa9WqVbrjjjuMDg9XKTExUf369dMvv/xiaeu644479MUXX5RIPAK4NiQwUClyc3M1b9487d69u8SaCXyqW/WcOnVKXbt2VcuWLeXn51fstvHjxxsUFYDzfHx8dOrUqWLrmuTn58vPz09JSUkGRobyyszMlIuLi9FhoAKdPXtWq1evtlTXdO3aVd7e3kaHhWsQGxurxMREBQQEKCgoyOhwgGqJNTBQKYYOHao9e/aoe/fuJd7wouoZN26cYmNjVadOnWKLyl1q0UBYv9zcXB06dEhnzpwp1mvfoUMHA6NCeTk5OSkjI0MeHh6WY+np6bK3tzcwKlytV199VePGjZMkvfHGG5cc98orr1RWSKhAXl5eGjRokNFhoJwKCwtLHAsMDFRgYGCx21mnBqhYJDBQKdatW6djx46pRo0aRoeCCrB48WJFRkbK39/f6FBQAbZs2aIHHnhAOTk5Sk1NlYeHh9LS0hQcHKyjR48aHR7KoXPnzho5cqQ+/vhjy+4VY8aMUZcuXYwODVchLi7O8nVsbKyBkaAitG3b9ooS/T///HMlRINrZWdnd9n5NJvNMplMKigoqMSogOqPBAYqRUhIiHJycowOAxUkPDycT3KrkbFjx+r555/X2LFj5eXlpeTkZL3yyiuUq1dh06ZN06BBg+Tt7W3px7733nu1YMECo0PDVZg5c6bl67lz5xoYCSrCo48+anQIqEDHjh0zOgTgH4k1MFAppk2bpq+++kpPP/10iRYSStSrnqlTp2rZsmV68sknmc9qwNPTU2fPnpWNjY28vLx09uxZ5ebmKiwsTPHx8UaHh2uQmJiouLg4BQcHq3bt2kaHg6t0pRVQ4eHh1zkSAFeisLBQJ0+elJ+fH60jwHVCAgOVIiwsrNTjJpOJEvUqiPmsXkJCQrR3717VqFFDjRo10tdffy0fHx/Vr19fKSkpRoeHK3S+XFkqvTf7PF5UVx02NjYymUy63Es1StSrrrlz52rBggWKj49XYGCgBg8erGHDhhkdFsrhfJve4sWLlZ+fL3t7e/Xv31/vv/++PD09jQ4PqFZoIUGloMyuemE+q5fevXtrzZo1GjhwoIYPH6727dvL3t5effv2NTo0XAVPT0/Lorql9WbTj131XC4Rhart1Vdf1fz58/Wvf/1LoaGhio6O1ptvvqmEhATLwq2oOp566illZGRo//79lvkcN26cnnrqKX322WdGhwdUK1RgACiX/Px8bdu2TfHx8QoKClKrVq1kZ0dOtDrYsmWL0tLS1LlzZz6tr0JiY2MVHBwsSYqOjr7kuNDQ0MoKCddBTEyM5Xn3/Hyj6gkLC9OmTZuKXY/R0dFq167dZa9fWKfatWvr6NGjxdaOSk9PV0REhE6ePGlgZED1w7sNXDcNGzbUwYMHJUnBwcGXXKk5JiamMsNCBfjrr7/UvXt3ZWVlKTg4WLGxsXJyctLKlSvVsGFDo8PDVSgoKFD9+vX1559/ytHRUZLUpk0bg6NCeVz8ZpYkRfWTmJio/v3765dffpGPj4+SkpJ0++23a/HixQoICDA6PFyljIwM1axZs9gxHx8fZWVlGRQRroWTk5NOnz5d7Ln3zJkzlr+rACoOCQxcN7Nnz7Z8vXDhQgMjQUV74oknNGLECD333HOWxNTUqVP1xBNPaOPGjQZHh6tha2srW1tbZWdn80Krihs8ePAVbdE4f/78SogGFe3xxx9XkyZNtGbNGrm6uiojI0MvvviiRo0apRUrVhgdHq5Sly5d9NBDD+mNN95QSEiIpeWgc+fORoeGcnj00Ud1zz336Nlnn7W0kLzzzjsaMWKE0aEB1Q4tJACumre3t06fPi1bW1vLsfz8fNWsWVNnz541MDKUx4wZM7R8+XK9+OKLCgoKKvYmmN0Nqo6JEydavj5z5ow+++wzde/eXaGhoYqJidHKlSs1dOhQvf/++wZGifLy9fVVYmJisS2sc3JyFBgYqDNnzhgYGcrj/KKPS5YssSz6+MADD+iDDz5QjRo1jA4PV8lsNmvu3Ln6/PPPlZCQoICAAA0YMEDDhw+/osQygCtHAgOV4u2331aHDh10yy23aPv27XrwwQdla2urzz//XK1atTI6PFylG2+8Ue+//36xLVM3btyoMWPG6MCBAwZGhvK41DoXLPhYdXXu3FkvvfSS2rZtazm2ZcsWTZo0SevXrzcwMpRXvXr19PXXX6tJkyaWY3v37lXv3r115MgRAyPDtSgsLNSZM2fk6+vLmkMAcAVIYKBSBAcHa//+/fL09FT79u11//33y93dXbNmzdKOHTuMDg9XacWKFRo4cKDuu+8+S6nk6tWrtXDhQt1///1Ghwf843l6eurMmTPFPq3Py8uTj4+PZacSVC2zZ8/Wiy++qEceeUShoaE6fvy45s2bp0mTJlGmXkWlpKTo0KFDSk9PL3b84g8HYL0WLFigwYMHS5I+/fTTS44bPnx4ZYUE/COQwECl8PDwUGpqqtLS0hQaGmppP6hRo4bOnTtndHgoh8jISH355ZeWUskHH3xQ9evXNzosAJLuuusuNW/eXK+88oqcnZ2VlZWll19+Wdu3b9fPP/9sdHgop40bN2rRokVKTExUQECA+vfvr7vvvtvosFAO8+bN0+jRo+Xm5lZs5wqTyaSjR48aGBmuVNeuXbVmzRpJUvv27UsdYzKZtGHDhsoMC6j2WMQTlSI4OFjbtm3TgQMH1K5dO9na2io1NbXYGgqoWurXr6+XXnrJ6DBQAdq2bVtqj66jo6OCgoLUu3dvde/e3YDIUF7z5s3TwIED5enpKS8vL509e1bNmjXTokWLjA4N5ZSbm6uNGzdq06ZNSkhIUGBgoGrXrq3WrVvLycnJ6PBwlcaNG6evv/5a9957r9GhoJzOJy8ksYA5UIlIYKBSvPXWW+rbt68cHBy0dOlSSdKqVavUokULgyNDeSQnJ2vq1KnavXt3idJXPt2teu666y599tlnGjp0qGVb3Pnz52vgwIEym80aPny4/v3vf+v55583OlRcoTp16mjbtm2KjY1VQkKC/P39FRISYnRYuAaPP/64Dh06pA8++MCyMOurr76q+Pj4y5avwzrl5+erU6dORoeBCvLdd9+pTp06xSpRIyMjFR0drXvuucfAyIDqhxYSGCYvL0+SivVoo2ro0qWLcnJy9OCDDxYrfZWkoUOHGhQVyqtly5aaN2+eGjZsaDn2119/aejQodqxY4d27typAQMGKCoqysAocbWSkpK0Zs0aJSYm6vnnn1dCQoIKCwsVFBRkdGgoBx8fH0VFRRXboSI5OVl169ZVcnKycYGhXN5++22lpaXp//7v/1i8sxqoV6+efv75Z/n7+1uOJSQk6K677lJkZKSBkQHVDwkMVIrL9XOyTWPV4+HhodOnT8vR0dHoUFABPD09derUqWLzmZWVJX9/f8saNW5ubiWqbWC9fvrpJ/Xp00fNmjXT1q1blZaWpp9++klTp07VypUrjQ4P5dC4cWN9//33CggIsByLj49Xp06d2P2piggODra065nNZp04cUIODg7y8fEpNi4mJsaI8HANPD09lZKSUuyY2WyWp6cnCycDFYwWElSKunXrymQy6Xy+7OJ+e7ZprHpuvvlmxcXFKSIiwuhQUAHatWunYcOG6ZVXXlFQUJDi4uI0YcIEtWnTRpK0b9++Yp8qwfo988wzWrJkie6++255eXlJKqq02blzp8GRobwGDx6sLl266Mknn1RQUJBiY2M1ffp0DRkypNgigexgYb0WLlxodAi4TsLDw7Vhw4Zi19+mTZsUFhZmYFRA9UQFBgxx4sQJTZw4UW3bttXAgQONDgdXafz48friiy80bNgw1a5du9htbBdW9SQnJ+uJJ57QsmXLlJ+fLzs7O/Xp00cffPCBfH19dejQIaWlpalZs2ZGh4ordH7hTkny9vZWcnKyCgsLVbNmTSUlJRkcHcrjSt4IsYMFYIzly5dr6NCheuSRRxQREaGoqCjNnTtXc+fOZXt5oIKRwIBhcnJyVL9+fUVHRxsdCq4S24VVT4WFhTp9+rRq1qxJT3YV17p1a40fP16dO3e2JDC+++47vfbaa9q0aZPR4QH/eL1799bYsWPVtm1by7HNmzfrvffe09dff21gZCivnTt36tNPP1VsbKyCg4P1yCOPqHnz5kaHBVQ7JDBgmL179+ruu+/W6dOnjQ4F+Mc7fPiwvvjiC8XHxyswMFADBgxQvXr1jA4L5bR9+3bdd9996tatm7788ksNGTJEK1as0IoVK3hBDVgBHx8fnTp1qth28vn5+fLz86NKCgAug4/YUCnatm2rdu3aWf41bdpULVu21LPPPmt0aCins2fPav78+Xr99dc1f/58S7k6qp6VK1eqadOm+uuvv+Tt7a1Dhw6pWbNmWrFihdGhoZxuv/127d27V40bN9bw4cMVHh6uXbt2kbwArISTk5MyMjKKHUtPT2dntioqLy9PL7/8ssLDw+Xk5KTw8HC9/PLLys3NNTo0oNqhAgOV4rPPPrN8bTKZ5OrqqptvvplPeKuoX375Rd26dVODBg0UGhqqmJgYHTx4UKtXr1arVq2MDg9X6aabbtL7779frDVo06ZNGjNmjPbv329gZCivlJQUvf/++/r999+Vnp5ebOHk7777zsDIAEhF60VlZWXp448/loeHh1JTU/XEE0/Izs5O8+bNMzo8XKWxY8dq586devnllxUaGqro6GhNmjRJzZo10zvvvGN0eEC1QgIDlSInJ0eTJ0/WF198ocTERAUEBKh///4aN26cnJycjA4PV6lly5YaO3as+vfvbzm2ZMkSTZ06Vb/++quBkaE8vLy8dPr0adnZXdiYKj8/X76+vpZtVFG1dOrUSQUFBerVq5ecnZ2L3fbII48YFBWA886ePatBgwZp/fr1lnVq7r33Xi1YsEA1atQwOjxcpaCgIO3Zs6fYlrhnzpxRkyZNFB8fb2BkQPVDAgOV4pFHHtGhQ4c0btw4S2b6tddeU7169fTpp58aHR6ukpeXl5KSkoot9FhQUCBfX19aSaqg9u3bq0uXLvrPf/5jOfbmm29qzZo1LPhYRXl4eOjMmTNycHAwOhQAl5GYmKi4uDgFBweX2NULVUdgYKD27t1bIoFx8803KyEhwcDIgOqHBAYqhY+Pj6Kioop9qpCcnKy6desqOTnZuMBQLi1atNAzzzxTbAvcxYsXa+rUqdq1a5eBkaE8/vrrL3Xv3l0ZGRkKDg5WbGysXFxctHLlSjVs2NDo8FAOXbt21RtvvKGbb77Z6FAAlGLs2LEaOnSobrnlFqNDQQV45plnLC0kISEhio6O1uTJk9WsWTO9++67RocHVCskMFApGjdurO+//14BAQGWY/Hx8erUqZMOHDhgYGQoj23btum+++5T/fr1FRoaquPHj+vw4cNatWqV7rjjDqPDQznk5+dr+/btSkhIUEBAgFq2bMliclXYqVOn1LVrV7Vs2VJ+fn7Fbhs/frxBUQE476mnntKSJUtUs2ZNDR48WA899JCCgoKMDgvllJubq8mTJ+vzzz9XQkKCZTevcePGydHR0ejwgGqFBAaumw0bNli+3rlzpz7//HM9+eSTCgoKUmxsrKZPn66BAwcWK1tH1XH27FmtXr3a8oa3a9eu8vb2NjoslFNeXp4lgdGvXz/L6viurq4GR4byeOyxx7RixQq1bdu22BoYJpNJ8+fPNzAyAOcVFBRo7dq1WrRokVatWqWWLVtqyJAh6t27t9zc3IwOD1dh48aNqlOnjsLCwpSYmKj//Oc/srW11euvv05rEFDBSGDgugkLCytzjMlk0tGjRyshGlSk+Ph4ubi4yMvLy3Ls7NmzysrKKlZlg6ph37596tGjhxwdHRUXF6f09HStWbNGn332mZYsWWJ0eCgHd3d3RUZGyt/f3+hQAFyBAwcOaODAgdq3b59cXFzUv39/TZw4UYGBgUaHhivQsGFDrV+/XiEhIZb2WmdnZ50+fZotyYEKRgIDwFVr3ry5Pv30U910002WY/v27dOjjz6qHTt2GBgZyqNNmzYaOXKkBg8eLC8vL509e1YZGRmqX78+q6dXUU2aNNGPP/4oX19fo0MBcAmpqan66quvtHDhQu3du1d9+vTR0KFDFRISomnTpmnDhg3au3ev0WHiCpzfCjc/P1+1atVSTEyMHBwcFBAQoDNnzhgdHlCtkMAAcNU8PT2VkpJyxcdh3by8vJScnCyTyWTZzk9Ssa9RtUydOlXLli3Tk08+WWINjA4dOhgUFYDz+vbtq/Xr16tdu3YaMmSIevbsWWythMLCQnl6eiotLc3AKHGlgoKC9Ntvv2n//v2aMGGCNm/erNzcXNWsWZPXRUAFszM6AABVT82aNXXkyBHVrVvXcuzIkSPFtg9D1VGnTh399ttvatasmeXYzp07i80vqpbp06dLkl588cVix2nbA6zD7bffrg8//PCS6yPY2Njo5MmTlRwVyuvJJ59U8+bNlZuba9l1ZOvWrWrQoIGxgQHVEBUYAK7aa6+9piVLlujVV19VeHi4oqKi9H//93968MEHS7xhgvVbtWqVHnnkEY0aNUpTp07VSy+9pJkzZ2rOnDnq1KmT0eEBQLW3ceNG2djY6M477zQ6FJRTZGSkbG1tFRERYfk+JyenWLstgGtHAgPAVSssLNS0adP0ySefKC4uTsHBwXr00Uf17LPPymQyGR0eymH37t2aNWuWoqOjFRISokcffVRNmzY1OiwAqJbuvPNOvfbaa2rdurWmTJmit99+W3Z2dho9ejQfBADAZZDAAFAu33//vb744gudOnVKq1at0q5du5Samkp/fRU0fvz4Uo87OjoqKChIXbp0KbGOAgCg/Hx8fHTq1CnZ2tqqbt26WrFihdzd3dW6dWvFxMQYHR4AWC0bowMAUPV88MEHevzxx1W/fn1t3rxZUtF2YS+99JLBkaE8IiMjNWXKFG3cuFFHjhzRxo0bNWXKFP3xxx+aOXOmwsPDtW7dOqPDBIBqo7CwUCaTSVFRUTKbzWrUqJGCg4N19uxZo0MDAKtGBQaAqxYREaEff/xRderUsWy7WVBQoFq1aikpKcno8HCVHnzwQQ0YMEC9evWyHFu+fLk+//xzLVmyRJ999pneeecd7d6927ggAaAa6d69u4KDg5WYmKiIiAhNnTpVUVFR6tixo44dO2Z0eABgtUhgALhqtWrVUmJiomxtbS1bbWZnZyssLEyJiYlGh4er5OnpqeTkZNna2lqOFRQUyMvLS6mpqcW+BgBcu6SkJE2bNk0ODg7697//LVdXV61evVqHDx/WM888Y3R4AGC1aCEBcNXatWunN954o9ix999/X+3btzcoIlyLiIgIzZw5s9ixjz76yLKS+pkzZ+Ti4mJEaABQLbm7u8vW1lYLFy5UrVq1VK9ePf3yyy8aNWqU0aEBgFWjAgPAVUtMTFT37t115swZxcfHKzw8XO7u7lq1atUl97SH9fr999/Vu3dvFRQUKDAwUPHx8bK1tdWyZct022236eeff9ahQ4f02GOPGR0qAFQLjzzyiCIjI/Xiiy8qNDRU0dHReu2111SvXj19+umnRocHAFaLBAaAcjGbzfr1118VHR2t4OBgtWjRQjY2FHVVVXl5edq+fbsSEhLk7++vVq1ayd7e3uiwAKBa8vHxUVRUlGrUqGE5lpycrLp16yo5Odm4wADAytkZHQCAqslkMqlFixZq0aKF0aGgAtjb26tt27ZGhwEA/wi1a9dWZmZmsQRGVlaW/P39jQsKAKoAEhgAAABAJRo8eLC6dOmiJ598UkFBQYqNjdX06dM1ZMgQbdiwwTKuQ4cOBkYJANaHFhIAAACgEoWFhZU5xmQy6ejRo5UQDQBUHSQwAAAAAACA1WPFPQAAAAAAYPVIYAAAAAAAAKtHAgMAACvy8MMP66WXXpIkbd68WTfccEOl/FyTyaQjR46Uettdd92lOXPmXNHj1KlTRz/88EO5YriW+wIAgOqPBAYAAFepTp06cnZ2lpubm/z8/PTwww8rPT29wn9O27ZtdejQoTLHzZs3T23atKnwnw8AAGBNSGAAAFAOK1euVHp6un7//Xft2rVLkydPLjEmPz/fgMgAAACqJxIYAABcg8DAQN17773av3+/pKJWjOnTp6tevXqqV6+eJGnVqlW65ZZbVKNGDd1xxx3au3ev5f5//PGHbrvtNrm7u6tfv37Kzs623LZp0yYFBQVZvo+NjVXv3r1Vs2ZN+fj4aMyYMTp48KBGjRqlX375RW5ubqpRo4YkKScnR88995xCQkLk5+enUaNGKSsry/JYb731lvz9/RUQEKBPP/30is83KipKHTp0kI+Pj3x9ffXQQw/p3Llzxcb8+uuvatSokby8vDRs2LBi53S53wUAAMDlkMAAAOAaxMbGas2aNbr11lstx7799lvt2LFDf/75p/744w8NHz5cH3/8sZKSkjRy5Ej16NFDOTk5ys3NVc+ePTV48GAlJyfrgQce0NKlS0v9OQUFBbrvvvsUGhqq48ePKz4+Xv3791fDhg310UcfqVWrVkpPT7ckE1544QVFRkZq9+7dOnLkiOLj4/XKK69IktatW6epU6fq+++/1+HDh69q3Qmz2az//ve/SkhI0MGDBxUbG6sJEyYUG7No0SKtX79eUVFRioyMtFSnXO53AQAAUBYSGAAAlEPPnj1Vo0YNtWnTRnfeeadefPFFy23//e9/5e3tLWdnZ82aNUsjR45Uy5YtZWtrq6FDh8rR0VHbt2/X9u3blZeXp2eeeUb29vbq27evmjdvXurP27lzpxISEvTWW2/J1dVVTk5Ol1z3wmw2a9asWXrnnXfk7e0td3d3vfjii1q8eLEk6csvv9SwYcN04403ytXVtUQC4nLq1q2re+65R46OjqpZs6aeffZZ/fTTT8XGjBkzRsHBwfL29ta4ceP0xRdfSNJlfxcAAABlsTM6AAAAqqJvv/1WHTt2LPW24OBgy9fR0dH67LPP9MEHH1iO5ebmKiEhQSaTSYGBgTKZTJbbQkNDS33M2NhYhYaGys6u7D/dp0+fVmZmppo2bWo5ZjabVVBQIElKSEgodtulfmZpTp48qaefflqbN29WWlqaCgsL5eXlVWzMxecfGhqqhIQESZf/XQAAAJSFCgwAACrYxQmJ4OBgjRs3TufOnbP8y8zM1IABA+Tv76/4+HiZzWbL+JiYmFIfMzg4WDExMaUuDHrxz5MkX19fOTs768CBA5afmZKSYtkpxd/fX7GxsWX+zNK8+OKLMplM2rdvn1JTU7Vw4cJi8Usq8dgBAQFl/i4AAADKQgIDAIDr6LHHHtNHH32kHTt2yGw2KyMjQ6tXr1ZaWppatWolOzs7vf/++8rLy9OyZcu0c+fOUh+nRYsW8vf31wsvvKCMjAxlZ2dr69atkiQ/Pz/FxcUpNzdXkmRjY6PHHntMY8eO1alTpyRJ8fHxWr9+vSTpwQcf1Lx58/Tnn38qMzNTEydOvOLzSUtLk5ubmzw9PRUfH6+33nqrxJjp06crLi5OycnJevXVV9WvX78yfxcAAABlIYEBAMB11KxZM82ePVtjxoyRl5eX6tatq3nz5kmSHBwctGzZMs2bN0/e3t5asmSJevfuXerj2NraauXKlTpy5IhCQkIUFBSkJUuWSJI6dOigxo0bq3bt2vL19ZUkTZkyRXXr1tXtt98uDw8PdezYUYcOHZIk3XvvvXrmmWfUoUMH1a1bVx06dLji83n55Zf1+++/y9PTU926dSs13oEDB6pTp04KDw9XRESEXnrppTJ/FwAAAGUxmf+37hMAAAAAAMDKUIEBAAAAAACsHgkMAAAAAABg9UhgAAAAAAAAq0cCAwAAAAAAWD0SGAAAAAAAwOqRwAAAAAAAAFaPBAYAAAAAALB6JDAAAAAAAIDVI4EBAAAAAACs3v8DDCy27hiP/K0AAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 2160x1080 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from sklearn import metrics\n",
"import matplotlib.pyplot as plt\n",
"\n",
"y_predicted = classifier.predict(X_test)\n",
"\n",
"%matplotlib inline\n",
"plt.rcParams[\"figure.figsize\"] = (30, 15)\n",
"plt.rcParams[\"figure.facecolor\"] = \"white\"\n",
"plt.rcParams[\"font.size\"] = 12\n",
"plt.rcParams[\"axes.xmargin\"] = 0\n",
"\n",
"print(metrics.classification_report(y_test, y_predicted, digits=4))\n",
"metrics.ConfusionMatrixDisplay.from_predictions(\n",
" y_true=y_test,\n",
" y_pred=y_predicted,\n",
" xticks_rotation=\"vertical\",\n",
" normalize=\"pred\",\n",
" values_format=\".2f\",\n",
")\n",
"None"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.10.4 ('.env': venv)",
"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.10.4"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "02dd6d3afbfa9fbbe1037d64ad9014965528a1ccad21929d6e72f466389a68ad"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}