Skip to content

Instantly share code, notes, and snippets.

@GeorgyGol
Created February 7, 2019 14:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save GeorgyGol/0655889e77c4913e73944b09e3d797c1 to your computer and use it in GitHub Desktop.
Save GeorgyGol/0655889e77c4913e73944b09e3d797c1 to your computer and use it in GitHub Desktop.
Тихий дон - проверка авторства
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Анализ результатов работы модели по определению авторства \"Тихого Дона\"\n",
"По текстам авторов построена и обучена нейросеть.\n",
"Текст \"Тихого Дона\" разбит по главам и пропущен через нейросеть.\n",
"Результаты работы - в трех файлах: \"result_Krukov.csv\", \"result_Sholokhov.csv\" и \"result_Tolstoy.csv\" (проверочный)"
]
},
{
"cell_type": "code",
"execution_count": 112,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import re\n",
"import matplotlib.pyplot as plt\n",
"\n",
"%matplotlib notebook"
]
},
{
"cell_type": "code",
"execution_count": 113,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(167, 7)\n"
]
}
],
"source": [
"pdf_kru=pd.read_csv('result_Krukov.csv', sep=';', index_col=None, dtype={'Prob_1':float, 'Prob_2':float})\n",
"\n",
"pdf_kru.head(10)\n",
"print(pdf_kru.shape)"
]
},
{
"cell_type": "code",
"execution_count": 114,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>book</th>\n",
" <th>part</th>\n",
" <th>head</th>\n",
" <th>auth</th>\n",
" <th>Prob_1</th>\n",
" <th>Prob_2</th>\n",
" <th>text</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>Sholokhov</td>\n",
" <td>0.341598</td>\n",
" <td>0.658402</td>\n",
" <td>Мелеховский двор — на самом краю хутора. Ворот...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>Sholokhov</td>\n",
" <td>0.337232</td>\n",
" <td>0.662768</td>\n",
" <td>Редкие в пепельном рассветном небе зыбились зв...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>Sholokhov</td>\n",
" <td>0.344016</td>\n",
" <td>0.655984</td>\n",
" <td>Григорий пришел с игрищ после первых кочетов. ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>NOT Sholokhov</td>\n",
" <td>0.535883</td>\n",
" <td>0.464117</td>\n",
" <td>К вечеру собралась гроза. Над хутором стала бу...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>Sholokhov</td>\n",
" <td>0.484904</td>\n",
" <td>0.515096</td>\n",
" <td>До хутора Сетракова — места лагерного сбора — ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>Sholokhov</td>\n",
" <td>0.442046</td>\n",
" <td>0.557954</td>\n",
" <td>Возле лобастого, с желтой песчаной лысиной кур...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>7</td>\n",
" <td>Sholokhov</td>\n",
" <td>0.388473</td>\n",
" <td>0.611527</td>\n",
" <td>Аксинью выдали за Степана семнадцати лет. Взял...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>8</td>\n",
" <td>Sholokhov</td>\n",
" <td>0.314902</td>\n",
" <td>0.685098</td>\n",
" <td>За два дня до троицы хуторские делили луг. На ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>9</td>\n",
" <td>Sholokhov</td>\n",
" <td>0.398839</td>\n",
" <td>0.601161</td>\n",
" <td>От троицы только и осталось по хуторским двора...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>10</td>\n",
" <td>Sholokhov</td>\n",
" <td>0.407387</td>\n",
" <td>0.592613</td>\n",
" <td>Не лазоревым алым цветом, а собачьей бесилой, ...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" book part head auth Prob_1 Prob_2 \\\n",
"0 1 1 1 Sholokhov 0.341598 0.658402 \n",
"1 1 1 2 Sholokhov 0.337232 0.662768 \n",
"2 1 1 3 Sholokhov 0.344016 0.655984 \n",
"3 1 1 4 NOT Sholokhov 0.535883 0.464117 \n",
"4 1 1 5 Sholokhov 0.484904 0.515096 \n",
"5 1 1 6 Sholokhov 0.442046 0.557954 \n",
"6 1 1 7 Sholokhov 0.388473 0.611527 \n",
"7 1 1 8 Sholokhov 0.314902 0.685098 \n",
"8 1 1 9 Sholokhov 0.398839 0.601161 \n",
"9 1 1 10 Sholokhov 0.407387 0.592613 \n",
"\n",
" text \n",
"0 Мелеховский двор — на самом краю хутора. Ворот... \n",
"1 Редкие в пепельном рассветном небе зыбились зв... \n",
"2 Григорий пришел с игрищ после первых кочетов. ... \n",
"3 К вечеру собралась гроза. Над хутором стала бу... \n",
"4 До хутора Сетракова — места лагерного сбора — ... \n",
"5 Возле лобастого, с желтой песчаной лысиной кур... \n",
"6 Аксинью выдали за Степана семнадцати лет. Взял... \n",
"7 За два дня до троицы хуторские делили луг. На ... \n",
"8 От троицы только и осталось по хуторским двора... \n",
"9 Не лазоревым алым цветом, а собачьей бесилой, ... "
]
},
"execution_count": 114,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pdf_sho=pd.read_csv('result_Sholokhov.csv', sep=';', index_col=None, dtype={'Prob_1':float, 'Prob_2':float})\n",
"pdf_sho.head(10)"
]
},
{
"cell_type": "code",
"execution_count": 115,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>book</th>\n",
" <th>part</th>\n",
" <th>head</th>\n",
" <th>auth</th>\n",
" <th>Prob_1</th>\n",
" <th>Prob_2</th>\n",
" <th>text</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>NOT Tolstoy</td>\n",
" <td>0.960415</td>\n",
" <td>0.039585</td>\n",
" <td>Мелеховский двор — на самом краю хутора. Ворот...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>NOT Tolstoy</td>\n",
" <td>0.964520</td>\n",
" <td>0.035480</td>\n",
" <td>Редкие в пепельном рассветном небе зыбились зв...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>NOT Tolstoy</td>\n",
" <td>0.969212</td>\n",
" <td>0.030788</td>\n",
" <td>Григорий пришел с игрищ после первых кочетов. ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>NOT Tolstoy</td>\n",
" <td>0.968014</td>\n",
" <td>0.031986</td>\n",
" <td>К вечеру собралась гроза. Над хутором стала бу...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>NOT Tolstoy</td>\n",
" <td>0.923243</td>\n",
" <td>0.076757</td>\n",
" <td>До хутора Сетракова — места лагерного сбора — ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>NOT Tolstoy</td>\n",
" <td>0.946415</td>\n",
" <td>0.053585</td>\n",
" <td>Возле лобастого, с желтой песчаной лысиной кур...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>7</td>\n",
" <td>NOT Tolstoy</td>\n",
" <td>0.811856</td>\n",
" <td>0.188144</td>\n",
" <td>Аксинью выдали за Степана семнадцати лет. Взял...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>8</td>\n",
" <td>NOT Tolstoy</td>\n",
" <td>0.941397</td>\n",
" <td>0.058603</td>\n",
" <td>За два дня до троицы хуторские делили луг. На ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>9</td>\n",
" <td>NOT Tolstoy</td>\n",
" <td>0.957764</td>\n",
" <td>0.042236</td>\n",
" <td>От троицы только и осталось по хуторским двора...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>10</td>\n",
" <td>NOT Tolstoy</td>\n",
" <td>0.932225</td>\n",
" <td>0.067775</td>\n",
" <td>Не лазоревым алым цветом, а собачьей бесилой, ...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" book part head auth Prob_1 Prob_2 \\\n",
"0 1 1 1 NOT Tolstoy 0.960415 0.039585 \n",
"1 1 1 2 NOT Tolstoy 0.964520 0.035480 \n",
"2 1 1 3 NOT Tolstoy 0.969212 0.030788 \n",
"3 1 1 4 NOT Tolstoy 0.968014 0.031986 \n",
"4 1 1 5 NOT Tolstoy 0.923243 0.076757 \n",
"5 1 1 6 NOT Tolstoy 0.946415 0.053585 \n",
"6 1 1 7 NOT Tolstoy 0.811856 0.188144 \n",
"7 1 1 8 NOT Tolstoy 0.941397 0.058603 \n",
"8 1 1 9 NOT Tolstoy 0.957764 0.042236 \n",
"9 1 1 10 NOT Tolstoy 0.932225 0.067775 \n",
"\n",
" text \n",
"0 Мелеховский двор — на самом краю хутора. Ворот... \n",
"1 Редкие в пепельном рассветном небе зыбились зв... \n",
"2 Григорий пришел с игрищ после первых кочетов. ... \n",
"3 К вечеру собралась гроза. Над хутором стала бу... \n",
"4 До хутора Сетракова — места лагерного сбора — ... \n",
"5 Возле лобастого, с желтой песчаной лысиной кур... \n",
"6 Аксинью выдали за Степана семнадцати лет. Взял... \n",
"7 За два дня до троицы хуторские делили луг. На ... \n",
"8 От троицы только и осталось по хуторским двора... \n",
"9 Не лазоревым алым цветом, а собачьей бесилой, ... "
]
},
"execution_count": 115,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pdf_tol=pd.read_csv('result_Tolstoy.csv', sep=';', index_col=None, dtype={'Prob_1':float, 'Prob_2':float})\n",
"pdf_tol.head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## По количеству глав:"
]
},
{
"cell_type": "code",
"execution_count": 116,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Кол-во глав с авторством Крюкова (по модели) : 97\n",
"Кол-во глав с авторством Шолохова (по модели) : 99\n",
"Кол-во глав с авторством Толстого (по модели) : 0\n",
"Всего глав : 167\n"
]
}
],
"source": [
"print('Кол-во глав с авторством Крюкова (по модели) :', len(pdf_kru[pdf_kru['Prob_2']>0.5]))\n",
"print('Кол-во глав с авторством Шолохова (по модели) :', len(pdf_sho[pdf_sho['Prob_2']>0.5]))\n",
"print('Кол-во глав с авторством Толстого (по модели) :', len(pdf_tol[pdf_tol['Prob_2']>0.5]))\n",
"print('Всего глав :', len(pdf_sho))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" ## Средние вероятности:"
]
},
{
"cell_type": "code",
"execution_count": 117,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Средняя (по главам) вероятность авторства Крюкова (по модели) : 0.5389567431100931\n",
"Средняя (по главам) вероятность авторства Шолохова (по модели) : 0.5186877797636564\n"
]
}
],
"source": [
"print('Средняя (по главам) вероятность авторства Крюкова (по модели) :', pdf_kru['Prob_2'].mean())\n",
"print('Средняя (по главам) вероятность авторства Шолохова (по модели) :', pdf_sho['Prob_2'].mean())\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Характеристики распределений вероятностей \"да\" авторов"
]
},
{
"cell_type": "code",
"execution_count": 118,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"application/javascript": [
"/* Put everything inside the global mpl namespace */\n",
"window.mpl = {};\n",
"\n",
"\n",
"mpl.get_websocket_type = function() {\n",
" if (typeof(WebSocket) !== 'undefined') {\n",
" return WebSocket;\n",
" } else if (typeof(MozWebSocket) !== 'undefined') {\n",
" return MozWebSocket;\n",
" } else {\n",
" alert('Your browser does not have WebSocket support.' +\n",
" 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
" 'Firefox 4 and 5 are also supported but you ' +\n",
" 'have to enable WebSockets in about:config.');\n",
" };\n",
"}\n",
"\n",
"mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
" this.id = figure_id;\n",
"\n",
" this.ws = websocket;\n",
"\n",
" this.supports_binary = (this.ws.binaryType != undefined);\n",
"\n",
" if (!this.supports_binary) {\n",
" var warnings = document.getElementById(\"mpl-warnings\");\n",
" if (warnings) {\n",
" warnings.style.display = 'block';\n",
" warnings.textContent = (\n",
" \"This browser does not support binary websocket messages. \" +\n",
" \"Performance may be slow.\");\n",
" }\n",
" }\n",
"\n",
" this.imageObj = new Image();\n",
"\n",
" this.context = undefined;\n",
" this.message = undefined;\n",
" this.canvas = undefined;\n",
" this.rubberband_canvas = undefined;\n",
" this.rubberband_context = undefined;\n",
" this.format_dropdown = undefined;\n",
"\n",
" this.image_mode = 'full';\n",
"\n",
" this.root = $('<div/>');\n",
" this._root_extra_style(this.root)\n",
" this.root.attr('style', 'display: inline-block');\n",
"\n",
" $(parent_element).append(this.root);\n",
"\n",
" this._init_header(this);\n",
" this._init_canvas(this);\n",
" this._init_toolbar(this);\n",
"\n",
" var fig = this;\n",
"\n",
" this.waiting = false;\n",
"\n",
" this.ws.onopen = function () {\n",
" fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
" fig.send_message(\"send_image_mode\", {});\n",
" if (mpl.ratio != 1) {\n",
" fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
" }\n",
" fig.send_message(\"refresh\", {});\n",
" }\n",
"\n",
" this.imageObj.onload = function() {\n",
" if (fig.image_mode == 'full') {\n",
" // Full images could contain transparency (where diff images\n",
" // almost always do), so we need to clear the canvas so that\n",
" // there is no ghosting.\n",
" fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
" }\n",
" fig.context.drawImage(fig.imageObj, 0, 0);\n",
" };\n",
"\n",
" this.imageObj.onunload = function() {\n",
" fig.ws.close();\n",
" }\n",
"\n",
" this.ws.onmessage = this._make_on_message_function(this);\n",
"\n",
" this.ondownload = ondownload;\n",
"}\n",
"\n",
"mpl.figure.prototype._init_header = function() {\n",
" var titlebar = $(\n",
" '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
" 'ui-helper-clearfix\"/>');\n",
" var titletext = $(\n",
" '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
" 'text-align: center; padding: 3px;\"/>');\n",
" titlebar.append(titletext)\n",
" this.root.append(titlebar);\n",
" this.header = titletext[0];\n",
"}\n",
"\n",
"\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._init_canvas = function() {\n",
" var fig = this;\n",
"\n",
" var canvas_div = $('<div/>');\n",
"\n",
" canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
"\n",
" function canvas_keyboard_event(event) {\n",
" return fig.key_event(event, event['data']);\n",
" }\n",
"\n",
" canvas_div.keydown('key_press', canvas_keyboard_event);\n",
" canvas_div.keyup('key_release', canvas_keyboard_event);\n",
" this.canvas_div = canvas_div\n",
" this._canvas_extra_style(canvas_div)\n",
" this.root.append(canvas_div);\n",
"\n",
" var canvas = $('<canvas/>');\n",
" canvas.addClass('mpl-canvas');\n",
" canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
"\n",
" this.canvas = canvas[0];\n",
" this.context = canvas[0].getContext(\"2d\");\n",
"\n",
" var backingStore = this.context.backingStorePixelRatio ||\n",
"\tthis.context.webkitBackingStorePixelRatio ||\n",
"\tthis.context.mozBackingStorePixelRatio ||\n",
"\tthis.context.msBackingStorePixelRatio ||\n",
"\tthis.context.oBackingStorePixelRatio ||\n",
"\tthis.context.backingStorePixelRatio || 1;\n",
"\n",
" mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
"\n",
" var rubberband = $('<canvas/>');\n",
" rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
"\n",
" var pass_mouse_events = true;\n",
"\n",
" canvas_div.resizable({\n",
" start: function(event, ui) {\n",
" pass_mouse_events = false;\n",
" },\n",
" resize: function(event, ui) {\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" stop: function(event, ui) {\n",
" pass_mouse_events = true;\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" });\n",
"\n",
" function mouse_event_fn(event) {\n",
" if (pass_mouse_events)\n",
" return fig.mouse_event(event, event['data']);\n",
" }\n",
"\n",
" rubberband.mousedown('button_press', mouse_event_fn);\n",
" rubberband.mouseup('button_release', mouse_event_fn);\n",
" // Throttle sequential mouse events to 1 every 20ms.\n",
" rubberband.mousemove('motion_notify', mouse_event_fn);\n",
"\n",
" rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
" rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
"\n",
" canvas_div.on(\"wheel\", function (event) {\n",
" event = event.originalEvent;\n",
" event['data'] = 'scroll'\n",
" if (event.deltaY < 0) {\n",
" event.step = 1;\n",
" } else {\n",
" event.step = -1;\n",
" }\n",
" mouse_event_fn(event);\n",
" });\n",
"\n",
" canvas_div.append(canvas);\n",
" canvas_div.append(rubberband);\n",
"\n",
" this.rubberband = rubberband;\n",
" this.rubberband_canvas = rubberband[0];\n",
" this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
" this.rubberband_context.strokeStyle = \"#000000\";\n",
"\n",
" this._resize_canvas = function(width, height) {\n",
" // Keep the size of the canvas, canvas container, and rubber band\n",
" // canvas in synch.\n",
" canvas_div.css('width', width)\n",
" canvas_div.css('height', height)\n",
"\n",
" canvas.attr('width', width * mpl.ratio);\n",
" canvas.attr('height', height * mpl.ratio);\n",
" canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
"\n",
" rubberband.attr('width', width);\n",
" rubberband.attr('height', height);\n",
" }\n",
"\n",
" // Set the figure to an initial 600x600px, this will subsequently be updated\n",
" // upon first draw.\n",
" this._resize_canvas(600, 600);\n",
"\n",
" // Disable right mouse context menu.\n",
" $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
" return false;\n",
" });\n",
"\n",
" function set_focus () {\n",
" canvas.focus();\n",
" canvas_div.focus();\n",
" }\n",
"\n",
" window.setTimeout(set_focus, 100);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>')\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items) {\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) {\n",
" // put a spacer in here.\n",
" continue;\n",
" }\n",
" var button = $('<button/>');\n",
" button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
" 'ui-button-icon-only');\n",
" button.attr('role', 'button');\n",
" button.attr('aria-disabled', 'false');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
"\n",
" var icon_img = $('<span/>');\n",
" icon_img.addClass('ui-button-icon-primary ui-icon');\n",
" icon_img.addClass(image);\n",
" icon_img.addClass('ui-corner-all');\n",
"\n",
" var tooltip_span = $('<span/>');\n",
" tooltip_span.addClass('ui-button-text');\n",
" tooltip_span.html(tooltip);\n",
"\n",
" button.append(icon_img);\n",
" button.append(tooltip_span);\n",
"\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" var fmt_picker_span = $('<span/>');\n",
"\n",
" var fmt_picker = $('<select/>');\n",
" fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
" fmt_picker_span.append(fmt_picker);\n",
" nav_element.append(fmt_picker_span);\n",
" this.format_dropdown = fmt_picker[0];\n",
"\n",
" for (var ind in mpl.extensions) {\n",
" var fmt = mpl.extensions[ind];\n",
" var option = $(\n",
" '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
" fmt_picker.append(option)\n",
" }\n",
"\n",
" // Add hover states to the ui-buttons\n",
" $( \".ui-button\" ).hover(\n",
" function() { $(this).addClass(\"ui-state-hover\");},\n",
" function() { $(this).removeClass(\"ui-state-hover\");}\n",
" );\n",
"\n",
" var status_bar = $('<span class=\"mpl-message\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"}\n",
"\n",
"mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
" // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
" // which will in turn request a refresh of the image.\n",
" this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
"}\n",
"\n",
"mpl.figure.prototype.send_message = function(type, properties) {\n",
" properties['type'] = type;\n",
" properties['figure_id'] = this.id;\n",
" this.ws.send(JSON.stringify(properties));\n",
"}\n",
"\n",
"mpl.figure.prototype.send_draw_message = function() {\n",
" if (!this.waiting) {\n",
" this.waiting = true;\n",
" this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
" }\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" var format_dropdown = fig.format_dropdown;\n",
" var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
" fig.ondownload(fig, format);\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
" var size = msg['size'];\n",
" if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
" fig._resize_canvas(size[0], size[1]);\n",
" fig.send_message(\"refresh\", {});\n",
" };\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
" var x0 = msg['x0'] / mpl.ratio;\n",
" var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
" var x1 = msg['x1'] / mpl.ratio;\n",
" var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
" x0 = Math.floor(x0) + 0.5;\n",
" y0 = Math.floor(y0) + 0.5;\n",
" x1 = Math.floor(x1) + 0.5;\n",
" y1 = Math.floor(y1) + 0.5;\n",
" var min_x = Math.min(x0, x1);\n",
" var min_y = Math.min(y0, y1);\n",
" var width = Math.abs(x1 - x0);\n",
" var height = Math.abs(y1 - y0);\n",
"\n",
" fig.rubberband_context.clearRect(\n",
" 0, 0, fig.canvas.width, fig.canvas.height);\n",
"\n",
" fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
" // Updates the figure title.\n",
" fig.header.textContent = msg['label'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
" var cursor = msg['cursor'];\n",
" switch(cursor)\n",
" {\n",
" case 0:\n",
" cursor = 'pointer';\n",
" break;\n",
" case 1:\n",
" cursor = 'default';\n",
" break;\n",
" case 2:\n",
" cursor = 'crosshair';\n",
" break;\n",
" case 3:\n",
" cursor = 'move';\n",
" break;\n",
" }\n",
" fig.rubberband_canvas.style.cursor = cursor;\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_message = function(fig, msg) {\n",
" fig.message.textContent = msg['message'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
" // Request the server to send over a new figure.\n",
" fig.send_draw_message();\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
" fig.image_mode = msg['mode'];\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Called whenever the canvas gets updated.\n",
" this.send_message(\"ack\", {});\n",
"}\n",
"\n",
"// A function to construct a web socket function for onmessage handling.\n",
"// Called in the figure constructor.\n",
"mpl.figure.prototype._make_on_message_function = function(fig) {\n",
" return function socket_on_message(evt) {\n",
" if (evt.data instanceof Blob) {\n",
" /* FIXME: We get \"Resource interpreted as Image but\n",
" * transferred with MIME type text/plain:\" errors on\n",
" * Chrome. But how to set the MIME type? It doesn't seem\n",
" * to be part of the websocket stream */\n",
" evt.data.type = \"image/png\";\n",
"\n",
" /* Free the memory for the previous frames */\n",
" if (fig.imageObj.src) {\n",
" (window.URL || window.webkitURL).revokeObjectURL(\n",
" fig.imageObj.src);\n",
" }\n",
"\n",
" fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
" evt.data);\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
" else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
" fig.imageObj.src = evt.data;\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
"\n",
" var msg = JSON.parse(evt.data);\n",
" var msg_type = msg['type'];\n",
"\n",
" // Call the \"handle_{type}\" callback, which takes\n",
" // the figure and JSON message as its only arguments.\n",
" try {\n",
" var callback = fig[\"handle_\" + msg_type];\n",
" } catch (e) {\n",
" console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
" return;\n",
" }\n",
"\n",
" if (callback) {\n",
" try {\n",
" // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
" callback(fig, msg);\n",
" } catch (e) {\n",
" console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
" }\n",
" }\n",
" };\n",
"}\n",
"\n",
"// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
"mpl.findpos = function(e) {\n",
" //this section is from http://www.quirksmode.org/js/events_properties.html\n",
" var targ;\n",
" if (!e)\n",
" e = window.event;\n",
" if (e.target)\n",
" targ = e.target;\n",
" else if (e.srcElement)\n",
" targ = e.srcElement;\n",
" if (targ.nodeType == 3) // defeat Safari bug\n",
" targ = targ.parentNode;\n",
"\n",
" // jQuery normalizes the pageX and pageY\n",
" // pageX,Y are the mouse positions relative to the document\n",
" // offset() returns the position of the element relative to the document\n",
" var x = e.pageX - $(targ).offset().left;\n",
" var y = e.pageY - $(targ).offset().top;\n",
"\n",
" return {\"x\": x, \"y\": y};\n",
"};\n",
"\n",
"/*\n",
" * return a copy of an object with only non-object keys\n",
" * we need this to avoid circular references\n",
" * http://stackoverflow.com/a/24161582/3208463\n",
" */\n",
"function simpleKeys (original) {\n",
" return Object.keys(original).reduce(function (obj, key) {\n",
" if (typeof original[key] !== 'object')\n",
" obj[key] = original[key]\n",
" return obj;\n",
" }, {});\n",
"}\n",
"\n",
"mpl.figure.prototype.mouse_event = function(event, name) {\n",
" var canvas_pos = mpl.findpos(event)\n",
"\n",
" if (name === 'button_press')\n",
" {\n",
" this.canvas.focus();\n",
" this.canvas_div.focus();\n",
" }\n",
"\n",
" var x = canvas_pos.x * mpl.ratio;\n",
" var y = canvas_pos.y * mpl.ratio;\n",
"\n",
" this.send_message(name, {x: x, y: y, button: event.button,\n",
" step: event.step,\n",
" guiEvent: simpleKeys(event)});\n",
"\n",
" /* This prevents the web browser from automatically changing to\n",
" * the text insertion cursor when the button is pressed. We want\n",
" * to control all of the cursor setting manually through the\n",
" * 'cursor' event from matplotlib */\n",
" event.preventDefault();\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" // Handle any extra behaviour associated with a key event\n",
"}\n",
"\n",
"mpl.figure.prototype.key_event = function(event, name) {\n",
"\n",
" // Prevent repeat events\n",
" if (name == 'key_press')\n",
" {\n",
" if (event.which === this._key)\n",
" return;\n",
" else\n",
" this._key = event.which;\n",
" }\n",
" if (name == 'key_release')\n",
" this._key = null;\n",
"\n",
" var value = '';\n",
" if (event.ctrlKey && event.which != 17)\n",
" value += \"ctrl+\";\n",
" if (event.altKey && event.which != 18)\n",
" value += \"alt+\";\n",
" if (event.shiftKey && event.which != 16)\n",
" value += \"shift+\";\n",
"\n",
" value += 'k';\n",
" value += event.which.toString();\n",
"\n",
" this._key_event_extra(event, name);\n",
"\n",
" this.send_message(name, {key: value,\n",
" guiEvent: simpleKeys(event)});\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
" if (name == 'download') {\n",
" this.handle_save(this, null);\n",
" } else {\n",
" this.send_message(\"toolbar_button\", {name: name});\n",
" }\n",
"};\n",
"\n",
"mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
" this.message.textContent = tooltip;\n",
"};\n",
"mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
"\n",
"mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
"\n",
"mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
" // Create a \"websocket\"-like object which calls the given IPython comm\n",
" // object with the appropriate methods. Currently this is a non binary\n",
" // socket, so there is still some room for performance tuning.\n",
" var ws = {};\n",
"\n",
" ws.close = function() {\n",
" comm.close()\n",
" };\n",
" ws.send = function(m) {\n",
" //console.log('sending', m);\n",
" comm.send(m);\n",
" };\n",
" // Register the callback with on_msg.\n",
" comm.on_msg(function(msg) {\n",
" //console.log('receiving', msg['content']['data'], msg);\n",
" // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
" ws.onmessage(msg['content']['data'])\n",
" });\n",
" return ws;\n",
"}\n",
"\n",
"mpl.mpl_figure_comm = function(comm, msg) {\n",
" // This is the function which gets called when the mpl process\n",
" // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
"\n",
" var id = msg.content.data.id;\n",
" // Get hold of the div created by the display call when the Comm\n",
" // socket was opened in Python.\n",
" var element = $(\"#\" + id);\n",
" var ws_proxy = comm_websocket_adapter(comm)\n",
"\n",
" function ondownload(figure, format) {\n",
" window.open(figure.imageObj.src);\n",
" }\n",
"\n",
" var fig = new mpl.figure(id, ws_proxy,\n",
" ondownload,\n",
" element.get(0));\n",
"\n",
" // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
" // web socket which is closed, not our websocket->open comm proxy.\n",
" ws_proxy.onopen();\n",
"\n",
" fig.parent_element = element.get(0);\n",
" fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
" if (!fig.cell_info) {\n",
" console.error(\"Failed to find cell for figure\", id, fig);\n",
" return;\n",
" }\n",
"\n",
" var output_index = fig.cell_info[2]\n",
" var cell = fig.cell_info[0];\n",
"\n",
"};\n",
"\n",
"mpl.figure.prototype.handle_close = function(fig, msg) {\n",
" var width = fig.canvas.width/mpl.ratio\n",
" fig.root.unbind('remove')\n",
"\n",
" // Update the output cell to use the data from the current canvas.\n",
" fig.push_to_output();\n",
" var dataURL = fig.canvas.toDataURL();\n",
" // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
" // the notebook keyboard shortcuts fail.\n",
" IPython.keyboard_manager.enable()\n",
" $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
" fig.close_ws(fig, msg);\n",
"}\n",
"\n",
"mpl.figure.prototype.close_ws = function(fig, msg){\n",
" fig.send_message('closing', msg);\n",
" // fig.ws.close()\n",
"}\n",
"\n",
"mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
" // Turn the data on the canvas into data in the output cell.\n",
" var width = this.canvas.width/mpl.ratio\n",
" var dataURL = this.canvas.toDataURL();\n",
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Tell IPython that the notebook contents must change.\n",
" IPython.notebook.set_dirty(true);\n",
" this.send_message(\"ack\", {});\n",
" var fig = this;\n",
" // Wait a second, then push the new image to the DOM so\n",
" // that it is saved nicely (might be nice to debounce this).\n",
" setTimeout(function () { fig.push_to_output() }, 1000);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>')\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items){\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) { continue; };\n",
"\n",
" var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" // Add the status bar.\n",
" var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"\n",
" // Add the close button to the window.\n",
" var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
" var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
" button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
" button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
" buttongrp.append(button);\n",
" var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
" titlebar.prepend(buttongrp);\n",
"}\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(el){\n",
" var fig = this\n",
" el.on(\"remove\", function(){\n",
"\tfig.close_ws(fig, {});\n",
" });\n",
"}\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(el){\n",
" // this is important to make the div 'focusable\n",
" el.attr('tabindex', 0)\n",
" // reach out to IPython and tell the keyboard manager to turn it's self\n",
" // off when our div gets focus\n",
"\n",
" // location in version 3\n",
" if (IPython.notebook.keyboard_manager) {\n",
" IPython.notebook.keyboard_manager.register_events(el);\n",
" }\n",
" else {\n",
" // location in version 2\n",
" IPython.keyboard_manager.register_events(el);\n",
" }\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" var manager = IPython.notebook.keyboard_manager;\n",
" if (!manager)\n",
" manager = IPython.keyboard_manager;\n",
"\n",
" // Check for shift+enter\n",
" if (event.shiftKey && event.which == 13) {\n",
" this.canvas_div.blur();\n",
" event.shiftKey = false;\n",
" // Send a \"J\" for go to next cell\n",
" event.which = 74;\n",
" event.keyCode = 74;\n",
" manager.command_mode();\n",
" manager.handle_keydown(event);\n",
" }\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" fig.ondownload(fig, null);\n",
"}\n",
"\n",
"\n",
"mpl.find_output_cell = function(html_output) {\n",
" // Return the cell and output element which can be found *uniquely* in the notebook.\n",
" // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
" // IPython event is triggered only after the cells have been serialised, which for\n",
" // our purposes (turning an active figure into a static one), is too late.\n",
" var cells = IPython.notebook.get_cells();\n",
" var ncells = cells.length;\n",
" for (var i=0; i<ncells; i++) {\n",
" var cell = cells[i];\n",
" if (cell.cell_type === 'code'){\n",
" for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
" var data = cell.output_area.outputs[j];\n",
" if (data.data) {\n",
" // IPython >= 3 moved mimebundle to data attribute of output\n",
" data = data.data;\n",
" }\n",
" if (data['text/html'] == html_output) {\n",
" return [cell, data, j];\n",
" }\n",
" }\n",
" }\n",
" }\n",
"}\n",
"\n",
"// Register the function which deals with the matplotlib target/channel.\n",
"// The kernel may be null if the page has been refreshed.\n",
"if (IPython.notebook.kernel != null) {\n",
" IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
"}\n"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,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BqA9YenvVBiABsISoCCULUUbLEHIpEQukR4GoD1h6e9UGIAGwhKgIJQtRRssQcikRC6RHgagPWHp71QYgAbCEqAglC1FGyxByKRELpEeBqA9YenvVBiABsISoCCULUUbLEHIpEQukR4GoD1h6e9UGIAGwhKgIJQtRRssQcikRC6RHgagPWHp71QYgAbCEqAglC1FGyxByKRELpEeBqA9YenvVBiABsISoCCULUUbLEHIpEQukR4GoD1h6e9UGIAGwhKgIJQtRRssQcikRC6RHgagPWHp71QYgAbCEqAglC1FGyxByKRELpEeBqA9YenvVBiABsISoCCULUUbLEHIpEQukR4GoD1h6e9UGIAGwhKgIJQtRRssQcikRC6RHgagPWHp71QYgAbCEqAglC1FGyxByKRELpEeBqA9YenvVBiABsISoCCULUUbLEHIpEQukR4GoD1h6e9UGIAGwhKgIJQtRRssQcikRC6RHgagPWHp71QYgAbCEqAglC1FGyxByKRELpEeBqA9YenvVBiABsISoCCULUUbLEHIpEQukR4GoD1h6e9UGIAGwhKgIJQtRRssQcikRC6RHgagPWHp71QYgAbCEqAglC1FGyxByKRELpEeBqA9YenvVBiABsISoCCULUUbLEHIpEQukR4GoD1h6e9UGIAGwhKgF956T4WLqlRe16Q9+1oH5Dz/+kEtKa3U868fHJC//4mX9lG0AcIARBgxAO0JS3+nwgA0EJYAldc1qXBRVSDOm+9+5Pc/JyxgACKMGID2hKW/U2EAGghLgN77qFPldU164a33BuwewA07j4zMDTsH7l5Gxl9wMAARRgxAe8LS36kwAA0QIHt2NbaocFGVdjW2+H1TMAgwABFGDEB76G8GoBECZA8DEOlgACKMGID20N8MQCMEyB4GINLBAEQYMQDtob8ZgEYIkD0MQKSDAYgwYgDaQ38zAI0QIHsYgEgHAxBhxAC0h/5mABohQPYwAJEOBiDCiAFoD/3NADRCgOxhACIdDECEEQPQHvqbAWiEANnDAEQ6GIAIIwagPfQ3A9AIAbKHAYh0MAARRgxAe+hvBqARAmQPAxDpCML7U+/Zx3tUIz0MQHvobwagEQJkDwMQ6QjS+1PzHtXoKwagPfQ3A9AIAbKHAYh0BOX9qffs4z2q0XcMQHvobwagEQJkDwMQriGTcA0D0B76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\" width=\"640\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"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>Krukov</th>\n",
" <th>Sholokhov</th>\n",
" <th>Tolstoy</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>167.000000</td>\n",
" <td>167.000000</td>\n",
" <td>167.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>0.538957</td>\n",
" <td>0.518688</td>\n",
" <td>0.064690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>0.131414</td>\n",
" <td>0.150873</td>\n",
" <td>0.063880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>0.263501</td>\n",
" <td>0.079311</td>\n",
" <td>0.000763</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>0.451257</td>\n",
" <td>0.418900</td>\n",
" <td>0.024805</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>0.530377</td>\n",
" <td>0.541971</td>\n",
" <td>0.041385</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>0.613270</td>\n",
" <td>0.628073</td>\n",
" <td>0.076810</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>0.900175</td>\n",
" <td>0.773608</td>\n",
" <td>0.324609</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Krukov Sholokhov Tolstoy\n",
"count 167.000000 167.000000 167.000000\n",
"mean 0.538957 0.518688 0.064690\n",
"std 0.131414 0.150873 0.063880\n",
"min 0.263501 0.079311 0.000763\n",
"25% 0.451257 0.418900 0.024805\n",
"50% 0.530377 0.541971 0.041385\n",
"75% 0.613270 0.628073 0.076810\n",
"max 0.900175 0.773608 0.324609"
]
},
"execution_count": 118,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pdf_box=pd.merge(left=pdf_kru[['Prob_2']], right=pdf_sho[['Prob_2']], left_index=True, right_index=True).rename(columns={'Prob_2_x':'Krukov', 'Prob_2_y':'Sholokhov'})\n",
"pdf_box=pdf_box.merge(pdf_tol[['Prob_2']], left_index=True, right_index=True).rename(columns={'Prob_2':'Tolstoy'})\n",
"\n",
"pdf_box.boxplot(column=['Krukov', 'Sholokhov', 'Tolstoy']);\n",
"pdf_box.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Вероятности по главам"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### По всем главам"
]
},
{
"cell_type": "code",
"execution_count": 119,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Krukov_prob</th>\n",
" <th>Sholokhov_prob</th>\n",
" <th>Krukov</th>\n",
" <th>Sholokhov</th>\n",
" <th>text</th>\n",
" </tr>\n",
" <tr>\n",
" <th>target</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>b1_h1</th>\n",
" <td>0.389233</td>\n",
" <td>0.658402</td>\n",
" <td>NOT Krukov</td>\n",
" <td>Sholokhov</td>\n",
" <td>Мелеховский двор — на самом краю хутора. Ворот...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b1_h2</th>\n",
" <td>0.369982</td>\n",
" <td>0.662768</td>\n",
" <td>NOT Krukov</td>\n",
" <td>Sholokhov</td>\n",
" <td>Редкие в пепельном рассветном небе зыбились зв...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b1_h3</th>\n",
" <td>0.375186</td>\n",
" <td>0.655984</td>\n",
" <td>NOT Krukov</td>\n",
" <td>Sholokhov</td>\n",
" <td>Григорий пришел с игрищ после первых кочетов. ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b1_h4</th>\n",
" <td>0.613593</td>\n",
" <td>0.464117</td>\n",
" <td>Krukov</td>\n",
" <td>NOT Sholokhov</td>\n",
" <td>К вечеру собралась гроза. Над хутором стала бу...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b1_h5</th>\n",
" <td>0.532730</td>\n",
" <td>0.515096</td>\n",
" <td>Krukov</td>\n",
" <td>Sholokhov</td>\n",
" <td>До хутора Сетракова — места лагерного сбора — ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b1_h6</th>\n",
" <td>0.471625</td>\n",
" <td>0.557954</td>\n",
" <td>NOT Krukov</td>\n",
" <td>Sholokhov</td>\n",
" <td>Возле лобастого, с желтой песчаной лысиной кур...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b1_h7</th>\n",
" <td>0.501463</td>\n",
" <td>0.611527</td>\n",
" <td>Krukov</td>\n",
" <td>Sholokhov</td>\n",
" <td>Аксинью выдали за Степана семнадцати лет. Взял...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b1_h8</th>\n",
" <td>0.362853</td>\n",
" <td>0.685098</td>\n",
" <td>NOT Krukov</td>\n",
" <td>Sholokhov</td>\n",
" <td>За два дня до троицы хуторские делили луг. На ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b1_h9</th>\n",
" <td>0.466326</td>\n",
" <td>0.601161</td>\n",
" <td>NOT Krukov</td>\n",
" <td>Sholokhov</td>\n",
" <td>От троицы только и осталось по хуторским двора...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b1_h10</th>\n",
" <td>0.386680</td>\n",
" <td>0.592613</td>\n",
" <td>NOT Krukov</td>\n",
" <td>Sholokhov</td>\n",
" <td>Не лазоревым алым цветом, а собачьей бесилой, ...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Krukov_prob Sholokhov_prob Krukov Sholokhov \\\n",
"target \n",
"b1_h1 0.389233 0.658402 NOT Krukov Sholokhov \n",
"b1_h2 0.369982 0.662768 NOT Krukov Sholokhov \n",
"b1_h3 0.375186 0.655984 NOT Krukov Sholokhov \n",
"b1_h4 0.613593 0.464117 Krukov NOT Sholokhov \n",
"b1_h5 0.532730 0.515096 Krukov Sholokhov \n",
"b1_h6 0.471625 0.557954 NOT Krukov Sholokhov \n",
"b1_h7 0.501463 0.611527 Krukov Sholokhov \n",
"b1_h8 0.362853 0.685098 NOT Krukov Sholokhov \n",
"b1_h9 0.466326 0.601161 NOT Krukov Sholokhov \n",
"b1_h10 0.386680 0.592613 NOT Krukov Sholokhov \n",
"\n",
" text \n",
"target \n",
"b1_h1 Мелеховский двор — на самом краю хутора. Ворот... \n",
"b1_h2 Редкие в пепельном рассветном небе зыбились зв... \n",
"b1_h3 Григорий пришел с игрищ после первых кочетов. ... \n",
"b1_h4 К вечеру собралась гроза. Над хутором стала бу... \n",
"b1_h5 До хутора Сетракова — места лагерного сбора — ... \n",
"b1_h6 Возле лобастого, с желтой песчаной лысиной кур... \n",
"b1_h7 Аксинью выдали за Степана семнадцати лет. Взял... \n",
"b1_h8 За два дня до троицы хуторские делили луг. На ... \n",
"b1_h9 От троицы только и осталось по хуторским двора... \n",
"b1_h10 Не лазоревым алым цветом, а собачьей бесилой, ... "
]
},
"execution_count": 119,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pdf_all=pdf_kru.merge(pdf_sho[['Prob_2', 'auth']], left_index=True, right_index=True).rename(columns={'Prob_2_x':'Krukov_prob', \n",
" 'Prob_2_y':'Sholokhov_prob', \n",
" 'auth_x':'Krukov', 'auth_y':'Sholokhov'})\n",
"\n",
"pdf_all['target']=pdf_all[['book', 'part', 'head']].apply(lambda x: 'b{0}_h{1}'.format(x['book'], x['head']), axis=1)\n",
"pdf_all=pdf_all[['target', 'Krukov_prob', 'Sholokhov_prob', 'Krukov', 'Sholokhov', 'text']].set_index('target')\n",
"pdf_all.head(10)"
]
},
{
"cell_type": "code",
"execution_count": 120,
"metadata": {},
"outputs": [
{
"data": {
"application/javascript": [
"/* Put everything inside the global mpl namespace */\n",
"window.mpl = {};\n",
"\n",
"\n",
"mpl.get_websocket_type = function() {\n",
" if (typeof(WebSocket) !== 'undefined') {\n",
" return WebSocket;\n",
" } else if (typeof(MozWebSocket) !== 'undefined') {\n",
" return MozWebSocket;\n",
" } else {\n",
" alert('Your browser does not have WebSocket support.' +\n",
" 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
" 'Firefox 4 and 5 are also supported but you ' +\n",
" 'have to enable WebSockets in about:config.');\n",
" };\n",
"}\n",
"\n",
"mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
" this.id = figure_id;\n",
"\n",
" this.ws = websocket;\n",
"\n",
" this.supports_binary = (this.ws.binaryType != undefined);\n",
"\n",
" if (!this.supports_binary) {\n",
" var warnings = document.getElementById(\"mpl-warnings\");\n",
" if (warnings) {\n",
" warnings.style.display = 'block';\n",
" warnings.textContent = (\n",
" \"This browser does not support binary websocket messages. \" +\n",
" \"Performance may be slow.\");\n",
" }\n",
" }\n",
"\n",
" this.imageObj = new Image();\n",
"\n",
" this.context = undefined;\n",
" this.message = undefined;\n",
" this.canvas = undefined;\n",
" this.rubberband_canvas = undefined;\n",
" this.rubberband_context = undefined;\n",
" this.format_dropdown = undefined;\n",
"\n",
" this.image_mode = 'full';\n",
"\n",
" this.root = $('<div/>');\n",
" this._root_extra_style(this.root)\n",
" this.root.attr('style', 'display: inline-block');\n",
"\n",
" $(parent_element).append(this.root);\n",
"\n",
" this._init_header(this);\n",
" this._init_canvas(this);\n",
" this._init_toolbar(this);\n",
"\n",
" var fig = this;\n",
"\n",
" this.waiting = false;\n",
"\n",
" this.ws.onopen = function () {\n",
" fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
" fig.send_message(\"send_image_mode\", {});\n",
" if (mpl.ratio != 1) {\n",
" fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
" }\n",
" fig.send_message(\"refresh\", {});\n",
" }\n",
"\n",
" this.imageObj.onload = function() {\n",
" if (fig.image_mode == 'full') {\n",
" // Full images could contain transparency (where diff images\n",
" // almost always do), so we need to clear the canvas so that\n",
" // there is no ghosting.\n",
" fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
" }\n",
" fig.context.drawImage(fig.imageObj, 0, 0);\n",
" };\n",
"\n",
" this.imageObj.onunload = function() {\n",
" fig.ws.close();\n",
" }\n",
"\n",
" this.ws.onmessage = this._make_on_message_function(this);\n",
"\n",
" this.ondownload = ondownload;\n",
"}\n",
"\n",
"mpl.figure.prototype._init_header = function() {\n",
" var titlebar = $(\n",
" '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
" 'ui-helper-clearfix\"/>');\n",
" var titletext = $(\n",
" '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
" 'text-align: center; padding: 3px;\"/>');\n",
" titlebar.append(titletext)\n",
" this.root.append(titlebar);\n",
" this.header = titletext[0];\n",
"}\n",
"\n",
"\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._init_canvas = function() {\n",
" var fig = this;\n",
"\n",
" var canvas_div = $('<div/>');\n",
"\n",
" canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
"\n",
" function canvas_keyboard_event(event) {\n",
" return fig.key_event(event, event['data']);\n",
" }\n",
"\n",
" canvas_div.keydown('key_press', canvas_keyboard_event);\n",
" canvas_div.keyup('key_release', canvas_keyboard_event);\n",
" this.canvas_div = canvas_div\n",
" this._canvas_extra_style(canvas_div)\n",
" this.root.append(canvas_div);\n",
"\n",
" var canvas = $('<canvas/>');\n",
" canvas.addClass('mpl-canvas');\n",
" canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
"\n",
" this.canvas = canvas[0];\n",
" this.context = canvas[0].getContext(\"2d\");\n",
"\n",
" var backingStore = this.context.backingStorePixelRatio ||\n",
"\tthis.context.webkitBackingStorePixelRatio ||\n",
"\tthis.context.mozBackingStorePixelRatio ||\n",
"\tthis.context.msBackingStorePixelRatio ||\n",
"\tthis.context.oBackingStorePixelRatio ||\n",
"\tthis.context.backingStorePixelRatio || 1;\n",
"\n",
" mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
"\n",
" var rubberband = $('<canvas/>');\n",
" rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
"\n",
" var pass_mouse_events = true;\n",
"\n",
" canvas_div.resizable({\n",
" start: function(event, ui) {\n",
" pass_mouse_events = false;\n",
" },\n",
" resize: function(event, ui) {\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" stop: function(event, ui) {\n",
" pass_mouse_events = true;\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" });\n",
"\n",
" function mouse_event_fn(event) {\n",
" if (pass_mouse_events)\n",
" return fig.mouse_event(event, event['data']);\n",
" }\n",
"\n",
" rubberband.mousedown('button_press', mouse_event_fn);\n",
" rubberband.mouseup('button_release', mouse_event_fn);\n",
" // Throttle sequential mouse events to 1 every 20ms.\n",
" rubberband.mousemove('motion_notify', mouse_event_fn);\n",
"\n",
" rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
" rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
"\n",
" canvas_div.on(\"wheel\", function (event) {\n",
" event = event.originalEvent;\n",
" event['data'] = 'scroll'\n",
" if (event.deltaY < 0) {\n",
" event.step = 1;\n",
" } else {\n",
" event.step = -1;\n",
" }\n",
" mouse_event_fn(event);\n",
" });\n",
"\n",
" canvas_div.append(canvas);\n",
" canvas_div.append(rubberband);\n",
"\n",
" this.rubberband = rubberband;\n",
" this.rubberband_canvas = rubberband[0];\n",
" this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
" this.rubberband_context.strokeStyle = \"#000000\";\n",
"\n",
" this._resize_canvas = function(width, height) {\n",
" // Keep the size of the canvas, canvas container, and rubber band\n",
" // canvas in synch.\n",
" canvas_div.css('width', width)\n",
" canvas_div.css('height', height)\n",
"\n",
" canvas.attr('width', width * mpl.ratio);\n",
" canvas.attr('height', height * mpl.ratio);\n",
" canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
"\n",
" rubberband.attr('width', width);\n",
" rubberband.attr('height', height);\n",
" }\n",
"\n",
" // Set the figure to an initial 600x600px, this will subsequently be updated\n",
" // upon first draw.\n",
" this._resize_canvas(600, 600);\n",
"\n",
" // Disable right mouse context menu.\n",
" $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
" return false;\n",
" });\n",
"\n",
" function set_focus () {\n",
" canvas.focus();\n",
" canvas_div.focus();\n",
" }\n",
"\n",
" window.setTimeout(set_focus, 100);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>')\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items) {\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) {\n",
" // put a spacer in here.\n",
" continue;\n",
" }\n",
" var button = $('<button/>');\n",
" button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
" 'ui-button-icon-only');\n",
" button.attr('role', 'button');\n",
" button.attr('aria-disabled', 'false');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
"\n",
" var icon_img = $('<span/>');\n",
" icon_img.addClass('ui-button-icon-primary ui-icon');\n",
" icon_img.addClass(image);\n",
" icon_img.addClass('ui-corner-all');\n",
"\n",
" var tooltip_span = $('<span/>');\n",
" tooltip_span.addClass('ui-button-text');\n",
" tooltip_span.html(tooltip);\n",
"\n",
" button.append(icon_img);\n",
" button.append(tooltip_span);\n",
"\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" var fmt_picker_span = $('<span/>');\n",
"\n",
" var fmt_picker = $('<select/>');\n",
" fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
" fmt_picker_span.append(fmt_picker);\n",
" nav_element.append(fmt_picker_span);\n",
" this.format_dropdown = fmt_picker[0];\n",
"\n",
" for (var ind in mpl.extensions) {\n",
" var fmt = mpl.extensions[ind];\n",
" var option = $(\n",
" '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
" fmt_picker.append(option)\n",
" }\n",
"\n",
" // Add hover states to the ui-buttons\n",
" $( \".ui-button\" ).hover(\n",
" function() { $(this).addClass(\"ui-state-hover\");},\n",
" function() { $(this).removeClass(\"ui-state-hover\");}\n",
" );\n",
"\n",
" var status_bar = $('<span class=\"mpl-message\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"}\n",
"\n",
"mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
" // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
" // which will in turn request a refresh of the image.\n",
" this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
"}\n",
"\n",
"mpl.figure.prototype.send_message = function(type, properties) {\n",
" properties['type'] = type;\n",
" properties['figure_id'] = this.id;\n",
" this.ws.send(JSON.stringify(properties));\n",
"}\n",
"\n",
"mpl.figure.prototype.send_draw_message = function() {\n",
" if (!this.waiting) {\n",
" this.waiting = true;\n",
" this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
" }\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" var format_dropdown = fig.format_dropdown;\n",
" var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
" fig.ondownload(fig, format);\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
" var size = msg['size'];\n",
" if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
" fig._resize_canvas(size[0], size[1]);\n",
" fig.send_message(\"refresh\", {});\n",
" };\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
" var x0 = msg['x0'] / mpl.ratio;\n",
" var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
" var x1 = msg['x1'] / mpl.ratio;\n",
" var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
" x0 = Math.floor(x0) + 0.5;\n",
" y0 = Math.floor(y0) + 0.5;\n",
" x1 = Math.floor(x1) + 0.5;\n",
" y1 = Math.floor(y1) + 0.5;\n",
" var min_x = Math.min(x0, x1);\n",
" var min_y = Math.min(y0, y1);\n",
" var width = Math.abs(x1 - x0);\n",
" var height = Math.abs(y1 - y0);\n",
"\n",
" fig.rubberband_context.clearRect(\n",
" 0, 0, fig.canvas.width, fig.canvas.height);\n",
"\n",
" fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
" // Updates the figure title.\n",
" fig.header.textContent = msg['label'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
" var cursor = msg['cursor'];\n",
" switch(cursor)\n",
" {\n",
" case 0:\n",
" cursor = 'pointer';\n",
" break;\n",
" case 1:\n",
" cursor = 'default';\n",
" break;\n",
" case 2:\n",
" cursor = 'crosshair';\n",
" break;\n",
" case 3:\n",
" cursor = 'move';\n",
" break;\n",
" }\n",
" fig.rubberband_canvas.style.cursor = cursor;\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_message = function(fig, msg) {\n",
" fig.message.textContent = msg['message'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
" // Request the server to send over a new figure.\n",
" fig.send_draw_message();\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
" fig.image_mode = msg['mode'];\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Called whenever the canvas gets updated.\n",
" this.send_message(\"ack\", {});\n",
"}\n",
"\n",
"// A function to construct a web socket function for onmessage handling.\n",
"// Called in the figure constructor.\n",
"mpl.figure.prototype._make_on_message_function = function(fig) {\n",
" return function socket_on_message(evt) {\n",
" if (evt.data instanceof Blob) {\n",
" /* FIXME: We get \"Resource interpreted as Image but\n",
" * transferred with MIME type text/plain:\" errors on\n",
" * Chrome. But how to set the MIME type? It doesn't seem\n",
" * to be part of the websocket stream */\n",
" evt.data.type = \"image/png\";\n",
"\n",
" /* Free the memory for the previous frames */\n",
" if (fig.imageObj.src) {\n",
" (window.URL || window.webkitURL).revokeObjectURL(\n",
" fig.imageObj.src);\n",
" }\n",
"\n",
" fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
" evt.data);\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
" else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
" fig.imageObj.src = evt.data;\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
"\n",
" var msg = JSON.parse(evt.data);\n",
" var msg_type = msg['type'];\n",
"\n",
" // Call the \"handle_{type}\" callback, which takes\n",
" // the figure and JSON message as its only arguments.\n",
" try {\n",
" var callback = fig[\"handle_\" + msg_type];\n",
" } catch (e) {\n",
" console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
" return;\n",
" }\n",
"\n",
" if (callback) {\n",
" try {\n",
" // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
" callback(fig, msg);\n",
" } catch (e) {\n",
" console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
" }\n",
" }\n",
" };\n",
"}\n",
"\n",
"// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
"mpl.findpos = function(e) {\n",
" //this section is from http://www.quirksmode.org/js/events_properties.html\n",
" var targ;\n",
" if (!e)\n",
" e = window.event;\n",
" if (e.target)\n",
" targ = e.target;\n",
" else if (e.srcElement)\n",
" targ = e.srcElement;\n",
" if (targ.nodeType == 3) // defeat Safari bug\n",
" targ = targ.parentNode;\n",
"\n",
" // jQuery normalizes the pageX and pageY\n",
" // pageX,Y are the mouse positions relative to the document\n",
" // offset() returns the position of the element relative to the document\n",
" var x = e.pageX - $(targ).offset().left;\n",
" var y = e.pageY - $(targ).offset().top;\n",
"\n",
" return {\"x\": x, \"y\": y};\n",
"};\n",
"\n",
"/*\n",
" * return a copy of an object with only non-object keys\n",
" * we need this to avoid circular references\n",
" * http://stackoverflow.com/a/24161582/3208463\n",
" */\n",
"function simpleKeys (original) {\n",
" return Object.keys(original).reduce(function (obj, key) {\n",
" if (typeof original[key] !== 'object')\n",
" obj[key] = original[key]\n",
" return obj;\n",
" }, {});\n",
"}\n",
"\n",
"mpl.figure.prototype.mouse_event = function(event, name) {\n",
" var canvas_pos = mpl.findpos(event)\n",
"\n",
" if (name === 'button_press')\n",
" {\n",
" this.canvas.focus();\n",
" this.canvas_div.focus();\n",
" }\n",
"\n",
" var x = canvas_pos.x * mpl.ratio;\n",
" var y = canvas_pos.y * mpl.ratio;\n",
"\n",
" this.send_message(name, {x: x, y: y, button: event.button,\n",
" step: event.step,\n",
" guiEvent: simpleKeys(event)});\n",
"\n",
" /* This prevents the web browser from automatically changing to\n",
" * the text insertion cursor when the button is pressed. We want\n",
" * to control all of the cursor setting manually through the\n",
" * 'cursor' event from matplotlib */\n",
" event.preventDefault();\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" // Handle any extra behaviour associated with a key event\n",
"}\n",
"\n",
"mpl.figure.prototype.key_event = function(event, name) {\n",
"\n",
" // Prevent repeat events\n",
" if (name == 'key_press')\n",
" {\n",
" if (event.which === this._key)\n",
" return;\n",
" else\n",
" this._key = event.which;\n",
" }\n",
" if (name == 'key_release')\n",
" this._key = null;\n",
"\n",
" var value = '';\n",
" if (event.ctrlKey && event.which != 17)\n",
" value += \"ctrl+\";\n",
" if (event.altKey && event.which != 18)\n",
" value += \"alt+\";\n",
" if (event.shiftKey && event.which != 16)\n",
" value += \"shift+\";\n",
"\n",
" value += 'k';\n",
" value += event.which.toString();\n",
"\n",
" this._key_event_extra(event, name);\n",
"\n",
" this.send_message(name, {key: value,\n",
" guiEvent: simpleKeys(event)});\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
" if (name == 'download') {\n",
" this.handle_save(this, null);\n",
" } else {\n",
" this.send_message(\"toolbar_button\", {name: name});\n",
" }\n",
"};\n",
"\n",
"mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
" this.message.textContent = tooltip;\n",
"};\n",
"mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
"\n",
"mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
"\n",
"mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
" // Create a \"websocket\"-like object which calls the given IPython comm\n",
" // object with the appropriate methods. Currently this is a non binary\n",
" // socket, so there is still some room for performance tuning.\n",
" var ws = {};\n",
"\n",
" ws.close = function() {\n",
" comm.close()\n",
" };\n",
" ws.send = function(m) {\n",
" //console.log('sending', m);\n",
" comm.send(m);\n",
" };\n",
" // Register the callback with on_msg.\n",
" comm.on_msg(function(msg) {\n",
" //console.log('receiving', msg['content']['data'], msg);\n",
" // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
" ws.onmessage(msg['content']['data'])\n",
" });\n",
" return ws;\n",
"}\n",
"\n",
"mpl.mpl_figure_comm = function(comm, msg) {\n",
" // This is the function which gets called when the mpl process\n",
" // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
"\n",
" var id = msg.content.data.id;\n",
" // Get hold of the div created by the display call when the Comm\n",
" // socket was opened in Python.\n",
" var element = $(\"#\" + id);\n",
" var ws_proxy = comm_websocket_adapter(comm)\n",
"\n",
" function ondownload(figure, format) {\n",
" window.open(figure.imageObj.src);\n",
" }\n",
"\n",
" var fig = new mpl.figure(id, ws_proxy,\n",
" ondownload,\n",
" element.get(0));\n",
"\n",
" // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
" // web socket which is closed, not our websocket->open comm proxy.\n",
" ws_proxy.onopen();\n",
"\n",
" fig.parent_element = element.get(0);\n",
" fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
" if (!fig.cell_info) {\n",
" console.error(\"Failed to find cell for figure\", id, fig);\n",
" return;\n",
" }\n",
"\n",
" var output_index = fig.cell_info[2]\n",
" var cell = fig.cell_info[0];\n",
"\n",
"};\n",
"\n",
"mpl.figure.prototype.handle_close = function(fig, msg) {\n",
" var width = fig.canvas.width/mpl.ratio\n",
" fig.root.unbind('remove')\n",
"\n",
" // Update the output cell to use the data from the current canvas.\n",
" fig.push_to_output();\n",
" var dataURL = fig.canvas.toDataURL();\n",
" // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
" // the notebook keyboard shortcuts fail.\n",
" IPython.keyboard_manager.enable()\n",
" $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
" fig.close_ws(fig, msg);\n",
"}\n",
"\n",
"mpl.figure.prototype.close_ws = function(fig, msg){\n",
" fig.send_message('closing', msg);\n",
" // fig.ws.close()\n",
"}\n",
"\n",
"mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
" // Turn the data on the canvas into data in the output cell.\n",
" var width = this.canvas.width/mpl.ratio\n",
" var dataURL = this.canvas.toDataURL();\n",
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Tell IPython that the notebook contents must change.\n",
" IPython.notebook.set_dirty(true);\n",
" this.send_message(\"ack\", {});\n",
" var fig = this;\n",
" // Wait a second, then push the new image to the DOM so\n",
" // that it is saved nicely (might be nice to debounce this).\n",
" setTimeout(function () { fig.push_to_output() }, 1000);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>')\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items){\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) { continue; };\n",
"\n",
" var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" // Add the status bar.\n",
" var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"\n",
" // Add the close button to the window.\n",
" var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
" var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
" button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
" button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
" buttongrp.append(button);\n",
" var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
" titlebar.prepend(buttongrp);\n",
"}\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(el){\n",
" var fig = this\n",
" el.on(\"remove\", function(){\n",
"\tfig.close_ws(fig, {});\n",
" });\n",
"}\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(el){\n",
" // this is important to make the div 'focusable\n",
" el.attr('tabindex', 0)\n",
" // reach out to IPython and tell the keyboard manager to turn it's self\n",
" // off when our div gets focus\n",
"\n",
" // location in version 3\n",
" if (IPython.notebook.keyboard_manager) {\n",
" IPython.notebook.keyboard_manager.register_events(el);\n",
" }\n",
" else {\n",
" // location in version 2\n",
" IPython.keyboard_manager.register_events(el);\n",
" }\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" var manager = IPython.notebook.keyboard_manager;\n",
" if (!manager)\n",
" manager = IPython.keyboard_manager;\n",
"\n",
" // Check for shift+enter\n",
" if (event.shiftKey && event.which == 13) {\n",
" this.canvas_div.blur();\n",
" event.shiftKey = false;\n",
" // Send a \"J\" for go to next cell\n",
" event.which = 74;\n",
" event.keyCode = 74;\n",
" manager.command_mode();\n",
" manager.handle_keydown(event);\n",
" }\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" fig.ondownload(fig, null);\n",
"}\n",
"\n",
"\n",
"mpl.find_output_cell = function(html_output) {\n",
" // Return the cell and output element which can be found *uniquely* in the notebook.\n",
" // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
" // IPython event is triggered only after the cells have been serialised, which for\n",
" // our purposes (turning an active figure into a static one), is too late.\n",
" var cells = IPython.notebook.get_cells();\n",
" var ncells = cells.length;\n",
" for (var i=0; i<ncells; i++) {\n",
" var cell = cells[i];\n",
" if (cell.cell_type === 'code'){\n",
" for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
" var data = cell.output_area.outputs[j];\n",
" if (data.data) {\n",
" // IPython >= 3 moved mimebundle to data attribute of output\n",
" data = data.data;\n",
" }\n",
" if (data['text/html'] == html_output) {\n",
" return [cell, data, j];\n",
" }\n",
" }\n",
" }\n",
" }\n",
"}\n",
"\n",
"// Register the function which deals with the matplotlib target/channel.\n",
"// The kernel may be null if the page has been refreshed.\n",
"if (IPython.notebook.kernel != null) {\n",
" IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
"}\n"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,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afP48bRt6lT66PbbKe+cc2jTuHHieRUHD9KQH/2IXrn4Ylo2bBjtmTuXNo8fT1OfeIKOb9tGNRUVhnP55K67aMgPf2h4rKK0lIjUAWHo6aep71e+4iogdEteTg59/uCD4vcvGjQo4fWry8tp6uOP04aPPqK98+fTrpkzada//019zz2X1o8Zk/JzwPH+z36WEISNuPZaGnjBBbR0yBDaPXs2ze/dm/p99av0yV13Of6e/I4d6Y3LL0/4PebWSGyIV739tuGzks/Fy3uSl5ND07p2pdLly2n/4sW0bNgw6n/++fRxly6G5019/HFa+/77tGfOHNozZw4V9e9PA77+dVrYt6/hea8FAjT4u9+lQd/8JtVUVIjHyzZvpn7nnUcvXXhhvQSEkx59lAZecEHC434CwgFf/7rhMxjw9a/bBoR2n0XtmTM0+LvfpTevvJI2jRtHB5YtU14/VqQiIPR6beK1t06eLP6ukW3aGALC49u306BvfYveuOIKWj92LO2cMYMm/u53lJeTQ0sGDzb87pHXXUdvXH45VZ86RURE8198kfqeey7tnj3b8+uZ3/O98+dT6OmnE553fPt2Cj39NG0aN45KFi6kHaEQTevalfqee27K7k8Mw9Q/HBAyDGOZqe5//vm06p13DM/d9Nln+iZm0iTD44eKi/UNhPT81wIByjvnHDqyfr3huWNvu41euvBCqquqIiKiOd26UV5ODh1cudLwvNDTT1PeOefQiR07iCgeqM3v3dvwPMw1qVAFVea/201A+F6HDvTqD35AtadPi8eikQi907IlDfvJT0QFZ+oTT1C/886jY1u3Kn+nmSmPPWa5YTWf++G1a6nvuedSwfPPpywgDNfU6LNjzz8vHtsyYYLj60cjEYqGwzSta1ca2aZN0udhFVB8cvfdhveneORIysvJoc2ff2543pLBgykvJ8ew+VWR37EjvX3NNY7ns3vWLMrLyaH9ixeLx+w+KyL790RVcR53//306g9+YPl6WjRK0XCYFvbrR4O/9z1DlRDByNstWhgq7l/87W804eGHPbczug0IP7rjDhr64x8nPO41IJz4yCP00oUXGh4beMEFyoDQzWeB+8/a9983/Kz5+rEiFQGh12tz9ahRlJeTIxJARPr1KQeEEx95hPqffz6VHzhg+NmPu3Shgd/4BlWXl4vHTu7aRS9deCGNu/9+2jN3LvU991ya16uX4efcvh4CQvM94OVvf5smPPxwwnsB8B0Y07kzjfv1ry2fxzBMZsEBIcMwYtOzfuxYOlRcTIeKi2lXYSFN/8tfKO+cc2jlm2+K50569FF6+dvfpkhdHUXDYcMx5Ic/NGwWXgsE6J2WLS1/HzZ4o9u3p7dbtEh43sGVKykvJ4eKR4wgIn2zMfi736V3WrWiss2bKVJbS9Fw2HKuichdQIjKKI7TR48aNvC1Z85Q3jnnKNvzsNk7vm0bEREN+dGP6KPbb1f+PhVuA0JN0+i9Dh3oozvusNys+aHqxAnKy8mhOd26icesAsLNn39O7990Ew284AJD4mDA//xP0ufhNiCc8PDDNPCCCxJaKM+Ulel/RzBo+3vcBoTbpk5NCARUn5Xb9wSJjGg4TOGaGtq3aBG9cvHFCfO5e+fNozGdO9NLF16YkKCR20sRjKx65x1688orSdM0qi4vp4EXXED7iorqLSAc0bo1jfrpTxMe9xoQfnrPPTTkhz80PGYVELr5LM6UlVG/886jMZ0705d79oj7k7mSaEUqAkKv1+by11+nvJwcqjp+XDxmDghf/cEPlNXFzePHU15ODu0qLFQ+PuB//ofyO3Y0tHd6eT3cY/bMnUvRcJhqKitpzXvvUV5ODq0eNcrws8UjRtDINm2o//nnG67Xt66+OuH3MAyTmXBAyDCM7abnozvuoAFf/7poQxr7y18qq4k4xtx6q/jZ1wIBGvvLXya85q7CQsrLyRGzVm9ccQWN6dw54XkVpaWUl5NDRQMGiMf2zptHb119tfJ3q3ATEFodCAjFefTvn/AaGz76SA9ulywhIqJ+X/0qTX3iCeXvU+E2IFz7/vvU/2tfoxM7d6Y0IDy6YQPl5eTQiuHDxWOqgHDrpEl6W+dDD9G2KVOodPlyOlRcTFOfeMLy/fWC24BwTOfO9MYVVyhfo99Xv0rTnnzS9ve4DQix+ZVnLs2flZf3RHV9vdehA50pKxPPObhyJfX9yldoTOfOtHn8eDqwdCkdKi6meT17JpwLgpHaM2fopYsuol0zZ9Ly116jEddea/h3t7gJCDVNo4Hf+AZN+O1vE/7Na0A4sk2bhMDSKiB081kQEW0aN46G/d//m/A+N1RA6PXanNerF/U991xD0GYOCPt+5Ss0rWvXhNfbv3gx5eXk0IaPPzY8XnvmDL16ySWUl5ND26dNS/g5t69nNbc5rWtXw/kuGzqU8nJy6Iu//Y12hEJUumIFHSoupo/vvNPV+84wTGbAASHDMLabntn/+Y+hnXPiI4/Q4O99T1QSzcfx7dvFz6asQjhypOHxfYsWUd4559DSIUPoUHExTXj44aQCQrkyeqi4mPbMnZtQIex77rn2FcLY310fFcLqU6fole9/n+b17ElE1u1cflg/dmzCa6kCwnG//jW9ftllCdUPzIQmi5cK4aBvftO6CvP/2XvzMCmqs/0ff2/yxivfpDHirnGJooILRiBgXBDjhks2TdQkxsTXGBNjzGb2pNj3HZVdUFzYQQEVBgRkU1aRHQSEYRsQZNhmhpnu5/fH6bvOqdPnVJ2qrp7unjmf66oLurY+011ddZ7tfoRIpwpTg7Dkb3+jzqeeSsnqaned/F2F+UzaN2hAb/3qV7R72TLatXQpbZg6lYZ/61s04BvfoMojR4iI6N0//pE6n3oqVVdUeI71MwiJiN559ll67Z57aGDjxm70JhcGIZwH73ftmrEtjEFYc/IkdT711AzjT2cQmnwXYPWrr1L7U06h1WPG0O5ly+ilm26q1QhhmGtzwkMPZRiQoSOEQn03EdHkn/2Munz5y/TCVVdRv4suohOHDnm2m54P95hlQ4bQ7mXLqHTJElo1ahT1OussGv+jH7nHDfnmN2n0rbdmnM+0dtNisRQG1iC0WCy+k55X7riD2jdoQIe2bSOi9IQrnWYZhF8NYdevftWtIZz9j39Q+wYNaM+KFZ79Zjz9tKeGkIgJefS76CJPfUqt1BDecAP1Puccj2hOKpmkF6+5RllDKBrGfpgYhDOefpr6XXih+3nFaRCOf/BB6tGoEdVUVbnrVAbhuB/+kAZdcYXn2KN791LXr3ylVg1C1F2tnzzZs9+iXr1YiltJie/7mBiENSdP0ovXXEOj27b1rJe/qzCfiXw9ERFtmDKF2jdoQJ/MnElERO/+6U/U9StfoZqTJ919Tp44Qf0uvNDXIPxs82Zqf8op1P2009xrJBcGIQxT1W8/jEG4afp0at+gAa2bONGzXmUQmn4XREypuFvDhvTuH//orqvNGsIw12bF4cPU66yzaOovf+nZN6OG8JFHqPOpp9KR3bs9+712770ZNYQrhg+n9g0a0MqXXqJDW7dSt4YN6Y3vfc9znOn5dPeYd559ltqfcoqrmjr0+utpzF13efbZt3o1dfj//j9rEFosRYQ1CC0WS0Zj+tIlS2jT9Olu6ptofCVraujVdu2ox+mn07wOHWjLO+/Q1tmzadXo0TTlscc8kyFZZXTLO++40RNRqQ4qo73POYeWDxtGn8ycyYRTFHV7k376U+p97rl0/LPP3HW1YRBCZXR4q1a0bsIE2vjmmzTmrru0KqO9zjqLlvTvT9vmzKH1kybRW7/6lVtnKGJiEHb4n//xfK5xGITH9u+nDwYMoPannEKTfvITj9ojVEaXvvCC20pk5UsvUfsGTPV125w5tGr0aBpw6aU0sHHjWjUIoeTY9atfZSquJSU013Go4xe/aKwy6mcQbp8711WPlaMv8ncV5jNBul3pkiW0c/FiWjdxIg1t3twj8LFtzhyWgvrgg/TJrFm05o03aGjz5u75dAYhEdGOhQtp76pV2u1B+BmEx/bvpyX9+rG2MRdfnKHQisb0UIn145OZM2nApZdSj0aNaMfChRkqo6/dc4+r+Brmu0glkzTqllvoxWuu8bR4CGMQDm3enNZNmOBZcG9Z2KNHxraeZ56pVBkNujY3TJlCw1q2pE5f+hLt+/hjzzhkgxCqoIMuv5xWv/qqR6l5Yc+e7n77Pv44Q6V13cSJ1L5BA1rSr1/o88kqozsWLKAVI0ZQzzPP9GRzvPff/1L7U06h9/77X9o2Zw4tffFF6n3OOTTg0kutQWixFBHWILRYLMpaum4NG9KQ666jxX37ZvTQSlZX06LevWlws2bU+dRTqetXvkLPX3klTfv1r+ngli3ufpiUrps4kV646irq9L//S/0vvpgW9+2bMYbDO3bQpJ/8hHo0akQdv/hFGnTFFbSoVy9PH8KPX39dOTmsDYOQiPch7PL//h/rQ9i6NW2aNi3jvOWlpTT18cep9znnUMcvfpH6nHceTfjxjz31YsDEIJQ98HEYhEH1k1hWjRrlHrOge3fqf/HF1OlLX6LnmzShFcOH+36+YTA1CIlYr7dpTz1Fvc89lzp+4QvU76KLaPY//mHch9DPIBz7/e/Ty7fdplQrVX1Xpp+J53M95RTq0agRvXzbbbTtvfc8+6186SXW3/NLX6IB3/gGLejWjVaOHBloEMrEaRCaXitY/DA5HgZRmO/i/a5dlQZWGIMwzN+IRdWHMOjaHNaiBb1+//3KqKNsEBKxvoGv338/dWvYkDr97/+yvoHC77Lq2DF6/sorWdufdIQYzHj6aer4xS96FJyDzkeUWUPY4X/+h3qfey5NfOQRN1uEiPWknfmXv1Cf88+nzqeeSkOvv542TJ0aqMhrsVgKC2sQWiyWnBF2UmqpPVaNGhU4YRvVpk3GRNFS/4BBGMd+QY6MVaNGZRhEFovFYskt1iC0WCw5wxqEhcum6dNp7Pe/77vP9N/8hjZNn15LI7IUKnEahMNbtcqoFRbZNH06Tf/Nb0KP0WKxWCzRsQahxWLJGdYgtFiKn03Tp9PwVq1i289isVgshYU1CC0Wi8VisVgsFoulnmINQovFYrFYLBaLxWKpp1iD0GKxWCwWi8VisVjqKdYgtFgsFovFYrFYLJZ6SiwG4ebNm+mGG26gxo0bU8uWLWlduqmsSEVFBT322GN09dVX01VXXUX3338/HThwwOj8yWSSSktL6fDhw1ReXm4Xu9jFLnaxi13sYhe72MUu9XY5fPgwlZaWUlLo1xyVWAzCtm3b0qh0r6oJEyZQ69atM/bp378/PfDAA5RKpYiI6IknnqDnnnvO6PylpaXUoEEDu9jFLnaxi13sYhe72MUudrFLeiktLc3alsvaICwrK6OGDRtSdXU1ERGlUik6++yzafv27Z79+vfvT+3ataOqqiqqrq6mhx9+mAYMGGD0HocPH3b/4Hxb43axi13sYhe72MUudrGLXeySzwUBs8OHD2drzmVvEC5fvpyaNGniWdeyZUuaP3++Z11FRQU99NBD1LBhQzr99NOpXbt22hBnZWWl8g8uLy/PdrgWi8VisVgsFovFUtSUl5fHZh/FYhA2bdrUs65FixYZBuG0adPo4YcfpoqKCqqqqqJHHnmEHMdRntNxHGVI1BqEFovFYrFYLBaLpb5TUAZhWVkZJRKJwJTRe++9l8aNG+e+nj59Ot1yyy3Kc9oIocVisVgsFovFYrGoKSiDkIioTZs2HlGZVq1aZezzzDPP0OOPP06pVIpSqRQ99dRT9Nvf/tbo/HH+wRaLxWKxWCwWi8VSzBScQbhx40Zq3bo1NW7cmJo3b05r164lIqJ27drRsmXLiIjo4MGD9MADD1CTJk2oadOm9OCDD9LBgweNzm8NQovFYrFYLBaLxWJhFJxBmGusQWixWCwWi8VisVgsDGsQWiwWi8VisVgsFks9xRqEFovFYrFYLBaLJf9sLiFa2J9I007OkhusQWixWCwWi8VS23z2CdGoe4k+mZPvkVgs+edkBdGMvxA5CbZsX5DvEdUrrEFosdRXkjX5HoHFYrHUXxYNZBPfCY/neyQWS345sIVo8I3cGHQSRMtH5XtU9QprEFos9ZFDnxJ1u5Bo5r/yPRKLxWKpn8ztzia+rz+S75FYLPlj9XiiLuex30KPS4hG3MH+X+Lke2T1CmsQWiz1kbWT2Q23T5N8j8RisVjqJyXt2X34le/neyQWS37YNp9HBF9qR1S+m2jRIPZ6/C/yPTpGKkX0zj+IZv033yPJKdYgtFjqIyte4TfhE4fyPRqLxWKpf7zzd3YPHnl3vkdiseSHBX25U6Smmq1bP42tG3prfscGDm3n86UDW/I9mpxhDUKLpT6y5EWhcHthvkdjsVgs0amuJFoymKXCFxNvPZue+LbJ90gslvwwuyP7Dcx4jq/b+zFb1/3i/I1LZNNMPl9a/Hy+R5MzrEFosdRH5vXkN7gPh+V7NBaLxRKdD4awe9nEJ/I9knBMfoqN+/lW+R6JxZIfZjzHfgOzO/B1FeV8flJRAHN1iD85CaLR9+V7NDnDGoQWS31k1n/4De6t3+d7NBaLxRKdl7/L7mWvPpjvkYRj/GNs3P2vzfdILJb8MOU37DewoK93ffeL2fq9H+dnXCJTn+bzpQ6nF4aRmgOsQWix1Eem/ZHf4Ibfnu/RWCwWSzQqjxB1aMTuZS9/N9+jCcdrD7Fx97o83yOxWPLD2J+qM5WG3srWr5+Wn3GJQPUUy9op+R5RTrAGoaVwqDjMi4otuWXSk/zm1uV8omQy3yOyWCyW8Kx/y6tSWEwgstnt6/keicWSH17+HvsNfPSGdz2i54sG5WVYLqkUa9HlJIhG38/+nfxUfseUI6xBaCkMjuwl6nxO8aX8FCtv/MTr8Tq0Pd8jslgslvCI6VzDv5Pv0YRj5F1s3B3PDHfc/k2s5qricG7GZbHUFsO/w34DG6Z715c4bP30P+djVJyjZen7S0MuLtPjG3XSiW4NQkthgB+a9ZTWDvB0YdkwI98jslgslnCkUizdEvexITfne0ThGHILH7vpBDOZJHrhhrQy419yOz6LJdc8/y12LW+d512/fFRh1AVve5/X+dacJOp6AXtduiy/48oB1iC0FAb48TsJoqrj+R5N3WdYW26AOwmi+T3zPSKLxWIJx+5VXsfWC63zPaJwYDIc5rn38QR+TMcziY7sy+0YLZZc0qcpu5Z3rfCu/+Q9tn5Qi/yMCywdkTZMf8Rej/s5ez2nU37HlQOsQWgpDN7ryh9yB7fmezR1n0Et2Wc95gH27/hf5HtEFovFEo55Pdj9q+el7N+B1+d7ROHofy1/7h0/GLx/zUmiAddxY9BJEM38V+7Haak7lO8pLKd717RT+sBm7/qD29j6TmflNz3z7b96f2erXmevB9+YvzHlCGsQWgoDsQ7k00X5Hk3dp08T9lmjH+GglvkekcVisYRj2G3s/vXm79i//a7O94jCIaa7Ht4VvP/y0byGac0k9v/O5xId+yz3Y7UUP0f2EnU8g9WuFgKpFFH709h1XL7Hu63mpH5bbQLRmxWvsNfHDrB6QtPfbBFhDUJLYTDmh/zBuGZivkdTuKx/i2jEnUSHPs3uPPDKbZ3H/m3/NaLqynjGaLFYLLlGnJhtepf92/uKfI8qHEjZdxJEn33iv291JU+vW/w8m0wPvqnOpq9ZcsCWksLSaqg6zq//yqOZ2/tdzbbtWFL7YwNwnu/4gK+DEM6yl/I3rhxgDUJLYYAieTzsLGpe+YG6Z08YUilmADoJovLdRN0vYv/fszq2YVosFktOEVO3yjakI2eX5HtU4UDap5Mg2rvGf98lg9NG75VEJyvYunVvsnVdv24VR+s7JyvYNeLnWFjxClfMLASVzCP7+HhSqczto+5Vt6SoLSqP8N/niUN8/fx0ZtVrD+VnXDnCGoSWwgBGia2J8OfFG9MiML2in+PkCf5ZV5QTvXQP+/+q1+Mbp8ViseQS9Cmb3ZFNgp0EUwAsFlIpryCOn2ph1TFeJ7lsJF+fTHJhmmyeCZbiZ/V4dh2M/al+n7ndvc/+fBP0u0Up0dxu0c6/eyVRv2uiZ53tWp6uUb7Mu37vx+n6xrPZfKqOUHAG4ebNm+mGG26gxo0bU8uWLWndunUZ+3Tr1o2aNWvmLl/96lfpj3/8o9H5rUFYgIgGipMgmvh/+R5R4dLzMvYZzfpP9HMc3e+VOp/xF2uIWyyW4qHmJE973/kh0ec7uQBFsSA/97Yv0O/7fh+v9L0IDIHuFzPD0VI/WdCPXQcvflu/z1u/F2pWS2tvbDp2r+RRbxXze7HtURvB43cz7tFoxyMLYdS93vWpFE8l3TQz2rkLkIIzCNu2bUujRo0iIqIJEyZQ69b+MtJVVVXUqFEjWr58udH5rUFYgMBLhEX+8VkYyRpeZP3Ws9HPc3ArFyMgYnnwToKlo1osFkuhs30BTxFN1vDUs/an5Xtk5hw/6H3ubS5R71dRTtTtQn3qXE01Vx5dNCi3Y7bkj2SN//ZZ/w2uD3z1QX697Vsb7/iigB5/utYSaLEy8u5o53+vS3ZzyhKHHT9NEXB661m27e2/RTt3AVJQBmFZWRk1bNiQqquriYgolUrR2WefTdu3b9ceM27cOGrWrJnxe1iDsADBwx1LsUmH1xZiZG/C49HPs2c1O0evxuz1zqXp15fHM06LxWLJJTP/ze5Zk37FXovGVdDEuVAo3+N97q1/S70fhL/6NNH/bagN631FYdSGWeLlozdYeuKmd/X7vPmMINByRL0PSk6cBNGni3Mz1jBsfJuNZVhb9fbSZfzaj8Ks/wRHTf144yfs+A+GZG5bNrLO1REWlEG4fPlyatLE+8W3bNmS5s+frz3mzjvvpIEDB2q3V1ZWUnl5ubuUlpZag7DQQMoLQvBdzsv3iAqTvWv4zfzVB6Of59NF7BwDrmOvxcJpk15YFovFkk9QN/fxBPa66hi/hxVLTQ8yNbCsHq/eb8MM/0kzkTf99MTnuRmvJX+g9cG7/9TvM/an/Boo26Dep/vFfB8/47K2WD2OjWX0/ertrhO8IRdSCsOM5/xTUoMY2Jwd/8l7mds2vsO2Dbk52rkLkIIzCJs2bepZ16JFC61BuHPnTvryl79MBw/qJ7GO41CDBg0yFmsQFhAL+7MfFrwxfh6u+swnc/jnM+LO6OfZNJOdY/BNfF2/a9i6be9nP85kDdEHQ4n2b8r+XBaLxSJSU83vg0f2ptedFMQyikRtc986r0G44mX1fkibC0p763wu2+/gtvjHKrNtPhO5WTMp9+9V36mpZk7yoFo6KHI6CdZeQuZkheSAGJe7MZuydASf+6lIpfh1LTeuNwH9SaPUFldXcTV2Vb/B3au8mVZ1gIIyCMvKyiiRSBinjHbo0IEefvhh33PaCGER8PZfuVBK1wui//jrOh+9wW/mL9wQ/TxoaPxSO77u9YfZuiWDsx/n5hIe8bUiBxaLJU4qDvP7IHqnioqdR/fnd3ymQMEQywdD1futeDmdFfIj//OhR+EuMz2FrJjyW/ZeE5/I/XvVd2B4BF0DYuuu5aMzt8sR6WxaV+morgqXsgwhnMm/1u+Dv0tXY+vHpF/xv7fqeLhj0cqmy/nqlhhHy3j0UhZ6KlIKyiAkImrTpo1HVKZVq1bK/VKpFF1yySVUUhLuIrE1hAXI2J9xY2RQi3SkSp8mXG9ZOIDf3PpeFf08qgnGnE5s3Zu/y36cOL+TYEXdFovFEheHd7F7S4dG3vUdz9B78wsRpO5jWdhfvR/6D45/zP98qA9TRYfiBql0L3839+9V38H37yRYQ3Qdva/k+83pnLl9+0Lv9fZ+73jHeWQvS0kNo+iJeceMv+j3gbM6igGLuWWU+8K6qey4obeqtyeTRB1OT5+7ABRbY6DgDMKNGzdS69atqXHjxtS8eXNau5YpIbVr146WLeN9embPnk0XX3wxpVSWuw/WINSwby1TMlukr8fMGcO/w35U694kGn1f4aQzFBoz/8Vvbl19lMSCWPwCO8eEX/J1iBoOuy37cS4axMfZ6Syiz3dkf06LxWIhYqnoToI9r0SQVlcbKZNxsGW2d4I+t7t6P0jnT/mN//mQMoi6ylwhCvhkk6liMQP9NsW6fxWdzuL7qa4VaDVgyaZ1lYrlo7ijprrK7Ji3/8aOKWmv3+edv7N9orTFElVV934c7th5PYOjl4jK+/UQLSIKziDMNdYg1DC7A7uwo6oxZYP4o0KIX+ctrc+I6Q9Ow+hqcvN6pKOBz/B1+zeydZ3PzV6l7r2u3gdP1B5AFovFIoNUyz5evQHqfhFbXyy1yxume++TJY56P0RRpv/Z/3yIhuQiFVBk07t8zD0vze171XdSKaYci89bdoIAuaelSqQFWg1YsmldpWLiE/zcez4yOwapx37RSkRIx/40/JgQYHASTK03DBP/Lz22Pvp9xGBGHcAahBYGfjgdTud1GbVBssZbuAuZ4Hf+XntjKBagNIYlqvAOJNtFxbKaaqKOZ6Y97FuzGyc8eq/+iPdNtCnAFoslDrbNZ/eU57/lXd+rcToSsCY/4wrLmone+7munwnhFfoAACAASURBVNm7/0xHSP7tfz40HZ/XI/6xisB57CTY/b1Y2nwQMWfn3o+LZ8yHtnuvESfBntUySKN2I4nfzNwHWg2IJIoZQtkiNmp3EqwNignjHg12YkDNUxTBM2X47XxMayeHO3bIzey4DdP1+8AJo2pLUYRYg9DCbo5dzuc/nN2rau+9j+zlD5aaaqIlL5rVSxQKySRLs925NPfvJRaNZ1MrM+0P7Pj3unrXD76JrV8/Lbtxil6/6X/mqUWqB5nFYrGEQdeGoe9VbP2uFfkZV1hWvipFbH6v3g8NsOd28z9fiVM7zlRRzdJJZCfik6xh6YK5jmqCD4exMS8aVDvvly0Qkht6K/+8jx3I3M9tSdWQG31yORWMFzznx/wwvnEe3Oa9JvxqAkVe+T7bf9Xr+n3K1rN9ul6gFnfxY7DQd3HpCPPjkkmizuew4w5s0e+Hthaz/htuXAWKNQgt5vLXuWDXCvaeaIq+djJ7PfKu6Of87JPsjRpTdiyJ7r0KS89Lvd9T2fpo50Fqh1wvOu7nbH22SqPoh/ThMFZvglQuPPSrjrG0r4/eiP43WCyW+glqoeS0uAHXsfU7PsjPuMKydLj3fj7pSfV+k540K6NASqBfzVO21FTziTKMj31ro58PQmntT6udVlOIkk14PPfvFQeI+s78F0sXdRKsvEMGUfP+1wqG42fefYbdlr7O0qUnw2+Pb5wrx3ivCdP5GyJ4fvO1quP8bwrbJxkihU6CaH5P8+M+35HOmGvk78he0Nf/t1tkWIPQ4lWFdBLBtQpxgjoKKDnBwOp/bbTzpVJ8YrB7ZXzj1IHx57qWIlnD0y/xQN75YbRzvf4IO37ZSO96eLv8CrxNGH0/Ow+EgeCV7XJe+oHVkF9rva8I7/WzWCz1l2UvsXvH649416NZfRy9VGsDUXzLSehrrUUHmx94jr/24/jHCtACoevXiQa1ZP9XNe02oWwDL1NwEkx1NddMfZq914g7cv9ecYBresN0Pq9RfU5QxBxxJ0+dljO9kNIJkSI55TobJj+VvvYe4s96Ey2CF1qz/bfO9d/P/ZtCzun6Xs2vL7FEJgi0zgr6jD4am3ZO3RduXAWKNQgLkZpqNtmf14MtuVZpRPNOpNxk0/Rcx8kK9XoYC2hMipx5VcqDCTAonQTzJOcaNA1u/7XcGjZH9nFPajZ9eYgEJVfp85mfVtWa+tvsxor0lo3vsNc11Znprj0vi+71yzeffVJ8Y65LnDzBMgusI6F+smggj3SIID1sy+z8jCss83vxe7qT0PeYG/NDtn3lq/7nW/9W/JEfGTyvX/kBTx2NogheU000tI33mbD4+bhHm8mEX7L36tMk9++VLaKa67EDXMBEFU1znSQP8+evWPsmajVsfJs7Y+Oi39X8mY8axc8+CT4Oc87SgN6ZiCSGrQMUs6omP2V+3OLn2TFjf+a/HyKzA5uHG1eBYg3CQuHzHexHPfZnRN2+7r1Rtj+NGUzb5udmEoTJOgwCU++OKTuWsNC7Sla7pL03Knmygv/dJw6Ffy/Ux5mk2MTB8tHCeD/P3fvs/ZhHIl+6h/1/zcRo53INtre9693+hA9mN9aB17PzbF/I1x0uZeff9j6vgeh1OduvWGp+iJhh3uF0oiG35Hsk9RdEsv2K/S11l7nd2Pc/7Q/e9cPaeh1RhQ7UQ7tf7B9lGHm32WR4+4LcT06hvDi3GzeuotTjQdK/29f5M7s2mty/9mM+pyr0ZuIQUxnUgr1+9UfstarpvNiaBBHlD4by7eV7uOP6wJZ0ptG58Yzz85383JVH+PxizaTgY9002ABlYJS5LOgXbmxdL+DzszCRc6Tqzunkv9+Bzek58/nhxlWgWIOwUBAle50E+6GM+zlPv8PyQut4Uysqj/AUvsOl4bw7pizolw6/t8rcNvnX6TQGQXYYNWdh68uqq/ixTqJ2lEohghP3ZyazJZ3C8MINvFHr8lHRzoW8ejm1Cg+gbI0dRP+C+v6MuCOa1y+f7PiAT2Qs+eHl76YnB33zPRJLPtCpbo68i60vFgl4/B1IBdRF9obcwrZvetf/fPvWsv16fCP+sQJEgj6Zw3vIhRXU2LOaOYidBEu52zyr9qIsoiDOoU9z/36Ln2efUxRH/qz/snG++Tv2GmmZqvseehS/+0+hb5/w+yhNt2rpfSWrLcRnEIfQmyh8Q8SNqaDSk1SKRy3Ld/vvC+dJ2FYZuM7CRs7f+Ak7JkiIpvIoP39t1MDmGGsQFgqrx7MH2rwerB+fKItctoFo2h+ZR8dJMGWmuEDIGz2d4GU18e6Y4jZUb0hUIX3uMHg/eoOvQ175J3PCvQ/U57CM+3n2Yw8CaT9OIrdKo6teZ+/x8veEXo0Dop2r95XseDkfHwI/va/MbqxwKgQ9cKN6/fLJpplszB0a5Xsk9RfIgZc4+R6JJR+4qptSxglS4XPdmD0uoMCMZ+7gG9X76Rx4MuW7eaQmF5lEUATHc/z93jwqZUp1Fet17CTYpDuVYiqlOG+uJ9X4rJ0Ei6jmkppqbpCY9uUTGXEnO3bVa+y16whRNGifmlb2nt+L16aKbSWQTjzsNhYZxWcQR+kD6jIxrqUj2OsgFVOxd2LQ9w7RmjBz32SNdz448HrzY1/5gfez9wNRyGLpf+qDNQiLCXjS4mwej1QDGE+ud8eJ7z0QBXQSmcXDeNiJTUNdKWKDH6PI+MfYcf2uYf/mohZSRuzJlMtUJURZJ/2KTySC0hl04AYmyykfLuXGTtSU4eoq/nkEpfzC6yenfsVBMpmbSREUDp1E4acc1VUgFBB3Y2VLcYC0RbnmDLV2fhL2hQQm8Ri3LkJmWmclTrBlx2scrHuTZ6kQsV5zToJozAPm55jdMR3FvMTbrqJP07SRtlB/bBxApEV2QucCpFJGyeY5WUHU8Qx2LPoCuwa4osZfFIqDUrs4//lgCFuH5u4Qpju4LdKf5gERbsx/di5lr3te5n/c0TL++QTNN7a9n46mK/or6qg65jUIu19sfqxblmMQGFHNYYsUaxAWE3s+Yhder8bxnRM3ErQgMPXuhAEPPHiwRLqclzZONvN1U37D1olppEFUlPPI1AdDuWGYa5CeEcWADYPoHYQROuO58OdJpbiIwZG93m3Vldl7DsV0lKDmv5hQxBnxJmIy1f2v5UJFcQJRhVxNuizBoGfq+F/keySWfKBLmXfXK2qsCpEJj7PxwsDte5V6P9QYmpRQdDrbLDsjCsj0gSPGLTG42ez40uU8RXDtFO82pOjluj+gqDo5L0QbgihsX8jfS9djUseni/lcD45NCMe89lDm/mKdaeky9n9kfRHx9NO3/8peo34/SuRSBLWJTkOuoVB1XD/HEPnsE7ZPl/OC3wf7dj7X3NErzkWcBBuTqaMbkeQNM4L3VWW5FSnWICwmDu9KR3BOjyf6kUpxOd8dS9g6U+9OGFADId/MKsqFlIGjfL1r8Bg2NyXiTX4HtWAPQyfBJK1zrUT45jP8b5D7+sUJ0isXDuC9b8KoZgHRayZ+5gBF3mUboo3z4FZ+4w4C6cphvH4mIPW1w+nxiiMReVOEj+yL99yWYMQIdNyOBEtxgDowOTV03KNsfW01Oc8WGEHI+NDV/rlG3vbgc7rlAKuC9w0Lar4Rgd0l1KUFcfIEj6SoegBC0G7i/8U7Zpkel/D7x5vP5Pa9UObhJML3KUbmlqhyiQitqhYOkc+t87wCMnDKyuUZbhry/Gh/G4DKuvz3oSXJppn6YxHgMFE7Fectpo5YZDzBOHUS5kKFSGs2KVtydTD6mJ27gLEGYTEhRnCiKHDKuM03T2c3bCJz704YkA7iJJhKJoy0/RvZuq4XePdHhA/pDSZAaGJeT++kMdftAeDddRK5rWkSvVCI4kaJgAWlaeBGHjX9AX2qTG7yruF+RryGG1KrnURmc95smflvfu440m0s4RCv32Ft8z0aSz6Q29oATHoXv5CfcYUFmTNzOusjJckkv97FFEsdUAwPW38fRHUlT2GEeBpSIjs0Cna8IsOlV2P1Mxl938LUeUUBWUS14VCa252/V4fT9a23VEBRVLyWEXFUfUZw7O9ZzYzADqez14d3se1ui5B0qym/FhZhgEKsLOCHeZGcESYSVhW3a1p937RWD1HFrhdw/Q1T4T8opZsIOJY44QMYBYo1CIsNt/5rc/C+QayZxM4lq0rCe7R5VvbvkUp5b8Kip/OT99hrufmnnydMRfkecpVSMUnv8Q32eu+a7P8GP5By6yS4GlguEIV24JUbdW/48wSlaei876Yg6jeoZfC+NdWZD644gOqZkyDaty6+8xJ5I8Jxn9sSDJxIuYgsW4oDncjKlN96oyCFDuqUFr/AIzoyQRkdunNGbUmkA5lDPS7hxp9pi6hPF/Pns67O/tiB8BGgsMgiI2jnkCtQI4olqAbUHWeSZ+qILZnK1rN13S/y7p9KcfGaw6VsHdRgd3zAXqPOD0I6YURT/IADWTYsF/Zn68c9qj8WKcdQJzV9L1Nn9d416SDEZUId7jKzYxHE2GXwnUUJYBQo1iAsNvo3S3suFmd/rnf+wc41/U/e9aht8PPumFJ5hN8QkdYAY2PVa+z1y9/zHoOHT9+rzd4Dqloj7uDrXkw3KY7avN0URCbDRuwqj7IaSdzAg0Cqy941TH5cZcib4NahXq7ejt5SUZsEr5+WNua/Y7Z//2vNPXGm4HrIhad83M/DP+At8YHaGkxOLfWPPk3Y9y+rJEN9dF6P/IwrLKhTwnPQSWQKVYmGkkkWhSuXPzzeseKeKtevBSksVh3jcxaVGIoIJu25Uv8U5yJOgqXi5rKkBKq3yLgyTWXev4nt3/kc7/XgZkc09Nbni60Pqo6xdagpXDMx7ZRPpx1DoGb8L9jrJS9G//tcddhEZtQXzv7+zfTHQ6BN139Txs2SGmu2P2op+17NUlqdhH8KqwgCCiZOX1HBtcixBmGx4Yb638r+XHJNAICiZRxtG1BT1uls3lD67b+xbagbkGWr/VJRFg1ktXPLR7EoaSrFf+ziDffVB9m6FS9n/zf4gc/QSbCbsCkl7dkxJsXmNdXcw3p0P58UD7gu/Hj90k6IuEhO2N5SAJObV35gtj9u8nEqA5Y4/DuJu9D75e/xcwfJwFviR2wtE1cttaW46JZOHZOzZPB8iaq+DHYsqZ3fNuqUNr6tj44hrb7TWWbnRAuA+TELpoz9GTuvXCc14Jv+RhzqI/s0Jao47P8errBMjmrxxbYZ+LzjLikQgbMTWTem7Tk2TFc7fMV2EeK4UfojaiYgZXPhAGas4TiUBkFNXm7dEoa1U9g5oDorIr6n7ntfNpJtf/0Rs/eb9CTb3zQDACmpg1pwx73pfABihyYppujx2KeJ2bkLGGsQFhtQUlv2Unbnqa7iqZxy+4FP5kQ3OGTEaB88QogeTfsjez27Y+bYVDc+pDuKS89L+eRQ3PfN39WOtxiRSCdhliYJUOthkvaJB1n705hnMJsGxEHRRRSzRxGsIeLy1qbOBHxPc7tFez+/c4Z5eJiC+qUw3kZLfEA8CotJGp2l7uBpZr3Huw11arP+E/38FYfZc7HjmfHU6fsBY+rTRfx6Plrm3adsA1tvKpmPGud3/xnfOFMpVhPuJDLbQoy8i61fOznzOKTsOQkWMQoCgl0q0Zk4cMslzuc1d3KUOS7EOj4oU7/Q2uzYhQPSn8MvM7d1VThDVFk/JQ5bN+M5Pl8Qr6E4rpMZf0m/h6Z2DmmXuuwf/J2TnjR7P1cp9W9m+6MudfBNPCJqWl+M7658d/C+EHts/7X4RexqGWsQFhvwAGYrmQwlxm4XZnrZ48znh0d/aBseLex4BitSh3G7dETmcaoaQBgrA77JaiU6nsnHKXuZ3uvC1ueix50IcvPDGGhQv3ISLNc/CLndiOgRDEtQ/SEm3FHbjsxLR31N6ykxCZj862jvp0Ks63znH/Gdl4hP4pxEpnS6JfcsGug1COOsPbUUPmLdmvxsQtaFLHARBqS8Owlef5UrxNRXOGfldhFQ8hRbCPgBBeowzeKDQKSlQyMmOieCyOEHQzOPQ5sEuSREx5YS/nzPBXtW8+fosNvY/9e9mZv3cnv6ni4YDKfxlE4/EL2b0zlzG6KOUIUn4umZosEJI/SNn6j7V+O5OzUgjdePoW30zgAiPr9bMli9HWJKcsmSjiWD085mn7pEEaRyDr+dvYfuM5Wpqeb3ABNRwppqQYixuJXHrUFYbJQ4aS/JX7M7D24Yuok/5KuzrVVc8TI7z6sPMsMTtXCly3k7io1vZx6nqgEccjNbh/5T1ZVsfEtHZP4Q/Xr2xAn6+YTxEGFseGAE9euDp+vFG9nrE5/z46srw413+Sj/zwUPj8E3hjsvQK8qU88jDNQw6bZBiGm8Ki9rNsBR4SSKpwF2XQItabDsW5vvERUPNSfZRLK6Ktxxe1YzQ0Oub8sHnpo66b75XtdwE0wVSHF0Ev7lBptLWJSlpjr6e+FZWLaBi4js3+jdR0x7MwH399cfjj4ukVSKTaidBMvokXEn2oo0XTwLTCM6Yt+4oPTSKOxYkjY4r+O14LlSpEVZR/9r2WtEWE3mU0gxVaU3uv3xpvN1EAd8qR1fhzTkIbewvpyYgwHM/8S2FmFxW5ysVG+HU17nnEB5Solj9n5IURW1IvzA3GL0fez6NL03eGoyjwfvT8TngbmKONcS1iAsNlDcnW1axaRfsfO811W9/bUfpz1/Q7J7n/d7e28KkFNeMpipPzkJdc+kMQ+kH8qvsNcHt3GjyyTv322aG0F4JQwoqsdikmYEz5kb5QgQlkHUDjLZolqaiRS5yOLn2XG6fk9yNDIsUOE0TdV1m+jGmH8PyWi/SGgURDU3J6GObFtyC4RDsMgpbBY9iK6GFYxCna9Jk+Zcc2g7G0vnczK3IeqRjdqzeO+Y+S/9fsgMidqeh4hL4R/cxg0G+Vm4aWb6OWbY/H3d1LSD7a7o4xJBPVuns9VtqOZ2S3/mip5+yNQI0xcSjeOz7Y+nYsts7liFsZpNNNmPj8Z6nz945psYoIgc71yauc3VRniFr1s6nEcDwd6P2boe3+COEvE7wvhe/m60v0+lbCqDaPuLGucyVFhNxQt3fsj2N8mqImKfkZNgc04o+Y7/RfBxomMiyFkP/IIbRYQ1CIuNbH/IAKlvOhVOeFSySSkg4l6gmf9mr5FSOO5R4kIpZZnHyamxSIUZfb/Z+4YxbCqPsHz2vlezSJXpTYCI55pjCSpCrq5kkxknwW+oQV5DtxG9kFbZ5Xyz95NBbySdmI2qqW0Yxj/GDX4TXKWyhuGjnTrgbQ/jWTeh6rj3u140KL5zW8wQVV4LxUgpFtAzzETISgRtHgrBASJKycugJilq+jnEzLC89mP1fmIEIWp7nlTK2+8XSpxiKiARj4qYZlCEafsTRLKGK4OXtFfvg564qogkjt0y2/w9kYK6cEC0MfuBdlYj7sh9qwDMc6CsitcTn/A/TnzGqNIVVcIqEOeb+jRfJ4q6wPkvCsi4LR/aqMexe1XmtSgiZinp+iuKfa5Vz3bcy02DDm6pzBlmYmJiFBStqEzmzW66byOzcRH5lz8VEQVnEG7evJluuOEGaty4MbVs2ZLWrVPLvs6bN49atGhBTZs2pSuuuIIWLzZLbSx6gxB59mI+eFjw4Gt/mj6ihZvn4Juivw8RbxaMGzwEa6Di1KGROs0S+eVIUxnahr1eNtLsfUWJZl1az7EDTNAGqnVY9nxk9h6i+A3OsfND/2Pw9/e6nPeMWj3O/xjZqCYKTtfQEZTSWXOSPIqmYUGzZdP+RqkUN5DDGrcqRCU2J8GK8OMCxjKWbOt4LeFBtApLtn206hNQHgybJoY06biVK6Ow4wM2FpWcPWqMoqaJI6IAiX6dqBpUBcNGv0TEZ8eJz4U+s5L4SljVZkSGVAZzWPDe3S5kY1Th1mlJbYaSSV7jj97AJiCjKO5UfyJuFLzyfa5tkKsMIji0YYSh7COoCTsEYLpdqN6OVmGicJJqnfhchfNfTIGGkJGqXjNZw+YzHc/Ua0gc2JJ+vl6g/1tSKe6cVc2pws4Vqiv9jWUZZERM+hWPtJvMZ8WG9qZAIDFbheM8U3AGYdu2bWnUqFFERDRhwgRq3TpTmWn37t100UUX0fr164mIqKKigj7/XHPDkih6g3D3Km5QRAUpBiPu1O+DFM0OjcLXnIhAph8/+orD5JF91vUadD2Pj/A0ofanmRspyaS/UtTaKfzBjxv1wObs/6a9eU4c4se7EuKaxrsAxt3Up5mSp5MITplAX0gxIgXva9iUJaTc+al6orYlSn0W6k3CtEV5vlV4T7IO1xEgLJDazhaxKbqf1zwM2dQg1UcG38gN/TC/VQtP1w+TRi2qesYt0BSFLVI9tQieGVGjPrjPQqW4/WnqyAYMRznqEoaKcm+EBerFcsoZntWmf5MY3cimJUt1Je8LuLC/fj8Y6P2u8a53o0ONwt3j4lQ4l8H18cZPvCmVuQBtDlBn7hHq86mPhCN+WFv1djcaKGRuYR6xoK93X0T2sWwRssHcSPulme8hOj7L1qvHgXpMvz6DRLwXo5jiClDrH0bYJ8zcxBW4e0boSXhV8HF+n03QewX12ixwCsogLCsro4YNG1J1NbuBpFIpOvvss2n79u2e/f71r3/Rv/7lk9/vQ9EbhKJ6VdQbPvLQ5Z5CIqkUn3SteCX6e2ECt3kWXzeoJb/h6AqEXXXSW9kDKexEhojLHqsaiL/y/bTH6EZ2Q0rWcO+k8cN3F/8u4O1a+ar/MfDWrXuTF10HpXDhpipGEqMYXkQ8SuCX7uh6qyM0dY9iqKJe1TT668e+dexc3S/mHupD27M/LxGvYcCSrbDTO39nntjPd8QzvvoAJqkQmNLVQFsyQbNqVd8wHWJqWNRWNGHZOi+zFRLwq5GDoaZL9fQjmeSR0O0L+LNPNSGGU89JmAumyIgZLKkUEwRxEkwgRMSV5v+V2XmrjvGxZdOSZcmL7By9r/B3qEE5XK7phPJlUERMRkx11EUloyJ+lqIz11Q4JAyoMRVrnE3qI1EeokstVfXuw/Nz+WjvvmLPXCfhbbKOLLGOZ2S+xy4hAq57josKnn5ApGl2h8xtaL1l0pIEwPG+RVPqJAIBshnPCS1Hzgs+DhkAumCFipVj2DGmkfwCpaAMwuXLl1OTJl5xiZYtW9L8+d4f0A9+8AP605/+RN/5zneoWbNm9Lvf/Y6OH1f/qCsrK6m8vNxdSktLi9sgFGW3o/RJqjrGJ8o67w+Ax9RJMJnmKM163WL5lXzdlN/y8+r61aEtRu8rufd06fBw7w1p6fXTMrdBFUos3IbXq8c3zAzgA5t5tAJ5+n61D7gpdWjEPMSYwATdRFwjay5f98oP0h7IkClzrz2UfniM0u+DtLyPxoY7N1G0VFY0lM6mfxhwa2ha8AdwUBqvKVBgxZKNeAURj4wGpQxbOEg1R/1JtkZ5fQLKzb2vMD8GE/6ohlZY9m9i7/X8t9TbkcaoUsdGfT3Et8KAiFHnc1lGDJ4dqtYyiP6EMdRk3IbzZ7PX7v1cUi52a76fNTtvKsUm+U6CTfqDqDrG3nPlGOYA3L+JKXYjEuP3nCBi9fcqAxSRzSjXTL9rwjsVTYAAzrQ/sM8JdfhiT784SCa5PoDo7Bv3aHqO4BNxdVNNNRk8rtKmkN2li7RN/a33eSUa2BWH+Xq5BlBsvbJ6vHocpk3l3b7GirpePJ9Ll/mfQ8R1vI8J3lfsSyo6AIIy3qDsG8aZAcEi016TBUrBGYRNm3r77bRo0SLDILzvvvvo+uuvp0OHDlF1dTU9+uij9NxzzynP6TgONWjQIGMpWoOQSLiRabyofkCOuN/VwUZP5VFWy4dcdDyIZWlsHaISlfhwws3ESehVvty0hXR6afvT1OIzfoz9KTtWrvMQVaQqj/D11ZW8H9T+TcHnFxvCwms867/6/VHjMvo+9nrrXG68+NH94kwPX1jxFgBJaz8xBLnuMwyYsIepB4TyqWkzez/WTmbnGnk3q2txEuGjqDogY41Fp9RqCqJd7/eOZ3x1HbHuqsTRTzQsajDR7nimecaHWC8XFA2IA7TkUamIEnExENW9AvL7UZSFET2CND/S8FR1wlDHFvcPCwzf7hex12/8hL2WsyRm/Sf9nAyRroum63tW6/c5fpAZm3i2qJaB1wene6ZSvPTi4Fa+HnVtUdKMTQynKMjN2OMsVRAp352es3zN+/kh+uf3nEOkWGeIbXs/01hBqcv2Bd59YQDj9yT+5pNJ0or6QYzFSegVief1SDtFFeqyInDSYM4j0v0itq1sg/85RFxlUoN6ZtT1vdeV/b2iiJMfSEsP03qrbD07Rlf7WSQUlEFYVlZGiUQiMGX06aefpv/8h0cTZsyYQW3atFGes85FCInUzUlNQdPTGX8xP+bIPta/BTV5pp4TjxKVkHYCb6yf0SE2+4z6kJ/xF3asnK6AKJJc90DEDaZlLwWfH72GBlxn1pAdXuBFA9lreN87na2foIkiKccO8PVh2zuAoW3YcZve1e8Dz5qf7LoKsR2GONYgIG0+tE2491MhNuTFJCuq8IMMvN5YRJnvKECIaNof4hlfXefIPu4kglMp131G6xLi5N80TU6Mig+8PrfjI+IRElXkgohHHFS1OohsmPYpE8G9GRNgvI+cuifWgjkJFkmMApyJiNYiG0duS4BnWBixChg6qgjb0f3s/g7HnZNgdWCv/IAd57ZRamiu4NtPkYmBNMawWT1EvEQkrl6KwDUQurDXKJ2RUy2zxa2rlFIOt87VzzsAMpd2KcpciLjoTI9L+DqkOst1dWKtq+q3i7RoObBQ0p4fp8vaQVbP7I76v4WIz7XkOaOnbcUu/3OIhOknOOU3aYdrujRK5VhXgfmILJTkhxiBjEuzIA8UlEFIRNSmTRuPqEyrVq0y9lm0aBHd+iusCgAAIABJREFUdNNNVFnJCr6feeYZ+v3vf290/qKvISTyT4X0I5XiKZwmOdgyELQxbUkAJaou53vX11TzqKNfpEps+h5lUo+aQLn2BZE6VboD6vqC5KGJvAIHYsG6CjFVFxHW6ioKVPQUvY2iGmtUo831Jvr0b8MDOWw6lOgACNNCAkXc3S8O934q4BV96/eC8lfn7M9LxK8nPMiipKYBUXY+apShvgEvbPeLwsvx13fkHppBvU8BPPxx/T6DQP2yzpOPuiBVqjCUBIe2CfeeJyt4lAuTRRiXsgolIjRYooqfyGqpiHzI2QJTNOv9QK2oKt0Vjc3x3FozMfNZXlEezqGnmo/gOROmPgxgntHl/HhFtyb/Ou2ETkcec6UMuXq82oktPh9VKpliOxNd/eSRven5wGlsPiCKPpXv8e4LgR6dQx0ZKrLGAqLjTkKfgTH+F2x7kKgXymQ6n+t1eoulT34iOzKqnos6JvzSO0b0GJUjqTLIBAorvqWKlBcZBWcQbty4kVq3bk2NGzem5s2b09q1zOvRrl07WraM5xr36NGDrrzySrr66qvp4YcfpsOHzS6qOmEQog7MJIolghtt53P1vWP8SNbwKKGJVwcRtP7XZm6b8DgzkPwkqdHs02nIogNhWfU6O/7l73nXQ0VO9SDYOpdt69MkOK1K7GvkTlA1DYHdVN1rvOeFga7zCOpUZU1TNmTwfn6tNdyePd/L3Ha4lBdpy7h9gs4MNyZPHcqR4P39cKPCHXn9Tba1fgDpW6h9yKb5s9hvqsjrDmoNVyr9Ov47tZ+dGeIEzEn4pxOKQFxEnITmisoj5FGgVtW4v/3X9O9bIVIBIZOwLZkQxejVmN+bkdIpT2Q/GMKvQTgnorB1rvf6hfiG7LxyJ94hSgPQEF5OP62p5k6BtVOyUyEVcecjIzPfJ4pgVjLJ0wnjqv8m4j0O4Vz2q2/Lhvm91I5oIi4qp0pTRdRYjP7JiGnzxw/61wJC48BJsP6FMq6oiyQeJ9bI6vQNTEpPiLzPOdHwEyPtYfodI3qnU2EVcX8H6XkyhPiCVE1Xvsr2G/OA+biI1EJCRUbBGYS5pk4YhGHyqEUwQc4m1Q2T4R0fBO+r61FExG76uh43AGknL7WLNlZMEJ6XoszwksqKbkQskgej99Cn/ucXDSd4jnX1gGgKPf3P3vW4Sam8uUT6/jmIco5/zH+MMiYN7d0CaYUaIWpDZihqdqPINQOkc+xdE/5YEUygFr/ABBGcRHxiGEi3xnc25Obo53LTHxPh+h3VZ9zJwG1MtMhJMBEjSzBH93sNwq1zzY5DP1g3cnFIvd+GGcxpZXpeFTDMsHy6KHMfN2KmUMiGwyCoJlsGKXJiRkTNSbXzE/cAN7W1YbgJLdj0Ljt+aBv2Gv1h5YwPnYKkH7qoIlpJdTwzXsMeDla04IjjfSAaFbYkwg9ZiA2RoJfuie89iHg5h0oBGanBqrkbamCDanVFDQm05FLV3IrGWImTuV0XSRZV4FXtXYiEtOS5/mMl4r0IRQePq057bvDxIqLYYBBQkodQk+lvKUwUUgT1n0FGcgFjDcJiZNZ/2YUXVvIaap1ig9Kw4CayZmLwvtnW+SBFL6oKI/rGdROakyeT7CbkJPTCMRAjkRXfZESlLTe3X9HXKJXi6RmbZnq3Ia0BdYUykDOWVfVcL5ZCbU9HKsU98H4RVz/DDjc91c3Sr9ltEEPbsGM3TA9/rIjYogNR2biaD0PIB57msBNPEaTSqLynFjWoiRnzAJ90hp1Q1Ffk603lDFOByBUWnSMJTsqwKewiEN3Aoqphg6HwwdDMbeg1pspI8QPPRVmxGX3cxLRHOIPgDHQSZk2yZeSUZxjessMQ97Mwk0xdOQEcfToF16jM7pgee7quC6UU2bwPnq1RncEqRt6VjhBNZa+hKi7X9J34nKm6RlU5RbsHVQuqRYP0cyL0GAyKWEIcaueH3EDq00S9LyKtqpIbnYHk1pEmWNRcha5uUQUikWKZ0p7V6fOH7KcNsUGTsiXX4J3MXuv6NcpA5C6saJzbL1ozlysCrEFYjCwaGP6CFSMSUdIvAfrYmSiAQWhl6tPR3qumOrsecmI6BUQU4JnqeKa+PgGpgUHjxs194v9l5vaLiP0KZTEHGPeqiBsRN4qn/Ma73rQPkIhYo1B1TL+f2CNL/IySSe6dVEV9Za93GDDRk0UVwuL2KZodzptoAjyOKKg3aXKrAxEuLCYP1vqO2EdM7FdWczLfIyt8kHqOxVTsAw4rLDqJeDS9D+qp6gdEoLCoJtR+/V5doZYQv/fjB7mTrHy3ejwfDGGvxVYFZeujKSoDGJSoQ0aa4VRJLAf1eWEcZbpzQXArbrEWpNGOezT9eih3lEYFz+kOjbLrpygy+CZ2zs1pw0R8LovGBZ7/UcSJiHitmqpNF+77nc/NrLP3U7YVGdqG7bfxbW7k6yJ57r7vZG6DmrhowIhzBHc+IxleyRpBsdNgLonfrNicHs7jsEJVothg0HvD0YO/3XWU/Nv/ON3vJwhE+aMo6xYI1iAsRtxUxe+aHwPv+tBbs3vvEsffgBHBxLmkfXbvGZVUiovX4KENQ0pOwRSBYRMU6RLr+OTcfhGkQqnOh/QE3UP67b+x7XI7i63zwnthRaPVr35Ed8MXowyqpq0opldJTAeBh7DJdeUHhIh2r5Ie+DGkSCHVGLUnfrUeQcjpcX6qrxYGUvve/mt0Rdv6iiyGEjTpBHJzaznDAQxtw7ZP+GX0MaK+GdkUiwZl7iNHeUQgOqTK0tCBRveDWmZuK3HYNkS+0My7QyPmhHD7nC7NPDYIpLPDaEJUYsLj3v2iNO/WCZzhWYK2C3GBVEdEO1HnmU20OJXi6qWbZ8UzTtTvIRVZpYlQcZhHyHpeFv49kkkuHqcqOUkmeVsQuXYP/QSDsq/EXnxBAijbF7DrWNV7T1W3irrDzueQVvBOrP8zEf2RU4qJ+BwrSvaO+Iz3AwJV+O0gAhtk6Omi9UHgNxy2jKeAsAZhMbJZULc0Bd5O8UcZBVHWPwi3nkvTy6Y2wEMAhb6oo1QVfIMTn/OboV/PGkT30EsRDxJZxhm9tVRqkqgR1H2Xus8wSg0VDDqTmjX02hLFJ9ZM5A8CVS+zqLn3REJ6cRb1fh4p61KvkR6H0QDPL5pj63qlmbBhhneiHUWevb6B+i00bdb93iyZyNebqRd7yM3pY9L3w4/eUO8HIy6sEAOA86b913j6qUrSfvCNbJtKJdu9v309c5sOPBdVjij8zuHgwiQWtdX4bKI4c9wa8F+w1zojzm0xZVCzD2CgyemWiOLKYjPZ4vbGS0d7xjyQfp+QoncyMCTiMmBVgmr9JE0EKGxj8WvPUrosMzosOl11mQuoP5VLfpCGGWToiH2CMR9DdDYMUOwVr32xTUSPS9j/5bp+V+3ZUHUYyt+iAF4UJU8AsUFV1FOkf7P0d5tuz4bfWFDkWu5XaYrrGMlCbC7PWIOwGHGNgSvM9q+u5HVzQTebINy6LANBDbGeK1+8dA8bA2owUP8VlOeNiYdfrY2oaEnkze0XQaqCquazbIP/JEan5oXJj9zSww+kjZkYkS8qJl6I4mGRBSbcHmFSeqsJbn1LZpsZYzyKa+leQHioxZGS2fNS7tnF+0RV6hPl/J2Euujf4gUNq1E/hgiNLo3RwpGvN1NlRXzGmDirZOZTKR4VGXFntPFBsfnFG5kYh5NgbQFk3EmewkCCynGns83eE0Zy+6+pxaxQk4jnLGocEcWDGqPOSPYD58K9EsanrOqIaNLej83PvXVu2nCVFHjh0No6N/x4/UCtPp5hUFvcNj+788IBGcbx7Yeq7544P6iu9La6chL6punlu5nzsccl3vKLnR+y4/zKCZCl1L8Zf36Iz64gpW0xawgO7iip2gv6Zd4LxEbyboRNimTCaFRF1VUsH832Fx3icJJHSV82VdnvfaV3zrt2spnBJs/rTNHVpBYR1iAsRsTUFZMJKYq8e1+RvdQ0msqbpOXobii1CWoeYQDioRg0JqS9+KUNuGqvvdhrN2f9be9+rz/M1qsKu6uO8QeBSlgEil9ygbuoGmiqcrd9QfpGbiCG4ip0CUILohy16mFZ4ugN3yDcfkXnRL9GxZ5HANegSuY7DKkUUccz0n/3+kzDMyzw7GIJW8CeK459xpZCBM6R1ePZa79okcWLfL29+iOz41Anh/uBqqenOJlVKRObAGfTW7/nrS4QPRNB5oLKgHOjM18Lfr+Kcj5hlNPxgdg3rqKcR2ZwvxcVjcMiG726qJ6JKrQMailFwQ5PK4id4cfrh1jPW3WM98UL03BchZiaqOvTa4qnX59QKzrpSbZuQV9eVtP7ClaK4ST00d/Ns/jYxIirq1zqI4ZTeYR/Fwc2s3WodzdJU3VLVX7HjcMoZTmuUSZEzOComPSk3uEBQ91UndXNaBPawUAHI2yvYyIm+OMk1CquIhDUwTwFZTZBhiwi02FV/KH4qsqeKhKsQViMnDzBb0a6BqYiaHkQRz828eYfNBlWpR3WNij0ffefLP3DtCAZtSV+Exy5OStSZVaO8e4Ho05nlPi1XHAlmyXjq7oy3DVAxFIsnIRZHSma+EKRK5XiN1jUXWyd6z0GjX7f62I2HpHqStLWLJgC72w/ob4RNVBBirFBiL858TcQRWGQiD94MeEuhDSTo2UsCtrrcnXNSRh2LWcOk2wErGQQtYYohGkvLAsXp8L9RCUKJSOmXMNrjno6kaDaYnDiczbRVKk3IlKz4uVMwRUR1ISrxMbE32WQkwz1U/2b+T/HEKHbtZxff3D4Tf9T2kiO0NjcLTdIp+4i80a8N/s1HfdD7AeLiWmuWk5gnDBwED3qdHY87wOnT7a/cfF5KTpe53RKOyKe5aqyCwcIgkIKNVsiLqTjJJjxiM/ZtLchnkuok4UhafIcEEszJv2KjzksKsPO1X1whNRUSUAQokGmaar71rH9xRRTvyyAINz+wgE9mNEoHvcKBDOCjG6V2I4J4jUWdV6QZ6xBWKyYKpydrOCTgDCF6TpSKZ5+6vfeySQ3vsI8zOLGLfT9BffC9bgk2IPjRuAa6n/csmwzvI3iDTRZwyNLOsVU1KLIkcWgGwzOa+rxDZO3jzx6TFgwyehwOksLcxKZqcBRb6SgTxN2fNQUQNWkyvUA94t2TgCVXqjI4rM/XBrtfKjfgIpgNoqlcQGVOyfBJpDZgN+GShgkKn2a8sk5EZ+0LR0R33vUVUoc9llBadGkNYxYDyXeR2U+Xcyvm24+9XuIwPS8zJtml6zhz5R96/RqxUFCQpVHBGdlReZ2sOMD7nzaOle/HxF3Oqx4JfM+DmNCZSQHgQyU2R3Ya/TMFdM8ozj9iLyfA2rg4mgF4QeirYheRY0Uy6DcIqpSOfCoEgtCKBD36ZZOJ+16AYsG4311dWQwnLBgbuVGrwKcooiC41kMI2eKgbKlm/p4N0vDdBKZTmgTELkbLKTkjv1p2hAeov8MXNEVw+v+xCHhd5l2vqCf8az/hB+3m4Lqk+WgarElisz5zf9QVqTK6AoCJSrzehRllNAahMUK6tWCis1x8+jTJFoDXRXwpG2dq9/n2Gf8JpBttCEbRAU09PQzVcHE3ykbakCOULzz9/RNTkhBOvRp2jN7hv7z13kjD5emb2CN1N7WML2AiMLl7aOlBuplXHXWG71F7SJRmiiLoG9QVG+w2KcOIBUNwj9R2b8pPXG4kL3GBAIpP2FBxAVpx+2/ZqbYlitQ/4AFIkxRSKV4vWWcEtyIDh3cyl7rGnBbMkE0C5Od7hcFHyN69v2UrZFNAeNRNxESBTvExvLo4drlPHaPRKRf7idYUe5v8HmiQJrne3UlTwc0qXVG1gPu0V3O4/fixS/ojeQg0Lwcaq/4/fVvxvcRJ9JhWqukUpnqmW7LiSxaQfgBRwNSi8f+NJ7zwmjpe5X3utq+kNUqmjr6UGbT8QzvetSuY8GzG1EwnUAalD7xDEZfwVd+wB0IfiCq3uF0FrFEpM/kXiamPkZpSwJ2LmXHijVv6MG87k3+e534hPc4GL0Q9wpCpfYeNS2TiAvx+SnFq5wpYpaP7v5AxI3soO9QBYxl3GuD6kELDGsQFiuQwF8/zX8/KIvF2foBN31VLyigagqfD+C97n8t90qZ1rhB1VAnn43vAA2U5yv6LkKAxC9vHYak/D5BffRQvP/pYrO/x+1f+UTwvqvHeY1neMOn/tabhisiN4INC9JUUaMTFqRhiuk6rpx7FnL4RJkPTyjWRRVpQjTu/T65q+0xpaaap8NhySZFC46MqJNlFScrMh/w8GBH8TLXNzDhxG/XaRjsIETN8cDr/SdhSGHDoutxigbmcKzge4THH9ESSN/Lzw6xKbXK6Ewm+fl1dbCIxPS81CytC2qgnc5i/w67jW+L0v4JIHMB2RSu4JcgFCdGNMIChwzKEFBrlk0rCD9gIKHmUVeXGZaqY/z+CGPikzk8HdBU2ATzEdkRAkcfjEVkMyFKrRO0wbMX6thOQ+aoGticvTZpao99107mht3aKcHH7V3DjVG3lYbhHEDEnaNdyNchC6N0mf76djMzQihju2rvC9jr8Y+x10sGhx+3SeqnWP8r9nvE79ivvzXEEKM8A1MplrGCa3ZQS3aNFQnWICxW3GjMKP0+R8t4DULUSIYKyCbP66HfR5xM5BMU+nY6i2j0/WnPz8tmx8oNd2UgWLJ1LnuNh4PohTVpBgxP87ife9eveJmt19X7uLLnmt5gMm7e/h+C9906l+2LFCN4zT4cxg1LuWeW2BQ+ClA9i+rFVhmqbpG/YQG8Dje9Jj0hDmuMy4gPVUjLRz1XtsAb3u3r3Nkj142EAYqRToL3JssWMX0RERqxD6jFH1HYCt9NkEGE73H47VxxU1UjiPsKFl2rHtTtYYFADaIFMCJ0glk6Q1EEkTFVmcLRMp72aTrZkyNIorPP7aVmoLgtA8VcpKWpJucHtrB1YdpoAGS3oDk67t9xt5wAYrp5mGesCagvXTqC1cFD0RZGnEnmE5yrfZp611cdV3+3rvr3BZnOh5qTXuEcGMNv/40bHCYp93BoTX6K1+ebqMmW7+aOEZ3GgAmygyWZ9EaWce3LarUoGTExXoErCJYuM3H1FnyCCjpcsaGG+sg5Sjycht7vD6nNu1boz49+kOvfCj82sHMpf68u52d3rlrEGoTFyhRJ4VIF0v5Er2YcuH1lfERq1k5h+0SVIY8LMbKAOhXUIAUBCWadB1huM4HUKfFvNmkGjHTMYW296+Gp0qWRhBXVwANo5r+D95ULwSGusPND3oBerkXMtg0A2ql0OT9cihQQo27A7ZHVPNqYgFx/ma3xCwW31eMy1TNrk6P7uRz7h8N4im0UpViABvJOwpsClw0qYYKw4gb1GVxjayaaK1eivuq1Hwttbs7L3A9plVh0zkdEKYffzs917ABvvo5JU81JtdGK+0OfJvoxu6IziqbgSMuU0w/9QKohFrHtBrIG/IR0dCBzB2lpKC3odBbfR6UWagomteveZK/dlhMGkasoyC2Jskk5l5mXzrwZeD2PvLz+SLjMCjwHVArbL7Rmn7t43YqGouw4wW8BwjlwFsIYbH+aWZkMUj9x/3US+ui6iDinwXK0LPg4GfFvrDzqNaJqqr2RSBFcS2G+Y1HNlYiJ5zgJNmcKSzLp7Teswg0ESC1o3Oe2jzI10p83zwo/NpGjZdyZ4SRYHXdcZVs5whqExUpQbVQqxR+0cYsuoBZP7pkkEqaBfa6B9w03O79msyKuB/gW9XY5LUdlfJh4ZvHgF1MgDu8ityj68x3q48KKaiAF1i+yC8QaUKQAtj+NPbDcPkTSwxXeyv0bzcYjk0xyxVU0kw2Dm/sveKeREtT1gmhjAnLjaNRaBKVs60C68ca3eaqsaMjWFnAsDb6JPayCouImiO1JsmkjIrJ9IZ8UAqQ1R0nZq28gm2DzLN5TcOdS/2NcxcSnvKIc8mQXQhRYSjUONzGrBeN561m1+JjKaDVpm+PW9m7J3KYSbgkimeRGppPw1s1H6QUL5LS0o2X8PfB7gQE74Lrw5xfruWuqeeQnV2npyBrBoosSRwGGN5YJv2ROgzBGrk6oiIg5xVCXLAIn6O6V3vVoOQHhnGSSj8VJZEYhdVRXsecSjjPtK03Endu636QJcq0pHC69GrPt7jXZ0Fvfjt9YmFTIEocdM+M59jpbh2rfq9L3Go3zGRFeOUXYxIkOVXhE17Oh5iR3xDsJpi5bqG2dyBqExcvCAewC0/Uvg5HR8czMBuLZggerX/4+0ojeejbe944CDOOwD1dVob8Ibsp4mCCK0eMSvg9y5/0eWqpWHijo9ku5k1tDBDHhcba/Sd8sMX0EkQKkj7pGlpDKFFUiXQatPKK0rpBrOom8PdJMHQEqMDmGChzSj6NG9cSULtRnRpHgjkJ1JXv4o77SSQhRbqQJGrQlUJFK8QkDFlV/zbAgii6OK8hhY+EgxXnHEvZ5OQl9jzUgpmCLqtHyZB8pZFh0ataICqyd4u3j5iQy66TdbAPBuDRpmwMn3b51mdtUKsQmIGLgJLyRGD8jOQg5Lc0jmJN+BiBlT+zfZgqyJRb05S0nOp0Vf8sJgGwaJ8Eiv3EqLNZUc2fj5Kd4lMV1tgY0KCcS+jyGKB1AJFtOjYTTTHR2I1vBSYRrIYTU4bBjw+8Dn3dU4IAtW89/H7ifJmsyf/NiK5owrRXkAIGbXRXglNLhOmQ1qZhuTa50X8HnrWsnQmTuMAvDxxO4Y6nvVZlOhgLBGoTFyqrXucdBBVIV5bq0OEBtg9+NP5seTXED5S8nEU79DA3IxTQ1oJI19rQmqPF6Zv3aE6RSvI0I0lYg8uH3sIP0NaTLwa7lzGMppzzAa2xa3wHhFEQiIUYjFmxj8lJ5VDC8DNJedLh1k7eHP1alvJtKmRWSByH3DXvtobSxHFFRFfUFu1dxg9u0WXgUkjXsbxh8E0+3wSKqLZYuZ+tMvdwyiJp0PINHeaJGjEVwXYif0Y4P/B02Fo5rKK3ldaJBvTnlsgRMHmVjC04vTB6RpigDx9wnc9jvEgai6r7spm0JqV0mbXPQukYl9qRr/h4EHGly6lyyJvMZYIr896nSZNdPi34vFGX93ZYTrcKfxxSIpzkJbxuDuNj2PrtPigYtWneYlEBAgfrVB83fc+L/sWPkemo8d0Uxq8ojPNoXptn6ylf55xamTzQi7E4iWsoy6N+MPzORBSPqHbi9pD9ir1G/2OH0cM6FDdPZcSiLEQ3RKCArQdcaQufMN1FIRWTYpJ4zDPvWcsdcxzOZaE+BYQ3CYgUeVtXNt+Ykl0MO8gJHQcw91/VHcj0xQ+J//7BA2t9JsMilKWLxtmz4ihLGkBaWH+pyrYEfz7di+26ZzWXYOzTy98K5fbD+7F0/7Q+ZN3Yins++ZqLZ34+HDoxV9JQTjSwUz/t9VmFAzU77r4XrvUWk781p2qLFD/dB0p29RiQzikoakTclDhO2uHp3qYCUP5ZuF7JUy7ndvAa8+D1GqXfApH1YWy7vv3Vu9uNHxHzSk3ydLi3Ikgl+r5/vYCl3ToJFiP2AEA3S3d3aoQXe/TARhjiSTihC7iOJNGAnkdk+ACmVYgQejhM/gS6MQeXdhxNV1fDeDyiTqgxRlCOEFfVAhoD4WboZFrvZa1fp+f5w5ybidXdv/o5Hr3LVcoKI15s5idw4oVWoInVB+45/zPz8UMWVMzcgIiML+sFpGOaZcLSMOxXC9MqFU8dJ+LdfCEIUplNlqsAxDcfFntXsNdJKTXEV09Npsdn28UXbJtkZDnTp4ahvR+qqCtR0xinECE58zp3JUdXYc4g1CIsVv5YEG2awbT0vy11vMzTgRP2cDIyPbOTr4wI3OicRrojZU3Qt9ZMRa+zEiTMmRwc2Z9Ya+IH0l+Wj+IMl6EGHtGHZI4lUF/naCKtKCiUwLGJOvWxkxTk5hxx3GGUuVVsCgM9DF7kwQTYA3R54Eer+RHn8o2VcYTCKmqApiI4MvpEJWOiM9ppqfWqgCaiXmP4nnlb70djsxk7EfxOi2I1KedSSiZjmdeIQV/uc3dH/OFlNUJWmJf7ukIkhCq+IuPdGob5v3KPM8SUbVKrULqQ468okiHj9j0rwQqUCbcL+jex3s2ZS5jZXbXhRuHP2U6TEyg4tEwNYB1L0xv409y0niLw1kLpJetyEeb7KKf8mICtB1krAdy7XmCVrWGQqrCAa2jXpUq1VIHrpJLKroRZr6tyMAKE3oNxiLGoas5g9ZRJQCOL93unvU9NLVJde7rbe8rmHQMU2V/W2yWS477oWsQZhsfL5DnbRdmiUOblDip+fsmW2IOVFF4HEgzlXqmZhEPtkBSnriaRSejUrfP4dz/Suh4d6xwdsYoSHchBQ6itpzz3pQbLOqkbzyaS34FyseXF7FhlOXqYIkVX55u2q2KUNbFWT26jA+xempk7s2SX/HoLSS0zAZBdpdphUQzo/DJVH+Gd68oQ33TaOejsVuBZNPOSuNLehGq/IS+34BMJVlgvh+dbhNvIWBJFMGw3Xd8Rat5pqVp9r8vty61zns9dQxhTTpMWG36rvCCRrhHvSfr6+plp9zasEsBCp86tLR0RDNeFCe59se5KKoH9cWHEppOKJDlVk9exbm/14xfTaMLV2UampJjfSFaWVQBTEDJygrBRE+2b8xfz8UAEVhazklhNxUL6bOfHDZNYgbdX0nq5DFKZzjb8xfLsseBakvK5D1CRAlBH3oyisei1trGui/Wsns+2yBgNSdHWCiKmU+j5VT7AGYbEielnEB+rxg9yI0UXv4gDpRLrmpLp6k3yAiGmns8OnwckPaaCLiInCJjAaTJr0oqk6Im9dL2Dedz/WTGT7isXoB7d6jTixjrDX5fyGbEKJw88j5+LDyIIHH2mPuka+YcD3FaY2zJVoV6SyxFHPiolVXsvhAAAgAElEQVQfBGtm/ju600Wsw8AkAKlnufq9qCJsOnANh53kJmt4lGPfunDvGcTYn6mNetebq1HitXBRkc7nsNdoth40kZRVlFUiVrtQc9qEi9CoIlEnDvF7idgoWkeJw/YVVbRNfnNDb9U7Kt2oQogoURCusvEr4Y5DtFR0ULrKiWlHzPxe7LXYH88UMZJjImwWB2JrotqguspcyOydv6cdro75+dG6oOMZPAMhTBlILoFzJKzjVGbKb7jBh77KovKnrGaPVmZ+ETYduL7hrMD9KAqoWdUpBuvSw4OEpVSlQPWIgjMIN2/eTDfccAM1btyYWrZsSevWZU6QRo0aRQ0bNqRmzZpRs2bN6NZbzVXD6oxBSMQjQeJDBZ6TXNYjEfEoTkn7zG2itzBKf5y4Kd/DPquxPwt/rK7nzi6N+IY4QYDHzUTEBTdJLFMNJi1us3TBCBObgjsJb/oHJusqiW0ViCo5icy6EDftLJ0eFFWwQUVFOfcmmjT4JRIeEIrrHvU0USZWAGmsuA6gohvlYaxqQj04HdkwTecNSxhFWtnYNwVOks7nMOMQhkccNUU6ufBcCQDUJeS6H5PaNFGSHjVtECoRRTyQmjXkFhbNcxIsuiej6rPnB2pGJ/+ar0NttJ8gBNJcVenmczqzbdP/ZDYGE9BbURYeCcLNPBGiTO49Jl1XOLsDe+1X76QDJSW9GpsJm8XB6vFckba2QEZOUE88N3rd038/kZrqzLrOMGmquQQpwU4iOPXbD6QTlzhCk3tB6AUGIKLU2Tj5kFWE36HYZissQSUqbvaUlB7uCpFdqz5OdFxF6YVc5BScQdi2bVsaNWoUERFNmDCBWrfO9ACMGjWKHnjggUjnr1MGIeoQRLEMpACEEU+JwoJ+aU/RE5nbdP1r8knVsWgPKlUrAyJ9TywxTQ7RPpMGrnKvJaRp+aG6uSEdDJMA1CF66tYMUyFEI1WulZsPIyttuLpNrB8yO3cQUCD0698osno8218l/LB8NNuWjYqnm+KVNjxw/U9+Kvy5oOQpqsO5EfeYe4aCl7/Hzh+kLEnE05FKnHDvAa8sZNfdtJ0QMuw6dH2rxPYdFjVyD0eVI0lGbNeCTAX5N0/E1RvHPMAdSKoUx7BiFPjNvvZjvg7G16KB+uPgOFAJZ2UT1deBCbVJFggQ02fFnmSDJQGPKFEtgKgwlly2nMgnuK+JaY4q3JZLAUJKMniGf7qYvQ4jZJNLkB0U5W8SgWMTkUIn4S0NkZ+rEOiD8nAYxv087SBM1wcP+Gb0cXuUzhWZVG6JxC+86w9sZut19frle9j29qfF2zqlSCgog7CsrIwaNmxI1dXMiEilUnT22WfT9u3bPftZgzCNa6xMZ6+rjrNUBidhnhYYFRgLqoiQqh9fsaKTaN80M+0Zv9m7Hl70d/4eTpwDAhlOgtVwmTy8VW0xXn+EP7BEo0OuWzNh2/v8GHkiLk4EifQCN1FBSoxpVNevRk6MYkRFVGkk4sp9UaJfKgU0v4h7HCAd6JM5wfvC2A37XeJvQGsOV/pb440Ng1vXuMK7HoJBYQSI6huuwEIb9lqX3SAip5kScVl6cTIsijusHOO9J4jAgTawudmYkekw4g6+Dvc2PycRan1Vku6uMmEWERUZREXffMb8mKpj/L4qKvzK17JfTWYQokHvJHLbciKfoPY+SMgGDjdZGTQIqN3ielK1nMgHeIY4CZYVFhUINWEu2fkcryG0dW7a8Z3uOY3WVVHaLWFuBEV1ee4UhlSKz3VV7aRcESFJdEYUA1QFK9z73rnRx1bEFJRBuHz5cmrSpIlnXcuWLWn+fG+0ZNSoUXTGGWdQs2bN6Nvf/jZNmKBXsqysrKTy8nJ3KS0trTsGoVzkj14vfa/OvXcDkz2ViAiKsf0a1xcL4x9jf4ssJa0rWkbdB9IjTJv0JpNcitmkrxKRWkgFHk1cC06C1ZW6nq8QbSGQ2ugkiI4d8G6DQYwog64FRlQQMe32dW/d58kK9gA89Kl3f7/3370ybWhfEW0sopIi6nXdvlYRoo6qyS5S5FQR9zgIU9OLlEK/fm8qoEKJVgGowel0Vvb3I93DH0q4QRGC+gy8/KPvY69RZ+xXw6MyGpEWLt7zxAiZe13fmXk+tw/ZbWZjhjNKfIZAtVZsRSEDSXdVmv7Up9PRjRBpg0GIap6meBSqBcef3Gpj4hPsNdr9hCGV4umOshFfl0BKY1A9rMm1owLXDNoN6VpO1DaiMMvGd6KfB04clJMMuM673XU6X8Re6zKmTMB3hXRpUfsgCm4PxSWZ23QlHTXV/HNTZUr59Z6uBxScQdi0qddr2aJFiwyD8MCBA3T8+HEiIlq/fj1dcMEFtGSJ4qIgIsdxqEGDBhlL+d13E91/f3EvLS8iuvwLRN9u6n3d6rLcv/fdt7P3uuKLRPfd593Wpjnbdt1Z+f+Msl2+dUn6M27iXX/LN9n6b57jXX/zdenP5X/Zv9ecbv5e153Fjruzrdn+97Zj73H5F4juvcf7+p67ia5KsP/fdgPRXbex/195qvl47ruX6NpGRM3Pz9x2Rxt2viZfZq9bXcpet748ns/9vvvYWC//AtHtN6evue8QXXu6+trC93TDlZnnandH+nNRXKsmS7s7+eeK47O5xm+5PvPaubUFW9fszPiv4fvu9V4XQft/50a279UNw70Hrvm7bktfnyHfV3ud3yNc59J5WlzI1t94dfyfW11Zbm7GPqPr07/je+4WPs971cfc1jp9//qacF18O31dnMbXNf86//xvuyHzGCyqa95vufNW7/3l/vuJrj2DrWv7Lf1xzc9n+9zcLHNbLq6VKPeBu+/gzwhx/TfPZetvuY69vt7nbzFZmnyZf8+tG+f/OszF0vZb7O+7NuA5a3LtqJZvN2HHtbyIvb46/Uz9zrfz+3fjGrr8C0S33xT9PLe25OdRXcf33CU8++4luuqr3mdyqPdq4X2v68/L7jNodiY7z60tMre1bqyfCzdJzyvuUsyz7riFbWv6lfx+v3layu++u3AMwrKyMkokEoEpozJPPvkk9e7dW7mtTkcIURPxzt+Z5wNRgNqop/HrV4Y8+3GP5n4cuQZF1KLaHZHgGZZSGtdN9abqhJGEPnFInf6gI5kkV7znyD5W5yB69RHdfL8PFxno08T3lMagrxDqRCc/xV6biJaYgrTXeT1ZGhUaxuJ9j+zj+/q1lqg5yT+nKFLSqDvoJtQdQAl1WNvw53N/H0K6KRrHi3WFcSG2BjCJ1EFJT04f8gMe665f90Y9XKGCkI27RaDKqopuuwqyEdp/1BfkelcxeqRTZ1QJz+A7FsUg3KjWOHVtLDBVNgVu9oPQVun5b6Wfbz711agVU/VCdCX2NcrYUfATs9KB31fXC7zr5d6LKFdQpb+aAEE0J5HblhP5BOIiXS/wv1chZX7r3HDnR3T9pXa5aTkRFVENM5sG6lvneucrsnqo2C7i8C72THAS5sJ0Isgq071XWNzsLcVvHam9qlRiv8gixihHSusJBRUhJCJq06aNR1SmVavM3Pddu/iPcd++fXTZZZfRnDkGtTFUx2oIUbc18Qleo9H9otoTcunThL1n6TLvejd9L0Y1t3yhy0VXqeAR8e8BS5z1KipgJB3YzI1UpDGilcW4n6tTsLIhWeN1CIj9jOICNUvdBENw+O384S7WEqH/nap5NBFvHxKlFUvpMnZsP2Giq6oDNEUlJy8aPWFbowSB9Nu+V5ntL042TBsHQ1QIaYkA9SLZNOLdt5ado8c3MrdF6S9W33A/I0GtUtdOB6gMuMOlaSNNSFEXv9/9mzIdJ8DtIfh7szGLdXaVR9k6yNb79ceEY0ql+pmL9OIo6eh712Qa1kRckAxjh2Iqer2GBSncQUZ0MXOygjv75LIGEZRS7Fwa7vxw1PVpWjgtJ8DzrZhOg6kmgApcv1hU5Sq9r2DbxLlNlJYMUBrGMu0P0cdNxOtHVQKKfqqysniTiPtcz7OKbJ4oOINw48aN1Lp1a2rcuDE1b96c1q5lD6x27drRsmXM8PjHP/5BTZs2pWbNmtE111xDL7zwgvH565RBKDbnhCJZFNXDqKBOTm6g/tazbL2fPHixoBJSIBJy1KWbGnLQsWRT8G0CmtiXLufNnOEVw82t/7W8/06UiJYOSP7vXqVvC5ANck/Fd//JvLQwdMUeQ4Napj3Aml5bOpVKE7YoVBmD5Kv9cKPO/+DrkjVeT2ycrH8r/d0b1m8Rhe+LiGtPVlsMo26qA84MlSDJooHcKWZR43rLBedUkDqrqnm9p/dt+vkpOlogjKVS6Hv3n/oJp4pUitdUf76TrUO0ef8m/XGYCKrqBHNxjwrbToNI7WAi4r8hiMgMvkk/cTUBLZCcRO5bTuQTPAP9+h8GOUB0iIrpyAqJ4gTMBSdPeHtQRwFGLhZVtG3IzWwbhNSi1oRXVwUbn2Eoac/Oo2qB4baDGZC5beTd6Xnr5MxtrgCXeSu7ukTBGYS5pk4ZhKKwB1pQhG0mnQ3jf8HeU5Y9RrRIlb5XbKiavxPxJsyyhLn7AEkvYkuQXOCqR77Hm6cjSnb8IB8Hood+vcfCggnLpnf5QyPuPnoj72LGCZR0iYgObOGRihOH2Loel/g/8F212AgGOq4BUWQlrIy+iOvZ7OJdDy923NcMvvswwhIv3JA2oA0no7gWZOdQmP6HOlQiPGDFy2xbNi1F6jpuOnc/vi4o+oQ+o3M6eddDbffQp5n9ZnXqmUTR5OrhcIJitqp3n27c8m+LiN8fxXtJtojqzVXHzY7RtSxye8KllYZ1PXBNwaS4rracADD0/VJrkeoYpiSDiBk+OPbtv4a/jxY6xw545ysqIwmRdTgsTDNNVKB9k+j4iIpf66exP9PPQeEoUWUK6MQC6wnWICxmoASHyEKns80fSnEg1jCKYLIhTw6LEUSHXpR6dukm9TUnvTdYvzSWOHA/68n8wSXWFMBRAOM9zocZbqzLR7OceyfB+zXFRTJJVF2ZuR6G8EdvSOmr+zL3JTKrcUzWsFobWcF02cjMzw5GqVwHZIKun9pL98QfwSDiKdyy4pofmASo1BplTlbwe5D82ZU4fDIVFVVPOuBnLFoYqnRuyPDrassm/FLt7EP62O6V3jriZE26NlFTV+5X46tDrBmsruT3VL+oCKTtS5zMbdlkCehIpcI3fnf7QN7kXV/ieJ+nKMnYvTLa2GDAFEpEK1cgKqxyAhBF68ErgusQWSj5bjkRJ3LUTuWMnJJ25iAFOZv2TXAc66KRYdA1nyfiCvwrXsnchrmQrBxPxOYTTsKbfVSPsAZhMfP5Du+PWfXDyCUQx5CFVVzP5oLaHU8uQHqPLJTgRj76ZR6Dur5uX899+w8YZSUOdwqINWiYiMEzN+nJ+N4bktzzekZPyYkKUtre+InUW+iken/UUb31rP6c6K055ofe9UhRFetIxZYfYdH1xEINkeqaygb3ewrhkX3zd+wYyK3rSKV4+nSPSzKv9zgEpvD5y/W6RLzFzfPfin7+uo5Kch+NqN9Xi7FpU33dyPFsXgsn1nai3ldO63THMM583CPvYsesm+rNdvCrkUc6tqr5/IBvpp1Wi8zHYALurXs/NtsfKdyyE8Ots0zfo9wU2Y3RxoXz1aWIlgpEinQiJZVH+bUjR65NgHGBJd8tJ+IGLX2cBO+zK1LisG1oTaHqM2oKnn06Yy0MaIOjal8ht3AR8Ws/4xqZD2c3tiLFGoTFjFjT4SSIVr5au++/fhp7XzHfOpUSJgURH2SFBBQmdYpwKo83VKxqIw8dnnxECuX3hIAJljiFfmBkTf9TZr1PrsFktNNZXEFVJWYB4Pnz66036z/pB9/5XqO6xPF67olYqmqQEapDV8vkfp4x9XIEYiTXlLnd2DF+DbdrTvJUQCehjr5CdTebCB6+F7HmEuz5iG3rdXn089d1ht7KPiOxXxlq+lSGE5GQAv6ud7147boKm0IEqm86I6FUEn4Zcov6fH6gp+DyUUKt3tn+x8zpzPZTiQyh1sxPlCYKQfXLMnA8yen7slBZxzOzu6fu/ZhFIbPpU1cMIEtAVx8v1gFGSZ2d8RfvM7Q2VNxrE6RmOwkWMZRZ8qL3789GpwKq0E4i+wyyLbPZeeTsLSImPuckmPNFBnobcr07kSCm9YvsxlakWIOw2EGaYPvTWKSkNtm9Kj0ZE+qoxOajFXXgMz66n9/ARCPBT7EOtSrZyiqbAAEfGGRv/s67HelJWFQ3wai4qqaCeEG2Re6mpFLc8EbtzYBv6veHJL6f4SB6L0UxlWl/SEfLBJEk0xQ2Fe7kWKq3hHfytYfCnS8IsdbTFKRpvvqgentFOY8itT9NnwoI8Z1+14QfN0C0UqUYZ2oo1GcGNmefkViL9n5vtm7Kb9XHwLCTVRlRm/PBUKKPxmYaNoggyqqySClXSb3rENO8961j/1cpzYrM65mOsv0+c5tbZ2wolGQKIpmq+isVK15J/7akuleIdoz7OXvW4P5S28/1YgPOQTRPl4E4Wedzo50fcxos+W45ETcQmOp5qXo7auixZCMGIzqoTevTdfi1ufETZILTSOV49atLrAdYg7DYwYNbFTbPNWJBcnUlL8h1Emp1p2JEnPhDwITIv80BDCSVHHLcIHqCBT2sgGjQ6ibVUYFntv+1gtFci+IFqGFFRHr47fp9Kw4LBpzmty/27RKjaYjCijUPfvVSQehS1zZr6lWzRVSDNcUdy7cztx3exSf+nc/xj0DAYOt4ZvT0ab/+cSc+996DLJnI4ixEwalRSA/77BPveghLzO3GJ8oTHufbXbGaN73HRTHGUA846z+8dUqQYwETOrlNEBEzCJxEtB5qfrz+CDuv2AbHDzjS5DRqCCS99mOvWE02bQXqA6KY0fGDmdvdNh8agycIpPjC8VTXBHrgwB6see5A5TmOud2q1/l5/FRhTXDr+BWZQX4qyrqWYUQ8MybblhhFijUIix38mBebt96IjVSKq8599AZPcZn+59zXztUmyLEXFcr8UqCWvcQmQLtW5H5s83t6b9YqRTqIE8hGTbagRxOUBrucH9+5jd5/qfdvD8r7R62PKmWsuoo3HXYS3h6BY37I1skKpZg0h51g6mqO9n6c3cRFhdwv0hT0/ut+ceY2TPp7NQ4WvBAdKqrJmgkQ21kzMXNbMsmvP52gUH3HbSa9ja9zU3nvzNxfFJqQv7MSh61/+69CKq+QSu1mTgjlCx7hlRDRFUT73nyGp6eqHBQiSG+TszNEB075HvMxmDAlpIIq+gfL9dxogj76fm+aY116luaKXpfr7+14TkVpEUTE78tOom4K9ECBW6fUjP6iWLJppbV1Lj9PtpF6NyChSAV2U9eXZR6nayVGpC4PqUdYg7DY2TyLTV6jNAqNA0Q78LB9/eH4G2vnG1dZT4iwBPXxqq2HONKM3CimopF4nIXcIoe2e9+7T5P4zm1CMsm/G9mIUwHD4qOxmdvkh97zrfg2qKvJcvU9L00/2EIK6egk0D/fyaNpcSH2hgvzuxRFPE5W8PXle/hDWI4e6Qjb01DGba0yR71dJ2RiSbeGSH+PYuohvP5y6wMi6ZqRJlowZiY+wVM63+/Dt6ui6WKte5jnFCJpY3+mF2KRWTpcHX0TjVwx0yMOdC2IdIiGroj4Nx7cxv4fNc2xvoHeciqFZrfWNWKz8Ypyfu3URYGe8Y+xv02VZk3krZd3EmzOGRVoMjgJtYBNGDy/aWne4zpd12Qeh1T3l7+buc1t/eJkN7YixRqEluyAepyTYEXdtdn2oraA7LQoGtD3Kr1HsjaBWIqTUOfSE3G1OSdhXudiwskKvRFVW6DvmJMIro9EupvcW42ICyThe3Ua8tpAGP+yam4/Hy+kDt0Encg78RCNsGxQ1fmakErxyLgYAUX9k07AQUWQQReEyiEjgv6N2aYg1UXEyZyYUosIsKomr2w926aKDq8cw7aN+aHQmkRwMsnN1Ym4E0HVsN4PiK+Mupenmr3yA/9j3LRLqQ7X89uKOQXz/T7svKo0VRWzO7D95VYsYjsK05pJCwNRWlVJBO7tw78T/fxwatWllhMA7Ul0LZlSKa5R4CSit0EhYum97U/zPl+zQedc7XoBW39gS+YxG6ann2G3ZW6DJkOQunYdxRqEluyA4EP/a6P1+CkGRtzB/kaxLqb7xWxd2fr8jYuI39wQnVWx8R3Bu5dlIbcMojMm3vtcgLYDTiKzr58Map5ULRAwqZv4BDcwIIyBdCQ5xVPsk2aKX81bMhncTzEsm97lk8ywQAhETEOGqIgosBMEUpKiphqJzdBVuAICWXiu6ypoTSRHnV0j7WuZRtr2hWzbwOszz7dhBts29Fa1EimiZTP/xdft35g2MC8KN3axB6wYLfTD7SMmGY5uCmYi/uyNsGJQbm2k5MASG9aj3VE/jZPP4gViJSoxkNXj9BEhU1AiUtdaThCxNO4F/fwj51DodRLm/TZ1LBup7gEYBTgL93zkXd+hkX6sbqsihQPbr51YPcAahJbsOLCZaMZz3vqUugZEYkRPeNAktbYQC75VkS8ingLmJMKp/JkAyXUnkV1/oqjUVHPvrdwzTWbTTNKmDiH9bV5PJpIhepvdGlLpux7aJnNCHERQWqjbeyym9McgtVA/0GIAvZxqTrI60bCR8aCed36YpBv69Zyq7yASKNelitF9Od0KqYsqkaYdS7gDsPeV6WtBqJWe14OtE9PPUMMVVml2V1pFsE9TdS9QFVBElNvLuGq0Z4UbgwlhW6tM+6PaqSKqJm6bn5602v6aRqAnnaomdtnItMM0iz7NH73BhOSOlkU/RzHz/7d35mFSVFcfBmI06JdGFEERZAigsggojIKigKIGdxaXJComATWCSyQYlyTNDjJsIsiqILKKCoggsqMiyI4w7DDAsA0IzAAzDDDT5/vj9qmlu6r7dk919e3u3/s89cxU1el7T9/qWk7ds3DpGie9V5zA6qVsuAy9fF0ZXDd4H7vPrhoVM5VVBgYhAOH4oqN5Bsp0wTkeX924DpvXE7quD896BbpWlBQ2GrweET8UD1aNEkZeuFk1Tj/eq2JwPB0nZ9oyU69FNOnJgCyzAQ/OnGk2EjdczRWsuvV+zf1xtfX+SOEH9MByJDLw7/7HoWKdXz68/4fIMu0t7C4+Z1UbLhy5B8Vne1xlP7PDs5Z2pS/sOHNMvNAwxsAlG2zAfdAweJ+WbCYgKRK/RJj8VPBnONa2bxX9LbyxTp5VHa+dC6KbpTaWC1jcS+43pMXhBRgGPEvZ74bIdJAhVDymFfyCJNBFz2i8s1eHG7VskwF2jR9QM3gfe4a4UQYqWZn8lBhDtxPHhYO9t4z1Bo1ZZwvPBH8m1LWA8y0k40ywBDAIAQgHx6nxDJwxJXi8YyY5+YDXEzrJR8622LjUffF3vX+7oHRVKC7SYyGMhrHPp7u+Ht2iv6nvnxa6qLFd9tFQhMt4F6p+UjTwbMTi3pF/dsH/xGc51ondAa3SdYeCEx+Fc/ezQiZl/KzOQmZ5hCVVOEYtHrGvbsHG2Ki7g/fZFWrn2Tgr97vAMjaBMwbrJwV7CxhjASPBGP/IBa0Xdg/9GXaRDjSk+MXZwJsi00EG/o3Kxvt9/oKQD3Sb+3W3/tDNM17xKCeViBjLCgV6EljNWoPI0EKDGsRbEzPsvWWsB332V/23YJVILdRLRq6ta5V4LgWAQQhAOBb1NL+dVikl+Pl88bZ+UO341Eea/65+8S1JwVq3YBcTo8FlPJ4XzonsZVxChd1MrWodTftL5DNTHBdlV/OJZ1ytsuVFQ6gafuFYNcpsyPHYWdXeDAXXqwxVJ9IOzhoZynUu0iyPDNesizThTiJh50JJJH6DVi8fuL6n1XgakyJZnRd8rI0zdKHSvIfCWFKEZyjClXbQylMEnF/7V4V+EVMS8g6Jtq3iMa2wm4XgdnpcpSfvicbVO1V5/w9izIz1NokM5VHeiY9eyQA/A0VzDY8l/EL6p+H6ttxs/3l0tfVnjC8PAt1fOVttKG+rJAYGIQDhMKZaJ1IvJXhudvxiG1YM0y+ukc7QxAM24oxp8TmZg/FhcWwr/0uAbuKvVQbXLzuJfZEU6t3ylfjMx3+03q8ZcOPk2wwFu8JunRP5Z9n9bsy9egxW9/KRp+3nWVG7LLh2HN6ox+qGcuvkWpzhyo4EMvdf9m+Kk4W148V3tEo4xRmiN003b58Vpq5eX0MiqQ9uNe/bvURsN8bpysb/WcExtR/daT2rFoiWmCXdvH3P0tjNBl8o0MdDJnMiJ1naONW83VjqhespWiXAAtbwNTvQhT/QwwdEDsdhRuPlEUvYc2BJH32bcabdilAxhqObi+3bv42VxkoDgxCAcHAqcy7cGiple6rBGdy8HuEaqDoczzbnDX0b3+yMb+O/fVt/4LWacSDSU+xHkqKayzbYFQHm9OlOxbVxGY1ISmMw7Do7qLY+U2dnyIZCy3RZQd7wyj+hx1NOah969lvLQPmXyPQy1uc8l6T3A35h82Wn4H2cQCHQyJryJ7F9zcfWbQ6tr4/bxw+a92VbJGxY6BXb5v07cv2HNtBnIgNdw6zQXLIDXNu0mLzmkesgg1aiRSK5mt0shDGB0uLe4q+V2y6whl/QBWaItIvZBPKcyxXncaQ1d2ONVQkXmTADu3IVXCJpz9IYKKs+MAgBCIeWRc7vBnVgtVhHSnBz2YfAN94qsmFysAsdG39GlyJ2tePFKpaHPxeu/qGRn0aIz9gl4LFLSR8NxvpRxsQfshhd4bjmXDSGqjExT/6J8PLFxXp/Q+uHn5Hc9Lm9W2QoOF7T6sEgWVjSR3y/b94M3sfxpca360TCyAvlNmXMOBg4Y8CFp/sZXEnnvOHvp2/k+hv7spr9CeTQev9LjDrm7eFm5kvKoNqifWPGVTtGNxeygdmJi4v178nHZs4/Y6FtcsJG9Nevm7dPf4+yRpMAACAASURBVC5xXliCyPhxqP/FiSGunUu2hPJIGVBDyAQWrucXUE5nY08QYBACEI49S83uRoHrqQxn7PJ6RE1E1eGbhTG5BBsfaz7Rt/GsFi9WKcv57eTcbvL9L+3vf2h5Lcz+1633R4LRBe3i+cg/X1wkjEGvR6+PGHgDleX96uLzMm+Yl/YTsr0qBscDWRFtFkvWSfZBPhHhlxYLvcH7OC7om67m7VxKxq6+5sQ2ZsPFCJe4MRah5zIuxjgfWYx9eT3hky1pmToDsk1q9QmfiFwHGT7yx2PukkgGpc1CLAvex7HLPHtrrOcIQsMJjT593Lydr+/hZpdB4mHlEs9u48Ma2X/OzvDjUjqHNsREXdWBQQhAOPitMxsR2+eJ9TEt46uXChgLre/9Pt7ahMeoL2ejY9dEYwF2n08kG2FZK9etaGLXrAp3G7FK2x8tXOKif1r0bfAN0usR/0cbazeiqdwD884FpCUSCVdXkolmxt7onif7IJ+IaC7IFjUgfxpuPVtt9/acMWYWDqylZ0z5fv6s2FaSB/IZfzUfp30/hZbXZigDUspz8XirWEonCKzZGQrtYXRV8D7Odsy1NQNnb4E9WT/6vQoC3IWjKQ8EEgOe+f+ktb5tZ5jEbUT2CbX6p4ntOdtio6/iwCAEIBxaEplrxXq0adSTEZ9Pf6t9eGO8tZGDH3gPrvMnhPAbIGeOmeU4wYvXYx3/pLl//k2+73Bxhxum+Gcy2si3aQdnXBzRJPo2OCmN10M0+9Xo2+GZnnBGAScPicRVjmvj9aokMmNO/bO44Q+uJ17eWHF8l9nQiKSovc9HlLNVZNxUnVA1GrXfmmHWzOcTSXa8HuEybAUnWvJ6gpMf+Xz6rPLpI2KbVa0wWThpBC9HfgktfzLLf60OSPjFSVqceNFiRSRuiQNvsr9eZtwo9vGMY2A8HLDHWE7AeG6Oults3/Fd/HQDscEqiRUnQwuVEdUujtcutjBFgEEIQDgCXe8Ck8ykOt+8KWZLLxbGWxM5+GawaboegN7vhuDZL86O6PVYxz9psw4W7qR2aO5zI6z3b5vrn32+V75NO/iBP9CFKhI4K6vXE12mUmZmmMyVTJ/KQu74Lvm2zx43Gw3GxS4rHj9I8LJqlHx/fP5bzbqphlZXyyK+l2v2jbpH3xYqJTvDLr1ejygzEQhnBj22Q6xzuRIrF8lwcEF6Xk7sCS2vlW4ISDn//SCxPZpMpzJ8/br1jKkVgeNjhBP28Mw84t7kKS421Jndp28f1sjvAfJD/HQDseHgOnFsjTHDMi/srbwWfD49NIJfZqUYyhmEO3fupKZNm1KtWrUoPT2dMjMzbWWPHTtGFStWpHbt2tnKBAKDEESMKU3xcYNbX4d4awaiYfar4vgt7q0XgB57X7AcxyLYGXAbp0VucE16Unxm3UTr/ez2FCr+IZDz+cJgDTSitALjERaSNzLvLf0BO7DgcyTYxasZMbpxRpr1c9n7Ymbw23eEcbekr3+m5U5rea7zphn8Ebjmce1NJ2ZxYw3P8FrF91q52gZ6Q1ixarQ+blbJFwbXE/uy/QXveUYsmrgcdmvlJXAWPxDjywHjCx5OrhOrJC2cvVgmnpgzkhqNFmb4Hf7Z7opyM+rADBt/xpcPnPDn0Pr46QVig1WJCS2Td4ganlYZli+e168dkZZWShKUMwhbtmxJ48ePJyKiGTNmUJMm9u5O7du3pxdeeAEGIYg9favoMxffD/S/bX4l3lqBaOBU/NOfF4aE3czB+bP6G8P1k4L3WxXhDofmqvKV9X4tZXZN6/1WrPhQfCawBMC8f4vtJclYym1PeDT6Noj00hChipOzu1+viiWvC8guob2vtW6Lk/fwEspQDYRnO42JiVQlVIIYq4epg4ZSI3bwG3ivR7QRCMeL7l4i1ntfJze7ZwVnBeblfH5oeeMMpzGRUqyLk/M1hWvV2uHzGYxbi9qxo5ubv+/mL2KhbfLCMz/rPtW3cVym1YwsSGzO/qqfK+wmrJUhClEzcVZnv8eKoXbyubzw3hFJjlIGYU5ODpUrV44uXhQH1ufzUaVKlSgrKytIdtKkSdS5c2caP348DEIQe7R6bmt1N6a5/4q3ViAauCbZR3fqCTLsalSFij/RgtcjyG45Mkw2wlMHxP6e18i3yfFLXo/Ijspob0E/km8rkIJT4neeszX6NojMRe7t4BmrSAvYW1F0QY9lyzscvJ8fCNh9z64MiBXG2FKZMhrxRMuaZzE7YnSF/3U30b4V+kyuVd1NZtfC0DO54x4Q+zJni+NQkrFiF2qvx5y51I4L53T5wjP6do57XNQjch1k4AyXn7WV189q7PiFES8pWiA7ajjm1Hice1wttuVmx08vEBusri8yL2essi+fOWbtXZBCKGUQrl27lmrXNr+ZTE9Pp+XLzW83Dx06RLfddhudOXMmrEFYWFhIeXl52pKdnQ2DEEQOJ7vYtcjZWnHAfXhmpFdF3UCzK5lxcJ2YEbYq2xDKvTN7rfWsDMcIHfjZur9o3lIOqqN/xlgnkB8uN38p104s0WpD1bWX2faN32h0KHsvZ3O0ih2a+ITYx9khI3H75c94PcKIUpk+19vP5BUXkZZQKXAJZdhw3I7dTO6k9rq7o9HojCYJz76f9M/3rRJe3ujebzRAZ3cR25YNsP9sSWDDdXSL0HLGLMdFF4L38++Sl2jiLlMZNgb4BQ/cAJMfzQNhr1hf5s/+PbuL/We4ZqXRM4RLTfWqGFt9FUY5g7BOHXNB2caNGwcZhA899BAtWrSIiCisQej1eqlUqVJBCwxCEBGcunrzF+EzRQK1KbqovzXmB+LjOyNvxyqgnUgkN+hXVWS7O3vcvE+rx2cTG11cbAhsPxpeB677xosxo+gHDdUxWnjms8fV4jtaseZjITP5aWf65MymaycE7/uwsdjH8YCj7pZv11jQfvVYZ3SNBcZC53axd3xd61lBvKwY/7AosRIqY/CFc2IG0a7cCpeKWPmRcBP1eoKzfsqSs03/DrIuuoFZTonEbIHXIwyGWMCGa2DJg0Cs6jQamfIn8/mcvSY2+iYrmieC/6VSwUl9LKOpxQrUJ7B2oEx94B+GCBljfL1WsqZqbPVVGKUMwpycHPJ4PGFdRsuXL0/VqlWjatWq0dVXX02XX345PfCAdRwPZgiBI/CNes3HsX+4ALGHY6u8Hn+acou39eHgh9XAOn9GI23PUvM+LtFx6oB9u6GyEAbCs2pD6ukZ9o5sFg+bnELbanbIbYxv6gONZIbj+kpS3sLI3H9Zz+T7fPpbZU4MFImb6pB6+neJVZISJ5CZbS4uFsfDzkiPBn5htux9Qw3Xm6Nr6/RR/TvIJlripC1G92nOlmtVfsMJjm4R7Q+oEVpOS9pjYyAH1l08usV5XZOZI7+IcXu/ulg3lqIAyQknYuLZdH7J991/7D+zeqyQMca0H94ktmXcGFt9FUYpg5CIqHnz5qakMnfccUdIecQQAlf46mVxsfhhsB5DFFiDCyQOxjiwSDJ6Gjm5z+9iUsm8PXut3raxnMHFQjn3pSG3CJkDq8PrwNkNZ72if6cF/zUbA1wgPN5w/cfDm6z3c/zP4l7O9MfZgKf9xbzdOGvAD/J9Ksu3y0kqvB7hlqsq2sPw1e7GxHz3nv+B7D3xkOb1iNIT0WA8Z4zlMULRt2rwixB2Y7XL7ltStGtBGHeznK1mgyUQTljEC7vBATmM171zeZj1SQWMMctE4iWd1xM6c7SWIfwxfZuWdfmW2OqrMMoZhNu3b6cmTZpQrVq1qFGjRrRli3hD1rp1a1qzJth9AgYhcAXO2LjQq8d5WNX2AonBQq/+4BBJHUEjxiB04wwLZx/1ekR9MsYqI5oV7JK40ybxjJEJj/pnrj8RRXbZhZWLtRszSMYbjtfcMd96PxdRd6r22s4FfjfapubtxlkEk0uZRB3N4mIyxd1Z1a9UBbsZ7FijxfC8asjEe3/07fFMd6i6Ykbe/4OQNyZC4rjPX2ZEr0coTLGSIbwNeMbULosrvxThRcZtHJhht/wjv5R8hhqoT2App5n/EOvGePpA2LPGWG5q7/KSvbxKApQzCGMNDEIQFVzX7OvXg99IgcSDswJauRTKUnjGehZu5UfWM0hcViFUjTci+YfX4mK9HMqRX4RbIK9zOY1ht0X33WIB37jXjrfe//GDYr9dSY5I0ZIHVTIb7JxldmQzc8ymVTbSQIxJQSL5XDyI1xtvrU7rC3q9x1A1wcLBdeQmPyUnzzFFxjjIsfeJbVvnRK9HKGSzqXKs4Qe3Wu9ndzdeSlL7M1UZ3UI/1lriL4Wug8BZtBCeD8W6MYbZDs1zweCByC8QI4knTzJgEAIgAz/kf/6CPtMhM4MD1OTAz/pDl1WNQRmMGQ2NcXHGh7r+1fQZJJ6ZCldjUNYlmWeAel+rzziyyxm7Z37yUHTfLRZwbNmSvtb7P7hV7M/60Zn+TKUnDunbuU4VzwxriX4k4rWMroGcmMauhEi82bVI6BeqhEQs0EowtNMLy8/4W/TtcYZn2TbY5dqYkOWjMOVenICLyRtjFwPZvdh/TO603s8ljTTPg6LY6JrMfP6CbiDgIT/5+aarOMaLe4t1Y74HOzisw5j1mhMSlcSbIcGBQQiADFwgeWIb/cFVheyNIDqMLl52JSBk0JLEGOv/vWB+qOMC1PtWhJ4dYNioC+XyQqQ/eBtnIfcsNfcdSX29WLO0n+5KaAWXSDi+y7k+OdPq3u/1bQu9YhvXER3WKFjGDi3xQC2i6c/7HzwVTS7FLsRuxzlqbqIPiDger6dkyXd4xlw22RAfT+P1edhtzr5ssIJfwoR6sbB9npCxq8e5PEM/dyOpRQp0OK76m67C2yAe5wBwj8C60BzSs2GK/WeObRcy/W7Qt236XGyb8Ghs9VUYGIQAyKDVSLtXpD/3evQ0xyAxGdtKuKOVJOmKlhF0u75t3P1mo4yzn+34zv+2OkxyDNk6l3PeEHLfvadvKy4SWdK472/fie57xYK1E+zdBy8U6Dqfy3Wuz8/aBbupsovRj0PFuuYCPit8e3u/F7IfputZUWf+wzl9nWTdp/7xftLdfncvEf2OaGqOvY4WzhA6/105+RFN/efdUn3b4Lr+WcO10esRDq57uX+VvczmL0PP3POMauDDKpCHrzOftTPMVoeoqwkSG649+WUnsc6ldEKFHhizz7IHz7qJ8bleKgQMQgBkyPpBj0XgLIPR1K4D6lBcVPLaVFoNpPX6Nn74zKgl/nKSlF9miPVwyTHY0DAmpLFi1N3WNz42KI1GjwqwQTzSwoWRXTF7XuNskpZ5b/mNZkMK8o//KLZxjOaUZ/wuRp+Eb4/disa20mfCZLNfuo0T7prRcNDgjmXMzhwtWt3XfnLyo+4R8jsX6Ns40UwsyzjIJINiTxM7A2X1OP3ctUs8A0LD8WHDGunu4dOfi7dWIFbwiy+OMeYY0u3z7D9zLlc/zziZGH4rMAgBkOLIZnGxGFBDL2qeezDeWoF4E+g+XFykx6199ZLfXe4NsW/teLE+5ZnQbRqTcthxoUC83fR6gmsacmY9r0ek11YFLbvnH4L3Za8JjulwglWjRLvGelNcR3D/SrGuuegODN8eJ0n5rF1A0hoFY73YRTfciwWnMab6l4nnCcfhTcL1+cQeOfmxrUSf277Rt/WpLLbFsiYnz0xs/tJehg0+4+/RCBuM/PIRRI72cqmCOKe9HvFiAiQnmbP8bsEPivURTcT67iX2nym6qJ9nZ38V2wJnGlMQGIQAyHDqgLhY8MO+1xM6mxxIDQKTVeQd0n8nG6aY41dkbzj8uYlt7GX2r9RnIQNn1Hw+3W1OJbfms8cNb2UDZma3zRXbR7dwts+dC/3ui03EenGRbkjnZottXDdPxiXROOtWXKQnEomloREtMgWaY8HpI/5z4ErhGmmcjXUD7tM4c26VXMhpJj8l+lj3qb3MTyOEzBd/t97PLqVej5hxBJFTdFE/x/llzzdvxlsrECv2LDVf4zlunF/42dGrkpA7mSXWjeVyUhQYhADIYCx4G+hqAFIXjhfc+rVY55muQXVE2nuvR880Kptgg40ju8QTRLphYjfbmJsd+g1pPPD59Nn1wEyMaz4xu/04xYk9/lm8iqLERN5h3VjhzKzfD5KfReBjyA+Y7LYbq3IGVvh8or9w5S5mdxG6LRvgjl7M+bP6NZJn0N3MyPzp46LPTdPFumxJiJLyxd9FHz8Nt5fhGatZr1jv56QzXo+IbQXRMbS+/wVTc/F3wX/jrRGIFYG1Pa3COKzgJFBHNov1RT3F+txusdVXYWAQAiCDz6fXHeMZIFULUgP3+PQx88MnZ3Yc28qfKMVfxPxMjnyyGK12ViN7Gc5kujzDue/iBoP97pqBmV25buLsLs72Z5wtyM02GOyG+Cx25ZUxRud2E7KLeoh1dgte9r6zeodi10I51+PPOwi5lSNdUUvD59Nn5HgGtSSZfCOF612u/0ysF57Wr9vn82PX79eviz6W9reXWdzb/0Khq/V+Tsjj9YhsiSA6+LrMs0ChjglIbPilX5/KYr1/NbGesy3057QkUP6ZxHh5VCgEDEIAZOELjdcjCoADwAlJOIslu4R93kGs801n73KiWZ39RlyYGRstXjVEvUKOg9uztOTfwU14RnXLTPN2riW1qKfzffIs1d7lehp6Y60pTg4ztlX4tr58Uchysp4fPzAfbzf4cajo88P00HKftfUbRlHW2SwJnH2XF2MW3ljDdTw5bvHMMV2P4uLY9fvdf8K7HrOMMTOwEXYF93rs4wxBeDgRES+qloYBJcdYQqrooqjLa3QFtWNkQLjHN2+K9SV9Yq6yqsAgBEAWdkPxekRqfwBm/NU/C/ORWOe3jPxQyAbjqtF63bpVo0K3yfGqdnXItAfccs6WaHCD6c9Zz1rx9nBjEw2T2vsNhE9EsWqvx5ywR5uRlUjiMflp/wuACWKdYxSH3+683nbwTFS4sgSB7sxuwjPBvJw+4l7fPHvOv6VT+0OfT06hzXKHiEGa+y8hs7iX9f5DG/Qx+6JjbPRMBX4YbP79lSSpEVCbwAQx7JUT7prz8YPml5OzIkgulqTAIARAFo4X8npE4DIAgTcRNvp+GiHWuUjynH/qMzYbJodu0xiveuFc8P7t38rNEKkI16ULjOnhUhChMjSWtM/v3jP8b3ALytkqtvVPC99W4EME17PqXj66mOIjm4lO7I3sMxwjZ/f7YDjb3p6lketVUjipkRuumoGwGy/PCh3b4Tegq8a235UfiX5m/NVeRvMSsHH15oLZ4QxLEBr2BOBFpWzLwHk4i3DONv2YF5wK/RmuUcuu5TP+Zr53pyAwCAGQZcKj+sXmozvjrQ1QgcA3/pzynoucb5wm1j9prc/YZM4O3WZxsR6vevpo8H6OQ1K1IHoo2N0xMNPqsNvE9qwfnO+T60tN+ZNe5Nw4E3n6qN+ouzJ8+YjAlOY+n16XlJMTyJJ/QsQ4DagZmTHJbsheT3ByHiNcD/NgDIux28GGs9cjEgm5GW/NyXT4JQ0nd4q1V4dW2Lq9vUy4xDNcMsHrIfr27djomQoYS+94Pe4mfQLuM6i2/+XXMv2Yh7umBsZYs6v56nExV1dVYBACIMu0Z/WLjUy8EUh+FvzX7CLKN6Zs/0M4P4y+X12uPhLDMVjHdgTvm/iE/8Y11rnv4Rabpgvdxz9s3t63ith+fKfzfXISluF36EWLjQ+IF8/r53W4LJR8fA+u07ex8bPp88j0OvCz3u/2b+U+Y0yS4/WIJDl2sKEaizENB7vpej3WdSdjiRYL1Fes8zgPuSW2/XJCKS4zYwW/kLB76DyTo48bJy4CkVNw0mwQ7l4cb41ALOF7K99fvOXCv4QKnK2X9eBJYmAQAiALX0C8HpHFDAAu/j3nDfGwrtU785cEOJ+vxzSwW0u2xIzNkFuE7IHV5u3GGSmVagzKsvd7obsxXu/COXk3n2g4sVe03fMaYZxYjV2f6/3G067QbfExNBZJn/OG2Lawe2R6bf5C/95fvij3GeMMktdjLr5uxJgV2c34PYZja+PhXv/t2+bjwbMGsY7z3LXI7z1yl72M5qZmk+jH6C6eaBmEVaNvVX0s96+KtzYglnDIAXug9KoU/jMcPrDQK9bHPyzWN38RS02VBgYhALJwwhB2PwNAc4F8UY8n63GV2fXQ6OLn9chlXBzZTMgG1m/TZhDKJWYdzOO7dOOY0ZJ+VIiNa2HRRb3+IS9nj5tlhtiUwzC1Y1PPjl1SI62h+MMQvb2+VeSOp9ElyuuxT5ZhrAV4/mxkejmBMcvj6Obu9h04a79jvlgfdU9s++WZyKH17WXCPXQaf2MpHMvkCHwNjcadGyQWnOyLn9H6Vwv/mcW9hCyXgBl7X+iXbCkADEIAZFk+QL/BfPH3eGsDVICNgWnP6g+Eg+uZZfhmxUveofDt8oPjLzPM2w+sFtuNdfQSicIz+jic81+Ds9f6v1Od2PU7rJHeb6+KwYbnqHvCu26e/VVvg4vaE+lZSofUs/+sFVxqIxK3Ua6ZyMvSftZyeYfF/u5XxqdeKpdX8HpE7LWb8IMeF5jWXDkfjG2/nJzo/er2MtpD51x7GfYy4FI2IDqMIR7GGX2QfHA5IE4MM/Cm8J/hF3JfvSTWP+IyFItiq6vCwCAEQBZ++Pd6nC+gDRKT9Z+J38Nn7Qw17h4wyyz0mh/iC0+Hb9cuwP2XGf6H2xBxSqrD8YIcH7l9XuxnkrhYudcj6hIGMrENhY0f+XV38OwmkbkOlsyxZfhFAdc3lXEbXeg1/5bmvGEtd3SL/JvyWLDM8PJs2rMu9+0v//D162J941Sx/unjse1XKxdTwV5G5qGT3ZI3TXdex1TC+FLCKjkXSB7mdhPHmV+kDm0Q/jOrxwpZrvfJLw2zfoytrgoDgxAAWbSAZY/wPweA48A+eUivcReYdp4fSHmRKY49k8tZDDJvX55hfquZiHyYLr7DnqVife0EsT7pydj1yXFlXg/RhEeC93P2xxUf2rdxcJ39TGbGjWKfTHwow8bBop7ybqOcGY+zstq5ru/4TuwPFc8WS1aO1Md7Vmd3++YadDNfEes8qzr56dj2W3BK/852x5GP274V9u1wnCsyY5aM1eMML2rOxFsbEEs48zYbdSOahP8MZwDnF0XxzMqsCDAIAZCFY1G8HmSAAwJtdquFbnR8955Zxlhsus/1cu1++46QX/A/83ZOqc8ZFBMRLt+ycapY59mkWBoOxtl9q3Id/IY51Hm9e7H/YaNp8D5+Mx1JvTPOJHt0C9HAm+XcRkc317+D10M05l5ruTUf+42gCOManWL9JH28OZbPLX4aLvrlwu5snH7eIbb9BhbItmJQHf9D5zrr/UT6g2kKu645Aif5kX0JBxIXfhnLiYRGNw//ma1zhOzY+8T6gBr69ThFgUEIgCz7V+k3GGSAA0RilsvrESUNpj8n/ue6Rowx06hMbAMR0dL+Zrc3ho2pRE6NzYXDefaTaznG8iULG3Nej3ibHAhni/36Nfs22CXYyl2Xk6hwPcpwFJ7W9TmXp2e8C+c2yu6lPKsaGK/K8KzjN2/K6eM0W7/Wv9+y993tm43/6c+LdZ4x/Orl2Pfd+1rR18ks6/08+5ez1b4NjjMMJQPCwxl5+90Qb01ArOEaoLzIhFTsWarfu4n0TNO/7o6lpkqjnEG4c+dOatq0KdWqVYvS09MpMzMzSOarr76iW265hRo0aEB16tShd999l3ySgfMwCEHU5GzTLzgrP4q3NkAFjDXOxtzrd/X6OlhuaH2x78PGcu1qsxovWLeTyHEOC7uL78BJP6Y/b21IO4mxXINVso5Vo8PHu7Hr4ZRngvfxG2rZWSi+lvSrKtb3rwzvNmp0SeQEJj2vsU4aw0kWAl2O3WLPUsO1MobH1QrtOPndaZf0Fet28ZZOklFL9HXkF+v9VmVLAvl1t/BGASVn3UThPg2Sm8zZZoNw4hPhP8PJzAbXFeuciTr3YGx1VRjlDMKWLVvS+PHjiYhoxowZ1KRJsC/w6dOnqdjvAnD+/HlKT0+n2bNnS7UPgxBEDWfus3uoBKnHkV/E72FATd3tzyoGgROIjGkp1+6GKf4bWxt9W3GRXpQ8N9sZ/eOBZnz9Rax/0lqsx7L+U3GRSPbh9YhC9YFwsp7xD9u3EZiVzsj2byOL2du50C9/p1+/YoPb6DzrzxzeqP/WLhTo1yKr2o3swrrpczl9nObgWl2/DVPc7XvDZNHvZ+3EOpeh+Pad2Pf9wa2ir30/We8PrFMKACg5geV4rF7aBXJsuz6DXFwU3t07BVDKIMzJyaFy5crRxYsipbfP56NKlSpRVlaW7Wfy8vKofv36NGeOXAA2DEIQNcaHsHg9aAG14MyTvSoZCoFbZLRb8D+xTzYF/7a5wTFiXK+vx9XmOoeJBrsTcuwGJwLY+31s+53YRszQnDkWvI/jjaziAxme2Zz3VvA+/h30vlYuXskqxi+c2yiXTxjbSqxzvAxnazXCM8mhkpfEkuM79WtlqBILsYCNez7X5r0l1rlQfSzh8iVWs1LGGMOCk7HXBYBUwRinb+VZY0Vutn4/jXfdVkVQyiBcu3Yt1a5trq+Vnp5Oy5cvD5JdsWIF3XLLLXTZZZfRP//5T1uX0cLCQsrLy9OW7OxsGIQgOnw+fZYhhYuXAgPGWWPNWLMwCDghkazbGte2G9ZI37b3e7Htg4bO6B4vsteI78HZOkMZNk5SXGRfFoIfKELFeM75p5BZ0id4X9GFyGZvF/Xwx/h11beFcxvlGUpOlvJhY2tDurhYv06d3Bdel1hw+oh+TmT94G7fmbPMcUSzX3UvltGufiiRMAJ5TC6ej70uAKQKJ/aa78NWicMCMbrgG+/jifyytYQoZxDWqWNO6d24cWNLg5A5duwYNWvWzFbG6/VSqVKlghYYhCAqOBPVcVvZigAAIABJREFU7iXx1gSogPGm4vXYFyf3+YTL34Vzcu0e2ay7BzKcuTHW9dRiTe5Bv/F8VYDrYxxnTXj21S4mj0gvevzTCOv9PNO5Z2n4/r7sJGR/GKJvC+c2+vXrYh8nxbEzPs7k+Me0nDBU48H5fP242sXTxQrO/Muz6zzWP34Q+76nPGMfUsCzyH2rxF4PAFIJYy1Y2Revxhl7Dv3ocXXsdVUYpQzCnJwc8ng8EbmMEhH169ePunSxLhSOGULgKOPuFxeOFM5EBQxcPG++ETlVMF4rcn2Nvm1JH7EtVCbMRKDoAmlZV7m2X88K9oaYGxSeCe8y9FlbsX/9JOv9HCf685jw/XHcZKAxx+6Ns14J/synj5v7n/FXv4E63CzH8XuyGW1jgc8nfruyM6ZOsssfnzmymVif9qz8cSkpX3QUfa0YFryPE1ANrR97PQBIJYwxgJHEC/eq5H/B789CLVsWKklRyiAkImrevLkpqcwdd9wRJLN9+3Ytqczp06fprrvuojFj5C72iCEEJeL0EeHyBgCRePDlRBFejyhw7gTn8vQ2eVYx3pkjnYSzMa75xO8+Wjv8Z2KJ0R381AFrGS4HYFcw/Lv3/DGG/w7f35B6Qnb/KvN2jmUceHOwgTy0gd8F059hluteLvivWY4z7tnVKHSLn8eI8hdus3e5+P6cTn5Se7G+7tPY9625FVvUCdVmLiUTSwEA5OlbRb9nypYwYo+vTZ/7PXJqxFZHxVHOINy+fTs1adKEatWqRY0aNaItW0SRyNatW9OaNeJBvFevXlS7dm2qX78+1a1bl7xeL8pOAADiA9cvsno4j5bi4uAkNR8/KNZjmY3TLUbdrbv2eD0iGUe8ybhR6HJog/V+jtmzi4njcgeftQ3djylbbECK8wsFRL0qin3GOnRFF/XP5B0S27T6egFZT38aIbZzHb5Ug+vFfnCrWJ/wiP7QF2s4eZTVDMX6z8S+Se1jrwcAqcbguvp9WDZemJNvrfxI/OUSFCmKcgZhrIFBCABwlAE19RvRqtHOtdvvBjIlW+H4smSYoWb3ytEt/A/JT8ZbI6IRTXT3ISvC1ZjjREDhXALzDgm57uWtExhMbBPsCnoyS3ch5qRFXF4hsObW/HfF9vnvhtYjWWE35MH+eN6xrfwzuxb1QZ1m+QDR12yLEJYfh4p9dllkAQDR89Gd+n1YNl74o7v8M4o9xV9jErcUBAYhAACUhCG36DciO3fCkrR7YLXIOslxd1ZlExINTpDCcWZWMXNu88lD1nF9DOt6ar/1/tNH/YbelfbF5Yn0WLLBNgmIuMi9sQblnqVi24eN9W3sXsq1DJnpz+tvvVMRTsiUUUusj/Q/9O20qD/pNKtGib4+7xC8z816iACkGhyXHUm8MHvdfP2a/1oqWUc2SYFBCAAAJWH4HfqN6NB659od2Ux/kD2+S/zf+9r4Jl9ximXvm5MAuFEjLhyhko9cOKfrei7X+vM+nx7HkrPNvp/NX4ROQJSzVezvVVG4kBLp7qhGd0MtE21A3MuYe8X2zNn2OiQzx3aI79+/mljn7K9ulL/gTMBWbsOzXhH7lmfEXg8AUg3O8BtJvPBn7YT81D+rEXcdZ2AQAgBASWC3R6dn74xlBThz4vDgJFsJybqJZoNQhdksfku8tH/wPuPsX6jC86Obh3dPDKwnGIjPp7sH71okti30ivW5/9Llzhzzj185EWPIDLxJbD+41l6HZIZrkvWpLNYH13PP1ZoT+ox7IHgfP7Cu+ST2egCQanz1kn4/kY0XZm+KcQ+Iv+Mfjq2OigODEAAASgK7GvasENpYiBR+a7l6nFi8HqLJTznXfjzZudBsENq5abrJwu5Cl3lvBe87tl3s63dD6Da47MAPg+1lvukaPhMezyZxHODnHYLjCouL9Ay3eYfFtovnDa7FOaF1TVa4zmXPCmKdMwke2Rz7vjl9/Yimwfu4ZFGqztwCEEu4ZE8k8cJ8nR12m/3MfgoBgxAAAEoCu504XV9spv9m9f0gPf5objdn+4gXR7eYDcK9y+OtkagdZzdzx3F/Q24J3cbS/kJuZoiYSE6os+Zjexl2Kx3RRKyPbi7Wt31jlgvMjHpyX2xeTiQS2sypR8y2chZgN2rHZq/x/04s4kP5oZPLhgAAnIPr9Ho9RDsXyH1m3r/1F33sOprCwCAEAICSwLFnnzzkbLvfviPaXfA/3bUlsAh5opJ/wmwQHtseb430+C9jMhdm5wKxb9TdodtgQ27c/fYynNku1ENL/gl9pi/vkP7AcnSLWY7jTHd8J9b3rfC/nGgQWs9kpuCU/rsqumBf4iMW8Ewyxy8a6V8tfHwpACA6fhpueMH4vdxnFvcy34dm/C22OioODEIAACgJXDDeLiYsWni26evXDbFpDmYxjSc+n5610+sRBlC84cLho5sH7/tlhtg34ZHQbRzeKOTer24vw8adsc6gFWNa6i8BeJzOnzXLaEXXJ4r1TdMRC3M+35wAyM3fGLur9rjanPyp6CIlVZZgAFSD63xGEi/M8dy8qJDtOo7AIAQAgJIgExMWDStHinY/f4Gof5o/DsqmBl4iwmU1Ah+e40Uot9Cfx4h90/4Suo3CM6ENkMLTBmMlzD1ocW9zfMuAmsEygZkrvx8k1lO51l3RRX2Mc7PtjelYcC5P7+/COX372eOGWcuL9p8HAETH1q/1c0z2PsnXdV6+eTO2OioODEIAACgJOVtFzNjJfc62u2GK7n4oa0QkElwDauDN8dZEwKU9+lYJ3rc8Q/4NMmcIPbA6eF/ONn/MStXw7ez7yfywMrZVsMyiHubY0m/e9L+c6Bm+/WTF59Nn445m6uPnRkxlcbHen3EmUDYpEQAgOvZ+r597x3fJfWbjVPM1lpN4pSgwCAEAQEW2zRU3qd7X2cclJTKcOTNcXJ5bGOMaiy6Y9333H/kHhgmPCNkNk4P3cXbVwGLyVhRd0Osa2rkkcyH06c+J9clPhU9YkwqwO/L+lXqSHbfoU1n0eWKPvo1jOz+41T09AEglDm8yewbIsHWO2SBM5RdpBIMQAADUJOtH881q1D3x1shZOGmOsdh6PCkuItuSDbNfFduXDQjfzpw37F2I13ws9smWD+HSI16PcCENZMtXYt/HD4p1mYQ1qQBnFt3xnX/WV2JG1ik48+vhjfo2dmezmuUFAJQczrDs9QgXbRn2LDXfY2Wu70kMDEIAAFCRI5vNNyueBUoW1nwivte8f8dbEx27TJDTnxPbV40O38ZPI/zxhs8G72MXz2+6yunD9Se9HpEFNRBt5qmhWNeykWbKtZ+scMwtJwPKqOVe38MaiT6N5SXWjve/CHjaPT0ASCWMCaRk44Wz15rvsSuGxVZHxYFBCAAAKnLqgPlm9d1/4q2Rs1wsJMqcRVRwMt6a6Hxwa/DDPBHRp4+J7Zumh2+DZ6WsipN/2Uns+2GInD4ns/Tjb1W/7tfdYl+fyuIhSIs1zZVrP1nhWTqekbWqCxgrRrcQfW7/Vt/2/UCxLVR9SgBAyVjSh2hpP3l5junm5ecxsdMtAYBBCAAAKmLMWOj1EK0eG2+Nkp+x94mx3vq1efvo5n4XxPnh2zixR8j2qhicyOST1vrMlSwTnyAaVFtkKA3EmNX04Dr7pDipxuB6uuHt9RB9mO5e3xxDajzG899Nzpc6ACQyxizEXo9evidFgUEIAAAqUlxM1P1K/Wa1c2G8NUp+Jj9t7Ro6tIGepCQcRRdFKQ2vh+jUfvO+IX5DZf8qeZ2Ki0OX5eCkQ6vHir/D75BvO1nhmV520XUzcRHHfRoT+3z1UmQzwwCA2FNwymwQbvo83hrFFRiEAACgKhwT5vUQHd8Zb22SnyV9rTN6ckxauGLyzIfpQn7XIn1bcRFRj6v8WfAOOqczG6sz/yH+ftbOubYTlRFN9FhNr4do3APu9f3li6LPH4fq2ya1xwwEAKphrFnq9RBlzo63RnEFBiEAAKgKF2/3esyFrkFs2L1EjPXguvo2n4+oe3mxPe+wXDtT/hQ805h3SGzrXl4Yh04x7gH/zODt4u/XrznXdqIy6m4xFhyz+elj7vXNRqgxK+yYlmLbtrnu6QEACE+vigYvnNTOzgyDEAAAVGVkM3+WxBvjrUlqUHhGN/5OHdC3adnr8uXaWfBfIT/3X/q2Az/7jU2HE5xMe9avXzmkTmc4FpRdgGXLfDjBQm9w9tyh9SN3FQYAxJ73/6Bf3/cuj7c2cQUGIQAAqMr4h/0ub/fHW5PUYXRzc1IQTjzQ4+rQsXxG1n2qzzRy3OHmL8S2j//orL48I8XLhinOtp+IcPIe/jv9eff65oyiswwZRftW8bt973JPDwBAePhljddDdGB1vLWJKzAIAQBAVThBRWBMG4gd374txnzOP8X60S1i/f0/yLdxJodoQE39QWNWZ33W0OljuXyA2SBM8bfcRKSXCfnoLvH3q5fc6/vnMX4j1F839OJ5/djkn3BPDwBAePga4fUQHd4Ub23iinIG4c6dO6lp06ZUq1YtSk9Pp8zM4AK706ZNo4YNG1LdunWpXr16NGyYfDFJGIQAgIRh9qviRrWkT7w1SR0yZ5vrCHLx92G3RdbO2V+FIWg01jjzpZPwbCQvJ/Y4234iwklcOKvr16+71/eGKaLPiU+I9dNH/LGjVwaXIQEAxJePH0TiNj/KGYQtW7ak8ePHExHRjBkzqEmTJkEyP/74Ix05coSIiHJzc6lGjRr0448WRXstgEEIAEgYjm4RRkVudrw1SR3O5OgxeQUnibbPE+tjWkbX3v6Vwrjkhw5jOQIn2DHfbBBeLHS2/USEZ9Y5S++3b7vX99Y5os+xrcR6NDPMAAB3+Kytfu0MLBOUYihlEObk5FC5cuXo4sWLRETk8/moUqVKlJWVFfJzDz/8MH322WdSfcAgBAAAEJJht4kHhB3zg2d8oqHoAtFPw4mm/UUYnE5yaL3+QDOghrNtJyqfd9Azuno9ItGLW+xZaq4Hufd7sf5huns6AADkmP68fv10+tqcYChlEK5du5Zq165t2paenk7Ll9vHRGRmZtJVV11Fhw4dstxfWFhIeXl52pKdnQ2DEAAAgD2zXtENiZUjxf+fvxBvrazhchZej0iIA/RyE7ws7e9e3wfXmkuXbJkZm2RCAICSw9d6r4foXGrbBcoZhHXq1DFta9y4sa1BmJ2dTTVr1qTPP//ctk2v10ulSpUKWmAQAgAAsGT9Z3pB86X93Y9Di4SiC3rJial/jrc2amB8yAssEh9rju3wu6tWFeurx+HYAKAq8/5tcLc/H29t4opSBmFOTg55PB4pl9FDhw7RTTfdRBMmTAjZJmYIAQAARMSvu8UDQs8KItuo10O04H/x1soerqVlrH2Xysx5w2wQrhrtXt95h3V3VZ9P1IX0ekSCKACAWizqqSd9ki0rlKQoZRASETVv3tyUVOaOO+4Ikjl8+DDdfPPN9Mknn0TcPmIIAQAAhMTn08tGfNBQ/P1+ULy1soeT1qyQz7id1Mx7y2wQrvvUvb4Lz+j9ns/XZyAWdndPBwCAHD8MFudn72vjrUncUc4g3L59OzVp0oRq1apFjRo1oi1bthARUevWrWnNmjVERNSxY0e6/PLLqUGDBtoiaxzCIAQAABCW6c+ZjQqns4M6CSdG2LUw3pqowXfvmY/dpunu9e3z6S68p4+KupNeD9GKD93TAQAgB9cN7Z8Wb03ijnIGYayBQQgAACAsKz8yGxWbv4i3Rvac/VUYgynu8qSxqIf52GXOdrf/vlVEv7/uJprYRvy/YYq7OgAAwrNxqjg/B94cb03iDgxCAAAAIBBjOQfMviUWS/uZj93OBe72P/Bm0e+h9USj7vGXMPnOXR0AAOHhuqFDG8Rbk7gDgxAAAAAIpOgiUZ/KulGRvTbeGgFZvh9oNgj3fu9u/x+m6/0OroffDwCqcuBncX6OaRlvTeIODEIAAADAik8f142K47virQ2QZcUws0F4YLW7/Y9pKfrdNpeo93Xi/xN73dUBABAen0/EER5aH29N4g4MQgAAAMCKZe/rRsWZY/HWBsiyarTZIDzyi7v9f/qY6HftBBS9BgAkBDAIAQAAACv2LkfR4kRkzSdmg9Dt2d1pfxH9cnKbHlch4Q8AQGlgEAIAAABWXCgQdQjHPRBvTUAkrJ9kNghzs93t/6uXRb8z/ir+ZtRyt38AAIgQGIQAAACAHcVFYgGJw6bPzQbh2V/d7X9uN3+iinvF3xFN3O0fAAAiBAYhAAAAAJKHLTPNBmHhGXf7Z1fR9/8g/o5/2N3+AQAgQmAQAgAAACB52DbXbBC6PcP7w2Bz/9Ofc7d/AACIEBiEAAAAAEgedi7UjbEeV7vf/89jzAbhnDfc1wEAACIABiEAAAAAkoc9y3RjrG8V9/vfOM1sEC7u5b4OAAAQATAIAQAAAJA87PtJN8YG1HS//0CX1ZUfua8DAABEAAxCAAAAACQP2Wt1Y2xwPff7N9av9HqINk13XwcAAIgAGIQAAAAASB4Ob9KNsQ8bu9//ofVmg3DXQvd1AACACIBBCAAAAIDkIWebboyNbOZ+/8d3mQ3CQ+vd1wEAACIABiEAAAAAkodfd+vG2Lj73e//9FGzQXhqv/s6AABABMAgBAAAAEDycOqAboxNeNT9/s+fNRuE58+6rwMAAEQADEIAAAAAJA/GGbpJT7rfv89H1P1K0X+vimIdAAAUBgYhAAAAAJKH/BO6QTj9ufjo0K+q6H9Q7fj0DwAAEQCDEAAAAADJQ+EZ3SD88sX46DCojj+pzV3x6R8AACJAOYNw586d1LRpU6pVqxalp6dTZmZmkMzq1aupadOmVLZsWWrXrl1E7cMgBAAAAJKYogu6Qfj1a/HRYfgdov9PH4tP/wAAEAHKGYQtW7ak8ePHExHRjBkzqEmTJkEy2dnZ9PPPP9OoUaNgEAIAAABAx+fTDcJ5/46PDmPvE/3P+Gt8+gcAgAhQyiDMycmhcuXK0cWLF4mIyOfzUaVKlSgrK8tSfvz48TAIAQAAAGCmZwVhkC34X3z6n/iE6H/uv+LTPwAARIBSBuHatWupdm1zAHZ6ejotX77cUl7GICwsLKS8vDxtyc7OhkEIAAAAJDN9KguDbGm/+PQ/7dn49g8AABGgnEFYp04d07bGjRuXyCD0er1UqlSpoAUGIQAAAJCk9K8mDLIfhsSn/xXDiLzliHYtjE//AAAQAUoZhDk5OeTxeBx1GcUMIQAAAJBiZNQSBuGqUfHTofB0/PoGAIAIUMogJCJq3ry5KanMHXfcYSuLGEIAAAAABDG4rjAI106ItyYAAKA8yhmE27dvpyZNmlCtWrWoUaNGtGXLFiIiat26Na1Zs4aIiHbv3k3XX389lS9fnsqWLUvXX389jRgxQqp9GIQAAABAkvNBQ2EQbpwWb00AAEB5lDMIYw0MQgAAACDJGX67MAgzZ8VbEwAAUB4YhAAAAABILkY3FwYhkroAAEBYYBACAAAAILnY+jXRzH8QXTgXb00AAEB5YBACAAAAAAAAQIoCgxAAAAAAAAAAUhQYhAAAAAAAAACQosAgBAAAAAAAAIAUBQYhAAAAAAAAAKQoMAgBAAAAAAAAIEWBQQgAAAAAAAAAKQoMQgAAAAAAAABIUVLOIMzNzaVSpUpRdnY25eXlYcGCBQsWLFiwYMGCBUvKLtnZ2VSqVCnKzc0tsa2VEAYhf2EsWLBgwYIFCxYsWLBgwSKW7OzsEttaCWEQFhcXU3Z2NuXm5sbdGreyzMPNXMrIqSajok6x1vvGG29MSL0TdbxVl1FRp1TUO57nZTKPdzJ/NxV1Sja9VT8vU/GYqK5TsusdjyU3N5eys7OpuLi4xLZWQhiEqpKXJ+e7KyOnmoyKOsVa79q1ayek3vGUUVGnVP9uKupUEr3jeV4m83gn83dTUadk01v18zIVj4nqOiW73okODMISkOw/btV0irXew4cPT0i94ymjok6p/t1U1KkkesfzvEzm8U7m76aiTsmmt+rnZSoeE9V1Sna9Ex0YhCUg2X/cqukEvdWTUVGnVP9uKuoEvRNTRkWdoLd6MirqlOrfTUWdkl3vRAcGYQkoLCwkr9dLhYWFJZZTTUZFnaC3ejIq6pTq301FnaB3YsqoqBP0Vk9GRZ1S/bupqFOy653owCAEAAAAAAAAgBQFBiEAAAAAAAAApCgwCAEAAAAAAAAgRYFBCAAAAAAAAAApCgxCAAAAAAAAAEhRYBACAABQjlOnTtHZs2fjrUbEJKLeJ0+epA0bNtCWLVvo3Llz8VYHxIjc3NywMj6fT6otWTkAEoVEvHY7CQzCKHj33Xe1/y9cuEAffvghjRgxgi5evEjTp0+nxx57jP7zn//Q+fPniYiCUtXOmDGDXnvtNRo/fry2rV27djRz5kwqKiqy7ffixYuUkZFBDRo0oHLlylGFChXonnvuoblz5ya13s8//7z2f25uLnXt2pW6detGZ86coQEDBlD9+vXp2WefpZMnTyr93aZOnUp9+vShDRs2mLb37dvXtv169eqZ1mfOnEm//vorEREdP36cnnrqKapevTo98cQTdOjQISIi2rNnDz399NPUtWtXys/PpxdeeIHS0tLokUceof379xMRUX5+Pr3zzjuUlpZGl156KV166aVUvXp1euedd+jMmTNafxcuXKB+/fpRp06daM6cOSZdunTpYqs3w785VY9JsunN54rMeeJUO3v37tU+5/P5KCMjgx577DHyer104cIFbV+jRo1oyJAhdPz4cdt+8/LyqHPnzuTxeKhMmTJUpkwZuuGGG2jEiBGOf3+V9G7ZsiUREe3fv5/atm1LTz75JB05coReeeUV+v3vf0/NmjWjffv2ERHRjz/+qH0uPz+fXnnlFapfvz516NCBTp06RUREV199Nb322mu0adOmkP1mZ2fTww8/rOlcvnx5Klu2LHXr1s00BnYYr81uXd+I5K5xxcXFNGbMGGrZsiXVqFGDatSoQS1btqTRo0ebzkPV9Ja5Nkd7Xa5evbppffjw4ZSTk0NE4ny4/fbb6ZJLLqGGDRvS1q1bNbk1a9bQ7bffTu3ataPDhw9TixYtqEyZMlSvXj3auHGjkuMtM9bhSNT7QKLq7fT1241rdzIBgzAKqlatqv3/8ssvU9u2bal169b0zDPPUJs2bWjatGn01FNP0WuvvUZERLfeeqsm/9FHH1H9+vWpX79+dNddd1HPnj2JiKhChQp0yy23UKVKlehf//oXbdu2Lajfjh070t///nf68ssv6cknn6QePXrQtGnTqGHDhjRmzJiU0Pupp56iN954gzp27EgtW7akl19+mVatWkVvvvkmdejQQdnv9t5771GzZs2oS5cudO2119LQoUO1faxLenp60HLZZZdp/xMR3XzzzVRcXExERB06dKD33nuPtm7dSoMGDaKHH36YiIjuvfde6t27N7311lvUuHFjeuuttygzM5P69etHf/zjH4mIqH379tSlSxfaunUrFRQUUEFBAWVmZlKXLl2obdu2mm4vvfQSPf300zRw4EC6+eab6Y033gjSW+bYqXhMkllvmfPEqXaM379nz550//3309SpU+nJJ5/UxoiIqHLlyvTII4/Q5ZdfTu3bt6f58+cHzTK0bduWevToQevWraM33niDMjIyaNWqVfTAAw9Q7969E1rv/Px826VKlSpERNS6dWsaOnQo9ezZk2655Rbq3bs3HT16lIYMGUJt2rQJ0rtr16703HPP0cqVK+mNN97QHqjS0tKoS5cudNVVV1Hjxo1p5MiRlkWVW7VqRZ9++imdOHGCBg8eTL169aKjR49Shw4d6PXXX5cebzevb0Ry17iXXnqJHnvsMZo3bx5t3bqVMjMzad68efTYY4/Riy++qKzeMtdmmevyNddcE7T85je/0f4nIqpdu7b2ubZt29KYMWOooKCAvvzyS2rRooW2r2nTpjRp0iQaPnw41axZk4YPH075+fk0depUuvvuu5Ucb5mxDkei3wcSVW+nrt9u3HOSCRiENlhdlNLT06lx48Z02WWXaXL85urcuXP0+9//nvLz84mI6Pz589q+hg0bavK33347HTx4kIiITp8+HSTz888/00svvURXXnkl3XnnnfTxxx9rU9jGi/f58+e1C/Hx48e1fYmqt9XN65prrqEKFSrQJZdcon3+lltuISKioqIiuuqqq+jixYtEJN5O8j7VvhvrzW/kjhw5Qunp6dSnTx9TP7Vr16aOHTvS8uXLadmyZbR06VK69tpradmyZbRs2bKg/ozfwbhev359IhJvza677jqTTIMGDYiIqFatWmSHcV/9+vW1C+jZs2fpkUceoZdeesnUn8xvTsVjkqh6y5wrMueJU+0Yv3+jRo20WarCwkLTm32WO3ToEPXr149uvPFGqlq1Kv33v/+lrKwsIiKqW7cuGWnatCkRCWPqxhtv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\" width=\"900\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ax1, ax2=pdf_all[['Krukov_prob', 'Sholokhov_prob']].plot.line(subplots=True, sharex=True,figsize=(9, 6), legend=False)\n",
"\n",
"ax1.tick_params(axis='both', which='major', labelsize=8)\n",
"ax2.tick_params(axis='both', which='major', labelsize=8)\n",
"\n",
"ax2.set_xticks(ticks=list(range(len(pdf_all.index)))[::2])\n",
"ax2.set_xticklabels(pdf_all.index.tolist()[::2], rotation=90, fontsize=8)\n",
"\n",
"ax1.axhline(y=0.5, color='red', linewidth=0.5)\n",
"ax2.axhline(y=0.5, color='red', linewidth=0.5)\n",
"\n",
"ax1.set_title('Вероятности \"да\" по главам ТД для Крюкова', fontsize=12, color='navy')\n",
"ax2.set_title('Вероятности \"да\" по главам ТД для Шолохова', fontsize=12, color='maroon')\n",
"\n",
"\n",
"#ax2.set_xlabel('Date', fontsize=8)\n",
"plt.tight_layout();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## По \"наиболее вероятным\""
]
},
{
"cell_type": "code",
"execution_count": 121,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Krukov_prob</th>\n",
" <th>Sholokhov_prob</th>\n",
" <th>Krukov</th>\n",
" <th>Sholokhov</th>\n",
" <th>text</th>\n",
" </tr>\n",
" <tr>\n",
" <th>target</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>b1_h2</th>\n",
" <td>0.787819</td>\n",
" <td>0.295641</td>\n",
" <td>Krukov</td>\n",
" <td>NOT Sholokhov</td>\n",
" <td>Сергей Платонович Мохов издалека ведет свою ро...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b1_h14</th>\n",
" <td>0.263501</td>\n",
" <td>0.764839</td>\n",
" <td>NOT Krukov</td>\n",
" <td>Sholokhov</td>\n",
" <td>Аксинья отстряпалась рано, загребла жар, закут...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b1_h11</th>\n",
" <td>0.820300</td>\n",
" <td>0.302806</td>\n",
" <td>Krukov</td>\n",
" <td>NOT Sholokhov</td>\n",
" <td>Небольшая в сафьяновом, цвета под дуб, перепле...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b1_h14</th>\n",
" <td>0.795719</td>\n",
" <td>0.211221</td>\n",
" <td>Krukov</td>\n",
" <td>NOT Sholokhov</td>\n",
" <td>В первых числах августа сотник Евгений Листниц...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b2_h2</th>\n",
" <td>0.778377</td>\n",
" <td>0.243412</td>\n",
" <td>Krukov</td>\n",
" <td>NOT Sholokhov</td>\n",
" <td>На другой день утром смущенный вахмистр вошел ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b2_h10</th>\n",
" <td>0.786816</td>\n",
" <td>0.232395</td>\n",
" <td>Krukov</td>\n",
" <td>NOT Sholokhov</td>\n",
" <td>По возвращении из отпуска есаул Евгений Листни...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b2_h11</th>\n",
" <td>0.812521</td>\n",
" <td>0.164833</td>\n",
" <td>Krukov</td>\n",
" <td>NOT Sholokhov</td>\n",
" <td>Назначение генерала Корнилова главнокомандующи...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b2_h14</th>\n",
" <td>0.838280</td>\n",
" <td>0.217282</td>\n",
" <td>Krukov</td>\n",
" <td>NOT Sholokhov</td>\n",
" <td>За день до приезда Корнилова в Москву есаул Ли...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b2_h15</th>\n",
" <td>0.812646</td>\n",
" <td>0.207506</td>\n",
" <td>Krukov</td>\n",
" <td>NOT Sholokhov</td>\n",
" <td>В версте от развалин местечка, стертого орудий...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b2_h20</th>\n",
" <td>0.851735</td>\n",
" <td>0.188060</td>\n",
" <td>Krukov</td>\n",
" <td>NOT Sholokhov</td>\n",
" <td>Теплилась осень. Перепадали дожди. Над Быховом...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b3_h3</th>\n",
" <td>0.367853</td>\n",
" <td>0.752579</td>\n",
" <td>NOT Krukov</td>\n",
" <td>Sholokhov</td>\n",
" <td>Неделю отдыхал Мишка, целые дни проводя в седл...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b3_h4</th>\n",
" <td>0.890859</td>\n",
" <td>0.079311</td>\n",
" <td>Krukov</td>\n",
" <td>NOT Sholokhov</td>\n",
" <td>15 мая атаман Всевеликого войска Донского Крас...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b3_h11</th>\n",
" <td>0.900175</td>\n",
" <td>0.098762</td>\n",
" <td>Krukov</td>\n",
" <td>NOT Sholokhov</td>\n",
" <td>В конце ноября в Новочеркасске стало известно ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b3_h13</th>\n",
" <td>0.378320</td>\n",
" <td>0.771042</td>\n",
" <td>NOT Krukov</td>\n",
" <td>Sholokhov</td>\n",
" <td>Пугающие тишиной, короткие дни под исход казал...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b4_h16</th>\n",
" <td>0.331498</td>\n",
" <td>0.761796</td>\n",
" <td>NOT Krukov</td>\n",
" <td>Sholokhov</td>\n",
" <td>Несколько дней после разговора с Дарьей Наталь...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b4_h17</th>\n",
" <td>0.303255</td>\n",
" <td>0.773608</td>\n",
" <td>NOT Krukov</td>\n",
" <td>Sholokhov</td>\n",
" <td>Многое передумал и вспомнил Григорий за двое с...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b4_h20</th>\n",
" <td>0.778961</td>\n",
" <td>0.242222</td>\n",
" <td>Krukov</td>\n",
" <td>NOT Sholokhov</td>\n",
" <td>Донская армия, выйдя за границу Хоперского окр...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b4_h23</th>\n",
" <td>0.787689</td>\n",
" <td>0.177089</td>\n",
" <td>Krukov</td>\n",
" <td>NOT Sholokhov</td>\n",
" <td>17 сентября части ударной группы Шорина, сдела...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b4_h25</th>\n",
" <td>0.327113</td>\n",
" <td>0.760596</td>\n",
" <td>NOT Krukov</td>\n",
" <td>Sholokhov</td>\n",
" <td>Через месяц Григорий выздоровел. Впервые подня...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Krukov_prob Sholokhov_prob Krukov Sholokhov \\\n",
"target \n",
"b1_h2 0.787819 0.295641 Krukov NOT Sholokhov \n",
"b1_h14 0.263501 0.764839 NOT Krukov Sholokhov \n",
"b1_h11 0.820300 0.302806 Krukov NOT Sholokhov \n",
"b1_h14 0.795719 0.211221 Krukov NOT Sholokhov \n",
"b2_h2 0.778377 0.243412 Krukov NOT Sholokhov \n",
"b2_h10 0.786816 0.232395 Krukov NOT Sholokhov \n",
"b2_h11 0.812521 0.164833 Krukov NOT Sholokhov \n",
"b2_h14 0.838280 0.217282 Krukov NOT Sholokhov \n",
"b2_h15 0.812646 0.207506 Krukov NOT Sholokhov \n",
"b2_h20 0.851735 0.188060 Krukov NOT Sholokhov \n",
"b3_h3 0.367853 0.752579 NOT Krukov Sholokhov \n",
"b3_h4 0.890859 0.079311 Krukov NOT Sholokhov \n",
"b3_h11 0.900175 0.098762 Krukov NOT Sholokhov \n",
"b3_h13 0.378320 0.771042 NOT Krukov Sholokhov \n",
"b4_h16 0.331498 0.761796 NOT Krukov Sholokhov \n",
"b4_h17 0.303255 0.773608 NOT Krukov Sholokhov \n",
"b4_h20 0.778961 0.242222 Krukov NOT Sholokhov \n",
"b4_h23 0.787689 0.177089 Krukov NOT Sholokhov \n",
"b4_h25 0.327113 0.760596 NOT Krukov Sholokhov \n",
"\n",
" text \n",
"target \n",
"b1_h2 Сергей Платонович Мохов издалека ведет свою ро... \n",
"b1_h14 Аксинья отстряпалась рано, загребла жар, закут... \n",
"b1_h11 Небольшая в сафьяновом, цвета под дуб, перепле... \n",
"b1_h14 В первых числах августа сотник Евгений Листниц... \n",
"b2_h2 На другой день утром смущенный вахмистр вошел ... \n",
"b2_h10 По возвращении из отпуска есаул Евгений Листни... \n",
"b2_h11 Назначение генерала Корнилова главнокомандующи... \n",
"b2_h14 За день до приезда Корнилова в Москву есаул Ли... \n",
"b2_h15 В версте от развалин местечка, стертого орудий... \n",
"b2_h20 Теплилась осень. Перепадали дожди. Над Быховом... \n",
"b3_h3 Неделю отдыхал Мишка, целые дни проводя в седл... \n",
"b3_h4 15 мая атаман Всевеликого войска Донского Крас... \n",
"b3_h11 В конце ноября в Новочеркасске стало известно ... \n",
"b3_h13 Пугающие тишиной, короткие дни под исход казал... \n",
"b4_h16 Несколько дней после разговора с Дарьей Наталь... \n",
"b4_h17 Многое передумал и вспомнил Григорий за двое с... \n",
"b4_h20 Донская армия, выйдя за границу Хоперского окр... \n",
"b4_h23 17 сентября части ударной группы Шорина, сдела... \n",
"b4_h25 Через месяц Григорий выздоровел. Впервые подня... "
]
},
"execution_count": 121,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"iLevel=0.75\n",
"pdf_strong=pdf_all[(pdf_all['Krukov_prob']>iLevel) | (pdf_all['Sholokhov_prob']>iLevel)]\n",
"pdf_strong"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment