summaryrefslogtreecommitdiffstats
path: root/comm/mail/test/browser/message-window
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /comm/mail/test/browser/message-window
parentInitial commit. (diff)
downloadthunderbird-upstream.tar.xz
thunderbird-upstream.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--comm/mail/test/browser/message-window/browser.ini18
-rw-r--r--comm/mail/test/browser/message-window/browser_autohideMenubar.js121
-rw-r--r--comm/mail/test/browser/message-window/browser_commands.js103
-rw-r--r--comm/mail/test/browser/message-window/browser_emlSubject.js48
-rw-r--r--comm/mail/test/browser/message-window/browser_vcardActions.js101
-rw-r--r--comm/mail/test/browser/message-window/browser_viewPlaintext.js138
-rw-r--r--comm/mail/test/browser/message-window/data/emptySubject.eml8
-rw-r--r--comm/mail/test/browser/message-window/data/evil.eml16
-rw-r--r--comm/mail/test/browser/message-window/data/test-alt-HTML-missing.eml17
-rw-r--r--comm/mail/test/browser/message-window/data/test-alt-plain-HTML-reversed.eml31
-rw-r--r--comm/mail/test/browser/message-window/data/test-alt-plain-missing.eml24
-rw-r--r--comm/mail/test/browser/message-window/data/test-alt-rel-text.eml50
-rw-r--r--comm/mail/test/browser/message-window/data/test-alt-rel-with-attach.eml66
-rw-r--r--comm/mail/test/browser/message-window/data/test-alt-rel.eml45
-rw-r--r--comm/mail/test/browser/message-window/data/test-alt-rogue.eml42
-rw-r--r--comm/mail/test/browser/message-window/data/test-alt-rogue2.eml36
-rw-r--r--comm/mail/test/browser/message-window/data/test-alt.eml30
-rw-r--r--comm/mail/test/browser/message-window/data/test-rel-alt.eml41
-rw-r--r--comm/mail/test/browser/message-window/data/test-triple-alt.eml36
-rw-r--r--comm/mail/test/browser/message-window/data/test-vcard-icon.eml800
20 files changed, 1771 insertions, 0 deletions
diff --git a/comm/mail/test/browser/message-window/browser.ini b/comm/mail/test/browser/message-window/browser.ini
new file mode 100644
index 0000000000..a4cd1cf740
--- /dev/null
+++ b/comm/mail/test/browser/message-window/browser.ini
@@ -0,0 +1,18 @@
+[DEFAULT]
+prefs =
+ mail.provider.suppress_dialog_on_startup=true
+ mail.spotlight.firstRunDone=true
+ mail.winsearch.firstRunDone=true
+ mailnews.start_page.override_url=about:blank
+ mailnews.start_page.url=about:blank
+ datareporting.policy.dataSubmissionPolicyBypassNotification=true
+subsuite = thunderbird
+support-files = data/**
+
+[browser_autohideMenubar.js]
+skip-if = os == "mac" # mac used native menubar
+[browser_commands.js]
+[browser_emlSubject.js]
+[browser_vcardActions.js]
+tags = addrbook vcard
+[browser_viewPlaintext.js]
diff --git a/comm/mail/test/browser/message-window/browser_autohideMenubar.js b/comm/mail/test/browser/message-window/browser_autohideMenubar.js
new file mode 100644
index 0000000000..4d7c07d479
--- /dev/null
+++ b/comm/mail/test/browser/message-window/browser_autohideMenubar.js
@@ -0,0 +1,121 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/**
+ * Test that the menubar can be set to "autohide".
+ */
+
+"use strict";
+
+var utils = ChromeUtils.import("resource://testing-common/mozmill/utils.jsm");
+var {
+ be_in_folder,
+ close_message_window,
+ create_folder,
+ inboxFolder,
+ make_message_sets_in_folders,
+ mc,
+ open_selected_message_in_new_window,
+ select_click_row,
+ toggle_main_menu,
+} = ChromeUtils.import(
+ "resource://testing-common/mozmill/FolderDisplayHelpers.jsm"
+);
+
+var menuFolder;
+var menuState;
+
+add_setup(async function () {
+ menuFolder = await create_folder("menuFolder");
+ await make_message_sets_in_folders([menuFolder], [{ count: 1 }]);
+
+ // Make the menubar not autohide by default.
+ menuState = toggle_main_menu(true);
+});
+
+/**
+ * Set the autohide attribute of the menubar. That is, make the menubar not
+ * shown by default - but pressing Alt will toggle it open/closed.
+ *
+ * @param controller the mozmill controller for the window
+ * @param elem the element to click on (usually the menubar)
+ * @param hide true to hide, false otherwise
+ */
+async function set_autohide_menubar(controller, elem, hide) {
+ let contextMenu = controller.window.document.getElementById(
+ "toolbar-context-menu"
+ );
+ let popupshown = BrowserTestUtils.waitForEvent(
+ contextMenu,
+ "popupshown",
+ controller.window
+ );
+ EventUtils.synthesizeMouseAtCenter(
+ elem,
+ { type: "contextmenu" },
+ controller.window
+ );
+ await popupshown;
+ let menuitem = controller.window.document.querySelector(
+ `menuitem[toolbarid="${elem.id}"]`
+ );
+ if (menuitem.getAttribute("checked") == hide + "") {
+ EventUtils.synthesizeMouseAtCenter(menuitem, {}, controller.window);
+ await new Promise(resolve => controller.window.setTimeout(resolve, 50));
+ }
+}
+
+/**
+ * Ensure that the autohide attribute of the menubar can be set properly.
+ *
+ * @param controller the mozmill controller for the window
+ * @param menubar the menubar to test
+ */
+async function help_test_autohide(controller, menubar) {
+ function hiddenChecker(aHidden) {
+ // The hidden attribute isn't what is set, so it's useless here -- use
+ // information from the box model instead.
+ return () => {
+ return (menubar.getBoundingClientRect().height != 0) != aHidden;
+ };
+ }
+ await TestUtils.waitForCondition(
+ () => Services.focus.activeWindow == controller.window
+ );
+ await set_autohide_menubar(controller, menubar, true);
+ utils.waitFor(hiddenChecker(true), "Menubar should be hidden");
+
+ menubar.focus();
+ EventUtils.synthesizeKey("VK_ALT", {}, controller.window);
+ utils.waitFor(
+ hiddenChecker(false),
+ "Menubar should be shown after pressing ALT!"
+ );
+
+ info("Menubar showing or not should toggle for ALT.");
+ await set_autohide_menubar(controller, menubar, false);
+ utils.waitFor(hiddenChecker(false), "Menubar should be shown");
+ Assert.ok("help_test_autohide success");
+}
+
+add_task(async function test_autohidden_menubar_3pane() {
+ let menubar = mc.window.document.getElementById("toolbar-menubar");
+ await help_test_autohide(mc, menubar);
+});
+
+add_task(async function test_autohidden_menubar_message_window() {
+ await be_in_folder(menuFolder);
+ select_click_row(0);
+ let msgc = await open_selected_message_in_new_window();
+ let menubar = msgc.window.document.getElementById("toolbar-menubar");
+
+ await help_test_autohide(msgc, menubar);
+ close_message_window(msgc);
+});
+
+registerCleanupFunction(async function () {
+ toggle_main_menu(menuState);
+ await be_in_folder(inboxFolder);
+ menuFolder.deleteSelf(null);
+});
diff --git a/comm/mail/test/browser/message-window/browser_commands.js b/comm/mail/test/browser/message-window/browser_commands.js
new file mode 100644
index 0000000000..32ff6d5bdc
--- /dev/null
+++ b/comm/mail/test/browser/message-window/browser_commands.js
@@ -0,0 +1,103 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+var { MailServices } = ChromeUtils.import(
+ "resource:///modules/MailServices.jsm"
+);
+
+var {
+ be_in_folder,
+ create_folder,
+ get_about_message,
+ make_message_sets_in_folders,
+ mc,
+ open_message_from_file,
+ press_delete,
+ select_click_row,
+} = ChromeUtils.import(
+ "resource://testing-common/mozmill/FolderDisplayHelpers.jsm"
+);
+var { click_menus_in_sequence, close_window } = ChromeUtils.import(
+ "resource://testing-common/mozmill/WindowHelpers.jsm"
+);
+
+var folder1, folder2;
+
+add_setup(async function () {
+ folder1 = await create_folder("CopyFromFolder");
+ folder2 = await create_folder("CopyToFolder");
+ await make_message_sets_in_folders([folder1], [{ count: 1 }]);
+});
+
+add_task(async function test_copy_eml_message() {
+ // First, copy an email to a folder and delete it immediately just so it shows
+ // up in the recent folders list. This simplifies navigation of the copy
+ // context menu.
+ await be_in_folder(folder1);
+ let message = select_click_row(0);
+ MailServices.copy.copyMessages(
+ folder1,
+ [message],
+ folder2,
+ true,
+ null,
+ mc.window.msgWindow,
+ true
+ );
+ await be_in_folder(folder2);
+ select_click_row(0);
+ press_delete(mc);
+
+ // Now, open a .eml file and copy it to our folder.
+ let file = new FileUtils.File(getTestFilePath("data/evil.eml"));
+ let msgc = await open_message_from_file(file);
+ let aboutMessage = get_about_message(msgc.window);
+
+ // First check the properties are correct when opening the .eml from file.
+ let emlMessage = aboutMessage.gMessage;
+ Assert.equal(emlMessage.mime2DecodedSubject, "An email");
+ Assert.equal(emlMessage.mime2DecodedAuthor, "from@example.com");
+ Assert.equal(
+ emlMessage.date,
+ new Date("Mon, 10 Jan 2011 12:00:00 -0500").getTime() * 1000
+ );
+ Assert.equal(
+ emlMessage.messageId,
+ "11111111-bdfd-ca83-6479-3427940164a8@invalid"
+ );
+
+ let documentChild = msgc.window.content.document.documentElement;
+ EventUtils.synthesizeMouseAtCenter(
+ documentChild,
+ { type: "contextmenu", button: 2 },
+ documentChild.ownerGlobal
+ );
+ await click_menus_in_sequence(
+ aboutMessage.document.getElementById("mailContext"),
+ [
+ { id: "mailContext-copyMenu" },
+ { label: "Recent" },
+ { label: "CopyToFolder" },
+ ]
+ );
+ close_window(msgc);
+
+ // Make sure the copy worked. Make sure the first header is the one used,
+ // in case the message (incorrectly) has multiple when max-number is 1
+ // according to RFC 5322.
+ let copiedMessage = select_click_row(0);
+ Assert.equal(copiedMessage.mime2DecodedSubject, "An email");
+ Assert.equal(copiedMessage.mime2DecodedAuthor, "from@example.com");
+ Assert.equal(
+ copiedMessage.date,
+ new Date("Mon, 10 Jan 2011 12:00:00 -0500").getTime() * 1000
+ );
+ Assert.equal(copiedMessage.numReferences, 2);
+ Assert.equal(
+ copiedMessage.messageId,
+ "11111111-bdfd-ca83-6479-3427940164a8@invalid"
+ );
+});
diff --git a/comm/mail/test/browser/message-window/browser_emlSubject.js b/comm/mail/test/browser/message-window/browser_emlSubject.js
new file mode 100644
index 0000000000..f8fc12c4de
--- /dev/null
+++ b/comm/mail/test/browser/message-window/browser_emlSubject.js
@@ -0,0 +1,48 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/**
+ * Tests that opening an .eml file with empty subject works.
+ */
+
+"use strict";
+
+var { open_message_from_file } = ChromeUtils.import(
+ "resource://testing-common/mozmill/FolderDisplayHelpers.jsm"
+);
+var { close_window } = ChromeUtils.import(
+ "resource://testing-common/mozmill/WindowHelpers.jsm"
+);
+
+async function check_eml_window_title(subject, eml) {
+ let file = new FileUtils.File(getTestFilePath(`data/${eml}`));
+ let msgc = await open_message_from_file(file);
+
+ let brandBundle = Services.strings.createBundle(
+ "chrome://branding/locale/brand.properties"
+ );
+ let productName = brandBundle.GetStringFromName("brandFullName");
+ let expectedTitle = subject;
+ if (expectedTitle && AppConstants.platform != "macosx") {
+ expectedTitle += " - ";
+ }
+
+ if (!expectedTitle || AppConstants.platform != "macosx") {
+ expectedTitle += productName;
+ }
+
+ await TestUtils.waitForCondition(
+ () => msgc.window.document.title == expectedTitle
+ );
+ Assert.equal(msgc.window.document.title, expectedTitle);
+ close_window(msgc);
+}
+
+add_task(async function test_eml_empty_subject() {
+ await check_eml_window_title("", "./emptySubject.eml");
+});
+
+add_task(async function test_eml_normal_subject() {
+ await check_eml_window_title("An email", "./evil.eml");
+});
diff --git a/comm/mail/test/browser/message-window/browser_vcardActions.js b/comm/mail/test/browser/message-window/browser_vcardActions.js
new file mode 100644
index 0000000000..8be0246c3e
--- /dev/null
+++ b/comm/mail/test/browser/message-window/browser_vcardActions.js
@@ -0,0 +1,101 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/**
+ * Tests for attached vcards.
+ */
+
+"use strict";
+
+var { get_cards_in_all_address_books_for_email } = ChromeUtils.import(
+ "resource://testing-common/mozmill/AddressBookHelpers.jsm"
+);
+var { close_window, plan_for_modal_dialog, wait_for_modal_dialog } =
+ ChromeUtils.import("resource://testing-common/mozmill/WindowHelpers.jsm");
+
+async function openMessageFromFile(file) {
+ let fileURL = Services.io
+ .newFileURI(file)
+ .mutate()
+ .setQuery("type=application/x-message-display")
+ .finalize();
+
+ let winPromise = BrowserTestUtils.domWindowOpenedAndLoaded();
+ window.openDialog(
+ "chrome://messenger/content/messageWindow.xhtml",
+ "_blank",
+ "all,chrome,dialog=no,status,toolbar",
+ fileURL
+ );
+ let win = await winPromise;
+ await BrowserTestUtils.waitForEvent(win, "MsgLoaded");
+ if (win.content.document.readyState != "complete") {
+ await BrowserTestUtils.waitForEvent(win.content, "load", true);
+ }
+ await TestUtils.waitForCondition(() => Services.focus.activeWindow == win);
+ return win;
+}
+
+/**
+ * Bug 1374779
+ * Check if clicking attached vCard image opens the Address Book and adds a contact.
+ */
+add_task(async function test_check_vcard_icon() {
+ // Force full screen to avoid UI issues before the AB gets fully responsive.
+ window.fullScreen = true;
+
+ let newcards = get_cards_in_all_address_books_for_email(
+ "meister@example.com"
+ );
+ Assert.equal(newcards.length, 0, "card does not exist at the start");
+
+ let tabPromise = BrowserTestUtils.waitForEvent(window, "TabOpen");
+
+ let file = new FileUtils.File(getTestFilePath("data/test-vcard-icon.eml"));
+ let messageWindow = await openMessageFromFile(file);
+
+ // Click icon on the vcard block.
+ let vcard = messageWindow.content.document.querySelector(".moz-vcard-badge");
+ EventUtils.synthesizeMouseAtCenter(vcard, {}, vcard.ownerGlobal);
+ await tabPromise;
+ await TestUtils.waitForCondition(
+ () => Services.focus.activeWindow == window,
+ "the main window was focused"
+ );
+
+ let tabmail = document.getElementById("tabmail");
+ Assert.equal(
+ tabmail.currentTabInfo.mode.name,
+ "addressBookTab",
+ "the Address Book tab opened"
+ );
+
+ let abWindow = tabmail.currentTabInfo.browser.contentWindow;
+ let saveEditButton = await TestUtils.waitForCondition(
+ () => abWindow.document.getElementById("saveEditButton"),
+ "Address Book page properly loaded"
+ );
+ await TestUtils.waitForCondition(
+ () => BrowserTestUtils.is_visible(saveEditButton),
+ "entered edit mode"
+ );
+ saveEditButton.scrollIntoView();
+ EventUtils.synthesizeMouseAtCenter(saveEditButton, {}, abWindow);
+
+ // Check new card was created from the vcard.
+ newcards = get_cards_in_all_address_books_for_email("meister@example.com");
+ Assert.equal(newcards.length, 1, "exactly one card created");
+ Assert.equal(newcards[0].displayName, "Meister", "display name saved");
+ Assert.ok(
+ newcards[0].photoURL.startsWith(
+ "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/"
+ ),
+ "PHOTO correctly saved"
+ );
+
+ tabmail.closeTab(tabmail.currentTabInfo);
+ // Reset the window size.
+ window.fullScreen = false;
+ await BrowserTestUtils.closeWindow(messageWindow);
+});
diff --git a/comm/mail/test/browser/message-window/browser_viewPlaintext.js b/comm/mail/test/browser/message-window/browser_viewPlaintext.js
new file mode 100644
index 0000000000..a9af4caecd
--- /dev/null
+++ b/comm/mail/test/browser/message-window/browser_viewPlaintext.js
@@ -0,0 +1,138 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/**
+ * Tests that the plain text part of multipart/alternative messages can be correctly viewed.
+ */
+
+"use strict";
+
+var { open_message_from_file } = ChromeUtils.import(
+ "resource://testing-common/mozmill/FolderDisplayHelpers.jsm"
+);
+var { close_window } = ChromeUtils.import(
+ "resource://testing-common/mozmill/WindowHelpers.jsm"
+);
+
+/**
+ * Retrieve the textual content of the message and compare it.
+ *
+ * @param aWindow Message window.
+ * @param aExpected Expected content.
+ * @param aDontWantToSee Content of other MIME parts we don't want to see.
+ */
+function check_content(aWindow, aExpected, aDontWantToSee) {
+ let messageContent = aWindow.content.document.documentElement.textContent;
+
+ if (aExpected != aDontWantToSee) {
+ Assert.ok(
+ messageContent.includes(aExpected),
+ "Didn't find expected content"
+ );
+ Assert.ok(
+ !messageContent.includes(aDontWantToSee),
+ "Found content that shouldn't be there"
+ );
+ } else {
+ let ind = messageContent.indexOf(aExpected);
+ Assert.ok(ind >= 0, "Didn't find expected content");
+ if (ind >= 0) {
+ Assert.ok(
+ !messageContent.substr(ind + aExpected.length).includes(aExpected),
+ "Found content a second time"
+ );
+ }
+ }
+}
+
+/**
+ * Load a message from a file and display it as plain text and HTML. Check that the
+ * correct MIME part is displayed.
+ *
+ * @param aFilePath Path to the file containing the message to load and display.
+ * @param aExpectedPlainText Expected content when viewed as plain text.
+ * @param aExpectedHTML Expected content when viewed as HTML.
+ */
+async function checkSingleMessage(
+ aFilePath,
+ aExpectedPlainText,
+ aExpectedHTML
+) {
+ let file = new FileUtils.File(getTestFilePath(`data/${aFilePath}`));
+
+ // Load and display as plain text.
+ Services.prefs.setBoolPref("mailnews.display.prefer_plaintext", true);
+ Services.prefs.setIntPref("mailnews.display.html_as", 1);
+ let msgc = await open_message_from_file(file);
+ check_content(msgc.window, aExpectedPlainText, aExpectedHTML);
+ close_window(msgc);
+
+ // Load and display as HTML.
+ Services.prefs.setBoolPref("mailnews.display.prefer_plaintext", false);
+ Services.prefs.setIntPref("mailnews.display.html_as", 0);
+ msgc = await open_message_from_file(file);
+ check_content(msgc.window, aExpectedHTML, aExpectedPlainText);
+ close_window(msgc);
+}
+
+/**
+ * Tests that messages with various MIME parts are shown correctly when displayed
+ * as plain text or HTML.
+ */
+add_task(async function test_view() {
+ // First the straight forward tests:
+ // 1) multipart/alternative
+ // 2) multipart/alternative with embedded multipart/related
+ // 3) multipart/alternative with embedded multipart/related embedded in multipart/mixed
+ await checkSingleMessage("./test-alt.eml", "Plain Text", "HTML Body");
+ await checkSingleMessage("./test-alt-rel.eml", "Plain Text", "HTML Body");
+ await checkSingleMessage(
+ "./test-alt-rel-with-attach.eml",
+ "Plain Text",
+ "HTML Body"
+ );
+
+ // 4) HTML part missing
+ // 5) Plain part missing
+ await checkSingleMessage(
+ "./test-alt-HTML-missing.eml",
+ "Plain Text",
+ "Plain Text"
+ );
+ await checkSingleMessage(
+ "./test-alt-plain-missing.eml",
+ "HTML Body",
+ "HTML Body"
+ );
+
+ // 6) plain and HTML parts reversed in order
+ await checkSingleMessage(
+ "./test-alt-plain-HTML-reversed.eml",
+ "Plain Text",
+ "HTML Body"
+ );
+
+ // 7) 3 alt. parts with 2 plain and 1 HTML part
+ await checkSingleMessage("./test-triple-alt.eml", "Plain Text", "HTML Body");
+
+ // 8) 3 alt. parts with 2 plain and 1 multipart/related
+ await checkSingleMessage(
+ "./test-alt-rel-text.eml",
+ "Plain Text",
+ "HTML Body"
+ );
+
+ // Now some cases that don't work yet.
+ // 9) multipart/related with embedded multipart/alternative
+ await checkSingleMessage("./test-rel-alt.eml", "HTML Body", "HTML Body");
+
+ // Bug 1367156: Rogue message which has an image as the last part.
+ await checkSingleMessage("./test-alt-rogue.eml", "Plain Text", "HTML Body");
+ await checkSingleMessage("./test-alt-rogue2.eml", "Plain Text", "HTML Body");
+});
+
+registerCleanupFunction(function () {
+ Services.prefs.clearUserPref("mailnews.display.prefer_plaintext");
+ Services.prefs.clearUserPref("mailnews.display.html_as");
+});
diff --git a/comm/mail/test/browser/message-window/data/emptySubject.eml b/comm/mail/test/browser/message-window/data/emptySubject.eml
new file mode 100644
index 0000000000..f099e06c86
--- /dev/null
+++ b/comm/mail/test/browser/message-window/data/emptySubject.eml
@@ -0,0 +1,8 @@
+Date: Mon, 10 Jan 2011 12:00:00 -0500
+From: user@example.com
+To: user@example.com
+Subject:
+Content-Type: text/plain
+
+Hello there
+
diff --git a/comm/mail/test/browser/message-window/data/evil.eml b/comm/mail/test/browser/message-window/data/evil.eml
new file mode 100644
index 0000000000..8b1d386518
--- /dev/null
+++ b/comm/mail/test/browser/message-window/data/evil.eml
@@ -0,0 +1,16 @@
+Date: Mon, 10 Jan 2011 12:00:00 -0500
+From: from@example.com
+From: evil@example.com
+Sender: send1@example.com
+Sender: send2@example.com
+To: to@example.com
+Date: Tue, 12 Jan 2011 12:00:00 -0500
+Subject: An email
+Subject: Dup subject
+Message-ID: <11111111-bdfd-ca83-6479-3427940164a8@invalid>
+Message-ID: <22222222-bdfd-ca83-6479-3427940164a8@invalid>
+References: <aaaaaaaa-3d7b-22d2-f859-4c1e6a2164d6@invalid> <bbbbbbb-3d7b-22d2-f859-4c1e6a2164d6@invalid>
+References: <ccccccc-3d7b-22d2-f859-4c1e6a2164d6@invalid>
+Content-Type: text/plain
+
+Hello there
diff --git a/comm/mail/test/browser/message-window/data/test-alt-HTML-missing.eml b/comm/mail/test/browser/message-window/data/test-alt-HTML-missing.eml
new file mode 100644
index 0000000000..87a814a27d
--- /dev/null
+++ b/comm/mail/test/browser/message-window/data/test-alt-HTML-missing.eml
@@ -0,0 +1,17 @@
+From: test <test@example.com>
+Subject: test multipart, HTML missing
+To: test2 <test2@example.com>
+Date: Sat, 27 Feb 2016 17:11:45 +0100
+MIME-Version: 1.0
+Content-Type: multipart/alternative;
+ boundary="------------alternative"
+
+This is a multi-part message in MIME format.
+--------------alternative
+Content-Type: text/plain; charset=UTF-8; format=flowed
+Content-Transfer-Encoding: 8bit
+
+Plain Text
+
+--------------alternative--
+
diff --git a/comm/mail/test/browser/message-window/data/test-alt-plain-HTML-reversed.eml b/comm/mail/test/browser/message-window/data/test-alt-plain-HTML-reversed.eml
new file mode 100644
index 0000000000..9287e3ec34
--- /dev/null
+++ b/comm/mail/test/browser/message-window/data/test-alt-plain-HTML-reversed.eml
@@ -0,0 +1,31 @@
+From: test <test@example.com>
+Subject: test multipart, plain and HTML reversed
+To: test2 <test2@example.com>
+Date: Sat, 27 Feb 2016 17:11:45 +0100
+MIME-Version: 1.0
+Content-Type: multipart/alternative;
+ boundary="------------alternative"
+
+This is a multi-part message in MIME format.
+
+--------------alternative
+Content-Type: text/html; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+<html>
+ <head>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
+ </head>
+ <body bgcolor="#FFFFFF" text="#000000">
+ HTML Body<br>
+ </body>
+</html>
+
+--------------alternative
+Content-Type: text/plain; charset=UTF-8; format=flowed
+Content-Transfer-Encoding: 8bit
+
+Plain Text
+
+--------------alternative--
+
diff --git a/comm/mail/test/browser/message-window/data/test-alt-plain-missing.eml b/comm/mail/test/browser/message-window/data/test-alt-plain-missing.eml
new file mode 100644
index 0000000000..76bfd50f7c
--- /dev/null
+++ b/comm/mail/test/browser/message-window/data/test-alt-plain-missing.eml
@@ -0,0 +1,24 @@
+From: test <test@example.com>
+Subject: test multipart, plain part missing
+To: test2 <test2@example.com>
+Date: Sat, 27 Feb 2016 17:11:45 +0100
+MIME-Version: 1.0
+Content-Type: multipart/alternative;
+ boundary="------------alternative"
+
+This is a multi-part message in MIME format.
+--------------alternative
+Content-Type: text/html; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+<html>
+ <head>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
+ </head>
+ <body bgcolor="#FFFFFF" text="#000000">
+ HTML Body<br>
+ </body>
+</html>
+
+--------------alternative--
+
diff --git a/comm/mail/test/browser/message-window/data/test-alt-rel-text.eml b/comm/mail/test/browser/message-window/data/test-alt-rel-text.eml
new file mode 100644
index 0000000000..058bd9f73f
--- /dev/null
+++ b/comm/mail/test/browser/message-window/data/test-alt-rel-text.eml
@@ -0,0 +1,50 @@
+From: test <test@example.com>
+Subject: test multipart, alternative first, with image
+To: test2 <test2@example.com>
+Date: Sat, 27 Feb 2016 17:11:45 +0100
+MIME-Version: 1.0
+Content-Type: multipart/alternative;
+ boundary="------------alternative"
+
+This is a multi-part message in MIME format.
+--------------alternative
+Content-Type: text/plain; charset=UTF-8; format=flowed
+Content-Transfer-Encoding: 8bit
+
+Plain Text
+
+--------------alternative
+Content-Type: multipart/related;
+ boundary="------------related"
+
+
+--------------related
+Content-Type: text/html; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+<html>
+ <head>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
+ </head>
+ <body bgcolor="#FFFFFF" text="#000000">
+ HTML Body<br>
+ <img src="cid:part1" alt=""><br>
+ </body>
+</html>
+
+--------------related
+Content-Type: image/png
+Content-Transfer-Encoding: base64
+Content-ID: <part1>
+
+iVBORw0KGgoAAAANSUhEUgAAAAYAAAALCAIAAADTMGvBAAAAEUlEQVQImWPgsi5DQwxDWggA
+lCEwN+YGfiYAAAAASUVORK5CYII=
+--------------related--
+
+--------------alternative
+Content-Type: text; charset=UTF-8;
+Content-Transfer-Encoding: 8bit
+
+Unspecified text type (not text/plain)
+
+--------------alternative--
diff --git a/comm/mail/test/browser/message-window/data/test-alt-rel-with-attach.eml b/comm/mail/test/browser/message-window/data/test-alt-rel-with-attach.eml
new file mode 100644
index 0000000000..f3c6572358
--- /dev/null
+++ b/comm/mail/test/browser/message-window/data/test-alt-rel-with-attach.eml
@@ -0,0 +1,66 @@
+From: test <test@example.com>
+Subject: test multipart, alternative first, with image and image attachment
+To: test2 <test2@example.com>
+Date: Sat, 27 Feb 2016 17:11:45 +0100
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+ boundary="------------mixed"
+
+This is a multi-part message in MIME format.
+--------------mixed
+Content-Type: multipart/alternative;
+ boundary="------------alternative"
+
+
+--------------alternative
+Content-Type: text/plain; charset=windows-1252; format=flowed
+Content-Transfer-Encoding: 7bit
+
+Plain Text
+
+--------------alternative
+Content-Type: multipart/related;
+ boundary="------------related"
+
+
+--------------related
+Content-Type: text/html; charset=windows-1252
+Content-Transfer-Encoding: 7bit
+
+<html>
+ <head>
+
+ <meta http-equiv="content-type" content="text/html; charset=windows-1252">
+ </head>
+ <body text="#000000" bgcolor="#FFFFFF">
+ HTML Body<br>
+ <img src="cid:part1.DE278D8E.600E563A@jorgk.com" alt="">
+ </body>
+</html>
+
+--------------related
+Content-Type: image/png;
+ name="llpfblmjefjfhhce.png"
+Content-Transfer-Encoding: base64
+Content-ID: <part1.DE278D8E.600E563A@jorgk.com>
+Content-Disposition: inline;
+ filename="llpfblmjefjfhhce.png"
+
+iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAAEUlEQVQImWOwCKjBihiGlgQA
+VT9BAeZezQ0AAAAASUVORK5CYII=
+--------------related--
+
+--------------alternative--
+
+--------------mixed
+Content-Type: image/png;
+ name="attach.png"
+Content-Transfer-Encoding: base64
+Content-Disposition: attachment;
+ filename="attach.png"
+
+iVBORw0KGgoAAAANSUhEUgAAAAkAAAALCAIAAAAiOzBMAAAAAXNSR0IArs4c6QAAAARnQU1B
+AACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAASdEVYdFNvZnR3YXJlAEdyZWVuc2hv
+dF5VCAUAAAAtSURBVChTY3Dx6wYiZ/9OTMTg7A+UIEsOXQiOaCkX0I6JiJBzDMCCcMsFdAIA
+xwttYrvggeAAAAAASUVORK5CYII=
+--------------mixed--
diff --git a/comm/mail/test/browser/message-window/data/test-alt-rel.eml b/comm/mail/test/browser/message-window/data/test-alt-rel.eml
new file mode 100644
index 0000000000..ae7121ff23
--- /dev/null
+++ b/comm/mail/test/browser/message-window/data/test-alt-rel.eml
@@ -0,0 +1,45 @@
+From: test <test@example.com>
+Subject: test multipart, alternative first, with image
+To: test2 <test2@example.com>
+Date: Sat, 27 Feb 2016 17:11:45 +0100
+MIME-Version: 1.0
+Content-Type: multipart/alternative;
+ boundary="------------alternative"
+
+This is a multi-part message in MIME format.
+--------------alternative
+Content-Type: text/plain; charset=UTF-8; format=flowed
+Content-Transfer-Encoding: 8bit
+
+Plain Text
+
+--------------alternative
+Content-Type: multipart/related;
+ boundary="------------related"
+
+
+--------------related
+Content-Type: text/html; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+<html>
+ <head>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
+ </head>
+ <body bgcolor="#FFFFFF" text="#000000">
+ HTML Body<br>
+ <img src="cid:part1" alt=""><br>
+ </body>
+</html>
+
+--------------related
+Content-Type: image/png
+Content-Transfer-Encoding: base64
+Content-ID: <part1>
+
+iVBORw0KGgoAAAANSUhEUgAAAAYAAAALCAIAAADTMGvBAAAAEUlEQVQImWPgsi5DQwxDWggA
+lCEwN+YGfiYAAAAASUVORK5CYII=
+--------------related--
+
+--------------alternative--
+
diff --git a/comm/mail/test/browser/message-window/data/test-alt-rogue.eml b/comm/mail/test/browser/message-window/data/test-alt-rogue.eml
new file mode 100644
index 0000000000..0b5f31b4ad
--- /dev/null
+++ b/comm/mail/test/browser/message-window/data/test-alt-rogue.eml
@@ -0,0 +1,42 @@
+From: test <test@example.com>
+Subject: test multipart, rogue message, last part image
+To: test2 <test2@example.com>
+Date: Sat, 27 Feb 2016 17:11:45 +0100
+MIME-Version: 1.0
+Content-Type: multipart/alternative;
+ boundary=--FIRSTboundary
+
+----FIRSTboundary
+Content-Type: multipart/alternative;
+ boundary="--SECONDboundary"
+
+----SECONDboundary
+Content-Type: text/plain; charset=utf-8
+
+Plain Text
+
+----SECONDboundary
+Content-Type: text/html; charset=utf-8
+
+<html>
+ <head>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
+ </head>
+ <body bgcolor="#FFFFFF" text="#000000">
+ HTML Body<br>
+ </body>
+</html>
+
+----SECONDboundary--
+
+----FIRSTboundary
+Content-Transfer-Encoding: base64
+Content-Disposition: inline;
+ filename=blue.png
+Content-Type: image/png;
+
+iVBORw0KGgoAAAANSUhEUgAAAAYAAAALCAIAAADTMGvBAAAAEUlEQVQImWPgsi5DQwxDWggA
+lCEwN+YGfiYAAAAASUVORK5CYII=
+
+----FIRSTboundary--
+
diff --git a/comm/mail/test/browser/message-window/data/test-alt-rogue2.eml b/comm/mail/test/browser/message-window/data/test-alt-rogue2.eml
new file mode 100644
index 0000000000..f774d8fcbd
--- /dev/null
+++ b/comm/mail/test/browser/message-window/data/test-alt-rogue2.eml
@@ -0,0 +1,36 @@
+From: test <test@example.com>
+Subject: test multipart, rogue message, last part image
+To: test2 <test2@example.com>
+Date: Sat, 27 Feb 2016 17:11:45 +0100
+MIME-Version: 1.0
+Content-Type: multipart/alternative;
+ boundary=--FIRSTboundary
+
+----FIRSTboundary
+Content-Type: text/plain; charset=utf-8
+
+Plain Text
+
+----FIRSTboundary
+Content-Type: text/html; charset=utf-8
+
+<html>
+ <head>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
+ </head>
+ <body bgcolor="#FFFFFF" text="#000000">
+ HTML Body<br>
+ </body>
+</html>
+
+----FIRSTboundary
+Content-Transfer-Encoding: base64
+Content-Disposition: inline;
+ filename=blue.png
+Content-Type: image/png;
+
+iVBORw0KGgoAAAANSUhEUgAAAAYAAAALCAIAAADTMGvBAAAAEUlEQVQImWPgsi5DQwxDWggA
+lCEwN+YGfiYAAAAASUVORK5CYII=
+
+----FIRSTboundary--
+
diff --git a/comm/mail/test/browser/message-window/data/test-alt.eml b/comm/mail/test/browser/message-window/data/test-alt.eml
new file mode 100644
index 0000000000..5a952b4051
--- /dev/null
+++ b/comm/mail/test/browser/message-window/data/test-alt.eml
@@ -0,0 +1,30 @@
+From: test <test@example.com>
+Subject: test multipart, correct plain and HTML
+To: test2 <test2@example.com>
+Date: Sat, 27 Feb 2016 17:11:45 +0100
+MIME-Version: 1.0
+Content-Type: multipart/alternative;
+ boundary="------------alternative"
+
+This is a multi-part message in MIME format.
+--------------alternative
+Content-Type: text/plain; charset=UTF-8; format=flowed
+Content-Transfer-Encoding: 8bit
+
+Plain Text
+
+--------------alternative
+Content-Type: text/html; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+<html>
+ <head>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
+ </head>
+ <body bgcolor="#FFFFFF" text="#000000">
+ HTML Body<br>
+ </body>
+</html>
+
+--------------alternative--
+
diff --git a/comm/mail/test/browser/message-window/data/test-rel-alt.eml b/comm/mail/test/browser/message-window/data/test-rel-alt.eml
new file mode 100644
index 0000000000..5e965f3d8b
--- /dev/null
+++ b/comm/mail/test/browser/message-window/data/test-rel-alt.eml
@@ -0,0 +1,41 @@
+From: test <test@example.com>
+Subject: test multipart, related first, with image
+To: test2 <test2@example.com>
+Date: Sat, 27 Feb 2016 17:11:45 +0100
+MIME-Version: 1.0
+Content-Type: multipart/related;
+ boundary="------------related"
+
+--------------related
+Content-Type: multipart/alternative;
+ boundary="------------alternative"
+Content-Type: text/plain; charset=UTF-8; format=flowed
+Content-Transfer-Encoding: 8bit
+
+Plain Text
+
+--------------alternative
+Content-Type: text/html; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+<html>
+ <head>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
+ </head>
+ <body bgcolor="#FFFFFF" text="#000000">
+ HTML Body<br>
+ <img src="cid:part1" alt=""><br>
+ </body>
+</html>
+
+--------------alternative
+
+--------------related
+Content-Type: image/png
+Content-Transfer-Encoding: base64
+Content-ID: <part1>
+
+iVBORw0KGgoAAAANSUhEUgAAAAYAAAALCAIAAADTMGvBAAAAEUlEQVQImWPgsi5DQwxDWggA
+lCEwN+YGfiYAAAAASUVORK5CYII=
+
+--------------related--
diff --git a/comm/mail/test/browser/message-window/data/test-triple-alt.eml b/comm/mail/test/browser/message-window/data/test-triple-alt.eml
new file mode 100644
index 0000000000..8232d27ad0
--- /dev/null
+++ b/comm/mail/test/browser/message-window/data/test-triple-alt.eml
@@ -0,0 +1,36 @@
+From: "Test tester" <test_mail@example.com>
+To: "Robert Recipient" <robert@example.com>
+Subject: Alternative with 3 parts
+Date: Wed, 26 Sep 2001 09:16:49 -0400
+MIME-Version: 1.0
+Content-Type: multipart/alternative;
+ boundary="------------alternative"
+
+This is a multi-part message in MIME format.
+
+--------------alternative
+Content-Type: text/plain; charset="iso-8859-1"
+Content-Transfer-Encoding: 7bit
+
+Plain Text
+
+--------------alternative
+Content-Type: text/html; charset="iso-8859-1"
+Content-Transfer-Encoding: quoted-printable
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML><HEAD></HEAD>
+<BODY>
+
+HTML Body<p>
+
+</BODY>
+</HTML>
+
+--------------alternative
+Content-Type: text; charset="iso-8859-1"
+Content-Transfer-Encoding: 8bit
+
+Unspecified text type (not text/plain)
+
+--------------alternative--
diff --git a/comm/mail/test/browser/message-window/data/test-vcard-icon.eml b/comm/mail/test/browser/message-window/data/test-vcard-icon.eml
new file mode 100644
index 0000000000..cc925b7c45
--- /dev/null
+++ b/comm/mail/test/browser/message-window/data/test-vcard-icon.eml
@@ -0,0 +1,800 @@
+From - Tue Jun 20 20:58:09 2017
+X-Account-Key: account1
+X-UIDL: UID111111-1111111111
+X-Mozilla-Status: 0001
+X-Mozilla-Status2: 00000000
+X-Mozilla-Keys:
+Delivery-date: Tue, 20 Jun 2017 20:46:01 +0200
+MIME-Version: 1.0
+Message-ID: <vcard@link.invalid>
+From: <meister@mail.example.com>
+To: Hugo <hugo@example.com>
+Subject: Click on inline vCard and hang
+Content-Type: multipart/mixed;
+ boundary=sgnirk-111111111111111
+Date: Tue, 20 Jun 2017 20:45:48 +0200
+
+--sgnirk-111111111111111
+Content-Type: text/html; charset=UTF-8
+
+<html><head></head>
+<body>
+<div style="font-family: Verdana;font-size: 12.0px;">
+<div>
+<div>
+<div>Hallo Hugo</div>
+
+<div>Set attachments to inline display and click on the addbook: link in the vCard.</div>
+
+</div></div></body></html>
+--sgnirk-111111111111111
+Content-Type: text/vcard; charset=UTF-8; name="meister.vcf"
+Content-Disposition: attachment; filename="meister.vcf"
+Content-Transfer-Encoding: base64
+
+QkVHSU46VkNBUkQNClZFUlNJT046My4wDQpQUk9ESUQ6LS8vU2FicmUvL1NhYnJlIFZPYmpl
+Y3QgNC41LjMvL0VODQpVSUQ6NDM3YzU0MjAtZDQ1MC0xMDNkLThhN2UtZjk0MmE0NmIzZGY3
+DQpGTjtYLU5DLVNDT1BFPXYyLWZlZGVyYXRlZDpNZWlzdGVyDQpFTUFJTDtYLU5DLVNDT1BF
+PXYyLWZlZGVyYXRlZDptZWlzdGVyQGV4YW1wbGUuY29tDQpQSE9UTztFTkNPRElORz1iO1RZ
+UEU9SlBFRztYLU5DLVNDT1BFPXYyLWZlZGVyYXRlZDovOWovNEFBUVNrWkpSZ0FCQVFFQVlB
+QmcNCiBBQUQvL2dBN1ExSkZRVlJQVWpvZ1oyUXRhbkJsWnlCMk1TNHdJQ2gxYzJsdVp5QkpT
+a2NnU2xCRlJ5QjJOaklwTENCeGRXRnNhWA0KIFI1SUQwZ09EQUsvOXNBUXdBR0JBVUdCUVFH
+QmdVR0J3Y0dDQW9RQ2dvSkNRb1VEZzhNRUJjVUdCZ1hGQllXR2gwbEh4b2JJeHdXDQogRmlB
+c0lDTW1KeWtxS1JrZkxUQXRLREFsS0Nrby85c0FRd0VIQndjS0NBb1RDZ29US0JvV0dpZ29L
+Q2dvS0Nnb0tDZ29LQ2dvS0MNCiBnb0tDZ29LQ2dvS0Nnb0tDZ29LQ2dvS0Nnb0tDZ29LQ2dv
+S0Nnb0tDZ29LQ2dvLzhJQUVRZ0NBQUlBQXdFaUFBSVJBUU1SQWYvRQ0KIEFCd0FBUUFCQlFF
+QkFBQUFBQUFBQUFBQUFBQUJBZ1FGQmdjRENQL0VBQmtCQVFBREFRRUFBQUFBQUFBQUFBQUFB
+QUFCQXdRQ0JmDQogL2FBQXdEQVFBQ0VBTVFBQUFCNllUM0FrQUVrSkVKRUptRk16QkNVb1RC
+Q1JTbUVJbEtBUkV3VXhWVE1JbUpJa1FZRk9jMWZSTFANCiBxL09ZbVBYcXp3NjU2MzFXYVd1
+NjFMcERrZERycjBjMTJseHNNd2N6RXhNb2tpRWlJbUVSRXBBWE5VVFYzSk1BQ1FUQVNnVEFC
+Qw0KIFJFU0lURW9Fb2lTSWlZbEVURW9pcUNsS1lwaXJRRSt1aVQ3WGJrVEZtaDFma2xOR1Bm
+ZE84S3V1L0gyTEx3bnFMUElkVG95YXZ2DQogOE9NY2lTSkVBUk1BVEVKZ3V5YXUweE1FZ2tn
+UnFDZHd3L0xjUjNiditDd2szWGU5clc2czhmU29tOHltdnVlTi93QnM0bDQ4VmQNCiAvY2kz
+MnZQbjRxaU9hVXhLSXFpVVJWQlNuSFN3SE9KOWJ0b1c2UUFBQUVTTXQwL2pLakYyMXJHejha
+a3dtQUFBRVRDQkpjekUxOQ0KIHBJU2lSaU5lNXpObVZ4ZnBPbmFGbGdBQUFBRHg5a2M1ZnB2
+R3FLTTNlV3FiWFZsaE1TaUtvUkhKZDc1TDFkN2pUdkNaQUFBQUFBDQogOGQ3MHJ4cno5eG5V
+ZHRwd1NpWkFBQUVpNG1tYStxa1RFUnpYejFQdlJIcWF0Z1RJSkFBQUFBQUE4dWlhQjQxWis5
+TmEyWFBpaE4NCiBpY3Z4RnRkYWQ0V1hBQUFBQUFBQWVmYU9NN3BSaDN0RTg1Z0VTSWlZSlJK
+Y1RFMTlUenpMOHY2dG4xTlc4SmtBQUFBQUFBQUJSWA0KIGk2NnZUTlloa3diRmRhbjR6MWtw
+TnZvaE1nQWdFZ0FBQUFNbGpWZFBiQlY1d0FDSkVTRnhZM3ZJcSs4TlhFNi9SRHJzQUFBQUFB
+DQoganhpUGVNdnNWV2ZRZlBzV1RycjRYNjk3aHo4LytQUWRCcnJEbUUrVjlmb3JHbllBaXgy
+aW1yRE5qeG5NNDk0ZXRzMUR2c0FBQUINCiBiM0Z0eFgzU1lxcDh5QVJJQ1NKRFZlYitseTEy
+ZFc0YVQzWmNDN1FBQUFBQXBuTDExZUhVY3Q2NU1VUlZFY1VqcFRGVk11ZGFGMA0KIGptdktx
+aXE5dTB4VWFOZ1NBaTV0L092anNsZXFiVjVYRnRwMjlKY1k5ZXFjNjJyQjUrbXEwRWhJQmJY
+TnR4VjNTcW11anpZRWtTDQogQkpDUnlmcS9wcjlmWE5mRHg5dFhvaDNZQUFBQUloUjNMbW5W
+OG5ueVJYVk1Ja2lZbEZOWGthMXlYSmVOK3FSZnJBQThxTG5wbU8NCiBqbUZXMjZmWjFsT284
+WTdOazRrd3RQZWFpcUlqUWRTNmZnZFBHcnJlNDMzaDEwQkhoY1czRmZkSzdhNm84MkVpRWlB
+QWV2TytpYw0KIHE1N3dFbXYwZ21RQUFBRk5YbHp6MGpkdGIyVEY1c2tJbUVBaVlhZHVQSjU3
+MXowTm5wQklFZ1JlMmR2VlgybTJzY3g1ZkhKdWo1DQogRHg2aTQxclpiU0pvdnRSekU4WTdK
+YlQ2MjU5UjVmMzdCV2RjaFRHdmFIZmEzdUtlZWVzNWpUTjF6ZWJDWW5sRXdBUUQwNUQxN2oN
+CiAwV1k0YS9TQUFBQUFqejlmUG5ucm13NnB0V0x6WmdRUWtJSEYrMGNiNnN4bzJlaUFBQWlV
+UnMrOTh3NmY1ZElWZExPOHcvWEZydg0KIFNxL0hDUkVWSllmajNkOGQxMXhaNzIrdmRNUzc3
+emZWdUQ5dXkrZmRJUlVJbEtrU2lTcmtYWE9XUlpnaHI5SUFBQUFCVFVpTjkzDQogcmwvVDhm
+bXloSEV3SkFjMTZUaXBuajArSHZyOUVPdXdBQVBYcjNGZXorZFJVTTNWdGM0ZmJiczFHcDNu
+Qis2ZnB5dkc1S1VnUk0NCiBSRmx5SHRQbjExd2V2S1lYVnU5TnIxYnhjOTFZdktVNElFa0Vo
+QjZjNzZIcTNNODVlZnBxOU1KNkFBQUFBeVBZK0NkNHllZDZJag0KIG1xcFRNek1RSmhKei9S
+KzdjeDZ1MXQ1K21uY0V5QWVYckVXM1crVmI3aXEyZ1k1c3NwNFl1eWpiTFM4bTdOVE1rZ0lq
+SHd2OVNvDQogeTFkM2xwRzk0anFkRHhmZHNicTQ1VDJURTVlSzZ4UElJaE1GZHY3dVhCN3E2
+dGRIcEIzYUFBQUFCNGRhNVh0OUdUb2swelhrbEMNCiBGVUFJS29tWW5uT2xkNzFicTNtYUdq
+YkpSMTFSVFJhMVZaVE40VHhkZHBXTjk1bksydVJpOG5QaDNUbWZYVmZQcmpZc2I0WGNkWQ0K
+IDMweUxpd1lQbnZPYTVuOWN1cDNNYXNoTUpSTUlDU0FrUkhQTlY2bHlidlo3b20vWUFBQUFB
+dnJHMzRwN3hOcmM1L1BxUkpLSkltDQogS29KZ21ZSWkwNWgxcUo2NE5ucjNiK05WMWg4UFlV
+TmNyM0RCYXU3WHFuTEw2bmpwYWl2UGFBQUFNUk1aZnhqM05IekdSeEhmR3kNCiBYK21ibHF4
+eU91WUJFVlJLRXdFU1J4ZnRQUFZtcW9uUjZRVElBQUFEejlFYzlFMnptSFRzdm0xSWx5QlVU
+QWlVa1NJbURUOHhlYQ0KIExUYm5iZk42N1ZmbUx6SDRoTzFEanNBQUFCUldtTkx2Tm90K3Vk
+Y3ZNdlpPckxZdGR1cnF0a1F2eHlCQklRUUppY1prMFR3djN5DQogRmhkNlFkMmdBQUFBVmRz
+NFIyVE5neWswekZGVTBWUXFRaEtJVFVoS1VTUEQzUTBpbmVaNG5TZlhjTkk0czJZWjlZQUE4
+ajF0c0oNCiBqZTlXZDhNVEU2Y3Q2NFNTL3g3TjljZWUxUk9qeFpRN3p5UVRFd0FpbVlTbWFa
+VHFYUHUxY1duVFVMOXdBQUFBRWJ4cEdjcXk5Uw0KIG1tYXNVMVV5bVVJU2dUTk1rb2xJRW9t
+RFROejFQbnJOcUs4bTBJa0JyV3k2MTFmcmVFdTlOczUzbllPYjlSbTNMZXViWCtaYmUxDQog
+VWRVUkV4UEpCRlNCTUFCQWtBNTUwVEhSMXlTYmU0djlNT3V3QUFBRXhiY1ZkMW13djZQT21x
+aXBFeElBQWxFd2xFcEJNNFBPWXoNCiBsWlgrRnpXUGNFZEFNRm5mQ2U5RDFYb2RuMTZPazlE
+OE1qYm0yMkRSNGNFSUNTSkZLcUNCTUVDWVNRQURsT0w2SnpYdmQ3QzNVQQ0KIEFBQTgvU0k1
+Nk50R2g3M244dFhSVkVTQklFb1JNSlNoQ3FCTTR2SjZ6ek1aanc5OGU4SWtBQnJXeTYzWlh1
+VVZVNjhaQ2VSQVNsDQogQUVoRk5Rb21ZQ3FKVXpJZ0ZQRisxODVpeldVVHA5SUVnQUFCRWJG
+MHZsZlZNL214VkJYV0lFa2lJU2hNQVJLQ3JUZHExV20zWXgNCiBsMmdBQVRyR3pZRHZqYnFi
+YTUyWVlFeENSRWtwZ0FnQWlvVXhWRXlpWVFCR0h6STRaN2wzcEIzYUFBQUVNbjFya3ZXcy9t
+SW1GZA0KIFZWRmNFa1NCQW1BQ05UNW0zMlhVOXV5NndydUFBQWVYcVJxR3g0WFpOV0s5blI5
+MHQ0OUJNSmlaUklCQ0V3U2lTa1NFa0VwaVlJDQogNWRnOTAwcnZiSXUxQUFBSW1JWnZxWE91
+alovTEJ3bUVQUlJWRXpBQUlqVW9tK2VOdlJkcytxN0JTNTltRXpkT3NJa0FBREM1L3kNCiB3
+TnVmeDhzejdkUjU1blhMV3l2YjFOVmxRU0pnQUFwRWdFb2dFdGI1ajEzajNXcTRrdjJnQUFQ
+UDA4T2VPajdaYTNWSGxrQ1VTVA0KIE1DcWFKaFY0dEw0N2JMN1RrMkJ6M3JHOFlyRjNacS9m
+WnRDYzdLb3JwMWdBQU5iMlMzbm5NNlBsZlMvSmZXdmhrYU5lcWJwWmFyDQogb3o3M052NzNV
+VENaaUFBVXdTbEFxaEJNd01aeHpySEt1dFhzTDlvQkhoenpjRHJwbU1CMXluSmw0bHhqaElp
+UUFUR3V3eG0wV2QNCiAvaTNCeFlBMXpZOWI2NDMyMzlQVFJqNS9zL2xqYWRHWEZkNEFDWWsx
+cmZOSDJ5L0pwdXkzdW54M3NsTlNtL1VkejhkVDBaOTZlZg0KIHBmbkppWUFvRW9rQUJKcHVo
+N0JnTE5vVzZoQmJldHJmMTFLR2VML29kTlZQbm9tSmdnaVlSTVNnVHB1Wm96MzVNWmRnQURG
+WmF6DQogbUw3TGEzc3VuREdpYjVieE9KOU5ZMmVqWUhQUUFGR055dUR0bzNUVzlsbXpQcUdW
+MS9OMDZ2WHo5SEZtcWJ4aDhUcHk3ZkV4ZlENCiBCUUpKZ0FLYXRTaWVmcVBTL3dCSU83Rmw2
+K1ZWTnpUY2RCaXZYZWxTNHlTazVoTUVSSWdURUExUFpOYTJYSHNDbThBQlI2VVRHUA0KIDJ2
+VWR2MDRVU1JyWGh0V2g4VzdJb3JvMUthaWNma05Sei9BRnpmNEhONHZ1cmNKaWJNL2pvZlFj
+UkhWTEJaMmpZeEdYRmhuTkwyDQogdlhodVJaeFFKUUJNU1U4ZDIvUkowZWcwYjNqRy9WWjlM
+Mi9lWXF4VWVzSjVrSmtoRWdoTUNKaENKUzFEWnRhMlhGdUNxMEFFYWwNCiBzODZKM3h0ZTM2
+bHRsK1NRTGE1ZzU3dE41cGxkMnpzSGUxMzMybjVERzlWM1crZU41Wm5rZFFpWU5Jek9ZMGF1
+N1poVHBwMWphYw0KIFozWHNEWDlnMllxRXVvaUtoVGpyM2tEdXk5STg3ZDNyT3g5QjRvd214
+ekhPWkZSRVJJUklBa0NKRVJNQWlZMUxaZGV6MlBaV0tiDQogd0FGajdhMzF4ZDdMcXVRc3B5
+M3BpUEpHMSsyaGVzODd4SGw3ZDEyTmpuVVRiWEVwQUFBTkkzZkFSUHF4K1F6N1FpZFczUEhZ
+ZlQNCiBrMnNYMG9rYUpoT3JFNlB0MXpLSUVrVENCQ0pDUUFKSklJRVNJVENNWlk3QnA5Tisw
+REpzQUExYmFOWXMrNjgvaU1qbTRuVjhwbA0KIElUUG5hMWN6Z3Q4eE90M1orZ1RSWDNURTJ1
+b1RHOGVYSzhMTHJHTTVlN2pwZHh6bnpoMHJGWEdXbzBXT1gxcUs3ZG1heFU2MlhXDQogTmtp
+SXlDVy9EQ1lBRUV4RXdTUVFJbUpSTVRNd0pSSW1KSUJCSkFHbzdkNGN6NDE2enMyTGVIUFFH
+cjdOcnRIZkd6NG5XTTBpMW4NCiBiRWRZRE0rMFJNMnZscFhWZWRzZGJ1dFdPMjlZMWEvbklZ
+bUhxOGlkTVJ0bXI3ZDVIVlBVT1piRDVtbmNOUHozaFRvekk1NkJONg0KIGw2SG5RbUJFd1FK
+aUFSRlZJRXdCS0pKUk1USUFJU0lTSWlxRFVjL2Rham4wYlNNMm9CVFVtTlgyakNXRThiUnJm
+bnNjdE53dHo0DQogWDVyZkg1cnkwVTRMWXZEM21OZHh1ejY5dGVDbXJkRStsMW04TXJ1M3A4
+OWRWV1ZsejF2RzNZak1ZOTRjOWdmLy9FQURFUUFBRUUNCiBBQVFHQVFJR0FnTUJBQUFBQUFN
+QkFnUUZBQVlSTUJBU0V4UWdRQ0V4TWhVaUl6TTFVQ1EwRmlVMlFmL2FBQWdCQVFBQkJRTCtt
+Yw0KIDVHcEx1NHdGUGN6VEs4MHArSWtjOHVSWFJHdzQvOXpaMllZTFpjeVROVmpHdDRRb3hM
+QThPTU9LSEV1NGlSbExtRWk0ZmEyTHNKDQogYTJUY0J2NURNUTdlTEsvczdlNDVGYXo4M0FR
+bnk1QVVqVjBhWG1BYmNTWk1tWGhvMnQ4WG9oRnBBMll2N0c5czExRzFHcHhHcFINCiBFY3h6
+MVJFVHlpeGl6endhOEVOdnN5cktKRndmTWpNRnU3QXVIUzV6OEwxVnh5dXcxeDJZWlBzQjRI
+ZnpXTEh6SEdjb0pRVHB1WA0KIDlqMndtTjAzRitsTFlzZzRFVmhtZXN2MG4zc2VPc3F5bXkx
+UVRkZGhVUmNJeFdMRXVaY1hFRzJpeTlxZkpiRGpLNTV5N3FvaTRqDQoga1BEZlYydzVucTJG
+Z0NFT2RaU3A2c1lqTjV3MFhFQzNrUWxoVEF6QitkN0w3eVo2RDJhNHByWHFyNlZ2ZE5CaFVj
+UW5valVrY3QNCiBUYnNtZVYzTDdTQ0pORytpOXV1S0d4N2tlK3Z3bDFjS1JXTTVmVWMzNW9y
+WHVFOEw2VDNWajZhRWRHUEhLMHdkNjh0Vk01akVZbg0KIHF2YXVLT3c3Mk53bW5TTEdCcnkr
+bTVOVXl2STFEdTVoczFUREdvMVBXY3FOUUp5c08rem5QeEh1Wm9uWGRvMmJEK25xMGhPbmI3
+DQogbDlZOW9GamRQWWV2VmZ4RW1wL1ZDdkpQMjVzcGtPTzhqNVIvVFVqRXdwbTRRaXV4K291
+RDlWckdwb25HT254NnIvM2R1N21kOU0NCiA5SHFhckdxSjBsQVpiSGdWUEJHaklvQjhjMnI4
+OGZsNnRUbGI0RjZpWWgxS1NndW9TWU5WelJZYzV3MVJkZHduM3QrM1p6Rk83ZQ0KIE9Odksx
+ejJ0d2lvdTg1ZVZLK3VQWXJCclkwTnZsbTc3dUNJcE1JaU5UeXI1U3daU0tqa3dZQXpObDBt
+bUg4d1NiUlB2Yjl1eklrDQogTE1sUW9jbWU2VEJnMVVVYWZPN1MxNjJCbU5SalBQTlE5WXly
+cGhqT2JaZTNuYmw2VDFvZkdYRkZLSE9yVFFzTWNqazJDZmUzN2QNCiBtbXFuVE1EWXdJNThs
+Wjg3ZDVISExFQXlNRFl6Q2NRcTRRL05GZTl5azVWUmRVeFNrNk5wNEttcVc5V2pFRVZDSjVs
+KzhhNnMyVQ0KIFJFUy9QMjlZSnZLemR5dURyVHRoNm8xczJTNndtZWNZeElSbzVBVDQwdWpZ
+dUN0TEhmemNoa1hWTU5zQjk3d3UxMHEzVlRaRmVqDQogbFkveU45SXE4MGJhemEvZWQ5dVV4
+NlYyeG1hVjBJQTI4ck5pcms5bk54SWpqa0R0YTBrUEZhL3FRTVhnT2VOQk4xNG4weFBWOWcN
+CiBHUFZQNmMya2puQVJoWXh2RS83Vk8vbnJOck1xODFudWsvYnk0bWxSc1psSjFMUFpPM21I
+VXlPNWc0VkVjZ0JOQXpFcE9hTFNuWQ0KIEdzRkZKTlViR2pid3M0QTU0SkFTUWplQy9US3Bl
+YUZ0WHE2M202WDdLRDVxZGkzL0FKM2F5d1RUeGxQYXlOUjFxdFo0MkVJVTBNDQogcU9XQWZ3
+eTZmb1dPMWQvd0E3dXY4QXN5d3V0UHNYVE9TNzJxTi9UdGZCamU5bko1ellncGdKMFF0Y2I2
+OFh1VWI0eFduQnMzaWENCiBYZTZ2MHlrL1dGc1pyRHlrMm9UdW5hY1pEK2tDcEYwb0pTTkVN
+V1lZUkRJdXFlTWdBNUlyS3VMV3Zhdk1tRitVeTFMNmI5bk1qZQ0KIFd6M3NxUDVaT3hZeGts
+eEdJNWp0bHk4cFdyek40VzM4ZVA3TXhDSWFyWUo3bjE3SERoZVJHdGUyeWc4a3RwRWR3Y3Jt
+UHJwYlprDQogYll6WXo4MjlUUDZWeHM1aXJsWERIY3liQi8yNjkvUEI0VFdkU05YbDZzSERZ
+NG12OGxYUkR5WHpYQ0V3QTROVXlmRWt3SmNSVU0NCiB4Y1YwN3NKUTN0SXp6ektIcTFiRjVt
+YnIzOUVqVjFUWVhGMVZMSGV4eU9UeDEwZGg2YXR5NlhucitNQi9hU2ZPVEtGR1k3cnoxWQ0K
+IHhyR2tUVm1YVi82N0JvTVl1RzFVSnVHTlJqZk9RUHJCQjhKdW1UbUhSSDY5YnM2ZkZ4VEtq
+bVAxWHdJbXJSUDVreGw4M1JtOFRoDQogYWRnenlvbUIyVVYrR2xHN0d1SHk0NDhQdEE0Y2Fi
+SndDSXdidU5GK2svY3N4ZEMxM3NxRjAzTFNuRE1RNHpSQ0p3YzVFVHJKam4NCiBScHNQVlJ2
+aHlHeVkvZzRJMzRXQkhYSDRkR3cySUJ1R3RhM3duVGxpRlk5cEdML2pYdTVtb09qdDZwTDBM
+ZmNsUnh5UjJOUWFIaA0KIENJNUtlQWt4ekdOWTJaV1I1VFZhNEJjVjh4MWVZSldHWnRtRzBv
+eHVmVXliZ1hWaHdqcEppYmR5RHVLNEM2ajNTTHlMR0oxWSs3DQogbVN0R0xFSWFCaVRMSXBY
+UWtzaXhXakRjeHkxRTBlRnI1MklFYXpobFlxcTNZc1phd3hoSzB3OFRZN1pNZWlLcG9OVzd0
+WisycWENCiBwTEYyMWp1dlRWdVdqZFN1M2N5cC9pQlZIQm1CUmtHaWMxMWFHSU1Nam1UbTIz
+b2ptdmlTSzhnN3FQZzF3TlVwNHI0d0xjUzhrUQ0KIDdaRWZielFEbGR2WlpMeVRkMldCc21P
+Q1FTcWUxelNNL0MrUTgyV09HQ29FVXBOMTRSUFZnaGp3V1l4aXVtcnBTUjNnQnQyVWZ1DQog
+b1lWL0x1eGlkdlBUZU1KaDJPbytrdllXbUdVYkd0cEhLc0haSWRqTU9uTngzcnNkNjdDVHNI
+bE9Kd2d4bEk3ZHR3ZHJaN3NoTlINCiBWaCt2QjlHdi9Sc3ZONzBZaHBibjQvOEF2Z256aU5D
+VnlvaUltN21XUDFZVEY1bTdpcHJqS3BlYUg2TmduUXVmT3cvZW1Ta2pKKw0KIEt1MWl6Mm5J
+SmlsSWxjM0RhOFNZWUpqUFFJMUNESUx0cGU3bDBuVHN2UnpFbkxGYjh0OHAvNzl5M1Zpb3VL
+NWY4QU1oZjdYcDVuDQogajhwTjBCT2hZZWpkczU2dUEvcVEvS3hiOHloZFVid3VURU1DcEto
+ZjdYcHo0NlNvZ2RVVGNQOEFESUwrcEM5Q3kvMEtiK004ak0NCiBRakNSaU13djduU0xpR0Fx
+SDlTOEIyMWp1RVRWbVhDZFNyOUMwWFN1cUU1YTdZSithLzliTUVidUlBbmN6TnpLai9BTkww
+TXd2NQ0KIGE0RE9RT3d2eG1MMW5JaXRPSHRadTVsaDNMTTlDeFh1YmJac0Y2Vmw2K2FBY3BO
+ekx5Lzl2dnlDdEFDb1k1eWJOMnpXRkZKMVkzDQogclc0TzRyd3JxemJvZjVuaW01UElzK2Ex
+RWEzWkt6cUNyYklVUU1heWl5SGVzY2ZienR1aS9tZDRraVJQUERhdFZKMi9pTGR6YTgNCiBF
+dGdiSjBHU3g3WHQ5VE1ndW5ZN2VYVzgxdHUzTXdjZUhsNGdIUUpzVWNzRUU1QW0ycmNDbmhW
+MGxKY095RzF0MHNVOEYwR3dITA0KIDlUTmJOWXUzbFZtcGR0eW8xRHp5eVh3NEE0N3BzSmVy
+VnptelEyc0ZKb2E2V3BrMnFkZTFuWmdDcElVWXFIQk9nc2s0aldCQUVSDQogZFU5SE1ET2Fx
+Riszc3ZYUm1XaGRPdTJpa2FJZk1hM2NJVEFzNFRtdWh5UlBRb3JpRzdXSEpiS0JzMnFLRXJW
+YVVVSFdGTnhJQU0NCiA0eG1MVlBZNUNOOUMxVG1yZ2Z0YkwwVjdvb3VoRzJTa2FJYUkrMk1t
+bW5FakVJeWhlbzF4TUd0Wk5hcU9ic1NCb1lHWHpLc2E3aQ0KIE9NR0JKU1ZIdzlxUGJvU29L
+QXJEQzM3UC9Rai9BTFd6UUE3aXcycERuV2N4alVZenhLdmJYbURpWVlVTno0VXJaMTdPN3hN
+YitHDQogVDlkZURrUnlQUWxTVUJXSEZ2WHJ1V3FEKzM0TDhZRTVYdDRFVmNWY1JJY1BadVpU
+Z2hneG14SS9sZS9FUWE2anhid3U3alZzbnUNCiBBN0YyTlh3b2hra1JwUUdTUVZ4SGdMd1ZO
+VS9QVVNCdmFSbTdta25KQWI4SjRTSGFNRzNsYmh6a2FtWG9ITXUxRC96TEx6dFdjOQ0KIGRV
+azZ0Znd0QkxCbHNjajIrYjJvOW1XbnFzSEZ4QzdnVmZLN29IQjdXdmJIZTZxbGJ1WlM5U2I0
+dC9VTGh5bzFLaXRkTWUxTkUyDQogYmMzUWdWb2VoQzg1U2F4c3VyclVjQ2phVVVCWFE1T3hU
+ZmxzK0ZvRllVb1QwSXpoS0F5U0Nza3ZqbTIzdVJyU2s3aVo0R2ZxckcNCiA4clh2UnVLcW5k
+SVZFUnFiVjJ2UEkrbXcvNVpscitNNDNNTlpBSUVwSmNmaTVlVnNTWUdWeHF2NXZnUnFQWUht
+clp2R3hpZHlHcA0KIG05MExhekhLNk1NYmVWbkVwT1JvazVFamhQTGRXMDRvdTdJL05tRFlk
+OXVXUDQ3aXVKNDFycHJISTV2R3poS05ZVWhKVVo3a2EzDQogTHJWZUxqWlJHekkxWEljUm5H
+eEU2T2FNWmtnT3c1VWFrK1FzMmR4ZTdUQ1ZNOTc0VkN4dUJzWU5tNi93RDlINXFjOWNmbVI0
+OHMNCiBmeDNnWVRUQ0M5OVpJNHI5S0g5SlpEM1daUWphSWZGY1hRVmpHRzlDTTRPUkhKRWN0
+Yk8yTXh6dW1OamVWdkI3L21ucU9pdm9FLw0KIDhBUStaUnRLTnhDVTU4dGZ4ZmpLakRsQzZj
+eXN3S3pqUHdzeU9pUHRCcTZGVHlpdWpSeHh4ZUpCdElPc1ZZOGpqWVJVbHg2ZVdzDQogaVA1
+V0V0a09QelBNWENycGlPTTB4OVpWQ2hwNk5qK25iN0V5TXlVQ2pPa1hEN0NJekg0cEJ3bGhE
+ZGhoR1A4QUEwU09iQ1ZVTFUNCiBZbUNUWXZtOUEvaE9SWVV4amtlM3dLUm9oejVickNWcWlZ
+WXJpdWgwUkNLQUl3TTlLK2JveGk4elBJNVdBRTBzMmRodE9GWE1ybw0KIGpjTERpcGpzSWIx
+ZlZDVEFyQ1JEZXh5UFp1WGpPcFYxN3VlRHhPTkRDcFRLTi9oZmdteW5obzVyc1I4dkJhb0FD
+anQ5U3lGMW9ODQogU1hxd1BLMC9XbW9taVRKd0l1T3JZUzhOcWxmaUpBQkZkaDdHa1kxeEtj
+b2lOS3p4ZVJnMEphd2g0ZG1DR21QK1F4c0N2b0w4TGYNCiB3ZGJLN2lGZzFieHJDOExacWdm
+N3NEL0dzL0s3UlJvMmRMbjRpVndnY1Ywd1NXQWVJOGtVbEhOUnpZejNWTXBQbmdZd3d0azVn
+Qw0KIDNCYk93UGg2YTQ2MGR1RWxod01veVlNTFhGV1lNdU80QW5ZbFZyVVNQYkI3WkxkcnNm
+aXFNdzF5UGE5aUViN3Q0eFFxMXlQYjQzDQogdjVtdFJHdHhMbmdqWVF0aktYOEpjYkFxaUdQ
+QXhzRW1KUUd5QVFMUmtKa203a0h3NFNsZXF0RzAweFZ3dXJsNHhuSzhBaXJEbE0NCiBjajJZ
+cUJETEkvb1RqYVlWTVJ6VytOMngzVFc2aTZXRXVjOEZiV2pBM3dseXd4V1NMT1RKd3dUVVhC
+U0lOaFN1S3ZneGlrZXh2Sw0KIHh5Y3pjdkhWUjJKdTNoMUllakMvb3JZYXg1STNvUWZpaUlt
+TDM1NE9jaldtcytaUW5sU1FkL05WNkMxZllPVk1RSEwxY1dDcjF2DQogQWJIRWRIQ2dXOElS
+T2phdlg4U25mMFpXSVVkYzlZa255dG96cEVaTEUvSzJISWx1RUpnVzVnamRBcmROTUVHMGpS
+aVlQaEpBaGsNCiBJSjQ4YTQrdUJSOWNNY0lhZFllT3VMSGNDeEtLSjQ2aEdKWCtQLy9FQUNV
+UkFBRUVBUU1FQXdFQkFBQUFBQUFBQUFFQUFnTVJJQg0KIEFoTVFRU01FRVRNbEZBSXYvYUFB
+Z0JBd0VCUHdIK0licGtEanluUnNZTjBUZkNEU1Y4UlJhUi9TQmFpaXJkZWs5am5sTmdBUWFB
+DQogclVzdnBIeUNFbERwMThUVjhUVVlBblFJc0l4cFF4MW5KQ2J0RVY0bVJseWJFRzVsb0tr
+Zy9FUVJyQ3l6ZmhraXZkRVY0STR1NUENCiBWNHBZL2FxdElXOW84VTdLM3pqajdrRzlvOGNq
+NkNKdE1GbER4VGovT1RSM0dreHZhUEFYZ0l6b3psZk9VNTVkcEEzZlV5VXZrLw0KIFVIQTha
+Uy9YS09tYmxNbDdqbkkvdFRuWGdOMUhEK29iYXVhaHVpRUhFYzR5L1hJa2xSdDdSbHdwVFp4
+aGo5bkR1S0QvQU5RVnJsDQogWDJwcmc3V1g2NU41QXpkd2p6Z3dXVUJRd2VQYTVDRGQwUXUr
+Z2krMHg5Rk1lSGFPNFI1eGkrMmJ1TVl2dGszUjVvSTZzY1dwa2cNCiBjcVVyYU9NZjJ6S2Rz
+Y0JzVXc5d3g5NlRZdGQybE1rVXpMRm80Tk5HMDNqT1lVY1lwTzFBMk5RVTduU1Z1RkprZjZw
+ZHVFMmNnSg0KIHp1N0dJMjNQcUJreVR0VEhoeUpSZFJUeGU2QnRIZEdKZkVVSVVJd0Z3cFJZ
+ejZkM3JPWVczTnJpRTE1Y3RrMTFCWG1RbkNqV1VaDQogcHk1eUlzSjRvNXhPclM2eXBkdjRt
+eGx5NmlJczNPUUtoZFl6bkcvZzdpb2p2aFY4S1BwcjNjaDB6QWowN0U2U09FS2VZeW04K24N
+CiBkUno2Z2VGdk9IVC9kZFZMSXgxQlF6dWRFU25kVkorcHppNzdlQnBvcGpyYmVVb3R2aENi
+ckc3dGNDdTlqK1U0c1l3aHFQaTZkLw0KIHJJL1ZPNThBNVRjSlRzcjhjVHUxMlhwU2Zid1Jp
+empJTEhsaU5qS1g3ZUNMakVwNG8rVHB6azg3NUFFcjR0azEzYWdieG1DWTBPDQogQ2ZIWGk2
+Zm5GNW9JNHRiM0pyQTNTVnRicU45WXZGaE5ORmNoU1Ivbmg2Zm5XMWE2aCtJRnBqYUdzZ3Nh
+UnZ4bEZGUlA4QVdra2YNCiB2d2RPTkNtN215cFpBMGJKeHZHRnQ0SGpRR2sxMTRUTGhNZGFP
+NmtaV1FDamIyalI3aytZRFlJdXZLRWJZRkhTTjFhMnBqbzExSQ0KIEd3aUxUMjFqQkhadlNT
+YXVFWEh3UThZRTBqcXlSZHdUbm9tOVluK3RKRzJFUldyRzJnV3hoUG52aEUzNFlUdGdUYStG
+ZkNpd2pTDQogOFJ5aHBLelVHa1RmamhkUnd2ZGJsVUJwSXo4MXRXclFqdmRBMXN1NU9GK2Ni
+Rk1OalgydTYrRjJxazk0cE9jclY2d1A5TDJxL2gNCiBpZjYxcFhSWEtlU0ZkNjBxMFpzVTNY
+LzhRQUpSRUFBZ0VEQlFBREFRRUJBUUFBQUFBQUFRSUFBeEVnRUJJaE1ERUVFMEVpUUZGaA0K
+IC85b0FDQUVDQVFFL0FmOEFHRUpoWGJyYWVkMTliOUtyb1FURnB5Mmp0ZnRXbVRCU0Urc1Q2
+eFBxRU5LRUVaSXViSmJyVkMwVkFNDQogeXQ0MU8yQ0MvU3k5S0plQVc2blRXbU9weGJOVXZB
+TGRidGFFeGVUQjFWUE12VEZGaDBGZ0lhMCswbWJ6R2ErbEZkV3I3ZllQa3ENCiBZR0RaVlBN
+bC9rUlh2bTdiWXhKeFNuUE5haWJoQ0xHQmlKVHIvd0RZT2NIOHpRV0dYa3FHNXhwcFBOWHFN
+aGlWd2ZaWEZqclNxbA0KIFlHM2F2NWtQWVBNbTh4SHNHRlZMaWNnd3R1OWdtM21BV2l2YUsx
+OUd5SHViZVlwN2xXSDlhS01GWXJFZThNYmc0ajNNdys0cnlNDQogZmtEK3RFeEJ0RXFBeDF2
+ait3WnNPY1VhMEhPb00rVU5FT0xOS1UzbkpEblVIT1N0YUJydzhld3VMOFNzbTVidyt5OER6
+ZlBzaGINCiBTbHdjMFA1blVIR1k0bFdvVEFEN0VyV0ZqS3RqNWw1QkZOeGtPSitaSG9xTGVm
+K1MyZDVlVXNqRVBHYmpubzJ5b09NYlMwdEZTOA0KIFZiWm9iSE9wMHRnSUxTM00yaVc2Vk44
+bTVIU1lkUkxSUWV1bWNqNTAva09DZTlnNE9mNzBWRGJGUGUxRHhsKzVreHpmSlc0Z1BYDQog
+VHkvY2lRSWFrdGVIakZEQ2JSS2wrcFBjV05oa3pXak51MFF4aGlEYVd1SjVFcWRLZTYzMGM0
+azJqdGM2cWRIR0tHOFpkS2RUODYNCiBLZW81NWp0bFZiQWFrV3dwNk1zdktiNW9MRFJqekMx
+dk02dnVBMVlRNkVSTkdGNGVJRGFJMThVRnpvenkzUlY5d0hPRExOc1ZZQg0KIGJWaG9qV2dO
+OWZaY0xHcVg2cXc1d0UzemZBM1FkS2I5OVVjZEN0cGFiVFByTVpiUXZhRVhsb0Ridkl2Q0xI
+QzAzUzhWVEFrcFVpDQogNXNKUytJcWV6YXMrVmJkeEtxL3N2eEwvQU9HcXVIdWlLREVzclJ6
+dU0rTFdWT0REOGhCK3l0OHpkL0t5L3dEMlB5SWRmLy9FQUUNCiBVUUFBRUNBZ1lHQndVR0Jn
+RURCUUFBQUFFQ0F3QVJCQkloTURGUkVDQWlNa0ZoRXlNelFFSlNjUlJpZ2FHeFEzS0NrY0hS
+QlNRMA0KIFVGUHdraFZqazRPaXN1SHgvOW9BQ0FFQkFBWS9BdjdOTlJBR2NTUjFxOGt4MVlT
+MG41eDFsSldZcTBkUzdNVndHa21mRW5uL0FIDQogcmEybk9DWTZ4WlEzNVJGZzBkRzNZMk41
+VUJ0a1M1NXh5aVNsMWxaSmpxS1BabVRGamlVL0NPMVFmd3gxeklXTXhBQVhVWGtyKzUNCiBs
+aWlTVTV4VmxCV3MxbG5FNlUwZHJFNG1BM1hDQW5uQkZFVDBpc3lMSTY5ZFZQbFRoRmcxYXFF
+bGF2ZGdCeVFaeVhiL0FIRTBXaQ0KIG5iOFNod2pubnFLVXk1VkppYnppM1B2R0xKYTNSTmJL
+UnZLaVRTTGZNY2U5ZGM4a2Vsc1NvektsY3poRm5SdGZkamJwU28ybmx4DQogMnE0MkgxaUxL
+UlAxanJHMjFwaVQ2Vk5jNG0wNmxWNzBMVnJ5L2tJdHRVY1RlcWJmVEpLanZ4V2FVRkRsM2lx
+MTF6bVNZdGNMS00NCiBrR0puYU9adWJRREUybHFiVm1reWlUdlhvK2NTU3VxdnlxdWxPcjRj
+TTRVKzlhczMxc1ZxTXNqTlBDS2l0aDd5azQ5MW02cTNnaw0KIGNZSW4wYlBsRVdYMlI1UlVl
+NjFuNWlLektwOHNyam9VSHFtOGVaN2pOSmtyZ1k5bnBVZzV3T2ZjeXpSWkxkekJzRUZ4OVZk
+WjRuDQogdVhTMFpSUXI2eDBic20zOHA0Nnl6NDFiS1l0eE5wN2xaWW9XZ3gwTDNiSStmY0xZ
+TkdvUjVLWEhQdWdVa3lVTFFZNkNrbVR5ZU8NCiBlcjBZN05yNjkwUSszdkpOdk9FdUozVGZt
+alVSV3g0bGd4SWQyQ2traFl3TVNYMnlkNGFWdXE4SWlzcTFTdTZTaGRIWHZObXowdg0KIHZa
+S01yYU8rckx2RXpoSFNNS3FSdFVnL2tJbXRmU3B5SUVNdHRUU1ZHYXU3SkgrUVN2ZWpidGZY
+aHlncVZhczJrOTQ5MGFpamwzDQogYWpyNTNpblhNQkNxUS92SDVkMHRWSEdMRzFHTEdseGEy
+cE04OVVuTTkyWisrTHpva2RpMGZ6UGNnbEFLMTVKaVpIUXA1NHgvTVANCiBMWDZSMkNGYzFD
+TmhwSTlCcG9nKzkrbXBKUHhNU0dHcmpaeWdPSXBjL2hoR3pTdmxGZ0RpWWs4MnBzOHhldGZm
+RUM2NkZvOWE3Wg0KIEhPTFRGbDlNeE1kV3g1czQ2cHNWdk1kZWgvai9BRTA1Sml6WEIreFdi
+UkFPZWlUaUVxSE9DcWhxcSs2WTZOOU5WZDIxOThRTHBkDQogSmN3NFJKb1ZXL09ZcnVwNlow
+NEJjS1ZJSnJHZFVjTDdwSExLT2svbkFTa1NTTEFMaHB6eUg2eGJHM2h3dVpSMGF0OXN5MUty
+cVoNCiB3VkltNHg5SXN1V3Z2aUJkQjE3Wm93NFp3RW9TRXBFS2QrelRZa1h5R0VieXpDV214
+Skl1VnBkMmlzU1NPY0FyL0xYSWFRVlN4aQ0KIFRnS2ZXTE5GWGc2TldSd2hWSW91ekxlVEhP
+NGIrOElUNlhVaERoR0t0a1FCeHZuWHpnMktvOWJrazRDQzZyc3h1aTQ2Um0xUGlTDQogZU1C
+VlZLa25FWlFWVVZSUXJ5OElxVWhGVTU1d3k0bmdxSmpBNkZVWllLRmVFbnhhWCtZaGxiZXk4
+RVFXbmJGalhCNXd5YzBpN28NCiB6UEJSbmZsei9JcTU2TkoybkRLQUxrQW5xbkxORlI1SVVQ
+cEZadmJaLytNTUs5d2FPbVIyck8yRERUbVkwR2owTk5hMjFmaGdDbA0KIFVoYXBlRkJxaUpJ
+RlJ6Z3ZqSFEwa1ZWL1hXTVVia2dENVhiWThvdmpESHgrdHloc2ZacHUyMW5ld09nZzJpS2lN
+SjZIaHdLREcyDQogWlZTUVB6aXZTWm9aOExlZnJBU2dTQTAxVjJLOEtzbzZLa0NXU3M5WlRY
+RkNydHdaSkgwdmxReDZYTksrSDBGMjh4a2EycTZWR1ENCiBxbUE3U2JlS0VINjYxUjRlaXVJ
+am9uL3dxejFWdG5kZCt2OEFwdTN2dWo2WHl2U0dmVS9XNWVKOFlGM1Yvd0FnMVpmWU1HM21y
+Lw0KIFJjRnAwZi9VVkhRUzBkMWVvMjhuZVFad2h4Sm1GQzZjT2FSZnVJOGlybG1rajdodTZP
+djRhaTFaUTNQZVdLNnZXQ3R4VlZJeEpqDQogbzVxRXpLWmdFYXhROGtLU2M0bUp1VWZ6WlJN
+YVZVTnc4MFhTRmVZWDlJYXoycmxiU3VNS2Fjc1dneU4wMHJKVUE1alM1OFByQ2MNCiBvY1Mx
+YWNvQ1VwTll3MGxlOEU2NVNzQWlGLzlPQldrV3JHVVpIUWwxdmZSQ1hFNCtJWkc1b3p1Umxm
+dC84QWNGVzY5cllHMG5mQQ0KIDR4TVhKT1VVYys0UHBwY1RESzgwRFJYRFNLL21sYnJ6TUZx
+aTdMUGlkejlJcW9FZ0lXOHBSUzhwZGlvMm15NDM1a2lMVCtjVENxDQogeks5NFRnTFFacE53
+cytUYWdHK2JlR0tEQUl3dVpIakJwRkZIVm5lUmxGbXRWT2d3bEoza21Xb3VqdVdOck5adjhB
+YjZYRTNGU2kNCiBidlZVZmdqaXFLcUJJUW9RT1JNV3gxaktURmpDZnpNQktSSUM0VzJjRkNV
+RktzUWI0dzBlSXNOMmFSUVJieGJFVlZDcXNZZzZ2TQ0KIFJ6R2h4azRPV2pVcXE5UVJ3NXhW
+Y1QwN1F3V01ZdGREWnljMlRHeXRKK09qYnBEU2ZWWWlUU1hIVDdpWmo4NDJRbWpJL014WE5a
+DQogeDN6cnRPcFNxTWNVcm45TDExUEJlMEw5K2o1R3RlVms5Vzk1aEhSMHBNajVzOU5zYnFq
+RlljY2RDWFc5OUJuQ1hFWWNkWGFRay8NCiBDTncvOEFNeHVyL3dESXI5NHNiSHh0alpBR28z
+WGJQUW5GZVVCYUROSnRoQ3ZDK21SOWIxbWtBWWJKdjJqNFYyRzlMYnlheVRCWA0KIFI1dXNa
+Y1JCUDFqcDN4MVEzUm5Fa3BBR1VHYUFGK1lZd3BoNnhRK2VqTmhXTUJiYWdvRzhVaFlta3dH
+MTdWRVVkaytXT2tSYXRCDQogQzB5aHQxUGlUZVBJNHluQ2I1RG5rVUREYm5tU0RmSmZZMkt4
+a3BNTklIQkloYmY4UEc2TnB3NENCU20zd29ud0VZeFhVT2pmVFkNCiBZMkZJV21KRmljQ29u
+WU9LVEFtSkhqY3BYVUtrenQ1UUZvTXdkQzIxY1JaQmJjeGJOUXcvUTE3cE5kdjB2SlErMGND
+YXd2akNVbg0KIGVRWlh6YStDRmcvT0VFWUZNNGZTeWtDWW5aRGRYaFlZY2RRTnRlTVNtSjVY
+aFNvVEJzTTRMbEIyMlR2Tm1KUGhUU3NsQXhWb2FWDQogUEw5SVVYZTBXYXhoRkphN1ZnMXZo
+Q0hVbkc4YXBJKzZxL2ZZNExGYStXMDVnb1I3TlRleDhEa1RCQlNxQzVSM2xOcEptVVFWdW4N
+CiAwR2NLcHRJTnJtNk1oZlRXMGcrcVkyRUlUNkppUXRQS0xVQ1VLcm14U3BwR1Y0NDF4SXM5
+WWtjUlpmTU84QWJiOG9kU0ZKeWdxbw0KIE5JVzBjdUVmMWlmV1VMY3BLeSs5Vk5waEtWWW9O
+VDhycTFVYktTWXNSRzdGcUlra1ZSb3JyM0JmS2x1T0NzTDQ4b2FkNGtkeXByDQogQjRxcnAr
+TTdpYWpJUkp1d1p4UFZrTFlyUFdES0pEQys2VkkyMnJZQnZsdG5GQys1VVYzL0tDZy9LNEhw
+QXNuT054TW9DU20yRW8NCiB3bkcrcUxTcFhyR3drZHdLVGdSS0htRDRWYlBwZkxiL0FNZzdr
+Mjl4YmNCZ0hsci9BQWhPaHYxaEhkRzZVa2U2cStvN3ZPWGNxUg0KIHlRVERTdVd1bGNTNHhJ
+b01JTWpJUTMzUnhzOFJaNndVbkZObDdXOHBoaFdhQjlPNDBqN2hoajAvWFhJTVdiUWdJSU5a
+WGhqczEvDQogbENWRkpDUjNYcEJ1T2k5UHBEYzhVMmR4cEp5UVlaRnpSazhBZ242OTNVVWpi
+UmFJQnZhUWp5cS9mdUtrakZ6WWhDY2hjc2U4M0wNCiA2OTNJT0JoNWs0VG1uMHZhUWpPM3VO
+SFlHRFcycjVYVkJlNFRxOTRZcEE5RlhxaDduY0Z1ck1na1E3U25kOTh6SEljTHF1TjVzaA0K
+IFEvT0dsK1pJUGQza2NaVEhyRnVJdlB3SHVBb2pYWXQydUg5UHBBQ2NCaGRMUWZFSlFxajBn
+bXUyb2dXYzRxb2Myc2ozZDluSXp2DQogUHdYNm1LQ2VqYVFaTGUvYURScVJ1T0dhWGNKM2lI
+Q09yZkZYME1iYUFGOEZqRVFhSFQ3YXVEbktLeUNGSnpIZFczQmdzVzNpMVoNCiBJbGZMVFg2
+MVFra0NFSmEzMDc0NHpndHVmQTVRYUZTKzBUdUs4d3UxVk8wVHRKOVliZXp4aGxTMDFrUEpx
+L1NLOUFWTnZpMG8vUw0KIENtMUR5ZDVCN28wc2NGM2xLWHpBK3Q0U29nQVp3V3Y0ZUxCdk9u
+QVJYVVM0OGNWcWoybWg3RklIL3VpM1pkVFlwRVdiTHlMVUt5DQogTUZwNFZhUWl4U2J0K2ht
+eEt1c1IvdndqcFcrMFpOY1FoeE9CZ0xCcVBEQlk0UUdQNGlLcXVEdkJVQWpEdVQyWXQrY0o5
+THBSZ0sNCiBPS3pPN0szREpJeE1jV3FIODFRRXRwQUEwcHB6R0FzY0dZaERpTjFRbUk5c290
+ajdlUHZDRXVJNDRqSTNURk1SaTJaSzlEL3dEcw0KIEE0cFVKd3VncjNUdHQrbitqUVVPcHJD
+S2o1TGxESjJWY1VRRklNd2U0dmpsQXVrTkozbG1VTnRqd3BBdWl0WmtrY1lydVRUUkVuDQog
+WVQ1b3N3MUZKT0JoK2hyK3lWczh4bzlvYkg4czZlczkwNXdDbkEzSzJ6NGhLRlVkZSt3YXY3
+UWw1cnQyYlJ6aEsvRjRoa2RCU28NCiBUQmlzMEN1aUhlVDVZRGpTcHBOdmNIdlNCZGRNZHhx
+ejF1K2hRZjVWcmZQbWdKU0pKR0d0Um5lRHc2UDZhRk51Q2FWQ1VHZ3ZtWQ0KIE5yU3M3cHRZ
+M0tSc24xMGRNbittZU8yTWpFeG9rb1RFZEt6TlZFSjIwZVdBNDJacE4rK2VYNnduMDFpVHBD
+RVdyVndoTFkzc1RkDQogQnBtMTl5d0NFdEo0Y2M5ZExveGJXRlFrOHRFaFk0amFRWTI3SFVX
+TEhPNUtrN3plMkliY0dDaEMybmQxVUdoVW5mVHVIekRUSTQNCiBSWFJNME5lSThzQmFETkp2
+Z2p6cWxBMVpjVEFHaVpqMnQ4ZmNCdTNxVWV6UnNJNVhENDl3d3l2TWFVMDFyczFtVG8vWDZ3
+Rkp3Tg0KIHdVbkF3cHBXTFM2dWdPTldVaHUxSmkyeHhOaWhrZEpTc1RTZUVCbFpKb3Joa2cr
+VythWkdDUk02MCtBMFRNQjk4U1pUZ000QUdIDQogQzZlSTNpS28rTU5JNVR1SFI3c01jcC9Y
+U3B0WTJWQ1JoZEJld0ZyWnpGelQyK2RiU0thd05nOXNQMStzQmFUTUhTcHR6QXg3RFMNCiBq
+YU96VjVoZUZSd0FoNTgrSTZ0Uk1Tak04SUQxTW1HL0NpQUVnQVpDN29UUEJTNW40U3VWUVB2
+SFVDMnJIMjdVbUF2eGVJWkhVSw0KIGpnSVBSS3RHSTAwMCs2TkpTc1RTY1JIc3JoNmhkclov
+VFUyZGwxTnFWWlFVdWJMeUxGaTc2Sk8rN3NpQU5UbkZaZU1WYU1na2VZDQogeFhjNngzTzla
+SGxibmNtUHhuVkZLYkhVT25yQmx6Z0tUZ2RUMnVoMk9wdEl6aExxZU1GU2pKUEV3OVNsaVNu
+VnpIcHFGczcyS1QNCiBsQ21YckgyZGxYNzZpYWRSOFU5b014Q1hXek5LcmtrNFF0ejdORmlk
+VENhamdJQ3VqeHo0UUYwdFpjT1hDS3JhUWxJeXZ2L1JINg0KIDNIOHlTN1IxSGY4QUxGWkJt
+a2ljZmlPcXB0d1RTb1NNZXpVZzlRZXpjUDAxYVN6UFpRcWNHaTBic2dldGM0ZWtKUWdTU05W
+dW5zDQogakR0UU9JaEtrNEVhU0NMREhRTC9wbmR3NUhMNjNQc3pSNnh6SGtJQTAxVWlhandF
+ZFBTclh1QTh2Y1U4MnYzdUNoWW1EQmJWYlINCiBGN3A4c0pPWkoxaTI4SnBNU2thVFJoeDRp
+TFZsQnlVREUrbFRLS3RIU3Q1WHVpRnFwSytpYmNNMUlHTUJEU2FxZFpTRjJwVUpHSA0KIHFF
+dndXbzlOUW9PT0lPVVZYYkgyN0ZEWExpL2dNNFUrN2F0V2pHS2xHUWVhK0Fpc3FTM3VLaU81
+VU56elRUY3FhY0ZoNDVRcWcwDQogZ2hDMFdwSndJamFwVEkvR0kvcTJmK1lpeWxzZitRUnNM
+U3IwT3AxckxhL1ZNNG43TTEvd0VTYlFsQTVDNW8xTVRpbFZVK21xaW0NCiBON2gyWFAzZ0tT
+YkNOVlMxbVNSRmY3Rk82TkZWaEJXcmxGZW1xcWp5Q0FocEFTTzVzUC93Q0p3ZlVRRlo2NWNj
+TWtpSnNTWVo0RQ0KIDRtSzc2bE9yekpsRmpQemkxdEVka240R0owZGJqU3hrWUNQNGlLN1or
+MlQrc0JTRE1HOWZITDlZWVZtZ0hVVTJyQWlVT1VKN2ZhDQogdzVwMVV0TUk2bmpiakVuRkpi
+SEsyQWFRNHAweFZaYlNnY2gzVjVIdW1VTms3dzJUOE5laVVkVzRvelA1UklZUkphcHI4aWNZ
+NnANCiB2MmRCNHF4aitacFRybnhsQkxTYmM5QlNzVFNZbUt5NkVyaDVJQzIxQlNUeEd0TnhT
+VWptWlJiU1dqNkxCaXpwRmVpSTdOMy9BSQ0KIG1KRlpRZmVFbzMxSDBURHFHbEtya1dUVEtH
+VXRyU3Fxa0N3NnJWT2EzbXp0RE1kK3BORzRIYlQvdngxMnFVakZvMnhWb2JmUnA0DQogclZG
+WlhXTzhWcTFOdHdDQ1dWMWdJa29URUJwUm5SSERzbnltTE5FM0ZoSWlyUmtxZVY4bzJWcFpH
+U1JPS3o3cWwrcGl5Mk1KUnMNCiBtQXRBSFNKd2dLRGFBc2J3cXhhMmo4b0x0RDZwNFdpUnNN
+QTBoVlYwV0ZNZFZSMzFmQWZ2SFhVZDVIT3o5NENrOFlLVmlZT0k3OA0KIHpURVl0bVN2U0Fw
+T0IxcU8xd1d1MkFCWUJva1ZWbDhFQzB4MWJZWWJ6VmpIODFTblhJN0lMKzlFbTBoSTVhRk5y
+d01MbzFOVWF6DQogUmtrNDFoQkZGYjZKSG1WakZaOVNuVis5RnNnSWsxWnppYWpQVFpqQ1Nj
+WUQ2TncyTDlJQ2tteFdpbFBGQUpyeUIvc1NtMUN4VmsNCiBMb2p2YU0yZkRXYWVSOWtxWmdW
+UTRvNUFRVklUMERlRnVKaExydTIrUk1sWERWclBMbEVtQjBMZVp4aXNyYlZtZEZZeGJobHFo
+SQ0KIGdBUVFlTUxveWphM2g2UTZ2alZzOVlicmI2dG8vMk51bk4rSFpjSEtBdE5xVHJHVVVV
+Zjl6Uk5SQUhPQ21oTktlVjV1QWhUeTZVDQogMVIwcE1pSllmT0NscDZ1anp5bEZkMVJXdk13
+bE9DWXE4SmFBT0dySk1jK0owdEtuSkt4VkpoS1VmMDdKbVQ1ai9aRklWZ29TaHkNCiBoTzRE
+YWI5UDhBVHI5WDJpRFdUQUFvYmhkK1U0cjA5eVNPRFNJazJrSkhLQThuc1ZxMmh6aXpSSlFu
+R3dOSHZSdEQ0NkxJbTRvQQ0KIFJKSkViNGpmRWI0aXhkb3dsREZRQVRTSjYzLy94QUFxRUFF
+QUFnQUVCQWNCQVFFQkFRQUFBQUFCQUJFaE1VRlJFREJoY1NDQmthDQogR3h3ZkRSUU9IeFVQ
+L2FBQWdCQVFBQlB5SC9BR3NlUlJNdFRRUnM2TjdIcktRd3lRZnRIWDFDVytOVmtSZVR1MXJ1
+NDZUUGg3Zi8NCiBBRXlVSlc1ZWZuTE52RCtkNExoSGViN1RQcjcyejljSFNEekxySEF4d0Va
+TUxPbFpkbFN5eDNwRnNDMnIvSXhpSGFuOGlGYTRXdg0KIHFZOHhnWWE5cHQxeTVkU3Y4QTRy
+V3ZuTHBwN0VwWWNXbTgvWEdidEJzRXBVcTFjUzd5elRLdUgwbHYreWRadk51K0J4SUMwdHBs
+DQogTGdWOEVGWFNuamYrbjEveWp4R3daWFpNRllyTlo4ZjJjUnNXbE01WWtkVmhsRUhUeE1s
+emUzS010NFl2UC9Tb0dNQXhEWUs5b1oNCiBVT21IOUlIUkRjZjFabmg4aitSWnI4NS82c3oy
+TzVIY1U3QWg3ZmlEZnpCWFV3czlvSEZQWEgwbmZoWEt4R0I0ZHpQMlpXWFdFMQ0KIFk0OHNX
+cXpxWnErVUZydlVPTk9xbngvbVFXVURySHg3YVlYM25RYldqNXBWd0N2WHF5cXlLOEp4eTJP
+cE9zOUI4SlZXRFdLL1BHDQogNFNDVFVwbmZrTXhiOU5xdHRFSmZZbk9Cb1dTa1d6dHhRZ0Vt
+SGJtbmp6RnQ1aDZJb0ZvNXJCc0htNTg3RzZkeFF4WU5IUmd3Ky8NCiBJOGhya2EvRHZESXJB
+eS93V0JodUJwRUw4bStjeDFsY3M4T1p0RkxMemtVeVk2eTRmNEhFeHg3d0NFN05IUkRpZ1lY
+OVU4Umk1Rg0KIEY3NGZjV3pGam0vd0RpcmlzZ0lseGg2dUozbW5ncnhuZ1lpcURXWVFndjJW
+SHZBTjU2blYveUs1QzQzbEpVV0MweStOeExhOEt2DQogTmo4VFgvSFlIaU9oR2ZzZkhqNCs4
+MllqMjRuckUvelhNV1VjNEZ4V0hkaTlaVUpTZFZtT3NzVEtMVi95QTZ5WTJ2Z05zSEtzNEUN
+CiA3eDdCZVVOcFdqenY4QXpxVWk3NWxZbXNaMGVsZjFCWWR2UGdtQkVKZEtzcUJTcXIvTG9R
+T3ZJWDZtdk1HOUFVUnhPL3pIU0x0cg0KIFYvMEpScmVzQ2lqS2FkZUcyQXZ6L3dBM2xoOW5t
+TlhzQm11MGZDOGcyZjQxck5JcGdUUjI3RStFcUdzdklsVFU0Umd6Q3ZML0FGDQogSEhUbjRZ
+WmNxd0ZYTEY2UnJES1laZmk0WkZaZjRVS0MwTHVBVHJrL1ZCMHUrWCt3S1hEY00wcTRhUm5T
+cXA4REpXRUJId3k1WXUNCiB1R2dsTGFobS9YLzdnTmxOUng5TG5kT2tRQUlpYm5NL2MzbnQr
+VXZYQU5EWDdsRWVaM21RUnREYlFuTjI2d1ZXZ2w1cU5XZlpCQg0KIHVHSSs4ckRqWEhNY0Jh
+RmNLanVGN3U4TUJvOFNZZEpabHdtY0hXR1RJV2NFajFzeDlZNjd1MVBMT0ppQzlHR09YSy9Z
+M250K1UxDQogdFpMNkg1bGpldmsrVWFaSDQ2M3kwaWljS01nZE9iZFp0RytrcFc1TnYvVkta
+ZzdEeHNZc3dVZlIvSUdMSkZxNE5DR0JnVjA1QksNCiB0VEI2eEZYY002enYzNDVmc3BSdU14
+MUdaZ1ZidkZyWGM1UDVHOFBwOHBFNnpEOTVUTGlPQmhIRmVadFAxODUwbjY0S0xJK05qQQ0K
+IHN0dlpIeXNqVXUzVFo0ODdiNlRIejlFSzUzUEtWdDhTZmYxNFFZQlJTTVZvV0xSWnRBNlRM
+eDVuYjVwWXR4eXFrMGRKYWF2THJIDQogK2M4cFMrL1lEK2NsVjZDMlpvNm0wZVB0bkxaZVFJ
+cGFESDFiVHJUWkZ6WmVXTWVNUXg2UWp4Z3M0VUF6b096ajVCZmVZVi9VNlANCiBSZ1dEY2V2
+anc2SUw3d3hjbCszQ3BqeUxkd1Y3Zit6VG1xazlHYU5LUG9wRGtOWnF4ck1NNzlwMEpPUm5o
+K1k5UU5ZMEdEZUo2Ug0KIHNrZE1leUhyWkwxVnpGcTNGNzBYdzBhd0NZNFl2eENONjNsaEZB
+cmdFWlI1UzZYRVV3QmFMMGNZaXJtT1o1b2pxdVRzOFFzenY3DQogeXlHcitRNUZjZjI3bHpz
+SFpaUnEzZTdrM2N3eE8vNW5iTGsyTzVpU3dGMTgzZ1JkbUNTbXRYTmJjTGJxaGZTQ01OZ2hW
+eFFrR2YNCiBGUFArRUVpS2dPTHk4U3d6VVNQeFZwRHdtMk8wdGI2MTMvQURqWElSTEt0Nk9h
+NVQyOFFnM0h2eVcwN0ZlVmI5WlFiL3hCNGY1Rg0KIGdtdVVRTUMzUnY4QTJCVXJqVVhGWFlo
+VmRSN0luNDhBSTZ5Y2RHWExmdjdPZGo3eVlzMmZkeVcxZ0QwRDY1YWRVbm9MOWVGZHFYDQog
+dXNEeStVRkZCWGljNWVKSEoxaTJRbldzZ2dzeTQ1RExyMm1PV0MrVitnRkhPRm8zSnNuUjZy
+TlkrTi93QVF0aDA1WFJlL1VQOEENCiBmQWFPakNZQjRSZXN4aFNCM0FCQTZCVVFzUkNXVkR3
+TTBZNUM2aXl3WlU5REJzQnZUZ0xCTDNtV2pqWSszelB6eVVhMi9TdWRwTQ0KIFg4dUh0LzdM
+OGR6QitwZzdNQlRCaWZqa3NGb3d3OHJPTnl2UDhBbkFCR2lDTFRTalVqZjdBRmF4TjhCY1BF
+cEltTjVRVTJmWnc3DQogYnoxalZaT1k4RVVwTE9zei9nSHFISm8wVFc3L0FQblB2bDE5ay9r
+UCt5K0Z5K0Y4V2RkSXNtL3pDOXMyNVBmS1B2TjVXLzBjWE0NCiB6Uy9SdjZtOVNIbzFNNVJV
+MkRGZUltU2d6V0wwamt2by9xNFJEbXV2VmpJMkpHa2JZenpqaHU3UkNxTnpCRElxU3ZKMTky
+RzZMWQ0KIGpmSXBneGZ0SCt6cmh6bDEyU0E0dFpja0NJV1lFbHM5TUI5UisxZ3RmVHhiVjFI
+aFFIYVdReFhZYWNYRVIxbHBzVGVybkE4VE95DQogT0RGWGFaZzZKN3JwNndHQTlJZ21hVVM0
+RE1VUWNsOThvdmF2VENJMlI3bjNNdmxnNUFhcENYd2RTcm5VcldwWTdaK2ZEa29hSmgNCiBL
+ZEdZbUQybUlCRllKSis3ZURMK2xMWWNNN2hZR3ErNGFlODc0Y1hwMTBCV2dkeUcyK2tQeXh1
+R2Q2SHNNRkU5MkRLaGFnZDVkWA0KIFhTZmNOZWlkbm9KaFhVRGY4QUZTMys2cWZQanJIc24r
+eVJSek1ENnducCtPYzZ5cXJwL01ENjRISU9EQXpRMU84ZjdBR1VZc3BwDQogY3N6b2o4NENW
+aTRaRTdTellnTjlhS0d6UG5oNjhQV1BjVVN1bnNQM0tuTm0vU0h6Z0ZkdEozNDNNTXUxZnFs
+UmdVU082d3UzUmINCiA5SE03NVJNZk1YMC9NTVM5K2JuTDRhTjlCcWIrTThIbkJvZ3JFaTRH
+T1V2K2tLcmlIa2poV1JCMForTUpkTXRDclErTGVhVlNaNA0KIFBwR2hTM0R0MWdFanNSNWdO
+aTBrYk54WjFMKzlJMk0rZEFYN1hGbUdoYTBheG12MzRLOGVvQXA4bS9xWXN3ckNhYzJwL3dE
+c3lpDQogMzdFNXFZVTRqQUtTQWpnMjFmdkRsb3NWdlVPd2pJc2pIQ01pQmFHVHlpS3k3dFIv
+TVpNZllVdC9FUllMZFpuQnhZcy81RVoweWMNCiBqOWpMeHhWbVFsRXAyY0RiTlE2Tzh0RlUy
+WnY2NDdLbERwWmJQY2g0Y1BFU3ZKS2k0QWIySEg3NTFXNlMzVnVmUXRyeEhJWW9ZaQ0KIGZK
+S0ZFSFJpUzJxeXByK0lJb3cwYk1TTWVRbVNhM0ZqektWQm95VkxtVzNvdTBZSDVlc0pmaWNB
+SFJGQnZ0ejlVcjVkRFdveFQyDQogZ0lrUE0waWovRDRnMldaYzYrR3ZZZjhBMkhnT1RvNVR6
+ZzIxdFJiYk1IR2IxaTYyRThTWHRXc0RWRWVHUnJTOVBUbld3UFFZbGYNCiBWU0pqQWt0aGEw
+WE1nZmliYXVZR3FhRE90N2M2MW1pajZSV1hETGljTDVEMDNtbzYzc2JVL0NLSVlQVi9zYWJh
+TWpMYVo3V1p0aw0KICt1VGxNam9Cd0gwamRnZHJoZmlZT1RIbkFlc2QyWkVBRlNXZGVzTVBF
+K09sR3NFWkg2dWQxUmlsbGJ2Z09QQXk1djNNZE1LVG9rDQogL1hJV2doY1hlK21kbHJ1NHl1
+Tk1zcVZiR2NPWUI2b2JFQVZ6ZEl0NFVCV3BkZmNwWFV2bTBLY2tpNW5IcFJOdjhBRFVtWHdC
+eUUNCiBwYUVXRmREK2crWlVGZ1NPSk5YWnJWZnlOMzNBZnlFMEEvd0dQYWxHeUVuZGJEblkr
+NFhoMngrcHAwaDRMOEJ5S24vWitvK3JCOA0KIGVUTm5ONmdNeVVSZkwrSThLbFNwWE5JMkhG
+L0RYM0RFdzV0UzVudjJmY0c2VEo0YThEaWNxbWFnZVJMaDE4ZHdSaGtzd1preEpjDQogV25h
+NVZTUzhTZksrT1JYTDBtSUd2aTZNR0xBTnJHdk55RE1IM20vYTMwZUY1bncvMG1MY3Q4dkdJ
+ZGo3UmxvN3dXeXdGbFpUR2INCiBYbFJ1dVVLMDVWY2w0VUkxWTgvd0FjMmhzYmdENmVKSG1p
+eHEzMGk2c0Q4dko2K1Q2ZnhLTk9GOHBJbmlPRE1jeHo3L3Vkak9ZbA0KIDRieXpiM3Z4SE9W
+ZmpVTjdJUm1oeWMrMWZRUzg2dkd3VXNDbzJEaS9NTmN6Nm5TS2ZMKzhUblp4Ny9XcDk4b05j
+TnZmRDc0UE9UDQogdzZjSEtVYndWZjByN2czanZ5OVpYdjIvRWZDY29XMXRpd1FuQXpuaXZz
+ZVVqbjdIQitwaUxmd0grUFdNSXdhaXkrMk1KV213ZVoNCiBrL3JMbmlPOWlWdGRvQ0VCQURU
+bEZqVVgxUXU3TkJaYW9LcFBJa1oyL3dBSndPRGxVN0xEenIrOHpMNy9BSzhKNFh3S0YzaFdj
+Yg0KIHhRRGY4QUdiR1UxRldUMXc1WkV2bGEzbGcxOE1lRkF3MkwwbHkyVGZub3Z5aEpZeVN4
+L3dBdVJhajNZL3ptYlJ0K2VuaEhrcW9iDQogb201aHJoaWViNzNEZXg4eGJ4WGRIWmN2cmxt
+R1p0UHplRURCT0RaaFlrMkpyRDdXTGo2bS9tWVVZUUhFWWZxL3g2N2l2dFRCczUNCiBXa3dO
+d0FQaURMOEhlL1NZcFJsVlFreW1BOURlT3NZV1lpUXg2Zm9Zb1JjdFlKQ044ai93QWJTNnhi
+R0Y5ZVYzeW1IVlZPNDRRYw0KIERNbGFBNFI4Y0c1YUZpYy9IN0tsT3o1d0VWckxyL2lOMVlJ
+UFJGZHZLZEFDVk14aSt1UVBHci9yMklrdUZjc3YrZVdzSU8xQWNODQogYmhwVWdQSk1MOS9h
+UGhaKzA0eFFEUkR6RDNtRlZROXdPVlZtSFRyVjlvVHlubzZqQ3F1Wi9EM2NBWUx2bVFkUWxt
+OUIvYVRUcUoNCiAvd0FONGZ0a1Y5dmxZeUFLRzF3djRhVGszMEZsRSsyNkpUL3VZN3Z2QUtV
+UEFBdXhxWWFUYzNWV3ZZSWxpT1V1d2NFNm45TVdLeQ0KIHM1SmkySkNLMjNIdGI4Q1lTS1ll
+alU5TGdWd3lhdXNjRGxEcE4ra3h5UDFldURvUFJOdjdMNTdyOTgrVitrdytzRWRWUDk1ZHA0
+DQogaFJxdkwySms3b0RieGJnUmQ3QndGYTRoaUVzUU5HM3pQbHk1THBZVkhiVDh4TEtqamgx
+Z3kzL2RnQVpIQlNSQ2tZOHhGYkhjOS8NCiBTVWlqWTgvZDZud2dydHZDcVc1VGZnNHBvMktC
+T3NnZDNsWWdwN2JlWWx1cmM4WjBwQjJxZGFBeG1KdHJvSDljV3NEdW4zZlBKeg0KIFcvMEpy
+VnlDQllWRjYxMy9BRHZ4Snh0RkowbVJGOTVlL3dDM2hFOGNKenFTY1RYejlRVXRpdkRnRFlu
+YVRIZ3owSW1yY3RrYjhwDQogYXRjQTFsOFc1cnF3dDlSaCs2ZU1xckpEdlVzWnQrMnVKSTBR
+L2Yrb2Zpd3M1QkMyTk16U1o1YUg3bWxSTkpmWjlUMHVGWU0vOEENCiBSejk1cndOeVNsRXZ2
+S1d2S3UySkJzRXBPWnI4UWxGOWt1UDlqNEhLM0lndWZTbnhIYjBFZSs3djRCbWhnTnVWcXFS
+ZGNFSE5IRg0KIDd1UDN5T3RpUGFVSG9lN2pjSVVYUm1HMWM3VXhyM2ZUa3JSRENQSVByaTJT
+K3Vqc2ltMDdzNGdOWTFobWRZeXdUN3BUMXg5bzh0DQogSGFVcnNSZHVoMktQcncwR1k0TlE2
+M3JLVXpjaHJBb3pDNnd5QXlDZ242dVVnT05INkpRQUFaSElOQjFJOEhiNVBCamh2ZjhBYjMN
+CiBnUXdPR3JzZUE4a0ZzQnh5MG1aeHhHeW9lOXc0SHNEU0ZpUzZRNDd5UHk0OFNLMW10Z3FV
+RnQyZjNmbDRzWjRkTW41bnVSNE1xeg0KIFlCQmRzZnROenNZQVNuYld2a2RvZE5KMnk1YXNj
+UnFkNy9uSjlsTTN3akpyUXRWLzE3Uk5yR3g0NTZZTWJlUm1mMVR2eWphVVlqDQogeUNYeUQ4
+Z0gxRGpmcURBWnFZdHFyMzArRDRDODJuODd5Z3dMNUtsMEMxMmw3TVp4N004L1loeHdZSk5E
+cXlselVOcTdvcUVjY08NCiBDR3NoQWFPY3Nuak92OWowN3R2UiszZ2FTcUppSkJpZC9tOEpl
+WEFaYUU3YzYyOS9TR1JXUFdmUEFXaEJOczR6Y3hMMElsYmxCdw0KIEd6Zi9rQ21HZ1BCa2pB
+QzlkQi93RFkxVjJoT0lsa0tSMUlyUnZ0c3BIMXlLRExTdnh0QUp5UGZqUUVaU0NDT3BiaC9o
+WUxPUU5RDQogTXJsNWQzVy9NWjVVSHJCNFh4K0tqSmEyd0NWKzBwalZJVDhTMDVCai9wVDd0
+UmoxeVpiei93Q3djNGJhK0ZoS1dBYmtmNjE5NVUNCiAvZmdhNnZPa3p0aTk4K05kaGF6ODIw
+c0NyMTA0QUxhRzh2SWwxUkdweXVqZG9mNGZ5L2wvZVNITFNwZHQ0UGl5bFhSZThTcHJaLw0K
+IHRQdzMzTSt2US9wRGJJN25nekhPbEFhcitzT2xVYXByeUtCT1M5dzUrZFFwTEtwOEF2WWdK
+Z0pmOVM0OWFIbytEV0VHRGF4Z3NGDQogVDcvYUlMWENXMmFEZlZqajV3V1JNanhuTTZuTjdN
+Qkt5QStPdFU4V2Rpc3JMM2pYZDRmQ3BrdDVwK1daQnU4YVMxNnYweFF4eUMNCiA2WDUzTE9n
+b0Q0ZjhoNGNVSnJETG1Vam5SUFJQM2NIZ0dlMVEwV0piZHpENVBEa1pBNU5yL3dESVVhYnYv
+U2JDUVpIM1BKSUJmRA0KIDhUVC9FTlhhK2NyQ0kwd1VOcko5ZUxXRzlOa3Q2VDlRQXBCaGhB
+T2pFdGVVeklkZFU5cGlqZlJEN2xDUjVyT01JWVdrbThWTTY5DQogenBuNndhQVdKWStHNTF5
+VVFuNmlqck02OTRxYmY1dWtYb25NKzVBME9yWkpXTTR0V3hJcjJVQmFhOEpjdUNMM2ZRLzIv
+Yy9EL0MNCiAvZnhONGYxMyt4dys0Ymkvc3ZtTTUvdUgweW54d1F6VHZ3bmpoWVJTSWlMZ2py
+Rkhic2REdGxFQVZnOEtCcHF4SjBZUS9xWjRIUQ0KIEwzSmpsK3RvZWhGK0E3Q1hxdU8wd0FI
+NmhvUWxxckh2S09MbFRCL1hBc2QzTXVvemNXYUZaU3FXeld4c1pnK3lWUkNMejBJaGlCDQog
+TWtxdU92OXdCYjU4eC9kUm9CS3l2RW0wd1lOd3grb0tZQUFOQ2IvTUlwNU9KSHltT2o5WDZ4
+TmhPdzBIekNUMEFaMDZjZUFiaWUNCiBicDFtQ1pZWXN3OXFsZWlZWjMwbGc1MVZ5K3IwY1lR
+cHVqc05kWVljTXNjQXhsMGRwbU9OUHkrWmY4Q3hKMTB6bUltbEdsZjA0Tw0KIE9lVTdaZjd4
+UkpXR001alU2NlB2eFVvdkR0ekorWmppQmxiK1plVjA2dStjTmhPeEswN1RialNoc0RON1Mx
+Nkp5eDd4eTZ1Yld6DQogNGlKLzdNYWNIaFp3Ym03RUFsUUVISVFwbGdKMTcyUDNCc2F1UEt3
+akdPSStZcjkvL0NZR3JWQWEzejkyTitCc2QvRmhoVnN3Ti8NCiA2ck40Mk85VlJFeFVZakR6
+dFppNm92YWlxN0l1L2t6SEk0NWdKZUJCMUx0ZWZCQ01tVTA4RktyNjdTa0dMOHppU0FZOTE5
+VE4xWA0KIG1WbVh0N3dLTU1Odi9oakhiRkVxelYwYlplTlpzWS94NngrVkprZkpCV0k4UlI1
+NVNvLzZDT3NRMWVXSC9rd0dHdEE0WUVUNG1PDQogMDNybndBbVF5WXVubHBXRGtDc1B0cjFn
+VU1pVVV1SC9WeFpHTVVqVlUxYThYLzJnQU1Bd0VBQWdBREFBQUFFRW1EVEFIT3B2SksNCiBM
+MFd3OTFrL21vWHZKODUxTm1rKzE0a3YxRk54VG8yZ0xDeHpWcU5HRk9GWVVQdmQwdXRqZjBx
+b1phRnVZc3M5aGQ1MFJ4Q1lRZw0KIEFBQUZXb3N2ZzF5MVBuYjJnQUFBQUFBN0xaZFd3d0FB
+QUFBQU5aKys5L3BoR2F3UVFBQUFBQUFBRUo0L3dBQUFBQUFBQWhSdnkvDQogbnNFSXdBQUFB
+QUFBQUFsNVJvd0FBUUFRQUFBSkJQb2toZzZBQUFBQUFBREZVSUgvQUJRQUJnUWNBQUFBQVNF
+S0pxMHFNQUFBQUENCiBDOFJ1bkQ5OG9BRkdicWtzSUFCVXN2WG5VdWdBQUFBQVp6OFZCWlVF
+QUJRUFB4V1lvQUNkblhjTU1LTUFBQUFBZmNNZTBvSUVBRA0KIFd2N1VmTllJQkxJMVV2OEFt
+QUFBQUFBbmVTdTIrQUFBQVRzKzliU3c5TlJEcmxOcnFJQUFBQUFSWVBlK0dyQkFBQU44SjJV
+QURMDQogNDZoejRzTUJBQUFBQUNUSFljSVBJQUFMMjlHeHdBSVRLYWs5cyt5SkFBQUFBQW9o
+TEwzRUxPSDRzNHA3VjJydjBOUFg3K3pwSUENCiBBQUFBVjg1QkxFZkp5SWUxMi84QWZmTEdD
+UjcwWWttUXdBQUFBRVlqL3dDc2pqUStGaTUvL3dEL0FQWkhMajAyUnNlVVFBQUFBQQ0KIEV1
+RDkzaU9LS3cvd0QvQVA4QTZQTFBsbDk5ZzdZREFBQUFBQWdTUVdwd25DS25QZjhBOUNadmh4
+NzhmLzhBcFJtakFBQUFBUkxODQogUkJ0UGQ0M2Yvd0Q1OWJQYjZEU3VUV1pmVEFBQUFBQlJa
+dmRjNlQxRXRQOEEvd0RkbUxtdzhnc21Bd0lpcEFBQUFENGhSeDN0MWwNCiBldi93RC9BTWdL
+SkxRdzh2OEF3VUV0TEFBQUFDeFgzM2Y1UmFEL0FQOEEvd0Q3L2kyNHMvbmYzcFpObkFBQUFX
+d0h2ZmY3OHllMg0KICsvOEEvd0FzUjBiOFU4ZlBPZjNTSUFBQkhILytYUEE0NXBQNy93RC9B
+Q2xYYkptL3oybmxKR0FnQ3dGQ2NvdnF4djhBNjRUZmIvDQogOEFycFkvdzIxL2ltQzVBQVVU
+Q3RlS1Y5cWYvd0Q3bVN2UC93RDl6djM4bFg4SVphOU1JTU16R05LazZUNy9BT2d4dEw3cWR3
+K0cNCiAwOFIvcStxamdhY2NhbDFpWFJVLy93QzlTY0ZKZU9qM1BHZmVtSWVhZjFqRm12OEE4
+VmxhMzcvL0FQTlRMVDVUdzg4OEVkL1pmLw0KIFI3bGRIQysvUjFhbjVYL3I0N0phT211dTBR
+QTd3dnozLzVwcXQ2aUNKOTY5SzQvdnVaeG1qS0dkNUxtYXZlMTNEcGgyNzlaYTJpDQogNjl4
+Ri93RDdUMVZqTjNmWFovZmZmdi9FQUI4UkFBTUFBd0VCQVFFQkFRQUFBQUFBQUFBQkVSQWdJ
+VEZCTUZGaGNmL2FBQWdCQXcNCiBFQlB4RGFmb2o0UjFCL1FCTFFlQ1I5UjdDSHo4cGlNOTh4
+RGh3ZWt3N2xDVm9yWEdFZDFuaElTSTdOQnF5NW1peWxYRWUyS1hvbA0KIGVvdjRoa2V1bzlu
+RXlxNElTcy93OFA4QWg3N2lKOFpjUVkzUzNla0hQUlZXVlBaSjAraDRESnlqR0VTbjRMdEJq
+Ujd3ZDB4ZmtuDQogZDF6RjFBMmFNYTdGaUorSHlDbWdXem5vaUMvTlpXM0g4SkxOV0pxaDJU
+VnNBbVMvQlgwVXZCcmlHUHNDOGcxVTFpeERHa1A4ajINCiBCTHQvWGxZaCtnM3c0UHZtclhP
+QzE1Nk5ldkZ4MGlLT2hJbWFxb1lJK1lnbW40VzU5aCs2c1ZSU09IcjF2VEd2MGdrRnp3dEg1
+dw0KIGFXME9TaDlqajBhU2x2d1NjTGhLdy9YcXRJbE9iUEhIcmFjTW1MS09NQzloaUhLc2Fn
+NFBMd01MWFFzYlhwVC9kdTNINjlJU0Z1DQogalY0Y1ZDbm9sbEd1V3RURkE2VXdiMGViMHFh
+Rm90SDZDMHRFMDhaSHdaOFI4MFp3RnRWK2xKRGh4bmhTNEExVjdQekkwcFN6b3UNCiB5d3o0
+Q3l4RG1xaGNXZWkzUWswUURGTmRQcHpCYmQ3ckJ2M3dROElMb2xFUEF3RlNSaTM1aVo5eEQ0
+NGRORitiZW02cEQ3TkVOWA0KIDBhOEVzRy9FNmVyMDRmQlJySGNOb2JUUXhjS0xiVEJPZWJX
+RVVWdW5sbmJWOUVqUkVUMWREWkIzL292U1Bkb01SUGVkZmdrZlQ2DQogOUV6Qi95SHFkSWEx
+RGt5N2VJcFI1UnpHTDNibmMzQzBlVUo4eW5GUGpVY3Q5UTYzUTM2cDNiNk90dVN0dGNJYU02
+V2pqVmFnWjkNCiA2ZTJQRTNzakpxdFlTTWhiTDBTaEl0R0xrdC9SN3pQYUU2cnI5SVNNdC9v
+MFZ6VWZHMFc2d2c4cHhyWi9qUFhkQ3JyVktpb05UOA0KIHZHYzJqN28zR3l6aTFhY0d5b1k0
+dGVhL1U3QVkzQ05iMDlPNFA5eXVpMnRuVHVhVWN3b0llUU9lTVhlNkpZTW1jS1hRMVBkMGZj
+DQogK1ljdVlmQlBXaUM4VHd2MG9veEwrNTlPb2ZRY2ZHZk1QbXpYQ2FwZWtKWENJQVYxanhT
+OExEL05KK2xsRkxvbktKMVVUOUVncXENCiAyWTJrSVhmUkZIRXhDTG43bDRZcFVUdHd6eERo
+NHFnbmVvYi9nbWZHUVV3eDZkQkMxZzV4UFJsZ21sNks0SHVUUE9sdjRyR0Qxag0KIHdoeGkv
+dUpUNHg3MTVnNkZocklURkpQTWNEVy9CbG8wVndWL1NuNDhhNml0WGlNZXE0ZzdsdmtaNnhm
+d1p3QzU1aUNXRU5wa2VpDQogTXN3WlZPRVNRWXRDUmlGL1pEdWdtaXhZTnBVeHMwQy9vU0lU
+aHNvK0REL2c2eElhM1EraUR6ZC9qSjV0Q0NkdG9mK2padWo0U28NCiBzVUk2T3lTcTRaLy94
+QUFnRVFBREFBTUJBUUVCQVFFQkFBQUFBQUFBQVJFUUlDRXhRVEJoVVVCeC85b0FDQUVDQVFF
+L0VIbWxLWA0KIEZ5dEZqbjBiVHhDMDZOTDRSc1RzYWZvdDNlYmh1RUZMaGFMS3hUM2dsS256
+Zy82ZjZDVkhGMkNPRUpUVlBXa2I4T3F4SVdQYmh5DQogOFBVRThKbFBUNnNYQ3cvOE80ZlZC
+alZDM2VHT0JMMFRYelpLZFBrSFZsckNVVTNsUHVoYk1iZ3g2SThma3Bxb3M0TmtGVDcrRjUN
+CiBDam1yR1cwVXNXOXpCYWxYY1JJczNkUFF2TkdKUGdKM21JdWlGeERjaVA3alBRaURyV1ZQ
+RXhQbU04MlY1ckZHUGZteTZKVCtqVw0KIGlGaHF1SXYxaVVUSEJYUmRIU0h0VFBtV1NWRnVl
+d3RYZkJPeGZXWFdmcXorQzArRnkvQnBBdWlFcjRScDhIRWJGcFZvSjZwUjRiDQogTkdHNjNv
+dFJDUlRLWWltQzBPV0ptRmh6L3dTdkJDVkhqTHA1bnpiMkozUm91cjZvUW5ER3hLRXcwNElV
+UndUVTVQelpLbUpOQ2MNCiBkR2c5WlVKaWNMbWozcU9hMlNWSGp6TUhxMlhTUWhDRUtlakpL
+c002SFVhbXA0ZkZGdDBTT0ZiZWpYU2kzOWhOR3FQSzBHU1Vlcw0KIE9BT0lZb1ovcVNOQmpF
+cU56ZXpPd2s1dFNoZEpwQm1GRUVQUXNGSFV0RVJFUkNSR3cxNkw1YXREVlJPMXNsVUpHMWg2
+czhDOG9mDQogMlBWT0NSK2tQd3ZaS1VqWkVBME5FSVREUTFmd2p4b2tKV1RqUWVIZjBOazRM
+TzVoQ1pZdFVHbzlDdDZMbHdSSkY0SWhDRXhUeDANCiBpMlVGMWZnbFBlaW02aTFDelJiUWMy
+NllYQjdNZkI3eXp6RnNpNk4wRTZycS9HTVRlS0Q3bzBSaTh2NDBvL0NtcjR4K3NQV1NITg0K
+IHFuT2xrRVBaNGVQZy93QUZvK0pqN1dHaVpTZEtPRFVvOVh5SHZVSTVaejUrOEN6QnIvQlNq
+MkVWNFhWUFBkTEJnNndyeGlkNnZ6DQogbWljRnpyS09DMGdvNkdaTTlSOVVYS0lJVzZKUStn
+VDV0OEY3Y05wS3NXcUlxSVRiZHpDRTFDMTZVTlZRZTJqRFZJT2lobEZHWFYNCiB0em1JWE9s
+WVBBSDNyMHVIODZjc1dMSVNDbEVTb1VTaEVJMktLaUhUekFKVHBiaU92b2tQOGV3Z0xEVjlL
+K0RaREd1NlM0ME9jaw0KIHVFZW9KSGd6aEMvQkVLMFdFWUpZaUltalZRa2VQZzlJSmZqUzlD
+eFlOYzRWTHdiYkZVVTlPQ1ppWjhFN3hNOGYwdGhSVVdoemJ3DQogbThrSGRNUTlYRG4wNDhH
+N0cybWpsMFNnNlhiRWhTUkQ0d1RkRlA4QTRFVDdsTm9hZmc0dlJYMGhOcmhkYXhDbnVGRzFy
+Q0lPWEINCiBZLy84UUFLUkFCQUFJQ0FRTURCUUVBQXdFQUFBQUFBUUFSSVRGQkVGRmhjWUdS
+SURDaHNjSHdRTkhoOGYvYUFBZ0JBUUFCUHhBNg0KIEhTcFVxVktsU3BVcVZLbFNwVXFWS2lS
+T3FRNk0wbWtlakg2R2V6M3VndXBXTXdxNUdxb2pmckdtM2dDZVhEOFJBYmVBVS9pQ3l1DQog
+V3Y4OEZ0b1VUU2lpcllMMDAxMHZHYStNeHBGVzMzYWpsZDY4eGJlenoyZzV5WWFPOFdHdWox
+U1YxU1ZCbUlRZ1FQcHFWS2xTdXQNCiBTdWxkTDZKRTYxR01lMFlrZWpBdXVid1YzbVZhYzFa
+cUtXRmJabFc4OEdUSmNaOEF2QlBJcjVRQVZoWTdmTVVNbG9XOTViVkhFYw0KIDJhVGxDaGlH
+dzdOTWh0VnRaVnNpN2NCNzh4M0cwSVRYWlNPMGdxcS9BbjVsMmI1TGRlOENIeGczQWp2UTQ5
+Z0VTdFJnMmVoYmdpDQogSzhmSk9PZmZveXBYbUJIRVdYRVhubzlVQ29RaERyVUNCS2xTb0Vx
+VktqVXFWR1ZLaVNvblZqSG9rVG9rRzJyZ2pXT0lZU29HTG4NCiAwT0JhTjVNeExvSE50OHRl
+N1BiRVpHY243Z1gzNkNzdDNHSlNxcXh3MnJYQkZoZmd5UE5pTDh6QnRlT2g4cS9NS0tYbHlR
+S3R5SA0KIGljV1pZRFY1UFJsRXRzN01mbnpCbDkxVkZrRUFROXVtMTNKUjZTNHhkOWJucEc1
+UkU3ZFFnUUlkS2xRSldPaENWRjQxNlpuQmhlDQogMFQzOEJOdEZlNUFIdVY0eEVzOGZFeHAz
+NUlsY1I2TVl4NkpLbFJJa3J2S3hmNVhCN3hqN2RpNVZVVEk1M2pVeWh1RXlmUFhDMVENCiAz
+aEdsbk00Qit2bU1EZDhFSmxyZC92MWdZS2xheDFNTU1CVFFaWTRzRjBhTmhWbk9kWHhDM0o3
+QkVyQ3REeGRiN3pPZ3Flc0t2TQ0KIFVPSmNZL1lJZENIVW5IYVcyNDR4YnVXaEFHMWloNFJl
+WGJGbkVPWXM5bFVjT0dtWEZaQXJzQmdCVVhkRC9xSS84QVgvNmxLb3VWDQogUDVCanhkUS9B
+UW84TkI4ZitZaTN3TDcrYUFzMFZDQ2k5MVA0bWk4UHpLYTduaU5qR0htNGtTSkdNWStKbHhF
+c1R4QVlSUWJOeFYNCiB6Qy9TbTh5bVg5eFd1ODYraHlBNUJuRkdQcVlQTXFQdGJUeGJwWlRM
+b25kb1dQazJTOExtbnpFWlR6UGVYTDZWMHFWR1ZLaERvUQ0KIGh1R3I2S3pBdGRDVXpHNkZQ
+WW02ejRqU3pOMGk3V0hMY0toSzFMcjd3QUFBY0d2aU9lTDlaWG9lS252K0o2NWczL1lBT1Ax
+Szd1DQogT3dRSUFHZ0daUjdoUWZJbWg1RjRBMnFGN29xVnFTWCtDN1R6TStxNmlSM09Za3FW
+R2lhV1l6Vnd4Z0NzeFNvSHUweGRPMkNyMmcNCiA3RzhIZGg1bzhIMjl6bXlPQkR3bDNDQncy
+WFQ2WFMrM0JEN0VCQVcxaHd0NGRZdUN2aDZWTHpVdjdES2xlT2crajFoUTdUeEZ4MA0KIE5n
+anNOYkROYmlPMjBBQTdxMi9EQXJuTXJXbUhodjdsWGZic3hBSUdxaWVubUpxZ0NoVXhoeGRt
+N3ZVQ3ZKa3RYWkduM2xmUFBtDQogSjBlaVJERm9jNTE3eHJndlV3WVIrR2tvVWZLbFZqdDk3
+RHViTERPbFNrbjNoUUlYdTZNSHNZT1lXNVc2MVRMU21VeXBSM2xITEsNCiBPOHhDb3N2NkJI
+Q2R2MzRteS82anpEMEFqemFEbkdzYmlFWnNvbk5GM1FjVERCZ05mOVF3M1I5NG80TDd3Q0Zj
+RXZMSGIwaEJmeQ0KIE1IbFVsbmp4QVpERUxMeWhkcG8xanZHN3F1TXhKWGRsSGVZN3pKdXNs
+RlVKUFF0N1F1N2FYdExlZSs0NXYvZ2MyNXhXWTdPODJRDQogbXYxSGRBSXVJNHBlVndYdmNG
+MjMrNWw1Z1BlVTlGZUo3U3ZXYWc5RjBKWlQ0ZzNBV3JRY3l1OVY1ZzdsK1RYQlRHbXczYXFk
+OHoNCiBYUDhBd2ZqM2prcDQrSllBMW1pREorU0NDSzFxTHNheGRKMjFHTjhUMElvTFlZVUc0
+MDN0NksvQ1lFSC9BTi80VzhjN3QwU3VzQQ0KIFR1Q2xlMHk1dngzLzhBc3VzTG54TGx5NWNW
+dVh5akNYRGlIVFdVSEFyWHRCWERDeUNqYTVnMEMyM2FTaUhZU1pVLzR0MExkaGhEDQogY3ZZ
+TzNvUDdsUEFUZk5jZDVSeDQzTk9FOHRWS2NXa1U0TUlxdDJJZWZSSzRsR2ZHUCtIb05FWXRG
+c2M3emg2ckNxTzMwRlJxUFMNCiArZ1JaenFXMHZ1TzNwRzFUWVRlYVBEbktaeEZZdHVWc3M0
+cmovaXQ0cmJLZ3d6N3k2NkUwT0MxWTJNdUpNS0pQYXIvTUlCWGRROA0KIEpOK3JNZjhBZXk2
+a3dYQ3R3d0FCaWpqL0FJaHN6VUV0ZktDQWJ0RHE5VWxRSU1PMkc4VmV2TUM3TWtocFlaTUE0
+MUx0UlpHMXRmDQogVzF6UEZyWEx0LzROZE9MNDZlNUxCdGFEY1RDenR0djljQUFvWGcvRWJ0
+VDRMbW9oYnpXYlp2V2dFeHcvOEFaUVlLcndVZjhUMGENCiBtWEtyUDJzUDdBRFRpZTh1WEYr
+a2hFSGg0VjBscDV3eTJ6NjRPQUF4eS9QL0FBcitZR205WlRnK0M0Tnk3V1dHTlVjbGY3R1A0
+Uw0KIC9zSWp3bEFQRHl2TVQ1SnV5NTN6MVVDM1J1SnpiSzlCU0pXUHB4eS9mWXppdWYyUkNF
+MDYraGgwQ1ZLaVhRREppbmw0aisyaEt3DQogTUs5NmFYNW5BMEhIMzgyVjhkNTJGcFgxbUl1
+QTVlZ0xtZURZOEI3cEVsWXh6VlQ4TUVtcFlmeVVSRTdlb0lBQU1CeDBLang1a28NCiBaSEw2
+NXZ4MHdGbzBkcFRMeDBhOXBqZ0JzNy93Q3VPK3JWaGs5V1lsTGxnMkhldVlSZzRxS1RJaTMv
+QVBJc1ZnY08zQzYvbGlIWA0KIGF4Ym5ERERNL0pFNXprc2p2ZCszMi9pQitFQjdIOVJPMFJt
+ZTAzeEtsUTZocVJJb3QyaytFcGU0TnBtV3psY3I3eGx0NktQT1pnDQogTkdFNW43KzVXUjdQ
+TTVidVhpRmxzcm5MclFiMDdTUDhqSWIzd3ByMmpvR3Z6RzY4OTV3MS8zTk9DT0lzOWdmMGsw
+WHdRR0lObDQNCiBod2ZJRzQ4UVNJYkwwTjFNdTk5Y0hINWx6SFBLelVHWkVOV1JwZXF0bVlN
+SEJjeUltSzRTY0FJQmZac1FVenkzajJFMjhUa2o0Lw0KIElmL0pvTWx0cWVPZTMyZjlic240
+SDlTcFV6MHMra3lERmVGZG9aOHFaMFBScTJyWkxkNmgrczlDL1JnQWdNNTdPWmZPZ0hJVm9X
+DQogMEZtR1ZUVkdPVG43aUNvY0N4N29Lb3p4b0VHaStNOE84SEFHUW9BVUh3UTEwV09KY1po
+SGFLMTJFWVBFMHdkMk5pUWI3dnJLMDANCiBOVW13ckFjZlVieHVBUGFnbkVYVjA1c3NSK2lZ
+dFM4dHQ5K21nMGdZRTM0RXBPVGFyeWhlY3NiS1N3RmtPRkRkZDZyRXB5L0lUdA0KIDlqL1c3
+SW5zZjFFcVZLbGRTK0piMmxuYUJ2R01vMXlYWGNuUGVHZUFBZ2RuL3dCaUJZYkdBSzNXcnl6
+T2I1KzZ1dFpGb1BQNGcvDQogUnFobDh2ZG01Y3hIeEdNcHpxQmNKbTc5Q0pQQWZiV3RuSklv
+aFY2ais0K3BRRlVBTnhuZmdtdzgzc2dXVTZBUDdCbnFBV1NzWGwNCiBXMjQ5MHZKd0lNZkVy
+cFhlTmZVQllqd25hWno3Q3dOV0dRY0dNYmxWRkQ4UDdPQXBieWZyNm1ZY0JYNFJCOUsrUWl2
+TXVZbU9sUw0KIG5pWmpEUUR3SEE3UjZqRnp5Ulo1aTlNVXQ5ZlAzYnhmcExBS1FkV1VQNXdi
+dnc5R0dZeFlzUzdsNXlWV2dEekYzS0RpQU9IUE9yDQogOUoyNTR6OVZwbjBQV0N4WDJhdzAz
+U2EyZVNWSENvcllaUnZkbCtJUWVXN0JmZ3dKNnJHeW9RcFpISWxqOHdZcFFVZExEKzJQclMN
+CiBOM0hNdU1RbFFVUzByREhHKzhlbE9kZ1BoRnRVOXdPRjJPdmszRk1tQ05pN2lXT0dPR3Vl
+WmszOURwZzdtcDlreU9qSHdsbERybw0KIHJzaVBQU3BYZVVSV0IzajVyWmVEcEJuTFcxN2Zj
+NW5ndHZndWR4UW96eHBQSFlqbnBxTEhvcWEzS2tWOHF5RjNkbnZCQm9vR3VXDQogY1ZXdnE5
+STdJbzVJYStFaDJqS2F4YkFCWW41ZjhBa3NXMENoczd0ajZkb3RPeXpQa040MW0rWUlOd3M4
+aHpQZnBlbWFzZ1l5bnANCiBpSjI1M2RTdnlSeTZGcjJKY0lRUGh6YUY1dml1R0RLeFNRY0tY
+eUkyUjlwYkFUSzdUUEx3VFlkYTZTeXl3c2FRbU9Mcno5SERFNw0KIFdBK3lIbVNzOGdnVnJw
+bnZGcmVaZmlWRXZvU0RxOVVSYnU3MzB1OE1MNjM5eldadWVQMVJjUXg4aVI0NzFGbHhqR0ww
+Y0lRMTdLDQogMzlSaTJsV3g2ZlpBWUt6UjNqRHdLamdPdml1bTJQVitvNVdZWDNPb1FmeUlz
+eVA0ajZ3TDBBSyswc3pZREViNVh0UUszYzRKVEcNCiBDR2dXMkpaUkNuUkxoc0hEaFRQaTlS
+YmtJVlBBUkxEQ2JuS0s0MVd1cHM5Wnllc0VaY0tpK3hVZ3BjWThTdlBSVmRLbFJPbkhqVQ0K
+IC9xOEpZNys1czlKbVozc01HdTQ3S09kOTR4YWw5RjZPQmprSzFQa3pQUDJVeGhwR2ZLc2Jk
+RFNyMm5NNHI5VG44ZEFTRVYwWlZVDQogQnl2SGVGN1Z4Z1VSTEdDNXJXMHBPYlhLczdCbzdH
+SUhtVkFqNGhSWTJCVnB5T3d6M205Y3hIZTc4MlBlSTRBVmRPOHc2dXZQUkwNCiBWbERYaW1n
+bzArVkFhdDkrbnZOZVpaMm1POHhHdUpVSDk5S3ZMOXd5d2VvL1V6Tm1SUjJvNWNXYkl2UjZl
+cy9sbnI3V05HZTBzUA0KIGFrQnpudFgwQnZpdVZ2YzVmdEF3QVlENmc1YXJFckZMSGhMc1I5
+U0s2enZXUmk2MGc1c002aGhoWEoxMVpzN3JDZnFBaUFvN21IDQogOGpMbHkrbU9sVkw2TzNx
+djdIS3crdjNQSGVkdjFQeExwY3ZiVm1hUnZtNG9OUjZzNWd2NEhDWXpRcjdCRUlPbjJlL2ts
+a05DdTENCiBweFdXK2Jlbk1ZaTg2dlM0UHl3SFpJQmxFdDgzTEVrQ0FEM2duUkQ3YnJMZW83
+QWNtUWpwK0pwMzY1Z2FhM0RlNGlDelZsbUhlWg0KIGRYWWc2dTFSa00xenpEd2dhTjE2K1o2
+NzdRNklKUWRJN0l5bGRYUWFGSjhzU3V6VmN1enhIcXN1WExoMmQxWjZ3VHNPUFlZb3I2DQog
+NCs1eVBhY0E0ZzhHUXViQXpTc2FtNDU2Wmx4aUROMTVnS1h1c3lUWStyL1pmSEIzTk5ZK0dP
+UEk1WDJIK0pNSTExZkZoL1puREkNCiBIMUI2RFc5UjZPbDQvd0I2Z29sRFFla1RwYVZTVG8v
+RDdTM3BOWTJhUFRNZWNpTmNuaGdxL29TeVZXYVVsUGw1NHBTN0NoZmRncQ0KIGV3dW95ZDRR
+cVNacWd4ZDczRUhrOXdjbmJTeWpxb0dLREJ2emZ4Rml5NHg2OGoybHNZUjhOSGNLT2RVYSs3
+VlRFcXprMXRZV0hzDQogdFBTWVM0ZEM0eHYvQU5qZWdzM21XRDBXNjc4ajVOTUhwbm44aFhy
+ekhDbkpoUHNGQ2JBK0VDNUZHamVjblRrOVpwUDk2dlJBaVgNCiBHdDJvVkh6S09BcDNsejJ5
+aEI5YXVOcXlpN3JtRjgvUTA0c2d5VFhnQVRCUjVwcnRycXh3VVcwckVMMTFvQVh5bks3dVhl
+SVlBQQ0KIEtjbG1Ibm1Pb1pBc3B3QTZacTQwQ2pDYkh1d3pRVlZ2Z2hlUVQrdzNNQndmY2p4
+MFk5U2FJTGZtZ1ZIZUEvZUNWcS9BL3dEVXJwDQogREx2QnpOWm5udkxqT0llZWdNQldTeE9Z
+d2toc3NqTjNGbmZlbFQ0ZWpQdlBUNlBMbzNDamtKNVhqOFJ0YzdnR3JGUnJBVStCcjgNCiBE
+cVF4WUtTYk1JT1N4emNWWUw3eDQ3K2U4ZnByWm5NWUhEcktXQUFYdnZHUUxOcW91RXJSVjZH
+OHpFcGNFWlNuL0JBVFpKNHpDYQ0KIEVQQUgzRVZ1TzI1L0NRci9zQm1BeDRiMTMvQUxIZWQ2
+K3E0c0JjQjVHVjRYRXNJWSs5VWRvU0UyYXlYZU5MK0Vpem1EWk9QU0VjDQogelhTNW04TEV4
+TGxJbGo3UVJOVGpEdlhiVjRCNGhKc2dJZWptZHU5Wk83c3pIUXlnNHVPeVVTN0dTRUowU3VZ
+bGxMWWxwRER3S1cNCiBpNW9IZC9XWnpvT2U4OVpVZTBoMFM1NEJNajNKekc4R3JzbXp1ODRn
+OWJJVjd1MW96V1ZwTWZjWTkxTVVVU21CdGxMOHd4eWFOMw0KIDBFSW1xVzJxZUtXdWVZbVNO
+MDUyRmtONDhzUzk2NU9HY1ZRdlpjMTNsZ0RZODFMNlU0TmVLOVZuWUFsSFltdUNPYXZpT2Zx
+dVdjDQogbDAzWGVJNEtCTzZ6Ky92YXFyc3F2RVcvQ3BZRWRSZENER1dTOHdtMkt2ekVGQUNr
+NTBUYzNDRUtGVURIWnVyeEQ0M2M4djk0aUMNCiBLR3kvYUdhTlJGT3VjOXhpc3ZZTWFGVnFG
+OGl1SHhGTkJoNGFiSDB4TXV3aHdUVlh3bkY4VHRkcWJFL1V6elh0b21mY2NWUDg5ZA0KIHhn
+cm0veFlFaGFMdDhYeEJwY3JsdjdXVm9IakQ4VGhzdnRNMGRDUXRvSTJxQnZ2bDRZWUUzUUls
+M0tlVy9CS0s1WnRsblNudDlGDQogeDY0OXlvZzY2b1lMS0src3NBTmdzaG84L2NyTHpSS1dt
+R3RDb2o1U0Jmb3VvSjFJa3FDRU54Wm9hQmN1OWlBV2RrWFNPWmxhS2INCiB5ZEdlV2FJeFZ5
+REpybjJqZ0xLY2l1bGI0dzhjeGJyRXIvQUFod0hXRXdNY1pQRTFuTzBCaHZuMThUUkFieDVS
+bVdLcTVJSHVzTw0KIElSMmhCVVM4bkRMTHM5L3QzMHhBODNqMGMrMFZ0c3Y3aEhnMzR1Tzcw
+UUtGUy9jaUlLenJ2Q1BaWW1SZHhWUzQweDhvOUhwY05uDQogbHFEWEFMdkNUL0FCQ3NGaGM5
+TU1OT2ZQM08zaU50bUEzZ1FMZ3ZEdlF2N2h1SE5RWU11TzhRMTlGWXFhUCs0U2hOZ1lvQ3RD
+MFENCiBESmZJd1loSlUzQW9LK3E1aFNqc05CUUVic0ExdG1TMEdFSndaMHZGUHhMSVJCVUZU
+dzVLNWQ0WEYxdkp4ZG45eXBTRk5xdjFIUQ0KIFZMQ285MFhaMUFuTmE4UCsvRXI2OEcydTND
+S2dNM1lRdlozbEYwVDVmRDVtOUNoMjJSR3RiVmFrTU8xeXpOc1dHaHZ5VDJoQ2dRDQogczNn
+RTNGci9BRlRmUkpxUGhIeEtqMDE2OFFHYll2STRZYlRaRXdNZ1BZVFM4ZU8zM1JYTHRWOFNq
+NEkrQXQ3RXZJczE3elcraGMNCiAwektiNkV2bzZtOXpjVVNMQVQrSTVtRFRrQTQ3Ymk2RWRV
+TkMydTZVaHlLMmtrMDMyeU1hTCtZaFFEQmp4M2x5SUpnRlBLYnJ6Qg0KIGE0R2VtTy9abFp3
+RjkzN0R6V0ZLdUR3ZXlDWGlEOGdTS0c5RTgxaDNFSXprdnpRalBIK1YzbGFxcjh5MVVvaUxZ
+Q3J6eEQwakhNDQogcUo1YnJSTEFUbXRpTkkrNHdlbHhxSjB1TUhyV2NMWWJiRDlGQ05MUmo3
+dUhEcGpzRkM3V3Fvbkk5SU5oTndMSnREaU1KeExneGUNCiBoYkN5bnlIMmFmYUN3ZEFDRjlq
+VGdUdlZTNWtrYnhiRkV0WjlWVzIzQzR6ZnBjd3hjVkxzb0RWOTN4Y0VhSnVRSU9BMk5ITGo3
+Zg0KIE14ekc5byswVWR6Mm41STBiY29nODBSSWRic1MvTGNjZFpIRThtSlI2SXVSNkt0enNX
+dlBTNGRGbHhycmN1Rzh0aHVnQ0g3ais2DQogMEx2RTFudjl6elBWWWtMQ2o4UUtXM2oybHNJ
+YWcwK0p0TDdUMFJjd2U4NWk1eDlHbUFOc2Y5Y1RqMmI2RUFPdk1ZSnNPUWUwbmMNCiBnbzFi
+MVZMSFBlS1lkMVZsZnJFZDRjODNGcG5CdzdmeERNVk9ETDhFZWhqbTh2Wkk5SVR1eS9jTjhD
+UC9zQmt6bkVXTmNCZll2dA0KIDdRUks3Mjl2YU00QUZ4WTE2UDNjMkJRT2ZYaTVmVy9wTFVN
+ekVMUk9IL1hBQURCMk1pZXUvdkFNWnBwdSsvM2NVeHM4M1hFdTVlDQogdzNkcEJ6aUpDNE9n
+TlMyWEZxRFpPWWJpZFBUamk2aDI0M1hhWDNCOXBWaU9zSEhFRFNGS2FzZytmclBpRVVCbFkx
+M081RCtSdEwNCiBUdEczek1yYVgzanhaN2MvTWJHbER4VXlaRkRobVRoYW92NVFIaktEZCty
+VlFsb0FCaWpSNlJiYnJQZm9NMzB1TGZTNDdnNGx3ZQ0KIFhFcFdMK1FVZXdtRFhHcGVxZno3
+Z1haQWZnREdLTVNkblgrVmw0MDcrOGRXUTNVSEV2TXVYRnpPWmQ5TGx3ZWx6OVFCVkxYQTJS
+DQogK1g2N215ZDNMcFY0alF1c2R2TTBuckJ1R2dNWWI4a0VlbXQ3VVgvSlEyQmtoKzQ5SGJj
+ZmdRZlFYQTRscnlxY3N1WExneGVqMHYNCiBxd25GUUJ3aFN5a3FCaW1WZDFiNHI3eUpMZGVM
+Q212U1J2RDBSV1ZCekhjdU1YSFVJcGVZZDVobFRpVkF4blVybnZ4dWkxejdKZQ0KIEQvUUov
+d0RmcGVaenpRVHpsaTUrbnZXTGNWcENveERTQkpiTHkvc2czS094RVZFSlN4Y1ViamlFMzlh
+d2w4emExMXFPc0RaUDhhDQogSVdUSnE2TzNlYkxOUDNIZVZlZWgvcmhGTmxZOTdoaGc2UjFN
+aG1vbk15aVRpb2FnNXFEbU91cDVnVlZnSGxhak5MY25zcC9Kd1gNCiB1ajZTWWdTKzI3Zmxs
+eU9jNE0xLzdIcW9PUDJFTHBnMUN2bVlkMnhYdWptUFJxTXFVUjdXVW5FdnJjdjZIVUt0ZkdZ
+VndIUXVrag0KIDJiaEZxYk51Yi9BRDkzdVFnOWtEQ1Vidlp2S2taNW5CREUyNmFtNVdaZlRj
+SGpwZVlKenFLdVp4UGZHdXZLMkRtbjZlWUVRZFpODQogdUVpeHBvdFBVL0V5OE1WRUZ1dlps
+MjR2QzRpaHdidVdVYXJ6SGl0am1OUklrNGxkTERVY3hybm85V0Vaek5KeE1lYko0TXl2d2wN
+CiBWNzUrNE9qT1hyL3FqZ1dZbllWSDRJNWptcHc2Tmx3Ymg5QXk1Y3ZwWlRlcG85K1dZcHNZ
+TDFiK3psUHJvWFVKWDE3dEREc0FYTg0KIGRGM0xxR1dKbG1wdm9kU2lFcnB4TmRHMmNDS1ls
+QUxVc0JmR0ZRUzNnZW1OVGp6eWR2dDVMMEc1WkRkb0w3dUhHb2MzQnJFeklIDQogUUlTcFVU
+SDBYMFFwdkoybUxsQU9ieFhtRnZRTFZacWNIZjY5YzE1aVY0Z3gyVUorWnBqbzQ2WDBPbGRL
+cnBtR3N4NXlwVWVKeksNCiBocURHSmF3YTc4bFFLcUFlWDZGVGFwdXFmdDhOYnBFTWNPbmtZ
+VVhUS3pGU0U3U3BVRFAwVjBaY0dHV29TK3dQaGJDL0VCUUU1Kw0KIHZQRzR3YjlSZ3ArWlZW
+dVlNM0VsVFVJU285YWdFcDZGUklFY1JLaDBUTVFrUUE1Z09kbkI1QzcvbjJ3c0hFN0UrOWov
+MmdhZk9ZDQogd3hCc09ta1plT3F3aEhvMWdDUUJYQWU2aERlMEV1WGtPYVI3YSt6cGltV21E
+Tk1maUNJTFVSdktGUG1KaWN4M0tsUSttdnBXdWcNCiBSekhaT0VHWmhOdWQwZnRFM0FmV0d2
+dG1Ja3Ivd3pxbzZoa2l2REF1SFNzOUZxWDBPaDB1QzZ6ejZSMktEbmhiWjZpeDNtajQ1UQ0K
+IENnK3p1REZZUjJvbUlXM01FblRUeFU1MHhOVVh5VjM1aTZzSTZlSTdoNWxrNTYxMVlRNk1a
+eE1ub0lrQXBGanM4UjFScTJTckFzDQogZmJkcGYwbC9NcnIxZzVtbW9ZWnBINlIwSUNrQVds
+cWp6RmRFWWJiVWlFeUprTHFNRUs4eTlMY2g1VzhrdTB5QzB0R1BzK2tzSlgNCiBGMTZROUZt
+aWc1bDFxSXc2S01JMkszdUlWV0JwRjJPZVJiZUlIdWJMOUltSUl6aTZ4MHI2V3BVUG9ZRlFs
+UU14TkdNcEtybG1uSQ0KIG9mZ1FLWHdYOXB5K0VoVUYvSlVndTdhdzRoR0VvWU45SDZGbm1s
+ck9KWXNNYTlCZmkvaVBUVGw4QzJjdGlFZnlHL1VYY2dVUUprDQogeUVZQWtPQ3NSTGpOZHVi
+ekRQMnJFQUNGSUJEUHVpbW1qZlVQaW9NN09TVVNiMWdkVFBmc2tUVmdSdzFUVUJIRkNCTU5V
+b2xqejINCiBtV1JBTUtyejJSaHFIVmxTcFVxYWpDYmpDT0lialRaR0tZWkhIL0FHbUJjYVNp
+UG43TjJUUmZNUkpEMDBsMi9VNzNYaWFpSFFsZQ0KIEpTWDA0WEdNN2wwNkxMQzM3aFl3b29E
+eXVvemdBcGl3andLOUl1bUtFeEN0MlZRMWczOHN2bGt0VlZoM21GRE55d0MxcXNyTk5ODQog
+Wk02bVI4TkJleXI3V1c5SVFhc0JRS29qd2lkNWQzV1Fhdno5bmRudUxxWHd0ZjJDd2NZR3k2
+a1ExbHNCNjJmRU5JNVljWHF2eEUNCiBkRHFDR2g1VEJqR3BZYzhWT2pBc21CMzJRa0pSUTNW
+MGpEbTJ3eGZlVjJsU3V1NWNlbWlFV0VlaTFjSjF2QXJSK2xpUFYyRmZZaA0KIHI3SnVOWkw3
+TGlid2d1VXRmd1l1YlBpTExnOUE3eTZ6QllDdGhGb3ZIdkRzM2hkSXNXMU4rNTQwc1BkanVk
+aEFsWU8vZjFabm5JDQogODgvSGFacGhqOG5hbzdoUldVMGFzUzhSWmVKTzBRWTFwbFZpRDZY
+UTAwSnRMeEc4QUxtb3llamoybkljdjJNNW9GMW5VcFVHM04NCiBpZHNXUTFBb0ZnUlB3eG5w
+RkhLS2U3Q3N2dFZ2eEJXaGhHUzdzZG5zelI2UkFYaEdtcVROcVFNazlseVFhMzlWVE1NeGhH
+R285QQ0KIHVCcENQM1R6TEg4VGo3SnZQSmgzUHd6TGRjUGRBWDhSWXNIRXZNSmMzTHBtV093
+WHhCZXF1Y0FMOTJCbnVhS1J4bTQ0bEdHRXFUDQogaWlHQ3VPSHFFWkYzMlNPTXJxNS9IWHlJ
+UkswWkl4WStzc2ExSzR6NmRRelJDRGUrZnM0SVNuWlREN05NdXFpR3lRWHdTMXNCNlcNCiBE
+bThXeDh4VnlpOElIQ0RreVB4MFF1aG1nbEtpNVk4bVVlRmNXSER1RUFTL3lMMXhUamlaYS9N
+T2o5QmduTTEwNGwzMElUbG9wKw0KIGtGWmMwZlZoYUZ2ZGRQUEVTdkxkeDBDa1V3b2Zpckh4
+cVBRSWgwT3BkNE9PWTB1dVdnVTY4ZVRtSEJBQlZRaFZHRDIraDFtRG1NDQogQTZ6RlBkZ0c1
+eklwR0VwcnM1M0RlazdqYlZjcVB4Sm13OUE2dnRjM2src2dLbmpvQVNuK2JtYUFqczd4RXU5
+d2tUUFEyNGx4Q3cNCiBmS1BKNGxlYi9zb3NlR3hQTUN1bGxWc3R2NHBWV0dFL2tkNVA1R1o3
+VjIvd0IzbC9WekdFWEVKY0lGMVZNaGlSVFkvSDBkL0VCZA0KIFF1VmgwVUs3VDBodVB1MTJa
+V1pia3JxejBjZUFpYXp4cnRFaEt6SG9kUDhBcTRjOWVmWWhYMjBHK1pyTC9QUUN2eEtLUVhP
+MXpMDQogdml2SDBjeGhxZXRBWDlFekhlY1BTYVVGeTdVQ0NzTzc3Mkk0M0ZkeGp3amhwMnM3
+dFFiejMrUHJaaC91NXV5NC9NenRqRkNjMXoNCiA2U3hMclRDV0paNUxncnl3S2padlNucDFM
+Mzh4eVkzQjJOTzVXRW1ia0o4andyaXpzd09LYi9DT1p4ZkVxUFZoRmd4WVBTMmxPRQ0KIFBk
+MUR3NUY0QmdKT0FQaDlGWnZpb2pyYTQrUDhRUFgza3hqdFk0Y3NlbWNEbUt4amcwVStZUjYz
+TGx5OHk1UlFXY3VPN0FJNWU2DQogQlErUDY0dXhROGQzMU1RWVgwZWRSRXBMTDRYOFR6NGpB
+aVlVbUVVRFRoSFVvT0loMlp2NnZXRHdRSk9IY2JSSzJ2WTJVdXIwdUkNCiAzaVdRZ2RobWxD
+dFd3NWdIYVlCcnRSK0pxa1pRNTVKeDVnRnVwTFkwYS9rOGFoTzBtRTBqbjY2Z0Vkd09oZ1BQ
+RHYzbUY4ZDNjUA0KIHdKd04zdVZXT3FCNE1qNlJMK1kwY3VQL0FHT2RZNFRDS1Y5MThTNmtI
+R0pGM1dYazdhZzdpZ09CM2h1TzJQUjNPT2x5NHdvZTVBDQogazE3cExsT1d1MVYvbFRiYnY2
+M1BMdzN1bVZMUTh3bFEvWEhRZ2orR05ZcTdPQ0RxeDdFVnhwNStybUl1cGpncCtJeEF2REVJ
+bzMNCiBWZVRJYUROaFozc3hBNVZqVXplU2MzekhDcWh3VktwNU5rSVNxdk1JbGpWTEhFV3pW
+WWFYajFoMy93RGtlaG5yeE9ZZEFiS0xvaQ0KIDFpNU9qYzRMQ09LNnVDNmFqUDFlM1FJU2NR
+eTkzZUdkZzVUMlJsNktCRjN0MVJ2aDNDanZRQVBBYWpaYWY1NnczSGNZd09qS1ptDQogSWo2
+b0FsbnpETEFBQTZNUHBES2hUOFJGVGdKNHpocnBUWnF1MG9xRE5oYkZwbXFYeERHcWp0SXpT
+YTNncTdkZExpNlpkWFlMWm0NCiBNS3JHRk5DOXA1TWtHNnFBWU5QU2x2MGt0YThkRms5SklG
+SWpDOThYMjF5NWF5T2hpeVZxNjZac1NQcDB5MEZtek5JdVBNVHZxaw0KIFhXNnhoVDRTN3Ax
+NDRJeTRFdm9zNWgwTFdZanZDMzR3UzIwUGxkOVdFQ2g5cHdaNWxiZFBIbmNIYnBvazdscGY1
+amxZdVR4OEtIDQogdnU1a0ZNYU9xaG11REh2T0liakdNT2owenh1Zm9vMkM0UHJOejgxK28x
+SHNKOHczNDZNNERwdzNIWW9jNFBoWGZOeGNHenJ0cEkNCiBWeHptZWlqM0k0SmFqTnBTTTRp
+cW5GT1R2alI3eE1xVDVseVBzd2NSN1RnM0VSMlE1QnZ5b3RkK2VqbGRKeEROb2txQzJVNjRy
+UA0KIGVHV0IxYXdzZGpsc1E2dlJWTFJ0dGE4QzRKcWpKaW5TVTV3aWUzVTFHRVlUaGduRTBZ
+QWYyWHVOOTJBUUhnVVRFRy9CVDBvV2xxDQogK1BIZnhEckFOZzJnUEt6S3FJNVFUR1JqRVd3
+aHBwMmJVVDJtSS94d2V3UVlCQ0V1UEgwc2VsRG9aQWUzMWh3cmdjS2w5SmVHQUsNCiA3VW9R
+M1JZY25LSEJpdFpGaVBrWXd3d3VEcW1JY3lhQndpZk9keE8vbTJndDJ1MWtiME1kcWNRR0Zp
+L2FIZCtFbzdHcWdzd055ag0KIDZrckFFbkVCSFh0QktjaHVDb1lUYml5SzJubkFEeFVEUFNq
+c1RrMVV3Y2ppckZLMTJETnZjRnVjNVpYL0FOeE9jLzQ2SU9jZlloDQoga3JzeThlamRMUmNz
+QXRzUEdwVldMVHAvZlhveFlTNW91TkEzbngzaVhxQVJ5WDgvb3d6TUJrL0tQSzR6bU9GTzNN
+dGUvQXRYejQNCiBoRDhGTStMRzIzdW1KcEtjYy84QVVweGdHK0psVzZoQ1htRGljdzZKSzZN
+U0JuTXJya3dmUS83ZlhXZjlpQklPZ2hNWFUyV1d1OQ0KIEFOMjR4R3RLaDUzRjVsM3RpWDBM
+SEppQU56SEtLT1JOUzFCTzZoY1UyMlFwMHkyQTZVUFpjUGhpV2haVVg5VkZ4bGhoUFdsK1pa
+DQogM1Q1U0dFQ0EwR082QmtHcVN2a3JsWUVyUFUyVkNEdk55Q0o4TVpPa3JxMEE4MHY0aHJI
+VGpkdFZieEttV2xtcVJCUFpmbU9Ec1QNCiBxVkFyRGk3K0piVGpQYnJVcVZockxBUDlDQXBN
+ZjRRUk5TT2FORy9CQXh2UE1SbUxhYXFDbUlXQVM3VUs3OG1vR0NOaERmaTErTQ0KIDNCeG5I
+ZGlTdWhDTzRhaENFWXhqR01xc1ZYc1hnRW5tYy9WVm1TenRLdFJXb25HdlpmaUk0eEl0bzNh
+aTdkRjB4T1Q0bzM0aDBXDQogelZBdzhpeHlZaXlQNFo1aHVQT0l4Nm1ydmtnS3JONVIrcHdD
+aWtmZ01RdmI0djZubzlEaFNxOHl1MXR2RVFNWXNSMzF0RVRLYUkNCiBvN2FjTkJWMnU1N2Jn
+K0JETjJBa3FWRWxRdjE2djU3MUU0dmlLc3ZidmRIUHRNYlk5S0lDZUZGS0Y3S29RL0cwekhZ
+UVZYb3dhcQ0KIGc4WEtyYkhXVVlZbDlIcWVwMVk5T09qMm01OXJyOEROWXJmUkwrcldRcVpK
+b1VXdHRBSGxROTR5cTFzcFBTQ0RYZXR5cEQ2Y003DQogRWd4LzNQWk14NFpKL1pWZ2R0QVQx
+Z3AxUGhLTWE4U3JpSW10MWdxcXc0NU1OK2hxaE5WM2ZtUFUzOWhDdzM1NFJQNUZVdHRyN28N
+CiBXSFJ4a2x2QXozS2xGMW1Zc3NMT3dmU29rTXRmNGhxbmpZS2M4VmhlMENCaXFicDhBaFE2
+M2hkNml4ZjFRRUwzSzNEaWxEMXpLcg0KIFZGY1A3M2xVQXhIUDBuMEgwTXFNOVpjWTlBV3Bi
+K1ZReFRZVEtwWHRpQnY2YXNEcTRnZ0J6UlNoOXl3bnd3QnhWYWlnMkdvVnhoDQogYitKaThD
+aHRhYXpNVEtwYkRIc3NORE9DUmUrYTh5empYNHFPc004c1J3Mzh3cGJTWmtHMml4c2NETzNl
+b3c1b1BDWWcyNnJwZGINCiBsOThScHhPZGZmbmhZUzNwc1kvRVhRd2NwWHVDUVpwQzY1SVVq
+eTA2KzlJN3JuL1pSQ1pSa0RheStMalhZMUFBcEJ4cVc2clBieA0KIEx6cHJ2eEt2UStyZ2xq
+bkh1eDZiU2tVVnc3SXc2MmRyTk1MTVlLeG1VRFFVOHR6aTF1TjBYRG82Nk1ZYWh1Ry9vSXg2
+UFNwUnpxDQogSmltc0twaFVyUk8wV1ZIdVFBYU5CWHY5TGw3Q0Z6T0c4dDdEam5EdWpSbmpk
+ZTUxeE0zc2hxMThDdytDWU1HQm8xS2IxWjJKU3ANCiB1NmFqN2o4SzUvUkc5VlFKWG5KQy9y
+UjNGVlk3T1hnczUyT1Y1aG5FQkh1TXVQZDRsMTdFcm4zQ2hmS2gxNGp5YlBxRHl2WHN3bg0K
+IHVBdmxnSDRsUDh2Yis0cW52aWEvY0R0NXNDbUxuSUJRbXdObXI0bUMxQnFKc0txcklybk1O
+REhzZnFVcUtnc1dVYTVKV3VZNWp3DQogU2Jnc0tyTlhudk1XdDNzUGtNdVphMEZMNXBQNGhF
+Q0ZIbjFnVkw2YVQ2N2p2cGNXWG1MTDZFR0xCakhpUFZsZFhVVHZJQnBCSysNCiB5VGo2Vlhq
+dWZTNnhEUGJmYkJyOHdFK2lNQVVIb1RLTDVISHRMV3RhUFpDckpiNGw0MUpZSG1yWDRpRHZq
+eTVoalBBREN5K3JVdA0KIFJHTVVQaU1ad0VvdGZBOGpuMmxEbkxCZTZBdlNIdEV3RXRZbmtN
+aWJCMHdCN09RbGJueUFSdzBCc3Q5REU5YlJMWUM2RlhITXpWDQogbkJNVVJHMjNuQ21QaVg3
+VUE2YmR2SUtnTGlIckE4TXhZYkRRb3R4ek9VY0U2QWFoamlBRlFBQ2hDRHVWS2xkWG9zZWpM
+NjNVR0UNCiBZVGZUZlZZUDBYZ2xnMVcvNUhoT2ZkbWxlOWtYa3ZUajBaNjlhbGw3RXBhdXIy
+VDdRVFl2b2l3dzJNd1JZVmhlQVlvR3pTYWpGRg0KIFVjVzBCYTI3cmlKUm9ISGlDMVlRV2kr
+WWxGT1BmY3ZCZGV0NHVKT0Y1UzdyeTlhbHg3RktqdkZBeDJlWXRnODBqN3VEMGdBVlhvDQog
+TVJOUUdBTm4vRXViR1lEaUdDdUplWnVlZjNCaGJQRjNKam1GVnZ6Q3hGZ1ZzWW1JVU9Xd3Mr
+OVl2RUZOeWtmTnFIVXNVNVRmd0oNCiBqdDFNZlN4akdQUitoNkV1NFE2SFJqRHF6VEJidjJq
+YU5RYnNwcG5GM3REa25NM1J6bjAxS3I2SFNOMTI3eXhEbEp6ZnIyaHU3dw0KIGxEd2Z5UXc3
+WmRyZHJOdVFDQjdzSjZheXBNQmhRM3A0alMwVUlPQThrTDF6RnlYWVhlb2U1TERjSE1yL0Np
+VjBnSndDOXZNc2lKDQogcWRhWnJwWUxSZzZjRU9qblVFSEpDcTc3cGozVFZVaW5MdDZabUhQ
+Smc4RXFNNklUUTBJdDlrUktpWllvUU9rTzI0RXdBQUs4VmoNCiA2U1BSakdNWTlHY3g2SFVs
+d2gwM0RvZFdNQ0dZMHZDVi9aa0d5RGFnNU9iS0ZaTVNxeG4zK29CbER1QlJMTE81U1ZwdGNR
+NEZ2Sw0KIGg4UjlHY3doWE1GdTNuaURLNGdBejNlOHRNR05LR0RXdFFqdWVTVUIweExtYjE3
+RXpML3VleXZTM2lFdDUvclhMK0lac2FoaTRqDQogTUd1eFVCTnFadHZHcDR1QzIrc2FMUHhj
+V3ArV091cjNsbkZTeFdOT1BDemtQaGlsYS9WLy9aDQpPUkc7WC1OQy1TQ09QRT12Mi1sb2Nh
+bDpEZWxpdmVyaW5nIENyZXcNClRJVExFO1gtTkMtU0NPUEU9djItbG9jYWw6Q2FwdGFpbg0K
+WC1TT0NJQUxQUk9GSUxFO1RZUEU9TkVYVENMT1VEO1gtTkMtU0NPUEU9djItcHVibGlzaGVk
+Omh0dHBzOi8vc2VydmVyLmludGVyDQogbmFsOjQ0My9pbmRleC5waHAvdS80MzdjNTQyMC1k
+NDUwLTEwM2QtOGE3ZS1mOTQyYTQ2YjNkZjcNCkNMT1VEOjQzN2M1NDIwLWQ0NTAtMTAzZC04
+YTdlLWY5NDJhNDZiM2RmN0BzZXJ2ZXIuaW50ZXJuYWw6NDQzDQpFTkQ6VkNBUkQNCg==
+
+--sgnirk-111111111111111--
+